[hlsl] Update expectations for HLSL IR.

Update the expectation files for the HLSL IR backend.

Bug: 42251044
Change-Id: Ie4e27c6a5d8ea3eb3d9b2d055a9d285174bbf30f
Reviewed-on: https://dawn-review.googlesource.com/c/dawn/+/200696
Reviewed-by: James Price <jrprice@google.com>
Commit-Queue: dan sinclair <dsinclair@chromium.org>
diff --git a/test/tint/access/let/matrix.spvasm.expected.ir.dxc.hlsl b/test/tint/access/let/matrix.spvasm.expected.ir.dxc.hlsl
index 81bf7b6..a239d42 100644
--- a/test/tint/access/let/matrix.spvasm.expected.ir.dxc.hlsl
+++ b/test/tint/access/let/matrix.spvasm.expected.ir.dxc.hlsl
@@ -1,3 +1,4 @@
+
 void main_1() {
   float x_24 = 5.0f;
 }
diff --git a/test/tint/access/let/matrix.spvasm.expected.ir.fxc.hlsl b/test/tint/access/let/matrix.spvasm.expected.ir.fxc.hlsl
index b1efa57..a239d42 100644
--- a/test/tint/access/let/matrix.spvasm.expected.ir.fxc.hlsl
+++ b/test/tint/access/let/matrix.spvasm.expected.ir.fxc.hlsl
@@ -1,4 +1,3 @@
-SKIP: FAILED
 
 void main_1() {
   float x_24 = 5.0f;
diff --git a/test/tint/access/let/matrix.wgsl.expected.ir.dxc.hlsl b/test/tint/access/let/matrix.wgsl.expected.ir.dxc.hlsl
index 3f437dc..6e6e8a1 100644
--- a/test/tint/access/let/matrix.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/access/let/matrix.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,10 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Access
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWByteAddressBuffer s : register(u0);
+[numthreads(1, 1, 1)]
+void main() {
+  float3x3 m = float3x3(float3(1.0f, 2.0f, 3.0f), float3(4.0f, 5.0f, 6.0f), float3(7.0f, 8.0f, 9.0f));
+  float3 v = m[1];
+  float f = v[1];
+  s.Store(0u, asuint(f));
+}
+
diff --git a/test/tint/access/let/matrix.wgsl.expected.ir.fxc.hlsl b/test/tint/access/let/matrix.wgsl.expected.ir.fxc.hlsl
index 3f437dc..6e6e8a1 100644
--- a/test/tint/access/let/matrix.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/access/let/matrix.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,10 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Access
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWByteAddressBuffer s : register(u0);
+[numthreads(1, 1, 1)]
+void main() {
+  float3x3 m = float3x3(float3(1.0f, 2.0f, 3.0f), float3(4.0f, 5.0f, 6.0f), float3(7.0f, 8.0f, 9.0f));
+  float3 v = m[1];
+  float f = v[1];
+  s.Store(0u, asuint(f));
+}
+
diff --git a/test/tint/access/let/vector.spvasm.expected.ir.dxc.hlsl b/test/tint/access/let/vector.spvasm.expected.ir.dxc.hlsl
index eafa90e..ab0d942 100644
--- a/test/tint/access/let/vector.spvasm.expected.ir.dxc.hlsl
+++ b/test/tint/access/let/vector.spvasm.expected.ir.dxc.hlsl
@@ -1,3 +1,4 @@
+
 void main_1() {
   float x_11 = 2.0f;
   float2 x_13 = float2(1.0f, 3.0f);
diff --git a/test/tint/access/let/vector.spvasm.expected.ir.fxc.hlsl b/test/tint/access/let/vector.spvasm.expected.ir.fxc.hlsl
index 77fcbb5..ab0d942 100644
--- a/test/tint/access/let/vector.spvasm.expected.ir.fxc.hlsl
+++ b/test/tint/access/let/vector.spvasm.expected.ir.fxc.hlsl
@@ -1,4 +1,3 @@
-SKIP: FAILED
 
 void main_1() {
   float x_11 = 2.0f;
diff --git a/test/tint/access/let/vector.wgsl.expected.ir.dxc.hlsl b/test/tint/access/let/vector.wgsl.expected.ir.dxc.hlsl
index 3f437dc..9f9594d 100644
--- a/test/tint/access/let/vector.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/access/let/vector.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,12 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Access
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWByteAddressBuffer s : register(u0);
+[numthreads(1, 1, 1)]
+void main() {
+  float3 v = float3(1.0f, 2.0f, 3.0f);
+  float scalar = v[1u];
+  float2 swizzle2 = v.xz;
+  float3 swizzle3 = v.xzy;
+  float3 v_1 = float3((scalar).xxx);
+  s.Store3(0u, asuint(((v_1 + float3(swizzle2, 1.0f)) + swizzle3)));
+}
+
diff --git a/test/tint/access/let/vector.wgsl.expected.ir.fxc.hlsl b/test/tint/access/let/vector.wgsl.expected.ir.fxc.hlsl
index 3f437dc..9f9594d 100644
--- a/test/tint/access/let/vector.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/access/let/vector.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,12 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Access
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWByteAddressBuffer s : register(u0);
+[numthreads(1, 1, 1)]
+void main() {
+  float3 v = float3(1.0f, 2.0f, 3.0f);
+  float scalar = v[1u];
+  float2 swizzle2 = v.xz;
+  float3 swizzle3 = v.xzy;
+  float3 v_1 = float3((scalar).xxx);
+  s.Store3(0u, asuint(((v_1 + float3(swizzle2, 1.0f)) + swizzle3)));
+}
+
diff --git a/test/tint/access/ptr.wgsl.expected.ir.dxc.hlsl b/test/tint/access/ptr.wgsl.expected.ir.dxc.hlsl
index 6b047b4..12fc193 100644
--- a/test/tint/access/ptr.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/access/ptr.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,77 @@
-SKIP: FAILED
+struct S {
+  int a;
+  int b;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:287 internal compiler error: Switch() matched no cases. Type: tint::core::ir::FunctionParam
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct main_inputs {
+  uint tint_local_index : SV_GroupIndex;
+};
+
+
+RWByteAddressBuffer s : register(u0);
+groupshared int g1;
+int accept_value(int val) {
+  return val;
+}
+
+int accept_ptr_deref_call_func(inout int val) {
+  int v = val;
+  return (v + accept_value(val));
+}
+
+int accept_ptr_deref_pass_through(inout int val) {
+  int v_1 = val;
+  return (v_1 + accept_ptr_deref_call_func(val));
+}
+
+int accept_ptr_to_struct_and_access(inout S val) {
+  return (val.a + val.b);
+}
+
+int accept_ptr_to_struct_access_pass_ptr(inout S val) {
+  int b = val.a;
+  b = 2;
+  return b;
+}
+
+int tint_f32_to_i32(float value) {
+  return (((value <= 2147483520.0f)) ? ((((value >= -2147483648.0f)) ? (int(value)) : (-2147483648))) : (2147483647));
+}
+
+int accept_ptr_vec_access_elements(inout float3 v1) {
+  v1[0u] = cross(v1, v1)[0u];
+  return tint_f32_to_i32(v1.x);
+}
+
+int call_builtin_with_mod_scope_ptr() {
+  int v_2 = 0;
+  InterlockedOr(g1, 0, v_2);
+  return v_2;
+}
+
+void main_inner(uint tint_local_index) {
+  if ((tint_local_index == 0u)) {
+    int v_3 = 0;
+    InterlockedExchange(g1, 0, v_3);
+  }
+  GroupMemoryBarrierWithGroupSync();
+  int v1 = 0;
+  S v2 = (S)0;
+  S v3 = v2;
+  float3 v4 = (0.0f).xxx;
+  int v_4 = 0;
+  InterlockedOr(g1, 0, v_4);
+  int t1 = v_4;
+  int v_5 = accept_ptr_deref_pass_through(v1);
+  int v_6 = (v_5 + accept_ptr_to_struct_and_access(v2));
+  int v_7 = (v_6 + accept_ptr_to_struct_and_access(v3));
+  int v_8 = (v_7 + accept_ptr_vec_access_elements(v4));
+  int v_9 = (v_8 + accept_ptr_to_struct_access_pass_ptr(v2));
+  s.Store(0u, asuint(((v_9 + call_builtin_with_mod_scope_ptr()) + t1)));
+}
+
+[numthreads(1, 1, 1)]
+void main(main_inputs inputs) {
+  main_inner(inputs.tint_local_index);
+}
+
diff --git a/test/tint/access/ptr.wgsl.expected.ir.fxc.hlsl b/test/tint/access/ptr.wgsl.expected.ir.fxc.hlsl
index 6b047b4..12fc193 100644
--- a/test/tint/access/ptr.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/access/ptr.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,77 @@
-SKIP: FAILED
+struct S {
+  int a;
+  int b;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:287 internal compiler error: Switch() matched no cases. Type: tint::core::ir::FunctionParam
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct main_inputs {
+  uint tint_local_index : SV_GroupIndex;
+};
+
+
+RWByteAddressBuffer s : register(u0);
+groupshared int g1;
+int accept_value(int val) {
+  return val;
+}
+
+int accept_ptr_deref_call_func(inout int val) {
+  int v = val;
+  return (v + accept_value(val));
+}
+
+int accept_ptr_deref_pass_through(inout int val) {
+  int v_1 = val;
+  return (v_1 + accept_ptr_deref_call_func(val));
+}
+
+int accept_ptr_to_struct_and_access(inout S val) {
+  return (val.a + val.b);
+}
+
+int accept_ptr_to_struct_access_pass_ptr(inout S val) {
+  int b = val.a;
+  b = 2;
+  return b;
+}
+
+int tint_f32_to_i32(float value) {
+  return (((value <= 2147483520.0f)) ? ((((value >= -2147483648.0f)) ? (int(value)) : (-2147483648))) : (2147483647));
+}
+
+int accept_ptr_vec_access_elements(inout float3 v1) {
+  v1[0u] = cross(v1, v1)[0u];
+  return tint_f32_to_i32(v1.x);
+}
+
+int call_builtin_with_mod_scope_ptr() {
+  int v_2 = 0;
+  InterlockedOr(g1, 0, v_2);
+  return v_2;
+}
+
+void main_inner(uint tint_local_index) {
+  if ((tint_local_index == 0u)) {
+    int v_3 = 0;
+    InterlockedExchange(g1, 0, v_3);
+  }
+  GroupMemoryBarrierWithGroupSync();
+  int v1 = 0;
+  S v2 = (S)0;
+  S v3 = v2;
+  float3 v4 = (0.0f).xxx;
+  int v_4 = 0;
+  InterlockedOr(g1, 0, v_4);
+  int t1 = v_4;
+  int v_5 = accept_ptr_deref_pass_through(v1);
+  int v_6 = (v_5 + accept_ptr_to_struct_and_access(v2));
+  int v_7 = (v_6 + accept_ptr_to_struct_and_access(v3));
+  int v_8 = (v_7 + accept_ptr_vec_access_elements(v4));
+  int v_9 = (v_8 + accept_ptr_to_struct_access_pass_ptr(v2));
+  s.Store(0u, asuint(((v_9 + call_builtin_with_mod_scope_ptr()) + t1)));
+}
+
+[numthreads(1, 1, 1)]
+void main(main_inputs inputs) {
+  main_inner(inputs.tint_local_index);
+}
+
diff --git a/test/tint/access/var/matrix.spvasm.expected.ir.dxc.hlsl b/test/tint/access/var/matrix.spvasm.expected.ir.dxc.hlsl
index 4a2c666..ebb738c 100644
--- a/test/tint/access/var/matrix.spvasm.expected.ir.dxc.hlsl
+++ b/test/tint/access/var/matrix.spvasm.expected.ir.dxc.hlsl
@@ -1,9 +1,11 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::LoadVectorElement
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+void main_1() {
+  float3x3 m = float3x3((0.0f).xxx, (0.0f).xxx, (0.0f).xxx);
+  float x_16 = m[1].y;
+}
+
+[numthreads(1, 1, 1)]
+void main() {
+  main_1();
+}
+
diff --git a/test/tint/access/var/matrix.spvasm.expected.ir.fxc.hlsl b/test/tint/access/var/matrix.spvasm.expected.ir.fxc.hlsl
index 4a2c666..ebb738c 100644
--- a/test/tint/access/var/matrix.spvasm.expected.ir.fxc.hlsl
+++ b/test/tint/access/var/matrix.spvasm.expected.ir.fxc.hlsl
@@ -1,9 +1,11 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::LoadVectorElement
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+void main_1() {
+  float3x3 m = float3x3((0.0f).xxx, (0.0f).xxx, (0.0f).xxx);
+  float x_16 = m[1].y;
+}
+
+[numthreads(1, 1, 1)]
+void main() {
+  main_1();
+}
+
diff --git a/test/tint/access/var/matrix.wgsl.expected.ir.dxc.hlsl b/test/tint/access/var/matrix.wgsl.expected.ir.dxc.hlsl
index 3f437dc..4750e4e 100644
--- a/test/tint/access/var/matrix.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/access/var/matrix.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,10 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Access
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWByteAddressBuffer s : register(u0);
+[numthreads(1, 1, 1)]
+void main() {
+  float3x3 m = float3x3((0.0f).xxx, (0.0f).xxx, (0.0f).xxx);
+  float3 v = m[1];
+  float f = v[1];
+  s.Store(0u, asuint(f));
+}
+
diff --git a/test/tint/access/var/matrix.wgsl.expected.ir.fxc.hlsl b/test/tint/access/var/matrix.wgsl.expected.ir.fxc.hlsl
index 3f437dc..4750e4e 100644
--- a/test/tint/access/var/matrix.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/access/var/matrix.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,10 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Access
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWByteAddressBuffer s : register(u0);
+[numthreads(1, 1, 1)]
+void main() {
+  float3x3 m = float3x3((0.0f).xxx, (0.0f).xxx, (0.0f).xxx);
+  float3 v = m[1];
+  float f = v[1];
+  s.Store(0u, asuint(f));
+}
+
diff --git a/test/tint/access/var/vector.spvasm.expected.ir.dxc.hlsl b/test/tint/access/var/vector.spvasm.expected.ir.dxc.hlsl
index 4a2c666..97862ad 100644
--- a/test/tint/access/var/vector.spvasm.expected.ir.dxc.hlsl
+++ b/test/tint/access/var/vector.spvasm.expected.ir.dxc.hlsl
@@ -1,9 +1,13 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::LoadVectorElement
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+void main_1() {
+  float3 v = (0.0f).xxx;
+  float x_14 = v.y;
+  float2 x_17 = v.xz;
+  float3 x_19 = v.xzy;
+}
+
+[numthreads(1, 1, 1)]
+void main() {
+  main_1();
+}
+
diff --git a/test/tint/access/var/vector.spvasm.expected.ir.fxc.hlsl b/test/tint/access/var/vector.spvasm.expected.ir.fxc.hlsl
index 4a2c666..97862ad 100644
--- a/test/tint/access/var/vector.spvasm.expected.ir.fxc.hlsl
+++ b/test/tint/access/var/vector.spvasm.expected.ir.fxc.hlsl
@@ -1,9 +1,13 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::LoadVectorElement
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+void main_1() {
+  float3 v = (0.0f).xxx;
+  float x_14 = v.y;
+  float2 x_17 = v.xz;
+  float3 x_19 = v.xzy;
+}
+
+[numthreads(1, 1, 1)]
+void main() {
+  main_1();
+}
+
diff --git a/test/tint/access/var/vector.wgsl.expected.ir.dxc.hlsl b/test/tint/access/var/vector.wgsl.expected.ir.dxc.hlsl
index 4a2c666..4c89403 100644
--- a/test/tint/access/var/vector.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/access/var/vector.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,12 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::LoadVectorElement
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWByteAddressBuffer s : register(u0);
+[numthreads(1, 1, 1)]
+void main() {
+  float3 v = (0.0f).xxx;
+  float scalar = v.y;
+  float2 swizzle2 = v.xz;
+  float3 swizzle3 = v.xzy;
+  float3 v_1 = float3((scalar).xxx);
+  s.Store3(0u, asuint(((v_1 + float3(swizzle2, 1.0f)) + swizzle3)));
+}
+
diff --git a/test/tint/access/var/vector.wgsl.expected.ir.fxc.hlsl b/test/tint/access/var/vector.wgsl.expected.ir.fxc.hlsl
index 4a2c666..4c89403 100644
--- a/test/tint/access/var/vector.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/access/var/vector.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,12 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::LoadVectorElement
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWByteAddressBuffer s : register(u0);
+[numthreads(1, 1, 1)]
+void main() {
+  float3 v = (0.0f).xxx;
+  float scalar = v.y;
+  float2 swizzle2 = v.xz;
+  float3 swizzle3 = v.xzy;
+  float3 v_1 = float3((scalar).xxx);
+  s.Store3(0u, asuint(((v_1 + float3(swizzle2, 1.0f)) + swizzle3)));
+}
+
diff --git a/test/tint/array/assign_to_function_var.wgsl.expected.ir.dxc.hlsl b/test/tint/array/assign_to_function_var.wgsl.expected.ir.dxc.hlsl
index 0ba40c6..b729aa9 100644
--- a/test/tint/array/assign_to_function_var.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/array/assign_to_function_var.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,127 @@
-SKIP: FAILED
+struct S {
+  int4 arr[4];
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct main_inputs {
+  uint tint_local_index : SV_GroupIndex;
+};
+
+
+static int4 src_private[4] = (int4[4])0;
+groupshared int4 src_workgroup[4];
+cbuffer cbuffer_src_uniform : register(b0) {
+  uint4 src_uniform[4];
+};
+RWByteAddressBuffer src_storage : register(u1);
+typedef int4 ary_ret[4];
+ary_ret ret_arr() {
+  int4 v[4] = (int4[4])0;
+  return v;
+}
+
+S ret_struct_arr() {
+  S v_1 = (S)0;
+  return v_1;
+}
+
+typedef int4 ary_ret_1[4];
+ary_ret_1 v_2(uint offset) {
+  int4 a[4] = (int4[4])0;
+  {
+    uint v_3 = 0u;
+    v_3 = 0u;
+    while(true) {
+      uint v_4 = v_3;
+      if ((v_4 >= 4u)) {
+        break;
+      }
+      a[v_4] = asint(src_storage.Load4((offset + (v_4 * 16u))));
+      {
+        v_3 = (v_4 + 1u);
+      }
+      continue;
+    }
+  }
+  int4 v_5[4] = a;
+  return v_5;
+}
+
+typedef int4 ary_ret_2[4];
+ary_ret_2 v_6(uint start_byte_offset) {
+  int4 a[4] = (int4[4])0;
+  {
+    uint v_7 = 0u;
+    v_7 = 0u;
+    while(true) {
+      uint v_8 = v_7;
+      if ((v_8 >= 4u)) {
+        break;
+      }
+      a[v_8] = asint(src_uniform[((start_byte_offset + (v_8 * 16u)) / 16u)]);
+      {
+        v_7 = (v_8 + 1u);
+      }
+      continue;
+    }
+  }
+  int4 v_9[4] = a;
+  return v_9;
+}
+
+void foo(int4 src_param[4]) {
+  int4 src_function[4] = (int4[4])0;
+  int4 tint_symbol[4] = (int4[4])0;
+  int4 v_10[4] = {(1).xxxx, (2).xxxx, (3).xxxx, (3).xxxx};
+  tint_symbol = v_10;
+  tint_symbol = src_param;
+  int4 v_11[4] = ret_arr();
+  tint_symbol = v_11;
+  int4 v_12[4] = (int4[4])0;
+  int4 src_let[4] = v_12;
+  tint_symbol = src_let;
+  int4 v_13[4] = src_function;
+  tint_symbol = v_13;
+  int4 v_14[4] = src_private;
+  tint_symbol = v_14;
+  int4 v_15[4] = src_workgroup;
+  tint_symbol = v_15;
+  S v_16 = ret_struct_arr();
+  int4 v_17[4] = v_16.arr;
+  tint_symbol = v_17;
+  int4 v_18[4] = v_6(0u);
+  tint_symbol = v_18;
+  int4 v_19[4] = v_2(0u);
+  tint_symbol = v_19;
+  int dst_nested[4][3][2] = (int[4][3][2])0;
+  int src_nested[4][3][2] = (int[4][3][2])0;
+  int v_20[4][3][2] = src_nested;
+  dst_nested = v_20;
+}
+
+void main_inner(uint tint_local_index) {
+  {
+    uint v_21 = 0u;
+    v_21 = tint_local_index;
+    while(true) {
+      uint v_22 = v_21;
+      if ((v_22 >= 4u)) {
+        break;
+      }
+      src_workgroup[v_22] = (0).xxxx;
+      {
+        v_21 = (v_22 + 1u);
+      }
+      continue;
+    }
+  }
+  GroupMemoryBarrierWithGroupSync();
+  int4 v_23[4] = (int4[4])0;
+  int4 val[4] = v_23;
+  foo(val);
+}
+
+[numthreads(1, 1, 1)]
+void main(main_inputs inputs) {
+  main_inner(inputs.tint_local_index);
+}
+
diff --git a/test/tint/array/assign_to_function_var.wgsl.expected.ir.fxc.hlsl b/test/tint/array/assign_to_function_var.wgsl.expected.ir.fxc.hlsl
index 0ba40c6..b729aa9 100644
--- a/test/tint/array/assign_to_function_var.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/array/assign_to_function_var.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,127 @@
-SKIP: FAILED
+struct S {
+  int4 arr[4];
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct main_inputs {
+  uint tint_local_index : SV_GroupIndex;
+};
+
+
+static int4 src_private[4] = (int4[4])0;
+groupshared int4 src_workgroup[4];
+cbuffer cbuffer_src_uniform : register(b0) {
+  uint4 src_uniform[4];
+};
+RWByteAddressBuffer src_storage : register(u1);
+typedef int4 ary_ret[4];
+ary_ret ret_arr() {
+  int4 v[4] = (int4[4])0;
+  return v;
+}
+
+S ret_struct_arr() {
+  S v_1 = (S)0;
+  return v_1;
+}
+
+typedef int4 ary_ret_1[4];
+ary_ret_1 v_2(uint offset) {
+  int4 a[4] = (int4[4])0;
+  {
+    uint v_3 = 0u;
+    v_3 = 0u;
+    while(true) {
+      uint v_4 = v_3;
+      if ((v_4 >= 4u)) {
+        break;
+      }
+      a[v_4] = asint(src_storage.Load4((offset + (v_4 * 16u))));
+      {
+        v_3 = (v_4 + 1u);
+      }
+      continue;
+    }
+  }
+  int4 v_5[4] = a;
+  return v_5;
+}
+
+typedef int4 ary_ret_2[4];
+ary_ret_2 v_6(uint start_byte_offset) {
+  int4 a[4] = (int4[4])0;
+  {
+    uint v_7 = 0u;
+    v_7 = 0u;
+    while(true) {
+      uint v_8 = v_7;
+      if ((v_8 >= 4u)) {
+        break;
+      }
+      a[v_8] = asint(src_uniform[((start_byte_offset + (v_8 * 16u)) / 16u)]);
+      {
+        v_7 = (v_8 + 1u);
+      }
+      continue;
+    }
+  }
+  int4 v_9[4] = a;
+  return v_9;
+}
+
+void foo(int4 src_param[4]) {
+  int4 src_function[4] = (int4[4])0;
+  int4 tint_symbol[4] = (int4[4])0;
+  int4 v_10[4] = {(1).xxxx, (2).xxxx, (3).xxxx, (3).xxxx};
+  tint_symbol = v_10;
+  tint_symbol = src_param;
+  int4 v_11[4] = ret_arr();
+  tint_symbol = v_11;
+  int4 v_12[4] = (int4[4])0;
+  int4 src_let[4] = v_12;
+  tint_symbol = src_let;
+  int4 v_13[4] = src_function;
+  tint_symbol = v_13;
+  int4 v_14[4] = src_private;
+  tint_symbol = v_14;
+  int4 v_15[4] = src_workgroup;
+  tint_symbol = v_15;
+  S v_16 = ret_struct_arr();
+  int4 v_17[4] = v_16.arr;
+  tint_symbol = v_17;
+  int4 v_18[4] = v_6(0u);
+  tint_symbol = v_18;
+  int4 v_19[4] = v_2(0u);
+  tint_symbol = v_19;
+  int dst_nested[4][3][2] = (int[4][3][2])0;
+  int src_nested[4][3][2] = (int[4][3][2])0;
+  int v_20[4][3][2] = src_nested;
+  dst_nested = v_20;
+}
+
+void main_inner(uint tint_local_index) {
+  {
+    uint v_21 = 0u;
+    v_21 = tint_local_index;
+    while(true) {
+      uint v_22 = v_21;
+      if ((v_22 >= 4u)) {
+        break;
+      }
+      src_workgroup[v_22] = (0).xxxx;
+      {
+        v_21 = (v_22 + 1u);
+      }
+      continue;
+    }
+  }
+  GroupMemoryBarrierWithGroupSync();
+  int4 v_23[4] = (int4[4])0;
+  int4 val[4] = v_23;
+  foo(val);
+}
+
+[numthreads(1, 1, 1)]
+void main(main_inputs inputs) {
+  main_inner(inputs.tint_local_index);
+}
+
diff --git a/test/tint/array/assign_to_private_var.wgsl.expected.ir.dxc.hlsl b/test/tint/array/assign_to_private_var.wgsl.expected.ir.dxc.hlsl
index 0ba40c6..4af67d3 100644
--- a/test/tint/array/assign_to_private_var.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/array/assign_to_private_var.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,127 @@
-SKIP: FAILED
+struct S {
+  int4 arr[4];
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct main_inputs {
+  uint tint_local_index : SV_GroupIndex;
+};
+
+
+static int4 src_private[4] = (int4[4])0;
+groupshared int4 src_workgroup[4];
+cbuffer cbuffer_src_uniform : register(b0) {
+  uint4 src_uniform[4];
+};
+RWByteAddressBuffer src_storage : register(u1);
+static int4 tint_symbol[4] = (int4[4])0;
+static int dst_nested[4][3][2] = (int[4][3][2])0;
+typedef int4 ary_ret[4];
+ary_ret ret_arr() {
+  int4 v[4] = (int4[4])0;
+  return v;
+}
+
+S ret_struct_arr() {
+  S v_1 = (S)0;
+  return v_1;
+}
+
+typedef int4 ary_ret_1[4];
+ary_ret_1 v_2(uint offset) {
+  int4 a[4] = (int4[4])0;
+  {
+    uint v_3 = 0u;
+    v_3 = 0u;
+    while(true) {
+      uint v_4 = v_3;
+      if ((v_4 >= 4u)) {
+        break;
+      }
+      a[v_4] = asint(src_storage.Load4((offset + (v_4 * 16u))));
+      {
+        v_3 = (v_4 + 1u);
+      }
+      continue;
+    }
+  }
+  int4 v_5[4] = a;
+  return v_5;
+}
+
+typedef int4 ary_ret_2[4];
+ary_ret_2 v_6(uint start_byte_offset) {
+  int4 a[4] = (int4[4])0;
+  {
+    uint v_7 = 0u;
+    v_7 = 0u;
+    while(true) {
+      uint v_8 = v_7;
+      if ((v_8 >= 4u)) {
+        break;
+      }
+      a[v_8] = asint(src_uniform[((start_byte_offset + (v_8 * 16u)) / 16u)]);
+      {
+        v_7 = (v_8 + 1u);
+      }
+      continue;
+    }
+  }
+  int4 v_9[4] = a;
+  return v_9;
+}
+
+void foo(int4 src_param[4]) {
+  int4 src_function[4] = (int4[4])0;
+  int4 v_10[4] = {(1).xxxx, (2).xxxx, (3).xxxx, (3).xxxx};
+  tint_symbol = v_10;
+  tint_symbol = src_param;
+  int4 v_11[4] = ret_arr();
+  tint_symbol = v_11;
+  int4 v_12[4] = (int4[4])0;
+  int4 src_let[4] = v_12;
+  tint_symbol = src_let;
+  int4 v_13[4] = src_function;
+  tint_symbol = v_13;
+  int4 v_14[4] = src_private;
+  tint_symbol = v_14;
+  int4 v_15[4] = src_workgroup;
+  tint_symbol = v_15;
+  S v_16 = ret_struct_arr();
+  int4 v_17[4] = v_16.arr;
+  tint_symbol = v_17;
+  int4 v_18[4] = v_6(0u);
+  tint_symbol = v_18;
+  int4 v_19[4] = v_2(0u);
+  tint_symbol = v_19;
+  int src_nested[4][3][2] = (int[4][3][2])0;
+  int v_20[4][3][2] = src_nested;
+  dst_nested = v_20;
+}
+
+void main_inner(uint tint_local_index) {
+  {
+    uint v_21 = 0u;
+    v_21 = tint_local_index;
+    while(true) {
+      uint v_22 = v_21;
+      if ((v_22 >= 4u)) {
+        break;
+      }
+      src_workgroup[v_22] = (0).xxxx;
+      {
+        v_21 = (v_22 + 1u);
+      }
+      continue;
+    }
+  }
+  GroupMemoryBarrierWithGroupSync();
+  int4 v_23[4] = (int4[4])0;
+  int4 a[4] = v_23;
+  foo(a);
+}
+
+[numthreads(1, 1, 1)]
+void main(main_inputs inputs) {
+  main_inner(inputs.tint_local_index);
+}
+
diff --git a/test/tint/array/assign_to_private_var.wgsl.expected.ir.fxc.hlsl b/test/tint/array/assign_to_private_var.wgsl.expected.ir.fxc.hlsl
index 0ba40c6..4af67d3 100644
--- a/test/tint/array/assign_to_private_var.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/array/assign_to_private_var.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,127 @@
-SKIP: FAILED
+struct S {
+  int4 arr[4];
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct main_inputs {
+  uint tint_local_index : SV_GroupIndex;
+};
+
+
+static int4 src_private[4] = (int4[4])0;
+groupshared int4 src_workgroup[4];
+cbuffer cbuffer_src_uniform : register(b0) {
+  uint4 src_uniform[4];
+};
+RWByteAddressBuffer src_storage : register(u1);
+static int4 tint_symbol[4] = (int4[4])0;
+static int dst_nested[4][3][2] = (int[4][3][2])0;
+typedef int4 ary_ret[4];
+ary_ret ret_arr() {
+  int4 v[4] = (int4[4])0;
+  return v;
+}
+
+S ret_struct_arr() {
+  S v_1 = (S)0;
+  return v_1;
+}
+
+typedef int4 ary_ret_1[4];
+ary_ret_1 v_2(uint offset) {
+  int4 a[4] = (int4[4])0;
+  {
+    uint v_3 = 0u;
+    v_3 = 0u;
+    while(true) {
+      uint v_4 = v_3;
+      if ((v_4 >= 4u)) {
+        break;
+      }
+      a[v_4] = asint(src_storage.Load4((offset + (v_4 * 16u))));
+      {
+        v_3 = (v_4 + 1u);
+      }
+      continue;
+    }
+  }
+  int4 v_5[4] = a;
+  return v_5;
+}
+
+typedef int4 ary_ret_2[4];
+ary_ret_2 v_6(uint start_byte_offset) {
+  int4 a[4] = (int4[4])0;
+  {
+    uint v_7 = 0u;
+    v_7 = 0u;
+    while(true) {
+      uint v_8 = v_7;
+      if ((v_8 >= 4u)) {
+        break;
+      }
+      a[v_8] = asint(src_uniform[((start_byte_offset + (v_8 * 16u)) / 16u)]);
+      {
+        v_7 = (v_8 + 1u);
+      }
+      continue;
+    }
+  }
+  int4 v_9[4] = a;
+  return v_9;
+}
+
+void foo(int4 src_param[4]) {
+  int4 src_function[4] = (int4[4])0;
+  int4 v_10[4] = {(1).xxxx, (2).xxxx, (3).xxxx, (3).xxxx};
+  tint_symbol = v_10;
+  tint_symbol = src_param;
+  int4 v_11[4] = ret_arr();
+  tint_symbol = v_11;
+  int4 v_12[4] = (int4[4])0;
+  int4 src_let[4] = v_12;
+  tint_symbol = src_let;
+  int4 v_13[4] = src_function;
+  tint_symbol = v_13;
+  int4 v_14[4] = src_private;
+  tint_symbol = v_14;
+  int4 v_15[4] = src_workgroup;
+  tint_symbol = v_15;
+  S v_16 = ret_struct_arr();
+  int4 v_17[4] = v_16.arr;
+  tint_symbol = v_17;
+  int4 v_18[4] = v_6(0u);
+  tint_symbol = v_18;
+  int4 v_19[4] = v_2(0u);
+  tint_symbol = v_19;
+  int src_nested[4][3][2] = (int[4][3][2])0;
+  int v_20[4][3][2] = src_nested;
+  dst_nested = v_20;
+}
+
+void main_inner(uint tint_local_index) {
+  {
+    uint v_21 = 0u;
+    v_21 = tint_local_index;
+    while(true) {
+      uint v_22 = v_21;
+      if ((v_22 >= 4u)) {
+        break;
+      }
+      src_workgroup[v_22] = (0).xxxx;
+      {
+        v_21 = (v_22 + 1u);
+      }
+      continue;
+    }
+  }
+  GroupMemoryBarrierWithGroupSync();
+  int4 v_23[4] = (int4[4])0;
+  int4 a[4] = v_23;
+  foo(a);
+}
+
+[numthreads(1, 1, 1)]
+void main(main_inputs inputs) {
+  main_inner(inputs.tint_local_index);
+}
+
diff --git a/test/tint/array/assign_to_storage_var.wgsl.expected.ir.dxc.hlsl b/test/tint/array/assign_to_storage_var.wgsl.expected.ir.dxc.hlsl
index 0ba40c6..cdcae53 100644
--- a/test/tint/array/assign_to_storage_var.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/array/assign_to_storage_var.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,201 @@
-SKIP: FAILED
+struct S {
+  int4 arr[4];
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct main_inputs {
+  uint tint_local_index : SV_GroupIndex;
+};
+
+
+static int4 src_private[4] = (int4[4])0;
+groupshared int4 src_workgroup[4];
+cbuffer cbuffer_src_uniform : register(b0) {
+  uint4 src_uniform[4];
+};
+RWByteAddressBuffer src_storage : register(u1);
+RWByteAddressBuffer tint_symbol : register(u2);
+RWByteAddressBuffer dst_nested : register(u3);
+typedef int4 ary_ret[4];
+ary_ret ret_arr() {
+  int4 v[4] = (int4[4])0;
+  return v;
+}
+
+S ret_struct_arr() {
+  S v_1 = (S)0;
+  return v_1;
+}
+
+void v_2(uint offset, int obj[2]) {
+  {
+    uint v_3 = 0u;
+    v_3 = 0u;
+    while(true) {
+      uint v_4 = v_3;
+      if ((v_4 >= 2u)) {
+        break;
+      }
+      dst_nested.Store((offset + (v_4 * 4u)), asuint(obj[v_4]));
+      {
+        v_3 = (v_4 + 1u);
+      }
+      continue;
+    }
+  }
+}
+
+void v_5(uint offset, int obj[3][2]) {
+  {
+    uint v_6 = 0u;
+    v_6 = 0u;
+    while(true) {
+      uint v_7 = v_6;
+      if ((v_7 >= 3u)) {
+        break;
+      }
+      int v_8[2] = obj[v_7];
+      v_2((offset + (v_7 * 8u)), v_8);
+      {
+        v_6 = (v_7 + 1u);
+      }
+      continue;
+    }
+  }
+}
+
+void v_9(uint offset, int obj[4][3][2]) {
+  {
+    uint v_10 = 0u;
+    v_10 = 0u;
+    while(true) {
+      uint v_11 = v_10;
+      if ((v_11 >= 4u)) {
+        break;
+      }
+      int v_12[3][2] = obj[v_11];
+      v_5((offset + (v_11 * 24u)), v_12);
+      {
+        v_10 = (v_11 + 1u);
+      }
+      continue;
+    }
+  }
+}
+
+void v_13(uint offset, int4 obj[4]) {
+  {
+    uint v_14 = 0u;
+    v_14 = 0u;
+    while(true) {
+      uint v_15 = v_14;
+      if ((v_15 >= 4u)) {
+        break;
+      }
+      tint_symbol.Store4((offset + (v_15 * 16u)), asuint(obj[v_15]));
+      {
+        v_14 = (v_15 + 1u);
+      }
+      continue;
+    }
+  }
+}
+
+typedef int4 ary_ret_1[4];
+ary_ret_1 v_16(uint offset) {
+  int4 a[4] = (int4[4])0;
+  {
+    uint v_17 = 0u;
+    v_17 = 0u;
+    while(true) {
+      uint v_18 = v_17;
+      if ((v_18 >= 4u)) {
+        break;
+      }
+      a[v_18] = asint(src_storage.Load4((offset + (v_18 * 16u))));
+      {
+        v_17 = (v_18 + 1u);
+      }
+      continue;
+    }
+  }
+  int4 v_19[4] = a;
+  return v_19;
+}
+
+typedef int4 ary_ret_2[4];
+ary_ret_2 v_20(uint start_byte_offset) {
+  int4 a[4] = (int4[4])0;
+  {
+    uint v_21 = 0u;
+    v_21 = 0u;
+    while(true) {
+      uint v_22 = v_21;
+      if ((v_22 >= 4u)) {
+        break;
+      }
+      a[v_22] = asint(src_uniform[((start_byte_offset + (v_22 * 16u)) / 16u)]);
+      {
+        v_21 = (v_22 + 1u);
+      }
+      continue;
+    }
+  }
+  int4 v_23[4] = a;
+  return v_23;
+}
+
+void foo(int4 src_param[4]) {
+  int4 src_function[4] = (int4[4])0;
+  int4 v_24[4] = {(1).xxxx, (2).xxxx, (3).xxxx, (3).xxxx};
+  v_13(0u, v_24);
+  v_13(0u, src_param);
+  int4 v_25[4] = ret_arr();
+  v_13(0u, v_25);
+  int4 v_26[4] = (int4[4])0;
+  int4 src_let[4] = v_26;
+  v_13(0u, src_let);
+  int4 v_27[4] = src_function;
+  v_13(0u, v_27);
+  int4 v_28[4] = src_private;
+  v_13(0u, v_28);
+  int4 v_29[4] = src_workgroup;
+  v_13(0u, v_29);
+  S v_30 = ret_struct_arr();
+  int4 v_31[4] = v_30.arr;
+  v_13(0u, v_31);
+  int4 v_32[4] = v_20(0u);
+  v_13(0u, v_32);
+  int4 v_33[4] = v_16(0u);
+  v_13(0u, v_33);
+  int src_nested[4][3][2] = (int[4][3][2])0;
+  int v_34[4][3][2] = src_nested;
+  v_9(0u, v_34);
+}
+
+void main_inner(uint tint_local_index) {
+  {
+    uint v_35 = 0u;
+    v_35 = tint_local_index;
+    while(true) {
+      uint v_36 = v_35;
+      if ((v_36 >= 4u)) {
+        break;
+      }
+      src_workgroup[v_36] = (0).xxxx;
+      {
+        v_35 = (v_36 + 1u);
+      }
+      continue;
+    }
+  }
+  GroupMemoryBarrierWithGroupSync();
+  int4 v_37[4] = (int4[4])0;
+  int4 ary[4] = v_37;
+  foo(ary);
+}
+
+[numthreads(1, 1, 1)]
+void main(main_inputs inputs) {
+  main_inner(inputs.tint_local_index);
+}
+
diff --git a/test/tint/array/assign_to_storage_var.wgsl.expected.ir.fxc.hlsl b/test/tint/array/assign_to_storage_var.wgsl.expected.ir.fxc.hlsl
index 0ba40c6..cdcae53 100644
--- a/test/tint/array/assign_to_storage_var.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/array/assign_to_storage_var.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,201 @@
-SKIP: FAILED
+struct S {
+  int4 arr[4];
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct main_inputs {
+  uint tint_local_index : SV_GroupIndex;
+};
+
+
+static int4 src_private[4] = (int4[4])0;
+groupshared int4 src_workgroup[4];
+cbuffer cbuffer_src_uniform : register(b0) {
+  uint4 src_uniform[4];
+};
+RWByteAddressBuffer src_storage : register(u1);
+RWByteAddressBuffer tint_symbol : register(u2);
+RWByteAddressBuffer dst_nested : register(u3);
+typedef int4 ary_ret[4];
+ary_ret ret_arr() {
+  int4 v[4] = (int4[4])0;
+  return v;
+}
+
+S ret_struct_arr() {
+  S v_1 = (S)0;
+  return v_1;
+}
+
+void v_2(uint offset, int obj[2]) {
+  {
+    uint v_3 = 0u;
+    v_3 = 0u;
+    while(true) {
+      uint v_4 = v_3;
+      if ((v_4 >= 2u)) {
+        break;
+      }
+      dst_nested.Store((offset + (v_4 * 4u)), asuint(obj[v_4]));
+      {
+        v_3 = (v_4 + 1u);
+      }
+      continue;
+    }
+  }
+}
+
+void v_5(uint offset, int obj[3][2]) {
+  {
+    uint v_6 = 0u;
+    v_6 = 0u;
+    while(true) {
+      uint v_7 = v_6;
+      if ((v_7 >= 3u)) {
+        break;
+      }
+      int v_8[2] = obj[v_7];
+      v_2((offset + (v_7 * 8u)), v_8);
+      {
+        v_6 = (v_7 + 1u);
+      }
+      continue;
+    }
+  }
+}
+
+void v_9(uint offset, int obj[4][3][2]) {
+  {
+    uint v_10 = 0u;
+    v_10 = 0u;
+    while(true) {
+      uint v_11 = v_10;
+      if ((v_11 >= 4u)) {
+        break;
+      }
+      int v_12[3][2] = obj[v_11];
+      v_5((offset + (v_11 * 24u)), v_12);
+      {
+        v_10 = (v_11 + 1u);
+      }
+      continue;
+    }
+  }
+}
+
+void v_13(uint offset, int4 obj[4]) {
+  {
+    uint v_14 = 0u;
+    v_14 = 0u;
+    while(true) {
+      uint v_15 = v_14;
+      if ((v_15 >= 4u)) {
+        break;
+      }
+      tint_symbol.Store4((offset + (v_15 * 16u)), asuint(obj[v_15]));
+      {
+        v_14 = (v_15 + 1u);
+      }
+      continue;
+    }
+  }
+}
+
+typedef int4 ary_ret_1[4];
+ary_ret_1 v_16(uint offset) {
+  int4 a[4] = (int4[4])0;
+  {
+    uint v_17 = 0u;
+    v_17 = 0u;
+    while(true) {
+      uint v_18 = v_17;
+      if ((v_18 >= 4u)) {
+        break;
+      }
+      a[v_18] = asint(src_storage.Load4((offset + (v_18 * 16u))));
+      {
+        v_17 = (v_18 + 1u);
+      }
+      continue;
+    }
+  }
+  int4 v_19[4] = a;
+  return v_19;
+}
+
+typedef int4 ary_ret_2[4];
+ary_ret_2 v_20(uint start_byte_offset) {
+  int4 a[4] = (int4[4])0;
+  {
+    uint v_21 = 0u;
+    v_21 = 0u;
+    while(true) {
+      uint v_22 = v_21;
+      if ((v_22 >= 4u)) {
+        break;
+      }
+      a[v_22] = asint(src_uniform[((start_byte_offset + (v_22 * 16u)) / 16u)]);
+      {
+        v_21 = (v_22 + 1u);
+      }
+      continue;
+    }
+  }
+  int4 v_23[4] = a;
+  return v_23;
+}
+
+void foo(int4 src_param[4]) {
+  int4 src_function[4] = (int4[4])0;
+  int4 v_24[4] = {(1).xxxx, (2).xxxx, (3).xxxx, (3).xxxx};
+  v_13(0u, v_24);
+  v_13(0u, src_param);
+  int4 v_25[4] = ret_arr();
+  v_13(0u, v_25);
+  int4 v_26[4] = (int4[4])0;
+  int4 src_let[4] = v_26;
+  v_13(0u, src_let);
+  int4 v_27[4] = src_function;
+  v_13(0u, v_27);
+  int4 v_28[4] = src_private;
+  v_13(0u, v_28);
+  int4 v_29[4] = src_workgroup;
+  v_13(0u, v_29);
+  S v_30 = ret_struct_arr();
+  int4 v_31[4] = v_30.arr;
+  v_13(0u, v_31);
+  int4 v_32[4] = v_20(0u);
+  v_13(0u, v_32);
+  int4 v_33[4] = v_16(0u);
+  v_13(0u, v_33);
+  int src_nested[4][3][2] = (int[4][3][2])0;
+  int v_34[4][3][2] = src_nested;
+  v_9(0u, v_34);
+}
+
+void main_inner(uint tint_local_index) {
+  {
+    uint v_35 = 0u;
+    v_35 = tint_local_index;
+    while(true) {
+      uint v_36 = v_35;
+      if ((v_36 >= 4u)) {
+        break;
+      }
+      src_workgroup[v_36] = (0).xxxx;
+      {
+        v_35 = (v_36 + 1u);
+      }
+      continue;
+    }
+  }
+  GroupMemoryBarrierWithGroupSync();
+  int4 v_37[4] = (int4[4])0;
+  int4 ary[4] = v_37;
+  foo(ary);
+}
+
+[numthreads(1, 1, 1)]
+void main(main_inputs inputs) {
+  main_inner(inputs.tint_local_index);
+}
+
diff --git a/test/tint/array/assign_to_subexpr.wgsl.expected.ir.dxc.hlsl b/test/tint/array/assign_to_subexpr.wgsl.expected.ir.dxc.hlsl
index 0ba40c6..798f310 100644
--- a/test/tint/array/assign_to_subexpr.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/array/assign_to_subexpr.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,32 @@
-SKIP: FAILED
+struct S {
+  int arr[4];
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+
+RWByteAddressBuffer s : register(u0);
+int foo() {
+  int v[4] = (int[4])0;
+  int tint_symbol[4] = (int[4])0;
+  S dst_struct = (S)0;
+  int dst_array[2][4] = (int[2][4])0;
+  int dst_ptr[4] = tint_symbol;
+  S dst_struct_ptr = dst_struct;
+  int dst_array_ptr[2][4] = dst_array;
+  int src[4] = v;
+  dst_struct.arr = src;
+  int v_1[4] = v;
+  dst_array[1] = v_1;
+  int v_2[4] = v;
+  dst_ptr = v_2;
+  int v_3[4] = v;
+  dst_struct_ptr.arr = v_3;
+  int v_4[4] = v;
+  dst_array_ptr[0] = v_4;
+  return ((dst_ptr[0] + dst_struct_ptr.arr[0]) + dst_array_ptr[0][0]);
+}
+
+[numthreads(1, 1, 1)]
+void main() {
+  s.Store(0u, asuint(foo()));
+}
+
diff --git a/test/tint/array/assign_to_subexpr.wgsl.expected.ir.fxc.hlsl b/test/tint/array/assign_to_subexpr.wgsl.expected.ir.fxc.hlsl
index 0ba40c6..798f310 100644
--- a/test/tint/array/assign_to_subexpr.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/array/assign_to_subexpr.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,32 @@
-SKIP: FAILED
+struct S {
+  int arr[4];
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+
+RWByteAddressBuffer s : register(u0);
+int foo() {
+  int v[4] = (int[4])0;
+  int tint_symbol[4] = (int[4])0;
+  S dst_struct = (S)0;
+  int dst_array[2][4] = (int[2][4])0;
+  int dst_ptr[4] = tint_symbol;
+  S dst_struct_ptr = dst_struct;
+  int dst_array_ptr[2][4] = dst_array;
+  int src[4] = v;
+  dst_struct.arr = src;
+  int v_1[4] = v;
+  dst_array[1] = v_1;
+  int v_2[4] = v;
+  dst_ptr = v_2;
+  int v_3[4] = v;
+  dst_struct_ptr.arr = v_3;
+  int v_4[4] = v;
+  dst_array_ptr[0] = v_4;
+  return ((dst_ptr[0] + dst_struct_ptr.arr[0]) + dst_array_ptr[0][0]);
+}
+
+[numthreads(1, 1, 1)]
+void main() {
+  s.Store(0u, asuint(foo()));
+}
+
diff --git a/test/tint/array/assign_to_workgroup_var.wgsl.expected.ir.dxc.hlsl b/test/tint/array/assign_to_workgroup_var.wgsl.expected.ir.dxc.hlsl
index 0ba40c6..4560c29 100644
--- a/test/tint/array/assign_to_workgroup_var.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/array/assign_to_workgroup_var.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,143 @@
-SKIP: FAILED
+struct S {
+  int4 arr[4];
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct main_inputs {
+  uint tint_local_index : SV_GroupIndex;
+};
+
+
+static int4 src_private[4] = (int4[4])0;
+groupshared int4 src_workgroup[4];
+cbuffer cbuffer_src_uniform : register(b0) {
+  uint4 src_uniform[4];
+};
+RWByteAddressBuffer src_storage : register(u1);
+groupshared int4 tint_symbol[4];
+groupshared int dst_nested[4][3][2];
+typedef int4 ary_ret[4];
+ary_ret ret_arr() {
+  int4 v[4] = (int4[4])0;
+  return v;
+}
+
+S ret_struct_arr() {
+  S v_1 = (S)0;
+  return v_1;
+}
+
+typedef int4 ary_ret_1[4];
+ary_ret_1 v_2(uint offset) {
+  int4 a[4] = (int4[4])0;
+  {
+    uint v_3 = 0u;
+    v_3 = 0u;
+    while(true) {
+      uint v_4 = v_3;
+      if ((v_4 >= 4u)) {
+        break;
+      }
+      a[v_4] = asint(src_storage.Load4((offset + (v_4 * 16u))));
+      {
+        v_3 = (v_4 + 1u);
+      }
+      continue;
+    }
+  }
+  int4 v_5[4] = a;
+  return v_5;
+}
+
+typedef int4 ary_ret_2[4];
+ary_ret_2 v_6(uint start_byte_offset) {
+  int4 a[4] = (int4[4])0;
+  {
+    uint v_7 = 0u;
+    v_7 = 0u;
+    while(true) {
+      uint v_8 = v_7;
+      if ((v_8 >= 4u)) {
+        break;
+      }
+      a[v_8] = asint(src_uniform[((start_byte_offset + (v_8 * 16u)) / 16u)]);
+      {
+        v_7 = (v_8 + 1u);
+      }
+      continue;
+    }
+  }
+  int4 v_9[4] = a;
+  return v_9;
+}
+
+void foo(int4 src_param[4]) {
+  int4 src_function[4] = (int4[4])0;
+  int4 v_10[4] = {(1).xxxx, (2).xxxx, (3).xxxx, (3).xxxx};
+  tint_symbol = v_10;
+  tint_symbol = src_param;
+  int4 v_11[4] = ret_arr();
+  tint_symbol = v_11;
+  int4 v_12[4] = (int4[4])0;
+  int4 src_let[4] = v_12;
+  tint_symbol = src_let;
+  int4 v_13[4] = src_function;
+  tint_symbol = v_13;
+  int4 v_14[4] = src_private;
+  tint_symbol = v_14;
+  int4 v_15[4] = src_workgroup;
+  tint_symbol = v_15;
+  S v_16 = ret_struct_arr();
+  int4 v_17[4] = v_16.arr;
+  tint_symbol = v_17;
+  int4 v_18[4] = v_6(0u);
+  tint_symbol = v_18;
+  int4 v_19[4] = v_2(0u);
+  tint_symbol = v_19;
+  int src_nested[4][3][2] = (int[4][3][2])0;
+  int v_20[4][3][2] = src_nested;
+  dst_nested = v_20;
+}
+
+void main_inner(uint tint_local_index) {
+  {
+    uint v_21 = 0u;
+    v_21 = tint_local_index;
+    while(true) {
+      uint v_22 = v_21;
+      if ((v_22 >= 4u)) {
+        break;
+      }
+      src_workgroup[v_22] = (0).xxxx;
+      tint_symbol[v_22] = (0).xxxx;
+      {
+        v_21 = (v_22 + 1u);
+      }
+      continue;
+    }
+  }
+  {
+    uint v_23 = 0u;
+    v_23 = tint_local_index;
+    while(true) {
+      uint v_24 = v_23;
+      if ((v_24 >= 24u)) {
+        break;
+      }
+      dst_nested[(v_24 / 6u)][((v_24 / 2u) % 3u)][(v_24 % 2u)] = 0;
+      {
+        v_23 = (v_24 + 1u);
+      }
+      continue;
+    }
+  }
+  GroupMemoryBarrierWithGroupSync();
+  int4 v_25[4] = (int4[4])0;
+  int4 val[4] = v_25;
+  foo(val);
+}
+
+[numthreads(1, 1, 1)]
+void main(main_inputs inputs) {
+  main_inner(inputs.tint_local_index);
+}
+
diff --git a/test/tint/array/assign_to_workgroup_var.wgsl.expected.ir.fxc.hlsl b/test/tint/array/assign_to_workgroup_var.wgsl.expected.ir.fxc.hlsl
index 0ba40c6..4560c29 100644
--- a/test/tint/array/assign_to_workgroup_var.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/array/assign_to_workgroup_var.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,143 @@
-SKIP: FAILED
+struct S {
+  int4 arr[4];
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct main_inputs {
+  uint tint_local_index : SV_GroupIndex;
+};
+
+
+static int4 src_private[4] = (int4[4])0;
+groupshared int4 src_workgroup[4];
+cbuffer cbuffer_src_uniform : register(b0) {
+  uint4 src_uniform[4];
+};
+RWByteAddressBuffer src_storage : register(u1);
+groupshared int4 tint_symbol[4];
+groupshared int dst_nested[4][3][2];
+typedef int4 ary_ret[4];
+ary_ret ret_arr() {
+  int4 v[4] = (int4[4])0;
+  return v;
+}
+
+S ret_struct_arr() {
+  S v_1 = (S)0;
+  return v_1;
+}
+
+typedef int4 ary_ret_1[4];
+ary_ret_1 v_2(uint offset) {
+  int4 a[4] = (int4[4])0;
+  {
+    uint v_3 = 0u;
+    v_3 = 0u;
+    while(true) {
+      uint v_4 = v_3;
+      if ((v_4 >= 4u)) {
+        break;
+      }
+      a[v_4] = asint(src_storage.Load4((offset + (v_4 * 16u))));
+      {
+        v_3 = (v_4 + 1u);
+      }
+      continue;
+    }
+  }
+  int4 v_5[4] = a;
+  return v_5;
+}
+
+typedef int4 ary_ret_2[4];
+ary_ret_2 v_6(uint start_byte_offset) {
+  int4 a[4] = (int4[4])0;
+  {
+    uint v_7 = 0u;
+    v_7 = 0u;
+    while(true) {
+      uint v_8 = v_7;
+      if ((v_8 >= 4u)) {
+        break;
+      }
+      a[v_8] = asint(src_uniform[((start_byte_offset + (v_8 * 16u)) / 16u)]);
+      {
+        v_7 = (v_8 + 1u);
+      }
+      continue;
+    }
+  }
+  int4 v_9[4] = a;
+  return v_9;
+}
+
+void foo(int4 src_param[4]) {
+  int4 src_function[4] = (int4[4])0;
+  int4 v_10[4] = {(1).xxxx, (2).xxxx, (3).xxxx, (3).xxxx};
+  tint_symbol = v_10;
+  tint_symbol = src_param;
+  int4 v_11[4] = ret_arr();
+  tint_symbol = v_11;
+  int4 v_12[4] = (int4[4])0;
+  int4 src_let[4] = v_12;
+  tint_symbol = src_let;
+  int4 v_13[4] = src_function;
+  tint_symbol = v_13;
+  int4 v_14[4] = src_private;
+  tint_symbol = v_14;
+  int4 v_15[4] = src_workgroup;
+  tint_symbol = v_15;
+  S v_16 = ret_struct_arr();
+  int4 v_17[4] = v_16.arr;
+  tint_symbol = v_17;
+  int4 v_18[4] = v_6(0u);
+  tint_symbol = v_18;
+  int4 v_19[4] = v_2(0u);
+  tint_symbol = v_19;
+  int src_nested[4][3][2] = (int[4][3][2])0;
+  int v_20[4][3][2] = src_nested;
+  dst_nested = v_20;
+}
+
+void main_inner(uint tint_local_index) {
+  {
+    uint v_21 = 0u;
+    v_21 = tint_local_index;
+    while(true) {
+      uint v_22 = v_21;
+      if ((v_22 >= 4u)) {
+        break;
+      }
+      src_workgroup[v_22] = (0).xxxx;
+      tint_symbol[v_22] = (0).xxxx;
+      {
+        v_21 = (v_22 + 1u);
+      }
+      continue;
+    }
+  }
+  {
+    uint v_23 = 0u;
+    v_23 = tint_local_index;
+    while(true) {
+      uint v_24 = v_23;
+      if ((v_24 >= 24u)) {
+        break;
+      }
+      dst_nested[(v_24 / 6u)][((v_24 / 2u) % 3u)][(v_24 % 2u)] = 0;
+      {
+        v_23 = (v_24 + 1u);
+      }
+      continue;
+    }
+  }
+  GroupMemoryBarrierWithGroupSync();
+  int4 v_25[4] = (int4[4])0;
+  int4 val[4] = v_25;
+  foo(val);
+}
+
+[numthreads(1, 1, 1)]
+void main(main_inputs inputs) {
+  main_inner(inputs.tint_local_index);
+}
+
diff --git a/test/tint/array/function_parameter.wgsl.expected.ir.dxc.hlsl b/test/tint/array/function_parameter.wgsl.expected.ir.dxc.hlsl
index 3f437dc..5e8a15f 100644
--- a/test/tint/array/function_parameter.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/array/function_parameter.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,28 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Access
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWByteAddressBuffer s : register(u0);
+float f1(float a[4]) {
+  return a[3];
+}
+
+float f2(float a[3][4]) {
+  return a[2][3];
+}
+
+float f3(float a[2][3][4]) {
+  return a[1][2][3];
+}
+
+[numthreads(1, 1, 1)]
+void main() {
+  float v[4] = (float[4])0;
+  float v_1[3][4] = (float[3][4])0;
+  float v_2[2][3][4] = (float[2][3][4])0;
+  float a1[4] = v;
+  float v1 = f1(a1);
+  float a2[3][4] = v_1;
+  float v2 = f2(a2);
+  float a3[2][3][4] = v_2;
+  float v3 = f3(a3);
+  s.Store(0u, asuint(((v1 + v2) + v3)));
+}
+
diff --git a/test/tint/array/function_parameter.wgsl.expected.ir.fxc.hlsl b/test/tint/array/function_parameter.wgsl.expected.ir.fxc.hlsl
index 3f437dc..5e8a15f 100644
--- a/test/tint/array/function_parameter.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/array/function_parameter.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,28 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Access
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWByteAddressBuffer s : register(u0);
+float f1(float a[4]) {
+  return a[3];
+}
+
+float f2(float a[3][4]) {
+  return a[2][3];
+}
+
+float f3(float a[2][3][4]) {
+  return a[1][2][3];
+}
+
+[numthreads(1, 1, 1)]
+void main() {
+  float v[4] = (float[4])0;
+  float v_1[3][4] = (float[3][4])0;
+  float v_2[2][3][4] = (float[2][3][4])0;
+  float a1[4] = v;
+  float v1 = f1(a1);
+  float a2[3][4] = v_1;
+  float v2 = f2(a2);
+  float a3[2][3][4] = v_2;
+  float v3 = f3(a3);
+  s.Store(0u, asuint(((v1 + v2) + v3)));
+}
+
diff --git a/test/tint/array/function_return_type.wgsl.expected.ir.dxc.hlsl b/test/tint/array/function_return_type.wgsl.expected.ir.dxc.hlsl
index c6e1d96..90f9dda 100644
--- a/test/tint/array/function_return_type.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/array/function_return_type.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,39 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Construct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWByteAddressBuffer s : register(u0);
+typedef float ary_ret[4];
+ary_ret f1() {
+  float v[4] = (float[4])0;
+  return v;
+}
+
+typedef float ary_ret_1[3][4];
+ary_ret_1 f2() {
+  float v_1[4] = f1();
+  float v_2[4] = f1();
+  float v_3[4] = v_1;
+  float v_4[4] = v_2;
+  float v_5[4] = f1();
+  float v_6[3][4] = {v_3, v_4, v_5};
+  return v_6;
+}
+
+typedef float ary_ret_2[2][3][4];
+ary_ret_2 f3() {
+  float v_7[3][4] = f2();
+  float v_8[3][4] = v_7;
+  float v_9[3][4] = f2();
+  float v_10[2][3][4] = {v_8, v_9};
+  return v_10;
+}
+
+[numthreads(1, 1, 1)]
+void main() {
+  float v_11[4] = f1();
+  float v_12[3][4] = f2();
+  float v_13[2][3][4] = f3();
+  float a1[4] = v_11;
+  float a2[3][4] = v_12;
+  float a3[2][3][4] = v_13;
+  s.Store(0u, asuint(((a1[0] + a2[0][0]) + a3[0][0][0])));
+}
+
diff --git a/test/tint/array/function_return_type.wgsl.expected.ir.fxc.hlsl b/test/tint/array/function_return_type.wgsl.expected.ir.fxc.hlsl
index c6e1d96..90f9dda 100644
--- a/test/tint/array/function_return_type.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/array/function_return_type.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,39 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Construct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWByteAddressBuffer s : register(u0);
+typedef float ary_ret[4];
+ary_ret f1() {
+  float v[4] = (float[4])0;
+  return v;
+}
+
+typedef float ary_ret_1[3][4];
+ary_ret_1 f2() {
+  float v_1[4] = f1();
+  float v_2[4] = f1();
+  float v_3[4] = v_1;
+  float v_4[4] = v_2;
+  float v_5[4] = f1();
+  float v_6[3][4] = {v_3, v_4, v_5};
+  return v_6;
+}
+
+typedef float ary_ret_2[2][3][4];
+ary_ret_2 f3() {
+  float v_7[3][4] = f2();
+  float v_8[3][4] = v_7;
+  float v_9[3][4] = f2();
+  float v_10[2][3][4] = {v_8, v_9};
+  return v_10;
+}
+
+[numthreads(1, 1, 1)]
+void main() {
+  float v_11[4] = f1();
+  float v_12[3][4] = f2();
+  float v_13[2][3][4] = f3();
+  float a1[4] = v_11;
+  float a2[3][4] = v_12;
+  float a3[2][3][4] = v_13;
+  s.Store(0u, asuint(((a1[0] + a2[0][0]) + a3[0][0][0])));
+}
+
diff --git a/test/tint/array/size.wgsl.expected.ir.dxc.hlsl b/test/tint/array/size.wgsl.expected.ir.dxc.hlsl
index 3f437dc..697dadb 100644
--- a/test/tint/array/size.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/array/size.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,19 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Access
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWByteAddressBuffer s : register(u0);
+void main() {
+  float signed_literal[4] = (float[4])0;
+  float unsigned_literal[4] = (float[4])0;
+  float signed_constant[4] = (float[4])0;
+  float unsigned_constant[4] = (float[4])0;
+  float shr_const_expr[4] = (float[4])0;
+  float v[4] = signed_literal;
+  unsigned_literal = v;
+  float v_1[4] = signed_literal;
+  signed_constant = v_1;
+  float v_2[4] = signed_literal;
+  unsigned_constant = v_2;
+  float v_3[4] = signed_literal;
+  shr_const_expr = v_3;
+  s.Store(0u, asuint(((((signed_literal[0] + unsigned_literal[0]) + signed_constant[0]) + unsigned_constant[0]) + shr_const_expr[0])));
+}
+
diff --git a/test/tint/array/size.wgsl.expected.ir.fxc.hlsl b/test/tint/array/size.wgsl.expected.ir.fxc.hlsl
index 3f437dc..697dadb 100644
--- a/test/tint/array/size.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/array/size.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,19 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Access
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWByteAddressBuffer s : register(u0);
+void main() {
+  float signed_literal[4] = (float[4])0;
+  float unsigned_literal[4] = (float[4])0;
+  float signed_constant[4] = (float[4])0;
+  float unsigned_constant[4] = (float[4])0;
+  float shr_const_expr[4] = (float[4])0;
+  float v[4] = signed_literal;
+  unsigned_literal = v;
+  float v_1[4] = signed_literal;
+  signed_constant = v_1;
+  float v_2[4] = signed_literal;
+  unsigned_constant = v_2;
+  float v_3[4] = signed_literal;
+  shr_const_expr = v_3;
+  s.Store(0u, asuint(((((signed_literal[0] + unsigned_literal[0]) + signed_constant[0]) + unsigned_constant[0]) + shr_const_expr[0])));
+}
+
diff --git a/test/tint/array/strides.spvasm.expected.ir.dxc.hlsl b/test/tint/array/strides.spvasm.expected.ir.dxc.hlsl
index 3f437dc..9e95308 100644
--- a/test/tint/array/strides.spvasm.expected.ir.dxc.hlsl
+++ b/test/tint/array/strides.spvasm.expected.ir.dxc.hlsl
@@ -1,9 +1,171 @@
-SKIP: FAILED
+struct strided_arr {
+  float el;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Access
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct strided_arr_1 {
+  strided_arr el[3][2];
+};
+
+
+RWByteAddressBuffer s : register(u0);
+void v(uint offset, strided_arr obj) {
+  s.Store((offset + 0u), asuint(obj.el));
+}
+
+void v_1(uint offset, strided_arr obj[2]) {
+  {
+    uint v_2 = 0u;
+    v_2 = 0u;
+    while(true) {
+      uint v_3 = v_2;
+      if ((v_3 >= 2u)) {
+        break;
+      }
+      strided_arr v_4 = obj[v_3];
+      v((offset + (v_3 * 8u)), v_4);
+      {
+        v_2 = (v_3 + 1u);
+      }
+      continue;
+    }
+  }
+}
+
+void v_5(uint offset, strided_arr obj[3][2]) {
+  {
+    uint v_6 = 0u;
+    v_6 = 0u;
+    while(true) {
+      uint v_7 = v_6;
+      if ((v_7 >= 3u)) {
+        break;
+      }
+      strided_arr v_8[2] = obj[v_7];
+      v_1((offset + (v_7 * 16u)), v_8);
+      {
+        v_6 = (v_7 + 1u);
+      }
+      continue;
+    }
+  }
+}
+
+void v_9(uint offset, strided_arr_1 obj) {
+  strided_arr v_10[3][2] = obj.el;
+  v_5((offset + 0u), v_10);
+}
+
+void v_11(uint offset, strided_arr_1 obj[4]) {
+  {
+    uint v_12 = 0u;
+    v_12 = 0u;
+    while(true) {
+      uint v_13 = v_12;
+      if ((v_13 >= 4u)) {
+        break;
+      }
+      strided_arr_1 v_14 = obj[v_13];
+      v_9((offset + (v_13 * 128u)), v_14);
+      {
+        v_12 = (v_13 + 1u);
+      }
+      continue;
+    }
+  }
+}
+
+strided_arr v_15(uint offset) {
+  strided_arr v_16 = {asfloat(s.Load((offset + 0u)))};
+  return v_16;
+}
+
+typedef strided_arr ary_ret[2];
+ary_ret v_17(uint offset) {
+  strided_arr a[2] = (strided_arr[2])0;
+  {
+    uint v_18 = 0u;
+    v_18 = 0u;
+    while(true) {
+      uint v_19 = v_18;
+      if ((v_19 >= 2u)) {
+        break;
+      }
+      strided_arr v_20 = v_15((offset + (v_19 * 8u)));
+      a[v_19] = v_20;
+      {
+        v_18 = (v_19 + 1u);
+      }
+      continue;
+    }
+  }
+  strided_arr v_21[2] = a;
+  return v_21;
+}
+
+typedef strided_arr ary_ret_1[3][2];
+ary_ret_1 v_22(uint offset) {
+  strided_arr a[3][2] = (strided_arr[3][2])0;
+  {
+    uint v_23 = 0u;
+    v_23 = 0u;
+    while(true) {
+      uint v_24 = v_23;
+      if ((v_24 >= 3u)) {
+        break;
+      }
+      strided_arr v_25[2] = v_17((offset + (v_24 * 16u)));
+      a[v_24] = v_25;
+      {
+        v_23 = (v_24 + 1u);
+      }
+      continue;
+    }
+  }
+  strided_arr v_26[3][2] = a;
+  return v_26;
+}
+
+strided_arr_1 v_27(uint offset) {
+  strided_arr v_28[3][2] = v_22((offset + 0u));
+  strided_arr_1 v_29 = {v_28};
+  return v_29;
+}
+
+typedef strided_arr_1 ary_ret_2[4];
+ary_ret_2 v_30(uint offset) {
+  strided_arr_1 a[4] = (strided_arr_1[4])0;
+  {
+    uint v_31 = 0u;
+    v_31 = 0u;
+    while(true) {
+      uint v_32 = v_31;
+      if ((v_32 >= 4u)) {
+        break;
+      }
+      strided_arr_1 v_33 = v_27((offset + (v_32 * 128u)));
+      a[v_32] = v_33;
+      {
+        v_31 = (v_32 + 1u);
+      }
+      continue;
+    }
+  }
+  strided_arr_1 v_34[4] = a;
+  return v_34;
+}
+
+void f_1() {
+  strided_arr_1 x_19[4] = v_30(0u);
+  strided_arr x_24[3][2] = v_22(384u);
+  strided_arr x_28[2] = v_17(416u);
+  float x_32 = asfloat(s.Load(424u));
+  strided_arr_1 v_35[4] = (strided_arr_1[4])0;
+  v_11(0u, v_35);
+  s.Store(424u, asuint(5.0f));
+}
+
+[numthreads(1, 1, 1)]
+void f() {
+  f_1();
+}
+
diff --git a/test/tint/array/strides.spvasm.expected.ir.fxc.hlsl b/test/tint/array/strides.spvasm.expected.ir.fxc.hlsl
index 3f437dc..9e95308 100644
--- a/test/tint/array/strides.spvasm.expected.ir.fxc.hlsl
+++ b/test/tint/array/strides.spvasm.expected.ir.fxc.hlsl
@@ -1,9 +1,171 @@
-SKIP: FAILED
+struct strided_arr {
+  float el;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Access
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct strided_arr_1 {
+  strided_arr el[3][2];
+};
+
+
+RWByteAddressBuffer s : register(u0);
+void v(uint offset, strided_arr obj) {
+  s.Store((offset + 0u), asuint(obj.el));
+}
+
+void v_1(uint offset, strided_arr obj[2]) {
+  {
+    uint v_2 = 0u;
+    v_2 = 0u;
+    while(true) {
+      uint v_3 = v_2;
+      if ((v_3 >= 2u)) {
+        break;
+      }
+      strided_arr v_4 = obj[v_3];
+      v((offset + (v_3 * 8u)), v_4);
+      {
+        v_2 = (v_3 + 1u);
+      }
+      continue;
+    }
+  }
+}
+
+void v_5(uint offset, strided_arr obj[3][2]) {
+  {
+    uint v_6 = 0u;
+    v_6 = 0u;
+    while(true) {
+      uint v_7 = v_6;
+      if ((v_7 >= 3u)) {
+        break;
+      }
+      strided_arr v_8[2] = obj[v_7];
+      v_1((offset + (v_7 * 16u)), v_8);
+      {
+        v_6 = (v_7 + 1u);
+      }
+      continue;
+    }
+  }
+}
+
+void v_9(uint offset, strided_arr_1 obj) {
+  strided_arr v_10[3][2] = obj.el;
+  v_5((offset + 0u), v_10);
+}
+
+void v_11(uint offset, strided_arr_1 obj[4]) {
+  {
+    uint v_12 = 0u;
+    v_12 = 0u;
+    while(true) {
+      uint v_13 = v_12;
+      if ((v_13 >= 4u)) {
+        break;
+      }
+      strided_arr_1 v_14 = obj[v_13];
+      v_9((offset + (v_13 * 128u)), v_14);
+      {
+        v_12 = (v_13 + 1u);
+      }
+      continue;
+    }
+  }
+}
+
+strided_arr v_15(uint offset) {
+  strided_arr v_16 = {asfloat(s.Load((offset + 0u)))};
+  return v_16;
+}
+
+typedef strided_arr ary_ret[2];
+ary_ret v_17(uint offset) {
+  strided_arr a[2] = (strided_arr[2])0;
+  {
+    uint v_18 = 0u;
+    v_18 = 0u;
+    while(true) {
+      uint v_19 = v_18;
+      if ((v_19 >= 2u)) {
+        break;
+      }
+      strided_arr v_20 = v_15((offset + (v_19 * 8u)));
+      a[v_19] = v_20;
+      {
+        v_18 = (v_19 + 1u);
+      }
+      continue;
+    }
+  }
+  strided_arr v_21[2] = a;
+  return v_21;
+}
+
+typedef strided_arr ary_ret_1[3][2];
+ary_ret_1 v_22(uint offset) {
+  strided_arr a[3][2] = (strided_arr[3][2])0;
+  {
+    uint v_23 = 0u;
+    v_23 = 0u;
+    while(true) {
+      uint v_24 = v_23;
+      if ((v_24 >= 3u)) {
+        break;
+      }
+      strided_arr v_25[2] = v_17((offset + (v_24 * 16u)));
+      a[v_24] = v_25;
+      {
+        v_23 = (v_24 + 1u);
+      }
+      continue;
+    }
+  }
+  strided_arr v_26[3][2] = a;
+  return v_26;
+}
+
+strided_arr_1 v_27(uint offset) {
+  strided_arr v_28[3][2] = v_22((offset + 0u));
+  strided_arr_1 v_29 = {v_28};
+  return v_29;
+}
+
+typedef strided_arr_1 ary_ret_2[4];
+ary_ret_2 v_30(uint offset) {
+  strided_arr_1 a[4] = (strided_arr_1[4])0;
+  {
+    uint v_31 = 0u;
+    v_31 = 0u;
+    while(true) {
+      uint v_32 = v_31;
+      if ((v_32 >= 4u)) {
+        break;
+      }
+      strided_arr_1 v_33 = v_27((offset + (v_32 * 128u)));
+      a[v_32] = v_33;
+      {
+        v_31 = (v_32 + 1u);
+      }
+      continue;
+    }
+  }
+  strided_arr_1 v_34[4] = a;
+  return v_34;
+}
+
+void f_1() {
+  strided_arr_1 x_19[4] = v_30(0u);
+  strided_arr x_24[3][2] = v_22(384u);
+  strided_arr x_28[2] = v_17(416u);
+  float x_32 = asfloat(s.Load(424u));
+  strided_arr_1 v_35[4] = (strided_arr_1[4])0;
+  v_11(0u, v_35);
+  s.Store(424u, asuint(5.0f));
+}
+
+[numthreads(1, 1, 1)]
+void f() {
+  f_1();
+}
+
diff --git a/test/tint/array/type_initializer.wgsl.expected.ir.dxc.hlsl b/test/tint/array/type_initializer.wgsl.expected.ir.dxc.hlsl
index c6e1d96..35cb5bd 100644
--- a/test/tint/array/type_initializer.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/array/type_initializer.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,46 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Construct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWByteAddressBuffer s : register(u0);
+[numthreads(1, 1, 1)]
+void main() {
+  int x = 42;
+  int v[4] = (int[4])0;
+  int v_1[4] = {1, 2, 3, 4};
+  int nonempty[4] = v_1;
+  int v_2[4] = {1, x, (x + 1), nonempty[3]};
+  int v_3[2][3][4] = (int[2][3][4])0;
+  int v_4[2][3][4] = {{{1, 2, 3, 4}, {5, 6, 7, 8}, {9, 10, 11, 12}}, {{13, 14, 15, 16}, {17, 18, 19, 20}, {21, 22, 23, 24}}};
+  int v_5[4] = {1, 2, x, (x + 1)};
+  int v_6[4] = v_1;
+  int v_7[4] = v_1;
+  int v_8[4] = v_5;
+  int v_9[4] = {5, 6, v_6[2], (v_7[3] + 1)};
+  int v_10[4] = v_1;
+  int nested_nonempty[2][3][4] = v_4;
+  int v_11[3][4] = {v_8, v_9, v_10};
+  int v_12[3][4] = nested_nonempty[1];
+  int v_13[2][3][4] = {v_11, v_12};
+  int subexpr_empty = 0;
+  int subexpr_nonempty = 3;
+  int v_14[4] = v_1;
+  int v_15[4] = {1, x, (x + 1), v_14[3]};
+  int subexpr_nonempty_with_expr = v_15[2];
+  int v_16[4] = (int[4])0;
+  int v_17[4] = {5, 6, 7, 8};
+  int v_18[4] = v_1;
+  int v_19[2][3][4] = v_4;
+  int v_20[4] = {1, x, (x + 1), v_18[3]};
+  int v_21[4] = v_19[1][2];
+  int v_22[2][4] = {v_20, v_21};
+  int v_23[4] = v_22[1];
+  int empty[4] = v;
+  int v_24[4] = v_1;
+  int nonempty_with_expr[4] = v_2;
+  int nested_empty[2][3][4] = v_3;
+  int v_25[2][3][4] = v_4;
+  int nested_nonempty_with_expr[2][3][4] = v_13;
+  int subexpr_nested_empty[4] = v_16;
+  int subexpr_nested_nonempty[4] = v_17;
+  int subexpr_nested_nonempty_with_expr[4] = v_23;
+  s.Store(0u, asuint((((((((((((empty[0] + v_24[0]) + nonempty_with_expr[0]) + nested_empty[0][0][0]) + v_25[0][0][0]) + nested_nonempty_with_expr[0][0][0]) + subexpr_empty) + subexpr_nonempty) + subexpr_nonempty_with_expr) + subexpr_nested_empty[0]) + subexpr_nested_nonempty[0]) + subexpr_nested_nonempty_with_expr[0])));
+}
+
diff --git a/test/tint/array/type_initializer.wgsl.expected.ir.fxc.hlsl b/test/tint/array/type_initializer.wgsl.expected.ir.fxc.hlsl
index c6e1d96..35cb5bd 100644
--- a/test/tint/array/type_initializer.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/array/type_initializer.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,46 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Construct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWByteAddressBuffer s : register(u0);
+[numthreads(1, 1, 1)]
+void main() {
+  int x = 42;
+  int v[4] = (int[4])0;
+  int v_1[4] = {1, 2, 3, 4};
+  int nonempty[4] = v_1;
+  int v_2[4] = {1, x, (x + 1), nonempty[3]};
+  int v_3[2][3][4] = (int[2][3][4])0;
+  int v_4[2][3][4] = {{{1, 2, 3, 4}, {5, 6, 7, 8}, {9, 10, 11, 12}}, {{13, 14, 15, 16}, {17, 18, 19, 20}, {21, 22, 23, 24}}};
+  int v_5[4] = {1, 2, x, (x + 1)};
+  int v_6[4] = v_1;
+  int v_7[4] = v_1;
+  int v_8[4] = v_5;
+  int v_9[4] = {5, 6, v_6[2], (v_7[3] + 1)};
+  int v_10[4] = v_1;
+  int nested_nonempty[2][3][4] = v_4;
+  int v_11[3][4] = {v_8, v_9, v_10};
+  int v_12[3][4] = nested_nonempty[1];
+  int v_13[2][3][4] = {v_11, v_12};
+  int subexpr_empty = 0;
+  int subexpr_nonempty = 3;
+  int v_14[4] = v_1;
+  int v_15[4] = {1, x, (x + 1), v_14[3]};
+  int subexpr_nonempty_with_expr = v_15[2];
+  int v_16[4] = (int[4])0;
+  int v_17[4] = {5, 6, 7, 8};
+  int v_18[4] = v_1;
+  int v_19[2][3][4] = v_4;
+  int v_20[4] = {1, x, (x + 1), v_18[3]};
+  int v_21[4] = v_19[1][2];
+  int v_22[2][4] = {v_20, v_21};
+  int v_23[4] = v_22[1];
+  int empty[4] = v;
+  int v_24[4] = v_1;
+  int nonempty_with_expr[4] = v_2;
+  int nested_empty[2][3][4] = v_3;
+  int v_25[2][3][4] = v_4;
+  int nested_nonempty_with_expr[2][3][4] = v_13;
+  int subexpr_nested_empty[4] = v_16;
+  int subexpr_nested_nonempty[4] = v_17;
+  int subexpr_nested_nonempty_with_expr[4] = v_23;
+  s.Store(0u, asuint((((((((((((empty[0] + v_24[0]) + nonempty_with_expr[0]) + nested_empty[0][0][0]) + v_25[0][0][0]) + nested_nonempty_with_expr[0][0][0]) + subexpr_empty) + subexpr_nonempty) + subexpr_nonempty_with_expr) + subexpr_nested_empty[0]) + subexpr_nested_nonempty[0]) + subexpr_nested_nonempty_with_expr[0])));
+}
+
diff --git a/test/tint/benchmark/atan2-const-eval.wgsl.expected.ir.dxc.hlsl b/test/tint/benchmark/atan2-const-eval.wgsl.expected.ir.dxc.hlsl
deleted file mode 100644
index 3f437dc..0000000
--- a/test/tint/benchmark/atan2-const-eval.wgsl.expected.ir.dxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Access
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/benchmark/atan2-const-eval.wgsl.expected.ir.fxc.hlsl b/test/tint/benchmark/atan2-const-eval.wgsl.expected.ir.fxc.hlsl
deleted file mode 100644
index 3f437dc..0000000
--- a/test/tint/benchmark/atan2-const-eval.wgsl.expected.ir.fxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Access
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/benchmark/cluster-lights.wgsl.expected.ir.dxc.hlsl b/test/tint/benchmark/cluster-lights.wgsl.expected.ir.dxc.hlsl
deleted file mode 100644
index 3f437dc..0000000
--- a/test/tint/benchmark/cluster-lights.wgsl.expected.ir.dxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Access
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/benchmark/cluster-lights.wgsl.expected.ir.fxc.hlsl b/test/tint/benchmark/cluster-lights.wgsl.expected.ir.fxc.hlsl
deleted file mode 100644
index 3f437dc..0000000
--- a/test/tint/benchmark/cluster-lights.wgsl.expected.ir.fxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Access
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/benchmark/metaball-isosurface.wgsl.expected.ir.dxc.hlsl b/test/tint/benchmark/metaball-isosurface.wgsl.expected.ir.dxc.hlsl
deleted file mode 100644
index bdeab23..0000000
--- a/test/tint/benchmark/metaball-isosurface.wgsl.expected.ir.dxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:198 internal compiler error: Switch() matched no cases. Type: tint::core::ir::If
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/benchmark/metaball-isosurface.wgsl.expected.ir.fxc.hlsl b/test/tint/benchmark/metaball-isosurface.wgsl.expected.ir.fxc.hlsl
deleted file mode 100644
index bdeab23..0000000
--- a/test/tint/benchmark/metaball-isosurface.wgsl.expected.ir.fxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:198 internal compiler error: Switch() matched no cases. Type: tint::core::ir::If
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/benchmark/particles.wgsl.expected.ir.dxc.hlsl b/test/tint/benchmark/particles.wgsl.expected.ir.dxc.hlsl
deleted file mode 100644
index c0935cc..0000000
--- a/test/tint/benchmark/particles.wgsl.expected.ir.dxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:198 internal compiler error: Switch() matched no cases. Type: tint::core::ir::StoreVectorElement
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/benchmark/particles.wgsl.expected.ir.fxc.hlsl b/test/tint/benchmark/particles.wgsl.expected.ir.fxc.hlsl
deleted file mode 100644
index c0935cc..0000000
--- a/test/tint/benchmark/particles.wgsl.expected.ir.fxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:198 internal compiler error: Switch() matched no cases. Type: tint::core::ir::StoreVectorElement
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/benchmark/shadow-fragment.wgsl.expected.ir.dxc.hlsl b/test/tint/benchmark/shadow-fragment.wgsl.expected.ir.dxc.hlsl
index adbb0c1..b7acf20 100644
--- a/test/tint/benchmark/shadow-fragment.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/benchmark/shadow-fragment.wgsl.expected.ir.dxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:198 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Loop
+..\..\src\tint\lang\hlsl\writer\printer\printer.cc:1010 internal compiler error: TINT_UNREACHABLE unhandled: textureSampleCompare
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/benchmark/shadow-fragment.wgsl.expected.ir.fxc.hlsl b/test/tint/benchmark/shadow-fragment.wgsl.expected.ir.fxc.hlsl
index adbb0c1..b7acf20 100644
--- a/test/tint/benchmark/shadow-fragment.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/benchmark/shadow-fragment.wgsl.expected.ir.fxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:198 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Loop
+..\..\src\tint\lang\hlsl\writer\printer\printer.cc:1010 internal compiler error: TINT_UNREACHABLE unhandled: textureSampleCompare
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/benchmark/skinned-shadowed-pbr-fragment.wgsl.expected.ir.dxc.hlsl b/test/tint/benchmark/skinned-shadowed-pbr-fragment.wgsl.expected.ir.dxc.hlsl
index 6b047b4..f8e283a 100644
--- a/test/tint/benchmark/skinned-shadowed-pbr-fragment.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/benchmark/skinned-shadowed-pbr-fragment.wgsl.expected.ir.dxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:287 internal compiler error: Switch() matched no cases. Type: tint::core::ir::FunctionParam
+..\..\src\tint\lang\hlsl\writer\printer\printer.cc:1010 internal compiler error: TINT_UNREACHABLE unhandled: textureSampleCompareLevel
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/benchmark/skinned-shadowed-pbr-fragment.wgsl.expected.ir.fxc.hlsl b/test/tint/benchmark/skinned-shadowed-pbr-fragment.wgsl.expected.ir.fxc.hlsl
index 6b047b4..f8e283a 100644
--- a/test/tint/benchmark/skinned-shadowed-pbr-fragment.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/benchmark/skinned-shadowed-pbr-fragment.wgsl.expected.ir.fxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:287 internal compiler error: Switch() matched no cases. Type: tint::core::ir::FunctionParam
+..\..\src\tint\lang\hlsl\writer\printer\printer.cc:1010 internal compiler error: TINT_UNREACHABLE unhandled: textureSampleCompareLevel
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/benchmark/skinned-shadowed-pbr-vertex.wgsl.expected.ir.dxc.hlsl b/test/tint/benchmark/skinned-shadowed-pbr-vertex.wgsl.expected.ir.dxc.hlsl
deleted file mode 100644
index c6e1d96..0000000
--- a/test/tint/benchmark/skinned-shadowed-pbr-vertex.wgsl.expected.ir.dxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Construct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/benchmark/skinned-shadowed-pbr-vertex.wgsl.expected.ir.fxc.hlsl b/test/tint/benchmark/skinned-shadowed-pbr-vertex.wgsl.expected.ir.fxc.hlsl
deleted file mode 100644
index c6e1d96..0000000
--- a/test/tint/benchmark/skinned-shadowed-pbr-vertex.wgsl.expected.ir.fxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Construct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/benchmark/uniformity-analysis-pointer-parameters.wgsl.expected.ir.dxc.hlsl b/test/tint/benchmark/uniformity-analysis-pointer-parameters.wgsl.expected.ir.dxc.hlsl
deleted file mode 100644
index 6b047b4..0000000
--- a/test/tint/benchmark/uniformity-analysis-pointer-parameters.wgsl.expected.ir.dxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:287 internal compiler error: Switch() matched no cases. Type: tint::core::ir::FunctionParam
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/benchmark/uniformity-analysis-pointer-parameters.wgsl.expected.ir.fxc.hlsl b/test/tint/benchmark/uniformity-analysis-pointer-parameters.wgsl.expected.ir.fxc.hlsl
deleted file mode 100644
index 6b047b4..0000000
--- a/test/tint/benchmark/uniformity-analysis-pointer-parameters.wgsl.expected.ir.fxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:287 internal compiler error: Switch() matched no cases. Type: tint::core::ir::FunctionParam
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/buffer/storage/dynamic_index/read.wgsl.expected.ir.dxc.hlsl b/test/tint/buffer/storage/dynamic_index/read.wgsl.expected.ir.dxc.hlsl
index 3f437dc..e4b1572 100644
--- a/test/tint/buffer/storage/dynamic_index/read.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/buffer/storage/dynamic_index/read.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,136 @@
-SKIP: FAILED
+struct main_inputs {
+  uint idx : SV_GroupIndex;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Access
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+
+ByteAddressBuffer sb : register(t0);
+RWByteAddressBuffer s : register(u1);
+int tint_f32_to_i32(float value) {
+  return (((value <= 2147483520.0f)) ? ((((value >= -2147483648.0f)) ? (int(value)) : (-2147483648))) : (2147483647));
+}
+
+typedef float3 ary_ret[2];
+ary_ret v(uint offset) {
+  float3 a[2] = (float3[2])0;
+  {
+    uint v_1 = 0u;
+    v_1 = 0u;
+    while(true) {
+      uint v_2 = v_1;
+      if ((v_2 >= 2u)) {
+        break;
+      }
+      a[v_2] = asfloat(sb.Load3((offset + (v_2 * 16u))));
+      {
+        v_1 = (v_2 + 1u);
+      }
+      continue;
+    }
+  }
+  float3 v_3[2] = a;
+  return v_3;
+}
+
+float4x4 v_4(uint offset) {
+  float4 v_5 = asfloat(sb.Load4((offset + 0u)));
+  float4 v_6 = asfloat(sb.Load4((offset + 16u)));
+  float4 v_7 = asfloat(sb.Load4((offset + 32u)));
+  return float4x4(v_5, v_6, v_7, asfloat(sb.Load4((offset + 48u))));
+}
+
+float4x3 v_8(uint offset) {
+  float3 v_9 = asfloat(sb.Load3((offset + 0u)));
+  float3 v_10 = asfloat(sb.Load3((offset + 16u)));
+  float3 v_11 = asfloat(sb.Load3((offset + 32u)));
+  return float4x3(v_9, v_10, v_11, asfloat(sb.Load3((offset + 48u))));
+}
+
+float4x2 v_12(uint offset) {
+  float2 v_13 = asfloat(sb.Load2((offset + 0u)));
+  float2 v_14 = asfloat(sb.Load2((offset + 8u)));
+  float2 v_15 = asfloat(sb.Load2((offset + 16u)));
+  return float4x2(v_13, v_14, v_15, asfloat(sb.Load2((offset + 24u))));
+}
+
+float3x4 v_16(uint offset) {
+  float4 v_17 = asfloat(sb.Load4((offset + 0u)));
+  float4 v_18 = asfloat(sb.Load4((offset + 16u)));
+  return float3x4(v_17, v_18, asfloat(sb.Load4((offset + 32u))));
+}
+
+float3x3 v_19(uint offset) {
+  float3 v_20 = asfloat(sb.Load3((offset + 0u)));
+  float3 v_21 = asfloat(sb.Load3((offset + 16u)));
+  return float3x3(v_20, v_21, asfloat(sb.Load3((offset + 32u))));
+}
+
+float3x2 v_22(uint offset) {
+  float2 v_23 = asfloat(sb.Load2((offset + 0u)));
+  float2 v_24 = asfloat(sb.Load2((offset + 8u)));
+  return float3x2(v_23, v_24, asfloat(sb.Load2((offset + 16u))));
+}
+
+float2x4 v_25(uint offset) {
+  float4 v_26 = asfloat(sb.Load4((offset + 0u)));
+  return float2x4(v_26, asfloat(sb.Load4((offset + 16u))));
+}
+
+float2x3 v_27(uint offset) {
+  float3 v_28 = asfloat(sb.Load3((offset + 0u)));
+  return float2x3(v_28, asfloat(sb.Load3((offset + 16u))));
+}
+
+float2x2 v_29(uint offset) {
+  float2 v_30 = asfloat(sb.Load2((offset + 0u)));
+  return float2x2(v_30, asfloat(sb.Load2((offset + 8u))));
+}
+
+void main_inner(uint idx) {
+  float scalar_f32 = asfloat(sb.Load((0u + (uint(idx) * 544u))));
+  int scalar_i32 = asint(sb.Load((4u + (uint(idx) * 544u))));
+  uint scalar_u32 = sb.Load((8u + (uint(idx) * 544u)));
+  float2 vec2_f32 = asfloat(sb.Load2((16u + (uint(idx) * 544u))));
+  int2 vec2_i32 = asint(sb.Load2((24u + (uint(idx) * 544u))));
+  uint2 vec2_u32 = sb.Load2((32u + (uint(idx) * 544u)));
+  float3 vec3_f32 = asfloat(sb.Load3((48u + (uint(idx) * 544u))));
+  int3 vec3_i32 = asint(sb.Load3((64u + (uint(idx) * 544u))));
+  uint3 vec3_u32 = sb.Load3((80u + (uint(idx) * 544u)));
+  float4 vec4_f32 = asfloat(sb.Load4((96u + (uint(idx) * 544u))));
+  int4 vec4_i32 = asint(sb.Load4((112u + (uint(idx) * 544u))));
+  uint4 vec4_u32 = sb.Load4((128u + (uint(idx) * 544u)));
+  float2x2 mat2x2_f32 = v_29((144u + (uint(idx) * 544u)));
+  float2x3 mat2x3_f32 = v_27((160u + (uint(idx) * 544u)));
+  float2x4 mat2x4_f32 = v_25((192u + (uint(idx) * 544u)));
+  float3x2 mat3x2_f32 = v_22((224u + (uint(idx) * 544u)));
+  float3x3 mat3x3_f32 = v_19((256u + (uint(idx) * 544u)));
+  float3x4 mat3x4_f32 = v_16((304u + (uint(idx) * 544u)));
+  float4x2 mat4x2_f32 = v_12((352u + (uint(idx) * 544u)));
+  float4x3 mat4x3_f32 = v_8((384u + (uint(idx) * 544u)));
+  float4x4 mat4x4_f32 = v_4((448u + (uint(idx) * 544u)));
+  float3 v_31[2] = v((512u + (uint(idx) * 544u)));
+  int v_32 = (tint_f32_to_i32(scalar_f32) + scalar_i32);
+  int v_33 = (v_32 + int(scalar_u32));
+  int v_34 = ((v_33 + tint_f32_to_i32(vec2_f32[0u])) + vec2_i32[0u]);
+  int v_35 = (v_34 + int(vec2_u32[0u]));
+  int v_36 = ((v_35 + tint_f32_to_i32(vec3_f32[1u])) + vec3_i32[1u]);
+  int v_37 = (v_36 + int(vec3_u32[1u]));
+  int v_38 = ((v_37 + tint_f32_to_i32(vec4_f32[2u])) + vec4_i32[2u]);
+  int v_39 = (v_38 + int(vec4_u32[2u]));
+  int v_40 = (v_39 + tint_f32_to_i32(mat2x2_f32[0][0u]));
+  int v_41 = (v_40 + tint_f32_to_i32(mat2x3_f32[0][0u]));
+  int v_42 = (v_41 + tint_f32_to_i32(mat2x4_f32[0][0u]));
+  int v_43 = (v_42 + tint_f32_to_i32(mat3x2_f32[0][0u]));
+  int v_44 = (v_43 + tint_f32_to_i32(mat3x3_f32[0][0u]));
+  int v_45 = (v_44 + tint_f32_to_i32(mat3x4_f32[0][0u]));
+  int v_46 = (v_45 + tint_f32_to_i32(mat4x2_f32[0][0u]));
+  int v_47 = (v_46 + tint_f32_to_i32(mat4x3_f32[0][0u]));
+  int v_48 = (v_47 + tint_f32_to_i32(mat4x4_f32[0][0u]));
+  float3 arr2_vec3_f32[2] = v_31;
+  s.Store(0u, asuint((v_48 + tint_f32_to_i32(arr2_vec3_f32[0][0u]))));
+}
+
+[numthreads(1, 1, 1)]
+void main(main_inputs inputs) {
+  main_inner(inputs.idx);
+}
+
diff --git a/test/tint/buffer/storage/dynamic_index/read.wgsl.expected.ir.fxc.hlsl b/test/tint/buffer/storage/dynamic_index/read.wgsl.expected.ir.fxc.hlsl
index 3f437dc..e4b1572 100644
--- a/test/tint/buffer/storage/dynamic_index/read.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/buffer/storage/dynamic_index/read.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,136 @@
-SKIP: FAILED
+struct main_inputs {
+  uint idx : SV_GroupIndex;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Access
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+
+ByteAddressBuffer sb : register(t0);
+RWByteAddressBuffer s : register(u1);
+int tint_f32_to_i32(float value) {
+  return (((value <= 2147483520.0f)) ? ((((value >= -2147483648.0f)) ? (int(value)) : (-2147483648))) : (2147483647));
+}
+
+typedef float3 ary_ret[2];
+ary_ret v(uint offset) {
+  float3 a[2] = (float3[2])0;
+  {
+    uint v_1 = 0u;
+    v_1 = 0u;
+    while(true) {
+      uint v_2 = v_1;
+      if ((v_2 >= 2u)) {
+        break;
+      }
+      a[v_2] = asfloat(sb.Load3((offset + (v_2 * 16u))));
+      {
+        v_1 = (v_2 + 1u);
+      }
+      continue;
+    }
+  }
+  float3 v_3[2] = a;
+  return v_3;
+}
+
+float4x4 v_4(uint offset) {
+  float4 v_5 = asfloat(sb.Load4((offset + 0u)));
+  float4 v_6 = asfloat(sb.Load4((offset + 16u)));
+  float4 v_7 = asfloat(sb.Load4((offset + 32u)));
+  return float4x4(v_5, v_6, v_7, asfloat(sb.Load4((offset + 48u))));
+}
+
+float4x3 v_8(uint offset) {
+  float3 v_9 = asfloat(sb.Load3((offset + 0u)));
+  float3 v_10 = asfloat(sb.Load3((offset + 16u)));
+  float3 v_11 = asfloat(sb.Load3((offset + 32u)));
+  return float4x3(v_9, v_10, v_11, asfloat(sb.Load3((offset + 48u))));
+}
+
+float4x2 v_12(uint offset) {
+  float2 v_13 = asfloat(sb.Load2((offset + 0u)));
+  float2 v_14 = asfloat(sb.Load2((offset + 8u)));
+  float2 v_15 = asfloat(sb.Load2((offset + 16u)));
+  return float4x2(v_13, v_14, v_15, asfloat(sb.Load2((offset + 24u))));
+}
+
+float3x4 v_16(uint offset) {
+  float4 v_17 = asfloat(sb.Load4((offset + 0u)));
+  float4 v_18 = asfloat(sb.Load4((offset + 16u)));
+  return float3x4(v_17, v_18, asfloat(sb.Load4((offset + 32u))));
+}
+
+float3x3 v_19(uint offset) {
+  float3 v_20 = asfloat(sb.Load3((offset + 0u)));
+  float3 v_21 = asfloat(sb.Load3((offset + 16u)));
+  return float3x3(v_20, v_21, asfloat(sb.Load3((offset + 32u))));
+}
+
+float3x2 v_22(uint offset) {
+  float2 v_23 = asfloat(sb.Load2((offset + 0u)));
+  float2 v_24 = asfloat(sb.Load2((offset + 8u)));
+  return float3x2(v_23, v_24, asfloat(sb.Load2((offset + 16u))));
+}
+
+float2x4 v_25(uint offset) {
+  float4 v_26 = asfloat(sb.Load4((offset + 0u)));
+  return float2x4(v_26, asfloat(sb.Load4((offset + 16u))));
+}
+
+float2x3 v_27(uint offset) {
+  float3 v_28 = asfloat(sb.Load3((offset + 0u)));
+  return float2x3(v_28, asfloat(sb.Load3((offset + 16u))));
+}
+
+float2x2 v_29(uint offset) {
+  float2 v_30 = asfloat(sb.Load2((offset + 0u)));
+  return float2x2(v_30, asfloat(sb.Load2((offset + 8u))));
+}
+
+void main_inner(uint idx) {
+  float scalar_f32 = asfloat(sb.Load((0u + (uint(idx) * 544u))));
+  int scalar_i32 = asint(sb.Load((4u + (uint(idx) * 544u))));
+  uint scalar_u32 = sb.Load((8u + (uint(idx) * 544u)));
+  float2 vec2_f32 = asfloat(sb.Load2((16u + (uint(idx) * 544u))));
+  int2 vec2_i32 = asint(sb.Load2((24u + (uint(idx) * 544u))));
+  uint2 vec2_u32 = sb.Load2((32u + (uint(idx) * 544u)));
+  float3 vec3_f32 = asfloat(sb.Load3((48u + (uint(idx) * 544u))));
+  int3 vec3_i32 = asint(sb.Load3((64u + (uint(idx) * 544u))));
+  uint3 vec3_u32 = sb.Load3((80u + (uint(idx) * 544u)));
+  float4 vec4_f32 = asfloat(sb.Load4((96u + (uint(idx) * 544u))));
+  int4 vec4_i32 = asint(sb.Load4((112u + (uint(idx) * 544u))));
+  uint4 vec4_u32 = sb.Load4((128u + (uint(idx) * 544u)));
+  float2x2 mat2x2_f32 = v_29((144u + (uint(idx) * 544u)));
+  float2x3 mat2x3_f32 = v_27((160u + (uint(idx) * 544u)));
+  float2x4 mat2x4_f32 = v_25((192u + (uint(idx) * 544u)));
+  float3x2 mat3x2_f32 = v_22((224u + (uint(idx) * 544u)));
+  float3x3 mat3x3_f32 = v_19((256u + (uint(idx) * 544u)));
+  float3x4 mat3x4_f32 = v_16((304u + (uint(idx) * 544u)));
+  float4x2 mat4x2_f32 = v_12((352u + (uint(idx) * 544u)));
+  float4x3 mat4x3_f32 = v_8((384u + (uint(idx) * 544u)));
+  float4x4 mat4x4_f32 = v_4((448u + (uint(idx) * 544u)));
+  float3 v_31[2] = v((512u + (uint(idx) * 544u)));
+  int v_32 = (tint_f32_to_i32(scalar_f32) + scalar_i32);
+  int v_33 = (v_32 + int(scalar_u32));
+  int v_34 = ((v_33 + tint_f32_to_i32(vec2_f32[0u])) + vec2_i32[0u]);
+  int v_35 = (v_34 + int(vec2_u32[0u]));
+  int v_36 = ((v_35 + tint_f32_to_i32(vec3_f32[1u])) + vec3_i32[1u]);
+  int v_37 = (v_36 + int(vec3_u32[1u]));
+  int v_38 = ((v_37 + tint_f32_to_i32(vec4_f32[2u])) + vec4_i32[2u]);
+  int v_39 = (v_38 + int(vec4_u32[2u]));
+  int v_40 = (v_39 + tint_f32_to_i32(mat2x2_f32[0][0u]));
+  int v_41 = (v_40 + tint_f32_to_i32(mat2x3_f32[0][0u]));
+  int v_42 = (v_41 + tint_f32_to_i32(mat2x4_f32[0][0u]));
+  int v_43 = (v_42 + tint_f32_to_i32(mat3x2_f32[0][0u]));
+  int v_44 = (v_43 + tint_f32_to_i32(mat3x3_f32[0][0u]));
+  int v_45 = (v_44 + tint_f32_to_i32(mat3x4_f32[0][0u]));
+  int v_46 = (v_45 + tint_f32_to_i32(mat4x2_f32[0][0u]));
+  int v_47 = (v_46 + tint_f32_to_i32(mat4x3_f32[0][0u]));
+  int v_48 = (v_47 + tint_f32_to_i32(mat4x4_f32[0][0u]));
+  float3 arr2_vec3_f32[2] = v_31;
+  s.Store(0u, asuint((v_48 + tint_f32_to_i32(arr2_vec3_f32[0][0u]))));
+}
+
+[numthreads(1, 1, 1)]
+void main(main_inputs inputs) {
+  main_inner(inputs.idx);
+}
+
diff --git a/test/tint/buffer/storage/dynamic_index/read_f16.wgsl.expected.ir.dxc.hlsl b/test/tint/buffer/storage/dynamic_index/read_f16.wgsl.expected.ir.dxc.hlsl
index 3f437dc..143f3ad 100644
--- a/test/tint/buffer/storage/dynamic_index/read_f16.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/buffer/storage/dynamic_index/read_f16.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,245 @@
-SKIP: FAILED
+struct main_inputs {
+  uint idx : SV_GroupIndex;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Access
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+
+ByteAddressBuffer sb : register(t0);
+RWByteAddressBuffer s : register(u1);
+int tint_f32_to_i32(float value) {
+  return (((value <= 2147483520.0f)) ? ((((value >= -2147483648.0f)) ? (int(value)) : (-2147483648))) : (2147483647));
+}
+
+int tint_f16_to_i32(float16_t value) {
+  return (((value <= float16_t(65504.0h))) ? ((((value >= float16_t(-65504.0h))) ? (int(value)) : (-2147483648))) : (2147483647));
+}
+
+matrix<float16_t, 4, 2> v(uint offset) {
+  vector<float16_t, 2> v_1 = sb.Load<vector<float16_t, 2> >((offset + 0u));
+  vector<float16_t, 2> v_2 = sb.Load<vector<float16_t, 2> >((offset + 4u));
+  vector<float16_t, 2> v_3 = sb.Load<vector<float16_t, 2> >((offset + 8u));
+  return matrix<float16_t, 4, 2>(v_1, v_2, v_3, sb.Load<vector<float16_t, 2> >((offset + 12u)));
+}
+
+typedef matrix<float16_t, 4, 2> ary_ret[2];
+ary_ret v_4(uint offset) {
+  matrix<float16_t, 4, 2> a[2] = (matrix<float16_t, 4, 2>[2])0;
+  {
+    uint v_5 = 0u;
+    v_5 = 0u;
+    while(true) {
+      uint v_6 = v_5;
+      if ((v_6 >= 2u)) {
+        break;
+      }
+      a[v_6] = v((offset + (v_6 * 16u)));
+      {
+        v_5 = (v_6 + 1u);
+      }
+      continue;
+    }
+  }
+  matrix<float16_t, 4, 2> v_7[2] = a;
+  return v_7;
+}
+
+typedef float3 ary_ret_1[2];
+ary_ret_1 v_8(uint offset) {
+  float3 a[2] = (float3[2])0;
+  {
+    uint v_9 = 0u;
+    v_9 = 0u;
+    while(true) {
+      uint v_10 = v_9;
+      if ((v_10 >= 2u)) {
+        break;
+      }
+      a[v_10] = asfloat(sb.Load3((offset + (v_10 * 16u))));
+      {
+        v_9 = (v_10 + 1u);
+      }
+      continue;
+    }
+  }
+  float3 v_11[2] = a;
+  return v_11;
+}
+
+matrix<float16_t, 4, 4> v_12(uint offset) {
+  vector<float16_t, 4> v_13 = sb.Load<vector<float16_t, 4> >((offset + 0u));
+  vector<float16_t, 4> v_14 = sb.Load<vector<float16_t, 4> >((offset + 8u));
+  vector<float16_t, 4> v_15 = sb.Load<vector<float16_t, 4> >((offset + 16u));
+  return matrix<float16_t, 4, 4>(v_13, v_14, v_15, sb.Load<vector<float16_t, 4> >((offset + 24u)));
+}
+
+matrix<float16_t, 4, 3> v_16(uint offset) {
+  vector<float16_t, 3> v_17 = sb.Load<vector<float16_t, 3> >((offset + 0u));
+  vector<float16_t, 3> v_18 = sb.Load<vector<float16_t, 3> >((offset + 8u));
+  vector<float16_t, 3> v_19 = sb.Load<vector<float16_t, 3> >((offset + 16u));
+  return matrix<float16_t, 4, 3>(v_17, v_18, v_19, sb.Load<vector<float16_t, 3> >((offset + 24u)));
+}
+
+matrix<float16_t, 3, 4> v_20(uint offset) {
+  vector<float16_t, 4> v_21 = sb.Load<vector<float16_t, 4> >((offset + 0u));
+  vector<float16_t, 4> v_22 = sb.Load<vector<float16_t, 4> >((offset + 8u));
+  return matrix<float16_t, 3, 4>(v_21, v_22, sb.Load<vector<float16_t, 4> >((offset + 16u)));
+}
+
+matrix<float16_t, 3, 3> v_23(uint offset) {
+  vector<float16_t, 3> v_24 = sb.Load<vector<float16_t, 3> >((offset + 0u));
+  vector<float16_t, 3> v_25 = sb.Load<vector<float16_t, 3> >((offset + 8u));
+  return matrix<float16_t, 3, 3>(v_24, v_25, sb.Load<vector<float16_t, 3> >((offset + 16u)));
+}
+
+matrix<float16_t, 3, 2> v_26(uint offset) {
+  vector<float16_t, 2> v_27 = sb.Load<vector<float16_t, 2> >((offset + 0u));
+  vector<float16_t, 2> v_28 = sb.Load<vector<float16_t, 2> >((offset + 4u));
+  return matrix<float16_t, 3, 2>(v_27, v_28, sb.Load<vector<float16_t, 2> >((offset + 8u)));
+}
+
+matrix<float16_t, 2, 4> v_29(uint offset) {
+  vector<float16_t, 4> v_30 = sb.Load<vector<float16_t, 4> >((offset + 0u));
+  return matrix<float16_t, 2, 4>(v_30, sb.Load<vector<float16_t, 4> >((offset + 8u)));
+}
+
+matrix<float16_t, 2, 3> v_31(uint offset) {
+  vector<float16_t, 3> v_32 = sb.Load<vector<float16_t, 3> >((offset + 0u));
+  return matrix<float16_t, 2, 3>(v_32, sb.Load<vector<float16_t, 3> >((offset + 8u)));
+}
+
+matrix<float16_t, 2, 2> v_33(uint offset) {
+  vector<float16_t, 2> v_34 = sb.Load<vector<float16_t, 2> >((offset + 0u));
+  return matrix<float16_t, 2, 2>(v_34, sb.Load<vector<float16_t, 2> >((offset + 4u)));
+}
+
+float4x4 v_35(uint offset) {
+  float4 v_36 = asfloat(sb.Load4((offset + 0u)));
+  float4 v_37 = asfloat(sb.Load4((offset + 16u)));
+  float4 v_38 = asfloat(sb.Load4((offset + 32u)));
+  return float4x4(v_36, v_37, v_38, asfloat(sb.Load4((offset + 48u))));
+}
+
+float4x3 v_39(uint offset) {
+  float3 v_40 = asfloat(sb.Load3((offset + 0u)));
+  float3 v_41 = asfloat(sb.Load3((offset + 16u)));
+  float3 v_42 = asfloat(sb.Load3((offset + 32u)));
+  return float4x3(v_40, v_41, v_42, asfloat(sb.Load3((offset + 48u))));
+}
+
+float4x2 v_43(uint offset) {
+  float2 v_44 = asfloat(sb.Load2((offset + 0u)));
+  float2 v_45 = asfloat(sb.Load2((offset + 8u)));
+  float2 v_46 = asfloat(sb.Load2((offset + 16u)));
+  return float4x2(v_44, v_45, v_46, asfloat(sb.Load2((offset + 24u))));
+}
+
+float3x4 v_47(uint offset) {
+  float4 v_48 = asfloat(sb.Load4((offset + 0u)));
+  float4 v_49 = asfloat(sb.Load4((offset + 16u)));
+  return float3x4(v_48, v_49, asfloat(sb.Load4((offset + 32u))));
+}
+
+float3x3 v_50(uint offset) {
+  float3 v_51 = asfloat(sb.Load3((offset + 0u)));
+  float3 v_52 = asfloat(sb.Load3((offset + 16u)));
+  return float3x3(v_51, v_52, asfloat(sb.Load3((offset + 32u))));
+}
+
+float3x2 v_53(uint offset) {
+  float2 v_54 = asfloat(sb.Load2((offset + 0u)));
+  float2 v_55 = asfloat(sb.Load2((offset + 8u)));
+  return float3x2(v_54, v_55, asfloat(sb.Load2((offset + 16u))));
+}
+
+float2x4 v_56(uint offset) {
+  float4 v_57 = asfloat(sb.Load4((offset + 0u)));
+  return float2x4(v_57, asfloat(sb.Load4((offset + 16u))));
+}
+
+float2x3 v_58(uint offset) {
+  float3 v_59 = asfloat(sb.Load3((offset + 0u)));
+  return float2x3(v_59, asfloat(sb.Load3((offset + 16u))));
+}
+
+float2x2 v_60(uint offset) {
+  float2 v_61 = asfloat(sb.Load2((offset + 0u)));
+  return float2x2(v_61, asfloat(sb.Load2((offset + 8u))));
+}
+
+void main_inner(uint idx) {
+  float scalar_f32 = asfloat(sb.Load((0u + (uint(idx) * 800u))));
+  int scalar_i32 = asint(sb.Load((4u + (uint(idx) * 800u))));
+  uint scalar_u32 = sb.Load((8u + (uint(idx) * 800u)));
+  float16_t scalar_f16 = sb.Load<float16_t>((12u + (uint(idx) * 800u)));
+  float2 vec2_f32 = asfloat(sb.Load2((16u + (uint(idx) * 800u))));
+  int2 vec2_i32 = asint(sb.Load2((24u + (uint(idx) * 800u))));
+  uint2 vec2_u32 = sb.Load2((32u + (uint(idx) * 800u)));
+  vector<float16_t, 2> vec2_f16 = sb.Load<vector<float16_t, 2> >((40u + (uint(idx) * 800u)));
+  float3 vec3_f32 = asfloat(sb.Load3((48u + (uint(idx) * 800u))));
+  int3 vec3_i32 = asint(sb.Load3((64u + (uint(idx) * 800u))));
+  uint3 vec3_u32 = sb.Load3((80u + (uint(idx) * 800u)));
+  vector<float16_t, 3> vec3_f16 = sb.Load<vector<float16_t, 3> >((96u + (uint(idx) * 800u)));
+  float4 vec4_f32 = asfloat(sb.Load4((112u + (uint(idx) * 800u))));
+  int4 vec4_i32 = asint(sb.Load4((128u + (uint(idx) * 800u))));
+  uint4 vec4_u32 = sb.Load4((144u + (uint(idx) * 800u)));
+  vector<float16_t, 4> vec4_f16 = sb.Load<vector<float16_t, 4> >((160u + (uint(idx) * 800u)));
+  float2x2 mat2x2_f32 = v_60((168u + (uint(idx) * 800u)));
+  float2x3 mat2x3_f32 = v_58((192u + (uint(idx) * 800u)));
+  float2x4 mat2x4_f32 = v_56((224u + (uint(idx) * 800u)));
+  float3x2 mat3x2_f32 = v_53((256u + (uint(idx) * 800u)));
+  float3x3 mat3x3_f32 = v_50((288u + (uint(idx) * 800u)));
+  float3x4 mat3x4_f32 = v_47((336u + (uint(idx) * 800u)));
+  float4x2 mat4x2_f32 = v_43((384u + (uint(idx) * 800u)));
+  float4x3 mat4x3_f32 = v_39((416u + (uint(idx) * 800u)));
+  float4x4 mat4x4_f32 = v_35((480u + (uint(idx) * 800u)));
+  matrix<float16_t, 2, 2> mat2x2_f16 = v_33((544u + (uint(idx) * 800u)));
+  matrix<float16_t, 2, 3> mat2x3_f16 = v_31((552u + (uint(idx) * 800u)));
+  matrix<float16_t, 2, 4> mat2x4_f16 = v_29((568u + (uint(idx) * 800u)));
+  matrix<float16_t, 3, 2> mat3x2_f16 = v_26((584u + (uint(idx) * 800u)));
+  matrix<float16_t, 3, 3> mat3x3_f16 = v_23((600u + (uint(idx) * 800u)));
+  matrix<float16_t, 3, 4> mat3x4_f16 = v_20((624u + (uint(idx) * 800u)));
+  matrix<float16_t, 4, 2> mat4x2_f16 = v((648u + (uint(idx) * 800u)));
+  matrix<float16_t, 4, 3> mat4x3_f16 = v_16((664u + (uint(idx) * 800u)));
+  matrix<float16_t, 4, 4> mat4x4_f16 = v_12((696u + (uint(idx) * 800u)));
+  float3 v_62[2] = v_8((736u + (uint(idx) * 800u)));
+  matrix<float16_t, 4, 2> v_63[2] = v_4((768u + (uint(idx) * 800u)));
+  int v_64 = (tint_f32_to_i32(scalar_f32) + scalar_i32);
+  int v_65 = (v_64 + int(scalar_u32));
+  int v_66 = (v_65 + tint_f16_to_i32(scalar_f16));
+  int v_67 = ((v_66 + tint_f32_to_i32(vec2_f32[0u])) + vec2_i32[0u]);
+  int v_68 = (v_67 + int(vec2_u32[0u]));
+  int v_69 = (v_68 + tint_f16_to_i32(vec2_f16[0u]));
+  int v_70 = ((v_69 + tint_f32_to_i32(vec3_f32[1u])) + vec3_i32[1u]);
+  int v_71 = (v_70 + int(vec3_u32[1u]));
+  int v_72 = (v_71 + tint_f16_to_i32(vec3_f16[1u]));
+  int v_73 = ((v_72 + tint_f32_to_i32(vec4_f32[2u])) + vec4_i32[2u]);
+  int v_74 = (v_73 + int(vec4_u32[2u]));
+  int v_75 = (v_74 + tint_f16_to_i32(vec4_f16[2u]));
+  int v_76 = (v_75 + tint_f32_to_i32(mat2x2_f32[0][0u]));
+  int v_77 = (v_76 + tint_f32_to_i32(mat2x3_f32[0][0u]));
+  int v_78 = (v_77 + tint_f32_to_i32(mat2x4_f32[0][0u]));
+  int v_79 = (v_78 + tint_f32_to_i32(mat3x2_f32[0][0u]));
+  int v_80 = (v_79 + tint_f32_to_i32(mat3x3_f32[0][0u]));
+  int v_81 = (v_80 + tint_f32_to_i32(mat3x4_f32[0][0u]));
+  int v_82 = (v_81 + tint_f32_to_i32(mat4x2_f32[0][0u]));
+  int v_83 = (v_82 + tint_f32_to_i32(mat4x3_f32[0][0u]));
+  int v_84 = (v_83 + tint_f32_to_i32(mat4x4_f32[0][0u]));
+  int v_85 = (v_84 + tint_f16_to_i32(mat2x2_f16[0][0u]));
+  int v_86 = (v_85 + tint_f16_to_i32(mat2x3_f16[0][0u]));
+  int v_87 = (v_86 + tint_f16_to_i32(mat2x4_f16[0][0u]));
+  int v_88 = (v_87 + tint_f16_to_i32(mat3x2_f16[0][0u]));
+  int v_89 = (v_88 + tint_f16_to_i32(mat3x3_f16[0][0u]));
+  int v_90 = (v_89 + tint_f16_to_i32(mat3x4_f16[0][0u]));
+  int v_91 = (v_90 + tint_f16_to_i32(mat4x2_f16[0][0u]));
+  int v_92 = (v_91 + tint_f16_to_i32(mat4x3_f16[0][0u]));
+  int v_93 = (v_92 + tint_f16_to_i32(mat4x4_f16[0][0u]));
+  matrix<float16_t, 4, 2> arr2_mat4x2_f16[2] = v_63;
+  int v_94 = (v_93 + tint_f16_to_i32(arr2_mat4x2_f16[0][0][0u]));
+  float3 arr2_vec3_f32[2] = v_62;
+  s.Store(0u, asuint((v_94 + tint_f32_to_i32(arr2_vec3_f32[0][0u]))));
+}
+
+[numthreads(1, 1, 1)]
+void main(main_inputs inputs) {
+  main_inner(inputs.idx);
+}
+
diff --git a/test/tint/buffer/storage/dynamic_index/read_f16.wgsl.expected.ir.fxc.hlsl b/test/tint/buffer/storage/dynamic_index/read_f16.wgsl.expected.ir.fxc.hlsl
index 3f437dc..7804d72 100644
--- a/test/tint/buffer/storage/dynamic_index/read_f16.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/buffer/storage/dynamic_index/read_f16.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,250 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Access
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct main_inputs {
+  uint idx : SV_GroupIndex;
+};
+
+
+ByteAddressBuffer sb : register(t0);
+RWByteAddressBuffer s : register(u1);
+int tint_f32_to_i32(float value) {
+  return (((value <= 2147483520.0f)) ? ((((value >= -2147483648.0f)) ? (int(value)) : (-2147483648))) : (2147483647));
+}
+
+int tint_f16_to_i32(float16_t value) {
+  return (((value <= float16_t(65504.0h))) ? ((((value >= float16_t(-65504.0h))) ? (int(value)) : (-2147483648))) : (2147483647));
+}
+
+matrix<float16_t, 4, 2> v(uint offset) {
+  vector<float16_t, 2> v_1 = sb.Load<vector<float16_t, 2> >((offset + 0u));
+  vector<float16_t, 2> v_2 = sb.Load<vector<float16_t, 2> >((offset + 4u));
+  vector<float16_t, 2> v_3 = sb.Load<vector<float16_t, 2> >((offset + 8u));
+  return matrix<float16_t, 4, 2>(v_1, v_2, v_3, sb.Load<vector<float16_t, 2> >((offset + 12u)));
+}
+
+typedef matrix<float16_t, 4, 2> ary_ret[2];
+ary_ret v_4(uint offset) {
+  matrix<float16_t, 4, 2> a[2] = (matrix<float16_t, 4, 2>[2])0;
+  {
+    uint v_5 = 0u;
+    v_5 = 0u;
+    while(true) {
+      uint v_6 = v_5;
+      if ((v_6 >= 2u)) {
+        break;
+      }
+      a[v_6] = v((offset + (v_6 * 16u)));
+      {
+        v_5 = (v_6 + 1u);
+      }
+      continue;
+    }
+  }
+  matrix<float16_t, 4, 2> v_7[2] = a;
+  return v_7;
+}
+
+typedef float3 ary_ret_1[2];
+ary_ret_1 v_8(uint offset) {
+  float3 a[2] = (float3[2])0;
+  {
+    uint v_9 = 0u;
+    v_9 = 0u;
+    while(true) {
+      uint v_10 = v_9;
+      if ((v_10 >= 2u)) {
+        break;
+      }
+      a[v_10] = asfloat(sb.Load3((offset + (v_10 * 16u))));
+      {
+        v_9 = (v_10 + 1u);
+      }
+      continue;
+    }
+  }
+  float3 v_11[2] = a;
+  return v_11;
+}
+
+matrix<float16_t, 4, 4> v_12(uint offset) {
+  vector<float16_t, 4> v_13 = sb.Load<vector<float16_t, 4> >((offset + 0u));
+  vector<float16_t, 4> v_14 = sb.Load<vector<float16_t, 4> >((offset + 8u));
+  vector<float16_t, 4> v_15 = sb.Load<vector<float16_t, 4> >((offset + 16u));
+  return matrix<float16_t, 4, 4>(v_13, v_14, v_15, sb.Load<vector<float16_t, 4> >((offset + 24u)));
+}
+
+matrix<float16_t, 4, 3> v_16(uint offset) {
+  vector<float16_t, 3> v_17 = sb.Load<vector<float16_t, 3> >((offset + 0u));
+  vector<float16_t, 3> v_18 = sb.Load<vector<float16_t, 3> >((offset + 8u));
+  vector<float16_t, 3> v_19 = sb.Load<vector<float16_t, 3> >((offset + 16u));
+  return matrix<float16_t, 4, 3>(v_17, v_18, v_19, sb.Load<vector<float16_t, 3> >((offset + 24u)));
+}
+
+matrix<float16_t, 3, 4> v_20(uint offset) {
+  vector<float16_t, 4> v_21 = sb.Load<vector<float16_t, 4> >((offset + 0u));
+  vector<float16_t, 4> v_22 = sb.Load<vector<float16_t, 4> >((offset + 8u));
+  return matrix<float16_t, 3, 4>(v_21, v_22, sb.Load<vector<float16_t, 4> >((offset + 16u)));
+}
+
+matrix<float16_t, 3, 3> v_23(uint offset) {
+  vector<float16_t, 3> v_24 = sb.Load<vector<float16_t, 3> >((offset + 0u));
+  vector<float16_t, 3> v_25 = sb.Load<vector<float16_t, 3> >((offset + 8u));
+  return matrix<float16_t, 3, 3>(v_24, v_25, sb.Load<vector<float16_t, 3> >((offset + 16u)));
+}
+
+matrix<float16_t, 3, 2> v_26(uint offset) {
+  vector<float16_t, 2> v_27 = sb.Load<vector<float16_t, 2> >((offset + 0u));
+  vector<float16_t, 2> v_28 = sb.Load<vector<float16_t, 2> >((offset + 4u));
+  return matrix<float16_t, 3, 2>(v_27, v_28, sb.Load<vector<float16_t, 2> >((offset + 8u)));
+}
+
+matrix<float16_t, 2, 4> v_29(uint offset) {
+  vector<float16_t, 4> v_30 = sb.Load<vector<float16_t, 4> >((offset + 0u));
+  return matrix<float16_t, 2, 4>(v_30, sb.Load<vector<float16_t, 4> >((offset + 8u)));
+}
+
+matrix<float16_t, 2, 3> v_31(uint offset) {
+  vector<float16_t, 3> v_32 = sb.Load<vector<float16_t, 3> >((offset + 0u));
+  return matrix<float16_t, 2, 3>(v_32, sb.Load<vector<float16_t, 3> >((offset + 8u)));
+}
+
+matrix<float16_t, 2, 2> v_33(uint offset) {
+  vector<float16_t, 2> v_34 = sb.Load<vector<float16_t, 2> >((offset + 0u));
+  return matrix<float16_t, 2, 2>(v_34, sb.Load<vector<float16_t, 2> >((offset + 4u)));
+}
+
+float4x4 v_35(uint offset) {
+  float4 v_36 = asfloat(sb.Load4((offset + 0u)));
+  float4 v_37 = asfloat(sb.Load4((offset + 16u)));
+  float4 v_38 = asfloat(sb.Load4((offset + 32u)));
+  return float4x4(v_36, v_37, v_38, asfloat(sb.Load4((offset + 48u))));
+}
+
+float4x3 v_39(uint offset) {
+  float3 v_40 = asfloat(sb.Load3((offset + 0u)));
+  float3 v_41 = asfloat(sb.Load3((offset + 16u)));
+  float3 v_42 = asfloat(sb.Load3((offset + 32u)));
+  return float4x3(v_40, v_41, v_42, asfloat(sb.Load3((offset + 48u))));
+}
+
+float4x2 v_43(uint offset) {
+  float2 v_44 = asfloat(sb.Load2((offset + 0u)));
+  float2 v_45 = asfloat(sb.Load2((offset + 8u)));
+  float2 v_46 = asfloat(sb.Load2((offset + 16u)));
+  return float4x2(v_44, v_45, v_46, asfloat(sb.Load2((offset + 24u))));
+}
+
+float3x4 v_47(uint offset) {
+  float4 v_48 = asfloat(sb.Load4((offset + 0u)));
+  float4 v_49 = asfloat(sb.Load4((offset + 16u)));
+  return float3x4(v_48, v_49, asfloat(sb.Load4((offset + 32u))));
+}
+
+float3x3 v_50(uint offset) {
+  float3 v_51 = asfloat(sb.Load3((offset + 0u)));
+  float3 v_52 = asfloat(sb.Load3((offset + 16u)));
+  return float3x3(v_51, v_52, asfloat(sb.Load3((offset + 32u))));
+}
+
+float3x2 v_53(uint offset) {
+  float2 v_54 = asfloat(sb.Load2((offset + 0u)));
+  float2 v_55 = asfloat(sb.Load2((offset + 8u)));
+  return float3x2(v_54, v_55, asfloat(sb.Load2((offset + 16u))));
+}
+
+float2x4 v_56(uint offset) {
+  float4 v_57 = asfloat(sb.Load4((offset + 0u)));
+  return float2x4(v_57, asfloat(sb.Load4((offset + 16u))));
+}
+
+float2x3 v_58(uint offset) {
+  float3 v_59 = asfloat(sb.Load3((offset + 0u)));
+  return float2x3(v_59, asfloat(sb.Load3((offset + 16u))));
+}
+
+float2x2 v_60(uint offset) {
+  float2 v_61 = asfloat(sb.Load2((offset + 0u)));
+  return float2x2(v_61, asfloat(sb.Load2((offset + 8u))));
+}
+
+void main_inner(uint idx) {
+  float scalar_f32 = asfloat(sb.Load((0u + (uint(idx) * 800u))));
+  int scalar_i32 = asint(sb.Load((4u + (uint(idx) * 800u))));
+  uint scalar_u32 = sb.Load((8u + (uint(idx) * 800u)));
+  float16_t scalar_f16 = sb.Load<float16_t>((12u + (uint(idx) * 800u)));
+  float2 vec2_f32 = asfloat(sb.Load2((16u + (uint(idx) * 800u))));
+  int2 vec2_i32 = asint(sb.Load2((24u + (uint(idx) * 800u))));
+  uint2 vec2_u32 = sb.Load2((32u + (uint(idx) * 800u)));
+  vector<float16_t, 2> vec2_f16 = sb.Load<vector<float16_t, 2> >((40u + (uint(idx) * 800u)));
+  float3 vec3_f32 = asfloat(sb.Load3((48u + (uint(idx) * 800u))));
+  int3 vec3_i32 = asint(sb.Load3((64u + (uint(idx) * 800u))));
+  uint3 vec3_u32 = sb.Load3((80u + (uint(idx) * 800u)));
+  vector<float16_t, 3> vec3_f16 = sb.Load<vector<float16_t, 3> >((96u + (uint(idx) * 800u)));
+  float4 vec4_f32 = asfloat(sb.Load4((112u + (uint(idx) * 800u))));
+  int4 vec4_i32 = asint(sb.Load4((128u + (uint(idx) * 800u))));
+  uint4 vec4_u32 = sb.Load4((144u + (uint(idx) * 800u)));
+  vector<float16_t, 4> vec4_f16 = sb.Load<vector<float16_t, 4> >((160u + (uint(idx) * 800u)));
+  float2x2 mat2x2_f32 = v_60((168u + (uint(idx) * 800u)));
+  float2x3 mat2x3_f32 = v_58((192u + (uint(idx) * 800u)));
+  float2x4 mat2x4_f32 = v_56((224u + (uint(idx) * 800u)));
+  float3x2 mat3x2_f32 = v_53((256u + (uint(idx) * 800u)));
+  float3x3 mat3x3_f32 = v_50((288u + (uint(idx) * 800u)));
+  float3x4 mat3x4_f32 = v_47((336u + (uint(idx) * 800u)));
+  float4x2 mat4x2_f32 = v_43((384u + (uint(idx) * 800u)));
+  float4x3 mat4x3_f32 = v_39((416u + (uint(idx) * 800u)));
+  float4x4 mat4x4_f32 = v_35((480u + (uint(idx) * 800u)));
+  matrix<float16_t, 2, 2> mat2x2_f16 = v_33((544u + (uint(idx) * 800u)));
+  matrix<float16_t, 2, 3> mat2x3_f16 = v_31((552u + (uint(idx) * 800u)));
+  matrix<float16_t, 2, 4> mat2x4_f16 = v_29((568u + (uint(idx) * 800u)));
+  matrix<float16_t, 3, 2> mat3x2_f16 = v_26((584u + (uint(idx) * 800u)));
+  matrix<float16_t, 3, 3> mat3x3_f16 = v_23((600u + (uint(idx) * 800u)));
+  matrix<float16_t, 3, 4> mat3x4_f16 = v_20((624u + (uint(idx) * 800u)));
+  matrix<float16_t, 4, 2> mat4x2_f16 = v((648u + (uint(idx) * 800u)));
+  matrix<float16_t, 4, 3> mat4x3_f16 = v_16((664u + (uint(idx) * 800u)));
+  matrix<float16_t, 4, 4> mat4x4_f16 = v_12((696u + (uint(idx) * 800u)));
+  float3 v_62[2] = v_8((736u + (uint(idx) * 800u)));
+  matrix<float16_t, 4, 2> v_63[2] = v_4((768u + (uint(idx) * 800u)));
+  int v_64 = (tint_f32_to_i32(scalar_f32) + scalar_i32);
+  int v_65 = (v_64 + int(scalar_u32));
+  int v_66 = (v_65 + tint_f16_to_i32(scalar_f16));
+  int v_67 = ((v_66 + tint_f32_to_i32(vec2_f32[0u])) + vec2_i32[0u]);
+  int v_68 = (v_67 + int(vec2_u32[0u]));
+  int v_69 = (v_68 + tint_f16_to_i32(vec2_f16[0u]));
+  int v_70 = ((v_69 + tint_f32_to_i32(vec3_f32[1u])) + vec3_i32[1u]);
+  int v_71 = (v_70 + int(vec3_u32[1u]));
+  int v_72 = (v_71 + tint_f16_to_i32(vec3_f16[1u]));
+  int v_73 = ((v_72 + tint_f32_to_i32(vec4_f32[2u])) + vec4_i32[2u]);
+  int v_74 = (v_73 + int(vec4_u32[2u]));
+  int v_75 = (v_74 + tint_f16_to_i32(vec4_f16[2u]));
+  int v_76 = (v_75 + tint_f32_to_i32(mat2x2_f32[0][0u]));
+  int v_77 = (v_76 + tint_f32_to_i32(mat2x3_f32[0][0u]));
+  int v_78 = (v_77 + tint_f32_to_i32(mat2x4_f32[0][0u]));
+  int v_79 = (v_78 + tint_f32_to_i32(mat3x2_f32[0][0u]));
+  int v_80 = (v_79 + tint_f32_to_i32(mat3x3_f32[0][0u]));
+  int v_81 = (v_80 + tint_f32_to_i32(mat3x4_f32[0][0u]));
+  int v_82 = (v_81 + tint_f32_to_i32(mat4x2_f32[0][0u]));
+  int v_83 = (v_82 + tint_f32_to_i32(mat4x3_f32[0][0u]));
+  int v_84 = (v_83 + tint_f32_to_i32(mat4x4_f32[0][0u]));
+  int v_85 = (v_84 + tint_f16_to_i32(mat2x2_f16[0][0u]));
+  int v_86 = (v_85 + tint_f16_to_i32(mat2x3_f16[0][0u]));
+  int v_87 = (v_86 + tint_f16_to_i32(mat2x4_f16[0][0u]));
+  int v_88 = (v_87 + tint_f16_to_i32(mat3x2_f16[0][0u]));
+  int v_89 = (v_88 + tint_f16_to_i32(mat3x3_f16[0][0u]));
+  int v_90 = (v_89 + tint_f16_to_i32(mat3x4_f16[0][0u]));
+  int v_91 = (v_90 + tint_f16_to_i32(mat4x2_f16[0][0u]));
+  int v_92 = (v_91 + tint_f16_to_i32(mat4x3_f16[0][0u]));
+  int v_93 = (v_92 + tint_f16_to_i32(mat4x4_f16[0][0u]));
+  matrix<float16_t, 4, 2> arr2_mat4x2_f16[2] = v_63;
+  int v_94 = (v_93 + tint_f16_to_i32(arr2_mat4x2_f16[0][0][0u]));
+  float3 arr2_vec3_f32[2] = v_62;
+  s.Store(0u, asuint((v_94 + tint_f32_to_i32(arr2_vec3_f32[0][0u]))));
+}
+
+[numthreads(1, 1, 1)]
+void main(main_inputs inputs) {
+  main_inner(inputs.idx);
+}
+
+FXC validation failure:
+c:\src\dawn\Shader@0x000002B8A07BC320(12,21-29): error X3000: unrecognized identifier 'float16_t'
+
diff --git a/test/tint/buffer/storage/dynamic_index/write.wgsl.expected.ir.dxc.hlsl b/test/tint/buffer/storage/dynamic_index/write.wgsl.expected.ir.dxc.hlsl
index 3f437dc..b8b88c6 100644
--- a/test/tint/buffer/storage/dynamic_index/write.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/buffer/storage/dynamic_index/write.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,3 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Access
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+exit status 0xe0000001
\ No newline at end of file
diff --git a/test/tint/buffer/storage/dynamic_index/write.wgsl.expected.ir.fxc.hlsl b/test/tint/buffer/storage/dynamic_index/write.wgsl.expected.ir.fxc.hlsl
index 3f437dc..c030f6a 100644
--- a/test/tint/buffer/storage/dynamic_index/write.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/buffer/storage/dynamic_index/write.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,117 @@
-SKIP: FAILED
+struct main_inputs {
+  uint idx : SV_GroupIndex;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Access
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+
+RWByteAddressBuffer sb : register(u0);
+void v(uint offset, float3 obj[2]) {
+  {
+    uint v_1 = 0u;
+    v_1 = 0u;
+    while(true) {
+      uint v_2 = v_1;
+      if ((v_2 >= 2u)) {
+        break;
+      }
+      sb.Store3((offset + (v_2 * 16u)), asuint(obj[v_2]));
+      {
+        v_1 = (v_2 + 1u);
+      }
+      continue;
+    }
+  }
+}
+
+void v_3(uint offset, float4x4 obj) {
+  sb.Store4((offset + 0u), asuint(obj[0u]));
+  sb.Store4((offset + 16u), asuint(obj[1u]));
+  sb.Store4((offset + 32u), asuint(obj[2u]));
+  sb.Store4((offset + 48u), asuint(obj[3u]));
+}
+
+void v_4(uint offset, float4x3 obj) {
+  sb.Store3((offset + 0u), asuint(obj[0u]));
+  sb.Store3((offset + 16u), asuint(obj[1u]));
+  sb.Store3((offset + 32u), asuint(obj[2u]));
+  sb.Store3((offset + 48u), asuint(obj[3u]));
+}
+
+void v_5(uint offset, float4x2 obj) {
+  sb.Store2((offset + 0u), asuint(obj[0u]));
+  sb.Store2((offset + 8u), asuint(obj[1u]));
+  sb.Store2((offset + 16u), asuint(obj[2u]));
+  sb.Store2((offset + 24u), asuint(obj[3u]));
+}
+
+void v_6(uint offset, float3x4 obj) {
+  sb.Store4((offset + 0u), asuint(obj[0u]));
+  sb.Store4((offset + 16u), asuint(obj[1u]));
+  sb.Store4((offset + 32u), asuint(obj[2u]));
+}
+
+void v_7(uint offset, float3x3 obj) {
+  sb.Store3((offset + 0u), asuint(obj[0u]));
+  sb.Store3((offset + 16u), asuint(obj[1u]));
+  sb.Store3((offset + 32u), asuint(obj[2u]));
+}
+
+void v_8(uint offset, float3x2 obj) {
+  sb.Store2((offset + 0u), asuint(obj[0u]));
+  sb.Store2((offset + 8u), asuint(obj[1u]));
+  sb.Store2((offset + 16u), asuint(obj[2u]));
+}
+
+void v_9(uint offset, float2x4 obj) {
+  sb.Store4((offset + 0u), asuint(obj[0u]));
+  sb.Store4((offset + 16u), asuint(obj[1u]));
+}
+
+void v_10(uint offset, float2x3 obj) {
+  sb.Store3((offset + 0u), asuint(obj[0u]));
+  sb.Store3((offset + 16u), asuint(obj[1u]));
+}
+
+void v_11(uint offset, float2x2 obj) {
+  sb.Store2((offset + 0u), asuint(obj[0u]));
+  sb.Store2((offset + 8u), asuint(obj[1u]));
+}
+
+void main_inner(uint idx) {
+  uint v_12 = (0u + (uint(idx) * 544u));
+  sb.Store(v_12, asuint(0.0f));
+  uint v_13 = (4u + (uint(idx) * 544u));
+  sb.Store(v_13, asuint(0));
+  sb.Store((8u + (uint(idx) * 544u)), 0u);
+  uint v_14 = (16u + (uint(idx) * 544u));
+  sb.Store2(v_14, asuint((0.0f).xx));
+  uint v_15 = (24u + (uint(idx) * 544u));
+  sb.Store2(v_15, asuint((0).xx));
+  sb.Store2((32u + (uint(idx) * 544u)), (0u).xx);
+  uint v_16 = (48u + (uint(idx) * 544u));
+  sb.Store3(v_16, asuint((0.0f).xxx));
+  uint v_17 = (64u + (uint(idx) * 544u));
+  sb.Store3(v_17, asuint((0).xxx));
+  sb.Store3((80u + (uint(idx) * 544u)), (0u).xxx);
+  uint v_18 = (96u + (uint(idx) * 544u));
+  sb.Store4(v_18, asuint((0.0f).xxxx));
+  uint v_19 = (112u + (uint(idx) * 544u));
+  sb.Store4(v_19, asuint((0).xxxx));
+  sb.Store4((128u + (uint(idx) * 544u)), (0u).xxxx);
+  v_11((144u + (uint(idx) * 544u)), float2x2((0.0f).xx, (0.0f).xx));
+  v_10((160u + (uint(idx) * 544u)), float2x3((0.0f).xxx, (0.0f).xxx));
+  v_9((192u + (uint(idx) * 544u)), float2x4((0.0f).xxxx, (0.0f).xxxx));
+  v_8((224u + (uint(idx) * 544u)), float3x2((0.0f).xx, (0.0f).xx, (0.0f).xx));
+  v_7((256u + (uint(idx) * 544u)), float3x3((0.0f).xxx, (0.0f).xxx, (0.0f).xxx));
+  v_6((304u + (uint(idx) * 544u)), float3x4((0.0f).xxxx, (0.0f).xxxx, (0.0f).xxxx));
+  v_5((352u + (uint(idx) * 544u)), float4x2((0.0f).xx, (0.0f).xx, (0.0f).xx, (0.0f).xx));
+  v_4((384u + (uint(idx) * 544u)), float4x3((0.0f).xxx, (0.0f).xxx, (0.0f).xxx, (0.0f).xxx));
+  v_3((448u + (uint(idx) * 544u)), float4x4((0.0f).xxxx, (0.0f).xxxx, (0.0f).xxxx, (0.0f).xxxx));
+  float3 v_20[2] = (float3[2])0;
+  v((512u + (uint(idx) * 544u)), v_20);
+}
+
+[numthreads(1, 1, 1)]
+void main(main_inputs inputs) {
+  main_inner(inputs.idx);
+}
+
diff --git a/test/tint/buffer/storage/dynamic_index/write_f16.wgsl.expected.ir.dxc.hlsl b/test/tint/buffer/storage/dynamic_index/write_f16.wgsl.expected.ir.dxc.hlsl
index 3f437dc..b905b42 100644
--- a/test/tint/buffer/storage/dynamic_index/write_f16.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/buffer/storage/dynamic_index/write_f16.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,140 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Access
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct main_inputs {
+  uint idx : SV_GroupIndex;
+};
+
+
+RWByteAddressBuffer sb : register(u0);
+void v(uint offset, matrix<float16_t, 4, 2> obj) {
+  sb.Store<vector<float16_t, 2> >((offset + 0u), obj[0u]);
+  sb.Store<vector<float16_t, 2> >((offset + 4u), obj[1u]);
+  sb.Store<vector<float16_t, 2> >((offset + 8u), obj[2u]);
+  sb.Store<vector<float16_t, 2> >((offset + 12u), obj[3u]);
+}
+
+void v_1(uint offset, matrix<float16_t, 4, 2> obj[2]) {
+  {
+    uint v_2 = 0u;
+    v_2 = 0u;
+    while(true) {
+      uint v_3 = v_2;
+      if ((v_3 >= 2u)) {
+        break;
+      }
+      v((offset + (v_3 * 16u)), obj[v_3]);
+      {
+        v_2 = (v_3 + 1u);
+      }
+      continue;
+    }
+  }
+}
+
+void v_4(uint offset, float3 obj[2]) {
+  {
+    uint v_5 = 0u;
+    v_5 = 0u;
+    while(true) {
+      uint v_6 = v_5;
+      if ((v_6 >= 2u)) {
+        break;
+      }
+      sb.Store3((offset + (v_6 * 16u)), asuint(obj[v_6]));
+      {
+        v_5 = (v_6 + 1u);
+      }
+      continue;
+    }
+  }
+}
+
+void v_7(uint offset, matrix<float16_t, 4, 4> obj) {
+  sb.Store<vector<float16_t, 4> >((offset + 0u), obj[0u]);
+  sb.Store<vector<float16_t, 4> >((offset + 8u), obj[1u]);
+  sb.Store<vector<float16_t, 4> >((offset + 16u), obj[2u]);
+  sb.Store<vector<float16_t, 4> >((offset + 24u), obj[3u]);
+}
+
+void v_8(uint offset, matrix<float16_t, 4, 3> obj) {
+  sb.Store<vector<float16_t, 3> >((offset + 0u), obj[0u]);
+  sb.Store<vector<float16_t, 3> >((offset + 8u), obj[1u]);
+  sb.Store<vector<float16_t, 3> >((offset + 16u), obj[2u]);
+  sb.Store<vector<float16_t, 3> >((offset + 24u), obj[3u]);
+}
+
+void v_9(uint offset, matrix<float16_t, 3, 4> obj) {
+  sb.Store<vector<float16_t, 4> >((offset + 0u), obj[0u]);
+  sb.Store<vector<float16_t, 4> >((offset + 8u), obj[1u]);
+  sb.Store<vector<float16_t, 4> >((offset + 16u), obj[2u]);
+}
+
+void v_10(uint offset, matrix<float16_t, 3, 3> obj) {
+  sb.Store<vector<float16_t, 3> >((offset + 0u), obj[0u]);
+  sb.Store<vector<float16_t, 3> >((offset + 8u), obj[1u]);
+  sb.Store<vector<float16_t, 3> >((offset + 16u), obj[2u]);
+}
+
+void v_11(uint offset, matrix<float16_t, 3, 2> obj) {
+  sb.Store<vector<float16_t, 2> >((offset + 0u), obj[0u]);
+  sb.Store<vector<float16_t, 2> >((offset + 4u), obj[1u]);
+  sb.Store<vector<float16_t, 2> >((offset + 8u), obj[2u]);
+}
+
+void v_12(uint offset, matrix<float16_t, 2, 4> obj) {
+  sb.Store<vector<float16_t, 4> >((offset + 0u), obj[0u]);
+  sb.Store<vector<float16_t, 4> >((offset + 8u), obj[1u]);
+}
+
+void v_13(uint offset, matrix<float16_t, 2, 3> obj) {
+  sb.Store<vector<float16_t, 3> >((offset + 0u), obj[0u]);
+  sb.Store<vector<float16_t, 3> >((offset + 8u), obj[1u]);
+}
+
+void v_14(uint offset, matrix<float16_t, 2, 2> obj) {
+  sb.Store<vector<float16_t, 2> >((offset + 0u), obj[0u]);
+  sb.Store<vector<float16_t, 2> >((offset + 4u), obj[1u]);
+}
+
+void v_15(uint offset, float4x4 obj) {
+  sb.Store4((offset + 0u), asuint(obj[0u]));
+  sb.Store4((offset + 16u), asuint(obj[1u]));
+  sb.Store4((offset + 32u), asuint(obj[2u]));
+  sb.Store4((offset + 48u), asuint(obj[3u]));
+}
+
+void v_16(uint offset, float4x3 obj) {
+  sb.Store3((offset + 0u), asuint(obj[0u]));
+  sb.Store3((offset + 16u), asuint(obj[1u]));
+  sb.Store3((offset + 32u), asuint(obj[2u]));
+  sb.Store3((offset + 48u), asuint(obj[3u]));
+}
+
+void v_17(uint offset, float4x2 obj) {
+  sb.Store2((offset + 0u), asuint(obj[0u]));
+  sb.Store2((offset + 8u), asuint(obj[1u]));
+  sb.Store2((offset + 16u), asuint(obj[2u]));
+  sb.Store2((offset + 24u), asuint(obj[3u]));
+}
+
+void v_18(uint offset, float3x4 obj) {
+  sb.Store4((offset + 0u), asuint(obj[0u]));
+  sb.Store4((offset + 16u), asuint(obj[1u]));
+  sb.Store4((offset + 32u), asuint(obj[2u]));
+}
+
+void v_19(uint offset, float3x3 obj) {
+  sb.Store3((offset + 0u), asuint(obj[0u]));
+  sb.Store3((offset + 16u), asuint(obj[1u]));
+  sb.Store3((offset + 32u), asuint(obj[2u]));
+}
+
+void v_20(uint offset, float3x2 obj) {
+  sb.Store2((offset + 0u), asuint(obj[0u]));
+  sb.Store2((offset + 8u), asuint(obj[1u]));
+  sb.Store2((offset + 16u), asuint(obj[2u]));
+}
+
+void v_21(uint offset, float2x4 obj) {
+  sb.Store4((offset + 0u), asuint(obj[0u]));
+  sb.Store4((
\ No newline at end of file
diff --git a/test/tint/buffer/storage/dynamic_index/write_f16.wgsl.expected.ir.fxc.hlsl b/test/tint/buffer/storage/dynamic_index/write_f16.wgsl.expected.ir.fxc.hlsl
index 3f437dc..19bc39c 100644
--- a/test/tint/buffer/storage/dynamic_index/write_f16.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/buffer/storage/dynamic_index/write_f16.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,210 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Access
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct main_inputs {
+  uint idx : SV_GroupIndex;
+};
+
+
+RWByteAddressBuffer sb : register(u0);
+void v(uint offset, matrix<float16_t, 4, 2> obj) {
+  sb.Store<vector<float16_t, 2> >((offset + 0u), obj[0u]);
+  sb.Store<vector<float16_t, 2> >((offset + 4u), obj[1u]);
+  sb.Store<vector<float16_t, 2> >((offset + 8u), obj[2u]);
+  sb.Store<vector<float16_t, 2> >((offset + 12u), obj[3u]);
+}
+
+void v_1(uint offset, matrix<float16_t, 4, 2> obj[2]) {
+  {
+    uint v_2 = 0u;
+    v_2 = 0u;
+    while(true) {
+      uint v_3 = v_2;
+      if ((v_3 >= 2u)) {
+        break;
+      }
+      v((offset + (v_3 * 16u)), obj[v_3]);
+      {
+        v_2 = (v_3 + 1u);
+      }
+      continue;
+    }
+  }
+}
+
+void v_4(uint offset, float3 obj[2]) {
+  {
+    uint v_5 = 0u;
+    v_5 = 0u;
+    while(true) {
+      uint v_6 = v_5;
+      if ((v_6 >= 2u)) {
+        break;
+      }
+      sb.Store3((offset + (v_6 * 16u)), asuint(obj[v_6]));
+      {
+        v_5 = (v_6 + 1u);
+      }
+      continue;
+    }
+  }
+}
+
+void v_7(uint offset, matrix<float16_t, 4, 4> obj) {
+  sb.Store<vector<float16_t, 4> >((offset + 0u), obj[0u]);
+  sb.Store<vector<float16_t, 4> >((offset + 8u), obj[1u]);
+  sb.Store<vector<float16_t, 4> >((offset + 16u), obj[2u]);
+  sb.Store<vector<float16_t, 4> >((offset + 24u), obj[3u]);
+}
+
+void v_8(uint offset, matrix<float16_t, 4, 3> obj) {
+  sb.Store<vector<float16_t, 3> >((offset + 0u), obj[0u]);
+  sb.Store<vector<float16_t, 3> >((offset + 8u), obj[1u]);
+  sb.Store<vector<float16_t, 3> >((offset + 16u), obj[2u]);
+  sb.Store<vector<float16_t, 3> >((offset + 24u), obj[3u]);
+}
+
+void v_9(uint offset, matrix<float16_t, 3, 4> obj) {
+  sb.Store<vector<float16_t, 4> >((offset + 0u), obj[0u]);
+  sb.Store<vector<float16_t, 4> >((offset + 8u), obj[1u]);
+  sb.Store<vector<float16_t, 4> >((offset + 16u), obj[2u]);
+}
+
+void v_10(uint offset, matrix<float16_t, 3, 3> obj) {
+  sb.Store<vector<float16_t, 3> >((offset + 0u), obj[0u]);
+  sb.Store<vector<float16_t, 3> >((offset + 8u), obj[1u]);
+  sb.Store<vector<float16_t, 3> >((offset + 16u), obj[2u]);
+}
+
+void v_11(uint offset, matrix<float16_t, 3, 2> obj) {
+  sb.Store<vector<float16_t, 2> >((offset + 0u), obj[0u]);
+  sb.Store<vector<float16_t, 2> >((offset + 4u), obj[1u]);
+  sb.Store<vector<float16_t, 2> >((offset + 8u), obj[2u]);
+}
+
+void v_12(uint offset, matrix<float16_t, 2, 4> obj) {
+  sb.Store<vector<float16_t, 4> >((offset + 0u), obj[0u]);
+  sb.Store<vector<float16_t, 4> >((offset + 8u), obj[1u]);
+}
+
+void v_13(uint offset, matrix<float16_t, 2, 3> obj) {
+  sb.Store<vector<float16_t, 3> >((offset + 0u), obj[0u]);
+  sb.Store<vector<float16_t, 3> >((offset + 8u), obj[1u]);
+}
+
+void v_14(uint offset, matrix<float16_t, 2, 2> obj) {
+  sb.Store<vector<float16_t, 2> >((offset + 0u), obj[0u]);
+  sb.Store<vector<float16_t, 2> >((offset + 4u), obj[1u]);
+}
+
+void v_15(uint offset, float4x4 obj) {
+  sb.Store4((offset + 0u), asuint(obj[0u]));
+  sb.Store4((offset + 16u), asuint(obj[1u]));
+  sb.Store4((offset + 32u), asuint(obj[2u]));
+  sb.Store4((offset + 48u), asuint(obj[3u]));
+}
+
+void v_16(uint offset, float4x3 obj) {
+  sb.Store3((offset + 0u), asuint(obj[0u]));
+  sb.Store3((offset + 16u), asuint(obj[1u]));
+  sb.Store3((offset + 32u), asuint(obj[2u]));
+  sb.Store3((offset + 48u), asuint(obj[3u]));
+}
+
+void v_17(uint offset, float4x2 obj) {
+  sb.Store2((offset + 0u), asuint(obj[0u]));
+  sb.Store2((offset + 8u), asuint(obj[1u]));
+  sb.Store2((offset + 16u), asuint(obj[2u]));
+  sb.Store2((offset + 24u), asuint(obj[3u]));
+}
+
+void v_18(uint offset, float3x4 obj) {
+  sb.Store4((offset + 0u), asuint(obj[0u]));
+  sb.Store4((offset + 16u), asuint(obj[1u]));
+  sb.Store4((offset + 32u), asuint(obj[2u]));
+}
+
+void v_19(uint offset, float3x3 obj) {
+  sb.Store3((offset + 0u), asuint(obj[0u]));
+  sb.Store3((offset + 16u), asuint(obj[1u]));
+  sb.Store3((offset + 32u), asuint(obj[2u]));
+}
+
+void v_20(uint offset, float3x2 obj) {
+  sb.Store2((offset + 0u), asuint(obj[0u]));
+  sb.Store2((offset + 8u), asuint(obj[1u]));
+  sb.Store2((offset + 16u), asuint(obj[2u]));
+}
+
+void v_21(uint offset, float2x4 obj) {
+  sb.Store4((offset + 0u), asuint(obj[0u]));
+  sb.Store4((offset + 16u), asuint(obj[1u]));
+}
+
+void v_22(uint offset, float2x3 obj) {
+  sb.Store3((offset + 0u), asuint(obj[0u]));
+  sb.Store3((offset + 16u), asuint(obj[1u]));
+}
+
+void v_23(uint offset, float2x2 obj) {
+  sb.Store2((offset + 0u), asuint(obj[0u]));
+  sb.Store2((offset + 8u), asuint(obj[1u]));
+}
+
+void main_inner(uint idx) {
+  uint v_24 = (0u + (uint(idx) * 800u));
+  sb.Store(v_24, asuint(0.0f));
+  uint v_25 = (4u + (uint(idx) * 800u));
+  sb.Store(v_25, asuint(0));
+  sb.Store((8u + (uint(idx) * 800u)), 0u);
+  sb.Store<float16_t>((12u + (uint(idx) * 800u)), float16_t(0.0h));
+  uint v_26 = (16u + (uint(idx) * 800u));
+  sb.Store2(v_26, asuint((0.0f).xx));
+  uint v_27 = (24u + (uint(idx) * 800u));
+  sb.Store2(v_27, asuint((0).xx));
+  sb.Store2((32u + (uint(idx) * 800u)), (0u).xx);
+  sb.Store<vector<float16_t, 2> >((40u + (uint(idx) * 800u)), (float16_t(0.0h)).xx);
+  uint v_28 = (48u + (uint(idx) * 800u));
+  sb.Store3(v_28, asuint((0.0f).xxx));
+  uint v_29 = (64u + (uint(idx) * 800u));
+  sb.Store3(v_29, asuint((0).xxx));
+  sb.Store3((80u + (uint(idx) * 800u)), (0u).xxx);
+  sb.Store<vector<float16_t, 3> >((96u + (uint(idx) * 800u)), (float16_t(0.0h)).xxx);
+  uint v_30 = (112u + (uint(idx) * 800u));
+  sb.Store4(v_30, asuint((0.0f).xxxx));
+  uint v_31 = (128u + (uint(idx) * 800u));
+  sb.Store4(v_31, asuint((0).xxxx));
+  sb.Store4((144u + (uint(idx) * 800u)), (0u).xxxx);
+  sb.Store<vector<float16_t, 4> >((160u + (uint(idx) * 800u)), (float16_t(0.0h)).xxxx);
+  v_23((168u + (uint(idx) * 800u)), float2x2((0.0f).xx, (0.0f).xx));
+  v_22((192u + (uint(idx) * 800u)), float2x3((0.0f).xxx, (0.0f).xxx));
+  v_21((224u + (uint(idx) * 800u)), float2x4((0.0f).xxxx, (0.0f).xxxx));
+  v_20((256u + (uint(idx) * 800u)), float3x2((0.0f).xx, (0.0f).xx, (0.0f).xx));
+  v_19((288u + (uint(idx) * 800u)), float3x3((0.0f).xxx, (0.0f).xxx, (0.0f).xxx));
+  v_18((336u + (uint(idx) * 800u)), float3x4((0.0f).xxxx, (0.0f).xxxx, (0.0f).xxxx));
+  v_17((384u + (uint(idx) * 800u)), float4x2((0.0f).xx, (0.0f).xx, (0.0f).xx, (0.0f).xx));
+  v_16((416u + (uint(idx) * 800u)), float4x3((0.0f).xxx, (0.0f).xxx, (0.0f).xxx, (0.0f).xxx));
+  v_15((480u + (uint(idx) * 800u)), float4x4((0.0f).xxxx, (0.0f).xxxx, (0.0f).xxxx, (0.0f).xxxx));
+  v_14((544u + (uint(idx) * 800u)), matrix<float16_t, 2, 2>((float16_t(0.0h)).xx, (float16_t(0.0h)).xx));
+  v_13((552u + (uint(idx) * 800u)), matrix<float16_t, 2, 3>((float16_t(0.0h)).xxx, (float16_t(0.0h)).xxx));
+  v_12((568u + (uint(idx) * 800u)), matrix<float16_t, 2, 4>((float16_t(0.0h)).xxxx, (float16_t(0.0h)).xxxx));
+  v_11((584u + (uint(idx) * 800u)), matrix<float16_t, 3, 2>((float16_t(0.0h)).xx, (float16_t(0.0h)).xx, (float16_t(0.0h)).xx));
+  v_10((600u + (uint(idx) * 800u)), matrix<float16_t, 3, 3>((float16_t(0.0h)).xxx, (float16_t(0.0h)).xxx, (float16_t(0.0h)).xxx));
+  v_9((624u + (uint(idx) * 800u)), matrix<float16_t, 3, 4>((float16_t(0.0h)).xxxx, (float16_t(0.0h)).xxxx, (float16_t(0.0h)).xxxx));
+  v((648u + (uint(idx) * 800u)), matrix<float16_t, 4, 2>((float16_t(0.0h)).xx, (float16_t(0.0h)).xx, (float16_t(0.0h)).xx, (float16_t(0.0h)).xx));
+  v_8((664u + (uint(idx) * 800u)), matrix<float16_t, 4, 3>((float16_t(0.0h)).xxx, (float16_t(0.0h)).xxx, (float16_t(0.0h)).xxx, (float16_t(0.0h)).xxx));
+  v_7((696u + (uint(idx) * 800u)), matrix<float16_t, 4, 4>((float16_t(0.0h)).xxxx, (float16_t(0.0h)).xxxx, (float16_t(0.0h)).xxxx, (float16_t(0.0h)).xxxx));
+  float3 v_32[2] = (float3[2])0;
+  v_4((736u + (uint(idx) * 800u)), v_32);
+  matrix<float16_t, 4, 2> v_33[2] = (matrix<float16_t, 4, 2>[2])0;
+  v_1((768u + (uint(idx) * 800u)), v_33);
+}
+
+[numthreads(1, 1, 1)]
+void main(main_inputs inputs) {
+  main_inner(inputs.idx);
+}
+
+FXC validation failure:
+c:\src\dawn\Shader@0x00000167B0B17B10(7,28-36): error X3000: syntax error: unexpected token 'float16_t'
+c:\src\dawn\Shader@0x00000167B0B17B10(8,3-10): error X3018: invalid subscript 'Store'
+
diff --git a/test/tint/buffer/storage/static_index/read.wgsl.expected.ir.dxc.hlsl b/test/tint/buffer/storage/static_index/read.wgsl.expected.ir.dxc.hlsl
index 3f437dc..a58e304 100644
--- a/test/tint/buffer/storage/static_index/read.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/buffer/storage/static_index/read.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,166 @@
-SKIP: FAILED
+struct Inner {
+  int scalar_i32;
+  float scalar_f32;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Access
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+
+ByteAddressBuffer sb : register(t0);
+RWByteAddressBuffer s : register(u1);
+int tint_f32_to_i32(float value) {
+  return (((value <= 2147483520.0f)) ? ((((value >= -2147483648.0f)) ? (int(value)) : (-2147483648))) : (2147483647));
+}
+
+Inner v(uint offset) {
+  int v_1 = asint(sb.Load((offset + 0u)));
+  Inner v_2 = {v_1, asfloat(sb.Load((offset + 4u)))};
+  return v_2;
+}
+
+typedef Inner ary_ret[4];
+ary_ret v_3(uint offset) {
+  Inner a[4] = (Inner[4])0;
+  {
+    uint v_4 = 0u;
+    v_4 = 0u;
+    while(true) {
+      uint v_5 = v_4;
+      if ((v_5 >= 4u)) {
+        break;
+      }
+      Inner v_6 = v((offset + (v_5 * 8u)));
+      a[v_5] = v_6;
+      {
+        v_4 = (v_5 + 1u);
+      }
+      continue;
+    }
+  }
+  Inner v_7[4] = a;
+  return v_7;
+}
+
+typedef float3 ary_ret_1[2];
+ary_ret_1 v_8(uint offset) {
+  float3 a[2] = (float3[2])0;
+  {
+    uint v_9 = 0u;
+    v_9 = 0u;
+    while(true) {
+      uint v_10 = v_9;
+      if ((v_10 >= 2u)) {
+        break;
+      }
+      a[v_10] = asfloat(sb.Load3((offset + (v_10 * 16u))));
+      {
+        v_9 = (v_10 + 1u);
+      }
+      continue;
+    }
+  }
+  float3 v_11[2] = a;
+  return v_11;
+}
+
+float4x4 v_12(uint offset) {
+  float4 v_13 = asfloat(sb.Load4((offset + 0u)));
+  float4 v_14 = asfloat(sb.Load4((offset + 16u)));
+  float4 v_15 = asfloat(sb.Load4((offset + 32u)));
+  return float4x4(v_13, v_14, v_15, asfloat(sb.Load4((offset + 48u))));
+}
+
+float4x3 v_16(uint offset) {
+  float3 v_17 = asfloat(sb.Load3((offset + 0u)));
+  float3 v_18 = asfloat(sb.Load3((offset + 16u)));
+  float3 v_19 = asfloat(sb.Load3((offset + 32u)));
+  return float4x3(v_17, v_18, v_19, asfloat(sb.Load3((offset + 48u))));
+}
+
+float4x2 v_20(uint offset) {
+  float2 v_21 = asfloat(sb.Load2((offset + 0u)));
+  float2 v_22 = asfloat(sb.Load2((offset + 8u)));
+  float2 v_23 = asfloat(sb.Load2((offset + 16u)));
+  return float4x2(v_21, v_22, v_23, asfloat(sb.Load2((offset + 24u))));
+}
+
+float3x4 v_24(uint offset) {
+  float4 v_25 = asfloat(sb.Load4((offset + 0u)));
+  float4 v_26 = asfloat(sb.Load4((offset + 16u)));
+  return float3x4(v_25, v_26, asfloat(sb.Load4((offset + 32u))));
+}
+
+float3x3 v_27(uint offset) {
+  float3 v_28 = asfloat(sb.Load3((offset + 0u)));
+  float3 v_29 = asfloat(sb.Load3((offset + 16u)));
+  return float3x3(v_28, v_29, asfloat(sb.Load3((offset + 32u))));
+}
+
+float3x2 v_30(uint offset) {
+  float2 v_31 = asfloat(sb.Load2((offset + 0u)));
+  float2 v_32 = asfloat(sb.Load2((offset + 8u)));
+  return float3x2(v_31, v_32, asfloat(sb.Load2((offset + 16u))));
+}
+
+float2x4 v_33(uint offset) {
+  float4 v_34 = asfloat(sb.Load4((offset + 0u)));
+  return float2x4(v_34, asfloat(sb.Load4((offset + 16u))));
+}
+
+float2x3 v_35(uint offset) {
+  float3 v_36 = asfloat(sb.Load3((offset + 0u)));
+  return float2x3(v_36, asfloat(sb.Load3((offset + 16u))));
+}
+
+float2x2 v_37(uint offset) {
+  float2 v_38 = asfloat(sb.Load2((offset + 0u)));
+  return float2x2(v_38, asfloat(sb.Load2((offset + 8u))));
+}
+
+[numthreads(1, 1, 1)]
+void main() {
+  float scalar_f32 = asfloat(sb.Load(0u));
+  int scalar_i32 = asint(sb.Load(4u));
+  uint scalar_u32 = sb.Load(8u);
+  float2 vec2_f32 = asfloat(sb.Load2(16u));
+  int2 vec2_i32 = asint(sb.Load2(24u));
+  uint2 vec2_u32 = sb.Load2(32u);
+  float3 vec3_f32 = asfloat(sb.Load3(48u));
+  int3 vec3_i32 = asint(sb.Load3(64u));
+  uint3 vec3_u32 = sb.Load3(80u);
+  float4 vec4_f32 = asfloat(sb.Load4(96u));
+  int4 vec4_i32 = asint(sb.Load4(112u));
+  uint4 vec4_u32 = sb.Load4(128u);
+  float2x2 mat2x2_f32 = v_37(144u);
+  float2x3 mat2x3_f32 = v_35(160u);
+  float2x4 mat2x4_f32 = v_33(192u);
+  float3x2 mat3x2_f32 = v_30(224u);
+  float3x3 mat3x3_f32 = v_27(256u);
+  float3x4 mat3x4_f32 = v_24(304u);
+  float4x2 mat4x2_f32 = v_20(352u);
+  float4x3 mat4x3_f32 = v_16(384u);
+  float4x4 mat4x4_f32 = v_12(448u);
+  float3 v_39[2] = v_8(512u);
+  Inner v_40 = v(544u);
+  Inner v_41[4] = v_3(552u);
+  int v_42 = (tint_f32_to_i32(scalar_f32) + scalar_i32);
+  int v_43 = (v_42 + int(scalar_u32));
+  int v_44 = ((v_43 + tint_f32_to_i32(vec2_f32[0u])) + vec2_i32[0u]);
+  int v_45 = (v_44 + int(vec2_u32[0u]));
+  int v_46 = ((v_45 + tint_f32_to_i32(vec3_f32[1u])) + vec3_i32[1u]);
+  int v_47 = (v_46 + int(vec3_u32[1u]));
+  int v_48 = ((v_47 + tint_f32_to_i32(vec4_f32[2u])) + vec4_i32[2u]);
+  int v_49 = (v_48 + int(vec4_u32[2u]));
+  int v_50 = (v_49 + tint_f32_to_i32(mat2x2_f32[0][0u]));
+  int v_51 = (v_50 + tint_f32_to_i32(mat2x3_f32[0][0u]));
+  int v_52 = (v_51 + tint_f32_to_i32(mat2x4_f32[0][0u]));
+  int v_53 = (v_52 + tint_f32_to_i32(mat3x2_f32[0][0u]));
+  int v_54 = (v_53 + tint_f32_to_i32(mat3x3_f32[0][0u]));
+  int v_55 = (v_54 + tint_f32_to_i32(mat3x4_f32[0][0u]));
+  int v_56 = (v_55 + tint_f32_to_i32(mat4x2_f32[0][0u]));
+  int v_57 = (v_56 + tint_f32_to_i32(mat4x3_f32[0][0u]));
+  int v_58 = (v_57 + tint_f32_to_i32(mat4x4_f32[0][0u]));
+  float3 arr2_vec3_f32[2] = v_39;
+  Inner struct_inner = v_40;
+  Inner array_struct_inner[4] = v_41;
+  s.Store(0u, asuint((((v_58 + tint_f32_to_i32(arr2_vec3_f32[0][0u])) + struct_inner.scalar_i32) + array_struct_inner[0].scalar_i32)));
+}
+
diff --git a/test/tint/buffer/storage/static_index/read.wgsl.expected.ir.fxc.hlsl b/test/tint/buffer/storage/static_index/read.wgsl.expected.ir.fxc.hlsl
index 3f437dc..a58e304 100644
--- a/test/tint/buffer/storage/static_index/read.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/buffer/storage/static_index/read.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,166 @@
-SKIP: FAILED
+struct Inner {
+  int scalar_i32;
+  float scalar_f32;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Access
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+
+ByteAddressBuffer sb : register(t0);
+RWByteAddressBuffer s : register(u1);
+int tint_f32_to_i32(float value) {
+  return (((value <= 2147483520.0f)) ? ((((value >= -2147483648.0f)) ? (int(value)) : (-2147483648))) : (2147483647));
+}
+
+Inner v(uint offset) {
+  int v_1 = asint(sb.Load((offset + 0u)));
+  Inner v_2 = {v_1, asfloat(sb.Load((offset + 4u)))};
+  return v_2;
+}
+
+typedef Inner ary_ret[4];
+ary_ret v_3(uint offset) {
+  Inner a[4] = (Inner[4])0;
+  {
+    uint v_4 = 0u;
+    v_4 = 0u;
+    while(true) {
+      uint v_5 = v_4;
+      if ((v_5 >= 4u)) {
+        break;
+      }
+      Inner v_6 = v((offset + (v_5 * 8u)));
+      a[v_5] = v_6;
+      {
+        v_4 = (v_5 + 1u);
+      }
+      continue;
+    }
+  }
+  Inner v_7[4] = a;
+  return v_7;
+}
+
+typedef float3 ary_ret_1[2];
+ary_ret_1 v_8(uint offset) {
+  float3 a[2] = (float3[2])0;
+  {
+    uint v_9 = 0u;
+    v_9 = 0u;
+    while(true) {
+      uint v_10 = v_9;
+      if ((v_10 >= 2u)) {
+        break;
+      }
+      a[v_10] = asfloat(sb.Load3((offset + (v_10 * 16u))));
+      {
+        v_9 = (v_10 + 1u);
+      }
+      continue;
+    }
+  }
+  float3 v_11[2] = a;
+  return v_11;
+}
+
+float4x4 v_12(uint offset) {
+  float4 v_13 = asfloat(sb.Load4((offset + 0u)));
+  float4 v_14 = asfloat(sb.Load4((offset + 16u)));
+  float4 v_15 = asfloat(sb.Load4((offset + 32u)));
+  return float4x4(v_13, v_14, v_15, asfloat(sb.Load4((offset + 48u))));
+}
+
+float4x3 v_16(uint offset) {
+  float3 v_17 = asfloat(sb.Load3((offset + 0u)));
+  float3 v_18 = asfloat(sb.Load3((offset + 16u)));
+  float3 v_19 = asfloat(sb.Load3((offset + 32u)));
+  return float4x3(v_17, v_18, v_19, asfloat(sb.Load3((offset + 48u))));
+}
+
+float4x2 v_20(uint offset) {
+  float2 v_21 = asfloat(sb.Load2((offset + 0u)));
+  float2 v_22 = asfloat(sb.Load2((offset + 8u)));
+  float2 v_23 = asfloat(sb.Load2((offset + 16u)));
+  return float4x2(v_21, v_22, v_23, asfloat(sb.Load2((offset + 24u))));
+}
+
+float3x4 v_24(uint offset) {
+  float4 v_25 = asfloat(sb.Load4((offset + 0u)));
+  float4 v_26 = asfloat(sb.Load4((offset + 16u)));
+  return float3x4(v_25, v_26, asfloat(sb.Load4((offset + 32u))));
+}
+
+float3x3 v_27(uint offset) {
+  float3 v_28 = asfloat(sb.Load3((offset + 0u)));
+  float3 v_29 = asfloat(sb.Load3((offset + 16u)));
+  return float3x3(v_28, v_29, asfloat(sb.Load3((offset + 32u))));
+}
+
+float3x2 v_30(uint offset) {
+  float2 v_31 = asfloat(sb.Load2((offset + 0u)));
+  float2 v_32 = asfloat(sb.Load2((offset + 8u)));
+  return float3x2(v_31, v_32, asfloat(sb.Load2((offset + 16u))));
+}
+
+float2x4 v_33(uint offset) {
+  float4 v_34 = asfloat(sb.Load4((offset + 0u)));
+  return float2x4(v_34, asfloat(sb.Load4((offset + 16u))));
+}
+
+float2x3 v_35(uint offset) {
+  float3 v_36 = asfloat(sb.Load3((offset + 0u)));
+  return float2x3(v_36, asfloat(sb.Load3((offset + 16u))));
+}
+
+float2x2 v_37(uint offset) {
+  float2 v_38 = asfloat(sb.Load2((offset + 0u)));
+  return float2x2(v_38, asfloat(sb.Load2((offset + 8u))));
+}
+
+[numthreads(1, 1, 1)]
+void main() {
+  float scalar_f32 = asfloat(sb.Load(0u));
+  int scalar_i32 = asint(sb.Load(4u));
+  uint scalar_u32 = sb.Load(8u);
+  float2 vec2_f32 = asfloat(sb.Load2(16u));
+  int2 vec2_i32 = asint(sb.Load2(24u));
+  uint2 vec2_u32 = sb.Load2(32u);
+  float3 vec3_f32 = asfloat(sb.Load3(48u));
+  int3 vec3_i32 = asint(sb.Load3(64u));
+  uint3 vec3_u32 = sb.Load3(80u);
+  float4 vec4_f32 = asfloat(sb.Load4(96u));
+  int4 vec4_i32 = asint(sb.Load4(112u));
+  uint4 vec4_u32 = sb.Load4(128u);
+  float2x2 mat2x2_f32 = v_37(144u);
+  float2x3 mat2x3_f32 = v_35(160u);
+  float2x4 mat2x4_f32 = v_33(192u);
+  float3x2 mat3x2_f32 = v_30(224u);
+  float3x3 mat3x3_f32 = v_27(256u);
+  float3x4 mat3x4_f32 = v_24(304u);
+  float4x2 mat4x2_f32 = v_20(352u);
+  float4x3 mat4x3_f32 = v_16(384u);
+  float4x4 mat4x4_f32 = v_12(448u);
+  float3 v_39[2] = v_8(512u);
+  Inner v_40 = v(544u);
+  Inner v_41[4] = v_3(552u);
+  int v_42 = (tint_f32_to_i32(scalar_f32) + scalar_i32);
+  int v_43 = (v_42 + int(scalar_u32));
+  int v_44 = ((v_43 + tint_f32_to_i32(vec2_f32[0u])) + vec2_i32[0u]);
+  int v_45 = (v_44 + int(vec2_u32[0u]));
+  int v_46 = ((v_45 + tint_f32_to_i32(vec3_f32[1u])) + vec3_i32[1u]);
+  int v_47 = (v_46 + int(vec3_u32[1u]));
+  int v_48 = ((v_47 + tint_f32_to_i32(vec4_f32[2u])) + vec4_i32[2u]);
+  int v_49 = (v_48 + int(vec4_u32[2u]));
+  int v_50 = (v_49 + tint_f32_to_i32(mat2x2_f32[0][0u]));
+  int v_51 = (v_50 + tint_f32_to_i32(mat2x3_f32[0][0u]));
+  int v_52 = (v_51 + tint_f32_to_i32(mat2x4_f32[0][0u]));
+  int v_53 = (v_52 + tint_f32_to_i32(mat3x2_f32[0][0u]));
+  int v_54 = (v_53 + tint_f32_to_i32(mat3x3_f32[0][0u]));
+  int v_55 = (v_54 + tint_f32_to_i32(mat3x4_f32[0][0u]));
+  int v_56 = (v_55 + tint_f32_to_i32(mat4x2_f32[0][0u]));
+  int v_57 = (v_56 + tint_f32_to_i32(mat4x3_f32[0][0u]));
+  int v_58 = (v_57 + tint_f32_to_i32(mat4x4_f32[0][0u]));
+  float3 arr2_vec3_f32[2] = v_39;
+  Inner struct_inner = v_40;
+  Inner array_struct_inner[4] = v_41;
+  s.Store(0u, asuint((((v_58 + tint_f32_to_i32(arr2_vec3_f32[0][0u])) + struct_inner.scalar_i32) + array_struct_inner[0].scalar_i32)));
+}
+
diff --git a/test/tint/buffer/storage/static_index/read_f16.wgsl.expected.ir.dxc.hlsl b/test/tint/buffer/storage/static_index/read_f16.wgsl.expected.ir.dxc.hlsl
index 3f437dc..e5eb3c9 100644
--- a/test/tint/buffer/storage/static_index/read_f16.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/buffer/storage/static_index/read_f16.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,277 @@
-SKIP: FAILED
+struct Inner {
+  int scalar_i32;
+  float scalar_f32;
+  float16_t scalar_f16;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Access
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+
+ByteAddressBuffer sb : register(t0);
+RWByteAddressBuffer s : register(u1);
+int tint_f16_to_i32(float16_t value) {
+  return (((value <= float16_t(65504.0h))) ? ((((value >= float16_t(-65504.0h))) ? (int(value)) : (-2147483648))) : (2147483647));
+}
+
+int tint_f32_to_i32(float value) {
+  return (((value <= 2147483520.0f)) ? ((((value >= -2147483648.0f)) ? (int(value)) : (-2147483648))) : (2147483647));
+}
+
+Inner v(uint offset) {
+  int v_1 = asint(sb.Load((offset + 0u)));
+  float v_2 = asfloat(sb.Load((offset + 4u)));
+  Inner v_3 = {v_1, v_2, sb.Load<float16_t>((offset + 8u))};
+  return v_3;
+}
+
+typedef Inner ary_ret[4];
+ary_ret v_4(uint offset) {
+  Inner a[4] = (Inner[4])0;
+  {
+    uint v_5 = 0u;
+    v_5 = 0u;
+    while(true) {
+      uint v_6 = v_5;
+      if ((v_6 >= 4u)) {
+        break;
+      }
+      Inner v_7 = v((offset + (v_6 * 12u)));
+      a[v_6] = v_7;
+      {
+        v_5 = (v_6 + 1u);
+      }
+      continue;
+    }
+  }
+  Inner v_8[4] = a;
+  return v_8;
+}
+
+matrix<float16_t, 4, 2> v_9(uint offset) {
+  vector<float16_t, 2> v_10 = sb.Load<vector<float16_t, 2> >((offset + 0u));
+  vector<float16_t, 2> v_11 = sb.Load<vector<float16_t, 2> >((offset + 4u));
+  vector<float16_t, 2> v_12 = sb.Load<vector<float16_t, 2> >((offset + 8u));
+  return matrix<float16_t, 4, 2>(v_10, v_11, v_12, sb.Load<vector<float16_t, 2> >((offset + 12u)));
+}
+
+typedef matrix<float16_t, 4, 2> ary_ret_1[2];
+ary_ret_1 v_13(uint offset) {
+  matrix<float16_t, 4, 2> a[2] = (matrix<float16_t, 4, 2>[2])0;
+  {
+    uint v_14 = 0u;
+    v_14 = 0u;
+    while(true) {
+      uint v_15 = v_14;
+      if ((v_15 >= 2u)) {
+        break;
+      }
+      a[v_15] = v_9((offset + (v_15 * 16u)));
+      {
+        v_14 = (v_15 + 1u);
+      }
+      continue;
+    }
+  }
+  matrix<float16_t, 4, 2> v_16[2] = a;
+  return v_16;
+}
+
+typedef float3 ary_ret_2[2];
+ary_ret_2 v_17(uint offset) {
+  float3 a[2] = (float3[2])0;
+  {
+    uint v_18 = 0u;
+    v_18 = 0u;
+    while(true) {
+      uint v_19 = v_18;
+      if ((v_19 >= 2u)) {
+        break;
+      }
+      a[v_19] = asfloat(sb.Load3((offset + (v_19 * 16u))));
+      {
+        v_18 = (v_19 + 1u);
+      }
+      continue;
+    }
+  }
+  float3 v_20[2] = a;
+  return v_20;
+}
+
+matrix<float16_t, 4, 4> v_21(uint offset) {
+  vector<float16_t, 4> v_22 = sb.Load<vector<float16_t, 4> >((offset + 0u));
+  vector<float16_t, 4> v_23 = sb.Load<vector<float16_t, 4> >((offset + 8u));
+  vector<float16_t, 4> v_24 = sb.Load<vector<float16_t, 4> >((offset + 16u));
+  return matrix<float16_t, 4, 4>(v_22, v_23, v_24, sb.Load<vector<float16_t, 4> >((offset + 24u)));
+}
+
+matrix<float16_t, 4, 3> v_25(uint offset) {
+  vector<float16_t, 3> v_26 = sb.Load<vector<float16_t, 3> >((offset + 0u));
+  vector<float16_t, 3> v_27 = sb.Load<vector<float16_t, 3> >((offset + 8u));
+  vector<float16_t, 3> v_28 = sb.Load<vector<float16_t, 3> >((offset + 16u));
+  return matrix<float16_t, 4, 3>(v_26, v_27, v_28, sb.Load<vector<float16_t, 3> >((offset + 24u)));
+}
+
+matrix<float16_t, 3, 4> v_29(uint offset) {
+  vector<float16_t, 4> v_30 = sb.Load<vector<float16_t, 4> >((offset + 0u));
+  vector<float16_t, 4> v_31 = sb.Load<vector<float16_t, 4> >((offset + 8u));
+  return matrix<float16_t, 3, 4>(v_30, v_31, sb.Load<vector<float16_t, 4> >((offset + 16u)));
+}
+
+matrix<float16_t, 3, 3> v_32(uint offset) {
+  vector<float16_t, 3> v_33 = sb.Load<vector<float16_t, 3> >((offset + 0u));
+  vector<float16_t, 3> v_34 = sb.Load<vector<float16_t, 3> >((offset + 8u));
+  return matrix<float16_t, 3, 3>(v_33, v_34, sb.Load<vector<float16_t, 3> >((offset + 16u)));
+}
+
+matrix<float16_t, 3, 2> v_35(uint offset) {
+  vector<float16_t, 2> v_36 = sb.Load<vector<float16_t, 2> >((offset + 0u));
+  vector<float16_t, 2> v_37 = sb.Load<vector<float16_t, 2> >((offset + 4u));
+  return matrix<float16_t, 3, 2>(v_36, v_37, sb.Load<vector<float16_t, 2> >((offset + 8u)));
+}
+
+matrix<float16_t, 2, 4> v_38(uint offset) {
+  vector<float16_t, 4> v_39 = sb.Load<vector<float16_t, 4> >((offset + 0u));
+  return matrix<float16_t, 2, 4>(v_39, sb.Load<vector<float16_t, 4> >((offset + 8u)));
+}
+
+matrix<float16_t, 2, 3> v_40(uint offset) {
+  vector<float16_t, 3> v_41 = sb.Load<vector<float16_t, 3> >((offset + 0u));
+  return matrix<float16_t, 2, 3>(v_41, sb.Load<vector<float16_t, 3> >((offset + 8u)));
+}
+
+matrix<float16_t, 2, 2> v_42(uint offset) {
+  vector<float16_t, 2> v_43 = sb.Load<vector<float16_t, 2> >((offset + 0u));
+  return matrix<float16_t, 2, 2>(v_43, sb.Load<vector<float16_t, 2> >((offset + 4u)));
+}
+
+float4x4 v_44(uint offset) {
+  float4 v_45 = asfloat(sb.Load4((offset + 0u)));
+  float4 v_46 = asfloat(sb.Load4((offset + 16u)));
+  float4 v_47 = asfloat(sb.Load4((offset + 32u)));
+  return float4x4(v_45, v_46, v_47, asfloat(sb.Load4((offset + 48u))));
+}
+
+float4x3 v_48(uint offset) {
+  float3 v_49 = asfloat(sb.Load3((offset + 0u)));
+  float3 v_50 = asfloat(sb.Load3((offset + 16u)));
+  float3 v_51 = asfloat(sb.Load3((offset + 32u)));
+  return float4x3(v_49, v_50, v_51, asfloat(sb.Load3((offset + 48u))));
+}
+
+float4x2 v_52(uint offset) {
+  float2 v_53 = asfloat(sb.Load2((offset + 0u)));
+  float2 v_54 = asfloat(sb.Load2((offset + 8u)));
+  float2 v_55 = asfloat(sb.Load2((offset + 16u)));
+  return float4x2(v_53, v_54, v_55, asfloat(sb.Load2((offset + 24u))));
+}
+
+float3x4 v_56(uint offset) {
+  float4 v_57 = asfloat(sb.Load4((offset + 0u)));
+  float4 v_58 = asfloat(sb.Load4((offset + 16u)));
+  return float3x4(v_57, v_58, asfloat(sb.Load4((offset + 32u))));
+}
+
+float3x3 v_59(uint offset) {
+  float3 v_60 = asfloat(sb.Load3((offset + 0u)));
+  float3 v_61 = asfloat(sb.Load3((offset + 16u)));
+  return float3x3(v_60, v_61, asfloat(sb.Load3((offset + 32u))));
+}
+
+float3x2 v_62(uint offset) {
+  float2 v_63 = asfloat(sb.Load2((offset + 0u)));
+  float2 v_64 = asfloat(sb.Load2((offset + 8u)));
+  return float3x2(v_63, v_64, asfloat(sb.Load2((offset + 16u))));
+}
+
+float2x4 v_65(uint offset) {
+  float4 v_66 = asfloat(sb.Load4((offset + 0u)));
+  return float2x4(v_66, asfloat(sb.Load4((offset + 16u))));
+}
+
+float2x3 v_67(uint offset) {
+  float3 v_68 = asfloat(sb.Load3((offset + 0u)));
+  return float2x3(v_68, asfloat(sb.Load3((offset + 16u))));
+}
+
+float2x2 v_69(uint offset) {
+  float2 v_70 = asfloat(sb.Load2((offset + 0u)));
+  return float2x2(v_70, asfloat(sb.Load2((offset + 8u))));
+}
+
+[numthreads(1, 1, 1)]
+void main() {
+  float scalar_f32 = asfloat(sb.Load(0u));
+  int scalar_i32 = asint(sb.Load(4u));
+  uint scalar_u32 = sb.Load(8u);
+  float16_t scalar_f16 = sb.Load<float16_t>(12u);
+  float2 vec2_f32 = asfloat(sb.Load2(16u));
+  int2 vec2_i32 = asint(sb.Load2(24u));
+  uint2 vec2_u32 = sb.Load2(32u);
+  vector<float16_t, 2> vec2_f16 = sb.Load<vector<float16_t, 2> >(40u);
+  float3 vec3_f32 = asfloat(sb.Load3(48u));
+  int3 vec3_i32 = asint(sb.Load3(64u));
+  uint3 vec3_u32 = sb.Load3(80u);
+  vector<float16_t, 3> vec3_f16 = sb.Load<vector<float16_t, 3> >(96u);
+  float4 vec4_f32 = asfloat(sb.Load4(112u));
+  int4 vec4_i32 = asint(sb.Load4(128u));
+  uint4 vec4_u32 = sb.Load4(144u);
+  vector<float16_t, 4> vec4_f16 = sb.Load<vector<float16_t, 4> >(160u);
+  float2x2 mat2x2_f32 = v_69(168u);
+  float2x3 mat2x3_f32 = v_67(192u);
+  float2x4 mat2x4_f32 = v_65(224u);
+  float3x2 mat3x2_f32 = v_62(256u);
+  float3x3 mat3x3_f32 = v_59(288u);
+  float3x4 mat3x4_f32 = v_56(336u);
+  float4x2 mat4x2_f32 = v_52(384u);
+  float4x3 mat4x3_f32 = v_48(416u);
+  float4x4 mat4x4_f32 = v_44(480u);
+  matrix<float16_t, 2, 2> mat2x2_f16 = v_42(544u);
+  matrix<float16_t, 2, 3> mat2x3_f16 = v_40(552u);
+  matrix<float16_t, 2, 4> mat2x4_f16 = v_38(568u);
+  matrix<float16_t, 3, 2> mat3x2_f16 = v_35(584u);
+  matrix<float16_t, 3, 3> mat3x3_f16 = v_32(600u);
+  matrix<float16_t, 3, 4> mat3x4_f16 = v_29(624u);
+  matrix<float16_t, 4, 2> mat4x2_f16 = v_9(648u);
+  matrix<float16_t, 4, 3> mat4x3_f16 = v_25(664u);
+  matrix<float16_t, 4, 4> mat4x4_f16 = v_21(696u);
+  float3 v_71[2] = v_17(736u);
+  matrix<float16_t, 4, 2> v_72[2] = v_13(768u);
+  Inner v_73 = v(800u);
+  Inner v_74[4] = v_4(812u);
+  int v_75 = (tint_f32_to_i32(scalar_f32) + scalar_i32);
+  int v_76 = (v_75 + int(scalar_u32));
+  int v_77 = (v_76 + tint_f16_to_i32(scalar_f16));
+  int v_78 = ((v_77 + tint_f32_to_i32(vec2_f32[0u])) + vec2_i32[0u]);
+  int v_79 = (v_78 + int(vec2_u32[0u]));
+  int v_80 = (v_79 + tint_f16_to_i32(vec2_f16[0u]));
+  int v_81 = ((v_80 + tint_f32_to_i32(vec3_f32[1u])) + vec3_i32[1u]);
+  int v_82 = (v_81 + int(vec3_u32[1u]));
+  int v_83 = (v_82 + tint_f16_to_i32(vec3_f16[1u]));
+  int v_84 = ((v_83 + tint_f32_to_i32(vec4_f32[2u])) + vec4_i32[2u]);
+  int v_85 = (v_84 + int(vec4_u32[2u]));
+  int v_86 = (v_85 + tint_f16_to_i32(vec4_f16[2u]));
+  int v_87 = (v_86 + tint_f32_to_i32(mat2x2_f32[0][0u]));
+  int v_88 = (v_87 + tint_f32_to_i32(mat2x3_f32[0][0u]));
+  int v_89 = (v_88 + tint_f32_to_i32(mat2x4_f32[0][0u]));
+  int v_90 = (v_89 + tint_f32_to_i32(mat3x2_f32[0][0u]));
+  int v_91 = (v_90 + tint_f32_to_i32(mat3x3_f32[0][0u]));
+  int v_92 = (v_91 + tint_f32_to_i32(mat3x4_f32[0][0u]));
+  int v_93 = (v_92 + tint_f32_to_i32(mat4x2_f32[0][0u]));
+  int v_94 = (v_93 + tint_f32_to_i32(mat4x3_f32[0][0u]));
+  int v_95 = (v_94 + tint_f32_to_i32(mat4x4_f32[0][0u]));
+  int v_96 = (v_95 + tint_f16_to_i32(mat2x2_f16[0][0u]));
+  int v_97 = (v_96 + tint_f16_to_i32(mat2x3_f16[0][0u]));
+  int v_98 = (v_97 + tint_f16_to_i32(mat2x4_f16[0][0u]));
+  int v_99 = (v_98 + tint_f16_to_i32(mat3x2_f16[0][0u]));
+  int v_100 = (v_99 + tint_f16_to_i32(mat3x3_f16[0][0u]));
+  int v_101 = (v_100 + tint_f16_to_i32(mat3x4_f16[0][0u]));
+  int v_102 = (v_101 + tint_f16_to_i32(mat4x2_f16[0][0u]));
+  int v_103 = (v_102 + tint_f16_to_i32(mat4x3_f16[0][0u]));
+  int v_104 = (v_103 + tint_f16_to_i32(mat4x4_f16[0][0u]));
+  float3 arr2_vec3_f32[2] = v_71;
+  int v_105 = (v_104 + tint_f32_to_i32(arr2_vec3_f32[0][0u]));
+  matrix<float16_t, 4, 2> arr2_mat4x2_f16[2] = v_72;
+  Inner struct_inner = v_73;
+  Inner array_struct_inner[4] = v_74;
+  s.Store(0u, asuint((((v_105 + tint_f16_to_i32(arr2_mat4x2_f16[0][0][0u])) + struct_inner.scalar_i32) + array_struct_inner[0].scalar_i32)));
+}
+
diff --git a/test/tint/buffer/storage/static_index/read_f16.wgsl.expected.ir.fxc.hlsl b/test/tint/buffer/storage/static_index/read_f16.wgsl.expected.ir.fxc.hlsl
index 3f437dc..99328d4 100644
--- a/test/tint/buffer/storage/static_index/read_f16.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/buffer/storage/static_index/read_f16.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,282 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Access
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct Inner {
+  int scalar_i32;
+  float scalar_f32;
+  float16_t scalar_f16;
+};
+
+
+ByteAddressBuffer sb : register(t0);
+RWByteAddressBuffer s : register(u1);
+int tint_f16_to_i32(float16_t value) {
+  return (((value <= float16_t(65504.0h))) ? ((((value >= float16_t(-65504.0h))) ? (int(value)) : (-2147483648))) : (2147483647));
+}
+
+int tint_f32_to_i32(float value) {
+  return (((value <= 2147483520.0f)) ? ((((value >= -2147483648.0f)) ? (int(value)) : (-2147483648))) : (2147483647));
+}
+
+Inner v(uint offset) {
+  int v_1 = asint(sb.Load((offset + 0u)));
+  float v_2 = asfloat(sb.Load((offset + 4u)));
+  Inner v_3 = {v_1, v_2, sb.Load<float16_t>((offset + 8u))};
+  return v_3;
+}
+
+typedef Inner ary_ret[4];
+ary_ret v_4(uint offset) {
+  Inner a[4] = (Inner[4])0;
+  {
+    uint v_5 = 0u;
+    v_5 = 0u;
+    while(true) {
+      uint v_6 = v_5;
+      if ((v_6 >= 4u)) {
+        break;
+      }
+      Inner v_7 = v((offset + (v_6 * 12u)));
+      a[v_6] = v_7;
+      {
+        v_5 = (v_6 + 1u);
+      }
+      continue;
+    }
+  }
+  Inner v_8[4] = a;
+  return v_8;
+}
+
+matrix<float16_t, 4, 2> v_9(uint offset) {
+  vector<float16_t, 2> v_10 = sb.Load<vector<float16_t, 2> >((offset + 0u));
+  vector<float16_t, 2> v_11 = sb.Load<vector<float16_t, 2> >((offset + 4u));
+  vector<float16_t, 2> v_12 = sb.Load<vector<float16_t, 2> >((offset + 8u));
+  return matrix<float16_t, 4, 2>(v_10, v_11, v_12, sb.Load<vector<float16_t, 2> >((offset + 12u)));
+}
+
+typedef matrix<float16_t, 4, 2> ary_ret_1[2];
+ary_ret_1 v_13(uint offset) {
+  matrix<float16_t, 4, 2> a[2] = (matrix<float16_t, 4, 2>[2])0;
+  {
+    uint v_14 = 0u;
+    v_14 = 0u;
+    while(true) {
+      uint v_15 = v_14;
+      if ((v_15 >= 2u)) {
+        break;
+      }
+      a[v_15] = v_9((offset + (v_15 * 16u)));
+      {
+        v_14 = (v_15 + 1u);
+      }
+      continue;
+    }
+  }
+  matrix<float16_t, 4, 2> v_16[2] = a;
+  return v_16;
+}
+
+typedef float3 ary_ret_2[2];
+ary_ret_2 v_17(uint offset) {
+  float3 a[2] = (float3[2])0;
+  {
+    uint v_18 = 0u;
+    v_18 = 0u;
+    while(true) {
+      uint v_19 = v_18;
+      if ((v_19 >= 2u)) {
+        break;
+      }
+      a[v_19] = asfloat(sb.Load3((offset + (v_19 * 16u))));
+      {
+        v_18 = (v_19 + 1u);
+      }
+      continue;
+    }
+  }
+  float3 v_20[2] = a;
+  return v_20;
+}
+
+matrix<float16_t, 4, 4> v_21(uint offset) {
+  vector<float16_t, 4> v_22 = sb.Load<vector<float16_t, 4> >((offset + 0u));
+  vector<float16_t, 4> v_23 = sb.Load<vector<float16_t, 4> >((offset + 8u));
+  vector<float16_t, 4> v_24 = sb.Load<vector<float16_t, 4> >((offset + 16u));
+  return matrix<float16_t, 4, 4>(v_22, v_23, v_24, sb.Load<vector<float16_t, 4> >((offset + 24u)));
+}
+
+matrix<float16_t, 4, 3> v_25(uint offset) {
+  vector<float16_t, 3> v_26 = sb.Load<vector<float16_t, 3> >((offset + 0u));
+  vector<float16_t, 3> v_27 = sb.Load<vector<float16_t, 3> >((offset + 8u));
+  vector<float16_t, 3> v_28 = sb.Load<vector<float16_t, 3> >((offset + 16u));
+  return matrix<float16_t, 4, 3>(v_26, v_27, v_28, sb.Load<vector<float16_t, 3> >((offset + 24u)));
+}
+
+matrix<float16_t, 3, 4> v_29(uint offset) {
+  vector<float16_t, 4> v_30 = sb.Load<vector<float16_t, 4> >((offset + 0u));
+  vector<float16_t, 4> v_31 = sb.Load<vector<float16_t, 4> >((offset + 8u));
+  return matrix<float16_t, 3, 4>(v_30, v_31, sb.Load<vector<float16_t, 4> >((offset + 16u)));
+}
+
+matrix<float16_t, 3, 3> v_32(uint offset) {
+  vector<float16_t, 3> v_33 = sb.Load<vector<float16_t, 3> >((offset + 0u));
+  vector<float16_t, 3> v_34 = sb.Load<vector<float16_t, 3> >((offset + 8u));
+  return matrix<float16_t, 3, 3>(v_33, v_34, sb.Load<vector<float16_t, 3> >((offset + 16u)));
+}
+
+matrix<float16_t, 3, 2> v_35(uint offset) {
+  vector<float16_t, 2> v_36 = sb.Load<vector<float16_t, 2> >((offset + 0u));
+  vector<float16_t, 2> v_37 = sb.Load<vector<float16_t, 2> >((offset + 4u));
+  return matrix<float16_t, 3, 2>(v_36, v_37, sb.Load<vector<float16_t, 2> >((offset + 8u)));
+}
+
+matrix<float16_t, 2, 4> v_38(uint offset) {
+  vector<float16_t, 4> v_39 = sb.Load<vector<float16_t, 4> >((offset + 0u));
+  return matrix<float16_t, 2, 4>(v_39, sb.Load<vector<float16_t, 4> >((offset + 8u)));
+}
+
+matrix<float16_t, 2, 3> v_40(uint offset) {
+  vector<float16_t, 3> v_41 = sb.Load<vector<float16_t, 3> >((offset + 0u));
+  return matrix<float16_t, 2, 3>(v_41, sb.Load<vector<float16_t, 3> >((offset + 8u)));
+}
+
+matrix<float16_t, 2, 2> v_42(uint offset) {
+  vector<float16_t, 2> v_43 = sb.Load<vector<float16_t, 2> >((offset + 0u));
+  return matrix<float16_t, 2, 2>(v_43, sb.Load<vector<float16_t, 2> >((offset + 4u)));
+}
+
+float4x4 v_44(uint offset) {
+  float4 v_45 = asfloat(sb.Load4((offset + 0u)));
+  float4 v_46 = asfloat(sb.Load4((offset + 16u)));
+  float4 v_47 = asfloat(sb.Load4((offset + 32u)));
+  return float4x4(v_45, v_46, v_47, asfloat(sb.Load4((offset + 48u))));
+}
+
+float4x3 v_48(uint offset) {
+  float3 v_49 = asfloat(sb.Load3((offset + 0u)));
+  float3 v_50 = asfloat(sb.Load3((offset + 16u)));
+  float3 v_51 = asfloat(sb.Load3((offset + 32u)));
+  return float4x3(v_49, v_50, v_51, asfloat(sb.Load3((offset + 48u))));
+}
+
+float4x2 v_52(uint offset) {
+  float2 v_53 = asfloat(sb.Load2((offset + 0u)));
+  float2 v_54 = asfloat(sb.Load2((offset + 8u)));
+  float2 v_55 = asfloat(sb.Load2((offset + 16u)));
+  return float4x2(v_53, v_54, v_55, asfloat(sb.Load2((offset + 24u))));
+}
+
+float3x4 v_56(uint offset) {
+  float4 v_57 = asfloat(sb.Load4((offset + 0u)));
+  float4 v_58 = asfloat(sb.Load4((offset + 16u)));
+  return float3x4(v_57, v_58, asfloat(sb.Load4((offset + 32u))));
+}
+
+float3x3 v_59(uint offset) {
+  float3 v_60 = asfloat(sb.Load3((offset + 0u)));
+  float3 v_61 = asfloat(sb.Load3((offset + 16u)));
+  return float3x3(v_60, v_61, asfloat(sb.Load3((offset + 32u))));
+}
+
+float3x2 v_62(uint offset) {
+  float2 v_63 = asfloat(sb.Load2((offset + 0u)));
+  float2 v_64 = asfloat(sb.Load2((offset + 8u)));
+  return float3x2(v_63, v_64, asfloat(sb.Load2((offset + 16u))));
+}
+
+float2x4 v_65(uint offset) {
+  float4 v_66 = asfloat(sb.Load4((offset + 0u)));
+  return float2x4(v_66, asfloat(sb.Load4((offset + 16u))));
+}
+
+float2x3 v_67(uint offset) {
+  float3 v_68 = asfloat(sb.Load3((offset + 0u)));
+  return float2x3(v_68, asfloat(sb.Load3((offset + 16u))));
+}
+
+float2x2 v_69(uint offset) {
+  float2 v_70 = asfloat(sb.Load2((offset + 0u)));
+  return float2x2(v_70, asfloat(sb.Load2((offset + 8u))));
+}
+
+[numthreads(1, 1, 1)]
+void main() {
+  float scalar_f32 = asfloat(sb.Load(0u));
+  int scalar_i32 = asint(sb.Load(4u));
+  uint scalar_u32 = sb.Load(8u);
+  float16_t scalar_f16 = sb.Load<float16_t>(12u);
+  float2 vec2_f32 = asfloat(sb.Load2(16u));
+  int2 vec2_i32 = asint(sb.Load2(24u));
+  uint2 vec2_u32 = sb.Load2(32u);
+  vector<float16_t, 2> vec2_f16 = sb.Load<vector<float16_t, 2> >(40u);
+  float3 vec3_f32 = asfloat(sb.Load3(48u));
+  int3 vec3_i32 = asint(sb.Load3(64u));
+  uint3 vec3_u32 = sb.Load3(80u);
+  vector<float16_t, 3> vec3_f16 = sb.Load<vector<float16_t, 3> >(96u);
+  float4 vec4_f32 = asfloat(sb.Load4(112u));
+  int4 vec4_i32 = asint(sb.Load4(128u));
+  uint4 vec4_u32 = sb.Load4(144u);
+  vector<float16_t, 4> vec4_f16 = sb.Load<vector<float16_t, 4> >(160u);
+  float2x2 mat2x2_f32 = v_69(168u);
+  float2x3 mat2x3_f32 = v_67(192u);
+  float2x4 mat2x4_f32 = v_65(224u);
+  float3x2 mat3x2_f32 = v_62(256u);
+  float3x3 mat3x3_f32 = v_59(288u);
+  float3x4 mat3x4_f32 = v_56(336u);
+  float4x2 mat4x2_f32 = v_52(384u);
+  float4x3 mat4x3_f32 = v_48(416u);
+  float4x4 mat4x4_f32 = v_44(480u);
+  matrix<float16_t, 2, 2> mat2x2_f16 = v_42(544u);
+  matrix<float16_t, 2, 3> mat2x3_f16 = v_40(552u);
+  matrix<float16_t, 2, 4> mat2x4_f16 = v_38(568u);
+  matrix<float16_t, 3, 2> mat3x2_f16 = v_35(584u);
+  matrix<float16_t, 3, 3> mat3x3_f16 = v_32(600u);
+  matrix<float16_t, 3, 4> mat3x4_f16 = v_29(624u);
+  matrix<float16_t, 4, 2> mat4x2_f16 = v_9(648u);
+  matrix<float16_t, 4, 3> mat4x3_f16 = v_25(664u);
+  matrix<float16_t, 4, 4> mat4x4_f16 = v_21(696u);
+  float3 v_71[2] = v_17(736u);
+  matrix<float16_t, 4, 2> v_72[2] = v_13(768u);
+  Inner v_73 = v(800u);
+  Inner v_74[4] = v_4(812u);
+  int v_75 = (tint_f32_to_i32(scalar_f32) + scalar_i32);
+  int v_76 = (v_75 + int(scalar_u32));
+  int v_77 = (v_76 + tint_f16_to_i32(scalar_f16));
+  int v_78 = ((v_77 + tint_f32_to_i32(vec2_f32[0u])) + vec2_i32[0u]);
+  int v_79 = (v_78 + int(vec2_u32[0u]));
+  int v_80 = (v_79 + tint_f16_to_i32(vec2_f16[0u]));
+  int v_81 = ((v_80 + tint_f32_to_i32(vec3_f32[1u])) + vec3_i32[1u]);
+  int v_82 = (v_81 + int(vec3_u32[1u]));
+  int v_83 = (v_82 + tint_f16_to_i32(vec3_f16[1u]));
+  int v_84 = ((v_83 + tint_f32_to_i32(vec4_f32[2u])) + vec4_i32[2u]);
+  int v_85 = (v_84 + int(vec4_u32[2u]));
+  int v_86 = (v_85 + tint_f16_to_i32(vec4_f16[2u]));
+  int v_87 = (v_86 + tint_f32_to_i32(mat2x2_f32[0][0u]));
+  int v_88 = (v_87 + tint_f32_to_i32(mat2x3_f32[0][0u]));
+  int v_89 = (v_88 + tint_f32_to_i32(mat2x4_f32[0][0u]));
+  int v_90 = (v_89 + tint_f32_to_i32(mat3x2_f32[0][0u]));
+  int v_91 = (v_90 + tint_f32_to_i32(mat3x3_f32[0][0u]));
+  int v_92 = (v_91 + tint_f32_to_i32(mat3x4_f32[0][0u]));
+  int v_93 = (v_92 + tint_f32_to_i32(mat4x2_f32[0][0u]));
+  int v_94 = (v_93 + tint_f32_to_i32(mat4x3_f32[0][0u]));
+  int v_95 = (v_94 + tint_f32_to_i32(mat4x4_f32[0][0u]));
+  int v_96 = (v_95 + tint_f16_to_i32(mat2x2_f16[0][0u]));
+  int v_97 = (v_96 + tint_f16_to_i32(mat2x3_f16[0][0u]));
+  int v_98 = (v_97 + tint_f16_to_i32(mat2x4_f16[0][0u]));
+  int v_99 = (v_98 + tint_f16_to_i32(mat3x2_f16[0][0u]));
+  int v_100 = (v_99 + tint_f16_to_i32(mat3x3_f16[0][0u]));
+  int v_101 = (v_100 + tint_f16_to_i32(mat3x4_f16[0][0u]));
+  int v_102 = (v_101 + tint_f16_to_i32(mat4x2_f16[0][0u]));
+  int v_103 = (v_102 + tint_f16_to_i32(mat4x3_f16[0][0u]));
+  int v_104 = (v_103 + tint_f16_to_i32(mat4x4_f16[0][0u]));
+  float3 arr2_vec3_f32[2] = v_71;
+  int v_105 = (v_104 + tint_f32_to_i32(arr2_vec3_f32[0][0u]));
+  matrix<float16_t, 4, 2> arr2_mat4x2_f16[2] = v_72;
+  Inner struct_inner = v_73;
+  Inner array_struct_inner[4] = v_74;
+  s.Store(0u, asuint((((v_105 + tint_f16_to_i32(arr2_mat4x2_f16[0][0][0u])) + struct_inner.scalar_i32) + array_struct_inner[0].scalar_i32)));
+}
+
+FXC validation failure:
+c:\src\dawn\Shader@0x000001A7D09B69B0(4,3-11): error X3000: unrecognized identifier 'float16_t'
+
diff --git a/test/tint/buffer/storage/static_index/write.wgsl.expected.ir.dxc.hlsl b/test/tint/buffer/storage/static_index/write.wgsl.expected.ir.dxc.hlsl
index 3f437dc..b8b88c6 100644
--- a/test/tint/buffer/storage/static_index/write.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/buffer/storage/static_index/write.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,3 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Access
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+exit status 0xe0000001
\ No newline at end of file
diff --git a/test/tint/buffer/storage/static_index/write.wgsl.expected.ir.fxc.hlsl b/test/tint/buffer/storage/static_index/write.wgsl.expected.ir.fxc.hlsl
index 3f437dc..cc50f2f 100644
--- a/test/tint/buffer/storage/static_index/write.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/buffer/storage/static_index/write.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,134 @@
-SKIP: FAILED
+struct Inner {
+  int scalar_i32;
+  float scalar_f32;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Access
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+
+RWByteAddressBuffer sb : register(u0);
+void v(uint offset, Inner obj) {
+  sb.Store((offset + 0u), asuint(obj.scalar_i32));
+  sb.Store((offset + 4u), asuint(obj.scalar_f32));
+}
+
+void v_1(uint offset, Inner obj[4]) {
+  {
+    uint v_2 = 0u;
+    v_2 = 0u;
+    while(true) {
+      uint v_3 = v_2;
+      if ((v_3 >= 4u)) {
+        break;
+      }
+      Inner v_4 = obj[v_3];
+      v((offset + (v_3 * 8u)), v_4);
+      {
+        v_2 = (v_3 + 1u);
+      }
+      continue;
+    }
+  }
+}
+
+void v_5(uint offset, float3 obj[2]) {
+  {
+    uint v_6 = 0u;
+    v_6 = 0u;
+    while(true) {
+      uint v_7 = v_6;
+      if ((v_7 >= 2u)) {
+        break;
+      }
+      sb.Store3((offset + (v_7 * 16u)), asuint(obj[v_7]));
+      {
+        v_6 = (v_7 + 1u);
+      }
+      continue;
+    }
+  }
+}
+
+void v_8(uint offset, float4x4 obj) {
+  sb.Store4((offset + 0u), asuint(obj[0u]));
+  sb.Store4((offset + 16u), asuint(obj[1u]));
+  sb.Store4((offset + 32u), asuint(obj[2u]));
+  sb.Store4((offset + 48u), asuint(obj[3u]));
+}
+
+void v_9(uint offset, float4x3 obj) {
+  sb.Store3((offset + 0u), asuint(obj[0u]));
+  sb.Store3((offset + 16u), asuint(obj[1u]));
+  sb.Store3((offset + 32u), asuint(obj[2u]));
+  sb.Store3((offset + 48u), asuint(obj[3u]));
+}
+
+void v_10(uint offset, float4x2 obj) {
+  sb.Store2((offset + 0u), asuint(obj[0u]));
+  sb.Store2((offset + 8u), asuint(obj[1u]));
+  sb.Store2((offset + 16u), asuint(obj[2u]));
+  sb.Store2((offset + 24u), asuint(obj[3u]));
+}
+
+void v_11(uint offset, float3x4 obj) {
+  sb.Store4((offset + 0u), asuint(obj[0u]));
+  sb.Store4((offset + 16u), asuint(obj[1u]));
+  sb.Store4((offset + 32u), asuint(obj[2u]));
+}
+
+void v_12(uint offset, float3x3 obj) {
+  sb.Store3((offset + 0u), asuint(obj[0u]));
+  sb.Store3((offset + 16u), asuint(obj[1u]));
+  sb.Store3((offset + 32u), asuint(obj[2u]));
+}
+
+void v_13(uint offset, float3x2 obj) {
+  sb.Store2((offset + 0u), asuint(obj[0u]));
+  sb.Store2((offset + 8u), asuint(obj[1u]));
+  sb.Store2((offset + 16u), asuint(obj[2u]));
+}
+
+void v_14(uint offset, float2x4 obj) {
+  sb.Store4((offset + 0u), asuint(obj[0u]));
+  sb.Store4((offset + 16u), asuint(obj[1u]));
+}
+
+void v_15(uint offset, float2x3 obj) {
+  sb.Store3((offset + 0u), asuint(obj[0u]));
+  sb.Store3((offset + 16u), asuint(obj[1u]));
+}
+
+void v_16(uint offset, float2x2 obj) {
+  sb.Store2((offset + 0u), asuint(obj[0u]));
+  sb.Store2((offset + 8u), asuint(obj[1u]));
+}
+
+[numthreads(1, 1, 1)]
+void main() {
+  sb.Store(0u, asuint(0.0f));
+  sb.Store(4u, asuint(0));
+  sb.Store(8u, 0u);
+  sb.Store2(16u, asuint((0.0f).xx));
+  sb.Store2(24u, asuint((0).xx));
+  sb.Store2(32u, (0u).xx);
+  sb.Store3(48u, asuint((0.0f).xxx));
+  sb.Store3(64u, asuint((0).xxx));
+  sb.Store3(80u, (0u).xxx);
+  sb.Store4(96u, asuint((0.0f).xxxx));
+  sb.Store4(112u, asuint((0).xxxx));
+  sb.Store4(128u, (0u).xxxx);
+  v_16(144u, float2x2((0.0f).xx, (0.0f).xx));
+  v_15(160u, float2x3((0.0f).xxx, (0.0f).xxx));
+  v_14(192u, float2x4((0.0f).xxxx, (0.0f).xxxx));
+  v_13(224u, float3x2((0.0f).xx, (0.0f).xx, (0.0f).xx));
+  v_12(256u, float3x3((0.0f).xxx, (0.0f).xxx, (0.0f).xxx));
+  v_11(304u, float3x4((0.0f).xxxx, (0.0f).xxxx, (0.0f).xxxx));
+  v_10(352u, float4x2((0.0f).xx, (0.0f).xx, (0.0f).xx, (0.0f).xx));
+  v_9(384u, float4x3((0.0f).xxx, (0.0f).xxx, (0.0f).xxx, (0.0f).xxx));
+  v_8(448u, float4x4((0.0f).xxxx, (0.0f).xxxx, (0.0f).xxxx, (0.0f).xxxx));
+  float3 v_17[2] = (float3[2])0;
+  v_5(512u, v_17);
+  Inner v_18 = (Inner)0;
+  v(544u, v_18);
+  Inner v_19[4] = (Inner[4])0;
+  v_1(552u, v_19);
+}
+
diff --git a/test/tint/buffer/storage/static_index/write_f16.wgsl.expected.ir.dxc.hlsl b/test/tint/buffer/storage/static_index/write_f16.wgsl.expected.ir.dxc.hlsl
index 3f437dc..b5585a4 100644
--- a/test/tint/buffer/storage/static_index/write_f16.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/buffer/storage/static_index/write_f16.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,149 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Access
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct Inner {
+  int scalar_i32;
+  float scalar_f32;
+  float16_t scalar_f16;
+};
+
+
+RWByteAddressBuffer sb : register(u0);
+void v(uint offset, Inner obj) {
+  sb.Store((offset + 0u), asuint(obj.scalar_i32));
+  sb.Store((offset + 4u), asuint(obj.scalar_f32));
+  sb.Store<float16_t>((offset + 8u), obj.scalar_f16);
+}
+
+void v_1(uint offset, Inner obj[4]) {
+  {
+    uint v_2 = 0u;
+    v_2 = 0u;
+    while(true) {
+      uint v_3 = v_2;
+      if ((v_3 >= 4u)) {
+        break;
+      }
+      Inner v_4 = obj[v_3];
+      v((offset + (v_3 * 12u)), v_4);
+      {
+        v_2 = (v_3 + 1u);
+      }
+      continue;
+    }
+  }
+}
+
+void v_5(uint offset, matrix<float16_t, 4, 2> obj) {
+  sb.Store<vector<float16_t, 2> >((offset + 0u), obj[0u]);
+  sb.Store<vector<float16_t, 2> >((offset + 4u), obj[1u]);
+  sb.Store<vector<float16_t, 2> >((offset + 8u), obj[2u]);
+  sb.Store<vector<float16_t, 2> >((offset + 12u), obj[3u]);
+}
+
+void v_6(uint offset, matrix<float16_t, 4, 2> obj[2]) {
+  {
+    uint v_7 = 0u;
+    v_7 = 0u;
+    while(true) {
+      uint v_8 = v_7;
+      if ((v_8 >= 2u)) {
+        break;
+      }
+      v_5((offset + (v_8 * 16u)), obj[v_8]);
+      {
+        v_7 = (v_8 + 1u);
+      }
+      continue;
+    }
+  }
+}
+
+void v_9(uint offset, float3 obj[2]) {
+  {
+    uint v_10 = 0u;
+    v_10 = 0u;
+    while(true) {
+      uint v_11 = v_10;
+      if ((v_11 >= 2u)) {
+        break;
+      }
+      sb.Store3((offset + (v_11 * 16u)), asuint(obj[v_11]));
+      {
+        v_10 = (v_11 + 1u);
+      }
+      continue;
+    }
+  }
+}
+
+void v_12(uint offset, matrix<float16_t, 4, 4> obj) {
+  sb.Store<vector<float16_t, 4> >((offset + 0u), obj[0u]);
+  sb.Store<vector<float16_t, 4> >((offset + 8u), obj[1u]);
+  sb.Store<vector<float16_t, 4> >((offset + 16u), obj[2u]);
+  sb.Store<vector<float16_t, 4> >((offset + 24u), obj[3u]);
+}
+
+void v_13(uint offset, matrix<float16_t, 4, 3> obj) {
+  sb.Store<vector<float16_t, 3> >((offset + 0u), obj[0u]);
+  sb.Store<vector<float16_t, 3> >((offset + 8u), obj[1u]);
+  sb.Store<vector<float16_t, 3> >((offset + 16u), obj[2u]);
+  sb.Store<vector<float16_t, 3> >((offset + 24u), obj[3u]);
+}
+
+void v_14(uint offset, matrix<float16_t, 3, 4> obj) {
+  sb.Store<vector<float16_t, 4> >((offset + 0u), obj[0u]);
+  sb.Store<vector<float16_t, 4> >((offset + 8u), obj[1u]);
+  sb.Store<vector<float16_t, 4> >((offset + 16u), obj[2u]);
+}
+
+void v_15(uint offset, matrix<float16_t, 3, 3> obj) {
+  sb.Store<vector<float16_t, 3> >((offset + 0u), obj[0u]);
+  sb.Store<vector<float16_t, 3> >((offset + 8u), obj[1u]);
+  sb.Store<vector<float16_t, 3> >((offset + 16u), obj[2u]);
+}
+
+void v_16(uint offset, matrix<float16_t, 3, 2> obj) {
+  sb.Store<vector<float16_t, 2> >((offset + 0u), obj[0u]);
+  sb.Store<vector<float16_t, 2> >((offset + 4u), obj[1u]);
+  sb.Store<vector<float16_t, 2> >((offset + 8u), obj[2u]);
+}
+
+void v_17(uint offset, matrix<float16_t, 2, 4> obj) {
+  sb.Store<vector<float16_t, 4> >((offset + 0u), obj[0u]);
+  sb.Store<vector<float16_t, 4> >((offset + 8u), obj[1u]);
+}
+
+void v_18(uint offset, matrix<float16_t, 2, 3> obj) {
+  sb.Store<vector<float16_t, 3> >((offset + 0u), obj[0u]);
+  sb.Store<vector<float16_t, 3> >((offset + 8u), obj[1u]);
+}
+
+void v_19(uint offset, matrix<float16_t, 2, 2> obj) {
+  sb.Store<vector<float16_t, 2> >((offset + 0u), obj[0u]);
+  sb.Store<vector<float16_t, 2> >((offset + 4u), obj[1u]);
+}
+
+void v_20(uint offset, float4x4 obj) {
+  sb.Store4((offset + 0u), asuint(obj[0u]));
+  sb.Store4((offset + 16u), asuint(obj[1u]));
+  sb.Store4((offset + 32u), asuint(obj[2u]));
+  sb.Store4((offset + 48u), asuint(obj[3u]));
+}
+
+void v_21(uint offset, float4x3 obj) {
+  sb.Store3((offset + 0u), asuint(obj[0u]));
+  sb.Store3((offset + 16u), asuint(obj[1u]));
+  sb.Store3((offset + 32u), asuint(obj[2u]));
+  sb.Store3((offset + 48u), asuint(obj[3u]));
+}
+
+void v_22(uint offset, float4x2 obj) {
+  sb.Store2((offset + 0u), asuint(obj[0u]));
+  sb.Store2((offset + 8u), asuint(obj[1u]));
+  sb.Store2((offset + 16u), asuint(obj[2u]));
+  sb.Store2((offset + 24u), asuint(obj[3u]));
+}
+
+void v_23(uint offset, float3x4 obj) {
+  sb.Store4((offset + 0u), asuint(obj[0u]));
+  sb.Store4((
\ No newline at end of file
diff --git a/test/tint/buffer/storage/static_index/write_f16.wgsl.expected.ir.fxc.hlsl b/test/tint/buffer/storage/static_index/write_f16.wgsl.expected.ir.fxc.hlsl
index 3f437dc..f40fd83 100644
--- a/test/tint/buffer/storage/static_index/write_f16.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/buffer/storage/static_index/write_f16.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,228 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Access
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct Inner {
+  int scalar_i32;
+  float scalar_f32;
+  float16_t scalar_f16;
+};
+
+
+RWByteAddressBuffer sb : register(u0);
+void v(uint offset, Inner obj) {
+  sb.Store((offset + 0u), asuint(obj.scalar_i32));
+  sb.Store((offset + 4u), asuint(obj.scalar_f32));
+  sb.Store<float16_t>((offset + 8u), obj.scalar_f16);
+}
+
+void v_1(uint offset, Inner obj[4]) {
+  {
+    uint v_2 = 0u;
+    v_2 = 0u;
+    while(true) {
+      uint v_3 = v_2;
+      if ((v_3 >= 4u)) {
+        break;
+      }
+      Inner v_4 = obj[v_3];
+      v((offset + (v_3 * 12u)), v_4);
+      {
+        v_2 = (v_3 + 1u);
+      }
+      continue;
+    }
+  }
+}
+
+void v_5(uint offset, matrix<float16_t, 4, 2> obj) {
+  sb.Store<vector<float16_t, 2> >((offset + 0u), obj[0u]);
+  sb.Store<vector<float16_t, 2> >((offset + 4u), obj[1u]);
+  sb.Store<vector<float16_t, 2> >((offset + 8u), obj[2u]);
+  sb.Store<vector<float16_t, 2> >((offset + 12u), obj[3u]);
+}
+
+void v_6(uint offset, matrix<float16_t, 4, 2> obj[2]) {
+  {
+    uint v_7 = 0u;
+    v_7 = 0u;
+    while(true) {
+      uint v_8 = v_7;
+      if ((v_8 >= 2u)) {
+        break;
+      }
+      v_5((offset + (v_8 * 16u)), obj[v_8]);
+      {
+        v_7 = (v_8 + 1u);
+      }
+      continue;
+    }
+  }
+}
+
+void v_9(uint offset, float3 obj[2]) {
+  {
+    uint v_10 = 0u;
+    v_10 = 0u;
+    while(true) {
+      uint v_11 = v_10;
+      if ((v_11 >= 2u)) {
+        break;
+      }
+      sb.Store3((offset + (v_11 * 16u)), asuint(obj[v_11]));
+      {
+        v_10 = (v_11 + 1u);
+      }
+      continue;
+    }
+  }
+}
+
+void v_12(uint offset, matrix<float16_t, 4, 4> obj) {
+  sb.Store<vector<float16_t, 4> >((offset + 0u), obj[0u]);
+  sb.Store<vector<float16_t, 4> >((offset + 8u), obj[1u]);
+  sb.Store<vector<float16_t, 4> >((offset + 16u), obj[2u]);
+  sb.Store<vector<float16_t, 4> >((offset + 24u), obj[3u]);
+}
+
+void v_13(uint offset, matrix<float16_t, 4, 3> obj) {
+  sb.Store<vector<float16_t, 3> >((offset + 0u), obj[0u]);
+  sb.Store<vector<float16_t, 3> >((offset + 8u), obj[1u]);
+  sb.Store<vector<float16_t, 3> >((offset + 16u), obj[2u]);
+  sb.Store<vector<float16_t, 3> >((offset + 24u), obj[3u]);
+}
+
+void v_14(uint offset, matrix<float16_t, 3, 4> obj) {
+  sb.Store<vector<float16_t, 4> >((offset + 0u), obj[0u]);
+  sb.Store<vector<float16_t, 4> >((offset + 8u), obj[1u]);
+  sb.Store<vector<float16_t, 4> >((offset + 16u), obj[2u]);
+}
+
+void v_15(uint offset, matrix<float16_t, 3, 3> obj) {
+  sb.Store<vector<float16_t, 3> >((offset + 0u), obj[0u]);
+  sb.Store<vector<float16_t, 3> >((offset + 8u), obj[1u]);
+  sb.Store<vector<float16_t, 3> >((offset + 16u), obj[2u]);
+}
+
+void v_16(uint offset, matrix<float16_t, 3, 2> obj) {
+  sb.Store<vector<float16_t, 2> >((offset + 0u), obj[0u]);
+  sb.Store<vector<float16_t, 2> >((offset + 4u), obj[1u]);
+  sb.Store<vector<float16_t, 2> >((offset + 8u), obj[2u]);
+}
+
+void v_17(uint offset, matrix<float16_t, 2, 4> obj) {
+  sb.Store<vector<float16_t, 4> >((offset + 0u), obj[0u]);
+  sb.Store<vector<float16_t, 4> >((offset + 8u), obj[1u]);
+}
+
+void v_18(uint offset, matrix<float16_t, 2, 3> obj) {
+  sb.Store<vector<float16_t, 3> >((offset + 0u), obj[0u]);
+  sb.Store<vector<float16_t, 3> >((offset + 8u), obj[1u]);
+}
+
+void v_19(uint offset, matrix<float16_t, 2, 2> obj) {
+  sb.Store<vector<float16_t, 2> >((offset + 0u), obj[0u]);
+  sb.Store<vector<float16_t, 2> >((offset + 4u), obj[1u]);
+}
+
+void v_20(uint offset, float4x4 obj) {
+  sb.Store4((offset + 0u), asuint(obj[0u]));
+  sb.Store4((offset + 16u), asuint(obj[1u]));
+  sb.Store4((offset + 32u), asuint(obj[2u]));
+  sb.Store4((offset + 48u), asuint(obj[3u]));
+}
+
+void v_21(uint offset, float4x3 obj) {
+  sb.Store3((offset + 0u), asuint(obj[0u]));
+  sb.Store3((offset + 16u), asuint(obj[1u]));
+  sb.Store3((offset + 32u), asuint(obj[2u]));
+  sb.Store3((offset + 48u), asuint(obj[3u]));
+}
+
+void v_22(uint offset, float4x2 obj) {
+  sb.Store2((offset + 0u), asuint(obj[0u]));
+  sb.Store2((offset + 8u), asuint(obj[1u]));
+  sb.Store2((offset + 16u), asuint(obj[2u]));
+  sb.Store2((offset + 24u), asuint(obj[3u]));
+}
+
+void v_23(uint offset, float3x4 obj) {
+  sb.Store4((offset + 0u), asuint(obj[0u]));
+  sb.Store4((offset + 16u), asuint(obj[1u]));
+  sb.Store4((offset + 32u), asuint(obj[2u]));
+}
+
+void v_24(uint offset, float3x3 obj) {
+  sb.Store3((offset + 0u), asuint(obj[0u]));
+  sb.Store3((offset + 16u), asuint(obj[1u]));
+  sb.Store3((offset + 32u), asuint(obj[2u]));
+}
+
+void v_25(uint offset, float3x2 obj) {
+  sb.Store2((offset + 0u), asuint(obj[0u]));
+  sb.Store2((offset + 8u), asuint(obj[1u]));
+  sb.Store2((offset + 16u), asuint(obj[2u]));
+}
+
+void v_26(uint offset, float2x4 obj) {
+  sb.Store4((offset + 0u), asuint(obj[0u]));
+  sb.Store4((offset + 16u), asuint(obj[1u]));
+}
+
+void v_27(uint offset, float2x3 obj) {
+  sb.Store3((offset + 0u), asuint(obj[0u]));
+  sb.Store3((offset + 16u), asuint(obj[1u]));
+}
+
+void v_28(uint offset, float2x2 obj) {
+  sb.Store2((offset + 0u), asuint(obj[0u]));
+  sb.Store2((offset + 8u), asuint(obj[1u]));
+}
+
+[numthreads(1, 1, 1)]
+void main() {
+  sb.Store(0u, asuint(0.0f));
+  sb.Store(4u, asuint(0));
+  sb.Store(8u, 0u);
+  sb.Store<float16_t>(12u, float16_t(0.0h));
+  sb.Store2(16u, asuint((0.0f).xx));
+  sb.Store2(24u, asuint((0).xx));
+  sb.Store2(32u, (0u).xx);
+  sb.Store<vector<float16_t, 2> >(40u, (float16_t(0.0h)).xx);
+  sb.Store3(48u, asuint((0.0f).xxx));
+  sb.Store3(64u, asuint((0).xxx));
+  sb.Store3(80u, (0u).xxx);
+  sb.Store<vector<float16_t, 3> >(96u, (float16_t(0.0h)).xxx);
+  sb.Store4(112u, asuint((0.0f).xxxx));
+  sb.Store4(128u, asuint((0).xxxx));
+  sb.Store4(144u, (0u).xxxx);
+  sb.Store<vector<float16_t, 4> >(160u, (float16_t(0.0h)).xxxx);
+  v_28(168u, float2x2((0.0f).xx, (0.0f).xx));
+  v_27(192u, float2x3((0.0f).xxx, (0.0f).xxx));
+  v_26(224u, float2x4((0.0f).xxxx, (0.0f).xxxx));
+  v_25(256u, float3x2((0.0f).xx, (0.0f).xx, (0.0f).xx));
+  v_24(288u, float3x3((0.0f).xxx, (0.0f).xxx, (0.0f).xxx));
+  v_23(336u, float3x4((0.0f).xxxx, (0.0f).xxxx, (0.0f).xxxx));
+  v_22(384u, float4x2((0.0f).xx, (0.0f).xx, (0.0f).xx, (0.0f).xx));
+  v_21(416u, float4x3((0.0f).xxx, (0.0f).xxx, (0.0f).xxx, (0.0f).xxx));
+  v_20(480u, float4x4((0.0f).xxxx, (0.0f).xxxx, (0.0f).xxxx, (0.0f).xxxx));
+  v_19(544u, matrix<float16_t, 2, 2>((float16_t(0.0h)).xx, (float16_t(0.0h)).xx));
+  v_18(552u, matrix<float16_t, 2, 3>((float16_t(0.0h)).xxx, (float16_t(0.0h)).xxx));
+  v_17(568u, matrix<float16_t, 2, 4>((float16_t(0.0h)).xxxx, (float16_t(0.0h)).xxxx));
+  v_16(584u, matrix<float16_t, 3, 2>((float16_t(0.0h)).xx, (float16_t(0.0h)).xx, (float16_t(0.0h)).xx));
+  v_15(600u, matrix<float16_t, 3, 3>((float16_t(0.0h)).xxx, (float16_t(0.0h)).xxx, (float16_t(0.0h)).xxx));
+  v_14(624u, matrix<float16_t, 3, 4>((float16_t(0.0h)).xxxx, (float16_t(0.0h)).xxxx, (float16_t(0.0h)).xxxx));
+  v_5(648u, matrix<float16_t, 4, 2>((float16_t(0.0h)).xx, (float16_t(0.0h)).xx, (float16_t(0.0h)).xx, (float16_t(0.0h)).xx));
+  v_13(664u, matrix<float16_t, 4, 3>((float16_t(0.0h)).xxx, (float16_t(0.0h)).xxx, (float16_t(0.0h)).xxx, (float16_t(0.0h)).xxx));
+  v_12(696u, matrix<float16_t, 4, 4>((float16_t(0.0h)).xxxx, (float16_t(0.0h)).xxxx, (float16_t(0.0h)).xxxx, (float16_t(0.0h)).xxxx));
+  float3 v_29[2] = (float3[2])0;
+  v_9(736u, v_29);
+  matrix<float16_t, 4, 2> v_30[2] = (matrix<float16_t, 4, 2>[2])0;
+  v_6(768u, v_30);
+  Inner v_31 = (Inner)0;
+  v(800u, v_31);
+  Inner v_32[4] = (Inner[4])0;
+  v_1(812u, v_32);
+}
+
+FXC validation failure:
+c:\src\dawn\Shader@0x000001896FD20510(4,3-11): error X3000: unrecognized identifier 'float16_t'
+
diff --git a/test/tint/buffer/storage/types/array4_f16.wgsl.expected.ir.dxc.hlsl b/test/tint/buffer/storage/types/array4_f16.wgsl.expected.ir.dxc.hlsl
index 0d340d9..07528be 100644
--- a/test/tint/buffer/storage/types/array4_f16.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/buffer/storage/types/array4_f16.wgsl.expected.ir.dxc.hlsl
@@ -1,15 +1,49 @@
-SKIP: FAILED
+
+ByteAddressBuffer tint_symbol : register(t0);
+RWByteAddressBuffer tint_symbol_1 : register(u1);
+void v(uint offset, float16_t obj[4]) {
+  {
+    uint v_1 = 0u;
+    v_1 = 0u;
+    while(true) {
+      uint v_2 = v_1;
+      if ((v_2 >= 4u)) {
+        break;
+      }
+      tint_symbol_1.Store<float16_t>((offset + (v_2 * 2u)), obj[v_2]);
+      {
+        v_1 = (v_2 + 1u);
+      }
+      continue;
+    }
+  }
+}
+
+typedef float16_t ary_ret[4];
+ary_ret v_3(uint offset) {
+  float16_t a[4] = (float16_t[4])0;
+  {
+    uint v_4 = 0u;
+    v_4 = 0u;
+    while(true) {
+      uint v_5 = v_4;
+      if ((v_5 >= 4u)) {
+        break;
+      }
+      a[v_5] = tint_symbol.Load<float16_t>((offset + (v_5 * 2u)));
+      {
+        v_4 = (v_5 + 1u);
+      }
+      continue;
+    }
+  }
+  float16_t v_6[4] = a;
+  return v_6;
+}
 
 [numthreads(1, 1, 1)]
 void main() {
-  tint_symbol_1 = tint_symbol;
+  float16_t v_7[4] = v_3(0u);
+  v(0u, v_7);
 }
 
-DXC validation failure:
-hlsl.hlsl:3:3: error: use of undeclared identifier 'tint_symbol_1'
-  tint_symbol_1 = tint_symbol;
-  ^
-hlsl.hlsl:3:19: error: use of undeclared identifier 'tint_symbol'
-  tint_symbol_1 = tint_symbol;
-                  ^
-
diff --git a/test/tint/buffer/storage/types/array4_f16.wgsl.expected.ir.fxc.hlsl b/test/tint/buffer/storage/types/array4_f16.wgsl.expected.ir.fxc.hlsl
index d46e160..1d63dc2 100644
--- a/test/tint/buffer/storage/types/array4_f16.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/buffer/storage/types/array4_f16.wgsl.expected.ir.fxc.hlsl
@@ -1,7 +1,54 @@
 SKIP: FAILED
 
+
+ByteAddressBuffer tint_symbol : register(t0);
+RWByteAddressBuffer tint_symbol_1 : register(u1);
+void v(uint offset, float16_t obj[4]) {
+  {
+    uint v_1 = 0u;
+    v_1 = 0u;
+    while(true) {
+      uint v_2 = v_1;
+      if ((v_2 >= 4u)) {
+        break;
+      }
+      tint_symbol_1.Store<float16_t>((offset + (v_2 * 2u)), obj[v_2]);
+      {
+        v_1 = (v_2 + 1u);
+      }
+      continue;
+    }
+  }
+}
+
+typedef float16_t ary_ret[4];
+ary_ret v_3(uint offset) {
+  float16_t a[4] = (float16_t[4])0;
+  {
+    uint v_4 = 0u;
+    v_4 = 0u;
+    while(true) {
+      uint v_5 = v_4;
+      if ((v_5 >= 4u)) {
+        break;
+      }
+      a[v_5] = tint_symbol.Load<float16_t>((offset + (v_5 * 2u)));
+      {
+        v_4 = (v_5 + 1u);
+      }
+      continue;
+    }
+  }
+  float16_t v_6[4] = a;
+  return v_6;
+}
+
 [numthreads(1, 1, 1)]
 void main() {
-  tint_symbol_1 = tint_symbol;
+  float16_t v_7[4] = v_3(0u);
+  v(0u, v_7);
 }
 
+FXC validation failure:
+c:\src\dawn\Shader@0x000001C7561B5A80(4,21-29): error X3000: unrecognized identifier 'float16_t'
+
diff --git a/test/tint/buffer/storage/types/array4_f32.wgsl.expected.ir.dxc.hlsl b/test/tint/buffer/storage/types/array4_f32.wgsl.expected.ir.dxc.hlsl
index 0d340d9..5f21455 100644
--- a/test/tint/buffer/storage/types/array4_f32.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/buffer/storage/types/array4_f32.wgsl.expected.ir.dxc.hlsl
@@ -1,15 +1,49 @@
-SKIP: FAILED
+
+ByteAddressBuffer tint_symbol : register(t0);
+RWByteAddressBuffer tint_symbol_1 : register(u1);
+void v(uint offset, float obj[4]) {
+  {
+    uint v_1 = 0u;
+    v_1 = 0u;
+    while(true) {
+      uint v_2 = v_1;
+      if ((v_2 >= 4u)) {
+        break;
+      }
+      tint_symbol_1.Store((offset + (v_2 * 4u)), asuint(obj[v_2]));
+      {
+        v_1 = (v_2 + 1u);
+      }
+      continue;
+    }
+  }
+}
+
+typedef float ary_ret[4];
+ary_ret v_3(uint offset) {
+  float a[4] = (float[4])0;
+  {
+    uint v_4 = 0u;
+    v_4 = 0u;
+    while(true) {
+      uint v_5 = v_4;
+      if ((v_5 >= 4u)) {
+        break;
+      }
+      a[v_5] = asfloat(tint_symbol.Load((offset + (v_5 * 4u))));
+      {
+        v_4 = (v_5 + 1u);
+      }
+      continue;
+    }
+  }
+  float v_6[4] = a;
+  return v_6;
+}
 
 [numthreads(1, 1, 1)]
 void main() {
-  tint_symbol_1 = tint_symbol;
+  float v_7[4] = v_3(0u);
+  v(0u, v_7);
 }
 
-DXC validation failure:
-hlsl.hlsl:3:3: error: use of undeclared identifier 'tint_symbol_1'
-  tint_symbol_1 = tint_symbol;
-  ^
-hlsl.hlsl:3:19: error: use of undeclared identifier 'tint_symbol'
-  tint_symbol_1 = tint_symbol;
-                  ^
-
diff --git a/test/tint/buffer/storage/types/array4_f32.wgsl.expected.ir.fxc.hlsl b/test/tint/buffer/storage/types/array4_f32.wgsl.expected.ir.fxc.hlsl
index d46e160..5f21455 100644
--- a/test/tint/buffer/storage/types/array4_f32.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/buffer/storage/types/array4_f32.wgsl.expected.ir.fxc.hlsl
@@ -1,7 +1,49 @@
-SKIP: FAILED
+
+ByteAddressBuffer tint_symbol : register(t0);
+RWByteAddressBuffer tint_symbol_1 : register(u1);
+void v(uint offset, float obj[4]) {
+  {
+    uint v_1 = 0u;
+    v_1 = 0u;
+    while(true) {
+      uint v_2 = v_1;
+      if ((v_2 >= 4u)) {
+        break;
+      }
+      tint_symbol_1.Store((offset + (v_2 * 4u)), asuint(obj[v_2]));
+      {
+        v_1 = (v_2 + 1u);
+      }
+      continue;
+    }
+  }
+}
+
+typedef float ary_ret[4];
+ary_ret v_3(uint offset) {
+  float a[4] = (float[4])0;
+  {
+    uint v_4 = 0u;
+    v_4 = 0u;
+    while(true) {
+      uint v_5 = v_4;
+      if ((v_5 >= 4u)) {
+        break;
+      }
+      a[v_5] = asfloat(tint_symbol.Load((offset + (v_5 * 4u))));
+      {
+        v_4 = (v_5 + 1u);
+      }
+      continue;
+    }
+  }
+  float v_6[4] = a;
+  return v_6;
+}
 
 [numthreads(1, 1, 1)]
 void main() {
-  tint_symbol_1 = tint_symbol;
+  float v_7[4] = v_3(0u);
+  v(0u, v_7);
 }
 
diff --git a/test/tint/buffer/storage/types/f16.wgsl.expected.ir.dxc.hlsl b/test/tint/buffer/storage/types/f16.wgsl.expected.ir.dxc.hlsl
index 0d340d9..301bcd2 100644
--- a/test/tint/buffer/storage/types/f16.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/buffer/storage/types/f16.wgsl.expected.ir.dxc.hlsl
@@ -1,15 +1,8 @@
-SKIP: FAILED
 
+ByteAddressBuffer tint_symbol : register(t0);
+RWByteAddressBuffer tint_symbol_1 : register(u1);
 [numthreads(1, 1, 1)]
 void main() {
-  tint_symbol_1 = tint_symbol;
+  tint_symbol_1.Store<float16_t>(0u, tint_symbol.Load<float16_t>(0u));
 }
 
-DXC validation failure:
-hlsl.hlsl:3:3: error: use of undeclared identifier 'tint_symbol_1'
-  tint_symbol_1 = tint_symbol;
-  ^
-hlsl.hlsl:3:19: error: use of undeclared identifier 'tint_symbol'
-  tint_symbol_1 = tint_symbol;
-                  ^
-
diff --git a/test/tint/buffer/storage/types/f16.wgsl.expected.ir.fxc.hlsl b/test/tint/buffer/storage/types/f16.wgsl.expected.ir.fxc.hlsl
index d46e160..47f5ff2 100644
--- a/test/tint/buffer/storage/types/f16.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/buffer/storage/types/f16.wgsl.expected.ir.fxc.hlsl
@@ -1,7 +1,13 @@
 SKIP: FAILED
 
+
+ByteAddressBuffer tint_symbol : register(t0);
+RWByteAddressBuffer tint_symbol_1 : register(u1);
 [numthreads(1, 1, 1)]
 void main() {
-  tint_symbol_1 = tint_symbol;
+  tint_symbol_1.Store<float16_t>(0u, tint_symbol.Load<float16_t>(0u));
 }
 
+FXC validation failure:
+c:\src\dawn\Shader@0x000001D9ABE3F580(6,3-21): error X3018: invalid subscript 'Store'
+
diff --git a/test/tint/buffer/storage/types/f32.wgsl.expected.ir.dxc.hlsl b/test/tint/buffer/storage/types/f32.wgsl.expected.ir.dxc.hlsl
index 0d340d9..0638383 100644
--- a/test/tint/buffer/storage/types/f32.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/buffer/storage/types/f32.wgsl.expected.ir.dxc.hlsl
@@ -1,15 +1,8 @@
-SKIP: FAILED
 
+ByteAddressBuffer tint_symbol : register(t0);
+RWByteAddressBuffer tint_symbol_1 : register(u1);
 [numthreads(1, 1, 1)]
 void main() {
-  tint_symbol_1 = tint_symbol;
+  tint_symbol_1.Store(0u, asuint(asfloat(tint_symbol.Load(0u))));
 }
 
-DXC validation failure:
-hlsl.hlsl:3:3: error: use of undeclared identifier 'tint_symbol_1'
-  tint_symbol_1 = tint_symbol;
-  ^
-hlsl.hlsl:3:19: error: use of undeclared identifier 'tint_symbol'
-  tint_symbol_1 = tint_symbol;
-                  ^
-
diff --git a/test/tint/buffer/storage/types/f32.wgsl.expected.ir.fxc.hlsl b/test/tint/buffer/storage/types/f32.wgsl.expected.ir.fxc.hlsl
index d46e160..0638383 100644
--- a/test/tint/buffer/storage/types/f32.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/buffer/storage/types/f32.wgsl.expected.ir.fxc.hlsl
@@ -1,7 +1,8 @@
-SKIP: FAILED
 
+ByteAddressBuffer tint_symbol : register(t0);
+RWByteAddressBuffer tint_symbol_1 : register(u1);
 [numthreads(1, 1, 1)]
 void main() {
-  tint_symbol_1 = tint_symbol;
+  tint_symbol_1.Store(0u, asuint(asfloat(tint_symbol.Load(0u))));
 }
 
diff --git a/test/tint/buffer/storage/types/i32.wgsl.expected.ir.dxc.hlsl b/test/tint/buffer/storage/types/i32.wgsl.expected.ir.dxc.hlsl
index 0d340d9..f67696e 100644
--- a/test/tint/buffer/storage/types/i32.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/buffer/storage/types/i32.wgsl.expected.ir.dxc.hlsl
@@ -1,15 +1,8 @@
-SKIP: FAILED
 
+ByteAddressBuffer tint_symbol : register(t0);
+RWByteAddressBuffer tint_symbol_1 : register(u1);
 [numthreads(1, 1, 1)]
 void main() {
-  tint_symbol_1 = tint_symbol;
+  tint_symbol_1.Store(0u, asuint(asint(tint_symbol.Load(0u))));
 }
 
-DXC validation failure:
-hlsl.hlsl:3:3: error: use of undeclared identifier 'tint_symbol_1'
-  tint_symbol_1 = tint_symbol;
-  ^
-hlsl.hlsl:3:19: error: use of undeclared identifier 'tint_symbol'
-  tint_symbol_1 = tint_symbol;
-                  ^
-
diff --git a/test/tint/buffer/storage/types/i32.wgsl.expected.ir.fxc.hlsl b/test/tint/buffer/storage/types/i32.wgsl.expected.ir.fxc.hlsl
index d46e160..f67696e 100644
--- a/test/tint/buffer/storage/types/i32.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/buffer/storage/types/i32.wgsl.expected.ir.fxc.hlsl
@@ -1,7 +1,8 @@
-SKIP: FAILED
 
+ByteAddressBuffer tint_symbol : register(t0);
+RWByteAddressBuffer tint_symbol_1 : register(u1);
 [numthreads(1, 1, 1)]
 void main() {
-  tint_symbol_1 = tint_symbol;
+  tint_symbol_1.Store(0u, asuint(asint(tint_symbol.Load(0u))));
 }
 
diff --git a/test/tint/buffer/storage/types/mat2x2_f16.wgsl.expected.ir.dxc.hlsl b/test/tint/buffer/storage/types/mat2x2_f16.wgsl.expected.ir.dxc.hlsl
index 0d340d9..ab183c0 100644
--- a/test/tint/buffer/storage/types/mat2x2_f16.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/buffer/storage/types/mat2x2_f16.wgsl.expected.ir.dxc.hlsl
@@ -1,15 +1,18 @@
-SKIP: FAILED
+
+ByteAddressBuffer tint_symbol : register(t0);
+RWByteAddressBuffer tint_symbol_1 : register(u1);
+void v(uint offset, matrix<float16_t, 2, 2> obj) {
+  tint_symbol_1.Store<vector<float16_t, 2> >((offset + 0u), obj[0u]);
+  tint_symbol_1.Store<vector<float16_t, 2> >((offset + 4u), obj[1u]);
+}
+
+matrix<float16_t, 2, 2> v_1(uint offset) {
+  vector<float16_t, 2> v_2 = tint_symbol.Load<vector<float16_t, 2> >((offset + 0u));
+  return matrix<float16_t, 2, 2>(v_2, tint_symbol.Load<vector<float16_t, 2> >((offset + 4u)));
+}
 
 [numthreads(1, 1, 1)]
 void main() {
-  tint_symbol_1 = tint_symbol;
+  v(0u, v_1(0u));
 }
 
-DXC validation failure:
-hlsl.hlsl:3:3: error: use of undeclared identifier 'tint_symbol_1'
-  tint_symbol_1 = tint_symbol;
-  ^
-hlsl.hlsl:3:19: error: use of undeclared identifier 'tint_symbol'
-  tint_symbol_1 = tint_symbol;
-                  ^
-
diff --git a/test/tint/buffer/storage/types/mat2x2_f16.wgsl.expected.ir.fxc.hlsl b/test/tint/buffer/storage/types/mat2x2_f16.wgsl.expected.ir.fxc.hlsl
index d46e160..6b60267 100644
--- a/test/tint/buffer/storage/types/mat2x2_f16.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/buffer/storage/types/mat2x2_f16.wgsl.expected.ir.fxc.hlsl
@@ -1,7 +1,24 @@
 SKIP: FAILED
 
+
+ByteAddressBuffer tint_symbol : register(t0);
+RWByteAddressBuffer tint_symbol_1 : register(u1);
+void v(uint offset, matrix<float16_t, 2, 2> obj) {
+  tint_symbol_1.Store<vector<float16_t, 2> >((offset + 0u), obj[0u]);
+  tint_symbol_1.Store<vector<float16_t, 2> >((offset + 4u), obj[1u]);
+}
+
+matrix<float16_t, 2, 2> v_1(uint offset) {
+  vector<float16_t, 2> v_2 = tint_symbol.Load<vector<float16_t, 2> >((offset + 0u));
+  return matrix<float16_t, 2, 2>(v_2, tint_symbol.Load<vector<float16_t, 2> >((offset + 4u)));
+}
+
 [numthreads(1, 1, 1)]
 void main() {
-  tint_symbol_1 = tint_symbol;
+  v(0u, v_1(0u));
 }
 
+FXC validation failure:
+c:\src\dawn\Shader@0x0000026E3C25F000(4,28-36): error X3000: syntax error: unexpected token 'float16_t'
+c:\src\dawn\Shader@0x0000026E3C25F000(5,3-21): error X3018: invalid subscript 'Store'
+
diff --git a/test/tint/buffer/storage/types/mat2x2_f32.wgsl.expected.ir.dxc.hlsl b/test/tint/buffer/storage/types/mat2x2_f32.wgsl.expected.ir.dxc.hlsl
index 0d340d9..28936e3 100644
--- a/test/tint/buffer/storage/types/mat2x2_f32.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/buffer/storage/types/mat2x2_f32.wgsl.expected.ir.dxc.hlsl
@@ -1,15 +1,18 @@
-SKIP: FAILED
+
+ByteAddressBuffer tint_symbol : register(t0);
+RWByteAddressBuffer tint_symbol_1 : register(u1);
+void v(uint offset, float2x2 obj) {
+  tint_symbol_1.Store2((offset + 0u), asuint(obj[0u]));
+  tint_symbol_1.Store2((offset + 8u), asuint(obj[1u]));
+}
+
+float2x2 v_1(uint offset) {
+  float2 v_2 = asfloat(tint_symbol.Load2((offset + 0u)));
+  return float2x2(v_2, asfloat(tint_symbol.Load2((offset + 8u))));
+}
 
 [numthreads(1, 1, 1)]
 void main() {
-  tint_symbol_1 = tint_symbol;
+  v(0u, v_1(0u));
 }
 
-DXC validation failure:
-hlsl.hlsl:3:3: error: use of undeclared identifier 'tint_symbol_1'
-  tint_symbol_1 = tint_symbol;
-  ^
-hlsl.hlsl:3:19: error: use of undeclared identifier 'tint_symbol'
-  tint_symbol_1 = tint_symbol;
-                  ^
-
diff --git a/test/tint/buffer/storage/types/mat2x2_f32.wgsl.expected.ir.fxc.hlsl b/test/tint/buffer/storage/types/mat2x2_f32.wgsl.expected.ir.fxc.hlsl
index d46e160..28936e3 100644
--- a/test/tint/buffer/storage/types/mat2x2_f32.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/buffer/storage/types/mat2x2_f32.wgsl.expected.ir.fxc.hlsl
@@ -1,7 +1,18 @@
-SKIP: FAILED
+
+ByteAddressBuffer tint_symbol : register(t0);
+RWByteAddressBuffer tint_symbol_1 : register(u1);
+void v(uint offset, float2x2 obj) {
+  tint_symbol_1.Store2((offset + 0u), asuint(obj[0u]));
+  tint_symbol_1.Store2((offset + 8u), asuint(obj[1u]));
+}
+
+float2x2 v_1(uint offset) {
+  float2 v_2 = asfloat(tint_symbol.Load2((offset + 0u)));
+  return float2x2(v_2, asfloat(tint_symbol.Load2((offset + 8u))));
+}
 
 [numthreads(1, 1, 1)]
 void main() {
-  tint_symbol_1 = tint_symbol;
+  v(0u, v_1(0u));
 }
 
diff --git a/test/tint/buffer/storage/types/mat2x3_f16.wgsl.expected.ir.dxc.hlsl b/test/tint/buffer/storage/types/mat2x3_f16.wgsl.expected.ir.dxc.hlsl
index 0d340d9..0da6bf5 100644
--- a/test/tint/buffer/storage/types/mat2x3_f16.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/buffer/storage/types/mat2x3_f16.wgsl.expected.ir.dxc.hlsl
@@ -1,15 +1,18 @@
-SKIP: FAILED
+
+ByteAddressBuffer tint_symbol : register(t0);
+RWByteAddressBuffer tint_symbol_1 : register(u1);
+void v(uint offset, matrix<float16_t, 2, 3> obj) {
+  tint_symbol_1.Store<vector<float16_t, 3> >((offset + 0u), obj[0u]);
+  tint_symbol_1.Store<vector<float16_t, 3> >((offset + 8u), obj[1u]);
+}
+
+matrix<float16_t, 2, 3> v_1(uint offset) {
+  vector<float16_t, 3> v_2 = tint_symbol.Load<vector<float16_t, 3> >((offset + 0u));
+  return matrix<float16_t, 2, 3>(v_2, tint_symbol.Load<vector<float16_t, 3> >((offset + 8u)));
+}
 
 [numthreads(1, 1, 1)]
 void main() {
-  tint_symbol_1 = tint_symbol;
+  v(0u, v_1(0u));
 }
 
-DXC validation failure:
-hlsl.hlsl:3:3: error: use of undeclared identifier 'tint_symbol_1'
-  tint_symbol_1 = tint_symbol;
-  ^
-hlsl.hlsl:3:19: error: use of undeclared identifier 'tint_symbol'
-  tint_symbol_1 = tint_symbol;
-                  ^
-
diff --git a/test/tint/buffer/storage/types/mat2x3_f16.wgsl.expected.ir.fxc.hlsl b/test/tint/buffer/storage/types/mat2x3_f16.wgsl.expected.ir.fxc.hlsl
index d46e160..0756e2a 100644
--- a/test/tint/buffer/storage/types/mat2x3_f16.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/buffer/storage/types/mat2x3_f16.wgsl.expected.ir.fxc.hlsl
@@ -1,7 +1,24 @@
 SKIP: FAILED
 
+
+ByteAddressBuffer tint_symbol : register(t0);
+RWByteAddressBuffer tint_symbol_1 : register(u1);
+void v(uint offset, matrix<float16_t, 2, 3> obj) {
+  tint_symbol_1.Store<vector<float16_t, 3> >((offset + 0u), obj[0u]);
+  tint_symbol_1.Store<vector<float16_t, 3> >((offset + 8u), obj[1u]);
+}
+
+matrix<float16_t, 2, 3> v_1(uint offset) {
+  vector<float16_t, 3> v_2 = tint_symbol.Load<vector<float16_t, 3> >((offset + 0u));
+  return matrix<float16_t, 2, 3>(v_2, tint_symbol.Load<vector<float16_t, 3> >((offset + 8u)));
+}
+
 [numthreads(1, 1, 1)]
 void main() {
-  tint_symbol_1 = tint_symbol;
+  v(0u, v_1(0u));
 }
 
+FXC validation failure:
+c:\src\dawn\Shader@0x0000020DE4323AE0(4,28-36): error X3000: syntax error: unexpected token 'float16_t'
+c:\src\dawn\Shader@0x0000020DE4323AE0(5,3-21): error X3018: invalid subscript 'Store'
+
diff --git a/test/tint/buffer/storage/types/mat2x3_f32.wgsl.expected.ir.dxc.hlsl b/test/tint/buffer/storage/types/mat2x3_f32.wgsl.expected.ir.dxc.hlsl
index 0d340d9..4b72eff 100644
--- a/test/tint/buffer/storage/types/mat2x3_f32.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/buffer/storage/types/mat2x3_f32.wgsl.expected.ir.dxc.hlsl
@@ -1,15 +1,18 @@
-SKIP: FAILED
+
+ByteAddressBuffer tint_symbol : register(t0);
+RWByteAddressBuffer tint_symbol_1 : register(u1);
+void v(uint offset, float2x3 obj) {
+  tint_symbol_1.Store3((offset + 0u), asuint(obj[0u]));
+  tint_symbol_1.Store3((offset + 16u), asuint(obj[1u]));
+}
+
+float2x3 v_1(uint offset) {
+  float3 v_2 = asfloat(tint_symbol.Load3((offset + 0u)));
+  return float2x3(v_2, asfloat(tint_symbol.Load3((offset + 16u))));
+}
 
 [numthreads(1, 1, 1)]
 void main() {
-  tint_symbol_1 = tint_symbol;
+  v(0u, v_1(0u));
 }
 
-DXC validation failure:
-hlsl.hlsl:3:3: error: use of undeclared identifier 'tint_symbol_1'
-  tint_symbol_1 = tint_symbol;
-  ^
-hlsl.hlsl:3:19: error: use of undeclared identifier 'tint_symbol'
-  tint_symbol_1 = tint_symbol;
-                  ^
-
diff --git a/test/tint/buffer/storage/types/mat2x3_f32.wgsl.expected.ir.fxc.hlsl b/test/tint/buffer/storage/types/mat2x3_f32.wgsl.expected.ir.fxc.hlsl
index d46e160..4b72eff 100644
--- a/test/tint/buffer/storage/types/mat2x3_f32.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/buffer/storage/types/mat2x3_f32.wgsl.expected.ir.fxc.hlsl
@@ -1,7 +1,18 @@
-SKIP: FAILED
+
+ByteAddressBuffer tint_symbol : register(t0);
+RWByteAddressBuffer tint_symbol_1 : register(u1);
+void v(uint offset, float2x3 obj) {
+  tint_symbol_1.Store3((offset + 0u), asuint(obj[0u]));
+  tint_symbol_1.Store3((offset + 16u), asuint(obj[1u]));
+}
+
+float2x3 v_1(uint offset) {
+  float3 v_2 = asfloat(tint_symbol.Load3((offset + 0u)));
+  return float2x3(v_2, asfloat(tint_symbol.Load3((offset + 16u))));
+}
 
 [numthreads(1, 1, 1)]
 void main() {
-  tint_symbol_1 = tint_symbol;
+  v(0u, v_1(0u));
 }
 
diff --git a/test/tint/buffer/storage/types/mat2x4_f16.wgsl.expected.ir.dxc.hlsl b/test/tint/buffer/storage/types/mat2x4_f16.wgsl.expected.ir.dxc.hlsl
index 0d340d9..a813553 100644
--- a/test/tint/buffer/storage/types/mat2x4_f16.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/buffer/storage/types/mat2x4_f16.wgsl.expected.ir.dxc.hlsl
@@ -1,15 +1,18 @@
-SKIP: FAILED
+
+ByteAddressBuffer tint_symbol : register(t0);
+RWByteAddressBuffer tint_symbol_1 : register(u1);
+void v(uint offset, matrix<float16_t, 2, 4> obj) {
+  tint_symbol_1.Store<vector<float16_t, 4> >((offset + 0u), obj[0u]);
+  tint_symbol_1.Store<vector<float16_t, 4> >((offset + 8u), obj[1u]);
+}
+
+matrix<float16_t, 2, 4> v_1(uint offset) {
+  vector<float16_t, 4> v_2 = tint_symbol.Load<vector<float16_t, 4> >((offset + 0u));
+  return matrix<float16_t, 2, 4>(v_2, tint_symbol.Load<vector<float16_t, 4> >((offset + 8u)));
+}
 
 [numthreads(1, 1, 1)]
 void main() {
-  tint_symbol_1 = tint_symbol;
+  v(0u, v_1(0u));
 }
 
-DXC validation failure:
-hlsl.hlsl:3:3: error: use of undeclared identifier 'tint_symbol_1'
-  tint_symbol_1 = tint_symbol;
-  ^
-hlsl.hlsl:3:19: error: use of undeclared identifier 'tint_symbol'
-  tint_symbol_1 = tint_symbol;
-                  ^
-
diff --git a/test/tint/buffer/storage/types/mat2x4_f16.wgsl.expected.ir.fxc.hlsl b/test/tint/buffer/storage/types/mat2x4_f16.wgsl.expected.ir.fxc.hlsl
index d46e160..390b727 100644
--- a/test/tint/buffer/storage/types/mat2x4_f16.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/buffer/storage/types/mat2x4_f16.wgsl.expected.ir.fxc.hlsl
@@ -1,7 +1,24 @@
 SKIP: FAILED
 
+
+ByteAddressBuffer tint_symbol : register(t0);
+RWByteAddressBuffer tint_symbol_1 : register(u1);
+void v(uint offset, matrix<float16_t, 2, 4> obj) {
+  tint_symbol_1.Store<vector<float16_t, 4> >((offset + 0u), obj[0u]);
+  tint_symbol_1.Store<vector<float16_t, 4> >((offset + 8u), obj[1u]);
+}
+
+matrix<float16_t, 2, 4> v_1(uint offset) {
+  vector<float16_t, 4> v_2 = tint_symbol.Load<vector<float16_t, 4> >((offset + 0u));
+  return matrix<float16_t, 2, 4>(v_2, tint_symbol.Load<vector<float16_t, 4> >((offset + 8u)));
+}
+
 [numthreads(1, 1, 1)]
 void main() {
-  tint_symbol_1 = tint_symbol;
+  v(0u, v_1(0u));
 }
 
+FXC validation failure:
+c:\src\dawn\Shader@0x00000257664B3CC0(4,28-36): error X3000: syntax error: unexpected token 'float16_t'
+c:\src\dawn\Shader@0x00000257664B3CC0(5,3-21): error X3018: invalid subscript 'Store'
+
diff --git a/test/tint/buffer/storage/types/mat2x4_f32.wgsl.expected.ir.dxc.hlsl b/test/tint/buffer/storage/types/mat2x4_f32.wgsl.expected.ir.dxc.hlsl
index 0d340d9..5c409be 100644
--- a/test/tint/buffer/storage/types/mat2x4_f32.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/buffer/storage/types/mat2x4_f32.wgsl.expected.ir.dxc.hlsl
@@ -1,15 +1,18 @@
-SKIP: FAILED
+
+ByteAddressBuffer tint_symbol : register(t0);
+RWByteAddressBuffer tint_symbol_1 : register(u1);
+void v(uint offset, float2x4 obj) {
+  tint_symbol_1.Store4((offset + 0u), asuint(obj[0u]));
+  tint_symbol_1.Store4((offset + 16u), asuint(obj[1u]));
+}
+
+float2x4 v_1(uint offset) {
+  float4 v_2 = asfloat(tint_symbol.Load4((offset + 0u)));
+  return float2x4(v_2, asfloat(tint_symbol.Load4((offset + 16u))));
+}
 
 [numthreads(1, 1, 1)]
 void main() {
-  tint_symbol_1 = tint_symbol;
+  v(0u, v_1(0u));
 }
 
-DXC validation failure:
-hlsl.hlsl:3:3: error: use of undeclared identifier 'tint_symbol_1'
-  tint_symbol_1 = tint_symbol;
-  ^
-hlsl.hlsl:3:19: error: use of undeclared identifier 'tint_symbol'
-  tint_symbol_1 = tint_symbol;
-                  ^
-
diff --git a/test/tint/buffer/storage/types/mat2x4_f32.wgsl.expected.ir.fxc.hlsl b/test/tint/buffer/storage/types/mat2x4_f32.wgsl.expected.ir.fxc.hlsl
index d46e160..5c409be 100644
--- a/test/tint/buffer/storage/types/mat2x4_f32.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/buffer/storage/types/mat2x4_f32.wgsl.expected.ir.fxc.hlsl
@@ -1,7 +1,18 @@
-SKIP: FAILED
+
+ByteAddressBuffer tint_symbol : register(t0);
+RWByteAddressBuffer tint_symbol_1 : register(u1);
+void v(uint offset, float2x4 obj) {
+  tint_symbol_1.Store4((offset + 0u), asuint(obj[0u]));
+  tint_symbol_1.Store4((offset + 16u), asuint(obj[1u]));
+}
+
+float2x4 v_1(uint offset) {
+  float4 v_2 = asfloat(tint_symbol.Load4((offset + 0u)));
+  return float2x4(v_2, asfloat(tint_symbol.Load4((offset + 16u))));
+}
 
 [numthreads(1, 1, 1)]
 void main() {
-  tint_symbol_1 = tint_symbol;
+  v(0u, v_1(0u));
 }
 
diff --git a/test/tint/buffer/storage/types/mat3x2_f16.wgsl.expected.ir.dxc.hlsl b/test/tint/buffer/storage/types/mat3x2_f16.wgsl.expected.ir.dxc.hlsl
index 0d340d9..a219be33 100644
--- a/test/tint/buffer/storage/types/mat3x2_f16.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/buffer/storage/types/mat3x2_f16.wgsl.expected.ir.dxc.hlsl
@@ -1,15 +1,20 @@
-SKIP: FAILED
+
+ByteAddressBuffer tint_symbol : register(t0);
+RWByteAddressBuffer tint_symbol_1 : register(u1);
+void v(uint offset, matrix<float16_t, 3, 2> obj) {
+  tint_symbol_1.Store<vector<float16_t, 2> >((offset + 0u), obj[0u]);
+  tint_symbol_1.Store<vector<float16_t, 2> >((offset + 4u), obj[1u]);
+  tint_symbol_1.Store<vector<float16_t, 2> >((offset + 8u), obj[2u]);
+}
+
+matrix<float16_t, 3, 2> v_1(uint offset) {
+  vector<float16_t, 2> v_2 = tint_symbol.Load<vector<float16_t, 2> >((offset + 0u));
+  vector<float16_t, 2> v_3 = tint_symbol.Load<vector<float16_t, 2> >((offset + 4u));
+  return matrix<float16_t, 3, 2>(v_2, v_3, tint_symbol.Load<vector<float16_t, 2> >((offset + 8u)));
+}
 
 [numthreads(1, 1, 1)]
 void main() {
-  tint_symbol_1 = tint_symbol;
+  v(0u, v_1(0u));
 }
 
-DXC validation failure:
-hlsl.hlsl:3:3: error: use of undeclared identifier 'tint_symbol_1'
-  tint_symbol_1 = tint_symbol;
-  ^
-hlsl.hlsl:3:19: error: use of undeclared identifier 'tint_symbol'
-  tint_symbol_1 = tint_symbol;
-                  ^
-
diff --git a/test/tint/buffer/storage/types/mat3x2_f16.wgsl.expected.ir.fxc.hlsl b/test/tint/buffer/storage/types/mat3x2_f16.wgsl.expected.ir.fxc.hlsl
index d46e160..2987a6c 100644
--- a/test/tint/buffer/storage/types/mat3x2_f16.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/buffer/storage/types/mat3x2_f16.wgsl.expected.ir.fxc.hlsl
@@ -1,7 +1,26 @@
 SKIP: FAILED
 
+
+ByteAddressBuffer tint_symbol : register(t0);
+RWByteAddressBuffer tint_symbol_1 : register(u1);
+void v(uint offset, matrix<float16_t, 3, 2> obj) {
+  tint_symbol_1.Store<vector<float16_t, 2> >((offset + 0u), obj[0u]);
+  tint_symbol_1.Store<vector<float16_t, 2> >((offset + 4u), obj[1u]);
+  tint_symbol_1.Store<vector<float16_t, 2> >((offset + 8u), obj[2u]);
+}
+
+matrix<float16_t, 3, 2> v_1(uint offset) {
+  vector<float16_t, 2> v_2 = tint_symbol.Load<vector<float16_t, 2> >((offset + 0u));
+  vector<float16_t, 2> v_3 = tint_symbol.Load<vector<float16_t, 2> >((offset + 4u));
+  return matrix<float16_t, 3, 2>(v_2, v_3, tint_symbol.Load<vector<float16_t, 2> >((offset + 8u)));
+}
+
 [numthreads(1, 1, 1)]
 void main() {
-  tint_symbol_1 = tint_symbol;
+  v(0u, v_1(0u));
 }
 
+FXC validation failure:
+c:\src\dawn\Shader@0x000001DED4A62230(4,28-36): error X3000: syntax error: unexpected token 'float16_t'
+c:\src\dawn\Shader@0x000001DED4A62230(5,3-21): error X3018: invalid subscript 'Store'
+
diff --git a/test/tint/buffer/storage/types/mat3x2_f32.wgsl.expected.ir.dxc.hlsl b/test/tint/buffer/storage/types/mat3x2_f32.wgsl.expected.ir.dxc.hlsl
index 0d340d9..4342c3a 100644
--- a/test/tint/buffer/storage/types/mat3x2_f32.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/buffer/storage/types/mat3x2_f32.wgsl.expected.ir.dxc.hlsl
@@ -1,15 +1,20 @@
-SKIP: FAILED
+
+ByteAddressBuffer tint_symbol : register(t0);
+RWByteAddressBuffer tint_symbol_1 : register(u1);
+void v(uint offset, float3x2 obj) {
+  tint_symbol_1.Store2((offset + 0u), asuint(obj[0u]));
+  tint_symbol_1.Store2((offset + 8u), asuint(obj[1u]));
+  tint_symbol_1.Store2((offset + 16u), asuint(obj[2u]));
+}
+
+float3x2 v_1(uint offset) {
+  float2 v_2 = asfloat(tint_symbol.Load2((offset + 0u)));
+  float2 v_3 = asfloat(tint_symbol.Load2((offset + 8u)));
+  return float3x2(v_2, v_3, asfloat(tint_symbol.Load2((offset + 16u))));
+}
 
 [numthreads(1, 1, 1)]
 void main() {
-  tint_symbol_1 = tint_symbol;
+  v(0u, v_1(0u));
 }
 
-DXC validation failure:
-hlsl.hlsl:3:3: error: use of undeclared identifier 'tint_symbol_1'
-  tint_symbol_1 = tint_symbol;
-  ^
-hlsl.hlsl:3:19: error: use of undeclared identifier 'tint_symbol'
-  tint_symbol_1 = tint_symbol;
-                  ^
-
diff --git a/test/tint/buffer/storage/types/mat3x2_f32.wgsl.expected.ir.fxc.hlsl b/test/tint/buffer/storage/types/mat3x2_f32.wgsl.expected.ir.fxc.hlsl
index d46e160..4342c3a 100644
--- a/test/tint/buffer/storage/types/mat3x2_f32.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/buffer/storage/types/mat3x2_f32.wgsl.expected.ir.fxc.hlsl
@@ -1,7 +1,20 @@
-SKIP: FAILED
+
+ByteAddressBuffer tint_symbol : register(t0);
+RWByteAddressBuffer tint_symbol_1 : register(u1);
+void v(uint offset, float3x2 obj) {
+  tint_symbol_1.Store2((offset + 0u), asuint(obj[0u]));
+  tint_symbol_1.Store2((offset + 8u), asuint(obj[1u]));
+  tint_symbol_1.Store2((offset + 16u), asuint(obj[2u]));
+}
+
+float3x2 v_1(uint offset) {
+  float2 v_2 = asfloat(tint_symbol.Load2((offset + 0u)));
+  float2 v_3 = asfloat(tint_symbol.Load2((offset + 8u)));
+  return float3x2(v_2, v_3, asfloat(tint_symbol.Load2((offset + 16u))));
+}
 
 [numthreads(1, 1, 1)]
 void main() {
-  tint_symbol_1 = tint_symbol;
+  v(0u, v_1(0u));
 }
 
diff --git a/test/tint/buffer/storage/types/mat3x3_f16.wgsl.expected.ir.dxc.hlsl b/test/tint/buffer/storage/types/mat3x3_f16.wgsl.expected.ir.dxc.hlsl
index 0d340d9..7fb84f9 100644
--- a/test/tint/buffer/storage/types/mat3x3_f16.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/buffer/storage/types/mat3x3_f16.wgsl.expected.ir.dxc.hlsl
@@ -1,15 +1,20 @@
-SKIP: FAILED
+
+ByteAddressBuffer tint_symbol : register(t0);
+RWByteAddressBuffer tint_symbol_1 : register(u1);
+void v(uint offset, matrix<float16_t, 3, 3> obj) {
+  tint_symbol_1.Store<vector<float16_t, 3> >((offset + 0u), obj[0u]);
+  tint_symbol_1.Store<vector<float16_t, 3> >((offset + 8u), obj[1u]);
+  tint_symbol_1.Store<vector<float16_t, 3> >((offset + 16u), obj[2u]);
+}
+
+matrix<float16_t, 3, 3> v_1(uint offset) {
+  vector<float16_t, 3> v_2 = tint_symbol.Load<vector<float16_t, 3> >((offset + 0u));
+  vector<float16_t, 3> v_3 = tint_symbol.Load<vector<float16_t, 3> >((offset + 8u));
+  return matrix<float16_t, 3, 3>(v_2, v_3, tint_symbol.Load<vector<float16_t, 3> >((offset + 16u)));
+}
 
 [numthreads(1, 1, 1)]
 void main() {
-  tint_symbol_1 = tint_symbol;
+  v(0u, v_1(0u));
 }
 
-DXC validation failure:
-hlsl.hlsl:3:3: error: use of undeclared identifier 'tint_symbol_1'
-  tint_symbol_1 = tint_symbol;
-  ^
-hlsl.hlsl:3:19: error: use of undeclared identifier 'tint_symbol'
-  tint_symbol_1 = tint_symbol;
-                  ^
-
diff --git a/test/tint/buffer/storage/types/mat3x3_f16.wgsl.expected.ir.fxc.hlsl b/test/tint/buffer/storage/types/mat3x3_f16.wgsl.expected.ir.fxc.hlsl
index d46e160..1a72b4d 100644
--- a/test/tint/buffer/storage/types/mat3x3_f16.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/buffer/storage/types/mat3x3_f16.wgsl.expected.ir.fxc.hlsl
@@ -1,7 +1,26 @@
 SKIP: FAILED
 
+
+ByteAddressBuffer tint_symbol : register(t0);
+RWByteAddressBuffer tint_symbol_1 : register(u1);
+void v(uint offset, matrix<float16_t, 3, 3> obj) {
+  tint_symbol_1.Store<vector<float16_t, 3> >((offset + 0u), obj[0u]);
+  tint_symbol_1.Store<vector<float16_t, 3> >((offset + 8u), obj[1u]);
+  tint_symbol_1.Store<vector<float16_t, 3> >((offset + 16u), obj[2u]);
+}
+
+matrix<float16_t, 3, 3> v_1(uint offset) {
+  vector<float16_t, 3> v_2 = tint_symbol.Load<vector<float16_t, 3> >((offset + 0u));
+  vector<float16_t, 3> v_3 = tint_symbol.Load<vector<float16_t, 3> >((offset + 8u));
+  return matrix<float16_t, 3, 3>(v_2, v_3, tint_symbol.Load<vector<float16_t, 3> >((offset + 16u)));
+}
+
 [numthreads(1, 1, 1)]
 void main() {
-  tint_symbol_1 = tint_symbol;
+  v(0u, v_1(0u));
 }
 
+FXC validation failure:
+c:\src\dawn\Shader@0x0000023FE5DF2500(4,28-36): error X3000: syntax error: unexpected token 'float16_t'
+c:\src\dawn\Shader@0x0000023FE5DF2500(5,3-21): error X3018: invalid subscript 'Store'
+
diff --git a/test/tint/buffer/storage/types/mat3x3_f32.wgsl.expected.ir.dxc.hlsl b/test/tint/buffer/storage/types/mat3x3_f32.wgsl.expected.ir.dxc.hlsl
index 0d340d9..997edce 100644
--- a/test/tint/buffer/storage/types/mat3x3_f32.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/buffer/storage/types/mat3x3_f32.wgsl.expected.ir.dxc.hlsl
@@ -1,15 +1,20 @@
-SKIP: FAILED
+
+ByteAddressBuffer tint_symbol : register(t0);
+RWByteAddressBuffer tint_symbol_1 : register(u1);
+void v(uint offset, float3x3 obj) {
+  tint_symbol_1.Store3((offset + 0u), asuint(obj[0u]));
+  tint_symbol_1.Store3((offset + 16u), asuint(obj[1u]));
+  tint_symbol_1.Store3((offset + 32u), asuint(obj[2u]));
+}
+
+float3x3 v_1(uint offset) {
+  float3 v_2 = asfloat(tint_symbol.Load3((offset + 0u)));
+  float3 v_3 = asfloat(tint_symbol.Load3((offset + 16u)));
+  return float3x3(v_2, v_3, asfloat(tint_symbol.Load3((offset + 32u))));
+}
 
 [numthreads(1, 1, 1)]
 void main() {
-  tint_symbol_1 = tint_symbol;
+  v(0u, v_1(0u));
 }
 
-DXC validation failure:
-hlsl.hlsl:3:3: error: use of undeclared identifier 'tint_symbol_1'
-  tint_symbol_1 = tint_symbol;
-  ^
-hlsl.hlsl:3:19: error: use of undeclared identifier 'tint_symbol'
-  tint_symbol_1 = tint_symbol;
-                  ^
-
diff --git a/test/tint/buffer/storage/types/mat3x3_f32.wgsl.expected.ir.fxc.hlsl b/test/tint/buffer/storage/types/mat3x3_f32.wgsl.expected.ir.fxc.hlsl
index d46e160..997edce 100644
--- a/test/tint/buffer/storage/types/mat3x3_f32.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/buffer/storage/types/mat3x3_f32.wgsl.expected.ir.fxc.hlsl
@@ -1,7 +1,20 @@
-SKIP: FAILED
+
+ByteAddressBuffer tint_symbol : register(t0);
+RWByteAddressBuffer tint_symbol_1 : register(u1);
+void v(uint offset, float3x3 obj) {
+  tint_symbol_1.Store3((offset + 0u), asuint(obj[0u]));
+  tint_symbol_1.Store3((offset + 16u), asuint(obj[1u]));
+  tint_symbol_1.Store3((offset + 32u), asuint(obj[2u]));
+}
+
+float3x3 v_1(uint offset) {
+  float3 v_2 = asfloat(tint_symbol.Load3((offset + 0u)));
+  float3 v_3 = asfloat(tint_symbol.Load3((offset + 16u)));
+  return float3x3(v_2, v_3, asfloat(tint_symbol.Load3((offset + 32u))));
+}
 
 [numthreads(1, 1, 1)]
 void main() {
-  tint_symbol_1 = tint_symbol;
+  v(0u, v_1(0u));
 }
 
diff --git a/test/tint/buffer/storage/types/mat3x4_f16.wgsl.expected.ir.dxc.hlsl b/test/tint/buffer/storage/types/mat3x4_f16.wgsl.expected.ir.dxc.hlsl
index 0d340d9..722c7e1 100644
--- a/test/tint/buffer/storage/types/mat3x4_f16.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/buffer/storage/types/mat3x4_f16.wgsl.expected.ir.dxc.hlsl
@@ -1,15 +1,20 @@
-SKIP: FAILED
+
+ByteAddressBuffer tint_symbol : register(t0);
+RWByteAddressBuffer tint_symbol_1 : register(u1);
+void v(uint offset, matrix<float16_t, 3, 4> obj) {
+  tint_symbol_1.Store<vector<float16_t, 4> >((offset + 0u), obj[0u]);
+  tint_symbol_1.Store<vector<float16_t, 4> >((offset + 8u), obj[1u]);
+  tint_symbol_1.Store<vector<float16_t, 4> >((offset + 16u), obj[2u]);
+}
+
+matrix<float16_t, 3, 4> v_1(uint offset) {
+  vector<float16_t, 4> v_2 = tint_symbol.Load<vector<float16_t, 4> >((offset + 0u));
+  vector<float16_t, 4> v_3 = tint_symbol.Load<vector<float16_t, 4> >((offset + 8u));
+  return matrix<float16_t, 3, 4>(v_2, v_3, tint_symbol.Load<vector<float16_t, 4> >((offset + 16u)));
+}
 
 [numthreads(1, 1, 1)]
 void main() {
-  tint_symbol_1 = tint_symbol;
+  v(0u, v_1(0u));
 }
 
-DXC validation failure:
-hlsl.hlsl:3:3: error: use of undeclared identifier 'tint_symbol_1'
-  tint_symbol_1 = tint_symbol;
-  ^
-hlsl.hlsl:3:19: error: use of undeclared identifier 'tint_symbol'
-  tint_symbol_1 = tint_symbol;
-                  ^
-
diff --git a/test/tint/buffer/storage/types/mat3x4_f16.wgsl.expected.ir.fxc.hlsl b/test/tint/buffer/storage/types/mat3x4_f16.wgsl.expected.ir.fxc.hlsl
index d46e160..6aafb00 100644
--- a/test/tint/buffer/storage/types/mat3x4_f16.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/buffer/storage/types/mat3x4_f16.wgsl.expected.ir.fxc.hlsl
@@ -1,7 +1,26 @@
 SKIP: FAILED
 
+
+ByteAddressBuffer tint_symbol : register(t0);
+RWByteAddressBuffer tint_symbol_1 : register(u1);
+void v(uint offset, matrix<float16_t, 3, 4> obj) {
+  tint_symbol_1.Store<vector<float16_t, 4> >((offset + 0u), obj[0u]);
+  tint_symbol_1.Store<vector<float16_t, 4> >((offset + 8u), obj[1u]);
+  tint_symbol_1.Store<vector<float16_t, 4> >((offset + 16u), obj[2u]);
+}
+
+matrix<float16_t, 3, 4> v_1(uint offset) {
+  vector<float16_t, 4> v_2 = tint_symbol.Load<vector<float16_t, 4> >((offset + 0u));
+  vector<float16_t, 4> v_3 = tint_symbol.Load<vector<float16_t, 4> >((offset + 8u));
+  return matrix<float16_t, 3, 4>(v_2, v_3, tint_symbol.Load<vector<float16_t, 4> >((offset + 16u)));
+}
+
 [numthreads(1, 1, 1)]
 void main() {
-  tint_symbol_1 = tint_symbol;
+  v(0u, v_1(0u));
 }
 
+FXC validation failure:
+c:\src\dawn\Shader@0x00000254C7CE6E30(4,28-36): error X3000: syntax error: unexpected token 'float16_t'
+c:\src\dawn\Shader@0x00000254C7CE6E30(5,3-21): error X3018: invalid subscript 'Store'
+
diff --git a/test/tint/buffer/storage/types/mat3x4_f32.wgsl.expected.ir.dxc.hlsl b/test/tint/buffer/storage/types/mat3x4_f32.wgsl.expected.ir.dxc.hlsl
index 0d340d9..5fc4800 100644
--- a/test/tint/buffer/storage/types/mat3x4_f32.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/buffer/storage/types/mat3x4_f32.wgsl.expected.ir.dxc.hlsl
@@ -1,15 +1,20 @@
-SKIP: FAILED
+
+ByteAddressBuffer tint_symbol : register(t0);
+RWByteAddressBuffer tint_symbol_1 : register(u1);
+void v(uint offset, float3x4 obj) {
+  tint_symbol_1.Store4((offset + 0u), asuint(obj[0u]));
+  tint_symbol_1.Store4((offset + 16u), asuint(obj[1u]));
+  tint_symbol_1.Store4((offset + 32u), asuint(obj[2u]));
+}
+
+float3x4 v_1(uint offset) {
+  float4 v_2 = asfloat(tint_symbol.Load4((offset + 0u)));
+  float4 v_3 = asfloat(tint_symbol.Load4((offset + 16u)));
+  return float3x4(v_2, v_3, asfloat(tint_symbol.Load4((offset + 32u))));
+}
 
 [numthreads(1, 1, 1)]
 void main() {
-  tint_symbol_1 = tint_symbol;
+  v(0u, v_1(0u));
 }
 
-DXC validation failure:
-hlsl.hlsl:3:3: error: use of undeclared identifier 'tint_symbol_1'
-  tint_symbol_1 = tint_symbol;
-  ^
-hlsl.hlsl:3:19: error: use of undeclared identifier 'tint_symbol'
-  tint_symbol_1 = tint_symbol;
-                  ^
-
diff --git a/test/tint/buffer/storage/types/mat3x4_f32.wgsl.expected.ir.fxc.hlsl b/test/tint/buffer/storage/types/mat3x4_f32.wgsl.expected.ir.fxc.hlsl
index d46e160..5fc4800 100644
--- a/test/tint/buffer/storage/types/mat3x4_f32.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/buffer/storage/types/mat3x4_f32.wgsl.expected.ir.fxc.hlsl
@@ -1,7 +1,20 @@
-SKIP: FAILED
+
+ByteAddressBuffer tint_symbol : register(t0);
+RWByteAddressBuffer tint_symbol_1 : register(u1);
+void v(uint offset, float3x4 obj) {
+  tint_symbol_1.Store4((offset + 0u), asuint(obj[0u]));
+  tint_symbol_1.Store4((offset + 16u), asuint(obj[1u]));
+  tint_symbol_1.Store4((offset + 32u), asuint(obj[2u]));
+}
+
+float3x4 v_1(uint offset) {
+  float4 v_2 = asfloat(tint_symbol.Load4((offset + 0u)));
+  float4 v_3 = asfloat(tint_symbol.Load4((offset + 16u)));
+  return float3x4(v_2, v_3, asfloat(tint_symbol.Load4((offset + 32u))));
+}
 
 [numthreads(1, 1, 1)]
 void main() {
-  tint_symbol_1 = tint_symbol;
+  v(0u, v_1(0u));
 }
 
diff --git a/test/tint/buffer/storage/types/mat4x2_f16.wgsl.expected.ir.dxc.hlsl b/test/tint/buffer/storage/types/mat4x2_f16.wgsl.expected.ir.dxc.hlsl
index 0d340d9..39fa6b6 100644
--- a/test/tint/buffer/storage/types/mat4x2_f16.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/buffer/storage/types/mat4x2_f16.wgsl.expected.ir.dxc.hlsl
@@ -1,15 +1,22 @@
-SKIP: FAILED
+
+ByteAddressBuffer tint_symbol : register(t0);
+RWByteAddressBuffer tint_symbol_1 : register(u1);
+void v(uint offset, matrix<float16_t, 4, 2> obj) {
+  tint_symbol_1.Store<vector<float16_t, 2> >((offset + 0u), obj[0u]);
+  tint_symbol_1.Store<vector<float16_t, 2> >((offset + 4u), obj[1u]);
+  tint_symbol_1.Store<vector<float16_t, 2> >((offset + 8u), obj[2u]);
+  tint_symbol_1.Store<vector<float16_t, 2> >((offset + 12u), obj[3u]);
+}
+
+matrix<float16_t, 4, 2> v_1(uint offset) {
+  vector<float16_t, 2> v_2 = tint_symbol.Load<vector<float16_t, 2> >((offset + 0u));
+  vector<float16_t, 2> v_3 = tint_symbol.Load<vector<float16_t, 2> >((offset + 4u));
+  vector<float16_t, 2> v_4 = tint_symbol.Load<vector<float16_t, 2> >((offset + 8u));
+  return matrix<float16_t, 4, 2>(v_2, v_3, v_4, tint_symbol.Load<vector<float16_t, 2> >((offset + 12u)));
+}
 
 [numthreads(1, 1, 1)]
 void main() {
-  tint_symbol_1 = tint_symbol;
+  v(0u, v_1(0u));
 }
 
-DXC validation failure:
-hlsl.hlsl:3:3: error: use of undeclared identifier 'tint_symbol_1'
-  tint_symbol_1 = tint_symbol;
-  ^
-hlsl.hlsl:3:19: error: use of undeclared identifier 'tint_symbol'
-  tint_symbol_1 = tint_symbol;
-                  ^
-
diff --git a/test/tint/buffer/storage/types/mat4x2_f16.wgsl.expected.ir.fxc.hlsl b/test/tint/buffer/storage/types/mat4x2_f16.wgsl.expected.ir.fxc.hlsl
index d46e160..3ef151f 100644
--- a/test/tint/buffer/storage/types/mat4x2_f16.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/buffer/storage/types/mat4x2_f16.wgsl.expected.ir.fxc.hlsl
@@ -1,7 +1,28 @@
 SKIP: FAILED
 
+
+ByteAddressBuffer tint_symbol : register(t0);
+RWByteAddressBuffer tint_symbol_1 : register(u1);
+void v(uint offset, matrix<float16_t, 4, 2> obj) {
+  tint_symbol_1.Store<vector<float16_t, 2> >((offset + 0u), obj[0u]);
+  tint_symbol_1.Store<vector<float16_t, 2> >((offset + 4u), obj[1u]);
+  tint_symbol_1.Store<vector<float16_t, 2> >((offset + 8u), obj[2u]);
+  tint_symbol_1.Store<vector<float16_t, 2> >((offset + 12u), obj[3u]);
+}
+
+matrix<float16_t, 4, 2> v_1(uint offset) {
+  vector<float16_t, 2> v_2 = tint_symbol.Load<vector<float16_t, 2> >((offset + 0u));
+  vector<float16_t, 2> v_3 = tint_symbol.Load<vector<float16_t, 2> >((offset + 4u));
+  vector<float16_t, 2> v_4 = tint_symbol.Load<vector<float16_t, 2> >((offset + 8u));
+  return matrix<float16_t, 4, 2>(v_2, v_3, v_4, tint_symbol.Load<vector<float16_t, 2> >((offset + 12u)));
+}
+
 [numthreads(1, 1, 1)]
 void main() {
-  tint_symbol_1 = tint_symbol;
+  v(0u, v_1(0u));
 }
 
+FXC validation failure:
+c:\src\dawn\Shader@0x0000019E5DDEF7C0(4,28-36): error X3000: syntax error: unexpected token 'float16_t'
+c:\src\dawn\Shader@0x0000019E5DDEF7C0(5,3-21): error X3018: invalid subscript 'Store'
+
diff --git a/test/tint/buffer/storage/types/mat4x2_f32.wgsl.expected.ir.dxc.hlsl b/test/tint/buffer/storage/types/mat4x2_f32.wgsl.expected.ir.dxc.hlsl
index 0d340d9..d6b4b8d 100644
--- a/test/tint/buffer/storage/types/mat4x2_f32.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/buffer/storage/types/mat4x2_f32.wgsl.expected.ir.dxc.hlsl
@@ -1,15 +1,22 @@
-SKIP: FAILED
+
+ByteAddressBuffer tint_symbol : register(t0);
+RWByteAddressBuffer tint_symbol_1 : register(u1);
+void v(uint offset, float4x2 obj) {
+  tint_symbol_1.Store2((offset + 0u), asuint(obj[0u]));
+  tint_symbol_1.Store2((offset + 8u), asuint(obj[1u]));
+  tint_symbol_1.Store2((offset + 16u), asuint(obj[2u]));
+  tint_symbol_1.Store2((offset + 24u), asuint(obj[3u]));
+}
+
+float4x2 v_1(uint offset) {
+  float2 v_2 = asfloat(tint_symbol.Load2((offset + 0u)));
+  float2 v_3 = asfloat(tint_symbol.Load2((offset + 8u)));
+  float2 v_4 = asfloat(tint_symbol.Load2((offset + 16u)));
+  return float4x2(v_2, v_3, v_4, asfloat(tint_symbol.Load2((offset + 24u))));
+}
 
 [numthreads(1, 1, 1)]
 void main() {
-  tint_symbol_1 = tint_symbol;
+  v(0u, v_1(0u));
 }
 
-DXC validation failure:
-hlsl.hlsl:3:3: error: use of undeclared identifier 'tint_symbol_1'
-  tint_symbol_1 = tint_symbol;
-  ^
-hlsl.hlsl:3:19: error: use of undeclared identifier 'tint_symbol'
-  tint_symbol_1 = tint_symbol;
-                  ^
-
diff --git a/test/tint/buffer/storage/types/mat4x2_f32.wgsl.expected.ir.fxc.hlsl b/test/tint/buffer/storage/types/mat4x2_f32.wgsl.expected.ir.fxc.hlsl
index d46e160..d6b4b8d 100644
--- a/test/tint/buffer/storage/types/mat4x2_f32.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/buffer/storage/types/mat4x2_f32.wgsl.expected.ir.fxc.hlsl
@@ -1,7 +1,22 @@
-SKIP: FAILED
+
+ByteAddressBuffer tint_symbol : register(t0);
+RWByteAddressBuffer tint_symbol_1 : register(u1);
+void v(uint offset, float4x2 obj) {
+  tint_symbol_1.Store2((offset + 0u), asuint(obj[0u]));
+  tint_symbol_1.Store2((offset + 8u), asuint(obj[1u]));
+  tint_symbol_1.Store2((offset + 16u), asuint(obj[2u]));
+  tint_symbol_1.Store2((offset + 24u), asuint(obj[3u]));
+}
+
+float4x2 v_1(uint offset) {
+  float2 v_2 = asfloat(tint_symbol.Load2((offset + 0u)));
+  float2 v_3 = asfloat(tint_symbol.Load2((offset + 8u)));
+  float2 v_4 = asfloat(tint_symbol.Load2((offset + 16u)));
+  return float4x2(v_2, v_3, v_4, asfloat(tint_symbol.Load2((offset + 24u))));
+}
 
 [numthreads(1, 1, 1)]
 void main() {
-  tint_symbol_1 = tint_symbol;
+  v(0u, v_1(0u));
 }
 
diff --git a/test/tint/buffer/storage/types/mat4x3_f16.wgsl.expected.ir.dxc.hlsl b/test/tint/buffer/storage/types/mat4x3_f16.wgsl.expected.ir.dxc.hlsl
index 0d340d9..0f2b3b0 100644
--- a/test/tint/buffer/storage/types/mat4x3_f16.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/buffer/storage/types/mat4x3_f16.wgsl.expected.ir.dxc.hlsl
@@ -1,15 +1,22 @@
-SKIP: FAILED
+
+ByteAddressBuffer tint_symbol : register(t0);
+RWByteAddressBuffer tint_symbol_1 : register(u1);
+void v(uint offset, matrix<float16_t, 4, 3> obj) {
+  tint_symbol_1.Store<vector<float16_t, 3> >((offset + 0u), obj[0u]);
+  tint_symbol_1.Store<vector<float16_t, 3> >((offset + 8u), obj[1u]);
+  tint_symbol_1.Store<vector<float16_t, 3> >((offset + 16u), obj[2u]);
+  tint_symbol_1.Store<vector<float16_t, 3> >((offset + 24u), obj[3u]);
+}
+
+matrix<float16_t, 4, 3> v_1(uint offset) {
+  vector<float16_t, 3> v_2 = tint_symbol.Load<vector<float16_t, 3> >((offset + 0u));
+  vector<float16_t, 3> v_3 = tint_symbol.Load<vector<float16_t, 3> >((offset + 8u));
+  vector<float16_t, 3> v_4 = tint_symbol.Load<vector<float16_t, 3> >((offset + 16u));
+  return matrix<float16_t, 4, 3>(v_2, v_3, v_4, tint_symbol.Load<vector<float16_t, 3> >((offset + 24u)));
+}
 
 [numthreads(1, 1, 1)]
 void main() {
-  tint_symbol_1 = tint_symbol;
+  v(0u, v_1(0u));
 }
 
-DXC validation failure:
-hlsl.hlsl:3:3: error: use of undeclared identifier 'tint_symbol_1'
-  tint_symbol_1 = tint_symbol;
-  ^
-hlsl.hlsl:3:19: error: use of undeclared identifier 'tint_symbol'
-  tint_symbol_1 = tint_symbol;
-                  ^
-
diff --git a/test/tint/buffer/storage/types/mat4x3_f16.wgsl.expected.ir.fxc.hlsl b/test/tint/buffer/storage/types/mat4x3_f16.wgsl.expected.ir.fxc.hlsl
index d46e160..3fa7599 100644
--- a/test/tint/buffer/storage/types/mat4x3_f16.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/buffer/storage/types/mat4x3_f16.wgsl.expected.ir.fxc.hlsl
@@ -1,7 +1,28 @@
 SKIP: FAILED
 
+
+ByteAddressBuffer tint_symbol : register(t0);
+RWByteAddressBuffer tint_symbol_1 : register(u1);
+void v(uint offset, matrix<float16_t, 4, 3> obj) {
+  tint_symbol_1.Store<vector<float16_t, 3> >((offset + 0u), obj[0u]);
+  tint_symbol_1.Store<vector<float16_t, 3> >((offset + 8u), obj[1u]);
+  tint_symbol_1.Store<vector<float16_t, 3> >((offset + 16u), obj[2u]);
+  tint_symbol_1.Store<vector<float16_t, 3> >((offset + 24u), obj[3u]);
+}
+
+matrix<float16_t, 4, 3> v_1(uint offset) {
+  vector<float16_t, 3> v_2 = tint_symbol.Load<vector<float16_t, 3> >((offset + 0u));
+  vector<float16_t, 3> v_3 = tint_symbol.Load<vector<float16_t, 3> >((offset + 8u));
+  vector<float16_t, 3> v_4 = tint_symbol.Load<vector<float16_t, 3> >((offset + 16u));
+  return matrix<float16_t, 4, 3>(v_2, v_3, v_4, tint_symbol.Load<vector<float16_t, 3> >((offset + 24u)));
+}
+
 [numthreads(1, 1, 1)]
 void main() {
-  tint_symbol_1 = tint_symbol;
+  v(0u, v_1(0u));
 }
 
+FXC validation failure:
+c:\src\dawn\Shader@0x000001A17B833B80(4,28-36): error X3000: syntax error: unexpected token 'float16_t'
+c:\src\dawn\Shader@0x000001A17B833B80(5,3-21): error X3018: invalid subscript 'Store'
+
diff --git a/test/tint/buffer/storage/types/mat4x3_f32.wgsl.expected.ir.dxc.hlsl b/test/tint/buffer/storage/types/mat4x3_f32.wgsl.expected.ir.dxc.hlsl
index 0d340d9..4c18cac 100644
--- a/test/tint/buffer/storage/types/mat4x3_f32.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/buffer/storage/types/mat4x3_f32.wgsl.expected.ir.dxc.hlsl
@@ -1,15 +1,22 @@
-SKIP: FAILED
+
+ByteAddressBuffer tint_symbol : register(t0);
+RWByteAddressBuffer tint_symbol_1 : register(u1);
+void v(uint offset, float4x3 obj) {
+  tint_symbol_1.Store3((offset + 0u), asuint(obj[0u]));
+  tint_symbol_1.Store3((offset + 16u), asuint(obj[1u]));
+  tint_symbol_1.Store3((offset + 32u), asuint(obj[2u]));
+  tint_symbol_1.Store3((offset + 48u), asuint(obj[3u]));
+}
+
+float4x3 v_1(uint offset) {
+  float3 v_2 = asfloat(tint_symbol.Load3((offset + 0u)));
+  float3 v_3 = asfloat(tint_symbol.Load3((offset + 16u)));
+  float3 v_4 = asfloat(tint_symbol.Load3((offset + 32u)));
+  return float4x3(v_2, v_3, v_4, asfloat(tint_symbol.Load3((offset + 48u))));
+}
 
 [numthreads(1, 1, 1)]
 void main() {
-  tint_symbol_1 = tint_symbol;
+  v(0u, v_1(0u));
 }
 
-DXC validation failure:
-hlsl.hlsl:3:3: error: use of undeclared identifier 'tint_symbol_1'
-  tint_symbol_1 = tint_symbol;
-  ^
-hlsl.hlsl:3:19: error: use of undeclared identifier 'tint_symbol'
-  tint_symbol_1 = tint_symbol;
-                  ^
-
diff --git a/test/tint/buffer/storage/types/mat4x3_f32.wgsl.expected.ir.fxc.hlsl b/test/tint/buffer/storage/types/mat4x3_f32.wgsl.expected.ir.fxc.hlsl
index d46e160..4c18cac 100644
--- a/test/tint/buffer/storage/types/mat4x3_f32.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/buffer/storage/types/mat4x3_f32.wgsl.expected.ir.fxc.hlsl
@@ -1,7 +1,22 @@
-SKIP: FAILED
+
+ByteAddressBuffer tint_symbol : register(t0);
+RWByteAddressBuffer tint_symbol_1 : register(u1);
+void v(uint offset, float4x3 obj) {
+  tint_symbol_1.Store3((offset + 0u), asuint(obj[0u]));
+  tint_symbol_1.Store3((offset + 16u), asuint(obj[1u]));
+  tint_symbol_1.Store3((offset + 32u), asuint(obj[2u]));
+  tint_symbol_1.Store3((offset + 48u), asuint(obj[3u]));
+}
+
+float4x3 v_1(uint offset) {
+  float3 v_2 = asfloat(tint_symbol.Load3((offset + 0u)));
+  float3 v_3 = asfloat(tint_symbol.Load3((offset + 16u)));
+  float3 v_4 = asfloat(tint_symbol.Load3((offset + 32u)));
+  return float4x3(v_2, v_3, v_4, asfloat(tint_symbol.Load3((offset + 48u))));
+}
 
 [numthreads(1, 1, 1)]
 void main() {
-  tint_symbol_1 = tint_symbol;
+  v(0u, v_1(0u));
 }
 
diff --git a/test/tint/buffer/storage/types/mat4x4_f16.wgsl.expected.ir.dxc.hlsl b/test/tint/buffer/storage/types/mat4x4_f16.wgsl.expected.ir.dxc.hlsl
index 0d340d9..e405c07 100644
--- a/test/tint/buffer/storage/types/mat4x4_f16.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/buffer/storage/types/mat4x4_f16.wgsl.expected.ir.dxc.hlsl
@@ -1,15 +1,22 @@
-SKIP: FAILED
+
+ByteAddressBuffer tint_symbol : register(t0);
+RWByteAddressBuffer tint_symbol_1 : register(u1);
+void v(uint offset, matrix<float16_t, 4, 4> obj) {
+  tint_symbol_1.Store<vector<float16_t, 4> >((offset + 0u), obj[0u]);
+  tint_symbol_1.Store<vector<float16_t, 4> >((offset + 8u), obj[1u]);
+  tint_symbol_1.Store<vector<float16_t, 4> >((offset + 16u), obj[2u]);
+  tint_symbol_1.Store<vector<float16_t, 4> >((offset + 24u), obj[3u]);
+}
+
+matrix<float16_t, 4, 4> v_1(uint offset) {
+  vector<float16_t, 4> v_2 = tint_symbol.Load<vector<float16_t, 4> >((offset + 0u));
+  vector<float16_t, 4> v_3 = tint_symbol.Load<vector<float16_t, 4> >((offset + 8u));
+  vector<float16_t, 4> v_4 = tint_symbol.Load<vector<float16_t, 4> >((offset + 16u));
+  return matrix<float16_t, 4, 4>(v_2, v_3, v_4, tint_symbol.Load<vector<float16_t, 4> >((offset + 24u)));
+}
 
 [numthreads(1, 1, 1)]
 void main() {
-  tint_symbol_1 = tint_symbol;
+  v(0u, v_1(0u));
 }
 
-DXC validation failure:
-hlsl.hlsl:3:3: error: use of undeclared identifier 'tint_symbol_1'
-  tint_symbol_1 = tint_symbol;
-  ^
-hlsl.hlsl:3:19: error: use of undeclared identifier 'tint_symbol'
-  tint_symbol_1 = tint_symbol;
-                  ^
-
diff --git a/test/tint/buffer/storage/types/mat4x4_f16.wgsl.expected.ir.fxc.hlsl b/test/tint/buffer/storage/types/mat4x4_f16.wgsl.expected.ir.fxc.hlsl
index d46e160..476c2ee 100644
--- a/test/tint/buffer/storage/types/mat4x4_f16.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/buffer/storage/types/mat4x4_f16.wgsl.expected.ir.fxc.hlsl
@@ -1,7 +1,28 @@
 SKIP: FAILED
 
+
+ByteAddressBuffer tint_symbol : register(t0);
+RWByteAddressBuffer tint_symbol_1 : register(u1);
+void v(uint offset, matrix<float16_t, 4, 4> obj) {
+  tint_symbol_1.Store<vector<float16_t, 4> >((offset + 0u), obj[0u]);
+  tint_symbol_1.Store<vector<float16_t, 4> >((offset + 8u), obj[1u]);
+  tint_symbol_1.Store<vector<float16_t, 4> >((offset + 16u), obj[2u]);
+  tint_symbol_1.Store<vector<float16_t, 4> >((offset + 24u), obj[3u]);
+}
+
+matrix<float16_t, 4, 4> v_1(uint offset) {
+  vector<float16_t, 4> v_2 = tint_symbol.Load<vector<float16_t, 4> >((offset + 0u));
+  vector<float16_t, 4> v_3 = tint_symbol.Load<vector<float16_t, 4> >((offset + 8u));
+  vector<float16_t, 4> v_4 = tint_symbol.Load<vector<float16_t, 4> >((offset + 16u));
+  return matrix<float16_t, 4, 4>(v_2, v_3, v_4, tint_symbol.Load<vector<float16_t, 4> >((offset + 24u)));
+}
+
 [numthreads(1, 1, 1)]
 void main() {
-  tint_symbol_1 = tint_symbol;
+  v(0u, v_1(0u));
 }
 
+FXC validation failure:
+c:\src\dawn\Shader@0x00000266369D4790(4,28-36): error X3000: syntax error: unexpected token 'float16_t'
+c:\src\dawn\Shader@0x00000266369D4790(5,3-21): error X3018: invalid subscript 'Store'
+
diff --git a/test/tint/buffer/storage/types/mat4x4_f32.wgsl.expected.ir.dxc.hlsl b/test/tint/buffer/storage/types/mat4x4_f32.wgsl.expected.ir.dxc.hlsl
index 0d340d9..44368b3 100644
--- a/test/tint/buffer/storage/types/mat4x4_f32.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/buffer/storage/types/mat4x4_f32.wgsl.expected.ir.dxc.hlsl
@@ -1,15 +1,22 @@
-SKIP: FAILED
+
+ByteAddressBuffer tint_symbol : register(t0);
+RWByteAddressBuffer tint_symbol_1 : register(u1);
+void v(uint offset, float4x4 obj) {
+  tint_symbol_1.Store4((offset + 0u), asuint(obj[0u]));
+  tint_symbol_1.Store4((offset + 16u), asuint(obj[1u]));
+  tint_symbol_1.Store4((offset + 32u), asuint(obj[2u]));
+  tint_symbol_1.Store4((offset + 48u), asuint(obj[3u]));
+}
+
+float4x4 v_1(uint offset) {
+  float4 v_2 = asfloat(tint_symbol.Load4((offset + 0u)));
+  float4 v_3 = asfloat(tint_symbol.Load4((offset + 16u)));
+  float4 v_4 = asfloat(tint_symbol.Load4((offset + 32u)));
+  return float4x4(v_2, v_3, v_4, asfloat(tint_symbol.Load4((offset + 48u))));
+}
 
 [numthreads(1, 1, 1)]
 void main() {
-  tint_symbol_1 = tint_symbol;
+  v(0u, v_1(0u));
 }
 
-DXC validation failure:
-hlsl.hlsl:3:3: error: use of undeclared identifier 'tint_symbol_1'
-  tint_symbol_1 = tint_symbol;
-  ^
-hlsl.hlsl:3:19: error: use of undeclared identifier 'tint_symbol'
-  tint_symbol_1 = tint_symbol;
-                  ^
-
diff --git a/test/tint/buffer/storage/types/mat4x4_f32.wgsl.expected.ir.fxc.hlsl b/test/tint/buffer/storage/types/mat4x4_f32.wgsl.expected.ir.fxc.hlsl
index d46e160..44368b3 100644
--- a/test/tint/buffer/storage/types/mat4x4_f32.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/buffer/storage/types/mat4x4_f32.wgsl.expected.ir.fxc.hlsl
@@ -1,7 +1,22 @@
-SKIP: FAILED
+
+ByteAddressBuffer tint_symbol : register(t0);
+RWByteAddressBuffer tint_symbol_1 : register(u1);
+void v(uint offset, float4x4 obj) {
+  tint_symbol_1.Store4((offset + 0u), asuint(obj[0u]));
+  tint_symbol_1.Store4((offset + 16u), asuint(obj[1u]));
+  tint_symbol_1.Store4((offset + 32u), asuint(obj[2u]));
+  tint_symbol_1.Store4((offset + 48u), asuint(obj[3u]));
+}
+
+float4x4 v_1(uint offset) {
+  float4 v_2 = asfloat(tint_symbol.Load4((offset + 0u)));
+  float4 v_3 = asfloat(tint_symbol.Load4((offset + 16u)));
+  float4 v_4 = asfloat(tint_symbol.Load4((offset + 32u)));
+  return float4x4(v_2, v_3, v_4, asfloat(tint_symbol.Load4((offset + 48u))));
+}
 
 [numthreads(1, 1, 1)]
 void main() {
-  tint_symbol_1 = tint_symbol;
+  v(0u, v_1(0u));
 }
 
diff --git a/test/tint/buffer/storage/types/runtime_array_f16.wgsl.expected.ir.dxc.hlsl b/test/tint/buffer/storage/types/runtime_array_f16.wgsl.expected.ir.dxc.hlsl
index 3f437dc..301bcd2 100644
--- a/test/tint/buffer/storage/types/runtime_array_f16.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/buffer/storage/types/runtime_array_f16.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,8 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Access
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+ByteAddressBuffer tint_symbol : register(t0);
+RWByteAddressBuffer tint_symbol_1 : register(u1);
+[numthreads(1, 1, 1)]
+void main() {
+  tint_symbol_1.Store<float16_t>(0u, tint_symbol.Load<float16_t>(0u));
+}
+
diff --git a/test/tint/buffer/storage/types/runtime_array_f16.wgsl.expected.ir.fxc.hlsl b/test/tint/buffer/storage/types/runtime_array_f16.wgsl.expected.ir.fxc.hlsl
index 3f437dc..5815386 100644
--- a/test/tint/buffer/storage/types/runtime_array_f16.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/buffer/storage/types/runtime_array_f16.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,13 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Access
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+
+ByteAddressBuffer tint_symbol : register(t0);
+RWByteAddressBuffer tint_symbol_1 : register(u1);
+[numthreads(1, 1, 1)]
+void main() {
+  tint_symbol_1.Store<float16_t>(0u, tint_symbol.Load<float16_t>(0u));
+}
+
+FXC validation failure:
+c:\src\dawn\Shader@0x0000022D153C0920(6,3-21): error X3018: invalid subscript 'Store'
+
diff --git a/test/tint/buffer/storage/types/runtime_array_f32.wgsl.expected.ir.dxc.hlsl b/test/tint/buffer/storage/types/runtime_array_f32.wgsl.expected.ir.dxc.hlsl
index 3f437dc..0638383 100644
--- a/test/tint/buffer/storage/types/runtime_array_f32.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/buffer/storage/types/runtime_array_f32.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,8 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Access
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+ByteAddressBuffer tint_symbol : register(t0);
+RWByteAddressBuffer tint_symbol_1 : register(u1);
+[numthreads(1, 1, 1)]
+void main() {
+  tint_symbol_1.Store(0u, asuint(asfloat(tint_symbol.Load(0u))));
+}
+
diff --git a/test/tint/buffer/storage/types/runtime_array_f32.wgsl.expected.ir.fxc.hlsl b/test/tint/buffer/storage/types/runtime_array_f32.wgsl.expected.ir.fxc.hlsl
index 3f437dc..0638383 100644
--- a/test/tint/buffer/storage/types/runtime_array_f32.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/buffer/storage/types/runtime_array_f32.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,8 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Access
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+ByteAddressBuffer tint_symbol : register(t0);
+RWByteAddressBuffer tint_symbol_1 : register(u1);
+[numthreads(1, 1, 1)]
+void main() {
+  tint_symbol_1.Store(0u, asuint(asfloat(tint_symbol.Load(0u))));
+}
+
diff --git a/test/tint/buffer/storage/types/struct_f16.wgsl.expected.ir.dxc.hlsl b/test/tint/buffer/storage/types/struct_f16.wgsl.expected.ir.dxc.hlsl
index de14342..f1b63ad 100644
--- a/test/tint/buffer/storage/types/struct_f16.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/buffer/storage/types/struct_f16.wgsl.expected.ir.dxc.hlsl
@@ -1,16 +1,54 @@
-SKIP: FAILED
+struct Inner {
+  float16_t scalar_f16;
+  vector<float16_t, 3> vec3_f16;
+  matrix<float16_t, 2, 4> mat2x4_f16;
+};
+
+struct S {
+  Inner inner;
+};
+
+
+ByteAddressBuffer tint_symbol : register(t0);
+RWByteAddressBuffer tint_symbol_1 : register(u1);
+void v(uint offset, matrix<float16_t, 2, 4> obj) {
+  tint_symbol_1.Store<vector<float16_t, 4> >((offset + 0u), obj[0u]);
+  tint_symbol_1.Store<vector<float16_t, 4> >((offset + 8u), obj[1u]);
+}
+
+void v_1(uint offset, Inner obj) {
+  tint_symbol_1.Store<float16_t>((offset + 0u), obj.scalar_f16);
+  tint_symbol_1.Store<vector<float16_t, 3> >((offset + 8u), obj.vec3_f16);
+  v((offset + 16u), obj.mat2x4_f16);
+}
+
+void v_2(uint offset, S obj) {
+  Inner v_3 = obj.inner;
+  v_1((offset + 0u), v_3);
+}
+
+matrix<float16_t, 2, 4> v_4(uint offset) {
+  vector<float16_t, 4> v_5 = tint_symbol.Load<vector<float16_t, 4> >((offset + 0u));
+  return matrix<float16_t, 2, 4>(v_5, tint_symbol.Load<vector<float16_t, 4> >((offset + 8u)));
+}
+
+Inner v_6(uint offset) {
+  float16_t v_7 = tint_symbol.Load<float16_t>((offset + 0u));
+  vector<float16_t, 3> v_8 = tint_symbol.Load<vector<float16_t, 3> >((offset + 8u));
+  Inner v_9 = {v_7, v_8, v_4((offset + 16u))};
+  return v_9;
+}
+
+S v_10(uint offset) {
+  Inner v_11 = v_6((offset + 0u));
+  S v_12 = {v_11};
+  return v_12;
+}
 
 [numthreads(1, 1, 1)]
 void main() {
-  S t = tint_symbol;
-  tint_symbol_1 = t;
+  S v_13 = v_10(0u);
+  S t = v_13;
+  v_2(0u, t);
 }
 
-DXC validation failure:
-hlsl.hlsl:3:3: error: unknown type name 'S'
-  S t = tint_symbol;
-  ^
-hlsl.hlsl:4:3: error: use of undeclared identifier 'tint_symbol_1'
-  tint_symbol_1 = t;
-  ^
-
diff --git a/test/tint/buffer/storage/types/struct_f16.wgsl.expected.ir.fxc.hlsl b/test/tint/buffer/storage/types/struct_f16.wgsl.expected.ir.fxc.hlsl
index 1348372..5a9cc9b 100644
--- a/test/tint/buffer/storage/types/struct_f16.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/buffer/storage/types/struct_f16.wgsl.expected.ir.fxc.hlsl
@@ -1,8 +1,59 @@
 SKIP: FAILED
 
+struct Inner {
+  float16_t scalar_f16;
+  vector<float16_t, 3> vec3_f16;
+  matrix<float16_t, 2, 4> mat2x4_f16;
+};
+
+struct S {
+  Inner inner;
+};
+
+
+ByteAddressBuffer tint_symbol : register(t0);
+RWByteAddressBuffer tint_symbol_1 : register(u1);
+void v(uint offset, matrix<float16_t, 2, 4> obj) {
+  tint_symbol_1.Store<vector<float16_t, 4> >((offset + 0u), obj[0u]);
+  tint_symbol_1.Store<vector<float16_t, 4> >((offset + 8u), obj[1u]);
+}
+
+void v_1(uint offset, Inner obj) {
+  tint_symbol_1.Store<float16_t>((offset + 0u), obj.scalar_f16);
+  tint_symbol_1.Store<vector<float16_t, 3> >((offset + 8u), obj.vec3_f16);
+  v((offset + 16u), obj.mat2x4_f16);
+}
+
+void v_2(uint offset, S obj) {
+  Inner v_3 = obj.inner;
+  v_1((offset + 0u), v_3);
+}
+
+matrix<float16_t, 2, 4> v_4(uint offset) {
+  vector<float16_t, 4> v_5 = tint_symbol.Load<vector<float16_t, 4> >((offset + 0u));
+  return matrix<float16_t, 2, 4>(v_5, tint_symbol.Load<vector<float16_t, 4> >((offset + 8u)));
+}
+
+Inner v_6(uint offset) {
+  float16_t v_7 = tint_symbol.Load<float16_t>((offset + 0u));
+  vector<float16_t, 3> v_8 = tint_symbol.Load<vector<float16_t, 3> >((offset + 8u));
+  Inner v_9 = {v_7, v_8, v_4((offset + 16u))};
+  return v_9;
+}
+
+S v_10(uint offset) {
+  Inner v_11 = v_6((offset + 0u));
+  S v_12 = {v_11};
+  return v_12;
+}
+
 [numthreads(1, 1, 1)]
 void main() {
-  S t = tint_symbol;
-  tint_symbol_1 = t;
+  S v_13 = v_10(0u);
+  S t = v_13;
+  v_2(0u, t);
 }
 
+FXC validation failure:
+c:\src\dawn\Shader@0x000001AB96704F90(2,3-11): error X3000: unrecognized identifier 'float16_t'
+
diff --git a/test/tint/buffer/storage/types/struct_f32.wgsl.expected.ir.dxc.hlsl b/test/tint/buffer/storage/types/struct_f32.wgsl.expected.ir.dxc.hlsl
index de14342..39b6eae 100644
--- a/test/tint/buffer/storage/types/struct_f32.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/buffer/storage/types/struct_f32.wgsl.expected.ir.dxc.hlsl
@@ -1,16 +1,54 @@
-SKIP: FAILED
+struct Inner {
+  float scalar_f32;
+  float3 vec3_f32;
+  float2x4 mat2x4_f32;
+};
+
+struct S {
+  Inner inner;
+};
+
+
+ByteAddressBuffer tint_symbol : register(t0);
+RWByteAddressBuffer tint_symbol_1 : register(u1);
+void v(uint offset, float2x4 obj) {
+  tint_symbol_1.Store4((offset + 0u), asuint(obj[0u]));
+  tint_symbol_1.Store4((offset + 16u), asuint(obj[1u]));
+}
+
+void v_1(uint offset, Inner obj) {
+  tint_symbol_1.Store((offset + 0u), asuint(obj.scalar_f32));
+  tint_symbol_1.Store3((offset + 16u), asuint(obj.vec3_f32));
+  v((offset + 32u), obj.mat2x4_f32);
+}
+
+void v_2(uint offset, S obj) {
+  Inner v_3 = obj.inner;
+  v_1((offset + 0u), v_3);
+}
+
+float2x4 v_4(uint offset) {
+  float4 v_5 = asfloat(tint_symbol.Load4((offset + 0u)));
+  return float2x4(v_5, asfloat(tint_symbol.Load4((offset + 16u))));
+}
+
+Inner v_6(uint offset) {
+  float v_7 = asfloat(tint_symbol.Load((offset + 0u)));
+  float3 v_8 = asfloat(tint_symbol.Load3((offset + 16u)));
+  Inner v_9 = {v_7, v_8, v_4((offset + 32u))};
+  return v_9;
+}
+
+S v_10(uint offset) {
+  Inner v_11 = v_6((offset + 0u));
+  S v_12 = {v_11};
+  return v_12;
+}
 
 [numthreads(1, 1, 1)]
 void main() {
-  S t = tint_symbol;
-  tint_symbol_1 = t;
+  S v_13 = v_10(0u);
+  S t = v_13;
+  v_2(0u, t);
 }
 
-DXC validation failure:
-hlsl.hlsl:3:3: error: unknown type name 'S'
-  S t = tint_symbol;
-  ^
-hlsl.hlsl:4:3: error: use of undeclared identifier 'tint_symbol_1'
-  tint_symbol_1 = t;
-  ^
-
diff --git a/test/tint/buffer/storage/types/struct_f32.wgsl.expected.ir.fxc.hlsl b/test/tint/buffer/storage/types/struct_f32.wgsl.expected.ir.fxc.hlsl
index 1348372..39b6eae 100644
--- a/test/tint/buffer/storage/types/struct_f32.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/buffer/storage/types/struct_f32.wgsl.expected.ir.fxc.hlsl
@@ -1,8 +1,54 @@
-SKIP: FAILED
+struct Inner {
+  float scalar_f32;
+  float3 vec3_f32;
+  float2x4 mat2x4_f32;
+};
+
+struct S {
+  Inner inner;
+};
+
+
+ByteAddressBuffer tint_symbol : register(t0);
+RWByteAddressBuffer tint_symbol_1 : register(u1);
+void v(uint offset, float2x4 obj) {
+  tint_symbol_1.Store4((offset + 0u), asuint(obj[0u]));
+  tint_symbol_1.Store4((offset + 16u), asuint(obj[1u]));
+}
+
+void v_1(uint offset, Inner obj) {
+  tint_symbol_1.Store((offset + 0u), asuint(obj.scalar_f32));
+  tint_symbol_1.Store3((offset + 16u), asuint(obj.vec3_f32));
+  v((offset + 32u), obj.mat2x4_f32);
+}
+
+void v_2(uint offset, S obj) {
+  Inner v_3 = obj.inner;
+  v_1((offset + 0u), v_3);
+}
+
+float2x4 v_4(uint offset) {
+  float4 v_5 = asfloat(tint_symbol.Load4((offset + 0u)));
+  return float2x4(v_5, asfloat(tint_symbol.Load4((offset + 16u))));
+}
+
+Inner v_6(uint offset) {
+  float v_7 = asfloat(tint_symbol.Load((offset + 0u)));
+  float3 v_8 = asfloat(tint_symbol.Load3((offset + 16u)));
+  Inner v_9 = {v_7, v_8, v_4((offset + 32u))};
+  return v_9;
+}
+
+S v_10(uint offset) {
+  Inner v_11 = v_6((offset + 0u));
+  S v_12 = {v_11};
+  return v_12;
+}
 
 [numthreads(1, 1, 1)]
 void main() {
-  S t = tint_symbol;
-  tint_symbol_1 = t;
+  S v_13 = v_10(0u);
+  S t = v_13;
+  v_2(0u, t);
 }
 
diff --git a/test/tint/buffer/storage/types/u32.wgsl.expected.ir.dxc.hlsl b/test/tint/buffer/storage/types/u32.wgsl.expected.ir.dxc.hlsl
index 0d340d9..0994fca 100644
--- a/test/tint/buffer/storage/types/u32.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/buffer/storage/types/u32.wgsl.expected.ir.dxc.hlsl
@@ -1,15 +1,8 @@
-SKIP: FAILED
 
+ByteAddressBuffer tint_symbol : register(t0);
+RWByteAddressBuffer tint_symbol_1 : register(u1);
 [numthreads(1, 1, 1)]
 void main() {
-  tint_symbol_1 = tint_symbol;
+  tint_symbol_1.Store(0u, tint_symbol.Load(0u));
 }
 
-DXC validation failure:
-hlsl.hlsl:3:3: error: use of undeclared identifier 'tint_symbol_1'
-  tint_symbol_1 = tint_symbol;
-  ^
-hlsl.hlsl:3:19: error: use of undeclared identifier 'tint_symbol'
-  tint_symbol_1 = tint_symbol;
-                  ^
-
diff --git a/test/tint/buffer/storage/types/u32.wgsl.expected.ir.fxc.hlsl b/test/tint/buffer/storage/types/u32.wgsl.expected.ir.fxc.hlsl
index d46e160..0994fca 100644
--- a/test/tint/buffer/storage/types/u32.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/buffer/storage/types/u32.wgsl.expected.ir.fxc.hlsl
@@ -1,7 +1,8 @@
-SKIP: FAILED
 
+ByteAddressBuffer tint_symbol : register(t0);
+RWByteAddressBuffer tint_symbol_1 : register(u1);
 [numthreads(1, 1, 1)]
 void main() {
-  tint_symbol_1 = tint_symbol;
+  tint_symbol_1.Store(0u, tint_symbol.Load(0u));
 }
 
diff --git a/test/tint/buffer/storage/types/vec2_f16.wgsl.expected.ir.dxc.hlsl b/test/tint/buffer/storage/types/vec2_f16.wgsl.expected.ir.dxc.hlsl
index 0d340d9..2cded93 100644
--- a/test/tint/buffer/storage/types/vec2_f16.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/buffer/storage/types/vec2_f16.wgsl.expected.ir.dxc.hlsl
@@ -1,15 +1,8 @@
-SKIP: FAILED
 
+ByteAddressBuffer tint_symbol : register(t0);
+RWByteAddressBuffer tint_symbol_1 : register(u1);
 [numthreads(1, 1, 1)]
 void main() {
-  tint_symbol_1 = tint_symbol;
+  tint_symbol_1.Store<vector<float16_t, 2> >(0u, tint_symbol.Load<vector<float16_t, 2> >(0u));
 }
 
-DXC validation failure:
-hlsl.hlsl:3:3: error: use of undeclared identifier 'tint_symbol_1'
-  tint_symbol_1 = tint_symbol;
-  ^
-hlsl.hlsl:3:19: error: use of undeclared identifier 'tint_symbol'
-  tint_symbol_1 = tint_symbol;
-                  ^
-
diff --git a/test/tint/buffer/storage/types/vec2_f16.wgsl.expected.ir.fxc.hlsl b/test/tint/buffer/storage/types/vec2_f16.wgsl.expected.ir.fxc.hlsl
index d46e160..1b3839d 100644
--- a/test/tint/buffer/storage/types/vec2_f16.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/buffer/storage/types/vec2_f16.wgsl.expected.ir.fxc.hlsl
@@ -1,7 +1,13 @@
 SKIP: FAILED
 
+
+ByteAddressBuffer tint_symbol : register(t0);
+RWByteAddressBuffer tint_symbol_1 : register(u1);
 [numthreads(1, 1, 1)]
 void main() {
-  tint_symbol_1 = tint_symbol;
+  tint_symbol_1.Store<vector<float16_t, 2> >(0u, tint_symbol.Load<vector<float16_t, 2> >(0u));
 }
 
+FXC validation failure:
+c:\src\dawn\Shader@0x0000027BEF4FFFA0(6,3-21): error X3018: invalid subscript 'Store'
+
diff --git a/test/tint/buffer/storage/types/vec2_f32.wgsl.expected.ir.dxc.hlsl b/test/tint/buffer/storage/types/vec2_f32.wgsl.expected.ir.dxc.hlsl
index 0d340d9..e200a82 100644
--- a/test/tint/buffer/storage/types/vec2_f32.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/buffer/storage/types/vec2_f32.wgsl.expected.ir.dxc.hlsl
@@ -1,15 +1,8 @@
-SKIP: FAILED
 
+ByteAddressBuffer tint_symbol : register(t0);
+RWByteAddressBuffer tint_symbol_1 : register(u1);
 [numthreads(1, 1, 1)]
 void main() {
-  tint_symbol_1 = tint_symbol;
+  tint_symbol_1.Store2(0u, asuint(asfloat(tint_symbol.Load2(0u))));
 }
 
-DXC validation failure:
-hlsl.hlsl:3:3: error: use of undeclared identifier 'tint_symbol_1'
-  tint_symbol_1 = tint_symbol;
-  ^
-hlsl.hlsl:3:19: error: use of undeclared identifier 'tint_symbol'
-  tint_symbol_1 = tint_symbol;
-                  ^
-
diff --git a/test/tint/buffer/storage/types/vec2_f32.wgsl.expected.ir.fxc.hlsl b/test/tint/buffer/storage/types/vec2_f32.wgsl.expected.ir.fxc.hlsl
index d46e160..e200a82 100644
--- a/test/tint/buffer/storage/types/vec2_f32.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/buffer/storage/types/vec2_f32.wgsl.expected.ir.fxc.hlsl
@@ -1,7 +1,8 @@
-SKIP: FAILED
 
+ByteAddressBuffer tint_symbol : register(t0);
+RWByteAddressBuffer tint_symbol_1 : register(u1);
 [numthreads(1, 1, 1)]
 void main() {
-  tint_symbol_1 = tint_symbol;
+  tint_symbol_1.Store2(0u, asuint(asfloat(tint_symbol.Load2(0u))));
 }
 
diff --git a/test/tint/buffer/storage/types/vec2_i32.wgsl.expected.ir.dxc.hlsl b/test/tint/buffer/storage/types/vec2_i32.wgsl.expected.ir.dxc.hlsl
index 0d340d9..81c08fd 100644
--- a/test/tint/buffer/storage/types/vec2_i32.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/buffer/storage/types/vec2_i32.wgsl.expected.ir.dxc.hlsl
@@ -1,15 +1,8 @@
-SKIP: FAILED
 
+ByteAddressBuffer tint_symbol : register(t0);
+RWByteAddressBuffer tint_symbol_1 : register(u1);
 [numthreads(1, 1, 1)]
 void main() {
-  tint_symbol_1 = tint_symbol;
+  tint_symbol_1.Store2(0u, asuint(asint(tint_symbol.Load2(0u))));
 }
 
-DXC validation failure:
-hlsl.hlsl:3:3: error: use of undeclared identifier 'tint_symbol_1'
-  tint_symbol_1 = tint_symbol;
-  ^
-hlsl.hlsl:3:19: error: use of undeclared identifier 'tint_symbol'
-  tint_symbol_1 = tint_symbol;
-                  ^
-
diff --git a/test/tint/buffer/storage/types/vec2_i32.wgsl.expected.ir.fxc.hlsl b/test/tint/buffer/storage/types/vec2_i32.wgsl.expected.ir.fxc.hlsl
index d46e160..81c08fd 100644
--- a/test/tint/buffer/storage/types/vec2_i32.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/buffer/storage/types/vec2_i32.wgsl.expected.ir.fxc.hlsl
@@ -1,7 +1,8 @@
-SKIP: FAILED
 
+ByteAddressBuffer tint_symbol : register(t0);
+RWByteAddressBuffer tint_symbol_1 : register(u1);
 [numthreads(1, 1, 1)]
 void main() {
-  tint_symbol_1 = tint_symbol;
+  tint_symbol_1.Store2(0u, asuint(asint(tint_symbol.Load2(0u))));
 }
 
diff --git a/test/tint/buffer/storage/types/vec2_u32.wgsl.expected.ir.dxc.hlsl b/test/tint/buffer/storage/types/vec2_u32.wgsl.expected.ir.dxc.hlsl
index 0d340d9..b2369f4 100644
--- a/test/tint/buffer/storage/types/vec2_u32.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/buffer/storage/types/vec2_u32.wgsl.expected.ir.dxc.hlsl
@@ -1,15 +1,8 @@
-SKIP: FAILED
 
+ByteAddressBuffer tint_symbol : register(t0);
+RWByteAddressBuffer tint_symbol_1 : register(u1);
 [numthreads(1, 1, 1)]
 void main() {
-  tint_symbol_1 = tint_symbol;
+  tint_symbol_1.Store2(0u, tint_symbol.Load2(0u));
 }
 
-DXC validation failure:
-hlsl.hlsl:3:3: error: use of undeclared identifier 'tint_symbol_1'
-  tint_symbol_1 = tint_symbol;
-  ^
-hlsl.hlsl:3:19: error: use of undeclared identifier 'tint_symbol'
-  tint_symbol_1 = tint_symbol;
-                  ^
-
diff --git a/test/tint/buffer/storage/types/vec2_u32.wgsl.expected.ir.fxc.hlsl b/test/tint/buffer/storage/types/vec2_u32.wgsl.expected.ir.fxc.hlsl
index d46e160..b2369f4 100644
--- a/test/tint/buffer/storage/types/vec2_u32.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/buffer/storage/types/vec2_u32.wgsl.expected.ir.fxc.hlsl
@@ -1,7 +1,8 @@
-SKIP: FAILED
 
+ByteAddressBuffer tint_symbol : register(t0);
+RWByteAddressBuffer tint_symbol_1 : register(u1);
 [numthreads(1, 1, 1)]
 void main() {
-  tint_symbol_1 = tint_symbol;
+  tint_symbol_1.Store2(0u, tint_symbol.Load2(0u));
 }
 
diff --git a/test/tint/buffer/storage/types/vec3_f16.wgsl.expected.ir.dxc.hlsl b/test/tint/buffer/storage/types/vec3_f16.wgsl.expected.ir.dxc.hlsl
index 0d340d9..e14562e 100644
--- a/test/tint/buffer/storage/types/vec3_f16.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/buffer/storage/types/vec3_f16.wgsl.expected.ir.dxc.hlsl
@@ -1,15 +1,8 @@
-SKIP: FAILED
 
+ByteAddressBuffer tint_symbol : register(t0);
+RWByteAddressBuffer tint_symbol_1 : register(u1);
 [numthreads(1, 1, 1)]
 void main() {
-  tint_symbol_1 = tint_symbol;
+  tint_symbol_1.Store<vector<float16_t, 3> >(0u, tint_symbol.Load<vector<float16_t, 3> >(0u));
 }
 
-DXC validation failure:
-hlsl.hlsl:3:3: error: use of undeclared identifier 'tint_symbol_1'
-  tint_symbol_1 = tint_symbol;
-  ^
-hlsl.hlsl:3:19: error: use of undeclared identifier 'tint_symbol'
-  tint_symbol_1 = tint_symbol;
-                  ^
-
diff --git a/test/tint/buffer/storage/types/vec3_f16.wgsl.expected.ir.fxc.hlsl b/test/tint/buffer/storage/types/vec3_f16.wgsl.expected.ir.fxc.hlsl
index d46e160..d53e20f 100644
--- a/test/tint/buffer/storage/types/vec3_f16.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/buffer/storage/types/vec3_f16.wgsl.expected.ir.fxc.hlsl
@@ -1,7 +1,13 @@
 SKIP: FAILED
 
+
+ByteAddressBuffer tint_symbol : register(t0);
+RWByteAddressBuffer tint_symbol_1 : register(u1);
 [numthreads(1, 1, 1)]
 void main() {
-  tint_symbol_1 = tint_symbol;
+  tint_symbol_1.Store<vector<float16_t, 3> >(0u, tint_symbol.Load<vector<float16_t, 3> >(0u));
 }
 
+FXC validation failure:
+c:\src\dawn\Shader@0x000001C6296A0D10(6,3-21): error X3018: invalid subscript 'Store'
+
diff --git a/test/tint/buffer/storage/types/vec3_f32.wgsl.expected.ir.dxc.hlsl b/test/tint/buffer/storage/types/vec3_f32.wgsl.expected.ir.dxc.hlsl
index 0d340d9..c5021e4 100644
--- a/test/tint/buffer/storage/types/vec3_f32.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/buffer/storage/types/vec3_f32.wgsl.expected.ir.dxc.hlsl
@@ -1,15 +1,8 @@
-SKIP: FAILED
 
+ByteAddressBuffer tint_symbol : register(t0);
+RWByteAddressBuffer tint_symbol_1 : register(u1);
 [numthreads(1, 1, 1)]
 void main() {
-  tint_symbol_1 = tint_symbol;
+  tint_symbol_1.Store3(0u, asuint(asfloat(tint_symbol.Load3(0u))));
 }
 
-DXC validation failure:
-hlsl.hlsl:3:3: error: use of undeclared identifier 'tint_symbol_1'
-  tint_symbol_1 = tint_symbol;
-  ^
-hlsl.hlsl:3:19: error: use of undeclared identifier 'tint_symbol'
-  tint_symbol_1 = tint_symbol;
-                  ^
-
diff --git a/test/tint/buffer/storage/types/vec3_f32.wgsl.expected.ir.fxc.hlsl b/test/tint/buffer/storage/types/vec3_f32.wgsl.expected.ir.fxc.hlsl
index d46e160..c5021e4 100644
--- a/test/tint/buffer/storage/types/vec3_f32.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/buffer/storage/types/vec3_f32.wgsl.expected.ir.fxc.hlsl
@@ -1,7 +1,8 @@
-SKIP: FAILED
 
+ByteAddressBuffer tint_symbol : register(t0);
+RWByteAddressBuffer tint_symbol_1 : register(u1);
 [numthreads(1, 1, 1)]
 void main() {
-  tint_symbol_1 = tint_symbol;
+  tint_symbol_1.Store3(0u, asuint(asfloat(tint_symbol.Load3(0u))));
 }
 
diff --git a/test/tint/buffer/storage/types/vec3_i32.wgsl.expected.ir.dxc.hlsl b/test/tint/buffer/storage/types/vec3_i32.wgsl.expected.ir.dxc.hlsl
index 0d340d9..b2439e4 100644
--- a/test/tint/buffer/storage/types/vec3_i32.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/buffer/storage/types/vec3_i32.wgsl.expected.ir.dxc.hlsl
@@ -1,15 +1,8 @@
-SKIP: FAILED
 
+ByteAddressBuffer tint_symbol : register(t0);
+RWByteAddressBuffer tint_symbol_1 : register(u1);
 [numthreads(1, 1, 1)]
 void main() {
-  tint_symbol_1 = tint_symbol;
+  tint_symbol_1.Store3(0u, asuint(asint(tint_symbol.Load3(0u))));
 }
 
-DXC validation failure:
-hlsl.hlsl:3:3: error: use of undeclared identifier 'tint_symbol_1'
-  tint_symbol_1 = tint_symbol;
-  ^
-hlsl.hlsl:3:19: error: use of undeclared identifier 'tint_symbol'
-  tint_symbol_1 = tint_symbol;
-                  ^
-
diff --git a/test/tint/buffer/storage/types/vec3_i32.wgsl.expected.ir.fxc.hlsl b/test/tint/buffer/storage/types/vec3_i32.wgsl.expected.ir.fxc.hlsl
index d46e160..b2439e4 100644
--- a/test/tint/buffer/storage/types/vec3_i32.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/buffer/storage/types/vec3_i32.wgsl.expected.ir.fxc.hlsl
@@ -1,7 +1,8 @@
-SKIP: FAILED
 
+ByteAddressBuffer tint_symbol : register(t0);
+RWByteAddressBuffer tint_symbol_1 : register(u1);
 [numthreads(1, 1, 1)]
 void main() {
-  tint_symbol_1 = tint_symbol;
+  tint_symbol_1.Store3(0u, asuint(asint(tint_symbol.Load3(0u))));
 }
 
diff --git a/test/tint/buffer/storage/types/vec3_u32.wgsl.expected.ir.dxc.hlsl b/test/tint/buffer/storage/types/vec3_u32.wgsl.expected.ir.dxc.hlsl
index 0d340d9..62a9279 100644
--- a/test/tint/buffer/storage/types/vec3_u32.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/buffer/storage/types/vec3_u32.wgsl.expected.ir.dxc.hlsl
@@ -1,15 +1,8 @@
-SKIP: FAILED
 
+ByteAddressBuffer tint_symbol : register(t0);
+RWByteAddressBuffer tint_symbol_1 : register(u1);
 [numthreads(1, 1, 1)]
 void main() {
-  tint_symbol_1 = tint_symbol;
+  tint_symbol_1.Store3(0u, tint_symbol.Load3(0u));
 }
 
-DXC validation failure:
-hlsl.hlsl:3:3: error: use of undeclared identifier 'tint_symbol_1'
-  tint_symbol_1 = tint_symbol;
-  ^
-hlsl.hlsl:3:19: error: use of undeclared identifier 'tint_symbol'
-  tint_symbol_1 = tint_symbol;
-                  ^
-
diff --git a/test/tint/buffer/storage/types/vec3_u32.wgsl.expected.ir.fxc.hlsl b/test/tint/buffer/storage/types/vec3_u32.wgsl.expected.ir.fxc.hlsl
index d46e160..62a9279 100644
--- a/test/tint/buffer/storage/types/vec3_u32.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/buffer/storage/types/vec3_u32.wgsl.expected.ir.fxc.hlsl
@@ -1,7 +1,8 @@
-SKIP: FAILED
 
+ByteAddressBuffer tint_symbol : register(t0);
+RWByteAddressBuffer tint_symbol_1 : register(u1);
 [numthreads(1, 1, 1)]
 void main() {
-  tint_symbol_1 = tint_symbol;
+  tint_symbol_1.Store3(0u, tint_symbol.Load3(0u));
 }
 
diff --git a/test/tint/buffer/storage/types/vec4_f16.wgsl.expected.ir.dxc.hlsl b/test/tint/buffer/storage/types/vec4_f16.wgsl.expected.ir.dxc.hlsl
index 0d340d9..7618bc7 100644
--- a/test/tint/buffer/storage/types/vec4_f16.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/buffer/storage/types/vec4_f16.wgsl.expected.ir.dxc.hlsl
@@ -1,15 +1,8 @@
-SKIP: FAILED
 
+ByteAddressBuffer tint_symbol : register(t0);
+RWByteAddressBuffer tint_symbol_1 : register(u1);
 [numthreads(1, 1, 1)]
 void main() {
-  tint_symbol_1 = tint_symbol;
+  tint_symbol_1.Store<vector<float16_t, 4> >(0u, tint_symbol.Load<vector<float16_t, 4> >(0u));
 }
 
-DXC validation failure:
-hlsl.hlsl:3:3: error: use of undeclared identifier 'tint_symbol_1'
-  tint_symbol_1 = tint_symbol;
-  ^
-hlsl.hlsl:3:19: error: use of undeclared identifier 'tint_symbol'
-  tint_symbol_1 = tint_symbol;
-                  ^
-
diff --git a/test/tint/buffer/storage/types/vec4_f16.wgsl.expected.ir.fxc.hlsl b/test/tint/buffer/storage/types/vec4_f16.wgsl.expected.ir.fxc.hlsl
index d46e160..a05018c 100644
--- a/test/tint/buffer/storage/types/vec4_f16.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/buffer/storage/types/vec4_f16.wgsl.expected.ir.fxc.hlsl
@@ -1,7 +1,13 @@
 SKIP: FAILED
 
+
+ByteAddressBuffer tint_symbol : register(t0);
+RWByteAddressBuffer tint_symbol_1 : register(u1);
 [numthreads(1, 1, 1)]
 void main() {
-  tint_symbol_1 = tint_symbol;
+  tint_symbol_1.Store<vector<float16_t, 4> >(0u, tint_symbol.Load<vector<float16_t, 4> >(0u));
 }
 
+FXC validation failure:
+c:\src\dawn\Shader@0x000001FCFAFF0580(6,3-21): error X3018: invalid subscript 'Store'
+
diff --git a/test/tint/buffer/storage/types/vec4_f32.wgsl.expected.ir.dxc.hlsl b/test/tint/buffer/storage/types/vec4_f32.wgsl.expected.ir.dxc.hlsl
index 0d340d9..dffe141 100644
--- a/test/tint/buffer/storage/types/vec4_f32.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/buffer/storage/types/vec4_f32.wgsl.expected.ir.dxc.hlsl
@@ -1,15 +1,8 @@
-SKIP: FAILED
 
+ByteAddressBuffer tint_symbol : register(t0);
+RWByteAddressBuffer tint_symbol_1 : register(u1);
 [numthreads(1, 1, 1)]
 void main() {
-  tint_symbol_1 = tint_symbol;
+  tint_symbol_1.Store4(0u, asuint(asfloat(tint_symbol.Load4(0u))));
 }
 
-DXC validation failure:
-hlsl.hlsl:3:3: error: use of undeclared identifier 'tint_symbol_1'
-  tint_symbol_1 = tint_symbol;
-  ^
-hlsl.hlsl:3:19: error: use of undeclared identifier 'tint_symbol'
-  tint_symbol_1 = tint_symbol;
-                  ^
-
diff --git a/test/tint/buffer/storage/types/vec4_f32.wgsl.expected.ir.fxc.hlsl b/test/tint/buffer/storage/types/vec4_f32.wgsl.expected.ir.fxc.hlsl
index d46e160..dffe141 100644
--- a/test/tint/buffer/storage/types/vec4_f32.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/buffer/storage/types/vec4_f32.wgsl.expected.ir.fxc.hlsl
@@ -1,7 +1,8 @@
-SKIP: FAILED
 
+ByteAddressBuffer tint_symbol : register(t0);
+RWByteAddressBuffer tint_symbol_1 : register(u1);
 [numthreads(1, 1, 1)]
 void main() {
-  tint_symbol_1 = tint_symbol;
+  tint_symbol_1.Store4(0u, asuint(asfloat(tint_symbol.Load4(0u))));
 }
 
diff --git a/test/tint/buffer/storage/types/vec4_i32.wgsl.expected.ir.dxc.hlsl b/test/tint/buffer/storage/types/vec4_i32.wgsl.expected.ir.dxc.hlsl
index 0d340d9..e96f574 100644
--- a/test/tint/buffer/storage/types/vec4_i32.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/buffer/storage/types/vec4_i32.wgsl.expected.ir.dxc.hlsl
@@ -1,15 +1,8 @@
-SKIP: FAILED
 
+ByteAddressBuffer tint_symbol : register(t0);
+RWByteAddressBuffer tint_symbol_1 : register(u1);
 [numthreads(1, 1, 1)]
 void main() {
-  tint_symbol_1 = tint_symbol;
+  tint_symbol_1.Store4(0u, asuint(asint(tint_symbol.Load4(0u))));
 }
 
-DXC validation failure:
-hlsl.hlsl:3:3: error: use of undeclared identifier 'tint_symbol_1'
-  tint_symbol_1 = tint_symbol;
-  ^
-hlsl.hlsl:3:19: error: use of undeclared identifier 'tint_symbol'
-  tint_symbol_1 = tint_symbol;
-                  ^
-
diff --git a/test/tint/buffer/storage/types/vec4_i32.wgsl.expected.ir.fxc.hlsl b/test/tint/buffer/storage/types/vec4_i32.wgsl.expected.ir.fxc.hlsl
index d46e160..e96f574 100644
--- a/test/tint/buffer/storage/types/vec4_i32.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/buffer/storage/types/vec4_i32.wgsl.expected.ir.fxc.hlsl
@@ -1,7 +1,8 @@
-SKIP: FAILED
 
+ByteAddressBuffer tint_symbol : register(t0);
+RWByteAddressBuffer tint_symbol_1 : register(u1);
 [numthreads(1, 1, 1)]
 void main() {
-  tint_symbol_1 = tint_symbol;
+  tint_symbol_1.Store4(0u, asuint(asint(tint_symbol.Load4(0u))));
 }
 
diff --git a/test/tint/buffer/storage/types/vec4_u32.wgsl.expected.ir.dxc.hlsl b/test/tint/buffer/storage/types/vec4_u32.wgsl.expected.ir.dxc.hlsl
index 0d340d9..8bd7535 100644
--- a/test/tint/buffer/storage/types/vec4_u32.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/buffer/storage/types/vec4_u32.wgsl.expected.ir.dxc.hlsl
@@ -1,15 +1,8 @@
-SKIP: FAILED
 
+ByteAddressBuffer tint_symbol : register(t0);
+RWByteAddressBuffer tint_symbol_1 : register(u1);
 [numthreads(1, 1, 1)]
 void main() {
-  tint_symbol_1 = tint_symbol;
+  tint_symbol_1.Store4(0u, tint_symbol.Load4(0u));
 }
 
-DXC validation failure:
-hlsl.hlsl:3:3: error: use of undeclared identifier 'tint_symbol_1'
-  tint_symbol_1 = tint_symbol;
-  ^
-hlsl.hlsl:3:19: error: use of undeclared identifier 'tint_symbol'
-  tint_symbol_1 = tint_symbol;
-                  ^
-
diff --git a/test/tint/buffer/storage/types/vec4_u32.wgsl.expected.ir.fxc.hlsl b/test/tint/buffer/storage/types/vec4_u32.wgsl.expected.ir.fxc.hlsl
index d46e160..8bd7535 100644
--- a/test/tint/buffer/storage/types/vec4_u32.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/buffer/storage/types/vec4_u32.wgsl.expected.ir.fxc.hlsl
@@ -1,7 +1,8 @@
-SKIP: FAILED
 
+ByteAddressBuffer tint_symbol : register(t0);
+RWByteAddressBuffer tint_symbol_1 : register(u1);
 [numthreads(1, 1, 1)]
 void main() {
-  tint_symbol_1 = tint_symbol;
+  tint_symbol_1.Store4(0u, tint_symbol.Load4(0u));
 }
 
diff --git a/test/tint/buffer/uniform/dynamic_index/read.wgsl.expected.ir.dxc.hlsl b/test/tint/buffer/uniform/dynamic_index/read.wgsl.expected.ir.dxc.hlsl
index 3f437dc..d3d34c1 100644
--- a/test/tint/buffer/uniform/dynamic_index/read.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/buffer/uniform/dynamic_index/read.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,156 @@
-SKIP: FAILED
+struct main_inputs {
+  uint idx : SV_GroupIndex;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Access
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+
+cbuffer cbuffer_ub : register(b0) {
+  uint4 ub[272];
+};
+RWByteAddressBuffer s : register(u1);
+int tint_f32_to_i32(float value) {
+  return (((value <= 2147483520.0f)) ? ((((value >= -2147483648.0f)) ? (int(value)) : (-2147483648))) : (2147483647));
+}
+
+typedef float3 ary_ret[2];
+ary_ret v(uint start_byte_offset) {
+  float3 a[2] = (float3[2])0;
+  {
+    uint v_1 = 0u;
+    v_1 = 0u;
+    while(true) {
+      uint v_2 = v_1;
+      if ((v_2 >= 2u)) {
+        break;
+      }
+      a[v_2] = asfloat(ub[((start_byte_offset + (v_2 * 16u)) / 16u)].xyz);
+      {
+        v_1 = (v_2 + 1u);
+      }
+      continue;
+    }
+  }
+  float3 v_3[2] = a;
+  return v_3;
+}
+
+float4x4 v_4(uint start_byte_offset) {
+  float4 v_5 = asfloat(ub[(start_byte_offset / 16u)]);
+  float4 v_6 = asfloat(ub[((16u + start_byte_offset) / 16u)]);
+  float4 v_7 = asfloat(ub[((32u + start_byte_offset) / 16u)]);
+  return float4x4(v_5, v_6, v_7, asfloat(ub[((48u + start_byte_offset) / 16u)]));
+}
+
+float4x3 v_8(uint start_byte_offset) {
+  float3 v_9 = asfloat(ub[(start_byte_offset / 16u)].xyz);
+  float3 v_10 = asfloat(ub[((16u + start_byte_offset) / 16u)].xyz);
+  float3 v_11 = asfloat(ub[((32u + start_byte_offset) / 16u)].xyz);
+  return float4x3(v_9, v_10, v_11, asfloat(ub[((48u + start_byte_offset) / 16u)].xyz));
+}
+
+float4x2 v_12(uint start_byte_offset) {
+  uint4 v_13 = ub[(start_byte_offset / 16u)];
+  float2 v_14 = asfloat((((((start_byte_offset % 16u) / 4u) == 2u)) ? (v_13.zw) : (v_13.xy)));
+  uint4 v_15 = ub[((8u + start_byte_offset) / 16u)];
+  float2 v_16 = asfloat(((((((8u + start_byte_offset) % 16u) / 4u) == 2u)) ? (v_15.zw) : (v_15.xy)));
+  uint4 v_17 = ub[((16u + start_byte_offset) / 16u)];
+  float2 v_18 = asfloat(((((((16u + start_byte_offset) % 16u) / 4u) == 2u)) ? (v_17.zw) : (v_17.xy)));
+  uint4 v_19 = ub[((24u + start_byte_offset) / 16u)];
+  return float4x2(v_14, v_16, v_18, asfloat(((((((24u + start_byte_offset) % 16u) / 4u) == 2u)) ? (v_19.zw) : (v_19.xy))));
+}
+
+float3x4 v_20(uint start_byte_offset) {
+  float4 v_21 = asfloat(ub[(start_byte_offset / 16u)]);
+  float4 v_22 = asfloat(ub[((16u + start_byte_offset) / 16u)]);
+  return float3x4(v_21, v_22, asfloat(ub[((32u + start_byte_offset) / 16u)]));
+}
+
+float3x3 v_23(uint start_byte_offset) {
+  float3 v_24 = asfloat(ub[(start_byte_offset / 16u)].xyz);
+  float3 v_25 = asfloat(ub[((16u + start_byte_offset) / 16u)].xyz);
+  return float3x3(v_24, v_25, asfloat(ub[((32u + start_byte_offset) / 16u)].xyz));
+}
+
+float3x2 v_26(uint start_byte_offset) {
+  uint4 v_27 = ub[(start_byte_offset / 16u)];
+  float2 v_28 = asfloat((((((start_byte_offset % 16u) / 4u) == 2u)) ? (v_27.zw) : (v_27.xy)));
+  uint4 v_29 = ub[((8u + start_byte_offset) / 16u)];
+  float2 v_30 = asfloat(((((((8u + start_byte_offset) % 16u) / 4u) == 2u)) ? (v_29.zw) : (v_29.xy)));
+  uint4 v_31 = ub[((16u + start_byte_offset) / 16u)];
+  return float3x2(v_28, v_30, asfloat(((((((16u + start_byte_offset) % 16u) / 4u) == 2u)) ? (v_31.zw) : (v_31.xy))));
+}
+
+float2x4 v_32(uint start_byte_offset) {
+  float4 v_33 = asfloat(ub[(start_byte_offset / 16u)]);
+  return float2x4(v_33, asfloat(ub[((16u + start_byte_offset) / 16u)]));
+}
+
+float2x3 v_34(uint start_byte_offset) {
+  float3 v_35 = asfloat(ub[(start_byte_offset / 16u)].xyz);
+  return float2x3(v_35, asfloat(ub[((16u + start_byte_offset) / 16u)].xyz));
+}
+
+float2x2 v_36(uint start_byte_offset) {
+  uint4 v_37 = ub[(start_byte_offset / 16u)];
+  float2 v_38 = asfloat((((((start_byte_offset % 16u) / 4u) == 2u)) ? (v_37.zw) : (v_37.xy)));
+  uint4 v_39 = ub[((8u + start_byte_offset) / 16u)];
+  return float2x2(v_38, asfloat(((((((8u + start_byte_offset) % 16u) / 4u) == 2u)) ? (v_39.zw) : (v_39.xy))));
+}
+
+void main_inner(uint idx) {
+  uint v_40 = (544u * uint(idx));
+  float scalar_f32 = asfloat(ub[(v_40 / 16u)][((v_40 % 16u) / 4u)]);
+  uint v_41 = (4u + (544u * uint(idx)));
+  int scalar_i32 = asint(ub[(v_41 / 16u)][((v_41 % 16u) / 4u)]);
+  uint v_42 = (8u + (544u * uint(idx)));
+  uint scalar_u32 = ub[(v_42 / 16u)][((v_42 % 16u) / 4u)];
+  uint v_43 = (16u + (544u * uint(idx)));
+  uint4 v_44 = ub[(v_43 / 16u)];
+  float2 vec2_f32 = asfloat((((((v_43 % 16u) / 4u) == 2u)) ? (v_44.zw) : (v_44.xy)));
+  uint v_45 = (24u + (544u * uint(idx)));
+  uint4 v_46 = ub[(v_45 / 16u)];
+  int2 vec2_i32 = asint((((((v_45 % 16u) / 4u) == 2u)) ? (v_46.zw) : (v_46.xy)));
+  uint v_47 = (32u + (544u * uint(idx)));
+  uint4 v_48 = ub[(v_47 / 16u)];
+  uint2 vec2_u32 = (((((v_47 % 16u) / 4u) == 2u)) ? (v_48.zw) : (v_48.xy));
+  float3 vec3_f32 = asfloat(ub[((48u + (544u * uint(idx))) / 16u)].xyz);
+  int3 vec3_i32 = asint(ub[((64u + (544u * uint(idx))) / 16u)].xyz);
+  uint3 vec3_u32 = ub[((80u + (544u * uint(idx))) / 16u)].xyz;
+  float4 vec4_f32 = asfloat(ub[((96u + (544u * uint(idx))) / 16u)]);
+  int4 vec4_i32 = asint(ub[((112u + (544u * uint(idx))) / 16u)]);
+  uint4 vec4_u32 = ub[((128u + (544u * uint(idx))) / 16u)];
+  float2x2 mat2x2_f32 = v_36((144u + (544u * uint(idx))));
+  float2x3 mat2x3_f32 = v_34((160u + (544u * uint(idx))));
+  float2x4 mat2x4_f32 = v_32((192u + (544u * uint(idx))));
+  float3x2 mat3x2_f32 = v_26((224u + (544u * uint(idx))));
+  float3x3 mat3x3_f32 = v_23((256u + (544u * uint(idx))));
+  float3x4 mat3x4_f32 = v_20((304u + (544u * uint(idx))));
+  float4x2 mat4x2_f32 = v_12((352u + (544u * uint(idx))));
+  float4x3 mat4x3_f32 = v_8((384u + (544u * uint(idx))));
+  float4x4 mat4x4_f32 = v_4((448u + (544u * uint(idx))));
+  float3 v_49[2] = v((512u + (544u * uint(idx))));
+  int v_50 = (tint_f32_to_i32(scalar_f32) + scalar_i32);
+  int v_51 = (v_50 + int(scalar_u32));
+  int v_52 = ((v_51 + tint_f32_to_i32(vec2_f32[0u])) + vec2_i32[0u]);
+  int v_53 = (v_52 + int(vec2_u32[0u]));
+  int v_54 = ((v_53 + tint_f32_to_i32(vec3_f32[1u])) + vec3_i32[1u]);
+  int v_55 = (v_54 + int(vec3_u32[1u]));
+  int v_56 = ((v_55 + tint_f32_to_i32(vec4_f32[2u])) + vec4_i32[2u]);
+  int v_57 = (v_56 + int(vec4_u32[2u]));
+  int v_58 = (v_57 + tint_f32_to_i32(mat2x2_f32[0][0u]));
+  int v_59 = (v_58 + tint_f32_to_i32(mat2x3_f32[0][0u]));
+  int v_60 = (v_59 + tint_f32_to_i32(mat2x4_f32[0][0u]));
+  int v_61 = (v_60 + tint_f32_to_i32(mat3x2_f32[0][0u]));
+  int v_62 = (v_61 + tint_f32_to_i32(mat3x3_f32[0][0u]));
+  int v_63 = (v_62 + tint_f32_to_i32(mat3x4_f32[0][0u]));
+  int v_64 = (v_63 + tint_f32_to_i32(mat4x2_f32[0][0u]));
+  int v_65 = (v_64 + tint_f32_to_i32(mat4x3_f32[0][0u]));
+  int v_66 = (v_65 + tint_f32_to_i32(mat4x4_f32[0][0u]));
+  float3 arr2_vec3_f32[2] = v_49;
+  s.Store(0u, asuint((v_66 + tint_f32_to_i32(arr2_vec3_f32[0][0u]))));
+}
+
+[numthreads(1, 1, 1)]
+void main(main_inputs inputs) {
+  main_inner(inputs.idx);
+}
+
diff --git a/test/tint/buffer/uniform/dynamic_index/read.wgsl.expected.ir.fxc.hlsl b/test/tint/buffer/uniform/dynamic_index/read.wgsl.expected.ir.fxc.hlsl
index 3f437dc..d3d34c1 100644
--- a/test/tint/buffer/uniform/dynamic_index/read.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/buffer/uniform/dynamic_index/read.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,156 @@
-SKIP: FAILED
+struct main_inputs {
+  uint idx : SV_GroupIndex;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Access
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+
+cbuffer cbuffer_ub : register(b0) {
+  uint4 ub[272];
+};
+RWByteAddressBuffer s : register(u1);
+int tint_f32_to_i32(float value) {
+  return (((value <= 2147483520.0f)) ? ((((value >= -2147483648.0f)) ? (int(value)) : (-2147483648))) : (2147483647));
+}
+
+typedef float3 ary_ret[2];
+ary_ret v(uint start_byte_offset) {
+  float3 a[2] = (float3[2])0;
+  {
+    uint v_1 = 0u;
+    v_1 = 0u;
+    while(true) {
+      uint v_2 = v_1;
+      if ((v_2 >= 2u)) {
+        break;
+      }
+      a[v_2] = asfloat(ub[((start_byte_offset + (v_2 * 16u)) / 16u)].xyz);
+      {
+        v_1 = (v_2 + 1u);
+      }
+      continue;
+    }
+  }
+  float3 v_3[2] = a;
+  return v_3;
+}
+
+float4x4 v_4(uint start_byte_offset) {
+  float4 v_5 = asfloat(ub[(start_byte_offset / 16u)]);
+  float4 v_6 = asfloat(ub[((16u + start_byte_offset) / 16u)]);
+  float4 v_7 = asfloat(ub[((32u + start_byte_offset) / 16u)]);
+  return float4x4(v_5, v_6, v_7, asfloat(ub[((48u + start_byte_offset) / 16u)]));
+}
+
+float4x3 v_8(uint start_byte_offset) {
+  float3 v_9 = asfloat(ub[(start_byte_offset / 16u)].xyz);
+  float3 v_10 = asfloat(ub[((16u + start_byte_offset) / 16u)].xyz);
+  float3 v_11 = asfloat(ub[((32u + start_byte_offset) / 16u)].xyz);
+  return float4x3(v_9, v_10, v_11, asfloat(ub[((48u + start_byte_offset) / 16u)].xyz));
+}
+
+float4x2 v_12(uint start_byte_offset) {
+  uint4 v_13 = ub[(start_byte_offset / 16u)];
+  float2 v_14 = asfloat((((((start_byte_offset % 16u) / 4u) == 2u)) ? (v_13.zw) : (v_13.xy)));
+  uint4 v_15 = ub[((8u + start_byte_offset) / 16u)];
+  float2 v_16 = asfloat(((((((8u + start_byte_offset) % 16u) / 4u) == 2u)) ? (v_15.zw) : (v_15.xy)));
+  uint4 v_17 = ub[((16u + start_byte_offset) / 16u)];
+  float2 v_18 = asfloat(((((((16u + start_byte_offset) % 16u) / 4u) == 2u)) ? (v_17.zw) : (v_17.xy)));
+  uint4 v_19 = ub[((24u + start_byte_offset) / 16u)];
+  return float4x2(v_14, v_16, v_18, asfloat(((((((24u + start_byte_offset) % 16u) / 4u) == 2u)) ? (v_19.zw) : (v_19.xy))));
+}
+
+float3x4 v_20(uint start_byte_offset) {
+  float4 v_21 = asfloat(ub[(start_byte_offset / 16u)]);
+  float4 v_22 = asfloat(ub[((16u + start_byte_offset) / 16u)]);
+  return float3x4(v_21, v_22, asfloat(ub[((32u + start_byte_offset) / 16u)]));
+}
+
+float3x3 v_23(uint start_byte_offset) {
+  float3 v_24 = asfloat(ub[(start_byte_offset / 16u)].xyz);
+  float3 v_25 = asfloat(ub[((16u + start_byte_offset) / 16u)].xyz);
+  return float3x3(v_24, v_25, asfloat(ub[((32u + start_byte_offset) / 16u)].xyz));
+}
+
+float3x2 v_26(uint start_byte_offset) {
+  uint4 v_27 = ub[(start_byte_offset / 16u)];
+  float2 v_28 = asfloat((((((start_byte_offset % 16u) / 4u) == 2u)) ? (v_27.zw) : (v_27.xy)));
+  uint4 v_29 = ub[((8u + start_byte_offset) / 16u)];
+  float2 v_30 = asfloat(((((((8u + start_byte_offset) % 16u) / 4u) == 2u)) ? (v_29.zw) : (v_29.xy)));
+  uint4 v_31 = ub[((16u + start_byte_offset) / 16u)];
+  return float3x2(v_28, v_30, asfloat(((((((16u + start_byte_offset) % 16u) / 4u) == 2u)) ? (v_31.zw) : (v_31.xy))));
+}
+
+float2x4 v_32(uint start_byte_offset) {
+  float4 v_33 = asfloat(ub[(start_byte_offset / 16u)]);
+  return float2x4(v_33, asfloat(ub[((16u + start_byte_offset) / 16u)]));
+}
+
+float2x3 v_34(uint start_byte_offset) {
+  float3 v_35 = asfloat(ub[(start_byte_offset / 16u)].xyz);
+  return float2x3(v_35, asfloat(ub[((16u + start_byte_offset) / 16u)].xyz));
+}
+
+float2x2 v_36(uint start_byte_offset) {
+  uint4 v_37 = ub[(start_byte_offset / 16u)];
+  float2 v_38 = asfloat((((((start_byte_offset % 16u) / 4u) == 2u)) ? (v_37.zw) : (v_37.xy)));
+  uint4 v_39 = ub[((8u + start_byte_offset) / 16u)];
+  return float2x2(v_38, asfloat(((((((8u + start_byte_offset) % 16u) / 4u) == 2u)) ? (v_39.zw) : (v_39.xy))));
+}
+
+void main_inner(uint idx) {
+  uint v_40 = (544u * uint(idx));
+  float scalar_f32 = asfloat(ub[(v_40 / 16u)][((v_40 % 16u) / 4u)]);
+  uint v_41 = (4u + (544u * uint(idx)));
+  int scalar_i32 = asint(ub[(v_41 / 16u)][((v_41 % 16u) / 4u)]);
+  uint v_42 = (8u + (544u * uint(idx)));
+  uint scalar_u32 = ub[(v_42 / 16u)][((v_42 % 16u) / 4u)];
+  uint v_43 = (16u + (544u * uint(idx)));
+  uint4 v_44 = ub[(v_43 / 16u)];
+  float2 vec2_f32 = asfloat((((((v_43 % 16u) / 4u) == 2u)) ? (v_44.zw) : (v_44.xy)));
+  uint v_45 = (24u + (544u * uint(idx)));
+  uint4 v_46 = ub[(v_45 / 16u)];
+  int2 vec2_i32 = asint((((((v_45 % 16u) / 4u) == 2u)) ? (v_46.zw) : (v_46.xy)));
+  uint v_47 = (32u + (544u * uint(idx)));
+  uint4 v_48 = ub[(v_47 / 16u)];
+  uint2 vec2_u32 = (((((v_47 % 16u) / 4u) == 2u)) ? (v_48.zw) : (v_48.xy));
+  float3 vec3_f32 = asfloat(ub[((48u + (544u * uint(idx))) / 16u)].xyz);
+  int3 vec3_i32 = asint(ub[((64u + (544u * uint(idx))) / 16u)].xyz);
+  uint3 vec3_u32 = ub[((80u + (544u * uint(idx))) / 16u)].xyz;
+  float4 vec4_f32 = asfloat(ub[((96u + (544u * uint(idx))) / 16u)]);
+  int4 vec4_i32 = asint(ub[((112u + (544u * uint(idx))) / 16u)]);
+  uint4 vec4_u32 = ub[((128u + (544u * uint(idx))) / 16u)];
+  float2x2 mat2x2_f32 = v_36((144u + (544u * uint(idx))));
+  float2x3 mat2x3_f32 = v_34((160u + (544u * uint(idx))));
+  float2x4 mat2x4_f32 = v_32((192u + (544u * uint(idx))));
+  float3x2 mat3x2_f32 = v_26((224u + (544u * uint(idx))));
+  float3x3 mat3x3_f32 = v_23((256u + (544u * uint(idx))));
+  float3x4 mat3x4_f32 = v_20((304u + (544u * uint(idx))));
+  float4x2 mat4x2_f32 = v_12((352u + (544u * uint(idx))));
+  float4x3 mat4x3_f32 = v_8((384u + (544u * uint(idx))));
+  float4x4 mat4x4_f32 = v_4((448u + (544u * uint(idx))));
+  float3 v_49[2] = v((512u + (544u * uint(idx))));
+  int v_50 = (tint_f32_to_i32(scalar_f32) + scalar_i32);
+  int v_51 = (v_50 + int(scalar_u32));
+  int v_52 = ((v_51 + tint_f32_to_i32(vec2_f32[0u])) + vec2_i32[0u]);
+  int v_53 = (v_52 + int(vec2_u32[0u]));
+  int v_54 = ((v_53 + tint_f32_to_i32(vec3_f32[1u])) + vec3_i32[1u]);
+  int v_55 = (v_54 + int(vec3_u32[1u]));
+  int v_56 = ((v_55 + tint_f32_to_i32(vec4_f32[2u])) + vec4_i32[2u]);
+  int v_57 = (v_56 + int(vec4_u32[2u]));
+  int v_58 = (v_57 + tint_f32_to_i32(mat2x2_f32[0][0u]));
+  int v_59 = (v_58 + tint_f32_to_i32(mat2x3_f32[0][0u]));
+  int v_60 = (v_59 + tint_f32_to_i32(mat2x4_f32[0][0u]));
+  int v_61 = (v_60 + tint_f32_to_i32(mat3x2_f32[0][0u]));
+  int v_62 = (v_61 + tint_f32_to_i32(mat3x3_f32[0][0u]));
+  int v_63 = (v_62 + tint_f32_to_i32(mat3x4_f32[0][0u]));
+  int v_64 = (v_63 + tint_f32_to_i32(mat4x2_f32[0][0u]));
+  int v_65 = (v_64 + tint_f32_to_i32(mat4x3_f32[0][0u]));
+  int v_66 = (v_65 + tint_f32_to_i32(mat4x4_f32[0][0u]));
+  float3 arr2_vec3_f32[2] = v_49;
+  s.Store(0u, asuint((v_66 + tint_f32_to_i32(arr2_vec3_f32[0][0u]))));
+}
+
+[numthreads(1, 1, 1)]
+void main(main_inputs inputs) {
+  main_inner(inputs.idx);
+}
+
diff --git a/test/tint/buffer/uniform/dynamic_index/read_f16.wgsl.expected.ir.dxc.hlsl b/test/tint/buffer/uniform/dynamic_index/read_f16.wgsl.expected.ir.dxc.hlsl
index 3f437dc..b9c1ee4 100644
--- a/test/tint/buffer/uniform/dynamic_index/read_f16.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/buffer/uniform/dynamic_index/read_f16.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,298 @@
-SKIP: FAILED
+struct main_inputs {
+  uint idx : SV_GroupIndex;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Access
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+
+cbuffer cbuffer_ub : register(b0) {
+  uint4 ub[400];
+};
+RWByteAddressBuffer s : register(u1);
+int tint_f16_to_i32(float16_t value) {
+  return (((value <= float16_t(65504.0h))) ? ((((value >= float16_t(-65504.0h))) ? (int(value)) : (-2147483648))) : (2147483647));
+}
+
+int tint_f32_to_i32(float value) {
+  return (((value <= 2147483520.0f)) ? ((((value >= -2147483648.0f)) ? (int(value)) : (-2147483648))) : (2147483647));
+}
+
+vector<float16_t, 2> tint_bitcast_to_f16_1(uint src) {
+  uint v = src;
+  float t_low = f16tof32((v & 65535u));
+  float t_high = f16tof32(((v >> 16u) & 65535u));
+  float16_t v_1 = float16_t(t_low);
+  return vector<float16_t, 2>(v_1, float16_t(t_high));
+}
+
+matrix<float16_t, 4, 2> v_2(uint start_byte_offset) {
+  uint4 v_3 = ub[(start_byte_offset / 16u)];
+  vector<float16_t, 2> v_4 = tint_bitcast_to_f16_1((((((start_byte_offset % 16u) / 4u) == 2u)) ? (v_3.z) : (v_3.x)));
+  uint4 v_5 = ub[((4u + start_byte_offset) / 16u)];
+  vector<float16_t, 2> v_6 = tint_bitcast_to_f16_1(((((((4u + start_byte_offset) % 16u) / 4u) == 2u)) ? (v_5.z) : (v_5.x)));
+  uint4 v_7 = ub[((8u + start_byte_offset) / 16u)];
+  vector<float16_t, 2> v_8 = tint_bitcast_to_f16_1(((((((8u + start_byte_offset) % 16u) / 4u) == 2u)) ? (v_7.z) : (v_7.x)));
+  uint4 v_9 = ub[((12u + start_byte_offset) / 16u)];
+  return matrix<float16_t, 4, 2>(v_4, v_6, v_8, tint_bitcast_to_f16_1(((((((12u + start_byte_offset) % 16u) / 4u) == 2u)) ? (v_9.z) : (v_9.x))));
+}
+
+typedef matrix<float16_t, 4, 2> ary_ret[2];
+ary_ret v_10(uint start_byte_offset) {
+  matrix<float16_t, 4, 2> a[2] = (matrix<float16_t, 4, 2>[2])0;
+  {
+    uint v_11 = 0u;
+    v_11 = 0u;
+    while(true) {
+      uint v_12 = v_11;
+      if ((v_12 >= 2u)) {
+        break;
+      }
+      a[v_12] = v_2((start_byte_offset + (v_12 * 16u)));
+      {
+        v_11 = (v_12 + 1u);
+      }
+      continue;
+    }
+  }
+  matrix<float16_t, 4, 2> v_13[2] = a;
+  return v_13;
+}
+
+typedef float3 ary_ret_1[2];
+ary_ret_1 v_14(uint start_byte_offset) {
+  float3 a[2] = (float3[2])0;
+  {
+    uint v_15 = 0u;
+    v_15 = 0u;
+    while(true) {
+      uint v_16 = v_15;
+      if ((v_16 >= 2u)) {
+        break;
+      }
+      a[v_16] = asfloat(ub[((start_byte_offset + (v_16 * 16u)) / 16u)].xyz);
+      {
+        v_15 = (v_16 + 1u);
+      }
+      continue;
+    }
+  }
+  float3 v_17[2] = a;
+  return v_17;
+}
+
+vector<float16_t, 4> tint_bitcast_to_f16(uint4 src) {
+  uint4 v = src;
+  uint4 mask = (65535u).xxxx;
+  uint4 shift = (16u).xxxx;
+  float4 t_low = f16tof32((v & mask));
+  float4 t_high = f16tof32(((v >> shift) & mask));
+  float16_t v_18 = float16_t(t_low.x);
+  float16_t v_19 = float16_t(t_high.x);
+  float16_t v_20 = float16_t(t_low.y);
+  return vector<float16_t, 4>(v_18, v_19, v_20, float16_t(t_high.y));
+}
+
+matrix<float16_t, 4, 4> v_21(uint start_byte_offset) {
+  vector<float16_t, 4> v_22 = tint_bitcast_to_f16(ub[(start_byte_offset / 16u)]);
+  vector<float16_t, 4> v_23 = tint_bitcast_to_f16(ub[((8u + start_byte_offset) / 16u)]);
+  vector<float16_t, 4> v_24 = tint_bitcast_to_f16(ub[((16u + start_byte_offset) / 16u)]);
+  return matrix<float16_t, 4, 4>(v_22, v_23, v_24, tint_bitcast_to_f16(ub[((24u + start_byte_offset) / 16u)]));
+}
+
+matrix<float16_t, 4, 3> v_25(uint start_byte_offset) {
+  vector<float16_t, 3> v_26 = tint_bitcast_to_f16(ub[(start_byte_offset / 16u)]).xyz;
+  vector<float16_t, 3> v_27 = tint_bitcast_to_f16(ub[((8u + start_byte_offset) / 16u)]).xyz;
+  vector<float16_t, 3> v_28 = tint_bitcast_to_f16(ub[((16u + start_byte_offset) / 16u)]).xyz;
+  return matrix<float16_t, 4, 3>(v_26, v_27, v_28, tint_bitcast_to_f16(ub[((24u + start_byte_offset) / 16u)]).xyz);
+}
+
+matrix<float16_t, 3, 4> v_29(uint start_byte_offset) {
+  vector<float16_t, 4> v_30 = tint_bitcast_to_f16(ub[(start_byte_offset / 16u)]);
+  vector<float16_t, 4> v_31 = tint_bitcast_to_f16(ub[((8u + start_byte_offset) / 16u)]);
+  return matrix<float16_t, 3, 4>(v_30, v_31, tint_bitcast_to_f16(ub[((16u + start_byte_offset) / 16u)]));
+}
+
+matrix<float16_t, 3, 3> v_32(uint start_byte_offset) {
+  vector<float16_t, 3> v_33 = tint_bitcast_to_f16(ub[(start_byte_offset / 16u)]).xyz;
+  vector<float16_t, 3> v_34 = tint_bitcast_to_f16(ub[((8u + start_byte_offset) / 16u)]).xyz;
+  return matrix<float16_t, 3, 3>(v_33, v_34, tint_bitcast_to_f16(ub[((16u + start_byte_offset) / 16u)]).xyz);
+}
+
+matrix<float16_t, 3, 2> v_35(uint start_byte_offset) {
+  uint4 v_36 = ub[(start_byte_offset / 16u)];
+  vector<float16_t, 2> v_37 = tint_bitcast_to_f16_1((((((start_byte_offset % 16u) / 4u) == 2u)) ? (v_36.z) : (v_36.x)));
+  uint4 v_38 = ub[((4u + start_byte_offset) / 16u)];
+  vector<float16_t, 2> v_39 = tint_bitcast_to_f16_1(((((((4u + start_byte_offset) % 16u) / 4u) == 2u)) ? (v_38.z) : (v_38.x)));
+  uint4 v_40 = ub[((8u + start_byte_offset) / 16u)];
+  return matrix<float16_t, 3, 2>(v_37, v_39, tint_bitcast_to_f16_1(((((((8u + start_byte_offset) % 16u) / 4u) == 2u)) ? (v_40.z) : (v_40.x))));
+}
+
+matrix<float16_t, 2, 4> v_41(uint start_byte_offset) {
+  vector<float16_t, 4> v_42 = tint_bitcast_to_f16(ub[(start_byte_offset / 16u)]);
+  return matrix<float16_t, 2, 4>(v_42, tint_bitcast_to_f16(ub[((8u + start_byte_offset) / 16u)]));
+}
+
+matrix<float16_t, 2, 3> v_43(uint start_byte_offset) {
+  vector<float16_t, 3> v_44 = tint_bitcast_to_f16(ub[(start_byte_offset / 16u)]).xyz;
+  return matrix<float16_t, 2, 3>(v_44, tint_bitcast_to_f16(ub[((8u + start_byte_offset) / 16u)]).xyz);
+}
+
+matrix<float16_t, 2, 2> v_45(uint start_byte_offset) {
+  uint4 v_46 = ub[(start_byte_offset / 16u)];
+  vector<float16_t, 2> v_47 = tint_bitcast_to_f16_1((((((start_byte_offset % 16u) / 4u) == 2u)) ? (v_46.z) : (v_46.x)));
+  uint4 v_48 = ub[((4u + start_byte_offset) / 16u)];
+  return matrix<float16_t, 2, 2>(v_47, tint_bitcast_to_f16_1(((((((4u + start_byte_offset) % 16u) / 4u) == 2u)) ? (v_48.z) : (v_48.x))));
+}
+
+float4x4 v_49(uint start_byte_offset) {
+  float4 v_50 = asfloat(ub[(start_byte_offset / 16u)]);
+  float4 v_51 = asfloat(ub[((16u + start_byte_offset) / 16u)]);
+  float4 v_52 = asfloat(ub[((32u + start_byte_offset) / 16u)]);
+  return float4x4(v_50, v_51, v_52, asfloat(ub[((48u + start_byte_offset) / 16u)]));
+}
+
+float4x3 v_53(uint start_byte_offset) {
+  float3 v_54 = asfloat(ub[(start_byte_offset / 16u)].xyz);
+  float3 v_55 = asfloat(ub[((16u + start_byte_offset) / 16u)].xyz);
+  float3 v_56 = asfloat(ub[((32u + start_byte_offset) / 16u)].xyz);
+  return float4x3(v_54, v_55, v_56, asfloat(ub[((48u + start_byte_offset) / 16u)].xyz));
+}
+
+float4x2 v_57(uint start_byte_offset) {
+  uint4 v_58 = ub[(start_byte_offset / 16u)];
+  float2 v_59 = asfloat((((((start_byte_offset % 16u) / 4u) == 2u)) ? (v_58.zw) : (v_58.xy)));
+  uint4 v_60 = ub[((8u + start_byte_offset) / 16u)];
+  float2 v_61 = asfloat(((((((8u + start_byte_offset) % 16u) / 4u) == 2u)) ? (v_60.zw) : (v_60.xy)));
+  uint4 v_62 = ub[((16u + start_byte_offset) / 16u)];
+  float2 v_63 = asfloat(((((((16u + start_byte_offset) % 16u) / 4u) == 2u)) ? (v_62.zw) : (v_62.xy)));
+  uint4 v_64 = ub[((24u + start_byte_offset) / 16u)];
+  return float4x2(v_59, v_61, v_63, asfloat(((((((24u + start_byte_offset) % 16u) / 4u) == 2u)) ? (v_64.zw) : (v_64.xy))));
+}
+
+float3x4 v_65(uint start_byte_offset) {
+  float4 v_66 = asfloat(ub[(start_byte_offset / 16u)]);
+  float4 v_67 = asfloat(ub[((16u + start_byte_offset) / 16u)]);
+  return float3x4(v_66, v_67, asfloat(ub[((32u + start_byte_offset) / 16u)]));
+}
+
+float3x3 v_68(uint start_byte_offset) {
+  float3 v_69 = asfloat(ub[(start_byte_offset / 16u)].xyz);
+  float3 v_70 = asfloat(ub[((16u + start_byte_offset) / 16u)].xyz);
+  return float3x3(v_69, v_70, asfloat(ub[((32u + start_byte_offset) / 16u)].xyz));
+}
+
+float3x2 v_71(uint start_byte_offset) {
+  uint4 v_72 = ub[(start_byte_offset / 16u)];
+  float2 v_73 = asfloat((((((start_byte_offset % 16u) / 4u) == 2u)) ? (v_72.zw) : (v_72.xy)));
+  uint4 v_74 = ub[((8u + start_byte_offset) / 16u)];
+  float2 v_75 = asfloat(((((((8u + start_byte_offset) % 16u) / 4u) == 2u)) ? (v_74.zw) : (v_74.xy)));
+  uint4 v_76 = ub[((16u + start_byte_offset) / 16u)];
+  return float3x2(v_73, v_75, asfloat(((((((16u + start_byte_offset) % 16u) / 4u) == 2u)) ? (v_76.zw) : (v_76.xy))));
+}
+
+float2x4 v_77(uint start_byte_offset) {
+  float4 v_78 = asfloat(ub[(start_byte_offset / 16u)]);
+  return float2x4(v_78, asfloat(ub[((16u + start_byte_offset) / 16u)]));
+}
+
+float2x3 v_79(uint start_byte_offset) {
+  float3 v_80 = asfloat(ub[(start_byte_offset / 16u)].xyz);
+  return float2x3(v_80, asfloat(ub[((16u + start_byte_offset) / 16u)].xyz));
+}
+
+float2x2 v_81(uint start_byte_offset) {
+  uint4 v_82 = ub[(start_byte_offset / 16u)];
+  float2 v_83 = asfloat((((((start_byte_offset % 16u) / 4u) == 2u)) ? (v_82.zw) : (v_82.xy)));
+  uint4 v_84 = ub[((8u + start_byte_offset) / 16u)];
+  return float2x2(v_83, asfloat(((((((8u + start_byte_offset) % 16u) / 4u) == 2u)) ? (v_84.zw) : (v_84.xy))));
+}
+
+void main_inner(uint idx) {
+  uint v_85 = (800u * uint(idx));
+  float scalar_f32 = asfloat(ub[(v_85 / 16u)][((v_85 % 16u) / 4u)]);
+  uint v_86 = (4u + (800u * uint(idx)));
+  int scalar_i32 = asint(ub[(v_86 / 16u)][((v_86 % 16u) / 4u)]);
+  uint v_87 = (8u + (800u * uint(idx)));
+  uint scalar_u32 = ub[(v_87 / 16u)][((v_87 % 16u) / 4u)];
+  uint v_88 = (12u + (800u * uint(idx)));
+  uint v_89 = ub[(v_88 / 16u)][((v_88 % 16u) / 4u)];
+  float16_t scalar_f16 = float16_t(f16tof32((v_89 >> ((((v_88 % 4u) == 0u)) ? (0u) : (16u)))));
+  uint v_90 = (16u + (800u * uint(idx)));
+  uint4 v_91 = ub[(v_90 / 16u)];
+  float2 vec2_f32 = asfloat((((((v_90 % 16u) / 4u) == 2u)) ? (v_91.zw) : (v_91.xy)));
+  uint v_92 = (24u + (800u * uint(idx)));
+  uint4 v_93 = ub[(v_92 / 16u)];
+  int2 vec2_i32 = asint((((((v_92 % 16u) / 4u) == 2u)) ? (v_93.zw) : (v_93.xy)));
+  uint v_94 = (32u + (800u * uint(idx)));
+  uint4 v_95 = ub[(v_94 / 16u)];
+  uint2 vec2_u32 = (((((v_94 % 16u) / 4u) == 2u)) ? (v_95.zw) : (v_95.xy));
+  uint v_96 = (40u + (800u * uint(idx)));
+  uint4 v_97 = ub[(v_96 / 16u)];
+  vector<float16_t, 2> vec2_f16 = tint_bitcast_to_f16_1((((((v_96 % 16u) / 4u) == 2u)) ? (v_97.z) : (v_97.x)));
+  float3 vec3_f32 = asfloat(ub[((48u + (800u * uint(idx))) / 16u)].xyz);
+  int3 vec3_i32 = asint(ub[((64u + (800u * uint(idx))) / 16u)].xyz);
+  uint3 vec3_u32 = ub[((80u + (800u * uint(idx))) / 16u)].xyz;
+  vector<float16_t, 3> vec3_f16 = tint_bitcast_to_f16(ub[((96u + (800u * uint(idx))) / 16u)]).xyz;
+  float4 vec4_f32 = asfloat(ub[((112u + (800u * uint(idx))) / 16u)]);
+  int4 vec4_i32 = asint(ub[((128u + (800u * uint(idx))) / 16u)]);
+  uint4 vec4_u32 = ub[((144u + (800u * uint(idx))) / 16u)];
+  vector<float16_t, 4> vec4_f16 = tint_bitcast_to_f16(ub[((160u + (800u * uint(idx))) / 16u)]);
+  float2x2 mat2x2_f32 = v_81((168u + (800u * uint(idx))));
+  float2x3 mat2x3_f32 = v_79((192u + (800u * uint(idx))));
+  float2x4 mat2x4_f32 = v_77((224u + (800u * uint(idx))));
+  float3x2 mat3x2_f32 = v_71((256u + (800u * uint(idx))));
+  float3x3 mat3x3_f32 = v_68((288u + (800u * uint(idx))));
+  float3x4 mat3x4_f32 = v_65((336u + (800u * uint(idx))));
+  float4x2 mat4x2_f32 = v_57((384u + (800u * uint(idx))));
+  float4x3 mat4x3_f32 = v_53((416u + (800u * uint(idx))));
+  float4x4 mat4x4_f32 = v_49((480u + (800u * uint(idx))));
+  matrix<float16_t, 2, 2> mat2x2_f16 = v_45((544u + (800u * uint(idx))));
+  matrix<float16_t, 2, 3> mat2x3_f16 = v_43((552u + (800u * uint(idx))));
+  matrix<float16_t, 2, 4> mat2x4_f16 = v_41((568u + (800u * uint(idx))));
+  matrix<float16_t, 3, 2> mat3x2_f16 = v_35((584u + (800u * uint(idx))));
+  matrix<float16_t, 3, 3> mat3x3_f16 = v_32((600u + (800u * uint(idx))));
+  matrix<float16_t, 3, 4> mat3x4_f16 = v_29((624u + (800u * uint(idx))));
+  matrix<float16_t, 4, 2> mat4x2_f16 = v_2((648u + (800u * uint(idx))));
+  matrix<float16_t, 4, 3> mat4x3_f16 = v_25((664u + (800u * uint(idx))));
+  matrix<float16_t, 4, 4> mat4x4_f16 = v_21((696u + (800u * uint(idx))));
+  float3 v_98[2] = v_14((736u + (800u * uint(idx))));
+  matrix<float16_t, 4, 2> v_99[2] = v_10((768u + (800u * uint(idx))));
+  int v_100 = (tint_f32_to_i32(scalar_f32) + scalar_i32);
+  int v_101 = (v_100 + int(scalar_u32));
+  int v_102 = (v_101 + tint_f16_to_i32(scalar_f16));
+  int v_103 = ((v_102 + tint_f32_to_i32(vec2_f32[0u])) + vec2_i32[0u]);
+  int v_104 = (v_103 + int(vec2_u32[0u]));
+  int v_105 = (v_104 + tint_f16_to_i32(vec2_f16[0u]));
+  int v_106 = ((v_105 + tint_f32_to_i32(vec3_f32[1u])) + vec3_i32[1u]);
+  int v_107 = (v_106 + int(vec3_u32[1u]));
+  int v_108 = (v_107 + tint_f16_to_i32(vec3_f16[1u]));
+  int v_109 = ((v_108 + tint_f32_to_i32(vec4_f32[2u])) + vec4_i32[2u]);
+  int v_110 = (v_109 + int(vec4_u32[2u]));
+  int v_111 = (v_110 + tint_f16_to_i32(vec4_f16[2u]));
+  int v_112 = (v_111 + tint_f32_to_i32(mat2x2_f32[0][0u]));
+  int v_113 = (v_112 + tint_f32_to_i32(mat2x3_f32[0][0u]));
+  int v_114 = (v_113 + tint_f32_to_i32(mat2x4_f32[0][0u]));
+  int v_115 = (v_114 + tint_f32_to_i32(mat3x2_f32[0][0u]));
+  int v_116 = (v_115 + tint_f32_to_i32(mat3x3_f32[0][0u]));
+  int v_117 = (v_116 + tint_f32_to_i32(mat3x4_f32[0][0u]));
+  int v_118 = (v_117 + tint_f32_to_i32(mat4x2_f32[0][0u]));
+  int v_119 = (v_118 + tint_f32_to_i32(mat4x3_f32[0][0u]));
+  int v_120 = (v_119 + tint_f32_to_i32(mat4x4_f32[0][0u]));
+  int v_121 = (v_120 + tint_f16_to_i32(mat2x2_f16[0][0u]));
+  int v_122 = (v_121 + tint_f16_to_i32(mat2x3_f16[0][0u]));
+  int v_123 = (v_122 + tint_f16_to_i32(mat2x4_f16[0][0u]));
+  int v_124 = (v_123 + tint_f16_to_i32(mat3x2_f16[0][0u]));
+  int v_125 = (v_124 + tint_f16_to_i32(mat3x3_f16[0][0u]));
+  int v_126 = (v_125 + tint_f16_to_i32(mat3x4_f16[0][0u]));
+  int v_127 = (v_126 + tint_f16_to_i32(mat4x2_f16[0][0u]));
+  int v_128 = (v_127 + tint_f16_to_i32(mat4x3_f16[0][0u]));
+  int v_129 = (v_128 + tint_f16_to_i32(mat4x4_f16[0][0u]));
+  float3 arr2_vec3_f32[2] = v_98;
+  int v_130 = (v_129 + tint_f32_to_i32(arr2_vec3_f32[0][0u]));
+  matrix<float16_t, 4, 2> arr2_mat4x2_f16[2] = v_99;
+  s.Store(0u, asuint((v_130 + tint_f16_to_i32(arr2_mat4x2_f16[0][0][0u]))));
+}
+
+[numthreads(1, 1, 1)]
+void main(main_inputs inputs) {
+  main_inner(inputs.idx);
+}
+
diff --git a/test/tint/buffer/uniform/dynamic_index/read_f16.wgsl.expected.ir.fxc.hlsl b/test/tint/buffer/uniform/dynamic_index/read_f16.wgsl.expected.ir.fxc.hlsl
index 3f437dc..2685533 100644
--- a/test/tint/buffer/uniform/dynamic_index/read_f16.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/buffer/uniform/dynamic_index/read_f16.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,303 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Access
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct main_inputs {
+  uint idx : SV_GroupIndex;
+};
+
+
+cbuffer cbuffer_ub : register(b0) {
+  uint4 ub[400];
+};
+RWByteAddressBuffer s : register(u1);
+int tint_f16_to_i32(float16_t value) {
+  return (((value <= float16_t(65504.0h))) ? ((((value >= float16_t(-65504.0h))) ? (int(value)) : (-2147483648))) : (2147483647));
+}
+
+int tint_f32_to_i32(float value) {
+  return (((value <= 2147483520.0f)) ? ((((value >= -2147483648.0f)) ? (int(value)) : (-2147483648))) : (2147483647));
+}
+
+vector<float16_t, 2> tint_bitcast_to_f16_1(uint src) {
+  uint v = src;
+  float t_low = f16tof32((v & 65535u));
+  float t_high = f16tof32(((v >> 16u) & 65535u));
+  float16_t v_1 = float16_t(t_low);
+  return vector<float16_t, 2>(v_1, float16_t(t_high));
+}
+
+matrix<float16_t, 4, 2> v_2(uint start_byte_offset) {
+  uint4 v_3 = ub[(start_byte_offset / 16u)];
+  vector<float16_t, 2> v_4 = tint_bitcast_to_f16_1((((((start_byte_offset % 16u) / 4u) == 2u)) ? (v_3.z) : (v_3.x)));
+  uint4 v_5 = ub[((4u + start_byte_offset) / 16u)];
+  vector<float16_t, 2> v_6 = tint_bitcast_to_f16_1(((((((4u + start_byte_offset) % 16u) / 4u) == 2u)) ? (v_5.z) : (v_5.x)));
+  uint4 v_7 = ub[((8u + start_byte_offset) / 16u)];
+  vector<float16_t, 2> v_8 = tint_bitcast_to_f16_1(((((((8u + start_byte_offset) % 16u) / 4u) == 2u)) ? (v_7.z) : (v_7.x)));
+  uint4 v_9 = ub[((12u + start_byte_offset) / 16u)];
+  return matrix<float16_t, 4, 2>(v_4, v_6, v_8, tint_bitcast_to_f16_1(((((((12u + start_byte_offset) % 16u) / 4u) == 2u)) ? (v_9.z) : (v_9.x))));
+}
+
+typedef matrix<float16_t, 4, 2> ary_ret[2];
+ary_ret v_10(uint start_byte_offset) {
+  matrix<float16_t, 4, 2> a[2] = (matrix<float16_t, 4, 2>[2])0;
+  {
+    uint v_11 = 0u;
+    v_11 = 0u;
+    while(true) {
+      uint v_12 = v_11;
+      if ((v_12 >= 2u)) {
+        break;
+      }
+      a[v_12] = v_2((start_byte_offset + (v_12 * 16u)));
+      {
+        v_11 = (v_12 + 1u);
+      }
+      continue;
+    }
+  }
+  matrix<float16_t, 4, 2> v_13[2] = a;
+  return v_13;
+}
+
+typedef float3 ary_ret_1[2];
+ary_ret_1 v_14(uint start_byte_offset) {
+  float3 a[2] = (float3[2])0;
+  {
+    uint v_15 = 0u;
+    v_15 = 0u;
+    while(true) {
+      uint v_16 = v_15;
+      if ((v_16 >= 2u)) {
+        break;
+      }
+      a[v_16] = asfloat(ub[((start_byte_offset + (v_16 * 16u)) / 16u)].xyz);
+      {
+        v_15 = (v_16 + 1u);
+      }
+      continue;
+    }
+  }
+  float3 v_17[2] = a;
+  return v_17;
+}
+
+vector<float16_t, 4> tint_bitcast_to_f16(uint4 src) {
+  uint4 v = src;
+  uint4 mask = (65535u).xxxx;
+  uint4 shift = (16u).xxxx;
+  float4 t_low = f16tof32((v & mask));
+  float4 t_high = f16tof32(((v >> shift) & mask));
+  float16_t v_18 = float16_t(t_low.x);
+  float16_t v_19 = float16_t(t_high.x);
+  float16_t v_20 = float16_t(t_low.y);
+  return vector<float16_t, 4>(v_18, v_19, v_20, float16_t(t_high.y));
+}
+
+matrix<float16_t, 4, 4> v_21(uint start_byte_offset) {
+  vector<float16_t, 4> v_22 = tint_bitcast_to_f16(ub[(start_byte_offset / 16u)]);
+  vector<float16_t, 4> v_23 = tint_bitcast_to_f16(ub[((8u + start_byte_offset) / 16u)]);
+  vector<float16_t, 4> v_24 = tint_bitcast_to_f16(ub[((16u + start_byte_offset) / 16u)]);
+  return matrix<float16_t, 4, 4>(v_22, v_23, v_24, tint_bitcast_to_f16(ub[((24u + start_byte_offset) / 16u)]));
+}
+
+matrix<float16_t, 4, 3> v_25(uint start_byte_offset) {
+  vector<float16_t, 3> v_26 = tint_bitcast_to_f16(ub[(start_byte_offset / 16u)]).xyz;
+  vector<float16_t, 3> v_27 = tint_bitcast_to_f16(ub[((8u + start_byte_offset) / 16u)]).xyz;
+  vector<float16_t, 3> v_28 = tint_bitcast_to_f16(ub[((16u + start_byte_offset) / 16u)]).xyz;
+  return matrix<float16_t, 4, 3>(v_26, v_27, v_28, tint_bitcast_to_f16(ub[((24u + start_byte_offset) / 16u)]).xyz);
+}
+
+matrix<float16_t, 3, 4> v_29(uint start_byte_offset) {
+  vector<float16_t, 4> v_30 = tint_bitcast_to_f16(ub[(start_byte_offset / 16u)]);
+  vector<float16_t, 4> v_31 = tint_bitcast_to_f16(ub[((8u + start_byte_offset) / 16u)]);
+  return matrix<float16_t, 3, 4>(v_30, v_31, tint_bitcast_to_f16(ub[((16u + start_byte_offset) / 16u)]));
+}
+
+matrix<float16_t, 3, 3> v_32(uint start_byte_offset) {
+  vector<float16_t, 3> v_33 = tint_bitcast_to_f16(ub[(start_byte_offset / 16u)]).xyz;
+  vector<float16_t, 3> v_34 = tint_bitcast_to_f16(ub[((8u + start_byte_offset) / 16u)]).xyz;
+  return matrix<float16_t, 3, 3>(v_33, v_34, tint_bitcast_to_f16(ub[((16u + start_byte_offset) / 16u)]).xyz);
+}
+
+matrix<float16_t, 3, 2> v_35(uint start_byte_offset) {
+  uint4 v_36 = ub[(start_byte_offset / 16u)];
+  vector<float16_t, 2> v_37 = tint_bitcast_to_f16_1((((((start_byte_offset % 16u) / 4u) == 2u)) ? (v_36.z) : (v_36.x)));
+  uint4 v_38 = ub[((4u + start_byte_offset) / 16u)];
+  vector<float16_t, 2> v_39 = tint_bitcast_to_f16_1(((((((4u + start_byte_offset) % 16u) / 4u) == 2u)) ? (v_38.z) : (v_38.x)));
+  uint4 v_40 = ub[((8u + start_byte_offset) / 16u)];
+  return matrix<float16_t, 3, 2>(v_37, v_39, tint_bitcast_to_f16_1(((((((8u + start_byte_offset) % 16u) / 4u) == 2u)) ? (v_40.z) : (v_40.x))));
+}
+
+matrix<float16_t, 2, 4> v_41(uint start_byte_offset) {
+  vector<float16_t, 4> v_42 = tint_bitcast_to_f16(ub[(start_byte_offset / 16u)]);
+  return matrix<float16_t, 2, 4>(v_42, tint_bitcast_to_f16(ub[((8u + start_byte_offset) / 16u)]));
+}
+
+matrix<float16_t, 2, 3> v_43(uint start_byte_offset) {
+  vector<float16_t, 3> v_44 = tint_bitcast_to_f16(ub[(start_byte_offset / 16u)]).xyz;
+  return matrix<float16_t, 2, 3>(v_44, tint_bitcast_to_f16(ub[((8u + start_byte_offset) / 16u)]).xyz);
+}
+
+matrix<float16_t, 2, 2> v_45(uint start_byte_offset) {
+  uint4 v_46 = ub[(start_byte_offset / 16u)];
+  vector<float16_t, 2> v_47 = tint_bitcast_to_f16_1((((((start_byte_offset % 16u) / 4u) == 2u)) ? (v_46.z) : (v_46.x)));
+  uint4 v_48 = ub[((4u + start_byte_offset) / 16u)];
+  return matrix<float16_t, 2, 2>(v_47, tint_bitcast_to_f16_1(((((((4u + start_byte_offset) % 16u) / 4u) == 2u)) ? (v_48.z) : (v_48.x))));
+}
+
+float4x4 v_49(uint start_byte_offset) {
+  float4 v_50 = asfloat(ub[(start_byte_offset / 16u)]);
+  float4 v_51 = asfloat(ub[((16u + start_byte_offset) / 16u)]);
+  float4 v_52 = asfloat(ub[((32u + start_byte_offset) / 16u)]);
+  return float4x4(v_50, v_51, v_52, asfloat(ub[((48u + start_byte_offset) / 16u)]));
+}
+
+float4x3 v_53(uint start_byte_offset) {
+  float3 v_54 = asfloat(ub[(start_byte_offset / 16u)].xyz);
+  float3 v_55 = asfloat(ub[((16u + start_byte_offset) / 16u)].xyz);
+  float3 v_56 = asfloat(ub[((32u + start_byte_offset) / 16u)].xyz);
+  return float4x3(v_54, v_55, v_56, asfloat(ub[((48u + start_byte_offset) / 16u)].xyz));
+}
+
+float4x2 v_57(uint start_byte_offset) {
+  uint4 v_58 = ub[(start_byte_offset / 16u)];
+  float2 v_59 = asfloat((((((start_byte_offset % 16u) / 4u) == 2u)) ? (v_58.zw) : (v_58.xy)));
+  uint4 v_60 = ub[((8u + start_byte_offset) / 16u)];
+  float2 v_61 = asfloat(((((((8u + start_byte_offset) % 16u) / 4u) == 2u)) ? (v_60.zw) : (v_60.xy)));
+  uint4 v_62 = ub[((16u + start_byte_offset) / 16u)];
+  float2 v_63 = asfloat(((((((16u + start_byte_offset) % 16u) / 4u) == 2u)) ? (v_62.zw) : (v_62.xy)));
+  uint4 v_64 = ub[((24u + start_byte_offset) / 16u)];
+  return float4x2(v_59, v_61, v_63, asfloat(((((((24u + start_byte_offset) % 16u) / 4u) == 2u)) ? (v_64.zw) : (v_64.xy))));
+}
+
+float3x4 v_65(uint start_byte_offset) {
+  float4 v_66 = asfloat(ub[(start_byte_offset / 16u)]);
+  float4 v_67 = asfloat(ub[((16u + start_byte_offset) / 16u)]);
+  return float3x4(v_66, v_67, asfloat(ub[((32u + start_byte_offset) / 16u)]));
+}
+
+float3x3 v_68(uint start_byte_offset) {
+  float3 v_69 = asfloat(ub[(start_byte_offset / 16u)].xyz);
+  float3 v_70 = asfloat(ub[((16u + start_byte_offset) / 16u)].xyz);
+  return float3x3(v_69, v_70, asfloat(ub[((32u + start_byte_offset) / 16u)].xyz));
+}
+
+float3x2 v_71(uint start_byte_offset) {
+  uint4 v_72 = ub[(start_byte_offset / 16u)];
+  float2 v_73 = asfloat((((((start_byte_offset % 16u) / 4u) == 2u)) ? (v_72.zw) : (v_72.xy)));
+  uint4 v_74 = ub[((8u + start_byte_offset) / 16u)];
+  float2 v_75 = asfloat(((((((8u + start_byte_offset) % 16u) / 4u) == 2u)) ? (v_74.zw) : (v_74.xy)));
+  uint4 v_76 = ub[((16u + start_byte_offset) / 16u)];
+  return float3x2(v_73, v_75, asfloat(((((((16u + start_byte_offset) % 16u) / 4u) == 2u)) ? (v_76.zw) : (v_76.xy))));
+}
+
+float2x4 v_77(uint start_byte_offset) {
+  float4 v_78 = asfloat(ub[(start_byte_offset / 16u)]);
+  return float2x4(v_78, asfloat(ub[((16u + start_byte_offset) / 16u)]));
+}
+
+float2x3 v_79(uint start_byte_offset) {
+  float3 v_80 = asfloat(ub[(start_byte_offset / 16u)].xyz);
+  return float2x3(v_80, asfloat(ub[((16u + start_byte_offset) / 16u)].xyz));
+}
+
+float2x2 v_81(uint start_byte_offset) {
+  uint4 v_82 = ub[(start_byte_offset / 16u)];
+  float2 v_83 = asfloat((((((start_byte_offset % 16u) / 4u) == 2u)) ? (v_82.zw) : (v_82.xy)));
+  uint4 v_84 = ub[((8u + start_byte_offset) / 16u)];
+  return float2x2(v_83, asfloat(((((((8u + start_byte_offset) % 16u) / 4u) == 2u)) ? (v_84.zw) : (v_84.xy))));
+}
+
+void main_inner(uint idx) {
+  uint v_85 = (800u * uint(idx));
+  float scalar_f32 = asfloat(ub[(v_85 / 16u)][((v_85 % 16u) / 4u)]);
+  uint v_86 = (4u + (800u * uint(idx)));
+  int scalar_i32 = asint(ub[(v_86 / 16u)][((v_86 % 16u) / 4u)]);
+  uint v_87 = (8u + (800u * uint(idx)));
+  uint scalar_u32 = ub[(v_87 / 16u)][((v_87 % 16u) / 4u)];
+  uint v_88 = (12u + (800u * uint(idx)));
+  uint v_89 = ub[(v_88 / 16u)][((v_88 % 16u) / 4u)];
+  float16_t scalar_f16 = float16_t(f16tof32((v_89 >> ((((v_88 % 4u) == 0u)) ? (0u) : (16u)))));
+  uint v_90 = (16u + (800u * uint(idx)));
+  uint4 v_91 = ub[(v_90 / 16u)];
+  float2 vec2_f32 = asfloat((((((v_90 % 16u) / 4u) == 2u)) ? (v_91.zw) : (v_91.xy)));
+  uint v_92 = (24u + (800u * uint(idx)));
+  uint4 v_93 = ub[(v_92 / 16u)];
+  int2 vec2_i32 = asint((((((v_92 % 16u) / 4u) == 2u)) ? (v_93.zw) : (v_93.xy)));
+  uint v_94 = (32u + (800u * uint(idx)));
+  uint4 v_95 = ub[(v_94 / 16u)];
+  uint2 vec2_u32 = (((((v_94 % 16u) / 4u) == 2u)) ? (v_95.zw) : (v_95.xy));
+  uint v_96 = (40u + (800u * uint(idx)));
+  uint4 v_97 = ub[(v_96 / 16u)];
+  vector<float16_t, 2> vec2_f16 = tint_bitcast_to_f16_1((((((v_96 % 16u) / 4u) == 2u)) ? (v_97.z) : (v_97.x)));
+  float3 vec3_f32 = asfloat(ub[((48u + (800u * uint(idx))) / 16u)].xyz);
+  int3 vec3_i32 = asint(ub[((64u + (800u * uint(idx))) / 16u)].xyz);
+  uint3 vec3_u32 = ub[((80u + (800u * uint(idx))) / 16u)].xyz;
+  vector<float16_t, 3> vec3_f16 = tint_bitcast_to_f16(ub[((96u + (800u * uint(idx))) / 16u)]).xyz;
+  float4 vec4_f32 = asfloat(ub[((112u + (800u * uint(idx))) / 16u)]);
+  int4 vec4_i32 = asint(ub[((128u + (800u * uint(idx))) / 16u)]);
+  uint4 vec4_u32 = ub[((144u + (800u * uint(idx))) / 16u)];
+  vector<float16_t, 4> vec4_f16 = tint_bitcast_to_f16(ub[((160u + (800u * uint(idx))) / 16u)]);
+  float2x2 mat2x2_f32 = v_81((168u + (800u * uint(idx))));
+  float2x3 mat2x3_f32 = v_79((192u + (800u * uint(idx))));
+  float2x4 mat2x4_f32 = v_77((224u + (800u * uint(idx))));
+  float3x2 mat3x2_f32 = v_71((256u + (800u * uint(idx))));
+  float3x3 mat3x3_f32 = v_68((288u + (800u * uint(idx))));
+  float3x4 mat3x4_f32 = v_65((336u + (800u * uint(idx))));
+  float4x2 mat4x2_f32 = v_57((384u + (800u * uint(idx))));
+  float4x3 mat4x3_f32 = v_53((416u + (800u * uint(idx))));
+  float4x4 mat4x4_f32 = v_49((480u + (800u * uint(idx))));
+  matrix<float16_t, 2, 2> mat2x2_f16 = v_45((544u + (800u * uint(idx))));
+  matrix<float16_t, 2, 3> mat2x3_f16 = v_43((552u + (800u * uint(idx))));
+  matrix<float16_t, 2, 4> mat2x4_f16 = v_41((568u + (800u * uint(idx))));
+  matrix<float16_t, 3, 2> mat3x2_f16 = v_35((584u + (800u * uint(idx))));
+  matrix<float16_t, 3, 3> mat3x3_f16 = v_32((600u + (800u * uint(idx))));
+  matrix<float16_t, 3, 4> mat3x4_f16 = v_29((624u + (800u * uint(idx))));
+  matrix<float16_t, 4, 2> mat4x2_f16 = v_2((648u + (800u * uint(idx))));
+  matrix<float16_t, 4, 3> mat4x3_f16 = v_25((664u + (800u * uint(idx))));
+  matrix<float16_t, 4, 4> mat4x4_f16 = v_21((696u + (800u * uint(idx))));
+  float3 v_98[2] = v_14((736u + (800u * uint(idx))));
+  matrix<float16_t, 4, 2> v_99[2] = v_10((768u + (800u * uint(idx))));
+  int v_100 = (tint_f32_to_i32(scalar_f32) + scalar_i32);
+  int v_101 = (v_100 + int(scalar_u32));
+  int v_102 = (v_101 + tint_f16_to_i32(scalar_f16));
+  int v_103 = ((v_102 + tint_f32_to_i32(vec2_f32[0u])) + vec2_i32[0u]);
+  int v_104 = (v_103 + int(vec2_u32[0u]));
+  int v_105 = (v_104 + tint_f16_to_i32(vec2_f16[0u]));
+  int v_106 = ((v_105 + tint_f32_to_i32(vec3_f32[1u])) + vec3_i32[1u]);
+  int v_107 = (v_106 + int(vec3_u32[1u]));
+  int v_108 = (v_107 + tint_f16_to_i32(vec3_f16[1u]));
+  int v_109 = ((v_108 + tint_f32_to_i32(vec4_f32[2u])) + vec4_i32[2u]);
+  int v_110 = (v_109 + int(vec4_u32[2u]));
+  int v_111 = (v_110 + tint_f16_to_i32(vec4_f16[2u]));
+  int v_112 = (v_111 + tint_f32_to_i32(mat2x2_f32[0][0u]));
+  int v_113 = (v_112 + tint_f32_to_i32(mat2x3_f32[0][0u]));
+  int v_114 = (v_113 + tint_f32_to_i32(mat2x4_f32[0][0u]));
+  int v_115 = (v_114 + tint_f32_to_i32(mat3x2_f32[0][0u]));
+  int v_116 = (v_115 + tint_f32_to_i32(mat3x3_f32[0][0u]));
+  int v_117 = (v_116 + tint_f32_to_i32(mat3x4_f32[0][0u]));
+  int v_118 = (v_117 + tint_f32_to_i32(mat4x2_f32[0][0u]));
+  int v_119 = (v_118 + tint_f32_to_i32(mat4x3_f32[0][0u]));
+  int v_120 = (v_119 + tint_f32_to_i32(mat4x4_f32[0][0u]));
+  int v_121 = (v_120 + tint_f16_to_i32(mat2x2_f16[0][0u]));
+  int v_122 = (v_121 + tint_f16_to_i32(mat2x3_f16[0][0u]));
+  int v_123 = (v_122 + tint_f16_to_i32(mat2x4_f16[0][0u]));
+  int v_124 = (v_123 + tint_f16_to_i32(mat3x2_f16[0][0u]));
+  int v_125 = (v_124 + tint_f16_to_i32(mat3x3_f16[0][0u]));
+  int v_126 = (v_125 + tint_f16_to_i32(mat3x4_f16[0][0u]));
+  int v_127 = (v_126 + tint_f16_to_i32(mat4x2_f16[0][0u]));
+  int v_128 = (v_127 + tint_f16_to_i32(mat4x3_f16[0][0u]));
+  int v_129 = (v_128 + tint_f16_to_i32(mat4x4_f16[0][0u]));
+  float3 arr2_vec3_f32[2] = v_98;
+  int v_130 = (v_129 + tint_f32_to_i32(arr2_vec3_f32[0][0u]));
+  matrix<float16_t, 4, 2> arr2_mat4x2_f16[2] = v_99;
+  s.Store(0u, asuint((v_130 + tint_f16_to_i32(arr2_mat4x2_f16[0][0][0u]))));
+}
+
+[numthreads(1, 1, 1)]
+void main(main_inputs inputs) {
+  main_inner(inputs.idx);
+}
+
+FXC validation failure:
+c:\src\dawn\Shader@0x000001C22391C0F0(10,21-29): error X3000: unrecognized identifier 'float16_t'
+
diff --git a/test/tint/buffer/uniform/static_index/read.wgsl.expected.ir.dxc.hlsl b/test/tint/buffer/uniform/static_index/read.wgsl.expected.ir.dxc.hlsl
index 3f437dc..1c148d6 100644
--- a/test/tint/buffer/uniform/static_index/read.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/buffer/uniform/static_index/read.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,177 @@
-SKIP: FAILED
+struct Inner {
+  int scalar_i32;
+  float scalar_f32;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Access
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+
+cbuffer cbuffer_ub : register(b0) {
+  uint4 ub[44];
+};
+RWByteAddressBuffer s : register(u1);
+int tint_f32_to_i32(float value) {
+  return (((value <= 2147483520.0f)) ? ((((value >= -2147483648.0f)) ? (int(value)) : (-2147483648))) : (2147483647));
+}
+
+Inner v(uint start_byte_offset) {
+  int v_1 = asint(ub[(start_byte_offset / 16u)][((start_byte_offset % 16u) / 4u)]);
+  Inner v_2 = {v_1, asfloat(ub[((16u + start_byte_offset) / 16u)][(((16u + start_byte_offset) % 16u) / 4u)])};
+  return v_2;
+}
+
+typedef Inner ary_ret[4];
+ary_ret v_3(uint start_byte_offset) {
+  Inner a[4] = (Inner[4])0;
+  {
+    uint v_4 = 0u;
+    v_4 = 0u;
+    while(true) {
+      uint v_5 = v_4;
+      if ((v_5 >= 4u)) {
+        break;
+      }
+      Inner v_6 = v((start_byte_offset + (v_5 * 32u)));
+      a[v_5] = v_6;
+      {
+        v_4 = (v_5 + 1u);
+      }
+      continue;
+    }
+  }
+  Inner v_7[4] = a;
+  return v_7;
+}
+
+typedef float3 ary_ret_1[2];
+ary_ret_1 v_8(uint start_byte_offset) {
+  float3 a[2] = (float3[2])0;
+  {
+    uint v_9 = 0u;
+    v_9 = 0u;
+    while(true) {
+      uint v_10 = v_9;
+      if ((v_10 >= 2u)) {
+        break;
+      }
+      a[v_10] = asfloat(ub[((start_byte_offset + (v_10 * 16u)) / 16u)].xyz);
+      {
+        v_9 = (v_10 + 1u);
+      }
+      continue;
+    }
+  }
+  float3 v_11[2] = a;
+  return v_11;
+}
+
+float4x4 v_12(uint start_byte_offset) {
+  float4 v_13 = asfloat(ub[(start_byte_offset / 16u)]);
+  float4 v_14 = asfloat(ub[((16u + start_byte_offset) / 16u)]);
+  float4 v_15 = asfloat(ub[((32u + start_byte_offset) / 16u)]);
+  return float4x4(v_13, v_14, v_15, asfloat(ub[((48u + start_byte_offset) / 16u)]));
+}
+
+float4x3 v_16(uint start_byte_offset) {
+  float3 v_17 = asfloat(ub[(start_byte_offset / 16u)].xyz);
+  float3 v_18 = asfloat(ub[((16u + start_byte_offset) / 16u)].xyz);
+  float3 v_19 = asfloat(ub[((32u + start_byte_offset) / 16u)].xyz);
+  return float4x3(v_17, v_18, v_19, asfloat(ub[((48u + start_byte_offset) / 16u)].xyz));
+}
+
+float4x2 v_20(uint start_byte_offset) {
+  uint4 v_21 = ub[(start_byte_offset / 16u)];
+  float2 v_22 = asfloat((((((start_byte_offset % 16u) / 4u) == 2u)) ? (v_21.zw) : (v_21.xy)));
+  uint4 v_23 = ub[((8u + start_byte_offset) / 16u)];
+  float2 v_24 = asfloat(((((((8u + start_byte_offset) % 16u) / 4u) == 2u)) ? (v_23.zw) : (v_23.xy)));
+  uint4 v_25 = ub[((16u + start_byte_offset) / 16u)];
+  float2 v_26 = asfloat(((((((16u + start_byte_offset) % 16u) / 4u) == 2u)) ? (v_25.zw) : (v_25.xy)));
+  uint4 v_27 = ub[((24u + start_byte_offset) / 16u)];
+  return float4x2(v_22, v_24, v_26, asfloat(((((((24u + start_byte_offset) % 16u) / 4u) == 2u)) ? (v_27.zw) : (v_27.xy))));
+}
+
+float3x4 v_28(uint start_byte_offset) {
+  float4 v_29 = asfloat(ub[(start_byte_offset / 16u)]);
+  float4 v_30 = asfloat(ub[((16u + start_byte_offset) / 16u)]);
+  return float3x4(v_29, v_30, asfloat(ub[((32u + start_byte_offset) / 16u)]));
+}
+
+float3x3 v_31(uint start_byte_offset) {
+  float3 v_32 = asfloat(ub[(start_byte_offset / 16u)].xyz);
+  float3 v_33 = asfloat(ub[((16u + start_byte_offset) / 16u)].xyz);
+  return float3x3(v_32, v_33, asfloat(ub[((32u + start_byte_offset) / 16u)].xyz));
+}
+
+float3x2 v_34(uint start_byte_offset) {
+  uint4 v_35 = ub[(start_byte_offset / 16u)];
+  float2 v_36 = asfloat((((((start_byte_offset % 16u) / 4u) == 2u)) ? (v_35.zw) : (v_35.xy)));
+  uint4 v_37 = ub[((8u + start_byte_offset) / 16u)];
+  float2 v_38 = asfloat(((((((8u + start_byte_offset) % 16u) / 4u) == 2u)) ? (v_37.zw) : (v_37.xy)));
+  uint4 v_39 = ub[((16u + start_byte_offset) / 16u)];
+  return float3x2(v_36, v_38, asfloat(((((((16u + start_byte_offset) % 16u) / 4u) == 2u)) ? (v_39.zw) : (v_39.xy))));
+}
+
+float2x4 v_40(uint start_byte_offset) {
+  float4 v_41 = asfloat(ub[(start_byte_offset / 16u)]);
+  return float2x4(v_41, asfloat(ub[((16u + start_byte_offset) / 16u)]));
+}
+
+float2x3 v_42(uint start_byte_offset) {
+  float3 v_43 = asfloat(ub[(start_byte_offset / 16u)].xyz);
+  return float2x3(v_43, asfloat(ub[((16u + start_byte_offset) / 16u)].xyz));
+}
+
+float2x2 v_44(uint start_byte_offset) {
+  uint4 v_45 = ub[(start_byte_offset / 16u)];
+  float2 v_46 = asfloat((((((start_byte_offset % 16u) / 4u) == 2u)) ? (v_45.zw) : (v_45.xy)));
+  uint4 v_47 = ub[((8u + start_byte_offset) / 16u)];
+  return float2x2(v_46, asfloat(((((((8u + start_byte_offset) % 16u) / 4u) == 2u)) ? (v_47.zw) : (v_47.xy))));
+}
+
+[numthreads(1, 1, 1)]
+void main() {
+  float scalar_f32 = asfloat(ub[0u].x);
+  int scalar_i32 = asint(ub[0u].y);
+  uint scalar_u32 = ub[0u].z;
+  float2 vec2_f32 = asfloat(ub[1u].xy);
+  int2 vec2_i32 = asint(ub[1u].zw);
+  uint2 vec2_u32 = ub[2u].xy;
+  float3 vec3_f32 = asfloat(ub[3u].xyz);
+  int3 vec3_i32 = asint(ub[4u].xyz);
+  uint3 vec3_u32 = ub[5u].xyz;
+  float4 vec4_f32 = asfloat(ub[6u]);
+  int4 vec4_i32 = asint(ub[7u]);
+  uint4 vec4_u32 = ub[8u];
+  float2x2 mat2x2_f32 = v_44(144u);
+  float2x3 mat2x3_f32 = v_42(160u);
+  float2x4 mat2x4_f32 = v_40(192u);
+  float3x2 mat3x2_f32 = v_34(224u);
+  float3x3 mat3x3_f32 = v_31(256u);
+  float3x4 mat3x4_f32 = v_28(304u);
+  float4x2 mat4x2_f32 = v_20(352u);
+  float4x3 mat4x3_f32 = v_16(384u);
+  float4x4 mat4x4_f32 = v_12(448u);
+  float3 v_48[2] = v_8(512u);
+  Inner v_49 = v(544u);
+  Inner v_50[4] = v_3(576u);
+  int v_51 = (tint_f32_to_i32(scalar_f32) + scalar_i32);
+  int v_52 = (v_51 + int(scalar_u32));
+  int v_53 = ((v_52 + tint_f32_to_i32(vec2_f32[0u])) + vec2_i32[0u]);
+  int v_54 = (v_53 + int(vec2_u32[0u]));
+  int v_55 = ((v_54 + tint_f32_to_i32(vec3_f32[1u])) + vec3_i32[1u]);
+  int v_56 = (v_55 + int(vec3_u32[1u]));
+  int v_57 = ((v_56 + tint_f32_to_i32(vec4_f32[2u])) + vec4_i32[2u]);
+  int v_58 = (v_57 + int(vec4_u32[2u]));
+  int v_59 = (v_58 + tint_f32_to_i32(mat2x2_f32[0][0u]));
+  int v_60 = (v_59 + tint_f32_to_i32(mat2x3_f32[0][0u]));
+  int v_61 = (v_60 + tint_f32_to_i32(mat2x4_f32[0][0u]));
+  int v_62 = (v_61 + tint_f32_to_i32(mat3x2_f32[0][0u]));
+  int v_63 = (v_62 + tint_f32_to_i32(mat3x3_f32[0][0u]));
+  int v_64 = (v_63 + tint_f32_to_i32(mat3x4_f32[0][0u]));
+  int v_65 = (v_64 + tint_f32_to_i32(mat4x2_f32[0][0u]));
+  int v_66 = (v_65 + tint_f32_to_i32(mat4x3_f32[0][0u]));
+  int v_67 = (v_66 + tint_f32_to_i32(mat4x4_f32[0][0u]));
+  float3 arr2_vec3_f32[2] = v_48;
+  Inner struct_inner = v_49;
+  Inner array_struct_inner[4] = v_50;
+  s.Store(0u, asuint((((v_67 + tint_f32_to_i32(arr2_vec3_f32[0][0u])) + struct_inner.scalar_i32) + array_struct_inner[0].scalar_i32)));
+}
+
diff --git a/test/tint/buffer/uniform/static_index/read.wgsl.expected.ir.fxc.hlsl b/test/tint/buffer/uniform/static_index/read.wgsl.expected.ir.fxc.hlsl
index 3f437dc..1c148d6 100644
--- a/test/tint/buffer/uniform/static_index/read.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/buffer/uniform/static_index/read.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,177 @@
-SKIP: FAILED
+struct Inner {
+  int scalar_i32;
+  float scalar_f32;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Access
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+
+cbuffer cbuffer_ub : register(b0) {
+  uint4 ub[44];
+};
+RWByteAddressBuffer s : register(u1);
+int tint_f32_to_i32(float value) {
+  return (((value <= 2147483520.0f)) ? ((((value >= -2147483648.0f)) ? (int(value)) : (-2147483648))) : (2147483647));
+}
+
+Inner v(uint start_byte_offset) {
+  int v_1 = asint(ub[(start_byte_offset / 16u)][((start_byte_offset % 16u) / 4u)]);
+  Inner v_2 = {v_1, asfloat(ub[((16u + start_byte_offset) / 16u)][(((16u + start_byte_offset) % 16u) / 4u)])};
+  return v_2;
+}
+
+typedef Inner ary_ret[4];
+ary_ret v_3(uint start_byte_offset) {
+  Inner a[4] = (Inner[4])0;
+  {
+    uint v_4 = 0u;
+    v_4 = 0u;
+    while(true) {
+      uint v_5 = v_4;
+      if ((v_5 >= 4u)) {
+        break;
+      }
+      Inner v_6 = v((start_byte_offset + (v_5 * 32u)));
+      a[v_5] = v_6;
+      {
+        v_4 = (v_5 + 1u);
+      }
+      continue;
+    }
+  }
+  Inner v_7[4] = a;
+  return v_7;
+}
+
+typedef float3 ary_ret_1[2];
+ary_ret_1 v_8(uint start_byte_offset) {
+  float3 a[2] = (float3[2])0;
+  {
+    uint v_9 = 0u;
+    v_9 = 0u;
+    while(true) {
+      uint v_10 = v_9;
+      if ((v_10 >= 2u)) {
+        break;
+      }
+      a[v_10] = asfloat(ub[((start_byte_offset + (v_10 * 16u)) / 16u)].xyz);
+      {
+        v_9 = (v_10 + 1u);
+      }
+      continue;
+    }
+  }
+  float3 v_11[2] = a;
+  return v_11;
+}
+
+float4x4 v_12(uint start_byte_offset) {
+  float4 v_13 = asfloat(ub[(start_byte_offset / 16u)]);
+  float4 v_14 = asfloat(ub[((16u + start_byte_offset) / 16u)]);
+  float4 v_15 = asfloat(ub[((32u + start_byte_offset) / 16u)]);
+  return float4x4(v_13, v_14, v_15, asfloat(ub[((48u + start_byte_offset) / 16u)]));
+}
+
+float4x3 v_16(uint start_byte_offset) {
+  float3 v_17 = asfloat(ub[(start_byte_offset / 16u)].xyz);
+  float3 v_18 = asfloat(ub[((16u + start_byte_offset) / 16u)].xyz);
+  float3 v_19 = asfloat(ub[((32u + start_byte_offset) / 16u)].xyz);
+  return float4x3(v_17, v_18, v_19, asfloat(ub[((48u + start_byte_offset) / 16u)].xyz));
+}
+
+float4x2 v_20(uint start_byte_offset) {
+  uint4 v_21 = ub[(start_byte_offset / 16u)];
+  float2 v_22 = asfloat((((((start_byte_offset % 16u) / 4u) == 2u)) ? (v_21.zw) : (v_21.xy)));
+  uint4 v_23 = ub[((8u + start_byte_offset) / 16u)];
+  float2 v_24 = asfloat(((((((8u + start_byte_offset) % 16u) / 4u) == 2u)) ? (v_23.zw) : (v_23.xy)));
+  uint4 v_25 = ub[((16u + start_byte_offset) / 16u)];
+  float2 v_26 = asfloat(((((((16u + start_byte_offset) % 16u) / 4u) == 2u)) ? (v_25.zw) : (v_25.xy)));
+  uint4 v_27 = ub[((24u + start_byte_offset) / 16u)];
+  return float4x2(v_22, v_24, v_26, asfloat(((((((24u + start_byte_offset) % 16u) / 4u) == 2u)) ? (v_27.zw) : (v_27.xy))));
+}
+
+float3x4 v_28(uint start_byte_offset) {
+  float4 v_29 = asfloat(ub[(start_byte_offset / 16u)]);
+  float4 v_30 = asfloat(ub[((16u + start_byte_offset) / 16u)]);
+  return float3x4(v_29, v_30, asfloat(ub[((32u + start_byte_offset) / 16u)]));
+}
+
+float3x3 v_31(uint start_byte_offset) {
+  float3 v_32 = asfloat(ub[(start_byte_offset / 16u)].xyz);
+  float3 v_33 = asfloat(ub[((16u + start_byte_offset) / 16u)].xyz);
+  return float3x3(v_32, v_33, asfloat(ub[((32u + start_byte_offset) / 16u)].xyz));
+}
+
+float3x2 v_34(uint start_byte_offset) {
+  uint4 v_35 = ub[(start_byte_offset / 16u)];
+  float2 v_36 = asfloat((((((start_byte_offset % 16u) / 4u) == 2u)) ? (v_35.zw) : (v_35.xy)));
+  uint4 v_37 = ub[((8u + start_byte_offset) / 16u)];
+  float2 v_38 = asfloat(((((((8u + start_byte_offset) % 16u) / 4u) == 2u)) ? (v_37.zw) : (v_37.xy)));
+  uint4 v_39 = ub[((16u + start_byte_offset) / 16u)];
+  return float3x2(v_36, v_38, asfloat(((((((16u + start_byte_offset) % 16u) / 4u) == 2u)) ? (v_39.zw) : (v_39.xy))));
+}
+
+float2x4 v_40(uint start_byte_offset) {
+  float4 v_41 = asfloat(ub[(start_byte_offset / 16u)]);
+  return float2x4(v_41, asfloat(ub[((16u + start_byte_offset) / 16u)]));
+}
+
+float2x3 v_42(uint start_byte_offset) {
+  float3 v_43 = asfloat(ub[(start_byte_offset / 16u)].xyz);
+  return float2x3(v_43, asfloat(ub[((16u + start_byte_offset) / 16u)].xyz));
+}
+
+float2x2 v_44(uint start_byte_offset) {
+  uint4 v_45 = ub[(start_byte_offset / 16u)];
+  float2 v_46 = asfloat((((((start_byte_offset % 16u) / 4u) == 2u)) ? (v_45.zw) : (v_45.xy)));
+  uint4 v_47 = ub[((8u + start_byte_offset) / 16u)];
+  return float2x2(v_46, asfloat(((((((8u + start_byte_offset) % 16u) / 4u) == 2u)) ? (v_47.zw) : (v_47.xy))));
+}
+
+[numthreads(1, 1, 1)]
+void main() {
+  float scalar_f32 = asfloat(ub[0u].x);
+  int scalar_i32 = asint(ub[0u].y);
+  uint scalar_u32 = ub[0u].z;
+  float2 vec2_f32 = asfloat(ub[1u].xy);
+  int2 vec2_i32 = asint(ub[1u].zw);
+  uint2 vec2_u32 = ub[2u].xy;
+  float3 vec3_f32 = asfloat(ub[3u].xyz);
+  int3 vec3_i32 = asint(ub[4u].xyz);
+  uint3 vec3_u32 = ub[5u].xyz;
+  float4 vec4_f32 = asfloat(ub[6u]);
+  int4 vec4_i32 = asint(ub[7u]);
+  uint4 vec4_u32 = ub[8u];
+  float2x2 mat2x2_f32 = v_44(144u);
+  float2x3 mat2x3_f32 = v_42(160u);
+  float2x4 mat2x4_f32 = v_40(192u);
+  float3x2 mat3x2_f32 = v_34(224u);
+  float3x3 mat3x3_f32 = v_31(256u);
+  float3x4 mat3x4_f32 = v_28(304u);
+  float4x2 mat4x2_f32 = v_20(352u);
+  float4x3 mat4x3_f32 = v_16(384u);
+  float4x4 mat4x4_f32 = v_12(448u);
+  float3 v_48[2] = v_8(512u);
+  Inner v_49 = v(544u);
+  Inner v_50[4] = v_3(576u);
+  int v_51 = (tint_f32_to_i32(scalar_f32) + scalar_i32);
+  int v_52 = (v_51 + int(scalar_u32));
+  int v_53 = ((v_52 + tint_f32_to_i32(vec2_f32[0u])) + vec2_i32[0u]);
+  int v_54 = (v_53 + int(vec2_u32[0u]));
+  int v_55 = ((v_54 + tint_f32_to_i32(vec3_f32[1u])) + vec3_i32[1u]);
+  int v_56 = (v_55 + int(vec3_u32[1u]));
+  int v_57 = ((v_56 + tint_f32_to_i32(vec4_f32[2u])) + vec4_i32[2u]);
+  int v_58 = (v_57 + int(vec4_u32[2u]));
+  int v_59 = (v_58 + tint_f32_to_i32(mat2x2_f32[0][0u]));
+  int v_60 = (v_59 + tint_f32_to_i32(mat2x3_f32[0][0u]));
+  int v_61 = (v_60 + tint_f32_to_i32(mat2x4_f32[0][0u]));
+  int v_62 = (v_61 + tint_f32_to_i32(mat3x2_f32[0][0u]));
+  int v_63 = (v_62 + tint_f32_to_i32(mat3x3_f32[0][0u]));
+  int v_64 = (v_63 + tint_f32_to_i32(mat3x4_f32[0][0u]));
+  int v_65 = (v_64 + tint_f32_to_i32(mat4x2_f32[0][0u]));
+  int v_66 = (v_65 + tint_f32_to_i32(mat4x3_f32[0][0u]));
+  int v_67 = (v_66 + tint_f32_to_i32(mat4x4_f32[0][0u]));
+  float3 arr2_vec3_f32[2] = v_48;
+  Inner struct_inner = v_49;
+  Inner array_struct_inner[4] = v_50;
+  s.Store(0u, asuint((((v_67 + tint_f32_to_i32(arr2_vec3_f32[0][0u])) + struct_inner.scalar_i32) + array_struct_inner[0].scalar_i32)));
+}
+
diff --git a/test/tint/buffer/uniform/static_index/read_f16.wgsl.expected.ir.dxc.hlsl b/test/tint/buffer/uniform/static_index/read_f16.wgsl.expected.ir.dxc.hlsl
index 3f437dc..e1c3987 100644
--- a/test/tint/buffer/uniform/static_index/read_f16.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/buffer/uniform/static_index/read_f16.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,318 @@
-SKIP: FAILED
+struct Inner {
+  int scalar_i32;
+  float scalar_f32;
+  float16_t scalar_f16;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Access
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+
+cbuffer cbuffer_ub : register(b0) {
+  uint4 ub[55];
+};
+RWByteAddressBuffer s : register(u1);
+int tint_f16_to_i32(float16_t value) {
+  return (((value <= float16_t(65504.0h))) ? ((((value >= float16_t(-65504.0h))) ? (int(value)) : (-2147483648))) : (2147483647));
+}
+
+int tint_f32_to_i32(float value) {
+  return (((value <= 2147483520.0f)) ? ((((value >= -2147483648.0f)) ? (int(value)) : (-2147483648))) : (2147483647));
+}
+
+Inner v_1(uint start_byte_offset) {
+  int v_2 = asint(ub[(start_byte_offset / 16u)][((start_byte_offset % 16u) / 4u)]);
+  float v_3 = asfloat(ub[((4u + start_byte_offset) / 16u)][(((4u + start_byte_offset) % 16u) / 4u)]);
+  uint v_4 = ub[((8u + start_byte_offset) / 16u)][(((8u + start_byte_offset) % 16u) / 4u)];
+  Inner v_5 = {v_2, v_3, float16_t(f16tof32((v_4 >> (((((8u + start_byte_offset) % 4u) == 0u)) ? (0u) : (16u)))))};
+  return v_5;
+}
+
+typedef Inner ary_ret[4];
+ary_ret v_6(uint start_byte_offset) {
+  Inner a[4] = (Inner[4])0;
+  {
+    uint v_7 = 0u;
+    v_7 = 0u;
+    while(true) {
+      uint v_8 = v_7;
+      if ((v_8 >= 4u)) {
+        break;
+      }
+      Inner v_9 = v_1((start_byte_offset + (v_8 * 16u)));
+      a[v_8] = v_9;
+      {
+        v_7 = (v_8 + 1u);
+      }
+      continue;
+    }
+  }
+  Inner v_10[4] = a;
+  return v_10;
+}
+
+vector<float16_t, 2> tint_bitcast_to_f16_1(uint src) {
+  uint v = src;
+  float t_low = f16tof32((v & 65535u));
+  float t_high = f16tof32(((v >> 16u) & 65535u));
+  float16_t v_11 = float16_t(t_low);
+  return vector<float16_t, 2>(v_11, float16_t(t_high));
+}
+
+matrix<float16_t, 4, 2> v_12(uint start_byte_offset) {
+  uint4 v_13 = ub[(start_byte_offset / 16u)];
+  vector<float16_t, 2> v_14 = tint_bitcast_to_f16_1((((((start_byte_offset % 16u) / 4u) == 2u)) ? (v_13.z) : (v_13.x)));
+  uint4 v_15 = ub[((4u + start_byte_offset) / 16u)];
+  vector<float16_t, 2> v_16 = tint_bitcast_to_f16_1(((((((4u + start_byte_offset) % 16u) / 4u) == 2u)) ? (v_15.z) : (v_15.x)));
+  uint4 v_17 = ub[((8u + start_byte_offset) / 16u)];
+  vector<float16_t, 2> v_18 = tint_bitcast_to_f16_1(((((((8u + start_byte_offset) % 16u) / 4u) == 2u)) ? (v_17.z) : (v_17.x)));
+  uint4 v_19 = ub[((12u + start_byte_offset) / 16u)];
+  return matrix<float16_t, 4, 2>(v_14, v_16, v_18, tint_bitcast_to_f16_1(((((((12u + start_byte_offset) % 16u) / 4u) == 2u)) ? (v_19.z) : (v_19.x))));
+}
+
+typedef matrix<float16_t, 4, 2> ary_ret_1[2];
+ary_ret_1 v_20(uint start_byte_offset) {
+  matrix<float16_t, 4, 2> a[2] = (matrix<float16_t, 4, 2>[2])0;
+  {
+    uint v_21 = 0u;
+    v_21 = 0u;
+    while(true) {
+      uint v_22 = v_21;
+      if ((v_22 >= 2u)) {
+        break;
+      }
+      a[v_22] = v_12((start_byte_offset + (v_22 * 16u)));
+      {
+        v_21 = (v_22 + 1u);
+      }
+      continue;
+    }
+  }
+  matrix<float16_t, 4, 2> v_23[2] = a;
+  return v_23;
+}
+
+typedef float3 ary_ret_2[2];
+ary_ret_2 v_24(uint start_byte_offset) {
+  float3 a[2] = (float3[2])0;
+  {
+    uint v_25 = 0u;
+    v_25 = 0u;
+    while(true) {
+      uint v_26 = v_25;
+      if ((v_26 >= 2u)) {
+        break;
+      }
+      a[v_26] = asfloat(ub[((start_byte_offset + (v_26 * 16u)) / 16u)].xyz);
+      {
+        v_25 = (v_26 + 1u);
+      }
+      continue;
+    }
+  }
+  float3 v_27[2] = a;
+  return v_27;
+}
+
+vector<float16_t, 4> tint_bitcast_to_f16(uint4 src) {
+  uint4 v = src;
+  uint4 mask = (65535u).xxxx;
+  uint4 shift = (16u).xxxx;
+  float4 t_low = f16tof32((v & mask));
+  float4 t_high = f16tof32(((v >> shift) & mask));
+  float16_t v_28 = float16_t(t_low.x);
+  float16_t v_29 = float16_t(t_high.x);
+  float16_t v_30 = float16_t(t_low.y);
+  return vector<float16_t, 4>(v_28, v_29, v_30, float16_t(t_high.y));
+}
+
+matrix<float16_t, 4, 4> v_31(uint start_byte_offset) {
+  vector<float16_t, 4> v_32 = tint_bitcast_to_f16(ub[(start_byte_offset / 16u)]);
+  vector<float16_t, 4> v_33 = tint_bitcast_to_f16(ub[((8u + start_byte_offset) / 16u)]);
+  vector<float16_t, 4> v_34 = tint_bitcast_to_f16(ub[((16u + start_byte_offset) / 16u)]);
+  return matrix<float16_t, 4, 4>(v_32, v_33, v_34, tint_bitcast_to_f16(ub[((24u + start_byte_offset) / 16u)]));
+}
+
+matrix<float16_t, 4, 3> v_35(uint start_byte_offset) {
+  vector<float16_t, 3> v_36 = tint_bitcast_to_f16(ub[(start_byte_offset / 16u)]).xyz;
+  vector<float16_t, 3> v_37 = tint_bitcast_to_f16(ub[((8u + start_byte_offset) / 16u)]).xyz;
+  vector<float16_t, 3> v_38 = tint_bitcast_to_f16(ub[((16u + start_byte_offset) / 16u)]).xyz;
+  return matrix<float16_t, 4, 3>(v_36, v_37, v_38, tint_bitcast_to_f16(ub[((24u + start_byte_offset) / 16u)]).xyz);
+}
+
+matrix<float16_t, 3, 4> v_39(uint start_byte_offset) {
+  vector<float16_t, 4> v_40 = tint_bitcast_to_f16(ub[(start_byte_offset / 16u)]);
+  vector<float16_t, 4> v_41 = tint_bitcast_to_f16(ub[((8u + start_byte_offset) / 16u)]);
+  return matrix<float16_t, 3, 4>(v_40, v_41, tint_bitcast_to_f16(ub[((16u + start_byte_offset) / 16u)]));
+}
+
+matrix<float16_t, 3, 3> v_42(uint start_byte_offset) {
+  vector<float16_t, 3> v_43 = tint_bitcast_to_f16(ub[(start_byte_offset / 16u)]).xyz;
+  vector<float16_t, 3> v_44 = tint_bitcast_to_f16(ub[((8u + start_byte_offset) / 16u)]).xyz;
+  return matrix<float16_t, 3, 3>(v_43, v_44, tint_bitcast_to_f16(ub[((16u + start_byte_offset) / 16u)]).xyz);
+}
+
+matrix<float16_t, 3, 2> v_45(uint start_byte_offset) {
+  uint4 v_46 = ub[(start_byte_offset / 16u)];
+  vector<float16_t, 2> v_47 = tint_bitcast_to_f16_1((((((start_byte_offset % 16u) / 4u) == 2u)) ? (v_46.z) : (v_46.x)));
+  uint4 v_48 = ub[((4u + start_byte_offset) / 16u)];
+  vector<float16_t, 2> v_49 = tint_bitcast_to_f16_1(((((((4u + start_byte_offset) % 16u) / 4u) == 2u)) ? (v_48.z) : (v_48.x)));
+  uint4 v_50 = ub[((8u + start_byte_offset) / 16u)];
+  return matrix<float16_t, 3, 2>(v_47, v_49, tint_bitcast_to_f16_1(((((((8u + start_byte_offset) % 16u) / 4u) == 2u)) ? (v_50.z) : (v_50.x))));
+}
+
+matrix<float16_t, 2, 4> v_51(uint start_byte_offset) {
+  vector<float16_t, 4> v_52 = tint_bitcast_to_f16(ub[(start_byte_offset / 16u)]);
+  return matrix<float16_t, 2, 4>(v_52, tint_bitcast_to_f16(ub[((8u + start_byte_offset) / 16u)]));
+}
+
+matrix<float16_t, 2, 3> v_53(uint start_byte_offset) {
+  vector<float16_t, 3> v_54 = tint_bitcast_to_f16(ub[(start_byte_offset / 16u)]).xyz;
+  return matrix<float16_t, 2, 3>(v_54, tint_bitcast_to_f16(ub[((8u + start_byte_offset) / 16u)]).xyz);
+}
+
+matrix<float16_t, 2, 2> v_55(uint start_byte_offset) {
+  uint4 v_56 = ub[(start_byte_offset / 16u)];
+  vector<float16_t, 2> v_57 = tint_bitcast_to_f16_1((((((start_byte_offset % 16u) / 4u) == 2u)) ? (v_56.z) : (v_56.x)));
+  uint4 v_58 = ub[((4u + start_byte_offset) / 16u)];
+  return matrix<float16_t, 2, 2>(v_57, tint_bitcast_to_f16_1(((((((4u + start_byte_offset) % 16u) / 4u) == 2u)) ? (v_58.z) : (v_58.x))));
+}
+
+float4x4 v_59(uint start_byte_offset) {
+  float4 v_60 = asfloat(ub[(start_byte_offset / 16u)]);
+  float4 v_61 = asfloat(ub[((16u + start_byte_offset) / 16u)]);
+  float4 v_62 = asfloat(ub[((32u + start_byte_offset) / 16u)]);
+  return float4x4(v_60, v_61, v_62, asfloat(ub[((48u + start_byte_offset) / 16u)]));
+}
+
+float4x3 v_63(uint start_byte_offset) {
+  float3 v_64 = asfloat(ub[(start_byte_offset / 16u)].xyz);
+  float3 v_65 = asfloat(ub[((16u + start_byte_offset) / 16u)].xyz);
+  float3 v_66 = asfloat(ub[((32u + start_byte_offset) / 16u)].xyz);
+  return float4x3(v_64, v_65, v_66, asfloat(ub[((48u + start_byte_offset) / 16u)].xyz));
+}
+
+float4x2 v_67(uint start_byte_offset) {
+  uint4 v_68 = ub[(start_byte_offset / 16u)];
+  float2 v_69 = asfloat((((((start_byte_offset % 16u) / 4u) == 2u)) ? (v_68.zw) : (v_68.xy)));
+  uint4 v_70 = ub[((8u + start_byte_offset) / 16u)];
+  float2 v_71 = asfloat(((((((8u + start_byte_offset) % 16u) / 4u) == 2u)) ? (v_70.zw) : (v_70.xy)));
+  uint4 v_72 = ub[((16u + start_byte_offset) / 16u)];
+  float2 v_73 = asfloat(((((((16u + start_byte_offset) % 16u) / 4u) == 2u)) ? (v_72.zw) : (v_72.xy)));
+  uint4 v_74 = ub[((24u + start_byte_offset) / 16u)];
+  return float4x2(v_69, v_71, v_73, asfloat(((((((24u + start_byte_offset) % 16u) / 4u) == 2u)) ? (v_74.zw) : (v_74.xy))));
+}
+
+float3x4 v_75(uint start_byte_offset) {
+  float4 v_76 = asfloat(ub[(start_byte_offset / 16u)]);
+  float4 v_77 = asfloat(ub[((16u + start_byte_offset) / 16u)]);
+  return float3x4(v_76, v_77, asfloat(ub[((32u + start_byte_offset) / 16u)]));
+}
+
+float3x3 v_78(uint start_byte_offset) {
+  float3 v_79 = asfloat(ub[(start_byte_offset / 16u)].xyz);
+  float3 v_80 = asfloat(ub[((16u + start_byte_offset) / 16u)].xyz);
+  return float3x3(v_79, v_80, asfloat(ub[((32u + start_byte_offset) / 16u)].xyz));
+}
+
+float3x2 v_81(uint start_byte_offset) {
+  uint4 v_82 = ub[(start_byte_offset / 16u)];
+  float2 v_83 = asfloat((((((start_byte_offset % 16u) / 4u) == 2u)) ? (v_82.zw) : (v_82.xy)));
+  uint4 v_84 = ub[((8u + start_byte_offset) / 16u)];
+  float2 v_85 = asfloat(((((((8u + start_byte_offset) % 16u) / 4u) == 2u)) ? (v_84.zw) : (v_84.xy)));
+  uint4 v_86 = ub[((16u + start_byte_offset) / 16u)];
+  return float3x2(v_83, v_85, asfloat(((((((16u + start_byte_offset) % 16u) / 4u) == 2u)) ? (v_86.zw) : (v_86.xy))));
+}
+
+float2x4 v_87(uint start_byte_offset) {
+  float4 v_88 = asfloat(ub[(start_byte_offset / 16u)]);
+  return float2x4(v_88, asfloat(ub[((16u + start_byte_offset) / 16u)]));
+}
+
+float2x3 v_89(uint start_byte_offset) {
+  float3 v_90 = asfloat(ub[(start_byte_offset / 16u)].xyz);
+  return float2x3(v_90, asfloat(ub[((16u + start_byte_offset) / 16u)].xyz));
+}
+
+float2x2 v_91(uint start_byte_offset) {
+  uint4 v_92 = ub[(start_byte_offset / 16u)];
+  float2 v_93 = asfloat((((((start_byte_offset % 16u) / 4u) == 2u)) ? (v_92.zw) : (v_92.xy)));
+  uint4 v_94 = ub[((8u + start_byte_offset) / 16u)];
+  return float2x2(v_93, asfloat(((((((8u + start_byte_offset) % 16u) / 4u) == 2u)) ? (v_94.zw) : (v_94.xy))));
+}
+
+[numthreads(1, 1, 1)]
+void main() {
+  float scalar_f32 = asfloat(ub[0u].x);
+  int scalar_i32 = asint(ub[0u].y);
+  uint scalar_u32 = ub[0u].z;
+  float16_t scalar_f16 = float16_t(f16tof32(ub[0u].w));
+  float2 vec2_f32 = asfloat(ub[1u].xy);
+  int2 vec2_i32 = asint(ub[1u].zw);
+  uint2 vec2_u32 = ub[2u].xy;
+  vector<float16_t, 2> vec2_f16 = tint_bitcast_to_f16_1(ub[2u].z);
+  float3 vec3_f32 = asfloat(ub[3u].xyz);
+  int3 vec3_i32 = asint(ub[4u].xyz);
+  uint3 vec3_u32 = ub[5u].xyz;
+  vector<float16_t, 3> vec3_f16 = tint_bitcast_to_f16(ub[6u]).xyz;
+  float4 vec4_f32 = asfloat(ub[7u]);
+  int4 vec4_i32 = asint(ub[8u]);
+  uint4 vec4_u32 = ub[9u];
+  vector<float16_t, 4> vec4_f16 = tint_bitcast_to_f16(ub[10u]);
+  float2x2 mat2x2_f32 = v_91(168u);
+  float2x3 mat2x3_f32 = v_89(192u);
+  float2x4 mat2x4_f32 = v_87(224u);
+  float3x2 mat3x2_f32 = v_81(256u);
+  float3x3 mat3x3_f32 = v_78(288u);
+  float3x4 mat3x4_f32 = v_75(336u);
+  float4x2 mat4x2_f32 = v_67(384u);
+  float4x3 mat4x3_f32 = v_63(416u);
+  float4x4 mat4x4_f32 = v_59(480u);
+  matrix<float16_t, 2, 2> mat2x2_f16 = v_55(544u);
+  matrix<float16_t, 2, 3> mat2x3_f16 = v_53(552u);
+  matrix<float16_t, 2, 4> mat2x4_f16 = v_51(568u);
+  matrix<float16_t, 3, 2> mat3x2_f16 = v_45(584u);
+  matrix<float16_t, 3, 3> mat3x3_f16 = v_42(600u);
+  matrix<float16_t, 3, 4> mat3x4_f16 = v_39(624u);
+  matrix<float16_t, 4, 2> mat4x2_f16 = v_12(648u);
+  matrix<float16_t, 4, 3> mat4x3_f16 = v_35(664u);
+  matrix<float16_t, 4, 4> mat4x4_f16 = v_31(696u);
+  float3 v_95[2] = v_24(736u);
+  matrix<float16_t, 4, 2> v_96[2] = v_20(768u);
+  Inner v_97 = v_1(800u);
+  Inner v_98[4] = v_6(816u);
+  int v_99 = (tint_f32_to_i32(scalar_f32) + scalar_i32);
+  int v_100 = (v_99 + int(scalar_u32));
+  int v_101 = (v_100 + tint_f16_to_i32(scalar_f16));
+  int v_102 = ((v_101 + tint_f32_to_i32(vec2_f32[0u])) + vec2_i32[0u]);
+  int v_103 = (v_102 + int(vec2_u32[0u]));
+  int v_104 = (v_103 + tint_f16_to_i32(vec2_f16[0u]));
+  int v_105 = ((v_104 + tint_f32_to_i32(vec3_f32[1u])) + vec3_i32[1u]);
+  int v_106 = (v_105 + int(vec3_u32[1u]));
+  int v_107 = (v_106 + tint_f16_to_i32(vec3_f16[1u]));
+  int v_108 = ((v_107 + tint_f32_to_i32(vec4_f32[2u])) + vec4_i32[2u]);
+  int v_109 = (v_108 + int(vec4_u32[2u]));
+  int v_110 = (v_109 + tint_f16_to_i32(vec4_f16[2u]));
+  int v_111 = (v_110 + tint_f32_to_i32(mat2x2_f32[0][0u]));
+  int v_112 = (v_111 + tint_f32_to_i32(mat2x3_f32[0][0u]));
+  int v_113 = (v_112 + tint_f32_to_i32(mat2x4_f32[0][0u]));
+  int v_114 = (v_113 + tint_f32_to_i32(mat3x2_f32[0][0u]));
+  int v_115 = (v_114 + tint_f32_to_i32(mat3x3_f32[0][0u]));
+  int v_116 = (v_115 + tint_f32_to_i32(mat3x4_f32[0][0u]));
+  int v_117 = (v_116 + tint_f32_to_i32(mat4x2_f32[0][0u]));
+  int v_118 = (v_117 + tint_f32_to_i32(mat4x3_f32[0][0u]));
+  int v_119 = (v_118 + tint_f32_to_i32(mat4x4_f32[0][0u]));
+  int v_120 = (v_119 + tint_f16_to_i32(mat2x2_f16[0][0u]));
+  int v_121 = (v_120 + tint_f16_to_i32(mat2x3_f16[0][0u]));
+  int v_122 = (v_121 + tint_f16_to_i32(mat2x4_f16[0][0u]));
+  int v_123 = (v_122 + tint_f16_to_i32(mat3x2_f16[0][0u]));
+  int v_124 = (v_123 + tint_f16_to_i32(mat3x3_f16[0][0u]));
+  int v_125 = (v_124 + tint_f16_to_i32(mat3x4_f16[0][0u]));
+  int v_126 = (v_125 + tint_f16_to_i32(mat4x2_f16[0][0u]));
+  int v_127 = (v_126 + tint_f16_to_i32(mat4x3_f16[0][0u]));
+  int v_128 = (v_127 + tint_f16_to_i32(mat4x4_f16[0][0u]));
+  float3 arr2_vec3_f32[2] = v_95;
+  int v_129 = (v_128 + tint_f32_to_i32(arr2_vec3_f32[0][0u]));
+  matrix<float16_t, 4, 2> arr2_mat4x2_f16[2] = v_96;
+  Inner struct_inner = v_97;
+  Inner array_struct_inner[4] = v_98;
+  s.Store(0u, asuint((((v_129 + tint_f16_to_i32(arr2_mat4x2_f16[0][0][0u])) + struct_inner.scalar_i32) + array_struct_inner[0].scalar_i32)));
+}
+
diff --git a/test/tint/buffer/uniform/static_index/read_f16.wgsl.expected.ir.fxc.hlsl b/test/tint/buffer/uniform/static_index/read_f16.wgsl.expected.ir.fxc.hlsl
index 3f437dc..5346772 100644
--- a/test/tint/buffer/uniform/static_index/read_f16.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/buffer/uniform/static_index/read_f16.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,323 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Access
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct Inner {
+  int scalar_i32;
+  float scalar_f32;
+  float16_t scalar_f16;
+};
+
+
+cbuffer cbuffer_ub : register(b0) {
+  uint4 ub[55];
+};
+RWByteAddressBuffer s : register(u1);
+int tint_f16_to_i32(float16_t value) {
+  return (((value <= float16_t(65504.0h))) ? ((((value >= float16_t(-65504.0h))) ? (int(value)) : (-2147483648))) : (2147483647));
+}
+
+int tint_f32_to_i32(float value) {
+  return (((value <= 2147483520.0f)) ? ((((value >= -2147483648.0f)) ? (int(value)) : (-2147483648))) : (2147483647));
+}
+
+Inner v_1(uint start_byte_offset) {
+  int v_2 = asint(ub[(start_byte_offset / 16u)][((start_byte_offset % 16u) / 4u)]);
+  float v_3 = asfloat(ub[((4u + start_byte_offset) / 16u)][(((4u + start_byte_offset) % 16u) / 4u)]);
+  uint v_4 = ub[((8u + start_byte_offset) / 16u)][(((8u + start_byte_offset) % 16u) / 4u)];
+  Inner v_5 = {v_2, v_3, float16_t(f16tof32((v_4 >> (((((8u + start_byte_offset) % 4u) == 0u)) ? (0u) : (16u)))))};
+  return v_5;
+}
+
+typedef Inner ary_ret[4];
+ary_ret v_6(uint start_byte_offset) {
+  Inner a[4] = (Inner[4])0;
+  {
+    uint v_7 = 0u;
+    v_7 = 0u;
+    while(true) {
+      uint v_8 = v_7;
+      if ((v_8 >= 4u)) {
+        break;
+      }
+      Inner v_9 = v_1((start_byte_offset + (v_8 * 16u)));
+      a[v_8] = v_9;
+      {
+        v_7 = (v_8 + 1u);
+      }
+      continue;
+    }
+  }
+  Inner v_10[4] = a;
+  return v_10;
+}
+
+vector<float16_t, 2> tint_bitcast_to_f16(uint src) {
+  uint v = src;
+  float t_low = f16tof32((v & 65535u));
+  float t_high = f16tof32(((v >> 16u) & 65535u));
+  float16_t v_11 = float16_t(t_low);
+  return vector<float16_t, 2>(v_11, float16_t(t_high));
+}
+
+matrix<float16_t, 4, 2> v_12(uint start_byte_offset) {
+  uint4 v_13 = ub[(start_byte_offset / 16u)];
+  vector<float16_t, 2> v_14 = tint_bitcast_to_f16((((((start_byte_offset % 16u) / 4u) == 2u)) ? (v_13.z) : (v_13.x)));
+  uint4 v_15 = ub[((4u + start_byte_offset) / 16u)];
+  vector<float16_t, 2> v_16 = tint_bitcast_to_f16(((((((4u + start_byte_offset) % 16u) / 4u) == 2u)) ? (v_15.z) : (v_15.x)));
+  uint4 v_17 = ub[((8u + start_byte_offset) / 16u)];
+  vector<float16_t, 2> v_18 = tint_bitcast_to_f16(((((((8u + start_byte_offset) % 16u) / 4u) == 2u)) ? (v_17.z) : (v_17.x)));
+  uint4 v_19 = ub[((12u + start_byte_offset) / 16u)];
+  return matrix<float16_t, 4, 2>(v_14, v_16, v_18, tint_bitcast_to_f16(((((((12u + start_byte_offset) % 16u) / 4u) == 2u)) ? (v_19.z) : (v_19.x))));
+}
+
+typedef matrix<float16_t, 4, 2> ary_ret_1[2];
+ary_ret_1 v_20(uint start_byte_offset) {
+  matrix<float16_t, 4, 2> a[2] = (matrix<float16_t, 4, 2>[2])0;
+  {
+    uint v_21 = 0u;
+    v_21 = 0u;
+    while(true) {
+      uint v_22 = v_21;
+      if ((v_22 >= 2u)) {
+        break;
+      }
+      a[v_22] = v_12((start_byte_offset + (v_22 * 16u)));
+      {
+        v_21 = (v_22 + 1u);
+      }
+      continue;
+    }
+  }
+  matrix<float16_t, 4, 2> v_23[2] = a;
+  return v_23;
+}
+
+typedef float3 ary_ret_2[2];
+ary_ret_2 v_24(uint start_byte_offset) {
+  float3 a[2] = (float3[2])0;
+  {
+    uint v_25 = 0u;
+    v_25 = 0u;
+    while(true) {
+      uint v_26 = v_25;
+      if ((v_26 >= 2u)) {
+        break;
+      }
+      a[v_26] = asfloat(ub[((start_byte_offset + (v_26 * 16u)) / 16u)].xyz);
+      {
+        v_25 = (v_26 + 1u);
+      }
+      continue;
+    }
+  }
+  float3 v_27[2] = a;
+  return v_27;
+}
+
+vector<float16_t, 4> tint_bitcast_to_f16_1(uint4 src) {
+  uint4 v = src;
+  uint4 mask = (65535u).xxxx;
+  uint4 shift = (16u).xxxx;
+  float4 t_low = f16tof32((v & mask));
+  float4 t_high = f16tof32(((v >> shift) & mask));
+  float16_t v_28 = float16_t(t_low.x);
+  float16_t v_29 = float16_t(t_high.x);
+  float16_t v_30 = float16_t(t_low.y);
+  return vector<float16_t, 4>(v_28, v_29, v_30, float16_t(t_high.y));
+}
+
+matrix<float16_t, 4, 4> v_31(uint start_byte_offset) {
+  vector<float16_t, 4> v_32 = tint_bitcast_to_f16_1(ub[(start_byte_offset / 16u)]);
+  vector<float16_t, 4> v_33 = tint_bitcast_to_f16_1(ub[((8u + start_byte_offset) / 16u)]);
+  vector<float16_t, 4> v_34 = tint_bitcast_to_f16_1(ub[((16u + start_byte_offset) / 16u)]);
+  return matrix<float16_t, 4, 4>(v_32, v_33, v_34, tint_bitcast_to_f16_1(ub[((24u + start_byte_offset) / 16u)]));
+}
+
+matrix<float16_t, 4, 3> v_35(uint start_byte_offset) {
+  vector<float16_t, 3> v_36 = tint_bitcast_to_f16_1(ub[(start_byte_offset / 16u)]).xyz;
+  vector<float16_t, 3> v_37 = tint_bitcast_to_f16_1(ub[((8u + start_byte_offset) / 16u)]).xyz;
+  vector<float16_t, 3> v_38 = tint_bitcast_to_f16_1(ub[((16u + start_byte_offset) / 16u)]).xyz;
+  return matrix<float16_t, 4, 3>(v_36, v_37, v_38, tint_bitcast_to_f16_1(ub[((24u + start_byte_offset) / 16u)]).xyz);
+}
+
+matrix<float16_t, 3, 4> v_39(uint start_byte_offset) {
+  vector<float16_t, 4> v_40 = tint_bitcast_to_f16_1(ub[(start_byte_offset / 16u)]);
+  vector<float16_t, 4> v_41 = tint_bitcast_to_f16_1(ub[((8u + start_byte_offset) / 16u)]);
+  return matrix<float16_t, 3, 4>(v_40, v_41, tint_bitcast_to_f16_1(ub[((16u + start_byte_offset) / 16u)]));
+}
+
+matrix<float16_t, 3, 3> v_42(uint start_byte_offset) {
+  vector<float16_t, 3> v_43 = tint_bitcast_to_f16_1(ub[(start_byte_offset / 16u)]).xyz;
+  vector<float16_t, 3> v_44 = tint_bitcast_to_f16_1(ub[((8u + start_byte_offset) / 16u)]).xyz;
+  return matrix<float16_t, 3, 3>(v_43, v_44, tint_bitcast_to_f16_1(ub[((16u + start_byte_offset) / 16u)]).xyz);
+}
+
+matrix<float16_t, 3, 2> v_45(uint start_byte_offset) {
+  uint4 v_46 = ub[(start_byte_offset / 16u)];
+  vector<float16_t, 2> v_47 = tint_bitcast_to_f16((((((start_byte_offset % 16u) / 4u) == 2u)) ? (v_46.z) : (v_46.x)));
+  uint4 v_48 = ub[((4u + start_byte_offset) / 16u)];
+  vector<float16_t, 2> v_49 = tint_bitcast_to_f16(((((((4u + start_byte_offset) % 16u) / 4u) == 2u)) ? (v_48.z) : (v_48.x)));
+  uint4 v_50 = ub[((8u + start_byte_offset) / 16u)];
+  return matrix<float16_t, 3, 2>(v_47, v_49, tint_bitcast_to_f16(((((((8u + start_byte_offset) % 16u) / 4u) == 2u)) ? (v_50.z) : (v_50.x))));
+}
+
+matrix<float16_t, 2, 4> v_51(uint start_byte_offset) {
+  vector<float16_t, 4> v_52 = tint_bitcast_to_f16_1(ub[(start_byte_offset / 16u)]);
+  return matrix<float16_t, 2, 4>(v_52, tint_bitcast_to_f16_1(ub[((8u + start_byte_offset) / 16u)]));
+}
+
+matrix<float16_t, 2, 3> v_53(uint start_byte_offset) {
+  vector<float16_t, 3> v_54 = tint_bitcast_to_f16_1(ub[(start_byte_offset / 16u)]).xyz;
+  return matrix<float16_t, 2, 3>(v_54, tint_bitcast_to_f16_1(ub[((8u + start_byte_offset) / 16u)]).xyz);
+}
+
+matrix<float16_t, 2, 2> v_55(uint start_byte_offset) {
+  uint4 v_56 = ub[(start_byte_offset / 16u)];
+  vector<float16_t, 2> v_57 = tint_bitcast_to_f16((((((start_byte_offset % 16u) / 4u) == 2u)) ? (v_56.z) : (v_56.x)));
+  uint4 v_58 = ub[((4u + start_byte_offset) / 16u)];
+  return matrix<float16_t, 2, 2>(v_57, tint_bitcast_to_f16(((((((4u + start_byte_offset) % 16u) / 4u) == 2u)) ? (v_58.z) : (v_58.x))));
+}
+
+float4x4 v_59(uint start_byte_offset) {
+  float4 v_60 = asfloat(ub[(start_byte_offset / 16u)]);
+  float4 v_61 = asfloat(ub[((16u + start_byte_offset) / 16u)]);
+  float4 v_62 = asfloat(ub[((32u + start_byte_offset) / 16u)]);
+  return float4x4(v_60, v_61, v_62, asfloat(ub[((48u + start_byte_offset) / 16u)]));
+}
+
+float4x3 v_63(uint start_byte_offset) {
+  float3 v_64 = asfloat(ub[(start_byte_offset / 16u)].xyz);
+  float3 v_65 = asfloat(ub[((16u + start_byte_offset) / 16u)].xyz);
+  float3 v_66 = asfloat(ub[((32u + start_byte_offset) / 16u)].xyz);
+  return float4x3(v_64, v_65, v_66, asfloat(ub[((48u + start_byte_offset) / 16u)].xyz));
+}
+
+float4x2 v_67(uint start_byte_offset) {
+  uint4 v_68 = ub[(start_byte_offset / 16u)];
+  float2 v_69 = asfloat((((((start_byte_offset % 16u) / 4u) == 2u)) ? (v_68.zw) : (v_68.xy)));
+  uint4 v_70 = ub[((8u + start_byte_offset) / 16u)];
+  float2 v_71 = asfloat(((((((8u + start_byte_offset) % 16u) / 4u) == 2u)) ? (v_70.zw) : (v_70.xy)));
+  uint4 v_72 = ub[((16u + start_byte_offset) / 16u)];
+  float2 v_73 = asfloat(((((((16u + start_byte_offset) % 16u) / 4u) == 2u)) ? (v_72.zw) : (v_72.xy)));
+  uint4 v_74 = ub[((24u + start_byte_offset) / 16u)];
+  return float4x2(v_69, v_71, v_73, asfloat(((((((24u + start_byte_offset) % 16u) / 4u) == 2u)) ? (v_74.zw) : (v_74.xy))));
+}
+
+float3x4 v_75(uint start_byte_offset) {
+  float4 v_76 = asfloat(ub[(start_byte_offset / 16u)]);
+  float4 v_77 = asfloat(ub[((16u + start_byte_offset) / 16u)]);
+  return float3x4(v_76, v_77, asfloat(ub[((32u + start_byte_offset) / 16u)]));
+}
+
+float3x3 v_78(uint start_byte_offset) {
+  float3 v_79 = asfloat(ub[(start_byte_offset / 16u)].xyz);
+  float3 v_80 = asfloat(ub[((16u + start_byte_offset) / 16u)].xyz);
+  return float3x3(v_79, v_80, asfloat(ub[((32u + start_byte_offset) / 16u)].xyz));
+}
+
+float3x2 v_81(uint start_byte_offset) {
+  uint4 v_82 = ub[(start_byte_offset / 16u)];
+  float2 v_83 = asfloat((((((start_byte_offset % 16u) / 4u) == 2u)) ? (v_82.zw) : (v_82.xy)));
+  uint4 v_84 = ub[((8u + start_byte_offset) / 16u)];
+  float2 v_85 = asfloat(((((((8u + start_byte_offset) % 16u) / 4u) == 2u)) ? (v_84.zw) : (v_84.xy)));
+  uint4 v_86 = ub[((16u + start_byte_offset) / 16u)];
+  return float3x2(v_83, v_85, asfloat(((((((16u + start_byte_offset) % 16u) / 4u) == 2u)) ? (v_86.zw) : (v_86.xy))));
+}
+
+float2x4 v_87(uint start_byte_offset) {
+  float4 v_88 = asfloat(ub[(start_byte_offset / 16u)]);
+  return float2x4(v_88, asfloat(ub[((16u + start_byte_offset) / 16u)]));
+}
+
+float2x3 v_89(uint start_byte_offset) {
+  float3 v_90 = asfloat(ub[(start_byte_offset / 16u)].xyz);
+  return float2x3(v_90, asfloat(ub[((16u + start_byte_offset) / 16u)].xyz));
+}
+
+float2x2 v_91(uint start_byte_offset) {
+  uint4 v_92 = ub[(start_byte_offset / 16u)];
+  float2 v_93 = asfloat((((((start_byte_offset % 16u) / 4u) == 2u)) ? (v_92.zw) : (v_92.xy)));
+  uint4 v_94 = ub[((8u + start_byte_offset) / 16u)];
+  return float2x2(v_93, asfloat(((((((8u + start_byte_offset) % 16u) / 4u) == 2u)) ? (v_94.zw) : (v_94.xy))));
+}
+
+[numthreads(1, 1, 1)]
+void main() {
+  float scalar_f32 = asfloat(ub[0u].x);
+  int scalar_i32 = asint(ub[0u].y);
+  uint scalar_u32 = ub[0u].z;
+  float16_t scalar_f16 = float16_t(f16tof32(ub[0u].w));
+  float2 vec2_f32 = asfloat(ub[1u].xy);
+  int2 vec2_i32 = asint(ub[1u].zw);
+  uint2 vec2_u32 = ub[2u].xy;
+  vector<float16_t, 2> vec2_f16 = tint_bitcast_to_f16(ub[2u].z);
+  float3 vec3_f32 = asfloat(ub[3u].xyz);
+  int3 vec3_i32 = asint(ub[4u].xyz);
+  uint3 vec3_u32 = ub[5u].xyz;
+  vector<float16_t, 3> vec3_f16 = tint_bitcast_to_f16_1(ub[6u]).xyz;
+  float4 vec4_f32 = asfloat(ub[7u]);
+  int4 vec4_i32 = asint(ub[8u]);
+  uint4 vec4_u32 = ub[9u];
+  vector<float16_t, 4> vec4_f16 = tint_bitcast_to_f16_1(ub[10u]);
+  float2x2 mat2x2_f32 = v_91(168u);
+  float2x3 mat2x3_f32 = v_89(192u);
+  float2x4 mat2x4_f32 = v_87(224u);
+  float3x2 mat3x2_f32 = v_81(256u);
+  float3x3 mat3x3_f32 = v_78(288u);
+  float3x4 mat3x4_f32 = v_75(336u);
+  float4x2 mat4x2_f32 = v_67(384u);
+  float4x3 mat4x3_f32 = v_63(416u);
+  float4x4 mat4x4_f32 = v_59(480u);
+  matrix<float16_t, 2, 2> mat2x2_f16 = v_55(544u);
+  matrix<float16_t, 2, 3> mat2x3_f16 = v_53(552u);
+  matrix<float16_t, 2, 4> mat2x4_f16 = v_51(568u);
+  matrix<float16_t, 3, 2> mat3x2_f16 = v_45(584u);
+  matrix<float16_t, 3, 3> mat3x3_f16 = v_42(600u);
+  matrix<float16_t, 3, 4> mat3x4_f16 = v_39(624u);
+  matrix<float16_t, 4, 2> mat4x2_f16 = v_12(648u);
+  matrix<float16_t, 4, 3> mat4x3_f16 = v_35(664u);
+  matrix<float16_t, 4, 4> mat4x4_f16 = v_31(696u);
+  float3 v_95[2] = v_24(736u);
+  matrix<float16_t, 4, 2> v_96[2] = v_20(768u);
+  Inner v_97 = v_1(800u);
+  Inner v_98[4] = v_6(816u);
+  int v_99 = (tint_f32_to_i32(scalar_f32) + scalar_i32);
+  int v_100 = (v_99 + int(scalar_u32));
+  int v_101 = (v_100 + tint_f16_to_i32(scalar_f16));
+  int v_102 = ((v_101 + tint_f32_to_i32(vec2_f32[0u])) + vec2_i32[0u]);
+  int v_103 = (v_102 + int(vec2_u32[0u]));
+  int v_104 = (v_103 + tint_f16_to_i32(vec2_f16[0u]));
+  int v_105 = ((v_104 + tint_f32_to_i32(vec3_f32[1u])) + vec3_i32[1u]);
+  int v_106 = (v_105 + int(vec3_u32[1u]));
+  int v_107 = (v_106 + tint_f16_to_i32(vec3_f16[1u]));
+  int v_108 = ((v_107 + tint_f32_to_i32(vec4_f32[2u])) + vec4_i32[2u]);
+  int v_109 = (v_108 + int(vec4_u32[2u]));
+  int v_110 = (v_109 + tint_f16_to_i32(vec4_f16[2u]));
+  int v_111 = (v_110 + tint_f32_to_i32(mat2x2_f32[0][0u]));
+  int v_112 = (v_111 + tint_f32_to_i32(mat2x3_f32[0][0u]));
+  int v_113 = (v_112 + tint_f32_to_i32(mat2x4_f32[0][0u]));
+  int v_114 = (v_113 + tint_f32_to_i32(mat3x2_f32[0][0u]));
+  int v_115 = (v_114 + tint_f32_to_i32(mat3x3_f32[0][0u]));
+  int v_116 = (v_115 + tint_f32_to_i32(mat3x4_f32[0][0u]));
+  int v_117 = (v_116 + tint_f32_to_i32(mat4x2_f32[0][0u]));
+  int v_118 = (v_117 + tint_f32_to_i32(mat4x3_f32[0][0u]));
+  int v_119 = (v_118 + tint_f32_to_i32(mat4x4_f32[0][0u]));
+  int v_120 = (v_119 + tint_f16_to_i32(mat2x2_f16[0][0u]));
+  int v_121 = (v_120 + tint_f16_to_i32(mat2x3_f16[0][0u]));
+  int v_122 = (v_121 + tint_f16_to_i32(mat2x4_f16[0][0u]));
+  int v_123 = (v_122 + tint_f16_to_i32(mat3x2_f16[0][0u]));
+  int v_124 = (v_123 + tint_f16_to_i32(mat3x3_f16[0][0u]));
+  int v_125 = (v_124 + tint_f16_to_i32(mat3x4_f16[0][0u]));
+  int v_126 = (v_125 + tint_f16_to_i32(mat4x2_f16[0][0u]));
+  int v_127 = (v_126 + tint_f16_to_i32(mat4x3_f16[0][0u]));
+  int v_128 = (v_127 + tint_f16_to_i32(mat4x4_f16[0][0u]));
+  float3 arr2_vec3_f32[2] = v_95;
+  int v_129 = (v_128 + tint_f32_to_i32(arr2_vec3_f32[0][0u]));
+  matrix<float16_t, 4, 2> arr2_mat4x2_f16[2] = v_96;
+  Inner struct_inner = v_97;
+  Inner array_struct_inner[4] = v_98;
+  s.Store(0u, asuint((((v_129 + tint_f16_to_i32(arr2_mat4x2_f16[0][0][0u])) + struct_inner.scalar_i32) + array_struct_inner[0].scalar_i32)));
+}
+
+FXC validation failure:
+c:\src\dawn\Shader@0x000001BD5230B710(4,3-11): error X3000: unrecognized identifier 'float16_t'
+
diff --git a/test/tint/buffer/uniform/std140/array/mat2x2_f32/dynamic_index_via_ptr.wgsl.expected.ir.dxc.hlsl b/test/tint/buffer/uniform/std140/array/mat2x2_f32/dynamic_index_via_ptr.wgsl.expected.ir.dxc.hlsl
index 3f437dc..2409d0b 100644
--- a/test/tint/buffer/uniform/std140/array/mat2x2_f32/dynamic_index_via_ptr.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/buffer/uniform/std140/array/mat2x2_f32/dynamic_index_via_ptr.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,52 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Access
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+cbuffer cbuffer_a : register(b0) {
+  uint4 a[4];
+};
+RWByteAddressBuffer s : register(u1);
+static int counter = 0;
+int i() {
+  counter = (counter + 1);
+  return counter;
+}
+
+float2x2 v(uint start_byte_offset) {
+  uint4 v_1 = a[(start_byte_offset / 16u)];
+  float2 v_2 = asfloat((((((start_byte_offset % 16u) / 4u) == 2u)) ? (v_1.zw) : (v_1.xy)));
+  uint4 v_3 = a[((8u + start_byte_offset) / 16u)];
+  return float2x2(v_2, asfloat(((((((8u + start_byte_offset) % 16u) / 4u) == 2u)) ? (v_3.zw) : (v_3.xy))));
+}
+
+typedef float2x2 ary_ret[4];
+ary_ret v_4(uint start_byte_offset) {
+  float2x2 a[4] = (float2x2[4])0;
+  {
+    uint v_5 = 0u;
+    v_5 = 0u;
+    while(true) {
+      uint v_6 = v_5;
+      if ((v_6 >= 4u)) {
+        break;
+      }
+      a[v_6] = v((start_byte_offset + (v_6 * 16u)));
+      {
+        v_5 = (v_6 + 1u);
+      }
+      continue;
+    }
+  }
+  float2x2 v_7[4] = a;
+  return v_7;
+}
+
+[numthreads(1, 1, 1)]
+void f() {
+  uint v_8 = (16u * uint(i()));
+  uint v_9 = (8u * uint(i()));
+  float2x2 v_10[4] = v_4(0u);
+  float2x2 l_a_i = v(v_8);
+  uint4 v_11 = a[((v_8 + v_9) / 16u)];
+  float2 l_a_i_i = asfloat(((((((v_8 + v_9) % 16u) / 4u) == 2u)) ? (v_11.zw) : (v_11.xy)));
+  float2x2 l_a[4] = v_10;
+  s.Store(0u, asuint((((asfloat(a[((v_8 + v_9) / 16u)][(((v_8 + v_9) % 16u) / 4u)]) + l_a[0][0][0u]) + l_a_i[0][0u]) + l_a_i_i[0u])));
+}
+
diff --git a/test/tint/buffer/uniform/std140/array/mat2x2_f32/dynamic_index_via_ptr.wgsl.expected.ir.fxc.hlsl b/test/tint/buffer/uniform/std140/array/mat2x2_f32/dynamic_index_via_ptr.wgsl.expected.ir.fxc.hlsl
index 3f437dc..2409d0b 100644
--- a/test/tint/buffer/uniform/std140/array/mat2x2_f32/dynamic_index_via_ptr.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/buffer/uniform/std140/array/mat2x2_f32/dynamic_index_via_ptr.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,52 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Access
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+cbuffer cbuffer_a : register(b0) {
+  uint4 a[4];
+};
+RWByteAddressBuffer s : register(u1);
+static int counter = 0;
+int i() {
+  counter = (counter + 1);
+  return counter;
+}
+
+float2x2 v(uint start_byte_offset) {
+  uint4 v_1 = a[(start_byte_offset / 16u)];
+  float2 v_2 = asfloat((((((start_byte_offset % 16u) / 4u) == 2u)) ? (v_1.zw) : (v_1.xy)));
+  uint4 v_3 = a[((8u + start_byte_offset) / 16u)];
+  return float2x2(v_2, asfloat(((((((8u + start_byte_offset) % 16u) / 4u) == 2u)) ? (v_3.zw) : (v_3.xy))));
+}
+
+typedef float2x2 ary_ret[4];
+ary_ret v_4(uint start_byte_offset) {
+  float2x2 a[4] = (float2x2[4])0;
+  {
+    uint v_5 = 0u;
+    v_5 = 0u;
+    while(true) {
+      uint v_6 = v_5;
+      if ((v_6 >= 4u)) {
+        break;
+      }
+      a[v_6] = v((start_byte_offset + (v_6 * 16u)));
+      {
+        v_5 = (v_6 + 1u);
+      }
+      continue;
+    }
+  }
+  float2x2 v_7[4] = a;
+  return v_7;
+}
+
+[numthreads(1, 1, 1)]
+void f() {
+  uint v_8 = (16u * uint(i()));
+  uint v_9 = (8u * uint(i()));
+  float2x2 v_10[4] = v_4(0u);
+  float2x2 l_a_i = v(v_8);
+  uint4 v_11 = a[((v_8 + v_9) / 16u)];
+  float2 l_a_i_i = asfloat(((((((v_8 + v_9) % 16u) / 4u) == 2u)) ? (v_11.zw) : (v_11.xy)));
+  float2x2 l_a[4] = v_10;
+  s.Store(0u, asuint((((asfloat(a[((v_8 + v_9) / 16u)][(((v_8 + v_9) % 16u) / 4u)]) + l_a[0][0][0u]) + l_a_i[0][0u]) + l_a_i_i[0u])));
+}
+
diff --git a/test/tint/buffer/uniform/std140/array/mat2x2_f32/static_index_via_ptr.wgsl.expected.ir.dxc.hlsl b/test/tint/buffer/uniform/std140/array/mat2x2_f32/static_index_via_ptr.wgsl.expected.ir.dxc.hlsl
index 3f437dc..d94780f 100644
--- a/test/tint/buffer/uniform/std140/array/mat2x2_f32/static_index_via_ptr.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/buffer/uniform/std140/array/mat2x2_f32/static_index_via_ptr.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,43 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Access
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+cbuffer cbuffer_a : register(b0) {
+  uint4 a[4];
+};
+RWByteAddressBuffer s : register(u1);
+float2x2 v(uint start_byte_offset) {
+  uint4 v_1 = a[(start_byte_offset / 16u)];
+  float2 v_2 = asfloat((((((start_byte_offset % 16u) / 4u) == 2u)) ? (v_1.zw) : (v_1.xy)));
+  uint4 v_3 = a[((8u + start_byte_offset) / 16u)];
+  return float2x2(v_2, asfloat(((((((8u + start_byte_offset) % 16u) / 4u) == 2u)) ? (v_3.zw) : (v_3.xy))));
+}
+
+typedef float2x2 ary_ret[4];
+ary_ret v_4(uint start_byte_offset) {
+  float2x2 a[4] = (float2x2[4])0;
+  {
+    uint v_5 = 0u;
+    v_5 = 0u;
+    while(true) {
+      uint v_6 = v_5;
+      if ((v_6 >= 4u)) {
+        break;
+      }
+      a[v_6] = v((start_byte_offset + (v_6 * 16u)));
+      {
+        v_5 = (v_6 + 1u);
+      }
+      continue;
+    }
+  }
+  float2x2 v_7[4] = a;
+  return v_7;
+}
+
+[numthreads(1, 1, 1)]
+void f() {
+  float2x2 v_8[4] = v_4(0u);
+  float2x2 l_a_i = v(40u);
+  float2 l_a_i_i = asfloat(a[2u].zw);
+  float2x2 l_a[4] = v_8;
+  s.Store(0u, asuint((((asfloat(a[2u].z) + l_a[0][0][0u]) + l_a_i[0][0u]) + l_a_i_i[0u])));
+}
+
diff --git a/test/tint/buffer/uniform/std140/array/mat2x2_f32/static_index_via_ptr.wgsl.expected.ir.fxc.hlsl b/test/tint/buffer/uniform/std140/array/mat2x2_f32/static_index_via_ptr.wgsl.expected.ir.fxc.hlsl
index 3f437dc..5e09c8b 100644
--- a/test/tint/buffer/uniform/std140/array/mat2x2_f32/static_index_via_ptr.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/buffer/uniform/std140/array/mat2x2_f32/static_index_via_ptr.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,43 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Access
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+cbuffer cbuffer_a : register(b0) {
+  uint4 a[4];
+};
+RWByteAddressBuffer s : register(u1);
+float2x2 v(uint start_byte_offset) {
+  uint4 v_1 = a[(start_byte_offset / 16u)];
+  float2 v_2 = asfloat((((((start_byte_offset % 16u) / 4u) == 2u)) ? (v_1.zw) : (v_1.xy)));
+  uint4 v_3 = a[((8u + start_byte_offset) / 16u)];
+  return float2x2(v_2, asfloat(((((((8u + start_byte_offset) % 16u) / 4u) == 2u)) ? (v_3.zw) : (v_3.xy))));
+}
+
+typedef float2x2 ary_ret[4];
+ary_ret v_4(uint start_byte_offset) {
+  float2x2 a[4] = (float2x2[4])0;
+  {
+    uint v_5 = 0u;
+    v_5 = 0u;
+    while(true) {
+      uint v_6 = v_5;
+      if ((v_6 >= 4u)) {
+        break;
+      }
+      a[v_6] = v((start_byte_offset + (v_6 * 16u)));
+      {
+        v_5 = (v_6 + 1u);
+      }
+      continue;
+    }
+  }
+  float2x2 v_7[4] = a;
+  return v_7;
+}
+
+[numthreads(1, 1, 1)]
+void f() {
+  float2x2 v_8[4] = v_4(0u);
+  float2x2 l_a_i = v(32u);
+  float2 l_a_i_i = asfloat(a[2u].zw);
+  float2x2 l_a[4] = v_8;
+  s.Store(0u, asuint((((asfloat(a[2u].z) + l_a[0][0][0u]) + l_a_i[0][0u]) + l_a_i_i[0u])));
+}
+
diff --git a/test/tint/buffer/uniform/std140/array/mat2x2_f32/to_builtin.wgsl.expected.ir.dxc.hlsl b/test/tint/buffer/uniform/std140/array/mat2x2_f32/to_builtin.wgsl.expected.ir.dxc.hlsl
index 3f437dc..9c26030 100644
--- a/test/tint/buffer/uniform/std140/array/mat2x2_f32/to_builtin.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/buffer/uniform/std140/array/mat2x2_f32/to_builtin.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,21 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Access
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+cbuffer cbuffer_u : register(b0) {
+  uint4 u[4];
+};
+RWByteAddressBuffer s : register(u1);
+float2x2 v(uint start_byte_offset) {
+  uint4 v_1 = u[(start_byte_offset / 16u)];
+  float2 v_2 = asfloat((((((start_byte_offset % 16u) / 4u) == 2u)) ? (v_1.zw) : (v_1.xy)));
+  uint4 v_3 = u[((8u + start_byte_offset) / 16u)];
+  return float2x2(v_2, asfloat(((((((8u + start_byte_offset) % 16u) / 4u) == 2u)) ? (v_3.zw) : (v_3.xy))));
+}
+
+[numthreads(1, 1, 1)]
+void f() {
+  float2x2 t = transpose(v(32u));
+  float l = length(asfloat(u[0u].zw).yx);
+  float a = abs(asfloat(u[0u].zw).yx[0u]);
+  float v_4 = (t[0][0u] + float(l));
+  s.Store(0u, asuint((v_4 + float(a))));
+}
+
diff --git a/test/tint/buffer/uniform/std140/array/mat2x2_f32/to_builtin.wgsl.expected.ir.fxc.hlsl b/test/tint/buffer/uniform/std140/array/mat2x2_f32/to_builtin.wgsl.expected.ir.fxc.hlsl
index 3f437dc..9c26030 100644
--- a/test/tint/buffer/uniform/std140/array/mat2x2_f32/to_builtin.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/buffer/uniform/std140/array/mat2x2_f32/to_builtin.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,21 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Access
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+cbuffer cbuffer_u : register(b0) {
+  uint4 u[4];
+};
+RWByteAddressBuffer s : register(u1);
+float2x2 v(uint start_byte_offset) {
+  uint4 v_1 = u[(start_byte_offset / 16u)];
+  float2 v_2 = asfloat((((((start_byte_offset % 16u) / 4u) == 2u)) ? (v_1.zw) : (v_1.xy)));
+  uint4 v_3 = u[((8u + start_byte_offset) / 16u)];
+  return float2x2(v_2, asfloat(((((((8u + start_byte_offset) % 16u) / 4u) == 2u)) ? (v_3.zw) : (v_3.xy))));
+}
+
+[numthreads(1, 1, 1)]
+void f() {
+  float2x2 t = transpose(v(32u));
+  float l = length(asfloat(u[0u].zw).yx);
+  float a = abs(asfloat(u[0u].zw).yx[0u]);
+  float v_4 = (t[0][0u] + float(l));
+  s.Store(0u, asuint((v_4 + float(a))));
+}
+
diff --git a/test/tint/buffer/uniform/std140/array/mat2x2_f32/to_fn.wgsl.expected.ir.dxc.hlsl b/test/tint/buffer/uniform/std140/array/mat2x2_f32/to_fn.wgsl.expected.ir.dxc.hlsl
index 3f437dc..16f8e9c 100644
--- a/test/tint/buffer/uniform/std140/array/mat2x2_f32/to_fn.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/buffer/uniform/std140/array/mat2x2_f32/to_fn.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,59 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Access
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+cbuffer cbuffer_u : register(b0) {
+  uint4 u[4];
+};
+RWByteAddressBuffer s : register(u1);
+float a(float2x2 a_1[4]) {
+  return a_1[0][0][0u];
+}
+
+float b(float2x2 m) {
+  return m[0][0u];
+}
+
+float c(float2 v) {
+  return v[0u];
+}
+
+float d(float f) {
+  return f;
+}
+
+float2x2 v_1(uint start_byte_offset) {
+  uint4 v_2 = u[(start_byte_offset / 16u)];
+  float2 v_3 = asfloat((((((start_byte_offset % 16u) / 4u) == 2u)) ? (v_2.zw) : (v_2.xy)));
+  uint4 v_4 = u[((8u + start_byte_offset) / 16u)];
+  return float2x2(v_3, asfloat(((((((8u + start_byte_offset) % 16u) / 4u) == 2u)) ? (v_4.zw) : (v_4.xy))));
+}
+
+typedef float2x2 ary_ret[4];
+ary_ret v_5(uint start_byte_offset) {
+  float2x2 a[4] = (float2x2[4])0;
+  {
+    uint v_6 = 0u;
+    v_6 = 0u;
+    while(true) {
+      uint v_7 = v_6;
+      if ((v_7 >= 4u)) {
+        break;
+      }
+      a[v_7] = v_1((start_byte_offset + (v_7 * 16u)));
+      {
+        v_6 = (v_7 + 1u);
+      }
+      continue;
+    }
+  }
+  float2x2 v_8[4] = a;
+  return v_8;
+}
+
+[numthreads(1, 1, 1)]
+void f() {
+  float2x2 v_9[4] = v_5(0u);
+  float v_10 = a(v_9);
+  float v_11 = (v_10 + b(v_1(16u)));
+  float v_12 = (v_11 + c(asfloat(u[1u].xy).yx));
+  s.Store(0u, asuint((v_12 + d(asfloat(u[1u].xy).yx[0u]))));
+}
+
diff --git a/test/tint/buffer/uniform/std140/array/mat2x2_f32/to_fn.wgsl.expected.ir.fxc.hlsl b/test/tint/buffer/uniform/std140/array/mat2x2_f32/to_fn.wgsl.expected.ir.fxc.hlsl
index 3f437dc..16f8e9c 100644
--- a/test/tint/buffer/uniform/std140/array/mat2x2_f32/to_fn.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/buffer/uniform/std140/array/mat2x2_f32/to_fn.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,59 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Access
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+cbuffer cbuffer_u : register(b0) {
+  uint4 u[4];
+};
+RWByteAddressBuffer s : register(u1);
+float a(float2x2 a_1[4]) {
+  return a_1[0][0][0u];
+}
+
+float b(float2x2 m) {
+  return m[0][0u];
+}
+
+float c(float2 v) {
+  return v[0u];
+}
+
+float d(float f) {
+  return f;
+}
+
+float2x2 v_1(uint start_byte_offset) {
+  uint4 v_2 = u[(start_byte_offset / 16u)];
+  float2 v_3 = asfloat((((((start_byte_offset % 16u) / 4u) == 2u)) ? (v_2.zw) : (v_2.xy)));
+  uint4 v_4 = u[((8u + start_byte_offset) / 16u)];
+  return float2x2(v_3, asfloat(((((((8u + start_byte_offset) % 16u) / 4u) == 2u)) ? (v_4.zw) : (v_4.xy))));
+}
+
+typedef float2x2 ary_ret[4];
+ary_ret v_5(uint start_byte_offset) {
+  float2x2 a[4] = (float2x2[4])0;
+  {
+    uint v_6 = 0u;
+    v_6 = 0u;
+    while(true) {
+      uint v_7 = v_6;
+      if ((v_7 >= 4u)) {
+        break;
+      }
+      a[v_7] = v_1((start_byte_offset + (v_7 * 16u)));
+      {
+        v_6 = (v_7 + 1u);
+      }
+      continue;
+    }
+  }
+  float2x2 v_8[4] = a;
+  return v_8;
+}
+
+[numthreads(1, 1, 1)]
+void f() {
+  float2x2 v_9[4] = v_5(0u);
+  float v_10 = a(v_9);
+  float v_11 = (v_10 + b(v_1(16u)));
+  float v_12 = (v_11 + c(asfloat(u[1u].xy).yx));
+  s.Store(0u, asuint((v_12 + d(asfloat(u[1u].xy).yx[0u]))));
+}
+
diff --git a/test/tint/buffer/uniform/std140/array/mat2x2_f32/to_private.wgsl.expected.ir.dxc.hlsl b/test/tint/buffer/uniform/std140/array/mat2x2_f32/to_private.wgsl.expected.ir.dxc.hlsl
index 3f437dc..065c051 100644
--- a/test/tint/buffer/uniform/std140/array/mat2x2_f32/to_private.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/buffer/uniform/std140/array/mat2x2_f32/to_private.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,45 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Access
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+cbuffer cbuffer_u : register(b0) {
+  uint4 u[4];
+};
+RWByteAddressBuffer s : register(u1);
+static float2x2 p[4] = (float2x2[4])0;
+float2x2 v(uint start_byte_offset) {
+  uint4 v_1 = u[(start_byte_offset / 16u)];
+  float2 v_2 = asfloat((((((start_byte_offset % 16u) / 4u) == 2u)) ? (v_1.zw) : (v_1.xy)));
+  uint4 v_3 = u[((8u + start_byte_offset) / 16u)];
+  return float2x2(v_2, asfloat(((((((8u + start_byte_offset) % 16u) / 4u) == 2u)) ? (v_3.zw) : (v_3.xy))));
+}
+
+typedef float2x2 ary_ret[4];
+ary_ret v_4(uint start_byte_offset) {
+  float2x2 a[4] = (float2x2[4])0;
+  {
+    uint v_5 = 0u;
+    v_5 = 0u;
+    while(true) {
+      uint v_6 = v_5;
+      if ((v_6 >= 4u)) {
+        break;
+      }
+      a[v_6] = v((start_byte_offset + (v_6 * 16u)));
+      {
+        v_5 = (v_6 + 1u);
+      }
+      continue;
+    }
+  }
+  float2x2 v_7[4] = a;
+  return v_7;
+}
+
+[numthreads(1, 1, 1)]
+void f() {
+  float2x2 v_8[4] = v_4(0u);
+  p = v_8;
+  p[1] = v(32u);
+  p[1][0] = asfloat(u[0u].zw).yx;
+  p[1][0][0u] = asfloat(u[0u].z);
+  s.Store(0u, asuint(p[1][0].x));
+}
+
diff --git a/test/tint/buffer/uniform/std140/array/mat2x2_f32/to_private.wgsl.expected.ir.fxc.hlsl b/test/tint/buffer/uniform/std140/array/mat2x2_f32/to_private.wgsl.expected.ir.fxc.hlsl
index 3f437dc..065c051 100644
--- a/test/tint/buffer/uniform/std140/array/mat2x2_f32/to_private.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/buffer/uniform/std140/array/mat2x2_f32/to_private.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,45 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Access
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+cbuffer cbuffer_u : register(b0) {
+  uint4 u[4];
+};
+RWByteAddressBuffer s : register(u1);
+static float2x2 p[4] = (float2x2[4])0;
+float2x2 v(uint start_byte_offset) {
+  uint4 v_1 = u[(start_byte_offset / 16u)];
+  float2 v_2 = asfloat((((((start_byte_offset % 16u) / 4u) == 2u)) ? (v_1.zw) : (v_1.xy)));
+  uint4 v_3 = u[((8u + start_byte_offset) / 16u)];
+  return float2x2(v_2, asfloat(((((((8u + start_byte_offset) % 16u) / 4u) == 2u)) ? (v_3.zw) : (v_3.xy))));
+}
+
+typedef float2x2 ary_ret[4];
+ary_ret v_4(uint start_byte_offset) {
+  float2x2 a[4] = (float2x2[4])0;
+  {
+    uint v_5 = 0u;
+    v_5 = 0u;
+    while(true) {
+      uint v_6 = v_5;
+      if ((v_6 >= 4u)) {
+        break;
+      }
+      a[v_6] = v((start_byte_offset + (v_6 * 16u)));
+      {
+        v_5 = (v_6 + 1u);
+      }
+      continue;
+    }
+  }
+  float2x2 v_7[4] = a;
+  return v_7;
+}
+
+[numthreads(1, 1, 1)]
+void f() {
+  float2x2 v_8[4] = v_4(0u);
+  p = v_8;
+  p[1] = v(32u);
+  p[1][0] = asfloat(u[0u].zw).yx;
+  p[1][0][0u] = asfloat(u[0u].z);
+  s.Store(0u, asuint(p[1][0].x));
+}
+
diff --git a/test/tint/buffer/uniform/std140/array/mat2x2_f32/to_storage.wgsl.expected.ir.dxc.hlsl b/test/tint/buffer/uniform/std140/array/mat2x2_f32/to_storage.wgsl.expected.ir.dxc.hlsl
index 3f437dc..0c74a2d 100644
--- a/test/tint/buffer/uniform/std140/array/mat2x2_f32/to_storage.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/buffer/uniform/std140/array/mat2x2_f32/to_storage.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,66 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Access
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+cbuffer cbuffer_u : register(b0) {
+  uint4 u[4];
+};
+RWByteAddressBuffer s : register(u1);
+void v(uint offset, float2x2 obj) {
+  s.Store2((offset + 0u), asuint(obj[0u]));
+  s.Store2((offset + 8u), asuint(obj[1u]));
+}
+
+float2x2 v_1(uint start_byte_offset) {
+  uint4 v_2 = u[(start_byte_offset / 16u)];
+  float2 v_3 = asfloat((((((start_byte_offset % 16u) / 4u) == 2u)) ? (v_2.zw) : (v_2.xy)));
+  uint4 v_4 = u[((8u + start_byte_offset) / 16u)];
+  return float2x2(v_3, asfloat(((((((8u + start_byte_offset) % 16u) / 4u) == 2u)) ? (v_4.zw) : (v_4.xy))));
+}
+
+void v_5(uint offset, float2x2 obj[4]) {
+  {
+    uint v_6 = 0u;
+    v_6 = 0u;
+    while(true) {
+      uint v_7 = v_6;
+      if ((v_7 >= 4u)) {
+        break;
+      }
+      v((offset + (v_7 * 16u)), obj[v_7]);
+      {
+        v_6 = (v_7 + 1u);
+      }
+      continue;
+    }
+  }
+}
+
+typedef float2x2 ary_ret[4];
+ary_ret v_8(uint start_byte_offset) {
+  float2x2 a[4] = (float2x2[4])0;
+  {
+    uint v_9 = 0u;
+    v_9 = 0u;
+    while(true) {
+      uint v_10 = v_9;
+      if ((v_10 >= 4u)) {
+        break;
+      }
+      a[v_10] = v_1((start_byte_offset + (v_10 * 16u)));
+      {
+        v_9 = (v_10 + 1u);
+      }
+      continue;
+    }
+  }
+  float2x2 v_11[4] = a;
+  return v_11;
+}
+
+[numthreads(1, 1, 1)]
+void f() {
+  float2x2 v_12[4] = v_8(0u);
+  v_5(0u, v_12);
+  v(16u, v_1(32u));
+  s.Store2(16u, asuint(asfloat(u[0u].zw).yx));
+  s.Store(16u, asuint(asfloat(u[0u].z)));
+}
+
diff --git a/test/tint/buffer/uniform/std140/array/mat2x2_f32/to_storage.wgsl.expected.ir.fxc.hlsl b/test/tint/buffer/uniform/std140/array/mat2x2_f32/to_storage.wgsl.expected.ir.fxc.hlsl
index 3f437dc..0c74a2d 100644
--- a/test/tint/buffer/uniform/std140/array/mat2x2_f32/to_storage.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/buffer/uniform/std140/array/mat2x2_f32/to_storage.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,66 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Access
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+cbuffer cbuffer_u : register(b0) {
+  uint4 u[4];
+};
+RWByteAddressBuffer s : register(u1);
+void v(uint offset, float2x2 obj) {
+  s.Store2((offset + 0u), asuint(obj[0u]));
+  s.Store2((offset + 8u), asuint(obj[1u]));
+}
+
+float2x2 v_1(uint start_byte_offset) {
+  uint4 v_2 = u[(start_byte_offset / 16u)];
+  float2 v_3 = asfloat((((((start_byte_offset % 16u) / 4u) == 2u)) ? (v_2.zw) : (v_2.xy)));
+  uint4 v_4 = u[((8u + start_byte_offset) / 16u)];
+  return float2x2(v_3, asfloat(((((((8u + start_byte_offset) % 16u) / 4u) == 2u)) ? (v_4.zw) : (v_4.xy))));
+}
+
+void v_5(uint offset, float2x2 obj[4]) {
+  {
+    uint v_6 = 0u;
+    v_6 = 0u;
+    while(true) {
+      uint v_7 = v_6;
+      if ((v_7 >= 4u)) {
+        break;
+      }
+      v((offset + (v_7 * 16u)), obj[v_7]);
+      {
+        v_6 = (v_7 + 1u);
+      }
+      continue;
+    }
+  }
+}
+
+typedef float2x2 ary_ret[4];
+ary_ret v_8(uint start_byte_offset) {
+  float2x2 a[4] = (float2x2[4])0;
+  {
+    uint v_9 = 0u;
+    v_9 = 0u;
+    while(true) {
+      uint v_10 = v_9;
+      if ((v_10 >= 4u)) {
+        break;
+      }
+      a[v_10] = v_1((start_byte_offset + (v_10 * 16u)));
+      {
+        v_9 = (v_10 + 1u);
+      }
+      continue;
+    }
+  }
+  float2x2 v_11[4] = a;
+  return v_11;
+}
+
+[numthreads(1, 1, 1)]
+void f() {
+  float2x2 v_12[4] = v_8(0u);
+  v_5(0u, v_12);
+  v(16u, v_1(32u));
+  s.Store2(16u, asuint(asfloat(u[0u].zw).yx));
+  s.Store(16u, asuint(asfloat(u[0u].z)));
+}
+
diff --git a/test/tint/buffer/uniform/std140/array/mat2x2_f32/to_workgroup.wgsl.expected.ir.dxc.hlsl b/test/tint/buffer/uniform/std140/array/mat2x2_f32/to_workgroup.wgsl.expected.ir.dxc.hlsl
index 3f437dc..3643ea4 100644
--- a/test/tint/buffer/uniform/std140/array/mat2x2_f32/to_workgroup.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/buffer/uniform/std140/array/mat2x2_f32/to_workgroup.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,67 @@
-SKIP: FAILED
+struct f_inputs {
+  uint tint_local_index : SV_GroupIndex;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Access
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+
+cbuffer cbuffer_u : register(b0) {
+  uint4 u[4];
+};
+groupshared float2x2 w[4];
+float2x2 v(uint start_byte_offset) {
+  uint4 v_1 = u[(start_byte_offset / 16u)];
+  float2 v_2 = asfloat((((((start_byte_offset % 16u) / 4u) == 2u)) ? (v_1.zw) : (v_1.xy)));
+  uint4 v_3 = u[((8u + start_byte_offset) / 16u)];
+  return float2x2(v_2, asfloat(((((((8u + start_byte_offset) % 16u) / 4u) == 2u)) ? (v_3.zw) : (v_3.xy))));
+}
+
+typedef float2x2 ary_ret[4];
+ary_ret v_4(uint start_byte_offset) {
+  float2x2 a[4] = (float2x2[4])0;
+  {
+    uint v_5 = 0u;
+    v_5 = 0u;
+    while(true) {
+      uint v_6 = v_5;
+      if ((v_6 >= 4u)) {
+        break;
+      }
+      a[v_6] = v((start_byte_offset + (v_6 * 16u)));
+      {
+        v_5 = (v_6 + 1u);
+      }
+      continue;
+    }
+  }
+  float2x2 v_7[4] = a;
+  return v_7;
+}
+
+void f_inner(uint tint_local_index) {
+  {
+    uint v_8 = 0u;
+    v_8 = tint_local_index;
+    while(true) {
+      uint v_9 = v_8;
+      if ((v_9 >= 4u)) {
+        break;
+      }
+      w[v_9] = float2x2((0.0f).xx, (0.0f).xx);
+      {
+        v_8 = (v_9 + 1u);
+      }
+      continue;
+    }
+  }
+  GroupMemoryBarrierWithGroupSync();
+  float2x2 v_10[4] = v_4(0u);
+  w = v_10;
+  w[1] = v(32u);
+  w[1][0] = asfloat(u[0u].zw).yx;
+  w[1][0][0u] = asfloat(u[0u].z);
+}
+
+[numthreads(1, 1, 1)]
+void f(f_inputs inputs) {
+  f_inner(inputs.tint_local_index);
+}
+
diff --git a/test/tint/buffer/uniform/std140/array/mat2x2_f32/to_workgroup.wgsl.expected.ir.fxc.hlsl b/test/tint/buffer/uniform/std140/array/mat2x2_f32/to_workgroup.wgsl.expected.ir.fxc.hlsl
index 3f437dc..3643ea4 100644
--- a/test/tint/buffer/uniform/std140/array/mat2x2_f32/to_workgroup.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/buffer/uniform/std140/array/mat2x2_f32/to_workgroup.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,67 @@
-SKIP: FAILED
+struct f_inputs {
+  uint tint_local_index : SV_GroupIndex;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Access
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+
+cbuffer cbuffer_u : register(b0) {
+  uint4 u[4];
+};
+groupshared float2x2 w[4];
+float2x2 v(uint start_byte_offset) {
+  uint4 v_1 = u[(start_byte_offset / 16u)];
+  float2 v_2 = asfloat((((((start_byte_offset % 16u) / 4u) == 2u)) ? (v_1.zw) : (v_1.xy)));
+  uint4 v_3 = u[((8u + start_byte_offset) / 16u)];
+  return float2x2(v_2, asfloat(((((((8u + start_byte_offset) % 16u) / 4u) == 2u)) ? (v_3.zw) : (v_3.xy))));
+}
+
+typedef float2x2 ary_ret[4];
+ary_ret v_4(uint start_byte_offset) {
+  float2x2 a[4] = (float2x2[4])0;
+  {
+    uint v_5 = 0u;
+    v_5 = 0u;
+    while(true) {
+      uint v_6 = v_5;
+      if ((v_6 >= 4u)) {
+        break;
+      }
+      a[v_6] = v((start_byte_offset + (v_6 * 16u)));
+      {
+        v_5 = (v_6 + 1u);
+      }
+      continue;
+    }
+  }
+  float2x2 v_7[4] = a;
+  return v_7;
+}
+
+void f_inner(uint tint_local_index) {
+  {
+    uint v_8 = 0u;
+    v_8 = tint_local_index;
+    while(true) {
+      uint v_9 = v_8;
+      if ((v_9 >= 4u)) {
+        break;
+      }
+      w[v_9] = float2x2((0.0f).xx, (0.0f).xx);
+      {
+        v_8 = (v_9 + 1u);
+      }
+      continue;
+    }
+  }
+  GroupMemoryBarrierWithGroupSync();
+  float2x2 v_10[4] = v_4(0u);
+  w = v_10;
+  w[1] = v(32u);
+  w[1][0] = asfloat(u[0u].zw).yx;
+  w[1][0][0u] = asfloat(u[0u].z);
+}
+
+[numthreads(1, 1, 1)]
+void f(f_inputs inputs) {
+  f_inner(inputs.tint_local_index);
+}
+
diff --git a/test/tint/buffer/uniform/std140/array/mat2x3_f16/dynamic_index_via_ptr.wgsl.expected.ir.dxc.hlsl b/test/tint/buffer/uniform/std140/array/mat2x3_f16/dynamic_index_via_ptr.wgsl.expected.ir.dxc.hlsl
index 3f437dc..f6db147 100644
--- a/test/tint/buffer/uniform/std140/array/mat2x3_f16/dynamic_index_via_ptr.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/buffer/uniform/std140/array/mat2x3_f16/dynamic_index_via_ptr.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,62 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Access
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+cbuffer cbuffer_a : register(b0) {
+  uint4 a[4];
+};
+RWByteAddressBuffer s : register(u1);
+static int counter = 0;
+int i() {
+  counter = (counter + 1);
+  return counter;
+}
+
+vector<float16_t, 4> tint_bitcast_to_f16(uint4 src) {
+  uint4 v = src;
+  uint4 mask = (65535u).xxxx;
+  uint4 shift = (16u).xxxx;
+  float4 t_low = f16tof32((v & mask));
+  float4 t_high = f16tof32(((v >> shift) & mask));
+  float16_t v_1 = float16_t(t_low.x);
+  float16_t v_2 = float16_t(t_high.x);
+  float16_t v_3 = float16_t(t_low.y);
+  return vector<float16_t, 4>(v_1, v_2, v_3, float16_t(t_high.y));
+}
+
+matrix<float16_t, 2, 3> v_4(uint start_byte_offset) {
+  vector<float16_t, 3> v_5 = tint_bitcast_to_f16(a[(start_byte_offset / 16u)]).xyz;
+  return matrix<float16_t, 2, 3>(v_5, tint_bitcast_to_f16(a[((8u + start_byte_offset) / 16u)]).xyz);
+}
+
+typedef matrix<float16_t, 2, 3> ary_ret[4];
+ary_ret v_6(uint start_byte_offset) {
+  matrix<float16_t, 2, 3> a[4] = (matrix<float16_t, 2, 3>[4])0;
+  {
+    uint v_7 = 0u;
+    v_7 = 0u;
+    while(true) {
+      uint v_8 = v_7;
+      if ((v_8 >= 4u)) {
+        break;
+      }
+      a[v_8] = v_4((start_byte_offset + (v_8 * 16u)));
+      {
+        v_7 = (v_8 + 1u);
+      }
+      continue;
+    }
+  }
+  matrix<float16_t, 2, 3> v_9[4] = a;
+  return v_9;
+}
+
+[numthreads(1, 1, 1)]
+void f() {
+  uint v_10 = (16u * uint(i()));
+  uint v_11 = (8u * uint(i()));
+  matrix<float16_t, 2, 3> v_12[4] = v_6(0u);
+  matrix<float16_t, 2, 3> l_a_i = v_4(v_10);
+  vector<float16_t, 3> l_a_i_i = tint_bitcast_to_f16(a[((v_10 + v_11) / 16u)]).xyz;
+  uint v_13 = a[((v_10 + v_11) / 16u)][(((v_10 + v_11) % 16u) / 4u)];
+  matrix<float16_t, 2, 3> l_a[4] = v_12;
+  s.Store<float16_t>(0u, (((float16_t(f16tof32((v_13 >> (((((v_10 + v_11) % 4u) == 0u)) ? (0u) : (16u))))) + l_a[0][0][0u]) + l_a_i[0][0u]) + l_a_i_i[0u]));
+}
+
diff --git a/test/tint/buffer/uniform/std140/array/mat2x3_f16/dynamic_index_via_ptr.wgsl.expected.ir.fxc.hlsl b/test/tint/buffer/uniform/std140/array/mat2x3_f16/dynamic_index_via_ptr.wgsl.expected.ir.fxc.hlsl
index 3f437dc..dce21da 100644
--- a/test/tint/buffer/uniform/std140/array/mat2x3_f16/dynamic_index_via_ptr.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/buffer/uniform/std140/array/mat2x3_f16/dynamic_index_via_ptr.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,67 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Access
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+
+cbuffer cbuffer_a : register(b0) {
+  uint4 a[4];
+};
+RWByteAddressBuffer s : register(u1);
+static int counter = 0;
+int i() {
+  counter = (counter + 1);
+  return counter;
+}
+
+vector<float16_t, 4> tint_bitcast_to_f16(uint4 src) {
+  uint4 v = src;
+  uint4 mask = (65535u).xxxx;
+  uint4 shift = (16u).xxxx;
+  float4 t_low = f16tof32((v & mask));
+  float4 t_high = f16tof32(((v >> shift) & mask));
+  float16_t v_1 = float16_t(t_low.x);
+  float16_t v_2 = float16_t(t_high.x);
+  float16_t v_3 = float16_t(t_low.y);
+  return vector<float16_t, 4>(v_1, v_2, v_3, float16_t(t_high.y));
+}
+
+matrix<float16_t, 2, 3> v_4(uint start_byte_offset) {
+  vector<float16_t, 3> v_5 = tint_bitcast_to_f16(a[(start_byte_offset / 16u)]).xyz;
+  return matrix<float16_t, 2, 3>(v_5, tint_bitcast_to_f16(a[((8u + start_byte_offset) / 16u)]).xyz);
+}
+
+typedef matrix<float16_t, 2, 3> ary_ret[4];
+ary_ret v_6(uint start_byte_offset) {
+  matrix<float16_t, 2, 3> a[4] = (matrix<float16_t, 2, 3>[4])0;
+  {
+    uint v_7 = 0u;
+    v_7 = 0u;
+    while(true) {
+      uint v_8 = v_7;
+      if ((v_8 >= 4u)) {
+        break;
+      }
+      a[v_8] = v_4((start_byte_offset + (v_8 * 16u)));
+      {
+        v_7 = (v_8 + 1u);
+      }
+      continue;
+    }
+  }
+  matrix<float16_t, 2, 3> v_9[4] = a;
+  return v_9;
+}
+
+[numthreads(1, 1, 1)]
+void f() {
+  uint v_10 = (16u * uint(i()));
+  uint v_11 = (8u * uint(i()));
+  matrix<float16_t, 2, 3> v_12[4] = v_6(0u);
+  matrix<float16_t, 2, 3> l_a_i = v_4(v_10);
+  vector<float16_t, 3> l_a_i_i = tint_bitcast_to_f16(a[((v_10 + v_11) / 16u)]).xyz;
+  uint v_13 = a[((v_10 + v_11) / 16u)][(((v_10 + v_11) % 16u) / 4u)];
+  matrix<float16_t, 2, 3> l_a[4] = v_12;
+  s.Store<float16_t>(0u, (((float16_t(f16tof32((v_13 >> (((((v_10 + v_11) % 4u) == 0u)) ? (0u) : (16u))))) + l_a[0][0][0u]) + l_a_i[0][0u]) + l_a_i_i[0u]));
+}
+
+FXC validation failure:
+c:\src\dawn\Shader@0x00000295E12C3540(12,8-16): error X3000: syntax error: unexpected token 'float16_t'
+
diff --git a/test/tint/buffer/uniform/std140/array/mat2x3_f16/static_index_via_ptr.wgsl.expected.ir.dxc.hlsl b/test/tint/buffer/uniform/std140/array/mat2x3_f16/static_index_via_ptr.wgsl.expected.ir.dxc.hlsl
index 3f437dc..3e44f36 100644
--- a/test/tint/buffer/uniform/std140/array/mat2x3_f16/static_index_via_ptr.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/buffer/uniform/std140/array/mat2x3_f16/static_index_via_ptr.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,53 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Access
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+cbuffer cbuffer_a : register(b0) {
+  uint4 a[4];
+};
+RWByteAddressBuffer s : register(u1);
+vector<float16_t, 4> tint_bitcast_to_f16(uint4 src) {
+  uint4 v = src;
+  uint4 mask = (65535u).xxxx;
+  uint4 shift = (16u).xxxx;
+  float4 t_low = f16tof32((v & mask));
+  float4 t_high = f16tof32(((v >> shift) & mask));
+  float16_t v_1 = float16_t(t_low.x);
+  float16_t v_2 = float16_t(t_high.x);
+  float16_t v_3 = float16_t(t_low.y);
+  return vector<float16_t, 4>(v_1, v_2, v_3, float16_t(t_high.y));
+}
+
+matrix<float16_t, 2, 3> v_4(uint start_byte_offset) {
+  vector<float16_t, 3> v_5 = tint_bitcast_to_f16(a[(start_byte_offset / 16u)]).xyz;
+  return matrix<float16_t, 2, 3>(v_5, tint_bitcast_to_f16(a[((8u + start_byte_offset) / 16u)]).xyz);
+}
+
+typedef matrix<float16_t, 2, 3> ary_ret[4];
+ary_ret v_6(uint start_byte_offset) {
+  matrix<float16_t, 2, 3> a[4] = (matrix<float16_t, 2, 3>[4])0;
+  {
+    uint v_7 = 0u;
+    v_7 = 0u;
+    while(true) {
+      uint v_8 = v_7;
+      if ((v_8 >= 4u)) {
+        break;
+      }
+      a[v_8] = v_4((start_byte_offset + (v_8 * 16u)));
+      {
+        v_7 = (v_8 + 1u);
+      }
+      continue;
+    }
+  }
+  matrix<float16_t, 2, 3> v_9[4] = a;
+  return v_9;
+}
+
+[numthreads(1, 1, 1)]
+void f() {
+  matrix<float16_t, 2, 3> v_10[4] = v_6(0u);
+  matrix<float16_t, 2, 3> l_a_i = v_4(32u);
+  vector<float16_t, 3> l_a_i_i = tint_bitcast_to_f16(a[2u]).xyz;
+  matrix<float16_t, 2, 3> l_a[4] = v_10;
+  s.Store<float16_t>(0u, (((float16_t(f16tof32(a[2u].z)) + l_a[0][0][0u]) + l_a_i[0][0u]) + l_a_i_i[0u]));
+}
+
diff --git a/test/tint/buffer/uniform/std140/array/mat2x3_f16/static_index_via_ptr.wgsl.expected.ir.fxc.hlsl b/test/tint/buffer/uniform/std140/array/mat2x3_f16/static_index_via_ptr.wgsl.expected.ir.fxc.hlsl
index 3f437dc..65e2eac 100644
--- a/test/tint/buffer/uniform/std140/array/mat2x3_f16/static_index_via_ptr.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/buffer/uniform/std140/array/mat2x3_f16/static_index_via_ptr.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,58 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Access
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+
+cbuffer cbuffer_a : register(b0) {
+  uint4 a[4];
+};
+RWByteAddressBuffer s : register(u1);
+vector<float16_t, 4> tint_bitcast_to_f16(uint4 src) {
+  uint4 v = src;
+  uint4 mask = (65535u).xxxx;
+  uint4 shift = (16u).xxxx;
+  float4 t_low = f16tof32((v & mask));
+  float4 t_high = f16tof32(((v >> shift) & mask));
+  float16_t v_1 = float16_t(t_low.x);
+  float16_t v_2 = float16_t(t_high.x);
+  float16_t v_3 = float16_t(t_low.y);
+  return vector<float16_t, 4>(v_1, v_2, v_3, float16_t(t_high.y));
+}
+
+matrix<float16_t, 2, 3> v_4(uint start_byte_offset) {
+  vector<float16_t, 3> v_5 = tint_bitcast_to_f16(a[(start_byte_offset / 16u)]).xyz;
+  return matrix<float16_t, 2, 3>(v_5, tint_bitcast_to_f16(a[((8u + start_byte_offset) / 16u)]).xyz);
+}
+
+typedef matrix<float16_t, 2, 3> ary_ret[4];
+ary_ret v_6(uint start_byte_offset) {
+  matrix<float16_t, 2, 3> a[4] = (matrix<float16_t, 2, 3>[4])0;
+  {
+    uint v_7 = 0u;
+    v_7 = 0u;
+    while(true) {
+      uint v_8 = v_7;
+      if ((v_8 >= 4u)) {
+        break;
+      }
+      a[v_8] = v_4((start_byte_offset + (v_8 * 16u)));
+      {
+        v_7 = (v_8 + 1u);
+      }
+      continue;
+    }
+  }
+  matrix<float16_t, 2, 3> v_9[4] = a;
+  return v_9;
+}
+
+[numthreads(1, 1, 1)]
+void f() {
+  matrix<float16_t, 2, 3> v_10[4] = v_6(0u);
+  matrix<float16_t, 2, 3> l_a_i = v_4(40u);
+  vector<float16_t, 3> l_a_i_i = tint_bitcast_to_f16(a[2u]).xyz;
+  matrix<float16_t, 2, 3> l_a[4] = v_10;
+  s.Store<float16_t>(0u, (((float16_t(f16tof32(a[2u].z)) + l_a[0][0][0u]) + l_a_i[0][0u]) + l_a_i_i[0u]));
+}
+
+FXC validation failure:
+c:\src\dawn\Shader@0x0000021D05D2F360(6,8-16): error X3000: syntax error: unexpected token 'float16_t'
+
diff --git a/test/tint/buffer/uniform/std140/array/mat2x3_f16/to_builtin.wgsl.expected.ir.dxc.hlsl b/test/tint/buffer/uniform/std140/array/mat2x3_f16/to_builtin.wgsl.expected.ir.dxc.hlsl
index 3f437dc..42c2659 100644
--- a/test/tint/buffer/uniform/std140/array/mat2x3_f16/to_builtin.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/buffer/uniform/std140/array/mat2x3_f16/to_builtin.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,31 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Access
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+cbuffer cbuffer_u : register(b0) {
+  uint4 u[4];
+};
+RWByteAddressBuffer s : register(u1);
+vector<float16_t, 4> tint_bitcast_to_f16(uint4 src) {
+  uint4 v = src;
+  uint4 mask = (65535u).xxxx;
+  uint4 shift = (16u).xxxx;
+  float4 t_low = f16tof32((v & mask));
+  float4 t_high = f16tof32(((v >> shift) & mask));
+  float16_t v_1 = float16_t(t_low.x);
+  float16_t v_2 = float16_t(t_high.x);
+  float16_t v_3 = float16_t(t_low.y);
+  return vector<float16_t, 4>(v_1, v_2, v_3, float16_t(t_high.y));
+}
+
+matrix<float16_t, 2, 3> v_4(uint start_byte_offset) {
+  vector<float16_t, 3> v_5 = tint_bitcast_to_f16(u[(start_byte_offset / 16u)]).xyz;
+  return matrix<float16_t, 2, 3>(v_5, tint_bitcast_to_f16(u[((8u + start_byte_offset) / 16u)]).xyz);
+}
+
+[numthreads(1, 1, 1)]
+void f() {
+  matrix<float16_t, 3, 2> t = transpose(v_4(32u));
+  float16_t l = length(tint_bitcast_to_f16(u[0u]).xyz.zxy);
+  float16_t a = abs(tint_bitcast_to_f16(u[0u]).xyz.zxy[0u]);
+  float16_t v_6 = float16_t(a);
+  s.Store<float16_t>(0u, ((v_6 + float16_t(l)) + t[0][0u]));
+}
+
diff --git a/test/tint/buffer/uniform/std140/array/mat2x3_f16/to_builtin.wgsl.expected.ir.fxc.hlsl b/test/tint/buffer/uniform/std140/array/mat2x3_f16/to_builtin.wgsl.expected.ir.fxc.hlsl
index 3f437dc..460d965 100644
--- a/test/tint/buffer/uniform/std140/array/mat2x3_f16/to_builtin.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/buffer/uniform/std140/array/mat2x3_f16/to_builtin.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,36 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Access
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+
+cbuffer cbuffer_u : register(b0) {
+  uint4 u[4];
+};
+RWByteAddressBuffer s : register(u1);
+vector<float16_t, 4> tint_bitcast_to_f16(uint4 src) {
+  uint4 v = src;
+  uint4 mask = (65535u).xxxx;
+  uint4 shift = (16u).xxxx;
+  float4 t_low = f16tof32((v & mask));
+  float4 t_high = f16tof32(((v >> shift) & mask));
+  float16_t v_1 = float16_t(t_low.x);
+  float16_t v_2 = float16_t(t_high.x);
+  float16_t v_3 = float16_t(t_low.y);
+  return vector<float16_t, 4>(v_1, v_2, v_3, float16_t(t_high.y));
+}
+
+matrix<float16_t, 2, 3> v_4(uint start_byte_offset) {
+  vector<float16_t, 3> v_5 = tint_bitcast_to_f16(u[(start_byte_offset / 16u)]).xyz;
+  return matrix<float16_t, 2, 3>(v_5, tint_bitcast_to_f16(u[((8u + start_byte_offset) / 16u)]).xyz);
+}
+
+[numthreads(1, 1, 1)]
+void f() {
+  matrix<float16_t, 3, 2> t = transpose(v_4(32u));
+  float16_t l = length(tint_bitcast_to_f16(u[0u]).xyz.zxy);
+  float16_t a = abs(tint_bitcast_to_f16(u[0u]).xyz.zxy[0u]);
+  float16_t v_6 = float16_t(a);
+  s.Store<float16_t>(0u, ((v_6 + float16_t(l)) + t[0][0u]));
+}
+
+FXC validation failure:
+c:\src\dawn\Shader@0x00000278E5A73D50(6,8-16): error X3000: syntax error: unexpected token 'float16_t'
+
diff --git a/test/tint/buffer/uniform/std140/array/mat2x3_f16/to_fn.wgsl.expected.ir.dxc.hlsl b/test/tint/buffer/uniform/std140/array/mat2x3_f16/to_fn.wgsl.expected.ir.dxc.hlsl
index 3f437dc..3d6f65b 100644
--- a/test/tint/buffer/uniform/std140/array/mat2x3_f16/to_fn.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/buffer/uniform/std140/array/mat2x3_f16/to_fn.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,69 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Access
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+cbuffer cbuffer_u : register(b0) {
+  uint4 u[4];
+};
+RWByteAddressBuffer s : register(u1);
+float16_t a(matrix<float16_t, 2, 3> a_1[4]) {
+  return a_1[0][0][0u];
+}
+
+float16_t b(matrix<float16_t, 2, 3> m) {
+  return m[0][0u];
+}
+
+float16_t c(vector<float16_t, 3> v) {
+  return v[0u];
+}
+
+float16_t d(float16_t f) {
+  return f;
+}
+
+vector<float16_t, 4> tint_bitcast_to_f16(uint4 src) {
+  uint4 v = src;
+  uint4 mask = (65535u).xxxx;
+  uint4 shift = (16u).xxxx;
+  float4 t_low = f16tof32((v & mask));
+  float4 t_high = f16tof32(((v >> shift) & mask));
+  float16_t v_1 = float16_t(t_low.x);
+  float16_t v_2 = float16_t(t_high.x);
+  float16_t v_3 = float16_t(t_low.y);
+  return vector<float16_t, 4>(v_1, v_2, v_3, float16_t(t_high.y));
+}
+
+matrix<float16_t, 2, 3> v_4(uint start_byte_offset) {
+  vector<float16_t, 3> v_5 = tint_bitcast_to_f16(u[(start_byte_offset / 16u)]).xyz;
+  return matrix<float16_t, 2, 3>(v_5, tint_bitcast_to_f16(u[((8u + start_byte_offset) / 16u)]).xyz);
+}
+
+typedef matrix<float16_t, 2, 3> ary_ret[4];
+ary_ret v_6(uint start_byte_offset) {
+  matrix<float16_t, 2, 3> a[4] = (matrix<float16_t, 2, 3>[4])0;
+  {
+    uint v_7 = 0u;
+    v_7 = 0u;
+    while(true) {
+      uint v_8 = v_7;
+      if ((v_8 >= 4u)) {
+        break;
+      }
+      a[v_8] = v_4((start_byte_offset + (v_8 * 16u)));
+      {
+        v_7 = (v_8 + 1u);
+      }
+      continue;
+    }
+  }
+  matrix<float16_t, 2, 3> v_9[4] = a;
+  return v_9;
+}
+
+[numthreads(1, 1, 1)]
+void f() {
+  matrix<float16_t, 2, 3> v_10[4] = v_6(0u);
+  float16_t v_11 = a(v_10);
+  float16_t v_12 = (v_11 + b(v_4(16u)));
+  float16_t v_13 = (v_12 + c(tint_bitcast_to_f16(u[1u]).xyz.zxy));
+  s.Store<float16_t>(0u, (v_13 + d(tint_bitcast_to_f16(u[1u]).xyz.zxy[0u])));
+}
+
diff --git a/test/tint/buffer/uniform/std140/array/mat2x3_f16/to_fn.wgsl.expected.ir.fxc.hlsl b/test/tint/buffer/uniform/std140/array/mat2x3_f16/to_fn.wgsl.expected.ir.fxc.hlsl
index 3f437dc..2fb0a65 100644
--- a/test/tint/buffer/uniform/std140/array/mat2x3_f16/to_fn.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/buffer/uniform/std140/array/mat2x3_f16/to_fn.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,74 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Access
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+
+cbuffer cbuffer_u : register(b0) {
+  uint4 u[4];
+};
+RWByteAddressBuffer s : register(u1);
+float16_t a(matrix<float16_t, 2, 3> a_1[4]) {
+  return a_1[0][0][0u];
+}
+
+float16_t b(matrix<float16_t, 2, 3> m) {
+  return m[0][0u];
+}
+
+float16_t c(vector<float16_t, 3> v) {
+  return v[0u];
+}
+
+float16_t d(float16_t f) {
+  return f;
+}
+
+vector<float16_t, 4> tint_bitcast_to_f16(uint4 src) {
+  uint4 v = src;
+  uint4 mask = (65535u).xxxx;
+  uint4 shift = (16u).xxxx;
+  float4 t_low = f16tof32((v & mask));
+  float4 t_high = f16tof32(((v >> shift) & mask));
+  float16_t v_1 = float16_t(t_low.x);
+  float16_t v_2 = float16_t(t_high.x);
+  float16_t v_3 = float16_t(t_low.y);
+  return vector<float16_t, 4>(v_1, v_2, v_3, float16_t(t_high.y));
+}
+
+matrix<float16_t, 2, 3> v_4(uint start_byte_offset) {
+  vector<float16_t, 3> v_5 = tint_bitcast_to_f16(u[(start_byte_offset / 16u)]).xyz;
+  return matrix<float16_t, 2, 3>(v_5, tint_bitcast_to_f16(u[((8u + start_byte_offset) / 16u)]).xyz);
+}
+
+typedef matrix<float16_t, 2, 3> ary_ret[4];
+ary_ret v_6(uint start_byte_offset) {
+  matrix<float16_t, 2, 3> a[4] = (matrix<float16_t, 2, 3>[4])0;
+  {
+    uint v_7 = 0u;
+    v_7 = 0u;
+    while(true) {
+      uint v_8 = v_7;
+      if ((v_8 >= 4u)) {
+        break;
+      }
+      a[v_8] = v_4((start_byte_offset + (v_8 * 16u)));
+      {
+        v_7 = (v_8 + 1u);
+      }
+      continue;
+    }
+  }
+  matrix<float16_t, 2, 3> v_9[4] = a;
+  return v_9;
+}
+
+[numthreads(1, 1, 1)]
+void f() {
+  matrix<float16_t, 2, 3> v_10[4] = v_6(0u);
+  float16_t v_11 = a(v_10);
+  float16_t v_12 = (v_11 + b(v_4(16u)));
+  float16_t v_13 = (v_12 + c(tint_bitcast_to_f16(u[1u]).xyz.zxy));
+  s.Store<float16_t>(0u, (v_13 + d(tint_bitcast_to_f16(u[1u]).xyz.zxy[0u])));
+}
+
+FXC validation failure:
+c:\src\dawn\Shader@0x00000227481304A0(6,1-9): error X3000: unrecognized identifier 'float16_t'
+
diff --git a/test/tint/buffer/uniform/std140/array/mat2x3_f16/to_private.wgsl.expected.ir.dxc.hlsl b/test/tint/buffer/uniform/std140/array/mat2x3_f16/to_private.wgsl.expected.ir.dxc.hlsl
index 3f437dc..189acca 100644
--- a/test/tint/buffer/uniform/std140/array/mat2x3_f16/to_private.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/buffer/uniform/std140/array/mat2x3_f16/to_private.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,55 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Access
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+cbuffer cbuffer_u : register(b0) {
+  uint4 u[4];
+};
+RWByteAddressBuffer s : register(u1);
+static matrix<float16_t, 2, 3> p[4] = (matrix<float16_t, 2, 3>[4])0;
+vector<float16_t, 4> tint_bitcast_to_f16(uint4 src) {
+  uint4 v = src;
+  uint4 mask = (65535u).xxxx;
+  uint4 shift = (16u).xxxx;
+  float4 t_low = f16tof32((v & mask));
+  float4 t_high = f16tof32(((v >> shift) & mask));
+  float16_t v_1 = float16_t(t_low.x);
+  float16_t v_2 = float16_t(t_high.x);
+  float16_t v_3 = float16_t(t_low.y);
+  return vector<float16_t, 4>(v_1, v_2, v_3, float16_t(t_high.y));
+}
+
+matrix<float16_t, 2, 3> v_4(uint start_byte_offset) {
+  vector<float16_t, 3> v_5 = tint_bitcast_to_f16(u[(start_byte_offset / 16u)]).xyz;
+  return matrix<float16_t, 2, 3>(v_5, tint_bitcast_to_f16(u[((8u + start_byte_offset) / 16u)]).xyz);
+}
+
+typedef matrix<float16_t, 2, 3> ary_ret[4];
+ary_ret v_6(uint start_byte_offset) {
+  matrix<float16_t, 2, 3> a[4] = (matrix<float16_t, 2, 3>[4])0;
+  {
+    uint v_7 = 0u;
+    v_7 = 0u;
+    while(true) {
+      uint v_8 = v_7;
+      if ((v_8 >= 4u)) {
+        break;
+      }
+      a[v_8] = v_4((start_byte_offset + (v_8 * 16u)));
+      {
+        v_7 = (v_8 + 1u);
+      }
+      continue;
+    }
+  }
+  matrix<float16_t, 2, 3> v_9[4] = a;
+  return v_9;
+}
+
+[numthreads(1, 1, 1)]
+void f() {
+  matrix<float16_t, 2, 3> v_10[4] = v_6(0u);
+  p = v_10;
+  p[1] = v_4(32u);
+  p[1][0] = tint_bitcast_to_f16(u[0u]).xyz.zxy;
+  p[1][0][0u] = float16_t(f16tof32(u[0u].z));
+  s.Store<float16_t>(0u, p[1][0].x);
+}
+
diff --git a/test/tint/buffer/uniform/std140/array/mat2x3_f16/to_private.wgsl.expected.ir.fxc.hlsl b/test/tint/buffer/uniform/std140/array/mat2x3_f16/to_private.wgsl.expected.ir.fxc.hlsl
index 3f437dc..80b66ed 100644
--- a/test/tint/buffer/uniform/std140/array/mat2x3_f16/to_private.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/buffer/uniform/std140/array/mat2x3_f16/to_private.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,60 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Access
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+
+cbuffer cbuffer_u : register(b0) {
+  uint4 u[4];
+};
+RWByteAddressBuffer s : register(u1);
+static matrix<float16_t, 2, 3> p[4] = (matrix<float16_t, 2, 3>[4])0;
+vector<float16_t, 4> tint_bitcast_to_f16(uint4 src) {
+  uint4 v = src;
+  uint4 mask = (65535u).xxxx;
+  uint4 shift = (16u).xxxx;
+  float4 t_low = f16tof32((v & mask));
+  float4 t_high = f16tof32(((v >> shift) & mask));
+  float16_t v_1 = float16_t(t_low.x);
+  float16_t v_2 = float16_t(t_high.x);
+  float16_t v_3 = float16_t(t_low.y);
+  return vector<float16_t, 4>(v_1, v_2, v_3, float16_t(t_high.y));
+}
+
+matrix<float16_t, 2, 3> v_4(uint start_byte_offset) {
+  vector<float16_t, 3> v_5 = tint_bitcast_to_f16(u[(start_byte_offset / 16u)]).xyz;
+  return matrix<float16_t, 2, 3>(v_5, tint_bitcast_to_f16(u[((8u + start_byte_offset) / 16u)]).xyz);
+}
+
+typedef matrix<float16_t, 2, 3> ary_ret[4];
+ary_ret v_6(uint start_byte_offset) {
+  matrix<float16_t, 2, 3> a[4] = (matrix<float16_t, 2, 3>[4])0;
+  {
+    uint v_7 = 0u;
+    v_7 = 0u;
+    while(true) {
+      uint v_8 = v_7;
+      if ((v_8 >= 4u)) {
+        break;
+      }
+      a[v_8] = v_4((start_byte_offset + (v_8 * 16u)));
+      {
+        v_7 = (v_8 + 1u);
+      }
+      continue;
+    }
+  }
+  matrix<float16_t, 2, 3> v_9[4] = a;
+  return v_9;
+}
+
+[numthreads(1, 1, 1)]
+void f() {
+  matrix<float16_t, 2, 3> v_10[4] = v_6(0u);
+  p = v_10;
+  p[1] = v_4(32u);
+  p[1][0] = tint_bitcast_to_f16(u[0u]).xyz.zxy;
+  p[1][0][0u] = float16_t(f16tof32(u[0u].z));
+  s.Store<float16_t>(0u, p[1][0].x);
+}
+
+FXC validation failure:
+c:\src\dawn\Shader@0x000001842FC1F410(6,15-23): error X3000: syntax error: unexpected token 'float16_t'
+
diff --git a/test/tint/buffer/uniform/std140/array/mat2x3_f16/to_storage.wgsl.expected.ir.dxc.hlsl b/test/tint/buffer/uniform/std140/array/mat2x3_f16/to_storage.wgsl.expected.ir.dxc.hlsl
index 3f437dc..0f1465f 100644
--- a/test/tint/buffer/uniform/std140/array/mat2x3_f16/to_storage.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/buffer/uniform/std140/array/mat2x3_f16/to_storage.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,76 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Access
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+cbuffer cbuffer_u : register(b0) {
+  uint4 u[4];
+};
+RWByteAddressBuffer s : register(u1);
+vector<float16_t, 4> tint_bitcast_to_f16(uint4 src) {
+  uint4 v = src;
+  uint4 mask = (65535u).xxxx;
+  uint4 shift = (16u).xxxx;
+  float4 t_low = f16tof32((v & mask));
+  float4 t_high = f16tof32(((v >> shift) & mask));
+  float16_t v_1 = float16_t(t_low.x);
+  float16_t v_2 = float16_t(t_high.x);
+  float16_t v_3 = float16_t(t_low.y);
+  return vector<float16_t, 4>(v_1, v_2, v_3, float16_t(t_high.y));
+}
+
+void v_4(uint offset, matrix<float16_t, 2, 3> obj) {
+  s.Store<vector<float16_t, 3> >((offset + 0u), obj[0u]);
+  s.Store<vector<float16_t, 3> >((offset + 8u), obj[1u]);
+}
+
+matrix<float16_t, 2, 3> v_5(uint start_byte_offset) {
+  vector<float16_t, 3> v_6 = tint_bitcast_to_f16(u[(start_byte_offset / 16u)]).xyz;
+  return matrix<float16_t, 2, 3>(v_6, tint_bitcast_to_f16(u[((8u + start_byte_offset) / 16u)]).xyz);
+}
+
+void v_7(uint offset, matrix<float16_t, 2, 3> obj[4]) {
+  {
+    uint v_8 = 0u;
+    v_8 = 0u;
+    while(true) {
+      uint v_9 = v_8;
+      if ((v_9 >= 4u)) {
+        break;
+      }
+      v_4((offset + (v_9 * 16u)), obj[v_9]);
+      {
+        v_8 = (v_9 + 1u);
+      }
+      continue;
+    }
+  }
+}
+
+typedef matrix<float16_t, 2, 3> ary_ret[4];
+ary_ret v_10(uint start_byte_offset) {
+  matrix<float16_t, 2, 3> a[4] = (matrix<float16_t, 2, 3>[4])0;
+  {
+    uint v_11 = 0u;
+    v_11 = 0u;
+    while(true) {
+      uint v_12 = v_11;
+      if ((v_12 >= 4u)) {
+        break;
+      }
+      a[v_12] = v_5((start_byte_offset + (v_12 * 16u)));
+      {
+        v_11 = (v_12 + 1u);
+      }
+      continue;
+    }
+  }
+  matrix<float16_t, 2, 3> v_13[4] = a;
+  return v_13;
+}
+
+[numthreads(1, 1, 1)]
+void f() {
+  matrix<float16_t, 2, 3> v_14[4] = v_10(0u);
+  v_7(0u, v_14);
+  v_4(16u, v_5(32u));
+  s.Store<vector<float16_t, 3> >(16u, tint_bitcast_to_f16(u[0u]).xyz.zxy);
+  s.Store<float16_t>(16u, float16_t(f16tof32(u[0u].z)));
+}
+
diff --git a/test/tint/buffer/uniform/std140/array/mat2x3_f16/to_storage.wgsl.expected.ir.fxc.hlsl b/test/tint/buffer/uniform/std140/array/mat2x3_f16/to_storage.wgsl.expected.ir.fxc.hlsl
index 3f437dc..6d388a3 100644
--- a/test/tint/buffer/uniform/std140/array/mat2x3_f16/to_storage.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/buffer/uniform/std140/array/mat2x3_f16/to_storage.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,81 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Access
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+
+cbuffer cbuffer_u : register(b0) {
+  uint4 u[4];
+};
+RWByteAddressBuffer s : register(u1);
+vector<float16_t, 4> tint_bitcast_to_f16(uint4 src) {
+  uint4 v = src;
+  uint4 mask = (65535u).xxxx;
+  uint4 shift = (16u).xxxx;
+  float4 t_low = f16tof32((v & mask));
+  float4 t_high = f16tof32(((v >> shift) & mask));
+  float16_t v_1 = float16_t(t_low.x);
+  float16_t v_2 = float16_t(t_high.x);
+  float16_t v_3 = float16_t(t_low.y);
+  return vector<float16_t, 4>(v_1, v_2, v_3, float16_t(t_high.y));
+}
+
+void v_4(uint offset, matrix<float16_t, 2, 3> obj) {
+  s.Store<vector<float16_t, 3> >((offset + 0u), obj[0u]);
+  s.Store<vector<float16_t, 3> >((offset + 8u), obj[1u]);
+}
+
+matrix<float16_t, 2, 3> v_5(uint start_byte_offset) {
+  vector<float16_t, 3> v_6 = tint_bitcast_to_f16(u[(start_byte_offset / 16u)]).xyz;
+  return matrix<float16_t, 2, 3>(v_6, tint_bitcast_to_f16(u[((8u + start_byte_offset) / 16u)]).xyz);
+}
+
+void v_7(uint offset, matrix<float16_t, 2, 3> obj[4]) {
+  {
+    uint v_8 = 0u;
+    v_8 = 0u;
+    while(true) {
+      uint v_9 = v_8;
+      if ((v_9 >= 4u)) {
+        break;
+      }
+      v_4((offset + (v_9 * 16u)), obj[v_9]);
+      {
+        v_8 = (v_9 + 1u);
+      }
+      continue;
+    }
+  }
+}
+
+typedef matrix<float16_t, 2, 3> ary_ret[4];
+ary_ret v_10(uint start_byte_offset) {
+  matrix<float16_t, 2, 3> a[4] = (matrix<float16_t, 2, 3>[4])0;
+  {
+    uint v_11 = 0u;
+    v_11 = 0u;
+    while(true) {
+      uint v_12 = v_11;
+      if ((v_12 >= 4u)) {
+        break;
+      }
+      a[v_12] = v_5((start_byte_offset + (v_12 * 16u)));
+      {
+        v_11 = (v_12 + 1u);
+      }
+      continue;
+    }
+  }
+  matrix<float16_t, 2, 3> v_13[4] = a;
+  return v_13;
+}
+
+[numthreads(1, 1, 1)]
+void f() {
+  matrix<float16_t, 2, 3> v_14[4] = v_10(0u);
+  v_7(0u, v_14);
+  v_4(16u, v_5(32u));
+  s.Store<vector<float16_t, 3> >(16u, tint_bitcast_to_f16(u[0u]).xyz.zxy);
+  s.Store<float16_t>(16u, float16_t(f16tof32(u[0u].z)));
+}
+
+FXC validation failure:
+c:\src\dawn\Shader@0x00000252FC045010(6,8-16): error X3000: syntax error: unexpected token 'float16_t'
+
diff --git a/test/tint/buffer/uniform/std140/array/mat2x3_f16/to_workgroup.wgsl.expected.ir.dxc.hlsl b/test/tint/buffer/uniform/std140/array/mat2x3_f16/to_workgroup.wgsl.expected.ir.dxc.hlsl
index 3f437dc..7b5c53e 100644
--- a/test/tint/buffer/uniform/std140/array/mat2x3_f16/to_workgroup.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/buffer/uniform/std140/array/mat2x3_f16/to_workgroup.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,79 @@
-SKIP: FAILED
+struct f_inputs {
+  uint tint_local_index : SV_GroupIndex;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Access
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+
+cbuffer cbuffer_u : register(b0) {
+  uint4 u[4];
+};
+RWByteAddressBuffer s : register(u1);
+groupshared matrix<float16_t, 2, 3> w[4];
+vector<float16_t, 4> tint_bitcast_to_f16(uint4 src) {
+  uint4 v = src;
+  uint4 mask = (65535u).xxxx;
+  uint4 shift = (16u).xxxx;
+  float4 t_low = f16tof32((v & mask));
+  float4 t_high = f16tof32(((v >> shift) & mask));
+  float16_t v_1 = float16_t(t_low.x);
+  float16_t v_2 = float16_t(t_high.x);
+  float16_t v_3 = float16_t(t_low.y);
+  return vector<float16_t, 4>(v_1, v_2, v_3, float16_t(t_high.y));
+}
+
+matrix<float16_t, 2, 3> v_4(uint start_byte_offset) {
+  vector<float16_t, 3> v_5 = tint_bitcast_to_f16(u[(start_byte_offset / 16u)]).xyz;
+  return matrix<float16_t, 2, 3>(v_5, tint_bitcast_to_f16(u[((8u + start_byte_offset) / 16u)]).xyz);
+}
+
+typedef matrix<float16_t, 2, 3> ary_ret[4];
+ary_ret v_6(uint start_byte_offset) {
+  matrix<float16_t, 2, 3> a[4] = (matrix<float16_t, 2, 3>[4])0;
+  {
+    uint v_7 = 0u;
+    v_7 = 0u;
+    while(true) {
+      uint v_8 = v_7;
+      if ((v_8 >= 4u)) {
+        break;
+      }
+      a[v_8] = v_4((start_byte_offset + (v_8 * 16u)));
+      {
+        v_7 = (v_8 + 1u);
+      }
+      continue;
+    }
+  }
+  matrix<float16_t, 2, 3> v_9[4] = a;
+  return v_9;
+}
+
+void f_inner(uint tint_local_index) {
+  {
+    uint v_10 = 0u;
+    v_10 = tint_local_index;
+    while(true) {
+      uint v_11 = v_10;
+      if ((v_11 >= 4u)) {
+        break;
+      }
+      w[v_11] = matrix<float16_t, 2, 3>((float16_t(0.0h)).xxx, (float16_t(0.0h)).xxx);
+      {
+        v_10 = (v_11 + 1u);
+      }
+      continue;
+    }
+  }
+  GroupMemoryBarrierWithGroupSync();
+  matrix<float16_t, 2, 3> v_12[4] = v_6(0u);
+  w = v_12;
+  w[1] = v_4(32u);
+  w[1][0] = tint_bitcast_to_f16(u[0u]).xyz.zxy;
+  w[1][0][0u] = float16_t(f16tof32(u[0u].z));
+  s.Store<float16_t>(0u, w[1][0].x);
+}
+
+[numthreads(1, 1, 1)]
+void f(f_inputs inputs) {
+  f_inner(inputs.tint_local_index);
+}
+
diff --git a/test/tint/buffer/uniform/std140/array/mat2x3_f16/to_workgroup.wgsl.expected.ir.fxc.hlsl b/test/tint/buffer/uniform/std140/array/mat2x3_f16/to_workgroup.wgsl.expected.ir.fxc.hlsl
index 3f437dc..7e08167 100644
--- a/test/tint/buffer/uniform/std140/array/mat2x3_f16/to_workgroup.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/buffer/uniform/std140/array/mat2x3_f16/to_workgroup.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,84 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Access
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct f_inputs {
+  uint tint_local_index : SV_GroupIndex;
+};
+
+
+cbuffer cbuffer_u : register(b0) {
+  uint4 u[4];
+};
+RWByteAddressBuffer s : register(u1);
+groupshared matrix<float16_t, 2, 3> w[4];
+vector<float16_t, 4> tint_bitcast_to_f16(uint4 src) {
+  uint4 v = src;
+  uint4 mask = (65535u).xxxx;
+  uint4 shift = (16u).xxxx;
+  float4 t_low = f16tof32((v & mask));
+  float4 t_high = f16tof32(((v >> shift) & mask));
+  float16_t v_1 = float16_t(t_low.x);
+  float16_t v_2 = float16_t(t_high.x);
+  float16_t v_3 = float16_t(t_low.y);
+  return vector<float16_t, 4>(v_1, v_2, v_3, float16_t(t_high.y));
+}
+
+matrix<float16_t, 2, 3> v_4(uint start_byte_offset) {
+  vector<float16_t, 3> v_5 = tint_bitcast_to_f16(u[(start_byte_offset / 16u)]).xyz;
+  return matrix<float16_t, 2, 3>(v_5, tint_bitcast_to_f16(u[((8u + start_byte_offset) / 16u)]).xyz);
+}
+
+typedef matrix<float16_t, 2, 3> ary_ret[4];
+ary_ret v_6(uint start_byte_offset) {
+  matrix<float16_t, 2, 3> a[4] = (matrix<float16_t, 2, 3>[4])0;
+  {
+    uint v_7 = 0u;
+    v_7 = 0u;
+    while(true) {
+      uint v_8 = v_7;
+      if ((v_8 >= 4u)) {
+        break;
+      }
+      a[v_8] = v_4((start_byte_offset + (v_8 * 16u)));
+      {
+        v_7 = (v_8 + 1u);
+      }
+      continue;
+    }
+  }
+  matrix<float16_t, 2, 3> v_9[4] = a;
+  return v_9;
+}
+
+void f_inner(uint tint_local_index) {
+  {
+    uint v_10 = 0u;
+    v_10 = tint_local_index;
+    while(true) {
+      uint v_11 = v_10;
+      if ((v_11 >= 4u)) {
+        break;
+      }
+      w[v_11] = matrix<float16_t, 2, 3>((float16_t(0.0h)).xxx, (float16_t(0.0h)).xxx);
+      {
+        v_10 = (v_11 + 1u);
+      }
+      continue;
+    }
+  }
+  GroupMemoryBarrierWithGroupSync();
+  matrix<float16_t, 2, 3> v_12[4] = v_6(0u);
+  w = v_12;
+  w[1] = v_4(32u);
+  w[1][0] = tint_bitcast_to_f16(u[0u]).xyz.zxy;
+  w[1][0][0u] = float16_t(f16tof32(u[0u].z));
+  s.Store<float16_t>(0u, w[1][0].x);
+}
+
+[numthreads(1, 1, 1)]
+void f(f_inputs inputs) {
+  f_inner(inputs.tint_local_index);
+}
+
+FXC validation failure:
+c:\src\dawn\Shader@0x00000180D0312A00(10,20-28): error X3000: syntax error: unexpected token 'float16_t'
+
diff --git a/test/tint/buffer/uniform/std140/array/mat2x3_f32/dynamic_index_via_ptr.wgsl.expected.ir.dxc.hlsl b/test/tint/buffer/uniform/std140/array/mat2x3_f32/dynamic_index_via_ptr.wgsl.expected.ir.dxc.hlsl
index 3f437dc..86711fd 100644
--- a/test/tint/buffer/uniform/std140/array/mat2x3_f32/dynamic_index_via_ptr.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/buffer/uniform/std140/array/mat2x3_f32/dynamic_index_via_ptr.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,49 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Access
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+cbuffer cbuffer_a : register(b0) {
+  uint4 a[8];
+};
+RWByteAddressBuffer s : register(u1);
+static int counter = 0;
+int i() {
+  counter = (counter + 1);
+  return counter;
+}
+
+float2x3 v(uint start_byte_offset) {
+  float3 v_1 = asfloat(a[(start_byte_offset / 16u)].xyz);
+  return float2x3(v_1, asfloat(a[((16u + start_byte_offset) / 16u)].xyz));
+}
+
+typedef float2x3 ary_ret[4];
+ary_ret v_2(uint start_byte_offset) {
+  float2x3 a[4] = (float2x3[4])0;
+  {
+    uint v_3 = 0u;
+    v_3 = 0u;
+    while(true) {
+      uint v_4 = v_3;
+      if ((v_4 >= 4u)) {
+        break;
+      }
+      a[v_4] = v((start_byte_offset + (v_4 * 32u)));
+      {
+        v_3 = (v_4 + 1u);
+      }
+      continue;
+    }
+  }
+  float2x3 v_5[4] = a;
+  return v_5;
+}
+
+[numthreads(1, 1, 1)]
+void f() {
+  uint v_6 = (32u * uint(i()));
+  uint v_7 = (16u * uint(i()));
+  float2x3 v_8[4] = v_2(0u);
+  float2x3 l_a_i = v((v_6 + v_7));
+  float3 l_a_i_i = asfloat(a[((v_6 + v_7) / 16u)].xyz);
+  float2x3 l_a[4] = v_8;
+  s.Store(0u, asuint((((asfloat(a[((v_6 + v_7) / 16u)][(((v_6 + v_7) % 16u) / 4u)]) + l_a[0][0][0u]) + l_a_i[0][0u]) + l_a_i_i[0u])));
+}
+
diff --git a/test/tint/buffer/uniform/std140/array/mat2x3_f32/dynamic_index_via_ptr.wgsl.expected.ir.fxc.hlsl b/test/tint/buffer/uniform/std140/array/mat2x3_f32/dynamic_index_via_ptr.wgsl.expected.ir.fxc.hlsl
index 3f437dc..86711fd 100644
--- a/test/tint/buffer/uniform/std140/array/mat2x3_f32/dynamic_index_via_ptr.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/buffer/uniform/std140/array/mat2x3_f32/dynamic_index_via_ptr.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,49 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Access
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+cbuffer cbuffer_a : register(b0) {
+  uint4 a[8];
+};
+RWByteAddressBuffer s : register(u1);
+static int counter = 0;
+int i() {
+  counter = (counter + 1);
+  return counter;
+}
+
+float2x3 v(uint start_byte_offset) {
+  float3 v_1 = asfloat(a[(start_byte_offset / 16u)].xyz);
+  return float2x3(v_1, asfloat(a[((16u + start_byte_offset) / 16u)].xyz));
+}
+
+typedef float2x3 ary_ret[4];
+ary_ret v_2(uint start_byte_offset) {
+  float2x3 a[4] = (float2x3[4])0;
+  {
+    uint v_3 = 0u;
+    v_3 = 0u;
+    while(true) {
+      uint v_4 = v_3;
+      if ((v_4 >= 4u)) {
+        break;
+      }
+      a[v_4] = v((start_byte_offset + (v_4 * 32u)));
+      {
+        v_3 = (v_4 + 1u);
+      }
+      continue;
+    }
+  }
+  float2x3 v_5[4] = a;
+  return v_5;
+}
+
+[numthreads(1, 1, 1)]
+void f() {
+  uint v_6 = (32u * uint(i()));
+  uint v_7 = (16u * uint(i()));
+  float2x3 v_8[4] = v_2(0u);
+  float2x3 l_a_i = v((v_6 + v_7));
+  float3 l_a_i_i = asfloat(a[((v_6 + v_7) / 16u)].xyz);
+  float2x3 l_a[4] = v_8;
+  s.Store(0u, asuint((((asfloat(a[((v_6 + v_7) / 16u)][(((v_6 + v_7) % 16u) / 4u)]) + l_a[0][0][0u]) + l_a_i[0][0u]) + l_a_i_i[0u])));
+}
+
diff --git a/test/tint/buffer/uniform/std140/array/mat2x3_f32/static_index_via_ptr.wgsl.expected.ir.dxc.hlsl b/test/tint/buffer/uniform/std140/array/mat2x3_f32/static_index_via_ptr.wgsl.expected.ir.dxc.hlsl
index 3f437dc..e8fa3b9 100644
--- a/test/tint/buffer/uniform/std140/array/mat2x3_f32/static_index_via_ptr.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/buffer/uniform/std140/array/mat2x3_f32/static_index_via_ptr.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,41 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Access
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+cbuffer cbuffer_a : register(b0) {
+  uint4 a[8];
+};
+RWByteAddressBuffer s : register(u1);
+float2x3 v(uint start_byte_offset) {
+  float3 v_1 = asfloat(a[(start_byte_offset / 16u)].xyz);
+  return float2x3(v_1, asfloat(a[((16u + start_byte_offset) / 16u)].xyz));
+}
+
+typedef float2x3 ary_ret[4];
+ary_ret v_2(uint start_byte_offset) {
+  float2x3 a[4] = (float2x3[4])0;
+  {
+    uint v_3 = 0u;
+    v_3 = 0u;
+    while(true) {
+      uint v_4 = v_3;
+      if ((v_4 >= 4u)) {
+        break;
+      }
+      a[v_4] = v((start_byte_offset + (v_4 * 32u)));
+      {
+        v_3 = (v_4 + 1u);
+      }
+      continue;
+    }
+  }
+  float2x3 v_5[4] = a;
+  return v_5;
+}
+
+[numthreads(1, 1, 1)]
+void f() {
+  float2x3 v_6[4] = v_2(0u);
+  float2x3 l_a_i = v(80u);
+  float3 l_a_i_i = asfloat(a[5u].xyz);
+  float2x3 l_a[4] = v_6;
+  s.Store(0u, asuint((((asfloat(a[5u].x) + l_a[0][0][0u]) + l_a_i[0][0u]) + l_a_i_i[0u])));
+}
+
diff --git a/test/tint/buffer/uniform/std140/array/mat2x3_f32/static_index_via_ptr.wgsl.expected.ir.fxc.hlsl b/test/tint/buffer/uniform/std140/array/mat2x3_f32/static_index_via_ptr.wgsl.expected.ir.fxc.hlsl
index 3f437dc..873afd1 100644
--- a/test/tint/buffer/uniform/std140/array/mat2x3_f32/static_index_via_ptr.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/buffer/uniform/std140/array/mat2x3_f32/static_index_via_ptr.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,41 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Access
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+cbuffer cbuffer_a : register(b0) {
+  uint4 a[8];
+};
+RWByteAddressBuffer s : register(u1);
+float2x3 v(uint start_byte_offset) {
+  float3 v_1 = asfloat(a[(start_byte_offset / 16u)].xyz);
+  return float2x3(v_1, asfloat(a[((16u + start_byte_offset) / 16u)].xyz));
+}
+
+typedef float2x3 ary_ret[4];
+ary_ret v_2(uint start_byte_offset) {
+  float2x3 a[4] = (float2x3[4])0;
+  {
+    uint v_3 = 0u;
+    v_3 = 0u;
+    while(true) {
+      uint v_4 = v_3;
+      if ((v_4 >= 4u)) {
+        break;
+      }
+      a[v_4] = v((start_byte_offset + (v_4 * 32u)));
+      {
+        v_3 = (v_4 + 1u);
+      }
+      continue;
+    }
+  }
+  float2x3 v_5[4] = a;
+  return v_5;
+}
+
+[numthreads(1, 1, 1)]
+void f() {
+  float2x3 v_6[4] = v_2(0u);
+  float2x3 l_a_i = v(64u);
+  float3 l_a_i_i = asfloat(a[5u].xyz);
+  float2x3 l_a[4] = v_6;
+  s.Store(0u, asuint((((asfloat(a[5u].x) + l_a[0][0][0u]) + l_a_i[0][0u]) + l_a_i_i[0u])));
+}
+
diff --git a/test/tint/buffer/uniform/std140/array/mat2x3_f32/to_builtin.wgsl.expected.ir.dxc.hlsl b/test/tint/buffer/uniform/std140/array/mat2x3_f32/to_builtin.wgsl.expected.ir.dxc.hlsl
index 3f437dc..38590cf 100644
--- a/test/tint/buffer/uniform/std140/array/mat2x3_f32/to_builtin.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/buffer/uniform/std140/array/mat2x3_f32/to_builtin.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,19 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Access
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+cbuffer cbuffer_u : register(b0) {
+  uint4 u[8];
+};
+RWByteAddressBuffer s : register(u1);
+float2x3 v(uint start_byte_offset) {
+  float3 v_1 = asfloat(u[(start_byte_offset / 16u)].xyz);
+  return float2x3(v_1, asfloat(u[((16u + start_byte_offset) / 16u)].xyz));
+}
+
+[numthreads(1, 1, 1)]
+void f() {
+  float3x2 t = transpose(v(64u));
+  float l = length(asfloat(u[1u].xyz).zxy);
+  float a = abs(asfloat(u[1u].xyz).zxy[0u]);
+  float v_2 = (t[0][0u] + float(l));
+  s.Store(0u, asuint((v_2 + float(a))));
+}
+
diff --git a/test/tint/buffer/uniform/std140/array/mat2x3_f32/to_builtin.wgsl.expected.ir.fxc.hlsl b/test/tint/buffer/uniform/std140/array/mat2x3_f32/to_builtin.wgsl.expected.ir.fxc.hlsl
index 3f437dc..38590cf 100644
--- a/test/tint/buffer/uniform/std140/array/mat2x3_f32/to_builtin.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/buffer/uniform/std140/array/mat2x3_f32/to_builtin.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,19 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Access
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+cbuffer cbuffer_u : register(b0) {
+  uint4 u[8];
+};
+RWByteAddressBuffer s : register(u1);
+float2x3 v(uint start_byte_offset) {
+  float3 v_1 = asfloat(u[(start_byte_offset / 16u)].xyz);
+  return float2x3(v_1, asfloat(u[((16u + start_byte_offset) / 16u)].xyz));
+}
+
+[numthreads(1, 1, 1)]
+void f() {
+  float3x2 t = transpose(v(64u));
+  float l = length(asfloat(u[1u].xyz).zxy);
+  float a = abs(asfloat(u[1u].xyz).zxy[0u]);
+  float v_2 = (t[0][0u] + float(l));
+  s.Store(0u, asuint((v_2 + float(a))));
+}
+
diff --git a/test/tint/buffer/uniform/std140/array/mat2x3_f32/to_fn.wgsl.expected.ir.dxc.hlsl b/test/tint/buffer/uniform/std140/array/mat2x3_f32/to_fn.wgsl.expected.ir.dxc.hlsl
index 3f437dc..b2f236b 100644
--- a/test/tint/buffer/uniform/std140/array/mat2x3_f32/to_fn.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/buffer/uniform/std140/array/mat2x3_f32/to_fn.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,57 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Access
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+cbuffer cbuffer_u : register(b0) {
+  uint4 u[8];
+};
+RWByteAddressBuffer s : register(u1);
+float a(float2x3 a_1[4]) {
+  return a_1[0][0][0u];
+}
+
+float b(float2x3 m) {
+  return m[0][0u];
+}
+
+float c(float3 v) {
+  return v[0u];
+}
+
+float d(float f) {
+  return f;
+}
+
+float2x3 v_1(uint start_byte_offset) {
+  float3 v_2 = asfloat(u[(start_byte_offset / 16u)].xyz);
+  return float2x3(v_2, asfloat(u[((16u + start_byte_offset) / 16u)].xyz));
+}
+
+typedef float2x3 ary_ret[4];
+ary_ret v_3(uint start_byte_offset) {
+  float2x3 a[4] = (float2x3[4])0;
+  {
+    uint v_4 = 0u;
+    v_4 = 0u;
+    while(true) {
+      uint v_5 = v_4;
+      if ((v_5 >= 4u)) {
+        break;
+      }
+      a[v_5] = v_1((start_byte_offset + (v_5 * 32u)));
+      {
+        v_4 = (v_5 + 1u);
+      }
+      continue;
+    }
+  }
+  float2x3 v_6[4] = a;
+  return v_6;
+}
+
+[numthreads(1, 1, 1)]
+void f() {
+  float2x3 v_7[4] = v_3(0u);
+  float v_8 = a(v_7);
+  float v_9 = (v_8 + b(v_1(32u)));
+  float v_10 = (v_9 + c(asfloat(u[2u].xyz).zxy));
+  s.Store(0u, asuint((v_10 + d(asfloat(u[2u].xyz).zxy[0u]))));
+}
+
diff --git a/test/tint/buffer/uniform/std140/array/mat2x3_f32/to_fn.wgsl.expected.ir.fxc.hlsl b/test/tint/buffer/uniform/std140/array/mat2x3_f32/to_fn.wgsl.expected.ir.fxc.hlsl
index 3f437dc..b2f236b 100644
--- a/test/tint/buffer/uniform/std140/array/mat2x3_f32/to_fn.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/buffer/uniform/std140/array/mat2x3_f32/to_fn.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,57 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Access
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+cbuffer cbuffer_u : register(b0) {
+  uint4 u[8];
+};
+RWByteAddressBuffer s : register(u1);
+float a(float2x3 a_1[4]) {
+  return a_1[0][0][0u];
+}
+
+float b(float2x3 m) {
+  return m[0][0u];
+}
+
+float c(float3 v) {
+  return v[0u];
+}
+
+float d(float f) {
+  return f;
+}
+
+float2x3 v_1(uint start_byte_offset) {
+  float3 v_2 = asfloat(u[(start_byte_offset / 16u)].xyz);
+  return float2x3(v_2, asfloat(u[((16u + start_byte_offset) / 16u)].xyz));
+}
+
+typedef float2x3 ary_ret[4];
+ary_ret v_3(uint start_byte_offset) {
+  float2x3 a[4] = (float2x3[4])0;
+  {
+    uint v_4 = 0u;
+    v_4 = 0u;
+    while(true) {
+      uint v_5 = v_4;
+      if ((v_5 >= 4u)) {
+        break;
+      }
+      a[v_5] = v_1((start_byte_offset + (v_5 * 32u)));
+      {
+        v_4 = (v_5 + 1u);
+      }
+      continue;
+    }
+  }
+  float2x3 v_6[4] = a;
+  return v_6;
+}
+
+[numthreads(1, 1, 1)]
+void f() {
+  float2x3 v_7[4] = v_3(0u);
+  float v_8 = a(v_7);
+  float v_9 = (v_8 + b(v_1(32u)));
+  float v_10 = (v_9 + c(asfloat(u[2u].xyz).zxy));
+  s.Store(0u, asuint((v_10 + d(asfloat(u[2u].xyz).zxy[0u]))));
+}
+
diff --git a/test/tint/buffer/uniform/std140/array/mat2x3_f32/to_private.wgsl.expected.ir.dxc.hlsl b/test/tint/buffer/uniform/std140/array/mat2x3_f32/to_private.wgsl.expected.ir.dxc.hlsl
index 3f437dc..c305716 100644
--- a/test/tint/buffer/uniform/std140/array/mat2x3_f32/to_private.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/buffer/uniform/std140/array/mat2x3_f32/to_private.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,43 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Access
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+cbuffer cbuffer_u : register(b0) {
+  uint4 u[8];
+};
+RWByteAddressBuffer s : register(u1);
+static float2x3 p[4] = (float2x3[4])0;
+float2x3 v(uint start_byte_offset) {
+  float3 v_1 = asfloat(u[(start_byte_offset / 16u)].xyz);
+  return float2x3(v_1, asfloat(u[((16u + start_byte_offset) / 16u)].xyz));
+}
+
+typedef float2x3 ary_ret[4];
+ary_ret v_2(uint start_byte_offset) {
+  float2x3 a[4] = (float2x3[4])0;
+  {
+    uint v_3 = 0u;
+    v_3 = 0u;
+    while(true) {
+      uint v_4 = v_3;
+      if ((v_4 >= 4u)) {
+        break;
+      }
+      a[v_4] = v((start_byte_offset + (v_4 * 32u)));
+      {
+        v_3 = (v_4 + 1u);
+      }
+      continue;
+    }
+  }
+  float2x3 v_5[4] = a;
+  return v_5;
+}
+
+[numthreads(1, 1, 1)]
+void f() {
+  float2x3 v_6[4] = v_2(0u);
+  p = v_6;
+  p[1] = v(64u);
+  p[1][0] = asfloat(u[1u].xyz).zxy;
+  p[1][0][0u] = asfloat(u[1u].x);
+  s.Store(0u, asuint(p[1][0].x));
+}
+
diff --git a/test/tint/buffer/uniform/std140/array/mat2x3_f32/to_private.wgsl.expected.ir.fxc.hlsl b/test/tint/buffer/uniform/std140/array/mat2x3_f32/to_private.wgsl.expected.ir.fxc.hlsl
index 3f437dc..c305716 100644
--- a/test/tint/buffer/uniform/std140/array/mat2x3_f32/to_private.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/buffer/uniform/std140/array/mat2x3_f32/to_private.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,43 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Access
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+cbuffer cbuffer_u : register(b0) {
+  uint4 u[8];
+};
+RWByteAddressBuffer s : register(u1);
+static float2x3 p[4] = (float2x3[4])0;
+float2x3 v(uint start_byte_offset) {
+  float3 v_1 = asfloat(u[(start_byte_offset / 16u)].xyz);
+  return float2x3(v_1, asfloat(u[((16u + start_byte_offset) / 16u)].xyz));
+}
+
+typedef float2x3 ary_ret[4];
+ary_ret v_2(uint start_byte_offset) {
+  float2x3 a[4] = (float2x3[4])0;
+  {
+    uint v_3 = 0u;
+    v_3 = 0u;
+    while(true) {
+      uint v_4 = v_3;
+      if ((v_4 >= 4u)) {
+        break;
+      }
+      a[v_4] = v((start_byte_offset + (v_4 * 32u)));
+      {
+        v_3 = (v_4 + 1u);
+      }
+      continue;
+    }
+  }
+  float2x3 v_5[4] = a;
+  return v_5;
+}
+
+[numthreads(1, 1, 1)]
+void f() {
+  float2x3 v_6[4] = v_2(0u);
+  p = v_6;
+  p[1] = v(64u);
+  p[1][0] = asfloat(u[1u].xyz).zxy;
+  p[1][0][0u] = asfloat(u[1u].x);
+  s.Store(0u, asuint(p[1][0].x));
+}
+
diff --git a/test/tint/buffer/uniform/std140/array/mat2x3_f32/to_storage.wgsl.expected.ir.dxc.hlsl b/test/tint/buffer/uniform/std140/array/mat2x3_f32/to_storage.wgsl.expected.ir.dxc.hlsl
index 3f437dc..dcf2ece 100644
--- a/test/tint/buffer/uniform/std140/array/mat2x3_f32/to_storage.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/buffer/uniform/std140/array/mat2x3_f32/to_storage.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,64 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Access
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+cbuffer cbuffer_u : register(b0) {
+  uint4 u[8];
+};
+RWByteAddressBuffer s : register(u1);
+void v(uint offset, float2x3 obj) {
+  s.Store3((offset + 0u), asuint(obj[0u]));
+  s.Store3((offset + 16u), asuint(obj[1u]));
+}
+
+float2x3 v_1(uint start_byte_offset) {
+  float3 v_2 = asfloat(u[(start_byte_offset / 16u)].xyz);
+  return float2x3(v_2, asfloat(u[((16u + start_byte_offset) / 16u)].xyz));
+}
+
+void v_3(uint offset, float2x3 obj[4]) {
+  {
+    uint v_4 = 0u;
+    v_4 = 0u;
+    while(true) {
+      uint v_5 = v_4;
+      if ((v_5 >= 4u)) {
+        break;
+      }
+      v((offset + (v_5 * 32u)), obj[v_5]);
+      {
+        v_4 = (v_5 + 1u);
+      }
+      continue;
+    }
+  }
+}
+
+typedef float2x3 ary_ret[4];
+ary_ret v_6(uint start_byte_offset) {
+  float2x3 a[4] = (float2x3[4])0;
+  {
+    uint v_7 = 0u;
+    v_7 = 0u;
+    while(true) {
+      uint v_8 = v_7;
+      if ((v_8 >= 4u)) {
+        break;
+      }
+      a[v_8] = v_1((start_byte_offset + (v_8 * 32u)));
+      {
+        v_7 = (v_8 + 1u);
+      }
+      continue;
+    }
+  }
+  float2x3 v_9[4] = a;
+  return v_9;
+}
+
+[numthreads(1, 1, 1)]
+void f() {
+  float2x3 v_10[4] = v_6(0u);
+  v_3(0u, v_10);
+  v(32u, v_1(64u));
+  s.Store3(32u, asuint(asfloat(u[1u].xyz).zxy));
+  s.Store(32u, asuint(asfloat(u[1u].x)));
+}
+
diff --git a/test/tint/buffer/uniform/std140/array/mat2x3_f32/to_storage.wgsl.expected.ir.fxc.hlsl b/test/tint/buffer/uniform/std140/array/mat2x3_f32/to_storage.wgsl.expected.ir.fxc.hlsl
index 3f437dc..dcf2ece 100644
--- a/test/tint/buffer/uniform/std140/array/mat2x3_f32/to_storage.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/buffer/uniform/std140/array/mat2x3_f32/to_storage.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,64 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Access
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+cbuffer cbuffer_u : register(b0) {
+  uint4 u[8];
+};
+RWByteAddressBuffer s : register(u1);
+void v(uint offset, float2x3 obj) {
+  s.Store3((offset + 0u), asuint(obj[0u]));
+  s.Store3((offset + 16u), asuint(obj[1u]));
+}
+
+float2x3 v_1(uint start_byte_offset) {
+  float3 v_2 = asfloat(u[(start_byte_offset / 16u)].xyz);
+  return float2x3(v_2, asfloat(u[((16u + start_byte_offset) / 16u)].xyz));
+}
+
+void v_3(uint offset, float2x3 obj[4]) {
+  {
+    uint v_4 = 0u;
+    v_4 = 0u;
+    while(true) {
+      uint v_5 = v_4;
+      if ((v_5 >= 4u)) {
+        break;
+      }
+      v((offset + (v_5 * 32u)), obj[v_5]);
+      {
+        v_4 = (v_5 + 1u);
+      }
+      continue;
+    }
+  }
+}
+
+typedef float2x3 ary_ret[4];
+ary_ret v_6(uint start_byte_offset) {
+  float2x3 a[4] = (float2x3[4])0;
+  {
+    uint v_7 = 0u;
+    v_7 = 0u;
+    while(true) {
+      uint v_8 = v_7;
+      if ((v_8 >= 4u)) {
+        break;
+      }
+      a[v_8] = v_1((start_byte_offset + (v_8 * 32u)));
+      {
+        v_7 = (v_8 + 1u);
+      }
+      continue;
+    }
+  }
+  float2x3 v_9[4] = a;
+  return v_9;
+}
+
+[numthreads(1, 1, 1)]
+void f() {
+  float2x3 v_10[4] = v_6(0u);
+  v_3(0u, v_10);
+  v(32u, v_1(64u));
+  s.Store3(32u, asuint(asfloat(u[1u].xyz).zxy));
+  s.Store(32u, asuint(asfloat(u[1u].x)));
+}
+
diff --git a/test/tint/buffer/uniform/std140/array/mat2x3_f32/to_workgroup.wgsl.expected.ir.dxc.hlsl b/test/tint/buffer/uniform/std140/array/mat2x3_f32/to_workgroup.wgsl.expected.ir.dxc.hlsl
index 3f437dc..e12eda3 100644
--- a/test/tint/buffer/uniform/std140/array/mat2x3_f32/to_workgroup.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/buffer/uniform/std140/array/mat2x3_f32/to_workgroup.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,65 @@
-SKIP: FAILED
+struct f_inputs {
+  uint tint_local_index : SV_GroupIndex;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Access
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+
+cbuffer cbuffer_u : register(b0) {
+  uint4 u[8];
+};
+groupshared float2x3 w[4];
+float2x3 v(uint start_byte_offset) {
+  float3 v_1 = asfloat(u[(start_byte_offset / 16u)].xyz);
+  return float2x3(v_1, asfloat(u[((16u + start_byte_offset) / 16u)].xyz));
+}
+
+typedef float2x3 ary_ret[4];
+ary_ret v_2(uint start_byte_offset) {
+  float2x3 a[4] = (float2x3[4])0;
+  {
+    uint v_3 = 0u;
+    v_3 = 0u;
+    while(true) {
+      uint v_4 = v_3;
+      if ((v_4 >= 4u)) {
+        break;
+      }
+      a[v_4] = v((start_byte_offset + (v_4 * 32u)));
+      {
+        v_3 = (v_4 + 1u);
+      }
+      continue;
+    }
+  }
+  float2x3 v_5[4] = a;
+  return v_5;
+}
+
+void f_inner(uint tint_local_index) {
+  {
+    uint v_6 = 0u;
+    v_6 = tint_local_index;
+    while(true) {
+      uint v_7 = v_6;
+      if ((v_7 >= 4u)) {
+        break;
+      }
+      w[v_7] = float2x3((0.0f).xxx, (0.0f).xxx);
+      {
+        v_6 = (v_7 + 1u);
+      }
+      continue;
+    }
+  }
+  GroupMemoryBarrierWithGroupSync();
+  float2x3 v_8[4] = v_2(0u);
+  w = v_8;
+  w[1] = v(64u);
+  w[1][0] = asfloat(u[1u].xyz).zxy;
+  w[1][0][0u] = asfloat(u[1u].x);
+}
+
+[numthreads(1, 1, 1)]
+void f(f_inputs inputs) {
+  f_inner(inputs.tint_local_index);
+}
+
diff --git a/test/tint/buffer/uniform/std140/array/mat2x3_f32/to_workgroup.wgsl.expected.ir.fxc.hlsl b/test/tint/buffer/uniform/std140/array/mat2x3_f32/to_workgroup.wgsl.expected.ir.fxc.hlsl
index 3f437dc..e12eda3 100644
--- a/test/tint/buffer/uniform/std140/array/mat2x3_f32/to_workgroup.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/buffer/uniform/std140/array/mat2x3_f32/to_workgroup.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,65 @@
-SKIP: FAILED
+struct f_inputs {
+  uint tint_local_index : SV_GroupIndex;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Access
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+
+cbuffer cbuffer_u : register(b0) {
+  uint4 u[8];
+};
+groupshared float2x3 w[4];
+float2x3 v(uint start_byte_offset) {
+  float3 v_1 = asfloat(u[(start_byte_offset / 16u)].xyz);
+  return float2x3(v_1, asfloat(u[((16u + start_byte_offset) / 16u)].xyz));
+}
+
+typedef float2x3 ary_ret[4];
+ary_ret v_2(uint start_byte_offset) {
+  float2x3 a[4] = (float2x3[4])0;
+  {
+    uint v_3 = 0u;
+    v_3 = 0u;
+    while(true) {
+      uint v_4 = v_3;
+      if ((v_4 >= 4u)) {
+        break;
+      }
+      a[v_4] = v((start_byte_offset + (v_4 * 32u)));
+      {
+        v_3 = (v_4 + 1u);
+      }
+      continue;
+    }
+  }
+  float2x3 v_5[4] = a;
+  return v_5;
+}
+
+void f_inner(uint tint_local_index) {
+  {
+    uint v_6 = 0u;
+    v_6 = tint_local_index;
+    while(true) {
+      uint v_7 = v_6;
+      if ((v_7 >= 4u)) {
+        break;
+      }
+      w[v_7] = float2x3((0.0f).xxx, (0.0f).xxx);
+      {
+        v_6 = (v_7 + 1u);
+      }
+      continue;
+    }
+  }
+  GroupMemoryBarrierWithGroupSync();
+  float2x3 v_8[4] = v_2(0u);
+  w = v_8;
+  w[1] = v(64u);
+  w[1][0] = asfloat(u[1u].xyz).zxy;
+  w[1][0][0u] = asfloat(u[1u].x);
+}
+
+[numthreads(1, 1, 1)]
+void f(f_inputs inputs) {
+  f_inner(inputs.tint_local_index);
+}
+
diff --git a/test/tint/buffer/uniform/std140/array/mat2x4_f16/dynamic_index_via_ptr.wgsl.expected.ir.dxc.hlsl b/test/tint/buffer/uniform/std140/array/mat2x4_f16/dynamic_index_via_ptr.wgsl.expected.ir.dxc.hlsl
index 3f437dc..1cb3eee 100644
--- a/test/tint/buffer/uniform/std140/array/mat2x4_f16/dynamic_index_via_ptr.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/buffer/uniform/std140/array/mat2x4_f16/dynamic_index_via_ptr.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,62 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Access
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+cbuffer cbuffer_a : register(b0) {
+  uint4 a[4];
+};
+RWByteAddressBuffer s : register(u1);
+static int counter = 0;
+int i() {
+  counter = (counter + 1);
+  return counter;
+}
+
+vector<float16_t, 4> tint_bitcast_to_f16(uint4 src) {
+  uint4 v = src;
+  uint4 mask = (65535u).xxxx;
+  uint4 shift = (16u).xxxx;
+  float4 t_low = f16tof32((v & mask));
+  float4 t_high = f16tof32(((v >> shift) & mask));
+  float16_t v_1 = float16_t(t_low.x);
+  float16_t v_2 = float16_t(t_high.x);
+  float16_t v_3 = float16_t(t_low.y);
+  return vector<float16_t, 4>(v_1, v_2, v_3, float16_t(t_high.y));
+}
+
+matrix<float16_t, 2, 4> v_4(uint start_byte_offset) {
+  vector<float16_t, 4> v_5 = tint_bitcast_to_f16(a[(start_byte_offset / 16u)]);
+  return matrix<float16_t, 2, 4>(v_5, tint_bitcast_to_f16(a[((8u + start_byte_offset) / 16u)]));
+}
+
+typedef matrix<float16_t, 2, 4> ary_ret[4];
+ary_ret v_6(uint start_byte_offset) {
+  matrix<float16_t, 2, 4> a[4] = (matrix<float16_t, 2, 4>[4])0;
+  {
+    uint v_7 = 0u;
+    v_7 = 0u;
+    while(true) {
+      uint v_8 = v_7;
+      if ((v_8 >= 4u)) {
+        break;
+      }
+      a[v_8] = v_4((start_byte_offset + (v_8 * 16u)));
+      {
+        v_7 = (v_8 + 1u);
+      }
+      continue;
+    }
+  }
+  matrix<float16_t, 2, 4> v_9[4] = a;
+  return v_9;
+}
+
+[numthreads(1, 1, 1)]
+void f() {
+  uint v_10 = (16u * uint(i()));
+  uint v_11 = (8u * uint(i()));
+  matrix<float16_t, 2, 4> v_12[4] = v_6(0u);
+  matrix<float16_t, 2, 4> l_a_i = v_4((v_10 + v_11));
+  vector<float16_t, 4> l_a_i_i = tint_bitcast_to_f16(a[((v_10 + v_11) / 16u)]);
+  uint v_13 = a[((v_10 + v_11) / 16u)][(((v_10 + v_11) % 16u) / 4u)];
+  matrix<float16_t, 2, 4> l_a[4] = v_12;
+  s.Store<float16_t>(0u, (((float16_t(f16tof32((v_13 >> (((((v_10 + v_11) % 4u) == 0u)) ? (0u) : (16u))))) + l_a[0][0][0u]) + l_a_i[0][0u]) + l_a_i_i[0u]));
+}
+
diff --git a/test/tint/buffer/uniform/std140/array/mat2x4_f16/dynamic_index_via_ptr.wgsl.expected.ir.fxc.hlsl b/test/tint/buffer/uniform/std140/array/mat2x4_f16/dynamic_index_via_ptr.wgsl.expected.ir.fxc.hlsl
index 3f437dc..5fe6a9f 100644
--- a/test/tint/buffer/uniform/std140/array/mat2x4_f16/dynamic_index_via_ptr.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/buffer/uniform/std140/array/mat2x4_f16/dynamic_index_via_ptr.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,67 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Access
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+
+cbuffer cbuffer_a : register(b0) {
+  uint4 a[4];
+};
+RWByteAddressBuffer s : register(u1);
+static int counter = 0;
+int i() {
+  counter = (counter + 1);
+  return counter;
+}
+
+vector<float16_t, 4> tint_bitcast_to_f16(uint4 src) {
+  uint4 v = src;
+  uint4 mask = (65535u).xxxx;
+  uint4 shift = (16u).xxxx;
+  float4 t_low = f16tof32((v & mask));
+  float4 t_high = f16tof32(((v >> shift) & mask));
+  float16_t v_1 = float16_t(t_low.x);
+  float16_t v_2 = float16_t(t_high.x);
+  float16_t v_3 = float16_t(t_low.y);
+  return vector<float16_t, 4>(v_1, v_2, v_3, float16_t(t_high.y));
+}
+
+matrix<float16_t, 2, 4> v_4(uint start_byte_offset) {
+  vector<float16_t, 4> v_5 = tint_bitcast_to_f16(a[(start_byte_offset / 16u)]);
+  return matrix<float16_t, 2, 4>(v_5, tint_bitcast_to_f16(a[((8u + start_byte_offset) / 16u)]));
+}
+
+typedef matrix<float16_t, 2, 4> ary_ret[4];
+ary_ret v_6(uint start_byte_offset) {
+  matrix<float16_t, 2, 4> a[4] = (matrix<float16_t, 2, 4>[4])0;
+  {
+    uint v_7 = 0u;
+    v_7 = 0u;
+    while(true) {
+      uint v_8 = v_7;
+      if ((v_8 >= 4u)) {
+        break;
+      }
+      a[v_8] = v_4((start_byte_offset + (v_8 * 16u)));
+      {
+        v_7 = (v_8 + 1u);
+      }
+      continue;
+    }
+  }
+  matrix<float16_t, 2, 4> v_9[4] = a;
+  return v_9;
+}
+
+[numthreads(1, 1, 1)]
+void f() {
+  uint v_10 = (16u * uint(i()));
+  uint v_11 = (8u * uint(i()));
+  matrix<float16_t, 2, 4> v_12[4] = v_6(0u);
+  matrix<float16_t, 2, 4> l_a_i = v_4((v_10 + v_11));
+  vector<float16_t, 4> l_a_i_i = tint_bitcast_to_f16(a[((v_10 + v_11) / 16u)]);
+  uint v_13 = a[((v_10 + v_11) / 16u)][(((v_10 + v_11) % 16u) / 4u)];
+  matrix<float16_t, 2, 4> l_a[4] = v_12;
+  s.Store<float16_t>(0u, (((float16_t(f16tof32((v_13 >> (((((v_10 + v_11) % 4u) == 0u)) ? (0u) : (16u))))) + l_a[0][0][0u]) + l_a_i[0][0u]) + l_a_i_i[0u]));
+}
+
+FXC validation failure:
+c:\src\dawn\Shader@0x000001FA57A46790(12,8-16): error X3000: syntax error: unexpected token 'float16_t'
+
diff --git a/test/tint/buffer/uniform/std140/array/mat2x4_f16/static_index_via_ptr.wgsl.expected.ir.dxc.hlsl b/test/tint/buffer/uniform/std140/array/mat2x4_f16/static_index_via_ptr.wgsl.expected.ir.dxc.hlsl
index 3f437dc..45de517 100644
--- a/test/tint/buffer/uniform/std140/array/mat2x4_f16/static_index_via_ptr.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/buffer/uniform/std140/array/mat2x4_f16/static_index_via_ptr.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,53 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Access
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+cbuffer cbuffer_a : register(b0) {
+  uint4 a[4];
+};
+RWByteAddressBuffer s : register(u1);
+vector<float16_t, 4> tint_bitcast_to_f16(uint4 src) {
+  uint4 v = src;
+  uint4 mask = (65535u).xxxx;
+  uint4 shift = (16u).xxxx;
+  float4 t_low = f16tof32((v & mask));
+  float4 t_high = f16tof32(((v >> shift) & mask));
+  float16_t v_1 = float16_t(t_low.x);
+  float16_t v_2 = float16_t(t_high.x);
+  float16_t v_3 = float16_t(t_low.y);
+  return vector<float16_t, 4>(v_1, v_2, v_3, float16_t(t_high.y));
+}
+
+matrix<float16_t, 2, 4> v_4(uint start_byte_offset) {
+  vector<float16_t, 4> v_5 = tint_bitcast_to_f16(a[(start_byte_offset / 16u)]);
+  return matrix<float16_t, 2, 4>(v_5, tint_bitcast_to_f16(a[((8u + start_byte_offset) / 16u)]));
+}
+
+typedef matrix<float16_t, 2, 4> ary_ret[4];
+ary_ret v_6(uint start_byte_offset) {
+  matrix<float16_t, 2, 4> a[4] = (matrix<float16_t, 2, 4>[4])0;
+  {
+    uint v_7 = 0u;
+    v_7 = 0u;
+    while(true) {
+      uint v_8 = v_7;
+      if ((v_8 >= 4u)) {
+        break;
+      }
+      a[v_8] = v_4((start_byte_offset + (v_8 * 16u)));
+      {
+        v_7 = (v_8 + 1u);
+      }
+      continue;
+    }
+  }
+  matrix<float16_t, 2, 4> v_9[4] = a;
+  return v_9;
+}
+
+[numthreads(1, 1, 1)]
+void f() {
+  matrix<float16_t, 2, 4> v_10[4] = v_6(0u);
+  matrix<float16_t, 2, 4> l_a_i = v_4(40u);
+  vector<float16_t, 4> l_a_i_i = tint_bitcast_to_f16(a[2u]);
+  matrix<float16_t, 2, 4> l_a[4] = v_10;
+  s.Store<float16_t>(0u, (((float16_t(f16tof32(a[2u].z)) + l_a[0][0][0u]) + l_a_i[0][0u]) + l_a_i_i[0u]));
+}
+
diff --git a/test/tint/buffer/uniform/std140/array/mat2x4_f16/static_index_via_ptr.wgsl.expected.ir.fxc.hlsl b/test/tint/buffer/uniform/std140/array/mat2x4_f16/static_index_via_ptr.wgsl.expected.ir.fxc.hlsl
index 3f437dc..d417766 100644
--- a/test/tint/buffer/uniform/std140/array/mat2x4_f16/static_index_via_ptr.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/buffer/uniform/std140/array/mat2x4_f16/static_index_via_ptr.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,58 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Access
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+
+cbuffer cbuffer_a : register(b0) {
+  uint4 a[4];
+};
+RWByteAddressBuffer s : register(u1);
+vector<float16_t, 4> tint_bitcast_to_f16(uint4 src) {
+  uint4 v = src;
+  uint4 mask = (65535u).xxxx;
+  uint4 shift = (16u).xxxx;
+  float4 t_low = f16tof32((v & mask));
+  float4 t_high = f16tof32(((v >> shift) & mask));
+  float16_t v_1 = float16_t(t_low.x);
+  float16_t v_2 = float16_t(t_high.x);
+  float16_t v_3 = float16_t(t_low.y);
+  return vector<float16_t, 4>(v_1, v_2, v_3, float16_t(t_high.y));
+}
+
+matrix<float16_t, 2, 4> v_4(uint start_byte_offset) {
+  vector<float16_t, 4> v_5 = tint_bitcast_to_f16(a[(start_byte_offset / 16u)]);
+  return matrix<float16_t, 2, 4>(v_5, tint_bitcast_to_f16(a[((8u + start_byte_offset) / 16u)]));
+}
+
+typedef matrix<float16_t, 2, 4> ary_ret[4];
+ary_ret v_6(uint start_byte_offset) {
+  matrix<float16_t, 2, 4> a[4] = (matrix<float16_t, 2, 4>[4])0;
+  {
+    uint v_7 = 0u;
+    v_7 = 0u;
+    while(true) {
+      uint v_8 = v_7;
+      if ((v_8 >= 4u)) {
+        break;
+      }
+      a[v_8] = v_4((start_byte_offset + (v_8 * 16u)));
+      {
+        v_7 = (v_8 + 1u);
+      }
+      continue;
+    }
+  }
+  matrix<float16_t, 2, 4> v_9[4] = a;
+  return v_9;
+}
+
+[numthreads(1, 1, 1)]
+void f() {
+  matrix<float16_t, 2, 4> v_10[4] = v_6(0u);
+  matrix<float16_t, 2, 4> l_a_i = v_4(40u);
+  vector<float16_t, 4> l_a_i_i = tint_bitcast_to_f16(a[2u]);
+  matrix<float16_t, 2, 4> l_a[4] = v_10;
+  s.Store<float16_t>(0u, (((float16_t(f16tof32(a[2u].z)) + l_a[0][0][0u]) + l_a_i[0][0u]) + l_a_i_i[0u]));
+}
+
+FXC validation failure:
+c:\src\dawn\Shader@0x000002CB0C6439C0(6,8-16): error X3000: syntax error: unexpected token 'float16_t'
+
diff --git a/test/tint/buffer/uniform/std140/array/mat2x4_f16/to_builtin.wgsl.expected.ir.dxc.hlsl b/test/tint/buffer/uniform/std140/array/mat2x4_f16/to_builtin.wgsl.expected.ir.dxc.hlsl
index 3f437dc..73f98c8 100644
--- a/test/tint/buffer/uniform/std140/array/mat2x4_f16/to_builtin.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/buffer/uniform/std140/array/mat2x4_f16/to_builtin.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,31 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Access
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+cbuffer cbuffer_u : register(b0) {
+  uint4 u[4];
+};
+RWByteAddressBuffer s : register(u1);
+vector<float16_t, 4> tint_bitcast_to_f16(uint4 src) {
+  uint4 v = src;
+  uint4 mask = (65535u).xxxx;
+  uint4 shift = (16u).xxxx;
+  float4 t_low = f16tof32((v & mask));
+  float4 t_high = f16tof32(((v >> shift) & mask));
+  float16_t v_1 = float16_t(t_low.x);
+  float16_t v_2 = float16_t(t_high.x);
+  float16_t v_3 = float16_t(t_low.y);
+  return vector<float16_t, 4>(v_1, v_2, v_3, float16_t(t_high.y));
+}
+
+matrix<float16_t, 2, 4> v_4(uint start_byte_offset) {
+  vector<float16_t, 4> v_5 = tint_bitcast_to_f16(u[(start_byte_offset / 16u)]);
+  return matrix<float16_t, 2, 4>(v_5, tint_bitcast_to_f16(u[((8u + start_byte_offset) / 16u)]));
+}
+
+[numthreads(1, 1, 1)]
+void f() {
+  matrix<float16_t, 4, 2> t = transpose(v_4(32u));
+  float16_t l = length(tint_bitcast_to_f16(u[0u]).ywxz);
+  float16_t a = abs(tint_bitcast_to_f16(u[0u]).ywxz[0u]);
+  float16_t v_6 = (t[0][0u] + float16_t(l));
+  s.Store<float16_t>(0u, (v_6 + float16_t(a)));
+}
+
diff --git a/test/tint/buffer/uniform/std140/array/mat2x4_f16/to_builtin.wgsl.expected.ir.fxc.hlsl b/test/tint/buffer/uniform/std140/array/mat2x4_f16/to_builtin.wgsl.expected.ir.fxc.hlsl
index 3f437dc..255fe15 100644
--- a/test/tint/buffer/uniform/std140/array/mat2x4_f16/to_builtin.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/buffer/uniform/std140/array/mat2x4_f16/to_builtin.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,36 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Access
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+
+cbuffer cbuffer_u : register(b0) {
+  uint4 u[4];
+};
+RWByteAddressBuffer s : register(u1);
+vector<float16_t, 4> tint_bitcast_to_f16(uint4 src) {
+  uint4 v = src;
+  uint4 mask = (65535u).xxxx;
+  uint4 shift = (16u).xxxx;
+  float4 t_low = f16tof32((v & mask));
+  float4 t_high = f16tof32(((v >> shift) & mask));
+  float16_t v_1 = float16_t(t_low.x);
+  float16_t v_2 = float16_t(t_high.x);
+  float16_t v_3 = float16_t(t_low.y);
+  return vector<float16_t, 4>(v_1, v_2, v_3, float16_t(t_high.y));
+}
+
+matrix<float16_t, 2, 4> v_4(uint start_byte_offset) {
+  vector<float16_t, 4> v_5 = tint_bitcast_to_f16(u[(start_byte_offset / 16u)]);
+  return matrix<float16_t, 2, 4>(v_5, tint_bitcast_to_f16(u[((8u + start_byte_offset) / 16u)]));
+}
+
+[numthreads(1, 1, 1)]
+void f() {
+  matrix<float16_t, 4, 2> t = transpose(v_4(32u));
+  float16_t l = length(tint_bitcast_to_f16(u[0u]).ywxz);
+  float16_t a = abs(tint_bitcast_to_f16(u[0u]).ywxz[0u]);
+  float16_t v_6 = (t[0][0u] + float16_t(l));
+  s.Store<float16_t>(0u, (v_6 + float16_t(a)));
+}
+
+FXC validation failure:
+c:\src\dawn\Shader@0x000001F006602420(6,8-16): error X3000: syntax error: unexpected token 'float16_t'
+
diff --git a/test/tint/buffer/uniform/std140/array/mat2x4_f16/to_fn.wgsl.expected.ir.dxc.hlsl b/test/tint/buffer/uniform/std140/array/mat2x4_f16/to_fn.wgsl.expected.ir.dxc.hlsl
index 3f437dc..c02eabe 100644
--- a/test/tint/buffer/uniform/std140/array/mat2x4_f16/to_fn.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/buffer/uniform/std140/array/mat2x4_f16/to_fn.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,69 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Access
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+cbuffer cbuffer_u : register(b0) {
+  uint4 u[4];
+};
+RWByteAddressBuffer s : register(u1);
+float16_t a(matrix<float16_t, 2, 4> a_1[4]) {
+  return a_1[0][0][0u];
+}
+
+float16_t b(matrix<float16_t, 2, 4> m) {
+  return m[0][0u];
+}
+
+float16_t c(vector<float16_t, 4> v) {
+  return v[0u];
+}
+
+float16_t d(float16_t f) {
+  return f;
+}
+
+vector<float16_t, 4> tint_bitcast_to_f16(uint4 src) {
+  uint4 v = src;
+  uint4 mask = (65535u).xxxx;
+  uint4 shift = (16u).xxxx;
+  float4 t_low = f16tof32((v & mask));
+  float4 t_high = f16tof32(((v >> shift) & mask));
+  float16_t v_1 = float16_t(t_low.x);
+  float16_t v_2 = float16_t(t_high.x);
+  float16_t v_3 = float16_t(t_low.y);
+  return vector<float16_t, 4>(v_1, v_2, v_3, float16_t(t_high.y));
+}
+
+matrix<float16_t, 2, 4> v_4(uint start_byte_offset) {
+  vector<float16_t, 4> v_5 = tint_bitcast_to_f16(u[(start_byte_offset / 16u)]);
+  return matrix<float16_t, 2, 4>(v_5, tint_bitcast_to_f16(u[((8u + start_byte_offset) / 16u)]));
+}
+
+typedef matrix<float16_t, 2, 4> ary_ret[4];
+ary_ret v_6(uint start_byte_offset) {
+  matrix<float16_t, 2, 4> a[4] = (matrix<float16_t, 2, 4>[4])0;
+  {
+    uint v_7 = 0u;
+    v_7 = 0u;
+    while(true) {
+      uint v_8 = v_7;
+      if ((v_8 >= 4u)) {
+        break;
+      }
+      a[v_8] = v_4((start_byte_offset + (v_8 * 16u)));
+      {
+        v_7 = (v_8 + 1u);
+      }
+      continue;
+    }
+  }
+  matrix<float16_t, 2, 4> v_9[4] = a;
+  return v_9;
+}
+
+[numthreads(1, 1, 1)]
+void f() {
+  matrix<float16_t, 2, 4> v_10[4] = v_6(0u);
+  float16_t v_11 = a(v_10);
+  float16_t v_12 = (v_11 + b(v_4(16u)));
+  float16_t v_13 = (v_12 + c(tint_bitcast_to_f16(u[1u]).ywxz));
+  s.Store<float16_t>(0u, (v_13 + d(tint_bitcast_to_f16(u[1u]).ywxz[0u])));
+}
+
diff --git a/test/tint/buffer/uniform/std140/array/mat2x4_f16/to_fn.wgsl.expected.ir.fxc.hlsl b/test/tint/buffer/uniform/std140/array/mat2x4_f16/to_fn.wgsl.expected.ir.fxc.hlsl
index 3f437dc..57f356d 100644
--- a/test/tint/buffer/uniform/std140/array/mat2x4_f16/to_fn.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/buffer/uniform/std140/array/mat2x4_f16/to_fn.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,74 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Access
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+
+cbuffer cbuffer_u : register(b0) {
+  uint4 u[4];
+};
+RWByteAddressBuffer s : register(u1);
+float16_t a(matrix<float16_t, 2, 4> a_1[4]) {
+  return a_1[0][0][0u];
+}
+
+float16_t b(matrix<float16_t, 2, 4> m) {
+  return m[0][0u];
+}
+
+float16_t c(vector<float16_t, 4> v) {
+  return v[0u];
+}
+
+float16_t d(float16_t f) {
+  return f;
+}
+
+vector<float16_t, 4> tint_bitcast_to_f16(uint4 src) {
+  uint4 v = src;
+  uint4 mask = (65535u).xxxx;
+  uint4 shift = (16u).xxxx;
+  float4 t_low = f16tof32((v & mask));
+  float4 t_high = f16tof32(((v >> shift) & mask));
+  float16_t v_1 = float16_t(t_low.x);
+  float16_t v_2 = float16_t(t_high.x);
+  float16_t v_3 = float16_t(t_low.y);
+  return vector<float16_t, 4>(v_1, v_2, v_3, float16_t(t_high.y));
+}
+
+matrix<float16_t, 2, 4> v_4(uint start_byte_offset) {
+  vector<float16_t, 4> v_5 = tint_bitcast_to_f16(u[(start_byte_offset / 16u)]);
+  return matrix<float16_t, 2, 4>(v_5, tint_bitcast_to_f16(u[((8u + start_byte_offset) / 16u)]));
+}
+
+typedef matrix<float16_t, 2, 4> ary_ret[4];
+ary_ret v_6(uint start_byte_offset) {
+  matrix<float16_t, 2, 4> a[4] = (matrix<float16_t, 2, 4>[4])0;
+  {
+    uint v_7 = 0u;
+    v_7 = 0u;
+    while(true) {
+      uint v_8 = v_7;
+      if ((v_8 >= 4u)) {
+        break;
+      }
+      a[v_8] = v_4((start_byte_offset + (v_8 * 16u)));
+      {
+        v_7 = (v_8 + 1u);
+      }
+      continue;
+    }
+  }
+  matrix<float16_t, 2, 4> v_9[4] = a;
+  return v_9;
+}
+
+[numthreads(1, 1, 1)]
+void f() {
+  matrix<float16_t, 2, 4> v_10[4] = v_6(0u);
+  float16_t v_11 = a(v_10);
+  float16_t v_12 = (v_11 + b(v_4(16u)));
+  float16_t v_13 = (v_12 + c(tint_bitcast_to_f16(u[1u]).ywxz));
+  s.Store<float16_t>(0u, (v_13 + d(tint_bitcast_to_f16(u[1u]).ywxz[0u])));
+}
+
+FXC validation failure:
+c:\src\dawn\Shader@0x00000232F6ED72B0(6,1-9): error X3000: unrecognized identifier 'float16_t'
+
diff --git a/test/tint/buffer/uniform/std140/array/mat2x4_f16/to_private.wgsl.expected.ir.dxc.hlsl b/test/tint/buffer/uniform/std140/array/mat2x4_f16/to_private.wgsl.expected.ir.dxc.hlsl
index 3f437dc..cde68e3 100644
--- a/test/tint/buffer/uniform/std140/array/mat2x4_f16/to_private.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/buffer/uniform/std140/array/mat2x4_f16/to_private.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,55 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Access
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+cbuffer cbuffer_u : register(b0) {
+  uint4 u[4];
+};
+RWByteAddressBuffer s : register(u1);
+static matrix<float16_t, 2, 4> p[4] = (matrix<float16_t, 2, 4>[4])0;
+vector<float16_t, 4> tint_bitcast_to_f16(uint4 src) {
+  uint4 v = src;
+  uint4 mask = (65535u).xxxx;
+  uint4 shift = (16u).xxxx;
+  float4 t_low = f16tof32((v & mask));
+  float4 t_high = f16tof32(((v >> shift) & mask));
+  float16_t v_1 = float16_t(t_low.x);
+  float16_t v_2 = float16_t(t_high.x);
+  float16_t v_3 = float16_t(t_low.y);
+  return vector<float16_t, 4>(v_1, v_2, v_3, float16_t(t_high.y));
+}
+
+matrix<float16_t, 2, 4> v_4(uint start_byte_offset) {
+  vector<float16_t, 4> v_5 = tint_bitcast_to_f16(u[(start_byte_offset / 16u)]);
+  return matrix<float16_t, 2, 4>(v_5, tint_bitcast_to_f16(u[((8u + start_byte_offset) / 16u)]));
+}
+
+typedef matrix<float16_t, 2, 4> ary_ret[4];
+ary_ret v_6(uint start_byte_offset) {
+  matrix<float16_t, 2, 4> a[4] = (matrix<float16_t, 2, 4>[4])0;
+  {
+    uint v_7 = 0u;
+    v_7 = 0u;
+    while(true) {
+      uint v_8 = v_7;
+      if ((v_8 >= 4u)) {
+        break;
+      }
+      a[v_8] = v_4((start_byte_offset + (v_8 * 16u)));
+      {
+        v_7 = (v_8 + 1u);
+      }
+      continue;
+    }
+  }
+  matrix<float16_t, 2, 4> v_9[4] = a;
+  return v_9;
+}
+
+[numthreads(1, 1, 1)]
+void f() {
+  matrix<float16_t, 2, 4> v_10[4] = v_6(0u);
+  p = v_10;
+  p[1] = v_4(32u);
+  p[1][0] = tint_bitcast_to_f16(u[0u]).ywxz;
+  p[1][0][0u] = float16_t(f16tof32(u[0u].z));
+  s.Store<float16_t>(0u, p[1][0].x);
+}
+
diff --git a/test/tint/buffer/uniform/std140/array/mat2x4_f16/to_private.wgsl.expected.ir.fxc.hlsl b/test/tint/buffer/uniform/std140/array/mat2x4_f16/to_private.wgsl.expected.ir.fxc.hlsl
index 3f437dc..82fa73e 100644
--- a/test/tint/buffer/uniform/std140/array/mat2x4_f16/to_private.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/buffer/uniform/std140/array/mat2x4_f16/to_private.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,60 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Access
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+
+cbuffer cbuffer_u : register(b0) {
+  uint4 u[4];
+};
+RWByteAddressBuffer s : register(u1);
+static matrix<float16_t, 2, 4> p[4] = (matrix<float16_t, 2, 4>[4])0;
+vector<float16_t, 4> tint_bitcast_to_f16(uint4 src) {
+  uint4 v = src;
+  uint4 mask = (65535u).xxxx;
+  uint4 shift = (16u).xxxx;
+  float4 t_low = f16tof32((v & mask));
+  float4 t_high = f16tof32(((v >> shift) & mask));
+  float16_t v_1 = float16_t(t_low.x);
+  float16_t v_2 = float16_t(t_high.x);
+  float16_t v_3 = float16_t(t_low.y);
+  return vector<float16_t, 4>(v_1, v_2, v_3, float16_t(t_high.y));
+}
+
+matrix<float16_t, 2, 4> v_4(uint start_byte_offset) {
+  vector<float16_t, 4> v_5 = tint_bitcast_to_f16(u[(start_byte_offset / 16u)]);
+  return matrix<float16_t, 2, 4>(v_5, tint_bitcast_to_f16(u[((8u + start_byte_offset) / 16u)]));
+}
+
+typedef matrix<float16_t, 2, 4> ary_ret[4];
+ary_ret v_6(uint start_byte_offset) {
+  matrix<float16_t, 2, 4> a[4] = (matrix<float16_t, 2, 4>[4])0;
+  {
+    uint v_7 = 0u;
+    v_7 = 0u;
+    while(true) {
+      uint v_8 = v_7;
+      if ((v_8 >= 4u)) {
+        break;
+      }
+      a[v_8] = v_4((start_byte_offset + (v_8 * 16u)));
+      {
+        v_7 = (v_8 + 1u);
+      }
+      continue;
+    }
+  }
+  matrix<float16_t, 2, 4> v_9[4] = a;
+  return v_9;
+}
+
+[numthreads(1, 1, 1)]
+void f() {
+  matrix<float16_t, 2, 4> v_10[4] = v_6(0u);
+  p = v_10;
+  p[1] = v_4(32u);
+  p[1][0] = tint_bitcast_to_f16(u[0u]).ywxz;
+  p[1][0][0u] = float16_t(f16tof32(u[0u].z));
+  s.Store<float16_t>(0u, p[1][0].x);
+}
+
+FXC validation failure:
+c:\src\dawn\Shader@0x000001E531FA28E0(6,15-23): error X3000: syntax error: unexpected token 'float16_t'
+
diff --git a/test/tint/buffer/uniform/std140/array/mat2x4_f16/to_storage.wgsl.expected.ir.dxc.hlsl b/test/tint/buffer/uniform/std140/array/mat2x4_f16/to_storage.wgsl.expected.ir.dxc.hlsl
index 3f437dc..746095c 100644
--- a/test/tint/buffer/uniform/std140/array/mat2x4_f16/to_storage.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/buffer/uniform/std140/array/mat2x4_f16/to_storage.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,76 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Access
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+cbuffer cbuffer_u : register(b0) {
+  uint4 u[4];
+};
+RWByteAddressBuffer s : register(u1);
+vector<float16_t, 4> tint_bitcast_to_f16(uint4 src) {
+  uint4 v = src;
+  uint4 mask = (65535u).xxxx;
+  uint4 shift = (16u).xxxx;
+  float4 t_low = f16tof32((v & mask));
+  float4 t_high = f16tof32(((v >> shift) & mask));
+  float16_t v_1 = float16_t(t_low.x);
+  float16_t v_2 = float16_t(t_high.x);
+  float16_t v_3 = float16_t(t_low.y);
+  return vector<float16_t, 4>(v_1, v_2, v_3, float16_t(t_high.y));
+}
+
+void v_4(uint offset, matrix<float16_t, 2, 4> obj) {
+  s.Store<vector<float16_t, 4> >((offset + 0u), obj[0u]);
+  s.Store<vector<float16_t, 4> >((offset + 8u), obj[1u]);
+}
+
+matrix<float16_t, 2, 4> v_5(uint start_byte_offset) {
+  vector<float16_t, 4> v_6 = tint_bitcast_to_f16(u[(start_byte_offset / 16u)]);
+  return matrix<float16_t, 2, 4>(v_6, tint_bitcast_to_f16(u[((8u + start_byte_offset) / 16u)]));
+}
+
+void v_7(uint offset, matrix<float16_t, 2, 4> obj[4]) {
+  {
+    uint v_8 = 0u;
+    v_8 = 0u;
+    while(true) {
+      uint v_9 = v_8;
+      if ((v_9 >= 4u)) {
+        break;
+      }
+      v_4((offset + (v_9 * 16u)), obj[v_9]);
+      {
+        v_8 = (v_9 + 1u);
+      }
+      continue;
+    }
+  }
+}
+
+typedef matrix<float16_t, 2, 4> ary_ret[4];
+ary_ret v_10(uint start_byte_offset) {
+  matrix<float16_t, 2, 4> a[4] = (matrix<float16_t, 2, 4>[4])0;
+  {
+    uint v_11 = 0u;
+    v_11 = 0u;
+    while(true) {
+      uint v_12 = v_11;
+      if ((v_12 >= 4u)) {
+        break;
+      }
+      a[v_12] = v_5((start_byte_offset + (v_12 * 16u)));
+      {
+        v_11 = (v_12 + 1u);
+      }
+      continue;
+    }
+  }
+  matrix<float16_t, 2, 4> v_13[4] = a;
+  return v_13;
+}
+
+[numthreads(1, 1, 1)]
+void f() {
+  matrix<float16_t, 2, 4> v_14[4] = v_10(0u);
+  v_7(0u, v_14);
+  v_4(16u, v_5(32u));
+  s.Store<vector<float16_t, 4> >(16u, tint_bitcast_to_f16(u[0u]).ywxz);
+  s.Store<float16_t>(16u, float16_t(f16tof32(u[0u].z)));
+}
+
diff --git a/test/tint/buffer/uniform/std140/array/mat2x4_f16/to_storage.wgsl.expected.ir.fxc.hlsl b/test/tint/buffer/uniform/std140/array/mat2x4_f16/to_storage.wgsl.expected.ir.fxc.hlsl
index 3f437dc..0846cde 100644
--- a/test/tint/buffer/uniform/std140/array/mat2x4_f16/to_storage.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/buffer/uniform/std140/array/mat2x4_f16/to_storage.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,81 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Access
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+
+cbuffer cbuffer_u : register(b0) {
+  uint4 u[4];
+};
+RWByteAddressBuffer s : register(u1);
+vector<float16_t, 4> tint_bitcast_to_f16(uint4 src) {
+  uint4 v = src;
+  uint4 mask = (65535u).xxxx;
+  uint4 shift = (16u).xxxx;
+  float4 t_low = f16tof32((v & mask));
+  float4 t_high = f16tof32(((v >> shift) & mask));
+  float16_t v_1 = float16_t(t_low.x);
+  float16_t v_2 = float16_t(t_high.x);
+  float16_t v_3 = float16_t(t_low.y);
+  return vector<float16_t, 4>(v_1, v_2, v_3, float16_t(t_high.y));
+}
+
+void v_4(uint offset, matrix<float16_t, 2, 4> obj) {
+  s.Store<vector<float16_t, 4> >((offset + 0u), obj[0u]);
+  s.Store<vector<float16_t, 4> >((offset + 8u), obj[1u]);
+}
+
+matrix<float16_t, 2, 4> v_5(uint start_byte_offset) {
+  vector<float16_t, 4> v_6 = tint_bitcast_to_f16(u[(start_byte_offset / 16u)]);
+  return matrix<float16_t, 2, 4>(v_6, tint_bitcast_to_f16(u[((8u + start_byte_offset) / 16u)]));
+}
+
+void v_7(uint offset, matrix<float16_t, 2, 4> obj[4]) {
+  {
+    uint v_8 = 0u;
+    v_8 = 0u;
+    while(true) {
+      uint v_9 = v_8;
+      if ((v_9 >= 4u)) {
+        break;
+      }
+      v_4((offset + (v_9 * 16u)), obj[v_9]);
+      {
+        v_8 = (v_9 + 1u);
+      }
+      continue;
+    }
+  }
+}
+
+typedef matrix<float16_t, 2, 4> ary_ret[4];
+ary_ret v_10(uint start_byte_offset) {
+  matrix<float16_t, 2, 4> a[4] = (matrix<float16_t, 2, 4>[4])0;
+  {
+    uint v_11 = 0u;
+    v_11 = 0u;
+    while(true) {
+      uint v_12 = v_11;
+      if ((v_12 >= 4u)) {
+        break;
+      }
+      a[v_12] = v_5((start_byte_offset + (v_12 * 16u)));
+      {
+        v_11 = (v_12 + 1u);
+      }
+      continue;
+    }
+  }
+  matrix<float16_t, 2, 4> v_13[4] = a;
+  return v_13;
+}
+
+[numthreads(1, 1, 1)]
+void f() {
+  matrix<float16_t, 2, 4> v_14[4] = v_10(0u);
+  v_7(0u, v_14);
+  v_4(16u, v_5(32u));
+  s.Store<vector<float16_t, 4> >(16u, tint_bitcast_to_f16(u[0u]).ywxz);
+  s.Store<float16_t>(16u, float16_t(f16tof32(u[0u].z)));
+}
+
+FXC validation failure:
+c:\src\dawn\Shader@0x0000027186880510(6,8-16): error X3000: syntax error: unexpected token 'float16_t'
+
diff --git a/test/tint/buffer/uniform/std140/array/mat2x4_f16/to_workgroup.wgsl.expected.ir.dxc.hlsl b/test/tint/buffer/uniform/std140/array/mat2x4_f16/to_workgroup.wgsl.expected.ir.dxc.hlsl
index 3f437dc..c03bce4 100644
--- a/test/tint/buffer/uniform/std140/array/mat2x4_f16/to_workgroup.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/buffer/uniform/std140/array/mat2x4_f16/to_workgroup.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,77 @@
-SKIP: FAILED
+struct f_inputs {
+  uint tint_local_index : SV_GroupIndex;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Access
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+
+cbuffer cbuffer_u : register(b0) {
+  uint4 u[4];
+};
+groupshared matrix<float16_t, 2, 4> w[4];
+vector<float16_t, 4> tint_bitcast_to_f16(uint4 src) {
+  uint4 v = src;
+  uint4 mask = (65535u).xxxx;
+  uint4 shift = (16u).xxxx;
+  float4 t_low = f16tof32((v & mask));
+  float4 t_high = f16tof32(((v >> shift) & mask));
+  float16_t v_1 = float16_t(t_low.x);
+  float16_t v_2 = float16_t(t_high.x);
+  float16_t v_3 = float16_t(t_low.y);
+  return vector<float16_t, 4>(v_1, v_2, v_3, float16_t(t_high.y));
+}
+
+matrix<float16_t, 2, 4> v_4(uint start_byte_offset) {
+  vector<float16_t, 4> v_5 = tint_bitcast_to_f16(u[(start_byte_offset / 16u)]);
+  return matrix<float16_t, 2, 4>(v_5, tint_bitcast_to_f16(u[((8u + start_byte_offset) / 16u)]));
+}
+
+typedef matrix<float16_t, 2, 4> ary_ret[4];
+ary_ret v_6(uint start_byte_offset) {
+  matrix<float16_t, 2, 4> a[4] = (matrix<float16_t, 2, 4>[4])0;
+  {
+    uint v_7 = 0u;
+    v_7 = 0u;
+    while(true) {
+      uint v_8 = v_7;
+      if ((v_8 >= 4u)) {
+        break;
+      }
+      a[v_8] = v_4((start_byte_offset + (v_8 * 16u)));
+      {
+        v_7 = (v_8 + 1u);
+      }
+      continue;
+    }
+  }
+  matrix<float16_t, 2, 4> v_9[4] = a;
+  return v_9;
+}
+
+void f_inner(uint tint_local_index) {
+  {
+    uint v_10 = 0u;
+    v_10 = tint_local_index;
+    while(true) {
+      uint v_11 = v_10;
+      if ((v_11 >= 4u)) {
+        break;
+      }
+      w[v_11] = matrix<float16_t, 2, 4>((float16_t(0.0h)).xxxx, (float16_t(0.0h)).xxxx);
+      {
+        v_10 = (v_11 + 1u);
+      }
+      continue;
+    }
+  }
+  GroupMemoryBarrierWithGroupSync();
+  matrix<float16_t, 2, 4> v_12[4] = v_6(0u);
+  w = v_12;
+  w[1] = v_4(32u);
+  w[1][0] = tint_bitcast_to_f16(u[0u]).ywxz;
+  w[1][0][0u] = float16_t(f16tof32(u[0u].z));
+}
+
+[numthreads(1, 1, 1)]
+void f(f_inputs inputs) {
+  f_inner(inputs.tint_local_index);
+}
+
diff --git a/test/tint/buffer/uniform/std140/array/mat2x4_f16/to_workgroup.wgsl.expected.ir.fxc.hlsl b/test/tint/buffer/uniform/std140/array/mat2x4_f16/to_workgroup.wgsl.expected.ir.fxc.hlsl
index 3f437dc..b621c85 100644
--- a/test/tint/buffer/uniform/std140/array/mat2x4_f16/to_workgroup.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/buffer/uniform/std140/array/mat2x4_f16/to_workgroup.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,82 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Access
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct f_inputs {
+  uint tint_local_index : SV_GroupIndex;
+};
+
+
+cbuffer cbuffer_u : register(b0) {
+  uint4 u[4];
+};
+groupshared matrix<float16_t, 2, 4> w[4];
+vector<float16_t, 4> tint_bitcast_to_f16(uint4 src) {
+  uint4 v = src;
+  uint4 mask = (65535u).xxxx;
+  uint4 shift = (16u).xxxx;
+  float4 t_low = f16tof32((v & mask));
+  float4 t_high = f16tof32(((v >> shift) & mask));
+  float16_t v_1 = float16_t(t_low.x);
+  float16_t v_2 = float16_t(t_high.x);
+  float16_t v_3 = float16_t(t_low.y);
+  return vector<float16_t, 4>(v_1, v_2, v_3, float16_t(t_high.y));
+}
+
+matrix<float16_t, 2, 4> v_4(uint start_byte_offset) {
+  vector<float16_t, 4> v_5 = tint_bitcast_to_f16(u[(start_byte_offset / 16u)]);
+  return matrix<float16_t, 2, 4>(v_5, tint_bitcast_to_f16(u[((8u + start_byte_offset) / 16u)]));
+}
+
+typedef matrix<float16_t, 2, 4> ary_ret[4];
+ary_ret v_6(uint start_byte_offset) {
+  matrix<float16_t, 2, 4> a[4] = (matrix<float16_t, 2, 4>[4])0;
+  {
+    uint v_7 = 0u;
+    v_7 = 0u;
+    while(true) {
+      uint v_8 = v_7;
+      if ((v_8 >= 4u)) {
+        break;
+      }
+      a[v_8] = v_4((start_byte_offset + (v_8 * 16u)));
+      {
+        v_7 = (v_8 + 1u);
+      }
+      continue;
+    }
+  }
+  matrix<float16_t, 2, 4> v_9[4] = a;
+  return v_9;
+}
+
+void f_inner(uint tint_local_index) {
+  {
+    uint v_10 = 0u;
+    v_10 = tint_local_index;
+    while(true) {
+      uint v_11 = v_10;
+      if ((v_11 >= 4u)) {
+        break;
+      }
+      w[v_11] = matrix<float16_t, 2, 4>((float16_t(0.0h)).xxxx, (float16_t(0.0h)).xxxx);
+      {
+        v_10 = (v_11 + 1u);
+      }
+      continue;
+    }
+  }
+  GroupMemoryBarrierWithGroupSync();
+  matrix<float16_t, 2, 4> v_12[4] = v_6(0u);
+  w = v_12;
+  w[1] = v_4(32u);
+  w[1][0] = tint_bitcast_to_f16(u[0u]).ywxz;
+  w[1][0][0u] = float16_t(f16tof32(u[0u].z));
+}
+
+[numthreads(1, 1, 1)]
+void f(f_inputs inputs) {
+  f_inner(inputs.tint_local_index);
+}
+
+FXC validation failure:
+c:\src\dawn\Shader@0x000001D2BB16FBC0(9,20-28): error X3000: syntax error: unexpected token 'float16_t'
+
diff --git a/test/tint/buffer/uniform/std140/array/mat2x4_f32/dynamic_index_via_ptr.wgsl.expected.ir.dxc.hlsl b/test/tint/buffer/uniform/std140/array/mat2x4_f32/dynamic_index_via_ptr.wgsl.expected.ir.dxc.hlsl
index 3f437dc..753c2d2 100644
--- a/test/tint/buffer/uniform/std140/array/mat2x4_f32/dynamic_index_via_ptr.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/buffer/uniform/std140/array/mat2x4_f32/dynamic_index_via_ptr.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,49 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Access
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+cbuffer cbuffer_a : register(b0) {
+  uint4 a[8];
+};
+RWByteAddressBuffer s : register(u1);
+static int counter = 0;
+int i() {
+  counter = (counter + 1);
+  return counter;
+}
+
+float2x4 v(uint start_byte_offset) {
+  float4 v_1 = asfloat(a[(start_byte_offset / 16u)]);
+  return float2x4(v_1, asfloat(a[((16u + start_byte_offset) / 16u)]));
+}
+
+typedef float2x4 ary_ret[4];
+ary_ret v_2(uint start_byte_offset) {
+  float2x4 a[4] = (float2x4[4])0;
+  {
+    uint v_3 = 0u;
+    v_3 = 0u;
+    while(true) {
+      uint v_4 = v_3;
+      if ((v_4 >= 4u)) {
+        break;
+      }
+      a[v_4] = v((start_byte_offset + (v_4 * 32u)));
+      {
+        v_3 = (v_4 + 1u);
+      }
+      continue;
+    }
+  }
+  float2x4 v_5[4] = a;
+  return v_5;
+}
+
+[numthreads(1, 1, 1)]
+void f() {
+  uint v_6 = (32u * uint(i()));
+  uint v_7 = (16u * uint(i()));
+  float2x4 v_8[4] = v_2(0u);
+  float2x4 l_a_i = v((v_6 + v_7));
+  float4 l_a_i_i = asfloat(a[((v_6 + v_7) / 16u)]);
+  float2x4 l_a[4] = v_8;
+  s.Store(0u, asuint((((asfloat(a[((v_6 + v_7) / 16u)][(((v_6 + v_7) % 16u) / 4u)]) + l_a[0][0][0u]) + l_a_i[0][0u]) + l_a_i_i[0u])));
+}
+
diff --git a/test/tint/buffer/uniform/std140/array/mat2x4_f32/dynamic_index_via_ptr.wgsl.expected.ir.fxc.hlsl b/test/tint/buffer/uniform/std140/array/mat2x4_f32/dynamic_index_via_ptr.wgsl.expected.ir.fxc.hlsl
index 3f437dc..753c2d2 100644
--- a/test/tint/buffer/uniform/std140/array/mat2x4_f32/dynamic_index_via_ptr.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/buffer/uniform/std140/array/mat2x4_f32/dynamic_index_via_ptr.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,49 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Access
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+cbuffer cbuffer_a : register(b0) {
+  uint4 a[8];
+};
+RWByteAddressBuffer s : register(u1);
+static int counter = 0;
+int i() {
+  counter = (counter + 1);
+  return counter;
+}
+
+float2x4 v(uint start_byte_offset) {
+  float4 v_1 = asfloat(a[(start_byte_offset / 16u)]);
+  return float2x4(v_1, asfloat(a[((16u + start_byte_offset) / 16u)]));
+}
+
+typedef float2x4 ary_ret[4];
+ary_ret v_2(uint start_byte_offset) {
+  float2x4 a[4] = (float2x4[4])0;
+  {
+    uint v_3 = 0u;
+    v_3 = 0u;
+    while(true) {
+      uint v_4 = v_3;
+      if ((v_4 >= 4u)) {
+        break;
+      }
+      a[v_4] = v((start_byte_offset + (v_4 * 32u)));
+      {
+        v_3 = (v_4 + 1u);
+      }
+      continue;
+    }
+  }
+  float2x4 v_5[4] = a;
+  return v_5;
+}
+
+[numthreads(1, 1, 1)]
+void f() {
+  uint v_6 = (32u * uint(i()));
+  uint v_7 = (16u * uint(i()));
+  float2x4 v_8[4] = v_2(0u);
+  float2x4 l_a_i = v((v_6 + v_7));
+  float4 l_a_i_i = asfloat(a[((v_6 + v_7) / 16u)]);
+  float2x4 l_a[4] = v_8;
+  s.Store(0u, asuint((((asfloat(a[((v_6 + v_7) / 16u)][(((v_6 + v_7) % 16u) / 4u)]) + l_a[0][0][0u]) + l_a_i[0][0u]) + l_a_i_i[0u])));
+}
+
diff --git a/test/tint/buffer/uniform/std140/array/mat2x4_f32/static_index_via_ptr.wgsl.expected.ir.dxc.hlsl b/test/tint/buffer/uniform/std140/array/mat2x4_f32/static_index_via_ptr.wgsl.expected.ir.dxc.hlsl
index 3f437dc..dbc3ee3 100644
--- a/test/tint/buffer/uniform/std140/array/mat2x4_f32/static_index_via_ptr.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/buffer/uniform/std140/array/mat2x4_f32/static_index_via_ptr.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,41 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Access
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+cbuffer cbuffer_a : register(b0) {
+  uint4 a[8];
+};
+RWByteAddressBuffer s : register(u1);
+float2x4 v(uint start_byte_offset) {
+  float4 v_1 = asfloat(a[(start_byte_offset / 16u)]);
+  return float2x4(v_1, asfloat(a[((16u + start_byte_offset) / 16u)]));
+}
+
+typedef float2x4 ary_ret[4];
+ary_ret v_2(uint start_byte_offset) {
+  float2x4 a[4] = (float2x4[4])0;
+  {
+    uint v_3 = 0u;
+    v_3 = 0u;
+    while(true) {
+      uint v_4 = v_3;
+      if ((v_4 >= 4u)) {
+        break;
+      }
+      a[v_4] = v((start_byte_offset + (v_4 * 32u)));
+      {
+        v_3 = (v_4 + 1u);
+      }
+      continue;
+    }
+  }
+  float2x4 v_5[4] = a;
+  return v_5;
+}
+
+[numthreads(1, 1, 1)]
+void f() {
+  float2x4 v_6[4] = v_2(0u);
+  float2x4 l_a_i = v(80u);
+  float4 l_a_i_i = asfloat(a[5u]);
+  float2x4 l_a[4] = v_6;
+  s.Store(0u, asuint((((asfloat(a[5u].x) + l_a[0][0][0u]) + l_a_i[0][0u]) + l_a_i_i[0u])));
+}
+
diff --git a/test/tint/buffer/uniform/std140/array/mat2x4_f32/static_index_via_ptr.wgsl.expected.ir.fxc.hlsl b/test/tint/buffer/uniform/std140/array/mat2x4_f32/static_index_via_ptr.wgsl.expected.ir.fxc.hlsl
index 3f437dc..e4e0bd4 100644
--- a/test/tint/buffer/uniform/std140/array/mat2x4_f32/static_index_via_ptr.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/buffer/uniform/std140/array/mat2x4_f32/static_index_via_ptr.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,41 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Access
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+cbuffer cbuffer_a : register(b0) {
+  uint4 a[8];
+};
+RWByteAddressBuffer s : register(u1);
+float2x4 v(uint start_byte_offset) {
+  float4 v_1 = asfloat(a[(start_byte_offset / 16u)]);
+  return float2x4(v_1, asfloat(a[((16u + start_byte_offset) / 16u)]));
+}
+
+typedef float2x4 ary_ret[4];
+ary_ret v_2(uint start_byte_offset) {
+  float2x4 a[4] = (float2x4[4])0;
+  {
+    uint v_3 = 0u;
+    v_3 = 0u;
+    while(true) {
+      uint v_4 = v_3;
+      if ((v_4 >= 4u)) {
+        break;
+      }
+      a[v_4] = v((start_byte_offset + (v_4 * 32u)));
+      {
+        v_3 = (v_4 + 1u);
+      }
+      continue;
+    }
+  }
+  float2x4 v_5[4] = a;
+  return v_5;
+}
+
+[numthreads(1, 1, 1)]
+void f() {
+  float2x4 v_6[4] = v_2(0u);
+  float2x4 l_a_i = v(64u);
+  float4 l_a_i_i = asfloat(a[5u]);
+  float2x4 l_a[4] = v_6;
+  s.Store(0u, asuint((((asfloat(a[5u].x) + l_a[0][0][0u]) + l_a_i[0][0u]) + l_a_i_i[0u])));
+}
+
diff --git a/test/tint/buffer/uniform/std140/array/mat2x4_f32/to_builtin.wgsl.expected.ir.dxc.hlsl b/test/tint/buffer/uniform/std140/array/mat2x4_f32/to_builtin.wgsl.expected.ir.dxc.hlsl
index 3f437dc..3a721c5 100644
--- a/test/tint/buffer/uniform/std140/array/mat2x4_f32/to_builtin.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/buffer/uniform/std140/array/mat2x4_f32/to_builtin.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,19 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Access
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+cbuffer cbuffer_u : register(b0) {
+  uint4 u[8];
+};
+RWByteAddressBuffer s : register(u1);
+float2x4 v(uint start_byte_offset) {
+  float4 v_1 = asfloat(u[(start_byte_offset / 16u)]);
+  return float2x4(v_1, asfloat(u[((16u + start_byte_offset) / 16u)]));
+}
+
+[numthreads(1, 1, 1)]
+void f() {
+  float4x2 t = transpose(v(64u));
+  float l = length(asfloat(u[1u]).ywxz);
+  float a = abs(asfloat(u[1u]).ywxz[0u]);
+  float v_2 = (t[0][0u] + float(l));
+  s.Store(0u, asuint((v_2 + float(a))));
+}
+
diff --git a/test/tint/buffer/uniform/std140/array/mat2x4_f32/to_builtin.wgsl.expected.ir.fxc.hlsl b/test/tint/buffer/uniform/std140/array/mat2x4_f32/to_builtin.wgsl.expected.ir.fxc.hlsl
index 3f437dc..3a721c5 100644
--- a/test/tint/buffer/uniform/std140/array/mat2x4_f32/to_builtin.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/buffer/uniform/std140/array/mat2x4_f32/to_builtin.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,19 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Access
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+cbuffer cbuffer_u : register(b0) {
+  uint4 u[8];
+};
+RWByteAddressBuffer s : register(u1);
+float2x4 v(uint start_byte_offset) {
+  float4 v_1 = asfloat(u[(start_byte_offset / 16u)]);
+  return float2x4(v_1, asfloat(u[((16u + start_byte_offset) / 16u)]));
+}
+
+[numthreads(1, 1, 1)]
+void f() {
+  float4x2 t = transpose(v(64u));
+  float l = length(asfloat(u[1u]).ywxz);
+  float a = abs(asfloat(u[1u]).ywxz[0u]);
+  float v_2 = (t[0][0u] + float(l));
+  s.Store(0u, asuint((v_2 + float(a))));
+}
+
diff --git a/test/tint/buffer/uniform/std140/array/mat2x4_f32/to_fn.wgsl.expected.ir.dxc.hlsl b/test/tint/buffer/uniform/std140/array/mat2x4_f32/to_fn.wgsl.expected.ir.dxc.hlsl
index 3f437dc..8e2b68f 100644
--- a/test/tint/buffer/uniform/std140/array/mat2x4_f32/to_fn.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/buffer/uniform/std140/array/mat2x4_f32/to_fn.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,57 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Access
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+cbuffer cbuffer_u : register(b0) {
+  uint4 u[8];
+};
+RWByteAddressBuffer s : register(u1);
+float a(float2x4 a_1[4]) {
+  return a_1[0][0][0u];
+}
+
+float b(float2x4 m) {
+  return m[0][0u];
+}
+
+float c(float4 v) {
+  return v[0u];
+}
+
+float d(float f) {
+  return f;
+}
+
+float2x4 v_1(uint start_byte_offset) {
+  float4 v_2 = asfloat(u[(start_byte_offset / 16u)]);
+  return float2x4(v_2, asfloat(u[((16u + start_byte_offset) / 16u)]));
+}
+
+typedef float2x4 ary_ret[4];
+ary_ret v_3(uint start_byte_offset) {
+  float2x4 a[4] = (float2x4[4])0;
+  {
+    uint v_4 = 0u;
+    v_4 = 0u;
+    while(true) {
+      uint v_5 = v_4;
+      if ((v_5 >= 4u)) {
+        break;
+      }
+      a[v_5] = v_1((start_byte_offset + (v_5 * 32u)));
+      {
+        v_4 = (v_5 + 1u);
+      }
+      continue;
+    }
+  }
+  float2x4 v_6[4] = a;
+  return v_6;
+}
+
+[numthreads(1, 1, 1)]
+void f() {
+  float2x4 v_7[4] = v_3(0u);
+  float v_8 = a(v_7);
+  float v_9 = (v_8 + b(v_1(32u)));
+  float v_10 = (v_9 + c(asfloat(u[2u]).ywxz));
+  s.Store(0u, asuint((v_10 + d(asfloat(u[2u]).ywxz[0u]))));
+}
+
diff --git a/test/tint/buffer/uniform/std140/array/mat2x4_f32/to_fn.wgsl.expected.ir.fxc.hlsl b/test/tint/buffer/uniform/std140/array/mat2x4_f32/to_fn.wgsl.expected.ir.fxc.hlsl
index 3f437dc..8e2b68f 100644
--- a/test/tint/buffer/uniform/std140/array/mat2x4_f32/to_fn.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/buffer/uniform/std140/array/mat2x4_f32/to_fn.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,57 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Access
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+cbuffer cbuffer_u : register(b0) {
+  uint4 u[8];
+};
+RWByteAddressBuffer s : register(u1);
+float a(float2x4 a_1[4]) {
+  return a_1[0][0][0u];
+}
+
+float b(float2x4 m) {
+  return m[0][0u];
+}
+
+float c(float4 v) {
+  return v[0u];
+}
+
+float d(float f) {
+  return f;
+}
+
+float2x4 v_1(uint start_byte_offset) {
+  float4 v_2 = asfloat(u[(start_byte_offset / 16u)]);
+  return float2x4(v_2, asfloat(u[((16u + start_byte_offset) / 16u)]));
+}
+
+typedef float2x4 ary_ret[4];
+ary_ret v_3(uint start_byte_offset) {
+  float2x4 a[4] = (float2x4[4])0;
+  {
+    uint v_4 = 0u;
+    v_4 = 0u;
+    while(true) {
+      uint v_5 = v_4;
+      if ((v_5 >= 4u)) {
+        break;
+      }
+      a[v_5] = v_1((start_byte_offset + (v_5 * 32u)));
+      {
+        v_4 = (v_5 + 1u);
+      }
+      continue;
+    }
+  }
+  float2x4 v_6[4] = a;
+  return v_6;
+}
+
+[numthreads(1, 1, 1)]
+void f() {
+  float2x4 v_7[4] = v_3(0u);
+  float v_8 = a(v_7);
+  float v_9 = (v_8 + b(v_1(32u)));
+  float v_10 = (v_9 + c(asfloat(u[2u]).ywxz));
+  s.Store(0u, asuint((v_10 + d(asfloat(u[2u]).ywxz[0u]))));
+}
+
diff --git a/test/tint/buffer/uniform/std140/array/mat2x4_f32/to_private.wgsl.expected.ir.dxc.hlsl b/test/tint/buffer/uniform/std140/array/mat2x4_f32/to_private.wgsl.expected.ir.dxc.hlsl
index 3f437dc..c68c096 100644
--- a/test/tint/buffer/uniform/std140/array/mat2x4_f32/to_private.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/buffer/uniform/std140/array/mat2x4_f32/to_private.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,43 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Access
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+cbuffer cbuffer_u : register(b0) {
+  uint4 u[8];
+};
+RWByteAddressBuffer s : register(u1);
+static float2x4 p[4] = (float2x4[4])0;
+float2x4 v(uint start_byte_offset) {
+  float4 v_1 = asfloat(u[(start_byte_offset / 16u)]);
+  return float2x4(v_1, asfloat(u[((16u + start_byte_offset) / 16u)]));
+}
+
+typedef float2x4 ary_ret[4];
+ary_ret v_2(uint start_byte_offset) {
+  float2x4 a[4] = (float2x4[4])0;
+  {
+    uint v_3 = 0u;
+    v_3 = 0u;
+    while(true) {
+      uint v_4 = v_3;
+      if ((v_4 >= 4u)) {
+        break;
+      }
+      a[v_4] = v((start_byte_offset + (v_4 * 32u)));
+      {
+        v_3 = (v_4 + 1u);
+      }
+      continue;
+    }
+  }
+  float2x4 v_5[4] = a;
+  return v_5;
+}
+
+[numthreads(1, 1, 1)]
+void f() {
+  float2x4 v_6[4] = v_2(0u);
+  p = v_6;
+  p[1] = v(64u);
+  p[1][0] = asfloat(u[1u]).ywxz;
+  p[1][0][0u] = asfloat(u[1u].x);
+  s.Store(0u, asuint(p[1][0].x));
+}
+
diff --git a/test/tint/buffer/uniform/std140/array/mat2x4_f32/to_private.wgsl.expected.ir.fxc.hlsl b/test/tint/buffer/uniform/std140/array/mat2x4_f32/to_private.wgsl.expected.ir.fxc.hlsl
index 3f437dc..c68c096 100644
--- a/test/tint/buffer/uniform/std140/array/mat2x4_f32/to_private.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/buffer/uniform/std140/array/mat2x4_f32/to_private.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,43 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Access
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+cbuffer cbuffer_u : register(b0) {
+  uint4 u[8];
+};
+RWByteAddressBuffer s : register(u1);
+static float2x4 p[4] = (float2x4[4])0;
+float2x4 v(uint start_byte_offset) {
+  float4 v_1 = asfloat(u[(start_byte_offset / 16u)]);
+  return float2x4(v_1, asfloat(u[((16u + start_byte_offset) / 16u)]));
+}
+
+typedef float2x4 ary_ret[4];
+ary_ret v_2(uint start_byte_offset) {
+  float2x4 a[4] = (float2x4[4])0;
+  {
+    uint v_3 = 0u;
+    v_3 = 0u;
+    while(true) {
+      uint v_4 = v_3;
+      if ((v_4 >= 4u)) {
+        break;
+      }
+      a[v_4] = v((start_byte_offset + (v_4 * 32u)));
+      {
+        v_3 = (v_4 + 1u);
+      }
+      continue;
+    }
+  }
+  float2x4 v_5[4] = a;
+  return v_5;
+}
+
+[numthreads(1, 1, 1)]
+void f() {
+  float2x4 v_6[4] = v_2(0u);
+  p = v_6;
+  p[1] = v(64u);
+  p[1][0] = asfloat(u[1u]).ywxz;
+  p[1][0][0u] = asfloat(u[1u].x);
+  s.Store(0u, asuint(p[1][0].x));
+}
+
diff --git a/test/tint/buffer/uniform/std140/array/mat2x4_f32/to_storage.wgsl.expected.ir.dxc.hlsl b/test/tint/buffer/uniform/std140/array/mat2x4_f32/to_storage.wgsl.expected.ir.dxc.hlsl
index 3f437dc..4793a98 100644
--- a/test/tint/buffer/uniform/std140/array/mat2x4_f32/to_storage.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/buffer/uniform/std140/array/mat2x4_f32/to_storage.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,64 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Access
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+cbuffer cbuffer_u : register(b0) {
+  uint4 u[8];
+};
+RWByteAddressBuffer s : register(u1);
+void v(uint offset, float2x4 obj) {
+  s.Store4((offset + 0u), asuint(obj[0u]));
+  s.Store4((offset + 16u), asuint(obj[1u]));
+}
+
+float2x4 v_1(uint start_byte_offset) {
+  float4 v_2 = asfloat(u[(start_byte_offset / 16u)]);
+  return float2x4(v_2, asfloat(u[((16u + start_byte_offset) / 16u)]));
+}
+
+void v_3(uint offset, float2x4 obj[4]) {
+  {
+    uint v_4 = 0u;
+    v_4 = 0u;
+    while(true) {
+      uint v_5 = v_4;
+      if ((v_5 >= 4u)) {
+        break;
+      }
+      v((offset + (v_5 * 32u)), obj[v_5]);
+      {
+        v_4 = (v_5 + 1u);
+      }
+      continue;
+    }
+  }
+}
+
+typedef float2x4 ary_ret[4];
+ary_ret v_6(uint start_byte_offset) {
+  float2x4 a[4] = (float2x4[4])0;
+  {
+    uint v_7 = 0u;
+    v_7 = 0u;
+    while(true) {
+      uint v_8 = v_7;
+      if ((v_8 >= 4u)) {
+        break;
+      }
+      a[v_8] = v_1((start_byte_offset + (v_8 * 32u)));
+      {
+        v_7 = (v_8 + 1u);
+      }
+      continue;
+    }
+  }
+  float2x4 v_9[4] = a;
+  return v_9;
+}
+
+[numthreads(1, 1, 1)]
+void f() {
+  float2x4 v_10[4] = v_6(0u);
+  v_3(0u, v_10);
+  v(32u, v_1(64u));
+  s.Store4(32u, asuint(asfloat(u[1u]).ywxz));
+  s.Store(32u, asuint(asfloat(u[1u].x)));
+}
+
diff --git a/test/tint/buffer/uniform/std140/array/mat2x4_f32/to_storage.wgsl.expected.ir.fxc.hlsl b/test/tint/buffer/uniform/std140/array/mat2x4_f32/to_storage.wgsl.expected.ir.fxc.hlsl
index 3f437dc..4793a98 100644
--- a/test/tint/buffer/uniform/std140/array/mat2x4_f32/to_storage.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/buffer/uniform/std140/array/mat2x4_f32/to_storage.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,64 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Access
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+cbuffer cbuffer_u : register(b0) {
+  uint4 u[8];
+};
+RWByteAddressBuffer s : register(u1);
+void v(uint offset, float2x4 obj) {
+  s.Store4((offset + 0u), asuint(obj[0u]));
+  s.Store4((offset + 16u), asuint(obj[1u]));
+}
+
+float2x4 v_1(uint start_byte_offset) {
+  float4 v_2 = asfloat(u[(start_byte_offset / 16u)]);
+  return float2x4(v_2, asfloat(u[((16u + start_byte_offset) / 16u)]));
+}
+
+void v_3(uint offset, float2x4 obj[4]) {
+  {
+    uint v_4 = 0u;
+    v_4 = 0u;
+    while(true) {
+      uint v_5 = v_4;
+      if ((v_5 >= 4u)) {
+        break;
+      }
+      v((offset + (v_5 * 32u)), obj[v_5]);
+      {
+        v_4 = (v_5 + 1u);
+      }
+      continue;
+    }
+  }
+}
+
+typedef float2x4 ary_ret[4];
+ary_ret v_6(uint start_byte_offset) {
+  float2x4 a[4] = (float2x4[4])0;
+  {
+    uint v_7 = 0u;
+    v_7 = 0u;
+    while(true) {
+      uint v_8 = v_7;
+      if ((v_8 >= 4u)) {
+        break;
+      }
+      a[v_8] = v_1((start_byte_offset + (v_8 * 32u)));
+      {
+        v_7 = (v_8 + 1u);
+      }
+      continue;
+    }
+  }
+  float2x4 v_9[4] = a;
+  return v_9;
+}
+
+[numthreads(1, 1, 1)]
+void f() {
+  float2x4 v_10[4] = v_6(0u);
+  v_3(0u, v_10);
+  v(32u, v_1(64u));
+  s.Store4(32u, asuint(asfloat(u[1u]).ywxz));
+  s.Store(32u, asuint(asfloat(u[1u].x)));
+}
+
diff --git a/test/tint/buffer/uniform/std140/array/mat2x4_f32/to_workgroup.wgsl.expected.ir.dxc.hlsl b/test/tint/buffer/uniform/std140/array/mat2x4_f32/to_workgroup.wgsl.expected.ir.dxc.hlsl
index 3f437dc..c76be27 100644
--- a/test/tint/buffer/uniform/std140/array/mat2x4_f32/to_workgroup.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/buffer/uniform/std140/array/mat2x4_f32/to_workgroup.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,65 @@
-SKIP: FAILED
+struct f_inputs {
+  uint tint_local_index : SV_GroupIndex;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Access
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+
+cbuffer cbuffer_u : register(b0) {
+  uint4 u[8];
+};
+groupshared float2x4 w[4];
+float2x4 v(uint start_byte_offset) {
+  float4 v_1 = asfloat(u[(start_byte_offset / 16u)]);
+  return float2x4(v_1, asfloat(u[((16u + start_byte_offset) / 16u)]));
+}
+
+typedef float2x4 ary_ret[4];
+ary_ret v_2(uint start_byte_offset) {
+  float2x4 a[4] = (float2x4[4])0;
+  {
+    uint v_3 = 0u;
+    v_3 = 0u;
+    while(true) {
+      uint v_4 = v_3;
+      if ((v_4 >= 4u)) {
+        break;
+      }
+      a[v_4] = v((start_byte_offset + (v_4 * 32u)));
+      {
+        v_3 = (v_4 + 1u);
+      }
+      continue;
+    }
+  }
+  float2x4 v_5[4] = a;
+  return v_5;
+}
+
+void f_inner(uint tint_local_index) {
+  {
+    uint v_6 = 0u;
+    v_6 = tint_local_index;
+    while(true) {
+      uint v_7 = v_6;
+      if ((v_7 >= 4u)) {
+        break;
+      }
+      w[v_7] = float2x4((0.0f).xxxx, (0.0f).xxxx);
+      {
+        v_6 = (v_7 + 1u);
+      }
+      continue;
+    }
+  }
+  GroupMemoryBarrierWithGroupSync();
+  float2x4 v_8[4] = v_2(0u);
+  w = v_8;
+  w[1] = v(64u);
+  w[1][0] = asfloat(u[1u]).ywxz;
+  w[1][0][0u] = asfloat(u[1u].x);
+}
+
+[numthreads(1, 1, 1)]
+void f(f_inputs inputs) {
+  f_inner(inputs.tint_local_index);
+}
+
diff --git a/test/tint/buffer/uniform/std140/array/mat2x4_f32/to_workgroup.wgsl.expected.ir.fxc.hlsl b/test/tint/buffer/uniform/std140/array/mat2x4_f32/to_workgroup.wgsl.expected.ir.fxc.hlsl
index 3f437dc..c76be27 100644
--- a/test/tint/buffer/uniform/std140/array/mat2x4_f32/to_workgroup.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/buffer/uniform/std140/array/mat2x4_f32/to_workgroup.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,65 @@
-SKIP: FAILED
+struct f_inputs {
+  uint tint_local_index : SV_GroupIndex;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Access
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+
+cbuffer cbuffer_u : register(b0) {
+  uint4 u[8];
+};
+groupshared float2x4 w[4];
+float2x4 v(uint start_byte_offset) {
+  float4 v_1 = asfloat(u[(start_byte_offset / 16u)]);
+  return float2x4(v_1, asfloat(u[((16u + start_byte_offset) / 16u)]));
+}
+
+typedef float2x4 ary_ret[4];
+ary_ret v_2(uint start_byte_offset) {
+  float2x4 a[4] = (float2x4[4])0;
+  {
+    uint v_3 = 0u;
+    v_3 = 0u;
+    while(true) {
+      uint v_4 = v_3;
+      if ((v_4 >= 4u)) {
+        break;
+      }
+      a[v_4] = v((start_byte_offset + (v_4 * 32u)));
+      {
+        v_3 = (v_4 + 1u);
+      }
+      continue;
+    }
+  }
+  float2x4 v_5[4] = a;
+  return v_5;
+}
+
+void f_inner(uint tint_local_index) {
+  {
+    uint v_6 = 0u;
+    v_6 = tint_local_index;
+    while(true) {
+      uint v_7 = v_6;
+      if ((v_7 >= 4u)) {
+        break;
+      }
+      w[v_7] = float2x4((0.0f).xxxx, (0.0f).xxxx);
+      {
+        v_6 = (v_7 + 1u);
+      }
+      continue;
+    }
+  }
+  GroupMemoryBarrierWithGroupSync();
+  float2x4 v_8[4] = v_2(0u);
+  w = v_8;
+  w[1] = v(64u);
+  w[1][0] = asfloat(u[1u]).ywxz;
+  w[1][0][0u] = asfloat(u[1u].x);
+}
+
+[numthreads(1, 1, 1)]
+void f(f_inputs inputs) {
+  f_inner(inputs.tint_local_index);
+}
+
diff --git a/test/tint/buffer/uniform/std140/array/mat3x3_f32/dynamic_index_via_ptr.wgsl.expected.ir.dxc.hlsl b/test/tint/buffer/uniform/std140/array/mat3x3_f32/dynamic_index_via_ptr.wgsl.expected.ir.dxc.hlsl
index 3f437dc..23e3206 100644
--- a/test/tint/buffer/uniform/std140/array/mat3x3_f32/dynamic_index_via_ptr.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/buffer/uniform/std140/array/mat3x3_f32/dynamic_index_via_ptr.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,50 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Access
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+cbuffer cbuffer_a : register(b0) {
+  uint4 a[12];
+};
+RWByteAddressBuffer s : register(u1);
+static int counter = 0;
+int i() {
+  counter = (counter + 1);
+  return counter;
+}
+
+float3x3 v(uint start_byte_offset) {
+  float3 v_1 = asfloat(a[(start_byte_offset / 16u)].xyz);
+  float3 v_2 = asfloat(a[((16u + start_byte_offset) / 16u)].xyz);
+  return float3x3(v_1, v_2, asfloat(a[((32u + start_byte_offset) / 16u)].xyz));
+}
+
+typedef float3x3 ary_ret[4];
+ary_ret v_3(uint start_byte_offset) {
+  float3x3 a[4] = (float3x3[4])0;
+  {
+    uint v_4 = 0u;
+    v_4 = 0u;
+    while(true) {
+      uint v_5 = v_4;
+      if ((v_5 >= 4u)) {
+        break;
+      }
+      a[v_5] = v((start_byte_offset + (v_5 * 48u)));
+      {
+        v_4 = (v_5 + 1u);
+      }
+      continue;
+    }
+  }
+  float3x3 v_6[4] = a;
+  return v_6;
+}
+
+[numthreads(1, 1, 1)]
+void f() {
+  uint v_7 = (48u * uint(i()));
+  uint v_8 = (16u * uint(i()));
+  float3x3 v_9[4] = v_3(0u);
+  float3x3 l_a_i = v((v_7 + v_8));
+  float3 l_a_i_i = asfloat(a[((v_7 + v_8) / 16u)].xyz);
+  float3x3 l_a[4] = v_9;
+  s.Store(0u, asuint((((asfloat(a[((v_7 + v_8) / 16u)][(((v_7 + v_8) % 16u) / 4u)]) + l_a[0][0][0u]) + l_a_i[0][0u]) + l_a_i_i[0u])));
+}
+
diff --git a/test/tint/buffer/uniform/std140/array/mat3x3_f32/dynamic_index_via_ptr.wgsl.expected.ir.fxc.hlsl b/test/tint/buffer/uniform/std140/array/mat3x3_f32/dynamic_index_via_ptr.wgsl.expected.ir.fxc.hlsl
index 3f437dc..292e8a2 100644
--- a/test/tint/buffer/uniform/std140/array/mat3x3_f32/dynamic_index_via_ptr.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/buffer/uniform/std140/array/mat3x3_f32/dynamic_index_via_ptr.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,50 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Access
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+cbuffer cbuffer_a : register(b0) {
+  uint4 a[12];
+};
+RWByteAddressBuffer s : register(u1);
+static int counter = 0;
+int i() {
+  counter = (counter + 1);
+  return counter;
+}
+
+float3x3 v(uint start_byte_offset) {
+  float3 v_1 = asfloat(a[(start_byte_offset / 16u)].xyz);
+  float3 v_2 = asfloat(a[((16u + start_byte_offset) / 16u)].xyz);
+  return float3x3(v_1, v_2, asfloat(a[((32u + start_byte_offset) / 16u)].xyz));
+}
+
+typedef float3x3 ary_ret[4];
+ary_ret v_3(uint start_byte_offset) {
+  float3x3 a[4] = (float3x3[4])0;
+  {
+    uint v_4 = 0u;
+    v_4 = 0u;
+    while(true) {
+      uint v_5 = v_4;
+      if ((v_5 >= 4u)) {
+        break;
+      }
+      a[v_5] = v((start_byte_offset + (v_5 * 48u)));
+      {
+        v_4 = (v_5 + 1u);
+      }
+      continue;
+    }
+  }
+  float3x3 v_6[4] = a;
+  return v_6;
+}
+
+[numthreads(1, 1, 1)]
+void f() {
+  uint v_7 = (48u * uint(i()));
+  uint v_8 = (16u * uint(i()));
+  float3x3 v_9[4] = v_3(0u);
+  float3x3 l_a_i = v(v_7);
+  float3 l_a_i_i = asfloat(a[((v_7 + v_8) / 16u)].xyz);
+  float3x3 l_a[4] = v_9;
+  s.Store(0u, asuint((((asfloat(a[((v_7 + v_8) / 16u)][(((v_7 + v_8) % 16u) / 4u)]) + l_a[0][0][0u]) + l_a_i[0][0u]) + l_a_i_i[0u])));
+}
+
diff --git a/test/tint/buffer/uniform/std140/array/mat3x3_f32/static_index_via_ptr.wgsl.expected.ir.dxc.hlsl b/test/tint/buffer/uniform/std140/array/mat3x3_f32/static_index_via_ptr.wgsl.expected.ir.dxc.hlsl
index 3f437dc..9a00d43 100644
--- a/test/tint/buffer/uniform/std140/array/mat3x3_f32/static_index_via_ptr.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/buffer/uniform/std140/array/mat3x3_f32/static_index_via_ptr.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,42 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Access
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+cbuffer cbuffer_a : register(b0) {
+  uint4 a[12];
+};
+RWByteAddressBuffer s : register(u1);
+float3x3 v(uint start_byte_offset) {
+  float3 v_1 = asfloat(a[(start_byte_offset / 16u)].xyz);
+  float3 v_2 = asfloat(a[((16u + start_byte_offset) / 16u)].xyz);
+  return float3x3(v_1, v_2, asfloat(a[((32u + start_byte_offset) / 16u)].xyz));
+}
+
+typedef float3x3 ary_ret[4];
+ary_ret v_3(uint start_byte_offset) {
+  float3x3 a[4] = (float3x3[4])0;
+  {
+    uint v_4 = 0u;
+    v_4 = 0u;
+    while(true) {
+      uint v_5 = v_4;
+      if ((v_5 >= 4u)) {
+        break;
+      }
+      a[v_5] = v((start_byte_offset + (v_5 * 48u)));
+      {
+        v_4 = (v_5 + 1u);
+      }
+      continue;
+    }
+  }
+  float3x3 v_6[4] = a;
+  return v_6;
+}
+
+[numthreads(1, 1, 1)]
+void f() {
+  float3x3 v_7[4] = v_3(0u);
+  float3x3 l_a_i = v(112u);
+  float3 l_a_i_i = asfloat(a[7u].xyz);
+  float3x3 l_a[4] = v_7;
+  s.Store(0u, asuint((((asfloat(a[7u].x) + l_a[0][0][0u]) + l_a_i[0][0u]) + l_a_i_i[0u])));
+}
+
diff --git a/test/tint/buffer/uniform/std140/array/mat3x3_f32/static_index_via_ptr.wgsl.expected.ir.fxc.hlsl b/test/tint/buffer/uniform/std140/array/mat3x3_f32/static_index_via_ptr.wgsl.expected.ir.fxc.hlsl
index 3f437dc..9a00d43 100644
--- a/test/tint/buffer/uniform/std140/array/mat3x3_f32/static_index_via_ptr.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/buffer/uniform/std140/array/mat3x3_f32/static_index_via_ptr.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,42 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Access
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+cbuffer cbuffer_a : register(b0) {
+  uint4 a[12];
+};
+RWByteAddressBuffer s : register(u1);
+float3x3 v(uint start_byte_offset) {
+  float3 v_1 = asfloat(a[(start_byte_offset / 16u)].xyz);
+  float3 v_2 = asfloat(a[((16u + start_byte_offset) / 16u)].xyz);
+  return float3x3(v_1, v_2, asfloat(a[((32u + start_byte_offset) / 16u)].xyz));
+}
+
+typedef float3x3 ary_ret[4];
+ary_ret v_3(uint start_byte_offset) {
+  float3x3 a[4] = (float3x3[4])0;
+  {
+    uint v_4 = 0u;
+    v_4 = 0u;
+    while(true) {
+      uint v_5 = v_4;
+      if ((v_5 >= 4u)) {
+        break;
+      }
+      a[v_5] = v((start_byte_offset + (v_5 * 48u)));
+      {
+        v_4 = (v_5 + 1u);
+      }
+      continue;
+    }
+  }
+  float3x3 v_6[4] = a;
+  return v_6;
+}
+
+[numthreads(1, 1, 1)]
+void f() {
+  float3x3 v_7[4] = v_3(0u);
+  float3x3 l_a_i = v(112u);
+  float3 l_a_i_i = asfloat(a[7u].xyz);
+  float3x3 l_a[4] = v_7;
+  s.Store(0u, asuint((((asfloat(a[7u].x) + l_a[0][0][0u]) + l_a_i[0][0u]) + l_a_i_i[0u])));
+}
+
diff --git a/test/tint/buffer/uniform/std140/array/mat3x3_f32/to_builtin.wgsl.expected.ir.dxc.hlsl b/test/tint/buffer/uniform/std140/array/mat3x3_f32/to_builtin.wgsl.expected.ir.dxc.hlsl
index 3f437dc..6b07d9e 100644
--- a/test/tint/buffer/uniform/std140/array/mat3x3_f32/to_builtin.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/buffer/uniform/std140/array/mat3x3_f32/to_builtin.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,20 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Access
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+cbuffer cbuffer_u : register(b0) {
+  uint4 u[12];
+};
+RWByteAddressBuffer s : register(u1);
+float3x3 v(uint start_byte_offset) {
+  float3 v_1 = asfloat(u[(start_byte_offset / 16u)].xyz);
+  float3 v_2 = asfloat(u[((16u + start_byte_offset) / 16u)].xyz);
+  return float3x3(v_1, v_2, asfloat(u[((32u + start_byte_offset) / 16u)].xyz));
+}
+
+[numthreads(1, 1, 1)]
+void f() {
+  float3x3 t = transpose(v(96u));
+  float l = length(asfloat(u[1u].xyz).zxy);
+  float a = abs(asfloat(u[1u].xyz).zxy[0u]);
+  float v_3 = (t[0][0u] + float(l));
+  s.Store(0u, asuint((v_3 + float(a))));
+}
+
diff --git a/test/tint/buffer/uniform/std140/array/mat3x3_f32/to_builtin.wgsl.expected.ir.fxc.hlsl b/test/tint/buffer/uniform/std140/array/mat3x3_f32/to_builtin.wgsl.expected.ir.fxc.hlsl
index 3f437dc..6b07d9e 100644
--- a/test/tint/buffer/uniform/std140/array/mat3x3_f32/to_builtin.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/buffer/uniform/std140/array/mat3x3_f32/to_builtin.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,20 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Access
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+cbuffer cbuffer_u : register(b0) {
+  uint4 u[12];
+};
+RWByteAddressBuffer s : register(u1);
+float3x3 v(uint start_byte_offset) {
+  float3 v_1 = asfloat(u[(start_byte_offset / 16u)].xyz);
+  float3 v_2 = asfloat(u[((16u + start_byte_offset) / 16u)].xyz);
+  return float3x3(v_1, v_2, asfloat(u[((32u + start_byte_offset) / 16u)].xyz));
+}
+
+[numthreads(1, 1, 1)]
+void f() {
+  float3x3 t = transpose(v(96u));
+  float l = length(asfloat(u[1u].xyz).zxy);
+  float a = abs(asfloat(u[1u].xyz).zxy[0u]);
+  float v_3 = (t[0][0u] + float(l));
+  s.Store(0u, asuint((v_3 + float(a))));
+}
+
diff --git a/test/tint/buffer/uniform/std140/array/mat3x3_f32/to_fn.wgsl.expected.ir.dxc.hlsl b/test/tint/buffer/uniform/std140/array/mat3x3_f32/to_fn.wgsl.expected.ir.dxc.hlsl
index 3f437dc..891eb6a 100644
--- a/test/tint/buffer/uniform/std140/array/mat3x3_f32/to_fn.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/buffer/uniform/std140/array/mat3x3_f32/to_fn.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,58 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Access
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+cbuffer cbuffer_u : register(b0) {
+  uint4 u[12];
+};
+RWByteAddressBuffer s : register(u1);
+float a(float3x3 a_1[4]) {
+  return a_1[0][0][0u];
+}
+
+float b(float3x3 m) {
+  return m[0][0u];
+}
+
+float c(float3 v) {
+  return v[0u];
+}
+
+float d(float f) {
+  return f;
+}
+
+float3x3 v_1(uint start_byte_offset) {
+  float3 v_2 = asfloat(u[(start_byte_offset / 16u)].xyz);
+  float3 v_3 = asfloat(u[((16u + start_byte_offset) / 16u)].xyz);
+  return float3x3(v_2, v_3, asfloat(u[((32u + start_byte_offset) / 16u)].xyz));
+}
+
+typedef float3x3 ary_ret[4];
+ary_ret v_4(uint start_byte_offset) {
+  float3x3 a[4] = (float3x3[4])0;
+  {
+    uint v_5 = 0u;
+    v_5 = 0u;
+    while(true) {
+      uint v_6 = v_5;
+      if ((v_6 >= 4u)) {
+        break;
+      }
+      a[v_6] = v_1((start_byte_offset + (v_6 * 48u)));
+      {
+        v_5 = (v_6 + 1u);
+      }
+      continue;
+    }
+  }
+  float3x3 v_7[4] = a;
+  return v_7;
+}
+
+[numthreads(1, 1, 1)]
+void f() {
+  float3x3 v_8[4] = v_4(0u);
+  float v_9 = a(v_8);
+  float v_10 = (v_9 + b(v_1(48u)));
+  float v_11 = (v_10 + c(asfloat(u[3u].xyz).zxy));
+  s.Store(0u, asuint((v_11 + d(asfloat(u[3u].xyz).zxy[0u]))));
+}
+
diff --git a/test/tint/buffer/uniform/std140/array/mat3x3_f32/to_fn.wgsl.expected.ir.fxc.hlsl b/test/tint/buffer/uniform/std140/array/mat3x3_f32/to_fn.wgsl.expected.ir.fxc.hlsl
index 3f437dc..891eb6a 100644
--- a/test/tint/buffer/uniform/std140/array/mat3x3_f32/to_fn.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/buffer/uniform/std140/array/mat3x3_f32/to_fn.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,58 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Access
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+cbuffer cbuffer_u : register(b0) {
+  uint4 u[12];
+};
+RWByteAddressBuffer s : register(u1);
+float a(float3x3 a_1[4]) {
+  return a_1[0][0][0u];
+}
+
+float b(float3x3 m) {
+  return m[0][0u];
+}
+
+float c(float3 v) {
+  return v[0u];
+}
+
+float d(float f) {
+  return f;
+}
+
+float3x3 v_1(uint start_byte_offset) {
+  float3 v_2 = asfloat(u[(start_byte_offset / 16u)].xyz);
+  float3 v_3 = asfloat(u[((16u + start_byte_offset) / 16u)].xyz);
+  return float3x3(v_2, v_3, asfloat(u[((32u + start_byte_offset) / 16u)].xyz));
+}
+
+typedef float3x3 ary_ret[4];
+ary_ret v_4(uint start_byte_offset) {
+  float3x3 a[4] = (float3x3[4])0;
+  {
+    uint v_5 = 0u;
+    v_5 = 0u;
+    while(true) {
+      uint v_6 = v_5;
+      if ((v_6 >= 4u)) {
+        break;
+      }
+      a[v_6] = v_1((start_byte_offset + (v_6 * 48u)));
+      {
+        v_5 = (v_6 + 1u);
+      }
+      continue;
+    }
+  }
+  float3x3 v_7[4] = a;
+  return v_7;
+}
+
+[numthreads(1, 1, 1)]
+void f() {
+  float3x3 v_8[4] = v_4(0u);
+  float v_9 = a(v_8);
+  float v_10 = (v_9 + b(v_1(48u)));
+  float v_11 = (v_10 + c(asfloat(u[3u].xyz).zxy));
+  s.Store(0u, asuint((v_11 + d(asfloat(u[3u].xyz).zxy[0u]))));
+}
+
diff --git a/test/tint/buffer/uniform/std140/array/mat3x3_f32/to_private.wgsl.expected.ir.dxc.hlsl b/test/tint/buffer/uniform/std140/array/mat3x3_f32/to_private.wgsl.expected.ir.dxc.hlsl
index 3f437dc..5035d41 100644
--- a/test/tint/buffer/uniform/std140/array/mat3x3_f32/to_private.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/buffer/uniform/std140/array/mat3x3_f32/to_private.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,44 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Access
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+cbuffer cbuffer_u : register(b0) {
+  uint4 u[12];
+};
+RWByteAddressBuffer s : register(u1);
+static float3x3 p[4] = (float3x3[4])0;
+float3x3 v(uint start_byte_offset) {
+  float3 v_1 = asfloat(u[(start_byte_offset / 16u)].xyz);
+  float3 v_2 = asfloat(u[((16u + start_byte_offset) / 16u)].xyz);
+  return float3x3(v_1, v_2, asfloat(u[((32u + start_byte_offset) / 16u)].xyz));
+}
+
+typedef float3x3 ary_ret[4];
+ary_ret v_3(uint start_byte_offset) {
+  float3x3 a[4] = (float3x3[4])0;
+  {
+    uint v_4 = 0u;
+    v_4 = 0u;
+    while(true) {
+      uint v_5 = v_4;
+      if ((v_5 >= 4u)) {
+        break;
+      }
+      a[v_5] = v((start_byte_offset + (v_5 * 48u)));
+      {
+        v_4 = (v_5 + 1u);
+      }
+      continue;
+    }
+  }
+  float3x3 v_6[4] = a;
+  return v_6;
+}
+
+[numthreads(1, 1, 1)]
+void f() {
+  float3x3 v_7[4] = v_3(0u);
+  p = v_7;
+  p[1] = v(96u);
+  p[1][0] = asfloat(u[1u].xyz).zxy;
+  p[1][0][0u] = asfloat(u[1u].x);
+  s.Store(0u, asuint(p[1][0].x));
+}
+
diff --git a/test/tint/buffer/uniform/std140/array/mat3x3_f32/to_private.wgsl.expected.ir.fxc.hlsl b/test/tint/buffer/uniform/std140/array/mat3x3_f32/to_private.wgsl.expected.ir.fxc.hlsl
index 3f437dc..5035d41 100644
--- a/test/tint/buffer/uniform/std140/array/mat3x3_f32/to_private.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/buffer/uniform/std140/array/mat3x3_f32/to_private.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,44 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Access
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+cbuffer cbuffer_u : register(b0) {
+  uint4 u[12];
+};
+RWByteAddressBuffer s : register(u1);
+static float3x3 p[4] = (float3x3[4])0;
+float3x3 v(uint start_byte_offset) {
+  float3 v_1 = asfloat(u[(start_byte_offset / 16u)].xyz);
+  float3 v_2 = asfloat(u[((16u + start_byte_offset) / 16u)].xyz);
+  return float3x3(v_1, v_2, asfloat(u[((32u + start_byte_offset) / 16u)].xyz));
+}
+
+typedef float3x3 ary_ret[4];
+ary_ret v_3(uint start_byte_offset) {
+  float3x3 a[4] = (float3x3[4])0;
+  {
+    uint v_4 = 0u;
+    v_4 = 0u;
+    while(true) {
+      uint v_5 = v_4;
+      if ((v_5 >= 4u)) {
+        break;
+      }
+      a[v_5] = v((start_byte_offset + (v_5 * 48u)));
+      {
+        v_4 = (v_5 + 1u);
+      }
+      continue;
+    }
+  }
+  float3x3 v_6[4] = a;
+  return v_6;
+}
+
+[numthreads(1, 1, 1)]
+void f() {
+  float3x3 v_7[4] = v_3(0u);
+  p = v_7;
+  p[1] = v(96u);
+  p[1][0] = asfloat(u[1u].xyz).zxy;
+  p[1][0][0u] = asfloat(u[1u].x);
+  s.Store(0u, asuint(p[1][0].x));
+}
+
diff --git a/test/tint/buffer/uniform/std140/array/mat3x3_f32/to_storage.wgsl.expected.ir.dxc.hlsl b/test/tint/buffer/uniform/std140/array/mat3x3_f32/to_storage.wgsl.expected.ir.dxc.hlsl
index 3f437dc..cf209a3 100644
--- a/test/tint/buffer/uniform/std140/array/mat3x3_f32/to_storage.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/buffer/uniform/std140/array/mat3x3_f32/to_storage.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,66 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Access
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+cbuffer cbuffer_u : register(b0) {
+  uint4 u[12];
+};
+RWByteAddressBuffer s : register(u1);
+void v(uint offset, float3x3 obj) {
+  s.Store3((offset + 0u), asuint(obj[0u]));
+  s.Store3((offset + 16u), asuint(obj[1u]));
+  s.Store3((offset + 32u), asuint(obj[2u]));
+}
+
+float3x3 v_1(uint start_byte_offset) {
+  float3 v_2 = asfloat(u[(start_byte_offset / 16u)].xyz);
+  float3 v_3 = asfloat(u[((16u + start_byte_offset) / 16u)].xyz);
+  return float3x3(v_2, v_3, asfloat(u[((32u + start_byte_offset) / 16u)].xyz));
+}
+
+void v_4(uint offset, float3x3 obj[4]) {
+  {
+    uint v_5 = 0u;
+    v_5 = 0u;
+    while(true) {
+      uint v_6 = v_5;
+      if ((v_6 >= 4u)) {
+        break;
+      }
+      v((offset + (v_6 * 48u)), obj[v_6]);
+      {
+        v_5 = (v_6 + 1u);
+      }
+      continue;
+    }
+  }
+}
+
+typedef float3x3 ary_ret[4];
+ary_ret v_7(uint start_byte_offset) {
+  float3x3 a[4] = (float3x3[4])0;
+  {
+    uint v_8 = 0u;
+    v_8 = 0u;
+    while(true) {
+      uint v_9 = v_8;
+      if ((v_9 >= 4u)) {
+        break;
+      }
+      a[v_9] = v_1((start_byte_offset + (v_9 * 48u)));
+      {
+        v_8 = (v_9 + 1u);
+      }
+      continue;
+    }
+  }
+  float3x3 v_10[4] = a;
+  return v_10;
+}
+
+[numthreads(1, 1, 1)]
+void f() {
+  float3x3 v_11[4] = v_7(0u);
+  v_4(0u, v_11);
+  v(48u, v_1(96u));
+  s.Store3(48u, asuint(asfloat(u[1u].xyz).zxy));
+  s.Store(48u, asuint(asfloat(u[1u].x)));
+}
+
diff --git a/test/tint/buffer/uniform/std140/array/mat3x3_f32/to_storage.wgsl.expected.ir.fxc.hlsl b/test/tint/buffer/uniform/std140/array/mat3x3_f32/to_storage.wgsl.expected.ir.fxc.hlsl
index 3f437dc..cf209a3 100644
--- a/test/tint/buffer/uniform/std140/array/mat3x3_f32/to_storage.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/buffer/uniform/std140/array/mat3x3_f32/to_storage.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,66 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Access
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+cbuffer cbuffer_u : register(b0) {
+  uint4 u[12];
+};
+RWByteAddressBuffer s : register(u1);
+void v(uint offset, float3x3 obj) {
+  s.Store3((offset + 0u), asuint(obj[0u]));
+  s.Store3((offset + 16u), asuint(obj[1u]));
+  s.Store3((offset + 32u), asuint(obj[2u]));
+}
+
+float3x3 v_1(uint start_byte_offset) {
+  float3 v_2 = asfloat(u[(start_byte_offset / 16u)].xyz);
+  float3 v_3 = asfloat(u[((16u + start_byte_offset) / 16u)].xyz);
+  return float3x3(v_2, v_3, asfloat(u[((32u + start_byte_offset) / 16u)].xyz));
+}
+
+void v_4(uint offset, float3x3 obj[4]) {
+  {
+    uint v_5 = 0u;
+    v_5 = 0u;
+    while(true) {
+      uint v_6 = v_5;
+      if ((v_6 >= 4u)) {
+        break;
+      }
+      v((offset + (v_6 * 48u)), obj[v_6]);
+      {
+        v_5 = (v_6 + 1u);
+      }
+      continue;
+    }
+  }
+}
+
+typedef float3x3 ary_ret[4];
+ary_ret v_7(uint start_byte_offset) {
+  float3x3 a[4] = (float3x3[4])0;
+  {
+    uint v_8 = 0u;
+    v_8 = 0u;
+    while(true) {
+      uint v_9 = v_8;
+      if ((v_9 >= 4u)) {
+        break;
+      }
+      a[v_9] = v_1((start_byte_offset + (v_9 * 48u)));
+      {
+        v_8 = (v_9 + 1u);
+      }
+      continue;
+    }
+  }
+  float3x3 v_10[4] = a;
+  return v_10;
+}
+
+[numthreads(1, 1, 1)]
+void f() {
+  float3x3 v_11[4] = v_7(0u);
+  v_4(0u, v_11);
+  v(48u, v_1(96u));
+  s.Store3(48u, asuint(asfloat(u[1u].xyz).zxy));
+  s.Store(48u, asuint(asfloat(u[1u].x)));
+}
+
diff --git a/test/tint/buffer/uniform/std140/array/mat3x3_f32/to_workgroup.wgsl.expected.ir.dxc.hlsl b/test/tint/buffer/uniform/std140/array/mat3x3_f32/to_workgroup.wgsl.expected.ir.dxc.hlsl
index 3f437dc..0ad61a2 100644
--- a/test/tint/buffer/uniform/std140/array/mat3x3_f32/to_workgroup.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/buffer/uniform/std140/array/mat3x3_f32/to_workgroup.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,66 @@
-SKIP: FAILED
+struct f_inputs {
+  uint tint_local_index : SV_GroupIndex;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Access
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+
+cbuffer cbuffer_u : register(b0) {
+  uint4 u[12];
+};
+groupshared float3x3 w[4];
+float3x3 v(uint start_byte_offset) {
+  float3 v_1 = asfloat(u[(start_byte_offset / 16u)].xyz);
+  float3 v_2 = asfloat(u[((16u + start_byte_offset) / 16u)].xyz);
+  return float3x3(v_1, v_2, asfloat(u[((32u + start_byte_offset) / 16u)].xyz));
+}
+
+typedef float3x3 ary_ret[4];
+ary_ret v_3(uint start_byte_offset) {
+  float3x3 a[4] = (float3x3[4])0;
+  {
+    uint v_4 = 0u;
+    v_4 = 0u;
+    while(true) {
+      uint v_5 = v_4;
+      if ((v_5 >= 4u)) {
+        break;
+      }
+      a[v_5] = v((start_byte_offset + (v_5 * 48u)));
+      {
+        v_4 = (v_5 + 1u);
+      }
+      continue;
+    }
+  }
+  float3x3 v_6[4] = a;
+  return v_6;
+}
+
+void f_inner(uint tint_local_index) {
+  {
+    uint v_7 = 0u;
+    v_7 = tint_local_index;
+    while(true) {
+      uint v_8 = v_7;
+      if ((v_8 >= 4u)) {
+        break;
+      }
+      w[v_8] = float3x3((0.0f).xxx, (0.0f).xxx, (0.0f).xxx);
+      {
+        v_7 = (v_8 + 1u);
+      }
+      continue;
+    }
+  }
+  GroupMemoryBarrierWithGroupSync();
+  float3x3 v_9[4] = v_3(0u);
+  w = v_9;
+  w[1] = v(96u);
+  w[1][0] = asfloat(u[1u].xyz).zxy;
+  w[1][0][0u] = asfloat(u[1u].x);
+}
+
+[numthreads(1, 1, 1)]
+void f(f_inputs inputs) {
+  f_inner(inputs.tint_local_index);
+}
+
diff --git a/test/tint/buffer/uniform/std140/array/mat3x3_f32/to_workgroup.wgsl.expected.ir.fxc.hlsl b/test/tint/buffer/uniform/std140/array/mat3x3_f32/to_workgroup.wgsl.expected.ir.fxc.hlsl
index 3f437dc..0ad61a2 100644
--- a/test/tint/buffer/uniform/std140/array/mat3x3_f32/to_workgroup.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/buffer/uniform/std140/array/mat3x3_f32/to_workgroup.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,66 @@
-SKIP: FAILED
+struct f_inputs {
+  uint tint_local_index : SV_GroupIndex;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Access
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+
+cbuffer cbuffer_u : register(b0) {
+  uint4 u[12];
+};
+groupshared float3x3 w[4];
+float3x3 v(uint start_byte_offset) {
+  float3 v_1 = asfloat(u[(start_byte_offset / 16u)].xyz);
+  float3 v_2 = asfloat(u[((16u + start_byte_offset) / 16u)].xyz);
+  return float3x3(v_1, v_2, asfloat(u[((32u + start_byte_offset) / 16u)].xyz));
+}
+
+typedef float3x3 ary_ret[4];
+ary_ret v_3(uint start_byte_offset) {
+  float3x3 a[4] = (float3x3[4])0;
+  {
+    uint v_4 = 0u;
+    v_4 = 0u;
+    while(true) {
+      uint v_5 = v_4;
+      if ((v_5 >= 4u)) {
+        break;
+      }
+      a[v_5] = v((start_byte_offset + (v_5 * 48u)));
+      {
+        v_4 = (v_5 + 1u);
+      }
+      continue;
+    }
+  }
+  float3x3 v_6[4] = a;
+  return v_6;
+}
+
+void f_inner(uint tint_local_index) {
+  {
+    uint v_7 = 0u;
+    v_7 = tint_local_index;
+    while(true) {
+      uint v_8 = v_7;
+      if ((v_8 >= 4u)) {
+        break;
+      }
+      w[v_8] = float3x3((0.0f).xxx, (0.0f).xxx, (0.0f).xxx);
+      {
+        v_7 = (v_8 + 1u);
+      }
+      continue;
+    }
+  }
+  GroupMemoryBarrierWithGroupSync();
+  float3x3 v_9[4] = v_3(0u);
+  w = v_9;
+  w[1] = v(96u);
+  w[1][0] = asfloat(u[1u].xyz).zxy;
+  w[1][0][0u] = asfloat(u[1u].x);
+}
+
+[numthreads(1, 1, 1)]
+void f(f_inputs inputs) {
+  f_inner(inputs.tint_local_index);
+}
+
diff --git a/test/tint/buffer/uniform/std140/array/mat3x4_f32/dynamic_index_via_ptr.wgsl.expected.ir.dxc.hlsl b/test/tint/buffer/uniform/std140/array/mat3x4_f32/dynamic_index_via_ptr.wgsl.expected.ir.dxc.hlsl
index 3f437dc..30f28c9 100644
--- a/test/tint/buffer/uniform/std140/array/mat3x4_f32/dynamic_index_via_ptr.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/buffer/uniform/std140/array/mat3x4_f32/dynamic_index_via_ptr.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,50 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Access
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+cbuffer cbuffer_a : register(b0) {
+  uint4 a[12];
+};
+RWByteAddressBuffer s : register(u1);
+static int counter = 0;
+int i() {
+  counter = (counter + 1);
+  return counter;
+}
+
+float3x4 v(uint start_byte_offset) {
+  float4 v_1 = asfloat(a[(start_byte_offset / 16u)]);
+  float4 v_2 = asfloat(a[((16u + start_byte_offset) / 16u)]);
+  return float3x4(v_1, v_2, asfloat(a[((32u + start_byte_offset) / 16u)]));
+}
+
+typedef float3x4 ary_ret[4];
+ary_ret v_3(uint start_byte_offset) {
+  float3x4 a[4] = (float3x4[4])0;
+  {
+    uint v_4 = 0u;
+    v_4 = 0u;
+    while(true) {
+      uint v_5 = v_4;
+      if ((v_5 >= 4u)) {
+        break;
+      }
+      a[v_5] = v((start_byte_offset + (v_5 * 48u)));
+      {
+        v_4 = (v_5 + 1u);
+      }
+      continue;
+    }
+  }
+  float3x4 v_6[4] = a;
+  return v_6;
+}
+
+[numthreads(1, 1, 1)]
+void f() {
+  uint v_7 = (48u * uint(i()));
+  uint v_8 = (16u * uint(i()));
+  float3x4 v_9[4] = v_3(0u);
+  float3x4 l_a_i = v((v_7 + v_8));
+  float4 l_a_i_i = asfloat(a[((v_7 + v_8) / 16u)]);
+  float3x4 l_a[4] = v_9;
+  s.Store(0u, asuint((((asfloat(a[((v_7 + v_8) / 16u)][(((v_7 + v_8) % 16u) / 4u)]) + l_a[0][0][0u]) + l_a_i[0][0u]) + l_a_i_i[0u])));
+}
+
diff --git a/test/tint/buffer/uniform/std140/array/mat3x4_f32/dynamic_index_via_ptr.wgsl.expected.ir.fxc.hlsl b/test/tint/buffer/uniform/std140/array/mat3x4_f32/dynamic_index_via_ptr.wgsl.expected.ir.fxc.hlsl
index 3f437dc..30f28c9 100644
--- a/test/tint/buffer/uniform/std140/array/mat3x4_f32/dynamic_index_via_ptr.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/buffer/uniform/std140/array/mat3x4_f32/dynamic_index_via_ptr.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,50 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Access
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+cbuffer cbuffer_a : register(b0) {
+  uint4 a[12];
+};
+RWByteAddressBuffer s : register(u1);
+static int counter = 0;
+int i() {
+  counter = (counter + 1);
+  return counter;
+}
+
+float3x4 v(uint start_byte_offset) {
+  float4 v_1 = asfloat(a[(start_byte_offset / 16u)]);
+  float4 v_2 = asfloat(a[((16u + start_byte_offset) / 16u)]);
+  return float3x4(v_1, v_2, asfloat(a[((32u + start_byte_offset) / 16u)]));
+}
+
+typedef float3x4 ary_ret[4];
+ary_ret v_3(uint start_byte_offset) {
+  float3x4 a[4] = (float3x4[4])0;
+  {
+    uint v_4 = 0u;
+    v_4 = 0u;
+    while(true) {
+      uint v_5 = v_4;
+      if ((v_5 >= 4u)) {
+        break;
+      }
+      a[v_5] = v((start_byte_offset + (v_5 * 48u)));
+      {
+        v_4 = (v_5 + 1u);
+      }
+      continue;
+    }
+  }
+  float3x4 v_6[4] = a;
+  return v_6;
+}
+
+[numthreads(1, 1, 1)]
+void f() {
+  uint v_7 = (48u * uint(i()));
+  uint v_8 = (16u * uint(i()));
+  float3x4 v_9[4] = v_3(0u);
+  float3x4 l_a_i = v((v_7 + v_8));
+  float4 l_a_i_i = asfloat(a[((v_7 + v_8) / 16u)]);
+  float3x4 l_a[4] = v_9;
+  s.Store(0u, asuint((((asfloat(a[((v_7 + v_8) / 16u)][(((v_7 + v_8) % 16u) / 4u)]) + l_a[0][0][0u]) + l_a_i[0][0u]) + l_a_i_i[0u])));
+}
+
diff --git a/test/tint/buffer/uniform/std140/array/mat3x4_f32/static_index_via_ptr.wgsl.expected.ir.dxc.hlsl b/test/tint/buffer/uniform/std140/array/mat3x4_f32/static_index_via_ptr.wgsl.expected.ir.dxc.hlsl
index 3f437dc..16725a1 100644
--- a/test/tint/buffer/uniform/std140/array/mat3x4_f32/static_index_via_ptr.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/buffer/uniform/std140/array/mat3x4_f32/static_index_via_ptr.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,42 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Access
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+cbuffer cbuffer_a : register(b0) {
+  uint4 a[12];
+};
+RWByteAddressBuffer s : register(u1);
+float3x4 v(uint start_byte_offset) {
+  float4 v_1 = asfloat(a[(start_byte_offset / 16u)]);
+  float4 v_2 = asfloat(a[((16u + start_byte_offset) / 16u)]);
+  return float3x4(v_1, v_2, asfloat(a[((32u + start_byte_offset) / 16u)]));
+}
+
+typedef float3x4 ary_ret[4];
+ary_ret v_3(uint start_byte_offset) {
+  float3x4 a[4] = (float3x4[4])0;
+  {
+    uint v_4 = 0u;
+    v_4 = 0u;
+    while(true) {
+      uint v_5 = v_4;
+      if ((v_5 >= 4u)) {
+        break;
+      }
+      a[v_5] = v((start_byte_offset + (v_5 * 48u)));
+      {
+        v_4 = (v_5 + 1u);
+      }
+      continue;
+    }
+  }
+  float3x4 v_6[4] = a;
+  return v_6;
+}
+
+[numthreads(1, 1, 1)]
+void f() {
+  float3x4 v_7[4] = v_3(0u);
+  float3x4 l_a_i = v(112u);
+  float4 l_a_i_i = asfloat(a[7u]);
+  float3x4 l_a[4] = v_7;
+  s.Store(0u, asuint((((asfloat(a[7u].x) + l_a[0][0][0u]) + l_a_i[0][0u]) + l_a_i_i[0u])));
+}
+
diff --git a/test/tint/buffer/uniform/std140/array/mat3x4_f32/static_index_via_ptr.wgsl.expected.ir.fxc.hlsl b/test/tint/buffer/uniform/std140/array/mat3x4_f32/static_index_via_ptr.wgsl.expected.ir.fxc.hlsl
index 3f437dc..16725a1 100644
--- a/test/tint/buffer/uniform/std140/array/mat3x4_f32/static_index_via_ptr.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/buffer/uniform/std140/array/mat3x4_f32/static_index_via_ptr.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,42 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Access
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+cbuffer cbuffer_a : register(b0) {
+  uint4 a[12];
+};
+RWByteAddressBuffer s : register(u1);
+float3x4 v(uint start_byte_offset) {
+  float4 v_1 = asfloat(a[(start_byte_offset / 16u)]);
+  float4 v_2 = asfloat(a[((16u + start_byte_offset) / 16u)]);
+  return float3x4(v_1, v_2, asfloat(a[((32u + start_byte_offset) / 16u)]));
+}
+
+typedef float3x4 ary_ret[4];
+ary_ret v_3(uint start_byte_offset) {
+  float3x4 a[4] = (float3x4[4])0;
+  {
+    uint v_4 = 0u;
+    v_4 = 0u;
+    while(true) {
+      uint v_5 = v_4;
+      if ((v_5 >= 4u)) {
+        break;
+      }
+      a[v_5] = v((start_byte_offset + (v_5 * 48u)));
+      {
+        v_4 = (v_5 + 1u);
+      }
+      continue;
+    }
+  }
+  float3x4 v_6[4] = a;
+  return v_6;
+}
+
+[numthreads(1, 1, 1)]
+void f() {
+  float3x4 v_7[4] = v_3(0u);
+  float3x4 l_a_i = v(112u);
+  float4 l_a_i_i = asfloat(a[7u]);
+  float3x4 l_a[4] = v_7;
+  s.Store(0u, asuint((((asfloat(a[7u].x) + l_a[0][0][0u]) + l_a_i[0][0u]) + l_a_i_i[0u])));
+}
+
diff --git a/test/tint/buffer/uniform/std140/array/mat3x4_f32/to_builtin.wgsl.expected.ir.dxc.hlsl b/test/tint/buffer/uniform/std140/array/mat3x4_f32/to_builtin.wgsl.expected.ir.dxc.hlsl
index 3f437dc..4fac23e 100644
--- a/test/tint/buffer/uniform/std140/array/mat3x4_f32/to_builtin.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/buffer/uniform/std140/array/mat3x4_f32/to_builtin.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,20 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Access
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+cbuffer cbuffer_u : register(b0) {
+  uint4 u[12];
+};
+RWByteAddressBuffer s : register(u1);
+float3x4 v(uint start_byte_offset) {
+  float4 v_1 = asfloat(u[(start_byte_offset / 16u)]);
+  float4 v_2 = asfloat(u[((16u + start_byte_offset) / 16u)]);
+  return float3x4(v_1, v_2, asfloat(u[((32u + start_byte_offset) / 16u)]));
+}
+
+[numthreads(1, 1, 1)]
+void f() {
+  float4x3 t = transpose(v(96u));
+  float l = length(asfloat(u[1u]).ywxz);
+  float a = abs(asfloat(u[1u]).ywxz[0u]);
+  float v_3 = (t[0][0u] + float(l));
+  s.Store(0u, asuint((v_3 + float(a))));
+}
+
diff --git a/test/tint/buffer/uniform/std140/array/mat3x4_f32/to_builtin.wgsl.expected.ir.fxc.hlsl b/test/tint/buffer/uniform/std140/array/mat3x4_f32/to_builtin.wgsl.expected.ir.fxc.hlsl
index 3f437dc..4fac23e 100644
--- a/test/tint/buffer/uniform/std140/array/mat3x4_f32/to_builtin.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/buffer/uniform/std140/array/mat3x4_f32/to_builtin.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,20 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Access
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+cbuffer cbuffer_u : register(b0) {
+  uint4 u[12];
+};
+RWByteAddressBuffer s : register(u1);
+float3x4 v(uint start_byte_offset) {
+  float4 v_1 = asfloat(u[(start_byte_offset / 16u)]);
+  float4 v_2 = asfloat(u[((16u + start_byte_offset) / 16u)]);
+  return float3x4(v_1, v_2, asfloat(u[((32u + start_byte_offset) / 16u)]));
+}
+
+[numthreads(1, 1, 1)]
+void f() {
+  float4x3 t = transpose(v(96u));
+  float l = length(asfloat(u[1u]).ywxz);
+  float a = abs(asfloat(u[1u]).ywxz[0u]);
+  float v_3 = (t[0][0u] + float(l));
+  s.Store(0u, asuint((v_3 + float(a))));
+}
+
diff --git a/test/tint/buffer/uniform/std140/array/mat3x4_f32/to_fn.wgsl.expected.ir.dxc.hlsl b/test/tint/buffer/uniform/std140/array/mat3x4_f32/to_fn.wgsl.expected.ir.dxc.hlsl
index 3f437dc..ab7668f 100644
--- a/test/tint/buffer/uniform/std140/array/mat3x4_f32/to_fn.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/buffer/uniform/std140/array/mat3x4_f32/to_fn.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,58 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Access
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+cbuffer cbuffer_u : register(b0) {
+  uint4 u[12];
+};
+RWByteAddressBuffer s : register(u1);
+float a(float3x4 a_1[4]) {
+  return a_1[0][0][0u];
+}
+
+float b(float3x4 m) {
+  return m[0][0u];
+}
+
+float c(float4 v) {
+  return v[0u];
+}
+
+float d(float f) {
+  return f;
+}
+
+float3x4 v_1(uint start_byte_offset) {
+  float4 v_2 = asfloat(u[(start_byte_offset / 16u)]);
+  float4 v_3 = asfloat(u[((16u + start_byte_offset) / 16u)]);
+  return float3x4(v_2, v_3, asfloat(u[((32u + start_byte_offset) / 16u)]));
+}
+
+typedef float3x4 ary_ret[4];
+ary_ret v_4(uint start_byte_offset) {
+  float3x4 a[4] = (float3x4[4])0;
+  {
+    uint v_5 = 0u;
+    v_5 = 0u;
+    while(true) {
+      uint v_6 = v_5;
+      if ((v_6 >= 4u)) {
+        break;
+      }
+      a[v_6] = v_1((start_byte_offset + (v_6 * 48u)));
+      {
+        v_5 = (v_6 + 1u);
+      }
+      continue;
+    }
+  }
+  float3x4 v_7[4] = a;
+  return v_7;
+}
+
+[numthreads(1, 1, 1)]
+void f() {
+  float3x4 v_8[4] = v_4(0u);
+  float v_9 = a(v_8);
+  float v_10 = (v_9 + b(v_1(48u)));
+  float v_11 = (v_10 + c(asfloat(u[3u]).ywxz));
+  s.Store(0u, asuint((v_11 + d(asfloat(u[3u]).ywxz[0u]))));
+}
+
diff --git a/test/tint/buffer/uniform/std140/array/mat3x4_f32/to_fn.wgsl.expected.ir.fxc.hlsl b/test/tint/buffer/uniform/std140/array/mat3x4_f32/to_fn.wgsl.expected.ir.fxc.hlsl
index 3f437dc..ab7668f 100644
--- a/test/tint/buffer/uniform/std140/array/mat3x4_f32/to_fn.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/buffer/uniform/std140/array/mat3x4_f32/to_fn.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,58 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Access
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+cbuffer cbuffer_u : register(b0) {
+  uint4 u[12];
+};
+RWByteAddressBuffer s : register(u1);
+float a(float3x4 a_1[4]) {
+  return a_1[0][0][0u];
+}
+
+float b(float3x4 m) {
+  return m[0][0u];
+}
+
+float c(float4 v) {
+  return v[0u];
+}
+
+float d(float f) {
+  return f;
+}
+
+float3x4 v_1(uint start_byte_offset) {
+  float4 v_2 = asfloat(u[(start_byte_offset / 16u)]);
+  float4 v_3 = asfloat(u[((16u + start_byte_offset) / 16u)]);
+  return float3x4(v_2, v_3, asfloat(u[((32u + start_byte_offset) / 16u)]));
+}
+
+typedef float3x4 ary_ret[4];
+ary_ret v_4(uint start_byte_offset) {
+  float3x4 a[4] = (float3x4[4])0;
+  {
+    uint v_5 = 0u;
+    v_5 = 0u;
+    while(true) {
+      uint v_6 = v_5;
+      if ((v_6 >= 4u)) {
+        break;
+      }
+      a[v_6] = v_1((start_byte_offset + (v_6 * 48u)));
+      {
+        v_5 = (v_6 + 1u);
+      }
+      continue;
+    }
+  }
+  float3x4 v_7[4] = a;
+  return v_7;
+}
+
+[numthreads(1, 1, 1)]
+void f() {
+  float3x4 v_8[4] = v_4(0u);
+  float v_9 = a(v_8);
+  float v_10 = (v_9 + b(v_1(48u)));
+  float v_11 = (v_10 + c(asfloat(u[3u]).ywxz));
+  s.Store(0u, asuint((v_11 + d(asfloat(u[3u]).ywxz[0u]))));
+}
+
diff --git a/test/tint/buffer/uniform/std140/array/mat3x4_f32/to_private.wgsl.expected.ir.dxc.hlsl b/test/tint/buffer/uniform/std140/array/mat3x4_f32/to_private.wgsl.expected.ir.dxc.hlsl
index 3f437dc..94777e8 100644
--- a/test/tint/buffer/uniform/std140/array/mat3x4_f32/to_private.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/buffer/uniform/std140/array/mat3x4_f32/to_private.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,44 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Access
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+cbuffer cbuffer_u : register(b0) {
+  uint4 u[12];
+};
+RWByteAddressBuffer s : register(u1);
+static float3x4 p[4] = (float3x4[4])0;
+float3x4 v(uint start_byte_offset) {
+  float4 v_1 = asfloat(u[(start_byte_offset / 16u)]);
+  float4 v_2 = asfloat(u[((16u + start_byte_offset) / 16u)]);
+  return float3x4(v_1, v_2, asfloat(u[((32u + start_byte_offset) / 16u)]));
+}
+
+typedef float3x4 ary_ret[4];
+ary_ret v_3(uint start_byte_offset) {
+  float3x4 a[4] = (float3x4[4])0;
+  {
+    uint v_4 = 0u;
+    v_4 = 0u;
+    while(true) {
+      uint v_5 = v_4;
+      if ((v_5 >= 4u)) {
+        break;
+      }
+      a[v_5] = v((start_byte_offset + (v_5 * 48u)));
+      {
+        v_4 = (v_5 + 1u);
+      }
+      continue;
+    }
+  }
+  float3x4 v_6[4] = a;
+  return v_6;
+}
+
+[numthreads(1, 1, 1)]
+void f() {
+  float3x4 v_7[4] = v_3(0u);
+  p = v_7;
+  p[1] = v(96u);
+  p[1][0] = asfloat(u[1u]).ywxz;
+  p[1][0][0u] = asfloat(u[1u].x);
+  s.Store(0u, asuint(p[1][0].x));
+}
+
diff --git a/test/tint/buffer/uniform/std140/array/mat3x4_f32/to_private.wgsl.expected.ir.fxc.hlsl b/test/tint/buffer/uniform/std140/array/mat3x4_f32/to_private.wgsl.expected.ir.fxc.hlsl
index 3f437dc..94777e8 100644
--- a/test/tint/buffer/uniform/std140/array/mat3x4_f32/to_private.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/buffer/uniform/std140/array/mat3x4_f32/to_private.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,44 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Access
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+cbuffer cbuffer_u : register(b0) {
+  uint4 u[12];
+};
+RWByteAddressBuffer s : register(u1);
+static float3x4 p[4] = (float3x4[4])0;
+float3x4 v(uint start_byte_offset) {
+  float4 v_1 = asfloat(u[(start_byte_offset / 16u)]);
+  float4 v_2 = asfloat(u[((16u + start_byte_offset) / 16u)]);
+  return float3x4(v_1, v_2, asfloat(u[((32u + start_byte_offset) / 16u)]));
+}
+
+typedef float3x4 ary_ret[4];
+ary_ret v_3(uint start_byte_offset) {
+  float3x4 a[4] = (float3x4[4])0;
+  {
+    uint v_4 = 0u;
+    v_4 = 0u;
+    while(true) {
+      uint v_5 = v_4;
+      if ((v_5 >= 4u)) {
+        break;
+      }
+      a[v_5] = v((start_byte_offset + (v_5 * 48u)));
+      {
+        v_4 = (v_5 + 1u);
+      }
+      continue;
+    }
+  }
+  float3x4 v_6[4] = a;
+  return v_6;
+}
+
+[numthreads(1, 1, 1)]
+void f() {
+  float3x4 v_7[4] = v_3(0u);
+  p = v_7;
+  p[1] = v(96u);
+  p[1][0] = asfloat(u[1u]).ywxz;
+  p[1][0][0u] = asfloat(u[1u].x);
+  s.Store(0u, asuint(p[1][0].x));
+}
+
diff --git a/test/tint/buffer/uniform/std140/array/mat3x4_f32/to_storage.wgsl.expected.ir.dxc.hlsl b/test/tint/buffer/uniform/std140/array/mat3x4_f32/to_storage.wgsl.expected.ir.dxc.hlsl
index 3f437dc..ef35724 100644
--- a/test/tint/buffer/uniform/std140/array/mat3x4_f32/to_storage.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/buffer/uniform/std140/array/mat3x4_f32/to_storage.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,66 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Access
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+cbuffer cbuffer_u : register(b0) {
+  uint4 u[12];
+};
+RWByteAddressBuffer s : register(u1);
+void v(uint offset, float3x4 obj) {
+  s.Store4((offset + 0u), asuint(obj[0u]));
+  s.Store4((offset + 16u), asuint(obj[1u]));
+  s.Store4((offset + 32u), asuint(obj[2u]));
+}
+
+float3x4 v_1(uint start_byte_offset) {
+  float4 v_2 = asfloat(u[(start_byte_offset / 16u)]);
+  float4 v_3 = asfloat(u[((16u + start_byte_offset) / 16u)]);
+  return float3x4(v_2, v_3, asfloat(u[((32u + start_byte_offset) / 16u)]));
+}
+
+void v_4(uint offset, float3x4 obj[4]) {
+  {
+    uint v_5 = 0u;
+    v_5 = 0u;
+    while(true) {
+      uint v_6 = v_5;
+      if ((v_6 >= 4u)) {
+        break;
+      }
+      v((offset + (v_6 * 48u)), obj[v_6]);
+      {
+        v_5 = (v_6 + 1u);
+      }
+      continue;
+    }
+  }
+}
+
+typedef float3x4 ary_ret[4];
+ary_ret v_7(uint start_byte_offset) {
+  float3x4 a[4] = (float3x4[4])0;
+  {
+    uint v_8 = 0u;
+    v_8 = 0u;
+    while(true) {
+      uint v_9 = v_8;
+      if ((v_9 >= 4u)) {
+        break;
+      }
+      a[v_9] = v_1((start_byte_offset + (v_9 * 48u)));
+      {
+        v_8 = (v_9 + 1u);
+      }
+      continue;
+    }
+  }
+  float3x4 v_10[4] = a;
+  return v_10;
+}
+
+[numthreads(1, 1, 1)]
+void f() {
+  float3x4 v_11[4] = v_7(0u);
+  v_4(0u, v_11);
+  v(48u, v_1(96u));
+  s.Store4(48u, asuint(asfloat(u[1u]).ywxz));
+  s.Store(48u, asuint(asfloat(u[1u].x)));
+}
+
diff --git a/test/tint/buffer/uniform/std140/array/mat3x4_f32/to_storage.wgsl.expected.ir.fxc.hlsl b/test/tint/buffer/uniform/std140/array/mat3x4_f32/to_storage.wgsl.expected.ir.fxc.hlsl
index 3f437dc..ef35724 100644
--- a/test/tint/buffer/uniform/std140/array/mat3x4_f32/to_storage.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/buffer/uniform/std140/array/mat3x4_f32/to_storage.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,66 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Access
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+cbuffer cbuffer_u : register(b0) {
+  uint4 u[12];
+};
+RWByteAddressBuffer s : register(u1);
+void v(uint offset, float3x4 obj) {
+  s.Store4((offset + 0u), asuint(obj[0u]));
+  s.Store4((offset + 16u), asuint(obj[1u]));
+  s.Store4((offset + 32u), asuint(obj[2u]));
+}
+
+float3x4 v_1(uint start_byte_offset) {
+  float4 v_2 = asfloat(u[(start_byte_offset / 16u)]);
+  float4 v_3 = asfloat(u[((16u + start_byte_offset) / 16u)]);
+  return float3x4(v_2, v_3, asfloat(u[((32u + start_byte_offset) / 16u)]));
+}
+
+void v_4(uint offset, float3x4 obj[4]) {
+  {
+    uint v_5 = 0u;
+    v_5 = 0u;
+    while(true) {
+      uint v_6 = v_5;
+      if ((v_6 >= 4u)) {
+        break;
+      }
+      v((offset + (v_6 * 48u)), obj[v_6]);
+      {
+        v_5 = (v_6 + 1u);
+      }
+      continue;
+    }
+  }
+}
+
+typedef float3x4 ary_ret[4];
+ary_ret v_7(uint start_byte_offset) {
+  float3x4 a[4] = (float3x4[4])0;
+  {
+    uint v_8 = 0u;
+    v_8 = 0u;
+    while(true) {
+      uint v_9 = v_8;
+      if ((v_9 >= 4u)) {
+        break;
+      }
+      a[v_9] = v_1((start_byte_offset + (v_9 * 48u)));
+      {
+        v_8 = (v_9 + 1u);
+      }
+      continue;
+    }
+  }
+  float3x4 v_10[4] = a;
+  return v_10;
+}
+
+[numthreads(1, 1, 1)]
+void f() {
+  float3x4 v_11[4] = v_7(0u);
+  v_4(0u, v_11);
+  v(48u, v_1(96u));
+  s.Store4(48u, asuint(asfloat(u[1u]).ywxz));
+  s.Store(48u, asuint(asfloat(u[1u].x)));
+}
+
diff --git a/test/tint/buffer/uniform/std140/array/mat3x4_f32/to_workgroup.wgsl.expected.ir.dxc.hlsl b/test/tint/buffer/uniform/std140/array/mat3x4_f32/to_workgroup.wgsl.expected.ir.dxc.hlsl
index 3f437dc..725ae1d 100644
--- a/test/tint/buffer/uniform/std140/array/mat3x4_f32/to_workgroup.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/buffer/uniform/std140/array/mat3x4_f32/to_workgroup.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,66 @@
-SKIP: FAILED
+struct f_inputs {
+  uint tint_local_index : SV_GroupIndex;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Access
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+
+cbuffer cbuffer_u : register(b0) {
+  uint4 u[12];
+};
+groupshared float3x4 w[4];
+float3x4 v(uint start_byte_offset) {
+  float4 v_1 = asfloat(u[(start_byte_offset / 16u)]);
+  float4 v_2 = asfloat(u[((16u + start_byte_offset) / 16u)]);
+  return float3x4(v_1, v_2, asfloat(u[((32u + start_byte_offset) / 16u)]));
+}
+
+typedef float3x4 ary_ret[4];
+ary_ret v_3(uint start_byte_offset) {
+  float3x4 a[4] = (float3x4[4])0;
+  {
+    uint v_4 = 0u;
+    v_4 = 0u;
+    while(true) {
+      uint v_5 = v_4;
+      if ((v_5 >= 4u)) {
+        break;
+      }
+      a[v_5] = v((start_byte_offset + (v_5 * 48u)));
+      {
+        v_4 = (v_5 + 1u);
+      }
+      continue;
+    }
+  }
+  float3x4 v_6[4] = a;
+  return v_6;
+}
+
+void f_inner(uint tint_local_index) {
+  {
+    uint v_7 = 0u;
+    v_7 = tint_local_index;
+    while(true) {
+      uint v_8 = v_7;
+      if ((v_8 >= 4u)) {
+        break;
+      }
+      w[v_8] = float3x4((0.0f).xxxx, (0.0f).xxxx, (0.0f).xxxx);
+      {
+        v_7 = (v_8 + 1u);
+      }
+      continue;
+    }
+  }
+  GroupMemoryBarrierWithGroupSync();
+  float3x4 v_9[4] = v_3(0u);
+  w = v_9;
+  w[1] = v(96u);
+  w[1][0] = asfloat(u[1u]).ywxz;
+  w[1][0][0u] = asfloat(u[1u].x);
+}
+
+[numthreads(1, 1, 1)]
+void f(f_inputs inputs) {
+  f_inner(inputs.tint_local_index);
+}
+
diff --git a/test/tint/buffer/uniform/std140/array/mat3x4_f32/to_workgroup.wgsl.expected.ir.fxc.hlsl b/test/tint/buffer/uniform/std140/array/mat3x4_f32/to_workgroup.wgsl.expected.ir.fxc.hlsl
index 3f437dc..725ae1d 100644
--- a/test/tint/buffer/uniform/std140/array/mat3x4_f32/to_workgroup.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/buffer/uniform/std140/array/mat3x4_f32/to_workgroup.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,66 @@
-SKIP: FAILED
+struct f_inputs {
+  uint tint_local_index : SV_GroupIndex;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Access
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+
+cbuffer cbuffer_u : register(b0) {
+  uint4 u[12];
+};
+groupshared float3x4 w[4];
+float3x4 v(uint start_byte_offset) {
+  float4 v_1 = asfloat(u[(start_byte_offset / 16u)]);
+  float4 v_2 = asfloat(u[((16u + start_byte_offset) / 16u)]);
+  return float3x4(v_1, v_2, asfloat(u[((32u + start_byte_offset) / 16u)]));
+}
+
+typedef float3x4 ary_ret[4];
+ary_ret v_3(uint start_byte_offset) {
+  float3x4 a[4] = (float3x4[4])0;
+  {
+    uint v_4 = 0u;
+    v_4 = 0u;
+    while(true) {
+      uint v_5 = v_4;
+      if ((v_5 >= 4u)) {
+        break;
+      }
+      a[v_5] = v((start_byte_offset + (v_5 * 48u)));
+      {
+        v_4 = (v_5 + 1u);
+      }
+      continue;
+    }
+  }
+  float3x4 v_6[4] = a;
+  return v_6;
+}
+
+void f_inner(uint tint_local_index) {
+  {
+    uint v_7 = 0u;
+    v_7 = tint_local_index;
+    while(true) {
+      uint v_8 = v_7;
+      if ((v_8 >= 4u)) {
+        break;
+      }
+      w[v_8] = float3x4((0.0f).xxxx, (0.0f).xxxx, (0.0f).xxxx);
+      {
+        v_7 = (v_8 + 1u);
+      }
+      continue;
+    }
+  }
+  GroupMemoryBarrierWithGroupSync();
+  float3x4 v_9[4] = v_3(0u);
+  w = v_9;
+  w[1] = v(96u);
+  w[1][0] = asfloat(u[1u]).ywxz;
+  w[1][0][0u] = asfloat(u[1u].x);
+}
+
+[numthreads(1, 1, 1)]
+void f(f_inputs inputs) {
+  f_inner(inputs.tint_local_index);
+}
+
diff --git a/test/tint/buffer/uniform/std140/array/mat4x2_f16/dynamic_index_via_ptr.wgsl.expected.ir.dxc.hlsl b/test/tint/buffer/uniform/std140/array/mat4x2_f16/dynamic_index_via_ptr.wgsl.expected.ir.dxc.hlsl
index 3f437dc..60f1c9a 100644
--- a/test/tint/buffer/uniform/std140/array/mat4x2_f16/dynamic_index_via_ptr.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/buffer/uniform/std140/array/mat4x2_f16/dynamic_index_via_ptr.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,65 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Access
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+cbuffer cbuffer_a : register(b0) {
+  uint4 a[4];
+};
+RWByteAddressBuffer s : register(u1);
+static int counter = 0;
+int i() {
+  counter = (counter + 1);
+  return counter;
+}
+
+vector<float16_t, 2> tint_bitcast_to_f16(uint src) {
+  uint v = src;
+  float t_low = f16tof32((v & 65535u));
+  float t_high = f16tof32(((v >> 16u) & 65535u));
+  float16_t v_1 = float16_t(t_low);
+  return vector<float16_t, 2>(v_1, float16_t(t_high));
+}
+
+matrix<float16_t, 4, 2> v_2(uint start_byte_offset) {
+  uint4 v_3 = a[(start_byte_offset / 16u)];
+  vector<float16_t, 2> v_4 = tint_bitcast_to_f16((((((start_byte_offset % 16u) / 4u) == 2u)) ? (v_3.z) : (v_3.x)));
+  uint4 v_5 = a[((4u + start_byte_offset) / 16u)];
+  vector<float16_t, 2> v_6 = tint_bitcast_to_f16(((((((4u + start_byte_offset) % 16u) / 4u) == 2u)) ? (v_5.z) : (v_5.x)));
+  uint4 v_7 = a[((8u + start_byte_offset) / 16u)];
+  vector<float16_t, 2> v_8 = tint_bitcast_to_f16(((((((8u + start_byte_offset) % 16u) / 4u) == 2u)) ? (v_7.z) : (v_7.x)));
+  uint4 v_9 = a[((12u + start_byte_offset) / 16u)];
+  return matrix<float16_t, 4, 2>(v_4, v_6, v_8, tint_bitcast_to_f16(((((((12u + start_byte_offset) % 16u) / 4u) == 2u)) ? (v_9.z) : (v_9.x))));
+}
+
+typedef matrix<float16_t, 4, 2> ary_ret[4];
+ary_ret v_10(uint start_byte_offset) {
+  matrix<float16_t, 4, 2> a[4] = (matrix<float16_t, 4, 2>[4])0;
+  {
+    uint v_11 = 0u;
+    v_11 = 0u;
+    while(true) {
+      uint v_12 = v_11;
+      if ((v_12 >= 4u)) {
+        break;
+      }
+      a[v_12] = v_2((start_byte_offset + (v_12 * 16u)));
+      {
+        v_11 = (v_12 + 1u);
+      }
+      continue;
+    }
+  }
+  matrix<float16_t, 4, 2> v_13[4] = a;
+  return v_13;
+}
+
+[numthreads(1, 1, 1)]
+void f() {
+  uint v_14 = (16u * uint(i()));
+  uint v_15 = (4u * uint(i()));
+  matrix<float16_t, 4, 2> v_16[4] = v_10(0u);
+  matrix<float16_t, 4, 2> l_a_i = v_2((v_14 + v_15));
+  uint4 v_17 = a[((v_14 + v_15) / 16u)];
+  vector<float16_t, 2> l_a_i_i = tint_bitcast_to_f16(((((((v_14 + v_15) % 16u) / 4u) == 2u)) ? (v_17.z) : (v_17.x)));
+  uint v_18 = a[((v_14 + v_15) / 16u)][(((v_14 + v_15) % 16u) / 4u)];
+  matrix<float16_t, 4, 2> l_a[4] = v_16;
+  s.Store<float16_t>(0u, (((float16_t(f16tof32((v_18 >> (((((v_14 + v_15) % 4u) == 0u)) ? (0u) : (16u))))) + l_a[0][0][0u]) + l_a_i[0][0u]) + l_a_i_i[0u]));
+}
+
diff --git a/test/tint/buffer/uniform/std140/array/mat4x2_f16/dynamic_index_via_ptr.wgsl.expected.ir.fxc.hlsl b/test/tint/buffer/uniform/std140/array/mat4x2_f16/dynamic_index_via_ptr.wgsl.expected.ir.fxc.hlsl
index 3f437dc..3ccd4bd 100644
--- a/test/tint/buffer/uniform/std140/array/mat4x2_f16/dynamic_index_via_ptr.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/buffer/uniform/std140/array/mat4x2_f16/dynamic_index_via_ptr.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,70 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Access
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+
+cbuffer cbuffer_a : register(b0) {
+  uint4 a[4];
+};
+RWByteAddressBuffer s : register(u1);
+static int counter = 0;
+int i() {
+  counter = (counter + 1);
+  return counter;
+}
+
+vector<float16_t, 2> tint_bitcast_to_f16(uint src) {
+  uint v = src;
+  float t_low = f16tof32((v & 65535u));
+  float t_high = f16tof32(((v >> 16u) & 65535u));
+  float16_t v_1 = float16_t(t_low);
+  return vector<float16_t, 2>(v_1, float16_t(t_high));
+}
+
+matrix<float16_t, 4, 2> v_2(uint start_byte_offset) {
+  uint4 v_3 = a[(start_byte_offset / 16u)];
+  vector<float16_t, 2> v_4 = tint_bitcast_to_f16((((((start_byte_offset % 16u) / 4u) == 2u)) ? (v_3.z) : (v_3.x)));
+  uint4 v_5 = a[((4u + start_byte_offset) / 16u)];
+  vector<float16_t, 2> v_6 = tint_bitcast_to_f16(((((((4u + start_byte_offset) % 16u) / 4u) == 2u)) ? (v_5.z) : (v_5.x)));
+  uint4 v_7 = a[((8u + start_byte_offset) / 16u)];
+  vector<float16_t, 2> v_8 = tint_bitcast_to_f16(((((((8u + start_byte_offset) % 16u) / 4u) == 2u)) ? (v_7.z) : (v_7.x)));
+  uint4 v_9 = a[((12u + start_byte_offset) / 16u)];
+  return matrix<float16_t, 4, 2>(v_4, v_6, v_8, tint_bitcast_to_f16(((((((12u + start_byte_offset) % 16u) / 4u) == 2u)) ? (v_9.z) : (v_9.x))));
+}
+
+typedef matrix<float16_t, 4, 2> ary_ret[4];
+ary_ret v_10(uint start_byte_offset) {
+  matrix<float16_t, 4, 2> a[4] = (matrix<float16_t, 4, 2>[4])0;
+  {
+    uint v_11 = 0u;
+    v_11 = 0u;
+    while(true) {
+      uint v_12 = v_11;
+      if ((v_12 >= 4u)) {
+        break;
+      }
+      a[v_12] = v_2((start_byte_offset + (v_12 * 16u)));
+      {
+        v_11 = (v_12 + 1u);
+      }
+      continue;
+    }
+  }
+  matrix<float16_t, 4, 2> v_13[4] = a;
+  return v_13;
+}
+
+[numthreads(1, 1, 1)]
+void f() {
+  uint v_14 = (16u * uint(i()));
+  uint v_15 = (4u * uint(i()));
+  matrix<float16_t, 4, 2> v_16[4] = v_10(0u);
+  matrix<float16_t, 4, 2> l_a_i = v_2(v_14);
+  uint4 v_17 = a[((v_14 + v_15) / 16u)];
+  vector<float16_t, 2> l_a_i_i = tint_bitcast_to_f16(((((((v_14 + v_15) % 16u) / 4u) == 2u)) ? (v_17.z) : (v_17.x)));
+  uint v_18 = a[((v_14 + v_15) / 16u)][(((v_14 + v_15) % 16u) / 4u)];
+  matrix<float16_t, 4, 2> l_a[4] = v_16;
+  s.Store<float16_t>(0u, (((float16_t(f16tof32((v_18 >> (((((v_14 + v_15) % 4u) == 0u)) ? (0u) : (16u))))) + l_a[0][0][0u]) + l_a_i[0][0u]) + l_a_i_i[0u]));
+}
+
+FXC validation failure:
+c:\src\dawn\Shader@0x000002317E5024B0(12,8-16): error X3000: syntax error: unexpected token 'float16_t'
+
diff --git a/test/tint/buffer/uniform/std140/array/mat4x2_f16/static_index_via_ptr.wgsl.expected.ir.dxc.hlsl b/test/tint/buffer/uniform/std140/array/mat4x2_f16/static_index_via_ptr.wgsl.expected.ir.dxc.hlsl
index 3f437dc..763abcc 100644
--- a/test/tint/buffer/uniform/std140/array/mat4x2_f16/static_index_via_ptr.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/buffer/uniform/std140/array/mat4x2_f16/static_index_via_ptr.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,55 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Access
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+cbuffer cbuffer_a : register(b0) {
+  uint4 a[4];
+};
+RWByteAddressBuffer s : register(u1);
+vector<float16_t, 2> tint_bitcast_to_f16(uint src) {
+  uint v = src;
+  float t_low = f16tof32((v & 65535u));
+  float t_high = f16tof32(((v >> 16u) & 65535u));
+  float16_t v_1 = float16_t(t_low);
+  return vector<float16_t, 2>(v_1, float16_t(t_high));
+}
+
+matrix<float16_t, 4, 2> v_2(uint start_byte_offset) {
+  uint4 v_3 = a[(start_byte_offset / 16u)];
+  vector<float16_t, 2> v_4 = tint_bitcast_to_f16((((((start_byte_offset % 16u) / 4u) == 2u)) ? (v_3.z) : (v_3.x)));
+  uint4 v_5 = a[((4u + start_byte_offset) / 16u)];
+  vector<float16_t, 2> v_6 = tint_bitcast_to_f16(((((((4u + start_byte_offset) % 16u) / 4u) == 2u)) ? (v_5.z) : (v_5.x)));
+  uint4 v_7 = a[((8u + start_byte_offset) / 16u)];
+  vector<float16_t, 2> v_8 = tint_bitcast_to_f16(((((((8u + start_byte_offset) % 16u) / 4u) == 2u)) ? (v_7.z) : (v_7.x)));
+  uint4 v_9 = a[((12u + start_byte_offset) / 16u)];
+  return matrix<float16_t, 4, 2>(v_4, v_6, v_8, tint_bitcast_to_f16(((((((12u + start_byte_offset) % 16u) / 4u) == 2u)) ? (v_9.z) : (v_9.x))));
+}
+
+typedef matrix<float16_t, 4, 2> ary_ret[4];
+ary_ret v_10(uint start_byte_offset) {
+  matrix<float16_t, 4, 2> a[4] = (matrix<float16_t, 4, 2>[4])0;
+  {
+    uint v_11 = 0u;
+    v_11 = 0u;
+    while(true) {
+      uint v_12 = v_11;
+      if ((v_12 >= 4u)) {
+        break;
+      }
+      a[v_12] = v_2((start_byte_offset + (v_12 * 16u)));
+      {
+        v_11 = (v_12 + 1u);
+      }
+      continue;
+    }
+  }
+  matrix<float16_t, 4, 2> v_13[4] = a;
+  return v_13;
+}
+
+[numthreads(1, 1, 1)]
+void f() {
+  matrix<float16_t, 4, 2> v_14[4] = v_10(0u);
+  matrix<float16_t, 4, 2> l_a_i = v_2(32u);
+  vector<float16_t, 2> l_a_i_i = tint_bitcast_to_f16(a[2u].x);
+  matrix<float16_t, 4, 2> l_a[4] = v_14;
+  s.Store<float16_t>(0u, (((float16_t(f16tof32(a[2u].y)) + l_a[0][0][0u]) + l_a_i[0][0u]) + l_a_i_i[0u]));
+}
+
diff --git a/test/tint/buffer/uniform/std140/array/mat4x2_f16/static_index_via_ptr.wgsl.expected.ir.fxc.hlsl b/test/tint/buffer/uniform/std140/array/mat4x2_f16/static_index_via_ptr.wgsl.expected.ir.fxc.hlsl
index 3f437dc..7e56211 100644
--- a/test/tint/buffer/uniform/std140/array/mat4x2_f16/static_index_via_ptr.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/buffer/uniform/std140/array/mat4x2_f16/static_index_via_ptr.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,60 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Access
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+
+cbuffer cbuffer_a : register(b0) {
+  uint4 a[4];
+};
+RWByteAddressBuffer s : register(u1);
+vector<float16_t, 2> tint_bitcast_to_f16(uint src) {
+  uint v = src;
+  float t_low = f16tof32((v & 65535u));
+  float t_high = f16tof32(((v >> 16u) & 65535u));
+  float16_t v_1 = float16_t(t_low);
+  return vector<float16_t, 2>(v_1, float16_t(t_high));
+}
+
+matrix<float16_t, 4, 2> v_2(uint start_byte_offset) {
+  uint4 v_3 = a[(start_byte_offset / 16u)];
+  vector<float16_t, 2> v_4 = tint_bitcast_to_f16((((((start_byte_offset % 16u) / 4u) == 2u)) ? (v_3.z) : (v_3.x)));
+  uint4 v_5 = a[((4u + start_byte_offset) / 16u)];
+  vector<float16_t, 2> v_6 = tint_bitcast_to_f16(((((((4u + start_byte_offset) % 16u) / 4u) == 2u)) ? (v_5.z) : (v_5.x)));
+  uint4 v_7 = a[((8u + start_byte_offset) / 16u)];
+  vector<float16_t, 2> v_8 = tint_bitcast_to_f16(((((((8u + start_byte_offset) % 16u) / 4u) == 2u)) ? (v_7.z) : (v_7.x)));
+  uint4 v_9 = a[((12u + start_byte_offset) / 16u)];
+  return matrix<float16_t, 4, 2>(v_4, v_6, v_8, tint_bitcast_to_f16(((((((12u + start_byte_offset) % 16u) / 4u) == 2u)) ? (v_9.z) : (v_9.x))));
+}
+
+typedef matrix<float16_t, 4, 2> ary_ret[4];
+ary_ret v_10(uint start_byte_offset) {
+  matrix<float16_t, 4, 2> a[4] = (matrix<float16_t, 4, 2>[4])0;
+  {
+    uint v_11 = 0u;
+    v_11 = 0u;
+    while(true) {
+      uint v_12 = v_11;
+      if ((v_12 >= 4u)) {
+        break;
+      }
+      a[v_12] = v_2((start_byte_offset + (v_12 * 16u)));
+      {
+        v_11 = (v_12 + 1u);
+      }
+      continue;
+    }
+  }
+  matrix<float16_t, 4, 2> v_13[4] = a;
+  return v_13;
+}
+
+[numthreads(1, 1, 1)]
+void f() {
+  matrix<float16_t, 4, 2> v_14[4] = v_10(0u);
+  matrix<float16_t, 4, 2> l_a_i = v_2(36u);
+  vector<float16_t, 2> l_a_i_i = tint_bitcast_to_f16(a[2u].x);
+  matrix<float16_t, 4, 2> l_a[4] = v_14;
+  s.Store<float16_t>(0u, (((float16_t(f16tof32(a[2u].y)) + l_a[0][0][0u]) + l_a_i[0][0u]) + l_a_i_i[0u]));
+}
+
+FXC validation failure:
+c:\src\dawn\Shader@0x000001BBA7187130(6,8-16): error X3000: syntax error: unexpected token 'float16_t'
+
diff --git a/test/tint/buffer/uniform/std140/array/mat4x2_f16/to_builtin.wgsl.expected.ir.dxc.hlsl b/test/tint/buffer/uniform/std140/array/mat4x2_f16/to_builtin.wgsl.expected.ir.dxc.hlsl
index 3f437dc..0beaada 100644
--- a/test/tint/buffer/uniform/std140/array/mat4x2_f16/to_builtin.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/buffer/uniform/std140/array/mat4x2_f16/to_builtin.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,33 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Access
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+cbuffer cbuffer_u : register(b0) {
+  uint4 u[4];
+};
+RWByteAddressBuffer s : register(u1);
+vector<float16_t, 2> tint_bitcast_to_f16(uint src) {
+  uint v = src;
+  float t_low = f16tof32((v & 65535u));
+  float t_high = f16tof32(((v >> 16u) & 65535u));
+  float16_t v_1 = float16_t(t_low);
+  return vector<float16_t, 2>(v_1, float16_t(t_high));
+}
+
+matrix<float16_t, 4, 2> v_2(uint start_byte_offset) {
+  uint4 v_3 = u[(start_byte_offset / 16u)];
+  vector<float16_t, 2> v_4 = tint_bitcast_to_f16((((((start_byte_offset % 16u) / 4u) == 2u)) ? (v_3.z) : (v_3.x)));
+  uint4 v_5 = u[((4u + start_byte_offset) / 16u)];
+  vector<float16_t, 2> v_6 = tint_bitcast_to_f16(((((((4u + start_byte_offset) % 16u) / 4u) == 2u)) ? (v_5.z) : (v_5.x)));
+  uint4 v_7 = u[((8u + start_byte_offset) / 16u)];
+  vector<float16_t, 2> v_8 = tint_bitcast_to_f16(((((((8u + start_byte_offset) % 16u) / 4u) == 2u)) ? (v_7.z) : (v_7.x)));
+  uint4 v_9 = u[((12u + start_byte_offset) / 16u)];
+  return matrix<float16_t, 4, 2>(v_4, v_6, v_8, tint_bitcast_to_f16(((((((12u + start_byte_offset) % 16u) / 4u) == 2u)) ? (v_9.z) : (v_9.x))));
+}
+
+[numthreads(1, 1, 1)]
+void f() {
+  matrix<float16_t, 2, 4> t = transpose(v_2(32u));
+  float16_t l = length(tint_bitcast_to_f16(u[0u].x).yx);
+  float16_t a = abs(tint_bitcast_to_f16(u[0u].x).yx[0u]);
+  float16_t v_10 = (t[0][0u] + float16_t(l));
+  s.Store<float16_t>(0u, (v_10 + float16_t(a)));
+}
+
diff --git a/test/tint/buffer/uniform/std140/array/mat4x2_f16/to_builtin.wgsl.expected.ir.fxc.hlsl b/test/tint/buffer/uniform/std140/array/mat4x2_f16/to_builtin.wgsl.expected.ir.fxc.hlsl
index 3f437dc..bf41892 100644
--- a/test/tint/buffer/uniform/std140/array/mat4x2_f16/to_builtin.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/buffer/uniform/std140/array/mat4x2_f16/to_builtin.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,38 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Access
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+
+cbuffer cbuffer_u : register(b0) {
+  uint4 u[4];
+};
+RWByteAddressBuffer s : register(u1);
+vector<float16_t, 2> tint_bitcast_to_f16(uint src) {
+  uint v = src;
+  float t_low = f16tof32((v & 65535u));
+  float t_high = f16tof32(((v >> 16u) & 65535u));
+  float16_t v_1 = float16_t(t_low);
+  return vector<float16_t, 2>(v_1, float16_t(t_high));
+}
+
+matrix<float16_t, 4, 2> v_2(uint start_byte_offset) {
+  uint4 v_3 = u[(start_byte_offset / 16u)];
+  vector<float16_t, 2> v_4 = tint_bitcast_to_f16((((((start_byte_offset % 16u) / 4u) == 2u)) ? (v_3.z) : (v_3.x)));
+  uint4 v_5 = u[((4u + start_byte_offset) / 16u)];
+  vector<float16_t, 2> v_6 = tint_bitcast_to_f16(((((((4u + start_byte_offset) % 16u) / 4u) == 2u)) ? (v_5.z) : (v_5.x)));
+  uint4 v_7 = u[((8u + start_byte_offset) / 16u)];
+  vector<float16_t, 2> v_8 = tint_bitcast_to_f16(((((((8u + start_byte_offset) % 16u) / 4u) == 2u)) ? (v_7.z) : (v_7.x)));
+  uint4 v_9 = u[((12u + start_byte_offset) / 16u)];
+  return matrix<float16_t, 4, 2>(v_4, v_6, v_8, tint_bitcast_to_f16(((((((12u + start_byte_offset) % 16u) / 4u) == 2u)) ? (v_9.z) : (v_9.x))));
+}
+
+[numthreads(1, 1, 1)]
+void f() {
+  matrix<float16_t, 2, 4> t = transpose(v_2(32u));
+  float16_t l = length(tint_bitcast_to_f16(u[0u].x).yx);
+  float16_t a = abs(tint_bitcast_to_f16(u[0u].x).yx[0u]);
+  float16_t v_10 = (t[0][0u] + float16_t(l));
+  s.Store<float16_t>(0u, (v_10 + float16_t(a)));
+}
+
+FXC validation failure:
+c:\src\dawn\Shader@0x000001DC430F3EC0(6,8-16): error X3000: syntax error: unexpected token 'float16_t'
+
diff --git a/test/tint/buffer/uniform/std140/array/mat4x2_f16/to_fn.wgsl.expected.ir.dxc.hlsl b/test/tint/buffer/uniform/std140/array/mat4x2_f16/to_fn.wgsl.expected.ir.dxc.hlsl
index 3f437dc..09b54b6 100644
--- a/test/tint/buffer/uniform/std140/array/mat4x2_f16/to_fn.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/buffer/uniform/std140/array/mat4x2_f16/to_fn.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,71 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Access
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+cbuffer cbuffer_u : register(b0) {
+  uint4 u[4];
+};
+RWByteAddressBuffer s : register(u1);
+float16_t a(matrix<float16_t, 4, 2> a_1[4]) {
+  return a_1[0][0][0u];
+}
+
+float16_t b(matrix<float16_t, 4, 2> m) {
+  return m[0][0u];
+}
+
+float16_t c(vector<float16_t, 2> v) {
+  return v[0u];
+}
+
+float16_t d(float16_t f) {
+  return f;
+}
+
+vector<float16_t, 2> tint_bitcast_to_f16(uint src) {
+  uint v = src;
+  float t_low = f16tof32((v & 65535u));
+  float t_high = f16tof32(((v >> 16u) & 65535u));
+  float16_t v_1 = float16_t(t_low);
+  return vector<float16_t, 2>(v_1, float16_t(t_high));
+}
+
+matrix<float16_t, 4, 2> v_2(uint start_byte_offset) {
+  uint4 v_3 = u[(start_byte_offset / 16u)];
+  vector<float16_t, 2> v_4 = tint_bitcast_to_f16((((((start_byte_offset % 16u) / 4u) == 2u)) ? (v_3.z) : (v_3.x)));
+  uint4 v_5 = u[((4u + start_byte_offset) / 16u)];
+  vector<float16_t, 2> v_6 = tint_bitcast_to_f16(((((((4u + start_byte_offset) % 16u) / 4u) == 2u)) ? (v_5.z) : (v_5.x)));
+  uint4 v_7 = u[((8u + start_byte_offset) / 16u)];
+  vector<float16_t, 2> v_8 = tint_bitcast_to_f16(((((((8u + start_byte_offset) % 16u) / 4u) == 2u)) ? (v_7.z) : (v_7.x)));
+  uint4 v_9 = u[((12u + start_byte_offset) / 16u)];
+  return matrix<float16_t, 4, 2>(v_4, v_6, v_8, tint_bitcast_to_f16(((((((12u + start_byte_offset) % 16u) / 4u) == 2u)) ? (v_9.z) : (v_9.x))));
+}
+
+typedef matrix<float16_t, 4, 2> ary_ret[4];
+ary_ret v_10(uint start_byte_offset) {
+  matrix<float16_t, 4, 2> a[4] = (matrix<float16_t, 4, 2>[4])0;
+  {
+    uint v_11 = 0u;
+    v_11 = 0u;
+    while(true) {
+      uint v_12 = v_11;
+      if ((v_12 >= 4u)) {
+        break;
+      }
+      a[v_12] = v_2((start_byte_offset + (v_12 * 16u)));
+      {
+        v_11 = (v_12 + 1u);
+      }
+      continue;
+    }
+  }
+  matrix<float16_t, 4, 2> v_13[4] = a;
+  return v_13;
+}
+
+[numthreads(1, 1, 1)]
+void f() {
+  matrix<float16_t, 4, 2> v_14[4] = v_10(0u);
+  float16_t v_15 = a(v_14);
+  float16_t v_16 = (v_15 + b(v_2(16u)));
+  float16_t v_17 = (v_16 + c(tint_bitcast_to_f16(u[1u].x).yx));
+  s.Store<float16_t>(0u, (v_17 + d(tint_bitcast_to_f16(u[1u].x).yx[0u])));
+}
+
diff --git a/test/tint/buffer/uniform/std140/array/mat4x2_f16/to_fn.wgsl.expected.ir.fxc.hlsl b/test/tint/buffer/uniform/std140/array/mat4x2_f16/to_fn.wgsl.expected.ir.fxc.hlsl
index 3f437dc..1e91c93 100644
--- a/test/tint/buffer/uniform/std140/array/mat4x2_f16/to_fn.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/buffer/uniform/std140/array/mat4x2_f16/to_fn.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,76 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Access
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+
+cbuffer cbuffer_u : register(b0) {
+  uint4 u[4];
+};
+RWByteAddressBuffer s : register(u1);
+float16_t a(matrix<float16_t, 4, 2> a_1[4]) {
+  return a_1[0][0][0u];
+}
+
+float16_t b(matrix<float16_t, 4, 2> m) {
+  return m[0][0u];
+}
+
+float16_t c(vector<float16_t, 2> v) {
+  return v[0u];
+}
+
+float16_t d(float16_t f) {
+  return f;
+}
+
+vector<float16_t, 2> tint_bitcast_to_f16(uint src) {
+  uint v = src;
+  float t_low = f16tof32((v & 65535u));
+  float t_high = f16tof32(((v >> 16u) & 65535u));
+  float16_t v_1 = float16_t(t_low);
+  return vector<float16_t, 2>(v_1, float16_t(t_high));
+}
+
+matrix<float16_t, 4, 2> v_2(uint start_byte_offset) {
+  uint4 v_3 = u[(start_byte_offset / 16u)];
+  vector<float16_t, 2> v_4 = tint_bitcast_to_f16((((((start_byte_offset % 16u) / 4u) == 2u)) ? (v_3.z) : (v_3.x)));
+  uint4 v_5 = u[((4u + start_byte_offset) / 16u)];
+  vector<float16_t, 2> v_6 = tint_bitcast_to_f16(((((((4u + start_byte_offset) % 16u) / 4u) == 2u)) ? (v_5.z) : (v_5.x)));
+  uint4 v_7 = u[((8u + start_byte_offset) / 16u)];
+  vector<float16_t, 2> v_8 = tint_bitcast_to_f16(((((((8u + start_byte_offset) % 16u) / 4u) == 2u)) ? (v_7.z) : (v_7.x)));
+  uint4 v_9 = u[((12u + start_byte_offset) / 16u)];
+  return matrix<float16_t, 4, 2>(v_4, v_6, v_8, tint_bitcast_to_f16(((((((12u + start_byte_offset) % 16u) / 4u) == 2u)) ? (v_9.z) : (v_9.x))));
+}
+
+typedef matrix<float16_t, 4, 2> ary_ret[4];
+ary_ret v_10(uint start_byte_offset) {
+  matrix<float16_t, 4, 2> a[4] = (matrix<float16_t, 4, 2>[4])0;
+  {
+    uint v_11 = 0u;
+    v_11 = 0u;
+    while(true) {
+      uint v_12 = v_11;
+      if ((v_12 >= 4u)) {
+        break;
+      }
+      a[v_12] = v_2((start_byte_offset + (v_12 * 16u)));
+      {
+        v_11 = (v_12 + 1u);
+      }
+      continue;
+    }
+  }
+  matrix<float16_t, 4, 2> v_13[4] = a;
+  return v_13;
+}
+
+[numthreads(1, 1, 1)]
+void f() {
+  matrix<float16_t, 4, 2> v_14[4] = v_10(0u);
+  float16_t v_15 = a(v_14);
+  float16_t v_16 = (v_15 + b(v_2(16u)));
+  float16_t v_17 = (v_16 + c(tint_bitcast_to_f16(u[1u].x).yx));
+  s.Store<float16_t>(0u, (v_17 + d(tint_bitcast_to_f16(u[1u].x).yx[0u])));
+}
+
+FXC validation failure:
+c:\src\dawn\Shader@0x0000026560376EE0(6,1-9): error X3000: unrecognized identifier 'float16_t'
+
diff --git a/test/tint/buffer/uniform/std140/array/mat4x2_f16/to_private.wgsl.expected.ir.dxc.hlsl b/test/tint/buffer/uniform/std140/array/mat4x2_f16/to_private.wgsl.expected.ir.dxc.hlsl
index 3f437dc..2e4affd 100644
--- a/test/tint/buffer/uniform/std140/array/mat4x2_f16/to_private.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/buffer/uniform/std140/array/mat4x2_f16/to_private.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,57 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Access
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+cbuffer cbuffer_u : register(b0) {
+  uint4 u[4];
+};
+RWByteAddressBuffer s : register(u1);
+static matrix<float16_t, 4, 2> p[4] = (matrix<float16_t, 4, 2>[4])0;
+vector<float16_t, 2> tint_bitcast_to_f16(uint src) {
+  uint v = src;
+  float t_low = f16tof32((v & 65535u));
+  float t_high = f16tof32(((v >> 16u) & 65535u));
+  float16_t v_1 = float16_t(t_low);
+  return vector<float16_t, 2>(v_1, float16_t(t_high));
+}
+
+matrix<float16_t, 4, 2> v_2(uint start_byte_offset) {
+  uint4 v_3 = u[(start_byte_offset / 16u)];
+  vector<float16_t, 2> v_4 = tint_bitcast_to_f16((((((start_byte_offset % 16u) / 4u) == 2u)) ? (v_3.z) : (v_3.x)));
+  uint4 v_5 = u[((4u + start_byte_offset) / 16u)];
+  vector<float16_t, 2> v_6 = tint_bitcast_to_f16(((((((4u + start_byte_offset) % 16u) / 4u) == 2u)) ? (v_5.z) : (v_5.x)));
+  uint4 v_7 = u[((8u + start_byte_offset) / 16u)];
+  vector<float16_t, 2> v_8 = tint_bitcast_to_f16(((((((8u + start_byte_offset) % 16u) / 4u) == 2u)) ? (v_7.z) : (v_7.x)));
+  uint4 v_9 = u[((12u + start_byte_offset) / 16u)];
+  return matrix<float16_t, 4, 2>(v_4, v_6, v_8, tint_bitcast_to_f16(((((((12u + start_byte_offset) % 16u) / 4u) == 2u)) ? (v_9.z) : (v_9.x))));
+}
+
+typedef matrix<float16_t, 4, 2> ary_ret[4];
+ary_ret v_10(uint start_byte_offset) {
+  matrix<float16_t, 4, 2> a[4] = (matrix<float16_t, 4, 2>[4])0;
+  {
+    uint v_11 = 0u;
+    v_11 = 0u;
+    while(true) {
+      uint v_12 = v_11;
+      if ((v_12 >= 4u)) {
+        break;
+      }
+      a[v_12] = v_2((start_byte_offset + (v_12 * 16u)));
+      {
+        v_11 = (v_12 + 1u);
+      }
+      continue;
+    }
+  }
+  matrix<float16_t, 4, 2> v_13[4] = a;
+  return v_13;
+}
+
+[numthreads(1, 1, 1)]
+void f() {
+  matrix<float16_t, 4, 2> v_14[4] = v_10(0u);
+  p = v_14;
+  p[1] = v_2(32u);
+  p[1][0] = tint_bitcast_to_f16(u[0u].x).yx;
+  p[1][0][0u] = float16_t(f16tof32(u[0u].y));
+  s.Store<float16_t>(0u, p[1][0].x);
+}
+
diff --git a/test/tint/buffer/uniform/std140/array/mat4x2_f16/to_private.wgsl.expected.ir.fxc.hlsl b/test/tint/buffer/uniform/std140/array/mat4x2_f16/to_private.wgsl.expected.ir.fxc.hlsl
index 3f437dc..17011fc 100644
--- a/test/tint/buffer/uniform/std140/array/mat4x2_f16/to_private.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/buffer/uniform/std140/array/mat4x2_f16/to_private.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,62 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Access
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+
+cbuffer cbuffer_u : register(b0) {
+  uint4 u[4];
+};
+RWByteAddressBuffer s : register(u1);
+static matrix<float16_t, 4, 2> p[4] = (matrix<float16_t, 4, 2>[4])0;
+vector<float16_t, 2> tint_bitcast_to_f16(uint src) {
+  uint v = src;
+  float t_low = f16tof32((v & 65535u));
+  float t_high = f16tof32(((v >> 16u) & 65535u));
+  float16_t v_1 = float16_t(t_low);
+  return vector<float16_t, 2>(v_1, float16_t(t_high));
+}
+
+matrix<float16_t, 4, 2> v_2(uint start_byte_offset) {
+  uint4 v_3 = u[(start_byte_offset / 16u)];
+  vector<float16_t, 2> v_4 = tint_bitcast_to_f16((((((start_byte_offset % 16u) / 4u) == 2u)) ? (v_3.z) : (v_3.x)));
+  uint4 v_5 = u[((4u + start_byte_offset) / 16u)];
+  vector<float16_t, 2> v_6 = tint_bitcast_to_f16(((((((4u + start_byte_offset) % 16u) / 4u) == 2u)) ? (v_5.z) : (v_5.x)));
+  uint4 v_7 = u[((8u + start_byte_offset) / 16u)];
+  vector<float16_t, 2> v_8 = tint_bitcast_to_f16(((((((8u + start_byte_offset) % 16u) / 4u) == 2u)) ? (v_7.z) : (v_7.x)));
+  uint4 v_9 = u[((12u + start_byte_offset) / 16u)];
+  return matrix<float16_t, 4, 2>(v_4, v_6, v_8, tint_bitcast_to_f16(((((((12u + start_byte_offset) % 16u) / 4u) == 2u)) ? (v_9.z) : (v_9.x))));
+}
+
+typedef matrix<float16_t, 4, 2> ary_ret[4];
+ary_ret v_10(uint start_byte_offset) {
+  matrix<float16_t, 4, 2> a[4] = (matrix<float16_t, 4, 2>[4])0;
+  {
+    uint v_11 = 0u;
+    v_11 = 0u;
+    while(true) {
+      uint v_12 = v_11;
+      if ((v_12 >= 4u)) {
+        break;
+      }
+      a[v_12] = v_2((start_byte_offset + (v_12 * 16u)));
+      {
+        v_11 = (v_12 + 1u);
+      }
+      continue;
+    }
+  }
+  matrix<float16_t, 4, 2> v_13[4] = a;
+  return v_13;
+}
+
+[numthreads(1, 1, 1)]
+void f() {
+  matrix<float16_t, 4, 2> v_14[4] = v_10(0u);
+  p = v_14;
+  p[1] = v_2(32u);
+  p[1][0] = tint_bitcast_to_f16(u[0u].x).yx;
+  p[1][0][0u] = float16_t(f16tof32(u[0u].y));
+  s.Store<float16_t>(0u, p[1][0].x);
+}
+
+FXC validation failure:
+c:\src\dawn\Shader@0x00000247745C5020(6,15-23): error X3000: syntax error: unexpected token 'float16_t'
+
diff --git a/test/tint/buffer/uniform/std140/array/mat4x2_f16/to_storage.wgsl.expected.ir.dxc.hlsl b/test/tint/buffer/uniform/std140/array/mat4x2_f16/to_storage.wgsl.expected.ir.dxc.hlsl
index 3f437dc..6c8f5fd 100644
--- a/test/tint/buffer/uniform/std140/array/mat4x2_f16/to_storage.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/buffer/uniform/std140/array/mat4x2_f16/to_storage.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,80 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Access
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+cbuffer cbuffer_u : register(b0) {
+  uint4 u[4];
+};
+RWByteAddressBuffer s : register(u1);
+vector<float16_t, 2> tint_bitcast_to_f16(uint src) {
+  uint v = src;
+  float t_low = f16tof32((v & 65535u));
+  float t_high = f16tof32(((v >> 16u) & 65535u));
+  float16_t v_1 = float16_t(t_low);
+  return vector<float16_t, 2>(v_1, float16_t(t_high));
+}
+
+void v_2(uint offset, matrix<float16_t, 4, 2> obj) {
+  s.Store<vector<float16_t, 2> >((offset + 0u), obj[0u]);
+  s.Store<vector<float16_t, 2> >((offset + 4u), obj[1u]);
+  s.Store<vector<float16_t, 2> >((offset + 8u), obj[2u]);
+  s.Store<vector<float16_t, 2> >((offset + 12u), obj[3u]);
+}
+
+matrix<float16_t, 4, 2> v_3(uint start_byte_offset) {
+  uint4 v_4 = u[(start_byte_offset / 16u)];
+  vector<float16_t, 2> v_5 = tint_bitcast_to_f16((((((start_byte_offset % 16u) / 4u) == 2u)) ? (v_4.z) : (v_4.x)));
+  uint4 v_6 = u[((4u + start_byte_offset) / 16u)];
+  vector<float16_t, 2> v_7 = tint_bitcast_to_f16(((((((4u + start_byte_offset) % 16u) / 4u) == 2u)) ? (v_6.z) : (v_6.x)));
+  uint4 v_8 = u[((8u + start_byte_offset) / 16u)];
+  vector<float16_t, 2> v_9 = tint_bitcast_to_f16(((((((8u + start_byte_offset) % 16u) / 4u) == 2u)) ? (v_8.z) : (v_8.x)));
+  uint4 v_10 = u[((12u + start_byte_offset) / 16u)];
+  return matrix<float16_t, 4, 2>(v_5, v_7, v_9, tint_bitcast_to_f16(((((((12u + start_byte_offset) % 16u) / 4u) == 2u)) ? (v_10.z) : (v_10.x))));
+}
+
+void v_11(uint offset, matrix<float16_t, 4, 2> obj[4]) {
+  {
+    uint v_12 = 0u;
+    v_12 = 0u;
+    while(true) {
+      uint v_13 = v_12;
+      if ((v_13 >= 4u)) {
+        break;
+      }
+      v_2((offset + (v_13 * 16u)), obj[v_13]);
+      {
+        v_12 = (v_13 + 1u);
+      }
+      continue;
+    }
+  }
+}
+
+typedef matrix<float16_t, 4, 2> ary_ret[4];
+ary_ret v_14(uint start_byte_offset) {
+  matrix<float16_t, 4, 2> a[4] = (matrix<float16_t, 4, 2>[4])0;
+  {
+    uint v_15 = 0u;
+    v_15 = 0u;
+    while(true) {
+      uint v_16 = v_15;
+      if ((v_16 >= 4u)) {
+        break;
+      }
+      a[v_16] = v_3((start_byte_offset + (v_16 * 16u)));
+      {
+        v_15 = (v_16 + 1u);
+      }
+      continue;
+    }
+  }
+  matrix<float16_t, 4, 2> v_17[4] = a;
+  return v_17;
+}
+
+[numthreads(1, 1, 1)]
+void f() {
+  matrix<float16_t, 4, 2> v_18[4] = v_14(0u);
+  v_11(0u, v_18);
+  v_2(16u, v_3(32u));
+  s.Store<vector<float16_t, 2> >(16u, tint_bitcast_to_f16(u[0u].x).yx);
+  s.Store<float16_t>(16u, float16_t(f16tof32(u[0u].y)));
+}
+
diff --git a/test/tint/buffer/uniform/std140/array/mat4x2_f16/to_storage.wgsl.expected.ir.fxc.hlsl b/test/tint/buffer/uniform/std140/array/mat4x2_f16/to_storage.wgsl.expected.ir.fxc.hlsl
index 3f437dc..8b023e7 100644
--- a/test/tint/buffer/uniform/std140/array/mat4x2_f16/to_storage.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/buffer/uniform/std140/array/mat4x2_f16/to_storage.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,85 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Access
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+
+cbuffer cbuffer_u : register(b0) {
+  uint4 u[4];
+};
+RWByteAddressBuffer s : register(u1);
+vector<float16_t, 2> tint_bitcast_to_f16(uint src) {
+  uint v = src;
+  float t_low = f16tof32((v & 65535u));
+  float t_high = f16tof32(((v >> 16u) & 65535u));
+  float16_t v_1 = float16_t(t_low);
+  return vector<float16_t, 2>(v_1, float16_t(t_high));
+}
+
+void v_2(uint offset, matrix<float16_t, 4, 2> obj) {
+  s.Store<vector<float16_t, 2> >((offset + 0u), obj[0u]);
+  s.Store<vector<float16_t, 2> >((offset + 4u), obj[1u]);
+  s.Store<vector<float16_t, 2> >((offset + 8u), obj[2u]);
+  s.Store<vector<float16_t, 2> >((offset + 12u), obj[3u]);
+}
+
+matrix<float16_t, 4, 2> v_3(uint start_byte_offset) {
+  uint4 v_4 = u[(start_byte_offset / 16u)];
+  vector<float16_t, 2> v_5 = tint_bitcast_to_f16((((((start_byte_offset % 16u) / 4u) == 2u)) ? (v_4.z) : (v_4.x)));
+  uint4 v_6 = u[((4u + start_byte_offset) / 16u)];
+  vector<float16_t, 2> v_7 = tint_bitcast_to_f16(((((((4u + start_byte_offset) % 16u) / 4u) == 2u)) ? (v_6.z) : (v_6.x)));
+  uint4 v_8 = u[((8u + start_byte_offset) / 16u)];
+  vector<float16_t, 2> v_9 = tint_bitcast_to_f16(((((((8u + start_byte_offset) % 16u) / 4u) == 2u)) ? (v_8.z) : (v_8.x)));
+  uint4 v_10 = u[((12u + start_byte_offset) / 16u)];
+  return matrix<float16_t, 4, 2>(v_5, v_7, v_9, tint_bitcast_to_f16(((((((12u + start_byte_offset) % 16u) / 4u) == 2u)) ? (v_10.z) : (v_10.x))));
+}
+
+void v_11(uint offset, matrix<float16_t, 4, 2> obj[4]) {
+  {
+    uint v_12 = 0u;
+    v_12 = 0u;
+    while(true) {
+      uint v_13 = v_12;
+      if ((v_13 >= 4u)) {
+        break;
+      }
+      v_2((offset + (v_13 * 16u)), obj[v_13]);
+      {
+        v_12 = (v_13 + 1u);
+      }
+      continue;
+    }
+  }
+}
+
+typedef matrix<float16_t, 4, 2> ary_ret[4];
+ary_ret v_14(uint start_byte_offset) {
+  matrix<float16_t, 4, 2> a[4] = (matrix<float16_t, 4, 2>[4])0;
+  {
+    uint v_15 = 0u;
+    v_15 = 0u;
+    while(true) {
+      uint v_16 = v_15;
+      if ((v_16 >= 4u)) {
+        break;
+      }
+      a[v_16] = v_3((start_byte_offset + (v_16 * 16u)));
+      {
+        v_15 = (v_16 + 1u);
+      }
+      continue;
+    }
+  }
+  matrix<float16_t, 4, 2> v_17[4] = a;
+  return v_17;
+}
+
+[numthreads(1, 1, 1)]
+void f() {
+  matrix<float16_t, 4, 2> v_18[4] = v_14(0u);
+  v_11(0u, v_18);
+  v_2(16u, v_3(32u));
+  s.Store<vector<float16_t, 2> >(16u, tint_bitcast_to_f16(u[0u].x).yx);
+  s.Store<float16_t>(16u, float16_t(f16tof32(u[0u].y)));
+}
+
+FXC validation failure:
+c:\src\dawn\Shader@0x000002B7C324F4A0(6,8-16): error X3000: syntax error: unexpected token 'float16_t'
+
diff --git a/test/tint/buffer/uniform/std140/array/mat4x2_f16/to_workgroup.wgsl.expected.ir.dxc.hlsl b/test/tint/buffer/uniform/std140/array/mat4x2_f16/to_workgroup.wgsl.expected.ir.dxc.hlsl
index 3f437dc..048709c 100644
--- a/test/tint/buffer/uniform/std140/array/mat4x2_f16/to_workgroup.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/buffer/uniform/std140/array/mat4x2_f16/to_workgroup.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,79 @@
-SKIP: FAILED
+struct f_inputs {
+  uint tint_local_index : SV_GroupIndex;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Access
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+
+cbuffer cbuffer_u : register(b0) {
+  uint4 u[4];
+};
+groupshared matrix<float16_t, 4, 2> w[4];
+vector<float16_t, 2> tint_bitcast_to_f16(uint src) {
+  uint v = src;
+  float t_low = f16tof32((v & 65535u));
+  float t_high = f16tof32(((v >> 16u) & 65535u));
+  float16_t v_1 = float16_t(t_low);
+  return vector<float16_t, 2>(v_1, float16_t(t_high));
+}
+
+matrix<float16_t, 4, 2> v_2(uint start_byte_offset) {
+  uint4 v_3 = u[(start_byte_offset / 16u)];
+  vector<float16_t, 2> v_4 = tint_bitcast_to_f16((((((start_byte_offset % 16u) / 4u) == 2u)) ? (v_3.z) : (v_3.x)));
+  uint4 v_5 = u[((4u + start_byte_offset) / 16u)];
+  vector<float16_t, 2> v_6 = tint_bitcast_to_f16(((((((4u + start_byte_offset) % 16u) / 4u) == 2u)) ? (v_5.z) : (v_5.x)));
+  uint4 v_7 = u[((8u + start_byte_offset) / 16u)];
+  vector<float16_t, 2> v_8 = tint_bitcast_to_f16(((((((8u + start_byte_offset) % 16u) / 4u) == 2u)) ? (v_7.z) : (v_7.x)));
+  uint4 v_9 = u[((12u + start_byte_offset) / 16u)];
+  return matrix<float16_t, 4, 2>(v_4, v_6, v_8, tint_bitcast_to_f16(((((((12u + start_byte_offset) % 16u) / 4u) == 2u)) ? (v_9.z) : (v_9.x))));
+}
+
+typedef matrix<float16_t, 4, 2> ary_ret[4];
+ary_ret v_10(uint start_byte_offset) {
+  matrix<float16_t, 4, 2> a[4] = (matrix<float16_t, 4, 2>[4])0;
+  {
+    uint v_11 = 0u;
+    v_11 = 0u;
+    while(true) {
+      uint v_12 = v_11;
+      if ((v_12 >= 4u)) {
+        break;
+      }
+      a[v_12] = v_2((start_byte_offset + (v_12 * 16u)));
+      {
+        v_11 = (v_12 + 1u);
+      }
+      continue;
+    }
+  }
+  matrix<float16_t, 4, 2> v_13[4] = a;
+  return v_13;
+}
+
+void f_inner(uint tint_local_index) {
+  {
+    uint v_14 = 0u;
+    v_14 = tint_local_index;
+    while(true) {
+      uint v_15 = v_14;
+      if ((v_15 >= 4u)) {
+        break;
+      }
+      w[v_15] = matrix<float16_t, 4, 2>((float16_t(0.0h)).xx, (float16_t(0.0h)).xx, (float16_t(0.0h)).xx, (float16_t(0.0h)).xx);
+      {
+        v_14 = (v_15 + 1u);
+      }
+      continue;
+    }
+  }
+  GroupMemoryBarrierWithGroupSync();
+  matrix<float16_t, 4, 2> v_16[4] = v_10(0u);
+  w = v_16;
+  w[1] = v_2(32u);
+  w[1][0] = tint_bitcast_to_f16(u[0u].x).yx;
+  w[1][0][0u] = float16_t(f16tof32(u[0u].y));
+}
+
+[numthreads(1, 1, 1)]
+void f(f_inputs inputs) {
+  f_inner(inputs.tint_local_index);
+}
+
diff --git a/test/tint/buffer/uniform/std140/array/mat4x2_f16/to_workgroup.wgsl.expected.ir.fxc.hlsl b/test/tint/buffer/uniform/std140/array/mat4x2_f16/to_workgroup.wgsl.expected.ir.fxc.hlsl
index 3f437dc..2217998 100644
--- a/test/tint/buffer/uniform/std140/array/mat4x2_f16/to_workgroup.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/buffer/uniform/std140/array/mat4x2_f16/to_workgroup.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,84 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Access
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct f_inputs {
+  uint tint_local_index : SV_GroupIndex;
+};
+
+
+cbuffer cbuffer_u : register(b0) {
+  uint4 u[4];
+};
+groupshared matrix<float16_t, 4, 2> w[4];
+vector<float16_t, 2> tint_bitcast_to_f16(uint src) {
+  uint v = src;
+  float t_low = f16tof32((v & 65535u));
+  float t_high = f16tof32(((v >> 16u) & 65535u));
+  float16_t v_1 = float16_t(t_low);
+  return vector<float16_t, 2>(v_1, float16_t(t_high));
+}
+
+matrix<float16_t, 4, 2> v_2(uint start_byte_offset) {
+  uint4 v_3 = u[(start_byte_offset / 16u)];
+  vector<float16_t, 2> v_4 = tint_bitcast_to_f16((((((start_byte_offset % 16u) / 4u) == 2u)) ? (v_3.z) : (v_3.x)));
+  uint4 v_5 = u[((4u + start_byte_offset) / 16u)];
+  vector<float16_t, 2> v_6 = tint_bitcast_to_f16(((((((4u + start_byte_offset) % 16u) / 4u) == 2u)) ? (v_5.z) : (v_5.x)));
+  uint4 v_7 = u[((8u + start_byte_offset) / 16u)];
+  vector<float16_t, 2> v_8 = tint_bitcast_to_f16(((((((8u + start_byte_offset) % 16u) / 4u) == 2u)) ? (v_7.z) : (v_7.x)));
+  uint4 v_9 = u[((12u + start_byte_offset) / 16u)];
+  return matrix<float16_t, 4, 2>(v_4, v_6, v_8, tint_bitcast_to_f16(((((((12u + start_byte_offset) % 16u) / 4u) == 2u)) ? (v_9.z) : (v_9.x))));
+}
+
+typedef matrix<float16_t, 4, 2> ary_ret[4];
+ary_ret v_10(uint start_byte_offset) {
+  matrix<float16_t, 4, 2> a[4] = (matrix<float16_t, 4, 2>[4])0;
+  {
+    uint v_11 = 0u;
+    v_11 = 0u;
+    while(true) {
+      uint v_12 = v_11;
+      if ((v_12 >= 4u)) {
+        break;
+      }
+      a[v_12] = v_2((start_byte_offset + (v_12 * 16u)));
+      {
+        v_11 = (v_12 + 1u);
+      }
+      continue;
+    }
+  }
+  matrix<float16_t, 4, 2> v_13[4] = a;
+  return v_13;
+}
+
+void f_inner(uint tint_local_index) {
+  {
+    uint v_14 = 0u;
+    v_14 = tint_local_index;
+    while(true) {
+      uint v_15 = v_14;
+      if ((v_15 >= 4u)) {
+        break;
+      }
+      w[v_15] = matrix<float16_t, 4, 2>((float16_t(0.0h)).xx, (float16_t(0.0h)).xx, (float16_t(0.0h)).xx, (float16_t(0.0h)).xx);
+      {
+        v_14 = (v_15 + 1u);
+      }
+      continue;
+    }
+  }
+  GroupMemoryBarrierWithGroupSync();
+  matrix<float16_t, 4, 2> v_16[4] = v_10(0u);
+  w = v_16;
+  w[1] = v_2(32u);
+  w[1][0] = tint_bitcast_to_f16(u[0u].x).yx;
+  w[1][0][0u] = float16_t(f16tof32(u[0u].y));
+}
+
+[numthreads(1, 1, 1)]
+void f(f_inputs inputs) {
+  f_inner(inputs.tint_local_index);
+}
+
+FXC validation failure:
+c:\src\dawn\Shader@0x0000027F477E1D00(9,20-28): error X3000: syntax error: unexpected token 'float16_t'
+
diff --git a/test/tint/buffer/uniform/std140/array/mat4x2_f32/dynamic_index_via_ptr.wgsl.expected.ir.dxc.hlsl b/test/tint/buffer/uniform/std140/array/mat4x2_f32/dynamic_index_via_ptr.wgsl.expected.ir.dxc.hlsl
index 3f437dc..e3da59c 100644
--- a/test/tint/buffer/uniform/std140/array/mat4x2_f32/dynamic_index_via_ptr.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/buffer/uniform/std140/array/mat4x2_f32/dynamic_index_via_ptr.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,56 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Access
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+cbuffer cbuffer_a : register(b0) {
+  uint4 a[8];
+};
+RWByteAddressBuffer s : register(u1);
+static int counter = 0;
+int i() {
+  counter = (counter + 1);
+  return counter;
+}
+
+float4x2 v(uint start_byte_offset) {
+  uint4 v_1 = a[(start_byte_offset / 16u)];
+  float2 v_2 = asfloat((((((start_byte_offset % 16u) / 4u) == 2u)) ? (v_1.zw) : (v_1.xy)));
+  uint4 v_3 = a[((8u + start_byte_offset) / 16u)];
+  float2 v_4 = asfloat(((((((8u + start_byte_offset) % 16u) / 4u) == 2u)) ? (v_3.zw) : (v_3.xy)));
+  uint4 v_5 = a[((16u + start_byte_offset) / 16u)];
+  float2 v_6 = asfloat(((((((16u + start_byte_offset) % 16u) / 4u) == 2u)) ? (v_5.zw) : (v_5.xy)));
+  uint4 v_7 = a[((24u + start_byte_offset) / 16u)];
+  return float4x2(v_2, v_4, v_6, asfloat(((((((24u + start_byte_offset) % 16u) / 4u) == 2u)) ? (v_7.zw) : (v_7.xy))));
+}
+
+typedef float4x2 ary_ret[4];
+ary_ret v_8(uint start_byte_offset) {
+  float4x2 a[4] = (float4x2[4])0;
+  {
+    uint v_9 = 0u;
+    v_9 = 0u;
+    while(true) {
+      uint v_10 = v_9;
+      if ((v_10 >= 4u)) {
+        break;
+      }
+      a[v_10] = v((start_byte_offset + (v_10 * 32u)));
+      {
+        v_9 = (v_10 + 1u);
+      }
+      continue;
+    }
+  }
+  float4x2 v_11[4] = a;
+  return v_11;
+}
+
+[numthreads(1, 1, 1)]
+void f() {
+  uint v_12 = (32u * uint(i()));
+  uint v_13 = (8u * uint(i()));
+  float4x2 v_14[4] = v_8(0u);
+  float4x2 l_a_i = v(v_12);
+  uint4 v_15 = a[((v_12 + v_13) / 16u)];
+  float2 l_a_i_i = asfloat(((((((v_12 + v_13) % 16u) / 4u) == 2u)) ? (v_15.zw) : (v_15.xy)));
+  float4x2 l_a[4] = v_14;
+  s.Store(0u, asuint((((asfloat(a[((v_12 + v_13) / 16u)][(((v_12 + v_13) % 16u) / 4u)]) + l_a[0][0][0u]) + l_a_i[0][0u]) + l_a_i_i[0u])));
+}
+
diff --git a/test/tint/buffer/uniform/std140/array/mat4x2_f32/dynamic_index_via_ptr.wgsl.expected.ir.fxc.hlsl b/test/tint/buffer/uniform/std140/array/mat4x2_f32/dynamic_index_via_ptr.wgsl.expected.ir.fxc.hlsl
index 3f437dc..e3da59c 100644
--- a/test/tint/buffer/uniform/std140/array/mat4x2_f32/dynamic_index_via_ptr.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/buffer/uniform/std140/array/mat4x2_f32/dynamic_index_via_ptr.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,56 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Access
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+cbuffer cbuffer_a : register(b0) {
+  uint4 a[8];
+};
+RWByteAddressBuffer s : register(u1);
+static int counter = 0;
+int i() {
+  counter = (counter + 1);
+  return counter;
+}
+
+float4x2 v(uint start_byte_offset) {
+  uint4 v_1 = a[(start_byte_offset / 16u)];
+  float2 v_2 = asfloat((((((start_byte_offset % 16u) / 4u) == 2u)) ? (v_1.zw) : (v_1.xy)));
+  uint4 v_3 = a[((8u + start_byte_offset) / 16u)];
+  float2 v_4 = asfloat(((((((8u + start_byte_offset) % 16u) / 4u) == 2u)) ? (v_3.zw) : (v_3.xy)));
+  uint4 v_5 = a[((16u + start_byte_offset) / 16u)];
+  float2 v_6 = asfloat(((((((16u + start_byte_offset) % 16u) / 4u) == 2u)) ? (v_5.zw) : (v_5.xy)));
+  uint4 v_7 = a[((24u + start_byte_offset) / 16u)];
+  return float4x2(v_2, v_4, v_6, asfloat(((((((24u + start_byte_offset) % 16u) / 4u) == 2u)) ? (v_7.zw) : (v_7.xy))));
+}
+
+typedef float4x2 ary_ret[4];
+ary_ret v_8(uint start_byte_offset) {
+  float4x2 a[4] = (float4x2[4])0;
+  {
+    uint v_9 = 0u;
+    v_9 = 0u;
+    while(true) {
+      uint v_10 = v_9;
+      if ((v_10 >= 4u)) {
+        break;
+      }
+      a[v_10] = v((start_byte_offset + (v_10 * 32u)));
+      {
+        v_9 = (v_10 + 1u);
+      }
+      continue;
+    }
+  }
+  float4x2 v_11[4] = a;
+  return v_11;
+}
+
+[numthreads(1, 1, 1)]
+void f() {
+  uint v_12 = (32u * uint(i()));
+  uint v_13 = (8u * uint(i()));
+  float4x2 v_14[4] = v_8(0u);
+  float4x2 l_a_i = v(v_12);
+  uint4 v_15 = a[((v_12 + v_13) / 16u)];
+  float2 l_a_i_i = asfloat(((((((v_12 + v_13) % 16u) / 4u) == 2u)) ? (v_15.zw) : (v_15.xy)));
+  float4x2 l_a[4] = v_14;
+  s.Store(0u, asuint((((asfloat(a[((v_12 + v_13) / 16u)][(((v_12 + v_13) % 16u) / 4u)]) + l_a[0][0][0u]) + l_a_i[0][0u]) + l_a_i_i[0u])));
+}
+
diff --git a/test/tint/buffer/uniform/std140/array/mat4x2_f32/static_index_via_ptr.wgsl.expected.ir.dxc.hlsl b/test/tint/buffer/uniform/std140/array/mat4x2_f32/static_index_via_ptr.wgsl.expected.ir.dxc.hlsl
index 3f437dc..4d68b3a 100644
--- a/test/tint/buffer/uniform/std140/array/mat4x2_f32/static_index_via_ptr.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/buffer/uniform/std140/array/mat4x2_f32/static_index_via_ptr.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,47 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Access
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+cbuffer cbuffer_a : register(b0) {
+  uint4 a[8];
+};
+RWByteAddressBuffer s : register(u1);
+float4x2 v(uint start_byte_offset) {
+  uint4 v_1 = a[(start_byte_offset / 16u)];
+  float2 v_2 = asfloat((((((start_byte_offset % 16u) / 4u) == 2u)) ? (v_1.zw) : (v_1.xy)));
+  uint4 v_3 = a[((8u + start_byte_offset) / 16u)];
+  float2 v_4 = asfloat(((((((8u + start_byte_offset) % 16u) / 4u) == 2u)) ? (v_3.zw) : (v_3.xy)));
+  uint4 v_5 = a[((16u + start_byte_offset) / 16u)];
+  float2 v_6 = asfloat(((((((16u + start_byte_offset) % 16u) / 4u) == 2u)) ? (v_5.zw) : (v_5.xy)));
+  uint4 v_7 = a[((24u + start_byte_offset) / 16u)];
+  return float4x2(v_2, v_4, v_6, asfloat(((((((24u + start_byte_offset) % 16u) / 4u) == 2u)) ? (v_7.zw) : (v_7.xy))));
+}
+
+typedef float4x2 ary_ret[4];
+ary_ret v_8(uint start_byte_offset) {
+  float4x2 a[4] = (float4x2[4])0;
+  {
+    uint v_9 = 0u;
+    v_9 = 0u;
+    while(true) {
+      uint v_10 = v_9;
+      if ((v_10 >= 4u)) {
+        break;
+      }
+      a[v_10] = v((start_byte_offset + (v_10 * 32u)));
+      {
+        v_9 = (v_10 + 1u);
+      }
+      continue;
+    }
+  }
+  float4x2 v_11[4] = a;
+  return v_11;
+}
+
+[numthreads(1, 1, 1)]
+void f() {
+  float4x2 v_12[4] = v_8(0u);
+  float4x2 l_a_i = v(64u);
+  float2 l_a_i_i = asfloat(a[4u].zw);
+  float4x2 l_a[4] = v_12;
+  s.Store(0u, asuint((((asfloat(a[4u].z) + l_a[0][0][0u]) + l_a_i[0][0u]) + l_a_i_i[0u])));
+}
+
diff --git a/test/tint/buffer/uniform/std140/array/mat4x2_f32/static_index_via_ptr.wgsl.expected.ir.fxc.hlsl b/test/tint/buffer/uniform/std140/array/mat4x2_f32/static_index_via_ptr.wgsl.expected.ir.fxc.hlsl
index 3f437dc..4d68b3a 100644
--- a/test/tint/buffer/uniform/std140/array/mat4x2_f32/static_index_via_ptr.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/buffer/uniform/std140/array/mat4x2_f32/static_index_via_ptr.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,47 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Access
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+cbuffer cbuffer_a : register(b0) {
+  uint4 a[8];
+};
+RWByteAddressBuffer s : register(u1);
+float4x2 v(uint start_byte_offset) {
+  uint4 v_1 = a[(start_byte_offset / 16u)];
+  float2 v_2 = asfloat((((((start_byte_offset % 16u) / 4u) == 2u)) ? (v_1.zw) : (v_1.xy)));
+  uint4 v_3 = a[((8u + start_byte_offset) / 16u)];
+  float2 v_4 = asfloat(((((((8u + start_byte_offset) % 16u) / 4u) == 2u)) ? (v_3.zw) : (v_3.xy)));
+  uint4 v_5 = a[((16u + start_byte_offset) / 16u)];
+  float2 v_6 = asfloat(((((((16u + start_byte_offset) % 16u) / 4u) == 2u)) ? (v_5.zw) : (v_5.xy)));
+  uint4 v_7 = a[((24u + start_byte_offset) / 16u)];
+  return float4x2(v_2, v_4, v_6, asfloat(((((((24u + start_byte_offset) % 16u) / 4u) == 2u)) ? (v_7.zw) : (v_7.xy))));
+}
+
+typedef float4x2 ary_ret[4];
+ary_ret v_8(uint start_byte_offset) {
+  float4x2 a[4] = (float4x2[4])0;
+  {
+    uint v_9 = 0u;
+    v_9 = 0u;
+    while(true) {
+      uint v_10 = v_9;
+      if ((v_10 >= 4u)) {
+        break;
+      }
+      a[v_10] = v((start_byte_offset + (v_10 * 32u)));
+      {
+        v_9 = (v_10 + 1u);
+      }
+      continue;
+    }
+  }
+  float4x2 v_11[4] = a;
+  return v_11;
+}
+
+[numthreads(1, 1, 1)]
+void f() {
+  float4x2 v_12[4] = v_8(0u);
+  float4x2 l_a_i = v(64u);
+  float2 l_a_i_i = asfloat(a[4u].zw);
+  float4x2 l_a[4] = v_12;
+  s.Store(0u, asuint((((asfloat(a[4u].z) + l_a[0][0][0u]) + l_a_i[0][0u]) + l_a_i_i[0u])));
+}
+
diff --git a/test/tint/buffer/uniform/std140/array/mat4x2_f32/to_builtin.wgsl.expected.ir.dxc.hlsl b/test/tint/buffer/uniform/std140/array/mat4x2_f32/to_builtin.wgsl.expected.ir.dxc.hlsl
index 3f437dc..eebcbf9 100644
--- a/test/tint/buffer/uniform/std140/array/mat4x2_f32/to_builtin.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/buffer/uniform/std140/array/mat4x2_f32/to_builtin.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,25 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Access
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+cbuffer cbuffer_u : register(b0) {
+  uint4 u[8];
+};
+RWByteAddressBuffer s : register(u1);
+float4x2 v(uint start_byte_offset) {
+  uint4 v_1 = u[(start_byte_offset / 16u)];
+  float2 v_2 = asfloat((((((start_byte_offset % 16u) / 4u) == 2u)) ? (v_1.zw) : (v_1.xy)));
+  uint4 v_3 = u[((8u + start_byte_offset) / 16u)];
+  float2 v_4 = asfloat(((((((8u + start_byte_offset) % 16u) / 4u) == 2u)) ? (v_3.zw) : (v_3.xy)));
+  uint4 v_5 = u[((16u + start_byte_offset) / 16u)];
+  float2 v_6 = asfloat(((((((16u + start_byte_offset) % 16u) / 4u) == 2u)) ? (v_5.zw) : (v_5.xy)));
+  uint4 v_7 = u[((24u + start_byte_offset) / 16u)];
+  return float4x2(v_2, v_4, v_6, asfloat(((((((24u + start_byte_offset) % 16u) / 4u) == 2u)) ? (v_7.zw) : (v_7.xy))));
+}
+
+[numthreads(1, 1, 1)]
+void f() {
+  float2x4 t = transpose(v(64u));
+  float l = length(asfloat(u[0u].zw).yx);
+  float a = abs(asfloat(u[0u].zw).yx[0u]);
+  float v_8 = (t[0][0u] + float(l));
+  s.Store(0u, asuint((v_8 + float(a))));
+}
+
diff --git a/test/tint/buffer/uniform/std140/array/mat4x2_f32/to_builtin.wgsl.expected.ir.fxc.hlsl b/test/tint/buffer/uniform/std140/array/mat4x2_f32/to_builtin.wgsl.expected.ir.fxc.hlsl
index 3f437dc..eebcbf9 100644
--- a/test/tint/buffer/uniform/std140/array/mat4x2_f32/to_builtin.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/buffer/uniform/std140/array/mat4x2_f32/to_builtin.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,25 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Access
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+cbuffer cbuffer_u : register(b0) {
+  uint4 u[8];
+};
+RWByteAddressBuffer s : register(u1);
+float4x2 v(uint start_byte_offset) {
+  uint4 v_1 = u[(start_byte_offset / 16u)];
+  float2 v_2 = asfloat((((((start_byte_offset % 16u) / 4u) == 2u)) ? (v_1.zw) : (v_1.xy)));
+  uint4 v_3 = u[((8u + start_byte_offset) / 16u)];
+  float2 v_4 = asfloat(((((((8u + start_byte_offset) % 16u) / 4u) == 2u)) ? (v_3.zw) : (v_3.xy)));
+  uint4 v_5 = u[((16u + start_byte_offset) / 16u)];
+  float2 v_6 = asfloat(((((((16u + start_byte_offset) % 16u) / 4u) == 2u)) ? (v_5.zw) : (v_5.xy)));
+  uint4 v_7 = u[((24u + start_byte_offset) / 16u)];
+  return float4x2(v_2, v_4, v_6, asfloat(((((((24u + start_byte_offset) % 16u) / 4u) == 2u)) ? (v_7.zw) : (v_7.xy))));
+}
+
+[numthreads(1, 1, 1)]
+void f() {
+  float2x4 t = transpose(v(64u));
+  float l = length(asfloat(u[0u].zw).yx);
+  float a = abs(asfloat(u[0u].zw).yx[0u]);
+  float v_8 = (t[0][0u] + float(l));
+  s.Store(0u, asuint((v_8 + float(a))));
+}
+
diff --git a/test/tint/buffer/uniform/std140/array/mat4x2_f32/to_fn.wgsl.expected.ir.dxc.hlsl b/test/tint/buffer/uniform/std140/array/mat4x2_f32/to_fn.wgsl.expected.ir.dxc.hlsl
index 3f437dc..67d6590 100644
--- a/test/tint/buffer/uniform/std140/array/mat4x2_f32/to_fn.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/buffer/uniform/std140/array/mat4x2_f32/to_fn.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,63 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Access
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+cbuffer cbuffer_u : register(b0) {
+  uint4 u[8];
+};
+RWByteAddressBuffer s : register(u1);
+float a(float4x2 a_1[4]) {
+  return a_1[0][0][0u];
+}
+
+float b(float4x2 m) {
+  return m[0][0u];
+}
+
+float c(float2 v) {
+  return v[0u];
+}
+
+float d(float f) {
+  return f;
+}
+
+float4x2 v_1(uint start_byte_offset) {
+  uint4 v_2 = u[(start_byte_offset / 16u)];
+  float2 v_3 = asfloat((((((start_byte_offset % 16u) / 4u) == 2u)) ? (v_2.zw) : (v_2.xy)));
+  uint4 v_4 = u[((8u + start_byte_offset) / 16u)];
+  float2 v_5 = asfloat(((((((8u + start_byte_offset) % 16u) / 4u) == 2u)) ? (v_4.zw) : (v_4.xy)));
+  uint4 v_6 = u[((16u + start_byte_offset) / 16u)];
+  float2 v_7 = asfloat(((((((16u + start_byte_offset) % 16u) / 4u) == 2u)) ? (v_6.zw) : (v_6.xy)));
+  uint4 v_8 = u[((24u + start_byte_offset) / 16u)];
+  return float4x2(v_3, v_5, v_7, asfloat(((((((24u + start_byte_offset) % 16u) / 4u) == 2u)) ? (v_8.zw) : (v_8.xy))));
+}
+
+typedef float4x2 ary_ret[4];
+ary_ret v_9(uint start_byte_offset) {
+  float4x2 a[4] = (float4x2[4])0;
+  {
+    uint v_10 = 0u;
+    v_10 = 0u;
+    while(true) {
+      uint v_11 = v_10;
+      if ((v_11 >= 4u)) {
+        break;
+      }
+      a[v_11] = v_1((start_byte_offset + (v_11 * 32u)));
+      {
+        v_10 = (v_11 + 1u);
+      }
+      continue;
+    }
+  }
+  float4x2 v_12[4] = a;
+  return v_12;
+}
+
+[numthreads(1, 1, 1)]
+void f() {
+  float4x2 v_13[4] = v_9(0u);
+  float v_14 = a(v_13);
+  float v_15 = (v_14 + b(v_1(32u)));
+  float v_16 = (v_15 + c(asfloat(u[2u].xy).yx));
+  s.Store(0u, asuint((v_16 + d(asfloat(u[2u].xy).yx[0u]))));
+}
+
diff --git a/test/tint/buffer/uniform/std140/array/mat4x2_f32/to_fn.wgsl.expected.ir.fxc.hlsl b/test/tint/buffer/uniform/std140/array/mat4x2_f32/to_fn.wgsl.expected.ir.fxc.hlsl
index 3f437dc..67d6590 100644
--- a/test/tint/buffer/uniform/std140/array/mat4x2_f32/to_fn.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/buffer/uniform/std140/array/mat4x2_f32/to_fn.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,63 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Access
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+cbuffer cbuffer_u : register(b0) {
+  uint4 u[8];
+};
+RWByteAddressBuffer s : register(u1);
+float a(float4x2 a_1[4]) {
+  return a_1[0][0][0u];
+}
+
+float b(float4x2 m) {
+  return m[0][0u];
+}
+
+float c(float2 v) {
+  return v[0u];
+}
+
+float d(float f) {
+  return f;
+}
+
+float4x2 v_1(uint start_byte_offset) {
+  uint4 v_2 = u[(start_byte_offset / 16u)];
+  float2 v_3 = asfloat((((((start_byte_offset % 16u) / 4u) == 2u)) ? (v_2.zw) : (v_2.xy)));
+  uint4 v_4 = u[((8u + start_byte_offset) / 16u)];
+  float2 v_5 = asfloat(((((((8u + start_byte_offset) % 16u) / 4u) == 2u)) ? (v_4.zw) : (v_4.xy)));
+  uint4 v_6 = u[((16u + start_byte_offset) / 16u)];
+  float2 v_7 = asfloat(((((((16u + start_byte_offset) % 16u) / 4u) == 2u)) ? (v_6.zw) : (v_6.xy)));
+  uint4 v_8 = u[((24u + start_byte_offset) / 16u)];
+  return float4x2(v_3, v_5, v_7, asfloat(((((((24u + start_byte_offset) % 16u) / 4u) == 2u)) ? (v_8.zw) : (v_8.xy))));
+}
+
+typedef float4x2 ary_ret[4];
+ary_ret v_9(uint start_byte_offset) {
+  float4x2 a[4] = (float4x2[4])0;
+  {
+    uint v_10 = 0u;
+    v_10 = 0u;
+    while(true) {
+      uint v_11 = v_10;
+      if ((v_11 >= 4u)) {
+        break;
+      }
+      a[v_11] = v_1((start_byte_offset + (v_11 * 32u)));
+      {
+        v_10 = (v_11 + 1u);
+      }
+      continue;
+    }
+  }
+  float4x2 v_12[4] = a;
+  return v_12;
+}
+
+[numthreads(1, 1, 1)]
+void f() {
+  float4x2 v_13[4] = v_9(0u);
+  float v_14 = a(v_13);
+  float v_15 = (v_14 + b(v_1(32u)));
+  float v_16 = (v_15 + c(asfloat(u[2u].xy).yx));
+  s.Store(0u, asuint((v_16 + d(asfloat(u[2u].xy).yx[0u]))));
+}
+
diff --git a/test/tint/buffer/uniform/std140/array/mat4x2_f32/to_private.wgsl.expected.ir.dxc.hlsl b/test/tint/buffer/uniform/std140/array/mat4x2_f32/to_private.wgsl.expected.ir.dxc.hlsl
index 3f437dc..b277d0c 100644
--- a/test/tint/buffer/uniform/std140/array/mat4x2_f32/to_private.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/buffer/uniform/std140/array/mat4x2_f32/to_private.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,49 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Access
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+cbuffer cbuffer_u : register(b0) {
+  uint4 u[8];
+};
+RWByteAddressBuffer s : register(u1);
+static float4x2 p[4] = (float4x2[4])0;
+float4x2 v(uint start_byte_offset) {
+  uint4 v_1 = u[(start_byte_offset / 16u)];
+  float2 v_2 = asfloat((((((start_byte_offset % 16u) / 4u) == 2u)) ? (v_1.zw) : (v_1.xy)));
+  uint4 v_3 = u[((8u + start_byte_offset) / 16u)];
+  float2 v_4 = asfloat(((((((8u + start_byte_offset) % 16u) / 4u) == 2u)) ? (v_3.zw) : (v_3.xy)));
+  uint4 v_5 = u[((16u + start_byte_offset) / 16u)];
+  float2 v_6 = asfloat(((((((16u + start_byte_offset) % 16u) / 4u) == 2u)) ? (v_5.zw) : (v_5.xy)));
+  uint4 v_7 = u[((24u + start_byte_offset) / 16u)];
+  return float4x2(v_2, v_4, v_6, asfloat(((((((24u + start_byte_offset) % 16u) / 4u) == 2u)) ? (v_7.zw) : (v_7.xy))));
+}
+
+typedef float4x2 ary_ret[4];
+ary_ret v_8(uint start_byte_offset) {
+  float4x2 a[4] = (float4x2[4])0;
+  {
+    uint v_9 = 0u;
+    v_9 = 0u;
+    while(true) {
+      uint v_10 = v_9;
+      if ((v_10 >= 4u)) {
+        break;
+      }
+      a[v_10] = v((start_byte_offset + (v_10 * 32u)));
+      {
+        v_9 = (v_10 + 1u);
+      }
+      continue;
+    }
+  }
+  float4x2 v_11[4] = a;
+  return v_11;
+}
+
+[numthreads(1, 1, 1)]
+void f() {
+  float4x2 v_12[4] = v_8(0u);
+  p = v_12;
+  p[1] = v(64u);
+  p[1][0] = asfloat(u[0u].zw).yx;
+  p[1][0][0u] = asfloat(u[0u].z);
+  s.Store(0u, asuint(p[1][0].x));
+}
+
diff --git a/test/tint/buffer/uniform/std140/array/mat4x2_f32/to_private.wgsl.expected.ir.fxc.hlsl b/test/tint/buffer/uniform/std140/array/mat4x2_f32/to_private.wgsl.expected.ir.fxc.hlsl
index 3f437dc..b277d0c 100644
--- a/test/tint/buffer/uniform/std140/array/mat4x2_f32/to_private.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/buffer/uniform/std140/array/mat4x2_f32/to_private.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,49 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Access
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+cbuffer cbuffer_u : register(b0) {
+  uint4 u[8];
+};
+RWByteAddressBuffer s : register(u1);
+static float4x2 p[4] = (float4x2[4])0;
+float4x2 v(uint start_byte_offset) {
+  uint4 v_1 = u[(start_byte_offset / 16u)];
+  float2 v_2 = asfloat((((((start_byte_offset % 16u) / 4u) == 2u)) ? (v_1.zw) : (v_1.xy)));
+  uint4 v_3 = u[((8u + start_byte_offset) / 16u)];
+  float2 v_4 = asfloat(((((((8u + start_byte_offset) % 16u) / 4u) == 2u)) ? (v_3.zw) : (v_3.xy)));
+  uint4 v_5 = u[((16u + start_byte_offset) / 16u)];
+  float2 v_6 = asfloat(((((((16u + start_byte_offset) % 16u) / 4u) == 2u)) ? (v_5.zw) : (v_5.xy)));
+  uint4 v_7 = u[((24u + start_byte_offset) / 16u)];
+  return float4x2(v_2, v_4, v_6, asfloat(((((((24u + start_byte_offset) % 16u) / 4u) == 2u)) ? (v_7.zw) : (v_7.xy))));
+}
+
+typedef float4x2 ary_ret[4];
+ary_ret v_8(uint start_byte_offset) {
+  float4x2 a[4] = (float4x2[4])0;
+  {
+    uint v_9 = 0u;
+    v_9 = 0u;
+    while(true) {
+      uint v_10 = v_9;
+      if ((v_10 >= 4u)) {
+        break;
+      }
+      a[v_10] = v((start_byte_offset + (v_10 * 32u)));
+      {
+        v_9 = (v_10 + 1u);
+      }
+      continue;
+    }
+  }
+  float4x2 v_11[4] = a;
+  return v_11;
+}
+
+[numthreads(1, 1, 1)]
+void f() {
+  float4x2 v_12[4] = v_8(0u);
+  p = v_12;
+  p[1] = v(64u);
+  p[1][0] = asfloat(u[0u].zw).yx;
+  p[1][0][0u] = asfloat(u[0u].z);
+  s.Store(0u, asuint(p[1][0].x));
+}
+
diff --git a/test/tint/buffer/uniform/std140/array/mat4x2_f32/to_storage.wgsl.expected.ir.dxc.hlsl b/test/tint/buffer/uniform/std140/array/mat4x2_f32/to_storage.wgsl.expected.ir.dxc.hlsl
index 3f437dc..8e1d852 100644
--- a/test/tint/buffer/uniform/std140/array/mat4x2_f32/to_storage.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/buffer/uniform/std140/array/mat4x2_f32/to_storage.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,72 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Access
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+cbuffer cbuffer_u : register(b0) {
+  uint4 u[8];
+};
+RWByteAddressBuffer s : register(u1);
+void v(uint offset, float4x2 obj) {
+  s.Store2((offset + 0u), asuint(obj[0u]));
+  s.Store2((offset + 8u), asuint(obj[1u]));
+  s.Store2((offset + 16u), asuint(obj[2u]));
+  s.Store2((offset + 24u), asuint(obj[3u]));
+}
+
+float4x2 v_1(uint start_byte_offset) {
+  uint4 v_2 = u[(start_byte_offset / 16u)];
+  float2 v_3 = asfloat((((((start_byte_offset % 16u) / 4u) == 2u)) ? (v_2.zw) : (v_2.xy)));
+  uint4 v_4 = u[((8u + start_byte_offset) / 16u)];
+  float2 v_5 = asfloat(((((((8u + start_byte_offset) % 16u) / 4u) == 2u)) ? (v_4.zw) : (v_4.xy)));
+  uint4 v_6 = u[((16u + start_byte_offset) / 16u)];
+  float2 v_7 = asfloat(((((((16u + start_byte_offset) % 16u) / 4u) == 2u)) ? (v_6.zw) : (v_6.xy)));
+  uint4 v_8 = u[((24u + start_byte_offset) / 16u)];
+  return float4x2(v_3, v_5, v_7, asfloat(((((((24u + start_byte_offset) % 16u) / 4u) == 2u)) ? (v_8.zw) : (v_8.xy))));
+}
+
+void v_9(uint offset, float4x2 obj[4]) {
+  {
+    uint v_10 = 0u;
+    v_10 = 0u;
+    while(true) {
+      uint v_11 = v_10;
+      if ((v_11 >= 4u)) {
+        break;
+      }
+      v((offset + (v_11 * 32u)), obj[v_11]);
+      {
+        v_10 = (v_11 + 1u);
+      }
+      continue;
+    }
+  }
+}
+
+typedef float4x2 ary_ret[4];
+ary_ret v_12(uint start_byte_offset) {
+  float4x2 a[4] = (float4x2[4])0;
+  {
+    uint v_13 = 0u;
+    v_13 = 0u;
+    while(true) {
+      uint v_14 = v_13;
+      if ((v_14 >= 4u)) {
+        break;
+      }
+      a[v_14] = v_1((start_byte_offset + (v_14 * 32u)));
+      {
+        v_13 = (v_14 + 1u);
+      }
+      continue;
+    }
+  }
+  float4x2 v_15[4] = a;
+  return v_15;
+}
+
+[numthreads(1, 1, 1)]
+void f() {
+  float4x2 v_16[4] = v_12(0u);
+  v_9(0u, v_16);
+  v(32u, v_1(64u));
+  s.Store2(32u, asuint(asfloat(u[0u].zw).yx));
+  s.Store(32u, asuint(asfloat(u[0u].z)));
+}
+
diff --git a/test/tint/buffer/uniform/std140/array/mat4x2_f32/to_storage.wgsl.expected.ir.fxc.hlsl b/test/tint/buffer/uniform/std140/array/mat4x2_f32/to_storage.wgsl.expected.ir.fxc.hlsl
index 3f437dc..8e1d852 100644
--- a/test/tint/buffer/uniform/std140/array/mat4x2_f32/to_storage.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/buffer/uniform/std140/array/mat4x2_f32/to_storage.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,72 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Access
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+cbuffer cbuffer_u : register(b0) {
+  uint4 u[8];
+};
+RWByteAddressBuffer s : register(u1);
+void v(uint offset, float4x2 obj) {
+  s.Store2((offset + 0u), asuint(obj[0u]));
+  s.Store2((offset + 8u), asuint(obj[1u]));
+  s.Store2((offset + 16u), asuint(obj[2u]));
+  s.Store2((offset + 24u), asuint(obj[3u]));
+}
+
+float4x2 v_1(uint start_byte_offset) {
+  uint4 v_2 = u[(start_byte_offset / 16u)];
+  float2 v_3 = asfloat((((((start_byte_offset % 16u) / 4u) == 2u)) ? (v_2.zw) : (v_2.xy)));
+  uint4 v_4 = u[((8u + start_byte_offset) / 16u)];
+  float2 v_5 = asfloat(((((((8u + start_byte_offset) % 16u) / 4u) == 2u)) ? (v_4.zw) : (v_4.xy)));
+  uint4 v_6 = u[((16u + start_byte_offset) / 16u)];
+  float2 v_7 = asfloat(((((((16u + start_byte_offset) % 16u) / 4u) == 2u)) ? (v_6.zw) : (v_6.xy)));
+  uint4 v_8 = u[((24u + start_byte_offset) / 16u)];
+  return float4x2(v_3, v_5, v_7, asfloat(((((((24u + start_byte_offset) % 16u) / 4u) == 2u)) ? (v_8.zw) : (v_8.xy))));
+}
+
+void v_9(uint offset, float4x2 obj[4]) {
+  {
+    uint v_10 = 0u;
+    v_10 = 0u;
+    while(true) {
+      uint v_11 = v_10;
+      if ((v_11 >= 4u)) {
+        break;
+      }
+      v((offset + (v_11 * 32u)), obj[v_11]);
+      {
+        v_10 = (v_11 + 1u);
+      }
+      continue;
+    }
+  }
+}
+
+typedef float4x2 ary_ret[4];
+ary_ret v_12(uint start_byte_offset) {
+  float4x2 a[4] = (float4x2[4])0;
+  {
+    uint v_13 = 0u;
+    v_13 = 0u;
+    while(true) {
+      uint v_14 = v_13;
+      if ((v_14 >= 4u)) {
+        break;
+      }
+      a[v_14] = v_1((start_byte_offset + (v_14 * 32u)));
+      {
+        v_13 = (v_14 + 1u);
+      }
+      continue;
+    }
+  }
+  float4x2 v_15[4] = a;
+  return v_15;
+}
+
+[numthreads(1, 1, 1)]
+void f() {
+  float4x2 v_16[4] = v_12(0u);
+  v_9(0u, v_16);
+  v(32u, v_1(64u));
+  s.Store2(32u, asuint(asfloat(u[0u].zw).yx));
+  s.Store(32u, asuint(asfloat(u[0u].z)));
+}
+
diff --git a/test/tint/buffer/uniform/std140/array/mat4x2_f32/to_workgroup.wgsl.expected.ir.dxc.hlsl b/test/tint/buffer/uniform/std140/array/mat4x2_f32/to_workgroup.wgsl.expected.ir.dxc.hlsl
index 3f437dc..2f957da 100644
--- a/test/tint/buffer/uniform/std140/array/mat4x2_f32/to_workgroup.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/buffer/uniform/std140/array/mat4x2_f32/to_workgroup.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,71 @@
-SKIP: FAILED
+struct f_inputs {
+  uint tint_local_index : SV_GroupIndex;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Access
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+
+cbuffer cbuffer_u : register(b0) {
+  uint4 u[8];
+};
+groupshared float4x2 w[4];
+float4x2 v(uint start_byte_offset) {
+  uint4 v_1 = u[(start_byte_offset / 16u)];
+  float2 v_2 = asfloat((((((start_byte_offset % 16u) / 4u) == 2u)) ? (v_1.zw) : (v_1.xy)));
+  uint4 v_3 = u[((8u + start_byte_offset) / 16u)];
+  float2 v_4 = asfloat(((((((8u + start_byte_offset) % 16u) / 4u) == 2u)) ? (v_3.zw) : (v_3.xy)));
+  uint4 v_5 = u[((16u + start_byte_offset) / 16u)];
+  float2 v_6 = asfloat(((((((16u + start_byte_offset) % 16u) / 4u) == 2u)) ? (v_5.zw) : (v_5.xy)));
+  uint4 v_7 = u[((24u + start_byte_offset) / 16u)];
+  return float4x2(v_2, v_4, v_6, asfloat(((((((24u + start_byte_offset) % 16u) / 4u) == 2u)) ? (v_7.zw) : (v_7.xy))));
+}
+
+typedef float4x2 ary_ret[4];
+ary_ret v_8(uint start_byte_offset) {
+  float4x2 a[4] = (float4x2[4])0;
+  {
+    uint v_9 = 0u;
+    v_9 = 0u;
+    while(true) {
+      uint v_10 = v_9;
+      if ((v_10 >= 4u)) {
+        break;
+      }
+      a[v_10] = v((start_byte_offset + (v_10 * 32u)));
+      {
+        v_9 = (v_10 + 1u);
+      }
+      continue;
+    }
+  }
+  float4x2 v_11[4] = a;
+  return v_11;
+}
+
+void f_inner(uint tint_local_index) {
+  {
+    uint v_12 = 0u;
+    v_12 = tint_local_index;
+    while(true) {
+      uint v_13 = v_12;
+      if ((v_13 >= 4u)) {
+        break;
+      }
+      w[v_13] = float4x2((0.0f).xx, (0.0f).xx, (0.0f).xx, (0.0f).xx);
+      {
+        v_12 = (v_13 + 1u);
+      }
+      continue;
+    }
+  }
+  GroupMemoryBarrierWithGroupSync();
+  float4x2 v_14[4] = v_8(0u);
+  w = v_14;
+  w[1] = v(64u);
+  w[1][0] = asfloat(u[0u].zw).yx;
+  w[1][0][0u] = asfloat(u[0u].z);
+}
+
+[numthreads(1, 1, 1)]
+void f(f_inputs inputs) {
+  f_inner(inputs.tint_local_index);
+}
+
diff --git a/test/tint/buffer/uniform/std140/array/mat4x2_f32/to_workgroup.wgsl.expected.ir.fxc.hlsl b/test/tint/buffer/uniform/std140/array/mat4x2_f32/to_workgroup.wgsl.expected.ir.fxc.hlsl
index 3f437dc..2f957da 100644
--- a/test/tint/buffer/uniform/std140/array/mat4x2_f32/to_workgroup.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/buffer/uniform/std140/array/mat4x2_f32/to_workgroup.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,71 @@
-SKIP: FAILED
+struct f_inputs {
+  uint tint_local_index : SV_GroupIndex;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Access
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+
+cbuffer cbuffer_u : register(b0) {
+  uint4 u[8];
+};
+groupshared float4x2 w[4];
+float4x2 v(uint start_byte_offset) {
+  uint4 v_1 = u[(start_byte_offset / 16u)];
+  float2 v_2 = asfloat((((((start_byte_offset % 16u) / 4u) == 2u)) ? (v_1.zw) : (v_1.xy)));
+  uint4 v_3 = u[((8u + start_byte_offset) / 16u)];
+  float2 v_4 = asfloat(((((((8u + start_byte_offset) % 16u) / 4u) == 2u)) ? (v_3.zw) : (v_3.xy)));
+  uint4 v_5 = u[((16u + start_byte_offset) / 16u)];
+  float2 v_6 = asfloat(((((((16u + start_byte_offset) % 16u) / 4u) == 2u)) ? (v_5.zw) : (v_5.xy)));
+  uint4 v_7 = u[((24u + start_byte_offset) / 16u)];
+  return float4x2(v_2, v_4, v_6, asfloat(((((((24u + start_byte_offset) % 16u) / 4u) == 2u)) ? (v_7.zw) : (v_7.xy))));
+}
+
+typedef float4x2 ary_ret[4];
+ary_ret v_8(uint start_byte_offset) {
+  float4x2 a[4] = (float4x2[4])0;
+  {
+    uint v_9 = 0u;
+    v_9 = 0u;
+    while(true) {
+      uint v_10 = v_9;
+      if ((v_10 >= 4u)) {
+        break;
+      }
+      a[v_10] = v((start_byte_offset + (v_10 * 32u)));
+      {
+        v_9 = (v_10 + 1u);
+      }
+      continue;
+    }
+  }
+  float4x2 v_11[4] = a;
+  return v_11;
+}
+
+void f_inner(uint tint_local_index) {
+  {
+    uint v_12 = 0u;
+    v_12 = tint_local_index;
+    while(true) {
+      uint v_13 = v_12;
+      if ((v_13 >= 4u)) {
+        break;
+      }
+      w[v_13] = float4x2((0.0f).xx, (0.0f).xx, (0.0f).xx, (0.0f).xx);
+      {
+        v_12 = (v_13 + 1u);
+      }
+      continue;
+    }
+  }
+  GroupMemoryBarrierWithGroupSync();
+  float4x2 v_14[4] = v_8(0u);
+  w = v_14;
+  w[1] = v(64u);
+  w[1][0] = asfloat(u[0u].zw).yx;
+  w[1][0][0u] = asfloat(u[0u].z);
+}
+
+[numthreads(1, 1, 1)]
+void f(f_inputs inputs) {
+  f_inner(inputs.tint_local_index);
+}
+
diff --git a/test/tint/buffer/uniform/std140/array/mat4x3_f16/dynamic_index_via_ptr.wgsl.expected.ir.dxc.hlsl b/test/tint/buffer/uniform/std140/array/mat4x3_f16/dynamic_index_via_ptr.wgsl.expected.ir.dxc.hlsl
index 3f437dc..ac4afe2 100644
--- a/test/tint/buffer/uniform/std140/array/mat4x3_f16/dynamic_index_via_ptr.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/buffer/uniform/std140/array/mat4x3_f16/dynamic_index_via_ptr.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,64 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Access
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+cbuffer cbuffer_a : register(b0) {
+  uint4 a[8];
+};
+RWByteAddressBuffer s : register(u1);
+static int counter = 0;
+int i() {
+  counter = (counter + 1);
+  return counter;
+}
+
+vector<float16_t, 4> tint_bitcast_to_f16(uint4 src) {
+  uint4 v = src;
+  uint4 mask = (65535u).xxxx;
+  uint4 shift = (16u).xxxx;
+  float4 t_low = f16tof32((v & mask));
+  float4 t_high = f16tof32(((v >> shift) & mask));
+  float16_t v_1 = float16_t(t_low.x);
+  float16_t v_2 = float16_t(t_high.x);
+  float16_t v_3 = float16_t(t_low.y);
+  return vector<float16_t, 4>(v_1, v_2, v_3, float16_t(t_high.y));
+}
+
+matrix<float16_t, 4, 3> v_4(uint start_byte_offset) {
+  vector<float16_t, 3> v_5 = tint_bitcast_to_f16(a[(start_byte_offset / 16u)]).xyz;
+  vector<float16_t, 3> v_6 = tint_bitcast_to_f16(a[((8u + start_byte_offset) / 16u)]).xyz;
+  vector<float16_t, 3> v_7 = tint_bitcast_to_f16(a[((16u + start_byte_offset) / 16u)]).xyz;
+  return matrix<float16_t, 4, 3>(v_5, v_6, v_7, tint_bitcast_to_f16(a[((24u + start_byte_offset) / 16u)]).xyz);
+}
+
+typedef matrix<float16_t, 4, 3> ary_ret[4];
+ary_ret v_8(uint start_byte_offset) {
+  matrix<float16_t, 4, 3> a[4] = (matrix<float16_t, 4, 3>[4])0;
+  {
+    uint v_9 = 0u;
+    v_9 = 0u;
+    while(true) {
+      uint v_10 = v_9;
+      if ((v_10 >= 4u)) {
+        break;
+      }
+      a[v_10] = v_4((start_byte_offset + (v_10 * 32u)));
+      {
+        v_9 = (v_10 + 1u);
+      }
+      continue;
+    }
+  }
+  matrix<float16_t, 4, 3> v_11[4] = a;
+  return v_11;
+}
+
+[numthreads(1, 1, 1)]
+void f() {
+  uint v_12 = (32u * uint(i()));
+  uint v_13 = (8u * uint(i()));
+  matrix<float16_t, 4, 3> v_14[4] = v_8(0u);
+  matrix<float16_t, 4, 3> l_a_i = v_4(v_12);
+  vector<float16_t, 3> l_a_i_i = tint_bitcast_to_f16(a[((v_12 + v_13) / 16u)]).xyz;
+  uint v_15 = a[((v_12 + v_13) / 16u)][(((v_12 + v_13) % 16u) / 4u)];
+  matrix<float16_t, 4, 3> l_a[4] = v_14;
+  s.Store<float16_t>(0u, (((float16_t(f16tof32((v_15 >> (((((v_12 + v_13) % 4u) == 0u)) ? (0u) : (16u))))) + l_a[0][0][0u]) + l_a_i[0][0u]) + l_a_i_i[0u]));
+}
+
diff --git a/test/tint/buffer/uniform/std140/array/mat4x3_f16/dynamic_index_via_ptr.wgsl.expected.ir.fxc.hlsl b/test/tint/buffer/uniform/std140/array/mat4x3_f16/dynamic_index_via_ptr.wgsl.expected.ir.fxc.hlsl
index 3f437dc..b4de3ac 100644
--- a/test/tint/buffer/uniform/std140/array/mat4x3_f16/dynamic_index_via_ptr.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/buffer/uniform/std140/array/mat4x3_f16/dynamic_index_via_ptr.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,69 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Access
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+
+cbuffer cbuffer_a : register(b0) {
+  uint4 a[8];
+};
+RWByteAddressBuffer s : register(u1);
+static int counter = 0;
+int i() {
+  counter = (counter + 1);
+  return counter;
+}
+
+vector<float16_t, 4> tint_bitcast_to_f16(uint4 src) {
+  uint4 v = src;
+  uint4 mask = (65535u).xxxx;
+  uint4 shift = (16u).xxxx;
+  float4 t_low = f16tof32((v & mask));
+  float4 t_high = f16tof32(((v >> shift) & mask));
+  float16_t v_1 = float16_t(t_low.x);
+  float16_t v_2 = float16_t(t_high.x);
+  float16_t v_3 = float16_t(t_low.y);
+  return vector<float16_t, 4>(v_1, v_2, v_3, float16_t(t_high.y));
+}
+
+matrix<float16_t, 4, 3> v_4(uint start_byte_offset) {
+  vector<float16_t, 3> v_5 = tint_bitcast_to_f16(a[(start_byte_offset / 16u)]).xyz;
+  vector<float16_t, 3> v_6 = tint_bitcast_to_f16(a[((8u + start_byte_offset) / 16u)]).xyz;
+  vector<float16_t, 3> v_7 = tint_bitcast_to_f16(a[((16u + start_byte_offset) / 16u)]).xyz;
+  return matrix<float16_t, 4, 3>(v_5, v_6, v_7, tint_bitcast_to_f16(a[((24u + start_byte_offset) / 16u)]).xyz);
+}
+
+typedef matrix<float16_t, 4, 3> ary_ret[4];
+ary_ret v_8(uint start_byte_offset) {
+  matrix<float16_t, 4, 3> a[4] = (matrix<float16_t, 4, 3>[4])0;
+  {
+    uint v_9 = 0u;
+    v_9 = 0u;
+    while(true) {
+      uint v_10 = v_9;
+      if ((v_10 >= 4u)) {
+        break;
+      }
+      a[v_10] = v_4((start_byte_offset + (v_10 * 32u)));
+      {
+        v_9 = (v_10 + 1u);
+      }
+      continue;
+    }
+  }
+  matrix<float16_t, 4, 3> v_11[4] = a;
+  return v_11;
+}
+
+[numthreads(1, 1, 1)]
+void f() {
+  uint v_12 = (32u * uint(i()));
+  uint v_13 = (8u * uint(i()));
+  matrix<float16_t, 4, 3> v_14[4] = v_8(0u);
+  matrix<float16_t, 4, 3> l_a_i = v_4((v_12 + v_13));
+  vector<float16_t, 3> l_a_i_i = tint_bitcast_to_f16(a[((v_12 + v_13) / 16u)]).xyz;
+  uint v_15 = a[((v_12 + v_13) / 16u)][(((v_12 + v_13) % 16u) / 4u)];
+  matrix<float16_t, 4, 3> l_a[4] = v_14;
+  s.Store<float16_t>(0u, (((float16_t(f16tof32((v_15 >> (((((v_12 + v_13) % 4u) == 0u)) ? (0u) : (16u))))) + l_a[0][0][0u]) + l_a_i[0][0u]) + l_a_i_i[0u]));
+}
+
+FXC validation failure:
+c:\src\dawn\Shader@0x00000232073B1930(12,8-16): error X3000: syntax error: unexpected token 'float16_t'
+
diff --git a/test/tint/buffer/uniform/std140/array/mat4x3_f16/static_index_via_ptr.wgsl.expected.ir.dxc.hlsl b/test/tint/buffer/uniform/std140/array/mat4x3_f16/static_index_via_ptr.wgsl.expected.ir.dxc.hlsl
index 3f437dc..52a24b3 100644
--- a/test/tint/buffer/uniform/std140/array/mat4x3_f16/static_index_via_ptr.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/buffer/uniform/std140/array/mat4x3_f16/static_index_via_ptr.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,55 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Access
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+cbuffer cbuffer_a : register(b0) {
+  uint4 a[8];
+};
+RWByteAddressBuffer s : register(u1);
+vector<float16_t, 4> tint_bitcast_to_f16(uint4 src) {
+  uint4 v = src;
+  uint4 mask = (65535u).xxxx;
+  uint4 shift = (16u).xxxx;
+  float4 t_low = f16tof32((v & mask));
+  float4 t_high = f16tof32(((v >> shift) & mask));
+  float16_t v_1 = float16_t(t_low.x);
+  float16_t v_2 = float16_t(t_high.x);
+  float16_t v_3 = float16_t(t_low.y);
+  return vector<float16_t, 4>(v_1, v_2, v_3, float16_t(t_high.y));
+}
+
+matrix<float16_t, 4, 3> v_4(uint start_byte_offset) {
+  vector<float16_t, 3> v_5 = tint_bitcast_to_f16(a[(start_byte_offset / 16u)]).xyz;
+  vector<float16_t, 3> v_6 = tint_bitcast_to_f16(a[((8u + start_byte_offset) / 16u)]).xyz;
+  vector<float16_t, 3> v_7 = tint_bitcast_to_f16(a[((16u + start_byte_offset) / 16u)]).xyz;
+  return matrix<float16_t, 4, 3>(v_5, v_6, v_7, tint_bitcast_to_f16(a[((24u + start_byte_offset) / 16u)]).xyz);
+}
+
+typedef matrix<float16_t, 4, 3> ary_ret[4];
+ary_ret v_8(uint start_byte_offset) {
+  matrix<float16_t, 4, 3> a[4] = (matrix<float16_t, 4, 3>[4])0;
+  {
+    uint v_9 = 0u;
+    v_9 = 0u;
+    while(true) {
+      uint v_10 = v_9;
+      if ((v_10 >= 4u)) {
+        break;
+      }
+      a[v_10] = v_4((start_byte_offset + (v_10 * 32u)));
+      {
+        v_9 = (v_10 + 1u);
+      }
+      continue;
+    }
+  }
+  matrix<float16_t, 4, 3> v_11[4] = a;
+  return v_11;
+}
+
+[numthreads(1, 1, 1)]
+void f() {
+  matrix<float16_t, 4, 3> v_12[4] = v_8(0u);
+  matrix<float16_t, 4, 3> l_a_i = v_4(72u);
+  vector<float16_t, 3> l_a_i_i = tint_bitcast_to_f16(a[4u]).xyz;
+  matrix<float16_t, 4, 3> l_a[4] = v_12;
+  s.Store<float16_t>(0u, (((float16_t(f16tof32(a[4u].z)) + l_a[0][0][0u]) + l_a_i[0][0u]) + l_a_i_i[0u]));
+}
+
diff --git a/test/tint/buffer/uniform/std140/array/mat4x3_f16/static_index_via_ptr.wgsl.expected.ir.fxc.hlsl b/test/tint/buffer/uniform/std140/array/mat4x3_f16/static_index_via_ptr.wgsl.expected.ir.fxc.hlsl
index 3f437dc..cd0fd95 100644
--- a/test/tint/buffer/uniform/std140/array/mat4x3_f16/static_index_via_ptr.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/buffer/uniform/std140/array/mat4x3_f16/static_index_via_ptr.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,60 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Access
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+
+cbuffer cbuffer_a : register(b0) {
+  uint4 a[8];
+};
+RWByteAddressBuffer s : register(u1);
+vector<float16_t, 4> tint_bitcast_to_f16(uint4 src) {
+  uint4 v = src;
+  uint4 mask = (65535u).xxxx;
+  uint4 shift = (16u).xxxx;
+  float4 t_low = f16tof32((v & mask));
+  float4 t_high = f16tof32(((v >> shift) & mask));
+  float16_t v_1 = float16_t(t_low.x);
+  float16_t v_2 = float16_t(t_high.x);
+  float16_t v_3 = float16_t(t_low.y);
+  return vector<float16_t, 4>(v_1, v_2, v_3, float16_t(t_high.y));
+}
+
+matrix<float16_t, 4, 3> v_4(uint start_byte_offset) {
+  vector<float16_t, 3> v_5 = tint_bitcast_to_f16(a[(start_byte_offset / 16u)]).xyz;
+  vector<float16_t, 3> v_6 = tint_bitcast_to_f16(a[((8u + start_byte_offset) / 16u)]).xyz;
+  vector<float16_t, 3> v_7 = tint_bitcast_to_f16(a[((16u + start_byte_offset) / 16u)]).xyz;
+  return matrix<float16_t, 4, 3>(v_5, v_6, v_7, tint_bitcast_to_f16(a[((24u + start_byte_offset) / 16u)]).xyz);
+}
+
+typedef matrix<float16_t, 4, 3> ary_ret[4];
+ary_ret v_8(uint start_byte_offset) {
+  matrix<float16_t, 4, 3> a[4] = (matrix<float16_t, 4, 3>[4])0;
+  {
+    uint v_9 = 0u;
+    v_9 = 0u;
+    while(true) {
+      uint v_10 = v_9;
+      if ((v_10 >= 4u)) {
+        break;
+      }
+      a[v_10] = v_4((start_byte_offset + (v_10 * 32u)));
+      {
+        v_9 = (v_10 + 1u);
+      }
+      continue;
+    }
+  }
+  matrix<float16_t, 4, 3> v_11[4] = a;
+  return v_11;
+}
+
+[numthreads(1, 1, 1)]
+void f() {
+  matrix<float16_t, 4, 3> v_12[4] = v_8(0u);
+  matrix<float16_t, 4, 3> l_a_i = v_4(72u);
+  vector<float16_t, 3> l_a_i_i = tint_bitcast_to_f16(a[4u]).xyz;
+  matrix<float16_t, 4, 3> l_a[4] = v_12;
+  s.Store<float16_t>(0u, (((float16_t(f16tof32(a[4u].z)) + l_a[0][0][0u]) + l_a_i[0][0u]) + l_a_i_i[0u]));
+}
+
+FXC validation failure:
+c:\src\dawn\Shader@0x000001F1F4F047B0(6,8-16): error X3000: syntax error: unexpected token 'float16_t'
+
diff --git a/test/tint/buffer/uniform/std140/array/mat4x3_f16/to_builtin.wgsl.expected.ir.dxc.hlsl b/test/tint/buffer/uniform/std140/array/mat4x3_f16/to_builtin.wgsl.expected.ir.dxc.hlsl
index 3f437dc..b1eb15d 100644
--- a/test/tint/buffer/uniform/std140/array/mat4x3_f16/to_builtin.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/buffer/uniform/std140/array/mat4x3_f16/to_builtin.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,33 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Access
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+cbuffer cbuffer_u : register(b0) {
+  uint4 u[8];
+};
+RWByteAddressBuffer s : register(u1);
+vector<float16_t, 4> tint_bitcast_to_f16(uint4 src) {
+  uint4 v = src;
+  uint4 mask = (65535u).xxxx;
+  uint4 shift = (16u).xxxx;
+  float4 t_low = f16tof32((v & mask));
+  float4 t_high = f16tof32(((v >> shift) & mask));
+  float16_t v_1 = float16_t(t_low.x);
+  float16_t v_2 = float16_t(t_high.x);
+  float16_t v_3 = float16_t(t_low.y);
+  return vector<float16_t, 4>(v_1, v_2, v_3, float16_t(t_high.y));
+}
+
+matrix<float16_t, 4, 3> v_4(uint start_byte_offset) {
+  vector<float16_t, 3> v_5 = tint_bitcast_to_f16(u[(start_byte_offset / 16u)]).xyz;
+  vector<float16_t, 3> v_6 = tint_bitcast_to_f16(u[((8u + start_byte_offset) / 16u)]).xyz;
+  vector<float16_t, 3> v_7 = tint_bitcast_to_f16(u[((16u + start_byte_offset) / 16u)]).xyz;
+  return matrix<float16_t, 4, 3>(v_5, v_6, v_7, tint_bitcast_to_f16(u[((24u + start_byte_offset) / 16u)]).xyz);
+}
+
+[numthreads(1, 1, 1)]
+void f() {
+  matrix<float16_t, 3, 4> t = transpose(v_4(64u));
+  float16_t l = length(tint_bitcast_to_f16(u[0u]).xyz.zxy);
+  float16_t a = abs(tint_bitcast_to_f16(u[0u]).xyz.zxy[0u]);
+  float16_t v_8 = (t[0][0u] + float16_t(l));
+  s.Store<float16_t>(0u, (v_8 + float16_t(a)));
+}
+
diff --git a/test/tint/buffer/uniform/std140/array/mat4x3_f16/to_builtin.wgsl.expected.ir.fxc.hlsl b/test/tint/buffer/uniform/std140/array/mat4x3_f16/to_builtin.wgsl.expected.ir.fxc.hlsl
index 3f437dc..ed13ab2 100644
--- a/test/tint/buffer/uniform/std140/array/mat4x3_f16/to_builtin.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/buffer/uniform/std140/array/mat4x3_f16/to_builtin.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,38 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Access
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+
+cbuffer cbuffer_u : register(b0) {
+  uint4 u[8];
+};
+RWByteAddressBuffer s : register(u1);
+vector<float16_t, 4> tint_bitcast_to_f16(uint4 src) {
+  uint4 v = src;
+  uint4 mask = (65535u).xxxx;
+  uint4 shift = (16u).xxxx;
+  float4 t_low = f16tof32((v & mask));
+  float4 t_high = f16tof32(((v >> shift) & mask));
+  float16_t v_1 = float16_t(t_low.x);
+  float16_t v_2 = float16_t(t_high.x);
+  float16_t v_3 = float16_t(t_low.y);
+  return vector<float16_t, 4>(v_1, v_2, v_3, float16_t(t_high.y));
+}
+
+matrix<float16_t, 4, 3> v_4(uint start_byte_offset) {
+  vector<float16_t, 3> v_5 = tint_bitcast_to_f16(u[(start_byte_offset / 16u)]).xyz;
+  vector<float16_t, 3> v_6 = tint_bitcast_to_f16(u[((8u + start_byte_offset) / 16u)]).xyz;
+  vector<float16_t, 3> v_7 = tint_bitcast_to_f16(u[((16u + start_byte_offset) / 16u)]).xyz;
+  return matrix<float16_t, 4, 3>(v_5, v_6, v_7, tint_bitcast_to_f16(u[((24u + start_byte_offset) / 16u)]).xyz);
+}
+
+[numthreads(1, 1, 1)]
+void f() {
+  matrix<float16_t, 3, 4> t = transpose(v_4(64u));
+  float16_t l = length(tint_bitcast_to_f16(u[0u]).xyz.zxy);
+  float16_t a = abs(tint_bitcast_to_f16(u[0u]).xyz.zxy[0u]);
+  float16_t v_8 = (t[0][0u] + float16_t(l));
+  s.Store<float16_t>(0u, (v_8 + float16_t(a)));
+}
+
+FXC validation failure:
+c:\src\dawn\Shader@0x0000028D92CA97E0(6,8-16): error X3000: syntax error: unexpected token 'float16_t'
+
diff --git a/test/tint/buffer/uniform/std140/array/mat4x3_f16/to_fn.wgsl.expected.ir.dxc.hlsl b/test/tint/buffer/uniform/std140/array/mat4x3_f16/to_fn.wgsl.expected.ir.dxc.hlsl
index 3f437dc..a8dfb09 100644
--- a/test/tint/buffer/uniform/std140/array/mat4x3_f16/to_fn.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/buffer/uniform/std140/array/mat4x3_f16/to_fn.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,71 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Access
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+cbuffer cbuffer_u : register(b0) {
+  uint4 u[8];
+};
+RWByteAddressBuffer s : register(u1);
+float16_t a(matrix<float16_t, 4, 3> a_1[4]) {
+  return a_1[0][0][0u];
+}
+
+float16_t b(matrix<float16_t, 4, 3> m) {
+  return m[0][0u];
+}
+
+float16_t c(vector<float16_t, 3> v) {
+  return v[0u];
+}
+
+float16_t d(float16_t f) {
+  return f;
+}
+
+vector<float16_t, 4> tint_bitcast_to_f16(uint4 src) {
+  uint4 v = src;
+  uint4 mask = (65535u).xxxx;
+  uint4 shift = (16u).xxxx;
+  float4 t_low = f16tof32((v & mask));
+  float4 t_high = f16tof32(((v >> shift) & mask));
+  float16_t v_1 = float16_t(t_low.x);
+  float16_t v_2 = float16_t(t_high.x);
+  float16_t v_3 = float16_t(t_low.y);
+  return vector<float16_t, 4>(v_1, v_2, v_3, float16_t(t_high.y));
+}
+
+matrix<float16_t, 4, 3> v_4(uint start_byte_offset) {
+  vector<float16_t, 3> v_5 = tint_bitcast_to_f16(u[(start_byte_offset / 16u)]).xyz;
+  vector<float16_t, 3> v_6 = tint_bitcast_to_f16(u[((8u + start_byte_offset) / 16u)]).xyz;
+  vector<float16_t, 3> v_7 = tint_bitcast_to_f16(u[((16u + start_byte_offset) / 16u)]).xyz;
+  return matrix<float16_t, 4, 3>(v_5, v_6, v_7, tint_bitcast_to_f16(u[((24u + start_byte_offset) / 16u)]).xyz);
+}
+
+typedef matrix<float16_t, 4, 3> ary_ret[4];
+ary_ret v_8(uint start_byte_offset) {
+  matrix<float16_t, 4, 3> a[4] = (matrix<float16_t, 4, 3>[4])0;
+  {
+    uint v_9 = 0u;
+    v_9 = 0u;
+    while(true) {
+      uint v_10 = v_9;
+      if ((v_10 >= 4u)) {
+        break;
+      }
+      a[v_10] = v_4((start_byte_offset + (v_10 * 32u)));
+      {
+        v_9 = (v_10 + 1u);
+      }
+      continue;
+    }
+  }
+  matrix<float16_t, 4, 3> v_11[4] = a;
+  return v_11;
+}
+
+[numthreads(1, 1, 1)]
+void f() {
+  matrix<float16_t, 4, 3> v_12[4] = v_8(0u);
+  float16_t v_13 = a(v_12);
+  float16_t v_14 = (v_13 + b(v_4(32u)));
+  float16_t v_15 = (v_14 + c(tint_bitcast_to_f16(u[2u]).xyz.zxy));
+  s.Store<float16_t>(0u, (v_15 + d(tint_bitcast_to_f16(u[2u]).xyz.zxy[0u])));
+}
+
diff --git a/test/tint/buffer/uniform/std140/array/mat4x3_f16/to_fn.wgsl.expected.ir.fxc.hlsl b/test/tint/buffer/uniform/std140/array/mat4x3_f16/to_fn.wgsl.expected.ir.fxc.hlsl
index 3f437dc..22010de 100644
--- a/test/tint/buffer/uniform/std140/array/mat4x3_f16/to_fn.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/buffer/uniform/std140/array/mat4x3_f16/to_fn.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,76 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Access
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+
+cbuffer cbuffer_u : register(b0) {
+  uint4 u[8];
+};
+RWByteAddressBuffer s : register(u1);
+float16_t a(matrix<float16_t, 4, 3> a_1[4]) {
+  return a_1[0][0][0u];
+}
+
+float16_t b(matrix<float16_t, 4, 3> m) {
+  return m[0][0u];
+}
+
+float16_t c(vector<float16_t, 3> v) {
+  return v[0u];
+}
+
+float16_t d(float16_t f) {
+  return f;
+}
+
+vector<float16_t, 4> tint_bitcast_to_f16(uint4 src) {
+  uint4 v = src;
+  uint4 mask = (65535u).xxxx;
+  uint4 shift = (16u).xxxx;
+  float4 t_low = f16tof32((v & mask));
+  float4 t_high = f16tof32(((v >> shift) & mask));
+  float16_t v_1 = float16_t(t_low.x);
+  float16_t v_2 = float16_t(t_high.x);
+  float16_t v_3 = float16_t(t_low.y);
+  return vector<float16_t, 4>(v_1, v_2, v_3, float16_t(t_high.y));
+}
+
+matrix<float16_t, 4, 3> v_4(uint start_byte_offset) {
+  vector<float16_t, 3> v_5 = tint_bitcast_to_f16(u[(start_byte_offset / 16u)]).xyz;
+  vector<float16_t, 3> v_6 = tint_bitcast_to_f16(u[((8u + start_byte_offset) / 16u)]).xyz;
+  vector<float16_t, 3> v_7 = tint_bitcast_to_f16(u[((16u + start_byte_offset) / 16u)]).xyz;
+  return matrix<float16_t, 4, 3>(v_5, v_6, v_7, tint_bitcast_to_f16(u[((24u + start_byte_offset) / 16u)]).xyz);
+}
+
+typedef matrix<float16_t, 4, 3> ary_ret[4];
+ary_ret v_8(uint start_byte_offset) {
+  matrix<float16_t, 4, 3> a[4] = (matrix<float16_t, 4, 3>[4])0;
+  {
+    uint v_9 = 0u;
+    v_9 = 0u;
+    while(true) {
+      uint v_10 = v_9;
+      if ((v_10 >= 4u)) {
+        break;
+      }
+      a[v_10] = v_4((start_byte_offset + (v_10 * 32u)));
+      {
+        v_9 = (v_10 + 1u);
+      }
+      continue;
+    }
+  }
+  matrix<float16_t, 4, 3> v_11[4] = a;
+  return v_11;
+}
+
+[numthreads(1, 1, 1)]
+void f() {
+  matrix<float16_t, 4, 3> v_12[4] = v_8(0u);
+  float16_t v_13 = a(v_12);
+  float16_t v_14 = (v_13 + b(v_4(32u)));
+  float16_t v_15 = (v_14 + c(tint_bitcast_to_f16(u[2u]).xyz.zxy));
+  s.Store<float16_t>(0u, (v_15 + d(tint_bitcast_to_f16(u[2u]).xyz.zxy[0u])));
+}
+
+FXC validation failure:
+c:\src\dawn\Shader@0x000002149784C920(6,1-9): error X3000: unrecognized identifier 'float16_t'
+
diff --git a/test/tint/buffer/uniform/std140/array/mat4x3_f16/to_private.wgsl.expected.ir.dxc.hlsl b/test/tint/buffer/uniform/std140/array/mat4x3_f16/to_private.wgsl.expected.ir.dxc.hlsl
index 3f437dc..14f1e31 100644
--- a/test/tint/buffer/uniform/std140/array/mat4x3_f16/to_private.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/buffer/uniform/std140/array/mat4x3_f16/to_private.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,57 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Access
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+cbuffer cbuffer_u : register(b0) {
+  uint4 u[8];
+};
+RWByteAddressBuffer s : register(u1);
+static matrix<float16_t, 4, 3> p[4] = (matrix<float16_t, 4, 3>[4])0;
+vector<float16_t, 4> tint_bitcast_to_f16(uint4 src) {
+  uint4 v = src;
+  uint4 mask = (65535u).xxxx;
+  uint4 shift = (16u).xxxx;
+  float4 t_low = f16tof32((v & mask));
+  float4 t_high = f16tof32(((v >> shift) & mask));
+  float16_t v_1 = float16_t(t_low.x);
+  float16_t v_2 = float16_t(t_high.x);
+  float16_t v_3 = float16_t(t_low.y);
+  return vector<float16_t, 4>(v_1, v_2, v_3, float16_t(t_high.y));
+}
+
+matrix<float16_t, 4, 3> v_4(uint start_byte_offset) {
+  vector<float16_t, 3> v_5 = tint_bitcast_to_f16(u[(start_byte_offset / 16u)]).xyz;
+  vector<float16_t, 3> v_6 = tint_bitcast_to_f16(u[((8u + start_byte_offset) / 16u)]).xyz;
+  vector<float16_t, 3> v_7 = tint_bitcast_to_f16(u[((16u + start_byte_offset) / 16u)]).xyz;
+  return matrix<float16_t, 4, 3>(v_5, v_6, v_7, tint_bitcast_to_f16(u[((24u + start_byte_offset) / 16u)]).xyz);
+}
+
+typedef matrix<float16_t, 4, 3> ary_ret[4];
+ary_ret v_8(uint start_byte_offset) {
+  matrix<float16_t, 4, 3> a[4] = (matrix<float16_t, 4, 3>[4])0;
+  {
+    uint v_9 = 0u;
+    v_9 = 0u;
+    while(true) {
+      uint v_10 = v_9;
+      if ((v_10 >= 4u)) {
+        break;
+      }
+      a[v_10] = v_4((start_byte_offset + (v_10 * 32u)));
+      {
+        v_9 = (v_10 + 1u);
+      }
+      continue;
+    }
+  }
+  matrix<float16_t, 4, 3> v_11[4] = a;
+  return v_11;
+}
+
+[numthreads(1, 1, 1)]
+void f() {
+  matrix<float16_t, 4, 3> v_12[4] = v_8(0u);
+  p = v_12;
+  p[1] = v_4(64u);
+  p[1][0] = tint_bitcast_to_f16(u[0u]).xyz.zxy;
+  p[1][0][0u] = float16_t(f16tof32(u[0u].z));
+  s.Store<float16_t>(0u, p[1][0].x);
+}
+
diff --git a/test/tint/buffer/uniform/std140/array/mat4x3_f16/to_private.wgsl.expected.ir.fxc.hlsl b/test/tint/buffer/uniform/std140/array/mat4x3_f16/to_private.wgsl.expected.ir.fxc.hlsl
index 3f437dc..654162e 100644
--- a/test/tint/buffer/uniform/std140/array/mat4x3_f16/to_private.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/buffer/uniform/std140/array/mat4x3_f16/to_private.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,62 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Access
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+
+cbuffer cbuffer_u : register(b0) {
+  uint4 u[8];
+};
+RWByteAddressBuffer s : register(u1);
+static matrix<float16_t, 4, 3> p[4] = (matrix<float16_t, 4, 3>[4])0;
+vector<float16_t, 4> tint_bitcast_to_f16(uint4 src) {
+  uint4 v = src;
+  uint4 mask = (65535u).xxxx;
+  uint4 shift = (16u).xxxx;
+  float4 t_low = f16tof32((v & mask));
+  float4 t_high = f16tof32(((v >> shift) & mask));
+  float16_t v_1 = float16_t(t_low.x);
+  float16_t v_2 = float16_t(t_high.x);
+  float16_t v_3 = float16_t(t_low.y);
+  return vector<float16_t, 4>(v_1, v_2, v_3, float16_t(t_high.y));
+}
+
+matrix<float16_t, 4, 3> v_4(uint start_byte_offset) {
+  vector<float16_t, 3> v_5 = tint_bitcast_to_f16(u[(start_byte_offset / 16u)]).xyz;
+  vector<float16_t, 3> v_6 = tint_bitcast_to_f16(u[((8u + start_byte_offset) / 16u)]).xyz;
+  vector<float16_t, 3> v_7 = tint_bitcast_to_f16(u[((16u + start_byte_offset) / 16u)]).xyz;
+  return matrix<float16_t, 4, 3>(v_5, v_6, v_7, tint_bitcast_to_f16(u[((24u + start_byte_offset) / 16u)]).xyz);
+}
+
+typedef matrix<float16_t, 4, 3> ary_ret[4];
+ary_ret v_8(uint start_byte_offset) {
+  matrix<float16_t, 4, 3> a[4] = (matrix<float16_t, 4, 3>[4])0;
+  {
+    uint v_9 = 0u;
+    v_9 = 0u;
+    while(true) {
+      uint v_10 = v_9;
+      if ((v_10 >= 4u)) {
+        break;
+      }
+      a[v_10] = v_4((start_byte_offset + (v_10 * 32u)));
+      {
+        v_9 = (v_10 + 1u);
+      }
+      continue;
+    }
+  }
+  matrix<float16_t, 4, 3> v_11[4] = a;
+  return v_11;
+}
+
+[numthreads(1, 1, 1)]
+void f() {
+  matrix<float16_t, 4, 3> v_12[4] = v_8(0u);
+  p = v_12;
+  p[1] = v_4(64u);
+  p[1][0] = tint_bitcast_to_f16(u[0u]).xyz.zxy;
+  p[1][0][0u] = float16_t(f16tof32(u[0u].z));
+  s.Store<float16_t>(0u, p[1][0].x);
+}
+
+FXC validation failure:
+c:\src\dawn\Shader@0x0000012FEA4C67C0(6,15-23): error X3000: syntax error: unexpected token 'float16_t'
+
diff --git a/test/tint/buffer/uniform/std140/array/mat4x3_f16/to_storage.wgsl.expected.ir.dxc.hlsl b/test/tint/buffer/uniform/std140/array/mat4x3_f16/to_storage.wgsl.expected.ir.dxc.hlsl
index 3f437dc..e67e1ef 100644
--- a/test/tint/buffer/uniform/std140/array/mat4x3_f16/to_storage.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/buffer/uniform/std140/array/mat4x3_f16/to_storage.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,80 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Access
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+cbuffer cbuffer_u : register(b0) {
+  uint4 u[8];
+};
+RWByteAddressBuffer s : register(u1);
+vector<float16_t, 4> tint_bitcast_to_f16(uint4 src) {
+  uint4 v = src;
+  uint4 mask = (65535u).xxxx;
+  uint4 shift = (16u).xxxx;
+  float4 t_low = f16tof32((v & mask));
+  float4 t_high = f16tof32(((v >> shift) & mask));
+  float16_t v_1 = float16_t(t_low.x);
+  float16_t v_2 = float16_t(t_high.x);
+  float16_t v_3 = float16_t(t_low.y);
+  return vector<float16_t, 4>(v_1, v_2, v_3, float16_t(t_high.y));
+}
+
+void v_4(uint offset, matrix<float16_t, 4, 3> obj) {
+  s.Store<vector<float16_t, 3> >((offset + 0u), obj[0u]);
+  s.Store<vector<float16_t, 3> >((offset + 8u), obj[1u]);
+  s.Store<vector<float16_t, 3> >((offset + 16u), obj[2u]);
+  s.Store<vector<float16_t, 3> >((offset + 24u), obj[3u]);
+}
+
+matrix<float16_t, 4, 3> v_5(uint start_byte_offset) {
+  vector<float16_t, 3> v_6 = tint_bitcast_to_f16(u[(start_byte_offset / 16u)]).xyz;
+  vector<float16_t, 3> v_7 = tint_bitcast_to_f16(u[((8u + start_byte_offset) / 16u)]).xyz;
+  vector<float16_t, 3> v_8 = tint_bitcast_to_f16(u[((16u + start_byte_offset) / 16u)]).xyz;
+  return matrix<float16_t, 4, 3>(v_6, v_7, v_8, tint_bitcast_to_f16(u[((24u + start_byte_offset) / 16u)]).xyz);
+}
+
+void v_9(uint offset, matrix<float16_t, 4, 3> obj[4]) {
+  {
+    uint v_10 = 0u;
+    v_10 = 0u;
+    while(true) {
+      uint v_11 = v_10;
+      if ((v_11 >= 4u)) {
+        break;
+      }
+      v_4((offset + (v_11 * 32u)), obj[v_11]);
+      {
+        v_10 = (v_11 + 1u);
+      }
+      continue;
+    }
+  }
+}
+
+typedef matrix<float16_t, 4, 3> ary_ret[4];
+ary_ret v_12(uint start_byte_offset) {
+  matrix<float16_t, 4, 3> a[4] = (matrix<float16_t, 4, 3>[4])0;
+  {
+    uint v_13 = 0u;
+    v_13 = 0u;
+    while(true) {
+      uint v_14 = v_13;
+      if ((v_14 >= 4u)) {
+        break;
+      }
+      a[v_14] = v_5((start_byte_offset + (v_14 * 32u)));
+      {
+        v_13 = (v_14 + 1u);
+      }
+      continue;
+    }
+  }
+  matrix<float16_t, 4, 3> v_15[4] = a;
+  return v_15;
+}
+
+[numthreads(1, 1, 1)]
+void f() {
+  matrix<float16_t, 4, 3> v_16[4] = v_12(0u);
+  v_9(0u, v_16);
+  v_4(32u, v_5(64u));
+  s.Store<vector<float16_t, 3> >(32u, tint_bitcast_to_f16(u[0u]).xyz.zxy);
+  s.Store<float16_t>(32u, float16_t(f16tof32(u[0u].z)));
+}
+
diff --git a/test/tint/buffer/uniform/std140/array/mat4x3_f16/to_storage.wgsl.expected.ir.fxc.hlsl b/test/tint/buffer/uniform/std140/array/mat4x3_f16/to_storage.wgsl.expected.ir.fxc.hlsl
index 3f437dc..8f60a6c 100644
--- a/test/tint/buffer/uniform/std140/array/mat4x3_f16/to_storage.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/buffer/uniform/std140/array/mat4x3_f16/to_storage.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,85 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Access
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+
+cbuffer cbuffer_u : register(b0) {
+  uint4 u[8];
+};
+RWByteAddressBuffer s : register(u1);
+vector<float16_t, 4> tint_bitcast_to_f16(uint4 src) {
+  uint4 v = src;
+  uint4 mask = (65535u).xxxx;
+  uint4 shift = (16u).xxxx;
+  float4 t_low = f16tof32((v & mask));
+  float4 t_high = f16tof32(((v >> shift) & mask));
+  float16_t v_1 = float16_t(t_low.x);
+  float16_t v_2 = float16_t(t_high.x);
+  float16_t v_3 = float16_t(t_low.y);
+  return vector<float16_t, 4>(v_1, v_2, v_3, float16_t(t_high.y));
+}
+
+void v_4(uint offset, matrix<float16_t, 4, 3> obj) {
+  s.Store<vector<float16_t, 3> >((offset + 0u), obj[0u]);
+  s.Store<vector<float16_t, 3> >((offset + 8u), obj[1u]);
+  s.Store<vector<float16_t, 3> >((offset + 16u), obj[2u]);
+  s.Store<vector<float16_t, 3> >((offset + 24u), obj[3u]);
+}
+
+matrix<float16_t, 4, 3> v_5(uint start_byte_offset) {
+  vector<float16_t, 3> v_6 = tint_bitcast_to_f16(u[(start_byte_offset / 16u)]).xyz;
+  vector<float16_t, 3> v_7 = tint_bitcast_to_f16(u[((8u + start_byte_offset) / 16u)]).xyz;
+  vector<float16_t, 3> v_8 = tint_bitcast_to_f16(u[((16u + start_byte_offset) / 16u)]).xyz;
+  return matrix<float16_t, 4, 3>(v_6, v_7, v_8, tint_bitcast_to_f16(u[((24u + start_byte_offset) / 16u)]).xyz);
+}
+
+void v_9(uint offset, matrix<float16_t, 4, 3> obj[4]) {
+  {
+    uint v_10 = 0u;
+    v_10 = 0u;
+    while(true) {
+      uint v_11 = v_10;
+      if ((v_11 >= 4u)) {
+        break;
+      }
+      v_4((offset + (v_11 * 32u)), obj[v_11]);
+      {
+        v_10 = (v_11 + 1u);
+      }
+      continue;
+    }
+  }
+}
+
+typedef matrix<float16_t, 4, 3> ary_ret[4];
+ary_ret v_12(uint start_byte_offset) {
+  matrix<float16_t, 4, 3> a[4] = (matrix<float16_t, 4, 3>[4])0;
+  {
+    uint v_13 = 0u;
+    v_13 = 0u;
+    while(true) {
+      uint v_14 = v_13;
+      if ((v_14 >= 4u)) {
+        break;
+      }
+      a[v_14] = v_5((start_byte_offset + (v_14 * 32u)));
+      {
+        v_13 = (v_14 + 1u);
+      }
+      continue;
+    }
+  }
+  matrix<float16_t, 4, 3> v_15[4] = a;
+  return v_15;
+}
+
+[numthreads(1, 1, 1)]
+void f() {
+  matrix<float16_t, 4, 3> v_16[4] = v_12(0u);
+  v_9(0u, v_16);
+  v_4(32u, v_5(64u));
+  s.Store<vector<float16_t, 3> >(32u, tint_bitcast_to_f16(u[0u]).xyz.zxy);
+  s.Store<float16_t>(32u, float16_t(f16tof32(u[0u].z)));
+}
+
+FXC validation failure:
+c:\src\dawn\Shader@0x0000014EFF6D3800(6,8-16): error X3000: syntax error: unexpected token 'float16_t'
+
diff --git a/test/tint/buffer/uniform/std140/array/mat4x3_f16/to_workgroup.wgsl.expected.ir.dxc.hlsl b/test/tint/buffer/uniform/std140/array/mat4x3_f16/to_workgroup.wgsl.expected.ir.dxc.hlsl
index 3f437dc..cd7388b 100644
--- a/test/tint/buffer/uniform/std140/array/mat4x3_f16/to_workgroup.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/buffer/uniform/std140/array/mat4x3_f16/to_workgroup.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,79 @@
-SKIP: FAILED
+struct f_inputs {
+  uint tint_local_index : SV_GroupIndex;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Access
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+
+cbuffer cbuffer_u : register(b0) {
+  uint4 u[8];
+};
+groupshared matrix<float16_t, 4, 3> w[4];
+vector<float16_t, 4> tint_bitcast_to_f16(uint4 src) {
+  uint4 v = src;
+  uint4 mask = (65535u).xxxx;
+  uint4 shift = (16u).xxxx;
+  float4 t_low = f16tof32((v & mask));
+  float4 t_high = f16tof32(((v >> shift) & mask));
+  float16_t v_1 = float16_t(t_low.x);
+  float16_t v_2 = float16_t(t_high.x);
+  float16_t v_3 = float16_t(t_low.y);
+  return vector<float16_t, 4>(v_1, v_2, v_3, float16_t(t_high.y));
+}
+
+matrix<float16_t, 4, 3> v_4(uint start_byte_offset) {
+  vector<float16_t, 3> v_5 = tint_bitcast_to_f16(u[(start_byte_offset / 16u)]).xyz;
+  vector<float16_t, 3> v_6 = tint_bitcast_to_f16(u[((8u + start_byte_offset) / 16u)]).xyz;
+  vector<float16_t, 3> v_7 = tint_bitcast_to_f16(u[((16u + start_byte_offset) / 16u)]).xyz;
+  return matrix<float16_t, 4, 3>(v_5, v_6, v_7, tint_bitcast_to_f16(u[((24u + start_byte_offset) / 16u)]).xyz);
+}
+
+typedef matrix<float16_t, 4, 3> ary_ret[4];
+ary_ret v_8(uint start_byte_offset) {
+  matrix<float16_t, 4, 3> a[4] = (matrix<float16_t, 4, 3>[4])0;
+  {
+    uint v_9 = 0u;
+    v_9 = 0u;
+    while(true) {
+      uint v_10 = v_9;
+      if ((v_10 >= 4u)) {
+        break;
+      }
+      a[v_10] = v_4((start_byte_offset + (v_10 * 32u)));
+      {
+        v_9 = (v_10 + 1u);
+      }
+      continue;
+    }
+  }
+  matrix<float16_t, 4, 3> v_11[4] = a;
+  return v_11;
+}
+
+void f_inner(uint tint_local_index) {
+  {
+    uint v_12 = 0u;
+    v_12 = tint_local_index;
+    while(true) {
+      uint v_13 = v_12;
+      if ((v_13 >= 4u)) {
+        break;
+      }
+      w[v_13] = matrix<float16_t, 4, 3>((float16_t(0.0h)).xxx, (float16_t(0.0h)).xxx, (float16_t(0.0h)).xxx, (float16_t(0.0h)).xxx);
+      {
+        v_12 = (v_13 + 1u);
+      }
+      continue;
+    }
+  }
+  GroupMemoryBarrierWithGroupSync();
+  matrix<float16_t, 4, 3> v_14[4] = v_8(0u);
+  w = v_14;
+  w[1] = v_4(64u);
+  w[1][0] = tint_bitcast_to_f16(u[0u]).xyz.zxy;
+  w[1][0][0u] = float16_t(f16tof32(u[0u].z));
+}
+
+[numthreads(1, 1, 1)]
+void f(f_inputs inputs) {
+  f_inner(inputs.tint_local_index);
+}
+
diff --git a/test/tint/buffer/uniform/std140/array/mat4x3_f16/to_workgroup.wgsl.expected.ir.fxc.hlsl b/test/tint/buffer/uniform/std140/array/mat4x3_f16/to_workgroup.wgsl.expected.ir.fxc.hlsl
index 3f437dc..524b9a6 100644
--- a/test/tint/buffer/uniform/std140/array/mat4x3_f16/to_workgroup.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/buffer/uniform/std140/array/mat4x3_f16/to_workgroup.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,84 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Access
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct f_inputs {
+  uint tint_local_index : SV_GroupIndex;
+};
+
+
+cbuffer cbuffer_u : register(b0) {
+  uint4 u[8];
+};
+groupshared matrix<float16_t, 4, 3> w[4];
+vector<float16_t, 4> tint_bitcast_to_f16(uint4 src) {
+  uint4 v = src;
+  uint4 mask = (65535u).xxxx;
+  uint4 shift = (16u).xxxx;
+  float4 t_low = f16tof32((v & mask));
+  float4 t_high = f16tof32(((v >> shift) & mask));
+  float16_t v_1 = float16_t(t_low.x);
+  float16_t v_2 = float16_t(t_high.x);
+  float16_t v_3 = float16_t(t_low.y);
+  return vector<float16_t, 4>(v_1, v_2, v_3, float16_t(t_high.y));
+}
+
+matrix<float16_t, 4, 3> v_4(uint start_byte_offset) {
+  vector<float16_t, 3> v_5 = tint_bitcast_to_f16(u[(start_byte_offset / 16u)]).xyz;
+  vector<float16_t, 3> v_6 = tint_bitcast_to_f16(u[((8u + start_byte_offset) / 16u)]).xyz;
+  vector<float16_t, 3> v_7 = tint_bitcast_to_f16(u[((16u + start_byte_offset) / 16u)]).xyz;
+  return matrix<float16_t, 4, 3>(v_5, v_6, v_7, tint_bitcast_to_f16(u[((24u + start_byte_offset) / 16u)]).xyz);
+}
+
+typedef matrix<float16_t, 4, 3> ary_ret[4];
+ary_ret v_8(uint start_byte_offset) {
+  matrix<float16_t, 4, 3> a[4] = (matrix<float16_t, 4, 3>[4])0;
+  {
+    uint v_9 = 0u;
+    v_9 = 0u;
+    while(true) {
+      uint v_10 = v_9;
+      if ((v_10 >= 4u)) {
+        break;
+      }
+      a[v_10] = v_4((start_byte_offset + (v_10 * 32u)));
+      {
+        v_9 = (v_10 + 1u);
+      }
+      continue;
+    }
+  }
+  matrix<float16_t, 4, 3> v_11[4] = a;
+  return v_11;
+}
+
+void f_inner(uint tint_local_index) {
+  {
+    uint v_12 = 0u;
+    v_12 = tint_local_index;
+    while(true) {
+      uint v_13 = v_12;
+      if ((v_13 >= 4u)) {
+        break;
+      }
+      w[v_13] = matrix<float16_t, 4, 3>((float16_t(0.0h)).xxx, (float16_t(0.0h)).xxx, (float16_t(0.0h)).xxx, (float16_t(0.0h)).xxx);
+      {
+        v_12 = (v_13 + 1u);
+      }
+      continue;
+    }
+  }
+  GroupMemoryBarrierWithGroupSync();
+  matrix<float16_t, 4, 3> v_14[4] = v_8(0u);
+  w = v_14;
+  w[1] = v_4(64u);
+  w[1][0] = tint_bitcast_to_f16(u[0u]).xyz.zxy;
+  w[1][0][0u] = float16_t(f16tof32(u[0u].z));
+}
+
+[numthreads(1, 1, 1)]
+void f(f_inputs inputs) {
+  f_inner(inputs.tint_local_index);
+}
+
+FXC validation failure:
+c:\src\dawn\Shader@0x000001A35A028ED0(9,20-28): error X3000: syntax error: unexpected token 'float16_t'
+
diff --git a/test/tint/buffer/uniform/std140/array/mat4x3_f32/dynamic_index_via_ptr.wgsl.expected.ir.dxc.hlsl b/test/tint/buffer/uniform/std140/array/mat4x3_f32/dynamic_index_via_ptr.wgsl.expected.ir.dxc.hlsl
index 3f437dc..8f61ff5 100644
--- a/test/tint/buffer/uniform/std140/array/mat4x3_f32/dynamic_index_via_ptr.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/buffer/uniform/std140/array/mat4x3_f32/dynamic_index_via_ptr.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,51 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Access
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+cbuffer cbuffer_a : register(b0) {
+  uint4 a[16];
+};
+RWByteAddressBuffer s : register(u1);
+static int counter = 0;
+int i() {
+  counter = (counter + 1);
+  return counter;
+}
+
+float4x3 v(uint start_byte_offset) {
+  float3 v_1 = asfloat(a[(start_byte_offset / 16u)].xyz);
+  float3 v_2 = asfloat(a[((16u + start_byte_offset) / 16u)].xyz);
+  float3 v_3 = asfloat(a[((32u + start_byte_offset) / 16u)].xyz);
+  return float4x3(v_1, v_2, v_3, asfloat(a[((48u + start_byte_offset) / 16u)].xyz));
+}
+
+typedef float4x3 ary_ret[4];
+ary_ret v_4(uint start_byte_offset) {
+  float4x3 a[4] = (float4x3[4])0;
+  {
+    uint v_5 = 0u;
+    v_5 = 0u;
+    while(true) {
+      uint v_6 = v_5;
+      if ((v_6 >= 4u)) {
+        break;
+      }
+      a[v_6] = v((start_byte_offset + (v_6 * 64u)));
+      {
+        v_5 = (v_6 + 1u);
+      }
+      continue;
+    }
+  }
+  float4x3 v_7[4] = a;
+  return v_7;
+}
+
+[numthreads(1, 1, 1)]
+void f() {
+  uint v_8 = (64u * uint(i()));
+  uint v_9 = (16u * uint(i()));
+  float4x3 v_10[4] = v_4(0u);
+  float4x3 l_a_i = v((v_8 + v_9));
+  float3 l_a_i_i = asfloat(a[((v_8 + v_9) / 16u)].xyz);
+  float4x3 l_a[4] = v_10;
+  s.Store(0u, asuint((((asfloat(a[((v_8 + v_9) / 16u)][(((v_8 + v_9) % 16u) / 4u)]) + l_a[0][0][0u]) + l_a_i[0][0u]) + l_a_i_i[0u])));
+}
+
diff --git a/test/tint/buffer/uniform/std140/array/mat4x3_f32/dynamic_index_via_ptr.wgsl.expected.ir.fxc.hlsl b/test/tint/buffer/uniform/std140/array/mat4x3_f32/dynamic_index_via_ptr.wgsl.expected.ir.fxc.hlsl
index 3f437dc..0a15e6c 100644
--- a/test/tint/buffer/uniform/std140/array/mat4x3_f32/dynamic_index_via_ptr.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/buffer/uniform/std140/array/mat4x3_f32/dynamic_index_via_ptr.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,51 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Access
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+cbuffer cbuffer_a : register(b0) {
+  uint4 a[16];
+};
+RWByteAddressBuffer s : register(u1);
+static int counter = 0;
+int i() {
+  counter = (counter + 1);
+  return counter;
+}
+
+float4x3 v(uint start_byte_offset) {
+  float3 v_1 = asfloat(a[(start_byte_offset / 16u)].xyz);
+  float3 v_2 = asfloat(a[((16u + start_byte_offset) / 16u)].xyz);
+  float3 v_3 = asfloat(a[((32u + start_byte_offset) / 16u)].xyz);
+  return float4x3(v_1, v_2, v_3, asfloat(a[((48u + start_byte_offset) / 16u)].xyz));
+}
+
+typedef float4x3 ary_ret[4];
+ary_ret v_4(uint start_byte_offset) {
+  float4x3 a[4] = (float4x3[4])0;
+  {
+    uint v_5 = 0u;
+    v_5 = 0u;
+    while(true) {
+      uint v_6 = v_5;
+      if ((v_6 >= 4u)) {
+        break;
+      }
+      a[v_6] = v((start_byte_offset + (v_6 * 64u)));
+      {
+        v_5 = (v_6 + 1u);
+      }
+      continue;
+    }
+  }
+  float4x3 v_7[4] = a;
+  return v_7;
+}
+
+[numthreads(1, 1, 1)]
+void f() {
+  uint v_8 = (64u * uint(i()));
+  uint v_9 = (16u * uint(i()));
+  float4x3 v_10[4] = v_4(0u);
+  float4x3 l_a_i = v(v_8);
+  float3 l_a_i_i = asfloat(a[((v_8 + v_9) / 16u)].xyz);
+  float4x3 l_a[4] = v_10;
+  s.Store(0u, asuint((((asfloat(a[((v_8 + v_9) / 16u)][(((v_8 + v_9) % 16u) / 4u)]) + l_a[0][0][0u]) + l_a_i[0][0u]) + l_a_i_i[0u])));
+}
+
diff --git a/test/tint/buffer/uniform/std140/array/mat4x3_f32/static_index_via_ptr.wgsl.expected.ir.dxc.hlsl b/test/tint/buffer/uniform/std140/array/mat4x3_f32/static_index_via_ptr.wgsl.expected.ir.dxc.hlsl
index 3f437dc..959612c 100644
--- a/test/tint/buffer/uniform/std140/array/mat4x3_f32/static_index_via_ptr.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/buffer/uniform/std140/array/mat4x3_f32/static_index_via_ptr.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,43 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Access
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+cbuffer cbuffer_a : register(b0) {
+  uint4 a[16];
+};
+RWByteAddressBuffer s : register(u1);
+float4x3 v(uint start_byte_offset) {
+  float3 v_1 = asfloat(a[(start_byte_offset / 16u)].xyz);
+  float3 v_2 = asfloat(a[((16u + start_byte_offset) / 16u)].xyz);
+  float3 v_3 = asfloat(a[((32u + start_byte_offset) / 16u)].xyz);
+  return float4x3(v_1, v_2, v_3, asfloat(a[((48u + start_byte_offset) / 16u)].xyz));
+}
+
+typedef float4x3 ary_ret[4];
+ary_ret v_4(uint start_byte_offset) {
+  float4x3 a[4] = (float4x3[4])0;
+  {
+    uint v_5 = 0u;
+    v_5 = 0u;
+    while(true) {
+      uint v_6 = v_5;
+      if ((v_6 >= 4u)) {
+        break;
+      }
+      a[v_6] = v((start_byte_offset + (v_6 * 64u)));
+      {
+        v_5 = (v_6 + 1u);
+      }
+      continue;
+    }
+  }
+  float4x3 v_7[4] = a;
+  return v_7;
+}
+
+[numthreads(1, 1, 1)]
+void f() {
+  float4x3 v_8[4] = v_4(0u);
+  float4x3 l_a_i = v(128u);
+  float3 l_a_i_i = asfloat(a[9u].xyz);
+  float4x3 l_a[4] = v_8;
+  s.Store(0u, asuint((((asfloat(a[9u].x) + l_a[0][0][0u]) + l_a_i[0][0u]) + l_a_i_i[0u])));
+}
+
diff --git a/test/tint/buffer/uniform/std140/array/mat4x3_f32/static_index_via_ptr.wgsl.expected.ir.fxc.hlsl b/test/tint/buffer/uniform/std140/array/mat4x3_f32/static_index_via_ptr.wgsl.expected.ir.fxc.hlsl
index 3f437dc..2db9988 100644
--- a/test/tint/buffer/uniform/std140/array/mat4x3_f32/static_index_via_ptr.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/buffer/uniform/std140/array/mat4x3_f32/static_index_via_ptr.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,43 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Access
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+cbuffer cbuffer_a : register(b0) {
+  uint4 a[16];
+};
+RWByteAddressBuffer s : register(u1);
+float4x3 v(uint start_byte_offset) {
+  float3 v_1 = asfloat(a[(start_byte_offset / 16u)].xyz);
+  float3 v_2 = asfloat(a[((16u + start_byte_offset) / 16u)].xyz);
+  float3 v_3 = asfloat(a[((32u + start_byte_offset) / 16u)].xyz);
+  return float4x3(v_1, v_2, v_3, asfloat(a[((48u + start_byte_offset) / 16u)].xyz));
+}
+
+typedef float4x3 ary_ret[4];
+ary_ret v_4(uint start_byte_offset) {
+  float4x3 a[4] = (float4x3[4])0;
+  {
+    uint v_5 = 0u;
+    v_5 = 0u;
+    while(true) {
+      uint v_6 = v_5;
+      if ((v_6 >= 4u)) {
+        break;
+      }
+      a[v_6] = v((start_byte_offset + (v_6 * 64u)));
+      {
+        v_5 = (v_6 + 1u);
+      }
+      continue;
+    }
+  }
+  float4x3 v_7[4] = a;
+  return v_7;
+}
+
+[numthreads(1, 1, 1)]
+void f() {
+  float4x3 v_8[4] = v_4(0u);
+  float4x3 l_a_i = v(144u);
+  float3 l_a_i_i = asfloat(a[9u].xyz);
+  float4x3 l_a[4] = v_8;
+  s.Store(0u, asuint((((asfloat(a[9u].x) + l_a[0][0][0u]) + l_a_i[0][0u]) + l_a_i_i[0u])));
+}
+
diff --git a/test/tint/buffer/uniform/std140/array/mat4x3_f32/to_builtin.wgsl.expected.ir.dxc.hlsl b/test/tint/buffer/uniform/std140/array/mat4x3_f32/to_builtin.wgsl.expected.ir.dxc.hlsl
index 3f437dc..841fd9f 100644
--- a/test/tint/buffer/uniform/std140/array/mat4x3_f32/to_builtin.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/buffer/uniform/std140/array/mat4x3_f32/to_builtin.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,21 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Access
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+cbuffer cbuffer_u : register(b0) {
+  uint4 u[16];
+};
+RWByteAddressBuffer s : register(u1);
+float4x3 v(uint start_byte_offset) {
+  float3 v_1 = asfloat(u[(start_byte_offset / 16u)].xyz);
+  float3 v_2 = asfloat(u[((16u + start_byte_offset) / 16u)].xyz);
+  float3 v_3 = asfloat(u[((32u + start_byte_offset) / 16u)].xyz);
+  return float4x3(v_1, v_2, v_3, asfloat(u[((48u + start_byte_offset) / 16u)].xyz));
+}
+
+[numthreads(1, 1, 1)]
+void f() {
+  float3x4 t = transpose(v(128u));
+  float l = length(asfloat(u[1u].xyz).zxy);
+  float a = abs(asfloat(u[1u].xyz).zxy[0u]);
+  float v_4 = (t[0][0u] + float(l));
+  s.Store(0u, asuint((v_4 + float(a))));
+}
+
diff --git a/test/tint/buffer/uniform/std140/array/mat4x3_f32/to_builtin.wgsl.expected.ir.fxc.hlsl b/test/tint/buffer/uniform/std140/array/mat4x3_f32/to_builtin.wgsl.expected.ir.fxc.hlsl
index 3f437dc..841fd9f 100644
--- a/test/tint/buffer/uniform/std140/array/mat4x3_f32/to_builtin.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/buffer/uniform/std140/array/mat4x3_f32/to_builtin.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,21 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Access
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+cbuffer cbuffer_u : register(b0) {
+  uint4 u[16];
+};
+RWByteAddressBuffer s : register(u1);
+float4x3 v(uint start_byte_offset) {
+  float3 v_1 = asfloat(u[(start_byte_offset / 16u)].xyz);
+  float3 v_2 = asfloat(u[((16u + start_byte_offset) / 16u)].xyz);
+  float3 v_3 = asfloat(u[((32u + start_byte_offset) / 16u)].xyz);
+  return float4x3(v_1, v_2, v_3, asfloat(u[((48u + start_byte_offset) / 16u)].xyz));
+}
+
+[numthreads(1, 1, 1)]
+void f() {
+  float3x4 t = transpose(v(128u));
+  float l = length(asfloat(u[1u].xyz).zxy);
+  float a = abs(asfloat(u[1u].xyz).zxy[0u]);
+  float v_4 = (t[0][0u] + float(l));
+  s.Store(0u, asuint((v_4 + float(a))));
+}
+
diff --git a/test/tint/buffer/uniform/std140/array/mat4x3_f32/to_fn.wgsl.expected.ir.dxc.hlsl b/test/tint/buffer/uniform/std140/array/mat4x3_f32/to_fn.wgsl.expected.ir.dxc.hlsl
index 3f437dc..6f044ff 100644
--- a/test/tint/buffer/uniform/std140/array/mat4x3_f32/to_fn.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/buffer/uniform/std140/array/mat4x3_f32/to_fn.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,59 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Access
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+cbuffer cbuffer_u : register(b0) {
+  uint4 u[16];
+};
+RWByteAddressBuffer s : register(u1);
+float a(float4x3 a_1[4]) {
+  return a_1[0][0][0u];
+}
+
+float b(float4x3 m) {
+  return m[0][0u];
+}
+
+float c(float3 v) {
+  return v[0u];
+}
+
+float d(float f) {
+  return f;
+}
+
+float4x3 v_1(uint start_byte_offset) {
+  float3 v_2 = asfloat(u[(start_byte_offset / 16u)].xyz);
+  float3 v_3 = asfloat(u[((16u + start_byte_offset) / 16u)].xyz);
+  float3 v_4 = asfloat(u[((32u + start_byte_offset) / 16u)].xyz);
+  return float4x3(v_2, v_3, v_4, asfloat(u[((48u + start_byte_offset) / 16u)].xyz));
+}
+
+typedef float4x3 ary_ret[4];
+ary_ret v_5(uint start_byte_offset) {
+  float4x3 a[4] = (float4x3[4])0;
+  {
+    uint v_6 = 0u;
+    v_6 = 0u;
+    while(true) {
+      uint v_7 = v_6;
+      if ((v_7 >= 4u)) {
+        break;
+      }
+      a[v_7] = v_1((start_byte_offset + (v_7 * 64u)));
+      {
+        v_6 = (v_7 + 1u);
+      }
+      continue;
+    }
+  }
+  float4x3 v_8[4] = a;
+  return v_8;
+}
+
+[numthreads(1, 1, 1)]
+void f() {
+  float4x3 v_9[4] = v_5(0u);
+  float v_10 = a(v_9);
+  float v_11 = (v_10 + b(v_1(64u)));
+  float v_12 = (v_11 + c(asfloat(u[4u].xyz).zxy));
+  s.Store(0u, asuint((v_12 + d(asfloat(u[4u].xyz).zxy[0u]))));
+}
+
diff --git a/test/tint/buffer/uniform/std140/array/mat4x3_f32/to_fn.wgsl.expected.ir.fxc.hlsl b/test/tint/buffer/uniform/std140/array/mat4x3_f32/to_fn.wgsl.expected.ir.fxc.hlsl
index 3f437dc..6f044ff 100644
--- a/test/tint/buffer/uniform/std140/array/mat4x3_f32/to_fn.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/buffer/uniform/std140/array/mat4x3_f32/to_fn.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,59 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Access
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+cbuffer cbuffer_u : register(b0) {
+  uint4 u[16];
+};
+RWByteAddressBuffer s : register(u1);
+float a(float4x3 a_1[4]) {
+  return a_1[0][0][0u];
+}
+
+float b(float4x3 m) {
+  return m[0][0u];
+}
+
+float c(float3 v) {
+  return v[0u];
+}
+
+float d(float f) {
+  return f;
+}
+
+float4x3 v_1(uint start_byte_offset) {
+  float3 v_2 = asfloat(u[(start_byte_offset / 16u)].xyz);
+  float3 v_3 = asfloat(u[((16u + start_byte_offset) / 16u)].xyz);
+  float3 v_4 = asfloat(u[((32u + start_byte_offset) / 16u)].xyz);
+  return float4x3(v_2, v_3, v_4, asfloat(u[((48u + start_byte_offset) / 16u)].xyz));
+}
+
+typedef float4x3 ary_ret[4];
+ary_ret v_5(uint start_byte_offset) {
+  float4x3 a[4] = (float4x3[4])0;
+  {
+    uint v_6 = 0u;
+    v_6 = 0u;
+    while(true) {
+      uint v_7 = v_6;
+      if ((v_7 >= 4u)) {
+        break;
+      }
+      a[v_7] = v_1((start_byte_offset + (v_7 * 64u)));
+      {
+        v_6 = (v_7 + 1u);
+      }
+      continue;
+    }
+  }
+  float4x3 v_8[4] = a;
+  return v_8;
+}
+
+[numthreads(1, 1, 1)]
+void f() {
+  float4x3 v_9[4] = v_5(0u);
+  float v_10 = a(v_9);
+  float v_11 = (v_10 + b(v_1(64u)));
+  float v_12 = (v_11 + c(asfloat(u[4u].xyz).zxy));
+  s.Store(0u, asuint((v_12 + d(asfloat(u[4u].xyz).zxy[0u]))));
+}
+
diff --git a/test/tint/buffer/uniform/std140/array/mat4x3_f32/to_private.wgsl.expected.ir.dxc.hlsl b/test/tint/buffer/uniform/std140/array/mat4x3_f32/to_private.wgsl.expected.ir.dxc.hlsl
index 3f437dc..c5e585f 100644
--- a/test/tint/buffer/uniform/std140/array/mat4x3_f32/to_private.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/buffer/uniform/std140/array/mat4x3_f32/to_private.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,45 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Access
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+cbuffer cbuffer_u : register(b0) {
+  uint4 u[16];
+};
+RWByteAddressBuffer s : register(u1);
+static float4x3 p[4] = (float4x3[4])0;
+float4x3 v(uint start_byte_offset) {
+  float3 v_1 = asfloat(u[(start_byte_offset / 16u)].xyz);
+  float3 v_2 = asfloat(u[((16u + start_byte_offset) / 16u)].xyz);
+  float3 v_3 = asfloat(u[((32u + start_byte_offset) / 16u)].xyz);
+  return float4x3(v_1, v_2, v_3, asfloat(u[((48u + start_byte_offset) / 16u)].xyz));
+}
+
+typedef float4x3 ary_ret[4];
+ary_ret v_4(uint start_byte_offset) {
+  float4x3 a[4] = (float4x3[4])0;
+  {
+    uint v_5 = 0u;
+    v_5 = 0u;
+    while(true) {
+      uint v_6 = v_5;
+      if ((v_6 >= 4u)) {
+        break;
+      }
+      a[v_6] = v((start_byte_offset + (v_6 * 64u)));
+      {
+        v_5 = (v_6 + 1u);
+      }
+      continue;
+    }
+  }
+  float4x3 v_7[4] = a;
+  return v_7;
+}
+
+[numthreads(1, 1, 1)]
+void f() {
+  float4x3 v_8[4] = v_4(0u);
+  p = v_8;
+  p[1] = v(128u);
+  p[1][0] = asfloat(u[1u].xyz).zxy;
+  p[1][0][0u] = asfloat(u[1u].x);
+  s.Store(0u, asuint(p[1][0].x));
+}
+
diff --git a/test/tint/buffer/uniform/std140/array/mat4x3_f32/to_private.wgsl.expected.ir.fxc.hlsl b/test/tint/buffer/uniform/std140/array/mat4x3_f32/to_private.wgsl.expected.ir.fxc.hlsl
index 3f437dc..c5e585f 100644
--- a/test/tint/buffer/uniform/std140/array/mat4x3_f32/to_private.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/buffer/uniform/std140/array/mat4x3_f32/to_private.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,45 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Access
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+cbuffer cbuffer_u : register(b0) {
+  uint4 u[16];
+};
+RWByteAddressBuffer s : register(u1);
+static float4x3 p[4] = (float4x3[4])0;
+float4x3 v(uint start_byte_offset) {
+  float3 v_1 = asfloat(u[(start_byte_offset / 16u)].xyz);
+  float3 v_2 = asfloat(u[((16u + start_byte_offset) / 16u)].xyz);
+  float3 v_3 = asfloat(u[((32u + start_byte_offset) / 16u)].xyz);
+  return float4x3(v_1, v_2, v_3, asfloat(u[((48u + start_byte_offset) / 16u)].xyz));
+}
+
+typedef float4x3 ary_ret[4];
+ary_ret v_4(uint start_byte_offset) {
+  float4x3 a[4] = (float4x3[4])0;
+  {
+    uint v_5 = 0u;
+    v_5 = 0u;
+    while(true) {
+      uint v_6 = v_5;
+      if ((v_6 >= 4u)) {
+        break;
+      }
+      a[v_6] = v((start_byte_offset + (v_6 * 64u)));
+      {
+        v_5 = (v_6 + 1u);
+      }
+      continue;
+    }
+  }
+  float4x3 v_7[4] = a;
+  return v_7;
+}
+
+[numthreads(1, 1, 1)]
+void f() {
+  float4x3 v_8[4] = v_4(0u);
+  p = v_8;
+  p[1] = v(128u);
+  p[1][0] = asfloat(u[1u].xyz).zxy;
+  p[1][0][0u] = asfloat(u[1u].x);
+  s.Store(0u, asuint(p[1][0].x));
+}
+
diff --git a/test/tint/buffer/uniform/std140/array/mat4x3_f32/to_storage.wgsl.expected.ir.dxc.hlsl b/test/tint/buffer/uniform/std140/array/mat4x3_f32/to_storage.wgsl.expected.ir.dxc.hlsl
index 3f437dc..1913d44 100644
--- a/test/tint/buffer/uniform/std140/array/mat4x3_f32/to_storage.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/buffer/uniform/std140/array/mat4x3_f32/to_storage.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,68 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Access
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+cbuffer cbuffer_u : register(b0) {
+  uint4 u[16];
+};
+RWByteAddressBuffer s : register(u1);
+void v(uint offset, float4x3 obj) {
+  s.Store3((offset + 0u), asuint(obj[0u]));
+  s.Store3((offset + 16u), asuint(obj[1u]));
+  s.Store3((offset + 32u), asuint(obj[2u]));
+  s.Store3((offset + 48u), asuint(obj[3u]));
+}
+
+float4x3 v_1(uint start_byte_offset) {
+  float3 v_2 = asfloat(u[(start_byte_offset / 16u)].xyz);
+  float3 v_3 = asfloat(u[((16u + start_byte_offset) / 16u)].xyz);
+  float3 v_4 = asfloat(u[((32u + start_byte_offset) / 16u)].xyz);
+  return float4x3(v_2, v_3, v_4, asfloat(u[((48u + start_byte_offset) / 16u)].xyz));
+}
+
+void v_5(uint offset, float4x3 obj[4]) {
+  {
+    uint v_6 = 0u;
+    v_6 = 0u;
+    while(true) {
+      uint v_7 = v_6;
+      if ((v_7 >= 4u)) {
+        break;
+      }
+      v((offset + (v_7 * 64u)), obj[v_7]);
+      {
+        v_6 = (v_7 + 1u);
+      }
+      continue;
+    }
+  }
+}
+
+typedef float4x3 ary_ret[4];
+ary_ret v_8(uint start_byte_offset) {
+  float4x3 a[4] = (float4x3[4])0;
+  {
+    uint v_9 = 0u;
+    v_9 = 0u;
+    while(true) {
+      uint v_10 = v_9;
+      if ((v_10 >= 4u)) {
+        break;
+      }
+      a[v_10] = v_1((start_byte_offset + (v_10 * 64u)));
+      {
+        v_9 = (v_10 + 1u);
+      }
+      continue;
+    }
+  }
+  float4x3 v_11[4] = a;
+  return v_11;
+}
+
+[numthreads(1, 1, 1)]
+void f() {
+  float4x3 v_12[4] = v_8(0u);
+  v_5(0u, v_12);
+  v(64u, v_1(128u));
+  s.Store3(64u, asuint(asfloat(u[1u].xyz).zxy));
+  s.Store(64u, asuint(asfloat(u[1u].x)));
+}
+
diff --git a/test/tint/buffer/uniform/std140/array/mat4x3_f32/to_storage.wgsl.expected.ir.fxc.hlsl b/test/tint/buffer/uniform/std140/array/mat4x3_f32/to_storage.wgsl.expected.ir.fxc.hlsl
index 3f437dc..1913d44 100644
--- a/test/tint/buffer/uniform/std140/array/mat4x3_f32/to_storage.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/buffer/uniform/std140/array/mat4x3_f32/to_storage.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,68 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Access
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+cbuffer cbuffer_u : register(b0) {
+  uint4 u[16];
+};
+RWByteAddressBuffer s : register(u1);
+void v(uint offset, float4x3 obj) {
+  s.Store3((offset + 0u), asuint(obj[0u]));
+  s.Store3((offset + 16u), asuint(obj[1u]));
+  s.Store3((offset + 32u), asuint(obj[2u]));
+  s.Store3((offset + 48u), asuint(obj[3u]));
+}
+
+float4x3 v_1(uint start_byte_offset) {
+  float3 v_2 = asfloat(u[(start_byte_offset / 16u)].xyz);
+  float3 v_3 = asfloat(u[((16u + start_byte_offset) / 16u)].xyz);
+  float3 v_4 = asfloat(u[((32u + start_byte_offset) / 16u)].xyz);
+  return float4x3(v_2, v_3, v_4, asfloat(u[((48u + start_byte_offset) / 16u)].xyz));
+}
+
+void v_5(uint offset, float4x3 obj[4]) {
+  {
+    uint v_6 = 0u;
+    v_6 = 0u;
+    while(true) {
+      uint v_7 = v_6;
+      if ((v_7 >= 4u)) {
+        break;
+      }
+      v((offset + (v_7 * 64u)), obj[v_7]);
+      {
+        v_6 = (v_7 + 1u);
+      }
+      continue;
+    }
+  }
+}
+
+typedef float4x3 ary_ret[4];
+ary_ret v_8(uint start_byte_offset) {
+  float4x3 a[4] = (float4x3[4])0;
+  {
+    uint v_9 = 0u;
+    v_9 = 0u;
+    while(true) {
+      uint v_10 = v_9;
+      if ((v_10 >= 4u)) {
+        break;
+      }
+      a[v_10] = v_1((start_byte_offset + (v_10 * 64u)));
+      {
+        v_9 = (v_10 + 1u);
+      }
+      continue;
+    }
+  }
+  float4x3 v_11[4] = a;
+  return v_11;
+}
+
+[numthreads(1, 1, 1)]
+void f() {
+  float4x3 v_12[4] = v_8(0u);
+  v_5(0u, v_12);
+  v(64u, v_1(128u));
+  s.Store3(64u, asuint(asfloat(u[1u].xyz).zxy));
+  s.Store(64u, asuint(asfloat(u[1u].x)));
+}
+
diff --git a/test/tint/buffer/uniform/std140/array/mat4x3_f32/to_workgroup.wgsl.expected.ir.dxc.hlsl b/test/tint/buffer/uniform/std140/array/mat4x3_f32/to_workgroup.wgsl.expected.ir.dxc.hlsl
index 3f437dc..0a2241b 100644
--- a/test/tint/buffer/uniform/std140/array/mat4x3_f32/to_workgroup.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/buffer/uniform/std140/array/mat4x3_f32/to_workgroup.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,67 @@
-SKIP: FAILED
+struct f_inputs {
+  uint tint_local_index : SV_GroupIndex;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Access
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+
+cbuffer cbuffer_u : register(b0) {
+  uint4 u[16];
+};
+groupshared float4x3 w[4];
+float4x3 v(uint start_byte_offset) {
+  float3 v_1 = asfloat(u[(start_byte_offset / 16u)].xyz);
+  float3 v_2 = asfloat(u[((16u + start_byte_offset) / 16u)].xyz);
+  float3 v_3 = asfloat(u[((32u + start_byte_offset) / 16u)].xyz);
+  return float4x3(v_1, v_2, v_3, asfloat(u[((48u + start_byte_offset) / 16u)].xyz));
+}
+
+typedef float4x3 ary_ret[4];
+ary_ret v_4(uint start_byte_offset) {
+  float4x3 a[4] = (float4x3[4])0;
+  {
+    uint v_5 = 0u;
+    v_5 = 0u;
+    while(true) {
+      uint v_6 = v_5;
+      if ((v_6 >= 4u)) {
+        break;
+      }
+      a[v_6] = v((start_byte_offset + (v_6 * 64u)));
+      {
+        v_5 = (v_6 + 1u);
+      }
+      continue;
+    }
+  }
+  float4x3 v_7[4] = a;
+  return v_7;
+}
+
+void f_inner(uint tint_local_index) {
+  {
+    uint v_8 = 0u;
+    v_8 = tint_local_index;
+    while(true) {
+      uint v_9 = v_8;
+      if ((v_9 >= 4u)) {
+        break;
+      }
+      w[v_9] = float4x3((0.0f).xxx, (0.0f).xxx, (0.0f).xxx, (0.0f).xxx);
+      {
+        v_8 = (v_9 + 1u);
+      }
+      continue;
+    }
+  }
+  GroupMemoryBarrierWithGroupSync();
+  float4x3 v_10[4] = v_4(0u);
+  w = v_10;
+  w[1] = v(128u);
+  w[1][0] = asfloat(u[1u].xyz).zxy;
+  w[1][0][0u] = asfloat(u[1u].x);
+}
+
+[numthreads(1, 1, 1)]
+void f(f_inputs inputs) {
+  f_inner(inputs.tint_local_index);
+}
+
diff --git a/test/tint/buffer/uniform/std140/array/mat4x3_f32/to_workgroup.wgsl.expected.ir.fxc.hlsl b/test/tint/buffer/uniform/std140/array/mat4x3_f32/to_workgroup.wgsl.expected.ir.fxc.hlsl
index 3f437dc..0a2241b 100644
--- a/test/tint/buffer/uniform/std140/array/mat4x3_f32/to_workgroup.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/buffer/uniform/std140/array/mat4x3_f32/to_workgroup.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,67 @@
-SKIP: FAILED
+struct f_inputs {
+  uint tint_local_index : SV_GroupIndex;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Access
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+
+cbuffer cbuffer_u : register(b0) {
+  uint4 u[16];
+};
+groupshared float4x3 w[4];
+float4x3 v(uint start_byte_offset) {
+  float3 v_1 = asfloat(u[(start_byte_offset / 16u)].xyz);
+  float3 v_2 = asfloat(u[((16u + start_byte_offset) / 16u)].xyz);
+  float3 v_3 = asfloat(u[((32u + start_byte_offset) / 16u)].xyz);
+  return float4x3(v_1, v_2, v_3, asfloat(u[((48u + start_byte_offset) / 16u)].xyz));
+}
+
+typedef float4x3 ary_ret[4];
+ary_ret v_4(uint start_byte_offset) {
+  float4x3 a[4] = (float4x3[4])0;
+  {
+    uint v_5 = 0u;
+    v_5 = 0u;
+    while(true) {
+      uint v_6 = v_5;
+      if ((v_6 >= 4u)) {
+        break;
+      }
+      a[v_6] = v((start_byte_offset + (v_6 * 64u)));
+      {
+        v_5 = (v_6 + 1u);
+      }
+      continue;
+    }
+  }
+  float4x3 v_7[4] = a;
+  return v_7;
+}
+
+void f_inner(uint tint_local_index) {
+  {
+    uint v_8 = 0u;
+    v_8 = tint_local_index;
+    while(true) {
+      uint v_9 = v_8;
+      if ((v_9 >= 4u)) {
+        break;
+      }
+      w[v_9] = float4x3((0.0f).xxx, (0.0f).xxx, (0.0f).xxx, (0.0f).xxx);
+      {
+        v_8 = (v_9 + 1u);
+      }
+      continue;
+    }
+  }
+  GroupMemoryBarrierWithGroupSync();
+  float4x3 v_10[4] = v_4(0u);
+  w = v_10;
+  w[1] = v(128u);
+  w[1][0] = asfloat(u[1u].xyz).zxy;
+  w[1][0][0u] = asfloat(u[1u].x);
+}
+
+[numthreads(1, 1, 1)]
+void f(f_inputs inputs) {
+  f_inner(inputs.tint_local_index);
+}
+
diff --git a/test/tint/buffer/uniform/std140/array/mat4x4_f16/dynamic_index_via_ptr.wgsl.expected.ir.dxc.hlsl b/test/tint/buffer/uniform/std140/array/mat4x4_f16/dynamic_index_via_ptr.wgsl.expected.ir.dxc.hlsl
index 3f437dc..c60eb74 100644
--- a/test/tint/buffer/uniform/std140/array/mat4x4_f16/dynamic_index_via_ptr.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/buffer/uniform/std140/array/mat4x4_f16/dynamic_index_via_ptr.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,64 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Access
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+cbuffer cbuffer_a : register(b0) {
+  uint4 a[8];
+};
+RWByteAddressBuffer s : register(u1);
+static int counter = 0;
+int i() {
+  counter = (counter + 1);
+  return counter;
+}
+
+vector<float16_t, 4> tint_bitcast_to_f16(uint4 src) {
+  uint4 v = src;
+  uint4 mask = (65535u).xxxx;
+  uint4 shift = (16u).xxxx;
+  float4 t_low = f16tof32((v & mask));
+  float4 t_high = f16tof32(((v >> shift) & mask));
+  float16_t v_1 = float16_t(t_low.x);
+  float16_t v_2 = float16_t(t_high.x);
+  float16_t v_3 = float16_t(t_low.y);
+  return vector<float16_t, 4>(v_1, v_2, v_3, float16_t(t_high.y));
+}
+
+matrix<float16_t, 4, 4> v_4(uint start_byte_offset) {
+  vector<float16_t, 4> v_5 = tint_bitcast_to_f16(a[(start_byte_offset / 16u)]);
+  vector<float16_t, 4> v_6 = tint_bitcast_to_f16(a[((8u + start_byte_offset) / 16u)]);
+  vector<float16_t, 4> v_7 = tint_bitcast_to_f16(a[((16u + start_byte_offset) / 16u)]);
+  return matrix<float16_t, 4, 4>(v_5, v_6, v_7, tint_bitcast_to_f16(a[((24u + start_byte_offset) / 16u)]));
+}
+
+typedef matrix<float16_t, 4, 4> ary_ret[4];
+ary_ret v_8(uint start_byte_offset) {
+  matrix<float16_t, 4, 4> a[4] = (matrix<float16_t, 4, 4>[4])0;
+  {
+    uint v_9 = 0u;
+    v_9 = 0u;
+    while(true) {
+      uint v_10 = v_9;
+      if ((v_10 >= 4u)) {
+        break;
+      }
+      a[v_10] = v_4((start_byte_offset + (v_10 * 32u)));
+      {
+        v_9 = (v_10 + 1u);
+      }
+      continue;
+    }
+  }
+  matrix<float16_t, 4, 4> v_11[4] = a;
+  return v_11;
+}
+
+[numthreads(1, 1, 1)]
+void f() {
+  uint v_12 = (32u * uint(i()));
+  uint v_13 = (8u * uint(i()));
+  matrix<float16_t, 4, 4> v_14[4] = v_8(0u);
+  matrix<float16_t, 4, 4> l_a_i = v_4((v_12 + v_13));
+  vector<float16_t, 4> l_a_i_i = tint_bitcast_to_f16(a[((v_12 + v_13) / 16u)]);
+  uint v_15 = a[((v_12 + v_13) / 16u)][(((v_12 + v_13) % 16u) / 4u)];
+  matrix<float16_t, 4, 4> l_a[4] = v_14;
+  s.Store<float16_t>(0u, (((float16_t(f16tof32((v_15 >> (((((v_12 + v_13) % 4u) == 0u)) ? (0u) : (16u))))) + l_a[0][0][0u]) + l_a_i[0][0u]) + l_a_i_i[0u]));
+}
+
diff --git a/test/tint/buffer/uniform/std140/array/mat4x4_f16/dynamic_index_via_ptr.wgsl.expected.ir.fxc.hlsl b/test/tint/buffer/uniform/std140/array/mat4x4_f16/dynamic_index_via_ptr.wgsl.expected.ir.fxc.hlsl
index 3f437dc..074bda9 100644
--- a/test/tint/buffer/uniform/std140/array/mat4x4_f16/dynamic_index_via_ptr.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/buffer/uniform/std140/array/mat4x4_f16/dynamic_index_via_ptr.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,69 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Access
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+
+cbuffer cbuffer_a : register(b0) {
+  uint4 a[8];
+};
+RWByteAddressBuffer s : register(u1);
+static int counter = 0;
+int i() {
+  counter = (counter + 1);
+  return counter;
+}
+
+vector<float16_t, 4> tint_bitcast_to_f16(uint4 src) {
+  uint4 v = src;
+  uint4 mask = (65535u).xxxx;
+  uint4 shift = (16u).xxxx;
+  float4 t_low = f16tof32((v & mask));
+  float4 t_high = f16tof32(((v >> shift) & mask));
+  float16_t v_1 = float16_t(t_low.x);
+  float16_t v_2 = float16_t(t_high.x);
+  float16_t v_3 = float16_t(t_low.y);
+  return vector<float16_t, 4>(v_1, v_2, v_3, float16_t(t_high.y));
+}
+
+matrix<float16_t, 4, 4> v_4(uint start_byte_offset) {
+  vector<float16_t, 4> v_5 = tint_bitcast_to_f16(a[(start_byte_offset / 16u)]);
+  vector<float16_t, 4> v_6 = tint_bitcast_to_f16(a[((8u + start_byte_offset) / 16u)]);
+  vector<float16_t, 4> v_7 = tint_bitcast_to_f16(a[((16u + start_byte_offset) / 16u)]);
+  return matrix<float16_t, 4, 4>(v_5, v_6, v_7, tint_bitcast_to_f16(a[((24u + start_byte_offset) / 16u)]));
+}
+
+typedef matrix<float16_t, 4, 4> ary_ret[4];
+ary_ret v_8(uint start_byte_offset) {
+  matrix<float16_t, 4, 4> a[4] = (matrix<float16_t, 4, 4>[4])0;
+  {
+    uint v_9 = 0u;
+    v_9 = 0u;
+    while(true) {
+      uint v_10 = v_9;
+      if ((v_10 >= 4u)) {
+        break;
+      }
+      a[v_10] = v_4((start_byte_offset + (v_10 * 32u)));
+      {
+        v_9 = (v_10 + 1u);
+      }
+      continue;
+    }
+  }
+  matrix<float16_t, 4, 4> v_11[4] = a;
+  return v_11;
+}
+
+[numthreads(1, 1, 1)]
+void f() {
+  uint v_12 = (32u * uint(i()));
+  uint v_13 = (8u * uint(i()));
+  matrix<float16_t, 4, 4> v_14[4] = v_8(0u);
+  matrix<float16_t, 4, 4> l_a_i = v_4(v_12);
+  vector<float16_t, 4> l_a_i_i = tint_bitcast_to_f16(a[((v_12 + v_13) / 16u)]);
+  uint v_15 = a[((v_12 + v_13) / 16u)][(((v_12 + v_13) % 16u) / 4u)];
+  matrix<float16_t, 4, 4> l_a[4] = v_14;
+  s.Store<float16_t>(0u, (((float16_t(f16tof32((v_15 >> (((((v_12 + v_13) % 4u) == 0u)) ? (0u) : (16u))))) + l_a[0][0][0u]) + l_a_i[0][0u]) + l_a_i_i[0u]));
+}
+
+FXC validation failure:
+c:\src\dawn\Shader@0x000001E005B777C0(12,8-16): error X3000: syntax error: unexpected token 'float16_t'
+
diff --git a/test/tint/buffer/uniform/std140/array/mat4x4_f16/static_index_via_ptr.wgsl.expected.ir.dxc.hlsl b/test/tint/buffer/uniform/std140/array/mat4x4_f16/static_index_via_ptr.wgsl.expected.ir.dxc.hlsl
index 3f437dc..047ba3e 100644
--- a/test/tint/buffer/uniform/std140/array/mat4x4_f16/static_index_via_ptr.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/buffer/uniform/std140/array/mat4x4_f16/static_index_via_ptr.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,55 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Access
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+cbuffer cbuffer_a : register(b0) {
+  uint4 a[8];
+};
+RWByteAddressBuffer s : register(u1);
+vector<float16_t, 4> tint_bitcast_to_f16(uint4 src) {
+  uint4 v = src;
+  uint4 mask = (65535u).xxxx;
+  uint4 shift = (16u).xxxx;
+  float4 t_low = f16tof32((v & mask));
+  float4 t_high = f16tof32(((v >> shift) & mask));
+  float16_t v_1 = float16_t(t_low.x);
+  float16_t v_2 = float16_t(t_high.x);
+  float16_t v_3 = float16_t(t_low.y);
+  return vector<float16_t, 4>(v_1, v_2, v_3, float16_t(t_high.y));
+}
+
+matrix<float16_t, 4, 4> v_4(uint start_byte_offset) {
+  vector<float16_t, 4> v_5 = tint_bitcast_to_f16(a[(start_byte_offset / 16u)]);
+  vector<float16_t, 4> v_6 = tint_bitcast_to_f16(a[((8u + start_byte_offset) / 16u)]);
+  vector<float16_t, 4> v_7 = tint_bitcast_to_f16(a[((16u + start_byte_offset) / 16u)]);
+  return matrix<float16_t, 4, 4>(v_5, v_6, v_7, tint_bitcast_to_f16(a[((24u + start_byte_offset) / 16u)]));
+}
+
+typedef matrix<float16_t, 4, 4> ary_ret[4];
+ary_ret v_8(uint start_byte_offset) {
+  matrix<float16_t, 4, 4> a[4] = (matrix<float16_t, 4, 4>[4])0;
+  {
+    uint v_9 = 0u;
+    v_9 = 0u;
+    while(true) {
+      uint v_10 = v_9;
+      if ((v_10 >= 4u)) {
+        break;
+      }
+      a[v_10] = v_4((start_byte_offset + (v_10 * 32u)));
+      {
+        v_9 = (v_10 + 1u);
+      }
+      continue;
+    }
+  }
+  matrix<float16_t, 4, 4> v_11[4] = a;
+  return v_11;
+}
+
+[numthreads(1, 1, 1)]
+void f() {
+  matrix<float16_t, 4, 4> v_12[4] = v_8(0u);
+  matrix<float16_t, 4, 4> l_a_i = v_4(64u);
+  vector<float16_t, 4> l_a_i_i = tint_bitcast_to_f16(a[4u]);
+  matrix<float16_t, 4, 4> l_a[4] = v_12;
+  s.Store<float16_t>(0u, (((float16_t(f16tof32(a[4u].z)) + l_a[0][0][0u]) + l_a_i[0][0u]) + l_a_i_i[0u]));
+}
+
diff --git a/test/tint/buffer/uniform/std140/array/mat4x4_f16/static_index_via_ptr.wgsl.expected.ir.fxc.hlsl b/test/tint/buffer/uniform/std140/array/mat4x4_f16/static_index_via_ptr.wgsl.expected.ir.fxc.hlsl
index 3f437dc..f8f7211 100644
--- a/test/tint/buffer/uniform/std140/array/mat4x4_f16/static_index_via_ptr.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/buffer/uniform/std140/array/mat4x4_f16/static_index_via_ptr.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,60 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Access
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+
+cbuffer cbuffer_a : register(b0) {
+  uint4 a[8];
+};
+RWByteAddressBuffer s : register(u1);
+vector<float16_t, 4> tint_bitcast_to_f16(uint4 src) {
+  uint4 v = src;
+  uint4 mask = (65535u).xxxx;
+  uint4 shift = (16u).xxxx;
+  float4 t_low = f16tof32((v & mask));
+  float4 t_high = f16tof32(((v >> shift) & mask));
+  float16_t v_1 = float16_t(t_low.x);
+  float16_t v_2 = float16_t(t_high.x);
+  float16_t v_3 = float16_t(t_low.y);
+  return vector<float16_t, 4>(v_1, v_2, v_3, float16_t(t_high.y));
+}
+
+matrix<float16_t, 4, 4> v_4(uint start_byte_offset) {
+  vector<float16_t, 4> v_5 = tint_bitcast_to_f16(a[(start_byte_offset / 16u)]);
+  vector<float16_t, 4> v_6 = tint_bitcast_to_f16(a[((8u + start_byte_offset) / 16u)]);
+  vector<float16_t, 4> v_7 = tint_bitcast_to_f16(a[((16u + start_byte_offset) / 16u)]);
+  return matrix<float16_t, 4, 4>(v_5, v_6, v_7, tint_bitcast_to_f16(a[((24u + start_byte_offset) / 16u)]));
+}
+
+typedef matrix<float16_t, 4, 4> ary_ret[4];
+ary_ret v_8(uint start_byte_offset) {
+  matrix<float16_t, 4, 4> a[4] = (matrix<float16_t, 4, 4>[4])0;
+  {
+    uint v_9 = 0u;
+    v_9 = 0u;
+    while(true) {
+      uint v_10 = v_9;
+      if ((v_10 >= 4u)) {
+        break;
+      }
+      a[v_10] = v_4((start_byte_offset + (v_10 * 32u)));
+      {
+        v_9 = (v_10 + 1u);
+      }
+      continue;
+    }
+  }
+  matrix<float16_t, 4, 4> v_11[4] = a;
+  return v_11;
+}
+
+[numthreads(1, 1, 1)]
+void f() {
+  matrix<float16_t, 4, 4> v_12[4] = v_8(0u);
+  matrix<float16_t, 4, 4> l_a_i = v_4(72u);
+  vector<float16_t, 4> l_a_i_i = tint_bitcast_to_f16(a[4u]);
+  matrix<float16_t, 4, 4> l_a[4] = v_12;
+  s.Store<float16_t>(0u, (((float16_t(f16tof32(a[4u].z)) + l_a[0][0][0u]) + l_a_i[0][0u]) + l_a_i_i[0u]));
+}
+
+FXC validation failure:
+c:\src\dawn\Shader@0x000002AA51903E20(6,8-16): error X3000: syntax error: unexpected token 'float16_t'
+
diff --git a/test/tint/buffer/uniform/std140/array/mat4x4_f16/to_builtin.wgsl.expected.ir.dxc.hlsl b/test/tint/buffer/uniform/std140/array/mat4x4_f16/to_builtin.wgsl.expected.ir.dxc.hlsl
index 3f437dc..3671164 100644
--- a/test/tint/buffer/uniform/std140/array/mat4x4_f16/to_builtin.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/buffer/uniform/std140/array/mat4x4_f16/to_builtin.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,33 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Access
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+cbuffer cbuffer_u : register(b0) {
+  uint4 u[8];
+};
+RWByteAddressBuffer s : register(u1);
+vector<float16_t, 4> tint_bitcast_to_f16(uint4 src) {
+  uint4 v = src;
+  uint4 mask = (65535u).xxxx;
+  uint4 shift = (16u).xxxx;
+  float4 t_low = f16tof32((v & mask));
+  float4 t_high = f16tof32(((v >> shift) & mask));
+  float16_t v_1 = float16_t(t_low.x);
+  float16_t v_2 = float16_t(t_high.x);
+  float16_t v_3 = float16_t(t_low.y);
+  return vector<float16_t, 4>(v_1, v_2, v_3, float16_t(t_high.y));
+}
+
+matrix<float16_t, 4, 4> v_4(uint start_byte_offset) {
+  vector<float16_t, 4> v_5 = tint_bitcast_to_f16(u[(start_byte_offset / 16u)]);
+  vector<float16_t, 4> v_6 = tint_bitcast_to_f16(u[((8u + start_byte_offset) / 16u)]);
+  vector<float16_t, 4> v_7 = tint_bitcast_to_f16(u[((16u + start_byte_offset) / 16u)]);
+  return matrix<float16_t, 4, 4>(v_5, v_6, v_7, tint_bitcast_to_f16(u[((24u + start_byte_offset) / 16u)]));
+}
+
+[numthreads(1, 1, 1)]
+void f() {
+  matrix<float16_t, 4, 4> t = transpose(v_4(64u));
+  float16_t l = length(tint_bitcast_to_f16(u[0u]).ywxz);
+  float16_t a = abs(tint_bitcast_to_f16(u[0u]).ywxz[0u]);
+  float16_t v_8 = (t[0][0u] + float16_t(l));
+  s.Store<float16_t>(0u, (v_8 + float16_t(a)));
+}
+
diff --git a/test/tint/buffer/uniform/std140/array/mat4x4_f16/to_builtin.wgsl.expected.ir.fxc.hlsl b/test/tint/buffer/uniform/std140/array/mat4x4_f16/to_builtin.wgsl.expected.ir.fxc.hlsl
index 3f437dc..0330ad2 100644
--- a/test/tint/buffer/uniform/std140/array/mat4x4_f16/to_builtin.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/buffer/uniform/std140/array/mat4x4_f16/to_builtin.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,38 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Access
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+
+cbuffer cbuffer_u : register(b0) {
+  uint4 u[8];
+};
+RWByteAddressBuffer s : register(u1);
+vector<float16_t, 4> tint_bitcast_to_f16(uint4 src) {
+  uint4 v = src;
+  uint4 mask = (65535u).xxxx;
+  uint4 shift = (16u).xxxx;
+  float4 t_low = f16tof32((v & mask));
+  float4 t_high = f16tof32(((v >> shift) & mask));
+  float16_t v_1 = float16_t(t_low.x);
+  float16_t v_2 = float16_t(t_high.x);
+  float16_t v_3 = float16_t(t_low.y);
+  return vector<float16_t, 4>(v_1, v_2, v_3, float16_t(t_high.y));
+}
+
+matrix<float16_t, 4, 4> v_4(uint start_byte_offset) {
+  vector<float16_t, 4> v_5 = tint_bitcast_to_f16(u[(start_byte_offset / 16u)]);
+  vector<float16_t, 4> v_6 = tint_bitcast_to_f16(u[((8u + start_byte_offset) / 16u)]);
+  vector<float16_t, 4> v_7 = tint_bitcast_to_f16(u[((16u + start_byte_offset) / 16u)]);
+  return matrix<float16_t, 4, 4>(v_5, v_6, v_7, tint_bitcast_to_f16(u[((24u + start_byte_offset) / 16u)]));
+}
+
+[numthreads(1, 1, 1)]
+void f() {
+  matrix<float16_t, 4, 4> t = transpose(v_4(64u));
+  float16_t l = length(tint_bitcast_to_f16(u[0u]).ywxz);
+  float16_t a = abs(tint_bitcast_to_f16(u[0u]).ywxz[0u]);
+  float16_t v_8 = (t[0][0u] + float16_t(l));
+  s.Store<float16_t>(0u, (v_8 + float16_t(a)));
+}
+
+FXC validation failure:
+c:\src\dawn\Shader@0x000001B415E6B5E0(6,8-16): error X3000: syntax error: unexpected token 'float16_t'
+
diff --git a/test/tint/buffer/uniform/std140/array/mat4x4_f16/to_fn.wgsl.expected.ir.dxc.hlsl b/test/tint/buffer/uniform/std140/array/mat4x4_f16/to_fn.wgsl.expected.ir.dxc.hlsl
index 3f437dc..fd64919 100644
--- a/test/tint/buffer/uniform/std140/array/mat4x4_f16/to_fn.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/buffer/uniform/std140/array/mat4x4_f16/to_fn.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,71 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Access
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+cbuffer cbuffer_u : register(b0) {
+  uint4 u[8];
+};
+RWByteAddressBuffer s : register(u1);
+float16_t a(matrix<float16_t, 4, 4> a_1[4]) {
+  return a_1[0][0][0u];
+}
+
+float16_t b(matrix<float16_t, 4, 4> m) {
+  return m[0][0u];
+}
+
+float16_t c(vector<float16_t, 4> v) {
+  return v[0u];
+}
+
+float16_t d(float16_t f) {
+  return f;
+}
+
+vector<float16_t, 4> tint_bitcast_to_f16(uint4 src) {
+  uint4 v = src;
+  uint4 mask = (65535u).xxxx;
+  uint4 shift = (16u).xxxx;
+  float4 t_low = f16tof32((v & mask));
+  float4 t_high = f16tof32(((v >> shift) & mask));
+  float16_t v_1 = float16_t(t_low.x);
+  float16_t v_2 = float16_t(t_high.x);
+  float16_t v_3 = float16_t(t_low.y);
+  return vector<float16_t, 4>(v_1, v_2, v_3, float16_t(t_high.y));
+}
+
+matrix<float16_t, 4, 4> v_4(uint start_byte_offset) {
+  vector<float16_t, 4> v_5 = tint_bitcast_to_f16(u[(start_byte_offset / 16u)]);
+  vector<float16_t, 4> v_6 = tint_bitcast_to_f16(u[((8u + start_byte_offset) / 16u)]);
+  vector<float16_t, 4> v_7 = tint_bitcast_to_f16(u[((16u + start_byte_offset) / 16u)]);
+  return matrix<float16_t, 4, 4>(v_5, v_6, v_7, tint_bitcast_to_f16(u[((24u + start_byte_offset) / 16u)]));
+}
+
+typedef matrix<float16_t, 4, 4> ary_ret[4];
+ary_ret v_8(uint start_byte_offset) {
+  matrix<float16_t, 4, 4> a[4] = (matrix<float16_t, 4, 4>[4])0;
+  {
+    uint v_9 = 0u;
+    v_9 = 0u;
+    while(true) {
+      uint v_10 = v_9;
+      if ((v_10 >= 4u)) {
+        break;
+      }
+      a[v_10] = v_4((start_byte_offset + (v_10 * 32u)));
+      {
+        v_9 = (v_10 + 1u);
+      }
+      continue;
+    }
+  }
+  matrix<float16_t, 4, 4> v_11[4] = a;
+  return v_11;
+}
+
+[numthreads(1, 1, 1)]
+void f() {
+  matrix<float16_t, 4, 4> v_12[4] = v_8(0u);
+  float16_t v_13 = a(v_12);
+  float16_t v_14 = (v_13 + b(v_4(32u)));
+  float16_t v_15 = (v_14 + c(tint_bitcast_to_f16(u[2u]).ywxz));
+  s.Store<float16_t>(0u, (v_15 + d(tint_bitcast_to_f16(u[2u]).ywxz[0u])));
+}
+
diff --git a/test/tint/buffer/uniform/std140/array/mat4x4_f16/to_fn.wgsl.expected.ir.fxc.hlsl b/test/tint/buffer/uniform/std140/array/mat4x4_f16/to_fn.wgsl.expected.ir.fxc.hlsl
index 3f437dc..bb334da 100644
--- a/test/tint/buffer/uniform/std140/array/mat4x4_f16/to_fn.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/buffer/uniform/std140/array/mat4x4_f16/to_fn.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,76 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Access
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+
+cbuffer cbuffer_u : register(b0) {
+  uint4 u[8];
+};
+RWByteAddressBuffer s : register(u1);
+float16_t a(matrix<float16_t, 4, 4> a_1[4]) {
+  return a_1[0][0][0u];
+}
+
+float16_t b(matrix<float16_t, 4, 4> m) {
+  return m[0][0u];
+}
+
+float16_t c(vector<float16_t, 4> v) {
+  return v[0u];
+}
+
+float16_t d(float16_t f) {
+  return f;
+}
+
+vector<float16_t, 4> tint_bitcast_to_f16(uint4 src) {
+  uint4 v = src;
+  uint4 mask = (65535u).xxxx;
+  uint4 shift = (16u).xxxx;
+  float4 t_low = f16tof32((v & mask));
+  float4 t_high = f16tof32(((v >> shift) & mask));
+  float16_t v_1 = float16_t(t_low.x);
+  float16_t v_2 = float16_t(t_high.x);
+  float16_t v_3 = float16_t(t_low.y);
+  return vector<float16_t, 4>(v_1, v_2, v_3, float16_t(t_high.y));
+}
+
+matrix<float16_t, 4, 4> v_4(uint start_byte_offset) {
+  vector<float16_t, 4> v_5 = tint_bitcast_to_f16(u[(start_byte_offset / 16u)]);
+  vector<float16_t, 4> v_6 = tint_bitcast_to_f16(u[((8u + start_byte_offset) / 16u)]);
+  vector<float16_t, 4> v_7 = tint_bitcast_to_f16(u[((16u + start_byte_offset) / 16u)]);
+  return matrix<float16_t, 4, 4>(v_5, v_6, v_7, tint_bitcast_to_f16(u[((24u + start_byte_offset) / 16u)]));
+}
+
+typedef matrix<float16_t, 4, 4> ary_ret[4];
+ary_ret v_8(uint start_byte_offset) {
+  matrix<float16_t, 4, 4> a[4] = (matrix<float16_t, 4, 4>[4])0;
+  {
+    uint v_9 = 0u;
+    v_9 = 0u;
+    while(true) {
+      uint v_10 = v_9;
+      if ((v_10 >= 4u)) {
+        break;
+      }
+      a[v_10] = v_4((start_byte_offset + (v_10 * 32u)));
+      {
+        v_9 = (v_10 + 1u);
+      }
+      continue;
+    }
+  }
+  matrix<float16_t, 4, 4> v_11[4] = a;
+  return v_11;
+}
+
+[numthreads(1, 1, 1)]
+void f() {
+  matrix<float16_t, 4, 4> v_12[4] = v_8(0u);
+  float16_t v_13 = a(v_12);
+  float16_t v_14 = (v_13 + b(v_4(32u)));
+  float16_t v_15 = (v_14 + c(tint_bitcast_to_f16(u[2u]).ywxz));
+  s.Store<float16_t>(0u, (v_15 + d(tint_bitcast_to_f16(u[2u]).ywxz[0u])));
+}
+
+FXC validation failure:
+c:\src\dawn\Shader@0x0000027725473850(6,1-9): error X3000: unrecognized identifier 'float16_t'
+
diff --git a/test/tint/buffer/uniform/std140/array/mat4x4_f16/to_private.wgsl.expected.ir.dxc.hlsl b/test/tint/buffer/uniform/std140/array/mat4x4_f16/to_private.wgsl.expected.ir.dxc.hlsl
index 3f437dc..801d6ac 100644
--- a/test/tint/buffer/uniform/std140/array/mat4x4_f16/to_private.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/buffer/uniform/std140/array/mat4x4_f16/to_private.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,57 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Access
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+cbuffer cbuffer_u : register(b0) {
+  uint4 u[8];
+};
+RWByteAddressBuffer s : register(u1);
+static matrix<float16_t, 4, 4> p[4] = (matrix<float16_t, 4, 4>[4])0;
+vector<float16_t, 4> tint_bitcast_to_f16(uint4 src) {
+  uint4 v = src;
+  uint4 mask = (65535u).xxxx;
+  uint4 shift = (16u).xxxx;
+  float4 t_low = f16tof32((v & mask));
+  float4 t_high = f16tof32(((v >> shift) & mask));
+  float16_t v_1 = float16_t(t_low.x);
+  float16_t v_2 = float16_t(t_high.x);
+  float16_t v_3 = float16_t(t_low.y);
+  return vector<float16_t, 4>(v_1, v_2, v_3, float16_t(t_high.y));
+}
+
+matrix<float16_t, 4, 4> v_4(uint start_byte_offset) {
+  vector<float16_t, 4> v_5 = tint_bitcast_to_f16(u[(start_byte_offset / 16u)]);
+  vector<float16_t, 4> v_6 = tint_bitcast_to_f16(u[((8u + start_byte_offset) / 16u)]);
+  vector<float16_t, 4> v_7 = tint_bitcast_to_f16(u[((16u + start_byte_offset) / 16u)]);
+  return matrix<float16_t, 4, 4>(v_5, v_6, v_7, tint_bitcast_to_f16(u[((24u + start_byte_offset) / 16u)]));
+}
+
+typedef matrix<float16_t, 4, 4> ary_ret[4];
+ary_ret v_8(uint start_byte_offset) {
+  matrix<float16_t, 4, 4> a[4] = (matrix<float16_t, 4, 4>[4])0;
+  {
+    uint v_9 = 0u;
+    v_9 = 0u;
+    while(true) {
+      uint v_10 = v_9;
+      if ((v_10 >= 4u)) {
+        break;
+      }
+      a[v_10] = v_4((start_byte_offset + (v_10 * 32u)));
+      {
+        v_9 = (v_10 + 1u);
+      }
+      continue;
+    }
+  }
+  matrix<float16_t, 4, 4> v_11[4] = a;
+  return v_11;
+}
+
+[numthreads(1, 1, 1)]
+void f() {
+  matrix<float16_t, 4, 4> v_12[4] = v_8(0u);
+  p = v_12;
+  p[1] = v_4(64u);
+  p[1][0] = tint_bitcast_to_f16(u[0u]).ywxz;
+  p[1][0][0u] = float16_t(f16tof32(u[0u].z));
+  s.Store<float16_t>(0u, p[1][0].x);
+}
+
diff --git a/test/tint/buffer/uniform/std140/array/mat4x4_f16/to_private.wgsl.expected.ir.fxc.hlsl b/test/tint/buffer/uniform/std140/array/mat4x4_f16/to_private.wgsl.expected.ir.fxc.hlsl
index 3f437dc..2ba5989 100644
--- a/test/tint/buffer/uniform/std140/array/mat4x4_f16/to_private.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/buffer/uniform/std140/array/mat4x4_f16/to_private.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,62 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Access
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+
+cbuffer cbuffer_u : register(b0) {
+  uint4 u[8];
+};
+RWByteAddressBuffer s : register(u1);
+static matrix<float16_t, 4, 4> p[4] = (matrix<float16_t, 4, 4>[4])0;
+vector<float16_t, 4> tint_bitcast_to_f16(uint4 src) {
+  uint4 v = src;
+  uint4 mask = (65535u).xxxx;
+  uint4 shift = (16u).xxxx;
+  float4 t_low = f16tof32((v & mask));
+  float4 t_high = f16tof32(((v >> shift) & mask));
+  float16_t v_1 = float16_t(t_low.x);
+  float16_t v_2 = float16_t(t_high.x);
+  float16_t v_3 = float16_t(t_low.y);
+  return vector<float16_t, 4>(v_1, v_2, v_3, float16_t(t_high.y));
+}
+
+matrix<float16_t, 4, 4> v_4(uint start_byte_offset) {
+  vector<float16_t, 4> v_5 = tint_bitcast_to_f16(u[(start_byte_offset / 16u)]);
+  vector<float16_t, 4> v_6 = tint_bitcast_to_f16(u[((8u + start_byte_offset) / 16u)]);
+  vector<float16_t, 4> v_7 = tint_bitcast_to_f16(u[((16u + start_byte_offset) / 16u)]);
+  return matrix<float16_t, 4, 4>(v_5, v_6, v_7, tint_bitcast_to_f16(u[((24u + start_byte_offset) / 16u)]));
+}
+
+typedef matrix<float16_t, 4, 4> ary_ret[4];
+ary_ret v_8(uint start_byte_offset) {
+  matrix<float16_t, 4, 4> a[4] = (matrix<float16_t, 4, 4>[4])0;
+  {
+    uint v_9 = 0u;
+    v_9 = 0u;
+    while(true) {
+      uint v_10 = v_9;
+      if ((v_10 >= 4u)) {
+        break;
+      }
+      a[v_10] = v_4((start_byte_offset + (v_10 * 32u)));
+      {
+        v_9 = (v_10 + 1u);
+      }
+      continue;
+    }
+  }
+  matrix<float16_t, 4, 4> v_11[4] = a;
+  return v_11;
+}
+
+[numthreads(1, 1, 1)]
+void f() {
+  matrix<float16_t, 4, 4> v_12[4] = v_8(0u);
+  p = v_12;
+  p[1] = v_4(64u);
+  p[1][0] = tint_bitcast_to_f16(u[0u]).ywxz;
+  p[1][0][0u] = float16_t(f16tof32(u[0u].z));
+  s.Store<float16_t>(0u, p[1][0].x);
+}
+
+FXC validation failure:
+c:\src\dawn\Shader@0x000001C79C451900(6,15-23): error X3000: syntax error: unexpected token 'float16_t'
+
diff --git a/test/tint/buffer/uniform/std140/array/mat4x4_f16/to_storage.wgsl.expected.ir.dxc.hlsl b/test/tint/buffer/uniform/std140/array/mat4x4_f16/to_storage.wgsl.expected.ir.dxc.hlsl
index 3f437dc..e4a4bc5 100644
--- a/test/tint/buffer/uniform/std140/array/mat4x4_f16/to_storage.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/buffer/uniform/std140/array/mat4x4_f16/to_storage.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,80 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Access
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+cbuffer cbuffer_u : register(b0) {
+  uint4 u[8];
+};
+RWByteAddressBuffer s : register(u1);
+vector<float16_t, 4> tint_bitcast_to_f16(uint4 src) {
+  uint4 v = src;
+  uint4 mask = (65535u).xxxx;
+  uint4 shift = (16u).xxxx;
+  float4 t_low = f16tof32((v & mask));
+  float4 t_high = f16tof32(((v >> shift) & mask));
+  float16_t v_1 = float16_t(t_low.x);
+  float16_t v_2 = float16_t(t_high.x);
+  float16_t v_3 = float16_t(t_low.y);
+  return vector<float16_t, 4>(v_1, v_2, v_3, float16_t(t_high.y));
+}
+
+void v_4(uint offset, matrix<float16_t, 4, 4> obj) {
+  s.Store<vector<float16_t, 4> >((offset + 0u), obj[0u]);
+  s.Store<vector<float16_t, 4> >((offset + 8u), obj[1u]);
+  s.Store<vector<float16_t, 4> >((offset + 16u), obj[2u]);
+  s.Store<vector<float16_t, 4> >((offset + 24u), obj[3u]);
+}
+
+matrix<float16_t, 4, 4> v_5(uint start_byte_offset) {
+  vector<float16_t, 4> v_6 = tint_bitcast_to_f16(u[(start_byte_offset / 16u)]);
+  vector<float16_t, 4> v_7 = tint_bitcast_to_f16(u[((8u + start_byte_offset) / 16u)]);
+  vector<float16_t, 4> v_8 = tint_bitcast_to_f16(u[((16u + start_byte_offset) / 16u)]);
+  return matrix<float16_t, 4, 4>(v_6, v_7, v_8, tint_bitcast_to_f16(u[((24u + start_byte_offset) / 16u)]));
+}
+
+void v_9(uint offset, matrix<float16_t, 4, 4> obj[4]) {
+  {
+    uint v_10 = 0u;
+    v_10 = 0u;
+    while(true) {
+      uint v_11 = v_10;
+      if ((v_11 >= 4u)) {
+        break;
+      }
+      v_4((offset + (v_11 * 32u)), obj[v_11]);
+      {
+        v_10 = (v_11 + 1u);
+      }
+      continue;
+    }
+  }
+}
+
+typedef matrix<float16_t, 4, 4> ary_ret[4];
+ary_ret v_12(uint start_byte_offset) {
+  matrix<float16_t, 4, 4> a[4] = (matrix<float16_t, 4, 4>[4])0;
+  {
+    uint v_13 = 0u;
+    v_13 = 0u;
+    while(true) {
+      uint v_14 = v_13;
+      if ((v_14 >= 4u)) {
+        break;
+      }
+      a[v_14] = v_5((start_byte_offset + (v_14 * 32u)));
+      {
+        v_13 = (v_14 + 1u);
+      }
+      continue;
+    }
+  }
+  matrix<float16_t, 4, 4> v_15[4] = a;
+  return v_15;
+}
+
+[numthreads(1, 1, 1)]
+void f() {
+  matrix<float16_t, 4, 4> v_16[4] = v_12(0u);
+  v_9(0u, v_16);
+  v_4(32u, v_5(64u));
+  s.Store<vector<float16_t, 4> >(32u, tint_bitcast_to_f16(u[0u]).ywxz);
+  s.Store<float16_t>(32u, float16_t(f16tof32(u[0u].z)));
+}
+
diff --git a/test/tint/buffer/uniform/std140/array/mat4x4_f16/to_storage.wgsl.expected.ir.fxc.hlsl b/test/tint/buffer/uniform/std140/array/mat4x4_f16/to_storage.wgsl.expected.ir.fxc.hlsl
index 3f437dc..de2c876 100644
--- a/test/tint/buffer/uniform/std140/array/mat4x4_f16/to_storage.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/buffer/uniform/std140/array/mat4x4_f16/to_storage.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,85 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Access
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+
+cbuffer cbuffer_u : register(b0) {
+  uint4 u[8];
+};
+RWByteAddressBuffer s : register(u1);
+vector<float16_t, 4> tint_bitcast_to_f16(uint4 src) {
+  uint4 v = src;
+  uint4 mask = (65535u).xxxx;
+  uint4 shift = (16u).xxxx;
+  float4 t_low = f16tof32((v & mask));
+  float4 t_high = f16tof32(((v >> shift) & mask));
+  float16_t v_1 = float16_t(t_low.x);
+  float16_t v_2 = float16_t(t_high.x);
+  float16_t v_3 = float16_t(t_low.y);
+  return vector<float16_t, 4>(v_1, v_2, v_3, float16_t(t_high.y));
+}
+
+void v_4(uint offset, matrix<float16_t, 4, 4> obj) {
+  s.Store<vector<float16_t, 4> >((offset + 0u), obj[0u]);
+  s.Store<vector<float16_t, 4> >((offset + 8u), obj[1u]);
+  s.Store<vector<float16_t, 4> >((offset + 16u), obj[2u]);
+  s.Store<vector<float16_t, 4> >((offset + 24u), obj[3u]);
+}
+
+matrix<float16_t, 4, 4> v_5(uint start_byte_offset) {
+  vector<float16_t, 4> v_6 = tint_bitcast_to_f16(u[(start_byte_offset / 16u)]);
+  vector<float16_t, 4> v_7 = tint_bitcast_to_f16(u[((8u + start_byte_offset) / 16u)]);
+  vector<float16_t, 4> v_8 = tint_bitcast_to_f16(u[((16u + start_byte_offset) / 16u)]);
+  return matrix<float16_t, 4, 4>(v_6, v_7, v_8, tint_bitcast_to_f16(u[((24u + start_byte_offset) / 16u)]));
+}
+
+void v_9(uint offset, matrix<float16_t, 4, 4> obj[4]) {
+  {
+    uint v_10 = 0u;
+    v_10 = 0u;
+    while(true) {
+      uint v_11 = v_10;
+      if ((v_11 >= 4u)) {
+        break;
+      }
+      v_4((offset + (v_11 * 32u)), obj[v_11]);
+      {
+        v_10 = (v_11 + 1u);
+      }
+      continue;
+    }
+  }
+}
+
+typedef matrix<float16_t, 4, 4> ary_ret[4];
+ary_ret v_12(uint start_byte_offset) {
+  matrix<float16_t, 4, 4> a[4] = (matrix<float16_t, 4, 4>[4])0;
+  {
+    uint v_13 = 0u;
+    v_13 = 0u;
+    while(true) {
+      uint v_14 = v_13;
+      if ((v_14 >= 4u)) {
+        break;
+      }
+      a[v_14] = v_5((start_byte_offset + (v_14 * 32u)));
+      {
+        v_13 = (v_14 + 1u);
+      }
+      continue;
+    }
+  }
+  matrix<float16_t, 4, 4> v_15[4] = a;
+  return v_15;
+}
+
+[numthreads(1, 1, 1)]
+void f() {
+  matrix<float16_t, 4, 4> v_16[4] = v_12(0u);
+  v_9(0u, v_16);
+  v_4(32u, v_5(64u));
+  s.Store<vector<float16_t, 4> >(32u, tint_bitcast_to_f16(u[0u]).ywxz);
+  s.Store<float16_t>(32u, float16_t(f16tof32(u[0u].z)));
+}
+
+FXC validation failure:
+c:\src\dawn\Shader@0x00000154B6B217E0(6,8-16): error X3000: syntax error: unexpected token 'float16_t'
+
diff --git a/test/tint/buffer/uniform/std140/array/mat4x4_f16/to_workgroup.wgsl.expected.ir.dxc.hlsl b/test/tint/buffer/uniform/std140/array/mat4x4_f16/to_workgroup.wgsl.expected.ir.dxc.hlsl
index 3f437dc..223a422 100644
--- a/test/tint/buffer/uniform/std140/array/mat4x4_f16/to_workgroup.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/buffer/uniform/std140/array/mat4x4_f16/to_workgroup.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,79 @@
-SKIP: FAILED
+struct f_inputs {
+  uint tint_local_index : SV_GroupIndex;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Access
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+
+cbuffer cbuffer_u : register(b0) {
+  uint4 u[8];
+};
+groupshared matrix<float16_t, 4, 4> w[4];
+vector<float16_t, 4> tint_bitcast_to_f16(uint4 src) {
+  uint4 v = src;
+  uint4 mask = (65535u).xxxx;
+  uint4 shift = (16u).xxxx;
+  float4 t_low = f16tof32((v & mask));
+  float4 t_high = f16tof32(((v >> shift) & mask));
+  float16_t v_1 = float16_t(t_low.x);
+  float16_t v_2 = float16_t(t_high.x);
+  float16_t v_3 = float16_t(t_low.y);
+  return vector<float16_t, 4>(v_1, v_2, v_3, float16_t(t_high.y));
+}
+
+matrix<float16_t, 4, 4> v_4(uint start_byte_offset) {
+  vector<float16_t, 4> v_5 = tint_bitcast_to_f16(u[(start_byte_offset / 16u)]);
+  vector<float16_t, 4> v_6 = tint_bitcast_to_f16(u[((8u + start_byte_offset) / 16u)]);
+  vector<float16_t, 4> v_7 = tint_bitcast_to_f16(u[((16u + start_byte_offset) / 16u)]);
+  return matrix<float16_t, 4, 4>(v_5, v_6, v_7, tint_bitcast_to_f16(u[((24u + start_byte_offset) / 16u)]));
+}
+
+typedef matrix<float16_t, 4, 4> ary_ret[4];
+ary_ret v_8(uint start_byte_offset) {
+  matrix<float16_t, 4, 4> a[4] = (matrix<float16_t, 4, 4>[4])0;
+  {
+    uint v_9 = 0u;
+    v_9 = 0u;
+    while(true) {
+      uint v_10 = v_9;
+      if ((v_10 >= 4u)) {
+        break;
+      }
+      a[v_10] = v_4((start_byte_offset + (v_10 * 32u)));
+      {
+        v_9 = (v_10 + 1u);
+      }
+      continue;
+    }
+  }
+  matrix<float16_t, 4, 4> v_11[4] = a;
+  return v_11;
+}
+
+void f_inner(uint tint_local_index) {
+  {
+    uint v_12 = 0u;
+    v_12 = tint_local_index;
+    while(true) {
+      uint v_13 = v_12;
+      if ((v_13 >= 4u)) {
+        break;
+      }
+      w[v_13] = matrix<float16_t, 4, 4>((float16_t(0.0h)).xxxx, (float16_t(0.0h)).xxxx, (float16_t(0.0h)).xxxx, (float16_t(0.0h)).xxxx);
+      {
+        v_12 = (v_13 + 1u);
+      }
+      continue;
+    }
+  }
+  GroupMemoryBarrierWithGroupSync();
+  matrix<float16_t, 4, 4> v_14[4] = v_8(0u);
+  w = v_14;
+  w[1] = v_4(64u);
+  w[1][0] = tint_bitcast_to_f16(u[0u]).ywxz;
+  w[1][0][0u] = float16_t(f16tof32(u[0u].z));
+}
+
+[numthreads(1, 1, 1)]
+void f(f_inputs inputs) {
+  f_inner(inputs.tint_local_index);
+}
+
diff --git a/test/tint/buffer/uniform/std140/array/mat4x4_f16/to_workgroup.wgsl.expected.ir.fxc.hlsl b/test/tint/buffer/uniform/std140/array/mat4x4_f16/to_workgroup.wgsl.expected.ir.fxc.hlsl
index 3f437dc..2e1044e 100644
--- a/test/tint/buffer/uniform/std140/array/mat4x4_f16/to_workgroup.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/buffer/uniform/std140/array/mat4x4_f16/to_workgroup.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,84 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Access
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct f_inputs {
+  uint tint_local_index : SV_GroupIndex;
+};
+
+
+cbuffer cbuffer_u : register(b0) {
+  uint4 u[8];
+};
+groupshared matrix<float16_t, 4, 4> w[4];
+vector<float16_t, 4> tint_bitcast_to_f16(uint4 src) {
+  uint4 v = src;
+  uint4 mask = (65535u).xxxx;
+  uint4 shift = (16u).xxxx;
+  float4 t_low = f16tof32((v & mask));
+  float4 t_high = f16tof32(((v >> shift) & mask));
+  float16_t v_1 = float16_t(t_low.x);
+  float16_t v_2 = float16_t(t_high.x);
+  float16_t v_3 = float16_t(t_low.y);
+  return vector<float16_t, 4>(v_1, v_2, v_3, float16_t(t_high.y));
+}
+
+matrix<float16_t, 4, 4> v_4(uint start_byte_offset) {
+  vector<float16_t, 4> v_5 = tint_bitcast_to_f16(u[(start_byte_offset / 16u)]);
+  vector<float16_t, 4> v_6 = tint_bitcast_to_f16(u[((8u + start_byte_offset) / 16u)]);
+  vector<float16_t, 4> v_7 = tint_bitcast_to_f16(u[((16u + start_byte_offset) / 16u)]);
+  return matrix<float16_t, 4, 4>(v_5, v_6, v_7, tint_bitcast_to_f16(u[((24u + start_byte_offset) / 16u)]));
+}
+
+typedef matrix<float16_t, 4, 4> ary_ret[4];
+ary_ret v_8(uint start_byte_offset) {
+  matrix<float16_t, 4, 4> a[4] = (matrix<float16_t, 4, 4>[4])0;
+  {
+    uint v_9 = 0u;
+    v_9 = 0u;
+    while(true) {
+      uint v_10 = v_9;
+      if ((v_10 >= 4u)) {
+        break;
+      }
+      a[v_10] = v_4((start_byte_offset + (v_10 * 32u)));
+      {
+        v_9 = (v_10 + 1u);
+      }
+      continue;
+    }
+  }
+  matrix<float16_t, 4, 4> v_11[4] = a;
+  return v_11;
+}
+
+void f_inner(uint tint_local_index) {
+  {
+    uint v_12 = 0u;
+    v_12 = tint_local_index;
+    while(true) {
+      uint v_13 = v_12;
+      if ((v_13 >= 4u)) {
+        break;
+      }
+      w[v_13] = matrix<float16_t, 4, 4>((float16_t(0.0h)).xxxx, (float16_t(0.0h)).xxxx, (float16_t(0.0h)).xxxx, (float16_t(0.0h)).xxxx);
+      {
+        v_12 = (v_13 + 1u);
+      }
+      continue;
+    }
+  }
+  GroupMemoryBarrierWithGroupSync();
+  matrix<float16_t, 4, 4> v_14[4] = v_8(0u);
+  w = v_14;
+  w[1] = v_4(64u);
+  w[1][0] = tint_bitcast_to_f16(u[0u]).ywxz;
+  w[1][0][0u] = float16_t(f16tof32(u[0u].z));
+}
+
+[numthreads(1, 1, 1)]
+void f(f_inputs inputs) {
+  f_inner(inputs.tint_local_index);
+}
+
+FXC validation failure:
+c:\src\dawn\Shader@0x0000021245AF6690(9,20-28): error X3000: syntax error: unexpected token 'float16_t'
+
diff --git a/test/tint/buffer/uniform/std140/array/mat4x4_f32/dynamic_index_via_ptr.wgsl.expected.ir.dxc.hlsl b/test/tint/buffer/uniform/std140/array/mat4x4_f32/dynamic_index_via_ptr.wgsl.expected.ir.dxc.hlsl
index 3f437dc..ad40630 100644
--- a/test/tint/buffer/uniform/std140/array/mat4x4_f32/dynamic_index_via_ptr.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/buffer/uniform/std140/array/mat4x4_f32/dynamic_index_via_ptr.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,51 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Access
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+cbuffer cbuffer_a : register(b0) {
+  uint4 a[16];
+};
+RWByteAddressBuffer s : register(u1);
+static int counter = 0;
+int i() {
+  counter = (counter + 1);
+  return counter;
+}
+
+float4x4 v(uint start_byte_offset) {
+  float4 v_1 = asfloat(a[(start_byte_offset / 16u)]);
+  float4 v_2 = asfloat(a[((16u + start_byte_offset) / 16u)]);
+  float4 v_3 = asfloat(a[((32u + start_byte_offset) / 16u)]);
+  return float4x4(v_1, v_2, v_3, asfloat(a[((48u + start_byte_offset) / 16u)]));
+}
+
+typedef float4x4 ary_ret[4];
+ary_ret v_4(uint start_byte_offset) {
+  float4x4 a[4] = (float4x4[4])0;
+  {
+    uint v_5 = 0u;
+    v_5 = 0u;
+    while(true) {
+      uint v_6 = v_5;
+      if ((v_6 >= 4u)) {
+        break;
+      }
+      a[v_6] = v((start_byte_offset + (v_6 * 64u)));
+      {
+        v_5 = (v_6 + 1u);
+      }
+      continue;
+    }
+  }
+  float4x4 v_7[4] = a;
+  return v_7;
+}
+
+[numthreads(1, 1, 1)]
+void f() {
+  uint v_8 = (64u * uint(i()));
+  uint v_9 = (16u * uint(i()));
+  float4x4 v_10[4] = v_4(0u);
+  float4x4 l_a_i = v(v_8);
+  float4 l_a_i_i = asfloat(a[((v_8 + v_9) / 16u)]);
+  float4x4 l_a[4] = v_10;
+  s.Store(0u, asuint((((asfloat(a[((v_8 + v_9) / 16u)][(((v_8 + v_9) % 16u) / 4u)]) + l_a[0][0][0u]) + l_a_i[0][0u]) + l_a_i_i[0u])));
+}
+
diff --git a/test/tint/buffer/uniform/std140/array/mat4x4_f32/dynamic_index_via_ptr.wgsl.expected.ir.fxc.hlsl b/test/tint/buffer/uniform/std140/array/mat4x4_f32/dynamic_index_via_ptr.wgsl.expected.ir.fxc.hlsl
index 3f437dc..60ccb6c 100644
--- a/test/tint/buffer/uniform/std140/array/mat4x4_f32/dynamic_index_via_ptr.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/buffer/uniform/std140/array/mat4x4_f32/dynamic_index_via_ptr.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,51 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Access
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+cbuffer cbuffer_a : register(b0) {
+  uint4 a[16];
+};
+RWByteAddressBuffer s : register(u1);
+static int counter = 0;
+int i() {
+  counter = (counter + 1);
+  return counter;
+}
+
+float4x4 v(uint start_byte_offset) {
+  float4 v_1 = asfloat(a[(start_byte_offset / 16u)]);
+  float4 v_2 = asfloat(a[((16u + start_byte_offset) / 16u)]);
+  float4 v_3 = asfloat(a[((32u + start_byte_offset) / 16u)]);
+  return float4x4(v_1, v_2, v_3, asfloat(a[((48u + start_byte_offset) / 16u)]));
+}
+
+typedef float4x4 ary_ret[4];
+ary_ret v_4(uint start_byte_offset) {
+  float4x4 a[4] = (float4x4[4])0;
+  {
+    uint v_5 = 0u;
+    v_5 = 0u;
+    while(true) {
+      uint v_6 = v_5;
+      if ((v_6 >= 4u)) {
+        break;
+      }
+      a[v_6] = v((start_byte_offset + (v_6 * 64u)));
+      {
+        v_5 = (v_6 + 1u);
+      }
+      continue;
+    }
+  }
+  float4x4 v_7[4] = a;
+  return v_7;
+}
+
+[numthreads(1, 1, 1)]
+void f() {
+  uint v_8 = (64u * uint(i()));
+  uint v_9 = (16u * uint(i()));
+  float4x4 v_10[4] = v_4(0u);
+  float4x4 l_a_i = v((v_8 + v_9));
+  float4 l_a_i_i = asfloat(a[((v_8 + v_9) / 16u)]);
+  float4x4 l_a[4] = v_10;
+  s.Store(0u, asuint((((asfloat(a[((v_8 + v_9) / 16u)][(((v_8 + v_9) % 16u) / 4u)]) + l_a[0][0][0u]) + l_a_i[0][0u]) + l_a_i_i[0u])));
+}
+
diff --git a/test/tint/buffer/uniform/std140/array/mat4x4_f32/static_index_via_ptr.wgsl.expected.ir.dxc.hlsl b/test/tint/buffer/uniform/std140/array/mat4x4_f32/static_index_via_ptr.wgsl.expected.ir.dxc.hlsl
index 3f437dc..e50d125 100644
--- a/test/tint/buffer/uniform/std140/array/mat4x4_f32/static_index_via_ptr.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/buffer/uniform/std140/array/mat4x4_f32/static_index_via_ptr.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,43 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Access
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+cbuffer cbuffer_a : register(b0) {
+  uint4 a[16];
+};
+RWByteAddressBuffer s : register(u1);
+float4x4 v(uint start_byte_offset) {
+  float4 v_1 = asfloat(a[(start_byte_offset / 16u)]);
+  float4 v_2 = asfloat(a[((16u + start_byte_offset) / 16u)]);
+  float4 v_3 = asfloat(a[((32u + start_byte_offset) / 16u)]);
+  return float4x4(v_1, v_2, v_3, asfloat(a[((48u + start_byte_offset) / 16u)]));
+}
+
+typedef float4x4 ary_ret[4];
+ary_ret v_4(uint start_byte_offset) {
+  float4x4 a[4] = (float4x4[4])0;
+  {
+    uint v_5 = 0u;
+    v_5 = 0u;
+    while(true) {
+      uint v_6 = v_5;
+      if ((v_6 >= 4u)) {
+        break;
+      }
+      a[v_6] = v((start_byte_offset + (v_6 * 64u)));
+      {
+        v_5 = (v_6 + 1u);
+      }
+      continue;
+    }
+  }
+  float4x4 v_7[4] = a;
+  return v_7;
+}
+
+[numthreads(1, 1, 1)]
+void f() {
+  float4x4 v_8[4] = v_4(0u);
+  float4x4 l_a_i = v(144u);
+  float4 l_a_i_i = asfloat(a[9u]);
+  float4x4 l_a[4] = v_8;
+  s.Store(0u, asuint((((asfloat(a[9u].x) + l_a[0][0][0u]) + l_a_i[0][0u]) + l_a_i_i[0u])));
+}
+
diff --git a/test/tint/buffer/uniform/std140/array/mat4x4_f32/static_index_via_ptr.wgsl.expected.ir.fxc.hlsl b/test/tint/buffer/uniform/std140/array/mat4x4_f32/static_index_via_ptr.wgsl.expected.ir.fxc.hlsl
index 3f437dc..e50d125 100644
--- a/test/tint/buffer/uniform/std140/array/mat4x4_f32/static_index_via_ptr.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/buffer/uniform/std140/array/mat4x4_f32/static_index_via_ptr.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,43 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Access
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+cbuffer cbuffer_a : register(b0) {
+  uint4 a[16];
+};
+RWByteAddressBuffer s : register(u1);
+float4x4 v(uint start_byte_offset) {
+  float4 v_1 = asfloat(a[(start_byte_offset / 16u)]);
+  float4 v_2 = asfloat(a[((16u + start_byte_offset) / 16u)]);
+  float4 v_3 = asfloat(a[((32u + start_byte_offset) / 16u)]);
+  return float4x4(v_1, v_2, v_3, asfloat(a[((48u + start_byte_offset) / 16u)]));
+}
+
+typedef float4x4 ary_ret[4];
+ary_ret v_4(uint start_byte_offset) {
+  float4x4 a[4] = (float4x4[4])0;
+  {
+    uint v_5 = 0u;
+    v_5 = 0u;
+    while(true) {
+      uint v_6 = v_5;
+      if ((v_6 >= 4u)) {
+        break;
+      }
+      a[v_6] = v((start_byte_offset + (v_6 * 64u)));
+      {
+        v_5 = (v_6 + 1u);
+      }
+      continue;
+    }
+  }
+  float4x4 v_7[4] = a;
+  return v_7;
+}
+
+[numthreads(1, 1, 1)]
+void f() {
+  float4x4 v_8[4] = v_4(0u);
+  float4x4 l_a_i = v(144u);
+  float4 l_a_i_i = asfloat(a[9u]);
+  float4x4 l_a[4] = v_8;
+  s.Store(0u, asuint((((asfloat(a[9u].x) + l_a[0][0][0u]) + l_a_i[0][0u]) + l_a_i_i[0u])));
+}
+
diff --git a/test/tint/buffer/uniform/std140/array/mat4x4_f32/to_builtin.wgsl.expected.ir.dxc.hlsl b/test/tint/buffer/uniform/std140/array/mat4x4_f32/to_builtin.wgsl.expected.ir.dxc.hlsl
index 3f437dc..2c012cc 100644
--- a/test/tint/buffer/uniform/std140/array/mat4x4_f32/to_builtin.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/buffer/uniform/std140/array/mat4x4_f32/to_builtin.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,21 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Access
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+cbuffer cbuffer_u : register(b0) {
+  uint4 u[16];
+};
+RWByteAddressBuffer s : register(u1);
+float4x4 v(uint start_byte_offset) {
+  float4 v_1 = asfloat(u[(start_byte_offset / 16u)]);
+  float4 v_2 = asfloat(u[((16u + start_byte_offset) / 16u)]);
+  float4 v_3 = asfloat(u[((32u + start_byte_offset) / 16u)]);
+  return float4x4(v_1, v_2, v_3, asfloat(u[((48u + start_byte_offset) / 16u)]));
+}
+
+[numthreads(1, 1, 1)]
+void f() {
+  float4x4 t = transpose(v(128u));
+  float l = length(asfloat(u[1u]).ywxz);
+  float a = abs(asfloat(u[1u]).ywxz[0u]);
+  float v_4 = (t[0][0u] + float(l));
+  s.Store(0u, asuint((v_4 + float(a))));
+}
+
diff --git a/test/tint/buffer/uniform/std140/array/mat4x4_f32/to_builtin.wgsl.expected.ir.fxc.hlsl b/test/tint/buffer/uniform/std140/array/mat4x4_f32/to_builtin.wgsl.expected.ir.fxc.hlsl
index 3f437dc..2c012cc 100644
--- a/test/tint/buffer/uniform/std140/array/mat4x4_f32/to_builtin.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/buffer/uniform/std140/array/mat4x4_f32/to_builtin.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,21 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Access
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+cbuffer cbuffer_u : register(b0) {
+  uint4 u[16];
+};
+RWByteAddressBuffer s : register(u1);
+float4x4 v(uint start_byte_offset) {
+  float4 v_1 = asfloat(u[(start_byte_offset / 16u)]);
+  float4 v_2 = asfloat(u[((16u + start_byte_offset) / 16u)]);
+  float4 v_3 = asfloat(u[((32u + start_byte_offset) / 16u)]);
+  return float4x4(v_1, v_2, v_3, asfloat(u[((48u + start_byte_offset) / 16u)]));
+}
+
+[numthreads(1, 1, 1)]
+void f() {
+  float4x4 t = transpose(v(128u));
+  float l = length(asfloat(u[1u]).ywxz);
+  float a = abs(asfloat(u[1u]).ywxz[0u]);
+  float v_4 = (t[0][0u] + float(l));
+  s.Store(0u, asuint((v_4 + float(a))));
+}
+
diff --git a/test/tint/buffer/uniform/std140/array/mat4x4_f32/to_fn.wgsl.expected.ir.dxc.hlsl b/test/tint/buffer/uniform/std140/array/mat4x4_f32/to_fn.wgsl.expected.ir.dxc.hlsl
index 3f437dc..ad14cb4 100644
--- a/test/tint/buffer/uniform/std140/array/mat4x4_f32/to_fn.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/buffer/uniform/std140/array/mat4x4_f32/to_fn.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,59 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Access
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+cbuffer cbuffer_u : register(b0) {
+  uint4 u[16];
+};
+RWByteAddressBuffer s : register(u1);
+float a(float4x4 a_1[4]) {
+  return a_1[0][0][0u];
+}
+
+float b(float4x4 m) {
+  return m[0][0u];
+}
+
+float c(float4 v) {
+  return v[0u];
+}
+
+float d(float f) {
+  return f;
+}
+
+float4x4 v_1(uint start_byte_offset) {
+  float4 v_2 = asfloat(u[(start_byte_offset / 16u)]);
+  float4 v_3 = asfloat(u[((16u + start_byte_offset) / 16u)]);
+  float4 v_4 = asfloat(u[((32u + start_byte_offset) / 16u)]);
+  return float4x4(v_2, v_3, v_4, asfloat(u[((48u + start_byte_offset) / 16u)]));
+}
+
+typedef float4x4 ary_ret[4];
+ary_ret v_5(uint start_byte_offset) {
+  float4x4 a[4] = (float4x4[4])0;
+  {
+    uint v_6 = 0u;
+    v_6 = 0u;
+    while(true) {
+      uint v_7 = v_6;
+      if ((v_7 >= 4u)) {
+        break;
+      }
+      a[v_7] = v_1((start_byte_offset + (v_7 * 64u)));
+      {
+        v_6 = (v_7 + 1u);
+      }
+      continue;
+    }
+  }
+  float4x4 v_8[4] = a;
+  return v_8;
+}
+
+[numthreads(1, 1, 1)]
+void f() {
+  float4x4 v_9[4] = v_5(0u);
+  float v_10 = a(v_9);
+  float v_11 = (v_10 + b(v_1(64u)));
+  float v_12 = (v_11 + c(asfloat(u[4u]).ywxz));
+  s.Store(0u, asuint((v_12 + d(asfloat(u[4u]).ywxz[0u]))));
+}
+
diff --git a/test/tint/buffer/uniform/std140/array/mat4x4_f32/to_fn.wgsl.expected.ir.fxc.hlsl b/test/tint/buffer/uniform/std140/array/mat4x4_f32/to_fn.wgsl.expected.ir.fxc.hlsl
index 3f437dc..ad14cb4 100644
--- a/test/tint/buffer/uniform/std140/array/mat4x4_f32/to_fn.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/buffer/uniform/std140/array/mat4x4_f32/to_fn.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,59 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Access
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+cbuffer cbuffer_u : register(b0) {
+  uint4 u[16];
+};
+RWByteAddressBuffer s : register(u1);
+float a(float4x4 a_1[4]) {
+  return a_1[0][0][0u];
+}
+
+float b(float4x4 m) {
+  return m[0][0u];
+}
+
+float c(float4 v) {
+  return v[0u];
+}
+
+float d(float f) {
+  return f;
+}
+
+float4x4 v_1(uint start_byte_offset) {
+  float4 v_2 = asfloat(u[(start_byte_offset / 16u)]);
+  float4 v_3 = asfloat(u[((16u + start_byte_offset) / 16u)]);
+  float4 v_4 = asfloat(u[((32u + start_byte_offset) / 16u)]);
+  return float4x4(v_2, v_3, v_4, asfloat(u[((48u + start_byte_offset) / 16u)]));
+}
+
+typedef float4x4 ary_ret[4];
+ary_ret v_5(uint start_byte_offset) {
+  float4x4 a[4] = (float4x4[4])0;
+  {
+    uint v_6 = 0u;
+    v_6 = 0u;
+    while(true) {
+      uint v_7 = v_6;
+      if ((v_7 >= 4u)) {
+        break;
+      }
+      a[v_7] = v_1((start_byte_offset + (v_7 * 64u)));
+      {
+        v_6 = (v_7 + 1u);
+      }
+      continue;
+    }
+  }
+  float4x4 v_8[4] = a;
+  return v_8;
+}
+
+[numthreads(1, 1, 1)]
+void f() {
+  float4x4 v_9[4] = v_5(0u);
+  float v_10 = a(v_9);
+  float v_11 = (v_10 + b(v_1(64u)));
+  float v_12 = (v_11 + c(asfloat(u[4u]).ywxz));
+  s.Store(0u, asuint((v_12 + d(asfloat(u[4u]).ywxz[0u]))));
+}
+
diff --git a/test/tint/buffer/uniform/std140/array/mat4x4_f32/to_private.wgsl.expected.ir.dxc.hlsl b/test/tint/buffer/uniform/std140/array/mat4x4_f32/to_private.wgsl.expected.ir.dxc.hlsl
index 3f437dc..f863d18 100644
--- a/test/tint/buffer/uniform/std140/array/mat4x4_f32/to_private.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/buffer/uniform/std140/array/mat4x4_f32/to_private.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,45 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Access
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+cbuffer cbuffer_u : register(b0) {
+  uint4 u[16];
+};
+RWByteAddressBuffer s : register(u1);
+static float4x4 p[4] = (float4x4[4])0;
+float4x4 v(uint start_byte_offset) {
+  float4 v_1 = asfloat(u[(start_byte_offset / 16u)]);
+  float4 v_2 = asfloat(u[((16u + start_byte_offset) / 16u)]);
+  float4 v_3 = asfloat(u[((32u + start_byte_offset) / 16u)]);
+  return float4x4(v_1, v_2, v_3, asfloat(u[((48u + start_byte_offset) / 16u)]));
+}
+
+typedef float4x4 ary_ret[4];
+ary_ret v_4(uint start_byte_offset) {
+  float4x4 a[4] = (float4x4[4])0;
+  {
+    uint v_5 = 0u;
+    v_5 = 0u;
+    while(true) {
+      uint v_6 = v_5;
+      if ((v_6 >= 4u)) {
+        break;
+      }
+      a[v_6] = v((start_byte_offset + (v_6 * 64u)));
+      {
+        v_5 = (v_6 + 1u);
+      }
+      continue;
+    }
+  }
+  float4x4 v_7[4] = a;
+  return v_7;
+}
+
+[numthreads(1, 1, 1)]
+void f() {
+  float4x4 v_8[4] = v_4(0u);
+  p = v_8;
+  p[1] = v(128u);
+  p[1][0] = asfloat(u[1u]).ywxz;
+  p[1][0][0u] = asfloat(u[1u].x);
+  s.Store(0u, asuint(p[1][0].x));
+}
+
diff --git a/test/tint/buffer/uniform/std140/array/mat4x4_f32/to_private.wgsl.expected.ir.fxc.hlsl b/test/tint/buffer/uniform/std140/array/mat4x4_f32/to_private.wgsl.expected.ir.fxc.hlsl
index 3f437dc..f863d18 100644
--- a/test/tint/buffer/uniform/std140/array/mat4x4_f32/to_private.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/buffer/uniform/std140/array/mat4x4_f32/to_private.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,45 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Access
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+cbuffer cbuffer_u : register(b0) {
+  uint4 u[16];
+};
+RWByteAddressBuffer s : register(u1);
+static float4x4 p[4] = (float4x4[4])0;
+float4x4 v(uint start_byte_offset) {
+  float4 v_1 = asfloat(u[(start_byte_offset / 16u)]);
+  float4 v_2 = asfloat(u[((16u + start_byte_offset) / 16u)]);
+  float4 v_3 = asfloat(u[((32u + start_byte_offset) / 16u)]);
+  return float4x4(v_1, v_2, v_3, asfloat(u[((48u + start_byte_offset) / 16u)]));
+}
+
+typedef float4x4 ary_ret[4];
+ary_ret v_4(uint start_byte_offset) {
+  float4x4 a[4] = (float4x4[4])0;
+  {
+    uint v_5 = 0u;
+    v_5 = 0u;
+    while(true) {
+      uint v_6 = v_5;
+      if ((v_6 >= 4u)) {
+        break;
+      }
+      a[v_6] = v((start_byte_offset + (v_6 * 64u)));
+      {
+        v_5 = (v_6 + 1u);
+      }
+      continue;
+    }
+  }
+  float4x4 v_7[4] = a;
+  return v_7;
+}
+
+[numthreads(1, 1, 1)]
+void f() {
+  float4x4 v_8[4] = v_4(0u);
+  p = v_8;
+  p[1] = v(128u);
+  p[1][0] = asfloat(u[1u]).ywxz;
+  p[1][0][0u] = asfloat(u[1u].x);
+  s.Store(0u, asuint(p[1][0].x));
+}
+
diff --git a/test/tint/buffer/uniform/std140/array/mat4x4_f32/to_storage.wgsl.expected.ir.dxc.hlsl b/test/tint/buffer/uniform/std140/array/mat4x4_f32/to_storage.wgsl.expected.ir.dxc.hlsl
index 3f437dc..8b94776 100644
--- a/test/tint/buffer/uniform/std140/array/mat4x4_f32/to_storage.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/buffer/uniform/std140/array/mat4x4_f32/to_storage.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,68 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Access
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+cbuffer cbuffer_u : register(b0) {
+  uint4 u[16];
+};
+RWByteAddressBuffer s : register(u1);
+void v(uint offset, float4x4 obj) {
+  s.Store4((offset + 0u), asuint(obj[0u]));
+  s.Store4((offset + 16u), asuint(obj[1u]));
+  s.Store4((offset + 32u), asuint(obj[2u]));
+  s.Store4((offset + 48u), asuint(obj[3u]));
+}
+
+float4x4 v_1(uint start_byte_offset) {
+  float4 v_2 = asfloat(u[(start_byte_offset / 16u)]);
+  float4 v_3 = asfloat(u[((16u + start_byte_offset) / 16u)]);
+  float4 v_4 = asfloat(u[((32u + start_byte_offset) / 16u)]);
+  return float4x4(v_2, v_3, v_4, asfloat(u[((48u + start_byte_offset) / 16u)]));
+}
+
+void v_5(uint offset, float4x4 obj[4]) {
+  {
+    uint v_6 = 0u;
+    v_6 = 0u;
+    while(true) {
+      uint v_7 = v_6;
+      if ((v_7 >= 4u)) {
+        break;
+      }
+      v((offset + (v_7 * 64u)), obj[v_7]);
+      {
+        v_6 = (v_7 + 1u);
+      }
+      continue;
+    }
+  }
+}
+
+typedef float4x4 ary_ret[4];
+ary_ret v_8(uint start_byte_offset) {
+  float4x4 a[4] = (float4x4[4])0;
+  {
+    uint v_9 = 0u;
+    v_9 = 0u;
+    while(true) {
+      uint v_10 = v_9;
+      if ((v_10 >= 4u)) {
+        break;
+      }
+      a[v_10] = v_1((start_byte_offset + (v_10 * 64u)));
+      {
+        v_9 = (v_10 + 1u);
+      }
+      continue;
+    }
+  }
+  float4x4 v_11[4] = a;
+  return v_11;
+}
+
+[numthreads(1, 1, 1)]
+void f() {
+  float4x4 v_12[4] = v_8(0u);
+  v_5(0u, v_12);
+  v(64u, v_1(128u));
+  s.Store4(64u, asuint(asfloat(u[1u]).ywxz));
+  s.Store(64u, asuint(asfloat(u[1u].x)));
+}
+
diff --git a/test/tint/buffer/uniform/std140/array/mat4x4_f32/to_storage.wgsl.expected.ir.fxc.hlsl b/test/tint/buffer/uniform/std140/array/mat4x4_f32/to_storage.wgsl.expected.ir.fxc.hlsl
index 3f437dc..8b94776 100644
--- a/test/tint/buffer/uniform/std140/array/mat4x4_f32/to_storage.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/buffer/uniform/std140/array/mat4x4_f32/to_storage.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,68 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Access
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+cbuffer cbuffer_u : register(b0) {
+  uint4 u[16];
+};
+RWByteAddressBuffer s : register(u1);
+void v(uint offset, float4x4 obj) {
+  s.Store4((offset + 0u), asuint(obj[0u]));
+  s.Store4((offset + 16u), asuint(obj[1u]));
+  s.Store4((offset + 32u), asuint(obj[2u]));
+  s.Store4((offset + 48u), asuint(obj[3u]));
+}
+
+float4x4 v_1(uint start_byte_offset) {
+  float4 v_2 = asfloat(u[(start_byte_offset / 16u)]);
+  float4 v_3 = asfloat(u[((16u + start_byte_offset) / 16u)]);
+  float4 v_4 = asfloat(u[((32u + start_byte_offset) / 16u)]);
+  return float4x4(v_2, v_3, v_4, asfloat(u[((48u + start_byte_offset) / 16u)]));
+}
+
+void v_5(uint offset, float4x4 obj[4]) {
+  {
+    uint v_6 = 0u;
+    v_6 = 0u;
+    while(true) {
+      uint v_7 = v_6;
+      if ((v_7 >= 4u)) {
+        break;
+      }
+      v((offset + (v_7 * 64u)), obj[v_7]);
+      {
+        v_6 = (v_7 + 1u);
+      }
+      continue;
+    }
+  }
+}
+
+typedef float4x4 ary_ret[4];
+ary_ret v_8(uint start_byte_offset) {
+  float4x4 a[4] = (float4x4[4])0;
+  {
+    uint v_9 = 0u;
+    v_9 = 0u;
+    while(true) {
+      uint v_10 = v_9;
+      if ((v_10 >= 4u)) {
+        break;
+      }
+      a[v_10] = v_1((start_byte_offset + (v_10 * 64u)));
+      {
+        v_9 = (v_10 + 1u);
+      }
+      continue;
+    }
+  }
+  float4x4 v_11[4] = a;
+  return v_11;
+}
+
+[numthreads(1, 1, 1)]
+void f() {
+  float4x4 v_12[4] = v_8(0u);
+  v_5(0u, v_12);
+  v(64u, v_1(128u));
+  s.Store4(64u, asuint(asfloat(u[1u]).ywxz));
+  s.Store(64u, asuint(asfloat(u[1u].x)));
+}
+
diff --git a/test/tint/buffer/uniform/std140/array/mat4x4_f32/to_workgroup.wgsl.expected.ir.dxc.hlsl b/test/tint/buffer/uniform/std140/array/mat4x4_f32/to_workgroup.wgsl.expected.ir.dxc.hlsl
index 3f437dc..c7b4fb4 100644
--- a/test/tint/buffer/uniform/std140/array/mat4x4_f32/to_workgroup.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/buffer/uniform/std140/array/mat4x4_f32/to_workgroup.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,67 @@
-SKIP: FAILED
+struct f_inputs {
+  uint tint_local_index : SV_GroupIndex;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Access
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+
+cbuffer cbuffer_u : register(b0) {
+  uint4 u[16];
+};
+groupshared float4x4 w[4];
+float4x4 v(uint start_byte_offset) {
+  float4 v_1 = asfloat(u[(start_byte_offset / 16u)]);
+  float4 v_2 = asfloat(u[((16u + start_byte_offset) / 16u)]);
+  float4 v_3 = asfloat(u[((32u + start_byte_offset) / 16u)]);
+  return float4x4(v_1, v_2, v_3, asfloat(u[((48u + start_byte_offset) / 16u)]));
+}
+
+typedef float4x4 ary_ret[4];
+ary_ret v_4(uint start_byte_offset) {
+  float4x4 a[4] = (float4x4[4])0;
+  {
+    uint v_5 = 0u;
+    v_5 = 0u;
+    while(true) {
+      uint v_6 = v_5;
+      if ((v_6 >= 4u)) {
+        break;
+      }
+      a[v_6] = v((start_byte_offset + (v_6 * 64u)));
+      {
+        v_5 = (v_6 + 1u);
+      }
+      continue;
+    }
+  }
+  float4x4 v_7[4] = a;
+  return v_7;
+}
+
+void f_inner(uint tint_local_index) {
+  {
+    uint v_8 = 0u;
+    v_8 = tint_local_index;
+    while(true) {
+      uint v_9 = v_8;
+      if ((v_9 >= 4u)) {
+        break;
+      }
+      w[v_9] = float4x4((0.0f).xxxx, (0.0f).xxxx, (0.0f).xxxx, (0.0f).xxxx);
+      {
+        v_8 = (v_9 + 1u);
+      }
+      continue;
+    }
+  }
+  GroupMemoryBarrierWithGroupSync();
+  float4x4 v_10[4] = v_4(0u);
+  w = v_10;
+  w[1] = v(128u);
+  w[1][0] = asfloat(u[1u]).ywxz;
+  w[1][0][0u] = asfloat(u[1u].x);
+}
+
+[numthreads(1, 1, 1)]
+void f(f_inputs inputs) {
+  f_inner(inputs.tint_local_index);
+}
+
diff --git a/test/tint/buffer/uniform/std140/array/mat4x4_f32/to_workgroup.wgsl.expected.ir.fxc.hlsl b/test/tint/buffer/uniform/std140/array/mat4x4_f32/to_workgroup.wgsl.expected.ir.fxc.hlsl
index 3f437dc..c7b4fb4 100644
--- a/test/tint/buffer/uniform/std140/array/mat4x4_f32/to_workgroup.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/buffer/uniform/std140/array/mat4x4_f32/to_workgroup.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,67 @@
-SKIP: FAILED
+struct f_inputs {
+  uint tint_local_index : SV_GroupIndex;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Access
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+
+cbuffer cbuffer_u : register(b0) {
+  uint4 u[16];
+};
+groupshared float4x4 w[4];
+float4x4 v(uint start_byte_offset) {
+  float4 v_1 = asfloat(u[(start_byte_offset / 16u)]);
+  float4 v_2 = asfloat(u[((16u + start_byte_offset) / 16u)]);
+  float4 v_3 = asfloat(u[((32u + start_byte_offset) / 16u)]);
+  return float4x4(v_1, v_2, v_3, asfloat(u[((48u + start_byte_offset) / 16u)]));
+}
+
+typedef float4x4 ary_ret[4];
+ary_ret v_4(uint start_byte_offset) {
+  float4x4 a[4] = (float4x4[4])0;
+  {
+    uint v_5 = 0u;
+    v_5 = 0u;
+    while(true) {
+      uint v_6 = v_5;
+      if ((v_6 >= 4u)) {
+        break;
+      }
+      a[v_6] = v((start_byte_offset + (v_6 * 64u)));
+      {
+        v_5 = (v_6 + 1u);
+      }
+      continue;
+    }
+  }
+  float4x4 v_7[4] = a;
+  return v_7;
+}
+
+void f_inner(uint tint_local_index) {
+  {
+    uint v_8 = 0u;
+    v_8 = tint_local_index;
+    while(true) {
+      uint v_9 = v_8;
+      if ((v_9 >= 4u)) {
+        break;
+      }
+      w[v_9] = float4x4((0.0f).xxxx, (0.0f).xxxx, (0.0f).xxxx, (0.0f).xxxx);
+      {
+        v_8 = (v_9 + 1u);
+      }
+      continue;
+    }
+  }
+  GroupMemoryBarrierWithGroupSync();
+  float4x4 v_10[4] = v_4(0u);
+  w = v_10;
+  w[1] = v(128u);
+  w[1][0] = asfloat(u[1u]).ywxz;
+  w[1][0][0u] = asfloat(u[1u].x);
+}
+
+[numthreads(1, 1, 1)]
+void f(f_inputs inputs) {
+  f_inner(inputs.tint_local_index);
+}
+
diff --git a/test/tint/buffer/uniform/std140/struct/mat2x2_f16/dynamic_index_via_ptr.wgsl.expected.ir.dxc.hlsl b/test/tint/buffer/uniform/std140/struct/mat2x2_f16/dynamic_index_via_ptr.wgsl.expected.ir.dxc.hlsl
index 3f437dc..1efa54f 100644
--- a/test/tint/buffer/uniform/std140/struct/mat2x2_f16/dynamic_index_via_ptr.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/buffer/uniform/std140/struct/mat2x2_f16/dynamic_index_via_ptr.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,277 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Access
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+
+enable f16;
+
+struct Inner {
+  @size(64)
+  m : mat2x2<f16>,
+}
+
+struct Outer {
+  a : array<Inner, 4>,
+}
+
+@group(0) @binding(0) var<uniform> a : array<Outer, 4>;
+
+var<private> counter = 0;
+
+fn i() -> i32 {
+  counter++;
+  return counter;
+}
+
+@compute @workgroup_size(1)
+fn f() {
+  let p_a = &(a);
+  let p_a_i = &((*(p_a))[i()]);
+  let p_a_i_a = &((*(p_a_i)).a);
+  let p_a_i_a_i = &((*(p_a_i_a))[i()]);
+  let p_a_i_a_i_m = &((*(p_a_i_a_i)).m);
+  let p_a_i_a_i_m_i = &((*(p_a_i_a_i_m))[i()]);
+  let l_a : array<Outer, 4> = *(p_a);
+  let l_a_i : Outer = *(p_a_i);
+  let l_a_i_a : array<Inner, 4> = *(p_a_i_a);
+  let l_a_i_a_i : Inner = *(p_a_i_a_i);
+  let l_a_i_a_i_m : mat2x2<f16> = *(p_a_i_a_i_m);
+  let l_a_i_a_i_m_i : vec2<f16> = *(p_a_i_a_i_m_i);
+  let l_a_i_a_i_m_i_i : f16 = (*(p_a_i_a_i_m_i))[i()];
+}
+
+Failed to generate: :42:24 error: binary: %29 is not in scope
+    %28:u32 = add %27, %29
+                       ^^^
+
+:24:3 note: in block
+  $B3: {
+  ^^^
+
+:63:5 note: %29 declared here
+    %29:u32 = mul %51, 2u
+    ^^^^^^^
+
+:50:24 error: binary: %29 is not in scope
+    %39:u32 = add %38, %29
+                       ^^^
+
+:24:3 note: in block
+  $B3: {
+  ^^^
+
+:63:5 note: %29 declared here
+    %29:u32 = mul %51, 2u
+    ^^^^^^^
+
+:63:5 error: binary: no matching overload for 'operator * (i32, u32)'
+
+9 candidate operators:
+ • 'operator * (T  ✓ , T  ✗ ) -> T' where:
+      ✓  'T' is 'f32', 'i32', 'u32' or 'f16'
+ • 'operator * (vecN<T>  ✗ , T  ✓ ) -> vecN<T>' where:
+      ✓  'T' is 'f32', 'i32', 'u32' or 'f16'
+ • 'operator * (T  ✓ , vecN<T>  ✗ ) -> vecN<T>' where:
+      ✓  'T' is 'f32', 'i32', 'u32' or 'f16'
+ • 'operator * (T  ✗ , matNxM<T>  ✗ ) -> matNxM<T>' where:
+      ✗  'T' is 'f32' or 'f16'
+ • 'operator * (matNxM<T>  ✗ , T  ✗ ) -> matNxM<T>' where:
+      ✗  'T' is 'f32' or 'f16'
+ • 'operator * (vecN<T>  ✗ , vecN<T>  ✗ ) -> vecN<T>' where:
+      ✗  'T' is 'f32', 'i32', 'u32' or 'f16'
+ • 'operator * (matCxR<T>  ✗ , vecC<T>  ✗ ) -> vecR<T>' where:
+      ✗  'T' is 'f32' or 'f16'
+ • 'operator * (vecR<T>  ✗ , matCxR<T>  ✗ ) -> vecC<T>' where:
+      ✗  'T' is 'f32' or 'f16'
+ • 'operator * (matKxR<T>  ✗ , matCxK<T>  ✗ ) -> matCxR<T>' where:
+      ✗  'T' is 'f32' or 'f16'
+
+    %29:u32 = mul %51, 2u
+    ^^^^^^^^^^^^^^^^^^^^^
+
+:24:3 note: in block
+  $B3: {
+  ^^^
+
+note: # Disassembly
+Inner = struct @align(4) {
+  m:mat2x2<f16> @offset(0)
+}
+
+Outer = struct @align(4) {
+  a:array<Inner, 4> @offset(0)
+}
+
+$B1: {  # root
+  %a:ptr<uniform, array<vec4<u32>, 64>, read> = var @binding_point(0, 0)
+  %counter:ptr<private, i32, read_write> = var, 0i
+}
+
+%i = func():i32 {
+  $B2: {
+    %4:i32 = load %counter
+    %5:i32 = add %4, 1i
+    store %counter, %5
+    %6:i32 = load %counter
+    ret %6
+  }
+}
+%f = @compute @workgroup_size(1, 1, 1) func():void {
+  $B3: {
+    %8:i32 = call %i
+    %9:u32 = convert %8
+    %10:u32 = mul 256u, %9
+    %11:i32 = call %i
+    %12:u32 = convert %11
+    %13:u32 = mul 64u, %12
+    %14:i32 = call %i
+    %15:u32 = convert %14
+    %16:u32 = mul 4u, %15
+    %17:array<Outer, 4> = call %18, 0u
+    %l_a:array<Outer, 4> = let %17
+    %20:Outer = call %21, %10
+    %l_a_i:Outer = let %20
+    %23:array<Inner, 4> = call %24, %10
+    %l_a_i_a:array<Inner, 4> = let %23
+    %26:u32 = add %10, %13
+    %27:u32 = add %26, %16
+    %28:u32 = add %27, %29
+    %30:Inner = call %31, %28
+    %l_a_i_a_i:Inner = let %30
+    %33:u32 = add %10, %13
+    %34:mat2x2<f16> = call %35, %33
+    %l_a_i_a_i_m:mat2x2<f16> = let %34
+    %37:u32 = add %10, %13
+    %38:u32 = add %37, %16
+    %39:u32 = add %38, %29
+    %40:u32 = div %39, 16u
+    %41:ptr<uniform, vec4<u32>, read> = access %a, %40
+    %42:u32 = mod %39, 16u
+    %43:u32 = div %42, 4u
+    %44:vec4<u32> = load %41
+    %45:u32 = swizzle %44, z
+    %46:u32 = swizzle %44, x
+    %47:bool = eq %43, 2u
+    %48:u32 = hlsl.ternary %46, %45, %47
+    %49:vec2<f16> = bitcast %48
+    %l_a_i_a_i_m_i:vec2<f16> = let %49
+    %51:i32 = call %i
+    %29:u32 = mul %51, 2u
+    %52:u32 = add %10, %13
+    %53:u32 = add %52, %16
+    %54:u32 = add %53, %29
+    %55:u32 = div %54, 16u
+    %56:ptr<uniform, vec4<u32>, read> = access %a, %55
+    %57:u32 = mod %54, 16u
+    %58:u32 = div %57, 4u
+    %59:u32 = load_vector_element %56, %58
+    %60:u32 = mod %54, 4u
+    %61:bool = eq %60, 0u
+    %62:u32 = hlsl.ternary 16u, 0u, %61
+    %63:u32 = shr %59, %62
+    %64:f32 = hlsl.f16tof32 %63
+    %65:f16 = convert %64
+    %l_a_i_a_i_m_i_i:f16 = let %65
+    ret
+  }
+}
+%18 = func(%start_byte_offset:u32):array<Outer, 4> {
+  $B4: {
+    %a_1:ptr<function, array<Outer, 4>, read_write> = var, array<Outer, 4>(Outer(array<Inner, 4>(Inner(mat2x2<f16>(vec2<f16>(0.0h))))))  # %a_1: 'a'
+    loop [i: $B5, b: $B6, c: $B7] {  # loop_1
+      $B5: {  # initializer
+        next_iteration 0u  # -> $B6
+      }
+      $B6 (%idx:u32): {  # body
+        %70:bool = gte %idx, 4u
+        if %70 [t: $B8] {  # if_1
+          $B8: {  # true
+            exit_loop  # loop_1
+          }
+        }
+        %71:u32 = mul %idx, 256u
+        %72:u32 = add %start_byte_offset, %71
+        %73:ptr<function, Outer, read_write> = access %a_1, %idx
+        %74:Outer = call %21, %72
+        store %73, %74
+        continue  # -> $B7
+      }
+      $B7: {  # continuing
+        %75:u32 = add %idx, 1u
+        next_iteration %75  # -> $B6
+      }
+    }
+    %76:array<Outer, 4> = load %a_1
+    ret %76
+  }
+}
+%21 = func(%start_byte_offset_1:u32):Outer {  # %start_byte_offset_1: 'start_byte_offset'
+  $B9: {
+    %78:array<Inner, 4> = call %24, %start_byte_offset_1
+    %79:Outer = construct %78
+    ret %79
+  }
+}
+%24 = func(%start_byte_offset_2:u32):array<Inner, 4> {  # %start_byte_offset_2: 'start_byte_offset'
+  $B10: {
+    %a_2:ptr<function, array<Inner, 4>, read_write> = var, array<Inner, 4>(Inner(mat2x2<f16>(vec2<f16>(0.0h))))  # %a_2: 'a'
+    loop [i: $B11, b: $B12, c: $B13] {  # loop_2
+      $B11: {  # initializer
+        next_iteration 0u  # -> $B12
+      }
+      $B12 (%idx_1:u32): {  # body
+        %83:bool = gte %idx_1, 4u
+        if %83 [t: $B14] {  # if_2
+          $B14: {  # true
+            exit_loop  # loop_2
+          }
+        }
+        %84:u32 = mul %idx_1, 64u
+        %85:u32 = add %start_byte_offset_2, %84
+        %86:ptr<function, Inner, read_write> = access %a_2, %idx_1
+        %87:Inner = call %31, %85
+        store %86, %87
+        continue  # -> $B13
+      }
+      $B13: {  # continuing
+        %88:u32 = add %idx_1, 1u
+        next_iteration %88  # -> $B12
+      }
+    }
+    %89:array<Inner, 4> = load %a_2
+    ret %89
+  }
+}
+%31 = func(%start_byte_offset_3:u32):Inner {  # %start_byte_offset_3: 'start_byte_offset'
+  $B15: {
+    %91:mat2x2<f16> = call %35, %start_byte_offset_3
+    %92:Inner = construct %91
+    ret %92
+  }
+}
+%35 = func(%start_byte_offset_4:u32):mat2x2<f16> {  # %start_byte_offset_4: 'start_byte_offset'
+  $B16: {
+    %94:u32 = div %start_byte_offset_4, 16u
+    %95:ptr<uniform, vec4<u32>, read> = access %a, %94
+    %96:u32 = mod %start_byte_offset_4, 16u
+    %97:u32 = div %96, 4u
+    %98:vec4<u32> = load %95
+    %99:u32 = swizzle %98, z
+    %100:u32 = swizzle %98, x
+    %101:bool = eq %97, 2u
+    %102:u32 = hlsl.ternary %100, %99, %101
+    %103:vec2<f16> = bitcast %102
+    %104:u32 = add 4u, %start_byte_offset_4
+    %105:u32 = div %104, 16u
+    %106:ptr<uniform, vec4<u32>, read> = access %a, %105
+    %107:u32 = mod %104, 16u
+    %108:u32 = div %107, 4u
+    %109:vec4<u32> = load %106
+    %110:u32 = swizzle %109, z
+    %111:u32 = swizzle %109, x
+    %112:bool = eq %108, 2u
+    %113:u32 = hlsl.ternary %111, %110, %112
+    %114:vec2<f16> = bitcast %113
+    %115:mat2x2<f16> = construct %103, %114
+    ret %115
+  }
+}
+
diff --git a/test/tint/buffer/uniform/std140/struct/mat2x2_f16/dynamic_index_via_ptr.wgsl.expected.ir.fxc.hlsl b/test/tint/buffer/uniform/std140/struct/mat2x2_f16/dynamic_index_via_ptr.wgsl.expected.ir.fxc.hlsl
index 3f437dc..e586359 100644
--- a/test/tint/buffer/uniform/std140/struct/mat2x2_f16/dynamic_index_via_ptr.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/buffer/uniform/std140/struct/mat2x2_f16/dynamic_index_via_ptr.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,279 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Access
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+
+enable f16;
+
+struct Inner {
+  @size(64)
+  m : mat2x2<f16>,
+}
+
+struct Outer {
+  a : array<Inner, 4>,
+}
+
+@group(0) @binding(0) var<uniform> a : array<Outer, 4>;
+
+var<private> counter = 0;
+
+fn i() -> i32 {
+  counter++;
+  return counter;
+}
+
+@compute @workgroup_size(1)
+fn f() {
+  let p_a = &(a);
+  let p_a_i = &((*(p_a))[i()]);
+  let p_a_i_a = &((*(p_a_i)).a);
+  let p_a_i_a_i = &((*(p_a_i_a))[i()]);
+  let p_a_i_a_i_m = &((*(p_a_i_a_i)).m);
+  let p_a_i_a_i_m_i = &((*(p_a_i_a_i_m))[i()]);
+  let l_a : array<Outer, 4> = *(p_a);
+  let l_a_i : Outer = *(p_a_i);
+  let l_a_i_a : array<Inner, 4> = *(p_a_i_a);
+  let l_a_i_a_i : Inner = *(p_a_i_a_i);
+  let l_a_i_a_i_m : mat2x2<f16> = *(p_a_i_a_i_m);
+  let l_a_i_a_i_m_i : vec2<f16> = *(p_a_i_a_i_m_i);
+  let l_a_i_a_i_m_i_i : f16 = (*(p_a_i_a_i_m_i))[i()];
+}
+
+Failed to generate: :40:24 error: binary: %26 is not in scope
+    %25:u32 = add %24, %26
+                       ^^^
+
+:24:3 note: in block
+  $B3: {
+  ^^^
+
+:65:5 note: %26 declared here
+    %26:u32 = mul %53, 2u
+    ^^^^^^^
+
+:48:24 error: binary: %26 is not in scope
+    %36:u32 = add %35, %26
+                       ^^^
+
+:24:3 note: in block
+  $B3: {
+  ^^^
+
+:65:5 note: %26 declared here
+    %26:u32 = mul %53, 2u
+    ^^^^^^^
+
+:65:5 error: binary: no matching overload for 'operator * (i32, u32)'
+
+9 candidate operators:
+ • 'operator * (T  ✓ , T  ✗ ) -> T' where:
+      ✓  'T' is 'f32', 'i32', 'u32' or 'f16'
+ • 'operator * (vecN<T>  ✗ , T  ✓ ) -> vecN<T>' where:
+      ✓  'T' is 'f32', 'i32', 'u32' or 'f16'
+ • 'operator * (T  ✓ , vecN<T>  ✗ ) -> vecN<T>' where:
+      ✓  'T' is 'f32', 'i32', 'u32' or 'f16'
+ • 'operator * (T  ✗ , matNxM<T>  ✗ ) -> matNxM<T>' where:
+      ✗  'T' is 'f32' or 'f16'
+ • 'operator * (matNxM<T>  ✗ , T  ✗ ) -> matNxM<T>' where:
+      ✗  'T' is 'f32' or 'f16'
+ • 'operator * (vecN<T>  ✗ , vecN<T>  ✗ ) -> vecN<T>' where:
+      ✗  'T' is 'f32', 'i32', 'u32' or 'f16'
+ • 'operator * (matCxR<T>  ✗ , vecC<T>  ✗ ) -> vecR<T>' where:
+      ✗  'T' is 'f32' or 'f16'
+ • 'operator * (vecR<T>  ✗ , matCxR<T>  ✗ ) -> vecC<T>' where:
+      ✗  'T' is 'f32' or 'f16'
+ • 'operator * (matKxR<T>  ✗ , matCxK<T>  ✗ ) -> matCxR<T>' where:
+      ✗  'T' is 'f32' or 'f16'
+
+    %26:u32 = mul %53, 2u
+    ^^^^^^^^^^^^^^^^^^^^^
+
+:24:3 note: in block
+  $B3: {
+  ^^^
+
+note: # Disassembly
+Inner = struct @align(4) {
+  m:mat2x2<f16> @offset(0)
+}
+
+Outer = struct @align(4) {
+  a:array<Inner, 4> @offset(0)
+}
+
+$B1: {  # root
+  %a:ptr<uniform, array<vec4<u32>, 64>, read> = var @binding_point(0, 0)
+  %counter:ptr<private, i32, read_write> = var, 0i
+}
+
+%i = func():i32 {
+  $B2: {
+    %4:i32 = load %counter
+    %5:i32 = add %4, 1i
+    store %counter, %5
+    %6:i32 = load %counter
+    ret %6
+  }
+}
+%f = @compute @workgroup_size(1, 1, 1) func():void {
+  $B3: {
+    %8:i32 = call %i
+    %9:u32 = convert %8
+    %10:u32 = mul 256u, %9
+    %11:i32 = call %i
+    %12:u32 = convert %11
+    %13:u32 = mul 64u, %12
+    %14:i32 = call %i
+    %15:u32 = convert %14
+    %16:u32 = mul 4u, %15
+    %17:array<Outer, 4> = call %18, 0u
+    %l_a:array<Outer, 4> = let %17
+    %20:Outer = call %21, %10
+    %l_a_i:Outer = let %20
+    %23:u32 = add %10, %13
+    %24:u32 = add %23, %16
+    %25:u32 = add %24, %26
+    %27:array<Inner, 4> = call %28, %25
+    %l_a_i_a:array<Inner, 4> = let %27
+    %30:u32 = add %10, %13
+    %31:Inner = call %32, %30
+    %l_a_i_a_i:Inner = let %31
+    %34:u32 = add %10, %13
+    %35:u32 = add %34, %16
+    %36:u32 = add %35, %26
+    %37:mat2x2<f16> = call %38, %36
+    %l_a_i_a_i_m:mat2x2<f16> = let %37
+    %40:u32 = add %10, %13
+    %41:u32 = add %40, %16
+    %42:u32 = div %41, 16u
+    %43:ptr<uniform, vec4<u32>, read> = access %a, %42
+    %44:u32 = mod %41, 16u
+    %45:u32 = div %44, 4u
+    %46:vec4<u32> = load %43
+    %47:u32 = swizzle %46, z
+    %48:u32 = swizzle %46, x
+    %49:bool = eq %45, 2u
+    %50:u32 = hlsl.ternary %48, %47, %49
+    %51:vec2<f16> = bitcast %50
+    %l_a_i_a_i_m_i:vec2<f16> = let %51
+    %53:i32 = call %i
+    %26:u32 = mul %53, 2u
+    %54:u32 = add %10, %13
+    %55:u32 = add %54, %16
+    %56:u32 = add %55, %26
+    %57:u32 = div %56, 16u
+    %58:ptr<uniform, vec4<u32>, read> = access %a, %57
+    %59:u32 = mod %56, 16u
+    %60:u32 = div %59, 4u
+    %61:u32 = load_vector_element %58, %60
+    %62:u32 = mod %56, 4u
+    %63:bool = eq %62, 0u
+    %64:u32 = hlsl.ternary 16u, 0u, %63
+    %65:u32 = shr %61, %64
+    %66:f32 = hlsl.f16tof32 %65
+    %67:f16 = convert %66
+    %l_a_i_a_i_m_i_i:f16 = let %67
+    ret
+  }
+}
+%21 = func(%start_byte_offset:u32):Outer {
+  $B4: {
+    %70:array<Inner, 4> = call %28, %start_byte_offset
+    %71:Outer = construct %70
+    ret %71
+  }
+}
+%28 = func(%start_byte_offset_1:u32):array<Inner, 4> {  # %start_byte_offset_1: 'start_byte_offset'
+  $B5: {
+    %a_1:ptr<function, array<Inner, 4>, read_write> = var, array<Inner, 4>(Inner(mat2x2<f16>(vec2<f16>(0.0h))))  # %a_1: 'a'
+    loop [i: $B6, b: $B7, c: $B8] {  # loop_1
+      $B6: {  # initializer
+        next_iteration 0u  # -> $B7
+      }
+      $B7 (%idx:u32): {  # body
+        %75:bool = gte %idx, 4u
+        if %75 [t: $B9] {  # if_1
+          $B9: {  # true
+            exit_loop  # loop_1
+          }
+        }
+        %76:u32 = mul %idx, 64u
+        %77:u32 = add %start_byte_offset_1, %76
+        %78:ptr<function, Inner, read_write> = access %a_1, %idx
+        %79:Inner = call %32, %77
+        store %78, %79
+        continue  # -> $B8
+      }
+      $B8: {  # continuing
+        %80:u32 = add %idx, 1u
+        next_iteration %80  # -> $B7
+      }
+    }
+    %81:array<Inner, 4> = load %a_1
+    ret %81
+  }
+}
+%32 = func(%start_byte_offset_2:u32):Inner {  # %start_byte_offset_2: 'start_byte_offset'
+  $B10: {
+    %83:mat2x2<f16> = call %38, %start_byte_offset_2
+    %84:Inner = construct %83
+    ret %84
+  }
+}
+%38 = func(%start_byte_offset_3:u32):mat2x2<f16> {  # %start_byte_offset_3: 'start_byte_offset'
+  $B11: {
+    %86:u32 = div %start_byte_offset_3, 16u
+    %87:ptr<uniform, vec4<u32>, read> = access %a, %86
+    %88:u32 = mod %start_byte_offset_3, 16u
+    %89:u32 = div %88, 4u
+    %90:vec4<u32> = load %87
+    %91:u32 = swizzle %90, z
+    %92:u32 = swizzle %90, x
+    %93:bool = eq %89, 2u
+    %94:u32 = hlsl.ternary %92, %91, %93
+    %95:vec2<f16> = bitcast %94
+    %96:u32 = add 4u, %start_byte_offset_3
+    %97:u32 = div %96, 16u
+    %98:ptr<uniform, vec4<u32>, read> = access %a, %97
+    %99:u32 = mod %96, 16u
+    %100:u32 = div %99, 4u
+    %101:vec4<u32> = load %98
+    %102:u32 = swizzle %101, z
+    %103:u32 = swizzle %101, x
+    %104:bool = eq %100, 2u
+    %105:u32 = hlsl.ternary %103, %102, %104
+    %106:vec2<f16> = bitcast %105
+    %107:mat2x2<f16> = construct %95, %106
+    ret %107
+  }
+}
+%18 = func(%start_byte_offset_4:u32):array<Outer, 4> {  # %start_byte_offset_4: 'start_byte_offset'
+  $B12: {
+    %a_2:ptr<function, array<Outer, 4>, read_write> = var, array<Outer, 4>(Outer(array<Inner, 4>(Inner(mat2x2<f16>(vec2<f16>(0.0h))))))  # %a_2: 'a'
+    loop [i: $B13, b: $B14, c: $B15] {  # loop_2
+      $B13: {  # initializer
+        next_iteration 0u  # -> $B14
+      }
+      $B14 (%idx_1:u32): {  # body
+        %111:bool = gte %idx_1, 4u
+        if %111 [t: $B16] {  # if_2
+          $B16: {  # true
+            exit_loop  # loop_2
+          }
+        }
+        %112:u32 = mul %idx_1, 256u
+        %113:u32 = add %start_byte_offset_4, %112
+        %114:ptr<function, Outer, read_write> = access %a_2, %idx_1
+        %115:Outer = call %21, %113
+        store %114, %115
+        continue  # -> $B15
+      }
+      $B15: {  # continuing
+        %116:u32 = add %idx_1, 1u
+        next_iteration %116  # -> $B14
+      }
+    }
+    %117:array<Outer, 4> = load %a_2
+    ret %117
+  }
+}
+
diff --git a/test/tint/buffer/uniform/std140/struct/mat2x2_f16/static_index_via_ptr.wgsl.expected.ir.dxc.hlsl b/test/tint/buffer/uniform/std140/struct/mat2x2_f16/static_index_via_ptr.wgsl.expected.ir.dxc.hlsl
index 3f437dc..026656d 100644
--- a/test/tint/buffer/uniform/std140/struct/mat2x2_f16/static_index_via_ptr.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/buffer/uniform/std140/struct/mat2x2_f16/static_index_via_ptr.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,95 @@
-SKIP: FAILED
+struct Inner {
+  matrix<float16_t, 2, 2> m;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Access
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct Outer {
+  Inner a[4];
+};
+
+
+cbuffer cbuffer_a : register(b0) {
+  uint4 a[64];
+};
+vector<float16_t, 2> tint_bitcast_to_f16(uint src) {
+  uint v = src;
+  float t_low = f16tof32((v & 65535u));
+  float t_high = f16tof32(((v >> 16u) & 65535u));
+  float16_t v_1 = float16_t(t_low);
+  return vector<float16_t, 2>(v_1, float16_t(t_high));
+}
+
+matrix<float16_t, 2, 2> v_2(uint start_byte_offset) {
+  uint4 v_3 = a[(start_byte_offset / 16u)];
+  vector<float16_t, 2> v_4 = tint_bitcast_to_f16((((((start_byte_offset % 16u) / 4u) == 2u)) ? (v_3.z) : (v_3.x)));
+  uint4 v_5 = a[((4u + start_byte_offset) / 16u)];
+  return matrix<float16_t, 2, 2>(v_4, tint_bitcast_to_f16(((((((4u + start_byte_offset) % 16u) / 4u) == 2u)) ? (v_5.z) : (v_5.x))));
+}
+
+Inner v_6(uint start_byte_offset) {
+  Inner v_7 = {v_2(start_byte_offset)};
+  return v_7;
+}
+
+typedef Inner ary_ret[4];
+ary_ret v_8(uint start_byte_offset) {
+  Inner a[4] = (Inner[4])0;
+  {
+    uint v_9 = 0u;
+    v_9 = 0u;
+    while(true) {
+      uint v_10 = v_9;
+      if ((v_10 >= 4u)) {
+        break;
+      }
+      Inner v_11 = v_6((start_byte_offset + (v_10 * 64u)));
+      a[v_10] = v_11;
+      {
+        v_9 = (v_10 + 1u);
+      }
+      continue;
+    }
+  }
+  Inner v_12[4] = a;
+  return v_12;
+}
+
+Outer v_13(uint start_byte_offset) {
+  Inner v_14[4] = v_8(start_byte_offset);
+  Outer v_15 = {v_14};
+  return v_15;
+}
+
+typedef Outer ary_ret_1[4];
+ary_ret_1 v_16(uint start_byte_offset) {
+  Outer a[4] = (Outer[4])0;
+  {
+    uint v_17 = 0u;
+    v_17 = 0u;
+    while(true) {
+      uint v_18 = v_17;
+      if ((v_18 >= 4u)) {
+        break;
+      }
+      Outer v_19 = v_13((start_byte_offset + (v_18 * 256u)));
+      a[v_18] = v_19;
+      {
+        v_17 = (v_18 + 1u);
+      }
+      continue;
+    }
+  }
+  Outer v_20[4] = a;
+  return v_20;
+}
+
+[numthreads(1, 1, 1)]
+void f() {
+  Outer l_a[4] = v_16(0u);
+  Outer l_a_3 = v_13(900u);
+  Inner l_a_3_a[4] = v_8(768u);
+  Inner l_a_3_a_2 = v_6(900u);
+  matrix<float16_t, 2, 2> l_a_3_a_2_m = v_2(900u);
+  vector<float16_t, 2> l_a_3_a_2_m_1 = tint_bitcast_to_f16(a[56u].x);
+  float16_t l_a_3_a_2_m_1_0 = float16_t(f16tof32(a[56u].y));
+}
+
diff --git a/test/tint/buffer/uniform/std140/struct/mat2x2_f16/static_index_via_ptr.wgsl.expected.ir.fxc.hlsl b/test/tint/buffer/uniform/std140/struct/mat2x2_f16/static_index_via_ptr.wgsl.expected.ir.fxc.hlsl
index 3f437dc..0d5527b 100644
--- a/test/tint/buffer/uniform/std140/struct/mat2x2_f16/static_index_via_ptr.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/buffer/uniform/std140/struct/mat2x2_f16/static_index_via_ptr.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,100 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Access
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct Inner {
+  matrix<float16_t, 2, 2> m;
+};
+
+struct Outer {
+  Inner a[4];
+};
+
+
+cbuffer cbuffer_a : register(b0) {
+  uint4 a[64];
+};
+vector<float16_t, 2> tint_bitcast_to_f16(uint src) {
+  uint v = src;
+  float t_low = f16tof32((v & 65535u));
+  float t_high = f16tof32(((v >> 16u) & 65535u));
+  float16_t v_1 = float16_t(t_low);
+  return vector<float16_t, 2>(v_1, float16_t(t_high));
+}
+
+matrix<float16_t, 2, 2> v_2(uint start_byte_offset) {
+  uint4 v_3 = a[(start_byte_offset / 16u)];
+  vector<float16_t, 2> v_4 = tint_bitcast_to_f16((((((start_byte_offset % 16u) / 4u) == 2u)) ? (v_3.z) : (v_3.x)));
+  uint4 v_5 = a[((4u + start_byte_offset) / 16u)];
+  return matrix<float16_t, 2, 2>(v_4, tint_bitcast_to_f16(((((((4u + start_byte_offset) % 16u) / 4u) == 2u)) ? (v_5.z) : (v_5.x))));
+}
+
+Inner v_6(uint start_byte_offset) {
+  Inner v_7 = {v_2(start_byte_offset)};
+  return v_7;
+}
+
+typedef Inner ary_ret[4];
+ary_ret v_8(uint start_byte_offset) {
+  Inner a[4] = (Inner[4])0;
+  {
+    uint v_9 = 0u;
+    v_9 = 0u;
+    while(true) {
+      uint v_10 = v_9;
+      if ((v_10 >= 4u)) {
+        break;
+      }
+      Inner v_11 = v_6((start_byte_offset + (v_10 * 64u)));
+      a[v_10] = v_11;
+      {
+        v_9 = (v_10 + 1u);
+      }
+      continue;
+    }
+  }
+  Inner v_12[4] = a;
+  return v_12;
+}
+
+Outer v_13(uint start_byte_offset) {
+  Inner v_14[4] = v_8(start_byte_offset);
+  Outer v_15 = {v_14};
+  return v_15;
+}
+
+typedef Outer ary_ret_1[4];
+ary_ret_1 v_16(uint start_byte_offset) {
+  Outer a[4] = (Outer[4])0;
+  {
+    uint v_17 = 0u;
+    v_17 = 0u;
+    while(true) {
+      uint v_18 = v_17;
+      if ((v_18 >= 4u)) {
+        break;
+      }
+      Outer v_19 = v_13((start_byte_offset + (v_18 * 256u)));
+      a[v_18] = v_19;
+      {
+        v_17 = (v_18 + 1u);
+      }
+      continue;
+    }
+  }
+  Outer v_20[4] = a;
+  return v_20;
+}
+
+[numthreads(1, 1, 1)]
+void f() {
+  Outer l_a[4] = v_16(0u);
+  Outer l_a_3 = v_13(900u);
+  Inner l_a_3_a[4] = v_8(768u);
+  Inner l_a_3_a_2 = v_6(896u);
+  matrix<float16_t, 2, 2> l_a_3_a_2_m = v_2(896u);
+  vector<float16_t, 2> l_a_3_a_2_m_1 = tint_bitcast_to_f16(a[56u].x);
+  float16_t l_a_3_a_2_m_1_0 = float16_t(f16tof32(a[56u].y));
+}
+
+FXC validation failure:
+c:\src\dawn\Shader@0x0000019C5DA5A8C0(2,10-18): error X3000: syntax error: unexpected token 'float16_t'
+
diff --git a/test/tint/buffer/uniform/std140/struct/mat2x2_f16/to_builtin.wgsl.expected.ir.dxc.hlsl b/test/tint/buffer/uniform/std140/struct/mat2x2_f16/to_builtin.wgsl.expected.ir.dxc.hlsl
index 3f437dc..934a47a 100644
--- a/test/tint/buffer/uniform/std140/struct/mat2x2_f16/to_builtin.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/buffer/uniform/std140/struct/mat2x2_f16/to_builtin.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,26 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Access
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+cbuffer cbuffer_u : register(b0) {
+  uint4 u[32];
+};
+vector<float16_t, 2> tint_bitcast_to_f16(uint src) {
+  uint v = src;
+  float t_low = f16tof32((v & 65535u));
+  float t_high = f16tof32(((v >> 16u) & 65535u));
+  float16_t v_1 = float16_t(t_low);
+  return vector<float16_t, 2>(v_1, float16_t(t_high));
+}
+
+matrix<float16_t, 2, 2> v_2(uint start_byte_offset) {
+  uint4 v_3 = u[(start_byte_offset / 16u)];
+  vector<float16_t, 2> v_4 = tint_bitcast_to_f16((((((start_byte_offset % 16u) / 4u) == 2u)) ? (v_3.z) : (v_3.x)));
+  uint4 v_5 = u[((4u + start_byte_offset) / 16u)];
+  return matrix<float16_t, 2, 2>(v_4, tint_bitcast_to_f16(((((((4u + start_byte_offset) % 16u) / 4u) == 2u)) ? (v_5.z) : (v_5.x))));
+}
+
+[numthreads(1, 1, 1)]
+void f() {
+  matrix<float16_t, 2, 2> t = transpose(v_2(260u));
+  float16_t l = length(tint_bitcast_to_f16(u[0u].z).yx);
+  float16_t a = abs(tint_bitcast_to_f16(u[0u].z).yx[0u]);
+}
+
diff --git a/test/tint/buffer/uniform/std140/struct/mat2x2_f16/to_builtin.wgsl.expected.ir.fxc.hlsl b/test/tint/buffer/uniform/std140/struct/mat2x2_f16/to_builtin.wgsl.expected.ir.fxc.hlsl
index 3f437dc..6f21247 100644
--- a/test/tint/buffer/uniform/std140/struct/mat2x2_f16/to_builtin.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/buffer/uniform/std140/struct/mat2x2_f16/to_builtin.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,31 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Access
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+
+cbuffer cbuffer_u : register(b0) {
+  uint4 u[32];
+};
+vector<float16_t, 2> tint_bitcast_to_f16(uint src) {
+  uint v = src;
+  float t_low = f16tof32((v & 65535u));
+  float t_high = f16tof32(((v >> 16u) & 65535u));
+  float16_t v_1 = float16_t(t_low);
+  return vector<float16_t, 2>(v_1, float16_t(t_high));
+}
+
+matrix<float16_t, 2, 2> v_2(uint start_byte_offset) {
+  uint4 v_3 = u[(start_byte_offset / 16u)];
+  vector<float16_t, 2> v_4 = tint_bitcast_to_f16((((((start_byte_offset % 16u) / 4u) == 2u)) ? (v_3.z) : (v_3.x)));
+  uint4 v_5 = u[((4u + start_byte_offset) / 16u)];
+  return matrix<float16_t, 2, 2>(v_4, tint_bitcast_to_f16(((((((4u + start_byte_offset) % 16u) / 4u) == 2u)) ? (v_5.z) : (v_5.x))));
+}
+
+[numthreads(1, 1, 1)]
+void f() {
+  matrix<float16_t, 2, 2> t = transpose(v_2(260u));
+  float16_t l = length(tint_bitcast_to_f16(u[0u].z).yx);
+  float16_t a = abs(tint_bitcast_to_f16(u[0u].z).yx[0u]);
+}
+
+FXC validation failure:
+c:\src\dawn\Shader@0x00000234FE7D9B70(5,8-16): error X3000: syntax error: unexpected token 'float16_t'
+
diff --git a/test/tint/buffer/uniform/std140/struct/mat2x2_f16/to_fn.wgsl.expected.ir.dxc.hlsl b/test/tint/buffer/uniform/std140/struct/mat2x2_f16/to_fn.wgsl.expected.ir.dxc.hlsl
index 3f437dc..00f5fb6 100644
--- a/test/tint/buffer/uniform/std140/struct/mat2x2_f16/to_fn.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/buffer/uniform/std140/struct/mat2x2_f16/to_fn.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,81 @@
-SKIP: FAILED
+struct S {
+  int before;
+  matrix<float16_t, 2, 2> m;
+  int after;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Access
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+
+cbuffer cbuffer_u : register(b0) {
+  uint4 u[32];
+};
+void a(S a_1[4]) {
+}
+
+void b(S s) {
+}
+
+void c(matrix<float16_t, 2, 2> m) {
+}
+
+void d(vector<float16_t, 2> v) {
+}
+
+void e(float16_t f) {
+}
+
+vector<float16_t, 2> tint_bitcast_to_f16(uint src) {
+  uint v = src;
+  float t_low = f16tof32((v & 65535u));
+  float t_high = f16tof32(((v >> 16u) & 65535u));
+  float16_t v_1 = float16_t(t_low);
+  return vector<float16_t, 2>(v_1, float16_t(t_high));
+}
+
+matrix<float16_t, 2, 2> v_2(uint start_byte_offset) {
+  uint4 v_3 = u[(start_byte_offset / 16u)];
+  vector<float16_t, 2> v_4 = tint_bitcast_to_f16((((((start_byte_offset % 16u) / 4u) == 2u)) ? (v_3.z) : (v_3.x)));
+  uint4 v_5 = u[((4u + start_byte_offset) / 16u)];
+  return matrix<float16_t, 2, 2>(v_4, tint_bitcast_to_f16(((((((4u + start_byte_offset) % 16u) / 4u) == 2u)) ? (v_5.z) : (v_5.x))));
+}
+
+S v_6(uint start_byte_offset) {
+  int v_7 = asint(u[(start_byte_offset / 16u)][((start_byte_offset % 16u) / 4u)]);
+  matrix<float16_t, 2, 2> v_8 = v_2((4u + start_byte_offset));
+  S v_9 = {v_7, v_8, asint(u[((64u + start_byte_offset) / 16u)][(((64u + start_byte_offset) % 16u) / 4u)])};
+  return v_9;
+}
+
+typedef S ary_ret[4];
+ary_ret v_10(uint start_byte_offset) {
+  S a[4] = (S[4])0;
+  {
+    uint v_11 = 0u;
+    v_11 = 0u;
+    while(true) {
+      uint v_12 = v_11;
+      if ((v_12 >= 4u)) {
+        break;
+      }
+      S v_13 = v_6((start_byte_offset + (v_12 * 128u)));
+      a[v_12] = v_13;
+      {
+        v_11 = (v_12 + 1u);
+      }
+      continue;
+    }
+  }
+  S v_14[4] = a;
+  return v_14;
+}
+
+[numthreads(1, 1, 1)]
+void f() {
+  S v_15[4] = v_10(0u);
+  a(v_15);
+  S v_16 = v_6(256u);
+  b(v_16);
+  c(v_2(260u));
+  d(tint_bitcast_to_f16(u[0u].z).yx);
+  e(tint_bitcast_to_f16(u[0u].z).yx[0u]);
+}
+
diff --git a/test/tint/buffer/uniform/std140/struct/mat2x2_f16/to_fn.wgsl.expected.ir.fxc.hlsl b/test/tint/buffer/uniform/std140/struct/mat2x2_f16/to_fn.wgsl.expected.ir.fxc.hlsl
index 3f437dc..7e1fd83 100644
--- a/test/tint/buffer/uniform/std140/struct/mat2x2_f16/to_fn.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/buffer/uniform/std140/struct/mat2x2_f16/to_fn.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,86 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Access
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct S {
+  int before;
+  matrix<float16_t, 2, 2> m;
+  int after;
+};
+
+
+cbuffer cbuffer_u : register(b0) {
+  uint4 u[32];
+};
+void a(S a_1[4]) {
+}
+
+void b(S s) {
+}
+
+void c(matrix<float16_t, 2, 2> m) {
+}
+
+void d(vector<float16_t, 2> v) {
+}
+
+void e(float16_t f) {
+}
+
+vector<float16_t, 2> tint_bitcast_to_f16(uint src) {
+  uint v = src;
+  float t_low = f16tof32((v & 65535u));
+  float t_high = f16tof32(((v >> 16u) & 65535u));
+  float16_t v_1 = float16_t(t_low);
+  return vector<float16_t, 2>(v_1, float16_t(t_high));
+}
+
+matrix<float16_t, 2, 2> v_2(uint start_byte_offset) {
+  uint4 v_3 = u[(start_byte_offset / 16u)];
+  vector<float16_t, 2> v_4 = tint_bitcast_to_f16((((((start_byte_offset % 16u) / 4u) == 2u)) ? (v_3.z) : (v_3.x)));
+  uint4 v_5 = u[((4u + start_byte_offset) / 16u)];
+  return matrix<float16_t, 2, 2>(v_4, tint_bitcast_to_f16(((((((4u + start_byte_offset) % 16u) / 4u) == 2u)) ? (v_5.z) : (v_5.x))));
+}
+
+S v_6(uint start_byte_offset) {
+  int v_7 = asint(u[(start_byte_offset / 16u)][((start_byte_offset % 16u) / 4u)]);
+  matrix<float16_t, 2, 2> v_8 = v_2((4u + start_byte_offset));
+  S v_9 = {v_7, v_8, asint(u[((64u + start_byte_offset) / 16u)][(((64u + start_byte_offset) % 16u) / 4u)])};
+  return v_9;
+}
+
+typedef S ary_ret[4];
+ary_ret v_10(uint start_byte_offset) {
+  S a[4] = (S[4])0;
+  {
+    uint v_11 = 0u;
+    v_11 = 0u;
+    while(true) {
+      uint v_12 = v_11;
+      if ((v_12 >= 4u)) {
+        break;
+      }
+      S v_13 = v_6((start_byte_offset + (v_12 * 128u)));
+      a[v_12] = v_13;
+      {
+        v_11 = (v_12 + 1u);
+      }
+      continue;
+    }
+  }
+  S v_14[4] = a;
+  return v_14;
+}
+
+[numthreads(1, 1, 1)]
+void f() {
+  S v_15[4] = v_10(0u);
+  a(v_15);
+  S v_16 = v_6(256u);
+  b(v_16);
+  c(v_2(260u));
+  d(tint_bitcast_to_f16(u[0u].z).yx);
+  e(tint_bitcast_to_f16(u[0u].z).yx[0u]);
+}
+
+FXC validation failure:
+c:\src\dawn\Shader@0x0000024DBFB94310(3,10-18): error X3000: syntax error: unexpected token 'float16_t'
+
diff --git a/test/tint/buffer/uniform/std140/struct/mat2x2_f16/to_private.wgsl.expected.ir.dxc.hlsl b/test/tint/buffer/uniform/std140/struct/mat2x2_f16/to_private.wgsl.expected.ir.dxc.hlsl
index 3f437dc..9f42e27 100644
--- a/test/tint/buffer/uniform/std140/struct/mat2x2_f16/to_private.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/buffer/uniform/std140/struct/mat2x2_f16/to_private.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,66 @@
-SKIP: FAILED
+struct S {
+  int before;
+  matrix<float16_t, 2, 2> m;
+  int after;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Access
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+
+cbuffer cbuffer_u : register(b0) {
+  uint4 u[32];
+};
+static S p[4] = (S[4])0;
+vector<float16_t, 2> tint_bitcast_to_f16(uint src) {
+  uint v = src;
+  float t_low = f16tof32((v & 65535u));
+  float t_high = f16tof32(((v >> 16u) & 65535u));
+  float16_t v_1 = float16_t(t_low);
+  return vector<float16_t, 2>(v_1, float16_t(t_high));
+}
+
+matrix<float16_t, 2, 2> v_2(uint start_byte_offset) {
+  uint4 v_3 = u[(start_byte_offset / 16u)];
+  vector<float16_t, 2> v_4 = tint_bitcast_to_f16((((((start_byte_offset % 16u) / 4u) == 2u)) ? (v_3.z) : (v_3.x)));
+  uint4 v_5 = u[((4u + start_byte_offset) / 16u)];
+  return matrix<float16_t, 2, 2>(v_4, tint_bitcast_to_f16(((((((4u + start_byte_offset) % 16u) / 4u) == 2u)) ? (v_5.z) : (v_5.x))));
+}
+
+S v_6(uint start_byte_offset) {
+  int v_7 = asint(u[(start_byte_offset / 16u)][((start_byte_offset % 16u) / 4u)]);
+  matrix<float16_t, 2, 2> v_8 = v_2((4u + start_byte_offset));
+  S v_9 = {v_7, v_8, asint(u[((64u + start_byte_offset) / 16u)][(((64u + start_byte_offset) % 16u) / 4u)])};
+  return v_9;
+}
+
+typedef S ary_ret[4];
+ary_ret v_10(uint start_byte_offset) {
+  S a[4] = (S[4])0;
+  {
+    uint v_11 = 0u;
+    v_11 = 0u;
+    while(true) {
+      uint v_12 = v_11;
+      if ((v_12 >= 4u)) {
+        break;
+      }
+      S v_13 = v_6((start_byte_offset + (v_12 * 128u)));
+      a[v_12] = v_13;
+      {
+        v_11 = (v_12 + 1u);
+      }
+      continue;
+    }
+  }
+  S v_14[4] = a;
+  return v_14;
+}
+
+[numthreads(1, 1, 1)]
+void f() {
+  S v_15[4] = v_10(0u);
+  p = v_15;
+  S v_16 = v_6(256u);
+  p[1] = v_16;
+  p[3].m = v_2(260u);
+  p[1].m[0] = tint_bitcast_to_f16(u[0u].z).yx;
+}
+
diff --git a/test/tint/buffer/uniform/std140/struct/mat2x2_f16/to_private.wgsl.expected.ir.fxc.hlsl b/test/tint/buffer/uniform/std140/struct/mat2x2_f16/to_private.wgsl.expected.ir.fxc.hlsl
index 3f437dc..c9d2379 100644
--- a/test/tint/buffer/uniform/std140/struct/mat2x2_f16/to_private.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/buffer/uniform/std140/struct/mat2x2_f16/to_private.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,71 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Access
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct S {
+  int before;
+  matrix<float16_t, 2, 2> m;
+  int after;
+};
+
+
+cbuffer cbuffer_u : register(b0) {
+  uint4 u[32];
+};
+static S p[4] = (S[4])0;
+vector<float16_t, 2> tint_bitcast_to_f16(uint src) {
+  uint v = src;
+  float t_low = f16tof32((v & 65535u));
+  float t_high = f16tof32(((v >> 16u) & 65535u));
+  float16_t v_1 = float16_t(t_low);
+  return vector<float16_t, 2>(v_1, float16_t(t_high));
+}
+
+matrix<float16_t, 2, 2> v_2(uint start_byte_offset) {
+  uint4 v_3 = u[(start_byte_offset / 16u)];
+  vector<float16_t, 2> v_4 = tint_bitcast_to_f16((((((start_byte_offset % 16u) / 4u) == 2u)) ? (v_3.z) : (v_3.x)));
+  uint4 v_5 = u[((4u + start_byte_offset) / 16u)];
+  return matrix<float16_t, 2, 2>(v_4, tint_bitcast_to_f16(((((((4u + start_byte_offset) % 16u) / 4u) == 2u)) ? (v_5.z) : (v_5.x))));
+}
+
+S v_6(uint start_byte_offset) {
+  int v_7 = asint(u[(start_byte_offset / 16u)][((start_byte_offset % 16u) / 4u)]);
+  matrix<float16_t, 2, 2> v_8 = v_2((4u + start_byte_offset));
+  S v_9 = {v_7, v_8, asint(u[((64u + start_byte_offset) / 16u)][(((64u + start_byte_offset) % 16u) / 4u)])};
+  return v_9;
+}
+
+typedef S ary_ret[4];
+ary_ret v_10(uint start_byte_offset) {
+  S a[4] = (S[4])0;
+  {
+    uint v_11 = 0u;
+    v_11 = 0u;
+    while(true) {
+      uint v_12 = v_11;
+      if ((v_12 >= 4u)) {
+        break;
+      }
+      S v_13 = v_6((start_byte_offset + (v_12 * 128u)));
+      a[v_12] = v_13;
+      {
+        v_11 = (v_12 + 1u);
+      }
+      continue;
+    }
+  }
+  S v_14[4] = a;
+  return v_14;
+}
+
+[numthreads(1, 1, 1)]
+void f() {
+  S v_15[4] = v_10(0u);
+  p = v_15;
+  S v_16 = v_6(256u);
+  p[1] = v_16;
+  p[3].m = v_2(260u);
+  p[1].m[0] = tint_bitcast_to_f16(u[0u].z).yx;
+}
+
+FXC validation failure:
+c:\src\dawn\Shader@0x00000139B5115920(3,10-18): error X3000: syntax error: unexpected token 'float16_t'
+
diff --git a/test/tint/buffer/uniform/std140/struct/mat2x2_f16/to_storage.wgsl.expected.ir.dxc.hlsl b/test/tint/buffer/uniform/std140/struct/mat2x2_f16/to_storage.wgsl.expected.ir.dxc.hlsl
index 3f437dc..4996138 100644
--- a/test/tint/buffer/uniform/std140/struct/mat2x2_f16/to_storage.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/buffer/uniform/std140/struct/mat2x2_f16/to_storage.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,96 @@
-SKIP: FAILED
+struct S {
+  int before;
+  matrix<float16_t, 2, 2> m;
+  int after;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Access
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+
+cbuffer cbuffer_u : register(b0) {
+  uint4 u[32];
+};
+RWByteAddressBuffer s : register(u1);
+vector<float16_t, 2> tint_bitcast_to_f16(uint src) {
+  uint v = src;
+  float t_low = f16tof32((v & 65535u));
+  float t_high = f16tof32(((v >> 16u) & 65535u));
+  float16_t v_1 = float16_t(t_low);
+  return vector<float16_t, 2>(v_1, float16_t(t_high));
+}
+
+void v_2(uint offset, matrix<float16_t, 2, 2> obj) {
+  s.Store<vector<float16_t, 2> >((offset + 0u), obj[0u]);
+  s.Store<vector<float16_t, 2> >((offset + 4u), obj[1u]);
+}
+
+matrix<float16_t, 2, 2> v_3(uint start_byte_offset) {
+  uint4 v_4 = u[(start_byte_offset / 16u)];
+  vector<float16_t, 2> v_5 = tint_bitcast_to_f16((((((start_byte_offset % 16u) / 4u) == 2u)) ? (v_4.z) : (v_4.x)));
+  uint4 v_6 = u[((4u + start_byte_offset) / 16u)];
+  return matrix<float16_t, 2, 2>(v_5, tint_bitcast_to_f16(((((((4u + start_byte_offset) % 16u) / 4u) == 2u)) ? (v_6.z) : (v_6.x))));
+}
+
+void v_7(uint offset, S obj) {
+  s.Store((offset + 0u), asuint(obj.before));
+  v_2((offset + 4u), obj.m);
+  s.Store((offset + 64u), asuint(obj.after));
+}
+
+S v_8(uint start_byte_offset) {
+  int v_9 = asint(u[(start_byte_offset / 16u)][((start_byte_offset % 16u) / 4u)]);
+  matrix<float16_t, 2, 2> v_10 = v_3((4u + start_byte_offset));
+  S v_11 = {v_9, v_10, asint(u[((64u + start_byte_offset) / 16u)][(((64u + start_byte_offset) % 16u) / 4u)])};
+  return v_11;
+}
+
+void v_12(uint offset, S obj[4]) {
+  {
+    uint v_13 = 0u;
+    v_13 = 0u;
+    while(true) {
+      uint v_14 = v_13;
+      if ((v_14 >= 4u)) {
+        break;
+      }
+      S v_15 = obj[v_14];
+      v_7((offset + (v_14 * 128u)), v_15);
+      {
+        v_13 = (v_14 + 1u);
+      }
+      continue;
+    }
+  }
+}
+
+typedef S ary_ret[4];
+ary_ret v_16(uint start_byte_offset) {
+  S a[4] = (S[4])0;
+  {
+    uint v_17 = 0u;
+    v_17 = 0u;
+    while(true) {
+      uint v_18 = v_17;
+      if ((v_18 >= 4u)) {
+        break;
+      }
+      S v_19 = v_8((start_byte_offset + (v_18 * 128u)));
+      a[v_18] = v_19;
+      {
+        v_17 = (v_18 + 1u);
+      }
+      continue;
+    }
+  }
+  S v_20[4] = a;
+  return v_20;
+}
+
+[numthreads(1, 1, 1)]
+void f() {
+  S v_21[4] = v_16(0u);
+  v_12(0u, v_21);
+  S v_22 = v_8(256u);
+  v_7(128u, v_22);
+  v_2(388u, v_3(260u));
+  s.Store<vector<float16_t, 2> >(132u, tint_bitcast_to_f16(u[0u].z).yx);
+}
+
diff --git a/test/tint/buffer/uniform/std140/struct/mat2x2_f16/to_storage.wgsl.expected.ir.fxc.hlsl b/test/tint/buffer/uniform/std140/struct/mat2x2_f16/to_storage.wgsl.expected.ir.fxc.hlsl
index 3f437dc..67a55e6 100644
--- a/test/tint/buffer/uniform/std140/struct/mat2x2_f16/to_storage.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/buffer/uniform/std140/struct/mat2x2_f16/to_storage.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,101 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Access
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct S {
+  int before;
+  matrix<float16_t, 2, 2> m;
+  int after;
+};
+
+
+cbuffer cbuffer_u : register(b0) {
+  uint4 u[32];
+};
+RWByteAddressBuffer s : register(u1);
+vector<float16_t, 2> tint_bitcast_to_f16(uint src) {
+  uint v = src;
+  float t_low = f16tof32((v & 65535u));
+  float t_high = f16tof32(((v >> 16u) & 65535u));
+  float16_t v_1 = float16_t(t_low);
+  return vector<float16_t, 2>(v_1, float16_t(t_high));
+}
+
+void v_2(uint offset, matrix<float16_t, 2, 2> obj) {
+  s.Store<vector<float16_t, 2> >((offset + 0u), obj[0u]);
+  s.Store<vector<float16_t, 2> >((offset + 4u), obj[1u]);
+}
+
+matrix<float16_t, 2, 2> v_3(uint start_byte_offset) {
+  uint4 v_4 = u[(start_byte_offset / 16u)];
+  vector<float16_t, 2> v_5 = tint_bitcast_to_f16((((((start_byte_offset % 16u) / 4u) == 2u)) ? (v_4.z) : (v_4.x)));
+  uint4 v_6 = u[((4u + start_byte_offset) / 16u)];
+  return matrix<float16_t, 2, 2>(v_5, tint_bitcast_to_f16(((((((4u + start_byte_offset) % 16u) / 4u) == 2u)) ? (v_6.z) : (v_6.x))));
+}
+
+void v_7(uint offset, S obj) {
+  s.Store((offset + 0u), asuint(obj.before));
+  v_2((offset + 4u), obj.m);
+  s.Store((offset + 64u), asuint(obj.after));
+}
+
+S v_8(uint start_byte_offset) {
+  int v_9 = asint(u[(start_byte_offset / 16u)][((start_byte_offset % 16u) / 4u)]);
+  matrix<float16_t, 2, 2> v_10 = v_3((4u + start_byte_offset));
+  S v_11 = {v_9, v_10, asint(u[((64u + start_byte_offset) / 16u)][(((64u + start_byte_offset) % 16u) / 4u)])};
+  return v_11;
+}
+
+void v_12(uint offset, S obj[4]) {
+  {
+    uint v_13 = 0u;
+    v_13 = 0u;
+    while(true) {
+      uint v_14 = v_13;
+      if ((v_14 >= 4u)) {
+        break;
+      }
+      S v_15 = obj[v_14];
+      v_7((offset + (v_14 * 128u)), v_15);
+      {
+        v_13 = (v_14 + 1u);
+      }
+      continue;
+    }
+  }
+}
+
+typedef S ary_ret[4];
+ary_ret v_16(uint start_byte_offset) {
+  S a[4] = (S[4])0;
+  {
+    uint v_17 = 0u;
+    v_17 = 0u;
+    while(true) {
+      uint v_18 = v_17;
+      if ((v_18 >= 4u)) {
+        break;
+      }
+      S v_19 = v_8((start_byte_offset + (v_18 * 128u)));
+      a[v_18] = v_19;
+      {
+        v_17 = (v_18 + 1u);
+      }
+      continue;
+    }
+  }
+  S v_20[4] = a;
+  return v_20;
+}
+
+[numthreads(1, 1, 1)]
+void f() {
+  S v_21[4] = v_16(0u);
+  v_12(0u, v_21);
+  S v_22 = v_8(256u);
+  v_7(128u, v_22);
+  v_2(388u, v_3(260u));
+  s.Store<vector<float16_t, 2> >(132u, tint_bitcast_to_f16(u[0u].z).yx);
+}
+
+FXC validation failure:
+c:\src\dawn\Shader@0x00000232084CEC20(3,10-18): error X3000: syntax error: unexpected token 'float16_t'
+
diff --git a/test/tint/buffer/uniform/std140/struct/mat2x2_f16/to_workgroup.wgsl.expected.ir.dxc.hlsl b/test/tint/buffer/uniform/std140/struct/mat2x2_f16/to_workgroup.wgsl.expected.ir.dxc.hlsl
index 3f437dc..4dee3de 100644
--- a/test/tint/buffer/uniform/std140/struct/mat2x2_f16/to_workgroup.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/buffer/uniform/std140/struct/mat2x2_f16/to_workgroup.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,91 @@
-SKIP: FAILED
+struct S {
+  int before;
+  matrix<float16_t, 2, 2> m;
+  int after;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Access
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct f_inputs {
+  uint tint_local_index : SV_GroupIndex;
+};
+
+
+cbuffer cbuffer_u : register(b0) {
+  uint4 u[32];
+};
+groupshared S w[4];
+vector<float16_t, 2> tint_bitcast_to_f16(uint src) {
+  uint v = src;
+  float t_low = f16tof32((v & 65535u));
+  float t_high = f16tof32(((v >> 16u) & 65535u));
+  float16_t v_1 = float16_t(t_low);
+  return vector<float16_t, 2>(v_1, float16_t(t_high));
+}
+
+matrix<float16_t, 2, 2> v_2(uint start_byte_offset) {
+  uint4 v_3 = u[(start_byte_offset / 16u)];
+  vector<float16_t, 2> v_4 = tint_bitcast_to_f16((((((start_byte_offset % 16u) / 4u) == 2u)) ? (v_3.z) : (v_3.x)));
+  uint4 v_5 = u[((4u + start_byte_offset) / 16u)];
+  return matrix<float16_t, 2, 2>(v_4, tint_bitcast_to_f16(((((((4u + start_byte_offset) % 16u) / 4u) == 2u)) ? (v_5.z) : (v_5.x))));
+}
+
+S v_6(uint start_byte_offset) {
+  int v_7 = asint(u[(start_byte_offset / 16u)][((start_byte_offset % 16u) / 4u)]);
+  matrix<float16_t, 2, 2> v_8 = v_2((4u + start_byte_offset));
+  S v_9 = {v_7, v_8, asint(u[((64u + start_byte_offset) / 16u)][(((64u + start_byte_offset) % 16u) / 4u)])};
+  return v_9;
+}
+
+typedef S ary_ret[4];
+ary_ret v_10(uint start_byte_offset) {
+  S a[4] = (S[4])0;
+  {
+    uint v_11 = 0u;
+    v_11 = 0u;
+    while(true) {
+      uint v_12 = v_11;
+      if ((v_12 >= 4u)) {
+        break;
+      }
+      S v_13 = v_6((start_byte_offset + (v_12 * 128u)));
+      a[v_12] = v_13;
+      {
+        v_11 = (v_12 + 1u);
+      }
+      continue;
+    }
+  }
+  S v_14[4] = a;
+  return v_14;
+}
+
+void f_inner(uint tint_local_index) {
+  {
+    uint v_15 = 0u;
+    v_15 = tint_local_index;
+    while(true) {
+      uint v_16 = v_15;
+      if ((v_16 >= 4u)) {
+        break;
+      }
+      S v_17 = (S)0;
+      w[v_16] = v_17;
+      {
+        v_15 = (v_16 + 1u);
+      }
+      continue;
+    }
+  }
+  GroupMemoryBarrierWithGroupSync();
+  S v_18[4] = v_10(0u);
+  w = v_18;
+  S v_19 = v_6(256u);
+  w[1] = v_19;
+  w[3].m = v_2(260u);
+  w[1].m[0] = tint_bitcast_to_f16(u[0u].z).yx;
+}
+
+[numthreads(1, 1, 1)]
+void f(f_inputs inputs) {
+  f_inner(inputs.tint_local_index);
+}
+
diff --git a/test/tint/buffer/uniform/std140/struct/mat2x2_f16/to_workgroup.wgsl.expected.ir.fxc.hlsl b/test/tint/buffer/uniform/std140/struct/mat2x2_f16/to_workgroup.wgsl.expected.ir.fxc.hlsl
index 3f437dc..4f74efe 100644
--- a/test/tint/buffer/uniform/std140/struct/mat2x2_f16/to_workgroup.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/buffer/uniform/std140/struct/mat2x2_f16/to_workgroup.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,96 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Access
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct S {
+  int before;
+  matrix<float16_t, 2, 2> m;
+  int after;
+};
+
+struct f_inputs {
+  uint tint_local_index : SV_GroupIndex;
+};
+
+
+cbuffer cbuffer_u : register(b0) {
+  uint4 u[32];
+};
+groupshared S w[4];
+vector<float16_t, 2> tint_bitcast_to_f16(uint src) {
+  uint v = src;
+  float t_low = f16tof32((v & 65535u));
+  float t_high = f16tof32(((v >> 16u) & 65535u));
+  float16_t v_1 = float16_t(t_low);
+  return vector<float16_t, 2>(v_1, float16_t(t_high));
+}
+
+matrix<float16_t, 2, 2> v_2(uint start_byte_offset) {
+  uint4 v_3 = u[(start_byte_offset / 16u)];
+  vector<float16_t, 2> v_4 = tint_bitcast_to_f16((((((start_byte_offset % 16u) / 4u) == 2u)) ? (v_3.z) : (v_3.x)));
+  uint4 v_5 = u[((4u + start_byte_offset) / 16u)];
+  return matrix<float16_t, 2, 2>(v_4, tint_bitcast_to_f16(((((((4u + start_byte_offset) % 16u) / 4u) == 2u)) ? (v_5.z) : (v_5.x))));
+}
+
+S v_6(uint start_byte_offset) {
+  int v_7 = asint(u[(start_byte_offset / 16u)][((start_byte_offset % 16u) / 4u)]);
+  matrix<float16_t, 2, 2> v_8 = v_2((4u + start_byte_offset));
+  S v_9 = {v_7, v_8, asint(u[((64u + start_byte_offset) / 16u)][(((64u + start_byte_offset) % 16u) / 4u)])};
+  return v_9;
+}
+
+typedef S ary_ret[4];
+ary_ret v_10(uint start_byte_offset) {
+  S a[4] = (S[4])0;
+  {
+    uint v_11 = 0u;
+    v_11 = 0u;
+    while(true) {
+      uint v_12 = v_11;
+      if ((v_12 >= 4u)) {
+        break;
+      }
+      S v_13 = v_6((start_byte_offset + (v_12 * 128u)));
+      a[v_12] = v_13;
+      {
+        v_11 = (v_12 + 1u);
+      }
+      continue;
+    }
+  }
+  S v_14[4] = a;
+  return v_14;
+}
+
+void f_inner(uint tint_local_index) {
+  {
+    uint v_15 = 0u;
+    v_15 = tint_local_index;
+    while(true) {
+      uint v_16 = v_15;
+      if ((v_16 >= 4u)) {
+        break;
+      }
+      S v_17 = (S)0;
+      w[v_16] = v_17;
+      {
+        v_15 = (v_16 + 1u);
+      }
+      continue;
+    }
+  }
+  GroupMemoryBarrierWithGroupSync();
+  S v_18[4] = v_10(0u);
+  w = v_18;
+  S v_19 = v_6(256u);
+  w[1] = v_19;
+  w[3].m = v_2(260u);
+  w[1].m[0] = tint_bitcast_to_f16(u[0u].z).yx;
+}
+
+[numthreads(1, 1, 1)]
+void f(f_inputs inputs) {
+  f_inner(inputs.tint_local_index);
+}
+
+FXC validation failure:
+c:\src\dawn\Shader@0x000002919AD9CA80(3,10-18): error X3000: syntax error: unexpected token 'float16_t'
+
diff --git a/test/tint/buffer/uniform/std140/struct/mat2x2_f32/dynamic_index_via_ptr.wgsl.expected.ir.dxc.hlsl b/test/tint/buffer/uniform/std140/struct/mat2x2_f32/dynamic_index_via_ptr.wgsl.expected.ir.dxc.hlsl
index 3f437dc..d1a3c57 100644
--- a/test/tint/buffer/uniform/std140/struct/mat2x2_f32/dynamic_index_via_ptr.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/buffer/uniform/std140/struct/mat2x2_f32/dynamic_index_via_ptr.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,299 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Access
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+
+struct Inner {
+  @size(64)
+  m : mat2x2<f32>,
+}
+
+struct Outer {
+  a : array<Inner, 4>,
+}
+
+@group(0) @binding(0) var<uniform> a : array<Outer, 4>;
+
+var<private> counter = 0;
+
+fn i() -> i32 {
+  counter++;
+  return counter;
+}
+
+@compute @workgroup_size(1)
+fn f() {
+  let p_a = &(a);
+  let p_a_i = &((*(p_a))[i()]);
+  let p_a_i_a = &((*(p_a_i)).a);
+  let p_a_i_a_i = &((*(p_a_i_a))[i()]);
+  let p_a_i_a_i_m = &((*(p_a_i_a_i)).m);
+  let p_a_i_a_i_m_i = &((*(p_a_i_a_i_m))[i()]);
+  let l_a : array<Outer, 4> = *(p_a);
+  let l_a_i : Outer = *(p_a_i);
+  let l_a_i_a : array<Inner, 4> = *(p_a_i_a);
+  let l_a_i_a_i : Inner = *(p_a_i_a_i);
+  let l_a_i_a_i_m : mat2x2<f32> = *(p_a_i_a_i_m);
+  let l_a_i_a_i_m_i : vec2<f32> = *(p_a_i_a_i_m_i);
+  let l_a_i_a_i_m_i_i : f32 = (*(p_a_i_a_i_m_i))[i()];
+}
+
+Failed to generate: :38:24 error: binary: %23 is not in scope
+    %22:u32 = add %21, %23
+                       ^^^
+
+:24:3 note: in block
+  $B3: {
+  ^^^
+
+:68:5 note: %23 declared here
+    %23:u32 = mul %56, 4u
+    ^^^^^^^
+
+:45:24 error: binary: %23 is not in scope
+    %32:u32 = add %31, %23
+                       ^^^
+
+:24:3 note: in block
+  $B3: {
+  ^^^
+
+:68:5 note: %23 declared here
+    %23:u32 = mul %56, 4u
+    ^^^^^^^
+
+:50:24 error: binary: %23 is not in scope
+    %38:u32 = add %37, %23
+                       ^^^
+
+:24:3 note: in block
+  $B3: {
+  ^^^
+
+:68:5 note: %23 declared here
+    %23:u32 = mul %56, 4u
+    ^^^^^^^
+
+:55:24 error: binary: %23 is not in scope
+    %44:u32 = add %43, %23
+                       ^^^
+
+:24:3 note: in block
+  $B3: {
+  ^^^
+
+:68:5 note: %23 declared here
+    %23:u32 = mul %56, 4u
+    ^^^^^^^
+
+:68:5 error: binary: no matching overload for 'operator * (i32, u32)'
+
+9 candidate operators:
+ • 'operator * (T  ✓ , T  ✗ ) -> T' where:
+      ✓  'T' is 'f32', 'i32', 'u32' or 'f16'
+ • 'operator * (vecN<T>  ✗ , T  ✓ ) -> vecN<T>' where:
+      ✓  'T' is 'f32', 'i32', 'u32' or 'f16'
+ • 'operator * (T  ✓ , vecN<T>  ✗ ) -> vecN<T>' where:
+      ✓  'T' is 'f32', 'i32', 'u32' or 'f16'
+ • 'operator * (T  ✗ , matNxM<T>  ✗ ) -> matNxM<T>' where:
+      ✗  'T' is 'f32' or 'f16'
+ • 'operator * (matNxM<T>  ✗ , T  ✗ ) -> matNxM<T>' where:
+      ✗  'T' is 'f32' or 'f16'
+ • 'operator * (vecN<T>  ✗ , vecN<T>  ✗ ) -> vecN<T>' where:
+      ✗  'T' is 'f32', 'i32', 'u32' or 'f16'
+ • 'operator * (matCxR<T>  ✗ , vecC<T>  ✗ ) -> vecR<T>' where:
+      ✗  'T' is 'f32' or 'f16'
+ • 'operator * (vecR<T>  ✗ , matCxR<T>  ✗ ) -> vecC<T>' where:
+      ✗  'T' is 'f32' or 'f16'
+ • 'operator * (matKxR<T>  ✗ , matCxK<T>  ✗ ) -> matCxR<T>' where:
+      ✗  'T' is 'f32' or 'f16'
+
+    %23:u32 = mul %56, 4u
+    ^^^^^^^^^^^^^^^^^^^^^
+
+:24:3 note: in block
+  $B3: {
+  ^^^
+
+note: # Disassembly
+Inner = struct @align(8) {
+  m:mat2x2<f32> @offset(0)
+}
+
+Outer = struct @align(8) {
+  a:array<Inner, 4> @offset(0)
+}
+
+$B1: {  # root
+  %a:ptr<uniform, array<vec4<u32>, 64>, read> = var @binding_point(0, 0)
+  %counter:ptr<private, i32, read_write> = var, 0i
+}
+
+%i = func():i32 {
+  $B2: {
+    %4:i32 = load %counter
+    %5:i32 = add %4, 1i
+    store %counter, %5
+    %6:i32 = load %counter
+    ret %6
+  }
+}
+%f = @compute @workgroup_size(1, 1, 1) func():void {
+  $B3: {
+    %8:i32 = call %i
+    %9:u32 = convert %8
+    %10:u32 = mul 256u, %9
+    %11:i32 = call %i
+    %12:u32 = convert %11
+    %13:u32 = mul 64u, %12
+    %14:i32 = call %i
+    %15:u32 = convert %14
+    %16:u32 = mul 8u, %15
+    %17:array<Outer, 4> = call %18, 0u
+    %l_a:array<Outer, 4> = let %17
+    %20:u32 = add %10, %13
+    %21:u32 = add %20, %16
+    %22:u32 = add %21, %23
+    %24:Outer = call %25, %22
+    %l_a_i:Outer = let %24
+    %27:array<Inner, 4> = call %28, %10
+    %l_a_i_a:array<Inner, 4> = let %27
+    %30:u32 = add %10, %13
+    %31:u32 = add %30, %16
+    %32:u32 = add %31, %23
+    %33:Inner = call %34, %32
+    %l_a_i_a_i:Inner = let %33
+    %36:u32 = add %10, %13
+    %37:u32 = add %36, %16
+    %38:u32 = add %37, %23
+    %39:mat2x2<f32> = call %40, %38
+    %l_a_i_a_i_m:mat2x2<f32> = let %39
+    %42:u32 = add %10, %13
+    %43:u32 = add %42, %16
+    %44:u32 = add %43, %23
+    %45:u32 = div %44, 16u
+    %46:ptr<uniform, vec4<u32>, read> = access %a, %45
+    %47:u32 = mod %44, 16u
+    %48:u32 = div %47, 4u
+    %49:vec4<u32> = load %46
+    %50:vec2<u32> = swizzle %49, zw
+    %51:vec2<u32> = swizzle %49, xy
+    %52:bool = eq %48, 2u
+    %53:vec2<u32> = hlsl.ternary %51, %50, %52
+    %54:vec2<f32> = bitcast %53
+    %l_a_i_a_i_m_i:vec2<f32> = let %54
+    %56:i32 = call %i
+    %23:u32 = mul %56, 4u
+    %57:u32 = add %10, %13
+    %58:u32 = add %57, %16
+    %59:u32 = add %58, %23
+    %60:u32 = div %59, 16u
+    %61:ptr<uniform, vec4<u32>, read> = access %a, %60
+    %62:u32 = mod %59, 16u
+    %63:u32 = div %62, 4u
+    %64:u32 = load_vector_element %61, %63
+    %65:f32 = bitcast %64
+    %l_a_i_a_i_m_i_i:f32 = let %65
+    ret
+  }
+}
+%28 = func(%start_byte_offset:u32):array<Inner, 4> {
+  $B4: {
+    %a_1:ptr<function, array<Inner, 4>, read_write> = var, array<Inner, 4>(Inner(mat2x2<f32>(vec2<f32>(0.0f))))  # %a_1: 'a'
+    loop [i: $B5, b: $B6, c: $B7] {  # loop_1
+      $B5: {  # initializer
+        next_iteration 0u  # -> $B6
+      }
+      $B6 (%idx:u32): {  # body
+        %70:bool = gte %idx, 4u
+        if %70 [t: $B8] {  # if_1
+          $B8: {  # true
+            exit_loop  # loop_1
+          }
+        }
+        %71:u32 = mul %idx, 64u
+        %72:u32 = add %start_byte_offset, %71
+        %73:ptr<function, Inner, read_write> = access %a_1, %idx
+        %74:Inner = call %34, %72
+        store %73, %74
+        continue  # -> $B7
+      }
+      $B7: {  # continuing
+        %75:u32 = add %idx, 1u
+        next_iteration %75  # -> $B6
+      }
+    }
+    %76:array<Inner, 4> = load %a_1
+    ret %76
+  }
+}
+%34 = func(%start_byte_offset_1:u32):Inner {  # %start_byte_offset_1: 'start_byte_offset'
+  $B9: {
+    %78:mat2x2<f32> = call %40, %start_byte_offset_1
+    %79:Inner = construct %78
+    ret %79
+  }
+}
+%40 = func(%start_byte_offset_2:u32):mat2x2<f32> {  # %start_byte_offset_2: 'start_byte_offset'
+  $B10: {
+    %81:u32 = div %start_byte_offset_2, 16u
+    %82:ptr<uniform, vec4<u32>, read> = access %a, %81
+    %83:u32 = mod %start_byte_offset_2, 16u
+    %84:u32 = div %83, 4u
+    %85:vec4<u32> = load %82
+    %86:vec2<u32> = swizzle %85, zw
+    %87:vec2<u32> = swizzle %85, xy
+    %88:bool = eq %84, 2u
+    %89:vec2<u32> = hlsl.ternary %87, %86, %88
+    %90:vec2<f32> = bitcast %89
+    %91:u32 = add 8u, %start_byte_offset_2
+    %92:u32 = div %91, 16u
+    %93:ptr<uniform, vec4<u32>, read> = access %a, %92
+    %94:u32 = mod %91, 16u
+    %95:u32 = div %94, 4u
+    %96:vec4<u32> = load %93
+    %97:vec2<u32> = swizzle %96, zw
+    %98:vec2<u32> = swizzle %96, xy
+    %99:bool = eq %95, 2u
+    %100:vec2<u32> = hlsl.ternary %98, %97, %99
+    %101:vec2<f32> = bitcast %100
+    %102:mat2x2<f32> = construct %90, %101
+    ret %102
+  }
+}
+%25 = func(%start_byte_offset_3:u32):Outer {  # %start_byte_offset_3: 'start_byte_offset'
+  $B11: {
+    %104:array<Inner, 4> = call %28, %start_byte_offset_3
+    %105:Outer = construct %104
+    ret %105
+  }
+}
+%18 = func(%start_byte_offset_4:u32):array<Outer, 4> {  # %start_byte_offset_4: 'start_byte_offset'
+  $B12: {
+    %a_2:ptr<function, array<Outer, 4>, read_write> = var, array<Outer, 4>(Outer(array<Inner, 4>(Inner(mat2x2<f32>(vec2<f32>(0.0f))))))  # %a_2: 'a'
+    loop [i: $B13, b: $B14, c: $B15] {  # loop_2
+      $B13: {  # initializer
+        next_iteration 0u  # -> $B14
+      }
+      $B14 (%idx_1:u32): {  # body
+        %109:bool = gte %idx_1, 4u
+        if %109 [t: $B16] {  # if_2
+          $B16: {  # true
+            exit_loop  # loop_2
+          }
+        }
+        %110:u32 = mul %idx_1, 256u
+        %111:u32 = add %start_byte_offset_4, %110
+        %112:ptr<function, Outer, read_write> = access %a_2, %idx_1
+        %113:Outer = call %25, %111
+        store %112, %113
+        continue  # -> $B15
+      }
+      $B15: {  # continuing
+        %114:u32 = add %idx_1, 1u
+        next_iteration %114  # -> $B14
+      }
+    }
+    %115:array<Outer, 4> = load %a_2
+    ret %115
+  }
+}
+
diff --git a/test/tint/buffer/uniform/std140/struct/mat2x2_f32/dynamic_index_via_ptr.wgsl.expected.ir.fxc.hlsl b/test/tint/buffer/uniform/std140/struct/mat2x2_f32/dynamic_index_via_ptr.wgsl.expected.ir.fxc.hlsl
index 3f437dc..2d1fd73 100644
--- a/test/tint/buffer/uniform/std140/struct/mat2x2_f32/dynamic_index_via_ptr.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/buffer/uniform/std140/struct/mat2x2_f32/dynamic_index_via_ptr.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,272 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Access
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+
+struct Inner {
+  @size(64)
+  m : mat2x2<f32>,
+}
+
+struct Outer {
+  a : array<Inner, 4>,
+}
+
+@group(0) @binding(0) var<uniform> a : array<Outer, 4>;
+
+var<private> counter = 0;
+
+fn i() -> i32 {
+  counter++;
+  return counter;
+}
+
+@compute @workgroup_size(1)
+fn f() {
+  let p_a = &(a);
+  let p_a_i = &((*(p_a))[i()]);
+  let p_a_i_a = &((*(p_a_i)).a);
+  let p_a_i_a_i = &((*(p_a_i_a))[i()]);
+  let p_a_i_a_i_m = &((*(p_a_i_a_i)).m);
+  let p_a_i_a_i_m_i = &((*(p_a_i_a_i_m))[i()]);
+  let l_a : array<Outer, 4> = *(p_a);
+  let l_a_i : Outer = *(p_a_i);
+  let l_a_i_a : array<Inner, 4> = *(p_a_i_a);
+  let l_a_i_a_i : Inner = *(p_a_i_a_i);
+  let l_a_i_a_i_m : mat2x2<f32> = *(p_a_i_a_i_m);
+  let l_a_i_a_i_m_i : vec2<f32> = *(p_a_i_a_i_m_i);
+  let l_a_i_a_i_m_i_i : f32 = (*(p_a_i_a_i_m_i))[i()];
+}
+
+Failed to generate: :38:24 error: binary: %23 is not in scope
+    %22:u32 = add %21, %23
+                       ^^^
+
+:24:3 note: in block
+  $B3: {
+  ^^^
+
+:65:5 note: %23 declared here
+    %23:u32 = mul %53, 4u
+    ^^^^^^^
+
+:48:24 error: binary: %23 is not in scope
+    %36:u32 = add %35, %23
+                       ^^^
+
+:24:3 note: in block
+  $B3: {
+  ^^^
+
+:65:5 note: %23 declared here
+    %23:u32 = mul %53, 4u
+    ^^^^^^^
+
+:65:5 error: binary: no matching overload for 'operator * (i32, u32)'
+
+9 candidate operators:
+ • 'operator * (T  ✓ , T  ✗ ) -> T' where:
+      ✓  'T' is 'f32', 'i32', 'u32' or 'f16'
+ • 'operator * (vecN<T>  ✗ , T  ✓ ) -> vecN<T>' where:
+      ✓  'T' is 'f32', 'i32', 'u32' or 'f16'
+ • 'operator * (T  ✓ , vecN<T>  ✗ ) -> vecN<T>' where:
+      ✓  'T' is 'f32', 'i32', 'u32' or 'f16'
+ • 'operator * (T  ✗ , matNxM<T>  ✗ ) -> matNxM<T>' where:
+      ✗  'T' is 'f32' or 'f16'
+ • 'operator * (matNxM<T>  ✗ , T  ✗ ) -> matNxM<T>' where:
+      ✗  'T' is 'f32' or 'f16'
+ • 'operator * (vecN<T>  ✗ , vecN<T>  ✗ ) -> vecN<T>' where:
+      ✗  'T' is 'f32', 'i32', 'u32' or 'f16'
+ • 'operator * (matCxR<T>  ✗ , vecC<T>  ✗ ) -> vecR<T>' where:
+      ✗  'T' is 'f32' or 'f16'
+ • 'operator * (vecR<T>  ✗ , matCxR<T>  ✗ ) -> vecC<T>' where:
+      ✗  'T' is 'f32' or 'f16'
+ • 'operator * (matKxR<T>  ✗ , matCxK<T>  ✗ ) -> matCxR<T>' where:
+      ✗  'T' is 'f32' or 'f16'
+
+    %23:u32 = mul %53, 4u
+    ^^^^^^^^^^^^^^^^^^^^^
+
+:24:3 note: in block
+  $B3: {
+  ^^^
+
+note: # Disassembly
+Inner = struct @align(8) {
+  m:mat2x2<f32> @offset(0)
+}
+
+Outer = struct @align(8) {
+  a:array<Inner, 4> @offset(0)
+}
+
+$B1: {  # root
+  %a:ptr<uniform, array<vec4<u32>, 64>, read> = var @binding_point(0, 0)
+  %counter:ptr<private, i32, read_write> = var, 0i
+}
+
+%i = func():i32 {
+  $B2: {
+    %4:i32 = load %counter
+    %5:i32 = add %4, 1i
+    store %counter, %5
+    %6:i32 = load %counter
+    ret %6
+  }
+}
+%f = @compute @workgroup_size(1, 1, 1) func():void {
+  $B3: {
+    %8:i32 = call %i
+    %9:u32 = convert %8
+    %10:u32 = mul 256u, %9
+    %11:i32 = call %i
+    %12:u32 = convert %11
+    %13:u32 = mul 64u, %12
+    %14:i32 = call %i
+    %15:u32 = convert %14
+    %16:u32 = mul 8u, %15
+    %17:array<Outer, 4> = call %18, 0u
+    %l_a:array<Outer, 4> = let %17
+    %20:u32 = add %10, %13
+    %21:u32 = add %20, %16
+    %22:u32 = add %21, %23
+    %24:Outer = call %25, %22
+    %l_a_i:Outer = let %24
+    %27:array<Inner, 4> = call %28, %10
+    %l_a_i_a:array<Inner, 4> = let %27
+    %30:u32 = add %10, %13
+    %31:Inner = call %32, %30
+    %l_a_i_a_i:Inner = let %31
+    %34:u32 = add %10, %13
+    %35:u32 = add %34, %16
+    %36:u32 = add %35, %23
+    %37:mat2x2<f32> = call %38, %36
+    %l_a_i_a_i_m:mat2x2<f32> = let %37
+    %40:u32 = add %10, %13
+    %41:u32 = add %40, %16
+    %42:u32 = div %41, 16u
+    %43:ptr<uniform, vec4<u32>, read> = access %a, %42
+    %44:u32 = mod %41, 16u
+    %45:u32 = div %44, 4u
+    %46:vec4<u32> = load %43
+    %47:vec2<u32> = swizzle %46, zw
+    %48:vec2<u32> = swizzle %46, xy
+    %49:bool = eq %45, 2u
+    %50:vec2<u32> = hlsl.ternary %48, %47, %49
+    %51:vec2<f32> = bitcast %50
+    %l_a_i_a_i_m_i:vec2<f32> = let %51
+    %53:i32 = call %i
+    %23:u32 = mul %53, 4u
+    %54:u32 = add %10, %13
+    %55:u32 = add %54, %16
+    %56:u32 = add %55, %23
+    %57:u32 = div %56, 16u
+    %58:ptr<uniform, vec4<u32>, read> = access %a, %57
+    %59:u32 = mod %56, 16u
+    %60:u32 = div %59, 4u
+    %61:u32 = load_vector_element %58, %60
+    %62:f32 = bitcast %61
+    %l_a_i_a_i_m_i_i:f32 = let %62
+    ret
+  }
+}
+%28 = func(%start_byte_offset:u32):array<Inner, 4> {
+  $B4: {
+    %a_1:ptr<function, array<Inner, 4>, read_write> = var, array<Inner, 4>(Inner(mat2x2<f32>(vec2<f32>(0.0f))))  # %a_1: 'a'
+    loop [i: $B5, b: $B6, c: $B7] {  # loop_1
+      $B5: {  # initializer
+        next_iteration 0u  # -> $B6
+      }
+      $B6 (%idx:u32): {  # body
+        %67:bool = gte %idx, 4u
+        if %67 [t: $B8] {  # if_1
+          $B8: {  # true
+            exit_loop  # loop_1
+          }
+        }
+        %68:u32 = mul %idx, 64u
+        %69:u32 = add %start_byte_offset, %68
+        %70:ptr<function, Inner, read_write> = access %a_1, %idx
+        %71:Inner = call %32, %69
+        store %70, %71
+        continue  # -> $B7
+      }
+      $B7: {  # continuing
+        %72:u32 = add %idx, 1u
+        next_iteration %72  # -> $B6
+      }
+    }
+    %73:array<Inner, 4> = load %a_1
+    ret %73
+  }
+}
+%32 = func(%start_byte_offset_1:u32):Inner {  # %start_byte_offset_1: 'start_byte_offset'
+  $B9: {
+    %75:mat2x2<f32> = call %38, %start_byte_offset_1
+    %76:Inner = construct %75
+    ret %76
+  }
+}
+%38 = func(%start_byte_offset_2:u32):mat2x2<f32> {  # %start_byte_offset_2: 'start_byte_offset'
+  $B10: {
+    %78:u32 = div %start_byte_offset_2, 16u
+    %79:ptr<uniform, vec4<u32>, read> = access %a, %78
+    %80:u32 = mod %start_byte_offset_2, 16u
+    %81:u32 = div %80, 4u
+    %82:vec4<u32> = load %79
+    %83:vec2<u32> = swizzle %82, zw
+    %84:vec2<u32> = swizzle %82, xy
+    %85:bool = eq %81, 2u
+    %86:vec2<u32> = hlsl.ternary %84, %83, %85
+    %87:vec2<f32> = bitcast %86
+    %88:u32 = add 8u, %start_byte_offset_2
+    %89:u32 = div %88, 16u
+    %90:ptr<uniform, vec4<u32>, read> = access %a, %89
+    %91:u32 = mod %88, 16u
+    %92:u32 = div %91, 4u
+    %93:vec4<u32> = load %90
+    %94:vec2<u32> = swizzle %93, zw
+    %95:vec2<u32> = swizzle %93, xy
+    %96:bool = eq %92, 2u
+    %97:vec2<u32> = hlsl.ternary %95, %94, %96
+    %98:vec2<f32> = bitcast %97
+    %99:mat2x2<f32> = construct %87, %98
+    ret %99
+  }
+}
+%25 = func(%start_byte_offset_3:u32):Outer {  # %start_byte_offset_3: 'start_byte_offset'
+  $B11: {
+    %101:array<Inner, 4> = call %28, %start_byte_offset_3
+    %102:Outer = construct %101
+    ret %102
+  }
+}
+%18 = func(%start_byte_offset_4:u32):array<Outer, 4> {  # %start_byte_offset_4: 'start_byte_offset'
+  $B12: {
+    %a_2:ptr<function, array<Outer, 4>, read_write> = var, array<Outer, 4>(Outer(array<Inner, 4>(Inner(mat2x2<f32>(vec2<f32>(0.0f))))))  # %a_2: 'a'
+    loop [i: $B13, b: $B14, c: $B15] {  # loop_2
+      $B13: {  # initializer
+        next_iteration 0u  # -> $B14
+      }
+      $B14 (%idx_1:u32): {  # body
+        %106:bool = gte %idx_1, 4u
+        if %106 [t: $B16] {  # if_2
+          $B16: {  # true
+            exit_loop  # loop_2
+          }
+        }
+        %107:u32 = mul %idx_1, 256u
+        %108:u32 = add %start_byte_offset_4, %107
+        %109:ptr<function, Outer, read_write> = access %a_2, %idx_1
+        %110:Outer = call %25, %108
+        store %109, %110
+        continue  # -> $B15
+      }
+      $B15: {  # continuing
+        %111:u32 = add %idx_1, 1u
+        next_iteration %111  # -> $B14
+      }
+    }
+    %112:array<Outer, 4> = load %a_2
+    ret %112
+  }
+}
+
diff --git a/test/tint/buffer/uniform/std140/struct/mat2x2_f32/static_index_via_ptr.wgsl.expected.ir.dxc.hlsl b/test/tint/buffer/uniform/std140/struct/mat2x2_f32/static_index_via_ptr.wgsl.expected.ir.dxc.hlsl
index 3f437dc..711901c 100644
--- a/test/tint/buffer/uniform/std140/struct/mat2x2_f32/static_index_via_ptr.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/buffer/uniform/std140/struct/mat2x2_f32/static_index_via_ptr.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,87 @@
-SKIP: FAILED
+struct Inner {
+  float2x2 m;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Access
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct Outer {
+  Inner a[4];
+};
+
+
+cbuffer cbuffer_a : register(b0) {
+  uint4 a[64];
+};
+float2x2 v(uint start_byte_offset) {
+  uint4 v_1 = a[(start_byte_offset / 16u)];
+  float2 v_2 = asfloat((((((start_byte_offset % 16u) / 4u) == 2u)) ? (v_1.zw) : (v_1.xy)));
+  uint4 v_3 = a[((8u + start_byte_offset) / 16u)];
+  return float2x2(v_2, asfloat(((((((8u + start_byte_offset) % 16u) / 4u) == 2u)) ? (v_3.zw) : (v_3.xy))));
+}
+
+Inner v_4(uint start_byte_offset) {
+  Inner v_5 = {v(start_byte_offset)};
+  return v_5;
+}
+
+typedef Inner ary_ret[4];
+ary_ret v_6(uint start_byte_offset) {
+  Inner a[4] = (Inner[4])0;
+  {
+    uint v_7 = 0u;
+    v_7 = 0u;
+    while(true) {
+      uint v_8 = v_7;
+      if ((v_8 >= 4u)) {
+        break;
+      }
+      Inner v_9 = v_4((start_byte_offset + (v_8 * 64u)));
+      a[v_8] = v_9;
+      {
+        v_7 = (v_8 + 1u);
+      }
+      continue;
+    }
+  }
+  Inner v_10[4] = a;
+  return v_10;
+}
+
+Outer v_11(uint start_byte_offset) {
+  Inner v_12[4] = v_6(start_byte_offset);
+  Outer v_13 = {v_12};
+  return v_13;
+}
+
+typedef Outer ary_ret_1[4];
+ary_ret_1 v_14(uint start_byte_offset) {
+  Outer a[4] = (Outer[4])0;
+  {
+    uint v_15 = 0u;
+    v_15 = 0u;
+    while(true) {
+      uint v_16 = v_15;
+      if ((v_16 >= 4u)) {
+        break;
+      }
+      Outer v_17 = v_11((start_byte_offset + (v_16 * 256u)));
+      a[v_16] = v_17;
+      {
+        v_15 = (v_16 + 1u);
+      }
+      continue;
+    }
+  }
+  Outer v_18[4] = a;
+  return v_18;
+}
+
+[numthreads(1, 1, 1)]
+void f() {
+  Outer l_a[4] = v_14(0u);
+  Outer l_a_3 = v_11(904u);
+  Inner l_a_3_a[4] = v_6(768u);
+  Inner l_a_3_a_2 = v_4(904u);
+  float2x2 l_a_3_a_2_m = v(896u);
+  float2 l_a_3_a_2_m_1 = asfloat(a[56u].zw);
+  float l_a_3_a_2_m_1_0 = asfloat(a[56u].z);
+}
+
diff --git a/test/tint/buffer/uniform/std140/struct/mat2x2_f32/static_index_via_ptr.wgsl.expected.ir.fxc.hlsl b/test/tint/buffer/uniform/std140/struct/mat2x2_f32/static_index_via_ptr.wgsl.expected.ir.fxc.hlsl
index 3f437dc..711901c 100644
--- a/test/tint/buffer/uniform/std140/struct/mat2x2_f32/static_index_via_ptr.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/buffer/uniform/std140/struct/mat2x2_f32/static_index_via_ptr.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,87 @@
-SKIP: FAILED
+struct Inner {
+  float2x2 m;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Access
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct Outer {
+  Inner a[4];
+};
+
+
+cbuffer cbuffer_a : register(b0) {
+  uint4 a[64];
+};
+float2x2 v(uint start_byte_offset) {
+  uint4 v_1 = a[(start_byte_offset / 16u)];
+  float2 v_2 = asfloat((((((start_byte_offset % 16u) / 4u) == 2u)) ? (v_1.zw) : (v_1.xy)));
+  uint4 v_3 = a[((8u + start_byte_offset) / 16u)];
+  return float2x2(v_2, asfloat(((((((8u + start_byte_offset) % 16u) / 4u) == 2u)) ? (v_3.zw) : (v_3.xy))));
+}
+
+Inner v_4(uint start_byte_offset) {
+  Inner v_5 = {v(start_byte_offset)};
+  return v_5;
+}
+
+typedef Inner ary_ret[4];
+ary_ret v_6(uint start_byte_offset) {
+  Inner a[4] = (Inner[4])0;
+  {
+    uint v_7 = 0u;
+    v_7 = 0u;
+    while(true) {
+      uint v_8 = v_7;
+      if ((v_8 >= 4u)) {
+        break;
+      }
+      Inner v_9 = v_4((start_byte_offset + (v_8 * 64u)));
+      a[v_8] = v_9;
+      {
+        v_7 = (v_8 + 1u);
+      }
+      continue;
+    }
+  }
+  Inner v_10[4] = a;
+  return v_10;
+}
+
+Outer v_11(uint start_byte_offset) {
+  Inner v_12[4] = v_6(start_byte_offset);
+  Outer v_13 = {v_12};
+  return v_13;
+}
+
+typedef Outer ary_ret_1[4];
+ary_ret_1 v_14(uint start_byte_offset) {
+  Outer a[4] = (Outer[4])0;
+  {
+    uint v_15 = 0u;
+    v_15 = 0u;
+    while(true) {
+      uint v_16 = v_15;
+      if ((v_16 >= 4u)) {
+        break;
+      }
+      Outer v_17 = v_11((start_byte_offset + (v_16 * 256u)));
+      a[v_16] = v_17;
+      {
+        v_15 = (v_16 + 1u);
+      }
+      continue;
+    }
+  }
+  Outer v_18[4] = a;
+  return v_18;
+}
+
+[numthreads(1, 1, 1)]
+void f() {
+  Outer l_a[4] = v_14(0u);
+  Outer l_a_3 = v_11(904u);
+  Inner l_a_3_a[4] = v_6(768u);
+  Inner l_a_3_a_2 = v_4(904u);
+  float2x2 l_a_3_a_2_m = v(896u);
+  float2 l_a_3_a_2_m_1 = asfloat(a[56u].zw);
+  float l_a_3_a_2_m_1_0 = asfloat(a[56u].z);
+}
+
diff --git a/test/tint/buffer/uniform/std140/struct/mat2x2_f32/to_builtin.wgsl.expected.ir.dxc.hlsl b/test/tint/buffer/uniform/std140/struct/mat2x2_f32/to_builtin.wgsl.expected.ir.dxc.hlsl
index 3f437dc..abcb520 100644
--- a/test/tint/buffer/uniform/std140/struct/mat2x2_f32/to_builtin.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/buffer/uniform/std140/struct/mat2x2_f32/to_builtin.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,18 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Access
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+cbuffer cbuffer_u : register(b0) {
+  uint4 u[32];
+};
+float2x2 v(uint start_byte_offset) {
+  uint4 v_1 = u[(start_byte_offset / 16u)];
+  float2 v_2 = asfloat((((((start_byte_offset % 16u) / 4u) == 2u)) ? (v_1.zw) : (v_1.xy)));
+  uint4 v_3 = u[((8u + start_byte_offset) / 16u)];
+  return float2x2(v_2, asfloat(((((((8u + start_byte_offset) % 16u) / 4u) == 2u)) ? (v_3.zw) : (v_3.xy))));
+}
+
+[numthreads(1, 1, 1)]
+void f() {
+  float2x2 t = transpose(v(264u));
+  float l = length(asfloat(u[1u].xy).yx);
+  float a = abs(asfloat(u[1u].xy).yx[0u]);
+}
+
diff --git a/test/tint/buffer/uniform/std140/struct/mat2x2_f32/to_builtin.wgsl.expected.ir.fxc.hlsl b/test/tint/buffer/uniform/std140/struct/mat2x2_f32/to_builtin.wgsl.expected.ir.fxc.hlsl
index 3f437dc..abcb520 100644
--- a/test/tint/buffer/uniform/std140/struct/mat2x2_f32/to_builtin.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/buffer/uniform/std140/struct/mat2x2_f32/to_builtin.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,18 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Access
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+cbuffer cbuffer_u : register(b0) {
+  uint4 u[32];
+};
+float2x2 v(uint start_byte_offset) {
+  uint4 v_1 = u[(start_byte_offset / 16u)];
+  float2 v_2 = asfloat((((((start_byte_offset % 16u) / 4u) == 2u)) ? (v_1.zw) : (v_1.xy)));
+  uint4 v_3 = u[((8u + start_byte_offset) / 16u)];
+  return float2x2(v_2, asfloat(((((((8u + start_byte_offset) % 16u) / 4u) == 2u)) ? (v_3.zw) : (v_3.xy))));
+}
+
+[numthreads(1, 1, 1)]
+void f() {
+  float2x2 t = transpose(v(264u));
+  float l = length(asfloat(u[1u].xy).yx);
+  float a = abs(asfloat(u[1u].xy).yx[0u]);
+}
+
diff --git a/test/tint/buffer/uniform/std140/struct/mat2x2_f32/to_fn.wgsl.expected.ir.dxc.hlsl b/test/tint/buffer/uniform/std140/struct/mat2x2_f32/to_fn.wgsl.expected.ir.dxc.hlsl
index 3f437dc..e841b4b 100644
--- a/test/tint/buffer/uniform/std140/struct/mat2x2_f32/to_fn.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/buffer/uniform/std140/struct/mat2x2_f32/to_fn.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,73 @@
-SKIP: FAILED
+struct S {
+  int before;
+  float2x2 m;
+  int after;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Access
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+
+cbuffer cbuffer_u : register(b0) {
+  uint4 u[32];
+};
+void a(S a_1[4]) {
+}
+
+void b(S s) {
+}
+
+void c(float2x2 m) {
+}
+
+void d(float2 v) {
+}
+
+void e(float f) {
+}
+
+float2x2 v_1(uint start_byte_offset) {
+  uint4 v_2 = u[(start_byte_offset / 16u)];
+  float2 v_3 = asfloat((((((start_byte_offset % 16u) / 4u) == 2u)) ? (v_2.zw) : (v_2.xy)));
+  uint4 v_4 = u[((8u + start_byte_offset) / 16u)];
+  return float2x2(v_3, asfloat(((((((8u + start_byte_offset) % 16u) / 4u) == 2u)) ? (v_4.zw) : (v_4.xy))));
+}
+
+S v_5(uint start_byte_offset) {
+  int v_6 = asint(u[(start_byte_offset / 16u)][((start_byte_offset % 16u) / 4u)]);
+  float2x2 v_7 = v_1((8u + start_byte_offset));
+  S v_8 = {v_6, v_7, asint(u[((64u + start_byte_offset) / 16u)][(((64u + start_byte_offset) % 16u) / 4u)])};
+  return v_8;
+}
+
+typedef S ary_ret[4];
+ary_ret v_9(uint start_byte_offset) {
+  S a[4] = (S[4])0;
+  {
+    uint v_10 = 0u;
+    v_10 = 0u;
+    while(true) {
+      uint v_11 = v_10;
+      if ((v_11 >= 4u)) {
+        break;
+      }
+      S v_12 = v_5((start_byte_offset + (v_11 * 128u)));
+      a[v_11] = v_12;
+      {
+        v_10 = (v_11 + 1u);
+      }
+      continue;
+    }
+  }
+  S v_13[4] = a;
+  return v_13;
+}
+
+[numthreads(1, 1, 1)]
+void f() {
+  S v_14[4] = v_9(0u);
+  a(v_14);
+  S v_15 = v_5(256u);
+  b(v_15);
+  c(v_1(264u));
+  d(asfloat(u[1u].xy).yx);
+  e(asfloat(u[1u].xy).yx[0u]);
+}
+
diff --git a/test/tint/buffer/uniform/std140/struct/mat2x2_f32/to_fn.wgsl.expected.ir.fxc.hlsl b/test/tint/buffer/uniform/std140/struct/mat2x2_f32/to_fn.wgsl.expected.ir.fxc.hlsl
index 3f437dc..e841b4b 100644
--- a/test/tint/buffer/uniform/std140/struct/mat2x2_f32/to_fn.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/buffer/uniform/std140/struct/mat2x2_f32/to_fn.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,73 @@
-SKIP: FAILED
+struct S {
+  int before;
+  float2x2 m;
+  int after;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Access
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+
+cbuffer cbuffer_u : register(b0) {
+  uint4 u[32];
+};
+void a(S a_1[4]) {
+}
+
+void b(S s) {
+}
+
+void c(float2x2 m) {
+}
+
+void d(float2 v) {
+}
+
+void e(float f) {
+}
+
+float2x2 v_1(uint start_byte_offset) {
+  uint4 v_2 = u[(start_byte_offset / 16u)];
+  float2 v_3 = asfloat((((((start_byte_offset % 16u) / 4u) == 2u)) ? (v_2.zw) : (v_2.xy)));
+  uint4 v_4 = u[((8u + start_byte_offset) / 16u)];
+  return float2x2(v_3, asfloat(((((((8u + start_byte_offset) % 16u) / 4u) == 2u)) ? (v_4.zw) : (v_4.xy))));
+}
+
+S v_5(uint start_byte_offset) {
+  int v_6 = asint(u[(start_byte_offset / 16u)][((start_byte_offset % 16u) / 4u)]);
+  float2x2 v_7 = v_1((8u + start_byte_offset));
+  S v_8 = {v_6, v_7, asint(u[((64u + start_byte_offset) / 16u)][(((64u + start_byte_offset) % 16u) / 4u)])};
+  return v_8;
+}
+
+typedef S ary_ret[4];
+ary_ret v_9(uint start_byte_offset) {
+  S a[4] = (S[4])0;
+  {
+    uint v_10 = 0u;
+    v_10 = 0u;
+    while(true) {
+      uint v_11 = v_10;
+      if ((v_11 >= 4u)) {
+        break;
+      }
+      S v_12 = v_5((start_byte_offset + (v_11 * 128u)));
+      a[v_11] = v_12;
+      {
+        v_10 = (v_11 + 1u);
+      }
+      continue;
+    }
+  }
+  S v_13[4] = a;
+  return v_13;
+}
+
+[numthreads(1, 1, 1)]
+void f() {
+  S v_14[4] = v_9(0u);
+  a(v_14);
+  S v_15 = v_5(256u);
+  b(v_15);
+  c(v_1(264u));
+  d(asfloat(u[1u].xy).yx);
+  e(asfloat(u[1u].xy).yx[0u]);
+}
+
diff --git a/test/tint/buffer/uniform/std140/struct/mat2x2_f32/to_private.wgsl.expected.ir.dxc.hlsl b/test/tint/buffer/uniform/std140/struct/mat2x2_f32/to_private.wgsl.expected.ir.dxc.hlsl
index 3f437dc..8de27c2 100644
--- a/test/tint/buffer/uniform/std140/struct/mat2x2_f32/to_private.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/buffer/uniform/std140/struct/mat2x2_f32/to_private.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,58 @@
-SKIP: FAILED
+struct S {
+  int before;
+  float2x2 m;
+  int after;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Access
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+
+cbuffer cbuffer_u : register(b0) {
+  uint4 u[32];
+};
+static S p[4] = (S[4])0;
+float2x2 v(uint start_byte_offset) {
+  uint4 v_1 = u[(start_byte_offset / 16u)];
+  float2 v_2 = asfloat((((((start_byte_offset % 16u) / 4u) == 2u)) ? (v_1.zw) : (v_1.xy)));
+  uint4 v_3 = u[((8u + start_byte_offset) / 16u)];
+  return float2x2(v_2, asfloat(((((((8u + start_byte_offset) % 16u) / 4u) == 2u)) ? (v_3.zw) : (v_3.xy))));
+}
+
+S v_4(uint start_byte_offset) {
+  int v_5 = asint(u[(start_byte_offset / 16u)][((start_byte_offset % 16u) / 4u)]);
+  float2x2 v_6 = v((8u + start_byte_offset));
+  S v_7 = {v_5, v_6, asint(u[((64u + start_byte_offset) / 16u)][(((64u + start_byte_offset) % 16u) / 4u)])};
+  return v_7;
+}
+
+typedef S ary_ret[4];
+ary_ret v_8(uint start_byte_offset) {
+  S a[4] = (S[4])0;
+  {
+    uint v_9 = 0u;
+    v_9 = 0u;
+    while(true) {
+      uint v_10 = v_9;
+      if ((v_10 >= 4u)) {
+        break;
+      }
+      S v_11 = v_4((start_byte_offset + (v_10 * 128u)));
+      a[v_10] = v_11;
+      {
+        v_9 = (v_10 + 1u);
+      }
+      continue;
+    }
+  }
+  S v_12[4] = a;
+  return v_12;
+}
+
+[numthreads(1, 1, 1)]
+void f() {
+  S v_13[4] = v_8(0u);
+  p = v_13;
+  S v_14 = v_4(256u);
+  p[1] = v_14;
+  p[3].m = v(264u);
+  p[1].m[0] = asfloat(u[1u].xy).yx;
+}
+
diff --git a/test/tint/buffer/uniform/std140/struct/mat2x2_f32/to_private.wgsl.expected.ir.fxc.hlsl b/test/tint/buffer/uniform/std140/struct/mat2x2_f32/to_private.wgsl.expected.ir.fxc.hlsl
index 3f437dc..8de27c2 100644
--- a/test/tint/buffer/uniform/std140/struct/mat2x2_f32/to_private.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/buffer/uniform/std140/struct/mat2x2_f32/to_private.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,58 @@
-SKIP: FAILED
+struct S {
+  int before;
+  float2x2 m;
+  int after;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Access
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+
+cbuffer cbuffer_u : register(b0) {
+  uint4 u[32];
+};
+static S p[4] = (S[4])0;
+float2x2 v(uint start_byte_offset) {
+  uint4 v_1 = u[(start_byte_offset / 16u)];
+  float2 v_2 = asfloat((((((start_byte_offset % 16u) / 4u) == 2u)) ? (v_1.zw) : (v_1.xy)));
+  uint4 v_3 = u[((8u + start_byte_offset) / 16u)];
+  return float2x2(v_2, asfloat(((((((8u + start_byte_offset) % 16u) / 4u) == 2u)) ? (v_3.zw) : (v_3.xy))));
+}
+
+S v_4(uint start_byte_offset) {
+  int v_5 = asint(u[(start_byte_offset / 16u)][((start_byte_offset % 16u) / 4u)]);
+  float2x2 v_6 = v((8u + start_byte_offset));
+  S v_7 = {v_5, v_6, asint(u[((64u + start_byte_offset) / 16u)][(((64u + start_byte_offset) % 16u) / 4u)])};
+  return v_7;
+}
+
+typedef S ary_ret[4];
+ary_ret v_8(uint start_byte_offset) {
+  S a[4] = (S[4])0;
+  {
+    uint v_9 = 0u;
+    v_9 = 0u;
+    while(true) {
+      uint v_10 = v_9;
+      if ((v_10 >= 4u)) {
+        break;
+      }
+      S v_11 = v_4((start_byte_offset + (v_10 * 128u)));
+      a[v_10] = v_11;
+      {
+        v_9 = (v_10 + 1u);
+      }
+      continue;
+    }
+  }
+  S v_12[4] = a;
+  return v_12;
+}
+
+[numthreads(1, 1, 1)]
+void f() {
+  S v_13[4] = v_8(0u);
+  p = v_13;
+  S v_14 = v_4(256u);
+  p[1] = v_14;
+  p[3].m = v(264u);
+  p[1].m[0] = asfloat(u[1u].xy).yx;
+}
+
diff --git a/test/tint/buffer/uniform/std140/struct/mat2x2_f32/to_storage.wgsl.expected.ir.dxc.hlsl b/test/tint/buffer/uniform/std140/struct/mat2x2_f32/to_storage.wgsl.expected.ir.dxc.hlsl
index 3f437dc..7662c88 100644
--- a/test/tint/buffer/uniform/std140/struct/mat2x2_f32/to_storage.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/buffer/uniform/std140/struct/mat2x2_f32/to_storage.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,88 @@
-SKIP: FAILED
+struct S {
+  int before;
+  float2x2 m;
+  int after;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Access
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+
+cbuffer cbuffer_u : register(b0) {
+  uint4 u[32];
+};
+RWByteAddressBuffer s : register(u1);
+void v(uint offset, float2x2 obj) {
+  s.Store2((offset + 0u), asuint(obj[0u]));
+  s.Store2((offset + 8u), asuint(obj[1u]));
+}
+
+float2x2 v_1(uint start_byte_offset) {
+  uint4 v_2 = u[(start_byte_offset / 16u)];
+  float2 v_3 = asfloat((((((start_byte_offset % 16u) / 4u) == 2u)) ? (v_2.zw) : (v_2.xy)));
+  uint4 v_4 = u[((8u + start_byte_offset) / 16u)];
+  return float2x2(v_3, asfloat(((((((8u + start_byte_offset) % 16u) / 4u) == 2u)) ? (v_4.zw) : (v_4.xy))));
+}
+
+void v_5(uint offset, S obj) {
+  s.Store((offset + 0u), asuint(obj.before));
+  v((offset + 8u), obj.m);
+  s.Store((offset + 64u), asuint(obj.after));
+}
+
+S v_6(uint start_byte_offset) {
+  int v_7 = asint(u[(start_byte_offset / 16u)][((start_byte_offset % 16u) / 4u)]);
+  float2x2 v_8 = v_1((8u + start_byte_offset));
+  S v_9 = {v_7, v_8, asint(u[((64u + start_byte_offset) / 16u)][(((64u + start_byte_offset) % 16u) / 4u)])};
+  return v_9;
+}
+
+void v_10(uint offset, S obj[4]) {
+  {
+    uint v_11 = 0u;
+    v_11 = 0u;
+    while(true) {
+      uint v_12 = v_11;
+      if ((v_12 >= 4u)) {
+        break;
+      }
+      S v_13 = obj[v_12];
+      v_5((offset + (v_12 * 128u)), v_13);
+      {
+        v_11 = (v_12 + 1u);
+      }
+      continue;
+    }
+  }
+}
+
+typedef S ary_ret[4];
+ary_ret v_14(uint start_byte_offset) {
+  S a[4] = (S[4])0;
+  {
+    uint v_15 = 0u;
+    v_15 = 0u;
+    while(true) {
+      uint v_16 = v_15;
+      if ((v_16 >= 4u)) {
+        break;
+      }
+      S v_17 = v_6((start_byte_offset + (v_16 * 128u)));
+      a[v_16] = v_17;
+      {
+        v_15 = (v_16 + 1u);
+      }
+      continue;
+    }
+  }
+  S v_18[4] = a;
+  return v_18;
+}
+
+[numthreads(1, 1, 1)]
+void f() {
+  S v_19[4] = v_14(0u);
+  v_10(0u, v_19);
+  S v_20 = v_6(256u);
+  v_5(128u, v_20);
+  v(392u, v_1(264u));
+  s.Store2(136u, asuint(asfloat(u[1u].xy).yx));
+}
+
diff --git a/test/tint/buffer/uniform/std140/struct/mat2x2_f32/to_storage.wgsl.expected.ir.fxc.hlsl b/test/tint/buffer/uniform/std140/struct/mat2x2_f32/to_storage.wgsl.expected.ir.fxc.hlsl
index 3f437dc..7662c88 100644
--- a/test/tint/buffer/uniform/std140/struct/mat2x2_f32/to_storage.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/buffer/uniform/std140/struct/mat2x2_f32/to_storage.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,88 @@
-SKIP: FAILED
+struct S {
+  int before;
+  float2x2 m;
+  int after;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Access
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+
+cbuffer cbuffer_u : register(b0) {
+  uint4 u[32];
+};
+RWByteAddressBuffer s : register(u1);
+void v(uint offset, float2x2 obj) {
+  s.Store2((offset + 0u), asuint(obj[0u]));
+  s.Store2((offset + 8u), asuint(obj[1u]));
+}
+
+float2x2 v_1(uint start_byte_offset) {
+  uint4 v_2 = u[(start_byte_offset / 16u)];
+  float2 v_3 = asfloat((((((start_byte_offset % 16u) / 4u) == 2u)) ? (v_2.zw) : (v_2.xy)));
+  uint4 v_4 = u[((8u + start_byte_offset) / 16u)];
+  return float2x2(v_3, asfloat(((((((8u + start_byte_offset) % 16u) / 4u) == 2u)) ? (v_4.zw) : (v_4.xy))));
+}
+
+void v_5(uint offset, S obj) {
+  s.Store((offset + 0u), asuint(obj.before));
+  v((offset + 8u), obj.m);
+  s.Store((offset + 64u), asuint(obj.after));
+}
+
+S v_6(uint start_byte_offset) {
+  int v_7 = asint(u[(start_byte_offset / 16u)][((start_byte_offset % 16u) / 4u)]);
+  float2x2 v_8 = v_1((8u + start_byte_offset));
+  S v_9 = {v_7, v_8, asint(u[((64u + start_byte_offset) / 16u)][(((64u + start_byte_offset) % 16u) / 4u)])};
+  return v_9;
+}
+
+void v_10(uint offset, S obj[4]) {
+  {
+    uint v_11 = 0u;
+    v_11 = 0u;
+    while(true) {
+      uint v_12 = v_11;
+      if ((v_12 >= 4u)) {
+        break;
+      }
+      S v_13 = obj[v_12];
+      v_5((offset + (v_12 * 128u)), v_13);
+      {
+        v_11 = (v_12 + 1u);
+      }
+      continue;
+    }
+  }
+}
+
+typedef S ary_ret[4];
+ary_ret v_14(uint start_byte_offset) {
+  S a[4] = (S[4])0;
+  {
+    uint v_15 = 0u;
+    v_15 = 0u;
+    while(true) {
+      uint v_16 = v_15;
+      if ((v_16 >= 4u)) {
+        break;
+      }
+      S v_17 = v_6((start_byte_offset + (v_16 * 128u)));
+      a[v_16] = v_17;
+      {
+        v_15 = (v_16 + 1u);
+      }
+      continue;
+    }
+  }
+  S v_18[4] = a;
+  return v_18;
+}
+
+[numthreads(1, 1, 1)]
+void f() {
+  S v_19[4] = v_14(0u);
+  v_10(0u, v_19);
+  S v_20 = v_6(256u);
+  v_5(128u, v_20);
+  v(392u, v_1(264u));
+  s.Store2(136u, asuint(asfloat(u[1u].xy).yx));
+}
+
diff --git a/test/tint/buffer/uniform/std140/struct/mat2x2_f32/to_workgroup.wgsl.expected.ir.dxc.hlsl b/test/tint/buffer/uniform/std140/struct/mat2x2_f32/to_workgroup.wgsl.expected.ir.dxc.hlsl
index 3f437dc..d1e878c 100644
--- a/test/tint/buffer/uniform/std140/struct/mat2x2_f32/to_workgroup.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/buffer/uniform/std140/struct/mat2x2_f32/to_workgroup.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,83 @@
-SKIP: FAILED
+struct S {
+  int before;
+  float2x2 m;
+  int after;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Access
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct f_inputs {
+  uint tint_local_index : SV_GroupIndex;
+};
+
+
+cbuffer cbuffer_u : register(b0) {
+  uint4 u[32];
+};
+groupshared S w[4];
+float2x2 v(uint start_byte_offset) {
+  uint4 v_1 = u[(start_byte_offset / 16u)];
+  float2 v_2 = asfloat((((((start_byte_offset % 16u) / 4u) == 2u)) ? (v_1.zw) : (v_1.xy)));
+  uint4 v_3 = u[((8u + start_byte_offset) / 16u)];
+  return float2x2(v_2, asfloat(((((((8u + start_byte_offset) % 16u) / 4u) == 2u)) ? (v_3.zw) : (v_3.xy))));
+}
+
+S v_4(uint start_byte_offset) {
+  int v_5 = asint(u[(start_byte_offset / 16u)][((start_byte_offset % 16u) / 4u)]);
+  float2x2 v_6 = v((8u + start_byte_offset));
+  S v_7 = {v_5, v_6, asint(u[((64u + start_byte_offset) / 16u)][(((64u + start_byte_offset) % 16u) / 4u)])};
+  return v_7;
+}
+
+typedef S ary_ret[4];
+ary_ret v_8(uint start_byte_offset) {
+  S a[4] = (S[4])0;
+  {
+    uint v_9 = 0u;
+    v_9 = 0u;
+    while(true) {
+      uint v_10 = v_9;
+      if ((v_10 >= 4u)) {
+        break;
+      }
+      S v_11 = v_4((start_byte_offset + (v_10 * 128u)));
+      a[v_10] = v_11;
+      {
+        v_9 = (v_10 + 1u);
+      }
+      continue;
+    }
+  }
+  S v_12[4] = a;
+  return v_12;
+}
+
+void f_inner(uint tint_local_index) {
+  {
+    uint v_13 = 0u;
+    v_13 = tint_local_index;
+    while(true) {
+      uint v_14 = v_13;
+      if ((v_14 >= 4u)) {
+        break;
+      }
+      S v_15 = (S)0;
+      w[v_14] = v_15;
+      {
+        v_13 = (v_14 + 1u);
+      }
+      continue;
+    }
+  }
+  GroupMemoryBarrierWithGroupSync();
+  S v_16[4] = v_8(0u);
+  w = v_16;
+  S v_17 = v_4(256u);
+  w[1] = v_17;
+  w[3].m = v(264u);
+  w[1].m[0] = asfloat(u[1u].xy).yx;
+}
+
+[numthreads(1, 1, 1)]
+void f(f_inputs inputs) {
+  f_inner(inputs.tint_local_index);
+}
+
diff --git a/test/tint/buffer/uniform/std140/struct/mat2x2_f32/to_workgroup.wgsl.expected.ir.fxc.hlsl b/test/tint/buffer/uniform/std140/struct/mat2x2_f32/to_workgroup.wgsl.expected.ir.fxc.hlsl
index 3f437dc..d1e878c 100644
--- a/test/tint/buffer/uniform/std140/struct/mat2x2_f32/to_workgroup.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/buffer/uniform/std140/struct/mat2x2_f32/to_workgroup.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,83 @@
-SKIP: FAILED
+struct S {
+  int before;
+  float2x2 m;
+  int after;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Access
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct f_inputs {
+  uint tint_local_index : SV_GroupIndex;
+};
+
+
+cbuffer cbuffer_u : register(b0) {
+  uint4 u[32];
+};
+groupshared S w[4];
+float2x2 v(uint start_byte_offset) {
+  uint4 v_1 = u[(start_byte_offset / 16u)];
+  float2 v_2 = asfloat((((((start_byte_offset % 16u) / 4u) == 2u)) ? (v_1.zw) : (v_1.xy)));
+  uint4 v_3 = u[((8u + start_byte_offset) / 16u)];
+  return float2x2(v_2, asfloat(((((((8u + start_byte_offset) % 16u) / 4u) == 2u)) ? (v_3.zw) : (v_3.xy))));
+}
+
+S v_4(uint start_byte_offset) {
+  int v_5 = asint(u[(start_byte_offset / 16u)][((start_byte_offset % 16u) / 4u)]);
+  float2x2 v_6 = v((8u + start_byte_offset));
+  S v_7 = {v_5, v_6, asint(u[((64u + start_byte_offset) / 16u)][(((64u + start_byte_offset) % 16u) / 4u)])};
+  return v_7;
+}
+
+typedef S ary_ret[4];
+ary_ret v_8(uint start_byte_offset) {
+  S a[4] = (S[4])0;
+  {
+    uint v_9 = 0u;
+    v_9 = 0u;
+    while(true) {
+      uint v_10 = v_9;
+      if ((v_10 >= 4u)) {
+        break;
+      }
+      S v_11 = v_4((start_byte_offset + (v_10 * 128u)));
+      a[v_10] = v_11;
+      {
+        v_9 = (v_10 + 1u);
+      }
+      continue;
+    }
+  }
+  S v_12[4] = a;
+  return v_12;
+}
+
+void f_inner(uint tint_local_index) {
+  {
+    uint v_13 = 0u;
+    v_13 = tint_local_index;
+    while(true) {
+      uint v_14 = v_13;
+      if ((v_14 >= 4u)) {
+        break;
+      }
+      S v_15 = (S)0;
+      w[v_14] = v_15;
+      {
+        v_13 = (v_14 + 1u);
+      }
+      continue;
+    }
+  }
+  GroupMemoryBarrierWithGroupSync();
+  S v_16[4] = v_8(0u);
+  w = v_16;
+  S v_17 = v_4(256u);
+  w[1] = v_17;
+  w[3].m = v(264u);
+  w[1].m[0] = asfloat(u[1u].xy).yx;
+}
+
+[numthreads(1, 1, 1)]
+void f(f_inputs inputs) {
+  f_inner(inputs.tint_local_index);
+}
+
diff --git a/test/tint/buffer/uniform/std140/struct/mat2x3_f16/dynamic_index_via_ptr.wgsl.expected.ir.dxc.hlsl b/test/tint/buffer/uniform/std140/struct/mat2x3_f16/dynamic_index_via_ptr.wgsl.expected.ir.dxc.hlsl
index 3f437dc..2e9398d 100644
--- a/test/tint/buffer/uniform/std140/struct/mat2x3_f16/dynamic_index_via_ptr.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/buffer/uniform/std140/struct/mat2x3_f16/dynamic_index_via_ptr.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,293 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Access
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+
+enable f16;
+
+struct Inner {
+  @size(64)
+  m : mat2x3<f16>,
+}
+
+struct Outer {
+  a : array<Inner, 4>,
+}
+
+@group(0) @binding(0) var<uniform> a : array<Outer, 4>;
+
+var<private> counter = 0;
+
+fn i() -> i32 {
+  counter++;
+  return counter;
+}
+
+@compute @workgroup_size(1)
+fn f() {
+  let p_a = &(a);
+  let p_a_i = &((*(p_a))[i()]);
+  let p_a_i_a = &((*(p_a_i)).a);
+  let p_a_i_a_i = &((*(p_a_i_a))[i()]);
+  let p_a_i_a_i_m = &((*(p_a_i_a_i)).m);
+  let p_a_i_a_i_m_i = &((*(p_a_i_a_i_m))[i()]);
+  let l_a : array<Outer, 4> = *(p_a);
+  let l_a_i : Outer = *(p_a_i);
+  let l_a_i_a : array<Inner, 4> = *(p_a_i_a);
+  let l_a_i_a_i : Inner = *(p_a_i_a_i);
+  let l_a_i_a_i_m : mat2x3<f16> = *(p_a_i_a_i_m);
+  let l_a_i_a_i_m_i : vec3<f16> = *(p_a_i_a_i_m_i);
+  let l_a_i_a_i_m_i_i : f16 = (*(p_a_i_a_i_m_i))[i()];
+}
+
+Failed to generate: :38:24 error: binary: %23 is not in scope
+    %22:u32 = add %21, %23
+                       ^^^
+
+:24:3 note: in block
+  $B3: {
+  ^^^
+
+:65:5 note: %23 declared here
+    %23:u32 = mul %53, 2u
+    ^^^^^^^
+
+:43:24 error: binary: %23 is not in scope
+    %29:u32 = add %28, %23
+                       ^^^
+
+:24:3 note: in block
+  $B3: {
+  ^^^
+
+:65:5 note: %23 declared here
+    %23:u32 = mul %53, 2u
+    ^^^^^^^
+
+:48:24 error: binary: %23 is not in scope
+    %35:u32 = add %34, %23
+                       ^^^
+
+:24:3 note: in block
+  $B3: {
+  ^^^
+
+:65:5 note: %23 declared here
+    %23:u32 = mul %53, 2u
+    ^^^^^^^
+
+:53:24 error: binary: %23 is not in scope
+    %41:u32 = add %40, %23
+                       ^^^
+
+:24:3 note: in block
+  $B3: {
+  ^^^
+
+:65:5 note: %23 declared here
+    %23:u32 = mul %53, 2u
+    ^^^^^^^
+
+:65:5 error: binary: no matching overload for 'operator * (i32, u32)'
+
+9 candidate operators:
+ • 'operator * (T  ✓ , T  ✗ ) -> T' where:
+      ✓  'T' is 'f32', 'i32', 'u32' or 'f16'
+ • 'operator * (vecN<T>  ✗ , T  ✓ ) -> vecN<T>' where:
+      ✓  'T' is 'f32', 'i32', 'u32' or 'f16'
+ • 'operator * (T  ✓ , vecN<T>  ✗ ) -> vecN<T>' where:
+      ✓  'T' is 'f32', 'i32', 'u32' or 'f16'
+ • 'operator * (T  ✗ , matNxM<T>  ✗ ) -> matNxM<T>' where:
+      ✗  'T' is 'f32' or 'f16'
+ • 'operator * (matNxM<T>  ✗ , T  ✗ ) -> matNxM<T>' where:
+      ✗  'T' is 'f32' or 'f16'
+ • 'operator * (vecN<T>  ✗ , vecN<T>  ✗ ) -> vecN<T>' where:
+      ✗  'T' is 'f32', 'i32', 'u32' or 'f16'
+ • 'operator * (matCxR<T>  ✗ , vecC<T>  ✗ ) -> vecR<T>' where:
+      ✗  'T' is 'f32' or 'f16'
+ • 'operator * (vecR<T>  ✗ , matCxR<T>  ✗ ) -> vecC<T>' where:
+      ✗  'T' is 'f32' or 'f16'
+ • 'operator * (matKxR<T>  ✗ , matCxK<T>  ✗ ) -> matCxR<T>' where:
+      ✗  'T' is 'f32' or 'f16'
+
+    %23:u32 = mul %53, 2u
+    ^^^^^^^^^^^^^^^^^^^^^
+
+:24:3 note: in block
+  $B3: {
+  ^^^
+
+note: # Disassembly
+Inner = struct @align(8) {
+  m:mat2x3<f16> @offset(0)
+}
+
+Outer = struct @align(8) {
+  a:array<Inner, 4> @offset(0)
+}
+
+$B1: {  # root
+  %a:ptr<uniform, array<vec4<u32>, 64>, read> = var @binding_point(0, 0)
+  %counter:ptr<private, i32, read_write> = var, 0i
+}
+
+%i = func():i32 {
+  $B2: {
+    %4:i32 = load %counter
+    %5:i32 = add %4, 1i
+    store %counter, %5
+    %6:i32 = load %counter
+    ret %6
+  }
+}
+%f = @compute @workgroup_size(1, 1, 1) func():void {
+  $B3: {
+    %8:i32 = call %i
+    %9:u32 = convert %8
+    %10:u32 = mul 256u, %9
+    %11:i32 = call %i
+    %12:u32 = convert %11
+    %13:u32 = mul 64u, %12
+    %14:i32 = call %i
+    %15:u32 = convert %14
+    %16:u32 = mul 8u, %15
+    %17:array<Outer, 4> = call %18, 0u
+    %l_a:array<Outer, 4> = let %17
+    %20:u32 = add %10, %13
+    %21:u32 = add %20, %16
+    %22:u32 = add %21, %23
+    %24:Outer = call %25, %22
+    %l_a_i:Outer = let %24
+    %27:u32 = add %10, %13
+    %28:u32 = add %27, %16
+    %29:u32 = add %28, %23
+    %30:array<Inner, 4> = call %31, %29
+    %l_a_i_a:array<Inner, 4> = let %30
+    %33:u32 = add %10, %13
+    %34:u32 = add %33, %16
+    %35:u32 = add %34, %23
+    %36:Inner = call %37, %35
+    %l_a_i_a_i:Inner = let %36
+    %39:u32 = add %10, %13
+    %40:u32 = add %39, %16
+    %41:u32 = add %40, %23
+    %42:mat2x3<f16> = call %43, %41
+    %l_a_i_a_i_m:mat2x3<f16> = let %42
+    %45:u32 = add %10, %13
+    %46:u32 = add %45, %16
+    %47:u32 = div %46, 16u
+    %48:ptr<uniform, vec4<u32>, read> = access %a, %47
+    %49:vec4<u32> = load %48
+    %50:vec4<f16> = bitcast %49
+    %51:vec3<f16> = swizzle %50, xyz
+    %l_a_i_a_i_m_i:vec3<f16> = let %51
+    %53:i32 = call %i
+    %23:u32 = mul %53, 2u
+    %54:u32 = add %10, %13
+    %55:u32 = add %54, %16
+    %56:u32 = add %55, %23
+    %57:u32 = div %56, 16u
+    %58:ptr<uniform, vec4<u32>, read> = access %a, %57
+    %59:u32 = mod %56, 16u
+    %60:u32 = div %59, 4u
+    %61:u32 = load_vector_element %58, %60
+    %62:u32 = mod %56, 4u
+    %63:bool = eq %62, 0u
+    %64:u32 = hlsl.ternary 16u, 0u, %63
+    %65:u32 = shr %61, %64
+    %66:f32 = hlsl.f16tof32 %65
+    %67:f16 = convert %66
+    %l_a_i_a_i_m_i_i:f16 = let %67
+    ret
+  }
+}
+%43 = func(%start_byte_offset:u32):mat2x3<f16> {
+  $B4: {
+    %70:u32 = div %start_byte_offset, 16u
+    %71:ptr<uniform, vec4<u32>, read> = access %a, %70
+    %72:vec4<u32> = load %71
+    %73:vec4<f16> = bitcast %72
+    %74:vec3<f16> = swizzle %73, xyz
+    %75:u32 = add 8u, %start_byte_offset
+    %76:u32 = div %75, 16u
+    %77:ptr<uniform, vec4<u32>, read> = access %a, %76
+    %78:vec4<u32> = load %77
+    %79:vec4<f16> = bitcast %78
+    %80:vec3<f16> = swizzle %79, xyz
+    %81:mat2x3<f16> = construct %74, %80
+    ret %81
+  }
+}
+%37 = func(%start_byte_offset_1:u32):Inner {  # %start_byte_offset_1: 'start_byte_offset'
+  $B5: {
+    %83:mat2x3<f16> = call %43, %start_byte_offset_1
+    %84:Inner = construct %83
+    ret %84
+  }
+}
+%31 = func(%start_byte_offset_2:u32):array<Inner, 4> {  # %start_byte_offset_2: 'start_byte_offset'
+  $B6: {
+    %a_1:ptr<function, array<Inner, 4>, read_write> = var, array<Inner, 4>(Inner(mat2x3<f16>(vec3<f16>(0.0h))))  # %a_1: 'a'
+    loop [i: $B7, b: $B8, c: $B9] {  # loop_1
+      $B7: {  # initializer
+        next_iteration 0u  # -> $B8
+      }
+      $B8 (%idx:u32): {  # body
+        %88:bool = gte %idx, 4u
+        if %88 [t: $B10] {  # if_1
+          $B10: {  # true
+            exit_loop  # loop_1
+          }
+        }
+        %89:u32 = mul %idx, 64u
+        %90:u32 = add %start_byte_offset_2, %89
+        %91:ptr<function, Inner, read_write> = access %a_1, %idx
+        %92:Inner = call %37, %90
+        store %91, %92
+        continue  # -> $B9
+      }
+      $B9: {  # continuing
+        %93:u32 = add %idx, 1u
+        next_iteration %93  # -> $B8
+      }
+    }
+    %94:array<Inner, 4> = load %a_1
+    ret %94
+  }
+}
+%25 = func(%start_byte_offset_3:u32):Outer {  # %start_byte_offset_3: 'start_byte_offset'
+  $B11: {
+    %96:array<Inner, 4> = call %31, %start_byte_offset_3
+    %97:Outer = construct %96
+    ret %97
+  }
+}
+%18 = func(%start_byte_offset_4:u32):array<Outer, 4> {  # %start_byte_offset_4: 'start_byte_offset'
+  $B12: {
+    %a_2:ptr<function, array<Outer, 4>, read_write> = var, array<Outer, 4>(Outer(array<Inner, 4>(Inner(mat2x3<f16>(vec3<f16>(0.0h))))))  # %a_2: 'a'
+    loop [i: $B13, b: $B14, c: $B15] {  # loop_2
+      $B13: {  # initializer
+        next_iteration 0u  # -> $B14
+      }
+      $B14 (%idx_1:u32): {  # body
+        %101:bool = gte %idx_1, 4u
+        if %101 [t: $B16] {  # if_2
+          $B16: {  # true
+            exit_loop  # loop_2
+          }
+        }
+        %102:u32 = mul %idx_1, 256u
+        %103:u32 = add %start_byte_offset_4, %102
+        %104:ptr<function, Outer, read_write> = access %a_2, %idx_1
+        %105:Outer = call %25, %103
+        store %104, %105
+        continue  # -> $B15
+      }
+      $B15: {  # continuing
+        %106:u32 = add %idx_1, 1u
+        next_iteration %106  # -> $B14
+      }
+    }
+    %107:array<Outer, 4> = load %a_2
+    ret %107
+  }
+}
+
diff --git a/test/tint/buffer/uniform/std140/struct/mat2x3_f16/dynamic_index_via_ptr.wgsl.expected.ir.fxc.hlsl b/test/tint/buffer/uniform/std140/struct/mat2x3_f16/dynamic_index_via_ptr.wgsl.expected.ir.fxc.hlsl
index 3f437dc..99306bc 100644
--- a/test/tint/buffer/uniform/std140/struct/mat2x3_f16/dynamic_index_via_ptr.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/buffer/uniform/std140/struct/mat2x3_f16/dynamic_index_via_ptr.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,235 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Access
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+
+enable f16;
+
+struct Inner {
+  @size(64)
+  m : mat2x3<f16>,
+}
+
+struct Outer {
+  a : array<Inner, 4>,
+}
+
+@group(0) @binding(0) var<uniform> a : array<Outer, 4>;
+
+var<private> counter = 0;
+
+fn i() -> i32 {
+  counter++;
+  return counter;
+}
+
+@compute @workgroup_size(1)
+fn f() {
+  let p_a = &(a);
+  let p_a_i = &((*(p_a))[i()]);
+  let p_a_i_a = &((*(p_a_i)).a);
+  let p_a_i_a_i = &((*(p_a_i_a))[i()]);
+  let p_a_i_a_i_m = &((*(p_a_i_a_i)).m);
+  let p_a_i_a_i_m_i = &((*(p_a_i_a_i_m))[i()]);
+  let l_a : array<Outer, 4> = *(p_a);
+  let l_a_i : Outer = *(p_a_i);
+  let l_a_i_a : array<Inner, 4> = *(p_a_i_a);
+  let l_a_i_a_i : Inner = *(p_a_i_a_i);
+  let l_a_i_a_i_m : mat2x3<f16> = *(p_a_i_a_i_m);
+  let l_a_i_a_i_m_i : vec3<f16> = *(p_a_i_a_i_m_i);
+  let l_a_i_a_i_m_i_i : f16 = (*(p_a_i_a_i_m_i))[i()];
+}
+
+Failed to generate: :55:5 error: binary: no matching overload for 'operator * (i32, u32)'
+
+9 candidate operators:
+ • 'operator * (T  ✓ , T  ✗ ) -> T' where:
+      ✓  'T' is 'f32', 'i32', 'u32' or 'f16'
+ • 'operator * (vecN<T>  ✗ , T  ✓ ) -> vecN<T>' where:
+      ✓  'T' is 'f32', 'i32', 'u32' or 'f16'
+ • 'operator * (T  ✓ , vecN<T>  ✗ ) -> vecN<T>' where:
+      ✓  'T' is 'f32', 'i32', 'u32' or 'f16'
+ • 'operator * (T  ✗ , matNxM<T>  ✗ ) -> matNxM<T>' where:
+      ✗  'T' is 'f32' or 'f16'
+ • 'operator * (matNxM<T>  ✗ , T  ✗ ) -> matNxM<T>' where:
+      ✗  'T' is 'f32' or 'f16'
+ • 'operator * (vecN<T>  ✗ , vecN<T>  ✗ ) -> vecN<T>' where:
+      ✗  'T' is 'f32', 'i32', 'u32' or 'f16'
+ • 'operator * (matCxR<T>  ✗ , vecC<T>  ✗ ) -> vecR<T>' where:
+      ✗  'T' is 'f32' or 'f16'
+ • 'operator * (vecR<T>  ✗ , matCxR<T>  ✗ ) -> vecC<T>' where:
+      ✗  'T' is 'f32' or 'f16'
+ • 'operator * (matKxR<T>  ✗ , matCxK<T>  ✗ ) -> matCxR<T>' where:
+      ✗  'T' is 'f32' or 'f16'
+
+    %43:u32 = mul %42, 2u
+    ^^^^^^^^^^^^^^^^^^^^^
+
+:24:3 note: in block
+  $B3: {
+  ^^^
+
+note: # Disassembly
+Inner = struct @align(8) {
+  m:mat2x3<f16> @offset(0)
+}
+
+Outer = struct @align(8) {
+  a:array<Inner, 4> @offset(0)
+}
+
+$B1: {  # root
+  %a:ptr<uniform, array<vec4<u32>, 64>, read> = var @binding_point(0, 0)
+  %counter:ptr<private, i32, read_write> = var, 0i
+}
+
+%i = func():i32 {
+  $B2: {
+    %4:i32 = load %counter
+    %5:i32 = add %4, 1i
+    store %counter, %5
+    %6:i32 = load %counter
+    ret %6
+  }
+}
+%f = @compute @workgroup_size(1, 1, 1) func():void {
+  $B3: {
+    %8:i32 = call %i
+    %9:u32 = convert %8
+    %10:u32 = mul 256u, %9
+    %11:i32 = call %i
+    %12:u32 = convert %11
+    %13:u32 = mul 64u, %12
+    %14:i32 = call %i
+    %15:u32 = convert %14
+    %16:u32 = mul 8u, %15
+    %17:array<Outer, 4> = call %18, 0u
+    %l_a:array<Outer, 4> = let %17
+    %20:Outer = call %21, %10
+    %l_a_i:Outer = let %20
+    %23:array<Inner, 4> = call %24, %10
+    %l_a_i_a:array<Inner, 4> = let %23
+    %26:u32 = add %10, %13
+    %27:Inner = call %28, %26
+    %l_a_i_a_i:Inner = let %27
+    %30:u32 = add %10, %13
+    %31:mat2x3<f16> = call %32, %30
+    %l_a_i_a_i_m:mat2x3<f16> = let %31
+    %34:u32 = add %10, %13
+    %35:u32 = add %34, %16
+    %36:u32 = div %35, 16u
+    %37:ptr<uniform, vec4<u32>, read> = access %a, %36
+    %38:vec4<u32> = load %37
+    %39:vec4<f16> = bitcast %38
+    %40:vec3<f16> = swizzle %39, xyz
+    %l_a_i_a_i_m_i:vec3<f16> = let %40
+    %42:i32 = call %i
+    %43:u32 = mul %42, 2u
+    %44:u32 = add %10, %13
+    %45:u32 = add %44, %16
+    %46:u32 = add %45, %43
+    %47:u32 = div %46, 16u
+    %48:ptr<uniform, vec4<u32>, read> = access %a, %47
+    %49:u32 = mod %46, 16u
+    %50:u32 = div %49, 4u
+    %51:u32 = load_vector_element %48, %50
+    %52:u32 = mod %46, 4u
+    %53:bool = eq %52, 0u
+    %54:u32 = hlsl.ternary 16u, 0u, %53
+    %55:u32 = shr %51, %54
+    %56:f32 = hlsl.f16tof32 %55
+    %57:f16 = convert %56
+    %l_a_i_a_i_m_i_i:f16 = let %57
+    ret
+  }
+}
+%18 = func(%start_byte_offset:u32):array<Outer, 4> {
+  $B4: {
+    %a_1:ptr<function, array<Outer, 4>, read_write> = var, array<Outer, 4>(Outer(array<Inner, 4>(Inner(mat2x3<f16>(vec3<f16>(0.0h))))))  # %a_1: 'a'
+    loop [i: $B5, b: $B6, c: $B7] {  # loop_1
+      $B5: {  # initializer
+        next_iteration 0u  # -> $B6
+      }
+      $B6 (%idx:u32): {  # body
+        %62:bool = gte %idx, 4u
+        if %62 [t: $B8] {  # if_1
+          $B8: {  # true
+            exit_loop  # loop_1
+          }
+        }
+        %63:u32 = mul %idx, 256u
+        %64:u32 = add %start_byte_offset, %63
+        %65:ptr<function, Outer, read_write> = access %a_1, %idx
+        %66:Outer = call %21, %64
+        store %65, %66
+        continue  # -> $B7
+      }
+      $B7: {  # continuing
+        %67:u32 = add %idx, 1u
+        next_iteration %67  # -> $B6
+      }
+    }
+    %68:array<Outer, 4> = load %a_1
+    ret %68
+  }
+}
+%21 = func(%start_byte_offset_1:u32):Outer {  # %start_byte_offset_1: 'start_byte_offset'
+  $B9: {
+    %70:array<Inner, 4> = call %24, %start_byte_offset_1
+    %71:Outer = construct %70
+    ret %71
+  }
+}
+%24 = func(%start_byte_offset_2:u32):array<Inner, 4> {  # %start_byte_offset_2: 'start_byte_offset'
+  $B10: {
+    %a_2:ptr<function, array<Inner, 4>, read_write> = var, array<Inner, 4>(Inner(mat2x3<f16>(vec3<f16>(0.0h))))  # %a_2: 'a'
+    loop [i: $B11, b: $B12, c: $B13] {  # loop_2
+      $B11: {  # initializer
+        next_iteration 0u  # -> $B12
+      }
+      $B12 (%idx_1:u32): {  # body
+        %75:bool = gte %idx_1, 4u
+        if %75 [t: $B14] {  # if_2
+          $B14: {  # true
+            exit_loop  # loop_2
+          }
+        }
+        %76:u32 = mul %idx_1, 64u
+        %77:u32 = add %start_byte_offset_2, %76
+        %78:ptr<function, Inner, read_write> = access %a_2, %idx_1
+        %79:Inner = call %28, %77
+        store %78, %79
+        continue  # -> $B13
+      }
+      $B13: {  # continuing
+        %80:u32 = add %idx_1, 1u
+        next_iteration %80  # -> $B12
+      }
+    }
+    %81:array<Inner, 4> = load %a_2
+    ret %81
+  }
+}
+%28 = func(%start_byte_offset_3:u32):Inner {  # %start_byte_offset_3: 'start_byte_offset'
+  $B15: {
+    %83:mat2x3<f16> = call %32, %start_byte_offset_3
+    %84:Inner = construct %83
+    ret %84
+  }
+}
+%32 = func(%start_byte_offset_4:u32):mat2x3<f16> {  # %start_byte_offset_4: 'start_byte_offset'
+  $B16: {
+    %86:u32 = div %start_byte_offset_4, 16u
+    %87:ptr<uniform, vec4<u32>, read> = access %a, %86
+    %88:vec4<u32> = load %87
+    %89:vec4<f16> = bitcast %88
+    %90:vec3<f16> = swizzle %89, xyz
+    %91:u32 = add 8u, %start_byte_offset_4
+    %92:u32 = div %91, 16u
+    %93:ptr<uniform, vec4<u32>, read> = access %a, %92
+    %94:vec4<u32> = load %93
+    %95:vec4<f16> = bitcast %94
+    %96:vec3<f16> = swizzle %95, xyz
+    %97:mat2x3<f16> = construct %90, %96
+    ret %97
+  }
+}
+
diff --git a/test/tint/buffer/uniform/std140/struct/mat2x3_f16/static_index_via_ptr.wgsl.expected.ir.dxc.hlsl b/test/tint/buffer/uniform/std140/struct/mat2x3_f16/static_index_via_ptr.wgsl.expected.ir.dxc.hlsl
index 3f437dc..903cbd1 100644
--- a/test/tint/buffer/uniform/std140/struct/mat2x3_f16/static_index_via_ptr.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/buffer/uniform/std140/struct/mat2x3_f16/static_index_via_ptr.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,97 @@
-SKIP: FAILED
+struct Inner {
+  matrix<float16_t, 2, 3> m;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Access
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct Outer {
+  Inner a[4];
+};
+
+
+cbuffer cbuffer_a : register(b0) {
+  uint4 a[64];
+};
+vector<float16_t, 4> tint_bitcast_to_f16(uint4 src) {
+  uint4 v = src;
+  uint4 mask = (65535u).xxxx;
+  uint4 shift = (16u).xxxx;
+  float4 t_low = f16tof32((v & mask));
+  float4 t_high = f16tof32(((v >> shift) & mask));
+  float16_t v_1 = float16_t(t_low.x);
+  float16_t v_2 = float16_t(t_high.x);
+  float16_t v_3 = float16_t(t_low.y);
+  return vector<float16_t, 4>(v_1, v_2, v_3, float16_t(t_high.y));
+}
+
+matrix<float16_t, 2, 3> v_4(uint start_byte_offset) {
+  vector<float16_t, 3> v_5 = tint_bitcast_to_f16(a[(start_byte_offset / 16u)]).xyz;
+  return matrix<float16_t, 2, 3>(v_5, tint_bitcast_to_f16(a[((8u + start_byte_offset) / 16u)]).xyz);
+}
+
+Inner v_6(uint start_byte_offset) {
+  Inner v_7 = {v_4(start_byte_offset)};
+  return v_7;
+}
+
+typedef Inner ary_ret[4];
+ary_ret v_8(uint start_byte_offset) {
+  Inner a[4] = (Inner[4])0;
+  {
+    uint v_9 = 0u;
+    v_9 = 0u;
+    while(true) {
+      uint v_10 = v_9;
+      if ((v_10 >= 4u)) {
+        break;
+      }
+      Inner v_11 = v_6((start_byte_offset + (v_10 * 64u)));
+      a[v_10] = v_11;
+      {
+        v_9 = (v_10 + 1u);
+      }
+      continue;
+    }
+  }
+  Inner v_12[4] = a;
+  return v_12;
+}
+
+Outer v_13(uint start_byte_offset) {
+  Inner v_14[4] = v_8(start_byte_offset);
+  Outer v_15 = {v_14};
+  return v_15;
+}
+
+typedef Outer ary_ret_1[4];
+ary_ret_1 v_16(uint start_byte_offset) {
+  Outer a[4] = (Outer[4])0;
+  {
+    uint v_17 = 0u;
+    v_17 = 0u;
+    while(true) {
+      uint v_18 = v_17;
+      if ((v_18 >= 4u)) {
+        break;
+      }
+      Outer v_19 = v_13((start_byte_offset + (v_18 * 256u)));
+      a[v_18] = v_19;
+      {
+        v_17 = (v_18 + 1u);
+      }
+      continue;
+    }
+  }
+  Outer v_20[4] = a;
+  return v_20;
+}
+
+[numthreads(1, 1, 1)]
+void f() {
+  Outer l_a[4] = v_16(0u);
+  Outer l_a_3 = v_13(904u);
+  Inner l_a_3_a[4] = v_8(904u);
+  Inner l_a_3_a_2 = v_6(904u);
+  matrix<float16_t, 2, 3> l_a_3_a_2_m = v_4(896u);
+  vector<float16_t, 3> l_a_3_a_2_m_1 = tint_bitcast_to_f16(a[56u]).xyz;
+  float16_t l_a_3_a_2_m_1_0 = float16_t(f16tof32(a[56u].z));
+}
+
diff --git a/test/tint/buffer/uniform/std140/struct/mat2x3_f16/static_index_via_ptr.wgsl.expected.ir.fxc.hlsl b/test/tint/buffer/uniform/std140/struct/mat2x3_f16/static_index_via_ptr.wgsl.expected.ir.fxc.hlsl
index 3f437dc..87e2bc4 100644
--- a/test/tint/buffer/uniform/std140/struct/mat2x3_f16/static_index_via_ptr.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/buffer/uniform/std140/struct/mat2x3_f16/static_index_via_ptr.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,102 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Access
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct Inner {
+  matrix<float16_t, 2, 3> m;
+};
+
+struct Outer {
+  Inner a[4];
+};
+
+
+cbuffer cbuffer_a : register(b0) {
+  uint4 a[64];
+};
+vector<float16_t, 4> tint_bitcast_to_f16(uint4 src) {
+  uint4 v = src;
+  uint4 mask = (65535u).xxxx;
+  uint4 shift = (16u).xxxx;
+  float4 t_low = f16tof32((v & mask));
+  float4 t_high = f16tof32(((v >> shift) & mask));
+  float16_t v_1 = float16_t(t_low.x);
+  float16_t v_2 = float16_t(t_high.x);
+  float16_t v_3 = float16_t(t_low.y);
+  return vector<float16_t, 4>(v_1, v_2, v_3, float16_t(t_high.y));
+}
+
+matrix<float16_t, 2, 3> v_4(uint start_byte_offset) {
+  vector<float16_t, 3> v_5 = tint_bitcast_to_f16(a[(start_byte_offset / 16u)]).xyz;
+  return matrix<float16_t, 2, 3>(v_5, tint_bitcast_to_f16(a[((8u + start_byte_offset) / 16u)]).xyz);
+}
+
+Inner v_6(uint start_byte_offset) {
+  Inner v_7 = {v_4(start_byte_offset)};
+  return v_7;
+}
+
+typedef Inner ary_ret[4];
+ary_ret v_8(uint start_byte_offset) {
+  Inner a[4] = (Inner[4])0;
+  {
+    uint v_9 = 0u;
+    v_9 = 0u;
+    while(true) {
+      uint v_10 = v_9;
+      if ((v_10 >= 4u)) {
+        break;
+      }
+      Inner v_11 = v_6((start_byte_offset + (v_10 * 64u)));
+      a[v_10] = v_11;
+      {
+        v_9 = (v_10 + 1u);
+      }
+      continue;
+    }
+  }
+  Inner v_12[4] = a;
+  return v_12;
+}
+
+Outer v_13(uint start_byte_offset) {
+  Inner v_14[4] = v_8(start_byte_offset);
+  Outer v_15 = {v_14};
+  return v_15;
+}
+
+typedef Outer ary_ret_1[4];
+ary_ret_1 v_16(uint start_byte_offset) {
+  Outer a[4] = (Outer[4])0;
+  {
+    uint v_17 = 0u;
+    v_17 = 0u;
+    while(true) {
+      uint v_18 = v_17;
+      if ((v_18 >= 4u)) {
+        break;
+      }
+      Outer v_19 = v_13((start_byte_offset + (v_18 * 256u)));
+      a[v_18] = v_19;
+      {
+        v_17 = (v_18 + 1u);
+      }
+      continue;
+    }
+  }
+  Outer v_20[4] = a;
+  return v_20;
+}
+
+[numthreads(1, 1, 1)]
+void f() {
+  Outer l_a[4] = v_16(0u);
+  Outer l_a_3 = v_13(904u);
+  Inner l_a_3_a[4] = v_8(904u);
+  Inner l_a_3_a_2 = v_6(904u);
+  matrix<float16_t, 2, 3> l_a_3_a_2_m = v_4(904u);
+  vector<float16_t, 3> l_a_3_a_2_m_1 = tint_bitcast_to_f16(a[56u]).xyz;
+  float16_t l_a_3_a_2_m_1_0 = float16_t(f16tof32(a[56u].z));
+}
+
+FXC validation failure:
+c:\src\dawn\Shader@0x00000212725BD3A0(2,10-18): error X3000: syntax error: unexpected token 'float16_t'
+
diff --git a/test/tint/buffer/uniform/std140/struct/mat2x3_f16/to_builtin.wgsl.expected.ir.dxc.hlsl b/test/tint/buffer/uniform/std140/struct/mat2x3_f16/to_builtin.wgsl.expected.ir.dxc.hlsl
index 3f437dc..3e54141 100644
--- a/test/tint/buffer/uniform/std140/struct/mat2x3_f16/to_builtin.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/buffer/uniform/std140/struct/mat2x3_f16/to_builtin.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,28 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Access
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+cbuffer cbuffer_u : register(b0) {
+  uint4 u[32];
+};
+vector<float16_t, 4> tint_bitcast_to_f16(uint4 src) {
+  uint4 v = src;
+  uint4 mask = (65535u).xxxx;
+  uint4 shift = (16u).xxxx;
+  float4 t_low = f16tof32((v & mask));
+  float4 t_high = f16tof32(((v >> shift) & mask));
+  float16_t v_1 = float16_t(t_low.x);
+  float16_t v_2 = float16_t(t_high.x);
+  float16_t v_3 = float16_t(t_low.y);
+  return vector<float16_t, 4>(v_1, v_2, v_3, float16_t(t_high.y));
+}
+
+matrix<float16_t, 2, 3> v_4(uint start_byte_offset) {
+  vector<float16_t, 3> v_5 = tint_bitcast_to_f16(u[(start_byte_offset / 16u)]).xyz;
+  return matrix<float16_t, 2, 3>(v_5, tint_bitcast_to_f16(u[((8u + start_byte_offset) / 16u)]).xyz);
+}
+
+[numthreads(1, 1, 1)]
+void f() {
+  matrix<float16_t, 3, 2> t = transpose(v_4(264u));
+  float16_t l = length(tint_bitcast_to_f16(u[1u]).xyz.zxy);
+  float16_t a = abs(tint_bitcast_to_f16(u[1u]).xyz.zxy[0u]);
+}
+
diff --git a/test/tint/buffer/uniform/std140/struct/mat2x3_f16/to_builtin.wgsl.expected.ir.fxc.hlsl b/test/tint/buffer/uniform/std140/struct/mat2x3_f16/to_builtin.wgsl.expected.ir.fxc.hlsl
index 3f437dc..48e4619 100644
--- a/test/tint/buffer/uniform/std140/struct/mat2x3_f16/to_builtin.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/buffer/uniform/std140/struct/mat2x3_f16/to_builtin.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,33 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Access
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+
+cbuffer cbuffer_u : register(b0) {
+  uint4 u[32];
+};
+vector<float16_t, 4> tint_bitcast_to_f16(uint4 src) {
+  uint4 v = src;
+  uint4 mask = (65535u).xxxx;
+  uint4 shift = (16u).xxxx;
+  float4 t_low = f16tof32((v & mask));
+  float4 t_high = f16tof32(((v >> shift) & mask));
+  float16_t v_1 = float16_t(t_low.x);
+  float16_t v_2 = float16_t(t_high.x);
+  float16_t v_3 = float16_t(t_low.y);
+  return vector<float16_t, 4>(v_1, v_2, v_3, float16_t(t_high.y));
+}
+
+matrix<float16_t, 2, 3> v_4(uint start_byte_offset) {
+  vector<float16_t, 3> v_5 = tint_bitcast_to_f16(u[(start_byte_offset / 16u)]).xyz;
+  return matrix<float16_t, 2, 3>(v_5, tint_bitcast_to_f16(u[((8u + start_byte_offset) / 16u)]).xyz);
+}
+
+[numthreads(1, 1, 1)]
+void f() {
+  matrix<float16_t, 3, 2> t = transpose(v_4(264u));
+  float16_t l = length(tint_bitcast_to_f16(u[1u]).xyz.zxy);
+  float16_t a = abs(tint_bitcast_to_f16(u[1u]).xyz.zxy[0u]);
+}
+
+FXC validation failure:
+c:\src\dawn\Shader@0x000001DDB83F73C0(5,8-16): error X3000: syntax error: unexpected token 'float16_t'
+
diff --git a/test/tint/buffer/uniform/std140/struct/mat2x3_f16/to_fn.wgsl.expected.ir.dxc.hlsl b/test/tint/buffer/uniform/std140/struct/mat2x3_f16/to_fn.wgsl.expected.ir.dxc.hlsl
index 3f437dc..018c902 100644
--- a/test/tint/buffer/uniform/std140/struct/mat2x3_f16/to_fn.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/buffer/uniform/std140/struct/mat2x3_f16/to_fn.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,83 @@
-SKIP: FAILED
+struct S {
+  int before;
+  matrix<float16_t, 2, 3> m;
+  int after;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Access
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+
+cbuffer cbuffer_u : register(b0) {
+  uint4 u[32];
+};
+void a(S a_1[4]) {
+}
+
+void b(S s) {
+}
+
+void c(matrix<float16_t, 2, 3> m) {
+}
+
+void d(vector<float16_t, 3> v) {
+}
+
+void e(float16_t f) {
+}
+
+vector<float16_t, 4> tint_bitcast_to_f16(uint4 src) {
+  uint4 v = src;
+  uint4 mask = (65535u).xxxx;
+  uint4 shift = (16u).xxxx;
+  float4 t_low = f16tof32((v & mask));
+  float4 t_high = f16tof32(((v >> shift) & mask));
+  float16_t v_1 = float16_t(t_low.x);
+  float16_t v_2 = float16_t(t_high.x);
+  float16_t v_3 = float16_t(t_low.y);
+  return vector<float16_t, 4>(v_1, v_2, v_3, float16_t(t_high.y));
+}
+
+matrix<float16_t, 2, 3> v_4(uint start_byte_offset) {
+  vector<float16_t, 3> v_5 = tint_bitcast_to_f16(u[(start_byte_offset / 16u)]).xyz;
+  return matrix<float16_t, 2, 3>(v_5, tint_bitcast_to_f16(u[((8u + start_byte_offset) / 16u)]).xyz);
+}
+
+S v_6(uint start_byte_offset) {
+  int v_7 = asint(u[(start_byte_offset / 16u)][((start_byte_offset % 16u) / 4u)]);
+  matrix<float16_t, 2, 3> v_8 = v_4((8u + start_byte_offset));
+  S v_9 = {v_7, v_8, asint(u[((64u + start_byte_offset) / 16u)][(((64u + start_byte_offset) % 16u) / 4u)])};
+  return v_9;
+}
+
+typedef S ary_ret[4];
+ary_ret v_10(uint start_byte_offset) {
+  S a[4] = (S[4])0;
+  {
+    uint v_11 = 0u;
+    v_11 = 0u;
+    while(true) {
+      uint v_12 = v_11;
+      if ((v_12 >= 4u)) {
+        break;
+      }
+      S v_13 = v_6((start_byte_offset + (v_12 * 128u)));
+      a[v_12] = v_13;
+      {
+        v_11 = (v_12 + 1u);
+      }
+      continue;
+    }
+  }
+  S v_14[4] = a;
+  return v_14;
+}
+
+[numthreads(1, 1, 1)]
+void f() {
+  S v_15[4] = v_10(0u);
+  a(v_15);
+  S v_16 = v_6(256u);
+  b(v_16);
+  c(v_4(264u));
+  d(tint_bitcast_to_f16(u[1u]).xyz.zxy);
+  e(tint_bitcast_to_f16(u[1u]).xyz.zxy[0u]);
+}
+
diff --git a/test/tint/buffer/uniform/std140/struct/mat2x3_f16/to_fn.wgsl.expected.ir.fxc.hlsl b/test/tint/buffer/uniform/std140/struct/mat2x3_f16/to_fn.wgsl.expected.ir.fxc.hlsl
index 3f437dc..1a6726a 100644
--- a/test/tint/buffer/uniform/std140/struct/mat2x3_f16/to_fn.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/buffer/uniform/std140/struct/mat2x3_f16/to_fn.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,88 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Access
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct S {
+  int before;
+  matrix<float16_t, 2, 3> m;
+  int after;
+};
+
+
+cbuffer cbuffer_u : register(b0) {
+  uint4 u[32];
+};
+void a(S a_1[4]) {
+}
+
+void b(S s) {
+}
+
+void c(matrix<float16_t, 2, 3> m) {
+}
+
+void d(vector<float16_t, 3> v) {
+}
+
+void e(float16_t f) {
+}
+
+vector<float16_t, 4> tint_bitcast_to_f16(uint4 src) {
+  uint4 v = src;
+  uint4 mask = (65535u).xxxx;
+  uint4 shift = (16u).xxxx;
+  float4 t_low = f16tof32((v & mask));
+  float4 t_high = f16tof32(((v >> shift) & mask));
+  float16_t v_1 = float16_t(t_low.x);
+  float16_t v_2 = float16_t(t_high.x);
+  float16_t v_3 = float16_t(t_low.y);
+  return vector<float16_t, 4>(v_1, v_2, v_3, float16_t(t_high.y));
+}
+
+matrix<float16_t, 2, 3> v_4(uint start_byte_offset) {
+  vector<float16_t, 3> v_5 = tint_bitcast_to_f16(u[(start_byte_offset / 16u)]).xyz;
+  return matrix<float16_t, 2, 3>(v_5, tint_bitcast_to_f16(u[((8u + start_byte_offset) / 16u)]).xyz);
+}
+
+S v_6(uint start_byte_offset) {
+  int v_7 = asint(u[(start_byte_offset / 16u)][((start_byte_offset % 16u) / 4u)]);
+  matrix<float16_t, 2, 3> v_8 = v_4((8u + start_byte_offset));
+  S v_9 = {v_7, v_8, asint(u[((64u + start_byte_offset) / 16u)][(((64u + start_byte_offset) % 16u) / 4u)])};
+  return v_9;
+}
+
+typedef S ary_ret[4];
+ary_ret v_10(uint start_byte_offset) {
+  S a[4] = (S[4])0;
+  {
+    uint v_11 = 0u;
+    v_11 = 0u;
+    while(true) {
+      uint v_12 = v_11;
+      if ((v_12 >= 4u)) {
+        break;
+      }
+      S v_13 = v_6((start_byte_offset + (v_12 * 128u)));
+      a[v_12] = v_13;
+      {
+        v_11 = (v_12 + 1u);
+      }
+      continue;
+    }
+  }
+  S v_14[4] = a;
+  return v_14;
+}
+
+[numthreads(1, 1, 1)]
+void f() {
+  S v_15[4] = v_10(0u);
+  a(v_15);
+  S v_16 = v_6(256u);
+  b(v_16);
+  c(v_4(264u));
+  d(tint_bitcast_to_f16(u[1u]).xyz.zxy);
+  e(tint_bitcast_to_f16(u[1u]).xyz.zxy[0u]);
+}
+
+FXC validation failure:
+c:\src\dawn\Shader@0x0000016673221490(3,10-18): error X3000: syntax error: unexpected token 'float16_t'
+
diff --git a/test/tint/buffer/uniform/std140/struct/mat2x3_f16/to_private.wgsl.expected.ir.dxc.hlsl b/test/tint/buffer/uniform/std140/struct/mat2x3_f16/to_private.wgsl.expected.ir.dxc.hlsl
index 3f437dc..dac642f 100644
--- a/test/tint/buffer/uniform/std140/struct/mat2x3_f16/to_private.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/buffer/uniform/std140/struct/mat2x3_f16/to_private.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,68 @@
-SKIP: FAILED
+struct S {
+  int before;
+  matrix<float16_t, 2, 3> m;
+  int after;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Access
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+
+cbuffer cbuffer_u : register(b0) {
+  uint4 u[32];
+};
+static S p[4] = (S[4])0;
+vector<float16_t, 4> tint_bitcast_to_f16(uint4 src) {
+  uint4 v = src;
+  uint4 mask = (65535u).xxxx;
+  uint4 shift = (16u).xxxx;
+  float4 t_low = f16tof32((v & mask));
+  float4 t_high = f16tof32(((v >> shift) & mask));
+  float16_t v_1 = float16_t(t_low.x);
+  float16_t v_2 = float16_t(t_high.x);
+  float16_t v_3 = float16_t(t_low.y);
+  return vector<float16_t, 4>(v_1, v_2, v_3, float16_t(t_high.y));
+}
+
+matrix<float16_t, 2, 3> v_4(uint start_byte_offset) {
+  vector<float16_t, 3> v_5 = tint_bitcast_to_f16(u[(start_byte_offset / 16u)]).xyz;
+  return matrix<float16_t, 2, 3>(v_5, tint_bitcast_to_f16(u[((8u + start_byte_offset) / 16u)]).xyz);
+}
+
+S v_6(uint start_byte_offset) {
+  int v_7 = asint(u[(start_byte_offset / 16u)][((start_byte_offset % 16u) / 4u)]);
+  matrix<float16_t, 2, 3> v_8 = v_4((8u + start_byte_offset));
+  S v_9 = {v_7, v_8, asint(u[((64u + start_byte_offset) / 16u)][(((64u + start_byte_offset) % 16u) / 4u)])};
+  return v_9;
+}
+
+typedef S ary_ret[4];
+ary_ret v_10(uint start_byte_offset) {
+  S a[4] = (S[4])0;
+  {
+    uint v_11 = 0u;
+    v_11 = 0u;
+    while(true) {
+      uint v_12 = v_11;
+      if ((v_12 >= 4u)) {
+        break;
+      }
+      S v_13 = v_6((start_byte_offset + (v_12 * 128u)));
+      a[v_12] = v_13;
+      {
+        v_11 = (v_12 + 1u);
+      }
+      continue;
+    }
+  }
+  S v_14[4] = a;
+  return v_14;
+}
+
+[numthreads(1, 1, 1)]
+void f() {
+  S v_15[4] = v_10(0u);
+  p = v_15;
+  S v_16 = v_6(256u);
+  p[1] = v_16;
+  p[3].m = v_4(264u);
+  p[1].m[0] = tint_bitcast_to_f16(u[1u]).xyz.zxy;
+}
+
diff --git a/test/tint/buffer/uniform/std140/struct/mat2x3_f16/to_private.wgsl.expected.ir.fxc.hlsl b/test/tint/buffer/uniform/std140/struct/mat2x3_f16/to_private.wgsl.expected.ir.fxc.hlsl
index 3f437dc..72b6c0f 100644
--- a/test/tint/buffer/uniform/std140/struct/mat2x3_f16/to_private.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/buffer/uniform/std140/struct/mat2x3_f16/to_private.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,73 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Access
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct S {
+  int before;
+  matrix<float16_t, 2, 3> m;
+  int after;
+};
+
+
+cbuffer cbuffer_u : register(b0) {
+  uint4 u[32];
+};
+static S p[4] = (S[4])0;
+vector<float16_t, 4> tint_bitcast_to_f16(uint4 src) {
+  uint4 v = src;
+  uint4 mask = (65535u).xxxx;
+  uint4 shift = (16u).xxxx;
+  float4 t_low = f16tof32((v & mask));
+  float4 t_high = f16tof32(((v >> shift) & mask));
+  float16_t v_1 = float16_t(t_low.x);
+  float16_t v_2 = float16_t(t_high.x);
+  float16_t v_3 = float16_t(t_low.y);
+  return vector<float16_t, 4>(v_1, v_2, v_3, float16_t(t_high.y));
+}
+
+matrix<float16_t, 2, 3> v_4(uint start_byte_offset) {
+  vector<float16_t, 3> v_5 = tint_bitcast_to_f16(u[(start_byte_offset / 16u)]).xyz;
+  return matrix<float16_t, 2, 3>(v_5, tint_bitcast_to_f16(u[((8u + start_byte_offset) / 16u)]).xyz);
+}
+
+S v_6(uint start_byte_offset) {
+  int v_7 = asint(u[(start_byte_offset / 16u)][((start_byte_offset % 16u) / 4u)]);
+  matrix<float16_t, 2, 3> v_8 = v_4((8u + start_byte_offset));
+  S v_9 = {v_7, v_8, asint(u[((64u + start_byte_offset) / 16u)][(((64u + start_byte_offset) % 16u) / 4u)])};
+  return v_9;
+}
+
+typedef S ary_ret[4];
+ary_ret v_10(uint start_byte_offset) {
+  S a[4] = (S[4])0;
+  {
+    uint v_11 = 0u;
+    v_11 = 0u;
+    while(true) {
+      uint v_12 = v_11;
+      if ((v_12 >= 4u)) {
+        break;
+      }
+      S v_13 = v_6((start_byte_offset + (v_12 * 128u)));
+      a[v_12] = v_13;
+      {
+        v_11 = (v_12 + 1u);
+      }
+      continue;
+    }
+  }
+  S v_14[4] = a;
+  return v_14;
+}
+
+[numthreads(1, 1, 1)]
+void f() {
+  S v_15[4] = v_10(0u);
+  p = v_15;
+  S v_16 = v_6(256u);
+  p[1] = v_16;
+  p[3].m = v_4(264u);
+  p[1].m[0] = tint_bitcast_to_f16(u[1u]).xyz.zxy;
+}
+
+FXC validation failure:
+c:\src\dawn\Shader@0x000002B1E9077690(3,10-18): error X3000: syntax error: unexpected token 'float16_t'
+
diff --git a/test/tint/buffer/uniform/std140/struct/mat2x3_f16/to_storage.wgsl.expected.ir.dxc.hlsl b/test/tint/buffer/uniform/std140/struct/mat2x3_f16/to_storage.wgsl.expected.ir.dxc.hlsl
index 3f437dc..42f1cc0 100644
--- a/test/tint/buffer/uniform/std140/struct/mat2x3_f16/to_storage.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/buffer/uniform/std140/struct/mat2x3_f16/to_storage.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,98 @@
-SKIP: FAILED
+struct S {
+  int before;
+  matrix<float16_t, 2, 3> m;
+  int after;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Access
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+
+cbuffer cbuffer_u : register(b0) {
+  uint4 u[32];
+};
+RWByteAddressBuffer s : register(u1);
+vector<float16_t, 4> tint_bitcast_to_f16(uint4 src) {
+  uint4 v = src;
+  uint4 mask = (65535u).xxxx;
+  uint4 shift = (16u).xxxx;
+  float4 t_low = f16tof32((v & mask));
+  float4 t_high = f16tof32(((v >> shift) & mask));
+  float16_t v_1 = float16_t(t_low.x);
+  float16_t v_2 = float16_t(t_high.x);
+  float16_t v_3 = float16_t(t_low.y);
+  return vector<float16_t, 4>(v_1, v_2, v_3, float16_t(t_high.y));
+}
+
+void v_4(uint offset, matrix<float16_t, 2, 3> obj) {
+  s.Store<vector<float16_t, 3> >((offset + 0u), obj[0u]);
+  s.Store<vector<float16_t, 3> >((offset + 8u), obj[1u]);
+}
+
+matrix<float16_t, 2, 3> v_5(uint start_byte_offset) {
+  vector<float16_t, 3> v_6 = tint_bitcast_to_f16(u[(start_byte_offset / 16u)]).xyz;
+  return matrix<float16_t, 2, 3>(v_6, tint_bitcast_to_f16(u[((8u + start_byte_offset) / 16u)]).xyz);
+}
+
+void v_7(uint offset, S obj) {
+  s.Store((offset + 0u), asuint(obj.before));
+  v_4((offset + 8u), obj.m);
+  s.Store((offset + 64u), asuint(obj.after));
+}
+
+S v_8(uint start_byte_offset) {
+  int v_9 = asint(u[(start_byte_offset / 16u)][((start_byte_offset % 16u) / 4u)]);
+  matrix<float16_t, 2, 3> v_10 = v_5((8u + start_byte_offset));
+  S v_11 = {v_9, v_10, asint(u[((64u + start_byte_offset) / 16u)][(((64u + start_byte_offset) % 16u) / 4u)])};
+  return v_11;
+}
+
+void v_12(uint offset, S obj[4]) {
+  {
+    uint v_13 = 0u;
+    v_13 = 0u;
+    while(true) {
+      uint v_14 = v_13;
+      if ((v_14 >= 4u)) {
+        break;
+      }
+      S v_15 = obj[v_14];
+      v_7((offset + (v_14 * 128u)), v_15);
+      {
+        v_13 = (v_14 + 1u);
+      }
+      continue;
+    }
+  }
+}
+
+typedef S ary_ret[4];
+ary_ret v_16(uint start_byte_offset) {
+  S a[4] = (S[4])0;
+  {
+    uint v_17 = 0u;
+    v_17 = 0u;
+    while(true) {
+      uint v_18 = v_17;
+      if ((v_18 >= 4u)) {
+        break;
+      }
+      S v_19 = v_8((start_byte_offset + (v_18 * 128u)));
+      a[v_18] = v_19;
+      {
+        v_17 = (v_18 + 1u);
+      }
+      continue;
+    }
+  }
+  S v_20[4] = a;
+  return v_20;
+}
+
+[numthreads(1, 1, 1)]
+void f() {
+  S v_21[4] = v_16(0u);
+  v_12(0u, v_21);
+  S v_22 = v_8(256u);
+  v_7(128u, v_22);
+  v_4(392u, v_5(264u));
+  s.Store<vector<float16_t, 3> >(136u, tint_bitcast_to_f16(u[1u]).xyz.zxy);
+}
+
diff --git a/test/tint/buffer/uniform/std140/struct/mat2x3_f16/to_storage.wgsl.expected.ir.fxc.hlsl b/test/tint/buffer/uniform/std140/struct/mat2x3_f16/to_storage.wgsl.expected.ir.fxc.hlsl
index 3f437dc..01e0e23 100644
--- a/test/tint/buffer/uniform/std140/struct/mat2x3_f16/to_storage.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/buffer/uniform/std140/struct/mat2x3_f16/to_storage.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,103 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Access
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct S {
+  int before;
+  matrix<float16_t, 2, 3> m;
+  int after;
+};
+
+
+cbuffer cbuffer_u : register(b0) {
+  uint4 u[32];
+};
+RWByteAddressBuffer s : register(u1);
+vector<float16_t, 4> tint_bitcast_to_f16(uint4 src) {
+  uint4 v = src;
+  uint4 mask = (65535u).xxxx;
+  uint4 shift = (16u).xxxx;
+  float4 t_low = f16tof32((v & mask));
+  float4 t_high = f16tof32(((v >> shift) & mask));
+  float16_t v_1 = float16_t(t_low.x);
+  float16_t v_2 = float16_t(t_high.x);
+  float16_t v_3 = float16_t(t_low.y);
+  return vector<float16_t, 4>(v_1, v_2, v_3, float16_t(t_high.y));
+}
+
+void v_4(uint offset, matrix<float16_t, 2, 3> obj) {
+  s.Store<vector<float16_t, 3> >((offset + 0u), obj[0u]);
+  s.Store<vector<float16_t, 3> >((offset + 8u), obj[1u]);
+}
+
+matrix<float16_t, 2, 3> v_5(uint start_byte_offset) {
+  vector<float16_t, 3> v_6 = tint_bitcast_to_f16(u[(start_byte_offset / 16u)]).xyz;
+  return matrix<float16_t, 2, 3>(v_6, tint_bitcast_to_f16(u[((8u + start_byte_offset) / 16u)]).xyz);
+}
+
+void v_7(uint offset, S obj) {
+  s.Store((offset + 0u), asuint(obj.before));
+  v_4((offset + 8u), obj.m);
+  s.Store((offset + 64u), asuint(obj.after));
+}
+
+S v_8(uint start_byte_offset) {
+  int v_9 = asint(u[(start_byte_offset / 16u)][((start_byte_offset % 16u) / 4u)]);
+  matrix<float16_t, 2, 3> v_10 = v_5((8u + start_byte_offset));
+  S v_11 = {v_9, v_10, asint(u[((64u + start_byte_offset) / 16u)][(((64u + start_byte_offset) % 16u) / 4u)])};
+  return v_11;
+}
+
+void v_12(uint offset, S obj[4]) {
+  {
+    uint v_13 = 0u;
+    v_13 = 0u;
+    while(true) {
+      uint v_14 = v_13;
+      if ((v_14 >= 4u)) {
+        break;
+      }
+      S v_15 = obj[v_14];
+      v_7((offset + (v_14 * 128u)), v_15);
+      {
+        v_13 = (v_14 + 1u);
+      }
+      continue;
+    }
+  }
+}
+
+typedef S ary_ret[4];
+ary_ret v_16(uint start_byte_offset) {
+  S a[4] = (S[4])0;
+  {
+    uint v_17 = 0u;
+    v_17 = 0u;
+    while(true) {
+      uint v_18 = v_17;
+      if ((v_18 >= 4u)) {
+        break;
+      }
+      S v_19 = v_8((start_byte_offset + (v_18 * 128u)));
+      a[v_18] = v_19;
+      {
+        v_17 = (v_18 + 1u);
+      }
+      continue;
+    }
+  }
+  S v_20[4] = a;
+  return v_20;
+}
+
+[numthreads(1, 1, 1)]
+void f() {
+  S v_21[4] = v_16(0u);
+  v_12(0u, v_21);
+  S v_22 = v_8(256u);
+  v_7(128u, v_22);
+  v_4(392u, v_5(264u));
+  s.Store<vector<float16_t, 3> >(136u, tint_bitcast_to_f16(u[1u]).xyz.zxy);
+}
+
+FXC validation failure:
+c:\src\dawn\Shader@0x000001AAFABC57C0(3,10-18): error X3000: syntax error: unexpected token 'float16_t'
+
diff --git a/test/tint/buffer/uniform/std140/struct/mat2x3_f16/to_workgroup.wgsl.expected.ir.dxc.hlsl b/test/tint/buffer/uniform/std140/struct/mat2x3_f16/to_workgroup.wgsl.expected.ir.dxc.hlsl
index 3f437dc..58b831f 100644
--- a/test/tint/buffer/uniform/std140/struct/mat2x3_f16/to_workgroup.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/buffer/uniform/std140/struct/mat2x3_f16/to_workgroup.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,93 @@
-SKIP: FAILED
+struct S {
+  int before;
+  matrix<float16_t, 2, 3> m;
+  int after;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Access
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct f_inputs {
+  uint tint_local_index : SV_GroupIndex;
+};
+
+
+cbuffer cbuffer_u : register(b0) {
+  uint4 u[32];
+};
+groupshared S w[4];
+vector<float16_t, 4> tint_bitcast_to_f16(uint4 src) {
+  uint4 v = src;
+  uint4 mask = (65535u).xxxx;
+  uint4 shift = (16u).xxxx;
+  float4 t_low = f16tof32((v & mask));
+  float4 t_high = f16tof32(((v >> shift) & mask));
+  float16_t v_1 = float16_t(t_low.x);
+  float16_t v_2 = float16_t(t_high.x);
+  float16_t v_3 = float16_t(t_low.y);
+  return vector<float16_t, 4>(v_1, v_2, v_3, float16_t(t_high.y));
+}
+
+matrix<float16_t, 2, 3> v_4(uint start_byte_offset) {
+  vector<float16_t, 3> v_5 = tint_bitcast_to_f16(u[(start_byte_offset / 16u)]).xyz;
+  return matrix<float16_t, 2, 3>(v_5, tint_bitcast_to_f16(u[((8u + start_byte_offset) / 16u)]).xyz);
+}
+
+S v_6(uint start_byte_offset) {
+  int v_7 = asint(u[(start_byte_offset / 16u)][((start_byte_offset % 16u) / 4u)]);
+  matrix<float16_t, 2, 3> v_8 = v_4((8u + start_byte_offset));
+  S v_9 = {v_7, v_8, asint(u[((64u + start_byte_offset) / 16u)][(((64u + start_byte_offset) % 16u) / 4u)])};
+  return v_9;
+}
+
+typedef S ary_ret[4];
+ary_ret v_10(uint start_byte_offset) {
+  S a[4] = (S[4])0;
+  {
+    uint v_11 = 0u;
+    v_11 = 0u;
+    while(true) {
+      uint v_12 = v_11;
+      if ((v_12 >= 4u)) {
+        break;
+      }
+      S v_13 = v_6((start_byte_offset + (v_12 * 128u)));
+      a[v_12] = v_13;
+      {
+        v_11 = (v_12 + 1u);
+      }
+      continue;
+    }
+  }
+  S v_14[4] = a;
+  return v_14;
+}
+
+void f_inner(uint tint_local_index) {
+  {
+    uint v_15 = 0u;
+    v_15 = tint_local_index;
+    while(true) {
+      uint v_16 = v_15;
+      if ((v_16 >= 4u)) {
+        break;
+      }
+      S v_17 = (S)0;
+      w[v_16] = v_17;
+      {
+        v_15 = (v_16 + 1u);
+      }
+      continue;
+    }
+  }
+  GroupMemoryBarrierWithGroupSync();
+  S v_18[4] = v_10(0u);
+  w = v_18;
+  S v_19 = v_6(256u);
+  w[1] = v_19;
+  w[3].m = v_4(264u);
+  w[1].m[0] = tint_bitcast_to_f16(u[1u]).xyz.zxy;
+}
+
+[numthreads(1, 1, 1)]
+void f(f_inputs inputs) {
+  f_inner(inputs.tint_local_index);
+}
+
diff --git a/test/tint/buffer/uniform/std140/struct/mat2x3_f16/to_workgroup.wgsl.expected.ir.fxc.hlsl b/test/tint/buffer/uniform/std140/struct/mat2x3_f16/to_workgroup.wgsl.expected.ir.fxc.hlsl
index 3f437dc..7c511a7 100644
--- a/test/tint/buffer/uniform/std140/struct/mat2x3_f16/to_workgroup.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/buffer/uniform/std140/struct/mat2x3_f16/to_workgroup.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,98 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Access
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct S {
+  int before;
+  matrix<float16_t, 2, 3> m;
+  int after;
+};
+
+struct f_inputs {
+  uint tint_local_index : SV_GroupIndex;
+};
+
+
+cbuffer cbuffer_u : register(b0) {
+  uint4 u[32];
+};
+groupshared S w[4];
+vector<float16_t, 4> tint_bitcast_to_f16(uint4 src) {
+  uint4 v = src;
+  uint4 mask = (65535u).xxxx;
+  uint4 shift = (16u).xxxx;
+  float4 t_low = f16tof32((v & mask));
+  float4 t_high = f16tof32(((v >> shift) & mask));
+  float16_t v_1 = float16_t(t_low.x);
+  float16_t v_2 = float16_t(t_high.x);
+  float16_t v_3 = float16_t(t_low.y);
+  return vector<float16_t, 4>(v_1, v_2, v_3, float16_t(t_high.y));
+}
+
+matrix<float16_t, 2, 3> v_4(uint start_byte_offset) {
+  vector<float16_t, 3> v_5 = tint_bitcast_to_f16(u[(start_byte_offset / 16u)]).xyz;
+  return matrix<float16_t, 2, 3>(v_5, tint_bitcast_to_f16(u[((8u + start_byte_offset) / 16u)]).xyz);
+}
+
+S v_6(uint start_byte_offset) {
+  int v_7 = asint(u[(start_byte_offset / 16u)][((start_byte_offset % 16u) / 4u)]);
+  matrix<float16_t, 2, 3> v_8 = v_4((8u + start_byte_offset));
+  S v_9 = {v_7, v_8, asint(u[((64u + start_byte_offset) / 16u)][(((64u + start_byte_offset) % 16u) / 4u)])};
+  return v_9;
+}
+
+typedef S ary_ret[4];
+ary_ret v_10(uint start_byte_offset) {
+  S a[4] = (S[4])0;
+  {
+    uint v_11 = 0u;
+    v_11 = 0u;
+    while(true) {
+      uint v_12 = v_11;
+      if ((v_12 >= 4u)) {
+        break;
+      }
+      S v_13 = v_6((start_byte_offset + (v_12 * 128u)));
+      a[v_12] = v_13;
+      {
+        v_11 = (v_12 + 1u);
+      }
+      continue;
+    }
+  }
+  S v_14[4] = a;
+  return v_14;
+}
+
+void f_inner(uint tint_local_index) {
+  {
+    uint v_15 = 0u;
+    v_15 = tint_local_index;
+    while(true) {
+      uint v_16 = v_15;
+      if ((v_16 >= 4u)) {
+        break;
+      }
+      S v_17 = (S)0;
+      w[v_16] = v_17;
+      {
+        v_15 = (v_16 + 1u);
+      }
+      continue;
+    }
+  }
+  GroupMemoryBarrierWithGroupSync();
+  S v_18[4] = v_10(0u);
+  w = v_18;
+  S v_19 = v_6(256u);
+  w[1] = v_19;
+  w[3].m = v_4(264u);
+  w[1].m[0] = tint_bitcast_to_f16(u[1u]).xyz.zxy;
+}
+
+[numthreads(1, 1, 1)]
+void f(f_inputs inputs) {
+  f_inner(inputs.tint_local_index);
+}
+
+FXC validation failure:
+c:\src\dawn\Shader@0x0000029DBA4332B0(3,10-18): error X3000: syntax error: unexpected token 'float16_t'
+
diff --git a/test/tint/buffer/uniform/std140/struct/mat2x3_f32/dynamic_index_via_ptr.wgsl.expected.ir.dxc.hlsl b/test/tint/buffer/uniform/std140/struct/mat2x3_f32/dynamic_index_via_ptr.wgsl.expected.ir.dxc.hlsl
index 3f437dc..09eaefe 100644
--- a/test/tint/buffer/uniform/std140/struct/mat2x3_f32/dynamic_index_via_ptr.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/buffer/uniform/std140/struct/mat2x3_f32/dynamic_index_via_ptr.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,272 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Access
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+
+struct Inner {
+  @size(64)
+  m : mat2x3<f32>,
+}
+
+struct Outer {
+  a : array<Inner, 4>,
+}
+
+@group(0) @binding(0) var<uniform> a : array<Outer, 4>;
+
+var<private> counter = 0;
+
+fn i() -> i32 {
+  counter++;
+  return counter;
+}
+
+@compute @workgroup_size(1)
+fn f() {
+  let p_a = &(a);
+  let p_a_i = &((*(p_a))[i()]);
+  let p_a_i_a = &((*(p_a_i)).a);
+  let p_a_i_a_i = &((*(p_a_i_a))[i()]);
+  let p_a_i_a_i_m = &((*(p_a_i_a_i)).m);
+  let p_a_i_a_i_m_i = &((*(p_a_i_a_i_m))[i()]);
+  let l_a : array<Outer, 4> = *(p_a);
+  let l_a_i : Outer = *(p_a_i);
+  let l_a_i_a : array<Inner, 4> = *(p_a_i_a);
+  let l_a_i_a_i : Inner = *(p_a_i_a_i);
+  let l_a_i_a_i_m : mat2x3<f32> = *(p_a_i_a_i_m);
+  let l_a_i_a_i_m_i : vec3<f32> = *(p_a_i_a_i_m_i);
+  let l_a_i_a_i_m_i_i : f32 = (*(p_a_i_a_i_m_i))[i()];
+}
+
+Failed to generate: :38:24 error: binary: %23 is not in scope
+    %22:u32 = add %21, %23
+                       ^^^
+
+:24:3 note: in block
+  $B3: {
+  ^^^
+
+:63:5 note: %23 declared here
+    %23:u32 = mul %51, 4u
+    ^^^^^^^
+
+:43:24 error: binary: %23 is not in scope
+    %29:u32 = add %28, %23
+                       ^^^
+
+:24:3 note: in block
+  $B3: {
+  ^^^
+
+:63:5 note: %23 declared here
+    %23:u32 = mul %51, 4u
+    ^^^^^^^
+
+:48:24 error: binary: %23 is not in scope
+    %35:u32 = add %34, %23
+                       ^^^
+
+:24:3 note: in block
+  $B3: {
+  ^^^
+
+:63:5 note: %23 declared here
+    %23:u32 = mul %51, 4u
+    ^^^^^^^
+
+:63:5 error: binary: no matching overload for 'operator * (i32, u32)'
+
+9 candidate operators:
+ • 'operator * (T  ✓ , T  ✗ ) -> T' where:
+      ✓  'T' is 'f32', 'i32', 'u32' or 'f16'
+ • 'operator * (vecN<T>  ✗ , T  ✓ ) -> vecN<T>' where:
+      ✓  'T' is 'f32', 'i32', 'u32' or 'f16'
+ • 'operator * (T  ✓ , vecN<T>  ✗ ) -> vecN<T>' where:
+      ✓  'T' is 'f32', 'i32', 'u32' or 'f16'
+ • 'operator * (T  ✗ , matNxM<T>  ✗ ) -> matNxM<T>' where:
+      ✗  'T' is 'f32' or 'f16'
+ • 'operator * (matNxM<T>  ✗ , T  ✗ ) -> matNxM<T>' where:
+      ✗  'T' is 'f32' or 'f16'
+ • 'operator * (vecN<T>  ✗ , vecN<T>  ✗ ) -> vecN<T>' where:
+      ✗  'T' is 'f32', 'i32', 'u32' or 'f16'
+ • 'operator * (matCxR<T>  ✗ , vecC<T>  ✗ ) -> vecR<T>' where:
+      ✗  'T' is 'f32' or 'f16'
+ • 'operator * (vecR<T>  ✗ , matCxR<T>  ✗ ) -> vecC<T>' where:
+      ✗  'T' is 'f32' or 'f16'
+ • 'operator * (matKxR<T>  ✗ , matCxK<T>  ✗ ) -> matCxR<T>' where:
+      ✗  'T' is 'f32' or 'f16'
+
+    %23:u32 = mul %51, 4u
+    ^^^^^^^^^^^^^^^^^^^^^
+
+:24:3 note: in block
+  $B3: {
+  ^^^
+
+note: # Disassembly
+Inner = struct @align(16) {
+  m:mat2x3<f32> @offset(0)
+}
+
+Outer = struct @align(16) {
+  a:array<Inner, 4> @offset(0)
+}
+
+$B1: {  # root
+  %a:ptr<uniform, array<vec4<u32>, 64>, read> = var @binding_point(0, 0)
+  %counter:ptr<private, i32, read_write> = var, 0i
+}
+
+%i = func():i32 {
+  $B2: {
+    %4:i32 = load %counter
+    %5:i32 = add %4, 1i
+    store %counter, %5
+    %6:i32 = load %counter
+    ret %6
+  }
+}
+%f = @compute @workgroup_size(1, 1, 1) func():void {
+  $B3: {
+    %8:i32 = call %i
+    %9:u32 = convert %8
+    %10:u32 = mul 256u, %9
+    %11:i32 = call %i
+    %12:u32 = convert %11
+    %13:u32 = mul 64u, %12
+    %14:i32 = call %i
+    %15:u32 = convert %14
+    %16:u32 = mul 16u, %15
+    %17:array<Outer, 4> = call %18, 0u
+    %l_a:array<Outer, 4> = let %17
+    %20:u32 = add %10, %13
+    %21:u32 = add %20, %16
+    %22:u32 = add %21, %23
+    %24:Outer = call %25, %22
+    %l_a_i:Outer = let %24
+    %27:u32 = add %10, %13
+    %28:u32 = add %27, %16
+    %29:u32 = add %28, %23
+    %30:array<Inner, 4> = call %31, %29
+    %l_a_i_a:array<Inner, 4> = let %30
+    %33:u32 = add %10, %13
+    %34:u32 = add %33, %16
+    %35:u32 = add %34, %23
+    %36:Inner = call %37, %35
+    %l_a_i_a_i:Inner = let %36
+    %39:u32 = add %10, %13
+    %40:mat2x3<f32> = call %41, %39
+    %l_a_i_a_i_m:mat2x3<f32> = let %40
+    %43:u32 = add %10, %13
+    %44:u32 = add %43, %16
+    %45:u32 = div %44, 16u
+    %46:ptr<uniform, vec4<u32>, read> = access %a, %45
+    %47:vec4<u32> = load %46
+    %48:vec3<u32> = swizzle %47, xyz
+    %49:vec3<f32> = bitcast %48
+    %l_a_i_a_i_m_i:vec3<f32> = let %49
+    %51:i32 = call %i
+    %23:u32 = mul %51, 4u
+    %52:u32 = add %10, %13
+    %53:u32 = add %52, %16
+    %54:u32 = add %53, %23
+    %55:u32 = div %54, 16u
+    %56:ptr<uniform, vec4<u32>, read> = access %a, %55
+    %57:u32 = mod %54, 16u
+    %58:u32 = div %57, 4u
+    %59:u32 = load_vector_element %56, %58
+    %60:f32 = bitcast %59
+    %l_a_i_a_i_m_i_i:f32 = let %60
+    ret
+  }
+}
+%41 = func(%start_byte_offset:u32):mat2x3<f32> {
+  $B4: {
+    %63:u32 = div %start_byte_offset, 16u
+    %64:ptr<uniform, vec4<u32>, read> = access %a, %63
+    %65:vec4<u32> = load %64
+    %66:vec3<u32> = swizzle %65, xyz
+    %67:vec3<f32> = bitcast %66
+    %68:u32 = add 16u, %start_byte_offset
+    %69:u32 = div %68, 16u
+    %70:ptr<uniform, vec4<u32>, read> = access %a, %69
+    %71:vec4<u32> = load %70
+    %72:vec3<u32> = swizzle %71, xyz
+    %73:vec3<f32> = bitcast %72
+    %74:mat2x3<f32> = construct %67, %73
+    ret %74
+  }
+}
+%37 = func(%start_byte_offset_1:u32):Inner {  # %start_byte_offset_1: 'start_byte_offset'
+  $B5: {
+    %76:mat2x3<f32> = call %41, %start_byte_offset_1
+    %77:Inner = construct %76
+    ret %77
+  }
+}
+%31 = func(%start_byte_offset_2:u32):array<Inner, 4> {  # %start_byte_offset_2: 'start_byte_offset'
+  $B6: {
+    %a_1:ptr<function, array<Inner, 4>, read_write> = var, array<Inner, 4>(Inner(mat2x3<f32>(vec3<f32>(0.0f))))  # %a_1: 'a'
+    loop [i: $B7, b: $B8, c: $B9] {  # loop_1
+      $B7: {  # initializer
+        next_iteration 0u  # -> $B8
+      }
+      $B8 (%idx:u32): {  # body
+        %81:bool = gte %idx, 4u
+        if %81 [t: $B10] {  # if_1
+          $B10: {  # true
+            exit_loop  # loop_1
+          }
+        }
+        %82:u32 = mul %idx, 64u
+        %83:u32 = add %start_byte_offset_2, %82
+        %84:ptr<function, Inner, read_write> = access %a_1, %idx
+        %85:Inner = call %37, %83
+        store %84, %85
+        continue  # -> $B9
+      }
+      $B9: {  # continuing
+        %86:u32 = add %idx, 1u
+        next_iteration %86  # -> $B8
+      }
+    }
+    %87:array<Inner, 4> = load %a_1
+    ret %87
+  }
+}
+%25 = func(%start_byte_offset_3:u32):Outer {  # %start_byte_offset_3: 'start_byte_offset'
+  $B11: {
+    %89:array<Inner, 4> = call %31, %start_byte_offset_3
+    %90:Outer = construct %89
+    ret %90
+  }
+}
+%18 = func(%start_byte_offset_4:u32):array<Outer, 4> {  # %start_byte_offset_4: 'start_byte_offset'
+  $B12: {
+    %a_2:ptr<function, array<Outer, 4>, read_write> = var, array<Outer, 4>(Outer(array<Inner, 4>(Inner(mat2x3<f32>(vec3<f32>(0.0f))))))  # %a_2: 'a'
+    loop [i: $B13, b: $B14, c: $B15] {  # loop_2
+      $B13: {  # initializer
+        next_iteration 0u  # -> $B14
+      }
+      $B14 (%idx_1:u32): {  # body
+        %94:bool = gte %idx_1, 4u
+        if %94 [t: $B16] {  # if_2
+          $B16: {  # true
+            exit_loop  # loop_2
+          }
+        }
+        %95:u32 = mul %idx_1, 256u
+        %96:u32 = add %start_byte_offset_4, %95
+        %97:ptr<function, Outer, read_write> = access %a_2, %idx_1
+        %98:Outer = call %25, %96
+        store %97, %98
+        continue  # -> $B15
+      }
+      $B15: {  # continuing
+        %99:u32 = add %idx_1, 1u
+        next_iteration %99  # -> $B14
+      }
+    }
+    %100:array<Outer, 4> = load %a_2
+    ret %100
+  }
+}
+
diff --git a/test/tint/buffer/uniform/std140/struct/mat2x3_f32/dynamic_index_via_ptr.wgsl.expected.ir.fxc.hlsl b/test/tint/buffer/uniform/std140/struct/mat2x3_f32/dynamic_index_via_ptr.wgsl.expected.ir.fxc.hlsl
index 3f437dc..9093139 100644
--- a/test/tint/buffer/uniform/std140/struct/mat2x3_f32/dynamic_index_via_ptr.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/buffer/uniform/std140/struct/mat2x3_f32/dynamic_index_via_ptr.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,257 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Access
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+
+struct Inner {
+  @size(64)
+  m : mat2x3<f32>,
+}
+
+struct Outer {
+  a : array<Inner, 4>,
+}
+
+@group(0) @binding(0) var<uniform> a : array<Outer, 4>;
+
+var<private> counter = 0;
+
+fn i() -> i32 {
+  counter++;
+  return counter;
+}
+
+@compute @workgroup_size(1)
+fn f() {
+  let p_a = &(a);
+  let p_a_i = &((*(p_a))[i()]);
+  let p_a_i_a = &((*(p_a_i)).a);
+  let p_a_i_a_i = &((*(p_a_i_a))[i()]);
+  let p_a_i_a_i_m = &((*(p_a_i_a_i)).m);
+  let p_a_i_a_i_m_i = &((*(p_a_i_a_i_m))[i()]);
+  let l_a : array<Outer, 4> = *(p_a);
+  let l_a_i : Outer = *(p_a_i);
+  let l_a_i_a : array<Inner, 4> = *(p_a_i_a);
+  let l_a_i_a_i : Inner = *(p_a_i_a_i);
+  let l_a_i_a_i_m : mat2x3<f32> = *(p_a_i_a_i_m);
+  let l_a_i_a_i_m_i : vec3<f32> = *(p_a_i_a_i_m_i);
+  let l_a_i_a_i_m_i_i : f32 = (*(p_a_i_a_i_m_i))[i()];
+}
+
+Failed to generate: :40:24 error: binary: %26 is not in scope
+    %25:u32 = add %24, %26
+                       ^^^
+
+:24:3 note: in block
+  $B3: {
+  ^^^
+
+:60:5 note: %26 declared here
+    %26:u32 = mul %48, 4u
+    ^^^^^^^
+
+:45:24 error: binary: %26 is not in scope
+    %32:u32 = add %31, %26
+                       ^^^
+
+:24:3 note: in block
+  $B3: {
+  ^^^
+
+:60:5 note: %26 declared here
+    %26:u32 = mul %48, 4u
+    ^^^^^^^
+
+:60:5 error: binary: no matching overload for 'operator * (i32, u32)'
+
+9 candidate operators:
+ • 'operator * (T  ✓ , T  ✗ ) -> T' where:
+      ✓  'T' is 'f32', 'i32', 'u32' or 'f16'
+ • 'operator * (vecN<T>  ✗ , T  ✓ ) -> vecN<T>' where:
+      ✓  'T' is 'f32', 'i32', 'u32' or 'f16'
+ • 'operator * (T  ✓ , vecN<T>  ✗ ) -> vecN<T>' where:
+      ✓  'T' is 'f32', 'i32', 'u32' or 'f16'
+ • 'operator * (T  ✗ , matNxM<T>  ✗ ) -> matNxM<T>' where:
+      ✗  'T' is 'f32' or 'f16'
+ • 'operator * (matNxM<T>  ✗ , T  ✗ ) -> matNxM<T>' where:
+      ✗  'T' is 'f32' or 'f16'
+ • 'operator * (vecN<T>  ✗ , vecN<T>  ✗ ) -> vecN<T>' where:
+      ✗  'T' is 'f32', 'i32', 'u32' or 'f16'
+ • 'operator * (matCxR<T>  ✗ , vecC<T>  ✗ ) -> vecR<T>' where:
+      ✗  'T' is 'f32' or 'f16'
+ • 'operator * (vecR<T>  ✗ , matCxR<T>  ✗ ) -> vecC<T>' where:
+      ✗  'T' is 'f32' or 'f16'
+ • 'operator * (matKxR<T>  ✗ , matCxK<T>  ✗ ) -> matCxR<T>' where:
+      ✗  'T' is 'f32' or 'f16'
+
+    %26:u32 = mul %48, 4u
+    ^^^^^^^^^^^^^^^^^^^^^
+
+:24:3 note: in block
+  $B3: {
+  ^^^
+
+note: # Disassembly
+Inner = struct @align(16) {
+  m:mat2x3<f32> @offset(0)
+}
+
+Outer = struct @align(16) {
+  a:array<Inner, 4> @offset(0)
+}
+
+$B1: {  # root
+  %a:ptr<uniform, array<vec4<u32>, 64>, read> = var @binding_point(0, 0)
+  %counter:ptr<private, i32, read_write> = var, 0i
+}
+
+%i = func():i32 {
+  $B2: {
+    %4:i32 = load %counter
+    %5:i32 = add %4, 1i
+    store %counter, %5
+    %6:i32 = load %counter
+    ret %6
+  }
+}
+%f = @compute @workgroup_size(1, 1, 1) func():void {
+  $B3: {
+    %8:i32 = call %i
+    %9:u32 = convert %8
+    %10:u32 = mul 256u, %9
+    %11:i32 = call %i
+    %12:u32 = convert %11
+    %13:u32 = mul 64u, %12
+    %14:i32 = call %i
+    %15:u32 = convert %14
+    %16:u32 = mul 16u, %15
+    %17:array<Outer, 4> = call %18, 0u
+    %l_a:array<Outer, 4> = let %17
+    %20:Outer = call %21, %10
+    %l_a_i:Outer = let %20
+    %23:u32 = add %10, %13
+    %24:u32 = add %23, %16
+    %25:u32 = add %24, %26
+    %27:array<Inner, 4> = call %28, %25
+    %l_a_i_a:array<Inner, 4> = let %27
+    %30:u32 = add %10, %13
+    %31:u32 = add %30, %16
+    %32:u32 = add %31, %26
+    %33:Inner = call %34, %32
+    %l_a_i_a_i:Inner = let %33
+    %36:u32 = add %10, %13
+    %37:mat2x3<f32> = call %38, %36
+    %l_a_i_a_i_m:mat2x3<f32> = let %37
+    %40:u32 = add %10, %13
+    %41:u32 = add %40, %16
+    %42:u32 = div %41, 16u
+    %43:ptr<uniform, vec4<u32>, read> = access %a, %42
+    %44:vec4<u32> = load %43
+    %45:vec3<u32> = swizzle %44, xyz
+    %46:vec3<f32> = bitcast %45
+    %l_a_i_a_i_m_i:vec3<f32> = let %46
+    %48:i32 = call %i
+    %26:u32 = mul %48, 4u
+    %49:u32 = add %10, %13
+    %50:u32 = add %49, %16
+    %51:u32 = add %50, %26
+    %52:u32 = div %51, 16u
+    %53:ptr<uniform, vec4<u32>, read> = access %a, %52
+    %54:u32 = mod %51, 16u
+    %55:u32 = div %54, 4u
+    %56:u32 = load_vector_element %53, %55
+    %57:f32 = bitcast %56
+    %l_a_i_a_i_m_i_i:f32 = let %57
+    ret
+  }
+}
+%21 = func(%start_byte_offset:u32):Outer {
+  $B4: {
+    %60:array<Inner, 4> = call %28, %start_byte_offset
+    %61:Outer = construct %60
+    ret %61
+  }
+}
+%28 = func(%start_byte_offset_1:u32):array<Inner, 4> {  # %start_byte_offset_1: 'start_byte_offset'
+  $B5: {
+    %a_1:ptr<function, array<Inner, 4>, read_write> = var, array<Inner, 4>(Inner(mat2x3<f32>(vec3<f32>(0.0f))))  # %a_1: 'a'
+    loop [i: $B6, b: $B7, c: $B8] {  # loop_1
+      $B6: {  # initializer
+        next_iteration 0u  # -> $B7
+      }
+      $B7 (%idx:u32): {  # body
+        %65:bool = gte %idx, 4u
+        if %65 [t: $B9] {  # if_1
+          $B9: {  # true
+            exit_loop  # loop_1
+          }
+        }
+        %66:u32 = mul %idx, 64u
+        %67:u32 = add %start_byte_offset_1, %66
+        %68:ptr<function, Inner, read_write> = access %a_1, %idx
+        %69:Inner = call %34, %67
+        store %68, %69
+        continue  # -> $B8
+      }
+      $B8: {  # continuing
+        %70:u32 = add %idx, 1u
+        next_iteration %70  # -> $B7
+      }
+    }
+    %71:array<Inner, 4> = load %a_1
+    ret %71
+  }
+}
+%34 = func(%start_byte_offset_2:u32):Inner {  # %start_byte_offset_2: 'start_byte_offset'
+  $B10: {
+    %73:mat2x3<f32> = call %38, %start_byte_offset_2
+    %74:Inner = construct %73
+    ret %74
+  }
+}
+%38 = func(%start_byte_offset_3:u32):mat2x3<f32> {  # %start_byte_offset_3: 'start_byte_offset'
+  $B11: {
+    %76:u32 = div %start_byte_offset_3, 16u
+    %77:ptr<uniform, vec4<u32>, read> = access %a, %76
+    %78:vec4<u32> = load %77
+    %79:vec3<u32> = swizzle %78, xyz
+    %80:vec3<f32> = bitcast %79
+    %81:u32 = add 16u, %start_byte_offset_3
+    %82:u32 = div %81, 16u
+    %83:ptr<uniform, vec4<u32>, read> = access %a, %82
+    %84:vec4<u32> = load %83
+    %85:vec3<u32> = swizzle %84, xyz
+    %86:vec3<f32> = bitcast %85
+    %87:mat2x3<f32> = construct %80, %86
+    ret %87
+  }
+}
+%18 = func(%start_byte_offset_4:u32):array<Outer, 4> {  # %start_byte_offset_4: 'start_byte_offset'
+  $B12: {
+    %a_2:ptr<function, array<Outer, 4>, read_write> = var, array<Outer, 4>(Outer(array<Inner, 4>(Inner(mat2x3<f32>(vec3<f32>(0.0f))))))  # %a_2: 'a'
+    loop [i: $B13, b: $B14, c: $B15] {  # loop_2
+      $B13: {  # initializer
+        next_iteration 0u  # -> $B14
+      }
+      $B14 (%idx_1:u32): {  # body
+        %91:bool = gte %idx_1, 4u
+        if %91 [t: $B16] {  # if_2
+          $B16: {  # true
+            exit_loop  # loop_2
+          }
+        }
+        %92:u32 = mul %idx_1, 256u
+        %93:u32 = add %start_byte_offset_4, %92
+        %94:ptr<function, Outer, read_write> = access %a_2, %idx_1
+        %95:Outer = call %21, %93
+        store %94, %95
+        continue  # -> $B15
+      }
+      $B15: {  # continuing
+        %96:u32 = add %idx_1, 1u
+        next_iteration %96  # -> $B14
+      }
+    }
+    %97:array<Outer, 4> = load %a_2
+    ret %97
+  }
+}
+
diff --git a/test/tint/buffer/uniform/std140/struct/mat2x3_f32/static_index_via_ptr.wgsl.expected.ir.dxc.hlsl b/test/tint/buffer/uniform/std140/struct/mat2x3_f32/static_index_via_ptr.wgsl.expected.ir.dxc.hlsl
index 3f437dc..a197e4d 100644
--- a/test/tint/buffer/uniform/std140/struct/mat2x3_f32/static_index_via_ptr.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/buffer/uniform/std140/struct/mat2x3_f32/static_index_via_ptr.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,85 @@
-SKIP: FAILED
+struct Inner {
+  float2x3 m;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Access
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct Outer {
+  Inner a[4];
+};
+
+
+cbuffer cbuffer_a : register(b0) {
+  uint4 a[64];
+};
+float2x3 v(uint start_byte_offset) {
+  float3 v_1 = asfloat(a[(start_byte_offset / 16u)].xyz);
+  return float2x3(v_1, asfloat(a[((16u + start_byte_offset) / 16u)].xyz));
+}
+
+Inner v_2(uint start_byte_offset) {
+  Inner v_3 = {v(start_byte_offset)};
+  return v_3;
+}
+
+typedef Inner ary_ret[4];
+ary_ret v_4(uint start_byte_offset) {
+  Inner a[4] = (Inner[4])0;
+  {
+    uint v_5 = 0u;
+    v_5 = 0u;
+    while(true) {
+      uint v_6 = v_5;
+      if ((v_6 >= 4u)) {
+        break;
+      }
+      Inner v_7 = v_2((start_byte_offset + (v_6 * 64u)));
+      a[v_6] = v_7;
+      {
+        v_5 = (v_6 + 1u);
+      }
+      continue;
+    }
+  }
+  Inner v_8[4] = a;
+  return v_8;
+}
+
+Outer v_9(uint start_byte_offset) {
+  Inner v_10[4] = v_4(start_byte_offset);
+  Outer v_11 = {v_10};
+  return v_11;
+}
+
+typedef Outer ary_ret_1[4];
+ary_ret_1 v_12(uint start_byte_offset) {
+  Outer a[4] = (Outer[4])0;
+  {
+    uint v_13 = 0u;
+    v_13 = 0u;
+    while(true) {
+      uint v_14 = v_13;
+      if ((v_14 >= 4u)) {
+        break;
+      }
+      Outer v_15 = v_9((start_byte_offset + (v_14 * 256u)));
+      a[v_14] = v_15;
+      {
+        v_13 = (v_14 + 1u);
+      }
+      continue;
+    }
+  }
+  Outer v_16[4] = a;
+  return v_16;
+}
+
+[numthreads(1, 1, 1)]
+void f() {
+  Outer l_a[4] = v_12(0u);
+  Outer l_a_3 = v_9(912u);
+  Inner l_a_3_a[4] = v_4(768u);
+  Inner l_a_3_a_2 = v_2(912u);
+  float2x3 l_a_3_a_2_m = v(896u);
+  float3 l_a_3_a_2_m_1 = asfloat(a[57u].xyz);
+  float l_a_3_a_2_m_1_0 = asfloat(a[57u].x);
+}
+
diff --git a/test/tint/buffer/uniform/std140/struct/mat2x3_f32/static_index_via_ptr.wgsl.expected.ir.fxc.hlsl b/test/tint/buffer/uniform/std140/struct/mat2x3_f32/static_index_via_ptr.wgsl.expected.ir.fxc.hlsl
index 3f437dc..98d0a6c 100644
--- a/test/tint/buffer/uniform/std140/struct/mat2x3_f32/static_index_via_ptr.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/buffer/uniform/std140/struct/mat2x3_f32/static_index_via_ptr.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,85 @@
-SKIP: FAILED
+struct Inner {
+  float2x3 m;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Access
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct Outer {
+  Inner a[4];
+};
+
+
+cbuffer cbuffer_a : register(b0) {
+  uint4 a[64];
+};
+float2x3 v(uint start_byte_offset) {
+  float3 v_1 = asfloat(a[(start_byte_offset / 16u)].xyz);
+  return float2x3(v_1, asfloat(a[((16u + start_byte_offset) / 16u)].xyz));
+}
+
+Inner v_2(uint start_byte_offset) {
+  Inner v_3 = {v(start_byte_offset)};
+  return v_3;
+}
+
+typedef Inner ary_ret[4];
+ary_ret v_4(uint start_byte_offset) {
+  Inner a[4] = (Inner[4])0;
+  {
+    uint v_5 = 0u;
+    v_5 = 0u;
+    while(true) {
+      uint v_6 = v_5;
+      if ((v_6 >= 4u)) {
+        break;
+      }
+      Inner v_7 = v_2((start_byte_offset + (v_6 * 64u)));
+      a[v_6] = v_7;
+      {
+        v_5 = (v_6 + 1u);
+      }
+      continue;
+    }
+  }
+  Inner v_8[4] = a;
+  return v_8;
+}
+
+Outer v_9(uint start_byte_offset) {
+  Inner v_10[4] = v_4(start_byte_offset);
+  Outer v_11 = {v_10};
+  return v_11;
+}
+
+typedef Outer ary_ret_1[4];
+ary_ret_1 v_12(uint start_byte_offset) {
+  Outer a[4] = (Outer[4])0;
+  {
+    uint v_13 = 0u;
+    v_13 = 0u;
+    while(true) {
+      uint v_14 = v_13;
+      if ((v_14 >= 4u)) {
+        break;
+      }
+      Outer v_15 = v_9((start_byte_offset + (v_14 * 256u)));
+      a[v_14] = v_15;
+      {
+        v_13 = (v_14 + 1u);
+      }
+      continue;
+    }
+  }
+  Outer v_16[4] = a;
+  return v_16;
+}
+
+[numthreads(1, 1, 1)]
+void f() {
+  Outer l_a[4] = v_12(0u);
+  Outer l_a_3 = v_9(768u);
+  Inner l_a_3_a[4] = v_4(912u);
+  Inner l_a_3_a_2 = v_2(896u);
+  float2x3 l_a_3_a_2_m = v(896u);
+  float3 l_a_3_a_2_m_1 = asfloat(a[57u].xyz);
+  float l_a_3_a_2_m_1_0 = asfloat(a[57u].x);
+}
+
diff --git a/test/tint/buffer/uniform/std140/struct/mat2x3_f32/to_builtin.wgsl.expected.ir.dxc.hlsl b/test/tint/buffer/uniform/std140/struct/mat2x3_f32/to_builtin.wgsl.expected.ir.dxc.hlsl
index 3f437dc..fd9bc51 100644
--- a/test/tint/buffer/uniform/std140/struct/mat2x3_f32/to_builtin.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/buffer/uniform/std140/struct/mat2x3_f32/to_builtin.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,16 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Access
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+cbuffer cbuffer_u : register(b0) {
+  uint4 u[32];
+};
+float2x3 v(uint start_byte_offset) {
+  float3 v_1 = asfloat(u[(start_byte_offset / 16u)].xyz);
+  return float2x3(v_1, asfloat(u[((16u + start_byte_offset) / 16u)].xyz));
+}
+
+[numthreads(1, 1, 1)]
+void f() {
+  float3x2 t = transpose(v(272u));
+  float l = length(asfloat(u[2u].xyz).zxy);
+  float a = abs(asfloat(u[2u].xyz).zxy[0u]);
+}
+
diff --git a/test/tint/buffer/uniform/std140/struct/mat2x3_f32/to_builtin.wgsl.expected.ir.fxc.hlsl b/test/tint/buffer/uniform/std140/struct/mat2x3_f32/to_builtin.wgsl.expected.ir.fxc.hlsl
index 3f437dc..fd9bc51 100644
--- a/test/tint/buffer/uniform/std140/struct/mat2x3_f32/to_builtin.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/buffer/uniform/std140/struct/mat2x3_f32/to_builtin.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,16 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Access
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+cbuffer cbuffer_u : register(b0) {
+  uint4 u[32];
+};
+float2x3 v(uint start_byte_offset) {
+  float3 v_1 = asfloat(u[(start_byte_offset / 16u)].xyz);
+  return float2x3(v_1, asfloat(u[((16u + start_byte_offset) / 16u)].xyz));
+}
+
+[numthreads(1, 1, 1)]
+void f() {
+  float3x2 t = transpose(v(272u));
+  float l = length(asfloat(u[2u].xyz).zxy);
+  float a = abs(asfloat(u[2u].xyz).zxy[0u]);
+}
+
diff --git a/test/tint/buffer/uniform/std140/struct/mat2x3_f32/to_fn.wgsl.expected.ir.dxc.hlsl b/test/tint/buffer/uniform/std140/struct/mat2x3_f32/to_fn.wgsl.expected.ir.dxc.hlsl
index 3f437dc..48d0f1d 100644
--- a/test/tint/buffer/uniform/std140/struct/mat2x3_f32/to_fn.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/buffer/uniform/std140/struct/mat2x3_f32/to_fn.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,71 @@
-SKIP: FAILED
+struct S {
+  int before;
+  float2x3 m;
+  int after;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Access
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+
+cbuffer cbuffer_u : register(b0) {
+  uint4 u[32];
+};
+void a(S a_1[4]) {
+}
+
+void b(S s) {
+}
+
+void c(float2x3 m) {
+}
+
+void d(float3 v) {
+}
+
+void e(float f) {
+}
+
+float2x3 v_1(uint start_byte_offset) {
+  float3 v_2 = asfloat(u[(start_byte_offset / 16u)].xyz);
+  return float2x3(v_2, asfloat(u[((16u + start_byte_offset) / 16u)].xyz));
+}
+
+S v_3(uint start_byte_offset) {
+  int v_4 = asint(u[(start_byte_offset / 16u)][((start_byte_offset % 16u) / 4u)]);
+  float2x3 v_5 = v_1((16u + start_byte_offset));
+  S v_6 = {v_4, v_5, asint(u[((64u + start_byte_offset) / 16u)][(((64u + start_byte_offset) % 16u) / 4u)])};
+  return v_6;
+}
+
+typedef S ary_ret[4];
+ary_ret v_7(uint start_byte_offset) {
+  S a[4] = (S[4])0;
+  {
+    uint v_8 = 0u;
+    v_8 = 0u;
+    while(true) {
+      uint v_9 = v_8;
+      if ((v_9 >= 4u)) {
+        break;
+      }
+      S v_10 = v_3((start_byte_offset + (v_9 * 128u)));
+      a[v_9] = v_10;
+      {
+        v_8 = (v_9 + 1u);
+      }
+      continue;
+    }
+  }
+  S v_11[4] = a;
+  return v_11;
+}
+
+[numthreads(1, 1, 1)]
+void f() {
+  S v_12[4] = v_7(0u);
+  a(v_12);
+  S v_13 = v_3(256u);
+  b(v_13);
+  c(v_1(272u));
+  d(asfloat(u[2u].xyz).zxy);
+  e(asfloat(u[2u].xyz).zxy[0u]);
+}
+
diff --git a/test/tint/buffer/uniform/std140/struct/mat2x3_f32/to_fn.wgsl.expected.ir.fxc.hlsl b/test/tint/buffer/uniform/std140/struct/mat2x3_f32/to_fn.wgsl.expected.ir.fxc.hlsl
index 3f437dc..48d0f1d 100644
--- a/test/tint/buffer/uniform/std140/struct/mat2x3_f32/to_fn.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/buffer/uniform/std140/struct/mat2x3_f32/to_fn.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,71 @@
-SKIP: FAILED
+struct S {
+  int before;
+  float2x3 m;
+  int after;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Access
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+
+cbuffer cbuffer_u : register(b0) {
+  uint4 u[32];
+};
+void a(S a_1[4]) {
+}
+
+void b(S s) {
+}
+
+void c(float2x3 m) {
+}
+
+void d(float3 v) {
+}
+
+void e(float f) {
+}
+
+float2x3 v_1(uint start_byte_offset) {
+  float3 v_2 = asfloat(u[(start_byte_offset / 16u)].xyz);
+  return float2x3(v_2, asfloat(u[((16u + start_byte_offset) / 16u)].xyz));
+}
+
+S v_3(uint start_byte_offset) {
+  int v_4 = asint(u[(start_byte_offset / 16u)][((start_byte_offset % 16u) / 4u)]);
+  float2x3 v_5 = v_1((16u + start_byte_offset));
+  S v_6 = {v_4, v_5, asint(u[((64u + start_byte_offset) / 16u)][(((64u + start_byte_offset) % 16u) / 4u)])};
+  return v_6;
+}
+
+typedef S ary_ret[4];
+ary_ret v_7(uint start_byte_offset) {
+  S a[4] = (S[4])0;
+  {
+    uint v_8 = 0u;
+    v_8 = 0u;
+    while(true) {
+      uint v_9 = v_8;
+      if ((v_9 >= 4u)) {
+        break;
+      }
+      S v_10 = v_3((start_byte_offset + (v_9 * 128u)));
+      a[v_9] = v_10;
+      {
+        v_8 = (v_9 + 1u);
+      }
+      continue;
+    }
+  }
+  S v_11[4] = a;
+  return v_11;
+}
+
+[numthreads(1, 1, 1)]
+void f() {
+  S v_12[4] = v_7(0u);
+  a(v_12);
+  S v_13 = v_3(256u);
+  b(v_13);
+  c(v_1(272u));
+  d(asfloat(u[2u].xyz).zxy);
+  e(asfloat(u[2u].xyz).zxy[0u]);
+}
+
diff --git a/test/tint/buffer/uniform/std140/struct/mat2x3_f32/to_private.wgsl.expected.ir.dxc.hlsl b/test/tint/buffer/uniform/std140/struct/mat2x3_f32/to_private.wgsl.expected.ir.dxc.hlsl
index 3f437dc..212d85f 100644
--- a/test/tint/buffer/uniform/std140/struct/mat2x3_f32/to_private.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/buffer/uniform/std140/struct/mat2x3_f32/to_private.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,56 @@
-SKIP: FAILED
+struct S {
+  int before;
+  float2x3 m;
+  int after;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Access
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+
+cbuffer cbuffer_u : register(b0) {
+  uint4 u[32];
+};
+static S p[4] = (S[4])0;
+float2x3 v(uint start_byte_offset) {
+  float3 v_1 = asfloat(u[(start_byte_offset / 16u)].xyz);
+  return float2x3(v_1, asfloat(u[((16u + start_byte_offset) / 16u)].xyz));
+}
+
+S v_2(uint start_byte_offset) {
+  int v_3 = asint(u[(start_byte_offset / 16u)][((start_byte_offset % 16u) / 4u)]);
+  float2x3 v_4 = v((16u + start_byte_offset));
+  S v_5 = {v_3, v_4, asint(u[((64u + start_byte_offset) / 16u)][(((64u + start_byte_offset) % 16u) / 4u)])};
+  return v_5;
+}
+
+typedef S ary_ret[4];
+ary_ret v_6(uint start_byte_offset) {
+  S a[4] = (S[4])0;
+  {
+    uint v_7 = 0u;
+    v_7 = 0u;
+    while(true) {
+      uint v_8 = v_7;
+      if ((v_8 >= 4u)) {
+        break;
+      }
+      S v_9 = v_2((start_byte_offset + (v_8 * 128u)));
+      a[v_8] = v_9;
+      {
+        v_7 = (v_8 + 1u);
+      }
+      continue;
+    }
+  }
+  S v_10[4] = a;
+  return v_10;
+}
+
+[numthreads(1, 1, 1)]
+void f() {
+  S v_11[4] = v_6(0u);
+  p = v_11;
+  S v_12 = v_2(256u);
+  p[1] = v_12;
+  p[3].m = v(272u);
+  p[1].m[0] = asfloat(u[2u].xyz).zxy;
+}
+
diff --git a/test/tint/buffer/uniform/std140/struct/mat2x3_f32/to_private.wgsl.expected.ir.fxc.hlsl b/test/tint/buffer/uniform/std140/struct/mat2x3_f32/to_private.wgsl.expected.ir.fxc.hlsl
index 3f437dc..212d85f 100644
--- a/test/tint/buffer/uniform/std140/struct/mat2x3_f32/to_private.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/buffer/uniform/std140/struct/mat2x3_f32/to_private.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,56 @@
-SKIP: FAILED
+struct S {
+  int before;
+  float2x3 m;
+  int after;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Access
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+
+cbuffer cbuffer_u : register(b0) {
+  uint4 u[32];
+};
+static S p[4] = (S[4])0;
+float2x3 v(uint start_byte_offset) {
+  float3 v_1 = asfloat(u[(start_byte_offset / 16u)].xyz);
+  return float2x3(v_1, asfloat(u[((16u + start_byte_offset) / 16u)].xyz));
+}
+
+S v_2(uint start_byte_offset) {
+  int v_3 = asint(u[(start_byte_offset / 16u)][((start_byte_offset % 16u) / 4u)]);
+  float2x3 v_4 = v((16u + start_byte_offset));
+  S v_5 = {v_3, v_4, asint(u[((64u + start_byte_offset) / 16u)][(((64u + start_byte_offset) % 16u) / 4u)])};
+  return v_5;
+}
+
+typedef S ary_ret[4];
+ary_ret v_6(uint start_byte_offset) {
+  S a[4] = (S[4])0;
+  {
+    uint v_7 = 0u;
+    v_7 = 0u;
+    while(true) {
+      uint v_8 = v_7;
+      if ((v_8 >= 4u)) {
+        break;
+      }
+      S v_9 = v_2((start_byte_offset + (v_8 * 128u)));
+      a[v_8] = v_9;
+      {
+        v_7 = (v_8 + 1u);
+      }
+      continue;
+    }
+  }
+  S v_10[4] = a;
+  return v_10;
+}
+
+[numthreads(1, 1, 1)]
+void f() {
+  S v_11[4] = v_6(0u);
+  p = v_11;
+  S v_12 = v_2(256u);
+  p[1] = v_12;
+  p[3].m = v(272u);
+  p[1].m[0] = asfloat(u[2u].xyz).zxy;
+}
+
diff --git a/test/tint/buffer/uniform/std140/struct/mat2x3_f32/to_storage.wgsl.expected.ir.dxc.hlsl b/test/tint/buffer/uniform/std140/struct/mat2x3_f32/to_storage.wgsl.expected.ir.dxc.hlsl
index 3f437dc..71b5de2 100644
--- a/test/tint/buffer/uniform/std140/struct/mat2x3_f32/to_storage.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/buffer/uniform/std140/struct/mat2x3_f32/to_storage.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,86 @@
-SKIP: FAILED
+struct S {
+  int before;
+  float2x3 m;
+  int after;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Access
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+
+cbuffer cbuffer_u : register(b0) {
+  uint4 u[32];
+};
+RWByteAddressBuffer s : register(u1);
+void v(uint offset, float2x3 obj) {
+  s.Store3((offset + 0u), asuint(obj[0u]));
+  s.Store3((offset + 16u), asuint(obj[1u]));
+}
+
+float2x3 v_1(uint start_byte_offset) {
+  float3 v_2 = asfloat(u[(start_byte_offset / 16u)].xyz);
+  return float2x3(v_2, asfloat(u[((16u + start_byte_offset) / 16u)].xyz));
+}
+
+void v_3(uint offset, S obj) {
+  s.Store((offset + 0u), asuint(obj.before));
+  v((offset + 16u), obj.m);
+  s.Store((offset + 64u), asuint(obj.after));
+}
+
+S v_4(uint start_byte_offset) {
+  int v_5 = asint(u[(start_byte_offset / 16u)][((start_byte_offset % 16u) / 4u)]);
+  float2x3 v_6 = v_1((16u + start_byte_offset));
+  S v_7 = {v_5, v_6, asint(u[((64u + start_byte_offset) / 16u)][(((64u + start_byte_offset) % 16u) / 4u)])};
+  return v_7;
+}
+
+void v_8(uint offset, S obj[4]) {
+  {
+    uint v_9 = 0u;
+    v_9 = 0u;
+    while(true) {
+      uint v_10 = v_9;
+      if ((v_10 >= 4u)) {
+        break;
+      }
+      S v_11 = obj[v_10];
+      v_3((offset + (v_10 * 128u)), v_11);
+      {
+        v_9 = (v_10 + 1u);
+      }
+      continue;
+    }
+  }
+}
+
+typedef S ary_ret[4];
+ary_ret v_12(uint start_byte_offset) {
+  S a[4] = (S[4])0;
+  {
+    uint v_13 = 0u;
+    v_13 = 0u;
+    while(true) {
+      uint v_14 = v_13;
+      if ((v_14 >= 4u)) {
+        break;
+      }
+      S v_15 = v_4((start_byte_offset + (v_14 * 128u)));
+      a[v_14] = v_15;
+      {
+        v_13 = (v_14 + 1u);
+      }
+      continue;
+    }
+  }
+  S v_16[4] = a;
+  return v_16;
+}
+
+[numthreads(1, 1, 1)]
+void f() {
+  S v_17[4] = v_12(0u);
+  v_8(0u, v_17);
+  S v_18 = v_4(256u);
+  v_3(128u, v_18);
+  v(400u, v_1(272u));
+  s.Store3(144u, asuint(asfloat(u[2u].xyz).zxy));
+}
+
diff --git a/test/tint/buffer/uniform/std140/struct/mat2x3_f32/to_storage.wgsl.expected.ir.fxc.hlsl b/test/tint/buffer/uniform/std140/struct/mat2x3_f32/to_storage.wgsl.expected.ir.fxc.hlsl
index 3f437dc..71b5de2 100644
--- a/test/tint/buffer/uniform/std140/struct/mat2x3_f32/to_storage.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/buffer/uniform/std140/struct/mat2x3_f32/to_storage.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,86 @@
-SKIP: FAILED
+struct S {
+  int before;
+  float2x3 m;
+  int after;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Access
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+
+cbuffer cbuffer_u : register(b0) {
+  uint4 u[32];
+};
+RWByteAddressBuffer s : register(u1);
+void v(uint offset, float2x3 obj) {
+  s.Store3((offset + 0u), asuint(obj[0u]));
+  s.Store3((offset + 16u), asuint(obj[1u]));
+}
+
+float2x3 v_1(uint start_byte_offset) {
+  float3 v_2 = asfloat(u[(start_byte_offset / 16u)].xyz);
+  return float2x3(v_2, asfloat(u[((16u + start_byte_offset) / 16u)].xyz));
+}
+
+void v_3(uint offset, S obj) {
+  s.Store((offset + 0u), asuint(obj.before));
+  v((offset + 16u), obj.m);
+  s.Store((offset + 64u), asuint(obj.after));
+}
+
+S v_4(uint start_byte_offset) {
+  int v_5 = asint(u[(start_byte_offset / 16u)][((start_byte_offset % 16u) / 4u)]);
+  float2x3 v_6 = v_1((16u + start_byte_offset));
+  S v_7 = {v_5, v_6, asint(u[((64u + start_byte_offset) / 16u)][(((64u + start_byte_offset) % 16u) / 4u)])};
+  return v_7;
+}
+
+void v_8(uint offset, S obj[4]) {
+  {
+    uint v_9 = 0u;
+    v_9 = 0u;
+    while(true) {
+      uint v_10 = v_9;
+      if ((v_10 >= 4u)) {
+        break;
+      }
+      S v_11 = obj[v_10];
+      v_3((offset + (v_10 * 128u)), v_11);
+      {
+        v_9 = (v_10 + 1u);
+      }
+      continue;
+    }
+  }
+}
+
+typedef S ary_ret[4];
+ary_ret v_12(uint start_byte_offset) {
+  S a[4] = (S[4])0;
+  {
+    uint v_13 = 0u;
+    v_13 = 0u;
+    while(true) {
+      uint v_14 = v_13;
+      if ((v_14 >= 4u)) {
+        break;
+      }
+      S v_15 = v_4((start_byte_offset + (v_14 * 128u)));
+      a[v_14] = v_15;
+      {
+        v_13 = (v_14 + 1u);
+      }
+      continue;
+    }
+  }
+  S v_16[4] = a;
+  return v_16;
+}
+
+[numthreads(1, 1, 1)]
+void f() {
+  S v_17[4] = v_12(0u);
+  v_8(0u, v_17);
+  S v_18 = v_4(256u);
+  v_3(128u, v_18);
+  v(400u, v_1(272u));
+  s.Store3(144u, asuint(asfloat(u[2u].xyz).zxy));
+}
+
diff --git a/test/tint/buffer/uniform/std140/struct/mat2x3_f32/to_workgroup.wgsl.expected.ir.dxc.hlsl b/test/tint/buffer/uniform/std140/struct/mat2x3_f32/to_workgroup.wgsl.expected.ir.dxc.hlsl
index 3f437dc..e886413 100644
--- a/test/tint/buffer/uniform/std140/struct/mat2x3_f32/to_workgroup.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/buffer/uniform/std140/struct/mat2x3_f32/to_workgroup.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,81 @@
-SKIP: FAILED
+struct S {
+  int before;
+  float2x3 m;
+  int after;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Access
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct f_inputs {
+  uint tint_local_index : SV_GroupIndex;
+};
+
+
+cbuffer cbuffer_u : register(b0) {
+  uint4 u[32];
+};
+groupshared S w[4];
+float2x3 v(uint start_byte_offset) {
+  float3 v_1 = asfloat(u[(start_byte_offset / 16u)].xyz);
+  return float2x3(v_1, asfloat(u[((16u + start_byte_offset) / 16u)].xyz));
+}
+
+S v_2(uint start_byte_offset) {
+  int v_3 = asint(u[(start_byte_offset / 16u)][((start_byte_offset % 16u) / 4u)]);
+  float2x3 v_4 = v((16u + start_byte_offset));
+  S v_5 = {v_3, v_4, asint(u[((64u + start_byte_offset) / 16u)][(((64u + start_byte_offset) % 16u) / 4u)])};
+  return v_5;
+}
+
+typedef S ary_ret[4];
+ary_ret v_6(uint start_byte_offset) {
+  S a[4] = (S[4])0;
+  {
+    uint v_7 = 0u;
+    v_7 = 0u;
+    while(true) {
+      uint v_8 = v_7;
+      if ((v_8 >= 4u)) {
+        break;
+      }
+      S v_9 = v_2((start_byte_offset + (v_8 * 128u)));
+      a[v_8] = v_9;
+      {
+        v_7 = (v_8 + 1u);
+      }
+      continue;
+    }
+  }
+  S v_10[4] = a;
+  return v_10;
+}
+
+void f_inner(uint tint_local_index) {
+  {
+    uint v_11 = 0u;
+    v_11 = tint_local_index;
+    while(true) {
+      uint v_12 = v_11;
+      if ((v_12 >= 4u)) {
+        break;
+      }
+      S v_13 = (S)0;
+      w[v_12] = v_13;
+      {
+        v_11 = (v_12 + 1u);
+      }
+      continue;
+    }
+  }
+  GroupMemoryBarrierWithGroupSync();
+  S v_14[4] = v_6(0u);
+  w = v_14;
+  S v_15 = v_2(256u);
+  w[1] = v_15;
+  w[3].m = v(272u);
+  w[1].m[0] = asfloat(u[2u].xyz).zxy;
+}
+
+[numthreads(1, 1, 1)]
+void f(f_inputs inputs) {
+  f_inner(inputs.tint_local_index);
+}
+
diff --git a/test/tint/buffer/uniform/std140/struct/mat2x3_f32/to_workgroup.wgsl.expected.ir.fxc.hlsl b/test/tint/buffer/uniform/std140/struct/mat2x3_f32/to_workgroup.wgsl.expected.ir.fxc.hlsl
index 3f437dc..e886413 100644
--- a/test/tint/buffer/uniform/std140/struct/mat2x3_f32/to_workgroup.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/buffer/uniform/std140/struct/mat2x3_f32/to_workgroup.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,81 @@
-SKIP: FAILED
+struct S {
+  int before;
+  float2x3 m;
+  int after;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Access
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct f_inputs {
+  uint tint_local_index : SV_GroupIndex;
+};
+
+
+cbuffer cbuffer_u : register(b0) {
+  uint4 u[32];
+};
+groupshared S w[4];
+float2x3 v(uint start_byte_offset) {
+  float3 v_1 = asfloat(u[(start_byte_offset / 16u)].xyz);
+  return float2x3(v_1, asfloat(u[((16u + start_byte_offset) / 16u)].xyz));
+}
+
+S v_2(uint start_byte_offset) {
+  int v_3 = asint(u[(start_byte_offset / 16u)][((start_byte_offset % 16u) / 4u)]);
+  float2x3 v_4 = v((16u + start_byte_offset));
+  S v_5 = {v_3, v_4, asint(u[((64u + start_byte_offset) / 16u)][(((64u + start_byte_offset) % 16u) / 4u)])};
+  return v_5;
+}
+
+typedef S ary_ret[4];
+ary_ret v_6(uint start_byte_offset) {
+  S a[4] = (S[4])0;
+  {
+    uint v_7 = 0u;
+    v_7 = 0u;
+    while(true) {
+      uint v_8 = v_7;
+      if ((v_8 >= 4u)) {
+        break;
+      }
+      S v_9 = v_2((start_byte_offset + (v_8 * 128u)));
+      a[v_8] = v_9;
+      {
+        v_7 = (v_8 + 1u);
+      }
+      continue;
+    }
+  }
+  S v_10[4] = a;
+  return v_10;
+}
+
+void f_inner(uint tint_local_index) {
+  {
+    uint v_11 = 0u;
+    v_11 = tint_local_index;
+    while(true) {
+      uint v_12 = v_11;
+      if ((v_12 >= 4u)) {
+        break;
+      }
+      S v_13 = (S)0;
+      w[v_12] = v_13;
+      {
+        v_11 = (v_12 + 1u);
+      }
+      continue;
+    }
+  }
+  GroupMemoryBarrierWithGroupSync();
+  S v_14[4] = v_6(0u);
+  w = v_14;
+  S v_15 = v_2(256u);
+  w[1] = v_15;
+  w[3].m = v(272u);
+  w[1].m[0] = asfloat(u[2u].xyz).zxy;
+}
+
+[numthreads(1, 1, 1)]
+void f(f_inputs inputs) {
+  f_inner(inputs.tint_local_index);
+}
+
diff --git a/test/tint/buffer/uniform/std140/struct/mat2x4_f16/dynamic_index_via_ptr.wgsl.expected.ir.dxc.hlsl b/test/tint/buffer/uniform/std140/struct/mat2x4_f16/dynamic_index_via_ptr.wgsl.expected.ir.dxc.hlsl
index 3f437dc..d63f08a 100644
--- a/test/tint/buffer/uniform/std140/struct/mat2x4_f16/dynamic_index_via_ptr.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/buffer/uniform/std140/struct/mat2x4_f16/dynamic_index_via_ptr.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,275 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Access
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+
+enable f16;
+
+struct Inner {
+  @size(64)
+  m : mat2x4<f16>,
+}
+
+struct Outer {
+  a : array<Inner, 4>,
+}
+
+@group(0) @binding(0) var<uniform> a : array<Outer, 4>;
+
+var<private> counter = 0;
+
+fn i() -> i32 {
+  counter++;
+  return counter;
+}
+
+@compute @workgroup_size(1)
+fn f() {
+  let p_a = &(a);
+  let p_a_i = &((*(p_a))[i()]);
+  let p_a_i_a = &((*(p_a_i)).a);
+  let p_a_i_a_i = &((*(p_a_i_a))[i()]);
+  let p_a_i_a_i_m = &((*(p_a_i_a_i)).m);
+  let p_a_i_a_i_m_i = &((*(p_a_i_a_i_m))[i()]);
+  let l_a : array<Outer, 4> = *(p_a);
+  let l_a_i : Outer = *(p_a_i);
+  let l_a_i_a : array<Inner, 4> = *(p_a_i_a);
+  let l_a_i_a_i : Inner = *(p_a_i_a_i);
+  let l_a_i_a_i_m : mat2x4<f16> = *(p_a_i_a_i_m);
+  let l_a_i_a_i_m_i : vec4<f16> = *(p_a_i_a_i_m_i);
+  let l_a_i_a_i_m_i_i : f16 = (*(p_a_i_a_i_m_i))[i()];
+}
+
+Failed to generate: :40:24 error: binary: %26 is not in scope
+    %25:u32 = add %24, %26
+                       ^^^
+
+:24:3 note: in block
+  $B3: {
+  ^^^
+
+:61:5 note: %26 declared here
+    %26:u32 = mul %49, 2u
+    ^^^^^^^
+
+:45:24 error: binary: %26 is not in scope
+    %32:u32 = add %31, %26
+                       ^^^
+
+:24:3 note: in block
+  $B3: {
+  ^^^
+
+:61:5 note: %26 declared here
+    %26:u32 = mul %49, 2u
+    ^^^^^^^
+
+:50:24 error: binary: %26 is not in scope
+    %38:u32 = add %37, %26
+                       ^^^
+
+:24:3 note: in block
+  $B3: {
+  ^^^
+
+:61:5 note: %26 declared here
+    %26:u32 = mul %49, 2u
+    ^^^^^^^
+
+:61:5 error: binary: no matching overload for 'operator * (i32, u32)'
+
+9 candidate operators:
+ • 'operator * (T  ✓ , T  ✗ ) -> T' where:
+      ✓  'T' is 'f32', 'i32', 'u32' or 'f16'
+ • 'operator * (vecN<T>  ✗ , T  ✓ ) -> vecN<T>' where:
+      ✓  'T' is 'f32', 'i32', 'u32' or 'f16'
+ • 'operator * (T  ✓ , vecN<T>  ✗ ) -> vecN<T>' where:
+      ✓  'T' is 'f32', 'i32', 'u32' or 'f16'
+ • 'operator * (T  ✗ , matNxM<T>  ✗ ) -> matNxM<T>' where:
+      ✗  'T' is 'f32' or 'f16'
+ • 'operator * (matNxM<T>  ✗ , T  ✗ ) -> matNxM<T>' where:
+      ✗  'T' is 'f32' or 'f16'
+ • 'operator * (vecN<T>  ✗ , vecN<T>  ✗ ) -> vecN<T>' where:
+      ✗  'T' is 'f32', 'i32', 'u32' or 'f16'
+ • 'operator * (matCxR<T>  ✗ , vecC<T>  ✗ ) -> vecR<T>' where:
+      ✗  'T' is 'f32' or 'f16'
+ • 'operator * (vecR<T>  ✗ , matCxR<T>  ✗ ) -> vecC<T>' where:
+      ✗  'T' is 'f32' or 'f16'
+ • 'operator * (matKxR<T>  ✗ , matCxK<T>  ✗ ) -> matCxR<T>' where:
+      ✗  'T' is 'f32' or 'f16'
+
+    %26:u32 = mul %49, 2u
+    ^^^^^^^^^^^^^^^^^^^^^
+
+:24:3 note: in block
+  $B3: {
+  ^^^
+
+note: # Disassembly
+Inner = struct @align(8) {
+  m:mat2x4<f16> @offset(0)
+}
+
+Outer = struct @align(8) {
+  a:array<Inner, 4> @offset(0)
+}
+
+$B1: {  # root
+  %a:ptr<uniform, array<vec4<u32>, 64>, read> = var @binding_point(0, 0)
+  %counter:ptr<private, i32, read_write> = var, 0i
+}
+
+%i = func():i32 {
+  $B2: {
+    %4:i32 = load %counter
+    %5:i32 = add %4, 1i
+    store %counter, %5
+    %6:i32 = load %counter
+    ret %6
+  }
+}
+%f = @compute @workgroup_size(1, 1, 1) func():void {
+  $B3: {
+    %8:i32 = call %i
+    %9:u32 = convert %8
+    %10:u32 = mul 256u, %9
+    %11:i32 = call %i
+    %12:u32 = convert %11
+    %13:u32 = mul 64u, %12
+    %14:i32 = call %i
+    %15:u32 = convert %14
+    %16:u32 = mul 8u, %15
+    %17:array<Outer, 4> = call %18, 0u
+    %l_a:array<Outer, 4> = let %17
+    %20:Outer = call %21, %10
+    %l_a_i:Outer = let %20
+    %23:u32 = add %10, %13
+    %24:u32 = add %23, %16
+    %25:u32 = add %24, %26
+    %27:array<Inner, 4> = call %28, %25
+    %l_a_i_a:array<Inner, 4> = let %27
+    %30:u32 = add %10, %13
+    %31:u32 = add %30, %16
+    %32:u32 = add %31, %26
+    %33:Inner = call %34, %32
+    %l_a_i_a_i:Inner = let %33
+    %36:u32 = add %10, %13
+    %37:u32 = add %36, %16
+    %38:u32 = add %37, %26
+    %39:mat2x4<f16> = call %40, %38
+    %l_a_i_a_i_m:mat2x4<f16> = let %39
+    %42:u32 = add %10, %13
+    %43:u32 = add %42, %16
+    %44:u32 = div %43, 16u
+    %45:ptr<uniform, vec4<u32>, read> = access %a, %44
+    %46:vec4<u32> = load %45
+    %47:vec4<f16> = bitcast %46
+    %l_a_i_a_i_m_i:vec4<f16> = let %47
+    %49:i32 = call %i
+    %26:u32 = mul %49, 2u
+    %50:u32 = add %10, %13
+    %51:u32 = add %50, %16
+    %52:u32 = add %51, %26
+    %53:u32 = div %52, 16u
+    %54:ptr<uniform, vec4<u32>, read> = access %a, %53
+    %55:u32 = mod %52, 16u
+    %56:u32 = div %55, 4u
+    %57:u32 = load_vector_element %54, %56
+    %58:u32 = mod %52, 4u
+    %59:bool = eq %58, 0u
+    %60:u32 = hlsl.ternary 16u, 0u, %59
+    %61:u32 = shr %57, %60
+    %62:f32 = hlsl.f16tof32 %61
+    %63:f16 = convert %62
+    %l_a_i_a_i_m_i_i:f16 = let %63
+    ret
+  }
+}
+%21 = func(%start_byte_offset:u32):Outer {
+  $B4: {
+    %66:array<Inner, 4> = call %28, %start_byte_offset
+    %67:Outer = construct %66
+    ret %67
+  }
+}
+%28 = func(%start_byte_offset_1:u32):array<Inner, 4> {  # %start_byte_offset_1: 'start_byte_offset'
+  $B5: {
+    %a_1:ptr<function, array<Inner, 4>, read_write> = var, array<Inner, 4>(Inner(mat2x4<f16>(vec4<f16>(0.0h))))  # %a_1: 'a'
+    loop [i: $B6, b: $B7, c: $B8] {  # loop_1
+      $B6: {  # initializer
+        next_iteration 0u  # -> $B7
+      }
+      $B7 (%idx:u32): {  # body
+        %71:bool = gte %idx, 4u
+        if %71 [t: $B9] {  # if_1
+          $B9: {  # true
+            exit_loop  # loop_1
+          }
+        }
+        %72:u32 = mul %idx, 64u
+        %73:u32 = add %start_byte_offset_1, %72
+        %74:ptr<function, Inner, read_write> = access %a_1, %idx
+        %75:Inner = call %34, %73
+        store %74, %75
+        continue  # -> $B8
+      }
+      $B8: {  # continuing
+        %76:u32 = add %idx, 1u
+        next_iteration %76  # -> $B7
+      }
+    }
+    %77:array<Inner, 4> = load %a_1
+    ret %77
+  }
+}
+%34 = func(%start_byte_offset_2:u32):Inner {  # %start_byte_offset_2: 'start_byte_offset'
+  $B10: {
+    %79:mat2x4<f16> = call %40, %start_byte_offset_2
+    %80:Inner = construct %79
+    ret %80
+  }
+}
+%40 = func(%start_byte_offset_3:u32):mat2x4<f16> {  # %start_byte_offset_3: 'start_byte_offset'
+  $B11: {
+    %82:u32 = div %start_byte_offset_3, 16u
+    %83:ptr<uniform, vec4<u32>, read> = access %a, %82
+    %84:vec4<u32> = load %83
+    %85:vec4<f16> = bitcast %84
+    %86:u32 = add 8u, %start_byte_offset_3
+    %87:u32 = div %86, 16u
+    %88:ptr<uniform, vec4<u32>, read> = access %a, %87
+    %89:vec4<u32> = load %88
+    %90:vec4<f16> = bitcast %89
+    %91:mat2x4<f16> = construct %85, %90
+    ret %91
+  }
+}
+%18 = func(%start_byte_offset_4:u32):array<Outer, 4> {  # %start_byte_offset_4: 'start_byte_offset'
+  $B12: {
+    %a_2:ptr<function, array<Outer, 4>, read_write> = var, array<Outer, 4>(Outer(array<Inner, 4>(Inner(mat2x4<f16>(vec4<f16>(0.0h))))))  # %a_2: 'a'
+    loop [i: $B13, b: $B14, c: $B15] {  # loop_2
+      $B13: {  # initializer
+        next_iteration 0u  # -> $B14
+      }
+      $B14 (%idx_1:u32): {  # body
+        %95:bool = gte %idx_1, 4u
+        if %95 [t: $B16] {  # if_2
+          $B16: {  # true
+            exit_loop  # loop_2
+          }
+        }
+        %96:u32 = mul %idx_1, 256u
+        %97:u32 = add %start_byte_offset_4, %96
+        %98:ptr<function, Outer, read_write> = access %a_2, %idx_1
+        %99:Outer = call %21, %97
+        store %98, %99
+        continue  # -> $B15
+      }
+      $B15: {  # continuing
+        %100:u32 = add %idx_1, 1u
+        next_iteration %100  # -> $B14
+      }
+    }
+    %101:array<Outer, 4> = load %a_2
+    ret %101
+  }
+}
+
diff --git a/test/tint/buffer/uniform/std140/struct/mat2x4_f16/dynamic_index_via_ptr.wgsl.expected.ir.fxc.hlsl b/test/tint/buffer/uniform/std140/struct/mat2x4_f16/dynamic_index_via_ptr.wgsl.expected.ir.fxc.hlsl
index 3f437dc..4acd47f 100644
--- a/test/tint/buffer/uniform/std140/struct/mat2x4_f16/dynamic_index_via_ptr.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/buffer/uniform/std140/struct/mat2x4_f16/dynamic_index_via_ptr.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,275 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Access
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+
+enable f16;
+
+struct Inner {
+  @size(64)
+  m : mat2x4<f16>,
+}
+
+struct Outer {
+  a : array<Inner, 4>,
+}
+
+@group(0) @binding(0) var<uniform> a : array<Outer, 4>;
+
+var<private> counter = 0;
+
+fn i() -> i32 {
+  counter++;
+  return counter;
+}
+
+@compute @workgroup_size(1)
+fn f() {
+  let p_a = &(a);
+  let p_a_i = &((*(p_a))[i()]);
+  let p_a_i_a = &((*(p_a_i)).a);
+  let p_a_i_a_i = &((*(p_a_i_a))[i()]);
+  let p_a_i_a_i_m = &((*(p_a_i_a_i)).m);
+  let p_a_i_a_i_m_i = &((*(p_a_i_a_i_m))[i()]);
+  let l_a : array<Outer, 4> = *(p_a);
+  let l_a_i : Outer = *(p_a_i);
+  let l_a_i_a : array<Inner, 4> = *(p_a_i_a);
+  let l_a_i_a_i : Inner = *(p_a_i_a_i);
+  let l_a_i_a_i_m : mat2x4<f16> = *(p_a_i_a_i_m);
+  let l_a_i_a_i_m_i : vec4<f16> = *(p_a_i_a_i_m_i);
+  let l_a_i_a_i_m_i_i : f16 = (*(p_a_i_a_i_m_i))[i()];
+}
+
+Failed to generate: :38:24 error: binary: %23 is not in scope
+    %22:u32 = add %21, %23
+                       ^^^
+
+:24:3 note: in block
+  $B3: {
+  ^^^
+
+:61:5 note: %23 declared here
+    %23:u32 = mul %49, 2u
+    ^^^^^^^
+
+:45:24 error: binary: %23 is not in scope
+    %32:u32 = add %31, %23
+                       ^^^
+
+:24:3 note: in block
+  $B3: {
+  ^^^
+
+:61:5 note: %23 declared here
+    %23:u32 = mul %49, 2u
+    ^^^^^^^
+
+:50:24 error: binary: %23 is not in scope
+    %38:u32 = add %37, %23
+                       ^^^
+
+:24:3 note: in block
+  $B3: {
+  ^^^
+
+:61:5 note: %23 declared here
+    %23:u32 = mul %49, 2u
+    ^^^^^^^
+
+:61:5 error: binary: no matching overload for 'operator * (i32, u32)'
+
+9 candidate operators:
+ • 'operator * (T  ✓ , T  ✗ ) -> T' where:
+      ✓  'T' is 'f32', 'i32', 'u32' or 'f16'
+ • 'operator * (vecN<T>  ✗ , T  ✓ ) -> vecN<T>' where:
+      ✓  'T' is 'f32', 'i32', 'u32' or 'f16'
+ • 'operator * (T  ✓ , vecN<T>  ✗ ) -> vecN<T>' where:
+      ✓  'T' is 'f32', 'i32', 'u32' or 'f16'
+ • 'operator * (T  ✗ , matNxM<T>  ✗ ) -> matNxM<T>' where:
+      ✗  'T' is 'f32' or 'f16'
+ • 'operator * (matNxM<T>  ✗ , T  ✗ ) -> matNxM<T>' where:
+      ✗  'T' is 'f32' or 'f16'
+ • 'operator * (vecN<T>  ✗ , vecN<T>  ✗ ) -> vecN<T>' where:
+      ✗  'T' is 'f32', 'i32', 'u32' or 'f16'
+ • 'operator * (matCxR<T>  ✗ , vecC<T>  ✗ ) -> vecR<T>' where:
+      ✗  'T' is 'f32' or 'f16'
+ • 'operator * (vecR<T>  ✗ , matCxR<T>  ✗ ) -> vecC<T>' where:
+      ✗  'T' is 'f32' or 'f16'
+ • 'operator * (matKxR<T>  ✗ , matCxK<T>  ✗ ) -> matCxR<T>' where:
+      ✗  'T' is 'f32' or 'f16'
+
+    %23:u32 = mul %49, 2u
+    ^^^^^^^^^^^^^^^^^^^^^
+
+:24:3 note: in block
+  $B3: {
+  ^^^
+
+note: # Disassembly
+Inner = struct @align(8) {
+  m:mat2x4<f16> @offset(0)
+}
+
+Outer = struct @align(8) {
+  a:array<Inner, 4> @offset(0)
+}
+
+$B1: {  # root
+  %a:ptr<uniform, array<vec4<u32>, 64>, read> = var @binding_point(0, 0)
+  %counter:ptr<private, i32, read_write> = var, 0i
+}
+
+%i = func():i32 {
+  $B2: {
+    %4:i32 = load %counter
+    %5:i32 = add %4, 1i
+    store %counter, %5
+    %6:i32 = load %counter
+    ret %6
+  }
+}
+%f = @compute @workgroup_size(1, 1, 1) func():void {
+  $B3: {
+    %8:i32 = call %i
+    %9:u32 = convert %8
+    %10:u32 = mul 256u, %9
+    %11:i32 = call %i
+    %12:u32 = convert %11
+    %13:u32 = mul 64u, %12
+    %14:i32 = call %i
+    %15:u32 = convert %14
+    %16:u32 = mul 8u, %15
+    %17:array<Outer, 4> = call %18, 0u
+    %l_a:array<Outer, 4> = let %17
+    %20:u32 = add %10, %13
+    %21:u32 = add %20, %16
+    %22:u32 = add %21, %23
+    %24:Outer = call %25, %22
+    %l_a_i:Outer = let %24
+    %27:array<Inner, 4> = call %28, %10
+    %l_a_i_a:array<Inner, 4> = let %27
+    %30:u32 = add %10, %13
+    %31:u32 = add %30, %16
+    %32:u32 = add %31, %23
+    %33:Inner = call %34, %32
+    %l_a_i_a_i:Inner = let %33
+    %36:u32 = add %10, %13
+    %37:u32 = add %36, %16
+    %38:u32 = add %37, %23
+    %39:mat2x4<f16> = call %40, %38
+    %l_a_i_a_i_m:mat2x4<f16> = let %39
+    %42:u32 = add %10, %13
+    %43:u32 = add %42, %16
+    %44:u32 = div %43, 16u
+    %45:ptr<uniform, vec4<u32>, read> = access %a, %44
+    %46:vec4<u32> = load %45
+    %47:vec4<f16> = bitcast %46
+    %l_a_i_a_i_m_i:vec4<f16> = let %47
+    %49:i32 = call %i
+    %23:u32 = mul %49, 2u
+    %50:u32 = add %10, %13
+    %51:u32 = add %50, %16
+    %52:u32 = add %51, %23
+    %53:u32 = div %52, 16u
+    %54:ptr<uniform, vec4<u32>, read> = access %a, %53
+    %55:u32 = mod %52, 16u
+    %56:u32 = div %55, 4u
+    %57:u32 = load_vector_element %54, %56
+    %58:u32 = mod %52, 4u
+    %59:bool = eq %58, 0u
+    %60:u32 = hlsl.ternary 16u, 0u, %59
+    %61:u32 = shr %57, %60
+    %62:f32 = hlsl.f16tof32 %61
+    %63:f16 = convert %62
+    %l_a_i_a_i_m_i_i:f16 = let %63
+    ret
+  }
+}
+%28 = func(%start_byte_offset:u32):array<Inner, 4> {
+  $B4: {
+    %a_1:ptr<function, array<Inner, 4>, read_write> = var, array<Inner, 4>(Inner(mat2x4<f16>(vec4<f16>(0.0h))))  # %a_1: 'a'
+    loop [i: $B5, b: $B6, c: $B7] {  # loop_1
+      $B5: {  # initializer
+        next_iteration 0u  # -> $B6
+      }
+      $B6 (%idx:u32): {  # body
+        %68:bool = gte %idx, 4u
+        if %68 [t: $B8] {  # if_1
+          $B8: {  # true
+            exit_loop  # loop_1
+          }
+        }
+        %69:u32 = mul %idx, 64u
+        %70:u32 = add %start_byte_offset, %69
+        %71:ptr<function, Inner, read_write> = access %a_1, %idx
+        %72:Inner = call %34, %70
+        store %71, %72
+        continue  # -> $B7
+      }
+      $B7: {  # continuing
+        %73:u32 = add %idx, 1u
+        next_iteration %73  # -> $B6
+      }
+    }
+    %74:array<Inner, 4> = load %a_1
+    ret %74
+  }
+}
+%34 = func(%start_byte_offset_1:u32):Inner {  # %start_byte_offset_1: 'start_byte_offset'
+  $B9: {
+    %76:mat2x4<f16> = call %40, %start_byte_offset_1
+    %77:Inner = construct %76
+    ret %77
+  }
+}
+%40 = func(%start_byte_offset_2:u32):mat2x4<f16> {  # %start_byte_offset_2: 'start_byte_offset'
+  $B10: {
+    %79:u32 = div %start_byte_offset_2, 16u
+    %80:ptr<uniform, vec4<u32>, read> = access %a, %79
+    %81:vec4<u32> = load %80
+    %82:vec4<f16> = bitcast %81
+    %83:u32 = add 8u, %start_byte_offset_2
+    %84:u32 = div %83, 16u
+    %85:ptr<uniform, vec4<u32>, read> = access %a, %84
+    %86:vec4<u32> = load %85
+    %87:vec4<f16> = bitcast %86
+    %88:mat2x4<f16> = construct %82, %87
+    ret %88
+  }
+}
+%25 = func(%start_byte_offset_3:u32):Outer {  # %start_byte_offset_3: 'start_byte_offset'
+  $B11: {
+    %90:array<Inner, 4> = call %28, %start_byte_offset_3
+    %91:Outer = construct %90
+    ret %91
+  }
+}
+%18 = func(%start_byte_offset_4:u32):array<Outer, 4> {  # %start_byte_offset_4: 'start_byte_offset'
+  $B12: {
+    %a_2:ptr<function, array<Outer, 4>, read_write> = var, array<Outer, 4>(Outer(array<Inner, 4>(Inner(mat2x4<f16>(vec4<f16>(0.0h))))))  # %a_2: 'a'
+    loop [i: $B13, b: $B14, c: $B15] {  # loop_2
+      $B13: {  # initializer
+        next_iteration 0u  # -> $B14
+      }
+      $B14 (%idx_1:u32): {  # body
+        %95:bool = gte %idx_1, 4u
+        if %95 [t: $B16] {  # if_2
+          $B16: {  # true
+            exit_loop  # loop_2
+          }
+        }
+        %96:u32 = mul %idx_1, 256u
+        %97:u32 = add %start_byte_offset_4, %96
+        %98:ptr<function, Outer, read_write> = access %a_2, %idx_1
+        %99:Outer = call %25, %97
+        store %98, %99
+        continue  # -> $B15
+      }
+      $B15: {  # continuing
+        %100:u32 = add %idx_1, 1u
+        next_iteration %100  # -> $B14
+      }
+    }
+    %101:array<Outer, 4> = load %a_2
+    ret %101
+  }
+}
+
diff --git a/test/tint/buffer/uniform/std140/struct/mat2x4_f16/static_index_via_ptr.wgsl.expected.ir.dxc.hlsl b/test/tint/buffer/uniform/std140/struct/mat2x4_f16/static_index_via_ptr.wgsl.expected.ir.dxc.hlsl
index 3f437dc..e6b11b5 100644
--- a/test/tint/buffer/uniform/std140/struct/mat2x4_f16/static_index_via_ptr.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/buffer/uniform/std140/struct/mat2x4_f16/static_index_via_ptr.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,97 @@
-SKIP: FAILED
+struct Inner {
+  matrix<float16_t, 2, 4> m;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Access
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct Outer {
+  Inner a[4];
+};
+
+
+cbuffer cbuffer_a : register(b0) {
+  uint4 a[64];
+};
+vector<float16_t, 4> tint_bitcast_to_f16(uint4 src) {
+  uint4 v = src;
+  uint4 mask = (65535u).xxxx;
+  uint4 shift = (16u).xxxx;
+  float4 t_low = f16tof32((v & mask));
+  float4 t_high = f16tof32(((v >> shift) & mask));
+  float16_t v_1 = float16_t(t_low.x);
+  float16_t v_2 = float16_t(t_high.x);
+  float16_t v_3 = float16_t(t_low.y);
+  return vector<float16_t, 4>(v_1, v_2, v_3, float16_t(t_high.y));
+}
+
+matrix<float16_t, 2, 4> v_4(uint start_byte_offset) {
+  vector<float16_t, 4> v_5 = tint_bitcast_to_f16(a[(start_byte_offset / 16u)]);
+  return matrix<float16_t, 2, 4>(v_5, tint_bitcast_to_f16(a[((8u + start_byte_offset) / 16u)]));
+}
+
+Inner v_6(uint start_byte_offset) {
+  Inner v_7 = {v_4(start_byte_offset)};
+  return v_7;
+}
+
+typedef Inner ary_ret[4];
+ary_ret v_8(uint start_byte_offset) {
+  Inner a[4] = (Inner[4])0;
+  {
+    uint v_9 = 0u;
+    v_9 = 0u;
+    while(true) {
+      uint v_10 = v_9;
+      if ((v_10 >= 4u)) {
+        break;
+      }
+      Inner v_11 = v_6((start_byte_offset + (v_10 * 64u)));
+      a[v_10] = v_11;
+      {
+        v_9 = (v_10 + 1u);
+      }
+      continue;
+    }
+  }
+  Inner v_12[4] = a;
+  return v_12;
+}
+
+Outer v_13(uint start_byte_offset) {
+  Inner v_14[4] = v_8(start_byte_offset);
+  Outer v_15 = {v_14};
+  return v_15;
+}
+
+typedef Outer ary_ret_1[4];
+ary_ret_1 v_16(uint start_byte_offset) {
+  Outer a[4] = (Outer[4])0;
+  {
+    uint v_17 = 0u;
+    v_17 = 0u;
+    while(true) {
+      uint v_18 = v_17;
+      if ((v_18 >= 4u)) {
+        break;
+      }
+      Outer v_19 = v_13((start_byte_offset + (v_18 * 256u)));
+      a[v_18] = v_19;
+      {
+        v_17 = (v_18 + 1u);
+      }
+      continue;
+    }
+  }
+  Outer v_20[4] = a;
+  return v_20;
+}
+
+[numthreads(1, 1, 1)]
+void f() {
+  Outer l_a[4] = v_16(0u);
+  Outer l_a_3 = v_13(768u);
+  Inner l_a_3_a[4] = v_8(904u);
+  Inner l_a_3_a_2 = v_6(904u);
+  matrix<float16_t, 2, 4> l_a_3_a_2_m = v_4(904u);
+  vector<float16_t, 4> l_a_3_a_2_m_1 = tint_bitcast_to_f16(a[56u]);
+  float16_t l_a_3_a_2_m_1_0 = float16_t(f16tof32(a[56u].z));
+}
+
diff --git a/test/tint/buffer/uniform/std140/struct/mat2x4_f16/static_index_via_ptr.wgsl.expected.ir.fxc.hlsl b/test/tint/buffer/uniform/std140/struct/mat2x4_f16/static_index_via_ptr.wgsl.expected.ir.fxc.hlsl
index 3f437dc..0f496d3 100644
--- a/test/tint/buffer/uniform/std140/struct/mat2x4_f16/static_index_via_ptr.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/buffer/uniform/std140/struct/mat2x4_f16/static_index_via_ptr.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,102 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Access
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct Inner {
+  matrix<float16_t, 2, 4> m;
+};
+
+struct Outer {
+  Inner a[4];
+};
+
+
+cbuffer cbuffer_a : register(b0) {
+  uint4 a[64];
+};
+vector<float16_t, 4> tint_bitcast_to_f16(uint4 src) {
+  uint4 v = src;
+  uint4 mask = (65535u).xxxx;
+  uint4 shift = (16u).xxxx;
+  float4 t_low = f16tof32((v & mask));
+  float4 t_high = f16tof32(((v >> shift) & mask));
+  float16_t v_1 = float16_t(t_low.x);
+  float16_t v_2 = float16_t(t_high.x);
+  float16_t v_3 = float16_t(t_low.y);
+  return vector<float16_t, 4>(v_1, v_2, v_3, float16_t(t_high.y));
+}
+
+matrix<float16_t, 2, 4> v_4(uint start_byte_offset) {
+  vector<float16_t, 4> v_5 = tint_bitcast_to_f16(a[(start_byte_offset / 16u)]);
+  return matrix<float16_t, 2, 4>(v_5, tint_bitcast_to_f16(a[((8u + start_byte_offset) / 16u)]));
+}
+
+Inner v_6(uint start_byte_offset) {
+  Inner v_7 = {v_4(start_byte_offset)};
+  return v_7;
+}
+
+typedef Inner ary_ret[4];
+ary_ret v_8(uint start_byte_offset) {
+  Inner a[4] = (Inner[4])0;
+  {
+    uint v_9 = 0u;
+    v_9 = 0u;
+    while(true) {
+      uint v_10 = v_9;
+      if ((v_10 >= 4u)) {
+        break;
+      }
+      Inner v_11 = v_6((start_byte_offset + (v_10 * 64u)));
+      a[v_10] = v_11;
+      {
+        v_9 = (v_10 + 1u);
+      }
+      continue;
+    }
+  }
+  Inner v_12[4] = a;
+  return v_12;
+}
+
+Outer v_13(uint start_byte_offset) {
+  Inner v_14[4] = v_8(start_byte_offset);
+  Outer v_15 = {v_14};
+  return v_15;
+}
+
+typedef Outer ary_ret_1[4];
+ary_ret_1 v_16(uint start_byte_offset) {
+  Outer a[4] = (Outer[4])0;
+  {
+    uint v_17 = 0u;
+    v_17 = 0u;
+    while(true) {
+      uint v_18 = v_17;
+      if ((v_18 >= 4u)) {
+        break;
+      }
+      Outer v_19 = v_13((start_byte_offset + (v_18 * 256u)));
+      a[v_18] = v_19;
+      {
+        v_17 = (v_18 + 1u);
+      }
+      continue;
+    }
+  }
+  Outer v_20[4] = a;
+  return v_20;
+}
+
+[numthreads(1, 1, 1)]
+void f() {
+  Outer l_a[4] = v_16(0u);
+  Outer l_a_3 = v_13(904u);
+  Inner l_a_3_a[4] = v_8(768u);
+  Inner l_a_3_a_2 = v_6(904u);
+  matrix<float16_t, 2, 4> l_a_3_a_2_m = v_4(904u);
+  vector<float16_t, 4> l_a_3_a_2_m_1 = tint_bitcast_to_f16(a[56u]);
+  float16_t l_a_3_a_2_m_1_0 = float16_t(f16tof32(a[56u].z));
+}
+
+FXC validation failure:
+c:\src\dawn\Shader@0x0000028B258F42C0(2,10-18): error X3000: syntax error: unexpected token 'float16_t'
+
diff --git a/test/tint/buffer/uniform/std140/struct/mat2x4_f16/to_builtin.wgsl.expected.ir.dxc.hlsl b/test/tint/buffer/uniform/std140/struct/mat2x4_f16/to_builtin.wgsl.expected.ir.dxc.hlsl
index 3f437dc..99698a6 100644
--- a/test/tint/buffer/uniform/std140/struct/mat2x4_f16/to_builtin.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/buffer/uniform/std140/struct/mat2x4_f16/to_builtin.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,28 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Access
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+cbuffer cbuffer_u : register(b0) {
+  uint4 u[32];
+};
+vector<float16_t, 4> tint_bitcast_to_f16(uint4 src) {
+  uint4 v = src;
+  uint4 mask = (65535u).xxxx;
+  uint4 shift = (16u).xxxx;
+  float4 t_low = f16tof32((v & mask));
+  float4 t_high = f16tof32(((v >> shift) & mask));
+  float16_t v_1 = float16_t(t_low.x);
+  float16_t v_2 = float16_t(t_high.x);
+  float16_t v_3 = float16_t(t_low.y);
+  return vector<float16_t, 4>(v_1, v_2, v_3, float16_t(t_high.y));
+}
+
+matrix<float16_t, 2, 4> v_4(uint start_byte_offset) {
+  vector<float16_t, 4> v_5 = tint_bitcast_to_f16(u[(start_byte_offset / 16u)]);
+  return matrix<float16_t, 2, 4>(v_5, tint_bitcast_to_f16(u[((8u + start_byte_offset) / 16u)]));
+}
+
+[numthreads(1, 1, 1)]
+void f() {
+  matrix<float16_t, 4, 2> t = transpose(v_4(264u));
+  float16_t l = length(tint_bitcast_to_f16(u[1u]).ywxz);
+  float16_t a = abs(tint_bitcast_to_f16(u[1u]).ywxz[0u]);
+}
+
diff --git a/test/tint/buffer/uniform/std140/struct/mat2x4_f16/to_builtin.wgsl.expected.ir.fxc.hlsl b/test/tint/buffer/uniform/std140/struct/mat2x4_f16/to_builtin.wgsl.expected.ir.fxc.hlsl
index 3f437dc..79d3df5 100644
--- a/test/tint/buffer/uniform/std140/struct/mat2x4_f16/to_builtin.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/buffer/uniform/std140/struct/mat2x4_f16/to_builtin.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,33 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Access
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+
+cbuffer cbuffer_u : register(b0) {
+  uint4 u[32];
+};
+vector<float16_t, 4> tint_bitcast_to_f16(uint4 src) {
+  uint4 v = src;
+  uint4 mask = (65535u).xxxx;
+  uint4 shift = (16u).xxxx;
+  float4 t_low = f16tof32((v & mask));
+  float4 t_high = f16tof32(((v >> shift) & mask));
+  float16_t v_1 = float16_t(t_low.x);
+  float16_t v_2 = float16_t(t_high.x);
+  float16_t v_3 = float16_t(t_low.y);
+  return vector<float16_t, 4>(v_1, v_2, v_3, float16_t(t_high.y));
+}
+
+matrix<float16_t, 2, 4> v_4(uint start_byte_offset) {
+  vector<float16_t, 4> v_5 = tint_bitcast_to_f16(u[(start_byte_offset / 16u)]);
+  return matrix<float16_t, 2, 4>(v_5, tint_bitcast_to_f16(u[((8u + start_byte_offset) / 16u)]));
+}
+
+[numthreads(1, 1, 1)]
+void f() {
+  matrix<float16_t, 4, 2> t = transpose(v_4(264u));
+  float16_t l = length(tint_bitcast_to_f16(u[1u]).ywxz);
+  float16_t a = abs(tint_bitcast_to_f16(u[1u]).ywxz[0u]);
+}
+
+FXC validation failure:
+c:\src\dawn\Shader@0x000001D428975750(5,8-16): error X3000: syntax error: unexpected token 'float16_t'
+
diff --git a/test/tint/buffer/uniform/std140/struct/mat2x4_f16/to_fn.wgsl.expected.ir.dxc.hlsl b/test/tint/buffer/uniform/std140/struct/mat2x4_f16/to_fn.wgsl.expected.ir.dxc.hlsl
index 3f437dc..b22b725 100644
--- a/test/tint/buffer/uniform/std140/struct/mat2x4_f16/to_fn.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/buffer/uniform/std140/struct/mat2x4_f16/to_fn.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,83 @@
-SKIP: FAILED
+struct S {
+  int before;
+  matrix<float16_t, 2, 4> m;
+  int after;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Access
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+
+cbuffer cbuffer_u : register(b0) {
+  uint4 u[32];
+};
+void a(S a_1[4]) {
+}
+
+void b(S s) {
+}
+
+void c(matrix<float16_t, 2, 4> m) {
+}
+
+void d(vector<float16_t, 4> v) {
+}
+
+void e(float16_t f) {
+}
+
+vector<float16_t, 4> tint_bitcast_to_f16(uint4 src) {
+  uint4 v = src;
+  uint4 mask = (65535u).xxxx;
+  uint4 shift = (16u).xxxx;
+  float4 t_low = f16tof32((v & mask));
+  float4 t_high = f16tof32(((v >> shift) & mask));
+  float16_t v_1 = float16_t(t_low.x);
+  float16_t v_2 = float16_t(t_high.x);
+  float16_t v_3 = float16_t(t_low.y);
+  return vector<float16_t, 4>(v_1, v_2, v_3, float16_t(t_high.y));
+}
+
+matrix<float16_t, 2, 4> v_4(uint start_byte_offset) {
+  vector<float16_t, 4> v_5 = tint_bitcast_to_f16(u[(start_byte_offset / 16u)]);
+  return matrix<float16_t, 2, 4>(v_5, tint_bitcast_to_f16(u[((8u + start_byte_offset) / 16u)]));
+}
+
+S v_6(uint start_byte_offset) {
+  int v_7 = asint(u[(start_byte_offset / 16u)][((start_byte_offset % 16u) / 4u)]);
+  matrix<float16_t, 2, 4> v_8 = v_4((8u + start_byte_offset));
+  S v_9 = {v_7, v_8, asint(u[((64u + start_byte_offset) / 16u)][(((64u + start_byte_offset) % 16u) / 4u)])};
+  return v_9;
+}
+
+typedef S ary_ret[4];
+ary_ret v_10(uint start_byte_offset) {
+  S a[4] = (S[4])0;
+  {
+    uint v_11 = 0u;
+    v_11 = 0u;
+    while(true) {
+      uint v_12 = v_11;
+      if ((v_12 >= 4u)) {
+        break;
+      }
+      S v_13 = v_6((start_byte_offset + (v_12 * 128u)));
+      a[v_12] = v_13;
+      {
+        v_11 = (v_12 + 1u);
+      }
+      continue;
+    }
+  }
+  S v_14[4] = a;
+  return v_14;
+}
+
+[numthreads(1, 1, 1)]
+void f() {
+  S v_15[4] = v_10(0u);
+  a(v_15);
+  S v_16 = v_6(256u);
+  b(v_16);
+  c(v_4(264u));
+  d(tint_bitcast_to_f16(u[1u]).ywxz);
+  e(tint_bitcast_to_f16(u[1u]).ywxz[0u]);
+}
+
diff --git a/test/tint/buffer/uniform/std140/struct/mat2x4_f16/to_fn.wgsl.expected.ir.fxc.hlsl b/test/tint/buffer/uniform/std140/struct/mat2x4_f16/to_fn.wgsl.expected.ir.fxc.hlsl
index 3f437dc..b335b82 100644
--- a/test/tint/buffer/uniform/std140/struct/mat2x4_f16/to_fn.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/buffer/uniform/std140/struct/mat2x4_f16/to_fn.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,88 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Access
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct S {
+  int before;
+  matrix<float16_t, 2, 4> m;
+  int after;
+};
+
+
+cbuffer cbuffer_u : register(b0) {
+  uint4 u[32];
+};
+void a(S a_1[4]) {
+}
+
+void b(S s) {
+}
+
+void c(matrix<float16_t, 2, 4> m) {
+}
+
+void d(vector<float16_t, 4> v) {
+}
+
+void e(float16_t f) {
+}
+
+vector<float16_t, 4> tint_bitcast_to_f16(uint4 src) {
+  uint4 v = src;
+  uint4 mask = (65535u).xxxx;
+  uint4 shift = (16u).xxxx;
+  float4 t_low = f16tof32((v & mask));
+  float4 t_high = f16tof32(((v >> shift) & mask));
+  float16_t v_1 = float16_t(t_low.x);
+  float16_t v_2 = float16_t(t_high.x);
+  float16_t v_3 = float16_t(t_low.y);
+  return vector<float16_t, 4>(v_1, v_2, v_3, float16_t(t_high.y));
+}
+
+matrix<float16_t, 2, 4> v_4(uint start_byte_offset) {
+  vector<float16_t, 4> v_5 = tint_bitcast_to_f16(u[(start_byte_offset / 16u)]);
+  return matrix<float16_t, 2, 4>(v_5, tint_bitcast_to_f16(u[((8u + start_byte_offset) / 16u)]));
+}
+
+S v_6(uint start_byte_offset) {
+  int v_7 = asint(u[(start_byte_offset / 16u)][((start_byte_offset % 16u) / 4u)]);
+  matrix<float16_t, 2, 4> v_8 = v_4((8u + start_byte_offset));
+  S v_9 = {v_7, v_8, asint(u[((64u + start_byte_offset) / 16u)][(((64u + start_byte_offset) % 16u) / 4u)])};
+  return v_9;
+}
+
+typedef S ary_ret[4];
+ary_ret v_10(uint start_byte_offset) {
+  S a[4] = (S[4])0;
+  {
+    uint v_11 = 0u;
+    v_11 = 0u;
+    while(true) {
+      uint v_12 = v_11;
+      if ((v_12 >= 4u)) {
+        break;
+      }
+      S v_13 = v_6((start_byte_offset + (v_12 * 128u)));
+      a[v_12] = v_13;
+      {
+        v_11 = (v_12 + 1u);
+      }
+      continue;
+    }
+  }
+  S v_14[4] = a;
+  return v_14;
+}
+
+[numthreads(1, 1, 1)]
+void f() {
+  S v_15[4] = v_10(0u);
+  a(v_15);
+  S v_16 = v_6(256u);
+  b(v_16);
+  c(v_4(264u));
+  d(tint_bitcast_to_f16(u[1u]).ywxz);
+  e(tint_bitcast_to_f16(u[1u]).ywxz[0u]);
+}
+
+FXC validation failure:
+c:\src\dawn\Shader@0x000002446E6E30F0(3,10-18): error X3000: syntax error: unexpected token 'float16_t'
+
diff --git a/test/tint/buffer/uniform/std140/struct/mat2x4_f16/to_private.wgsl.expected.ir.dxc.hlsl b/test/tint/buffer/uniform/std140/struct/mat2x4_f16/to_private.wgsl.expected.ir.dxc.hlsl
index 3f437dc..6dee5e5 100644
--- a/test/tint/buffer/uniform/std140/struct/mat2x4_f16/to_private.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/buffer/uniform/std140/struct/mat2x4_f16/to_private.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,68 @@
-SKIP: FAILED
+struct S {
+  int before;
+  matrix<float16_t, 2, 4> m;
+  int after;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Access
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+
+cbuffer cbuffer_u : register(b0) {
+  uint4 u[32];
+};
+static S p[4] = (S[4])0;
+vector<float16_t, 4> tint_bitcast_to_f16(uint4 src) {
+  uint4 v = src;
+  uint4 mask = (65535u).xxxx;
+  uint4 shift = (16u).xxxx;
+  float4 t_low = f16tof32((v & mask));
+  float4 t_high = f16tof32(((v >> shift) & mask));
+  float16_t v_1 = float16_t(t_low.x);
+  float16_t v_2 = float16_t(t_high.x);
+  float16_t v_3 = float16_t(t_low.y);
+  return vector<float16_t, 4>(v_1, v_2, v_3, float16_t(t_high.y));
+}
+
+matrix<float16_t, 2, 4> v_4(uint start_byte_offset) {
+  vector<float16_t, 4> v_5 = tint_bitcast_to_f16(u[(start_byte_offset / 16u)]);
+  return matrix<float16_t, 2, 4>(v_5, tint_bitcast_to_f16(u[((8u + start_byte_offset) / 16u)]));
+}
+
+S v_6(uint start_byte_offset) {
+  int v_7 = asint(u[(start_byte_offset / 16u)][((start_byte_offset % 16u) / 4u)]);
+  matrix<float16_t, 2, 4> v_8 = v_4((8u + start_byte_offset));
+  S v_9 = {v_7, v_8, asint(u[((64u + start_byte_offset) / 16u)][(((64u + start_byte_offset) % 16u) / 4u)])};
+  return v_9;
+}
+
+typedef S ary_ret[4];
+ary_ret v_10(uint start_byte_offset) {
+  S a[4] = (S[4])0;
+  {
+    uint v_11 = 0u;
+    v_11 = 0u;
+    while(true) {
+      uint v_12 = v_11;
+      if ((v_12 >= 4u)) {
+        break;
+      }
+      S v_13 = v_6((start_byte_offset + (v_12 * 128u)));
+      a[v_12] = v_13;
+      {
+        v_11 = (v_12 + 1u);
+      }
+      continue;
+    }
+  }
+  S v_14[4] = a;
+  return v_14;
+}
+
+[numthreads(1, 1, 1)]
+void f() {
+  S v_15[4] = v_10(0u);
+  p = v_15;
+  S v_16 = v_6(256u);
+  p[1] = v_16;
+  p[3].m = v_4(264u);
+  p[1].m[0] = tint_bitcast_to_f16(u[1u]).ywxz;
+}
+
diff --git a/test/tint/buffer/uniform/std140/struct/mat2x4_f16/to_private.wgsl.expected.ir.fxc.hlsl b/test/tint/buffer/uniform/std140/struct/mat2x4_f16/to_private.wgsl.expected.ir.fxc.hlsl
index 3f437dc..5a8acc1 100644
--- a/test/tint/buffer/uniform/std140/struct/mat2x4_f16/to_private.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/buffer/uniform/std140/struct/mat2x4_f16/to_private.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,73 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Access
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct S {
+  int before;
+  matrix<float16_t, 2, 4> m;
+  int after;
+};
+
+
+cbuffer cbuffer_u : register(b0) {
+  uint4 u[32];
+};
+static S p[4] = (S[4])0;
+vector<float16_t, 4> tint_bitcast_to_f16(uint4 src) {
+  uint4 v = src;
+  uint4 mask = (65535u).xxxx;
+  uint4 shift = (16u).xxxx;
+  float4 t_low = f16tof32((v & mask));
+  float4 t_high = f16tof32(((v >> shift) & mask));
+  float16_t v_1 = float16_t(t_low.x);
+  float16_t v_2 = float16_t(t_high.x);
+  float16_t v_3 = float16_t(t_low.y);
+  return vector<float16_t, 4>(v_1, v_2, v_3, float16_t(t_high.y));
+}
+
+matrix<float16_t, 2, 4> v_4(uint start_byte_offset) {
+  vector<float16_t, 4> v_5 = tint_bitcast_to_f16(u[(start_byte_offset / 16u)]);
+  return matrix<float16_t, 2, 4>(v_5, tint_bitcast_to_f16(u[((8u + start_byte_offset) / 16u)]));
+}
+
+S v_6(uint start_byte_offset) {
+  int v_7 = asint(u[(start_byte_offset / 16u)][((start_byte_offset % 16u) / 4u)]);
+  matrix<float16_t, 2, 4> v_8 = v_4((8u + start_byte_offset));
+  S v_9 = {v_7, v_8, asint(u[((64u + start_byte_offset) / 16u)][(((64u + start_byte_offset) % 16u) / 4u)])};
+  return v_9;
+}
+
+typedef S ary_ret[4];
+ary_ret v_10(uint start_byte_offset) {
+  S a[4] = (S[4])0;
+  {
+    uint v_11 = 0u;
+    v_11 = 0u;
+    while(true) {
+      uint v_12 = v_11;
+      if ((v_12 >= 4u)) {
+        break;
+      }
+      S v_13 = v_6((start_byte_offset + (v_12 * 128u)));
+      a[v_12] = v_13;
+      {
+        v_11 = (v_12 + 1u);
+      }
+      continue;
+    }
+  }
+  S v_14[4] = a;
+  return v_14;
+}
+
+[numthreads(1, 1, 1)]
+void f() {
+  S v_15[4] = v_10(0u);
+  p = v_15;
+  S v_16 = v_6(256u);
+  p[1] = v_16;
+  p[3].m = v_4(264u);
+  p[1].m[0] = tint_bitcast_to_f16(u[1u]).ywxz;
+}
+
+FXC validation failure:
+c:\src\dawn\Shader@0x000001CE521F4410(3,10-18): error X3000: syntax error: unexpected token 'float16_t'
+
diff --git a/test/tint/buffer/uniform/std140/struct/mat2x4_f16/to_storage.wgsl.expected.ir.dxc.hlsl b/test/tint/buffer/uniform/std140/struct/mat2x4_f16/to_storage.wgsl.expected.ir.dxc.hlsl
index 3f437dc..5e6bcde 100644
--- a/test/tint/buffer/uniform/std140/struct/mat2x4_f16/to_storage.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/buffer/uniform/std140/struct/mat2x4_f16/to_storage.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,98 @@
-SKIP: FAILED
+struct S {
+  int before;
+  matrix<float16_t, 2, 4> m;
+  int after;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Access
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+
+cbuffer cbuffer_u : register(b0) {
+  uint4 u[32];
+};
+RWByteAddressBuffer s : register(u1);
+vector<float16_t, 4> tint_bitcast_to_f16(uint4 src) {
+  uint4 v = src;
+  uint4 mask = (65535u).xxxx;
+  uint4 shift = (16u).xxxx;
+  float4 t_low = f16tof32((v & mask));
+  float4 t_high = f16tof32(((v >> shift) & mask));
+  float16_t v_1 = float16_t(t_low.x);
+  float16_t v_2 = float16_t(t_high.x);
+  float16_t v_3 = float16_t(t_low.y);
+  return vector<float16_t, 4>(v_1, v_2, v_3, float16_t(t_high.y));
+}
+
+void v_4(uint offset, matrix<float16_t, 2, 4> obj) {
+  s.Store<vector<float16_t, 4> >((offset + 0u), obj[0u]);
+  s.Store<vector<float16_t, 4> >((offset + 8u), obj[1u]);
+}
+
+matrix<float16_t, 2, 4> v_5(uint start_byte_offset) {
+  vector<float16_t, 4> v_6 = tint_bitcast_to_f16(u[(start_byte_offset / 16u)]);
+  return matrix<float16_t, 2, 4>(v_6, tint_bitcast_to_f16(u[((8u + start_byte_offset) / 16u)]));
+}
+
+void v_7(uint offset, S obj) {
+  s.Store((offset + 0u), asuint(obj.before));
+  v_4((offset + 8u), obj.m);
+  s.Store((offset + 64u), asuint(obj.after));
+}
+
+S v_8(uint start_byte_offset) {
+  int v_9 = asint(u[(start_byte_offset / 16u)][((start_byte_offset % 16u) / 4u)]);
+  matrix<float16_t, 2, 4> v_10 = v_5((8u + start_byte_offset));
+  S v_11 = {v_9, v_10, asint(u[((64u + start_byte_offset) / 16u)][(((64u + start_byte_offset) % 16u) / 4u)])};
+  return v_11;
+}
+
+void v_12(uint offset, S obj[4]) {
+  {
+    uint v_13 = 0u;
+    v_13 = 0u;
+    while(true) {
+      uint v_14 = v_13;
+      if ((v_14 >= 4u)) {
+        break;
+      }
+      S v_15 = obj[v_14];
+      v_7((offset + (v_14 * 128u)), v_15);
+      {
+        v_13 = (v_14 + 1u);
+      }
+      continue;
+    }
+  }
+}
+
+typedef S ary_ret[4];
+ary_ret v_16(uint start_byte_offset) {
+  S a[4] = (S[4])0;
+  {
+    uint v_17 = 0u;
+    v_17 = 0u;
+    while(true) {
+      uint v_18 = v_17;
+      if ((v_18 >= 4u)) {
+        break;
+      }
+      S v_19 = v_8((start_byte_offset + (v_18 * 128u)));
+      a[v_18] = v_19;
+      {
+        v_17 = (v_18 + 1u);
+      }
+      continue;
+    }
+  }
+  S v_20[4] = a;
+  return v_20;
+}
+
+[numthreads(1, 1, 1)]
+void f() {
+  S v_21[4] = v_16(0u);
+  v_12(0u, v_21);
+  S v_22 = v_8(256u);
+  v_7(128u, v_22);
+  v_4(392u, v_5(264u));
+  s.Store<vector<float16_t, 4> >(136u, tint_bitcast_to_f16(u[1u]).ywxz);
+}
+
diff --git a/test/tint/buffer/uniform/std140/struct/mat2x4_f16/to_storage.wgsl.expected.ir.fxc.hlsl b/test/tint/buffer/uniform/std140/struct/mat2x4_f16/to_storage.wgsl.expected.ir.fxc.hlsl
index 3f437dc..a28532e 100644
--- a/test/tint/buffer/uniform/std140/struct/mat2x4_f16/to_storage.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/buffer/uniform/std140/struct/mat2x4_f16/to_storage.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,103 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Access
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct S {
+  int before;
+  matrix<float16_t, 2, 4> m;
+  int after;
+};
+
+
+cbuffer cbuffer_u : register(b0) {
+  uint4 u[32];
+};
+RWByteAddressBuffer s : register(u1);
+vector<float16_t, 4> tint_bitcast_to_f16(uint4 src) {
+  uint4 v = src;
+  uint4 mask = (65535u).xxxx;
+  uint4 shift = (16u).xxxx;
+  float4 t_low = f16tof32((v & mask));
+  float4 t_high = f16tof32(((v >> shift) & mask));
+  float16_t v_1 = float16_t(t_low.x);
+  float16_t v_2 = float16_t(t_high.x);
+  float16_t v_3 = float16_t(t_low.y);
+  return vector<float16_t, 4>(v_1, v_2, v_3, float16_t(t_high.y));
+}
+
+void v_4(uint offset, matrix<float16_t, 2, 4> obj) {
+  s.Store<vector<float16_t, 4> >((offset + 0u), obj[0u]);
+  s.Store<vector<float16_t, 4> >((offset + 8u), obj[1u]);
+}
+
+matrix<float16_t, 2, 4> v_5(uint start_byte_offset) {
+  vector<float16_t, 4> v_6 = tint_bitcast_to_f16(u[(start_byte_offset / 16u)]);
+  return matrix<float16_t, 2, 4>(v_6, tint_bitcast_to_f16(u[((8u + start_byte_offset) / 16u)]));
+}
+
+void v_7(uint offset, S obj) {
+  s.Store((offset + 0u), asuint(obj.before));
+  v_4((offset + 8u), obj.m);
+  s.Store((offset + 64u), asuint(obj.after));
+}
+
+S v_8(uint start_byte_offset) {
+  int v_9 = asint(u[(start_byte_offset / 16u)][((start_byte_offset % 16u) / 4u)]);
+  matrix<float16_t, 2, 4> v_10 = v_5((8u + start_byte_offset));
+  S v_11 = {v_9, v_10, asint(u[((64u + start_byte_offset) / 16u)][(((64u + start_byte_offset) % 16u) / 4u)])};
+  return v_11;
+}
+
+void v_12(uint offset, S obj[4]) {
+  {
+    uint v_13 = 0u;
+    v_13 = 0u;
+    while(true) {
+      uint v_14 = v_13;
+      if ((v_14 >= 4u)) {
+        break;
+      }
+      S v_15 = obj[v_14];
+      v_7((offset + (v_14 * 128u)), v_15);
+      {
+        v_13 = (v_14 + 1u);
+      }
+      continue;
+    }
+  }
+}
+
+typedef S ary_ret[4];
+ary_ret v_16(uint start_byte_offset) {
+  S a[4] = (S[4])0;
+  {
+    uint v_17 = 0u;
+    v_17 = 0u;
+    while(true) {
+      uint v_18 = v_17;
+      if ((v_18 >= 4u)) {
+        break;
+      }
+      S v_19 = v_8((start_byte_offset + (v_18 * 128u)));
+      a[v_18] = v_19;
+      {
+        v_17 = (v_18 + 1u);
+      }
+      continue;
+    }
+  }
+  S v_20[4] = a;
+  return v_20;
+}
+
+[numthreads(1, 1, 1)]
+void f() {
+  S v_21[4] = v_16(0u);
+  v_12(0u, v_21);
+  S v_22 = v_8(256u);
+  v_7(128u, v_22);
+  v_4(392u, v_5(264u));
+  s.Store<vector<float16_t, 4> >(136u, tint_bitcast_to_f16(u[1u]).ywxz);
+}
+
+FXC validation failure:
+c:\src\dawn\Shader@0x0000016CF82A1260(3,10-18): error X3000: syntax error: unexpected token 'float16_t'
+
diff --git a/test/tint/buffer/uniform/std140/struct/mat2x4_f16/to_workgroup.wgsl.expected.ir.dxc.hlsl b/test/tint/buffer/uniform/std140/struct/mat2x4_f16/to_workgroup.wgsl.expected.ir.dxc.hlsl
index 3f437dc..dc54d78 100644
--- a/test/tint/buffer/uniform/std140/struct/mat2x4_f16/to_workgroup.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/buffer/uniform/std140/struct/mat2x4_f16/to_workgroup.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,93 @@
-SKIP: FAILED
+struct S {
+  int before;
+  matrix<float16_t, 2, 4> m;
+  int after;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Access
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct f_inputs {
+  uint tint_local_index : SV_GroupIndex;
+};
+
+
+cbuffer cbuffer_u : register(b0) {
+  uint4 u[32];
+};
+groupshared S w[4];
+vector<float16_t, 4> tint_bitcast_to_f16(uint4 src) {
+  uint4 v = src;
+  uint4 mask = (65535u).xxxx;
+  uint4 shift = (16u).xxxx;
+  float4 t_low = f16tof32((v & mask));
+  float4 t_high = f16tof32(((v >> shift) & mask));
+  float16_t v_1 = float16_t(t_low.x);
+  float16_t v_2 = float16_t(t_high.x);
+  float16_t v_3 = float16_t(t_low.y);
+  return vector<float16_t, 4>(v_1, v_2, v_3, float16_t(t_high.y));
+}
+
+matrix<float16_t, 2, 4> v_4(uint start_byte_offset) {
+  vector<float16_t, 4> v_5 = tint_bitcast_to_f16(u[(start_byte_offset / 16u)]);
+  return matrix<float16_t, 2, 4>(v_5, tint_bitcast_to_f16(u[((8u + start_byte_offset) / 16u)]));
+}
+
+S v_6(uint start_byte_offset) {
+  int v_7 = asint(u[(start_byte_offset / 16u)][((start_byte_offset % 16u) / 4u)]);
+  matrix<float16_t, 2, 4> v_8 = v_4((8u + start_byte_offset));
+  S v_9 = {v_7, v_8, asint(u[((64u + start_byte_offset) / 16u)][(((64u + start_byte_offset) % 16u) / 4u)])};
+  return v_9;
+}
+
+typedef S ary_ret[4];
+ary_ret v_10(uint start_byte_offset) {
+  S a[4] = (S[4])0;
+  {
+    uint v_11 = 0u;
+    v_11 = 0u;
+    while(true) {
+      uint v_12 = v_11;
+      if ((v_12 >= 4u)) {
+        break;
+      }
+      S v_13 = v_6((start_byte_offset + (v_12 * 128u)));
+      a[v_12] = v_13;
+      {
+        v_11 = (v_12 + 1u);
+      }
+      continue;
+    }
+  }
+  S v_14[4] = a;
+  return v_14;
+}
+
+void f_inner(uint tint_local_index) {
+  {
+    uint v_15 = 0u;
+    v_15 = tint_local_index;
+    while(true) {
+      uint v_16 = v_15;
+      if ((v_16 >= 4u)) {
+        break;
+      }
+      S v_17 = (S)0;
+      w[v_16] = v_17;
+      {
+        v_15 = (v_16 + 1u);
+      }
+      continue;
+    }
+  }
+  GroupMemoryBarrierWithGroupSync();
+  S v_18[4] = v_10(0u);
+  w = v_18;
+  S v_19 = v_6(256u);
+  w[1] = v_19;
+  w[3].m = v_4(264u);
+  w[1].m[0] = tint_bitcast_to_f16(u[1u]).ywxz;
+}
+
+[numthreads(1, 1, 1)]
+void f(f_inputs inputs) {
+  f_inner(inputs.tint_local_index);
+}
+
diff --git a/test/tint/buffer/uniform/std140/struct/mat2x4_f16/to_workgroup.wgsl.expected.ir.fxc.hlsl b/test/tint/buffer/uniform/std140/struct/mat2x4_f16/to_workgroup.wgsl.expected.ir.fxc.hlsl
index 3f437dc..2f91b3d 100644
--- a/test/tint/buffer/uniform/std140/struct/mat2x4_f16/to_workgroup.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/buffer/uniform/std140/struct/mat2x4_f16/to_workgroup.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,98 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Access
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct S {
+  int before;
+  matrix<float16_t, 2, 4> m;
+  int after;
+};
+
+struct f_inputs {
+  uint tint_local_index : SV_GroupIndex;
+};
+
+
+cbuffer cbuffer_u : register(b0) {
+  uint4 u[32];
+};
+groupshared S w[4];
+vector<float16_t, 4> tint_bitcast_to_f16(uint4 src) {
+  uint4 v = src;
+  uint4 mask = (65535u).xxxx;
+  uint4 shift = (16u).xxxx;
+  float4 t_low = f16tof32((v & mask));
+  float4 t_high = f16tof32(((v >> shift) & mask));
+  float16_t v_1 = float16_t(t_low.x);
+  float16_t v_2 = float16_t(t_high.x);
+  float16_t v_3 = float16_t(t_low.y);
+  return vector<float16_t, 4>(v_1, v_2, v_3, float16_t(t_high.y));
+}
+
+matrix<float16_t, 2, 4> v_4(uint start_byte_offset) {
+  vector<float16_t, 4> v_5 = tint_bitcast_to_f16(u[(start_byte_offset / 16u)]);
+  return matrix<float16_t, 2, 4>(v_5, tint_bitcast_to_f16(u[((8u + start_byte_offset) / 16u)]));
+}
+
+S v_6(uint start_byte_offset) {
+  int v_7 = asint(u[(start_byte_offset / 16u)][((start_byte_offset % 16u) / 4u)]);
+  matrix<float16_t, 2, 4> v_8 = v_4((8u + start_byte_offset));
+  S v_9 = {v_7, v_8, asint(u[((64u + start_byte_offset) / 16u)][(((64u + start_byte_offset) % 16u) / 4u)])};
+  return v_9;
+}
+
+typedef S ary_ret[4];
+ary_ret v_10(uint start_byte_offset) {
+  S a[4] = (S[4])0;
+  {
+    uint v_11 = 0u;
+    v_11 = 0u;
+    while(true) {
+      uint v_12 = v_11;
+      if ((v_12 >= 4u)) {
+        break;
+      }
+      S v_13 = v_6((start_byte_offset + (v_12 * 128u)));
+      a[v_12] = v_13;
+      {
+        v_11 = (v_12 + 1u);
+      }
+      continue;
+    }
+  }
+  S v_14[4] = a;
+  return v_14;
+}
+
+void f_inner(uint tint_local_index) {
+  {
+    uint v_15 = 0u;
+    v_15 = tint_local_index;
+    while(true) {
+      uint v_16 = v_15;
+      if ((v_16 >= 4u)) {
+        break;
+      }
+      S v_17 = (S)0;
+      w[v_16] = v_17;
+      {
+        v_15 = (v_16 + 1u);
+      }
+      continue;
+    }
+  }
+  GroupMemoryBarrierWithGroupSync();
+  S v_18[4] = v_10(0u);
+  w = v_18;
+  S v_19 = v_6(256u);
+  w[1] = v_19;
+  w[3].m = v_4(264u);
+  w[1].m[0] = tint_bitcast_to_f16(u[1u]).ywxz;
+}
+
+[numthreads(1, 1, 1)]
+void f(f_inputs inputs) {
+  f_inner(inputs.tint_local_index);
+}
+
+FXC validation failure:
+c:\src\dawn\Shader@0x000001C461E92250(3,10-18): error X3000: syntax error: unexpected token 'float16_t'
+
diff --git a/test/tint/buffer/uniform/std140/struct/mat2x4_f32/dynamic_index_via_ptr.wgsl.expected.ir.dxc.hlsl b/test/tint/buffer/uniform/std140/struct/mat2x4_f32/dynamic_index_via_ptr.wgsl.expected.ir.dxc.hlsl
index 3f437dc..8e64e6a 100644
--- a/test/tint/buffer/uniform/std140/struct/mat2x4_f32/dynamic_index_via_ptr.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/buffer/uniform/std140/struct/mat2x4_f32/dynamic_index_via_ptr.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,283 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Access
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+
+struct Inner {
+  @size(64)
+  m : mat2x4<f32>,
+}
+
+struct Outer {
+  a : array<Inner, 4>,
+}
+
+@group(0) @binding(0) var<uniform> a : array<Outer, 4>;
+
+var<private> counter = 0;
+
+fn i() -> i32 {
+  counter++;
+  return counter;
+}
+
+@compute @workgroup_size(1)
+fn f() {
+  let p_a = &(a);
+  let p_a_i = &((*(p_a))[i()]);
+  let p_a_i_a = &((*(p_a_i)).a);
+  let p_a_i_a_i = &((*(p_a_i_a))[i()]);
+  let p_a_i_a_i_m = &((*(p_a_i_a_i)).m);
+  let p_a_i_a_i_m_i = &((*(p_a_i_a_i_m))[i()]);
+  let l_a : array<Outer, 4> = *(p_a);
+  let l_a_i : Outer = *(p_a_i);
+  let l_a_i_a : array<Inner, 4> = *(p_a_i_a);
+  let l_a_i_a_i : Inner = *(p_a_i_a_i);
+  let l_a_i_a_i_m : mat2x4<f32> = *(p_a_i_a_i_m);
+  let l_a_i_a_i_m_i : vec4<f32> = *(p_a_i_a_i_m_i);
+  let l_a_i_a_i_m_i_i : f32 = (*(p_a_i_a_i_m_i))[i()];
+}
+
+Failed to generate: :38:24 error: binary: %23 is not in scope
+    %22:u32 = add %21, %23
+                       ^^^
+
+:24:3 note: in block
+  $B3: {
+  ^^^
+
+:64:5 note: %23 declared here
+    %23:u32 = mul %52, 4u
+    ^^^^^^^
+
+:43:24 error: binary: %23 is not in scope
+    %29:u32 = add %28, %23
+                       ^^^
+
+:24:3 note: in block
+  $B3: {
+  ^^^
+
+:64:5 note: %23 declared here
+    %23:u32 = mul %52, 4u
+    ^^^^^^^
+
+:48:24 error: binary: %23 is not in scope
+    %35:u32 = add %34, %23
+                       ^^^
+
+:24:3 note: in block
+  $B3: {
+  ^^^
+
+:64:5 note: %23 declared here
+    %23:u32 = mul %52, 4u
+    ^^^^^^^
+
+:53:24 error: binary: %23 is not in scope
+    %41:u32 = add %40, %23
+                       ^^^
+
+:24:3 note: in block
+  $B3: {
+  ^^^
+
+:64:5 note: %23 declared here
+    %23:u32 = mul %52, 4u
+    ^^^^^^^
+
+:64:5 error: binary: no matching overload for 'operator * (i32, u32)'
+
+9 candidate operators:
+ • 'operator * (T  ✓ , T  ✗ ) -> T' where:
+      ✓  'T' is 'f32', 'i32', 'u32' or 'f16'
+ • 'operator * (vecN<T>  ✗ , T  ✓ ) -> vecN<T>' where:
+      ✓  'T' is 'f32', 'i32', 'u32' or 'f16'
+ • 'operator * (T  ✓ , vecN<T>  ✗ ) -> vecN<T>' where:
+      ✓  'T' is 'f32', 'i32', 'u32' or 'f16'
+ • 'operator * (T  ✗ , matNxM<T>  ✗ ) -> matNxM<T>' where:
+      ✗  'T' is 'f32' or 'f16'
+ • 'operator * (matNxM<T>  ✗ , T  ✗ ) -> matNxM<T>' where:
+      ✗  'T' is 'f32' or 'f16'
+ • 'operator * (vecN<T>  ✗ , vecN<T>  ✗ ) -> vecN<T>' where:
+      ✗  'T' is 'f32', 'i32', 'u32' or 'f16'
+ • 'operator * (matCxR<T>  ✗ , vecC<T>  ✗ ) -> vecR<T>' where:
+      ✗  'T' is 'f32' or 'f16'
+ • 'operator * (vecR<T>  ✗ , matCxR<T>  ✗ ) -> vecC<T>' where:
+      ✗  'T' is 'f32' or 'f16'
+ • 'operator * (matKxR<T>  ✗ , matCxK<T>  ✗ ) -> matCxR<T>' where:
+      ✗  'T' is 'f32' or 'f16'
+
+    %23:u32 = mul %52, 4u
+    ^^^^^^^^^^^^^^^^^^^^^
+
+:24:3 note: in block
+  $B3: {
+  ^^^
+
+note: # Disassembly
+Inner = struct @align(16) {
+  m:mat2x4<f32> @offset(0)
+}
+
+Outer = struct @align(16) {
+  a:array<Inner, 4> @offset(0)
+}
+
+$B1: {  # root
+  %a:ptr<uniform, array<vec4<u32>, 64>, read> = var @binding_point(0, 0)
+  %counter:ptr<private, i32, read_write> = var, 0i
+}
+
+%i = func():i32 {
+  $B2: {
+    %4:i32 = load %counter
+    %5:i32 = add %4, 1i
+    store %counter, %5
+    %6:i32 = load %counter
+    ret %6
+  }
+}
+%f = @compute @workgroup_size(1, 1, 1) func():void {
+  $B3: {
+    %8:i32 = call %i
+    %9:u32 = convert %8
+    %10:u32 = mul 256u, %9
+    %11:i32 = call %i
+    %12:u32 = convert %11
+    %13:u32 = mul 64u, %12
+    %14:i32 = call %i
+    %15:u32 = convert %14
+    %16:u32 = mul 16u, %15
+    %17:array<Outer, 4> = call %18, 0u
+    %l_a:array<Outer, 4> = let %17
+    %20:u32 = add %10, %13
+    %21:u32 = add %20, %16
+    %22:u32 = add %21, %23
+    %24:Outer = call %25, %22
+    %l_a_i:Outer = let %24
+    %27:u32 = add %10, %13
+    %28:u32 = add %27, %16
+    %29:u32 = add %28, %23
+    %30:array<Inner, 4> = call %31, %29
+    %l_a_i_a:array<Inner, 4> = let %30
+    %33:u32 = add %10, %13
+    %34:u32 = add %33, %16
+    %35:u32 = add %34, %23
+    %36:Inner = call %37, %35
+    %l_a_i_a_i:Inner = let %36
+    %39:u32 = add %10, %13
+    %40:u32 = add %39, %16
+    %41:u32 = add %40, %23
+    %42:mat2x4<f32> = call %43, %41
+    %l_a_i_a_i_m:mat2x4<f32> = let %42
+    %45:u32 = add %10, %13
+    %46:u32 = add %45, %16
+    %47:u32 = div %46, 16u
+    %48:ptr<uniform, vec4<u32>, read> = access %a, %47
+    %49:vec4<u32> = load %48
+    %50:vec4<f32> = bitcast %49
+    %l_a_i_a_i_m_i:vec4<f32> = let %50
+    %52:i32 = call %i
+    %23:u32 = mul %52, 4u
+    %53:u32 = add %10, %13
+    %54:u32 = add %53, %16
+    %55:u32 = add %54, %23
+    %56:u32 = div %55, 16u
+    %57:ptr<uniform, vec4<u32>, read> = access %a, %56
+    %58:u32 = mod %55, 16u
+    %59:u32 = div %58, 4u
+    %60:u32 = load_vector_element %57, %59
+    %61:f32 = bitcast %60
+    %l_a_i_a_i_m_i_i:f32 = let %61
+    ret
+  }
+}
+%43 = func(%start_byte_offset:u32):mat2x4<f32> {
+  $B4: {
+    %64:u32 = div %start_byte_offset, 16u
+    %65:ptr<uniform, vec4<u32>, read> = access %a, %64
+    %66:vec4<u32> = load %65
+    %67:vec4<f32> = bitcast %66
+    %68:u32 = add 16u, %start_byte_offset
+    %69:u32 = div %68, 16u
+    %70:ptr<uniform, vec4<u32>, read> = access %a, %69
+    %71:vec4<u32> = load %70
+    %72:vec4<f32> = bitcast %71
+    %73:mat2x4<f32> = construct %67, %72
+    ret %73
+  }
+}
+%37 = func(%start_byte_offset_1:u32):Inner {  # %start_byte_offset_1: 'start_byte_offset'
+  $B5: {
+    %75:mat2x4<f32> = call %43, %start_byte_offset_1
+    %76:Inner = construct %75
+    ret %76
+  }
+}
+%31 = func(%start_byte_offset_2:u32):array<Inner, 4> {  # %start_byte_offset_2: 'start_byte_offset'
+  $B6: {
+    %a_1:ptr<function, array<Inner, 4>, read_write> = var, array<Inner, 4>(Inner(mat2x4<f32>(vec4<f32>(0.0f))))  # %a_1: 'a'
+    loop [i: $B7, b: $B8, c: $B9] {  # loop_1
+      $B7: {  # initializer
+        next_iteration 0u  # -> $B8
+      }
+      $B8 (%idx:u32): {  # body
+        %80:bool = gte %idx, 4u
+        if %80 [t: $B10] {  # if_1
+          $B10: {  # true
+            exit_loop  # loop_1
+          }
+        }
+        %81:u32 = mul %idx, 64u
+        %82:u32 = add %start_byte_offset_2, %81
+        %83:ptr<function, Inner, read_write> = access %a_1, %idx
+        %84:Inner = call %37, %82
+        store %83, %84
+        continue  # -> $B9
+      }
+      $B9: {  # continuing
+        %85:u32 = add %idx, 1u
+        next_iteration %85  # -> $B8
+      }
+    }
+    %86:array<Inner, 4> = load %a_1
+    ret %86
+  }
+}
+%25 = func(%start_byte_offset_3:u32):Outer {  # %start_byte_offset_3: 'start_byte_offset'
+  $B11: {
+    %88:array<Inner, 4> = call %31, %start_byte_offset_3
+    %89:Outer = construct %88
+    ret %89
+  }
+}
+%18 = func(%start_byte_offset_4:u32):array<Outer, 4> {  # %start_byte_offset_4: 'start_byte_offset'
+  $B12: {
+    %a_2:ptr<function, array<Outer, 4>, read_write> = var, array<Outer, 4>(Outer(array<Inner, 4>(Inner(mat2x4<f32>(vec4<f32>(0.0f))))))  # %a_2: 'a'
+    loop [i: $B13, b: $B14, c: $B15] {  # loop_2
+      $B13: {  # initializer
+        next_iteration 0u  # -> $B14
+      }
+      $B14 (%idx_1:u32): {  # body
+        %93:bool = gte %idx_1, 4u
+        if %93 [t: $B16] {  # if_2
+          $B16: {  # true
+            exit_loop  # loop_2
+          }
+        }
+        %94:u32 = mul %idx_1, 256u
+        %95:u32 = add %start_byte_offset_4, %94
+        %96:ptr<function, Outer, read_write> = access %a_2, %idx_1
+        %97:Outer = call %25, %95
+        store %96, %97
+        continue  # -> $B15
+      }
+      $B15: {  # continuing
+        %98:u32 = add %idx_1, 1u
+        next_iteration %98  # -> $B14
+      }
+    }
+    %99:array<Outer, 4> = load %a_2
+    ret %99
+  }
+}
+
diff --git a/test/tint/buffer/uniform/std140/struct/mat2x4_f32/dynamic_index_via_ptr.wgsl.expected.ir.fxc.hlsl b/test/tint/buffer/uniform/std140/struct/mat2x4_f32/dynamic_index_via_ptr.wgsl.expected.ir.fxc.hlsl
index 3f437dc..43a11f2 100644
--- a/test/tint/buffer/uniform/std140/struct/mat2x4_f32/dynamic_index_via_ptr.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/buffer/uniform/std140/struct/mat2x4_f32/dynamic_index_via_ptr.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,254 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Access
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+
+struct Inner {
+  @size(64)
+  m : mat2x4<f32>,
+}
+
+struct Outer {
+  a : array<Inner, 4>,
+}
+
+@group(0) @binding(0) var<uniform> a : array<Outer, 4>;
+
+var<private> counter = 0;
+
+fn i() -> i32 {
+  counter++;
+  return counter;
+}
+
+@compute @workgroup_size(1)
+fn f() {
+  let p_a = &(a);
+  let p_a_i = &((*(p_a))[i()]);
+  let p_a_i_a = &((*(p_a_i)).a);
+  let p_a_i_a_i = &((*(p_a_i_a))[i()]);
+  let p_a_i_a_i_m = &((*(p_a_i_a_i)).m);
+  let p_a_i_a_i_m_i = &((*(p_a_i_a_i_m))[i()]);
+  let l_a : array<Outer, 4> = *(p_a);
+  let l_a_i : Outer = *(p_a_i);
+  let l_a_i_a : array<Inner, 4> = *(p_a_i_a);
+  let l_a_i_a_i : Inner = *(p_a_i_a_i);
+  let l_a_i_a_i_m : mat2x4<f32> = *(p_a_i_a_i_m);
+  let l_a_i_a_i_m_i : vec4<f32> = *(p_a_i_a_i_m_i);
+  let l_a_i_a_i_m_i_i : f32 = (*(p_a_i_a_i_m_i))[i()];
+}
+
+Failed to generate: :38:24 error: binary: %23 is not in scope
+    %22:u32 = add %21, %23
+                       ^^^
+
+:24:3 note: in block
+  $B3: {
+  ^^^
+
+:59:5 note: %23 declared here
+    %23:u32 = mul %47, 4u
+    ^^^^^^^
+
+:48:24 error: binary: %23 is not in scope
+    %36:u32 = add %35, %23
+                       ^^^
+
+:24:3 note: in block
+  $B3: {
+  ^^^
+
+:59:5 note: %23 declared here
+    %23:u32 = mul %47, 4u
+    ^^^^^^^
+
+:59:5 error: binary: no matching overload for 'operator * (i32, u32)'
+
+9 candidate operators:
+ • 'operator * (T  ✓ , T  ✗ ) -> T' where:
+      ✓  'T' is 'f32', 'i32', 'u32' or 'f16'
+ • 'operator * (vecN<T>  ✗ , T  ✓ ) -> vecN<T>' where:
+      ✓  'T' is 'f32', 'i32', 'u32' or 'f16'
+ • 'operator * (T  ✓ , vecN<T>  ✗ ) -> vecN<T>' where:
+      ✓  'T' is 'f32', 'i32', 'u32' or 'f16'
+ • 'operator * (T  ✗ , matNxM<T>  ✗ ) -> matNxM<T>' where:
+      ✗  'T' is 'f32' or 'f16'
+ • 'operator * (matNxM<T>  ✗ , T  ✗ ) -> matNxM<T>' where:
+      ✗  'T' is 'f32' or 'f16'
+ • 'operator * (vecN<T>  ✗ , vecN<T>  ✗ ) -> vecN<T>' where:
+      ✗  'T' is 'f32', 'i32', 'u32' or 'f16'
+ • 'operator * (matCxR<T>  ✗ , vecC<T>  ✗ ) -> vecR<T>' where:
+      ✗  'T' is 'f32' or 'f16'
+ • 'operator * (vecR<T>  ✗ , matCxR<T>  ✗ ) -> vecC<T>' where:
+      ✗  'T' is 'f32' or 'f16'
+ • 'operator * (matKxR<T>  ✗ , matCxK<T>  ✗ ) -> matCxR<T>' where:
+      ✗  'T' is 'f32' or 'f16'
+
+    %23:u32 = mul %47, 4u
+    ^^^^^^^^^^^^^^^^^^^^^
+
+:24:3 note: in block
+  $B3: {
+  ^^^
+
+note: # Disassembly
+Inner = struct @align(16) {
+  m:mat2x4<f32> @offset(0)
+}
+
+Outer = struct @align(16) {
+  a:array<Inner, 4> @offset(0)
+}
+
+$B1: {  # root
+  %a:ptr<uniform, array<vec4<u32>, 64>, read> = var @binding_point(0, 0)
+  %counter:ptr<private, i32, read_write> = var, 0i
+}
+
+%i = func():i32 {
+  $B2: {
+    %4:i32 = load %counter
+    %5:i32 = add %4, 1i
+    store %counter, %5
+    %6:i32 = load %counter
+    ret %6
+  }
+}
+%f = @compute @workgroup_size(1, 1, 1) func():void {
+  $B3: {
+    %8:i32 = call %i
+    %9:u32 = convert %8
+    %10:u32 = mul 256u, %9
+    %11:i32 = call %i
+    %12:u32 = convert %11
+    %13:u32 = mul 64u, %12
+    %14:i32 = call %i
+    %15:u32 = convert %14
+    %16:u32 = mul 16u, %15
+    %17:array<Outer, 4> = call %18, 0u
+    %l_a:array<Outer, 4> = let %17
+    %20:u32 = add %10, %13
+    %21:u32 = add %20, %16
+    %22:u32 = add %21, %23
+    %24:Outer = call %25, %22
+    %l_a_i:Outer = let %24
+    %27:array<Inner, 4> = call %28, %10
+    %l_a_i_a:array<Inner, 4> = let %27
+    %30:u32 = add %10, %13
+    %31:Inner = call %32, %30
+    %l_a_i_a_i:Inner = let %31
+    %34:u32 = add %10, %13
+    %35:u32 = add %34, %16
+    %36:u32 = add %35, %23
+    %37:mat2x4<f32> = call %38, %36
+    %l_a_i_a_i_m:mat2x4<f32> = let %37
+    %40:u32 = add %10, %13
+    %41:u32 = add %40, %16
+    %42:u32 = div %41, 16u
+    %43:ptr<uniform, vec4<u32>, read> = access %a, %42
+    %44:vec4<u32> = load %43
+    %45:vec4<f32> = bitcast %44
+    %l_a_i_a_i_m_i:vec4<f32> = let %45
+    %47:i32 = call %i
+    %23:u32 = mul %47, 4u
+    %48:u32 = add %10, %13
+    %49:u32 = add %48, %16
+    %50:u32 = add %49, %23
+    %51:u32 = div %50, 16u
+    %52:ptr<uniform, vec4<u32>, read> = access %a, %51
+    %53:u32 = mod %50, 16u
+    %54:u32 = div %53, 4u
+    %55:u32 = load_vector_element %52, %54
+    %56:f32 = bitcast %55
+    %l_a_i_a_i_m_i_i:f32 = let %56
+    ret
+  }
+}
+%28 = func(%start_byte_offset:u32):array<Inner, 4> {
+  $B4: {
+    %a_1:ptr<function, array<Inner, 4>, read_write> = var, array<Inner, 4>(Inner(mat2x4<f32>(vec4<f32>(0.0f))))  # %a_1: 'a'
+    loop [i: $B5, b: $B6, c: $B7] {  # loop_1
+      $B5: {  # initializer
+        next_iteration 0u  # -> $B6
+      }
+      $B6 (%idx:u32): {  # body
+        %61:bool = gte %idx, 4u
+        if %61 [t: $B8] {  # if_1
+          $B8: {  # true
+            exit_loop  # loop_1
+          }
+        }
+        %62:u32 = mul %idx, 64u
+        %63:u32 = add %start_byte_offset, %62
+        %64:ptr<function, Inner, read_write> = access %a_1, %idx
+        %65:Inner = call %32, %63
+        store %64, %65
+        continue  # -> $B7
+      }
+      $B7: {  # continuing
+        %66:u32 = add %idx, 1u
+        next_iteration %66  # -> $B6
+      }
+    }
+    %67:array<Inner, 4> = load %a_1
+    ret %67
+  }
+}
+%32 = func(%start_byte_offset_1:u32):Inner {  # %start_byte_offset_1: 'start_byte_offset'
+  $B9: {
+    %69:mat2x4<f32> = call %38, %start_byte_offset_1
+    %70:Inner = construct %69
+    ret %70
+  }
+}
+%38 = func(%start_byte_offset_2:u32):mat2x4<f32> {  # %start_byte_offset_2: 'start_byte_offset'
+  $B10: {
+    %72:u32 = div %start_byte_offset_2, 16u
+    %73:ptr<uniform, vec4<u32>, read> = access %a, %72
+    %74:vec4<u32> = load %73
+    %75:vec4<f32> = bitcast %74
+    %76:u32 = add 16u, %start_byte_offset_2
+    %77:u32 = div %76, 16u
+    %78:ptr<uniform, vec4<u32>, read> = access %a, %77
+    %79:vec4<u32> = load %78
+    %80:vec4<f32> = bitcast %79
+    %81:mat2x4<f32> = construct %75, %80
+    ret %81
+  }
+}
+%25 = func(%start_byte_offset_3:u32):Outer {  # %start_byte_offset_3: 'start_byte_offset'
+  $B11: {
+    %83:array<Inner, 4> = call %28, %start_byte_offset_3
+    %84:Outer = construct %83
+    ret %84
+  }
+}
+%18 = func(%start_byte_offset_4:u32):array<Outer, 4> {  # %start_byte_offset_4: 'start_byte_offset'
+  $B12: {
+    %a_2:ptr<function, array<Outer, 4>, read_write> = var, array<Outer, 4>(Outer(array<Inner, 4>(Inner(mat2x4<f32>(vec4<f32>(0.0f))))))  # %a_2: 'a'
+    loop [i: $B13, b: $B14, c: $B15] {  # loop_2
+      $B13: {  # initializer
+        next_iteration 0u  # -> $B14
+      }
+      $B14 (%idx_1:u32): {  # body
+        %88:bool = gte %idx_1, 4u
+        if %88 [t: $B16] {  # if_2
+          $B16: {  # true
+            exit_loop  # loop_2
+          }
+        }
+        %89:u32 = mul %idx_1, 256u
+        %90:u32 = add %start_byte_offset_4, %89
+        %91:ptr<function, Outer, read_write> = access %a_2, %idx_1
+        %92:Outer = call %25, %90
+        store %91, %92
+        continue  # -> $B15
+      }
+      $B15: {  # continuing
+        %93:u32 = add %idx_1, 1u
+        next_iteration %93  # -> $B14
+      }
+    }
+    %94:array<Outer, 4> = load %a_2
+    ret %94
+  }
+}
+
diff --git a/test/tint/buffer/uniform/std140/struct/mat2x4_f32/static_index_via_ptr.wgsl.expected.ir.dxc.hlsl b/test/tint/buffer/uniform/std140/struct/mat2x4_f32/static_index_via_ptr.wgsl.expected.ir.dxc.hlsl
index 3f437dc..093aedd 100644
--- a/test/tint/buffer/uniform/std140/struct/mat2x4_f32/static_index_via_ptr.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/buffer/uniform/std140/struct/mat2x4_f32/static_index_via_ptr.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,85 @@
-SKIP: FAILED
+struct Inner {
+  float2x4 m;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Access
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct Outer {
+  Inner a[4];
+};
+
+
+cbuffer cbuffer_a : register(b0) {
+  uint4 a[64];
+};
+float2x4 v(uint start_byte_offset) {
+  float4 v_1 = asfloat(a[(start_byte_offset / 16u)]);
+  return float2x4(v_1, asfloat(a[((16u + start_byte_offset) / 16u)]));
+}
+
+Inner v_2(uint start_byte_offset) {
+  Inner v_3 = {v(start_byte_offset)};
+  return v_3;
+}
+
+typedef Inner ary_ret[4];
+ary_ret v_4(uint start_byte_offset) {
+  Inner a[4] = (Inner[4])0;
+  {
+    uint v_5 = 0u;
+    v_5 = 0u;
+    while(true) {
+      uint v_6 = v_5;
+      if ((v_6 >= 4u)) {
+        break;
+      }
+      Inner v_7 = v_2((start_byte_offset + (v_6 * 64u)));
+      a[v_6] = v_7;
+      {
+        v_5 = (v_6 + 1u);
+      }
+      continue;
+    }
+  }
+  Inner v_8[4] = a;
+  return v_8;
+}
+
+Outer v_9(uint start_byte_offset) {
+  Inner v_10[4] = v_4(start_byte_offset);
+  Outer v_11 = {v_10};
+  return v_11;
+}
+
+typedef Outer ary_ret_1[4];
+ary_ret_1 v_12(uint start_byte_offset) {
+  Outer a[4] = (Outer[4])0;
+  {
+    uint v_13 = 0u;
+    v_13 = 0u;
+    while(true) {
+      uint v_14 = v_13;
+      if ((v_14 >= 4u)) {
+        break;
+      }
+      Outer v_15 = v_9((start_byte_offset + (v_14 * 256u)));
+      a[v_14] = v_15;
+      {
+        v_13 = (v_14 + 1u);
+      }
+      continue;
+    }
+  }
+  Outer v_16[4] = a;
+  return v_16;
+}
+
+[numthreads(1, 1, 1)]
+void f() {
+  Outer l_a[4] = v_12(0u);
+  Outer l_a_3 = v_9(912u);
+  Inner l_a_3_a[4] = v_4(912u);
+  Inner l_a_3_a_2 = v_2(896u);
+  float2x4 l_a_3_a_2_m = v(912u);
+  float4 l_a_3_a_2_m_1 = asfloat(a[57u]);
+  float l_a_3_a_2_m_1_0 = asfloat(a[57u].x);
+}
+
diff --git a/test/tint/buffer/uniform/std140/struct/mat2x4_f32/static_index_via_ptr.wgsl.expected.ir.fxc.hlsl b/test/tint/buffer/uniform/std140/struct/mat2x4_f32/static_index_via_ptr.wgsl.expected.ir.fxc.hlsl
index 3f437dc..563b222 100644
--- a/test/tint/buffer/uniform/std140/struct/mat2x4_f32/static_index_via_ptr.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/buffer/uniform/std140/struct/mat2x4_f32/static_index_via_ptr.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,85 @@
-SKIP: FAILED
+struct Inner {
+  float2x4 m;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Access
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct Outer {
+  Inner a[4];
+};
+
+
+cbuffer cbuffer_a : register(b0) {
+  uint4 a[64];
+};
+float2x4 v(uint start_byte_offset) {
+  float4 v_1 = asfloat(a[(start_byte_offset / 16u)]);
+  return float2x4(v_1, asfloat(a[((16u + start_byte_offset) / 16u)]));
+}
+
+Inner v_2(uint start_byte_offset) {
+  Inner v_3 = {v(start_byte_offset)};
+  return v_3;
+}
+
+typedef Inner ary_ret[4];
+ary_ret v_4(uint start_byte_offset) {
+  Inner a[4] = (Inner[4])0;
+  {
+    uint v_5 = 0u;
+    v_5 = 0u;
+    while(true) {
+      uint v_6 = v_5;
+      if ((v_6 >= 4u)) {
+        break;
+      }
+      Inner v_7 = v_2((start_byte_offset + (v_6 * 64u)));
+      a[v_6] = v_7;
+      {
+        v_5 = (v_6 + 1u);
+      }
+      continue;
+    }
+  }
+  Inner v_8[4] = a;
+  return v_8;
+}
+
+Outer v_9(uint start_byte_offset) {
+  Inner v_10[4] = v_4(start_byte_offset);
+  Outer v_11 = {v_10};
+  return v_11;
+}
+
+typedef Outer ary_ret_1[4];
+ary_ret_1 v_12(uint start_byte_offset) {
+  Outer a[4] = (Outer[4])0;
+  {
+    uint v_13 = 0u;
+    v_13 = 0u;
+    while(true) {
+      uint v_14 = v_13;
+      if ((v_14 >= 4u)) {
+        break;
+      }
+      Outer v_15 = v_9((start_byte_offset + (v_14 * 256u)));
+      a[v_14] = v_15;
+      {
+        v_13 = (v_14 + 1u);
+      }
+      continue;
+    }
+  }
+  Outer v_16[4] = a;
+  return v_16;
+}
+
+[numthreads(1, 1, 1)]
+void f() {
+  Outer l_a[4] = v_12(0u);
+  Outer l_a_3 = v_9(912u);
+  Inner l_a_3_a[4] = v_4(912u);
+  Inner l_a_3_a_2 = v_2(912u);
+  float2x4 l_a_3_a_2_m = v(912u);
+  float4 l_a_3_a_2_m_1 = asfloat(a[57u]);
+  float l_a_3_a_2_m_1_0 = asfloat(a[57u].x);
+}
+
diff --git a/test/tint/buffer/uniform/std140/struct/mat2x4_f32/to_builtin.wgsl.expected.ir.dxc.hlsl b/test/tint/buffer/uniform/std140/struct/mat2x4_f32/to_builtin.wgsl.expected.ir.dxc.hlsl
index 3f437dc..9f3fa08 100644
--- a/test/tint/buffer/uniform/std140/struct/mat2x4_f32/to_builtin.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/buffer/uniform/std140/struct/mat2x4_f32/to_builtin.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,16 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Access
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+cbuffer cbuffer_u : register(b0) {
+  uint4 u[32];
+};
+float2x4 v(uint start_byte_offset) {
+  float4 v_1 = asfloat(u[(start_byte_offset / 16u)]);
+  return float2x4(v_1, asfloat(u[((16u + start_byte_offset) / 16u)]));
+}
+
+[numthreads(1, 1, 1)]
+void f() {
+  float4x2 t = transpose(v(272u));
+  float l = length(asfloat(u[2u]).ywxz);
+  float a = abs(asfloat(u[2u]).ywxz[0u]);
+}
+
diff --git a/test/tint/buffer/uniform/std140/struct/mat2x4_f32/to_builtin.wgsl.expected.ir.fxc.hlsl b/test/tint/buffer/uniform/std140/struct/mat2x4_f32/to_builtin.wgsl.expected.ir.fxc.hlsl
index 3f437dc..9f3fa08 100644
--- a/test/tint/buffer/uniform/std140/struct/mat2x4_f32/to_builtin.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/buffer/uniform/std140/struct/mat2x4_f32/to_builtin.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,16 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Access
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+cbuffer cbuffer_u : register(b0) {
+  uint4 u[32];
+};
+float2x4 v(uint start_byte_offset) {
+  float4 v_1 = asfloat(u[(start_byte_offset / 16u)]);
+  return float2x4(v_1, asfloat(u[((16u + start_byte_offset) / 16u)]));
+}
+
+[numthreads(1, 1, 1)]
+void f() {
+  float4x2 t = transpose(v(272u));
+  float l = length(asfloat(u[2u]).ywxz);
+  float a = abs(asfloat(u[2u]).ywxz[0u]);
+}
+
diff --git a/test/tint/buffer/uniform/std140/struct/mat2x4_f32/to_fn.wgsl.expected.ir.dxc.hlsl b/test/tint/buffer/uniform/std140/struct/mat2x4_f32/to_fn.wgsl.expected.ir.dxc.hlsl
index 3f437dc..0c73777 100644
--- a/test/tint/buffer/uniform/std140/struct/mat2x4_f32/to_fn.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/buffer/uniform/std140/struct/mat2x4_f32/to_fn.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,71 @@
-SKIP: FAILED
+struct S {
+  int before;
+  float2x4 m;
+  int after;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Access
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+
+cbuffer cbuffer_u : register(b0) {
+  uint4 u[32];
+};
+void a(S a_1[4]) {
+}
+
+void b(S s) {
+}
+
+void c(float2x4 m) {
+}
+
+void d(float4 v) {
+}
+
+void e(float f) {
+}
+
+float2x4 v_1(uint start_byte_offset) {
+  float4 v_2 = asfloat(u[(start_byte_offset / 16u)]);
+  return float2x4(v_2, asfloat(u[((16u + start_byte_offset) / 16u)]));
+}
+
+S v_3(uint start_byte_offset) {
+  int v_4 = asint(u[(start_byte_offset / 16u)][((start_byte_offset % 16u) / 4u)]);
+  float2x4 v_5 = v_1((16u + start_byte_offset));
+  S v_6 = {v_4, v_5, asint(u[((64u + start_byte_offset) / 16u)][(((64u + start_byte_offset) % 16u) / 4u)])};
+  return v_6;
+}
+
+typedef S ary_ret[4];
+ary_ret v_7(uint start_byte_offset) {
+  S a[4] = (S[4])0;
+  {
+    uint v_8 = 0u;
+    v_8 = 0u;
+    while(true) {
+      uint v_9 = v_8;
+      if ((v_9 >= 4u)) {
+        break;
+      }
+      S v_10 = v_3((start_byte_offset + (v_9 * 128u)));
+      a[v_9] = v_10;
+      {
+        v_8 = (v_9 + 1u);
+      }
+      continue;
+    }
+  }
+  S v_11[4] = a;
+  return v_11;
+}
+
+[numthreads(1, 1, 1)]
+void f() {
+  S v_12[4] = v_7(0u);
+  a(v_12);
+  S v_13 = v_3(256u);
+  b(v_13);
+  c(v_1(272u));
+  d(asfloat(u[2u]).ywxz);
+  e(asfloat(u[2u]).ywxz[0u]);
+}
+
diff --git a/test/tint/buffer/uniform/std140/struct/mat2x4_f32/to_fn.wgsl.expected.ir.fxc.hlsl b/test/tint/buffer/uniform/std140/struct/mat2x4_f32/to_fn.wgsl.expected.ir.fxc.hlsl
index 3f437dc..0c73777 100644
--- a/test/tint/buffer/uniform/std140/struct/mat2x4_f32/to_fn.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/buffer/uniform/std140/struct/mat2x4_f32/to_fn.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,71 @@
-SKIP: FAILED
+struct S {
+  int before;
+  float2x4 m;
+  int after;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Access
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+
+cbuffer cbuffer_u : register(b0) {
+  uint4 u[32];
+};
+void a(S a_1[4]) {
+}
+
+void b(S s) {
+}
+
+void c(float2x4 m) {
+}
+
+void d(float4 v) {
+}
+
+void e(float f) {
+}
+
+float2x4 v_1(uint start_byte_offset) {
+  float4 v_2 = asfloat(u[(start_byte_offset / 16u)]);
+  return float2x4(v_2, asfloat(u[((16u + start_byte_offset) / 16u)]));
+}
+
+S v_3(uint start_byte_offset) {
+  int v_4 = asint(u[(start_byte_offset / 16u)][((start_byte_offset % 16u) / 4u)]);
+  float2x4 v_5 = v_1((16u + start_byte_offset));
+  S v_6 = {v_4, v_5, asint(u[((64u + start_byte_offset) / 16u)][(((64u + start_byte_offset) % 16u) / 4u)])};
+  return v_6;
+}
+
+typedef S ary_ret[4];
+ary_ret v_7(uint start_byte_offset) {
+  S a[4] = (S[4])0;
+  {
+    uint v_8 = 0u;
+    v_8 = 0u;
+    while(true) {
+      uint v_9 = v_8;
+      if ((v_9 >= 4u)) {
+        break;
+      }
+      S v_10 = v_3((start_byte_offset + (v_9 * 128u)));
+      a[v_9] = v_10;
+      {
+        v_8 = (v_9 + 1u);
+      }
+      continue;
+    }
+  }
+  S v_11[4] = a;
+  return v_11;
+}
+
+[numthreads(1, 1, 1)]
+void f() {
+  S v_12[4] = v_7(0u);
+  a(v_12);
+  S v_13 = v_3(256u);
+  b(v_13);
+  c(v_1(272u));
+  d(asfloat(u[2u]).ywxz);
+  e(asfloat(u[2u]).ywxz[0u]);
+}
+
diff --git a/test/tint/buffer/uniform/std140/struct/mat2x4_f32/to_private.wgsl.expected.ir.dxc.hlsl b/test/tint/buffer/uniform/std140/struct/mat2x4_f32/to_private.wgsl.expected.ir.dxc.hlsl
index 3f437dc..16bfd7f 100644
--- a/test/tint/buffer/uniform/std140/struct/mat2x4_f32/to_private.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/buffer/uniform/std140/struct/mat2x4_f32/to_private.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,56 @@
-SKIP: FAILED
+struct S {
+  int before;
+  float2x4 m;
+  int after;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Access
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+
+cbuffer cbuffer_u : register(b0) {
+  uint4 u[32];
+};
+static S p[4] = (S[4])0;
+float2x4 v(uint start_byte_offset) {
+  float4 v_1 = asfloat(u[(start_byte_offset / 16u)]);
+  return float2x4(v_1, asfloat(u[((16u + start_byte_offset) / 16u)]));
+}
+
+S v_2(uint start_byte_offset) {
+  int v_3 = asint(u[(start_byte_offset / 16u)][((start_byte_offset % 16u) / 4u)]);
+  float2x4 v_4 = v((16u + start_byte_offset));
+  S v_5 = {v_3, v_4, asint(u[((64u + start_byte_offset) / 16u)][(((64u + start_byte_offset) % 16u) / 4u)])};
+  return v_5;
+}
+
+typedef S ary_ret[4];
+ary_ret v_6(uint start_byte_offset) {
+  S a[4] = (S[4])0;
+  {
+    uint v_7 = 0u;
+    v_7 = 0u;
+    while(true) {
+      uint v_8 = v_7;
+      if ((v_8 >= 4u)) {
+        break;
+      }
+      S v_9 = v_2((start_byte_offset + (v_8 * 128u)));
+      a[v_8] = v_9;
+      {
+        v_7 = (v_8 + 1u);
+      }
+      continue;
+    }
+  }
+  S v_10[4] = a;
+  return v_10;
+}
+
+[numthreads(1, 1, 1)]
+void f() {
+  S v_11[4] = v_6(0u);
+  p = v_11;
+  S v_12 = v_2(256u);
+  p[1] = v_12;
+  p[3].m = v(272u);
+  p[1].m[0] = asfloat(u[2u]).ywxz;
+}
+
diff --git a/test/tint/buffer/uniform/std140/struct/mat2x4_f32/to_private.wgsl.expected.ir.fxc.hlsl b/test/tint/buffer/uniform/std140/struct/mat2x4_f32/to_private.wgsl.expected.ir.fxc.hlsl
index 3f437dc..16bfd7f 100644
--- a/test/tint/buffer/uniform/std140/struct/mat2x4_f32/to_private.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/buffer/uniform/std140/struct/mat2x4_f32/to_private.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,56 @@
-SKIP: FAILED
+struct S {
+  int before;
+  float2x4 m;
+  int after;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Access
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+
+cbuffer cbuffer_u : register(b0) {
+  uint4 u[32];
+};
+static S p[4] = (S[4])0;
+float2x4 v(uint start_byte_offset) {
+  float4 v_1 = asfloat(u[(start_byte_offset / 16u)]);
+  return float2x4(v_1, asfloat(u[((16u + start_byte_offset) / 16u)]));
+}
+
+S v_2(uint start_byte_offset) {
+  int v_3 = asint(u[(start_byte_offset / 16u)][((start_byte_offset % 16u) / 4u)]);
+  float2x4 v_4 = v((16u + start_byte_offset));
+  S v_5 = {v_3, v_4, asint(u[((64u + start_byte_offset) / 16u)][(((64u + start_byte_offset) % 16u) / 4u)])};
+  return v_5;
+}
+
+typedef S ary_ret[4];
+ary_ret v_6(uint start_byte_offset) {
+  S a[4] = (S[4])0;
+  {
+    uint v_7 = 0u;
+    v_7 = 0u;
+    while(true) {
+      uint v_8 = v_7;
+      if ((v_8 >= 4u)) {
+        break;
+      }
+      S v_9 = v_2((start_byte_offset + (v_8 * 128u)));
+      a[v_8] = v_9;
+      {
+        v_7 = (v_8 + 1u);
+      }
+      continue;
+    }
+  }
+  S v_10[4] = a;
+  return v_10;
+}
+
+[numthreads(1, 1, 1)]
+void f() {
+  S v_11[4] = v_6(0u);
+  p = v_11;
+  S v_12 = v_2(256u);
+  p[1] = v_12;
+  p[3].m = v(272u);
+  p[1].m[0] = asfloat(u[2u]).ywxz;
+}
+
diff --git a/test/tint/buffer/uniform/std140/struct/mat2x4_f32/to_storage.wgsl.expected.ir.dxc.hlsl b/test/tint/buffer/uniform/std140/struct/mat2x4_f32/to_storage.wgsl.expected.ir.dxc.hlsl
index 3f437dc..ddffdf6 100644
--- a/test/tint/buffer/uniform/std140/struct/mat2x4_f32/to_storage.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/buffer/uniform/std140/struct/mat2x4_f32/to_storage.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,86 @@
-SKIP: FAILED
+struct S {
+  int before;
+  float2x4 m;
+  int after;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Access
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+
+cbuffer cbuffer_u : register(b0) {
+  uint4 u[32];
+};
+RWByteAddressBuffer s : register(u1);
+void v(uint offset, float2x4 obj) {
+  s.Store4((offset + 0u), asuint(obj[0u]));
+  s.Store4((offset + 16u), asuint(obj[1u]));
+}
+
+float2x4 v_1(uint start_byte_offset) {
+  float4 v_2 = asfloat(u[(start_byte_offset / 16u)]);
+  return float2x4(v_2, asfloat(u[((16u + start_byte_offset) / 16u)]));
+}
+
+void v_3(uint offset, S obj) {
+  s.Store((offset + 0u), asuint(obj.before));
+  v((offset + 16u), obj.m);
+  s.Store((offset + 64u), asuint(obj.after));
+}
+
+S v_4(uint start_byte_offset) {
+  int v_5 = asint(u[(start_byte_offset / 16u)][((start_byte_offset % 16u) / 4u)]);
+  float2x4 v_6 = v_1((16u + start_byte_offset));
+  S v_7 = {v_5, v_6, asint(u[((64u + start_byte_offset) / 16u)][(((64u + start_byte_offset) % 16u) / 4u)])};
+  return v_7;
+}
+
+void v_8(uint offset, S obj[4]) {
+  {
+    uint v_9 = 0u;
+    v_9 = 0u;
+    while(true) {
+      uint v_10 = v_9;
+      if ((v_10 >= 4u)) {
+        break;
+      }
+      S v_11 = obj[v_10];
+      v_3((offset + (v_10 * 128u)), v_11);
+      {
+        v_9 = (v_10 + 1u);
+      }
+      continue;
+    }
+  }
+}
+
+typedef S ary_ret[4];
+ary_ret v_12(uint start_byte_offset) {
+  S a[4] = (S[4])0;
+  {
+    uint v_13 = 0u;
+    v_13 = 0u;
+    while(true) {
+      uint v_14 = v_13;
+      if ((v_14 >= 4u)) {
+        break;
+      }
+      S v_15 = v_4((start_byte_offset + (v_14 * 128u)));
+      a[v_14] = v_15;
+      {
+        v_13 = (v_14 + 1u);
+      }
+      continue;
+    }
+  }
+  S v_16[4] = a;
+  return v_16;
+}
+
+[numthreads(1, 1, 1)]
+void f() {
+  S v_17[4] = v_12(0u);
+  v_8(0u, v_17);
+  S v_18 = v_4(256u);
+  v_3(128u, v_18);
+  v(400u, v_1(272u));
+  s.Store4(144u, asuint(asfloat(u[2u]).ywxz));
+}
+
diff --git a/test/tint/buffer/uniform/std140/struct/mat2x4_f32/to_storage.wgsl.expected.ir.fxc.hlsl b/test/tint/buffer/uniform/std140/struct/mat2x4_f32/to_storage.wgsl.expected.ir.fxc.hlsl
index 3f437dc..ddffdf6 100644
--- a/test/tint/buffer/uniform/std140/struct/mat2x4_f32/to_storage.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/buffer/uniform/std140/struct/mat2x4_f32/to_storage.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,86 @@
-SKIP: FAILED
+struct S {
+  int before;
+  float2x4 m;
+  int after;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Access
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+
+cbuffer cbuffer_u : register(b0) {
+  uint4 u[32];
+};
+RWByteAddressBuffer s : register(u1);
+void v(uint offset, float2x4 obj) {
+  s.Store4((offset + 0u), asuint(obj[0u]));
+  s.Store4((offset + 16u), asuint(obj[1u]));
+}
+
+float2x4 v_1(uint start_byte_offset) {
+  float4 v_2 = asfloat(u[(start_byte_offset / 16u)]);
+  return float2x4(v_2, asfloat(u[((16u + start_byte_offset) / 16u)]));
+}
+
+void v_3(uint offset, S obj) {
+  s.Store((offset + 0u), asuint(obj.before));
+  v((offset + 16u), obj.m);
+  s.Store((offset + 64u), asuint(obj.after));
+}
+
+S v_4(uint start_byte_offset) {
+  int v_5 = asint(u[(start_byte_offset / 16u)][((start_byte_offset % 16u) / 4u)]);
+  float2x4 v_6 = v_1((16u + start_byte_offset));
+  S v_7 = {v_5, v_6, asint(u[((64u + start_byte_offset) / 16u)][(((64u + start_byte_offset) % 16u) / 4u)])};
+  return v_7;
+}
+
+void v_8(uint offset, S obj[4]) {
+  {
+    uint v_9 = 0u;
+    v_9 = 0u;
+    while(true) {
+      uint v_10 = v_9;
+      if ((v_10 >= 4u)) {
+        break;
+      }
+      S v_11 = obj[v_10];
+      v_3((offset + (v_10 * 128u)), v_11);
+      {
+        v_9 = (v_10 + 1u);
+      }
+      continue;
+    }
+  }
+}
+
+typedef S ary_ret[4];
+ary_ret v_12(uint start_byte_offset) {
+  S a[4] = (S[4])0;
+  {
+    uint v_13 = 0u;
+    v_13 = 0u;
+    while(true) {
+      uint v_14 = v_13;
+      if ((v_14 >= 4u)) {
+        break;
+      }
+      S v_15 = v_4((start_byte_offset + (v_14 * 128u)));
+      a[v_14] = v_15;
+      {
+        v_13 = (v_14 + 1u);
+      }
+      continue;
+    }
+  }
+  S v_16[4] = a;
+  return v_16;
+}
+
+[numthreads(1, 1, 1)]
+void f() {
+  S v_17[4] = v_12(0u);
+  v_8(0u, v_17);
+  S v_18 = v_4(256u);
+  v_3(128u, v_18);
+  v(400u, v_1(272u));
+  s.Store4(144u, asuint(asfloat(u[2u]).ywxz));
+}
+
diff --git a/test/tint/buffer/uniform/std140/struct/mat2x4_f32/to_workgroup.wgsl.expected.ir.dxc.hlsl b/test/tint/buffer/uniform/std140/struct/mat2x4_f32/to_workgroup.wgsl.expected.ir.dxc.hlsl
index 3f437dc..45bd4c4 100644
--- a/test/tint/buffer/uniform/std140/struct/mat2x4_f32/to_workgroup.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/buffer/uniform/std140/struct/mat2x4_f32/to_workgroup.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,81 @@
-SKIP: FAILED
+struct S {
+  int before;
+  float2x4 m;
+  int after;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Access
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct f_inputs {
+  uint tint_local_index : SV_GroupIndex;
+};
+
+
+cbuffer cbuffer_u : register(b0) {
+  uint4 u[32];
+};
+groupshared S w[4];
+float2x4 v(uint start_byte_offset) {
+  float4 v_1 = asfloat(u[(start_byte_offset / 16u)]);
+  return float2x4(v_1, asfloat(u[((16u + start_byte_offset) / 16u)]));
+}
+
+S v_2(uint start_byte_offset) {
+  int v_3 = asint(u[(start_byte_offset / 16u)][((start_byte_offset % 16u) / 4u)]);
+  float2x4 v_4 = v((16u + start_byte_offset));
+  S v_5 = {v_3, v_4, asint(u[((64u + start_byte_offset) / 16u)][(((64u + start_byte_offset) % 16u) / 4u)])};
+  return v_5;
+}
+
+typedef S ary_ret[4];
+ary_ret v_6(uint start_byte_offset) {
+  S a[4] = (S[4])0;
+  {
+    uint v_7 = 0u;
+    v_7 = 0u;
+    while(true) {
+      uint v_8 = v_7;
+      if ((v_8 >= 4u)) {
+        break;
+      }
+      S v_9 = v_2((start_byte_offset + (v_8 * 128u)));
+      a[v_8] = v_9;
+      {
+        v_7 = (v_8 + 1u);
+      }
+      continue;
+    }
+  }
+  S v_10[4] = a;
+  return v_10;
+}
+
+void f_inner(uint tint_local_index) {
+  {
+    uint v_11 = 0u;
+    v_11 = tint_local_index;
+    while(true) {
+      uint v_12 = v_11;
+      if ((v_12 >= 4u)) {
+        break;
+      }
+      S v_13 = (S)0;
+      w[v_12] = v_13;
+      {
+        v_11 = (v_12 + 1u);
+      }
+      continue;
+    }
+  }
+  GroupMemoryBarrierWithGroupSync();
+  S v_14[4] = v_6(0u);
+  w = v_14;
+  S v_15 = v_2(256u);
+  w[1] = v_15;
+  w[3].m = v(272u);
+  w[1].m[0] = asfloat(u[2u]).ywxz;
+}
+
+[numthreads(1, 1, 1)]
+void f(f_inputs inputs) {
+  f_inner(inputs.tint_local_index);
+}
+
diff --git a/test/tint/buffer/uniform/std140/struct/mat2x4_f32/to_workgroup.wgsl.expected.ir.fxc.hlsl b/test/tint/buffer/uniform/std140/struct/mat2x4_f32/to_workgroup.wgsl.expected.ir.fxc.hlsl
index 3f437dc..45bd4c4 100644
--- a/test/tint/buffer/uniform/std140/struct/mat2x4_f32/to_workgroup.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/buffer/uniform/std140/struct/mat2x4_f32/to_workgroup.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,81 @@
-SKIP: FAILED
+struct S {
+  int before;
+  float2x4 m;
+  int after;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Access
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct f_inputs {
+  uint tint_local_index : SV_GroupIndex;
+};
+
+
+cbuffer cbuffer_u : register(b0) {
+  uint4 u[32];
+};
+groupshared S w[4];
+float2x4 v(uint start_byte_offset) {
+  float4 v_1 = asfloat(u[(start_byte_offset / 16u)]);
+  return float2x4(v_1, asfloat(u[((16u + start_byte_offset) / 16u)]));
+}
+
+S v_2(uint start_byte_offset) {
+  int v_3 = asint(u[(start_byte_offset / 16u)][((start_byte_offset % 16u) / 4u)]);
+  float2x4 v_4 = v((16u + start_byte_offset));
+  S v_5 = {v_3, v_4, asint(u[((64u + start_byte_offset) / 16u)][(((64u + start_byte_offset) % 16u) / 4u)])};
+  return v_5;
+}
+
+typedef S ary_ret[4];
+ary_ret v_6(uint start_byte_offset) {
+  S a[4] = (S[4])0;
+  {
+    uint v_7 = 0u;
+    v_7 = 0u;
+    while(true) {
+      uint v_8 = v_7;
+      if ((v_8 >= 4u)) {
+        break;
+      }
+      S v_9 = v_2((start_byte_offset + (v_8 * 128u)));
+      a[v_8] = v_9;
+      {
+        v_7 = (v_8 + 1u);
+      }
+      continue;
+    }
+  }
+  S v_10[4] = a;
+  return v_10;
+}
+
+void f_inner(uint tint_local_index) {
+  {
+    uint v_11 = 0u;
+    v_11 = tint_local_index;
+    while(true) {
+      uint v_12 = v_11;
+      if ((v_12 >= 4u)) {
+        break;
+      }
+      S v_13 = (S)0;
+      w[v_12] = v_13;
+      {
+        v_11 = (v_12 + 1u);
+      }
+      continue;
+    }
+  }
+  GroupMemoryBarrierWithGroupSync();
+  S v_14[4] = v_6(0u);
+  w = v_14;
+  S v_15 = v_2(256u);
+  w[1] = v_15;
+  w[3].m = v(272u);
+  w[1].m[0] = asfloat(u[2u]).ywxz;
+}
+
+[numthreads(1, 1, 1)]
+void f(f_inputs inputs) {
+  f_inner(inputs.tint_local_index);
+}
+
diff --git a/test/tint/buffer/uniform/std140/struct/mat3x2_f16/dynamic_index_via_ptr.wgsl.expected.ir.dxc.hlsl b/test/tint/buffer/uniform/std140/struct/mat3x2_f16/dynamic_index_via_ptr.wgsl.expected.ir.dxc.hlsl
index 3f437dc..bd94d38 100644
--- a/test/tint/buffer/uniform/std140/struct/mat3x2_f16/dynamic_index_via_ptr.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/buffer/uniform/std140/struct/mat3x2_f16/dynamic_index_via_ptr.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,303 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Access
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+
+enable f16;
+
+struct Inner {
+  @size(64)
+  m : mat3x2<f16>,
+}
+
+struct Outer {
+  a : array<Inner, 4>,
+}
+
+@group(0) @binding(0) var<uniform> a : array<Outer, 4>;
+
+var<private> counter = 0;
+
+fn i() -> i32 {
+  counter++;
+  return counter;
+}
+
+@compute @workgroup_size(1)
+fn f() {
+  let p_a = &(a);
+  let p_a_i = &((*(p_a))[i()]);
+  let p_a_i_a = &((*(p_a_i)).a);
+  let p_a_i_a_i = &((*(p_a_i_a))[i()]);
+  let p_a_i_a_i_m = &((*(p_a_i_a_i)).m);
+  let p_a_i_a_i_m_i = &((*(p_a_i_a_i_m))[i()]);
+  let l_a : array<Outer, 4> = *(p_a);
+  let l_a_i : Outer = *(p_a_i);
+  let l_a_i_a : array<Inner, 4> = *(p_a_i_a);
+  let l_a_i_a_i : Inner = *(p_a_i_a_i);
+  let l_a_i_a_i_m : mat3x2<f16> = *(p_a_i_a_i_m);
+  let l_a_i_a_i_m_i : vec2<f16> = *(p_a_i_a_i_m_i);
+  let l_a_i_a_i_m_i_i : f16 = (*(p_a_i_a_i_m_i))[i()];
+}
+
+Failed to generate: :40:24 error: binary: %26 is not in scope
+    %25:u32 = add %24, %26
+                       ^^^
+
+:24:3 note: in block
+  $B3: {
+  ^^^
+
+:66:5 note: %26 declared here
+    %26:u32 = mul %54, 2u
+    ^^^^^^^
+
+:48:24 error: binary: %26 is not in scope
+    %36:u32 = add %35, %26
+                       ^^^
+
+:24:3 note: in block
+  $B3: {
+  ^^^
+
+:66:5 note: %26 declared here
+    %26:u32 = mul %54, 2u
+    ^^^^^^^
+
+:53:24 error: binary: %26 is not in scope
+    %42:u32 = add %41, %26
+                       ^^^
+
+:24:3 note: in block
+  $B3: {
+  ^^^
+
+:66:5 note: %26 declared here
+    %26:u32 = mul %54, 2u
+    ^^^^^^^
+
+:66:5 error: binary: no matching overload for 'operator * (i32, u32)'
+
+9 candidate operators:
+ • 'operator * (T  ✓ , T  ✗ ) -> T' where:
+      ✓  'T' is 'f32', 'i32', 'u32' or 'f16'
+ • 'operator * (vecN<T>  ✗ , T  ✓ ) -> vecN<T>' where:
+      ✓  'T' is 'f32', 'i32', 'u32' or 'f16'
+ • 'operator * (T  ✓ , vecN<T>  ✗ ) -> vecN<T>' where:
+      ✓  'T' is 'f32', 'i32', 'u32' or 'f16'
+ • 'operator * (T  ✗ , matNxM<T>  ✗ ) -> matNxM<T>' where:
+      ✗  'T' is 'f32' or 'f16'
+ • 'operator * (matNxM<T>  ✗ , T  ✗ ) -> matNxM<T>' where:
+      ✗  'T' is 'f32' or 'f16'
+ • 'operator * (vecN<T>  ✗ , vecN<T>  ✗ ) -> vecN<T>' where:
+      ✗  'T' is 'f32', 'i32', 'u32' or 'f16'
+ • 'operator * (matCxR<T>  ✗ , vecC<T>  ✗ ) -> vecR<T>' where:
+      ✗  'T' is 'f32' or 'f16'
+ • 'operator * (vecR<T>  ✗ , matCxR<T>  ✗ ) -> vecC<T>' where:
+      ✗  'T' is 'f32' or 'f16'
+ • 'operator * (matKxR<T>  ✗ , matCxK<T>  ✗ ) -> matCxR<T>' where:
+      ✗  'T' is 'f32' or 'f16'
+
+    %26:u32 = mul %54, 2u
+    ^^^^^^^^^^^^^^^^^^^^^
+
+:24:3 note: in block
+  $B3: {
+  ^^^
+
+note: # Disassembly
+Inner = struct @align(4) {
+  m:mat3x2<f16> @offset(0)
+}
+
+Outer = struct @align(4) {
+  a:array<Inner, 4> @offset(0)
+}
+
+$B1: {  # root
+  %a:ptr<uniform, array<vec4<u32>, 64>, read> = var @binding_point(0, 0)
+  %counter:ptr<private, i32, read_write> = var, 0i
+}
+
+%i = func():i32 {
+  $B2: {
+    %4:i32 = load %counter
+    %5:i32 = add %4, 1i
+    store %counter, %5
+    %6:i32 = load %counter
+    ret %6
+  }
+}
+%f = @compute @workgroup_size(1, 1, 1) func():void {
+  $B3: {
+    %8:i32 = call %i
+    %9:u32 = convert %8
+    %10:u32 = mul 256u, %9
+    %11:i32 = call %i
+    %12:u32 = convert %11
+    %13:u32 = mul 64u, %12
+    %14:i32 = call %i
+    %15:u32 = convert %14
+    %16:u32 = mul 4u, %15
+    %17:array<Outer, 4> = call %18, 0u
+    %l_a:array<Outer, 4> = let %17
+    %20:Outer = call %21, %10
+    %l_a_i:Outer = let %20
+    %23:u32 = add %10, %13
+    %24:u32 = add %23, %16
+    %25:u32 = add %24, %26
+    %27:array<Inner, 4> = call %28, %25
+    %l_a_i_a:array<Inner, 4> = let %27
+    %30:u32 = add %10, %13
+    %31:Inner = call %32, %30
+    %l_a_i_a_i:Inner = let %31
+    %34:u32 = add %10, %13
+    %35:u32 = add %34, %16
+    %36:u32 = add %35, %26
+    %37:mat3x2<f16> = call %38, %36
+    %l_a_i_a_i_m:mat3x2<f16> = let %37
+    %40:u32 = add %10, %13
+    %41:u32 = add %40, %16
+    %42:u32 = add %41, %26
+    %43:u32 = div %42, 16u
+    %44:ptr<uniform, vec4<u32>, read> = access %a, %43
+    %45:u32 = mod %42, 16u
+    %46:u32 = div %45, 4u
+    %47:vec4<u32> = load %44
+    %48:u32 = swizzle %47, z
+    %49:u32 = swizzle %47, x
+    %50:bool = eq %46, 2u
+    %51:u32 = hlsl.ternary %49, %48, %50
+    %52:vec2<f16> = bitcast %51
+    %l_a_i_a_i_m_i:vec2<f16> = let %52
+    %54:i32 = call %i
+    %26:u32 = mul %54, 2u
+    %55:u32 = add %10, %13
+    %56:u32 = add %55, %16
+    %57:u32 = add %56, %26
+    %58:u32 = div %57, 16u
+    %59:ptr<uniform, vec4<u32>, read> = access %a, %58
+    %60:u32 = mod %57, 16u
+    %61:u32 = div %60, 4u
+    %62:u32 = load_vector_element %59, %61
+    %63:u32 = mod %57, 4u
+    %64:bool = eq %63, 0u
+    %65:u32 = hlsl.ternary 16u, 0u, %64
+    %66:u32 = shr %62, %65
+    %67:f32 = hlsl.f16tof32 %66
+    %68:f16 = convert %67
+    %l_a_i_a_i_m_i_i:f16 = let %68
+    ret
+  }
+}
+%21 = func(%start_byte_offset:u32):Outer {
+  $B4: {
+    %71:array<Inner, 4> = call %28, %start_byte_offset
+    %72:Outer = construct %71
+    ret %72
+  }
+}
+%28 = func(%start_byte_offset_1:u32):array<Inner, 4> {  # %start_byte_offset_1: 'start_byte_offset'
+  $B5: {
+    %a_1:ptr<function, array<Inner, 4>, read_write> = var, array<Inner, 4>(Inner(mat3x2<f16>(vec2<f16>(0.0h))))  # %a_1: 'a'
+    loop [i: $B6, b: $B7, c: $B8] {  # loop_1
+      $B6: {  # initializer
+        next_iteration 0u  # -> $B7
+      }
+      $B7 (%idx:u32): {  # body
+        %76:bool = gte %idx, 4u
+        if %76 [t: $B9] {  # if_1
+          $B9: {  # true
+            exit_loop  # loop_1
+          }
+        }
+        %77:u32 = mul %idx, 64u
+        %78:u32 = add %start_byte_offset_1, %77
+        %79:ptr<function, Inner, read_write> = access %a_1, %idx
+        %80:Inner = call %32, %78
+        store %79, %80
+        continue  # -> $B8
+      }
+      $B8: {  # continuing
+        %81:u32 = add %idx, 1u
+        next_iteration %81  # -> $B7
+      }
+    }
+    %82:array<Inner, 4> = load %a_1
+    ret %82
+  }
+}
+%32 = func(%start_byte_offset_2:u32):Inner {  # %start_byte_offset_2: 'start_byte_offset'
+  $B10: {
+    %84:mat3x2<f16> = call %38, %start_byte_offset_2
+    %85:Inner = construct %84
+    ret %85
+  }
+}
+%38 = func(%start_byte_offset_3:u32):mat3x2<f16> {  # %start_byte_offset_3: 'start_byte_offset'
+  $B11: {
+    %87:u32 = div %start_byte_offset_3, 16u
+    %88:ptr<uniform, vec4<u32>, read> = access %a, %87
+    %89:u32 = mod %start_byte_offset_3, 16u
+    %90:u32 = div %89, 4u
+    %91:vec4<u32> = load %88
+    %92:u32 = swizzle %91, z
+    %93:u32 = swizzle %91, x
+    %94:bool = eq %90, 2u
+    %95:u32 = hlsl.ternary %93, %92, %94
+    %96:vec2<f16> = bitcast %95
+    %97:u32 = add 4u, %start_byte_offset_3
+    %98:u32 = div %97, 16u
+    %99:ptr<uniform, vec4<u32>, read> = access %a, %98
+    %100:u32 = mod %97, 16u
+    %101:u32 = div %100, 4u
+    %102:vec4<u32> = load %99
+    %103:u32 = swizzle %102, z
+    %104:u32 = swizzle %102, x
+    %105:bool = eq %101, 2u
+    %106:u32 = hlsl.ternary %104, %103, %105
+    %107:vec2<f16> = bitcast %106
+    %108:u32 = add 8u, %start_byte_offset_3
+    %109:u32 = div %108, 16u
+    %110:ptr<uniform, vec4<u32>, read> = access %a, %109
+    %111:u32 = mod %108, 16u
+    %112:u32 = div %111, 4u
+    %113:vec4<u32> = load %110
+    %114:u32 = swizzle %113, z
+    %115:u32 = swizzle %113, x
+    %116:bool = eq %112, 2u
+    %117:u32 = hlsl.ternary %115, %114, %116
+    %118:vec2<f16> = bitcast %117
+    %119:mat3x2<f16> = construct %96, %107, %118
+    ret %119
+  }
+}
+%18 = func(%start_byte_offset_4:u32):array<Outer, 4> {  # %start_byte_offset_4: 'start_byte_offset'
+  $B12: {
+    %a_2:ptr<function, array<Outer, 4>, read_write> = var, array<Outer, 4>(Outer(array<Inner, 4>(Inner(mat3x2<f16>(vec2<f16>(0.0h))))))  # %a_2: 'a'
+    loop [i: $B13, b: $B14, c: $B15] {  # loop_2
+      $B13: {  # initializer
+        next_iteration 0u  # -> $B14
+      }
+      $B14 (%idx_1:u32): {  # body
+        %123:bool = gte %idx_1, 4u
+        if %123 [t: $B16] {  # if_2
+          $B16: {  # true
+            exit_loop  # loop_2
+          }
+        }
+        %124:u32 = mul %idx_1, 256u
+        %125:u32 = add %start_byte_offset_4, %124
+        %126:ptr<function, Outer, read_write> = access %a_2, %idx_1
+        %127:Outer = call %21, %125
+        store %126, %127
+        continue  # -> $B15
+      }
+      $B15: {  # continuing
+        %128:u32 = add %idx_1, 1u
+        next_iteration %128  # -> $B14
+      }
+    }
+    %129:array<Outer, 4> = load %a_2
+    ret %129
+  }
+}
+
diff --git a/test/tint/buffer/uniform/std140/struct/mat3x2_f16/dynamic_index_via_ptr.wgsl.expected.ir.fxc.hlsl b/test/tint/buffer/uniform/std140/struct/mat3x2_f16/dynamic_index_via_ptr.wgsl.expected.ir.fxc.hlsl
index 3f437dc..890e79d 100644
--- a/test/tint/buffer/uniform/std140/struct/mat3x2_f16/dynamic_index_via_ptr.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/buffer/uniform/std140/struct/mat3x2_f16/dynamic_index_via_ptr.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,319 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Access
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+
+enable f16;
+
+struct Inner {
+  @size(64)
+  m : mat3x2<f16>,
+}
+
+struct Outer {
+  a : array<Inner, 4>,
+}
+
+@group(0) @binding(0) var<uniform> a : array<Outer, 4>;
+
+var<private> counter = 0;
+
+fn i() -> i32 {
+  counter++;
+  return counter;
+}
+
+@compute @workgroup_size(1)
+fn f() {
+  let p_a = &(a);
+  let p_a_i = &((*(p_a))[i()]);
+  let p_a_i_a = &((*(p_a_i)).a);
+  let p_a_i_a_i = &((*(p_a_i_a))[i()]);
+  let p_a_i_a_i_m = &((*(p_a_i_a_i)).m);
+  let p_a_i_a_i_m_i = &((*(p_a_i_a_i_m))[i()]);
+  let l_a : array<Outer, 4> = *(p_a);
+  let l_a_i : Outer = *(p_a_i);
+  let l_a_i_a : array<Inner, 4> = *(p_a_i_a);
+  let l_a_i_a_i : Inner = *(p_a_i_a_i);
+  let l_a_i_a_i_m : mat3x2<f16> = *(p_a_i_a_i_m);
+  let l_a_i_a_i_m_i : vec2<f16> = *(p_a_i_a_i_m_i);
+  let l_a_i_a_i_m_i_i : f16 = (*(p_a_i_a_i_m_i))[i()];
+}
+
+Failed to generate: :38:24 error: binary: %23 is not in scope
+    %22:u32 = add %21, %23
+                       ^^^
+
+:24:3 note: in block
+  $B3: {
+  ^^^
+
+:70:5 note: %23 declared here
+    %23:u32 = mul %58, 2u
+    ^^^^^^^
+
+:43:24 error: binary: %23 is not in scope
+    %29:u32 = add %28, %23
+                       ^^^
+
+:24:3 note: in block
+  $B3: {
+  ^^^
+
+:70:5 note: %23 declared here
+    %23:u32 = mul %58, 2u
+    ^^^^^^^
+
+:48:24 error: binary: %23 is not in scope
+    %35:u32 = add %34, %23
+                       ^^^
+
+:24:3 note: in block
+  $B3: {
+  ^^^
+
+:70:5 note: %23 declared here
+    %23:u32 = mul %58, 2u
+    ^^^^^^^
+
+:53:24 error: binary: %23 is not in scope
+    %41:u32 = add %40, %23
+                       ^^^
+
+:24:3 note: in block
+  $B3: {
+  ^^^
+
+:70:5 note: %23 declared here
+    %23:u32 = mul %58, 2u
+    ^^^^^^^
+
+:70:5 error: binary: no matching overload for 'operator * (i32, u32)'
+
+9 candidate operators:
+ • 'operator * (T  ✓ , T  ✗ ) -> T' where:
+      ✓  'T' is 'f32', 'i32', 'u32' or 'f16'
+ • 'operator * (vecN<T>  ✗ , T  ✓ ) -> vecN<T>' where:
+      ✓  'T' is 'f32', 'i32', 'u32' or 'f16'
+ • 'operator * (T  ✓ , vecN<T>  ✗ ) -> vecN<T>' where:
+      ✓  'T' is 'f32', 'i32', 'u32' or 'f16'
+ • 'operator * (T  ✗ , matNxM<T>  ✗ ) -> matNxM<T>' where:
+      ✗  'T' is 'f32' or 'f16'
+ • 'operator * (matNxM<T>  ✗ , T  ✗ ) -> matNxM<T>' where:
+      ✗  'T' is 'f32' or 'f16'
+ • 'operator * (vecN<T>  ✗ , vecN<T>  ✗ ) -> vecN<T>' where:
+      ✗  'T' is 'f32', 'i32', 'u32' or 'f16'
+ • 'operator * (matCxR<T>  ✗ , vecC<T>  ✗ ) -> vecR<T>' where:
+      ✗  'T' is 'f32' or 'f16'
+ • 'operator * (vecR<T>  ✗ , matCxR<T>  ✗ ) -> vecC<T>' where:
+      ✗  'T' is 'f32' or 'f16'
+ • 'operator * (matKxR<T>  ✗ , matCxK<T>  ✗ ) -> matCxR<T>' where:
+      ✗  'T' is 'f32' or 'f16'
+
+    %23:u32 = mul %58, 2u
+    ^^^^^^^^^^^^^^^^^^^^^
+
+:24:3 note: in block
+  $B3: {
+  ^^^
+
+note: # Disassembly
+Inner = struct @align(4) {
+  m:mat3x2<f16> @offset(0)
+}
+
+Outer = struct @align(4) {
+  a:array<Inner, 4> @offset(0)
+}
+
+$B1: {  # root
+  %a:ptr<uniform, array<vec4<u32>, 64>, read> = var @binding_point(0, 0)
+  %counter:ptr<private, i32, read_write> = var, 0i
+}
+
+%i = func():i32 {
+  $B2: {
+    %4:i32 = load %counter
+    %5:i32 = add %4, 1i
+    store %counter, %5
+    %6:i32 = load %counter
+    ret %6
+  }
+}
+%f = @compute @workgroup_size(1, 1, 1) func():void {
+  $B3: {
+    %8:i32 = call %i
+    %9:u32 = convert %8
+    %10:u32 = mul 256u, %9
+    %11:i32 = call %i
+    %12:u32 = convert %11
+    %13:u32 = mul 64u, %12
+    %14:i32 = call %i
+    %15:u32 = convert %14
+    %16:u32 = mul 4u, %15
+    %17:array<Outer, 4> = call %18, 0u
+    %l_a:array<Outer, 4> = let %17
+    %20:u32 = add %10, %13
+    %21:u32 = add %20, %16
+    %22:u32 = add %21, %23
+    %24:Outer = call %25, %22
+    %l_a_i:Outer = let %24
+    %27:u32 = add %10, %13
+    %28:u32 = add %27, %16
+    %29:u32 = add %28, %23
+    %30:array<Inner, 4> = call %31, %29
+    %l_a_i_a:array<Inner, 4> = let %30
+    %33:u32 = add %10, %13
+    %34:u32 = add %33, %16
+    %35:u32 = add %34, %23
+    %36:Inner = call %37, %35
+    %l_a_i_a_i:Inner = let %36
+    %39:u32 = add %10, %13
+    %40:u32 = add %39, %16
+    %41:u32 = add %40, %23
+    %42:mat3x2<f16> = call %43, %41
+    %l_a_i_a_i_m:mat3x2<f16> = let %42
+    %45:u32 = add %10, %13
+    %46:u32 = add %45, %16
+    %47:u32 = div %46, 16u
+    %48:ptr<uniform, vec4<u32>, read> = access %a, %47
+    %49:u32 = mod %46, 16u
+    %50:u32 = div %49, 4u
+    %51:vec4<u32> = load %48
+    %52:u32 = swizzle %51, z
+    %53:u32 = swizzle %51, x
+    %54:bool = eq %50, 2u
+    %55:u32 = hlsl.ternary %53, %52, %54
+    %56:vec2<f16> = bitcast %55
+    %l_a_i_a_i_m_i:vec2<f16> = let %56
+    %58:i32 = call %i
+    %23:u32 = mul %58, 2u
+    %59:u32 = add %10, %13
+    %60:u32 = add %59, %16
+    %61:u32 = add %60, %23
+    %62:u32 = div %61, 16u
+    %63:ptr<uniform, vec4<u32>, read> = access %a, %62
+    %64:u32 = mod %61, 16u
+    %65:u32 = div %64, 4u
+    %66:u32 = load_vector_element %63, %65
+    %67:u32 = mod %61, 4u
+    %68:bool = eq %67, 0u
+    %69:u32 = hlsl.ternary 16u, 0u, %68
+    %70:u32 = shr %66, %69
+    %71:f32 = hlsl.f16tof32 %70
+    %72:f16 = convert %71
+    %l_a_i_a_i_m_i_i:f16 = let %72
+    ret
+  }
+}
+%43 = func(%start_byte_offset:u32):mat3x2<f16> {
+  $B4: {
+    %75:u32 = div %start_byte_offset, 16u
+    %76:ptr<uniform, vec4<u32>, read> = access %a, %75
+    %77:u32 = mod %start_byte_offset, 16u
+    %78:u32 = div %77, 4u
+    %79:vec4<u32> = load %76
+    %80:u32 = swizzle %79, z
+    %81:u32 = swizzle %79, x
+    %82:bool = eq %78, 2u
+    %83:u32 = hlsl.ternary %81, %80, %82
+    %84:vec2<f16> = bitcast %83
+    %85:u32 = add 4u, %start_byte_offset
+    %86:u32 = div %85, 16u
+    %87:ptr<uniform, vec4<u32>, read> = access %a, %86
+    %88:u32 = mod %85, 16u
+    %89:u32 = div %88, 4u
+    %90:vec4<u32> = load %87
+    %91:u32 = swizzle %90, z
+    %92:u32 = swizzle %90, x
+    %93:bool = eq %89, 2u
+    %94:u32 = hlsl.ternary %92, %91, %93
+    %95:vec2<f16> = bitcast %94
+    %96:u32 = add 8u, %start_byte_offset
+    %97:u32 = div %96, 16u
+    %98:ptr<uniform, vec4<u32>, read> = access %a, %97
+    %99:u32 = mod %96, 16u
+    %100:u32 = div %99, 4u
+    %101:vec4<u32> = load %98
+    %102:u32 = swizzle %101, z
+    %103:u32 = swizzle %101, x
+    %104:bool = eq %100, 2u
+    %105:u32 = hlsl.ternary %103, %102, %104
+    %106:vec2<f16> = bitcast %105
+    %107:mat3x2<f16> = construct %84, %95, %106
+    ret %107
+  }
+}
+%37 = func(%start_byte_offset_1:u32):Inner {  # %start_byte_offset_1: 'start_byte_offset'
+  $B5: {
+    %109:mat3x2<f16> = call %43, %start_byte_offset_1
+    %110:Inner = construct %109
+    ret %110
+  }
+}
+%31 = func(%start_byte_offset_2:u32):array<Inner, 4> {  # %start_byte_offset_2: 'start_byte_offset'
+  $B6: {
+    %a_1:ptr<function, array<Inner, 4>, read_write> = var, array<Inner, 4>(Inner(mat3x2<f16>(vec2<f16>(0.0h))))  # %a_1: 'a'
+    loop [i: $B7, b: $B8, c: $B9] {  # loop_1
+      $B7: {  # initializer
+        next_iteration 0u  # -> $B8
+      }
+      $B8 (%idx:u32): {  # body
+        %114:bool = gte %idx, 4u
+        if %114 [t: $B10] {  # if_1
+          $B10: {  # true
+            exit_loop  # loop_1
+          }
+        }
+        %115:u32 = mul %idx, 64u
+        %116:u32 = add %start_byte_offset_2, %115
+        %117:ptr<function, Inner, read_write> = access %a_1, %idx
+        %118:Inner = call %37, %116
+        store %117, %118
+        continue  # -> $B9
+      }
+      $B9: {  # continuing
+        %119:u32 = add %idx, 1u
+        next_iteration %119  # -> $B8
+      }
+    }
+    %120:array<Inner, 4> = load %a_1
+    ret %120
+  }
+}
+%25 = func(%start_byte_offset_3:u32):Outer {  # %start_byte_offset_3: 'start_byte_offset'
+  $B11: {
+    %122:array<Inner, 4> = call %31, %start_byte_offset_3
+    %123:Outer = construct %122
+    ret %123
+  }
+}
+%18 = func(%start_byte_offset_4:u32):array<Outer, 4> {  # %start_byte_offset_4: 'start_byte_offset'
+  $B12: {
+    %a_2:ptr<function, array<Outer, 4>, read_write> = var, array<Outer, 4>(Outer(array<Inner, 4>(Inner(mat3x2<f16>(vec2<f16>(0.0h))))))  # %a_2: 'a'
+    loop [i: $B13, b: $B14, c: $B15] {  # loop_2
+      $B13: {  # initializer
+        next_iteration 0u  # -> $B14
+      }
+      $B14 (%idx_1:u32): {  # body
+        %127:bool = gte %idx_1, 4u
+        if %127 [t: $B16] {  # if_2
+          $B16: {  # true
+            exit_loop  # loop_2
+          }
+        }
+        %128:u32 = mul %idx_1, 256u
+        %129:u32 = add %start_byte_offset_4, %128
+        %130:ptr<function, Outer, read_write> = access %a_2, %idx_1
+        %131:Outer = call %25, %129
+        store %130, %131
+        continue  # -> $B15
+      }
+      $B15: {  # continuing
+        %132:u32 = add %idx_1, 1u
+        next_iteration %132  # -> $B14
+      }
+    }
+    %133:array<Outer, 4> = load %a_2
+    ret %133
+  }
+}
+
diff --git a/test/tint/buffer/uniform/std140/struct/mat3x2_f16/static_index_via_ptr.wgsl.expected.ir.dxc.hlsl b/test/tint/buffer/uniform/std140/struct/mat3x2_f16/static_index_via_ptr.wgsl.expected.ir.dxc.hlsl
index 3f437dc..7f8478a 100644
--- a/test/tint/buffer/uniform/std140/struct/mat3x2_f16/static_index_via_ptr.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/buffer/uniform/std140/struct/mat3x2_f16/static_index_via_ptr.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,97 @@
-SKIP: FAILED
+struct Inner {
+  matrix<float16_t, 3, 2> m;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Access
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct Outer {
+  Inner a[4];
+};
+
+
+cbuffer cbuffer_a : register(b0) {
+  uint4 a[64];
+};
+vector<float16_t, 2> tint_bitcast_to_f16(uint src) {
+  uint v = src;
+  float t_low = f16tof32((v & 65535u));
+  float t_high = f16tof32(((v >> 16u) & 65535u));
+  float16_t v_1 = float16_t(t_low);
+  return vector<float16_t, 2>(v_1, float16_t(t_high));
+}
+
+matrix<float16_t, 3, 2> v_2(uint start_byte_offset) {
+  uint4 v_3 = a[(start_byte_offset / 16u)];
+  vector<float16_t, 2> v_4 = tint_bitcast_to_f16((((((start_byte_offset % 16u) / 4u) == 2u)) ? (v_3.z) : (v_3.x)));
+  uint4 v_5 = a[((4u + start_byte_offset) / 16u)];
+  vector<float16_t, 2> v_6 = tint_bitcast_to_f16(((((((4u + start_byte_offset) % 16u) / 4u) == 2u)) ? (v_5.z) : (v_5.x)));
+  uint4 v_7 = a[((8u + start_byte_offset) / 16u)];
+  return matrix<float16_t, 3, 2>(v_4, v_6, tint_bitcast_to_f16(((((((8u + start_byte_offset) % 16u) / 4u) == 2u)) ? (v_7.z) : (v_7.x))));
+}
+
+Inner v_8(uint start_byte_offset) {
+  Inner v_9 = {v_2(start_byte_offset)};
+  return v_9;
+}
+
+typedef Inner ary_ret[4];
+ary_ret v_10(uint start_byte_offset) {
+  Inner a[4] = (Inner[4])0;
+  {
+    uint v_11 = 0u;
+    v_11 = 0u;
+    while(true) {
+      uint v_12 = v_11;
+      if ((v_12 >= 4u)) {
+        break;
+      }
+      Inner v_13 = v_8((start_byte_offset + (v_12 * 64u)));
+      a[v_12] = v_13;
+      {
+        v_11 = (v_12 + 1u);
+      }
+      continue;
+    }
+  }
+  Inner v_14[4] = a;
+  return v_14;
+}
+
+Outer v_15(uint start_byte_offset) {
+  Inner v_16[4] = v_10(start_byte_offset);
+  Outer v_17 = {v_16};
+  return v_17;
+}
+
+typedef Outer ary_ret_1[4];
+ary_ret_1 v_18(uint start_byte_offset) {
+  Outer a[4] = (Outer[4])0;
+  {
+    uint v_19 = 0u;
+    v_19 = 0u;
+    while(true) {
+      uint v_20 = v_19;
+      if ((v_20 >= 4u)) {
+        break;
+      }
+      Outer v_21 = v_15((start_byte_offset + (v_20 * 256u)));
+      a[v_20] = v_21;
+      {
+        v_19 = (v_20 + 1u);
+      }
+      continue;
+    }
+  }
+  Outer v_22[4] = a;
+  return v_22;
+}
+
+[numthreads(1, 1, 1)]
+void f() {
+  Outer l_a[4] = v_18(0u);
+  Outer l_a_3 = v_15(768u);
+  Inner l_a_3_a[4] = v_10(768u);
+  Inner l_a_3_a_2 = v_8(896u);
+  matrix<float16_t, 3, 2> l_a_3_a_2_m = v_2(900u);
+  vector<float16_t, 2> l_a_3_a_2_m_1 = tint_bitcast_to_f16(a[56u].x);
+  float16_t l_a_3_a_2_m_1_0 = float16_t(f16tof32(a[56u].y));
+}
+
diff --git a/test/tint/buffer/uniform/std140/struct/mat3x2_f16/static_index_via_ptr.wgsl.expected.ir.fxc.hlsl b/test/tint/buffer/uniform/std140/struct/mat3x2_f16/static_index_via_ptr.wgsl.expected.ir.fxc.hlsl
index 3f437dc..66bc6be 100644
--- a/test/tint/buffer/uniform/std140/struct/mat3x2_f16/static_index_via_ptr.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/buffer/uniform/std140/struct/mat3x2_f16/static_index_via_ptr.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,102 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Access
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct Inner {
+  matrix<float16_t, 3, 2> m;
+};
+
+struct Outer {
+  Inner a[4];
+};
+
+
+cbuffer cbuffer_a : register(b0) {
+  uint4 a[64];
+};
+vector<float16_t, 2> tint_bitcast_to_f16(uint src) {
+  uint v = src;
+  float t_low = f16tof32((v & 65535u));
+  float t_high = f16tof32(((v >> 16u) & 65535u));
+  float16_t v_1 = float16_t(t_low);
+  return vector<float16_t, 2>(v_1, float16_t(t_high));
+}
+
+matrix<float16_t, 3, 2> v_2(uint start_byte_offset) {
+  uint4 v_3 = a[(start_byte_offset / 16u)];
+  vector<float16_t, 2> v_4 = tint_bitcast_to_f16((((((start_byte_offset % 16u) / 4u) == 2u)) ? (v_3.z) : (v_3.x)));
+  uint4 v_5 = a[((4u + start_byte_offset) / 16u)];
+  vector<float16_t, 2> v_6 = tint_bitcast_to_f16(((((((4u + start_byte_offset) % 16u) / 4u) == 2u)) ? (v_5.z) : (v_5.x)));
+  uint4 v_7 = a[((8u + start_byte_offset) / 16u)];
+  return matrix<float16_t, 3, 2>(v_4, v_6, tint_bitcast_to_f16(((((((8u + start_byte_offset) % 16u) / 4u) == 2u)) ? (v_7.z) : (v_7.x))));
+}
+
+Inner v_8(uint start_byte_offset) {
+  Inner v_9 = {v_2(start_byte_offset)};
+  return v_9;
+}
+
+typedef Inner ary_ret[4];
+ary_ret v_10(uint start_byte_offset) {
+  Inner a[4] = (Inner[4])0;
+  {
+    uint v_11 = 0u;
+    v_11 = 0u;
+    while(true) {
+      uint v_12 = v_11;
+      if ((v_12 >= 4u)) {
+        break;
+      }
+      Inner v_13 = v_8((start_byte_offset + (v_12 * 64u)));
+      a[v_12] = v_13;
+      {
+        v_11 = (v_12 + 1u);
+      }
+      continue;
+    }
+  }
+  Inner v_14[4] = a;
+  return v_14;
+}
+
+Outer v_15(uint start_byte_offset) {
+  Inner v_16[4] = v_10(start_byte_offset);
+  Outer v_17 = {v_16};
+  return v_17;
+}
+
+typedef Outer ary_ret_1[4];
+ary_ret_1 v_18(uint start_byte_offset) {
+  Outer a[4] = (Outer[4])0;
+  {
+    uint v_19 = 0u;
+    v_19 = 0u;
+    while(true) {
+      uint v_20 = v_19;
+      if ((v_20 >= 4u)) {
+        break;
+      }
+      Outer v_21 = v_15((start_byte_offset + (v_20 * 256u)));
+      a[v_20] = v_21;
+      {
+        v_19 = (v_20 + 1u);
+      }
+      continue;
+    }
+  }
+  Outer v_22[4] = a;
+  return v_22;
+}
+
+[numthreads(1, 1, 1)]
+void f() {
+  Outer l_a[4] = v_18(0u);
+  Outer l_a_3 = v_15(900u);
+  Inner l_a_3_a[4] = v_10(900u);
+  Inner l_a_3_a_2 = v_8(896u);
+  matrix<float16_t, 3, 2> l_a_3_a_2_m = v_2(900u);
+  vector<float16_t, 2> l_a_3_a_2_m_1 = tint_bitcast_to_f16(a[56u].x);
+  float16_t l_a_3_a_2_m_1_0 = float16_t(f16tof32(a[56u].y));
+}
+
+FXC validation failure:
+c:\src\dawn\Shader@0x000002583C8054A0(2,10-18): error X3000: syntax error: unexpected token 'float16_t'
+
diff --git a/test/tint/buffer/uniform/std140/struct/mat3x2_f16/to_builtin.wgsl.expected.ir.dxc.hlsl b/test/tint/buffer/uniform/std140/struct/mat3x2_f16/to_builtin.wgsl.expected.ir.dxc.hlsl
index 3f437dc..f57fb6e 100644
--- a/test/tint/buffer/uniform/std140/struct/mat3x2_f16/to_builtin.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/buffer/uniform/std140/struct/mat3x2_f16/to_builtin.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,28 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Access
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+cbuffer cbuffer_u : register(b0) {
+  uint4 u[32];
+};
+vector<float16_t, 2> tint_bitcast_to_f16(uint src) {
+  uint v = src;
+  float t_low = f16tof32((v & 65535u));
+  float t_high = f16tof32(((v >> 16u) & 65535u));
+  float16_t v_1 = float16_t(t_low);
+  return vector<float16_t, 2>(v_1, float16_t(t_high));
+}
+
+matrix<float16_t, 3, 2> v_2(uint start_byte_offset) {
+  uint4 v_3 = u[(start_byte_offset / 16u)];
+  vector<float16_t, 2> v_4 = tint_bitcast_to_f16((((((start_byte_offset % 16u) / 4u) == 2u)) ? (v_3.z) : (v_3.x)));
+  uint4 v_5 = u[((4u + start_byte_offset) / 16u)];
+  vector<float16_t, 2> v_6 = tint_bitcast_to_f16(((((((4u + start_byte_offset) % 16u) / 4u) == 2u)) ? (v_5.z) : (v_5.x)));
+  uint4 v_7 = u[((8u + start_byte_offset) / 16u)];
+  return matrix<float16_t, 3, 2>(v_4, v_6, tint_bitcast_to_f16(((((((8u + start_byte_offset) % 16u) / 4u) == 2u)) ? (v_7.z) : (v_7.x))));
+}
+
+[numthreads(1, 1, 1)]
+void f() {
+  matrix<float16_t, 2, 3> t = transpose(v_2(260u));
+  float16_t l = length(tint_bitcast_to_f16(u[0u].z).yx);
+  float16_t a = abs(tint_bitcast_to_f16(u[0u].z).yx[0u]);
+}
+
diff --git a/test/tint/buffer/uniform/std140/struct/mat3x2_f16/to_builtin.wgsl.expected.ir.fxc.hlsl b/test/tint/buffer/uniform/std140/struct/mat3x2_f16/to_builtin.wgsl.expected.ir.fxc.hlsl
index 3f437dc..f24c050 100644
--- a/test/tint/buffer/uniform/std140/struct/mat3x2_f16/to_builtin.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/buffer/uniform/std140/struct/mat3x2_f16/to_builtin.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,33 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Access
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+
+cbuffer cbuffer_u : register(b0) {
+  uint4 u[32];
+};
+vector<float16_t, 2> tint_bitcast_to_f16(uint src) {
+  uint v = src;
+  float t_low = f16tof32((v & 65535u));
+  float t_high = f16tof32(((v >> 16u) & 65535u));
+  float16_t v_1 = float16_t(t_low);
+  return vector<float16_t, 2>(v_1, float16_t(t_high));
+}
+
+matrix<float16_t, 3, 2> v_2(uint start_byte_offset) {
+  uint4 v_3 = u[(start_byte_offset / 16u)];
+  vector<float16_t, 2> v_4 = tint_bitcast_to_f16((((((start_byte_offset % 16u) / 4u) == 2u)) ? (v_3.z) : (v_3.x)));
+  uint4 v_5 = u[((4u + start_byte_offset) / 16u)];
+  vector<float16_t, 2> v_6 = tint_bitcast_to_f16(((((((4u + start_byte_offset) % 16u) / 4u) == 2u)) ? (v_5.z) : (v_5.x)));
+  uint4 v_7 = u[((8u + start_byte_offset) / 16u)];
+  return matrix<float16_t, 3, 2>(v_4, v_6, tint_bitcast_to_f16(((((((8u + start_byte_offset) % 16u) / 4u) == 2u)) ? (v_7.z) : (v_7.x))));
+}
+
+[numthreads(1, 1, 1)]
+void f() {
+  matrix<float16_t, 2, 3> t = transpose(v_2(260u));
+  float16_t l = length(tint_bitcast_to_f16(u[0u].z).yx);
+  float16_t a = abs(tint_bitcast_to_f16(u[0u].z).yx[0u]);
+}
+
+FXC validation failure:
+c:\src\dawn\Shader@0x0000024DEDADFF00(5,8-16): error X3000: syntax error: unexpected token 'float16_t'
+
diff --git a/test/tint/buffer/uniform/std140/struct/mat3x2_f16/to_fn.wgsl.expected.ir.dxc.hlsl b/test/tint/buffer/uniform/std140/struct/mat3x2_f16/to_fn.wgsl.expected.ir.dxc.hlsl
index 3f437dc..07fa7de 100644
--- a/test/tint/buffer/uniform/std140/struct/mat3x2_f16/to_fn.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/buffer/uniform/std140/struct/mat3x2_f16/to_fn.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,83 @@
-SKIP: FAILED
+struct S {
+  int before;
+  matrix<float16_t, 3, 2> m;
+  int after;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Access
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+
+cbuffer cbuffer_u : register(b0) {
+  uint4 u[32];
+};
+void a(S a_1[4]) {
+}
+
+void b(S s) {
+}
+
+void c(matrix<float16_t, 3, 2> m) {
+}
+
+void d(vector<float16_t, 2> v) {
+}
+
+void e(float16_t f) {
+}
+
+vector<float16_t, 2> tint_bitcast_to_f16(uint src) {
+  uint v = src;
+  float t_low = f16tof32((v & 65535u));
+  float t_high = f16tof32(((v >> 16u) & 65535u));
+  float16_t v_1 = float16_t(t_low);
+  return vector<float16_t, 2>(v_1, float16_t(t_high));
+}
+
+matrix<float16_t, 3, 2> v_2(uint start_byte_offset) {
+  uint4 v_3 = u[(start_byte_offset / 16u)];
+  vector<float16_t, 2> v_4 = tint_bitcast_to_f16((((((start_byte_offset % 16u) / 4u) == 2u)) ? (v_3.z) : (v_3.x)));
+  uint4 v_5 = u[((4u + start_byte_offset) / 16u)];
+  vector<float16_t, 2> v_6 = tint_bitcast_to_f16(((((((4u + start_byte_offset) % 16u) / 4u) == 2u)) ? (v_5.z) : (v_5.x)));
+  uint4 v_7 = u[((8u + start_byte_offset) / 16u)];
+  return matrix<float16_t, 3, 2>(v_4, v_6, tint_bitcast_to_f16(((((((8u + start_byte_offset) % 16u) / 4u) == 2u)) ? (v_7.z) : (v_7.x))));
+}
+
+S v_8(uint start_byte_offset) {
+  int v_9 = asint(u[(start_byte_offset / 16u)][((start_byte_offset % 16u) / 4u)]);
+  matrix<float16_t, 3, 2> v_10 = v_2((4u + start_byte_offset));
+  S v_11 = {v_9, v_10, asint(u[((64u + start_byte_offset) / 16u)][(((64u + start_byte_offset) % 16u) / 4u)])};
+  return v_11;
+}
+
+typedef S ary_ret[4];
+ary_ret v_12(uint start_byte_offset) {
+  S a[4] = (S[4])0;
+  {
+    uint v_13 = 0u;
+    v_13 = 0u;
+    while(true) {
+      uint v_14 = v_13;
+      if ((v_14 >= 4u)) {
+        break;
+      }
+      S v_15 = v_8((start_byte_offset + (v_14 * 128u)));
+      a[v_14] = v_15;
+      {
+        v_13 = (v_14 + 1u);
+      }
+      continue;
+    }
+  }
+  S v_16[4] = a;
+  return v_16;
+}
+
+[numthreads(1, 1, 1)]
+void f() {
+  S v_17[4] = v_12(0u);
+  a(v_17);
+  S v_18 = v_8(256u);
+  b(v_18);
+  c(v_2(260u));
+  d(tint_bitcast_to_f16(u[0u].z).yx);
+  e(tint_bitcast_to_f16(u[0u].z).yx[0u]);
+}
+
diff --git a/test/tint/buffer/uniform/std140/struct/mat3x2_f16/to_fn.wgsl.expected.ir.fxc.hlsl b/test/tint/buffer/uniform/std140/struct/mat3x2_f16/to_fn.wgsl.expected.ir.fxc.hlsl
index 3f437dc..32e1dc3 100644
--- a/test/tint/buffer/uniform/std140/struct/mat3x2_f16/to_fn.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/buffer/uniform/std140/struct/mat3x2_f16/to_fn.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,88 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Access
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct S {
+  int before;
+  matrix<float16_t, 3, 2> m;
+  int after;
+};
+
+
+cbuffer cbuffer_u : register(b0) {
+  uint4 u[32];
+};
+void a(S a_1[4]) {
+}
+
+void b(S s) {
+}
+
+void c(matrix<float16_t, 3, 2> m) {
+}
+
+void d(vector<float16_t, 2> v) {
+}
+
+void e(float16_t f) {
+}
+
+vector<float16_t, 2> tint_bitcast_to_f16(uint src) {
+  uint v = src;
+  float t_low = f16tof32((v & 65535u));
+  float t_high = f16tof32(((v >> 16u) & 65535u));
+  float16_t v_1 = float16_t(t_low);
+  return vector<float16_t, 2>(v_1, float16_t(t_high));
+}
+
+matrix<float16_t, 3, 2> v_2(uint start_byte_offset) {
+  uint4 v_3 = u[(start_byte_offset / 16u)];
+  vector<float16_t, 2> v_4 = tint_bitcast_to_f16((((((start_byte_offset % 16u) / 4u) == 2u)) ? (v_3.z) : (v_3.x)));
+  uint4 v_5 = u[((4u + start_byte_offset) / 16u)];
+  vector<float16_t, 2> v_6 = tint_bitcast_to_f16(((((((4u + start_byte_offset) % 16u) / 4u) == 2u)) ? (v_5.z) : (v_5.x)));
+  uint4 v_7 = u[((8u + start_byte_offset) / 16u)];
+  return matrix<float16_t, 3, 2>(v_4, v_6, tint_bitcast_to_f16(((((((8u + start_byte_offset) % 16u) / 4u) == 2u)) ? (v_7.z) : (v_7.x))));
+}
+
+S v_8(uint start_byte_offset) {
+  int v_9 = asint(u[(start_byte_offset / 16u)][((start_byte_offset % 16u) / 4u)]);
+  matrix<float16_t, 3, 2> v_10 = v_2((4u + start_byte_offset));
+  S v_11 = {v_9, v_10, asint(u[((64u + start_byte_offset) / 16u)][(((64u + start_byte_offset) % 16u) / 4u)])};
+  return v_11;
+}
+
+typedef S ary_ret[4];
+ary_ret v_12(uint start_byte_offset) {
+  S a[4] = (S[4])0;
+  {
+    uint v_13 = 0u;
+    v_13 = 0u;
+    while(true) {
+      uint v_14 = v_13;
+      if ((v_14 >= 4u)) {
+        break;
+      }
+      S v_15 = v_8((start_byte_offset + (v_14 * 128u)));
+      a[v_14] = v_15;
+      {
+        v_13 = (v_14 + 1u);
+      }
+      continue;
+    }
+  }
+  S v_16[4] = a;
+  return v_16;
+}
+
+[numthreads(1, 1, 1)]
+void f() {
+  S v_17[4] = v_12(0u);
+  a(v_17);
+  S v_18 = v_8(256u);
+  b(v_18);
+  c(v_2(260u));
+  d(tint_bitcast_to_f16(u[0u].z).yx);
+  e(tint_bitcast_to_f16(u[0u].z).yx[0u]);
+}
+
+FXC validation failure:
+c:\src\dawn\Shader@0x000001533B4F06F0(3,10-18): error X3000: syntax error: unexpected token 'float16_t'
+
diff --git a/test/tint/buffer/uniform/std140/struct/mat3x2_f16/to_private.wgsl.expected.ir.dxc.hlsl b/test/tint/buffer/uniform/std140/struct/mat3x2_f16/to_private.wgsl.expected.ir.dxc.hlsl
index 3f437dc..ecf1dc9 100644
--- a/test/tint/buffer/uniform/std140/struct/mat3x2_f16/to_private.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/buffer/uniform/std140/struct/mat3x2_f16/to_private.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,68 @@
-SKIP: FAILED
+struct S {
+  int before;
+  matrix<float16_t, 3, 2> m;
+  int after;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Access
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+
+cbuffer cbuffer_u : register(b0) {
+  uint4 u[32];
+};
+static S p[4] = (S[4])0;
+vector<float16_t, 2> tint_bitcast_to_f16(uint src) {
+  uint v = src;
+  float t_low = f16tof32((v & 65535u));
+  float t_high = f16tof32(((v >> 16u) & 65535u));
+  float16_t v_1 = float16_t(t_low);
+  return vector<float16_t, 2>(v_1, float16_t(t_high));
+}
+
+matrix<float16_t, 3, 2> v_2(uint start_byte_offset) {
+  uint4 v_3 = u[(start_byte_offset / 16u)];
+  vector<float16_t, 2> v_4 = tint_bitcast_to_f16((((((start_byte_offset % 16u) / 4u) == 2u)) ? (v_3.z) : (v_3.x)));
+  uint4 v_5 = u[((4u + start_byte_offset) / 16u)];
+  vector<float16_t, 2> v_6 = tint_bitcast_to_f16(((((((4u + start_byte_offset) % 16u) / 4u) == 2u)) ? (v_5.z) : (v_5.x)));
+  uint4 v_7 = u[((8u + start_byte_offset) / 16u)];
+  return matrix<float16_t, 3, 2>(v_4, v_6, tint_bitcast_to_f16(((((((8u + start_byte_offset) % 16u) / 4u) == 2u)) ? (v_7.z) : (v_7.x))));
+}
+
+S v_8(uint start_byte_offset) {
+  int v_9 = asint(u[(start_byte_offset / 16u)][((start_byte_offset % 16u) / 4u)]);
+  matrix<float16_t, 3, 2> v_10 = v_2((4u + start_byte_offset));
+  S v_11 = {v_9, v_10, asint(u[((64u + start_byte_offset) / 16u)][(((64u + start_byte_offset) % 16u) / 4u)])};
+  return v_11;
+}
+
+typedef S ary_ret[4];
+ary_ret v_12(uint start_byte_offset) {
+  S a[4] = (S[4])0;
+  {
+    uint v_13 = 0u;
+    v_13 = 0u;
+    while(true) {
+      uint v_14 = v_13;
+      if ((v_14 >= 4u)) {
+        break;
+      }
+      S v_15 = v_8((start_byte_offset + (v_14 * 128u)));
+      a[v_14] = v_15;
+      {
+        v_13 = (v_14 + 1u);
+      }
+      continue;
+    }
+  }
+  S v_16[4] = a;
+  return v_16;
+}
+
+[numthreads(1, 1, 1)]
+void f() {
+  S v_17[4] = v_12(0u);
+  p = v_17;
+  S v_18 = v_8(256u);
+  p[1] = v_18;
+  p[3].m = v_2(260u);
+  p[1].m[0] = tint_bitcast_to_f16(u[0u].z).yx;
+}
+
diff --git a/test/tint/buffer/uniform/std140/struct/mat3x2_f16/to_private.wgsl.expected.ir.fxc.hlsl b/test/tint/buffer/uniform/std140/struct/mat3x2_f16/to_private.wgsl.expected.ir.fxc.hlsl
index 3f437dc..725d3f3 100644
--- a/test/tint/buffer/uniform/std140/struct/mat3x2_f16/to_private.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/buffer/uniform/std140/struct/mat3x2_f16/to_private.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,73 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Access
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct S {
+  int before;
+  matrix<float16_t, 3, 2> m;
+  int after;
+};
+
+
+cbuffer cbuffer_u : register(b0) {
+  uint4 u[32];
+};
+static S p[4] = (S[4])0;
+vector<float16_t, 2> tint_bitcast_to_f16(uint src) {
+  uint v = src;
+  float t_low = f16tof32((v & 65535u));
+  float t_high = f16tof32(((v >> 16u) & 65535u));
+  float16_t v_1 = float16_t(t_low);
+  return vector<float16_t, 2>(v_1, float16_t(t_high));
+}
+
+matrix<float16_t, 3, 2> v_2(uint start_byte_offset) {
+  uint4 v_3 = u[(start_byte_offset / 16u)];
+  vector<float16_t, 2> v_4 = tint_bitcast_to_f16((((((start_byte_offset % 16u) / 4u) == 2u)) ? (v_3.z) : (v_3.x)));
+  uint4 v_5 = u[((4u + start_byte_offset) / 16u)];
+  vector<float16_t, 2> v_6 = tint_bitcast_to_f16(((((((4u + start_byte_offset) % 16u) / 4u) == 2u)) ? (v_5.z) : (v_5.x)));
+  uint4 v_7 = u[((8u + start_byte_offset) / 16u)];
+  return matrix<float16_t, 3, 2>(v_4, v_6, tint_bitcast_to_f16(((((((8u + start_byte_offset) % 16u) / 4u) == 2u)) ? (v_7.z) : (v_7.x))));
+}
+
+S v_8(uint start_byte_offset) {
+  int v_9 = asint(u[(start_byte_offset / 16u)][((start_byte_offset % 16u) / 4u)]);
+  matrix<float16_t, 3, 2> v_10 = v_2((4u + start_byte_offset));
+  S v_11 = {v_9, v_10, asint(u[((64u + start_byte_offset) / 16u)][(((64u + start_byte_offset) % 16u) / 4u)])};
+  return v_11;
+}
+
+typedef S ary_ret[4];
+ary_ret v_12(uint start_byte_offset) {
+  S a[4] = (S[4])0;
+  {
+    uint v_13 = 0u;
+    v_13 = 0u;
+    while(true) {
+      uint v_14 = v_13;
+      if ((v_14 >= 4u)) {
+        break;
+      }
+      S v_15 = v_8((start_byte_offset + (v_14 * 128u)));
+      a[v_14] = v_15;
+      {
+        v_13 = (v_14 + 1u);
+      }
+      continue;
+    }
+  }
+  S v_16[4] = a;
+  return v_16;
+}
+
+[numthreads(1, 1, 1)]
+void f() {
+  S v_17[4] = v_12(0u);
+  p = v_17;
+  S v_18 = v_8(256u);
+  p[1] = v_18;
+  p[3].m = v_2(260u);
+  p[1].m[0] = tint_bitcast_to_f16(u[0u].z).yx;
+}
+
+FXC validation failure:
+c:\src\dawn\Shader@0x00000259075D0850(3,10-18): error X3000: syntax error: unexpected token 'float16_t'
+
diff --git a/test/tint/buffer/uniform/std140/struct/mat3x2_f16/to_storage.wgsl.expected.ir.dxc.hlsl b/test/tint/buffer/uniform/std140/struct/mat3x2_f16/to_storage.wgsl.expected.ir.dxc.hlsl
index 3f437dc..cf94e83 100644
--- a/test/tint/buffer/uniform/std140/struct/mat3x2_f16/to_storage.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/buffer/uniform/std140/struct/mat3x2_f16/to_storage.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,99 @@
-SKIP: FAILED
+struct S {
+  int before;
+  matrix<float16_t, 3, 2> m;
+  int after;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Access
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+
+cbuffer cbuffer_u : register(b0) {
+  uint4 u[32];
+};
+RWByteAddressBuffer s : register(u1);
+vector<float16_t, 2> tint_bitcast_to_f16(uint src) {
+  uint v = src;
+  float t_low = f16tof32((v & 65535u));
+  float t_high = f16tof32(((v >> 16u) & 65535u));
+  float16_t v_1 = float16_t(t_low);
+  return vector<float16_t, 2>(v_1, float16_t(t_high));
+}
+
+void v_2(uint offset, matrix<float16_t, 3, 2> obj) {
+  s.Store<vector<float16_t, 2> >((offset + 0u), obj[0u]);
+  s.Store<vector<float16_t, 2> >((offset + 4u), obj[1u]);
+  s.Store<vector<float16_t, 2> >((offset + 8u), obj[2u]);
+}
+
+matrix<float16_t, 3, 2> v_3(uint start_byte_offset) {
+  uint4 v_4 = u[(start_byte_offset / 16u)];
+  vector<float16_t, 2> v_5 = tint_bitcast_to_f16((((((start_byte_offset % 16u) / 4u) == 2u)) ? (v_4.z) : (v_4.x)));
+  uint4 v_6 = u[((4u + start_byte_offset) / 16u)];
+  vector<float16_t, 2> v_7 = tint_bitcast_to_f16(((((((4u + start_byte_offset) % 16u) / 4u) == 2u)) ? (v_6.z) : (v_6.x)));
+  uint4 v_8 = u[((8u + start_byte_offset) / 16u)];
+  return matrix<float16_t, 3, 2>(v_5, v_7, tint_bitcast_to_f16(((((((8u + start_byte_offset) % 16u) / 4u) == 2u)) ? (v_8.z) : (v_8.x))));
+}
+
+void v_9(uint offset, S obj) {
+  s.Store((offset + 0u), asuint(obj.before));
+  v_2((offset + 4u), obj.m);
+  s.Store((offset + 64u), asuint(obj.after));
+}
+
+S v_10(uint start_byte_offset) {
+  int v_11 = asint(u[(start_byte_offset / 16u)][((start_byte_offset % 16u) / 4u)]);
+  matrix<float16_t, 3, 2> v_12 = v_3((4u + start_byte_offset));
+  S v_13 = {v_11, v_12, asint(u[((64u + start_byte_offset) / 16u)][(((64u + start_byte_offset) % 16u) / 4u)])};
+  return v_13;
+}
+
+void v_14(uint offset, S obj[4]) {
+  {
+    uint v_15 = 0u;
+    v_15 = 0u;
+    while(true) {
+      uint v_16 = v_15;
+      if ((v_16 >= 4u)) {
+        break;
+      }
+      S v_17 = obj[v_16];
+      v_9((offset + (v_16 * 128u)), v_17);
+      {
+        v_15 = (v_16 + 1u);
+      }
+      continue;
+    }
+  }
+}
+
+typedef S ary_ret[4];
+ary_ret v_18(uint start_byte_offset) {
+  S a[4] = (S[4])0;
+  {
+    uint v_19 = 0u;
+    v_19 = 0u;
+    while(true) {
+      uint v_20 = v_19;
+      if ((v_20 >= 4u)) {
+        break;
+      }
+      S v_21 = v_10((start_byte_offset + (v_20 * 128u)));
+      a[v_20] = v_21;
+      {
+        v_19 = (v_20 + 1u);
+      }
+      continue;
+    }
+  }
+  S v_22[4] = a;
+  return v_22;
+}
+
+[numthreads(1, 1, 1)]
+void f() {
+  S v_23[4] = v_18(0u);
+  v_14(0u, v_23);
+  S v_24 = v_10(256u);
+  v_9(128u, v_24);
+  v_2(388u, v_3(260u));
+  s.Store<vector<float16_t, 2> >(132u, tint_bitcast_to_f16(u[0u].z).yx);
+}
+
diff --git a/test/tint/buffer/uniform/std140/struct/mat3x2_f16/to_storage.wgsl.expected.ir.fxc.hlsl b/test/tint/buffer/uniform/std140/struct/mat3x2_f16/to_storage.wgsl.expected.ir.fxc.hlsl
index 3f437dc..959dffd 100644
--- a/test/tint/buffer/uniform/std140/struct/mat3x2_f16/to_storage.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/buffer/uniform/std140/struct/mat3x2_f16/to_storage.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,104 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Access
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct S {
+  int before;
+  matrix<float16_t, 3, 2> m;
+  int after;
+};
+
+
+cbuffer cbuffer_u : register(b0) {
+  uint4 u[32];
+};
+RWByteAddressBuffer s : register(u1);
+vector<float16_t, 2> tint_bitcast_to_f16(uint src) {
+  uint v = src;
+  float t_low = f16tof32((v & 65535u));
+  float t_high = f16tof32(((v >> 16u) & 65535u));
+  float16_t v_1 = float16_t(t_low);
+  return vector<float16_t, 2>(v_1, float16_t(t_high));
+}
+
+void v_2(uint offset, matrix<float16_t, 3, 2> obj) {
+  s.Store<vector<float16_t, 2> >((offset + 0u), obj[0u]);
+  s.Store<vector<float16_t, 2> >((offset + 4u), obj[1u]);
+  s.Store<vector<float16_t, 2> >((offset + 8u), obj[2u]);
+}
+
+matrix<float16_t, 3, 2> v_3(uint start_byte_offset) {
+  uint4 v_4 = u[(start_byte_offset / 16u)];
+  vector<float16_t, 2> v_5 = tint_bitcast_to_f16((((((start_byte_offset % 16u) / 4u) == 2u)) ? (v_4.z) : (v_4.x)));
+  uint4 v_6 = u[((4u + start_byte_offset) / 16u)];
+  vector<float16_t, 2> v_7 = tint_bitcast_to_f16(((((((4u + start_byte_offset) % 16u) / 4u) == 2u)) ? (v_6.z) : (v_6.x)));
+  uint4 v_8 = u[((8u + start_byte_offset) / 16u)];
+  return matrix<float16_t, 3, 2>(v_5, v_7, tint_bitcast_to_f16(((((((8u + start_byte_offset) % 16u) / 4u) == 2u)) ? (v_8.z) : (v_8.x))));
+}
+
+void v_9(uint offset, S obj) {
+  s.Store((offset + 0u), asuint(obj.before));
+  v_2((offset + 4u), obj.m);
+  s.Store((offset + 64u), asuint(obj.after));
+}
+
+S v_10(uint start_byte_offset) {
+  int v_11 = asint(u[(start_byte_offset / 16u)][((start_byte_offset % 16u) / 4u)]);
+  matrix<float16_t, 3, 2> v_12 = v_3((4u + start_byte_offset));
+  S v_13 = {v_11, v_12, asint(u[((64u + start_byte_offset) / 16u)][(((64u + start_byte_offset) % 16u) / 4u)])};
+  return v_13;
+}
+
+void v_14(uint offset, S obj[4]) {
+  {
+    uint v_15 = 0u;
+    v_15 = 0u;
+    while(true) {
+      uint v_16 = v_15;
+      if ((v_16 >= 4u)) {
+        break;
+      }
+      S v_17 = obj[v_16];
+      v_9((offset + (v_16 * 128u)), v_17);
+      {
+        v_15 = (v_16 + 1u);
+      }
+      continue;
+    }
+  }
+}
+
+typedef S ary_ret[4];
+ary_ret v_18(uint start_byte_offset) {
+  S a[4] = (S[4])0;
+  {
+    uint v_19 = 0u;
+    v_19 = 0u;
+    while(true) {
+      uint v_20 = v_19;
+      if ((v_20 >= 4u)) {
+        break;
+      }
+      S v_21 = v_10((start_byte_offset + (v_20 * 128u)));
+      a[v_20] = v_21;
+      {
+        v_19 = (v_20 + 1u);
+      }
+      continue;
+    }
+  }
+  S v_22[4] = a;
+  return v_22;
+}
+
+[numthreads(1, 1, 1)]
+void f() {
+  S v_23[4] = v_18(0u);
+  v_14(0u, v_23);
+  S v_24 = v_10(256u);
+  v_9(128u, v_24);
+  v_2(388u, v_3(260u));
+  s.Store<vector<float16_t, 2> >(132u, tint_bitcast_to_f16(u[0u].z).yx);
+}
+
+FXC validation failure:
+c:\src\dawn\Shader@0x0000025EB4F55A60(3,10-18): error X3000: syntax error: unexpected token 'float16_t'
+
diff --git a/test/tint/buffer/uniform/std140/struct/mat3x2_f16/to_workgroup.wgsl.expected.ir.dxc.hlsl b/test/tint/buffer/uniform/std140/struct/mat3x2_f16/to_workgroup.wgsl.expected.ir.dxc.hlsl
index 3f437dc..0103328 100644
--- a/test/tint/buffer/uniform/std140/struct/mat3x2_f16/to_workgroup.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/buffer/uniform/std140/struct/mat3x2_f16/to_workgroup.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,93 @@
-SKIP: FAILED
+struct S {
+  int before;
+  matrix<float16_t, 3, 2> m;
+  int after;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Access
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct f_inputs {
+  uint tint_local_index : SV_GroupIndex;
+};
+
+
+cbuffer cbuffer_u : register(b0) {
+  uint4 u[32];
+};
+groupshared S w[4];
+vector<float16_t, 2> tint_bitcast_to_f16(uint src) {
+  uint v = src;
+  float t_low = f16tof32((v & 65535u));
+  float t_high = f16tof32(((v >> 16u) & 65535u));
+  float16_t v_1 = float16_t(t_low);
+  return vector<float16_t, 2>(v_1, float16_t(t_high));
+}
+
+matrix<float16_t, 3, 2> v_2(uint start_byte_offset) {
+  uint4 v_3 = u[(start_byte_offset / 16u)];
+  vector<float16_t, 2> v_4 = tint_bitcast_to_f16((((((start_byte_offset % 16u) / 4u) == 2u)) ? (v_3.z) : (v_3.x)));
+  uint4 v_5 = u[((4u + start_byte_offset) / 16u)];
+  vector<float16_t, 2> v_6 = tint_bitcast_to_f16(((((((4u + start_byte_offset) % 16u) / 4u) == 2u)) ? (v_5.z) : (v_5.x)));
+  uint4 v_7 = u[((8u + start_byte_offset) / 16u)];
+  return matrix<float16_t, 3, 2>(v_4, v_6, tint_bitcast_to_f16(((((((8u + start_byte_offset) % 16u) / 4u) == 2u)) ? (v_7.z) : (v_7.x))));
+}
+
+S v_8(uint start_byte_offset) {
+  int v_9 = asint(u[(start_byte_offset / 16u)][((start_byte_offset % 16u) / 4u)]);
+  matrix<float16_t, 3, 2> v_10 = v_2((4u + start_byte_offset));
+  S v_11 = {v_9, v_10, asint(u[((64u + start_byte_offset) / 16u)][(((64u + start_byte_offset) % 16u) / 4u)])};
+  return v_11;
+}
+
+typedef S ary_ret[4];
+ary_ret v_12(uint start_byte_offset) {
+  S a[4] = (S[4])0;
+  {
+    uint v_13 = 0u;
+    v_13 = 0u;
+    while(true) {
+      uint v_14 = v_13;
+      if ((v_14 >= 4u)) {
+        break;
+      }
+      S v_15 = v_8((start_byte_offset + (v_14 * 128u)));
+      a[v_14] = v_15;
+      {
+        v_13 = (v_14 + 1u);
+      }
+      continue;
+    }
+  }
+  S v_16[4] = a;
+  return v_16;
+}
+
+void f_inner(uint tint_local_index) {
+  {
+    uint v_17 = 0u;
+    v_17 = tint_local_index;
+    while(true) {
+      uint v_18 = v_17;
+      if ((v_18 >= 4u)) {
+        break;
+      }
+      S v_19 = (S)0;
+      w[v_18] = v_19;
+      {
+        v_17 = (v_18 + 1u);
+      }
+      continue;
+    }
+  }
+  GroupMemoryBarrierWithGroupSync();
+  S v_20[4] = v_12(0u);
+  w = v_20;
+  S v_21 = v_8(256u);
+  w[1] = v_21;
+  w[3].m = v_2(260u);
+  w[1].m[0] = tint_bitcast_to_f16(u[0u].z).yx;
+}
+
+[numthreads(1, 1, 1)]
+void f(f_inputs inputs) {
+  f_inner(inputs.tint_local_index);
+}
+
diff --git a/test/tint/buffer/uniform/std140/struct/mat3x2_f16/to_workgroup.wgsl.expected.ir.fxc.hlsl b/test/tint/buffer/uniform/std140/struct/mat3x2_f16/to_workgroup.wgsl.expected.ir.fxc.hlsl
index 3f437dc..f584a8b 100644
--- a/test/tint/buffer/uniform/std140/struct/mat3x2_f16/to_workgroup.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/buffer/uniform/std140/struct/mat3x2_f16/to_workgroup.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,98 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Access
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct S {
+  int before;
+  matrix<float16_t, 3, 2> m;
+  int after;
+};
+
+struct f_inputs {
+  uint tint_local_index : SV_GroupIndex;
+};
+
+
+cbuffer cbuffer_u : register(b0) {
+  uint4 u[32];
+};
+groupshared S w[4];
+vector<float16_t, 2> tint_bitcast_to_f16(uint src) {
+  uint v = src;
+  float t_low = f16tof32((v & 65535u));
+  float t_high = f16tof32(((v >> 16u) & 65535u));
+  float16_t v_1 = float16_t(t_low);
+  return vector<float16_t, 2>(v_1, float16_t(t_high));
+}
+
+matrix<float16_t, 3, 2> v_2(uint start_byte_offset) {
+  uint4 v_3 = u[(start_byte_offset / 16u)];
+  vector<float16_t, 2> v_4 = tint_bitcast_to_f16((((((start_byte_offset % 16u) / 4u) == 2u)) ? (v_3.z) : (v_3.x)));
+  uint4 v_5 = u[((4u + start_byte_offset) / 16u)];
+  vector<float16_t, 2> v_6 = tint_bitcast_to_f16(((((((4u + start_byte_offset) % 16u) / 4u) == 2u)) ? (v_5.z) : (v_5.x)));
+  uint4 v_7 = u[((8u + start_byte_offset) / 16u)];
+  return matrix<float16_t, 3, 2>(v_4, v_6, tint_bitcast_to_f16(((((((8u + start_byte_offset) % 16u) / 4u) == 2u)) ? (v_7.z) : (v_7.x))));
+}
+
+S v_8(uint start_byte_offset) {
+  int v_9 = asint(u[(start_byte_offset / 16u)][((start_byte_offset % 16u) / 4u)]);
+  matrix<float16_t, 3, 2> v_10 = v_2((4u + start_byte_offset));
+  S v_11 = {v_9, v_10, asint(u[((64u + start_byte_offset) / 16u)][(((64u + start_byte_offset) % 16u) / 4u)])};
+  return v_11;
+}
+
+typedef S ary_ret[4];
+ary_ret v_12(uint start_byte_offset) {
+  S a[4] = (S[4])0;
+  {
+    uint v_13 = 0u;
+    v_13 = 0u;
+    while(true) {
+      uint v_14 = v_13;
+      if ((v_14 >= 4u)) {
+        break;
+      }
+      S v_15 = v_8((start_byte_offset + (v_14 * 128u)));
+      a[v_14] = v_15;
+      {
+        v_13 = (v_14 + 1u);
+      }
+      continue;
+    }
+  }
+  S v_16[4] = a;
+  return v_16;
+}
+
+void f_inner(uint tint_local_index) {
+  {
+    uint v_17 = 0u;
+    v_17 = tint_local_index;
+    while(true) {
+      uint v_18 = v_17;
+      if ((v_18 >= 4u)) {
+        break;
+      }
+      S v_19 = (S)0;
+      w[v_18] = v_19;
+      {
+        v_17 = (v_18 + 1u);
+      }
+      continue;
+    }
+  }
+  GroupMemoryBarrierWithGroupSync();
+  S v_20[4] = v_12(0u);
+  w = v_20;
+  S v_21 = v_8(256u);
+  w[1] = v_21;
+  w[3].m = v_2(260u);
+  w[1].m[0] = tint_bitcast_to_f16(u[0u].z).yx;
+}
+
+[numthreads(1, 1, 1)]
+void f(f_inputs inputs) {
+  f_inner(inputs.tint_local_index);
+}
+
+FXC validation failure:
+c:\src\dawn\Shader@0x000001801A82E1D0(3,10-18): error X3000: syntax error: unexpected token 'float16_t'
+
diff --git a/test/tint/buffer/uniform/std140/struct/mat3x2_f32/dynamic_index_via_ptr.wgsl.expected.ir.dxc.hlsl b/test/tint/buffer/uniform/std140/struct/mat3x2_f32/dynamic_index_via_ptr.wgsl.expected.ir.dxc.hlsl
index 3f437dc..b1c4947 100644
--- a/test/tint/buffer/uniform/std140/struct/mat3x2_f32/dynamic_index_via_ptr.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/buffer/uniform/std140/struct/mat3x2_f32/dynamic_index_via_ptr.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,310 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Access
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+
+struct Inner {
+  @size(64)
+  m : mat3x2<f32>,
+}
+
+struct Outer {
+  a : array<Inner, 4>,
+}
+
+@group(0) @binding(0) var<uniform> a : array<Outer, 4>;
+
+var<private> counter = 0;
+
+fn i() -> i32 {
+  counter++;
+  return counter;
+}
+
+@compute @workgroup_size(1)
+fn f() {
+  let p_a = &(a);
+  let p_a_i = &((*(p_a))[i()]);
+  let p_a_i_a = &((*(p_a_i)).a);
+  let p_a_i_a_i = &((*(p_a_i_a))[i()]);
+  let p_a_i_a_i_m = &((*(p_a_i_a_i)).m);
+  let p_a_i_a_i_m_i = &((*(p_a_i_a_i_m))[i()]);
+  let l_a : array<Outer, 4> = *(p_a);
+  let l_a_i : Outer = *(p_a_i);
+  let l_a_i_a : array<Inner, 4> = *(p_a_i_a);
+  let l_a_i_a_i : Inner = *(p_a_i_a_i);
+  let l_a_i_a_i_m : mat3x2<f32> = *(p_a_i_a_i_m);
+  let l_a_i_a_i_m_i : vec2<f32> = *(p_a_i_a_i_m_i);
+  let l_a_i_a_i_m_i_i : f32 = (*(p_a_i_a_i_m_i))[i()];
+}
+
+Failed to generate: :38:24 error: binary: %23 is not in scope
+    %22:u32 = add %21, %23
+                       ^^^
+
+:24:3 note: in block
+  $B3: {
+  ^^^
+
+:68:5 note: %23 declared here
+    %23:u32 = mul %56, 4u
+    ^^^^^^^
+
+:45:24 error: binary: %23 is not in scope
+    %32:u32 = add %31, %23
+                       ^^^
+
+:24:3 note: in block
+  $B3: {
+  ^^^
+
+:68:5 note: %23 declared here
+    %23:u32 = mul %56, 4u
+    ^^^^^^^
+
+:50:24 error: binary: %23 is not in scope
+    %38:u32 = add %37, %23
+                       ^^^
+
+:24:3 note: in block
+  $B3: {
+  ^^^
+
+:68:5 note: %23 declared here
+    %23:u32 = mul %56, 4u
+    ^^^^^^^
+
+:55:24 error: binary: %23 is not in scope
+    %44:u32 = add %43, %23
+                       ^^^
+
+:24:3 note: in block
+  $B3: {
+  ^^^
+
+:68:5 note: %23 declared here
+    %23:u32 = mul %56, 4u
+    ^^^^^^^
+
+:68:5 error: binary: no matching overload for 'operator * (i32, u32)'
+
+9 candidate operators:
+ • 'operator * (T  ✓ , T  ✗ ) -> T' where:
+      ✓  'T' is 'f32', 'i32', 'u32' or 'f16'
+ • 'operator * (vecN<T>  ✗ , T  ✓ ) -> vecN<T>' where:
+      ✓  'T' is 'f32', 'i32', 'u32' or 'f16'
+ • 'operator * (T  ✓ , vecN<T>  ✗ ) -> vecN<T>' where:
+      ✓  'T' is 'f32', 'i32', 'u32' or 'f16'
+ • 'operator * (T  ✗ , matNxM<T>  ✗ ) -> matNxM<T>' where:
+      ✗  'T' is 'f32' or 'f16'
+ • 'operator * (matNxM<T>  ✗ , T  ✗ ) -> matNxM<T>' where:
+      ✗  'T' is 'f32' or 'f16'
+ • 'operator * (vecN<T>  ✗ , vecN<T>  ✗ ) -> vecN<T>' where:
+      ✗  'T' is 'f32', 'i32', 'u32' or 'f16'
+ • 'operator * (matCxR<T>  ✗ , vecC<T>  ✗ ) -> vecR<T>' where:
+      ✗  'T' is 'f32' or 'f16'
+ • 'operator * (vecR<T>  ✗ , matCxR<T>  ✗ ) -> vecC<T>' where:
+      ✗  'T' is 'f32' or 'f16'
+ • 'operator * (matKxR<T>  ✗ , matCxK<T>  ✗ ) -> matCxR<T>' where:
+      ✗  'T' is 'f32' or 'f16'
+
+    %23:u32 = mul %56, 4u
+    ^^^^^^^^^^^^^^^^^^^^^
+
+:24:3 note: in block
+  $B3: {
+  ^^^
+
+note: # Disassembly
+Inner = struct @align(8) {
+  m:mat3x2<f32> @offset(0)
+}
+
+Outer = struct @align(8) {
+  a:array<Inner, 4> @offset(0)
+}
+
+$B1: {  # root
+  %a:ptr<uniform, array<vec4<u32>, 64>, read> = var @binding_point(0, 0)
+  %counter:ptr<private, i32, read_write> = var, 0i
+}
+
+%i = func():i32 {
+  $B2: {
+    %4:i32 = load %counter
+    %5:i32 = add %4, 1i
+    store %counter, %5
+    %6:i32 = load %counter
+    ret %6
+  }
+}
+%f = @compute @workgroup_size(1, 1, 1) func():void {
+  $B3: {
+    %8:i32 = call %i
+    %9:u32 = convert %8
+    %10:u32 = mul 256u, %9
+    %11:i32 = call %i
+    %12:u32 = convert %11
+    %13:u32 = mul 64u, %12
+    %14:i32 = call %i
+    %15:u32 = convert %14
+    %16:u32 = mul 8u, %15
+    %17:array<Outer, 4> = call %18, 0u
+    %l_a:array<Outer, 4> = let %17
+    %20:u32 = add %10, %13
+    %21:u32 = add %20, %16
+    %22:u32 = add %21, %23
+    %24:Outer = call %25, %22
+    %l_a_i:Outer = let %24
+    %27:array<Inner, 4> = call %28, %10
+    %l_a_i_a:array<Inner, 4> = let %27
+    %30:u32 = add %10, %13
+    %31:u32 = add %30, %16
+    %32:u32 = add %31, %23
+    %33:Inner = call %34, %32
+    %l_a_i_a_i:Inner = let %33
+    %36:u32 = add %10, %13
+    %37:u32 = add %36, %16
+    %38:u32 = add %37, %23
+    %39:mat3x2<f32> = call %40, %38
+    %l_a_i_a_i_m:mat3x2<f32> = let %39
+    %42:u32 = add %10, %13
+    %43:u32 = add %42, %16
+    %44:u32 = add %43, %23
+    %45:u32 = div %44, 16u
+    %46:ptr<uniform, vec4<u32>, read> = access %a, %45
+    %47:u32 = mod %44, 16u
+    %48:u32 = div %47, 4u
+    %49:vec4<u32> = load %46
+    %50:vec2<u32> = swizzle %49, zw
+    %51:vec2<u32> = swizzle %49, xy
+    %52:bool = eq %48, 2u
+    %53:vec2<u32> = hlsl.ternary %51, %50, %52
+    %54:vec2<f32> = bitcast %53
+    %l_a_i_a_i_m_i:vec2<f32> = let %54
+    %56:i32 = call %i
+    %23:u32 = mul %56, 4u
+    %57:u32 = add %10, %13
+    %58:u32 = add %57, %16
+    %59:u32 = add %58, %23
+    %60:u32 = div %59, 16u
+    %61:ptr<uniform, vec4<u32>, read> = access %a, %60
+    %62:u32 = mod %59, 16u
+    %63:u32 = div %62, 4u
+    %64:u32 = load_vector_element %61, %63
+    %65:f32 = bitcast %64
+    %l_a_i_a_i_m_i_i:f32 = let %65
+    ret
+  }
+}
+%18 = func(%start_byte_offset:u32):array<Outer, 4> {
+  $B4: {
+    %a_1:ptr<function, array<Outer, 4>, read_write> = var, array<Outer, 4>(Outer(array<Inner, 4>(Inner(mat3x2<f32>(vec2<f32>(0.0f))))))  # %a_1: 'a'
+    loop [i: $B5, b: $B6, c: $B7] {  # loop_1
+      $B5: {  # initializer
+        next_iteration 0u  # -> $B6
+      }
+      $B6 (%idx:u32): {  # body
+        %70:bool = gte %idx, 4u
+        if %70 [t: $B8] {  # if_1
+          $B8: {  # true
+            exit_loop  # loop_1
+          }
+        }
+        %71:u32 = mul %idx, 256u
+        %72:u32 = add %start_byte_offset, %71
+        %73:ptr<function, Outer, read_write> = access %a_1, %idx
+        %74:Outer = call %25, %72
+        store %73, %74
+        continue  # -> $B7
+      }
+      $B7: {  # continuing
+        %75:u32 = add %idx, 1u
+        next_iteration %75  # -> $B6
+      }
+    }
+    %76:array<Outer, 4> = load %a_1
+    ret %76
+  }
+}
+%25 = func(%start_byte_offset_1:u32):Outer {  # %start_byte_offset_1: 'start_byte_offset'
+  $B9: {
+    %78:array<Inner, 4> = call %28, %start_byte_offset_1
+    %79:Outer = construct %78
+    ret %79
+  }
+}
+%28 = func(%start_byte_offset_2:u32):array<Inner, 4> {  # %start_byte_offset_2: 'start_byte_offset'
+  $B10: {
+    %a_2:ptr<function, array<Inner, 4>, read_write> = var, array<Inner, 4>(Inner(mat3x2<f32>(vec2<f32>(0.0f))))  # %a_2: 'a'
+    loop [i: $B11, b: $B12, c: $B13] {  # loop_2
+      $B11: {  # initializer
+        next_iteration 0u  # -> $B12
+      }
+      $B12 (%idx_1:u32): {  # body
+        %83:bool = gte %idx_1, 4u
+        if %83 [t: $B14] {  # if_2
+          $B14: {  # true
+            exit_loop  # loop_2
+          }
+        }
+        %84:u32 = mul %idx_1, 64u
+        %85:u32 = add %start_byte_offset_2, %84
+        %86:ptr<function, Inner, read_write> = access %a_2, %idx_1
+        %87:Inner = call %34, %85
+        store %86, %87
+        continue  # -> $B13
+      }
+      $B13: {  # continuing
+        %88:u32 = add %idx_1, 1u
+        next_iteration %88  # -> $B12
+      }
+    }
+    %89:array<Inner, 4> = load %a_2
+    ret %89
+  }
+}
+%34 = func(%start_byte_offset_3:u32):Inner {  # %start_byte_offset_3: 'start_byte_offset'
+  $B15: {
+    %91:mat3x2<f32> = call %40, %start_byte_offset_3
+    %92:Inner = construct %91
+    ret %92
+  }
+}
+%40 = func(%start_byte_offset_4:u32):mat3x2<f32> {  # %start_byte_offset_4: 'start_byte_offset'
+  $B16: {
+    %94:u32 = div %start_byte_offset_4, 16u
+    %95:ptr<uniform, vec4<u32>, read> = access %a, %94
+    %96:u32 = mod %start_byte_offset_4, 16u
+    %97:u32 = div %96, 4u
+    %98:vec4<u32> = load %95
+    %99:vec2<u32> = swizzle %98, zw
+    %100:vec2<u32> = swizzle %98, xy
+    %101:bool = eq %97, 2u
+    %102:vec2<u32> = hlsl.ternary %100, %99, %101
+    %103:vec2<f32> = bitcast %102
+    %104:u32 = add 8u, %start_byte_offset_4
+    %105:u32 = div %104, 16u
+    %106:ptr<uniform, vec4<u32>, read> = access %a, %105
+    %107:u32 = mod %104, 16u
+    %108:u32 = div %107, 4u
+    %109:vec4<u32> = load %106
+    %110:vec2<u32> = swizzle %109, zw
+    %111:vec2<u32> = swizzle %109, xy
+    %112:bool = eq %108, 2u
+    %113:vec2<u32> = hlsl.ternary %111, %110, %112
+    %114:vec2<f32> = bitcast %113
+    %115:u32 = add 16u, %start_byte_offset_4
+    %116:u32 = div %115, 16u
+    %117:ptr<uniform, vec4<u32>, read> = access %a, %116
+    %118:u32 = mod %115, 16u
+    %119:u32 = div %118, 4u
+    %120:vec4<u32> = load %117
+    %121:vec2<u32> = swizzle %120, zw
+    %122:vec2<u32> = swizzle %120, xy
+    %123:bool = eq %119, 2u
+    %124:vec2<u32> = hlsl.ternary %122, %121, %123
+    %125:vec2<f32> = bitcast %124
+    %126:mat3x2<f32> = construct %103, %114, %125
+    ret %126
+  }
+}
+
diff --git a/test/tint/buffer/uniform/std140/struct/mat3x2_f32/dynamic_index_via_ptr.wgsl.expected.ir.fxc.hlsl b/test/tint/buffer/uniform/std140/struct/mat3x2_f32/dynamic_index_via_ptr.wgsl.expected.ir.fxc.hlsl
index 3f437dc..a85192e 100644
--- a/test/tint/buffer/uniform/std140/struct/mat3x2_f32/dynamic_index_via_ptr.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/buffer/uniform/std140/struct/mat3x2_f32/dynamic_index_via_ptr.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,325 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Access
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+
+struct Inner {
+  @size(64)
+  m : mat3x2<f32>,
+}
+
+struct Outer {
+  a : array<Inner, 4>,
+}
+
+@group(0) @binding(0) var<uniform> a : array<Outer, 4>;
+
+var<private> counter = 0;
+
+fn i() -> i32 {
+  counter++;
+  return counter;
+}
+
+@compute @workgroup_size(1)
+fn f() {
+  let p_a = &(a);
+  let p_a_i = &((*(p_a))[i()]);
+  let p_a_i_a = &((*(p_a_i)).a);
+  let p_a_i_a_i = &((*(p_a_i_a))[i()]);
+  let p_a_i_a_i_m = &((*(p_a_i_a_i)).m);
+  let p_a_i_a_i_m_i = &((*(p_a_i_a_i_m))[i()]);
+  let l_a : array<Outer, 4> = *(p_a);
+  let l_a_i : Outer = *(p_a_i);
+  let l_a_i_a : array<Inner, 4> = *(p_a_i_a);
+  let l_a_i_a_i : Inner = *(p_a_i_a_i);
+  let l_a_i_a_i_m : mat3x2<f32> = *(p_a_i_a_i_m);
+  let l_a_i_a_i_m_i : vec2<f32> = *(p_a_i_a_i_m_i);
+  let l_a_i_a_i_m_i_i : f32 = (*(p_a_i_a_i_m_i))[i()];
+}
+
+Failed to generate: :38:24 error: binary: %23 is not in scope
+    %22:u32 = add %21, %23
+                       ^^^
+
+:24:3 note: in block
+  $B3: {
+  ^^^
+
+:71:5 note: %23 declared here
+    %23:u32 = mul %59, 4u
+    ^^^^^^^
+
+:43:24 error: binary: %23 is not in scope
+    %29:u32 = add %28, %23
+                       ^^^
+
+:24:3 note: in block
+  $B3: {
+  ^^^
+
+:71:5 note: %23 declared here
+    %23:u32 = mul %59, 4u
+    ^^^^^^^
+
+:48:24 error: binary: %23 is not in scope
+    %35:u32 = add %34, %23
+                       ^^^
+
+:24:3 note: in block
+  $B3: {
+  ^^^
+
+:71:5 note: %23 declared here
+    %23:u32 = mul %59, 4u
+    ^^^^^^^
+
+:53:24 error: binary: %23 is not in scope
+    %41:u32 = add %40, %23
+                       ^^^
+
+:24:3 note: in block
+  $B3: {
+  ^^^
+
+:71:5 note: %23 declared here
+    %23:u32 = mul %59, 4u
+    ^^^^^^^
+
+:58:24 error: binary: %23 is not in scope
+    %47:u32 = add %46, %23
+                       ^^^
+
+:24:3 note: in block
+  $B3: {
+  ^^^
+
+:71:5 note: %23 declared here
+    %23:u32 = mul %59, 4u
+    ^^^^^^^
+
+:71:5 error: binary: no matching overload for 'operator * (i32, u32)'
+
+9 candidate operators:
+ • 'operator * (T  ✓ , T  ✗ ) -> T' where:
+      ✓  'T' is 'f32', 'i32', 'u32' or 'f16'
+ • 'operator * (vecN<T>  ✗ , T  ✓ ) -> vecN<T>' where:
+      ✓  'T' is 'f32', 'i32', 'u32' or 'f16'
+ • 'operator * (T  ✓ , vecN<T>  ✗ ) -> vecN<T>' where:
+      ✓  'T' is 'f32', 'i32', 'u32' or 'f16'
+ • 'operator * (T  ✗ , matNxM<T>  ✗ ) -> matNxM<T>' where:
+      ✗  'T' is 'f32' or 'f16'
+ • 'operator * (matNxM<T>  ✗ , T  ✗ ) -> matNxM<T>' where:
+      ✗  'T' is 'f32' or 'f16'
+ • 'operator * (vecN<T>  ✗ , vecN<T>  ✗ ) -> vecN<T>' where:
+      ✗  'T' is 'f32', 'i32', 'u32' or 'f16'
+ • 'operator * (matCxR<T>  ✗ , vecC<T>  ✗ ) -> vecR<T>' where:
+      ✗  'T' is 'f32' or 'f16'
+ • 'operator * (vecR<T>  ✗ , matCxR<T>  ✗ ) -> vecC<T>' where:
+      ✗  'T' is 'f32' or 'f16'
+ • 'operator * (matKxR<T>  ✗ , matCxK<T>  ✗ ) -> matCxR<T>' where:
+      ✗  'T' is 'f32' or 'f16'
+
+    %23:u32 = mul %59, 4u
+    ^^^^^^^^^^^^^^^^^^^^^
+
+:24:3 note: in block
+  $B3: {
+  ^^^
+
+note: # Disassembly
+Inner = struct @align(8) {
+  m:mat3x2<f32> @offset(0)
+}
+
+Outer = struct @align(8) {
+  a:array<Inner, 4> @offset(0)
+}
+
+$B1: {  # root
+  %a:ptr<uniform, array<vec4<u32>, 64>, read> = var @binding_point(0, 0)
+  %counter:ptr<private, i32, read_write> = var, 0i
+}
+
+%i = func():i32 {
+  $B2: {
+    %4:i32 = load %counter
+    %5:i32 = add %4, 1i
+    store %counter, %5
+    %6:i32 = load %counter
+    ret %6
+  }
+}
+%f = @compute @workgroup_size(1, 1, 1) func():void {
+  $B3: {
+    %8:i32 = call %i
+    %9:u32 = convert %8
+    %10:u32 = mul 256u, %9
+    %11:i32 = call %i
+    %12:u32 = convert %11
+    %13:u32 = mul 64u, %12
+    %14:i32 = call %i
+    %15:u32 = convert %14
+    %16:u32 = mul 8u, %15
+    %17:array<Outer, 4> = call %18, 0u
+    %l_a:array<Outer, 4> = let %17
+    %20:u32 = add %10, %13
+    %21:u32 = add %20, %16
+    %22:u32 = add %21, %23
+    %24:Outer = call %25, %22
+    %l_a_i:Outer = let %24
+    %27:u32 = add %10, %13
+    %28:u32 = add %27, %16
+    %29:u32 = add %28, %23
+    %30:array<Inner, 4> = call %31, %29
+    %l_a_i_a:array<Inner, 4> = let %30
+    %33:u32 = add %10, %13
+    %34:u32 = add %33, %16
+    %35:u32 = add %34, %23
+    %36:Inner = call %37, %35
+    %l_a_i_a_i:Inner = let %36
+    %39:u32 = add %10, %13
+    %40:u32 = add %39, %16
+    %41:u32 = add %40, %23
+    %42:mat3x2<f32> = call %43, %41
+    %l_a_i_a_i_m:mat3x2<f32> = let %42
+    %45:u32 = add %10, %13
+    %46:u32 = add %45, %16
+    %47:u32 = add %46, %23
+    %48:u32 = div %47, 16u
+    %49:ptr<uniform, vec4<u32>, read> = access %a, %48
+    %50:u32 = mod %47, 16u
+    %51:u32 = div %50, 4u
+    %52:vec4<u32> = load %49
+    %53:vec2<u32> = swizzle %52, zw
+    %54:vec2<u32> = swizzle %52, xy
+    %55:bool = eq %51, 2u
+    %56:vec2<u32> = hlsl.ternary %54, %53, %55
+    %57:vec2<f32> = bitcast %56
+    %l_a_i_a_i_m_i:vec2<f32> = let %57
+    %59:i32 = call %i
+    %23:u32 = mul %59, 4u
+    %60:u32 = add %10, %13
+    %61:u32 = add %60, %16
+    %62:u32 = add %61, %23
+    %63:u32 = div %62, 16u
+    %64:ptr<uniform, vec4<u32>, read> = access %a, %63
+    %65:u32 = mod %62, 16u
+    %66:u32 = div %65, 4u
+    %67:u32 = load_vector_element %64, %66
+    %68:f32 = bitcast %67
+    %l_a_i_a_i_m_i_i:f32 = let %68
+    ret
+  }
+}
+%43 = func(%start_byte_offset:u32):mat3x2<f32> {
+  $B4: {
+    %71:u32 = div %start_byte_offset, 16u
+    %72:ptr<uniform, vec4<u32>, read> = access %a, %71
+    %73:u32 = mod %start_byte_offset, 16u
+    %74:u32 = div %73, 4u
+    %75:vec4<u32> = load %72
+    %76:vec2<u32> = swizzle %75, zw
+    %77:vec2<u32> = swizzle %75, xy
+    %78:bool = eq %74, 2u
+    %79:vec2<u32> = hlsl.ternary %77, %76, %78
+    %80:vec2<f32> = bitcast %79
+    %81:u32 = add 8u, %start_byte_offset
+    %82:u32 = div %81, 16u
+    %83:ptr<uniform, vec4<u32>, read> = access %a, %82
+    %84:u32 = mod %81, 16u
+    %85:u32 = div %84, 4u
+    %86:vec4<u32> = load %83
+    %87:vec2<u32> = swizzle %86, zw
+    %88:vec2<u32> = swizzle %86, xy
+    %89:bool = eq %85, 2u
+    %90:vec2<u32> = hlsl.ternary %88, %87, %89
+    %91:vec2<f32> = bitcast %90
+    %92:u32 = add 16u, %start_byte_offset
+    %93:u32 = div %92, 16u
+    %94:ptr<uniform, vec4<u32>, read> = access %a, %93
+    %95:u32 = mod %92, 16u
+    %96:u32 = div %95, 4u
+    %97:vec4<u32> = load %94
+    %98:vec2<u32> = swizzle %97, zw
+    %99:vec2<u32> = swizzle %97, xy
+    %100:bool = eq %96, 2u
+    %101:vec2<u32> = hlsl.ternary %99, %98, %100
+    %102:vec2<f32> = bitcast %101
+    %103:mat3x2<f32> = construct %80, %91, %102
+    ret %103
+  }
+}
+%37 = func(%start_byte_offset_1:u32):Inner {  # %start_byte_offset_1: 'start_byte_offset'
+  $B5: {
+    %105:mat3x2<f32> = call %43, %start_byte_offset_1
+    %106:Inner = construct %105
+    ret %106
+  }
+}
+%31 = func(%start_byte_offset_2:u32):array<Inner, 4> {  # %start_byte_offset_2: 'start_byte_offset'
+  $B6: {
+    %a_1:ptr<function, array<Inner, 4>, read_write> = var, array<Inner, 4>(Inner(mat3x2<f32>(vec2<f32>(0.0f))))  # %a_1: 'a'
+    loop [i: $B7, b: $B8, c: $B9] {  # loop_1
+      $B7: {  # initializer
+        next_iteration 0u  # -> $B8
+      }
+      $B8 (%idx:u32): {  # body
+        %110:bool = gte %idx, 4u
+        if %110 [t: $B10] {  # if_1
+          $B10: {  # true
+            exit_loop  # loop_1
+          }
+        }
+        %111:u32 = mul %idx, 64u
+        %112:u32 = add %start_byte_offset_2, %111
+        %113:ptr<function, Inner, read_write> = access %a_1, %idx
+        %114:Inner = call %37, %112
+        store %113, %114
+        continue  # -> $B9
+      }
+      $B9: {  # continuing
+        %115:u32 = add %idx, 1u
+        next_iteration %115  # -> $B8
+      }
+    }
+    %116:array<Inner, 4> = load %a_1
+    ret %116
+  }
+}
+%25 = func(%start_byte_offset_3:u32):Outer {  # %start_byte_offset_3: 'start_byte_offset'
+  $B11: {
+    %118:array<Inner, 4> = call %31, %start_byte_offset_3
+    %119:Outer = construct %118
+    ret %119
+  }
+}
+%18 = func(%start_byte_offset_4:u32):array<Outer, 4> {  # %start_byte_offset_4: 'start_byte_offset'
+  $B12: {
+    %a_2:ptr<function, array<Outer, 4>, read_write> = var, array<Outer, 4>(Outer(array<Inner, 4>(Inner(mat3x2<f32>(vec2<f32>(0.0f))))))  # %a_2: 'a'
+    loop [i: $B13, b: $B14, c: $B15] {  # loop_2
+      $B13: {  # initializer
+        next_iteration 0u  # -> $B14
+      }
+      $B14 (%idx_1:u32): {  # body
+        %123:bool = gte %idx_1, 4u
+        if %123 [t: $B16] {  # if_2
+          $B16: {  # true
+            exit_loop  # loop_2
+          }
+        }
+        %124:u32 = mul %idx_1, 256u
+        %125:u32 = add %start_byte_offset_4, %124
+        %126:ptr<function, Outer, read_write> = access %a_2, %idx_1
+        %127:Outer = call %25, %125
+        store %126, %127
+        continue  # -> $B15
+      }
+      $B15: {  # continuing
+        %128:u32 = add %idx_1, 1u
+        next_iteration %128  # -> $B14
+      }
+    }
+    %129:array<Outer, 4> = load %a_2
+    ret %129
+  }
+}
+
diff --git a/test/tint/buffer/uniform/std140/struct/mat3x2_f32/static_index_via_ptr.wgsl.expected.ir.dxc.hlsl b/test/tint/buffer/uniform/std140/struct/mat3x2_f32/static_index_via_ptr.wgsl.expected.ir.dxc.hlsl
index 3f437dc..49c7539 100644
--- a/test/tint/buffer/uniform/std140/struct/mat3x2_f32/static_index_via_ptr.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/buffer/uniform/std140/struct/mat3x2_f32/static_index_via_ptr.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,89 @@
-SKIP: FAILED
+struct Inner {
+  float3x2 m;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Access
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct Outer {
+  Inner a[4];
+};
+
+
+cbuffer cbuffer_a : register(b0) {
+  uint4 a[64];
+};
+float3x2 v(uint start_byte_offset) {
+  uint4 v_1 = a[(start_byte_offset / 16u)];
+  float2 v_2 = asfloat((((((start_byte_offset % 16u) / 4u) == 2u)) ? (v_1.zw) : (v_1.xy)));
+  uint4 v_3 = a[((8u + start_byte_offset) / 16u)];
+  float2 v_4 = asfloat(((((((8u + start_byte_offset) % 16u) / 4u) == 2u)) ? (v_3.zw) : (v_3.xy)));
+  uint4 v_5 = a[((16u + start_byte_offset) / 16u)];
+  return float3x2(v_2, v_4, asfloat(((((((16u + start_byte_offset) % 16u) / 4u) == 2u)) ? (v_5.zw) : (v_5.xy))));
+}
+
+Inner v_6(uint start_byte_offset) {
+  Inner v_7 = {v(start_byte_offset)};
+  return v_7;
+}
+
+typedef Inner ary_ret[4];
+ary_ret v_8(uint start_byte_offset) {
+  Inner a[4] = (Inner[4])0;
+  {
+    uint v_9 = 0u;
+    v_9 = 0u;
+    while(true) {
+      uint v_10 = v_9;
+      if ((v_10 >= 4u)) {
+        break;
+      }
+      Inner v_11 = v_6((start_byte_offset + (v_10 * 64u)));
+      a[v_10] = v_11;
+      {
+        v_9 = (v_10 + 1u);
+      }
+      continue;
+    }
+  }
+  Inner v_12[4] = a;
+  return v_12;
+}
+
+Outer v_13(uint start_byte_offset) {
+  Inner v_14[4] = v_8(start_byte_offset);
+  Outer v_15 = {v_14};
+  return v_15;
+}
+
+typedef Outer ary_ret_1[4];
+ary_ret_1 v_16(uint start_byte_offset) {
+  Outer a[4] = (Outer[4])0;
+  {
+    uint v_17 = 0u;
+    v_17 = 0u;
+    while(true) {
+      uint v_18 = v_17;
+      if ((v_18 >= 4u)) {
+        break;
+      }
+      Outer v_19 = v_13((start_byte_offset + (v_18 * 256u)));
+      a[v_18] = v_19;
+      {
+        v_17 = (v_18 + 1u);
+      }
+      continue;
+    }
+  }
+  Outer v_20[4] = a;
+  return v_20;
+}
+
+[numthreads(1, 1, 1)]
+void f() {
+  Outer l_a[4] = v_16(0u);
+  Outer l_a_3 = v_13(904u);
+  Inner l_a_3_a[4] = v_8(904u);
+  Inner l_a_3_a_2 = v_6(904u);
+  float3x2 l_a_3_a_2_m = v(904u);
+  float2 l_a_3_a_2_m_1 = asfloat(a[56u].zw);
+  float l_a_3_a_2_m_1_0 = asfloat(a[56u].z);
+}
+
diff --git a/test/tint/buffer/uniform/std140/struct/mat3x2_f32/static_index_via_ptr.wgsl.expected.ir.fxc.hlsl b/test/tint/buffer/uniform/std140/struct/mat3x2_f32/static_index_via_ptr.wgsl.expected.ir.fxc.hlsl
index 3f437dc..49c7539 100644
--- a/test/tint/buffer/uniform/std140/struct/mat3x2_f32/static_index_via_ptr.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/buffer/uniform/std140/struct/mat3x2_f32/static_index_via_ptr.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,89 @@
-SKIP: FAILED
+struct Inner {
+  float3x2 m;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Access
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct Outer {
+  Inner a[4];
+};
+
+
+cbuffer cbuffer_a : register(b0) {
+  uint4 a[64];
+};
+float3x2 v(uint start_byte_offset) {
+  uint4 v_1 = a[(start_byte_offset / 16u)];
+  float2 v_2 = asfloat((((((start_byte_offset % 16u) / 4u) == 2u)) ? (v_1.zw) : (v_1.xy)));
+  uint4 v_3 = a[((8u + start_byte_offset) / 16u)];
+  float2 v_4 = asfloat(((((((8u + start_byte_offset) % 16u) / 4u) == 2u)) ? (v_3.zw) : (v_3.xy)));
+  uint4 v_5 = a[((16u + start_byte_offset) / 16u)];
+  return float3x2(v_2, v_4, asfloat(((((((16u + start_byte_offset) % 16u) / 4u) == 2u)) ? (v_5.zw) : (v_5.xy))));
+}
+
+Inner v_6(uint start_byte_offset) {
+  Inner v_7 = {v(start_byte_offset)};
+  return v_7;
+}
+
+typedef Inner ary_ret[4];
+ary_ret v_8(uint start_byte_offset) {
+  Inner a[4] = (Inner[4])0;
+  {
+    uint v_9 = 0u;
+    v_9 = 0u;
+    while(true) {
+      uint v_10 = v_9;
+      if ((v_10 >= 4u)) {
+        break;
+      }
+      Inner v_11 = v_6((start_byte_offset + (v_10 * 64u)));
+      a[v_10] = v_11;
+      {
+        v_9 = (v_10 + 1u);
+      }
+      continue;
+    }
+  }
+  Inner v_12[4] = a;
+  return v_12;
+}
+
+Outer v_13(uint start_byte_offset) {
+  Inner v_14[4] = v_8(start_byte_offset);
+  Outer v_15 = {v_14};
+  return v_15;
+}
+
+typedef Outer ary_ret_1[4];
+ary_ret_1 v_16(uint start_byte_offset) {
+  Outer a[4] = (Outer[4])0;
+  {
+    uint v_17 = 0u;
+    v_17 = 0u;
+    while(true) {
+      uint v_18 = v_17;
+      if ((v_18 >= 4u)) {
+        break;
+      }
+      Outer v_19 = v_13((start_byte_offset + (v_18 * 256u)));
+      a[v_18] = v_19;
+      {
+        v_17 = (v_18 + 1u);
+      }
+      continue;
+    }
+  }
+  Outer v_20[4] = a;
+  return v_20;
+}
+
+[numthreads(1, 1, 1)]
+void f() {
+  Outer l_a[4] = v_16(0u);
+  Outer l_a_3 = v_13(904u);
+  Inner l_a_3_a[4] = v_8(904u);
+  Inner l_a_3_a_2 = v_6(904u);
+  float3x2 l_a_3_a_2_m = v(904u);
+  float2 l_a_3_a_2_m_1 = asfloat(a[56u].zw);
+  float l_a_3_a_2_m_1_0 = asfloat(a[56u].z);
+}
+
diff --git a/test/tint/buffer/uniform/std140/struct/mat3x2_f32/to_builtin.wgsl.expected.ir.dxc.hlsl b/test/tint/buffer/uniform/std140/struct/mat3x2_f32/to_builtin.wgsl.expected.ir.dxc.hlsl
index 3f437dc..19587ea 100644
--- a/test/tint/buffer/uniform/std140/struct/mat3x2_f32/to_builtin.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/buffer/uniform/std140/struct/mat3x2_f32/to_builtin.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,20 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Access
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+cbuffer cbuffer_u : register(b0) {
+  uint4 u[32];
+};
+float3x2 v(uint start_byte_offset) {
+  uint4 v_1 = u[(start_byte_offset / 16u)];
+  float2 v_2 = asfloat((((((start_byte_offset % 16u) / 4u) == 2u)) ? (v_1.zw) : (v_1.xy)));
+  uint4 v_3 = u[((8u + start_byte_offset) / 16u)];
+  float2 v_4 = asfloat(((((((8u + start_byte_offset) % 16u) / 4u) == 2u)) ? (v_3.zw) : (v_3.xy)));
+  uint4 v_5 = u[((16u + start_byte_offset) / 16u)];
+  return float3x2(v_2, v_4, asfloat(((((((16u + start_byte_offset) % 16u) / 4u) == 2u)) ? (v_5.zw) : (v_5.xy))));
+}
+
+[numthreads(1, 1, 1)]
+void f() {
+  float2x3 t = transpose(v(264u));
+  float l = length(asfloat(u[1u].xy).yx);
+  float a = abs(asfloat(u[1u].xy).yx[0u]);
+}
+
diff --git a/test/tint/buffer/uniform/std140/struct/mat3x2_f32/to_builtin.wgsl.expected.ir.fxc.hlsl b/test/tint/buffer/uniform/std140/struct/mat3x2_f32/to_builtin.wgsl.expected.ir.fxc.hlsl
index 3f437dc..19587ea 100644
--- a/test/tint/buffer/uniform/std140/struct/mat3x2_f32/to_builtin.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/buffer/uniform/std140/struct/mat3x2_f32/to_builtin.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,20 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Access
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+cbuffer cbuffer_u : register(b0) {
+  uint4 u[32];
+};
+float3x2 v(uint start_byte_offset) {
+  uint4 v_1 = u[(start_byte_offset / 16u)];
+  float2 v_2 = asfloat((((((start_byte_offset % 16u) / 4u) == 2u)) ? (v_1.zw) : (v_1.xy)));
+  uint4 v_3 = u[((8u + start_byte_offset) / 16u)];
+  float2 v_4 = asfloat(((((((8u + start_byte_offset) % 16u) / 4u) == 2u)) ? (v_3.zw) : (v_3.xy)));
+  uint4 v_5 = u[((16u + start_byte_offset) / 16u)];
+  return float3x2(v_2, v_4, asfloat(((((((16u + start_byte_offset) % 16u) / 4u) == 2u)) ? (v_5.zw) : (v_5.xy))));
+}
+
+[numthreads(1, 1, 1)]
+void f() {
+  float2x3 t = transpose(v(264u));
+  float l = length(asfloat(u[1u].xy).yx);
+  float a = abs(asfloat(u[1u].xy).yx[0u]);
+}
+
diff --git a/test/tint/buffer/uniform/std140/struct/mat3x2_f32/to_fn.wgsl.expected.ir.dxc.hlsl b/test/tint/buffer/uniform/std140/struct/mat3x2_f32/to_fn.wgsl.expected.ir.dxc.hlsl
index 3f437dc..ec5d419 100644
--- a/test/tint/buffer/uniform/std140/struct/mat3x2_f32/to_fn.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/buffer/uniform/std140/struct/mat3x2_f32/to_fn.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,75 @@
-SKIP: FAILED
+struct S {
+  int before;
+  float3x2 m;
+  int after;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Access
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+
+cbuffer cbuffer_u : register(b0) {
+  uint4 u[32];
+};
+void a(S a_1[4]) {
+}
+
+void b(S s) {
+}
+
+void c(float3x2 m) {
+}
+
+void d(float2 v) {
+}
+
+void e(float f) {
+}
+
+float3x2 v_1(uint start_byte_offset) {
+  uint4 v_2 = u[(start_byte_offset / 16u)];
+  float2 v_3 = asfloat((((((start_byte_offset % 16u) / 4u) == 2u)) ? (v_2.zw) : (v_2.xy)));
+  uint4 v_4 = u[((8u + start_byte_offset) / 16u)];
+  float2 v_5 = asfloat(((((((8u + start_byte_offset) % 16u) / 4u) == 2u)) ? (v_4.zw) : (v_4.xy)));
+  uint4 v_6 = u[((16u + start_byte_offset) / 16u)];
+  return float3x2(v_3, v_5, asfloat(((((((16u + start_byte_offset) % 16u) / 4u) == 2u)) ? (v_6.zw) : (v_6.xy))));
+}
+
+S v_7(uint start_byte_offset) {
+  int v_8 = asint(u[(start_byte_offset / 16u)][((start_byte_offset % 16u) / 4u)]);
+  float3x2 v_9 = v_1((8u + start_byte_offset));
+  S v_10 = {v_8, v_9, asint(u[((64u + start_byte_offset) / 16u)][(((64u + start_byte_offset) % 16u) / 4u)])};
+  return v_10;
+}
+
+typedef S ary_ret[4];
+ary_ret v_11(uint start_byte_offset) {
+  S a[4] = (S[4])0;
+  {
+    uint v_12 = 0u;
+    v_12 = 0u;
+    while(true) {
+      uint v_13 = v_12;
+      if ((v_13 >= 4u)) {
+        break;
+      }
+      S v_14 = v_7((start_byte_offset + (v_13 * 128u)));
+      a[v_13] = v_14;
+      {
+        v_12 = (v_13 + 1u);
+      }
+      continue;
+    }
+  }
+  S v_15[4] = a;
+  return v_15;
+}
+
+[numthreads(1, 1, 1)]
+void f() {
+  S v_16[4] = v_11(0u);
+  a(v_16);
+  S v_17 = v_7(256u);
+  b(v_17);
+  c(v_1(264u));
+  d(asfloat(u[1u].xy).yx);
+  e(asfloat(u[1u].xy).yx[0u]);
+}
+
diff --git a/test/tint/buffer/uniform/std140/struct/mat3x2_f32/to_fn.wgsl.expected.ir.fxc.hlsl b/test/tint/buffer/uniform/std140/struct/mat3x2_f32/to_fn.wgsl.expected.ir.fxc.hlsl
index 3f437dc..ec5d419 100644
--- a/test/tint/buffer/uniform/std140/struct/mat3x2_f32/to_fn.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/buffer/uniform/std140/struct/mat3x2_f32/to_fn.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,75 @@
-SKIP: FAILED
+struct S {
+  int before;
+  float3x2 m;
+  int after;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Access
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+
+cbuffer cbuffer_u : register(b0) {
+  uint4 u[32];
+};
+void a(S a_1[4]) {
+}
+
+void b(S s) {
+}
+
+void c(float3x2 m) {
+}
+
+void d(float2 v) {
+}
+
+void e(float f) {
+}
+
+float3x2 v_1(uint start_byte_offset) {
+  uint4 v_2 = u[(start_byte_offset / 16u)];
+  float2 v_3 = asfloat((((((start_byte_offset % 16u) / 4u) == 2u)) ? (v_2.zw) : (v_2.xy)));
+  uint4 v_4 = u[((8u + start_byte_offset) / 16u)];
+  float2 v_5 = asfloat(((((((8u + start_byte_offset) % 16u) / 4u) == 2u)) ? (v_4.zw) : (v_4.xy)));
+  uint4 v_6 = u[((16u + start_byte_offset) / 16u)];
+  return float3x2(v_3, v_5, asfloat(((((((16u + start_byte_offset) % 16u) / 4u) == 2u)) ? (v_6.zw) : (v_6.xy))));
+}
+
+S v_7(uint start_byte_offset) {
+  int v_8 = asint(u[(start_byte_offset / 16u)][((start_byte_offset % 16u) / 4u)]);
+  float3x2 v_9 = v_1((8u + start_byte_offset));
+  S v_10 = {v_8, v_9, asint(u[((64u + start_byte_offset) / 16u)][(((64u + start_byte_offset) % 16u) / 4u)])};
+  return v_10;
+}
+
+typedef S ary_ret[4];
+ary_ret v_11(uint start_byte_offset) {
+  S a[4] = (S[4])0;
+  {
+    uint v_12 = 0u;
+    v_12 = 0u;
+    while(true) {
+      uint v_13 = v_12;
+      if ((v_13 >= 4u)) {
+        break;
+      }
+      S v_14 = v_7((start_byte_offset + (v_13 * 128u)));
+      a[v_13] = v_14;
+      {
+        v_12 = (v_13 + 1u);
+      }
+      continue;
+    }
+  }
+  S v_15[4] = a;
+  return v_15;
+}
+
+[numthreads(1, 1, 1)]
+void f() {
+  S v_16[4] = v_11(0u);
+  a(v_16);
+  S v_17 = v_7(256u);
+  b(v_17);
+  c(v_1(264u));
+  d(asfloat(u[1u].xy).yx);
+  e(asfloat(u[1u].xy).yx[0u]);
+}
+
diff --git a/test/tint/buffer/uniform/std140/struct/mat3x2_f32/to_private.wgsl.expected.ir.dxc.hlsl b/test/tint/buffer/uniform/std140/struct/mat3x2_f32/to_private.wgsl.expected.ir.dxc.hlsl
index 3f437dc..f2eadbd 100644
--- a/test/tint/buffer/uniform/std140/struct/mat3x2_f32/to_private.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/buffer/uniform/std140/struct/mat3x2_f32/to_private.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,60 @@
-SKIP: FAILED
+struct S {
+  int before;
+  float3x2 m;
+  int after;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Access
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+
+cbuffer cbuffer_u : register(b0) {
+  uint4 u[32];
+};
+static S p[4] = (S[4])0;
+float3x2 v(uint start_byte_offset) {
+  uint4 v_1 = u[(start_byte_offset / 16u)];
+  float2 v_2 = asfloat((((((start_byte_offset % 16u) / 4u) == 2u)) ? (v_1.zw) : (v_1.xy)));
+  uint4 v_3 = u[((8u + start_byte_offset) / 16u)];
+  float2 v_4 = asfloat(((((((8u + start_byte_offset) % 16u) / 4u) == 2u)) ? (v_3.zw) : (v_3.xy)));
+  uint4 v_5 = u[((16u + start_byte_offset) / 16u)];
+  return float3x2(v_2, v_4, asfloat(((((((16u + start_byte_offset) % 16u) / 4u) == 2u)) ? (v_5.zw) : (v_5.xy))));
+}
+
+S v_6(uint start_byte_offset) {
+  int v_7 = asint(u[(start_byte_offset / 16u)][((start_byte_offset % 16u) / 4u)]);
+  float3x2 v_8 = v((8u + start_byte_offset));
+  S v_9 = {v_7, v_8, asint(u[((64u + start_byte_offset) / 16u)][(((64u + start_byte_offset) % 16u) / 4u)])};
+  return v_9;
+}
+
+typedef S ary_ret[4];
+ary_ret v_10(uint start_byte_offset) {
+  S a[4] = (S[4])0;
+  {
+    uint v_11 = 0u;
+    v_11 = 0u;
+    while(true) {
+      uint v_12 = v_11;
+      if ((v_12 >= 4u)) {
+        break;
+      }
+      S v_13 = v_6((start_byte_offset + (v_12 * 128u)));
+      a[v_12] = v_13;
+      {
+        v_11 = (v_12 + 1u);
+      }
+      continue;
+    }
+  }
+  S v_14[4] = a;
+  return v_14;
+}
+
+[numthreads(1, 1, 1)]
+void f() {
+  S v_15[4] = v_10(0u);
+  p = v_15;
+  S v_16 = v_6(256u);
+  p[1] = v_16;
+  p[3].m = v(264u);
+  p[1].m[0] = asfloat(u[1u].xy).yx;
+}
+
diff --git a/test/tint/buffer/uniform/std140/struct/mat3x2_f32/to_private.wgsl.expected.ir.fxc.hlsl b/test/tint/buffer/uniform/std140/struct/mat3x2_f32/to_private.wgsl.expected.ir.fxc.hlsl
index 3f437dc..f2eadbd 100644
--- a/test/tint/buffer/uniform/std140/struct/mat3x2_f32/to_private.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/buffer/uniform/std140/struct/mat3x2_f32/to_private.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,60 @@
-SKIP: FAILED
+struct S {
+  int before;
+  float3x2 m;
+  int after;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Access
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+
+cbuffer cbuffer_u : register(b0) {
+  uint4 u[32];
+};
+static S p[4] = (S[4])0;
+float3x2 v(uint start_byte_offset) {
+  uint4 v_1 = u[(start_byte_offset / 16u)];
+  float2 v_2 = asfloat((((((start_byte_offset % 16u) / 4u) == 2u)) ? (v_1.zw) : (v_1.xy)));
+  uint4 v_3 = u[((8u + start_byte_offset) / 16u)];
+  float2 v_4 = asfloat(((((((8u + start_byte_offset) % 16u) / 4u) == 2u)) ? (v_3.zw) : (v_3.xy)));
+  uint4 v_5 = u[((16u + start_byte_offset) / 16u)];
+  return float3x2(v_2, v_4, asfloat(((((((16u + start_byte_offset) % 16u) / 4u) == 2u)) ? (v_5.zw) : (v_5.xy))));
+}
+
+S v_6(uint start_byte_offset) {
+  int v_7 = asint(u[(start_byte_offset / 16u)][((start_byte_offset % 16u) / 4u)]);
+  float3x2 v_8 = v((8u + start_byte_offset));
+  S v_9 = {v_7, v_8, asint(u[((64u + start_byte_offset) / 16u)][(((64u + start_byte_offset) % 16u) / 4u)])};
+  return v_9;
+}
+
+typedef S ary_ret[4];
+ary_ret v_10(uint start_byte_offset) {
+  S a[4] = (S[4])0;
+  {
+    uint v_11 = 0u;
+    v_11 = 0u;
+    while(true) {
+      uint v_12 = v_11;
+      if ((v_12 >= 4u)) {
+        break;
+      }
+      S v_13 = v_6((start_byte_offset + (v_12 * 128u)));
+      a[v_12] = v_13;
+      {
+        v_11 = (v_12 + 1u);
+      }
+      continue;
+    }
+  }
+  S v_14[4] = a;
+  return v_14;
+}
+
+[numthreads(1, 1, 1)]
+void f() {
+  S v_15[4] = v_10(0u);
+  p = v_15;
+  S v_16 = v_6(256u);
+  p[1] = v_16;
+  p[3].m = v(264u);
+  p[1].m[0] = asfloat(u[1u].xy).yx;
+}
+
diff --git a/test/tint/buffer/uniform/std140/struct/mat3x2_f32/to_storage.wgsl.expected.ir.dxc.hlsl b/test/tint/buffer/uniform/std140/struct/mat3x2_f32/to_storage.wgsl.expected.ir.dxc.hlsl
index 3f437dc..801b521 100644
--- a/test/tint/buffer/uniform/std140/struct/mat3x2_f32/to_storage.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/buffer/uniform/std140/struct/mat3x2_f32/to_storage.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,91 @@
-SKIP: FAILED
+struct S {
+  int before;
+  float3x2 m;
+  int after;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Access
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+
+cbuffer cbuffer_u : register(b0) {
+  uint4 u[32];
+};
+RWByteAddressBuffer s : register(u1);
+void v(uint offset, float3x2 obj) {
+  s.Store2((offset + 0u), asuint(obj[0u]));
+  s.Store2((offset + 8u), asuint(obj[1u]));
+  s.Store2((offset + 16u), asuint(obj[2u]));
+}
+
+float3x2 v_1(uint start_byte_offset) {
+  uint4 v_2 = u[(start_byte_offset / 16u)];
+  float2 v_3 = asfloat((((((start_byte_offset % 16u) / 4u) == 2u)) ? (v_2.zw) : (v_2.xy)));
+  uint4 v_4 = u[((8u + start_byte_offset) / 16u)];
+  float2 v_5 = asfloat(((((((8u + start_byte_offset) % 16u) / 4u) == 2u)) ? (v_4.zw) : (v_4.xy)));
+  uint4 v_6 = u[((16u + start_byte_offset) / 16u)];
+  return float3x2(v_3, v_5, asfloat(((((((16u + start_byte_offset) % 16u) / 4u) == 2u)) ? (v_6.zw) : (v_6.xy))));
+}
+
+void v_7(uint offset, S obj) {
+  s.Store((offset + 0u), asuint(obj.before));
+  v((offset + 8u), obj.m);
+  s.Store((offset + 64u), asuint(obj.after));
+}
+
+S v_8(uint start_byte_offset) {
+  int v_9 = asint(u[(start_byte_offset / 16u)][((start_byte_offset % 16u) / 4u)]);
+  float3x2 v_10 = v_1((8u + start_byte_offset));
+  S v_11 = {v_9, v_10, asint(u[((64u + start_byte_offset) / 16u)][(((64u + start_byte_offset) % 16u) / 4u)])};
+  return v_11;
+}
+
+void v_12(uint offset, S obj[4]) {
+  {
+    uint v_13 = 0u;
+    v_13 = 0u;
+    while(true) {
+      uint v_14 = v_13;
+      if ((v_14 >= 4u)) {
+        break;
+      }
+      S v_15 = obj[v_14];
+      v_7((offset + (v_14 * 128u)), v_15);
+      {
+        v_13 = (v_14 + 1u);
+      }
+      continue;
+    }
+  }
+}
+
+typedef S ary_ret[4];
+ary_ret v_16(uint start_byte_offset) {
+  S a[4] = (S[4])0;
+  {
+    uint v_17 = 0u;
+    v_17 = 0u;
+    while(true) {
+      uint v_18 = v_17;
+      if ((v_18 >= 4u)) {
+        break;
+      }
+      S v_19 = v_8((start_byte_offset + (v_18 * 128u)));
+      a[v_18] = v_19;
+      {
+        v_17 = (v_18 + 1u);
+      }
+      continue;
+    }
+  }
+  S v_20[4] = a;
+  return v_20;
+}
+
+[numthreads(1, 1, 1)]
+void f() {
+  S v_21[4] = v_16(0u);
+  v_12(0u, v_21);
+  S v_22 = v_8(256u);
+  v_7(128u, v_22);
+  v(392u, v_1(264u));
+  s.Store2(136u, asuint(asfloat(u[1u].xy).yx));
+}
+
diff --git a/test/tint/buffer/uniform/std140/struct/mat3x2_f32/to_storage.wgsl.expected.ir.fxc.hlsl b/test/tint/buffer/uniform/std140/struct/mat3x2_f32/to_storage.wgsl.expected.ir.fxc.hlsl
index 3f437dc..801b521 100644
--- a/test/tint/buffer/uniform/std140/struct/mat3x2_f32/to_storage.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/buffer/uniform/std140/struct/mat3x2_f32/to_storage.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,91 @@
-SKIP: FAILED
+struct S {
+  int before;
+  float3x2 m;
+  int after;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Access
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+
+cbuffer cbuffer_u : register(b0) {
+  uint4 u[32];
+};
+RWByteAddressBuffer s : register(u1);
+void v(uint offset, float3x2 obj) {
+  s.Store2((offset + 0u), asuint(obj[0u]));
+  s.Store2((offset + 8u), asuint(obj[1u]));
+  s.Store2((offset + 16u), asuint(obj[2u]));
+}
+
+float3x2 v_1(uint start_byte_offset) {
+  uint4 v_2 = u[(start_byte_offset / 16u)];
+  float2 v_3 = asfloat((((((start_byte_offset % 16u) / 4u) == 2u)) ? (v_2.zw) : (v_2.xy)));
+  uint4 v_4 = u[((8u + start_byte_offset) / 16u)];
+  float2 v_5 = asfloat(((((((8u + start_byte_offset) % 16u) / 4u) == 2u)) ? (v_4.zw) : (v_4.xy)));
+  uint4 v_6 = u[((16u + start_byte_offset) / 16u)];
+  return float3x2(v_3, v_5, asfloat(((((((16u + start_byte_offset) % 16u) / 4u) == 2u)) ? (v_6.zw) : (v_6.xy))));
+}
+
+void v_7(uint offset, S obj) {
+  s.Store((offset + 0u), asuint(obj.before));
+  v((offset + 8u), obj.m);
+  s.Store((offset + 64u), asuint(obj.after));
+}
+
+S v_8(uint start_byte_offset) {
+  int v_9 = asint(u[(start_byte_offset / 16u)][((start_byte_offset % 16u) / 4u)]);
+  float3x2 v_10 = v_1((8u + start_byte_offset));
+  S v_11 = {v_9, v_10, asint(u[((64u + start_byte_offset) / 16u)][(((64u + start_byte_offset) % 16u) / 4u)])};
+  return v_11;
+}
+
+void v_12(uint offset, S obj[4]) {
+  {
+    uint v_13 = 0u;
+    v_13 = 0u;
+    while(true) {
+      uint v_14 = v_13;
+      if ((v_14 >= 4u)) {
+        break;
+      }
+      S v_15 = obj[v_14];
+      v_7((offset + (v_14 * 128u)), v_15);
+      {
+        v_13 = (v_14 + 1u);
+      }
+      continue;
+    }
+  }
+}
+
+typedef S ary_ret[4];
+ary_ret v_16(uint start_byte_offset) {
+  S a[4] = (S[4])0;
+  {
+    uint v_17 = 0u;
+    v_17 = 0u;
+    while(true) {
+      uint v_18 = v_17;
+      if ((v_18 >= 4u)) {
+        break;
+      }
+      S v_19 = v_8((start_byte_offset + (v_18 * 128u)));
+      a[v_18] = v_19;
+      {
+        v_17 = (v_18 + 1u);
+      }
+      continue;
+    }
+  }
+  S v_20[4] = a;
+  return v_20;
+}
+
+[numthreads(1, 1, 1)]
+void f() {
+  S v_21[4] = v_16(0u);
+  v_12(0u, v_21);
+  S v_22 = v_8(256u);
+  v_7(128u, v_22);
+  v(392u, v_1(264u));
+  s.Store2(136u, asuint(asfloat(u[1u].xy).yx));
+}
+
diff --git a/test/tint/buffer/uniform/std140/struct/mat3x2_f32/to_workgroup.wgsl.expected.ir.dxc.hlsl b/test/tint/buffer/uniform/std140/struct/mat3x2_f32/to_workgroup.wgsl.expected.ir.dxc.hlsl
index 3f437dc..8fe1ece 100644
--- a/test/tint/buffer/uniform/std140/struct/mat3x2_f32/to_workgroup.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/buffer/uniform/std140/struct/mat3x2_f32/to_workgroup.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,85 @@
-SKIP: FAILED
+struct S {
+  int before;
+  float3x2 m;
+  int after;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Access
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct f_inputs {
+  uint tint_local_index : SV_GroupIndex;
+};
+
+
+cbuffer cbuffer_u : register(b0) {
+  uint4 u[32];
+};
+groupshared S w[4];
+float3x2 v(uint start_byte_offset) {
+  uint4 v_1 = u[(start_byte_offset / 16u)];
+  float2 v_2 = asfloat((((((start_byte_offset % 16u) / 4u) == 2u)) ? (v_1.zw) : (v_1.xy)));
+  uint4 v_3 = u[((8u + start_byte_offset) / 16u)];
+  float2 v_4 = asfloat(((((((8u + start_byte_offset) % 16u) / 4u) == 2u)) ? (v_3.zw) : (v_3.xy)));
+  uint4 v_5 = u[((16u + start_byte_offset) / 16u)];
+  return float3x2(v_2, v_4, asfloat(((((((16u + start_byte_offset) % 16u) / 4u) == 2u)) ? (v_5.zw) : (v_5.xy))));
+}
+
+S v_6(uint start_byte_offset) {
+  int v_7 = asint(u[(start_byte_offset / 16u)][((start_byte_offset % 16u) / 4u)]);
+  float3x2 v_8 = v((8u + start_byte_offset));
+  S v_9 = {v_7, v_8, asint(u[((64u + start_byte_offset) / 16u)][(((64u + start_byte_offset) % 16u) / 4u)])};
+  return v_9;
+}
+
+typedef S ary_ret[4];
+ary_ret v_10(uint start_byte_offset) {
+  S a[4] = (S[4])0;
+  {
+    uint v_11 = 0u;
+    v_11 = 0u;
+    while(true) {
+      uint v_12 = v_11;
+      if ((v_12 >= 4u)) {
+        break;
+      }
+      S v_13 = v_6((start_byte_offset + (v_12 * 128u)));
+      a[v_12] = v_13;
+      {
+        v_11 = (v_12 + 1u);
+      }
+      continue;
+    }
+  }
+  S v_14[4] = a;
+  return v_14;
+}
+
+void f_inner(uint tint_local_index) {
+  {
+    uint v_15 = 0u;
+    v_15 = tint_local_index;
+    while(true) {
+      uint v_16 = v_15;
+      if ((v_16 >= 4u)) {
+        break;
+      }
+      S v_17 = (S)0;
+      w[v_16] = v_17;
+      {
+        v_15 = (v_16 + 1u);
+      }
+      continue;
+    }
+  }
+  GroupMemoryBarrierWithGroupSync();
+  S v_18[4] = v_10(0u);
+  w = v_18;
+  S v_19 = v_6(256u);
+  w[1] = v_19;
+  w[3].m = v(264u);
+  w[1].m[0] = asfloat(u[1u].xy).yx;
+}
+
+[numthreads(1, 1, 1)]
+void f(f_inputs inputs) {
+  f_inner(inputs.tint_local_index);
+}
+
diff --git a/test/tint/buffer/uniform/std140/struct/mat3x2_f32/to_workgroup.wgsl.expected.ir.fxc.hlsl b/test/tint/buffer/uniform/std140/struct/mat3x2_f32/to_workgroup.wgsl.expected.ir.fxc.hlsl
index 3f437dc..8fe1ece 100644
--- a/test/tint/buffer/uniform/std140/struct/mat3x2_f32/to_workgroup.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/buffer/uniform/std140/struct/mat3x2_f32/to_workgroup.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,85 @@
-SKIP: FAILED
+struct S {
+  int before;
+  float3x2 m;
+  int after;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Access
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct f_inputs {
+  uint tint_local_index : SV_GroupIndex;
+};
+
+
+cbuffer cbuffer_u : register(b0) {
+  uint4 u[32];
+};
+groupshared S w[4];
+float3x2 v(uint start_byte_offset) {
+  uint4 v_1 = u[(start_byte_offset / 16u)];
+  float2 v_2 = asfloat((((((start_byte_offset % 16u) / 4u) == 2u)) ? (v_1.zw) : (v_1.xy)));
+  uint4 v_3 = u[((8u + start_byte_offset) / 16u)];
+  float2 v_4 = asfloat(((((((8u + start_byte_offset) % 16u) / 4u) == 2u)) ? (v_3.zw) : (v_3.xy)));
+  uint4 v_5 = u[((16u + start_byte_offset) / 16u)];
+  return float3x2(v_2, v_4, asfloat(((((((16u + start_byte_offset) % 16u) / 4u) == 2u)) ? (v_5.zw) : (v_5.xy))));
+}
+
+S v_6(uint start_byte_offset) {
+  int v_7 = asint(u[(start_byte_offset / 16u)][((start_byte_offset % 16u) / 4u)]);
+  float3x2 v_8 = v((8u + start_byte_offset));
+  S v_9 = {v_7, v_8, asint(u[((64u + start_byte_offset) / 16u)][(((64u + start_byte_offset) % 16u) / 4u)])};
+  return v_9;
+}
+
+typedef S ary_ret[4];
+ary_ret v_10(uint start_byte_offset) {
+  S a[4] = (S[4])0;
+  {
+    uint v_11 = 0u;
+    v_11 = 0u;
+    while(true) {
+      uint v_12 = v_11;
+      if ((v_12 >= 4u)) {
+        break;
+      }
+      S v_13 = v_6((start_byte_offset + (v_12 * 128u)));
+      a[v_12] = v_13;
+      {
+        v_11 = (v_12 + 1u);
+      }
+      continue;
+    }
+  }
+  S v_14[4] = a;
+  return v_14;
+}
+
+void f_inner(uint tint_local_index) {
+  {
+    uint v_15 = 0u;
+    v_15 = tint_local_index;
+    while(true) {
+      uint v_16 = v_15;
+      if ((v_16 >= 4u)) {
+        break;
+      }
+      S v_17 = (S)0;
+      w[v_16] = v_17;
+      {
+        v_15 = (v_16 + 1u);
+      }
+      continue;
+    }
+  }
+  GroupMemoryBarrierWithGroupSync();
+  S v_18[4] = v_10(0u);
+  w = v_18;
+  S v_19 = v_6(256u);
+  w[1] = v_19;
+  w[3].m = v(264u);
+  w[1].m[0] = asfloat(u[1u].xy).yx;
+}
+
+[numthreads(1, 1, 1)]
+void f(f_inputs inputs) {
+  f_inner(inputs.tint_local_index);
+}
+
diff --git a/test/tint/buffer/uniform/std140/struct/mat3x3_f16/dynamic_index_via_ptr.wgsl.expected.ir.dxc.hlsl b/test/tint/buffer/uniform/std140/struct/mat3x3_f16/dynamic_index_via_ptr.wgsl.expected.ir.dxc.hlsl
index 3f437dc..31807ed 100644
--- a/test/tint/buffer/uniform/std140/struct/mat3x3_f16/dynamic_index_via_ptr.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/buffer/uniform/std140/struct/mat3x3_f16/dynamic_index_via_ptr.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,283 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Access
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+
+enable f16;
+
+struct Inner {
+  @size(64)
+  m : mat3x3<f16>,
+}
+
+struct Outer {
+  a : array<Inner, 4>,
+}
+
+@group(0) @binding(0) var<uniform> a : array<Outer, 4>;
+
+var<private> counter = 0;
+
+fn i() -> i32 {
+  counter++;
+  return counter;
+}
+
+@compute @workgroup_size(1)
+fn f() {
+  let p_a = &(a);
+  let p_a_i = &((*(p_a))[i()]);
+  let p_a_i_a = &((*(p_a_i)).a);
+  let p_a_i_a_i = &((*(p_a_i_a))[i()]);
+  let p_a_i_a_i_m = &((*(p_a_i_a_i)).m);
+  let p_a_i_a_i_m_i = &((*(p_a_i_a_i_m))[i()]);
+  let l_a : array<Outer, 4> = *(p_a);
+  let l_a_i : Outer = *(p_a_i);
+  let l_a_i_a : array<Inner, 4> = *(p_a_i_a);
+  let l_a_i_a_i : Inner = *(p_a_i_a_i);
+  let l_a_i_a_i_m : mat3x3<f16> = *(p_a_i_a_i_m);
+  let l_a_i_a_i_m_i : vec3<f16> = *(p_a_i_a_i_m_i);
+  let l_a_i_a_i_m_i_i : f16 = (*(p_a_i_a_i_m_i))[i()];
+}
+
+Failed to generate: :38:24 error: binary: %23 is not in scope
+    %22:u32 = add %21, %23
+                       ^^^
+
+:24:3 note: in block
+  $B3: {
+  ^^^
+
+:61:5 note: %23 declared here
+    %23:u32 = mul %49, 2u
+    ^^^^^^^
+
+:48:24 error: binary: %23 is not in scope
+    %36:u32 = add %35, %23
+                       ^^^
+
+:24:3 note: in block
+  $B3: {
+  ^^^
+
+:61:5 note: %23 declared here
+    %23:u32 = mul %49, 2u
+    ^^^^^^^
+
+:53:24 error: binary: %23 is not in scope
+    %42:u32 = add %41, %23
+                       ^^^
+
+:24:3 note: in block
+  $B3: {
+  ^^^
+
+:61:5 note: %23 declared here
+    %23:u32 = mul %49, 2u
+    ^^^^^^^
+
+:61:5 error: binary: no matching overload for 'operator * (i32, u32)'
+
+9 candidate operators:
+ • 'operator * (T  ✓ , T  ✗ ) -> T' where:
+      ✓  'T' is 'f32', 'i32', 'u32' or 'f16'
+ • 'operator * (vecN<T>  ✗ , T  ✓ ) -> vecN<T>' where:
+      ✓  'T' is 'f32', 'i32', 'u32' or 'f16'
+ • 'operator * (T  ✓ , vecN<T>  ✗ ) -> vecN<T>' where:
+      ✓  'T' is 'f32', 'i32', 'u32' or 'f16'
+ • 'operator * (T  ✗ , matNxM<T>  ✗ ) -> matNxM<T>' where:
+      ✗  'T' is 'f32' or 'f16'
+ • 'operator * (matNxM<T>  ✗ , T  ✗ ) -> matNxM<T>' where:
+      ✗  'T' is 'f32' or 'f16'
+ • 'operator * (vecN<T>  ✗ , vecN<T>  ✗ ) -> vecN<T>' where:
+      ✗  'T' is 'f32', 'i32', 'u32' or 'f16'
+ • 'operator * (matCxR<T>  ✗ , vecC<T>  ✗ ) -> vecR<T>' where:
+      ✗  'T' is 'f32' or 'f16'
+ • 'operator * (vecR<T>  ✗ , matCxR<T>  ✗ ) -> vecC<T>' where:
+      ✗  'T' is 'f32' or 'f16'
+ • 'operator * (matKxR<T>  ✗ , matCxK<T>  ✗ ) -> matCxR<T>' where:
+      ✗  'T' is 'f32' or 'f16'
+
+    %23:u32 = mul %49, 2u
+    ^^^^^^^^^^^^^^^^^^^^^
+
+:24:3 note: in block
+  $B3: {
+  ^^^
+
+note: # Disassembly
+Inner = struct @align(8) {
+  m:mat3x3<f16> @offset(0)
+}
+
+Outer = struct @align(8) {
+  a:array<Inner, 4> @offset(0)
+}
+
+$B1: {  # root
+  %a:ptr<uniform, array<vec4<u32>, 64>, read> = var @binding_point(0, 0)
+  %counter:ptr<private, i32, read_write> = var, 0i
+}
+
+%i = func():i32 {
+  $B2: {
+    %4:i32 = load %counter
+    %5:i32 = add %4, 1i
+    store %counter, %5
+    %6:i32 = load %counter
+    ret %6
+  }
+}
+%f = @compute @workgroup_size(1, 1, 1) func():void {
+  $B3: {
+    %8:i32 = call %i
+    %9:u32 = convert %8
+    %10:u32 = mul 256u, %9
+    %11:i32 = call %i
+    %12:u32 = convert %11
+    %13:u32 = mul 64u, %12
+    %14:i32 = call %i
+    %15:u32 = convert %14
+    %16:u32 = mul 8u, %15
+    %17:array<Outer, 4> = call %18, 0u
+    %l_a:array<Outer, 4> = let %17
+    %20:u32 = add %10, %13
+    %21:u32 = add %20, %16
+    %22:u32 = add %21, %23
+    %24:Outer = call %25, %22
+    %l_a_i:Outer = let %24
+    %27:array<Inner, 4> = call %28, %10
+    %l_a_i_a:array<Inner, 4> = let %27
+    %30:u32 = add %10, %13
+    %31:Inner = call %32, %30
+    %l_a_i_a_i:Inner = let %31
+    %34:u32 = add %10, %13
+    %35:u32 = add %34, %16
+    %36:u32 = add %35, %23
+    %37:mat3x3<f16> = call %38, %36
+    %l_a_i_a_i_m:mat3x3<f16> = let %37
+    %40:u32 = add %10, %13
+    %41:u32 = add %40, %16
+    %42:u32 = add %41, %23
+    %43:u32 = div %42, 16u
+    %44:ptr<uniform, vec4<u32>, read> = access %a, %43
+    %45:vec4<u32> = load %44
+    %46:vec4<f16> = bitcast %45
+    %47:vec3<f16> = swizzle %46, xyz
+    %l_a_i_a_i_m_i:vec3<f16> = let %47
+    %49:i32 = call %i
+    %23:u32 = mul %49, 2u
+    %50:u32 = add %10, %13
+    %51:u32 = add %50, %16
+    %52:u32 = add %51, %23
+    %53:u32 = div %52, 16u
+    %54:ptr<uniform, vec4<u32>, read> = access %a, %53
+    %55:u32 = mod %52, 16u
+    %56:u32 = div %55, 4u
+    %57:u32 = load_vector_element %54, %56
+    %58:u32 = mod %52, 4u
+    %59:bool = eq %58, 0u
+    %60:u32 = hlsl.ternary 16u, 0u, %59
+    %61:u32 = shr %57, %60
+    %62:f32 = hlsl.f16tof32 %61
+    %63:f16 = convert %62
+    %l_a_i_a_i_m_i_i:f16 = let %63
+    ret
+  }
+}
+%28 = func(%start_byte_offset:u32):array<Inner, 4> {
+  $B4: {
+    %a_1:ptr<function, array<Inner, 4>, read_write> = var, array<Inner, 4>(Inner(mat3x3<f16>(vec3<f16>(0.0h))))  # %a_1: 'a'
+    loop [i: $B5, b: $B6, c: $B7] {  # loop_1
+      $B5: {  # initializer
+        next_iteration 0u  # -> $B6
+      }
+      $B6 (%idx:u32): {  # body
+        %68:bool = gte %idx, 4u
+        if %68 [t: $B8] {  # if_1
+          $B8: {  # true
+            exit_loop  # loop_1
+          }
+        }
+        %69:u32 = mul %idx, 64u
+        %70:u32 = add %start_byte_offset, %69
+        %71:ptr<function, Inner, read_write> = access %a_1, %idx
+        %72:Inner = call %32, %70
+        store %71, %72
+        continue  # -> $B7
+      }
+      $B7: {  # continuing
+        %73:u32 = add %idx, 1u
+        next_iteration %73  # -> $B6
+      }
+    }
+    %74:array<Inner, 4> = load %a_1
+    ret %74
+  }
+}
+%32 = func(%start_byte_offset_1:u32):Inner {  # %start_byte_offset_1: 'start_byte_offset'
+  $B9: {
+    %76:mat3x3<f16> = call %38, %start_byte_offset_1
+    %77:Inner = construct %76
+    ret %77
+  }
+}
+%38 = func(%start_byte_offset_2:u32):mat3x3<f16> {  # %start_byte_offset_2: 'start_byte_offset'
+  $B10: {
+    %79:u32 = div %start_byte_offset_2, 16u
+    %80:ptr<uniform, vec4<u32>, read> = access %a, %79
+    %81:vec4<u32> = load %80
+    %82:vec4<f16> = bitcast %81
+    %83:vec3<f16> = swizzle %82, xyz
+    %84:u32 = add 8u, %start_byte_offset_2
+    %85:u32 = div %84, 16u
+    %86:ptr<uniform, vec4<u32>, read> = access %a, %85
+    %87:vec4<u32> = load %86
+    %88:vec4<f16> = bitcast %87
+    %89:vec3<f16> = swizzle %88, xyz
+    %90:u32 = add 16u, %start_byte_offset_2
+    %91:u32 = div %90, 16u
+    %92:ptr<uniform, vec4<u32>, read> = access %a, %91
+    %93:vec4<u32> = load %92
+    %94:vec4<f16> = bitcast %93
+    %95:vec3<f16> = swizzle %94, xyz
+    %96:mat3x3<f16> = construct %83, %89, %95
+    ret %96
+  }
+}
+%25 = func(%start_byte_offset_3:u32):Outer {  # %start_byte_offset_3: 'start_byte_offset'
+  $B11: {
+    %98:array<Inner, 4> = call %28, %start_byte_offset_3
+    %99:Outer = construct %98
+    ret %99
+  }
+}
+%18 = func(%start_byte_offset_4:u32):array<Outer, 4> {  # %start_byte_offset_4: 'start_byte_offset'
+  $B12: {
+    %a_2:ptr<function, array<Outer, 4>, read_write> = var, array<Outer, 4>(Outer(array<Inner, 4>(Inner(mat3x3<f16>(vec3<f16>(0.0h))))))  # %a_2: 'a'
+    loop [i: $B13, b: $B14, c: $B15] {  # loop_2
+      $B13: {  # initializer
+        next_iteration 0u  # -> $B14
+      }
+      $B14 (%idx_1:u32): {  # body
+        %103:bool = gte %idx_1, 4u
+        if %103 [t: $B16] {  # if_2
+          $B16: {  # true
+            exit_loop  # loop_2
+          }
+        }
+        %104:u32 = mul %idx_1, 256u
+        %105:u32 = add %start_byte_offset_4, %104
+        %106:ptr<function, Outer, read_write> = access %a_2, %idx_1
+        %107:Outer = call %25, %105
+        store %106, %107
+        continue  # -> $B15
+      }
+      $B15: {  # continuing
+        %108:u32 = add %idx_1, 1u
+        next_iteration %108  # -> $B14
+      }
+    }
+    %109:array<Outer, 4> = load %a_2
+    ret %109
+  }
+}
+
diff --git a/test/tint/buffer/uniform/std140/struct/mat3x3_f16/dynamic_index_via_ptr.wgsl.expected.ir.fxc.hlsl b/test/tint/buffer/uniform/std140/struct/mat3x3_f16/dynamic_index_via_ptr.wgsl.expected.ir.fxc.hlsl
index 3f437dc..b9c7929 100644
--- a/test/tint/buffer/uniform/std140/struct/mat3x3_f16/dynamic_index_via_ptr.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/buffer/uniform/std140/struct/mat3x3_f16/dynamic_index_via_ptr.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,270 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Access
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+
+enable f16;
+
+struct Inner {
+  @size(64)
+  m : mat3x3<f16>,
+}
+
+struct Outer {
+  a : array<Inner, 4>,
+}
+
+@group(0) @binding(0) var<uniform> a : array<Outer, 4>;
+
+var<private> counter = 0;
+
+fn i() -> i32 {
+  counter++;
+  return counter;
+}
+
+@compute @workgroup_size(1)
+fn f() {
+  let p_a = &(a);
+  let p_a_i = &((*(p_a))[i()]);
+  let p_a_i_a = &((*(p_a_i)).a);
+  let p_a_i_a_i = &((*(p_a_i_a))[i()]);
+  let p_a_i_a_i_m = &((*(p_a_i_a_i)).m);
+  let p_a_i_a_i_m_i = &((*(p_a_i_a_i_m))[i()]);
+  let l_a : array<Outer, 4> = *(p_a);
+  let l_a_i : Outer = *(p_a_i);
+  let l_a_i_a : array<Inner, 4> = *(p_a_i_a);
+  let l_a_i_a_i : Inner = *(p_a_i_a_i);
+  let l_a_i_a_i_m : mat3x3<f16> = *(p_a_i_a_i_m);
+  let l_a_i_a_i_m_i : vec3<f16> = *(p_a_i_a_i_m_i);
+  let l_a_i_a_i_m_i_i : f16 = (*(p_a_i_a_i_m_i))[i()];
+}
+
+Failed to generate: :40:24 error: binary: %26 is not in scope
+    %25:u32 = add %24, %26
+                       ^^^
+
+:24:3 note: in block
+  $B3: {
+  ^^^
+
+:60:5 note: %26 declared here
+    %26:u32 = mul %48, 2u
+    ^^^^^^^
+
+:45:24 error: binary: %26 is not in scope
+    %32:u32 = add %31, %26
+                       ^^^
+
+:24:3 note: in block
+  $B3: {
+  ^^^
+
+:60:5 note: %26 declared here
+    %26:u32 = mul %48, 2u
+    ^^^^^^^
+
+:60:5 error: binary: no matching overload for 'operator * (i32, u32)'
+
+9 candidate operators:
+ • 'operator * (T  ✓ , T  ✗ ) -> T' where:
+      ✓  'T' is 'f32', 'i32', 'u32' or 'f16'
+ • 'operator * (vecN<T>  ✗ , T  ✓ ) -> vecN<T>' where:
+      ✓  'T' is 'f32', 'i32', 'u32' or 'f16'
+ • 'operator * (T  ✓ , vecN<T>  ✗ ) -> vecN<T>' where:
+      ✓  'T' is 'f32', 'i32', 'u32' or 'f16'
+ • 'operator * (T  ✗ , matNxM<T>  ✗ ) -> matNxM<T>' where:
+      ✗  'T' is 'f32' or 'f16'
+ • 'operator * (matNxM<T>  ✗ , T  ✗ ) -> matNxM<T>' where:
+      ✗  'T' is 'f32' or 'f16'
+ • 'operator * (vecN<T>  ✗ , vecN<T>  ✗ ) -> vecN<T>' where:
+      ✗  'T' is 'f32', 'i32', 'u32' or 'f16'
+ • 'operator * (matCxR<T>  ✗ , vecC<T>  ✗ ) -> vecR<T>' where:
+      ✗  'T' is 'f32' or 'f16'
+ • 'operator * (vecR<T>  ✗ , matCxR<T>  ✗ ) -> vecC<T>' where:
+      ✗  'T' is 'f32' or 'f16'
+ • 'operator * (matKxR<T>  ✗ , matCxK<T>  ✗ ) -> matCxR<T>' where:
+      ✗  'T' is 'f32' or 'f16'
+
+    %26:u32 = mul %48, 2u
+    ^^^^^^^^^^^^^^^^^^^^^
+
+:24:3 note: in block
+  $B3: {
+  ^^^
+
+note: # Disassembly
+Inner = struct @align(8) {
+  m:mat3x3<f16> @offset(0)
+}
+
+Outer = struct @align(8) {
+  a:array<Inner, 4> @offset(0)
+}
+
+$B1: {  # root
+  %a:ptr<uniform, array<vec4<u32>, 64>, read> = var @binding_point(0, 0)
+  %counter:ptr<private, i32, read_write> = var, 0i
+}
+
+%i = func():i32 {
+  $B2: {
+    %4:i32 = load %counter
+    %5:i32 = add %4, 1i
+    store %counter, %5
+    %6:i32 = load %counter
+    ret %6
+  }
+}
+%f = @compute @workgroup_size(1, 1, 1) func():void {
+  $B3: {
+    %8:i32 = call %i
+    %9:u32 = convert %8
+    %10:u32 = mul 256u, %9
+    %11:i32 = call %i
+    %12:u32 = convert %11
+    %13:u32 = mul 64u, %12
+    %14:i32 = call %i
+    %15:u32 = convert %14
+    %16:u32 = mul 8u, %15
+    %17:array<Outer, 4> = call %18, 0u
+    %l_a:array<Outer, 4> = let %17
+    %20:Outer = call %21, %10
+    %l_a_i:Outer = let %20
+    %23:u32 = add %10, %13
+    %24:u32 = add %23, %16
+    %25:u32 = add %24, %26
+    %27:array<Inner, 4> = call %28, %25
+    %l_a_i_a:array<Inner, 4> = let %27
+    %30:u32 = add %10, %13
+    %31:u32 = add %30, %16
+    %32:u32 = add %31, %26
+    %33:Inner = call %34, %32
+    %l_a_i_a_i:Inner = let %33
+    %36:u32 = add %10, %13
+    %37:mat3x3<f16> = call %38, %36
+    %l_a_i_a_i_m:mat3x3<f16> = let %37
+    %40:u32 = add %10, %13
+    %41:u32 = add %40, %16
+    %42:u32 = div %41, 16u
+    %43:ptr<uniform, vec4<u32>, read> = access %a, %42
+    %44:vec4<u32> = load %43
+    %45:vec4<f16> = bitcast %44
+    %46:vec3<f16> = swizzle %45, xyz
+    %l_a_i_a_i_m_i:vec3<f16> = let %46
+    %48:i32 = call %i
+    %26:u32 = mul %48, 2u
+    %49:u32 = add %10, %13
+    %50:u32 = add %49, %16
+    %51:u32 = add %50, %26
+    %52:u32 = div %51, 16u
+    %53:ptr<uniform, vec4<u32>, read> = access %a, %52
+    %54:u32 = mod %51, 16u
+    %55:u32 = div %54, 4u
+    %56:u32 = load_vector_element %53, %55
+    %57:u32 = mod %51, 4u
+    %58:bool = eq %57, 0u
+    %59:u32 = hlsl.ternary 16u, 0u, %58
+    %60:u32 = shr %56, %59
+    %61:f32 = hlsl.f16tof32 %60
+    %62:f16 = convert %61
+    %l_a_i_a_i_m_i_i:f16 = let %62
+    ret
+  }
+}
+%21 = func(%start_byte_offset:u32):Outer {
+  $B4: {
+    %65:array<Inner, 4> = call %28, %start_byte_offset
+    %66:Outer = construct %65
+    ret %66
+  }
+}
+%28 = func(%start_byte_offset_1:u32):array<Inner, 4> {  # %start_byte_offset_1: 'start_byte_offset'
+  $B5: {
+    %a_1:ptr<function, array<Inner, 4>, read_write> = var, array<Inner, 4>(Inner(mat3x3<f16>(vec3<f16>(0.0h))))  # %a_1: 'a'
+    loop [i: $B6, b: $B7, c: $B8] {  # loop_1
+      $B6: {  # initializer
+        next_iteration 0u  # -> $B7
+      }
+      $B7 (%idx:u32): {  # body
+        %70:bool = gte %idx, 4u
+        if %70 [t: $B9] {  # if_1
+          $B9: {  # true
+            exit_loop  # loop_1
+          }
+        }
+        %71:u32 = mul %idx, 64u
+        %72:u32 = add %start_byte_offset_1, %71
+        %73:ptr<function, Inner, read_write> = access %a_1, %idx
+        %74:Inner = call %34, %72
+        store %73, %74
+        continue  # -> $B8
+      }
+      $B8: {  # continuing
+        %75:u32 = add %idx, 1u
+        next_iteration %75  # -> $B7
+      }
+    }
+    %76:array<Inner, 4> = load %a_1
+    ret %76
+  }
+}
+%34 = func(%start_byte_offset_2:u32):Inner {  # %start_byte_offset_2: 'start_byte_offset'
+  $B10: {
+    %78:mat3x3<f16> = call %38, %start_byte_offset_2
+    %79:Inner = construct %78
+    ret %79
+  }
+}
+%38 = func(%start_byte_offset_3:u32):mat3x3<f16> {  # %start_byte_offset_3: 'start_byte_offset'
+  $B11: {
+    %81:u32 = div %start_byte_offset_3, 16u
+    %82:ptr<uniform, vec4<u32>, read> = access %a, %81
+    %83:vec4<u32> = load %82
+    %84:vec4<f16> = bitcast %83
+    %85:vec3<f16> = swizzle %84, xyz
+    %86:u32 = add 8u, %start_byte_offset_3
+    %87:u32 = div %86, 16u
+    %88:ptr<uniform, vec4<u32>, read> = access %a, %87
+    %89:vec4<u32> = load %88
+    %90:vec4<f16> = bitcast %89
+    %91:vec3<f16> = swizzle %90, xyz
+    %92:u32 = add 16u, %start_byte_offset_3
+    %93:u32 = div %92, 16u
+    %94:ptr<uniform, vec4<u32>, read> = access %a, %93
+    %95:vec4<u32> = load %94
+    %96:vec4<f16> = bitcast %95
+    %97:vec3<f16> = swizzle %96, xyz
+    %98:mat3x3<f16> = construct %85, %91, %97
+    ret %98
+  }
+}
+%18 = func(%start_byte_offset_4:u32):array<Outer, 4> {  # %start_byte_offset_4: 'start_byte_offset'
+  $B12: {
+    %a_2:ptr<function, array<Outer, 4>, read_write> = var, array<Outer, 4>(Outer(array<Inner, 4>(Inner(mat3x3<f16>(vec3<f16>(0.0h))))))  # %a_2: 'a'
+    loop [i: $B13, b: $B14, c: $B15] {  # loop_2
+      $B13: {  # initializer
+        next_iteration 0u  # -> $B14
+      }
+      $B14 (%idx_1:u32): {  # body
+        %102:bool = gte %idx_1, 4u
+        if %102 [t: $B16] {  # if_2
+          $B16: {  # true
+            exit_loop  # loop_2
+          }
+        }
+        %103:u32 = mul %idx_1, 256u
+        %104:u32 = add %start_byte_offset_4, %103
+        %105:ptr<function, Outer, read_write> = access %a_2, %idx_1
+        %106:Outer = call %21, %104
+        store %105, %106
+        continue  # -> $B15
+      }
+      $B15: {  # continuing
+        %107:u32 = add %idx_1, 1u
+        next_iteration %107  # -> $B14
+      }
+    }
+    %108:array<Outer, 4> = load %a_2
+    ret %108
+  }
+}
+
diff --git a/test/tint/buffer/uniform/std140/struct/mat3x3_f16/static_index_via_ptr.wgsl.expected.ir.dxc.hlsl b/test/tint/buffer/uniform/std140/struct/mat3x3_f16/static_index_via_ptr.wgsl.expected.ir.dxc.hlsl
index 3f437dc..35147e3 100644
--- a/test/tint/buffer/uniform/std140/struct/mat3x3_f16/static_index_via_ptr.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/buffer/uniform/std140/struct/mat3x3_f16/static_index_via_ptr.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,98 @@
-SKIP: FAILED
+struct Inner {
+  matrix<float16_t, 3, 3> m;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Access
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct Outer {
+  Inner a[4];
+};
+
+
+cbuffer cbuffer_a : register(b0) {
+  uint4 a[64];
+};
+vector<float16_t, 4> tint_bitcast_to_f16(uint4 src) {
+  uint4 v = src;
+  uint4 mask = (65535u).xxxx;
+  uint4 shift = (16u).xxxx;
+  float4 t_low = f16tof32((v & mask));
+  float4 t_high = f16tof32(((v >> shift) & mask));
+  float16_t v_1 = float16_t(t_low.x);
+  float16_t v_2 = float16_t(t_high.x);
+  float16_t v_3 = float16_t(t_low.y);
+  return vector<float16_t, 4>(v_1, v_2, v_3, float16_t(t_high.y));
+}
+
+matrix<float16_t, 3, 3> v_4(uint start_byte_offset) {
+  vector<float16_t, 3> v_5 = tint_bitcast_to_f16(a[(start_byte_offset / 16u)]).xyz;
+  vector<float16_t, 3> v_6 = tint_bitcast_to_f16(a[((8u + start_byte_offset) / 16u)]).xyz;
+  return matrix<float16_t, 3, 3>(v_5, v_6, tint_bitcast_to_f16(a[((16u + start_byte_offset) / 16u)]).xyz);
+}
+
+Inner v_7(uint start_byte_offset) {
+  Inner v_8 = {v_4(start_byte_offset)};
+  return v_8;
+}
+
+typedef Inner ary_ret[4];
+ary_ret v_9(uint start_byte_offset) {
+  Inner a[4] = (Inner[4])0;
+  {
+    uint v_10 = 0u;
+    v_10 = 0u;
+    while(true) {
+      uint v_11 = v_10;
+      if ((v_11 >= 4u)) {
+        break;
+      }
+      Inner v_12 = v_7((start_byte_offset + (v_11 * 64u)));
+      a[v_11] = v_12;
+      {
+        v_10 = (v_11 + 1u);
+      }
+      continue;
+    }
+  }
+  Inner v_13[4] = a;
+  return v_13;
+}
+
+Outer v_14(uint start_byte_offset) {
+  Inner v_15[4] = v_9(start_byte_offset);
+  Outer v_16 = {v_15};
+  return v_16;
+}
+
+typedef Outer ary_ret_1[4];
+ary_ret_1 v_17(uint start_byte_offset) {
+  Outer a[4] = (Outer[4])0;
+  {
+    uint v_18 = 0u;
+    v_18 = 0u;
+    while(true) {
+      uint v_19 = v_18;
+      if ((v_19 >= 4u)) {
+        break;
+      }
+      Outer v_20 = v_14((start_byte_offset + (v_19 * 256u)));
+      a[v_19] = v_20;
+      {
+        v_18 = (v_19 + 1u);
+      }
+      continue;
+    }
+  }
+  Outer v_21[4] = a;
+  return v_21;
+}
+
+[numthreads(1, 1, 1)]
+void f() {
+  Outer l_a[4] = v_17(0u);
+  Outer l_a_3 = v_14(904u);
+  Inner l_a_3_a[4] = v_9(904u);
+  Inner l_a_3_a_2 = v_7(904u);
+  matrix<float16_t, 3, 3> l_a_3_a_2_m = v_4(904u);
+  vector<float16_t, 3> l_a_3_a_2_m_1 = tint_bitcast_to_f16(a[56u]).xyz;
+  float16_t l_a_3_a_2_m_1_0 = float16_t(f16tof32(a[56u].z));
+}
+
diff --git a/test/tint/buffer/uniform/std140/struct/mat3x3_f16/static_index_via_ptr.wgsl.expected.ir.fxc.hlsl b/test/tint/buffer/uniform/std140/struct/mat3x3_f16/static_index_via_ptr.wgsl.expected.ir.fxc.hlsl
index 3f437dc..4c4b50b 100644
--- a/test/tint/buffer/uniform/std140/struct/mat3x3_f16/static_index_via_ptr.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/buffer/uniform/std140/struct/mat3x3_f16/static_index_via_ptr.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,103 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Access
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct Inner {
+  matrix<float16_t, 3, 3> m;
+};
+
+struct Outer {
+  Inner a[4];
+};
+
+
+cbuffer cbuffer_a : register(b0) {
+  uint4 a[64];
+};
+vector<float16_t, 4> tint_bitcast_to_f16(uint4 src) {
+  uint4 v = src;
+  uint4 mask = (65535u).xxxx;
+  uint4 shift = (16u).xxxx;
+  float4 t_low = f16tof32((v & mask));
+  float4 t_high = f16tof32(((v >> shift) & mask));
+  float16_t v_1 = float16_t(t_low.x);
+  float16_t v_2 = float16_t(t_high.x);
+  float16_t v_3 = float16_t(t_low.y);
+  return vector<float16_t, 4>(v_1, v_2, v_3, float16_t(t_high.y));
+}
+
+matrix<float16_t, 3, 3> v_4(uint start_byte_offset) {
+  vector<float16_t, 3> v_5 = tint_bitcast_to_f16(a[(start_byte_offset / 16u)]).xyz;
+  vector<float16_t, 3> v_6 = tint_bitcast_to_f16(a[((8u + start_byte_offset) / 16u)]).xyz;
+  return matrix<float16_t, 3, 3>(v_5, v_6, tint_bitcast_to_f16(a[((16u + start_byte_offset) / 16u)]).xyz);
+}
+
+Inner v_7(uint start_byte_offset) {
+  Inner v_8 = {v_4(start_byte_offset)};
+  return v_8;
+}
+
+typedef Inner ary_ret[4];
+ary_ret v_9(uint start_byte_offset) {
+  Inner a[4] = (Inner[4])0;
+  {
+    uint v_10 = 0u;
+    v_10 = 0u;
+    while(true) {
+      uint v_11 = v_10;
+      if ((v_11 >= 4u)) {
+        break;
+      }
+      Inner v_12 = v_7((start_byte_offset + (v_11 * 64u)));
+      a[v_11] = v_12;
+      {
+        v_10 = (v_11 + 1u);
+      }
+      continue;
+    }
+  }
+  Inner v_13[4] = a;
+  return v_13;
+}
+
+Outer v_14(uint start_byte_offset) {
+  Inner v_15[4] = v_9(start_byte_offset);
+  Outer v_16 = {v_15};
+  return v_16;
+}
+
+typedef Outer ary_ret_1[4];
+ary_ret_1 v_17(uint start_byte_offset) {
+  Outer a[4] = (Outer[4])0;
+  {
+    uint v_18 = 0u;
+    v_18 = 0u;
+    while(true) {
+      uint v_19 = v_18;
+      if ((v_19 >= 4u)) {
+        break;
+      }
+      Outer v_20 = v_14((start_byte_offset + (v_19 * 256u)));
+      a[v_19] = v_20;
+      {
+        v_18 = (v_19 + 1u);
+      }
+      continue;
+    }
+  }
+  Outer v_21[4] = a;
+  return v_21;
+}
+
+[numthreads(1, 1, 1)]
+void f() {
+  Outer l_a[4] = v_17(0u);
+  Outer l_a_3 = v_14(904u);
+  Inner l_a_3_a[4] = v_9(904u);
+  Inner l_a_3_a_2 = v_7(904u);
+  matrix<float16_t, 3, 3> l_a_3_a_2_m = v_4(904u);
+  vector<float16_t, 3> l_a_3_a_2_m_1 = tint_bitcast_to_f16(a[56u]).xyz;
+  float16_t l_a_3_a_2_m_1_0 = float16_t(f16tof32(a[56u].z));
+}
+
+FXC validation failure:
+c:\src\dawn\Shader@0x000002BD1A0169D0(2,10-18): error X3000: syntax error: unexpected token 'float16_t'
+
diff --git a/test/tint/buffer/uniform/std140/struct/mat3x3_f16/to_builtin.wgsl.expected.ir.dxc.hlsl b/test/tint/buffer/uniform/std140/struct/mat3x3_f16/to_builtin.wgsl.expected.ir.dxc.hlsl
index 3f437dc..ef709aa 100644
--- a/test/tint/buffer/uniform/std140/struct/mat3x3_f16/to_builtin.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/buffer/uniform/std140/struct/mat3x3_f16/to_builtin.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,29 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Access
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+cbuffer cbuffer_u : register(b0) {
+  uint4 u[32];
+};
+vector<float16_t, 4> tint_bitcast_to_f16(uint4 src) {
+  uint4 v = src;
+  uint4 mask = (65535u).xxxx;
+  uint4 shift = (16u).xxxx;
+  float4 t_low = f16tof32((v & mask));
+  float4 t_high = f16tof32(((v >> shift) & mask));
+  float16_t v_1 = float16_t(t_low.x);
+  float16_t v_2 = float16_t(t_high.x);
+  float16_t v_3 = float16_t(t_low.y);
+  return vector<float16_t, 4>(v_1, v_2, v_3, float16_t(t_high.y));
+}
+
+matrix<float16_t, 3, 3> v_4(uint start_byte_offset) {
+  vector<float16_t, 3> v_5 = tint_bitcast_to_f16(u[(start_byte_offset / 16u)]).xyz;
+  vector<float16_t, 3> v_6 = tint_bitcast_to_f16(u[((8u + start_byte_offset) / 16u)]).xyz;
+  return matrix<float16_t, 3, 3>(v_5, v_6, tint_bitcast_to_f16(u[((16u + start_byte_offset) / 16u)]).xyz);
+}
+
+[numthreads(1, 1, 1)]
+void f() {
+  matrix<float16_t, 3, 3> t = transpose(v_4(264u));
+  float16_t l = length(tint_bitcast_to_f16(u[1u]).xyz.zxy);
+  float16_t a = abs(tint_bitcast_to_f16(u[1u]).xyz.zxy[0u]);
+}
+
diff --git a/test/tint/buffer/uniform/std140/struct/mat3x3_f16/to_builtin.wgsl.expected.ir.fxc.hlsl b/test/tint/buffer/uniform/std140/struct/mat3x3_f16/to_builtin.wgsl.expected.ir.fxc.hlsl
index 3f437dc..0a5a38d 100644
--- a/test/tint/buffer/uniform/std140/struct/mat3x3_f16/to_builtin.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/buffer/uniform/std140/struct/mat3x3_f16/to_builtin.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,34 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Access
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+
+cbuffer cbuffer_u : register(b0) {
+  uint4 u[32];
+};
+vector<float16_t, 4> tint_bitcast_to_f16(uint4 src) {
+  uint4 v = src;
+  uint4 mask = (65535u).xxxx;
+  uint4 shift = (16u).xxxx;
+  float4 t_low = f16tof32((v & mask));
+  float4 t_high = f16tof32(((v >> shift) & mask));
+  float16_t v_1 = float16_t(t_low.x);
+  float16_t v_2 = float16_t(t_high.x);
+  float16_t v_3 = float16_t(t_low.y);
+  return vector<float16_t, 4>(v_1, v_2, v_3, float16_t(t_high.y));
+}
+
+matrix<float16_t, 3, 3> v_4(uint start_byte_offset) {
+  vector<float16_t, 3> v_5 = tint_bitcast_to_f16(u[(start_byte_offset / 16u)]).xyz;
+  vector<float16_t, 3> v_6 = tint_bitcast_to_f16(u[((8u + start_byte_offset) / 16u)]).xyz;
+  return matrix<float16_t, 3, 3>(v_5, v_6, tint_bitcast_to_f16(u[((16u + start_byte_offset) / 16u)]).xyz);
+}
+
+[numthreads(1, 1, 1)]
+void f() {
+  matrix<float16_t, 3, 3> t = transpose(v_4(264u));
+  float16_t l = length(tint_bitcast_to_f16(u[1u]).xyz.zxy);
+  float16_t a = abs(tint_bitcast_to_f16(u[1u]).xyz.zxy[0u]);
+}
+
+FXC validation failure:
+c:\src\dawn\Shader@0x0000018013E66DC0(5,8-16): error X3000: syntax error: unexpected token 'float16_t'
+
diff --git a/test/tint/buffer/uniform/std140/struct/mat3x3_f16/to_fn.wgsl.expected.ir.dxc.hlsl b/test/tint/buffer/uniform/std140/struct/mat3x3_f16/to_fn.wgsl.expected.ir.dxc.hlsl
index 3f437dc..1cb6bf3 100644
--- a/test/tint/buffer/uniform/std140/struct/mat3x3_f16/to_fn.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/buffer/uniform/std140/struct/mat3x3_f16/to_fn.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,84 @@
-SKIP: FAILED
+struct S {
+  int before;
+  matrix<float16_t, 3, 3> m;
+  int after;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Access
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+
+cbuffer cbuffer_u : register(b0) {
+  uint4 u[32];
+};
+void a(S a_1[4]) {
+}
+
+void b(S s) {
+}
+
+void c(matrix<float16_t, 3, 3> m) {
+}
+
+void d(vector<float16_t, 3> v) {
+}
+
+void e(float16_t f) {
+}
+
+vector<float16_t, 4> tint_bitcast_to_f16(uint4 src) {
+  uint4 v = src;
+  uint4 mask = (65535u).xxxx;
+  uint4 shift = (16u).xxxx;
+  float4 t_low = f16tof32((v & mask));
+  float4 t_high = f16tof32(((v >> shift) & mask));
+  float16_t v_1 = float16_t(t_low.x);
+  float16_t v_2 = float16_t(t_high.x);
+  float16_t v_3 = float16_t(t_low.y);
+  return vector<float16_t, 4>(v_1, v_2, v_3, float16_t(t_high.y));
+}
+
+matrix<float16_t, 3, 3> v_4(uint start_byte_offset) {
+  vector<float16_t, 3> v_5 = tint_bitcast_to_f16(u[(start_byte_offset / 16u)]).xyz;
+  vector<float16_t, 3> v_6 = tint_bitcast_to_f16(u[((8u + start_byte_offset) / 16u)]).xyz;
+  return matrix<float16_t, 3, 3>(v_5, v_6, tint_bitcast_to_f16(u[((16u + start_byte_offset) / 16u)]).xyz);
+}
+
+S v_7(uint start_byte_offset) {
+  int v_8 = asint(u[(start_byte_offset / 16u)][((start_byte_offset % 16u) / 4u)]);
+  matrix<float16_t, 3, 3> v_9 = v_4((8u + start_byte_offset));
+  S v_10 = {v_8, v_9, asint(u[((64u + start_byte_offset) / 16u)][(((64u + start_byte_offset) % 16u) / 4u)])};
+  return v_10;
+}
+
+typedef S ary_ret[4];
+ary_ret v_11(uint start_byte_offset) {
+  S a[4] = (S[4])0;
+  {
+    uint v_12 = 0u;
+    v_12 = 0u;
+    while(true) {
+      uint v_13 = v_12;
+      if ((v_13 >= 4u)) {
+        break;
+      }
+      S v_14 = v_7((start_byte_offset + (v_13 * 128u)));
+      a[v_13] = v_14;
+      {
+        v_12 = (v_13 + 1u);
+      }
+      continue;
+    }
+  }
+  S v_15[4] = a;
+  return v_15;
+}
+
+[numthreads(1, 1, 1)]
+void f() {
+  S v_16[4] = v_11(0u);
+  a(v_16);
+  S v_17 = v_7(256u);
+  b(v_17);
+  c(v_4(264u));
+  d(tint_bitcast_to_f16(u[1u]).xyz.zxy);
+  e(tint_bitcast_to_f16(u[1u]).xyz.zxy[0u]);
+}
+
diff --git a/test/tint/buffer/uniform/std140/struct/mat3x3_f16/to_fn.wgsl.expected.ir.fxc.hlsl b/test/tint/buffer/uniform/std140/struct/mat3x3_f16/to_fn.wgsl.expected.ir.fxc.hlsl
index 3f437dc..db2f92d 100644
--- a/test/tint/buffer/uniform/std140/struct/mat3x3_f16/to_fn.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/buffer/uniform/std140/struct/mat3x3_f16/to_fn.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,89 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Access
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct S {
+  int before;
+  matrix<float16_t, 3, 3> m;
+  int after;
+};
+
+
+cbuffer cbuffer_u : register(b0) {
+  uint4 u[32];
+};
+void a(S a_1[4]) {
+}
+
+void b(S s) {
+}
+
+void c(matrix<float16_t, 3, 3> m) {
+}
+
+void d(vector<float16_t, 3> v) {
+}
+
+void e(float16_t f) {
+}
+
+vector<float16_t, 4> tint_bitcast_to_f16(uint4 src) {
+  uint4 v = src;
+  uint4 mask = (65535u).xxxx;
+  uint4 shift = (16u).xxxx;
+  float4 t_low = f16tof32((v & mask));
+  float4 t_high = f16tof32(((v >> shift) & mask));
+  float16_t v_1 = float16_t(t_low.x);
+  float16_t v_2 = float16_t(t_high.x);
+  float16_t v_3 = float16_t(t_low.y);
+  return vector<float16_t, 4>(v_1, v_2, v_3, float16_t(t_high.y));
+}
+
+matrix<float16_t, 3, 3> v_4(uint start_byte_offset) {
+  vector<float16_t, 3> v_5 = tint_bitcast_to_f16(u[(start_byte_offset / 16u)]).xyz;
+  vector<float16_t, 3> v_6 = tint_bitcast_to_f16(u[((8u + start_byte_offset) / 16u)]).xyz;
+  return matrix<float16_t, 3, 3>(v_5, v_6, tint_bitcast_to_f16(u[((16u + start_byte_offset) / 16u)]).xyz);
+}
+
+S v_7(uint start_byte_offset) {
+  int v_8 = asint(u[(start_byte_offset / 16u)][((start_byte_offset % 16u) / 4u)]);
+  matrix<float16_t, 3, 3> v_9 = v_4((8u + start_byte_offset));
+  S v_10 = {v_8, v_9, asint(u[((64u + start_byte_offset) / 16u)][(((64u + start_byte_offset) % 16u) / 4u)])};
+  return v_10;
+}
+
+typedef S ary_ret[4];
+ary_ret v_11(uint start_byte_offset) {
+  S a[4] = (S[4])0;
+  {
+    uint v_12 = 0u;
+    v_12 = 0u;
+    while(true) {
+      uint v_13 = v_12;
+      if ((v_13 >= 4u)) {
+        break;
+      }
+      S v_14 = v_7((start_byte_offset + (v_13 * 128u)));
+      a[v_13] = v_14;
+      {
+        v_12 = (v_13 + 1u);
+      }
+      continue;
+    }
+  }
+  S v_15[4] = a;
+  return v_15;
+}
+
+[numthreads(1, 1, 1)]
+void f() {
+  S v_16[4] = v_11(0u);
+  a(v_16);
+  S v_17 = v_7(256u);
+  b(v_17);
+  c(v_4(264u));
+  d(tint_bitcast_to_f16(u[1u]).xyz.zxy);
+  e(tint_bitcast_to_f16(u[1u]).xyz.zxy[0u]);
+}
+
+FXC validation failure:
+c:\src\dawn\Shader@0x000001378A736620(3,10-18): error X3000: syntax error: unexpected token 'float16_t'
+
diff --git a/test/tint/buffer/uniform/std140/struct/mat3x3_f16/to_private.wgsl.expected.ir.dxc.hlsl b/test/tint/buffer/uniform/std140/struct/mat3x3_f16/to_private.wgsl.expected.ir.dxc.hlsl
index 3f437dc..4d0090c 100644
--- a/test/tint/buffer/uniform/std140/struct/mat3x3_f16/to_private.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/buffer/uniform/std140/struct/mat3x3_f16/to_private.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,69 @@
-SKIP: FAILED
+struct S {
+  int before;
+  matrix<float16_t, 3, 3> m;
+  int after;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Access
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+
+cbuffer cbuffer_u : register(b0) {
+  uint4 u[32];
+};
+static S p[4] = (S[4])0;
+vector<float16_t, 4> tint_bitcast_to_f16(uint4 src) {
+  uint4 v = src;
+  uint4 mask = (65535u).xxxx;
+  uint4 shift = (16u).xxxx;
+  float4 t_low = f16tof32((v & mask));
+  float4 t_high = f16tof32(((v >> shift) & mask));
+  float16_t v_1 = float16_t(t_low.x);
+  float16_t v_2 = float16_t(t_high.x);
+  float16_t v_3 = float16_t(t_low.y);
+  return vector<float16_t, 4>(v_1, v_2, v_3, float16_t(t_high.y));
+}
+
+matrix<float16_t, 3, 3> v_4(uint start_byte_offset) {
+  vector<float16_t, 3> v_5 = tint_bitcast_to_f16(u[(start_byte_offset / 16u)]).xyz;
+  vector<float16_t, 3> v_6 = tint_bitcast_to_f16(u[((8u + start_byte_offset) / 16u)]).xyz;
+  return matrix<float16_t, 3, 3>(v_5, v_6, tint_bitcast_to_f16(u[((16u + start_byte_offset) / 16u)]).xyz);
+}
+
+S v_7(uint start_byte_offset) {
+  int v_8 = asint(u[(start_byte_offset / 16u)][((start_byte_offset % 16u) / 4u)]);
+  matrix<float16_t, 3, 3> v_9 = v_4((8u + start_byte_offset));
+  S v_10 = {v_8, v_9, asint(u[((64u + start_byte_offset) / 16u)][(((64u + start_byte_offset) % 16u) / 4u)])};
+  return v_10;
+}
+
+typedef S ary_ret[4];
+ary_ret v_11(uint start_byte_offset) {
+  S a[4] = (S[4])0;
+  {
+    uint v_12 = 0u;
+    v_12 = 0u;
+    while(true) {
+      uint v_13 = v_12;
+      if ((v_13 >= 4u)) {
+        break;
+      }
+      S v_14 = v_7((start_byte_offset + (v_13 * 128u)));
+      a[v_13] = v_14;
+      {
+        v_12 = (v_13 + 1u);
+      }
+      continue;
+    }
+  }
+  S v_15[4] = a;
+  return v_15;
+}
+
+[numthreads(1, 1, 1)]
+void f() {
+  S v_16[4] = v_11(0u);
+  p = v_16;
+  S v_17 = v_7(256u);
+  p[1] = v_17;
+  p[3].m = v_4(264u);
+  p[1].m[0] = tint_bitcast_to_f16(u[1u]).xyz.zxy;
+}
+
diff --git a/test/tint/buffer/uniform/std140/struct/mat3x3_f16/to_private.wgsl.expected.ir.fxc.hlsl b/test/tint/buffer/uniform/std140/struct/mat3x3_f16/to_private.wgsl.expected.ir.fxc.hlsl
index 3f437dc..84ebaf7 100644
--- a/test/tint/buffer/uniform/std140/struct/mat3x3_f16/to_private.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/buffer/uniform/std140/struct/mat3x3_f16/to_private.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,74 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Access
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct S {
+  int before;
+  matrix<float16_t, 3, 3> m;
+  int after;
+};
+
+
+cbuffer cbuffer_u : register(b0) {
+  uint4 u[32];
+};
+static S p[4] = (S[4])0;
+vector<float16_t, 4> tint_bitcast_to_f16(uint4 src) {
+  uint4 v = src;
+  uint4 mask = (65535u).xxxx;
+  uint4 shift = (16u).xxxx;
+  float4 t_low = f16tof32((v & mask));
+  float4 t_high = f16tof32(((v >> shift) & mask));
+  float16_t v_1 = float16_t(t_low.x);
+  float16_t v_2 = float16_t(t_high.x);
+  float16_t v_3 = float16_t(t_low.y);
+  return vector<float16_t, 4>(v_1, v_2, v_3, float16_t(t_high.y));
+}
+
+matrix<float16_t, 3, 3> v_4(uint start_byte_offset) {
+  vector<float16_t, 3> v_5 = tint_bitcast_to_f16(u[(start_byte_offset / 16u)]).xyz;
+  vector<float16_t, 3> v_6 = tint_bitcast_to_f16(u[((8u + start_byte_offset) / 16u)]).xyz;
+  return matrix<float16_t, 3, 3>(v_5, v_6, tint_bitcast_to_f16(u[((16u + start_byte_offset) / 16u)]).xyz);
+}
+
+S v_7(uint start_byte_offset) {
+  int v_8 = asint(u[(start_byte_offset / 16u)][((start_byte_offset % 16u) / 4u)]);
+  matrix<float16_t, 3, 3> v_9 = v_4((8u + start_byte_offset));
+  S v_10 = {v_8, v_9, asint(u[((64u + start_byte_offset) / 16u)][(((64u + start_byte_offset) % 16u) / 4u)])};
+  return v_10;
+}
+
+typedef S ary_ret[4];
+ary_ret v_11(uint start_byte_offset) {
+  S a[4] = (S[4])0;
+  {
+    uint v_12 = 0u;
+    v_12 = 0u;
+    while(true) {
+      uint v_13 = v_12;
+      if ((v_13 >= 4u)) {
+        break;
+      }
+      S v_14 = v_7((start_byte_offset + (v_13 * 128u)));
+      a[v_13] = v_14;
+      {
+        v_12 = (v_13 + 1u);
+      }
+      continue;
+    }
+  }
+  S v_15[4] = a;
+  return v_15;
+}
+
+[numthreads(1, 1, 1)]
+void f() {
+  S v_16[4] = v_11(0u);
+  p = v_16;
+  S v_17 = v_7(256u);
+  p[1] = v_17;
+  p[3].m = v_4(264u);
+  p[1].m[0] = tint_bitcast_to_f16(u[1u]).xyz.zxy;
+}
+
+FXC validation failure:
+c:\src\dawn\Shader@0x0000017528C26B30(3,10-18): error X3000: syntax error: unexpected token 'float16_t'
+
diff --git a/test/tint/buffer/uniform/std140/struct/mat3x3_f16/to_storage.wgsl.expected.ir.dxc.hlsl b/test/tint/buffer/uniform/std140/struct/mat3x3_f16/to_storage.wgsl.expected.ir.dxc.hlsl
index 3f437dc..a0f2cf4 100644
--- a/test/tint/buffer/uniform/std140/struct/mat3x3_f16/to_storage.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/buffer/uniform/std140/struct/mat3x3_f16/to_storage.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,100 @@
-SKIP: FAILED
+struct S {
+  int before;
+  matrix<float16_t, 3, 3> m;
+  int after;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Access
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+
+cbuffer cbuffer_u : register(b0) {
+  uint4 u[32];
+};
+RWByteAddressBuffer s : register(u1);
+vector<float16_t, 4> tint_bitcast_to_f16(uint4 src) {
+  uint4 v = src;
+  uint4 mask = (65535u).xxxx;
+  uint4 shift = (16u).xxxx;
+  float4 t_low = f16tof32((v & mask));
+  float4 t_high = f16tof32(((v >> shift) & mask));
+  float16_t v_1 = float16_t(t_low.x);
+  float16_t v_2 = float16_t(t_high.x);
+  float16_t v_3 = float16_t(t_low.y);
+  return vector<float16_t, 4>(v_1, v_2, v_3, float16_t(t_high.y));
+}
+
+void v_4(uint offset, matrix<float16_t, 3, 3> obj) {
+  s.Store<vector<float16_t, 3> >((offset + 0u), obj[0u]);
+  s.Store<vector<float16_t, 3> >((offset + 8u), obj[1u]);
+  s.Store<vector<float16_t, 3> >((offset + 16u), obj[2u]);
+}
+
+matrix<float16_t, 3, 3> v_5(uint start_byte_offset) {
+  vector<float16_t, 3> v_6 = tint_bitcast_to_f16(u[(start_byte_offset / 16u)]).xyz;
+  vector<float16_t, 3> v_7 = tint_bitcast_to_f16(u[((8u + start_byte_offset) / 16u)]).xyz;
+  return matrix<float16_t, 3, 3>(v_6, v_7, tint_bitcast_to_f16(u[((16u + start_byte_offset) / 16u)]).xyz);
+}
+
+void v_8(uint offset, S obj) {
+  s.Store((offset + 0u), asuint(obj.before));
+  v_4((offset + 8u), obj.m);
+  s.Store((offset + 64u), asuint(obj.after));
+}
+
+S v_9(uint start_byte_offset) {
+  int v_10 = asint(u[(start_byte_offset / 16u)][((start_byte_offset % 16u) / 4u)]);
+  matrix<float16_t, 3, 3> v_11 = v_5((8u + start_byte_offset));
+  S v_12 = {v_10, v_11, asint(u[((64u + start_byte_offset) / 16u)][(((64u + start_byte_offset) % 16u) / 4u)])};
+  return v_12;
+}
+
+void v_13(uint offset, S obj[4]) {
+  {
+    uint v_14 = 0u;
+    v_14 = 0u;
+    while(true) {
+      uint v_15 = v_14;
+      if ((v_15 >= 4u)) {
+        break;
+      }
+      S v_16 = obj[v_15];
+      v_8((offset + (v_15 * 128u)), v_16);
+      {
+        v_14 = (v_15 + 1u);
+      }
+      continue;
+    }
+  }
+}
+
+typedef S ary_ret[4];
+ary_ret v_17(uint start_byte_offset) {
+  S a[4] = (S[4])0;
+  {
+    uint v_18 = 0u;
+    v_18 = 0u;
+    while(true) {
+      uint v_19 = v_18;
+      if ((v_19 >= 4u)) {
+        break;
+      }
+      S v_20 = v_9((start_byte_offset + (v_19 * 128u)));
+      a[v_19] = v_20;
+      {
+        v_18 = (v_19 + 1u);
+      }
+      continue;
+    }
+  }
+  S v_21[4] = a;
+  return v_21;
+}
+
+[numthreads(1, 1, 1)]
+void f() {
+  S v_22[4] = v_17(0u);
+  v_13(0u, v_22);
+  S v_23 = v_9(256u);
+  v_8(128u, v_23);
+  v_4(392u, v_5(264u));
+  s.Store<vector<float16_t, 3> >(136u, tint_bitcast_to_f16(u[1u]).xyz.zxy);
+}
+
diff --git a/test/tint/buffer/uniform/std140/struct/mat3x3_f16/to_storage.wgsl.expected.ir.fxc.hlsl b/test/tint/buffer/uniform/std140/struct/mat3x3_f16/to_storage.wgsl.expected.ir.fxc.hlsl
index 3f437dc..8bb7fed 100644
--- a/test/tint/buffer/uniform/std140/struct/mat3x3_f16/to_storage.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/buffer/uniform/std140/struct/mat3x3_f16/to_storage.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,105 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Access
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct S {
+  int before;
+  matrix<float16_t, 3, 3> m;
+  int after;
+};
+
+
+cbuffer cbuffer_u : register(b0) {
+  uint4 u[32];
+};
+RWByteAddressBuffer s : register(u1);
+vector<float16_t, 4> tint_bitcast_to_f16(uint4 src) {
+  uint4 v = src;
+  uint4 mask = (65535u).xxxx;
+  uint4 shift = (16u).xxxx;
+  float4 t_low = f16tof32((v & mask));
+  float4 t_high = f16tof32(((v >> shift) & mask));
+  float16_t v_1 = float16_t(t_low.x);
+  float16_t v_2 = float16_t(t_high.x);
+  float16_t v_3 = float16_t(t_low.y);
+  return vector<float16_t, 4>(v_1, v_2, v_3, float16_t(t_high.y));
+}
+
+void v_4(uint offset, matrix<float16_t, 3, 3> obj) {
+  s.Store<vector<float16_t, 3> >((offset + 0u), obj[0u]);
+  s.Store<vector<float16_t, 3> >((offset + 8u), obj[1u]);
+  s.Store<vector<float16_t, 3> >((offset + 16u), obj[2u]);
+}
+
+matrix<float16_t, 3, 3> v_5(uint start_byte_offset) {
+  vector<float16_t, 3> v_6 = tint_bitcast_to_f16(u[(start_byte_offset / 16u)]).xyz;
+  vector<float16_t, 3> v_7 = tint_bitcast_to_f16(u[((8u + start_byte_offset) / 16u)]).xyz;
+  return matrix<float16_t, 3, 3>(v_6, v_7, tint_bitcast_to_f16(u[((16u + start_byte_offset) / 16u)]).xyz);
+}
+
+void v_8(uint offset, S obj) {
+  s.Store((offset + 0u), asuint(obj.before));
+  v_4((offset + 8u), obj.m);
+  s.Store((offset + 64u), asuint(obj.after));
+}
+
+S v_9(uint start_byte_offset) {
+  int v_10 = asint(u[(start_byte_offset / 16u)][((start_byte_offset % 16u) / 4u)]);
+  matrix<float16_t, 3, 3> v_11 = v_5((8u + start_byte_offset));
+  S v_12 = {v_10, v_11, asint(u[((64u + start_byte_offset) / 16u)][(((64u + start_byte_offset) % 16u) / 4u)])};
+  return v_12;
+}
+
+void v_13(uint offset, S obj[4]) {
+  {
+    uint v_14 = 0u;
+    v_14 = 0u;
+    while(true) {
+      uint v_15 = v_14;
+      if ((v_15 >= 4u)) {
+        break;
+      }
+      S v_16 = obj[v_15];
+      v_8((offset + (v_15 * 128u)), v_16);
+      {
+        v_14 = (v_15 + 1u);
+      }
+      continue;
+    }
+  }
+}
+
+typedef S ary_ret[4];
+ary_ret v_17(uint start_byte_offset) {
+  S a[4] = (S[4])0;
+  {
+    uint v_18 = 0u;
+    v_18 = 0u;
+    while(true) {
+      uint v_19 = v_18;
+      if ((v_19 >= 4u)) {
+        break;
+      }
+      S v_20 = v_9((start_byte_offset + (v_19 * 128u)));
+      a[v_19] = v_20;
+      {
+        v_18 = (v_19 + 1u);
+      }
+      continue;
+    }
+  }
+  S v_21[4] = a;
+  return v_21;
+}
+
+[numthreads(1, 1, 1)]
+void f() {
+  S v_22[4] = v_17(0u);
+  v_13(0u, v_22);
+  S v_23 = v_9(256u);
+  v_8(128u, v_23);
+  v_4(392u, v_5(264u));
+  s.Store<vector<float16_t, 3> >(136u, tint_bitcast_to_f16(u[1u]).xyz.zxy);
+}
+
+FXC validation failure:
+c:\src\dawn\Shader@0x0000020E899EFBF0(3,10-18): error X3000: syntax error: unexpected token 'float16_t'
+
diff --git a/test/tint/buffer/uniform/std140/struct/mat3x3_f16/to_workgroup.wgsl.expected.ir.dxc.hlsl b/test/tint/buffer/uniform/std140/struct/mat3x3_f16/to_workgroup.wgsl.expected.ir.dxc.hlsl
index 3f437dc..e889b24 100644
--- a/test/tint/buffer/uniform/std140/struct/mat3x3_f16/to_workgroup.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/buffer/uniform/std140/struct/mat3x3_f16/to_workgroup.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,94 @@
-SKIP: FAILED
+struct S {
+  int before;
+  matrix<float16_t, 3, 3> m;
+  int after;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Access
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct f_inputs {
+  uint tint_local_index : SV_GroupIndex;
+};
+
+
+cbuffer cbuffer_u : register(b0) {
+  uint4 u[32];
+};
+groupshared S w[4];
+vector<float16_t, 4> tint_bitcast_to_f16(uint4 src) {
+  uint4 v = src;
+  uint4 mask = (65535u).xxxx;
+  uint4 shift = (16u).xxxx;
+  float4 t_low = f16tof32((v & mask));
+  float4 t_high = f16tof32(((v >> shift) & mask));
+  float16_t v_1 = float16_t(t_low.x);
+  float16_t v_2 = float16_t(t_high.x);
+  float16_t v_3 = float16_t(t_low.y);
+  return vector<float16_t, 4>(v_1, v_2, v_3, float16_t(t_high.y));
+}
+
+matrix<float16_t, 3, 3> v_4(uint start_byte_offset) {
+  vector<float16_t, 3> v_5 = tint_bitcast_to_f16(u[(start_byte_offset / 16u)]).xyz;
+  vector<float16_t, 3> v_6 = tint_bitcast_to_f16(u[((8u + start_byte_offset) / 16u)]).xyz;
+  return matrix<float16_t, 3, 3>(v_5, v_6, tint_bitcast_to_f16(u[((16u + start_byte_offset) / 16u)]).xyz);
+}
+
+S v_7(uint start_byte_offset) {
+  int v_8 = asint(u[(start_byte_offset / 16u)][((start_byte_offset % 16u) / 4u)]);
+  matrix<float16_t, 3, 3> v_9 = v_4((8u + start_byte_offset));
+  S v_10 = {v_8, v_9, asint(u[((64u + start_byte_offset) / 16u)][(((64u + start_byte_offset) % 16u) / 4u)])};
+  return v_10;
+}
+
+typedef S ary_ret[4];
+ary_ret v_11(uint start_byte_offset) {
+  S a[4] = (S[4])0;
+  {
+    uint v_12 = 0u;
+    v_12 = 0u;
+    while(true) {
+      uint v_13 = v_12;
+      if ((v_13 >= 4u)) {
+        break;
+      }
+      S v_14 = v_7((start_byte_offset + (v_13 * 128u)));
+      a[v_13] = v_14;
+      {
+        v_12 = (v_13 + 1u);
+      }
+      continue;
+    }
+  }
+  S v_15[4] = a;
+  return v_15;
+}
+
+void f_inner(uint tint_local_index) {
+  {
+    uint v_16 = 0u;
+    v_16 = tint_local_index;
+    while(true) {
+      uint v_17 = v_16;
+      if ((v_17 >= 4u)) {
+        break;
+      }
+      S v_18 = (S)0;
+      w[v_17] = v_18;
+      {
+        v_16 = (v_17 + 1u);
+      }
+      continue;
+    }
+  }
+  GroupMemoryBarrierWithGroupSync();
+  S v_19[4] = v_11(0u);
+  w = v_19;
+  S v_20 = v_7(256u);
+  w[1] = v_20;
+  w[3].m = v_4(264u);
+  w[1].m[0] = tint_bitcast_to_f16(u[1u]).xyz.zxy;
+}
+
+[numthreads(1, 1, 1)]
+void f(f_inputs inputs) {
+  f_inner(inputs.tint_local_index);
+}
+
diff --git a/test/tint/buffer/uniform/std140/struct/mat3x3_f16/to_workgroup.wgsl.expected.ir.fxc.hlsl b/test/tint/buffer/uniform/std140/struct/mat3x3_f16/to_workgroup.wgsl.expected.ir.fxc.hlsl
index 3f437dc..cd83442 100644
--- a/test/tint/buffer/uniform/std140/struct/mat3x3_f16/to_workgroup.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/buffer/uniform/std140/struct/mat3x3_f16/to_workgroup.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,99 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Access
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct S {
+  int before;
+  matrix<float16_t, 3, 3> m;
+  int after;
+};
+
+struct f_inputs {
+  uint tint_local_index : SV_GroupIndex;
+};
+
+
+cbuffer cbuffer_u : register(b0) {
+  uint4 u[32];
+};
+groupshared S w[4];
+vector<float16_t, 4> tint_bitcast_to_f16(uint4 src) {
+  uint4 v = src;
+  uint4 mask = (65535u).xxxx;
+  uint4 shift = (16u).xxxx;
+  float4 t_low = f16tof32((v & mask));
+  float4 t_high = f16tof32(((v >> shift) & mask));
+  float16_t v_1 = float16_t(t_low.x);
+  float16_t v_2 = float16_t(t_high.x);
+  float16_t v_3 = float16_t(t_low.y);
+  return vector<float16_t, 4>(v_1, v_2, v_3, float16_t(t_high.y));
+}
+
+matrix<float16_t, 3, 3> v_4(uint start_byte_offset) {
+  vector<float16_t, 3> v_5 = tint_bitcast_to_f16(u[(start_byte_offset / 16u)]).xyz;
+  vector<float16_t, 3> v_6 = tint_bitcast_to_f16(u[((8u + start_byte_offset) / 16u)]).xyz;
+  return matrix<float16_t, 3, 3>(v_5, v_6, tint_bitcast_to_f16(u[((16u + start_byte_offset) / 16u)]).xyz);
+}
+
+S v_7(uint start_byte_offset) {
+  int v_8 = asint(u[(start_byte_offset / 16u)][((start_byte_offset % 16u) / 4u)]);
+  matrix<float16_t, 3, 3> v_9 = v_4((8u + start_byte_offset));
+  S v_10 = {v_8, v_9, asint(u[((64u + start_byte_offset) / 16u)][(((64u + start_byte_offset) % 16u) / 4u)])};
+  return v_10;
+}
+
+typedef S ary_ret[4];
+ary_ret v_11(uint start_byte_offset) {
+  S a[4] = (S[4])0;
+  {
+    uint v_12 = 0u;
+    v_12 = 0u;
+    while(true) {
+      uint v_13 = v_12;
+      if ((v_13 >= 4u)) {
+        break;
+      }
+      S v_14 = v_7((start_byte_offset + (v_13 * 128u)));
+      a[v_13] = v_14;
+      {
+        v_12 = (v_13 + 1u);
+      }
+      continue;
+    }
+  }
+  S v_15[4] = a;
+  return v_15;
+}
+
+void f_inner(uint tint_local_index) {
+  {
+    uint v_16 = 0u;
+    v_16 = tint_local_index;
+    while(true) {
+      uint v_17 = v_16;
+      if ((v_17 >= 4u)) {
+        break;
+      }
+      S v_18 = (S)0;
+      w[v_17] = v_18;
+      {
+        v_16 = (v_17 + 1u);
+      }
+      continue;
+    }
+  }
+  GroupMemoryBarrierWithGroupSync();
+  S v_19[4] = v_11(0u);
+  w = v_19;
+  S v_20 = v_7(256u);
+  w[1] = v_20;
+  w[3].m = v_4(264u);
+  w[1].m[0] = tint_bitcast_to_f16(u[1u]).xyz.zxy;
+}
+
+[numthreads(1, 1, 1)]
+void f(f_inputs inputs) {
+  f_inner(inputs.tint_local_index);
+}
+
+FXC validation failure:
+c:\src\dawn\Shader@0x0000016FB8B39430(3,10-18): error X3000: syntax error: unexpected token 'float16_t'
+
diff --git a/test/tint/buffer/uniform/std140/struct/mat3x3_f32/dynamic_index_via_ptr.wgsl.expected.ir.dxc.hlsl b/test/tint/buffer/uniform/std140/struct/mat3x3_f32/dynamic_index_via_ptr.wgsl.expected.ir.dxc.hlsl
index 3f437dc..2dc91fc 100644
--- a/test/tint/buffer/uniform/std140/struct/mat3x3_f32/dynamic_index_via_ptr.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/buffer/uniform/std140/struct/mat3x3_f32/dynamic_index_via_ptr.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,263 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Access
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+
+struct Inner {
+  @size(64)
+  m : mat3x3<f32>,
+}
+
+struct Outer {
+  a : array<Inner, 4>,
+}
+
+@group(0) @binding(0) var<uniform> a : array<Outer, 4>;
+
+var<private> counter = 0;
+
+fn i() -> i32 {
+  counter++;
+  return counter;
+}
+
+@compute @workgroup_size(1)
+fn f() {
+  let p_a = &(a);
+  let p_a_i = &((*(p_a))[i()]);
+  let p_a_i_a = &((*(p_a_i)).a);
+  let p_a_i_a_i = &((*(p_a_i_a))[i()]);
+  let p_a_i_a_i_m = &((*(p_a_i_a_i)).m);
+  let p_a_i_a_i_m_i = &((*(p_a_i_a_i_m))[i()]);
+  let l_a : array<Outer, 4> = *(p_a);
+  let l_a_i : Outer = *(p_a_i);
+  let l_a_i_a : array<Inner, 4> = *(p_a_i_a);
+  let l_a_i_a_i : Inner = *(p_a_i_a_i);
+  let l_a_i_a_i_m : mat3x3<f32> = *(p_a_i_a_i_m);
+  let l_a_i_a_i_m_i : vec3<f32> = *(p_a_i_a_i_m_i);
+  let l_a_i_a_i_m_i_i : f32 = (*(p_a_i_a_i_m_i))[i()];
+}
+
+Failed to generate: :40:24 error: binary: %26 is not in scope
+    %25:u32 = add %24, %26
+                       ^^^
+
+:24:3 note: in block
+  $B3: {
+  ^^^
+
+:60:5 note: %26 declared here
+    %26:u32 = mul %48, 4u
+    ^^^^^^^
+
+:48:24 error: binary: %26 is not in scope
+    %36:u32 = add %35, %26
+                       ^^^
+
+:24:3 note: in block
+  $B3: {
+  ^^^
+
+:60:5 note: %26 declared here
+    %26:u32 = mul %48, 4u
+    ^^^^^^^
+
+:60:5 error: binary: no matching overload for 'operator * (i32, u32)'
+
+9 candidate operators:
+ • 'operator * (T  ✓ , T  ✗ ) -> T' where:
+      ✓  'T' is 'f32', 'i32', 'u32' or 'f16'
+ • 'operator * (vecN<T>  ✗ , T  ✓ ) -> vecN<T>' where:
+      ✓  'T' is 'f32', 'i32', 'u32' or 'f16'
+ • 'operator * (T  ✓ , vecN<T>  ✗ ) -> vecN<T>' where:
+      ✓  'T' is 'f32', 'i32', 'u32' or 'f16'
+ • 'operator * (T  ✗ , matNxM<T>  ✗ ) -> matNxM<T>' where:
+      ✗  'T' is 'f32' or 'f16'
+ • 'operator * (matNxM<T>  ✗ , T  ✗ ) -> matNxM<T>' where:
+      ✗  'T' is 'f32' or 'f16'
+ • 'operator * (vecN<T>  ✗ , vecN<T>  ✗ ) -> vecN<T>' where:
+      ✗  'T' is 'f32', 'i32', 'u32' or 'f16'
+ • 'operator * (matCxR<T>  ✗ , vecC<T>  ✗ ) -> vecR<T>' where:
+      ✗  'T' is 'f32' or 'f16'
+ • 'operator * (vecR<T>  ✗ , matCxR<T>  ✗ ) -> vecC<T>' where:
+      ✗  'T' is 'f32' or 'f16'
+ • 'operator * (matKxR<T>  ✗ , matCxK<T>  ✗ ) -> matCxR<T>' where:
+      ✗  'T' is 'f32' or 'f16'
+
+    %26:u32 = mul %48, 4u
+    ^^^^^^^^^^^^^^^^^^^^^
+
+:24:3 note: in block
+  $B3: {
+  ^^^
+
+note: # Disassembly
+Inner = struct @align(16) {
+  m:mat3x3<f32> @offset(0)
+}
+
+Outer = struct @align(16) {
+  a:array<Inner, 4> @offset(0)
+}
+
+$B1: {  # root
+  %a:ptr<uniform, array<vec4<u32>, 64>, read> = var @binding_point(0, 0)
+  %counter:ptr<private, i32, read_write> = var, 0i
+}
+
+%i = func():i32 {
+  $B2: {
+    %4:i32 = load %counter
+    %5:i32 = add %4, 1i
+    store %counter, %5
+    %6:i32 = load %counter
+    ret %6
+  }
+}
+%f = @compute @workgroup_size(1, 1, 1) func():void {
+  $B3: {
+    %8:i32 = call %i
+    %9:u32 = convert %8
+    %10:u32 = mul 256u, %9
+    %11:i32 = call %i
+    %12:u32 = convert %11
+    %13:u32 = mul 64u, %12
+    %14:i32 = call %i
+    %15:u32 = convert %14
+    %16:u32 = mul 16u, %15
+    %17:array<Outer, 4> = call %18, 0u
+    %l_a:array<Outer, 4> = let %17
+    %20:Outer = call %21, %10
+    %l_a_i:Outer = let %20
+    %23:u32 = add %10, %13
+    %24:u32 = add %23, %16
+    %25:u32 = add %24, %26
+    %27:array<Inner, 4> = call %28, %25
+    %l_a_i_a:array<Inner, 4> = let %27
+    %30:u32 = add %10, %13
+    %31:Inner = call %32, %30
+    %l_a_i_a_i:Inner = let %31
+    %34:u32 = add %10, %13
+    %35:u32 = add %34, %16
+    %36:u32 = add %35, %26
+    %37:mat3x3<f32> = call %38, %36
+    %l_a_i_a_i_m:mat3x3<f32> = let %37
+    %40:u32 = add %10, %13
+    %41:u32 = add %40, %16
+    %42:u32 = div %41, 16u
+    %43:ptr<uniform, vec4<u32>, read> = access %a, %42
+    %44:vec4<u32> = load %43
+    %45:vec3<u32> = swizzle %44, xyz
+    %46:vec3<f32> = bitcast %45
+    %l_a_i_a_i_m_i:vec3<f32> = let %46
+    %48:i32 = call %i
+    %26:u32 = mul %48, 4u
+    %49:u32 = add %10, %13
+    %50:u32 = add %49, %16
+    %51:u32 = add %50, %26
+    %52:u32 = div %51, 16u
+    %53:ptr<uniform, vec4<u32>, read> = access %a, %52
+    %54:u32 = mod %51, 16u
+    %55:u32 = div %54, 4u
+    %56:u32 = load_vector_element %53, %55
+    %57:f32 = bitcast %56
+    %l_a_i_a_i_m_i_i:f32 = let %57
+    ret
+  }
+}
+%18 = func(%start_byte_offset:u32):array<Outer, 4> {
+  $B4: {
+    %a_1:ptr<function, array<Outer, 4>, read_write> = var, array<Outer, 4>(Outer(array<Inner, 4>(Inner(mat3x3<f32>(vec3<f32>(0.0f))))))  # %a_1: 'a'
+    loop [i: $B5, b: $B6, c: $B7] {  # loop_1
+      $B5: {  # initializer
+        next_iteration 0u  # -> $B6
+      }
+      $B6 (%idx:u32): {  # body
+        %62:bool = gte %idx, 4u
+        if %62 [t: $B8] {  # if_1
+          $B8: {  # true
+            exit_loop  # loop_1
+          }
+        }
+        %63:u32 = mul %idx, 256u
+        %64:u32 = add %start_byte_offset, %63
+        %65:ptr<function, Outer, read_write> = access %a_1, %idx
+        %66:Outer = call %21, %64
+        store %65, %66
+        continue  # -> $B7
+      }
+      $B7: {  # continuing
+        %67:u32 = add %idx, 1u
+        next_iteration %67  # -> $B6
+      }
+    }
+    %68:array<Outer, 4> = load %a_1
+    ret %68
+  }
+}
+%21 = func(%start_byte_offset_1:u32):Outer {  # %start_byte_offset_1: 'start_byte_offset'
+  $B9: {
+    %70:array<Inner, 4> = call %28, %start_byte_offset_1
+    %71:Outer = construct %70
+    ret %71
+  }
+}
+%28 = func(%start_byte_offset_2:u32):array<Inner, 4> {  # %start_byte_offset_2: 'start_byte_offset'
+  $B10: {
+    %a_2:ptr<function, array<Inner, 4>, read_write> = var, array<Inner, 4>(Inner(mat3x3<f32>(vec3<f32>(0.0f))))  # %a_2: 'a'
+    loop [i: $B11, b: $B12, c: $B13] {  # loop_2
+      $B11: {  # initializer
+        next_iteration 0u  # -> $B12
+      }
+      $B12 (%idx_1:u32): {  # body
+        %75:bool = gte %idx_1, 4u
+        if %75 [t: $B14] {  # if_2
+          $B14: {  # true
+            exit_loop  # loop_2
+          }
+        }
+        %76:u32 = mul %idx_1, 64u
+        %77:u32 = add %start_byte_offset_2, %76
+        %78:ptr<function, Inner, read_write> = access %a_2, %idx_1
+        %79:Inner = call %32, %77
+        store %78, %79
+        continue  # -> $B13
+      }
+      $B13: {  # continuing
+        %80:u32 = add %idx_1, 1u
+        next_iteration %80  # -> $B12
+      }
+    }
+    %81:array<Inner, 4> = load %a_2
+    ret %81
+  }
+}
+%32 = func(%start_byte_offset_3:u32):Inner {  # %start_byte_offset_3: 'start_byte_offset'
+  $B15: {
+    %83:mat3x3<f32> = call %38, %start_byte_offset_3
+    %84:Inner = construct %83
+    ret %84
+  }
+}
+%38 = func(%start_byte_offset_4:u32):mat3x3<f32> {  # %start_byte_offset_4: 'start_byte_offset'
+  $B16: {
+    %86:u32 = div %start_byte_offset_4, 16u
+    %87:ptr<uniform, vec4<u32>, read> = access %a, %86
+    %88:vec4<u32> = load %87
+    %89:vec3<u32> = swizzle %88, xyz
+    %90:vec3<f32> = bitcast %89
+    %91:u32 = add 16u, %start_byte_offset_4
+    %92:u32 = div %91, 16u
+    %93:ptr<uniform, vec4<u32>, read> = access %a, %92
+    %94:vec4<u32> = load %93
+    %95:vec3<u32> = swizzle %94, xyz
+    %96:vec3<f32> = bitcast %95
+    %97:u32 = add 32u, %start_byte_offset_4
+    %98:u32 = div %97, 16u
+    %99:ptr<uniform, vec4<u32>, read> = access %a, %98
+    %100:vec4<u32> = load %99
+    %101:vec3<u32> = swizzle %100, xyz
+    %102:vec3<f32> = bitcast %101
+    %103:mat3x3<f32> = construct %90, %96, %102
+    ret %103
+  }
+}
+
diff --git a/test/tint/buffer/uniform/std140/struct/mat3x3_f32/dynamic_index_via_ptr.wgsl.expected.ir.fxc.hlsl b/test/tint/buffer/uniform/std140/struct/mat3x3_f32/dynamic_index_via_ptr.wgsl.expected.ir.fxc.hlsl
index 3f437dc..edaf04d 100644
--- a/test/tint/buffer/uniform/std140/struct/mat3x3_f32/dynamic_index_via_ptr.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/buffer/uniform/std140/struct/mat3x3_f32/dynamic_index_via_ptr.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,290 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Access
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+
+struct Inner {
+  @size(64)
+  m : mat3x3<f32>,
+}
+
+struct Outer {
+  a : array<Inner, 4>,
+}
+
+@group(0) @binding(0) var<uniform> a : array<Outer, 4>;
+
+var<private> counter = 0;
+
+fn i() -> i32 {
+  counter++;
+  return counter;
+}
+
+@compute @workgroup_size(1)
+fn f() {
+  let p_a = &(a);
+  let p_a_i = &((*(p_a))[i()]);
+  let p_a_i_a = &((*(p_a_i)).a);
+  let p_a_i_a_i = &((*(p_a_i_a))[i()]);
+  let p_a_i_a_i_m = &((*(p_a_i_a_i)).m);
+  let p_a_i_a_i_m_i = &((*(p_a_i_a_i_m))[i()]);
+  let l_a : array<Outer, 4> = *(p_a);
+  let l_a_i : Outer = *(p_a_i);
+  let l_a_i_a : array<Inner, 4> = *(p_a_i_a);
+  let l_a_i_a_i : Inner = *(p_a_i_a_i);
+  let l_a_i_a_i_m : mat3x3<f32> = *(p_a_i_a_i_m);
+  let l_a_i_a_i_m_i : vec3<f32> = *(p_a_i_a_i_m_i);
+  let l_a_i_a_i_m_i_i : f32 = (*(p_a_i_a_i_m_i))[i()];
+}
+
+Failed to generate: :40:24 error: binary: %26 is not in scope
+    %25:u32 = add %24, %26
+                       ^^^
+
+:24:3 note: in block
+  $B3: {
+  ^^^
+
+:63:5 note: %26 declared here
+    %26:u32 = mul %51, 4u
+    ^^^^^^^
+
+:45:24 error: binary: %26 is not in scope
+    %32:u32 = add %31, %26
+                       ^^^
+
+:24:3 note: in block
+  $B3: {
+  ^^^
+
+:63:5 note: %26 declared here
+    %26:u32 = mul %51, 4u
+    ^^^^^^^
+
+:50:24 error: binary: %26 is not in scope
+    %38:u32 = add %37, %26
+                       ^^^
+
+:24:3 note: in block
+  $B3: {
+  ^^^
+
+:63:5 note: %26 declared here
+    %26:u32 = mul %51, 4u
+    ^^^^^^^
+
+:55:24 error: binary: %26 is not in scope
+    %44:u32 = add %43, %26
+                       ^^^
+
+:24:3 note: in block
+  $B3: {
+  ^^^
+
+:63:5 note: %26 declared here
+    %26:u32 = mul %51, 4u
+    ^^^^^^^
+
+:63:5 error: binary: no matching overload for 'operator * (i32, u32)'
+
+9 candidate operators:
+ • 'operator * (T  ✓ , T  ✗ ) -> T' where:
+      ✓  'T' is 'f32', 'i32', 'u32' or 'f16'
+ • 'operator * (vecN<T>  ✗ , T  ✓ ) -> vecN<T>' where:
+      ✓  'T' is 'f32', 'i32', 'u32' or 'f16'
+ • 'operator * (T  ✓ , vecN<T>  ✗ ) -> vecN<T>' where:
+      ✓  'T' is 'f32', 'i32', 'u32' or 'f16'
+ • 'operator * (T  ✗ , matNxM<T>  ✗ ) -> matNxM<T>' where:
+      ✗  'T' is 'f32' or 'f16'
+ • 'operator * (matNxM<T>  ✗ , T  ✗ ) -> matNxM<T>' where:
+      ✗  'T' is 'f32' or 'f16'
+ • 'operator * (vecN<T>  ✗ , vecN<T>  ✗ ) -> vecN<T>' where:
+      ✗  'T' is 'f32', 'i32', 'u32' or 'f16'
+ • 'operator * (matCxR<T>  ✗ , vecC<T>  ✗ ) -> vecR<T>' where:
+      ✗  'T' is 'f32' or 'f16'
+ • 'operator * (vecR<T>  ✗ , matCxR<T>  ✗ ) -> vecC<T>' where:
+      ✗  'T' is 'f32' or 'f16'
+ • 'operator * (matKxR<T>  ✗ , matCxK<T>  ✗ ) -> matCxR<T>' where:
+      ✗  'T' is 'f32' or 'f16'
+
+    %26:u32 = mul %51, 4u
+    ^^^^^^^^^^^^^^^^^^^^^
+
+:24:3 note: in block
+  $B3: {
+  ^^^
+
+note: # Disassembly
+Inner = struct @align(16) {
+  m:mat3x3<f32> @offset(0)
+}
+
+Outer = struct @align(16) {
+  a:array<Inner, 4> @offset(0)
+}
+
+$B1: {  # root
+  %a:ptr<uniform, array<vec4<u32>, 64>, read> = var @binding_point(0, 0)
+  %counter:ptr<private, i32, read_write> = var, 0i
+}
+
+%i = func():i32 {
+  $B2: {
+    %4:i32 = load %counter
+    %5:i32 = add %4, 1i
+    store %counter, %5
+    %6:i32 = load %counter
+    ret %6
+  }
+}
+%f = @compute @workgroup_size(1, 1, 1) func():void {
+  $B3: {
+    %8:i32 = call %i
+    %9:u32 = convert %8
+    %10:u32 = mul 256u, %9
+    %11:i32 = call %i
+    %12:u32 = convert %11
+    %13:u32 = mul 64u, %12
+    %14:i32 = call %i
+    %15:u32 = convert %14
+    %16:u32 = mul 16u, %15
+    %17:array<Outer, 4> = call %18, 0u
+    %l_a:array<Outer, 4> = let %17
+    %20:Outer = call %21, %10
+    %l_a_i:Outer = let %20
+    %23:u32 = add %10, %13
+    %24:u32 = add %23, %16
+    %25:u32 = add %24, %26
+    %27:array<Inner, 4> = call %28, %25
+    %l_a_i_a:array<Inner, 4> = let %27
+    %30:u32 = add %10, %13
+    %31:u32 = add %30, %16
+    %32:u32 = add %31, %26
+    %33:Inner = call %34, %32
+    %l_a_i_a_i:Inner = let %33
+    %36:u32 = add %10, %13
+    %37:u32 = add %36, %16
+    %38:u32 = add %37, %26
+    %39:mat3x3<f32> = call %40, %38
+    %l_a_i_a_i_m:mat3x3<f32> = let %39
+    %42:u32 = add %10, %13
+    %43:u32 = add %42, %16
+    %44:u32 = add %43, %26
+    %45:u32 = div %44, 16u
+    %46:ptr<uniform, vec4<u32>, read> = access %a, %45
+    %47:vec4<u32> = load %46
+    %48:vec3<u32> = swizzle %47, xyz
+    %49:vec3<f32> = bitcast %48
+    %l_a_i_a_i_m_i:vec3<f32> = let %49
+    %51:i32 = call %i
+    %26:u32 = mul %51, 4u
+    %52:u32 = add %10, %13
+    %53:u32 = add %52, %16
+    %54:u32 = add %53, %26
+    %55:u32 = div %54, 16u
+    %56:ptr<uniform, vec4<u32>, read> = access %a, %55
+    %57:u32 = mod %54, 16u
+    %58:u32 = div %57, 4u
+    %59:u32 = load_vector_element %56, %58
+    %60:f32 = bitcast %59
+    %l_a_i_a_i_m_i_i:f32 = let %60
+    ret
+  }
+}
+%21 = func(%start_byte_offset:u32):Outer {
+  $B4: {
+    %63:array<Inner, 4> = call %28, %start_byte_offset
+    %64:Outer = construct %63
+    ret %64
+  }
+}
+%28 = func(%start_byte_offset_1:u32):array<Inner, 4> {  # %start_byte_offset_1: 'start_byte_offset'
+  $B5: {
+    %a_1:ptr<function, array<Inner, 4>, read_write> = var, array<Inner, 4>(Inner(mat3x3<f32>(vec3<f32>(0.0f))))  # %a_1: 'a'
+    loop [i: $B6, b: $B7, c: $B8] {  # loop_1
+      $B6: {  # initializer
+        next_iteration 0u  # -> $B7
+      }
+      $B7 (%idx:u32): {  # body
+        %68:bool = gte %idx, 4u
+        if %68 [t: $B9] {  # if_1
+          $B9: {  # true
+            exit_loop  # loop_1
+          }
+        }
+        %69:u32 = mul %idx, 64u
+        %70:u32 = add %start_byte_offset_1, %69
+        %71:ptr<function, Inner, read_write> = access %a_1, %idx
+        %72:Inner = call %34, %70
+        store %71, %72
+        continue  # -> $B8
+      }
+      $B8: {  # continuing
+        %73:u32 = add %idx, 1u
+        next_iteration %73  # -> $B7
+      }
+    }
+    %74:array<Inner, 4> = load %a_1
+    ret %74
+  }
+}
+%34 = func(%start_byte_offset_2:u32):Inner {  # %start_byte_offset_2: 'start_byte_offset'
+  $B10: {
+    %76:mat3x3<f32> = call %40, %start_byte_offset_2
+    %77:Inner = construct %76
+    ret %77
+  }
+}
+%40 = func(%start_byte_offset_3:u32):mat3x3<f32> {  # %start_byte_offset_3: 'start_byte_offset'
+  $B11: {
+    %79:u32 = div %start_byte_offset_3, 16u
+    %80:ptr<uniform, vec4<u32>, read> = access %a, %79
+    %81:vec4<u32> = load %80
+    %82:vec3<u32> = swizzle %81, xyz
+    %83:vec3<f32> = bitcast %82
+    %84:u32 = add 16u, %start_byte_offset_3
+    %85:u32 = div %84, 16u
+    %86:ptr<uniform, vec4<u32>, read> = access %a, %85
+    %87:vec4<u32> = load %86
+    %88:vec3<u32> = swizzle %87, xyz
+    %89:vec3<f32> = bitcast %88
+    %90:u32 = add 32u, %start_byte_offset_3
+    %91:u32 = div %90, 16u
+    %92:ptr<uniform, vec4<u32>, read> = access %a, %91
+    %93:vec4<u32> = load %92
+    %94:vec3<u32> = swizzle %93, xyz
+    %95:vec3<f32> = bitcast %94
+    %96:mat3x3<f32> = construct %83, %89, %95
+    ret %96
+  }
+}
+%18 = func(%start_byte_offset_4:u32):array<Outer, 4> {  # %start_byte_offset_4: 'start_byte_offset'
+  $B12: {
+    %a_2:ptr<function, array<Outer, 4>, read_write> = var, array<Outer, 4>(Outer(array<Inner, 4>(Inner(mat3x3<f32>(vec3<f32>(0.0f))))))  # %a_2: 'a'
+    loop [i: $B13, b: $B14, c: $B15] {  # loop_2
+      $B13: {  # initializer
+        next_iteration 0u  # -> $B14
+      }
+      $B14 (%idx_1:u32): {  # body
+        %100:bool = gte %idx_1, 4u
+        if %100 [t: $B16] {  # if_2
+          $B16: {  # true
+            exit_loop  # loop_2
+          }
+        }
+        %101:u32 = mul %idx_1, 256u
+        %102:u32 = add %start_byte_offset_4, %101
+        %103:ptr<function, Outer, read_write> = access %a_2, %idx_1
+        %104:Outer = call %21, %102
+        store %103, %104
+        continue  # -> $B15
+      }
+      $B15: {  # continuing
+        %105:u32 = add %idx_1, 1u
+        next_iteration %105  # -> $B14
+      }
+    }
+    %106:array<Outer, 4> = load %a_2
+    ret %106
+  }
+}
+
diff --git a/test/tint/buffer/uniform/std140/struct/mat3x3_f32/static_index_via_ptr.wgsl.expected.ir.dxc.hlsl b/test/tint/buffer/uniform/std140/struct/mat3x3_f32/static_index_via_ptr.wgsl.expected.ir.dxc.hlsl
index 3f437dc..16b4df5 100644
--- a/test/tint/buffer/uniform/std140/struct/mat3x3_f32/static_index_via_ptr.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/buffer/uniform/std140/struct/mat3x3_f32/static_index_via_ptr.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,86 @@
-SKIP: FAILED
+struct Inner {
+  float3x3 m;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Access
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct Outer {
+  Inner a[4];
+};
+
+
+cbuffer cbuffer_a : register(b0) {
+  uint4 a[64];
+};
+float3x3 v(uint start_byte_offset) {
+  float3 v_1 = asfloat(a[(start_byte_offset / 16u)].xyz);
+  float3 v_2 = asfloat(a[((16u + start_byte_offset) / 16u)].xyz);
+  return float3x3(v_1, v_2, asfloat(a[((32u + start_byte_offset) / 16u)].xyz));
+}
+
+Inner v_3(uint start_byte_offset) {
+  Inner v_4 = {v(start_byte_offset)};
+  return v_4;
+}
+
+typedef Inner ary_ret[4];
+ary_ret v_5(uint start_byte_offset) {
+  Inner a[4] = (Inner[4])0;
+  {
+    uint v_6 = 0u;
+    v_6 = 0u;
+    while(true) {
+      uint v_7 = v_6;
+      if ((v_7 >= 4u)) {
+        break;
+      }
+      Inner v_8 = v_3((start_byte_offset + (v_7 * 64u)));
+      a[v_7] = v_8;
+      {
+        v_6 = (v_7 + 1u);
+      }
+      continue;
+    }
+  }
+  Inner v_9[4] = a;
+  return v_9;
+}
+
+Outer v_10(uint start_byte_offset) {
+  Inner v_11[4] = v_5(start_byte_offset);
+  Outer v_12 = {v_11};
+  return v_12;
+}
+
+typedef Outer ary_ret_1[4];
+ary_ret_1 v_13(uint start_byte_offset) {
+  Outer a[4] = (Outer[4])0;
+  {
+    uint v_14 = 0u;
+    v_14 = 0u;
+    while(true) {
+      uint v_15 = v_14;
+      if ((v_15 >= 4u)) {
+        break;
+      }
+      Outer v_16 = v_10((start_byte_offset + (v_15 * 256u)));
+      a[v_15] = v_16;
+      {
+        v_14 = (v_15 + 1u);
+      }
+      continue;
+    }
+  }
+  Outer v_17[4] = a;
+  return v_17;
+}
+
+[numthreads(1, 1, 1)]
+void f() {
+  Outer l_a[4] = v_13(0u);
+  Outer l_a_3 = v_10(912u);
+  Inner l_a_3_a[4] = v_5(912u);
+  Inner l_a_3_a_2 = v_3(912u);
+  float3x3 l_a_3_a_2_m = v(912u);
+  float3 l_a_3_a_2_m_1 = asfloat(a[57u].xyz);
+  float l_a_3_a_2_m_1_0 = asfloat(a[57u].x);
+}
+
diff --git a/test/tint/buffer/uniform/std140/struct/mat3x3_f32/static_index_via_ptr.wgsl.expected.ir.fxc.hlsl b/test/tint/buffer/uniform/std140/struct/mat3x3_f32/static_index_via_ptr.wgsl.expected.ir.fxc.hlsl
index 3f437dc..ad95a46 100644
--- a/test/tint/buffer/uniform/std140/struct/mat3x3_f32/static_index_via_ptr.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/buffer/uniform/std140/struct/mat3x3_f32/static_index_via_ptr.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,86 @@
-SKIP: FAILED
+struct Inner {
+  float3x3 m;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Access
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct Outer {
+  Inner a[4];
+};
+
+
+cbuffer cbuffer_a : register(b0) {
+  uint4 a[64];
+};
+float3x3 v(uint start_byte_offset) {
+  float3 v_1 = asfloat(a[(start_byte_offset / 16u)].xyz);
+  float3 v_2 = asfloat(a[((16u + start_byte_offset) / 16u)].xyz);
+  return float3x3(v_1, v_2, asfloat(a[((32u + start_byte_offset) / 16u)].xyz));
+}
+
+Inner v_3(uint start_byte_offset) {
+  Inner v_4 = {v(start_byte_offset)};
+  return v_4;
+}
+
+typedef Inner ary_ret[4];
+ary_ret v_5(uint start_byte_offset) {
+  Inner a[4] = (Inner[4])0;
+  {
+    uint v_6 = 0u;
+    v_6 = 0u;
+    while(true) {
+      uint v_7 = v_6;
+      if ((v_7 >= 4u)) {
+        break;
+      }
+      Inner v_8 = v_3((start_byte_offset + (v_7 * 64u)));
+      a[v_7] = v_8;
+      {
+        v_6 = (v_7 + 1u);
+      }
+      continue;
+    }
+  }
+  Inner v_9[4] = a;
+  return v_9;
+}
+
+Outer v_10(uint start_byte_offset) {
+  Inner v_11[4] = v_5(start_byte_offset);
+  Outer v_12 = {v_11};
+  return v_12;
+}
+
+typedef Outer ary_ret_1[4];
+ary_ret_1 v_13(uint start_byte_offset) {
+  Outer a[4] = (Outer[4])0;
+  {
+    uint v_14 = 0u;
+    v_14 = 0u;
+    while(true) {
+      uint v_15 = v_14;
+      if ((v_15 >= 4u)) {
+        break;
+      }
+      Outer v_16 = v_10((start_byte_offset + (v_15 * 256u)));
+      a[v_15] = v_16;
+      {
+        v_14 = (v_15 + 1u);
+      }
+      continue;
+    }
+  }
+  Outer v_17[4] = a;
+  return v_17;
+}
+
+[numthreads(1, 1, 1)]
+void f() {
+  Outer l_a[4] = v_13(0u);
+  Outer l_a_3 = v_10(912u);
+  Inner l_a_3_a[4] = v_5(912u);
+  Inner l_a_3_a_2 = v_3(912u);
+  float3x3 l_a_3_a_2_m = v(896u);
+  float3 l_a_3_a_2_m_1 = asfloat(a[57u].xyz);
+  float l_a_3_a_2_m_1_0 = asfloat(a[57u].x);
+}
+
diff --git a/test/tint/buffer/uniform/std140/struct/mat3x3_f32/to_builtin.wgsl.expected.ir.dxc.hlsl b/test/tint/buffer/uniform/std140/struct/mat3x3_f32/to_builtin.wgsl.expected.ir.dxc.hlsl
index 3f437dc..098d34b 100644
--- a/test/tint/buffer/uniform/std140/struct/mat3x3_f32/to_builtin.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/buffer/uniform/std140/struct/mat3x3_f32/to_builtin.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,17 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Access
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+cbuffer cbuffer_u : register(b0) {
+  uint4 u[32];
+};
+float3x3 v(uint start_byte_offset) {
+  float3 v_1 = asfloat(u[(start_byte_offset / 16u)].xyz);
+  float3 v_2 = asfloat(u[((16u + start_byte_offset) / 16u)].xyz);
+  return float3x3(v_1, v_2, asfloat(u[((32u + start_byte_offset) / 16u)].xyz));
+}
+
+[numthreads(1, 1, 1)]
+void f() {
+  float3x3 t = transpose(v(272u));
+  float l = length(asfloat(u[2u].xyz).zxy);
+  float a = abs(asfloat(u[2u].xyz).zxy[0u]);
+}
+
diff --git a/test/tint/buffer/uniform/std140/struct/mat3x3_f32/to_builtin.wgsl.expected.ir.fxc.hlsl b/test/tint/buffer/uniform/std140/struct/mat3x3_f32/to_builtin.wgsl.expected.ir.fxc.hlsl
index 3f437dc..098d34b 100644
--- a/test/tint/buffer/uniform/std140/struct/mat3x3_f32/to_builtin.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/buffer/uniform/std140/struct/mat3x3_f32/to_builtin.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,17 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Access
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+cbuffer cbuffer_u : register(b0) {
+  uint4 u[32];
+};
+float3x3 v(uint start_byte_offset) {
+  float3 v_1 = asfloat(u[(start_byte_offset / 16u)].xyz);
+  float3 v_2 = asfloat(u[((16u + start_byte_offset) / 16u)].xyz);
+  return float3x3(v_1, v_2, asfloat(u[((32u + start_byte_offset) / 16u)].xyz));
+}
+
+[numthreads(1, 1, 1)]
+void f() {
+  float3x3 t = transpose(v(272u));
+  float l = length(asfloat(u[2u].xyz).zxy);
+  float a = abs(asfloat(u[2u].xyz).zxy[0u]);
+}
+
diff --git a/test/tint/buffer/uniform/std140/struct/mat3x3_f32/to_fn.wgsl.expected.ir.dxc.hlsl b/test/tint/buffer/uniform/std140/struct/mat3x3_f32/to_fn.wgsl.expected.ir.dxc.hlsl
index 3f437dc..fda2593 100644
--- a/test/tint/buffer/uniform/std140/struct/mat3x3_f32/to_fn.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/buffer/uniform/std140/struct/mat3x3_f32/to_fn.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,72 @@
-SKIP: FAILED
+struct S {
+  int before;
+  float3x3 m;
+  int after;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Access
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+
+cbuffer cbuffer_u : register(b0) {
+  uint4 u[32];
+};
+void a(S a_1[4]) {
+}
+
+void b(S s) {
+}
+
+void c(float3x3 m) {
+}
+
+void d(float3 v) {
+}
+
+void e(float f) {
+}
+
+float3x3 v_1(uint start_byte_offset) {
+  float3 v_2 = asfloat(u[(start_byte_offset / 16u)].xyz);
+  float3 v_3 = asfloat(u[((16u + start_byte_offset) / 16u)].xyz);
+  return float3x3(v_2, v_3, asfloat(u[((32u + start_byte_offset) / 16u)].xyz));
+}
+
+S v_4(uint start_byte_offset) {
+  int v_5 = asint(u[(start_byte_offset / 16u)][((start_byte_offset % 16u) / 4u)]);
+  float3x3 v_6 = v_1((16u + start_byte_offset));
+  S v_7 = {v_5, v_6, asint(u[((64u + start_byte_offset) / 16u)][(((64u + start_byte_offset) % 16u) / 4u)])};
+  return v_7;
+}
+
+typedef S ary_ret[4];
+ary_ret v_8(uint start_byte_offset) {
+  S a[4] = (S[4])0;
+  {
+    uint v_9 = 0u;
+    v_9 = 0u;
+    while(true) {
+      uint v_10 = v_9;
+      if ((v_10 >= 4u)) {
+        break;
+      }
+      S v_11 = v_4((start_byte_offset + (v_10 * 128u)));
+      a[v_10] = v_11;
+      {
+        v_9 = (v_10 + 1u);
+      }
+      continue;
+    }
+  }
+  S v_12[4] = a;
+  return v_12;
+}
+
+[numthreads(1, 1, 1)]
+void f() {
+  S v_13[4] = v_8(0u);
+  a(v_13);
+  S v_14 = v_4(256u);
+  b(v_14);
+  c(v_1(272u));
+  d(asfloat(u[2u].xyz).zxy);
+  e(asfloat(u[2u].xyz).zxy[0u]);
+}
+
diff --git a/test/tint/buffer/uniform/std140/struct/mat3x3_f32/to_fn.wgsl.expected.ir.fxc.hlsl b/test/tint/buffer/uniform/std140/struct/mat3x3_f32/to_fn.wgsl.expected.ir.fxc.hlsl
index 3f437dc..fda2593 100644
--- a/test/tint/buffer/uniform/std140/struct/mat3x3_f32/to_fn.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/buffer/uniform/std140/struct/mat3x3_f32/to_fn.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,72 @@
-SKIP: FAILED
+struct S {
+  int before;
+  float3x3 m;
+  int after;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Access
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+
+cbuffer cbuffer_u : register(b0) {
+  uint4 u[32];
+};
+void a(S a_1[4]) {
+}
+
+void b(S s) {
+}
+
+void c(float3x3 m) {
+}
+
+void d(float3 v) {
+}
+
+void e(float f) {
+}
+
+float3x3 v_1(uint start_byte_offset) {
+  float3 v_2 = asfloat(u[(start_byte_offset / 16u)].xyz);
+  float3 v_3 = asfloat(u[((16u + start_byte_offset) / 16u)].xyz);
+  return float3x3(v_2, v_3, asfloat(u[((32u + start_byte_offset) / 16u)].xyz));
+}
+
+S v_4(uint start_byte_offset) {
+  int v_5 = asint(u[(start_byte_offset / 16u)][((start_byte_offset % 16u) / 4u)]);
+  float3x3 v_6 = v_1((16u + start_byte_offset));
+  S v_7 = {v_5, v_6, asint(u[((64u + start_byte_offset) / 16u)][(((64u + start_byte_offset) % 16u) / 4u)])};
+  return v_7;
+}
+
+typedef S ary_ret[4];
+ary_ret v_8(uint start_byte_offset) {
+  S a[4] = (S[4])0;
+  {
+    uint v_9 = 0u;
+    v_9 = 0u;
+    while(true) {
+      uint v_10 = v_9;
+      if ((v_10 >= 4u)) {
+        break;
+      }
+      S v_11 = v_4((start_byte_offset + (v_10 * 128u)));
+      a[v_10] = v_11;
+      {
+        v_9 = (v_10 + 1u);
+      }
+      continue;
+    }
+  }
+  S v_12[4] = a;
+  return v_12;
+}
+
+[numthreads(1, 1, 1)]
+void f() {
+  S v_13[4] = v_8(0u);
+  a(v_13);
+  S v_14 = v_4(256u);
+  b(v_14);
+  c(v_1(272u));
+  d(asfloat(u[2u].xyz).zxy);
+  e(asfloat(u[2u].xyz).zxy[0u]);
+}
+
diff --git a/test/tint/buffer/uniform/std140/struct/mat3x3_f32/to_private.wgsl.expected.ir.dxc.hlsl b/test/tint/buffer/uniform/std140/struct/mat3x3_f32/to_private.wgsl.expected.ir.dxc.hlsl
index 3f437dc..9a004a0 100644
--- a/test/tint/buffer/uniform/std140/struct/mat3x3_f32/to_private.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/buffer/uniform/std140/struct/mat3x3_f32/to_private.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,57 @@
-SKIP: FAILED
+struct S {
+  int before;
+  float3x3 m;
+  int after;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Access
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+
+cbuffer cbuffer_u : register(b0) {
+  uint4 u[32];
+};
+static S p[4] = (S[4])0;
+float3x3 v(uint start_byte_offset) {
+  float3 v_1 = asfloat(u[(start_byte_offset / 16u)].xyz);
+  float3 v_2 = asfloat(u[((16u + start_byte_offset) / 16u)].xyz);
+  return float3x3(v_1, v_2, asfloat(u[((32u + start_byte_offset) / 16u)].xyz));
+}
+
+S v_3(uint start_byte_offset) {
+  int v_4 = asint(u[(start_byte_offset / 16u)][((start_byte_offset % 16u) / 4u)]);
+  float3x3 v_5 = v((16u + start_byte_offset));
+  S v_6 = {v_4, v_5, asint(u[((64u + start_byte_offset) / 16u)][(((64u + start_byte_offset) % 16u) / 4u)])};
+  return v_6;
+}
+
+typedef S ary_ret[4];
+ary_ret v_7(uint start_byte_offset) {
+  S a[4] = (S[4])0;
+  {
+    uint v_8 = 0u;
+    v_8 = 0u;
+    while(true) {
+      uint v_9 = v_8;
+      if ((v_9 >= 4u)) {
+        break;
+      }
+      S v_10 = v_3((start_byte_offset + (v_9 * 128u)));
+      a[v_9] = v_10;
+      {
+        v_8 = (v_9 + 1u);
+      }
+      continue;
+    }
+  }
+  S v_11[4] = a;
+  return v_11;
+}
+
+[numthreads(1, 1, 1)]
+void f() {
+  S v_12[4] = v_7(0u);
+  p = v_12;
+  S v_13 = v_3(256u);
+  p[1] = v_13;
+  p[3].m = v(272u);
+  p[1].m[0] = asfloat(u[2u].xyz).zxy;
+}
+
diff --git a/test/tint/buffer/uniform/std140/struct/mat3x3_f32/to_private.wgsl.expected.ir.fxc.hlsl b/test/tint/buffer/uniform/std140/struct/mat3x3_f32/to_private.wgsl.expected.ir.fxc.hlsl
index 3f437dc..9a004a0 100644
--- a/test/tint/buffer/uniform/std140/struct/mat3x3_f32/to_private.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/buffer/uniform/std140/struct/mat3x3_f32/to_private.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,57 @@
-SKIP: FAILED
+struct S {
+  int before;
+  float3x3 m;
+  int after;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Access
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+
+cbuffer cbuffer_u : register(b0) {
+  uint4 u[32];
+};
+static S p[4] = (S[4])0;
+float3x3 v(uint start_byte_offset) {
+  float3 v_1 = asfloat(u[(start_byte_offset / 16u)].xyz);
+  float3 v_2 = asfloat(u[((16u + start_byte_offset) / 16u)].xyz);
+  return float3x3(v_1, v_2, asfloat(u[((32u + start_byte_offset) / 16u)].xyz));
+}
+
+S v_3(uint start_byte_offset) {
+  int v_4 = asint(u[(start_byte_offset / 16u)][((start_byte_offset % 16u) / 4u)]);
+  float3x3 v_5 = v((16u + start_byte_offset));
+  S v_6 = {v_4, v_5, asint(u[((64u + start_byte_offset) / 16u)][(((64u + start_byte_offset) % 16u) / 4u)])};
+  return v_6;
+}
+
+typedef S ary_ret[4];
+ary_ret v_7(uint start_byte_offset) {
+  S a[4] = (S[4])0;
+  {
+    uint v_8 = 0u;
+    v_8 = 0u;
+    while(true) {
+      uint v_9 = v_8;
+      if ((v_9 >= 4u)) {
+        break;
+      }
+      S v_10 = v_3((start_byte_offset + (v_9 * 128u)));
+      a[v_9] = v_10;
+      {
+        v_8 = (v_9 + 1u);
+      }
+      continue;
+    }
+  }
+  S v_11[4] = a;
+  return v_11;
+}
+
+[numthreads(1, 1, 1)]
+void f() {
+  S v_12[4] = v_7(0u);
+  p = v_12;
+  S v_13 = v_3(256u);
+  p[1] = v_13;
+  p[3].m = v(272u);
+  p[1].m[0] = asfloat(u[2u].xyz).zxy;
+}
+
diff --git a/test/tint/buffer/uniform/std140/struct/mat3x3_f32/to_storage.wgsl.expected.ir.dxc.hlsl b/test/tint/buffer/uniform/std140/struct/mat3x3_f32/to_storage.wgsl.expected.ir.dxc.hlsl
index 3f437dc..0a30035 100644
--- a/test/tint/buffer/uniform/std140/struct/mat3x3_f32/to_storage.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/buffer/uniform/std140/struct/mat3x3_f32/to_storage.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,88 @@
-SKIP: FAILED
+struct S {
+  int before;
+  float3x3 m;
+  int after;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Access
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+
+cbuffer cbuffer_u : register(b0) {
+  uint4 u[32];
+};
+RWByteAddressBuffer s : register(u1);
+void v(uint offset, float3x3 obj) {
+  s.Store3((offset + 0u), asuint(obj[0u]));
+  s.Store3((offset + 16u), asuint(obj[1u]));
+  s.Store3((offset + 32u), asuint(obj[2u]));
+}
+
+float3x3 v_1(uint start_byte_offset) {
+  float3 v_2 = asfloat(u[(start_byte_offset / 16u)].xyz);
+  float3 v_3 = asfloat(u[((16u + start_byte_offset) / 16u)].xyz);
+  return float3x3(v_2, v_3, asfloat(u[((32u + start_byte_offset) / 16u)].xyz));
+}
+
+void v_4(uint offset, S obj) {
+  s.Store((offset + 0u), asuint(obj.before));
+  v((offset + 16u), obj.m);
+  s.Store((offset + 64u), asuint(obj.after));
+}
+
+S v_5(uint start_byte_offset) {
+  int v_6 = asint(u[(start_byte_offset / 16u)][((start_byte_offset % 16u) / 4u)]);
+  float3x3 v_7 = v_1((16u + start_byte_offset));
+  S v_8 = {v_6, v_7, asint(u[((64u + start_byte_offset) / 16u)][(((64u + start_byte_offset) % 16u) / 4u)])};
+  return v_8;
+}
+
+void v_9(uint offset, S obj[4]) {
+  {
+    uint v_10 = 0u;
+    v_10 = 0u;
+    while(true) {
+      uint v_11 = v_10;
+      if ((v_11 >= 4u)) {
+        break;
+      }
+      S v_12 = obj[v_11];
+      v_4((offset + (v_11 * 128u)), v_12);
+      {
+        v_10 = (v_11 + 1u);
+      }
+      continue;
+    }
+  }
+}
+
+typedef S ary_ret[4];
+ary_ret v_13(uint start_byte_offset) {
+  S a[4] = (S[4])0;
+  {
+    uint v_14 = 0u;
+    v_14 = 0u;
+    while(true) {
+      uint v_15 = v_14;
+      if ((v_15 >= 4u)) {
+        break;
+      }
+      S v_16 = v_5((start_byte_offset + (v_15 * 128u)));
+      a[v_15] = v_16;
+      {
+        v_14 = (v_15 + 1u);
+      }
+      continue;
+    }
+  }
+  S v_17[4] = a;
+  return v_17;
+}
+
+[numthreads(1, 1, 1)]
+void f() {
+  S v_18[4] = v_13(0u);
+  v_9(0u, v_18);
+  S v_19 = v_5(256u);
+  v_4(128u, v_19);
+  v(400u, v_1(272u));
+  s.Store3(144u, asuint(asfloat(u[2u].xyz).zxy));
+}
+
diff --git a/test/tint/buffer/uniform/std140/struct/mat3x3_f32/to_storage.wgsl.expected.ir.fxc.hlsl b/test/tint/buffer/uniform/std140/struct/mat3x3_f32/to_storage.wgsl.expected.ir.fxc.hlsl
index 3f437dc..0a30035 100644
--- a/test/tint/buffer/uniform/std140/struct/mat3x3_f32/to_storage.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/buffer/uniform/std140/struct/mat3x3_f32/to_storage.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,88 @@
-SKIP: FAILED
+struct S {
+  int before;
+  float3x3 m;
+  int after;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Access
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+
+cbuffer cbuffer_u : register(b0) {
+  uint4 u[32];
+};
+RWByteAddressBuffer s : register(u1);
+void v(uint offset, float3x3 obj) {
+  s.Store3((offset + 0u), asuint(obj[0u]));
+  s.Store3((offset + 16u), asuint(obj[1u]));
+  s.Store3((offset + 32u), asuint(obj[2u]));
+}
+
+float3x3 v_1(uint start_byte_offset) {
+  float3 v_2 = asfloat(u[(start_byte_offset / 16u)].xyz);
+  float3 v_3 = asfloat(u[((16u + start_byte_offset) / 16u)].xyz);
+  return float3x3(v_2, v_3, asfloat(u[((32u + start_byte_offset) / 16u)].xyz));
+}
+
+void v_4(uint offset, S obj) {
+  s.Store((offset + 0u), asuint(obj.before));
+  v((offset + 16u), obj.m);
+  s.Store((offset + 64u), asuint(obj.after));
+}
+
+S v_5(uint start_byte_offset) {
+  int v_6 = asint(u[(start_byte_offset / 16u)][((start_byte_offset % 16u) / 4u)]);
+  float3x3 v_7 = v_1((16u + start_byte_offset));
+  S v_8 = {v_6, v_7, asint(u[((64u + start_byte_offset) / 16u)][(((64u + start_byte_offset) % 16u) / 4u)])};
+  return v_8;
+}
+
+void v_9(uint offset, S obj[4]) {
+  {
+    uint v_10 = 0u;
+    v_10 = 0u;
+    while(true) {
+      uint v_11 = v_10;
+      if ((v_11 >= 4u)) {
+        break;
+      }
+      S v_12 = obj[v_11];
+      v_4((offset + (v_11 * 128u)), v_12);
+      {
+        v_10 = (v_11 + 1u);
+      }
+      continue;
+    }
+  }
+}
+
+typedef S ary_ret[4];
+ary_ret v_13(uint start_byte_offset) {
+  S a[4] = (S[4])0;
+  {
+    uint v_14 = 0u;
+    v_14 = 0u;
+    while(true) {
+      uint v_15 = v_14;
+      if ((v_15 >= 4u)) {
+        break;
+      }
+      S v_16 = v_5((start_byte_offset + (v_15 * 128u)));
+      a[v_15] = v_16;
+      {
+        v_14 = (v_15 + 1u);
+      }
+      continue;
+    }
+  }
+  S v_17[4] = a;
+  return v_17;
+}
+
+[numthreads(1, 1, 1)]
+void f() {
+  S v_18[4] = v_13(0u);
+  v_9(0u, v_18);
+  S v_19 = v_5(256u);
+  v_4(128u, v_19);
+  v(400u, v_1(272u));
+  s.Store3(144u, asuint(asfloat(u[2u].xyz).zxy));
+}
+
diff --git a/test/tint/buffer/uniform/std140/struct/mat3x3_f32/to_workgroup.wgsl.expected.ir.dxc.hlsl b/test/tint/buffer/uniform/std140/struct/mat3x3_f32/to_workgroup.wgsl.expected.ir.dxc.hlsl
index 3f437dc..bc82ecb 100644
--- a/test/tint/buffer/uniform/std140/struct/mat3x3_f32/to_workgroup.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/buffer/uniform/std140/struct/mat3x3_f32/to_workgroup.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,82 @@
-SKIP: FAILED
+struct S {
+  int before;
+  float3x3 m;
+  int after;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Access
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct f_inputs {
+  uint tint_local_index : SV_GroupIndex;
+};
+
+
+cbuffer cbuffer_u : register(b0) {
+  uint4 u[32];
+};
+groupshared S w[4];
+float3x3 v(uint start_byte_offset) {
+  float3 v_1 = asfloat(u[(start_byte_offset / 16u)].xyz);
+  float3 v_2 = asfloat(u[((16u + start_byte_offset) / 16u)].xyz);
+  return float3x3(v_1, v_2, asfloat(u[((32u + start_byte_offset) / 16u)].xyz));
+}
+
+S v_3(uint start_byte_offset) {
+  int v_4 = asint(u[(start_byte_offset / 16u)][((start_byte_offset % 16u) / 4u)]);
+  float3x3 v_5 = v((16u + start_byte_offset));
+  S v_6 = {v_4, v_5, asint(u[((64u + start_byte_offset) / 16u)][(((64u + start_byte_offset) % 16u) / 4u)])};
+  return v_6;
+}
+
+typedef S ary_ret[4];
+ary_ret v_7(uint start_byte_offset) {
+  S a[4] = (S[4])0;
+  {
+    uint v_8 = 0u;
+    v_8 = 0u;
+    while(true) {
+      uint v_9 = v_8;
+      if ((v_9 >= 4u)) {
+        break;
+      }
+      S v_10 = v_3((start_byte_offset + (v_9 * 128u)));
+      a[v_9] = v_10;
+      {
+        v_8 = (v_9 + 1u);
+      }
+      continue;
+    }
+  }
+  S v_11[4] = a;
+  return v_11;
+}
+
+void f_inner(uint tint_local_index) {
+  {
+    uint v_12 = 0u;
+    v_12 = tint_local_index;
+    while(true) {
+      uint v_13 = v_12;
+      if ((v_13 >= 4u)) {
+        break;
+      }
+      S v_14 = (S)0;
+      w[v_13] = v_14;
+      {
+        v_12 = (v_13 + 1u);
+      }
+      continue;
+    }
+  }
+  GroupMemoryBarrierWithGroupSync();
+  S v_15[4] = v_7(0u);
+  w = v_15;
+  S v_16 = v_3(256u);
+  w[1] = v_16;
+  w[3].m = v(272u);
+  w[1].m[0] = asfloat(u[2u].xyz).zxy;
+}
+
+[numthreads(1, 1, 1)]
+void f(f_inputs inputs) {
+  f_inner(inputs.tint_local_index);
+}
+
diff --git a/test/tint/buffer/uniform/std140/struct/mat3x3_f32/to_workgroup.wgsl.expected.ir.fxc.hlsl b/test/tint/buffer/uniform/std140/struct/mat3x3_f32/to_workgroup.wgsl.expected.ir.fxc.hlsl
index 3f437dc..bc82ecb 100644
--- a/test/tint/buffer/uniform/std140/struct/mat3x3_f32/to_workgroup.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/buffer/uniform/std140/struct/mat3x3_f32/to_workgroup.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,82 @@
-SKIP: FAILED
+struct S {
+  int before;
+  float3x3 m;
+  int after;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Access
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct f_inputs {
+  uint tint_local_index : SV_GroupIndex;
+};
+
+
+cbuffer cbuffer_u : register(b0) {
+  uint4 u[32];
+};
+groupshared S w[4];
+float3x3 v(uint start_byte_offset) {
+  float3 v_1 = asfloat(u[(start_byte_offset / 16u)].xyz);
+  float3 v_2 = asfloat(u[((16u + start_byte_offset) / 16u)].xyz);
+  return float3x3(v_1, v_2, asfloat(u[((32u + start_byte_offset) / 16u)].xyz));
+}
+
+S v_3(uint start_byte_offset) {
+  int v_4 = asint(u[(start_byte_offset / 16u)][((start_byte_offset % 16u) / 4u)]);
+  float3x3 v_5 = v((16u + start_byte_offset));
+  S v_6 = {v_4, v_5, asint(u[((64u + start_byte_offset) / 16u)][(((64u + start_byte_offset) % 16u) / 4u)])};
+  return v_6;
+}
+
+typedef S ary_ret[4];
+ary_ret v_7(uint start_byte_offset) {
+  S a[4] = (S[4])0;
+  {
+    uint v_8 = 0u;
+    v_8 = 0u;
+    while(true) {
+      uint v_9 = v_8;
+      if ((v_9 >= 4u)) {
+        break;
+      }
+      S v_10 = v_3((start_byte_offset + (v_9 * 128u)));
+      a[v_9] = v_10;
+      {
+        v_8 = (v_9 + 1u);
+      }
+      continue;
+    }
+  }
+  S v_11[4] = a;
+  return v_11;
+}
+
+void f_inner(uint tint_local_index) {
+  {
+    uint v_12 = 0u;
+    v_12 = tint_local_index;
+    while(true) {
+      uint v_13 = v_12;
+      if ((v_13 >= 4u)) {
+        break;
+      }
+      S v_14 = (S)0;
+      w[v_13] = v_14;
+      {
+        v_12 = (v_13 + 1u);
+      }
+      continue;
+    }
+  }
+  GroupMemoryBarrierWithGroupSync();
+  S v_15[4] = v_7(0u);
+  w = v_15;
+  S v_16 = v_3(256u);
+  w[1] = v_16;
+  w[3].m = v(272u);
+  w[1].m[0] = asfloat(u[2u].xyz).zxy;
+}
+
+[numthreads(1, 1, 1)]
+void f(f_inputs inputs) {
+  f_inner(inputs.tint_local_index);
+}
+
diff --git a/test/tint/buffer/uniform/std140/struct/mat3x4_f16/dynamic_index_via_ptr.wgsl.expected.ir.dxc.hlsl b/test/tint/buffer/uniform/std140/struct/mat3x4_f16/dynamic_index_via_ptr.wgsl.expected.ir.dxc.hlsl
index 3f437dc..faa23e5 100644
--- a/test/tint/buffer/uniform/std140/struct/mat3x4_f16/dynamic_index_via_ptr.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/buffer/uniform/std140/struct/mat3x4_f16/dynamic_index_via_ptr.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,267 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Access
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+
+enable f16;
+
+struct Inner {
+  @size(64)
+  m : mat3x4<f16>,
+}
+
+struct Outer {
+  a : array<Inner, 4>,
+}
+
+@group(0) @binding(0) var<uniform> a : array<Outer, 4>;
+
+var<private> counter = 0;
+
+fn i() -> i32 {
+  counter++;
+  return counter;
+}
+
+@compute @workgroup_size(1)
+fn f() {
+  let p_a = &(a);
+  let p_a_i = &((*(p_a))[i()]);
+  let p_a_i_a = &((*(p_a_i)).a);
+  let p_a_i_a_i = &((*(p_a_i_a))[i()]);
+  let p_a_i_a_i_m = &((*(p_a_i_a_i)).m);
+  let p_a_i_a_i_m_i = &((*(p_a_i_a_i_m))[i()]);
+  let l_a : array<Outer, 4> = *(p_a);
+  let l_a_i : Outer = *(p_a_i);
+  let l_a_i_a : array<Inner, 4> = *(p_a_i_a);
+  let l_a_i_a_i : Inner = *(p_a_i_a_i);
+  let l_a_i_a_i_m : mat3x4<f16> = *(p_a_i_a_i_m);
+  let l_a_i_a_i_m_i : vec4<f16> = *(p_a_i_a_i_m_i);
+  let l_a_i_a_i_m_i_i : f16 = (*(p_a_i_a_i_m_i))[i()];
+}
+
+Failed to generate: :38:24 error: binary: %23 is not in scope
+    %22:u32 = add %21, %23
+                       ^^^
+
+:24:3 note: in block
+  $B3: {
+  ^^^
+
+:60:5 note: %23 declared here
+    %23:u32 = mul %48, 2u
+    ^^^^^^^
+
+:43:24 error: binary: %23 is not in scope
+    %29:u32 = add %28, %23
+                       ^^^
+
+:24:3 note: in block
+  $B3: {
+  ^^^
+
+:60:5 note: %23 declared here
+    %23:u32 = mul %48, 2u
+    ^^^^^^^
+
+:60:5 error: binary: no matching overload for 'operator * (i32, u32)'
+
+9 candidate operators:
+ • 'operator * (T  ✓ , T  ✗ ) -> T' where:
+      ✓  'T' is 'f32', 'i32', 'u32' or 'f16'
+ • 'operator * (vecN<T>  ✗ , T  ✓ ) -> vecN<T>' where:
+      ✓  'T' is 'f32', 'i32', 'u32' or 'f16'
+ • 'operator * (T  ✓ , vecN<T>  ✗ ) -> vecN<T>' where:
+      ✓  'T' is 'f32', 'i32', 'u32' or 'f16'
+ • 'operator * (T  ✗ , matNxM<T>  ✗ ) -> matNxM<T>' where:
+      ✗  'T' is 'f32' or 'f16'
+ • 'operator * (matNxM<T>  ✗ , T  ✗ ) -> matNxM<T>' where:
+      ✗  'T' is 'f32' or 'f16'
+ • 'operator * (vecN<T>  ✗ , vecN<T>  ✗ ) -> vecN<T>' where:
+      ✗  'T' is 'f32', 'i32', 'u32' or 'f16'
+ • 'operator * (matCxR<T>  ✗ , vecC<T>  ✗ ) -> vecR<T>' where:
+      ✗  'T' is 'f32' or 'f16'
+ • 'operator * (vecR<T>  ✗ , matCxR<T>  ✗ ) -> vecC<T>' where:
+      ✗  'T' is 'f32' or 'f16'
+ • 'operator * (matKxR<T>  ✗ , matCxK<T>  ✗ ) -> matCxR<T>' where:
+      ✗  'T' is 'f32' or 'f16'
+
+    %23:u32 = mul %48, 2u
+    ^^^^^^^^^^^^^^^^^^^^^
+
+:24:3 note: in block
+  $B3: {
+  ^^^
+
+note: # Disassembly
+Inner = struct @align(8) {
+  m:mat3x4<f16> @offset(0)
+}
+
+Outer = struct @align(8) {
+  a:array<Inner, 4> @offset(0)
+}
+
+$B1: {  # root
+  %a:ptr<uniform, array<vec4<u32>, 64>, read> = var @binding_point(0, 0)
+  %counter:ptr<private, i32, read_write> = var, 0i
+}
+
+%i = func():i32 {
+  $B2: {
+    %4:i32 = load %counter
+    %5:i32 = add %4, 1i
+    store %counter, %5
+    %6:i32 = load %counter
+    ret %6
+  }
+}
+%f = @compute @workgroup_size(1, 1, 1) func():void {
+  $B3: {
+    %8:i32 = call %i
+    %9:u32 = convert %8
+    %10:u32 = mul 256u, %9
+    %11:i32 = call %i
+    %12:u32 = convert %11
+    %13:u32 = mul 64u, %12
+    %14:i32 = call %i
+    %15:u32 = convert %14
+    %16:u32 = mul 8u, %15
+    %17:array<Outer, 4> = call %18, 0u
+    %l_a:array<Outer, 4> = let %17
+    %20:u32 = add %10, %13
+    %21:u32 = add %20, %16
+    %22:u32 = add %21, %23
+    %24:Outer = call %25, %22
+    %l_a_i:Outer = let %24
+    %27:u32 = add %10, %13
+    %28:u32 = add %27, %16
+    %29:u32 = add %28, %23
+    %30:array<Inner, 4> = call %31, %29
+    %l_a_i_a:array<Inner, 4> = let %30
+    %33:u32 = add %10, %13
+    %34:Inner = call %35, %33
+    %l_a_i_a_i:Inner = let %34
+    %37:u32 = add %10, %13
+    %38:mat3x4<f16> = call %39, %37
+    %l_a_i_a_i_m:mat3x4<f16> = let %38
+    %41:u32 = add %10, %13
+    %42:u32 = add %41, %16
+    %43:u32 = div %42, 16u
+    %44:ptr<uniform, vec4<u32>, read> = access %a, %43
+    %45:vec4<u32> = load %44
+    %46:vec4<f16> = bitcast %45
+    %l_a_i_a_i_m_i:vec4<f16> = let %46
+    %48:i32 = call %i
+    %23:u32 = mul %48, 2u
+    %49:u32 = add %10, %13
+    %50:u32 = add %49, %16
+    %51:u32 = add %50, %23
+    %52:u32 = div %51, 16u
+    %53:ptr<uniform, vec4<u32>, read> = access %a, %52
+    %54:u32 = mod %51, 16u
+    %55:u32 = div %54, 4u
+    %56:u32 = load_vector_element %53, %55
+    %57:u32 = mod %51, 4u
+    %58:bool = eq %57, 0u
+    %59:u32 = hlsl.ternary 16u, 0u, %58
+    %60:u32 = shr %56, %59
+    %61:f32 = hlsl.f16tof32 %60
+    %62:f16 = convert %61
+    %l_a_i_a_i_m_i_i:f16 = let %62
+    ret
+  }
+}
+%35 = func(%start_byte_offset:u32):Inner {
+  $B4: {
+    %65:mat3x4<f16> = call %39, %start_byte_offset
+    %66:Inner = construct %65
+    ret %66
+  }
+}
+%39 = func(%start_byte_offset_1:u32):mat3x4<f16> {  # %start_byte_offset_1: 'start_byte_offset'
+  $B5: {
+    %68:u32 = div %start_byte_offset_1, 16u
+    %69:ptr<uniform, vec4<u32>, read> = access %a, %68
+    %70:vec4<u32> = load %69
+    %71:vec4<f16> = bitcast %70
+    %72:u32 = add 8u, %start_byte_offset_1
+    %73:u32 = div %72, 16u
+    %74:ptr<uniform, vec4<u32>, read> = access %a, %73
+    %75:vec4<u32> = load %74
+    %76:vec4<f16> = bitcast %75
+    %77:u32 = add 16u, %start_byte_offset_1
+    %78:u32 = div %77, 16u
+    %79:ptr<uniform, vec4<u32>, read> = access %a, %78
+    %80:vec4<u32> = load %79
+    %81:vec4<f16> = bitcast %80
+    %82:mat3x4<f16> = construct %71, %76, %81
+    ret %82
+  }
+}
+%31 = func(%start_byte_offset_2:u32):array<Inner, 4> {  # %start_byte_offset_2: 'start_byte_offset'
+  $B6: {
+    %a_1:ptr<function, array<Inner, 4>, read_write> = var, array<Inner, 4>(Inner(mat3x4<f16>(vec4<f16>(0.0h))))  # %a_1: 'a'
+    loop [i: $B7, b: $B8, c: $B9] {  # loop_1
+      $B7: {  # initializer
+        next_iteration 0u  # -> $B8
+      }
+      $B8 (%idx:u32): {  # body
+        %86:bool = gte %idx, 4u
+        if %86 [t: $B10] {  # if_1
+          $B10: {  # true
+            exit_loop  # loop_1
+          }
+        }
+        %87:u32 = mul %idx, 64u
+        %88:u32 = add %start_byte_offset_2, %87
+        %89:ptr<function, Inner, read_write> = access %a_1, %idx
+        %90:Inner = call %35, %88
+        store %89, %90
+        continue  # -> $B9
+      }
+      $B9: {  # continuing
+        %91:u32 = add %idx, 1u
+        next_iteration %91  # -> $B8
+      }
+    }
+    %92:array<Inner, 4> = load %a_1
+    ret %92
+  }
+}
+%25 = func(%start_byte_offset_3:u32):Outer {  # %start_byte_offset_3: 'start_byte_offset'
+  $B11: {
+    %94:array<Inner, 4> = call %31, %start_byte_offset_3
+    %95:Outer = construct %94
+    ret %95
+  }
+}
+%18 = func(%start_byte_offset_4:u32):array<Outer, 4> {  # %start_byte_offset_4: 'start_byte_offset'
+  $B12: {
+    %a_2:ptr<function, array<Outer, 4>, read_write> = var, array<Outer, 4>(Outer(array<Inner, 4>(Inner(mat3x4<f16>(vec4<f16>(0.0h))))))  # %a_2: 'a'
+    loop [i: $B13, b: $B14, c: $B15] {  # loop_2
+      $B13: {  # initializer
+        next_iteration 0u  # -> $B14
+      }
+      $B14 (%idx_1:u32): {  # body
+        %99:bool = gte %idx_1, 4u
+        if %99 [t: $B16] {  # if_2
+          $B16: {  # true
+            exit_loop  # loop_2
+          }
+        }
+        %100:u32 = mul %idx_1, 256u
+        %101:u32 = add %start_byte_offset_4, %100
+        %102:ptr<function, Outer, read_write> = access %a_2, %idx_1
+        %103:Outer = call %25, %101
+        store %102, %103
+        continue  # -> $B15
+      }
+      $B15: {  # continuing
+        %104:u32 = add %idx_1, 1u
+        next_iteration %104  # -> $B14
+      }
+    }
+    %105:array<Outer, 4> = load %a_2
+    ret %105
+  }
+}
+
diff --git a/test/tint/buffer/uniform/std140/struct/mat3x4_f16/dynamic_index_via_ptr.wgsl.expected.ir.fxc.hlsl b/test/tint/buffer/uniform/std140/struct/mat3x4_f16/dynamic_index_via_ptr.wgsl.expected.ir.fxc.hlsl
index 3f437dc..f5c4d07 100644
--- a/test/tint/buffer/uniform/std140/struct/mat3x4_f16/dynamic_index_via_ptr.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/buffer/uniform/std140/struct/mat3x4_f16/dynamic_index_via_ptr.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,281 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Access
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+
+enable f16;
+
+struct Inner {
+  @size(64)
+  m : mat3x4<f16>,
+}
+
+struct Outer {
+  a : array<Inner, 4>,
+}
+
+@group(0) @binding(0) var<uniform> a : array<Outer, 4>;
+
+var<private> counter = 0;
+
+fn i() -> i32 {
+  counter++;
+  return counter;
+}
+
+@compute @workgroup_size(1)
+fn f() {
+  let p_a = &(a);
+  let p_a_i = &((*(p_a))[i()]);
+  let p_a_i_a = &((*(p_a_i)).a);
+  let p_a_i_a_i = &((*(p_a_i_a))[i()]);
+  let p_a_i_a_i_m = &((*(p_a_i_a_i)).m);
+  let p_a_i_a_i_m_i = &((*(p_a_i_a_i_m))[i()]);
+  let l_a : array<Outer, 4> = *(p_a);
+  let l_a_i : Outer = *(p_a_i);
+  let l_a_i_a : array<Inner, 4> = *(p_a_i_a);
+  let l_a_i_a_i : Inner = *(p_a_i_a_i);
+  let l_a_i_a_i_m : mat3x4<f16> = *(p_a_i_a_i_m);
+  let l_a_i_a_i_m_i : vec4<f16> = *(p_a_i_a_i_m_i);
+  let l_a_i_a_i_m_i_i : f16 = (*(p_a_i_a_i_m_i))[i()];
+}
+
+Failed to generate: :38:24 error: binary: %23 is not in scope
+    %22:u32 = add %21, %23
+                       ^^^
+
+:24:3 note: in block
+  $B3: {
+  ^^^
+
+:62:5 note: %23 declared here
+    %23:u32 = mul %50, 2u
+    ^^^^^^^
+
+:43:24 error: binary: %23 is not in scope
+    %29:u32 = add %28, %23
+                       ^^^
+
+:24:3 note: in block
+  $B3: {
+  ^^^
+
+:62:5 note: %23 declared here
+    %23:u32 = mul %50, 2u
+    ^^^^^^^
+
+:51:24 error: binary: %23 is not in scope
+    %39:u32 = add %38, %23
+                       ^^^
+
+:24:3 note: in block
+  $B3: {
+  ^^^
+
+:62:5 note: %23 declared here
+    %23:u32 = mul %50, 2u
+    ^^^^^^^
+
+:62:5 error: binary: no matching overload for 'operator * (i32, u32)'
+
+9 candidate operators:
+ • 'operator * (T  ✓ , T  ✗ ) -> T' where:
+      ✓  'T' is 'f32', 'i32', 'u32' or 'f16'
+ • 'operator * (vecN<T>  ✗ , T  ✓ ) -> vecN<T>' where:
+      ✓  'T' is 'f32', 'i32', 'u32' or 'f16'
+ • 'operator * (T  ✓ , vecN<T>  ✗ ) -> vecN<T>' where:
+      ✓  'T' is 'f32', 'i32', 'u32' or 'f16'
+ • 'operator * (T  ✗ , matNxM<T>  ✗ ) -> matNxM<T>' where:
+      ✗  'T' is 'f32' or 'f16'
+ • 'operator * (matNxM<T>  ✗ , T  ✗ ) -> matNxM<T>' where:
+      ✗  'T' is 'f32' or 'f16'
+ • 'operator * (vecN<T>  ✗ , vecN<T>  ✗ ) -> vecN<T>' where:
+      ✗  'T' is 'f32', 'i32', 'u32' or 'f16'
+ • 'operator * (matCxR<T>  ✗ , vecC<T>  ✗ ) -> vecR<T>' where:
+      ✗  'T' is 'f32' or 'f16'
+ • 'operator * (vecR<T>  ✗ , matCxR<T>  ✗ ) -> vecC<T>' where:
+      ✗  'T' is 'f32' or 'f16'
+ • 'operator * (matKxR<T>  ✗ , matCxK<T>  ✗ ) -> matCxR<T>' where:
+      ✗  'T' is 'f32' or 'f16'
+
+    %23:u32 = mul %50, 2u
+    ^^^^^^^^^^^^^^^^^^^^^
+
+:24:3 note: in block
+  $B3: {
+  ^^^
+
+note: # Disassembly
+Inner = struct @align(8) {
+  m:mat3x4<f16> @offset(0)
+}
+
+Outer = struct @align(8) {
+  a:array<Inner, 4> @offset(0)
+}
+
+$B1: {  # root
+  %a:ptr<uniform, array<vec4<u32>, 64>, read> = var @binding_point(0, 0)
+  %counter:ptr<private, i32, read_write> = var, 0i
+}
+
+%i = func():i32 {
+  $B2: {
+    %4:i32 = load %counter
+    %5:i32 = add %4, 1i
+    store %counter, %5
+    %6:i32 = load %counter
+    ret %6
+  }
+}
+%f = @compute @workgroup_size(1, 1, 1) func():void {
+  $B3: {
+    %8:i32 = call %i
+    %9:u32 = convert %8
+    %10:u32 = mul 256u, %9
+    %11:i32 = call %i
+    %12:u32 = convert %11
+    %13:u32 = mul 64u, %12
+    %14:i32 = call %i
+    %15:u32 = convert %14
+    %16:u32 = mul 8u, %15
+    %17:array<Outer, 4> = call %18, 0u
+    %l_a:array<Outer, 4> = let %17
+    %20:u32 = add %10, %13
+    %21:u32 = add %20, %16
+    %22:u32 = add %21, %23
+    %24:Outer = call %25, %22
+    %l_a_i:Outer = let %24
+    %27:u32 = add %10, %13
+    %28:u32 = add %27, %16
+    %29:u32 = add %28, %23
+    %30:array<Inner, 4> = call %31, %29
+    %l_a_i_a:array<Inner, 4> = let %30
+    %33:u32 = add %10, %13
+    %34:Inner = call %35, %33
+    %l_a_i_a_i:Inner = let %34
+    %37:u32 = add %10, %13
+    %38:u32 = add %37, %16
+    %39:u32 = add %38, %23
+    %40:mat3x4<f16> = call %41, %39
+    %l_a_i_a_i_m:mat3x4<f16> = let %40
+    %43:u32 = add %10, %13
+    %44:u32 = add %43, %16
+    %45:u32 = div %44, 16u
+    %46:ptr<uniform, vec4<u32>, read> = access %a, %45
+    %47:vec4<u32> = load %46
+    %48:vec4<f16> = bitcast %47
+    %l_a_i_a_i_m_i:vec4<f16> = let %48
+    %50:i32 = call %i
+    %23:u32 = mul %50, 2u
+    %51:u32 = add %10, %13
+    %52:u32 = add %51, %16
+    %53:u32 = add %52, %23
+    %54:u32 = div %53, 16u
+    %55:ptr<uniform, vec4<u32>, read> = access %a, %54
+    %56:u32 = mod %53, 16u
+    %57:u32 = div %56, 4u
+    %58:u32 = load_vector_element %55, %57
+    %59:u32 = mod %53, 4u
+    %60:bool = eq %59, 0u
+    %61:u32 = hlsl.ternary 16u, 0u, %60
+    %62:u32 = shr %58, %61
+    %63:f32 = hlsl.f16tof32 %62
+    %64:f16 = convert %63
+    %l_a_i_a_i_m_i_i:f16 = let %64
+    ret
+  }
+}
+%35 = func(%start_byte_offset:u32):Inner {
+  $B4: {
+    %67:mat3x4<f16> = call %41, %start_byte_offset
+    %68:Inner = construct %67
+    ret %68
+  }
+}
+%41 = func(%start_byte_offset_1:u32):mat3x4<f16> {  # %start_byte_offset_1: 'start_byte_offset'
+  $B5: {
+    %70:u32 = div %start_byte_offset_1, 16u
+    %71:ptr<uniform, vec4<u32>, read> = access %a, %70
+    %72:vec4<u32> = load %71
+    %73:vec4<f16> = bitcast %72
+    %74:u32 = add 8u, %start_byte_offset_1
+    %75:u32 = div %74, 16u
+    %76:ptr<uniform, vec4<u32>, read> = access %a, %75
+    %77:vec4<u32> = load %76
+    %78:vec4<f16> = bitcast %77
+    %79:u32 = add 16u, %start_byte_offset_1
+    %80:u32 = div %79, 16u
+    %81:ptr<uniform, vec4<u32>, read> = access %a, %80
+    %82:vec4<u32> = load %81
+    %83:vec4<f16> = bitcast %82
+    %84:mat3x4<f16> = construct %73, %78, %83
+    ret %84
+  }
+}
+%31 = func(%start_byte_offset_2:u32):array<Inner, 4> {  # %start_byte_offset_2: 'start_byte_offset'
+  $B6: {
+    %a_1:ptr<function, array<Inner, 4>, read_write> = var, array<Inner, 4>(Inner(mat3x4<f16>(vec4<f16>(0.0h))))  # %a_1: 'a'
+    loop [i: $B7, b: $B8, c: $B9] {  # loop_1
+      $B7: {  # initializer
+        next_iteration 0u  # -> $B8
+      }
+      $B8 (%idx:u32): {  # body
+        %88:bool = gte %idx, 4u
+        if %88 [t: $B10] {  # if_1
+          $B10: {  # true
+            exit_loop  # loop_1
+          }
+        }
+        %89:u32 = mul %idx, 64u
+        %90:u32 = add %start_byte_offset_2, %89
+        %91:ptr<function, Inner, read_write> = access %a_1, %idx
+        %92:Inner = call %35, %90
+        store %91, %92
+        continue  # -> $B9
+      }
+      $B9: {  # continuing
+        %93:u32 = add %idx, 1u
+        next_iteration %93  # -> $B8
+      }
+    }
+    %94:array<Inner, 4> = load %a_1
+    ret %94
+  }
+}
+%25 = func(%start_byte_offset_3:u32):Outer {  # %start_byte_offset_3: 'start_byte_offset'
+  $B11: {
+    %96:array<Inner, 4> = call %31, %start_byte_offset_3
+    %97:Outer = construct %96
+    ret %97
+  }
+}
+%18 = func(%start_byte_offset_4:u32):array<Outer, 4> {  # %start_byte_offset_4: 'start_byte_offset'
+  $B12: {
+    %a_2:ptr<function, array<Outer, 4>, read_write> = var, array<Outer, 4>(Outer(array<Inner, 4>(Inner(mat3x4<f16>(vec4<f16>(0.0h))))))  # %a_2: 'a'
+    loop [i: $B13, b: $B14, c: $B15] {  # loop_2
+      $B13: {  # initializer
+        next_iteration 0u  # -> $B14
+      }
+      $B14 (%idx_1:u32): {  # body
+        %101:bool = gte %idx_1, 4u
+        if %101 [t: $B16] {  # if_2
+          $B16: {  # true
+            exit_loop  # loop_2
+          }
+        }
+        %102:u32 = mul %idx_1, 256u
+        %103:u32 = add %start_byte_offset_4, %102
+        %104:ptr<function, Outer, read_write> = access %a_2, %idx_1
+        %105:Outer = call %25, %103
+        store %104, %105
+        continue  # -> $B15
+      }
+      $B15: {  # continuing
+        %106:u32 = add %idx_1, 1u
+        next_iteration %106  # -> $B14
+      }
+    }
+    %107:array<Outer, 4> = load %a_2
+    ret %107
+  }
+}
+
diff --git a/test/tint/buffer/uniform/std140/struct/mat3x4_f16/static_index_via_ptr.wgsl.expected.ir.dxc.hlsl b/test/tint/buffer/uniform/std140/struct/mat3x4_f16/static_index_via_ptr.wgsl.expected.ir.dxc.hlsl
index 3f437dc..3a5871f 100644
--- a/test/tint/buffer/uniform/std140/struct/mat3x4_f16/static_index_via_ptr.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/buffer/uniform/std140/struct/mat3x4_f16/static_index_via_ptr.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,98 @@
-SKIP: FAILED
+struct Inner {
+  matrix<float16_t, 3, 4> m;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Access
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct Outer {
+  Inner a[4];
+};
+
+
+cbuffer cbuffer_a : register(b0) {
+  uint4 a[64];
+};
+vector<float16_t, 4> tint_bitcast_to_f16(uint4 src) {
+  uint4 v = src;
+  uint4 mask = (65535u).xxxx;
+  uint4 shift = (16u).xxxx;
+  float4 t_low = f16tof32((v & mask));
+  float4 t_high = f16tof32(((v >> shift) & mask));
+  float16_t v_1 = float16_t(t_low.x);
+  float16_t v_2 = float16_t(t_high.x);
+  float16_t v_3 = float16_t(t_low.y);
+  return vector<float16_t, 4>(v_1, v_2, v_3, float16_t(t_high.y));
+}
+
+matrix<float16_t, 3, 4> v_4(uint start_byte_offset) {
+  vector<float16_t, 4> v_5 = tint_bitcast_to_f16(a[(start_byte_offset / 16u)]);
+  vector<float16_t, 4> v_6 = tint_bitcast_to_f16(a[((8u + start_byte_offset) / 16u)]);
+  return matrix<float16_t, 3, 4>(v_5, v_6, tint_bitcast_to_f16(a[((16u + start_byte_offset) / 16u)]));
+}
+
+Inner v_7(uint start_byte_offset) {
+  Inner v_8 = {v_4(start_byte_offset)};
+  return v_8;
+}
+
+typedef Inner ary_ret[4];
+ary_ret v_9(uint start_byte_offset) {
+  Inner a[4] = (Inner[4])0;
+  {
+    uint v_10 = 0u;
+    v_10 = 0u;
+    while(true) {
+      uint v_11 = v_10;
+      if ((v_11 >= 4u)) {
+        break;
+      }
+      Inner v_12 = v_7((start_byte_offset + (v_11 * 64u)));
+      a[v_11] = v_12;
+      {
+        v_10 = (v_11 + 1u);
+      }
+      continue;
+    }
+  }
+  Inner v_13[4] = a;
+  return v_13;
+}
+
+Outer v_14(uint start_byte_offset) {
+  Inner v_15[4] = v_9(start_byte_offset);
+  Outer v_16 = {v_15};
+  return v_16;
+}
+
+typedef Outer ary_ret_1[4];
+ary_ret_1 v_17(uint start_byte_offset) {
+  Outer a[4] = (Outer[4])0;
+  {
+    uint v_18 = 0u;
+    v_18 = 0u;
+    while(true) {
+      uint v_19 = v_18;
+      if ((v_19 >= 4u)) {
+        break;
+      }
+      Outer v_20 = v_14((start_byte_offset + (v_19 * 256u)));
+      a[v_19] = v_20;
+      {
+        v_18 = (v_19 + 1u);
+      }
+      continue;
+    }
+  }
+  Outer v_21[4] = a;
+  return v_21;
+}
+
+[numthreads(1, 1, 1)]
+void f() {
+  Outer l_a[4] = v_17(0u);
+  Outer l_a_3 = v_14(768u);
+  Inner l_a_3_a[4] = v_9(904u);
+  Inner l_a_3_a_2 = v_7(904u);
+  matrix<float16_t, 3, 4> l_a_3_a_2_m = v_4(904u);
+  vector<float16_t, 4> l_a_3_a_2_m_1 = tint_bitcast_to_f16(a[56u]);
+  float16_t l_a_3_a_2_m_1_0 = float16_t(f16tof32(a[56u].z));
+}
+
diff --git a/test/tint/buffer/uniform/std140/struct/mat3x4_f16/static_index_via_ptr.wgsl.expected.ir.fxc.hlsl b/test/tint/buffer/uniform/std140/struct/mat3x4_f16/static_index_via_ptr.wgsl.expected.ir.fxc.hlsl
index 3f437dc..fed59229 100644
--- a/test/tint/buffer/uniform/std140/struct/mat3x4_f16/static_index_via_ptr.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/buffer/uniform/std140/struct/mat3x4_f16/static_index_via_ptr.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,103 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Access
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct Inner {
+  matrix<float16_t, 3, 4> m;
+};
+
+struct Outer {
+  Inner a[4];
+};
+
+
+cbuffer cbuffer_a : register(b0) {
+  uint4 a[64];
+};
+vector<float16_t, 4> tint_bitcast_to_f16(uint4 src) {
+  uint4 v = src;
+  uint4 mask = (65535u).xxxx;
+  uint4 shift = (16u).xxxx;
+  float4 t_low = f16tof32((v & mask));
+  float4 t_high = f16tof32(((v >> shift) & mask));
+  float16_t v_1 = float16_t(t_low.x);
+  float16_t v_2 = float16_t(t_high.x);
+  float16_t v_3 = float16_t(t_low.y);
+  return vector<float16_t, 4>(v_1, v_2, v_3, float16_t(t_high.y));
+}
+
+matrix<float16_t, 3, 4> v_4(uint start_byte_offset) {
+  vector<float16_t, 4> v_5 = tint_bitcast_to_f16(a[(start_byte_offset / 16u)]);
+  vector<float16_t, 4> v_6 = tint_bitcast_to_f16(a[((8u + start_byte_offset) / 16u)]);
+  return matrix<float16_t, 3, 4>(v_5, v_6, tint_bitcast_to_f16(a[((16u + start_byte_offset) / 16u)]));
+}
+
+Inner v_7(uint start_byte_offset) {
+  Inner v_8 = {v_4(start_byte_offset)};
+  return v_8;
+}
+
+typedef Inner ary_ret[4];
+ary_ret v_9(uint start_byte_offset) {
+  Inner a[4] = (Inner[4])0;
+  {
+    uint v_10 = 0u;
+    v_10 = 0u;
+    while(true) {
+      uint v_11 = v_10;
+      if ((v_11 >= 4u)) {
+        break;
+      }
+      Inner v_12 = v_7((start_byte_offset + (v_11 * 64u)));
+      a[v_11] = v_12;
+      {
+        v_10 = (v_11 + 1u);
+      }
+      continue;
+    }
+  }
+  Inner v_13[4] = a;
+  return v_13;
+}
+
+Outer v_14(uint start_byte_offset) {
+  Inner v_15[4] = v_9(start_byte_offset);
+  Outer v_16 = {v_15};
+  return v_16;
+}
+
+typedef Outer ary_ret_1[4];
+ary_ret_1 v_17(uint start_byte_offset) {
+  Outer a[4] = (Outer[4])0;
+  {
+    uint v_18 = 0u;
+    v_18 = 0u;
+    while(true) {
+      uint v_19 = v_18;
+      if ((v_19 >= 4u)) {
+        break;
+      }
+      Outer v_20 = v_14((start_byte_offset + (v_19 * 256u)));
+      a[v_19] = v_20;
+      {
+        v_18 = (v_19 + 1u);
+      }
+      continue;
+    }
+  }
+  Outer v_21[4] = a;
+  return v_21;
+}
+
+[numthreads(1, 1, 1)]
+void f() {
+  Outer l_a[4] = v_17(0u);
+  Outer l_a_3 = v_14(904u);
+  Inner l_a_3_a[4] = v_9(904u);
+  Inner l_a_3_a_2 = v_7(904u);
+  matrix<float16_t, 3, 4> l_a_3_a_2_m = v_4(904u);
+  vector<float16_t, 4> l_a_3_a_2_m_1 = tint_bitcast_to_f16(a[56u]);
+  float16_t l_a_3_a_2_m_1_0 = float16_t(f16tof32(a[56u].z));
+}
+
+FXC validation failure:
+c:\src\dawn\Shader@0x000002306E60A490(2,10-18): error X3000: syntax error: unexpected token 'float16_t'
+
diff --git a/test/tint/buffer/uniform/std140/struct/mat3x4_f16/to_builtin.wgsl.expected.ir.dxc.hlsl b/test/tint/buffer/uniform/std140/struct/mat3x4_f16/to_builtin.wgsl.expected.ir.dxc.hlsl
index 3f437dc..4e2f1ed 100644
--- a/test/tint/buffer/uniform/std140/struct/mat3x4_f16/to_builtin.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/buffer/uniform/std140/struct/mat3x4_f16/to_builtin.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,29 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Access
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+cbuffer cbuffer_u : register(b0) {
+  uint4 u[32];
+};
+vector<float16_t, 4> tint_bitcast_to_f16(uint4 src) {
+  uint4 v = src;
+  uint4 mask = (65535u).xxxx;
+  uint4 shift = (16u).xxxx;
+  float4 t_low = f16tof32((v & mask));
+  float4 t_high = f16tof32(((v >> shift) & mask));
+  float16_t v_1 = float16_t(t_low.x);
+  float16_t v_2 = float16_t(t_high.x);
+  float16_t v_3 = float16_t(t_low.y);
+  return vector<float16_t, 4>(v_1, v_2, v_3, float16_t(t_high.y));
+}
+
+matrix<float16_t, 3, 4> v_4(uint start_byte_offset) {
+  vector<float16_t, 4> v_5 = tint_bitcast_to_f16(u[(start_byte_offset / 16u)]);
+  vector<float16_t, 4> v_6 = tint_bitcast_to_f16(u[((8u + start_byte_offset) / 16u)]);
+  return matrix<float16_t, 3, 4>(v_5, v_6, tint_bitcast_to_f16(u[((16u + start_byte_offset) / 16u)]));
+}
+
+[numthreads(1, 1, 1)]
+void f() {
+  matrix<float16_t, 4, 3> t = transpose(v_4(264u));
+  float16_t l = length(tint_bitcast_to_f16(u[1u]).ywxz);
+  float16_t a = abs(tint_bitcast_to_f16(u[1u]).ywxz[0u]);
+}
+
diff --git a/test/tint/buffer/uniform/std140/struct/mat3x4_f16/to_builtin.wgsl.expected.ir.fxc.hlsl b/test/tint/buffer/uniform/std140/struct/mat3x4_f16/to_builtin.wgsl.expected.ir.fxc.hlsl
index 3f437dc..6d9df45 100644
--- a/test/tint/buffer/uniform/std140/struct/mat3x4_f16/to_builtin.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/buffer/uniform/std140/struct/mat3x4_f16/to_builtin.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,34 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Access
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+
+cbuffer cbuffer_u : register(b0) {
+  uint4 u[32];
+};
+vector<float16_t, 4> tint_bitcast_to_f16(uint4 src) {
+  uint4 v = src;
+  uint4 mask = (65535u).xxxx;
+  uint4 shift = (16u).xxxx;
+  float4 t_low = f16tof32((v & mask));
+  float4 t_high = f16tof32(((v >> shift) & mask));
+  float16_t v_1 = float16_t(t_low.x);
+  float16_t v_2 = float16_t(t_high.x);
+  float16_t v_3 = float16_t(t_low.y);
+  return vector<float16_t, 4>(v_1, v_2, v_3, float16_t(t_high.y));
+}
+
+matrix<float16_t, 3, 4> v_4(uint start_byte_offset) {
+  vector<float16_t, 4> v_5 = tint_bitcast_to_f16(u[(start_byte_offset / 16u)]);
+  vector<float16_t, 4> v_6 = tint_bitcast_to_f16(u[((8u + start_byte_offset) / 16u)]);
+  return matrix<float16_t, 3, 4>(v_5, v_6, tint_bitcast_to_f16(u[((16u + start_byte_offset) / 16u)]));
+}
+
+[numthreads(1, 1, 1)]
+void f() {
+  matrix<float16_t, 4, 3> t = transpose(v_4(264u));
+  float16_t l = length(tint_bitcast_to_f16(u[1u]).ywxz);
+  float16_t a = abs(tint_bitcast_to_f16(u[1u]).ywxz[0u]);
+}
+
+FXC validation failure:
+c:\src\dawn\Shader@0x000002A0AB58F360(5,8-16): error X3000: syntax error: unexpected token 'float16_t'
+
diff --git a/test/tint/buffer/uniform/std140/struct/mat3x4_f16/to_fn.wgsl.expected.ir.dxc.hlsl b/test/tint/buffer/uniform/std140/struct/mat3x4_f16/to_fn.wgsl.expected.ir.dxc.hlsl
index 3f437dc..6d60d5b 100644
--- a/test/tint/buffer/uniform/std140/struct/mat3x4_f16/to_fn.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/buffer/uniform/std140/struct/mat3x4_f16/to_fn.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,84 @@
-SKIP: FAILED
+struct S {
+  int before;
+  matrix<float16_t, 3, 4> m;
+  int after;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Access
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+
+cbuffer cbuffer_u : register(b0) {
+  uint4 u[32];
+};
+void a(S a_1[4]) {
+}
+
+void b(S s) {
+}
+
+void c(matrix<float16_t, 3, 4> m) {
+}
+
+void d(vector<float16_t, 4> v) {
+}
+
+void e(float16_t f) {
+}
+
+vector<float16_t, 4> tint_bitcast_to_f16(uint4 src) {
+  uint4 v = src;
+  uint4 mask = (65535u).xxxx;
+  uint4 shift = (16u).xxxx;
+  float4 t_low = f16tof32((v & mask));
+  float4 t_high = f16tof32(((v >> shift) & mask));
+  float16_t v_1 = float16_t(t_low.x);
+  float16_t v_2 = float16_t(t_high.x);
+  float16_t v_3 = float16_t(t_low.y);
+  return vector<float16_t, 4>(v_1, v_2, v_3, float16_t(t_high.y));
+}
+
+matrix<float16_t, 3, 4> v_4(uint start_byte_offset) {
+  vector<float16_t, 4> v_5 = tint_bitcast_to_f16(u[(start_byte_offset / 16u)]);
+  vector<float16_t, 4> v_6 = tint_bitcast_to_f16(u[((8u + start_byte_offset) / 16u)]);
+  return matrix<float16_t, 3, 4>(v_5, v_6, tint_bitcast_to_f16(u[((16u + start_byte_offset) / 16u)]));
+}
+
+S v_7(uint start_byte_offset) {
+  int v_8 = asint(u[(start_byte_offset / 16u)][((start_byte_offset % 16u) / 4u)]);
+  matrix<float16_t, 3, 4> v_9 = v_4((8u + start_byte_offset));
+  S v_10 = {v_8, v_9, asint(u[((64u + start_byte_offset) / 16u)][(((64u + start_byte_offset) % 16u) / 4u)])};
+  return v_10;
+}
+
+typedef S ary_ret[4];
+ary_ret v_11(uint start_byte_offset) {
+  S a[4] = (S[4])0;
+  {
+    uint v_12 = 0u;
+    v_12 = 0u;
+    while(true) {
+      uint v_13 = v_12;
+      if ((v_13 >= 4u)) {
+        break;
+      }
+      S v_14 = v_7((start_byte_offset + (v_13 * 128u)));
+      a[v_13] = v_14;
+      {
+        v_12 = (v_13 + 1u);
+      }
+      continue;
+    }
+  }
+  S v_15[4] = a;
+  return v_15;
+}
+
+[numthreads(1, 1, 1)]
+void f() {
+  S v_16[4] = v_11(0u);
+  a(v_16);
+  S v_17 = v_7(256u);
+  b(v_17);
+  c(v_4(264u));
+  d(tint_bitcast_to_f16(u[1u]).ywxz);
+  e(tint_bitcast_to_f16(u[1u]).ywxz[0u]);
+}
+
diff --git a/test/tint/buffer/uniform/std140/struct/mat3x4_f16/to_fn.wgsl.expected.ir.fxc.hlsl b/test/tint/buffer/uniform/std140/struct/mat3x4_f16/to_fn.wgsl.expected.ir.fxc.hlsl
index 3f437dc..3ff762b 100644
--- a/test/tint/buffer/uniform/std140/struct/mat3x4_f16/to_fn.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/buffer/uniform/std140/struct/mat3x4_f16/to_fn.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,89 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Access
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct S {
+  int before;
+  matrix<float16_t, 3, 4> m;
+  int after;
+};
+
+
+cbuffer cbuffer_u : register(b0) {
+  uint4 u[32];
+};
+void a(S a_1[4]) {
+}
+
+void b(S s) {
+}
+
+void c(matrix<float16_t, 3, 4> m) {
+}
+
+void d(vector<float16_t, 4> v) {
+}
+
+void e(float16_t f) {
+}
+
+vector<float16_t, 4> tint_bitcast_to_f16(uint4 src) {
+  uint4 v = src;
+  uint4 mask = (65535u).xxxx;
+  uint4 shift = (16u).xxxx;
+  float4 t_low = f16tof32((v & mask));
+  float4 t_high = f16tof32(((v >> shift) & mask));
+  float16_t v_1 = float16_t(t_low.x);
+  float16_t v_2 = float16_t(t_high.x);
+  float16_t v_3 = float16_t(t_low.y);
+  return vector<float16_t, 4>(v_1, v_2, v_3, float16_t(t_high.y));
+}
+
+matrix<float16_t, 3, 4> v_4(uint start_byte_offset) {
+  vector<float16_t, 4> v_5 = tint_bitcast_to_f16(u[(start_byte_offset / 16u)]);
+  vector<float16_t, 4> v_6 = tint_bitcast_to_f16(u[((8u + start_byte_offset) / 16u)]);
+  return matrix<float16_t, 3, 4>(v_5, v_6, tint_bitcast_to_f16(u[((16u + start_byte_offset) / 16u)]));
+}
+
+S v_7(uint start_byte_offset) {
+  int v_8 = asint(u[(start_byte_offset / 16u)][((start_byte_offset % 16u) / 4u)]);
+  matrix<float16_t, 3, 4> v_9 = v_4((8u + start_byte_offset));
+  S v_10 = {v_8, v_9, asint(u[((64u + start_byte_offset) / 16u)][(((64u + start_byte_offset) % 16u) / 4u)])};
+  return v_10;
+}
+
+typedef S ary_ret[4];
+ary_ret v_11(uint start_byte_offset) {
+  S a[4] = (S[4])0;
+  {
+    uint v_12 = 0u;
+    v_12 = 0u;
+    while(true) {
+      uint v_13 = v_12;
+      if ((v_13 >= 4u)) {
+        break;
+      }
+      S v_14 = v_7((start_byte_offset + (v_13 * 128u)));
+      a[v_13] = v_14;
+      {
+        v_12 = (v_13 + 1u);
+      }
+      continue;
+    }
+  }
+  S v_15[4] = a;
+  return v_15;
+}
+
+[numthreads(1, 1, 1)]
+void f() {
+  S v_16[4] = v_11(0u);
+  a(v_16);
+  S v_17 = v_7(256u);
+  b(v_17);
+  c(v_4(264u));
+  d(tint_bitcast_to_f16(u[1u]).ywxz);
+  e(tint_bitcast_to_f16(u[1u]).ywxz[0u]);
+}
+
+FXC validation failure:
+c:\src\dawn\Shader@0x000001C136026FA0(3,10-18): error X3000: syntax error: unexpected token 'float16_t'
+
diff --git a/test/tint/buffer/uniform/std140/struct/mat3x4_f16/to_private.wgsl.expected.ir.dxc.hlsl b/test/tint/buffer/uniform/std140/struct/mat3x4_f16/to_private.wgsl.expected.ir.dxc.hlsl
index 3f437dc..c802b39 100644
--- a/test/tint/buffer/uniform/std140/struct/mat3x4_f16/to_private.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/buffer/uniform/std140/struct/mat3x4_f16/to_private.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,69 @@
-SKIP: FAILED
+struct S {
+  int before;
+  matrix<float16_t, 3, 4> m;
+  int after;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Access
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+
+cbuffer cbuffer_u : register(b0) {
+  uint4 u[32];
+};
+static S p[4] = (S[4])0;
+vector<float16_t, 4> tint_bitcast_to_f16(uint4 src) {
+  uint4 v = src;
+  uint4 mask = (65535u).xxxx;
+  uint4 shift = (16u).xxxx;
+  float4 t_low = f16tof32((v & mask));
+  float4 t_high = f16tof32(((v >> shift) & mask));
+  float16_t v_1 = float16_t(t_low.x);
+  float16_t v_2 = float16_t(t_high.x);
+  float16_t v_3 = float16_t(t_low.y);
+  return vector<float16_t, 4>(v_1, v_2, v_3, float16_t(t_high.y));
+}
+
+matrix<float16_t, 3, 4> v_4(uint start_byte_offset) {
+  vector<float16_t, 4> v_5 = tint_bitcast_to_f16(u[(start_byte_offset / 16u)]);
+  vector<float16_t, 4> v_6 = tint_bitcast_to_f16(u[((8u + start_byte_offset) / 16u)]);
+  return matrix<float16_t, 3, 4>(v_5, v_6, tint_bitcast_to_f16(u[((16u + start_byte_offset) / 16u)]));
+}
+
+S v_7(uint start_byte_offset) {
+  int v_8 = asint(u[(start_byte_offset / 16u)][((start_byte_offset % 16u) / 4u)]);
+  matrix<float16_t, 3, 4> v_9 = v_4((8u + start_byte_offset));
+  S v_10 = {v_8, v_9, asint(u[((64u + start_byte_offset) / 16u)][(((64u + start_byte_offset) % 16u) / 4u)])};
+  return v_10;
+}
+
+typedef S ary_ret[4];
+ary_ret v_11(uint start_byte_offset) {
+  S a[4] = (S[4])0;
+  {
+    uint v_12 = 0u;
+    v_12 = 0u;
+    while(true) {
+      uint v_13 = v_12;
+      if ((v_13 >= 4u)) {
+        break;
+      }
+      S v_14 = v_7((start_byte_offset + (v_13 * 128u)));
+      a[v_13] = v_14;
+      {
+        v_12 = (v_13 + 1u);
+      }
+      continue;
+    }
+  }
+  S v_15[4] = a;
+  return v_15;
+}
+
+[numthreads(1, 1, 1)]
+void f() {
+  S v_16[4] = v_11(0u);
+  p = v_16;
+  S v_17 = v_7(256u);
+  p[1] = v_17;
+  p[3].m = v_4(264u);
+  p[1].m[0] = tint_bitcast_to_f16(u[1u]).ywxz;
+}
+
diff --git a/test/tint/buffer/uniform/std140/struct/mat3x4_f16/to_private.wgsl.expected.ir.fxc.hlsl b/test/tint/buffer/uniform/std140/struct/mat3x4_f16/to_private.wgsl.expected.ir.fxc.hlsl
index 3f437dc..03ba03c 100644
--- a/test/tint/buffer/uniform/std140/struct/mat3x4_f16/to_private.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/buffer/uniform/std140/struct/mat3x4_f16/to_private.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,74 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Access
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct S {
+  int before;
+  matrix<float16_t, 3, 4> m;
+  int after;
+};
+
+
+cbuffer cbuffer_u : register(b0) {
+  uint4 u[32];
+};
+static S p[4] = (S[4])0;
+vector<float16_t, 4> tint_bitcast_to_f16(uint4 src) {
+  uint4 v = src;
+  uint4 mask = (65535u).xxxx;
+  uint4 shift = (16u).xxxx;
+  float4 t_low = f16tof32((v & mask));
+  float4 t_high = f16tof32(((v >> shift) & mask));
+  float16_t v_1 = float16_t(t_low.x);
+  float16_t v_2 = float16_t(t_high.x);
+  float16_t v_3 = float16_t(t_low.y);
+  return vector<float16_t, 4>(v_1, v_2, v_3, float16_t(t_high.y));
+}
+
+matrix<float16_t, 3, 4> v_4(uint start_byte_offset) {
+  vector<float16_t, 4> v_5 = tint_bitcast_to_f16(u[(start_byte_offset / 16u)]);
+  vector<float16_t, 4> v_6 = tint_bitcast_to_f16(u[((8u + start_byte_offset) / 16u)]);
+  return matrix<float16_t, 3, 4>(v_5, v_6, tint_bitcast_to_f16(u[((16u + start_byte_offset) / 16u)]));
+}
+
+S v_7(uint start_byte_offset) {
+  int v_8 = asint(u[(start_byte_offset / 16u)][((start_byte_offset % 16u) / 4u)]);
+  matrix<float16_t, 3, 4> v_9 = v_4((8u + start_byte_offset));
+  S v_10 = {v_8, v_9, asint(u[((64u + start_byte_offset) / 16u)][(((64u + start_byte_offset) % 16u) / 4u)])};
+  return v_10;
+}
+
+typedef S ary_ret[4];
+ary_ret v_11(uint start_byte_offset) {
+  S a[4] = (S[4])0;
+  {
+    uint v_12 = 0u;
+    v_12 = 0u;
+    while(true) {
+      uint v_13 = v_12;
+      if ((v_13 >= 4u)) {
+        break;
+      }
+      S v_14 = v_7((start_byte_offset + (v_13 * 128u)));
+      a[v_13] = v_14;
+      {
+        v_12 = (v_13 + 1u);
+      }
+      continue;
+    }
+  }
+  S v_15[4] = a;
+  return v_15;
+}
+
+[numthreads(1, 1, 1)]
+void f() {
+  S v_16[4] = v_11(0u);
+  p = v_16;
+  S v_17 = v_7(256u);
+  p[1] = v_17;
+  p[3].m = v_4(264u);
+  p[1].m[0] = tint_bitcast_to_f16(u[1u]).ywxz;
+}
+
+FXC validation failure:
+c:\src\dawn\Shader@0x000002204E8BF3D0(3,10-18): error X3000: syntax error: unexpected token 'float16_t'
+
diff --git a/test/tint/buffer/uniform/std140/struct/mat3x4_f16/to_storage.wgsl.expected.ir.dxc.hlsl b/test/tint/buffer/uniform/std140/struct/mat3x4_f16/to_storage.wgsl.expected.ir.dxc.hlsl
index 3f437dc..65ff649 100644
--- a/test/tint/buffer/uniform/std140/struct/mat3x4_f16/to_storage.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/buffer/uniform/std140/struct/mat3x4_f16/to_storage.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,100 @@
-SKIP: FAILED
+struct S {
+  int before;
+  matrix<float16_t, 3, 4> m;
+  int after;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Access
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+
+cbuffer cbuffer_u : register(b0) {
+  uint4 u[32];
+};
+RWByteAddressBuffer s : register(u1);
+vector<float16_t, 4> tint_bitcast_to_f16(uint4 src) {
+  uint4 v = src;
+  uint4 mask = (65535u).xxxx;
+  uint4 shift = (16u).xxxx;
+  float4 t_low = f16tof32((v & mask));
+  float4 t_high = f16tof32(((v >> shift) & mask));
+  float16_t v_1 = float16_t(t_low.x);
+  float16_t v_2 = float16_t(t_high.x);
+  float16_t v_3 = float16_t(t_low.y);
+  return vector<float16_t, 4>(v_1, v_2, v_3, float16_t(t_high.y));
+}
+
+void v_4(uint offset, matrix<float16_t, 3, 4> obj) {
+  s.Store<vector<float16_t, 4> >((offset + 0u), obj[0u]);
+  s.Store<vector<float16_t, 4> >((offset + 8u), obj[1u]);
+  s.Store<vector<float16_t, 4> >((offset + 16u), obj[2u]);
+}
+
+matrix<float16_t, 3, 4> v_5(uint start_byte_offset) {
+  vector<float16_t, 4> v_6 = tint_bitcast_to_f16(u[(start_byte_offset / 16u)]);
+  vector<float16_t, 4> v_7 = tint_bitcast_to_f16(u[((8u + start_byte_offset) / 16u)]);
+  return matrix<float16_t, 3, 4>(v_6, v_7, tint_bitcast_to_f16(u[((16u + start_byte_offset) / 16u)]));
+}
+
+void v_8(uint offset, S obj) {
+  s.Store((offset + 0u), asuint(obj.before));
+  v_4((offset + 8u), obj.m);
+  s.Store((offset + 64u), asuint(obj.after));
+}
+
+S v_9(uint start_byte_offset) {
+  int v_10 = asint(u[(start_byte_offset / 16u)][((start_byte_offset % 16u) / 4u)]);
+  matrix<float16_t, 3, 4> v_11 = v_5((8u + start_byte_offset));
+  S v_12 = {v_10, v_11, asint(u[((64u + start_byte_offset) / 16u)][(((64u + start_byte_offset) % 16u) / 4u)])};
+  return v_12;
+}
+
+void v_13(uint offset, S obj[4]) {
+  {
+    uint v_14 = 0u;
+    v_14 = 0u;
+    while(true) {
+      uint v_15 = v_14;
+      if ((v_15 >= 4u)) {
+        break;
+      }
+      S v_16 = obj[v_15];
+      v_8((offset + (v_15 * 128u)), v_16);
+      {
+        v_14 = (v_15 + 1u);
+      }
+      continue;
+    }
+  }
+}
+
+typedef S ary_ret[4];
+ary_ret v_17(uint start_byte_offset) {
+  S a[4] = (S[4])0;
+  {
+    uint v_18 = 0u;
+    v_18 = 0u;
+    while(true) {
+      uint v_19 = v_18;
+      if ((v_19 >= 4u)) {
+        break;
+      }
+      S v_20 = v_9((start_byte_offset + (v_19 * 128u)));
+      a[v_19] = v_20;
+      {
+        v_18 = (v_19 + 1u);
+      }
+      continue;
+    }
+  }
+  S v_21[4] = a;
+  return v_21;
+}
+
+[numthreads(1, 1, 1)]
+void f() {
+  S v_22[4] = v_17(0u);
+  v_13(0u, v_22);
+  S v_23 = v_9(256u);
+  v_8(128u, v_23);
+  v_4(392u, v_5(264u));
+  s.Store<vector<float16_t, 4> >(136u, tint_bitcast_to_f16(u[1u]).ywxz);
+}
+
diff --git a/test/tint/buffer/uniform/std140/struct/mat3x4_f16/to_storage.wgsl.expected.ir.fxc.hlsl b/test/tint/buffer/uniform/std140/struct/mat3x4_f16/to_storage.wgsl.expected.ir.fxc.hlsl
index 3f437dc..2b385d7 100644
--- a/test/tint/buffer/uniform/std140/struct/mat3x4_f16/to_storage.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/buffer/uniform/std140/struct/mat3x4_f16/to_storage.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,105 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Access
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct S {
+  int before;
+  matrix<float16_t, 3, 4> m;
+  int after;
+};
+
+
+cbuffer cbuffer_u : register(b0) {
+  uint4 u[32];
+};
+RWByteAddressBuffer s : register(u1);
+vector<float16_t, 4> tint_bitcast_to_f16(uint4 src) {
+  uint4 v = src;
+  uint4 mask = (65535u).xxxx;
+  uint4 shift = (16u).xxxx;
+  float4 t_low = f16tof32((v & mask));
+  float4 t_high = f16tof32(((v >> shift) & mask));
+  float16_t v_1 = float16_t(t_low.x);
+  float16_t v_2 = float16_t(t_high.x);
+  float16_t v_3 = float16_t(t_low.y);
+  return vector<float16_t, 4>(v_1, v_2, v_3, float16_t(t_high.y));
+}
+
+void v_4(uint offset, matrix<float16_t, 3, 4> obj) {
+  s.Store<vector<float16_t, 4> >((offset + 0u), obj[0u]);
+  s.Store<vector<float16_t, 4> >((offset + 8u), obj[1u]);
+  s.Store<vector<float16_t, 4> >((offset + 16u), obj[2u]);
+}
+
+matrix<float16_t, 3, 4> v_5(uint start_byte_offset) {
+  vector<float16_t, 4> v_6 = tint_bitcast_to_f16(u[(start_byte_offset / 16u)]);
+  vector<float16_t, 4> v_7 = tint_bitcast_to_f16(u[((8u + start_byte_offset) / 16u)]);
+  return matrix<float16_t, 3, 4>(v_6, v_7, tint_bitcast_to_f16(u[((16u + start_byte_offset) / 16u)]));
+}
+
+void v_8(uint offset, S obj) {
+  s.Store((offset + 0u), asuint(obj.before));
+  v_4((offset + 8u), obj.m);
+  s.Store((offset + 64u), asuint(obj.after));
+}
+
+S v_9(uint start_byte_offset) {
+  int v_10 = asint(u[(start_byte_offset / 16u)][((start_byte_offset % 16u) / 4u)]);
+  matrix<float16_t, 3, 4> v_11 = v_5((8u + start_byte_offset));
+  S v_12 = {v_10, v_11, asint(u[((64u + start_byte_offset) / 16u)][(((64u + start_byte_offset) % 16u) / 4u)])};
+  return v_12;
+}
+
+void v_13(uint offset, S obj[4]) {
+  {
+    uint v_14 = 0u;
+    v_14 = 0u;
+    while(true) {
+      uint v_15 = v_14;
+      if ((v_15 >= 4u)) {
+        break;
+      }
+      S v_16 = obj[v_15];
+      v_8((offset + (v_15 * 128u)), v_16);
+      {
+        v_14 = (v_15 + 1u);
+      }
+      continue;
+    }
+  }
+}
+
+typedef S ary_ret[4];
+ary_ret v_17(uint start_byte_offset) {
+  S a[4] = (S[4])0;
+  {
+    uint v_18 = 0u;
+    v_18 = 0u;
+    while(true) {
+      uint v_19 = v_18;
+      if ((v_19 >= 4u)) {
+        break;
+      }
+      S v_20 = v_9((start_byte_offset + (v_19 * 128u)));
+      a[v_19] = v_20;
+      {
+        v_18 = (v_19 + 1u);
+      }
+      continue;
+    }
+  }
+  S v_21[4] = a;
+  return v_21;
+}
+
+[numthreads(1, 1, 1)]
+void f() {
+  S v_22[4] = v_17(0u);
+  v_13(0u, v_22);
+  S v_23 = v_9(256u);
+  v_8(128u, v_23);
+  v_4(392u, v_5(264u));
+  s.Store<vector<float16_t, 4> >(136u, tint_bitcast_to_f16(u[1u]).ywxz);
+}
+
+FXC validation failure:
+c:\src\dawn\Shader@0x0000028504122D20(3,10-18): error X3000: syntax error: unexpected token 'float16_t'
+
diff --git a/test/tint/buffer/uniform/std140/struct/mat3x4_f16/to_workgroup.wgsl.expected.ir.dxc.hlsl b/test/tint/buffer/uniform/std140/struct/mat3x4_f16/to_workgroup.wgsl.expected.ir.dxc.hlsl
index 3f437dc..9d1db1c 100644
--- a/test/tint/buffer/uniform/std140/struct/mat3x4_f16/to_workgroup.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/buffer/uniform/std140/struct/mat3x4_f16/to_workgroup.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,94 @@
-SKIP: FAILED
+struct S {
+  int before;
+  matrix<float16_t, 3, 4> m;
+  int after;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Access
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct f_inputs {
+  uint tint_local_index : SV_GroupIndex;
+};
+
+
+cbuffer cbuffer_u : register(b0) {
+  uint4 u[32];
+};
+groupshared S w[4];
+vector<float16_t, 4> tint_bitcast_to_f16(uint4 src) {
+  uint4 v = src;
+  uint4 mask = (65535u).xxxx;
+  uint4 shift = (16u).xxxx;
+  float4 t_low = f16tof32((v & mask));
+  float4 t_high = f16tof32(((v >> shift) & mask));
+  float16_t v_1 = float16_t(t_low.x);
+  float16_t v_2 = float16_t(t_high.x);
+  float16_t v_3 = float16_t(t_low.y);
+  return vector<float16_t, 4>(v_1, v_2, v_3, float16_t(t_high.y));
+}
+
+matrix<float16_t, 3, 4> v_4(uint start_byte_offset) {
+  vector<float16_t, 4> v_5 = tint_bitcast_to_f16(u[(start_byte_offset / 16u)]);
+  vector<float16_t, 4> v_6 = tint_bitcast_to_f16(u[((8u + start_byte_offset) / 16u)]);
+  return matrix<float16_t, 3, 4>(v_5, v_6, tint_bitcast_to_f16(u[((16u + start_byte_offset) / 16u)]));
+}
+
+S v_7(uint start_byte_offset) {
+  int v_8 = asint(u[(start_byte_offset / 16u)][((start_byte_offset % 16u) / 4u)]);
+  matrix<float16_t, 3, 4> v_9 = v_4((8u + start_byte_offset));
+  S v_10 = {v_8, v_9, asint(u[((64u + start_byte_offset) / 16u)][(((64u + start_byte_offset) % 16u) / 4u)])};
+  return v_10;
+}
+
+typedef S ary_ret[4];
+ary_ret v_11(uint start_byte_offset) {
+  S a[4] = (S[4])0;
+  {
+    uint v_12 = 0u;
+    v_12 = 0u;
+    while(true) {
+      uint v_13 = v_12;
+      if ((v_13 >= 4u)) {
+        break;
+      }
+      S v_14 = v_7((start_byte_offset + (v_13 * 128u)));
+      a[v_13] = v_14;
+      {
+        v_12 = (v_13 + 1u);
+      }
+      continue;
+    }
+  }
+  S v_15[4] = a;
+  return v_15;
+}
+
+void f_inner(uint tint_local_index) {
+  {
+    uint v_16 = 0u;
+    v_16 = tint_local_index;
+    while(true) {
+      uint v_17 = v_16;
+      if ((v_17 >= 4u)) {
+        break;
+      }
+      S v_18 = (S)0;
+      w[v_17] = v_18;
+      {
+        v_16 = (v_17 + 1u);
+      }
+      continue;
+    }
+  }
+  GroupMemoryBarrierWithGroupSync();
+  S v_19[4] = v_11(0u);
+  w = v_19;
+  S v_20 = v_7(256u);
+  w[1] = v_20;
+  w[3].m = v_4(264u);
+  w[1].m[0] = tint_bitcast_to_f16(u[1u]).ywxz;
+}
+
+[numthreads(1, 1, 1)]
+void f(f_inputs inputs) {
+  f_inner(inputs.tint_local_index);
+}
+
diff --git a/test/tint/buffer/uniform/std140/struct/mat3x4_f16/to_workgroup.wgsl.expected.ir.fxc.hlsl b/test/tint/buffer/uniform/std140/struct/mat3x4_f16/to_workgroup.wgsl.expected.ir.fxc.hlsl
index 3f437dc..a527f04 100644
--- a/test/tint/buffer/uniform/std140/struct/mat3x4_f16/to_workgroup.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/buffer/uniform/std140/struct/mat3x4_f16/to_workgroup.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,99 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Access
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct S {
+  int before;
+  matrix<float16_t, 3, 4> m;
+  int after;
+};
+
+struct f_inputs {
+  uint tint_local_index : SV_GroupIndex;
+};
+
+
+cbuffer cbuffer_u : register(b0) {
+  uint4 u[32];
+};
+groupshared S w[4];
+vector<float16_t, 4> tint_bitcast_to_f16(uint4 src) {
+  uint4 v = src;
+  uint4 mask = (65535u).xxxx;
+  uint4 shift = (16u).xxxx;
+  float4 t_low = f16tof32((v & mask));
+  float4 t_high = f16tof32(((v >> shift) & mask));
+  float16_t v_1 = float16_t(t_low.x);
+  float16_t v_2 = float16_t(t_high.x);
+  float16_t v_3 = float16_t(t_low.y);
+  return vector<float16_t, 4>(v_1, v_2, v_3, float16_t(t_high.y));
+}
+
+matrix<float16_t, 3, 4> v_4(uint start_byte_offset) {
+  vector<float16_t, 4> v_5 = tint_bitcast_to_f16(u[(start_byte_offset / 16u)]);
+  vector<float16_t, 4> v_6 = tint_bitcast_to_f16(u[((8u + start_byte_offset) / 16u)]);
+  return matrix<float16_t, 3, 4>(v_5, v_6, tint_bitcast_to_f16(u[((16u + start_byte_offset) / 16u)]));
+}
+
+S v_7(uint start_byte_offset) {
+  int v_8 = asint(u[(start_byte_offset / 16u)][((start_byte_offset % 16u) / 4u)]);
+  matrix<float16_t, 3, 4> v_9 = v_4((8u + start_byte_offset));
+  S v_10 = {v_8, v_9, asint(u[((64u + start_byte_offset) / 16u)][(((64u + start_byte_offset) % 16u) / 4u)])};
+  return v_10;
+}
+
+typedef S ary_ret[4];
+ary_ret v_11(uint start_byte_offset) {
+  S a[4] = (S[4])0;
+  {
+    uint v_12 = 0u;
+    v_12 = 0u;
+    while(true) {
+      uint v_13 = v_12;
+      if ((v_13 >= 4u)) {
+        break;
+      }
+      S v_14 = v_7((start_byte_offset + (v_13 * 128u)));
+      a[v_13] = v_14;
+      {
+        v_12 = (v_13 + 1u);
+      }
+      continue;
+    }
+  }
+  S v_15[4] = a;
+  return v_15;
+}
+
+void f_inner(uint tint_local_index) {
+  {
+    uint v_16 = 0u;
+    v_16 = tint_local_index;
+    while(true) {
+      uint v_17 = v_16;
+      if ((v_17 >= 4u)) {
+        break;
+      }
+      S v_18 = (S)0;
+      w[v_17] = v_18;
+      {
+        v_16 = (v_17 + 1u);
+      }
+      continue;
+    }
+  }
+  GroupMemoryBarrierWithGroupSync();
+  S v_19[4] = v_11(0u);
+  w = v_19;
+  S v_20 = v_7(256u);
+  w[1] = v_20;
+  w[3].m = v_4(264u);
+  w[1].m[0] = tint_bitcast_to_f16(u[1u]).ywxz;
+}
+
+[numthreads(1, 1, 1)]
+void f(f_inputs inputs) {
+  f_inner(inputs.tint_local_index);
+}
+
+FXC validation failure:
+c:\src\dawn\Shader@0x00000200319AA840(3,10-18): error X3000: syntax error: unexpected token 'float16_t'
+
diff --git a/test/tint/buffer/uniform/std140/struct/mat3x4_f32/dynamic_index_via_ptr.wgsl.expected.ir.dxc.hlsl b/test/tint/buffer/uniform/std140/struct/mat3x4_f32/dynamic_index_via_ptr.wgsl.expected.ir.dxc.hlsl
index 3f437dc..631a20b 100644
--- a/test/tint/buffer/uniform/std140/struct/mat3x4_f32/dynamic_index_via_ptr.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/buffer/uniform/std140/struct/mat3x4_f32/dynamic_index_via_ptr.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,230 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Access
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+
+struct Inner {
+  @size(64)
+  m : mat3x4<f32>,
+}
+
+struct Outer {
+  a : array<Inner, 4>,
+}
+
+@group(0) @binding(0) var<uniform> a : array<Outer, 4>;
+
+var<private> counter = 0;
+
+fn i() -> i32 {
+  counter++;
+  return counter;
+}
+
+@compute @workgroup_size(1)
+fn f() {
+  let p_a = &(a);
+  let p_a_i = &((*(p_a))[i()]);
+  let p_a_i_a = &((*(p_a_i)).a);
+  let p_a_i_a_i = &((*(p_a_i_a))[i()]);
+  let p_a_i_a_i_m = &((*(p_a_i_a_i)).m);
+  let p_a_i_a_i_m_i = &((*(p_a_i_a_i_m))[i()]);
+  let l_a : array<Outer, 4> = *(p_a);
+  let l_a_i : Outer = *(p_a_i);
+  let l_a_i_a : array<Inner, 4> = *(p_a_i_a);
+  let l_a_i_a_i : Inner = *(p_a_i_a_i);
+  let l_a_i_a_i_m : mat3x4<f32> = *(p_a_i_a_i_m);
+  let l_a_i_a_i_m_i : vec4<f32> = *(p_a_i_a_i_m_i);
+  let l_a_i_a_i_m_i_i : f32 = (*(p_a_i_a_i_m_i))[i()];
+}
+
+Failed to generate: :54:5 error: binary: no matching overload for 'operator * (i32, u32)'
+
+9 candidate operators:
+ • 'operator * (T  ✓ , T  ✗ ) -> T' where:
+      ✓  'T' is 'f32', 'i32', 'u32' or 'f16'
+ • 'operator * (vecN<T>  ✗ , T  ✓ ) -> vecN<T>' where:
+      ✓  'T' is 'f32', 'i32', 'u32' or 'f16'
+ • 'operator * (T  ✓ , vecN<T>  ✗ ) -> vecN<T>' where:
+      ✓  'T' is 'f32', 'i32', 'u32' or 'f16'
+ • 'operator * (T  ✗ , matNxM<T>  ✗ ) -> matNxM<T>' where:
+      ✗  'T' is 'f32' or 'f16'
+ • 'operator * (matNxM<T>  ✗ , T  ✗ ) -> matNxM<T>' where:
+      ✗  'T' is 'f32' or 'f16'
+ • 'operator * (vecN<T>  ✗ , vecN<T>  ✗ ) -> vecN<T>' where:
+      ✗  'T' is 'f32', 'i32', 'u32' or 'f16'
+ • 'operator * (matCxR<T>  ✗ , vecC<T>  ✗ ) -> vecR<T>' where:
+      ✗  'T' is 'f32' or 'f16'
+ • 'operator * (vecR<T>  ✗ , matCxR<T>  ✗ ) -> vecC<T>' where:
+      ✗  'T' is 'f32' or 'f16'
+ • 'operator * (matKxR<T>  ✗ , matCxK<T>  ✗ ) -> matCxR<T>' where:
+      ✗  'T' is 'f32' or 'f16'
+
+    %42:u32 = mul %41, 4u
+    ^^^^^^^^^^^^^^^^^^^^^
+
+:24:3 note: in block
+  $B3: {
+  ^^^
+
+note: # Disassembly
+Inner = struct @align(16) {
+  m:mat3x4<f32> @offset(0)
+}
+
+Outer = struct @align(16) {
+  a:array<Inner, 4> @offset(0)
+}
+
+$B1: {  # root
+  %a:ptr<uniform, array<vec4<u32>, 64>, read> = var @binding_point(0, 0)
+  %counter:ptr<private, i32, read_write> = var, 0i
+}
+
+%i = func():i32 {
+  $B2: {
+    %4:i32 = load %counter
+    %5:i32 = add %4, 1i
+    store %counter, %5
+    %6:i32 = load %counter
+    ret %6
+  }
+}
+%f = @compute @workgroup_size(1, 1, 1) func():void {
+  $B3: {
+    %8:i32 = call %i
+    %9:u32 = convert %8
+    %10:u32 = mul 256u, %9
+    %11:i32 = call %i
+    %12:u32 = convert %11
+    %13:u32 = mul 64u, %12
+    %14:i32 = call %i
+    %15:u32 = convert %14
+    %16:u32 = mul 16u, %15
+    %17:array<Outer, 4> = call %18, 0u
+    %l_a:array<Outer, 4> = let %17
+    %20:Outer = call %21, %10
+    %l_a_i:Outer = let %20
+    %23:array<Inner, 4> = call %24, %10
+    %l_a_i_a:array<Inner, 4> = let %23
+    %26:u32 = add %10, %13
+    %27:Inner = call %28, %26
+    %l_a_i_a_i:Inner = let %27
+    %30:u32 = add %10, %13
+    %31:mat3x4<f32> = call %32, %30
+    %l_a_i_a_i_m:mat3x4<f32> = let %31
+    %34:u32 = add %10, %13
+    %35:u32 = add %34, %16
+    %36:u32 = div %35, 16u
+    %37:ptr<uniform, vec4<u32>, read> = access %a, %36
+    %38:vec4<u32> = load %37
+    %39:vec4<f32> = bitcast %38
+    %l_a_i_a_i_m_i:vec4<f32> = let %39
+    %41:i32 = call %i
+    %42:u32 = mul %41, 4u
+    %43:u32 = add %10, %13
+    %44:u32 = add %43, %16
+    %45:u32 = add %44, %42
+    %46:u32 = div %45, 16u
+    %47:ptr<uniform, vec4<u32>, read> = access %a, %46
+    %48:u32 = mod %45, 16u
+    %49:u32 = div %48, 4u
+    %50:u32 = load_vector_element %47, %49
+    %51:f32 = bitcast %50
+    %l_a_i_a_i_m_i_i:f32 = let %51
+    ret
+  }
+}
+%21 = func(%start_byte_offset:u32):Outer {
+  $B4: {
+    %54:array<Inner, 4> = call %24, %start_byte_offset
+    %55:Outer = construct %54
+    ret %55
+  }
+}
+%24 = func(%start_byte_offset_1:u32):array<Inner, 4> {  # %start_byte_offset_1: 'start_byte_offset'
+  $B5: {
+    %a_1:ptr<function, array<Inner, 4>, read_write> = var, array<Inner, 4>(Inner(mat3x4<f32>(vec4<f32>(0.0f))))  # %a_1: 'a'
+    loop [i: $B6, b: $B7, c: $B8] {  # loop_1
+      $B6: {  # initializer
+        next_iteration 0u  # -> $B7
+      }
+      $B7 (%idx:u32): {  # body
+        %59:bool = gte %idx, 4u
+        if %59 [t: $B9] {  # if_1
+          $B9: {  # true
+            exit_loop  # loop_1
+          }
+        }
+        %60:u32 = mul %idx, 64u
+        %61:u32 = add %start_byte_offset_1, %60
+        %62:ptr<function, Inner, read_write> = access %a_1, %idx
+        %63:Inner = call %28, %61
+        store %62, %63
+        continue  # -> $B8
+      }
+      $B8: {  # continuing
+        %64:u32 = add %idx, 1u
+        next_iteration %64  # -> $B7
+      }
+    }
+    %65:array<Inner, 4> = load %a_1
+    ret %65
+  }
+}
+%28 = func(%start_byte_offset_2:u32):Inner {  # %start_byte_offset_2: 'start_byte_offset'
+  $B10: {
+    %67:mat3x4<f32> = call %32, %start_byte_offset_2
+    %68:Inner = construct %67
+    ret %68
+  }
+}
+%32 = func(%start_byte_offset_3:u32):mat3x4<f32> {  # %start_byte_offset_3: 'start_byte_offset'
+  $B11: {
+    %70:u32 = div %start_byte_offset_3, 16u
+    %71:ptr<uniform, vec4<u32>, read> = access %a, %70
+    %72:vec4<u32> = load %71
+    %73:vec4<f32> = bitcast %72
+    %74:u32 = add 16u, %start_byte_offset_3
+    %75:u32 = div %74, 16u
+    %76:ptr<uniform, vec4<u32>, read> = access %a, %75
+    %77:vec4<u32> = load %76
+    %78:vec4<f32> = bitcast %77
+    %79:u32 = add 32u, %start_byte_offset_3
+    %80:u32 = div %79, 16u
+    %81:ptr<uniform, vec4<u32>, read> = access %a, %80
+    %82:vec4<u32> = load %81
+    %83:vec4<f32> = bitcast %82
+    %84:mat3x4<f32> = construct %73, %78, %83
+    ret %84
+  }
+}
+%18 = func(%start_byte_offset_4:u32):array<Outer, 4> {  # %start_byte_offset_4: 'start_byte_offset'
+  $B12: {
+    %a_2:ptr<function, array<Outer, 4>, read_write> = var, array<Outer, 4>(Outer(array<Inner, 4>(Inner(mat3x4<f32>(vec4<f32>(0.0f))))))  # %a_2: 'a'
+    loop [i: $B13, b: $B14, c: $B15] {  # loop_2
+      $B13: {  # initializer
+        next_iteration 0u  # -> $B14
+      }
+      $B14 (%idx_1:u32): {  # body
+        %88:bool = gte %idx_1, 4u
+        if %88 [t: $B16] {  # if_2
+          $B16: {  # true
+            exit_loop  # loop_2
+          }
+        }
+        %89:u32 = mul %idx_1, 256u
+        %90:u32 = add %start_byte_offset_4, %89
+        %91:ptr<function, Outer, read_write> = access %a_2, %idx_1
+        %92:Outer = call %21, %90
+        store %91, %92
+        continue  # -> $B15
+      }
+      $B15: {  # continuing
+        %93:u32 = add %idx_1, 1u
+        next_iteration %93  # -> $B14
+      }
+    }
+    %94:array<Outer, 4> = load %a_2
+    ret %94
+  }
+}
+
diff --git a/test/tint/buffer/uniform/std140/struct/mat3x4_f32/dynamic_index_via_ptr.wgsl.expected.ir.fxc.hlsl b/test/tint/buffer/uniform/std140/struct/mat3x4_f32/dynamic_index_via_ptr.wgsl.expected.ir.fxc.hlsl
index 3f437dc..77c7dd2 100644
--- a/test/tint/buffer/uniform/std140/struct/mat3x4_f32/dynamic_index_via_ptr.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/buffer/uniform/std140/struct/mat3x4_f32/dynamic_index_via_ptr.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,244 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Access
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+
+struct Inner {
+  @size(64)
+  m : mat3x4<f32>,
+}
+
+struct Outer {
+  a : array<Inner, 4>,
+}
+
+@group(0) @binding(0) var<uniform> a : array<Outer, 4>;
+
+var<private> counter = 0;
+
+fn i() -> i32 {
+  counter++;
+  return counter;
+}
+
+@compute @workgroup_size(1)
+fn f() {
+  let p_a = &(a);
+  let p_a_i = &((*(p_a))[i()]);
+  let p_a_i_a = &((*(p_a_i)).a);
+  let p_a_i_a_i = &((*(p_a_i_a))[i()]);
+  let p_a_i_a_i_m = &((*(p_a_i_a_i)).m);
+  let p_a_i_a_i_m_i = &((*(p_a_i_a_i_m))[i()]);
+  let l_a : array<Outer, 4> = *(p_a);
+  let l_a_i : Outer = *(p_a_i);
+  let l_a_i_a : array<Inner, 4> = *(p_a_i_a);
+  let l_a_i_a_i : Inner = *(p_a_i_a_i);
+  let l_a_i_a_i_m : mat3x4<f32> = *(p_a_i_a_i_m);
+  let l_a_i_a_i_m_i : vec4<f32> = *(p_a_i_a_i_m_i);
+  let l_a_i_a_i_m_i_i : f32 = (*(p_a_i_a_i_m_i))[i()];
+}
+
+Failed to generate: :45:24 error: binary: %33 is not in scope
+    %32:u32 = add %31, %33
+                       ^^^
+
+:24:3 note: in block
+  $B3: {
+  ^^^
+
+:56:5 note: %33 declared here
+    %33:u32 = mul %44, 4u
+    ^^^^^^^
+
+:56:5 error: binary: no matching overload for 'operator * (i32, u32)'
+
+9 candidate operators:
+ • 'operator * (T  ✓ , T  ✗ ) -> T' where:
+      ✓  'T' is 'f32', 'i32', 'u32' or 'f16'
+ • 'operator * (vecN<T>  ✗ , T  ✓ ) -> vecN<T>' where:
+      ✓  'T' is 'f32', 'i32', 'u32' or 'f16'
+ • 'operator * (T  ✓ , vecN<T>  ✗ ) -> vecN<T>' where:
+      ✓  'T' is 'f32', 'i32', 'u32' or 'f16'
+ • 'operator * (T  ✗ , matNxM<T>  ✗ ) -> matNxM<T>' where:
+      ✗  'T' is 'f32' or 'f16'
+ • 'operator * (matNxM<T>  ✗ , T  ✗ ) -> matNxM<T>' where:
+      ✗  'T' is 'f32' or 'f16'
+ • 'operator * (vecN<T>  ✗ , vecN<T>  ✗ ) -> vecN<T>' where:
+      ✗  'T' is 'f32', 'i32', 'u32' or 'f16'
+ • 'operator * (matCxR<T>  ✗ , vecC<T>  ✗ ) -> vecR<T>' where:
+      ✗  'T' is 'f32' or 'f16'
+ • 'operator * (vecR<T>  ✗ , matCxR<T>  ✗ ) -> vecC<T>' where:
+      ✗  'T' is 'f32' or 'f16'
+ • 'operator * (matKxR<T>  ✗ , matCxK<T>  ✗ ) -> matCxR<T>' where:
+      ✗  'T' is 'f32' or 'f16'
+
+    %33:u32 = mul %44, 4u
+    ^^^^^^^^^^^^^^^^^^^^^
+
+:24:3 note: in block
+  $B3: {
+  ^^^
+
+note: # Disassembly
+Inner = struct @align(16) {
+  m:mat3x4<f32> @offset(0)
+}
+
+Outer = struct @align(16) {
+  a:array<Inner, 4> @offset(0)
+}
+
+$B1: {  # root
+  %a:ptr<uniform, array<vec4<u32>, 64>, read> = var @binding_point(0, 0)
+  %counter:ptr<private, i32, read_write> = var, 0i
+}
+
+%i = func():i32 {
+  $B2: {
+    %4:i32 = load %counter
+    %5:i32 = add %4, 1i
+    store %counter, %5
+    %6:i32 = load %counter
+    ret %6
+  }
+}
+%f = @compute @workgroup_size(1, 1, 1) func():void {
+  $B3: {
+    %8:i32 = call %i
+    %9:u32 = convert %8
+    %10:u32 = mul 256u, %9
+    %11:i32 = call %i
+    %12:u32 = convert %11
+    %13:u32 = mul 64u, %12
+    %14:i32 = call %i
+    %15:u32 = convert %14
+    %16:u32 = mul 16u, %15
+    %17:array<Outer, 4> = call %18, 0u
+    %l_a:array<Outer, 4> = let %17
+    %20:Outer = call %21, %10
+    %l_a_i:Outer = let %20
+    %23:array<Inner, 4> = call %24, %10
+    %l_a_i_a:array<Inner, 4> = let %23
+    %26:u32 = add %10, %13
+    %27:Inner = call %28, %26
+    %l_a_i_a_i:Inner = let %27
+    %30:u32 = add %10, %13
+    %31:u32 = add %30, %16
+    %32:u32 = add %31, %33
+    %34:mat3x4<f32> = call %35, %32
+    %l_a_i_a_i_m:mat3x4<f32> = let %34
+    %37:u32 = add %10, %13
+    %38:u32 = add %37, %16
+    %39:u32 = div %38, 16u
+    %40:ptr<uniform, vec4<u32>, read> = access %a, %39
+    %41:vec4<u32> = load %40
+    %42:vec4<f32> = bitcast %41
+    %l_a_i_a_i_m_i:vec4<f32> = let %42
+    %44:i32 = call %i
+    %33:u32 = mul %44, 4u
+    %45:u32 = add %10, %13
+    %46:u32 = add %45, %16
+    %47:u32 = add %46, %33
+    %48:u32 = div %47, 16u
+    %49:ptr<uniform, vec4<u32>, read> = access %a, %48
+    %50:u32 = mod %47, 16u
+    %51:u32 = div %50, 4u
+    %52:u32 = load_vector_element %49, %51
+    %53:f32 = bitcast %52
+    %l_a_i_a_i_m_i_i:f32 = let %53
+    ret
+  }
+}
+%21 = func(%start_byte_offset:u32):Outer {
+  $B4: {
+    %56:array<Inner, 4> = call %24, %start_byte_offset
+    %57:Outer = construct %56
+    ret %57
+  }
+}
+%24 = func(%start_byte_offset_1:u32):array<Inner, 4> {  # %start_byte_offset_1: 'start_byte_offset'
+  $B5: {
+    %a_1:ptr<function, array<Inner, 4>, read_write> = var, array<Inner, 4>(Inner(mat3x4<f32>(vec4<f32>(0.0f))))  # %a_1: 'a'
+    loop [i: $B6, b: $B7, c: $B8] {  # loop_1
+      $B6: {  # initializer
+        next_iteration 0u  # -> $B7
+      }
+      $B7 (%idx:u32): {  # body
+        %61:bool = gte %idx, 4u
+        if %61 [t: $B9] {  # if_1
+          $B9: {  # true
+            exit_loop  # loop_1
+          }
+        }
+        %62:u32 = mul %idx, 64u
+        %63:u32 = add %start_byte_offset_1, %62
+        %64:ptr<function, Inner, read_write> = access %a_1, %idx
+        %65:Inner = call %28, %63
+        store %64, %65
+        continue  # -> $B8
+      }
+      $B8: {  # continuing
+        %66:u32 = add %idx, 1u
+        next_iteration %66  # -> $B7
+      }
+    }
+    %67:array<Inner, 4> = load %a_1
+    ret %67
+  }
+}
+%28 = func(%start_byte_offset_2:u32):Inner {  # %start_byte_offset_2: 'start_byte_offset'
+  $B10: {
+    %69:mat3x4<f32> = call %35, %start_byte_offset_2
+    %70:Inner = construct %69
+    ret %70
+  }
+}
+%35 = func(%start_byte_offset_3:u32):mat3x4<f32> {  # %start_byte_offset_3: 'start_byte_offset'
+  $B11: {
+    %72:u32 = div %start_byte_offset_3, 16u
+    %73:ptr<uniform, vec4<u32>, read> = access %a, %72
+    %74:vec4<u32> = load %73
+    %75:vec4<f32> = bitcast %74
+    %76:u32 = add 16u, %start_byte_offset_3
+    %77:u32 = div %76, 16u
+    %78:ptr<uniform, vec4<u32>, read> = access %a, %77
+    %79:vec4<u32> = load %78
+    %80:vec4<f32> = bitcast %79
+    %81:u32 = add 32u, %start_byte_offset_3
+    %82:u32 = div %81, 16u
+    %83:ptr<uniform, vec4<u32>, read> = access %a, %82
+    %84:vec4<u32> = load %83
+    %85:vec4<f32> = bitcast %84
+    %86:mat3x4<f32> = construct %75, %80, %85
+    ret %86
+  }
+}
+%18 = func(%start_byte_offset_4:u32):array<Outer, 4> {  # %start_byte_offset_4: 'start_byte_offset'
+  $B12: {
+    %a_2:ptr<function, array<Outer, 4>, read_write> = var, array<Outer, 4>(Outer(array<Inner, 4>(Inner(mat3x4<f32>(vec4<f32>(0.0f))))))  # %a_2: 'a'
+    loop [i: $B13, b: $B14, c: $B15] {  # loop_2
+      $B13: {  # initializer
+        next_iteration 0u  # -> $B14
+      }
+      $B14 (%idx_1:u32): {  # body
+        %90:bool = gte %idx_1, 4u
+        if %90 [t: $B16] {  # if_2
+          $B16: {  # true
+            exit_loop  # loop_2
+          }
+        }
+        %91:u32 = mul %idx_1, 256u
+        %92:u32 = add %start_byte_offset_4, %91
+        %93:ptr<function, Outer, read_write> = access %a_2, %idx_1
+        %94:Outer = call %21, %92
+        store %93, %94
+        continue  # -> $B15
+      }
+      $B15: {  # continuing
+        %95:u32 = add %idx_1, 1u
+        next_iteration %95  # -> $B14
+      }
+    }
+    %96:array<Outer, 4> = load %a_2
+    ret %96
+  }
+}
+
diff --git a/test/tint/buffer/uniform/std140/struct/mat3x4_f32/static_index_via_ptr.wgsl.expected.ir.dxc.hlsl b/test/tint/buffer/uniform/std140/struct/mat3x4_f32/static_index_via_ptr.wgsl.expected.ir.dxc.hlsl
index 3f437dc..f5e1e7a 100644
--- a/test/tint/buffer/uniform/std140/struct/mat3x4_f32/static_index_via_ptr.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/buffer/uniform/std140/struct/mat3x4_f32/static_index_via_ptr.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,86 @@
-SKIP: FAILED
+struct Inner {
+  float3x4 m;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Access
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct Outer {
+  Inner a[4];
+};
+
+
+cbuffer cbuffer_a : register(b0) {
+  uint4 a[64];
+};
+float3x4 v(uint start_byte_offset) {
+  float4 v_1 = asfloat(a[(start_byte_offset / 16u)]);
+  float4 v_2 = asfloat(a[((16u + start_byte_offset) / 16u)]);
+  return float3x4(v_1, v_2, asfloat(a[((32u + start_byte_offset) / 16u)]));
+}
+
+Inner v_3(uint start_byte_offset) {
+  Inner v_4 = {v(start_byte_offset)};
+  return v_4;
+}
+
+typedef Inner ary_ret[4];
+ary_ret v_5(uint start_byte_offset) {
+  Inner a[4] = (Inner[4])0;
+  {
+    uint v_6 = 0u;
+    v_6 = 0u;
+    while(true) {
+      uint v_7 = v_6;
+      if ((v_7 >= 4u)) {
+        break;
+      }
+      Inner v_8 = v_3((start_byte_offset + (v_7 * 64u)));
+      a[v_7] = v_8;
+      {
+        v_6 = (v_7 + 1u);
+      }
+      continue;
+    }
+  }
+  Inner v_9[4] = a;
+  return v_9;
+}
+
+Outer v_10(uint start_byte_offset) {
+  Inner v_11[4] = v_5(start_byte_offset);
+  Outer v_12 = {v_11};
+  return v_12;
+}
+
+typedef Outer ary_ret_1[4];
+ary_ret_1 v_13(uint start_byte_offset) {
+  Outer a[4] = (Outer[4])0;
+  {
+    uint v_14 = 0u;
+    v_14 = 0u;
+    while(true) {
+      uint v_15 = v_14;
+      if ((v_15 >= 4u)) {
+        break;
+      }
+      Outer v_16 = v_10((start_byte_offset + (v_15 * 256u)));
+      a[v_15] = v_16;
+      {
+        v_14 = (v_15 + 1u);
+      }
+      continue;
+    }
+  }
+  Outer v_17[4] = a;
+  return v_17;
+}
+
+[numthreads(1, 1, 1)]
+void f() {
+  Outer l_a[4] = v_13(0u);
+  Outer l_a_3 = v_10(912u);
+  Inner l_a_3_a[4] = v_5(912u);
+  Inner l_a_3_a_2 = v_3(912u);
+  float3x4 l_a_3_a_2_m = v(896u);
+  float4 l_a_3_a_2_m_1 = asfloat(a[57u]);
+  float l_a_3_a_2_m_1_0 = asfloat(a[57u].x);
+}
+
diff --git a/test/tint/buffer/uniform/std140/struct/mat3x4_f32/static_index_via_ptr.wgsl.expected.ir.fxc.hlsl b/test/tint/buffer/uniform/std140/struct/mat3x4_f32/static_index_via_ptr.wgsl.expected.ir.fxc.hlsl
index 3f437dc..f5e1e7a 100644
--- a/test/tint/buffer/uniform/std140/struct/mat3x4_f32/static_index_via_ptr.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/buffer/uniform/std140/struct/mat3x4_f32/static_index_via_ptr.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,86 @@
-SKIP: FAILED
+struct Inner {
+  float3x4 m;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Access
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct Outer {
+  Inner a[4];
+};
+
+
+cbuffer cbuffer_a : register(b0) {
+  uint4 a[64];
+};
+float3x4 v(uint start_byte_offset) {
+  float4 v_1 = asfloat(a[(start_byte_offset / 16u)]);
+  float4 v_2 = asfloat(a[((16u + start_byte_offset) / 16u)]);
+  return float3x4(v_1, v_2, asfloat(a[((32u + start_byte_offset) / 16u)]));
+}
+
+Inner v_3(uint start_byte_offset) {
+  Inner v_4 = {v(start_byte_offset)};
+  return v_4;
+}
+
+typedef Inner ary_ret[4];
+ary_ret v_5(uint start_byte_offset) {
+  Inner a[4] = (Inner[4])0;
+  {
+    uint v_6 = 0u;
+    v_6 = 0u;
+    while(true) {
+      uint v_7 = v_6;
+      if ((v_7 >= 4u)) {
+        break;
+      }
+      Inner v_8 = v_3((start_byte_offset + (v_7 * 64u)));
+      a[v_7] = v_8;
+      {
+        v_6 = (v_7 + 1u);
+      }
+      continue;
+    }
+  }
+  Inner v_9[4] = a;
+  return v_9;
+}
+
+Outer v_10(uint start_byte_offset) {
+  Inner v_11[4] = v_5(start_byte_offset);
+  Outer v_12 = {v_11};
+  return v_12;
+}
+
+typedef Outer ary_ret_1[4];
+ary_ret_1 v_13(uint start_byte_offset) {
+  Outer a[4] = (Outer[4])0;
+  {
+    uint v_14 = 0u;
+    v_14 = 0u;
+    while(true) {
+      uint v_15 = v_14;
+      if ((v_15 >= 4u)) {
+        break;
+      }
+      Outer v_16 = v_10((start_byte_offset + (v_15 * 256u)));
+      a[v_15] = v_16;
+      {
+        v_14 = (v_15 + 1u);
+      }
+      continue;
+    }
+  }
+  Outer v_17[4] = a;
+  return v_17;
+}
+
+[numthreads(1, 1, 1)]
+void f() {
+  Outer l_a[4] = v_13(0u);
+  Outer l_a_3 = v_10(912u);
+  Inner l_a_3_a[4] = v_5(912u);
+  Inner l_a_3_a_2 = v_3(912u);
+  float3x4 l_a_3_a_2_m = v(896u);
+  float4 l_a_3_a_2_m_1 = asfloat(a[57u]);
+  float l_a_3_a_2_m_1_0 = asfloat(a[57u].x);
+}
+
diff --git a/test/tint/buffer/uniform/std140/struct/mat3x4_f32/to_builtin.wgsl.expected.ir.dxc.hlsl b/test/tint/buffer/uniform/std140/struct/mat3x4_f32/to_builtin.wgsl.expected.ir.dxc.hlsl
index 3f437dc..21a587f 100644
--- a/test/tint/buffer/uniform/std140/struct/mat3x4_f32/to_builtin.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/buffer/uniform/std140/struct/mat3x4_f32/to_builtin.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,17 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Access
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+cbuffer cbuffer_u : register(b0) {
+  uint4 u[32];
+};
+float3x4 v(uint start_byte_offset) {
+  float4 v_1 = asfloat(u[(start_byte_offset / 16u)]);
+  float4 v_2 = asfloat(u[((16u + start_byte_offset) / 16u)]);
+  return float3x4(v_1, v_2, asfloat(u[((32u + start_byte_offset) / 16u)]));
+}
+
+[numthreads(1, 1, 1)]
+void f() {
+  float4x3 t = transpose(v(272u));
+  float l = length(asfloat(u[2u]).ywxz);
+  float a = abs(asfloat(u[2u]).ywxz[0u]);
+}
+
diff --git a/test/tint/buffer/uniform/std140/struct/mat3x4_f32/to_builtin.wgsl.expected.ir.fxc.hlsl b/test/tint/buffer/uniform/std140/struct/mat3x4_f32/to_builtin.wgsl.expected.ir.fxc.hlsl
index 3f437dc..21a587f 100644
--- a/test/tint/buffer/uniform/std140/struct/mat3x4_f32/to_builtin.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/buffer/uniform/std140/struct/mat3x4_f32/to_builtin.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,17 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Access
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+cbuffer cbuffer_u : register(b0) {
+  uint4 u[32];
+};
+float3x4 v(uint start_byte_offset) {
+  float4 v_1 = asfloat(u[(start_byte_offset / 16u)]);
+  float4 v_2 = asfloat(u[((16u + start_byte_offset) / 16u)]);
+  return float3x4(v_1, v_2, asfloat(u[((32u + start_byte_offset) / 16u)]));
+}
+
+[numthreads(1, 1, 1)]
+void f() {
+  float4x3 t = transpose(v(272u));
+  float l = length(asfloat(u[2u]).ywxz);
+  float a = abs(asfloat(u[2u]).ywxz[0u]);
+}
+
diff --git a/test/tint/buffer/uniform/std140/struct/mat3x4_f32/to_fn.wgsl.expected.ir.dxc.hlsl b/test/tint/buffer/uniform/std140/struct/mat3x4_f32/to_fn.wgsl.expected.ir.dxc.hlsl
index 3f437dc..c8a3c59 100644
--- a/test/tint/buffer/uniform/std140/struct/mat3x4_f32/to_fn.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/buffer/uniform/std140/struct/mat3x4_f32/to_fn.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,72 @@
-SKIP: FAILED
+struct S {
+  int before;
+  float3x4 m;
+  int after;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Access
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+
+cbuffer cbuffer_u : register(b0) {
+  uint4 u[32];
+};
+void a(S a_1[4]) {
+}
+
+void b(S s) {
+}
+
+void c(float3x4 m) {
+}
+
+void d(float4 v) {
+}
+
+void e(float f) {
+}
+
+float3x4 v_1(uint start_byte_offset) {
+  float4 v_2 = asfloat(u[(start_byte_offset / 16u)]);
+  float4 v_3 = asfloat(u[((16u + start_byte_offset) / 16u)]);
+  return float3x4(v_2, v_3, asfloat(u[((32u + start_byte_offset) / 16u)]));
+}
+
+S v_4(uint start_byte_offset) {
+  int v_5 = asint(u[(start_byte_offset / 16u)][((start_byte_offset % 16u) / 4u)]);
+  float3x4 v_6 = v_1((16u + start_byte_offset));
+  S v_7 = {v_5, v_6, asint(u[((64u + start_byte_offset) / 16u)][(((64u + start_byte_offset) % 16u) / 4u)])};
+  return v_7;
+}
+
+typedef S ary_ret[4];
+ary_ret v_8(uint start_byte_offset) {
+  S a[4] = (S[4])0;
+  {
+    uint v_9 = 0u;
+    v_9 = 0u;
+    while(true) {
+      uint v_10 = v_9;
+      if ((v_10 >= 4u)) {
+        break;
+      }
+      S v_11 = v_4((start_byte_offset + (v_10 * 128u)));
+      a[v_10] = v_11;
+      {
+        v_9 = (v_10 + 1u);
+      }
+      continue;
+    }
+  }
+  S v_12[4] = a;
+  return v_12;
+}
+
+[numthreads(1, 1, 1)]
+void f() {
+  S v_13[4] = v_8(0u);
+  a(v_13);
+  S v_14 = v_4(256u);
+  b(v_14);
+  c(v_1(272u));
+  d(asfloat(u[2u]).ywxz);
+  e(asfloat(u[2u]).ywxz[0u]);
+}
+
diff --git a/test/tint/buffer/uniform/std140/struct/mat3x4_f32/to_fn.wgsl.expected.ir.fxc.hlsl b/test/tint/buffer/uniform/std140/struct/mat3x4_f32/to_fn.wgsl.expected.ir.fxc.hlsl
index 3f437dc..c8a3c59 100644
--- a/test/tint/buffer/uniform/std140/struct/mat3x4_f32/to_fn.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/buffer/uniform/std140/struct/mat3x4_f32/to_fn.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,72 @@
-SKIP: FAILED
+struct S {
+  int before;
+  float3x4 m;
+  int after;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Access
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+
+cbuffer cbuffer_u : register(b0) {
+  uint4 u[32];
+};
+void a(S a_1[4]) {
+}
+
+void b(S s) {
+}
+
+void c(float3x4 m) {
+}
+
+void d(float4 v) {
+}
+
+void e(float f) {
+}
+
+float3x4 v_1(uint start_byte_offset) {
+  float4 v_2 = asfloat(u[(start_byte_offset / 16u)]);
+  float4 v_3 = asfloat(u[((16u + start_byte_offset) / 16u)]);
+  return float3x4(v_2, v_3, asfloat(u[((32u + start_byte_offset) / 16u)]));
+}
+
+S v_4(uint start_byte_offset) {
+  int v_5 = asint(u[(start_byte_offset / 16u)][((start_byte_offset % 16u) / 4u)]);
+  float3x4 v_6 = v_1((16u + start_byte_offset));
+  S v_7 = {v_5, v_6, asint(u[((64u + start_byte_offset) / 16u)][(((64u + start_byte_offset) % 16u) / 4u)])};
+  return v_7;
+}
+
+typedef S ary_ret[4];
+ary_ret v_8(uint start_byte_offset) {
+  S a[4] = (S[4])0;
+  {
+    uint v_9 = 0u;
+    v_9 = 0u;
+    while(true) {
+      uint v_10 = v_9;
+      if ((v_10 >= 4u)) {
+        break;
+      }
+      S v_11 = v_4((start_byte_offset + (v_10 * 128u)));
+      a[v_10] = v_11;
+      {
+        v_9 = (v_10 + 1u);
+      }
+      continue;
+    }
+  }
+  S v_12[4] = a;
+  return v_12;
+}
+
+[numthreads(1, 1, 1)]
+void f() {
+  S v_13[4] = v_8(0u);
+  a(v_13);
+  S v_14 = v_4(256u);
+  b(v_14);
+  c(v_1(272u));
+  d(asfloat(u[2u]).ywxz);
+  e(asfloat(u[2u]).ywxz[0u]);
+}
+
diff --git a/test/tint/buffer/uniform/std140/struct/mat3x4_f32/to_private.wgsl.expected.ir.dxc.hlsl b/test/tint/buffer/uniform/std140/struct/mat3x4_f32/to_private.wgsl.expected.ir.dxc.hlsl
index 3f437dc..65f1935 100644
--- a/test/tint/buffer/uniform/std140/struct/mat3x4_f32/to_private.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/buffer/uniform/std140/struct/mat3x4_f32/to_private.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,57 @@
-SKIP: FAILED
+struct S {
+  int before;
+  float3x4 m;
+  int after;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Access
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+
+cbuffer cbuffer_u : register(b0) {
+  uint4 u[32];
+};
+static S p[4] = (S[4])0;
+float3x4 v(uint start_byte_offset) {
+  float4 v_1 = asfloat(u[(start_byte_offset / 16u)]);
+  float4 v_2 = asfloat(u[((16u + start_byte_offset) / 16u)]);
+  return float3x4(v_1, v_2, asfloat(u[((32u + start_byte_offset) / 16u)]));
+}
+
+S v_3(uint start_byte_offset) {
+  int v_4 = asint(u[(start_byte_offset / 16u)][((start_byte_offset % 16u) / 4u)]);
+  float3x4 v_5 = v((16u + start_byte_offset));
+  S v_6 = {v_4, v_5, asint(u[((64u + start_byte_offset) / 16u)][(((64u + start_byte_offset) % 16u) / 4u)])};
+  return v_6;
+}
+
+typedef S ary_ret[4];
+ary_ret v_7(uint start_byte_offset) {
+  S a[4] = (S[4])0;
+  {
+    uint v_8 = 0u;
+    v_8 = 0u;
+    while(true) {
+      uint v_9 = v_8;
+      if ((v_9 >= 4u)) {
+        break;
+      }
+      S v_10 = v_3((start_byte_offset + (v_9 * 128u)));
+      a[v_9] = v_10;
+      {
+        v_8 = (v_9 + 1u);
+      }
+      continue;
+    }
+  }
+  S v_11[4] = a;
+  return v_11;
+}
+
+[numthreads(1, 1, 1)]
+void f() {
+  S v_12[4] = v_7(0u);
+  p = v_12;
+  S v_13 = v_3(256u);
+  p[1] = v_13;
+  p[3].m = v(272u);
+  p[1].m[0] = asfloat(u[2u]).ywxz;
+}
+
diff --git a/test/tint/buffer/uniform/std140/struct/mat3x4_f32/to_private.wgsl.expected.ir.fxc.hlsl b/test/tint/buffer/uniform/std140/struct/mat3x4_f32/to_private.wgsl.expected.ir.fxc.hlsl
index 3f437dc..65f1935 100644
--- a/test/tint/buffer/uniform/std140/struct/mat3x4_f32/to_private.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/buffer/uniform/std140/struct/mat3x4_f32/to_private.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,57 @@
-SKIP: FAILED
+struct S {
+  int before;
+  float3x4 m;
+  int after;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Access
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+
+cbuffer cbuffer_u : register(b0) {
+  uint4 u[32];
+};
+static S p[4] = (S[4])0;
+float3x4 v(uint start_byte_offset) {
+  float4 v_1 = asfloat(u[(start_byte_offset / 16u)]);
+  float4 v_2 = asfloat(u[((16u + start_byte_offset) / 16u)]);
+  return float3x4(v_1, v_2, asfloat(u[((32u + start_byte_offset) / 16u)]));
+}
+
+S v_3(uint start_byte_offset) {
+  int v_4 = asint(u[(start_byte_offset / 16u)][((start_byte_offset % 16u) / 4u)]);
+  float3x4 v_5 = v((16u + start_byte_offset));
+  S v_6 = {v_4, v_5, asint(u[((64u + start_byte_offset) / 16u)][(((64u + start_byte_offset) % 16u) / 4u)])};
+  return v_6;
+}
+
+typedef S ary_ret[4];
+ary_ret v_7(uint start_byte_offset) {
+  S a[4] = (S[4])0;
+  {
+    uint v_8 = 0u;
+    v_8 = 0u;
+    while(true) {
+      uint v_9 = v_8;
+      if ((v_9 >= 4u)) {
+        break;
+      }
+      S v_10 = v_3((start_byte_offset + (v_9 * 128u)));
+      a[v_9] = v_10;
+      {
+        v_8 = (v_9 + 1u);
+      }
+      continue;
+    }
+  }
+  S v_11[4] = a;
+  return v_11;
+}
+
+[numthreads(1, 1, 1)]
+void f() {
+  S v_12[4] = v_7(0u);
+  p = v_12;
+  S v_13 = v_3(256u);
+  p[1] = v_13;
+  p[3].m = v(272u);
+  p[1].m[0] = asfloat(u[2u]).ywxz;
+}
+
diff --git a/test/tint/buffer/uniform/std140/struct/mat3x4_f32/to_storage.wgsl.expected.ir.dxc.hlsl b/test/tint/buffer/uniform/std140/struct/mat3x4_f32/to_storage.wgsl.expected.ir.dxc.hlsl
index 3f437dc..2a8a444 100644
--- a/test/tint/buffer/uniform/std140/struct/mat3x4_f32/to_storage.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/buffer/uniform/std140/struct/mat3x4_f32/to_storage.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,88 @@
-SKIP: FAILED
+struct S {
+  int before;
+  float3x4 m;
+  int after;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Access
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+
+cbuffer cbuffer_u : register(b0) {
+  uint4 u[32];
+};
+RWByteAddressBuffer s : register(u1);
+void v(uint offset, float3x4 obj) {
+  s.Store4((offset + 0u), asuint(obj[0u]));
+  s.Store4((offset + 16u), asuint(obj[1u]));
+  s.Store4((offset + 32u), asuint(obj[2u]));
+}
+
+float3x4 v_1(uint start_byte_offset) {
+  float4 v_2 = asfloat(u[(start_byte_offset / 16u)]);
+  float4 v_3 = asfloat(u[((16u + start_byte_offset) / 16u)]);
+  return float3x4(v_2, v_3, asfloat(u[((32u + start_byte_offset) / 16u)]));
+}
+
+void v_4(uint offset, S obj) {
+  s.Store((offset + 0u), asuint(obj.before));
+  v((offset + 16u), obj.m);
+  s.Store((offset + 64u), asuint(obj.after));
+}
+
+S v_5(uint start_byte_offset) {
+  int v_6 = asint(u[(start_byte_offset / 16u)][((start_byte_offset % 16u) / 4u)]);
+  float3x4 v_7 = v_1((16u + start_byte_offset));
+  S v_8 = {v_6, v_7, asint(u[((64u + start_byte_offset) / 16u)][(((64u + start_byte_offset) % 16u) / 4u)])};
+  return v_8;
+}
+
+void v_9(uint offset, S obj[4]) {
+  {
+    uint v_10 = 0u;
+    v_10 = 0u;
+    while(true) {
+      uint v_11 = v_10;
+      if ((v_11 >= 4u)) {
+        break;
+      }
+      S v_12 = obj[v_11];
+      v_4((offset + (v_11 * 128u)), v_12);
+      {
+        v_10 = (v_11 + 1u);
+      }
+      continue;
+    }
+  }
+}
+
+typedef S ary_ret[4];
+ary_ret v_13(uint start_byte_offset) {
+  S a[4] = (S[4])0;
+  {
+    uint v_14 = 0u;
+    v_14 = 0u;
+    while(true) {
+      uint v_15 = v_14;
+      if ((v_15 >= 4u)) {
+        break;
+      }
+      S v_16 = v_5((start_byte_offset + (v_15 * 128u)));
+      a[v_15] = v_16;
+      {
+        v_14 = (v_15 + 1u);
+      }
+      continue;
+    }
+  }
+  S v_17[4] = a;
+  return v_17;
+}
+
+[numthreads(1, 1, 1)]
+void f() {
+  S v_18[4] = v_13(0u);
+  v_9(0u, v_18);
+  S v_19 = v_5(256u);
+  v_4(128u, v_19);
+  v(400u, v_1(272u));
+  s.Store4(144u, asuint(asfloat(u[2u]).ywxz));
+}
+
diff --git a/test/tint/buffer/uniform/std140/struct/mat3x4_f32/to_storage.wgsl.expected.ir.fxc.hlsl b/test/tint/buffer/uniform/std140/struct/mat3x4_f32/to_storage.wgsl.expected.ir.fxc.hlsl
index 3f437dc..2a8a444 100644
--- a/test/tint/buffer/uniform/std140/struct/mat3x4_f32/to_storage.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/buffer/uniform/std140/struct/mat3x4_f32/to_storage.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,88 @@
-SKIP: FAILED
+struct S {
+  int before;
+  float3x4 m;
+  int after;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Access
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+
+cbuffer cbuffer_u : register(b0) {
+  uint4 u[32];
+};
+RWByteAddressBuffer s : register(u1);
+void v(uint offset, float3x4 obj) {
+  s.Store4((offset + 0u), asuint(obj[0u]));
+  s.Store4((offset + 16u), asuint(obj[1u]));
+  s.Store4((offset + 32u), asuint(obj[2u]));
+}
+
+float3x4 v_1(uint start_byte_offset) {
+  float4 v_2 = asfloat(u[(start_byte_offset / 16u)]);
+  float4 v_3 = asfloat(u[((16u + start_byte_offset) / 16u)]);
+  return float3x4(v_2, v_3, asfloat(u[((32u + start_byte_offset) / 16u)]));
+}
+
+void v_4(uint offset, S obj) {
+  s.Store((offset + 0u), asuint(obj.before));
+  v((offset + 16u), obj.m);
+  s.Store((offset + 64u), asuint(obj.after));
+}
+
+S v_5(uint start_byte_offset) {
+  int v_6 = asint(u[(start_byte_offset / 16u)][((start_byte_offset % 16u) / 4u)]);
+  float3x4 v_7 = v_1((16u + start_byte_offset));
+  S v_8 = {v_6, v_7, asint(u[((64u + start_byte_offset) / 16u)][(((64u + start_byte_offset) % 16u) / 4u)])};
+  return v_8;
+}
+
+void v_9(uint offset, S obj[4]) {
+  {
+    uint v_10 = 0u;
+    v_10 = 0u;
+    while(true) {
+      uint v_11 = v_10;
+      if ((v_11 >= 4u)) {
+        break;
+      }
+      S v_12 = obj[v_11];
+      v_4((offset + (v_11 * 128u)), v_12);
+      {
+        v_10 = (v_11 + 1u);
+      }
+      continue;
+    }
+  }
+}
+
+typedef S ary_ret[4];
+ary_ret v_13(uint start_byte_offset) {
+  S a[4] = (S[4])0;
+  {
+    uint v_14 = 0u;
+    v_14 = 0u;
+    while(true) {
+      uint v_15 = v_14;
+      if ((v_15 >= 4u)) {
+        break;
+      }
+      S v_16 = v_5((start_byte_offset + (v_15 * 128u)));
+      a[v_15] = v_16;
+      {
+        v_14 = (v_15 + 1u);
+      }
+      continue;
+    }
+  }
+  S v_17[4] = a;
+  return v_17;
+}
+
+[numthreads(1, 1, 1)]
+void f() {
+  S v_18[4] = v_13(0u);
+  v_9(0u, v_18);
+  S v_19 = v_5(256u);
+  v_4(128u, v_19);
+  v(400u, v_1(272u));
+  s.Store4(144u, asuint(asfloat(u[2u]).ywxz));
+}
+
diff --git a/test/tint/buffer/uniform/std140/struct/mat3x4_f32/to_workgroup.wgsl.expected.ir.dxc.hlsl b/test/tint/buffer/uniform/std140/struct/mat3x4_f32/to_workgroup.wgsl.expected.ir.dxc.hlsl
index 3f437dc..3016cd9 100644
--- a/test/tint/buffer/uniform/std140/struct/mat3x4_f32/to_workgroup.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/buffer/uniform/std140/struct/mat3x4_f32/to_workgroup.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,82 @@
-SKIP: FAILED
+struct S {
+  int before;
+  float3x4 m;
+  int after;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Access
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct f_inputs {
+  uint tint_local_index : SV_GroupIndex;
+};
+
+
+cbuffer cbuffer_u : register(b0) {
+  uint4 u[32];
+};
+groupshared S w[4];
+float3x4 v(uint start_byte_offset) {
+  float4 v_1 = asfloat(u[(start_byte_offset / 16u)]);
+  float4 v_2 = asfloat(u[((16u + start_byte_offset) / 16u)]);
+  return float3x4(v_1, v_2, asfloat(u[((32u + start_byte_offset) / 16u)]));
+}
+
+S v_3(uint start_byte_offset) {
+  int v_4 = asint(u[(start_byte_offset / 16u)][((start_byte_offset % 16u) / 4u)]);
+  float3x4 v_5 = v((16u + start_byte_offset));
+  S v_6 = {v_4, v_5, asint(u[((64u + start_byte_offset) / 16u)][(((64u + start_byte_offset) % 16u) / 4u)])};
+  return v_6;
+}
+
+typedef S ary_ret[4];
+ary_ret v_7(uint start_byte_offset) {
+  S a[4] = (S[4])0;
+  {
+    uint v_8 = 0u;
+    v_8 = 0u;
+    while(true) {
+      uint v_9 = v_8;
+      if ((v_9 >= 4u)) {
+        break;
+      }
+      S v_10 = v_3((start_byte_offset + (v_9 * 128u)));
+      a[v_9] = v_10;
+      {
+        v_8 = (v_9 + 1u);
+      }
+      continue;
+    }
+  }
+  S v_11[4] = a;
+  return v_11;
+}
+
+void f_inner(uint tint_local_index) {
+  {
+    uint v_12 = 0u;
+    v_12 = tint_local_index;
+    while(true) {
+      uint v_13 = v_12;
+      if ((v_13 >= 4u)) {
+        break;
+      }
+      S v_14 = (S)0;
+      w[v_13] = v_14;
+      {
+        v_12 = (v_13 + 1u);
+      }
+      continue;
+    }
+  }
+  GroupMemoryBarrierWithGroupSync();
+  S v_15[4] = v_7(0u);
+  w = v_15;
+  S v_16 = v_3(256u);
+  w[1] = v_16;
+  w[3].m = v(272u);
+  w[1].m[0] = asfloat(u[2u]).ywxz;
+}
+
+[numthreads(1, 1, 1)]
+void f(f_inputs inputs) {
+  f_inner(inputs.tint_local_index);
+}
+
diff --git a/test/tint/buffer/uniform/std140/struct/mat3x4_f32/to_workgroup.wgsl.expected.ir.fxc.hlsl b/test/tint/buffer/uniform/std140/struct/mat3x4_f32/to_workgroup.wgsl.expected.ir.fxc.hlsl
index 3f437dc..3016cd9 100644
--- a/test/tint/buffer/uniform/std140/struct/mat3x4_f32/to_workgroup.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/buffer/uniform/std140/struct/mat3x4_f32/to_workgroup.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,82 @@
-SKIP: FAILED
+struct S {
+  int before;
+  float3x4 m;
+  int after;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Access
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct f_inputs {
+  uint tint_local_index : SV_GroupIndex;
+};
+
+
+cbuffer cbuffer_u : register(b0) {
+  uint4 u[32];
+};
+groupshared S w[4];
+float3x4 v(uint start_byte_offset) {
+  float4 v_1 = asfloat(u[(start_byte_offset / 16u)]);
+  float4 v_2 = asfloat(u[((16u + start_byte_offset) / 16u)]);
+  return float3x4(v_1, v_2, asfloat(u[((32u + start_byte_offset) / 16u)]));
+}
+
+S v_3(uint start_byte_offset) {
+  int v_4 = asint(u[(start_byte_offset / 16u)][((start_byte_offset % 16u) / 4u)]);
+  float3x4 v_5 = v((16u + start_byte_offset));
+  S v_6 = {v_4, v_5, asint(u[((64u + start_byte_offset) / 16u)][(((64u + start_byte_offset) % 16u) / 4u)])};
+  return v_6;
+}
+
+typedef S ary_ret[4];
+ary_ret v_7(uint start_byte_offset) {
+  S a[4] = (S[4])0;
+  {
+    uint v_8 = 0u;
+    v_8 = 0u;
+    while(true) {
+      uint v_9 = v_8;
+      if ((v_9 >= 4u)) {
+        break;
+      }
+      S v_10 = v_3((start_byte_offset + (v_9 * 128u)));
+      a[v_9] = v_10;
+      {
+        v_8 = (v_9 + 1u);
+      }
+      continue;
+    }
+  }
+  S v_11[4] = a;
+  return v_11;
+}
+
+void f_inner(uint tint_local_index) {
+  {
+    uint v_12 = 0u;
+    v_12 = tint_local_index;
+    while(true) {
+      uint v_13 = v_12;
+      if ((v_13 >= 4u)) {
+        break;
+      }
+      S v_14 = (S)0;
+      w[v_13] = v_14;
+      {
+        v_12 = (v_13 + 1u);
+      }
+      continue;
+    }
+  }
+  GroupMemoryBarrierWithGroupSync();
+  S v_15[4] = v_7(0u);
+  w = v_15;
+  S v_16 = v_3(256u);
+  w[1] = v_16;
+  w[3].m = v(272u);
+  w[1].m[0] = asfloat(u[2u]).ywxz;
+}
+
+[numthreads(1, 1, 1)]
+void f(f_inputs inputs) {
+  f_inner(inputs.tint_local_index);
+}
+
diff --git a/test/tint/buffer/uniform/std140/struct/mat4x2_f16/dynamic_index_via_ptr.wgsl.expected.ir.dxc.hlsl b/test/tint/buffer/uniform/std140/struct/mat4x2_f16/dynamic_index_via_ptr.wgsl.expected.ir.dxc.hlsl
index 3f437dc..09d90c1 100644
--- a/test/tint/buffer/uniform/std140/struct/mat4x2_f16/dynamic_index_via_ptr.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/buffer/uniform/std140/struct/mat4x2_f16/dynamic_index_via_ptr.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,316 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Access
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+
+enable f16;
+
+struct Inner {
+  @size(64)
+  m : mat4x2<f16>,
+}
+
+struct Outer {
+  a : array<Inner, 4>,
+}
+
+@group(0) @binding(0) var<uniform> a : array<Outer, 4>;
+
+var<private> counter = 0;
+
+fn i() -> i32 {
+  counter++;
+  return counter;
+}
+
+@compute @workgroup_size(1)
+fn f() {
+  let p_a = &(a);
+  let p_a_i = &((*(p_a))[i()]);
+  let p_a_i_a = &((*(p_a_i)).a);
+  let p_a_i_a_i = &((*(p_a_i_a))[i()]);
+  let p_a_i_a_i_m = &((*(p_a_i_a_i)).m);
+  let p_a_i_a_i_m_i = &((*(p_a_i_a_i_m))[i()]);
+  let l_a : array<Outer, 4> = *(p_a);
+  let l_a_i : Outer = *(p_a_i);
+  let l_a_i_a : array<Inner, 4> = *(p_a_i_a);
+  let l_a_i_a_i : Inner = *(p_a_i_a_i);
+  let l_a_i_a_i_m : mat4x2<f16> = *(p_a_i_a_i_m);
+  let l_a_i_a_i_m_i : vec2<f16> = *(p_a_i_a_i_m_i);
+  let l_a_i_a_i_m_i_i : f16 = (*(p_a_i_a_i_m_i))[i()];
+}
+
+Failed to generate: :38:24 error: binary: %23 is not in scope
+    %22:u32 = add %21, %23
+                       ^^^
+
+:24:3 note: in block
+  $B3: {
+  ^^^
+
+:68:5 note: %23 declared here
+    %23:u32 = mul %56, 2u
+    ^^^^^^^
+
+:43:24 error: binary: %23 is not in scope
+    %29:u32 = add %28, %23
+                       ^^^
+
+:24:3 note: in block
+  $B3: {
+  ^^^
+
+:68:5 note: %23 declared here
+    %23:u32 = mul %56, 2u
+    ^^^^^^^
+
+:48:24 error: binary: %23 is not in scope
+    %35:u32 = add %34, %23
+                       ^^^
+
+:24:3 note: in block
+  $B3: {
+  ^^^
+
+:68:5 note: %23 declared here
+    %23:u32 = mul %56, 2u
+    ^^^^^^^
+
+:68:5 error: binary: no matching overload for 'operator * (i32, u32)'
+
+9 candidate operators:
+ • 'operator * (T  ✓ , T  ✗ ) -> T' where:
+      ✓  'T' is 'f32', 'i32', 'u32' or 'f16'
+ • 'operator * (vecN<T>  ✗ , T  ✓ ) -> vecN<T>' where:
+      ✓  'T' is 'f32', 'i32', 'u32' or 'f16'
+ • 'operator * (T  ✓ , vecN<T>  ✗ ) -> vecN<T>' where:
+      ✓  'T' is 'f32', 'i32', 'u32' or 'f16'
+ • 'operator * (T  ✗ , matNxM<T>  ✗ ) -> matNxM<T>' where:
+      ✗  'T' is 'f32' or 'f16'
+ • 'operator * (matNxM<T>  ✗ , T  ✗ ) -> matNxM<T>' where:
+      ✗  'T' is 'f32' or 'f16'
+ • 'operator * (vecN<T>  ✗ , vecN<T>  ✗ ) -> vecN<T>' where:
+      ✗  'T' is 'f32', 'i32', 'u32' or 'f16'
+ • 'operator * (matCxR<T>  ✗ , vecC<T>  ✗ ) -> vecR<T>' where:
+      ✗  'T' is 'f32' or 'f16'
+ • 'operator * (vecR<T>  ✗ , matCxR<T>  ✗ ) -> vecC<T>' where:
+      ✗  'T' is 'f32' or 'f16'
+ • 'operator * (matKxR<T>  ✗ , matCxK<T>  ✗ ) -> matCxR<T>' where:
+      ✗  'T' is 'f32' or 'f16'
+
+    %23:u32 = mul %56, 2u
+    ^^^^^^^^^^^^^^^^^^^^^
+
+:24:3 note: in block
+  $B3: {
+  ^^^
+
+note: # Disassembly
+Inner = struct @align(4) {
+  m:mat4x2<f16> @offset(0)
+}
+
+Outer = struct @align(4) {
+  a:array<Inner, 4> @offset(0)
+}
+
+$B1: {  # root
+  %a:ptr<uniform, array<vec4<u32>, 64>, read> = var @binding_point(0, 0)
+  %counter:ptr<private, i32, read_write> = var, 0i
+}
+
+%i = func():i32 {
+  $B2: {
+    %4:i32 = load %counter
+    %5:i32 = add %4, 1i
+    store %counter, %5
+    %6:i32 = load %counter
+    ret %6
+  }
+}
+%f = @compute @workgroup_size(1, 1, 1) func():void {
+  $B3: {
+    %8:i32 = call %i
+    %9:u32 = convert %8
+    %10:u32 = mul 256u, %9
+    %11:i32 = call %i
+    %12:u32 = convert %11
+    %13:u32 = mul 64u, %12
+    %14:i32 = call %i
+    %15:u32 = convert %14
+    %16:u32 = mul 4u, %15
+    %17:array<Outer, 4> = call %18, 0u
+    %l_a:array<Outer, 4> = let %17
+    %20:u32 = add %10, %13
+    %21:u32 = add %20, %16
+    %22:u32 = add %21, %23
+    %24:Outer = call %25, %22
+    %l_a_i:Outer = let %24
+    %27:u32 = add %10, %13
+    %28:u32 = add %27, %16
+    %29:u32 = add %28, %23
+    %30:array<Inner, 4> = call %31, %29
+    %l_a_i_a:array<Inner, 4> = let %30
+    %33:u32 = add %10, %13
+    %34:u32 = add %33, %16
+    %35:u32 = add %34, %23
+    %36:Inner = call %37, %35
+    %l_a_i_a_i:Inner = let %36
+    %39:u32 = add %10, %13
+    %40:mat4x2<f16> = call %41, %39
+    %l_a_i_a_i_m:mat4x2<f16> = let %40
+    %43:u32 = add %10, %13
+    %44:u32 = add %43, %16
+    %45:u32 = div %44, 16u
+    %46:ptr<uniform, vec4<u32>, read> = access %a, %45
+    %47:u32 = mod %44, 16u
+    %48:u32 = div %47, 4u
+    %49:vec4<u32> = load %46
+    %50:u32 = swizzle %49, z
+    %51:u32 = swizzle %49, x
+    %52:bool = eq %48, 2u
+    %53:u32 = hlsl.ternary %51, %50, %52
+    %54:vec2<f16> = bitcast %53
+    %l_a_i_a_i_m_i:vec2<f16> = let %54
+    %56:i32 = call %i
+    %23:u32 = mul %56, 2u
+    %57:u32 = add %10, %13
+    %58:u32 = add %57, %16
+    %59:u32 = add %58, %23
+    %60:u32 = div %59, 16u
+    %61:ptr<uniform, vec4<u32>, read> = access %a, %60
+    %62:u32 = mod %59, 16u
+    %63:u32 = div %62, 4u
+    %64:u32 = load_vector_element %61, %63
+    %65:u32 = mod %59, 4u
+    %66:bool = eq %65, 0u
+    %67:u32 = hlsl.ternary 16u, 0u, %66
+    %68:u32 = shr %64, %67
+    %69:f32 = hlsl.f16tof32 %68
+    %70:f16 = convert %69
+    %l_a_i_a_i_m_i_i:f16 = let %70
+    ret
+  }
+}
+%41 = func(%start_byte_offset:u32):mat4x2<f16> {
+  $B4: {
+    %73:u32 = div %start_byte_offset, 16u
+    %74:ptr<uniform, vec4<u32>, read> = access %a, %73
+    %75:u32 = mod %start_byte_offset, 16u
+    %76:u32 = div %75, 4u
+    %77:vec4<u32> = load %74
+    %78:u32 = swizzle %77, z
+    %79:u32 = swizzle %77, x
+    %80:bool = eq %76, 2u
+    %81:u32 = hlsl.ternary %79, %78, %80
+    %82:vec2<f16> = bitcast %81
+    %83:u32 = add 4u, %start_byte_offset
+    %84:u32 = div %83, 16u
+    %85:ptr<uniform, vec4<u32>, read> = access %a, %84
+    %86:u32 = mod %83, 16u
+    %87:u32 = div %86, 4u
+    %88:vec4<u32> = load %85
+    %89:u32 = swizzle %88, z
+    %90:u32 = swizzle %88, x
+    %91:bool = eq %87, 2u
+    %92:u32 = hlsl.ternary %90, %89, %91
+    %93:vec2<f16> = bitcast %92
+    %94:u32 = add 8u, %start_byte_offset
+    %95:u32 = div %94, 16u
+    %96:ptr<uniform, vec4<u32>, read> = access %a, %95
+    %97:u32 = mod %94, 16u
+    %98:u32 = div %97, 4u
+    %99:vec4<u32> = load %96
+    %100:u32 = swizzle %99, z
+    %101:u32 = swizzle %99, x
+    %102:bool = eq %98, 2u
+    %103:u32 = hlsl.ternary %101, %100, %102
+    %104:vec2<f16> = bitcast %103
+    %105:u32 = add 12u, %start_byte_offset
+    %106:u32 = div %105, 16u
+    %107:ptr<uniform, vec4<u32>, read> = access %a, %106
+    %108:u32 = mod %105, 16u
+    %109:u32 = div %108, 4u
+    %110:vec4<u32> = load %107
+    %111:u32 = swizzle %110, z
+    %112:u32 = swizzle %110, x
+    %113:bool = eq %109, 2u
+    %114:u32 = hlsl.ternary %112, %111, %113
+    %115:vec2<f16> = bitcast %114
+    %116:mat4x2<f16> = construct %82, %93, %104, %115
+    ret %116
+  }
+}
+%37 = func(%start_byte_offset_1:u32):Inner {  # %start_byte_offset_1: 'start_byte_offset'
+  $B5: {
+    %118:mat4x2<f16> = call %41, %start_byte_offset_1
+    %119:Inner = construct %118
+    ret %119
+  }
+}
+%31 = func(%start_byte_offset_2:u32):array<Inner, 4> {  # %start_byte_offset_2: 'start_byte_offset'
+  $B6: {
+    %a_1:ptr<function, array<Inner, 4>, read_write> = var, array<Inner, 4>(Inner(mat4x2<f16>(vec2<f16>(0.0h))))  # %a_1: 'a'
+    loop [i: $B7, b: $B8, c: $B9] {  # loop_1
+      $B7: {  # initializer
+        next_iteration 0u  # -> $B8
+      }
+      $B8 (%idx:u32): {  # body
+        %123:bool = gte %idx, 4u
+        if %123 [t: $B10] {  # if_1
+          $B10: {  # true
+            exit_loop  # loop_1
+          }
+        }
+        %124:u32 = mul %idx, 64u
+        %125:u32 = add %start_byte_offset_2, %124
+        %126:ptr<function, Inner, read_write> = access %a_1, %idx
+        %127:Inner = call %37, %125
+        store %126, %127
+        continue  # -> $B9
+      }
+      $B9: {  # continuing
+        %128:u32 = add %idx, 1u
+        next_iteration %128  # -> $B8
+      }
+    }
+    %129:array<Inner, 4> = load %a_1
+    ret %129
+  }
+}
+%25 = func(%start_byte_offset_3:u32):Outer {  # %start_byte_offset_3: 'start_byte_offset'
+  $B11: {
+    %131:array<Inner, 4> = call %31, %start_byte_offset_3
+    %132:Outer = construct %131
+    ret %132
+  }
+}
+%18 = func(%start_byte_offset_4:u32):array<Outer, 4> {  # %start_byte_offset_4: 'start_byte_offset'
+  $B12: {
+    %a_2:ptr<function, array<Outer, 4>, read_write> = var, array<Outer, 4>(Outer(array<Inner, 4>(Inner(mat4x2<f16>(vec2<f16>(0.0h))))))  # %a_2: 'a'
+    loop [i: $B13, b: $B14, c: $B15] {  # loop_2
+      $B13: {  # initializer
+        next_iteration 0u  # -> $B14
+      }
+      $B14 (%idx_1:u32): {  # body
+        %136:bool = gte %idx_1, 4u
+        if %136 [t: $B16] {  # if_2
+          $B16: {  # true
+            exit_loop  # loop_2
+          }
+        }
+        %137:u32 = mul %idx_1, 256u
+        %138:u32 = add %start_byte_offset_4, %137
+        %139:ptr<function, Outer, read_write> = access %a_2, %idx_1
+        %140:Outer = call %25, %138
+        store %139, %140
+        continue  # -> $B15
+      }
+      $B15: {  # continuing
+        %141:u32 = add %idx_1, 1u
+        next_iteration %141  # -> $B14
+      }
+    }
+    %142:array<Outer, 4> = load %a_2
+    ret %142
+  }
+}
+
diff --git a/test/tint/buffer/uniform/std140/struct/mat4x2_f16/dynamic_index_via_ptr.wgsl.expected.ir.fxc.hlsl b/test/tint/buffer/uniform/std140/struct/mat4x2_f16/dynamic_index_via_ptr.wgsl.expected.ir.fxc.hlsl
index 3f437dc..ee0b77d 100644
--- a/test/tint/buffer/uniform/std140/struct/mat4x2_f16/dynamic_index_via_ptr.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/buffer/uniform/std140/struct/mat4x2_f16/dynamic_index_via_ptr.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,316 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Access
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+
+enable f16;
+
+struct Inner {
+  @size(64)
+  m : mat4x2<f16>,
+}
+
+struct Outer {
+  a : array<Inner, 4>,
+}
+
+@group(0) @binding(0) var<uniform> a : array<Outer, 4>;
+
+var<private> counter = 0;
+
+fn i() -> i32 {
+  counter++;
+  return counter;
+}
+
+@compute @workgroup_size(1)
+fn f() {
+  let p_a = &(a);
+  let p_a_i = &((*(p_a))[i()]);
+  let p_a_i_a = &((*(p_a_i)).a);
+  let p_a_i_a_i = &((*(p_a_i_a))[i()]);
+  let p_a_i_a_i_m = &((*(p_a_i_a_i)).m);
+  let p_a_i_a_i_m_i = &((*(p_a_i_a_i_m))[i()]);
+  let l_a : array<Outer, 4> = *(p_a);
+  let l_a_i : Outer = *(p_a_i);
+  let l_a_i_a : array<Inner, 4> = *(p_a_i_a);
+  let l_a_i_a_i : Inner = *(p_a_i_a_i);
+  let l_a_i_a_i_m : mat4x2<f16> = *(p_a_i_a_i_m);
+  let l_a_i_a_i_m_i : vec2<f16> = *(p_a_i_a_i_m_i);
+  let l_a_i_a_i_m_i_i : f16 = (*(p_a_i_a_i_m_i))[i()];
+}
+
+Failed to generate: :38:24 error: binary: %23 is not in scope
+    %22:u32 = add %21, %23
+                       ^^^
+
+:24:3 note: in block
+  $B3: {
+  ^^^
+
+:68:5 note: %23 declared here
+    %23:u32 = mul %56, 2u
+    ^^^^^^^
+
+:43:24 error: binary: %23 is not in scope
+    %29:u32 = add %28, %23
+                       ^^^
+
+:24:3 note: in block
+  $B3: {
+  ^^^
+
+:68:5 note: %23 declared here
+    %23:u32 = mul %56, 2u
+    ^^^^^^^
+
+:51:24 error: binary: %23 is not in scope
+    %39:u32 = add %38, %23
+                       ^^^
+
+:24:3 note: in block
+  $B3: {
+  ^^^
+
+:68:5 note: %23 declared here
+    %23:u32 = mul %56, 2u
+    ^^^^^^^
+
+:68:5 error: binary: no matching overload for 'operator * (i32, u32)'
+
+9 candidate operators:
+ • 'operator * (T  ✓ , T  ✗ ) -> T' where:
+      ✓  'T' is 'f32', 'i32', 'u32' or 'f16'
+ • 'operator * (vecN<T>  ✗ , T  ✓ ) -> vecN<T>' where:
+      ✓  'T' is 'f32', 'i32', 'u32' or 'f16'
+ • 'operator * (T  ✓ , vecN<T>  ✗ ) -> vecN<T>' where:
+      ✓  'T' is 'f32', 'i32', 'u32' or 'f16'
+ • 'operator * (T  ✗ , matNxM<T>  ✗ ) -> matNxM<T>' where:
+      ✗  'T' is 'f32' or 'f16'
+ • 'operator * (matNxM<T>  ✗ , T  ✗ ) -> matNxM<T>' where:
+      ✗  'T' is 'f32' or 'f16'
+ • 'operator * (vecN<T>  ✗ , vecN<T>  ✗ ) -> vecN<T>' where:
+      ✗  'T' is 'f32', 'i32', 'u32' or 'f16'
+ • 'operator * (matCxR<T>  ✗ , vecC<T>  ✗ ) -> vecR<T>' where:
+      ✗  'T' is 'f32' or 'f16'
+ • 'operator * (vecR<T>  ✗ , matCxR<T>  ✗ ) -> vecC<T>' where:
+      ✗  'T' is 'f32' or 'f16'
+ • 'operator * (matKxR<T>  ✗ , matCxK<T>  ✗ ) -> matCxR<T>' where:
+      ✗  'T' is 'f32' or 'f16'
+
+    %23:u32 = mul %56, 2u
+    ^^^^^^^^^^^^^^^^^^^^^
+
+:24:3 note: in block
+  $B3: {
+  ^^^
+
+note: # Disassembly
+Inner = struct @align(4) {
+  m:mat4x2<f16> @offset(0)
+}
+
+Outer = struct @align(4) {
+  a:array<Inner, 4> @offset(0)
+}
+
+$B1: {  # root
+  %a:ptr<uniform, array<vec4<u32>, 64>, read> = var @binding_point(0, 0)
+  %counter:ptr<private, i32, read_write> = var, 0i
+}
+
+%i = func():i32 {
+  $B2: {
+    %4:i32 = load %counter
+    %5:i32 = add %4, 1i
+    store %counter, %5
+    %6:i32 = load %counter
+    ret %6
+  }
+}
+%f = @compute @workgroup_size(1, 1, 1) func():void {
+  $B3: {
+    %8:i32 = call %i
+    %9:u32 = convert %8
+    %10:u32 = mul 256u, %9
+    %11:i32 = call %i
+    %12:u32 = convert %11
+    %13:u32 = mul 64u, %12
+    %14:i32 = call %i
+    %15:u32 = convert %14
+    %16:u32 = mul 4u, %15
+    %17:array<Outer, 4> = call %18, 0u
+    %l_a:array<Outer, 4> = let %17
+    %20:u32 = add %10, %13
+    %21:u32 = add %20, %16
+    %22:u32 = add %21, %23
+    %24:Outer = call %25, %22
+    %l_a_i:Outer = let %24
+    %27:u32 = add %10, %13
+    %28:u32 = add %27, %16
+    %29:u32 = add %28, %23
+    %30:array<Inner, 4> = call %31, %29
+    %l_a_i_a:array<Inner, 4> = let %30
+    %33:u32 = add %10, %13
+    %34:Inner = call %35, %33
+    %l_a_i_a_i:Inner = let %34
+    %37:u32 = add %10, %13
+    %38:u32 = add %37, %16
+    %39:u32 = add %38, %23
+    %40:mat4x2<f16> = call %41, %39
+    %l_a_i_a_i_m:mat4x2<f16> = let %40
+    %43:u32 = add %10, %13
+    %44:u32 = add %43, %16
+    %45:u32 = div %44, 16u
+    %46:ptr<uniform, vec4<u32>, read> = access %a, %45
+    %47:u32 = mod %44, 16u
+    %48:u32 = div %47, 4u
+    %49:vec4<u32> = load %46
+    %50:u32 = swizzle %49, z
+    %51:u32 = swizzle %49, x
+    %52:bool = eq %48, 2u
+    %53:u32 = hlsl.ternary %51, %50, %52
+    %54:vec2<f16> = bitcast %53
+    %l_a_i_a_i_m_i:vec2<f16> = let %54
+    %56:i32 = call %i
+    %23:u32 = mul %56, 2u
+    %57:u32 = add %10, %13
+    %58:u32 = add %57, %16
+    %59:u32 = add %58, %23
+    %60:u32 = div %59, 16u
+    %61:ptr<uniform, vec4<u32>, read> = access %a, %60
+    %62:u32 = mod %59, 16u
+    %63:u32 = div %62, 4u
+    %64:u32 = load_vector_element %61, %63
+    %65:u32 = mod %59, 4u
+    %66:bool = eq %65, 0u
+    %67:u32 = hlsl.ternary 16u, 0u, %66
+    %68:u32 = shr %64, %67
+    %69:f32 = hlsl.f16tof32 %68
+    %70:f16 = convert %69
+    %l_a_i_a_i_m_i_i:f16 = let %70
+    ret
+  }
+}
+%35 = func(%start_byte_offset:u32):Inner {
+  $B4: {
+    %73:mat4x2<f16> = call %41, %start_byte_offset
+    %74:Inner = construct %73
+    ret %74
+  }
+}
+%41 = func(%start_byte_offset_1:u32):mat4x2<f16> {  # %start_byte_offset_1: 'start_byte_offset'
+  $B5: {
+    %76:u32 = div %start_byte_offset_1, 16u
+    %77:ptr<uniform, vec4<u32>, read> = access %a, %76
+    %78:u32 = mod %start_byte_offset_1, 16u
+    %79:u32 = div %78, 4u
+    %80:vec4<u32> = load %77
+    %81:u32 = swizzle %80, z
+    %82:u32 = swizzle %80, x
+    %83:bool = eq %79, 2u
+    %84:u32 = hlsl.ternary %82, %81, %83
+    %85:vec2<f16> = bitcast %84
+    %86:u32 = add 4u, %start_byte_offset_1
+    %87:u32 = div %86, 16u
+    %88:ptr<uniform, vec4<u32>, read> = access %a, %87
+    %89:u32 = mod %86, 16u
+    %90:u32 = div %89, 4u
+    %91:vec4<u32> = load %88
+    %92:u32 = swizzle %91, z
+    %93:u32 = swizzle %91, x
+    %94:bool = eq %90, 2u
+    %95:u32 = hlsl.ternary %93, %92, %94
+    %96:vec2<f16> = bitcast %95
+    %97:u32 = add 8u, %start_byte_offset_1
+    %98:u32 = div %97, 16u
+    %99:ptr<uniform, vec4<u32>, read> = access %a, %98
+    %100:u32 = mod %97, 16u
+    %101:u32 = div %100, 4u
+    %102:vec4<u32> = load %99
+    %103:u32 = swizzle %102, z
+    %104:u32 = swizzle %102, x
+    %105:bool = eq %101, 2u
+    %106:u32 = hlsl.ternary %104, %103, %105
+    %107:vec2<f16> = bitcast %106
+    %108:u32 = add 12u, %start_byte_offset_1
+    %109:u32 = div %108, 16u
+    %110:ptr<uniform, vec4<u32>, read> = access %a, %109
+    %111:u32 = mod %108, 16u
+    %112:u32 = div %111, 4u
+    %113:vec4<u32> = load %110
+    %114:u32 = swizzle %113, z
+    %115:u32 = swizzle %113, x
+    %116:bool = eq %112, 2u
+    %117:u32 = hlsl.ternary %115, %114, %116
+    %118:vec2<f16> = bitcast %117
+    %119:mat4x2<f16> = construct %85, %96, %107, %118
+    ret %119
+  }
+}
+%31 = func(%start_byte_offset_2:u32):array<Inner, 4> {  # %start_byte_offset_2: 'start_byte_offset'
+  $B6: {
+    %a_1:ptr<function, array<Inner, 4>, read_write> = var, array<Inner, 4>(Inner(mat4x2<f16>(vec2<f16>(0.0h))))  # %a_1: 'a'
+    loop [i: $B7, b: $B8, c: $B9] {  # loop_1
+      $B7: {  # initializer
+        next_iteration 0u  # -> $B8
+      }
+      $B8 (%idx:u32): {  # body
+        %123:bool = gte %idx, 4u
+        if %123 [t: $B10] {  # if_1
+          $B10: {  # true
+            exit_loop  # loop_1
+          }
+        }
+        %124:u32 = mul %idx, 64u
+        %125:u32 = add %start_byte_offset_2, %124
+        %126:ptr<function, Inner, read_write> = access %a_1, %idx
+        %127:Inner = call %35, %125
+        store %126, %127
+        continue  # -> $B9
+      }
+      $B9: {  # continuing
+        %128:u32 = add %idx, 1u
+        next_iteration %128  # -> $B8
+      }
+    }
+    %129:array<Inner, 4> = load %a_1
+    ret %129
+  }
+}
+%25 = func(%start_byte_offset_3:u32):Outer {  # %start_byte_offset_3: 'start_byte_offset'
+  $B11: {
+    %131:array<Inner, 4> = call %31, %start_byte_offset_3
+    %132:Outer = construct %131
+    ret %132
+  }
+}
+%18 = func(%start_byte_offset_4:u32):array<Outer, 4> {  # %start_byte_offset_4: 'start_byte_offset'
+  $B12: {
+    %a_2:ptr<function, array<Outer, 4>, read_write> = var, array<Outer, 4>(Outer(array<Inner, 4>(Inner(mat4x2<f16>(vec2<f16>(0.0h))))))  # %a_2: 'a'
+    loop [i: $B13, b: $B14, c: $B15] {  # loop_2
+      $B13: {  # initializer
+        next_iteration 0u  # -> $B14
+      }
+      $B14 (%idx_1:u32): {  # body
+        %136:bool = gte %idx_1, 4u
+        if %136 [t: $B16] {  # if_2
+          $B16: {  # true
+            exit_loop  # loop_2
+          }
+        }
+        %137:u32 = mul %idx_1, 256u
+        %138:u32 = add %start_byte_offset_4, %137
+        %139:ptr<function, Outer, read_write> = access %a_2, %idx_1
+        %140:Outer = call %25, %138
+        store %139, %140
+        continue  # -> $B15
+      }
+      $B15: {  # continuing
+        %141:u32 = add %idx_1, 1u
+        next_iteration %141  # -> $B14
+      }
+    }
+    %142:array<Outer, 4> = load %a_2
+    ret %142
+  }
+}
+
diff --git a/test/tint/buffer/uniform/std140/struct/mat4x2_f16/static_index_via_ptr.wgsl.expected.ir.dxc.hlsl b/test/tint/buffer/uniform/std140/struct/mat4x2_f16/static_index_via_ptr.wgsl.expected.ir.dxc.hlsl
index 3f437dc..3bfa780 100644
--- a/test/tint/buffer/uniform/std140/struct/mat4x2_f16/static_index_via_ptr.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/buffer/uniform/std140/struct/mat4x2_f16/static_index_via_ptr.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,99 @@
-SKIP: FAILED
+struct Inner {
+  matrix<float16_t, 4, 2> m;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Access
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct Outer {
+  Inner a[4];
+};
+
+
+cbuffer cbuffer_a : register(b0) {
+  uint4 a[64];
+};
+vector<float16_t, 2> tint_bitcast_to_f16(uint src) {
+  uint v = src;
+  float t_low = f16tof32((v & 65535u));
+  float t_high = f16tof32(((v >> 16u) & 65535u));
+  float16_t v_1 = float16_t(t_low);
+  return vector<float16_t, 2>(v_1, float16_t(t_high));
+}
+
+matrix<float16_t, 4, 2> v_2(uint start_byte_offset) {
+  uint4 v_3 = a[(start_byte_offset / 16u)];
+  vector<float16_t, 2> v_4 = tint_bitcast_to_f16((((((start_byte_offset % 16u) / 4u) == 2u)) ? (v_3.z) : (v_3.x)));
+  uint4 v_5 = a[((4u + start_byte_offset) / 16u)];
+  vector<float16_t, 2> v_6 = tint_bitcast_to_f16(((((((4u + start_byte_offset) % 16u) / 4u) == 2u)) ? (v_5.z) : (v_5.x)));
+  uint4 v_7 = a[((8u + start_byte_offset) / 16u)];
+  vector<float16_t, 2> v_8 = tint_bitcast_to_f16(((((((8u + start_byte_offset) % 16u) / 4u) == 2u)) ? (v_7.z) : (v_7.x)));
+  uint4 v_9 = a[((12u + start_byte_offset) / 16u)];
+  return matrix<float16_t, 4, 2>(v_4, v_6, v_8, tint_bitcast_to_f16(((((((12u + start_byte_offset) % 16u) / 4u) == 2u)) ? (v_9.z) : (v_9.x))));
+}
+
+Inner v_10(uint start_byte_offset) {
+  Inner v_11 = {v_2(start_byte_offset)};
+  return v_11;
+}
+
+typedef Inner ary_ret[4];
+ary_ret v_12(uint start_byte_offset) {
+  Inner a[4] = (Inner[4])0;
+  {
+    uint v_13 = 0u;
+    v_13 = 0u;
+    while(true) {
+      uint v_14 = v_13;
+      if ((v_14 >= 4u)) {
+        break;
+      }
+      Inner v_15 = v_10((start_byte_offset + (v_14 * 64u)));
+      a[v_14] = v_15;
+      {
+        v_13 = (v_14 + 1u);
+      }
+      continue;
+    }
+  }
+  Inner v_16[4] = a;
+  return v_16;
+}
+
+Outer v_17(uint start_byte_offset) {
+  Inner v_18[4] = v_12(start_byte_offset);
+  Outer v_19 = {v_18};
+  return v_19;
+}
+
+typedef Outer ary_ret_1[4];
+ary_ret_1 v_20(uint start_byte_offset) {
+  Outer a[4] = (Outer[4])0;
+  {
+    uint v_21 = 0u;
+    v_21 = 0u;
+    while(true) {
+      uint v_22 = v_21;
+      if ((v_22 >= 4u)) {
+        break;
+      }
+      Outer v_23 = v_17((start_byte_offset + (v_22 * 256u)));
+      a[v_22] = v_23;
+      {
+        v_21 = (v_22 + 1u);
+      }
+      continue;
+    }
+  }
+  Outer v_24[4] = a;
+  return v_24;
+}
+
+[numthreads(1, 1, 1)]
+void f() {
+  Outer l_a[4] = v_20(0u);
+  Outer l_a_3 = v_17(900u);
+  Inner l_a_3_a[4] = v_12(900u);
+  Inner l_a_3_a_2 = v_10(900u);
+  matrix<float16_t, 4, 2> l_a_3_a_2_m = v_2(900u);
+  vector<float16_t, 2> l_a_3_a_2_m_1 = tint_bitcast_to_f16(a[56u].x);
+  float16_t l_a_3_a_2_m_1_0 = float16_t(f16tof32(a[56u].y));
+}
+
diff --git a/test/tint/buffer/uniform/std140/struct/mat4x2_f16/static_index_via_ptr.wgsl.expected.ir.fxc.hlsl b/test/tint/buffer/uniform/std140/struct/mat4x2_f16/static_index_via_ptr.wgsl.expected.ir.fxc.hlsl
index 3f437dc..ad46993 100644
--- a/test/tint/buffer/uniform/std140/struct/mat4x2_f16/static_index_via_ptr.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/buffer/uniform/std140/struct/mat4x2_f16/static_index_via_ptr.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,104 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Access
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct Inner {
+  matrix<float16_t, 4, 2> m;
+};
+
+struct Outer {
+  Inner a[4];
+};
+
+
+cbuffer cbuffer_a : register(b0) {
+  uint4 a[64];
+};
+vector<float16_t, 2> tint_bitcast_to_f16(uint src) {
+  uint v = src;
+  float t_low = f16tof32((v & 65535u));
+  float t_high = f16tof32(((v >> 16u) & 65535u));
+  float16_t v_1 = float16_t(t_low);
+  return vector<float16_t, 2>(v_1, float16_t(t_high));
+}
+
+matrix<float16_t, 4, 2> v_2(uint start_byte_offset) {
+  uint4 v_3 = a[(start_byte_offset / 16u)];
+  vector<float16_t, 2> v_4 = tint_bitcast_to_f16((((((start_byte_offset % 16u) / 4u) == 2u)) ? (v_3.z) : (v_3.x)));
+  uint4 v_5 = a[((4u + start_byte_offset) / 16u)];
+  vector<float16_t, 2> v_6 = tint_bitcast_to_f16(((((((4u + start_byte_offset) % 16u) / 4u) == 2u)) ? (v_5.z) : (v_5.x)));
+  uint4 v_7 = a[((8u + start_byte_offset) / 16u)];
+  vector<float16_t, 2> v_8 = tint_bitcast_to_f16(((((((8u + start_byte_offset) % 16u) / 4u) == 2u)) ? (v_7.z) : (v_7.x)));
+  uint4 v_9 = a[((12u + start_byte_offset) / 16u)];
+  return matrix<float16_t, 4, 2>(v_4, v_6, v_8, tint_bitcast_to_f16(((((((12u + start_byte_offset) % 16u) / 4u) == 2u)) ? (v_9.z) : (v_9.x))));
+}
+
+Inner v_10(uint start_byte_offset) {
+  Inner v_11 = {v_2(start_byte_offset)};
+  return v_11;
+}
+
+typedef Inner ary_ret[4];
+ary_ret v_12(uint start_byte_offset) {
+  Inner a[4] = (Inner[4])0;
+  {
+    uint v_13 = 0u;
+    v_13 = 0u;
+    while(true) {
+      uint v_14 = v_13;
+      if ((v_14 >= 4u)) {
+        break;
+      }
+      Inner v_15 = v_10((start_byte_offset + (v_14 * 64u)));
+      a[v_14] = v_15;
+      {
+        v_13 = (v_14 + 1u);
+      }
+      continue;
+    }
+  }
+  Inner v_16[4] = a;
+  return v_16;
+}
+
+Outer v_17(uint start_byte_offset) {
+  Inner v_18[4] = v_12(start_byte_offset);
+  Outer v_19 = {v_18};
+  return v_19;
+}
+
+typedef Outer ary_ret_1[4];
+ary_ret_1 v_20(uint start_byte_offset) {
+  Outer a[4] = (Outer[4])0;
+  {
+    uint v_21 = 0u;
+    v_21 = 0u;
+    while(true) {
+      uint v_22 = v_21;
+      if ((v_22 >= 4u)) {
+        break;
+      }
+      Outer v_23 = v_17((start_byte_offset + (v_22 * 256u)));
+      a[v_22] = v_23;
+      {
+        v_21 = (v_22 + 1u);
+      }
+      continue;
+    }
+  }
+  Outer v_24[4] = a;
+  return v_24;
+}
+
+[numthreads(1, 1, 1)]
+void f() {
+  Outer l_a[4] = v_20(0u);
+  Outer l_a_3 = v_17(900u);
+  Inner l_a_3_a[4] = v_12(900u);
+  Inner l_a_3_a_2 = v_10(900u);
+  matrix<float16_t, 4, 2> l_a_3_a_2_m = v_2(900u);
+  vector<float16_t, 2> l_a_3_a_2_m_1 = tint_bitcast_to_f16(a[56u].x);
+  float16_t l_a_3_a_2_m_1_0 = float16_t(f16tof32(a[56u].y));
+}
+
+FXC validation failure:
+c:\src\dawn\Shader@0x000002350B942450(2,10-18): error X3000: syntax error: unexpected token 'float16_t'
+
diff --git a/test/tint/buffer/uniform/std140/struct/mat4x2_f16/to_builtin.wgsl.expected.ir.dxc.hlsl b/test/tint/buffer/uniform/std140/struct/mat4x2_f16/to_builtin.wgsl.expected.ir.dxc.hlsl
index 3f437dc..84d7a86 100644
--- a/test/tint/buffer/uniform/std140/struct/mat4x2_f16/to_builtin.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/buffer/uniform/std140/struct/mat4x2_f16/to_builtin.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,30 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Access
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+cbuffer cbuffer_u : register(b0) {
+  uint4 u[32];
+};
+vector<float16_t, 2> tint_bitcast_to_f16(uint src) {
+  uint v = src;
+  float t_low = f16tof32((v & 65535u));
+  float t_high = f16tof32(((v >> 16u) & 65535u));
+  float16_t v_1 = float16_t(t_low);
+  return vector<float16_t, 2>(v_1, float16_t(t_high));
+}
+
+matrix<float16_t, 4, 2> v_2(uint start_byte_offset) {
+  uint4 v_3 = u[(start_byte_offset / 16u)];
+  vector<float16_t, 2> v_4 = tint_bitcast_to_f16((((((start_byte_offset % 16u) / 4u) == 2u)) ? (v_3.z) : (v_3.x)));
+  uint4 v_5 = u[((4u + start_byte_offset) / 16u)];
+  vector<float16_t, 2> v_6 = tint_bitcast_to_f16(((((((4u + start_byte_offset) % 16u) / 4u) == 2u)) ? (v_5.z) : (v_5.x)));
+  uint4 v_7 = u[((8u + start_byte_offset) / 16u)];
+  vector<float16_t, 2> v_8 = tint_bitcast_to_f16(((((((8u + start_byte_offset) % 16u) / 4u) == 2u)) ? (v_7.z) : (v_7.x)));
+  uint4 v_9 = u[((12u + start_byte_offset) / 16u)];
+  return matrix<float16_t, 4, 2>(v_4, v_6, v_8, tint_bitcast_to_f16(((((((12u + start_byte_offset) % 16u) / 4u) == 2u)) ? (v_9.z) : (v_9.x))));
+}
+
+[numthreads(1, 1, 1)]
+void f() {
+  matrix<float16_t, 2, 4> t = transpose(v_2(260u));
+  float16_t l = length(tint_bitcast_to_f16(u[0u].z).yx);
+  float16_t a = abs(tint_bitcast_to_f16(u[0u].z).yx[0u]);
+}
+
diff --git a/test/tint/buffer/uniform/std140/struct/mat4x2_f16/to_builtin.wgsl.expected.ir.fxc.hlsl b/test/tint/buffer/uniform/std140/struct/mat4x2_f16/to_builtin.wgsl.expected.ir.fxc.hlsl
index 3f437dc..df724e3 100644
--- a/test/tint/buffer/uniform/std140/struct/mat4x2_f16/to_builtin.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/buffer/uniform/std140/struct/mat4x2_f16/to_builtin.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,35 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Access
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+
+cbuffer cbuffer_u : register(b0) {
+  uint4 u[32];
+};
+vector<float16_t, 2> tint_bitcast_to_f16(uint src) {
+  uint v = src;
+  float t_low = f16tof32((v & 65535u));
+  float t_high = f16tof32(((v >> 16u) & 65535u));
+  float16_t v_1 = float16_t(t_low);
+  return vector<float16_t, 2>(v_1, float16_t(t_high));
+}
+
+matrix<float16_t, 4, 2> v_2(uint start_byte_offset) {
+  uint4 v_3 = u[(start_byte_offset / 16u)];
+  vector<float16_t, 2> v_4 = tint_bitcast_to_f16((((((start_byte_offset % 16u) / 4u) == 2u)) ? (v_3.z) : (v_3.x)));
+  uint4 v_5 = u[((4u + start_byte_offset) / 16u)];
+  vector<float16_t, 2> v_6 = tint_bitcast_to_f16(((((((4u + start_byte_offset) % 16u) / 4u) == 2u)) ? (v_5.z) : (v_5.x)));
+  uint4 v_7 = u[((8u + start_byte_offset) / 16u)];
+  vector<float16_t, 2> v_8 = tint_bitcast_to_f16(((((((8u + start_byte_offset) % 16u) / 4u) == 2u)) ? (v_7.z) : (v_7.x)));
+  uint4 v_9 = u[((12u + start_byte_offset) / 16u)];
+  return matrix<float16_t, 4, 2>(v_4, v_6, v_8, tint_bitcast_to_f16(((((((12u + start_byte_offset) % 16u) / 4u) == 2u)) ? (v_9.z) : (v_9.x))));
+}
+
+[numthreads(1, 1, 1)]
+void f() {
+  matrix<float16_t, 2, 4> t = transpose(v_2(260u));
+  float16_t l = length(tint_bitcast_to_f16(u[0u].z).yx);
+  float16_t a = abs(tint_bitcast_to_f16(u[0u].z).yx[0u]);
+}
+
+FXC validation failure:
+c:\src\dawn\Shader@0x000001F94D5735B0(5,8-16): error X3000: syntax error: unexpected token 'float16_t'
+
diff --git a/test/tint/buffer/uniform/std140/struct/mat4x2_f16/to_fn.wgsl.expected.ir.dxc.hlsl b/test/tint/buffer/uniform/std140/struct/mat4x2_f16/to_fn.wgsl.expected.ir.dxc.hlsl
index 3f437dc..9ce677f 100644
--- a/test/tint/buffer/uniform/std140/struct/mat4x2_f16/to_fn.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/buffer/uniform/std140/struct/mat4x2_f16/to_fn.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,85 @@
-SKIP: FAILED
+struct S {
+  int before;
+  matrix<float16_t, 4, 2> m;
+  int after;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Access
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+
+cbuffer cbuffer_u : register(b0) {
+  uint4 u[32];
+};
+void a(S a_1[4]) {
+}
+
+void b(S s) {
+}
+
+void c(matrix<float16_t, 4, 2> m) {
+}
+
+void d(vector<float16_t, 2> v) {
+}
+
+void e(float16_t f) {
+}
+
+vector<float16_t, 2> tint_bitcast_to_f16(uint src) {
+  uint v = src;
+  float t_low = f16tof32((v & 65535u));
+  float t_high = f16tof32(((v >> 16u) & 65535u));
+  float16_t v_1 = float16_t(t_low);
+  return vector<float16_t, 2>(v_1, float16_t(t_high));
+}
+
+matrix<float16_t, 4, 2> v_2(uint start_byte_offset) {
+  uint4 v_3 = u[(start_byte_offset / 16u)];
+  vector<float16_t, 2> v_4 = tint_bitcast_to_f16((((((start_byte_offset % 16u) / 4u) == 2u)) ? (v_3.z) : (v_3.x)));
+  uint4 v_5 = u[((4u + start_byte_offset) / 16u)];
+  vector<float16_t, 2> v_6 = tint_bitcast_to_f16(((((((4u + start_byte_offset) % 16u) / 4u) == 2u)) ? (v_5.z) : (v_5.x)));
+  uint4 v_7 = u[((8u + start_byte_offset) / 16u)];
+  vector<float16_t, 2> v_8 = tint_bitcast_to_f16(((((((8u + start_byte_offset) % 16u) / 4u) == 2u)) ? (v_7.z) : (v_7.x)));
+  uint4 v_9 = u[((12u + start_byte_offset) / 16u)];
+  return matrix<float16_t, 4, 2>(v_4, v_6, v_8, tint_bitcast_to_f16(((((((12u + start_byte_offset) % 16u) / 4u) == 2u)) ? (v_9.z) : (v_9.x))));
+}
+
+S v_10(uint start_byte_offset) {
+  int v_11 = asint(u[(start_byte_offset / 16u)][((start_byte_offset % 16u) / 4u)]);
+  matrix<float16_t, 4, 2> v_12 = v_2((4u + start_byte_offset));
+  S v_13 = {v_11, v_12, asint(u[((64u + start_byte_offset) / 16u)][(((64u + start_byte_offset) % 16u) / 4u)])};
+  return v_13;
+}
+
+typedef S ary_ret[4];
+ary_ret v_14(uint start_byte_offset) {
+  S a[4] = (S[4])0;
+  {
+    uint v_15 = 0u;
+    v_15 = 0u;
+    while(true) {
+      uint v_16 = v_15;
+      if ((v_16 >= 4u)) {
+        break;
+      }
+      S v_17 = v_10((start_byte_offset + (v_16 * 128u)));
+      a[v_16] = v_17;
+      {
+        v_15 = (v_16 + 1u);
+      }
+      continue;
+    }
+  }
+  S v_18[4] = a;
+  return v_18;
+}
+
+[numthreads(1, 1, 1)]
+void f() {
+  S v_19[4] = v_14(0u);
+  a(v_19);
+  S v_20 = v_10(256u);
+  b(v_20);
+  c(v_2(260u));
+  d(tint_bitcast_to_f16(u[0u].z).yx);
+  e(tint_bitcast_to_f16(u[0u].z).yx[0u]);
+}
+
diff --git a/test/tint/buffer/uniform/std140/struct/mat4x2_f16/to_fn.wgsl.expected.ir.fxc.hlsl b/test/tint/buffer/uniform/std140/struct/mat4x2_f16/to_fn.wgsl.expected.ir.fxc.hlsl
index 3f437dc..970fa29 100644
--- a/test/tint/buffer/uniform/std140/struct/mat4x2_f16/to_fn.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/buffer/uniform/std140/struct/mat4x2_f16/to_fn.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,90 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Access
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct S {
+  int before;
+  matrix<float16_t, 4, 2> m;
+  int after;
+};
+
+
+cbuffer cbuffer_u : register(b0) {
+  uint4 u[32];
+};
+void a(S a_1[4]) {
+}
+
+void b(S s) {
+}
+
+void c(matrix<float16_t, 4, 2> m) {
+}
+
+void d(vector<float16_t, 2> v) {
+}
+
+void e(float16_t f) {
+}
+
+vector<float16_t, 2> tint_bitcast_to_f16(uint src) {
+  uint v = src;
+  float t_low = f16tof32((v & 65535u));
+  float t_high = f16tof32(((v >> 16u) & 65535u));
+  float16_t v_1 = float16_t(t_low);
+  return vector<float16_t, 2>(v_1, float16_t(t_high));
+}
+
+matrix<float16_t, 4, 2> v_2(uint start_byte_offset) {
+  uint4 v_3 = u[(start_byte_offset / 16u)];
+  vector<float16_t, 2> v_4 = tint_bitcast_to_f16((((((start_byte_offset % 16u) / 4u) == 2u)) ? (v_3.z) : (v_3.x)));
+  uint4 v_5 = u[((4u + start_byte_offset) / 16u)];
+  vector<float16_t, 2> v_6 = tint_bitcast_to_f16(((((((4u + start_byte_offset) % 16u) / 4u) == 2u)) ? (v_5.z) : (v_5.x)));
+  uint4 v_7 = u[((8u + start_byte_offset) / 16u)];
+  vector<float16_t, 2> v_8 = tint_bitcast_to_f16(((((((8u + start_byte_offset) % 16u) / 4u) == 2u)) ? (v_7.z) : (v_7.x)));
+  uint4 v_9 = u[((12u + start_byte_offset) / 16u)];
+  return matrix<float16_t, 4, 2>(v_4, v_6, v_8, tint_bitcast_to_f16(((((((12u + start_byte_offset) % 16u) / 4u) == 2u)) ? (v_9.z) : (v_9.x))));
+}
+
+S v_10(uint start_byte_offset) {
+  int v_11 = asint(u[(start_byte_offset / 16u)][((start_byte_offset % 16u) / 4u)]);
+  matrix<float16_t, 4, 2> v_12 = v_2((4u + start_byte_offset));
+  S v_13 = {v_11, v_12, asint(u[((64u + start_byte_offset) / 16u)][(((64u + start_byte_offset) % 16u) / 4u)])};
+  return v_13;
+}
+
+typedef S ary_ret[4];
+ary_ret v_14(uint start_byte_offset) {
+  S a[4] = (S[4])0;
+  {
+    uint v_15 = 0u;
+    v_15 = 0u;
+    while(true) {
+      uint v_16 = v_15;
+      if ((v_16 >= 4u)) {
+        break;
+      }
+      S v_17 = v_10((start_byte_offset + (v_16 * 128u)));
+      a[v_16] = v_17;
+      {
+        v_15 = (v_16 + 1u);
+      }
+      continue;
+    }
+  }
+  S v_18[4] = a;
+  return v_18;
+}
+
+[numthreads(1, 1, 1)]
+void f() {
+  S v_19[4] = v_14(0u);
+  a(v_19);
+  S v_20 = v_10(256u);
+  b(v_20);
+  c(v_2(260u));
+  d(tint_bitcast_to_f16(u[0u].z).yx);
+  e(tint_bitcast_to_f16(u[0u].z).yx[0u]);
+}
+
+FXC validation failure:
+c:\src\dawn\Shader@0x000001F9BC254DE0(3,10-18): error X3000: syntax error: unexpected token 'float16_t'
+
diff --git a/test/tint/buffer/uniform/std140/struct/mat4x2_f16/to_private.wgsl.expected.ir.dxc.hlsl b/test/tint/buffer/uniform/std140/struct/mat4x2_f16/to_private.wgsl.expected.ir.dxc.hlsl
index 3f437dc..c9c5935 100644
--- a/test/tint/buffer/uniform/std140/struct/mat4x2_f16/to_private.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/buffer/uniform/std140/struct/mat4x2_f16/to_private.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,70 @@
-SKIP: FAILED
+struct S {
+  int before;
+  matrix<float16_t, 4, 2> m;
+  int after;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Access
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+
+cbuffer cbuffer_u : register(b0) {
+  uint4 u[32];
+};
+static S p[4] = (S[4])0;
+vector<float16_t, 2> tint_bitcast_to_f16(uint src) {
+  uint v = src;
+  float t_low = f16tof32((v & 65535u));
+  float t_high = f16tof32(((v >> 16u) & 65535u));
+  float16_t v_1 = float16_t(t_low);
+  return vector<float16_t, 2>(v_1, float16_t(t_high));
+}
+
+matrix<float16_t, 4, 2> v_2(uint start_byte_offset) {
+  uint4 v_3 = u[(start_byte_offset / 16u)];
+  vector<float16_t, 2> v_4 = tint_bitcast_to_f16((((((start_byte_offset % 16u) / 4u) == 2u)) ? (v_3.z) : (v_3.x)));
+  uint4 v_5 = u[((4u + start_byte_offset) / 16u)];
+  vector<float16_t, 2> v_6 = tint_bitcast_to_f16(((((((4u + start_byte_offset) % 16u) / 4u) == 2u)) ? (v_5.z) : (v_5.x)));
+  uint4 v_7 = u[((8u + start_byte_offset) / 16u)];
+  vector<float16_t, 2> v_8 = tint_bitcast_to_f16(((((((8u + start_byte_offset) % 16u) / 4u) == 2u)) ? (v_7.z) : (v_7.x)));
+  uint4 v_9 = u[((12u + start_byte_offset) / 16u)];
+  return matrix<float16_t, 4, 2>(v_4, v_6, v_8, tint_bitcast_to_f16(((((((12u + start_byte_offset) % 16u) / 4u) == 2u)) ? (v_9.z) : (v_9.x))));
+}
+
+S v_10(uint start_byte_offset) {
+  int v_11 = asint(u[(start_byte_offset / 16u)][((start_byte_offset % 16u) / 4u)]);
+  matrix<float16_t, 4, 2> v_12 = v_2((4u + start_byte_offset));
+  S v_13 = {v_11, v_12, asint(u[((64u + start_byte_offset) / 16u)][(((64u + start_byte_offset) % 16u) / 4u)])};
+  return v_13;
+}
+
+typedef S ary_ret[4];
+ary_ret v_14(uint start_byte_offset) {
+  S a[4] = (S[4])0;
+  {
+    uint v_15 = 0u;
+    v_15 = 0u;
+    while(true) {
+      uint v_16 = v_15;
+      if ((v_16 >= 4u)) {
+        break;
+      }
+      S v_17 = v_10((start_byte_offset + (v_16 * 128u)));
+      a[v_16] = v_17;
+      {
+        v_15 = (v_16 + 1u);
+      }
+      continue;
+    }
+  }
+  S v_18[4] = a;
+  return v_18;
+}
+
+[numthreads(1, 1, 1)]
+void f() {
+  S v_19[4] = v_14(0u);
+  p = v_19;
+  S v_20 = v_10(256u);
+  p[1] = v_20;
+  p[3].m = v_2(260u);
+  p[1].m[0] = tint_bitcast_to_f16(u[0u].z).yx;
+}
+
diff --git a/test/tint/buffer/uniform/std140/struct/mat4x2_f16/to_private.wgsl.expected.ir.fxc.hlsl b/test/tint/buffer/uniform/std140/struct/mat4x2_f16/to_private.wgsl.expected.ir.fxc.hlsl
index 3f437dc..faa4f87 100644
--- a/test/tint/buffer/uniform/std140/struct/mat4x2_f16/to_private.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/buffer/uniform/std140/struct/mat4x2_f16/to_private.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,75 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Access
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct S {
+  int before;
+  matrix<float16_t, 4, 2> m;
+  int after;
+};
+
+
+cbuffer cbuffer_u : register(b0) {
+  uint4 u[32];
+};
+static S p[4] = (S[4])0;
+vector<float16_t, 2> tint_bitcast_to_f16(uint src) {
+  uint v = src;
+  float t_low = f16tof32((v & 65535u));
+  float t_high = f16tof32(((v >> 16u) & 65535u));
+  float16_t v_1 = float16_t(t_low);
+  return vector<float16_t, 2>(v_1, float16_t(t_high));
+}
+
+matrix<float16_t, 4, 2> v_2(uint start_byte_offset) {
+  uint4 v_3 = u[(start_byte_offset / 16u)];
+  vector<float16_t, 2> v_4 = tint_bitcast_to_f16((((((start_byte_offset % 16u) / 4u) == 2u)) ? (v_3.z) : (v_3.x)));
+  uint4 v_5 = u[((4u + start_byte_offset) / 16u)];
+  vector<float16_t, 2> v_6 = tint_bitcast_to_f16(((((((4u + start_byte_offset) % 16u) / 4u) == 2u)) ? (v_5.z) : (v_5.x)));
+  uint4 v_7 = u[((8u + start_byte_offset) / 16u)];
+  vector<float16_t, 2> v_8 = tint_bitcast_to_f16(((((((8u + start_byte_offset) % 16u) / 4u) == 2u)) ? (v_7.z) : (v_7.x)));
+  uint4 v_9 = u[((12u + start_byte_offset) / 16u)];
+  return matrix<float16_t, 4, 2>(v_4, v_6, v_8, tint_bitcast_to_f16(((((((12u + start_byte_offset) % 16u) / 4u) == 2u)) ? (v_9.z) : (v_9.x))));
+}
+
+S v_10(uint start_byte_offset) {
+  int v_11 = asint(u[(start_byte_offset / 16u)][((start_byte_offset % 16u) / 4u)]);
+  matrix<float16_t, 4, 2> v_12 = v_2((4u + start_byte_offset));
+  S v_13 = {v_11, v_12, asint(u[((64u + start_byte_offset) / 16u)][(((64u + start_byte_offset) % 16u) / 4u)])};
+  return v_13;
+}
+
+typedef S ary_ret[4];
+ary_ret v_14(uint start_byte_offset) {
+  S a[4] = (S[4])0;
+  {
+    uint v_15 = 0u;
+    v_15 = 0u;
+    while(true) {
+      uint v_16 = v_15;
+      if ((v_16 >= 4u)) {
+        break;
+      }
+      S v_17 = v_10((start_byte_offset + (v_16 * 128u)));
+      a[v_16] = v_17;
+      {
+        v_15 = (v_16 + 1u);
+      }
+      continue;
+    }
+  }
+  S v_18[4] = a;
+  return v_18;
+}
+
+[numthreads(1, 1, 1)]
+void f() {
+  S v_19[4] = v_14(0u);
+  p = v_19;
+  S v_20 = v_10(256u);
+  p[1] = v_20;
+  p[3].m = v_2(260u);
+  p[1].m[0] = tint_bitcast_to_f16(u[0u].z).yx;
+}
+
+FXC validation failure:
+c:\src\dawn\Shader@0x0000027B12FA8E40(3,10-18): error X3000: syntax error: unexpected token 'float16_t'
+
diff --git a/test/tint/buffer/uniform/std140/struct/mat4x2_f16/to_storage.wgsl.expected.ir.dxc.hlsl b/test/tint/buffer/uniform/std140/struct/mat4x2_f16/to_storage.wgsl.expected.ir.dxc.hlsl
index 3f437dc..1b6f91b 100644
--- a/test/tint/buffer/uniform/std140/struct/mat4x2_f16/to_storage.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/buffer/uniform/std140/struct/mat4x2_f16/to_storage.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,102 @@
-SKIP: FAILED
+struct S {
+  int before;
+  matrix<float16_t, 4, 2> m;
+  int after;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Access
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+
+cbuffer cbuffer_u : register(b0) {
+  uint4 u[32];
+};
+RWByteAddressBuffer s : register(u1);
+vector<float16_t, 2> tint_bitcast_to_f16(uint src) {
+  uint v = src;
+  float t_low = f16tof32((v & 65535u));
+  float t_high = f16tof32(((v >> 16u) & 65535u));
+  float16_t v_1 = float16_t(t_low);
+  return vector<float16_t, 2>(v_1, float16_t(t_high));
+}
+
+void v_2(uint offset, matrix<float16_t, 4, 2> obj) {
+  s.Store<vector<float16_t, 2> >((offset + 0u), obj[0u]);
+  s.Store<vector<float16_t, 2> >((offset + 4u), obj[1u]);
+  s.Store<vector<float16_t, 2> >((offset + 8u), obj[2u]);
+  s.Store<vector<float16_t, 2> >((offset + 12u), obj[3u]);
+}
+
+matrix<float16_t, 4, 2> v_3(uint start_byte_offset) {
+  uint4 v_4 = u[(start_byte_offset / 16u)];
+  vector<float16_t, 2> v_5 = tint_bitcast_to_f16((((((start_byte_offset % 16u) / 4u) == 2u)) ? (v_4.z) : (v_4.x)));
+  uint4 v_6 = u[((4u + start_byte_offset) / 16u)];
+  vector<float16_t, 2> v_7 = tint_bitcast_to_f16(((((((4u + start_byte_offset) % 16u) / 4u) == 2u)) ? (v_6.z) : (v_6.x)));
+  uint4 v_8 = u[((8u + start_byte_offset) / 16u)];
+  vector<float16_t, 2> v_9 = tint_bitcast_to_f16(((((((8u + start_byte_offset) % 16u) / 4u) == 2u)) ? (v_8.z) : (v_8.x)));
+  uint4 v_10 = u[((12u + start_byte_offset) / 16u)];
+  return matrix<float16_t, 4, 2>(v_5, v_7, v_9, tint_bitcast_to_f16(((((((12u + start_byte_offset) % 16u) / 4u) == 2u)) ? (v_10.z) : (v_10.x))));
+}
+
+void v_11(uint offset, S obj) {
+  s.Store((offset + 0u), asuint(obj.before));
+  v_2((offset + 4u), obj.m);
+  s.Store((offset + 64u), asuint(obj.after));
+}
+
+S v_12(uint start_byte_offset) {
+  int v_13 = asint(u[(start_byte_offset / 16u)][((start_byte_offset % 16u) / 4u)]);
+  matrix<float16_t, 4, 2> v_14 = v_3((4u + start_byte_offset));
+  S v_15 = {v_13, v_14, asint(u[((64u + start_byte_offset) / 16u)][(((64u + start_byte_offset) % 16u) / 4u)])};
+  return v_15;
+}
+
+void v_16(uint offset, S obj[4]) {
+  {
+    uint v_17 = 0u;
+    v_17 = 0u;
+    while(true) {
+      uint v_18 = v_17;
+      if ((v_18 >= 4u)) {
+        break;
+      }
+      S v_19 = obj[v_18];
+      v_11((offset + (v_18 * 128u)), v_19);
+      {
+        v_17 = (v_18 + 1u);
+      }
+      continue;
+    }
+  }
+}
+
+typedef S ary_ret[4];
+ary_ret v_20(uint start_byte_offset) {
+  S a[4] = (S[4])0;
+  {
+    uint v_21 = 0u;
+    v_21 = 0u;
+    while(true) {
+      uint v_22 = v_21;
+      if ((v_22 >= 4u)) {
+        break;
+      }
+      S v_23 = v_12((start_byte_offset + (v_22 * 128u)));
+      a[v_22] = v_23;
+      {
+        v_21 = (v_22 + 1u);
+      }
+      continue;
+    }
+  }
+  S v_24[4] = a;
+  return v_24;
+}
+
+[numthreads(1, 1, 1)]
+void f() {
+  S v_25[4] = v_20(0u);
+  v_16(0u, v_25);
+  S v_26 = v_12(256u);
+  v_11(128u, v_26);
+  v_2(388u, v_3(260u));
+  s.Store<vector<float16_t, 2> >(132u, tint_bitcast_to_f16(u[0u].z).yx);
+}
+
diff --git a/test/tint/buffer/uniform/std140/struct/mat4x2_f16/to_storage.wgsl.expected.ir.fxc.hlsl b/test/tint/buffer/uniform/std140/struct/mat4x2_f16/to_storage.wgsl.expected.ir.fxc.hlsl
index 3f437dc..234f0a1 100644
--- a/test/tint/buffer/uniform/std140/struct/mat4x2_f16/to_storage.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/buffer/uniform/std140/struct/mat4x2_f16/to_storage.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,107 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Access
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct S {
+  int before;
+  matrix<float16_t, 4, 2> m;
+  int after;
+};
+
+
+cbuffer cbuffer_u : register(b0) {
+  uint4 u[32];
+};
+RWByteAddressBuffer s : register(u1);
+vector<float16_t, 2> tint_bitcast_to_f16(uint src) {
+  uint v = src;
+  float t_low = f16tof32((v & 65535u));
+  float t_high = f16tof32(((v >> 16u) & 65535u));
+  float16_t v_1 = float16_t(t_low);
+  return vector<float16_t, 2>(v_1, float16_t(t_high));
+}
+
+void v_2(uint offset, matrix<float16_t, 4, 2> obj) {
+  s.Store<vector<float16_t, 2> >((offset + 0u), obj[0u]);
+  s.Store<vector<float16_t, 2> >((offset + 4u), obj[1u]);
+  s.Store<vector<float16_t, 2> >((offset + 8u), obj[2u]);
+  s.Store<vector<float16_t, 2> >((offset + 12u), obj[3u]);
+}
+
+matrix<float16_t, 4, 2> v_3(uint start_byte_offset) {
+  uint4 v_4 = u[(start_byte_offset / 16u)];
+  vector<float16_t, 2> v_5 = tint_bitcast_to_f16((((((start_byte_offset % 16u) / 4u) == 2u)) ? (v_4.z) : (v_4.x)));
+  uint4 v_6 = u[((4u + start_byte_offset) / 16u)];
+  vector<float16_t, 2> v_7 = tint_bitcast_to_f16(((((((4u + start_byte_offset) % 16u) / 4u) == 2u)) ? (v_6.z) : (v_6.x)));
+  uint4 v_8 = u[((8u + start_byte_offset) / 16u)];
+  vector<float16_t, 2> v_9 = tint_bitcast_to_f16(((((((8u + start_byte_offset) % 16u) / 4u) == 2u)) ? (v_8.z) : (v_8.x)));
+  uint4 v_10 = u[((12u + start_byte_offset) / 16u)];
+  return matrix<float16_t, 4, 2>(v_5, v_7, v_9, tint_bitcast_to_f16(((((((12u + start_byte_offset) % 16u) / 4u) == 2u)) ? (v_10.z) : (v_10.x))));
+}
+
+void v_11(uint offset, S obj) {
+  s.Store((offset + 0u), asuint(obj.before));
+  v_2((offset + 4u), obj.m);
+  s.Store((offset + 64u), asuint(obj.after));
+}
+
+S v_12(uint start_byte_offset) {
+  int v_13 = asint(u[(start_byte_offset / 16u)][((start_byte_offset % 16u) / 4u)]);
+  matrix<float16_t, 4, 2> v_14 = v_3((4u + start_byte_offset));
+  S v_15 = {v_13, v_14, asint(u[((64u + start_byte_offset) / 16u)][(((64u + start_byte_offset) % 16u) / 4u)])};
+  return v_15;
+}
+
+void v_16(uint offset, S obj[4]) {
+  {
+    uint v_17 = 0u;
+    v_17 = 0u;
+    while(true) {
+      uint v_18 = v_17;
+      if ((v_18 >= 4u)) {
+        break;
+      }
+      S v_19 = obj[v_18];
+      v_11((offset + (v_18 * 128u)), v_19);
+      {
+        v_17 = (v_18 + 1u);
+      }
+      continue;
+    }
+  }
+}
+
+typedef S ary_ret[4];
+ary_ret v_20(uint start_byte_offset) {
+  S a[4] = (S[4])0;
+  {
+    uint v_21 = 0u;
+    v_21 = 0u;
+    while(true) {
+      uint v_22 = v_21;
+      if ((v_22 >= 4u)) {
+        break;
+      }
+      S v_23 = v_12((start_byte_offset + (v_22 * 128u)));
+      a[v_22] = v_23;
+      {
+        v_21 = (v_22 + 1u);
+      }
+      continue;
+    }
+  }
+  S v_24[4] = a;
+  return v_24;
+}
+
+[numthreads(1, 1, 1)]
+void f() {
+  S v_25[4] = v_20(0u);
+  v_16(0u, v_25);
+  S v_26 = v_12(256u);
+  v_11(128u, v_26);
+  v_2(388u, v_3(260u));
+  s.Store<vector<float16_t, 2> >(132u, tint_bitcast_to_f16(u[0u].z).yx);
+}
+
+FXC validation failure:
+c:\src\dawn\Shader@0x000001C98B5E6090(3,10-18): error X3000: syntax error: unexpected token 'float16_t'
+
diff --git a/test/tint/buffer/uniform/std140/struct/mat4x2_f16/to_workgroup.wgsl.expected.ir.dxc.hlsl b/test/tint/buffer/uniform/std140/struct/mat4x2_f16/to_workgroup.wgsl.expected.ir.dxc.hlsl
index 3f437dc..710e05c 100644
--- a/test/tint/buffer/uniform/std140/struct/mat4x2_f16/to_workgroup.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/buffer/uniform/std140/struct/mat4x2_f16/to_workgroup.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,95 @@
-SKIP: FAILED
+struct S {
+  int before;
+  matrix<float16_t, 4, 2> m;
+  int after;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Access
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct f_inputs {
+  uint tint_local_index : SV_GroupIndex;
+};
+
+
+cbuffer cbuffer_u : register(b0) {
+  uint4 u[32];
+};
+groupshared S w[4];
+vector<float16_t, 2> tint_bitcast_to_f16(uint src) {
+  uint v = src;
+  float t_low = f16tof32((v & 65535u));
+  float t_high = f16tof32(((v >> 16u) & 65535u));
+  float16_t v_1 = float16_t(t_low);
+  return vector<float16_t, 2>(v_1, float16_t(t_high));
+}
+
+matrix<float16_t, 4, 2> v_2(uint start_byte_offset) {
+  uint4 v_3 = u[(start_byte_offset / 16u)];
+  vector<float16_t, 2> v_4 = tint_bitcast_to_f16((((((start_byte_offset % 16u) / 4u) == 2u)) ? (v_3.z) : (v_3.x)));
+  uint4 v_5 = u[((4u + start_byte_offset) / 16u)];
+  vector<float16_t, 2> v_6 = tint_bitcast_to_f16(((((((4u + start_byte_offset) % 16u) / 4u) == 2u)) ? (v_5.z) : (v_5.x)));
+  uint4 v_7 = u[((8u + start_byte_offset) / 16u)];
+  vector<float16_t, 2> v_8 = tint_bitcast_to_f16(((((((8u + start_byte_offset) % 16u) / 4u) == 2u)) ? (v_7.z) : (v_7.x)));
+  uint4 v_9 = u[((12u + start_byte_offset) / 16u)];
+  return matrix<float16_t, 4, 2>(v_4, v_6, v_8, tint_bitcast_to_f16(((((((12u + start_byte_offset) % 16u) / 4u) == 2u)) ? (v_9.z) : (v_9.x))));
+}
+
+S v_10(uint start_byte_offset) {
+  int v_11 = asint(u[(start_byte_offset / 16u)][((start_byte_offset % 16u) / 4u)]);
+  matrix<float16_t, 4, 2> v_12 = v_2((4u + start_byte_offset));
+  S v_13 = {v_11, v_12, asint(u[((64u + start_byte_offset) / 16u)][(((64u + start_byte_offset) % 16u) / 4u)])};
+  return v_13;
+}
+
+typedef S ary_ret[4];
+ary_ret v_14(uint start_byte_offset) {
+  S a[4] = (S[4])0;
+  {
+    uint v_15 = 0u;
+    v_15 = 0u;
+    while(true) {
+      uint v_16 = v_15;
+      if ((v_16 >= 4u)) {
+        break;
+      }
+      S v_17 = v_10((start_byte_offset + (v_16 * 128u)));
+      a[v_16] = v_17;
+      {
+        v_15 = (v_16 + 1u);
+      }
+      continue;
+    }
+  }
+  S v_18[4] = a;
+  return v_18;
+}
+
+void f_inner(uint tint_local_index) {
+  {
+    uint v_19 = 0u;
+    v_19 = tint_local_index;
+    while(true) {
+      uint v_20 = v_19;
+      if ((v_20 >= 4u)) {
+        break;
+      }
+      S v_21 = (S)0;
+      w[v_20] = v_21;
+      {
+        v_19 = (v_20 + 1u);
+      }
+      continue;
+    }
+  }
+  GroupMemoryBarrierWithGroupSync();
+  S v_22[4] = v_14(0u);
+  w = v_22;
+  S v_23 = v_10(256u);
+  w[1] = v_23;
+  w[3].m = v_2(260u);
+  w[1].m[0] = tint_bitcast_to_f16(u[0u].z).yx;
+}
+
+[numthreads(1, 1, 1)]
+void f(f_inputs inputs) {
+  f_inner(inputs.tint_local_index);
+}
+
diff --git a/test/tint/buffer/uniform/std140/struct/mat4x2_f16/to_workgroup.wgsl.expected.ir.fxc.hlsl b/test/tint/buffer/uniform/std140/struct/mat4x2_f16/to_workgroup.wgsl.expected.ir.fxc.hlsl
index 3f437dc..c8eaf40 100644
--- a/test/tint/buffer/uniform/std140/struct/mat4x2_f16/to_workgroup.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/buffer/uniform/std140/struct/mat4x2_f16/to_workgroup.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,100 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Access
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct S {
+  int before;
+  matrix<float16_t, 4, 2> m;
+  int after;
+};
+
+struct f_inputs {
+  uint tint_local_index : SV_GroupIndex;
+};
+
+
+cbuffer cbuffer_u : register(b0) {
+  uint4 u[32];
+};
+groupshared S w[4];
+vector<float16_t, 2> tint_bitcast_to_f16(uint src) {
+  uint v = src;
+  float t_low = f16tof32((v & 65535u));
+  float t_high = f16tof32(((v >> 16u) & 65535u));
+  float16_t v_1 = float16_t(t_low);
+  return vector<float16_t, 2>(v_1, float16_t(t_high));
+}
+
+matrix<float16_t, 4, 2> v_2(uint start_byte_offset) {
+  uint4 v_3 = u[(start_byte_offset / 16u)];
+  vector<float16_t, 2> v_4 = tint_bitcast_to_f16((((((start_byte_offset % 16u) / 4u) == 2u)) ? (v_3.z) : (v_3.x)));
+  uint4 v_5 = u[((4u + start_byte_offset) / 16u)];
+  vector<float16_t, 2> v_6 = tint_bitcast_to_f16(((((((4u + start_byte_offset) % 16u) / 4u) == 2u)) ? (v_5.z) : (v_5.x)));
+  uint4 v_7 = u[((8u + start_byte_offset) / 16u)];
+  vector<float16_t, 2> v_8 = tint_bitcast_to_f16(((((((8u + start_byte_offset) % 16u) / 4u) == 2u)) ? (v_7.z) : (v_7.x)));
+  uint4 v_9 = u[((12u + start_byte_offset) / 16u)];
+  return matrix<float16_t, 4, 2>(v_4, v_6, v_8, tint_bitcast_to_f16(((((((12u + start_byte_offset) % 16u) / 4u) == 2u)) ? (v_9.z) : (v_9.x))));
+}
+
+S v_10(uint start_byte_offset) {
+  int v_11 = asint(u[(start_byte_offset / 16u)][((start_byte_offset % 16u) / 4u)]);
+  matrix<float16_t, 4, 2> v_12 = v_2((4u + start_byte_offset));
+  S v_13 = {v_11, v_12, asint(u[((64u + start_byte_offset) / 16u)][(((64u + start_byte_offset) % 16u) / 4u)])};
+  return v_13;
+}
+
+typedef S ary_ret[4];
+ary_ret v_14(uint start_byte_offset) {
+  S a[4] = (S[4])0;
+  {
+    uint v_15 = 0u;
+    v_15 = 0u;
+    while(true) {
+      uint v_16 = v_15;
+      if ((v_16 >= 4u)) {
+        break;
+      }
+      S v_17 = v_10((start_byte_offset + (v_16 * 128u)));
+      a[v_16] = v_17;
+      {
+        v_15 = (v_16 + 1u);
+      }
+      continue;
+    }
+  }
+  S v_18[4] = a;
+  return v_18;
+}
+
+void f_inner(uint tint_local_index) {
+  {
+    uint v_19 = 0u;
+    v_19 = tint_local_index;
+    while(true) {
+      uint v_20 = v_19;
+      if ((v_20 >= 4u)) {
+        break;
+      }
+      S v_21 = (S)0;
+      w[v_20] = v_21;
+      {
+        v_19 = (v_20 + 1u);
+      }
+      continue;
+    }
+  }
+  GroupMemoryBarrierWithGroupSync();
+  S v_22[4] = v_14(0u);
+  w = v_22;
+  S v_23 = v_10(256u);
+  w[1] = v_23;
+  w[3].m = v_2(260u);
+  w[1].m[0] = tint_bitcast_to_f16(u[0u].z).yx;
+}
+
+[numthreads(1, 1, 1)]
+void f(f_inputs inputs) {
+  f_inner(inputs.tint_local_index);
+}
+
+FXC validation failure:
+c:\src\dawn\Shader@0x00000216685B2AD0(3,10-18): error X3000: syntax error: unexpected token 'float16_t'
+
diff --git a/test/tint/buffer/uniform/std140/struct/mat4x2_f32/dynamic_index_via_ptr.wgsl.expected.ir.dxc.hlsl b/test/tint/buffer/uniform/std140/struct/mat4x2_f32/dynamic_index_via_ptr.wgsl.expected.ir.dxc.hlsl
index 3f437dc..35a8904 100644
--- a/test/tint/buffer/uniform/std140/struct/mat4x2_f32/dynamic_index_via_ptr.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/buffer/uniform/std140/struct/mat4x2_f32/dynamic_index_via_ptr.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,322 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Access
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+
+struct Inner {
+  @size(64)
+  m : mat4x2<f32>,
+}
+
+struct Outer {
+  a : array<Inner, 4>,
+}
+
+@group(0) @binding(0) var<uniform> a : array<Outer, 4>;
+
+var<private> counter = 0;
+
+fn i() -> i32 {
+  counter++;
+  return counter;
+}
+
+@compute @workgroup_size(1)
+fn f() {
+  let p_a = &(a);
+  let p_a_i = &((*(p_a))[i()]);
+  let p_a_i_a = &((*(p_a_i)).a);
+  let p_a_i_a_i = &((*(p_a_i_a))[i()]);
+  let p_a_i_a_i_m = &((*(p_a_i_a_i)).m);
+  let p_a_i_a_i_m_i = &((*(p_a_i_a_i_m))[i()]);
+  let l_a : array<Outer, 4> = *(p_a);
+  let l_a_i : Outer = *(p_a_i);
+  let l_a_i_a : array<Inner, 4> = *(p_a_i_a);
+  let l_a_i_a_i : Inner = *(p_a_i_a_i);
+  let l_a_i_a_i_m : mat4x2<f32> = *(p_a_i_a_i_m);
+  let l_a_i_a_i_m_i : vec2<f32> = *(p_a_i_a_i_m_i);
+  let l_a_i_a_i_m_i_i : f32 = (*(p_a_i_a_i_m_i))[i()];
+}
+
+Failed to generate: :38:24 error: binary: %23 is not in scope
+    %22:u32 = add %21, %23
+                       ^^^
+
+:24:3 note: in block
+  $B3: {
+  ^^^
+
+:69:5 note: %23 declared here
+    %23:u32 = mul %57, 4u
+    ^^^^^^^
+
+:43:24 error: binary: %23 is not in scope
+    %29:u32 = add %28, %23
+                       ^^^
+
+:24:3 note: in block
+  $B3: {
+  ^^^
+
+:69:5 note: %23 declared here
+    %23:u32 = mul %57, 4u
+    ^^^^^^^
+
+:51:24 error: binary: %23 is not in scope
+    %39:u32 = add %38, %23
+                       ^^^
+
+:24:3 note: in block
+  $B3: {
+  ^^^
+
+:69:5 note: %23 declared here
+    %23:u32 = mul %57, 4u
+    ^^^^^^^
+
+:56:24 error: binary: %23 is not in scope
+    %45:u32 = add %44, %23
+                       ^^^
+
+:24:3 note: in block
+  $B3: {
+  ^^^
+
+:69:5 note: %23 declared here
+    %23:u32 = mul %57, 4u
+    ^^^^^^^
+
+:69:5 error: binary: no matching overload for 'operator * (i32, u32)'
+
+9 candidate operators:
+ • 'operator * (T  ✓ , T  ✗ ) -> T' where:
+      ✓  'T' is 'f32', 'i32', 'u32' or 'f16'
+ • 'operator * (vecN<T>  ✗ , T  ✓ ) -> vecN<T>' where:
+      ✓  'T' is 'f32', 'i32', 'u32' or 'f16'
+ • 'operator * (T  ✓ , vecN<T>  ✗ ) -> vecN<T>' where:
+      ✓  'T' is 'f32', 'i32', 'u32' or 'f16'
+ • 'operator * (T  ✗ , matNxM<T>  ✗ ) -> matNxM<T>' where:
+      ✗  'T' is 'f32' or 'f16'
+ • 'operator * (matNxM<T>  ✗ , T  ✗ ) -> matNxM<T>' where:
+      ✗  'T' is 'f32' or 'f16'
+ • 'operator * (vecN<T>  ✗ , vecN<T>  ✗ ) -> vecN<T>' where:
+      ✗  'T' is 'f32', 'i32', 'u32' or 'f16'
+ • 'operator * (matCxR<T>  ✗ , vecC<T>  ✗ ) -> vecR<T>' where:
+      ✗  'T' is 'f32' or 'f16'
+ • 'operator * (vecR<T>  ✗ , matCxR<T>  ✗ ) -> vecC<T>' where:
+      ✗  'T' is 'f32' or 'f16'
+ • 'operator * (matKxR<T>  ✗ , matCxK<T>  ✗ ) -> matCxR<T>' where:
+      ✗  'T' is 'f32' or 'f16'
+
+    %23:u32 = mul %57, 4u
+    ^^^^^^^^^^^^^^^^^^^^^
+
+:24:3 note: in block
+  $B3: {
+  ^^^
+
+note: # Disassembly
+Inner = struct @align(8) {
+  m:mat4x2<f32> @offset(0)
+}
+
+Outer = struct @align(8) {
+  a:array<Inner, 4> @offset(0)
+}
+
+$B1: {  # root
+  %a:ptr<uniform, array<vec4<u32>, 64>, read> = var @binding_point(0, 0)
+  %counter:ptr<private, i32, read_write> = var, 0i
+}
+
+%i = func():i32 {
+  $B2: {
+    %4:i32 = load %counter
+    %5:i32 = add %4, 1i
+    store %counter, %5
+    %6:i32 = load %counter
+    ret %6
+  }
+}
+%f = @compute @workgroup_size(1, 1, 1) func():void {
+  $B3: {
+    %8:i32 = call %i
+    %9:u32 = convert %8
+    %10:u32 = mul 256u, %9
+    %11:i32 = call %i
+    %12:u32 = convert %11
+    %13:u32 = mul 64u, %12
+    %14:i32 = call %i
+    %15:u32 = convert %14
+    %16:u32 = mul 8u, %15
+    %17:array<Outer, 4> = call %18, 0u
+    %l_a:array<Outer, 4> = let %17
+    %20:u32 = add %10, %13
+    %21:u32 = add %20, %16
+    %22:u32 = add %21, %23
+    %24:Outer = call %25, %22
+    %l_a_i:Outer = let %24
+    %27:u32 = add %10, %13
+    %28:u32 = add %27, %16
+    %29:u32 = add %28, %23
+    %30:array<Inner, 4> = call %31, %29
+    %l_a_i_a:array<Inner, 4> = let %30
+    %33:u32 = add %10, %13
+    %34:Inner = call %35, %33
+    %l_a_i_a_i:Inner = let %34
+    %37:u32 = add %10, %13
+    %38:u32 = add %37, %16
+    %39:u32 = add %38, %23
+    %40:mat4x2<f32> = call %41, %39
+    %l_a_i_a_i_m:mat4x2<f32> = let %40
+    %43:u32 = add %10, %13
+    %44:u32 = add %43, %16
+    %45:u32 = add %44, %23
+    %46:u32 = div %45, 16u
+    %47:ptr<uniform, vec4<u32>, read> = access %a, %46
+    %48:u32 = mod %45, 16u
+    %49:u32 = div %48, 4u
+    %50:vec4<u32> = load %47
+    %51:vec2<u32> = swizzle %50, zw
+    %52:vec2<u32> = swizzle %50, xy
+    %53:bool = eq %49, 2u
+    %54:vec2<u32> = hlsl.ternary %52, %51, %53
+    %55:vec2<f32> = bitcast %54
+    %l_a_i_a_i_m_i:vec2<f32> = let %55
+    %57:i32 = call %i
+    %23:u32 = mul %57, 4u
+    %58:u32 = add %10, %13
+    %59:u32 = add %58, %16
+    %60:u32 = add %59, %23
+    %61:u32 = div %60, 16u
+    %62:ptr<uniform, vec4<u32>, read> = access %a, %61
+    %63:u32 = mod %60, 16u
+    %64:u32 = div %63, 4u
+    %65:u32 = load_vector_element %62, %64
+    %66:f32 = bitcast %65
+    %l_a_i_a_i_m_i_i:f32 = let %66
+    ret
+  }
+}
+%35 = func(%start_byte_offset:u32):Inner {
+  $B4: {
+    %69:mat4x2<f32> = call %41, %start_byte_offset
+    %70:Inner = construct %69
+    ret %70
+  }
+}
+%41 = func(%start_byte_offset_1:u32):mat4x2<f32> {  # %start_byte_offset_1: 'start_byte_offset'
+  $B5: {
+    %72:u32 = div %start_byte_offset_1, 16u
+    %73:ptr<uniform, vec4<u32>, read> = access %a, %72
+    %74:u32 = mod %start_byte_offset_1, 16u
+    %75:u32 = div %74, 4u
+    %76:vec4<u32> = load %73
+    %77:vec2<u32> = swizzle %76, zw
+    %78:vec2<u32> = swizzle %76, xy
+    %79:bool = eq %75, 2u
+    %80:vec2<u32> = hlsl.ternary %78, %77, %79
+    %81:vec2<f32> = bitcast %80
+    %82:u32 = add 8u, %start_byte_offset_1
+    %83:u32 = div %82, 16u
+    %84:ptr<uniform, vec4<u32>, read> = access %a, %83
+    %85:u32 = mod %82, 16u
+    %86:u32 = div %85, 4u
+    %87:vec4<u32> = load %84
+    %88:vec2<u32> = swizzle %87, zw
+    %89:vec2<u32> = swizzle %87, xy
+    %90:bool = eq %86, 2u
+    %91:vec2<u32> = hlsl.ternary %89, %88, %90
+    %92:vec2<f32> = bitcast %91
+    %93:u32 = add 16u, %start_byte_offset_1
+    %94:u32 = div %93, 16u
+    %95:ptr<uniform, vec4<u32>, read> = access %a, %94
+    %96:u32 = mod %93, 16u
+    %97:u32 = div %96, 4u
+    %98:vec4<u32> = load %95
+    %99:vec2<u32> = swizzle %98, zw
+    %100:vec2<u32> = swizzle %98, xy
+    %101:bool = eq %97, 2u
+    %102:vec2<u32> = hlsl.ternary %100, %99, %101
+    %103:vec2<f32> = bitcast %102
+    %104:u32 = add 24u, %start_byte_offset_1
+    %105:u32 = div %104, 16u
+    %106:ptr<uniform, vec4<u32>, read> = access %a, %105
+    %107:u32 = mod %104, 16u
+    %108:u32 = div %107, 4u
+    %109:vec4<u32> = load %106
+    %110:vec2<u32> = swizzle %109, zw
+    %111:vec2<u32> = swizzle %109, xy
+    %112:bool = eq %108, 2u
+    %113:vec2<u32> = hlsl.ternary %111, %110, %112
+    %114:vec2<f32> = bitcast %113
+    %115:mat4x2<f32> = construct %81, %92, %103, %114
+    ret %115
+  }
+}
+%31 = func(%start_byte_offset_2:u32):array<Inner, 4> {  # %start_byte_offset_2: 'start_byte_offset'
+  $B6: {
+    %a_1:ptr<function, array<Inner, 4>, read_write> = var, array<Inner, 4>(Inner(mat4x2<f32>(vec2<f32>(0.0f))))  # %a_1: 'a'
+    loop [i: $B7, b: $B8, c: $B9] {  # loop_1
+      $B7: {  # initializer
+        next_iteration 0u  # -> $B8
+      }
+      $B8 (%idx:u32): {  # body
+        %119:bool = gte %idx, 4u
+        if %119 [t: $B10] {  # if_1
+          $B10: {  # true
+            exit_loop  # loop_1
+          }
+        }
+        %120:u32 = mul %idx, 64u
+        %121:u32 = add %start_byte_offset_2, %120
+        %122:ptr<function, Inner, read_write> = access %a_1, %idx
+        %123:Inner = call %35, %121
+        store %122, %123
+        continue  # -> $B9
+      }
+      $B9: {  # continuing
+        %124:u32 = add %idx, 1u
+        next_iteration %124  # -> $B8
+      }
+    }
+    %125:array<Inner, 4> = load %a_1
+    ret %125
+  }
+}
+%25 = func(%start_byte_offset_3:u32):Outer {  # %start_byte_offset_3: 'start_byte_offset'
+  $B11: {
+    %127:array<Inner, 4> = call %31, %start_byte_offset_3
+    %128:Outer = construct %127
+    ret %128
+  }
+}
+%18 = func(%start_byte_offset_4:u32):array<Outer, 4> {  # %start_byte_offset_4: 'start_byte_offset'
+  $B12: {
+    %a_2:ptr<function, array<Outer, 4>, read_write> = var, array<Outer, 4>(Outer(array<Inner, 4>(Inner(mat4x2<f32>(vec2<f32>(0.0f))))))  # %a_2: 'a'
+    loop [i: $B13, b: $B14, c: $B15] {  # loop_2
+      $B13: {  # initializer
+        next_iteration 0u  # -> $B14
+      }
+      $B14 (%idx_1:u32): {  # body
+        %132:bool = gte %idx_1, 4u
+        if %132 [t: $B16] {  # if_2
+          $B16: {  # true
+            exit_loop  # loop_2
+          }
+        }
+        %133:u32 = mul %idx_1, 256u
+        %134:u32 = add %start_byte_offset_4, %133
+        %135:ptr<function, Outer, read_write> = access %a_2, %idx_1
+        %136:Outer = call %25, %134
+        store %135, %136
+        continue  # -> $B15
+      }
+      $B15: {  # continuing
+        %137:u32 = add %idx_1, 1u
+        next_iteration %137  # -> $B14
+      }
+    }
+    %138:array<Outer, 4> = load %a_2
+    ret %138
+  }
+}
+
diff --git a/test/tint/buffer/uniform/std140/struct/mat4x2_f32/dynamic_index_via_ptr.wgsl.expected.ir.fxc.hlsl b/test/tint/buffer/uniform/std140/struct/mat4x2_f32/dynamic_index_via_ptr.wgsl.expected.ir.fxc.hlsl
index 3f437dc..8a30ebd 100644
--- a/test/tint/buffer/uniform/std140/struct/mat4x2_f32/dynamic_index_via_ptr.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/buffer/uniform/std140/struct/mat4x2_f32/dynamic_index_via_ptr.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,309 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Access
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+
+struct Inner {
+  @size(64)
+  m : mat4x2<f32>,
+}
+
+struct Outer {
+  a : array<Inner, 4>,
+}
+
+@group(0) @binding(0) var<uniform> a : array<Outer, 4>;
+
+var<private> counter = 0;
+
+fn i() -> i32 {
+  counter++;
+  return counter;
+}
+
+@compute @workgroup_size(1)
+fn f() {
+  let p_a = &(a);
+  let p_a_i = &((*(p_a))[i()]);
+  let p_a_i_a = &((*(p_a_i)).a);
+  let p_a_i_a_i = &((*(p_a_i_a))[i()]);
+  let p_a_i_a_i_m = &((*(p_a_i_a_i)).m);
+  let p_a_i_a_i_m_i = &((*(p_a_i_a_i_m))[i()]);
+  let l_a : array<Outer, 4> = *(p_a);
+  let l_a_i : Outer = *(p_a_i);
+  let l_a_i_a : array<Inner, 4> = *(p_a_i_a);
+  let l_a_i_a_i : Inner = *(p_a_i_a_i);
+  let l_a_i_a_i_m : mat4x2<f32> = *(p_a_i_a_i_m);
+  let l_a_i_a_i_m_i : vec2<f32> = *(p_a_i_a_i_m_i);
+  let l_a_i_a_i_m_i_i : f32 = (*(p_a_i_a_i_m_i))[i()];
+}
+
+Failed to generate: :38:24 error: binary: %23 is not in scope
+    %22:u32 = add %21, %23
+                       ^^^
+
+:24:3 note: in block
+  $B3: {
+  ^^^
+
+:68:5 note: %23 declared here
+    %23:u32 = mul %56, 4u
+    ^^^^^^^
+
+:43:24 error: binary: %23 is not in scope
+    %29:u32 = add %28, %23
+                       ^^^
+
+:24:3 note: in block
+  $B3: {
+  ^^^
+
+:68:5 note: %23 declared here
+    %23:u32 = mul %56, 4u
+    ^^^^^^^
+
+:51:24 error: binary: %23 is not in scope
+    %39:u32 = add %38, %23
+                       ^^^
+
+:24:3 note: in block
+  $B3: {
+  ^^^
+
+:68:5 note: %23 declared here
+    %23:u32 = mul %56, 4u
+    ^^^^^^^
+
+:68:5 error: binary: no matching overload for 'operator * (i32, u32)'
+
+9 candidate operators:
+ • 'operator * (T  ✓ , T  ✗ ) -> T' where:
+      ✓  'T' is 'f32', 'i32', 'u32' or 'f16'
+ • 'operator * (vecN<T>  ✗ , T  ✓ ) -> vecN<T>' where:
+      ✓  'T' is 'f32', 'i32', 'u32' or 'f16'
+ • 'operator * (T  ✓ , vecN<T>  ✗ ) -> vecN<T>' where:
+      ✓  'T' is 'f32', 'i32', 'u32' or 'f16'
+ • 'operator * (T  ✗ , matNxM<T>  ✗ ) -> matNxM<T>' where:
+      ✗  'T' is 'f32' or 'f16'
+ • 'operator * (matNxM<T>  ✗ , T  ✗ ) -> matNxM<T>' where:
+      ✗  'T' is 'f32' or 'f16'
+ • 'operator * (vecN<T>  ✗ , vecN<T>  ✗ ) -> vecN<T>' where:
+      ✗  'T' is 'f32', 'i32', 'u32' or 'f16'
+ • 'operator * (matCxR<T>  ✗ , vecC<T>  ✗ ) -> vecR<T>' where:
+      ✗  'T' is 'f32' or 'f16'
+ • 'operator * (vecR<T>  ✗ , matCxR<T>  ✗ ) -> vecC<T>' where:
+      ✗  'T' is 'f32' or 'f16'
+ • 'operator * (matKxR<T>  ✗ , matCxK<T>  ✗ ) -> matCxR<T>' where:
+      ✗  'T' is 'f32' or 'f16'
+
+    %23:u32 = mul %56, 4u
+    ^^^^^^^^^^^^^^^^^^^^^
+
+:24:3 note: in block
+  $B3: {
+  ^^^
+
+note: # Disassembly
+Inner = struct @align(8) {
+  m:mat4x2<f32> @offset(0)
+}
+
+Outer = struct @align(8) {
+  a:array<Inner, 4> @offset(0)
+}
+
+$B1: {  # root
+  %a:ptr<uniform, array<vec4<u32>, 64>, read> = var @binding_point(0, 0)
+  %counter:ptr<private, i32, read_write> = var, 0i
+}
+
+%i = func():i32 {
+  $B2: {
+    %4:i32 = load %counter
+    %5:i32 = add %4, 1i
+    store %counter, %5
+    %6:i32 = load %counter
+    ret %6
+  }
+}
+%f = @compute @workgroup_size(1, 1, 1) func():void {
+  $B3: {
+    %8:i32 = call %i
+    %9:u32 = convert %8
+    %10:u32 = mul 256u, %9
+    %11:i32 = call %i
+    %12:u32 = convert %11
+    %13:u32 = mul 64u, %12
+    %14:i32 = call %i
+    %15:u32 = convert %14
+    %16:u32 = mul 8u, %15
+    %17:array<Outer, 4> = call %18, 0u
+    %l_a:array<Outer, 4> = let %17
+    %20:u32 = add %10, %13
+    %21:u32 = add %20, %16
+    %22:u32 = add %21, %23
+    %24:Outer = call %25, %22
+    %l_a_i:Outer = let %24
+    %27:u32 = add %10, %13
+    %28:u32 = add %27, %16
+    %29:u32 = add %28, %23
+    %30:array<Inner, 4> = call %31, %29
+    %l_a_i_a:array<Inner, 4> = let %30
+    %33:u32 = add %10, %13
+    %34:Inner = call %35, %33
+    %l_a_i_a_i:Inner = let %34
+    %37:u32 = add %10, %13
+    %38:u32 = add %37, %16
+    %39:u32 = add %38, %23
+    %40:mat4x2<f32> = call %41, %39
+    %l_a_i_a_i_m:mat4x2<f32> = let %40
+    %43:u32 = add %10, %13
+    %44:u32 = add %43, %16
+    %45:u32 = div %44, 16u
+    %46:ptr<uniform, vec4<u32>, read> = access %a, %45
+    %47:u32 = mod %44, 16u
+    %48:u32 = div %47, 4u
+    %49:vec4<u32> = load %46
+    %50:vec2<u32> = swizzle %49, zw
+    %51:vec2<u32> = swizzle %49, xy
+    %52:bool = eq %48, 2u
+    %53:vec2<u32> = hlsl.ternary %51, %50, %52
+    %54:vec2<f32> = bitcast %53
+    %l_a_i_a_i_m_i:vec2<f32> = let %54
+    %56:i32 = call %i
+    %23:u32 = mul %56, 4u
+    %57:u32 = add %10, %13
+    %58:u32 = add %57, %16
+    %59:u32 = add %58, %23
+    %60:u32 = div %59, 16u
+    %61:ptr<uniform, vec4<u32>, read> = access %a, %60
+    %62:u32 = mod %59, 16u
+    %63:u32 = div %62, 4u
+    %64:u32 = load_vector_element %61, %63
+    %65:f32 = bitcast %64
+    %l_a_i_a_i_m_i_i:f32 = let %65
+    ret
+  }
+}
+%35 = func(%start_byte_offset:u32):Inner {
+  $B4: {
+    %68:mat4x2<f32> = call %41, %start_byte_offset
+    %69:Inner = construct %68
+    ret %69
+  }
+}
+%41 = func(%start_byte_offset_1:u32):mat4x2<f32> {  # %start_byte_offset_1: 'start_byte_offset'
+  $B5: {
+    %71:u32 = div %start_byte_offset_1, 16u
+    %72:ptr<uniform, vec4<u32>, read> = access %a, %71
+    %73:u32 = mod %start_byte_offset_1, 16u
+    %74:u32 = div %73, 4u
+    %75:vec4<u32> = load %72
+    %76:vec2<u32> = swizzle %75, zw
+    %77:vec2<u32> = swizzle %75, xy
+    %78:bool = eq %74, 2u
+    %79:vec2<u32> = hlsl.ternary %77, %76, %78
+    %80:vec2<f32> = bitcast %79
+    %81:u32 = add 8u, %start_byte_offset_1
+    %82:u32 = div %81, 16u
+    %83:ptr<uniform, vec4<u32>, read> = access %a, %82
+    %84:u32 = mod %81, 16u
+    %85:u32 = div %84, 4u
+    %86:vec4<u32> = load %83
+    %87:vec2<u32> = swizzle %86, zw
+    %88:vec2<u32> = swizzle %86, xy
+    %89:bool = eq %85, 2u
+    %90:vec2<u32> = hlsl.ternary %88, %87, %89
+    %91:vec2<f32> = bitcast %90
+    %92:u32 = add 16u, %start_byte_offset_1
+    %93:u32 = div %92, 16u
+    %94:ptr<uniform, vec4<u32>, read> = access %a, %93
+    %95:u32 = mod %92, 16u
+    %96:u32 = div %95, 4u
+    %97:vec4<u32> = load %94
+    %98:vec2<u32> = swizzle %97, zw
+    %99:vec2<u32> = swizzle %97, xy
+    %100:bool = eq %96, 2u
+    %101:vec2<u32> = hlsl.ternary %99, %98, %100
+    %102:vec2<f32> = bitcast %101
+    %103:u32 = add 24u, %start_byte_offset_1
+    %104:u32 = div %103, 16u
+    %105:ptr<uniform, vec4<u32>, read> = access %a, %104
+    %106:u32 = mod %103, 16u
+    %107:u32 = div %106, 4u
+    %108:vec4<u32> = load %105
+    %109:vec2<u32> = swizzle %108, zw
+    %110:vec2<u32> = swizzle %108, xy
+    %111:bool = eq %107, 2u
+    %112:vec2<u32> = hlsl.ternary %110, %109, %111
+    %113:vec2<f32> = bitcast %112
+    %114:mat4x2<f32> = construct %80, %91, %102, %113
+    ret %114
+  }
+}
+%31 = func(%start_byte_offset_2:u32):array<Inner, 4> {  # %start_byte_offset_2: 'start_byte_offset'
+  $B6: {
+    %a_1:ptr<function, array<Inner, 4>, read_write> = var, array<Inner, 4>(Inner(mat4x2<f32>(vec2<f32>(0.0f))))  # %a_1: 'a'
+    loop [i: $B7, b: $B8, c: $B9] {  # loop_1
+      $B7: {  # initializer
+        next_iteration 0u  # -> $B8
+      }
+      $B8 (%idx:u32): {  # body
+        %118:bool = gte %idx, 4u
+        if %118 [t: $B10] {  # if_1
+          $B10: {  # true
+            exit_loop  # loop_1
+          }
+        }
+        %119:u32 = mul %idx, 64u
+        %120:u32 = add %start_byte_offset_2, %119
+        %121:ptr<function, Inner, read_write> = access %a_1, %idx
+        %122:Inner = call %35, %120
+        store %121, %122
+        continue  # -> $B9
+      }
+      $B9: {  # continuing
+        %123:u32 = add %idx, 1u
+        next_iteration %123  # -> $B8
+      }
+    }
+    %124:array<Inner, 4> = load %a_1
+    ret %124
+  }
+}
+%25 = func(%start_byte_offset_3:u32):Outer {  # %start_byte_offset_3: 'start_byte_offset'
+  $B11: {
+    %126:array<Inner, 4> = call %31, %start_byte_offset_3
+    %127:Outer = construct %126
+    ret %127
+  }
+}
+%18 = func(%start_byte_offset_4:u32):array<Outer, 4> {  # %start_byte_offset_4: 'start_byte_offset'
+  $B12: {
+    %a_2:ptr<function, array<Outer, 4>, read_write> = var, array<Outer, 4>(Outer(array<Inner, 4>(Inner(mat4x2<f32>(vec2<f32>(0.0f))))))  # %a_2: 'a'
+    loop [i: $B13, b: $B14, c: $B15] {  # loop_2
+      $B13: {  # initializer
+        next_iteration 0u  # -> $B14
+      }
+      $B14 (%idx_1:u32): {  # body
+        %131:bool = gte %idx_1, 4u
+        if %131 [t: $B16] {  # if_2
+          $B16: {  # true
+            exit_loop  # loop_2
+          }
+        }
+        %132:u32 = mul %idx_1, 256u
+        %133:u32 = add %start_byte_offset_4, %132
+        %134:ptr<function, Outer, read_write> = access %a_2, %idx_1
+        %135:Outer = call %25, %133
+        store %134, %135
+        continue  # -> $B15
+      }
+      $B15: {  # continuing
+        %136:u32 = add %idx_1, 1u
+        next_iteration %136  # -> $B14
+      }
+    }
+    %137:array<Outer, 4> = load %a_2
+    ret %137
+  }
+}
+
diff --git a/test/tint/buffer/uniform/std140/struct/mat4x2_f32/static_index_via_ptr.wgsl.expected.ir.dxc.hlsl b/test/tint/buffer/uniform/std140/struct/mat4x2_f32/static_index_via_ptr.wgsl.expected.ir.dxc.hlsl
index 3f437dc..51e7140 100644
--- a/test/tint/buffer/uniform/std140/struct/mat4x2_f32/static_index_via_ptr.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/buffer/uniform/std140/struct/mat4x2_f32/static_index_via_ptr.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,91 @@
-SKIP: FAILED
+struct Inner {
+  float4x2 m;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Access
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct Outer {
+  Inner a[4];
+};
+
+
+cbuffer cbuffer_a : register(b0) {
+  uint4 a[64];
+};
+float4x2 v(uint start_byte_offset) {
+  uint4 v_1 = a[(start_byte_offset / 16u)];
+  float2 v_2 = asfloat((((((start_byte_offset % 16u) / 4u) == 2u)) ? (v_1.zw) : (v_1.xy)));
+  uint4 v_3 = a[((8u + start_byte_offset) / 16u)];
+  float2 v_4 = asfloat(((((((8u + start_byte_offset) % 16u) / 4u) == 2u)) ? (v_3.zw) : (v_3.xy)));
+  uint4 v_5 = a[((16u + start_byte_offset) / 16u)];
+  float2 v_6 = asfloat(((((((16u + start_byte_offset) % 16u) / 4u) == 2u)) ? (v_5.zw) : (v_5.xy)));
+  uint4 v_7 = a[((24u + start_byte_offset) / 16u)];
+  return float4x2(v_2, v_4, v_6, asfloat(((((((24u + start_byte_offset) % 16u) / 4u) == 2u)) ? (v_7.zw) : (v_7.xy))));
+}
+
+Inner v_8(uint start_byte_offset) {
+  Inner v_9 = {v(start_byte_offset)};
+  return v_9;
+}
+
+typedef Inner ary_ret[4];
+ary_ret v_10(uint start_byte_offset) {
+  Inner a[4] = (Inner[4])0;
+  {
+    uint v_11 = 0u;
+    v_11 = 0u;
+    while(true) {
+      uint v_12 = v_11;
+      if ((v_12 >= 4u)) {
+        break;
+      }
+      Inner v_13 = v_8((start_byte_offset + (v_12 * 64u)));
+      a[v_12] = v_13;
+      {
+        v_11 = (v_12 + 1u);
+      }
+      continue;
+    }
+  }
+  Inner v_14[4] = a;
+  return v_14;
+}
+
+Outer v_15(uint start_byte_offset) {
+  Inner v_16[4] = v_10(start_byte_offset);
+  Outer v_17 = {v_16};
+  return v_17;
+}
+
+typedef Outer ary_ret_1[4];
+ary_ret_1 v_18(uint start_byte_offset) {
+  Outer a[4] = (Outer[4])0;
+  {
+    uint v_19 = 0u;
+    v_19 = 0u;
+    while(true) {
+      uint v_20 = v_19;
+      if ((v_20 >= 4u)) {
+        break;
+      }
+      Outer v_21 = v_15((start_byte_offset + (v_20 * 256u)));
+      a[v_20] = v_21;
+      {
+        v_19 = (v_20 + 1u);
+      }
+      continue;
+    }
+  }
+  Outer v_22[4] = a;
+  return v_22;
+}
+
+[numthreads(1, 1, 1)]
+void f() {
+  Outer l_a[4] = v_18(0u);
+  Outer l_a_3 = v_15(904u);
+  Inner l_a_3_a[4] = v_10(904u);
+  Inner l_a_3_a_2 = v_8(904u);
+  float4x2 l_a_3_a_2_m = v(904u);
+  float2 l_a_3_a_2_m_1 = asfloat(a[56u].zw);
+  float l_a_3_a_2_m_1_0 = asfloat(a[56u].z);
+}
+
diff --git a/test/tint/buffer/uniform/std140/struct/mat4x2_f32/static_index_via_ptr.wgsl.expected.ir.fxc.hlsl b/test/tint/buffer/uniform/std140/struct/mat4x2_f32/static_index_via_ptr.wgsl.expected.ir.fxc.hlsl
index 3f437dc..7171dfa 100644
--- a/test/tint/buffer/uniform/std140/struct/mat4x2_f32/static_index_via_ptr.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/buffer/uniform/std140/struct/mat4x2_f32/static_index_via_ptr.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,91 @@
-SKIP: FAILED
+struct Inner {
+  float4x2 m;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Access
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct Outer {
+  Inner a[4];
+};
+
+
+cbuffer cbuffer_a : register(b0) {
+  uint4 a[64];
+};
+float4x2 v(uint start_byte_offset) {
+  uint4 v_1 = a[(start_byte_offset / 16u)];
+  float2 v_2 = asfloat((((((start_byte_offset % 16u) / 4u) == 2u)) ? (v_1.zw) : (v_1.xy)));
+  uint4 v_3 = a[((8u + start_byte_offset) / 16u)];
+  float2 v_4 = asfloat(((((((8u + start_byte_offset) % 16u) / 4u) == 2u)) ? (v_3.zw) : (v_3.xy)));
+  uint4 v_5 = a[((16u + start_byte_offset) / 16u)];
+  float2 v_6 = asfloat(((((((16u + start_byte_offset) % 16u) / 4u) == 2u)) ? (v_5.zw) : (v_5.xy)));
+  uint4 v_7 = a[((24u + start_byte_offset) / 16u)];
+  return float4x2(v_2, v_4, v_6, asfloat(((((((24u + start_byte_offset) % 16u) / 4u) == 2u)) ? (v_7.zw) : (v_7.xy))));
+}
+
+Inner v_8(uint start_byte_offset) {
+  Inner v_9 = {v(start_byte_offset)};
+  return v_9;
+}
+
+typedef Inner ary_ret[4];
+ary_ret v_10(uint start_byte_offset) {
+  Inner a[4] = (Inner[4])0;
+  {
+    uint v_11 = 0u;
+    v_11 = 0u;
+    while(true) {
+      uint v_12 = v_11;
+      if ((v_12 >= 4u)) {
+        break;
+      }
+      Inner v_13 = v_8((start_byte_offset + (v_12 * 64u)));
+      a[v_12] = v_13;
+      {
+        v_11 = (v_12 + 1u);
+      }
+      continue;
+    }
+  }
+  Inner v_14[4] = a;
+  return v_14;
+}
+
+Outer v_15(uint start_byte_offset) {
+  Inner v_16[4] = v_10(start_byte_offset);
+  Outer v_17 = {v_16};
+  return v_17;
+}
+
+typedef Outer ary_ret_1[4];
+ary_ret_1 v_18(uint start_byte_offset) {
+  Outer a[4] = (Outer[4])0;
+  {
+    uint v_19 = 0u;
+    v_19 = 0u;
+    while(true) {
+      uint v_20 = v_19;
+      if ((v_20 >= 4u)) {
+        break;
+      }
+      Outer v_21 = v_15((start_byte_offset + (v_20 * 256u)));
+      a[v_20] = v_21;
+      {
+        v_19 = (v_20 + 1u);
+      }
+      continue;
+    }
+  }
+  Outer v_22[4] = a;
+  return v_22;
+}
+
+[numthreads(1, 1, 1)]
+void f() {
+  Outer l_a[4] = v_18(0u);
+  Outer l_a_3 = v_15(904u);
+  Inner l_a_3_a[4] = v_10(904u);
+  Inner l_a_3_a_2 = v_8(896u);
+  float4x2 l_a_3_a_2_m = v(896u);
+  float2 l_a_3_a_2_m_1 = asfloat(a[56u].zw);
+  float l_a_3_a_2_m_1_0 = asfloat(a[56u].z);
+}
+
diff --git a/test/tint/buffer/uniform/std140/struct/mat4x2_f32/to_builtin.wgsl.expected.ir.dxc.hlsl b/test/tint/buffer/uniform/std140/struct/mat4x2_f32/to_builtin.wgsl.expected.ir.dxc.hlsl
index 3f437dc..bfa6396 100644
--- a/test/tint/buffer/uniform/std140/struct/mat4x2_f32/to_builtin.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/buffer/uniform/std140/struct/mat4x2_f32/to_builtin.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,22 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Access
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+cbuffer cbuffer_u : register(b0) {
+  uint4 u[32];
+};
+float4x2 v(uint start_byte_offset) {
+  uint4 v_1 = u[(start_byte_offset / 16u)];
+  float2 v_2 = asfloat((((((start_byte_offset % 16u) / 4u) == 2u)) ? (v_1.zw) : (v_1.xy)));
+  uint4 v_3 = u[((8u + start_byte_offset) / 16u)];
+  float2 v_4 = asfloat(((((((8u + start_byte_offset) % 16u) / 4u) == 2u)) ? (v_3.zw) : (v_3.xy)));
+  uint4 v_5 = u[((16u + start_byte_offset) / 16u)];
+  float2 v_6 = asfloat(((((((16u + start_byte_offset) % 16u) / 4u) == 2u)) ? (v_5.zw) : (v_5.xy)));
+  uint4 v_7 = u[((24u + start_byte_offset) / 16u)];
+  return float4x2(v_2, v_4, v_6, asfloat(((((((24u + start_byte_offset) % 16u) / 4u) == 2u)) ? (v_7.zw) : (v_7.xy))));
+}
+
+[numthreads(1, 1, 1)]
+void f() {
+  float2x4 t = transpose(v(264u));
+  float l = length(asfloat(u[1u].xy).yx);
+  float a = abs(asfloat(u[1u].xy).yx[0u]);
+}
+
diff --git a/test/tint/buffer/uniform/std140/struct/mat4x2_f32/to_builtin.wgsl.expected.ir.fxc.hlsl b/test/tint/buffer/uniform/std140/struct/mat4x2_f32/to_builtin.wgsl.expected.ir.fxc.hlsl
index 3f437dc..bfa6396 100644
--- a/test/tint/buffer/uniform/std140/struct/mat4x2_f32/to_builtin.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/buffer/uniform/std140/struct/mat4x2_f32/to_builtin.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,22 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Access
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+cbuffer cbuffer_u : register(b0) {
+  uint4 u[32];
+};
+float4x2 v(uint start_byte_offset) {
+  uint4 v_1 = u[(start_byte_offset / 16u)];
+  float2 v_2 = asfloat((((((start_byte_offset % 16u) / 4u) == 2u)) ? (v_1.zw) : (v_1.xy)));
+  uint4 v_3 = u[((8u + start_byte_offset) / 16u)];
+  float2 v_4 = asfloat(((((((8u + start_byte_offset) % 16u) / 4u) == 2u)) ? (v_3.zw) : (v_3.xy)));
+  uint4 v_5 = u[((16u + start_byte_offset) / 16u)];
+  float2 v_6 = asfloat(((((((16u + start_byte_offset) % 16u) / 4u) == 2u)) ? (v_5.zw) : (v_5.xy)));
+  uint4 v_7 = u[((24u + start_byte_offset) / 16u)];
+  return float4x2(v_2, v_4, v_6, asfloat(((((((24u + start_byte_offset) % 16u) / 4u) == 2u)) ? (v_7.zw) : (v_7.xy))));
+}
+
+[numthreads(1, 1, 1)]
+void f() {
+  float2x4 t = transpose(v(264u));
+  float l = length(asfloat(u[1u].xy).yx);
+  float a = abs(asfloat(u[1u].xy).yx[0u]);
+}
+
diff --git a/test/tint/buffer/uniform/std140/struct/mat4x2_f32/to_fn.wgsl.expected.ir.dxc.hlsl b/test/tint/buffer/uniform/std140/struct/mat4x2_f32/to_fn.wgsl.expected.ir.dxc.hlsl
index 3f437dc..197e6cc 100644
--- a/test/tint/buffer/uniform/std140/struct/mat4x2_f32/to_fn.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/buffer/uniform/std140/struct/mat4x2_f32/to_fn.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,77 @@
-SKIP: FAILED
+struct S {
+  int before;
+  float4x2 m;
+  int after;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Access
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+
+cbuffer cbuffer_u : register(b0) {
+  uint4 u[32];
+};
+void a(S a_1[4]) {
+}
+
+void b(S s) {
+}
+
+void c(float4x2 m) {
+}
+
+void d(float2 v) {
+}
+
+void e(float f) {
+}
+
+float4x2 v_1(uint start_byte_offset) {
+  uint4 v_2 = u[(start_byte_offset / 16u)];
+  float2 v_3 = asfloat((((((start_byte_offset % 16u) / 4u) == 2u)) ? (v_2.zw) : (v_2.xy)));
+  uint4 v_4 = u[((8u + start_byte_offset) / 16u)];
+  float2 v_5 = asfloat(((((((8u + start_byte_offset) % 16u) / 4u) == 2u)) ? (v_4.zw) : (v_4.xy)));
+  uint4 v_6 = u[((16u + start_byte_offset) / 16u)];
+  float2 v_7 = asfloat(((((((16u + start_byte_offset) % 16u) / 4u) == 2u)) ? (v_6.zw) : (v_6.xy)));
+  uint4 v_8 = u[((24u + start_byte_offset) / 16u)];
+  return float4x2(v_3, v_5, v_7, asfloat(((((((24u + start_byte_offset) % 16u) / 4u) == 2u)) ? (v_8.zw) : (v_8.xy))));
+}
+
+S v_9(uint start_byte_offset) {
+  int v_10 = asint(u[(start_byte_offset / 16u)][((start_byte_offset % 16u) / 4u)]);
+  float4x2 v_11 = v_1((8u + start_byte_offset));
+  S v_12 = {v_10, v_11, asint(u[((64u + start_byte_offset) / 16u)][(((64u + start_byte_offset) % 16u) / 4u)])};
+  return v_12;
+}
+
+typedef S ary_ret[4];
+ary_ret v_13(uint start_byte_offset) {
+  S a[4] = (S[4])0;
+  {
+    uint v_14 = 0u;
+    v_14 = 0u;
+    while(true) {
+      uint v_15 = v_14;
+      if ((v_15 >= 4u)) {
+        break;
+      }
+      S v_16 = v_9((start_byte_offset + (v_15 * 128u)));
+      a[v_15] = v_16;
+      {
+        v_14 = (v_15 + 1u);
+      }
+      continue;
+    }
+  }
+  S v_17[4] = a;
+  return v_17;
+}
+
+[numthreads(1, 1, 1)]
+void f() {
+  S v_18[4] = v_13(0u);
+  a(v_18);
+  S v_19 = v_9(256u);
+  b(v_19);
+  c(v_1(264u));
+  d(asfloat(u[1u].xy).yx);
+  e(asfloat(u[1u].xy).yx[0u]);
+}
+
diff --git a/test/tint/buffer/uniform/std140/struct/mat4x2_f32/to_fn.wgsl.expected.ir.fxc.hlsl b/test/tint/buffer/uniform/std140/struct/mat4x2_f32/to_fn.wgsl.expected.ir.fxc.hlsl
index 3f437dc..197e6cc 100644
--- a/test/tint/buffer/uniform/std140/struct/mat4x2_f32/to_fn.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/buffer/uniform/std140/struct/mat4x2_f32/to_fn.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,77 @@
-SKIP: FAILED
+struct S {
+  int before;
+  float4x2 m;
+  int after;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Access
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+
+cbuffer cbuffer_u : register(b0) {
+  uint4 u[32];
+};
+void a(S a_1[4]) {
+}
+
+void b(S s) {
+}
+
+void c(float4x2 m) {
+}
+
+void d(float2 v) {
+}
+
+void e(float f) {
+}
+
+float4x2 v_1(uint start_byte_offset) {
+  uint4 v_2 = u[(start_byte_offset / 16u)];
+  float2 v_3 = asfloat((((((start_byte_offset % 16u) / 4u) == 2u)) ? (v_2.zw) : (v_2.xy)));
+  uint4 v_4 = u[((8u + start_byte_offset) / 16u)];
+  float2 v_5 = asfloat(((((((8u + start_byte_offset) % 16u) / 4u) == 2u)) ? (v_4.zw) : (v_4.xy)));
+  uint4 v_6 = u[((16u + start_byte_offset) / 16u)];
+  float2 v_7 = asfloat(((((((16u + start_byte_offset) % 16u) / 4u) == 2u)) ? (v_6.zw) : (v_6.xy)));
+  uint4 v_8 = u[((24u + start_byte_offset) / 16u)];
+  return float4x2(v_3, v_5, v_7, asfloat(((((((24u + start_byte_offset) % 16u) / 4u) == 2u)) ? (v_8.zw) : (v_8.xy))));
+}
+
+S v_9(uint start_byte_offset) {
+  int v_10 = asint(u[(start_byte_offset / 16u)][((start_byte_offset % 16u) / 4u)]);
+  float4x2 v_11 = v_1((8u + start_byte_offset));
+  S v_12 = {v_10, v_11, asint(u[((64u + start_byte_offset) / 16u)][(((64u + start_byte_offset) % 16u) / 4u)])};
+  return v_12;
+}
+
+typedef S ary_ret[4];
+ary_ret v_13(uint start_byte_offset) {
+  S a[4] = (S[4])0;
+  {
+    uint v_14 = 0u;
+    v_14 = 0u;
+    while(true) {
+      uint v_15 = v_14;
+      if ((v_15 >= 4u)) {
+        break;
+      }
+      S v_16 = v_9((start_byte_offset + (v_15 * 128u)));
+      a[v_15] = v_16;
+      {
+        v_14 = (v_15 + 1u);
+      }
+      continue;
+    }
+  }
+  S v_17[4] = a;
+  return v_17;
+}
+
+[numthreads(1, 1, 1)]
+void f() {
+  S v_18[4] = v_13(0u);
+  a(v_18);
+  S v_19 = v_9(256u);
+  b(v_19);
+  c(v_1(264u));
+  d(asfloat(u[1u].xy).yx);
+  e(asfloat(u[1u].xy).yx[0u]);
+}
+
diff --git a/test/tint/buffer/uniform/std140/struct/mat4x2_f32/to_private.wgsl.expected.ir.dxc.hlsl b/test/tint/buffer/uniform/std140/struct/mat4x2_f32/to_private.wgsl.expected.ir.dxc.hlsl
index 3f437dc..cfcef9c 100644
--- a/test/tint/buffer/uniform/std140/struct/mat4x2_f32/to_private.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/buffer/uniform/std140/struct/mat4x2_f32/to_private.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,62 @@
-SKIP: FAILED
+struct S {
+  int before;
+  float4x2 m;
+  int after;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Access
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+
+cbuffer cbuffer_u : register(b0) {
+  uint4 u[32];
+};
+static S p[4] = (S[4])0;
+float4x2 v(uint start_byte_offset) {
+  uint4 v_1 = u[(start_byte_offset / 16u)];
+  float2 v_2 = asfloat((((((start_byte_offset % 16u) / 4u) == 2u)) ? (v_1.zw) : (v_1.xy)));
+  uint4 v_3 = u[((8u + start_byte_offset) / 16u)];
+  float2 v_4 = asfloat(((((((8u + start_byte_offset) % 16u) / 4u) == 2u)) ? (v_3.zw) : (v_3.xy)));
+  uint4 v_5 = u[((16u + start_byte_offset) / 16u)];
+  float2 v_6 = asfloat(((((((16u + start_byte_offset) % 16u) / 4u) == 2u)) ? (v_5.zw) : (v_5.xy)));
+  uint4 v_7 = u[((24u + start_byte_offset) / 16u)];
+  return float4x2(v_2, v_4, v_6, asfloat(((((((24u + start_byte_offset) % 16u) / 4u) == 2u)) ? (v_7.zw) : (v_7.xy))));
+}
+
+S v_8(uint start_byte_offset) {
+  int v_9 = asint(u[(start_byte_offset / 16u)][((start_byte_offset % 16u) / 4u)]);
+  float4x2 v_10 = v((8u + start_byte_offset));
+  S v_11 = {v_9, v_10, asint(u[((64u + start_byte_offset) / 16u)][(((64u + start_byte_offset) % 16u) / 4u)])};
+  return v_11;
+}
+
+typedef S ary_ret[4];
+ary_ret v_12(uint start_byte_offset) {
+  S a[4] = (S[4])0;
+  {
+    uint v_13 = 0u;
+    v_13 = 0u;
+    while(true) {
+      uint v_14 = v_13;
+      if ((v_14 >= 4u)) {
+        break;
+      }
+      S v_15 = v_8((start_byte_offset + (v_14 * 128u)));
+      a[v_14] = v_15;
+      {
+        v_13 = (v_14 + 1u);
+      }
+      continue;
+    }
+  }
+  S v_16[4] = a;
+  return v_16;
+}
+
+[numthreads(1, 1, 1)]
+void f() {
+  S v_17[4] = v_12(0u);
+  p = v_17;
+  S v_18 = v_8(256u);
+  p[1] = v_18;
+  p[3].m = v(264u);
+  p[1].m[0] = asfloat(u[1u].xy).yx;
+}
+
diff --git a/test/tint/buffer/uniform/std140/struct/mat4x2_f32/to_private.wgsl.expected.ir.fxc.hlsl b/test/tint/buffer/uniform/std140/struct/mat4x2_f32/to_private.wgsl.expected.ir.fxc.hlsl
index 3f437dc..cfcef9c 100644
--- a/test/tint/buffer/uniform/std140/struct/mat4x2_f32/to_private.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/buffer/uniform/std140/struct/mat4x2_f32/to_private.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,62 @@
-SKIP: FAILED
+struct S {
+  int before;
+  float4x2 m;
+  int after;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Access
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+
+cbuffer cbuffer_u : register(b0) {
+  uint4 u[32];
+};
+static S p[4] = (S[4])0;
+float4x2 v(uint start_byte_offset) {
+  uint4 v_1 = u[(start_byte_offset / 16u)];
+  float2 v_2 = asfloat((((((start_byte_offset % 16u) / 4u) == 2u)) ? (v_1.zw) : (v_1.xy)));
+  uint4 v_3 = u[((8u + start_byte_offset) / 16u)];
+  float2 v_4 = asfloat(((((((8u + start_byte_offset) % 16u) / 4u) == 2u)) ? (v_3.zw) : (v_3.xy)));
+  uint4 v_5 = u[((16u + start_byte_offset) / 16u)];
+  float2 v_6 = asfloat(((((((16u + start_byte_offset) % 16u) / 4u) == 2u)) ? (v_5.zw) : (v_5.xy)));
+  uint4 v_7 = u[((24u + start_byte_offset) / 16u)];
+  return float4x2(v_2, v_4, v_6, asfloat(((((((24u + start_byte_offset) % 16u) / 4u) == 2u)) ? (v_7.zw) : (v_7.xy))));
+}
+
+S v_8(uint start_byte_offset) {
+  int v_9 = asint(u[(start_byte_offset / 16u)][((start_byte_offset % 16u) / 4u)]);
+  float4x2 v_10 = v((8u + start_byte_offset));
+  S v_11 = {v_9, v_10, asint(u[((64u + start_byte_offset) / 16u)][(((64u + start_byte_offset) % 16u) / 4u)])};
+  return v_11;
+}
+
+typedef S ary_ret[4];
+ary_ret v_12(uint start_byte_offset) {
+  S a[4] = (S[4])0;
+  {
+    uint v_13 = 0u;
+    v_13 = 0u;
+    while(true) {
+      uint v_14 = v_13;
+      if ((v_14 >= 4u)) {
+        break;
+      }
+      S v_15 = v_8((start_byte_offset + (v_14 * 128u)));
+      a[v_14] = v_15;
+      {
+        v_13 = (v_14 + 1u);
+      }
+      continue;
+    }
+  }
+  S v_16[4] = a;
+  return v_16;
+}
+
+[numthreads(1, 1, 1)]
+void f() {
+  S v_17[4] = v_12(0u);
+  p = v_17;
+  S v_18 = v_8(256u);
+  p[1] = v_18;
+  p[3].m = v(264u);
+  p[1].m[0] = asfloat(u[1u].xy).yx;
+}
+
diff --git a/test/tint/buffer/uniform/std140/struct/mat4x2_f32/to_storage.wgsl.expected.ir.dxc.hlsl b/test/tint/buffer/uniform/std140/struct/mat4x2_f32/to_storage.wgsl.expected.ir.dxc.hlsl
index 3f437dc..20c7794 100644
--- a/test/tint/buffer/uniform/std140/struct/mat4x2_f32/to_storage.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/buffer/uniform/std140/struct/mat4x2_f32/to_storage.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,94 @@
-SKIP: FAILED
+struct S {
+  int before;
+  float4x2 m;
+  int after;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Access
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+
+cbuffer cbuffer_u : register(b0) {
+  uint4 u[32];
+};
+RWByteAddressBuffer s : register(u1);
+void v(uint offset, float4x2 obj) {
+  s.Store2((offset + 0u), asuint(obj[0u]));
+  s.Store2((offset + 8u), asuint(obj[1u]));
+  s.Store2((offset + 16u), asuint(obj[2u]));
+  s.Store2((offset + 24u), asuint(obj[3u]));
+}
+
+float4x2 v_1(uint start_byte_offset) {
+  uint4 v_2 = u[(start_byte_offset / 16u)];
+  float2 v_3 = asfloat((((((start_byte_offset % 16u) / 4u) == 2u)) ? (v_2.zw) : (v_2.xy)));
+  uint4 v_4 = u[((8u + start_byte_offset) / 16u)];
+  float2 v_5 = asfloat(((((((8u + start_byte_offset) % 16u) / 4u) == 2u)) ? (v_4.zw) : (v_4.xy)));
+  uint4 v_6 = u[((16u + start_byte_offset) / 16u)];
+  float2 v_7 = asfloat(((((((16u + start_byte_offset) % 16u) / 4u) == 2u)) ? (v_6.zw) : (v_6.xy)));
+  uint4 v_8 = u[((24u + start_byte_offset) / 16u)];
+  return float4x2(v_3, v_5, v_7, asfloat(((((((24u + start_byte_offset) % 16u) / 4u) == 2u)) ? (v_8.zw) : (v_8.xy))));
+}
+
+void v_9(uint offset, S obj) {
+  s.Store((offset + 0u), asuint(obj.before));
+  v((offset + 8u), obj.m);
+  s.Store((offset + 64u), asuint(obj.after));
+}
+
+S v_10(uint start_byte_offset) {
+  int v_11 = asint(u[(start_byte_offset / 16u)][((start_byte_offset % 16u) / 4u)]);
+  float4x2 v_12 = v_1((8u + start_byte_offset));
+  S v_13 = {v_11, v_12, asint(u[((64u + start_byte_offset) / 16u)][(((64u + start_byte_offset) % 16u) / 4u)])};
+  return v_13;
+}
+
+void v_14(uint offset, S obj[4]) {
+  {
+    uint v_15 = 0u;
+    v_15 = 0u;
+    while(true) {
+      uint v_16 = v_15;
+      if ((v_16 >= 4u)) {
+        break;
+      }
+      S v_17 = obj[v_16];
+      v_9((offset + (v_16 * 128u)), v_17);
+      {
+        v_15 = (v_16 + 1u);
+      }
+      continue;
+    }
+  }
+}
+
+typedef S ary_ret[4];
+ary_ret v_18(uint start_byte_offset) {
+  S a[4] = (S[4])0;
+  {
+    uint v_19 = 0u;
+    v_19 = 0u;
+    while(true) {
+      uint v_20 = v_19;
+      if ((v_20 >= 4u)) {
+        break;
+      }
+      S v_21 = v_10((start_byte_offset + (v_20 * 128u)));
+      a[v_20] = v_21;
+      {
+        v_19 = (v_20 + 1u);
+      }
+      continue;
+    }
+  }
+  S v_22[4] = a;
+  return v_22;
+}
+
+[numthreads(1, 1, 1)]
+void f() {
+  S v_23[4] = v_18(0u);
+  v_14(0u, v_23);
+  S v_24 = v_10(256u);
+  v_9(128u, v_24);
+  v(392u, v_1(264u));
+  s.Store2(136u, asuint(asfloat(u[1u].xy).yx));
+}
+
diff --git a/test/tint/buffer/uniform/std140/struct/mat4x2_f32/to_storage.wgsl.expected.ir.fxc.hlsl b/test/tint/buffer/uniform/std140/struct/mat4x2_f32/to_storage.wgsl.expected.ir.fxc.hlsl
index 3f437dc..20c7794 100644
--- a/test/tint/buffer/uniform/std140/struct/mat4x2_f32/to_storage.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/buffer/uniform/std140/struct/mat4x2_f32/to_storage.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,94 @@
-SKIP: FAILED
+struct S {
+  int before;
+  float4x2 m;
+  int after;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Access
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+
+cbuffer cbuffer_u : register(b0) {
+  uint4 u[32];
+};
+RWByteAddressBuffer s : register(u1);
+void v(uint offset, float4x2 obj) {
+  s.Store2((offset + 0u), asuint(obj[0u]));
+  s.Store2((offset + 8u), asuint(obj[1u]));
+  s.Store2((offset + 16u), asuint(obj[2u]));
+  s.Store2((offset + 24u), asuint(obj[3u]));
+}
+
+float4x2 v_1(uint start_byte_offset) {
+  uint4 v_2 = u[(start_byte_offset / 16u)];
+  float2 v_3 = asfloat((((((start_byte_offset % 16u) / 4u) == 2u)) ? (v_2.zw) : (v_2.xy)));
+  uint4 v_4 = u[((8u + start_byte_offset) / 16u)];
+  float2 v_5 = asfloat(((((((8u + start_byte_offset) % 16u) / 4u) == 2u)) ? (v_4.zw) : (v_4.xy)));
+  uint4 v_6 = u[((16u + start_byte_offset) / 16u)];
+  float2 v_7 = asfloat(((((((16u + start_byte_offset) % 16u) / 4u) == 2u)) ? (v_6.zw) : (v_6.xy)));
+  uint4 v_8 = u[((24u + start_byte_offset) / 16u)];
+  return float4x2(v_3, v_5, v_7, asfloat(((((((24u + start_byte_offset) % 16u) / 4u) == 2u)) ? (v_8.zw) : (v_8.xy))));
+}
+
+void v_9(uint offset, S obj) {
+  s.Store((offset + 0u), asuint(obj.before));
+  v((offset + 8u), obj.m);
+  s.Store((offset + 64u), asuint(obj.after));
+}
+
+S v_10(uint start_byte_offset) {
+  int v_11 = asint(u[(start_byte_offset / 16u)][((start_byte_offset % 16u) / 4u)]);
+  float4x2 v_12 = v_1((8u + start_byte_offset));
+  S v_13 = {v_11, v_12, asint(u[((64u + start_byte_offset) / 16u)][(((64u + start_byte_offset) % 16u) / 4u)])};
+  return v_13;
+}
+
+void v_14(uint offset, S obj[4]) {
+  {
+    uint v_15 = 0u;
+    v_15 = 0u;
+    while(true) {
+      uint v_16 = v_15;
+      if ((v_16 >= 4u)) {
+        break;
+      }
+      S v_17 = obj[v_16];
+      v_9((offset + (v_16 * 128u)), v_17);
+      {
+        v_15 = (v_16 + 1u);
+      }
+      continue;
+    }
+  }
+}
+
+typedef S ary_ret[4];
+ary_ret v_18(uint start_byte_offset) {
+  S a[4] = (S[4])0;
+  {
+    uint v_19 = 0u;
+    v_19 = 0u;
+    while(true) {
+      uint v_20 = v_19;
+      if ((v_20 >= 4u)) {
+        break;
+      }
+      S v_21 = v_10((start_byte_offset + (v_20 * 128u)));
+      a[v_20] = v_21;
+      {
+        v_19 = (v_20 + 1u);
+      }
+      continue;
+    }
+  }
+  S v_22[4] = a;
+  return v_22;
+}
+
+[numthreads(1, 1, 1)]
+void f() {
+  S v_23[4] = v_18(0u);
+  v_14(0u, v_23);
+  S v_24 = v_10(256u);
+  v_9(128u, v_24);
+  v(392u, v_1(264u));
+  s.Store2(136u, asuint(asfloat(u[1u].xy).yx));
+}
+
diff --git a/test/tint/buffer/uniform/std140/struct/mat4x2_f32/to_workgroup.wgsl.expected.ir.dxc.hlsl b/test/tint/buffer/uniform/std140/struct/mat4x2_f32/to_workgroup.wgsl.expected.ir.dxc.hlsl
index 3f437dc..d70aa8f 100644
--- a/test/tint/buffer/uniform/std140/struct/mat4x2_f32/to_workgroup.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/buffer/uniform/std140/struct/mat4x2_f32/to_workgroup.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,87 @@
-SKIP: FAILED
+struct S {
+  int before;
+  float4x2 m;
+  int after;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Access
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct f_inputs {
+  uint tint_local_index : SV_GroupIndex;
+};
+
+
+cbuffer cbuffer_u : register(b0) {
+  uint4 u[32];
+};
+groupshared S w[4];
+float4x2 v(uint start_byte_offset) {
+  uint4 v_1 = u[(start_byte_offset / 16u)];
+  float2 v_2 = asfloat((((((start_byte_offset % 16u) / 4u) == 2u)) ? (v_1.zw) : (v_1.xy)));
+  uint4 v_3 = u[((8u + start_byte_offset) / 16u)];
+  float2 v_4 = asfloat(((((((8u + start_byte_offset) % 16u) / 4u) == 2u)) ? (v_3.zw) : (v_3.xy)));
+  uint4 v_5 = u[((16u + start_byte_offset) / 16u)];
+  float2 v_6 = asfloat(((((((16u + start_byte_offset) % 16u) / 4u) == 2u)) ? (v_5.zw) : (v_5.xy)));
+  uint4 v_7 = u[((24u + start_byte_offset) / 16u)];
+  return float4x2(v_2, v_4, v_6, asfloat(((((((24u + start_byte_offset) % 16u) / 4u) == 2u)) ? (v_7.zw) : (v_7.xy))));
+}
+
+S v_8(uint start_byte_offset) {
+  int v_9 = asint(u[(start_byte_offset / 16u)][((start_byte_offset % 16u) / 4u)]);
+  float4x2 v_10 = v((8u + start_byte_offset));
+  S v_11 = {v_9, v_10, asint(u[((64u + start_byte_offset) / 16u)][(((64u + start_byte_offset) % 16u) / 4u)])};
+  return v_11;
+}
+
+typedef S ary_ret[4];
+ary_ret v_12(uint start_byte_offset) {
+  S a[4] = (S[4])0;
+  {
+    uint v_13 = 0u;
+    v_13 = 0u;
+    while(true) {
+      uint v_14 = v_13;
+      if ((v_14 >= 4u)) {
+        break;
+      }
+      S v_15 = v_8((start_byte_offset + (v_14 * 128u)));
+      a[v_14] = v_15;
+      {
+        v_13 = (v_14 + 1u);
+      }
+      continue;
+    }
+  }
+  S v_16[4] = a;
+  return v_16;
+}
+
+void f_inner(uint tint_local_index) {
+  {
+    uint v_17 = 0u;
+    v_17 = tint_local_index;
+    while(true) {
+      uint v_18 = v_17;
+      if ((v_18 >= 4u)) {
+        break;
+      }
+      S v_19 = (S)0;
+      w[v_18] = v_19;
+      {
+        v_17 = (v_18 + 1u);
+      }
+      continue;
+    }
+  }
+  GroupMemoryBarrierWithGroupSync();
+  S v_20[4] = v_12(0u);
+  w = v_20;
+  S v_21 = v_8(256u);
+  w[1] = v_21;
+  w[3].m = v(264u);
+  w[1].m[0] = asfloat(u[1u].xy).yx;
+}
+
+[numthreads(1, 1, 1)]
+void f(f_inputs inputs) {
+  f_inner(inputs.tint_local_index);
+}
+
diff --git a/test/tint/buffer/uniform/std140/struct/mat4x2_f32/to_workgroup.wgsl.expected.ir.fxc.hlsl b/test/tint/buffer/uniform/std140/struct/mat4x2_f32/to_workgroup.wgsl.expected.ir.fxc.hlsl
index 3f437dc..d70aa8f 100644
--- a/test/tint/buffer/uniform/std140/struct/mat4x2_f32/to_workgroup.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/buffer/uniform/std140/struct/mat4x2_f32/to_workgroup.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,87 @@
-SKIP: FAILED
+struct S {
+  int before;
+  float4x2 m;
+  int after;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Access
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct f_inputs {
+  uint tint_local_index : SV_GroupIndex;
+};
+
+
+cbuffer cbuffer_u : register(b0) {
+  uint4 u[32];
+};
+groupshared S w[4];
+float4x2 v(uint start_byte_offset) {
+  uint4 v_1 = u[(start_byte_offset / 16u)];
+  float2 v_2 = asfloat((((((start_byte_offset % 16u) / 4u) == 2u)) ? (v_1.zw) : (v_1.xy)));
+  uint4 v_3 = u[((8u + start_byte_offset) / 16u)];
+  float2 v_4 = asfloat(((((((8u + start_byte_offset) % 16u) / 4u) == 2u)) ? (v_3.zw) : (v_3.xy)));
+  uint4 v_5 = u[((16u + start_byte_offset) / 16u)];
+  float2 v_6 = asfloat(((((((16u + start_byte_offset) % 16u) / 4u) == 2u)) ? (v_5.zw) : (v_5.xy)));
+  uint4 v_7 = u[((24u + start_byte_offset) / 16u)];
+  return float4x2(v_2, v_4, v_6, asfloat(((((((24u + start_byte_offset) % 16u) / 4u) == 2u)) ? (v_7.zw) : (v_7.xy))));
+}
+
+S v_8(uint start_byte_offset) {
+  int v_9 = asint(u[(start_byte_offset / 16u)][((start_byte_offset % 16u) / 4u)]);
+  float4x2 v_10 = v((8u + start_byte_offset));
+  S v_11 = {v_9, v_10, asint(u[((64u + start_byte_offset) / 16u)][(((64u + start_byte_offset) % 16u) / 4u)])};
+  return v_11;
+}
+
+typedef S ary_ret[4];
+ary_ret v_12(uint start_byte_offset) {
+  S a[4] = (S[4])0;
+  {
+    uint v_13 = 0u;
+    v_13 = 0u;
+    while(true) {
+      uint v_14 = v_13;
+      if ((v_14 >= 4u)) {
+        break;
+      }
+      S v_15 = v_8((start_byte_offset + (v_14 * 128u)));
+      a[v_14] = v_15;
+      {
+        v_13 = (v_14 + 1u);
+      }
+      continue;
+    }
+  }
+  S v_16[4] = a;
+  return v_16;
+}
+
+void f_inner(uint tint_local_index) {
+  {
+    uint v_17 = 0u;
+    v_17 = tint_local_index;
+    while(true) {
+      uint v_18 = v_17;
+      if ((v_18 >= 4u)) {
+        break;
+      }
+      S v_19 = (S)0;
+      w[v_18] = v_19;
+      {
+        v_17 = (v_18 + 1u);
+      }
+      continue;
+    }
+  }
+  GroupMemoryBarrierWithGroupSync();
+  S v_20[4] = v_12(0u);
+  w = v_20;
+  S v_21 = v_8(256u);
+  w[1] = v_21;
+  w[3].m = v(264u);
+  w[1].m[0] = asfloat(u[1u].xy).yx;
+}
+
+[numthreads(1, 1, 1)]
+void f(f_inputs inputs) {
+  f_inner(inputs.tint_local_index);
+}
+
diff --git a/test/tint/buffer/uniform/std140/struct/mat4x3_f16/dynamic_index_via_ptr.wgsl.expected.ir.dxc.hlsl b/test/tint/buffer/uniform/std140/struct/mat4x3_f16/dynamic_index_via_ptr.wgsl.expected.ir.dxc.hlsl
index 3f437dc..9120550 100644
--- a/test/tint/buffer/uniform/std140/struct/mat4x3_f16/dynamic_index_via_ptr.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/buffer/uniform/std140/struct/mat4x3_f16/dynamic_index_via_ptr.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,290 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Access
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+
+enable f16;
+
+struct Inner {
+  @size(64)
+  m : mat4x3<f16>,
+}
+
+struct Outer {
+  a : array<Inner, 4>,
+}
+
+@group(0) @binding(0) var<uniform> a : array<Outer, 4>;
+
+var<private> counter = 0;
+
+fn i() -> i32 {
+  counter++;
+  return counter;
+}
+
+@compute @workgroup_size(1)
+fn f() {
+  let p_a = &(a);
+  let p_a_i = &((*(p_a))[i()]);
+  let p_a_i_a = &((*(p_a_i)).a);
+  let p_a_i_a_i = &((*(p_a_i_a))[i()]);
+  let p_a_i_a_i_m = &((*(p_a_i_a_i)).m);
+  let p_a_i_a_i_m_i = &((*(p_a_i_a_i_m))[i()]);
+  let l_a : array<Outer, 4> = *(p_a);
+  let l_a_i : Outer = *(p_a_i);
+  let l_a_i_a : array<Inner, 4> = *(p_a_i_a);
+  let l_a_i_a_i : Inner = *(p_a_i_a_i);
+  let l_a_i_a_i_m : mat4x3<f16> = *(p_a_i_a_i_m);
+  let l_a_i_a_i_m_i : vec3<f16> = *(p_a_i_a_i_m_i);
+  let l_a_i_a_i_m_i_i : f16 = (*(p_a_i_a_i_m_i))[i()];
+}
+
+Failed to generate: :40:24 error: binary: %26 is not in scope
+    %25:u32 = add %24, %26
+                       ^^^
+
+:24:3 note: in block
+  $B3: {
+  ^^^
+
+:62:5 note: %26 declared here
+    %26:u32 = mul %50, 2u
+    ^^^^^^^
+
+:45:24 error: binary: %26 is not in scope
+    %32:u32 = add %31, %26
+                       ^^^
+
+:24:3 note: in block
+  $B3: {
+  ^^^
+
+:62:5 note: %26 declared here
+    %26:u32 = mul %50, 2u
+    ^^^^^^^
+
+:50:24 error: binary: %26 is not in scope
+    %38:u32 = add %37, %26
+                       ^^^
+
+:24:3 note: in block
+  $B3: {
+  ^^^
+
+:62:5 note: %26 declared here
+    %26:u32 = mul %50, 2u
+    ^^^^^^^
+
+:62:5 error: binary: no matching overload for 'operator * (i32, u32)'
+
+9 candidate operators:
+ • 'operator * (T  ✓ , T  ✗ ) -> T' where:
+      ✓  'T' is 'f32', 'i32', 'u32' or 'f16'
+ • 'operator * (vecN<T>  ✗ , T  ✓ ) -> vecN<T>' where:
+      ✓  'T' is 'f32', 'i32', 'u32' or 'f16'
+ • 'operator * (T  ✓ , vecN<T>  ✗ ) -> vecN<T>' where:
+      ✓  'T' is 'f32', 'i32', 'u32' or 'f16'
+ • 'operator * (T  ✗ , matNxM<T>  ✗ ) -> matNxM<T>' where:
+      ✗  'T' is 'f32' or 'f16'
+ • 'operator * (matNxM<T>  ✗ , T  ✗ ) -> matNxM<T>' where:
+      ✗  'T' is 'f32' or 'f16'
+ • 'operator * (vecN<T>  ✗ , vecN<T>  ✗ ) -> vecN<T>' where:
+      ✗  'T' is 'f32', 'i32', 'u32' or 'f16'
+ • 'operator * (matCxR<T>  ✗ , vecC<T>  ✗ ) -> vecR<T>' where:
+      ✗  'T' is 'f32' or 'f16'
+ • 'operator * (vecR<T>  ✗ , matCxR<T>  ✗ ) -> vecC<T>' where:
+      ✗  'T' is 'f32' or 'f16'
+ • 'operator * (matKxR<T>  ✗ , matCxK<T>  ✗ ) -> matCxR<T>' where:
+      ✗  'T' is 'f32' or 'f16'
+
+    %26:u32 = mul %50, 2u
+    ^^^^^^^^^^^^^^^^^^^^^
+
+:24:3 note: in block
+  $B3: {
+  ^^^
+
+note: # Disassembly
+Inner = struct @align(8) {
+  m:mat4x3<f16> @offset(0)
+}
+
+Outer = struct @align(8) {
+  a:array<Inner, 4> @offset(0)
+}
+
+$B1: {  # root
+  %a:ptr<uniform, array<vec4<u32>, 64>, read> = var @binding_point(0, 0)
+  %counter:ptr<private, i32, read_write> = var, 0i
+}
+
+%i = func():i32 {
+  $B2: {
+    %4:i32 = load %counter
+    %5:i32 = add %4, 1i
+    store %counter, %5
+    %6:i32 = load %counter
+    ret %6
+  }
+}
+%f = @compute @workgroup_size(1, 1, 1) func():void {
+  $B3: {
+    %8:i32 = call %i
+    %9:u32 = convert %8
+    %10:u32 = mul 256u, %9
+    %11:i32 = call %i
+    %12:u32 = convert %11
+    %13:u32 = mul 64u, %12
+    %14:i32 = call %i
+    %15:u32 = convert %14
+    %16:u32 = mul 8u, %15
+    %17:array<Outer, 4> = call %18, 0u
+    %l_a:array<Outer, 4> = let %17
+    %20:Outer = call %21, %10
+    %l_a_i:Outer = let %20
+    %23:u32 = add %10, %13
+    %24:u32 = add %23, %16
+    %25:u32 = add %24, %26
+    %27:array<Inner, 4> = call %28, %25
+    %l_a_i_a:array<Inner, 4> = let %27
+    %30:u32 = add %10, %13
+    %31:u32 = add %30, %16
+    %32:u32 = add %31, %26
+    %33:Inner = call %34, %32
+    %l_a_i_a_i:Inner = let %33
+    %36:u32 = add %10, %13
+    %37:u32 = add %36, %16
+    %38:u32 = add %37, %26
+    %39:mat4x3<f16> = call %40, %38
+    %l_a_i_a_i_m:mat4x3<f16> = let %39
+    %42:u32 = add %10, %13
+    %43:u32 = add %42, %16
+    %44:u32 = div %43, 16u
+    %45:ptr<uniform, vec4<u32>, read> = access %a, %44
+    %46:vec4<u32> = load %45
+    %47:vec4<f16> = bitcast %46
+    %48:vec3<f16> = swizzle %47, xyz
+    %l_a_i_a_i_m_i:vec3<f16> = let %48
+    %50:i32 = call %i
+    %26:u32 = mul %50, 2u
+    %51:u32 = add %10, %13
+    %52:u32 = add %51, %16
+    %53:u32 = add %52, %26
+    %54:u32 = div %53, 16u
+    %55:ptr<uniform, vec4<u32>, read> = access %a, %54
+    %56:u32 = mod %53, 16u
+    %57:u32 = div %56, 4u
+    %58:u32 = load_vector_element %55, %57
+    %59:u32 = mod %53, 4u
+    %60:bool = eq %59, 0u
+    %61:u32 = hlsl.ternary 16u, 0u, %60
+    %62:u32 = shr %58, %61
+    %63:f32 = hlsl.f16tof32 %62
+    %64:f16 = convert %63
+    %l_a_i_a_i_m_i_i:f16 = let %64
+    ret
+  }
+}
+%21 = func(%start_byte_offset:u32):Outer {
+  $B4: {
+    %67:array<Inner, 4> = call %28, %start_byte_offset
+    %68:Outer = construct %67
+    ret %68
+  }
+}
+%28 = func(%start_byte_offset_1:u32):array<Inner, 4> {  # %start_byte_offset_1: 'start_byte_offset'
+  $B5: {
+    %a_1:ptr<function, array<Inner, 4>, read_write> = var, array<Inner, 4>(Inner(mat4x3<f16>(vec3<f16>(0.0h))))  # %a_1: 'a'
+    loop [i: $B6, b: $B7, c: $B8] {  # loop_1
+      $B6: {  # initializer
+        next_iteration 0u  # -> $B7
+      }
+      $B7 (%idx:u32): {  # body
+        %72:bool = gte %idx, 4u
+        if %72 [t: $B9] {  # if_1
+          $B9: {  # true
+            exit_loop  # loop_1
+          }
+        }
+        %73:u32 = mul %idx, 64u
+        %74:u32 = add %start_byte_offset_1, %73
+        %75:ptr<function, Inner, read_write> = access %a_1, %idx
+        %76:Inner = call %34, %74
+        store %75, %76
+        continue  # -> $B8
+      }
+      $B8: {  # continuing
+        %77:u32 = add %idx, 1u
+        next_iteration %77  # -> $B7
+      }
+    }
+    %78:array<Inner, 4> = load %a_1
+    ret %78
+  }
+}
+%34 = func(%start_byte_offset_2:u32):Inner {  # %start_byte_offset_2: 'start_byte_offset'
+  $B10: {
+    %80:mat4x3<f16> = call %40, %start_byte_offset_2
+    %81:Inner = construct %80
+    ret %81
+  }
+}
+%40 = func(%start_byte_offset_3:u32):mat4x3<f16> {  # %start_byte_offset_3: 'start_byte_offset'
+  $B11: {
+    %83:u32 = div %start_byte_offset_3, 16u
+    %84:ptr<uniform, vec4<u32>, read> = access %a, %83
+    %85:vec4<u32> = load %84
+    %86:vec4<f16> = bitcast %85
+    %87:vec3<f16> = swizzle %86, xyz
+    %88:u32 = add 8u, %start_byte_offset_3
+    %89:u32 = div %88, 16u
+    %90:ptr<uniform, vec4<u32>, read> = access %a, %89
+    %91:vec4<u32> = load %90
+    %92:vec4<f16> = bitcast %91
+    %93:vec3<f16> = swizzle %92, xyz
+    %94:u32 = add 16u, %start_byte_offset_3
+    %95:u32 = div %94, 16u
+    %96:ptr<uniform, vec4<u32>, read> = access %a, %95
+    %97:vec4<u32> = load %96
+    %98:vec4<f16> = bitcast %97
+    %99:vec3<f16> = swizzle %98, xyz
+    %100:u32 = add 24u, %start_byte_offset_3
+    %101:u32 = div %100, 16u
+    %102:ptr<uniform, vec4<u32>, read> = access %a, %101
+    %103:vec4<u32> = load %102
+    %104:vec4<f16> = bitcast %103
+    %105:vec3<f16> = swizzle %104, xyz
+    %106:mat4x3<f16> = construct %87, %93, %99, %105
+    ret %106
+  }
+}
+%18 = func(%start_byte_offset_4:u32):array<Outer, 4> {  # %start_byte_offset_4: 'start_byte_offset'
+  $B12: {
+    %a_2:ptr<function, array<Outer, 4>, read_write> = var, array<Outer, 4>(Outer(array<Inner, 4>(Inner(mat4x3<f16>(vec3<f16>(0.0h))))))  # %a_2: 'a'
+    loop [i: $B13, b: $B14, c: $B15] {  # loop_2
+      $B13: {  # initializer
+        next_iteration 0u  # -> $B14
+      }
+      $B14 (%idx_1:u32): {  # body
+        %110:bool = gte %idx_1, 4u
+        if %110 [t: $B16] {  # if_2
+          $B16: {  # true
+            exit_loop  # loop_2
+          }
+        }
+        %111:u32 = mul %idx_1, 256u
+        %112:u32 = add %start_byte_offset_4, %111
+        %113:ptr<function, Outer, read_write> = access %a_2, %idx_1
+        %114:Outer = call %21, %112
+        store %113, %114
+        continue  # -> $B15
+      }
+      $B15: {  # continuing
+        %115:u32 = add %idx_1, 1u
+        next_iteration %115  # -> $B14
+      }
+    }
+    %116:array<Outer, 4> = load %a_2
+    ret %116
+  }
+}
+
diff --git a/test/tint/buffer/uniform/std140/struct/mat4x3_f16/dynamic_index_via_ptr.wgsl.expected.ir.fxc.hlsl b/test/tint/buffer/uniform/std140/struct/mat4x3_f16/dynamic_index_via_ptr.wgsl.expected.ir.fxc.hlsl
index 3f437dc..f206ee8 100644
--- a/test/tint/buffer/uniform/std140/struct/mat4x3_f16/dynamic_index_via_ptr.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/buffer/uniform/std140/struct/mat4x3_f16/dynamic_index_via_ptr.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,305 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Access
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+
+enable f16;
+
+struct Inner {
+  @size(64)
+  m : mat4x3<f16>,
+}
+
+struct Outer {
+  a : array<Inner, 4>,
+}
+
+@group(0) @binding(0) var<uniform> a : array<Outer, 4>;
+
+var<private> counter = 0;
+
+fn i() -> i32 {
+  counter++;
+  return counter;
+}
+
+@compute @workgroup_size(1)
+fn f() {
+  let p_a = &(a);
+  let p_a_i = &((*(p_a))[i()]);
+  let p_a_i_a = &((*(p_a_i)).a);
+  let p_a_i_a_i = &((*(p_a_i_a))[i()]);
+  let p_a_i_a_i_m = &((*(p_a_i_a_i)).m);
+  let p_a_i_a_i_m_i = &((*(p_a_i_a_i_m))[i()]);
+  let l_a : array<Outer, 4> = *(p_a);
+  let l_a_i : Outer = *(p_a_i);
+  let l_a_i_a : array<Inner, 4> = *(p_a_i_a);
+  let l_a_i_a_i : Inner = *(p_a_i_a_i);
+  let l_a_i_a_i_m : mat4x3<f16> = *(p_a_i_a_i_m);
+  let l_a_i_a_i_m_i : vec3<f16> = *(p_a_i_a_i_m_i);
+  let l_a_i_a_i_m_i_i : f16 = (*(p_a_i_a_i_m_i))[i()];
+}
+
+Failed to generate: :38:24 error: binary: %23 is not in scope
+    %22:u32 = add %21, %23
+                       ^^^
+
+:24:3 note: in block
+  $B3: {
+  ^^^
+
+:65:5 note: %23 declared here
+    %23:u32 = mul %53, 2u
+    ^^^^^^^
+
+:43:24 error: binary: %23 is not in scope
+    %29:u32 = add %28, %23
+                       ^^^
+
+:24:3 note: in block
+  $B3: {
+  ^^^
+
+:65:5 note: %23 declared here
+    %23:u32 = mul %53, 2u
+    ^^^^^^^
+
+:48:24 error: binary: %23 is not in scope
+    %35:u32 = add %34, %23
+                       ^^^
+
+:24:3 note: in block
+  $B3: {
+  ^^^
+
+:65:5 note: %23 declared here
+    %23:u32 = mul %53, 2u
+    ^^^^^^^
+
+:53:24 error: binary: %23 is not in scope
+    %41:u32 = add %40, %23
+                       ^^^
+
+:24:3 note: in block
+  $B3: {
+  ^^^
+
+:65:5 note: %23 declared here
+    %23:u32 = mul %53, 2u
+    ^^^^^^^
+
+:65:5 error: binary: no matching overload for 'operator * (i32, u32)'
+
+9 candidate operators:
+ • 'operator * (T  ✓ , T  ✗ ) -> T' where:
+      ✓  'T' is 'f32', 'i32', 'u32' or 'f16'
+ • 'operator * (vecN<T>  ✗ , T  ✓ ) -> vecN<T>' where:
+      ✓  'T' is 'f32', 'i32', 'u32' or 'f16'
+ • 'operator * (T  ✓ , vecN<T>  ✗ ) -> vecN<T>' where:
+      ✓  'T' is 'f32', 'i32', 'u32' or 'f16'
+ • 'operator * (T  ✗ , matNxM<T>  ✗ ) -> matNxM<T>' where:
+      ✗  'T' is 'f32' or 'f16'
+ • 'operator * (matNxM<T>  ✗ , T  ✗ ) -> matNxM<T>' where:
+      ✗  'T' is 'f32' or 'f16'
+ • 'operator * (vecN<T>  ✗ , vecN<T>  ✗ ) -> vecN<T>' where:
+      ✗  'T' is 'f32', 'i32', 'u32' or 'f16'
+ • 'operator * (matCxR<T>  ✗ , vecC<T>  ✗ ) -> vecR<T>' where:
+      ✗  'T' is 'f32' or 'f16'
+ • 'operator * (vecR<T>  ✗ , matCxR<T>  ✗ ) -> vecC<T>' where:
+      ✗  'T' is 'f32' or 'f16'
+ • 'operator * (matKxR<T>  ✗ , matCxK<T>  ✗ ) -> matCxR<T>' where:
+      ✗  'T' is 'f32' or 'f16'
+
+    %23:u32 = mul %53, 2u
+    ^^^^^^^^^^^^^^^^^^^^^
+
+:24:3 note: in block
+  $B3: {
+  ^^^
+
+note: # Disassembly
+Inner = struct @align(8) {
+  m:mat4x3<f16> @offset(0)
+}
+
+Outer = struct @align(8) {
+  a:array<Inner, 4> @offset(0)
+}
+
+$B1: {  # root
+  %a:ptr<uniform, array<vec4<u32>, 64>, read> = var @binding_point(0, 0)
+  %counter:ptr<private, i32, read_write> = var, 0i
+}
+
+%i = func():i32 {
+  $B2: {
+    %4:i32 = load %counter
+    %5:i32 = add %4, 1i
+    store %counter, %5
+    %6:i32 = load %counter
+    ret %6
+  }
+}
+%f = @compute @workgroup_size(1, 1, 1) func():void {
+  $B3: {
+    %8:i32 = call %i
+    %9:u32 = convert %8
+    %10:u32 = mul 256u, %9
+    %11:i32 = call %i
+    %12:u32 = convert %11
+    %13:u32 = mul 64u, %12
+    %14:i32 = call %i
+    %15:u32 = convert %14
+    %16:u32 = mul 8u, %15
+    %17:array<Outer, 4> = call %18, 0u
+    %l_a:array<Outer, 4> = let %17
+    %20:u32 = add %10, %13
+    %21:u32 = add %20, %16
+    %22:u32 = add %21, %23
+    %24:Outer = call %25, %22
+    %l_a_i:Outer = let %24
+    %27:u32 = add %10, %13
+    %28:u32 = add %27, %16
+    %29:u32 = add %28, %23
+    %30:array<Inner, 4> = call %31, %29
+    %l_a_i_a:array<Inner, 4> = let %30
+    %33:u32 = add %10, %13
+    %34:u32 = add %33, %16
+    %35:u32 = add %34, %23
+    %36:Inner = call %37, %35
+    %l_a_i_a_i:Inner = let %36
+    %39:u32 = add %10, %13
+    %40:u32 = add %39, %16
+    %41:u32 = add %40, %23
+    %42:mat4x3<f16> = call %43, %41
+    %l_a_i_a_i_m:mat4x3<f16> = let %42
+    %45:u32 = add %10, %13
+    %46:u32 = add %45, %16
+    %47:u32 = div %46, 16u
+    %48:ptr<uniform, vec4<u32>, read> = access %a, %47
+    %49:vec4<u32> = load %48
+    %50:vec4<f16> = bitcast %49
+    %51:vec3<f16> = swizzle %50, xyz
+    %l_a_i_a_i_m_i:vec3<f16> = let %51
+    %53:i32 = call %i
+    %23:u32 = mul %53, 2u
+    %54:u32 = add %10, %13
+    %55:u32 = add %54, %16
+    %56:u32 = add %55, %23
+    %57:u32 = div %56, 16u
+    %58:ptr<uniform, vec4<u32>, read> = access %a, %57
+    %59:u32 = mod %56, 16u
+    %60:u32 = div %59, 4u
+    %61:u32 = load_vector_element %58, %60
+    %62:u32 = mod %56, 4u
+    %63:bool = eq %62, 0u
+    %64:u32 = hlsl.ternary 16u, 0u, %63
+    %65:u32 = shr %61, %64
+    %66:f32 = hlsl.f16tof32 %65
+    %67:f16 = convert %66
+    %l_a_i_a_i_m_i_i:f16 = let %67
+    ret
+  }
+}
+%43 = func(%start_byte_offset:u32):mat4x3<f16> {
+  $B4: {
+    %70:u32 = div %start_byte_offset, 16u
+    %71:ptr<uniform, vec4<u32>, read> = access %a, %70
+    %72:vec4<u32> = load %71
+    %73:vec4<f16> = bitcast %72
+    %74:vec3<f16> = swizzle %73, xyz
+    %75:u32 = add 8u, %start_byte_offset
+    %76:u32 = div %75, 16u
+    %77:ptr<uniform, vec4<u32>, read> = access %a, %76
+    %78:vec4<u32> = load %77
+    %79:vec4<f16> = bitcast %78
+    %80:vec3<f16> = swizzle %79, xyz
+    %81:u32 = add 16u, %start_byte_offset
+    %82:u32 = div %81, 16u
+    %83:ptr<uniform, vec4<u32>, read> = access %a, %82
+    %84:vec4<u32> = load %83
+    %85:vec4<f16> = bitcast %84
+    %86:vec3<f16> = swizzle %85, xyz
+    %87:u32 = add 24u, %start_byte_offset
+    %88:u32 = div %87, 16u
+    %89:ptr<uniform, vec4<u32>, read> = access %a, %88
+    %90:vec4<u32> = load %89
+    %91:vec4<f16> = bitcast %90
+    %92:vec3<f16> = swizzle %91, xyz
+    %93:mat4x3<f16> = construct %74, %80, %86, %92
+    ret %93
+  }
+}
+%37 = func(%start_byte_offset_1:u32):Inner {  # %start_byte_offset_1: 'start_byte_offset'
+  $B5: {
+    %95:mat4x3<f16> = call %43, %start_byte_offset_1
+    %96:Inner = construct %95
+    ret %96
+  }
+}
+%31 = func(%start_byte_offset_2:u32):array<Inner, 4> {  # %start_byte_offset_2: 'start_byte_offset'
+  $B6: {
+    %a_1:ptr<function, array<Inner, 4>, read_write> = var, array<Inner, 4>(Inner(mat4x3<f16>(vec3<f16>(0.0h))))  # %a_1: 'a'
+    loop [i: $B7, b: $B8, c: $B9] {  # loop_1
+      $B7: {  # initializer
+        next_iteration 0u  # -> $B8
+      }
+      $B8 (%idx:u32): {  # body
+        %100:bool = gte %idx, 4u
+        if %100 [t: $B10] {  # if_1
+          $B10: {  # true
+            exit_loop  # loop_1
+          }
+        }
+        %101:u32 = mul %idx, 64u
+        %102:u32 = add %start_byte_offset_2, %101
+        %103:ptr<function, Inner, read_write> = access %a_1, %idx
+        %104:Inner = call %37, %102
+        store %103, %104
+        continue  # -> $B9
+      }
+      $B9: {  # continuing
+        %105:u32 = add %idx, 1u
+        next_iteration %105  # -> $B8
+      }
+    }
+    %106:array<Inner, 4> = load %a_1
+    ret %106
+  }
+}
+%25 = func(%start_byte_offset_3:u32):Outer {  # %start_byte_offset_3: 'start_byte_offset'
+  $B11: {
+    %108:array<Inner, 4> = call %31, %start_byte_offset_3
+    %109:Outer = construct %108
+    ret %109
+  }
+}
+%18 = func(%start_byte_offset_4:u32):array<Outer, 4> {  # %start_byte_offset_4: 'start_byte_offset'
+  $B12: {
+    %a_2:ptr<function, array<Outer, 4>, read_write> = var, array<Outer, 4>(Outer(array<Inner, 4>(Inner(mat4x3<f16>(vec3<f16>(0.0h))))))  # %a_2: 'a'
+    loop [i: $B13, b: $B14, c: $B15] {  # loop_2
+      $B13: {  # initializer
+        next_iteration 0u  # -> $B14
+      }
+      $B14 (%idx_1:u32): {  # body
+        %113:bool = gte %idx_1, 4u
+        if %113 [t: $B16] {  # if_2
+          $B16: {  # true
+            exit_loop  # loop_2
+          }
+        }
+        %114:u32 = mul %idx_1, 256u
+        %115:u32 = add %start_byte_offset_4, %114
+        %116:ptr<function, Outer, read_write> = access %a_2, %idx_1
+        %117:Outer = call %25, %115
+        store %116, %117
+        continue  # -> $B15
+      }
+      $B15: {  # continuing
+        %118:u32 = add %idx_1, 1u
+        next_iteration %118  # -> $B14
+      }
+    }
+    %119:array<Outer, 4> = load %a_2
+    ret %119
+  }
+}
+
diff --git a/test/tint/buffer/uniform/std140/struct/mat4x3_f16/static_index_via_ptr.wgsl.expected.ir.dxc.hlsl b/test/tint/buffer/uniform/std140/struct/mat4x3_f16/static_index_via_ptr.wgsl.expected.ir.dxc.hlsl
index 3f437dc..87c8762 100644
--- a/test/tint/buffer/uniform/std140/struct/mat4x3_f16/static_index_via_ptr.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/buffer/uniform/std140/struct/mat4x3_f16/static_index_via_ptr.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,99 @@
-SKIP: FAILED
+struct Inner {
+  matrix<float16_t, 4, 3> m;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Access
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct Outer {
+  Inner a[4];
+};
+
+
+cbuffer cbuffer_a : register(b0) {
+  uint4 a[64];
+};
+vector<float16_t, 4> tint_bitcast_to_f16(uint4 src) {
+  uint4 v = src;
+  uint4 mask = (65535u).xxxx;
+  uint4 shift = (16u).xxxx;
+  float4 t_low = f16tof32((v & mask));
+  float4 t_high = f16tof32(((v >> shift) & mask));
+  float16_t v_1 = float16_t(t_low.x);
+  float16_t v_2 = float16_t(t_high.x);
+  float16_t v_3 = float16_t(t_low.y);
+  return vector<float16_t, 4>(v_1, v_2, v_3, float16_t(t_high.y));
+}
+
+matrix<float16_t, 4, 3> v_4(uint start_byte_offset) {
+  vector<float16_t, 3> v_5 = tint_bitcast_to_f16(a[(start_byte_offset / 16u)]).xyz;
+  vector<float16_t, 3> v_6 = tint_bitcast_to_f16(a[((8u + start_byte_offset) / 16u)]).xyz;
+  vector<float16_t, 3> v_7 = tint_bitcast_to_f16(a[((16u + start_byte_offset) / 16u)]).xyz;
+  return matrix<float16_t, 4, 3>(v_5, v_6, v_7, tint_bitcast_to_f16(a[((24u + start_byte_offset) / 16u)]).xyz);
+}
+
+Inner v_8(uint start_byte_offset) {
+  Inner v_9 = {v_4(start_byte_offset)};
+  return v_9;
+}
+
+typedef Inner ary_ret[4];
+ary_ret v_10(uint start_byte_offset) {
+  Inner a[4] = (Inner[4])0;
+  {
+    uint v_11 = 0u;
+    v_11 = 0u;
+    while(true) {
+      uint v_12 = v_11;
+      if ((v_12 >= 4u)) {
+        break;
+      }
+      Inner v_13 = v_8((start_byte_offset + (v_12 * 64u)));
+      a[v_12] = v_13;
+      {
+        v_11 = (v_12 + 1u);
+      }
+      continue;
+    }
+  }
+  Inner v_14[4] = a;
+  return v_14;
+}
+
+Outer v_15(uint start_byte_offset) {
+  Inner v_16[4] = v_10(start_byte_offset);
+  Outer v_17 = {v_16};
+  return v_17;
+}
+
+typedef Outer ary_ret_1[4];
+ary_ret_1 v_18(uint start_byte_offset) {
+  Outer a[4] = (Outer[4])0;
+  {
+    uint v_19 = 0u;
+    v_19 = 0u;
+    while(true) {
+      uint v_20 = v_19;
+      if ((v_20 >= 4u)) {
+        break;
+      }
+      Outer v_21 = v_15((start_byte_offset + (v_20 * 256u)));
+      a[v_20] = v_21;
+      {
+        v_19 = (v_20 + 1u);
+      }
+      continue;
+    }
+  }
+  Outer v_22[4] = a;
+  return v_22;
+}
+
+[numthreads(1, 1, 1)]
+void f() {
+  Outer l_a[4] = v_18(0u);
+  Outer l_a_3 = v_15(904u);
+  Inner l_a_3_a[4] = v_10(904u);
+  Inner l_a_3_a_2 = v_8(904u);
+  matrix<float16_t, 4, 3> l_a_3_a_2_m = v_4(904u);
+  vector<float16_t, 3> l_a_3_a_2_m_1 = tint_bitcast_to_f16(a[56u]).xyz;
+  float16_t l_a_3_a_2_m_1_0 = float16_t(f16tof32(a[56u].z));
+}
+
diff --git a/test/tint/buffer/uniform/std140/struct/mat4x3_f16/static_index_via_ptr.wgsl.expected.ir.fxc.hlsl b/test/tint/buffer/uniform/std140/struct/mat4x3_f16/static_index_via_ptr.wgsl.expected.ir.fxc.hlsl
index 3f437dc..79eac5c 100644
--- a/test/tint/buffer/uniform/std140/struct/mat4x3_f16/static_index_via_ptr.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/buffer/uniform/std140/struct/mat4x3_f16/static_index_via_ptr.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,104 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Access
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct Inner {
+  matrix<float16_t, 4, 3> m;
+};
+
+struct Outer {
+  Inner a[4];
+};
+
+
+cbuffer cbuffer_a : register(b0) {
+  uint4 a[64];
+};
+vector<float16_t, 4> tint_bitcast_to_f16(uint4 src) {
+  uint4 v = src;
+  uint4 mask = (65535u).xxxx;
+  uint4 shift = (16u).xxxx;
+  float4 t_low = f16tof32((v & mask));
+  float4 t_high = f16tof32(((v >> shift) & mask));
+  float16_t v_1 = float16_t(t_low.x);
+  float16_t v_2 = float16_t(t_high.x);
+  float16_t v_3 = float16_t(t_low.y);
+  return vector<float16_t, 4>(v_1, v_2, v_3, float16_t(t_high.y));
+}
+
+matrix<float16_t, 4, 3> v_4(uint start_byte_offset) {
+  vector<float16_t, 3> v_5 = tint_bitcast_to_f16(a[(start_byte_offset / 16u)]).xyz;
+  vector<float16_t, 3> v_6 = tint_bitcast_to_f16(a[((8u + start_byte_offset) / 16u)]).xyz;
+  vector<float16_t, 3> v_7 = tint_bitcast_to_f16(a[((16u + start_byte_offset) / 16u)]).xyz;
+  return matrix<float16_t, 4, 3>(v_5, v_6, v_7, tint_bitcast_to_f16(a[((24u + start_byte_offset) / 16u)]).xyz);
+}
+
+Inner v_8(uint start_byte_offset) {
+  Inner v_9 = {v_4(start_byte_offset)};
+  return v_9;
+}
+
+typedef Inner ary_ret[4];
+ary_ret v_10(uint start_byte_offset) {
+  Inner a[4] = (Inner[4])0;
+  {
+    uint v_11 = 0u;
+    v_11 = 0u;
+    while(true) {
+      uint v_12 = v_11;
+      if ((v_12 >= 4u)) {
+        break;
+      }
+      Inner v_13 = v_8((start_byte_offset + (v_12 * 64u)));
+      a[v_12] = v_13;
+      {
+        v_11 = (v_12 + 1u);
+      }
+      continue;
+    }
+  }
+  Inner v_14[4] = a;
+  return v_14;
+}
+
+Outer v_15(uint start_byte_offset) {
+  Inner v_16[4] = v_10(start_byte_offset);
+  Outer v_17 = {v_16};
+  return v_17;
+}
+
+typedef Outer ary_ret_1[4];
+ary_ret_1 v_18(uint start_byte_offset) {
+  Outer a[4] = (Outer[4])0;
+  {
+    uint v_19 = 0u;
+    v_19 = 0u;
+    while(true) {
+      uint v_20 = v_19;
+      if ((v_20 >= 4u)) {
+        break;
+      }
+      Outer v_21 = v_15((start_byte_offset + (v_20 * 256u)));
+      a[v_20] = v_21;
+      {
+        v_19 = (v_20 + 1u);
+      }
+      continue;
+    }
+  }
+  Outer v_22[4] = a;
+  return v_22;
+}
+
+[numthreads(1, 1, 1)]
+void f() {
+  Outer l_a[4] = v_18(0u);
+  Outer l_a_3 = v_15(904u);
+  Inner l_a_3_a[4] = v_10(904u);
+  Inner l_a_3_a_2 = v_8(904u);
+  matrix<float16_t, 4, 3> l_a_3_a_2_m = v_4(896u);
+  vector<float16_t, 3> l_a_3_a_2_m_1 = tint_bitcast_to_f16(a[56u]).xyz;
+  float16_t l_a_3_a_2_m_1_0 = float16_t(f16tof32(a[56u].z));
+}
+
+FXC validation failure:
+c:\src\dawn\Shader@0x00000187ABFD1260(2,10-18): error X3000: syntax error: unexpected token 'float16_t'
+
diff --git a/test/tint/buffer/uniform/std140/struct/mat4x3_f16/to_builtin.wgsl.expected.ir.dxc.hlsl b/test/tint/buffer/uniform/std140/struct/mat4x3_f16/to_builtin.wgsl.expected.ir.dxc.hlsl
index 3f437dc..336635e 100644
--- a/test/tint/buffer/uniform/std140/struct/mat4x3_f16/to_builtin.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/buffer/uniform/std140/struct/mat4x3_f16/to_builtin.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,30 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Access
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+cbuffer cbuffer_u : register(b0) {
+  uint4 u[32];
+};
+vector<float16_t, 4> tint_bitcast_to_f16(uint4 src) {
+  uint4 v = src;
+  uint4 mask = (65535u).xxxx;
+  uint4 shift = (16u).xxxx;
+  float4 t_low = f16tof32((v & mask));
+  float4 t_high = f16tof32(((v >> shift) & mask));
+  float16_t v_1 = float16_t(t_low.x);
+  float16_t v_2 = float16_t(t_high.x);
+  float16_t v_3 = float16_t(t_low.y);
+  return vector<float16_t, 4>(v_1, v_2, v_3, float16_t(t_high.y));
+}
+
+matrix<float16_t, 4, 3> v_4(uint start_byte_offset) {
+  vector<float16_t, 3> v_5 = tint_bitcast_to_f16(u[(start_byte_offset / 16u)]).xyz;
+  vector<float16_t, 3> v_6 = tint_bitcast_to_f16(u[((8u + start_byte_offset) / 16u)]).xyz;
+  vector<float16_t, 3> v_7 = tint_bitcast_to_f16(u[((16u + start_byte_offset) / 16u)]).xyz;
+  return matrix<float16_t, 4, 3>(v_5, v_6, v_7, tint_bitcast_to_f16(u[((24u + start_byte_offset) / 16u)]).xyz);
+}
+
+[numthreads(1, 1, 1)]
+void f() {
+  matrix<float16_t, 3, 4> t = transpose(v_4(264u));
+  float16_t l = length(tint_bitcast_to_f16(u[1u]).xyz.zxy);
+  float16_t a = abs(tint_bitcast_to_f16(u[1u]).xyz.zxy[0u]);
+}
+
diff --git a/test/tint/buffer/uniform/std140/struct/mat4x3_f16/to_builtin.wgsl.expected.ir.fxc.hlsl b/test/tint/buffer/uniform/std140/struct/mat4x3_f16/to_builtin.wgsl.expected.ir.fxc.hlsl
index 3f437dc..b1d7bfc 100644
--- a/test/tint/buffer/uniform/std140/struct/mat4x3_f16/to_builtin.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/buffer/uniform/std140/struct/mat4x3_f16/to_builtin.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,35 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Access
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+
+cbuffer cbuffer_u : register(b0) {
+  uint4 u[32];
+};
+vector<float16_t, 4> tint_bitcast_to_f16(uint4 src) {
+  uint4 v = src;
+  uint4 mask = (65535u).xxxx;
+  uint4 shift = (16u).xxxx;
+  float4 t_low = f16tof32((v & mask));
+  float4 t_high = f16tof32(((v >> shift) & mask));
+  float16_t v_1 = float16_t(t_low.x);
+  float16_t v_2 = float16_t(t_high.x);
+  float16_t v_3 = float16_t(t_low.y);
+  return vector<float16_t, 4>(v_1, v_2, v_3, float16_t(t_high.y));
+}
+
+matrix<float16_t, 4, 3> v_4(uint start_byte_offset) {
+  vector<float16_t, 3> v_5 = tint_bitcast_to_f16(u[(start_byte_offset / 16u)]).xyz;
+  vector<float16_t, 3> v_6 = tint_bitcast_to_f16(u[((8u + start_byte_offset) / 16u)]).xyz;
+  vector<float16_t, 3> v_7 = tint_bitcast_to_f16(u[((16u + start_byte_offset) / 16u)]).xyz;
+  return matrix<float16_t, 4, 3>(v_5, v_6, v_7, tint_bitcast_to_f16(u[((24u + start_byte_offset) / 16u)]).xyz);
+}
+
+[numthreads(1, 1, 1)]
+void f() {
+  matrix<float16_t, 3, 4> t = transpose(v_4(264u));
+  float16_t l = length(tint_bitcast_to_f16(u[1u]).xyz.zxy);
+  float16_t a = abs(tint_bitcast_to_f16(u[1u]).xyz.zxy[0u]);
+}
+
+FXC validation failure:
+c:\src\dawn\Shader@0x0000022ADAD119A0(5,8-16): error X3000: syntax error: unexpected token 'float16_t'
+
diff --git a/test/tint/buffer/uniform/std140/struct/mat4x3_f16/to_fn.wgsl.expected.ir.dxc.hlsl b/test/tint/buffer/uniform/std140/struct/mat4x3_f16/to_fn.wgsl.expected.ir.dxc.hlsl
index 3f437dc..098dd78 100644
--- a/test/tint/buffer/uniform/std140/struct/mat4x3_f16/to_fn.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/buffer/uniform/std140/struct/mat4x3_f16/to_fn.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,85 @@
-SKIP: FAILED
+struct S {
+  int before;
+  matrix<float16_t, 4, 3> m;
+  int after;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Access
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+
+cbuffer cbuffer_u : register(b0) {
+  uint4 u[32];
+};
+void a(S a_1[4]) {
+}
+
+void b(S s) {
+}
+
+void c(matrix<float16_t, 4, 3> m) {
+}
+
+void d(vector<float16_t, 3> v) {
+}
+
+void e(float16_t f) {
+}
+
+vector<float16_t, 4> tint_bitcast_to_f16(uint4 src) {
+  uint4 v = src;
+  uint4 mask = (65535u).xxxx;
+  uint4 shift = (16u).xxxx;
+  float4 t_low = f16tof32((v & mask));
+  float4 t_high = f16tof32(((v >> shift) & mask));
+  float16_t v_1 = float16_t(t_low.x);
+  float16_t v_2 = float16_t(t_high.x);
+  float16_t v_3 = float16_t(t_low.y);
+  return vector<float16_t, 4>(v_1, v_2, v_3, float16_t(t_high.y));
+}
+
+matrix<float16_t, 4, 3> v_4(uint start_byte_offset) {
+  vector<float16_t, 3> v_5 = tint_bitcast_to_f16(u[(start_byte_offset / 16u)]).xyz;
+  vector<float16_t, 3> v_6 = tint_bitcast_to_f16(u[((8u + start_byte_offset) / 16u)]).xyz;
+  vector<float16_t, 3> v_7 = tint_bitcast_to_f16(u[((16u + start_byte_offset) / 16u)]).xyz;
+  return matrix<float16_t, 4, 3>(v_5, v_6, v_7, tint_bitcast_to_f16(u[((24u + start_byte_offset) / 16u)]).xyz);
+}
+
+S v_8(uint start_byte_offset) {
+  int v_9 = asint(u[(start_byte_offset / 16u)][((start_byte_offset % 16u) / 4u)]);
+  matrix<float16_t, 4, 3> v_10 = v_4((8u + start_byte_offset));
+  S v_11 = {v_9, v_10, asint(u[((64u + start_byte_offset) / 16u)][(((64u + start_byte_offset) % 16u) / 4u)])};
+  return v_11;
+}
+
+typedef S ary_ret[4];
+ary_ret v_12(uint start_byte_offset) {
+  S a[4] = (S[4])0;
+  {
+    uint v_13 = 0u;
+    v_13 = 0u;
+    while(true) {
+      uint v_14 = v_13;
+      if ((v_14 >= 4u)) {
+        break;
+      }
+      S v_15 = v_8((start_byte_offset + (v_14 * 128u)));
+      a[v_14] = v_15;
+      {
+        v_13 = (v_14 + 1u);
+      }
+      continue;
+    }
+  }
+  S v_16[4] = a;
+  return v_16;
+}
+
+[numthreads(1, 1, 1)]
+void f() {
+  S v_17[4] = v_12(0u);
+  a(v_17);
+  S v_18 = v_8(256u);
+  b(v_18);
+  c(v_4(264u));
+  d(tint_bitcast_to_f16(u[1u]).xyz.zxy);
+  e(tint_bitcast_to_f16(u[1u]).xyz.zxy[0u]);
+}
+
diff --git a/test/tint/buffer/uniform/std140/struct/mat4x3_f16/to_fn.wgsl.expected.ir.fxc.hlsl b/test/tint/buffer/uniform/std140/struct/mat4x3_f16/to_fn.wgsl.expected.ir.fxc.hlsl
index 3f437dc..a907092 100644
--- a/test/tint/buffer/uniform/std140/struct/mat4x3_f16/to_fn.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/buffer/uniform/std140/struct/mat4x3_f16/to_fn.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,90 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Access
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct S {
+  int before;
+  matrix<float16_t, 4, 3> m;
+  int after;
+};
+
+
+cbuffer cbuffer_u : register(b0) {
+  uint4 u[32];
+};
+void a(S a_1[4]) {
+}
+
+void b(S s) {
+}
+
+void c(matrix<float16_t, 4, 3> m) {
+}
+
+void d(vector<float16_t, 3> v) {
+}
+
+void e(float16_t f) {
+}
+
+vector<float16_t, 4> tint_bitcast_to_f16(uint4 src) {
+  uint4 v = src;
+  uint4 mask = (65535u).xxxx;
+  uint4 shift = (16u).xxxx;
+  float4 t_low = f16tof32((v & mask));
+  float4 t_high = f16tof32(((v >> shift) & mask));
+  float16_t v_1 = float16_t(t_low.x);
+  float16_t v_2 = float16_t(t_high.x);
+  float16_t v_3 = float16_t(t_low.y);
+  return vector<float16_t, 4>(v_1, v_2, v_3, float16_t(t_high.y));
+}
+
+matrix<float16_t, 4, 3> v_4(uint start_byte_offset) {
+  vector<float16_t, 3> v_5 = tint_bitcast_to_f16(u[(start_byte_offset / 16u)]).xyz;
+  vector<float16_t, 3> v_6 = tint_bitcast_to_f16(u[((8u + start_byte_offset) / 16u)]).xyz;
+  vector<float16_t, 3> v_7 = tint_bitcast_to_f16(u[((16u + start_byte_offset) / 16u)]).xyz;
+  return matrix<float16_t, 4, 3>(v_5, v_6, v_7, tint_bitcast_to_f16(u[((24u + start_byte_offset) / 16u)]).xyz);
+}
+
+S v_8(uint start_byte_offset) {
+  int v_9 = asint(u[(start_byte_offset / 16u)][((start_byte_offset % 16u) / 4u)]);
+  matrix<float16_t, 4, 3> v_10 = v_4((8u + start_byte_offset));
+  S v_11 = {v_9, v_10, asint(u[((64u + start_byte_offset) / 16u)][(((64u + start_byte_offset) % 16u) / 4u)])};
+  return v_11;
+}
+
+typedef S ary_ret[4];
+ary_ret v_12(uint start_byte_offset) {
+  S a[4] = (S[4])0;
+  {
+    uint v_13 = 0u;
+    v_13 = 0u;
+    while(true) {
+      uint v_14 = v_13;
+      if ((v_14 >= 4u)) {
+        break;
+      }
+      S v_15 = v_8((start_byte_offset + (v_14 * 128u)));
+      a[v_14] = v_15;
+      {
+        v_13 = (v_14 + 1u);
+      }
+      continue;
+    }
+  }
+  S v_16[4] = a;
+  return v_16;
+}
+
+[numthreads(1, 1, 1)]
+void f() {
+  S v_17[4] = v_12(0u);
+  a(v_17);
+  S v_18 = v_8(256u);
+  b(v_18);
+  c(v_4(264u));
+  d(tint_bitcast_to_f16(u[1u]).xyz.zxy);
+  e(tint_bitcast_to_f16(u[1u]).xyz.zxy[0u]);
+}
+
+FXC validation failure:
+c:\src\dawn\Shader@0x00000224FA793890(3,10-18): error X3000: syntax error: unexpected token 'float16_t'
+
diff --git a/test/tint/buffer/uniform/std140/struct/mat4x3_f16/to_private.wgsl.expected.ir.dxc.hlsl b/test/tint/buffer/uniform/std140/struct/mat4x3_f16/to_private.wgsl.expected.ir.dxc.hlsl
index 3f437dc..3bf5b58 100644
--- a/test/tint/buffer/uniform/std140/struct/mat4x3_f16/to_private.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/buffer/uniform/std140/struct/mat4x3_f16/to_private.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,70 @@
-SKIP: FAILED
+struct S {
+  int before;
+  matrix<float16_t, 4, 3> m;
+  int after;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Access
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+
+cbuffer cbuffer_u : register(b0) {
+  uint4 u[32];
+};
+static S p[4] = (S[4])0;
+vector<float16_t, 4> tint_bitcast_to_f16(uint4 src) {
+  uint4 v = src;
+  uint4 mask = (65535u).xxxx;
+  uint4 shift = (16u).xxxx;
+  float4 t_low = f16tof32((v & mask));
+  float4 t_high = f16tof32(((v >> shift) & mask));
+  float16_t v_1 = float16_t(t_low.x);
+  float16_t v_2 = float16_t(t_high.x);
+  float16_t v_3 = float16_t(t_low.y);
+  return vector<float16_t, 4>(v_1, v_2, v_3, float16_t(t_high.y));
+}
+
+matrix<float16_t, 4, 3> v_4(uint start_byte_offset) {
+  vector<float16_t, 3> v_5 = tint_bitcast_to_f16(u[(start_byte_offset / 16u)]).xyz;
+  vector<float16_t, 3> v_6 = tint_bitcast_to_f16(u[((8u + start_byte_offset) / 16u)]).xyz;
+  vector<float16_t, 3> v_7 = tint_bitcast_to_f16(u[((16u + start_byte_offset) / 16u)]).xyz;
+  return matrix<float16_t, 4, 3>(v_5, v_6, v_7, tint_bitcast_to_f16(u[((24u + start_byte_offset) / 16u)]).xyz);
+}
+
+S v_8(uint start_byte_offset) {
+  int v_9 = asint(u[(start_byte_offset / 16u)][((start_byte_offset % 16u) / 4u)]);
+  matrix<float16_t, 4, 3> v_10 = v_4((8u + start_byte_offset));
+  S v_11 = {v_9, v_10, asint(u[((64u + start_byte_offset) / 16u)][(((64u + start_byte_offset) % 16u) / 4u)])};
+  return v_11;
+}
+
+typedef S ary_ret[4];
+ary_ret v_12(uint start_byte_offset) {
+  S a[4] = (S[4])0;
+  {
+    uint v_13 = 0u;
+    v_13 = 0u;
+    while(true) {
+      uint v_14 = v_13;
+      if ((v_14 >= 4u)) {
+        break;
+      }
+      S v_15 = v_8((start_byte_offset + (v_14 * 128u)));
+      a[v_14] = v_15;
+      {
+        v_13 = (v_14 + 1u);
+      }
+      continue;
+    }
+  }
+  S v_16[4] = a;
+  return v_16;
+}
+
+[numthreads(1, 1, 1)]
+void f() {
+  S v_17[4] = v_12(0u);
+  p = v_17;
+  S v_18 = v_8(256u);
+  p[1] = v_18;
+  p[3].m = v_4(264u);
+  p[1].m[0] = tint_bitcast_to_f16(u[1u]).xyz.zxy;
+}
+
diff --git a/test/tint/buffer/uniform/std140/struct/mat4x3_f16/to_private.wgsl.expected.ir.fxc.hlsl b/test/tint/buffer/uniform/std140/struct/mat4x3_f16/to_private.wgsl.expected.ir.fxc.hlsl
index 3f437dc..7b66d3f 100644
--- a/test/tint/buffer/uniform/std140/struct/mat4x3_f16/to_private.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/buffer/uniform/std140/struct/mat4x3_f16/to_private.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,75 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Access
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct S {
+  int before;
+  matrix<float16_t, 4, 3> m;
+  int after;
+};
+
+
+cbuffer cbuffer_u : register(b0) {
+  uint4 u[32];
+};
+static S p[4] = (S[4])0;
+vector<float16_t, 4> tint_bitcast_to_f16(uint4 src) {
+  uint4 v = src;
+  uint4 mask = (65535u).xxxx;
+  uint4 shift = (16u).xxxx;
+  float4 t_low = f16tof32((v & mask));
+  float4 t_high = f16tof32(((v >> shift) & mask));
+  float16_t v_1 = float16_t(t_low.x);
+  float16_t v_2 = float16_t(t_high.x);
+  float16_t v_3 = float16_t(t_low.y);
+  return vector<float16_t, 4>(v_1, v_2, v_3, float16_t(t_high.y));
+}
+
+matrix<float16_t, 4, 3> v_4(uint start_byte_offset) {
+  vector<float16_t, 3> v_5 = tint_bitcast_to_f16(u[(start_byte_offset / 16u)]).xyz;
+  vector<float16_t, 3> v_6 = tint_bitcast_to_f16(u[((8u + start_byte_offset) / 16u)]).xyz;
+  vector<float16_t, 3> v_7 = tint_bitcast_to_f16(u[((16u + start_byte_offset) / 16u)]).xyz;
+  return matrix<float16_t, 4, 3>(v_5, v_6, v_7, tint_bitcast_to_f16(u[((24u + start_byte_offset) / 16u)]).xyz);
+}
+
+S v_8(uint start_byte_offset) {
+  int v_9 = asint(u[(start_byte_offset / 16u)][((start_byte_offset % 16u) / 4u)]);
+  matrix<float16_t, 4, 3> v_10 = v_4((8u + start_byte_offset));
+  S v_11 = {v_9, v_10, asint(u[((64u + start_byte_offset) / 16u)][(((64u + start_byte_offset) % 16u) / 4u)])};
+  return v_11;
+}
+
+typedef S ary_ret[4];
+ary_ret v_12(uint start_byte_offset) {
+  S a[4] = (S[4])0;
+  {
+    uint v_13 = 0u;
+    v_13 = 0u;
+    while(true) {
+      uint v_14 = v_13;
+      if ((v_14 >= 4u)) {
+        break;
+      }
+      S v_15 = v_8((start_byte_offset + (v_14 * 128u)));
+      a[v_14] = v_15;
+      {
+        v_13 = (v_14 + 1u);
+      }
+      continue;
+    }
+  }
+  S v_16[4] = a;
+  return v_16;
+}
+
+[numthreads(1, 1, 1)]
+void f() {
+  S v_17[4] = v_12(0u);
+  p = v_17;
+  S v_18 = v_8(256u);
+  p[1] = v_18;
+  p[3].m = v_4(264u);
+  p[1].m[0] = tint_bitcast_to_f16(u[1u]).xyz.zxy;
+}
+
+FXC validation failure:
+c:\src\dawn\Shader@0x0000028D91FB47E0(3,10-18): error X3000: syntax error: unexpected token 'float16_t'
+
diff --git a/test/tint/buffer/uniform/std140/struct/mat4x3_f16/to_storage.wgsl.expected.ir.dxc.hlsl b/test/tint/buffer/uniform/std140/struct/mat4x3_f16/to_storage.wgsl.expected.ir.dxc.hlsl
index 3f437dc..fa632e5 100644
--- a/test/tint/buffer/uniform/std140/struct/mat4x3_f16/to_storage.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/buffer/uniform/std140/struct/mat4x3_f16/to_storage.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,102 @@
-SKIP: FAILED
+struct S {
+  int before;
+  matrix<float16_t, 4, 3> m;
+  int after;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Access
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+
+cbuffer cbuffer_u : register(b0) {
+  uint4 u[32];
+};
+RWByteAddressBuffer s : register(u1);
+vector<float16_t, 4> tint_bitcast_to_f16(uint4 src) {
+  uint4 v = src;
+  uint4 mask = (65535u).xxxx;
+  uint4 shift = (16u).xxxx;
+  float4 t_low = f16tof32((v & mask));
+  float4 t_high = f16tof32(((v >> shift) & mask));
+  float16_t v_1 = float16_t(t_low.x);
+  float16_t v_2 = float16_t(t_high.x);
+  float16_t v_3 = float16_t(t_low.y);
+  return vector<float16_t, 4>(v_1, v_2, v_3, float16_t(t_high.y));
+}
+
+void v_4(uint offset, matrix<float16_t, 4, 3> obj) {
+  s.Store<vector<float16_t, 3> >((offset + 0u), obj[0u]);
+  s.Store<vector<float16_t, 3> >((offset + 8u), obj[1u]);
+  s.Store<vector<float16_t, 3> >((offset + 16u), obj[2u]);
+  s.Store<vector<float16_t, 3> >((offset + 24u), obj[3u]);
+}
+
+matrix<float16_t, 4, 3> v_5(uint start_byte_offset) {
+  vector<float16_t, 3> v_6 = tint_bitcast_to_f16(u[(start_byte_offset / 16u)]).xyz;
+  vector<float16_t, 3> v_7 = tint_bitcast_to_f16(u[((8u + start_byte_offset) / 16u)]).xyz;
+  vector<float16_t, 3> v_8 = tint_bitcast_to_f16(u[((16u + start_byte_offset) / 16u)]).xyz;
+  return matrix<float16_t, 4, 3>(v_6, v_7, v_8, tint_bitcast_to_f16(u[((24u + start_byte_offset) / 16u)]).xyz);
+}
+
+void v_9(uint offset, S obj) {
+  s.Store((offset + 0u), asuint(obj.before));
+  v_4((offset + 8u), obj.m);
+  s.Store((offset + 64u), asuint(obj.after));
+}
+
+S v_10(uint start_byte_offset) {
+  int v_11 = asint(u[(start_byte_offset / 16u)][((start_byte_offset % 16u) / 4u)]);
+  matrix<float16_t, 4, 3> v_12 = v_5((8u + start_byte_offset));
+  S v_13 = {v_11, v_12, asint(u[((64u + start_byte_offset) / 16u)][(((64u + start_byte_offset) % 16u) / 4u)])};
+  return v_13;
+}
+
+void v_14(uint offset, S obj[4]) {
+  {
+    uint v_15 = 0u;
+    v_15 = 0u;
+    while(true) {
+      uint v_16 = v_15;
+      if ((v_16 >= 4u)) {
+        break;
+      }
+      S v_17 = obj[v_16];
+      v_9((offset + (v_16 * 128u)), v_17);
+      {
+        v_15 = (v_16 + 1u);
+      }
+      continue;
+    }
+  }
+}
+
+typedef S ary_ret[4];
+ary_ret v_18(uint start_byte_offset) {
+  S a[4] = (S[4])0;
+  {
+    uint v_19 = 0u;
+    v_19 = 0u;
+    while(true) {
+      uint v_20 = v_19;
+      if ((v_20 >= 4u)) {
+        break;
+      }
+      S v_21 = v_10((start_byte_offset + (v_20 * 128u)));
+      a[v_20] = v_21;
+      {
+        v_19 = (v_20 + 1u);
+      }
+      continue;
+    }
+  }
+  S v_22[4] = a;
+  return v_22;
+}
+
+[numthreads(1, 1, 1)]
+void f() {
+  S v_23[4] = v_18(0u);
+  v_14(0u, v_23);
+  S v_24 = v_10(256u);
+  v_9(128u, v_24);
+  v_4(392u, v_5(264u));
+  s.Store<vector<float16_t, 3> >(136u, tint_bitcast_to_f16(u[1u]).xyz.zxy);
+}
+
diff --git a/test/tint/buffer/uniform/std140/struct/mat4x3_f16/to_storage.wgsl.expected.ir.fxc.hlsl b/test/tint/buffer/uniform/std140/struct/mat4x3_f16/to_storage.wgsl.expected.ir.fxc.hlsl
index 3f437dc..0806f21 100644
--- a/test/tint/buffer/uniform/std140/struct/mat4x3_f16/to_storage.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/buffer/uniform/std140/struct/mat4x3_f16/to_storage.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,107 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Access
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct S {
+  int before;
+  matrix<float16_t, 4, 3> m;
+  int after;
+};
+
+
+cbuffer cbuffer_u : register(b0) {
+  uint4 u[32];
+};
+RWByteAddressBuffer s : register(u1);
+vector<float16_t, 4> tint_bitcast_to_f16(uint4 src) {
+  uint4 v = src;
+  uint4 mask = (65535u).xxxx;
+  uint4 shift = (16u).xxxx;
+  float4 t_low = f16tof32((v & mask));
+  float4 t_high = f16tof32(((v >> shift) & mask));
+  float16_t v_1 = float16_t(t_low.x);
+  float16_t v_2 = float16_t(t_high.x);
+  float16_t v_3 = float16_t(t_low.y);
+  return vector<float16_t, 4>(v_1, v_2, v_3, float16_t(t_high.y));
+}
+
+void v_4(uint offset, matrix<float16_t, 4, 3> obj) {
+  s.Store<vector<float16_t, 3> >((offset + 0u), obj[0u]);
+  s.Store<vector<float16_t, 3> >((offset + 8u), obj[1u]);
+  s.Store<vector<float16_t, 3> >((offset + 16u), obj[2u]);
+  s.Store<vector<float16_t, 3> >((offset + 24u), obj[3u]);
+}
+
+matrix<float16_t, 4, 3> v_5(uint start_byte_offset) {
+  vector<float16_t, 3> v_6 = tint_bitcast_to_f16(u[(start_byte_offset / 16u)]).xyz;
+  vector<float16_t, 3> v_7 = tint_bitcast_to_f16(u[((8u + start_byte_offset) / 16u)]).xyz;
+  vector<float16_t, 3> v_8 = tint_bitcast_to_f16(u[((16u + start_byte_offset) / 16u)]).xyz;
+  return matrix<float16_t, 4, 3>(v_6, v_7, v_8, tint_bitcast_to_f16(u[((24u + start_byte_offset) / 16u)]).xyz);
+}
+
+void v_9(uint offset, S obj) {
+  s.Store((offset + 0u), asuint(obj.before));
+  v_4((offset + 8u), obj.m);
+  s.Store((offset + 64u), asuint(obj.after));
+}
+
+S v_10(uint start_byte_offset) {
+  int v_11 = asint(u[(start_byte_offset / 16u)][((start_byte_offset % 16u) / 4u)]);
+  matrix<float16_t, 4, 3> v_12 = v_5((8u + start_byte_offset));
+  S v_13 = {v_11, v_12, asint(u[((64u + start_byte_offset) / 16u)][(((64u + start_byte_offset) % 16u) / 4u)])};
+  return v_13;
+}
+
+void v_14(uint offset, S obj[4]) {
+  {
+    uint v_15 = 0u;
+    v_15 = 0u;
+    while(true) {
+      uint v_16 = v_15;
+      if ((v_16 >= 4u)) {
+        break;
+      }
+      S v_17 = obj[v_16];
+      v_9((offset + (v_16 * 128u)), v_17);
+      {
+        v_15 = (v_16 + 1u);
+      }
+      continue;
+    }
+  }
+}
+
+typedef S ary_ret[4];
+ary_ret v_18(uint start_byte_offset) {
+  S a[4] = (S[4])0;
+  {
+    uint v_19 = 0u;
+    v_19 = 0u;
+    while(true) {
+      uint v_20 = v_19;
+      if ((v_20 >= 4u)) {
+        break;
+      }
+      S v_21 = v_10((start_byte_offset + (v_20 * 128u)));
+      a[v_20] = v_21;
+      {
+        v_19 = (v_20 + 1u);
+      }
+      continue;
+    }
+  }
+  S v_22[4] = a;
+  return v_22;
+}
+
+[numthreads(1, 1, 1)]
+void f() {
+  S v_23[4] = v_18(0u);
+  v_14(0u, v_23);
+  S v_24 = v_10(256u);
+  v_9(128u, v_24);
+  v_4(392u, v_5(264u));
+  s.Store<vector<float16_t, 3> >(136u, tint_bitcast_to_f16(u[1u]).xyz.zxy);
+}
+
+FXC validation failure:
+c:\src\dawn\Shader@0x0000018AE0CA24E0(3,10-18): error X3000: syntax error: unexpected token 'float16_t'
+
diff --git a/test/tint/buffer/uniform/std140/struct/mat4x3_f16/to_workgroup.wgsl.expected.ir.dxc.hlsl b/test/tint/buffer/uniform/std140/struct/mat4x3_f16/to_workgroup.wgsl.expected.ir.dxc.hlsl
index 3f437dc..ae62c62 100644
--- a/test/tint/buffer/uniform/std140/struct/mat4x3_f16/to_workgroup.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/buffer/uniform/std140/struct/mat4x3_f16/to_workgroup.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,95 @@
-SKIP: FAILED
+struct S {
+  int before;
+  matrix<float16_t, 4, 3> m;
+  int after;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Access
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct f_inputs {
+  uint tint_local_index : SV_GroupIndex;
+};
+
+
+cbuffer cbuffer_u : register(b0) {
+  uint4 u[32];
+};
+groupshared S w[4];
+vector<float16_t, 4> tint_bitcast_to_f16(uint4 src) {
+  uint4 v = src;
+  uint4 mask = (65535u).xxxx;
+  uint4 shift = (16u).xxxx;
+  float4 t_low = f16tof32((v & mask));
+  float4 t_high = f16tof32(((v >> shift) & mask));
+  float16_t v_1 = float16_t(t_low.x);
+  float16_t v_2 = float16_t(t_high.x);
+  float16_t v_3 = float16_t(t_low.y);
+  return vector<float16_t, 4>(v_1, v_2, v_3, float16_t(t_high.y));
+}
+
+matrix<float16_t, 4, 3> v_4(uint start_byte_offset) {
+  vector<float16_t, 3> v_5 = tint_bitcast_to_f16(u[(start_byte_offset / 16u)]).xyz;
+  vector<float16_t, 3> v_6 = tint_bitcast_to_f16(u[((8u + start_byte_offset) / 16u)]).xyz;
+  vector<float16_t, 3> v_7 = tint_bitcast_to_f16(u[((16u + start_byte_offset) / 16u)]).xyz;
+  return matrix<float16_t, 4, 3>(v_5, v_6, v_7, tint_bitcast_to_f16(u[((24u + start_byte_offset) / 16u)]).xyz);
+}
+
+S v_8(uint start_byte_offset) {
+  int v_9 = asint(u[(start_byte_offset / 16u)][((start_byte_offset % 16u) / 4u)]);
+  matrix<float16_t, 4, 3> v_10 = v_4((8u + start_byte_offset));
+  S v_11 = {v_9, v_10, asint(u[((64u + start_byte_offset) / 16u)][(((64u + start_byte_offset) % 16u) / 4u)])};
+  return v_11;
+}
+
+typedef S ary_ret[4];
+ary_ret v_12(uint start_byte_offset) {
+  S a[4] = (S[4])0;
+  {
+    uint v_13 = 0u;
+    v_13 = 0u;
+    while(true) {
+      uint v_14 = v_13;
+      if ((v_14 >= 4u)) {
+        break;
+      }
+      S v_15 = v_8((start_byte_offset + (v_14 * 128u)));
+      a[v_14] = v_15;
+      {
+        v_13 = (v_14 + 1u);
+      }
+      continue;
+    }
+  }
+  S v_16[4] = a;
+  return v_16;
+}
+
+void f_inner(uint tint_local_index) {
+  {
+    uint v_17 = 0u;
+    v_17 = tint_local_index;
+    while(true) {
+      uint v_18 = v_17;
+      if ((v_18 >= 4u)) {
+        break;
+      }
+      S v_19 = (S)0;
+      w[v_18] = v_19;
+      {
+        v_17 = (v_18 + 1u);
+      }
+      continue;
+    }
+  }
+  GroupMemoryBarrierWithGroupSync();
+  S v_20[4] = v_12(0u);
+  w = v_20;
+  S v_21 = v_8(256u);
+  w[1] = v_21;
+  w[3].m = v_4(264u);
+  w[1].m[0] = tint_bitcast_to_f16(u[1u]).xyz.zxy;
+}
+
+[numthreads(1, 1, 1)]
+void f(f_inputs inputs) {
+  f_inner(inputs.tint_local_index);
+}
+
diff --git a/test/tint/buffer/uniform/std140/struct/mat4x3_f16/to_workgroup.wgsl.expected.ir.fxc.hlsl b/test/tint/buffer/uniform/std140/struct/mat4x3_f16/to_workgroup.wgsl.expected.ir.fxc.hlsl
index 3f437dc..d91f920 100644
--- a/test/tint/buffer/uniform/std140/struct/mat4x3_f16/to_workgroup.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/buffer/uniform/std140/struct/mat4x3_f16/to_workgroup.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,100 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Access
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct S {
+  int before;
+  matrix<float16_t, 4, 3> m;
+  int after;
+};
+
+struct f_inputs {
+  uint tint_local_index : SV_GroupIndex;
+};
+
+
+cbuffer cbuffer_u : register(b0) {
+  uint4 u[32];
+};
+groupshared S w[4];
+vector<float16_t, 4> tint_bitcast_to_f16(uint4 src) {
+  uint4 v = src;
+  uint4 mask = (65535u).xxxx;
+  uint4 shift = (16u).xxxx;
+  float4 t_low = f16tof32((v & mask));
+  float4 t_high = f16tof32(((v >> shift) & mask));
+  float16_t v_1 = float16_t(t_low.x);
+  float16_t v_2 = float16_t(t_high.x);
+  float16_t v_3 = float16_t(t_low.y);
+  return vector<float16_t, 4>(v_1, v_2, v_3, float16_t(t_high.y));
+}
+
+matrix<float16_t, 4, 3> v_4(uint start_byte_offset) {
+  vector<float16_t, 3> v_5 = tint_bitcast_to_f16(u[(start_byte_offset / 16u)]).xyz;
+  vector<float16_t, 3> v_6 = tint_bitcast_to_f16(u[((8u + start_byte_offset) / 16u)]).xyz;
+  vector<float16_t, 3> v_7 = tint_bitcast_to_f16(u[((16u + start_byte_offset) / 16u)]).xyz;
+  return matrix<float16_t, 4, 3>(v_5, v_6, v_7, tint_bitcast_to_f16(u[((24u + start_byte_offset) / 16u)]).xyz);
+}
+
+S v_8(uint start_byte_offset) {
+  int v_9 = asint(u[(start_byte_offset / 16u)][((start_byte_offset % 16u) / 4u)]);
+  matrix<float16_t, 4, 3> v_10 = v_4((8u + start_byte_offset));
+  S v_11 = {v_9, v_10, asint(u[((64u + start_byte_offset) / 16u)][(((64u + start_byte_offset) % 16u) / 4u)])};
+  return v_11;
+}
+
+typedef S ary_ret[4];
+ary_ret v_12(uint start_byte_offset) {
+  S a[4] = (S[4])0;
+  {
+    uint v_13 = 0u;
+    v_13 = 0u;
+    while(true) {
+      uint v_14 = v_13;
+      if ((v_14 >= 4u)) {
+        break;
+      }
+      S v_15 = v_8((start_byte_offset + (v_14 * 128u)));
+      a[v_14] = v_15;
+      {
+        v_13 = (v_14 + 1u);
+      }
+      continue;
+    }
+  }
+  S v_16[4] = a;
+  return v_16;
+}
+
+void f_inner(uint tint_local_index) {
+  {
+    uint v_17 = 0u;
+    v_17 = tint_local_index;
+    while(true) {
+      uint v_18 = v_17;
+      if ((v_18 >= 4u)) {
+        break;
+      }
+      S v_19 = (S)0;
+      w[v_18] = v_19;
+      {
+        v_17 = (v_18 + 1u);
+      }
+      continue;
+    }
+  }
+  GroupMemoryBarrierWithGroupSync();
+  S v_20[4] = v_12(0u);
+  w = v_20;
+  S v_21 = v_8(256u);
+  w[1] = v_21;
+  w[3].m = v_4(264u);
+  w[1].m[0] = tint_bitcast_to_f16(u[1u]).xyz.zxy;
+}
+
+[numthreads(1, 1, 1)]
+void f(f_inputs inputs) {
+  f_inner(inputs.tint_local_index);
+}
+
+FXC validation failure:
+c:\src\dawn\Shader@0x000002232546A8C0(3,10-18): error X3000: syntax error: unexpected token 'float16_t'
+
diff --git a/test/tint/buffer/uniform/std140/struct/mat4x3_f32/dynamic_index_via_ptr.wgsl.expected.ir.dxc.hlsl b/test/tint/buffer/uniform/std140/struct/mat4x3_f32/dynamic_index_via_ptr.wgsl.expected.ir.dxc.hlsl
index 3f437dc..c6d1da3 100644
--- a/test/tint/buffer/uniform/std140/struct/mat4x3_f32/dynamic_index_via_ptr.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/buffer/uniform/std140/struct/mat4x3_f32/dynamic_index_via_ptr.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,297 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Access
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+
+struct Inner {
+  @size(64)
+  m : mat4x3<f32>,
+}
+
+struct Outer {
+  a : array<Inner, 4>,
+}
+
+@group(0) @binding(0) var<uniform> a : array<Outer, 4>;
+
+var<private> counter = 0;
+
+fn i() -> i32 {
+  counter++;
+  return counter;
+}
+
+@compute @workgroup_size(1)
+fn f() {
+  let p_a = &(a);
+  let p_a_i = &((*(p_a))[i()]);
+  let p_a_i_a = &((*(p_a_i)).a);
+  let p_a_i_a_i = &((*(p_a_i_a))[i()]);
+  let p_a_i_a_i_m = &((*(p_a_i_a_i)).m);
+  let p_a_i_a_i_m_i = &((*(p_a_i_a_i_m))[i()]);
+  let l_a : array<Outer, 4> = *(p_a);
+  let l_a_i : Outer = *(p_a_i);
+  let l_a_i_a : array<Inner, 4> = *(p_a_i_a);
+  let l_a_i_a_i : Inner = *(p_a_i_a_i);
+  let l_a_i_a_i_m : mat4x3<f32> = *(p_a_i_a_i_m);
+  let l_a_i_a_i_m_i : vec3<f32> = *(p_a_i_a_i_m_i);
+  let l_a_i_a_i_m_i_i : f32 = (*(p_a_i_a_i_m_i))[i()];
+}
+
+Failed to generate: :38:24 error: binary: %23 is not in scope
+    %22:u32 = add %21, %23
+                       ^^^
+
+:24:3 note: in block
+  $B3: {
+  ^^^
+
+:64:5 note: %23 declared here
+    %23:u32 = mul %52, 4u
+    ^^^^^^^
+
+:43:24 error: binary: %23 is not in scope
+    %29:u32 = add %28, %23
+                       ^^^
+
+:24:3 note: in block
+  $B3: {
+  ^^^
+
+:64:5 note: %23 declared here
+    %23:u32 = mul %52, 4u
+    ^^^^^^^
+
+:51:24 error: binary: %23 is not in scope
+    %39:u32 = add %38, %23
+                       ^^^
+
+:24:3 note: in block
+  $B3: {
+  ^^^
+
+:64:5 note: %23 declared here
+    %23:u32 = mul %52, 4u
+    ^^^^^^^
+
+:56:24 error: binary: %23 is not in scope
+    %45:u32 = add %44, %23
+                       ^^^
+
+:24:3 note: in block
+  $B3: {
+  ^^^
+
+:64:5 note: %23 declared here
+    %23:u32 = mul %52, 4u
+    ^^^^^^^
+
+:64:5 error: binary: no matching overload for 'operator * (i32, u32)'
+
+9 candidate operators:
+ • 'operator * (T  ✓ , T  ✗ ) -> T' where:
+      ✓  'T' is 'f32', 'i32', 'u32' or 'f16'
+ • 'operator * (vecN<T>  ✗ , T  ✓ ) -> vecN<T>' where:
+      ✓  'T' is 'f32', 'i32', 'u32' or 'f16'
+ • 'operator * (T  ✓ , vecN<T>  ✗ ) -> vecN<T>' where:
+      ✓  'T' is 'f32', 'i32', 'u32' or 'f16'
+ • 'operator * (T  ✗ , matNxM<T>  ✗ ) -> matNxM<T>' where:
+      ✗  'T' is 'f32' or 'f16'
+ • 'operator * (matNxM<T>  ✗ , T  ✗ ) -> matNxM<T>' where:
+      ✗  'T' is 'f32' or 'f16'
+ • 'operator * (vecN<T>  ✗ , vecN<T>  ✗ ) -> vecN<T>' where:
+      ✗  'T' is 'f32', 'i32', 'u32' or 'f16'
+ • 'operator * (matCxR<T>  ✗ , vecC<T>  ✗ ) -> vecR<T>' where:
+      ✗  'T' is 'f32' or 'f16'
+ • 'operator * (vecR<T>  ✗ , matCxR<T>  ✗ ) -> vecC<T>' where:
+      ✗  'T' is 'f32' or 'f16'
+ • 'operator * (matKxR<T>  ✗ , matCxK<T>  ✗ ) -> matCxR<T>' where:
+      ✗  'T' is 'f32' or 'f16'
+
+    %23:u32 = mul %52, 4u
+    ^^^^^^^^^^^^^^^^^^^^^
+
+:24:3 note: in block
+  $B3: {
+  ^^^
+
+note: # Disassembly
+Inner = struct @align(16) {
+  m:mat4x3<f32> @offset(0)
+}
+
+Outer = struct @align(16) {
+  a:array<Inner, 4> @offset(0)
+}
+
+$B1: {  # root
+  %a:ptr<uniform, array<vec4<u32>, 64>, read> = var @binding_point(0, 0)
+  %counter:ptr<private, i32, read_write> = var, 0i
+}
+
+%i = func():i32 {
+  $B2: {
+    %4:i32 = load %counter
+    %5:i32 = add %4, 1i
+    store %counter, %5
+    %6:i32 = load %counter
+    ret %6
+  }
+}
+%f = @compute @workgroup_size(1, 1, 1) func():void {
+  $B3: {
+    %8:i32 = call %i
+    %9:u32 = convert %8
+    %10:u32 = mul 256u, %9
+    %11:i32 = call %i
+    %12:u32 = convert %11
+    %13:u32 = mul 64u, %12
+    %14:i32 = call %i
+    %15:u32 = convert %14
+    %16:u32 = mul 16u, %15
+    %17:array<Outer, 4> = call %18, 0u
+    %l_a:array<Outer, 4> = let %17
+    %20:u32 = add %10, %13
+    %21:u32 = add %20, %16
+    %22:u32 = add %21, %23
+    %24:Outer = call %25, %22
+    %l_a_i:Outer = let %24
+    %27:u32 = add %10, %13
+    %28:u32 = add %27, %16
+    %29:u32 = add %28, %23
+    %30:array<Inner, 4> = call %31, %29
+    %l_a_i_a:array<Inner, 4> = let %30
+    %33:u32 = add %10, %13
+    %34:Inner = call %35, %33
+    %l_a_i_a_i:Inner = let %34
+    %37:u32 = add %10, %13
+    %38:u32 = add %37, %16
+    %39:u32 = add %38, %23
+    %40:mat4x3<f32> = call %41, %39
+    %l_a_i_a_i_m:mat4x3<f32> = let %40
+    %43:u32 = add %10, %13
+    %44:u32 = add %43, %16
+    %45:u32 = add %44, %23
+    %46:u32 = div %45, 16u
+    %47:ptr<uniform, vec4<u32>, read> = access %a, %46
+    %48:vec4<u32> = load %47
+    %49:vec3<u32> = swizzle %48, xyz
+    %50:vec3<f32> = bitcast %49
+    %l_a_i_a_i_m_i:vec3<f32> = let %50
+    %52:i32 = call %i
+    %23:u32 = mul %52, 4u
+    %53:u32 = add %10, %13
+    %54:u32 = add %53, %16
+    %55:u32 = add %54, %23
+    %56:u32 = div %55, 16u
+    %57:ptr<uniform, vec4<u32>, read> = access %a, %56
+    %58:u32 = mod %55, 16u
+    %59:u32 = div %58, 4u
+    %60:u32 = load_vector_element %57, %59
+    %61:f32 = bitcast %60
+    %l_a_i_a_i_m_i_i:f32 = let %61
+    ret
+  }
+}
+%35 = func(%start_byte_offset:u32):Inner {
+  $B4: {
+    %64:mat4x3<f32> = call %41, %start_byte_offset
+    %65:Inner = construct %64
+    ret %65
+  }
+}
+%41 = func(%start_byte_offset_1:u32):mat4x3<f32> {  # %start_byte_offset_1: 'start_byte_offset'
+  $B5: {
+    %67:u32 = div %start_byte_offset_1, 16u
+    %68:ptr<uniform, vec4<u32>, read> = access %a, %67
+    %69:vec4<u32> = load %68
+    %70:vec3<u32> = swizzle %69, xyz
+    %71:vec3<f32> = bitcast %70
+    %72:u32 = add 16u, %start_byte_offset_1
+    %73:u32 = div %72, 16u
+    %74:ptr<uniform, vec4<u32>, read> = access %a, %73
+    %75:vec4<u32> = load %74
+    %76:vec3<u32> = swizzle %75, xyz
+    %77:vec3<f32> = bitcast %76
+    %78:u32 = add 32u, %start_byte_offset_1
+    %79:u32 = div %78, 16u
+    %80:ptr<uniform, vec4<u32>, read> = access %a, %79
+    %81:vec4<u32> = load %80
+    %82:vec3<u32> = swizzle %81, xyz
+    %83:vec3<f32> = bitcast %82
+    %84:u32 = add 48u, %start_byte_offset_1
+    %85:u32 = div %84, 16u
+    %86:ptr<uniform, vec4<u32>, read> = access %a, %85
+    %87:vec4<u32> = load %86
+    %88:vec3<u32> = swizzle %87, xyz
+    %89:vec3<f32> = bitcast %88
+    %90:mat4x3<f32> = construct %71, %77, %83, %89
+    ret %90
+  }
+}
+%31 = func(%start_byte_offset_2:u32):array<Inner, 4> {  # %start_byte_offset_2: 'start_byte_offset'
+  $B6: {
+    %a_1:ptr<function, array<Inner, 4>, read_write> = var, array<Inner, 4>(Inner(mat4x3<f32>(vec3<f32>(0.0f))))  # %a_1: 'a'
+    loop [i: $B7, b: $B8, c: $B9] {  # loop_1
+      $B7: {  # initializer
+        next_iteration 0u  # -> $B8
+      }
+      $B8 (%idx:u32): {  # body
+        %94:bool = gte %idx, 4u
+        if %94 [t: $B10] {  # if_1
+          $B10: {  # true
+            exit_loop  # loop_1
+          }
+        }
+        %95:u32 = mul %idx, 64u
+        %96:u32 = add %start_byte_offset_2, %95
+        %97:ptr<function, Inner, read_write> = access %a_1, %idx
+        %98:Inner = call %35, %96
+        store %97, %98
+        continue  # -> $B9
+      }
+      $B9: {  # continuing
+        %99:u32 = add %idx, 1u
+        next_iteration %99  # -> $B8
+      }
+    }
+    %100:array<Inner, 4> = load %a_1
+    ret %100
+  }
+}
+%25 = func(%start_byte_offset_3:u32):Outer {  # %start_byte_offset_3: 'start_byte_offset'
+  $B11: {
+    %102:array<Inner, 4> = call %31, %start_byte_offset_3
+    %103:Outer = construct %102
+    ret %103
+  }
+}
+%18 = func(%start_byte_offset_4:u32):array<Outer, 4> {  # %start_byte_offset_4: 'start_byte_offset'
+  $B12: {
+    %a_2:ptr<function, array<Outer, 4>, read_write> = var, array<Outer, 4>(Outer(array<Inner, 4>(Inner(mat4x3<f32>(vec3<f32>(0.0f))))))  # %a_2: 'a'
+    loop [i: $B13, b: $B14, c: $B15] {  # loop_2
+      $B13: {  # initializer
+        next_iteration 0u  # -> $B14
+      }
+      $B14 (%idx_1:u32): {  # body
+        %107:bool = gte %idx_1, 4u
+        if %107 [t: $B16] {  # if_2
+          $B16: {  # true
+            exit_loop  # loop_2
+          }
+        }
+        %108:u32 = mul %idx_1, 256u
+        %109:u32 = add %start_byte_offset_4, %108
+        %110:ptr<function, Outer, read_write> = access %a_2, %idx_1
+        %111:Outer = call %25, %109
+        store %110, %111
+        continue  # -> $B15
+      }
+      $B15: {  # continuing
+        %112:u32 = add %idx_1, 1u
+        next_iteration %112  # -> $B14
+      }
+    }
+    %113:array<Outer, 4> = load %a_2
+    ret %113
+  }
+}
+
diff --git a/test/tint/buffer/uniform/std140/struct/mat4x3_f32/dynamic_index_via_ptr.wgsl.expected.ir.fxc.hlsl b/test/tint/buffer/uniform/std140/struct/mat4x3_f32/dynamic_index_via_ptr.wgsl.expected.ir.fxc.hlsl
index 3f437dc..c6d1da3 100644
--- a/test/tint/buffer/uniform/std140/struct/mat4x3_f32/dynamic_index_via_ptr.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/buffer/uniform/std140/struct/mat4x3_f32/dynamic_index_via_ptr.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,297 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Access
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+
+struct Inner {
+  @size(64)
+  m : mat4x3<f32>,
+}
+
+struct Outer {
+  a : array<Inner, 4>,
+}
+
+@group(0) @binding(0) var<uniform> a : array<Outer, 4>;
+
+var<private> counter = 0;
+
+fn i() -> i32 {
+  counter++;
+  return counter;
+}
+
+@compute @workgroup_size(1)
+fn f() {
+  let p_a = &(a);
+  let p_a_i = &((*(p_a))[i()]);
+  let p_a_i_a = &((*(p_a_i)).a);
+  let p_a_i_a_i = &((*(p_a_i_a))[i()]);
+  let p_a_i_a_i_m = &((*(p_a_i_a_i)).m);
+  let p_a_i_a_i_m_i = &((*(p_a_i_a_i_m))[i()]);
+  let l_a : array<Outer, 4> = *(p_a);
+  let l_a_i : Outer = *(p_a_i);
+  let l_a_i_a : array<Inner, 4> = *(p_a_i_a);
+  let l_a_i_a_i : Inner = *(p_a_i_a_i);
+  let l_a_i_a_i_m : mat4x3<f32> = *(p_a_i_a_i_m);
+  let l_a_i_a_i_m_i : vec3<f32> = *(p_a_i_a_i_m_i);
+  let l_a_i_a_i_m_i_i : f32 = (*(p_a_i_a_i_m_i))[i()];
+}
+
+Failed to generate: :38:24 error: binary: %23 is not in scope
+    %22:u32 = add %21, %23
+                       ^^^
+
+:24:3 note: in block
+  $B3: {
+  ^^^
+
+:64:5 note: %23 declared here
+    %23:u32 = mul %52, 4u
+    ^^^^^^^
+
+:43:24 error: binary: %23 is not in scope
+    %29:u32 = add %28, %23
+                       ^^^
+
+:24:3 note: in block
+  $B3: {
+  ^^^
+
+:64:5 note: %23 declared here
+    %23:u32 = mul %52, 4u
+    ^^^^^^^
+
+:51:24 error: binary: %23 is not in scope
+    %39:u32 = add %38, %23
+                       ^^^
+
+:24:3 note: in block
+  $B3: {
+  ^^^
+
+:64:5 note: %23 declared here
+    %23:u32 = mul %52, 4u
+    ^^^^^^^
+
+:56:24 error: binary: %23 is not in scope
+    %45:u32 = add %44, %23
+                       ^^^
+
+:24:3 note: in block
+  $B3: {
+  ^^^
+
+:64:5 note: %23 declared here
+    %23:u32 = mul %52, 4u
+    ^^^^^^^
+
+:64:5 error: binary: no matching overload for 'operator * (i32, u32)'
+
+9 candidate operators:
+ • 'operator * (T  ✓ , T  ✗ ) -> T' where:
+      ✓  'T' is 'f32', 'i32', 'u32' or 'f16'
+ • 'operator * (vecN<T>  ✗ , T  ✓ ) -> vecN<T>' where:
+      ✓  'T' is 'f32', 'i32', 'u32' or 'f16'
+ • 'operator * (T  ✓ , vecN<T>  ✗ ) -> vecN<T>' where:
+      ✓  'T' is 'f32', 'i32', 'u32' or 'f16'
+ • 'operator * (T  ✗ , matNxM<T>  ✗ ) -> matNxM<T>' where:
+      ✗  'T' is 'f32' or 'f16'
+ • 'operator * (matNxM<T>  ✗ , T  ✗ ) -> matNxM<T>' where:
+      ✗  'T' is 'f32' or 'f16'
+ • 'operator * (vecN<T>  ✗ , vecN<T>  ✗ ) -> vecN<T>' where:
+      ✗  'T' is 'f32', 'i32', 'u32' or 'f16'
+ • 'operator * (matCxR<T>  ✗ , vecC<T>  ✗ ) -> vecR<T>' where:
+      ✗  'T' is 'f32' or 'f16'
+ • 'operator * (vecR<T>  ✗ , matCxR<T>  ✗ ) -> vecC<T>' where:
+      ✗  'T' is 'f32' or 'f16'
+ • 'operator * (matKxR<T>  ✗ , matCxK<T>  ✗ ) -> matCxR<T>' where:
+      ✗  'T' is 'f32' or 'f16'
+
+    %23:u32 = mul %52, 4u
+    ^^^^^^^^^^^^^^^^^^^^^
+
+:24:3 note: in block
+  $B3: {
+  ^^^
+
+note: # Disassembly
+Inner = struct @align(16) {
+  m:mat4x3<f32> @offset(0)
+}
+
+Outer = struct @align(16) {
+  a:array<Inner, 4> @offset(0)
+}
+
+$B1: {  # root
+  %a:ptr<uniform, array<vec4<u32>, 64>, read> = var @binding_point(0, 0)
+  %counter:ptr<private, i32, read_write> = var, 0i
+}
+
+%i = func():i32 {
+  $B2: {
+    %4:i32 = load %counter
+    %5:i32 = add %4, 1i
+    store %counter, %5
+    %6:i32 = load %counter
+    ret %6
+  }
+}
+%f = @compute @workgroup_size(1, 1, 1) func():void {
+  $B3: {
+    %8:i32 = call %i
+    %9:u32 = convert %8
+    %10:u32 = mul 256u, %9
+    %11:i32 = call %i
+    %12:u32 = convert %11
+    %13:u32 = mul 64u, %12
+    %14:i32 = call %i
+    %15:u32 = convert %14
+    %16:u32 = mul 16u, %15
+    %17:array<Outer, 4> = call %18, 0u
+    %l_a:array<Outer, 4> = let %17
+    %20:u32 = add %10, %13
+    %21:u32 = add %20, %16
+    %22:u32 = add %21, %23
+    %24:Outer = call %25, %22
+    %l_a_i:Outer = let %24
+    %27:u32 = add %10, %13
+    %28:u32 = add %27, %16
+    %29:u32 = add %28, %23
+    %30:array<Inner, 4> = call %31, %29
+    %l_a_i_a:array<Inner, 4> = let %30
+    %33:u32 = add %10, %13
+    %34:Inner = call %35, %33
+    %l_a_i_a_i:Inner = let %34
+    %37:u32 = add %10, %13
+    %38:u32 = add %37, %16
+    %39:u32 = add %38, %23
+    %40:mat4x3<f32> = call %41, %39
+    %l_a_i_a_i_m:mat4x3<f32> = let %40
+    %43:u32 = add %10, %13
+    %44:u32 = add %43, %16
+    %45:u32 = add %44, %23
+    %46:u32 = div %45, 16u
+    %47:ptr<uniform, vec4<u32>, read> = access %a, %46
+    %48:vec4<u32> = load %47
+    %49:vec3<u32> = swizzle %48, xyz
+    %50:vec3<f32> = bitcast %49
+    %l_a_i_a_i_m_i:vec3<f32> = let %50
+    %52:i32 = call %i
+    %23:u32 = mul %52, 4u
+    %53:u32 = add %10, %13
+    %54:u32 = add %53, %16
+    %55:u32 = add %54, %23
+    %56:u32 = div %55, 16u
+    %57:ptr<uniform, vec4<u32>, read> = access %a, %56
+    %58:u32 = mod %55, 16u
+    %59:u32 = div %58, 4u
+    %60:u32 = load_vector_element %57, %59
+    %61:f32 = bitcast %60
+    %l_a_i_a_i_m_i_i:f32 = let %61
+    ret
+  }
+}
+%35 = func(%start_byte_offset:u32):Inner {
+  $B4: {
+    %64:mat4x3<f32> = call %41, %start_byte_offset
+    %65:Inner = construct %64
+    ret %65
+  }
+}
+%41 = func(%start_byte_offset_1:u32):mat4x3<f32> {  # %start_byte_offset_1: 'start_byte_offset'
+  $B5: {
+    %67:u32 = div %start_byte_offset_1, 16u
+    %68:ptr<uniform, vec4<u32>, read> = access %a, %67
+    %69:vec4<u32> = load %68
+    %70:vec3<u32> = swizzle %69, xyz
+    %71:vec3<f32> = bitcast %70
+    %72:u32 = add 16u, %start_byte_offset_1
+    %73:u32 = div %72, 16u
+    %74:ptr<uniform, vec4<u32>, read> = access %a, %73
+    %75:vec4<u32> = load %74
+    %76:vec3<u32> = swizzle %75, xyz
+    %77:vec3<f32> = bitcast %76
+    %78:u32 = add 32u, %start_byte_offset_1
+    %79:u32 = div %78, 16u
+    %80:ptr<uniform, vec4<u32>, read> = access %a, %79
+    %81:vec4<u32> = load %80
+    %82:vec3<u32> = swizzle %81, xyz
+    %83:vec3<f32> = bitcast %82
+    %84:u32 = add 48u, %start_byte_offset_1
+    %85:u32 = div %84, 16u
+    %86:ptr<uniform, vec4<u32>, read> = access %a, %85
+    %87:vec4<u32> = load %86
+    %88:vec3<u32> = swizzle %87, xyz
+    %89:vec3<f32> = bitcast %88
+    %90:mat4x3<f32> = construct %71, %77, %83, %89
+    ret %90
+  }
+}
+%31 = func(%start_byte_offset_2:u32):array<Inner, 4> {  # %start_byte_offset_2: 'start_byte_offset'
+  $B6: {
+    %a_1:ptr<function, array<Inner, 4>, read_write> = var, array<Inner, 4>(Inner(mat4x3<f32>(vec3<f32>(0.0f))))  # %a_1: 'a'
+    loop [i: $B7, b: $B8, c: $B9] {  # loop_1
+      $B7: {  # initializer
+        next_iteration 0u  # -> $B8
+      }
+      $B8 (%idx:u32): {  # body
+        %94:bool = gte %idx, 4u
+        if %94 [t: $B10] {  # if_1
+          $B10: {  # true
+            exit_loop  # loop_1
+          }
+        }
+        %95:u32 = mul %idx, 64u
+        %96:u32 = add %start_byte_offset_2, %95
+        %97:ptr<function, Inner, read_write> = access %a_1, %idx
+        %98:Inner = call %35, %96
+        store %97, %98
+        continue  # -> $B9
+      }
+      $B9: {  # continuing
+        %99:u32 = add %idx, 1u
+        next_iteration %99  # -> $B8
+      }
+    }
+    %100:array<Inner, 4> = load %a_1
+    ret %100
+  }
+}
+%25 = func(%start_byte_offset_3:u32):Outer {  # %start_byte_offset_3: 'start_byte_offset'
+  $B11: {
+    %102:array<Inner, 4> = call %31, %start_byte_offset_3
+    %103:Outer = construct %102
+    ret %103
+  }
+}
+%18 = func(%start_byte_offset_4:u32):array<Outer, 4> {  # %start_byte_offset_4: 'start_byte_offset'
+  $B12: {
+    %a_2:ptr<function, array<Outer, 4>, read_write> = var, array<Outer, 4>(Outer(array<Inner, 4>(Inner(mat4x3<f32>(vec3<f32>(0.0f))))))  # %a_2: 'a'
+    loop [i: $B13, b: $B14, c: $B15] {  # loop_2
+      $B13: {  # initializer
+        next_iteration 0u  # -> $B14
+      }
+      $B14 (%idx_1:u32): {  # body
+        %107:bool = gte %idx_1, 4u
+        if %107 [t: $B16] {  # if_2
+          $B16: {  # true
+            exit_loop  # loop_2
+          }
+        }
+        %108:u32 = mul %idx_1, 256u
+        %109:u32 = add %start_byte_offset_4, %108
+        %110:ptr<function, Outer, read_write> = access %a_2, %idx_1
+        %111:Outer = call %25, %109
+        store %110, %111
+        continue  # -> $B15
+      }
+      $B15: {  # continuing
+        %112:u32 = add %idx_1, 1u
+        next_iteration %112  # -> $B14
+      }
+    }
+    %113:array<Outer, 4> = load %a_2
+    ret %113
+  }
+}
+
diff --git a/test/tint/buffer/uniform/std140/struct/mat4x3_f32/static_index_via_ptr.wgsl.expected.ir.dxc.hlsl b/test/tint/buffer/uniform/std140/struct/mat4x3_f32/static_index_via_ptr.wgsl.expected.ir.dxc.hlsl
index 3f437dc..617b0b5 100644
--- a/test/tint/buffer/uniform/std140/struct/mat4x3_f32/static_index_via_ptr.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/buffer/uniform/std140/struct/mat4x3_f32/static_index_via_ptr.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,87 @@
-SKIP: FAILED
+struct Inner {
+  float4x3 m;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Access
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct Outer {
+  Inner a[4];
+};
+
+
+cbuffer cbuffer_a : register(b0) {
+  uint4 a[64];
+};
+float4x3 v(uint start_byte_offset) {
+  float3 v_1 = asfloat(a[(start_byte_offset / 16u)].xyz);
+  float3 v_2 = asfloat(a[((16u + start_byte_offset) / 16u)].xyz);
+  float3 v_3 = asfloat(a[((32u + start_byte_offset) / 16u)].xyz);
+  return float4x3(v_1, v_2, v_3, asfloat(a[((48u + start_byte_offset) / 16u)].xyz));
+}
+
+Inner v_4(uint start_byte_offset) {
+  Inner v_5 = {v(start_byte_offset)};
+  return v_5;
+}
+
+typedef Inner ary_ret[4];
+ary_ret v_6(uint start_byte_offset) {
+  Inner a[4] = (Inner[4])0;
+  {
+    uint v_7 = 0u;
+    v_7 = 0u;
+    while(true) {
+      uint v_8 = v_7;
+      if ((v_8 >= 4u)) {
+        break;
+      }
+      Inner v_9 = v_4((start_byte_offset + (v_8 * 64u)));
+      a[v_8] = v_9;
+      {
+        v_7 = (v_8 + 1u);
+      }
+      continue;
+    }
+  }
+  Inner v_10[4] = a;
+  return v_10;
+}
+
+Outer v_11(uint start_byte_offset) {
+  Inner v_12[4] = v_6(start_byte_offset);
+  Outer v_13 = {v_12};
+  return v_13;
+}
+
+typedef Outer ary_ret_1[4];
+ary_ret_1 v_14(uint start_byte_offset) {
+  Outer a[4] = (Outer[4])0;
+  {
+    uint v_15 = 0u;
+    v_15 = 0u;
+    while(true) {
+      uint v_16 = v_15;
+      if ((v_16 >= 4u)) {
+        break;
+      }
+      Outer v_17 = v_11((start_byte_offset + (v_16 * 256u)));
+      a[v_16] = v_17;
+      {
+        v_15 = (v_16 + 1u);
+      }
+      continue;
+    }
+  }
+  Outer v_18[4] = a;
+  return v_18;
+}
+
+[numthreads(1, 1, 1)]
+void f() {
+  Outer l_a[4] = v_14(0u);
+  Outer l_a_3 = v_11(768u);
+  Inner l_a_3_a[4] = v_6(912u);
+  Inner l_a_3_a_2 = v_4(912u);
+  float4x3 l_a_3_a_2_m = v(896u);
+  float3 l_a_3_a_2_m_1 = asfloat(a[57u].xyz);
+  float l_a_3_a_2_m_1_0 = asfloat(a[57u].x);
+}
+
diff --git a/test/tint/buffer/uniform/std140/struct/mat4x3_f32/static_index_via_ptr.wgsl.expected.ir.fxc.hlsl b/test/tint/buffer/uniform/std140/struct/mat4x3_f32/static_index_via_ptr.wgsl.expected.ir.fxc.hlsl
index 3f437dc..32d7df1 100644
--- a/test/tint/buffer/uniform/std140/struct/mat4x3_f32/static_index_via_ptr.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/buffer/uniform/std140/struct/mat4x3_f32/static_index_via_ptr.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,87 @@
-SKIP: FAILED
+struct Inner {
+  float4x3 m;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Access
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct Outer {
+  Inner a[4];
+};
+
+
+cbuffer cbuffer_a : register(b0) {
+  uint4 a[64];
+};
+float4x3 v(uint start_byte_offset) {
+  float3 v_1 = asfloat(a[(start_byte_offset / 16u)].xyz);
+  float3 v_2 = asfloat(a[((16u + start_byte_offset) / 16u)].xyz);
+  float3 v_3 = asfloat(a[((32u + start_byte_offset) / 16u)].xyz);
+  return float4x3(v_1, v_2, v_3, asfloat(a[((48u + start_byte_offset) / 16u)].xyz));
+}
+
+Inner v_4(uint start_byte_offset) {
+  Inner v_5 = {v(start_byte_offset)};
+  return v_5;
+}
+
+typedef Inner ary_ret[4];
+ary_ret v_6(uint start_byte_offset) {
+  Inner a[4] = (Inner[4])0;
+  {
+    uint v_7 = 0u;
+    v_7 = 0u;
+    while(true) {
+      uint v_8 = v_7;
+      if ((v_8 >= 4u)) {
+        break;
+      }
+      Inner v_9 = v_4((start_byte_offset + (v_8 * 64u)));
+      a[v_8] = v_9;
+      {
+        v_7 = (v_8 + 1u);
+      }
+      continue;
+    }
+  }
+  Inner v_10[4] = a;
+  return v_10;
+}
+
+Outer v_11(uint start_byte_offset) {
+  Inner v_12[4] = v_6(start_byte_offset);
+  Outer v_13 = {v_12};
+  return v_13;
+}
+
+typedef Outer ary_ret_1[4];
+ary_ret_1 v_14(uint start_byte_offset) {
+  Outer a[4] = (Outer[4])0;
+  {
+    uint v_15 = 0u;
+    v_15 = 0u;
+    while(true) {
+      uint v_16 = v_15;
+      if ((v_16 >= 4u)) {
+        break;
+      }
+      Outer v_17 = v_11((start_byte_offset + (v_16 * 256u)));
+      a[v_16] = v_17;
+      {
+        v_15 = (v_16 + 1u);
+      }
+      continue;
+    }
+  }
+  Outer v_18[4] = a;
+  return v_18;
+}
+
+[numthreads(1, 1, 1)]
+void f() {
+  Outer l_a[4] = v_14(0u);
+  Outer l_a_3 = v_11(912u);
+  Inner l_a_3_a[4] = v_6(768u);
+  Inner l_a_3_a_2 = v_4(896u);
+  float4x3 l_a_3_a_2_m = v(896u);
+  float3 l_a_3_a_2_m_1 = asfloat(a[57u].xyz);
+  float l_a_3_a_2_m_1_0 = asfloat(a[57u].x);
+}
+
diff --git a/test/tint/buffer/uniform/std140/struct/mat4x3_f32/to_builtin.wgsl.expected.ir.dxc.hlsl b/test/tint/buffer/uniform/std140/struct/mat4x3_f32/to_builtin.wgsl.expected.ir.dxc.hlsl
index 3f437dc..713b011 100644
--- a/test/tint/buffer/uniform/std140/struct/mat4x3_f32/to_builtin.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/buffer/uniform/std140/struct/mat4x3_f32/to_builtin.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,18 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Access
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+cbuffer cbuffer_u : register(b0) {
+  uint4 u[48];
+};
+float4x3 v(uint start_byte_offset) {
+  float3 v_1 = asfloat(u[(start_byte_offset / 16u)].xyz);
+  float3 v_2 = asfloat(u[((16u + start_byte_offset) / 16u)].xyz);
+  float3 v_3 = asfloat(u[((32u + start_byte_offset) / 16u)].xyz);
+  return float4x3(v_1, v_2, v_3, asfloat(u[((48u + start_byte_offset) / 16u)].xyz));
+}
+
+[numthreads(1, 1, 1)]
+void f() {
+  float3x4 t = transpose(v(400u));
+  float l = length(asfloat(u[2u].xyz).zxy);
+  float a = abs(asfloat(u[2u].xyz).zxy[0u]);
+}
+
diff --git a/test/tint/buffer/uniform/std140/struct/mat4x3_f32/to_builtin.wgsl.expected.ir.fxc.hlsl b/test/tint/buffer/uniform/std140/struct/mat4x3_f32/to_builtin.wgsl.expected.ir.fxc.hlsl
index 3f437dc..713b011 100644
--- a/test/tint/buffer/uniform/std140/struct/mat4x3_f32/to_builtin.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/buffer/uniform/std140/struct/mat4x3_f32/to_builtin.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,18 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Access
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+cbuffer cbuffer_u : register(b0) {
+  uint4 u[48];
+};
+float4x3 v(uint start_byte_offset) {
+  float3 v_1 = asfloat(u[(start_byte_offset / 16u)].xyz);
+  float3 v_2 = asfloat(u[((16u + start_byte_offset) / 16u)].xyz);
+  float3 v_3 = asfloat(u[((32u + start_byte_offset) / 16u)].xyz);
+  return float4x3(v_1, v_2, v_3, asfloat(u[((48u + start_byte_offset) / 16u)].xyz));
+}
+
+[numthreads(1, 1, 1)]
+void f() {
+  float3x4 t = transpose(v(400u));
+  float l = length(asfloat(u[2u].xyz).zxy);
+  float a = abs(asfloat(u[2u].xyz).zxy[0u]);
+}
+
diff --git a/test/tint/buffer/uniform/std140/struct/mat4x3_f32/to_fn.wgsl.expected.ir.dxc.hlsl b/test/tint/buffer/uniform/std140/struct/mat4x3_f32/to_fn.wgsl.expected.ir.dxc.hlsl
index 3f437dc..4509585 100644
--- a/test/tint/buffer/uniform/std140/struct/mat4x3_f32/to_fn.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/buffer/uniform/std140/struct/mat4x3_f32/to_fn.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,73 @@
-SKIP: FAILED
+struct S {
+  int before;
+  float4x3 m;
+  int after;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Access
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+
+cbuffer cbuffer_u : register(b0) {
+  uint4 u[48];
+};
+void a(S a_1[4]) {
+}
+
+void b(S s) {
+}
+
+void c(float4x3 m) {
+}
+
+void d(float3 v) {
+}
+
+void e(float f) {
+}
+
+float4x3 v_1(uint start_byte_offset) {
+  float3 v_2 = asfloat(u[(start_byte_offset / 16u)].xyz);
+  float3 v_3 = asfloat(u[((16u + start_byte_offset) / 16u)].xyz);
+  float3 v_4 = asfloat(u[((32u + start_byte_offset) / 16u)].xyz);
+  return float4x3(v_2, v_3, v_4, asfloat(u[((48u + start_byte_offset) / 16u)].xyz));
+}
+
+S v_5(uint start_byte_offset) {
+  int v_6 = asint(u[(start_byte_offset / 16u)][((start_byte_offset % 16u) / 4u)]);
+  float4x3 v_7 = v_1((16u + start_byte_offset));
+  S v_8 = {v_6, v_7, asint(u[((128u + start_byte_offset) / 16u)][(((128u + start_byte_offset) % 16u) / 4u)])};
+  return v_8;
+}
+
+typedef S ary_ret[4];
+ary_ret v_9(uint start_byte_offset) {
+  S a[4] = (S[4])0;
+  {
+    uint v_10 = 0u;
+    v_10 = 0u;
+    while(true) {
+      uint v_11 = v_10;
+      if ((v_11 >= 4u)) {
+        break;
+      }
+      S v_12 = v_5((start_byte_offset + (v_11 * 192u)));
+      a[v_11] = v_12;
+      {
+        v_10 = (v_11 + 1u);
+      }
+      continue;
+    }
+  }
+  S v_13[4] = a;
+  return v_13;
+}
+
+[numthreads(1, 1, 1)]
+void f() {
+  S v_14[4] = v_9(0u);
+  a(v_14);
+  S v_15 = v_5(384u);
+  b(v_15);
+  c(v_1(400u));
+  d(asfloat(u[2u].xyz).zxy);
+  e(asfloat(u[2u].xyz).zxy[0u]);
+}
+
diff --git a/test/tint/buffer/uniform/std140/struct/mat4x3_f32/to_fn.wgsl.expected.ir.fxc.hlsl b/test/tint/buffer/uniform/std140/struct/mat4x3_f32/to_fn.wgsl.expected.ir.fxc.hlsl
index 3f437dc..4509585 100644
--- a/test/tint/buffer/uniform/std140/struct/mat4x3_f32/to_fn.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/buffer/uniform/std140/struct/mat4x3_f32/to_fn.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,73 @@
-SKIP: FAILED
+struct S {
+  int before;
+  float4x3 m;
+  int after;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Access
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+
+cbuffer cbuffer_u : register(b0) {
+  uint4 u[48];
+};
+void a(S a_1[4]) {
+}
+
+void b(S s) {
+}
+
+void c(float4x3 m) {
+}
+
+void d(float3 v) {
+}
+
+void e(float f) {
+}
+
+float4x3 v_1(uint start_byte_offset) {
+  float3 v_2 = asfloat(u[(start_byte_offset / 16u)].xyz);
+  float3 v_3 = asfloat(u[((16u + start_byte_offset) / 16u)].xyz);
+  float3 v_4 = asfloat(u[((32u + start_byte_offset) / 16u)].xyz);
+  return float4x3(v_2, v_3, v_4, asfloat(u[((48u + start_byte_offset) / 16u)].xyz));
+}
+
+S v_5(uint start_byte_offset) {
+  int v_6 = asint(u[(start_byte_offset / 16u)][((start_byte_offset % 16u) / 4u)]);
+  float4x3 v_7 = v_1((16u + start_byte_offset));
+  S v_8 = {v_6, v_7, asint(u[((128u + start_byte_offset) / 16u)][(((128u + start_byte_offset) % 16u) / 4u)])};
+  return v_8;
+}
+
+typedef S ary_ret[4];
+ary_ret v_9(uint start_byte_offset) {
+  S a[4] = (S[4])0;
+  {
+    uint v_10 = 0u;
+    v_10 = 0u;
+    while(true) {
+      uint v_11 = v_10;
+      if ((v_11 >= 4u)) {
+        break;
+      }
+      S v_12 = v_5((start_byte_offset + (v_11 * 192u)));
+      a[v_11] = v_12;
+      {
+        v_10 = (v_11 + 1u);
+      }
+      continue;
+    }
+  }
+  S v_13[4] = a;
+  return v_13;
+}
+
+[numthreads(1, 1, 1)]
+void f() {
+  S v_14[4] = v_9(0u);
+  a(v_14);
+  S v_15 = v_5(384u);
+  b(v_15);
+  c(v_1(400u));
+  d(asfloat(u[2u].xyz).zxy);
+  e(asfloat(u[2u].xyz).zxy[0u]);
+}
+
diff --git a/test/tint/buffer/uniform/std140/struct/mat4x3_f32/to_private.wgsl.expected.ir.dxc.hlsl b/test/tint/buffer/uniform/std140/struct/mat4x3_f32/to_private.wgsl.expected.ir.dxc.hlsl
index 3f437dc..7bb01c9 100644
--- a/test/tint/buffer/uniform/std140/struct/mat4x3_f32/to_private.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/buffer/uniform/std140/struct/mat4x3_f32/to_private.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,58 @@
-SKIP: FAILED
+struct S {
+  int before;
+  float4x3 m;
+  int after;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Access
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+
+cbuffer cbuffer_u : register(b0) {
+  uint4 u[48];
+};
+static S p[4] = (S[4])0;
+float4x3 v(uint start_byte_offset) {
+  float3 v_1 = asfloat(u[(start_byte_offset / 16u)].xyz);
+  float3 v_2 = asfloat(u[((16u + start_byte_offset) / 16u)].xyz);
+  float3 v_3 = asfloat(u[((32u + start_byte_offset) / 16u)].xyz);
+  return float4x3(v_1, v_2, v_3, asfloat(u[((48u + start_byte_offset) / 16u)].xyz));
+}
+
+S v_4(uint start_byte_offset) {
+  int v_5 = asint(u[(start_byte_offset / 16u)][((start_byte_offset % 16u) / 4u)]);
+  float4x3 v_6 = v((16u + start_byte_offset));
+  S v_7 = {v_5, v_6, asint(u[((128u + start_byte_offset) / 16u)][(((128u + start_byte_offset) % 16u) / 4u)])};
+  return v_7;
+}
+
+typedef S ary_ret[4];
+ary_ret v_8(uint start_byte_offset) {
+  S a[4] = (S[4])0;
+  {
+    uint v_9 = 0u;
+    v_9 = 0u;
+    while(true) {
+      uint v_10 = v_9;
+      if ((v_10 >= 4u)) {
+        break;
+      }
+      S v_11 = v_4((start_byte_offset + (v_10 * 192u)));
+      a[v_10] = v_11;
+      {
+        v_9 = (v_10 + 1u);
+      }
+      continue;
+    }
+  }
+  S v_12[4] = a;
+  return v_12;
+}
+
+[numthreads(1, 1, 1)]
+void f() {
+  S v_13[4] = v_8(0u);
+  p = v_13;
+  S v_14 = v_4(384u);
+  p[1] = v_14;
+  p[3].m = v(400u);
+  p[1].m[0] = asfloat(u[2u].xyz).zxy;
+}
+
diff --git a/test/tint/buffer/uniform/std140/struct/mat4x3_f32/to_private.wgsl.expected.ir.fxc.hlsl b/test/tint/buffer/uniform/std140/struct/mat4x3_f32/to_private.wgsl.expected.ir.fxc.hlsl
index 3f437dc..7bb01c9 100644
--- a/test/tint/buffer/uniform/std140/struct/mat4x3_f32/to_private.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/buffer/uniform/std140/struct/mat4x3_f32/to_private.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,58 @@
-SKIP: FAILED
+struct S {
+  int before;
+  float4x3 m;
+  int after;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Access
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+
+cbuffer cbuffer_u : register(b0) {
+  uint4 u[48];
+};
+static S p[4] = (S[4])0;
+float4x3 v(uint start_byte_offset) {
+  float3 v_1 = asfloat(u[(start_byte_offset / 16u)].xyz);
+  float3 v_2 = asfloat(u[((16u + start_byte_offset) / 16u)].xyz);
+  float3 v_3 = asfloat(u[((32u + start_byte_offset) / 16u)].xyz);
+  return float4x3(v_1, v_2, v_3, asfloat(u[((48u + start_byte_offset) / 16u)].xyz));
+}
+
+S v_4(uint start_byte_offset) {
+  int v_5 = asint(u[(start_byte_offset / 16u)][((start_byte_offset % 16u) / 4u)]);
+  float4x3 v_6 = v((16u + start_byte_offset));
+  S v_7 = {v_5, v_6, asint(u[((128u + start_byte_offset) / 16u)][(((128u + start_byte_offset) % 16u) / 4u)])};
+  return v_7;
+}
+
+typedef S ary_ret[4];
+ary_ret v_8(uint start_byte_offset) {
+  S a[4] = (S[4])0;
+  {
+    uint v_9 = 0u;
+    v_9 = 0u;
+    while(true) {
+      uint v_10 = v_9;
+      if ((v_10 >= 4u)) {
+        break;
+      }
+      S v_11 = v_4((start_byte_offset + (v_10 * 192u)));
+      a[v_10] = v_11;
+      {
+        v_9 = (v_10 + 1u);
+      }
+      continue;
+    }
+  }
+  S v_12[4] = a;
+  return v_12;
+}
+
+[numthreads(1, 1, 1)]
+void f() {
+  S v_13[4] = v_8(0u);
+  p = v_13;
+  S v_14 = v_4(384u);
+  p[1] = v_14;
+  p[3].m = v(400u);
+  p[1].m[0] = asfloat(u[2u].xyz).zxy;
+}
+
diff --git a/test/tint/buffer/uniform/std140/struct/mat4x3_f32/to_storage.wgsl.expected.ir.dxc.hlsl b/test/tint/buffer/uniform/std140/struct/mat4x3_f32/to_storage.wgsl.expected.ir.dxc.hlsl
index 3f437dc..73f939b 100644
--- a/test/tint/buffer/uniform/std140/struct/mat4x3_f32/to_storage.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/buffer/uniform/std140/struct/mat4x3_f32/to_storage.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,90 @@
-SKIP: FAILED
+struct S {
+  int before;
+  float4x3 m;
+  int after;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Access
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+
+cbuffer cbuffer_u : register(b0) {
+  uint4 u[48];
+};
+RWByteAddressBuffer s : register(u1);
+void v(uint offset, float4x3 obj) {
+  s.Store3((offset + 0u), asuint(obj[0u]));
+  s.Store3((offset + 16u), asuint(obj[1u]));
+  s.Store3((offset + 32u), asuint(obj[2u]));
+  s.Store3((offset + 48u), asuint(obj[3u]));
+}
+
+float4x3 v_1(uint start_byte_offset) {
+  float3 v_2 = asfloat(u[(start_byte_offset / 16u)].xyz);
+  float3 v_3 = asfloat(u[((16u + start_byte_offset) / 16u)].xyz);
+  float3 v_4 = asfloat(u[((32u + start_byte_offset) / 16u)].xyz);
+  return float4x3(v_2, v_3, v_4, asfloat(u[((48u + start_byte_offset) / 16u)].xyz));
+}
+
+void v_5(uint offset, S obj) {
+  s.Store((offset + 0u), asuint(obj.before));
+  v((offset + 16u), obj.m);
+  s.Store((offset + 128u), asuint(obj.after));
+}
+
+S v_6(uint start_byte_offset) {
+  int v_7 = asint(u[(start_byte_offset / 16u)][((start_byte_offset % 16u) / 4u)]);
+  float4x3 v_8 = v_1((16u + start_byte_offset));
+  S v_9 = {v_7, v_8, asint(u[((128u + start_byte_offset) / 16u)][(((128u + start_byte_offset) % 16u) / 4u)])};
+  return v_9;
+}
+
+void v_10(uint offset, S obj[4]) {
+  {
+    uint v_11 = 0u;
+    v_11 = 0u;
+    while(true) {
+      uint v_12 = v_11;
+      if ((v_12 >= 4u)) {
+        break;
+      }
+      S v_13 = obj[v_12];
+      v_5((offset + (v_12 * 192u)), v_13);
+      {
+        v_11 = (v_12 + 1u);
+      }
+      continue;
+    }
+  }
+}
+
+typedef S ary_ret[4];
+ary_ret v_14(uint start_byte_offset) {
+  S a[4] = (S[4])0;
+  {
+    uint v_15 = 0u;
+    v_15 = 0u;
+    while(true) {
+      uint v_16 = v_15;
+      if ((v_16 >= 4u)) {
+        break;
+      }
+      S v_17 = v_6((start_byte_offset + (v_16 * 192u)));
+      a[v_16] = v_17;
+      {
+        v_15 = (v_16 + 1u);
+      }
+      continue;
+    }
+  }
+  S v_18[4] = a;
+  return v_18;
+}
+
+[numthreads(1, 1, 1)]
+void f() {
+  S v_19[4] = v_14(0u);
+  v_10(0u, v_19);
+  S v_20 = v_6(384u);
+  v_5(192u, v_20);
+  v(592u, v_1(400u));
+  s.Store3(208u, asuint(asfloat(u[2u].xyz).zxy));
+}
+
diff --git a/test/tint/buffer/uniform/std140/struct/mat4x3_f32/to_storage.wgsl.expected.ir.fxc.hlsl b/test/tint/buffer/uniform/std140/struct/mat4x3_f32/to_storage.wgsl.expected.ir.fxc.hlsl
index 3f437dc..73f939b 100644
--- a/test/tint/buffer/uniform/std140/struct/mat4x3_f32/to_storage.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/buffer/uniform/std140/struct/mat4x3_f32/to_storage.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,90 @@
-SKIP: FAILED
+struct S {
+  int before;
+  float4x3 m;
+  int after;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Access
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+
+cbuffer cbuffer_u : register(b0) {
+  uint4 u[48];
+};
+RWByteAddressBuffer s : register(u1);
+void v(uint offset, float4x3 obj) {
+  s.Store3((offset + 0u), asuint(obj[0u]));
+  s.Store3((offset + 16u), asuint(obj[1u]));
+  s.Store3((offset + 32u), asuint(obj[2u]));
+  s.Store3((offset + 48u), asuint(obj[3u]));
+}
+
+float4x3 v_1(uint start_byte_offset) {
+  float3 v_2 = asfloat(u[(start_byte_offset / 16u)].xyz);
+  float3 v_3 = asfloat(u[((16u + start_byte_offset) / 16u)].xyz);
+  float3 v_4 = asfloat(u[((32u + start_byte_offset) / 16u)].xyz);
+  return float4x3(v_2, v_3, v_4, asfloat(u[((48u + start_byte_offset) / 16u)].xyz));
+}
+
+void v_5(uint offset, S obj) {
+  s.Store((offset + 0u), asuint(obj.before));
+  v((offset + 16u), obj.m);
+  s.Store((offset + 128u), asuint(obj.after));
+}
+
+S v_6(uint start_byte_offset) {
+  int v_7 = asint(u[(start_byte_offset / 16u)][((start_byte_offset % 16u) / 4u)]);
+  float4x3 v_8 = v_1((16u + start_byte_offset));
+  S v_9 = {v_7, v_8, asint(u[((128u + start_byte_offset) / 16u)][(((128u + start_byte_offset) % 16u) / 4u)])};
+  return v_9;
+}
+
+void v_10(uint offset, S obj[4]) {
+  {
+    uint v_11 = 0u;
+    v_11 = 0u;
+    while(true) {
+      uint v_12 = v_11;
+      if ((v_12 >= 4u)) {
+        break;
+      }
+      S v_13 = obj[v_12];
+      v_5((offset + (v_12 * 192u)), v_13);
+      {
+        v_11 = (v_12 + 1u);
+      }
+      continue;
+    }
+  }
+}
+
+typedef S ary_ret[4];
+ary_ret v_14(uint start_byte_offset) {
+  S a[4] = (S[4])0;
+  {
+    uint v_15 = 0u;
+    v_15 = 0u;
+    while(true) {
+      uint v_16 = v_15;
+      if ((v_16 >= 4u)) {
+        break;
+      }
+      S v_17 = v_6((start_byte_offset + (v_16 * 192u)));
+      a[v_16] = v_17;
+      {
+        v_15 = (v_16 + 1u);
+      }
+      continue;
+    }
+  }
+  S v_18[4] = a;
+  return v_18;
+}
+
+[numthreads(1, 1, 1)]
+void f() {
+  S v_19[4] = v_14(0u);
+  v_10(0u, v_19);
+  S v_20 = v_6(384u);
+  v_5(192u, v_20);
+  v(592u, v_1(400u));
+  s.Store3(208u, asuint(asfloat(u[2u].xyz).zxy));
+}
+
diff --git a/test/tint/buffer/uniform/std140/struct/mat4x3_f32/to_workgroup.wgsl.expected.ir.dxc.hlsl b/test/tint/buffer/uniform/std140/struct/mat4x3_f32/to_workgroup.wgsl.expected.ir.dxc.hlsl
index 3f437dc..d95509b 100644
--- a/test/tint/buffer/uniform/std140/struct/mat4x3_f32/to_workgroup.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/buffer/uniform/std140/struct/mat4x3_f32/to_workgroup.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,83 @@
-SKIP: FAILED
+struct S {
+  int before;
+  float4x3 m;
+  int after;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Access
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct f_inputs {
+  uint tint_local_index : SV_GroupIndex;
+};
+
+
+cbuffer cbuffer_u : register(b0) {
+  uint4 u[48];
+};
+groupshared S w[4];
+float4x3 v(uint start_byte_offset) {
+  float3 v_1 = asfloat(u[(start_byte_offset / 16u)].xyz);
+  float3 v_2 = asfloat(u[((16u + start_byte_offset) / 16u)].xyz);
+  float3 v_3 = asfloat(u[((32u + start_byte_offset) / 16u)].xyz);
+  return float4x3(v_1, v_2, v_3, asfloat(u[((48u + start_byte_offset) / 16u)].xyz));
+}
+
+S v_4(uint start_byte_offset) {
+  int v_5 = asint(u[(start_byte_offset / 16u)][((start_byte_offset % 16u) / 4u)]);
+  float4x3 v_6 = v((16u + start_byte_offset));
+  S v_7 = {v_5, v_6, asint(u[((128u + start_byte_offset) / 16u)][(((128u + start_byte_offset) % 16u) / 4u)])};
+  return v_7;
+}
+
+typedef S ary_ret[4];
+ary_ret v_8(uint start_byte_offset) {
+  S a[4] = (S[4])0;
+  {
+    uint v_9 = 0u;
+    v_9 = 0u;
+    while(true) {
+      uint v_10 = v_9;
+      if ((v_10 >= 4u)) {
+        break;
+      }
+      S v_11 = v_4((start_byte_offset + (v_10 * 192u)));
+      a[v_10] = v_11;
+      {
+        v_9 = (v_10 + 1u);
+      }
+      continue;
+    }
+  }
+  S v_12[4] = a;
+  return v_12;
+}
+
+void f_inner(uint tint_local_index) {
+  {
+    uint v_13 = 0u;
+    v_13 = tint_local_index;
+    while(true) {
+      uint v_14 = v_13;
+      if ((v_14 >= 4u)) {
+        break;
+      }
+      S v_15 = (S)0;
+      w[v_14] = v_15;
+      {
+        v_13 = (v_14 + 1u);
+      }
+      continue;
+    }
+  }
+  GroupMemoryBarrierWithGroupSync();
+  S v_16[4] = v_8(0u);
+  w = v_16;
+  S v_17 = v_4(384u);
+  w[1] = v_17;
+  w[3].m = v(400u);
+  w[1].m[0] = asfloat(u[2u].xyz).zxy;
+}
+
+[numthreads(1, 1, 1)]
+void f(f_inputs inputs) {
+  f_inner(inputs.tint_local_index);
+}
+
diff --git a/test/tint/buffer/uniform/std140/struct/mat4x3_f32/to_workgroup.wgsl.expected.ir.fxc.hlsl b/test/tint/buffer/uniform/std140/struct/mat4x3_f32/to_workgroup.wgsl.expected.ir.fxc.hlsl
index 3f437dc..d95509b 100644
--- a/test/tint/buffer/uniform/std140/struct/mat4x3_f32/to_workgroup.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/buffer/uniform/std140/struct/mat4x3_f32/to_workgroup.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,83 @@
-SKIP: FAILED
+struct S {
+  int before;
+  float4x3 m;
+  int after;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Access
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct f_inputs {
+  uint tint_local_index : SV_GroupIndex;
+};
+
+
+cbuffer cbuffer_u : register(b0) {
+  uint4 u[48];
+};
+groupshared S w[4];
+float4x3 v(uint start_byte_offset) {
+  float3 v_1 = asfloat(u[(start_byte_offset / 16u)].xyz);
+  float3 v_2 = asfloat(u[((16u + start_byte_offset) / 16u)].xyz);
+  float3 v_3 = asfloat(u[((32u + start_byte_offset) / 16u)].xyz);
+  return float4x3(v_1, v_2, v_3, asfloat(u[((48u + start_byte_offset) / 16u)].xyz));
+}
+
+S v_4(uint start_byte_offset) {
+  int v_5 = asint(u[(start_byte_offset / 16u)][((start_byte_offset % 16u) / 4u)]);
+  float4x3 v_6 = v((16u + start_byte_offset));
+  S v_7 = {v_5, v_6, asint(u[((128u + start_byte_offset) / 16u)][(((128u + start_byte_offset) % 16u) / 4u)])};
+  return v_7;
+}
+
+typedef S ary_ret[4];
+ary_ret v_8(uint start_byte_offset) {
+  S a[4] = (S[4])0;
+  {
+    uint v_9 = 0u;
+    v_9 = 0u;
+    while(true) {
+      uint v_10 = v_9;
+      if ((v_10 >= 4u)) {
+        break;
+      }
+      S v_11 = v_4((start_byte_offset + (v_10 * 192u)));
+      a[v_10] = v_11;
+      {
+        v_9 = (v_10 + 1u);
+      }
+      continue;
+    }
+  }
+  S v_12[4] = a;
+  return v_12;
+}
+
+void f_inner(uint tint_local_index) {
+  {
+    uint v_13 = 0u;
+    v_13 = tint_local_index;
+    while(true) {
+      uint v_14 = v_13;
+      if ((v_14 >= 4u)) {
+        break;
+      }
+      S v_15 = (S)0;
+      w[v_14] = v_15;
+      {
+        v_13 = (v_14 + 1u);
+      }
+      continue;
+    }
+  }
+  GroupMemoryBarrierWithGroupSync();
+  S v_16[4] = v_8(0u);
+  w = v_16;
+  S v_17 = v_4(384u);
+  w[1] = v_17;
+  w[3].m = v(400u);
+  w[1].m[0] = asfloat(u[2u].xyz).zxy;
+}
+
+[numthreads(1, 1, 1)]
+void f(f_inputs inputs) {
+  f_inner(inputs.tint_local_index);
+}
+
diff --git a/test/tint/buffer/uniform/std140/struct/mat4x4_f16/dynamic_index_via_ptr.wgsl.expected.ir.dxc.hlsl b/test/tint/buffer/uniform/std140/struct/mat4x4_f16/dynamic_index_via_ptr.wgsl.expected.ir.dxc.hlsl
index 3f437dc..55015b7 100644
--- a/test/tint/buffer/uniform/std140/struct/mat4x4_f16/dynamic_index_via_ptr.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/buffer/uniform/std140/struct/mat4x4_f16/dynamic_index_via_ptr.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,271 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Access
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+
+enable f16;
+
+struct Inner {
+  @size(64)
+  m : mat4x4<f16>,
+}
+
+struct Outer {
+  a : array<Inner, 4>,
+}
+
+@group(0) @binding(0) var<uniform> a : array<Outer, 4>;
+
+var<private> counter = 0;
+
+fn i() -> i32 {
+  counter++;
+  return counter;
+}
+
+@compute @workgroup_size(1)
+fn f() {
+  let p_a = &(a);
+  let p_a_i = &((*(p_a))[i()]);
+  let p_a_i_a = &((*(p_a_i)).a);
+  let p_a_i_a_i = &((*(p_a_i_a))[i()]);
+  let p_a_i_a_i_m = &((*(p_a_i_a_i)).m);
+  let p_a_i_a_i_m_i = &((*(p_a_i_a_i_m))[i()]);
+  let l_a : array<Outer, 4> = *(p_a);
+  let l_a_i : Outer = *(p_a_i);
+  let l_a_i_a : array<Inner, 4> = *(p_a_i_a);
+  let l_a_i_a_i : Inner = *(p_a_i_a_i);
+  let l_a_i_a_i_m : mat4x4<f16> = *(p_a_i_a_i_m);
+  let l_a_i_a_i_m_i : vec4<f16> = *(p_a_i_a_i_m_i);
+  let l_a_i_a_i_m_i_i : f16 = (*(p_a_i_a_i_m_i))[i()];
+}
+
+Failed to generate: :40:24 error: binary: %26 is not in scope
+    %25:u32 = add %24, %26
+                       ^^^
+
+:24:3 note: in block
+  $B3: {
+  ^^^
+
+:59:5 note: %26 declared here
+    %26:u32 = mul %47, 2u
+    ^^^^^^^
+
+:48:24 error: binary: %26 is not in scope
+    %36:u32 = add %35, %26
+                       ^^^
+
+:24:3 note: in block
+  $B3: {
+  ^^^
+
+:59:5 note: %26 declared here
+    %26:u32 = mul %47, 2u
+    ^^^^^^^
+
+:59:5 error: binary: no matching overload for 'operator * (i32, u32)'
+
+9 candidate operators:
+ • 'operator * (T  ✓ , T  ✗ ) -> T' where:
+      ✓  'T' is 'f32', 'i32', 'u32' or 'f16'
+ • 'operator * (vecN<T>  ✗ , T  ✓ ) -> vecN<T>' where:
+      ✓  'T' is 'f32', 'i32', 'u32' or 'f16'
+ • 'operator * (T  ✓ , vecN<T>  ✗ ) -> vecN<T>' where:
+      ✓  'T' is 'f32', 'i32', 'u32' or 'f16'
+ • 'operator * (T  ✗ , matNxM<T>  ✗ ) -> matNxM<T>' where:
+      ✗  'T' is 'f32' or 'f16'
+ • 'operator * (matNxM<T>  ✗ , T  ✗ ) -> matNxM<T>' where:
+      ✗  'T' is 'f32' or 'f16'
+ • 'operator * (vecN<T>  ✗ , vecN<T>  ✗ ) -> vecN<T>' where:
+      ✗  'T' is 'f32', 'i32', 'u32' or 'f16'
+ • 'operator * (matCxR<T>  ✗ , vecC<T>  ✗ ) -> vecR<T>' where:
+      ✗  'T' is 'f32' or 'f16'
+ • 'operator * (vecR<T>  ✗ , matCxR<T>  ✗ ) -> vecC<T>' where:
+      ✗  'T' is 'f32' or 'f16'
+ • 'operator * (matKxR<T>  ✗ , matCxK<T>  ✗ ) -> matCxR<T>' where:
+      ✗  'T' is 'f32' or 'f16'
+
+    %26:u32 = mul %47, 2u
+    ^^^^^^^^^^^^^^^^^^^^^
+
+:24:3 note: in block
+  $B3: {
+  ^^^
+
+note: # Disassembly
+Inner = struct @align(8) {
+  m:mat4x4<f16> @offset(0)
+}
+
+Outer = struct @align(8) {
+  a:array<Inner, 4> @offset(0)
+}
+
+$B1: {  # root
+  %a:ptr<uniform, array<vec4<u32>, 64>, read> = var @binding_point(0, 0)
+  %counter:ptr<private, i32, read_write> = var, 0i
+}
+
+%i = func():i32 {
+  $B2: {
+    %4:i32 = load %counter
+    %5:i32 = add %4, 1i
+    store %counter, %5
+    %6:i32 = load %counter
+    ret %6
+  }
+}
+%f = @compute @workgroup_size(1, 1, 1) func():void {
+  $B3: {
+    %8:i32 = call %i
+    %9:u32 = convert %8
+    %10:u32 = mul 256u, %9
+    %11:i32 = call %i
+    %12:u32 = convert %11
+    %13:u32 = mul 64u, %12
+    %14:i32 = call %i
+    %15:u32 = convert %14
+    %16:u32 = mul 8u, %15
+    %17:array<Outer, 4> = call %18, 0u
+    %l_a:array<Outer, 4> = let %17
+    %20:Outer = call %21, %10
+    %l_a_i:Outer = let %20
+    %23:u32 = add %10, %13
+    %24:u32 = add %23, %16
+    %25:u32 = add %24, %26
+    %27:array<Inner, 4> = call %28, %25
+    %l_a_i_a:array<Inner, 4> = let %27
+    %30:u32 = add %10, %13
+    %31:Inner = call %32, %30
+    %l_a_i_a_i:Inner = let %31
+    %34:u32 = add %10, %13
+    %35:u32 = add %34, %16
+    %36:u32 = add %35, %26
+    %37:mat4x4<f16> = call %38, %36
+    %l_a_i_a_i_m:mat4x4<f16> = let %37
+    %40:u32 = add %10, %13
+    %41:u32 = add %40, %16
+    %42:u32 = div %41, 16u
+    %43:ptr<uniform, vec4<u32>, read> = access %a, %42
+    %44:vec4<u32> = load %43
+    %45:vec4<f16> = bitcast %44
+    %l_a_i_a_i_m_i:vec4<f16> = let %45
+    %47:i32 = call %i
+    %26:u32 = mul %47, 2u
+    %48:u32 = add %10, %13
+    %49:u32 = add %48, %16
+    %50:u32 = add %49, %26
+    %51:u32 = div %50, 16u
+    %52:ptr<uniform, vec4<u32>, read> = access %a, %51
+    %53:u32 = mod %50, 16u
+    %54:u32 = div %53, 4u
+    %55:u32 = load_vector_element %52, %54
+    %56:u32 = mod %50, 4u
+    %57:bool = eq %56, 0u
+    %58:u32 = hlsl.ternary 16u, 0u, %57
+    %59:u32 = shr %55, %58
+    %60:f32 = hlsl.f16tof32 %59
+    %61:f16 = convert %60
+    %l_a_i_a_i_m_i_i:f16 = let %61
+    ret
+  }
+}
+%21 = func(%start_byte_offset:u32):Outer {
+  $B4: {
+    %64:array<Inner, 4> = call %28, %start_byte_offset
+    %65:Outer = construct %64
+    ret %65
+  }
+}
+%28 = func(%start_byte_offset_1:u32):array<Inner, 4> {  # %start_byte_offset_1: 'start_byte_offset'
+  $B5: {
+    %a_1:ptr<function, array<Inner, 4>, read_write> = var, array<Inner, 4>(Inner(mat4x4<f16>(vec4<f16>(0.0h))))  # %a_1: 'a'
+    loop [i: $B6, b: $B7, c: $B8] {  # loop_1
+      $B6: {  # initializer
+        next_iteration 0u  # -> $B7
+      }
+      $B7 (%idx:u32): {  # body
+        %69:bool = gte %idx, 4u
+        if %69 [t: $B9] {  # if_1
+          $B9: {  # true
+            exit_loop  # loop_1
+          }
+        }
+        %70:u32 = mul %idx, 64u
+        %71:u32 = add %start_byte_offset_1, %70
+        %72:ptr<function, Inner, read_write> = access %a_1, %idx
+        %73:Inner = call %32, %71
+        store %72, %73
+        continue  # -> $B8
+      }
+      $B8: {  # continuing
+        %74:u32 = add %idx, 1u
+        next_iteration %74  # -> $B7
+      }
+    }
+    %75:array<Inner, 4> = load %a_1
+    ret %75
+  }
+}
+%32 = func(%start_byte_offset_2:u32):Inner {  # %start_byte_offset_2: 'start_byte_offset'
+  $B10: {
+    %77:mat4x4<f16> = call %38, %start_byte_offset_2
+    %78:Inner = construct %77
+    ret %78
+  }
+}
+%38 = func(%start_byte_offset_3:u32):mat4x4<f16> {  # %start_byte_offset_3: 'start_byte_offset'
+  $B11: {
+    %80:u32 = div %start_byte_offset_3, 16u
+    %81:ptr<uniform, vec4<u32>, read> = access %a, %80
+    %82:vec4<u32> = load %81
+    %83:vec4<f16> = bitcast %82
+    %84:u32 = add 8u, %start_byte_offset_3
+    %85:u32 = div %84, 16u
+    %86:ptr<uniform, vec4<u32>, read> = access %a, %85
+    %87:vec4<u32> = load %86
+    %88:vec4<f16> = bitcast %87
+    %89:u32 = add 16u, %start_byte_offset_3
+    %90:u32 = div %89, 16u
+    %91:ptr<uniform, vec4<u32>, read> = access %a, %90
+    %92:vec4<u32> = load %91
+    %93:vec4<f16> = bitcast %92
+    %94:u32 = add 24u, %start_byte_offset_3
+    %95:u32 = div %94, 16u
+    %96:ptr<uniform, vec4<u32>, read> = access %a, %95
+    %97:vec4<u32> = load %96
+    %98:vec4<f16> = bitcast %97
+    %99:mat4x4<f16> = construct %83, %88, %93, %98
+    ret %99
+  }
+}
+%18 = func(%start_byte_offset_4:u32):array<Outer, 4> {  # %start_byte_offset_4: 'start_byte_offset'
+  $B12: {
+    %a_2:ptr<function, array<Outer, 4>, read_write> = var, array<Outer, 4>(Outer(array<Inner, 4>(Inner(mat4x4<f16>(vec4<f16>(0.0h))))))  # %a_2: 'a'
+    loop [i: $B13, b: $B14, c: $B15] {  # loop_2
+      $B13: {  # initializer
+        next_iteration 0u  # -> $B14
+      }
+      $B14 (%idx_1:u32): {  # body
+        %103:bool = gte %idx_1, 4u
+        if %103 [t: $B16] {  # if_2
+          $B16: {  # true
+            exit_loop  # loop_2
+          }
+        }
+        %104:u32 = mul %idx_1, 256u
+        %105:u32 = add %start_byte_offset_4, %104
+        %106:ptr<function, Outer, read_write> = access %a_2, %idx_1
+        %107:Outer = call %21, %105
+        store %106, %107
+        continue  # -> $B15
+      }
+      $B15: {  # continuing
+        %108:u32 = add %idx_1, 1u
+        next_iteration %108  # -> $B14
+      }
+    }
+    %109:array<Outer, 4> = load %a_2
+    ret %109
+  }
+}
+
diff --git a/test/tint/buffer/uniform/std140/struct/mat4x4_f16/dynamic_index_via_ptr.wgsl.expected.ir.fxc.hlsl b/test/tint/buffer/uniform/std140/struct/mat4x4_f16/dynamic_index_via_ptr.wgsl.expected.ir.fxc.hlsl
index 3f437dc..4e147c7 100644
--- a/test/tint/buffer/uniform/std140/struct/mat4x4_f16/dynamic_index_via_ptr.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/buffer/uniform/std140/struct/mat4x4_f16/dynamic_index_via_ptr.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,271 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Access
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+
+enable f16;
+
+struct Inner {
+  @size(64)
+  m : mat4x4<f16>,
+}
+
+struct Outer {
+  a : array<Inner, 4>,
+}
+
+@group(0) @binding(0) var<uniform> a : array<Outer, 4>;
+
+var<private> counter = 0;
+
+fn i() -> i32 {
+  counter++;
+  return counter;
+}
+
+@compute @workgroup_size(1)
+fn f() {
+  let p_a = &(a);
+  let p_a_i = &((*(p_a))[i()]);
+  let p_a_i_a = &((*(p_a_i)).a);
+  let p_a_i_a_i = &((*(p_a_i_a))[i()]);
+  let p_a_i_a_i_m = &((*(p_a_i_a_i)).m);
+  let p_a_i_a_i_m_i = &((*(p_a_i_a_i_m))[i()]);
+  let l_a : array<Outer, 4> = *(p_a);
+  let l_a_i : Outer = *(p_a_i);
+  let l_a_i_a : array<Inner, 4> = *(p_a_i_a);
+  let l_a_i_a_i : Inner = *(p_a_i_a_i);
+  let l_a_i_a_i_m : mat4x4<f16> = *(p_a_i_a_i_m);
+  let l_a_i_a_i_m_i : vec4<f16> = *(p_a_i_a_i_m_i);
+  let l_a_i_a_i_m_i_i : f16 = (*(p_a_i_a_i_m_i))[i()];
+}
+
+Failed to generate: :40:24 error: binary: %26 is not in scope
+    %25:u32 = add %24, %26
+                       ^^^
+
+:24:3 note: in block
+  $B3: {
+  ^^^
+
+:59:5 note: %26 declared here
+    %26:u32 = mul %47, 2u
+    ^^^^^^^
+
+:45:24 error: binary: %26 is not in scope
+    %32:u32 = add %31, %26
+                       ^^^
+
+:24:3 note: in block
+  $B3: {
+  ^^^
+
+:59:5 note: %26 declared here
+    %26:u32 = mul %47, 2u
+    ^^^^^^^
+
+:59:5 error: binary: no matching overload for 'operator * (i32, u32)'
+
+9 candidate operators:
+ • 'operator * (T  ✓ , T  ✗ ) -> T' where:
+      ✓  'T' is 'f32', 'i32', 'u32' or 'f16'
+ • 'operator * (vecN<T>  ✗ , T  ✓ ) -> vecN<T>' where:
+      ✓  'T' is 'f32', 'i32', 'u32' or 'f16'
+ • 'operator * (T  ✓ , vecN<T>  ✗ ) -> vecN<T>' where:
+      ✓  'T' is 'f32', 'i32', 'u32' or 'f16'
+ • 'operator * (T  ✗ , matNxM<T>  ✗ ) -> matNxM<T>' where:
+      ✗  'T' is 'f32' or 'f16'
+ • 'operator * (matNxM<T>  ✗ , T  ✗ ) -> matNxM<T>' where:
+      ✗  'T' is 'f32' or 'f16'
+ • 'operator * (vecN<T>  ✗ , vecN<T>  ✗ ) -> vecN<T>' where:
+      ✗  'T' is 'f32', 'i32', 'u32' or 'f16'
+ • 'operator * (matCxR<T>  ✗ , vecC<T>  ✗ ) -> vecR<T>' where:
+      ✗  'T' is 'f32' or 'f16'
+ • 'operator * (vecR<T>  ✗ , matCxR<T>  ✗ ) -> vecC<T>' where:
+      ✗  'T' is 'f32' or 'f16'
+ • 'operator * (matKxR<T>  ✗ , matCxK<T>  ✗ ) -> matCxR<T>' where:
+      ✗  'T' is 'f32' or 'f16'
+
+    %26:u32 = mul %47, 2u
+    ^^^^^^^^^^^^^^^^^^^^^
+
+:24:3 note: in block
+  $B3: {
+  ^^^
+
+note: # Disassembly
+Inner = struct @align(8) {
+  m:mat4x4<f16> @offset(0)
+}
+
+Outer = struct @align(8) {
+  a:array<Inner, 4> @offset(0)
+}
+
+$B1: {  # root
+  %a:ptr<uniform, array<vec4<u32>, 64>, read> = var @binding_point(0, 0)
+  %counter:ptr<private, i32, read_write> = var, 0i
+}
+
+%i = func():i32 {
+  $B2: {
+    %4:i32 = load %counter
+    %5:i32 = add %4, 1i
+    store %counter, %5
+    %6:i32 = load %counter
+    ret %6
+  }
+}
+%f = @compute @workgroup_size(1, 1, 1) func():void {
+  $B3: {
+    %8:i32 = call %i
+    %9:u32 = convert %8
+    %10:u32 = mul 256u, %9
+    %11:i32 = call %i
+    %12:u32 = convert %11
+    %13:u32 = mul 64u, %12
+    %14:i32 = call %i
+    %15:u32 = convert %14
+    %16:u32 = mul 8u, %15
+    %17:array<Outer, 4> = call %18, 0u
+    %l_a:array<Outer, 4> = let %17
+    %20:Outer = call %21, %10
+    %l_a_i:Outer = let %20
+    %23:u32 = add %10, %13
+    %24:u32 = add %23, %16
+    %25:u32 = add %24, %26
+    %27:array<Inner, 4> = call %28, %25
+    %l_a_i_a:array<Inner, 4> = let %27
+    %30:u32 = add %10, %13
+    %31:u32 = add %30, %16
+    %32:u32 = add %31, %26
+    %33:Inner = call %34, %32
+    %l_a_i_a_i:Inner = let %33
+    %36:u32 = add %10, %13
+    %37:mat4x4<f16> = call %38, %36
+    %l_a_i_a_i_m:mat4x4<f16> = let %37
+    %40:u32 = add %10, %13
+    %41:u32 = add %40, %16
+    %42:u32 = div %41, 16u
+    %43:ptr<uniform, vec4<u32>, read> = access %a, %42
+    %44:vec4<u32> = load %43
+    %45:vec4<f16> = bitcast %44
+    %l_a_i_a_i_m_i:vec4<f16> = let %45
+    %47:i32 = call %i
+    %26:u32 = mul %47, 2u
+    %48:u32 = add %10, %13
+    %49:u32 = add %48, %16
+    %50:u32 = add %49, %26
+    %51:u32 = div %50, 16u
+    %52:ptr<uniform, vec4<u32>, read> = access %a, %51
+    %53:u32 = mod %50, 16u
+    %54:u32 = div %53, 4u
+    %55:u32 = load_vector_element %52, %54
+    %56:u32 = mod %50, 4u
+    %57:bool = eq %56, 0u
+    %58:u32 = hlsl.ternary 16u, 0u, %57
+    %59:u32 = shr %55, %58
+    %60:f32 = hlsl.f16tof32 %59
+    %61:f16 = convert %60
+    %l_a_i_a_i_m_i_i:f16 = let %61
+    ret
+  }
+}
+%21 = func(%start_byte_offset:u32):Outer {
+  $B4: {
+    %64:array<Inner, 4> = call %28, %start_byte_offset
+    %65:Outer = construct %64
+    ret %65
+  }
+}
+%28 = func(%start_byte_offset_1:u32):array<Inner, 4> {  # %start_byte_offset_1: 'start_byte_offset'
+  $B5: {
+    %a_1:ptr<function, array<Inner, 4>, read_write> = var, array<Inner, 4>(Inner(mat4x4<f16>(vec4<f16>(0.0h))))  # %a_1: 'a'
+    loop [i: $B6, b: $B7, c: $B8] {  # loop_1
+      $B6: {  # initializer
+        next_iteration 0u  # -> $B7
+      }
+      $B7 (%idx:u32): {  # body
+        %69:bool = gte %idx, 4u
+        if %69 [t: $B9] {  # if_1
+          $B9: {  # true
+            exit_loop  # loop_1
+          }
+        }
+        %70:u32 = mul %idx, 64u
+        %71:u32 = add %start_byte_offset_1, %70
+        %72:ptr<function, Inner, read_write> = access %a_1, %idx
+        %73:Inner = call %34, %71
+        store %72, %73
+        continue  # -> $B8
+      }
+      $B8: {  # continuing
+        %74:u32 = add %idx, 1u
+        next_iteration %74  # -> $B7
+      }
+    }
+    %75:array<Inner, 4> = load %a_1
+    ret %75
+  }
+}
+%34 = func(%start_byte_offset_2:u32):Inner {  # %start_byte_offset_2: 'start_byte_offset'
+  $B10: {
+    %77:mat4x4<f16> = call %38, %start_byte_offset_2
+    %78:Inner = construct %77
+    ret %78
+  }
+}
+%38 = func(%start_byte_offset_3:u32):mat4x4<f16> {  # %start_byte_offset_3: 'start_byte_offset'
+  $B11: {
+    %80:u32 = div %start_byte_offset_3, 16u
+    %81:ptr<uniform, vec4<u32>, read> = access %a, %80
+    %82:vec4<u32> = load %81
+    %83:vec4<f16> = bitcast %82
+    %84:u32 = add 8u, %start_byte_offset_3
+    %85:u32 = div %84, 16u
+    %86:ptr<uniform, vec4<u32>, read> = access %a, %85
+    %87:vec4<u32> = load %86
+    %88:vec4<f16> = bitcast %87
+    %89:u32 = add 16u, %start_byte_offset_3
+    %90:u32 = div %89, 16u
+    %91:ptr<uniform, vec4<u32>, read> = access %a, %90
+    %92:vec4<u32> = load %91
+    %93:vec4<f16> = bitcast %92
+    %94:u32 = add 24u, %start_byte_offset_3
+    %95:u32 = div %94, 16u
+    %96:ptr<uniform, vec4<u32>, read> = access %a, %95
+    %97:vec4<u32> = load %96
+    %98:vec4<f16> = bitcast %97
+    %99:mat4x4<f16> = construct %83, %88, %93, %98
+    ret %99
+  }
+}
+%18 = func(%start_byte_offset_4:u32):array<Outer, 4> {  # %start_byte_offset_4: 'start_byte_offset'
+  $B12: {
+    %a_2:ptr<function, array<Outer, 4>, read_write> = var, array<Outer, 4>(Outer(array<Inner, 4>(Inner(mat4x4<f16>(vec4<f16>(0.0h))))))  # %a_2: 'a'
+    loop [i: $B13, b: $B14, c: $B15] {  # loop_2
+      $B13: {  # initializer
+        next_iteration 0u  # -> $B14
+      }
+      $B14 (%idx_1:u32): {  # body
+        %103:bool = gte %idx_1, 4u
+        if %103 [t: $B16] {  # if_2
+          $B16: {  # true
+            exit_loop  # loop_2
+          }
+        }
+        %104:u32 = mul %idx_1, 256u
+        %105:u32 = add %start_byte_offset_4, %104
+        %106:ptr<function, Outer, read_write> = access %a_2, %idx_1
+        %107:Outer = call %21, %105
+        store %106, %107
+        continue  # -> $B15
+      }
+      $B15: {  # continuing
+        %108:u32 = add %idx_1, 1u
+        next_iteration %108  # -> $B14
+      }
+    }
+    %109:array<Outer, 4> = load %a_2
+    ret %109
+  }
+}
+
diff --git a/test/tint/buffer/uniform/std140/struct/mat4x4_f16/static_index_via_ptr.wgsl.expected.ir.dxc.hlsl b/test/tint/buffer/uniform/std140/struct/mat4x4_f16/static_index_via_ptr.wgsl.expected.ir.dxc.hlsl
index 3f437dc..113ba8c 100644
--- a/test/tint/buffer/uniform/std140/struct/mat4x4_f16/static_index_via_ptr.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/buffer/uniform/std140/struct/mat4x4_f16/static_index_via_ptr.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,99 @@
-SKIP: FAILED
+struct Inner {
+  matrix<float16_t, 4, 4> m;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Access
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct Outer {
+  Inner a[4];
+};
+
+
+cbuffer cbuffer_a : register(b0) {
+  uint4 a[64];
+};
+vector<float16_t, 4> tint_bitcast_to_f16(uint4 src) {
+  uint4 v = src;
+  uint4 mask = (65535u).xxxx;
+  uint4 shift = (16u).xxxx;
+  float4 t_low = f16tof32((v & mask));
+  float4 t_high = f16tof32(((v >> shift) & mask));
+  float16_t v_1 = float16_t(t_low.x);
+  float16_t v_2 = float16_t(t_high.x);
+  float16_t v_3 = float16_t(t_low.y);
+  return vector<float16_t, 4>(v_1, v_2, v_3, float16_t(t_high.y));
+}
+
+matrix<float16_t, 4, 4> v_4(uint start_byte_offset) {
+  vector<float16_t, 4> v_5 = tint_bitcast_to_f16(a[(start_byte_offset / 16u)]);
+  vector<float16_t, 4> v_6 = tint_bitcast_to_f16(a[((8u + start_byte_offset) / 16u)]);
+  vector<float16_t, 4> v_7 = tint_bitcast_to_f16(a[((16u + start_byte_offset) / 16u)]);
+  return matrix<float16_t, 4, 4>(v_5, v_6, v_7, tint_bitcast_to_f16(a[((24u + start_byte_offset) / 16u)]));
+}
+
+Inner v_8(uint start_byte_offset) {
+  Inner v_9 = {v_4(start_byte_offset)};
+  return v_9;
+}
+
+typedef Inner ary_ret[4];
+ary_ret v_10(uint start_byte_offset) {
+  Inner a[4] = (Inner[4])0;
+  {
+    uint v_11 = 0u;
+    v_11 = 0u;
+    while(true) {
+      uint v_12 = v_11;
+      if ((v_12 >= 4u)) {
+        break;
+      }
+      Inner v_13 = v_8((start_byte_offset + (v_12 * 64u)));
+      a[v_12] = v_13;
+      {
+        v_11 = (v_12 + 1u);
+      }
+      continue;
+    }
+  }
+  Inner v_14[4] = a;
+  return v_14;
+}
+
+Outer v_15(uint start_byte_offset) {
+  Inner v_16[4] = v_10(start_byte_offset);
+  Outer v_17 = {v_16};
+  return v_17;
+}
+
+typedef Outer ary_ret_1[4];
+ary_ret_1 v_18(uint start_byte_offset) {
+  Outer a[4] = (Outer[4])0;
+  {
+    uint v_19 = 0u;
+    v_19 = 0u;
+    while(true) {
+      uint v_20 = v_19;
+      if ((v_20 >= 4u)) {
+        break;
+      }
+      Outer v_21 = v_15((start_byte_offset + (v_20 * 256u)));
+      a[v_20] = v_21;
+      {
+        v_19 = (v_20 + 1u);
+      }
+      continue;
+    }
+  }
+  Outer v_22[4] = a;
+  return v_22;
+}
+
+[numthreads(1, 1, 1)]
+void f() {
+  Outer l_a[4] = v_18(0u);
+  Outer l_a_3 = v_15(904u);
+  Inner l_a_3_a[4] = v_10(904u);
+  Inner l_a_3_a_2 = v_8(904u);
+  matrix<float16_t, 4, 4> l_a_3_a_2_m = v_4(904u);
+  vector<float16_t, 4> l_a_3_a_2_m_1 = tint_bitcast_to_f16(a[56u]);
+  float16_t l_a_3_a_2_m_1_0 = float16_t(f16tof32(a[56u].z));
+}
+
diff --git a/test/tint/buffer/uniform/std140/struct/mat4x4_f16/static_index_via_ptr.wgsl.expected.ir.fxc.hlsl b/test/tint/buffer/uniform/std140/struct/mat4x4_f16/static_index_via_ptr.wgsl.expected.ir.fxc.hlsl
index 3f437dc..fafb1b9 100644
--- a/test/tint/buffer/uniform/std140/struct/mat4x4_f16/static_index_via_ptr.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/buffer/uniform/std140/struct/mat4x4_f16/static_index_via_ptr.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,104 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Access
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct Inner {
+  matrix<float16_t, 4, 4> m;
+};
+
+struct Outer {
+  Inner a[4];
+};
+
+
+cbuffer cbuffer_a : register(b0) {
+  uint4 a[64];
+};
+vector<float16_t, 4> tint_bitcast_to_f16(uint4 src) {
+  uint4 v = src;
+  uint4 mask = (65535u).xxxx;
+  uint4 shift = (16u).xxxx;
+  float4 t_low = f16tof32((v & mask));
+  float4 t_high = f16tof32(((v >> shift) & mask));
+  float16_t v_1 = float16_t(t_low.x);
+  float16_t v_2 = float16_t(t_high.x);
+  float16_t v_3 = float16_t(t_low.y);
+  return vector<float16_t, 4>(v_1, v_2, v_3, float16_t(t_high.y));
+}
+
+matrix<float16_t, 4, 4> v_4(uint start_byte_offset) {
+  vector<float16_t, 4> v_5 = tint_bitcast_to_f16(a[(start_byte_offset / 16u)]);
+  vector<float16_t, 4> v_6 = tint_bitcast_to_f16(a[((8u + start_byte_offset) / 16u)]);
+  vector<float16_t, 4> v_7 = tint_bitcast_to_f16(a[((16u + start_byte_offset) / 16u)]);
+  return matrix<float16_t, 4, 4>(v_5, v_6, v_7, tint_bitcast_to_f16(a[((24u + start_byte_offset) / 16u)]));
+}
+
+Inner v_8(uint start_byte_offset) {
+  Inner v_9 = {v_4(start_byte_offset)};
+  return v_9;
+}
+
+typedef Inner ary_ret[4];
+ary_ret v_10(uint start_byte_offset) {
+  Inner a[4] = (Inner[4])0;
+  {
+    uint v_11 = 0u;
+    v_11 = 0u;
+    while(true) {
+      uint v_12 = v_11;
+      if ((v_12 >= 4u)) {
+        break;
+      }
+      Inner v_13 = v_8((start_byte_offset + (v_12 * 64u)));
+      a[v_12] = v_13;
+      {
+        v_11 = (v_12 + 1u);
+      }
+      continue;
+    }
+  }
+  Inner v_14[4] = a;
+  return v_14;
+}
+
+Outer v_15(uint start_byte_offset) {
+  Inner v_16[4] = v_10(start_byte_offset);
+  Outer v_17 = {v_16};
+  return v_17;
+}
+
+typedef Outer ary_ret_1[4];
+ary_ret_1 v_18(uint start_byte_offset) {
+  Outer a[4] = (Outer[4])0;
+  {
+    uint v_19 = 0u;
+    v_19 = 0u;
+    while(true) {
+      uint v_20 = v_19;
+      if ((v_20 >= 4u)) {
+        break;
+      }
+      Outer v_21 = v_15((start_byte_offset + (v_20 * 256u)));
+      a[v_20] = v_21;
+      {
+        v_19 = (v_20 + 1u);
+      }
+      continue;
+    }
+  }
+  Outer v_22[4] = a;
+  return v_22;
+}
+
+[numthreads(1, 1, 1)]
+void f() {
+  Outer l_a[4] = v_18(0u);
+  Outer l_a_3 = v_15(904u);
+  Inner l_a_3_a[4] = v_10(904u);
+  Inner l_a_3_a_2 = v_8(904u);
+  matrix<float16_t, 4, 4> l_a_3_a_2_m = v_4(904u);
+  vector<float16_t, 4> l_a_3_a_2_m_1 = tint_bitcast_to_f16(a[56u]);
+  float16_t l_a_3_a_2_m_1_0 = float16_t(f16tof32(a[56u].z));
+}
+
+FXC validation failure:
+c:\src\dawn\Shader@0x000001FF18E4AAD0(2,10-18): error X3000: syntax error: unexpected token 'float16_t'
+
diff --git a/test/tint/buffer/uniform/std140/struct/mat4x4_f16/to_builtin.wgsl.expected.ir.dxc.hlsl b/test/tint/buffer/uniform/std140/struct/mat4x4_f16/to_builtin.wgsl.expected.ir.dxc.hlsl
index 3f437dc..0795183 100644
--- a/test/tint/buffer/uniform/std140/struct/mat4x4_f16/to_builtin.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/buffer/uniform/std140/struct/mat4x4_f16/to_builtin.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,30 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Access
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+cbuffer cbuffer_u : register(b0) {
+  uint4 u[32];
+};
+vector<float16_t, 4> tint_bitcast_to_f16(uint4 src) {
+  uint4 v = src;
+  uint4 mask = (65535u).xxxx;
+  uint4 shift = (16u).xxxx;
+  float4 t_low = f16tof32((v & mask));
+  float4 t_high = f16tof32(((v >> shift) & mask));
+  float16_t v_1 = float16_t(t_low.x);
+  float16_t v_2 = float16_t(t_high.x);
+  float16_t v_3 = float16_t(t_low.y);
+  return vector<float16_t, 4>(v_1, v_2, v_3, float16_t(t_high.y));
+}
+
+matrix<float16_t, 4, 4> v_4(uint start_byte_offset) {
+  vector<float16_t, 4> v_5 = tint_bitcast_to_f16(u[(start_byte_offset / 16u)]);
+  vector<float16_t, 4> v_6 = tint_bitcast_to_f16(u[((8u + start_byte_offset) / 16u)]);
+  vector<float16_t, 4> v_7 = tint_bitcast_to_f16(u[((16u + start_byte_offset) / 16u)]);
+  return matrix<float16_t, 4, 4>(v_5, v_6, v_7, tint_bitcast_to_f16(u[((24u + start_byte_offset) / 16u)]));
+}
+
+[numthreads(1, 1, 1)]
+void f() {
+  matrix<float16_t, 4, 4> t = transpose(v_4(264u));
+  float16_t l = length(tint_bitcast_to_f16(u[1u]).ywxz);
+  float16_t a = abs(tint_bitcast_to_f16(u[1u]).ywxz[0u]);
+}
+
diff --git a/test/tint/buffer/uniform/std140/struct/mat4x4_f16/to_builtin.wgsl.expected.ir.fxc.hlsl b/test/tint/buffer/uniform/std140/struct/mat4x4_f16/to_builtin.wgsl.expected.ir.fxc.hlsl
index 3f437dc..fe25946 100644
--- a/test/tint/buffer/uniform/std140/struct/mat4x4_f16/to_builtin.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/buffer/uniform/std140/struct/mat4x4_f16/to_builtin.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,35 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Access
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+
+cbuffer cbuffer_u : register(b0) {
+  uint4 u[32];
+};
+vector<float16_t, 4> tint_bitcast_to_f16(uint4 src) {
+  uint4 v = src;
+  uint4 mask = (65535u).xxxx;
+  uint4 shift = (16u).xxxx;
+  float4 t_low = f16tof32((v & mask));
+  float4 t_high = f16tof32(((v >> shift) & mask));
+  float16_t v_1 = float16_t(t_low.x);
+  float16_t v_2 = float16_t(t_high.x);
+  float16_t v_3 = float16_t(t_low.y);
+  return vector<float16_t, 4>(v_1, v_2, v_3, float16_t(t_high.y));
+}
+
+matrix<float16_t, 4, 4> v_4(uint start_byte_offset) {
+  vector<float16_t, 4> v_5 = tint_bitcast_to_f16(u[(start_byte_offset / 16u)]);
+  vector<float16_t, 4> v_6 = tint_bitcast_to_f16(u[((8u + start_byte_offset) / 16u)]);
+  vector<float16_t, 4> v_7 = tint_bitcast_to_f16(u[((16u + start_byte_offset) / 16u)]);
+  return matrix<float16_t, 4, 4>(v_5, v_6, v_7, tint_bitcast_to_f16(u[((24u + start_byte_offset) / 16u)]));
+}
+
+[numthreads(1, 1, 1)]
+void f() {
+  matrix<float16_t, 4, 4> t = transpose(v_4(264u));
+  float16_t l = length(tint_bitcast_to_f16(u[1u]).ywxz);
+  float16_t a = abs(tint_bitcast_to_f16(u[1u]).ywxz[0u]);
+}
+
+FXC validation failure:
+c:\src\dawn\Shader@0x0000022673463630(5,8-16): error X3000: syntax error: unexpected token 'float16_t'
+
diff --git a/test/tint/buffer/uniform/std140/struct/mat4x4_f16/to_fn.wgsl.expected.ir.dxc.hlsl b/test/tint/buffer/uniform/std140/struct/mat4x4_f16/to_fn.wgsl.expected.ir.dxc.hlsl
index 3f437dc..0ba935d 100644
--- a/test/tint/buffer/uniform/std140/struct/mat4x4_f16/to_fn.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/buffer/uniform/std140/struct/mat4x4_f16/to_fn.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,85 @@
-SKIP: FAILED
+struct S {
+  int before;
+  matrix<float16_t, 4, 4> m;
+  int after;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Access
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+
+cbuffer cbuffer_u : register(b0) {
+  uint4 u[32];
+};
+void a(S a_1[4]) {
+}
+
+void b(S s) {
+}
+
+void c(matrix<float16_t, 4, 4> m) {
+}
+
+void d(vector<float16_t, 4> v) {
+}
+
+void e(float16_t f) {
+}
+
+vector<float16_t, 4> tint_bitcast_to_f16(uint4 src) {
+  uint4 v = src;
+  uint4 mask = (65535u).xxxx;
+  uint4 shift = (16u).xxxx;
+  float4 t_low = f16tof32((v & mask));
+  float4 t_high = f16tof32(((v >> shift) & mask));
+  float16_t v_1 = float16_t(t_low.x);
+  float16_t v_2 = float16_t(t_high.x);
+  float16_t v_3 = float16_t(t_low.y);
+  return vector<float16_t, 4>(v_1, v_2, v_3, float16_t(t_high.y));
+}
+
+matrix<float16_t, 4, 4> v_4(uint start_byte_offset) {
+  vector<float16_t, 4> v_5 = tint_bitcast_to_f16(u[(start_byte_offset / 16u)]);
+  vector<float16_t, 4> v_6 = tint_bitcast_to_f16(u[((8u + start_byte_offset) / 16u)]);
+  vector<float16_t, 4> v_7 = tint_bitcast_to_f16(u[((16u + start_byte_offset) / 16u)]);
+  return matrix<float16_t, 4, 4>(v_5, v_6, v_7, tint_bitcast_to_f16(u[((24u + start_byte_offset) / 16u)]));
+}
+
+S v_8(uint start_byte_offset) {
+  int v_9 = asint(u[(start_byte_offset / 16u)][((start_byte_offset % 16u) / 4u)]);
+  matrix<float16_t, 4, 4> v_10 = v_4((8u + start_byte_offset));
+  S v_11 = {v_9, v_10, asint(u[((64u + start_byte_offset) / 16u)][(((64u + start_byte_offset) % 16u) / 4u)])};
+  return v_11;
+}
+
+typedef S ary_ret[4];
+ary_ret v_12(uint start_byte_offset) {
+  S a[4] = (S[4])0;
+  {
+    uint v_13 = 0u;
+    v_13 = 0u;
+    while(true) {
+      uint v_14 = v_13;
+      if ((v_14 >= 4u)) {
+        break;
+      }
+      S v_15 = v_8((start_byte_offset + (v_14 * 128u)));
+      a[v_14] = v_15;
+      {
+        v_13 = (v_14 + 1u);
+      }
+      continue;
+    }
+  }
+  S v_16[4] = a;
+  return v_16;
+}
+
+[numthreads(1, 1, 1)]
+void f() {
+  S v_17[4] = v_12(0u);
+  a(v_17);
+  S v_18 = v_8(256u);
+  b(v_18);
+  c(v_4(264u));
+  d(tint_bitcast_to_f16(u[1u]).ywxz);
+  e(tint_bitcast_to_f16(u[1u]).ywxz[0u]);
+}
+
diff --git a/test/tint/buffer/uniform/std140/struct/mat4x4_f16/to_fn.wgsl.expected.ir.fxc.hlsl b/test/tint/buffer/uniform/std140/struct/mat4x4_f16/to_fn.wgsl.expected.ir.fxc.hlsl
index 3f437dc..d1a082c 100644
--- a/test/tint/buffer/uniform/std140/struct/mat4x4_f16/to_fn.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/buffer/uniform/std140/struct/mat4x4_f16/to_fn.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,90 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Access
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct S {
+  int before;
+  matrix<float16_t, 4, 4> m;
+  int after;
+};
+
+
+cbuffer cbuffer_u : register(b0) {
+  uint4 u[32];
+};
+void a(S a_1[4]) {
+}
+
+void b(S s) {
+}
+
+void c(matrix<float16_t, 4, 4> m) {
+}
+
+void d(vector<float16_t, 4> v) {
+}
+
+void e(float16_t f) {
+}
+
+vector<float16_t, 4> tint_bitcast_to_f16(uint4 src) {
+  uint4 v = src;
+  uint4 mask = (65535u).xxxx;
+  uint4 shift = (16u).xxxx;
+  float4 t_low = f16tof32((v & mask));
+  float4 t_high = f16tof32(((v >> shift) & mask));
+  float16_t v_1 = float16_t(t_low.x);
+  float16_t v_2 = float16_t(t_high.x);
+  float16_t v_3 = float16_t(t_low.y);
+  return vector<float16_t, 4>(v_1, v_2, v_3, float16_t(t_high.y));
+}
+
+matrix<float16_t, 4, 4> v_4(uint start_byte_offset) {
+  vector<float16_t, 4> v_5 = tint_bitcast_to_f16(u[(start_byte_offset / 16u)]);
+  vector<float16_t, 4> v_6 = tint_bitcast_to_f16(u[((8u + start_byte_offset) / 16u)]);
+  vector<float16_t, 4> v_7 = tint_bitcast_to_f16(u[((16u + start_byte_offset) / 16u)]);
+  return matrix<float16_t, 4, 4>(v_5, v_6, v_7, tint_bitcast_to_f16(u[((24u + start_byte_offset) / 16u)]));
+}
+
+S v_8(uint start_byte_offset) {
+  int v_9 = asint(u[(start_byte_offset / 16u)][((start_byte_offset % 16u) / 4u)]);
+  matrix<float16_t, 4, 4> v_10 = v_4((8u + start_byte_offset));
+  S v_11 = {v_9, v_10, asint(u[((64u + start_byte_offset) / 16u)][(((64u + start_byte_offset) % 16u) / 4u)])};
+  return v_11;
+}
+
+typedef S ary_ret[4];
+ary_ret v_12(uint start_byte_offset) {
+  S a[4] = (S[4])0;
+  {
+    uint v_13 = 0u;
+    v_13 = 0u;
+    while(true) {
+      uint v_14 = v_13;
+      if ((v_14 >= 4u)) {
+        break;
+      }
+      S v_15 = v_8((start_byte_offset + (v_14 * 128u)));
+      a[v_14] = v_15;
+      {
+        v_13 = (v_14 + 1u);
+      }
+      continue;
+    }
+  }
+  S v_16[4] = a;
+  return v_16;
+}
+
+[numthreads(1, 1, 1)]
+void f() {
+  S v_17[4] = v_12(0u);
+  a(v_17);
+  S v_18 = v_8(256u);
+  b(v_18);
+  c(v_4(264u));
+  d(tint_bitcast_to_f16(u[1u]).ywxz);
+  e(tint_bitcast_to_f16(u[1u]).ywxz[0u]);
+}
+
+FXC validation failure:
+c:\src\dawn\Shader@0x000001BD516070C0(3,10-18): error X3000: syntax error: unexpected token 'float16_t'
+
diff --git a/test/tint/buffer/uniform/std140/struct/mat4x4_f16/to_private.wgsl.expected.ir.dxc.hlsl b/test/tint/buffer/uniform/std140/struct/mat4x4_f16/to_private.wgsl.expected.ir.dxc.hlsl
index 3f437dc..6e8ed77 100644
--- a/test/tint/buffer/uniform/std140/struct/mat4x4_f16/to_private.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/buffer/uniform/std140/struct/mat4x4_f16/to_private.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,70 @@
-SKIP: FAILED
+struct S {
+  int before;
+  matrix<float16_t, 4, 4> m;
+  int after;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Access
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+
+cbuffer cbuffer_u : register(b0) {
+  uint4 u[32];
+};
+static S p[4] = (S[4])0;
+vector<float16_t, 4> tint_bitcast_to_f16(uint4 src) {
+  uint4 v = src;
+  uint4 mask = (65535u).xxxx;
+  uint4 shift = (16u).xxxx;
+  float4 t_low = f16tof32((v & mask));
+  float4 t_high = f16tof32(((v >> shift) & mask));
+  float16_t v_1 = float16_t(t_low.x);
+  float16_t v_2 = float16_t(t_high.x);
+  float16_t v_3 = float16_t(t_low.y);
+  return vector<float16_t, 4>(v_1, v_2, v_3, float16_t(t_high.y));
+}
+
+matrix<float16_t, 4, 4> v_4(uint start_byte_offset) {
+  vector<float16_t, 4> v_5 = tint_bitcast_to_f16(u[(start_byte_offset / 16u)]);
+  vector<float16_t, 4> v_6 = tint_bitcast_to_f16(u[((8u + start_byte_offset) / 16u)]);
+  vector<float16_t, 4> v_7 = tint_bitcast_to_f16(u[((16u + start_byte_offset) / 16u)]);
+  return matrix<float16_t, 4, 4>(v_5, v_6, v_7, tint_bitcast_to_f16(u[((24u + start_byte_offset) / 16u)]));
+}
+
+S v_8(uint start_byte_offset) {
+  int v_9 = asint(u[(start_byte_offset / 16u)][((start_byte_offset % 16u) / 4u)]);
+  matrix<float16_t, 4, 4> v_10 = v_4((8u + start_byte_offset));
+  S v_11 = {v_9, v_10, asint(u[((64u + start_byte_offset) / 16u)][(((64u + start_byte_offset) % 16u) / 4u)])};
+  return v_11;
+}
+
+typedef S ary_ret[4];
+ary_ret v_12(uint start_byte_offset) {
+  S a[4] = (S[4])0;
+  {
+    uint v_13 = 0u;
+    v_13 = 0u;
+    while(true) {
+      uint v_14 = v_13;
+      if ((v_14 >= 4u)) {
+        break;
+      }
+      S v_15 = v_8((start_byte_offset + (v_14 * 128u)));
+      a[v_14] = v_15;
+      {
+        v_13 = (v_14 + 1u);
+      }
+      continue;
+    }
+  }
+  S v_16[4] = a;
+  return v_16;
+}
+
+[numthreads(1, 1, 1)]
+void f() {
+  S v_17[4] = v_12(0u);
+  p = v_17;
+  S v_18 = v_8(256u);
+  p[1] = v_18;
+  p[3].m = v_4(264u);
+  p[1].m[0] = tint_bitcast_to_f16(u[1u]).ywxz;
+}
+
diff --git a/test/tint/buffer/uniform/std140/struct/mat4x4_f16/to_private.wgsl.expected.ir.fxc.hlsl b/test/tint/buffer/uniform/std140/struct/mat4x4_f16/to_private.wgsl.expected.ir.fxc.hlsl
index 3f437dc..0d1d016 100644
--- a/test/tint/buffer/uniform/std140/struct/mat4x4_f16/to_private.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/buffer/uniform/std140/struct/mat4x4_f16/to_private.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,75 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Access
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct S {
+  int before;
+  matrix<float16_t, 4, 4> m;
+  int after;
+};
+
+
+cbuffer cbuffer_u : register(b0) {
+  uint4 u[32];
+};
+static S p[4] = (S[4])0;
+vector<float16_t, 4> tint_bitcast_to_f16(uint4 src) {
+  uint4 v = src;
+  uint4 mask = (65535u).xxxx;
+  uint4 shift = (16u).xxxx;
+  float4 t_low = f16tof32((v & mask));
+  float4 t_high = f16tof32(((v >> shift) & mask));
+  float16_t v_1 = float16_t(t_low.x);
+  float16_t v_2 = float16_t(t_high.x);
+  float16_t v_3 = float16_t(t_low.y);
+  return vector<float16_t, 4>(v_1, v_2, v_3, float16_t(t_high.y));
+}
+
+matrix<float16_t, 4, 4> v_4(uint start_byte_offset) {
+  vector<float16_t, 4> v_5 = tint_bitcast_to_f16(u[(start_byte_offset / 16u)]);
+  vector<float16_t, 4> v_6 = tint_bitcast_to_f16(u[((8u + start_byte_offset) / 16u)]);
+  vector<float16_t, 4> v_7 = tint_bitcast_to_f16(u[((16u + start_byte_offset) / 16u)]);
+  return matrix<float16_t, 4, 4>(v_5, v_6, v_7, tint_bitcast_to_f16(u[((24u + start_byte_offset) / 16u)]));
+}
+
+S v_8(uint start_byte_offset) {
+  int v_9 = asint(u[(start_byte_offset / 16u)][((start_byte_offset % 16u) / 4u)]);
+  matrix<float16_t, 4, 4> v_10 = v_4((8u + start_byte_offset));
+  S v_11 = {v_9, v_10, asint(u[((64u + start_byte_offset) / 16u)][(((64u + start_byte_offset) % 16u) / 4u)])};
+  return v_11;
+}
+
+typedef S ary_ret[4];
+ary_ret v_12(uint start_byte_offset) {
+  S a[4] = (S[4])0;
+  {
+    uint v_13 = 0u;
+    v_13 = 0u;
+    while(true) {
+      uint v_14 = v_13;
+      if ((v_14 >= 4u)) {
+        break;
+      }
+      S v_15 = v_8((start_byte_offset + (v_14 * 128u)));
+      a[v_14] = v_15;
+      {
+        v_13 = (v_14 + 1u);
+      }
+      continue;
+    }
+  }
+  S v_16[4] = a;
+  return v_16;
+}
+
+[numthreads(1, 1, 1)]
+void f() {
+  S v_17[4] = v_12(0u);
+  p = v_17;
+  S v_18 = v_8(256u);
+  p[1] = v_18;
+  p[3].m = v_4(264u);
+  p[1].m[0] = tint_bitcast_to_f16(u[1u]).ywxz;
+}
+
+FXC validation failure:
+c:\src\dawn\Shader@0x0000019AC0200850(3,10-18): error X3000: syntax error: unexpected token 'float16_t'
+
diff --git a/test/tint/buffer/uniform/std140/struct/mat4x4_f16/to_storage.wgsl.expected.ir.dxc.hlsl b/test/tint/buffer/uniform/std140/struct/mat4x4_f16/to_storage.wgsl.expected.ir.dxc.hlsl
index 3f437dc..af568c1 100644
--- a/test/tint/buffer/uniform/std140/struct/mat4x4_f16/to_storage.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/buffer/uniform/std140/struct/mat4x4_f16/to_storage.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,102 @@
-SKIP: FAILED
+struct S {
+  int before;
+  matrix<float16_t, 4, 4> m;
+  int after;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Access
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+
+cbuffer cbuffer_u : register(b0) {
+  uint4 u[32];
+};
+RWByteAddressBuffer s : register(u1);
+vector<float16_t, 4> tint_bitcast_to_f16(uint4 src) {
+  uint4 v = src;
+  uint4 mask = (65535u).xxxx;
+  uint4 shift = (16u).xxxx;
+  float4 t_low = f16tof32((v & mask));
+  float4 t_high = f16tof32(((v >> shift) & mask));
+  float16_t v_1 = float16_t(t_low.x);
+  float16_t v_2 = float16_t(t_high.x);
+  float16_t v_3 = float16_t(t_low.y);
+  return vector<float16_t, 4>(v_1, v_2, v_3, float16_t(t_high.y));
+}
+
+void v_4(uint offset, matrix<float16_t, 4, 4> obj) {
+  s.Store<vector<float16_t, 4> >((offset + 0u), obj[0u]);
+  s.Store<vector<float16_t, 4> >((offset + 8u), obj[1u]);
+  s.Store<vector<float16_t, 4> >((offset + 16u), obj[2u]);
+  s.Store<vector<float16_t, 4> >((offset + 24u), obj[3u]);
+}
+
+matrix<float16_t, 4, 4> v_5(uint start_byte_offset) {
+  vector<float16_t, 4> v_6 = tint_bitcast_to_f16(u[(start_byte_offset / 16u)]);
+  vector<float16_t, 4> v_7 = tint_bitcast_to_f16(u[((8u + start_byte_offset) / 16u)]);
+  vector<float16_t, 4> v_8 = tint_bitcast_to_f16(u[((16u + start_byte_offset) / 16u)]);
+  return matrix<float16_t, 4, 4>(v_6, v_7, v_8, tint_bitcast_to_f16(u[((24u + start_byte_offset) / 16u)]));
+}
+
+void v_9(uint offset, S obj) {
+  s.Store((offset + 0u), asuint(obj.before));
+  v_4((offset + 8u), obj.m);
+  s.Store((offset + 64u), asuint(obj.after));
+}
+
+S v_10(uint start_byte_offset) {
+  int v_11 = asint(u[(start_byte_offset / 16u)][((start_byte_offset % 16u) / 4u)]);
+  matrix<float16_t, 4, 4> v_12 = v_5((8u + start_byte_offset));
+  S v_13 = {v_11, v_12, asint(u[((64u + start_byte_offset) / 16u)][(((64u + start_byte_offset) % 16u) / 4u)])};
+  return v_13;
+}
+
+void v_14(uint offset, S obj[4]) {
+  {
+    uint v_15 = 0u;
+    v_15 = 0u;
+    while(true) {
+      uint v_16 = v_15;
+      if ((v_16 >= 4u)) {
+        break;
+      }
+      S v_17 = obj[v_16];
+      v_9((offset + (v_16 * 128u)), v_17);
+      {
+        v_15 = (v_16 + 1u);
+      }
+      continue;
+    }
+  }
+}
+
+typedef S ary_ret[4];
+ary_ret v_18(uint start_byte_offset) {
+  S a[4] = (S[4])0;
+  {
+    uint v_19 = 0u;
+    v_19 = 0u;
+    while(true) {
+      uint v_20 = v_19;
+      if ((v_20 >= 4u)) {
+        break;
+      }
+      S v_21 = v_10((start_byte_offset + (v_20 * 128u)));
+      a[v_20] = v_21;
+      {
+        v_19 = (v_20 + 1u);
+      }
+      continue;
+    }
+  }
+  S v_22[4] = a;
+  return v_22;
+}
+
+[numthreads(1, 1, 1)]
+void f() {
+  S v_23[4] = v_18(0u);
+  v_14(0u, v_23);
+  S v_24 = v_10(256u);
+  v_9(128u, v_24);
+  v_4(392u, v_5(264u));
+  s.Store<vector<float16_t, 4> >(136u, tint_bitcast_to_f16(u[1u]).ywxz);
+}
+
diff --git a/test/tint/buffer/uniform/std140/struct/mat4x4_f16/to_storage.wgsl.expected.ir.fxc.hlsl b/test/tint/buffer/uniform/std140/struct/mat4x4_f16/to_storage.wgsl.expected.ir.fxc.hlsl
index 3f437dc..c19f93a 100644
--- a/test/tint/buffer/uniform/std140/struct/mat4x4_f16/to_storage.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/buffer/uniform/std140/struct/mat4x4_f16/to_storage.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,107 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Access
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct S {
+  int before;
+  matrix<float16_t, 4, 4> m;
+  int after;
+};
+
+
+cbuffer cbuffer_u : register(b0) {
+  uint4 u[32];
+};
+RWByteAddressBuffer s : register(u1);
+vector<float16_t, 4> tint_bitcast_to_f16(uint4 src) {
+  uint4 v = src;
+  uint4 mask = (65535u).xxxx;
+  uint4 shift = (16u).xxxx;
+  float4 t_low = f16tof32((v & mask));
+  float4 t_high = f16tof32(((v >> shift) & mask));
+  float16_t v_1 = float16_t(t_low.x);
+  float16_t v_2 = float16_t(t_high.x);
+  float16_t v_3 = float16_t(t_low.y);
+  return vector<float16_t, 4>(v_1, v_2, v_3, float16_t(t_high.y));
+}
+
+void v_4(uint offset, matrix<float16_t, 4, 4> obj) {
+  s.Store<vector<float16_t, 4> >((offset + 0u), obj[0u]);
+  s.Store<vector<float16_t, 4> >((offset + 8u), obj[1u]);
+  s.Store<vector<float16_t, 4> >((offset + 16u), obj[2u]);
+  s.Store<vector<float16_t, 4> >((offset + 24u), obj[3u]);
+}
+
+matrix<float16_t, 4, 4> v_5(uint start_byte_offset) {
+  vector<float16_t, 4> v_6 = tint_bitcast_to_f16(u[(start_byte_offset / 16u)]);
+  vector<float16_t, 4> v_7 = tint_bitcast_to_f16(u[((8u + start_byte_offset) / 16u)]);
+  vector<float16_t, 4> v_8 = tint_bitcast_to_f16(u[((16u + start_byte_offset) / 16u)]);
+  return matrix<float16_t, 4, 4>(v_6, v_7, v_8, tint_bitcast_to_f16(u[((24u + start_byte_offset) / 16u)]));
+}
+
+void v_9(uint offset, S obj) {
+  s.Store((offset + 0u), asuint(obj.before));
+  v_4((offset + 8u), obj.m);
+  s.Store((offset + 64u), asuint(obj.after));
+}
+
+S v_10(uint start_byte_offset) {
+  int v_11 = asint(u[(start_byte_offset / 16u)][((start_byte_offset % 16u) / 4u)]);
+  matrix<float16_t, 4, 4> v_12 = v_5((8u + start_byte_offset));
+  S v_13 = {v_11, v_12, asint(u[((64u + start_byte_offset) / 16u)][(((64u + start_byte_offset) % 16u) / 4u)])};
+  return v_13;
+}
+
+void v_14(uint offset, S obj[4]) {
+  {
+    uint v_15 = 0u;
+    v_15 = 0u;
+    while(true) {
+      uint v_16 = v_15;
+      if ((v_16 >= 4u)) {
+        break;
+      }
+      S v_17 = obj[v_16];
+      v_9((offset + (v_16 * 128u)), v_17);
+      {
+        v_15 = (v_16 + 1u);
+      }
+      continue;
+    }
+  }
+}
+
+typedef S ary_ret[4];
+ary_ret v_18(uint start_byte_offset) {
+  S a[4] = (S[4])0;
+  {
+    uint v_19 = 0u;
+    v_19 = 0u;
+    while(true) {
+      uint v_20 = v_19;
+      if ((v_20 >= 4u)) {
+        break;
+      }
+      S v_21 = v_10((start_byte_offset + (v_20 * 128u)));
+      a[v_20] = v_21;
+      {
+        v_19 = (v_20 + 1u);
+      }
+      continue;
+    }
+  }
+  S v_22[4] = a;
+  return v_22;
+}
+
+[numthreads(1, 1, 1)]
+void f() {
+  S v_23[4] = v_18(0u);
+  v_14(0u, v_23);
+  S v_24 = v_10(256u);
+  v_9(128u, v_24);
+  v_4(392u, v_5(264u));
+  s.Store<vector<float16_t, 4> >(136u, tint_bitcast_to_f16(u[1u]).ywxz);
+}
+
+FXC validation failure:
+c:\src\dawn\Shader@0x000002D279549920(3,10-18): error X3000: syntax error: unexpected token 'float16_t'
+
diff --git a/test/tint/buffer/uniform/std140/struct/mat4x4_f16/to_workgroup.wgsl.expected.ir.dxc.hlsl b/test/tint/buffer/uniform/std140/struct/mat4x4_f16/to_workgroup.wgsl.expected.ir.dxc.hlsl
index 3f437dc..7128635 100644
--- a/test/tint/buffer/uniform/std140/struct/mat4x4_f16/to_workgroup.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/buffer/uniform/std140/struct/mat4x4_f16/to_workgroup.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,95 @@
-SKIP: FAILED
+struct S {
+  int before;
+  matrix<float16_t, 4, 4> m;
+  int after;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Access
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct f_inputs {
+  uint tint_local_index : SV_GroupIndex;
+};
+
+
+cbuffer cbuffer_u : register(b0) {
+  uint4 u[32];
+};
+groupshared S w[4];
+vector<float16_t, 4> tint_bitcast_to_f16(uint4 src) {
+  uint4 v = src;
+  uint4 mask = (65535u).xxxx;
+  uint4 shift = (16u).xxxx;
+  float4 t_low = f16tof32((v & mask));
+  float4 t_high = f16tof32(((v >> shift) & mask));
+  float16_t v_1 = float16_t(t_low.x);
+  float16_t v_2 = float16_t(t_high.x);
+  float16_t v_3 = float16_t(t_low.y);
+  return vector<float16_t, 4>(v_1, v_2, v_3, float16_t(t_high.y));
+}
+
+matrix<float16_t, 4, 4> v_4(uint start_byte_offset) {
+  vector<float16_t, 4> v_5 = tint_bitcast_to_f16(u[(start_byte_offset / 16u)]);
+  vector<float16_t, 4> v_6 = tint_bitcast_to_f16(u[((8u + start_byte_offset) / 16u)]);
+  vector<float16_t, 4> v_7 = tint_bitcast_to_f16(u[((16u + start_byte_offset) / 16u)]);
+  return matrix<float16_t, 4, 4>(v_5, v_6, v_7, tint_bitcast_to_f16(u[((24u + start_byte_offset) / 16u)]));
+}
+
+S v_8(uint start_byte_offset) {
+  int v_9 = asint(u[(start_byte_offset / 16u)][((start_byte_offset % 16u) / 4u)]);
+  matrix<float16_t, 4, 4> v_10 = v_4((8u + start_byte_offset));
+  S v_11 = {v_9, v_10, asint(u[((64u + start_byte_offset) / 16u)][(((64u + start_byte_offset) % 16u) / 4u)])};
+  return v_11;
+}
+
+typedef S ary_ret[4];
+ary_ret v_12(uint start_byte_offset) {
+  S a[4] = (S[4])0;
+  {
+    uint v_13 = 0u;
+    v_13 = 0u;
+    while(true) {
+      uint v_14 = v_13;
+      if ((v_14 >= 4u)) {
+        break;
+      }
+      S v_15 = v_8((start_byte_offset + (v_14 * 128u)));
+      a[v_14] = v_15;
+      {
+        v_13 = (v_14 + 1u);
+      }
+      continue;
+    }
+  }
+  S v_16[4] = a;
+  return v_16;
+}
+
+void f_inner(uint tint_local_index) {
+  {
+    uint v_17 = 0u;
+    v_17 = tint_local_index;
+    while(true) {
+      uint v_18 = v_17;
+      if ((v_18 >= 4u)) {
+        break;
+      }
+      S v_19 = (S)0;
+      w[v_18] = v_19;
+      {
+        v_17 = (v_18 + 1u);
+      }
+      continue;
+    }
+  }
+  GroupMemoryBarrierWithGroupSync();
+  S v_20[4] = v_12(0u);
+  w = v_20;
+  S v_21 = v_8(256u);
+  w[1] = v_21;
+  w[3].m = v_4(264u);
+  w[1].m[0] = tint_bitcast_to_f16(u[1u]).ywxz;
+}
+
+[numthreads(1, 1, 1)]
+void f(f_inputs inputs) {
+  f_inner(inputs.tint_local_index);
+}
+
diff --git a/test/tint/buffer/uniform/std140/struct/mat4x4_f16/to_workgroup.wgsl.expected.ir.fxc.hlsl b/test/tint/buffer/uniform/std140/struct/mat4x4_f16/to_workgroup.wgsl.expected.ir.fxc.hlsl
index 3f437dc..38169b9 100644
--- a/test/tint/buffer/uniform/std140/struct/mat4x4_f16/to_workgroup.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/buffer/uniform/std140/struct/mat4x4_f16/to_workgroup.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,100 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Access
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct S {
+  int before;
+  matrix<float16_t, 4, 4> m;
+  int after;
+};
+
+struct f_inputs {
+  uint tint_local_index : SV_GroupIndex;
+};
+
+
+cbuffer cbuffer_u : register(b0) {
+  uint4 u[32];
+};
+groupshared S w[4];
+vector<float16_t, 4> tint_bitcast_to_f16(uint4 src) {
+  uint4 v = src;
+  uint4 mask = (65535u).xxxx;
+  uint4 shift = (16u).xxxx;
+  float4 t_low = f16tof32((v & mask));
+  float4 t_high = f16tof32(((v >> shift) & mask));
+  float16_t v_1 = float16_t(t_low.x);
+  float16_t v_2 = float16_t(t_high.x);
+  float16_t v_3 = float16_t(t_low.y);
+  return vector<float16_t, 4>(v_1, v_2, v_3, float16_t(t_high.y));
+}
+
+matrix<float16_t, 4, 4> v_4(uint start_byte_offset) {
+  vector<float16_t, 4> v_5 = tint_bitcast_to_f16(u[(start_byte_offset / 16u)]);
+  vector<float16_t, 4> v_6 = tint_bitcast_to_f16(u[((8u + start_byte_offset) / 16u)]);
+  vector<float16_t, 4> v_7 = tint_bitcast_to_f16(u[((16u + start_byte_offset) / 16u)]);
+  return matrix<float16_t, 4, 4>(v_5, v_6, v_7, tint_bitcast_to_f16(u[((24u + start_byte_offset) / 16u)]));
+}
+
+S v_8(uint start_byte_offset) {
+  int v_9 = asint(u[(start_byte_offset / 16u)][((start_byte_offset % 16u) / 4u)]);
+  matrix<float16_t, 4, 4> v_10 = v_4((8u + start_byte_offset));
+  S v_11 = {v_9, v_10, asint(u[((64u + start_byte_offset) / 16u)][(((64u + start_byte_offset) % 16u) / 4u)])};
+  return v_11;
+}
+
+typedef S ary_ret[4];
+ary_ret v_12(uint start_byte_offset) {
+  S a[4] = (S[4])0;
+  {
+    uint v_13 = 0u;
+    v_13 = 0u;
+    while(true) {
+      uint v_14 = v_13;
+      if ((v_14 >= 4u)) {
+        break;
+      }
+      S v_15 = v_8((start_byte_offset + (v_14 * 128u)));
+      a[v_14] = v_15;
+      {
+        v_13 = (v_14 + 1u);
+      }
+      continue;
+    }
+  }
+  S v_16[4] = a;
+  return v_16;
+}
+
+void f_inner(uint tint_local_index) {
+  {
+    uint v_17 = 0u;
+    v_17 = tint_local_index;
+    while(true) {
+      uint v_18 = v_17;
+      if ((v_18 >= 4u)) {
+        break;
+      }
+      S v_19 = (S)0;
+      w[v_18] = v_19;
+      {
+        v_17 = (v_18 + 1u);
+      }
+      continue;
+    }
+  }
+  GroupMemoryBarrierWithGroupSync();
+  S v_20[4] = v_12(0u);
+  w = v_20;
+  S v_21 = v_8(256u);
+  w[1] = v_21;
+  w[3].m = v_4(264u);
+  w[1].m[0] = tint_bitcast_to_f16(u[1u]).ywxz;
+}
+
+[numthreads(1, 1, 1)]
+void f(f_inputs inputs) {
+  f_inner(inputs.tint_local_index);
+}
+
+FXC validation failure:
+c:\src\dawn\Shader@0x00000281DDDBD9E0(3,10-18): error X3000: syntax error: unexpected token 'float16_t'
+
diff --git a/test/tint/buffer/uniform/std140/struct/mat4x4_f32/dynamic_index_via_ptr.wgsl.expected.ir.dxc.hlsl b/test/tint/buffer/uniform/std140/struct/mat4x4_f32/dynamic_index_via_ptr.wgsl.expected.ir.dxc.hlsl
index 3f437dc..7ba3d09 100644
--- a/test/tint/buffer/uniform/std140/struct/mat4x4_f32/dynamic_index_via_ptr.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/buffer/uniform/std140/struct/mat4x4_f32/dynamic_index_via_ptr.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,291 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Access
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+
+struct Inner {
+  @size(64)
+  m : mat4x4<f32>,
+}
+
+struct Outer {
+  a : array<Inner, 4>,
+}
+
+@group(0) @binding(0) var<uniform> a : array<Outer, 4>;
+
+var<private> counter = 0;
+
+fn i() -> i32 {
+  counter++;
+  return counter;
+}
+
+@compute @workgroup_size(1)
+fn f() {
+  let p_a = &(a);
+  let p_a_i = &((*(p_a))[i()]);
+  let p_a_i_a = &((*(p_a_i)).a);
+  let p_a_i_a_i = &((*(p_a_i_a))[i()]);
+  let p_a_i_a_i_m = &((*(p_a_i_a_i)).m);
+  let p_a_i_a_i_m_i = &((*(p_a_i_a_i_m))[i()]);
+  let l_a : array<Outer, 4> = *(p_a);
+  let l_a_i : Outer = *(p_a_i);
+  let l_a_i_a : array<Inner, 4> = *(p_a_i_a);
+  let l_a_i_a_i : Inner = *(p_a_i_a_i);
+  let l_a_i_a_i_m : mat4x4<f32> = *(p_a_i_a_i_m);
+  let l_a_i_a_i_m_i : vec4<f32> = *(p_a_i_a_i_m_i);
+  let l_a_i_a_i_m_i_i : f32 = (*(p_a_i_a_i_m_i))[i()];
+}
+
+Failed to generate: :38:24 error: binary: %23 is not in scope
+    %22:u32 = add %21, %23
+                       ^^^
+
+:24:3 note: in block
+  $B3: {
+  ^^^
+
+:62:5 note: %23 declared here
+    %23:u32 = mul %50, 4u
+    ^^^^^^^
+
+:45:24 error: binary: %23 is not in scope
+    %32:u32 = add %31, %23
+                       ^^^
+
+:24:3 note: in block
+  $B3: {
+  ^^^
+
+:62:5 note: %23 declared here
+    %23:u32 = mul %50, 4u
+    ^^^^^^^
+
+:50:24 error: binary: %23 is not in scope
+    %38:u32 = add %37, %23
+                       ^^^
+
+:24:3 note: in block
+  $B3: {
+  ^^^
+
+:62:5 note: %23 declared here
+    %23:u32 = mul %50, 4u
+    ^^^^^^^
+
+:55:24 error: binary: %23 is not in scope
+    %44:u32 = add %43, %23
+                       ^^^
+
+:24:3 note: in block
+  $B3: {
+  ^^^
+
+:62:5 note: %23 declared here
+    %23:u32 = mul %50, 4u
+    ^^^^^^^
+
+:62:5 error: binary: no matching overload for 'operator * (i32, u32)'
+
+9 candidate operators:
+ • 'operator * (T  ✓ , T  ✗ ) -> T' where:
+      ✓  'T' is 'f32', 'i32', 'u32' or 'f16'
+ • 'operator * (vecN<T>  ✗ , T  ✓ ) -> vecN<T>' where:
+      ✓  'T' is 'f32', 'i32', 'u32' or 'f16'
+ • 'operator * (T  ✓ , vecN<T>  ✗ ) -> vecN<T>' where:
+      ✓  'T' is 'f32', 'i32', 'u32' or 'f16'
+ • 'operator * (T  ✗ , matNxM<T>  ✗ ) -> matNxM<T>' where:
+      ✗  'T' is 'f32' or 'f16'
+ • 'operator * (matNxM<T>  ✗ , T  ✗ ) -> matNxM<T>' where:
+      ✗  'T' is 'f32' or 'f16'
+ • 'operator * (vecN<T>  ✗ , vecN<T>  ✗ ) -> vecN<T>' where:
+      ✗  'T' is 'f32', 'i32', 'u32' or 'f16'
+ • 'operator * (matCxR<T>  ✗ , vecC<T>  ✗ ) -> vecR<T>' where:
+      ✗  'T' is 'f32' or 'f16'
+ • 'operator * (vecR<T>  ✗ , matCxR<T>  ✗ ) -> vecC<T>' where:
+      ✗  'T' is 'f32' or 'f16'
+ • 'operator * (matKxR<T>  ✗ , matCxK<T>  ✗ ) -> matCxR<T>' where:
+      ✗  'T' is 'f32' or 'f16'
+
+    %23:u32 = mul %50, 4u
+    ^^^^^^^^^^^^^^^^^^^^^
+
+:24:3 note: in block
+  $B3: {
+  ^^^
+
+note: # Disassembly
+Inner = struct @align(16) {
+  m:mat4x4<f32> @offset(0)
+}
+
+Outer = struct @align(16) {
+  a:array<Inner, 4> @offset(0)
+}
+
+$B1: {  # root
+  %a:ptr<uniform, array<vec4<u32>, 64>, read> = var @binding_point(0, 0)
+  %counter:ptr<private, i32, read_write> = var, 0i
+}
+
+%i = func():i32 {
+  $B2: {
+    %4:i32 = load %counter
+    %5:i32 = add %4, 1i
+    store %counter, %5
+    %6:i32 = load %counter
+    ret %6
+  }
+}
+%f = @compute @workgroup_size(1, 1, 1) func():void {
+  $B3: {
+    %8:i32 = call %i
+    %9:u32 = convert %8
+    %10:u32 = mul 256u, %9
+    %11:i32 = call %i
+    %12:u32 = convert %11
+    %13:u32 = mul 64u, %12
+    %14:i32 = call %i
+    %15:u32 = convert %14
+    %16:u32 = mul 16u, %15
+    %17:array<Outer, 4> = call %18, 0u
+    %l_a:array<Outer, 4> = let %17
+    %20:u32 = add %10, %13
+    %21:u32 = add %20, %16
+    %22:u32 = add %21, %23
+    %24:Outer = call %25, %22
+    %l_a_i:Outer = let %24
+    %27:array<Inner, 4> = call %28, %10
+    %l_a_i_a:array<Inner, 4> = let %27
+    %30:u32 = add %10, %13
+    %31:u32 = add %30, %16
+    %32:u32 = add %31, %23
+    %33:Inner = call %34, %32
+    %l_a_i_a_i:Inner = let %33
+    %36:u32 = add %10, %13
+    %37:u32 = add %36, %16
+    %38:u32 = add %37, %23
+    %39:mat4x4<f32> = call %40, %38
+    %l_a_i_a_i_m:mat4x4<f32> = let %39
+    %42:u32 = add %10, %13
+    %43:u32 = add %42, %16
+    %44:u32 = add %43, %23
+    %45:u32 = div %44, 16u
+    %46:ptr<uniform, vec4<u32>, read> = access %a, %45
+    %47:vec4<u32> = load %46
+    %48:vec4<f32> = bitcast %47
+    %l_a_i_a_i_m_i:vec4<f32> = let %48
+    %50:i32 = call %i
+    %23:u32 = mul %50, 4u
+    %51:u32 = add %10, %13
+    %52:u32 = add %51, %16
+    %53:u32 = add %52, %23
+    %54:u32 = div %53, 16u
+    %55:ptr<uniform, vec4<u32>, read> = access %a, %54
+    %56:u32 = mod %53, 16u
+    %57:u32 = div %56, 4u
+    %58:u32 = load_vector_element %55, %57
+    %59:f32 = bitcast %58
+    %l_a_i_a_i_m_i_i:f32 = let %59
+    ret
+  }
+}
+%28 = func(%start_byte_offset:u32):array<Inner, 4> {
+  $B4: {
+    %a_1:ptr<function, array<Inner, 4>, read_write> = var, array<Inner, 4>(Inner(mat4x4<f32>(vec4<f32>(0.0f))))  # %a_1: 'a'
+    loop [i: $B5, b: $B6, c: $B7] {  # loop_1
+      $B5: {  # initializer
+        next_iteration 0u  # -> $B6
+      }
+      $B6 (%idx:u32): {  # body
+        %64:bool = gte %idx, 4u
+        if %64 [t: $B8] {  # if_1
+          $B8: {  # true
+            exit_loop  # loop_1
+          }
+        }
+        %65:u32 = mul %idx, 64u
+        %66:u32 = add %start_byte_offset, %65
+        %67:ptr<function, Inner, read_write> = access %a_1, %idx
+        %68:Inner = call %34, %66
+        store %67, %68
+        continue  # -> $B7
+      }
+      $B7: {  # continuing
+        %69:u32 = add %idx, 1u
+        next_iteration %69  # -> $B6
+      }
+    }
+    %70:array<Inner, 4> = load %a_1
+    ret %70
+  }
+}
+%34 = func(%start_byte_offset_1:u32):Inner {  # %start_byte_offset_1: 'start_byte_offset'
+  $B9: {
+    %72:mat4x4<f32> = call %40, %start_byte_offset_1
+    %73:Inner = construct %72
+    ret %73
+  }
+}
+%40 = func(%start_byte_offset_2:u32):mat4x4<f32> {  # %start_byte_offset_2: 'start_byte_offset'
+  $B10: {
+    %75:u32 = div %start_byte_offset_2, 16u
+    %76:ptr<uniform, vec4<u32>, read> = access %a, %75
+    %77:vec4<u32> = load %76
+    %78:vec4<f32> = bitcast %77
+    %79:u32 = add 16u, %start_byte_offset_2
+    %80:u32 = div %79, 16u
+    %81:ptr<uniform, vec4<u32>, read> = access %a, %80
+    %82:vec4<u32> = load %81
+    %83:vec4<f32> = bitcast %82
+    %84:u32 = add 32u, %start_byte_offset_2
+    %85:u32 = div %84, 16u
+    %86:ptr<uniform, vec4<u32>, read> = access %a, %85
+    %87:vec4<u32> = load %86
+    %88:vec4<f32> = bitcast %87
+    %89:u32 = add 48u, %start_byte_offset_2
+    %90:u32 = div %89, 16u
+    %91:ptr<uniform, vec4<u32>, read> = access %a, %90
+    %92:vec4<u32> = load %91
+    %93:vec4<f32> = bitcast %92
+    %94:mat4x4<f32> = construct %78, %83, %88, %93
+    ret %94
+  }
+}
+%25 = func(%start_byte_offset_3:u32):Outer {  # %start_byte_offset_3: 'start_byte_offset'
+  $B11: {
+    %96:array<Inner, 4> = call %28, %start_byte_offset_3
+    %97:Outer = construct %96
+    ret %97
+  }
+}
+%18 = func(%start_byte_offset_4:u32):array<Outer, 4> {  # %start_byte_offset_4: 'start_byte_offset'
+  $B12: {
+    %a_2:ptr<function, array<Outer, 4>, read_write> = var, array<Outer, 4>(Outer(array<Inner, 4>(Inner(mat4x4<f32>(vec4<f32>(0.0f))))))  # %a_2: 'a'
+    loop [i: $B13, b: $B14, c: $B15] {  # loop_2
+      $B13: {  # initializer
+        next_iteration 0u  # -> $B14
+      }
+      $B14 (%idx_1:u32): {  # body
+        %101:bool = gte %idx_1, 4u
+        if %101 [t: $B16] {  # if_2
+          $B16: {  # true
+            exit_loop  # loop_2
+          }
+        }
+        %102:u32 = mul %idx_1, 256u
+        %103:u32 = add %start_byte_offset_4, %102
+        %104:ptr<function, Outer, read_write> = access %a_2, %idx_1
+        %105:Outer = call %25, %103
+        store %104, %105
+        continue  # -> $B15
+      }
+      $B15: {  # continuing
+        %106:u32 = add %idx_1, 1u
+        next_iteration %106  # -> $B14
+      }
+    }
+    %107:array<Outer, 4> = load %a_2
+    ret %107
+  }
+}
+
diff --git a/test/tint/buffer/uniform/std140/struct/mat4x4_f32/dynamic_index_via_ptr.wgsl.expected.ir.fxc.hlsl b/test/tint/buffer/uniform/std140/struct/mat4x4_f32/dynamic_index_via_ptr.wgsl.expected.ir.fxc.hlsl
index 3f437dc..e0de4b06 100644
--- a/test/tint/buffer/uniform/std140/struct/mat4x4_f32/dynamic_index_via_ptr.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/buffer/uniform/std140/struct/mat4x4_f32/dynamic_index_via_ptr.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,279 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Access
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+
+struct Inner {
+  @size(64)
+  m : mat4x4<f32>,
+}
+
+struct Outer {
+  a : array<Inner, 4>,
+}
+
+@group(0) @binding(0) var<uniform> a : array<Outer, 4>;
+
+var<private> counter = 0;
+
+fn i() -> i32 {
+  counter++;
+  return counter;
+}
+
+@compute @workgroup_size(1)
+fn f() {
+  let p_a = &(a);
+  let p_a_i = &((*(p_a))[i()]);
+  let p_a_i_a = &((*(p_a_i)).a);
+  let p_a_i_a_i = &((*(p_a_i_a))[i()]);
+  let p_a_i_a_i_m = &((*(p_a_i_a_i)).m);
+  let p_a_i_a_i_m_i = &((*(p_a_i_a_i_m))[i()]);
+  let l_a : array<Outer, 4> = *(p_a);
+  let l_a_i : Outer = *(p_a_i);
+  let l_a_i_a : array<Inner, 4> = *(p_a_i_a);
+  let l_a_i_a_i : Inner = *(p_a_i_a_i);
+  let l_a_i_a_i_m : mat4x4<f32> = *(p_a_i_a_i_m);
+  let l_a_i_a_i_m_i : vec4<f32> = *(p_a_i_a_i_m_i);
+  let l_a_i_a_i_m_i_i : f32 = (*(p_a_i_a_i_m_i))[i()];
+}
+
+Failed to generate: :38:24 error: binary: %23 is not in scope
+    %22:u32 = add %21, %23
+                       ^^^
+
+:24:3 note: in block
+  $B3: {
+  ^^^
+
+:62:5 note: %23 declared here
+    %23:u32 = mul %50, 4u
+    ^^^^^^^
+
+:43:24 error: binary: %23 is not in scope
+    %29:u32 = add %28, %23
+                       ^^^
+
+:24:3 note: in block
+  $B3: {
+  ^^^
+
+:62:5 note: %23 declared here
+    %23:u32 = mul %50, 4u
+    ^^^^^^^
+
+:51:24 error: binary: %23 is not in scope
+    %39:u32 = add %38, %23
+                       ^^^
+
+:24:3 note: in block
+  $B3: {
+  ^^^
+
+:62:5 note: %23 declared here
+    %23:u32 = mul %50, 4u
+    ^^^^^^^
+
+:62:5 error: binary: no matching overload for 'operator * (i32, u32)'
+
+9 candidate operators:
+ • 'operator * (T  ✓ , T  ✗ ) -> T' where:
+      ✓  'T' is 'f32', 'i32', 'u32' or 'f16'
+ • 'operator * (vecN<T>  ✗ , T  ✓ ) -> vecN<T>' where:
+      ✓  'T' is 'f32', 'i32', 'u32' or 'f16'
+ • 'operator * (T  ✓ , vecN<T>  ✗ ) -> vecN<T>' where:
+      ✓  'T' is 'f32', 'i32', 'u32' or 'f16'
+ • 'operator * (T  ✗ , matNxM<T>  ✗ ) -> matNxM<T>' where:
+      ✗  'T' is 'f32' or 'f16'
+ • 'operator * (matNxM<T>  ✗ , T  ✗ ) -> matNxM<T>' where:
+      ✗  'T' is 'f32' or 'f16'
+ • 'operator * (vecN<T>  ✗ , vecN<T>  ✗ ) -> vecN<T>' where:
+      ✗  'T' is 'f32', 'i32', 'u32' or 'f16'
+ • 'operator * (matCxR<T>  ✗ , vecC<T>  ✗ ) -> vecR<T>' where:
+      ✗  'T' is 'f32' or 'f16'
+ • 'operator * (vecR<T>  ✗ , matCxR<T>  ✗ ) -> vecC<T>' where:
+      ✗  'T' is 'f32' or 'f16'
+ • 'operator * (matKxR<T>  ✗ , matCxK<T>  ✗ ) -> matCxR<T>' where:
+      ✗  'T' is 'f32' or 'f16'
+
+    %23:u32 = mul %50, 4u
+    ^^^^^^^^^^^^^^^^^^^^^
+
+:24:3 note: in block
+  $B3: {
+  ^^^
+
+note: # Disassembly
+Inner = struct @align(16) {
+  m:mat4x4<f32> @offset(0)
+}
+
+Outer = struct @align(16) {
+  a:array<Inner, 4> @offset(0)
+}
+
+$B1: {  # root
+  %a:ptr<uniform, array<vec4<u32>, 64>, read> = var @binding_point(0, 0)
+  %counter:ptr<private, i32, read_write> = var, 0i
+}
+
+%i = func():i32 {
+  $B2: {
+    %4:i32 = load %counter
+    %5:i32 = add %4, 1i
+    store %counter, %5
+    %6:i32 = load %counter
+    ret %6
+  }
+}
+%f = @compute @workgroup_size(1, 1, 1) func():void {
+  $B3: {
+    %8:i32 = call %i
+    %9:u32 = convert %8
+    %10:u32 = mul 256u, %9
+    %11:i32 = call %i
+    %12:u32 = convert %11
+    %13:u32 = mul 64u, %12
+    %14:i32 = call %i
+    %15:u32 = convert %14
+    %16:u32 = mul 16u, %15
+    %17:array<Outer, 4> = call %18, 0u
+    %l_a:array<Outer, 4> = let %17
+    %20:u32 = add %10, %13
+    %21:u32 = add %20, %16
+    %22:u32 = add %21, %23
+    %24:Outer = call %25, %22
+    %l_a_i:Outer = let %24
+    %27:u32 = add %10, %13
+    %28:u32 = add %27, %16
+    %29:u32 = add %28, %23
+    %30:array<Inner, 4> = call %31, %29
+    %l_a_i_a:array<Inner, 4> = let %30
+    %33:u32 = add %10, %13
+    %34:Inner = call %35, %33
+    %l_a_i_a_i:Inner = let %34
+    %37:u32 = add %10, %13
+    %38:u32 = add %37, %16
+    %39:u32 = add %38, %23
+    %40:mat4x4<f32> = call %41, %39
+    %l_a_i_a_i_m:mat4x4<f32> = let %40
+    %43:u32 = add %10, %13
+    %44:u32 = add %43, %16
+    %45:u32 = div %44, 16u
+    %46:ptr<uniform, vec4<u32>, read> = access %a, %45
+    %47:vec4<u32> = load %46
+    %48:vec4<f32> = bitcast %47
+    %l_a_i_a_i_m_i:vec4<f32> = let %48
+    %50:i32 = call %i
+    %23:u32 = mul %50, 4u
+    %51:u32 = add %10, %13
+    %52:u32 = add %51, %16
+    %53:u32 = add %52, %23
+    %54:u32 = div %53, 16u
+    %55:ptr<uniform, vec4<u32>, read> = access %a, %54
+    %56:u32 = mod %53, 16u
+    %57:u32 = div %56, 4u
+    %58:u32 = load_vector_element %55, %57
+    %59:f32 = bitcast %58
+    %l_a_i_a_i_m_i_i:f32 = let %59
+    ret
+  }
+}
+%35 = func(%start_byte_offset:u32):Inner {
+  $B4: {
+    %62:mat4x4<f32> = call %41, %start_byte_offset
+    %63:Inner = construct %62
+    ret %63
+  }
+}
+%41 = func(%start_byte_offset_1:u32):mat4x4<f32> {  # %start_byte_offset_1: 'start_byte_offset'
+  $B5: {
+    %65:u32 = div %start_byte_offset_1, 16u
+    %66:ptr<uniform, vec4<u32>, read> = access %a, %65
+    %67:vec4<u32> = load %66
+    %68:vec4<f32> = bitcast %67
+    %69:u32 = add 16u, %start_byte_offset_1
+    %70:u32 = div %69, 16u
+    %71:ptr<uniform, vec4<u32>, read> = access %a, %70
+    %72:vec4<u32> = load %71
+    %73:vec4<f32> = bitcast %72
+    %74:u32 = add 32u, %start_byte_offset_1
+    %75:u32 = div %74, 16u
+    %76:ptr<uniform, vec4<u32>, read> = access %a, %75
+    %77:vec4<u32> = load %76
+    %78:vec4<f32> = bitcast %77
+    %79:u32 = add 48u, %start_byte_offset_1
+    %80:u32 = div %79, 16u
+    %81:ptr<uniform, vec4<u32>, read> = access %a, %80
+    %82:vec4<u32> = load %81
+    %83:vec4<f32> = bitcast %82
+    %84:mat4x4<f32> = construct %68, %73, %78, %83
+    ret %84
+  }
+}
+%31 = func(%start_byte_offset_2:u32):array<Inner, 4> {  # %start_byte_offset_2: 'start_byte_offset'
+  $B6: {
+    %a_1:ptr<function, array<Inner, 4>, read_write> = var, array<Inner, 4>(Inner(mat4x4<f32>(vec4<f32>(0.0f))))  # %a_1: 'a'
+    loop [i: $B7, b: $B8, c: $B9] {  # loop_1
+      $B7: {  # initializer
+        next_iteration 0u  # -> $B8
+      }
+      $B8 (%idx:u32): {  # body
+        %88:bool = gte %idx, 4u
+        if %88 [t: $B10] {  # if_1
+          $B10: {  # true
+            exit_loop  # loop_1
+          }
+        }
+        %89:u32 = mul %idx, 64u
+        %90:u32 = add %start_byte_offset_2, %89
+        %91:ptr<function, Inner, read_write> = access %a_1, %idx
+        %92:Inner = call %35, %90
+        store %91, %92
+        continue  # -> $B9
+      }
+      $B9: {  # continuing
+        %93:u32 = add %idx, 1u
+        next_iteration %93  # -> $B8
+      }
+    }
+    %94:array<Inner, 4> = load %a_1
+    ret %94
+  }
+}
+%25 = func(%start_byte_offset_3:u32):Outer {  # %start_byte_offset_3: 'start_byte_offset'
+  $B11: {
+    %96:array<Inner, 4> = call %31, %start_byte_offset_3
+    %97:Outer = construct %96
+    ret %97
+  }
+}
+%18 = func(%start_byte_offset_4:u32):array<Outer, 4> {  # %start_byte_offset_4: 'start_byte_offset'
+  $B12: {
+    %a_2:ptr<function, array<Outer, 4>, read_write> = var, array<Outer, 4>(Outer(array<Inner, 4>(Inner(mat4x4<f32>(vec4<f32>(0.0f))))))  # %a_2: 'a'
+    loop [i: $B13, b: $B14, c: $B15] {  # loop_2
+      $B13: {  # initializer
+        next_iteration 0u  # -> $B14
+      }
+      $B14 (%idx_1:u32): {  # body
+        %101:bool = gte %idx_1, 4u
+        if %101 [t: $B16] {  # if_2
+          $B16: {  # true
+            exit_loop  # loop_2
+          }
+        }
+        %102:u32 = mul %idx_1, 256u
+        %103:u32 = add %start_byte_offset_4, %102
+        %104:ptr<function, Outer, read_write> = access %a_2, %idx_1
+        %105:Outer = call %25, %103
+        store %104, %105
+        continue  # -> $B15
+      }
+      $B15: {  # continuing
+        %106:u32 = add %idx_1, 1u
+        next_iteration %106  # -> $B14
+      }
+    }
+    %107:array<Outer, 4> = load %a_2
+    ret %107
+  }
+}
+
diff --git a/test/tint/buffer/uniform/std140/struct/mat4x4_f32/static_index_via_ptr.wgsl.expected.ir.dxc.hlsl b/test/tint/buffer/uniform/std140/struct/mat4x4_f32/static_index_via_ptr.wgsl.expected.ir.dxc.hlsl
index 3f437dc..08d4c5d 100644
--- a/test/tint/buffer/uniform/std140/struct/mat4x4_f32/static_index_via_ptr.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/buffer/uniform/std140/struct/mat4x4_f32/static_index_via_ptr.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,87 @@
-SKIP: FAILED
+struct Inner {
+  float4x4 m;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Access
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct Outer {
+  Inner a[4];
+};
+
+
+cbuffer cbuffer_a : register(b0) {
+  uint4 a[64];
+};
+float4x4 v(uint start_byte_offset) {
+  float4 v_1 = asfloat(a[(start_byte_offset / 16u)]);
+  float4 v_2 = asfloat(a[((16u + start_byte_offset) / 16u)]);
+  float4 v_3 = asfloat(a[((32u + start_byte_offset) / 16u)]);
+  return float4x4(v_1, v_2, v_3, asfloat(a[((48u + start_byte_offset) / 16u)]));
+}
+
+Inner v_4(uint start_byte_offset) {
+  Inner v_5 = {v(start_byte_offset)};
+  return v_5;
+}
+
+typedef Inner ary_ret[4];
+ary_ret v_6(uint start_byte_offset) {
+  Inner a[4] = (Inner[4])0;
+  {
+    uint v_7 = 0u;
+    v_7 = 0u;
+    while(true) {
+      uint v_8 = v_7;
+      if ((v_8 >= 4u)) {
+        break;
+      }
+      Inner v_9 = v_4((start_byte_offset + (v_8 * 64u)));
+      a[v_8] = v_9;
+      {
+        v_7 = (v_8 + 1u);
+      }
+      continue;
+    }
+  }
+  Inner v_10[4] = a;
+  return v_10;
+}
+
+Outer v_11(uint start_byte_offset) {
+  Inner v_12[4] = v_6(start_byte_offset);
+  Outer v_13 = {v_12};
+  return v_13;
+}
+
+typedef Outer ary_ret_1[4];
+ary_ret_1 v_14(uint start_byte_offset) {
+  Outer a[4] = (Outer[4])0;
+  {
+    uint v_15 = 0u;
+    v_15 = 0u;
+    while(true) {
+      uint v_16 = v_15;
+      if ((v_16 >= 4u)) {
+        break;
+      }
+      Outer v_17 = v_11((start_byte_offset + (v_16 * 256u)));
+      a[v_16] = v_17;
+      {
+        v_15 = (v_16 + 1u);
+      }
+      continue;
+    }
+  }
+  Outer v_18[4] = a;
+  return v_18;
+}
+
+[numthreads(1, 1, 1)]
+void f() {
+  Outer l_a[4] = v_14(0u);
+  Outer l_a_3 = v_11(768u);
+  Inner l_a_3_a[4] = v_6(768u);
+  Inner l_a_3_a_2 = v_4(896u);
+  float4x4 l_a_3_a_2_m = v(896u);
+  float4 l_a_3_a_2_m_1 = asfloat(a[57u]);
+  float l_a_3_a_2_m_1_0 = asfloat(a[57u].x);
+}
+
diff --git a/test/tint/buffer/uniform/std140/struct/mat4x4_f32/static_index_via_ptr.wgsl.expected.ir.fxc.hlsl b/test/tint/buffer/uniform/std140/struct/mat4x4_f32/static_index_via_ptr.wgsl.expected.ir.fxc.hlsl
index 3f437dc..08d4c5d 100644
--- a/test/tint/buffer/uniform/std140/struct/mat4x4_f32/static_index_via_ptr.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/buffer/uniform/std140/struct/mat4x4_f32/static_index_via_ptr.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,87 @@
-SKIP: FAILED
+struct Inner {
+  float4x4 m;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Access
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct Outer {
+  Inner a[4];
+};
+
+
+cbuffer cbuffer_a : register(b0) {
+  uint4 a[64];
+};
+float4x4 v(uint start_byte_offset) {
+  float4 v_1 = asfloat(a[(start_byte_offset / 16u)]);
+  float4 v_2 = asfloat(a[((16u + start_byte_offset) / 16u)]);
+  float4 v_3 = asfloat(a[((32u + start_byte_offset) / 16u)]);
+  return float4x4(v_1, v_2, v_3, asfloat(a[((48u + start_byte_offset) / 16u)]));
+}
+
+Inner v_4(uint start_byte_offset) {
+  Inner v_5 = {v(start_byte_offset)};
+  return v_5;
+}
+
+typedef Inner ary_ret[4];
+ary_ret v_6(uint start_byte_offset) {
+  Inner a[4] = (Inner[4])0;
+  {
+    uint v_7 = 0u;
+    v_7 = 0u;
+    while(true) {
+      uint v_8 = v_7;
+      if ((v_8 >= 4u)) {
+        break;
+      }
+      Inner v_9 = v_4((start_byte_offset + (v_8 * 64u)));
+      a[v_8] = v_9;
+      {
+        v_7 = (v_8 + 1u);
+      }
+      continue;
+    }
+  }
+  Inner v_10[4] = a;
+  return v_10;
+}
+
+Outer v_11(uint start_byte_offset) {
+  Inner v_12[4] = v_6(start_byte_offset);
+  Outer v_13 = {v_12};
+  return v_13;
+}
+
+typedef Outer ary_ret_1[4];
+ary_ret_1 v_14(uint start_byte_offset) {
+  Outer a[4] = (Outer[4])0;
+  {
+    uint v_15 = 0u;
+    v_15 = 0u;
+    while(true) {
+      uint v_16 = v_15;
+      if ((v_16 >= 4u)) {
+        break;
+      }
+      Outer v_17 = v_11((start_byte_offset + (v_16 * 256u)));
+      a[v_16] = v_17;
+      {
+        v_15 = (v_16 + 1u);
+      }
+      continue;
+    }
+  }
+  Outer v_18[4] = a;
+  return v_18;
+}
+
+[numthreads(1, 1, 1)]
+void f() {
+  Outer l_a[4] = v_14(0u);
+  Outer l_a_3 = v_11(768u);
+  Inner l_a_3_a[4] = v_6(768u);
+  Inner l_a_3_a_2 = v_4(896u);
+  float4x4 l_a_3_a_2_m = v(896u);
+  float4 l_a_3_a_2_m_1 = asfloat(a[57u]);
+  float l_a_3_a_2_m_1_0 = asfloat(a[57u].x);
+}
+
diff --git a/test/tint/buffer/uniform/std140/struct/mat4x4_f32/to_builtin.wgsl.expected.ir.dxc.hlsl b/test/tint/buffer/uniform/std140/struct/mat4x4_f32/to_builtin.wgsl.expected.ir.dxc.hlsl
index 3f437dc..07ca238 100644
--- a/test/tint/buffer/uniform/std140/struct/mat4x4_f32/to_builtin.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/buffer/uniform/std140/struct/mat4x4_f32/to_builtin.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,18 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Access
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+cbuffer cbuffer_u : register(b0) {
+  uint4 u[48];
+};
+float4x4 v(uint start_byte_offset) {
+  float4 v_1 = asfloat(u[(start_byte_offset / 16u)]);
+  float4 v_2 = asfloat(u[((16u + start_byte_offset) / 16u)]);
+  float4 v_3 = asfloat(u[((32u + start_byte_offset) / 16u)]);
+  return float4x4(v_1, v_2, v_3, asfloat(u[((48u + start_byte_offset) / 16u)]));
+}
+
+[numthreads(1, 1, 1)]
+void f() {
+  float4x4 t = transpose(v(400u));
+  float l = length(asfloat(u[2u]).ywxz);
+  float a = abs(asfloat(u[2u]).ywxz[0u]);
+}
+
diff --git a/test/tint/buffer/uniform/std140/struct/mat4x4_f32/to_builtin.wgsl.expected.ir.fxc.hlsl b/test/tint/buffer/uniform/std140/struct/mat4x4_f32/to_builtin.wgsl.expected.ir.fxc.hlsl
index 3f437dc..07ca238 100644
--- a/test/tint/buffer/uniform/std140/struct/mat4x4_f32/to_builtin.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/buffer/uniform/std140/struct/mat4x4_f32/to_builtin.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,18 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Access
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+cbuffer cbuffer_u : register(b0) {
+  uint4 u[48];
+};
+float4x4 v(uint start_byte_offset) {
+  float4 v_1 = asfloat(u[(start_byte_offset / 16u)]);
+  float4 v_2 = asfloat(u[((16u + start_byte_offset) / 16u)]);
+  float4 v_3 = asfloat(u[((32u + start_byte_offset) / 16u)]);
+  return float4x4(v_1, v_2, v_3, asfloat(u[((48u + start_byte_offset) / 16u)]));
+}
+
+[numthreads(1, 1, 1)]
+void f() {
+  float4x4 t = transpose(v(400u));
+  float l = length(asfloat(u[2u]).ywxz);
+  float a = abs(asfloat(u[2u]).ywxz[0u]);
+}
+
diff --git a/test/tint/buffer/uniform/std140/struct/mat4x4_f32/to_fn.wgsl.expected.ir.dxc.hlsl b/test/tint/buffer/uniform/std140/struct/mat4x4_f32/to_fn.wgsl.expected.ir.dxc.hlsl
index 3f437dc..5013b6a 100644
--- a/test/tint/buffer/uniform/std140/struct/mat4x4_f32/to_fn.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/buffer/uniform/std140/struct/mat4x4_f32/to_fn.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,73 @@
-SKIP: FAILED
+struct S {
+  int before;
+  float4x4 m;
+  int after;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Access
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+
+cbuffer cbuffer_u : register(b0) {
+  uint4 u[48];
+};
+void a(S a_1[4]) {
+}
+
+void b(S s) {
+}
+
+void c(float4x4 m) {
+}
+
+void d(float4 v) {
+}
+
+void e(float f) {
+}
+
+float4x4 v_1(uint start_byte_offset) {
+  float4 v_2 = asfloat(u[(start_byte_offset / 16u)]);
+  float4 v_3 = asfloat(u[((16u + start_byte_offset) / 16u)]);
+  float4 v_4 = asfloat(u[((32u + start_byte_offset) / 16u)]);
+  return float4x4(v_2, v_3, v_4, asfloat(u[((48u + start_byte_offset) / 16u)]));
+}
+
+S v_5(uint start_byte_offset) {
+  int v_6 = asint(u[(start_byte_offset / 16u)][((start_byte_offset % 16u) / 4u)]);
+  float4x4 v_7 = v_1((16u + start_byte_offset));
+  S v_8 = {v_6, v_7, asint(u[((128u + start_byte_offset) / 16u)][(((128u + start_byte_offset) % 16u) / 4u)])};
+  return v_8;
+}
+
+typedef S ary_ret[4];
+ary_ret v_9(uint start_byte_offset) {
+  S a[4] = (S[4])0;
+  {
+    uint v_10 = 0u;
+    v_10 = 0u;
+    while(true) {
+      uint v_11 = v_10;
+      if ((v_11 >= 4u)) {
+        break;
+      }
+      S v_12 = v_5((start_byte_offset + (v_11 * 192u)));
+      a[v_11] = v_12;
+      {
+        v_10 = (v_11 + 1u);
+      }
+      continue;
+    }
+  }
+  S v_13[4] = a;
+  return v_13;
+}
+
+[numthreads(1, 1, 1)]
+void f() {
+  S v_14[4] = v_9(0u);
+  a(v_14);
+  S v_15 = v_5(384u);
+  b(v_15);
+  c(v_1(400u));
+  d(asfloat(u[2u]).ywxz);
+  e(asfloat(u[2u]).ywxz[0u]);
+}
+
diff --git a/test/tint/buffer/uniform/std140/struct/mat4x4_f32/to_fn.wgsl.expected.ir.fxc.hlsl b/test/tint/buffer/uniform/std140/struct/mat4x4_f32/to_fn.wgsl.expected.ir.fxc.hlsl
index 3f437dc..5013b6a 100644
--- a/test/tint/buffer/uniform/std140/struct/mat4x4_f32/to_fn.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/buffer/uniform/std140/struct/mat4x4_f32/to_fn.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,73 @@
-SKIP: FAILED
+struct S {
+  int before;
+  float4x4 m;
+  int after;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Access
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+
+cbuffer cbuffer_u : register(b0) {
+  uint4 u[48];
+};
+void a(S a_1[4]) {
+}
+
+void b(S s) {
+}
+
+void c(float4x4 m) {
+}
+
+void d(float4 v) {
+}
+
+void e(float f) {
+}
+
+float4x4 v_1(uint start_byte_offset) {
+  float4 v_2 = asfloat(u[(start_byte_offset / 16u)]);
+  float4 v_3 = asfloat(u[((16u + start_byte_offset) / 16u)]);
+  float4 v_4 = asfloat(u[((32u + start_byte_offset) / 16u)]);
+  return float4x4(v_2, v_3, v_4, asfloat(u[((48u + start_byte_offset) / 16u)]));
+}
+
+S v_5(uint start_byte_offset) {
+  int v_6 = asint(u[(start_byte_offset / 16u)][((start_byte_offset % 16u) / 4u)]);
+  float4x4 v_7 = v_1((16u + start_byte_offset));
+  S v_8 = {v_6, v_7, asint(u[((128u + start_byte_offset) / 16u)][(((128u + start_byte_offset) % 16u) / 4u)])};
+  return v_8;
+}
+
+typedef S ary_ret[4];
+ary_ret v_9(uint start_byte_offset) {
+  S a[4] = (S[4])0;
+  {
+    uint v_10 = 0u;
+    v_10 = 0u;
+    while(true) {
+      uint v_11 = v_10;
+      if ((v_11 >= 4u)) {
+        break;
+      }
+      S v_12 = v_5((start_byte_offset + (v_11 * 192u)));
+      a[v_11] = v_12;
+      {
+        v_10 = (v_11 + 1u);
+      }
+      continue;
+    }
+  }
+  S v_13[4] = a;
+  return v_13;
+}
+
+[numthreads(1, 1, 1)]
+void f() {
+  S v_14[4] = v_9(0u);
+  a(v_14);
+  S v_15 = v_5(384u);
+  b(v_15);
+  c(v_1(400u));
+  d(asfloat(u[2u]).ywxz);
+  e(asfloat(u[2u]).ywxz[0u]);
+}
+
diff --git a/test/tint/buffer/uniform/std140/struct/mat4x4_f32/to_private.wgsl.expected.ir.dxc.hlsl b/test/tint/buffer/uniform/std140/struct/mat4x4_f32/to_private.wgsl.expected.ir.dxc.hlsl
index 3f437dc..d3a36b5 100644
--- a/test/tint/buffer/uniform/std140/struct/mat4x4_f32/to_private.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/buffer/uniform/std140/struct/mat4x4_f32/to_private.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,58 @@
-SKIP: FAILED
+struct S {
+  int before;
+  float4x4 m;
+  int after;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Access
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+
+cbuffer cbuffer_u : register(b0) {
+  uint4 u[48];
+};
+static S p[4] = (S[4])0;
+float4x4 v(uint start_byte_offset) {
+  float4 v_1 = asfloat(u[(start_byte_offset / 16u)]);
+  float4 v_2 = asfloat(u[((16u + start_byte_offset) / 16u)]);
+  float4 v_3 = asfloat(u[((32u + start_byte_offset) / 16u)]);
+  return float4x4(v_1, v_2, v_3, asfloat(u[((48u + start_byte_offset) / 16u)]));
+}
+
+S v_4(uint start_byte_offset) {
+  int v_5 = asint(u[(start_byte_offset / 16u)][((start_byte_offset % 16u) / 4u)]);
+  float4x4 v_6 = v((16u + start_byte_offset));
+  S v_7 = {v_5, v_6, asint(u[((128u + start_byte_offset) / 16u)][(((128u + start_byte_offset) % 16u) / 4u)])};
+  return v_7;
+}
+
+typedef S ary_ret[4];
+ary_ret v_8(uint start_byte_offset) {
+  S a[4] = (S[4])0;
+  {
+    uint v_9 = 0u;
+    v_9 = 0u;
+    while(true) {
+      uint v_10 = v_9;
+      if ((v_10 >= 4u)) {
+        break;
+      }
+      S v_11 = v_4((start_byte_offset + (v_10 * 192u)));
+      a[v_10] = v_11;
+      {
+        v_9 = (v_10 + 1u);
+      }
+      continue;
+    }
+  }
+  S v_12[4] = a;
+  return v_12;
+}
+
+[numthreads(1, 1, 1)]
+void f() {
+  S v_13[4] = v_8(0u);
+  p = v_13;
+  S v_14 = v_4(384u);
+  p[1] = v_14;
+  p[3].m = v(400u);
+  p[1].m[0] = asfloat(u[2u]).ywxz;
+}
+
diff --git a/test/tint/buffer/uniform/std140/struct/mat4x4_f32/to_private.wgsl.expected.ir.fxc.hlsl b/test/tint/buffer/uniform/std140/struct/mat4x4_f32/to_private.wgsl.expected.ir.fxc.hlsl
index 3f437dc..d3a36b5 100644
--- a/test/tint/buffer/uniform/std140/struct/mat4x4_f32/to_private.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/buffer/uniform/std140/struct/mat4x4_f32/to_private.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,58 @@
-SKIP: FAILED
+struct S {
+  int before;
+  float4x4 m;
+  int after;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Access
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+
+cbuffer cbuffer_u : register(b0) {
+  uint4 u[48];
+};
+static S p[4] = (S[4])0;
+float4x4 v(uint start_byte_offset) {
+  float4 v_1 = asfloat(u[(start_byte_offset / 16u)]);
+  float4 v_2 = asfloat(u[((16u + start_byte_offset) / 16u)]);
+  float4 v_3 = asfloat(u[((32u + start_byte_offset) / 16u)]);
+  return float4x4(v_1, v_2, v_3, asfloat(u[((48u + start_byte_offset) / 16u)]));
+}
+
+S v_4(uint start_byte_offset) {
+  int v_5 = asint(u[(start_byte_offset / 16u)][((start_byte_offset % 16u) / 4u)]);
+  float4x4 v_6 = v((16u + start_byte_offset));
+  S v_7 = {v_5, v_6, asint(u[((128u + start_byte_offset) / 16u)][(((128u + start_byte_offset) % 16u) / 4u)])};
+  return v_7;
+}
+
+typedef S ary_ret[4];
+ary_ret v_8(uint start_byte_offset) {
+  S a[4] = (S[4])0;
+  {
+    uint v_9 = 0u;
+    v_9 = 0u;
+    while(true) {
+      uint v_10 = v_9;
+      if ((v_10 >= 4u)) {
+        break;
+      }
+      S v_11 = v_4((start_byte_offset + (v_10 * 192u)));
+      a[v_10] = v_11;
+      {
+        v_9 = (v_10 + 1u);
+      }
+      continue;
+    }
+  }
+  S v_12[4] = a;
+  return v_12;
+}
+
+[numthreads(1, 1, 1)]
+void f() {
+  S v_13[4] = v_8(0u);
+  p = v_13;
+  S v_14 = v_4(384u);
+  p[1] = v_14;
+  p[3].m = v(400u);
+  p[1].m[0] = asfloat(u[2u]).ywxz;
+}
+
diff --git a/test/tint/buffer/uniform/std140/struct/mat4x4_f32/to_storage.wgsl.expected.ir.dxc.hlsl b/test/tint/buffer/uniform/std140/struct/mat4x4_f32/to_storage.wgsl.expected.ir.dxc.hlsl
index 3f437dc..8da18b2 100644
--- a/test/tint/buffer/uniform/std140/struct/mat4x4_f32/to_storage.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/buffer/uniform/std140/struct/mat4x4_f32/to_storage.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,90 @@
-SKIP: FAILED
+struct S {
+  int before;
+  float4x4 m;
+  int after;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Access
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+
+cbuffer cbuffer_u : register(b0) {
+  uint4 u[48];
+};
+RWByteAddressBuffer s : register(u1);
+void v(uint offset, float4x4 obj) {
+  s.Store4((offset + 0u), asuint(obj[0u]));
+  s.Store4((offset + 16u), asuint(obj[1u]));
+  s.Store4((offset + 32u), asuint(obj[2u]));
+  s.Store4((offset + 48u), asuint(obj[3u]));
+}
+
+float4x4 v_1(uint start_byte_offset) {
+  float4 v_2 = asfloat(u[(start_byte_offset / 16u)]);
+  float4 v_3 = asfloat(u[((16u + start_byte_offset) / 16u)]);
+  float4 v_4 = asfloat(u[((32u + start_byte_offset) / 16u)]);
+  return float4x4(v_2, v_3, v_4, asfloat(u[((48u + start_byte_offset) / 16u)]));
+}
+
+void v_5(uint offset, S obj) {
+  s.Store((offset + 0u), asuint(obj.before));
+  v((offset + 16u), obj.m);
+  s.Store((offset + 128u), asuint(obj.after));
+}
+
+S v_6(uint start_byte_offset) {
+  int v_7 = asint(u[(start_byte_offset / 16u)][((start_byte_offset % 16u) / 4u)]);
+  float4x4 v_8 = v_1((16u + start_byte_offset));
+  S v_9 = {v_7, v_8, asint(u[((128u + start_byte_offset) / 16u)][(((128u + start_byte_offset) % 16u) / 4u)])};
+  return v_9;
+}
+
+void v_10(uint offset, S obj[4]) {
+  {
+    uint v_11 = 0u;
+    v_11 = 0u;
+    while(true) {
+      uint v_12 = v_11;
+      if ((v_12 >= 4u)) {
+        break;
+      }
+      S v_13 = obj[v_12];
+      v_5((offset + (v_12 * 192u)), v_13);
+      {
+        v_11 = (v_12 + 1u);
+      }
+      continue;
+    }
+  }
+}
+
+typedef S ary_ret[4];
+ary_ret v_14(uint start_byte_offset) {
+  S a[4] = (S[4])0;
+  {
+    uint v_15 = 0u;
+    v_15 = 0u;
+    while(true) {
+      uint v_16 = v_15;
+      if ((v_16 >= 4u)) {
+        break;
+      }
+      S v_17 = v_6((start_byte_offset + (v_16 * 192u)));
+      a[v_16] = v_17;
+      {
+        v_15 = (v_16 + 1u);
+      }
+      continue;
+    }
+  }
+  S v_18[4] = a;
+  return v_18;
+}
+
+[numthreads(1, 1, 1)]
+void f() {
+  S v_19[4] = v_14(0u);
+  v_10(0u, v_19);
+  S v_20 = v_6(384u);
+  v_5(192u, v_20);
+  v(592u, v_1(400u));
+  s.Store4(208u, asuint(asfloat(u[2u]).ywxz));
+}
+
diff --git a/test/tint/buffer/uniform/std140/struct/mat4x4_f32/to_storage.wgsl.expected.ir.fxc.hlsl b/test/tint/buffer/uniform/std140/struct/mat4x4_f32/to_storage.wgsl.expected.ir.fxc.hlsl
index 3f437dc..8da18b2 100644
--- a/test/tint/buffer/uniform/std140/struct/mat4x4_f32/to_storage.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/buffer/uniform/std140/struct/mat4x4_f32/to_storage.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,90 @@
-SKIP: FAILED
+struct S {
+  int before;
+  float4x4 m;
+  int after;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Access
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+
+cbuffer cbuffer_u : register(b0) {
+  uint4 u[48];
+};
+RWByteAddressBuffer s : register(u1);
+void v(uint offset, float4x4 obj) {
+  s.Store4((offset + 0u), asuint(obj[0u]));
+  s.Store4((offset + 16u), asuint(obj[1u]));
+  s.Store4((offset + 32u), asuint(obj[2u]));
+  s.Store4((offset + 48u), asuint(obj[3u]));
+}
+
+float4x4 v_1(uint start_byte_offset) {
+  float4 v_2 = asfloat(u[(start_byte_offset / 16u)]);
+  float4 v_3 = asfloat(u[((16u + start_byte_offset) / 16u)]);
+  float4 v_4 = asfloat(u[((32u + start_byte_offset) / 16u)]);
+  return float4x4(v_2, v_3, v_4, asfloat(u[((48u + start_byte_offset) / 16u)]));
+}
+
+void v_5(uint offset, S obj) {
+  s.Store((offset + 0u), asuint(obj.before));
+  v((offset + 16u), obj.m);
+  s.Store((offset + 128u), asuint(obj.after));
+}
+
+S v_6(uint start_byte_offset) {
+  int v_7 = asint(u[(start_byte_offset / 16u)][((start_byte_offset % 16u) / 4u)]);
+  float4x4 v_8 = v_1((16u + start_byte_offset));
+  S v_9 = {v_7, v_8, asint(u[((128u + start_byte_offset) / 16u)][(((128u + start_byte_offset) % 16u) / 4u)])};
+  return v_9;
+}
+
+void v_10(uint offset, S obj[4]) {
+  {
+    uint v_11 = 0u;
+    v_11 = 0u;
+    while(true) {
+      uint v_12 = v_11;
+      if ((v_12 >= 4u)) {
+        break;
+      }
+      S v_13 = obj[v_12];
+      v_5((offset + (v_12 * 192u)), v_13);
+      {
+        v_11 = (v_12 + 1u);
+      }
+      continue;
+    }
+  }
+}
+
+typedef S ary_ret[4];
+ary_ret v_14(uint start_byte_offset) {
+  S a[4] = (S[4])0;
+  {
+    uint v_15 = 0u;
+    v_15 = 0u;
+    while(true) {
+      uint v_16 = v_15;
+      if ((v_16 >= 4u)) {
+        break;
+      }
+      S v_17 = v_6((start_byte_offset + (v_16 * 192u)));
+      a[v_16] = v_17;
+      {
+        v_15 = (v_16 + 1u);
+      }
+      continue;
+    }
+  }
+  S v_18[4] = a;
+  return v_18;
+}
+
+[numthreads(1, 1, 1)]
+void f() {
+  S v_19[4] = v_14(0u);
+  v_10(0u, v_19);
+  S v_20 = v_6(384u);
+  v_5(192u, v_20);
+  v(592u, v_1(400u));
+  s.Store4(208u, asuint(asfloat(u[2u]).ywxz));
+}
+
diff --git a/test/tint/buffer/uniform/std140/struct/mat4x4_f32/to_workgroup.wgsl.expected.ir.dxc.hlsl b/test/tint/buffer/uniform/std140/struct/mat4x4_f32/to_workgroup.wgsl.expected.ir.dxc.hlsl
index 3f437dc..6ee0da0 100644
--- a/test/tint/buffer/uniform/std140/struct/mat4x4_f32/to_workgroup.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/buffer/uniform/std140/struct/mat4x4_f32/to_workgroup.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,83 @@
-SKIP: FAILED
+struct S {
+  int before;
+  float4x4 m;
+  int after;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Access
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct f_inputs {
+  uint tint_local_index : SV_GroupIndex;
+};
+
+
+cbuffer cbuffer_u : register(b0) {
+  uint4 u[48];
+};
+groupshared S w[4];
+float4x4 v(uint start_byte_offset) {
+  float4 v_1 = asfloat(u[(start_byte_offset / 16u)]);
+  float4 v_2 = asfloat(u[((16u + start_byte_offset) / 16u)]);
+  float4 v_3 = asfloat(u[((32u + start_byte_offset) / 16u)]);
+  return float4x4(v_1, v_2, v_3, asfloat(u[((48u + start_byte_offset) / 16u)]));
+}
+
+S v_4(uint start_byte_offset) {
+  int v_5 = asint(u[(start_byte_offset / 16u)][((start_byte_offset % 16u) / 4u)]);
+  float4x4 v_6 = v((16u + start_byte_offset));
+  S v_7 = {v_5, v_6, asint(u[((128u + start_byte_offset) / 16u)][(((128u + start_byte_offset) % 16u) / 4u)])};
+  return v_7;
+}
+
+typedef S ary_ret[4];
+ary_ret v_8(uint start_byte_offset) {
+  S a[4] = (S[4])0;
+  {
+    uint v_9 = 0u;
+    v_9 = 0u;
+    while(true) {
+      uint v_10 = v_9;
+      if ((v_10 >= 4u)) {
+        break;
+      }
+      S v_11 = v_4((start_byte_offset + (v_10 * 192u)));
+      a[v_10] = v_11;
+      {
+        v_9 = (v_10 + 1u);
+      }
+      continue;
+    }
+  }
+  S v_12[4] = a;
+  return v_12;
+}
+
+void f_inner(uint tint_local_index) {
+  {
+    uint v_13 = 0u;
+    v_13 = tint_local_index;
+    while(true) {
+      uint v_14 = v_13;
+      if ((v_14 >= 4u)) {
+        break;
+      }
+      S v_15 = (S)0;
+      w[v_14] = v_15;
+      {
+        v_13 = (v_14 + 1u);
+      }
+      continue;
+    }
+  }
+  GroupMemoryBarrierWithGroupSync();
+  S v_16[4] = v_8(0u);
+  w = v_16;
+  S v_17 = v_4(384u);
+  w[1] = v_17;
+  w[3].m = v(400u);
+  w[1].m[0] = asfloat(u[2u]).ywxz;
+}
+
+[numthreads(1, 1, 1)]
+void f(f_inputs inputs) {
+  f_inner(inputs.tint_local_index);
+}
+
diff --git a/test/tint/buffer/uniform/std140/struct/mat4x4_f32/to_workgroup.wgsl.expected.ir.fxc.hlsl b/test/tint/buffer/uniform/std140/struct/mat4x4_f32/to_workgroup.wgsl.expected.ir.fxc.hlsl
index 3f437dc..6ee0da0 100644
--- a/test/tint/buffer/uniform/std140/struct/mat4x4_f32/to_workgroup.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/buffer/uniform/std140/struct/mat4x4_f32/to_workgroup.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,83 @@
-SKIP: FAILED
+struct S {
+  int before;
+  float4x4 m;
+  int after;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Access
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct f_inputs {
+  uint tint_local_index : SV_GroupIndex;
+};
+
+
+cbuffer cbuffer_u : register(b0) {
+  uint4 u[48];
+};
+groupshared S w[4];
+float4x4 v(uint start_byte_offset) {
+  float4 v_1 = asfloat(u[(start_byte_offset / 16u)]);
+  float4 v_2 = asfloat(u[((16u + start_byte_offset) / 16u)]);
+  float4 v_3 = asfloat(u[((32u + start_byte_offset) / 16u)]);
+  return float4x4(v_1, v_2, v_3, asfloat(u[((48u + start_byte_offset) / 16u)]));
+}
+
+S v_4(uint start_byte_offset) {
+  int v_5 = asint(u[(start_byte_offset / 16u)][((start_byte_offset % 16u) / 4u)]);
+  float4x4 v_6 = v((16u + start_byte_offset));
+  S v_7 = {v_5, v_6, asint(u[((128u + start_byte_offset) / 16u)][(((128u + start_byte_offset) % 16u) / 4u)])};
+  return v_7;
+}
+
+typedef S ary_ret[4];
+ary_ret v_8(uint start_byte_offset) {
+  S a[4] = (S[4])0;
+  {
+    uint v_9 = 0u;
+    v_9 = 0u;
+    while(true) {
+      uint v_10 = v_9;
+      if ((v_10 >= 4u)) {
+        break;
+      }
+      S v_11 = v_4((start_byte_offset + (v_10 * 192u)));
+      a[v_10] = v_11;
+      {
+        v_9 = (v_10 + 1u);
+      }
+      continue;
+    }
+  }
+  S v_12[4] = a;
+  return v_12;
+}
+
+void f_inner(uint tint_local_index) {
+  {
+    uint v_13 = 0u;
+    v_13 = tint_local_index;
+    while(true) {
+      uint v_14 = v_13;
+      if ((v_14 >= 4u)) {
+        break;
+      }
+      S v_15 = (S)0;
+      w[v_14] = v_15;
+      {
+        v_13 = (v_14 + 1u);
+      }
+      continue;
+    }
+  }
+  GroupMemoryBarrierWithGroupSync();
+  S v_16[4] = v_8(0u);
+  w = v_16;
+  S v_17 = v_4(384u);
+  w[1] = v_17;
+  w[3].m = v(400u);
+  w[1].m[0] = asfloat(u[2u]).ywxz;
+}
+
+[numthreads(1, 1, 1)]
+void f(f_inputs inputs) {
+  f_inner(inputs.tint_local_index);
+}
+
diff --git a/test/tint/buffer/uniform/std140/unnested/mat2x2_f16/dynamic_index_via_ptr.wgsl.expected.ir.dxc.hlsl b/test/tint/buffer/uniform/std140/unnested/mat2x2_f16/dynamic_index_via_ptr.wgsl.expected.ir.dxc.hlsl
index 3f437dc..b6a5f78 100644
--- a/test/tint/buffer/uniform/std140/unnested/mat2x2_f16/dynamic_index_via_ptr.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/buffer/uniform/std140/unnested/mat2x2_f16/dynamic_index_via_ptr.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,33 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Access
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+cbuffer cbuffer_m : register(b0) {
+  uint4 m[1];
+};
+static int counter = 0;
+int i() {
+  counter = (counter + 1);
+  return counter;
+}
+
+vector<float16_t, 2> tint_bitcast_to_f16(uint src) {
+  uint v = src;
+  float t_low = f16tof32((v & 65535u));
+  float t_high = f16tof32(((v >> 16u) & 65535u));
+  float16_t v_1 = float16_t(t_low);
+  return vector<float16_t, 2>(v_1, float16_t(t_high));
+}
+
+matrix<float16_t, 2, 2> v_2(uint start_byte_offset) {
+  uint4 v_3 = m[(start_byte_offset / 16u)];
+  vector<float16_t, 2> v_4 = tint_bitcast_to_f16((((((start_byte_offset % 16u) / 4u) == 2u)) ? (v_3.z) : (v_3.x)));
+  uint4 v_5 = m[((4u + start_byte_offset) / 16u)];
+  return matrix<float16_t, 2, 2>(v_4, tint_bitcast_to_f16(((((((4u + start_byte_offset) % 16u) / 4u) == 2u)) ? (v_5.z) : (v_5.x))));
+}
+
+[numthreads(1, 1, 1)]
+void f() {
+  uint v_6 = (4u * uint(i()));
+  matrix<float16_t, 2, 2> l_m = v_2(0u);
+  uint4 v_7 = m[(v_6 / 16u)];
+  vector<float16_t, 2> l_m_i = tint_bitcast_to_f16((((((v_6 % 16u) / 4u) == 2u)) ? (v_7.z) : (v_7.x)));
+}
+
diff --git a/test/tint/buffer/uniform/std140/unnested/mat2x2_f16/dynamic_index_via_ptr.wgsl.expected.ir.fxc.hlsl b/test/tint/buffer/uniform/std140/unnested/mat2x2_f16/dynamic_index_via_ptr.wgsl.expected.ir.fxc.hlsl
index 3f437dc..c52b2ef 100644
--- a/test/tint/buffer/uniform/std140/unnested/mat2x2_f16/dynamic_index_via_ptr.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/buffer/uniform/std140/unnested/mat2x2_f16/dynamic_index_via_ptr.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,38 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Access
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+
+cbuffer cbuffer_m : register(b0) {
+  uint4 m[1];
+};
+static int counter = 0;
+int i() {
+  counter = (counter + 1);
+  return counter;
+}
+
+vector<float16_t, 2> tint_bitcast_to_f16(uint src) {
+  uint v = src;
+  float t_low = f16tof32((v & 65535u));
+  float t_high = f16tof32(((v >> 16u) & 65535u));
+  float16_t v_1 = float16_t(t_low);
+  return vector<float16_t, 2>(v_1, float16_t(t_high));
+}
+
+matrix<float16_t, 2, 2> v_2(uint start_byte_offset) {
+  uint4 v_3 = m[(start_byte_offset / 16u)];
+  vector<float16_t, 2> v_4 = tint_bitcast_to_f16((((((start_byte_offset % 16u) / 4u) == 2u)) ? (v_3.z) : (v_3.x)));
+  uint4 v_5 = m[((4u + start_byte_offset) / 16u)];
+  return matrix<float16_t, 2, 2>(v_4, tint_bitcast_to_f16(((((((4u + start_byte_offset) % 16u) / 4u) == 2u)) ? (v_5.z) : (v_5.x))));
+}
+
+[numthreads(1, 1, 1)]
+void f() {
+  uint v_6 = (4u * uint(i()));
+  matrix<float16_t, 2, 2> l_m = v_2(0u);
+  uint4 v_7 = m[(v_6 / 16u)];
+  vector<float16_t, 2> l_m_i = tint_bitcast_to_f16((((((v_6 % 16u) / 4u) == 2u)) ? (v_7.z) : (v_7.x)));
+}
+
+FXC validation failure:
+c:\src\dawn\Shader@0x000001FE34A31EB0(11,8-16): error X3000: syntax error: unexpected token 'float16_t'
+
diff --git a/test/tint/buffer/uniform/std140/unnested/mat2x2_f16/static_index_via_ptr.wgsl.expected.ir.dxc.hlsl b/test/tint/buffer/uniform/std140/unnested/mat2x2_f16/static_index_via_ptr.wgsl.expected.ir.dxc.hlsl
index 3f437dc..183a450 100644
--- a/test/tint/buffer/uniform/std140/unnested/mat2x2_f16/static_index_via_ptr.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/buffer/uniform/std140/unnested/mat2x2_f16/static_index_via_ptr.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,31 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Access
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+cbuffer cbuffer_m : register(b0) {
+  uint4 m[1];
+};
+static int counter = 0;
+int i() {
+  counter = (counter + 1);
+  return counter;
+}
+
+vector<float16_t, 2> tint_bitcast_to_f16(uint src) {
+  uint v = src;
+  float t_low = f16tof32((v & 65535u));
+  float t_high = f16tof32(((v >> 16u) & 65535u));
+  float16_t v_1 = float16_t(t_low);
+  return vector<float16_t, 2>(v_1, float16_t(t_high));
+}
+
+matrix<float16_t, 2, 2> v_2(uint start_byte_offset) {
+  uint4 v_3 = m[(start_byte_offset / 16u)];
+  vector<float16_t, 2> v_4 = tint_bitcast_to_f16((((((start_byte_offset % 16u) / 4u) == 2u)) ? (v_3.z) : (v_3.x)));
+  uint4 v_5 = m[((4u + start_byte_offset) / 16u)];
+  return matrix<float16_t, 2, 2>(v_4, tint_bitcast_to_f16(((((((4u + start_byte_offset) % 16u) / 4u) == 2u)) ? (v_5.z) : (v_5.x))));
+}
+
+[numthreads(1, 1, 1)]
+void f() {
+  matrix<float16_t, 2, 2> l_m = v_2(0u);
+  vector<float16_t, 2> l_m_1 = tint_bitcast_to_f16(m[0u].x);
+}
+
diff --git a/test/tint/buffer/uniform/std140/unnested/mat2x2_f16/static_index_via_ptr.wgsl.expected.ir.fxc.hlsl b/test/tint/buffer/uniform/std140/unnested/mat2x2_f16/static_index_via_ptr.wgsl.expected.ir.fxc.hlsl
index 3f437dc..94ff26f 100644
--- a/test/tint/buffer/uniform/std140/unnested/mat2x2_f16/static_index_via_ptr.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/buffer/uniform/std140/unnested/mat2x2_f16/static_index_via_ptr.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,36 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Access
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+
+cbuffer cbuffer_m : register(b0) {
+  uint4 m[1];
+};
+static int counter = 0;
+int i() {
+  counter = (counter + 1);
+  return counter;
+}
+
+vector<float16_t, 2> tint_bitcast_to_f16(uint src) {
+  uint v = src;
+  float t_low = f16tof32((v & 65535u));
+  float t_high = f16tof32(((v >> 16u) & 65535u));
+  float16_t v_1 = float16_t(t_low);
+  return vector<float16_t, 2>(v_1, float16_t(t_high));
+}
+
+matrix<float16_t, 2, 2> v_2(uint start_byte_offset) {
+  uint4 v_3 = m[(start_byte_offset / 16u)];
+  vector<float16_t, 2> v_4 = tint_bitcast_to_f16((((((start_byte_offset % 16u) / 4u) == 2u)) ? (v_3.z) : (v_3.x)));
+  uint4 v_5 = m[((4u + start_byte_offset) / 16u)];
+  return matrix<float16_t, 2, 2>(v_4, tint_bitcast_to_f16(((((((4u + start_byte_offset) % 16u) / 4u) == 2u)) ? (v_5.z) : (v_5.x))));
+}
+
+[numthreads(1, 1, 1)]
+void f() {
+  matrix<float16_t, 2, 2> l_m = v_2(0u);
+  vector<float16_t, 2> l_m_1 = tint_bitcast_to_f16(m[0u].x);
+}
+
+FXC validation failure:
+c:\src\dawn\Shader@0x000001A4CAEADA40(11,8-16): error X3000: syntax error: unexpected token 'float16_t'
+
diff --git a/test/tint/buffer/uniform/std140/unnested/mat2x2_f16/to_builtin.wgsl.expected.ir.dxc.hlsl b/test/tint/buffer/uniform/std140/unnested/mat2x2_f16/to_builtin.wgsl.expected.ir.dxc.hlsl
index 3f437dc..abe7f20 100644
--- a/test/tint/buffer/uniform/std140/unnested/mat2x2_f16/to_builtin.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/buffer/uniform/std140/unnested/mat2x2_f16/to_builtin.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,26 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Access
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+cbuffer cbuffer_u : register(b0) {
+  uint4 u[1];
+};
+vector<float16_t, 2> tint_bitcast_to_f16(uint src) {
+  uint v = src;
+  float t_low = f16tof32((v & 65535u));
+  float t_high = f16tof32(((v >> 16u) & 65535u));
+  float16_t v_1 = float16_t(t_low);
+  return vector<float16_t, 2>(v_1, float16_t(t_high));
+}
+
+matrix<float16_t, 2, 2> v_2(uint start_byte_offset) {
+  uint4 v_3 = u[(start_byte_offset / 16u)];
+  vector<float16_t, 2> v_4 = tint_bitcast_to_f16((((((start_byte_offset % 16u) / 4u) == 2u)) ? (v_3.z) : (v_3.x)));
+  uint4 v_5 = u[((4u + start_byte_offset) / 16u)];
+  return matrix<float16_t, 2, 2>(v_4, tint_bitcast_to_f16(((((((4u + start_byte_offset) % 16u) / 4u) == 2u)) ? (v_5.z) : (v_5.x))));
+}
+
+[numthreads(1, 1, 1)]
+void f() {
+  matrix<float16_t, 2, 2> t = transpose(v_2(0u));
+  float16_t l = length(tint_bitcast_to_f16(u[0u].x));
+  float16_t a = abs(tint_bitcast_to_f16(u[0u].x).yx[0u]);
+}
+
diff --git a/test/tint/buffer/uniform/std140/unnested/mat2x2_f16/to_builtin.wgsl.expected.ir.fxc.hlsl b/test/tint/buffer/uniform/std140/unnested/mat2x2_f16/to_builtin.wgsl.expected.ir.fxc.hlsl
index 3f437dc..162a0a9 100644
--- a/test/tint/buffer/uniform/std140/unnested/mat2x2_f16/to_builtin.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/buffer/uniform/std140/unnested/mat2x2_f16/to_builtin.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,31 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Access
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+
+cbuffer cbuffer_u : register(b0) {
+  uint4 u[1];
+};
+vector<float16_t, 2> tint_bitcast_to_f16(uint src) {
+  uint v = src;
+  float t_low = f16tof32((v & 65535u));
+  float t_high = f16tof32(((v >> 16u) & 65535u));
+  float16_t v_1 = float16_t(t_low);
+  return vector<float16_t, 2>(v_1, float16_t(t_high));
+}
+
+matrix<float16_t, 2, 2> v_2(uint start_byte_offset) {
+  uint4 v_3 = u[(start_byte_offset / 16u)];
+  vector<float16_t, 2> v_4 = tint_bitcast_to_f16((((((start_byte_offset % 16u) / 4u) == 2u)) ? (v_3.z) : (v_3.x)));
+  uint4 v_5 = u[((4u + start_byte_offset) / 16u)];
+  return matrix<float16_t, 2, 2>(v_4, tint_bitcast_to_f16(((((((4u + start_byte_offset) % 16u) / 4u) == 2u)) ? (v_5.z) : (v_5.x))));
+}
+
+[numthreads(1, 1, 1)]
+void f() {
+  matrix<float16_t, 2, 2> t = transpose(v_2(0u));
+  float16_t l = length(tint_bitcast_to_f16(u[0u].x));
+  float16_t a = abs(tint_bitcast_to_f16(u[0u].x).yx[0u]);
+}
+
+FXC validation failure:
+c:\src\dawn\Shader@0x000001B5B34ED8E0(5,8-16): error X3000: syntax error: unexpected token 'float16_t'
+
diff --git a/test/tint/buffer/uniform/std140/unnested/mat2x2_f16/to_fn.wgsl.expected.ir.dxc.hlsl b/test/tint/buffer/uniform/std140/unnested/mat2x2_f16/to_fn.wgsl.expected.ir.dxc.hlsl
index 3f437dc..6516b15 100644
--- a/test/tint/buffer/uniform/std140/unnested/mat2x2_f16/to_fn.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/buffer/uniform/std140/unnested/mat2x2_f16/to_fn.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,37 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Access
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+cbuffer cbuffer_u : register(b0) {
+  uint4 u[1];
+};
+void a(matrix<float16_t, 2, 2> m) {
+}
+
+void b(vector<float16_t, 2> v) {
+}
+
+void c(float16_t f) {
+}
+
+vector<float16_t, 2> tint_bitcast_to_f16(uint src) {
+  uint v = src;
+  float t_low = f16tof32((v & 65535u));
+  float t_high = f16tof32(((v >> 16u) & 65535u));
+  float16_t v_1 = float16_t(t_low);
+  return vector<float16_t, 2>(v_1, float16_t(t_high));
+}
+
+matrix<float16_t, 2, 2> v_2(uint start_byte_offset) {
+  uint4 v_3 = u[(start_byte_offset / 16u)];
+  vector<float16_t, 2> v_4 = tint_bitcast_to_f16((((((start_byte_offset % 16u) / 4u) == 2u)) ? (v_3.z) : (v_3.x)));
+  uint4 v_5 = u[((4u + start_byte_offset) / 16u)];
+  return matrix<float16_t, 2, 2>(v_4, tint_bitcast_to_f16(((((((4u + start_byte_offset) % 16u) / 4u) == 2u)) ? (v_5.z) : (v_5.x))));
+}
+
+[numthreads(1, 1, 1)]
+void f() {
+  a(v_2(0u));
+  b(tint_bitcast_to_f16(u[0u].x));
+  b(tint_bitcast_to_f16(u[0u].x).yx);
+  c(float16_t(f16tof32(u[0u].y)));
+  c(tint_bitcast_to_f16(u[0u].x).yx[0u]);
+}
+
diff --git a/test/tint/buffer/uniform/std140/unnested/mat2x2_f16/to_fn.wgsl.expected.ir.fxc.hlsl b/test/tint/buffer/uniform/std140/unnested/mat2x2_f16/to_fn.wgsl.expected.ir.fxc.hlsl
index 3f437dc..e8f0e73 100644
--- a/test/tint/buffer/uniform/std140/unnested/mat2x2_f16/to_fn.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/buffer/uniform/std140/unnested/mat2x2_f16/to_fn.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,44 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Access
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+
+cbuffer cbuffer_u : register(b0) {
+  uint4 u[1];
+};
+void a(matrix<float16_t, 2, 2> m) {
+}
+
+void b(vector<float16_t, 2> v) {
+}
+
+void c(float16_t f) {
+}
+
+vector<float16_t, 2> tint_bitcast_to_f16(uint src) {
+  uint v = src;
+  float t_low = f16tof32((v & 65535u));
+  float t_high = f16tof32(((v >> 16u) & 65535u));
+  float16_t v_1 = float16_t(t_low);
+  return vector<float16_t, 2>(v_1, float16_t(t_high));
+}
+
+matrix<float16_t, 2, 2> v_2(uint start_byte_offset) {
+  uint4 v_3 = u[(start_byte_offset / 16u)];
+  vector<float16_t, 2> v_4 = tint_bitcast_to_f16((((((start_byte_offset % 16u) / 4u) == 2u)) ? (v_3.z) : (v_3.x)));
+  uint4 v_5 = u[((4u + start_byte_offset) / 16u)];
+  return matrix<float16_t, 2, 2>(v_4, tint_bitcast_to_f16(((((((4u + start_byte_offset) % 16u) / 4u) == 2u)) ? (v_5.z) : (v_5.x))));
+}
+
+[numthreads(1, 1, 1)]
+void f() {
+  a(v_2(0u));
+  b(tint_bitcast_to_f16(u[0u].x));
+  b(tint_bitcast_to_f16(u[0u].x).yx);
+  c(float16_t(f16tof32(u[0u].y)));
+  c(tint_bitcast_to_f16(u[0u].x).yx[0u]);
+}
+
+FXC validation failure:
+c:\src\dawn\Shader@0x0000012BBD375880(5,15-23): error X3000: syntax error: unexpected token 'float16_t'
+c:\src\dawn\Shader@0x0000012BBD375880(8,15-23): error X3000: syntax error: unexpected token 'float16_t'
+c:\src\dawn\Shader@0x0000012BBD375880(11,8-16): error X3000: unrecognized identifier 'float16_t'
+
diff --git a/test/tint/buffer/uniform/std140/unnested/mat2x2_f16/to_private.wgsl.expected.ir.dxc.hlsl b/test/tint/buffer/uniform/std140/unnested/mat2x2_f16/to_private.wgsl.expected.ir.dxc.hlsl
index 3f437dc..dae0e30 100644
--- a/test/tint/buffer/uniform/std140/unnested/mat2x2_f16/to_private.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/buffer/uniform/std140/unnested/mat2x2_f16/to_private.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,28 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Access
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+cbuffer cbuffer_u : register(b0) {
+  uint4 u[1];
+};
+static matrix<float16_t, 2, 2> p = matrix<float16_t, 2, 2>((float16_t(0.0h)).xx, (float16_t(0.0h)).xx);
+vector<float16_t, 2> tint_bitcast_to_f16(uint src) {
+  uint v = src;
+  float t_low = f16tof32((v & 65535u));
+  float t_high = f16tof32(((v >> 16u) & 65535u));
+  float16_t v_1 = float16_t(t_low);
+  return vector<float16_t, 2>(v_1, float16_t(t_high));
+}
+
+matrix<float16_t, 2, 2> v_2(uint start_byte_offset) {
+  uint4 v_3 = u[(start_byte_offset / 16u)];
+  vector<float16_t, 2> v_4 = tint_bitcast_to_f16((((((start_byte_offset % 16u) / 4u) == 2u)) ? (v_3.z) : (v_3.x)));
+  uint4 v_5 = u[((4u + start_byte_offset) / 16u)];
+  return matrix<float16_t, 2, 2>(v_4, tint_bitcast_to_f16(((((((4u + start_byte_offset) % 16u) / 4u) == 2u)) ? (v_5.z) : (v_5.x))));
+}
+
+[numthreads(1, 1, 1)]
+void f() {
+  p = v_2(0u);
+  p[1] = tint_bitcast_to_f16(u[0u].x);
+  p[1] = tint_bitcast_to_f16(u[0u].x).yx;
+  p[0][1] = float16_t(f16tof32(u[0u].y));
+}
+
diff --git a/test/tint/buffer/uniform/std140/unnested/mat2x2_f16/to_private.wgsl.expected.ir.fxc.hlsl b/test/tint/buffer/uniform/std140/unnested/mat2x2_f16/to_private.wgsl.expected.ir.fxc.hlsl
index 3f437dc..e149c46 100644
--- a/test/tint/buffer/uniform/std140/unnested/mat2x2_f16/to_private.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/buffer/uniform/std140/unnested/mat2x2_f16/to_private.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,33 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Access
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+
+cbuffer cbuffer_u : register(b0) {
+  uint4 u[1];
+};
+static matrix<float16_t, 2, 2> p = matrix<float16_t, 2, 2>((float16_t(0.0h)).xx, (float16_t(0.0h)).xx);
+vector<float16_t, 2> tint_bitcast_to_f16(uint src) {
+  uint v = src;
+  float t_low = f16tof32((v & 65535u));
+  float t_high = f16tof32(((v >> 16u) & 65535u));
+  float16_t v_1 = float16_t(t_low);
+  return vector<float16_t, 2>(v_1, float16_t(t_high));
+}
+
+matrix<float16_t, 2, 2> v_2(uint start_byte_offset) {
+  uint4 v_3 = u[(start_byte_offset / 16u)];
+  vector<float16_t, 2> v_4 = tint_bitcast_to_f16((((((start_byte_offset % 16u) / 4u) == 2u)) ? (v_3.z) : (v_3.x)));
+  uint4 v_5 = u[((4u + start_byte_offset) / 16u)];
+  return matrix<float16_t, 2, 2>(v_4, tint_bitcast_to_f16(((((((4u + start_byte_offset) % 16u) / 4u) == 2u)) ? (v_5.z) : (v_5.x))));
+}
+
+[numthreads(1, 1, 1)]
+void f() {
+  p = v_2(0u);
+  p[1] = tint_bitcast_to_f16(u[0u].x);
+  p[1] = tint_bitcast_to_f16(u[0u].x).yx;
+  p[0][1] = float16_t(f16tof32(u[0u].y));
+}
+
+FXC validation failure:
+c:\src\dawn\Shader@0x000001DBBC082B00(5,15-23): error X3000: syntax error: unexpected token 'float16_t'
+
diff --git a/test/tint/buffer/uniform/std140/unnested/mat2x2_f16/to_storage.wgsl.expected.ir.dxc.hlsl b/test/tint/buffer/uniform/std140/unnested/mat2x2_f16/to_storage.wgsl.expected.ir.dxc.hlsl
index 3f437dc..e2627f2 100644
--- a/test/tint/buffer/uniform/std140/unnested/mat2x2_f16/to_storage.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/buffer/uniform/std140/unnested/mat2x2_f16/to_storage.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,33 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Access
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+cbuffer cbuffer_u : register(b0) {
+  uint4 u[1];
+};
+RWByteAddressBuffer s : register(u1);
+vector<float16_t, 2> tint_bitcast_to_f16(uint src) {
+  uint v = src;
+  float t_low = f16tof32((v & 65535u));
+  float t_high = f16tof32(((v >> 16u) & 65535u));
+  float16_t v_1 = float16_t(t_low);
+  return vector<float16_t, 2>(v_1, float16_t(t_high));
+}
+
+void v_2(uint offset, matrix<float16_t, 2, 2> obj) {
+  s.Store<vector<float16_t, 2> >((offset + 0u), obj[0u]);
+  s.Store<vector<float16_t, 2> >((offset + 4u), obj[1u]);
+}
+
+matrix<float16_t, 2, 2> v_3(uint start_byte_offset) {
+  uint4 v_4 = u[(start_byte_offset / 16u)];
+  vector<float16_t, 2> v_5 = tint_bitcast_to_f16((((((start_byte_offset % 16u) / 4u) == 2u)) ? (v_4.z) : (v_4.x)));
+  uint4 v_6 = u[((4u + start_byte_offset) / 16u)];
+  return matrix<float16_t, 2, 2>(v_5, tint_bitcast_to_f16(((((((4u + start_byte_offset) % 16u) / 4u) == 2u)) ? (v_6.z) : (v_6.x))));
+}
+
+[numthreads(1, 1, 1)]
+void f() {
+  v_2(0u, v_3(0u));
+  s.Store<vector<float16_t, 2> >(4u, tint_bitcast_to_f16(u[0u].x));
+  s.Store<vector<float16_t, 2> >(4u, tint_bitcast_to_f16(u[0u].x).yx);
+  s.Store<float16_t>(2u, float16_t(f16tof32(u[0u].y)));
+}
+
diff --git a/test/tint/buffer/uniform/std140/unnested/mat2x2_f16/to_storage.wgsl.expected.ir.fxc.hlsl b/test/tint/buffer/uniform/std140/unnested/mat2x2_f16/to_storage.wgsl.expected.ir.fxc.hlsl
index 3f437dc..0b4fc3ea 100644
--- a/test/tint/buffer/uniform/std140/unnested/mat2x2_f16/to_storage.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/buffer/uniform/std140/unnested/mat2x2_f16/to_storage.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,38 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Access
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+
+cbuffer cbuffer_u : register(b0) {
+  uint4 u[1];
+};
+RWByteAddressBuffer s : register(u1);
+vector<float16_t, 2> tint_bitcast_to_f16(uint src) {
+  uint v = src;
+  float t_low = f16tof32((v & 65535u));
+  float t_high = f16tof32(((v >> 16u) & 65535u));
+  float16_t v_1 = float16_t(t_low);
+  return vector<float16_t, 2>(v_1, float16_t(t_high));
+}
+
+void v_2(uint offset, matrix<float16_t, 2, 2> obj) {
+  s.Store<vector<float16_t, 2> >((offset + 0u), obj[0u]);
+  s.Store<vector<float16_t, 2> >((offset + 4u), obj[1u]);
+}
+
+matrix<float16_t, 2, 2> v_3(uint start_byte_offset) {
+  uint4 v_4 = u[(start_byte_offset / 16u)];
+  vector<float16_t, 2> v_5 = tint_bitcast_to_f16((((((start_byte_offset % 16u) / 4u) == 2u)) ? (v_4.z) : (v_4.x)));
+  uint4 v_6 = u[((4u + start_byte_offset) / 16u)];
+  return matrix<float16_t, 2, 2>(v_5, tint_bitcast_to_f16(((((((4u + start_byte_offset) % 16u) / 4u) == 2u)) ? (v_6.z) : (v_6.x))));
+}
+
+[numthreads(1, 1, 1)]
+void f() {
+  v_2(0u, v_3(0u));
+  s.Store<vector<float16_t, 2> >(4u, tint_bitcast_to_f16(u[0u].x));
+  s.Store<vector<float16_t, 2> >(4u, tint_bitcast_to_f16(u[0u].x).yx);
+  s.Store<float16_t>(2u, float16_t(f16tof32(u[0u].y)));
+}
+
+FXC validation failure:
+c:\src\dawn\Shader@0x00000277C858EF60(6,8-16): error X3000: syntax error: unexpected token 'float16_t'
+
diff --git a/test/tint/buffer/uniform/std140/unnested/mat2x2_f16/to_workgroup.wgsl.expected.ir.dxc.hlsl b/test/tint/buffer/uniform/std140/unnested/mat2x2_f16/to_workgroup.wgsl.expected.ir.dxc.hlsl
index 3f437dc..2820bfd 100644
--- a/test/tint/buffer/uniform/std140/unnested/mat2x2_f16/to_workgroup.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/buffer/uniform/std140/unnested/mat2x2_f16/to_workgroup.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,40 @@
-SKIP: FAILED
+struct f_inputs {
+  uint tint_local_index : SV_GroupIndex;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Access
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+
+cbuffer cbuffer_u : register(b0) {
+  uint4 u[1];
+};
+groupshared matrix<float16_t, 2, 2> w;
+vector<float16_t, 2> tint_bitcast_to_f16(uint src) {
+  uint v = src;
+  float t_low = f16tof32((v & 65535u));
+  float t_high = f16tof32(((v >> 16u) & 65535u));
+  float16_t v_1 = float16_t(t_low);
+  return vector<float16_t, 2>(v_1, float16_t(t_high));
+}
+
+matrix<float16_t, 2, 2> v_2(uint start_byte_offset) {
+  uint4 v_3 = u[(start_byte_offset / 16u)];
+  vector<float16_t, 2> v_4 = tint_bitcast_to_f16((((((start_byte_offset % 16u) / 4u) == 2u)) ? (v_3.z) : (v_3.x)));
+  uint4 v_5 = u[((4u + start_byte_offset) / 16u)];
+  return matrix<float16_t, 2, 2>(v_4, tint_bitcast_to_f16(((((((4u + start_byte_offset) % 16u) / 4u) == 2u)) ? (v_5.z) : (v_5.x))));
+}
+
+void f_inner(uint tint_local_index) {
+  if ((tint_local_index == 0u)) {
+    w = matrix<float16_t, 2, 2>((float16_t(0.0h)).xx, (float16_t(0.0h)).xx);
+  }
+  GroupMemoryBarrierWithGroupSync();
+  w = v_2(0u);
+  w[1] = tint_bitcast_to_f16(u[0u].x);
+  w[1] = tint_bitcast_to_f16(u[0u].x).yx;
+  w[0][1] = float16_t(f16tof32(u[0u].y));
+}
+
+[numthreads(1, 1, 1)]
+void f(f_inputs inputs) {
+  f_inner(inputs.tint_local_index);
+}
+
diff --git a/test/tint/buffer/uniform/std140/unnested/mat2x2_f16/to_workgroup.wgsl.expected.ir.fxc.hlsl b/test/tint/buffer/uniform/std140/unnested/mat2x2_f16/to_workgroup.wgsl.expected.ir.fxc.hlsl
index 3f437dc..37af0f4 100644
--- a/test/tint/buffer/uniform/std140/unnested/mat2x2_f16/to_workgroup.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/buffer/uniform/std140/unnested/mat2x2_f16/to_workgroup.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,45 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Access
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct f_inputs {
+  uint tint_local_index : SV_GroupIndex;
+};
+
+
+cbuffer cbuffer_u : register(b0) {
+  uint4 u[1];
+};
+groupshared matrix<float16_t, 2, 2> w;
+vector<float16_t, 2> tint_bitcast_to_f16(uint src) {
+  uint v = src;
+  float t_low = f16tof32((v & 65535u));
+  float t_high = f16tof32(((v >> 16u) & 65535u));
+  float16_t v_1 = float16_t(t_low);
+  return vector<float16_t, 2>(v_1, float16_t(t_high));
+}
+
+matrix<float16_t, 2, 2> v_2(uint start_byte_offset) {
+  uint4 v_3 = u[(start_byte_offset / 16u)];
+  vector<float16_t, 2> v_4 = tint_bitcast_to_f16((((((start_byte_offset % 16u) / 4u) == 2u)) ? (v_3.z) : (v_3.x)));
+  uint4 v_5 = u[((4u + start_byte_offset) / 16u)];
+  return matrix<float16_t, 2, 2>(v_4, tint_bitcast_to_f16(((((((4u + start_byte_offset) % 16u) / 4u) == 2u)) ? (v_5.z) : (v_5.x))));
+}
+
+void f_inner(uint tint_local_index) {
+  if ((tint_local_index == 0u)) {
+    w = matrix<float16_t, 2, 2>((float16_t(0.0h)).xx, (float16_t(0.0h)).xx);
+  }
+  GroupMemoryBarrierWithGroupSync();
+  w = v_2(0u);
+  w[1] = tint_bitcast_to_f16(u[0u].x);
+  w[1] = tint_bitcast_to_f16(u[0u].x).yx;
+  w[0][1] = float16_t(f16tof32(u[0u].y));
+}
+
+[numthreads(1, 1, 1)]
+void f(f_inputs inputs) {
+  f_inner(inputs.tint_local_index);
+}
+
+FXC validation failure:
+c:\src\dawn\Shader@0x000001C616224F50(9,20-28): error X3000: syntax error: unexpected token 'float16_t'
+
diff --git a/test/tint/buffer/uniform/std140/unnested/mat2x2_f32/dynamic_index_via_ptr.wgsl.expected.ir.dxc.hlsl b/test/tint/buffer/uniform/std140/unnested/mat2x2_f32/dynamic_index_via_ptr.wgsl.expected.ir.dxc.hlsl
index 3f437dc..94b8b1b 100644
--- a/test/tint/buffer/uniform/std140/unnested/mat2x2_f32/dynamic_index_via_ptr.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/buffer/uniform/std140/unnested/mat2x2_f32/dynamic_index_via_ptr.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,25 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Access
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+cbuffer cbuffer_m : register(b0) {
+  uint4 m[1];
+};
+static int counter = 0;
+int i() {
+  counter = (counter + 1);
+  return counter;
+}
+
+float2x2 v(uint start_byte_offset) {
+  uint4 v_1 = m[(start_byte_offset / 16u)];
+  float2 v_2 = asfloat((((((start_byte_offset % 16u) / 4u) == 2u)) ? (v_1.zw) : (v_1.xy)));
+  uint4 v_3 = m[((8u + start_byte_offset) / 16u)];
+  return float2x2(v_2, asfloat(((((((8u + start_byte_offset) % 16u) / 4u) == 2u)) ? (v_3.zw) : (v_3.xy))));
+}
+
+[numthreads(1, 1, 1)]
+void f() {
+  uint v_4 = (8u * uint(i()));
+  float2x2 l_m = v(0u);
+  uint4 v_5 = m[(v_4 / 16u)];
+  float2 l_m_i = asfloat((((((v_4 % 16u) / 4u) == 2u)) ? (v_5.zw) : (v_5.xy)));
+}
+
diff --git a/test/tint/buffer/uniform/std140/unnested/mat2x2_f32/dynamic_index_via_ptr.wgsl.expected.ir.fxc.hlsl b/test/tint/buffer/uniform/std140/unnested/mat2x2_f32/dynamic_index_via_ptr.wgsl.expected.ir.fxc.hlsl
index 3f437dc..94b8b1b 100644
--- a/test/tint/buffer/uniform/std140/unnested/mat2x2_f32/dynamic_index_via_ptr.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/buffer/uniform/std140/unnested/mat2x2_f32/dynamic_index_via_ptr.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,25 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Access
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+cbuffer cbuffer_m : register(b0) {
+  uint4 m[1];
+};
+static int counter = 0;
+int i() {
+  counter = (counter + 1);
+  return counter;
+}
+
+float2x2 v(uint start_byte_offset) {
+  uint4 v_1 = m[(start_byte_offset / 16u)];
+  float2 v_2 = asfloat((((((start_byte_offset % 16u) / 4u) == 2u)) ? (v_1.zw) : (v_1.xy)));
+  uint4 v_3 = m[((8u + start_byte_offset) / 16u)];
+  return float2x2(v_2, asfloat(((((((8u + start_byte_offset) % 16u) / 4u) == 2u)) ? (v_3.zw) : (v_3.xy))));
+}
+
+[numthreads(1, 1, 1)]
+void f() {
+  uint v_4 = (8u * uint(i()));
+  float2x2 l_m = v(0u);
+  uint4 v_5 = m[(v_4 / 16u)];
+  float2 l_m_i = asfloat((((((v_4 % 16u) / 4u) == 2u)) ? (v_5.zw) : (v_5.xy)));
+}
+
diff --git a/test/tint/buffer/uniform/std140/unnested/mat2x2_f32/static_index_via_ptr.wgsl.expected.ir.dxc.hlsl b/test/tint/buffer/uniform/std140/unnested/mat2x2_f32/static_index_via_ptr.wgsl.expected.ir.dxc.hlsl
index 3f437dc..8324f33 100644
--- a/test/tint/buffer/uniform/std140/unnested/mat2x2_f32/static_index_via_ptr.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/buffer/uniform/std140/unnested/mat2x2_f32/static_index_via_ptr.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,23 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Access
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+cbuffer cbuffer_m : register(b0) {
+  uint4 m[1];
+};
+static int counter = 0;
+int i() {
+  counter = (counter + 1);
+  return counter;
+}
+
+float2x2 v(uint start_byte_offset) {
+  uint4 v_1 = m[(start_byte_offset / 16u)];
+  float2 v_2 = asfloat((((((start_byte_offset % 16u) / 4u) == 2u)) ? (v_1.zw) : (v_1.xy)));
+  uint4 v_3 = m[((8u + start_byte_offset) / 16u)];
+  return float2x2(v_2, asfloat(((((((8u + start_byte_offset) % 16u) / 4u) == 2u)) ? (v_3.zw) : (v_3.xy))));
+}
+
+[numthreads(1, 1, 1)]
+void f() {
+  float2x2 l_m = v(0u);
+  float2 l_m_1 = asfloat(m[0u].zw);
+}
+
diff --git a/test/tint/buffer/uniform/std140/unnested/mat2x2_f32/static_index_via_ptr.wgsl.expected.ir.fxc.hlsl b/test/tint/buffer/uniform/std140/unnested/mat2x2_f32/static_index_via_ptr.wgsl.expected.ir.fxc.hlsl
index 3f437dc..8324f33 100644
--- a/test/tint/buffer/uniform/std140/unnested/mat2x2_f32/static_index_via_ptr.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/buffer/uniform/std140/unnested/mat2x2_f32/static_index_via_ptr.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,23 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Access
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+cbuffer cbuffer_m : register(b0) {
+  uint4 m[1];
+};
+static int counter = 0;
+int i() {
+  counter = (counter + 1);
+  return counter;
+}
+
+float2x2 v(uint start_byte_offset) {
+  uint4 v_1 = m[(start_byte_offset / 16u)];
+  float2 v_2 = asfloat((((((start_byte_offset % 16u) / 4u) == 2u)) ? (v_1.zw) : (v_1.xy)));
+  uint4 v_3 = m[((8u + start_byte_offset) / 16u)];
+  return float2x2(v_2, asfloat(((((((8u + start_byte_offset) % 16u) / 4u) == 2u)) ? (v_3.zw) : (v_3.xy))));
+}
+
+[numthreads(1, 1, 1)]
+void f() {
+  float2x2 l_m = v(0u);
+  float2 l_m_1 = asfloat(m[0u].zw);
+}
+
diff --git a/test/tint/buffer/uniform/std140/unnested/mat2x2_f32/to_builtin.wgsl.expected.ir.dxc.hlsl b/test/tint/buffer/uniform/std140/unnested/mat2x2_f32/to_builtin.wgsl.expected.ir.dxc.hlsl
index 3f437dc..425c3d7 100644
--- a/test/tint/buffer/uniform/std140/unnested/mat2x2_f32/to_builtin.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/buffer/uniform/std140/unnested/mat2x2_f32/to_builtin.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,18 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Access
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+cbuffer cbuffer_u : register(b0) {
+  uint4 u[1];
+};
+float2x2 v(uint start_byte_offset) {
+  uint4 v_1 = u[(start_byte_offset / 16u)];
+  float2 v_2 = asfloat((((((start_byte_offset % 16u) / 4u) == 2u)) ? (v_1.zw) : (v_1.xy)));
+  uint4 v_3 = u[((8u + start_byte_offset) / 16u)];
+  return float2x2(v_2, asfloat(((((((8u + start_byte_offset) % 16u) / 4u) == 2u)) ? (v_3.zw) : (v_3.xy))));
+}
+
+[numthreads(1, 1, 1)]
+void f() {
+  float2x2 t = transpose(v(0u));
+  float l = length(asfloat(u[0u].zw));
+  float a = abs(asfloat(u[0u].xy).yx[0u]);
+}
+
diff --git a/test/tint/buffer/uniform/std140/unnested/mat2x2_f32/to_builtin.wgsl.expected.ir.fxc.hlsl b/test/tint/buffer/uniform/std140/unnested/mat2x2_f32/to_builtin.wgsl.expected.ir.fxc.hlsl
index 3f437dc..425c3d7 100644
--- a/test/tint/buffer/uniform/std140/unnested/mat2x2_f32/to_builtin.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/buffer/uniform/std140/unnested/mat2x2_f32/to_builtin.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,18 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Access
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+cbuffer cbuffer_u : register(b0) {
+  uint4 u[1];
+};
+float2x2 v(uint start_byte_offset) {
+  uint4 v_1 = u[(start_byte_offset / 16u)];
+  float2 v_2 = asfloat((((((start_byte_offset % 16u) / 4u) == 2u)) ? (v_1.zw) : (v_1.xy)));
+  uint4 v_3 = u[((8u + start_byte_offset) / 16u)];
+  return float2x2(v_2, asfloat(((((((8u + start_byte_offset) % 16u) / 4u) == 2u)) ? (v_3.zw) : (v_3.xy))));
+}
+
+[numthreads(1, 1, 1)]
+void f() {
+  float2x2 t = transpose(v(0u));
+  float l = length(asfloat(u[0u].zw));
+  float a = abs(asfloat(u[0u].xy).yx[0u]);
+}
+
diff --git a/test/tint/buffer/uniform/std140/unnested/mat2x2_f32/to_fn.wgsl.expected.ir.dxc.hlsl b/test/tint/buffer/uniform/std140/unnested/mat2x2_f32/to_fn.wgsl.expected.ir.dxc.hlsl
index 3f437dc..81e1996 100644
--- a/test/tint/buffer/uniform/std140/unnested/mat2x2_f32/to_fn.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/buffer/uniform/std140/unnested/mat2x2_f32/to_fn.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,29 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Access
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+cbuffer cbuffer_u : register(b0) {
+  uint4 u[1];
+};
+void a(float2x2 m) {
+}
+
+void b(float2 v) {
+}
+
+void c(float f) {
+}
+
+float2x2 v_1(uint start_byte_offset) {
+  uint4 v_2 = u[(start_byte_offset / 16u)];
+  float2 v_3 = asfloat((((((start_byte_offset % 16u) / 4u) == 2u)) ? (v_2.zw) : (v_2.xy)));
+  uint4 v_4 = u[((8u + start_byte_offset) / 16u)];
+  return float2x2(v_3, asfloat(((((((8u + start_byte_offset) % 16u) / 4u) == 2u)) ? (v_4.zw) : (v_4.xy))));
+}
+
+[numthreads(1, 1, 1)]
+void f() {
+  a(v_1(0u));
+  b(asfloat(u[0u].zw));
+  b(asfloat(u[0u].zw).yx);
+  c(asfloat(u[0u].z));
+  c(asfloat(u[0u].zw).yx[0u]);
+}
+
diff --git a/test/tint/buffer/uniform/std140/unnested/mat2x2_f32/to_fn.wgsl.expected.ir.fxc.hlsl b/test/tint/buffer/uniform/std140/unnested/mat2x2_f32/to_fn.wgsl.expected.ir.fxc.hlsl
index 3f437dc..81e1996 100644
--- a/test/tint/buffer/uniform/std140/unnested/mat2x2_f32/to_fn.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/buffer/uniform/std140/unnested/mat2x2_f32/to_fn.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,29 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Access
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+cbuffer cbuffer_u : register(b0) {
+  uint4 u[1];
+};
+void a(float2x2 m) {
+}
+
+void b(float2 v) {
+}
+
+void c(float f) {
+}
+
+float2x2 v_1(uint start_byte_offset) {
+  uint4 v_2 = u[(start_byte_offset / 16u)];
+  float2 v_3 = asfloat((((((start_byte_offset % 16u) / 4u) == 2u)) ? (v_2.zw) : (v_2.xy)));
+  uint4 v_4 = u[((8u + start_byte_offset) / 16u)];
+  return float2x2(v_3, asfloat(((((((8u + start_byte_offset) % 16u) / 4u) == 2u)) ? (v_4.zw) : (v_4.xy))));
+}
+
+[numthreads(1, 1, 1)]
+void f() {
+  a(v_1(0u));
+  b(asfloat(u[0u].zw));
+  b(asfloat(u[0u].zw).yx);
+  c(asfloat(u[0u].z));
+  c(asfloat(u[0u].zw).yx[0u]);
+}
+
diff --git a/test/tint/buffer/uniform/std140/unnested/mat2x2_f32/to_private.wgsl.expected.ir.dxc.hlsl b/test/tint/buffer/uniform/std140/unnested/mat2x2_f32/to_private.wgsl.expected.ir.dxc.hlsl
index 3f437dc..3de163b 100644
--- a/test/tint/buffer/uniform/std140/unnested/mat2x2_f32/to_private.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/buffer/uniform/std140/unnested/mat2x2_f32/to_private.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,20 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Access
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+cbuffer cbuffer_u : register(b0) {
+  uint4 u[1];
+};
+static float2x2 p = float2x2((0.0f).xx, (0.0f).xx);
+float2x2 v(uint start_byte_offset) {
+  uint4 v_1 = u[(start_byte_offset / 16u)];
+  float2 v_2 = asfloat((((((start_byte_offset % 16u) / 4u) == 2u)) ? (v_1.zw) : (v_1.xy)));
+  uint4 v_3 = u[((8u + start_byte_offset) / 16u)];
+  return float2x2(v_2, asfloat(((((((8u + start_byte_offset) % 16u) / 4u) == 2u)) ? (v_3.zw) : (v_3.xy))));
+}
+
+[numthreads(1, 1, 1)]
+void f() {
+  p = v(0u);
+  p[1] = asfloat(u[0u].xy);
+  p[1] = asfloat(u[0u].xy).yx;
+  p[0][1] = asfloat(u[0u].z);
+}
+
diff --git a/test/tint/buffer/uniform/std140/unnested/mat2x2_f32/to_private.wgsl.expected.ir.fxc.hlsl b/test/tint/buffer/uniform/std140/unnested/mat2x2_f32/to_private.wgsl.expected.ir.fxc.hlsl
index 3f437dc..3de163b 100644
--- a/test/tint/buffer/uniform/std140/unnested/mat2x2_f32/to_private.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/buffer/uniform/std140/unnested/mat2x2_f32/to_private.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,20 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Access
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+cbuffer cbuffer_u : register(b0) {
+  uint4 u[1];
+};
+static float2x2 p = float2x2((0.0f).xx, (0.0f).xx);
+float2x2 v(uint start_byte_offset) {
+  uint4 v_1 = u[(start_byte_offset / 16u)];
+  float2 v_2 = asfloat((((((start_byte_offset % 16u) / 4u) == 2u)) ? (v_1.zw) : (v_1.xy)));
+  uint4 v_3 = u[((8u + start_byte_offset) / 16u)];
+  return float2x2(v_2, asfloat(((((((8u + start_byte_offset) % 16u) / 4u) == 2u)) ? (v_3.zw) : (v_3.xy))));
+}
+
+[numthreads(1, 1, 1)]
+void f() {
+  p = v(0u);
+  p[1] = asfloat(u[0u].xy);
+  p[1] = asfloat(u[0u].xy).yx;
+  p[0][1] = asfloat(u[0u].z);
+}
+
diff --git a/test/tint/buffer/uniform/std140/unnested/mat2x2_f32/to_storage.wgsl.expected.ir.dxc.hlsl b/test/tint/buffer/uniform/std140/unnested/mat2x2_f32/to_storage.wgsl.expected.ir.dxc.hlsl
index 3f437dc..bf190d4 100644
--- a/test/tint/buffer/uniform/std140/unnested/mat2x2_f32/to_storage.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/buffer/uniform/std140/unnested/mat2x2_f32/to_storage.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,25 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Access
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+cbuffer cbuffer_u : register(b0) {
+  uint4 u[1];
+};
+RWByteAddressBuffer s : register(u1);
+void v(uint offset, float2x2 obj) {
+  s.Store2((offset + 0u), asuint(obj[0u]));
+  s.Store2((offset + 8u), asuint(obj[1u]));
+}
+
+float2x2 v_1(uint start_byte_offset) {
+  uint4 v_2 = u[(start_byte_offset / 16u)];
+  float2 v_3 = asfloat((((((start_byte_offset % 16u) / 4u) == 2u)) ? (v_2.zw) : (v_2.xy)));
+  uint4 v_4 = u[((8u + start_byte_offset) / 16u)];
+  return float2x2(v_3, asfloat(((((((8u + start_byte_offset) % 16u) / 4u) == 2u)) ? (v_4.zw) : (v_4.xy))));
+}
+
+[numthreads(1, 1, 1)]
+void f() {
+  v(0u, v_1(0u));
+  s.Store2(8u, asuint(asfloat(u[0u].xy)));
+  s.Store2(8u, asuint(asfloat(u[0u].xy).yx));
+  s.Store(4u, asuint(asfloat(u[0u].z)));
+}
+
diff --git a/test/tint/buffer/uniform/std140/unnested/mat2x2_f32/to_storage.wgsl.expected.ir.fxc.hlsl b/test/tint/buffer/uniform/std140/unnested/mat2x2_f32/to_storage.wgsl.expected.ir.fxc.hlsl
index 3f437dc..bf190d4 100644
--- a/test/tint/buffer/uniform/std140/unnested/mat2x2_f32/to_storage.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/buffer/uniform/std140/unnested/mat2x2_f32/to_storage.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,25 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Access
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+cbuffer cbuffer_u : register(b0) {
+  uint4 u[1];
+};
+RWByteAddressBuffer s : register(u1);
+void v(uint offset, float2x2 obj) {
+  s.Store2((offset + 0u), asuint(obj[0u]));
+  s.Store2((offset + 8u), asuint(obj[1u]));
+}
+
+float2x2 v_1(uint start_byte_offset) {
+  uint4 v_2 = u[(start_byte_offset / 16u)];
+  float2 v_3 = asfloat((((((start_byte_offset % 16u) / 4u) == 2u)) ? (v_2.zw) : (v_2.xy)));
+  uint4 v_4 = u[((8u + start_byte_offset) / 16u)];
+  return float2x2(v_3, asfloat(((((((8u + start_byte_offset) % 16u) / 4u) == 2u)) ? (v_4.zw) : (v_4.xy))));
+}
+
+[numthreads(1, 1, 1)]
+void f() {
+  v(0u, v_1(0u));
+  s.Store2(8u, asuint(asfloat(u[0u].xy)));
+  s.Store2(8u, asuint(asfloat(u[0u].xy).yx));
+  s.Store(4u, asuint(asfloat(u[0u].z)));
+}
+
diff --git a/test/tint/buffer/uniform/std140/unnested/mat2x2_f32/to_workgroup.wgsl.expected.ir.dxc.hlsl b/test/tint/buffer/uniform/std140/unnested/mat2x2_f32/to_workgroup.wgsl.expected.ir.dxc.hlsl
index 3f437dc..5f9ff58 100644
--- a/test/tint/buffer/uniform/std140/unnested/mat2x2_f32/to_workgroup.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/buffer/uniform/std140/unnested/mat2x2_f32/to_workgroup.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,32 @@
-SKIP: FAILED
+struct f_inputs {
+  uint tint_local_index : SV_GroupIndex;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Access
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+
+cbuffer cbuffer_u : register(b0) {
+  uint4 u[1];
+};
+groupshared float2x2 w;
+float2x2 v(uint start_byte_offset) {
+  uint4 v_1 = u[(start_byte_offset / 16u)];
+  float2 v_2 = asfloat((((((start_byte_offset % 16u) / 4u) == 2u)) ? (v_1.zw) : (v_1.xy)));
+  uint4 v_3 = u[((8u + start_byte_offset) / 16u)];
+  return float2x2(v_2, asfloat(((((((8u + start_byte_offset) % 16u) / 4u) == 2u)) ? (v_3.zw) : (v_3.xy))));
+}
+
+void f_inner(uint tint_local_index) {
+  if ((tint_local_index == 0u)) {
+    w = float2x2((0.0f).xx, (0.0f).xx);
+  }
+  GroupMemoryBarrierWithGroupSync();
+  w = v(0u);
+  w[1] = asfloat(u[0u].xy);
+  w[1] = asfloat(u[0u].xy).yx;
+  w[0][1] = asfloat(u[0u].z);
+}
+
+[numthreads(1, 1, 1)]
+void f(f_inputs inputs) {
+  f_inner(inputs.tint_local_index);
+}
+
diff --git a/test/tint/buffer/uniform/std140/unnested/mat2x2_f32/to_workgroup.wgsl.expected.ir.fxc.hlsl b/test/tint/buffer/uniform/std140/unnested/mat2x2_f32/to_workgroup.wgsl.expected.ir.fxc.hlsl
index 3f437dc..5f9ff58 100644
--- a/test/tint/buffer/uniform/std140/unnested/mat2x2_f32/to_workgroup.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/buffer/uniform/std140/unnested/mat2x2_f32/to_workgroup.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,32 @@
-SKIP: FAILED
+struct f_inputs {
+  uint tint_local_index : SV_GroupIndex;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Access
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+
+cbuffer cbuffer_u : register(b0) {
+  uint4 u[1];
+};
+groupshared float2x2 w;
+float2x2 v(uint start_byte_offset) {
+  uint4 v_1 = u[(start_byte_offset / 16u)];
+  float2 v_2 = asfloat((((((start_byte_offset % 16u) / 4u) == 2u)) ? (v_1.zw) : (v_1.xy)));
+  uint4 v_3 = u[((8u + start_byte_offset) / 16u)];
+  return float2x2(v_2, asfloat(((((((8u + start_byte_offset) % 16u) / 4u) == 2u)) ? (v_3.zw) : (v_3.xy))));
+}
+
+void f_inner(uint tint_local_index) {
+  if ((tint_local_index == 0u)) {
+    w = float2x2((0.0f).xx, (0.0f).xx);
+  }
+  GroupMemoryBarrierWithGroupSync();
+  w = v(0u);
+  w[1] = asfloat(u[0u].xy);
+  w[1] = asfloat(u[0u].xy).yx;
+  w[0][1] = asfloat(u[0u].z);
+}
+
+[numthreads(1, 1, 1)]
+void f(f_inputs inputs) {
+  f_inner(inputs.tint_local_index);
+}
+
diff --git a/test/tint/buffer/uniform/std140/unnested/mat2x3_f16/dynamic_index_via_ptr.wgsl.expected.ir.dxc.hlsl b/test/tint/buffer/uniform/std140/unnested/mat2x3_f16/dynamic_index_via_ptr.wgsl.expected.ir.dxc.hlsl
index 3f437dc..b71990b 100644
--- a/test/tint/buffer/uniform/std140/unnested/mat2x3_f16/dynamic_index_via_ptr.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/buffer/uniform/std140/unnested/mat2x3_f16/dynamic_index_via_ptr.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,34 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Access
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+cbuffer cbuffer_m : register(b0) {
+  uint4 m[1];
+};
+static int counter = 0;
+int i() {
+  counter = (counter + 1);
+  return counter;
+}
+
+vector<float16_t, 4> tint_bitcast_to_f16(uint4 src) {
+  uint4 v = src;
+  uint4 mask = (65535u).xxxx;
+  uint4 shift = (16u).xxxx;
+  float4 t_low = f16tof32((v & mask));
+  float4 t_high = f16tof32(((v >> shift) & mask));
+  float16_t v_1 = float16_t(t_low.x);
+  float16_t v_2 = float16_t(t_high.x);
+  float16_t v_3 = float16_t(t_low.y);
+  return vector<float16_t, 4>(v_1, v_2, v_3, float16_t(t_high.y));
+}
+
+matrix<float16_t, 2, 3> v_4(uint start_byte_offset) {
+  vector<float16_t, 3> v_5 = tint_bitcast_to_f16(m[(start_byte_offset / 16u)]).xyz;
+  return matrix<float16_t, 2, 3>(v_5, tint_bitcast_to_f16(m[((8u + start_byte_offset) / 16u)]).xyz);
+}
+
+[numthreads(1, 1, 1)]
+void f() {
+  uint v_6 = (8u * uint(i()));
+  matrix<float16_t, 2, 3> l_m = v_4(0u);
+  vector<float16_t, 3> l_m_i = tint_bitcast_to_f16(m[(v_6 / 16u)]).xyz;
+}
+
diff --git a/test/tint/buffer/uniform/std140/unnested/mat2x3_f16/dynamic_index_via_ptr.wgsl.expected.ir.fxc.hlsl b/test/tint/buffer/uniform/std140/unnested/mat2x3_f16/dynamic_index_via_ptr.wgsl.expected.ir.fxc.hlsl
index 3f437dc..f368937 100644
--- a/test/tint/buffer/uniform/std140/unnested/mat2x3_f16/dynamic_index_via_ptr.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/buffer/uniform/std140/unnested/mat2x3_f16/dynamic_index_via_ptr.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,39 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Access
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+
+cbuffer cbuffer_m : register(b0) {
+  uint4 m[1];
+};
+static int counter = 0;
+int i() {
+  counter = (counter + 1);
+  return counter;
+}
+
+vector<float16_t, 4> tint_bitcast_to_f16(uint4 src) {
+  uint4 v = src;
+  uint4 mask = (65535u).xxxx;
+  uint4 shift = (16u).xxxx;
+  float4 t_low = f16tof32((v & mask));
+  float4 t_high = f16tof32(((v >> shift) & mask));
+  float16_t v_1 = float16_t(t_low.x);
+  float16_t v_2 = float16_t(t_high.x);
+  float16_t v_3 = float16_t(t_low.y);
+  return vector<float16_t, 4>(v_1, v_2, v_3, float16_t(t_high.y));
+}
+
+matrix<float16_t, 2, 3> v_4(uint start_byte_offset) {
+  vector<float16_t, 3> v_5 = tint_bitcast_to_f16(m[(start_byte_offset / 16u)]).xyz;
+  return matrix<float16_t, 2, 3>(v_5, tint_bitcast_to_f16(m[((8u + start_byte_offset) / 16u)]).xyz);
+}
+
+[numthreads(1, 1, 1)]
+void f() {
+  uint v_6 = (8u * uint(i()));
+  matrix<float16_t, 2, 3> l_m = v_4(0u);
+  vector<float16_t, 3> l_m_i = tint_bitcast_to_f16(m[(v_6 / 16u)]).xyz;
+}
+
+FXC validation failure:
+c:\src\dawn\Shader@0x00000183FF973AF0(11,8-16): error X3000: syntax error: unexpected token 'float16_t'
+
diff --git a/test/tint/buffer/uniform/std140/unnested/mat2x3_f16/static_index_via_ptr.wgsl.expected.ir.dxc.hlsl b/test/tint/buffer/uniform/std140/unnested/mat2x3_f16/static_index_via_ptr.wgsl.expected.ir.dxc.hlsl
index 3f437dc..27d2ab0 100644
--- a/test/tint/buffer/uniform/std140/unnested/mat2x3_f16/static_index_via_ptr.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/buffer/uniform/std140/unnested/mat2x3_f16/static_index_via_ptr.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,33 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Access
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+cbuffer cbuffer_m : register(b0) {
+  uint4 m[1];
+};
+static int counter = 0;
+int i() {
+  counter = (counter + 1);
+  return counter;
+}
+
+vector<float16_t, 4> tint_bitcast_to_f16(uint4 src) {
+  uint4 v = src;
+  uint4 mask = (65535u).xxxx;
+  uint4 shift = (16u).xxxx;
+  float4 t_low = f16tof32((v & mask));
+  float4 t_high = f16tof32(((v >> shift) & mask));
+  float16_t v_1 = float16_t(t_low.x);
+  float16_t v_2 = float16_t(t_high.x);
+  float16_t v_3 = float16_t(t_low.y);
+  return vector<float16_t, 4>(v_1, v_2, v_3, float16_t(t_high.y));
+}
+
+matrix<float16_t, 2, 3> v_4(uint start_byte_offset) {
+  vector<float16_t, 3> v_5 = tint_bitcast_to_f16(m[(start_byte_offset / 16u)]).xyz;
+  return matrix<float16_t, 2, 3>(v_5, tint_bitcast_to_f16(m[((8u + start_byte_offset) / 16u)]).xyz);
+}
+
+[numthreads(1, 1, 1)]
+void f() {
+  matrix<float16_t, 2, 3> l_m = v_4(0u);
+  vector<float16_t, 3> l_m_1 = tint_bitcast_to_f16(m[0u]).xyz;
+}
+
diff --git a/test/tint/buffer/uniform/std140/unnested/mat2x3_f16/static_index_via_ptr.wgsl.expected.ir.fxc.hlsl b/test/tint/buffer/uniform/std140/unnested/mat2x3_f16/static_index_via_ptr.wgsl.expected.ir.fxc.hlsl
index 3f437dc..a25ebbf 100644
--- a/test/tint/buffer/uniform/std140/unnested/mat2x3_f16/static_index_via_ptr.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/buffer/uniform/std140/unnested/mat2x3_f16/static_index_via_ptr.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,38 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Access
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+
+cbuffer cbuffer_m : register(b0) {
+  uint4 m[1];
+};
+static int counter = 0;
+int i() {
+  counter = (counter + 1);
+  return counter;
+}
+
+vector<float16_t, 4> tint_bitcast_to_f16(uint4 src) {
+  uint4 v = src;
+  uint4 mask = (65535u).xxxx;
+  uint4 shift = (16u).xxxx;
+  float4 t_low = f16tof32((v & mask));
+  float4 t_high = f16tof32(((v >> shift) & mask));
+  float16_t v_1 = float16_t(t_low.x);
+  float16_t v_2 = float16_t(t_high.x);
+  float16_t v_3 = float16_t(t_low.y);
+  return vector<float16_t, 4>(v_1, v_2, v_3, float16_t(t_high.y));
+}
+
+matrix<float16_t, 2, 3> v_4(uint start_byte_offset) {
+  vector<float16_t, 3> v_5 = tint_bitcast_to_f16(m[(start_byte_offset / 16u)]).xyz;
+  return matrix<float16_t, 2, 3>(v_5, tint_bitcast_to_f16(m[((8u + start_byte_offset) / 16u)]).xyz);
+}
+
+[numthreads(1, 1, 1)]
+void f() {
+  matrix<float16_t, 2, 3> l_m = v_4(0u);
+  vector<float16_t, 3> l_m_1 = tint_bitcast_to_f16(m[0u]).xyz;
+}
+
+FXC validation failure:
+c:\src\dawn\Shader@0x000001C34D6F6C50(11,8-16): error X3000: syntax error: unexpected token 'float16_t'
+
diff --git a/test/tint/buffer/uniform/std140/unnested/mat2x3_f16/to_builtin.wgsl.expected.ir.dxc.hlsl b/test/tint/buffer/uniform/std140/unnested/mat2x3_f16/to_builtin.wgsl.expected.ir.dxc.hlsl
index 3f437dc..a761a92 100644
--- a/test/tint/buffer/uniform/std140/unnested/mat2x3_f16/to_builtin.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/buffer/uniform/std140/unnested/mat2x3_f16/to_builtin.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,28 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Access
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+cbuffer cbuffer_u : register(b0) {
+  uint4 u[1];
+};
+vector<float16_t, 4> tint_bitcast_to_f16(uint4 src) {
+  uint4 v = src;
+  uint4 mask = (65535u).xxxx;
+  uint4 shift = (16u).xxxx;
+  float4 t_low = f16tof32((v & mask));
+  float4 t_high = f16tof32(((v >> shift) & mask));
+  float16_t v_1 = float16_t(t_low.x);
+  float16_t v_2 = float16_t(t_high.x);
+  float16_t v_3 = float16_t(t_low.y);
+  return vector<float16_t, 4>(v_1, v_2, v_3, float16_t(t_high.y));
+}
+
+matrix<float16_t, 2, 3> v_4(uint start_byte_offset) {
+  vector<float16_t, 3> v_5 = tint_bitcast_to_f16(u[(start_byte_offset / 16u)]).xyz;
+  return matrix<float16_t, 2, 3>(v_5, tint_bitcast_to_f16(u[((8u + start_byte_offset) / 16u)]).xyz);
+}
+
+[numthreads(1, 1, 1)]
+void f() {
+  matrix<float16_t, 3, 2> t = transpose(v_4(0u));
+  float16_t l = length(tint_bitcast_to_f16(u[0u]).xyz);
+  float16_t a = abs(tint_bitcast_to_f16(u[0u]).xyz.zxy[0u]);
+}
+
diff --git a/test/tint/buffer/uniform/std140/unnested/mat2x3_f16/to_builtin.wgsl.expected.ir.fxc.hlsl b/test/tint/buffer/uniform/std140/unnested/mat2x3_f16/to_builtin.wgsl.expected.ir.fxc.hlsl
index 3f437dc..49acfb8 100644
--- a/test/tint/buffer/uniform/std140/unnested/mat2x3_f16/to_builtin.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/buffer/uniform/std140/unnested/mat2x3_f16/to_builtin.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,33 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Access
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+
+cbuffer cbuffer_u : register(b0) {
+  uint4 u[1];
+};
+vector<float16_t, 4> tint_bitcast_to_f16(uint4 src) {
+  uint4 v = src;
+  uint4 mask = (65535u).xxxx;
+  uint4 shift = (16u).xxxx;
+  float4 t_low = f16tof32((v & mask));
+  float4 t_high = f16tof32(((v >> shift) & mask));
+  float16_t v_1 = float16_t(t_low.x);
+  float16_t v_2 = float16_t(t_high.x);
+  float16_t v_3 = float16_t(t_low.y);
+  return vector<float16_t, 4>(v_1, v_2, v_3, float16_t(t_high.y));
+}
+
+matrix<float16_t, 2, 3> v_4(uint start_byte_offset) {
+  vector<float16_t, 3> v_5 = tint_bitcast_to_f16(u[(start_byte_offset / 16u)]).xyz;
+  return matrix<float16_t, 2, 3>(v_5, tint_bitcast_to_f16(u[((8u + start_byte_offset) / 16u)]).xyz);
+}
+
+[numthreads(1, 1, 1)]
+void f() {
+  matrix<float16_t, 3, 2> t = transpose(v_4(0u));
+  float16_t l = length(tint_bitcast_to_f16(u[0u]).xyz);
+  float16_t a = abs(tint_bitcast_to_f16(u[0u]).xyz.zxy[0u]);
+}
+
+FXC validation failure:
+c:\src\dawn\Shader@0x0000021596BC19B0(5,8-16): error X3000: syntax error: unexpected token 'float16_t'
+
diff --git a/test/tint/buffer/uniform/std140/unnested/mat2x3_f16/to_fn.wgsl.expected.ir.dxc.hlsl b/test/tint/buffer/uniform/std140/unnested/mat2x3_f16/to_fn.wgsl.expected.ir.dxc.hlsl
index 3f437dc..dfce3b6 100644
--- a/test/tint/buffer/uniform/std140/unnested/mat2x3_f16/to_fn.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/buffer/uniform/std140/unnested/mat2x3_f16/to_fn.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,39 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Access
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+cbuffer cbuffer_u : register(b0) {
+  uint4 u[1];
+};
+void a(matrix<float16_t, 2, 3> m) {
+}
+
+void b(vector<float16_t, 3> v) {
+}
+
+void c(float16_t f) {
+}
+
+vector<float16_t, 4> tint_bitcast_to_f16(uint4 src) {
+  uint4 v = src;
+  uint4 mask = (65535u).xxxx;
+  uint4 shift = (16u).xxxx;
+  float4 t_low = f16tof32((v & mask));
+  float4 t_high = f16tof32(((v >> shift) & mask));
+  float16_t v_1 = float16_t(t_low.x);
+  float16_t v_2 = float16_t(t_high.x);
+  float16_t v_3 = float16_t(t_low.y);
+  return vector<float16_t, 4>(v_1, v_2, v_3, float16_t(t_high.y));
+}
+
+matrix<float16_t, 2, 3> v_4(uint start_byte_offset) {
+  vector<float16_t, 3> v_5 = tint_bitcast_to_f16(u[(start_byte_offset / 16u)]).xyz;
+  return matrix<float16_t, 2, 3>(v_5, tint_bitcast_to_f16(u[((8u + start_byte_offset) / 16u)]).xyz);
+}
+
+[numthreads(1, 1, 1)]
+void f() {
+  a(v_4(0u));
+  b(tint_bitcast_to_f16(u[0u]).xyz);
+  b(tint_bitcast_to_f16(u[0u]).xyz.zxy);
+  c(float16_t(f16tof32(u[0u].z)));
+  c(tint_bitcast_to_f16(u[0u]).xyz.zxy[0u]);
+}
+
diff --git a/test/tint/buffer/uniform/std140/unnested/mat2x3_f16/to_fn.wgsl.expected.ir.fxc.hlsl b/test/tint/buffer/uniform/std140/unnested/mat2x3_f16/to_fn.wgsl.expected.ir.fxc.hlsl
index 3f437dc..a3d9ad5 100644
--- a/test/tint/buffer/uniform/std140/unnested/mat2x3_f16/to_fn.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/buffer/uniform/std140/unnested/mat2x3_f16/to_fn.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,46 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Access
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+
+cbuffer cbuffer_u : register(b0) {
+  uint4 u[1];
+};
+void a(matrix<float16_t, 2, 3> m) {
+}
+
+void b(vector<float16_t, 3> v) {
+}
+
+void c(float16_t f) {
+}
+
+vector<float16_t, 4> tint_bitcast_to_f16(uint4 src) {
+  uint4 v = src;
+  uint4 mask = (65535u).xxxx;
+  uint4 shift = (16u).xxxx;
+  float4 t_low = f16tof32((v & mask));
+  float4 t_high = f16tof32(((v >> shift) & mask));
+  float16_t v_1 = float16_t(t_low.x);
+  float16_t v_2 = float16_t(t_high.x);
+  float16_t v_3 = float16_t(t_low.y);
+  return vector<float16_t, 4>(v_1, v_2, v_3, float16_t(t_high.y));
+}
+
+matrix<float16_t, 2, 3> v_4(uint start_byte_offset) {
+  vector<float16_t, 3> v_5 = tint_bitcast_to_f16(u[(start_byte_offset / 16u)]).xyz;
+  return matrix<float16_t, 2, 3>(v_5, tint_bitcast_to_f16(u[((8u + start_byte_offset) / 16u)]).xyz);
+}
+
+[numthreads(1, 1, 1)]
+void f() {
+  a(v_4(0u));
+  b(tint_bitcast_to_f16(u[0u]).xyz);
+  b(tint_bitcast_to_f16(u[0u]).xyz.zxy);
+  c(float16_t(f16tof32(u[0u].z)));
+  c(tint_bitcast_to_f16(u[0u]).xyz.zxy[0u]);
+}
+
+FXC validation failure:
+c:\src\dawn\Shader@0x0000016A687A3AD0(5,15-23): error X3000: syntax error: unexpected token 'float16_t'
+c:\src\dawn\Shader@0x0000016A687A3AD0(8,15-23): error X3000: syntax error: unexpected token 'float16_t'
+c:\src\dawn\Shader@0x0000016A687A3AD0(11,8-16): error X3000: unrecognized identifier 'float16_t'
+
diff --git a/test/tint/buffer/uniform/std140/unnested/mat2x3_f16/to_private.wgsl.expected.ir.dxc.hlsl b/test/tint/buffer/uniform/std140/unnested/mat2x3_f16/to_private.wgsl.expected.ir.dxc.hlsl
index 3f437dc..46aa383 100644
--- a/test/tint/buffer/uniform/std140/unnested/mat2x3_f16/to_private.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/buffer/uniform/std140/unnested/mat2x3_f16/to_private.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,30 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Access
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+cbuffer cbuffer_u : register(b0) {
+  uint4 u[1];
+};
+static matrix<float16_t, 2, 3> p = matrix<float16_t, 2, 3>((float16_t(0.0h)).xxx, (float16_t(0.0h)).xxx);
+vector<float16_t, 4> tint_bitcast_to_f16(uint4 src) {
+  uint4 v = src;
+  uint4 mask = (65535u).xxxx;
+  uint4 shift = (16u).xxxx;
+  float4 t_low = f16tof32((v & mask));
+  float4 t_high = f16tof32(((v >> shift) & mask));
+  float16_t v_1 = float16_t(t_low.x);
+  float16_t v_2 = float16_t(t_high.x);
+  float16_t v_3 = float16_t(t_low.y);
+  return vector<float16_t, 4>(v_1, v_2, v_3, float16_t(t_high.y));
+}
+
+matrix<float16_t, 2, 3> v_4(uint start_byte_offset) {
+  vector<float16_t, 3> v_5 = tint_bitcast_to_f16(u[(start_byte_offset / 16u)]).xyz;
+  return matrix<float16_t, 2, 3>(v_5, tint_bitcast_to_f16(u[((8u + start_byte_offset) / 16u)]).xyz);
+}
+
+[numthreads(1, 1, 1)]
+void f() {
+  p = v_4(0u);
+  p[1] = tint_bitcast_to_f16(u[0u]).xyz;
+  p[1] = tint_bitcast_to_f16(u[0u]).xyz.zxy;
+  p[0][1] = float16_t(f16tof32(u[0u].z));
+}
+
diff --git a/test/tint/buffer/uniform/std140/unnested/mat2x3_f16/to_private.wgsl.expected.ir.fxc.hlsl b/test/tint/buffer/uniform/std140/unnested/mat2x3_f16/to_private.wgsl.expected.ir.fxc.hlsl
index 3f437dc..5809788 100644
--- a/test/tint/buffer/uniform/std140/unnested/mat2x3_f16/to_private.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/buffer/uniform/std140/unnested/mat2x3_f16/to_private.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,35 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Access
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+
+cbuffer cbuffer_u : register(b0) {
+  uint4 u[1];
+};
+static matrix<float16_t, 2, 3> p = matrix<float16_t, 2, 3>((float16_t(0.0h)).xxx, (float16_t(0.0h)).xxx);
+vector<float16_t, 4> tint_bitcast_to_f16(uint4 src) {
+  uint4 v = src;
+  uint4 mask = (65535u).xxxx;
+  uint4 shift = (16u).xxxx;
+  float4 t_low = f16tof32((v & mask));
+  float4 t_high = f16tof32(((v >> shift) & mask));
+  float16_t v_1 = float16_t(t_low.x);
+  float16_t v_2 = float16_t(t_high.x);
+  float16_t v_3 = float16_t(t_low.y);
+  return vector<float16_t, 4>(v_1, v_2, v_3, float16_t(t_high.y));
+}
+
+matrix<float16_t, 2, 3> v_4(uint start_byte_offset) {
+  vector<float16_t, 3> v_5 = tint_bitcast_to_f16(u[(start_byte_offset / 16u)]).xyz;
+  return matrix<float16_t, 2, 3>(v_5, tint_bitcast_to_f16(u[((8u + start_byte_offset) / 16u)]).xyz);
+}
+
+[numthreads(1, 1, 1)]
+void f() {
+  p = v_4(0u);
+  p[1] = tint_bitcast_to_f16(u[0u]).xyz;
+  p[1] = tint_bitcast_to_f16(u[0u]).xyz.zxy;
+  p[0][1] = float16_t(f16tof32(u[0u].z));
+}
+
+FXC validation failure:
+c:\src\dawn\Shader@0x000001D320F19870(5,15-23): error X3000: syntax error: unexpected token 'float16_t'
+
diff --git a/test/tint/buffer/uniform/std140/unnested/mat2x3_f16/to_storage.wgsl.expected.ir.dxc.hlsl b/test/tint/buffer/uniform/std140/unnested/mat2x3_f16/to_storage.wgsl.expected.ir.dxc.hlsl
index 3f437dc..9126b0a 100644
--- a/test/tint/buffer/uniform/std140/unnested/mat2x3_f16/to_storage.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/buffer/uniform/std140/unnested/mat2x3_f16/to_storage.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,35 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Access
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+cbuffer cbuffer_u : register(b0) {
+  uint4 u[1];
+};
+RWByteAddressBuffer s : register(u1);
+vector<float16_t, 4> tint_bitcast_to_f16(uint4 src) {
+  uint4 v = src;
+  uint4 mask = (65535u).xxxx;
+  uint4 shift = (16u).xxxx;
+  float4 t_low = f16tof32((v & mask));
+  float4 t_high = f16tof32(((v >> shift) & mask));
+  float16_t v_1 = float16_t(t_low.x);
+  float16_t v_2 = float16_t(t_high.x);
+  float16_t v_3 = float16_t(t_low.y);
+  return vector<float16_t, 4>(v_1, v_2, v_3, float16_t(t_high.y));
+}
+
+void v_4(uint offset, matrix<float16_t, 2, 3> obj) {
+  s.Store<vector<float16_t, 3> >((offset + 0u), obj[0u]);
+  s.Store<vector<float16_t, 3> >((offset + 8u), obj[1u]);
+}
+
+matrix<float16_t, 2, 3> v_5(uint start_byte_offset) {
+  vector<float16_t, 3> v_6 = tint_bitcast_to_f16(u[(start_byte_offset / 16u)]).xyz;
+  return matrix<float16_t, 2, 3>(v_6, tint_bitcast_to_f16(u[((8u + start_byte_offset) / 16u)]).xyz);
+}
+
+[numthreads(1, 1, 1)]
+void f() {
+  v_4(0u, v_5(0u));
+  s.Store<vector<float16_t, 3> >(8u, tint_bitcast_to_f16(u[0u]).xyz);
+  s.Store<vector<float16_t, 3> >(8u, tint_bitcast_to_f16(u[0u]).xyz.zxy);
+  s.Store<float16_t>(2u, float16_t(f16tof32(u[0u].z)));
+}
+
diff --git a/test/tint/buffer/uniform/std140/unnested/mat2x3_f16/to_storage.wgsl.expected.ir.fxc.hlsl b/test/tint/buffer/uniform/std140/unnested/mat2x3_f16/to_storage.wgsl.expected.ir.fxc.hlsl
index 3f437dc..ef0d900 100644
--- a/test/tint/buffer/uniform/std140/unnested/mat2x3_f16/to_storage.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/buffer/uniform/std140/unnested/mat2x3_f16/to_storage.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,40 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Access
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+
+cbuffer cbuffer_u : register(b0) {
+  uint4 u[1];
+};
+RWByteAddressBuffer s : register(u1);
+vector<float16_t, 4> tint_bitcast_to_f16(uint4 src) {
+  uint4 v = src;
+  uint4 mask = (65535u).xxxx;
+  uint4 shift = (16u).xxxx;
+  float4 t_low = f16tof32((v & mask));
+  float4 t_high = f16tof32(((v >> shift) & mask));
+  float16_t v_1 = float16_t(t_low.x);
+  float16_t v_2 = float16_t(t_high.x);
+  float16_t v_3 = float16_t(t_low.y);
+  return vector<float16_t, 4>(v_1, v_2, v_3, float16_t(t_high.y));
+}
+
+void v_4(uint offset, matrix<float16_t, 2, 3> obj) {
+  s.Store<vector<float16_t, 3> >((offset + 0u), obj[0u]);
+  s.Store<vector<float16_t, 3> >((offset + 8u), obj[1u]);
+}
+
+matrix<float16_t, 2, 3> v_5(uint start_byte_offset) {
+  vector<float16_t, 3> v_6 = tint_bitcast_to_f16(u[(start_byte_offset / 16u)]).xyz;
+  return matrix<float16_t, 2, 3>(v_6, tint_bitcast_to_f16(u[((8u + start_byte_offset) / 16u)]).xyz);
+}
+
+[numthreads(1, 1, 1)]
+void f() {
+  v_4(0u, v_5(0u));
+  s.Store<vector<float16_t, 3> >(8u, tint_bitcast_to_f16(u[0u]).xyz);
+  s.Store<vector<float16_t, 3> >(8u, tint_bitcast_to_f16(u[0u]).xyz.zxy);
+  s.Store<float16_t>(2u, float16_t(f16tof32(u[0u].z)));
+}
+
+FXC validation failure:
+c:\src\dawn\Shader@0x0000020EA6613250(6,8-16): error X3000: syntax error: unexpected token 'float16_t'
+
diff --git a/test/tint/buffer/uniform/std140/unnested/mat2x3_f16/to_workgroup.wgsl.expected.ir.dxc.hlsl b/test/tint/buffer/uniform/std140/unnested/mat2x3_f16/to_workgroup.wgsl.expected.ir.dxc.hlsl
index 3f437dc..df300a0 100644
--- a/test/tint/buffer/uniform/std140/unnested/mat2x3_f16/to_workgroup.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/buffer/uniform/std140/unnested/mat2x3_f16/to_workgroup.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,42 @@
-SKIP: FAILED
+struct f_inputs {
+  uint tint_local_index : SV_GroupIndex;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Access
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+
+cbuffer cbuffer_u : register(b0) {
+  uint4 u[1];
+};
+groupshared matrix<float16_t, 2, 3> w;
+vector<float16_t, 4> tint_bitcast_to_f16(uint4 src) {
+  uint4 v = src;
+  uint4 mask = (65535u).xxxx;
+  uint4 shift = (16u).xxxx;
+  float4 t_low = f16tof32((v & mask));
+  float4 t_high = f16tof32(((v >> shift) & mask));
+  float16_t v_1 = float16_t(t_low.x);
+  float16_t v_2 = float16_t(t_high.x);
+  float16_t v_3 = float16_t(t_low.y);
+  return vector<float16_t, 4>(v_1, v_2, v_3, float16_t(t_high.y));
+}
+
+matrix<float16_t, 2, 3> v_4(uint start_byte_offset) {
+  vector<float16_t, 3> v_5 = tint_bitcast_to_f16(u[(start_byte_offset / 16u)]).xyz;
+  return matrix<float16_t, 2, 3>(v_5, tint_bitcast_to_f16(u[((8u + start_byte_offset) / 16u)]).xyz);
+}
+
+void f_inner(uint tint_local_index) {
+  if ((tint_local_index == 0u)) {
+    w = matrix<float16_t, 2, 3>((float16_t(0.0h)).xxx, (float16_t(0.0h)).xxx);
+  }
+  GroupMemoryBarrierWithGroupSync();
+  w = v_4(0u);
+  w[1] = tint_bitcast_to_f16(u[0u]).xyz;
+  w[1] = tint_bitcast_to_f16(u[0u]).xyz.zxy;
+  w[0][1] = float16_t(f16tof32(u[0u].z));
+}
+
+[numthreads(1, 1, 1)]
+void f(f_inputs inputs) {
+  f_inner(inputs.tint_local_index);
+}
+
diff --git a/test/tint/buffer/uniform/std140/unnested/mat2x3_f16/to_workgroup.wgsl.expected.ir.fxc.hlsl b/test/tint/buffer/uniform/std140/unnested/mat2x3_f16/to_workgroup.wgsl.expected.ir.fxc.hlsl
index 3f437dc..5b6edf4 100644
--- a/test/tint/buffer/uniform/std140/unnested/mat2x3_f16/to_workgroup.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/buffer/uniform/std140/unnested/mat2x3_f16/to_workgroup.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,47 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Access
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct f_inputs {
+  uint tint_local_index : SV_GroupIndex;
+};
+
+
+cbuffer cbuffer_u : register(b0) {
+  uint4 u[1];
+};
+groupshared matrix<float16_t, 2, 3> w;
+vector<float16_t, 4> tint_bitcast_to_f16(uint4 src) {
+  uint4 v = src;
+  uint4 mask = (65535u).xxxx;
+  uint4 shift = (16u).xxxx;
+  float4 t_low = f16tof32((v & mask));
+  float4 t_high = f16tof32(((v >> shift) & mask));
+  float16_t v_1 = float16_t(t_low.x);
+  float16_t v_2 = float16_t(t_high.x);
+  float16_t v_3 = float16_t(t_low.y);
+  return vector<float16_t, 4>(v_1, v_2, v_3, float16_t(t_high.y));
+}
+
+matrix<float16_t, 2, 3> v_4(uint start_byte_offset) {
+  vector<float16_t, 3> v_5 = tint_bitcast_to_f16(u[(start_byte_offset / 16u)]).xyz;
+  return matrix<float16_t, 2, 3>(v_5, tint_bitcast_to_f16(u[((8u + start_byte_offset) / 16u)]).xyz);
+}
+
+void f_inner(uint tint_local_index) {
+  if ((tint_local_index == 0u)) {
+    w = matrix<float16_t, 2, 3>((float16_t(0.0h)).xxx, (float16_t(0.0h)).xxx);
+  }
+  GroupMemoryBarrierWithGroupSync();
+  w = v_4(0u);
+  w[1] = tint_bitcast_to_f16(u[0u]).xyz;
+  w[1] = tint_bitcast_to_f16(u[0u]).xyz.zxy;
+  w[0][1] = float16_t(f16tof32(u[0u].z));
+}
+
+[numthreads(1, 1, 1)]
+void f(f_inputs inputs) {
+  f_inner(inputs.tint_local_index);
+}
+
+FXC validation failure:
+c:\src\dawn\Shader@0x000001D93BD91950(9,20-28): error X3000: syntax error: unexpected token 'float16_t'
+
diff --git a/test/tint/buffer/uniform/std140/unnested/mat2x3_f32/dynamic_index_via_ptr.wgsl.expected.ir.dxc.hlsl b/test/tint/buffer/uniform/std140/unnested/mat2x3_f32/dynamic_index_via_ptr.wgsl.expected.ir.dxc.hlsl
index 3f437dc..0f5ce8c 100644
--- a/test/tint/buffer/uniform/std140/unnested/mat2x3_f32/dynamic_index_via_ptr.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/buffer/uniform/std140/unnested/mat2x3_f32/dynamic_index_via_ptr.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,22 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Access
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+cbuffer cbuffer_m : register(b0) {
+  uint4 m[2];
+};
+static int counter = 0;
+int i() {
+  counter = (counter + 1);
+  return counter;
+}
+
+float2x3 v(uint start_byte_offset) {
+  float3 v_1 = asfloat(m[(start_byte_offset / 16u)].xyz);
+  return float2x3(v_1, asfloat(m[((16u + start_byte_offset) / 16u)].xyz));
+}
+
+[numthreads(1, 1, 1)]
+void f() {
+  uint v_2 = (16u * uint(i()));
+  float2x3 l_m = v(0u);
+  float3 l_m_i = asfloat(m[(v_2 / 16u)].xyz);
+}
+
diff --git a/test/tint/buffer/uniform/std140/unnested/mat2x3_f32/dynamic_index_via_ptr.wgsl.expected.ir.fxc.hlsl b/test/tint/buffer/uniform/std140/unnested/mat2x3_f32/dynamic_index_via_ptr.wgsl.expected.ir.fxc.hlsl
index 3f437dc..0f5ce8c 100644
--- a/test/tint/buffer/uniform/std140/unnested/mat2x3_f32/dynamic_index_via_ptr.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/buffer/uniform/std140/unnested/mat2x3_f32/dynamic_index_via_ptr.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,22 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Access
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+cbuffer cbuffer_m : register(b0) {
+  uint4 m[2];
+};
+static int counter = 0;
+int i() {
+  counter = (counter + 1);
+  return counter;
+}
+
+float2x3 v(uint start_byte_offset) {
+  float3 v_1 = asfloat(m[(start_byte_offset / 16u)].xyz);
+  return float2x3(v_1, asfloat(m[((16u + start_byte_offset) / 16u)].xyz));
+}
+
+[numthreads(1, 1, 1)]
+void f() {
+  uint v_2 = (16u * uint(i()));
+  float2x3 l_m = v(0u);
+  float3 l_m_i = asfloat(m[(v_2 / 16u)].xyz);
+}
+
diff --git a/test/tint/buffer/uniform/std140/unnested/mat2x3_f32/static_index_via_ptr.wgsl.expected.ir.dxc.hlsl b/test/tint/buffer/uniform/std140/unnested/mat2x3_f32/static_index_via_ptr.wgsl.expected.ir.dxc.hlsl
index 3f437dc..557f428 100644
--- a/test/tint/buffer/uniform/std140/unnested/mat2x3_f32/static_index_via_ptr.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/buffer/uniform/std140/unnested/mat2x3_f32/static_index_via_ptr.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,21 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Access
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+cbuffer cbuffer_m : register(b0) {
+  uint4 m[2];
+};
+static int counter = 0;
+int i() {
+  counter = (counter + 1);
+  return counter;
+}
+
+float2x3 v(uint start_byte_offset) {
+  float3 v_1 = asfloat(m[(start_byte_offset / 16u)].xyz);
+  return float2x3(v_1, asfloat(m[((16u + start_byte_offset) / 16u)].xyz));
+}
+
+[numthreads(1, 1, 1)]
+void f() {
+  float2x3 l_m = v(0u);
+  float3 l_m_1 = asfloat(m[1u].xyz);
+}
+
diff --git a/test/tint/buffer/uniform/std140/unnested/mat2x3_f32/static_index_via_ptr.wgsl.expected.ir.fxc.hlsl b/test/tint/buffer/uniform/std140/unnested/mat2x3_f32/static_index_via_ptr.wgsl.expected.ir.fxc.hlsl
index 3f437dc..557f428 100644
--- a/test/tint/buffer/uniform/std140/unnested/mat2x3_f32/static_index_via_ptr.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/buffer/uniform/std140/unnested/mat2x3_f32/static_index_via_ptr.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,21 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Access
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+cbuffer cbuffer_m : register(b0) {
+  uint4 m[2];
+};
+static int counter = 0;
+int i() {
+  counter = (counter + 1);
+  return counter;
+}
+
+float2x3 v(uint start_byte_offset) {
+  float3 v_1 = asfloat(m[(start_byte_offset / 16u)].xyz);
+  return float2x3(v_1, asfloat(m[((16u + start_byte_offset) / 16u)].xyz));
+}
+
+[numthreads(1, 1, 1)]
+void f() {
+  float2x3 l_m = v(0u);
+  float3 l_m_1 = asfloat(m[1u].xyz);
+}
+
diff --git a/test/tint/buffer/uniform/std140/unnested/mat2x3_f32/to_builtin.wgsl.expected.ir.dxc.hlsl b/test/tint/buffer/uniform/std140/unnested/mat2x3_f32/to_builtin.wgsl.expected.ir.dxc.hlsl
index 3f437dc..c9b9d85 100644
--- a/test/tint/buffer/uniform/std140/unnested/mat2x3_f32/to_builtin.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/buffer/uniform/std140/unnested/mat2x3_f32/to_builtin.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,16 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Access
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+cbuffer cbuffer_u : register(b0) {
+  uint4 u[2];
+};
+float2x3 v(uint start_byte_offset) {
+  float3 v_1 = asfloat(u[(start_byte_offset / 16u)].xyz);
+  return float2x3(v_1, asfloat(u[((16u + start_byte_offset) / 16u)].xyz));
+}
+
+[numthreads(1, 1, 1)]
+void f() {
+  float3x2 t = transpose(v(0u));
+  float l = length(asfloat(u[1u].xyz));
+  float a = abs(asfloat(u[0u].xyz).zxy[0u]);
+}
+
diff --git a/test/tint/buffer/uniform/std140/unnested/mat2x3_f32/to_builtin.wgsl.expected.ir.fxc.hlsl b/test/tint/buffer/uniform/std140/unnested/mat2x3_f32/to_builtin.wgsl.expected.ir.fxc.hlsl
index 3f437dc..c9b9d85 100644
--- a/test/tint/buffer/uniform/std140/unnested/mat2x3_f32/to_builtin.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/buffer/uniform/std140/unnested/mat2x3_f32/to_builtin.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,16 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Access
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+cbuffer cbuffer_u : register(b0) {
+  uint4 u[2];
+};
+float2x3 v(uint start_byte_offset) {
+  float3 v_1 = asfloat(u[(start_byte_offset / 16u)].xyz);
+  return float2x3(v_1, asfloat(u[((16u + start_byte_offset) / 16u)].xyz));
+}
+
+[numthreads(1, 1, 1)]
+void f() {
+  float3x2 t = transpose(v(0u));
+  float l = length(asfloat(u[1u].xyz));
+  float a = abs(asfloat(u[0u].xyz).zxy[0u]);
+}
+
diff --git a/test/tint/buffer/uniform/std140/unnested/mat2x3_f32/to_fn.wgsl.expected.ir.dxc.hlsl b/test/tint/buffer/uniform/std140/unnested/mat2x3_f32/to_fn.wgsl.expected.ir.dxc.hlsl
index 3f437dc..57b085b 100644
--- a/test/tint/buffer/uniform/std140/unnested/mat2x3_f32/to_fn.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/buffer/uniform/std140/unnested/mat2x3_f32/to_fn.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,27 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Access
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+cbuffer cbuffer_u : register(b0) {
+  uint4 u[2];
+};
+void a(float2x3 m) {
+}
+
+void b(float3 v) {
+}
+
+void c(float f) {
+}
+
+float2x3 v_1(uint start_byte_offset) {
+  float3 v_2 = asfloat(u[(start_byte_offset / 16u)].xyz);
+  return float2x3(v_2, asfloat(u[((16u + start_byte_offset) / 16u)].xyz));
+}
+
+[numthreads(1, 1, 1)]
+void f() {
+  a(v_1(0u));
+  b(asfloat(u[1u].xyz));
+  b(asfloat(u[1u].xyz).zxy);
+  c(asfloat(u[1u].x));
+  c(asfloat(u[1u].xyz).zxy[0u]);
+}
+
diff --git a/test/tint/buffer/uniform/std140/unnested/mat2x3_f32/to_fn.wgsl.expected.ir.fxc.hlsl b/test/tint/buffer/uniform/std140/unnested/mat2x3_f32/to_fn.wgsl.expected.ir.fxc.hlsl
index 3f437dc..57b085b 100644
--- a/test/tint/buffer/uniform/std140/unnested/mat2x3_f32/to_fn.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/buffer/uniform/std140/unnested/mat2x3_f32/to_fn.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,27 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Access
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+cbuffer cbuffer_u : register(b0) {
+  uint4 u[2];
+};
+void a(float2x3 m) {
+}
+
+void b(float3 v) {
+}
+
+void c(float f) {
+}
+
+float2x3 v_1(uint start_byte_offset) {
+  float3 v_2 = asfloat(u[(start_byte_offset / 16u)].xyz);
+  return float2x3(v_2, asfloat(u[((16u + start_byte_offset) / 16u)].xyz));
+}
+
+[numthreads(1, 1, 1)]
+void f() {
+  a(v_1(0u));
+  b(asfloat(u[1u].xyz));
+  b(asfloat(u[1u].xyz).zxy);
+  c(asfloat(u[1u].x));
+  c(asfloat(u[1u].xyz).zxy[0u]);
+}
+
diff --git a/test/tint/buffer/uniform/std140/unnested/mat2x3_f32/to_private.wgsl.expected.ir.dxc.hlsl b/test/tint/buffer/uniform/std140/unnested/mat2x3_f32/to_private.wgsl.expected.ir.dxc.hlsl
index 3f437dc..7445150 100644
--- a/test/tint/buffer/uniform/std140/unnested/mat2x3_f32/to_private.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/buffer/uniform/std140/unnested/mat2x3_f32/to_private.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,18 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Access
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+cbuffer cbuffer_u : register(b0) {
+  uint4 u[2];
+};
+static float2x3 p = float2x3((0.0f).xxx, (0.0f).xxx);
+float2x3 v(uint start_byte_offset) {
+  float3 v_1 = asfloat(u[(start_byte_offset / 16u)].xyz);
+  return float2x3(v_1, asfloat(u[((16u + start_byte_offset) / 16u)].xyz));
+}
+
+[numthreads(1, 1, 1)]
+void f() {
+  p = v(0u);
+  p[1] = asfloat(u[0u].xyz);
+  p[1] = asfloat(u[0u].xyz).zxy;
+  p[0][1] = asfloat(u[1u].x);
+}
+
diff --git a/test/tint/buffer/uniform/std140/unnested/mat2x3_f32/to_private.wgsl.expected.ir.fxc.hlsl b/test/tint/buffer/uniform/std140/unnested/mat2x3_f32/to_private.wgsl.expected.ir.fxc.hlsl
index 3f437dc..7445150 100644
--- a/test/tint/buffer/uniform/std140/unnested/mat2x3_f32/to_private.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/buffer/uniform/std140/unnested/mat2x3_f32/to_private.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,18 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Access
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+cbuffer cbuffer_u : register(b0) {
+  uint4 u[2];
+};
+static float2x3 p = float2x3((0.0f).xxx, (0.0f).xxx);
+float2x3 v(uint start_byte_offset) {
+  float3 v_1 = asfloat(u[(start_byte_offset / 16u)].xyz);
+  return float2x3(v_1, asfloat(u[((16u + start_byte_offset) / 16u)].xyz));
+}
+
+[numthreads(1, 1, 1)]
+void f() {
+  p = v(0u);
+  p[1] = asfloat(u[0u].xyz);
+  p[1] = asfloat(u[0u].xyz).zxy;
+  p[0][1] = asfloat(u[1u].x);
+}
+
diff --git a/test/tint/buffer/uniform/std140/unnested/mat2x3_f32/to_storage.wgsl.expected.ir.dxc.hlsl b/test/tint/buffer/uniform/std140/unnested/mat2x3_f32/to_storage.wgsl.expected.ir.dxc.hlsl
index 3f437dc..80bbb7e 100644
--- a/test/tint/buffer/uniform/std140/unnested/mat2x3_f32/to_storage.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/buffer/uniform/std140/unnested/mat2x3_f32/to_storage.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,23 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Access
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+cbuffer cbuffer_u : register(b0) {
+  uint4 u[2];
+};
+RWByteAddressBuffer s : register(u1);
+void v(uint offset, float2x3 obj) {
+  s.Store3((offset + 0u), asuint(obj[0u]));
+  s.Store3((offset + 16u), asuint(obj[1u]));
+}
+
+float2x3 v_1(uint start_byte_offset) {
+  float3 v_2 = asfloat(u[(start_byte_offset / 16u)].xyz);
+  return float2x3(v_2, asfloat(u[((16u + start_byte_offset) / 16u)].xyz));
+}
+
+[numthreads(1, 1, 1)]
+void f() {
+  v(0u, v_1(0u));
+  s.Store3(16u, asuint(asfloat(u[0u].xyz)));
+  s.Store3(16u, asuint(asfloat(u[0u].xyz).zxy));
+  s.Store(4u, asuint(asfloat(u[1u].x)));
+}
+
diff --git a/test/tint/buffer/uniform/std140/unnested/mat2x3_f32/to_storage.wgsl.expected.ir.fxc.hlsl b/test/tint/buffer/uniform/std140/unnested/mat2x3_f32/to_storage.wgsl.expected.ir.fxc.hlsl
index 3f437dc..80bbb7e 100644
--- a/test/tint/buffer/uniform/std140/unnested/mat2x3_f32/to_storage.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/buffer/uniform/std140/unnested/mat2x3_f32/to_storage.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,23 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Access
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+cbuffer cbuffer_u : register(b0) {
+  uint4 u[2];
+};
+RWByteAddressBuffer s : register(u1);
+void v(uint offset, float2x3 obj) {
+  s.Store3((offset + 0u), asuint(obj[0u]));
+  s.Store3((offset + 16u), asuint(obj[1u]));
+}
+
+float2x3 v_1(uint start_byte_offset) {
+  float3 v_2 = asfloat(u[(start_byte_offset / 16u)].xyz);
+  return float2x3(v_2, asfloat(u[((16u + start_byte_offset) / 16u)].xyz));
+}
+
+[numthreads(1, 1, 1)]
+void f() {
+  v(0u, v_1(0u));
+  s.Store3(16u, asuint(asfloat(u[0u].xyz)));
+  s.Store3(16u, asuint(asfloat(u[0u].xyz).zxy));
+  s.Store(4u, asuint(asfloat(u[1u].x)));
+}
+
diff --git a/test/tint/buffer/uniform/std140/unnested/mat2x3_f32/to_workgroup.wgsl.expected.ir.dxc.hlsl b/test/tint/buffer/uniform/std140/unnested/mat2x3_f32/to_workgroup.wgsl.expected.ir.dxc.hlsl
index 3f437dc..f22a37e 100644
--- a/test/tint/buffer/uniform/std140/unnested/mat2x3_f32/to_workgroup.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/buffer/uniform/std140/unnested/mat2x3_f32/to_workgroup.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,30 @@
-SKIP: FAILED
+struct f_inputs {
+  uint tint_local_index : SV_GroupIndex;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Access
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+
+cbuffer cbuffer_u : register(b0) {
+  uint4 u[2];
+};
+groupshared float2x3 w;
+float2x3 v(uint start_byte_offset) {
+  float3 v_1 = asfloat(u[(start_byte_offset / 16u)].xyz);
+  return float2x3(v_1, asfloat(u[((16u + start_byte_offset) / 16u)].xyz));
+}
+
+void f_inner(uint tint_local_index) {
+  if ((tint_local_index == 0u)) {
+    w = float2x3((0.0f).xxx, (0.0f).xxx);
+  }
+  GroupMemoryBarrierWithGroupSync();
+  w = v(0u);
+  w[1] = asfloat(u[0u].xyz);
+  w[1] = asfloat(u[0u].xyz).zxy;
+  w[0][1] = asfloat(u[1u].x);
+}
+
+[numthreads(1, 1, 1)]
+void f(f_inputs inputs) {
+  f_inner(inputs.tint_local_index);
+}
+
diff --git a/test/tint/buffer/uniform/std140/unnested/mat2x3_f32/to_workgroup.wgsl.expected.ir.fxc.hlsl b/test/tint/buffer/uniform/std140/unnested/mat2x3_f32/to_workgroup.wgsl.expected.ir.fxc.hlsl
index 3f437dc..f22a37e 100644
--- a/test/tint/buffer/uniform/std140/unnested/mat2x3_f32/to_workgroup.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/buffer/uniform/std140/unnested/mat2x3_f32/to_workgroup.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,30 @@
-SKIP: FAILED
+struct f_inputs {
+  uint tint_local_index : SV_GroupIndex;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Access
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+
+cbuffer cbuffer_u : register(b0) {
+  uint4 u[2];
+};
+groupshared float2x3 w;
+float2x3 v(uint start_byte_offset) {
+  float3 v_1 = asfloat(u[(start_byte_offset / 16u)].xyz);
+  return float2x3(v_1, asfloat(u[((16u + start_byte_offset) / 16u)].xyz));
+}
+
+void f_inner(uint tint_local_index) {
+  if ((tint_local_index == 0u)) {
+    w = float2x3((0.0f).xxx, (0.0f).xxx);
+  }
+  GroupMemoryBarrierWithGroupSync();
+  w = v(0u);
+  w[1] = asfloat(u[0u].xyz);
+  w[1] = asfloat(u[0u].xyz).zxy;
+  w[0][1] = asfloat(u[1u].x);
+}
+
+[numthreads(1, 1, 1)]
+void f(f_inputs inputs) {
+  f_inner(inputs.tint_local_index);
+}
+
diff --git a/test/tint/buffer/uniform/std140/unnested/mat2x4_f16/dynamic_index_via_ptr.wgsl.expected.ir.dxc.hlsl b/test/tint/buffer/uniform/std140/unnested/mat2x4_f16/dynamic_index_via_ptr.wgsl.expected.ir.dxc.hlsl
index 3f437dc..963d47f 100644
--- a/test/tint/buffer/uniform/std140/unnested/mat2x4_f16/dynamic_index_via_ptr.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/buffer/uniform/std140/unnested/mat2x4_f16/dynamic_index_via_ptr.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,34 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Access
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+cbuffer cbuffer_m : register(b0) {
+  uint4 m[1];
+};
+static int counter = 0;
+int i() {
+  counter = (counter + 1);
+  return counter;
+}
+
+vector<float16_t, 4> tint_bitcast_to_f16(uint4 src) {
+  uint4 v = src;
+  uint4 mask = (65535u).xxxx;
+  uint4 shift = (16u).xxxx;
+  float4 t_low = f16tof32((v & mask));
+  float4 t_high = f16tof32(((v >> shift) & mask));
+  float16_t v_1 = float16_t(t_low.x);
+  float16_t v_2 = float16_t(t_high.x);
+  float16_t v_3 = float16_t(t_low.y);
+  return vector<float16_t, 4>(v_1, v_2, v_3, float16_t(t_high.y));
+}
+
+matrix<float16_t, 2, 4> v_4(uint start_byte_offset) {
+  vector<float16_t, 4> v_5 = tint_bitcast_to_f16(m[(start_byte_offset / 16u)]);
+  return matrix<float16_t, 2, 4>(v_5, tint_bitcast_to_f16(m[((8u + start_byte_offset) / 16u)]));
+}
+
+[numthreads(1, 1, 1)]
+void f() {
+  uint v_6 = (8u * uint(i()));
+  matrix<float16_t, 2, 4> l_m = v_4(0u);
+  vector<float16_t, 4> l_m_i = tint_bitcast_to_f16(m[(v_6 / 16u)]);
+}
+
diff --git a/test/tint/buffer/uniform/std140/unnested/mat2x4_f16/dynamic_index_via_ptr.wgsl.expected.ir.fxc.hlsl b/test/tint/buffer/uniform/std140/unnested/mat2x4_f16/dynamic_index_via_ptr.wgsl.expected.ir.fxc.hlsl
index 3f437dc..00a4de2 100644
--- a/test/tint/buffer/uniform/std140/unnested/mat2x4_f16/dynamic_index_via_ptr.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/buffer/uniform/std140/unnested/mat2x4_f16/dynamic_index_via_ptr.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,39 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Access
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+
+cbuffer cbuffer_m : register(b0) {
+  uint4 m[1];
+};
+static int counter = 0;
+int i() {
+  counter = (counter + 1);
+  return counter;
+}
+
+vector<float16_t, 4> tint_bitcast_to_f16(uint4 src) {
+  uint4 v = src;
+  uint4 mask = (65535u).xxxx;
+  uint4 shift = (16u).xxxx;
+  float4 t_low = f16tof32((v & mask));
+  float4 t_high = f16tof32(((v >> shift) & mask));
+  float16_t v_1 = float16_t(t_low.x);
+  float16_t v_2 = float16_t(t_high.x);
+  float16_t v_3 = float16_t(t_low.y);
+  return vector<float16_t, 4>(v_1, v_2, v_3, float16_t(t_high.y));
+}
+
+matrix<float16_t, 2, 4> v_4(uint start_byte_offset) {
+  vector<float16_t, 4> v_5 = tint_bitcast_to_f16(m[(start_byte_offset / 16u)]);
+  return matrix<float16_t, 2, 4>(v_5, tint_bitcast_to_f16(m[((8u + start_byte_offset) / 16u)]));
+}
+
+[numthreads(1, 1, 1)]
+void f() {
+  uint v_6 = (8u * uint(i()));
+  matrix<float16_t, 2, 4> l_m = v_4(0u);
+  vector<float16_t, 4> l_m_i = tint_bitcast_to_f16(m[(v_6 / 16u)]);
+}
+
+FXC validation failure:
+c:\src\dawn\Shader@0x0000016C9BCA2480(11,8-16): error X3000: syntax error: unexpected token 'float16_t'
+
diff --git a/test/tint/buffer/uniform/std140/unnested/mat2x4_f16/static_index_via_ptr.wgsl.expected.ir.dxc.hlsl b/test/tint/buffer/uniform/std140/unnested/mat2x4_f16/static_index_via_ptr.wgsl.expected.ir.dxc.hlsl
index 3f437dc..895f83a 100644
--- a/test/tint/buffer/uniform/std140/unnested/mat2x4_f16/static_index_via_ptr.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/buffer/uniform/std140/unnested/mat2x4_f16/static_index_via_ptr.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,33 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Access
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+cbuffer cbuffer_m : register(b0) {
+  uint4 m[1];
+};
+static int counter = 0;
+int i() {
+  counter = (counter + 1);
+  return counter;
+}
+
+vector<float16_t, 4> tint_bitcast_to_f16(uint4 src) {
+  uint4 v = src;
+  uint4 mask = (65535u).xxxx;
+  uint4 shift = (16u).xxxx;
+  float4 t_low = f16tof32((v & mask));
+  float4 t_high = f16tof32(((v >> shift) & mask));
+  float16_t v_1 = float16_t(t_low.x);
+  float16_t v_2 = float16_t(t_high.x);
+  float16_t v_3 = float16_t(t_low.y);
+  return vector<float16_t, 4>(v_1, v_2, v_3, float16_t(t_high.y));
+}
+
+matrix<float16_t, 2, 4> v_4(uint start_byte_offset) {
+  vector<float16_t, 4> v_5 = tint_bitcast_to_f16(m[(start_byte_offset / 16u)]);
+  return matrix<float16_t, 2, 4>(v_5, tint_bitcast_to_f16(m[((8u + start_byte_offset) / 16u)]));
+}
+
+[numthreads(1, 1, 1)]
+void f() {
+  matrix<float16_t, 2, 4> l_m = v_4(0u);
+  vector<float16_t, 4> l_m_1 = tint_bitcast_to_f16(m[0u]);
+}
+
diff --git a/test/tint/buffer/uniform/std140/unnested/mat2x4_f16/static_index_via_ptr.wgsl.expected.ir.fxc.hlsl b/test/tint/buffer/uniform/std140/unnested/mat2x4_f16/static_index_via_ptr.wgsl.expected.ir.fxc.hlsl
index 3f437dc..71fc8f1 100644
--- a/test/tint/buffer/uniform/std140/unnested/mat2x4_f16/static_index_via_ptr.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/buffer/uniform/std140/unnested/mat2x4_f16/static_index_via_ptr.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,38 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Access
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+
+cbuffer cbuffer_m : register(b0) {
+  uint4 m[1];
+};
+static int counter = 0;
+int i() {
+  counter = (counter + 1);
+  return counter;
+}
+
+vector<float16_t, 4> tint_bitcast_to_f16(uint4 src) {
+  uint4 v = src;
+  uint4 mask = (65535u).xxxx;
+  uint4 shift = (16u).xxxx;
+  float4 t_low = f16tof32((v & mask));
+  float4 t_high = f16tof32(((v >> shift) & mask));
+  float16_t v_1 = float16_t(t_low.x);
+  float16_t v_2 = float16_t(t_high.x);
+  float16_t v_3 = float16_t(t_low.y);
+  return vector<float16_t, 4>(v_1, v_2, v_3, float16_t(t_high.y));
+}
+
+matrix<float16_t, 2, 4> v_4(uint start_byte_offset) {
+  vector<float16_t, 4> v_5 = tint_bitcast_to_f16(m[(start_byte_offset / 16u)]);
+  return matrix<float16_t, 2, 4>(v_5, tint_bitcast_to_f16(m[((8u + start_byte_offset) / 16u)]));
+}
+
+[numthreads(1, 1, 1)]
+void f() {
+  matrix<float16_t, 2, 4> l_m = v_4(0u);
+  vector<float16_t, 4> l_m_1 = tint_bitcast_to_f16(m[0u]);
+}
+
+FXC validation failure:
+c:\src\dawn\Shader@0x0000024134174C00(11,8-16): error X3000: syntax error: unexpected token 'float16_t'
+
diff --git a/test/tint/buffer/uniform/std140/unnested/mat2x4_f16/to_builtin.wgsl.expected.ir.dxc.hlsl b/test/tint/buffer/uniform/std140/unnested/mat2x4_f16/to_builtin.wgsl.expected.ir.dxc.hlsl
index 3f437dc..1f8b9db 100644
--- a/test/tint/buffer/uniform/std140/unnested/mat2x4_f16/to_builtin.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/buffer/uniform/std140/unnested/mat2x4_f16/to_builtin.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,28 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Access
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+cbuffer cbuffer_u : register(b0) {
+  uint4 u[1];
+};
+vector<float16_t, 4> tint_bitcast_to_f16(uint4 src) {
+  uint4 v = src;
+  uint4 mask = (65535u).xxxx;
+  uint4 shift = (16u).xxxx;
+  float4 t_low = f16tof32((v & mask));
+  float4 t_high = f16tof32(((v >> shift) & mask));
+  float16_t v_1 = float16_t(t_low.x);
+  float16_t v_2 = float16_t(t_high.x);
+  float16_t v_3 = float16_t(t_low.y);
+  return vector<float16_t, 4>(v_1, v_2, v_3, float16_t(t_high.y));
+}
+
+matrix<float16_t, 2, 4> v_4(uint start_byte_offset) {
+  vector<float16_t, 4> v_5 = tint_bitcast_to_f16(u[(start_byte_offset / 16u)]);
+  return matrix<float16_t, 2, 4>(v_5, tint_bitcast_to_f16(u[((8u + start_byte_offset) / 16u)]));
+}
+
+[numthreads(1, 1, 1)]
+void f() {
+  matrix<float16_t, 4, 2> t = transpose(v_4(0u));
+  float16_t l = length(tint_bitcast_to_f16(u[0u]));
+  float16_t a = abs(tint_bitcast_to_f16(u[0u]).ywxz[0u]);
+}
+
diff --git a/test/tint/buffer/uniform/std140/unnested/mat2x4_f16/to_builtin.wgsl.expected.ir.fxc.hlsl b/test/tint/buffer/uniform/std140/unnested/mat2x4_f16/to_builtin.wgsl.expected.ir.fxc.hlsl
index 3f437dc..1597c59 100644
--- a/test/tint/buffer/uniform/std140/unnested/mat2x4_f16/to_builtin.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/buffer/uniform/std140/unnested/mat2x4_f16/to_builtin.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,33 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Access
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+
+cbuffer cbuffer_u : register(b0) {
+  uint4 u[1];
+};
+vector<float16_t, 4> tint_bitcast_to_f16(uint4 src) {
+  uint4 v = src;
+  uint4 mask = (65535u).xxxx;
+  uint4 shift = (16u).xxxx;
+  float4 t_low = f16tof32((v & mask));
+  float4 t_high = f16tof32(((v >> shift) & mask));
+  float16_t v_1 = float16_t(t_low.x);
+  float16_t v_2 = float16_t(t_high.x);
+  float16_t v_3 = float16_t(t_low.y);
+  return vector<float16_t, 4>(v_1, v_2, v_3, float16_t(t_high.y));
+}
+
+matrix<float16_t, 2, 4> v_4(uint start_byte_offset) {
+  vector<float16_t, 4> v_5 = tint_bitcast_to_f16(u[(start_byte_offset / 16u)]);
+  return matrix<float16_t, 2, 4>(v_5, tint_bitcast_to_f16(u[((8u + start_byte_offset) / 16u)]));
+}
+
+[numthreads(1, 1, 1)]
+void f() {
+  matrix<float16_t, 4, 2> t = transpose(v_4(0u));
+  float16_t l = length(tint_bitcast_to_f16(u[0u]));
+  float16_t a = abs(tint_bitcast_to_f16(u[0u]).ywxz[0u]);
+}
+
+FXC validation failure:
+c:\src\dawn\Shader@0x000001F2AB175790(5,8-16): error X3000: syntax error: unexpected token 'float16_t'
+
diff --git a/test/tint/buffer/uniform/std140/unnested/mat2x4_f16/to_fn.wgsl.expected.ir.dxc.hlsl b/test/tint/buffer/uniform/std140/unnested/mat2x4_f16/to_fn.wgsl.expected.ir.dxc.hlsl
index 3f437dc..03d7089 100644
--- a/test/tint/buffer/uniform/std140/unnested/mat2x4_f16/to_fn.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/buffer/uniform/std140/unnested/mat2x4_f16/to_fn.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,39 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Access
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+cbuffer cbuffer_u : register(b0) {
+  uint4 u[1];
+};
+void a(matrix<float16_t, 2, 4> m) {
+}
+
+void b(vector<float16_t, 4> v) {
+}
+
+void c(float16_t f) {
+}
+
+vector<float16_t, 4> tint_bitcast_to_f16(uint4 src) {
+  uint4 v = src;
+  uint4 mask = (65535u).xxxx;
+  uint4 shift = (16u).xxxx;
+  float4 t_low = f16tof32((v & mask));
+  float4 t_high = f16tof32(((v >> shift) & mask));
+  float16_t v_1 = float16_t(t_low.x);
+  float16_t v_2 = float16_t(t_high.x);
+  float16_t v_3 = float16_t(t_low.y);
+  return vector<float16_t, 4>(v_1, v_2, v_3, float16_t(t_high.y));
+}
+
+matrix<float16_t, 2, 4> v_4(uint start_byte_offset) {
+  vector<float16_t, 4> v_5 = tint_bitcast_to_f16(u[(start_byte_offset / 16u)]);
+  return matrix<float16_t, 2, 4>(v_5, tint_bitcast_to_f16(u[((8u + start_byte_offset) / 16u)]));
+}
+
+[numthreads(1, 1, 1)]
+void f() {
+  a(v_4(0u));
+  b(tint_bitcast_to_f16(u[0u]));
+  b(tint_bitcast_to_f16(u[0u]).ywxz);
+  c(float16_t(f16tof32(u[0u].z)));
+  c(tint_bitcast_to_f16(u[0u]).ywxz[0u]);
+}
+
diff --git a/test/tint/buffer/uniform/std140/unnested/mat2x4_f16/to_fn.wgsl.expected.ir.fxc.hlsl b/test/tint/buffer/uniform/std140/unnested/mat2x4_f16/to_fn.wgsl.expected.ir.fxc.hlsl
index 3f437dc..277e76e 100644
--- a/test/tint/buffer/uniform/std140/unnested/mat2x4_f16/to_fn.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/buffer/uniform/std140/unnested/mat2x4_f16/to_fn.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,46 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Access
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+
+cbuffer cbuffer_u : register(b0) {
+  uint4 u[1];
+};
+void a(matrix<float16_t, 2, 4> m) {
+}
+
+void b(vector<float16_t, 4> v) {
+}
+
+void c(float16_t f) {
+}
+
+vector<float16_t, 4> tint_bitcast_to_f16(uint4 src) {
+  uint4 v = src;
+  uint4 mask = (65535u).xxxx;
+  uint4 shift = (16u).xxxx;
+  float4 t_low = f16tof32((v & mask));
+  float4 t_high = f16tof32(((v >> shift) & mask));
+  float16_t v_1 = float16_t(t_low.x);
+  float16_t v_2 = float16_t(t_high.x);
+  float16_t v_3 = float16_t(t_low.y);
+  return vector<float16_t, 4>(v_1, v_2, v_3, float16_t(t_high.y));
+}
+
+matrix<float16_t, 2, 4> v_4(uint start_byte_offset) {
+  vector<float16_t, 4> v_5 = tint_bitcast_to_f16(u[(start_byte_offset / 16u)]);
+  return matrix<float16_t, 2, 4>(v_5, tint_bitcast_to_f16(u[((8u + start_byte_offset) / 16u)]));
+}
+
+[numthreads(1, 1, 1)]
+void f() {
+  a(v_4(0u));
+  b(tint_bitcast_to_f16(u[0u]));
+  b(tint_bitcast_to_f16(u[0u]).ywxz);
+  c(float16_t(f16tof32(u[0u].z)));
+  c(tint_bitcast_to_f16(u[0u]).ywxz[0u]);
+}
+
+FXC validation failure:
+c:\src\dawn\Shader@0x0000022BF7AD1850(5,15-23): error X3000: syntax error: unexpected token 'float16_t'
+c:\src\dawn\Shader@0x0000022BF7AD1850(8,15-23): error X3000: syntax error: unexpected token 'float16_t'
+c:\src\dawn\Shader@0x0000022BF7AD1850(11,8-16): error X3000: unrecognized identifier 'float16_t'
+
diff --git a/test/tint/buffer/uniform/std140/unnested/mat2x4_f16/to_private.wgsl.expected.ir.dxc.hlsl b/test/tint/buffer/uniform/std140/unnested/mat2x4_f16/to_private.wgsl.expected.ir.dxc.hlsl
index 3f437dc..f8f5344 100644
--- a/test/tint/buffer/uniform/std140/unnested/mat2x4_f16/to_private.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/buffer/uniform/std140/unnested/mat2x4_f16/to_private.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,30 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Access
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+cbuffer cbuffer_u : register(b0) {
+  uint4 u[1];
+};
+static matrix<float16_t, 2, 4> p = matrix<float16_t, 2, 4>((float16_t(0.0h)).xxxx, (float16_t(0.0h)).xxxx);
+vector<float16_t, 4> tint_bitcast_to_f16(uint4 src) {
+  uint4 v = src;
+  uint4 mask = (65535u).xxxx;
+  uint4 shift = (16u).xxxx;
+  float4 t_low = f16tof32((v & mask));
+  float4 t_high = f16tof32(((v >> shift) & mask));
+  float16_t v_1 = float16_t(t_low.x);
+  float16_t v_2 = float16_t(t_high.x);
+  float16_t v_3 = float16_t(t_low.y);
+  return vector<float16_t, 4>(v_1, v_2, v_3, float16_t(t_high.y));
+}
+
+matrix<float16_t, 2, 4> v_4(uint start_byte_offset) {
+  vector<float16_t, 4> v_5 = tint_bitcast_to_f16(u[(start_byte_offset / 16u)]);
+  return matrix<float16_t, 2, 4>(v_5, tint_bitcast_to_f16(u[((8u + start_byte_offset) / 16u)]));
+}
+
+[numthreads(1, 1, 1)]
+void f() {
+  p = v_4(0u);
+  p[1] = tint_bitcast_to_f16(u[0u]);
+  p[1] = tint_bitcast_to_f16(u[0u]).ywxz;
+  p[0][1] = float16_t(f16tof32(u[0u].z));
+}
+
diff --git a/test/tint/buffer/uniform/std140/unnested/mat2x4_f16/to_private.wgsl.expected.ir.fxc.hlsl b/test/tint/buffer/uniform/std140/unnested/mat2x4_f16/to_private.wgsl.expected.ir.fxc.hlsl
index 3f437dc..cab40af 100644
--- a/test/tint/buffer/uniform/std140/unnested/mat2x4_f16/to_private.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/buffer/uniform/std140/unnested/mat2x4_f16/to_private.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,35 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Access
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+
+cbuffer cbuffer_u : register(b0) {
+  uint4 u[1];
+};
+static matrix<float16_t, 2, 4> p = matrix<float16_t, 2, 4>((float16_t(0.0h)).xxxx, (float16_t(0.0h)).xxxx);
+vector<float16_t, 4> tint_bitcast_to_f16(uint4 src) {
+  uint4 v = src;
+  uint4 mask = (65535u).xxxx;
+  uint4 shift = (16u).xxxx;
+  float4 t_low = f16tof32((v & mask));
+  float4 t_high = f16tof32(((v >> shift) & mask));
+  float16_t v_1 = float16_t(t_low.x);
+  float16_t v_2 = float16_t(t_high.x);
+  float16_t v_3 = float16_t(t_low.y);
+  return vector<float16_t, 4>(v_1, v_2, v_3, float16_t(t_high.y));
+}
+
+matrix<float16_t, 2, 4> v_4(uint start_byte_offset) {
+  vector<float16_t, 4> v_5 = tint_bitcast_to_f16(u[(start_byte_offset / 16u)]);
+  return matrix<float16_t, 2, 4>(v_5, tint_bitcast_to_f16(u[((8u + start_byte_offset) / 16u)]));
+}
+
+[numthreads(1, 1, 1)]
+void f() {
+  p = v_4(0u);
+  p[1] = tint_bitcast_to_f16(u[0u]);
+  p[1] = tint_bitcast_to_f16(u[0u]).ywxz;
+  p[0][1] = float16_t(f16tof32(u[0u].z));
+}
+
+FXC validation failure:
+c:\src\dawn\Shader@0x000001708CCE6E80(5,15-23): error X3000: syntax error: unexpected token 'float16_t'
+
diff --git a/test/tint/buffer/uniform/std140/unnested/mat2x4_f16/to_storage.wgsl.expected.ir.dxc.hlsl b/test/tint/buffer/uniform/std140/unnested/mat2x4_f16/to_storage.wgsl.expected.ir.dxc.hlsl
index 3f437dc..2ae30db 100644
--- a/test/tint/buffer/uniform/std140/unnested/mat2x4_f16/to_storage.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/buffer/uniform/std140/unnested/mat2x4_f16/to_storage.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,35 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Access
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+cbuffer cbuffer_u : register(b0) {
+  uint4 u[1];
+};
+RWByteAddressBuffer s : register(u1);
+vector<float16_t, 4> tint_bitcast_to_f16(uint4 src) {
+  uint4 v = src;
+  uint4 mask = (65535u).xxxx;
+  uint4 shift = (16u).xxxx;
+  float4 t_low = f16tof32((v & mask));
+  float4 t_high = f16tof32(((v >> shift) & mask));
+  float16_t v_1 = float16_t(t_low.x);
+  float16_t v_2 = float16_t(t_high.x);
+  float16_t v_3 = float16_t(t_low.y);
+  return vector<float16_t, 4>(v_1, v_2, v_3, float16_t(t_high.y));
+}
+
+void v_4(uint offset, matrix<float16_t, 2, 4> obj) {
+  s.Store<vector<float16_t, 4> >((offset + 0u), obj[0u]);
+  s.Store<vector<float16_t, 4> >((offset + 8u), obj[1u]);
+}
+
+matrix<float16_t, 2, 4> v_5(uint start_byte_offset) {
+  vector<float16_t, 4> v_6 = tint_bitcast_to_f16(u[(start_byte_offset / 16u)]);
+  return matrix<float16_t, 2, 4>(v_6, tint_bitcast_to_f16(u[((8u + start_byte_offset) / 16u)]));
+}
+
+[numthreads(1, 1, 1)]
+void f() {
+  v_4(0u, v_5(0u));
+  s.Store<vector<float16_t, 4> >(8u, tint_bitcast_to_f16(u[0u]));
+  s.Store<vector<float16_t, 4> >(8u, tint_bitcast_to_f16(u[0u]).ywxz);
+  s.Store<float16_t>(2u, float16_t(f16tof32(u[0u].z)));
+}
+
diff --git a/test/tint/buffer/uniform/std140/unnested/mat2x4_f16/to_storage.wgsl.expected.ir.fxc.hlsl b/test/tint/buffer/uniform/std140/unnested/mat2x4_f16/to_storage.wgsl.expected.ir.fxc.hlsl
index 3f437dc..baa524d 100644
--- a/test/tint/buffer/uniform/std140/unnested/mat2x4_f16/to_storage.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/buffer/uniform/std140/unnested/mat2x4_f16/to_storage.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,40 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Access
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+
+cbuffer cbuffer_u : register(b0) {
+  uint4 u[1];
+};
+RWByteAddressBuffer s : register(u1);
+vector<float16_t, 4> tint_bitcast_to_f16(uint4 src) {
+  uint4 v = src;
+  uint4 mask = (65535u).xxxx;
+  uint4 shift = (16u).xxxx;
+  float4 t_low = f16tof32((v & mask));
+  float4 t_high = f16tof32(((v >> shift) & mask));
+  float16_t v_1 = float16_t(t_low.x);
+  float16_t v_2 = float16_t(t_high.x);
+  float16_t v_3 = float16_t(t_low.y);
+  return vector<float16_t, 4>(v_1, v_2, v_3, float16_t(t_high.y));
+}
+
+void v_4(uint offset, matrix<float16_t, 2, 4> obj) {
+  s.Store<vector<float16_t, 4> >((offset + 0u), obj[0u]);
+  s.Store<vector<float16_t, 4> >((offset + 8u), obj[1u]);
+}
+
+matrix<float16_t, 2, 4> v_5(uint start_byte_offset) {
+  vector<float16_t, 4> v_6 = tint_bitcast_to_f16(u[(start_byte_offset / 16u)]);
+  return matrix<float16_t, 2, 4>(v_6, tint_bitcast_to_f16(u[((8u + start_byte_offset) / 16u)]));
+}
+
+[numthreads(1, 1, 1)]
+void f() {
+  v_4(0u, v_5(0u));
+  s.Store<vector<float16_t, 4> >(8u, tint_bitcast_to_f16(u[0u]));
+  s.Store<vector<float16_t, 4> >(8u, tint_bitcast_to_f16(u[0u]).ywxz);
+  s.Store<float16_t>(2u, float16_t(f16tof32(u[0u].z)));
+}
+
+FXC validation failure:
+c:\src\dawn\Shader@0x0000023B44791A80(6,8-16): error X3000: syntax error: unexpected token 'float16_t'
+
diff --git a/test/tint/buffer/uniform/std140/unnested/mat2x4_f16/to_workgroup.wgsl.expected.ir.dxc.hlsl b/test/tint/buffer/uniform/std140/unnested/mat2x4_f16/to_workgroup.wgsl.expected.ir.dxc.hlsl
index 3f437dc..f6ffd19 100644
--- a/test/tint/buffer/uniform/std140/unnested/mat2x4_f16/to_workgroup.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/buffer/uniform/std140/unnested/mat2x4_f16/to_workgroup.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,42 @@
-SKIP: FAILED
+struct f_inputs {
+  uint tint_local_index : SV_GroupIndex;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Access
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+
+cbuffer cbuffer_u : register(b0) {
+  uint4 u[1];
+};
+groupshared matrix<float16_t, 2, 4> w;
+vector<float16_t, 4> tint_bitcast_to_f16(uint4 src) {
+  uint4 v = src;
+  uint4 mask = (65535u).xxxx;
+  uint4 shift = (16u).xxxx;
+  float4 t_low = f16tof32((v & mask));
+  float4 t_high = f16tof32(((v >> shift) & mask));
+  float16_t v_1 = float16_t(t_low.x);
+  float16_t v_2 = float16_t(t_high.x);
+  float16_t v_3 = float16_t(t_low.y);
+  return vector<float16_t, 4>(v_1, v_2, v_3, float16_t(t_high.y));
+}
+
+matrix<float16_t, 2, 4> v_4(uint start_byte_offset) {
+  vector<float16_t, 4> v_5 = tint_bitcast_to_f16(u[(start_byte_offset / 16u)]);
+  return matrix<float16_t, 2, 4>(v_5, tint_bitcast_to_f16(u[((8u + start_byte_offset) / 16u)]));
+}
+
+void f_inner(uint tint_local_index) {
+  if ((tint_local_index == 0u)) {
+    w = matrix<float16_t, 2, 4>((float16_t(0.0h)).xxxx, (float16_t(0.0h)).xxxx);
+  }
+  GroupMemoryBarrierWithGroupSync();
+  w = v_4(0u);
+  w[1] = tint_bitcast_to_f16(u[0u]);
+  w[1] = tint_bitcast_to_f16(u[0u]).ywxz;
+  w[0][1] = float16_t(f16tof32(u[0u].z));
+}
+
+[numthreads(1, 1, 1)]
+void f(f_inputs inputs) {
+  f_inner(inputs.tint_local_index);
+}
+
diff --git a/test/tint/buffer/uniform/std140/unnested/mat2x4_f16/to_workgroup.wgsl.expected.ir.fxc.hlsl b/test/tint/buffer/uniform/std140/unnested/mat2x4_f16/to_workgroup.wgsl.expected.ir.fxc.hlsl
index 3f437dc..808b25c 100644
--- a/test/tint/buffer/uniform/std140/unnested/mat2x4_f16/to_workgroup.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/buffer/uniform/std140/unnested/mat2x4_f16/to_workgroup.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,47 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Access
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct f_inputs {
+  uint tint_local_index : SV_GroupIndex;
+};
+
+
+cbuffer cbuffer_u : register(b0) {
+  uint4 u[1];
+};
+groupshared matrix<float16_t, 2, 4> w;
+vector<float16_t, 4> tint_bitcast_to_f16(uint4 src) {
+  uint4 v = src;
+  uint4 mask = (65535u).xxxx;
+  uint4 shift = (16u).xxxx;
+  float4 t_low = f16tof32((v & mask));
+  float4 t_high = f16tof32(((v >> shift) & mask));
+  float16_t v_1 = float16_t(t_low.x);
+  float16_t v_2 = float16_t(t_high.x);
+  float16_t v_3 = float16_t(t_low.y);
+  return vector<float16_t, 4>(v_1, v_2, v_3, float16_t(t_high.y));
+}
+
+matrix<float16_t, 2, 4> v_4(uint start_byte_offset) {
+  vector<float16_t, 4> v_5 = tint_bitcast_to_f16(u[(start_byte_offset / 16u)]);
+  return matrix<float16_t, 2, 4>(v_5, tint_bitcast_to_f16(u[((8u + start_byte_offset) / 16u)]));
+}
+
+void f_inner(uint tint_local_index) {
+  if ((tint_local_index == 0u)) {
+    w = matrix<float16_t, 2, 4>((float16_t(0.0h)).xxxx, (float16_t(0.0h)).xxxx);
+  }
+  GroupMemoryBarrierWithGroupSync();
+  w = v_4(0u);
+  w[1] = tint_bitcast_to_f16(u[0u]);
+  w[1] = tint_bitcast_to_f16(u[0u]).ywxz;
+  w[0][1] = float16_t(f16tof32(u[0u].z));
+}
+
+[numthreads(1, 1, 1)]
+void f(f_inputs inputs) {
+  f_inner(inputs.tint_local_index);
+}
+
+FXC validation failure:
+c:\src\dawn\Shader@0x00000248A77D2900(9,20-28): error X3000: syntax error: unexpected token 'float16_t'
+
diff --git a/test/tint/buffer/uniform/std140/unnested/mat2x4_f32/dynamic_index_via_ptr.wgsl.expected.ir.dxc.hlsl b/test/tint/buffer/uniform/std140/unnested/mat2x4_f32/dynamic_index_via_ptr.wgsl.expected.ir.dxc.hlsl
index 3f437dc..5263501 100644
--- a/test/tint/buffer/uniform/std140/unnested/mat2x4_f32/dynamic_index_via_ptr.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/buffer/uniform/std140/unnested/mat2x4_f32/dynamic_index_via_ptr.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,22 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Access
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+cbuffer cbuffer_m : register(b0) {
+  uint4 m[2];
+};
+static int counter = 0;
+int i() {
+  counter = (counter + 1);
+  return counter;
+}
+
+float2x4 v(uint start_byte_offset) {
+  float4 v_1 = asfloat(m[(start_byte_offset / 16u)]);
+  return float2x4(v_1, asfloat(m[((16u + start_byte_offset) / 16u)]));
+}
+
+[numthreads(1, 1, 1)]
+void f() {
+  uint v_2 = (16u * uint(i()));
+  float2x4 l_m = v(0u);
+  float4 l_m_i = asfloat(m[(v_2 / 16u)]);
+}
+
diff --git a/test/tint/buffer/uniform/std140/unnested/mat2x4_f32/dynamic_index_via_ptr.wgsl.expected.ir.fxc.hlsl b/test/tint/buffer/uniform/std140/unnested/mat2x4_f32/dynamic_index_via_ptr.wgsl.expected.ir.fxc.hlsl
index 3f437dc..5263501 100644
--- a/test/tint/buffer/uniform/std140/unnested/mat2x4_f32/dynamic_index_via_ptr.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/buffer/uniform/std140/unnested/mat2x4_f32/dynamic_index_via_ptr.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,22 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Access
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+cbuffer cbuffer_m : register(b0) {
+  uint4 m[2];
+};
+static int counter = 0;
+int i() {
+  counter = (counter + 1);
+  return counter;
+}
+
+float2x4 v(uint start_byte_offset) {
+  float4 v_1 = asfloat(m[(start_byte_offset / 16u)]);
+  return float2x4(v_1, asfloat(m[((16u + start_byte_offset) / 16u)]));
+}
+
+[numthreads(1, 1, 1)]
+void f() {
+  uint v_2 = (16u * uint(i()));
+  float2x4 l_m = v(0u);
+  float4 l_m_i = asfloat(m[(v_2 / 16u)]);
+}
+
diff --git a/test/tint/buffer/uniform/std140/unnested/mat2x4_f32/static_index_via_ptr.wgsl.expected.ir.dxc.hlsl b/test/tint/buffer/uniform/std140/unnested/mat2x4_f32/static_index_via_ptr.wgsl.expected.ir.dxc.hlsl
index 3f437dc..90c7ff9 100644
--- a/test/tint/buffer/uniform/std140/unnested/mat2x4_f32/static_index_via_ptr.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/buffer/uniform/std140/unnested/mat2x4_f32/static_index_via_ptr.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,21 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Access
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+cbuffer cbuffer_m : register(b0) {
+  uint4 m[2];
+};
+static int counter = 0;
+int i() {
+  counter = (counter + 1);
+  return counter;
+}
+
+float2x4 v(uint start_byte_offset) {
+  float4 v_1 = asfloat(m[(start_byte_offset / 16u)]);
+  return float2x4(v_1, asfloat(m[((16u + start_byte_offset) / 16u)]));
+}
+
+[numthreads(1, 1, 1)]
+void f() {
+  float2x4 l_m = v(0u);
+  float4 l_m_1 = asfloat(m[1u]);
+}
+
diff --git a/test/tint/buffer/uniform/std140/unnested/mat2x4_f32/static_index_via_ptr.wgsl.expected.ir.fxc.hlsl b/test/tint/buffer/uniform/std140/unnested/mat2x4_f32/static_index_via_ptr.wgsl.expected.ir.fxc.hlsl
index 3f437dc..90c7ff9 100644
--- a/test/tint/buffer/uniform/std140/unnested/mat2x4_f32/static_index_via_ptr.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/buffer/uniform/std140/unnested/mat2x4_f32/static_index_via_ptr.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,21 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Access
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+cbuffer cbuffer_m : register(b0) {
+  uint4 m[2];
+};
+static int counter = 0;
+int i() {
+  counter = (counter + 1);
+  return counter;
+}
+
+float2x4 v(uint start_byte_offset) {
+  float4 v_1 = asfloat(m[(start_byte_offset / 16u)]);
+  return float2x4(v_1, asfloat(m[((16u + start_byte_offset) / 16u)]));
+}
+
+[numthreads(1, 1, 1)]
+void f() {
+  float2x4 l_m = v(0u);
+  float4 l_m_1 = asfloat(m[1u]);
+}
+
diff --git a/test/tint/buffer/uniform/std140/unnested/mat2x4_f32/to_builtin.wgsl.expected.ir.dxc.hlsl b/test/tint/buffer/uniform/std140/unnested/mat2x4_f32/to_builtin.wgsl.expected.ir.dxc.hlsl
index 3f437dc..9666077 100644
--- a/test/tint/buffer/uniform/std140/unnested/mat2x4_f32/to_builtin.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/buffer/uniform/std140/unnested/mat2x4_f32/to_builtin.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,16 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Access
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+cbuffer cbuffer_u : register(b0) {
+  uint4 u[2];
+};
+float2x4 v(uint start_byte_offset) {
+  float4 v_1 = asfloat(u[(start_byte_offset / 16u)]);
+  return float2x4(v_1, asfloat(u[((16u + start_byte_offset) / 16u)]));
+}
+
+[numthreads(1, 1, 1)]
+void f() {
+  float4x2 t = transpose(v(0u));
+  float l = length(asfloat(u[1u]));
+  float a = abs(asfloat(u[0u]).ywxz[0u]);
+}
+
diff --git a/test/tint/buffer/uniform/std140/unnested/mat2x4_f32/to_builtin.wgsl.expected.ir.fxc.hlsl b/test/tint/buffer/uniform/std140/unnested/mat2x4_f32/to_builtin.wgsl.expected.ir.fxc.hlsl
index 3f437dc..9666077 100644
--- a/test/tint/buffer/uniform/std140/unnested/mat2x4_f32/to_builtin.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/buffer/uniform/std140/unnested/mat2x4_f32/to_builtin.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,16 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Access
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+cbuffer cbuffer_u : register(b0) {
+  uint4 u[2];
+};
+float2x4 v(uint start_byte_offset) {
+  float4 v_1 = asfloat(u[(start_byte_offset / 16u)]);
+  return float2x4(v_1, asfloat(u[((16u + start_byte_offset) / 16u)]));
+}
+
+[numthreads(1, 1, 1)]
+void f() {
+  float4x2 t = transpose(v(0u));
+  float l = length(asfloat(u[1u]));
+  float a = abs(asfloat(u[0u]).ywxz[0u]);
+}
+
diff --git a/test/tint/buffer/uniform/std140/unnested/mat2x4_f32/to_fn.wgsl.expected.ir.dxc.hlsl b/test/tint/buffer/uniform/std140/unnested/mat2x4_f32/to_fn.wgsl.expected.ir.dxc.hlsl
index 3f437dc..2d83851 100644
--- a/test/tint/buffer/uniform/std140/unnested/mat2x4_f32/to_fn.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/buffer/uniform/std140/unnested/mat2x4_f32/to_fn.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,27 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Access
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+cbuffer cbuffer_u : register(b0) {
+  uint4 u[2];
+};
+void a(float2x4 m) {
+}
+
+void b(float4 v) {
+}
+
+void c(float f) {
+}
+
+float2x4 v_1(uint start_byte_offset) {
+  float4 v_2 = asfloat(u[(start_byte_offset / 16u)]);
+  return float2x4(v_2, asfloat(u[((16u + start_byte_offset) / 16u)]));
+}
+
+[numthreads(1, 1, 1)]
+void f() {
+  a(v_1(0u));
+  b(asfloat(u[1u]));
+  b(asfloat(u[1u]).ywxz);
+  c(asfloat(u[1u].x));
+  c(asfloat(u[1u]).ywxz[0u]);
+}
+
diff --git a/test/tint/buffer/uniform/std140/unnested/mat2x4_f32/to_fn.wgsl.expected.ir.fxc.hlsl b/test/tint/buffer/uniform/std140/unnested/mat2x4_f32/to_fn.wgsl.expected.ir.fxc.hlsl
index 3f437dc..2d83851 100644
--- a/test/tint/buffer/uniform/std140/unnested/mat2x4_f32/to_fn.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/buffer/uniform/std140/unnested/mat2x4_f32/to_fn.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,27 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Access
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+cbuffer cbuffer_u : register(b0) {
+  uint4 u[2];
+};
+void a(float2x4 m) {
+}
+
+void b(float4 v) {
+}
+
+void c(float f) {
+}
+
+float2x4 v_1(uint start_byte_offset) {
+  float4 v_2 = asfloat(u[(start_byte_offset / 16u)]);
+  return float2x4(v_2, asfloat(u[((16u + start_byte_offset) / 16u)]));
+}
+
+[numthreads(1, 1, 1)]
+void f() {
+  a(v_1(0u));
+  b(asfloat(u[1u]));
+  b(asfloat(u[1u]).ywxz);
+  c(asfloat(u[1u].x));
+  c(asfloat(u[1u]).ywxz[0u]);
+}
+
diff --git a/test/tint/buffer/uniform/std140/unnested/mat2x4_f32/to_private.wgsl.expected.ir.dxc.hlsl b/test/tint/buffer/uniform/std140/unnested/mat2x4_f32/to_private.wgsl.expected.ir.dxc.hlsl
index 3f437dc..e23fc2e 100644
--- a/test/tint/buffer/uniform/std140/unnested/mat2x4_f32/to_private.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/buffer/uniform/std140/unnested/mat2x4_f32/to_private.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,18 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Access
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+cbuffer cbuffer_u : register(b0) {
+  uint4 u[2];
+};
+static float2x4 p = float2x4((0.0f).xxxx, (0.0f).xxxx);
+float2x4 v(uint start_byte_offset) {
+  float4 v_1 = asfloat(u[(start_byte_offset / 16u)]);
+  return float2x4(v_1, asfloat(u[((16u + start_byte_offset) / 16u)]));
+}
+
+[numthreads(1, 1, 1)]
+void f() {
+  p = v(0u);
+  p[1] = asfloat(u[0u]);
+  p[1] = asfloat(u[0u]).ywxz;
+  p[0][1] = asfloat(u[1u].x);
+}
+
diff --git a/test/tint/buffer/uniform/std140/unnested/mat2x4_f32/to_private.wgsl.expected.ir.fxc.hlsl b/test/tint/buffer/uniform/std140/unnested/mat2x4_f32/to_private.wgsl.expected.ir.fxc.hlsl
index 3f437dc..e23fc2e 100644
--- a/test/tint/buffer/uniform/std140/unnested/mat2x4_f32/to_private.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/buffer/uniform/std140/unnested/mat2x4_f32/to_private.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,18 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Access
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+cbuffer cbuffer_u : register(b0) {
+  uint4 u[2];
+};
+static float2x4 p = float2x4((0.0f).xxxx, (0.0f).xxxx);
+float2x4 v(uint start_byte_offset) {
+  float4 v_1 = asfloat(u[(start_byte_offset / 16u)]);
+  return float2x4(v_1, asfloat(u[((16u + start_byte_offset) / 16u)]));
+}
+
+[numthreads(1, 1, 1)]
+void f() {
+  p = v(0u);
+  p[1] = asfloat(u[0u]);
+  p[1] = asfloat(u[0u]).ywxz;
+  p[0][1] = asfloat(u[1u].x);
+}
+
diff --git a/test/tint/buffer/uniform/std140/unnested/mat2x4_f32/to_storage.wgsl.expected.ir.dxc.hlsl b/test/tint/buffer/uniform/std140/unnested/mat2x4_f32/to_storage.wgsl.expected.ir.dxc.hlsl
index 3f437dc..86540e2 100644
--- a/test/tint/buffer/uniform/std140/unnested/mat2x4_f32/to_storage.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/buffer/uniform/std140/unnested/mat2x4_f32/to_storage.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,23 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Access
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+cbuffer cbuffer_u : register(b0) {
+  uint4 u[2];
+};
+RWByteAddressBuffer s : register(u1);
+void v(uint offset, float2x4 obj) {
+  s.Store4((offset + 0u), asuint(obj[0u]));
+  s.Store4((offset + 16u), asuint(obj[1u]));
+}
+
+float2x4 v_1(uint start_byte_offset) {
+  float4 v_2 = asfloat(u[(start_byte_offset / 16u)]);
+  return float2x4(v_2, asfloat(u[((16u + start_byte_offset) / 16u)]));
+}
+
+[numthreads(1, 1, 1)]
+void f() {
+  v(0u, v_1(0u));
+  s.Store4(16u, asuint(asfloat(u[0u])));
+  s.Store4(16u, asuint(asfloat(u[0u]).ywxz));
+  s.Store(4u, asuint(asfloat(u[1u].x)));
+}
+
diff --git a/test/tint/buffer/uniform/std140/unnested/mat2x4_f32/to_storage.wgsl.expected.ir.fxc.hlsl b/test/tint/buffer/uniform/std140/unnested/mat2x4_f32/to_storage.wgsl.expected.ir.fxc.hlsl
index 3f437dc..86540e2 100644
--- a/test/tint/buffer/uniform/std140/unnested/mat2x4_f32/to_storage.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/buffer/uniform/std140/unnested/mat2x4_f32/to_storage.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,23 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Access
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+cbuffer cbuffer_u : register(b0) {
+  uint4 u[2];
+};
+RWByteAddressBuffer s : register(u1);
+void v(uint offset, float2x4 obj) {
+  s.Store4((offset + 0u), asuint(obj[0u]));
+  s.Store4((offset + 16u), asuint(obj[1u]));
+}
+
+float2x4 v_1(uint start_byte_offset) {
+  float4 v_2 = asfloat(u[(start_byte_offset / 16u)]);
+  return float2x4(v_2, asfloat(u[((16u + start_byte_offset) / 16u)]));
+}
+
+[numthreads(1, 1, 1)]
+void f() {
+  v(0u, v_1(0u));
+  s.Store4(16u, asuint(asfloat(u[0u])));
+  s.Store4(16u, asuint(asfloat(u[0u]).ywxz));
+  s.Store(4u, asuint(asfloat(u[1u].x)));
+}
+
diff --git a/test/tint/buffer/uniform/std140/unnested/mat2x4_f32/to_workgroup.wgsl.expected.ir.dxc.hlsl b/test/tint/buffer/uniform/std140/unnested/mat2x4_f32/to_workgroup.wgsl.expected.ir.dxc.hlsl
index 3f437dc..cc53263 100644
--- a/test/tint/buffer/uniform/std140/unnested/mat2x4_f32/to_workgroup.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/buffer/uniform/std140/unnested/mat2x4_f32/to_workgroup.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,30 @@
-SKIP: FAILED
+struct f_inputs {
+  uint tint_local_index : SV_GroupIndex;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Access
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+
+cbuffer cbuffer_u : register(b0) {
+  uint4 u[2];
+};
+groupshared float2x4 w;
+float2x4 v(uint start_byte_offset) {
+  float4 v_1 = asfloat(u[(start_byte_offset / 16u)]);
+  return float2x4(v_1, asfloat(u[((16u + start_byte_offset) / 16u)]));
+}
+
+void f_inner(uint tint_local_index) {
+  if ((tint_local_index == 0u)) {
+    w = float2x4((0.0f).xxxx, (0.0f).xxxx);
+  }
+  GroupMemoryBarrierWithGroupSync();
+  w = v(0u);
+  w[1] = asfloat(u[0u]);
+  w[1] = asfloat(u[0u]).ywxz;
+  w[0][1] = asfloat(u[1u].x);
+}
+
+[numthreads(1, 1, 1)]
+void f(f_inputs inputs) {
+  f_inner(inputs.tint_local_index);
+}
+
diff --git a/test/tint/buffer/uniform/std140/unnested/mat2x4_f32/to_workgroup.wgsl.expected.ir.fxc.hlsl b/test/tint/buffer/uniform/std140/unnested/mat2x4_f32/to_workgroup.wgsl.expected.ir.fxc.hlsl
index 3f437dc..cc53263 100644
--- a/test/tint/buffer/uniform/std140/unnested/mat2x4_f32/to_workgroup.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/buffer/uniform/std140/unnested/mat2x4_f32/to_workgroup.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,30 @@
-SKIP: FAILED
+struct f_inputs {
+  uint tint_local_index : SV_GroupIndex;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Access
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+
+cbuffer cbuffer_u : register(b0) {
+  uint4 u[2];
+};
+groupshared float2x4 w;
+float2x4 v(uint start_byte_offset) {
+  float4 v_1 = asfloat(u[(start_byte_offset / 16u)]);
+  return float2x4(v_1, asfloat(u[((16u + start_byte_offset) / 16u)]));
+}
+
+void f_inner(uint tint_local_index) {
+  if ((tint_local_index == 0u)) {
+    w = float2x4((0.0f).xxxx, (0.0f).xxxx);
+  }
+  GroupMemoryBarrierWithGroupSync();
+  w = v(0u);
+  w[1] = asfloat(u[0u]);
+  w[1] = asfloat(u[0u]).ywxz;
+  w[0][1] = asfloat(u[1u].x);
+}
+
+[numthreads(1, 1, 1)]
+void f(f_inputs inputs) {
+  f_inner(inputs.tint_local_index);
+}
+
diff --git a/test/tint/buffer/uniform/std140/unnested/mat3x2_f16/dynamic_index_via_ptr.wgsl.expected.ir.dxc.hlsl b/test/tint/buffer/uniform/std140/unnested/mat3x2_f16/dynamic_index_via_ptr.wgsl.expected.ir.dxc.hlsl
index 3f437dc..9d884f8 100644
--- a/test/tint/buffer/uniform/std140/unnested/mat3x2_f16/dynamic_index_via_ptr.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/buffer/uniform/std140/unnested/mat3x2_f16/dynamic_index_via_ptr.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,35 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Access
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+cbuffer cbuffer_m : register(b0) {
+  uint4 m[1];
+};
+static int counter = 0;
+int i() {
+  counter = (counter + 1);
+  return counter;
+}
+
+vector<float16_t, 2> tint_bitcast_to_f16(uint src) {
+  uint v = src;
+  float t_low = f16tof32((v & 65535u));
+  float t_high = f16tof32(((v >> 16u) & 65535u));
+  float16_t v_1 = float16_t(t_low);
+  return vector<float16_t, 2>(v_1, float16_t(t_high));
+}
+
+matrix<float16_t, 3, 2> v_2(uint start_byte_offset) {
+  uint4 v_3 = m[(start_byte_offset / 16u)];
+  vector<float16_t, 2> v_4 = tint_bitcast_to_f16((((((start_byte_offset % 16u) / 4u) == 2u)) ? (v_3.z) : (v_3.x)));
+  uint4 v_5 = m[((4u + start_byte_offset) / 16u)];
+  vector<float16_t, 2> v_6 = tint_bitcast_to_f16(((((((4u + start_byte_offset) % 16u) / 4u) == 2u)) ? (v_5.z) : (v_5.x)));
+  uint4 v_7 = m[((8u + start_byte_offset) / 16u)];
+  return matrix<float16_t, 3, 2>(v_4, v_6, tint_bitcast_to_f16(((((((8u + start_byte_offset) % 16u) / 4u) == 2u)) ? (v_7.z) : (v_7.x))));
+}
+
+[numthreads(1, 1, 1)]
+void f() {
+  uint v_8 = (4u * uint(i()));
+  matrix<float16_t, 3, 2> l_m = v_2(0u);
+  uint4 v_9 = m[(v_8 / 16u)];
+  vector<float16_t, 2> l_m_i = tint_bitcast_to_f16((((((v_8 % 16u) / 4u) == 2u)) ? (v_9.z) : (v_9.x)));
+}
+
diff --git a/test/tint/buffer/uniform/std140/unnested/mat3x2_f16/dynamic_index_via_ptr.wgsl.expected.ir.fxc.hlsl b/test/tint/buffer/uniform/std140/unnested/mat3x2_f16/dynamic_index_via_ptr.wgsl.expected.ir.fxc.hlsl
index 3f437dc..04b8b10 100644
--- a/test/tint/buffer/uniform/std140/unnested/mat3x2_f16/dynamic_index_via_ptr.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/buffer/uniform/std140/unnested/mat3x2_f16/dynamic_index_via_ptr.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,40 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Access
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+
+cbuffer cbuffer_m : register(b0) {
+  uint4 m[1];
+};
+static int counter = 0;
+int i() {
+  counter = (counter + 1);
+  return counter;
+}
+
+vector<float16_t, 2> tint_bitcast_to_f16(uint src) {
+  uint v = src;
+  float t_low = f16tof32((v & 65535u));
+  float t_high = f16tof32(((v >> 16u) & 65535u));
+  float16_t v_1 = float16_t(t_low);
+  return vector<float16_t, 2>(v_1, float16_t(t_high));
+}
+
+matrix<float16_t, 3, 2> v_2(uint start_byte_offset) {
+  uint4 v_3 = m[(start_byte_offset / 16u)];
+  vector<float16_t, 2> v_4 = tint_bitcast_to_f16((((((start_byte_offset % 16u) / 4u) == 2u)) ? (v_3.z) : (v_3.x)));
+  uint4 v_5 = m[((4u + start_byte_offset) / 16u)];
+  vector<float16_t, 2> v_6 = tint_bitcast_to_f16(((((((4u + start_byte_offset) % 16u) / 4u) == 2u)) ? (v_5.z) : (v_5.x)));
+  uint4 v_7 = m[((8u + start_byte_offset) / 16u)];
+  return matrix<float16_t, 3, 2>(v_4, v_6, tint_bitcast_to_f16(((((((8u + start_byte_offset) % 16u) / 4u) == 2u)) ? (v_7.z) : (v_7.x))));
+}
+
+[numthreads(1, 1, 1)]
+void f() {
+  uint v_8 = (4u * uint(i()));
+  matrix<float16_t, 3, 2> l_m = v_2(0u);
+  uint4 v_9 = m[(v_8 / 16u)];
+  vector<float16_t, 2> l_m_i = tint_bitcast_to_f16((((((v_8 % 16u) / 4u) == 2u)) ? (v_9.z) : (v_9.x)));
+}
+
+FXC validation failure:
+c:\src\dawn\Shader@0x000001D443201D20(11,8-16): error X3000: syntax error: unexpected token 'float16_t'
+
diff --git a/test/tint/buffer/uniform/std140/unnested/mat3x2_f16/static_index_via_ptr.wgsl.expected.ir.dxc.hlsl b/test/tint/buffer/uniform/std140/unnested/mat3x2_f16/static_index_via_ptr.wgsl.expected.ir.dxc.hlsl
index 3f437dc..7d66a4e 100644
--- a/test/tint/buffer/uniform/std140/unnested/mat3x2_f16/static_index_via_ptr.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/buffer/uniform/std140/unnested/mat3x2_f16/static_index_via_ptr.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,33 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Access
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+cbuffer cbuffer_m : register(b0) {
+  uint4 m[1];
+};
+static int counter = 0;
+int i() {
+  counter = (counter + 1);
+  return counter;
+}
+
+vector<float16_t, 2> tint_bitcast_to_f16(uint src) {
+  uint v = src;
+  float t_low = f16tof32((v & 65535u));
+  float t_high = f16tof32(((v >> 16u) & 65535u));
+  float16_t v_1 = float16_t(t_low);
+  return vector<float16_t, 2>(v_1, float16_t(t_high));
+}
+
+matrix<float16_t, 3, 2> v_2(uint start_byte_offset) {
+  uint4 v_3 = m[(start_byte_offset / 16u)];
+  vector<float16_t, 2> v_4 = tint_bitcast_to_f16((((((start_byte_offset % 16u) / 4u) == 2u)) ? (v_3.z) : (v_3.x)));
+  uint4 v_5 = m[((4u + start_byte_offset) / 16u)];
+  vector<float16_t, 2> v_6 = tint_bitcast_to_f16(((((((4u + start_byte_offset) % 16u) / 4u) == 2u)) ? (v_5.z) : (v_5.x)));
+  uint4 v_7 = m[((8u + start_byte_offset) / 16u)];
+  return matrix<float16_t, 3, 2>(v_4, v_6, tint_bitcast_to_f16(((((((8u + start_byte_offset) % 16u) / 4u) == 2u)) ? (v_7.z) : (v_7.x))));
+}
+
+[numthreads(1, 1, 1)]
+void f() {
+  matrix<float16_t, 3, 2> l_m = v_2(0u);
+  vector<float16_t, 2> l_m_1 = tint_bitcast_to_f16(m[0u].x);
+}
+
diff --git a/test/tint/buffer/uniform/std140/unnested/mat3x2_f16/static_index_via_ptr.wgsl.expected.ir.fxc.hlsl b/test/tint/buffer/uniform/std140/unnested/mat3x2_f16/static_index_via_ptr.wgsl.expected.ir.fxc.hlsl
index 3f437dc..5d51bcb 100644
--- a/test/tint/buffer/uniform/std140/unnested/mat3x2_f16/static_index_via_ptr.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/buffer/uniform/std140/unnested/mat3x2_f16/static_index_via_ptr.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,38 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Access
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+
+cbuffer cbuffer_m : register(b0) {
+  uint4 m[1];
+};
+static int counter = 0;
+int i() {
+  counter = (counter + 1);
+  return counter;
+}
+
+vector<float16_t, 2> tint_bitcast_to_f16(uint src) {
+  uint v = src;
+  float t_low = f16tof32((v & 65535u));
+  float t_high = f16tof32(((v >> 16u) & 65535u));
+  float16_t v_1 = float16_t(t_low);
+  return vector<float16_t, 2>(v_1, float16_t(t_high));
+}
+
+matrix<float16_t, 3, 2> v_2(uint start_byte_offset) {
+  uint4 v_3 = m[(start_byte_offset / 16u)];
+  vector<float16_t, 2> v_4 = tint_bitcast_to_f16((((((start_byte_offset % 16u) / 4u) == 2u)) ? (v_3.z) : (v_3.x)));
+  uint4 v_5 = m[((4u + start_byte_offset) / 16u)];
+  vector<float16_t, 2> v_6 = tint_bitcast_to_f16(((((((4u + start_byte_offset) % 16u) / 4u) == 2u)) ? (v_5.z) : (v_5.x)));
+  uint4 v_7 = m[((8u + start_byte_offset) / 16u)];
+  return matrix<float16_t, 3, 2>(v_4, v_6, tint_bitcast_to_f16(((((((8u + start_byte_offset) % 16u) / 4u) == 2u)) ? (v_7.z) : (v_7.x))));
+}
+
+[numthreads(1, 1, 1)]
+void f() {
+  matrix<float16_t, 3, 2> l_m = v_2(0u);
+  vector<float16_t, 2> l_m_1 = tint_bitcast_to_f16(m[0u].x);
+}
+
+FXC validation failure:
+c:\src\dawn\Shader@0x000001A78F2F56F0(11,8-16): error X3000: syntax error: unexpected token 'float16_t'
+
diff --git a/test/tint/buffer/uniform/std140/unnested/mat3x2_f16/to_builtin.wgsl.expected.ir.dxc.hlsl b/test/tint/buffer/uniform/std140/unnested/mat3x2_f16/to_builtin.wgsl.expected.ir.dxc.hlsl
index 3f437dc..5763730 100644
--- a/test/tint/buffer/uniform/std140/unnested/mat3x2_f16/to_builtin.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/buffer/uniform/std140/unnested/mat3x2_f16/to_builtin.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,28 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Access
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+cbuffer cbuffer_u : register(b0) {
+  uint4 u[1];
+};
+vector<float16_t, 2> tint_bitcast_to_f16(uint src) {
+  uint v = src;
+  float t_low = f16tof32((v & 65535u));
+  float t_high = f16tof32(((v >> 16u) & 65535u));
+  float16_t v_1 = float16_t(t_low);
+  return vector<float16_t, 2>(v_1, float16_t(t_high));
+}
+
+matrix<float16_t, 3, 2> v_2(uint start_byte_offset) {
+  uint4 v_3 = u[(start_byte_offset / 16u)];
+  vector<float16_t, 2> v_4 = tint_bitcast_to_f16((((((start_byte_offset % 16u) / 4u) == 2u)) ? (v_3.z) : (v_3.x)));
+  uint4 v_5 = u[((4u + start_byte_offset) / 16u)];
+  vector<float16_t, 2> v_6 = tint_bitcast_to_f16(((((((4u + start_byte_offset) % 16u) / 4u) == 2u)) ? (v_5.z) : (v_5.x)));
+  uint4 v_7 = u[((8u + start_byte_offset) / 16u)];
+  return matrix<float16_t, 3, 2>(v_4, v_6, tint_bitcast_to_f16(((((((8u + start_byte_offset) % 16u) / 4u) == 2u)) ? (v_7.z) : (v_7.x))));
+}
+
+[numthreads(1, 1, 1)]
+void f() {
+  matrix<float16_t, 2, 3> t = transpose(v_2(0u));
+  float16_t l = length(tint_bitcast_to_f16(u[0u].x));
+  float16_t a = abs(tint_bitcast_to_f16(u[0u].x).yx[0u]);
+}
+
diff --git a/test/tint/buffer/uniform/std140/unnested/mat3x2_f16/to_builtin.wgsl.expected.ir.fxc.hlsl b/test/tint/buffer/uniform/std140/unnested/mat3x2_f16/to_builtin.wgsl.expected.ir.fxc.hlsl
index 3f437dc..6b814ff 100644
--- a/test/tint/buffer/uniform/std140/unnested/mat3x2_f16/to_builtin.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/buffer/uniform/std140/unnested/mat3x2_f16/to_builtin.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,33 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Access
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+
+cbuffer cbuffer_u : register(b0) {
+  uint4 u[1];
+};
+vector<float16_t, 2> tint_bitcast_to_f16(uint src) {
+  uint v = src;
+  float t_low = f16tof32((v & 65535u));
+  float t_high = f16tof32(((v >> 16u) & 65535u));
+  float16_t v_1 = float16_t(t_low);
+  return vector<float16_t, 2>(v_1, float16_t(t_high));
+}
+
+matrix<float16_t, 3, 2> v_2(uint start_byte_offset) {
+  uint4 v_3 = u[(start_byte_offset / 16u)];
+  vector<float16_t, 2> v_4 = tint_bitcast_to_f16((((((start_byte_offset % 16u) / 4u) == 2u)) ? (v_3.z) : (v_3.x)));
+  uint4 v_5 = u[((4u + start_byte_offset) / 16u)];
+  vector<float16_t, 2> v_6 = tint_bitcast_to_f16(((((((4u + start_byte_offset) % 16u) / 4u) == 2u)) ? (v_5.z) : (v_5.x)));
+  uint4 v_7 = u[((8u + start_byte_offset) / 16u)];
+  return matrix<float16_t, 3, 2>(v_4, v_6, tint_bitcast_to_f16(((((((8u + start_byte_offset) % 16u) / 4u) == 2u)) ? (v_7.z) : (v_7.x))));
+}
+
+[numthreads(1, 1, 1)]
+void f() {
+  matrix<float16_t, 2, 3> t = transpose(v_2(0u));
+  float16_t l = length(tint_bitcast_to_f16(u[0u].x));
+  float16_t a = abs(tint_bitcast_to_f16(u[0u].x).yx[0u]);
+}
+
+FXC validation failure:
+c:\src\dawn\Shader@0x000002C4E6CDE2C0(5,8-16): error X3000: syntax error: unexpected token 'float16_t'
+
diff --git a/test/tint/buffer/uniform/std140/unnested/mat3x2_f16/to_fn.wgsl.expected.ir.dxc.hlsl b/test/tint/buffer/uniform/std140/unnested/mat3x2_f16/to_fn.wgsl.expected.ir.dxc.hlsl
index 3f437dc..bbe4b76 100644
--- a/test/tint/buffer/uniform/std140/unnested/mat3x2_f16/to_fn.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/buffer/uniform/std140/unnested/mat3x2_f16/to_fn.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,39 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Access
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+cbuffer cbuffer_u : register(b0) {
+  uint4 u[1];
+};
+void a(matrix<float16_t, 3, 2> m) {
+}
+
+void b(vector<float16_t, 2> v) {
+}
+
+void c(float16_t f) {
+}
+
+vector<float16_t, 2> tint_bitcast_to_f16(uint src) {
+  uint v = src;
+  float t_low = f16tof32((v & 65535u));
+  float t_high = f16tof32(((v >> 16u) & 65535u));
+  float16_t v_1 = float16_t(t_low);
+  return vector<float16_t, 2>(v_1, float16_t(t_high));
+}
+
+matrix<float16_t, 3, 2> v_2(uint start_byte_offset) {
+  uint4 v_3 = u[(start_byte_offset / 16u)];
+  vector<float16_t, 2> v_4 = tint_bitcast_to_f16((((((start_byte_offset % 16u) / 4u) == 2u)) ? (v_3.z) : (v_3.x)));
+  uint4 v_5 = u[((4u + start_byte_offset) / 16u)];
+  vector<float16_t, 2> v_6 = tint_bitcast_to_f16(((((((4u + start_byte_offset) % 16u) / 4u) == 2u)) ? (v_5.z) : (v_5.x)));
+  uint4 v_7 = u[((8u + start_byte_offset) / 16u)];
+  return matrix<float16_t, 3, 2>(v_4, v_6, tint_bitcast_to_f16(((((((8u + start_byte_offset) % 16u) / 4u) == 2u)) ? (v_7.z) : (v_7.x))));
+}
+
+[numthreads(1, 1, 1)]
+void f() {
+  a(v_2(0u));
+  b(tint_bitcast_to_f16(u[0u].x));
+  b(tint_bitcast_to_f16(u[0u].x).yx);
+  c(float16_t(f16tof32(u[0u].y)));
+  c(tint_bitcast_to_f16(u[0u].x).yx[0u]);
+}
+
diff --git a/test/tint/buffer/uniform/std140/unnested/mat3x2_f16/to_fn.wgsl.expected.ir.fxc.hlsl b/test/tint/buffer/uniform/std140/unnested/mat3x2_f16/to_fn.wgsl.expected.ir.fxc.hlsl
index 3f437dc..74e74c3 100644
--- a/test/tint/buffer/uniform/std140/unnested/mat3x2_f16/to_fn.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/buffer/uniform/std140/unnested/mat3x2_f16/to_fn.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,46 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Access
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+
+cbuffer cbuffer_u : register(b0) {
+  uint4 u[1];
+};
+void a(matrix<float16_t, 3, 2> m) {
+}
+
+void b(vector<float16_t, 2> v) {
+}
+
+void c(float16_t f) {
+}
+
+vector<float16_t, 2> tint_bitcast_to_f16(uint src) {
+  uint v = src;
+  float t_low = f16tof32((v & 65535u));
+  float t_high = f16tof32(((v >> 16u) & 65535u));
+  float16_t v_1 = float16_t(t_low);
+  return vector<float16_t, 2>(v_1, float16_t(t_high));
+}
+
+matrix<float16_t, 3, 2> v_2(uint start_byte_offset) {
+  uint4 v_3 = u[(start_byte_offset / 16u)];
+  vector<float16_t, 2> v_4 = tint_bitcast_to_f16((((((start_byte_offset % 16u) / 4u) == 2u)) ? (v_3.z) : (v_3.x)));
+  uint4 v_5 = u[((4u + start_byte_offset) / 16u)];
+  vector<float16_t, 2> v_6 = tint_bitcast_to_f16(((((((4u + start_byte_offset) % 16u) / 4u) == 2u)) ? (v_5.z) : (v_5.x)));
+  uint4 v_7 = u[((8u + start_byte_offset) / 16u)];
+  return matrix<float16_t, 3, 2>(v_4, v_6, tint_bitcast_to_f16(((((((8u + start_byte_offset) % 16u) / 4u) == 2u)) ? (v_7.z) : (v_7.x))));
+}
+
+[numthreads(1, 1, 1)]
+void f() {
+  a(v_2(0u));
+  b(tint_bitcast_to_f16(u[0u].x));
+  b(tint_bitcast_to_f16(u[0u].x).yx);
+  c(float16_t(f16tof32(u[0u].y)));
+  c(tint_bitcast_to_f16(u[0u].x).yx[0u]);
+}
+
+FXC validation failure:
+c:\src\dawn\Shader@0x00000148D7A74F60(5,15-23): error X3000: syntax error: unexpected token 'float16_t'
+c:\src\dawn\Shader@0x00000148D7A74F60(8,15-23): error X3000: syntax error: unexpected token 'float16_t'
+c:\src\dawn\Shader@0x00000148D7A74F60(11,8-16): error X3000: unrecognized identifier 'float16_t'
+
diff --git a/test/tint/buffer/uniform/std140/unnested/mat3x2_f16/to_private.wgsl.expected.ir.dxc.hlsl b/test/tint/buffer/uniform/std140/unnested/mat3x2_f16/to_private.wgsl.expected.ir.dxc.hlsl
index 3f437dc..15457a4 100644
--- a/test/tint/buffer/uniform/std140/unnested/mat3x2_f16/to_private.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/buffer/uniform/std140/unnested/mat3x2_f16/to_private.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,30 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Access
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+cbuffer cbuffer_u : register(b0) {
+  uint4 u[1];
+};
+static matrix<float16_t, 3, 2> p = matrix<float16_t, 3, 2>((float16_t(0.0h)).xx, (float16_t(0.0h)).xx, (float16_t(0.0h)).xx);
+vector<float16_t, 2> tint_bitcast_to_f16(uint src) {
+  uint v = src;
+  float t_low = f16tof32((v & 65535u));
+  float t_high = f16tof32(((v >> 16u) & 65535u));
+  float16_t v_1 = float16_t(t_low);
+  return vector<float16_t, 2>(v_1, float16_t(t_high));
+}
+
+matrix<float16_t, 3, 2> v_2(uint start_byte_offset) {
+  uint4 v_3 = u[(start_byte_offset / 16u)];
+  vector<float16_t, 2> v_4 = tint_bitcast_to_f16((((((start_byte_offset % 16u) / 4u) == 2u)) ? (v_3.z) : (v_3.x)));
+  uint4 v_5 = u[((4u + start_byte_offset) / 16u)];
+  vector<float16_t, 2> v_6 = tint_bitcast_to_f16(((((((4u + start_byte_offset) % 16u) / 4u) == 2u)) ? (v_5.z) : (v_5.x)));
+  uint4 v_7 = u[((8u + start_byte_offset) / 16u)];
+  return matrix<float16_t, 3, 2>(v_4, v_6, tint_bitcast_to_f16(((((((8u + start_byte_offset) % 16u) / 4u) == 2u)) ? (v_7.z) : (v_7.x))));
+}
+
+[numthreads(1, 1, 1)]
+void f() {
+  p = v_2(0u);
+  p[1] = tint_bitcast_to_f16(u[0u].x);
+  p[1] = tint_bitcast_to_f16(u[0u].x).yx;
+  p[0][1] = float16_t(f16tof32(u[0u].y));
+}
+
diff --git a/test/tint/buffer/uniform/std140/unnested/mat3x2_f16/to_private.wgsl.expected.ir.fxc.hlsl b/test/tint/buffer/uniform/std140/unnested/mat3x2_f16/to_private.wgsl.expected.ir.fxc.hlsl
index 3f437dc..885857b 100644
--- a/test/tint/buffer/uniform/std140/unnested/mat3x2_f16/to_private.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/buffer/uniform/std140/unnested/mat3x2_f16/to_private.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,35 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Access
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+
+cbuffer cbuffer_u : register(b0) {
+  uint4 u[1];
+};
+static matrix<float16_t, 3, 2> p = matrix<float16_t, 3, 2>((float16_t(0.0h)).xx, (float16_t(0.0h)).xx, (float16_t(0.0h)).xx);
+vector<float16_t, 2> tint_bitcast_to_f16(uint src) {
+  uint v = src;
+  float t_low = f16tof32((v & 65535u));
+  float t_high = f16tof32(((v >> 16u) & 65535u));
+  float16_t v_1 = float16_t(t_low);
+  return vector<float16_t, 2>(v_1, float16_t(t_high));
+}
+
+matrix<float16_t, 3, 2> v_2(uint start_byte_offset) {
+  uint4 v_3 = u[(start_byte_offset / 16u)];
+  vector<float16_t, 2> v_4 = tint_bitcast_to_f16((((((start_byte_offset % 16u) / 4u) == 2u)) ? (v_3.z) : (v_3.x)));
+  uint4 v_5 = u[((4u + start_byte_offset) / 16u)];
+  vector<float16_t, 2> v_6 = tint_bitcast_to_f16(((((((4u + start_byte_offset) % 16u) / 4u) == 2u)) ? (v_5.z) : (v_5.x)));
+  uint4 v_7 = u[((8u + start_byte_offset) / 16u)];
+  return matrix<float16_t, 3, 2>(v_4, v_6, tint_bitcast_to_f16(((((((8u + start_byte_offset) % 16u) / 4u) == 2u)) ? (v_7.z) : (v_7.x))));
+}
+
+[numthreads(1, 1, 1)]
+void f() {
+  p = v_2(0u);
+  p[1] = tint_bitcast_to_f16(u[0u].x);
+  p[1] = tint_bitcast_to_f16(u[0u].x).yx;
+  p[0][1] = float16_t(f16tof32(u[0u].y));
+}
+
+FXC validation failure:
+c:\src\dawn\Shader@0x000001FFCEAA39A0(5,15-23): error X3000: syntax error: unexpected token 'float16_t'
+
diff --git a/test/tint/buffer/uniform/std140/unnested/mat3x2_f16/to_storage.wgsl.expected.ir.dxc.hlsl b/test/tint/buffer/uniform/std140/unnested/mat3x2_f16/to_storage.wgsl.expected.ir.dxc.hlsl
index 3f437dc..9c794b5 100644
--- a/test/tint/buffer/uniform/std140/unnested/mat3x2_f16/to_storage.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/buffer/uniform/std140/unnested/mat3x2_f16/to_storage.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,36 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Access
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+cbuffer cbuffer_u : register(b0) {
+  uint4 u[1];
+};
+RWByteAddressBuffer s : register(u1);
+vector<float16_t, 2> tint_bitcast_to_f16(uint src) {
+  uint v = src;
+  float t_low = f16tof32((v & 65535u));
+  float t_high = f16tof32(((v >> 16u) & 65535u));
+  float16_t v_1 = float16_t(t_low);
+  return vector<float16_t, 2>(v_1, float16_t(t_high));
+}
+
+void v_2(uint offset, matrix<float16_t, 3, 2> obj) {
+  s.Store<vector<float16_t, 2> >((offset + 0u), obj[0u]);
+  s.Store<vector<float16_t, 2> >((offset + 4u), obj[1u]);
+  s.Store<vector<float16_t, 2> >((offset + 8u), obj[2u]);
+}
+
+matrix<float16_t, 3, 2> v_3(uint start_byte_offset) {
+  uint4 v_4 = u[(start_byte_offset / 16u)];
+  vector<float16_t, 2> v_5 = tint_bitcast_to_f16((((((start_byte_offset % 16u) / 4u) == 2u)) ? (v_4.z) : (v_4.x)));
+  uint4 v_6 = u[((4u + start_byte_offset) / 16u)];
+  vector<float16_t, 2> v_7 = tint_bitcast_to_f16(((((((4u + start_byte_offset) % 16u) / 4u) == 2u)) ? (v_6.z) : (v_6.x)));
+  uint4 v_8 = u[((8u + start_byte_offset) / 16u)];
+  return matrix<float16_t, 3, 2>(v_5, v_7, tint_bitcast_to_f16(((((((8u + start_byte_offset) % 16u) / 4u) == 2u)) ? (v_8.z) : (v_8.x))));
+}
+
+[numthreads(1, 1, 1)]
+void f() {
+  v_2(0u, v_3(0u));
+  s.Store<vector<float16_t, 2> >(4u, tint_bitcast_to_f16(u[0u].x));
+  s.Store<vector<float16_t, 2> >(4u, tint_bitcast_to_f16(u[0u].x).yx);
+  s.Store<float16_t>(2u, float16_t(f16tof32(u[0u].y)));
+}
+
diff --git a/test/tint/buffer/uniform/std140/unnested/mat3x2_f16/to_storage.wgsl.expected.ir.fxc.hlsl b/test/tint/buffer/uniform/std140/unnested/mat3x2_f16/to_storage.wgsl.expected.ir.fxc.hlsl
index 3f437dc..7f7ab5c 100644
--- a/test/tint/buffer/uniform/std140/unnested/mat3x2_f16/to_storage.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/buffer/uniform/std140/unnested/mat3x2_f16/to_storage.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,41 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Access
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+
+cbuffer cbuffer_u : register(b0) {
+  uint4 u[1];
+};
+RWByteAddressBuffer s : register(u1);
+vector<float16_t, 2> tint_bitcast_to_f16(uint src) {
+  uint v = src;
+  float t_low = f16tof32((v & 65535u));
+  float t_high = f16tof32(((v >> 16u) & 65535u));
+  float16_t v_1 = float16_t(t_low);
+  return vector<float16_t, 2>(v_1, float16_t(t_high));
+}
+
+void v_2(uint offset, matrix<float16_t, 3, 2> obj) {
+  s.Store<vector<float16_t, 2> >((offset + 0u), obj[0u]);
+  s.Store<vector<float16_t, 2> >((offset + 4u), obj[1u]);
+  s.Store<vector<float16_t, 2> >((offset + 8u), obj[2u]);
+}
+
+matrix<float16_t, 3, 2> v_3(uint start_byte_offset) {
+  uint4 v_4 = u[(start_byte_offset / 16u)];
+  vector<float16_t, 2> v_5 = tint_bitcast_to_f16((((((start_byte_offset % 16u) / 4u) == 2u)) ? (v_4.z) : (v_4.x)));
+  uint4 v_6 = u[((4u + start_byte_offset) / 16u)];
+  vector<float16_t, 2> v_7 = tint_bitcast_to_f16(((((((4u + start_byte_offset) % 16u) / 4u) == 2u)) ? (v_6.z) : (v_6.x)));
+  uint4 v_8 = u[((8u + start_byte_offset) / 16u)];
+  return matrix<float16_t, 3, 2>(v_5, v_7, tint_bitcast_to_f16(((((((8u + start_byte_offset) % 16u) / 4u) == 2u)) ? (v_8.z) : (v_8.x))));
+}
+
+[numthreads(1, 1, 1)]
+void f() {
+  v_2(0u, v_3(0u));
+  s.Store<vector<float16_t, 2> >(4u, tint_bitcast_to_f16(u[0u].x));
+  s.Store<vector<float16_t, 2> >(4u, tint_bitcast_to_f16(u[0u].x).yx);
+  s.Store<float16_t>(2u, float16_t(f16tof32(u[0u].y)));
+}
+
+FXC validation failure:
+c:\src\dawn\Shader@0x000001DCAC1E0450(6,8-16): error X3000: syntax error: unexpected token 'float16_t'
+
diff --git a/test/tint/buffer/uniform/std140/unnested/mat3x2_f16/to_workgroup.wgsl.expected.ir.dxc.hlsl b/test/tint/buffer/uniform/std140/unnested/mat3x2_f16/to_workgroup.wgsl.expected.ir.dxc.hlsl
index 3f437dc..fcfe71b 100644
--- a/test/tint/buffer/uniform/std140/unnested/mat3x2_f16/to_workgroup.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/buffer/uniform/std140/unnested/mat3x2_f16/to_workgroup.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,42 @@
-SKIP: FAILED
+struct f_inputs {
+  uint tint_local_index : SV_GroupIndex;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Access
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+
+cbuffer cbuffer_u : register(b0) {
+  uint4 u[1];
+};
+groupshared matrix<float16_t, 3, 2> w;
+vector<float16_t, 2> tint_bitcast_to_f16(uint src) {
+  uint v = src;
+  float t_low = f16tof32((v & 65535u));
+  float t_high = f16tof32(((v >> 16u) & 65535u));
+  float16_t v_1 = float16_t(t_low);
+  return vector<float16_t, 2>(v_1, float16_t(t_high));
+}
+
+matrix<float16_t, 3, 2> v_2(uint start_byte_offset) {
+  uint4 v_3 = u[(start_byte_offset / 16u)];
+  vector<float16_t, 2> v_4 = tint_bitcast_to_f16((((((start_byte_offset % 16u) / 4u) == 2u)) ? (v_3.z) : (v_3.x)));
+  uint4 v_5 = u[((4u + start_byte_offset) / 16u)];
+  vector<float16_t, 2> v_6 = tint_bitcast_to_f16(((((((4u + start_byte_offset) % 16u) / 4u) == 2u)) ? (v_5.z) : (v_5.x)));
+  uint4 v_7 = u[((8u + start_byte_offset) / 16u)];
+  return matrix<float16_t, 3, 2>(v_4, v_6, tint_bitcast_to_f16(((((((8u + start_byte_offset) % 16u) / 4u) == 2u)) ? (v_7.z) : (v_7.x))));
+}
+
+void f_inner(uint tint_local_index) {
+  if ((tint_local_index == 0u)) {
+    w = matrix<float16_t, 3, 2>((float16_t(0.0h)).xx, (float16_t(0.0h)).xx, (float16_t(0.0h)).xx);
+  }
+  GroupMemoryBarrierWithGroupSync();
+  w = v_2(0u);
+  w[1] = tint_bitcast_to_f16(u[0u].x);
+  w[1] = tint_bitcast_to_f16(u[0u].x).yx;
+  w[0][1] = float16_t(f16tof32(u[0u].y));
+}
+
+[numthreads(1, 1, 1)]
+void f(f_inputs inputs) {
+  f_inner(inputs.tint_local_index);
+}
+
diff --git a/test/tint/buffer/uniform/std140/unnested/mat3x2_f16/to_workgroup.wgsl.expected.ir.fxc.hlsl b/test/tint/buffer/uniform/std140/unnested/mat3x2_f16/to_workgroup.wgsl.expected.ir.fxc.hlsl
index 3f437dc..6016973 100644
--- a/test/tint/buffer/uniform/std140/unnested/mat3x2_f16/to_workgroup.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/buffer/uniform/std140/unnested/mat3x2_f16/to_workgroup.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,47 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Access
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct f_inputs {
+  uint tint_local_index : SV_GroupIndex;
+};
+
+
+cbuffer cbuffer_u : register(b0) {
+  uint4 u[1];
+};
+groupshared matrix<float16_t, 3, 2> w;
+vector<float16_t, 2> tint_bitcast_to_f16(uint src) {
+  uint v = src;
+  float t_low = f16tof32((v & 65535u));
+  float t_high = f16tof32(((v >> 16u) & 65535u));
+  float16_t v_1 = float16_t(t_low);
+  return vector<float16_t, 2>(v_1, float16_t(t_high));
+}
+
+matrix<float16_t, 3, 2> v_2(uint start_byte_offset) {
+  uint4 v_3 = u[(start_byte_offset / 16u)];
+  vector<float16_t, 2> v_4 = tint_bitcast_to_f16((((((start_byte_offset % 16u) / 4u) == 2u)) ? (v_3.z) : (v_3.x)));
+  uint4 v_5 = u[((4u + start_byte_offset) / 16u)];
+  vector<float16_t, 2> v_6 = tint_bitcast_to_f16(((((((4u + start_byte_offset) % 16u) / 4u) == 2u)) ? (v_5.z) : (v_5.x)));
+  uint4 v_7 = u[((8u + start_byte_offset) / 16u)];
+  return matrix<float16_t, 3, 2>(v_4, v_6, tint_bitcast_to_f16(((((((8u + start_byte_offset) % 16u) / 4u) == 2u)) ? (v_7.z) : (v_7.x))));
+}
+
+void f_inner(uint tint_local_index) {
+  if ((tint_local_index == 0u)) {
+    w = matrix<float16_t, 3, 2>((float16_t(0.0h)).xx, (float16_t(0.0h)).xx, (float16_t(0.0h)).xx);
+  }
+  GroupMemoryBarrierWithGroupSync();
+  w = v_2(0u);
+  w[1] = tint_bitcast_to_f16(u[0u].x);
+  w[1] = tint_bitcast_to_f16(u[0u].x).yx;
+  w[0][1] = float16_t(f16tof32(u[0u].y));
+}
+
+[numthreads(1, 1, 1)]
+void f(f_inputs inputs) {
+  f_inner(inputs.tint_local_index);
+}
+
+FXC validation failure:
+c:\src\dawn\Shader@0x00000208168B1990(9,20-28): error X3000: syntax error: unexpected token 'float16_t'
+
diff --git a/test/tint/buffer/uniform/std140/unnested/mat3x2_f32/dynamic_index_via_ptr.wgsl.expected.ir.dxc.hlsl b/test/tint/buffer/uniform/std140/unnested/mat3x2_f32/dynamic_index_via_ptr.wgsl.expected.ir.dxc.hlsl
index 3f437dc..c007d15 100644
--- a/test/tint/buffer/uniform/std140/unnested/mat3x2_f32/dynamic_index_via_ptr.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/buffer/uniform/std140/unnested/mat3x2_f32/dynamic_index_via_ptr.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,27 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Access
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+cbuffer cbuffer_m : register(b0) {
+  uint4 m[2];
+};
+static int counter = 0;
+int i() {
+  counter = (counter + 1);
+  return counter;
+}
+
+float3x2 v(uint start_byte_offset) {
+  uint4 v_1 = m[(start_byte_offset / 16u)];
+  float2 v_2 = asfloat((((((start_byte_offset % 16u) / 4u) == 2u)) ? (v_1.zw) : (v_1.xy)));
+  uint4 v_3 = m[((8u + start_byte_offset) / 16u)];
+  float2 v_4 = asfloat(((((((8u + start_byte_offset) % 16u) / 4u) == 2u)) ? (v_3.zw) : (v_3.xy)));
+  uint4 v_5 = m[((16u + start_byte_offset) / 16u)];
+  return float3x2(v_2, v_4, asfloat(((((((16u + start_byte_offset) % 16u) / 4u) == 2u)) ? (v_5.zw) : (v_5.xy))));
+}
+
+[numthreads(1, 1, 1)]
+void f() {
+  uint v_6 = (8u * uint(i()));
+  float3x2 l_m = v(0u);
+  uint4 v_7 = m[(v_6 / 16u)];
+  float2 l_m_i = asfloat((((((v_6 % 16u) / 4u) == 2u)) ? (v_7.zw) : (v_7.xy)));
+}
+
diff --git a/test/tint/buffer/uniform/std140/unnested/mat3x2_f32/dynamic_index_via_ptr.wgsl.expected.ir.fxc.hlsl b/test/tint/buffer/uniform/std140/unnested/mat3x2_f32/dynamic_index_via_ptr.wgsl.expected.ir.fxc.hlsl
index 3f437dc..c007d15 100644
--- a/test/tint/buffer/uniform/std140/unnested/mat3x2_f32/dynamic_index_via_ptr.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/buffer/uniform/std140/unnested/mat3x2_f32/dynamic_index_via_ptr.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,27 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Access
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+cbuffer cbuffer_m : register(b0) {
+  uint4 m[2];
+};
+static int counter = 0;
+int i() {
+  counter = (counter + 1);
+  return counter;
+}
+
+float3x2 v(uint start_byte_offset) {
+  uint4 v_1 = m[(start_byte_offset / 16u)];
+  float2 v_2 = asfloat((((((start_byte_offset % 16u) / 4u) == 2u)) ? (v_1.zw) : (v_1.xy)));
+  uint4 v_3 = m[((8u + start_byte_offset) / 16u)];
+  float2 v_4 = asfloat(((((((8u + start_byte_offset) % 16u) / 4u) == 2u)) ? (v_3.zw) : (v_3.xy)));
+  uint4 v_5 = m[((16u + start_byte_offset) / 16u)];
+  return float3x2(v_2, v_4, asfloat(((((((16u + start_byte_offset) % 16u) / 4u) == 2u)) ? (v_5.zw) : (v_5.xy))));
+}
+
+[numthreads(1, 1, 1)]
+void f() {
+  uint v_6 = (8u * uint(i()));
+  float3x2 l_m = v(0u);
+  uint4 v_7 = m[(v_6 / 16u)];
+  float2 l_m_i = asfloat((((((v_6 % 16u) / 4u) == 2u)) ? (v_7.zw) : (v_7.xy)));
+}
+
diff --git a/test/tint/buffer/uniform/std140/unnested/mat3x2_f32/static_index_via_ptr.wgsl.expected.ir.dxc.hlsl b/test/tint/buffer/uniform/std140/unnested/mat3x2_f32/static_index_via_ptr.wgsl.expected.ir.dxc.hlsl
index 3f437dc..4c00638 100644
--- a/test/tint/buffer/uniform/std140/unnested/mat3x2_f32/static_index_via_ptr.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/buffer/uniform/std140/unnested/mat3x2_f32/static_index_via_ptr.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,25 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Access
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+cbuffer cbuffer_m : register(b0) {
+  uint4 m[2];
+};
+static int counter = 0;
+int i() {
+  counter = (counter + 1);
+  return counter;
+}
+
+float3x2 v(uint start_byte_offset) {
+  uint4 v_1 = m[(start_byte_offset / 16u)];
+  float2 v_2 = asfloat((((((start_byte_offset % 16u) / 4u) == 2u)) ? (v_1.zw) : (v_1.xy)));
+  uint4 v_3 = m[((8u + start_byte_offset) / 16u)];
+  float2 v_4 = asfloat(((((((8u + start_byte_offset) % 16u) / 4u) == 2u)) ? (v_3.zw) : (v_3.xy)));
+  uint4 v_5 = m[((16u + start_byte_offset) / 16u)];
+  return float3x2(v_2, v_4, asfloat(((((((16u + start_byte_offset) % 16u) / 4u) == 2u)) ? (v_5.zw) : (v_5.xy))));
+}
+
+[numthreads(1, 1, 1)]
+void f() {
+  float3x2 l_m = v(0u);
+  float2 l_m_1 = asfloat(m[0u].zw);
+}
+
diff --git a/test/tint/buffer/uniform/std140/unnested/mat3x2_f32/static_index_via_ptr.wgsl.expected.ir.fxc.hlsl b/test/tint/buffer/uniform/std140/unnested/mat3x2_f32/static_index_via_ptr.wgsl.expected.ir.fxc.hlsl
index 3f437dc..4c00638 100644
--- a/test/tint/buffer/uniform/std140/unnested/mat3x2_f32/static_index_via_ptr.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/buffer/uniform/std140/unnested/mat3x2_f32/static_index_via_ptr.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,25 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Access
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+cbuffer cbuffer_m : register(b0) {
+  uint4 m[2];
+};
+static int counter = 0;
+int i() {
+  counter = (counter + 1);
+  return counter;
+}
+
+float3x2 v(uint start_byte_offset) {
+  uint4 v_1 = m[(start_byte_offset / 16u)];
+  float2 v_2 = asfloat((((((start_byte_offset % 16u) / 4u) == 2u)) ? (v_1.zw) : (v_1.xy)));
+  uint4 v_3 = m[((8u + start_byte_offset) / 16u)];
+  float2 v_4 = asfloat(((((((8u + start_byte_offset) % 16u) / 4u) == 2u)) ? (v_3.zw) : (v_3.xy)));
+  uint4 v_5 = m[((16u + start_byte_offset) / 16u)];
+  return float3x2(v_2, v_4, asfloat(((((((16u + start_byte_offset) % 16u) / 4u) == 2u)) ? (v_5.zw) : (v_5.xy))));
+}
+
+[numthreads(1, 1, 1)]
+void f() {
+  float3x2 l_m = v(0u);
+  float2 l_m_1 = asfloat(m[0u].zw);
+}
+
diff --git a/test/tint/buffer/uniform/std140/unnested/mat3x2_f32/to_builtin.wgsl.expected.ir.dxc.hlsl b/test/tint/buffer/uniform/std140/unnested/mat3x2_f32/to_builtin.wgsl.expected.ir.dxc.hlsl
index 3f437dc..24a3e47 100644
--- a/test/tint/buffer/uniform/std140/unnested/mat3x2_f32/to_builtin.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/buffer/uniform/std140/unnested/mat3x2_f32/to_builtin.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,20 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Access
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+cbuffer cbuffer_u : register(b0) {
+  uint4 u[2];
+};
+float3x2 v(uint start_byte_offset) {
+  uint4 v_1 = u[(start_byte_offset / 16u)];
+  float2 v_2 = asfloat((((((start_byte_offset % 16u) / 4u) == 2u)) ? (v_1.zw) : (v_1.xy)));
+  uint4 v_3 = u[((8u + start_byte_offset) / 16u)];
+  float2 v_4 = asfloat(((((((8u + start_byte_offset) % 16u) / 4u) == 2u)) ? (v_3.zw) : (v_3.xy)));
+  uint4 v_5 = u[((16u + start_byte_offset) / 16u)];
+  return float3x2(v_2, v_4, asfloat(((((((16u + start_byte_offset) % 16u) / 4u) == 2u)) ? (v_5.zw) : (v_5.xy))));
+}
+
+[numthreads(1, 1, 1)]
+void f() {
+  float2x3 t = transpose(v(0u));
+  float l = length(asfloat(u[0u].zw));
+  float a = abs(asfloat(u[0u].xy).yx[0u]);
+}
+
diff --git a/test/tint/buffer/uniform/std140/unnested/mat3x2_f32/to_builtin.wgsl.expected.ir.fxc.hlsl b/test/tint/buffer/uniform/std140/unnested/mat3x2_f32/to_builtin.wgsl.expected.ir.fxc.hlsl
index 3f437dc..24a3e47 100644
--- a/test/tint/buffer/uniform/std140/unnested/mat3x2_f32/to_builtin.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/buffer/uniform/std140/unnested/mat3x2_f32/to_builtin.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,20 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Access
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+cbuffer cbuffer_u : register(b0) {
+  uint4 u[2];
+};
+float3x2 v(uint start_byte_offset) {
+  uint4 v_1 = u[(start_byte_offset / 16u)];
+  float2 v_2 = asfloat((((((start_byte_offset % 16u) / 4u) == 2u)) ? (v_1.zw) : (v_1.xy)));
+  uint4 v_3 = u[((8u + start_byte_offset) / 16u)];
+  float2 v_4 = asfloat(((((((8u + start_byte_offset) % 16u) / 4u) == 2u)) ? (v_3.zw) : (v_3.xy)));
+  uint4 v_5 = u[((16u + start_byte_offset) / 16u)];
+  return float3x2(v_2, v_4, asfloat(((((((16u + start_byte_offset) % 16u) / 4u) == 2u)) ? (v_5.zw) : (v_5.xy))));
+}
+
+[numthreads(1, 1, 1)]
+void f() {
+  float2x3 t = transpose(v(0u));
+  float l = length(asfloat(u[0u].zw));
+  float a = abs(asfloat(u[0u].xy).yx[0u]);
+}
+
diff --git a/test/tint/buffer/uniform/std140/unnested/mat3x2_f32/to_fn.wgsl.expected.ir.dxc.hlsl b/test/tint/buffer/uniform/std140/unnested/mat3x2_f32/to_fn.wgsl.expected.ir.dxc.hlsl
index 3f437dc..941f4de 100644
--- a/test/tint/buffer/uniform/std140/unnested/mat3x2_f32/to_fn.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/buffer/uniform/std140/unnested/mat3x2_f32/to_fn.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,31 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Access
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+cbuffer cbuffer_u : register(b0) {
+  uint4 u[2];
+};
+void a(float3x2 m) {
+}
+
+void b(float2 v) {
+}
+
+void c(float f) {
+}
+
+float3x2 v_1(uint start_byte_offset) {
+  uint4 v_2 = u[(start_byte_offset / 16u)];
+  float2 v_3 = asfloat((((((start_byte_offset % 16u) / 4u) == 2u)) ? (v_2.zw) : (v_2.xy)));
+  uint4 v_4 = u[((8u + start_byte_offset) / 16u)];
+  float2 v_5 = asfloat(((((((8u + start_byte_offset) % 16u) / 4u) == 2u)) ? (v_4.zw) : (v_4.xy)));
+  uint4 v_6 = u[((16u + start_byte_offset) / 16u)];
+  return float3x2(v_3, v_5, asfloat(((((((16u + start_byte_offset) % 16u) / 4u) == 2u)) ? (v_6.zw) : (v_6.xy))));
+}
+
+[numthreads(1, 1, 1)]
+void f() {
+  a(v_1(0u));
+  b(asfloat(u[0u].zw));
+  b(asfloat(u[0u].zw).yx);
+  c(asfloat(u[0u].z));
+  c(asfloat(u[0u].zw).yx[0u]);
+}
+
diff --git a/test/tint/buffer/uniform/std140/unnested/mat3x2_f32/to_fn.wgsl.expected.ir.fxc.hlsl b/test/tint/buffer/uniform/std140/unnested/mat3x2_f32/to_fn.wgsl.expected.ir.fxc.hlsl
index 3f437dc..941f4de 100644
--- a/test/tint/buffer/uniform/std140/unnested/mat3x2_f32/to_fn.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/buffer/uniform/std140/unnested/mat3x2_f32/to_fn.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,31 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Access
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+cbuffer cbuffer_u : register(b0) {
+  uint4 u[2];
+};
+void a(float3x2 m) {
+}
+
+void b(float2 v) {
+}
+
+void c(float f) {
+}
+
+float3x2 v_1(uint start_byte_offset) {
+  uint4 v_2 = u[(start_byte_offset / 16u)];
+  float2 v_3 = asfloat((((((start_byte_offset % 16u) / 4u) == 2u)) ? (v_2.zw) : (v_2.xy)));
+  uint4 v_4 = u[((8u + start_byte_offset) / 16u)];
+  float2 v_5 = asfloat(((((((8u + start_byte_offset) % 16u) / 4u) == 2u)) ? (v_4.zw) : (v_4.xy)));
+  uint4 v_6 = u[((16u + start_byte_offset) / 16u)];
+  return float3x2(v_3, v_5, asfloat(((((((16u + start_byte_offset) % 16u) / 4u) == 2u)) ? (v_6.zw) : (v_6.xy))));
+}
+
+[numthreads(1, 1, 1)]
+void f() {
+  a(v_1(0u));
+  b(asfloat(u[0u].zw));
+  b(asfloat(u[0u].zw).yx);
+  c(asfloat(u[0u].z));
+  c(asfloat(u[0u].zw).yx[0u]);
+}
+
diff --git a/test/tint/buffer/uniform/std140/unnested/mat3x2_f32/to_private.wgsl.expected.ir.dxc.hlsl b/test/tint/buffer/uniform/std140/unnested/mat3x2_f32/to_private.wgsl.expected.ir.dxc.hlsl
index 3f437dc..9da0646 100644
--- a/test/tint/buffer/uniform/std140/unnested/mat3x2_f32/to_private.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/buffer/uniform/std140/unnested/mat3x2_f32/to_private.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,22 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Access
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+cbuffer cbuffer_u : register(b0) {
+  uint4 u[2];
+};
+static float3x2 p = float3x2((0.0f).xx, (0.0f).xx, (0.0f).xx);
+float3x2 v(uint start_byte_offset) {
+  uint4 v_1 = u[(start_byte_offset / 16u)];
+  float2 v_2 = asfloat((((((start_byte_offset % 16u) / 4u) == 2u)) ? (v_1.zw) : (v_1.xy)));
+  uint4 v_3 = u[((8u + start_byte_offset) / 16u)];
+  float2 v_4 = asfloat(((((((8u + start_byte_offset) % 16u) / 4u) == 2u)) ? (v_3.zw) : (v_3.xy)));
+  uint4 v_5 = u[((16u + start_byte_offset) / 16u)];
+  return float3x2(v_2, v_4, asfloat(((((((16u + start_byte_offset) % 16u) / 4u) == 2u)) ? (v_5.zw) : (v_5.xy))));
+}
+
+[numthreads(1, 1, 1)]
+void f() {
+  p = v(0u);
+  p[1] = asfloat(u[0u].xy);
+  p[1] = asfloat(u[0u].xy).yx;
+  p[0][1] = asfloat(u[0u].z);
+}
+
diff --git a/test/tint/buffer/uniform/std140/unnested/mat3x2_f32/to_private.wgsl.expected.ir.fxc.hlsl b/test/tint/buffer/uniform/std140/unnested/mat3x2_f32/to_private.wgsl.expected.ir.fxc.hlsl
index 3f437dc..9da0646 100644
--- a/test/tint/buffer/uniform/std140/unnested/mat3x2_f32/to_private.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/buffer/uniform/std140/unnested/mat3x2_f32/to_private.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,22 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Access
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+cbuffer cbuffer_u : register(b0) {
+  uint4 u[2];
+};
+static float3x2 p = float3x2((0.0f).xx, (0.0f).xx, (0.0f).xx);
+float3x2 v(uint start_byte_offset) {
+  uint4 v_1 = u[(start_byte_offset / 16u)];
+  float2 v_2 = asfloat((((((start_byte_offset % 16u) / 4u) == 2u)) ? (v_1.zw) : (v_1.xy)));
+  uint4 v_3 = u[((8u + start_byte_offset) / 16u)];
+  float2 v_4 = asfloat(((((((8u + start_byte_offset) % 16u) / 4u) == 2u)) ? (v_3.zw) : (v_3.xy)));
+  uint4 v_5 = u[((16u + start_byte_offset) / 16u)];
+  return float3x2(v_2, v_4, asfloat(((((((16u + start_byte_offset) % 16u) / 4u) == 2u)) ? (v_5.zw) : (v_5.xy))));
+}
+
+[numthreads(1, 1, 1)]
+void f() {
+  p = v(0u);
+  p[1] = asfloat(u[0u].xy);
+  p[1] = asfloat(u[0u].xy).yx;
+  p[0][1] = asfloat(u[0u].z);
+}
+
diff --git a/test/tint/buffer/uniform/std140/unnested/mat3x2_f32/to_storage.wgsl.expected.ir.dxc.hlsl b/test/tint/buffer/uniform/std140/unnested/mat3x2_f32/to_storage.wgsl.expected.ir.dxc.hlsl
index 3f437dc..3507dfc 100644
--- a/test/tint/buffer/uniform/std140/unnested/mat3x2_f32/to_storage.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/buffer/uniform/std140/unnested/mat3x2_f32/to_storage.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,28 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Access
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+cbuffer cbuffer_u : register(b0) {
+  uint4 u[2];
+};
+RWByteAddressBuffer s : register(u1);
+void v(uint offset, float3x2 obj) {
+  s.Store2((offset + 0u), asuint(obj[0u]));
+  s.Store2((offset + 8u), asuint(obj[1u]));
+  s.Store2((offset + 16u), asuint(obj[2u]));
+}
+
+float3x2 v_1(uint start_byte_offset) {
+  uint4 v_2 = u[(start_byte_offset / 16u)];
+  float2 v_3 = asfloat((((((start_byte_offset % 16u) / 4u) == 2u)) ? (v_2.zw) : (v_2.xy)));
+  uint4 v_4 = u[((8u + start_byte_offset) / 16u)];
+  float2 v_5 = asfloat(((((((8u + start_byte_offset) % 16u) / 4u) == 2u)) ? (v_4.zw) : (v_4.xy)));
+  uint4 v_6 = u[((16u + start_byte_offset) / 16u)];
+  return float3x2(v_3, v_5, asfloat(((((((16u + start_byte_offset) % 16u) / 4u) == 2u)) ? (v_6.zw) : (v_6.xy))));
+}
+
+[numthreads(1, 1, 1)]
+void f() {
+  v(0u, v_1(0u));
+  s.Store2(8u, asuint(asfloat(u[0u].xy)));
+  s.Store2(8u, asuint(asfloat(u[0u].xy).yx));
+  s.Store(4u, asuint(asfloat(u[0u].z)));
+}
+
diff --git a/test/tint/buffer/uniform/std140/unnested/mat3x2_f32/to_storage.wgsl.expected.ir.fxc.hlsl b/test/tint/buffer/uniform/std140/unnested/mat3x2_f32/to_storage.wgsl.expected.ir.fxc.hlsl
index 3f437dc..3507dfc 100644
--- a/test/tint/buffer/uniform/std140/unnested/mat3x2_f32/to_storage.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/buffer/uniform/std140/unnested/mat3x2_f32/to_storage.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,28 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Access
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+cbuffer cbuffer_u : register(b0) {
+  uint4 u[2];
+};
+RWByteAddressBuffer s : register(u1);
+void v(uint offset, float3x2 obj) {
+  s.Store2((offset + 0u), asuint(obj[0u]));
+  s.Store2((offset + 8u), asuint(obj[1u]));
+  s.Store2((offset + 16u), asuint(obj[2u]));
+}
+
+float3x2 v_1(uint start_byte_offset) {
+  uint4 v_2 = u[(start_byte_offset / 16u)];
+  float2 v_3 = asfloat((((((start_byte_offset % 16u) / 4u) == 2u)) ? (v_2.zw) : (v_2.xy)));
+  uint4 v_4 = u[((8u + start_byte_offset) / 16u)];
+  float2 v_5 = asfloat(((((((8u + start_byte_offset) % 16u) / 4u) == 2u)) ? (v_4.zw) : (v_4.xy)));
+  uint4 v_6 = u[((16u + start_byte_offset) / 16u)];
+  return float3x2(v_3, v_5, asfloat(((((((16u + start_byte_offset) % 16u) / 4u) == 2u)) ? (v_6.zw) : (v_6.xy))));
+}
+
+[numthreads(1, 1, 1)]
+void f() {
+  v(0u, v_1(0u));
+  s.Store2(8u, asuint(asfloat(u[0u].xy)));
+  s.Store2(8u, asuint(asfloat(u[0u].xy).yx));
+  s.Store(4u, asuint(asfloat(u[0u].z)));
+}
+
diff --git a/test/tint/buffer/uniform/std140/unnested/mat3x2_f32/to_workgroup.wgsl.expected.ir.dxc.hlsl b/test/tint/buffer/uniform/std140/unnested/mat3x2_f32/to_workgroup.wgsl.expected.ir.dxc.hlsl
index 3f437dc..8700a91 100644
--- a/test/tint/buffer/uniform/std140/unnested/mat3x2_f32/to_workgroup.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/buffer/uniform/std140/unnested/mat3x2_f32/to_workgroup.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,34 @@
-SKIP: FAILED
+struct f_inputs {
+  uint tint_local_index : SV_GroupIndex;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Access
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+
+cbuffer cbuffer_u : register(b0) {
+  uint4 u[2];
+};
+groupshared float3x2 w;
+float3x2 v(uint start_byte_offset) {
+  uint4 v_1 = u[(start_byte_offset / 16u)];
+  float2 v_2 = asfloat((((((start_byte_offset % 16u) / 4u) == 2u)) ? (v_1.zw) : (v_1.xy)));
+  uint4 v_3 = u[((8u + start_byte_offset) / 16u)];
+  float2 v_4 = asfloat(((((((8u + start_byte_offset) % 16u) / 4u) == 2u)) ? (v_3.zw) : (v_3.xy)));
+  uint4 v_5 = u[((16u + start_byte_offset) / 16u)];
+  return float3x2(v_2, v_4, asfloat(((((((16u + start_byte_offset) % 16u) / 4u) == 2u)) ? (v_5.zw) : (v_5.xy))));
+}
+
+void f_inner(uint tint_local_index) {
+  if ((tint_local_index == 0u)) {
+    w = float3x2((0.0f).xx, (0.0f).xx, (0.0f).xx);
+  }
+  GroupMemoryBarrierWithGroupSync();
+  w = v(0u);
+  w[1] = asfloat(u[0u].xy);
+  w[1] = asfloat(u[0u].xy).yx;
+  w[0][1] = asfloat(u[0u].z);
+}
+
+[numthreads(1, 1, 1)]
+void f(f_inputs inputs) {
+  f_inner(inputs.tint_local_index);
+}
+
diff --git a/test/tint/buffer/uniform/std140/unnested/mat3x2_f32/to_workgroup.wgsl.expected.ir.fxc.hlsl b/test/tint/buffer/uniform/std140/unnested/mat3x2_f32/to_workgroup.wgsl.expected.ir.fxc.hlsl
index 3f437dc..8700a91 100644
--- a/test/tint/buffer/uniform/std140/unnested/mat3x2_f32/to_workgroup.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/buffer/uniform/std140/unnested/mat3x2_f32/to_workgroup.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,34 @@
-SKIP: FAILED
+struct f_inputs {
+  uint tint_local_index : SV_GroupIndex;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Access
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+
+cbuffer cbuffer_u : register(b0) {
+  uint4 u[2];
+};
+groupshared float3x2 w;
+float3x2 v(uint start_byte_offset) {
+  uint4 v_1 = u[(start_byte_offset / 16u)];
+  float2 v_2 = asfloat((((((start_byte_offset % 16u) / 4u) == 2u)) ? (v_1.zw) : (v_1.xy)));
+  uint4 v_3 = u[((8u + start_byte_offset) / 16u)];
+  float2 v_4 = asfloat(((((((8u + start_byte_offset) % 16u) / 4u) == 2u)) ? (v_3.zw) : (v_3.xy)));
+  uint4 v_5 = u[((16u + start_byte_offset) / 16u)];
+  return float3x2(v_2, v_4, asfloat(((((((16u + start_byte_offset) % 16u) / 4u) == 2u)) ? (v_5.zw) : (v_5.xy))));
+}
+
+void f_inner(uint tint_local_index) {
+  if ((tint_local_index == 0u)) {
+    w = float3x2((0.0f).xx, (0.0f).xx, (0.0f).xx);
+  }
+  GroupMemoryBarrierWithGroupSync();
+  w = v(0u);
+  w[1] = asfloat(u[0u].xy);
+  w[1] = asfloat(u[0u].xy).yx;
+  w[0][1] = asfloat(u[0u].z);
+}
+
+[numthreads(1, 1, 1)]
+void f(f_inputs inputs) {
+  f_inner(inputs.tint_local_index);
+}
+
diff --git a/test/tint/buffer/uniform/std140/unnested/mat3x3_f16/dynamic_index_via_ptr.wgsl.expected.ir.dxc.hlsl b/test/tint/buffer/uniform/std140/unnested/mat3x3_f16/dynamic_index_via_ptr.wgsl.expected.ir.dxc.hlsl
index 3f437dc..45e205d 100644
--- a/test/tint/buffer/uniform/std140/unnested/mat3x3_f16/dynamic_index_via_ptr.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/buffer/uniform/std140/unnested/mat3x3_f16/dynamic_index_via_ptr.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,35 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Access
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+cbuffer cbuffer_m : register(b0) {
+  uint4 m[2];
+};
+static int counter = 0;
+int i() {
+  counter = (counter + 1);
+  return counter;
+}
+
+vector<float16_t, 4> tint_bitcast_to_f16(uint4 src) {
+  uint4 v = src;
+  uint4 mask = (65535u).xxxx;
+  uint4 shift = (16u).xxxx;
+  float4 t_low = f16tof32((v & mask));
+  float4 t_high = f16tof32(((v >> shift) & mask));
+  float16_t v_1 = float16_t(t_low.x);
+  float16_t v_2 = float16_t(t_high.x);
+  float16_t v_3 = float16_t(t_low.y);
+  return vector<float16_t, 4>(v_1, v_2, v_3, float16_t(t_high.y));
+}
+
+matrix<float16_t, 3, 3> v_4(uint start_byte_offset) {
+  vector<float16_t, 3> v_5 = tint_bitcast_to_f16(m[(start_byte_offset / 16u)]).xyz;
+  vector<float16_t, 3> v_6 = tint_bitcast_to_f16(m[((8u + start_byte_offset) / 16u)]).xyz;
+  return matrix<float16_t, 3, 3>(v_5, v_6, tint_bitcast_to_f16(m[((16u + start_byte_offset) / 16u)]).xyz);
+}
+
+[numthreads(1, 1, 1)]
+void f() {
+  uint v_7 = (8u * uint(i()));
+  matrix<float16_t, 3, 3> l_m = v_4(0u);
+  vector<float16_t, 3> l_m_i = tint_bitcast_to_f16(m[(v_7 / 16u)]).xyz;
+}
+
diff --git a/test/tint/buffer/uniform/std140/unnested/mat3x3_f16/dynamic_index_via_ptr.wgsl.expected.ir.fxc.hlsl b/test/tint/buffer/uniform/std140/unnested/mat3x3_f16/dynamic_index_via_ptr.wgsl.expected.ir.fxc.hlsl
index 3f437dc..d80f564 100644
--- a/test/tint/buffer/uniform/std140/unnested/mat3x3_f16/dynamic_index_via_ptr.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/buffer/uniform/std140/unnested/mat3x3_f16/dynamic_index_via_ptr.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,40 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Access
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+
+cbuffer cbuffer_m : register(b0) {
+  uint4 m[2];
+};
+static int counter = 0;
+int i() {
+  counter = (counter + 1);
+  return counter;
+}
+
+vector<float16_t, 4> tint_bitcast_to_f16(uint4 src) {
+  uint4 v = src;
+  uint4 mask = (65535u).xxxx;
+  uint4 shift = (16u).xxxx;
+  float4 t_low = f16tof32((v & mask));
+  float4 t_high = f16tof32(((v >> shift) & mask));
+  float16_t v_1 = float16_t(t_low.x);
+  float16_t v_2 = float16_t(t_high.x);
+  float16_t v_3 = float16_t(t_low.y);
+  return vector<float16_t, 4>(v_1, v_2, v_3, float16_t(t_high.y));
+}
+
+matrix<float16_t, 3, 3> v_4(uint start_byte_offset) {
+  vector<float16_t, 3> v_5 = tint_bitcast_to_f16(m[(start_byte_offset / 16u)]).xyz;
+  vector<float16_t, 3> v_6 = tint_bitcast_to_f16(m[((8u + start_byte_offset) / 16u)]).xyz;
+  return matrix<float16_t, 3, 3>(v_5, v_6, tint_bitcast_to_f16(m[((16u + start_byte_offset) / 16u)]).xyz);
+}
+
+[numthreads(1, 1, 1)]
+void f() {
+  uint v_7 = (8u * uint(i()));
+  matrix<float16_t, 3, 3> l_m = v_4(0u);
+  vector<float16_t, 3> l_m_i = tint_bitcast_to_f16(m[(v_7 / 16u)]).xyz;
+}
+
+FXC validation failure:
+c:\src\dawn\Shader@0x000002D709FC8100(11,8-16): error X3000: syntax error: unexpected token 'float16_t'
+
diff --git a/test/tint/buffer/uniform/std140/unnested/mat3x3_f16/static_index_via_ptr.wgsl.expected.ir.dxc.hlsl b/test/tint/buffer/uniform/std140/unnested/mat3x3_f16/static_index_via_ptr.wgsl.expected.ir.dxc.hlsl
index 3f437dc..707559e 100644
--- a/test/tint/buffer/uniform/std140/unnested/mat3x3_f16/static_index_via_ptr.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/buffer/uniform/std140/unnested/mat3x3_f16/static_index_via_ptr.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,34 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Access
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+cbuffer cbuffer_m : register(b0) {
+  uint4 m[2];
+};
+static int counter = 0;
+int i() {
+  counter = (counter + 1);
+  return counter;
+}
+
+vector<float16_t, 4> tint_bitcast_to_f16(uint4 src) {
+  uint4 v = src;
+  uint4 mask = (65535u).xxxx;
+  uint4 shift = (16u).xxxx;
+  float4 t_low = f16tof32((v & mask));
+  float4 t_high = f16tof32(((v >> shift) & mask));
+  float16_t v_1 = float16_t(t_low.x);
+  float16_t v_2 = float16_t(t_high.x);
+  float16_t v_3 = float16_t(t_low.y);
+  return vector<float16_t, 4>(v_1, v_2, v_3, float16_t(t_high.y));
+}
+
+matrix<float16_t, 3, 3> v_4(uint start_byte_offset) {
+  vector<float16_t, 3> v_5 = tint_bitcast_to_f16(m[(start_byte_offset / 16u)]).xyz;
+  vector<float16_t, 3> v_6 = tint_bitcast_to_f16(m[((8u + start_byte_offset) / 16u)]).xyz;
+  return matrix<float16_t, 3, 3>(v_5, v_6, tint_bitcast_to_f16(m[((16u + start_byte_offset) / 16u)]).xyz);
+}
+
+[numthreads(1, 1, 1)]
+void f() {
+  matrix<float16_t, 3, 3> l_m = v_4(0u);
+  vector<float16_t, 3> l_m_1 = tint_bitcast_to_f16(m[0u]).xyz;
+}
+
diff --git a/test/tint/buffer/uniform/std140/unnested/mat3x3_f16/static_index_via_ptr.wgsl.expected.ir.fxc.hlsl b/test/tint/buffer/uniform/std140/unnested/mat3x3_f16/static_index_via_ptr.wgsl.expected.ir.fxc.hlsl
index 3f437dc..527d07f 100644
--- a/test/tint/buffer/uniform/std140/unnested/mat3x3_f16/static_index_via_ptr.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/buffer/uniform/std140/unnested/mat3x3_f16/static_index_via_ptr.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,39 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Access
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+
+cbuffer cbuffer_m : register(b0) {
+  uint4 m[2];
+};
+static int counter = 0;
+int i() {
+  counter = (counter + 1);
+  return counter;
+}
+
+vector<float16_t, 4> tint_bitcast_to_f16(uint4 src) {
+  uint4 v = src;
+  uint4 mask = (65535u).xxxx;
+  uint4 shift = (16u).xxxx;
+  float4 t_low = f16tof32((v & mask));
+  float4 t_high = f16tof32(((v >> shift) & mask));
+  float16_t v_1 = float16_t(t_low.x);
+  float16_t v_2 = float16_t(t_high.x);
+  float16_t v_3 = float16_t(t_low.y);
+  return vector<float16_t, 4>(v_1, v_2, v_3, float16_t(t_high.y));
+}
+
+matrix<float16_t, 3, 3> v_4(uint start_byte_offset) {
+  vector<float16_t, 3> v_5 = tint_bitcast_to_f16(m[(start_byte_offset / 16u)]).xyz;
+  vector<float16_t, 3> v_6 = tint_bitcast_to_f16(m[((8u + start_byte_offset) / 16u)]).xyz;
+  return matrix<float16_t, 3, 3>(v_5, v_6, tint_bitcast_to_f16(m[((16u + start_byte_offset) / 16u)]).xyz);
+}
+
+[numthreads(1, 1, 1)]
+void f() {
+  matrix<float16_t, 3, 3> l_m = v_4(0u);
+  vector<float16_t, 3> l_m_1 = tint_bitcast_to_f16(m[0u]).xyz;
+}
+
+FXC validation failure:
+c:\src\dawn\Shader@0x000001F8371027C0(11,8-16): error X3000: syntax error: unexpected token 'float16_t'
+
diff --git a/test/tint/buffer/uniform/std140/unnested/mat3x3_f16/to_builtin.wgsl.expected.ir.dxc.hlsl b/test/tint/buffer/uniform/std140/unnested/mat3x3_f16/to_builtin.wgsl.expected.ir.dxc.hlsl
index 3f437dc..33815d4 100644
--- a/test/tint/buffer/uniform/std140/unnested/mat3x3_f16/to_builtin.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/buffer/uniform/std140/unnested/mat3x3_f16/to_builtin.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,29 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Access
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+cbuffer cbuffer_u : register(b0) {
+  uint4 u[2];
+};
+vector<float16_t, 4> tint_bitcast_to_f16(uint4 src) {
+  uint4 v = src;
+  uint4 mask = (65535u).xxxx;
+  uint4 shift = (16u).xxxx;
+  float4 t_low = f16tof32((v & mask));
+  float4 t_high = f16tof32(((v >> shift) & mask));
+  float16_t v_1 = float16_t(t_low.x);
+  float16_t v_2 = float16_t(t_high.x);
+  float16_t v_3 = float16_t(t_low.y);
+  return vector<float16_t, 4>(v_1, v_2, v_3, float16_t(t_high.y));
+}
+
+matrix<float16_t, 3, 3> v_4(uint start_byte_offset) {
+  vector<float16_t, 3> v_5 = tint_bitcast_to_f16(u[(start_byte_offset / 16u)]).xyz;
+  vector<float16_t, 3> v_6 = tint_bitcast_to_f16(u[((8u + start_byte_offset) / 16u)]).xyz;
+  return matrix<float16_t, 3, 3>(v_5, v_6, tint_bitcast_to_f16(u[((16u + start_byte_offset) / 16u)]).xyz);
+}
+
+[numthreads(1, 1, 1)]
+void f() {
+  matrix<float16_t, 3, 3> t = transpose(v_4(0u));
+  float16_t l = length(tint_bitcast_to_f16(u[0u]).xyz);
+  float16_t a = abs(tint_bitcast_to_f16(u[0u]).xyz.zxy[0u]);
+}
+
diff --git a/test/tint/buffer/uniform/std140/unnested/mat3x3_f16/to_builtin.wgsl.expected.ir.fxc.hlsl b/test/tint/buffer/uniform/std140/unnested/mat3x3_f16/to_builtin.wgsl.expected.ir.fxc.hlsl
index 3f437dc..8463b75 100644
--- a/test/tint/buffer/uniform/std140/unnested/mat3x3_f16/to_builtin.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/buffer/uniform/std140/unnested/mat3x3_f16/to_builtin.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,34 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Access
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+
+cbuffer cbuffer_u : register(b0) {
+  uint4 u[2];
+};
+vector<float16_t, 4> tint_bitcast_to_f16(uint4 src) {
+  uint4 v = src;
+  uint4 mask = (65535u).xxxx;
+  uint4 shift = (16u).xxxx;
+  float4 t_low = f16tof32((v & mask));
+  float4 t_high = f16tof32(((v >> shift) & mask));
+  float16_t v_1 = float16_t(t_low.x);
+  float16_t v_2 = float16_t(t_high.x);
+  float16_t v_3 = float16_t(t_low.y);
+  return vector<float16_t, 4>(v_1, v_2, v_3, float16_t(t_high.y));
+}
+
+matrix<float16_t, 3, 3> v_4(uint start_byte_offset) {
+  vector<float16_t, 3> v_5 = tint_bitcast_to_f16(u[(start_byte_offset / 16u)]).xyz;
+  vector<float16_t, 3> v_6 = tint_bitcast_to_f16(u[((8u + start_byte_offset) / 16u)]).xyz;
+  return matrix<float16_t, 3, 3>(v_5, v_6, tint_bitcast_to_f16(u[((16u + start_byte_offset) / 16u)]).xyz);
+}
+
+[numthreads(1, 1, 1)]
+void f() {
+  matrix<float16_t, 3, 3> t = transpose(v_4(0u));
+  float16_t l = length(tint_bitcast_to_f16(u[0u]).xyz);
+  float16_t a = abs(tint_bitcast_to_f16(u[0u]).xyz.zxy[0u]);
+}
+
+FXC validation failure:
+c:\src\dawn\Shader@0x0000020FFF7CA930(5,8-16): error X3000: syntax error: unexpected token 'float16_t'
+
diff --git a/test/tint/buffer/uniform/std140/unnested/mat3x3_f16/to_fn.wgsl.expected.ir.dxc.hlsl b/test/tint/buffer/uniform/std140/unnested/mat3x3_f16/to_fn.wgsl.expected.ir.dxc.hlsl
index 3f437dc..5f2da89 100644
--- a/test/tint/buffer/uniform/std140/unnested/mat3x3_f16/to_fn.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/buffer/uniform/std140/unnested/mat3x3_f16/to_fn.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,40 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Access
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+cbuffer cbuffer_u : register(b0) {
+  uint4 u[2];
+};
+void a(matrix<float16_t, 3, 3> m) {
+}
+
+void b(vector<float16_t, 3> v) {
+}
+
+void c(float16_t f) {
+}
+
+vector<float16_t, 4> tint_bitcast_to_f16(uint4 src) {
+  uint4 v = src;
+  uint4 mask = (65535u).xxxx;
+  uint4 shift = (16u).xxxx;
+  float4 t_low = f16tof32((v & mask));
+  float4 t_high = f16tof32(((v >> shift) & mask));
+  float16_t v_1 = float16_t(t_low.x);
+  float16_t v_2 = float16_t(t_high.x);
+  float16_t v_3 = float16_t(t_low.y);
+  return vector<float16_t, 4>(v_1, v_2, v_3, float16_t(t_high.y));
+}
+
+matrix<float16_t, 3, 3> v_4(uint start_byte_offset) {
+  vector<float16_t, 3> v_5 = tint_bitcast_to_f16(u[(start_byte_offset / 16u)]).xyz;
+  vector<float16_t, 3> v_6 = tint_bitcast_to_f16(u[((8u + start_byte_offset) / 16u)]).xyz;
+  return matrix<float16_t, 3, 3>(v_5, v_6, tint_bitcast_to_f16(u[((16u + start_byte_offset) / 16u)]).xyz);
+}
+
+[numthreads(1, 1, 1)]
+void f() {
+  a(v_4(0u));
+  b(tint_bitcast_to_f16(u[0u]).xyz);
+  b(tint_bitcast_to_f16(u[0u]).xyz.zxy);
+  c(float16_t(f16tof32(u[0u].z)));
+  c(tint_bitcast_to_f16(u[0u]).xyz.zxy[0u]);
+}
+
diff --git a/test/tint/buffer/uniform/std140/unnested/mat3x3_f16/to_fn.wgsl.expected.ir.fxc.hlsl b/test/tint/buffer/uniform/std140/unnested/mat3x3_f16/to_fn.wgsl.expected.ir.fxc.hlsl
index 3f437dc..4a5a420 100644
--- a/test/tint/buffer/uniform/std140/unnested/mat3x3_f16/to_fn.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/buffer/uniform/std140/unnested/mat3x3_f16/to_fn.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,47 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Access
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+
+cbuffer cbuffer_u : register(b0) {
+  uint4 u[2];
+};
+void a(matrix<float16_t, 3, 3> m) {
+}
+
+void b(vector<float16_t, 3> v) {
+}
+
+void c(float16_t f) {
+}
+
+vector<float16_t, 4> tint_bitcast_to_f16(uint4 src) {
+  uint4 v = src;
+  uint4 mask = (65535u).xxxx;
+  uint4 shift = (16u).xxxx;
+  float4 t_low = f16tof32((v & mask));
+  float4 t_high = f16tof32(((v >> shift) & mask));
+  float16_t v_1 = float16_t(t_low.x);
+  float16_t v_2 = float16_t(t_high.x);
+  float16_t v_3 = float16_t(t_low.y);
+  return vector<float16_t, 4>(v_1, v_2, v_3, float16_t(t_high.y));
+}
+
+matrix<float16_t, 3, 3> v_4(uint start_byte_offset) {
+  vector<float16_t, 3> v_5 = tint_bitcast_to_f16(u[(start_byte_offset / 16u)]).xyz;
+  vector<float16_t, 3> v_6 = tint_bitcast_to_f16(u[((8u + start_byte_offset) / 16u)]).xyz;
+  return matrix<float16_t, 3, 3>(v_5, v_6, tint_bitcast_to_f16(u[((16u + start_byte_offset) / 16u)]).xyz);
+}
+
+[numthreads(1, 1, 1)]
+void f() {
+  a(v_4(0u));
+  b(tint_bitcast_to_f16(u[0u]).xyz);
+  b(tint_bitcast_to_f16(u[0u]).xyz.zxy);
+  c(float16_t(f16tof32(u[0u].z)));
+  c(tint_bitcast_to_f16(u[0u]).xyz.zxy[0u]);
+}
+
+FXC validation failure:
+c:\src\dawn\Shader@0x0000024F4E1A1E40(5,15-23): error X3000: syntax error: unexpected token 'float16_t'
+c:\src\dawn\Shader@0x0000024F4E1A1E40(8,15-23): error X3000: syntax error: unexpected token 'float16_t'
+c:\src\dawn\Shader@0x0000024F4E1A1E40(11,8-16): error X3000: unrecognized identifier 'float16_t'
+
diff --git a/test/tint/buffer/uniform/std140/unnested/mat3x3_f16/to_private.wgsl.expected.ir.dxc.hlsl b/test/tint/buffer/uniform/std140/unnested/mat3x3_f16/to_private.wgsl.expected.ir.dxc.hlsl
index 3f437dc..df6fa3d 100644
--- a/test/tint/buffer/uniform/std140/unnested/mat3x3_f16/to_private.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/buffer/uniform/std140/unnested/mat3x3_f16/to_private.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,31 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Access
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+cbuffer cbuffer_u : register(b0) {
+  uint4 u[2];
+};
+static matrix<float16_t, 3, 3> p = matrix<float16_t, 3, 3>((float16_t(0.0h)).xxx, (float16_t(0.0h)).xxx, (float16_t(0.0h)).xxx);
+vector<float16_t, 4> tint_bitcast_to_f16(uint4 src) {
+  uint4 v = src;
+  uint4 mask = (65535u).xxxx;
+  uint4 shift = (16u).xxxx;
+  float4 t_low = f16tof32((v & mask));
+  float4 t_high = f16tof32(((v >> shift) & mask));
+  float16_t v_1 = float16_t(t_low.x);
+  float16_t v_2 = float16_t(t_high.x);
+  float16_t v_3 = float16_t(t_low.y);
+  return vector<float16_t, 4>(v_1, v_2, v_3, float16_t(t_high.y));
+}
+
+matrix<float16_t, 3, 3> v_4(uint start_byte_offset) {
+  vector<float16_t, 3> v_5 = tint_bitcast_to_f16(u[(start_byte_offset / 16u)]).xyz;
+  vector<float16_t, 3> v_6 = tint_bitcast_to_f16(u[((8u + start_byte_offset) / 16u)]).xyz;
+  return matrix<float16_t, 3, 3>(v_5, v_6, tint_bitcast_to_f16(u[((16u + start_byte_offset) / 16u)]).xyz);
+}
+
+[numthreads(1, 1, 1)]
+void f() {
+  p = v_4(0u);
+  p[1] = tint_bitcast_to_f16(u[0u]).xyz;
+  p[1] = tint_bitcast_to_f16(u[0u]).xyz.zxy;
+  p[0][1] = float16_t(f16tof32(u[0u].z));
+}
+
diff --git a/test/tint/buffer/uniform/std140/unnested/mat3x3_f16/to_private.wgsl.expected.ir.fxc.hlsl b/test/tint/buffer/uniform/std140/unnested/mat3x3_f16/to_private.wgsl.expected.ir.fxc.hlsl
index 3f437dc..2d7cc3b 100644
--- a/test/tint/buffer/uniform/std140/unnested/mat3x3_f16/to_private.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/buffer/uniform/std140/unnested/mat3x3_f16/to_private.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,36 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Access
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+
+cbuffer cbuffer_u : register(b0) {
+  uint4 u[2];
+};
+static matrix<float16_t, 3, 3> p = matrix<float16_t, 3, 3>((float16_t(0.0h)).xxx, (float16_t(0.0h)).xxx, (float16_t(0.0h)).xxx);
+vector<float16_t, 4> tint_bitcast_to_f16(uint4 src) {
+  uint4 v = src;
+  uint4 mask = (65535u).xxxx;
+  uint4 shift = (16u).xxxx;
+  float4 t_low = f16tof32((v & mask));
+  float4 t_high = f16tof32(((v >> shift) & mask));
+  float16_t v_1 = float16_t(t_low.x);
+  float16_t v_2 = float16_t(t_high.x);
+  float16_t v_3 = float16_t(t_low.y);
+  return vector<float16_t, 4>(v_1, v_2, v_3, float16_t(t_high.y));
+}
+
+matrix<float16_t, 3, 3> v_4(uint start_byte_offset) {
+  vector<float16_t, 3> v_5 = tint_bitcast_to_f16(u[(start_byte_offset / 16u)]).xyz;
+  vector<float16_t, 3> v_6 = tint_bitcast_to_f16(u[((8u + start_byte_offset) / 16u)]).xyz;
+  return matrix<float16_t, 3, 3>(v_5, v_6, tint_bitcast_to_f16(u[((16u + start_byte_offset) / 16u)]).xyz);
+}
+
+[numthreads(1, 1, 1)]
+void f() {
+  p = v_4(0u);
+  p[1] = tint_bitcast_to_f16(u[0u]).xyz;
+  p[1] = tint_bitcast_to_f16(u[0u]).xyz.zxy;
+  p[0][1] = float16_t(f16tof32(u[0u].z));
+}
+
+FXC validation failure:
+c:\src\dawn\Shader@0x0000022892BEEF80(5,15-23): error X3000: syntax error: unexpected token 'float16_t'
+
diff --git a/test/tint/buffer/uniform/std140/unnested/mat3x3_f16/to_storage.wgsl.expected.ir.dxc.hlsl b/test/tint/buffer/uniform/std140/unnested/mat3x3_f16/to_storage.wgsl.expected.ir.dxc.hlsl
index 3f437dc..600bab5 100644
--- a/test/tint/buffer/uniform/std140/unnested/mat3x3_f16/to_storage.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/buffer/uniform/std140/unnested/mat3x3_f16/to_storage.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,37 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Access
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+cbuffer cbuffer_u : register(b0) {
+  uint4 u[2];
+};
+RWByteAddressBuffer s : register(u1);
+vector<float16_t, 4> tint_bitcast_to_f16(uint4 src) {
+  uint4 v = src;
+  uint4 mask = (65535u).xxxx;
+  uint4 shift = (16u).xxxx;
+  float4 t_low = f16tof32((v & mask));
+  float4 t_high = f16tof32(((v >> shift) & mask));
+  float16_t v_1 = float16_t(t_low.x);
+  float16_t v_2 = float16_t(t_high.x);
+  float16_t v_3 = float16_t(t_low.y);
+  return vector<float16_t, 4>(v_1, v_2, v_3, float16_t(t_high.y));
+}
+
+void v_4(uint offset, matrix<float16_t, 3, 3> obj) {
+  s.Store<vector<float16_t, 3> >((offset + 0u), obj[0u]);
+  s.Store<vector<float16_t, 3> >((offset + 8u), obj[1u]);
+  s.Store<vector<float16_t, 3> >((offset + 16u), obj[2u]);
+}
+
+matrix<float16_t, 3, 3> v_5(uint start_byte_offset) {
+  vector<float16_t, 3> v_6 = tint_bitcast_to_f16(u[(start_byte_offset / 16u)]).xyz;
+  vector<float16_t, 3> v_7 = tint_bitcast_to_f16(u[((8u + start_byte_offset) / 16u)]).xyz;
+  return matrix<float16_t, 3, 3>(v_6, v_7, tint_bitcast_to_f16(u[((16u + start_byte_offset) / 16u)]).xyz);
+}
+
+[numthreads(1, 1, 1)]
+void f() {
+  v_4(0u, v_5(0u));
+  s.Store<vector<float16_t, 3> >(8u, tint_bitcast_to_f16(u[0u]).xyz);
+  s.Store<vector<float16_t, 3> >(8u, tint_bitcast_to_f16(u[0u]).xyz.zxy);
+  s.Store<float16_t>(2u, float16_t(f16tof32(u[0u].z)));
+}
+
diff --git a/test/tint/buffer/uniform/std140/unnested/mat3x3_f16/to_storage.wgsl.expected.ir.fxc.hlsl b/test/tint/buffer/uniform/std140/unnested/mat3x3_f16/to_storage.wgsl.expected.ir.fxc.hlsl
index 3f437dc..cd95203 100644
--- a/test/tint/buffer/uniform/std140/unnested/mat3x3_f16/to_storage.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/buffer/uniform/std140/unnested/mat3x3_f16/to_storage.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,42 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Access
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+
+cbuffer cbuffer_u : register(b0) {
+  uint4 u[2];
+};
+RWByteAddressBuffer s : register(u1);
+vector<float16_t, 4> tint_bitcast_to_f16(uint4 src) {
+  uint4 v = src;
+  uint4 mask = (65535u).xxxx;
+  uint4 shift = (16u).xxxx;
+  float4 t_low = f16tof32((v & mask));
+  float4 t_high = f16tof32(((v >> shift) & mask));
+  float16_t v_1 = float16_t(t_low.x);
+  float16_t v_2 = float16_t(t_high.x);
+  float16_t v_3 = float16_t(t_low.y);
+  return vector<float16_t, 4>(v_1, v_2, v_3, float16_t(t_high.y));
+}
+
+void v_4(uint offset, matrix<float16_t, 3, 3> obj) {
+  s.Store<vector<float16_t, 3> >((offset + 0u), obj[0u]);
+  s.Store<vector<float16_t, 3> >((offset + 8u), obj[1u]);
+  s.Store<vector<float16_t, 3> >((offset + 16u), obj[2u]);
+}
+
+matrix<float16_t, 3, 3> v_5(uint start_byte_offset) {
+  vector<float16_t, 3> v_6 = tint_bitcast_to_f16(u[(start_byte_offset / 16u)]).xyz;
+  vector<float16_t, 3> v_7 = tint_bitcast_to_f16(u[((8u + start_byte_offset) / 16u)]).xyz;
+  return matrix<float16_t, 3, 3>(v_6, v_7, tint_bitcast_to_f16(u[((16u + start_byte_offset) / 16u)]).xyz);
+}
+
+[numthreads(1, 1, 1)]
+void f() {
+  v_4(0u, v_5(0u));
+  s.Store<vector<float16_t, 3> >(8u, tint_bitcast_to_f16(u[0u]).xyz);
+  s.Store<vector<float16_t, 3> >(8u, tint_bitcast_to_f16(u[0u]).xyz.zxy);
+  s.Store<float16_t>(2u, float16_t(f16tof32(u[0u].z)));
+}
+
+FXC validation failure:
+c:\src\dawn\Shader@0x0000022D4E264270(6,8-16): error X3000: syntax error: unexpected token 'float16_t'
+
diff --git a/test/tint/buffer/uniform/std140/unnested/mat3x3_f16/to_workgroup.wgsl.expected.ir.dxc.hlsl b/test/tint/buffer/uniform/std140/unnested/mat3x3_f16/to_workgroup.wgsl.expected.ir.dxc.hlsl
index 3f437dc..575f986 100644
--- a/test/tint/buffer/uniform/std140/unnested/mat3x3_f16/to_workgroup.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/buffer/uniform/std140/unnested/mat3x3_f16/to_workgroup.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,43 @@
-SKIP: FAILED
+struct f_inputs {
+  uint tint_local_index : SV_GroupIndex;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Access
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+
+cbuffer cbuffer_u : register(b0) {
+  uint4 u[2];
+};
+groupshared matrix<float16_t, 3, 3> w;
+vector<float16_t, 4> tint_bitcast_to_f16(uint4 src) {
+  uint4 v = src;
+  uint4 mask = (65535u).xxxx;
+  uint4 shift = (16u).xxxx;
+  float4 t_low = f16tof32((v & mask));
+  float4 t_high = f16tof32(((v >> shift) & mask));
+  float16_t v_1 = float16_t(t_low.x);
+  float16_t v_2 = float16_t(t_high.x);
+  float16_t v_3 = float16_t(t_low.y);
+  return vector<float16_t, 4>(v_1, v_2, v_3, float16_t(t_high.y));
+}
+
+matrix<float16_t, 3, 3> v_4(uint start_byte_offset) {
+  vector<float16_t, 3> v_5 = tint_bitcast_to_f16(u[(start_byte_offset / 16u)]).xyz;
+  vector<float16_t, 3> v_6 = tint_bitcast_to_f16(u[((8u + start_byte_offset) / 16u)]).xyz;
+  return matrix<float16_t, 3, 3>(v_5, v_6, tint_bitcast_to_f16(u[((16u + start_byte_offset) / 16u)]).xyz);
+}
+
+void f_inner(uint tint_local_index) {
+  if ((tint_local_index == 0u)) {
+    w = matrix<float16_t, 3, 3>((float16_t(0.0h)).xxx, (float16_t(0.0h)).xxx, (float16_t(0.0h)).xxx);
+  }
+  GroupMemoryBarrierWithGroupSync();
+  w = v_4(0u);
+  w[1] = tint_bitcast_to_f16(u[0u]).xyz;
+  w[1] = tint_bitcast_to_f16(u[0u]).xyz.zxy;
+  w[0][1] = float16_t(f16tof32(u[0u].z));
+}
+
+[numthreads(1, 1, 1)]
+void f(f_inputs inputs) {
+  f_inner(inputs.tint_local_index);
+}
+
diff --git a/test/tint/buffer/uniform/std140/unnested/mat3x3_f16/to_workgroup.wgsl.expected.ir.fxc.hlsl b/test/tint/buffer/uniform/std140/unnested/mat3x3_f16/to_workgroup.wgsl.expected.ir.fxc.hlsl
index 3f437dc..105a833 100644
--- a/test/tint/buffer/uniform/std140/unnested/mat3x3_f16/to_workgroup.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/buffer/uniform/std140/unnested/mat3x3_f16/to_workgroup.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,48 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Access
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct f_inputs {
+  uint tint_local_index : SV_GroupIndex;
+};
+
+
+cbuffer cbuffer_u : register(b0) {
+  uint4 u[2];
+};
+groupshared matrix<float16_t, 3, 3> w;
+vector<float16_t, 4> tint_bitcast_to_f16(uint4 src) {
+  uint4 v = src;
+  uint4 mask = (65535u).xxxx;
+  uint4 shift = (16u).xxxx;
+  float4 t_low = f16tof32((v & mask));
+  float4 t_high = f16tof32(((v >> shift) & mask));
+  float16_t v_1 = float16_t(t_low.x);
+  float16_t v_2 = float16_t(t_high.x);
+  float16_t v_3 = float16_t(t_low.y);
+  return vector<float16_t, 4>(v_1, v_2, v_3, float16_t(t_high.y));
+}
+
+matrix<float16_t, 3, 3> v_4(uint start_byte_offset) {
+  vector<float16_t, 3> v_5 = tint_bitcast_to_f16(u[(start_byte_offset / 16u)]).xyz;
+  vector<float16_t, 3> v_6 = tint_bitcast_to_f16(u[((8u + start_byte_offset) / 16u)]).xyz;
+  return matrix<float16_t, 3, 3>(v_5, v_6, tint_bitcast_to_f16(u[((16u + start_byte_offset) / 16u)]).xyz);
+}
+
+void f_inner(uint tint_local_index) {
+  if ((tint_local_index == 0u)) {
+    w = matrix<float16_t, 3, 3>((float16_t(0.0h)).xxx, (float16_t(0.0h)).xxx, (float16_t(0.0h)).xxx);
+  }
+  GroupMemoryBarrierWithGroupSync();
+  w = v_4(0u);
+  w[1] = tint_bitcast_to_f16(u[0u]).xyz;
+  w[1] = tint_bitcast_to_f16(u[0u]).xyz.zxy;
+  w[0][1] = float16_t(f16tof32(u[0u].z));
+}
+
+[numthreads(1, 1, 1)]
+void f(f_inputs inputs) {
+  f_inner(inputs.tint_local_index);
+}
+
+FXC validation failure:
+c:\src\dawn\Shader@0x000001C4A6712610(9,20-28): error X3000: syntax error: unexpected token 'float16_t'
+
diff --git a/test/tint/buffer/uniform/std140/unnested/mat3x3_f32/dynamic_index_via_ptr.wgsl.expected.ir.dxc.hlsl b/test/tint/buffer/uniform/std140/unnested/mat3x3_f32/dynamic_index_via_ptr.wgsl.expected.ir.dxc.hlsl
index 3f437dc..4b19652 100644
--- a/test/tint/buffer/uniform/std140/unnested/mat3x3_f32/dynamic_index_via_ptr.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/buffer/uniform/std140/unnested/mat3x3_f32/dynamic_index_via_ptr.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,23 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Access
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+cbuffer cbuffer_m : register(b0) {
+  uint4 m[3];
+};
+static int counter = 0;
+int i() {
+  counter = (counter + 1);
+  return counter;
+}
+
+float3x3 v(uint start_byte_offset) {
+  float3 v_1 = asfloat(m[(start_byte_offset / 16u)].xyz);
+  float3 v_2 = asfloat(m[((16u + start_byte_offset) / 16u)].xyz);
+  return float3x3(v_1, v_2, asfloat(m[((32u + start_byte_offset) / 16u)].xyz));
+}
+
+[numthreads(1, 1, 1)]
+void f() {
+  uint v_3 = (16u * uint(i()));
+  float3x3 l_m = v(0u);
+  float3 l_m_i = asfloat(m[(v_3 / 16u)].xyz);
+}
+
diff --git a/test/tint/buffer/uniform/std140/unnested/mat3x3_f32/dynamic_index_via_ptr.wgsl.expected.ir.fxc.hlsl b/test/tint/buffer/uniform/std140/unnested/mat3x3_f32/dynamic_index_via_ptr.wgsl.expected.ir.fxc.hlsl
index 3f437dc..4b19652 100644
--- a/test/tint/buffer/uniform/std140/unnested/mat3x3_f32/dynamic_index_via_ptr.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/buffer/uniform/std140/unnested/mat3x3_f32/dynamic_index_via_ptr.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,23 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Access
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+cbuffer cbuffer_m : register(b0) {
+  uint4 m[3];
+};
+static int counter = 0;
+int i() {
+  counter = (counter + 1);
+  return counter;
+}
+
+float3x3 v(uint start_byte_offset) {
+  float3 v_1 = asfloat(m[(start_byte_offset / 16u)].xyz);
+  float3 v_2 = asfloat(m[((16u + start_byte_offset) / 16u)].xyz);
+  return float3x3(v_1, v_2, asfloat(m[((32u + start_byte_offset) / 16u)].xyz));
+}
+
+[numthreads(1, 1, 1)]
+void f() {
+  uint v_3 = (16u * uint(i()));
+  float3x3 l_m = v(0u);
+  float3 l_m_i = asfloat(m[(v_3 / 16u)].xyz);
+}
+
diff --git a/test/tint/buffer/uniform/std140/unnested/mat3x3_f32/static_index_via_ptr.wgsl.expected.ir.dxc.hlsl b/test/tint/buffer/uniform/std140/unnested/mat3x3_f32/static_index_via_ptr.wgsl.expected.ir.dxc.hlsl
index 3f437dc..8fc6d50 100644
--- a/test/tint/buffer/uniform/std140/unnested/mat3x3_f32/static_index_via_ptr.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/buffer/uniform/std140/unnested/mat3x3_f32/static_index_via_ptr.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,22 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Access
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+cbuffer cbuffer_m : register(b0) {
+  uint4 m[3];
+};
+static int counter = 0;
+int i() {
+  counter = (counter + 1);
+  return counter;
+}
+
+float3x3 v(uint start_byte_offset) {
+  float3 v_1 = asfloat(m[(start_byte_offset / 16u)].xyz);
+  float3 v_2 = asfloat(m[((16u + start_byte_offset) / 16u)].xyz);
+  return float3x3(v_1, v_2, asfloat(m[((32u + start_byte_offset) / 16u)].xyz));
+}
+
+[numthreads(1, 1, 1)]
+void f() {
+  float3x3 l_m = v(0u);
+  float3 l_m_1 = asfloat(m[1u].xyz);
+}
+
diff --git a/test/tint/buffer/uniform/std140/unnested/mat3x3_f32/static_index_via_ptr.wgsl.expected.ir.fxc.hlsl b/test/tint/buffer/uniform/std140/unnested/mat3x3_f32/static_index_via_ptr.wgsl.expected.ir.fxc.hlsl
index 3f437dc..8fc6d50 100644
--- a/test/tint/buffer/uniform/std140/unnested/mat3x3_f32/static_index_via_ptr.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/buffer/uniform/std140/unnested/mat3x3_f32/static_index_via_ptr.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,22 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Access
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+cbuffer cbuffer_m : register(b0) {
+  uint4 m[3];
+};
+static int counter = 0;
+int i() {
+  counter = (counter + 1);
+  return counter;
+}
+
+float3x3 v(uint start_byte_offset) {
+  float3 v_1 = asfloat(m[(start_byte_offset / 16u)].xyz);
+  float3 v_2 = asfloat(m[((16u + start_byte_offset) / 16u)].xyz);
+  return float3x3(v_1, v_2, asfloat(m[((32u + start_byte_offset) / 16u)].xyz));
+}
+
+[numthreads(1, 1, 1)]
+void f() {
+  float3x3 l_m = v(0u);
+  float3 l_m_1 = asfloat(m[1u].xyz);
+}
+
diff --git a/test/tint/buffer/uniform/std140/unnested/mat3x3_f32/to_builtin.wgsl.expected.ir.dxc.hlsl b/test/tint/buffer/uniform/std140/unnested/mat3x3_f32/to_builtin.wgsl.expected.ir.dxc.hlsl
index 3f437dc..b5212f1 100644
--- a/test/tint/buffer/uniform/std140/unnested/mat3x3_f32/to_builtin.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/buffer/uniform/std140/unnested/mat3x3_f32/to_builtin.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,17 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Access
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+cbuffer cbuffer_u : register(b0) {
+  uint4 u[3];
+};
+float3x3 v(uint start_byte_offset) {
+  float3 v_1 = asfloat(u[(start_byte_offset / 16u)].xyz);
+  float3 v_2 = asfloat(u[((16u + start_byte_offset) / 16u)].xyz);
+  return float3x3(v_1, v_2, asfloat(u[((32u + start_byte_offset) / 16u)].xyz));
+}
+
+[numthreads(1, 1, 1)]
+void f() {
+  float3x3 t = transpose(v(0u));
+  float l = length(asfloat(u[1u].xyz));
+  float a = abs(asfloat(u[0u].xyz).zxy[0u]);
+}
+
diff --git a/test/tint/buffer/uniform/std140/unnested/mat3x3_f32/to_builtin.wgsl.expected.ir.fxc.hlsl b/test/tint/buffer/uniform/std140/unnested/mat3x3_f32/to_builtin.wgsl.expected.ir.fxc.hlsl
index 3f437dc..b5212f1 100644
--- a/test/tint/buffer/uniform/std140/unnested/mat3x3_f32/to_builtin.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/buffer/uniform/std140/unnested/mat3x3_f32/to_builtin.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,17 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Access
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+cbuffer cbuffer_u : register(b0) {
+  uint4 u[3];
+};
+float3x3 v(uint start_byte_offset) {
+  float3 v_1 = asfloat(u[(start_byte_offset / 16u)].xyz);
+  float3 v_2 = asfloat(u[((16u + start_byte_offset) / 16u)].xyz);
+  return float3x3(v_1, v_2, asfloat(u[((32u + start_byte_offset) / 16u)].xyz));
+}
+
+[numthreads(1, 1, 1)]
+void f() {
+  float3x3 t = transpose(v(0u));
+  float l = length(asfloat(u[1u].xyz));
+  float a = abs(asfloat(u[0u].xyz).zxy[0u]);
+}
+
diff --git a/test/tint/buffer/uniform/std140/unnested/mat3x3_f32/to_fn.wgsl.expected.ir.dxc.hlsl b/test/tint/buffer/uniform/std140/unnested/mat3x3_f32/to_fn.wgsl.expected.ir.dxc.hlsl
index 3f437dc..25d3bab 100644
--- a/test/tint/buffer/uniform/std140/unnested/mat3x3_f32/to_fn.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/buffer/uniform/std140/unnested/mat3x3_f32/to_fn.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,28 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Access
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+cbuffer cbuffer_u : register(b0) {
+  uint4 u[3];
+};
+void a(float3x3 m) {
+}
+
+void b(float3 v) {
+}
+
+void c(float f) {
+}
+
+float3x3 v_1(uint start_byte_offset) {
+  float3 v_2 = asfloat(u[(start_byte_offset / 16u)].xyz);
+  float3 v_3 = asfloat(u[((16u + start_byte_offset) / 16u)].xyz);
+  return float3x3(v_2, v_3, asfloat(u[((32u + start_byte_offset) / 16u)].xyz));
+}
+
+[numthreads(1, 1, 1)]
+void f() {
+  a(v_1(0u));
+  b(asfloat(u[1u].xyz));
+  b(asfloat(u[1u].xyz).zxy);
+  c(asfloat(u[1u].x));
+  c(asfloat(u[1u].xyz).zxy[0u]);
+}
+
diff --git a/test/tint/buffer/uniform/std140/unnested/mat3x3_f32/to_fn.wgsl.expected.ir.fxc.hlsl b/test/tint/buffer/uniform/std140/unnested/mat3x3_f32/to_fn.wgsl.expected.ir.fxc.hlsl
index 3f437dc..25d3bab 100644
--- a/test/tint/buffer/uniform/std140/unnested/mat3x3_f32/to_fn.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/buffer/uniform/std140/unnested/mat3x3_f32/to_fn.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,28 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Access
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+cbuffer cbuffer_u : register(b0) {
+  uint4 u[3];
+};
+void a(float3x3 m) {
+}
+
+void b(float3 v) {
+}
+
+void c(float f) {
+}
+
+float3x3 v_1(uint start_byte_offset) {
+  float3 v_2 = asfloat(u[(start_byte_offset / 16u)].xyz);
+  float3 v_3 = asfloat(u[((16u + start_byte_offset) / 16u)].xyz);
+  return float3x3(v_2, v_3, asfloat(u[((32u + start_byte_offset) / 16u)].xyz));
+}
+
+[numthreads(1, 1, 1)]
+void f() {
+  a(v_1(0u));
+  b(asfloat(u[1u].xyz));
+  b(asfloat(u[1u].xyz).zxy);
+  c(asfloat(u[1u].x));
+  c(asfloat(u[1u].xyz).zxy[0u]);
+}
+
diff --git a/test/tint/buffer/uniform/std140/unnested/mat3x3_f32/to_private.wgsl.expected.ir.dxc.hlsl b/test/tint/buffer/uniform/std140/unnested/mat3x3_f32/to_private.wgsl.expected.ir.dxc.hlsl
index 3f437dc..0c28041 100644
--- a/test/tint/buffer/uniform/std140/unnested/mat3x3_f32/to_private.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/buffer/uniform/std140/unnested/mat3x3_f32/to_private.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,19 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Access
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+cbuffer cbuffer_u : register(b0) {
+  uint4 u[3];
+};
+static float3x3 p = float3x3((0.0f).xxx, (0.0f).xxx, (0.0f).xxx);
+float3x3 v(uint start_byte_offset) {
+  float3 v_1 = asfloat(u[(start_byte_offset / 16u)].xyz);
+  float3 v_2 = asfloat(u[((16u + start_byte_offset) / 16u)].xyz);
+  return float3x3(v_1, v_2, asfloat(u[((32u + start_byte_offset) / 16u)].xyz));
+}
+
+[numthreads(1, 1, 1)]
+void f() {
+  p = v(0u);
+  p[1] = asfloat(u[0u].xyz);
+  p[1] = asfloat(u[0u].xyz).zxy;
+  p[0][1] = asfloat(u[1u].x);
+}
+
diff --git a/test/tint/buffer/uniform/std140/unnested/mat3x3_f32/to_private.wgsl.expected.ir.fxc.hlsl b/test/tint/buffer/uniform/std140/unnested/mat3x3_f32/to_private.wgsl.expected.ir.fxc.hlsl
index 3f437dc..0c28041 100644
--- a/test/tint/buffer/uniform/std140/unnested/mat3x3_f32/to_private.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/buffer/uniform/std140/unnested/mat3x3_f32/to_private.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,19 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Access
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+cbuffer cbuffer_u : register(b0) {
+  uint4 u[3];
+};
+static float3x3 p = float3x3((0.0f).xxx, (0.0f).xxx, (0.0f).xxx);
+float3x3 v(uint start_byte_offset) {
+  float3 v_1 = asfloat(u[(start_byte_offset / 16u)].xyz);
+  float3 v_2 = asfloat(u[((16u + start_byte_offset) / 16u)].xyz);
+  return float3x3(v_1, v_2, asfloat(u[((32u + start_byte_offset) / 16u)].xyz));
+}
+
+[numthreads(1, 1, 1)]
+void f() {
+  p = v(0u);
+  p[1] = asfloat(u[0u].xyz);
+  p[1] = asfloat(u[0u].xyz).zxy;
+  p[0][1] = asfloat(u[1u].x);
+}
+
diff --git a/test/tint/buffer/uniform/std140/unnested/mat3x3_f32/to_storage.wgsl.expected.ir.dxc.hlsl b/test/tint/buffer/uniform/std140/unnested/mat3x3_f32/to_storage.wgsl.expected.ir.dxc.hlsl
index 3f437dc..ee5e537 100644
--- a/test/tint/buffer/uniform/std140/unnested/mat3x3_f32/to_storage.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/buffer/uniform/std140/unnested/mat3x3_f32/to_storage.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,25 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Access
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+cbuffer cbuffer_u : register(b0) {
+  uint4 u[3];
+};
+RWByteAddressBuffer s : register(u1);
+void v(uint offset, float3x3 obj) {
+  s.Store3((offset + 0u), asuint(obj[0u]));
+  s.Store3((offset + 16u), asuint(obj[1u]));
+  s.Store3((offset + 32u), asuint(obj[2u]));
+}
+
+float3x3 v_1(uint start_byte_offset) {
+  float3 v_2 = asfloat(u[(start_byte_offset / 16u)].xyz);
+  float3 v_3 = asfloat(u[((16u + start_byte_offset) / 16u)].xyz);
+  return float3x3(v_2, v_3, asfloat(u[((32u + start_byte_offset) / 16u)].xyz));
+}
+
+[numthreads(1, 1, 1)]
+void f() {
+  v(0u, v_1(0u));
+  s.Store3(16u, asuint(asfloat(u[0u].xyz)));
+  s.Store3(16u, asuint(asfloat(u[0u].xyz).zxy));
+  s.Store(4u, asuint(asfloat(u[1u].x)));
+}
+
diff --git a/test/tint/buffer/uniform/std140/unnested/mat3x3_f32/to_storage.wgsl.expected.ir.fxc.hlsl b/test/tint/buffer/uniform/std140/unnested/mat3x3_f32/to_storage.wgsl.expected.ir.fxc.hlsl
index 3f437dc..ee5e537 100644
--- a/test/tint/buffer/uniform/std140/unnested/mat3x3_f32/to_storage.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/buffer/uniform/std140/unnested/mat3x3_f32/to_storage.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,25 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Access
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+cbuffer cbuffer_u : register(b0) {
+  uint4 u[3];
+};
+RWByteAddressBuffer s : register(u1);
+void v(uint offset, float3x3 obj) {
+  s.Store3((offset + 0u), asuint(obj[0u]));
+  s.Store3((offset + 16u), asuint(obj[1u]));
+  s.Store3((offset + 32u), asuint(obj[2u]));
+}
+
+float3x3 v_1(uint start_byte_offset) {
+  float3 v_2 = asfloat(u[(start_byte_offset / 16u)].xyz);
+  float3 v_3 = asfloat(u[((16u + start_byte_offset) / 16u)].xyz);
+  return float3x3(v_2, v_3, asfloat(u[((32u + start_byte_offset) / 16u)].xyz));
+}
+
+[numthreads(1, 1, 1)]
+void f() {
+  v(0u, v_1(0u));
+  s.Store3(16u, asuint(asfloat(u[0u].xyz)));
+  s.Store3(16u, asuint(asfloat(u[0u].xyz).zxy));
+  s.Store(4u, asuint(asfloat(u[1u].x)));
+}
+
diff --git a/test/tint/buffer/uniform/std140/unnested/mat3x3_f32/to_workgroup.wgsl.expected.ir.dxc.hlsl b/test/tint/buffer/uniform/std140/unnested/mat3x3_f32/to_workgroup.wgsl.expected.ir.dxc.hlsl
index 3f437dc..3a0c206 100644
--- a/test/tint/buffer/uniform/std140/unnested/mat3x3_f32/to_workgroup.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/buffer/uniform/std140/unnested/mat3x3_f32/to_workgroup.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,31 @@
-SKIP: FAILED
+struct f_inputs {
+  uint tint_local_index : SV_GroupIndex;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Access
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+
+cbuffer cbuffer_u : register(b0) {
+  uint4 u[3];
+};
+groupshared float3x3 w;
+float3x3 v(uint start_byte_offset) {
+  float3 v_1 = asfloat(u[(start_byte_offset / 16u)].xyz);
+  float3 v_2 = asfloat(u[((16u + start_byte_offset) / 16u)].xyz);
+  return float3x3(v_1, v_2, asfloat(u[((32u + start_byte_offset) / 16u)].xyz));
+}
+
+void f_inner(uint tint_local_index) {
+  if ((tint_local_index == 0u)) {
+    w = float3x3((0.0f).xxx, (0.0f).xxx, (0.0f).xxx);
+  }
+  GroupMemoryBarrierWithGroupSync();
+  w = v(0u);
+  w[1] = asfloat(u[0u].xyz);
+  w[1] = asfloat(u[0u].xyz).zxy;
+  w[0][1] = asfloat(u[1u].x);
+}
+
+[numthreads(1, 1, 1)]
+void f(f_inputs inputs) {
+  f_inner(inputs.tint_local_index);
+}
+
diff --git a/test/tint/buffer/uniform/std140/unnested/mat3x3_f32/to_workgroup.wgsl.expected.ir.fxc.hlsl b/test/tint/buffer/uniform/std140/unnested/mat3x3_f32/to_workgroup.wgsl.expected.ir.fxc.hlsl
index 3f437dc..3a0c206 100644
--- a/test/tint/buffer/uniform/std140/unnested/mat3x3_f32/to_workgroup.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/buffer/uniform/std140/unnested/mat3x3_f32/to_workgroup.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,31 @@
-SKIP: FAILED
+struct f_inputs {
+  uint tint_local_index : SV_GroupIndex;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Access
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+
+cbuffer cbuffer_u : register(b0) {
+  uint4 u[3];
+};
+groupshared float3x3 w;
+float3x3 v(uint start_byte_offset) {
+  float3 v_1 = asfloat(u[(start_byte_offset / 16u)].xyz);
+  float3 v_2 = asfloat(u[((16u + start_byte_offset) / 16u)].xyz);
+  return float3x3(v_1, v_2, asfloat(u[((32u + start_byte_offset) / 16u)].xyz));
+}
+
+void f_inner(uint tint_local_index) {
+  if ((tint_local_index == 0u)) {
+    w = float3x3((0.0f).xxx, (0.0f).xxx, (0.0f).xxx);
+  }
+  GroupMemoryBarrierWithGroupSync();
+  w = v(0u);
+  w[1] = asfloat(u[0u].xyz);
+  w[1] = asfloat(u[0u].xyz).zxy;
+  w[0][1] = asfloat(u[1u].x);
+}
+
+[numthreads(1, 1, 1)]
+void f(f_inputs inputs) {
+  f_inner(inputs.tint_local_index);
+}
+
diff --git a/test/tint/buffer/uniform/std140/unnested/mat3x4_f16/dynamic_index_via_ptr.wgsl.expected.ir.dxc.hlsl b/test/tint/buffer/uniform/std140/unnested/mat3x4_f16/dynamic_index_via_ptr.wgsl.expected.ir.dxc.hlsl
index 3f437dc..3d284c5 100644
--- a/test/tint/buffer/uniform/std140/unnested/mat3x4_f16/dynamic_index_via_ptr.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/buffer/uniform/std140/unnested/mat3x4_f16/dynamic_index_via_ptr.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,35 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Access
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+cbuffer cbuffer_m : register(b0) {
+  uint4 m[2];
+};
+static int counter = 0;
+int i() {
+  counter = (counter + 1);
+  return counter;
+}
+
+vector<float16_t, 4> tint_bitcast_to_f16(uint4 src) {
+  uint4 v = src;
+  uint4 mask = (65535u).xxxx;
+  uint4 shift = (16u).xxxx;
+  float4 t_low = f16tof32((v & mask));
+  float4 t_high = f16tof32(((v >> shift) & mask));
+  float16_t v_1 = float16_t(t_low.x);
+  float16_t v_2 = float16_t(t_high.x);
+  float16_t v_3 = float16_t(t_low.y);
+  return vector<float16_t, 4>(v_1, v_2, v_3, float16_t(t_high.y));
+}
+
+matrix<float16_t, 3, 4> v_4(uint start_byte_offset) {
+  vector<float16_t, 4> v_5 = tint_bitcast_to_f16(m[(start_byte_offset / 16u)]);
+  vector<float16_t, 4> v_6 = tint_bitcast_to_f16(m[((8u + start_byte_offset) / 16u)]);
+  return matrix<float16_t, 3, 4>(v_5, v_6, tint_bitcast_to_f16(m[((16u + start_byte_offset) / 16u)]));
+}
+
+[numthreads(1, 1, 1)]
+void f() {
+  uint v_7 = (8u * uint(i()));
+  matrix<float16_t, 3, 4> l_m = v_4(0u);
+  vector<float16_t, 4> l_m_i = tint_bitcast_to_f16(m[(v_7 / 16u)]);
+}
+
diff --git a/test/tint/buffer/uniform/std140/unnested/mat3x4_f16/dynamic_index_via_ptr.wgsl.expected.ir.fxc.hlsl b/test/tint/buffer/uniform/std140/unnested/mat3x4_f16/dynamic_index_via_ptr.wgsl.expected.ir.fxc.hlsl
index 3f437dc..4558f7c 100644
--- a/test/tint/buffer/uniform/std140/unnested/mat3x4_f16/dynamic_index_via_ptr.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/buffer/uniform/std140/unnested/mat3x4_f16/dynamic_index_via_ptr.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,40 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Access
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+
+cbuffer cbuffer_m : register(b0) {
+  uint4 m[2];
+};
+static int counter = 0;
+int i() {
+  counter = (counter + 1);
+  return counter;
+}
+
+vector<float16_t, 4> tint_bitcast_to_f16(uint4 src) {
+  uint4 v = src;
+  uint4 mask = (65535u).xxxx;
+  uint4 shift = (16u).xxxx;
+  float4 t_low = f16tof32((v & mask));
+  float4 t_high = f16tof32(((v >> shift) & mask));
+  float16_t v_1 = float16_t(t_low.x);
+  float16_t v_2 = float16_t(t_high.x);
+  float16_t v_3 = float16_t(t_low.y);
+  return vector<float16_t, 4>(v_1, v_2, v_3, float16_t(t_high.y));
+}
+
+matrix<float16_t, 3, 4> v_4(uint start_byte_offset) {
+  vector<float16_t, 4> v_5 = tint_bitcast_to_f16(m[(start_byte_offset / 16u)]);
+  vector<float16_t, 4> v_6 = tint_bitcast_to_f16(m[((8u + start_byte_offset) / 16u)]);
+  return matrix<float16_t, 3, 4>(v_5, v_6, tint_bitcast_to_f16(m[((16u + start_byte_offset) / 16u)]));
+}
+
+[numthreads(1, 1, 1)]
+void f() {
+  uint v_7 = (8u * uint(i()));
+  matrix<float16_t, 3, 4> l_m = v_4(0u);
+  vector<float16_t, 4> l_m_i = tint_bitcast_to_f16(m[(v_7 / 16u)]);
+}
+
+FXC validation failure:
+c:\src\dawn\Shader@0x000001F2765F24C0(11,8-16): error X3000: syntax error: unexpected token 'float16_t'
+
diff --git a/test/tint/buffer/uniform/std140/unnested/mat3x4_f16/static_index_via_ptr.wgsl.expected.ir.dxc.hlsl b/test/tint/buffer/uniform/std140/unnested/mat3x4_f16/static_index_via_ptr.wgsl.expected.ir.dxc.hlsl
index 3f437dc..46563f6 100644
--- a/test/tint/buffer/uniform/std140/unnested/mat3x4_f16/static_index_via_ptr.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/buffer/uniform/std140/unnested/mat3x4_f16/static_index_via_ptr.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,34 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Access
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+cbuffer cbuffer_m : register(b0) {
+  uint4 m[2];
+};
+static int counter = 0;
+int i() {
+  counter = (counter + 1);
+  return counter;
+}
+
+vector<float16_t, 4> tint_bitcast_to_f16(uint4 src) {
+  uint4 v = src;
+  uint4 mask = (65535u).xxxx;
+  uint4 shift = (16u).xxxx;
+  float4 t_low = f16tof32((v & mask));
+  float4 t_high = f16tof32(((v >> shift) & mask));
+  float16_t v_1 = float16_t(t_low.x);
+  float16_t v_2 = float16_t(t_high.x);
+  float16_t v_3 = float16_t(t_low.y);
+  return vector<float16_t, 4>(v_1, v_2, v_3, float16_t(t_high.y));
+}
+
+matrix<float16_t, 3, 4> v_4(uint start_byte_offset) {
+  vector<float16_t, 4> v_5 = tint_bitcast_to_f16(m[(start_byte_offset / 16u)]);
+  vector<float16_t, 4> v_6 = tint_bitcast_to_f16(m[((8u + start_byte_offset) / 16u)]);
+  return matrix<float16_t, 3, 4>(v_5, v_6, tint_bitcast_to_f16(m[((16u + start_byte_offset) / 16u)]));
+}
+
+[numthreads(1, 1, 1)]
+void f() {
+  matrix<float16_t, 3, 4> l_m = v_4(0u);
+  vector<float16_t, 4> l_m_1 = tint_bitcast_to_f16(m[0u]);
+}
+
diff --git a/test/tint/buffer/uniform/std140/unnested/mat3x4_f16/static_index_via_ptr.wgsl.expected.ir.fxc.hlsl b/test/tint/buffer/uniform/std140/unnested/mat3x4_f16/static_index_via_ptr.wgsl.expected.ir.fxc.hlsl
index 3f437dc..c181488 100644
--- a/test/tint/buffer/uniform/std140/unnested/mat3x4_f16/static_index_via_ptr.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/buffer/uniform/std140/unnested/mat3x4_f16/static_index_via_ptr.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,39 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Access
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+
+cbuffer cbuffer_m : register(b0) {
+  uint4 m[2];
+};
+static int counter = 0;
+int i() {
+  counter = (counter + 1);
+  return counter;
+}
+
+vector<float16_t, 4> tint_bitcast_to_f16(uint4 src) {
+  uint4 v = src;
+  uint4 mask = (65535u).xxxx;
+  uint4 shift = (16u).xxxx;
+  float4 t_low = f16tof32((v & mask));
+  float4 t_high = f16tof32(((v >> shift) & mask));
+  float16_t v_1 = float16_t(t_low.x);
+  float16_t v_2 = float16_t(t_high.x);
+  float16_t v_3 = float16_t(t_low.y);
+  return vector<float16_t, 4>(v_1, v_2, v_3, float16_t(t_high.y));
+}
+
+matrix<float16_t, 3, 4> v_4(uint start_byte_offset) {
+  vector<float16_t, 4> v_5 = tint_bitcast_to_f16(m[(start_byte_offset / 16u)]);
+  vector<float16_t, 4> v_6 = tint_bitcast_to_f16(m[((8u + start_byte_offset) / 16u)]);
+  return matrix<float16_t, 3, 4>(v_5, v_6, tint_bitcast_to_f16(m[((16u + start_byte_offset) / 16u)]));
+}
+
+[numthreads(1, 1, 1)]
+void f() {
+  matrix<float16_t, 3, 4> l_m = v_4(0u);
+  vector<float16_t, 4> l_m_1 = tint_bitcast_to_f16(m[0u]);
+}
+
+FXC validation failure:
+c:\src\dawn\Shader@0x000001F82CD8DBA0(11,8-16): error X3000: syntax error: unexpected token 'float16_t'
+
diff --git a/test/tint/buffer/uniform/std140/unnested/mat3x4_f16/to_builtin.wgsl.expected.ir.dxc.hlsl b/test/tint/buffer/uniform/std140/unnested/mat3x4_f16/to_builtin.wgsl.expected.ir.dxc.hlsl
index 3f437dc..35d56f8 100644
--- a/test/tint/buffer/uniform/std140/unnested/mat3x4_f16/to_builtin.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/buffer/uniform/std140/unnested/mat3x4_f16/to_builtin.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,29 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Access
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+cbuffer cbuffer_u : register(b0) {
+  uint4 u[2];
+};
+vector<float16_t, 4> tint_bitcast_to_f16(uint4 src) {
+  uint4 v = src;
+  uint4 mask = (65535u).xxxx;
+  uint4 shift = (16u).xxxx;
+  float4 t_low = f16tof32((v & mask));
+  float4 t_high = f16tof32(((v >> shift) & mask));
+  float16_t v_1 = float16_t(t_low.x);
+  float16_t v_2 = float16_t(t_high.x);
+  float16_t v_3 = float16_t(t_low.y);
+  return vector<float16_t, 4>(v_1, v_2, v_3, float16_t(t_high.y));
+}
+
+matrix<float16_t, 3, 4> v_4(uint start_byte_offset) {
+  vector<float16_t, 4> v_5 = tint_bitcast_to_f16(u[(start_byte_offset / 16u)]);
+  vector<float16_t, 4> v_6 = tint_bitcast_to_f16(u[((8u + start_byte_offset) / 16u)]);
+  return matrix<float16_t, 3, 4>(v_5, v_6, tint_bitcast_to_f16(u[((16u + start_byte_offset) / 16u)]));
+}
+
+[numthreads(1, 1, 1)]
+void f() {
+  matrix<float16_t, 4, 3> t = transpose(v_4(0u));
+  float16_t l = length(tint_bitcast_to_f16(u[0u]));
+  float16_t a = abs(tint_bitcast_to_f16(u[0u]).ywxz[0u]);
+}
+
diff --git a/test/tint/buffer/uniform/std140/unnested/mat3x4_f16/to_builtin.wgsl.expected.ir.fxc.hlsl b/test/tint/buffer/uniform/std140/unnested/mat3x4_f16/to_builtin.wgsl.expected.ir.fxc.hlsl
index 3f437dc..07e5e96 100644
--- a/test/tint/buffer/uniform/std140/unnested/mat3x4_f16/to_builtin.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/buffer/uniform/std140/unnested/mat3x4_f16/to_builtin.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,34 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Access
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+
+cbuffer cbuffer_u : register(b0) {
+  uint4 u[2];
+};
+vector<float16_t, 4> tint_bitcast_to_f16(uint4 src) {
+  uint4 v = src;
+  uint4 mask = (65535u).xxxx;
+  uint4 shift = (16u).xxxx;
+  float4 t_low = f16tof32((v & mask));
+  float4 t_high = f16tof32(((v >> shift) & mask));
+  float16_t v_1 = float16_t(t_low.x);
+  float16_t v_2 = float16_t(t_high.x);
+  float16_t v_3 = float16_t(t_low.y);
+  return vector<float16_t, 4>(v_1, v_2, v_3, float16_t(t_high.y));
+}
+
+matrix<float16_t, 3, 4> v_4(uint start_byte_offset) {
+  vector<float16_t, 4> v_5 = tint_bitcast_to_f16(u[(start_byte_offset / 16u)]);
+  vector<float16_t, 4> v_6 = tint_bitcast_to_f16(u[((8u + start_byte_offset) / 16u)]);
+  return matrix<float16_t, 3, 4>(v_5, v_6, tint_bitcast_to_f16(u[((16u + start_byte_offset) / 16u)]));
+}
+
+[numthreads(1, 1, 1)]
+void f() {
+  matrix<float16_t, 4, 3> t = transpose(v_4(0u));
+  float16_t l = length(tint_bitcast_to_f16(u[0u]));
+  float16_t a = abs(tint_bitcast_to_f16(u[0u]).ywxz[0u]);
+}
+
+FXC validation failure:
+c:\src\dawn\Shader@0x0000025489B03CF0(5,8-16): error X3000: syntax error: unexpected token 'float16_t'
+
diff --git a/test/tint/buffer/uniform/std140/unnested/mat3x4_f16/to_fn.wgsl.expected.ir.dxc.hlsl b/test/tint/buffer/uniform/std140/unnested/mat3x4_f16/to_fn.wgsl.expected.ir.dxc.hlsl
index 3f437dc..c4520b4 100644
--- a/test/tint/buffer/uniform/std140/unnested/mat3x4_f16/to_fn.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/buffer/uniform/std140/unnested/mat3x4_f16/to_fn.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,40 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Access
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+cbuffer cbuffer_u : register(b0) {
+  uint4 u[2];
+};
+void a(matrix<float16_t, 3, 4> m) {
+}
+
+void b(vector<float16_t, 4> v) {
+}
+
+void c(float16_t f) {
+}
+
+vector<float16_t, 4> tint_bitcast_to_f16(uint4 src) {
+  uint4 v = src;
+  uint4 mask = (65535u).xxxx;
+  uint4 shift = (16u).xxxx;
+  float4 t_low = f16tof32((v & mask));
+  float4 t_high = f16tof32(((v >> shift) & mask));
+  float16_t v_1 = float16_t(t_low.x);
+  float16_t v_2 = float16_t(t_high.x);
+  float16_t v_3 = float16_t(t_low.y);
+  return vector<float16_t, 4>(v_1, v_2, v_3, float16_t(t_high.y));
+}
+
+matrix<float16_t, 3, 4> v_4(uint start_byte_offset) {
+  vector<float16_t, 4> v_5 = tint_bitcast_to_f16(u[(start_byte_offset / 16u)]);
+  vector<float16_t, 4> v_6 = tint_bitcast_to_f16(u[((8u + start_byte_offset) / 16u)]);
+  return matrix<float16_t, 3, 4>(v_5, v_6, tint_bitcast_to_f16(u[((16u + start_byte_offset) / 16u)]));
+}
+
+[numthreads(1, 1, 1)]
+void f() {
+  a(v_4(0u));
+  b(tint_bitcast_to_f16(u[0u]));
+  b(tint_bitcast_to_f16(u[0u]).ywxz);
+  c(float16_t(f16tof32(u[0u].z)));
+  c(tint_bitcast_to_f16(u[0u]).ywxz[0u]);
+}
+
diff --git a/test/tint/buffer/uniform/std140/unnested/mat3x4_f16/to_fn.wgsl.expected.ir.fxc.hlsl b/test/tint/buffer/uniform/std140/unnested/mat3x4_f16/to_fn.wgsl.expected.ir.fxc.hlsl
index 3f437dc..42fdaf4 100644
--- a/test/tint/buffer/uniform/std140/unnested/mat3x4_f16/to_fn.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/buffer/uniform/std140/unnested/mat3x4_f16/to_fn.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,47 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Access
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+
+cbuffer cbuffer_u : register(b0) {
+  uint4 u[2];
+};
+void a(matrix<float16_t, 3, 4> m) {
+}
+
+void b(vector<float16_t, 4> v) {
+}
+
+void c(float16_t f) {
+}
+
+vector<float16_t, 4> tint_bitcast_to_f16(uint4 src) {
+  uint4 v = src;
+  uint4 mask = (65535u).xxxx;
+  uint4 shift = (16u).xxxx;
+  float4 t_low = f16tof32((v & mask));
+  float4 t_high = f16tof32(((v >> shift) & mask));
+  float16_t v_1 = float16_t(t_low.x);
+  float16_t v_2 = float16_t(t_high.x);
+  float16_t v_3 = float16_t(t_low.y);
+  return vector<float16_t, 4>(v_1, v_2, v_3, float16_t(t_high.y));
+}
+
+matrix<float16_t, 3, 4> v_4(uint start_byte_offset) {
+  vector<float16_t, 4> v_5 = tint_bitcast_to_f16(u[(start_byte_offset / 16u)]);
+  vector<float16_t, 4> v_6 = tint_bitcast_to_f16(u[((8u + start_byte_offset) / 16u)]);
+  return matrix<float16_t, 3, 4>(v_5, v_6, tint_bitcast_to_f16(u[((16u + start_byte_offset) / 16u)]));
+}
+
+[numthreads(1, 1, 1)]
+void f() {
+  a(v_4(0u));
+  b(tint_bitcast_to_f16(u[0u]));
+  b(tint_bitcast_to_f16(u[0u]).ywxz);
+  c(float16_t(f16tof32(u[0u].z)));
+  c(tint_bitcast_to_f16(u[0u]).ywxz[0u]);
+}
+
+FXC validation failure:
+c:\src\dawn\Shader@0x0000021F72176850(5,15-23): error X3000: syntax error: unexpected token 'float16_t'
+c:\src\dawn\Shader@0x0000021F72176850(8,15-23): error X3000: syntax error: unexpected token 'float16_t'
+c:\src\dawn\Shader@0x0000021F72176850(11,8-16): error X3000: unrecognized identifier 'float16_t'
+
diff --git a/test/tint/buffer/uniform/std140/unnested/mat3x4_f16/to_private.wgsl.expected.ir.dxc.hlsl b/test/tint/buffer/uniform/std140/unnested/mat3x4_f16/to_private.wgsl.expected.ir.dxc.hlsl
index 3f437dc..19d5777 100644
--- a/test/tint/buffer/uniform/std140/unnested/mat3x4_f16/to_private.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/buffer/uniform/std140/unnested/mat3x4_f16/to_private.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,31 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Access
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+cbuffer cbuffer_u : register(b0) {
+  uint4 u[2];
+};
+static matrix<float16_t, 3, 4> p = matrix<float16_t, 3, 4>((float16_t(0.0h)).xxxx, (float16_t(0.0h)).xxxx, (float16_t(0.0h)).xxxx);
+vector<float16_t, 4> tint_bitcast_to_f16(uint4 src) {
+  uint4 v = src;
+  uint4 mask = (65535u).xxxx;
+  uint4 shift = (16u).xxxx;
+  float4 t_low = f16tof32((v & mask));
+  float4 t_high = f16tof32(((v >> shift) & mask));
+  float16_t v_1 = float16_t(t_low.x);
+  float16_t v_2 = float16_t(t_high.x);
+  float16_t v_3 = float16_t(t_low.y);
+  return vector<float16_t, 4>(v_1, v_2, v_3, float16_t(t_high.y));
+}
+
+matrix<float16_t, 3, 4> v_4(uint start_byte_offset) {
+  vector<float16_t, 4> v_5 = tint_bitcast_to_f16(u[(start_byte_offset / 16u)]);
+  vector<float16_t, 4> v_6 = tint_bitcast_to_f16(u[((8u + start_byte_offset) / 16u)]);
+  return matrix<float16_t, 3, 4>(v_5, v_6, tint_bitcast_to_f16(u[((16u + start_byte_offset) / 16u)]));
+}
+
+[numthreads(1, 1, 1)]
+void f() {
+  p = v_4(0u);
+  p[1] = tint_bitcast_to_f16(u[0u]);
+  p[1] = tint_bitcast_to_f16(u[0u]).ywxz;
+  p[0][1] = float16_t(f16tof32(u[0u].z));
+}
+
diff --git a/test/tint/buffer/uniform/std140/unnested/mat3x4_f16/to_private.wgsl.expected.ir.fxc.hlsl b/test/tint/buffer/uniform/std140/unnested/mat3x4_f16/to_private.wgsl.expected.ir.fxc.hlsl
index 3f437dc..c42821d 100644
--- a/test/tint/buffer/uniform/std140/unnested/mat3x4_f16/to_private.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/buffer/uniform/std140/unnested/mat3x4_f16/to_private.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,36 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Access
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+
+cbuffer cbuffer_u : register(b0) {
+  uint4 u[2];
+};
+static matrix<float16_t, 3, 4> p = matrix<float16_t, 3, 4>((float16_t(0.0h)).xxxx, (float16_t(0.0h)).xxxx, (float16_t(0.0h)).xxxx);
+vector<float16_t, 4> tint_bitcast_to_f16(uint4 src) {
+  uint4 v = src;
+  uint4 mask = (65535u).xxxx;
+  uint4 shift = (16u).xxxx;
+  float4 t_low = f16tof32((v & mask));
+  float4 t_high = f16tof32(((v >> shift) & mask));
+  float16_t v_1 = float16_t(t_low.x);
+  float16_t v_2 = float16_t(t_high.x);
+  float16_t v_3 = float16_t(t_low.y);
+  return vector<float16_t, 4>(v_1, v_2, v_3, float16_t(t_high.y));
+}
+
+matrix<float16_t, 3, 4> v_4(uint start_byte_offset) {
+  vector<float16_t, 4> v_5 = tint_bitcast_to_f16(u[(start_byte_offset / 16u)]);
+  vector<float16_t, 4> v_6 = tint_bitcast_to_f16(u[((8u + start_byte_offset) / 16u)]);
+  return matrix<float16_t, 3, 4>(v_5, v_6, tint_bitcast_to_f16(u[((16u + start_byte_offset) / 16u)]));
+}
+
+[numthreads(1, 1, 1)]
+void f() {
+  p = v_4(0u);
+  p[1] = tint_bitcast_to_f16(u[0u]);
+  p[1] = tint_bitcast_to_f16(u[0u]).ywxz;
+  p[0][1] = float16_t(f16tof32(u[0u].z));
+}
+
+FXC validation failure:
+c:\src\dawn\Shader@0x0000029802A90DF0(5,15-23): error X3000: syntax error: unexpected token 'float16_t'
+
diff --git a/test/tint/buffer/uniform/std140/unnested/mat3x4_f16/to_storage.wgsl.expected.ir.dxc.hlsl b/test/tint/buffer/uniform/std140/unnested/mat3x4_f16/to_storage.wgsl.expected.ir.dxc.hlsl
index 3f437dc..9f9829a 100644
--- a/test/tint/buffer/uniform/std140/unnested/mat3x4_f16/to_storage.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/buffer/uniform/std140/unnested/mat3x4_f16/to_storage.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,37 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Access
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+cbuffer cbuffer_u : register(b0) {
+  uint4 u[2];
+};
+RWByteAddressBuffer s : register(u1);
+vector<float16_t, 4> tint_bitcast_to_f16(uint4 src) {
+  uint4 v = src;
+  uint4 mask = (65535u).xxxx;
+  uint4 shift = (16u).xxxx;
+  float4 t_low = f16tof32((v & mask));
+  float4 t_high = f16tof32(((v >> shift) & mask));
+  float16_t v_1 = float16_t(t_low.x);
+  float16_t v_2 = float16_t(t_high.x);
+  float16_t v_3 = float16_t(t_low.y);
+  return vector<float16_t, 4>(v_1, v_2, v_3, float16_t(t_high.y));
+}
+
+void v_4(uint offset, matrix<float16_t, 3, 4> obj) {
+  s.Store<vector<float16_t, 4> >((offset + 0u), obj[0u]);
+  s.Store<vector<float16_t, 4> >((offset + 8u), obj[1u]);
+  s.Store<vector<float16_t, 4> >((offset + 16u), obj[2u]);
+}
+
+matrix<float16_t, 3, 4> v_5(uint start_byte_offset) {
+  vector<float16_t, 4> v_6 = tint_bitcast_to_f16(u[(start_byte_offset / 16u)]);
+  vector<float16_t, 4> v_7 = tint_bitcast_to_f16(u[((8u + start_byte_offset) / 16u)]);
+  return matrix<float16_t, 3, 4>(v_6, v_7, tint_bitcast_to_f16(u[((16u + start_byte_offset) / 16u)]));
+}
+
+[numthreads(1, 1, 1)]
+void f() {
+  v_4(0u, v_5(0u));
+  s.Store<vector<float16_t, 4> >(8u, tint_bitcast_to_f16(u[0u]));
+  s.Store<vector<float16_t, 4> >(8u, tint_bitcast_to_f16(u[0u]).ywxz);
+  s.Store<float16_t>(2u, float16_t(f16tof32(u[0u].z)));
+}
+
diff --git a/test/tint/buffer/uniform/std140/unnested/mat3x4_f16/to_storage.wgsl.expected.ir.fxc.hlsl b/test/tint/buffer/uniform/std140/unnested/mat3x4_f16/to_storage.wgsl.expected.ir.fxc.hlsl
index 3f437dc..eb31dc1 100644
--- a/test/tint/buffer/uniform/std140/unnested/mat3x4_f16/to_storage.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/buffer/uniform/std140/unnested/mat3x4_f16/to_storage.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,42 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Access
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+
+cbuffer cbuffer_u : register(b0) {
+  uint4 u[2];
+};
+RWByteAddressBuffer s : register(u1);
+vector<float16_t, 4> tint_bitcast_to_f16(uint4 src) {
+  uint4 v = src;
+  uint4 mask = (65535u).xxxx;
+  uint4 shift = (16u).xxxx;
+  float4 t_low = f16tof32((v & mask));
+  float4 t_high = f16tof32(((v >> shift) & mask));
+  float16_t v_1 = float16_t(t_low.x);
+  float16_t v_2 = float16_t(t_high.x);
+  float16_t v_3 = float16_t(t_low.y);
+  return vector<float16_t, 4>(v_1, v_2, v_3, float16_t(t_high.y));
+}
+
+void v_4(uint offset, matrix<float16_t, 3, 4> obj) {
+  s.Store<vector<float16_t, 4> >((offset + 0u), obj[0u]);
+  s.Store<vector<float16_t, 4> >((offset + 8u), obj[1u]);
+  s.Store<vector<float16_t, 4> >((offset + 16u), obj[2u]);
+}
+
+matrix<float16_t, 3, 4> v_5(uint start_byte_offset) {
+  vector<float16_t, 4> v_6 = tint_bitcast_to_f16(u[(start_byte_offset / 16u)]);
+  vector<float16_t, 4> v_7 = tint_bitcast_to_f16(u[((8u + start_byte_offset) / 16u)]);
+  return matrix<float16_t, 3, 4>(v_6, v_7, tint_bitcast_to_f16(u[((16u + start_byte_offset) / 16u)]));
+}
+
+[numthreads(1, 1, 1)]
+void f() {
+  v_4(0u, v_5(0u));
+  s.Store<vector<float16_t, 4> >(8u, tint_bitcast_to_f16(u[0u]));
+  s.Store<vector<float16_t, 4> >(8u, tint_bitcast_to_f16(u[0u]).ywxz);
+  s.Store<float16_t>(2u, float16_t(f16tof32(u[0u].z)));
+}
+
+FXC validation failure:
+c:\src\dawn\Shader@0x000001FA254F3F10(6,8-16): error X3000: syntax error: unexpected token 'float16_t'
+
diff --git a/test/tint/buffer/uniform/std140/unnested/mat3x4_f16/to_workgroup.wgsl.expected.ir.dxc.hlsl b/test/tint/buffer/uniform/std140/unnested/mat3x4_f16/to_workgroup.wgsl.expected.ir.dxc.hlsl
index 3f437dc..e22dca2 100644
--- a/test/tint/buffer/uniform/std140/unnested/mat3x4_f16/to_workgroup.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/buffer/uniform/std140/unnested/mat3x4_f16/to_workgroup.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,43 @@
-SKIP: FAILED
+struct f_inputs {
+  uint tint_local_index : SV_GroupIndex;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Access
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+
+cbuffer cbuffer_u : register(b0) {
+  uint4 u[2];
+};
+groupshared matrix<float16_t, 3, 4> w;
+vector<float16_t, 4> tint_bitcast_to_f16(uint4 src) {
+  uint4 v = src;
+  uint4 mask = (65535u).xxxx;
+  uint4 shift = (16u).xxxx;
+  float4 t_low = f16tof32((v & mask));
+  float4 t_high = f16tof32(((v >> shift) & mask));
+  float16_t v_1 = float16_t(t_low.x);
+  float16_t v_2 = float16_t(t_high.x);
+  float16_t v_3 = float16_t(t_low.y);
+  return vector<float16_t, 4>(v_1, v_2, v_3, float16_t(t_high.y));
+}
+
+matrix<float16_t, 3, 4> v_4(uint start_byte_offset) {
+  vector<float16_t, 4> v_5 = tint_bitcast_to_f16(u[(start_byte_offset / 16u)]);
+  vector<float16_t, 4> v_6 = tint_bitcast_to_f16(u[((8u + start_byte_offset) / 16u)]);
+  return matrix<float16_t, 3, 4>(v_5, v_6, tint_bitcast_to_f16(u[((16u + start_byte_offset) / 16u)]));
+}
+
+void f_inner(uint tint_local_index) {
+  if ((tint_local_index == 0u)) {
+    w = matrix<float16_t, 3, 4>((float16_t(0.0h)).xxxx, (float16_t(0.0h)).xxxx, (float16_t(0.0h)).xxxx);
+  }
+  GroupMemoryBarrierWithGroupSync();
+  w = v_4(0u);
+  w[1] = tint_bitcast_to_f16(u[0u]);
+  w[1] = tint_bitcast_to_f16(u[0u]).ywxz;
+  w[0][1] = float16_t(f16tof32(u[0u].z));
+}
+
+[numthreads(1, 1, 1)]
+void f(f_inputs inputs) {
+  f_inner(inputs.tint_local_index);
+}
+
diff --git a/test/tint/buffer/uniform/std140/unnested/mat3x4_f16/to_workgroup.wgsl.expected.ir.fxc.hlsl b/test/tint/buffer/uniform/std140/unnested/mat3x4_f16/to_workgroup.wgsl.expected.ir.fxc.hlsl
index 3f437dc..4c5f20e 100644
--- a/test/tint/buffer/uniform/std140/unnested/mat3x4_f16/to_workgroup.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/buffer/uniform/std140/unnested/mat3x4_f16/to_workgroup.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,48 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Access
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct f_inputs {
+  uint tint_local_index : SV_GroupIndex;
+};
+
+
+cbuffer cbuffer_u : register(b0) {
+  uint4 u[2];
+};
+groupshared matrix<float16_t, 3, 4> w;
+vector<float16_t, 4> tint_bitcast_to_f16(uint4 src) {
+  uint4 v = src;
+  uint4 mask = (65535u).xxxx;
+  uint4 shift = (16u).xxxx;
+  float4 t_low = f16tof32((v & mask));
+  float4 t_high = f16tof32(((v >> shift) & mask));
+  float16_t v_1 = float16_t(t_low.x);
+  float16_t v_2 = float16_t(t_high.x);
+  float16_t v_3 = float16_t(t_low.y);
+  return vector<float16_t, 4>(v_1, v_2, v_3, float16_t(t_high.y));
+}
+
+matrix<float16_t, 3, 4> v_4(uint start_byte_offset) {
+  vector<float16_t, 4> v_5 = tint_bitcast_to_f16(u[(start_byte_offset / 16u)]);
+  vector<float16_t, 4> v_6 = tint_bitcast_to_f16(u[((8u + start_byte_offset) / 16u)]);
+  return matrix<float16_t, 3, 4>(v_5, v_6, tint_bitcast_to_f16(u[((16u + start_byte_offset) / 16u)]));
+}
+
+void f_inner(uint tint_local_index) {
+  if ((tint_local_index == 0u)) {
+    w = matrix<float16_t, 3, 4>((float16_t(0.0h)).xxxx, (float16_t(0.0h)).xxxx, (float16_t(0.0h)).xxxx);
+  }
+  GroupMemoryBarrierWithGroupSync();
+  w = v_4(0u);
+  w[1] = tint_bitcast_to_f16(u[0u]);
+  w[1] = tint_bitcast_to_f16(u[0u]).ywxz;
+  w[0][1] = float16_t(f16tof32(u[0u].z));
+}
+
+[numthreads(1, 1, 1)]
+void f(f_inputs inputs) {
+  f_inner(inputs.tint_local_index);
+}
+
+FXC validation failure:
+c:\src\dawn\Shader@0x0000025856BE6430(9,20-28): error X3000: syntax error: unexpected token 'float16_t'
+
diff --git a/test/tint/buffer/uniform/std140/unnested/mat3x4_f32/dynamic_index_via_ptr.wgsl.expected.ir.dxc.hlsl b/test/tint/buffer/uniform/std140/unnested/mat3x4_f32/dynamic_index_via_ptr.wgsl.expected.ir.dxc.hlsl
index 3f437dc..9304244 100644
--- a/test/tint/buffer/uniform/std140/unnested/mat3x4_f32/dynamic_index_via_ptr.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/buffer/uniform/std140/unnested/mat3x4_f32/dynamic_index_via_ptr.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,23 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Access
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+cbuffer cbuffer_m : register(b0) {
+  uint4 m[3];
+};
+static int counter = 0;
+int i() {
+  counter = (counter + 1);
+  return counter;
+}
+
+float3x4 v(uint start_byte_offset) {
+  float4 v_1 = asfloat(m[(start_byte_offset / 16u)]);
+  float4 v_2 = asfloat(m[((16u + start_byte_offset) / 16u)]);
+  return float3x4(v_1, v_2, asfloat(m[((32u + start_byte_offset) / 16u)]));
+}
+
+[numthreads(1, 1, 1)]
+void f() {
+  uint v_3 = (16u * uint(i()));
+  float3x4 l_m = v(0u);
+  float4 l_m_i = asfloat(m[(v_3 / 16u)]);
+}
+
diff --git a/test/tint/buffer/uniform/std140/unnested/mat3x4_f32/dynamic_index_via_ptr.wgsl.expected.ir.fxc.hlsl b/test/tint/buffer/uniform/std140/unnested/mat3x4_f32/dynamic_index_via_ptr.wgsl.expected.ir.fxc.hlsl
index 3f437dc..9304244 100644
--- a/test/tint/buffer/uniform/std140/unnested/mat3x4_f32/dynamic_index_via_ptr.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/buffer/uniform/std140/unnested/mat3x4_f32/dynamic_index_via_ptr.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,23 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Access
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+cbuffer cbuffer_m : register(b0) {
+  uint4 m[3];
+};
+static int counter = 0;
+int i() {
+  counter = (counter + 1);
+  return counter;
+}
+
+float3x4 v(uint start_byte_offset) {
+  float4 v_1 = asfloat(m[(start_byte_offset / 16u)]);
+  float4 v_2 = asfloat(m[((16u + start_byte_offset) / 16u)]);
+  return float3x4(v_1, v_2, asfloat(m[((32u + start_byte_offset) / 16u)]));
+}
+
+[numthreads(1, 1, 1)]
+void f() {
+  uint v_3 = (16u * uint(i()));
+  float3x4 l_m = v(0u);
+  float4 l_m_i = asfloat(m[(v_3 / 16u)]);
+}
+
diff --git a/test/tint/buffer/uniform/std140/unnested/mat3x4_f32/static_index_via_ptr.wgsl.expected.ir.dxc.hlsl b/test/tint/buffer/uniform/std140/unnested/mat3x4_f32/static_index_via_ptr.wgsl.expected.ir.dxc.hlsl
index 3f437dc..b93eaf1 100644
--- a/test/tint/buffer/uniform/std140/unnested/mat3x4_f32/static_index_via_ptr.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/buffer/uniform/std140/unnested/mat3x4_f32/static_index_via_ptr.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,22 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Access
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+cbuffer cbuffer_m : register(b0) {
+  uint4 m[3];
+};
+static int counter = 0;
+int i() {
+  counter = (counter + 1);
+  return counter;
+}
+
+float3x4 v(uint start_byte_offset) {
+  float4 v_1 = asfloat(m[(start_byte_offset / 16u)]);
+  float4 v_2 = asfloat(m[((16u + start_byte_offset) / 16u)]);
+  return float3x4(v_1, v_2, asfloat(m[((32u + start_byte_offset) / 16u)]));
+}
+
+[numthreads(1, 1, 1)]
+void f() {
+  float3x4 l_m = v(0u);
+  float4 l_m_1 = asfloat(m[1u]);
+}
+
diff --git a/test/tint/buffer/uniform/std140/unnested/mat3x4_f32/static_index_via_ptr.wgsl.expected.ir.fxc.hlsl b/test/tint/buffer/uniform/std140/unnested/mat3x4_f32/static_index_via_ptr.wgsl.expected.ir.fxc.hlsl
index 3f437dc..b93eaf1 100644
--- a/test/tint/buffer/uniform/std140/unnested/mat3x4_f32/static_index_via_ptr.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/buffer/uniform/std140/unnested/mat3x4_f32/static_index_via_ptr.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,22 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Access
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+cbuffer cbuffer_m : register(b0) {
+  uint4 m[3];
+};
+static int counter = 0;
+int i() {
+  counter = (counter + 1);
+  return counter;
+}
+
+float3x4 v(uint start_byte_offset) {
+  float4 v_1 = asfloat(m[(start_byte_offset / 16u)]);
+  float4 v_2 = asfloat(m[((16u + start_byte_offset) / 16u)]);
+  return float3x4(v_1, v_2, asfloat(m[((32u + start_byte_offset) / 16u)]));
+}
+
+[numthreads(1, 1, 1)]
+void f() {
+  float3x4 l_m = v(0u);
+  float4 l_m_1 = asfloat(m[1u]);
+}
+
diff --git a/test/tint/buffer/uniform/std140/unnested/mat3x4_f32/to_builtin.wgsl.expected.ir.dxc.hlsl b/test/tint/buffer/uniform/std140/unnested/mat3x4_f32/to_builtin.wgsl.expected.ir.dxc.hlsl
index 3f437dc..5a5673a 100644
--- a/test/tint/buffer/uniform/std140/unnested/mat3x4_f32/to_builtin.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/buffer/uniform/std140/unnested/mat3x4_f32/to_builtin.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,17 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Access
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+cbuffer cbuffer_u : register(b0) {
+  uint4 u[3];
+};
+float3x4 v(uint start_byte_offset) {
+  float4 v_1 = asfloat(u[(start_byte_offset / 16u)]);
+  float4 v_2 = asfloat(u[((16u + start_byte_offset) / 16u)]);
+  return float3x4(v_1, v_2, asfloat(u[((32u + start_byte_offset) / 16u)]));
+}
+
+[numthreads(1, 1, 1)]
+void f() {
+  float4x3 t = transpose(v(0u));
+  float l = length(asfloat(u[1u]));
+  float a = abs(asfloat(u[0u]).ywxz[0u]);
+}
+
diff --git a/test/tint/buffer/uniform/std140/unnested/mat3x4_f32/to_builtin.wgsl.expected.ir.fxc.hlsl b/test/tint/buffer/uniform/std140/unnested/mat3x4_f32/to_builtin.wgsl.expected.ir.fxc.hlsl
index 3f437dc..5a5673a 100644
--- a/test/tint/buffer/uniform/std140/unnested/mat3x4_f32/to_builtin.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/buffer/uniform/std140/unnested/mat3x4_f32/to_builtin.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,17 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Access
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+cbuffer cbuffer_u : register(b0) {
+  uint4 u[3];
+};
+float3x4 v(uint start_byte_offset) {
+  float4 v_1 = asfloat(u[(start_byte_offset / 16u)]);
+  float4 v_2 = asfloat(u[((16u + start_byte_offset) / 16u)]);
+  return float3x4(v_1, v_2, asfloat(u[((32u + start_byte_offset) / 16u)]));
+}
+
+[numthreads(1, 1, 1)]
+void f() {
+  float4x3 t = transpose(v(0u));
+  float l = length(asfloat(u[1u]));
+  float a = abs(asfloat(u[0u]).ywxz[0u]);
+}
+
diff --git a/test/tint/buffer/uniform/std140/unnested/mat3x4_f32/to_fn.wgsl.expected.ir.dxc.hlsl b/test/tint/buffer/uniform/std140/unnested/mat3x4_f32/to_fn.wgsl.expected.ir.dxc.hlsl
index 3f437dc..d45c10d 100644
--- a/test/tint/buffer/uniform/std140/unnested/mat3x4_f32/to_fn.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/buffer/uniform/std140/unnested/mat3x4_f32/to_fn.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,28 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Access
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+cbuffer cbuffer_u : register(b0) {
+  uint4 u[3];
+};
+void a(float3x4 m) {
+}
+
+void b(float4 v) {
+}
+
+void c(float f) {
+}
+
+float3x4 v_1(uint start_byte_offset) {
+  float4 v_2 = asfloat(u[(start_byte_offset / 16u)]);
+  float4 v_3 = asfloat(u[((16u + start_byte_offset) / 16u)]);
+  return float3x4(v_2, v_3, asfloat(u[((32u + start_byte_offset) / 16u)]));
+}
+
+[numthreads(1, 1, 1)]
+void f() {
+  a(v_1(0u));
+  b(asfloat(u[1u]));
+  b(asfloat(u[1u]).ywxz);
+  c(asfloat(u[1u].x));
+  c(asfloat(u[1u]).ywxz[0u]);
+}
+
diff --git a/test/tint/buffer/uniform/std140/unnested/mat3x4_f32/to_fn.wgsl.expected.ir.fxc.hlsl b/test/tint/buffer/uniform/std140/unnested/mat3x4_f32/to_fn.wgsl.expected.ir.fxc.hlsl
index 3f437dc..d45c10d 100644
--- a/test/tint/buffer/uniform/std140/unnested/mat3x4_f32/to_fn.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/buffer/uniform/std140/unnested/mat3x4_f32/to_fn.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,28 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Access
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+cbuffer cbuffer_u : register(b0) {
+  uint4 u[3];
+};
+void a(float3x4 m) {
+}
+
+void b(float4 v) {
+}
+
+void c(float f) {
+}
+
+float3x4 v_1(uint start_byte_offset) {
+  float4 v_2 = asfloat(u[(start_byte_offset / 16u)]);
+  float4 v_3 = asfloat(u[((16u + start_byte_offset) / 16u)]);
+  return float3x4(v_2, v_3, asfloat(u[((32u + start_byte_offset) / 16u)]));
+}
+
+[numthreads(1, 1, 1)]
+void f() {
+  a(v_1(0u));
+  b(asfloat(u[1u]));
+  b(asfloat(u[1u]).ywxz);
+  c(asfloat(u[1u].x));
+  c(asfloat(u[1u]).ywxz[0u]);
+}
+
diff --git a/test/tint/buffer/uniform/std140/unnested/mat3x4_f32/to_private.wgsl.expected.ir.dxc.hlsl b/test/tint/buffer/uniform/std140/unnested/mat3x4_f32/to_private.wgsl.expected.ir.dxc.hlsl
index 3f437dc..a0d7ffa 100644
--- a/test/tint/buffer/uniform/std140/unnested/mat3x4_f32/to_private.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/buffer/uniform/std140/unnested/mat3x4_f32/to_private.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,19 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Access
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+cbuffer cbuffer_u : register(b0) {
+  uint4 u[3];
+};
+static float3x4 p = float3x4((0.0f).xxxx, (0.0f).xxxx, (0.0f).xxxx);
+float3x4 v(uint start_byte_offset) {
+  float4 v_1 = asfloat(u[(start_byte_offset / 16u)]);
+  float4 v_2 = asfloat(u[((16u + start_byte_offset) / 16u)]);
+  return float3x4(v_1, v_2, asfloat(u[((32u + start_byte_offset) / 16u)]));
+}
+
+[numthreads(1, 1, 1)]
+void f() {
+  p = v(0u);
+  p[1] = asfloat(u[0u]);
+  p[1] = asfloat(u[0u]).ywxz;
+  p[0][1] = asfloat(u[1u].x);
+}
+
diff --git a/test/tint/buffer/uniform/std140/unnested/mat3x4_f32/to_private.wgsl.expected.ir.fxc.hlsl b/test/tint/buffer/uniform/std140/unnested/mat3x4_f32/to_private.wgsl.expected.ir.fxc.hlsl
index 3f437dc..a0d7ffa 100644
--- a/test/tint/buffer/uniform/std140/unnested/mat3x4_f32/to_private.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/buffer/uniform/std140/unnested/mat3x4_f32/to_private.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,19 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Access
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+cbuffer cbuffer_u : register(b0) {
+  uint4 u[3];
+};
+static float3x4 p = float3x4((0.0f).xxxx, (0.0f).xxxx, (0.0f).xxxx);
+float3x4 v(uint start_byte_offset) {
+  float4 v_1 = asfloat(u[(start_byte_offset / 16u)]);
+  float4 v_2 = asfloat(u[((16u + start_byte_offset) / 16u)]);
+  return float3x4(v_1, v_2, asfloat(u[((32u + start_byte_offset) / 16u)]));
+}
+
+[numthreads(1, 1, 1)]
+void f() {
+  p = v(0u);
+  p[1] = asfloat(u[0u]);
+  p[1] = asfloat(u[0u]).ywxz;
+  p[0][1] = asfloat(u[1u].x);
+}
+
diff --git a/test/tint/buffer/uniform/std140/unnested/mat3x4_f32/to_storage.wgsl.expected.ir.dxc.hlsl b/test/tint/buffer/uniform/std140/unnested/mat3x4_f32/to_storage.wgsl.expected.ir.dxc.hlsl
index 3f437dc..3d3e665 100644
--- a/test/tint/buffer/uniform/std140/unnested/mat3x4_f32/to_storage.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/buffer/uniform/std140/unnested/mat3x4_f32/to_storage.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,25 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Access
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+cbuffer cbuffer_u : register(b0) {
+  uint4 u[3];
+};
+RWByteAddressBuffer s : register(u1);
+void v(uint offset, float3x4 obj) {
+  s.Store4((offset + 0u), asuint(obj[0u]));
+  s.Store4((offset + 16u), asuint(obj[1u]));
+  s.Store4((offset + 32u), asuint(obj[2u]));
+}
+
+float3x4 v_1(uint start_byte_offset) {
+  float4 v_2 = asfloat(u[(start_byte_offset / 16u)]);
+  float4 v_3 = asfloat(u[((16u + start_byte_offset) / 16u)]);
+  return float3x4(v_2, v_3, asfloat(u[((32u + start_byte_offset) / 16u)]));
+}
+
+[numthreads(1, 1, 1)]
+void f() {
+  v(0u, v_1(0u));
+  s.Store4(16u, asuint(asfloat(u[0u])));
+  s.Store4(16u, asuint(asfloat(u[0u]).ywxz));
+  s.Store(4u, asuint(asfloat(u[1u].x)));
+}
+
diff --git a/test/tint/buffer/uniform/std140/unnested/mat3x4_f32/to_storage.wgsl.expected.ir.fxc.hlsl b/test/tint/buffer/uniform/std140/unnested/mat3x4_f32/to_storage.wgsl.expected.ir.fxc.hlsl
index 3f437dc..3d3e665 100644
--- a/test/tint/buffer/uniform/std140/unnested/mat3x4_f32/to_storage.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/buffer/uniform/std140/unnested/mat3x4_f32/to_storage.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,25 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Access
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+cbuffer cbuffer_u : register(b0) {
+  uint4 u[3];
+};
+RWByteAddressBuffer s : register(u1);
+void v(uint offset, float3x4 obj) {
+  s.Store4((offset + 0u), asuint(obj[0u]));
+  s.Store4((offset + 16u), asuint(obj[1u]));
+  s.Store4((offset + 32u), asuint(obj[2u]));
+}
+
+float3x4 v_1(uint start_byte_offset) {
+  float4 v_2 = asfloat(u[(start_byte_offset / 16u)]);
+  float4 v_3 = asfloat(u[((16u + start_byte_offset) / 16u)]);
+  return float3x4(v_2, v_3, asfloat(u[((32u + start_byte_offset) / 16u)]));
+}
+
+[numthreads(1, 1, 1)]
+void f() {
+  v(0u, v_1(0u));
+  s.Store4(16u, asuint(asfloat(u[0u])));
+  s.Store4(16u, asuint(asfloat(u[0u]).ywxz));
+  s.Store(4u, asuint(asfloat(u[1u].x)));
+}
+
diff --git a/test/tint/buffer/uniform/std140/unnested/mat3x4_f32/to_workgroup.wgsl.expected.ir.dxc.hlsl b/test/tint/buffer/uniform/std140/unnested/mat3x4_f32/to_workgroup.wgsl.expected.ir.dxc.hlsl
index 3f437dc..c7570ee 100644
--- a/test/tint/buffer/uniform/std140/unnested/mat3x4_f32/to_workgroup.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/buffer/uniform/std140/unnested/mat3x4_f32/to_workgroup.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,31 @@
-SKIP: FAILED
+struct f_inputs {
+  uint tint_local_index : SV_GroupIndex;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Access
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+
+cbuffer cbuffer_u : register(b0) {
+  uint4 u[3];
+};
+groupshared float3x4 w;
+float3x4 v(uint start_byte_offset) {
+  float4 v_1 = asfloat(u[(start_byte_offset / 16u)]);
+  float4 v_2 = asfloat(u[((16u + start_byte_offset) / 16u)]);
+  return float3x4(v_1, v_2, asfloat(u[((32u + start_byte_offset) / 16u)]));
+}
+
+void f_inner(uint tint_local_index) {
+  if ((tint_local_index == 0u)) {
+    w = float3x4((0.0f).xxxx, (0.0f).xxxx, (0.0f).xxxx);
+  }
+  GroupMemoryBarrierWithGroupSync();
+  w = v(0u);
+  w[1] = asfloat(u[0u]);
+  w[1] = asfloat(u[0u]).ywxz;
+  w[0][1] = asfloat(u[1u].x);
+}
+
+[numthreads(1, 1, 1)]
+void f(f_inputs inputs) {
+  f_inner(inputs.tint_local_index);
+}
+
diff --git a/test/tint/buffer/uniform/std140/unnested/mat3x4_f32/to_workgroup.wgsl.expected.ir.fxc.hlsl b/test/tint/buffer/uniform/std140/unnested/mat3x4_f32/to_workgroup.wgsl.expected.ir.fxc.hlsl
index 3f437dc..c7570ee 100644
--- a/test/tint/buffer/uniform/std140/unnested/mat3x4_f32/to_workgroup.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/buffer/uniform/std140/unnested/mat3x4_f32/to_workgroup.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,31 @@
-SKIP: FAILED
+struct f_inputs {
+  uint tint_local_index : SV_GroupIndex;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Access
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+
+cbuffer cbuffer_u : register(b0) {
+  uint4 u[3];
+};
+groupshared float3x4 w;
+float3x4 v(uint start_byte_offset) {
+  float4 v_1 = asfloat(u[(start_byte_offset / 16u)]);
+  float4 v_2 = asfloat(u[((16u + start_byte_offset) / 16u)]);
+  return float3x4(v_1, v_2, asfloat(u[((32u + start_byte_offset) / 16u)]));
+}
+
+void f_inner(uint tint_local_index) {
+  if ((tint_local_index == 0u)) {
+    w = float3x4((0.0f).xxxx, (0.0f).xxxx, (0.0f).xxxx);
+  }
+  GroupMemoryBarrierWithGroupSync();
+  w = v(0u);
+  w[1] = asfloat(u[0u]);
+  w[1] = asfloat(u[0u]).ywxz;
+  w[0][1] = asfloat(u[1u].x);
+}
+
+[numthreads(1, 1, 1)]
+void f(f_inputs inputs) {
+  f_inner(inputs.tint_local_index);
+}
+
diff --git a/test/tint/buffer/uniform/std140/unnested/mat4x2_f16/dynamic_index_via_ptr.wgsl.expected.ir.dxc.hlsl b/test/tint/buffer/uniform/std140/unnested/mat4x2_f16/dynamic_index_via_ptr.wgsl.expected.ir.dxc.hlsl
index 3f437dc..86b4aa8 100644
--- a/test/tint/buffer/uniform/std140/unnested/mat4x2_f16/dynamic_index_via_ptr.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/buffer/uniform/std140/unnested/mat4x2_f16/dynamic_index_via_ptr.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,37 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Access
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+cbuffer cbuffer_m : register(b0) {
+  uint4 m[1];
+};
+static int counter = 0;
+int i() {
+  counter = (counter + 1);
+  return counter;
+}
+
+vector<float16_t, 2> tint_bitcast_to_f16(uint src) {
+  uint v = src;
+  float t_low = f16tof32((v & 65535u));
+  float t_high = f16tof32(((v >> 16u) & 65535u));
+  float16_t v_1 = float16_t(t_low);
+  return vector<float16_t, 2>(v_1, float16_t(t_high));
+}
+
+matrix<float16_t, 4, 2> v_2(uint start_byte_offset) {
+  uint4 v_3 = m[(start_byte_offset / 16u)];
+  vector<float16_t, 2> v_4 = tint_bitcast_to_f16((((((start_byte_offset % 16u) / 4u) == 2u)) ? (v_3.z) : (v_3.x)));
+  uint4 v_5 = m[((4u + start_byte_offset) / 16u)];
+  vector<float16_t, 2> v_6 = tint_bitcast_to_f16(((((((4u + start_byte_offset) % 16u) / 4u) == 2u)) ? (v_5.z) : (v_5.x)));
+  uint4 v_7 = m[((8u + start_byte_offset) / 16u)];
+  vector<float16_t, 2> v_8 = tint_bitcast_to_f16(((((((8u + start_byte_offset) % 16u) / 4u) == 2u)) ? (v_7.z) : (v_7.x)));
+  uint4 v_9 = m[((12u + start_byte_offset) / 16u)];
+  return matrix<float16_t, 4, 2>(v_4, v_6, v_8, tint_bitcast_to_f16(((((((12u + start_byte_offset) % 16u) / 4u) == 2u)) ? (v_9.z) : (v_9.x))));
+}
+
+[numthreads(1, 1, 1)]
+void f() {
+  uint v_10 = (4u * uint(i()));
+  matrix<float16_t, 4, 2> l_m = v_2(0u);
+  uint4 v_11 = m[(v_10 / 16u)];
+  vector<float16_t, 2> l_m_i = tint_bitcast_to_f16((((((v_10 % 16u) / 4u) == 2u)) ? (v_11.z) : (v_11.x)));
+}
+
diff --git a/test/tint/buffer/uniform/std140/unnested/mat4x2_f16/dynamic_index_via_ptr.wgsl.expected.ir.fxc.hlsl b/test/tint/buffer/uniform/std140/unnested/mat4x2_f16/dynamic_index_via_ptr.wgsl.expected.ir.fxc.hlsl
index 3f437dc..10a7e64 100644
--- a/test/tint/buffer/uniform/std140/unnested/mat4x2_f16/dynamic_index_via_ptr.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/buffer/uniform/std140/unnested/mat4x2_f16/dynamic_index_via_ptr.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,42 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Access
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+
+cbuffer cbuffer_m : register(b0) {
+  uint4 m[1];
+};
+static int counter = 0;
+int i() {
+  counter = (counter + 1);
+  return counter;
+}
+
+vector<float16_t, 2> tint_bitcast_to_f16(uint src) {
+  uint v = src;
+  float t_low = f16tof32((v & 65535u));
+  float t_high = f16tof32(((v >> 16u) & 65535u));
+  float16_t v_1 = float16_t(t_low);
+  return vector<float16_t, 2>(v_1, float16_t(t_high));
+}
+
+matrix<float16_t, 4, 2> v_2(uint start_byte_offset) {
+  uint4 v_3 = m[(start_byte_offset / 16u)];
+  vector<float16_t, 2> v_4 = tint_bitcast_to_f16((((((start_byte_offset % 16u) / 4u) == 2u)) ? (v_3.z) : (v_3.x)));
+  uint4 v_5 = m[((4u + start_byte_offset) / 16u)];
+  vector<float16_t, 2> v_6 = tint_bitcast_to_f16(((((((4u + start_byte_offset) % 16u) / 4u) == 2u)) ? (v_5.z) : (v_5.x)));
+  uint4 v_7 = m[((8u + start_byte_offset) / 16u)];
+  vector<float16_t, 2> v_8 = tint_bitcast_to_f16(((((((8u + start_byte_offset) % 16u) / 4u) == 2u)) ? (v_7.z) : (v_7.x)));
+  uint4 v_9 = m[((12u + start_byte_offset) / 16u)];
+  return matrix<float16_t, 4, 2>(v_4, v_6, v_8, tint_bitcast_to_f16(((((((12u + start_byte_offset) % 16u) / 4u) == 2u)) ? (v_9.z) : (v_9.x))));
+}
+
+[numthreads(1, 1, 1)]
+void f() {
+  uint v_10 = (4u * uint(i()));
+  matrix<float16_t, 4, 2> l_m = v_2(0u);
+  uint4 v_11 = m[(v_10 / 16u)];
+  vector<float16_t, 2> l_m_i = tint_bitcast_to_f16((((((v_10 % 16u) / 4u) == 2u)) ? (v_11.z) : (v_11.x)));
+}
+
+FXC validation failure:
+c:\src\dawn\Shader@0x000002219D6F3F90(11,8-16): error X3000: syntax error: unexpected token 'float16_t'
+
diff --git a/test/tint/buffer/uniform/std140/unnested/mat4x2_f16/static_index_via_ptr.wgsl.expected.ir.dxc.hlsl b/test/tint/buffer/uniform/std140/unnested/mat4x2_f16/static_index_via_ptr.wgsl.expected.ir.dxc.hlsl
index 3f437dc..45d3f4d 100644
--- a/test/tint/buffer/uniform/std140/unnested/mat4x2_f16/static_index_via_ptr.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/buffer/uniform/std140/unnested/mat4x2_f16/static_index_via_ptr.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,35 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Access
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+cbuffer cbuffer_m : register(b0) {
+  uint4 m[1];
+};
+static int counter = 0;
+int i() {
+  counter = (counter + 1);
+  return counter;
+}
+
+vector<float16_t, 2> tint_bitcast_to_f16(uint src) {
+  uint v = src;
+  float t_low = f16tof32((v & 65535u));
+  float t_high = f16tof32(((v >> 16u) & 65535u));
+  float16_t v_1 = float16_t(t_low);
+  return vector<float16_t, 2>(v_1, float16_t(t_high));
+}
+
+matrix<float16_t, 4, 2> v_2(uint start_byte_offset) {
+  uint4 v_3 = m[(start_byte_offset / 16u)];
+  vector<float16_t, 2> v_4 = tint_bitcast_to_f16((((((start_byte_offset % 16u) / 4u) == 2u)) ? (v_3.z) : (v_3.x)));
+  uint4 v_5 = m[((4u + start_byte_offset) / 16u)];
+  vector<float16_t, 2> v_6 = tint_bitcast_to_f16(((((((4u + start_byte_offset) % 16u) / 4u) == 2u)) ? (v_5.z) : (v_5.x)));
+  uint4 v_7 = m[((8u + start_byte_offset) / 16u)];
+  vector<float16_t, 2> v_8 = tint_bitcast_to_f16(((((((8u + start_byte_offset) % 16u) / 4u) == 2u)) ? (v_7.z) : (v_7.x)));
+  uint4 v_9 = m[((12u + start_byte_offset) / 16u)];
+  return matrix<float16_t, 4, 2>(v_4, v_6, v_8, tint_bitcast_to_f16(((((((12u + start_byte_offset) % 16u) / 4u) == 2u)) ? (v_9.z) : (v_9.x))));
+}
+
+[numthreads(1, 1, 1)]
+void f() {
+  matrix<float16_t, 4, 2> l_m = v_2(0u);
+  vector<float16_t, 2> l_m_1 = tint_bitcast_to_f16(m[0u].x);
+}
+
diff --git a/test/tint/buffer/uniform/std140/unnested/mat4x2_f16/static_index_via_ptr.wgsl.expected.ir.fxc.hlsl b/test/tint/buffer/uniform/std140/unnested/mat4x2_f16/static_index_via_ptr.wgsl.expected.ir.fxc.hlsl
index 3f437dc..952b512 100644
--- a/test/tint/buffer/uniform/std140/unnested/mat4x2_f16/static_index_via_ptr.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/buffer/uniform/std140/unnested/mat4x2_f16/static_index_via_ptr.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,40 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Access
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+
+cbuffer cbuffer_m : register(b0) {
+  uint4 m[1];
+};
+static int counter = 0;
+int i() {
+  counter = (counter + 1);
+  return counter;
+}
+
+vector<float16_t, 2> tint_bitcast_to_f16(uint src) {
+  uint v = src;
+  float t_low = f16tof32((v & 65535u));
+  float t_high = f16tof32(((v >> 16u) & 65535u));
+  float16_t v_1 = float16_t(t_low);
+  return vector<float16_t, 2>(v_1, float16_t(t_high));
+}
+
+matrix<float16_t, 4, 2> v_2(uint start_byte_offset) {
+  uint4 v_3 = m[(start_byte_offset / 16u)];
+  vector<float16_t, 2> v_4 = tint_bitcast_to_f16((((((start_byte_offset % 16u) / 4u) == 2u)) ? (v_3.z) : (v_3.x)));
+  uint4 v_5 = m[((4u + start_byte_offset) / 16u)];
+  vector<float16_t, 2> v_6 = tint_bitcast_to_f16(((((((4u + start_byte_offset) % 16u) / 4u) == 2u)) ? (v_5.z) : (v_5.x)));
+  uint4 v_7 = m[((8u + start_byte_offset) / 16u)];
+  vector<float16_t, 2> v_8 = tint_bitcast_to_f16(((((((8u + start_byte_offset) % 16u) / 4u) == 2u)) ? (v_7.z) : (v_7.x)));
+  uint4 v_9 = m[((12u + start_byte_offset) / 16u)];
+  return matrix<float16_t, 4, 2>(v_4, v_6, v_8, tint_bitcast_to_f16(((((((12u + start_byte_offset) % 16u) / 4u) == 2u)) ? (v_9.z) : (v_9.x))));
+}
+
+[numthreads(1, 1, 1)]
+void f() {
+  matrix<float16_t, 4, 2> l_m = v_2(0u);
+  vector<float16_t, 2> l_m_1 = tint_bitcast_to_f16(m[0u].x);
+}
+
+FXC validation failure:
+c:\src\dawn\Shader@0x0000017866653A30(11,8-16): error X3000: syntax error: unexpected token 'float16_t'
+
diff --git a/test/tint/buffer/uniform/std140/unnested/mat4x2_f16/to_builtin.wgsl.expected.ir.dxc.hlsl b/test/tint/buffer/uniform/std140/unnested/mat4x2_f16/to_builtin.wgsl.expected.ir.dxc.hlsl
index 3f437dc..6b6ce3d 100644
--- a/test/tint/buffer/uniform/std140/unnested/mat4x2_f16/to_builtin.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/buffer/uniform/std140/unnested/mat4x2_f16/to_builtin.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,30 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Access
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+cbuffer cbuffer_u : register(b0) {
+  uint4 u[1];
+};
+vector<float16_t, 2> tint_bitcast_to_f16(uint src) {
+  uint v = src;
+  float t_low = f16tof32((v & 65535u));
+  float t_high = f16tof32(((v >> 16u) & 65535u));
+  float16_t v_1 = float16_t(t_low);
+  return vector<float16_t, 2>(v_1, float16_t(t_high));
+}
+
+matrix<float16_t, 4, 2> v_2(uint start_byte_offset) {
+  uint4 v_3 = u[(start_byte_offset / 16u)];
+  vector<float16_t, 2> v_4 = tint_bitcast_to_f16((((((start_byte_offset % 16u) / 4u) == 2u)) ? (v_3.z) : (v_3.x)));
+  uint4 v_5 = u[((4u + start_byte_offset) / 16u)];
+  vector<float16_t, 2> v_6 = tint_bitcast_to_f16(((((((4u + start_byte_offset) % 16u) / 4u) == 2u)) ? (v_5.z) : (v_5.x)));
+  uint4 v_7 = u[((8u + start_byte_offset) / 16u)];
+  vector<float16_t, 2> v_8 = tint_bitcast_to_f16(((((((8u + start_byte_offset) % 16u) / 4u) == 2u)) ? (v_7.z) : (v_7.x)));
+  uint4 v_9 = u[((12u + start_byte_offset) / 16u)];
+  return matrix<float16_t, 4, 2>(v_4, v_6, v_8, tint_bitcast_to_f16(((((((12u + start_byte_offset) % 16u) / 4u) == 2u)) ? (v_9.z) : (v_9.x))));
+}
+
+[numthreads(1, 1, 1)]
+void f() {
+  matrix<float16_t, 2, 4> t = transpose(v_2(0u));
+  float16_t l = length(tint_bitcast_to_f16(u[0u].x));
+  float16_t a = abs(tint_bitcast_to_f16(u[0u].x).yx[0u]);
+}
+
diff --git a/test/tint/buffer/uniform/std140/unnested/mat4x2_f16/to_builtin.wgsl.expected.ir.fxc.hlsl b/test/tint/buffer/uniform/std140/unnested/mat4x2_f16/to_builtin.wgsl.expected.ir.fxc.hlsl
index 3f437dc..23ec564 100644
--- a/test/tint/buffer/uniform/std140/unnested/mat4x2_f16/to_builtin.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/buffer/uniform/std140/unnested/mat4x2_f16/to_builtin.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,35 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Access
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+
+cbuffer cbuffer_u : register(b0) {
+  uint4 u[1];
+};
+vector<float16_t, 2> tint_bitcast_to_f16(uint src) {
+  uint v = src;
+  float t_low = f16tof32((v & 65535u));
+  float t_high = f16tof32(((v >> 16u) & 65535u));
+  float16_t v_1 = float16_t(t_low);
+  return vector<float16_t, 2>(v_1, float16_t(t_high));
+}
+
+matrix<float16_t, 4, 2> v_2(uint start_byte_offset) {
+  uint4 v_3 = u[(start_byte_offset / 16u)];
+  vector<float16_t, 2> v_4 = tint_bitcast_to_f16((((((start_byte_offset % 16u) / 4u) == 2u)) ? (v_3.z) : (v_3.x)));
+  uint4 v_5 = u[((4u + start_byte_offset) / 16u)];
+  vector<float16_t, 2> v_6 = tint_bitcast_to_f16(((((((4u + start_byte_offset) % 16u) / 4u) == 2u)) ? (v_5.z) : (v_5.x)));
+  uint4 v_7 = u[((8u + start_byte_offset) / 16u)];
+  vector<float16_t, 2> v_8 = tint_bitcast_to_f16(((((((8u + start_byte_offset) % 16u) / 4u) == 2u)) ? (v_7.z) : (v_7.x)));
+  uint4 v_9 = u[((12u + start_byte_offset) / 16u)];
+  return matrix<float16_t, 4, 2>(v_4, v_6, v_8, tint_bitcast_to_f16(((((((12u + start_byte_offset) % 16u) / 4u) == 2u)) ? (v_9.z) : (v_9.x))));
+}
+
+[numthreads(1, 1, 1)]
+void f() {
+  matrix<float16_t, 2, 4> t = transpose(v_2(0u));
+  float16_t l = length(tint_bitcast_to_f16(u[0u].x));
+  float16_t a = abs(tint_bitcast_to_f16(u[0u].x).yx[0u]);
+}
+
+FXC validation failure:
+c:\src\dawn\Shader@0x000001BA8B7F1E20(5,8-16): error X3000: syntax error: unexpected token 'float16_t'
+
diff --git a/test/tint/buffer/uniform/std140/unnested/mat4x2_f16/to_fn.wgsl.expected.ir.dxc.hlsl b/test/tint/buffer/uniform/std140/unnested/mat4x2_f16/to_fn.wgsl.expected.ir.dxc.hlsl
index 3f437dc..a24ba68 100644
--- a/test/tint/buffer/uniform/std140/unnested/mat4x2_f16/to_fn.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/buffer/uniform/std140/unnested/mat4x2_f16/to_fn.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,41 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Access
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+cbuffer cbuffer_u : register(b0) {
+  uint4 u[1];
+};
+void a(matrix<float16_t, 4, 2> m) {
+}
+
+void b(vector<float16_t, 2> v) {
+}
+
+void c(float16_t f) {
+}
+
+vector<float16_t, 2> tint_bitcast_to_f16(uint src) {
+  uint v = src;
+  float t_low = f16tof32((v & 65535u));
+  float t_high = f16tof32(((v >> 16u) & 65535u));
+  float16_t v_1 = float16_t(t_low);
+  return vector<float16_t, 2>(v_1, float16_t(t_high));
+}
+
+matrix<float16_t, 4, 2> v_2(uint start_byte_offset) {
+  uint4 v_3 = u[(start_byte_offset / 16u)];
+  vector<float16_t, 2> v_4 = tint_bitcast_to_f16((((((start_byte_offset % 16u) / 4u) == 2u)) ? (v_3.z) : (v_3.x)));
+  uint4 v_5 = u[((4u + start_byte_offset) / 16u)];
+  vector<float16_t, 2> v_6 = tint_bitcast_to_f16(((((((4u + start_byte_offset) % 16u) / 4u) == 2u)) ? (v_5.z) : (v_5.x)));
+  uint4 v_7 = u[((8u + start_byte_offset) / 16u)];
+  vector<float16_t, 2> v_8 = tint_bitcast_to_f16(((((((8u + start_byte_offset) % 16u) / 4u) == 2u)) ? (v_7.z) : (v_7.x)));
+  uint4 v_9 = u[((12u + start_byte_offset) / 16u)];
+  return matrix<float16_t, 4, 2>(v_4, v_6, v_8, tint_bitcast_to_f16(((((((12u + start_byte_offset) % 16u) / 4u) == 2u)) ? (v_9.z) : (v_9.x))));
+}
+
+[numthreads(1, 1, 1)]
+void f() {
+  a(v_2(0u));
+  b(tint_bitcast_to_f16(u[0u].x));
+  b(tint_bitcast_to_f16(u[0u].x).yx);
+  c(float16_t(f16tof32(u[0u].y)));
+  c(tint_bitcast_to_f16(u[0u].x).yx[0u]);
+}
+
diff --git a/test/tint/buffer/uniform/std140/unnested/mat4x2_f16/to_fn.wgsl.expected.ir.fxc.hlsl b/test/tint/buffer/uniform/std140/unnested/mat4x2_f16/to_fn.wgsl.expected.ir.fxc.hlsl
index 3f437dc..6404e71 100644
--- a/test/tint/buffer/uniform/std140/unnested/mat4x2_f16/to_fn.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/buffer/uniform/std140/unnested/mat4x2_f16/to_fn.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,48 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Access
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+
+cbuffer cbuffer_u : register(b0) {
+  uint4 u[1];
+};
+void a(matrix<float16_t, 4, 2> m) {
+}
+
+void b(vector<float16_t, 2> v) {
+}
+
+void c(float16_t f) {
+}
+
+vector<float16_t, 2> tint_bitcast_to_f16(uint src) {
+  uint v = src;
+  float t_low = f16tof32((v & 65535u));
+  float t_high = f16tof32(((v >> 16u) & 65535u));
+  float16_t v_1 = float16_t(t_low);
+  return vector<float16_t, 2>(v_1, float16_t(t_high));
+}
+
+matrix<float16_t, 4, 2> v_2(uint start_byte_offset) {
+  uint4 v_3 = u[(start_byte_offset / 16u)];
+  vector<float16_t, 2> v_4 = tint_bitcast_to_f16((((((start_byte_offset % 16u) / 4u) == 2u)) ? (v_3.z) : (v_3.x)));
+  uint4 v_5 = u[((4u + start_byte_offset) / 16u)];
+  vector<float16_t, 2> v_6 = tint_bitcast_to_f16(((((((4u + start_byte_offset) % 16u) / 4u) == 2u)) ? (v_5.z) : (v_5.x)));
+  uint4 v_7 = u[((8u + start_byte_offset) / 16u)];
+  vector<float16_t, 2> v_8 = tint_bitcast_to_f16(((((((8u + start_byte_offset) % 16u) / 4u) == 2u)) ? (v_7.z) : (v_7.x)));
+  uint4 v_9 = u[((12u + start_byte_offset) / 16u)];
+  return matrix<float16_t, 4, 2>(v_4, v_6, v_8, tint_bitcast_to_f16(((((((12u + start_byte_offset) % 16u) / 4u) == 2u)) ? (v_9.z) : (v_9.x))));
+}
+
+[numthreads(1, 1, 1)]
+void f() {
+  a(v_2(0u));
+  b(tint_bitcast_to_f16(u[0u].x));
+  b(tint_bitcast_to_f16(u[0u].x).yx);
+  c(float16_t(f16tof32(u[0u].y)));
+  c(tint_bitcast_to_f16(u[0u].x).yx[0u]);
+}
+
+FXC validation failure:
+c:\src\dawn\Shader@0x00000267A36C0380(5,15-23): error X3000: syntax error: unexpected token 'float16_t'
+c:\src\dawn\Shader@0x00000267A36C0380(8,15-23): error X3000: syntax error: unexpected token 'float16_t'
+c:\src\dawn\Shader@0x00000267A36C0380(11,8-16): error X3000: unrecognized identifier 'float16_t'
+
diff --git a/test/tint/buffer/uniform/std140/unnested/mat4x2_f16/to_private.wgsl.expected.ir.dxc.hlsl b/test/tint/buffer/uniform/std140/unnested/mat4x2_f16/to_private.wgsl.expected.ir.dxc.hlsl
index 3f437dc..1b16286 100644
--- a/test/tint/buffer/uniform/std140/unnested/mat4x2_f16/to_private.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/buffer/uniform/std140/unnested/mat4x2_f16/to_private.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,32 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Access
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+cbuffer cbuffer_u : register(b0) {
+  uint4 u[1];
+};
+static matrix<float16_t, 4, 2> p = matrix<float16_t, 4, 2>((float16_t(0.0h)).xx, (float16_t(0.0h)).xx, (float16_t(0.0h)).xx, (float16_t(0.0h)).xx);
+vector<float16_t, 2> tint_bitcast_to_f16(uint src) {
+  uint v = src;
+  float t_low = f16tof32((v & 65535u));
+  float t_high = f16tof32(((v >> 16u) & 65535u));
+  float16_t v_1 = float16_t(t_low);
+  return vector<float16_t, 2>(v_1, float16_t(t_high));
+}
+
+matrix<float16_t, 4, 2> v_2(uint start_byte_offset) {
+  uint4 v_3 = u[(start_byte_offset / 16u)];
+  vector<float16_t, 2> v_4 = tint_bitcast_to_f16((((((start_byte_offset % 16u) / 4u) == 2u)) ? (v_3.z) : (v_3.x)));
+  uint4 v_5 = u[((4u + start_byte_offset) / 16u)];
+  vector<float16_t, 2> v_6 = tint_bitcast_to_f16(((((((4u + start_byte_offset) % 16u) / 4u) == 2u)) ? (v_5.z) : (v_5.x)));
+  uint4 v_7 = u[((8u + start_byte_offset) / 16u)];
+  vector<float16_t, 2> v_8 = tint_bitcast_to_f16(((((((8u + start_byte_offset) % 16u) / 4u) == 2u)) ? (v_7.z) : (v_7.x)));
+  uint4 v_9 = u[((12u + start_byte_offset) / 16u)];
+  return matrix<float16_t, 4, 2>(v_4, v_6, v_8, tint_bitcast_to_f16(((((((12u + start_byte_offset) % 16u) / 4u) == 2u)) ? (v_9.z) : (v_9.x))));
+}
+
+[numthreads(1, 1, 1)]
+void f() {
+  p = v_2(0u);
+  p[1] = tint_bitcast_to_f16(u[0u].x);
+  p[1] = tint_bitcast_to_f16(u[0u].x).yx;
+  p[0][1] = float16_t(f16tof32(u[0u].y));
+}
+
diff --git a/test/tint/buffer/uniform/std140/unnested/mat4x2_f16/to_private.wgsl.expected.ir.fxc.hlsl b/test/tint/buffer/uniform/std140/unnested/mat4x2_f16/to_private.wgsl.expected.ir.fxc.hlsl
index 3f437dc..b2afd47 100644
--- a/test/tint/buffer/uniform/std140/unnested/mat4x2_f16/to_private.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/buffer/uniform/std140/unnested/mat4x2_f16/to_private.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,37 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Access
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+
+cbuffer cbuffer_u : register(b0) {
+  uint4 u[1];
+};
+static matrix<float16_t, 4, 2> p = matrix<float16_t, 4, 2>((float16_t(0.0h)).xx, (float16_t(0.0h)).xx, (float16_t(0.0h)).xx, (float16_t(0.0h)).xx);
+vector<float16_t, 2> tint_bitcast_to_f16(uint src) {
+  uint v = src;
+  float t_low = f16tof32((v & 65535u));
+  float t_high = f16tof32(((v >> 16u) & 65535u));
+  float16_t v_1 = float16_t(t_low);
+  return vector<float16_t, 2>(v_1, float16_t(t_high));
+}
+
+matrix<float16_t, 4, 2> v_2(uint start_byte_offset) {
+  uint4 v_3 = u[(start_byte_offset / 16u)];
+  vector<float16_t, 2> v_4 = tint_bitcast_to_f16((((((start_byte_offset % 16u) / 4u) == 2u)) ? (v_3.z) : (v_3.x)));
+  uint4 v_5 = u[((4u + start_byte_offset) / 16u)];
+  vector<float16_t, 2> v_6 = tint_bitcast_to_f16(((((((4u + start_byte_offset) % 16u) / 4u) == 2u)) ? (v_5.z) : (v_5.x)));
+  uint4 v_7 = u[((8u + start_byte_offset) / 16u)];
+  vector<float16_t, 2> v_8 = tint_bitcast_to_f16(((((((8u + start_byte_offset) % 16u) / 4u) == 2u)) ? (v_7.z) : (v_7.x)));
+  uint4 v_9 = u[((12u + start_byte_offset) / 16u)];
+  return matrix<float16_t, 4, 2>(v_4, v_6, v_8, tint_bitcast_to_f16(((((((12u + start_byte_offset) % 16u) / 4u) == 2u)) ? (v_9.z) : (v_9.x))));
+}
+
+[numthreads(1, 1, 1)]
+void f() {
+  p = v_2(0u);
+  p[1] = tint_bitcast_to_f16(u[0u].x);
+  p[1] = tint_bitcast_to_f16(u[0u].x).yx;
+  p[0][1] = float16_t(f16tof32(u[0u].y));
+}
+
+FXC validation failure:
+c:\src\dawn\Shader@0x0000023D8F6A1E60(5,15-23): error X3000: syntax error: unexpected token 'float16_t'
+
diff --git a/test/tint/buffer/uniform/std140/unnested/mat4x2_f16/to_storage.wgsl.expected.ir.dxc.hlsl b/test/tint/buffer/uniform/std140/unnested/mat4x2_f16/to_storage.wgsl.expected.ir.dxc.hlsl
index 3f437dc..8bb3e8a 100644
--- a/test/tint/buffer/uniform/std140/unnested/mat4x2_f16/to_storage.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/buffer/uniform/std140/unnested/mat4x2_f16/to_storage.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,39 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Access
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+cbuffer cbuffer_u : register(b0) {
+  uint4 u[1];
+};
+RWByteAddressBuffer s : register(u1);
+vector<float16_t, 2> tint_bitcast_to_f16(uint src) {
+  uint v = src;
+  float t_low = f16tof32((v & 65535u));
+  float t_high = f16tof32(((v >> 16u) & 65535u));
+  float16_t v_1 = float16_t(t_low);
+  return vector<float16_t, 2>(v_1, float16_t(t_high));
+}
+
+void v_2(uint offset, matrix<float16_t, 4, 2> obj) {
+  s.Store<vector<float16_t, 2> >((offset + 0u), obj[0u]);
+  s.Store<vector<float16_t, 2> >((offset + 4u), obj[1u]);
+  s.Store<vector<float16_t, 2> >((offset + 8u), obj[2u]);
+  s.Store<vector<float16_t, 2> >((offset + 12u), obj[3u]);
+}
+
+matrix<float16_t, 4, 2> v_3(uint start_byte_offset) {
+  uint4 v_4 = u[(start_byte_offset / 16u)];
+  vector<float16_t, 2> v_5 = tint_bitcast_to_f16((((((start_byte_offset % 16u) / 4u) == 2u)) ? (v_4.z) : (v_4.x)));
+  uint4 v_6 = u[((4u + start_byte_offset) / 16u)];
+  vector<float16_t, 2> v_7 = tint_bitcast_to_f16(((((((4u + start_byte_offset) % 16u) / 4u) == 2u)) ? (v_6.z) : (v_6.x)));
+  uint4 v_8 = u[((8u + start_byte_offset) / 16u)];
+  vector<float16_t, 2> v_9 = tint_bitcast_to_f16(((((((8u + start_byte_offset) % 16u) / 4u) == 2u)) ? (v_8.z) : (v_8.x)));
+  uint4 v_10 = u[((12u + start_byte_offset) / 16u)];
+  return matrix<float16_t, 4, 2>(v_5, v_7, v_9, tint_bitcast_to_f16(((((((12u + start_byte_offset) % 16u) / 4u) == 2u)) ? (v_10.z) : (v_10.x))));
+}
+
+[numthreads(1, 1, 1)]
+void f() {
+  v_2(0u, v_3(0u));
+  s.Store<vector<float16_t, 2> >(4u, tint_bitcast_to_f16(u[0u].x));
+  s.Store<vector<float16_t, 2> >(4u, tint_bitcast_to_f16(u[0u].x).yx);
+  s.Store<float16_t>(2u, float16_t(f16tof32(u[0u].y)));
+}
+
diff --git a/test/tint/buffer/uniform/std140/unnested/mat4x2_f16/to_storage.wgsl.expected.ir.fxc.hlsl b/test/tint/buffer/uniform/std140/unnested/mat4x2_f16/to_storage.wgsl.expected.ir.fxc.hlsl
index 3f437dc..686967c 100644
--- a/test/tint/buffer/uniform/std140/unnested/mat4x2_f16/to_storage.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/buffer/uniform/std140/unnested/mat4x2_f16/to_storage.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,44 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Access
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+
+cbuffer cbuffer_u : register(b0) {
+  uint4 u[1];
+};
+RWByteAddressBuffer s : register(u1);
+vector<float16_t, 2> tint_bitcast_to_f16(uint src) {
+  uint v = src;
+  float t_low = f16tof32((v & 65535u));
+  float t_high = f16tof32(((v >> 16u) & 65535u));
+  float16_t v_1 = float16_t(t_low);
+  return vector<float16_t, 2>(v_1, float16_t(t_high));
+}
+
+void v_2(uint offset, matrix<float16_t, 4, 2> obj) {
+  s.Store<vector<float16_t, 2> >((offset + 0u), obj[0u]);
+  s.Store<vector<float16_t, 2> >((offset + 4u), obj[1u]);
+  s.Store<vector<float16_t, 2> >((offset + 8u), obj[2u]);
+  s.Store<vector<float16_t, 2> >((offset + 12u), obj[3u]);
+}
+
+matrix<float16_t, 4, 2> v_3(uint start_byte_offset) {
+  uint4 v_4 = u[(start_byte_offset / 16u)];
+  vector<float16_t, 2> v_5 = tint_bitcast_to_f16((((((start_byte_offset % 16u) / 4u) == 2u)) ? (v_4.z) : (v_4.x)));
+  uint4 v_6 = u[((4u + start_byte_offset) / 16u)];
+  vector<float16_t, 2> v_7 = tint_bitcast_to_f16(((((((4u + start_byte_offset) % 16u) / 4u) == 2u)) ? (v_6.z) : (v_6.x)));
+  uint4 v_8 = u[((8u + start_byte_offset) / 16u)];
+  vector<float16_t, 2> v_9 = tint_bitcast_to_f16(((((((8u + start_byte_offset) % 16u) / 4u) == 2u)) ? (v_8.z) : (v_8.x)));
+  uint4 v_10 = u[((12u + start_byte_offset) / 16u)];
+  return matrix<float16_t, 4, 2>(v_5, v_7, v_9, tint_bitcast_to_f16(((((((12u + start_byte_offset) % 16u) / 4u) == 2u)) ? (v_10.z) : (v_10.x))));
+}
+
+[numthreads(1, 1, 1)]
+void f() {
+  v_2(0u, v_3(0u));
+  s.Store<vector<float16_t, 2> >(4u, tint_bitcast_to_f16(u[0u].x));
+  s.Store<vector<float16_t, 2> >(4u, tint_bitcast_to_f16(u[0u].x).yx);
+  s.Store<float16_t>(2u, float16_t(f16tof32(u[0u].y)));
+}
+
+FXC validation failure:
+c:\src\dawn\Shader@0x000001D0483D7740(6,8-16): error X3000: syntax error: unexpected token 'float16_t'
+
diff --git a/test/tint/buffer/uniform/std140/unnested/mat4x2_f16/to_workgroup.wgsl.expected.ir.dxc.hlsl b/test/tint/buffer/uniform/std140/unnested/mat4x2_f16/to_workgroup.wgsl.expected.ir.dxc.hlsl
index 3f437dc..aaebce5 100644
--- a/test/tint/buffer/uniform/std140/unnested/mat4x2_f16/to_workgroup.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/buffer/uniform/std140/unnested/mat4x2_f16/to_workgroup.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,44 @@
-SKIP: FAILED
+struct f_inputs {
+  uint tint_local_index : SV_GroupIndex;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Access
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+
+cbuffer cbuffer_u : register(b0) {
+  uint4 u[1];
+};
+groupshared matrix<float16_t, 4, 2> w;
+vector<float16_t, 2> tint_bitcast_to_f16(uint src) {
+  uint v = src;
+  float t_low = f16tof32((v & 65535u));
+  float t_high = f16tof32(((v >> 16u) & 65535u));
+  float16_t v_1 = float16_t(t_low);
+  return vector<float16_t, 2>(v_1, float16_t(t_high));
+}
+
+matrix<float16_t, 4, 2> v_2(uint start_byte_offset) {
+  uint4 v_3 = u[(start_byte_offset / 16u)];
+  vector<float16_t, 2> v_4 = tint_bitcast_to_f16((((((start_byte_offset % 16u) / 4u) == 2u)) ? (v_3.z) : (v_3.x)));
+  uint4 v_5 = u[((4u + start_byte_offset) / 16u)];
+  vector<float16_t, 2> v_6 = tint_bitcast_to_f16(((((((4u + start_byte_offset) % 16u) / 4u) == 2u)) ? (v_5.z) : (v_5.x)));
+  uint4 v_7 = u[((8u + start_byte_offset) / 16u)];
+  vector<float16_t, 2> v_8 = tint_bitcast_to_f16(((((((8u + start_byte_offset) % 16u) / 4u) == 2u)) ? (v_7.z) : (v_7.x)));
+  uint4 v_9 = u[((12u + start_byte_offset) / 16u)];
+  return matrix<float16_t, 4, 2>(v_4, v_6, v_8, tint_bitcast_to_f16(((((((12u + start_byte_offset) % 16u) / 4u) == 2u)) ? (v_9.z) : (v_9.x))));
+}
+
+void f_inner(uint tint_local_index) {
+  if ((tint_local_index == 0u)) {
+    w = matrix<float16_t, 4, 2>((float16_t(0.0h)).xx, (float16_t(0.0h)).xx, (float16_t(0.0h)).xx, (float16_t(0.0h)).xx);
+  }
+  GroupMemoryBarrierWithGroupSync();
+  w = v_2(0u);
+  w[1] = tint_bitcast_to_f16(u[0u].x);
+  w[1] = tint_bitcast_to_f16(u[0u].x).yx;
+  w[0][1] = float16_t(f16tof32(u[0u].y));
+}
+
+[numthreads(1, 1, 1)]
+void f(f_inputs inputs) {
+  f_inner(inputs.tint_local_index);
+}
+
diff --git a/test/tint/buffer/uniform/std140/unnested/mat4x2_f16/to_workgroup.wgsl.expected.ir.fxc.hlsl b/test/tint/buffer/uniform/std140/unnested/mat4x2_f16/to_workgroup.wgsl.expected.ir.fxc.hlsl
index 3f437dc..34c643d 100644
--- a/test/tint/buffer/uniform/std140/unnested/mat4x2_f16/to_workgroup.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/buffer/uniform/std140/unnested/mat4x2_f16/to_workgroup.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,49 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Access
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct f_inputs {
+  uint tint_local_index : SV_GroupIndex;
+};
+
+
+cbuffer cbuffer_u : register(b0) {
+  uint4 u[1];
+};
+groupshared matrix<float16_t, 4, 2> w;
+vector<float16_t, 2> tint_bitcast_to_f16(uint src) {
+  uint v = src;
+  float t_low = f16tof32((v & 65535u));
+  float t_high = f16tof32(((v >> 16u) & 65535u));
+  float16_t v_1 = float16_t(t_low);
+  return vector<float16_t, 2>(v_1, float16_t(t_high));
+}
+
+matrix<float16_t, 4, 2> v_2(uint start_byte_offset) {
+  uint4 v_3 = u[(start_byte_offset / 16u)];
+  vector<float16_t, 2> v_4 = tint_bitcast_to_f16((((((start_byte_offset % 16u) / 4u) == 2u)) ? (v_3.z) : (v_3.x)));
+  uint4 v_5 = u[((4u + start_byte_offset) / 16u)];
+  vector<float16_t, 2> v_6 = tint_bitcast_to_f16(((((((4u + start_byte_offset) % 16u) / 4u) == 2u)) ? (v_5.z) : (v_5.x)));
+  uint4 v_7 = u[((8u + start_byte_offset) / 16u)];
+  vector<float16_t, 2> v_8 = tint_bitcast_to_f16(((((((8u + start_byte_offset) % 16u) / 4u) == 2u)) ? (v_7.z) : (v_7.x)));
+  uint4 v_9 = u[((12u + start_byte_offset) / 16u)];
+  return matrix<float16_t, 4, 2>(v_4, v_6, v_8, tint_bitcast_to_f16(((((((12u + start_byte_offset) % 16u) / 4u) == 2u)) ? (v_9.z) : (v_9.x))));
+}
+
+void f_inner(uint tint_local_index) {
+  if ((tint_local_index == 0u)) {
+    w = matrix<float16_t, 4, 2>((float16_t(0.0h)).xx, (float16_t(0.0h)).xx, (float16_t(0.0h)).xx, (float16_t(0.0h)).xx);
+  }
+  GroupMemoryBarrierWithGroupSync();
+  w = v_2(0u);
+  w[1] = tint_bitcast_to_f16(u[0u].x);
+  w[1] = tint_bitcast_to_f16(u[0u].x).yx;
+  w[0][1] = float16_t(f16tof32(u[0u].y));
+}
+
+[numthreads(1, 1, 1)]
+void f(f_inputs inputs) {
+  f_inner(inputs.tint_local_index);
+}
+
+FXC validation failure:
+c:\src\dawn\Shader@0x0000022F74443990(9,20-28): error X3000: syntax error: unexpected token 'float16_t'
+
diff --git a/test/tint/buffer/uniform/std140/unnested/mat4x2_f32/dynamic_index_via_ptr.wgsl.expected.ir.dxc.hlsl b/test/tint/buffer/uniform/std140/unnested/mat4x2_f32/dynamic_index_via_ptr.wgsl.expected.ir.dxc.hlsl
index 3f437dc..d4686bd 100644
--- a/test/tint/buffer/uniform/std140/unnested/mat4x2_f32/dynamic_index_via_ptr.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/buffer/uniform/std140/unnested/mat4x2_f32/dynamic_index_via_ptr.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,29 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Access
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+cbuffer cbuffer_m : register(b0) {
+  uint4 m[2];
+};
+static int counter = 0;
+int i() {
+  counter = (counter + 1);
+  return counter;
+}
+
+float4x2 v(uint start_byte_offset) {
+  uint4 v_1 = m[(start_byte_offset / 16u)];
+  float2 v_2 = asfloat((((((start_byte_offset % 16u) / 4u) == 2u)) ? (v_1.zw) : (v_1.xy)));
+  uint4 v_3 = m[((8u + start_byte_offset) / 16u)];
+  float2 v_4 = asfloat(((((((8u + start_byte_offset) % 16u) / 4u) == 2u)) ? (v_3.zw) : (v_3.xy)));
+  uint4 v_5 = m[((16u + start_byte_offset) / 16u)];
+  float2 v_6 = asfloat(((((((16u + start_byte_offset) % 16u) / 4u) == 2u)) ? (v_5.zw) : (v_5.xy)));
+  uint4 v_7 = m[((24u + start_byte_offset) / 16u)];
+  return float4x2(v_2, v_4, v_6, asfloat(((((((24u + start_byte_offset) % 16u) / 4u) == 2u)) ? (v_7.zw) : (v_7.xy))));
+}
+
+[numthreads(1, 1, 1)]
+void f() {
+  uint v_8 = (8u * uint(i()));
+  float4x2 l_m = v(0u);
+  uint4 v_9 = m[(v_8 / 16u)];
+  float2 l_m_i = asfloat((((((v_8 % 16u) / 4u) == 2u)) ? (v_9.zw) : (v_9.xy)));
+}
+
diff --git a/test/tint/buffer/uniform/std140/unnested/mat4x2_f32/dynamic_index_via_ptr.wgsl.expected.ir.fxc.hlsl b/test/tint/buffer/uniform/std140/unnested/mat4x2_f32/dynamic_index_via_ptr.wgsl.expected.ir.fxc.hlsl
index 3f437dc..d4686bd 100644
--- a/test/tint/buffer/uniform/std140/unnested/mat4x2_f32/dynamic_index_via_ptr.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/buffer/uniform/std140/unnested/mat4x2_f32/dynamic_index_via_ptr.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,29 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Access
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+cbuffer cbuffer_m : register(b0) {
+  uint4 m[2];
+};
+static int counter = 0;
+int i() {
+  counter = (counter + 1);
+  return counter;
+}
+
+float4x2 v(uint start_byte_offset) {
+  uint4 v_1 = m[(start_byte_offset / 16u)];
+  float2 v_2 = asfloat((((((start_byte_offset % 16u) / 4u) == 2u)) ? (v_1.zw) : (v_1.xy)));
+  uint4 v_3 = m[((8u + start_byte_offset) / 16u)];
+  float2 v_4 = asfloat(((((((8u + start_byte_offset) % 16u) / 4u) == 2u)) ? (v_3.zw) : (v_3.xy)));
+  uint4 v_5 = m[((16u + start_byte_offset) / 16u)];
+  float2 v_6 = asfloat(((((((16u + start_byte_offset) % 16u) / 4u) == 2u)) ? (v_5.zw) : (v_5.xy)));
+  uint4 v_7 = m[((24u + start_byte_offset) / 16u)];
+  return float4x2(v_2, v_4, v_6, asfloat(((((((24u + start_byte_offset) % 16u) / 4u) == 2u)) ? (v_7.zw) : (v_7.xy))));
+}
+
+[numthreads(1, 1, 1)]
+void f() {
+  uint v_8 = (8u * uint(i()));
+  float4x2 l_m = v(0u);
+  uint4 v_9 = m[(v_8 / 16u)];
+  float2 l_m_i = asfloat((((((v_8 % 16u) / 4u) == 2u)) ? (v_9.zw) : (v_9.xy)));
+}
+
diff --git a/test/tint/buffer/uniform/std140/unnested/mat4x2_f32/static_index_via_ptr.wgsl.expected.ir.dxc.hlsl b/test/tint/buffer/uniform/std140/unnested/mat4x2_f32/static_index_via_ptr.wgsl.expected.ir.dxc.hlsl
index 3f437dc..249afaf 100644
--- a/test/tint/buffer/uniform/std140/unnested/mat4x2_f32/static_index_via_ptr.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/buffer/uniform/std140/unnested/mat4x2_f32/static_index_via_ptr.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,27 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Access
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+cbuffer cbuffer_m : register(b0) {
+  uint4 m[2];
+};
+static int counter = 0;
+int i() {
+  counter = (counter + 1);
+  return counter;
+}
+
+float4x2 v(uint start_byte_offset) {
+  uint4 v_1 = m[(start_byte_offset / 16u)];
+  float2 v_2 = asfloat((((((start_byte_offset % 16u) / 4u) == 2u)) ? (v_1.zw) : (v_1.xy)));
+  uint4 v_3 = m[((8u + start_byte_offset) / 16u)];
+  float2 v_4 = asfloat(((((((8u + start_byte_offset) % 16u) / 4u) == 2u)) ? (v_3.zw) : (v_3.xy)));
+  uint4 v_5 = m[((16u + start_byte_offset) / 16u)];
+  float2 v_6 = asfloat(((((((16u + start_byte_offset) % 16u) / 4u) == 2u)) ? (v_5.zw) : (v_5.xy)));
+  uint4 v_7 = m[((24u + start_byte_offset) / 16u)];
+  return float4x2(v_2, v_4, v_6, asfloat(((((((24u + start_byte_offset) % 16u) / 4u) == 2u)) ? (v_7.zw) : (v_7.xy))));
+}
+
+[numthreads(1, 1, 1)]
+void f() {
+  float4x2 l_m = v(0u);
+  float2 l_m_1 = asfloat(m[0u].zw);
+}
+
diff --git a/test/tint/buffer/uniform/std140/unnested/mat4x2_f32/static_index_via_ptr.wgsl.expected.ir.fxc.hlsl b/test/tint/buffer/uniform/std140/unnested/mat4x2_f32/static_index_via_ptr.wgsl.expected.ir.fxc.hlsl
index 3f437dc..249afaf 100644
--- a/test/tint/buffer/uniform/std140/unnested/mat4x2_f32/static_index_via_ptr.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/buffer/uniform/std140/unnested/mat4x2_f32/static_index_via_ptr.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,27 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Access
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+cbuffer cbuffer_m : register(b0) {
+  uint4 m[2];
+};
+static int counter = 0;
+int i() {
+  counter = (counter + 1);
+  return counter;
+}
+
+float4x2 v(uint start_byte_offset) {
+  uint4 v_1 = m[(start_byte_offset / 16u)];
+  float2 v_2 = asfloat((((((start_byte_offset % 16u) / 4u) == 2u)) ? (v_1.zw) : (v_1.xy)));
+  uint4 v_3 = m[((8u + start_byte_offset) / 16u)];
+  float2 v_4 = asfloat(((((((8u + start_byte_offset) % 16u) / 4u) == 2u)) ? (v_3.zw) : (v_3.xy)));
+  uint4 v_5 = m[((16u + start_byte_offset) / 16u)];
+  float2 v_6 = asfloat(((((((16u + start_byte_offset) % 16u) / 4u) == 2u)) ? (v_5.zw) : (v_5.xy)));
+  uint4 v_7 = m[((24u + start_byte_offset) / 16u)];
+  return float4x2(v_2, v_4, v_6, asfloat(((((((24u + start_byte_offset) % 16u) / 4u) == 2u)) ? (v_7.zw) : (v_7.xy))));
+}
+
+[numthreads(1, 1, 1)]
+void f() {
+  float4x2 l_m = v(0u);
+  float2 l_m_1 = asfloat(m[0u].zw);
+}
+
diff --git a/test/tint/buffer/uniform/std140/unnested/mat4x2_f32/to_builtin.wgsl.expected.ir.dxc.hlsl b/test/tint/buffer/uniform/std140/unnested/mat4x2_f32/to_builtin.wgsl.expected.ir.dxc.hlsl
index 3f437dc..cf138ff 100644
--- a/test/tint/buffer/uniform/std140/unnested/mat4x2_f32/to_builtin.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/buffer/uniform/std140/unnested/mat4x2_f32/to_builtin.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,22 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Access
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+cbuffer cbuffer_u : register(b0) {
+  uint4 u[2];
+};
+float4x2 v(uint start_byte_offset) {
+  uint4 v_1 = u[(start_byte_offset / 16u)];
+  float2 v_2 = asfloat((((((start_byte_offset % 16u) / 4u) == 2u)) ? (v_1.zw) : (v_1.xy)));
+  uint4 v_3 = u[((8u + start_byte_offset) / 16u)];
+  float2 v_4 = asfloat(((((((8u + start_byte_offset) % 16u) / 4u) == 2u)) ? (v_3.zw) : (v_3.xy)));
+  uint4 v_5 = u[((16u + start_byte_offset) / 16u)];
+  float2 v_6 = asfloat(((((((16u + start_byte_offset) % 16u) / 4u) == 2u)) ? (v_5.zw) : (v_5.xy)));
+  uint4 v_7 = u[((24u + start_byte_offset) / 16u)];
+  return float4x2(v_2, v_4, v_6, asfloat(((((((24u + start_byte_offset) % 16u) / 4u) == 2u)) ? (v_7.zw) : (v_7.xy))));
+}
+
+[numthreads(1, 1, 1)]
+void f() {
+  float2x4 t = transpose(v(0u));
+  float l = length(asfloat(u[0u].zw));
+  float a = abs(asfloat(u[0u].xy).yx[0u]);
+}
+
diff --git a/test/tint/buffer/uniform/std140/unnested/mat4x2_f32/to_builtin.wgsl.expected.ir.fxc.hlsl b/test/tint/buffer/uniform/std140/unnested/mat4x2_f32/to_builtin.wgsl.expected.ir.fxc.hlsl
index 3f437dc..cf138ff 100644
--- a/test/tint/buffer/uniform/std140/unnested/mat4x2_f32/to_builtin.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/buffer/uniform/std140/unnested/mat4x2_f32/to_builtin.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,22 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Access
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+cbuffer cbuffer_u : register(b0) {
+  uint4 u[2];
+};
+float4x2 v(uint start_byte_offset) {
+  uint4 v_1 = u[(start_byte_offset / 16u)];
+  float2 v_2 = asfloat((((((start_byte_offset % 16u) / 4u) == 2u)) ? (v_1.zw) : (v_1.xy)));
+  uint4 v_3 = u[((8u + start_byte_offset) / 16u)];
+  float2 v_4 = asfloat(((((((8u + start_byte_offset) % 16u) / 4u) == 2u)) ? (v_3.zw) : (v_3.xy)));
+  uint4 v_5 = u[((16u + start_byte_offset) / 16u)];
+  float2 v_6 = asfloat(((((((16u + start_byte_offset) % 16u) / 4u) == 2u)) ? (v_5.zw) : (v_5.xy)));
+  uint4 v_7 = u[((24u + start_byte_offset) / 16u)];
+  return float4x2(v_2, v_4, v_6, asfloat(((((((24u + start_byte_offset) % 16u) / 4u) == 2u)) ? (v_7.zw) : (v_7.xy))));
+}
+
+[numthreads(1, 1, 1)]
+void f() {
+  float2x4 t = transpose(v(0u));
+  float l = length(asfloat(u[0u].zw));
+  float a = abs(asfloat(u[0u].xy).yx[0u]);
+}
+
diff --git a/test/tint/buffer/uniform/std140/unnested/mat4x2_f32/to_fn.wgsl.expected.ir.dxc.hlsl b/test/tint/buffer/uniform/std140/unnested/mat4x2_f32/to_fn.wgsl.expected.ir.dxc.hlsl
index 3f437dc..6e3ff0a 100644
--- a/test/tint/buffer/uniform/std140/unnested/mat4x2_f32/to_fn.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/buffer/uniform/std140/unnested/mat4x2_f32/to_fn.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,33 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Access
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+cbuffer cbuffer_u : register(b0) {
+  uint4 u[2];
+};
+void a(float4x2 m) {
+}
+
+void b(float2 v) {
+}
+
+void c(float f) {
+}
+
+float4x2 v_1(uint start_byte_offset) {
+  uint4 v_2 = u[(start_byte_offset / 16u)];
+  float2 v_3 = asfloat((((((start_byte_offset % 16u) / 4u) == 2u)) ? (v_2.zw) : (v_2.xy)));
+  uint4 v_4 = u[((8u + start_byte_offset) / 16u)];
+  float2 v_5 = asfloat(((((((8u + start_byte_offset) % 16u) / 4u) == 2u)) ? (v_4.zw) : (v_4.xy)));
+  uint4 v_6 = u[((16u + start_byte_offset) / 16u)];
+  float2 v_7 = asfloat(((((((16u + start_byte_offset) % 16u) / 4u) == 2u)) ? (v_6.zw) : (v_6.xy)));
+  uint4 v_8 = u[((24u + start_byte_offset) / 16u)];
+  return float4x2(v_3, v_5, v_7, asfloat(((((((24u + start_byte_offset) % 16u) / 4u) == 2u)) ? (v_8.zw) : (v_8.xy))));
+}
+
+[numthreads(1, 1, 1)]
+void f() {
+  a(v_1(0u));
+  b(asfloat(u[0u].zw));
+  b(asfloat(u[0u].zw).yx);
+  c(asfloat(u[0u].z));
+  c(asfloat(u[0u].zw).yx[0u]);
+}
+
diff --git a/test/tint/buffer/uniform/std140/unnested/mat4x2_f32/to_fn.wgsl.expected.ir.fxc.hlsl b/test/tint/buffer/uniform/std140/unnested/mat4x2_f32/to_fn.wgsl.expected.ir.fxc.hlsl
index 3f437dc..6e3ff0a 100644
--- a/test/tint/buffer/uniform/std140/unnested/mat4x2_f32/to_fn.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/buffer/uniform/std140/unnested/mat4x2_f32/to_fn.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,33 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Access
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+cbuffer cbuffer_u : register(b0) {
+  uint4 u[2];
+};
+void a(float4x2 m) {
+}
+
+void b(float2 v) {
+}
+
+void c(float f) {
+}
+
+float4x2 v_1(uint start_byte_offset) {
+  uint4 v_2 = u[(start_byte_offset / 16u)];
+  float2 v_3 = asfloat((((((start_byte_offset % 16u) / 4u) == 2u)) ? (v_2.zw) : (v_2.xy)));
+  uint4 v_4 = u[((8u + start_byte_offset) / 16u)];
+  float2 v_5 = asfloat(((((((8u + start_byte_offset) % 16u) / 4u) == 2u)) ? (v_4.zw) : (v_4.xy)));
+  uint4 v_6 = u[((16u + start_byte_offset) / 16u)];
+  float2 v_7 = asfloat(((((((16u + start_byte_offset) % 16u) / 4u) == 2u)) ? (v_6.zw) : (v_6.xy)));
+  uint4 v_8 = u[((24u + start_byte_offset) / 16u)];
+  return float4x2(v_3, v_5, v_7, asfloat(((((((24u + start_byte_offset) % 16u) / 4u) == 2u)) ? (v_8.zw) : (v_8.xy))));
+}
+
+[numthreads(1, 1, 1)]
+void f() {
+  a(v_1(0u));
+  b(asfloat(u[0u].zw));
+  b(asfloat(u[0u].zw).yx);
+  c(asfloat(u[0u].z));
+  c(asfloat(u[0u].zw).yx[0u]);
+}
+
diff --git a/test/tint/buffer/uniform/std140/unnested/mat4x2_f32/to_private.wgsl.expected.ir.dxc.hlsl b/test/tint/buffer/uniform/std140/unnested/mat4x2_f32/to_private.wgsl.expected.ir.dxc.hlsl
index 3f437dc..ad3cd29 100644
--- a/test/tint/buffer/uniform/std140/unnested/mat4x2_f32/to_private.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/buffer/uniform/std140/unnested/mat4x2_f32/to_private.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,24 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Access
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+cbuffer cbuffer_u : register(b0) {
+  uint4 u[2];
+};
+static float4x2 p = float4x2((0.0f).xx, (0.0f).xx, (0.0f).xx, (0.0f).xx);
+float4x2 v(uint start_byte_offset) {
+  uint4 v_1 = u[(start_byte_offset / 16u)];
+  float2 v_2 = asfloat((((((start_byte_offset % 16u) / 4u) == 2u)) ? (v_1.zw) : (v_1.xy)));
+  uint4 v_3 = u[((8u + start_byte_offset) / 16u)];
+  float2 v_4 = asfloat(((((((8u + start_byte_offset) % 16u) / 4u) == 2u)) ? (v_3.zw) : (v_3.xy)));
+  uint4 v_5 = u[((16u + start_byte_offset) / 16u)];
+  float2 v_6 = asfloat(((((((16u + start_byte_offset) % 16u) / 4u) == 2u)) ? (v_5.zw) : (v_5.xy)));
+  uint4 v_7 = u[((24u + start_byte_offset) / 16u)];
+  return float4x2(v_2, v_4, v_6, asfloat(((((((24u + start_byte_offset) % 16u) / 4u) == 2u)) ? (v_7.zw) : (v_7.xy))));
+}
+
+[numthreads(1, 1, 1)]
+void f() {
+  p = v(0u);
+  p[1] = asfloat(u[0u].xy);
+  p[1] = asfloat(u[0u].xy).yx;
+  p[0][1] = asfloat(u[0u].z);
+}
+
diff --git a/test/tint/buffer/uniform/std140/unnested/mat4x2_f32/to_private.wgsl.expected.ir.fxc.hlsl b/test/tint/buffer/uniform/std140/unnested/mat4x2_f32/to_private.wgsl.expected.ir.fxc.hlsl
index 3f437dc..ad3cd29 100644
--- a/test/tint/buffer/uniform/std140/unnested/mat4x2_f32/to_private.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/buffer/uniform/std140/unnested/mat4x2_f32/to_private.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,24 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Access
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+cbuffer cbuffer_u : register(b0) {
+  uint4 u[2];
+};
+static float4x2 p = float4x2((0.0f).xx, (0.0f).xx, (0.0f).xx, (0.0f).xx);
+float4x2 v(uint start_byte_offset) {
+  uint4 v_1 = u[(start_byte_offset / 16u)];
+  float2 v_2 = asfloat((((((start_byte_offset % 16u) / 4u) == 2u)) ? (v_1.zw) : (v_1.xy)));
+  uint4 v_3 = u[((8u + start_byte_offset) / 16u)];
+  float2 v_4 = asfloat(((((((8u + start_byte_offset) % 16u) / 4u) == 2u)) ? (v_3.zw) : (v_3.xy)));
+  uint4 v_5 = u[((16u + start_byte_offset) / 16u)];
+  float2 v_6 = asfloat(((((((16u + start_byte_offset) % 16u) / 4u) == 2u)) ? (v_5.zw) : (v_5.xy)));
+  uint4 v_7 = u[((24u + start_byte_offset) / 16u)];
+  return float4x2(v_2, v_4, v_6, asfloat(((((((24u + start_byte_offset) % 16u) / 4u) == 2u)) ? (v_7.zw) : (v_7.xy))));
+}
+
+[numthreads(1, 1, 1)]
+void f() {
+  p = v(0u);
+  p[1] = asfloat(u[0u].xy);
+  p[1] = asfloat(u[0u].xy).yx;
+  p[0][1] = asfloat(u[0u].z);
+}
+
diff --git a/test/tint/buffer/uniform/std140/unnested/mat4x2_f32/to_storage.wgsl.expected.ir.dxc.hlsl b/test/tint/buffer/uniform/std140/unnested/mat4x2_f32/to_storage.wgsl.expected.ir.dxc.hlsl
index 3f437dc..758bc50 100644
--- a/test/tint/buffer/uniform/std140/unnested/mat4x2_f32/to_storage.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/buffer/uniform/std140/unnested/mat4x2_f32/to_storage.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,31 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Access
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+cbuffer cbuffer_u : register(b0) {
+  uint4 u[2];
+};
+RWByteAddressBuffer s : register(u1);
+void v(uint offset, float4x2 obj) {
+  s.Store2((offset + 0u), asuint(obj[0u]));
+  s.Store2((offset + 8u), asuint(obj[1u]));
+  s.Store2((offset + 16u), asuint(obj[2u]));
+  s.Store2((offset + 24u), asuint(obj[3u]));
+}
+
+float4x2 v_1(uint start_byte_offset) {
+  uint4 v_2 = u[(start_byte_offset / 16u)];
+  float2 v_3 = asfloat((((((start_byte_offset % 16u) / 4u) == 2u)) ? (v_2.zw) : (v_2.xy)));
+  uint4 v_4 = u[((8u + start_byte_offset) / 16u)];
+  float2 v_5 = asfloat(((((((8u + start_byte_offset) % 16u) / 4u) == 2u)) ? (v_4.zw) : (v_4.xy)));
+  uint4 v_6 = u[((16u + start_byte_offset) / 16u)];
+  float2 v_7 = asfloat(((((((16u + start_byte_offset) % 16u) / 4u) == 2u)) ? (v_6.zw) : (v_6.xy)));
+  uint4 v_8 = u[((24u + start_byte_offset) / 16u)];
+  return float4x2(v_3, v_5, v_7, asfloat(((((((24u + start_byte_offset) % 16u) / 4u) == 2u)) ? (v_8.zw) : (v_8.xy))));
+}
+
+[numthreads(1, 1, 1)]
+void f() {
+  v(0u, v_1(0u));
+  s.Store2(8u, asuint(asfloat(u[0u].xy)));
+  s.Store2(8u, asuint(asfloat(u[0u].xy).yx));
+  s.Store(4u, asuint(asfloat(u[0u].z)));
+}
+
diff --git a/test/tint/buffer/uniform/std140/unnested/mat4x2_f32/to_storage.wgsl.expected.ir.fxc.hlsl b/test/tint/buffer/uniform/std140/unnested/mat4x2_f32/to_storage.wgsl.expected.ir.fxc.hlsl
index 3f437dc..758bc50 100644
--- a/test/tint/buffer/uniform/std140/unnested/mat4x2_f32/to_storage.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/buffer/uniform/std140/unnested/mat4x2_f32/to_storage.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,31 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Access
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+cbuffer cbuffer_u : register(b0) {
+  uint4 u[2];
+};
+RWByteAddressBuffer s : register(u1);
+void v(uint offset, float4x2 obj) {
+  s.Store2((offset + 0u), asuint(obj[0u]));
+  s.Store2((offset + 8u), asuint(obj[1u]));
+  s.Store2((offset + 16u), asuint(obj[2u]));
+  s.Store2((offset + 24u), asuint(obj[3u]));
+}
+
+float4x2 v_1(uint start_byte_offset) {
+  uint4 v_2 = u[(start_byte_offset / 16u)];
+  float2 v_3 = asfloat((((((start_byte_offset % 16u) / 4u) == 2u)) ? (v_2.zw) : (v_2.xy)));
+  uint4 v_4 = u[((8u + start_byte_offset) / 16u)];
+  float2 v_5 = asfloat(((((((8u + start_byte_offset) % 16u) / 4u) == 2u)) ? (v_4.zw) : (v_4.xy)));
+  uint4 v_6 = u[((16u + start_byte_offset) / 16u)];
+  float2 v_7 = asfloat(((((((16u + start_byte_offset) % 16u) / 4u) == 2u)) ? (v_6.zw) : (v_6.xy)));
+  uint4 v_8 = u[((24u + start_byte_offset) / 16u)];
+  return float4x2(v_3, v_5, v_7, asfloat(((((((24u + start_byte_offset) % 16u) / 4u) == 2u)) ? (v_8.zw) : (v_8.xy))));
+}
+
+[numthreads(1, 1, 1)]
+void f() {
+  v(0u, v_1(0u));
+  s.Store2(8u, asuint(asfloat(u[0u].xy)));
+  s.Store2(8u, asuint(asfloat(u[0u].xy).yx));
+  s.Store(4u, asuint(asfloat(u[0u].z)));
+}
+
diff --git a/test/tint/buffer/uniform/std140/unnested/mat4x2_f32/to_workgroup.wgsl.expected.ir.dxc.hlsl b/test/tint/buffer/uniform/std140/unnested/mat4x2_f32/to_workgroup.wgsl.expected.ir.dxc.hlsl
index 3f437dc..3987bb0 100644
--- a/test/tint/buffer/uniform/std140/unnested/mat4x2_f32/to_workgroup.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/buffer/uniform/std140/unnested/mat4x2_f32/to_workgroup.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,36 @@
-SKIP: FAILED
+struct f_inputs {
+  uint tint_local_index : SV_GroupIndex;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Access
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+
+cbuffer cbuffer_u : register(b0) {
+  uint4 u[2];
+};
+groupshared float4x2 w;
+float4x2 v(uint start_byte_offset) {
+  uint4 v_1 = u[(start_byte_offset / 16u)];
+  float2 v_2 = asfloat((((((start_byte_offset % 16u) / 4u) == 2u)) ? (v_1.zw) : (v_1.xy)));
+  uint4 v_3 = u[((8u + start_byte_offset) / 16u)];
+  float2 v_4 = asfloat(((((((8u + start_byte_offset) % 16u) / 4u) == 2u)) ? (v_3.zw) : (v_3.xy)));
+  uint4 v_5 = u[((16u + start_byte_offset) / 16u)];
+  float2 v_6 = asfloat(((((((16u + start_byte_offset) % 16u) / 4u) == 2u)) ? (v_5.zw) : (v_5.xy)));
+  uint4 v_7 = u[((24u + start_byte_offset) / 16u)];
+  return float4x2(v_2, v_4, v_6, asfloat(((((((24u + start_byte_offset) % 16u) / 4u) == 2u)) ? (v_7.zw) : (v_7.xy))));
+}
+
+void f_inner(uint tint_local_index) {
+  if ((tint_local_index == 0u)) {
+    w = float4x2((0.0f).xx, (0.0f).xx, (0.0f).xx, (0.0f).xx);
+  }
+  GroupMemoryBarrierWithGroupSync();
+  w = v(0u);
+  w[1] = asfloat(u[0u].xy);
+  w[1] = asfloat(u[0u].xy).yx;
+  w[0][1] = asfloat(u[0u].z);
+}
+
+[numthreads(1, 1, 1)]
+void f(f_inputs inputs) {
+  f_inner(inputs.tint_local_index);
+}
+
diff --git a/test/tint/buffer/uniform/std140/unnested/mat4x2_f32/to_workgroup.wgsl.expected.ir.fxc.hlsl b/test/tint/buffer/uniform/std140/unnested/mat4x2_f32/to_workgroup.wgsl.expected.ir.fxc.hlsl
index 3f437dc..3987bb0 100644
--- a/test/tint/buffer/uniform/std140/unnested/mat4x2_f32/to_workgroup.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/buffer/uniform/std140/unnested/mat4x2_f32/to_workgroup.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,36 @@
-SKIP: FAILED
+struct f_inputs {
+  uint tint_local_index : SV_GroupIndex;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Access
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+
+cbuffer cbuffer_u : register(b0) {
+  uint4 u[2];
+};
+groupshared float4x2 w;
+float4x2 v(uint start_byte_offset) {
+  uint4 v_1 = u[(start_byte_offset / 16u)];
+  float2 v_2 = asfloat((((((start_byte_offset % 16u) / 4u) == 2u)) ? (v_1.zw) : (v_1.xy)));
+  uint4 v_3 = u[((8u + start_byte_offset) / 16u)];
+  float2 v_4 = asfloat(((((((8u + start_byte_offset) % 16u) / 4u) == 2u)) ? (v_3.zw) : (v_3.xy)));
+  uint4 v_5 = u[((16u + start_byte_offset) / 16u)];
+  float2 v_6 = asfloat(((((((16u + start_byte_offset) % 16u) / 4u) == 2u)) ? (v_5.zw) : (v_5.xy)));
+  uint4 v_7 = u[((24u + start_byte_offset) / 16u)];
+  return float4x2(v_2, v_4, v_6, asfloat(((((((24u + start_byte_offset) % 16u) / 4u) == 2u)) ? (v_7.zw) : (v_7.xy))));
+}
+
+void f_inner(uint tint_local_index) {
+  if ((tint_local_index == 0u)) {
+    w = float4x2((0.0f).xx, (0.0f).xx, (0.0f).xx, (0.0f).xx);
+  }
+  GroupMemoryBarrierWithGroupSync();
+  w = v(0u);
+  w[1] = asfloat(u[0u].xy);
+  w[1] = asfloat(u[0u].xy).yx;
+  w[0][1] = asfloat(u[0u].z);
+}
+
+[numthreads(1, 1, 1)]
+void f(f_inputs inputs) {
+  f_inner(inputs.tint_local_index);
+}
+
diff --git a/test/tint/buffer/uniform/std140/unnested/mat4x3_f16/dynamic_index_via_ptr.wgsl.expected.ir.dxc.hlsl b/test/tint/buffer/uniform/std140/unnested/mat4x3_f16/dynamic_index_via_ptr.wgsl.expected.ir.dxc.hlsl
index 3f437dc..78b8bc8 100644
--- a/test/tint/buffer/uniform/std140/unnested/mat4x3_f16/dynamic_index_via_ptr.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/buffer/uniform/std140/unnested/mat4x3_f16/dynamic_index_via_ptr.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,36 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Access
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+cbuffer cbuffer_m : register(b0) {
+  uint4 m[2];
+};
+static int counter = 0;
+int i() {
+  counter = (counter + 1);
+  return counter;
+}
+
+vector<float16_t, 4> tint_bitcast_to_f16(uint4 src) {
+  uint4 v = src;
+  uint4 mask = (65535u).xxxx;
+  uint4 shift = (16u).xxxx;
+  float4 t_low = f16tof32((v & mask));
+  float4 t_high = f16tof32(((v >> shift) & mask));
+  float16_t v_1 = float16_t(t_low.x);
+  float16_t v_2 = float16_t(t_high.x);
+  float16_t v_3 = float16_t(t_low.y);
+  return vector<float16_t, 4>(v_1, v_2, v_3, float16_t(t_high.y));
+}
+
+matrix<float16_t, 4, 3> v_4(uint start_byte_offset) {
+  vector<float16_t, 3> v_5 = tint_bitcast_to_f16(m[(start_byte_offset / 16u)]).xyz;
+  vector<float16_t, 3> v_6 = tint_bitcast_to_f16(m[((8u + start_byte_offset) / 16u)]).xyz;
+  vector<float16_t, 3> v_7 = tint_bitcast_to_f16(m[((16u + start_byte_offset) / 16u)]).xyz;
+  return matrix<float16_t, 4, 3>(v_5, v_6, v_7, tint_bitcast_to_f16(m[((24u + start_byte_offset) / 16u)]).xyz);
+}
+
+[numthreads(1, 1, 1)]
+void f() {
+  uint v_8 = (8u * uint(i()));
+  matrix<float16_t, 4, 3> l_m = v_4(0u);
+  vector<float16_t, 3> l_m_i = tint_bitcast_to_f16(m[(v_8 / 16u)]).xyz;
+}
+
diff --git a/test/tint/buffer/uniform/std140/unnested/mat4x3_f16/dynamic_index_via_ptr.wgsl.expected.ir.fxc.hlsl b/test/tint/buffer/uniform/std140/unnested/mat4x3_f16/dynamic_index_via_ptr.wgsl.expected.ir.fxc.hlsl
index 3f437dc..0b456e2 100644
--- a/test/tint/buffer/uniform/std140/unnested/mat4x3_f16/dynamic_index_via_ptr.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/buffer/uniform/std140/unnested/mat4x3_f16/dynamic_index_via_ptr.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,41 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Access
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+
+cbuffer cbuffer_m : register(b0) {
+  uint4 m[2];
+};
+static int counter = 0;
+int i() {
+  counter = (counter + 1);
+  return counter;
+}
+
+vector<float16_t, 4> tint_bitcast_to_f16(uint4 src) {
+  uint4 v = src;
+  uint4 mask = (65535u).xxxx;
+  uint4 shift = (16u).xxxx;
+  float4 t_low = f16tof32((v & mask));
+  float4 t_high = f16tof32(((v >> shift) & mask));
+  float16_t v_1 = float16_t(t_low.x);
+  float16_t v_2 = float16_t(t_high.x);
+  float16_t v_3 = float16_t(t_low.y);
+  return vector<float16_t, 4>(v_1, v_2, v_3, float16_t(t_high.y));
+}
+
+matrix<float16_t, 4, 3> v_4(uint start_byte_offset) {
+  vector<float16_t, 3> v_5 = tint_bitcast_to_f16(m[(start_byte_offset / 16u)]).xyz;
+  vector<float16_t, 3> v_6 = tint_bitcast_to_f16(m[((8u + start_byte_offset) / 16u)]).xyz;
+  vector<float16_t, 3> v_7 = tint_bitcast_to_f16(m[((16u + start_byte_offset) / 16u)]).xyz;
+  return matrix<float16_t, 4, 3>(v_5, v_6, v_7, tint_bitcast_to_f16(m[((24u + start_byte_offset) / 16u)]).xyz);
+}
+
+[numthreads(1, 1, 1)]
+void f() {
+  uint v_8 = (8u * uint(i()));
+  matrix<float16_t, 4, 3> l_m = v_4(0u);
+  vector<float16_t, 3> l_m_i = tint_bitcast_to_f16(m[(v_8 / 16u)]).xyz;
+}
+
+FXC validation failure:
+c:\src\dawn\Shader@0x000001D10F9D0850(11,8-16): error X3000: syntax error: unexpected token 'float16_t'
+
diff --git a/test/tint/buffer/uniform/std140/unnested/mat4x3_f16/static_index_via_ptr.wgsl.expected.ir.dxc.hlsl b/test/tint/buffer/uniform/std140/unnested/mat4x3_f16/static_index_via_ptr.wgsl.expected.ir.dxc.hlsl
index 3f437dc..34ec677 100644
--- a/test/tint/buffer/uniform/std140/unnested/mat4x3_f16/static_index_via_ptr.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/buffer/uniform/std140/unnested/mat4x3_f16/static_index_via_ptr.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,35 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Access
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+cbuffer cbuffer_m : register(b0) {
+  uint4 m[2];
+};
+static int counter = 0;
+int i() {
+  counter = (counter + 1);
+  return counter;
+}
+
+vector<float16_t, 4> tint_bitcast_to_f16(uint4 src) {
+  uint4 v = src;
+  uint4 mask = (65535u).xxxx;
+  uint4 shift = (16u).xxxx;
+  float4 t_low = f16tof32((v & mask));
+  float4 t_high = f16tof32(((v >> shift) & mask));
+  float16_t v_1 = float16_t(t_low.x);
+  float16_t v_2 = float16_t(t_high.x);
+  float16_t v_3 = float16_t(t_low.y);
+  return vector<float16_t, 4>(v_1, v_2, v_3, float16_t(t_high.y));
+}
+
+matrix<float16_t, 4, 3> v_4(uint start_byte_offset) {
+  vector<float16_t, 3> v_5 = tint_bitcast_to_f16(m[(start_byte_offset / 16u)]).xyz;
+  vector<float16_t, 3> v_6 = tint_bitcast_to_f16(m[((8u + start_byte_offset) / 16u)]).xyz;
+  vector<float16_t, 3> v_7 = tint_bitcast_to_f16(m[((16u + start_byte_offset) / 16u)]).xyz;
+  return matrix<float16_t, 4, 3>(v_5, v_6, v_7, tint_bitcast_to_f16(m[((24u + start_byte_offset) / 16u)]).xyz);
+}
+
+[numthreads(1, 1, 1)]
+void f() {
+  matrix<float16_t, 4, 3> l_m = v_4(0u);
+  vector<float16_t, 3> l_m_1 = tint_bitcast_to_f16(m[0u]).xyz;
+}
+
diff --git a/test/tint/buffer/uniform/std140/unnested/mat4x3_f16/static_index_via_ptr.wgsl.expected.ir.fxc.hlsl b/test/tint/buffer/uniform/std140/unnested/mat4x3_f16/static_index_via_ptr.wgsl.expected.ir.fxc.hlsl
index 3f437dc..cc8e256 100644
--- a/test/tint/buffer/uniform/std140/unnested/mat4x3_f16/static_index_via_ptr.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/buffer/uniform/std140/unnested/mat4x3_f16/static_index_via_ptr.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,40 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Access
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+
+cbuffer cbuffer_m : register(b0) {
+  uint4 m[2];
+};
+static int counter = 0;
+int i() {
+  counter = (counter + 1);
+  return counter;
+}
+
+vector<float16_t, 4> tint_bitcast_to_f16(uint4 src) {
+  uint4 v = src;
+  uint4 mask = (65535u).xxxx;
+  uint4 shift = (16u).xxxx;
+  float4 t_low = f16tof32((v & mask));
+  float4 t_high = f16tof32(((v >> shift) & mask));
+  float16_t v_1 = float16_t(t_low.x);
+  float16_t v_2 = float16_t(t_high.x);
+  float16_t v_3 = float16_t(t_low.y);
+  return vector<float16_t, 4>(v_1, v_2, v_3, float16_t(t_high.y));
+}
+
+matrix<float16_t, 4, 3> v_4(uint start_byte_offset) {
+  vector<float16_t, 3> v_5 = tint_bitcast_to_f16(m[(start_byte_offset / 16u)]).xyz;
+  vector<float16_t, 3> v_6 = tint_bitcast_to_f16(m[((8u + start_byte_offset) / 16u)]).xyz;
+  vector<float16_t, 3> v_7 = tint_bitcast_to_f16(m[((16u + start_byte_offset) / 16u)]).xyz;
+  return matrix<float16_t, 4, 3>(v_5, v_6, v_7, tint_bitcast_to_f16(m[((24u + start_byte_offset) / 16u)]).xyz);
+}
+
+[numthreads(1, 1, 1)]
+void f() {
+  matrix<float16_t, 4, 3> l_m = v_4(0u);
+  vector<float16_t, 3> l_m_1 = tint_bitcast_to_f16(m[0u]).xyz;
+}
+
+FXC validation failure:
+c:\src\dawn\Shader@0x00000182D0310A80(11,8-16): error X3000: syntax error: unexpected token 'float16_t'
+
diff --git a/test/tint/buffer/uniform/std140/unnested/mat4x3_f16/to_builtin.wgsl.expected.ir.dxc.hlsl b/test/tint/buffer/uniform/std140/unnested/mat4x3_f16/to_builtin.wgsl.expected.ir.dxc.hlsl
index 3f437dc..58c24d2 100644
--- a/test/tint/buffer/uniform/std140/unnested/mat4x3_f16/to_builtin.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/buffer/uniform/std140/unnested/mat4x3_f16/to_builtin.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,30 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Access
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+cbuffer cbuffer_u : register(b0) {
+  uint4 u[2];
+};
+vector<float16_t, 4> tint_bitcast_to_f16(uint4 src) {
+  uint4 v = src;
+  uint4 mask = (65535u).xxxx;
+  uint4 shift = (16u).xxxx;
+  float4 t_low = f16tof32((v & mask));
+  float4 t_high = f16tof32(((v >> shift) & mask));
+  float16_t v_1 = float16_t(t_low.x);
+  float16_t v_2 = float16_t(t_high.x);
+  float16_t v_3 = float16_t(t_low.y);
+  return vector<float16_t, 4>(v_1, v_2, v_3, float16_t(t_high.y));
+}
+
+matrix<float16_t, 4, 3> v_4(uint start_byte_offset) {
+  vector<float16_t, 3> v_5 = tint_bitcast_to_f16(u[(start_byte_offset / 16u)]).xyz;
+  vector<float16_t, 3> v_6 = tint_bitcast_to_f16(u[((8u + start_byte_offset) / 16u)]).xyz;
+  vector<float16_t, 3> v_7 = tint_bitcast_to_f16(u[((16u + start_byte_offset) / 16u)]).xyz;
+  return matrix<float16_t, 4, 3>(v_5, v_6, v_7, tint_bitcast_to_f16(u[((24u + start_byte_offset) / 16u)]).xyz);
+}
+
+[numthreads(1, 1, 1)]
+void f() {
+  matrix<float16_t, 3, 4> t = transpose(v_4(0u));
+  float16_t l = length(tint_bitcast_to_f16(u[0u]).xyz);
+  float16_t a = abs(tint_bitcast_to_f16(u[0u]).xyz.zxy[0u]);
+}
+
diff --git a/test/tint/buffer/uniform/std140/unnested/mat4x3_f16/to_builtin.wgsl.expected.ir.fxc.hlsl b/test/tint/buffer/uniform/std140/unnested/mat4x3_f16/to_builtin.wgsl.expected.ir.fxc.hlsl
index 3f437dc..d46c350 100644
--- a/test/tint/buffer/uniform/std140/unnested/mat4x3_f16/to_builtin.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/buffer/uniform/std140/unnested/mat4x3_f16/to_builtin.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,35 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Access
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+
+cbuffer cbuffer_u : register(b0) {
+  uint4 u[2];
+};
+vector<float16_t, 4> tint_bitcast_to_f16(uint4 src) {
+  uint4 v = src;
+  uint4 mask = (65535u).xxxx;
+  uint4 shift = (16u).xxxx;
+  float4 t_low = f16tof32((v & mask));
+  float4 t_high = f16tof32(((v >> shift) & mask));
+  float16_t v_1 = float16_t(t_low.x);
+  float16_t v_2 = float16_t(t_high.x);
+  float16_t v_3 = float16_t(t_low.y);
+  return vector<float16_t, 4>(v_1, v_2, v_3, float16_t(t_high.y));
+}
+
+matrix<float16_t, 4, 3> v_4(uint start_byte_offset) {
+  vector<float16_t, 3> v_5 = tint_bitcast_to_f16(u[(start_byte_offset / 16u)]).xyz;
+  vector<float16_t, 3> v_6 = tint_bitcast_to_f16(u[((8u + start_byte_offset) / 16u)]).xyz;
+  vector<float16_t, 3> v_7 = tint_bitcast_to_f16(u[((16u + start_byte_offset) / 16u)]).xyz;
+  return matrix<float16_t, 4, 3>(v_5, v_6, v_7, tint_bitcast_to_f16(u[((24u + start_byte_offset) / 16u)]).xyz);
+}
+
+[numthreads(1, 1, 1)]
+void f() {
+  matrix<float16_t, 3, 4> t = transpose(v_4(0u));
+  float16_t l = length(tint_bitcast_to_f16(u[0u]).xyz);
+  float16_t a = abs(tint_bitcast_to_f16(u[0u]).xyz.zxy[0u]);
+}
+
+FXC validation failure:
+c:\src\dawn\Shader@0x0000024B801B60B0(5,8-16): error X3000: syntax error: unexpected token 'float16_t'
+
diff --git a/test/tint/buffer/uniform/std140/unnested/mat4x3_f16/to_fn.wgsl.expected.ir.dxc.hlsl b/test/tint/buffer/uniform/std140/unnested/mat4x3_f16/to_fn.wgsl.expected.ir.dxc.hlsl
index 3f437dc..330c918 100644
--- a/test/tint/buffer/uniform/std140/unnested/mat4x3_f16/to_fn.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/buffer/uniform/std140/unnested/mat4x3_f16/to_fn.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,41 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Access
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+cbuffer cbuffer_u : register(b0) {
+  uint4 u[2];
+};
+void a(matrix<float16_t, 4, 3> m) {
+}
+
+void b(vector<float16_t, 3> v) {
+}
+
+void c(float16_t f) {
+}
+
+vector<float16_t, 4> tint_bitcast_to_f16(uint4 src) {
+  uint4 v = src;
+  uint4 mask = (65535u).xxxx;
+  uint4 shift = (16u).xxxx;
+  float4 t_low = f16tof32((v & mask));
+  float4 t_high = f16tof32(((v >> shift) & mask));
+  float16_t v_1 = float16_t(t_low.x);
+  float16_t v_2 = float16_t(t_high.x);
+  float16_t v_3 = float16_t(t_low.y);
+  return vector<float16_t, 4>(v_1, v_2, v_3, float16_t(t_high.y));
+}
+
+matrix<float16_t, 4, 3> v_4(uint start_byte_offset) {
+  vector<float16_t, 3> v_5 = tint_bitcast_to_f16(u[(start_byte_offset / 16u)]).xyz;
+  vector<float16_t, 3> v_6 = tint_bitcast_to_f16(u[((8u + start_byte_offset) / 16u)]).xyz;
+  vector<float16_t, 3> v_7 = tint_bitcast_to_f16(u[((16u + start_byte_offset) / 16u)]).xyz;
+  return matrix<float16_t, 4, 3>(v_5, v_6, v_7, tint_bitcast_to_f16(u[((24u + start_byte_offset) / 16u)]).xyz);
+}
+
+[numthreads(1, 1, 1)]
+void f() {
+  a(v_4(0u));
+  b(tint_bitcast_to_f16(u[0u]).xyz);
+  b(tint_bitcast_to_f16(u[0u]).xyz.zxy);
+  c(float16_t(f16tof32(u[0u].z)));
+  c(tint_bitcast_to_f16(u[0u]).xyz.zxy[0u]);
+}
+
diff --git a/test/tint/buffer/uniform/std140/unnested/mat4x3_f16/to_fn.wgsl.expected.ir.fxc.hlsl b/test/tint/buffer/uniform/std140/unnested/mat4x3_f16/to_fn.wgsl.expected.ir.fxc.hlsl
index 3f437dc..40db76a 100644
--- a/test/tint/buffer/uniform/std140/unnested/mat4x3_f16/to_fn.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/buffer/uniform/std140/unnested/mat4x3_f16/to_fn.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,48 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Access
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+
+cbuffer cbuffer_u : register(b0) {
+  uint4 u[2];
+};
+void a(matrix<float16_t, 4, 3> m) {
+}
+
+void b(vector<float16_t, 3> v) {
+}
+
+void c(float16_t f) {
+}
+
+vector<float16_t, 4> tint_bitcast_to_f16(uint4 src) {
+  uint4 v = src;
+  uint4 mask = (65535u).xxxx;
+  uint4 shift = (16u).xxxx;
+  float4 t_low = f16tof32((v & mask));
+  float4 t_high = f16tof32(((v >> shift) & mask));
+  float16_t v_1 = float16_t(t_low.x);
+  float16_t v_2 = float16_t(t_high.x);
+  float16_t v_3 = float16_t(t_low.y);
+  return vector<float16_t, 4>(v_1, v_2, v_3, float16_t(t_high.y));
+}
+
+matrix<float16_t, 4, 3> v_4(uint start_byte_offset) {
+  vector<float16_t, 3> v_5 = tint_bitcast_to_f16(u[(start_byte_offset / 16u)]).xyz;
+  vector<float16_t, 3> v_6 = tint_bitcast_to_f16(u[((8u + start_byte_offset) / 16u)]).xyz;
+  vector<float16_t, 3> v_7 = tint_bitcast_to_f16(u[((16u + start_byte_offset) / 16u)]).xyz;
+  return matrix<float16_t, 4, 3>(v_5, v_6, v_7, tint_bitcast_to_f16(u[((24u + start_byte_offset) / 16u)]).xyz);
+}
+
+[numthreads(1, 1, 1)]
+void f() {
+  a(v_4(0u));
+  b(tint_bitcast_to_f16(u[0u]).xyz);
+  b(tint_bitcast_to_f16(u[0u]).xyz.zxy);
+  c(float16_t(f16tof32(u[0u].z)));
+  c(tint_bitcast_to_f16(u[0u]).xyz.zxy[0u]);
+}
+
+FXC validation failure:
+c:\src\dawn\Shader@0x000001B9E48903F0(5,15-23): error X3000: syntax error: unexpected token 'float16_t'
+c:\src\dawn\Shader@0x000001B9E48903F0(8,15-23): error X3000: syntax error: unexpected token 'float16_t'
+c:\src\dawn\Shader@0x000001B9E48903F0(11,8-16): error X3000: unrecognized identifier 'float16_t'
+
diff --git a/test/tint/buffer/uniform/std140/unnested/mat4x3_f16/to_private.wgsl.expected.ir.dxc.hlsl b/test/tint/buffer/uniform/std140/unnested/mat4x3_f16/to_private.wgsl.expected.ir.dxc.hlsl
index 3f437dc..b539741 100644
--- a/test/tint/buffer/uniform/std140/unnested/mat4x3_f16/to_private.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/buffer/uniform/std140/unnested/mat4x3_f16/to_private.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,32 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Access
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+cbuffer cbuffer_u : register(b0) {
+  uint4 u[2];
+};
+static matrix<float16_t, 4, 3> p = matrix<float16_t, 4, 3>((float16_t(0.0h)).xxx, (float16_t(0.0h)).xxx, (float16_t(0.0h)).xxx, (float16_t(0.0h)).xxx);
+vector<float16_t, 4> tint_bitcast_to_f16(uint4 src) {
+  uint4 v = src;
+  uint4 mask = (65535u).xxxx;
+  uint4 shift = (16u).xxxx;
+  float4 t_low = f16tof32((v & mask));
+  float4 t_high = f16tof32(((v >> shift) & mask));
+  float16_t v_1 = float16_t(t_low.x);
+  float16_t v_2 = float16_t(t_high.x);
+  float16_t v_3 = float16_t(t_low.y);
+  return vector<float16_t, 4>(v_1, v_2, v_3, float16_t(t_high.y));
+}
+
+matrix<float16_t, 4, 3> v_4(uint start_byte_offset) {
+  vector<float16_t, 3> v_5 = tint_bitcast_to_f16(u[(start_byte_offset / 16u)]).xyz;
+  vector<float16_t, 3> v_6 = tint_bitcast_to_f16(u[((8u + start_byte_offset) / 16u)]).xyz;
+  vector<float16_t, 3> v_7 = tint_bitcast_to_f16(u[((16u + start_byte_offset) / 16u)]).xyz;
+  return matrix<float16_t, 4, 3>(v_5, v_6, v_7, tint_bitcast_to_f16(u[((24u + start_byte_offset) / 16u)]).xyz);
+}
+
+[numthreads(1, 1, 1)]
+void f() {
+  p = v_4(0u);
+  p[1] = tint_bitcast_to_f16(u[0u]).xyz;
+  p[1] = tint_bitcast_to_f16(u[0u]).xyz.zxy;
+  p[0][1] = float16_t(f16tof32(u[0u].z));
+}
+
diff --git a/test/tint/buffer/uniform/std140/unnested/mat4x3_f16/to_private.wgsl.expected.ir.fxc.hlsl b/test/tint/buffer/uniform/std140/unnested/mat4x3_f16/to_private.wgsl.expected.ir.fxc.hlsl
index 3f437dc..7df1ce8 100644
--- a/test/tint/buffer/uniform/std140/unnested/mat4x3_f16/to_private.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/buffer/uniform/std140/unnested/mat4x3_f16/to_private.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,37 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Access
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+
+cbuffer cbuffer_u : register(b0) {
+  uint4 u[2];
+};
+static matrix<float16_t, 4, 3> p = matrix<float16_t, 4, 3>((float16_t(0.0h)).xxx, (float16_t(0.0h)).xxx, (float16_t(0.0h)).xxx, (float16_t(0.0h)).xxx);
+vector<float16_t, 4> tint_bitcast_to_f16(uint4 src) {
+  uint4 v = src;
+  uint4 mask = (65535u).xxxx;
+  uint4 shift = (16u).xxxx;
+  float4 t_low = f16tof32((v & mask));
+  float4 t_high = f16tof32(((v >> shift) & mask));
+  float16_t v_1 = float16_t(t_low.x);
+  float16_t v_2 = float16_t(t_high.x);
+  float16_t v_3 = float16_t(t_low.y);
+  return vector<float16_t, 4>(v_1, v_2, v_3, float16_t(t_high.y));
+}
+
+matrix<float16_t, 4, 3> v_4(uint start_byte_offset) {
+  vector<float16_t, 3> v_5 = tint_bitcast_to_f16(u[(start_byte_offset / 16u)]).xyz;
+  vector<float16_t, 3> v_6 = tint_bitcast_to_f16(u[((8u + start_byte_offset) / 16u)]).xyz;
+  vector<float16_t, 3> v_7 = tint_bitcast_to_f16(u[((16u + start_byte_offset) / 16u)]).xyz;
+  return matrix<float16_t, 4, 3>(v_5, v_6, v_7, tint_bitcast_to_f16(u[((24u + start_byte_offset) / 16u)]).xyz);
+}
+
+[numthreads(1, 1, 1)]
+void f() {
+  p = v_4(0u);
+  p[1] = tint_bitcast_to_f16(u[0u]).xyz;
+  p[1] = tint_bitcast_to_f16(u[0u]).xyz.zxy;
+  p[0][1] = float16_t(f16tof32(u[0u].z));
+}
+
+FXC validation failure:
+c:\src\dawn\Shader@0x0000016E47D137D0(5,15-23): error X3000: syntax error: unexpected token 'float16_t'
+
diff --git a/test/tint/buffer/uniform/std140/unnested/mat4x3_f16/to_storage.wgsl.expected.ir.dxc.hlsl b/test/tint/buffer/uniform/std140/unnested/mat4x3_f16/to_storage.wgsl.expected.ir.dxc.hlsl
index 3f437dc..9b55367 100644
--- a/test/tint/buffer/uniform/std140/unnested/mat4x3_f16/to_storage.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/buffer/uniform/std140/unnested/mat4x3_f16/to_storage.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,39 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Access
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+cbuffer cbuffer_u : register(b0) {
+  uint4 u[2];
+};
+RWByteAddressBuffer s : register(u1);
+vector<float16_t, 4> tint_bitcast_to_f16(uint4 src) {
+  uint4 v = src;
+  uint4 mask = (65535u).xxxx;
+  uint4 shift = (16u).xxxx;
+  float4 t_low = f16tof32((v & mask));
+  float4 t_high = f16tof32(((v >> shift) & mask));
+  float16_t v_1 = float16_t(t_low.x);
+  float16_t v_2 = float16_t(t_high.x);
+  float16_t v_3 = float16_t(t_low.y);
+  return vector<float16_t, 4>(v_1, v_2, v_3, float16_t(t_high.y));
+}
+
+void v_4(uint offset, matrix<float16_t, 4, 3> obj) {
+  s.Store<vector<float16_t, 3> >((offset + 0u), obj[0u]);
+  s.Store<vector<float16_t, 3> >((offset + 8u), obj[1u]);
+  s.Store<vector<float16_t, 3> >((offset + 16u), obj[2u]);
+  s.Store<vector<float16_t, 3> >((offset + 24u), obj[3u]);
+}
+
+matrix<float16_t, 4, 3> v_5(uint start_byte_offset) {
+  vector<float16_t, 3> v_6 = tint_bitcast_to_f16(u[(start_byte_offset / 16u)]).xyz;
+  vector<float16_t, 3> v_7 = tint_bitcast_to_f16(u[((8u + start_byte_offset) / 16u)]).xyz;
+  vector<float16_t, 3> v_8 = tint_bitcast_to_f16(u[((16u + start_byte_offset) / 16u)]).xyz;
+  return matrix<float16_t, 4, 3>(v_6, v_7, v_8, tint_bitcast_to_f16(u[((24u + start_byte_offset) / 16u)]).xyz);
+}
+
+[numthreads(1, 1, 1)]
+void f() {
+  v_4(0u, v_5(0u));
+  s.Store<vector<float16_t, 3> >(8u, tint_bitcast_to_f16(u[0u]).xyz);
+  s.Store<vector<float16_t, 3> >(8u, tint_bitcast_to_f16(u[0u]).xyz.zxy);
+  s.Store<float16_t>(2u, float16_t(f16tof32(u[0u].z)));
+}
+
diff --git a/test/tint/buffer/uniform/std140/unnested/mat4x3_f16/to_storage.wgsl.expected.ir.fxc.hlsl b/test/tint/buffer/uniform/std140/unnested/mat4x3_f16/to_storage.wgsl.expected.ir.fxc.hlsl
index 3f437dc..adaf511 100644
--- a/test/tint/buffer/uniform/std140/unnested/mat4x3_f16/to_storage.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/buffer/uniform/std140/unnested/mat4x3_f16/to_storage.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,44 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Access
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+
+cbuffer cbuffer_u : register(b0) {
+  uint4 u[2];
+};
+RWByteAddressBuffer s : register(u1);
+vector<float16_t, 4> tint_bitcast_to_f16(uint4 src) {
+  uint4 v = src;
+  uint4 mask = (65535u).xxxx;
+  uint4 shift = (16u).xxxx;
+  float4 t_low = f16tof32((v & mask));
+  float4 t_high = f16tof32(((v >> shift) & mask));
+  float16_t v_1 = float16_t(t_low.x);
+  float16_t v_2 = float16_t(t_high.x);
+  float16_t v_3 = float16_t(t_low.y);
+  return vector<float16_t, 4>(v_1, v_2, v_3, float16_t(t_high.y));
+}
+
+void v_4(uint offset, matrix<float16_t, 4, 3> obj) {
+  s.Store<vector<float16_t, 3> >((offset + 0u), obj[0u]);
+  s.Store<vector<float16_t, 3> >((offset + 8u), obj[1u]);
+  s.Store<vector<float16_t, 3> >((offset + 16u), obj[2u]);
+  s.Store<vector<float16_t, 3> >((offset + 24u), obj[3u]);
+}
+
+matrix<float16_t, 4, 3> v_5(uint start_byte_offset) {
+  vector<float16_t, 3> v_6 = tint_bitcast_to_f16(u[(start_byte_offset / 16u)]).xyz;
+  vector<float16_t, 3> v_7 = tint_bitcast_to_f16(u[((8u + start_byte_offset) / 16u)]).xyz;
+  vector<float16_t, 3> v_8 = tint_bitcast_to_f16(u[((16u + start_byte_offset) / 16u)]).xyz;
+  return matrix<float16_t, 4, 3>(v_6, v_7, v_8, tint_bitcast_to_f16(u[((24u + start_byte_offset) / 16u)]).xyz);
+}
+
+[numthreads(1, 1, 1)]
+void f() {
+  v_4(0u, v_5(0u));
+  s.Store<vector<float16_t, 3> >(8u, tint_bitcast_to_f16(u[0u]).xyz);
+  s.Store<vector<float16_t, 3> >(8u, tint_bitcast_to_f16(u[0u]).xyz.zxy);
+  s.Store<float16_t>(2u, float16_t(f16tof32(u[0u].z)));
+}
+
+FXC validation failure:
+c:\src\dawn\Shader@0x00000205A8856480(6,8-16): error X3000: syntax error: unexpected token 'float16_t'
+
diff --git a/test/tint/buffer/uniform/std140/unnested/mat4x3_f16/to_workgroup.wgsl.expected.ir.dxc.hlsl b/test/tint/buffer/uniform/std140/unnested/mat4x3_f16/to_workgroup.wgsl.expected.ir.dxc.hlsl
index 3f437dc..127aaa7 100644
--- a/test/tint/buffer/uniform/std140/unnested/mat4x3_f16/to_workgroup.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/buffer/uniform/std140/unnested/mat4x3_f16/to_workgroup.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,44 @@
-SKIP: FAILED
+struct f_inputs {
+  uint tint_local_index : SV_GroupIndex;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Access
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+
+cbuffer cbuffer_u : register(b0) {
+  uint4 u[2];
+};
+groupshared matrix<float16_t, 4, 3> w;
+vector<float16_t, 4> tint_bitcast_to_f16(uint4 src) {
+  uint4 v = src;
+  uint4 mask = (65535u).xxxx;
+  uint4 shift = (16u).xxxx;
+  float4 t_low = f16tof32((v & mask));
+  float4 t_high = f16tof32(((v >> shift) & mask));
+  float16_t v_1 = float16_t(t_low.x);
+  float16_t v_2 = float16_t(t_high.x);
+  float16_t v_3 = float16_t(t_low.y);
+  return vector<float16_t, 4>(v_1, v_2, v_3, float16_t(t_high.y));
+}
+
+matrix<float16_t, 4, 3> v_4(uint start_byte_offset) {
+  vector<float16_t, 3> v_5 = tint_bitcast_to_f16(u[(start_byte_offset / 16u)]).xyz;
+  vector<float16_t, 3> v_6 = tint_bitcast_to_f16(u[((8u + start_byte_offset) / 16u)]).xyz;
+  vector<float16_t, 3> v_7 = tint_bitcast_to_f16(u[((16u + start_byte_offset) / 16u)]).xyz;
+  return matrix<float16_t, 4, 3>(v_5, v_6, v_7, tint_bitcast_to_f16(u[((24u + start_byte_offset) / 16u)]).xyz);
+}
+
+void f_inner(uint tint_local_index) {
+  if ((tint_local_index == 0u)) {
+    w = matrix<float16_t, 4, 3>((float16_t(0.0h)).xxx, (float16_t(0.0h)).xxx, (float16_t(0.0h)).xxx, (float16_t(0.0h)).xxx);
+  }
+  GroupMemoryBarrierWithGroupSync();
+  w = v_4(0u);
+  w[1] = tint_bitcast_to_f16(u[0u]).xyz;
+  w[1] = tint_bitcast_to_f16(u[0u]).xyz.zxy;
+  w[0][1] = float16_t(f16tof32(u[0u].z));
+}
+
+[numthreads(1, 1, 1)]
+void f(f_inputs inputs) {
+  f_inner(inputs.tint_local_index);
+}
+
diff --git a/test/tint/buffer/uniform/std140/unnested/mat4x3_f16/to_workgroup.wgsl.expected.ir.fxc.hlsl b/test/tint/buffer/uniform/std140/unnested/mat4x3_f16/to_workgroup.wgsl.expected.ir.fxc.hlsl
index 3f437dc..149f3ce 100644
--- a/test/tint/buffer/uniform/std140/unnested/mat4x3_f16/to_workgroup.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/buffer/uniform/std140/unnested/mat4x3_f16/to_workgroup.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,49 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Access
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct f_inputs {
+  uint tint_local_index : SV_GroupIndex;
+};
+
+
+cbuffer cbuffer_u : register(b0) {
+  uint4 u[2];
+};
+groupshared matrix<float16_t, 4, 3> w;
+vector<float16_t, 4> tint_bitcast_to_f16(uint4 src) {
+  uint4 v = src;
+  uint4 mask = (65535u).xxxx;
+  uint4 shift = (16u).xxxx;
+  float4 t_low = f16tof32((v & mask));
+  float4 t_high = f16tof32(((v >> shift) & mask));
+  float16_t v_1 = float16_t(t_low.x);
+  float16_t v_2 = float16_t(t_high.x);
+  float16_t v_3 = float16_t(t_low.y);
+  return vector<float16_t, 4>(v_1, v_2, v_3, float16_t(t_high.y));
+}
+
+matrix<float16_t, 4, 3> v_4(uint start_byte_offset) {
+  vector<float16_t, 3> v_5 = tint_bitcast_to_f16(u[(start_byte_offset / 16u)]).xyz;
+  vector<float16_t, 3> v_6 = tint_bitcast_to_f16(u[((8u + start_byte_offset) / 16u)]).xyz;
+  vector<float16_t, 3> v_7 = tint_bitcast_to_f16(u[((16u + start_byte_offset) / 16u)]).xyz;
+  return matrix<float16_t, 4, 3>(v_5, v_6, v_7, tint_bitcast_to_f16(u[((24u + start_byte_offset) / 16u)]).xyz);
+}
+
+void f_inner(uint tint_local_index) {
+  if ((tint_local_index == 0u)) {
+    w = matrix<float16_t, 4, 3>((float16_t(0.0h)).xxx, (float16_t(0.0h)).xxx, (float16_t(0.0h)).xxx, (float16_t(0.0h)).xxx);
+  }
+  GroupMemoryBarrierWithGroupSync();
+  w = v_4(0u);
+  w[1] = tint_bitcast_to_f16(u[0u]).xyz;
+  w[1] = tint_bitcast_to_f16(u[0u]).xyz.zxy;
+  w[0][1] = float16_t(f16tof32(u[0u].z));
+}
+
+[numthreads(1, 1, 1)]
+void f(f_inputs inputs) {
+  f_inner(inputs.tint_local_index);
+}
+
+FXC validation failure:
+c:\src\dawn\Shader@0x00000259684F19F0(9,20-28): error X3000: syntax error: unexpected token 'float16_t'
+
diff --git a/test/tint/buffer/uniform/std140/unnested/mat4x3_f32/dynamic_index_via_ptr.wgsl.expected.ir.dxc.hlsl b/test/tint/buffer/uniform/std140/unnested/mat4x3_f32/dynamic_index_via_ptr.wgsl.expected.ir.dxc.hlsl
index 3f437dc..b9b0dad 100644
--- a/test/tint/buffer/uniform/std140/unnested/mat4x3_f32/dynamic_index_via_ptr.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/buffer/uniform/std140/unnested/mat4x3_f32/dynamic_index_via_ptr.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,24 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Access
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+cbuffer cbuffer_m : register(b0) {
+  uint4 m[4];
+};
+static int counter = 0;
+int i() {
+  counter = (counter + 1);
+  return counter;
+}
+
+float4x3 v(uint start_byte_offset) {
+  float3 v_1 = asfloat(m[(start_byte_offset / 16u)].xyz);
+  float3 v_2 = asfloat(m[((16u + start_byte_offset) / 16u)].xyz);
+  float3 v_3 = asfloat(m[((32u + start_byte_offset) / 16u)].xyz);
+  return float4x3(v_1, v_2, v_3, asfloat(m[((48u + start_byte_offset) / 16u)].xyz));
+}
+
+[numthreads(1, 1, 1)]
+void f() {
+  uint v_4 = (16u * uint(i()));
+  float4x3 l_m = v(0u);
+  float3 l_m_i = asfloat(m[(v_4 / 16u)].xyz);
+}
+
diff --git a/test/tint/buffer/uniform/std140/unnested/mat4x3_f32/dynamic_index_via_ptr.wgsl.expected.ir.fxc.hlsl b/test/tint/buffer/uniform/std140/unnested/mat4x3_f32/dynamic_index_via_ptr.wgsl.expected.ir.fxc.hlsl
index 3f437dc..b9b0dad 100644
--- a/test/tint/buffer/uniform/std140/unnested/mat4x3_f32/dynamic_index_via_ptr.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/buffer/uniform/std140/unnested/mat4x3_f32/dynamic_index_via_ptr.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,24 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Access
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+cbuffer cbuffer_m : register(b0) {
+  uint4 m[4];
+};
+static int counter = 0;
+int i() {
+  counter = (counter + 1);
+  return counter;
+}
+
+float4x3 v(uint start_byte_offset) {
+  float3 v_1 = asfloat(m[(start_byte_offset / 16u)].xyz);
+  float3 v_2 = asfloat(m[((16u + start_byte_offset) / 16u)].xyz);
+  float3 v_3 = asfloat(m[((32u + start_byte_offset) / 16u)].xyz);
+  return float4x3(v_1, v_2, v_3, asfloat(m[((48u + start_byte_offset) / 16u)].xyz));
+}
+
+[numthreads(1, 1, 1)]
+void f() {
+  uint v_4 = (16u * uint(i()));
+  float4x3 l_m = v(0u);
+  float3 l_m_i = asfloat(m[(v_4 / 16u)].xyz);
+}
+
diff --git a/test/tint/buffer/uniform/std140/unnested/mat4x3_f32/static_index_via_ptr.wgsl.expected.ir.dxc.hlsl b/test/tint/buffer/uniform/std140/unnested/mat4x3_f32/static_index_via_ptr.wgsl.expected.ir.dxc.hlsl
index 3f437dc..6ff6dfe 100644
--- a/test/tint/buffer/uniform/std140/unnested/mat4x3_f32/static_index_via_ptr.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/buffer/uniform/std140/unnested/mat4x3_f32/static_index_via_ptr.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,23 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Access
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+cbuffer cbuffer_m : register(b0) {
+  uint4 m[4];
+};
+static int counter = 0;
+int i() {
+  counter = (counter + 1);
+  return counter;
+}
+
+float4x3 v(uint start_byte_offset) {
+  float3 v_1 = asfloat(m[(start_byte_offset / 16u)].xyz);
+  float3 v_2 = asfloat(m[((16u + start_byte_offset) / 16u)].xyz);
+  float3 v_3 = asfloat(m[((32u + start_byte_offset) / 16u)].xyz);
+  return float4x3(v_1, v_2, v_3, asfloat(m[((48u + start_byte_offset) / 16u)].xyz));
+}
+
+[numthreads(1, 1, 1)]
+void f() {
+  float4x3 l_m = v(0u);
+  float3 l_m_1 = asfloat(m[1u].xyz);
+}
+
diff --git a/test/tint/buffer/uniform/std140/unnested/mat4x3_f32/static_index_via_ptr.wgsl.expected.ir.fxc.hlsl b/test/tint/buffer/uniform/std140/unnested/mat4x3_f32/static_index_via_ptr.wgsl.expected.ir.fxc.hlsl
index 3f437dc..6ff6dfe 100644
--- a/test/tint/buffer/uniform/std140/unnested/mat4x3_f32/static_index_via_ptr.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/buffer/uniform/std140/unnested/mat4x3_f32/static_index_via_ptr.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,23 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Access
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+cbuffer cbuffer_m : register(b0) {
+  uint4 m[4];
+};
+static int counter = 0;
+int i() {
+  counter = (counter + 1);
+  return counter;
+}
+
+float4x3 v(uint start_byte_offset) {
+  float3 v_1 = asfloat(m[(start_byte_offset / 16u)].xyz);
+  float3 v_2 = asfloat(m[((16u + start_byte_offset) / 16u)].xyz);
+  float3 v_3 = asfloat(m[((32u + start_byte_offset) / 16u)].xyz);
+  return float4x3(v_1, v_2, v_3, asfloat(m[((48u + start_byte_offset) / 16u)].xyz));
+}
+
+[numthreads(1, 1, 1)]
+void f() {
+  float4x3 l_m = v(0u);
+  float3 l_m_1 = asfloat(m[1u].xyz);
+}
+
diff --git a/test/tint/buffer/uniform/std140/unnested/mat4x3_f32/to_builtin.wgsl.expected.ir.dxc.hlsl b/test/tint/buffer/uniform/std140/unnested/mat4x3_f32/to_builtin.wgsl.expected.ir.dxc.hlsl
index 3f437dc..ce68f0e 100644
--- a/test/tint/buffer/uniform/std140/unnested/mat4x3_f32/to_builtin.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/buffer/uniform/std140/unnested/mat4x3_f32/to_builtin.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,18 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Access
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+cbuffer cbuffer_u : register(b0) {
+  uint4 u[4];
+};
+float4x3 v(uint start_byte_offset) {
+  float3 v_1 = asfloat(u[(start_byte_offset / 16u)].xyz);
+  float3 v_2 = asfloat(u[((16u + start_byte_offset) / 16u)].xyz);
+  float3 v_3 = asfloat(u[((32u + start_byte_offset) / 16u)].xyz);
+  return float4x3(v_1, v_2, v_3, asfloat(u[((48u + start_byte_offset) / 16u)].xyz));
+}
+
+[numthreads(1, 1, 1)]
+void f() {
+  float3x4 t = transpose(v(0u));
+  float l = length(asfloat(u[1u].xyz));
+  float a = abs(asfloat(u[0u].xyz).zxy[0u]);
+}
+
diff --git a/test/tint/buffer/uniform/std140/unnested/mat4x3_f32/to_builtin.wgsl.expected.ir.fxc.hlsl b/test/tint/buffer/uniform/std140/unnested/mat4x3_f32/to_builtin.wgsl.expected.ir.fxc.hlsl
index 3f437dc..ce68f0e 100644
--- a/test/tint/buffer/uniform/std140/unnested/mat4x3_f32/to_builtin.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/buffer/uniform/std140/unnested/mat4x3_f32/to_builtin.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,18 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Access
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+cbuffer cbuffer_u : register(b0) {
+  uint4 u[4];
+};
+float4x3 v(uint start_byte_offset) {
+  float3 v_1 = asfloat(u[(start_byte_offset / 16u)].xyz);
+  float3 v_2 = asfloat(u[((16u + start_byte_offset) / 16u)].xyz);
+  float3 v_3 = asfloat(u[((32u + start_byte_offset) / 16u)].xyz);
+  return float4x3(v_1, v_2, v_3, asfloat(u[((48u + start_byte_offset) / 16u)].xyz));
+}
+
+[numthreads(1, 1, 1)]
+void f() {
+  float3x4 t = transpose(v(0u));
+  float l = length(asfloat(u[1u].xyz));
+  float a = abs(asfloat(u[0u].xyz).zxy[0u]);
+}
+
diff --git a/test/tint/buffer/uniform/std140/unnested/mat4x3_f32/to_fn.wgsl.expected.ir.dxc.hlsl b/test/tint/buffer/uniform/std140/unnested/mat4x3_f32/to_fn.wgsl.expected.ir.dxc.hlsl
index 3f437dc..f42c2bb 100644
--- a/test/tint/buffer/uniform/std140/unnested/mat4x3_f32/to_fn.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/buffer/uniform/std140/unnested/mat4x3_f32/to_fn.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,29 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Access
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+cbuffer cbuffer_u : register(b0) {
+  uint4 u[4];
+};
+void a(float4x3 m) {
+}
+
+void b(float3 v) {
+}
+
+void c(float f) {
+}
+
+float4x3 v_1(uint start_byte_offset) {
+  float3 v_2 = asfloat(u[(start_byte_offset / 16u)].xyz);
+  float3 v_3 = asfloat(u[((16u + start_byte_offset) / 16u)].xyz);
+  float3 v_4 = asfloat(u[((32u + start_byte_offset) / 16u)].xyz);
+  return float4x3(v_2, v_3, v_4, asfloat(u[((48u + start_byte_offset) / 16u)].xyz));
+}
+
+[numthreads(1, 1, 1)]
+void f() {
+  a(v_1(0u));
+  b(asfloat(u[1u].xyz));
+  b(asfloat(u[1u].xyz).zxy);
+  c(asfloat(u[1u].x));
+  c(asfloat(u[1u].xyz).zxy[0u]);
+}
+
diff --git a/test/tint/buffer/uniform/std140/unnested/mat4x3_f32/to_fn.wgsl.expected.ir.fxc.hlsl b/test/tint/buffer/uniform/std140/unnested/mat4x3_f32/to_fn.wgsl.expected.ir.fxc.hlsl
index 3f437dc..f42c2bb 100644
--- a/test/tint/buffer/uniform/std140/unnested/mat4x3_f32/to_fn.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/buffer/uniform/std140/unnested/mat4x3_f32/to_fn.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,29 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Access
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+cbuffer cbuffer_u : register(b0) {
+  uint4 u[4];
+};
+void a(float4x3 m) {
+}
+
+void b(float3 v) {
+}
+
+void c(float f) {
+}
+
+float4x3 v_1(uint start_byte_offset) {
+  float3 v_2 = asfloat(u[(start_byte_offset / 16u)].xyz);
+  float3 v_3 = asfloat(u[((16u + start_byte_offset) / 16u)].xyz);
+  float3 v_4 = asfloat(u[((32u + start_byte_offset) / 16u)].xyz);
+  return float4x3(v_2, v_3, v_4, asfloat(u[((48u + start_byte_offset) / 16u)].xyz));
+}
+
+[numthreads(1, 1, 1)]
+void f() {
+  a(v_1(0u));
+  b(asfloat(u[1u].xyz));
+  b(asfloat(u[1u].xyz).zxy);
+  c(asfloat(u[1u].x));
+  c(asfloat(u[1u].xyz).zxy[0u]);
+}
+
diff --git a/test/tint/buffer/uniform/std140/unnested/mat4x3_f32/to_private.wgsl.expected.ir.dxc.hlsl b/test/tint/buffer/uniform/std140/unnested/mat4x3_f32/to_private.wgsl.expected.ir.dxc.hlsl
index 3f437dc..de0a13b 100644
--- a/test/tint/buffer/uniform/std140/unnested/mat4x3_f32/to_private.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/buffer/uniform/std140/unnested/mat4x3_f32/to_private.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,20 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Access
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+cbuffer cbuffer_u : register(b0) {
+  uint4 u[4];
+};
+static float4x3 p = float4x3((0.0f).xxx, (0.0f).xxx, (0.0f).xxx, (0.0f).xxx);
+float4x3 v(uint start_byte_offset) {
+  float3 v_1 = asfloat(u[(start_byte_offset / 16u)].xyz);
+  float3 v_2 = asfloat(u[((16u + start_byte_offset) / 16u)].xyz);
+  float3 v_3 = asfloat(u[((32u + start_byte_offset) / 16u)].xyz);
+  return float4x3(v_1, v_2, v_3, asfloat(u[((48u + start_byte_offset) / 16u)].xyz));
+}
+
+[numthreads(1, 1, 1)]
+void f() {
+  p = v(0u);
+  p[1] = asfloat(u[0u].xyz);
+  p[1] = asfloat(u[0u].xyz).zxy;
+  p[0][1] = asfloat(u[1u].x);
+}
+
diff --git a/test/tint/buffer/uniform/std140/unnested/mat4x3_f32/to_private.wgsl.expected.ir.fxc.hlsl b/test/tint/buffer/uniform/std140/unnested/mat4x3_f32/to_private.wgsl.expected.ir.fxc.hlsl
index 3f437dc..de0a13b 100644
--- a/test/tint/buffer/uniform/std140/unnested/mat4x3_f32/to_private.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/buffer/uniform/std140/unnested/mat4x3_f32/to_private.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,20 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Access
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+cbuffer cbuffer_u : register(b0) {
+  uint4 u[4];
+};
+static float4x3 p = float4x3((0.0f).xxx, (0.0f).xxx, (0.0f).xxx, (0.0f).xxx);
+float4x3 v(uint start_byte_offset) {
+  float3 v_1 = asfloat(u[(start_byte_offset / 16u)].xyz);
+  float3 v_2 = asfloat(u[((16u + start_byte_offset) / 16u)].xyz);
+  float3 v_3 = asfloat(u[((32u + start_byte_offset) / 16u)].xyz);
+  return float4x3(v_1, v_2, v_3, asfloat(u[((48u + start_byte_offset) / 16u)].xyz));
+}
+
+[numthreads(1, 1, 1)]
+void f() {
+  p = v(0u);
+  p[1] = asfloat(u[0u].xyz);
+  p[1] = asfloat(u[0u].xyz).zxy;
+  p[0][1] = asfloat(u[1u].x);
+}
+
diff --git a/test/tint/buffer/uniform/std140/unnested/mat4x3_f32/to_storage.wgsl.expected.ir.dxc.hlsl b/test/tint/buffer/uniform/std140/unnested/mat4x3_f32/to_storage.wgsl.expected.ir.dxc.hlsl
index 3f437dc..9b74965 100644
--- a/test/tint/buffer/uniform/std140/unnested/mat4x3_f32/to_storage.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/buffer/uniform/std140/unnested/mat4x3_f32/to_storage.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,27 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Access
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+cbuffer cbuffer_u : register(b0) {
+  uint4 u[4];
+};
+RWByteAddressBuffer s : register(u1);
+void v(uint offset, float4x3 obj) {
+  s.Store3((offset + 0u), asuint(obj[0u]));
+  s.Store3((offset + 16u), asuint(obj[1u]));
+  s.Store3((offset + 32u), asuint(obj[2u]));
+  s.Store3((offset + 48u), asuint(obj[3u]));
+}
+
+float4x3 v_1(uint start_byte_offset) {
+  float3 v_2 = asfloat(u[(start_byte_offset / 16u)].xyz);
+  float3 v_3 = asfloat(u[((16u + start_byte_offset) / 16u)].xyz);
+  float3 v_4 = asfloat(u[((32u + start_byte_offset) / 16u)].xyz);
+  return float4x3(v_2, v_3, v_4, asfloat(u[((48u + start_byte_offset) / 16u)].xyz));
+}
+
+[numthreads(1, 1, 1)]
+void f() {
+  v(0u, v_1(0u));
+  s.Store3(16u, asuint(asfloat(u[0u].xyz)));
+  s.Store3(16u, asuint(asfloat(u[0u].xyz).zxy));
+  s.Store(4u, asuint(asfloat(u[1u].x)));
+}
+
diff --git a/test/tint/buffer/uniform/std140/unnested/mat4x3_f32/to_storage.wgsl.expected.ir.fxc.hlsl b/test/tint/buffer/uniform/std140/unnested/mat4x3_f32/to_storage.wgsl.expected.ir.fxc.hlsl
index 3f437dc..9b74965 100644
--- a/test/tint/buffer/uniform/std140/unnested/mat4x3_f32/to_storage.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/buffer/uniform/std140/unnested/mat4x3_f32/to_storage.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,27 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Access
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+cbuffer cbuffer_u : register(b0) {
+  uint4 u[4];
+};
+RWByteAddressBuffer s : register(u1);
+void v(uint offset, float4x3 obj) {
+  s.Store3((offset + 0u), asuint(obj[0u]));
+  s.Store3((offset + 16u), asuint(obj[1u]));
+  s.Store3((offset + 32u), asuint(obj[2u]));
+  s.Store3((offset + 48u), asuint(obj[3u]));
+}
+
+float4x3 v_1(uint start_byte_offset) {
+  float3 v_2 = asfloat(u[(start_byte_offset / 16u)].xyz);
+  float3 v_3 = asfloat(u[((16u + start_byte_offset) / 16u)].xyz);
+  float3 v_4 = asfloat(u[((32u + start_byte_offset) / 16u)].xyz);
+  return float4x3(v_2, v_3, v_4, asfloat(u[((48u + start_byte_offset) / 16u)].xyz));
+}
+
+[numthreads(1, 1, 1)]
+void f() {
+  v(0u, v_1(0u));
+  s.Store3(16u, asuint(asfloat(u[0u].xyz)));
+  s.Store3(16u, asuint(asfloat(u[0u].xyz).zxy));
+  s.Store(4u, asuint(asfloat(u[1u].x)));
+}
+
diff --git a/test/tint/buffer/uniform/std140/unnested/mat4x3_f32/to_workgroup.wgsl.expected.ir.dxc.hlsl b/test/tint/buffer/uniform/std140/unnested/mat4x3_f32/to_workgroup.wgsl.expected.ir.dxc.hlsl
index 3f437dc..1316493 100644
--- a/test/tint/buffer/uniform/std140/unnested/mat4x3_f32/to_workgroup.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/buffer/uniform/std140/unnested/mat4x3_f32/to_workgroup.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,32 @@
-SKIP: FAILED
+struct f_inputs {
+  uint tint_local_index : SV_GroupIndex;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Access
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+
+cbuffer cbuffer_u : register(b0) {
+  uint4 u[4];
+};
+groupshared float4x3 w;
+float4x3 v(uint start_byte_offset) {
+  float3 v_1 = asfloat(u[(start_byte_offset / 16u)].xyz);
+  float3 v_2 = asfloat(u[((16u + start_byte_offset) / 16u)].xyz);
+  float3 v_3 = asfloat(u[((32u + start_byte_offset) / 16u)].xyz);
+  return float4x3(v_1, v_2, v_3, asfloat(u[((48u + start_byte_offset) / 16u)].xyz));
+}
+
+void f_inner(uint tint_local_index) {
+  if ((tint_local_index == 0u)) {
+    w = float4x3((0.0f).xxx, (0.0f).xxx, (0.0f).xxx, (0.0f).xxx);
+  }
+  GroupMemoryBarrierWithGroupSync();
+  w = v(0u);
+  w[1] = asfloat(u[0u].xyz);
+  w[1] = asfloat(u[0u].xyz).zxy;
+  w[0][1] = asfloat(u[1u].x);
+}
+
+[numthreads(1, 1, 1)]
+void f(f_inputs inputs) {
+  f_inner(inputs.tint_local_index);
+}
+
diff --git a/test/tint/buffer/uniform/std140/unnested/mat4x3_f32/to_workgroup.wgsl.expected.ir.fxc.hlsl b/test/tint/buffer/uniform/std140/unnested/mat4x3_f32/to_workgroup.wgsl.expected.ir.fxc.hlsl
index 3f437dc..1316493 100644
--- a/test/tint/buffer/uniform/std140/unnested/mat4x3_f32/to_workgroup.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/buffer/uniform/std140/unnested/mat4x3_f32/to_workgroup.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,32 @@
-SKIP: FAILED
+struct f_inputs {
+  uint tint_local_index : SV_GroupIndex;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Access
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+
+cbuffer cbuffer_u : register(b0) {
+  uint4 u[4];
+};
+groupshared float4x3 w;
+float4x3 v(uint start_byte_offset) {
+  float3 v_1 = asfloat(u[(start_byte_offset / 16u)].xyz);
+  float3 v_2 = asfloat(u[((16u + start_byte_offset) / 16u)].xyz);
+  float3 v_3 = asfloat(u[((32u + start_byte_offset) / 16u)].xyz);
+  return float4x3(v_1, v_2, v_3, asfloat(u[((48u + start_byte_offset) / 16u)].xyz));
+}
+
+void f_inner(uint tint_local_index) {
+  if ((tint_local_index == 0u)) {
+    w = float4x3((0.0f).xxx, (0.0f).xxx, (0.0f).xxx, (0.0f).xxx);
+  }
+  GroupMemoryBarrierWithGroupSync();
+  w = v(0u);
+  w[1] = asfloat(u[0u].xyz);
+  w[1] = asfloat(u[0u].xyz).zxy;
+  w[0][1] = asfloat(u[1u].x);
+}
+
+[numthreads(1, 1, 1)]
+void f(f_inputs inputs) {
+  f_inner(inputs.tint_local_index);
+}
+
diff --git a/test/tint/buffer/uniform/std140/unnested/mat4x4_f16/dynamic_index_via_ptr.wgsl.expected.ir.dxc.hlsl b/test/tint/buffer/uniform/std140/unnested/mat4x4_f16/dynamic_index_via_ptr.wgsl.expected.ir.dxc.hlsl
index 3f437dc..8452bac 100644
--- a/test/tint/buffer/uniform/std140/unnested/mat4x4_f16/dynamic_index_via_ptr.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/buffer/uniform/std140/unnested/mat4x4_f16/dynamic_index_via_ptr.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,36 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Access
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+cbuffer cbuffer_m : register(b0) {
+  uint4 m[2];
+};
+static int counter = 0;
+int i() {
+  counter = (counter + 1);
+  return counter;
+}
+
+vector<float16_t, 4> tint_bitcast_to_f16(uint4 src) {
+  uint4 v = src;
+  uint4 mask = (65535u).xxxx;
+  uint4 shift = (16u).xxxx;
+  float4 t_low = f16tof32((v & mask));
+  float4 t_high = f16tof32(((v >> shift) & mask));
+  float16_t v_1 = float16_t(t_low.x);
+  float16_t v_2 = float16_t(t_high.x);
+  float16_t v_3 = float16_t(t_low.y);
+  return vector<float16_t, 4>(v_1, v_2, v_3, float16_t(t_high.y));
+}
+
+matrix<float16_t, 4, 4> v_4(uint start_byte_offset) {
+  vector<float16_t, 4> v_5 = tint_bitcast_to_f16(m[(start_byte_offset / 16u)]);
+  vector<float16_t, 4> v_6 = tint_bitcast_to_f16(m[((8u + start_byte_offset) / 16u)]);
+  vector<float16_t, 4> v_7 = tint_bitcast_to_f16(m[((16u + start_byte_offset) / 16u)]);
+  return matrix<float16_t, 4, 4>(v_5, v_6, v_7, tint_bitcast_to_f16(m[((24u + start_byte_offset) / 16u)]));
+}
+
+[numthreads(1, 1, 1)]
+void f() {
+  uint v_8 = (8u * uint(i()));
+  matrix<float16_t, 4, 4> l_m = v_4(0u);
+  vector<float16_t, 4> l_m_i = tint_bitcast_to_f16(m[(v_8 / 16u)]);
+}
+
diff --git a/test/tint/buffer/uniform/std140/unnested/mat4x4_f16/dynamic_index_via_ptr.wgsl.expected.ir.fxc.hlsl b/test/tint/buffer/uniform/std140/unnested/mat4x4_f16/dynamic_index_via_ptr.wgsl.expected.ir.fxc.hlsl
index 3f437dc..42b0b58 100644
--- a/test/tint/buffer/uniform/std140/unnested/mat4x4_f16/dynamic_index_via_ptr.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/buffer/uniform/std140/unnested/mat4x4_f16/dynamic_index_via_ptr.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,41 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Access
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+
+cbuffer cbuffer_m : register(b0) {
+  uint4 m[2];
+};
+static int counter = 0;
+int i() {
+  counter = (counter + 1);
+  return counter;
+}
+
+vector<float16_t, 4> tint_bitcast_to_f16(uint4 src) {
+  uint4 v = src;
+  uint4 mask = (65535u).xxxx;
+  uint4 shift = (16u).xxxx;
+  float4 t_low = f16tof32((v & mask));
+  float4 t_high = f16tof32(((v >> shift) & mask));
+  float16_t v_1 = float16_t(t_low.x);
+  float16_t v_2 = float16_t(t_high.x);
+  float16_t v_3 = float16_t(t_low.y);
+  return vector<float16_t, 4>(v_1, v_2, v_3, float16_t(t_high.y));
+}
+
+matrix<float16_t, 4, 4> v_4(uint start_byte_offset) {
+  vector<float16_t, 4> v_5 = tint_bitcast_to_f16(m[(start_byte_offset / 16u)]);
+  vector<float16_t, 4> v_6 = tint_bitcast_to_f16(m[((8u + start_byte_offset) / 16u)]);
+  vector<float16_t, 4> v_7 = tint_bitcast_to_f16(m[((16u + start_byte_offset) / 16u)]);
+  return matrix<float16_t, 4, 4>(v_5, v_6, v_7, tint_bitcast_to_f16(m[((24u + start_byte_offset) / 16u)]));
+}
+
+[numthreads(1, 1, 1)]
+void f() {
+  uint v_8 = (8u * uint(i()));
+  matrix<float16_t, 4, 4> l_m = v_4(0u);
+  vector<float16_t, 4> l_m_i = tint_bitcast_to_f16(m[(v_8 / 16u)]);
+}
+
+FXC validation failure:
+c:\src\dawn\Shader@0x0000026D3C3406C0(11,8-16): error X3000: syntax error: unexpected token 'float16_t'
+
diff --git a/test/tint/buffer/uniform/std140/unnested/mat4x4_f16/static_index_via_ptr.wgsl.expected.ir.dxc.hlsl b/test/tint/buffer/uniform/std140/unnested/mat4x4_f16/static_index_via_ptr.wgsl.expected.ir.dxc.hlsl
index 3f437dc..492ac7b 100644
--- a/test/tint/buffer/uniform/std140/unnested/mat4x4_f16/static_index_via_ptr.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/buffer/uniform/std140/unnested/mat4x4_f16/static_index_via_ptr.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,35 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Access
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+cbuffer cbuffer_m : register(b0) {
+  uint4 m[2];
+};
+static int counter = 0;
+int i() {
+  counter = (counter + 1);
+  return counter;
+}
+
+vector<float16_t, 4> tint_bitcast_to_f16(uint4 src) {
+  uint4 v = src;
+  uint4 mask = (65535u).xxxx;
+  uint4 shift = (16u).xxxx;
+  float4 t_low = f16tof32((v & mask));
+  float4 t_high = f16tof32(((v >> shift) & mask));
+  float16_t v_1 = float16_t(t_low.x);
+  float16_t v_2 = float16_t(t_high.x);
+  float16_t v_3 = float16_t(t_low.y);
+  return vector<float16_t, 4>(v_1, v_2, v_3, float16_t(t_high.y));
+}
+
+matrix<float16_t, 4, 4> v_4(uint start_byte_offset) {
+  vector<float16_t, 4> v_5 = tint_bitcast_to_f16(m[(start_byte_offset / 16u)]);
+  vector<float16_t, 4> v_6 = tint_bitcast_to_f16(m[((8u + start_byte_offset) / 16u)]);
+  vector<float16_t, 4> v_7 = tint_bitcast_to_f16(m[((16u + start_byte_offset) / 16u)]);
+  return matrix<float16_t, 4, 4>(v_5, v_6, v_7, tint_bitcast_to_f16(m[((24u + start_byte_offset) / 16u)]));
+}
+
+[numthreads(1, 1, 1)]
+void f() {
+  matrix<float16_t, 4, 4> l_m = v_4(0u);
+  vector<float16_t, 4> l_m_1 = tint_bitcast_to_f16(m[0u]);
+}
+
diff --git a/test/tint/buffer/uniform/std140/unnested/mat4x4_f16/static_index_via_ptr.wgsl.expected.ir.fxc.hlsl b/test/tint/buffer/uniform/std140/unnested/mat4x4_f16/static_index_via_ptr.wgsl.expected.ir.fxc.hlsl
index 3f437dc..f07b7fd 100644
--- a/test/tint/buffer/uniform/std140/unnested/mat4x4_f16/static_index_via_ptr.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/buffer/uniform/std140/unnested/mat4x4_f16/static_index_via_ptr.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,40 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Access
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+
+cbuffer cbuffer_m : register(b0) {
+  uint4 m[2];
+};
+static int counter = 0;
+int i() {
+  counter = (counter + 1);
+  return counter;
+}
+
+vector<float16_t, 4> tint_bitcast_to_f16(uint4 src) {
+  uint4 v = src;
+  uint4 mask = (65535u).xxxx;
+  uint4 shift = (16u).xxxx;
+  float4 t_low = f16tof32((v & mask));
+  float4 t_high = f16tof32(((v >> shift) & mask));
+  float16_t v_1 = float16_t(t_low.x);
+  float16_t v_2 = float16_t(t_high.x);
+  float16_t v_3 = float16_t(t_low.y);
+  return vector<float16_t, 4>(v_1, v_2, v_3, float16_t(t_high.y));
+}
+
+matrix<float16_t, 4, 4> v_4(uint start_byte_offset) {
+  vector<float16_t, 4> v_5 = tint_bitcast_to_f16(m[(start_byte_offset / 16u)]);
+  vector<float16_t, 4> v_6 = tint_bitcast_to_f16(m[((8u + start_byte_offset) / 16u)]);
+  vector<float16_t, 4> v_7 = tint_bitcast_to_f16(m[((16u + start_byte_offset) / 16u)]);
+  return matrix<float16_t, 4, 4>(v_5, v_6, v_7, tint_bitcast_to_f16(m[((24u + start_byte_offset) / 16u)]));
+}
+
+[numthreads(1, 1, 1)]
+void f() {
+  matrix<float16_t, 4, 4> l_m = v_4(0u);
+  vector<float16_t, 4> l_m_1 = tint_bitcast_to_f16(m[0u]);
+}
+
+FXC validation failure:
+c:\src\dawn\Shader@0x000002B424A00E40(11,8-16): error X3000: syntax error: unexpected token 'float16_t'
+
diff --git a/test/tint/buffer/uniform/std140/unnested/mat4x4_f16/to_builtin.wgsl.expected.ir.dxc.hlsl b/test/tint/buffer/uniform/std140/unnested/mat4x4_f16/to_builtin.wgsl.expected.ir.dxc.hlsl
index 3f437dc..761c994 100644
--- a/test/tint/buffer/uniform/std140/unnested/mat4x4_f16/to_builtin.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/buffer/uniform/std140/unnested/mat4x4_f16/to_builtin.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,30 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Access
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+cbuffer cbuffer_u : register(b0) {
+  uint4 u[2];
+};
+vector<float16_t, 4> tint_bitcast_to_f16(uint4 src) {
+  uint4 v = src;
+  uint4 mask = (65535u).xxxx;
+  uint4 shift = (16u).xxxx;
+  float4 t_low = f16tof32((v & mask));
+  float4 t_high = f16tof32(((v >> shift) & mask));
+  float16_t v_1 = float16_t(t_low.x);
+  float16_t v_2 = float16_t(t_high.x);
+  float16_t v_3 = float16_t(t_low.y);
+  return vector<float16_t, 4>(v_1, v_2, v_3, float16_t(t_high.y));
+}
+
+matrix<float16_t, 4, 4> v_4(uint start_byte_offset) {
+  vector<float16_t, 4> v_5 = tint_bitcast_to_f16(u[(start_byte_offset / 16u)]);
+  vector<float16_t, 4> v_6 = tint_bitcast_to_f16(u[((8u + start_byte_offset) / 16u)]);
+  vector<float16_t, 4> v_7 = tint_bitcast_to_f16(u[((16u + start_byte_offset) / 16u)]);
+  return matrix<float16_t, 4, 4>(v_5, v_6, v_7, tint_bitcast_to_f16(u[((24u + start_byte_offset) / 16u)]));
+}
+
+[numthreads(1, 1, 1)]
+void f() {
+  matrix<float16_t, 4, 4> t = transpose(v_4(0u));
+  float16_t l = length(tint_bitcast_to_f16(u[0u]));
+  float16_t a = abs(tint_bitcast_to_f16(u[0u]).ywxz[0u]);
+}
+
diff --git a/test/tint/buffer/uniform/std140/unnested/mat4x4_f16/to_builtin.wgsl.expected.ir.fxc.hlsl b/test/tint/buffer/uniform/std140/unnested/mat4x4_f16/to_builtin.wgsl.expected.ir.fxc.hlsl
index 3f437dc..3b2ef3e 100644
--- a/test/tint/buffer/uniform/std140/unnested/mat4x4_f16/to_builtin.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/buffer/uniform/std140/unnested/mat4x4_f16/to_builtin.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,35 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Access
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+
+cbuffer cbuffer_u : register(b0) {
+  uint4 u[2];
+};
+vector<float16_t, 4> tint_bitcast_to_f16(uint4 src) {
+  uint4 v = src;
+  uint4 mask = (65535u).xxxx;
+  uint4 shift = (16u).xxxx;
+  float4 t_low = f16tof32((v & mask));
+  float4 t_high = f16tof32(((v >> shift) & mask));
+  float16_t v_1 = float16_t(t_low.x);
+  float16_t v_2 = float16_t(t_high.x);
+  float16_t v_3 = float16_t(t_low.y);
+  return vector<float16_t, 4>(v_1, v_2, v_3, float16_t(t_high.y));
+}
+
+matrix<float16_t, 4, 4> v_4(uint start_byte_offset) {
+  vector<float16_t, 4> v_5 = tint_bitcast_to_f16(u[(start_byte_offset / 16u)]);
+  vector<float16_t, 4> v_6 = tint_bitcast_to_f16(u[((8u + start_byte_offset) / 16u)]);
+  vector<float16_t, 4> v_7 = tint_bitcast_to_f16(u[((16u + start_byte_offset) / 16u)]);
+  return matrix<float16_t, 4, 4>(v_5, v_6, v_7, tint_bitcast_to_f16(u[((24u + start_byte_offset) / 16u)]));
+}
+
+[numthreads(1, 1, 1)]
+void f() {
+  matrix<float16_t, 4, 4> t = transpose(v_4(0u));
+  float16_t l = length(tint_bitcast_to_f16(u[0u]));
+  float16_t a = abs(tint_bitcast_to_f16(u[0u]).ywxz[0u]);
+}
+
+FXC validation failure:
+c:\src\dawn\Shader@0x0000023DB59105B0(5,8-16): error X3000: syntax error: unexpected token 'float16_t'
+
diff --git a/test/tint/buffer/uniform/std140/unnested/mat4x4_f16/to_fn.wgsl.expected.ir.dxc.hlsl b/test/tint/buffer/uniform/std140/unnested/mat4x4_f16/to_fn.wgsl.expected.ir.dxc.hlsl
index 3f437dc..6d5c4c4 100644
--- a/test/tint/buffer/uniform/std140/unnested/mat4x4_f16/to_fn.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/buffer/uniform/std140/unnested/mat4x4_f16/to_fn.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,41 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Access
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+cbuffer cbuffer_u : register(b0) {
+  uint4 u[2];
+};
+void a(matrix<float16_t, 4, 4> m) {
+}
+
+void b(vector<float16_t, 4> v) {
+}
+
+void c(float16_t f) {
+}
+
+vector<float16_t, 4> tint_bitcast_to_f16(uint4 src) {
+  uint4 v = src;
+  uint4 mask = (65535u).xxxx;
+  uint4 shift = (16u).xxxx;
+  float4 t_low = f16tof32((v & mask));
+  float4 t_high = f16tof32(((v >> shift) & mask));
+  float16_t v_1 = float16_t(t_low.x);
+  float16_t v_2 = float16_t(t_high.x);
+  float16_t v_3 = float16_t(t_low.y);
+  return vector<float16_t, 4>(v_1, v_2, v_3, float16_t(t_high.y));
+}
+
+matrix<float16_t, 4, 4> v_4(uint start_byte_offset) {
+  vector<float16_t, 4> v_5 = tint_bitcast_to_f16(u[(start_byte_offset / 16u)]);
+  vector<float16_t, 4> v_6 = tint_bitcast_to_f16(u[((8u + start_byte_offset) / 16u)]);
+  vector<float16_t, 4> v_7 = tint_bitcast_to_f16(u[((16u + start_byte_offset) / 16u)]);
+  return matrix<float16_t, 4, 4>(v_5, v_6, v_7, tint_bitcast_to_f16(u[((24u + start_byte_offset) / 16u)]));
+}
+
+[numthreads(1, 1, 1)]
+void f() {
+  a(v_4(0u));
+  b(tint_bitcast_to_f16(u[0u]));
+  b(tint_bitcast_to_f16(u[0u]).ywxz);
+  c(float16_t(f16tof32(u[0u].z)));
+  c(tint_bitcast_to_f16(u[0u]).ywxz[0u]);
+}
+
diff --git a/test/tint/buffer/uniform/std140/unnested/mat4x4_f16/to_fn.wgsl.expected.ir.fxc.hlsl b/test/tint/buffer/uniform/std140/unnested/mat4x4_f16/to_fn.wgsl.expected.ir.fxc.hlsl
index 3f437dc..67ec558 100644
--- a/test/tint/buffer/uniform/std140/unnested/mat4x4_f16/to_fn.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/buffer/uniform/std140/unnested/mat4x4_f16/to_fn.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,48 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Access
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+
+cbuffer cbuffer_u : register(b0) {
+  uint4 u[2];
+};
+void a(matrix<float16_t, 4, 4> m) {
+}
+
+void b(vector<float16_t, 4> v) {
+}
+
+void c(float16_t f) {
+}
+
+vector<float16_t, 4> tint_bitcast_to_f16(uint4 src) {
+  uint4 v = src;
+  uint4 mask = (65535u).xxxx;
+  uint4 shift = (16u).xxxx;
+  float4 t_low = f16tof32((v & mask));
+  float4 t_high = f16tof32(((v >> shift) & mask));
+  float16_t v_1 = float16_t(t_low.x);
+  float16_t v_2 = float16_t(t_high.x);
+  float16_t v_3 = float16_t(t_low.y);
+  return vector<float16_t, 4>(v_1, v_2, v_3, float16_t(t_high.y));
+}
+
+matrix<float16_t, 4, 4> v_4(uint start_byte_offset) {
+  vector<float16_t, 4> v_5 = tint_bitcast_to_f16(u[(start_byte_offset / 16u)]);
+  vector<float16_t, 4> v_6 = tint_bitcast_to_f16(u[((8u + start_byte_offset) / 16u)]);
+  vector<float16_t, 4> v_7 = tint_bitcast_to_f16(u[((16u + start_byte_offset) / 16u)]);
+  return matrix<float16_t, 4, 4>(v_5, v_6, v_7, tint_bitcast_to_f16(u[((24u + start_byte_offset) / 16u)]));
+}
+
+[numthreads(1, 1, 1)]
+void f() {
+  a(v_4(0u));
+  b(tint_bitcast_to_f16(u[0u]));
+  b(tint_bitcast_to_f16(u[0u]).ywxz);
+  c(float16_t(f16tof32(u[0u].z)));
+  c(tint_bitcast_to_f16(u[0u]).ywxz[0u]);
+}
+
+FXC validation failure:
+c:\src\dawn\Shader@0x000002077DF14110(5,15-23): error X3000: syntax error: unexpected token 'float16_t'
+c:\src\dawn\Shader@0x000002077DF14110(8,15-23): error X3000: syntax error: unexpected token 'float16_t'
+c:\src\dawn\Shader@0x000002077DF14110(11,8-16): error X3000: unrecognized identifier 'float16_t'
+
diff --git a/test/tint/buffer/uniform/std140/unnested/mat4x4_f16/to_private.wgsl.expected.ir.dxc.hlsl b/test/tint/buffer/uniform/std140/unnested/mat4x4_f16/to_private.wgsl.expected.ir.dxc.hlsl
index 3f437dc..89dce6e 100644
--- a/test/tint/buffer/uniform/std140/unnested/mat4x4_f16/to_private.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/buffer/uniform/std140/unnested/mat4x4_f16/to_private.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,32 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Access
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+cbuffer cbuffer_u : register(b0) {
+  uint4 u[2];
+};
+static matrix<float16_t, 4, 4> p = matrix<float16_t, 4, 4>((float16_t(0.0h)).xxxx, (float16_t(0.0h)).xxxx, (float16_t(0.0h)).xxxx, (float16_t(0.0h)).xxxx);
+vector<float16_t, 4> tint_bitcast_to_f16(uint4 src) {
+  uint4 v = src;
+  uint4 mask = (65535u).xxxx;
+  uint4 shift = (16u).xxxx;
+  float4 t_low = f16tof32((v & mask));
+  float4 t_high = f16tof32(((v >> shift) & mask));
+  float16_t v_1 = float16_t(t_low.x);
+  float16_t v_2 = float16_t(t_high.x);
+  float16_t v_3 = float16_t(t_low.y);
+  return vector<float16_t, 4>(v_1, v_2, v_3, float16_t(t_high.y));
+}
+
+matrix<float16_t, 4, 4> v_4(uint start_byte_offset) {
+  vector<float16_t, 4> v_5 = tint_bitcast_to_f16(u[(start_byte_offset / 16u)]);
+  vector<float16_t, 4> v_6 = tint_bitcast_to_f16(u[((8u + start_byte_offset) / 16u)]);
+  vector<float16_t, 4> v_7 = tint_bitcast_to_f16(u[((16u + start_byte_offset) / 16u)]);
+  return matrix<float16_t, 4, 4>(v_5, v_6, v_7, tint_bitcast_to_f16(u[((24u + start_byte_offset) / 16u)]));
+}
+
+[numthreads(1, 1, 1)]
+void f() {
+  p = v_4(0u);
+  p[1] = tint_bitcast_to_f16(u[0u]);
+  p[1] = tint_bitcast_to_f16(u[0u]).ywxz;
+  p[0][1] = float16_t(f16tof32(u[0u].z));
+}
+
diff --git a/test/tint/buffer/uniform/std140/unnested/mat4x4_f16/to_private.wgsl.expected.ir.fxc.hlsl b/test/tint/buffer/uniform/std140/unnested/mat4x4_f16/to_private.wgsl.expected.ir.fxc.hlsl
index 3f437dc..0e0c839 100644
--- a/test/tint/buffer/uniform/std140/unnested/mat4x4_f16/to_private.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/buffer/uniform/std140/unnested/mat4x4_f16/to_private.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,37 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Access
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+
+cbuffer cbuffer_u : register(b0) {
+  uint4 u[2];
+};
+static matrix<float16_t, 4, 4> p = matrix<float16_t, 4, 4>((float16_t(0.0h)).xxxx, (float16_t(0.0h)).xxxx, (float16_t(0.0h)).xxxx, (float16_t(0.0h)).xxxx);
+vector<float16_t, 4> tint_bitcast_to_f16(uint4 src) {
+  uint4 v = src;
+  uint4 mask = (65535u).xxxx;
+  uint4 shift = (16u).xxxx;
+  float4 t_low = f16tof32((v & mask));
+  float4 t_high = f16tof32(((v >> shift) & mask));
+  float16_t v_1 = float16_t(t_low.x);
+  float16_t v_2 = float16_t(t_high.x);
+  float16_t v_3 = float16_t(t_low.y);
+  return vector<float16_t, 4>(v_1, v_2, v_3, float16_t(t_high.y));
+}
+
+matrix<float16_t, 4, 4> v_4(uint start_byte_offset) {
+  vector<float16_t, 4> v_5 = tint_bitcast_to_f16(u[(start_byte_offset / 16u)]);
+  vector<float16_t, 4> v_6 = tint_bitcast_to_f16(u[((8u + start_byte_offset) / 16u)]);
+  vector<float16_t, 4> v_7 = tint_bitcast_to_f16(u[((16u + start_byte_offset) / 16u)]);
+  return matrix<float16_t, 4, 4>(v_5, v_6, v_7, tint_bitcast_to_f16(u[((24u + start_byte_offset) / 16u)]));
+}
+
+[numthreads(1, 1, 1)]
+void f() {
+  p = v_4(0u);
+  p[1] = tint_bitcast_to_f16(u[0u]);
+  p[1] = tint_bitcast_to_f16(u[0u]).ywxz;
+  p[0][1] = float16_t(f16tof32(u[0u].z));
+}
+
+FXC validation failure:
+c:\src\dawn\Shader@0x000001BD1F733C70(5,15-23): error X3000: syntax error: unexpected token 'float16_t'
+
diff --git a/test/tint/buffer/uniform/std140/unnested/mat4x4_f16/to_storage.wgsl.expected.ir.dxc.hlsl b/test/tint/buffer/uniform/std140/unnested/mat4x4_f16/to_storage.wgsl.expected.ir.dxc.hlsl
index 3f437dc..3abeb5d 100644
--- a/test/tint/buffer/uniform/std140/unnested/mat4x4_f16/to_storage.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/buffer/uniform/std140/unnested/mat4x4_f16/to_storage.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,39 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Access
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+cbuffer cbuffer_u : register(b0) {
+  uint4 u[2];
+};
+RWByteAddressBuffer s : register(u1);
+vector<float16_t, 4> tint_bitcast_to_f16(uint4 src) {
+  uint4 v = src;
+  uint4 mask = (65535u).xxxx;
+  uint4 shift = (16u).xxxx;
+  float4 t_low = f16tof32((v & mask));
+  float4 t_high = f16tof32(((v >> shift) & mask));
+  float16_t v_1 = float16_t(t_low.x);
+  float16_t v_2 = float16_t(t_high.x);
+  float16_t v_3 = float16_t(t_low.y);
+  return vector<float16_t, 4>(v_1, v_2, v_3, float16_t(t_high.y));
+}
+
+void v_4(uint offset, matrix<float16_t, 4, 4> obj) {
+  s.Store<vector<float16_t, 4> >((offset + 0u), obj[0u]);
+  s.Store<vector<float16_t, 4> >((offset + 8u), obj[1u]);
+  s.Store<vector<float16_t, 4> >((offset + 16u), obj[2u]);
+  s.Store<vector<float16_t, 4> >((offset + 24u), obj[3u]);
+}
+
+matrix<float16_t, 4, 4> v_5(uint start_byte_offset) {
+  vector<float16_t, 4> v_6 = tint_bitcast_to_f16(u[(start_byte_offset / 16u)]);
+  vector<float16_t, 4> v_7 = tint_bitcast_to_f16(u[((8u + start_byte_offset) / 16u)]);
+  vector<float16_t, 4> v_8 = tint_bitcast_to_f16(u[((16u + start_byte_offset) / 16u)]);
+  return matrix<float16_t, 4, 4>(v_6, v_7, v_8, tint_bitcast_to_f16(u[((24u + start_byte_offset) / 16u)]));
+}
+
+[numthreads(1, 1, 1)]
+void f() {
+  v_4(0u, v_5(0u));
+  s.Store<vector<float16_t, 4> >(8u, tint_bitcast_to_f16(u[0u]));
+  s.Store<vector<float16_t, 4> >(8u, tint_bitcast_to_f16(u[0u]).ywxz);
+  s.Store<float16_t>(2u, float16_t(f16tof32(u[0u].z)));
+}
+
diff --git a/test/tint/buffer/uniform/std140/unnested/mat4x4_f16/to_storage.wgsl.expected.ir.fxc.hlsl b/test/tint/buffer/uniform/std140/unnested/mat4x4_f16/to_storage.wgsl.expected.ir.fxc.hlsl
index 3f437dc..72a8852 100644
--- a/test/tint/buffer/uniform/std140/unnested/mat4x4_f16/to_storage.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/buffer/uniform/std140/unnested/mat4x4_f16/to_storage.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,44 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Access
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+
+cbuffer cbuffer_u : register(b0) {
+  uint4 u[2];
+};
+RWByteAddressBuffer s : register(u1);
+vector<float16_t, 4> tint_bitcast_to_f16(uint4 src) {
+  uint4 v = src;
+  uint4 mask = (65535u).xxxx;
+  uint4 shift = (16u).xxxx;
+  float4 t_low = f16tof32((v & mask));
+  float4 t_high = f16tof32(((v >> shift) & mask));
+  float16_t v_1 = float16_t(t_low.x);
+  float16_t v_2 = float16_t(t_high.x);
+  float16_t v_3 = float16_t(t_low.y);
+  return vector<float16_t, 4>(v_1, v_2, v_3, float16_t(t_high.y));
+}
+
+void v_4(uint offset, matrix<float16_t, 4, 4> obj) {
+  s.Store<vector<float16_t, 4> >((offset + 0u), obj[0u]);
+  s.Store<vector<float16_t, 4> >((offset + 8u), obj[1u]);
+  s.Store<vector<float16_t, 4> >((offset + 16u), obj[2u]);
+  s.Store<vector<float16_t, 4> >((offset + 24u), obj[3u]);
+}
+
+matrix<float16_t, 4, 4> v_5(uint start_byte_offset) {
+  vector<float16_t, 4> v_6 = tint_bitcast_to_f16(u[(start_byte_offset / 16u)]);
+  vector<float16_t, 4> v_7 = tint_bitcast_to_f16(u[((8u + start_byte_offset) / 16u)]);
+  vector<float16_t, 4> v_8 = tint_bitcast_to_f16(u[((16u + start_byte_offset) / 16u)]);
+  return matrix<float16_t, 4, 4>(v_6, v_7, v_8, tint_bitcast_to_f16(u[((24u + start_byte_offset) / 16u)]));
+}
+
+[numthreads(1, 1, 1)]
+void f() {
+  v_4(0u, v_5(0u));
+  s.Store<vector<float16_t, 4> >(8u, tint_bitcast_to_f16(u[0u]));
+  s.Store<vector<float16_t, 4> >(8u, tint_bitcast_to_f16(u[0u]).ywxz);
+  s.Store<float16_t>(2u, float16_t(f16tof32(u[0u].z)));
+}
+
+FXC validation failure:
+c:\src\dawn\Shader@0x00000207107A4060(6,8-16): error X3000: syntax error: unexpected token 'float16_t'
+
diff --git a/test/tint/buffer/uniform/std140/unnested/mat4x4_f16/to_workgroup.wgsl.expected.ir.dxc.hlsl b/test/tint/buffer/uniform/std140/unnested/mat4x4_f16/to_workgroup.wgsl.expected.ir.dxc.hlsl
index 3f437dc..2e8401b 100644
--- a/test/tint/buffer/uniform/std140/unnested/mat4x4_f16/to_workgroup.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/buffer/uniform/std140/unnested/mat4x4_f16/to_workgroup.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,44 @@
-SKIP: FAILED
+struct f_inputs {
+  uint tint_local_index : SV_GroupIndex;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Access
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+
+cbuffer cbuffer_u : register(b0) {
+  uint4 u[2];
+};
+groupshared matrix<float16_t, 4, 4> w;
+vector<float16_t, 4> tint_bitcast_to_f16(uint4 src) {
+  uint4 v = src;
+  uint4 mask = (65535u).xxxx;
+  uint4 shift = (16u).xxxx;
+  float4 t_low = f16tof32((v & mask));
+  float4 t_high = f16tof32(((v >> shift) & mask));
+  float16_t v_1 = float16_t(t_low.x);
+  float16_t v_2 = float16_t(t_high.x);
+  float16_t v_3 = float16_t(t_low.y);
+  return vector<float16_t, 4>(v_1, v_2, v_3, float16_t(t_high.y));
+}
+
+matrix<float16_t, 4, 4> v_4(uint start_byte_offset) {
+  vector<float16_t, 4> v_5 = tint_bitcast_to_f16(u[(start_byte_offset / 16u)]);
+  vector<float16_t, 4> v_6 = tint_bitcast_to_f16(u[((8u + start_byte_offset) / 16u)]);
+  vector<float16_t, 4> v_7 = tint_bitcast_to_f16(u[((16u + start_byte_offset) / 16u)]);
+  return matrix<float16_t, 4, 4>(v_5, v_6, v_7, tint_bitcast_to_f16(u[((24u + start_byte_offset) / 16u)]));
+}
+
+void f_inner(uint tint_local_index) {
+  if ((tint_local_index == 0u)) {
+    w = matrix<float16_t, 4, 4>((float16_t(0.0h)).xxxx, (float16_t(0.0h)).xxxx, (float16_t(0.0h)).xxxx, (float16_t(0.0h)).xxxx);
+  }
+  GroupMemoryBarrierWithGroupSync();
+  w = v_4(0u);
+  w[1] = tint_bitcast_to_f16(u[0u]);
+  w[1] = tint_bitcast_to_f16(u[0u]).ywxz;
+  w[0][1] = float16_t(f16tof32(u[0u].z));
+}
+
+[numthreads(1, 1, 1)]
+void f(f_inputs inputs) {
+  f_inner(inputs.tint_local_index);
+}
+
diff --git a/test/tint/buffer/uniform/std140/unnested/mat4x4_f16/to_workgroup.wgsl.expected.ir.fxc.hlsl b/test/tint/buffer/uniform/std140/unnested/mat4x4_f16/to_workgroup.wgsl.expected.ir.fxc.hlsl
index 3f437dc..c60f7b3 100644
--- a/test/tint/buffer/uniform/std140/unnested/mat4x4_f16/to_workgroup.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/buffer/uniform/std140/unnested/mat4x4_f16/to_workgroup.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,49 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Access
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct f_inputs {
+  uint tint_local_index : SV_GroupIndex;
+};
+
+
+cbuffer cbuffer_u : register(b0) {
+  uint4 u[2];
+};
+groupshared matrix<float16_t, 4, 4> w;
+vector<float16_t, 4> tint_bitcast_to_f16(uint4 src) {
+  uint4 v = src;
+  uint4 mask = (65535u).xxxx;
+  uint4 shift = (16u).xxxx;
+  float4 t_low = f16tof32((v & mask));
+  float4 t_high = f16tof32(((v >> shift) & mask));
+  float16_t v_1 = float16_t(t_low.x);
+  float16_t v_2 = float16_t(t_high.x);
+  float16_t v_3 = float16_t(t_low.y);
+  return vector<float16_t, 4>(v_1, v_2, v_3, float16_t(t_high.y));
+}
+
+matrix<float16_t, 4, 4> v_4(uint start_byte_offset) {
+  vector<float16_t, 4> v_5 = tint_bitcast_to_f16(u[(start_byte_offset / 16u)]);
+  vector<float16_t, 4> v_6 = tint_bitcast_to_f16(u[((8u + start_byte_offset) / 16u)]);
+  vector<float16_t, 4> v_7 = tint_bitcast_to_f16(u[((16u + start_byte_offset) / 16u)]);
+  return matrix<float16_t, 4, 4>(v_5, v_6, v_7, tint_bitcast_to_f16(u[((24u + start_byte_offset) / 16u)]));
+}
+
+void f_inner(uint tint_local_index) {
+  if ((tint_local_index == 0u)) {
+    w = matrix<float16_t, 4, 4>((float16_t(0.0h)).xxxx, (float16_t(0.0h)).xxxx, (float16_t(0.0h)).xxxx, (float16_t(0.0h)).xxxx);
+  }
+  GroupMemoryBarrierWithGroupSync();
+  w = v_4(0u);
+  w[1] = tint_bitcast_to_f16(u[0u]);
+  w[1] = tint_bitcast_to_f16(u[0u]).ywxz;
+  w[0][1] = float16_t(f16tof32(u[0u].z));
+}
+
+[numthreads(1, 1, 1)]
+void f(f_inputs inputs) {
+  f_inner(inputs.tint_local_index);
+}
+
+FXC validation failure:
+c:\src\dawn\Shader@0x00000135F4E437B0(9,20-28): error X3000: syntax error: unexpected token 'float16_t'
+
diff --git a/test/tint/buffer/uniform/std140/unnested/mat4x4_f32/dynamic_index_via_ptr.wgsl.expected.ir.dxc.hlsl b/test/tint/buffer/uniform/std140/unnested/mat4x4_f32/dynamic_index_via_ptr.wgsl.expected.ir.dxc.hlsl
index 3f437dc..b049c5e 100644
--- a/test/tint/buffer/uniform/std140/unnested/mat4x4_f32/dynamic_index_via_ptr.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/buffer/uniform/std140/unnested/mat4x4_f32/dynamic_index_via_ptr.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,24 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Access
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+cbuffer cbuffer_m : register(b0) {
+  uint4 m[4];
+};
+static int counter = 0;
+int i() {
+  counter = (counter + 1);
+  return counter;
+}
+
+float4x4 v(uint start_byte_offset) {
+  float4 v_1 = asfloat(m[(start_byte_offset / 16u)]);
+  float4 v_2 = asfloat(m[((16u + start_byte_offset) / 16u)]);
+  float4 v_3 = asfloat(m[((32u + start_byte_offset) / 16u)]);
+  return float4x4(v_1, v_2, v_3, asfloat(m[((48u + start_byte_offset) / 16u)]));
+}
+
+[numthreads(1, 1, 1)]
+void f() {
+  uint v_4 = (16u * uint(i()));
+  float4x4 l_m = v(0u);
+  float4 l_m_i = asfloat(m[(v_4 / 16u)]);
+}
+
diff --git a/test/tint/buffer/uniform/std140/unnested/mat4x4_f32/dynamic_index_via_ptr.wgsl.expected.ir.fxc.hlsl b/test/tint/buffer/uniform/std140/unnested/mat4x4_f32/dynamic_index_via_ptr.wgsl.expected.ir.fxc.hlsl
index 3f437dc..b049c5e 100644
--- a/test/tint/buffer/uniform/std140/unnested/mat4x4_f32/dynamic_index_via_ptr.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/buffer/uniform/std140/unnested/mat4x4_f32/dynamic_index_via_ptr.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,24 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Access
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+cbuffer cbuffer_m : register(b0) {
+  uint4 m[4];
+};
+static int counter = 0;
+int i() {
+  counter = (counter + 1);
+  return counter;
+}
+
+float4x4 v(uint start_byte_offset) {
+  float4 v_1 = asfloat(m[(start_byte_offset / 16u)]);
+  float4 v_2 = asfloat(m[((16u + start_byte_offset) / 16u)]);
+  float4 v_3 = asfloat(m[((32u + start_byte_offset) / 16u)]);
+  return float4x4(v_1, v_2, v_3, asfloat(m[((48u + start_byte_offset) / 16u)]));
+}
+
+[numthreads(1, 1, 1)]
+void f() {
+  uint v_4 = (16u * uint(i()));
+  float4x4 l_m = v(0u);
+  float4 l_m_i = asfloat(m[(v_4 / 16u)]);
+}
+
diff --git a/test/tint/buffer/uniform/std140/unnested/mat4x4_f32/static_index_via_ptr.wgsl.expected.ir.dxc.hlsl b/test/tint/buffer/uniform/std140/unnested/mat4x4_f32/static_index_via_ptr.wgsl.expected.ir.dxc.hlsl
index 3f437dc..1f58541 100644
--- a/test/tint/buffer/uniform/std140/unnested/mat4x4_f32/static_index_via_ptr.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/buffer/uniform/std140/unnested/mat4x4_f32/static_index_via_ptr.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,23 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Access
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+cbuffer cbuffer_m : register(b0) {
+  uint4 m[4];
+};
+static int counter = 0;
+int i() {
+  counter = (counter + 1);
+  return counter;
+}
+
+float4x4 v(uint start_byte_offset) {
+  float4 v_1 = asfloat(m[(start_byte_offset / 16u)]);
+  float4 v_2 = asfloat(m[((16u + start_byte_offset) / 16u)]);
+  float4 v_3 = asfloat(m[((32u + start_byte_offset) / 16u)]);
+  return float4x4(v_1, v_2, v_3, asfloat(m[((48u + start_byte_offset) / 16u)]));
+}
+
+[numthreads(1, 1, 1)]
+void f() {
+  float4x4 l_m = v(0u);
+  float4 l_m_1 = asfloat(m[1u]);
+}
+
diff --git a/test/tint/buffer/uniform/std140/unnested/mat4x4_f32/static_index_via_ptr.wgsl.expected.ir.fxc.hlsl b/test/tint/buffer/uniform/std140/unnested/mat4x4_f32/static_index_via_ptr.wgsl.expected.ir.fxc.hlsl
index 3f437dc..1f58541 100644
--- a/test/tint/buffer/uniform/std140/unnested/mat4x4_f32/static_index_via_ptr.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/buffer/uniform/std140/unnested/mat4x4_f32/static_index_via_ptr.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,23 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Access
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+cbuffer cbuffer_m : register(b0) {
+  uint4 m[4];
+};
+static int counter = 0;
+int i() {
+  counter = (counter + 1);
+  return counter;
+}
+
+float4x4 v(uint start_byte_offset) {
+  float4 v_1 = asfloat(m[(start_byte_offset / 16u)]);
+  float4 v_2 = asfloat(m[((16u + start_byte_offset) / 16u)]);
+  float4 v_3 = asfloat(m[((32u + start_byte_offset) / 16u)]);
+  return float4x4(v_1, v_2, v_3, asfloat(m[((48u + start_byte_offset) / 16u)]));
+}
+
+[numthreads(1, 1, 1)]
+void f() {
+  float4x4 l_m = v(0u);
+  float4 l_m_1 = asfloat(m[1u]);
+}
+
diff --git a/test/tint/buffer/uniform/std140/unnested/mat4x4_f32/to_builtin.wgsl.expected.ir.dxc.hlsl b/test/tint/buffer/uniform/std140/unnested/mat4x4_f32/to_builtin.wgsl.expected.ir.dxc.hlsl
index 3f437dc..57693e34 100644
--- a/test/tint/buffer/uniform/std140/unnested/mat4x4_f32/to_builtin.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/buffer/uniform/std140/unnested/mat4x4_f32/to_builtin.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,18 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Access
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+cbuffer cbuffer_u : register(b0) {
+  uint4 u[4];
+};
+float4x4 v(uint start_byte_offset) {
+  float4 v_1 = asfloat(u[(start_byte_offset / 16u)]);
+  float4 v_2 = asfloat(u[((16u + start_byte_offset) / 16u)]);
+  float4 v_3 = asfloat(u[((32u + start_byte_offset) / 16u)]);
+  return float4x4(v_1, v_2, v_3, asfloat(u[((48u + start_byte_offset) / 16u)]));
+}
+
+[numthreads(1, 1, 1)]
+void f() {
+  float4x4 t = transpose(v(0u));
+  float l = length(asfloat(u[1u]));
+  float a = abs(asfloat(u[0u]).ywxz[0u]);
+}
+
diff --git a/test/tint/buffer/uniform/std140/unnested/mat4x4_f32/to_builtin.wgsl.expected.ir.fxc.hlsl b/test/tint/buffer/uniform/std140/unnested/mat4x4_f32/to_builtin.wgsl.expected.ir.fxc.hlsl
index 3f437dc..57693e34 100644
--- a/test/tint/buffer/uniform/std140/unnested/mat4x4_f32/to_builtin.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/buffer/uniform/std140/unnested/mat4x4_f32/to_builtin.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,18 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Access
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+cbuffer cbuffer_u : register(b0) {
+  uint4 u[4];
+};
+float4x4 v(uint start_byte_offset) {
+  float4 v_1 = asfloat(u[(start_byte_offset / 16u)]);
+  float4 v_2 = asfloat(u[((16u + start_byte_offset) / 16u)]);
+  float4 v_3 = asfloat(u[((32u + start_byte_offset) / 16u)]);
+  return float4x4(v_1, v_2, v_3, asfloat(u[((48u + start_byte_offset) / 16u)]));
+}
+
+[numthreads(1, 1, 1)]
+void f() {
+  float4x4 t = transpose(v(0u));
+  float l = length(asfloat(u[1u]));
+  float a = abs(asfloat(u[0u]).ywxz[0u]);
+}
+
diff --git a/test/tint/buffer/uniform/std140/unnested/mat4x4_f32/to_fn.wgsl.expected.ir.dxc.hlsl b/test/tint/buffer/uniform/std140/unnested/mat4x4_f32/to_fn.wgsl.expected.ir.dxc.hlsl
index 3f437dc..865b64c 100644
--- a/test/tint/buffer/uniform/std140/unnested/mat4x4_f32/to_fn.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/buffer/uniform/std140/unnested/mat4x4_f32/to_fn.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,29 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Access
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+cbuffer cbuffer_u : register(b0) {
+  uint4 u[4];
+};
+void a(float4x4 m) {
+}
+
+void b(float4 v) {
+}
+
+void c(float f) {
+}
+
+float4x4 v_1(uint start_byte_offset) {
+  float4 v_2 = asfloat(u[(start_byte_offset / 16u)]);
+  float4 v_3 = asfloat(u[((16u + start_byte_offset) / 16u)]);
+  float4 v_4 = asfloat(u[((32u + start_byte_offset) / 16u)]);
+  return float4x4(v_2, v_3, v_4, asfloat(u[((48u + start_byte_offset) / 16u)]));
+}
+
+[numthreads(1, 1, 1)]
+void f() {
+  a(v_1(0u));
+  b(asfloat(u[1u]));
+  b(asfloat(u[1u]).ywxz);
+  c(asfloat(u[1u].x));
+  c(asfloat(u[1u]).ywxz[0u]);
+}
+
diff --git a/test/tint/buffer/uniform/std140/unnested/mat4x4_f32/to_fn.wgsl.expected.ir.fxc.hlsl b/test/tint/buffer/uniform/std140/unnested/mat4x4_f32/to_fn.wgsl.expected.ir.fxc.hlsl
index 3f437dc..865b64c 100644
--- a/test/tint/buffer/uniform/std140/unnested/mat4x4_f32/to_fn.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/buffer/uniform/std140/unnested/mat4x4_f32/to_fn.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,29 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Access
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+cbuffer cbuffer_u : register(b0) {
+  uint4 u[4];
+};
+void a(float4x4 m) {
+}
+
+void b(float4 v) {
+}
+
+void c(float f) {
+}
+
+float4x4 v_1(uint start_byte_offset) {
+  float4 v_2 = asfloat(u[(start_byte_offset / 16u)]);
+  float4 v_3 = asfloat(u[((16u + start_byte_offset) / 16u)]);
+  float4 v_4 = asfloat(u[((32u + start_byte_offset) / 16u)]);
+  return float4x4(v_2, v_3, v_4, asfloat(u[((48u + start_byte_offset) / 16u)]));
+}
+
+[numthreads(1, 1, 1)]
+void f() {
+  a(v_1(0u));
+  b(asfloat(u[1u]));
+  b(asfloat(u[1u]).ywxz);
+  c(asfloat(u[1u].x));
+  c(asfloat(u[1u]).ywxz[0u]);
+}
+
diff --git a/test/tint/buffer/uniform/std140/unnested/mat4x4_f32/to_private.wgsl.expected.ir.dxc.hlsl b/test/tint/buffer/uniform/std140/unnested/mat4x4_f32/to_private.wgsl.expected.ir.dxc.hlsl
index 3f437dc..1fc18ac 100644
--- a/test/tint/buffer/uniform/std140/unnested/mat4x4_f32/to_private.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/buffer/uniform/std140/unnested/mat4x4_f32/to_private.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,20 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Access
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+cbuffer cbuffer_u : register(b0) {
+  uint4 u[4];
+};
+static float4x4 p = float4x4((0.0f).xxxx, (0.0f).xxxx, (0.0f).xxxx, (0.0f).xxxx);
+float4x4 v(uint start_byte_offset) {
+  float4 v_1 = asfloat(u[(start_byte_offset / 16u)]);
+  float4 v_2 = asfloat(u[((16u + start_byte_offset) / 16u)]);
+  float4 v_3 = asfloat(u[((32u + start_byte_offset) / 16u)]);
+  return float4x4(v_1, v_2, v_3, asfloat(u[((48u + start_byte_offset) / 16u)]));
+}
+
+[numthreads(1, 1, 1)]
+void f() {
+  p = v(0u);
+  p[1] = asfloat(u[0u]);
+  p[1] = asfloat(u[0u]).ywxz;
+  p[0][1] = asfloat(u[1u].x);
+}
+
diff --git a/test/tint/buffer/uniform/std140/unnested/mat4x4_f32/to_private.wgsl.expected.ir.fxc.hlsl b/test/tint/buffer/uniform/std140/unnested/mat4x4_f32/to_private.wgsl.expected.ir.fxc.hlsl
index 3f437dc..1fc18ac 100644
--- a/test/tint/buffer/uniform/std140/unnested/mat4x4_f32/to_private.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/buffer/uniform/std140/unnested/mat4x4_f32/to_private.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,20 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Access
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+cbuffer cbuffer_u : register(b0) {
+  uint4 u[4];
+};
+static float4x4 p = float4x4((0.0f).xxxx, (0.0f).xxxx, (0.0f).xxxx, (0.0f).xxxx);
+float4x4 v(uint start_byte_offset) {
+  float4 v_1 = asfloat(u[(start_byte_offset / 16u)]);
+  float4 v_2 = asfloat(u[((16u + start_byte_offset) / 16u)]);
+  float4 v_3 = asfloat(u[((32u + start_byte_offset) / 16u)]);
+  return float4x4(v_1, v_2, v_3, asfloat(u[((48u + start_byte_offset) / 16u)]));
+}
+
+[numthreads(1, 1, 1)]
+void f() {
+  p = v(0u);
+  p[1] = asfloat(u[0u]);
+  p[1] = asfloat(u[0u]).ywxz;
+  p[0][1] = asfloat(u[1u].x);
+}
+
diff --git a/test/tint/buffer/uniform/std140/unnested/mat4x4_f32/to_storage.wgsl.expected.ir.dxc.hlsl b/test/tint/buffer/uniform/std140/unnested/mat4x4_f32/to_storage.wgsl.expected.ir.dxc.hlsl
index 3f437dc..21b8977 100644
--- a/test/tint/buffer/uniform/std140/unnested/mat4x4_f32/to_storage.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/buffer/uniform/std140/unnested/mat4x4_f32/to_storage.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,27 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Access
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+cbuffer cbuffer_u : register(b0) {
+  uint4 u[4];
+};
+RWByteAddressBuffer s : register(u1);
+void v(uint offset, float4x4 obj) {
+  s.Store4((offset + 0u), asuint(obj[0u]));
+  s.Store4((offset + 16u), asuint(obj[1u]));
+  s.Store4((offset + 32u), asuint(obj[2u]));
+  s.Store4((offset + 48u), asuint(obj[3u]));
+}
+
+float4x4 v_1(uint start_byte_offset) {
+  float4 v_2 = asfloat(u[(start_byte_offset / 16u)]);
+  float4 v_3 = asfloat(u[((16u + start_byte_offset) / 16u)]);
+  float4 v_4 = asfloat(u[((32u + start_byte_offset) / 16u)]);
+  return float4x4(v_2, v_3, v_4, asfloat(u[((48u + start_byte_offset) / 16u)]));
+}
+
+[numthreads(1, 1, 1)]
+void f() {
+  v(0u, v_1(0u));
+  s.Store4(16u, asuint(asfloat(u[0u])));
+  s.Store4(16u, asuint(asfloat(u[0u]).ywxz));
+  s.Store(4u, asuint(asfloat(u[1u].x)));
+}
+
diff --git a/test/tint/buffer/uniform/std140/unnested/mat4x4_f32/to_storage.wgsl.expected.ir.fxc.hlsl b/test/tint/buffer/uniform/std140/unnested/mat4x4_f32/to_storage.wgsl.expected.ir.fxc.hlsl
index 3f437dc..21b8977 100644
--- a/test/tint/buffer/uniform/std140/unnested/mat4x4_f32/to_storage.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/buffer/uniform/std140/unnested/mat4x4_f32/to_storage.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,27 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Access
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+cbuffer cbuffer_u : register(b0) {
+  uint4 u[4];
+};
+RWByteAddressBuffer s : register(u1);
+void v(uint offset, float4x4 obj) {
+  s.Store4((offset + 0u), asuint(obj[0u]));
+  s.Store4((offset + 16u), asuint(obj[1u]));
+  s.Store4((offset + 32u), asuint(obj[2u]));
+  s.Store4((offset + 48u), asuint(obj[3u]));
+}
+
+float4x4 v_1(uint start_byte_offset) {
+  float4 v_2 = asfloat(u[(start_byte_offset / 16u)]);
+  float4 v_3 = asfloat(u[((16u + start_byte_offset) / 16u)]);
+  float4 v_4 = asfloat(u[((32u + start_byte_offset) / 16u)]);
+  return float4x4(v_2, v_3, v_4, asfloat(u[((48u + start_byte_offset) / 16u)]));
+}
+
+[numthreads(1, 1, 1)]
+void f() {
+  v(0u, v_1(0u));
+  s.Store4(16u, asuint(asfloat(u[0u])));
+  s.Store4(16u, asuint(asfloat(u[0u]).ywxz));
+  s.Store(4u, asuint(asfloat(u[1u].x)));
+}
+
diff --git a/test/tint/buffer/uniform/std140/unnested/mat4x4_f32/to_workgroup.wgsl.expected.ir.dxc.hlsl b/test/tint/buffer/uniform/std140/unnested/mat4x4_f32/to_workgroup.wgsl.expected.ir.dxc.hlsl
index 3f437dc..edf805e 100644
--- a/test/tint/buffer/uniform/std140/unnested/mat4x4_f32/to_workgroup.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/buffer/uniform/std140/unnested/mat4x4_f32/to_workgroup.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,32 @@
-SKIP: FAILED
+struct f_inputs {
+  uint tint_local_index : SV_GroupIndex;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Access
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+
+cbuffer cbuffer_u : register(b0) {
+  uint4 u[4];
+};
+groupshared float4x4 w;
+float4x4 v(uint start_byte_offset) {
+  float4 v_1 = asfloat(u[(start_byte_offset / 16u)]);
+  float4 v_2 = asfloat(u[((16u + start_byte_offset) / 16u)]);
+  float4 v_3 = asfloat(u[((32u + start_byte_offset) / 16u)]);
+  return float4x4(v_1, v_2, v_3, asfloat(u[((48u + start_byte_offset) / 16u)]));
+}
+
+void f_inner(uint tint_local_index) {
+  if ((tint_local_index == 0u)) {
+    w = float4x4((0.0f).xxxx, (0.0f).xxxx, (0.0f).xxxx, (0.0f).xxxx);
+  }
+  GroupMemoryBarrierWithGroupSync();
+  w = v(0u);
+  w[1] = asfloat(u[0u]);
+  w[1] = asfloat(u[0u]).ywxz;
+  w[0][1] = asfloat(u[1u].x);
+}
+
+[numthreads(1, 1, 1)]
+void f(f_inputs inputs) {
+  f_inner(inputs.tint_local_index);
+}
+
diff --git a/test/tint/buffer/uniform/std140/unnested/mat4x4_f32/to_workgroup.wgsl.expected.ir.fxc.hlsl b/test/tint/buffer/uniform/std140/unnested/mat4x4_f32/to_workgroup.wgsl.expected.ir.fxc.hlsl
index 3f437dc..edf805e 100644
--- a/test/tint/buffer/uniform/std140/unnested/mat4x4_f32/to_workgroup.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/buffer/uniform/std140/unnested/mat4x4_f32/to_workgroup.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,32 @@
-SKIP: FAILED
+struct f_inputs {
+  uint tint_local_index : SV_GroupIndex;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Access
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+
+cbuffer cbuffer_u : register(b0) {
+  uint4 u[4];
+};
+groupshared float4x4 w;
+float4x4 v(uint start_byte_offset) {
+  float4 v_1 = asfloat(u[(start_byte_offset / 16u)]);
+  float4 v_2 = asfloat(u[((16u + start_byte_offset) / 16u)]);
+  float4 v_3 = asfloat(u[((32u + start_byte_offset) / 16u)]);
+  return float4x4(v_1, v_2, v_3, asfloat(u[((48u + start_byte_offset) / 16u)]));
+}
+
+void f_inner(uint tint_local_index) {
+  if ((tint_local_index == 0u)) {
+    w = float4x4((0.0f).xxxx, (0.0f).xxxx, (0.0f).xxxx, (0.0f).xxxx);
+  }
+  GroupMemoryBarrierWithGroupSync();
+  w = v(0u);
+  w[1] = asfloat(u[0u]);
+  w[1] = asfloat(u[0u]).ywxz;
+  w[0][1] = asfloat(u[1u].x);
+}
+
+[numthreads(1, 1, 1)]
+void f(f_inputs inputs) {
+  f_inner(inputs.tint_local_index);
+}
+
diff --git a/test/tint/buffer/uniform/types/f16.wgsl.expected.ir.dxc.hlsl b/test/tint/buffer/uniform/types/f16.wgsl.expected.ir.dxc.hlsl
index 70ba600..22c8b0b 100644
--- a/test/tint/buffer/uniform/types/f16.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/buffer/uniform/types/f16.wgsl.expected.ir.dxc.hlsl
@@ -1,16 +1,11 @@
-SKIP: FAILED
 
+cbuffer cbuffer_u : register(b0) {
+  uint4 u[1];
+};
+RWByteAddressBuffer s : register(u1);
 [numthreads(1, 1, 1)]
 void main() {
-  float16_t x = u;
-  s = x;
+  float16_t x = float16_t(f16tof32(u[0u].x));
+  s.Store<float16_t>(0u, x);
 }
 
-DXC validation failure:
-hlsl.hlsl:3:17: error: use of undeclared identifier 'u'
-  float16_t x = u;
-                ^
-hlsl.hlsl:4:3: error: use of undeclared identifier 's'
-  s = x;
-  ^
-
diff --git a/test/tint/buffer/uniform/types/f16.wgsl.expected.ir.fxc.hlsl b/test/tint/buffer/uniform/types/f16.wgsl.expected.ir.fxc.hlsl
index 67882e5..bff8be2 100644
--- a/test/tint/buffer/uniform/types/f16.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/buffer/uniform/types/f16.wgsl.expected.ir.fxc.hlsl
@@ -1,8 +1,17 @@
 SKIP: FAILED
 
+
+cbuffer cbuffer_u : register(b0) {
+  uint4 u[1];
+};
+RWByteAddressBuffer s : register(u1);
 [numthreads(1, 1, 1)]
 void main() {
-  float16_t x = u;
-  s = x;
+  float16_t x = float16_t(f16tof32(u[0u].x));
+  s.Store<float16_t>(0u, x);
 }
 
+FXC validation failure:
+c:\src\dawn\Shader@0x00000249BA7AE360(8,3-11): error X3000: unrecognized identifier 'float16_t'
+c:\src\dawn\Shader@0x00000249BA7AE360(8,13): error X3000: unrecognized identifier 'x'
+
diff --git a/test/tint/buffer/uniform/types/f32.wgsl.expected.ir.dxc.hlsl b/test/tint/buffer/uniform/types/f32.wgsl.expected.ir.dxc.hlsl
index cf66db7..2dd2079 100644
--- a/test/tint/buffer/uniform/types/f32.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/buffer/uniform/types/f32.wgsl.expected.ir.dxc.hlsl
@@ -1,16 +1,11 @@
-SKIP: FAILED
 
+cbuffer cbuffer_u : register(b0) {
+  uint4 u[1];
+};
+RWByteAddressBuffer s : register(u1);
 [numthreads(1, 1, 1)]
 void main() {
-  float x = u;
-  s = x;
+  float x = asfloat(u[0u].x);
+  s.Store(0u, asuint(x));
 }
 
-DXC validation failure:
-hlsl.hlsl:3:13: error: use of undeclared identifier 'u'
-  float x = u;
-            ^
-hlsl.hlsl:4:3: error: use of undeclared identifier 's'
-  s = x;
-  ^
-
diff --git a/test/tint/buffer/uniform/types/f32.wgsl.expected.ir.fxc.hlsl b/test/tint/buffer/uniform/types/f32.wgsl.expected.ir.fxc.hlsl
index e75280a..2dd2079 100644
--- a/test/tint/buffer/uniform/types/f32.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/buffer/uniform/types/f32.wgsl.expected.ir.fxc.hlsl
@@ -1,8 +1,11 @@
-SKIP: FAILED
 
+cbuffer cbuffer_u : register(b0) {
+  uint4 u[1];
+};
+RWByteAddressBuffer s : register(u1);
 [numthreads(1, 1, 1)]
 void main() {
-  float x = u;
-  s = x;
+  float x = asfloat(u[0u].x);
+  s.Store(0u, asuint(x));
 }
 
diff --git a/test/tint/buffer/uniform/types/i32.wgsl.expected.ir.dxc.hlsl b/test/tint/buffer/uniform/types/i32.wgsl.expected.ir.dxc.hlsl
index e3925b4..54e535c 100644
--- a/test/tint/buffer/uniform/types/i32.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/buffer/uniform/types/i32.wgsl.expected.ir.dxc.hlsl
@@ -1,16 +1,11 @@
-SKIP: FAILED
 
+cbuffer cbuffer_u : register(b0) {
+  uint4 u[1];
+};
+RWByteAddressBuffer s : register(u1);
 [numthreads(1, 1, 1)]
 void main() {
-  int x = u;
-  s = x;
+  int x = asint(u[0u].x);
+  s.Store(0u, asuint(x));
 }
 
-DXC validation failure:
-hlsl.hlsl:3:11: error: use of undeclared identifier 'u'
-  int x = u;
-          ^
-hlsl.hlsl:4:3: error: use of undeclared identifier 's'
-  s = x;
-  ^
-
diff --git a/test/tint/buffer/uniform/types/i32.wgsl.expected.ir.fxc.hlsl b/test/tint/buffer/uniform/types/i32.wgsl.expected.ir.fxc.hlsl
index d11e475..54e535c 100644
--- a/test/tint/buffer/uniform/types/i32.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/buffer/uniform/types/i32.wgsl.expected.ir.fxc.hlsl
@@ -1,8 +1,11 @@
-SKIP: FAILED
 
+cbuffer cbuffer_u : register(b0) {
+  uint4 u[1];
+};
+RWByteAddressBuffer s : register(u1);
 [numthreads(1, 1, 1)]
 void main() {
-  int x = u;
-  s = x;
+  int x = asint(u[0u].x);
+  s.Store(0u, asuint(x));
 }
 
diff --git a/test/tint/buffer/uniform/types/mat2x2_f16.wgsl.expected.ir.dxc.hlsl b/test/tint/buffer/uniform/types/mat2x2_f16.wgsl.expected.ir.dxc.hlsl
index 3b034cc..717e383 100644
--- a/test/tint/buffer/uniform/types/mat2x2_f16.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/buffer/uniform/types/mat2x2_f16.wgsl.expected.ir.dxc.hlsl
@@ -1,16 +1,31 @@
-SKIP: FAILED
+
+cbuffer cbuffer_u : register(b0) {
+  uint4 u[1];
+};
+RWByteAddressBuffer s : register(u1);
+void v_1(uint offset, matrix<float16_t, 2, 2> obj) {
+  s.Store<vector<float16_t, 2> >((offset + 0u), obj[0u]);
+  s.Store<vector<float16_t, 2> >((offset + 4u), obj[1u]);
+}
+
+vector<float16_t, 2> tint_bitcast_to_f16(uint src) {
+  uint v = src;
+  float t_low = f16tof32((v & 65535u));
+  float t_high = f16tof32(((v >> 16u) & 65535u));
+  float16_t v_2 = float16_t(t_low);
+  return vector<float16_t, 2>(v_2, float16_t(t_high));
+}
+
+matrix<float16_t, 2, 2> v_3(uint start_byte_offset) {
+  uint4 v_4 = u[(start_byte_offset / 16u)];
+  vector<float16_t, 2> v_5 = tint_bitcast_to_f16((((((start_byte_offset % 16u) / 4u) == 2u)) ? (v_4.z) : (v_4.x)));
+  uint4 v_6 = u[((4u + start_byte_offset) / 16u)];
+  return matrix<float16_t, 2, 2>(v_5, tint_bitcast_to_f16(((((((4u + start_byte_offset) % 16u) / 4u) == 2u)) ? (v_6.z) : (v_6.x))));
+}
 
 [numthreads(1, 1, 1)]
 void main() {
-  matrix<float16_t, 2, 2> x = u;
-  s = x;
+  matrix<float16_t, 2, 2> x = v_3(0u);
+  v_1(0u, x);
 }
 
-DXC validation failure:
-hlsl.hlsl:3:31: error: use of undeclared identifier 'u'
-  matrix<float16_t, 2, 2> x = u;
-                              ^
-hlsl.hlsl:4:3: error: use of undeclared identifier 's'
-  s = x;
-  ^
-
diff --git a/test/tint/buffer/uniform/types/mat2x2_f16.wgsl.expected.ir.fxc.hlsl b/test/tint/buffer/uniform/types/mat2x2_f16.wgsl.expected.ir.fxc.hlsl
index 6e41efc..f6923d6 100644
--- a/test/tint/buffer/uniform/types/mat2x2_f16.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/buffer/uniform/types/mat2x2_f16.wgsl.expected.ir.fxc.hlsl
@@ -1,8 +1,37 @@
 SKIP: FAILED
 
+
+cbuffer cbuffer_u : register(b0) {
+  uint4 u[1];
+};
+RWByteAddressBuffer s : register(u1);
+void v_1(uint offset, matrix<float16_t, 2, 2> obj) {
+  s.Store<vector<float16_t, 2> >((offset + 0u), obj[0u]);
+  s.Store<vector<float16_t, 2> >((offset + 4u), obj[1u]);
+}
+
+vector<float16_t, 2> tint_bitcast_to_f16(uint src) {
+  uint v = src;
+  float t_low = f16tof32((v & 65535u));
+  float t_high = f16tof32(((v >> 16u) & 65535u));
+  float16_t v_2 = float16_t(t_low);
+  return vector<float16_t, 2>(v_2, float16_t(t_high));
+}
+
+matrix<float16_t, 2, 2> v_3(uint start_byte_offset) {
+  uint4 v_4 = u[(start_byte_offset / 16u)];
+  vector<float16_t, 2> v_5 = tint_bitcast_to_f16((((((start_byte_offset % 16u) / 4u) == 2u)) ? (v_4.z) : (v_4.x)));
+  uint4 v_6 = u[((4u + start_byte_offset) / 16u)];
+  return matrix<float16_t, 2, 2>(v_5, tint_bitcast_to_f16(((((((4u + start_byte_offset) % 16u) / 4u) == 2u)) ? (v_6.z) : (v_6.x))));
+}
+
 [numthreads(1, 1, 1)]
 void main() {
-  matrix<float16_t, 2, 2> x = u;
-  s = x;
+  matrix<float16_t, 2, 2> x = v_3(0u);
+  v_1(0u, x);
 }
 
+FXC validation failure:
+c:\src\dawn\Shader@0x000001F434714760(6,30-38): error X3000: syntax error: unexpected token 'float16_t'
+c:\src\dawn\Shader@0x000001F434714760(7,3-9): error X3018: invalid subscript 'Store'
+
diff --git a/test/tint/buffer/uniform/types/mat2x2_f32.wgsl.expected.ir.dxc.hlsl b/test/tint/buffer/uniform/types/mat2x2_f32.wgsl.expected.ir.dxc.hlsl
index e274d5e..f86ca89 100644
--- a/test/tint/buffer/uniform/types/mat2x2_f32.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/buffer/uniform/types/mat2x2_f32.wgsl.expected.ir.dxc.hlsl
@@ -1,16 +1,23 @@
-SKIP: FAILED
+
+cbuffer cbuffer_u : register(b0) {
+  uint4 u[1];
+};
+RWByteAddressBuffer s : register(u1);
+void v(uint offset, float2x2 obj) {
+  s.Store2((offset + 0u), asuint(obj[0u]));
+  s.Store2((offset + 8u), asuint(obj[1u]));
+}
+
+float2x2 v_1(uint start_byte_offset) {
+  uint4 v_2 = u[(start_byte_offset / 16u)];
+  float2 v_3 = asfloat((((((start_byte_offset % 16u) / 4u) == 2u)) ? (v_2.zw) : (v_2.xy)));
+  uint4 v_4 = u[((8u + start_byte_offset) / 16u)];
+  return float2x2(v_3, asfloat(((((((8u + start_byte_offset) % 16u) / 4u) == 2u)) ? (v_4.zw) : (v_4.xy))));
+}
 
 [numthreads(1, 1, 1)]
 void main() {
-  float2x2 x = u;
-  s = x;
+  float2x2 x = v_1(0u);
+  v(0u, x);
 }
 
-DXC validation failure:
-hlsl.hlsl:3:16: error: use of undeclared identifier 'u'
-  float2x2 x = u;
-               ^
-hlsl.hlsl:4:3: error: use of undeclared identifier 's'
-  s = x;
-  ^
-
diff --git a/test/tint/buffer/uniform/types/mat2x2_f32.wgsl.expected.ir.fxc.hlsl b/test/tint/buffer/uniform/types/mat2x2_f32.wgsl.expected.ir.fxc.hlsl
index 4631c1d..f86ca89 100644
--- a/test/tint/buffer/uniform/types/mat2x2_f32.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/buffer/uniform/types/mat2x2_f32.wgsl.expected.ir.fxc.hlsl
@@ -1,8 +1,23 @@
-SKIP: FAILED
+
+cbuffer cbuffer_u : register(b0) {
+  uint4 u[1];
+};
+RWByteAddressBuffer s : register(u1);
+void v(uint offset, float2x2 obj) {
+  s.Store2((offset + 0u), asuint(obj[0u]));
+  s.Store2((offset + 8u), asuint(obj[1u]));
+}
+
+float2x2 v_1(uint start_byte_offset) {
+  uint4 v_2 = u[(start_byte_offset / 16u)];
+  float2 v_3 = asfloat((((((start_byte_offset % 16u) / 4u) == 2u)) ? (v_2.zw) : (v_2.xy)));
+  uint4 v_4 = u[((8u + start_byte_offset) / 16u)];
+  return float2x2(v_3, asfloat(((((((8u + start_byte_offset) % 16u) / 4u) == 2u)) ? (v_4.zw) : (v_4.xy))));
+}
 
 [numthreads(1, 1, 1)]
 void main() {
-  float2x2 x = u;
-  s = x;
+  float2x2 x = v_1(0u);
+  v(0u, x);
 }
 
diff --git a/test/tint/buffer/uniform/types/mat2x3_f16.wgsl.expected.ir.dxc.hlsl b/test/tint/buffer/uniform/types/mat2x3_f16.wgsl.expected.ir.dxc.hlsl
index ba01e53..b75cd09 100644
--- a/test/tint/buffer/uniform/types/mat2x3_f16.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/buffer/uniform/types/mat2x3_f16.wgsl.expected.ir.dxc.hlsl
@@ -1,16 +1,33 @@
-SKIP: FAILED
+
+cbuffer cbuffer_u : register(b0) {
+  uint4 u[1];
+};
+RWByteAddressBuffer s : register(u1);
+void v_1(uint offset, matrix<float16_t, 2, 3> obj) {
+  s.Store<vector<float16_t, 3> >((offset + 0u), obj[0u]);
+  s.Store<vector<float16_t, 3> >((offset + 8u), obj[1u]);
+}
+
+vector<float16_t, 4> tint_bitcast_to_f16(uint4 src) {
+  uint4 v = src;
+  uint4 mask = (65535u).xxxx;
+  uint4 shift = (16u).xxxx;
+  float4 t_low = f16tof32((v & mask));
+  float4 t_high = f16tof32(((v >> shift) & mask));
+  float16_t v_2 = float16_t(t_low.x);
+  float16_t v_3 = float16_t(t_high.x);
+  float16_t v_4 = float16_t(t_low.y);
+  return vector<float16_t, 4>(v_2, v_3, v_4, float16_t(t_high.y));
+}
+
+matrix<float16_t, 2, 3> v_5(uint start_byte_offset) {
+  vector<float16_t, 3> v_6 = tint_bitcast_to_f16(u[(start_byte_offset / 16u)]).xyz;
+  return matrix<float16_t, 2, 3>(v_6, tint_bitcast_to_f16(u[((8u + start_byte_offset) / 16u)]).xyz);
+}
 
 [numthreads(1, 1, 1)]
 void main() {
-  matrix<float16_t, 2, 3> x = u;
-  s = x;
+  matrix<float16_t, 2, 3> x = v_5(0u);
+  v_1(0u, x);
 }
 
-DXC validation failure:
-hlsl.hlsl:3:31: error: use of undeclared identifier 'u'
-  matrix<float16_t, 2, 3> x = u;
-                              ^
-hlsl.hlsl:4:3: error: use of undeclared identifier 's'
-  s = x;
-  ^
-
diff --git a/test/tint/buffer/uniform/types/mat2x3_f16.wgsl.expected.ir.fxc.hlsl b/test/tint/buffer/uniform/types/mat2x3_f16.wgsl.expected.ir.fxc.hlsl
index 9ae0c3b..eea10fb 100644
--- a/test/tint/buffer/uniform/types/mat2x3_f16.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/buffer/uniform/types/mat2x3_f16.wgsl.expected.ir.fxc.hlsl
@@ -1,8 +1,39 @@
 SKIP: FAILED
 
+
+cbuffer cbuffer_u : register(b0) {
+  uint4 u[1];
+};
+RWByteAddressBuffer s : register(u1);
+void v_1(uint offset, matrix<float16_t, 2, 3> obj) {
+  s.Store<vector<float16_t, 3> >((offset + 0u), obj[0u]);
+  s.Store<vector<float16_t, 3> >((offset + 8u), obj[1u]);
+}
+
+vector<float16_t, 4> tint_bitcast_to_f16(uint4 src) {
+  uint4 v = src;
+  uint4 mask = (65535u).xxxx;
+  uint4 shift = (16u).xxxx;
+  float4 t_low = f16tof32((v & mask));
+  float4 t_high = f16tof32(((v >> shift) & mask));
+  float16_t v_2 = float16_t(t_low.x);
+  float16_t v_3 = float16_t(t_high.x);
+  float16_t v_4 = float16_t(t_low.y);
+  return vector<float16_t, 4>(v_2, v_3, v_4, float16_t(t_high.y));
+}
+
+matrix<float16_t, 2, 3> v_5(uint start_byte_offset) {
+  vector<float16_t, 3> v_6 = tint_bitcast_to_f16(u[(start_byte_offset / 16u)]).xyz;
+  return matrix<float16_t, 2, 3>(v_6, tint_bitcast_to_f16(u[((8u + start_byte_offset) / 16u)]).xyz);
+}
+
 [numthreads(1, 1, 1)]
 void main() {
-  matrix<float16_t, 2, 3> x = u;
-  s = x;
+  matrix<float16_t, 2, 3> x = v_5(0u);
+  v_1(0u, x);
 }
 
+FXC validation failure:
+c:\src\dawn\Shader@0x000001E1CBF645B0(6,30-38): error X3000: syntax error: unexpected token 'float16_t'
+c:\src\dawn\Shader@0x000001E1CBF645B0(7,3-9): error X3018: invalid subscript 'Store'
+
diff --git a/test/tint/buffer/uniform/types/mat2x3_f32.wgsl.expected.ir.dxc.hlsl b/test/tint/buffer/uniform/types/mat2x3_f32.wgsl.expected.ir.dxc.hlsl
index 7552629..851fb87 100644
--- a/test/tint/buffer/uniform/types/mat2x3_f32.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/buffer/uniform/types/mat2x3_f32.wgsl.expected.ir.dxc.hlsl
@@ -1,16 +1,21 @@
-SKIP: FAILED
+
+cbuffer cbuffer_u : register(b0) {
+  uint4 u[2];
+};
+RWByteAddressBuffer s : register(u1);
+void v(uint offset, float2x3 obj) {
+  s.Store3((offset + 0u), asuint(obj[0u]));
+  s.Store3((offset + 16u), asuint(obj[1u]));
+}
+
+float2x3 v_1(uint start_byte_offset) {
+  float3 v_2 = asfloat(u[(start_byte_offset / 16u)].xyz);
+  return float2x3(v_2, asfloat(u[((16u + start_byte_offset) / 16u)].xyz));
+}
 
 [numthreads(1, 1, 1)]
 void main() {
-  float2x3 x = u;
-  s = x;
+  float2x3 x = v_1(0u);
+  v(0u, x);
 }
 
-DXC validation failure:
-hlsl.hlsl:3:16: error: use of undeclared identifier 'u'
-  float2x3 x = u;
-               ^
-hlsl.hlsl:4:3: error: use of undeclared identifier 's'
-  s = x;
-  ^
-
diff --git a/test/tint/buffer/uniform/types/mat2x3_f32.wgsl.expected.ir.fxc.hlsl b/test/tint/buffer/uniform/types/mat2x3_f32.wgsl.expected.ir.fxc.hlsl
index 316a4c4..851fb87 100644
--- a/test/tint/buffer/uniform/types/mat2x3_f32.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/buffer/uniform/types/mat2x3_f32.wgsl.expected.ir.fxc.hlsl
@@ -1,8 +1,21 @@
-SKIP: FAILED
+
+cbuffer cbuffer_u : register(b0) {
+  uint4 u[2];
+};
+RWByteAddressBuffer s : register(u1);
+void v(uint offset, float2x3 obj) {
+  s.Store3((offset + 0u), asuint(obj[0u]));
+  s.Store3((offset + 16u), asuint(obj[1u]));
+}
+
+float2x3 v_1(uint start_byte_offset) {
+  float3 v_2 = asfloat(u[(start_byte_offset / 16u)].xyz);
+  return float2x3(v_2, asfloat(u[((16u + start_byte_offset) / 16u)].xyz));
+}
 
 [numthreads(1, 1, 1)]
 void main() {
-  float2x3 x = u;
-  s = x;
+  float2x3 x = v_1(0u);
+  v(0u, x);
 }
 
diff --git a/test/tint/buffer/uniform/types/mat2x4_f16.wgsl.expected.ir.dxc.hlsl b/test/tint/buffer/uniform/types/mat2x4_f16.wgsl.expected.ir.dxc.hlsl
index ab37545..86d24b4 100644
--- a/test/tint/buffer/uniform/types/mat2x4_f16.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/buffer/uniform/types/mat2x4_f16.wgsl.expected.ir.dxc.hlsl
@@ -1,16 +1,33 @@
-SKIP: FAILED
+
+cbuffer cbuffer_u : register(b0) {
+  uint4 u[1];
+};
+RWByteAddressBuffer s : register(u1);
+void v_1(uint offset, matrix<float16_t, 2, 4> obj) {
+  s.Store<vector<float16_t, 4> >((offset + 0u), obj[0u]);
+  s.Store<vector<float16_t, 4> >((offset + 8u), obj[1u]);
+}
+
+vector<float16_t, 4> tint_bitcast_to_f16(uint4 src) {
+  uint4 v = src;
+  uint4 mask = (65535u).xxxx;
+  uint4 shift = (16u).xxxx;
+  float4 t_low = f16tof32((v & mask));
+  float4 t_high = f16tof32(((v >> shift) & mask));
+  float16_t v_2 = float16_t(t_low.x);
+  float16_t v_3 = float16_t(t_high.x);
+  float16_t v_4 = float16_t(t_low.y);
+  return vector<float16_t, 4>(v_2, v_3, v_4, float16_t(t_high.y));
+}
+
+matrix<float16_t, 2, 4> v_5(uint start_byte_offset) {
+  vector<float16_t, 4> v_6 = tint_bitcast_to_f16(u[(start_byte_offset / 16u)]);
+  return matrix<float16_t, 2, 4>(v_6, tint_bitcast_to_f16(u[((8u + start_byte_offset) / 16u)]));
+}
 
 [numthreads(1, 1, 1)]
 void main() {
-  matrix<float16_t, 2, 4> x = u;
-  s = x;
+  matrix<float16_t, 2, 4> x = v_5(0u);
+  v_1(0u, x);
 }
 
-DXC validation failure:
-hlsl.hlsl:3:31: error: use of undeclared identifier 'u'
-  matrix<float16_t, 2, 4> x = u;
-                              ^
-hlsl.hlsl:4:3: error: use of undeclared identifier 's'
-  s = x;
-  ^
-
diff --git a/test/tint/buffer/uniform/types/mat2x4_f16.wgsl.expected.ir.fxc.hlsl b/test/tint/buffer/uniform/types/mat2x4_f16.wgsl.expected.ir.fxc.hlsl
index ec4aca4..3a5279c 100644
--- a/test/tint/buffer/uniform/types/mat2x4_f16.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/buffer/uniform/types/mat2x4_f16.wgsl.expected.ir.fxc.hlsl
@@ -1,8 +1,39 @@
 SKIP: FAILED
 
+
+cbuffer cbuffer_u : register(b0) {
+  uint4 u[1];
+};
+RWByteAddressBuffer s : register(u1);
+void v_1(uint offset, matrix<float16_t, 2, 4> obj) {
+  s.Store<vector<float16_t, 4> >((offset + 0u), obj[0u]);
+  s.Store<vector<float16_t, 4> >((offset + 8u), obj[1u]);
+}
+
+vector<float16_t, 4> tint_bitcast_to_f16(uint4 src) {
+  uint4 v = src;
+  uint4 mask = (65535u).xxxx;
+  uint4 shift = (16u).xxxx;
+  float4 t_low = f16tof32((v & mask));
+  float4 t_high = f16tof32(((v >> shift) & mask));
+  float16_t v_2 = float16_t(t_low.x);
+  float16_t v_3 = float16_t(t_high.x);
+  float16_t v_4 = float16_t(t_low.y);
+  return vector<float16_t, 4>(v_2, v_3, v_4, float16_t(t_high.y));
+}
+
+matrix<float16_t, 2, 4> v_5(uint start_byte_offset) {
+  vector<float16_t, 4> v_6 = tint_bitcast_to_f16(u[(start_byte_offset / 16u)]);
+  return matrix<float16_t, 2, 4>(v_6, tint_bitcast_to_f16(u[((8u + start_byte_offset) / 16u)]));
+}
+
 [numthreads(1, 1, 1)]
 void main() {
-  matrix<float16_t, 2, 4> x = u;
-  s = x;
+  matrix<float16_t, 2, 4> x = v_5(0u);
+  v_1(0u, x);
 }
 
+FXC validation failure:
+c:\src\dawn\Shader@0x0000024026A459D0(6,30-38): error X3000: syntax error: unexpected token 'float16_t'
+c:\src\dawn\Shader@0x0000024026A459D0(7,3-9): error X3018: invalid subscript 'Store'
+
diff --git a/test/tint/buffer/uniform/types/mat2x4_f32.wgsl.expected.ir.dxc.hlsl b/test/tint/buffer/uniform/types/mat2x4_f32.wgsl.expected.ir.dxc.hlsl
index 9535a96..cd56bd8 100644
--- a/test/tint/buffer/uniform/types/mat2x4_f32.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/buffer/uniform/types/mat2x4_f32.wgsl.expected.ir.dxc.hlsl
@@ -1,16 +1,21 @@
-SKIP: FAILED
+
+cbuffer cbuffer_u : register(b0) {
+  uint4 u[2];
+};
+RWByteAddressBuffer s : register(u1);
+void v(uint offset, float2x4 obj) {
+  s.Store4((offset + 0u), asuint(obj[0u]));
+  s.Store4((offset + 16u), asuint(obj[1u]));
+}
+
+float2x4 v_1(uint start_byte_offset) {
+  float4 v_2 = asfloat(u[(start_byte_offset / 16u)]);
+  return float2x4(v_2, asfloat(u[((16u + start_byte_offset) / 16u)]));
+}
 
 [numthreads(1, 1, 1)]
 void main() {
-  float2x4 x = u;
-  s = x;
+  float2x4 x = v_1(0u);
+  v(0u, x);
 }
 
-DXC validation failure:
-hlsl.hlsl:3:16: error: use of undeclared identifier 'u'
-  float2x4 x = u;
-               ^
-hlsl.hlsl:4:3: error: use of undeclared identifier 's'
-  s = x;
-  ^
-
diff --git a/test/tint/buffer/uniform/types/mat2x4_f32.wgsl.expected.ir.fxc.hlsl b/test/tint/buffer/uniform/types/mat2x4_f32.wgsl.expected.ir.fxc.hlsl
index e42c31d..cd56bd8 100644
--- a/test/tint/buffer/uniform/types/mat2x4_f32.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/buffer/uniform/types/mat2x4_f32.wgsl.expected.ir.fxc.hlsl
@@ -1,8 +1,21 @@
-SKIP: FAILED
+
+cbuffer cbuffer_u : register(b0) {
+  uint4 u[2];
+};
+RWByteAddressBuffer s : register(u1);
+void v(uint offset, float2x4 obj) {
+  s.Store4((offset + 0u), asuint(obj[0u]));
+  s.Store4((offset + 16u), asuint(obj[1u]));
+}
+
+float2x4 v_1(uint start_byte_offset) {
+  float4 v_2 = asfloat(u[(start_byte_offset / 16u)]);
+  return float2x4(v_2, asfloat(u[((16u + start_byte_offset) / 16u)]));
+}
 
 [numthreads(1, 1, 1)]
 void main() {
-  float2x4 x = u;
-  s = x;
+  float2x4 x = v_1(0u);
+  v(0u, x);
 }
 
diff --git a/test/tint/buffer/uniform/types/mat3x2_f16.wgsl.expected.ir.dxc.hlsl b/test/tint/buffer/uniform/types/mat3x2_f16.wgsl.expected.ir.dxc.hlsl
index 91101a6..4f78aec 100644
--- a/test/tint/buffer/uniform/types/mat3x2_f16.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/buffer/uniform/types/mat3x2_f16.wgsl.expected.ir.dxc.hlsl
@@ -1,16 +1,34 @@
-SKIP: FAILED
+
+cbuffer cbuffer_u : register(b0) {
+  uint4 u[1];
+};
+RWByteAddressBuffer s : register(u1);
+void v_1(uint offset, matrix<float16_t, 3, 2> obj) {
+  s.Store<vector<float16_t, 2> >((offset + 0u), obj[0u]);
+  s.Store<vector<float16_t, 2> >((offset + 4u), obj[1u]);
+  s.Store<vector<float16_t, 2> >((offset + 8u), obj[2u]);
+}
+
+vector<float16_t, 2> tint_bitcast_to_f16(uint src) {
+  uint v = src;
+  float t_low = f16tof32((v & 65535u));
+  float t_high = f16tof32(((v >> 16u) & 65535u));
+  float16_t v_2 = float16_t(t_low);
+  return vector<float16_t, 2>(v_2, float16_t(t_high));
+}
+
+matrix<float16_t, 3, 2> v_3(uint start_byte_offset) {
+  uint4 v_4 = u[(start_byte_offset / 16u)];
+  vector<float16_t, 2> v_5 = tint_bitcast_to_f16((((((start_byte_offset % 16u) / 4u) == 2u)) ? (v_4.z) : (v_4.x)));
+  uint4 v_6 = u[((4u + start_byte_offset) / 16u)];
+  vector<float16_t, 2> v_7 = tint_bitcast_to_f16(((((((4u + start_byte_offset) % 16u) / 4u) == 2u)) ? (v_6.z) : (v_6.x)));
+  uint4 v_8 = u[((8u + start_byte_offset) / 16u)];
+  return matrix<float16_t, 3, 2>(v_5, v_7, tint_bitcast_to_f16(((((((8u + start_byte_offset) % 16u) / 4u) == 2u)) ? (v_8.z) : (v_8.x))));
+}
 
 [numthreads(1, 1, 1)]
 void main() {
-  matrix<float16_t, 3, 2> x = u;
-  s = x;
+  matrix<float16_t, 3, 2> x = v_3(0u);
+  v_1(0u, x);
 }
 
-DXC validation failure:
-hlsl.hlsl:3:31: error: use of undeclared identifier 'u'
-  matrix<float16_t, 3, 2> x = u;
-                              ^
-hlsl.hlsl:4:3: error: use of undeclared identifier 's'
-  s = x;
-  ^
-
diff --git a/test/tint/buffer/uniform/types/mat3x2_f16.wgsl.expected.ir.fxc.hlsl b/test/tint/buffer/uniform/types/mat3x2_f16.wgsl.expected.ir.fxc.hlsl
index f4ef227..289e79d 100644
--- a/test/tint/buffer/uniform/types/mat3x2_f16.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/buffer/uniform/types/mat3x2_f16.wgsl.expected.ir.fxc.hlsl
@@ -1,8 +1,40 @@
 SKIP: FAILED
 
+
+cbuffer cbuffer_u : register(b0) {
+  uint4 u[1];
+};
+RWByteAddressBuffer s : register(u1);
+void v_1(uint offset, matrix<float16_t, 3, 2> obj) {
+  s.Store<vector<float16_t, 2> >((offset + 0u), obj[0u]);
+  s.Store<vector<float16_t, 2> >((offset + 4u), obj[1u]);
+  s.Store<vector<float16_t, 2> >((offset + 8u), obj[2u]);
+}
+
+vector<float16_t, 2> tint_bitcast_to_f16(uint src) {
+  uint v = src;
+  float t_low = f16tof32((v & 65535u));
+  float t_high = f16tof32(((v >> 16u) & 65535u));
+  float16_t v_2 = float16_t(t_low);
+  return vector<float16_t, 2>(v_2, float16_t(t_high));
+}
+
+matrix<float16_t, 3, 2> v_3(uint start_byte_offset) {
+  uint4 v_4 = u[(start_byte_offset / 16u)];
+  vector<float16_t, 2> v_5 = tint_bitcast_to_f16((((((start_byte_offset % 16u) / 4u) == 2u)) ? (v_4.z) : (v_4.x)));
+  uint4 v_6 = u[((4u + start_byte_offset) / 16u)];
+  vector<float16_t, 2> v_7 = tint_bitcast_to_f16(((((((4u + start_byte_offset) % 16u) / 4u) == 2u)) ? (v_6.z) : (v_6.x)));
+  uint4 v_8 = u[((8u + start_byte_offset) / 16u)];
+  return matrix<float16_t, 3, 2>(v_5, v_7, tint_bitcast_to_f16(((((((8u + start_byte_offset) % 16u) / 4u) == 2u)) ? (v_8.z) : (v_8.x))));
+}
+
 [numthreads(1, 1, 1)]
 void main() {
-  matrix<float16_t, 3, 2> x = u;
-  s = x;
+  matrix<float16_t, 3, 2> x = v_3(0u);
+  v_1(0u, x);
 }
 
+FXC validation failure:
+c:\src\dawn\Shader@0x000001CB0EC36800(6,30-38): error X3000: syntax error: unexpected token 'float16_t'
+c:\src\dawn\Shader@0x000001CB0EC36800(7,3-9): error X3018: invalid subscript 'Store'
+
diff --git a/test/tint/buffer/uniform/types/mat3x2_f32.wgsl.expected.ir.dxc.hlsl b/test/tint/buffer/uniform/types/mat3x2_f32.wgsl.expected.ir.dxc.hlsl
index b69d002..e72cdbd 100644
--- a/test/tint/buffer/uniform/types/mat3x2_f32.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/buffer/uniform/types/mat3x2_f32.wgsl.expected.ir.dxc.hlsl
@@ -1,16 +1,26 @@
-SKIP: FAILED
+
+cbuffer cbuffer_u : register(b0) {
+  uint4 u[2];
+};
+RWByteAddressBuffer s : register(u1);
+void v(uint offset, float3x2 obj) {
+  s.Store2((offset + 0u), asuint(obj[0u]));
+  s.Store2((offset + 8u), asuint(obj[1u]));
+  s.Store2((offset + 16u), asuint(obj[2u]));
+}
+
+float3x2 v_1(uint start_byte_offset) {
+  uint4 v_2 = u[(start_byte_offset / 16u)];
+  float2 v_3 = asfloat((((((start_byte_offset % 16u) / 4u) == 2u)) ? (v_2.zw) : (v_2.xy)));
+  uint4 v_4 = u[((8u + start_byte_offset) / 16u)];
+  float2 v_5 = asfloat(((((((8u + start_byte_offset) % 16u) / 4u) == 2u)) ? (v_4.zw) : (v_4.xy)));
+  uint4 v_6 = u[((16u + start_byte_offset) / 16u)];
+  return float3x2(v_3, v_5, asfloat(((((((16u + start_byte_offset) % 16u) / 4u) == 2u)) ? (v_6.zw) : (v_6.xy))));
+}
 
 [numthreads(1, 1, 1)]
 void main() {
-  float3x2 x = u;
-  s = x;
+  float3x2 x = v_1(0u);
+  v(0u, x);
 }
 
-DXC validation failure:
-hlsl.hlsl:3:16: error: use of undeclared identifier 'u'
-  float3x2 x = u;
-               ^
-hlsl.hlsl:4:3: error: use of undeclared identifier 's'
-  s = x;
-  ^
-
diff --git a/test/tint/buffer/uniform/types/mat3x2_f32.wgsl.expected.ir.fxc.hlsl b/test/tint/buffer/uniform/types/mat3x2_f32.wgsl.expected.ir.fxc.hlsl
index b03dff4..e72cdbd 100644
--- a/test/tint/buffer/uniform/types/mat3x2_f32.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/buffer/uniform/types/mat3x2_f32.wgsl.expected.ir.fxc.hlsl
@@ -1,8 +1,26 @@
-SKIP: FAILED
+
+cbuffer cbuffer_u : register(b0) {
+  uint4 u[2];
+};
+RWByteAddressBuffer s : register(u1);
+void v(uint offset, float3x2 obj) {
+  s.Store2((offset + 0u), asuint(obj[0u]));
+  s.Store2((offset + 8u), asuint(obj[1u]));
+  s.Store2((offset + 16u), asuint(obj[2u]));
+}
+
+float3x2 v_1(uint start_byte_offset) {
+  uint4 v_2 = u[(start_byte_offset / 16u)];
+  float2 v_3 = asfloat((((((start_byte_offset % 16u) / 4u) == 2u)) ? (v_2.zw) : (v_2.xy)));
+  uint4 v_4 = u[((8u + start_byte_offset) / 16u)];
+  float2 v_5 = asfloat(((((((8u + start_byte_offset) % 16u) / 4u) == 2u)) ? (v_4.zw) : (v_4.xy)));
+  uint4 v_6 = u[((16u + start_byte_offset) / 16u)];
+  return float3x2(v_3, v_5, asfloat(((((((16u + start_byte_offset) % 16u) / 4u) == 2u)) ? (v_6.zw) : (v_6.xy))));
+}
 
 [numthreads(1, 1, 1)]
 void main() {
-  float3x2 x = u;
-  s = x;
+  float3x2 x = v_1(0u);
+  v(0u, x);
 }
 
diff --git a/test/tint/buffer/uniform/types/mat3x3_f16.wgsl.expected.ir.dxc.hlsl b/test/tint/buffer/uniform/types/mat3x3_f16.wgsl.expected.ir.dxc.hlsl
index e237565..8c50046 100644
--- a/test/tint/buffer/uniform/types/mat3x3_f16.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/buffer/uniform/types/mat3x3_f16.wgsl.expected.ir.dxc.hlsl
@@ -1,16 +1,35 @@
-SKIP: FAILED
+
+cbuffer cbuffer_u : register(b0) {
+  uint4 u[2];
+};
+RWByteAddressBuffer s : register(u1);
+void v_1(uint offset, matrix<float16_t, 3, 3> obj) {
+  s.Store<vector<float16_t, 3> >((offset + 0u), obj[0u]);
+  s.Store<vector<float16_t, 3> >((offset + 8u), obj[1u]);
+  s.Store<vector<float16_t, 3> >((offset + 16u), obj[2u]);
+}
+
+vector<float16_t, 4> tint_bitcast_to_f16(uint4 src) {
+  uint4 v = src;
+  uint4 mask = (65535u).xxxx;
+  uint4 shift = (16u).xxxx;
+  float4 t_low = f16tof32((v & mask));
+  float4 t_high = f16tof32(((v >> shift) & mask));
+  float16_t v_2 = float16_t(t_low.x);
+  float16_t v_3 = float16_t(t_high.x);
+  float16_t v_4 = float16_t(t_low.y);
+  return vector<float16_t, 4>(v_2, v_3, v_4, float16_t(t_high.y));
+}
+
+matrix<float16_t, 3, 3> v_5(uint start_byte_offset) {
+  vector<float16_t, 3> v_6 = tint_bitcast_to_f16(u[(start_byte_offset / 16u)]).xyz;
+  vector<float16_t, 3> v_7 = tint_bitcast_to_f16(u[((8u + start_byte_offset) / 16u)]).xyz;
+  return matrix<float16_t, 3, 3>(v_6, v_7, tint_bitcast_to_f16(u[((16u + start_byte_offset) / 16u)]).xyz);
+}
 
 [numthreads(1, 1, 1)]
 void main() {
-  matrix<float16_t, 3, 3> x = u;
-  s = x;
+  matrix<float16_t, 3, 3> x = v_5(0u);
+  v_1(0u, x);
 }
 
-DXC validation failure:
-hlsl.hlsl:3:31: error: use of undeclared identifier 'u'
-  matrix<float16_t, 3, 3> x = u;
-                              ^
-hlsl.hlsl:4:3: error: use of undeclared identifier 's'
-  s = x;
-  ^
-
diff --git a/test/tint/buffer/uniform/types/mat3x3_f16.wgsl.expected.ir.fxc.hlsl b/test/tint/buffer/uniform/types/mat3x3_f16.wgsl.expected.ir.fxc.hlsl
index bad56be..efa5190a 100644
--- a/test/tint/buffer/uniform/types/mat3x3_f16.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/buffer/uniform/types/mat3x3_f16.wgsl.expected.ir.fxc.hlsl
@@ -1,8 +1,41 @@
 SKIP: FAILED
 
+
+cbuffer cbuffer_u : register(b0) {
+  uint4 u[2];
+};
+RWByteAddressBuffer s : register(u1);
+void v_1(uint offset, matrix<float16_t, 3, 3> obj) {
+  s.Store<vector<float16_t, 3> >((offset + 0u), obj[0u]);
+  s.Store<vector<float16_t, 3> >((offset + 8u), obj[1u]);
+  s.Store<vector<float16_t, 3> >((offset + 16u), obj[2u]);
+}
+
+vector<float16_t, 4> tint_bitcast_to_f16(uint4 src) {
+  uint4 v = src;
+  uint4 mask = (65535u).xxxx;
+  uint4 shift = (16u).xxxx;
+  float4 t_low = f16tof32((v & mask));
+  float4 t_high = f16tof32(((v >> shift) & mask));
+  float16_t v_2 = float16_t(t_low.x);
+  float16_t v_3 = float16_t(t_high.x);
+  float16_t v_4 = float16_t(t_low.y);
+  return vector<float16_t, 4>(v_2, v_3, v_4, float16_t(t_high.y));
+}
+
+matrix<float16_t, 3, 3> v_5(uint start_byte_offset) {
+  vector<float16_t, 3> v_6 = tint_bitcast_to_f16(u[(start_byte_offset / 16u)]).xyz;
+  vector<float16_t, 3> v_7 = tint_bitcast_to_f16(u[((8u + start_byte_offset) / 16u)]).xyz;
+  return matrix<float16_t, 3, 3>(v_6, v_7, tint_bitcast_to_f16(u[((16u + start_byte_offset) / 16u)]).xyz);
+}
+
 [numthreads(1, 1, 1)]
 void main() {
-  matrix<float16_t, 3, 3> x = u;
-  s = x;
+  matrix<float16_t, 3, 3> x = v_5(0u);
+  v_1(0u, x);
 }
 
+FXC validation failure:
+c:\src\dawn\Shader@0x0000018AA5EE20E0(6,30-38): error X3000: syntax error: unexpected token 'float16_t'
+c:\src\dawn\Shader@0x0000018AA5EE20E0(7,3-9): error X3018: invalid subscript 'Store'
+
diff --git a/test/tint/buffer/uniform/types/mat3x3_f32.wgsl.expected.ir.dxc.hlsl b/test/tint/buffer/uniform/types/mat3x3_f32.wgsl.expected.ir.dxc.hlsl
index cc9f3b0..bee4ee7 100644
--- a/test/tint/buffer/uniform/types/mat3x3_f32.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/buffer/uniform/types/mat3x3_f32.wgsl.expected.ir.dxc.hlsl
@@ -1,16 +1,23 @@
-SKIP: FAILED
+
+cbuffer cbuffer_u : register(b0) {
+  uint4 u[3];
+};
+RWByteAddressBuffer s : register(u1);
+void v(uint offset, float3x3 obj) {
+  s.Store3((offset + 0u), asuint(obj[0u]));
+  s.Store3((offset + 16u), asuint(obj[1u]));
+  s.Store3((offset + 32u), asuint(obj[2u]));
+}
+
+float3x3 v_1(uint start_byte_offset) {
+  float3 v_2 = asfloat(u[(start_byte_offset / 16u)].xyz);
+  float3 v_3 = asfloat(u[((16u + start_byte_offset) / 16u)].xyz);
+  return float3x3(v_2, v_3, asfloat(u[((32u + start_byte_offset) / 16u)].xyz));
+}
 
 [numthreads(1, 1, 1)]
 void main() {
-  float3x3 x = u;
-  s = x;
+  float3x3 x = v_1(0u);
+  v(0u, x);
 }
 
-DXC validation failure:
-hlsl.hlsl:3:16: error: use of undeclared identifier 'u'
-  float3x3 x = u;
-               ^
-hlsl.hlsl:4:3: error: use of undeclared identifier 's'
-  s = x;
-  ^
-
diff --git a/test/tint/buffer/uniform/types/mat3x3_f32.wgsl.expected.ir.fxc.hlsl b/test/tint/buffer/uniform/types/mat3x3_f32.wgsl.expected.ir.fxc.hlsl
index 15a8c9a..bee4ee7 100644
--- a/test/tint/buffer/uniform/types/mat3x3_f32.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/buffer/uniform/types/mat3x3_f32.wgsl.expected.ir.fxc.hlsl
@@ -1,8 +1,23 @@
-SKIP: FAILED
+
+cbuffer cbuffer_u : register(b0) {
+  uint4 u[3];
+};
+RWByteAddressBuffer s : register(u1);
+void v(uint offset, float3x3 obj) {
+  s.Store3((offset + 0u), asuint(obj[0u]));
+  s.Store3((offset + 16u), asuint(obj[1u]));
+  s.Store3((offset + 32u), asuint(obj[2u]));
+}
+
+float3x3 v_1(uint start_byte_offset) {
+  float3 v_2 = asfloat(u[(start_byte_offset / 16u)].xyz);
+  float3 v_3 = asfloat(u[((16u + start_byte_offset) / 16u)].xyz);
+  return float3x3(v_2, v_3, asfloat(u[((32u + start_byte_offset) / 16u)].xyz));
+}
 
 [numthreads(1, 1, 1)]
 void main() {
-  float3x3 x = u;
-  s = x;
+  float3x3 x = v_1(0u);
+  v(0u, x);
 }
 
diff --git a/test/tint/buffer/uniform/types/mat3x4_f16.wgsl.expected.ir.dxc.hlsl b/test/tint/buffer/uniform/types/mat3x4_f16.wgsl.expected.ir.dxc.hlsl
index 2720f7f..f4ef167 100644
--- a/test/tint/buffer/uniform/types/mat3x4_f16.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/buffer/uniform/types/mat3x4_f16.wgsl.expected.ir.dxc.hlsl
@@ -1,16 +1,35 @@
-SKIP: FAILED
+
+cbuffer cbuffer_u : register(b0) {
+  uint4 u[2];
+};
+RWByteAddressBuffer s : register(u1);
+void v_1(uint offset, matrix<float16_t, 3, 4> obj) {
+  s.Store<vector<float16_t, 4> >((offset + 0u), obj[0u]);
+  s.Store<vector<float16_t, 4> >((offset + 8u), obj[1u]);
+  s.Store<vector<float16_t, 4> >((offset + 16u), obj[2u]);
+}
+
+vector<float16_t, 4> tint_bitcast_to_f16(uint4 src) {
+  uint4 v = src;
+  uint4 mask = (65535u).xxxx;
+  uint4 shift = (16u).xxxx;
+  float4 t_low = f16tof32((v & mask));
+  float4 t_high = f16tof32(((v >> shift) & mask));
+  float16_t v_2 = float16_t(t_low.x);
+  float16_t v_3 = float16_t(t_high.x);
+  float16_t v_4 = float16_t(t_low.y);
+  return vector<float16_t, 4>(v_2, v_3, v_4, float16_t(t_high.y));
+}
+
+matrix<float16_t, 3, 4> v_5(uint start_byte_offset) {
+  vector<float16_t, 4> v_6 = tint_bitcast_to_f16(u[(start_byte_offset / 16u)]);
+  vector<float16_t, 4> v_7 = tint_bitcast_to_f16(u[((8u + start_byte_offset) / 16u)]);
+  return matrix<float16_t, 3, 4>(v_6, v_7, tint_bitcast_to_f16(u[((16u + start_byte_offset) / 16u)]));
+}
 
 [numthreads(1, 1, 1)]
 void main() {
-  matrix<float16_t, 3, 4> x = u;
-  s = x;
+  matrix<float16_t, 3, 4> x = v_5(0u);
+  v_1(0u, x);
 }
 
-DXC validation failure:
-hlsl.hlsl:3:31: error: use of undeclared identifier 'u'
-  matrix<float16_t, 3, 4> x = u;
-                              ^
-hlsl.hlsl:4:3: error: use of undeclared identifier 's'
-  s = x;
-  ^
-
diff --git a/test/tint/buffer/uniform/types/mat3x4_f16.wgsl.expected.ir.fxc.hlsl b/test/tint/buffer/uniform/types/mat3x4_f16.wgsl.expected.ir.fxc.hlsl
index 953d767..283e2ad 100644
--- a/test/tint/buffer/uniform/types/mat3x4_f16.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/buffer/uniform/types/mat3x4_f16.wgsl.expected.ir.fxc.hlsl
@@ -1,8 +1,41 @@
 SKIP: FAILED
 
+
+cbuffer cbuffer_u : register(b0) {
+  uint4 u[2];
+};
+RWByteAddressBuffer s : register(u1);
+void v_1(uint offset, matrix<float16_t, 3, 4> obj) {
+  s.Store<vector<float16_t, 4> >((offset + 0u), obj[0u]);
+  s.Store<vector<float16_t, 4> >((offset + 8u), obj[1u]);
+  s.Store<vector<float16_t, 4> >((offset + 16u), obj[2u]);
+}
+
+vector<float16_t, 4> tint_bitcast_to_f16(uint4 src) {
+  uint4 v = src;
+  uint4 mask = (65535u).xxxx;
+  uint4 shift = (16u).xxxx;
+  float4 t_low = f16tof32((v & mask));
+  float4 t_high = f16tof32(((v >> shift) & mask));
+  float16_t v_2 = float16_t(t_low.x);
+  float16_t v_3 = float16_t(t_high.x);
+  float16_t v_4 = float16_t(t_low.y);
+  return vector<float16_t, 4>(v_2, v_3, v_4, float16_t(t_high.y));
+}
+
+matrix<float16_t, 3, 4> v_5(uint start_byte_offset) {
+  vector<float16_t, 4> v_6 = tint_bitcast_to_f16(u[(start_byte_offset / 16u)]);
+  vector<float16_t, 4> v_7 = tint_bitcast_to_f16(u[((8u + start_byte_offset) / 16u)]);
+  return matrix<float16_t, 3, 4>(v_6, v_7, tint_bitcast_to_f16(u[((16u + start_byte_offset) / 16u)]));
+}
+
 [numthreads(1, 1, 1)]
 void main() {
-  matrix<float16_t, 3, 4> x = u;
-  s = x;
+  matrix<float16_t, 3, 4> x = v_5(0u);
+  v_1(0u, x);
 }
 
+FXC validation failure:
+c:\src\dawn\Shader@0x000001811AB30090(6,30-38): error X3000: syntax error: unexpected token 'float16_t'
+c:\src\dawn\Shader@0x000001811AB30090(7,3-9): error X3018: invalid subscript 'Store'
+
diff --git a/test/tint/buffer/uniform/types/mat3x4_f32.wgsl.expected.ir.dxc.hlsl b/test/tint/buffer/uniform/types/mat3x4_f32.wgsl.expected.ir.dxc.hlsl
index e2b4c16..749d4b8 100644
--- a/test/tint/buffer/uniform/types/mat3x4_f32.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/buffer/uniform/types/mat3x4_f32.wgsl.expected.ir.dxc.hlsl
@@ -1,16 +1,23 @@
-SKIP: FAILED
+
+cbuffer cbuffer_u : register(b0) {
+  uint4 u[3];
+};
+RWByteAddressBuffer s : register(u1);
+void v(uint offset, float3x4 obj) {
+  s.Store4((offset + 0u), asuint(obj[0u]));
+  s.Store4((offset + 16u), asuint(obj[1u]));
+  s.Store4((offset + 32u), asuint(obj[2u]));
+}
+
+float3x4 v_1(uint start_byte_offset) {
+  float4 v_2 = asfloat(u[(start_byte_offset / 16u)]);
+  float4 v_3 = asfloat(u[((16u + start_byte_offset) / 16u)]);
+  return float3x4(v_2, v_3, asfloat(u[((32u + start_byte_offset) / 16u)]));
+}
 
 [numthreads(1, 1, 1)]
 void main() {
-  float3x4 x = u;
-  s = x;
+  float3x4 x = v_1(0u);
+  v(0u, x);
 }
 
-DXC validation failure:
-hlsl.hlsl:3:16: error: use of undeclared identifier 'u'
-  float3x4 x = u;
-               ^
-hlsl.hlsl:4:3: error: use of undeclared identifier 's'
-  s = x;
-  ^
-
diff --git a/test/tint/buffer/uniform/types/mat3x4_f32.wgsl.expected.ir.fxc.hlsl b/test/tint/buffer/uniform/types/mat3x4_f32.wgsl.expected.ir.fxc.hlsl
index e426ef3..749d4b8 100644
--- a/test/tint/buffer/uniform/types/mat3x4_f32.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/buffer/uniform/types/mat3x4_f32.wgsl.expected.ir.fxc.hlsl
@@ -1,8 +1,23 @@
-SKIP: FAILED
+
+cbuffer cbuffer_u : register(b0) {
+  uint4 u[3];
+};
+RWByteAddressBuffer s : register(u1);
+void v(uint offset, float3x4 obj) {
+  s.Store4((offset + 0u), asuint(obj[0u]));
+  s.Store4((offset + 16u), asuint(obj[1u]));
+  s.Store4((offset + 32u), asuint(obj[2u]));
+}
+
+float3x4 v_1(uint start_byte_offset) {
+  float4 v_2 = asfloat(u[(start_byte_offset / 16u)]);
+  float4 v_3 = asfloat(u[((16u + start_byte_offset) / 16u)]);
+  return float3x4(v_2, v_3, asfloat(u[((32u + start_byte_offset) / 16u)]));
+}
 
 [numthreads(1, 1, 1)]
 void main() {
-  float3x4 x = u;
-  s = x;
+  float3x4 x = v_1(0u);
+  v(0u, x);
 }
 
diff --git a/test/tint/buffer/uniform/types/mat4x2_f16.wgsl.expected.ir.dxc.hlsl b/test/tint/buffer/uniform/types/mat4x2_f16.wgsl.expected.ir.dxc.hlsl
index 53fca3f..8acb4f1 100644
--- a/test/tint/buffer/uniform/types/mat4x2_f16.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/buffer/uniform/types/mat4x2_f16.wgsl.expected.ir.dxc.hlsl
@@ -1,16 +1,37 @@
-SKIP: FAILED
+
+cbuffer cbuffer_u : register(b0) {
+  uint4 u[1];
+};
+RWByteAddressBuffer s : register(u1);
+void v_1(uint offset, matrix<float16_t, 4, 2> obj) {
+  s.Store<vector<float16_t, 2> >((offset + 0u), obj[0u]);
+  s.Store<vector<float16_t, 2> >((offset + 4u), obj[1u]);
+  s.Store<vector<float16_t, 2> >((offset + 8u), obj[2u]);
+  s.Store<vector<float16_t, 2> >((offset + 12u), obj[3u]);
+}
+
+vector<float16_t, 2> tint_bitcast_to_f16(uint src) {
+  uint v = src;
+  float t_low = f16tof32((v & 65535u));
+  float t_high = f16tof32(((v >> 16u) & 65535u));
+  float16_t v_2 = float16_t(t_low);
+  return vector<float16_t, 2>(v_2, float16_t(t_high));
+}
+
+matrix<float16_t, 4, 2> v_3(uint start_byte_offset) {
+  uint4 v_4 = u[(start_byte_offset / 16u)];
+  vector<float16_t, 2> v_5 = tint_bitcast_to_f16((((((start_byte_offset % 16u) / 4u) == 2u)) ? (v_4.z) : (v_4.x)));
+  uint4 v_6 = u[((4u + start_byte_offset) / 16u)];
+  vector<float16_t, 2> v_7 = tint_bitcast_to_f16(((((((4u + start_byte_offset) % 16u) / 4u) == 2u)) ? (v_6.z) : (v_6.x)));
+  uint4 v_8 = u[((8u + start_byte_offset) / 16u)];
+  vector<float16_t, 2> v_9 = tint_bitcast_to_f16(((((((8u + start_byte_offset) % 16u) / 4u) == 2u)) ? (v_8.z) : (v_8.x)));
+  uint4 v_10 = u[((12u + start_byte_offset) / 16u)];
+  return matrix<float16_t, 4, 2>(v_5, v_7, v_9, tint_bitcast_to_f16(((((((12u + start_byte_offset) % 16u) / 4u) == 2u)) ? (v_10.z) : (v_10.x))));
+}
 
 [numthreads(1, 1, 1)]
 void main() {
-  matrix<float16_t, 4, 2> x = u;
-  s = x;
+  matrix<float16_t, 4, 2> x = v_3(0u);
+  v_1(0u, x);
 }
 
-DXC validation failure:
-hlsl.hlsl:3:31: error: use of undeclared identifier 'u'
-  matrix<float16_t, 4, 2> x = u;
-                              ^
-hlsl.hlsl:4:3: error: use of undeclared identifier 's'
-  s = x;
-  ^
-
diff --git a/test/tint/buffer/uniform/types/mat4x2_f16.wgsl.expected.ir.fxc.hlsl b/test/tint/buffer/uniform/types/mat4x2_f16.wgsl.expected.ir.fxc.hlsl
index 2f84263..4621f3c 100644
--- a/test/tint/buffer/uniform/types/mat4x2_f16.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/buffer/uniform/types/mat4x2_f16.wgsl.expected.ir.fxc.hlsl
@@ -1,8 +1,43 @@
 SKIP: FAILED
 
+
+cbuffer cbuffer_u : register(b0) {
+  uint4 u[1];
+};
+RWByteAddressBuffer s : register(u1);
+void v_1(uint offset, matrix<float16_t, 4, 2> obj) {
+  s.Store<vector<float16_t, 2> >((offset + 0u), obj[0u]);
+  s.Store<vector<float16_t, 2> >((offset + 4u), obj[1u]);
+  s.Store<vector<float16_t, 2> >((offset + 8u), obj[2u]);
+  s.Store<vector<float16_t, 2> >((offset + 12u), obj[3u]);
+}
+
+vector<float16_t, 2> tint_bitcast_to_f16(uint src) {
+  uint v = src;
+  float t_low = f16tof32((v & 65535u));
+  float t_high = f16tof32(((v >> 16u) & 65535u));
+  float16_t v_2 = float16_t(t_low);
+  return vector<float16_t, 2>(v_2, float16_t(t_high));
+}
+
+matrix<float16_t, 4, 2> v_3(uint start_byte_offset) {
+  uint4 v_4 = u[(start_byte_offset / 16u)];
+  vector<float16_t, 2> v_5 = tint_bitcast_to_f16((((((start_byte_offset % 16u) / 4u) == 2u)) ? (v_4.z) : (v_4.x)));
+  uint4 v_6 = u[((4u + start_byte_offset) / 16u)];
+  vector<float16_t, 2> v_7 = tint_bitcast_to_f16(((((((4u + start_byte_offset) % 16u) / 4u) == 2u)) ? (v_6.z) : (v_6.x)));
+  uint4 v_8 = u[((8u + start_byte_offset) / 16u)];
+  vector<float16_t, 2> v_9 = tint_bitcast_to_f16(((((((8u + start_byte_offset) % 16u) / 4u) == 2u)) ? (v_8.z) : (v_8.x)));
+  uint4 v_10 = u[((12u + start_byte_offset) / 16u)];
+  return matrix<float16_t, 4, 2>(v_5, v_7, v_9, tint_bitcast_to_f16(((((((12u + start_byte_offset) % 16u) / 4u) == 2u)) ? (v_10.z) : (v_10.x))));
+}
+
 [numthreads(1, 1, 1)]
 void main() {
-  matrix<float16_t, 4, 2> x = u;
-  s = x;
+  matrix<float16_t, 4, 2> x = v_3(0u);
+  v_1(0u, x);
 }
 
+FXC validation failure:
+c:\src\dawn\Shader@0x00000248FAD31860(6,30-38): error X3000: syntax error: unexpected token 'float16_t'
+c:\src\dawn\Shader@0x00000248FAD31860(7,3-9): error X3018: invalid subscript 'Store'
+
diff --git a/test/tint/buffer/uniform/types/mat4x2_f32.wgsl.expected.ir.dxc.hlsl b/test/tint/buffer/uniform/types/mat4x2_f32.wgsl.expected.ir.dxc.hlsl
index daff434..b6d38b8 100644
--- a/test/tint/buffer/uniform/types/mat4x2_f32.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/buffer/uniform/types/mat4x2_f32.wgsl.expected.ir.dxc.hlsl
@@ -1,16 +1,29 @@
-SKIP: FAILED
+
+cbuffer cbuffer_u : register(b0) {
+  uint4 u[2];
+};
+RWByteAddressBuffer s : register(u1);
+void v(uint offset, float4x2 obj) {
+  s.Store2((offset + 0u), asuint(obj[0u]));
+  s.Store2((offset + 8u), asuint(obj[1u]));
+  s.Store2((offset + 16u), asuint(obj[2u]));
+  s.Store2((offset + 24u), asuint(obj[3u]));
+}
+
+float4x2 v_1(uint start_byte_offset) {
+  uint4 v_2 = u[(start_byte_offset / 16u)];
+  float2 v_3 = asfloat((((((start_byte_offset % 16u) / 4u) == 2u)) ? (v_2.zw) : (v_2.xy)));
+  uint4 v_4 = u[((8u + start_byte_offset) / 16u)];
+  float2 v_5 = asfloat(((((((8u + start_byte_offset) % 16u) / 4u) == 2u)) ? (v_4.zw) : (v_4.xy)));
+  uint4 v_6 = u[((16u + start_byte_offset) / 16u)];
+  float2 v_7 = asfloat(((((((16u + start_byte_offset) % 16u) / 4u) == 2u)) ? (v_6.zw) : (v_6.xy)));
+  uint4 v_8 = u[((24u + start_byte_offset) / 16u)];
+  return float4x2(v_3, v_5, v_7, asfloat(((((((24u + start_byte_offset) % 16u) / 4u) == 2u)) ? (v_8.zw) : (v_8.xy))));
+}
 
 [numthreads(1, 1, 1)]
 void main() {
-  float4x2 x = u;
-  s = x;
+  float4x2 x = v_1(0u);
+  v(0u, x);
 }
 
-DXC validation failure:
-hlsl.hlsl:3:16: error: use of undeclared identifier 'u'
-  float4x2 x = u;
-               ^
-hlsl.hlsl:4:3: error: use of undeclared identifier 's'
-  s = x;
-  ^
-
diff --git a/test/tint/buffer/uniform/types/mat4x2_f32.wgsl.expected.ir.fxc.hlsl b/test/tint/buffer/uniform/types/mat4x2_f32.wgsl.expected.ir.fxc.hlsl
index 74aeccb..b6d38b8 100644
--- a/test/tint/buffer/uniform/types/mat4x2_f32.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/buffer/uniform/types/mat4x2_f32.wgsl.expected.ir.fxc.hlsl
@@ -1,8 +1,29 @@
-SKIP: FAILED
+
+cbuffer cbuffer_u : register(b0) {
+  uint4 u[2];
+};
+RWByteAddressBuffer s : register(u1);
+void v(uint offset, float4x2 obj) {
+  s.Store2((offset + 0u), asuint(obj[0u]));
+  s.Store2((offset + 8u), asuint(obj[1u]));
+  s.Store2((offset + 16u), asuint(obj[2u]));
+  s.Store2((offset + 24u), asuint(obj[3u]));
+}
+
+float4x2 v_1(uint start_byte_offset) {
+  uint4 v_2 = u[(start_byte_offset / 16u)];
+  float2 v_3 = asfloat((((((start_byte_offset % 16u) / 4u) == 2u)) ? (v_2.zw) : (v_2.xy)));
+  uint4 v_4 = u[((8u + start_byte_offset) / 16u)];
+  float2 v_5 = asfloat(((((((8u + start_byte_offset) % 16u) / 4u) == 2u)) ? (v_4.zw) : (v_4.xy)));
+  uint4 v_6 = u[((16u + start_byte_offset) / 16u)];
+  float2 v_7 = asfloat(((((((16u + start_byte_offset) % 16u) / 4u) == 2u)) ? (v_6.zw) : (v_6.xy)));
+  uint4 v_8 = u[((24u + start_byte_offset) / 16u)];
+  return float4x2(v_3, v_5, v_7, asfloat(((((((24u + start_byte_offset) % 16u) / 4u) == 2u)) ? (v_8.zw) : (v_8.xy))));
+}
 
 [numthreads(1, 1, 1)]
 void main() {
-  float4x2 x = u;
-  s = x;
+  float4x2 x = v_1(0u);
+  v(0u, x);
 }
 
diff --git a/test/tint/buffer/uniform/types/mat4x3_f16.wgsl.expected.ir.dxc.hlsl b/test/tint/buffer/uniform/types/mat4x3_f16.wgsl.expected.ir.dxc.hlsl
index 0ae8f4d..d1c6745 100644
--- a/test/tint/buffer/uniform/types/mat4x3_f16.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/buffer/uniform/types/mat4x3_f16.wgsl.expected.ir.dxc.hlsl
@@ -1,16 +1,37 @@
-SKIP: FAILED
+
+cbuffer cbuffer_u : register(b0) {
+  uint4 u[2];
+};
+RWByteAddressBuffer s : register(u1);
+void v_1(uint offset, matrix<float16_t, 4, 3> obj) {
+  s.Store<vector<float16_t, 3> >((offset + 0u), obj[0u]);
+  s.Store<vector<float16_t, 3> >((offset + 8u), obj[1u]);
+  s.Store<vector<float16_t, 3> >((offset + 16u), obj[2u]);
+  s.Store<vector<float16_t, 3> >((offset + 24u), obj[3u]);
+}
+
+vector<float16_t, 4> tint_bitcast_to_f16(uint4 src) {
+  uint4 v = src;
+  uint4 mask = (65535u).xxxx;
+  uint4 shift = (16u).xxxx;
+  float4 t_low = f16tof32((v & mask));
+  float4 t_high = f16tof32(((v >> shift) & mask));
+  float16_t v_2 = float16_t(t_low.x);
+  float16_t v_3 = float16_t(t_high.x);
+  float16_t v_4 = float16_t(t_low.y);
+  return vector<float16_t, 4>(v_2, v_3, v_4, float16_t(t_high.y));
+}
+
+matrix<float16_t, 4, 3> v_5(uint start_byte_offset) {
+  vector<float16_t, 3> v_6 = tint_bitcast_to_f16(u[(start_byte_offset / 16u)]).xyz;
+  vector<float16_t, 3> v_7 = tint_bitcast_to_f16(u[((8u + start_byte_offset) / 16u)]).xyz;
+  vector<float16_t, 3> v_8 = tint_bitcast_to_f16(u[((16u + start_byte_offset) / 16u)]).xyz;
+  return matrix<float16_t, 4, 3>(v_6, v_7, v_8, tint_bitcast_to_f16(u[((24u + start_byte_offset) / 16u)]).xyz);
+}
 
 [numthreads(1, 1, 1)]
 void main() {
-  matrix<float16_t, 4, 3> x = u;
-  s = x;
+  matrix<float16_t, 4, 3> x = v_5(0u);
+  v_1(0u, x);
 }
 
-DXC validation failure:
-hlsl.hlsl:3:31: error: use of undeclared identifier 'u'
-  matrix<float16_t, 4, 3> x = u;
-                              ^
-hlsl.hlsl:4:3: error: use of undeclared identifier 's'
-  s = x;
-  ^
-
diff --git a/test/tint/buffer/uniform/types/mat4x3_f16.wgsl.expected.ir.fxc.hlsl b/test/tint/buffer/uniform/types/mat4x3_f16.wgsl.expected.ir.fxc.hlsl
index 2556b8d..1c30d38 100644
--- a/test/tint/buffer/uniform/types/mat4x3_f16.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/buffer/uniform/types/mat4x3_f16.wgsl.expected.ir.fxc.hlsl
@@ -1,8 +1,43 @@
 SKIP: FAILED
 
+
+cbuffer cbuffer_u : register(b0) {
+  uint4 u[2];
+};
+RWByteAddressBuffer s : register(u1);
+void v_1(uint offset, matrix<float16_t, 4, 3> obj) {
+  s.Store<vector<float16_t, 3> >((offset + 0u), obj[0u]);
+  s.Store<vector<float16_t, 3> >((offset + 8u), obj[1u]);
+  s.Store<vector<float16_t, 3> >((offset + 16u), obj[2u]);
+  s.Store<vector<float16_t, 3> >((offset + 24u), obj[3u]);
+}
+
+vector<float16_t, 4> tint_bitcast_to_f16(uint4 src) {
+  uint4 v = src;
+  uint4 mask = (65535u).xxxx;
+  uint4 shift = (16u).xxxx;
+  float4 t_low = f16tof32((v & mask));
+  float4 t_high = f16tof32(((v >> shift) & mask));
+  float16_t v_2 = float16_t(t_low.x);
+  float16_t v_3 = float16_t(t_high.x);
+  float16_t v_4 = float16_t(t_low.y);
+  return vector<float16_t, 4>(v_2, v_3, v_4, float16_t(t_high.y));
+}
+
+matrix<float16_t, 4, 3> v_5(uint start_byte_offset) {
+  vector<float16_t, 3> v_6 = tint_bitcast_to_f16(u[(start_byte_offset / 16u)]).xyz;
+  vector<float16_t, 3> v_7 = tint_bitcast_to_f16(u[((8u + start_byte_offset) / 16u)]).xyz;
+  vector<float16_t, 3> v_8 = tint_bitcast_to_f16(u[((16u + start_byte_offset) / 16u)]).xyz;
+  return matrix<float16_t, 4, 3>(v_6, v_7, v_8, tint_bitcast_to_f16(u[((24u + start_byte_offset) / 16u)]).xyz);
+}
+
 [numthreads(1, 1, 1)]
 void main() {
-  matrix<float16_t, 4, 3> x = u;
-  s = x;
+  matrix<float16_t, 4, 3> x = v_5(0u);
+  v_1(0u, x);
 }
 
+FXC validation failure:
+c:\src\dawn\Shader@0x000002D9B0E31830(6,30-38): error X3000: syntax error: unexpected token 'float16_t'
+c:\src\dawn\Shader@0x000002D9B0E31830(7,3-9): error X3018: invalid subscript 'Store'
+
diff --git a/test/tint/buffer/uniform/types/mat4x3_f32.wgsl.expected.ir.dxc.hlsl b/test/tint/buffer/uniform/types/mat4x3_f32.wgsl.expected.ir.dxc.hlsl
index 910d974..0171680 100644
--- a/test/tint/buffer/uniform/types/mat4x3_f32.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/buffer/uniform/types/mat4x3_f32.wgsl.expected.ir.dxc.hlsl
@@ -1,16 +1,25 @@
-SKIP: FAILED
+
+cbuffer cbuffer_u : register(b0) {
+  uint4 u[4];
+};
+RWByteAddressBuffer s : register(u1);
+void v(uint offset, float4x3 obj) {
+  s.Store3((offset + 0u), asuint(obj[0u]));
+  s.Store3((offset + 16u), asuint(obj[1u]));
+  s.Store3((offset + 32u), asuint(obj[2u]));
+  s.Store3((offset + 48u), asuint(obj[3u]));
+}
+
+float4x3 v_1(uint start_byte_offset) {
+  float3 v_2 = asfloat(u[(start_byte_offset / 16u)].xyz);
+  float3 v_3 = asfloat(u[((16u + start_byte_offset) / 16u)].xyz);
+  float3 v_4 = asfloat(u[((32u + start_byte_offset) / 16u)].xyz);
+  return float4x3(v_2, v_3, v_4, asfloat(u[((48u + start_byte_offset) / 16u)].xyz));
+}
 
 [numthreads(1, 1, 1)]
 void main() {
-  float4x3 x = u;
-  s = x;
+  float4x3 x = v_1(0u);
+  v(0u, x);
 }
 
-DXC validation failure:
-hlsl.hlsl:3:16: error: use of undeclared identifier 'u'
-  float4x3 x = u;
-               ^
-hlsl.hlsl:4:3: error: use of undeclared identifier 's'
-  s = x;
-  ^
-
diff --git a/test/tint/buffer/uniform/types/mat4x3_f32.wgsl.expected.ir.fxc.hlsl b/test/tint/buffer/uniform/types/mat4x3_f32.wgsl.expected.ir.fxc.hlsl
index 85a1fad..0171680 100644
--- a/test/tint/buffer/uniform/types/mat4x3_f32.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/buffer/uniform/types/mat4x3_f32.wgsl.expected.ir.fxc.hlsl
@@ -1,8 +1,25 @@
-SKIP: FAILED
+
+cbuffer cbuffer_u : register(b0) {
+  uint4 u[4];
+};
+RWByteAddressBuffer s : register(u1);
+void v(uint offset, float4x3 obj) {
+  s.Store3((offset + 0u), asuint(obj[0u]));
+  s.Store3((offset + 16u), asuint(obj[1u]));
+  s.Store3((offset + 32u), asuint(obj[2u]));
+  s.Store3((offset + 48u), asuint(obj[3u]));
+}
+
+float4x3 v_1(uint start_byte_offset) {
+  float3 v_2 = asfloat(u[(start_byte_offset / 16u)].xyz);
+  float3 v_3 = asfloat(u[((16u + start_byte_offset) / 16u)].xyz);
+  float3 v_4 = asfloat(u[((32u + start_byte_offset) / 16u)].xyz);
+  return float4x3(v_2, v_3, v_4, asfloat(u[((48u + start_byte_offset) / 16u)].xyz));
+}
 
 [numthreads(1, 1, 1)]
 void main() {
-  float4x3 x = u;
-  s = x;
+  float4x3 x = v_1(0u);
+  v(0u, x);
 }
 
diff --git a/test/tint/buffer/uniform/types/mat4x4_f16.wgsl.expected.ir.dxc.hlsl b/test/tint/buffer/uniform/types/mat4x4_f16.wgsl.expected.ir.dxc.hlsl
index e134564..ac0b195 100644
--- a/test/tint/buffer/uniform/types/mat4x4_f16.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/buffer/uniform/types/mat4x4_f16.wgsl.expected.ir.dxc.hlsl
@@ -1,16 +1,37 @@
-SKIP: FAILED
+
+cbuffer cbuffer_u : register(b0) {
+  uint4 u[2];
+};
+RWByteAddressBuffer s : register(u1);
+void v_1(uint offset, matrix<float16_t, 4, 4> obj) {
+  s.Store<vector<float16_t, 4> >((offset + 0u), obj[0u]);
+  s.Store<vector<float16_t, 4> >((offset + 8u), obj[1u]);
+  s.Store<vector<float16_t, 4> >((offset + 16u), obj[2u]);
+  s.Store<vector<float16_t, 4> >((offset + 24u), obj[3u]);
+}
+
+vector<float16_t, 4> tint_bitcast_to_f16(uint4 src) {
+  uint4 v = src;
+  uint4 mask = (65535u).xxxx;
+  uint4 shift = (16u).xxxx;
+  float4 t_low = f16tof32((v & mask));
+  float4 t_high = f16tof32(((v >> shift) & mask));
+  float16_t v_2 = float16_t(t_low.x);
+  float16_t v_3 = float16_t(t_high.x);
+  float16_t v_4 = float16_t(t_low.y);
+  return vector<float16_t, 4>(v_2, v_3, v_4, float16_t(t_high.y));
+}
+
+matrix<float16_t, 4, 4> v_5(uint start_byte_offset) {
+  vector<float16_t, 4> v_6 = tint_bitcast_to_f16(u[(start_byte_offset / 16u)]);
+  vector<float16_t, 4> v_7 = tint_bitcast_to_f16(u[((8u + start_byte_offset) / 16u)]);
+  vector<float16_t, 4> v_8 = tint_bitcast_to_f16(u[((16u + start_byte_offset) / 16u)]);
+  return matrix<float16_t, 4, 4>(v_6, v_7, v_8, tint_bitcast_to_f16(u[((24u + start_byte_offset) / 16u)]));
+}
 
 [numthreads(1, 1, 1)]
 void main() {
-  matrix<float16_t, 4, 4> x = u;
-  s = x;
+  matrix<float16_t, 4, 4> x = v_5(0u);
+  v_1(0u, x);
 }
 
-DXC validation failure:
-hlsl.hlsl:3:31: error: use of undeclared identifier 'u'
-  matrix<float16_t, 4, 4> x = u;
-                              ^
-hlsl.hlsl:4:3: error: use of undeclared identifier 's'
-  s = x;
-  ^
-
diff --git a/test/tint/buffer/uniform/types/mat4x4_f16.wgsl.expected.ir.fxc.hlsl b/test/tint/buffer/uniform/types/mat4x4_f16.wgsl.expected.ir.fxc.hlsl
index 72709a6..2e9d438 100644
--- a/test/tint/buffer/uniform/types/mat4x4_f16.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/buffer/uniform/types/mat4x4_f16.wgsl.expected.ir.fxc.hlsl
@@ -1,8 +1,43 @@
 SKIP: FAILED
 
+
+cbuffer cbuffer_u : register(b0) {
+  uint4 u[2];
+};
+RWByteAddressBuffer s : register(u1);
+void v_1(uint offset, matrix<float16_t, 4, 4> obj) {
+  s.Store<vector<float16_t, 4> >((offset + 0u), obj[0u]);
+  s.Store<vector<float16_t, 4> >((offset + 8u), obj[1u]);
+  s.Store<vector<float16_t, 4> >((offset + 16u), obj[2u]);
+  s.Store<vector<float16_t, 4> >((offset + 24u), obj[3u]);
+}
+
+vector<float16_t, 4> tint_bitcast_to_f16(uint4 src) {
+  uint4 v = src;
+  uint4 mask = (65535u).xxxx;
+  uint4 shift = (16u).xxxx;
+  float4 t_low = f16tof32((v & mask));
+  float4 t_high = f16tof32(((v >> shift) & mask));
+  float16_t v_2 = float16_t(t_low.x);
+  float16_t v_3 = float16_t(t_high.x);
+  float16_t v_4 = float16_t(t_low.y);
+  return vector<float16_t, 4>(v_2, v_3, v_4, float16_t(t_high.y));
+}
+
+matrix<float16_t, 4, 4> v_5(uint start_byte_offset) {
+  vector<float16_t, 4> v_6 = tint_bitcast_to_f16(u[(start_byte_offset / 16u)]);
+  vector<float16_t, 4> v_7 = tint_bitcast_to_f16(u[((8u + start_byte_offset) / 16u)]);
+  vector<float16_t, 4> v_8 = tint_bitcast_to_f16(u[((16u + start_byte_offset) / 16u)]);
+  return matrix<float16_t, 4, 4>(v_6, v_7, v_8, tint_bitcast_to_f16(u[((24u + start_byte_offset) / 16u)]));
+}
+
 [numthreads(1, 1, 1)]
 void main() {
-  matrix<float16_t, 4, 4> x = u;
-  s = x;
+  matrix<float16_t, 4, 4> x = v_5(0u);
+  v_1(0u, x);
 }
 
+FXC validation failure:
+c:\src\dawn\Shader@0x000001FFB4FB32E0(6,30-38): error X3000: syntax error: unexpected token 'float16_t'
+c:\src\dawn\Shader@0x000001FFB4FB32E0(7,3-9): error X3018: invalid subscript 'Store'
+
diff --git a/test/tint/buffer/uniform/types/mat4x4_f32.wgsl.expected.ir.dxc.hlsl b/test/tint/buffer/uniform/types/mat4x4_f32.wgsl.expected.ir.dxc.hlsl
index d6471dc..a231b32 100644
--- a/test/tint/buffer/uniform/types/mat4x4_f32.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/buffer/uniform/types/mat4x4_f32.wgsl.expected.ir.dxc.hlsl
@@ -1,16 +1,25 @@
-SKIP: FAILED
+
+cbuffer cbuffer_u : register(b0) {
+  uint4 u[4];
+};
+RWByteAddressBuffer s : register(u1);
+void v(uint offset, float4x4 obj) {
+  s.Store4((offset + 0u), asuint(obj[0u]));
+  s.Store4((offset + 16u), asuint(obj[1u]));
+  s.Store4((offset + 32u), asuint(obj[2u]));
+  s.Store4((offset + 48u), asuint(obj[3u]));
+}
+
+float4x4 v_1(uint start_byte_offset) {
+  float4 v_2 = asfloat(u[(start_byte_offset / 16u)]);
+  float4 v_3 = asfloat(u[((16u + start_byte_offset) / 16u)]);
+  float4 v_4 = asfloat(u[((32u + start_byte_offset) / 16u)]);
+  return float4x4(v_2, v_3, v_4, asfloat(u[((48u + start_byte_offset) / 16u)]));
+}
 
 [numthreads(1, 1, 1)]
 void main() {
-  float4x4 x = u;
-  s = x;
+  float4x4 x = v_1(0u);
+  v(0u, x);
 }
 
-DXC validation failure:
-hlsl.hlsl:3:16: error: use of undeclared identifier 'u'
-  float4x4 x = u;
-               ^
-hlsl.hlsl:4:3: error: use of undeclared identifier 's'
-  s = x;
-  ^
-
diff --git a/test/tint/buffer/uniform/types/mat4x4_f32.wgsl.expected.ir.fxc.hlsl b/test/tint/buffer/uniform/types/mat4x4_f32.wgsl.expected.ir.fxc.hlsl
index 766dc5c..a231b32 100644
--- a/test/tint/buffer/uniform/types/mat4x4_f32.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/buffer/uniform/types/mat4x4_f32.wgsl.expected.ir.fxc.hlsl
@@ -1,8 +1,25 @@
-SKIP: FAILED
+
+cbuffer cbuffer_u : register(b0) {
+  uint4 u[4];
+};
+RWByteAddressBuffer s : register(u1);
+void v(uint offset, float4x4 obj) {
+  s.Store4((offset + 0u), asuint(obj[0u]));
+  s.Store4((offset + 16u), asuint(obj[1u]));
+  s.Store4((offset + 32u), asuint(obj[2u]));
+  s.Store4((offset + 48u), asuint(obj[3u]));
+}
+
+float4x4 v_1(uint start_byte_offset) {
+  float4 v_2 = asfloat(u[(start_byte_offset / 16u)]);
+  float4 v_3 = asfloat(u[((16u + start_byte_offset) / 16u)]);
+  float4 v_4 = asfloat(u[((32u + start_byte_offset) / 16u)]);
+  return float4x4(v_2, v_3, v_4, asfloat(u[((48u + start_byte_offset) / 16u)]));
+}
 
 [numthreads(1, 1, 1)]
 void main() {
-  float4x4 x = u;
-  s = x;
+  float4x4 x = v_1(0u);
+  v(0u, x);
 }
 
diff --git a/test/tint/buffer/uniform/types/struct_f16.wgsl.expected.ir.dxc.hlsl b/test/tint/buffer/uniform/types/struct_f16.wgsl.expected.ir.dxc.hlsl
index 136dd72..0f9243dd 100644
--- a/test/tint/buffer/uniform/types/struct_f16.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/buffer/uniform/types/struct_f16.wgsl.expected.ir.dxc.hlsl
@@ -1,16 +1,69 @@
-SKIP: FAILED
+struct Inner {
+  float16_t scalar_f16;
+  vector<float16_t, 3> vec3_f16;
+  matrix<float16_t, 2, 4> mat2x4_f16;
+};
+
+struct S {
+  Inner inner;
+};
+
+
+cbuffer cbuffer_u : register(b0) {
+  uint4 u[2];
+};
+RWByteAddressBuffer s : register(u1);
+void v_1(uint offset, matrix<float16_t, 2, 4> obj) {
+  s.Store<vector<float16_t, 4> >((offset + 0u), obj[0u]);
+  s.Store<vector<float16_t, 4> >((offset + 8u), obj[1u]);
+}
+
+void v_2(uint offset, Inner obj) {
+  s.Store<float16_t>((offset + 0u), obj.scalar_f16);
+  s.Store<vector<float16_t, 3> >((offset + 8u), obj.vec3_f16);
+  v_1((offset + 16u), obj.mat2x4_f16);
+}
+
+void v_3(uint offset, S obj) {
+  Inner v_4 = obj.inner;
+  v_2((offset + 0u), v_4);
+}
+
+vector<float16_t, 4> tint_bitcast_to_f16(uint4 src) {
+  uint4 v = src;
+  uint4 mask = (65535u).xxxx;
+  uint4 shift = (16u).xxxx;
+  float4 t_low = f16tof32((v & mask));
+  float4 t_high = f16tof32(((v >> shift) & mask));
+  float16_t v_5 = float16_t(t_low.x);
+  float16_t v_6 = float16_t(t_high.x);
+  float16_t v_7 = float16_t(t_low.y);
+  return vector<float16_t, 4>(v_5, v_6, v_7, float16_t(t_high.y));
+}
+
+matrix<float16_t, 2, 4> v_8(uint start_byte_offset) {
+  vector<float16_t, 4> v_9 = tint_bitcast_to_f16(u[(start_byte_offset / 16u)]);
+  return matrix<float16_t, 2, 4>(v_9, tint_bitcast_to_f16(u[((8u + start_byte_offset) / 16u)]));
+}
+
+Inner v_10(uint start_byte_offset) {
+  uint v_11 = u[(start_byte_offset / 16u)][((start_byte_offset % 16u) / 4u)];
+  float16_t v_12 = float16_t(f16tof32((v_11 >> ((((start_byte_offset % 4u) == 0u)) ? (0u) : (16u)))));
+  vector<float16_t, 3> v_13 = tint_bitcast_to_f16(u[((8u + start_byte_offset) / 16u)]).xyz;
+  Inner v_14 = {v_12, v_13, v_8((16u + start_byte_offset))};
+  return v_14;
+}
+
+S v_15(uint start_byte_offset) {
+  Inner v_16 = v_10(start_byte_offset);
+  S v_17 = {v_16};
+  return v_17;
+}
 
 [numthreads(1, 1, 1)]
 void main() {
-  S x = u;
-  s = x;
+  S v_18 = v_15(0u);
+  S x = v_18;
+  v_3(0u, x);
 }
 
-DXC validation failure:
-hlsl.hlsl:3:3: error: unknown type name 'S'
-  S x = u;
-  ^
-hlsl.hlsl:4:3: error: use of undeclared identifier 's'
-  s = x;
-  ^
-
diff --git a/test/tint/buffer/uniform/types/struct_f16.wgsl.expected.ir.fxc.hlsl b/test/tint/buffer/uniform/types/struct_f16.wgsl.expected.ir.fxc.hlsl
index fd7caab..4ad43aa 100644
--- a/test/tint/buffer/uniform/types/struct_f16.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/buffer/uniform/types/struct_f16.wgsl.expected.ir.fxc.hlsl
@@ -1,8 +1,74 @@
 SKIP: FAILED
 
+struct Inner {
+  float16_t scalar_f16;
+  vector<float16_t, 3> vec3_f16;
+  matrix<float16_t, 2, 4> mat2x4_f16;
+};
+
+struct S {
+  Inner inner;
+};
+
+
+cbuffer cbuffer_u : register(b0) {
+  uint4 u[2];
+};
+RWByteAddressBuffer s : register(u1);
+void v_1(uint offset, matrix<float16_t, 2, 4> obj) {
+  s.Store<vector<float16_t, 4> >((offset + 0u), obj[0u]);
+  s.Store<vector<float16_t, 4> >((offset + 8u), obj[1u]);
+}
+
+void v_2(uint offset, Inner obj) {
+  s.Store<float16_t>((offset + 0u), obj.scalar_f16);
+  s.Store<vector<float16_t, 3> >((offset + 8u), obj.vec3_f16);
+  v_1((offset + 16u), obj.mat2x4_f16);
+}
+
+void v_3(uint offset, S obj) {
+  Inner v_4 = obj.inner;
+  v_2((offset + 0u), v_4);
+}
+
+vector<float16_t, 4> tint_bitcast_to_f16(uint4 src) {
+  uint4 v = src;
+  uint4 mask = (65535u).xxxx;
+  uint4 shift = (16u).xxxx;
+  float4 t_low = f16tof32((v & mask));
+  float4 t_high = f16tof32(((v >> shift) & mask));
+  float16_t v_5 = float16_t(t_low.x);
+  float16_t v_6 = float16_t(t_high.x);
+  float16_t v_7 = float16_t(t_low.y);
+  return vector<float16_t, 4>(v_5, v_6, v_7, float16_t(t_high.y));
+}
+
+matrix<float16_t, 2, 4> v_8(uint start_byte_offset) {
+  vector<float16_t, 4> v_9 = tint_bitcast_to_f16(u[(start_byte_offset / 16u)]);
+  return matrix<float16_t, 2, 4>(v_9, tint_bitcast_to_f16(u[((8u + start_byte_offset) / 16u)]));
+}
+
+Inner v_10(uint start_byte_offset) {
+  uint v_11 = u[(start_byte_offset / 16u)][((start_byte_offset % 16u) / 4u)];
+  float16_t v_12 = float16_t(f16tof32((v_11 >> ((((start_byte_offset % 4u) == 0u)) ? (0u) : (16u)))));
+  vector<float16_t, 3> v_13 = tint_bitcast_to_f16(u[((8u + start_byte_offset) / 16u)]).xyz;
+  Inner v_14 = {v_12, v_13, v_8((16u + start_byte_offset))};
+  return v_14;
+}
+
+S v_15(uint start_byte_offset) {
+  Inner v_16 = v_10(start_byte_offset);
+  S v_17 = {v_16};
+  return v_17;
+}
+
 [numthreads(1, 1, 1)]
 void main() {
-  S x = u;
-  s = x;
+  S v_18 = v_15(0u);
+  S x = v_18;
+  v_3(0u, x);
 }
 
+FXC validation failure:
+c:\src\dawn\Shader@0x00000195FDD038C0(2,3-11): error X3000: unrecognized identifier 'float16_t'
+
diff --git a/test/tint/buffer/uniform/types/struct_f32.wgsl.expected.ir.dxc.hlsl b/test/tint/buffer/uniform/types/struct_f32.wgsl.expected.ir.dxc.hlsl
index 136dd72..62631e9 100644
--- a/test/tint/buffer/uniform/types/struct_f32.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/buffer/uniform/types/struct_f32.wgsl.expected.ir.dxc.hlsl
@@ -1,16 +1,56 @@
-SKIP: FAILED
+struct Inner {
+  float scalar_f32;
+  float3 vec3_f32;
+  float2x4 mat2x4_f32;
+};
+
+struct S {
+  Inner inner;
+};
+
+
+cbuffer cbuffer_u : register(b0) {
+  uint4 u[4];
+};
+RWByteAddressBuffer s : register(u1);
+void v(uint offset, float2x4 obj) {
+  s.Store4((offset + 0u), asuint(obj[0u]));
+  s.Store4((offset + 16u), asuint(obj[1u]));
+}
+
+void v_1(uint offset, Inner obj) {
+  s.Store((offset + 0u), asuint(obj.scalar_f32));
+  s.Store3((offset + 16u), asuint(obj.vec3_f32));
+  v((offset + 32u), obj.mat2x4_f32);
+}
+
+void v_2(uint offset, S obj) {
+  Inner v_3 = obj.inner;
+  v_1((offset + 0u), v_3);
+}
+
+float2x4 v_4(uint start_byte_offset) {
+  float4 v_5 = asfloat(u[(start_byte_offset / 16u)]);
+  return float2x4(v_5, asfloat(u[((16u + start_byte_offset) / 16u)]));
+}
+
+Inner v_6(uint start_byte_offset) {
+  float v_7 = asfloat(u[(start_byte_offset / 16u)][((start_byte_offset % 16u) / 4u)]);
+  float3 v_8 = asfloat(u[((16u + start_byte_offset) / 16u)].xyz);
+  Inner v_9 = {v_7, v_8, v_4((32u + start_byte_offset))};
+  return v_9;
+}
+
+S v_10(uint start_byte_offset) {
+  Inner v_11 = v_6(start_byte_offset);
+  S v_12 = {v_11};
+  return v_12;
+}
 
 [numthreads(1, 1, 1)]
 void main() {
-  S x = u;
-  s = x;
+  S v_13 = v_10(0u);
+  S x = v_13;
+  v_2(0u, x);
 }
 
-DXC validation failure:
-hlsl.hlsl:3:3: error: unknown type name 'S'
-  S x = u;
-  ^
-hlsl.hlsl:4:3: error: use of undeclared identifier 's'
-  s = x;
-  ^
-
diff --git a/test/tint/buffer/uniform/types/struct_f32.wgsl.expected.ir.fxc.hlsl b/test/tint/buffer/uniform/types/struct_f32.wgsl.expected.ir.fxc.hlsl
index fd7caab..62631e9 100644
--- a/test/tint/buffer/uniform/types/struct_f32.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/buffer/uniform/types/struct_f32.wgsl.expected.ir.fxc.hlsl
@@ -1,8 +1,56 @@
-SKIP: FAILED
+struct Inner {
+  float scalar_f32;
+  float3 vec3_f32;
+  float2x4 mat2x4_f32;
+};
+
+struct S {
+  Inner inner;
+};
+
+
+cbuffer cbuffer_u : register(b0) {
+  uint4 u[4];
+};
+RWByteAddressBuffer s : register(u1);
+void v(uint offset, float2x4 obj) {
+  s.Store4((offset + 0u), asuint(obj[0u]));
+  s.Store4((offset + 16u), asuint(obj[1u]));
+}
+
+void v_1(uint offset, Inner obj) {
+  s.Store((offset + 0u), asuint(obj.scalar_f32));
+  s.Store3((offset + 16u), asuint(obj.vec3_f32));
+  v((offset + 32u), obj.mat2x4_f32);
+}
+
+void v_2(uint offset, S obj) {
+  Inner v_3 = obj.inner;
+  v_1((offset + 0u), v_3);
+}
+
+float2x4 v_4(uint start_byte_offset) {
+  float4 v_5 = asfloat(u[(start_byte_offset / 16u)]);
+  return float2x4(v_5, asfloat(u[((16u + start_byte_offset) / 16u)]));
+}
+
+Inner v_6(uint start_byte_offset) {
+  float v_7 = asfloat(u[(start_byte_offset / 16u)][((start_byte_offset % 16u) / 4u)]);
+  float3 v_8 = asfloat(u[((16u + start_byte_offset) / 16u)].xyz);
+  Inner v_9 = {v_7, v_8, v_4((32u + start_byte_offset))};
+  return v_9;
+}
+
+S v_10(uint start_byte_offset) {
+  Inner v_11 = v_6(start_byte_offset);
+  S v_12 = {v_11};
+  return v_12;
+}
 
 [numthreads(1, 1, 1)]
 void main() {
-  S x = u;
-  s = x;
+  S v_13 = v_10(0u);
+  S x = v_13;
+  v_2(0u, x);
 }
 
diff --git a/test/tint/buffer/uniform/types/u32.wgsl.expected.ir.dxc.hlsl b/test/tint/buffer/uniform/types/u32.wgsl.expected.ir.dxc.hlsl
index bf7e627..5e74f2b 100644
--- a/test/tint/buffer/uniform/types/u32.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/buffer/uniform/types/u32.wgsl.expected.ir.dxc.hlsl
@@ -1,16 +1,11 @@
-SKIP: FAILED
 
+cbuffer cbuffer_u : register(b0) {
+  uint4 u[1];
+};
+RWByteAddressBuffer s : register(u1);
 [numthreads(1, 1, 1)]
 void main() {
-  uint x = u;
-  s = x;
+  uint x = u[0u].x;
+  s.Store(0u, x);
 }
 
-DXC validation failure:
-hlsl.hlsl:3:12: error: use of undeclared identifier 'u'
-  uint x = u;
-           ^
-hlsl.hlsl:4:3: error: use of undeclared identifier 's'
-  s = x;
-  ^
-
diff --git a/test/tint/buffer/uniform/types/u32.wgsl.expected.ir.fxc.hlsl b/test/tint/buffer/uniform/types/u32.wgsl.expected.ir.fxc.hlsl
index 2b3b441..5e74f2b 100644
--- a/test/tint/buffer/uniform/types/u32.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/buffer/uniform/types/u32.wgsl.expected.ir.fxc.hlsl
@@ -1,8 +1,11 @@
-SKIP: FAILED
 
+cbuffer cbuffer_u : register(b0) {
+  uint4 u[1];
+};
+RWByteAddressBuffer s : register(u1);
 [numthreads(1, 1, 1)]
 void main() {
-  uint x = u;
-  s = x;
+  uint x = u[0u].x;
+  s.Store(0u, x);
 }
 
diff --git a/test/tint/buffer/uniform/types/vec2_f16.wgsl.expected.ir.dxc.hlsl b/test/tint/buffer/uniform/types/vec2_f16.wgsl.expected.ir.dxc.hlsl
index d2840d2..93a0dad 100644
--- a/test/tint/buffer/uniform/types/vec2_f16.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/buffer/uniform/types/vec2_f16.wgsl.expected.ir.dxc.hlsl
@@ -1,16 +1,19 @@
-SKIP: FAILED
+
+cbuffer cbuffer_u : register(b0) {
+  uint4 u[1];
+};
+RWByteAddressBuffer s : register(u1);
+vector<float16_t, 2> tint_bitcast_to_f16(uint src) {
+  uint v = src;
+  float t_low = f16tof32((v & 65535u));
+  float t_high = f16tof32(((v >> 16u) & 65535u));
+  float16_t v_1 = float16_t(t_low);
+  return vector<float16_t, 2>(v_1, float16_t(t_high));
+}
 
 [numthreads(1, 1, 1)]
 void main() {
-  vector<float16_t, 2> x = u;
-  s = x;
+  vector<float16_t, 2> x = tint_bitcast_to_f16(u[0u].x);
+  s.Store<vector<float16_t, 2> >(0u, x);
 }
 
-DXC validation failure:
-hlsl.hlsl:3:28: error: use of undeclared identifier 'u'
-  vector<float16_t, 2> x = u;
-                           ^
-hlsl.hlsl:4:3: error: use of undeclared identifier 's'
-  s = x;
-  ^
-
diff --git a/test/tint/buffer/uniform/types/vec2_f16.wgsl.expected.ir.fxc.hlsl b/test/tint/buffer/uniform/types/vec2_f16.wgsl.expected.ir.fxc.hlsl
index 3428039..9bfeed9 100644
--- a/test/tint/buffer/uniform/types/vec2_f16.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/buffer/uniform/types/vec2_f16.wgsl.expected.ir.fxc.hlsl
@@ -1,8 +1,24 @@
 SKIP: FAILED
 
+
+cbuffer cbuffer_u : register(b0) {
+  uint4 u[1];
+};
+RWByteAddressBuffer s : register(u1);
+vector<float16_t, 2> tint_bitcast_to_f16(uint src) {
+  uint v = src;
+  float t_low = f16tof32((v & 65535u));
+  float t_high = f16tof32(((v >> 16u) & 65535u));
+  float16_t v_1 = float16_t(t_low);
+  return vector<float16_t, 2>(v_1, float16_t(t_high));
+}
+
 [numthreads(1, 1, 1)]
 void main() {
-  vector<float16_t, 2> x = u;
-  s = x;
+  vector<float16_t, 2> x = tint_bitcast_to_f16(u[0u].x);
+  s.Store<vector<float16_t, 2> >(0u, x);
 }
 
+FXC validation failure:
+c:\src\dawn\Shader@0x000001B4BD9B3240(6,8-16): error X3000: syntax error: unexpected token 'float16_t'
+
diff --git a/test/tint/buffer/uniform/types/vec2_f32.wgsl.expected.ir.dxc.hlsl b/test/tint/buffer/uniform/types/vec2_f32.wgsl.expected.ir.dxc.hlsl
index 67a0e09..dc4c859 100644
--- a/test/tint/buffer/uniform/types/vec2_f32.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/buffer/uniform/types/vec2_f32.wgsl.expected.ir.dxc.hlsl
@@ -1,16 +1,11 @@
-SKIP: FAILED
 
+cbuffer cbuffer_u : register(b0) {
+  uint4 u[1];
+};
+RWByteAddressBuffer s : register(u1);
 [numthreads(1, 1, 1)]
 void main() {
-  float2 x = u;
-  s = x;
+  float2 x = asfloat(u[0u].xy);
+  s.Store2(0u, asuint(x));
 }
 
-DXC validation failure:
-hlsl.hlsl:3:14: error: use of undeclared identifier 'u'
-  float2 x = u;
-             ^
-hlsl.hlsl:4:3: error: use of undeclared identifier 's'
-  s = x;
-  ^
-
diff --git a/test/tint/buffer/uniform/types/vec2_f32.wgsl.expected.ir.fxc.hlsl b/test/tint/buffer/uniform/types/vec2_f32.wgsl.expected.ir.fxc.hlsl
index cf4d40d..dc4c859 100644
--- a/test/tint/buffer/uniform/types/vec2_f32.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/buffer/uniform/types/vec2_f32.wgsl.expected.ir.fxc.hlsl
@@ -1,8 +1,11 @@
-SKIP: FAILED
 
+cbuffer cbuffer_u : register(b0) {
+  uint4 u[1];
+};
+RWByteAddressBuffer s : register(u1);
 [numthreads(1, 1, 1)]
 void main() {
-  float2 x = u;
-  s = x;
+  float2 x = asfloat(u[0u].xy);
+  s.Store2(0u, asuint(x));
 }
 
diff --git a/test/tint/buffer/uniform/types/vec2_i32.wgsl.expected.ir.dxc.hlsl b/test/tint/buffer/uniform/types/vec2_i32.wgsl.expected.ir.dxc.hlsl
index 4dd9187..14b00c9 100644
--- a/test/tint/buffer/uniform/types/vec2_i32.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/buffer/uniform/types/vec2_i32.wgsl.expected.ir.dxc.hlsl
@@ -1,16 +1,11 @@
-SKIP: FAILED
 
+cbuffer cbuffer_u : register(b0) {
+  uint4 u[1];
+};
+RWByteAddressBuffer s : register(u1);
 [numthreads(1, 1, 1)]
 void main() {
-  int2 x = u;
-  s = x;
+  int2 x = asint(u[0u].xy);
+  s.Store2(0u, asuint(x));
 }
 
-DXC validation failure:
-hlsl.hlsl:3:12: error: use of undeclared identifier 'u'
-  int2 x = u;
-           ^
-hlsl.hlsl:4:3: error: use of undeclared identifier 's'
-  s = x;
-  ^
-
diff --git a/test/tint/buffer/uniform/types/vec2_i32.wgsl.expected.ir.fxc.hlsl b/test/tint/buffer/uniform/types/vec2_i32.wgsl.expected.ir.fxc.hlsl
index f5b7246..14b00c9 100644
--- a/test/tint/buffer/uniform/types/vec2_i32.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/buffer/uniform/types/vec2_i32.wgsl.expected.ir.fxc.hlsl
@@ -1,8 +1,11 @@
-SKIP: FAILED
 
+cbuffer cbuffer_u : register(b0) {
+  uint4 u[1];
+};
+RWByteAddressBuffer s : register(u1);
 [numthreads(1, 1, 1)]
 void main() {
-  int2 x = u;
-  s = x;
+  int2 x = asint(u[0u].xy);
+  s.Store2(0u, asuint(x));
 }
 
diff --git a/test/tint/buffer/uniform/types/vec2_u32.wgsl.expected.ir.dxc.hlsl b/test/tint/buffer/uniform/types/vec2_u32.wgsl.expected.ir.dxc.hlsl
index f7e38c7..753e8e8 100644
--- a/test/tint/buffer/uniform/types/vec2_u32.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/buffer/uniform/types/vec2_u32.wgsl.expected.ir.dxc.hlsl
@@ -1,16 +1,11 @@
-SKIP: FAILED
 
+cbuffer cbuffer_u : register(b0) {
+  uint4 u[1];
+};
+RWByteAddressBuffer s : register(u1);
 [numthreads(1, 1, 1)]
 void main() {
-  uint2 x = u;
-  s = x;
+  uint2 x = u[0u].xy;
+  s.Store2(0u, x);
 }
 
-DXC validation failure:
-hlsl.hlsl:3:13: error: use of undeclared identifier 'u'
-  uint2 x = u;
-            ^
-hlsl.hlsl:4:3: error: use of undeclared identifier 's'
-  s = x;
-  ^
-
diff --git a/test/tint/buffer/uniform/types/vec2_u32.wgsl.expected.ir.fxc.hlsl b/test/tint/buffer/uniform/types/vec2_u32.wgsl.expected.ir.fxc.hlsl
index c923e16..753e8e8 100644
--- a/test/tint/buffer/uniform/types/vec2_u32.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/buffer/uniform/types/vec2_u32.wgsl.expected.ir.fxc.hlsl
@@ -1,8 +1,11 @@
-SKIP: FAILED
 
+cbuffer cbuffer_u : register(b0) {
+  uint4 u[1];
+};
+RWByteAddressBuffer s : register(u1);
 [numthreads(1, 1, 1)]
 void main() {
-  uint2 x = u;
-  s = x;
+  uint2 x = u[0u].xy;
+  s.Store2(0u, x);
 }
 
diff --git a/test/tint/buffer/uniform/types/vec3_f16.wgsl.expected.ir.dxc.hlsl b/test/tint/buffer/uniform/types/vec3_f16.wgsl.expected.ir.dxc.hlsl
index b934a6b..00858ee 100644
--- a/test/tint/buffer/uniform/types/vec3_f16.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/buffer/uniform/types/vec3_f16.wgsl.expected.ir.dxc.hlsl
@@ -1,16 +1,23 @@
-SKIP: FAILED
+
+cbuffer cbuffer_u : register(b0) {
+  uint4 u[1];
+};
+RWByteAddressBuffer s : register(u1);
+vector<float16_t, 4> tint_bitcast_to_f16(uint4 src) {
+  uint4 v = src;
+  uint4 mask = (65535u).xxxx;
+  uint4 shift = (16u).xxxx;
+  float4 t_low = f16tof32((v & mask));
+  float4 t_high = f16tof32(((v >> shift) & mask));
+  float16_t v_1 = float16_t(t_low.x);
+  float16_t v_2 = float16_t(t_high.x);
+  float16_t v_3 = float16_t(t_low.y);
+  return vector<float16_t, 4>(v_1, v_2, v_3, float16_t(t_high.y));
+}
 
 [numthreads(1, 1, 1)]
 void main() {
-  vector<float16_t, 3> x = u;
-  s = x;
+  vector<float16_t, 3> x = tint_bitcast_to_f16(u[0u]).xyz;
+  s.Store<vector<float16_t, 3> >(0u, x);
 }
 
-DXC validation failure:
-hlsl.hlsl:3:28: error: use of undeclared identifier 'u'
-  vector<float16_t, 3> x = u;
-                           ^
-hlsl.hlsl:4:3: error: use of undeclared identifier 's'
-  s = x;
-  ^
-
diff --git a/test/tint/buffer/uniform/types/vec3_f16.wgsl.expected.ir.fxc.hlsl b/test/tint/buffer/uniform/types/vec3_f16.wgsl.expected.ir.fxc.hlsl
index 7023968..5d42426 100644
--- a/test/tint/buffer/uniform/types/vec3_f16.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/buffer/uniform/types/vec3_f16.wgsl.expected.ir.fxc.hlsl
@@ -1,8 +1,28 @@
 SKIP: FAILED
 
+
+cbuffer cbuffer_u : register(b0) {
+  uint4 u[1];
+};
+RWByteAddressBuffer s : register(u1);
+vector<float16_t, 4> tint_bitcast_to_f16(uint4 src) {
+  uint4 v = src;
+  uint4 mask = (65535u).xxxx;
+  uint4 shift = (16u).xxxx;
+  float4 t_low = f16tof32((v & mask));
+  float4 t_high = f16tof32(((v >> shift) & mask));
+  float16_t v_1 = float16_t(t_low.x);
+  float16_t v_2 = float16_t(t_high.x);
+  float16_t v_3 = float16_t(t_low.y);
+  return vector<float16_t, 4>(v_1, v_2, v_3, float16_t(t_high.y));
+}
+
 [numthreads(1, 1, 1)]
 void main() {
-  vector<float16_t, 3> x = u;
-  s = x;
+  vector<float16_t, 3> x = tint_bitcast_to_f16(u[0u]).xyz;
+  s.Store<vector<float16_t, 3> >(0u, x);
 }
 
+FXC validation failure:
+c:\src\dawn\Shader@0x000001DFA806C8F0(6,8-16): error X3000: syntax error: unexpected token 'float16_t'
+
diff --git a/test/tint/buffer/uniform/types/vec3_f32.wgsl.expected.ir.dxc.hlsl b/test/tint/buffer/uniform/types/vec3_f32.wgsl.expected.ir.dxc.hlsl
index 79058a4..181b765 100644
--- a/test/tint/buffer/uniform/types/vec3_f32.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/buffer/uniform/types/vec3_f32.wgsl.expected.ir.dxc.hlsl
@@ -1,16 +1,11 @@
-SKIP: FAILED
 
+cbuffer cbuffer_u : register(b0) {
+  uint4 u[1];
+};
+RWByteAddressBuffer s : register(u1);
 [numthreads(1, 1, 1)]
 void main() {
-  float3 x = u;
-  s = x;
+  float3 x = asfloat(u[0u].xyz);
+  s.Store3(0u, asuint(x));
 }
 
-DXC validation failure:
-hlsl.hlsl:3:14: error: use of undeclared identifier 'u'
-  float3 x = u;
-             ^
-hlsl.hlsl:4:3: error: use of undeclared identifier 's'
-  s = x;
-  ^
-
diff --git a/test/tint/buffer/uniform/types/vec3_f32.wgsl.expected.ir.fxc.hlsl b/test/tint/buffer/uniform/types/vec3_f32.wgsl.expected.ir.fxc.hlsl
index e961cbe..181b765 100644
--- a/test/tint/buffer/uniform/types/vec3_f32.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/buffer/uniform/types/vec3_f32.wgsl.expected.ir.fxc.hlsl
@@ -1,8 +1,11 @@
-SKIP: FAILED
 
+cbuffer cbuffer_u : register(b0) {
+  uint4 u[1];
+};
+RWByteAddressBuffer s : register(u1);
 [numthreads(1, 1, 1)]
 void main() {
-  float3 x = u;
-  s = x;
+  float3 x = asfloat(u[0u].xyz);
+  s.Store3(0u, asuint(x));
 }
 
diff --git a/test/tint/buffer/uniform/types/vec3_i32.wgsl.expected.ir.dxc.hlsl b/test/tint/buffer/uniform/types/vec3_i32.wgsl.expected.ir.dxc.hlsl
index 8678749..873d2c2 100644
--- a/test/tint/buffer/uniform/types/vec3_i32.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/buffer/uniform/types/vec3_i32.wgsl.expected.ir.dxc.hlsl
@@ -1,16 +1,11 @@
-SKIP: FAILED
 
+cbuffer cbuffer_u : register(b0) {
+  uint4 u[1];
+};
+RWByteAddressBuffer s : register(u1);
 [numthreads(1, 1, 1)]
 void main() {
-  int3 x = u;
-  s = x;
+  int3 x = asint(u[0u].xyz);
+  s.Store3(0u, asuint(x));
 }
 
-DXC validation failure:
-hlsl.hlsl:3:12: error: use of undeclared identifier 'u'
-  int3 x = u;
-           ^
-hlsl.hlsl:4:3: error: use of undeclared identifier 's'
-  s = x;
-  ^
-
diff --git a/test/tint/buffer/uniform/types/vec3_i32.wgsl.expected.ir.fxc.hlsl b/test/tint/buffer/uniform/types/vec3_i32.wgsl.expected.ir.fxc.hlsl
index 2099231..873d2c2 100644
--- a/test/tint/buffer/uniform/types/vec3_i32.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/buffer/uniform/types/vec3_i32.wgsl.expected.ir.fxc.hlsl
@@ -1,8 +1,11 @@
-SKIP: FAILED
 
+cbuffer cbuffer_u : register(b0) {
+  uint4 u[1];
+};
+RWByteAddressBuffer s : register(u1);
 [numthreads(1, 1, 1)]
 void main() {
-  int3 x = u;
-  s = x;
+  int3 x = asint(u[0u].xyz);
+  s.Store3(0u, asuint(x));
 }
 
diff --git a/test/tint/buffer/uniform/types/vec3_u32.wgsl.expected.ir.dxc.hlsl b/test/tint/buffer/uniform/types/vec3_u32.wgsl.expected.ir.dxc.hlsl
index b00276d..e67707a 100644
--- a/test/tint/buffer/uniform/types/vec3_u32.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/buffer/uniform/types/vec3_u32.wgsl.expected.ir.dxc.hlsl
@@ -1,16 +1,11 @@
-SKIP: FAILED
 
+cbuffer cbuffer_u : register(b0) {
+  uint4 u[1];
+};
+RWByteAddressBuffer s : register(u1);
 [numthreads(1, 1, 1)]
 void main() {
-  uint3 x = u;
-  s = x;
+  uint3 x = u[0u].xyz;
+  s.Store3(0u, x);
 }
 
-DXC validation failure:
-hlsl.hlsl:3:13: error: use of undeclared identifier 'u'
-  uint3 x = u;
-            ^
-hlsl.hlsl:4:3: error: use of undeclared identifier 's'
-  s = x;
-  ^
-
diff --git a/test/tint/buffer/uniform/types/vec3_u32.wgsl.expected.ir.fxc.hlsl b/test/tint/buffer/uniform/types/vec3_u32.wgsl.expected.ir.fxc.hlsl
index b3b4257..e67707a 100644
--- a/test/tint/buffer/uniform/types/vec3_u32.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/buffer/uniform/types/vec3_u32.wgsl.expected.ir.fxc.hlsl
@@ -1,8 +1,11 @@
-SKIP: FAILED
 
+cbuffer cbuffer_u : register(b0) {
+  uint4 u[1];
+};
+RWByteAddressBuffer s : register(u1);
 [numthreads(1, 1, 1)]
 void main() {
-  uint3 x = u;
-  s = x;
+  uint3 x = u[0u].xyz;
+  s.Store3(0u, x);
 }
 
diff --git a/test/tint/buffer/uniform/types/vec4_f16.wgsl.expected.ir.dxc.hlsl b/test/tint/buffer/uniform/types/vec4_f16.wgsl.expected.ir.dxc.hlsl
index 838c274..375cb7e 100644
--- a/test/tint/buffer/uniform/types/vec4_f16.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/buffer/uniform/types/vec4_f16.wgsl.expected.ir.dxc.hlsl
@@ -1,16 +1,23 @@
-SKIP: FAILED
+
+cbuffer cbuffer_u : register(b0) {
+  uint4 u[1];
+};
+RWByteAddressBuffer s : register(u1);
+vector<float16_t, 4> tint_bitcast_to_f16(uint4 src) {
+  uint4 v = src;
+  uint4 mask = (65535u).xxxx;
+  uint4 shift = (16u).xxxx;
+  float4 t_low = f16tof32((v & mask));
+  float4 t_high = f16tof32(((v >> shift) & mask));
+  float16_t v_1 = float16_t(t_low.x);
+  float16_t v_2 = float16_t(t_high.x);
+  float16_t v_3 = float16_t(t_low.y);
+  return vector<float16_t, 4>(v_1, v_2, v_3, float16_t(t_high.y));
+}
 
 [numthreads(1, 1, 1)]
 void main() {
-  vector<float16_t, 4> x = u;
-  s = x;
+  vector<float16_t, 4> x = tint_bitcast_to_f16(u[0u]);
+  s.Store<vector<float16_t, 4> >(0u, x);
 }
 
-DXC validation failure:
-hlsl.hlsl:3:28: error: use of undeclared identifier 'u'
-  vector<float16_t, 4> x = u;
-                           ^
-hlsl.hlsl:4:3: error: use of undeclared identifier 's'
-  s = x;
-  ^
-
diff --git a/test/tint/buffer/uniform/types/vec4_f16.wgsl.expected.ir.fxc.hlsl b/test/tint/buffer/uniform/types/vec4_f16.wgsl.expected.ir.fxc.hlsl
index e7430bd..d8c01c9 100644
--- a/test/tint/buffer/uniform/types/vec4_f16.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/buffer/uniform/types/vec4_f16.wgsl.expected.ir.fxc.hlsl
@@ -1,8 +1,28 @@
 SKIP: FAILED
 
+
+cbuffer cbuffer_u : register(b0) {
+  uint4 u[1];
+};
+RWByteAddressBuffer s : register(u1);
+vector<float16_t, 4> tint_bitcast_to_f16(uint4 src) {
+  uint4 v = src;
+  uint4 mask = (65535u).xxxx;
+  uint4 shift = (16u).xxxx;
+  float4 t_low = f16tof32((v & mask));
+  float4 t_high = f16tof32(((v >> shift) & mask));
+  float16_t v_1 = float16_t(t_low.x);
+  float16_t v_2 = float16_t(t_high.x);
+  float16_t v_3 = float16_t(t_low.y);
+  return vector<float16_t, 4>(v_1, v_2, v_3, float16_t(t_high.y));
+}
+
 [numthreads(1, 1, 1)]
 void main() {
-  vector<float16_t, 4> x = u;
-  s = x;
+  vector<float16_t, 4> x = tint_bitcast_to_f16(u[0u]);
+  s.Store<vector<float16_t, 4> >(0u, x);
 }
 
+FXC validation failure:
+c:\src\dawn\Shader@0x0000019F1FD2F8E0(6,8-16): error X3000: syntax error: unexpected token 'float16_t'
+
diff --git a/test/tint/buffer/uniform/types/vec4_f32.wgsl.expected.ir.dxc.hlsl b/test/tint/buffer/uniform/types/vec4_f32.wgsl.expected.ir.dxc.hlsl
index 432e552..9221d5c 100644
--- a/test/tint/buffer/uniform/types/vec4_f32.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/buffer/uniform/types/vec4_f32.wgsl.expected.ir.dxc.hlsl
@@ -1,16 +1,11 @@
-SKIP: FAILED
 
+cbuffer cbuffer_u : register(b0) {
+  uint4 u[1];
+};
+RWByteAddressBuffer s : register(u1);
 [numthreads(1, 1, 1)]
 void main() {
-  float4 x = u;
-  s = x;
+  float4 x = asfloat(u[0u]);
+  s.Store4(0u, asuint(x));
 }
 
-DXC validation failure:
-hlsl.hlsl:3:14: error: use of undeclared identifier 'u'
-  float4 x = u;
-             ^
-hlsl.hlsl:4:3: error: use of undeclared identifier 's'
-  s = x;
-  ^
-
diff --git a/test/tint/buffer/uniform/types/vec4_f32.wgsl.expected.ir.fxc.hlsl b/test/tint/buffer/uniform/types/vec4_f32.wgsl.expected.ir.fxc.hlsl
index ecedf31..9221d5c 100644
--- a/test/tint/buffer/uniform/types/vec4_f32.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/buffer/uniform/types/vec4_f32.wgsl.expected.ir.fxc.hlsl
@@ -1,8 +1,11 @@
-SKIP: FAILED
 
+cbuffer cbuffer_u : register(b0) {
+  uint4 u[1];
+};
+RWByteAddressBuffer s : register(u1);
 [numthreads(1, 1, 1)]
 void main() {
-  float4 x = u;
-  s = x;
+  float4 x = asfloat(u[0u]);
+  s.Store4(0u, asuint(x));
 }
 
diff --git a/test/tint/buffer/uniform/types/vec4_i32.wgsl.expected.ir.dxc.hlsl b/test/tint/buffer/uniform/types/vec4_i32.wgsl.expected.ir.dxc.hlsl
index 236b68d..340a497 100644
--- a/test/tint/buffer/uniform/types/vec4_i32.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/buffer/uniform/types/vec4_i32.wgsl.expected.ir.dxc.hlsl
@@ -1,16 +1,11 @@
-SKIP: FAILED
 
+cbuffer cbuffer_u : register(b0) {
+  uint4 u[1];
+};
+RWByteAddressBuffer s : register(u1);
 [numthreads(1, 1, 1)]
 void main() {
-  int4 x = u;
-  s = x;
+  int4 x = asint(u[0u]);
+  s.Store4(0u, asuint(x));
 }
 
-DXC validation failure:
-hlsl.hlsl:3:12: error: use of undeclared identifier 'u'
-  int4 x = u;
-           ^
-hlsl.hlsl:4:3: error: use of undeclared identifier 's'
-  s = x;
-  ^
-
diff --git a/test/tint/buffer/uniform/types/vec4_i32.wgsl.expected.ir.fxc.hlsl b/test/tint/buffer/uniform/types/vec4_i32.wgsl.expected.ir.fxc.hlsl
index 90d9b58..340a497 100644
--- a/test/tint/buffer/uniform/types/vec4_i32.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/buffer/uniform/types/vec4_i32.wgsl.expected.ir.fxc.hlsl
@@ -1,8 +1,11 @@
-SKIP: FAILED
 
+cbuffer cbuffer_u : register(b0) {
+  uint4 u[1];
+};
+RWByteAddressBuffer s : register(u1);
 [numthreads(1, 1, 1)]
 void main() {
-  int4 x = u;
-  s = x;
+  int4 x = asint(u[0u]);
+  s.Store4(0u, asuint(x));
 }
 
diff --git a/test/tint/buffer/uniform/types/vec4_u32.wgsl.expected.ir.dxc.hlsl b/test/tint/buffer/uniform/types/vec4_u32.wgsl.expected.ir.dxc.hlsl
index 0e2680a..f0a079f 100644
--- a/test/tint/buffer/uniform/types/vec4_u32.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/buffer/uniform/types/vec4_u32.wgsl.expected.ir.dxc.hlsl
@@ -1,16 +1,11 @@
-SKIP: FAILED
 
+cbuffer cbuffer_u : register(b0) {
+  uint4 u[1];
+};
+RWByteAddressBuffer s : register(u1);
 [numthreads(1, 1, 1)]
 void main() {
-  uint4 x = u;
-  s = x;
+  uint4 x = u[0u];
+  s.Store4(0u, x);
 }
 
-DXC validation failure:
-hlsl.hlsl:3:13: error: use of undeclared identifier 'u'
-  uint4 x = u;
-            ^
-hlsl.hlsl:4:3: error: use of undeclared identifier 's'
-  s = x;
-  ^
-
diff --git a/test/tint/buffer/uniform/types/vec4_u32.wgsl.expected.ir.fxc.hlsl b/test/tint/buffer/uniform/types/vec4_u32.wgsl.expected.ir.fxc.hlsl
index 3b19a77..f0a079f 100644
--- a/test/tint/buffer/uniform/types/vec4_u32.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/buffer/uniform/types/vec4_u32.wgsl.expected.ir.fxc.hlsl
@@ -1,8 +1,11 @@
-SKIP: FAILED
 
+cbuffer cbuffer_u : register(b0) {
+  uint4 u[1];
+};
+RWByteAddressBuffer s : register(u1);
 [numthreads(1, 1, 1)]
 void main() {
-  uint4 x = u;
-  s = x;
+  uint4 x = u[0u];
+  s.Store4(0u, x);
 }
 
diff --git a/test/tint/bug/chromium/1221120.wgsl.expected.ir.dxc.hlsl b/test/tint/bug/chromium/1221120.wgsl.expected.ir.dxc.hlsl
index 9acd2d7..4c78d49 100644
--- a/test/tint/bug/chromium/1221120.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/bug/chromium/1221120.wgsl.expected.ir.dxc.hlsl
@@ -1,3 +1,4 @@
+
 [numthreads(1, 1, 1)]
 void unused_entry_point() {
 }
diff --git a/test/tint/bug/chromium/1221120.wgsl.expected.ir.fxc.hlsl b/test/tint/bug/chromium/1221120.wgsl.expected.ir.fxc.hlsl
index 9acd2d7..4c78d49 100644
--- a/test/tint/bug/chromium/1221120.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/bug/chromium/1221120.wgsl.expected.ir.fxc.hlsl
@@ -1,3 +1,4 @@
+
 [numthreads(1, 1, 1)]
 void unused_entry_point() {
 }
diff --git a/test/tint/bug/chromium/1236161.wgsl.expected.ir.dxc.hlsl b/test/tint/bug/chromium/1236161.wgsl.expected.ir.dxc.hlsl
index 0e7864e..52df45b 100644
--- a/test/tint/bug/chromium/1236161.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/bug/chromium/1236161.wgsl.expected.ir.dxc.hlsl
@@ -1,3 +1,4 @@
+
 void i() {
   float s = 1.0f;
 }
diff --git a/test/tint/bug/chromium/1236161.wgsl.expected.ir.fxc.hlsl b/test/tint/bug/chromium/1236161.wgsl.expected.ir.fxc.hlsl
index 0e7864e..52df45b 100644
--- a/test/tint/bug/chromium/1236161.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/bug/chromium/1236161.wgsl.expected.ir.fxc.hlsl
@@ -1,3 +1,4 @@
+
 void i() {
   float s = 1.0f;
 }
diff --git a/test/tint/bug/chromium/1251009.wgsl.expected.ir.dxc.hlsl b/test/tint/bug/chromium/1251009.wgsl.expected.ir.dxc.hlsl
index 3f437dc..6e488c3 100644
--- a/test/tint/bug/chromium/1251009.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/bug/chromium/1251009.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,37 @@
-SKIP: FAILED
+struct VertexInputs0 {
+  uint vertex_index;
+  int loc0;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Access
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct VertexInputs1 {
+  uint loc1;
+  float4 loc3;
+};
+
+struct main_outputs {
+  float4 tint_symbol : SV_Position;
+};
+
+struct main_inputs {
+  int VertexInputs0_loc0 : TEXCOORD0;
+  uint loc1 : TEXCOORD1;
+  uint VertexInputs1_loc1 : TEXCOORD2;
+  float4 VertexInputs1_loc3 : TEXCOORD3;
+  uint VertexInputs0_vertex_index : SV_VertexID;
+  uint instance_index : SV_InstanceID;
+};
+
+
+float4 main_inner(VertexInputs0 inputs0, uint loc1, uint instance_index, VertexInputs1 inputs1) {
+  uint foo = (inputs0.vertex_index + instance_index);
+  return (0.0f).xxxx;
+}
+
+main_outputs main(main_inputs inputs) {
+  VertexInputs0 v = {inputs.VertexInputs0_vertex_index, inputs.VertexInputs0_loc0};
+  VertexInputs0 v_1 = v;
+  VertexInputs1 v_2 = {inputs.VertexInputs1_loc1, inputs.VertexInputs1_loc3};
+  main_outputs v_3 = {main_inner(v_1, inputs.loc1, inputs.instance_index, v_2)};
+  return v_3;
+}
+
diff --git a/test/tint/bug/chromium/1251009.wgsl.expected.ir.fxc.hlsl b/test/tint/bug/chromium/1251009.wgsl.expected.ir.fxc.hlsl
index 3f437dc..6e488c3 100644
--- a/test/tint/bug/chromium/1251009.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/bug/chromium/1251009.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,37 @@
-SKIP: FAILED
+struct VertexInputs0 {
+  uint vertex_index;
+  int loc0;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Access
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct VertexInputs1 {
+  uint loc1;
+  float4 loc3;
+};
+
+struct main_outputs {
+  float4 tint_symbol : SV_Position;
+};
+
+struct main_inputs {
+  int VertexInputs0_loc0 : TEXCOORD0;
+  uint loc1 : TEXCOORD1;
+  uint VertexInputs1_loc1 : TEXCOORD2;
+  float4 VertexInputs1_loc3 : TEXCOORD3;
+  uint VertexInputs0_vertex_index : SV_VertexID;
+  uint instance_index : SV_InstanceID;
+};
+
+
+float4 main_inner(VertexInputs0 inputs0, uint loc1, uint instance_index, VertexInputs1 inputs1) {
+  uint foo = (inputs0.vertex_index + instance_index);
+  return (0.0f).xxxx;
+}
+
+main_outputs main(main_inputs inputs) {
+  VertexInputs0 v = {inputs.VertexInputs0_vertex_index, inputs.VertexInputs0_loc0};
+  VertexInputs0 v_1 = v;
+  VertexInputs1 v_2 = {inputs.VertexInputs1_loc1, inputs.VertexInputs1_loc3};
+  main_outputs v_3 = {main_inner(v_1, inputs.loc1, inputs.instance_index, v_2)};
+  return v_3;
+}
+
diff --git a/test/tint/bug/chromium/1273230.wgsl.expected.ir.dxc.hlsl b/test/tint/bug/chromium/1273230.wgsl.expected.ir.dxc.hlsl
index c6e1d96..1be29d6 100644
--- a/test/tint/bug/chromium/1273230.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/bug/chromium/1273230.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,109 @@
-SKIP: FAILED
+struct main_count_inputs {
+  uint3 GlobalInvocationID : SV_DispatchThreadID;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Construct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+
+cbuffer cbuffer_uniforms : register(b0) {
+  uint4 uniforms[3];
+};
+RWByteAddressBuffer indices : register(u10);
+RWByteAddressBuffer positions : register(u11);
+RWByteAddressBuffer counters : register(u20);
+RWByteAddressBuffer LUT : register(u21);
+RWByteAddressBuffer dbg : register(u50);
+void marg8uintin() {
+}
+
+float3 toVoxelPos(float3 position) {
+  float v = asfloat(uniforms[1u].x);
+  float v_1 = asfloat(uniforms[1u].y);
+  float3 bbMin = float3(v, v_1, asfloat(uniforms[1u].z));
+  float v_2 = asfloat(uniforms[2u].x);
+  float v_3 = asfloat(uniforms[2u].y);
+  float3 bbMax = float3(v_2, v_3, asfloat(uniforms[2u].z));
+  float3 bbSize = (bbMin - bbMin);
+  float v_4 = max(bbMax.x, bbMax.y);
+  float cubeSize = max(v_4, bbSize.z);
+  float gridSize = float(uniforms[0u].y);
+  float v_5 = cubeSize;
+  float v_6 = (v_5 * (position[0u] - asfloat(uniforms[1u].x)));
+  float gx = (v_6 / cubeSize);
+  float v_7 = gx;
+  float v_8 = (v_7 * (position[1u] - asfloat(uniforms[1u].y)));
+  float gy = (v_8 / gridSize);
+  float v_9 = gridSize;
+  float v_10 = (v_9 * (position[2u] - asfloat(uniforms[1u].z)));
+  float gz = (v_10 / gridSize);
+  return float3(gz, gz, gz);
+}
+
+uint3 tint_v3f32_to_v3u32(float3 value) {
+  return (((value <= (4294967040.0f).xxx)) ? ((((value >= (0.0f).xxx)) ? (uint3(value)) : ((0u).xxx))) : ((4294967295u).xxx));
+}
+
+uint toIndex1D(uint gridSize, float3 voxelPos) {
+  uint3 icoord = tint_v3f32_to_v3u32(voxelPos);
+  return ((icoord.x + (gridSize * icoord.y)) + ((gridSize * gridSize) * icoord.z));
+}
+
+uint tint_mod_u32(uint lhs, uint rhs) {
+  uint v_11 = (((rhs == 0u)) ? (1u) : (rhs));
+  return (lhs - ((lhs / v_11) * v_11));
+}
+
+uint tint_div_u32(uint lhs, uint rhs) {
+  return (lhs / (((rhs == 0u)) ? (1u) : (rhs)));
+}
+
+uint3 toIndex4D(uint gridSize, uint index) {
+  uint z = tint_div_u32(gridSize, (index * index));
+  uint y = tint_div_u32((gridSize - ((gridSize * gridSize) * z)), gridSize);
+  uint x = tint_mod_u32(index, gridSize);
+  return uint3(z, y, y);
+}
+
+float3 loadPosition(uint vertexIndex) {
+  float v_12 = asfloat(positions.Load((0u + (uint(((3u * vertexIndex) + 0u)) * 4u))));
+  float v_13 = asfloat(positions.Load((0u + (uint(((3u * vertexIndex) + 1u)) * 4u))));
+  float3 position = float3(v_12, v_13, asfloat(positions.Load((0u + (uint(((3u * vertexIndex) + 2u)) * 4u)))));
+  return position;
+}
+
+void doIgnore() {
+  uint g43 = uniforms[0u].x;
+  uint kj6 = dbg.Load(20u);
+  uint v_14 = 0u;
+  counters.InterlockedOr(uint(0u), 0u, v_14);
+  uint b53 = v_14;
+  uint rwg = indices.Load(0u);
+  float rb5 = asfloat(positions.Load(0u));
+  int v_15 = 0;
+  LUT.InterlockedOr(int(0u), 0, v_15);
+  int g55 = v_15;
+}
+
+void main_count_inner(uint3 GlobalInvocationID) {
+  uint triangleIndex = GlobalInvocationID[0u];
+  if ((triangleIndex >= uniforms[0u].x)) {
+    return;
+  }
+  doIgnore();
+  uint i0 = indices.Load((0u + (uint(((3u * triangleIndex) + 0u)) * 4u)));
+  uint i1 = indices.Load((0u + (uint(((3u * i0) + 1u)) * 4u)));
+  uint i2 = indices.Load((0u + (uint(((3u * i0) + 2u)) * 4u)));
+  float3 p0 = loadPosition(i0);
+  float3 p1 = loadPosition(i0);
+  float3 p2 = loadPosition(i2);
+  float3 center = (((p0 + p2) + p1) / 3.0f);
+  float3 voxelPos = toVoxelPos(p1);
+  uint lIndex = toIndex1D(uniforms[0u].y, p0);
+  int v_16 = 0;
+  LUT.InterlockedAdd(int(0u), 1, v_16);
+  int triangleOffset = v_16;
+}
+
+[numthreads(128, 1, 1)]
+void main_count(main_count_inputs inputs) {
+  main_count_inner(inputs.GlobalInvocationID);
+}
+
diff --git a/test/tint/bug/chromium/1273230.wgsl.expected.ir.fxc.hlsl b/test/tint/bug/chromium/1273230.wgsl.expected.ir.fxc.hlsl
index c6e1d96..1be29d6 100644
--- a/test/tint/bug/chromium/1273230.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/bug/chromium/1273230.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,109 @@
-SKIP: FAILED
+struct main_count_inputs {
+  uint3 GlobalInvocationID : SV_DispatchThreadID;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Construct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+
+cbuffer cbuffer_uniforms : register(b0) {
+  uint4 uniforms[3];
+};
+RWByteAddressBuffer indices : register(u10);
+RWByteAddressBuffer positions : register(u11);
+RWByteAddressBuffer counters : register(u20);
+RWByteAddressBuffer LUT : register(u21);
+RWByteAddressBuffer dbg : register(u50);
+void marg8uintin() {
+}
+
+float3 toVoxelPos(float3 position) {
+  float v = asfloat(uniforms[1u].x);
+  float v_1 = asfloat(uniforms[1u].y);
+  float3 bbMin = float3(v, v_1, asfloat(uniforms[1u].z));
+  float v_2 = asfloat(uniforms[2u].x);
+  float v_3 = asfloat(uniforms[2u].y);
+  float3 bbMax = float3(v_2, v_3, asfloat(uniforms[2u].z));
+  float3 bbSize = (bbMin - bbMin);
+  float v_4 = max(bbMax.x, bbMax.y);
+  float cubeSize = max(v_4, bbSize.z);
+  float gridSize = float(uniforms[0u].y);
+  float v_5 = cubeSize;
+  float v_6 = (v_5 * (position[0u] - asfloat(uniforms[1u].x)));
+  float gx = (v_6 / cubeSize);
+  float v_7 = gx;
+  float v_8 = (v_7 * (position[1u] - asfloat(uniforms[1u].y)));
+  float gy = (v_8 / gridSize);
+  float v_9 = gridSize;
+  float v_10 = (v_9 * (position[2u] - asfloat(uniforms[1u].z)));
+  float gz = (v_10 / gridSize);
+  return float3(gz, gz, gz);
+}
+
+uint3 tint_v3f32_to_v3u32(float3 value) {
+  return (((value <= (4294967040.0f).xxx)) ? ((((value >= (0.0f).xxx)) ? (uint3(value)) : ((0u).xxx))) : ((4294967295u).xxx));
+}
+
+uint toIndex1D(uint gridSize, float3 voxelPos) {
+  uint3 icoord = tint_v3f32_to_v3u32(voxelPos);
+  return ((icoord.x + (gridSize * icoord.y)) + ((gridSize * gridSize) * icoord.z));
+}
+
+uint tint_mod_u32(uint lhs, uint rhs) {
+  uint v_11 = (((rhs == 0u)) ? (1u) : (rhs));
+  return (lhs - ((lhs / v_11) * v_11));
+}
+
+uint tint_div_u32(uint lhs, uint rhs) {
+  return (lhs / (((rhs == 0u)) ? (1u) : (rhs)));
+}
+
+uint3 toIndex4D(uint gridSize, uint index) {
+  uint z = tint_div_u32(gridSize, (index * index));
+  uint y = tint_div_u32((gridSize - ((gridSize * gridSize) * z)), gridSize);
+  uint x = tint_mod_u32(index, gridSize);
+  return uint3(z, y, y);
+}
+
+float3 loadPosition(uint vertexIndex) {
+  float v_12 = asfloat(positions.Load((0u + (uint(((3u * vertexIndex) + 0u)) * 4u))));
+  float v_13 = asfloat(positions.Load((0u + (uint(((3u * vertexIndex) + 1u)) * 4u))));
+  float3 position = float3(v_12, v_13, asfloat(positions.Load((0u + (uint(((3u * vertexIndex) + 2u)) * 4u)))));
+  return position;
+}
+
+void doIgnore() {
+  uint g43 = uniforms[0u].x;
+  uint kj6 = dbg.Load(20u);
+  uint v_14 = 0u;
+  counters.InterlockedOr(uint(0u), 0u, v_14);
+  uint b53 = v_14;
+  uint rwg = indices.Load(0u);
+  float rb5 = asfloat(positions.Load(0u));
+  int v_15 = 0;
+  LUT.InterlockedOr(int(0u), 0, v_15);
+  int g55 = v_15;
+}
+
+void main_count_inner(uint3 GlobalInvocationID) {
+  uint triangleIndex = GlobalInvocationID[0u];
+  if ((triangleIndex >= uniforms[0u].x)) {
+    return;
+  }
+  doIgnore();
+  uint i0 = indices.Load((0u + (uint(((3u * triangleIndex) + 0u)) * 4u)));
+  uint i1 = indices.Load((0u + (uint(((3u * i0) + 1u)) * 4u)));
+  uint i2 = indices.Load((0u + (uint(((3u * i0) + 2u)) * 4u)));
+  float3 p0 = loadPosition(i0);
+  float3 p1 = loadPosition(i0);
+  float3 p2 = loadPosition(i2);
+  float3 center = (((p0 + p2) + p1) / 3.0f);
+  float3 voxelPos = toVoxelPos(p1);
+  uint lIndex = toIndex1D(uniforms[0u].y, p0);
+  int v_16 = 0;
+  LUT.InterlockedAdd(int(0u), 1, v_16);
+  int triangleOffset = v_16;
+}
+
+[numthreads(128, 1, 1)]
+void main_count(main_count_inputs inputs) {
+  main_count_inner(inputs.GlobalInvocationID);
+}
+
diff --git a/test/tint/bug/chromium/1273451.wgsl.expected.ir.dxc.hlsl b/test/tint/bug/chromium/1273451.wgsl.expected.ir.dxc.hlsl
index 0ba40c6..e58a62c 100644
--- a/test/tint/bug/chromium/1273451.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/bug/chromium/1273451.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,18 @@
-SKIP: FAILED
+struct B {
+  int b;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct A {
+  int a;
+};
+
+
+B f(A a) {
+  B v = (B)0;
+  return v;
+}
+
+[numthreads(1, 1, 1)]
+void unused_entry_point() {
+}
+
diff --git a/test/tint/bug/chromium/1273451.wgsl.expected.ir.fxc.hlsl b/test/tint/bug/chromium/1273451.wgsl.expected.ir.fxc.hlsl
index 0ba40c6..e58a62c 100644
--- a/test/tint/bug/chromium/1273451.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/bug/chromium/1273451.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,18 @@
-SKIP: FAILED
+struct B {
+  int b;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct A {
+  int a;
+};
+
+
+B f(A a) {
+  B v = (B)0;
+  return v;
+}
+
+[numthreads(1, 1, 1)]
+void unused_entry_point() {
+}
+
diff --git a/test/tint/bug/chromium/1290107.wgsl.expected.ir.dxc.hlsl b/test/tint/bug/chromium/1290107.wgsl.expected.ir.dxc.hlsl
index 7492c3a..60ce810 100644
--- a/test/tint/bug/chromium/1290107.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/bug/chromium/1290107.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,9 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: arrayLength
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+ByteAddressBuffer arr : register(t0);
+[numthreads(1, 1, 1)]
+void main() {
+  uint v = 0u;
+  arr.GetDimensions(v);
+  uint len = (v / 4u);
+}
+
diff --git a/test/tint/bug/chromium/1290107.wgsl.expected.ir.fxc.hlsl b/test/tint/bug/chromium/1290107.wgsl.expected.ir.fxc.hlsl
index 7492c3a..60ce810 100644
--- a/test/tint/bug/chromium/1290107.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/bug/chromium/1290107.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,9 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: arrayLength
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+ByteAddressBuffer arr : register(t0);
+[numthreads(1, 1, 1)]
+void main() {
+  uint v = 0u;
+  arr.GetDimensions(v);
+  uint len = (v / 4u);
+}
+
diff --git a/test/tint/bug/chromium/1341475.wgsl.expected.ir.dxc.hlsl b/test/tint/bug/chromium/1341475.wgsl.expected.ir.dxc.hlsl
index a273565..746932a 100644
--- a/test/tint/bug/chromium/1341475.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/bug/chromium/1341475.wgsl.expected.ir.dxc.hlsl
@@ -1,3 +1,4 @@
+
 [numthreads(1, 1, 1)]
 void main() {
   float a = 1.0f;
diff --git a/test/tint/bug/chromium/1341475.wgsl.expected.ir.fxc.hlsl b/test/tint/bug/chromium/1341475.wgsl.expected.ir.fxc.hlsl
index a273565..746932a 100644
--- a/test/tint/bug/chromium/1341475.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/bug/chromium/1341475.wgsl.expected.ir.fxc.hlsl
@@ -1,3 +1,4 @@
+
 [numthreads(1, 1, 1)]
 void main() {
   float a = 1.0f;
diff --git a/test/tint/bug/chromium/1343242.wgsl.expected.ir.dxc.hlsl b/test/tint/bug/chromium/1343242.wgsl.expected.ir.dxc.hlsl
index 9acd2d7..571df07 100644
--- a/test/tint/bug/chromium/1343242.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/bug/chromium/1343242.wgsl.expected.ir.dxc.hlsl
@@ -1,3 +1,5 @@
+
+static bool o = true;
 [numthreads(1, 1, 1)]
 void unused_entry_point() {
 }
diff --git a/test/tint/bug/chromium/1343242.wgsl.expected.ir.fxc.hlsl b/test/tint/bug/chromium/1343242.wgsl.expected.ir.fxc.hlsl
index 9acd2d7..571df07 100644
--- a/test/tint/bug/chromium/1343242.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/bug/chromium/1343242.wgsl.expected.ir.fxc.hlsl
@@ -1,3 +1,5 @@
+
+static bool o = true;
 [numthreads(1, 1, 1)]
 void unused_entry_point() {
 }
diff --git a/test/tint/bug/chromium/1345468.wgsl.expected.ir.dxc.hlsl b/test/tint/bug/chromium/1345468.wgsl.expected.ir.dxc.hlsl
index 3f437dc..7ed9b3c 100644
--- a/test/tint/bug/chromium/1345468.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/bug/chromium/1345468.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,11 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Access
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+void f() {
+  int i = 1;
+  float2 a = float4x2((0.0f).xx, (0.0f).xx, float2(4.0f, 0.0f), (0.0f).xx)[i];
+  int b = int2(0, 1)[i];
+}
+
+[numthreads(1, 1, 1)]
+void unused_entry_point() {
+}
+
diff --git a/test/tint/bug/chromium/1345468.wgsl.expected.ir.fxc.hlsl b/test/tint/bug/chromium/1345468.wgsl.expected.ir.fxc.hlsl
index 3f437dc..7ed9b3c 100644
--- a/test/tint/bug/chromium/1345468.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/bug/chromium/1345468.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,11 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Access
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+void f() {
+  int i = 1;
+  float2 a = float4x2((0.0f).xx, (0.0f).xx, float2(4.0f, 0.0f), (0.0f).xx)[i];
+  int b = int2(0, 1)[i];
+}
+
+[numthreads(1, 1, 1)]
+void unused_entry_point() {
+}
+
diff --git a/test/tint/bug/chromium/1350147.wgsl.expected.ir.dxc.hlsl b/test/tint/bug/chromium/1350147.wgsl.expected.ir.dxc.hlsl
index 39c6b01..73872cb 100644
--- a/test/tint/bug/chromium/1350147.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/bug/chromium/1350147.wgsl.expected.ir.dxc.hlsl
@@ -1,4 +1,3 @@
-SKIP: FAILED
 
 void original_clusterfuzz_code() {
 }
@@ -6,25 +5,11 @@
 void more_tests_that_would_fail() {
   float a = 1.47112762928009033203f;
   float b = 0.09966865181922912598f;
-  float a = 2.5f;
-  float b = 2.5f;
+  float a_1 = 2.5f;
+  float b_1 = 2.5f;
 }
 
 [numthreads(1, 1, 1)]
 void unused_entry_point() {
 }
 
-DXC validation failure:
-hlsl.hlsl:7:9: error: redefinition of 'a'
-  float a = 2.5f;
-        ^
-hlsl.hlsl:5:9: note: previous definition is here
-  float a = 1.47112762928009033203f;
-        ^
-hlsl.hlsl:8:9: error: redefinition of 'b'
-  float b = 2.5f;
-        ^
-hlsl.hlsl:6:9: note: previous definition is here
-  float b = 0.09966865181922912598f;
-        ^
-
diff --git a/test/tint/bug/chromium/1350147.wgsl.expected.ir.fxc.hlsl b/test/tint/bug/chromium/1350147.wgsl.expected.ir.fxc.hlsl
index c0a46fc..73872cb 100644
--- a/test/tint/bug/chromium/1350147.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/bug/chromium/1350147.wgsl.expected.ir.fxc.hlsl
@@ -1,11 +1,12 @@
+
 void original_clusterfuzz_code() {
 }
 
 void more_tests_that_would_fail() {
   float a = 1.47112762928009033203f;
   float b = 0.09966865181922912598f;
-  float a = 2.5f;
-  float b = 2.5f;
+  float a_1 = 2.5f;
+  float b_1 = 2.5f;
 }
 
 [numthreads(1, 1, 1)]
diff --git a/test/tint/bug/chromium/1360925.wgsl.expected.ir.dxc.hlsl b/test/tint/bug/chromium/1360925.wgsl.expected.ir.dxc.hlsl
index 7492c3a..c4710ed 100644
--- a/test/tint/bug/chromium/1360925.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/bug/chromium/1360925.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,11 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: arrayLength
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+ByteAddressBuffer G : register(t0);
+void n() {
+  uint v = 0u;
+  G.GetDimensions(v);
+}
+
+[numthreads(1, 1, 1)]
+void unused_entry_point() {
+}
+
diff --git a/test/tint/bug/chromium/1360925.wgsl.expected.ir.fxc.hlsl b/test/tint/bug/chromium/1360925.wgsl.expected.ir.fxc.hlsl
index 7492c3a..c4710ed 100644
--- a/test/tint/bug/chromium/1360925.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/bug/chromium/1360925.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,11 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: arrayLength
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+ByteAddressBuffer G : register(t0);
+void n() {
+  uint v = 0u;
+  G.GetDimensions(v);
+}
+
+[numthreads(1, 1, 1)]
+void unused_entry_point() {
+}
+
diff --git a/test/tint/bug/chromium/1367602_function_space_initializer_valid_count.wgsl.expected.ir.dxc.hlsl b/test/tint/bug/chromium/1367602_function_space_initializer_valid_count.wgsl.expected.ir.dxc.hlsl
index a470327..eb5c399 100644
--- a/test/tint/bug/chromium/1367602_function_space_initializer_valid_count.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/bug/chromium/1367602_function_space_initializer_valid_count.wgsl.expected.ir.dxc.hlsl
@@ -1,16 +1,9 @@
-SKIP: FAILED
 
 void f() {
-  bool[65535] v = (bool[65535])0;
+  bool v[65535] = (bool[65535])0;
 }
 
 [numthreads(1, 1, 1)]
 void unused_entry_point() {
 }
 
-DXC validation failure:
-hlsl.hlsl:2:16: error: brackets are not allowed here; to declare an array, place the brackets after the name
-  bool[65535] v = (bool[65535])0;
-      ~~~~~~~  ^
-               [65535]
-
diff --git a/test/tint/bug/chromium/1367602_function_space_initializer_valid_count.wgsl.expected.ir.fxc.hlsl b/test/tint/bug/chromium/1367602_function_space_initializer_valid_count.wgsl.expected.ir.fxc.hlsl
index 139bd0a..eb5c399 100644
--- a/test/tint/bug/chromium/1367602_function_space_initializer_valid_count.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/bug/chromium/1367602_function_space_initializer_valid_count.wgsl.expected.ir.fxc.hlsl
@@ -1,5 +1,6 @@
+
 void f() {
-  bool[65535] v = (bool[65535])0;
+  bool v[65535] = (bool[65535])0;
 }
 
 [numthreads(1, 1, 1)]
diff --git a/test/tint/bug/chromium/1367602_function_space_no_initializer_valid_count.wgsl.expected.ir.dxc.hlsl b/test/tint/bug/chromium/1367602_function_space_no_initializer_valid_count.wgsl.expected.ir.dxc.hlsl
index a470327..eb5c399 100644
--- a/test/tint/bug/chromium/1367602_function_space_no_initializer_valid_count.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/bug/chromium/1367602_function_space_no_initializer_valid_count.wgsl.expected.ir.dxc.hlsl
@@ -1,16 +1,9 @@
-SKIP: FAILED
 
 void f() {
-  bool[65535] v = (bool[65535])0;
+  bool v[65535] = (bool[65535])0;
 }
 
 [numthreads(1, 1, 1)]
 void unused_entry_point() {
 }
 
-DXC validation failure:
-hlsl.hlsl:2:16: error: brackets are not allowed here; to declare an array, place the brackets after the name
-  bool[65535] v = (bool[65535])0;
-      ~~~~~~~  ^
-               [65535]
-
diff --git a/test/tint/bug/chromium/1367602_function_space_no_initializer_valid_count.wgsl.expected.ir.fxc.hlsl b/test/tint/bug/chromium/1367602_function_space_no_initializer_valid_count.wgsl.expected.ir.fxc.hlsl
index bac79d3..eb5c399 100644
--- a/test/tint/bug/chromium/1367602_function_space_no_initializer_valid_count.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/bug/chromium/1367602_function_space_no_initializer_valid_count.wgsl.expected.ir.fxc.hlsl
@@ -1,7 +1,6 @@
-SKIP: FAILED
 
 void f() {
-  bool[65535] v = (bool[65535])0;
+  bool v[65535] = (bool[65535])0;
 }
 
 [numthreads(1, 1, 1)]
diff --git a/test/tint/bug/chromium/1367602_private_space_initializer_valid_count.wgsl.expected.ir.dxc.hlsl b/test/tint/bug/chromium/1367602_private_space_initializer_valid_count.wgsl.expected.ir.dxc.hlsl
index 4d16a5a..9b4ac51 100644
--- a/test/tint/bug/chromium/1367602_private_space_initializer_valid_count.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/bug/chromium/1367602_private_space_initializer_valid_count.wgsl.expected.ir.dxc.hlsl
@@ -1,3 +1,6 @@
+
+static const bool v_1[65535] = (bool[65535])0;
+static bool v[65535] = v_1;
 void f() {
 }
 
diff --git a/test/tint/bug/chromium/1367602_private_space_initializer_valid_count.wgsl.expected.ir.fxc.hlsl b/test/tint/bug/chromium/1367602_private_space_initializer_valid_count.wgsl.expected.ir.fxc.hlsl
index 4d16a5a..9b4ac51 100644
--- a/test/tint/bug/chromium/1367602_private_space_initializer_valid_count.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/bug/chromium/1367602_private_space_initializer_valid_count.wgsl.expected.ir.fxc.hlsl
@@ -1,3 +1,6 @@
+
+static const bool v_1[65535] = (bool[65535])0;
+static bool v[65535] = v_1;
 void f() {
 }
 
diff --git a/test/tint/bug/chromium/1367602_private_space_no_initializer_valid_count.wgsl.expected.ir.dxc.hlsl b/test/tint/bug/chromium/1367602_private_space_no_initializer_valid_count.wgsl.expected.ir.dxc.hlsl
index 4d16a5a..4340972 100644
--- a/test/tint/bug/chromium/1367602_private_space_no_initializer_valid_count.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/bug/chromium/1367602_private_space_no_initializer_valid_count.wgsl.expected.ir.dxc.hlsl
@@ -1,3 +1,5 @@
+
+static bool v[65535] = (bool[65535])0;
 void f() {
 }
 
diff --git a/test/tint/bug/chromium/1367602_private_space_no_initializer_valid_count.wgsl.expected.ir.fxc.hlsl b/test/tint/bug/chromium/1367602_private_space_no_initializer_valid_count.wgsl.expected.ir.fxc.hlsl
index 4d16a5a..4340972 100644
--- a/test/tint/bug/chromium/1367602_private_space_no_initializer_valid_count.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/bug/chromium/1367602_private_space_no_initializer_valid_count.wgsl.expected.ir.fxc.hlsl
@@ -1,3 +1,5 @@
+
+static bool v[65535] = (bool[65535])0;
 void f() {
 }
 
diff --git a/test/tint/bug/chromium/1367602_storage_space.wgsl.expected.ir.dxc.hlsl b/test/tint/bug/chromium/1367602_storage_space.wgsl.expected.ir.dxc.hlsl
index 9acd2d7..5a9972f 100644
--- a/test/tint/bug/chromium/1367602_storage_space.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/bug/chromium/1367602_storage_space.wgsl.expected.ir.dxc.hlsl
@@ -1,3 +1,6 @@
+
+ByteAddressBuffer v : register(t0);
+ByteAddressBuffer b : register(t1);
 [numthreads(1, 1, 1)]
 void unused_entry_point() {
 }
diff --git a/test/tint/bug/chromium/1367602_storage_space.wgsl.expected.ir.fxc.hlsl b/test/tint/bug/chromium/1367602_storage_space.wgsl.expected.ir.fxc.hlsl
index 9acd2d7..5a9972f 100644
--- a/test/tint/bug/chromium/1367602_storage_space.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/bug/chromium/1367602_storage_space.wgsl.expected.ir.fxc.hlsl
@@ -1,3 +1,6 @@
+
+ByteAddressBuffer v : register(t0);
+ByteAddressBuffer b : register(t1);
 [numthreads(1, 1, 1)]
 void unused_entry_point() {
 }
diff --git a/test/tint/bug/chromium/1372963.wgsl.expected.ir.dxc.hlsl b/test/tint/bug/chromium/1372963.wgsl.expected.ir.dxc.hlsl
index c2aaa05..1bca62d 100644
--- a/test/tint/bug/chromium/1372963.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/bug/chromium/1372963.wgsl.expected.ir.dxc.hlsl
@@ -1,3 +1,4 @@
+
 int4 g() {
   return (0).xxxx;
 }
diff --git a/test/tint/bug/chromium/1372963.wgsl.expected.ir.fxc.hlsl b/test/tint/bug/chromium/1372963.wgsl.expected.ir.fxc.hlsl
index d100932..1bca62d 100644
--- a/test/tint/bug/chromium/1372963.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/bug/chromium/1372963.wgsl.expected.ir.fxc.hlsl
@@ -1,4 +1,3 @@
-SKIP: FAILED
 
 int4 g() {
   return (0).xxxx;
diff --git a/test/tint/bug/chromium/1381883.wgsl.expected.ir.dxc.hlsl b/test/tint/bug/chromium/1381883.wgsl.expected.ir.dxc.hlsl
index b06e72e..c933bf2 100644
--- a/test/tint/bug/chromium/1381883.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/bug/chromium/1381883.wgsl.expected.ir.dxc.hlsl
@@ -1,3 +1,12 @@
-void main() {
+struct main_inputs {
+  float none : TEXCOORD2;
+};
+
+
+void main_inner(float none) {
+}
+
+void main(main_inputs inputs) {
+  main_inner(inputs.none);
 }
 
diff --git a/test/tint/bug/chromium/1381883.wgsl.expected.ir.fxc.hlsl b/test/tint/bug/chromium/1381883.wgsl.expected.ir.fxc.hlsl
index b06e72e..c933bf2 100644
--- a/test/tint/bug/chromium/1381883.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/bug/chromium/1381883.wgsl.expected.ir.fxc.hlsl
@@ -1,3 +1,12 @@
-void main() {
+struct main_inputs {
+  float none : TEXCOORD2;
+};
+
+
+void main_inner(float none) {
+}
+
+void main(main_inputs inputs) {
+  main_inner(inputs.none);
 }
 
diff --git a/test/tint/bug/chromium/1383755.wgsl.expected.ir.dxc.hlsl b/test/tint/bug/chromium/1383755.wgsl.expected.ir.dxc.hlsl
index 9acd2d7..4c78d49 100644
--- a/test/tint/bug/chromium/1383755.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/bug/chromium/1383755.wgsl.expected.ir.dxc.hlsl
@@ -1,3 +1,4 @@
+
 [numthreads(1, 1, 1)]
 void unused_entry_point() {
 }
diff --git a/test/tint/bug/chromium/1383755.wgsl.expected.ir.fxc.hlsl b/test/tint/bug/chromium/1383755.wgsl.expected.ir.fxc.hlsl
index 9acd2d7..4c78d49 100644
--- a/test/tint/bug/chromium/1383755.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/bug/chromium/1383755.wgsl.expected.ir.fxc.hlsl
@@ -1,3 +1,4 @@
+
 [numthreads(1, 1, 1)]
 void unused_entry_point() {
 }
diff --git a/test/tint/bug/chromium/1386647.wgsl.expected.ir.dxc.hlsl b/test/tint/bug/chromium/1386647.wgsl.expected.ir.dxc.hlsl
index 3f437dc..756fb50 100644
--- a/test/tint/bug/chromium/1386647.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/bug/chromium/1386647.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,19 @@
-SKIP: FAILED
+struct f_inputs {
+  uint3 v : SV_DispatchThreadID;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Access
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+
+uint tint_mod_u32(uint lhs, uint rhs) {
+  uint v_1 = (((rhs == 0u)) ? (1u) : (rhs));
+  return (lhs - ((lhs / v_1) * v_1));
+}
+
+void f_inner(uint3 v) {
+  uint l = (v[0u] << (tint_mod_u32(v[1u], 1u) & 31u));
+}
+
+[numthreads(1, 1, 1)]
+void f(f_inputs inputs) {
+  f_inner(inputs.v);
+}
+
diff --git a/test/tint/bug/chromium/1386647.wgsl.expected.ir.fxc.hlsl b/test/tint/bug/chromium/1386647.wgsl.expected.ir.fxc.hlsl
index 3f437dc..756fb50 100644
--- a/test/tint/bug/chromium/1386647.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/bug/chromium/1386647.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,19 @@
-SKIP: FAILED
+struct f_inputs {
+  uint3 v : SV_DispatchThreadID;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Access
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+
+uint tint_mod_u32(uint lhs, uint rhs) {
+  uint v_1 = (((rhs == 0u)) ? (1u) : (rhs));
+  return (lhs - ((lhs / v_1) * v_1));
+}
+
+void f_inner(uint3 v) {
+  uint l = (v[0u] << (tint_mod_u32(v[1u], 1u) & 31u));
+}
+
+[numthreads(1, 1, 1)]
+void f(f_inputs inputs) {
+  f_inner(inputs.v);
+}
+
diff --git a/test/tint/bug/chromium/1395241.wgsl.expected.ir.dxc.hlsl b/test/tint/bug/chromium/1395241.wgsl.expected.ir.dxc.hlsl
index 8b2d28e..ac110d9 100644
--- a/test/tint/bug/chromium/1395241.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/bug/chromium/1395241.wgsl.expected.ir.dxc.hlsl
@@ -1,3 +1,4 @@
+
 void fr6snorm() {
   int bzbxttch = 2;
 }
diff --git a/test/tint/bug/chromium/1395241.wgsl.expected.ir.fxc.hlsl b/test/tint/bug/chromium/1395241.wgsl.expected.ir.fxc.hlsl
index 8b2d28e..ac110d9 100644
--- a/test/tint/bug/chromium/1395241.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/bug/chromium/1395241.wgsl.expected.ir.fxc.hlsl
@@ -1,3 +1,4 @@
+
 void fr6snorm() {
   int bzbxttch = 2;
 }
diff --git a/test/tint/bug/chromium/1403752.wgsl.expected.ir.dxc.hlsl b/test/tint/bug/chromium/1403752.wgsl.expected.ir.dxc.hlsl
index adbb0c1..56d7a21 100644
--- a/test/tint/bug/chromium/1403752.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/bug/chromium/1403752.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,20 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:198 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Loop
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+void d() {
+  int j = 0;
+  {
+    while(true) {
+      if (false) {
+      } else {
+        break;
+      }
+      {
+      }
+      continue;
+    }
+  }
+}
+
+[numthreads(1, 1, 1)]
+void unused_entry_point() {
+}
+
diff --git a/test/tint/bug/chromium/1403752.wgsl.expected.ir.fxc.hlsl b/test/tint/bug/chromium/1403752.wgsl.expected.ir.fxc.hlsl
index adbb0c1..56d7a21 100644
--- a/test/tint/bug/chromium/1403752.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/bug/chromium/1403752.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,20 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:198 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Loop
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+void d() {
+  int j = 0;
+  {
+    while(true) {
+      if (false) {
+      } else {
+        break;
+      }
+      {
+      }
+      continue;
+    }
+  }
+}
+
+[numthreads(1, 1, 1)]
+void unused_entry_point() {
+}
+
diff --git a/test/tint/bug/chromium/1405676.wgsl.expected.ir.dxc.hlsl b/test/tint/bug/chromium/1405676.wgsl.expected.ir.dxc.hlsl
index fd28383..3d7ef42 100644
--- a/test/tint/bug/chromium/1405676.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/bug/chromium/1405676.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,13 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureLoad
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+Texture1D<int4> arg_0 : register(t0);
+void d() {
+  Texture1D<int4> v = arg_0;
+  int v_1 = int(1);
+  int4(v.Load(int2(v_1, int(0))));
+  float l = 0.14112000167369842529f;
+}
+
+[numthreads(1, 1, 1)]
+void unused_entry_point() {
+}
+
diff --git a/test/tint/bug/chromium/1405676.wgsl.expected.ir.fxc.hlsl b/test/tint/bug/chromium/1405676.wgsl.expected.ir.fxc.hlsl
index fd28383..3d7ef42 100644
--- a/test/tint/bug/chromium/1405676.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/bug/chromium/1405676.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,13 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureLoad
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+Texture1D<int4> arg_0 : register(t0);
+void d() {
+  Texture1D<int4> v = arg_0;
+  int v_1 = int(1);
+  int4(v.Load(int2(v_1, int(0))));
+  float l = 0.14112000167369842529f;
+}
+
+[numthreads(1, 1, 1)]
+void unused_entry_point() {
+}
+
diff --git a/test/tint/bug/chromium/1417515.wgsl.expected.ir.dxc.hlsl b/test/tint/bug/chromium/1417515.wgsl.expected.ir.dxc.hlsl
index 0ba40c6..054513b 100644
--- a/test/tint/bug/chromium/1417515.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/bug/chromium/1417515.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,14 @@
-SKIP: FAILED
+struct modf_result_f32 {
+  float fract;
+  float whole;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+
+void foo() {
+  modf_result_f32 s1 = (modf_result_f32)0;
+}
+
+[numthreads(1, 1, 1)]
+void unused_entry_point() {
+}
+
diff --git a/test/tint/bug/chromium/1417515.wgsl.expected.ir.fxc.hlsl b/test/tint/bug/chromium/1417515.wgsl.expected.ir.fxc.hlsl
index 0ba40c6..054513b 100644
--- a/test/tint/bug/chromium/1417515.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/bug/chromium/1417515.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,14 @@
-SKIP: FAILED
+struct modf_result_f32 {
+  float fract;
+  float whole;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+
+void foo() {
+  modf_result_f32 s1 = (modf_result_f32)0;
+}
+
+[numthreads(1, 1, 1)]
+void unused_entry_point() {
+}
+
diff --git a/test/tint/bug/chromium/1430309.wgsl.expected.ir.dxc.hlsl b/test/tint/bug/chromium/1430309.wgsl.expected.ir.dxc.hlsl
index c6e1d96..be24745 100644
--- a/test/tint/bug/chromium/1430309.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/bug/chromium/1430309.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,26 @@
-SKIP: FAILED
+struct frexp_result_f32 {
+  float f;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Construct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct frexp_result_f32_1 {
+  float fract;
+  int exp;
+};
+
+struct main_outputs {
+  float4 tint_symbol : SV_Target0;
+};
+
+
+static frexp_result_f32 a = (frexp_result_f32)0;
+static const frexp_result_f32_1 v = {0.5f, 1};
+static frexp_result_f32_1 b = v;
+float4 main_inner() {
+  return float4(a.f, b.fract, 0.0f, 0.0f);
+}
+
+main_outputs main() {
+  main_outputs v_1 = {main_inner()};
+  return v_1;
+}
+
diff --git a/test/tint/bug/chromium/1430309.wgsl.expected.ir.fxc.hlsl b/test/tint/bug/chromium/1430309.wgsl.expected.ir.fxc.hlsl
index c6e1d96..be24745 100644
--- a/test/tint/bug/chromium/1430309.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/bug/chromium/1430309.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,26 @@
-SKIP: FAILED
+struct frexp_result_f32 {
+  float f;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Construct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct frexp_result_f32_1 {
+  float fract;
+  int exp;
+};
+
+struct main_outputs {
+  float4 tint_symbol : SV_Target0;
+};
+
+
+static frexp_result_f32 a = (frexp_result_f32)0;
+static const frexp_result_f32_1 v = {0.5f, 1};
+static frexp_result_f32_1 b = v;
+float4 main_inner() {
+  return float4(a.f, b.fract, 0.0f, 0.0f);
+}
+
+main_outputs main() {
+  main_outputs v_1 = {main_inner()};
+  return v_1;
+}
+
diff --git a/test/tint/bug/chromium/1433499.wgsl.expected.ir.dxc.hlsl b/test/tint/bug/chromium/1433499.wgsl.expected.ir.dxc.hlsl
index 6b047b4..ae009bb 100644
--- a/test/tint/bug/chromium/1433499.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/bug/chromium/1433499.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,9 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:287 internal compiler error: Switch() matched no cases. Type: tint::core::ir::FunctionParam
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+void f(inout float p) {
+  float x = p;
+}
+
+[numthreads(1, 1, 1)]
+void unused_entry_point() {
+}
+
diff --git a/test/tint/bug/chromium/1433499.wgsl.expected.ir.fxc.hlsl b/test/tint/bug/chromium/1433499.wgsl.expected.ir.fxc.hlsl
index 6b047b4..ae009bb 100644
--- a/test/tint/bug/chromium/1433499.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/bug/chromium/1433499.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,9 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:287 internal compiler error: Switch() matched no cases. Type: tint::core::ir::FunctionParam
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+void f(inout float p) {
+  float x = p;
+}
+
+[numthreads(1, 1, 1)]
+void unused_entry_point() {
+}
+
diff --git a/test/tint/bug/chromium/1434271.wgsl.expected.ir.dxc.hlsl b/test/tint/bug/chromium/1434271.wgsl.expected.ir.dxc.hlsl
index 9cff948..b345a60 100644
--- a/test/tint/bug/chromium/1434271.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/bug/chromium/1434271.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,173 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 position;
+  float4 color;
+  float2 quad_pos;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: asinh
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct VertexInput {
+  float3 position;
+  float4 color;
+  float2 quad_pos;
+};
+
+struct Particle {
+  float3 position;
+  float lifetime;
+  float4 color;
+  float2 velocity;
+};
+
+struct vertex_main_outputs {
+  float4 tint_symbol_4 : SV_Position;
+};
+
+struct vs_main_outputs {
+  float4 VertexOutput_color : TEXCOORD0;
+  float2 VertexOutput_quad_pos : TEXCOORD1;
+  float4 VertexOutput_position : SV_Position;
+};
+
+struct vs_main_inputs {
+  float3 VertexInput_position : TEXCOORD0;
+  float4 VertexInput_color : TEXCOORD1;
+  float2 VertexInput_quad_pos : TEXCOORD2;
+};
+
+struct simulate_inputs {
+  uint3 GlobalInvocationID : SV_DispatchThreadID;
+};
+
+struct export_level_inputs {
+  uint3 coord : SV_DispatchThreadID;
+};
+
+
+static float2 rand_seed = (0.0f).xx;
+cbuffer cbuffer_render_params : register(b5) {
+  uint4 render_params[6];
+};
+cbuffer cbuffer_sim_params : register(b0) {
+  uint4 sim_params[2];
+};
+RWByteAddressBuffer data : register(u1);
+Texture1D<float4> tint_symbol_2 : register(t2);
+cbuffer cbuffer_ubo : register(b3) {
+  uint4 ubo[1];
+};
+ByteAddressBuffer buf_in : register(t4);
+RWByteAddressBuffer buf_out : register(u5);
+Texture2D<float4> tex_in : register(t6);
+RWTexture2D<float4> tex_out : register(u7);
+void asinh_468a48() {
+  float16_t arg_0 = float16_t(0.0h);
+  float16_t v = arg_0;
+  float16_t res = log((v + sqrt(((v * v) + float16_t(1.0h)))));
+}
+
+float4 vertex_main_inner() {
+  asinh_468a48();
+  return (0.0f).xxxx;
+}
+
+void fragment_main() {
+  asinh_468a48();
+}
+
+[numthreads(1, 1, 1)]
+void rgba32uintin() {
+  asinh_468a48();
+}
+
+float4x4 v_1(uint start_byte_offset) {
+  float4 v_2 = asfloat(render_params[(start_byte_offset / 16u)]);
+  float4 v_3 = asfloat(render_params[((16u + start_byte_offset) / 16u)]);
+  float4 v_4 = asfloat(render_params[((32u + start_byte_offset) / 16u)]);
+  return float4x4(v_2, v_3, v_4, asfloat(render_params[((48u + start_byte_offset) / 16u)]));
+}
+
+VertexOutput vs_main_inner(VertexInput tint_symbol) {
+  float3 v_5 = asfloat(render_params[4u].xyz);
+  float3 quad_pos = mul(tint_symbol.quad_pos, float2x3(v_5, asfloat(render_params[5u].xyz)));
+  float3 position = (tint_symbol.position - (quad_pos + 0.00999999977648258209f));
+  VertexOutput tint_symbol_1 = (VertexOutput)0;
+  float4x4 v_6 = v_1(0u);
+  tint_symbol_1.position = mul(float4(position, 1.0f), v_6);
+  tint_symbol_1.color = tint_symbol.color;
+  tint_symbol_1.quad_pos = tint_symbol.quad_pos;
+  VertexOutput v_7 = tint_symbol_1;
+  return v_7;
+}
+
+void v_8(uint offset, Particle obj) {
+  data.Store3((offset + 0u), asuint(obj.position));
+  data.Store((offset + 12u), asuint(obj.lifetime));
+  data.Store4((offset + 16u), asuint(obj.color));
+  data.Store2((offset + 32u), asuint(obj.velocity));
+}
+
+Particle v_9(uint offset) {
+  float3 v_10 = asfloat(data.Load3((offset + 0u)));
+  float v_11 = asfloat(data.Load((offset + 12u)));
+  float4 v_12 = asfloat(data.Load4((offset + 16u)));
+  Particle v_13 = {v_10, v_11, v_12, asfloat(data.Load2((offset + 32u)))};
+  return v_13;
+}
+
+void simulate_inner(uint3 GlobalInvocationID) {
+  float2 v_14 = asfloat(sim_params[1u]).xy;
+  float2 v_15 = (v_14 * float2(GlobalInvocationID.xy));
+  rand_seed = (v_15 * asfloat(sim_params[1u]).zw);
+  uint idx = GlobalInvocationID[0u];
+  Particle particle = v_9((0u + (uint(idx) * 48u)));
+  uint v_16 = (uint(idx) * 48u);
+  Particle v_17 = particle;
+  v_8((0u + v_16), v_17);
+}
+
+void export_level_inner(uint3 coord) {
+  uint2 v_18 = (0u).xx;
+  tex_out.GetDimensions(v_18[0u], v_18[1u]);
+  if (all((coord.xy < uint2((v_18).xx)))) {
+    uint dst_offset = (coord[0u] << ((coord[1u] * ubo[0u].x) & 31u));
+    uint src_offset = ((coord[0u] - 2u) + ((coord[1u] >> (2u & 31u)) * ubo[0u].x));
+    float a = asfloat(buf_in.Load((0u + (uint((src_offset << (0u & 31u))) * 4u))));
+    float b = asfloat(buf_in.Load((0u + (uint((src_offset + 1u)) * 4u))));
+    float c = asfloat(buf_in.Load((0u + (uint(((src_offset + 1u) + ubo[0u].x)) * 4u))));
+    float d = asfloat(buf_in.Load((0u + (uint(((src_offset + 1u) + ubo[0u].x)) * 4u))));
+    float sum = dot(float4(a, b, c, d), (1.0f).xxxx);
+    uint v_19 = (uint(dst_offset) * 4u);
+    float v_20 = (sum / 4.0f);
+    float v_21 = floor(v_20);
+    buf_out.Store((0u + v_19), asuint(((sum - (((v_20 < 0.0f)) ? (ceil(v_20)) : (v_21))) * 4.0f)));
+    float4 v_22 = float4(a, (a * b), ((a / b) + c), sum);
+    float4 probabilities = (v_22 + max(sum, 0.0f));
+    RWTexture2D<float4> v_23 = tex_out;
+    v_23[int2(coord.xy)] = probabilities;
+  }
+}
+
+vertex_main_outputs vertex_main() {
+  vertex_main_outputs v_24 = {vertex_main_inner()};
+  return v_24;
+}
+
+vs_main_outputs vs_main(vs_main_inputs inputs) {
+  VertexInput v_25 = {inputs.VertexInput_position, inputs.VertexInput_color, inputs.VertexInput_quad_pos};
+  VertexOutput v_26 = vs_main_inner(v_25);
+  VertexOutput v_27 = v_26;
+  VertexOutput v_28 = v_26;
+  VertexOutput v_29 = v_26;
+  vs_main_outputs v_30 = {v_28.color, v_29.quad_pos, v_27.position};
+  return v_30;
+}
+
+[numthreads(64, 1, 1)]
+void simulate(simulate_inputs inputs) {
+  simulate_inner(inputs.GlobalInvocationID);
+}
+
+[numthreads(64, 1, 1)]
+void export_level(export_level_inputs inputs) {
+  export_level_inner(inputs.coord);
+}
+
diff --git a/test/tint/bug/chromium/1434271.wgsl.expected.ir.fxc.hlsl b/test/tint/bug/chromium/1434271.wgsl.expected.ir.fxc.hlsl
index 9cff948..86a4e36 100644
--- a/test/tint/bug/chromium/1434271.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/bug/chromium/1434271.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,179 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: asinh
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct VertexOutput {
+  float4 position;
+  float4 color;
+  float2 quad_pos;
+};
+
+struct VertexInput {
+  float3 position;
+  float4 color;
+  float2 quad_pos;
+};
+
+struct Particle {
+  float3 position;
+  float lifetime;
+  float4 color;
+  float2 velocity;
+};
+
+struct vertex_main_outputs {
+  float4 tint_symbol_4 : SV_Position;
+};
+
+struct vs_main_outputs {
+  float4 VertexOutput_color : TEXCOORD0;
+  float2 VertexOutput_quad_pos : TEXCOORD1;
+  float4 VertexOutput_position : SV_Position;
+};
+
+struct vs_main_inputs {
+  float3 VertexInput_position : TEXCOORD0;
+  float4 VertexInput_color : TEXCOORD1;
+  float2 VertexInput_quad_pos : TEXCOORD2;
+};
+
+struct simulate_inputs {
+  uint3 GlobalInvocationID : SV_DispatchThreadID;
+};
+
+struct export_level_inputs {
+  uint3 coord : SV_DispatchThreadID;
+};
+
+
+static float2 rand_seed = (0.0f).xx;
+cbuffer cbuffer_render_params : register(b5) {
+  uint4 render_params[6];
+};
+cbuffer cbuffer_sim_params : register(b0) {
+  uint4 sim_params[2];
+};
+RWByteAddressBuffer data : register(u1);
+Texture1D<float4> tint_symbol_2 : register(t2);
+cbuffer cbuffer_ubo : register(b3) {
+  uint4 ubo[1];
+};
+ByteAddressBuffer buf_in : register(t4);
+RWByteAddressBuffer buf_out : register(u5);
+Texture2D<float4> tex_in : register(t6);
+RWTexture2D<float4> tex_out : register(u7);
+void asinh_468a48() {
+  float16_t arg_0 = float16_t(0.0h);
+  float16_t v = arg_0;
+  float16_t res = log((v + sqrt(((v * v) + float16_t(1.0h)))));
+}
+
+float4 vertex_main_inner() {
+  asinh_468a48();
+  return (0.0f).xxxx;
+}
+
+void fragment_main() {
+  asinh_468a48();
+}
+
+[numthreads(1, 1, 1)]
+void rgba32uintin() {
+  asinh_468a48();
+}
+
+float4x4 v_1(uint start_byte_offset) {
+  float4 v_2 = asfloat(render_params[(start_byte_offset / 16u)]);
+  float4 v_3 = asfloat(render_params[((16u + start_byte_offset) / 16u)]);
+  float4 v_4 = asfloat(render_params[((32u + start_byte_offset) / 16u)]);
+  return float4x4(v_2, v_3, v_4, asfloat(render_params[((48u + start_byte_offset) / 16u)]));
+}
+
+VertexOutput vs_main_inner(VertexInput tint_symbol) {
+  float3 v_5 = asfloat(render_params[4u].xyz);
+  float3 quad_pos = mul(tint_symbol.quad_pos, float2x3(v_5, asfloat(render_params[5u].xyz)));
+  float3 position = (tint_symbol.position - (quad_pos + 0.00999999977648258209f));
+  VertexOutput tint_symbol_1 = (VertexOutput)0;
+  float4x4 v_6 = v_1(0u);
+  tint_symbol_1.position = mul(float4(position, 1.0f), v_6);
+  tint_symbol_1.color = tint_symbol.color;
+  tint_symbol_1.quad_pos = tint_symbol.quad_pos;
+  VertexOutput v_7 = tint_symbol_1;
+  return v_7;
+}
+
+void v_8(uint offset, Particle obj) {
+  data.Store3((offset + 0u), asuint(obj.position));
+  data.Store((offset + 12u), asuint(obj.lifetime));
+  data.Store4((offset + 16u), asuint(obj.color));
+  data.Store2((offset + 32u), asuint(obj.velocity));
+}
+
+Particle v_9(uint offset) {
+  float3 v_10 = asfloat(data.Load3((offset + 0u)));
+  float v_11 = asfloat(data.Load((offset + 12u)));
+  float4 v_12 = asfloat(data.Load4((offset + 16u)));
+  Particle v_13 = {v_10, v_11, v_12, asfloat(data.Load2((offset + 32u)))};
+  return v_13;
+}
+
+void simulate_inner(uint3 GlobalInvocationID) {
+  float2 v_14 = asfloat(sim_params[1u]).xy;
+  float2 v_15 = (v_14 * float2(GlobalInvocationID.xy));
+  rand_seed = (v_15 * asfloat(sim_params[1u]).zw);
+  uint idx = GlobalInvocationID[0u];
+  Particle particle = v_9((0u + (uint(idx) * 48u)));
+  uint v_16 = (uint(idx) * 48u);
+  Particle v_17 = particle;
+  v_8((0u + v_16), v_17);
+}
+
+void export_level_inner(uint3 coord) {
+  uint2 v_18 = (0u).xx;
+  tex_out.GetDimensions(v_18[0u], v_18[1u]);
+  if (all((coord.xy < uint2((v_18).xx)))) {
+    uint dst_offset = (coord[0u] << ((coord[1u] * ubo[0u].x) & 31u));
+    uint src_offset = ((coord[0u] - 2u) + ((coord[1u] >> (2u & 31u)) * ubo[0u].x));
+    float a = asfloat(buf_in.Load((0u + (uint((src_offset << (0u & 31u))) * 4u))));
+    float b = asfloat(buf_in.Load((0u + (uint((src_offset + 1u)) * 4u))));
+    float c = asfloat(buf_in.Load((0u + (uint(((src_offset + 1u) + ubo[0u].x)) * 4u))));
+    float d = asfloat(buf_in.Load((0u + (uint(((src_offset + 1u) + ubo[0u].x)) * 4u))));
+    float sum = dot(float4(a, b, c, d), (1.0f).xxxx);
+    uint v_19 = (uint(dst_offset) * 4u);
+    float v_20 = (sum / 4.0f);
+    float v_21 = floor(v_20);
+    buf_out.Store((0u + v_19), asuint(((sum - (((v_20 < 0.0f)) ? (ceil(v_20)) : (v_21))) * 4.0f)));
+    float4 v_22 = float4(a, (a * b), ((a / b) + c), sum);
+    float4 probabilities = (v_22 + max(sum, 0.0f));
+    RWTexture2D<float4> v_23 = tex_out;
+    v_23[int2(coord.xy)] = probabilities;
+  }
+}
+
+vertex_main_outputs vertex_main() {
+  vertex_main_outputs v_24 = {vertex_main_inner()};
+  return v_24;
+}
+
+vs_main_outputs vs_main(vs_main_inputs inputs) {
+  VertexInput v_25 = {inputs.VertexInput_position, inputs.VertexInput_color, inputs.VertexInput_quad_pos};
+  VertexOutput v_26 = vs_main_inner(v_25);
+  VertexOutput v_27 = v_26;
+  VertexOutput v_28 = v_26;
+  VertexOutput v_29 = v_26;
+  vs_main_outputs v_30 = {v_28.color, v_29.quad_pos, v_27.position};
+  return v_30;
+}
+
+[numthreads(64, 1, 1)]
+void simulate(simulate_inputs inputs) {
+  simulate_inner(inputs.GlobalInvocationID);
+}
+
+[numthreads(64, 1, 1)]
+void export_level(export_level_inputs inputs) {
+  export_level_inner(inputs.coord);
+}
+
+FXC validation failure:
+c:\src\dawn\Shader@0x000001F068812EA0(62,3-11): error X3000: unrecognized identifier 'float16_t'
+c:\src\dawn\Shader@0x000001F068812EA0(62,13-17): error X3000: unrecognized identifier 'arg_0'
+
diff --git a/test/tint/bug/chromium/1442551.wgsl.expected.ir.dxc.hlsl b/test/tint/bug/chromium/1442551.wgsl.expected.ir.dxc.hlsl
index 3f437dc..b2ed285 100644
--- a/test/tint/bug/chromium/1442551.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/bug/chromium/1442551.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,10 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Access
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+void f() {
+  int i = 1;
+  int b = int2(1, 2)[i];
+}
+
+[numthreads(1, 1, 1)]
+void unused_entry_point() {
+}
+
diff --git a/test/tint/bug/chromium/1442551.wgsl.expected.ir.fxc.hlsl b/test/tint/bug/chromium/1442551.wgsl.expected.ir.fxc.hlsl
index 3f437dc..b2ed285 100644
--- a/test/tint/bug/chromium/1442551.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/bug/chromium/1442551.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,10 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Access
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+void f() {
+  int i = 1;
+  int b = int2(1, 2)[i];
+}
+
+[numthreads(1, 1, 1)]
+void unused_entry_point() {
+}
+
diff --git a/test/tint/bug/chromium/1449474.wgsl.expected.ir.dxc.hlsl b/test/tint/bug/chromium/1449474.wgsl.expected.ir.dxc.hlsl
index 4d16a5a..dd4fb98 100644
--- a/test/tint/bug/chromium/1449474.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/bug/chromium/1449474.wgsl.expected.ir.dxc.hlsl
@@ -1,3 +1,6 @@
+
+static const int v[1][1][1][1][1][1][1][1][1][1][1][1][1][1][1][1][1][1][1][1][1][1][1][1][1][1][1][1][1][1][1][1][1][1][1][1][1][1][1][1][1][1][1][1][1][1][1][1][1][1][1][1][1][1][1][1][1][1][1][1][1][1][1][1][1] = {{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{-6}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}};
+static int arr[1][1][1][1][1][1][1][1][1][1][1][1][1][1][1][1][1][1][1][1][1][1][1][1][1][1][1][1][1][1][1][1][1][1][1][1][1][1][1][1][1][1][1][1][1][1][1][1][1][1][1][1][1][1][1][1][1][1][1][1][1][1][1][1][1] = v;
 void f() {
 }
 
diff --git a/test/tint/bug/chromium/1449474.wgsl.expected.ir.fxc.hlsl b/test/tint/bug/chromium/1449474.wgsl.expected.ir.fxc.hlsl
index 4d16a5a..dd4fb98 100644
--- a/test/tint/bug/chromium/1449474.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/bug/chromium/1449474.wgsl.expected.ir.fxc.hlsl
@@ -1,3 +1,6 @@
+
+static const int v[1][1][1][1][1][1][1][1][1][1][1][1][1][1][1][1][1][1][1][1][1][1][1][1][1][1][1][1][1][1][1][1][1][1][1][1][1][1][1][1][1][1][1][1][1][1][1][1][1][1][1][1][1][1][1][1][1][1][1][1][1][1][1][1][1] = {{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{-6}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}};
+static int arr[1][1][1][1][1][1][1][1][1][1][1][1][1][1][1][1][1][1][1][1][1][1][1][1][1][1][1][1][1][1][1][1][1][1][1][1][1][1][1][1][1][1][1][1][1][1][1][1][1][1][1][1][1][1][1][1][1][1][1][1][1][1][1][1][1] = v;
 void f() {
 }
 
diff --git a/test/tint/bug/chromium/1449538.wgsl.expected.ir.dxc.hlsl b/test/tint/bug/chromium/1449538.wgsl.expected.ir.dxc.hlsl
index adbb0c1..041e1bf 100644
--- a/test/tint/bug/chromium/1449538.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/bug/chromium/1449538.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,104 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:198 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Loop
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+void f() {
+  {
+    int i0520 = 0;
+    while(true) {
+      if (false) {
+      } else {
+        break;
+      }
+      {
+      }
+      continue;
+    }
+  }
+  {
+    int i62 = 0;
+    while(true) {
+      if (false) {
+      } else {
+        break;
+      }
+      {
+      }
+      continue;
+    }
+  }
+  {
+    int i0520 = 0;
+    while(true) {
+      if (false) {
+      } else {
+        break;
+      }
+      {
+      }
+      continue;
+    }
+  }
+  {
+    int i62 = 0;
+    while(true) {
+      if (false) {
+      } else {
+        break;
+      }
+      {
+      }
+      continue;
+    }
+  }
+  {
+    int i62 = 0;
+    while(true) {
+      if (false) {
+      } else {
+        break;
+      }
+      {
+      }
+      continue;
+    }
+  }
+  {
+    int i60 = 0;
+    while(true) {
+      if (false) {
+      } else {
+        break;
+      }
+      {
+      }
+      continue;
+    }
+  }
+  {
+    int i62 = 0;
+    while(true) {
+      if (false) {
+      } else {
+        break;
+      }
+      {
+      }
+      continue;
+    }
+  }
+  {
+    int i60 = 0;
+    while(true) {
+      if (false) {
+      } else {
+        break;
+      }
+      {
+      }
+      continue;
+    }
+  }
+}
+
+[numthreads(1, 1, 1)]
+void unused_entry_point() {
+}
+
diff --git a/test/tint/bug/chromium/1449538.wgsl.expected.ir.fxc.hlsl b/test/tint/bug/chromium/1449538.wgsl.expected.ir.fxc.hlsl
index adbb0c1..041e1bf 100644
--- a/test/tint/bug/chromium/1449538.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/bug/chromium/1449538.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,104 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:198 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Loop
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+void f() {
+  {
+    int i0520 = 0;
+    while(true) {
+      if (false) {
+      } else {
+        break;
+      }
+      {
+      }
+      continue;
+    }
+  }
+  {
+    int i62 = 0;
+    while(true) {
+      if (false) {
+      } else {
+        break;
+      }
+      {
+      }
+      continue;
+    }
+  }
+  {
+    int i0520 = 0;
+    while(true) {
+      if (false) {
+      } else {
+        break;
+      }
+      {
+      }
+      continue;
+    }
+  }
+  {
+    int i62 = 0;
+    while(true) {
+      if (false) {
+      } else {
+        break;
+      }
+      {
+      }
+      continue;
+    }
+  }
+  {
+    int i62 = 0;
+    while(true) {
+      if (false) {
+      } else {
+        break;
+      }
+      {
+      }
+      continue;
+    }
+  }
+  {
+    int i60 = 0;
+    while(true) {
+      if (false) {
+      } else {
+        break;
+      }
+      {
+      }
+      continue;
+    }
+  }
+  {
+    int i62 = 0;
+    while(true) {
+      if (false) {
+      } else {
+        break;
+      }
+      {
+      }
+      continue;
+    }
+  }
+  {
+    int i60 = 0;
+    while(true) {
+      if (false) {
+      } else {
+        break;
+      }
+      {
+      }
+      continue;
+    }
+  }
+}
+
+[numthreads(1, 1, 1)]
+void unused_entry_point() {
+}
+
diff --git a/test/tint/bug/chromium/1501769.wgsl.expected.ir.dxc.hlsl b/test/tint/bug/chromium/1501769.wgsl.expected.ir.dxc.hlsl
index 87c489f..90c0b49 100644
--- a/test/tint/bug/chromium/1501769.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/bug/chromium/1501769.wgsl.expected.ir.dxc.hlsl
@@ -1,3 +1,4 @@
+
 [numthreads(1, 1, 1)]
 void a() {
 }
diff --git a/test/tint/bug/chromium/1501769.wgsl.expected.ir.fxc.hlsl b/test/tint/bug/chromium/1501769.wgsl.expected.ir.fxc.hlsl
index 87c489f..90c0b49 100644
--- a/test/tint/bug/chromium/1501769.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/bug/chromium/1501769.wgsl.expected.ir.fxc.hlsl
@@ -1,3 +1,4 @@
+
 [numthreads(1, 1, 1)]
 void a() {
 }
diff --git a/test/tint/bug/chromium/324466107.wgsl.expected.ir.dxc.hlsl b/test/tint/bug/chromium/324466107.wgsl.expected.ir.dxc.hlsl
index 4d16a5a..4d81aa0 100644
--- a/test/tint/bug/chromium/324466107.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/bug/chromium/324466107.wgsl.expected.ir.dxc.hlsl
@@ -1,3 +1,4 @@
+
 void f() {
 }
 
diff --git a/test/tint/bug/chromium/324466107.wgsl.expected.ir.fxc.hlsl b/test/tint/bug/chromium/324466107.wgsl.expected.ir.fxc.hlsl
index 4d16a5a..4d81aa0 100644
--- a/test/tint/bug/chromium/324466107.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/bug/chromium/324466107.wgsl.expected.ir.fxc.hlsl
@@ -1,3 +1,4 @@
+
 void f() {
 }
 
diff --git a/test/tint/bug/chromium/335592006.wgsl.expected.ir.dxc.hlsl b/test/tint/bug/chromium/335592006.wgsl.expected.ir.dxc.hlsl
index c6e1d96..902ac83 100644
--- a/test/tint/bug/chromium/335592006.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/bug/chromium/335592006.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,20 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Construct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+
+void f() {
+  int a = 1;
+  int(a);
+}
+
+[numthreads(1, 1, 1)]
+void unused_entry_point() {
+}
+
+DXC validation failure:
+hlsl.hlsl:4:7: error: redefinition of 'a'
+  int(a);
+      ^
+hlsl.hlsl:3:7: note: previous definition is here
+  int a = 1;
+      ^
+
diff --git a/test/tint/bug/chromium/335592006.wgsl.expected.ir.fxc.hlsl b/test/tint/bug/chromium/335592006.wgsl.expected.ir.fxc.hlsl
index c6e1d96..5a1fe59 100644
--- a/test/tint/bug/chromium/335592006.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/bug/chromium/335592006.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,10 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Construct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+void f() {
+  int a = 1;
+  int(a);
+}
+
+[numthreads(1, 1, 1)]
+void unused_entry_point() {
+}
+
diff --git a/test/tint/bug/chromium/339684346.wgsl.expected.ir.dxc.hlsl b/test/tint/bug/chromium/339684346.wgsl.expected.ir.dxc.hlsl
index 6b047b4..cf4b914 100644
--- a/test/tint/bug/chromium/339684346.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/bug/chromium/339684346.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,12 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:287 internal compiler error: Switch() matched no cases. Type: tint::core::ir::FunctionParam
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+void a(inout int x) {
+}
+
+void b(inout int x) {
+  a(x);
+}
+
+[numthreads(1, 1, 1)]
+void unused_entry_point() {
+}
+
diff --git a/test/tint/bug/chromium/339684346.wgsl.expected.ir.fxc.hlsl b/test/tint/bug/chromium/339684346.wgsl.expected.ir.fxc.hlsl
index 6b047b4..cf4b914 100644
--- a/test/tint/bug/chromium/339684346.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/bug/chromium/339684346.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,12 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:287 internal compiler error: Switch() matched no cases. Type: tint::core::ir::FunctionParam
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+void a(inout int x) {
+}
+
+void b(inout int x) {
+  a(x);
+}
+
+[numthreads(1, 1, 1)]
+void unused_entry_point() {
+}
+
diff --git a/test/tint/bug/chromium/339704114.wgsl.expected.ir.dxc.hlsl b/test/tint/bug/chromium/339704114.wgsl.expected.ir.dxc.hlsl
index 6b047b4..d76970e 100644
--- a/test/tint/bug/chromium/339704114.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/bug/chromium/339704114.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,9 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:287 internal compiler error: Switch() matched no cases. Type: tint::core::ir::FunctionParam
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+int a(int v) {
+  return v;
+}
+
+[numthreads(1, 1, 1)]
+void b() {
+}
+
diff --git a/test/tint/bug/chromium/339704114.wgsl.expected.ir.fxc.hlsl b/test/tint/bug/chromium/339704114.wgsl.expected.ir.fxc.hlsl
index 6b047b4..d76970e 100644
--- a/test/tint/bug/chromium/339704114.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/bug/chromium/339704114.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,9 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:287 internal compiler error: Switch() matched no cases. Type: tint::core::ir::FunctionParam
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+int a(int v) {
+  return v;
+}
+
+[numthreads(1, 1, 1)]
+void b() {
+}
+
diff --git a/test/tint/bug/chromium/341124493.wgsl.expected.ir.dxc.hlsl b/test/tint/bug/chromium/341124493.wgsl.expected.ir.dxc.hlsl
index bdeab23..99d6237 100644
--- a/test/tint/bug/chromium/341124493.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/bug/chromium/341124493.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,11 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:198 internal compiler error: Switch() matched no cases. Type: tint::core::ir::If
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+void F() {
+  bool b = false;
+  if (false) {
+  }
+}
+
+[numthreads(1, 1, 1)]
+void unused_entry_point() {
+}
+
diff --git a/test/tint/bug/chromium/341124493.wgsl.expected.ir.fxc.hlsl b/test/tint/bug/chromium/341124493.wgsl.expected.ir.fxc.hlsl
index bdeab23..99d6237 100644
--- a/test/tint/bug/chromium/341124493.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/bug/chromium/341124493.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,11 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:198 internal compiler error: Switch() matched no cases. Type: tint::core::ir::If
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+void F() {
+  bool b = false;
+  if (false) {
+  }
+}
+
+[numthreads(1, 1, 1)]
+void unused_entry_point() {
+}
+
diff --git a/test/tint/bug/chromium/342840932.wgsl.expected.ir.dxc.hlsl b/test/tint/bug/chromium/342840932.wgsl.expected.ir.dxc.hlsl
index 9acd2d7..db258b2 100644
--- a/test/tint/bug/chromium/342840932.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/bug/chromium/342840932.wgsl.expected.ir.dxc.hlsl
@@ -1,3 +1,6 @@
+
+Texture1D<uint4> image_dup_src : register(t0);
+RWTexture1D<uint4> image_dst : register(u1);
 [numthreads(1, 1, 1)]
 void unused_entry_point() {
 }
diff --git a/test/tint/bug/chromium/342840932.wgsl.expected.ir.fxc.hlsl b/test/tint/bug/chromium/342840932.wgsl.expected.ir.fxc.hlsl
index 9acd2d7..db258b2 100644
--- a/test/tint/bug/chromium/342840932.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/bug/chromium/342840932.wgsl.expected.ir.fxc.hlsl
@@ -1,3 +1,6 @@
+
+Texture1D<uint4> image_dup_src : register(t0);
+RWTexture1D<uint4> image_dst : register(u1);
 [numthreads(1, 1, 1)]
 void unused_entry_point() {
 }
diff --git a/test/tint/bug/chromium/343597426.wgsl.expected.ir.dxc.hlsl b/test/tint/bug/chromium/343597426.wgsl.expected.ir.dxc.hlsl
index bdeab23..9ba9710 100644
--- a/test/tint/bug/chromium/343597426.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/bug/chromium/343597426.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,20 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:198 internal compiler error: Switch() matched no cases. Type: tint::core::ir::If
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+void foo(bool a, bool b, bool c, bool d, bool e) {
+  if (a) {
+    if (b) {
+      return;
+    }
+    if (c) {
+      if (d) {
+        return;
+      }
+      if (e) {
+      }
+    }
+  }
+}
+
+[numthreads(1, 1, 1)]
+void unused_entry_point() {
+}
+
diff --git a/test/tint/bug/chromium/343597426.wgsl.expected.ir.fxc.hlsl b/test/tint/bug/chromium/343597426.wgsl.expected.ir.fxc.hlsl
index bdeab23..9ba9710 100644
--- a/test/tint/bug/chromium/343597426.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/bug/chromium/343597426.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,20 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:198 internal compiler error: Switch() matched no cases. Type: tint::core::ir::If
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+void foo(bool a, bool b, bool c, bool d, bool e) {
+  if (a) {
+    if (b) {
+      return;
+    }
+    if (c) {
+      if (d) {
+        return;
+      }
+      if (e) {
+      }
+    }
+  }
+}
+
+[numthreads(1, 1, 1)]
+void unused_entry_point() {
+}
+
diff --git a/test/tint/bug/chromium/344265982.wgsl.expected.ir.dxc.hlsl b/test/tint/bug/chromium/344265982.wgsl.expected.ir.dxc.hlsl
index adbb0c1..560e2f1 100644
--- a/test/tint/bug/chromium/344265982.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/bug/chromium/344265982.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,98 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:198 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Loop
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+
+@group(0) @binding(0) var<storage, read_write> buffer : array<i32, 4>;
+
+fn foo(arg : ptr<storage, array<i32, 4>, read_write>) {
+  for(var i = 0; (i < 4); i++) {
+    switch(arg[i]) {
+      case 1: {
+        continue;
+      }
+      default: {
+        arg[i] = 2;
+      }
+    }
+  }
+}
+
+@fragment
+fn main() {
+  foo(&(buffer));
+}
+
+Failed to generate: :26:26 error: binary: %10 is not in scope
+        %9:u32 = add 0u, %10
+                         ^^^
+
+:12:7 note: in block
+      $B4: {  # body
+      ^^^
+
+:37:13 note: %10 declared here
+            %10:u32 = mul %15, 4u
+            ^^^^^^^
+
+note: # Disassembly
+$B1: {  # root
+  %buffer:hlsl.byte_address_buffer<read_write> = var @binding_point(0, 0)
+}
+
+%foo = func():void {
+  $B2: {
+    loop [i: $B3, b: $B4, c: $B5] {  # loop_1
+      $B3: {  # initializer
+        %i:ptr<function, i32, read_write> = var, 0i
+        next_iteration  # -> $B4
+      }
+      $B4: {  # body
+        %4:i32 = load %i
+        %5:bool = lt %4, 4i
+        if %5 [t: $B6, f: $B7] {  # if_1
+          $B6: {  # true
+            exit_if  # if_1
+          }
+          $B7: {  # false
+            exit_loop  # loop_1
+          }
+        }
+        %6:i32 = load %i
+        %7:u32 = convert %6
+        %8:u32 = mul %7, 4u
+        %9:u32 = add 0u, %10
+        %11:u32 = add %9, %8
+        %12:u32 = %buffer.Load %11
+        %13:i32 = bitcast %12
+        switch %13 [c: (1i, $B8), c: (default, $B9)] {  # switch_1
+          $B8: {  # case
+            continue  # -> $B5
+          }
+          $B9: {  # case
+            %14:i32 = load %i
+            %15:u32 = convert %14
+            %10:u32 = mul %15, 4u
+            %16:u32 = add 0u, %10
+            %17:u32 = bitcast 2i
+            %18:void = %buffer.Store %16, %17
+            exit_switch  # switch_1
+          }
+        }
+        continue  # -> $B5
+      }
+      $B5: {  # continuing
+        %19:i32 = load %i
+        %20:i32 = add %19, 1i
+        store %i, %20
+        next_iteration  # -> $B4
+      }
+    }
+    ret
+  }
+}
+%main = @fragment func():void {
+  $B10: {
+    %22:void = call %foo
+    ret
+  }
+}
+
diff --git a/test/tint/bug/chromium/344265982.wgsl.expected.ir.fxc.hlsl b/test/tint/bug/chromium/344265982.wgsl.expected.ir.fxc.hlsl
index adbb0c1..6309eaa 100644
--- a/test/tint/bug/chromium/344265982.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/bug/chromium/344265982.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,43 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:198 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Loop
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+
+RWByteAddressBuffer buffer : register(u0);
+void foo() {
+  {
+    int i = 0;
+    while(true) {
+      if ((i < 4)) {
+      } else {
+        break;
+      }
+      uint v = (uint(i) * 4u);
+      switch(asint(buffer.Load((0u + v)))) {
+        case 1:
+        {
+          {
+            i = (i + 1);
+          }
+          continue;
+        }
+        default:
+        {
+          uint v_1 = ((0u + v) + (uint(i) * 4u));
+          buffer.Store(v_1, asuint(2));
+          break;
+        }
+      }
+      {
+        i = (i + 1);
+      }
+      continue;
+    }
+  }
+}
+
+void main() {
+  foo();
+}
+
+FXC validation failure:
+c:\src\dawn\Shader@0x0000019B9CA05800(18,11-19): error X3708: continue cannot be used in a switch
+
diff --git a/test/tint/bug/chromium/40943165.wgsl.expected.ir.dxc.hlsl b/test/tint/bug/chromium/40943165.wgsl.expected.ir.dxc.hlsl
index 3f437dc..76a69ae 100644
--- a/test/tint/bug/chromium/40943165.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/bug/chromium/40943165.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,19 @@
-SKIP: FAILED
+struct F_inputs {
+  uint mat2x2 : SV_GroupIndex;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Access
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+
+groupshared float2x2 W;
+void F_inner(uint mat2x2_1) {
+  if ((mat2x2_1 == 0u)) {
+    W = float2x2((0.0f).xx, (0.0f).xx);
+  }
+  GroupMemoryBarrierWithGroupSync();
+  W[0] = (W[0] + 0.0f);
+}
+
+[numthreads(1, 1, 1)]
+void F(F_inputs inputs) {
+  F_inner(inputs.mat2x2);
+}
+
diff --git a/test/tint/bug/chromium/40943165.wgsl.expected.ir.fxc.hlsl b/test/tint/bug/chromium/40943165.wgsl.expected.ir.fxc.hlsl
index 3f437dc..76a69ae 100644
--- a/test/tint/bug/chromium/40943165.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/bug/chromium/40943165.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,19 @@
-SKIP: FAILED
+struct F_inputs {
+  uint mat2x2 : SV_GroupIndex;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Access
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+
+groupshared float2x2 W;
+void F_inner(uint mat2x2_1) {
+  if ((mat2x2_1 == 0u)) {
+    W = float2x2((0.0f).xx, (0.0f).xx);
+  }
+  GroupMemoryBarrierWithGroupSync();
+  W[0] = (W[0] + 0.0f);
+}
+
+[numthreads(1, 1, 1)]
+void F(F_inputs inputs) {
+  F_inner(inputs.mat2x2);
+}
+
diff --git a/test/tint/bug/dawn/947.wgsl.expected.ir.dxc.hlsl b/test/tint/bug/dawn/947.wgsl.expected.ir.dxc.hlsl
index 0ba40c6..8dd2937 100644
--- a/test/tint/bug/dawn/947.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/bug/dawn/947.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,73 @@
-SKIP: FAILED
+struct VertexOutputs {
+  float2 texcoords;
+  float4 position;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vs_main_outputs {
+  float2 VertexOutputs_texcoords : TEXCOORD0;
+  float4 VertexOutputs_position : SV_Position;
+};
+
+struct vs_main_inputs {
+  uint VertexIndex : SV_VertexID;
+};
+
+struct fs_main_outputs {
+  float4 tint_symbol : SV_Target0;
+};
+
+struct fs_main_inputs {
+  float2 texcoord : TEXCOORD0;
+};
+
+
+cbuffer cbuffer_uniforms : register(b0) {
+  uint4 uniforms[1];
+};
+SamplerState mySampler : register(s1);
+Texture2D<float4> myTexture : register(t2);
+static bool continue_execution = true;
+VertexOutputs vs_main_inner(uint VertexIndex) {
+  float2 texcoord[3] = {float2(-0.5f, 0.0f), float2(1.5f, 0.0f), float2(0.5f, 2.0f)};
+  VertexOutputs output = (VertexOutputs)0;
+  output.position = float4(((texcoord[VertexIndex] * 2.0f) - (1.0f).xx), 0.0f, 1.0f);
+  bool flipY = (asfloat(uniforms[0u].y) < 0.0f);
+  if (flipY) {
+    float2 v = texcoord[VertexIndex];
+    float2 v_1 = (v * asfloat(uniforms[0u].xy));
+    output.texcoords = (((v_1 + asfloat(uniforms[0u].zw)) * float2(1.0f, -1.0f)) + float2(0.0f, 1.0f));
+  } else {
+    float2 v_2 = ((texcoord[VertexIndex] * float2(1.0f, -1.0f)) + float2(0.0f, 1.0f));
+    float2 v_3 = (v_2 * asfloat(uniforms[0u].xy));
+    output.texcoords = (v_3 + asfloat(uniforms[0u].zw));
+  }
+  VertexOutputs v_4 = output;
+  return v_4;
+}
+
+float4 fs_main_inner(float2 texcoord) {
+  float2 clampedTexcoord = clamp(texcoord, (0.0f).xx, (1.0f).xx);
+  if (!(all((clampedTexcoord == texcoord)))) {
+    continue_execution = false;
+  }
+  float4 srcColor = (0.0f).xxxx;
+  return srcColor;
+}
+
+vs_main_outputs vs_main(vs_main_inputs inputs) {
+  VertexOutputs v_5 = vs_main_inner(inputs.VertexIndex);
+  VertexOutputs v_6 = v_5;
+  VertexOutputs v_7 = v_5;
+  vs_main_outputs v_8 = {v_6.texcoords, v_7.position};
+  return v_8;
+}
+
+fs_main_outputs fs_main(fs_main_inputs inputs) {
+  fs_main_outputs v_9 = {fs_main_inner(inputs.texcoord)};
+  if (!(continue_execution)) {
+    discard;
+  }
+  fs_main_outputs v_10 = v_9;
+  return v_10;
+}
+
diff --git a/test/tint/bug/dawn/947.wgsl.expected.ir.fxc.hlsl b/test/tint/bug/dawn/947.wgsl.expected.ir.fxc.hlsl
index 0ba40c6..8dd2937 100644
--- a/test/tint/bug/dawn/947.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/bug/dawn/947.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,73 @@
-SKIP: FAILED
+struct VertexOutputs {
+  float2 texcoords;
+  float4 position;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vs_main_outputs {
+  float2 VertexOutputs_texcoords : TEXCOORD0;
+  float4 VertexOutputs_position : SV_Position;
+};
+
+struct vs_main_inputs {
+  uint VertexIndex : SV_VertexID;
+};
+
+struct fs_main_outputs {
+  float4 tint_symbol : SV_Target0;
+};
+
+struct fs_main_inputs {
+  float2 texcoord : TEXCOORD0;
+};
+
+
+cbuffer cbuffer_uniforms : register(b0) {
+  uint4 uniforms[1];
+};
+SamplerState mySampler : register(s1);
+Texture2D<float4> myTexture : register(t2);
+static bool continue_execution = true;
+VertexOutputs vs_main_inner(uint VertexIndex) {
+  float2 texcoord[3] = {float2(-0.5f, 0.0f), float2(1.5f, 0.0f), float2(0.5f, 2.0f)};
+  VertexOutputs output = (VertexOutputs)0;
+  output.position = float4(((texcoord[VertexIndex] * 2.0f) - (1.0f).xx), 0.0f, 1.0f);
+  bool flipY = (asfloat(uniforms[0u].y) < 0.0f);
+  if (flipY) {
+    float2 v = texcoord[VertexIndex];
+    float2 v_1 = (v * asfloat(uniforms[0u].xy));
+    output.texcoords = (((v_1 + asfloat(uniforms[0u].zw)) * float2(1.0f, -1.0f)) + float2(0.0f, 1.0f));
+  } else {
+    float2 v_2 = ((texcoord[VertexIndex] * float2(1.0f, -1.0f)) + float2(0.0f, 1.0f));
+    float2 v_3 = (v_2 * asfloat(uniforms[0u].xy));
+    output.texcoords = (v_3 + asfloat(uniforms[0u].zw));
+  }
+  VertexOutputs v_4 = output;
+  return v_4;
+}
+
+float4 fs_main_inner(float2 texcoord) {
+  float2 clampedTexcoord = clamp(texcoord, (0.0f).xx, (1.0f).xx);
+  if (!(all((clampedTexcoord == texcoord)))) {
+    continue_execution = false;
+  }
+  float4 srcColor = (0.0f).xxxx;
+  return srcColor;
+}
+
+vs_main_outputs vs_main(vs_main_inputs inputs) {
+  VertexOutputs v_5 = vs_main_inner(inputs.VertexIndex);
+  VertexOutputs v_6 = v_5;
+  VertexOutputs v_7 = v_5;
+  vs_main_outputs v_8 = {v_6.texcoords, v_7.position};
+  return v_8;
+}
+
+fs_main_outputs fs_main(fs_main_inputs inputs) {
+  fs_main_outputs v_9 = {fs_main_inner(inputs.texcoord)};
+  if (!(continue_execution)) {
+    discard;
+  }
+  fs_main_outputs v_10 = v_9;
+  return v_10;
+}
+
diff --git a/test/tint/bug/fxc/dyn_array_idx/read/function.wgsl.expected.ir.dxc.hlsl b/test/tint/bug/fxc/dyn_array_idx/read/function.wgsl.expected.ir.dxc.hlsl
index 0ba40c6..186a8ec 100644
--- a/test/tint/bug/fxc/dyn_array_idx/read/function.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/bug/fxc/dyn_array_idx/read/function.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,15 @@
-SKIP: FAILED
+struct S {
+  int data[64];
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+
+cbuffer cbuffer_ubo : register(b0) {
+  uint4 ubo[1];
+};
+RWByteAddressBuffer result : register(u1);
+[numthreads(1, 1, 1)]
+void f() {
+  S s = (S)0;
+  result.Store(0u, asuint(s.data[asint(ubo[0u].x)]));
+}
+
diff --git a/test/tint/bug/fxc/dyn_array_idx/read/function.wgsl.expected.ir.fxc.hlsl b/test/tint/bug/fxc/dyn_array_idx/read/function.wgsl.expected.ir.fxc.hlsl
index 0ba40c6..186a8ec 100644
--- a/test/tint/bug/fxc/dyn_array_idx/read/function.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/bug/fxc/dyn_array_idx/read/function.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,15 @@
-SKIP: FAILED
+struct S {
+  int data[64];
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+
+cbuffer cbuffer_ubo : register(b0) {
+  uint4 ubo[1];
+};
+RWByteAddressBuffer result : register(u1);
+[numthreads(1, 1, 1)]
+void f() {
+  S s = (S)0;
+  result.Store(0u, asuint(s.data[asint(ubo[0u].x)]));
+}
+
diff --git a/test/tint/bug/fxc/dyn_array_idx/read/private.wgsl.expected.ir.dxc.hlsl b/test/tint/bug/fxc/dyn_array_idx/read/private.wgsl.expected.ir.dxc.hlsl
index 3f437dc..23e8f6e 100644
--- a/test/tint/bug/fxc/dyn_array_idx/read/private.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/bug/fxc/dyn_array_idx/read/private.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,15 @@
-SKIP: FAILED
+struct S {
+  int data[64];
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Access
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+
+cbuffer cbuffer_ubo : register(b0) {
+  uint4 ubo[1];
+};
+RWByteAddressBuffer result : register(u1);
+static S s = (S)0;
+[numthreads(1, 1, 1)]
+void f() {
+  result.Store(0u, asuint(s.data[asint(ubo[0u].x)]));
+}
+
diff --git a/test/tint/bug/fxc/dyn_array_idx/read/private.wgsl.expected.ir.fxc.hlsl b/test/tint/bug/fxc/dyn_array_idx/read/private.wgsl.expected.ir.fxc.hlsl
index 3f437dc..23e8f6e 100644
--- a/test/tint/bug/fxc/dyn_array_idx/read/private.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/bug/fxc/dyn_array_idx/read/private.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,15 @@
-SKIP: FAILED
+struct S {
+  int data[64];
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Access
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+
+cbuffer cbuffer_ubo : register(b0) {
+  uint4 ubo[1];
+};
+RWByteAddressBuffer result : register(u1);
+static S s = (S)0;
+[numthreads(1, 1, 1)]
+void f() {
+  result.Store(0u, asuint(s.data[asint(ubo[0u].x)]));
+}
+
diff --git a/test/tint/bug/fxc/dyn_array_idx/read/storage.wgsl.expected.ir.dxc.hlsl b/test/tint/bug/fxc/dyn_array_idx/read/storage.wgsl.expected.ir.dxc.hlsl
index 3f437dc..bb5c58a 100644
--- a/test/tint/bug/fxc/dyn_array_idx/read/storage.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/bug/fxc/dyn_array_idx/read/storage.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,11 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Access
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+cbuffer cbuffer_ubo : register(b0) {
+  uint4 ubo[1];
+};
+RWByteAddressBuffer result : register(u2);
+RWByteAddressBuffer ssbo : register(u1);
+[numthreads(1, 1, 1)]
+void f() {
+  result.Store(0u, asuint(asint(ssbo.Load((0u + (uint(asint(ubo[0u].x)) * 4u))))));
+}
+
diff --git a/test/tint/bug/fxc/dyn_array_idx/read/storage.wgsl.expected.ir.fxc.hlsl b/test/tint/bug/fxc/dyn_array_idx/read/storage.wgsl.expected.ir.fxc.hlsl
index 3f437dc..bb5c58a 100644
--- a/test/tint/bug/fxc/dyn_array_idx/read/storage.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/bug/fxc/dyn_array_idx/read/storage.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,11 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Access
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+cbuffer cbuffer_ubo : register(b0) {
+  uint4 ubo[1];
+};
+RWByteAddressBuffer result : register(u2);
+RWByteAddressBuffer ssbo : register(u1);
+[numthreads(1, 1, 1)]
+void f() {
+  result.Store(0u, asuint(asint(ssbo.Load((0u + (uint(asint(ubo[0u].x)) * 4u))))));
+}
+
diff --git a/test/tint/bug/fxc/dyn_array_idx/read/uniform.wgsl.expected.ir.dxc.hlsl b/test/tint/bug/fxc/dyn_array_idx/read/uniform.wgsl.expected.ir.dxc.hlsl
index 3f437dc..fb1d6a6 100644
--- a/test/tint/bug/fxc/dyn_array_idx/read/uniform.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/bug/fxc/dyn_array_idx/read/uniform.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,11 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Access
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+cbuffer cbuffer_ubo : register(b0) {
+  uint4 ubo[5];
+};
+RWByteAddressBuffer result : register(u2);
+[numthreads(1, 1, 1)]
+void f() {
+  uint v = (16u * uint(asint(ubo[4u].x)));
+  result.Store(0u, asuint(asint(ubo[(v / 16u)][((v % 16u) / 4u)])));
+}
+
diff --git a/test/tint/bug/fxc/dyn_array_idx/read/uniform.wgsl.expected.ir.fxc.hlsl b/test/tint/bug/fxc/dyn_array_idx/read/uniform.wgsl.expected.ir.fxc.hlsl
index 3f437dc..fb1d6a6 100644
--- a/test/tint/bug/fxc/dyn_array_idx/read/uniform.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/bug/fxc/dyn_array_idx/read/uniform.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,11 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Access
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+cbuffer cbuffer_ubo : register(b0) {
+  uint4 ubo[5];
+};
+RWByteAddressBuffer result : register(u2);
+[numthreads(1, 1, 1)]
+void f() {
+  uint v = (16u * uint(asint(ubo[4u].x)));
+  result.Store(0u, asuint(asint(ubo[(v / 16u)][((v % 16u) / 4u)])));
+}
+
diff --git a/test/tint/bug/fxc/dyn_array_idx/read/workgroup.wgsl.expected.ir.dxc.hlsl b/test/tint/bug/fxc/dyn_array_idx/read/workgroup.wgsl.expected.ir.dxc.hlsl
index 3f437dc..9bb0b2c 100644
--- a/test/tint/bug/fxc/dyn_array_idx/read/workgroup.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/bug/fxc/dyn_array_idx/read/workgroup.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,39 @@
-SKIP: FAILED
+struct S {
+  int data[64];
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Access
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct f_inputs {
+  uint tint_local_index : SV_GroupIndex;
+};
+
+
+cbuffer cbuffer_ubo : register(b0) {
+  uint4 ubo[1];
+};
+RWByteAddressBuffer result : register(u1);
+groupshared S s;
+void f_inner(uint tint_local_index) {
+  {
+    uint v = 0u;
+    v = tint_local_index;
+    while(true) {
+      uint v_1 = v;
+      if ((v_1 >= 64u)) {
+        break;
+      }
+      s.data[v_1] = 0;
+      {
+        v = (v_1 + 1u);
+      }
+      continue;
+    }
+  }
+  GroupMemoryBarrierWithGroupSync();
+  result.Store(0u, asuint(s.data[asint(ubo[0u].x)]));
+}
+
+[numthreads(1, 1, 1)]
+void f(f_inputs inputs) {
+  f_inner(inputs.tint_local_index);
+}
+
diff --git a/test/tint/bug/fxc/dyn_array_idx/read/workgroup.wgsl.expected.ir.fxc.hlsl b/test/tint/bug/fxc/dyn_array_idx/read/workgroup.wgsl.expected.ir.fxc.hlsl
index 3f437dc..9bb0b2c 100644
--- a/test/tint/bug/fxc/dyn_array_idx/read/workgroup.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/bug/fxc/dyn_array_idx/read/workgroup.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,39 @@
-SKIP: FAILED
+struct S {
+  int data[64];
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Access
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct f_inputs {
+  uint tint_local_index : SV_GroupIndex;
+};
+
+
+cbuffer cbuffer_ubo : register(b0) {
+  uint4 ubo[1];
+};
+RWByteAddressBuffer result : register(u1);
+groupshared S s;
+void f_inner(uint tint_local_index) {
+  {
+    uint v = 0u;
+    v = tint_local_index;
+    while(true) {
+      uint v_1 = v;
+      if ((v_1 >= 64u)) {
+        break;
+      }
+      s.data[v_1] = 0;
+      {
+        v = (v_1 + 1u);
+      }
+      continue;
+    }
+  }
+  GroupMemoryBarrierWithGroupSync();
+  result.Store(0u, asuint(s.data[asint(ubo[0u].x)]));
+}
+
+[numthreads(1, 1, 1)]
+void f(f_inputs inputs) {
+  f_inner(inputs.tint_local_index);
+}
+
diff --git a/test/tint/bug/fxc/dyn_array_idx/write/function.wgsl.expected.ir.dxc.hlsl b/test/tint/bug/fxc/dyn_array_idx/write/function.wgsl.expected.ir.dxc.hlsl
index 0ba40c6..c60a7e7 100644
--- a/test/tint/bug/fxc/dyn_array_idx/write/function.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/bug/fxc/dyn_array_idx/write/function.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,16 @@
-SKIP: FAILED
+struct S {
+  int data[64];
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+
+cbuffer cbuffer_ubo : register(b0) {
+  uint4 ubo[1];
+};
+RWByteAddressBuffer result : register(u1);
+[numthreads(1, 1, 1)]
+void f() {
+  S s = (S)0;
+  s.data[asint(ubo[0u].x)] = 1;
+  result.Store(0u, asuint(s.data[3]));
+}
+
diff --git a/test/tint/bug/fxc/dyn_array_idx/write/function.wgsl.expected.ir.fxc.hlsl b/test/tint/bug/fxc/dyn_array_idx/write/function.wgsl.expected.ir.fxc.hlsl
index 0ba40c6..73db0d5 100644
--- a/test/tint/bug/fxc/dyn_array_idx/write/function.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/bug/fxc/dyn_array_idx/write/function.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,21 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct S {
+  int data[64];
+};
+
+
+cbuffer cbuffer_ubo : register(b0) {
+  uint4 ubo[1];
+};
+RWByteAddressBuffer result : register(u1);
+[numthreads(1, 1, 1)]
+void f() {
+  S s = (S)0;
+  s.data[asint(ubo[0u].x)] = 1;
+  result.Store(0u, asuint(s.data[3]));
+}
+
+FXC validation failure:
+c:\src\dawn\Shader@0x000001CD7F5D0300(13,3-26): error X3500: array reference cannot be used as an l-value; not natively addressable
+
diff --git a/test/tint/bug/fxc/dyn_array_idx/write/function_via_param.wgsl.expected.ir.dxc.hlsl b/test/tint/bug/fxc/dyn_array_idx/write/function_via_param.wgsl.expected.ir.dxc.hlsl
index 3f437dc..93c1ca1 100644
--- a/test/tint/bug/fxc/dyn_array_idx/write/function_via_param.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/bug/fxc/dyn_array_idx/write/function_via_param.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,20 @@
-SKIP: FAILED
+struct S {
+  int data[64];
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Access
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+
+cbuffer cbuffer_ubo : register(b0) {
+  uint4 ubo[1];
+};
+RWByteAddressBuffer result : register(u1);
+void x(inout S p) {
+  p.data[asint(ubo[0u].x)] = 1;
+}
+
+[numthreads(1, 1, 1)]
+void f() {
+  S s = (S)0;
+  x(s);
+  result.Store(0u, asuint(s.data[3]));
+}
+
diff --git a/test/tint/bug/fxc/dyn_array_idx/write/function_via_param.wgsl.expected.ir.fxc.hlsl b/test/tint/bug/fxc/dyn_array_idx/write/function_via_param.wgsl.expected.ir.fxc.hlsl
index 3f437dc..870458a 100644
--- a/test/tint/bug/fxc/dyn_array_idx/write/function_via_param.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/bug/fxc/dyn_array_idx/write/function_via_param.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,25 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Access
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct S {
+  int data[64];
+};
+
+
+cbuffer cbuffer_ubo : register(b0) {
+  uint4 ubo[1];
+};
+RWByteAddressBuffer result : register(u1);
+void x(inout S p) {
+  p.data[asint(ubo[0u].x)] = 1;
+}
+
+[numthreads(1, 1, 1)]
+void f() {
+  S s = (S)0;
+  x(s);
+  result.Store(0u, asuint(s.data[3]));
+}
+
+FXC validation failure:
+c:\src\dawn\Shader@0x000001969F6CFCC0(11,3-26): error X3500: array reference cannot be used as an l-value; not natively addressable
+
diff --git a/test/tint/bug/fxc/dyn_array_idx/write/private.wgsl.expected.ir.dxc.hlsl b/test/tint/bug/fxc/dyn_array_idx/write/private.wgsl.expected.ir.dxc.hlsl
index 3f437dc..ea4afcd 100644
--- a/test/tint/bug/fxc/dyn_array_idx/write/private.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/bug/fxc/dyn_array_idx/write/private.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,16 @@
-SKIP: FAILED
+struct S {
+  int data[64];
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Access
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+
+cbuffer cbuffer_ubo : register(b0) {
+  uint4 ubo[1];
+};
+RWByteAddressBuffer result : register(u1);
+static S s = (S)0;
+[numthreads(1, 1, 1)]
+void f() {
+  s.data[asint(ubo[0u].x)] = 1;
+  result.Store(0u, asuint(s.data[3]));
+}
+
diff --git a/test/tint/bug/fxc/dyn_array_idx/write/private.wgsl.expected.ir.fxc.hlsl b/test/tint/bug/fxc/dyn_array_idx/write/private.wgsl.expected.ir.fxc.hlsl
index 3f437dc..941c916df 100644
--- a/test/tint/bug/fxc/dyn_array_idx/write/private.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/bug/fxc/dyn_array_idx/write/private.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,21 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Access
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct S {
+  int data[64];
+};
+
+
+cbuffer cbuffer_ubo : register(b0) {
+  uint4 ubo[1];
+};
+RWByteAddressBuffer result : register(u1);
+static S s = (S)0;
+[numthreads(1, 1, 1)]
+void f() {
+  s.data[asint(ubo[0u].x)] = 1;
+  result.Store(0u, asuint(s.data[3]));
+}
+
+FXC validation failure:
+c:\src\dawn\Shader@0x000002B5D72C56C0(13,3-26): error X3500: array reference cannot be used as an l-value; not natively addressable
+
diff --git a/test/tint/bug/fxc/dyn_array_idx/write/private_via_param.wgsl.expected.ir.dxc.hlsl b/test/tint/bug/fxc/dyn_array_idx/write/private_via_param.wgsl.expected.ir.dxc.hlsl
index 3f437dc..fd1ec3d 100644
--- a/test/tint/bug/fxc/dyn_array_idx/write/private_via_param.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/bug/fxc/dyn_array_idx/write/private_via_param.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,20 @@
-SKIP: FAILED
+struct S {
+  int data[64];
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Access
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+
+cbuffer cbuffer_ubo : register(b0) {
+  uint4 ubo[1];
+};
+RWByteAddressBuffer result : register(u1);
+static S s = (S)0;
+void x(inout S p) {
+  p.data[asint(ubo[0u].x)] = 1;
+}
+
+[numthreads(1, 1, 1)]
+void f() {
+  x(s);
+  result.Store(0u, asuint(s.data[3]));
+}
+
diff --git a/test/tint/bug/fxc/dyn_array_idx/write/private_via_param.wgsl.expected.ir.fxc.hlsl b/test/tint/bug/fxc/dyn_array_idx/write/private_via_param.wgsl.expected.ir.fxc.hlsl
index 3f437dc..7835acc 100644
--- a/test/tint/bug/fxc/dyn_array_idx/write/private_via_param.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/bug/fxc/dyn_array_idx/write/private_via_param.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,25 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Access
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct S {
+  int data[64];
+};
+
+
+cbuffer cbuffer_ubo : register(b0) {
+  uint4 ubo[1];
+};
+RWByteAddressBuffer result : register(u1);
+static S s = (S)0;
+void x(inout S p) {
+  p.data[asint(ubo[0u].x)] = 1;
+}
+
+[numthreads(1, 1, 1)]
+void f() {
+  x(s);
+  result.Store(0u, asuint(s.data[3]));
+}
+
+FXC validation failure:
+c:\src\dawn\Shader@0x00000201C018C8B0(12,3-26): error X3500: array reference cannot be used as an l-value; not natively addressable
+
diff --git a/test/tint/bug/fxc/dyn_array_idx/write/storage.wgsl.expected.ir.dxc.hlsl b/test/tint/bug/fxc/dyn_array_idx/write/storage.wgsl.expected.ir.dxc.hlsl
index 3f437dc..082b4bf 100644
--- a/test/tint/bug/fxc/dyn_array_idx/write/storage.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/bug/fxc/dyn_array_idx/write/storage.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,13 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Access
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+cbuffer cbuffer_ubo : register(b0) {
+  uint4 ubo[1];
+};
+RWByteAddressBuffer result : register(u2);
+RWByteAddressBuffer ssbo : register(u1);
+[numthreads(1, 1, 1)]
+void f() {
+  uint v = (0u + (uint(asint(ubo[0u].x)) * 4u));
+  ssbo.Store(v, asuint(1));
+  result.Store(0u, asuint(asint(ssbo.Load(12u))));
+}
+
diff --git a/test/tint/bug/fxc/dyn_array_idx/write/storage.wgsl.expected.ir.fxc.hlsl b/test/tint/bug/fxc/dyn_array_idx/write/storage.wgsl.expected.ir.fxc.hlsl
index 3f437dc..082b4bf 100644
--- a/test/tint/bug/fxc/dyn_array_idx/write/storage.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/bug/fxc/dyn_array_idx/write/storage.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,13 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Access
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+cbuffer cbuffer_ubo : register(b0) {
+  uint4 ubo[1];
+};
+RWByteAddressBuffer result : register(u2);
+RWByteAddressBuffer ssbo : register(u1);
+[numthreads(1, 1, 1)]
+void f() {
+  uint v = (0u + (uint(asint(ubo[0u].x)) * 4u));
+  ssbo.Store(v, asuint(1));
+  result.Store(0u, asuint(asint(ssbo.Load(12u))));
+}
+
diff --git a/test/tint/bug/fxc/dyn_array_idx/write/workgroup.wgsl.expected.ir.dxc.hlsl b/test/tint/bug/fxc/dyn_array_idx/write/workgroup.wgsl.expected.ir.dxc.hlsl
index 3f437dc..e3372ae 100644
--- a/test/tint/bug/fxc/dyn_array_idx/write/workgroup.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/bug/fxc/dyn_array_idx/write/workgroup.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,40 @@
-SKIP: FAILED
+struct S {
+  int data[64];
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Access
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct f_inputs {
+  uint tint_local_index : SV_GroupIndex;
+};
+
+
+cbuffer cbuffer_ubo : register(b0) {
+  uint4 ubo[1];
+};
+RWByteAddressBuffer result : register(u1);
+groupshared S s;
+void f_inner(uint tint_local_index) {
+  {
+    uint v = 0u;
+    v = tint_local_index;
+    while(true) {
+      uint v_1 = v;
+      if ((v_1 >= 64u)) {
+        break;
+      }
+      s.data[v_1] = 0;
+      {
+        v = (v_1 + 1u);
+      }
+      continue;
+    }
+  }
+  GroupMemoryBarrierWithGroupSync();
+  s.data[asint(ubo[0u].x)] = 1;
+  result.Store(0u, asuint(s.data[3]));
+}
+
+[numthreads(1, 1, 1)]
+void f(f_inputs inputs) {
+  f_inner(inputs.tint_local_index);
+}
+
diff --git a/test/tint/bug/fxc/dyn_array_idx/write/workgroup.wgsl.expected.ir.fxc.hlsl b/test/tint/bug/fxc/dyn_array_idx/write/workgroup.wgsl.expected.ir.fxc.hlsl
index 3f437dc..e3372ae 100644
--- a/test/tint/bug/fxc/dyn_array_idx/write/workgroup.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/bug/fxc/dyn_array_idx/write/workgroup.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,40 @@
-SKIP: FAILED
+struct S {
+  int data[64];
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Access
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct f_inputs {
+  uint tint_local_index : SV_GroupIndex;
+};
+
+
+cbuffer cbuffer_ubo : register(b0) {
+  uint4 ubo[1];
+};
+RWByteAddressBuffer result : register(u1);
+groupshared S s;
+void f_inner(uint tint_local_index) {
+  {
+    uint v = 0u;
+    v = tint_local_index;
+    while(true) {
+      uint v_1 = v;
+      if ((v_1 >= 64u)) {
+        break;
+      }
+      s.data[v_1] = 0;
+      {
+        v = (v_1 + 1u);
+      }
+      continue;
+    }
+  }
+  GroupMemoryBarrierWithGroupSync();
+  s.data[asint(ubo[0u].x)] = 1;
+  result.Store(0u, asuint(s.data[3]));
+}
+
+[numthreads(1, 1, 1)]
+void f(f_inputs inputs) {
+  f_inner(inputs.tint_local_index);
+}
+
diff --git a/test/tint/bug/fxc/gradient_in_varying_loop/1112.wgsl.expected.ir.dxc.hlsl b/test/tint/bug/fxc/gradient_in_varying_loop/1112.wgsl.expected.ir.dxc.hlsl
index ba8c686..58230f6 100644
--- a/test/tint/bug/fxc/gradient_in_varying_loop/1112.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/bug/fxc/gradient_in_varying_loop/1112.wgsl.expected.ir.dxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Swizzle
+..\..\src\tint\lang\hlsl\writer\printer\printer.cc:1010 internal compiler error: TINT_UNREACHABLE unhandled: textureSample
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/bug/fxc/gradient_in_varying_loop/1112.wgsl.expected.ir.fxc.hlsl b/test/tint/bug/fxc/gradient_in_varying_loop/1112.wgsl.expected.ir.fxc.hlsl
index ba8c686..58230f6 100644
--- a/test/tint/bug/fxc/gradient_in_varying_loop/1112.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/bug/fxc/gradient_in_varying_loop/1112.wgsl.expected.ir.fxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Swizzle
+..\..\src\tint\lang\hlsl\writer\printer\printer.cc:1010 internal compiler error: TINT_UNREACHABLE unhandled: textureSample
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/bug/fxc/indexed_assign_to_array_in_struct/1206.wgsl.expected.ir.dxc.hlsl b/test/tint/bug/fxc/indexed_assign_to_array_in_struct/1206.wgsl.expected.ir.dxc.hlsl
index 3f437dc..24e2323 100644
--- a/test/tint/bug/fxc/indexed_assign_to_array_in_struct/1206.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/bug/fxc/indexed_assign_to_array_in_struct/1206.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,49 @@
-SKIP: FAILED
+struct Particle {
+  float3 position[8];
+  float lifetime;
+  float4 color;
+  float3 velocity;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Access
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+
+ByteAddressBuffer particles : register(t3, space1);
+cbuffer cbuffer_sim : register(b4, space1) {
+  uint4 sim[1];
+};
+typedef float3 ary_ret[8];
+ary_ret v(uint offset) {
+  float3 a[8] = (float3[8])0;
+  {
+    uint v_1 = 0u;
+    v_1 = 0u;
+    while(true) {
+      uint v_2 = v_1;
+      if ((v_2 >= 8u)) {
+        break;
+      }
+      a[v_2] = asfloat(particles.Load3((offset + (v_2 * 16u))));
+      {
+        v_1 = (v_2 + 1u);
+      }
+      continue;
+    }
+  }
+  float3 v_3[8] = a;
+  return v_3;
+}
+
+Particle v_4(uint offset) {
+  float3 v_5[8] = v((offset + 0u));
+  float v_6 = asfloat(particles.Load((offset + 128u)));
+  float4 v_7 = asfloat(particles.Load4((offset + 144u)));
+  float3 v_8[8] = v_5;
+  Particle v_9 = {v_8, v_6, v_7, asfloat(particles.Load3((offset + 160u)))};
+  return v_9;
+}
+
+[numthreads(1, 1, 1)]
+void main() {
+  Particle particle = v_4(0u);
+  particle.position[sim[0u].x] = particle.position[sim[0u].x];
+}
+
diff --git a/test/tint/bug/fxc/indexed_assign_to_array_in_struct/1206.wgsl.expected.ir.fxc.hlsl b/test/tint/bug/fxc/indexed_assign_to_array_in_struct/1206.wgsl.expected.ir.fxc.hlsl
index 3f437dc..0b0c5c2 100644
--- a/test/tint/bug/fxc/indexed_assign_to_array_in_struct/1206.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/bug/fxc/indexed_assign_to_array_in_struct/1206.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,54 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Access
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct Particle {
+  float3 position[8];
+  float lifetime;
+  float4 color;
+  float3 velocity;
+};
+
+
+ByteAddressBuffer particles : register(t3, space1);
+cbuffer cbuffer_sim : register(b4, space1) {
+  uint4 sim[1];
+};
+typedef float3 ary_ret[8];
+ary_ret v(uint offset) {
+  float3 a[8] = (float3[8])0;
+  {
+    uint v_1 = 0u;
+    v_1 = 0u;
+    while(true) {
+      uint v_2 = v_1;
+      if ((v_2 >= 8u)) {
+        break;
+      }
+      a[v_2] = asfloat(particles.Load3((offset + (v_2 * 16u))));
+      {
+        v_1 = (v_2 + 1u);
+      }
+      continue;
+    }
+  }
+  float3 v_3[8] = a;
+  return v_3;
+}
+
+Particle v_4(uint offset) {
+  float3 v_5[8] = v((offset + 0u));
+  float v_6 = asfloat(particles.Load((offset + 128u)));
+  float4 v_7 = asfloat(particles.Load4((offset + 144u)));
+  float3 v_8[8] = v_5;
+  Particle v_9 = {v_8, v_6, v_7, asfloat(particles.Load3((offset + 160u)))};
+  return v_9;
+}
+
+[numthreads(1, 1, 1)]
+void main() {
+  Particle particle = v_4(0u);
+  particle.position[sim[0u].x] = particle.position[sim[0u].x];
+}
+
+FXC validation failure:
+c:\src\dawn\Shader@0x0000020532E70E60(47,3-30): error X3500: array reference cannot be used as an l-value; not natively addressable
+
diff --git a/test/tint/bug/fxc/matrix_assignment_dynamic_index/local_assign_scalar_x.wgsl.expected.ir.dxc.hlsl b/test/tint/bug/fxc/matrix_assignment_dynamic_index/local_assign_scalar_x.wgsl.expected.ir.dxc.hlsl
index c0935cc..98e64a7 100644
--- a/test/tint/bug/fxc/matrix_assignment_dynamic_index/local_assign_scalar_x.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/bug/fxc/matrix_assignment_dynamic_index/local_assign_scalar_x.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,10 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:198 internal compiler error: Switch() matched no cases. Type: tint::core::ir::StoreVectorElement
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+cbuffer cbuffer_uniforms : register(b4, space1) {
+  uint4 uniforms[1];
+};
+[numthreads(1, 1, 1)]
+void main() {
+  float2x4 m1 = float2x4((0.0f).xxxx, (0.0f).xxxx);
+  m1[uniforms[0u].x][0] = 1.0f;
+}
+
diff --git a/test/tint/bug/fxc/matrix_assignment_dynamic_index/local_assign_scalar_x.wgsl.expected.ir.fxc.hlsl b/test/tint/bug/fxc/matrix_assignment_dynamic_index/local_assign_scalar_x.wgsl.expected.ir.fxc.hlsl
index c0935cc..cbbf850 100644
--- a/test/tint/bug/fxc/matrix_assignment_dynamic_index/local_assign_scalar_x.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/bug/fxc/matrix_assignment_dynamic_index/local_assign_scalar_x.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,15 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:198 internal compiler error: Switch() matched no cases. Type: tint::core::ir::StoreVectorElement
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+
+cbuffer cbuffer_uniforms : register(b4, space1) {
+  uint4 uniforms[1];
+};
+[numthreads(1, 1, 1)]
+void main() {
+  float2x4 m1 = float2x4((0.0f).xxxx, (0.0f).xxxx);
+  m1[uniforms[0u].x][0] = 1.0f;
+}
+
+FXC validation failure:
+c:\src\dawn\Shader@0x0000028ADF6DF550(8,3-20): error X3500: array reference cannot be used as an l-value; not natively addressable
+
diff --git a/test/tint/bug/fxc/matrix_assignment_dynamic_index/local_assign_scalar_xy.wgsl.expected.ir.dxc.hlsl b/test/tint/bug/fxc/matrix_assignment_dynamic_index/local_assign_scalar_xy.wgsl.expected.ir.dxc.hlsl
index c0935cc..542318f 100644
--- a/test/tint/bug/fxc/matrix_assignment_dynamic_index/local_assign_scalar_xy.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/bug/fxc/matrix_assignment_dynamic_index/local_assign_scalar_xy.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,10 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:198 internal compiler error: Switch() matched no cases. Type: tint::core::ir::StoreVectorElement
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+cbuffer cbuffer_uniforms : register(b4, space1) {
+  uint4 uniforms[1];
+};
+[numthreads(1, 1, 1)]
+void main() {
+  float2x4 m1 = float2x4((0.0f).xxxx, (0.0f).xxxx);
+  m1[uniforms[0u].x][uniforms[0u].y] = 1.0f;
+}
+
diff --git a/test/tint/bug/fxc/matrix_assignment_dynamic_index/local_assign_scalar_xy.wgsl.expected.ir.fxc.hlsl b/test/tint/bug/fxc/matrix_assignment_dynamic_index/local_assign_scalar_xy.wgsl.expected.ir.fxc.hlsl
index c0935cc..c956341 100644
--- a/test/tint/bug/fxc/matrix_assignment_dynamic_index/local_assign_scalar_xy.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/bug/fxc/matrix_assignment_dynamic_index/local_assign_scalar_xy.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,15 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:198 internal compiler error: Switch() matched no cases. Type: tint::core::ir::StoreVectorElement
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+
+cbuffer cbuffer_uniforms : register(b4, space1) {
+  uint4 uniforms[1];
+};
+[numthreads(1, 1, 1)]
+void main() {
+  float2x4 m1 = float2x4((0.0f).xxxx, (0.0f).xxxx);
+  m1[uniforms[0u].x][uniforms[0u].y] = 1.0f;
+}
+
+FXC validation failure:
+c:\src\dawn\Shader@0x000001DD528DFBB0(8,3-20): error X3500: array reference cannot be used as an l-value; not natively addressable
+
diff --git a/test/tint/bug/fxc/matrix_assignment_dynamic_index/local_assign_scalar_y.wgsl.expected.ir.dxc.hlsl b/test/tint/bug/fxc/matrix_assignment_dynamic_index/local_assign_scalar_y.wgsl.expected.ir.dxc.hlsl
index c0935cc..c6e2f6f 100644
--- a/test/tint/bug/fxc/matrix_assignment_dynamic_index/local_assign_scalar_y.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/bug/fxc/matrix_assignment_dynamic_index/local_assign_scalar_y.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,10 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:198 internal compiler error: Switch() matched no cases. Type: tint::core::ir::StoreVectorElement
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+cbuffer cbuffer_uniforms : register(b4, space1) {
+  uint4 uniforms[1];
+};
+static float2x4 m1 = float2x4((0.0f).xxxx, (0.0f).xxxx);
+[numthreads(1, 1, 1)]
+void main() {
+  m1[0][uniforms[0u].y] = 1.0f;
+}
+
diff --git a/test/tint/bug/fxc/matrix_assignment_dynamic_index/local_assign_scalar_y.wgsl.expected.ir.fxc.hlsl b/test/tint/bug/fxc/matrix_assignment_dynamic_index/local_assign_scalar_y.wgsl.expected.ir.fxc.hlsl
index c0935cc..1b508c1 100644
--- a/test/tint/bug/fxc/matrix_assignment_dynamic_index/local_assign_scalar_y.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/bug/fxc/matrix_assignment_dynamic_index/local_assign_scalar_y.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,15 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:198 internal compiler error: Switch() matched no cases. Type: tint::core::ir::StoreVectorElement
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+
+cbuffer cbuffer_uniforms : register(b4, space1) {
+  uint4 uniforms[1];
+};
+static float2x4 m1 = float2x4((0.0f).xxxx, (0.0f).xxxx);
+[numthreads(1, 1, 1)]
+void main() {
+  m1[0][uniforms[0u].y] = 1.0f;
+}
+
+FXC validation failure:
+c:\src\dawn\Shader@0x0000028DFFD6F3E0(8,3-23): error X3500: array reference cannot be used as an l-value; not natively addressable
+
diff --git a/test/tint/bug/fxc/matrix_assignment_dynamic_index/local_assign_vector.wgsl.expected.ir.dxc.hlsl b/test/tint/bug/fxc/matrix_assignment_dynamic_index/local_assign_vector.wgsl.expected.ir.dxc.hlsl
index 3f437dc..19af7e8 100644
--- a/test/tint/bug/fxc/matrix_assignment_dynamic_index/local_assign_vector.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/bug/fxc/matrix_assignment_dynamic_index/local_assign_vector.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,10 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Access
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+cbuffer cbuffer_uniforms : register(b4, space1) {
+  uint4 uniforms[1];
+};
+[numthreads(1, 1, 1)]
+void main() {
+  float2x4 m1 = float2x4((0.0f).xxxx, (0.0f).xxxx);
+  m1[uniforms[0u].x] = (1.0f).xxxx;
+}
+
diff --git a/test/tint/bug/fxc/matrix_assignment_dynamic_index/local_assign_vector.wgsl.expected.ir.fxc.hlsl b/test/tint/bug/fxc/matrix_assignment_dynamic_index/local_assign_vector.wgsl.expected.ir.fxc.hlsl
index 3f437dc..a068899 100644
--- a/test/tint/bug/fxc/matrix_assignment_dynamic_index/local_assign_vector.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/bug/fxc/matrix_assignment_dynamic_index/local_assign_vector.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,15 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Access
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+
+cbuffer cbuffer_uniforms : register(b4, space1) {
+  uint4 uniforms[1];
+};
+[numthreads(1, 1, 1)]
+void main() {
+  float2x4 m1 = float2x4((0.0f).xxxx, (0.0f).xxxx);
+  m1[uniforms[0u].x] = (1.0f).xxxx;
+}
+
+FXC validation failure:
+c:\src\dawn\Shader@0x000001E1B630ECD0(8,3-20): error X3500: array reference cannot be used as an l-value; not natively addressable
+
diff --git a/test/tint/bug/fxc/matrix_assignment_dynamic_index/module_assign_scalar_x.wgsl.expected.ir.dxc.hlsl b/test/tint/bug/fxc/matrix_assignment_dynamic_index/module_assign_scalar_x.wgsl.expected.ir.dxc.hlsl
index c0935cc..f10ca0a 100644
--- a/test/tint/bug/fxc/matrix_assignment_dynamic_index/module_assign_scalar_x.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/bug/fxc/matrix_assignment_dynamic_index/module_assign_scalar_x.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,10 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:198 internal compiler error: Switch() matched no cases. Type: tint::core::ir::StoreVectorElement
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+cbuffer cbuffer_uniforms : register(b4, space1) {
+  uint4 uniforms[1];
+};
+static float2x4 m1 = float2x4((0.0f).xxxx, (0.0f).xxxx);
+[numthreads(1, 1, 1)]
+void main() {
+  m1[uniforms[0u].x][0] = 1.0f;
+}
+
diff --git a/test/tint/bug/fxc/matrix_assignment_dynamic_index/module_assign_scalar_x.wgsl.expected.ir.fxc.hlsl b/test/tint/bug/fxc/matrix_assignment_dynamic_index/module_assign_scalar_x.wgsl.expected.ir.fxc.hlsl
index c0935cc..00ef50f 100644
--- a/test/tint/bug/fxc/matrix_assignment_dynamic_index/module_assign_scalar_x.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/bug/fxc/matrix_assignment_dynamic_index/module_assign_scalar_x.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,15 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:198 internal compiler error: Switch() matched no cases. Type: tint::core::ir::StoreVectorElement
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+
+cbuffer cbuffer_uniforms : register(b4, space1) {
+  uint4 uniforms[1];
+};
+static float2x4 m1 = float2x4((0.0f).xxxx, (0.0f).xxxx);
+[numthreads(1, 1, 1)]
+void main() {
+  m1[uniforms[0u].x][0] = 1.0f;
+}
+
+FXC validation failure:
+c:\src\dawn\Shader@0x0000020F784DEDE0(8,3-20): error X3500: array reference cannot be used as an l-value; not natively addressable
+
diff --git a/test/tint/bug/fxc/matrix_assignment_dynamic_index/module_assign_scalar_xy.wgsl.expected.ir.dxc.hlsl b/test/tint/bug/fxc/matrix_assignment_dynamic_index/module_assign_scalar_xy.wgsl.expected.ir.dxc.hlsl
index c0935cc..8417610 100644
--- a/test/tint/bug/fxc/matrix_assignment_dynamic_index/module_assign_scalar_xy.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/bug/fxc/matrix_assignment_dynamic_index/module_assign_scalar_xy.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,10 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:198 internal compiler error: Switch() matched no cases. Type: tint::core::ir::StoreVectorElement
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+cbuffer cbuffer_uniforms : register(b4, space1) {
+  uint4 uniforms[1];
+};
+static float2x4 m1 = float2x4((0.0f).xxxx, (0.0f).xxxx);
+[numthreads(1, 1, 1)]
+void main() {
+  m1[uniforms[0u].x][uniforms[0u].y] = 1.0f;
+}
+
diff --git a/test/tint/bug/fxc/matrix_assignment_dynamic_index/module_assign_scalar_xy.wgsl.expected.ir.fxc.hlsl b/test/tint/bug/fxc/matrix_assignment_dynamic_index/module_assign_scalar_xy.wgsl.expected.ir.fxc.hlsl
index c0935cc..b198652 100644
--- a/test/tint/bug/fxc/matrix_assignment_dynamic_index/module_assign_scalar_xy.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/bug/fxc/matrix_assignment_dynamic_index/module_assign_scalar_xy.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,15 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:198 internal compiler error: Switch() matched no cases. Type: tint::core::ir::StoreVectorElement
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+
+cbuffer cbuffer_uniforms : register(b4, space1) {
+  uint4 uniforms[1];
+};
+static float2x4 m1 = float2x4((0.0f).xxxx, (0.0f).xxxx);
+[numthreads(1, 1, 1)]
+void main() {
+  m1[uniforms[0u].x][uniforms[0u].y] = 1.0f;
+}
+
+FXC validation failure:
+c:\src\dawn\Shader@0x000001CABE190480(8,3-20): error X3500: array reference cannot be used as an l-value; not natively addressable
+
diff --git a/test/tint/bug/fxc/matrix_assignment_dynamic_index/module_assign_scalar_y.wgsl.expected.ir.dxc.hlsl b/test/tint/bug/fxc/matrix_assignment_dynamic_index/module_assign_scalar_y.wgsl.expected.ir.dxc.hlsl
index c0935cc..c6e2f6f 100644
--- a/test/tint/bug/fxc/matrix_assignment_dynamic_index/module_assign_scalar_y.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/bug/fxc/matrix_assignment_dynamic_index/module_assign_scalar_y.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,10 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:198 internal compiler error: Switch() matched no cases. Type: tint::core::ir::StoreVectorElement
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+cbuffer cbuffer_uniforms : register(b4, space1) {
+  uint4 uniforms[1];
+};
+static float2x4 m1 = float2x4((0.0f).xxxx, (0.0f).xxxx);
+[numthreads(1, 1, 1)]
+void main() {
+  m1[0][uniforms[0u].y] = 1.0f;
+}
+
diff --git a/test/tint/bug/fxc/matrix_assignment_dynamic_index/module_assign_scalar_y.wgsl.expected.ir.fxc.hlsl b/test/tint/bug/fxc/matrix_assignment_dynamic_index/module_assign_scalar_y.wgsl.expected.ir.fxc.hlsl
index c0935cc..b8791cc 100644
--- a/test/tint/bug/fxc/matrix_assignment_dynamic_index/module_assign_scalar_y.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/bug/fxc/matrix_assignment_dynamic_index/module_assign_scalar_y.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,15 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:198 internal compiler error: Switch() matched no cases. Type: tint::core::ir::StoreVectorElement
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+
+cbuffer cbuffer_uniforms : register(b4, space1) {
+  uint4 uniforms[1];
+};
+static float2x4 m1 = float2x4((0.0f).xxxx, (0.0f).xxxx);
+[numthreads(1, 1, 1)]
+void main() {
+  m1[0][uniforms[0u].y] = 1.0f;
+}
+
+FXC validation failure:
+c:\src\dawn\Shader@0x0000020D72B1F4F0(8,3-23): error X3500: array reference cannot be used as an l-value; not natively addressable
+
diff --git a/test/tint/bug/fxc/matrix_assignment_dynamic_index/module_assign_vector.wgsl.expected.ir.dxc.hlsl b/test/tint/bug/fxc/matrix_assignment_dynamic_index/module_assign_vector.wgsl.expected.ir.dxc.hlsl
index 3f437dc..ee087bb 100644
--- a/test/tint/bug/fxc/matrix_assignment_dynamic_index/module_assign_vector.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/bug/fxc/matrix_assignment_dynamic_index/module_assign_vector.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,10 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Access
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+cbuffer cbuffer_uniforms : register(b4, space1) {
+  uint4 uniforms[1];
+};
+static float2x4 m1 = float2x4((0.0f).xxxx, (0.0f).xxxx);
+[numthreads(1, 1, 1)]
+void main() {
+  m1[uniforms[0u].x] = (1.0f).xxxx;
+}
+
diff --git a/test/tint/bug/fxc/matrix_assignment_dynamic_index/module_assign_vector.wgsl.expected.ir.fxc.hlsl b/test/tint/bug/fxc/matrix_assignment_dynamic_index/module_assign_vector.wgsl.expected.ir.fxc.hlsl
index 3f437dc..c908da9 100644
--- a/test/tint/bug/fxc/matrix_assignment_dynamic_index/module_assign_vector.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/bug/fxc/matrix_assignment_dynamic_index/module_assign_vector.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,15 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Access
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+
+cbuffer cbuffer_uniforms : register(b4, space1) {
+  uint4 uniforms[1];
+};
+static float2x4 m1 = float2x4((0.0f).xxxx, (0.0f).xxxx);
+[numthreads(1, 1, 1)]
+void main() {
+  m1[uniforms[0u].x] = (1.0f).xxxx;
+}
+
+FXC validation failure:
+c:\src\dawn\Shader@0x000001F09AAFE940(8,3-20): error X3500: array reference cannot be used as an l-value; not natively addressable
+
diff --git a/test/tint/bug/fxc/vector_assignment_in_loop/loop_call_with_loop.wgsl.expected.ir.dxc.hlsl b/test/tint/bug/fxc/vector_assignment_in_loop/loop_call_with_loop.wgsl.expected.ir.dxc.hlsl
index adbb0c1..37e0380 100644
--- a/test/tint/bug/fxc/vector_assignment_in_loop/loop_call_with_loop.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/bug/fxc/vector_assignment_in_loop/loop_call_with_loop.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,43 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:198 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Loop
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+static float2 v2f = (0.0f).xx;
+static int3 v3i = (0).xxx;
+static uint4 v4u = (0u).xxxx;
+static bool2 v2b = (false).xx;
+void foo() {
+  {
+    int i = 0;
+    while(true) {
+      if ((i < 2)) {
+      } else {
+        break;
+      }
+      v2f[i] = 1.0f;
+      v3i[i] = 1;
+      v4u[i] = 1u;
+      v2b[i] = true;
+      {
+        i = (i + 1);
+      }
+      continue;
+    }
+  }
+}
+
+[numthreads(1, 1, 1)]
+void main() {
+  {
+    int i = 0;
+    while(true) {
+      if ((i < 2)) {
+      } else {
+        break;
+      }
+      foo();
+      {
+        i = (i + 1);
+      }
+      continue;
+    }
+  }
+}
+
diff --git a/test/tint/bug/fxc/vector_assignment_in_loop/loop_call_with_loop.wgsl.expected.ir.fxc.hlsl b/test/tint/bug/fxc/vector_assignment_in_loop/loop_call_with_loop.wgsl.expected.ir.fxc.hlsl
index adbb0c1..37e0380 100644
--- a/test/tint/bug/fxc/vector_assignment_in_loop/loop_call_with_loop.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/bug/fxc/vector_assignment_in_loop/loop_call_with_loop.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,43 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:198 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Loop
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+static float2 v2f = (0.0f).xx;
+static int3 v3i = (0).xxx;
+static uint4 v4u = (0u).xxxx;
+static bool2 v2b = (false).xx;
+void foo() {
+  {
+    int i = 0;
+    while(true) {
+      if ((i < 2)) {
+      } else {
+        break;
+      }
+      v2f[i] = 1.0f;
+      v3i[i] = 1;
+      v4u[i] = 1u;
+      v2b[i] = true;
+      {
+        i = (i + 1);
+      }
+      continue;
+    }
+  }
+}
+
+[numthreads(1, 1, 1)]
+void main() {
+  {
+    int i = 0;
+    while(true) {
+      if ((i < 2)) {
+      } else {
+        break;
+      }
+      foo();
+      {
+        i = (i + 1);
+      }
+      continue;
+    }
+  }
+}
+
diff --git a/test/tint/bug/fxc/vector_assignment_in_loop/loop_call_with_no_loop.wgsl.expected.ir.dxc.hlsl b/test/tint/bug/fxc/vector_assignment_in_loop/loop_call_with_no_loop.wgsl.expected.ir.dxc.hlsl
index c0935cc..17a74fc 100644
--- a/test/tint/bug/fxc/vector_assignment_in_loop/loop_call_with_no_loop.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/bug/fxc/vector_assignment_in_loop/loop_call_with_no_loop.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,31 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:198 internal compiler error: Switch() matched no cases. Type: tint::core::ir::StoreVectorElement
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+static float2 v2f = (0.0f).xx;
+static int3 v3i = (0).xxx;
+static uint4 v4u = (0u).xxxx;
+static bool2 v2b = (false).xx;
+void foo() {
+  int i = 0;
+  v2f[i] = 1.0f;
+  v3i[i] = 1;
+  v4u[i] = 1u;
+  v2b[i] = true;
+}
+
+[numthreads(1, 1, 1)]
+void main() {
+  {
+    int i = 0;
+    while(true) {
+      if ((i < 2)) {
+      } else {
+        break;
+      }
+      foo();
+      {
+        i = (i + 1);
+      }
+      continue;
+    }
+  }
+}
+
diff --git a/test/tint/bug/fxc/vector_assignment_in_loop/loop_call_with_no_loop.wgsl.expected.ir.fxc.hlsl b/test/tint/bug/fxc/vector_assignment_in_loop/loop_call_with_no_loop.wgsl.expected.ir.fxc.hlsl
index c0935cc..17a74fc 100644
--- a/test/tint/bug/fxc/vector_assignment_in_loop/loop_call_with_no_loop.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/bug/fxc/vector_assignment_in_loop/loop_call_with_no_loop.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,31 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:198 internal compiler error: Switch() matched no cases. Type: tint::core::ir::StoreVectorElement
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+static float2 v2f = (0.0f).xx;
+static int3 v3i = (0).xxx;
+static uint4 v4u = (0u).xxxx;
+static bool2 v2b = (false).xx;
+void foo() {
+  int i = 0;
+  v2f[i] = 1.0f;
+  v3i[i] = 1;
+  v4u[i] = 1u;
+  v2b[i] = true;
+}
+
+[numthreads(1, 1, 1)]
+void main() {
+  {
+    int i = 0;
+    while(true) {
+      if ((i < 2)) {
+      } else {
+        break;
+      }
+      foo();
+      {
+        i = (i + 1);
+      }
+      continue;
+    }
+  }
+}
+
diff --git a/test/tint/bug/fxc/vector_assignment_in_loop/loop_types_all.wgsl.expected.ir.dxc.hlsl b/test/tint/bug/fxc/vector_assignment_in_loop/loop_types_all.wgsl.expected.ir.dxc.hlsl
index adbb0c1..473d8d5 100644
--- a/test/tint/bug/fxc/vector_assignment_in_loop/loop_types_all.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/bug/fxc/vector_assignment_in_loop/loop_types_all.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,42 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:198 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Loop
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+[numthreads(1, 1, 1)]
+void main() {
+  float2 v2f = (0.0f).xx;
+  float3 v3f = (0.0f).xxx;
+  float4 v4f = (0.0f).xxxx;
+  int2 v2i = (0).xx;
+  int3 v3i = (0).xxx;
+  int4 v4i = (0).xxxx;
+  uint2 v2u = (0u).xx;
+  uint3 v3u = (0u).xxx;
+  uint4 v4u = (0u).xxxx;
+  bool2 v2b = (false).xx;
+  bool3 v3b = (false).xxx;
+  bool4 v4b = (false).xxxx;
+  {
+    int i = 0;
+    while(true) {
+      if ((i < 2)) {
+      } else {
+        break;
+      }
+      v2f[i] = 1.0f;
+      v3f[i] = 1.0f;
+      v4f[i] = 1.0f;
+      v2i[i] = 1;
+      v3i[i] = 1;
+      v4i[i] = 1;
+      v2u[i] = 1u;
+      v3u[i] = 1u;
+      v4u[i] = 1u;
+      v2b[i] = true;
+      v3b[i] = true;
+      v4b[i] = true;
+      {
+        i = (i + 1);
+      }
+      continue;
+    }
+  }
+}
+
diff --git a/test/tint/bug/fxc/vector_assignment_in_loop/loop_types_all.wgsl.expected.ir.fxc.hlsl b/test/tint/bug/fxc/vector_assignment_in_loop/loop_types_all.wgsl.expected.ir.fxc.hlsl
index adbb0c1..473d8d5 100644
--- a/test/tint/bug/fxc/vector_assignment_in_loop/loop_types_all.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/bug/fxc/vector_assignment_in_loop/loop_types_all.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,42 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:198 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Loop
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+[numthreads(1, 1, 1)]
+void main() {
+  float2 v2f = (0.0f).xx;
+  float3 v3f = (0.0f).xxx;
+  float4 v4f = (0.0f).xxxx;
+  int2 v2i = (0).xx;
+  int3 v3i = (0).xxx;
+  int4 v4i = (0).xxxx;
+  uint2 v2u = (0u).xx;
+  uint3 v3u = (0u).xxx;
+  uint4 v4u = (0u).xxxx;
+  bool2 v2b = (false).xx;
+  bool3 v3b = (false).xxx;
+  bool4 v4b = (false).xxxx;
+  {
+    int i = 0;
+    while(true) {
+      if ((i < 2)) {
+      } else {
+        break;
+      }
+      v2f[i] = 1.0f;
+      v3f[i] = 1.0f;
+      v4f[i] = 1.0f;
+      v2i[i] = 1;
+      v3i[i] = 1;
+      v4i[i] = 1;
+      v2u[i] = 1u;
+      v3u[i] = 1u;
+      v4u[i] = 1u;
+      v2b[i] = true;
+      v3b[i] = true;
+      v4b[i] = true;
+      {
+        i = (i + 1);
+      }
+      continue;
+    }
+  }
+}
+
diff --git a/test/tint/bug/fxc/vector_assignment_in_loop/loop_types_repeated.wgsl.expected.ir.dxc.hlsl b/test/tint/bug/fxc/vector_assignment_in_loop/loop_types_repeated.wgsl.expected.ir.dxc.hlsl
index adbb0c1..46329eb 100644
--- a/test/tint/bug/fxc/vector_assignment_in_loop/loop_types_repeated.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/bug/fxc/vector_assignment_in_loop/loop_types_repeated.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,34 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:198 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Loop
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+[numthreads(1, 1, 1)]
+void main() {
+  float2 v2f = (0.0f).xx;
+  float2 v2f_2 = (0.0f).xx;
+  int3 v3i = (0).xxx;
+  int3 v3i_2 = (0).xxx;
+  uint4 v4u = (0u).xxxx;
+  uint4 v4u_2 = (0u).xxxx;
+  bool2 v2b = (false).xx;
+  bool2 v2b_2 = (false).xx;
+  {
+    int i = 0;
+    while(true) {
+      if ((i < 2)) {
+      } else {
+        break;
+      }
+      v2f[i] = 1.0f;
+      v3i[i] = 1;
+      v4u[i] = 1u;
+      v2b[i] = true;
+      v2f_2[i] = 1.0f;
+      v3i_2[i] = 1;
+      v4u_2[i] = 1u;
+      v2b_2[i] = true;
+      {
+        i = (i + 1);
+      }
+      continue;
+    }
+  }
+}
+
diff --git a/test/tint/bug/fxc/vector_assignment_in_loop/loop_types_repeated.wgsl.expected.ir.fxc.hlsl b/test/tint/bug/fxc/vector_assignment_in_loop/loop_types_repeated.wgsl.expected.ir.fxc.hlsl
index adbb0c1..46329eb 100644
--- a/test/tint/bug/fxc/vector_assignment_in_loop/loop_types_repeated.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/bug/fxc/vector_assignment_in_loop/loop_types_repeated.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,34 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:198 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Loop
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+[numthreads(1, 1, 1)]
+void main() {
+  float2 v2f = (0.0f).xx;
+  float2 v2f_2 = (0.0f).xx;
+  int3 v3i = (0).xxx;
+  int3 v3i_2 = (0).xxx;
+  uint4 v4u = (0u).xxxx;
+  uint4 v4u_2 = (0u).xxxx;
+  bool2 v2b = (false).xx;
+  bool2 v2b_2 = (false).xx;
+  {
+    int i = 0;
+    while(true) {
+      if ((i < 2)) {
+      } else {
+        break;
+      }
+      v2f[i] = 1.0f;
+      v3i[i] = 1;
+      v4u[i] = 1u;
+      v2b[i] = true;
+      v2f_2[i] = 1.0f;
+      v3i_2[i] = 1;
+      v4u_2[i] = 1u;
+      v2b_2[i] = true;
+      {
+        i = (i + 1);
+      }
+      continue;
+    }
+  }
+}
+
diff --git a/test/tint/bug/fxc/vector_assignment_in_loop/loop_types_some.wgsl.expected.ir.dxc.hlsl b/test/tint/bug/fxc/vector_assignment_in_loop/loop_types_some.wgsl.expected.ir.dxc.hlsl
index adbb0c1..fc0e48b 100644
--- a/test/tint/bug/fxc/vector_assignment_in_loop/loop_types_some.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/bug/fxc/vector_assignment_in_loop/loop_types_some.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,43 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:198 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Loop
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+[numthreads(1, 1, 1)]
+void main() {
+  float2 v2f = (0.0f).xx;
+  float3 v3f = (0.0f).xxx;
+  float4 v4f = (0.0f).xxxx;
+  int2 v2i = (0).xx;
+  int3 v3i = (0).xxx;
+  int4 v4i = (0).xxxx;
+  uint2 v2u = (0u).xx;
+  uint3 v3u = (0u).xxx;
+  uint4 v4u = (0u).xxxx;
+  bool2 v2b = (false).xx;
+  bool3 v3b = (false).xxx;
+  bool4 v4b = (false).xxxx;
+  {
+    int i = 0;
+    while(true) {
+      if ((i < 2)) {
+      } else {
+        break;
+      }
+      v2f[i] = 1.0f;
+      v2i[i] = 1;
+      v2u[i] = 1u;
+      v2b[i] = true;
+      {
+        i = (i + 1);
+      }
+      continue;
+    }
+  }
+  int i = 0;
+  v3f[i] = 1.0f;
+  v4f[i] = 1.0f;
+  v3i[i] = 1;
+  v4i[i] = 1;
+  v3u[i] = 1u;
+  v4u[i] = 1u;
+  v3b[i] = true;
+  v4b[i] = true;
+}
+
diff --git a/test/tint/bug/fxc/vector_assignment_in_loop/loop_types_some.wgsl.expected.ir.fxc.hlsl b/test/tint/bug/fxc/vector_assignment_in_loop/loop_types_some.wgsl.expected.ir.fxc.hlsl
index adbb0c1..fc0e48b 100644
--- a/test/tint/bug/fxc/vector_assignment_in_loop/loop_types_some.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/bug/fxc/vector_assignment_in_loop/loop_types_some.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,43 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:198 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Loop
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+[numthreads(1, 1, 1)]
+void main() {
+  float2 v2f = (0.0f).xx;
+  float3 v3f = (0.0f).xxx;
+  float4 v4f = (0.0f).xxxx;
+  int2 v2i = (0).xx;
+  int3 v3i = (0).xxx;
+  int4 v4i = (0).xxxx;
+  uint2 v2u = (0u).xx;
+  uint3 v3u = (0u).xxx;
+  uint4 v4u = (0u).xxxx;
+  bool2 v2b = (false).xx;
+  bool3 v3b = (false).xxx;
+  bool4 v4b = (false).xxxx;
+  {
+    int i = 0;
+    while(true) {
+      if ((i < 2)) {
+      } else {
+        break;
+      }
+      v2f[i] = 1.0f;
+      v2i[i] = 1;
+      v2u[i] = 1u;
+      v2b[i] = true;
+      {
+        i = (i + 1);
+      }
+      continue;
+    }
+  }
+  int i = 0;
+  v3f[i] = 1.0f;
+  v4f[i] = 1.0f;
+  v3i[i] = 1;
+  v4i[i] = 1;
+  v3u[i] = 1u;
+  v4u[i] = 1u;
+  v3b[i] = true;
+  v4b[i] = true;
+}
+
diff --git a/test/tint/bug/fxc/vector_assignment_in_loop/no_loop.wgsl.expected.ir.dxc.hlsl b/test/tint/bug/fxc/vector_assignment_in_loop/no_loop.wgsl.expected.ir.dxc.hlsl
index c0935cc..e8b81c9 100644
--- a/test/tint/bug/fxc/vector_assignment_in_loop/no_loop.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/bug/fxc/vector_assignment_in_loop/no_loop.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,30 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:198 internal compiler error: Switch() matched no cases. Type: tint::core::ir::StoreVectorElement
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+[numthreads(1, 1, 1)]
+void main() {
+  float2 v2f = (0.0f).xx;
+  float3 v3f = (0.0f).xxx;
+  float4 v4f = (0.0f).xxxx;
+  int2 v2i = (0).xx;
+  int3 v3i = (0).xxx;
+  int4 v4i = (0).xxxx;
+  uint2 v2u = (0u).xx;
+  uint3 v3u = (0u).xxx;
+  uint4 v4u = (0u).xxxx;
+  bool2 v2b = (false).xx;
+  bool3 v3b = (false).xxx;
+  bool4 v4b = (false).xxxx;
+  int i = 0;
+  v2f[i] = 1.0f;
+  v3f[i] = 1.0f;
+  v4f[i] = 1.0f;
+  v2i[i] = 1;
+  v3i[i] = 1;
+  v4i[i] = 1;
+  v2u[i] = 1u;
+  v3u[i] = 1u;
+  v4u[i] = 1u;
+  v2b[i] = true;
+  v3b[i] = true;
+  v4b[i] = true;
+}
+
diff --git a/test/tint/bug/fxc/vector_assignment_in_loop/no_loop.wgsl.expected.ir.fxc.hlsl b/test/tint/bug/fxc/vector_assignment_in_loop/no_loop.wgsl.expected.ir.fxc.hlsl
index c0935cc..e8b81c9 100644
--- a/test/tint/bug/fxc/vector_assignment_in_loop/no_loop.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/bug/fxc/vector_assignment_in_loop/no_loop.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,30 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:198 internal compiler error: Switch() matched no cases. Type: tint::core::ir::StoreVectorElement
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+[numthreads(1, 1, 1)]
+void main() {
+  float2 v2f = (0.0f).xx;
+  float3 v3f = (0.0f).xxx;
+  float4 v4f = (0.0f).xxxx;
+  int2 v2i = (0).xx;
+  int3 v3i = (0).xxx;
+  int4 v4i = (0).xxxx;
+  uint2 v2u = (0u).xx;
+  uint3 v3u = (0u).xxx;
+  uint4 v4u = (0u).xxxx;
+  bool2 v2b = (false).xx;
+  bool3 v3b = (false).xxx;
+  bool4 v4b = (false).xxxx;
+  int i = 0;
+  v2f[i] = 1.0f;
+  v3f[i] = 1.0f;
+  v4f[i] = 1.0f;
+  v2i[i] = 1;
+  v3i[i] = 1;
+  v4i[i] = 1;
+  v2u[i] = 1u;
+  v3u[i] = 1u;
+  v4u[i] = 1u;
+  v2b[i] = true;
+  v3b[i] = true;
+  v4b[i] = true;
+}
+
diff --git a/test/tint/bug/oss-fuzz/57795.spv.expected.ir.dxc.hlsl b/test/tint/bug/oss-fuzz/57795.spv.expected.ir.dxc.hlsl
index 040951a..d3f82e2 100644
--- a/test/tint/bug/oss-fuzz/57795.spv.expected.ir.dxc.hlsl
+++ b/test/tint/bug/oss-fuzz/57795.spv.expected.ir.dxc.hlsl
@@ -1,3 +1,14 @@
+struct S_6 {
+  float3 field0[13][18];
+};
+
+
+static const float4x4 v[58] = (float4x4[58])0;
+static float4x4 x_75[58] = v;
+static const S_6 v_1[46] = (S_6[46])0;
+static S_6 x_82[46] = v_1;
+static const float3 v_2[37] = (float3[37])0;
+static float3 x_85[37] = v_2;
 void main_1() {
   uint x_88 = 58u;
 }
diff --git a/test/tint/bug/oss-fuzz/57795.spv.expected.ir.fxc.hlsl b/test/tint/bug/oss-fuzz/57795.spv.expected.ir.fxc.hlsl
index 367b1f1..d3f82e2 100644
--- a/test/tint/bug/oss-fuzz/57795.spv.expected.ir.fxc.hlsl
+++ b/test/tint/bug/oss-fuzz/57795.spv.expected.ir.fxc.hlsl
@@ -1,5 +1,14 @@
-SKIP: FAILED
+struct S_6 {
+  float3 field0[13][18];
+};
 
+
+static const float4x4 v[58] = (float4x4[58])0;
+static float4x4 x_75[58] = v;
+static const S_6 v_1[46] = (S_6[46])0;
+static S_6 x_82[46] = v_1;
+static const float3 v_2[37] = (float3[37])0;
+static float3 x_85[37] = v_2;
 void main_1() {
   uint x_88 = 58u;
 }
diff --git a/test/tint/bug/tint/1046.wgsl.expected.ir.dxc.hlsl b/test/tint/bug/tint/1046.wgsl.expected.ir.dxc.hlsl
index bdeab23..58230f6 100644
--- a/test/tint/bug/tint/1046.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/bug/tint/1046.wgsl.expected.ir.dxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:198 internal compiler error: Switch() matched no cases. Type: tint::core::ir::If
+..\..\src\tint\lang\hlsl\writer\printer\printer.cc:1010 internal compiler error: TINT_UNREACHABLE unhandled: textureSample
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/bug/tint/1046.wgsl.expected.ir.fxc.hlsl b/test/tint/bug/tint/1046.wgsl.expected.ir.fxc.hlsl
index bdeab23..58230f6 100644
--- a/test/tint/bug/tint/1046.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/bug/tint/1046.wgsl.expected.ir.fxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:198 internal compiler error: Switch() matched no cases. Type: tint::core::ir::If
+..\..\src\tint\lang\hlsl\writer\printer\printer.cc:1010 internal compiler error: TINT_UNREACHABLE unhandled: textureSample
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/bug/tint/1061.spvasm.expected.ir.dxc.hlsl b/test/tint/bug/tint/1061.spvasm.expected.ir.dxc.hlsl
index c6e1d96..497511b 100644
--- a/test/tint/bug/tint/1061.spvasm.expected.ir.dxc.hlsl
+++ b/test/tint/bug/tint/1061.spvasm.expected.ir.dxc.hlsl
@@ -1,9 +1,41 @@
-SKIP: FAILED
+struct main_out {
+  float4 x_GLF_color_1;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Construct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct main_outputs {
+  float4 main_out_x_GLF_color_1 : SV_Target0;
+};
+
+
+cbuffer cbuffer_x_7 : register(b0) {
+  uint4 x_7[1];
+};
+static float4 x_GLF_color = (0.0f).xxxx;
+void main_1() {
+  float f = 0.0f;
+  float4 v = (0.0f).xxxx;
+  f = 1.0f;
+  float v_1 = sin(f);
+  float v_2 = cos(f);
+  float v_3 = exp2(f);
+  v = float4(v_1, v_2, v_3, log(f));
+  float4 v_4 = v;
+  if ((distance(v_4, asfloat(x_7[0u])) < 0.10000000149011611938f)) {
+    x_GLF_color = float4(1.0f, 0.0f, 0.0f, 1.0f);
+  } else {
+    x_GLF_color = (0.0f).xxxx;
+  }
+}
+
+main_out main_inner() {
+  main_1();
+  main_out v_5 = {x_GLF_color};
+  return v_5;
+}
+
+main_outputs main() {
+  main_out v_6 = main_inner();
+  main_outputs v_7 = {v_6.x_GLF_color_1};
+  return v_7;
+}
+
diff --git a/test/tint/bug/tint/1061.spvasm.expected.ir.fxc.hlsl b/test/tint/bug/tint/1061.spvasm.expected.ir.fxc.hlsl
index c6e1d96..497511b 100644
--- a/test/tint/bug/tint/1061.spvasm.expected.ir.fxc.hlsl
+++ b/test/tint/bug/tint/1061.spvasm.expected.ir.fxc.hlsl
@@ -1,9 +1,41 @@
-SKIP: FAILED
+struct main_out {
+  float4 x_GLF_color_1;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Construct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct main_outputs {
+  float4 main_out_x_GLF_color_1 : SV_Target0;
+};
+
+
+cbuffer cbuffer_x_7 : register(b0) {
+  uint4 x_7[1];
+};
+static float4 x_GLF_color = (0.0f).xxxx;
+void main_1() {
+  float f = 0.0f;
+  float4 v = (0.0f).xxxx;
+  f = 1.0f;
+  float v_1 = sin(f);
+  float v_2 = cos(f);
+  float v_3 = exp2(f);
+  v = float4(v_1, v_2, v_3, log(f));
+  float4 v_4 = v;
+  if ((distance(v_4, asfloat(x_7[0u])) < 0.10000000149011611938f)) {
+    x_GLF_color = float4(1.0f, 0.0f, 0.0f, 1.0f);
+  } else {
+    x_GLF_color = (0.0f).xxxx;
+  }
+}
+
+main_out main_inner() {
+  main_1();
+  main_out v_5 = {x_GLF_color};
+  return v_5;
+}
+
+main_outputs main() {
+  main_out v_6 = main_inner();
+  main_outputs v_7 = {v_6.x_GLF_color_1};
+  return v_7;
+}
+
diff --git a/test/tint/bug/tint/1064.wgsl.expected.ir.dxc.hlsl b/test/tint/bug/tint/1064.wgsl.expected.ir.dxc.hlsl
index adbb0c1..7730ddd 100644
--- a/test/tint/bug/tint/1064.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/bug/tint/1064.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,16 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:198 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Loop
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+void main() {
+  {
+    while(true) {
+      if (false) {
+      } else {
+        break;
+      }
+      {
+        if (false) { break; }
+      }
+      continue;
+    }
+  }
+}
+
diff --git a/test/tint/bug/tint/1064.wgsl.expected.ir.fxc.hlsl b/test/tint/bug/tint/1064.wgsl.expected.ir.fxc.hlsl
index adbb0c1..7730ddd 100644
--- a/test/tint/bug/tint/1064.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/bug/tint/1064.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,16 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:198 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Loop
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+void main() {
+  {
+    while(true) {
+      if (false) {
+      } else {
+        break;
+      }
+      {
+        if (false) { break; }
+      }
+      continue;
+    }
+  }
+}
+
diff --git a/test/tint/bug/tint/1076.wgsl.expected.ir.dxc.hlsl b/test/tint/bug/tint/1076.wgsl.expected.ir.dxc.hlsl
index bdeab23..5a55f7d 100644
--- a/test/tint/bug/tint/1076.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/bug/tint/1076.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,34 @@
-SKIP: FAILED
+struct FragIn {
+  float a;
+  uint mask;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:198 internal compiler error: Switch() matched no cases. Type: tint::core::ir::If
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct main_outputs {
+  float FragIn_a : SV_Target0;
+  uint FragIn_mask : SV_Coverage;
+};
+
+struct main_inputs {
+  float FragIn_a : TEXCOORD0;
+  float b : TEXCOORD1;
+  uint FragIn_mask : SV_Coverage;
+};
+
+
+FragIn main_inner(FragIn tint_symbol, float b) {
+  if ((tint_symbol.mask == 0u)) {
+    return tint_symbol;
+  }
+  FragIn v = {b, 1u};
+  return v;
+}
+
+main_outputs main(main_inputs inputs) {
+  FragIn v_1 = {inputs.FragIn_a, inputs.FragIn_mask};
+  FragIn v_2 = main_inner(v_1, inputs.b);
+  FragIn v_3 = v_2;
+  FragIn v_4 = v_2;
+  main_outputs v_5 = {v_3.a, v_4.mask};
+  return v_5;
+}
+
diff --git a/test/tint/bug/tint/1076.wgsl.expected.ir.fxc.hlsl b/test/tint/bug/tint/1076.wgsl.expected.ir.fxc.hlsl
index bdeab23..5a55f7d 100644
--- a/test/tint/bug/tint/1076.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/bug/tint/1076.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,34 @@
-SKIP: FAILED
+struct FragIn {
+  float a;
+  uint mask;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:198 internal compiler error: Switch() matched no cases. Type: tint::core::ir::If
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct main_outputs {
+  float FragIn_a : SV_Target0;
+  uint FragIn_mask : SV_Coverage;
+};
+
+struct main_inputs {
+  float FragIn_a : TEXCOORD0;
+  float b : TEXCOORD1;
+  uint FragIn_mask : SV_Coverage;
+};
+
+
+FragIn main_inner(FragIn tint_symbol, float b) {
+  if ((tint_symbol.mask == 0u)) {
+    return tint_symbol;
+  }
+  FragIn v = {b, 1u};
+  return v;
+}
+
+main_outputs main(main_inputs inputs) {
+  FragIn v_1 = {inputs.FragIn_a, inputs.FragIn_mask};
+  FragIn v_2 = main_inner(v_1, inputs.b);
+  FragIn v_3 = v_2;
+  FragIn v_4 = v_2;
+  main_outputs v_5 = {v_3.a, v_4.mask};
+  return v_5;
+}
+
diff --git a/test/tint/bug/tint/1081.wgsl.expected.ir.dxc.hlsl b/test/tint/bug/tint/1081.wgsl.expected.ir.dxc.hlsl
index bdeab23..f79c51b 100644
--- a/test/tint/bug/tint/1081.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/bug/tint/1081.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,42 @@
-SKIP: FAILED
+struct main_outputs {
+  int tint_symbol : SV_Target2;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:198 internal compiler error: Switch() matched no cases. Type: tint::core::ir::If
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct main_inputs {
+  nointerpolation int3 x : TEXCOORD1;
+};
+
+
+static bool continue_execution = true;
+int f(int x) {
+  if ((x == 10)) {
+    continue_execution = false;
+  }
+  return x;
+}
+
+int main_inner(int3 x) {
+  int y = x[0u];
+  {
+    while(true) {
+      int r = f(y);
+      if ((r == 0)) {
+        break;
+      }
+      {
+      }
+      continue;
+    }
+  }
+  return y;
+}
+
+main_outputs main(main_inputs inputs) {
+  main_outputs v = {main_inner(inputs.x)};
+  if (!(continue_execution)) {
+    discard;
+  }
+  main_outputs v_1 = v;
+  return v_1;
+}
+
diff --git a/test/tint/bug/tint/1081.wgsl.expected.ir.fxc.hlsl b/test/tint/bug/tint/1081.wgsl.expected.ir.fxc.hlsl
index bdeab23..f79c51b 100644
--- a/test/tint/bug/tint/1081.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/bug/tint/1081.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,42 @@
-SKIP: FAILED
+struct main_outputs {
+  int tint_symbol : SV_Target2;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:198 internal compiler error: Switch() matched no cases. Type: tint::core::ir::If
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct main_inputs {
+  nointerpolation int3 x : TEXCOORD1;
+};
+
+
+static bool continue_execution = true;
+int f(int x) {
+  if ((x == 10)) {
+    continue_execution = false;
+  }
+  return x;
+}
+
+int main_inner(int3 x) {
+  int y = x[0u];
+  {
+    while(true) {
+      int r = f(y);
+      if ((r == 0)) {
+        break;
+      }
+      {
+      }
+      continue;
+    }
+  }
+  return y;
+}
+
+main_outputs main(main_inputs inputs) {
+  main_outputs v = {main_inner(inputs.x)};
+  if (!(continue_execution)) {
+    discard;
+  }
+  main_outputs v_1 = v;
+  return v_1;
+}
+
diff --git a/test/tint/bug/tint/1083.wgsl.expected.ir.dxc.hlsl b/test/tint/bug/tint/1083.wgsl.expected.ir.dxc.hlsl
index 7c7c202..9874c80 100644
--- a/test/tint/bug/tint/1083.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/bug/tint/1083.wgsl.expected.ir.dxc.hlsl
@@ -1,7 +1,12 @@
+
+int tint_div_i32(int lhs, int rhs) {
+  return (lhs / ((((rhs == 0) | ((lhs == -2147483648) & (rhs == -1)))) ? (1) : (rhs)));
+}
+
 [numthreads(1, 1, 1)]
 void f() {
   int a = 1;
   int b = 0;
-  int c = (a / b);
+  int c = tint_div_i32(a, b);
 }
 
diff --git a/test/tint/bug/tint/1083.wgsl.expected.ir.fxc.hlsl b/test/tint/bug/tint/1083.wgsl.expected.ir.fxc.hlsl
index f327555..9874c80 100644
--- a/test/tint/bug/tint/1083.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/bug/tint/1083.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,12 @@
-SKIP: FAILED
+
+int tint_div_i32(int lhs, int rhs) {
+  return (lhs / ((((rhs == 0) | ((lhs == -2147483648) & (rhs == -1)))) ? (1) : (rhs)));
+}
 
 [numthreads(1, 1, 1)]
 void f() {
   int a = 1;
   int b = 0;
-  int c = (a / b);
+  int c = tint_div_i32(a, b);
 }
 
diff --git a/test/tint/bug/tint/1086.wgsl.expected.ir.dxc.hlsl b/test/tint/bug/tint/1086.wgsl.expected.ir.dxc.hlsl
index 6b047b4..0febbf6 100644
--- a/test/tint/bug/tint/1086.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/bug/tint/1086.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,14 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:287 internal compiler error: Switch() matched no cases. Type: tint::core::ir::FunctionParam
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+static float v = 0.0f;
+void x(inout float p) {
+  p = 0.0f;
+}
+
+void g() {
+  x(v);
+}
+
+void f() {
+  g();
+}
+
diff --git a/test/tint/bug/tint/1086.wgsl.expected.ir.fxc.hlsl b/test/tint/bug/tint/1086.wgsl.expected.ir.fxc.hlsl
index 6b047b4..0febbf6 100644
--- a/test/tint/bug/tint/1086.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/bug/tint/1086.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,14 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:287 internal compiler error: Switch() matched no cases. Type: tint::core::ir::FunctionParam
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+static float v = 0.0f;
+void x(inout float p) {
+  p = 0.0f;
+}
+
+void g() {
+  x(v);
+}
+
+void f() {
+  g();
+}
+
diff --git a/test/tint/bug/tint/1088.spvasm.expected.ir.dxc.hlsl b/test/tint/bug/tint/1088.spvasm.expected.ir.dxc.hlsl
index c6e1d96..e62fd9f 100644
--- a/test/tint/bug/tint/1088.spvasm.expected.ir.dxc.hlsl
+++ b/test/tint/bug/tint/1088.spvasm.expected.ir.dxc.hlsl
@@ -1,9 +1,66 @@
-SKIP: FAILED
+struct main_out {
+  float4 gl_Position;
+  float2 vUV_1;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Construct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct main_outputs {
+  float2 main_out_vUV_1 : TEXCOORD0;
+  float4 main_out_gl_Position : SV_Position;
+};
+
+struct main_inputs {
+  float3 position_1_param : TEXCOORD0;
+  float3 normal_param : TEXCOORD1;
+  float2 uv_param : TEXCOORD2;
+};
+
+
+static float3 position_1 = (0.0f).xxx;
+cbuffer cbuffer_x_14 : register(b2, space2) {
+  uint4 x_14[17];
+};
+static float2 vUV = (0.0f).xx;
+static float2 uv = (0.0f).xx;
+static float3 normal = (0.0f).xxx;
+static float4 gl_Position = (0.0f).xxxx;
+float4x4 v(uint start_byte_offset) {
+  float4 v_1 = asfloat(x_14[(start_byte_offset / 16u)]);
+  float4 v_2 = asfloat(x_14[((16u + start_byte_offset) / 16u)]);
+  float4 v_3 = asfloat(x_14[((32u + start_byte_offset) / 16u)]);
+  return float4x4(v_1, v_2, v_3, asfloat(x_14[((48u + start_byte_offset) / 16u)]));
+}
+
+void main_1() {
+  float4 q = (0.0f).xxxx;
+  float3 p = (0.0f).xxx;
+  q = float4(position_1.x, position_1.y, position_1.z, 1.0f);
+  p = q.xyz;
+  float v_4 = p.x;
+  float v_5 = asfloat(x_14[13u].x);
+  float v_6 = (v_5 * position_1.y);
+  p[0u] = (v_4 + sin((v_6 + asfloat(x_14[4u].x))));
+  float v_7 = p.y;
+  p[1u] = (v_7 + sin((asfloat(x_14[4u].x) + 4.0f)));
+  float4x4 v_8 = v(0u);
+  gl_Position = mul(float4(p.x, p.y, p.z, 1.0f), v_8);
+  vUV = uv;
+  gl_Position[1u] = (gl_Position.y * -1.0f);
+}
+
+main_out main_inner(float3 position_1_param, float2 uv_param, float3 normal_param) {
+  position_1 = position_1_param;
+  uv = uv_param;
+  normal = normal_param;
+  main_1();
+  main_out v_9 = {gl_Position, vUV};
+  return v_9;
+}
+
+main_outputs main(main_inputs inputs) {
+  main_out v_10 = main_inner(inputs.position_1_param, inputs.uv_param, inputs.normal_param);
+  main_out v_11 = v_10;
+  main_out v_12 = v_10;
+  main_outputs v_13 = {v_12.vUV_1, v_11.gl_Position};
+  return v_13;
+}
+
diff --git a/test/tint/bug/tint/1088.spvasm.expected.ir.fxc.hlsl b/test/tint/bug/tint/1088.spvasm.expected.ir.fxc.hlsl
index c6e1d96..e62fd9f 100644
--- a/test/tint/bug/tint/1088.spvasm.expected.ir.fxc.hlsl
+++ b/test/tint/bug/tint/1088.spvasm.expected.ir.fxc.hlsl
@@ -1,9 +1,66 @@
-SKIP: FAILED
+struct main_out {
+  float4 gl_Position;
+  float2 vUV_1;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Construct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct main_outputs {
+  float2 main_out_vUV_1 : TEXCOORD0;
+  float4 main_out_gl_Position : SV_Position;
+};
+
+struct main_inputs {
+  float3 position_1_param : TEXCOORD0;
+  float3 normal_param : TEXCOORD1;
+  float2 uv_param : TEXCOORD2;
+};
+
+
+static float3 position_1 = (0.0f).xxx;
+cbuffer cbuffer_x_14 : register(b2, space2) {
+  uint4 x_14[17];
+};
+static float2 vUV = (0.0f).xx;
+static float2 uv = (0.0f).xx;
+static float3 normal = (0.0f).xxx;
+static float4 gl_Position = (0.0f).xxxx;
+float4x4 v(uint start_byte_offset) {
+  float4 v_1 = asfloat(x_14[(start_byte_offset / 16u)]);
+  float4 v_2 = asfloat(x_14[((16u + start_byte_offset) / 16u)]);
+  float4 v_3 = asfloat(x_14[((32u + start_byte_offset) / 16u)]);
+  return float4x4(v_1, v_2, v_3, asfloat(x_14[((48u + start_byte_offset) / 16u)]));
+}
+
+void main_1() {
+  float4 q = (0.0f).xxxx;
+  float3 p = (0.0f).xxx;
+  q = float4(position_1.x, position_1.y, position_1.z, 1.0f);
+  p = q.xyz;
+  float v_4 = p.x;
+  float v_5 = asfloat(x_14[13u].x);
+  float v_6 = (v_5 * position_1.y);
+  p[0u] = (v_4 + sin((v_6 + asfloat(x_14[4u].x))));
+  float v_7 = p.y;
+  p[1u] = (v_7 + sin((asfloat(x_14[4u].x) + 4.0f)));
+  float4x4 v_8 = v(0u);
+  gl_Position = mul(float4(p.x, p.y, p.z, 1.0f), v_8);
+  vUV = uv;
+  gl_Position[1u] = (gl_Position.y * -1.0f);
+}
+
+main_out main_inner(float3 position_1_param, float2 uv_param, float3 normal_param) {
+  position_1 = position_1_param;
+  uv = uv_param;
+  normal = normal_param;
+  main_1();
+  main_out v_9 = {gl_Position, vUV};
+  return v_9;
+}
+
+main_outputs main(main_inputs inputs) {
+  main_out v_10 = main_inner(inputs.position_1_param, inputs.uv_param, inputs.normal_param);
+  main_out v_11 = v_10;
+  main_out v_12 = v_10;
+  main_outputs v_13 = {v_12.vUV_1, v_11.gl_Position};
+  return v_13;
+}
+
diff --git a/test/tint/bug/tint/1113.wgsl.expected.ir.dxc.hlsl b/test/tint/bug/tint/1113.wgsl.expected.ir.dxc.hlsl
index c6e1d96..842bec9 100644
--- a/test/tint/bug/tint/1113.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/bug/tint/1113.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,172 @@
-SKIP: FAILED
+struct main_count_inputs {
+  uint3 GlobalInvocationID : SV_DispatchThreadID;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Construct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct main_create_lut_inputs {
+  uint3 GlobalInvocationID : SV_DispatchThreadID;
+};
+
+struct main_sort_triangles_inputs {
+  uint3 GlobalInvocationID : SV_DispatchThreadID;
+};
+
+
+cbuffer cbuffer_uniforms : register(b0) {
+  uint4 uniforms[3];
+};
+RWByteAddressBuffer indices : register(u10);
+RWByteAddressBuffer positions : register(u11);
+RWByteAddressBuffer counters : register(u20);
+RWByteAddressBuffer LUT : register(u21);
+RWByteAddressBuffer dbg : register(u50);
+float3 toVoxelPos(float3 position) {
+  float v = asfloat(uniforms[1u].x);
+  float v_1 = asfloat(uniforms[1u].y);
+  float3 bbMin = float3(v, v_1, asfloat(uniforms[1u].z));
+  float v_2 = asfloat(uniforms[2u].x);
+  float v_3 = asfloat(uniforms[2u].y);
+  float3 bbMax = float3(v_2, v_3, asfloat(uniforms[2u].z));
+  float3 bbSize = (bbMax - bbMin);
+  float v_4 = max(bbSize.x, bbSize.y);
+  float cubeSize = max(v_4, bbSize.z);
+  float gridSize = float(uniforms[0u].y);
+  float v_5 = gridSize;
+  float v_6 = (v_5 * (position[0u] - asfloat(uniforms[1u].x)));
+  float gx = (v_6 / cubeSize);
+  float v_7 = gridSize;
+  float v_8 = (v_7 * (position[1u] - asfloat(uniforms[1u].y)));
+  float gy = (v_8 / cubeSize);
+  float v_9 = gridSize;
+  float v_10 = (v_9 * (position[2u] - asfloat(uniforms[1u].z)));
+  float gz = (v_10 / cubeSize);
+  return float3(gx, gy, gz);
+}
+
+uint3 tint_v3f32_to_v3u32(float3 value) {
+  return (((value <= (4294967040.0f).xxx)) ? ((((value >= (0.0f).xxx)) ? (uint3(value)) : ((0u).xxx))) : ((4294967295u).xxx));
+}
+
+uint toIndex1D(uint gridSize, float3 voxelPos) {
+  uint3 icoord = tint_v3f32_to_v3u32(voxelPos);
+  return ((icoord.x + (gridSize * icoord.y)) + ((gridSize * gridSize) * icoord.z));
+}
+
+uint tint_mod_u32(uint lhs, uint rhs) {
+  uint v_11 = (((rhs == 0u)) ? (1u) : (rhs));
+  return (lhs - ((lhs / v_11) * v_11));
+}
+
+uint tint_div_u32(uint lhs, uint rhs) {
+  return (lhs / (((rhs == 0u)) ? (1u) : (rhs)));
+}
+
+uint3 toIndex3D(uint gridSize, uint index) {
+  uint z = tint_div_u32(index, (gridSize * gridSize));
+  uint y = tint_div_u32((index - ((gridSize * gridSize) * z)), gridSize);
+  uint x = tint_mod_u32(index, gridSize);
+  return uint3(x, y, z);
+}
+
+float3 loadPosition(uint vertexIndex) {
+  float v_12 = asfloat(positions.Load((0u + (uint(((3u * vertexIndex) + 0u)) * 4u))));
+  float v_13 = asfloat(positions.Load((0u + (uint(((3u * vertexIndex) + 1u)) * 4u))));
+  float3 position = float3(v_12, v_13, asfloat(positions.Load((0u + (uint(((3u * vertexIndex) + 2u)) * 4u)))));
+  return position;
+}
+
+void doIgnore() {
+  uint g42 = uniforms[0u].x;
+  uint kj6 = dbg.Load(20u);
+  uint v_14 = 0u;
+  counters.InterlockedOr(uint(0u), 0u, v_14);
+  uint b53 = v_14;
+  uint rwg = indices.Load(0u);
+  float rb5 = asfloat(positions.Load(0u));
+  int v_15 = 0;
+  LUT.InterlockedOr(int(0u), 0, v_15);
+  int g55 = v_15;
+}
+
+void main_count_inner(uint3 GlobalInvocationID) {
+  uint triangleIndex = GlobalInvocationID[0u];
+  if ((triangleIndex >= uniforms[0u].x)) {
+    return;
+  }
+  doIgnore();
+  uint i0 = indices.Load((0u + (uint(((3u * triangleIndex) + 0u)) * 4u)));
+  uint i1 = indices.Load((0u + (uint(((3u * triangleIndex) + 1u)) * 4u)));
+  uint i2 = indices.Load((0u + (uint(((3u * triangleIndex) + 2u)) * 4u)));
+  float3 p0 = loadPosition(i0);
+  float3 p1 = loadPosition(i1);
+  float3 p2 = loadPosition(i2);
+  float3 center = (((p0 + p1) + p2) / 3.0f);
+  float3 voxelPos = toVoxelPos(center);
+  uint voxelIndex = toIndex1D(uniforms[0u].y, voxelPos);
+  uint v_16 = 0u;
+  counters.InterlockedAdd(uint(0u), 1u, v_16);
+  uint acefg = v_16;
+  if ((triangleIndex == 0u)) {
+    dbg.Store(16u, uniforms[0u].y);
+    dbg.Store(32u, asuint(center.x));
+    dbg.Store(36u, asuint(center.y));
+    dbg.Store(40u, asuint(center.z));
+  }
+}
+
+void main_create_lut_inner(uint3 GlobalInvocationID) {
+  uint voxelIndex = GlobalInvocationID[0u];
+  doIgnore();
+  uint maxVoxels = ((uniforms[0u].y * uniforms[0u].y) * uniforms[0u].y);
+  if ((voxelIndex >= maxVoxels)) {
+    return;
+  }
+  uint v_17 = 0u;
+  counters.InterlockedOr(uint(0u), 0u, v_17);
+  uint numTriangles = v_17;
+  int offset = -1;
+  if ((numTriangles > 0u)) {
+    uint v_18 = numTriangles;
+    uint v_19 = 0u;
+    dbg.InterlockedAdd(uint(0u), v_18, v_19);
+    offset = int(v_19);
+  }
+  int v_20 = offset;
+  int v_21 = 0;
+  LUT.InterlockedExchange(int(0u), v_20, v_21);
+}
+
+void main_sort_triangles_inner(uint3 GlobalInvocationID) {
+  uint triangleIndex = GlobalInvocationID[0u];
+  doIgnore();
+  if ((triangleIndex >= uniforms[0u].x)) {
+    return;
+  }
+  uint i0 = indices.Load((0u + (uint(((3u * triangleIndex) + 0u)) * 4u)));
+  uint i1 = indices.Load((0u + (uint(((3u * triangleIndex) + 1u)) * 4u)));
+  uint i2 = indices.Load((0u + (uint(((3u * triangleIndex) + 2u)) * 4u)));
+  float3 p0 = loadPosition(i0);
+  float3 p1 = loadPosition(i1);
+  float3 p2 = loadPosition(i2);
+  float3 center = (((p0 + p1) + p2) / 3.0f);
+  float3 voxelPos = toVoxelPos(center);
+  uint voxelIndex = toIndex1D(uniforms[0u].y, voxelPos);
+  int v_22 = 0;
+  LUT.InterlockedAdd(int(0u), 1, v_22);
+  int triangleOffset = v_22;
+}
+
+[numthreads(128, 1, 1)]
+void main_count(main_count_inputs inputs) {
+  main_count_inner(inputs.GlobalInvocationID);
+}
+
+[numthreads(128, 1, 1)]
+void main_create_lut(main_create_lut_inputs inputs) {
+  main_create_lut_inner(inputs.GlobalInvocationID);
+}
+
+[numthreads(128, 1, 1)]
+void main_sort_triangles(main_sort_triangles_inputs inputs) {
+  main_sort_triangles_inner(inputs.GlobalInvocationID);
+}
+
diff --git a/test/tint/bug/tint/1113.wgsl.expected.ir.fxc.hlsl b/test/tint/bug/tint/1113.wgsl.expected.ir.fxc.hlsl
index c6e1d96..842bec9 100644
--- a/test/tint/bug/tint/1113.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/bug/tint/1113.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,172 @@
-SKIP: FAILED
+struct main_count_inputs {
+  uint3 GlobalInvocationID : SV_DispatchThreadID;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Construct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct main_create_lut_inputs {
+  uint3 GlobalInvocationID : SV_DispatchThreadID;
+};
+
+struct main_sort_triangles_inputs {
+  uint3 GlobalInvocationID : SV_DispatchThreadID;
+};
+
+
+cbuffer cbuffer_uniforms : register(b0) {
+  uint4 uniforms[3];
+};
+RWByteAddressBuffer indices : register(u10);
+RWByteAddressBuffer positions : register(u11);
+RWByteAddressBuffer counters : register(u20);
+RWByteAddressBuffer LUT : register(u21);
+RWByteAddressBuffer dbg : register(u50);
+float3 toVoxelPos(float3 position) {
+  float v = asfloat(uniforms[1u].x);
+  float v_1 = asfloat(uniforms[1u].y);
+  float3 bbMin = float3(v, v_1, asfloat(uniforms[1u].z));
+  float v_2 = asfloat(uniforms[2u].x);
+  float v_3 = asfloat(uniforms[2u].y);
+  float3 bbMax = float3(v_2, v_3, asfloat(uniforms[2u].z));
+  float3 bbSize = (bbMax - bbMin);
+  float v_4 = max(bbSize.x, bbSize.y);
+  float cubeSize = max(v_4, bbSize.z);
+  float gridSize = float(uniforms[0u].y);
+  float v_5 = gridSize;
+  float v_6 = (v_5 * (position[0u] - asfloat(uniforms[1u].x)));
+  float gx = (v_6 / cubeSize);
+  float v_7 = gridSize;
+  float v_8 = (v_7 * (position[1u] - asfloat(uniforms[1u].y)));
+  float gy = (v_8 / cubeSize);
+  float v_9 = gridSize;
+  float v_10 = (v_9 * (position[2u] - asfloat(uniforms[1u].z)));
+  float gz = (v_10 / cubeSize);
+  return float3(gx, gy, gz);
+}
+
+uint3 tint_v3f32_to_v3u32(float3 value) {
+  return (((value <= (4294967040.0f).xxx)) ? ((((value >= (0.0f).xxx)) ? (uint3(value)) : ((0u).xxx))) : ((4294967295u).xxx));
+}
+
+uint toIndex1D(uint gridSize, float3 voxelPos) {
+  uint3 icoord = tint_v3f32_to_v3u32(voxelPos);
+  return ((icoord.x + (gridSize * icoord.y)) + ((gridSize * gridSize) * icoord.z));
+}
+
+uint tint_mod_u32(uint lhs, uint rhs) {
+  uint v_11 = (((rhs == 0u)) ? (1u) : (rhs));
+  return (lhs - ((lhs / v_11) * v_11));
+}
+
+uint tint_div_u32(uint lhs, uint rhs) {
+  return (lhs / (((rhs == 0u)) ? (1u) : (rhs)));
+}
+
+uint3 toIndex3D(uint gridSize, uint index) {
+  uint z = tint_div_u32(index, (gridSize * gridSize));
+  uint y = tint_div_u32((index - ((gridSize * gridSize) * z)), gridSize);
+  uint x = tint_mod_u32(index, gridSize);
+  return uint3(x, y, z);
+}
+
+float3 loadPosition(uint vertexIndex) {
+  float v_12 = asfloat(positions.Load((0u + (uint(((3u * vertexIndex) + 0u)) * 4u))));
+  float v_13 = asfloat(positions.Load((0u + (uint(((3u * vertexIndex) + 1u)) * 4u))));
+  float3 position = float3(v_12, v_13, asfloat(positions.Load((0u + (uint(((3u * vertexIndex) + 2u)) * 4u)))));
+  return position;
+}
+
+void doIgnore() {
+  uint g42 = uniforms[0u].x;
+  uint kj6 = dbg.Load(20u);
+  uint v_14 = 0u;
+  counters.InterlockedOr(uint(0u), 0u, v_14);
+  uint b53 = v_14;
+  uint rwg = indices.Load(0u);
+  float rb5 = asfloat(positions.Load(0u));
+  int v_15 = 0;
+  LUT.InterlockedOr(int(0u), 0, v_15);
+  int g55 = v_15;
+}
+
+void main_count_inner(uint3 GlobalInvocationID) {
+  uint triangleIndex = GlobalInvocationID[0u];
+  if ((triangleIndex >= uniforms[0u].x)) {
+    return;
+  }
+  doIgnore();
+  uint i0 = indices.Load((0u + (uint(((3u * triangleIndex) + 0u)) * 4u)));
+  uint i1 = indices.Load((0u + (uint(((3u * triangleIndex) + 1u)) * 4u)));
+  uint i2 = indices.Load((0u + (uint(((3u * triangleIndex) + 2u)) * 4u)));
+  float3 p0 = loadPosition(i0);
+  float3 p1 = loadPosition(i1);
+  float3 p2 = loadPosition(i2);
+  float3 center = (((p0 + p1) + p2) / 3.0f);
+  float3 voxelPos = toVoxelPos(center);
+  uint voxelIndex = toIndex1D(uniforms[0u].y, voxelPos);
+  uint v_16 = 0u;
+  counters.InterlockedAdd(uint(0u), 1u, v_16);
+  uint acefg = v_16;
+  if ((triangleIndex == 0u)) {
+    dbg.Store(16u, uniforms[0u].y);
+    dbg.Store(32u, asuint(center.x));
+    dbg.Store(36u, asuint(center.y));
+    dbg.Store(40u, asuint(center.z));
+  }
+}
+
+void main_create_lut_inner(uint3 GlobalInvocationID) {
+  uint voxelIndex = GlobalInvocationID[0u];
+  doIgnore();
+  uint maxVoxels = ((uniforms[0u].y * uniforms[0u].y) * uniforms[0u].y);
+  if ((voxelIndex >= maxVoxels)) {
+    return;
+  }
+  uint v_17 = 0u;
+  counters.InterlockedOr(uint(0u), 0u, v_17);
+  uint numTriangles = v_17;
+  int offset = -1;
+  if ((numTriangles > 0u)) {
+    uint v_18 = numTriangles;
+    uint v_19 = 0u;
+    dbg.InterlockedAdd(uint(0u), v_18, v_19);
+    offset = int(v_19);
+  }
+  int v_20 = offset;
+  int v_21 = 0;
+  LUT.InterlockedExchange(int(0u), v_20, v_21);
+}
+
+void main_sort_triangles_inner(uint3 GlobalInvocationID) {
+  uint triangleIndex = GlobalInvocationID[0u];
+  doIgnore();
+  if ((triangleIndex >= uniforms[0u].x)) {
+    return;
+  }
+  uint i0 = indices.Load((0u + (uint(((3u * triangleIndex) + 0u)) * 4u)));
+  uint i1 = indices.Load((0u + (uint(((3u * triangleIndex) + 1u)) * 4u)));
+  uint i2 = indices.Load((0u + (uint(((3u * triangleIndex) + 2u)) * 4u)));
+  float3 p0 = loadPosition(i0);
+  float3 p1 = loadPosition(i1);
+  float3 p2 = loadPosition(i2);
+  float3 center = (((p0 + p1) + p2) / 3.0f);
+  float3 voxelPos = toVoxelPos(center);
+  uint voxelIndex = toIndex1D(uniforms[0u].y, voxelPos);
+  int v_22 = 0;
+  LUT.InterlockedAdd(int(0u), 1, v_22);
+  int triangleOffset = v_22;
+}
+
+[numthreads(128, 1, 1)]
+void main_count(main_count_inputs inputs) {
+  main_count_inner(inputs.GlobalInvocationID);
+}
+
+[numthreads(128, 1, 1)]
+void main_create_lut(main_create_lut_inputs inputs) {
+  main_create_lut_inner(inputs.GlobalInvocationID);
+}
+
+[numthreads(128, 1, 1)]
+void main_sort_triangles(main_sort_triangles_inputs inputs) {
+  main_sort_triangles_inner(inputs.GlobalInvocationID);
+}
+
diff --git a/test/tint/bug/tint/1118.wgsl.expected.ir.dxc.hlsl b/test/tint/bug/tint/1118.wgsl.expected.ir.dxc.hlsl
index bdeab23..d1ee477 100644
--- a/test/tint/bug/tint/1118.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/bug/tint/1118.wgsl.expected.ir.dxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:198 internal compiler error: Switch() matched no cases. Type: tint::core::ir::If
+..\..\src\tint\lang\core\ir\transform\demote_to_helper.cc:208 internal compiler error: TINT_UNREACHABLE unexpected non-core instruction
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/bug/tint/1118.wgsl.expected.ir.fxc.hlsl b/test/tint/bug/tint/1118.wgsl.expected.ir.fxc.hlsl
index bdeab23..d1ee477 100644
--- a/test/tint/bug/tint/1118.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/bug/tint/1118.wgsl.expected.ir.fxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:198 internal compiler error: Switch() matched no cases. Type: tint::core::ir::If
+..\..\src\tint\lang\core\ir\transform\demote_to_helper.cc:208 internal compiler error: TINT_UNREACHABLE unexpected non-core instruction
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/bug/tint/1121.wgsl.expected.ir.dxc.hlsl b/test/tint/bug/tint/1121.wgsl.expected.ir.dxc.hlsl
index 3f437dc..c31958a 100644
--- a/test/tint/bug/tint/1121.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/bug/tint/1121.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,157 @@
-SKIP: FAILED
+struct main_inputs {
+  uint3 GlobalInvocationID : SV_DispatchThreadID;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Access
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+
+RWByteAddressBuffer lightsBuffer : register(u0);
+RWByteAddressBuffer tileLightId : register(u0, space1);
+cbuffer cbuffer_config : register(b0, space2) {
+  uint4 config[2];
+};
+cbuffer cbuffer_uniforms : register(b0, space3) {
+  uint4 uniforms[11];
+};
+float4x4 v(uint start_byte_offset) {
+  float4 v_1 = asfloat(uniforms[(start_byte_offset / 16u)]);
+  float4 v_2 = asfloat(uniforms[((16u + start_byte_offset) / 16u)]);
+  float4 v_3 = asfloat(uniforms[((32u + start_byte_offset) / 16u)]);
+  return float4x4(v_1, v_2, v_3, asfloat(uniforms[((48u + start_byte_offset) / 16u)]));
+}
+
+void main_inner(uint3 GlobalInvocationID) {
+  uint index = GlobalInvocationID[0u];
+  if ((index >= config[0u].x)) {
+    return;
+  }
+  uint v_4 = (uint(index) * 32u);
+  float v_5 = (asfloat(lightsBuffer.Load((4u + (uint(index) * 32u)))) - 0.10000000149011611938f);
+  float v_6 = float(index);
+  lightsBuffer.Store((4u + v_4), asuint((v_5 + (0.00100000004749745131f * (v_6 - (64.0f * floor((float(index) / 64.0f))))))));
+  float v_7 = asfloat(lightsBuffer.Load((4u + (uint(index) * 32u))));
+  if ((v_7 < asfloat(uniforms[0u].y))) {
+    uint v_8 = (uint(index) * 32u);
+    lightsBuffer.Store((4u + v_8), asuint(asfloat(uniforms[1u].y)));
+  }
+  float4x4 M = v(96u);
+  float viewNear = (-(M[3].z) / (-1.0f + M[2].z));
+  float viewFar = (-(M[3].z) / (1.0f + M[2].z));
+  float4 lightPos = asfloat(lightsBuffer.Load4((0u + (uint(index) * 32u))));
+  float4x4 v_9 = v(32u);
+  lightPos = mul(lightPos, v_9);
+  lightPos = (lightPos / lightPos.w);
+  float lightRadius = asfloat(lightsBuffer.Load((28u + (uint(index) * 32u))));
+  float4 v_10 = lightPos;
+  float4 boxMin = (v_10 - float4(float3((lightRadius).xxx), 0.0f));
+  float4 v_11 = lightPos;
+  float4 boxMax = (v_11 + float4(float3((lightRadius).xxx), 0.0f));
+  float4 frustumPlanes[6] = (float4[6])0;
+  frustumPlanes[4] = float4(0.0f, 0.0f, -1.0f, viewNear);
+  frustumPlanes[5] = float4(0.0f, 0.0f, 1.0f, -(viewFar));
+  int TILE_SIZE = 16;
+  int TILE_COUNT_X = 2;
+  int TILE_COUNT_Y = 2;
+  {
+    int y = 0;
+    while(true) {
+      if ((y < TILE_COUNT_Y)) {
+      } else {
+        break;
+      }
+      {
+        int x = 0;
+        while(true) {
+          if ((x < TILE_COUNT_X)) {
+          } else {
+            break;
+          }
+          int2 tilePixel0Idx = int2((x * TILE_SIZE), (y * TILE_SIZE));
+          float2 v_12 = (2.0f * float2(tilePixel0Idx));
+          float2 floorCoord = ((v_12 / asfloat(uniforms[10u]).xy) - (1.0f).xx);
+          int2 v_13 = tilePixel0Idx;
+          float2 v_14 = (2.0f * float2((v_13 + int2((TILE_SIZE).xx))));
+          float2 ceilCoord = ((v_14 / asfloat(uniforms[10u]).xy) - (1.0f).xx);
+          float2 viewFloorCoord = float2((((-(viewNear) * floorCoord.x) - (M[2].x * viewNear)) / M[0].x), (((-(viewNear) * floorCoord.y) - (M[2].y * viewNear)) / M[1].y));
+          float2 viewCeilCoord = float2((((-(viewNear) * ceilCoord.x) - (M[2].x * viewNear)) / M[0].x), (((-(viewNear) * ceilCoord.y) - (M[2].y * viewNear)) / M[1].y));
+          frustumPlanes[0] = float4(1.0f, 0.0f, (-(viewFloorCoord.x) / viewNear), 0.0f);
+          frustumPlanes[1] = float4(-1.0f, 0.0f, (viewCeilCoord.x / viewNear), 0.0f);
+          frustumPlanes[2] = float4(0.0f, 1.0f, (-(viewFloorCoord.y) / viewNear), 0.0f);
+          frustumPlanes[3] = float4(0.0f, -1.0f, (viewCeilCoord.y / viewNear), 0.0f);
+          float dp = 0.0f;
+          {
+            uint i = 0u;
+            while(true) {
+              if ((i < 6u)) {
+              } else {
+                break;
+              }
+              float4 p = (0.0f).xxxx;
+              if ((frustumPlanes[i].x > 0.0f)) {
+                p[0u] = boxMax.x;
+              } else {
+                p[0u] = boxMin.x;
+              }
+              if ((frustumPlanes[i].y > 0.0f)) {
+                p[1u] = boxMax.y;
+              } else {
+                p[1u] = boxMin.y;
+              }
+              if ((frustumPlanes[i].z > 0.0f)) {
+                p[2u] = boxMax.z;
+              } else {
+                p[2u] = boxMin.z;
+              }
+              p[3u] = 1.0f;
+              float v_15 = dp;
+              dp = (v_15 + min(0.0f, dot(p, frustumPlanes[i])));
+              {
+                i = (i + 1u);
+              }
+              continue;
+            }
+          }
+          if ((dp >= 0.0f)) {
+            uint tileId = uint((x + (y * TILE_COUNT_X)));
+            bool v_16 = false;
+            if ((tileId < 0u)) {
+              v_16 = true;
+            } else {
+              v_16 = (tileId >= config[0u].y);
+            }
+            if (v_16) {
+              {
+                x = (x + 1);
+              }
+              continue;
+            }
+            uint v_17 = 0u;
+            tileLightId.InterlockedAdd(uint(0u), 1u, v_17);
+            uint offset = v_17;
+            if ((offset >= config[1u].x)) {
+              {
+                x = (x + 1);
+              }
+              continue;
+            }
+            uint v_18 = offset;
+            uint v_19 = (uint(tileId) * 260u);
+            tileLightId.Store(((4u + v_19) + (uint(v_18) * 4u)), GlobalInvocationID[0u]);
+          }
+          {
+            x = (x + 1);
+          }
+          continue;
+        }
+      }
+      {
+        y = (y + 1);
+      }
+      continue;
+    }
+  }
+}
+
+[numthreads(64, 1, 1)]
+void main(main_inputs inputs) {
+  main_inner(inputs.GlobalInvocationID);
+}
+
diff --git a/test/tint/bug/tint/1121.wgsl.expected.ir.fxc.hlsl b/test/tint/bug/tint/1121.wgsl.expected.ir.fxc.hlsl
index 3f437dc..c31958a 100644
--- a/test/tint/bug/tint/1121.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/bug/tint/1121.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,157 @@
-SKIP: FAILED
+struct main_inputs {
+  uint3 GlobalInvocationID : SV_DispatchThreadID;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Access
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+
+RWByteAddressBuffer lightsBuffer : register(u0);
+RWByteAddressBuffer tileLightId : register(u0, space1);
+cbuffer cbuffer_config : register(b0, space2) {
+  uint4 config[2];
+};
+cbuffer cbuffer_uniforms : register(b0, space3) {
+  uint4 uniforms[11];
+};
+float4x4 v(uint start_byte_offset) {
+  float4 v_1 = asfloat(uniforms[(start_byte_offset / 16u)]);
+  float4 v_2 = asfloat(uniforms[((16u + start_byte_offset) / 16u)]);
+  float4 v_3 = asfloat(uniforms[((32u + start_byte_offset) / 16u)]);
+  return float4x4(v_1, v_2, v_3, asfloat(uniforms[((48u + start_byte_offset) / 16u)]));
+}
+
+void main_inner(uint3 GlobalInvocationID) {
+  uint index = GlobalInvocationID[0u];
+  if ((index >= config[0u].x)) {
+    return;
+  }
+  uint v_4 = (uint(index) * 32u);
+  float v_5 = (asfloat(lightsBuffer.Load((4u + (uint(index) * 32u)))) - 0.10000000149011611938f);
+  float v_6 = float(index);
+  lightsBuffer.Store((4u + v_4), asuint((v_5 + (0.00100000004749745131f * (v_6 - (64.0f * floor((float(index) / 64.0f))))))));
+  float v_7 = asfloat(lightsBuffer.Load((4u + (uint(index) * 32u))));
+  if ((v_7 < asfloat(uniforms[0u].y))) {
+    uint v_8 = (uint(index) * 32u);
+    lightsBuffer.Store((4u + v_8), asuint(asfloat(uniforms[1u].y)));
+  }
+  float4x4 M = v(96u);
+  float viewNear = (-(M[3].z) / (-1.0f + M[2].z));
+  float viewFar = (-(M[3].z) / (1.0f + M[2].z));
+  float4 lightPos = asfloat(lightsBuffer.Load4((0u + (uint(index) * 32u))));
+  float4x4 v_9 = v(32u);
+  lightPos = mul(lightPos, v_9);
+  lightPos = (lightPos / lightPos.w);
+  float lightRadius = asfloat(lightsBuffer.Load((28u + (uint(index) * 32u))));
+  float4 v_10 = lightPos;
+  float4 boxMin = (v_10 - float4(float3((lightRadius).xxx), 0.0f));
+  float4 v_11 = lightPos;
+  float4 boxMax = (v_11 + float4(float3((lightRadius).xxx), 0.0f));
+  float4 frustumPlanes[6] = (float4[6])0;
+  frustumPlanes[4] = float4(0.0f, 0.0f, -1.0f, viewNear);
+  frustumPlanes[5] = float4(0.0f, 0.0f, 1.0f, -(viewFar));
+  int TILE_SIZE = 16;
+  int TILE_COUNT_X = 2;
+  int TILE_COUNT_Y = 2;
+  {
+    int y = 0;
+    while(true) {
+      if ((y < TILE_COUNT_Y)) {
+      } else {
+        break;
+      }
+      {
+        int x = 0;
+        while(true) {
+          if ((x < TILE_COUNT_X)) {
+          } else {
+            break;
+          }
+          int2 tilePixel0Idx = int2((x * TILE_SIZE), (y * TILE_SIZE));
+          float2 v_12 = (2.0f * float2(tilePixel0Idx));
+          float2 floorCoord = ((v_12 / asfloat(uniforms[10u]).xy) - (1.0f).xx);
+          int2 v_13 = tilePixel0Idx;
+          float2 v_14 = (2.0f * float2((v_13 + int2((TILE_SIZE).xx))));
+          float2 ceilCoord = ((v_14 / asfloat(uniforms[10u]).xy) - (1.0f).xx);
+          float2 viewFloorCoord = float2((((-(viewNear) * floorCoord.x) - (M[2].x * viewNear)) / M[0].x), (((-(viewNear) * floorCoord.y) - (M[2].y * viewNear)) / M[1].y));
+          float2 viewCeilCoord = float2((((-(viewNear) * ceilCoord.x) - (M[2].x * viewNear)) / M[0].x), (((-(viewNear) * ceilCoord.y) - (M[2].y * viewNear)) / M[1].y));
+          frustumPlanes[0] = float4(1.0f, 0.0f, (-(viewFloorCoord.x) / viewNear), 0.0f);
+          frustumPlanes[1] = float4(-1.0f, 0.0f, (viewCeilCoord.x / viewNear), 0.0f);
+          frustumPlanes[2] = float4(0.0f, 1.0f, (-(viewFloorCoord.y) / viewNear), 0.0f);
+          frustumPlanes[3] = float4(0.0f, -1.0f, (viewCeilCoord.y / viewNear), 0.0f);
+          float dp = 0.0f;
+          {
+            uint i = 0u;
+            while(true) {
+              if ((i < 6u)) {
+              } else {
+                break;
+              }
+              float4 p = (0.0f).xxxx;
+              if ((frustumPlanes[i].x > 0.0f)) {
+                p[0u] = boxMax.x;
+              } else {
+                p[0u] = boxMin.x;
+              }
+              if ((frustumPlanes[i].y > 0.0f)) {
+                p[1u] = boxMax.y;
+              } else {
+                p[1u] = boxMin.y;
+              }
+              if ((frustumPlanes[i].z > 0.0f)) {
+                p[2u] = boxMax.z;
+              } else {
+                p[2u] = boxMin.z;
+              }
+              p[3u] = 1.0f;
+              float v_15 = dp;
+              dp = (v_15 + min(0.0f, dot(p, frustumPlanes[i])));
+              {
+                i = (i + 1u);
+              }
+              continue;
+            }
+          }
+          if ((dp >= 0.0f)) {
+            uint tileId = uint((x + (y * TILE_COUNT_X)));
+            bool v_16 = false;
+            if ((tileId < 0u)) {
+              v_16 = true;
+            } else {
+              v_16 = (tileId >= config[0u].y);
+            }
+            if (v_16) {
+              {
+                x = (x + 1);
+              }
+              continue;
+            }
+            uint v_17 = 0u;
+            tileLightId.InterlockedAdd(uint(0u), 1u, v_17);
+            uint offset = v_17;
+            if ((offset >= config[1u].x)) {
+              {
+                x = (x + 1);
+              }
+              continue;
+            }
+            uint v_18 = offset;
+            uint v_19 = (uint(tileId) * 260u);
+            tileLightId.Store(((4u + v_19) + (uint(v_18) * 4u)), GlobalInvocationID[0u]);
+          }
+          {
+            x = (x + 1);
+          }
+          continue;
+        }
+      }
+      {
+        y = (y + 1);
+      }
+      continue;
+    }
+  }
+}
+
+[numthreads(64, 1, 1)]
+void main(main_inputs inputs) {
+  main_inner(inputs.GlobalInvocationID);
+}
+
diff --git a/test/tint/bug/tint/1136.wgsl.expected.ir.dxc.hlsl b/test/tint/bug/tint/1136.wgsl.expected.ir.dxc.hlsl
index 3f437dc..71ff53c 100644
--- a/test/tint/bug/tint/1136.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/bug/tint/1136.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,10 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Access
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWByteAddressBuffer buffer : register(u0);
+void main() {
+  buffer.Store(0u, (buffer.Load(0u) + 1u));
+}
+
+[numthreads(1, 1, 1)]
+void unused_entry_point() {
+}
+
diff --git a/test/tint/bug/tint/1136.wgsl.expected.ir.fxc.hlsl b/test/tint/bug/tint/1136.wgsl.expected.ir.fxc.hlsl
index 3f437dc..71ff53c 100644
--- a/test/tint/bug/tint/1136.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/bug/tint/1136.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,10 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Access
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWByteAddressBuffer buffer : register(u0);
+void main() {
+  buffer.Store(0u, (buffer.Load(0u) + 1u));
+}
+
+[numthreads(1, 1, 1)]
+void unused_entry_point() {
+}
+
diff --git a/test/tint/bug/tint/1183.wgsl.expected.ir.dxc.hlsl b/test/tint/bug/tint/1183.wgsl.expected.ir.dxc.hlsl
index 6739938..58230f6 100644
--- a/test/tint/bug/tint/1183.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/bug/tint/1183.wgsl.expected.ir.dxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureSample
+..\..\src\tint\lang\hlsl\writer\printer\printer.cc:1010 internal compiler error: TINT_UNREACHABLE unhandled: textureSample
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/bug/tint/1183.wgsl.expected.ir.fxc.hlsl b/test/tint/bug/tint/1183.wgsl.expected.ir.fxc.hlsl
index 6739938..58230f6 100644
--- a/test/tint/bug/tint/1183.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/bug/tint/1183.wgsl.expected.ir.fxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureSample
+..\..\src\tint\lang\hlsl\writer\printer\printer.cc:1010 internal compiler error: TINT_UNREACHABLE unhandled: textureSample
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/bug/tint/1321.wgsl.expected.ir.dxc.hlsl b/test/tint/bug/tint/1321.wgsl.expected.ir.dxc.hlsl
index adbb0c1..fb237e9 100644
--- a/test/tint/bug/tint/1321.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/bug/tint/1321.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,16 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:198 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Loop
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+int foo() {
+  return 1;
+}
+
+void main() {
+  float arr[4] = (float[4])0;
+  {
+    float a = arr[foo()];
+    while(true) {
+      float x = a;
+      break;
+    }
+  }
+}
+
diff --git a/test/tint/bug/tint/1321.wgsl.expected.ir.fxc.hlsl b/test/tint/bug/tint/1321.wgsl.expected.ir.fxc.hlsl
index adbb0c1..fb237e9 100644
--- a/test/tint/bug/tint/1321.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/bug/tint/1321.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,16 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:198 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Loop
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+int foo() {
+  return 1;
+}
+
+void main() {
+  float arr[4] = (float[4])0;
+  {
+    float a = arr[foo()];
+    while(true) {
+      float x = a;
+      break;
+    }
+  }
+}
+
diff --git a/test/tint/bug/tint/1332.wgsl.expected.ir.dxc.hlsl b/test/tint/bug/tint/1332.wgsl.expected.ir.dxc.hlsl
index 8fb1469..e945d87 100644
--- a/test/tint/bug/tint/1332.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/bug/tint/1332.wgsl.expected.ir.dxc.hlsl
@@ -1,3 +1,4 @@
+
 [numthreads(1, 1, 1)]
 void compute_main() {
   float a = 1.24000000953674316406f;
diff --git a/test/tint/bug/tint/1332.wgsl.expected.ir.fxc.hlsl b/test/tint/bug/tint/1332.wgsl.expected.ir.fxc.hlsl
index 47ecbfd..e945d87 100644
--- a/test/tint/bug/tint/1332.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/bug/tint/1332.wgsl.expected.ir.fxc.hlsl
@@ -1,4 +1,3 @@
-SKIP: FAILED
 
 [numthreads(1, 1, 1)]
 void compute_main() {
diff --git a/test/tint/bug/tint/1369.wgsl.expected.ir.dxc.hlsl b/test/tint/bug/tint/1369.wgsl.expected.ir.dxc.hlsl
index 0da5df3..38fe964 100644
--- a/test/tint/bug/tint/1369.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/bug/tint/1369.wgsl.expected.ir.dxc.hlsl
@@ -1,3 +1,15 @@
-SKIP: FAILED
 
-signal: segmentation fault
\ No newline at end of file
+static bool continue_execution = true;
+bool call_discard() {
+  continue_execution = false;
+  return true;
+}
+
+void f() {
+  bool v = call_discard();
+  bool also_unreachable = false;
+  if (!(continue_execution)) {
+    discard;
+  }
+}
+
diff --git a/test/tint/bug/tint/1369.wgsl.expected.ir.fxc.hlsl b/test/tint/bug/tint/1369.wgsl.expected.ir.fxc.hlsl
index 0da5df3..38fe964 100644
--- a/test/tint/bug/tint/1369.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/bug/tint/1369.wgsl.expected.ir.fxc.hlsl
@@ -1,3 +1,15 @@
-SKIP: FAILED
 
-signal: segmentation fault
\ No newline at end of file
+static bool continue_execution = true;
+bool call_discard() {
+  continue_execution = false;
+  return true;
+}
+
+void f() {
+  bool v = call_discard();
+  bool also_unreachable = false;
+  if (!(continue_execution)) {
+    discard;
+  }
+}
+
diff --git a/test/tint/bug/tint/1385.wgsl.expected.ir.dxc.hlsl b/test/tint/bug/tint/1385.wgsl.expected.ir.dxc.hlsl
index 3f437dc..57c109c 100644
--- a/test/tint/bug/tint/1385.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/bug/tint/1385.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,11 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Access
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+ByteAddressBuffer data : register(t1);
+int foo() {
+  return asint(data.Load(0u));
+}
+
+[numthreads(16, 16, 1)]
+void main() {
+  foo();
+}
+
diff --git a/test/tint/bug/tint/1385.wgsl.expected.ir.fxc.hlsl b/test/tint/bug/tint/1385.wgsl.expected.ir.fxc.hlsl
index 3f437dc..57c109c 100644
--- a/test/tint/bug/tint/1385.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/bug/tint/1385.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,11 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Access
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+ByteAddressBuffer data : register(t1);
+int foo() {
+  return asint(data.Load(0u));
+}
+
+[numthreads(16, 16, 1)]
+void main() {
+  foo();
+}
+
diff --git a/test/tint/bug/tint/1474-a.wgsl.expected.ir.dxc.hlsl b/test/tint/bug/tint/1474-a.wgsl.expected.ir.dxc.hlsl
index adbb0c1..aefa1a5 100644
--- a/test/tint/bug/tint/1474-a.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/bug/tint/1474-a.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,22 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:198 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Loop
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+[numthreads(1, 1, 1)]
+void main() {
+  {
+    while(true) {
+      if (true) {
+      } else {
+        break;
+      }
+      if (true) {
+        break;
+      } else {
+        return;
+      }
+      {
+      }
+      continue;
+    }
+  }
+  int x = 5;
+}
+
diff --git a/test/tint/bug/tint/1474-a.wgsl.expected.ir.fxc.hlsl b/test/tint/bug/tint/1474-a.wgsl.expected.ir.fxc.hlsl
index adbb0c1..aefa1a5 100644
--- a/test/tint/bug/tint/1474-a.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/bug/tint/1474-a.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,22 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:198 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Loop
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+[numthreads(1, 1, 1)]
+void main() {
+  {
+    while(true) {
+      if (true) {
+      } else {
+        break;
+      }
+      if (true) {
+        break;
+      } else {
+        return;
+      }
+      {
+      }
+      continue;
+    }
+  }
+  int x = 5;
+}
+
diff --git a/test/tint/bug/tint/1474-b.wgsl.expected.ir.dxc.hlsl b/test/tint/bug/tint/1474-b.wgsl.expected.ir.dxc.hlsl
index 9df1761..f6bb7d5 100644
--- a/test/tint/bug/tint/1474-b.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/bug/tint/1474-b.wgsl.expected.ir.dxc.hlsl
@@ -2,6 +2,8 @@
     let non_uniform_cond = non_uniform_value == 0;
     ^^^^^^^^^^^^^^^^^^^^
 
+
+RWByteAddressBuffer non_uniform_value : register(u0);
 [numthreads(1, 1, 1)]
 void main() {
 }
diff --git a/test/tint/bug/tint/1474-b.wgsl.expected.ir.fxc.hlsl b/test/tint/bug/tint/1474-b.wgsl.expected.ir.fxc.hlsl
index 9df1761..f6bb7d5 100644
--- a/test/tint/bug/tint/1474-b.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/bug/tint/1474-b.wgsl.expected.ir.fxc.hlsl
@@ -2,6 +2,8 @@
     let non_uniform_cond = non_uniform_value == 0;
     ^^^^^^^^^^^^^^^^^^^^
 
+
+RWByteAddressBuffer non_uniform_value : register(u0);
 [numthreads(1, 1, 1)]
 void main() {
 }
diff --git a/test/tint/bug/tint/1509.wgsl.expected.ir.dxc.hlsl b/test/tint/bug/tint/1509.wgsl.expected.ir.dxc.hlsl
index 5f99a88..fee2e8a 100644
--- a/test/tint/bug/tint/1509.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/bug/tint/1509.wgsl.expected.ir.dxc.hlsl
@@ -1,5 +1,1008 @@
-SKIP: FAILED
+struct main_outputs {
+  uint tint_symbol : SV_Target0;
+};
 
+
+static uint v0 = 0u;
+static uint v1 = 0u;
+static uint v2 = 0u;
+static uint v3 = 0u;
+static uint v4 = 0u;
+static uint v5 = 0u;
+static uint v6 = 0u;
+static uint v7 = 0u;
+static uint v8 = 0u;
+static uint v9 = 0u;
+static uint v10 = 0u;
+static uint v11 = 0u;
+static uint v12 = 0u;
+static uint v13 = 0u;
+static uint v14 = 0u;
+static uint v15 = 0u;
+static uint v16 = 0u;
+static uint v17 = 0u;
+static uint v18 = 0u;
+static uint v19 = 0u;
+static uint v20 = 0u;
+static uint v21 = 0u;
+static uint v22 = 0u;
+static uint v23 = 0u;
+static uint v24 = 0u;
+static uint v25 = 0u;
+static uint v26 = 0u;
+static uint v27 = 0u;
+static uint v28 = 0u;
+static uint v29 = 0u;
+static uint v30 = 0u;
+static uint v31 = 0u;
+static uint v32 = 0u;
+static uint v33 = 0u;
+static uint v34 = 0u;
+static uint v35 = 0u;
+static uint v36 = 0u;
+static uint v37 = 0u;
+static uint v38 = 0u;
+static uint v39 = 0u;
+static uint v40 = 0u;
+static uint v41 = 0u;
+static uint v42 = 0u;
+static uint v43 = 0u;
+static uint v44 = 0u;
+static uint v45 = 0u;
+static uint v46 = 0u;
+static uint v47 = 0u;
+static uint v48 = 0u;
+static uint v49 = 0u;
+static uint v50 = 0u;
+static uint v51 = 0u;
+static uint v52 = 0u;
+static uint v53 = 0u;
+static uint v54 = 0u;
+static uint v55 = 0u;
+static uint v56 = 0u;
+static uint v57 = 0u;
+static uint v58 = 0u;
+static uint v59 = 0u;
+static uint v60 = 0u;
+static uint v61 = 0u;
+static uint v62 = 0u;
+static uint v63 = 0u;
+static uint v64 = 0u;
+static uint v65 = 0u;
+static uint v66 = 0u;
+static uint v67 = 0u;
+static uint v68 = 0u;
+static uint v69 = 0u;
+static uint v70 = 0u;
+static uint v71 = 0u;
+static uint v72 = 0u;
+static uint v73 = 0u;
+static uint v74 = 0u;
+static uint v75 = 0u;
+static uint v76 = 0u;
+static uint v77 = 0u;
+static uint v78 = 0u;
+static uint v79 = 0u;
+static uint v80 = 0u;
+static uint v81 = 0u;
+static uint v82 = 0u;
+static uint v83 = 0u;
+static uint v84 = 0u;
+static uint v85 = 0u;
+static uint v86 = 0u;
+static uint v87 = 0u;
+static uint v88 = 0u;
+static uint v89 = 0u;
+static uint v90 = 0u;
+static uint v91 = 0u;
+static uint v92 = 0u;
+static uint v93 = 0u;
+static uint v94 = 0u;
+static uint v95 = 0u;
+static uint v96 = 0u;
+static uint v97 = 0u;
+static uint v98 = 0u;
+static uint v99 = 0u;
+static uint v100 = 0u;
+static uint v101 = 0u;
+static uint v102 = 0u;
+static uint v103 = 0u;
+static uint v104 = 0u;
+static uint v105 = 0u;
+static uint v106 = 0u;
+static uint v107 = 0u;
+static uint v108 = 0u;
+static uint v109 = 0u;
+static uint v110 = 0u;
+static uint v111 = 0u;
+static uint v112 = 0u;
+static uint v113 = 0u;
+static uint v114 = 0u;
+static uint v115 = 0u;
+static uint v116 = 0u;
+static uint v117 = 0u;
+static uint v118 = 0u;
+static uint v119 = 0u;
+static uint v120 = 0u;
+static uint v121 = 0u;
+static uint v122 = 0u;
+static uint v123 = 0u;
+static uint v124 = 0u;
+static uint v125 = 0u;
+static uint v126 = 0u;
+static uint v127 = 0u;
+static uint v128 = 0u;
+static uint v129 = 0u;
+static uint v130 = 0u;
+static uint v131 = 0u;
+static uint v132 = 0u;
+static uint v133 = 0u;
+static uint v134 = 0u;
+static uint v135 = 0u;
+static uint v136 = 0u;
+static uint v137 = 0u;
+static uint v138 = 0u;
+static uint v139 = 0u;
+static uint v140 = 0u;
+static uint v141 = 0u;
+static uint v142 = 0u;
+static uint v143 = 0u;
+static uint v144 = 0u;
+static uint v145 = 0u;
+static uint v146 = 0u;
+static uint v147 = 0u;
+static uint v148 = 0u;
+static uint v149 = 0u;
+static uint v150 = 0u;
+static uint v151 = 0u;
+static uint v152 = 0u;
+static uint v153 = 0u;
+static uint v154 = 0u;
+static uint v155 = 0u;
+static uint v156 = 0u;
+static uint v157 = 0u;
+static uint v158 = 0u;
+static uint v159 = 0u;
+static uint v160 = 0u;
+static uint v161 = 0u;
+static uint v162 = 0u;
+static uint v163 = 0u;
+static uint v164 = 0u;
+static uint v165 = 0u;
+static uint v166 = 0u;
+static uint v167 = 0u;
+static uint v168 = 0u;
+static uint v169 = 0u;
+static uint v170 = 0u;
+static uint v171 = 0u;
+static uint v172 = 0u;
+static uint v173 = 0u;
+static uint v174 = 0u;
+static uint v175 = 0u;
+static uint v176 = 0u;
+static uint v177 = 0u;
+static uint v178 = 0u;
+static uint v179 = 0u;
+static uint v180 = 0u;
+static uint v181 = 0u;
+static uint v182 = 0u;
+static uint v183 = 0u;
+static uint v184 = 0u;
+static uint v185 = 0u;
+static uint v186 = 0u;
+static uint v187 = 0u;
+static uint v188 = 0u;
+static uint v189 = 0u;
+static uint v190 = 0u;
+static uint v191 = 0u;
+static uint v192 = 0u;
+static uint v193 = 0u;
+static uint v194 = 0u;
+static uint v195 = 0u;
+static uint v196 = 0u;
+static uint v197 = 0u;
+static uint v198 = 0u;
+static uint v199 = 0u;
+static uint v200 = 0u;
+static uint v201 = 0u;
+static uint v202 = 0u;
+static uint v203 = 0u;
+static uint v204 = 0u;
+static uint v205 = 0u;
+static uint v206 = 0u;
+static uint v207 = 0u;
+static uint v208 = 0u;
+static uint v209 = 0u;
+static uint v210 = 0u;
+static uint v211 = 0u;
+static uint v212 = 0u;
+static uint v213 = 0u;
+static uint v214 = 0u;
+static uint v215 = 0u;
+static uint v216 = 0u;
+static uint v217 = 0u;
+static uint v218 = 0u;
+static uint v219 = 0u;
+static uint v220 = 0u;
+static uint v221 = 0u;
+static uint v222 = 0u;
+static uint v223 = 0u;
+static uint v224 = 0u;
+static uint v225 = 0u;
+static uint v226 = 0u;
+static uint v227 = 0u;
+static uint v228 = 0u;
+static uint v229 = 0u;
+static uint v230 = 0u;
+static uint v231 = 0u;
+static uint v232 = 0u;
+static uint v233 = 0u;
+static uint v234 = 0u;
+static uint v235 = 0u;
+static uint v236 = 0u;
+static uint v237 = 0u;
+static uint v238 = 0u;
+static uint v239 = 0u;
+static uint v240 = 0u;
+static uint v241 = 0u;
+static uint v242 = 0u;
+static uint v243 = 0u;
+static uint v244 = 0u;
+static uint v245 = 0u;
+static uint v246 = 0u;
+static uint v247 = 0u;
+static uint v248 = 0u;
+static uint v249 = 0u;
+static uint v250 = 0u;
+static uint v251 = 0u;
+static uint v252 = 0u;
+static uint v253 = 0u;
+static uint v254 = 0u;
+static uint v255 = 0u;
+static uint v256 = 0u;
+static uint v257 = 0u;
+static uint v258 = 0u;
+static uint v259 = 0u;
+static uint v260 = 0u;
+static uint v261 = 0u;
+static uint v262 = 0u;
+static uint v263 = 0u;
+static uint v264 = 0u;
+static uint v265 = 0u;
+static uint v266 = 0u;
+static uint v267 = 0u;
+static uint v268 = 0u;
+static uint v269 = 0u;
+static uint v270 = 0u;
+static uint v271 = 0u;
+static uint v272 = 0u;
+static uint v273 = 0u;
+static uint v274 = 0u;
+static uint v275 = 0u;
+static uint v276 = 0u;
+static uint v277 = 0u;
+static uint v278 = 0u;
+static uint v279 = 0u;
+static uint v280 = 0u;
+static uint v281 = 0u;
+static uint v282 = 0u;
+static uint v283 = 0u;
+static uint v284 = 0u;
+static uint v285 = 0u;
+static uint v286 = 0u;
+static uint v287 = 0u;
+static uint v288 = 0u;
+static uint v289 = 0u;
+static uint v290 = 0u;
+static uint v291 = 0u;
+static uint v292 = 0u;
+static uint v293 = 0u;
+static uint v294 = 0u;
+static uint v295 = 0u;
+static uint v296 = 0u;
+static uint v297 = 0u;
+static uint v298 = 0u;
+static uint v299 = 0u;
+static uint v300 = 0u;
+static uint v301 = 0u;
+static uint v302 = 0u;
+static uint v303 = 0u;
+static uint v304 = 0u;
+static uint v305 = 0u;
+static uint v306 = 0u;
+static uint v307 = 0u;
+static uint v308 = 0u;
+static uint v309 = 0u;
+static uint v310 = 0u;
+static uint v311 = 0u;
+static uint v312 = 0u;
+static uint v313 = 0u;
+static uint v314 = 0u;
+static uint v315 = 0u;
+static uint v316 = 0u;
+static uint v317 = 0u;
+static uint v318 = 0u;
+static uint v319 = 0u;
+static uint v320 = 0u;
+static uint v321 = 0u;
+static uint v322 = 0u;
+static uint v323 = 0u;
+static uint v324 = 0u;
+static uint v325 = 0u;
+static uint v326 = 0u;
+static uint v327 = 0u;
+static uint v328 = 0u;
+static uint v329 = 0u;
+static uint v330 = 0u;
+static uint v331 = 0u;
+static uint v332 = 0u;
+static uint v333 = 0u;
+static uint v334 = 0u;
+static uint v335 = 0u;
+static uint v336 = 0u;
+static uint v337 = 0u;
+static uint v338 = 0u;
+static uint v339 = 0u;
+static uint v340 = 0u;
+static uint v341 = 0u;
+static uint v342 = 0u;
+static uint v343 = 0u;
+static uint v344 = 0u;
+static uint v345 = 0u;
+static uint v346 = 0u;
+static uint v347 = 0u;
+static uint v348 = 0u;
+static uint v349 = 0u;
+static uint v350 = 0u;
+static uint v351 = 0u;
+static uint v352 = 0u;
+static uint v353 = 0u;
+static uint v354 = 0u;
+static uint v355 = 0u;
+static uint v356 = 0u;
+static uint v357 = 0u;
+static uint v358 = 0u;
+static uint v359 = 0u;
+static uint v360 = 0u;
+static uint v361 = 0u;
+static uint v362 = 0u;
+static uint v363 = 0u;
+static uint v364 = 0u;
+static uint v365 = 0u;
+static uint v366 = 0u;
+static uint v367 = 0u;
+static uint v368 = 0u;
+static uint v369 = 0u;
+static uint v370 = 0u;
+static uint v371 = 0u;
+static uint v372 = 0u;
+static uint v373 = 0u;
+static uint v374 = 0u;
+static uint v375 = 0u;
+static uint v376 = 0u;
+static uint v377 = 0u;
+static uint v378 = 0u;
+static uint v379 = 0u;
+static uint v380 = 0u;
+static uint v381 = 0u;
+static uint v382 = 0u;
+static uint v383 = 0u;
+static uint v384 = 0u;
+static uint v385 = 0u;
+static uint v386 = 0u;
+static uint v387 = 0u;
+static uint v388 = 0u;
+static uint v389 = 0u;
+static uint v390 = 0u;
+static uint v391 = 0u;
+static uint v392 = 0u;
+static uint v393 = 0u;
+static uint v394 = 0u;
+static uint v395 = 0u;
+static uint v396 = 0u;
+static uint v397 = 0u;
+static uint v398 = 0u;
+static uint v399 = 0u;
+static uint v400 = 0u;
+static uint v401 = 0u;
+static uint v402 = 0u;
+static uint v403 = 0u;
+static uint v404 = 0u;
+static uint v405 = 0u;
+static uint v406 = 0u;
+static uint v407 = 0u;
+static uint v408 = 0u;
+static uint v409 = 0u;
+static uint v410 = 0u;
+static uint v411 = 0u;
+static uint v412 = 0u;
+static uint v413 = 0u;
+static uint v414 = 0u;
+static uint v415 = 0u;
+static uint v416 = 0u;
+static uint v417 = 0u;
+static uint v418 = 0u;
+static uint v419 = 0u;
+static uint v420 = 0u;
+static uint v421 = 0u;
+static uint v422 = 0u;
+static uint v423 = 0u;
+static uint v424 = 0u;
+static uint v425 = 0u;
+static uint v426 = 0u;
+static uint v427 = 0u;
+static uint v428 = 0u;
+static uint v429 = 0u;
+static uint v430 = 0u;
+static uint v431 = 0u;
+static uint v432 = 0u;
+static uint v433 = 0u;
+static uint v434 = 0u;
+static uint v435 = 0u;
+static uint v436 = 0u;
+static uint v437 = 0u;
+static uint v438 = 0u;
+static uint v439 = 0u;
+static uint v440 = 0u;
+static uint v441 = 0u;
+static uint v442 = 0u;
+static uint v443 = 0u;
+static uint v444 = 0u;
+static uint v445 = 0u;
+static uint v446 = 0u;
+static uint v447 = 0u;
+static uint v448 = 0u;
+static uint v449 = 0u;
+static uint v450 = 0u;
+static uint v451 = 0u;
+static uint v452 = 0u;
+static uint v453 = 0u;
+static uint v454 = 0u;
+static uint v455 = 0u;
+static uint v456 = 0u;
+static uint v457 = 0u;
+static uint v458 = 0u;
+static uint v459 = 0u;
+static uint v460 = 0u;
+static uint v461 = 0u;
+static uint v462 = 0u;
+static uint v463 = 0u;
+static uint v464 = 0u;
+static uint v465 = 0u;
+static uint v466 = 0u;
+static uint v467 = 0u;
+static uint v468 = 0u;
+static uint v469 = 0u;
+static uint v470 = 0u;
+static uint v471 = 0u;
+static uint v472 = 0u;
+static uint v473 = 0u;
+static uint v474 = 0u;
+static uint v475 = 0u;
+static uint v476 = 0u;
+static uint v477 = 0u;
+static uint v478 = 0u;
+static uint v479 = 0u;
+static uint v480 = 0u;
+static uint v481 = 0u;
+static uint v482 = 0u;
+static uint v483 = 0u;
+static uint v484 = 0u;
+static uint v485 = 0u;
+static uint v486 = 0u;
+static uint v487 = 0u;
+static uint v488 = 0u;
+static uint v489 = 0u;
+static uint v490 = 0u;
+static uint v491 = 0u;
+static uint v492 = 0u;
+static uint v493 = 0u;
+static uint v494 = 0u;
+static uint v495 = 0u;
+static uint v496 = 0u;
+static uint v497 = 0u;
+static uint v498 = 0u;
+static uint v499 = 0u;
+static uint v500 = 0u;
+static uint v501 = 0u;
+static uint v502 = 0u;
+static uint v503 = 0u;
+static uint v504 = 0u;
+static uint v505 = 0u;
+static uint v506 = 0u;
+static uint v507 = 0u;
+static uint v508 = 0u;
+static uint v509 = 0u;
+static uint v510 = 0u;
+static uint v511 = 0u;
+static uint v512 = 0u;
+static uint v513 = 0u;
+static uint v514 = 0u;
+static uint v515 = 0u;
+static uint v516 = 0u;
+static uint v517 = 0u;
+static uint v518 = 0u;
+static uint v519 = 0u;
+static uint v520 = 0u;
+static uint v521 = 0u;
+static uint v522 = 0u;
+static uint v523 = 0u;
+static uint v524 = 0u;
+static uint v525 = 0u;
+static uint v526 = 0u;
+static uint v527 = 0u;
+static uint v528 = 0u;
+static uint v529 = 0u;
+static uint v530 = 0u;
+static uint v531 = 0u;
+static uint v532 = 0u;
+static uint v533 = 0u;
+static uint v534 = 0u;
+static uint v535 = 0u;
+static uint v536 = 0u;
+static uint v537 = 0u;
+static uint v538 = 0u;
+static uint v539 = 0u;
+static uint v540 = 0u;
+static uint v541 = 0u;
+static uint v542 = 0u;
+static uint v543 = 0u;
+static uint v544 = 0u;
+static uint v545 = 0u;
+static uint v546 = 0u;
+static uint v547 = 0u;
+static uint v548 = 0u;
+static uint v549 = 0u;
+static uint v550 = 0u;
+static uint v551 = 0u;
+static uint v552 = 0u;
+static uint v553 = 0u;
+static uint v554 = 0u;
+static uint v555 = 0u;
+static uint v556 = 0u;
+static uint v557 = 0u;
+static uint v558 = 0u;
+static uint v559 = 0u;
+static uint v560 = 0u;
+static uint v561 = 0u;
+static uint v562 = 0u;
+static uint v563 = 0u;
+static uint v564 = 0u;
+static uint v565 = 0u;
+static uint v566 = 0u;
+static uint v567 = 0u;
+static uint v568 = 0u;
+static uint v569 = 0u;
+static uint v570 = 0u;
+static uint v571 = 0u;
+static uint v572 = 0u;
+static uint v573 = 0u;
+static uint v574 = 0u;
+static uint v575 = 0u;
+static uint v576 = 0u;
+static uint v577 = 0u;
+static uint v578 = 0u;
+static uint v579 = 0u;
+static uint v580 = 0u;
+static uint v581 = 0u;
+static uint v582 = 0u;
+static uint v583 = 0u;
+static uint v584 = 0u;
+static uint v585 = 0u;
+static uint v586 = 0u;
+static uint v587 = 0u;
+static uint v588 = 0u;
+static uint v589 = 0u;
+static uint v590 = 0u;
+static uint v591 = 0u;
+static uint v592 = 0u;
+static uint v593 = 0u;
+static uint v594 = 0u;
+static uint v595 = 0u;
+static uint v596 = 0u;
+static uint v597 = 0u;
+static uint v598 = 0u;
+static uint v599 = 0u;
+static uint v600 = 0u;
+static uint v601 = 0u;
+static uint v602 = 0u;
+static uint v603 = 0u;
+static uint v604 = 0u;
+static uint v605 = 0u;
+static uint v606 = 0u;
+static uint v607 = 0u;
+static uint v608 = 0u;
+static uint v609 = 0u;
+static uint v610 = 0u;
+static uint v611 = 0u;
+static uint v612 = 0u;
+static uint v613 = 0u;
+static uint v614 = 0u;
+static uint v615 = 0u;
+static uint v616 = 0u;
+static uint v617 = 0u;
+static uint v618 = 0u;
+static uint v619 = 0u;
+static uint v620 = 0u;
+static uint v621 = 0u;
+static uint v622 = 0u;
+static uint v623 = 0u;
+static uint v624 = 0u;
+static uint v625 = 0u;
+static uint v626 = 0u;
+static uint v627 = 0u;
+static uint v628 = 0u;
+static uint v629 = 0u;
+static uint v630 = 0u;
+static uint v631 = 0u;
+static uint v632 = 0u;
+static uint v633 = 0u;
+static uint v634 = 0u;
+static uint v635 = 0u;
+static uint v636 = 0u;
+static uint v637 = 0u;
+static uint v638 = 0u;
+static uint v639 = 0u;
+static uint v640 = 0u;
+static uint v641 = 0u;
+static uint v642 = 0u;
+static uint v643 = 0u;
+static uint v644 = 0u;
+static uint v645 = 0u;
+static uint v646 = 0u;
+static uint v647 = 0u;
+static uint v648 = 0u;
+static uint v649 = 0u;
+static uint v650 = 0u;
+static uint v651 = 0u;
+static uint v652 = 0u;
+static uint v653 = 0u;
+static uint v654 = 0u;
+static uint v655 = 0u;
+static uint v656 = 0u;
+static uint v657 = 0u;
+static uint v658 = 0u;
+static uint v659 = 0u;
+static uint v660 = 0u;
+static uint v661 = 0u;
+static uint v662 = 0u;
+static uint v663 = 0u;
+static uint v664 = 0u;
+static uint v665 = 0u;
+static uint v666 = 0u;
+static uint v667 = 0u;
+static uint v668 = 0u;
+static uint v669 = 0u;
+static uint v670 = 0u;
+static uint v671 = 0u;
+static uint v672 = 0u;
+static uint v673 = 0u;
+static uint v674 = 0u;
+static uint v675 = 0u;
+static uint v676 = 0u;
+static uint v677 = 0u;
+static uint v678 = 0u;
+static uint v679 = 0u;
+static uint v680 = 0u;
+static uint v681 = 0u;
+static uint v682 = 0u;
+static uint v683 = 0u;
+static uint v684 = 0u;
+static uint v685 = 0u;
+static uint v686 = 0u;
+static uint v687 = 0u;
+static uint v688 = 0u;
+static uint v689 = 0u;
+static uint v690 = 0u;
+static uint v691 = 0u;
+static uint v692 = 0u;
+static uint v693 = 0u;
+static uint v694 = 0u;
+static uint v695 = 0u;
+static uint v696 = 0u;
+static uint v697 = 0u;
+static uint v698 = 0u;
+static uint v699 = 0u;
+static uint v700 = 0u;
+static uint v701 = 0u;
+static uint v702 = 0u;
+static uint v703 = 0u;
+static uint v704 = 0u;
+static uint v705 = 0u;
+static uint v706 = 0u;
+static uint v707 = 0u;
+static uint v708 = 0u;
+static uint v709 = 0u;
+static uint v710 = 0u;
+static uint v711 = 0u;
+static uint v712 = 0u;
+static uint v713 = 0u;
+static uint v714 = 0u;
+static uint v715 = 0u;
+static uint v716 = 0u;
+static uint v717 = 0u;
+static uint v718 = 0u;
+static uint v719 = 0u;
+static uint v720 = 0u;
+static uint v721 = 0u;
+static uint v722 = 0u;
+static uint v723 = 0u;
+static uint v724 = 0u;
+static uint v725 = 0u;
+static uint v726 = 0u;
+static uint v727 = 0u;
+static uint v728 = 0u;
+static uint v729 = 0u;
+static uint v730 = 0u;
+static uint v731 = 0u;
+static uint v732 = 0u;
+static uint v733 = 0u;
+static uint v734 = 0u;
+static uint v735 = 0u;
+static uint v736 = 0u;
+static uint v737 = 0u;
+static uint v738 = 0u;
+static uint v739 = 0u;
+static uint v740 = 0u;
+static uint v741 = 0u;
+static uint v742 = 0u;
+static uint v743 = 0u;
+static uint v744 = 0u;
+static uint v745 = 0u;
+static uint v746 = 0u;
+static uint v747 = 0u;
+static uint v748 = 0u;
+static uint v749 = 0u;
+static uint v750 = 0u;
+static uint v751 = 0u;
+static uint v752 = 0u;
+static uint v753 = 0u;
+static uint v754 = 0u;
+static uint v755 = 0u;
+static uint v756 = 0u;
+static uint v757 = 0u;
+static uint v758 = 0u;
+static uint v759 = 0u;
+static uint v760 = 0u;
+static uint v761 = 0u;
+static uint v762 = 0u;
+static uint v763 = 0u;
+static uint v764 = 0u;
+static uint v765 = 0u;
+static uint v766 = 0u;
+static uint v767 = 0u;
+static uint v768 = 0u;
+static uint v769 = 0u;
+static uint v770 = 0u;
+static uint v771 = 0u;
+static uint v772 = 0u;
+static uint v773 = 0u;
+static uint v774 = 0u;
+static uint v775 = 0u;
+static uint v776 = 0u;
+static uint v777 = 0u;
+static uint v778 = 0u;
+static uint v779 = 0u;
+static uint v780 = 0u;
+static uint v781 = 0u;
+static uint v782 = 0u;
+static uint v783 = 0u;
+static uint v784 = 0u;
+static uint v785 = 0u;
+static uint v786 = 0u;
+static uint v787 = 0u;
+static uint v788 = 0u;
+static uint v789 = 0u;
+static uint v790 = 0u;
+static uint v791 = 0u;
+static uint v792 = 0u;
+static uint v793 = 0u;
+static uint v794 = 0u;
+static uint v795 = 0u;
+static uint v796 = 0u;
+static uint v797 = 0u;
+static uint v798 = 0u;
+static uint v799 = 0u;
+static uint v800 = 0u;
+static uint v801 = 0u;
+static uint v802 = 0u;
+static uint v803 = 0u;
+static uint v804 = 0u;
+static uint v805 = 0u;
+static uint v806 = 0u;
+static uint v807 = 0u;
+static uint v808 = 0u;
+static uint v809 = 0u;
+static uint v810 = 0u;
+static uint v811 = 0u;
+static uint v812 = 0u;
+static uint v813 = 0u;
+static uint v814 = 0u;
+static uint v815 = 0u;
+static uint v816 = 0u;
+static uint v817 = 0u;
+static uint v818 = 0u;
+static uint v819 = 0u;
+static uint v820 = 0u;
+static uint v821 = 0u;
+static uint v822 = 0u;
+static uint v823 = 0u;
+static uint v824 = 0u;
+static uint v825 = 0u;
+static uint v826 = 0u;
+static uint v827 = 0u;
+static uint v828 = 0u;
+static uint v829 = 0u;
+static uint v830 = 0u;
+static uint v831 = 0u;
+static uint v832 = 0u;
+static uint v833 = 0u;
+static uint v834 = 0u;
+static uint v835 = 0u;
+static uint v836 = 0u;
+static uint v837 = 0u;
+static uint v838 = 0u;
+static uint v839 = 0u;
+static uint v840 = 0u;
+static uint v841 = 0u;
+static uint v842 = 0u;
+static uint v843 = 0u;
+static uint v844 = 0u;
+static uint v845 = 0u;
+static uint v846 = 0u;
+static uint v847 = 0u;
+static uint v848 = 0u;
+static uint v849 = 0u;
+static uint v850 = 0u;
+static uint v851 = 0u;
+static uint v852 = 0u;
+static uint v853 = 0u;
+static uint v854 = 0u;
+static uint v855 = 0u;
+static uint v856 = 0u;
+static uint v857 = 0u;
+static uint v858 = 0u;
+static uint v859 = 0u;
+static uint v860 = 0u;
+static uint v861 = 0u;
+static uint v862 = 0u;
+static uint v863 = 0u;
+static uint v864 = 0u;
+static uint v865 = 0u;
+static uint v866 = 0u;
+static uint v867 = 0u;
+static uint v868 = 0u;
+static uint v869 = 0u;
+static uint v870 = 0u;
+static uint v871 = 0u;
+static uint v872 = 0u;
+static uint v873 = 0u;
+static uint v874 = 0u;
+static uint v875 = 0u;
+static uint v876 = 0u;
+static uint v877 = 0u;
+static uint v878 = 0u;
+static uint v879 = 0u;
+static uint v880 = 0u;
+static uint v881 = 0u;
+static uint v882 = 0u;
+static uint v883 = 0u;
+static uint v884 = 0u;
+static uint v885 = 0u;
+static uint v886 = 0u;
+static uint v887 = 0u;
+static uint v888 = 0u;
+static uint v889 = 0u;
+static uint v890 = 0u;
+static uint v891 = 0u;
+static uint v892 = 0u;
+static uint v893 = 0u;
+static uint v894 = 0u;
+static uint v895 = 0u;
+static uint v896 = 0u;
+static uint v897 = 0u;
+static uint v898 = 0u;
+static uint v899 = 0u;
+static uint v900 = 0u;
+static uint v901 = 0u;
+static uint v902 = 0u;
+static uint v903 = 0u;
+static uint v904 = 0u;
+static uint v905 = 0u;
+static uint v906 = 0u;
+static uint v907 = 0u;
+static uint v908 = 0u;
+static uint v909 = 0u;
+static uint v910 = 0u;
+static uint v911 = 0u;
+static uint v912 = 0u;
+static uint v913 = 0u;
+static uint v914 = 0u;
+static uint v915 = 0u;
+static uint v916 = 0u;
+static uint v917 = 0u;
+static uint v918 = 0u;
+static uint v919 = 0u;
+static uint v920 = 0u;
+static uint v921 = 0u;
+static uint v922 = 0u;
+static uint v923 = 0u;
+static uint v924 = 0u;
+static uint v925 = 0u;
+static uint v926 = 0u;
+static uint v927 = 0u;
+static uint v928 = 0u;
+static uint v929 = 0u;
+static uint v930 = 0u;
+static uint v931 = 0u;
+static uint v932 = 0u;
+static uint v933 = 0u;
+static uint v934 = 0u;
+static uint v935 = 0u;
+static uint v936 = 0u;
+static uint v937 = 0u;
+static uint v938 = 0u;
+static uint v939 = 0u;
+static uint v940 = 0u;
+static uint v941 = 0u;
+static uint v942 = 0u;
+static uint v943 = 0u;
+static uint v944 = 0u;
+static uint v945 = 0u;
+static uint v946 = 0u;
+static uint v947 = 0u;
+static uint v948 = 0u;
+static uint v949 = 0u;
+static uint v950 = 0u;
+static uint v951 = 0u;
+static uint v952 = 0u;
+static uint v953 = 0u;
+static uint v954 = 0u;
+static uint v955 = 0u;
+static uint v956 = 0u;
+static uint v957 = 0u;
+static uint v958 = 0u;
+static uint v959 = 0u;
+static uint v960 = 0u;
+static uint v961 = 0u;
+static uint v962 = 0u;
+static uint v963 = 0u;
+static uint v964 = 0u;
+static uint v965 = 0u;
+static uint v966 = 0u;
+static uint v967 = 0u;
+static uint v968 = 0u;
+static uint v969 = 0u;
+static uint v970 = 0u;
+static uint v971 = 0u;
+static uint v972 = 0u;
+static uint v973 = 0u;
+static uint v974 = 0u;
+static uint v975 = 0u;
+static uint v976 = 0u;
+static uint v977 = 0u;
+static uint v978 = 0u;
+static uint v979 = 0u;
+static uint v980 = 0u;
+static uint v981 = 0u;
+static uint v982 = 0u;
+static uint v983 = 0u;
+static uint v984 = 0u;
+static uint v985 = 0u;
+static uint v986 = 0u;
+static uint v987 = 0u;
+static uint v988 = 0u;
+static uint v989 = 0u;
+static uint v990 = 0u;
+static uint v991 = 0u;
+static uint v992 = 0u;
+static uint v993 = 0u;
+static uint v994 = 0u;
+static uint v995 = 0u;
+static uint v996 = 0u;
+static uint v997 = 0u;
+static uint v998 = 0u;
+static uint v999 = 0u;
 uint foo() {
   uint x = 0u;
   x = (x + v0);
@@ -1005,3009 +2008,12 @@
   return x;
 }
 
-uint main() {
+uint main_inner() {
   return foo();
 }
 
-DXC validation failure:
-hlsl.hlsl:3:12: error: use of undeclared identifier 'v0'
-  x = (x + v0);
-           ^
-hlsl.hlsl:4:12: error: use of undeclared identifier 'v1'
-  x = (x + v1);
-           ^
-hlsl.hlsl:5:12: error: use of undeclared identifier 'v2'
-  x = (x + v2);
-           ^
-hlsl.hlsl:6:12: error: use of undeclared identifier 'v3'
-  x = (x + v3);
-           ^
-hlsl.hlsl:7:12: error: use of undeclared identifier 'v4'
-  x = (x + v4);
-           ^
-hlsl.hlsl:8:12: error: use of undeclared identifier 'v5'
-  x = (x + v5);
-           ^
-hlsl.hlsl:9:12: error: use of undeclared identifier 'v6'
-  x = (x + v6);
-           ^
-hlsl.hlsl:10:12: error: use of undeclared identifier 'v7'
-  x = (x + v7);
-           ^
-hlsl.hlsl:11:12: error: use of undeclared identifier 'v8'
-  x = (x + v8);
-           ^
-hlsl.hlsl:12:12: error: use of undeclared identifier 'v9'
-  x = (x + v9);
-           ^
-hlsl.hlsl:13:12: error: use of undeclared identifier 'v10'
-  x = (x + v10);
-           ^
-hlsl.hlsl:14:12: error: use of undeclared identifier 'v11'
-  x = (x + v11);
-           ^
-hlsl.hlsl:15:12: error: use of undeclared identifier 'v12'
-  x = (x + v12);
-           ^
-hlsl.hlsl:16:12: error: use of undeclared identifier 'v13'
-  x = (x + v13);
-           ^
-hlsl.hlsl:17:12: error: use of undeclared identifier 'v14'
-  x = (x + v14);
-           ^
-hlsl.hlsl:18:12: error: use of undeclared identifier 'v15'
-  x = (x + v15);
-           ^
-hlsl.hlsl:19:12: error: use of undeclared identifier 'v16'
-  x = (x + v16);
-           ^
-hlsl.hlsl:20:12: error: use of undeclared identifier 'v17'
-  x = (x + v17);
-           ^
-hlsl.hlsl:21:12: error: use of undeclared identifier 'v18'
-  x = (x + v18);
-           ^
-hlsl.hlsl:22:12: error: use of undeclared identifier 'v19'
-  x = (x + v19);
-           ^
-hlsl.hlsl:23:12: error: use of undeclared identifier 'v20'
-  x = (x + v20);
-           ^
-hlsl.hlsl:24:12: error: use of undeclared identifier 'v21'
-  x = (x + v21);
-           ^
-hlsl.hlsl:25:12: error: use of undeclared identifier 'v22'
-  x = (x + v22);
-           ^
-hlsl.hlsl:26:12: error: use of undeclared identifier 'v23'
-  x = (x + v23);
-           ^
-hlsl.hlsl:27:12: error: use of undeclared identifier 'v24'
-  x = (x + v24);
-           ^
-hlsl.hlsl:28:12: error: use of undeclared identifier 'v25'
-  x = (x + v25);
-           ^
-hlsl.hlsl:29:12: error: use of undeclared identifier 'v26'
-  x = (x + v26);
-           ^
-hlsl.hlsl:30:12: error: use of undeclared identifier 'v27'
-  x = (x + v27);
-           ^
-hlsl.hlsl:31:12: error: use of undeclared identifier 'v28'
-  x = (x + v28);
-           ^
-hlsl.hlsl:32:12: error: use of undeclared identifier 'v29'
-  x = (x + v29);
-           ^
-hlsl.hlsl:33:12: error: use of undeclared identifier 'v30'
-  x = (x + v30);
-           ^
-hlsl.hlsl:34:12: error: use of undeclared identifier 'v31'
-  x = (x + v31);
-           ^
-hlsl.hlsl:35:12: error: use of undeclared identifier 'v32'
-  x = (x + v32);
-           ^
-hlsl.hlsl:36:12: error: use of undeclared identifier 'v33'
-  x = (x + v33);
-           ^
-hlsl.hlsl:37:12: error: use of undeclared identifier 'v34'
-  x = (x + v34);
-           ^
-hlsl.hlsl:38:12: error: use of undeclared identifier 'v35'
-  x = (x + v35);
-           ^
-hlsl.hlsl:39:12: error: use of undeclared identifier 'v36'
-  x = (x + v36);
-           ^
-hlsl.hlsl:40:12: error: use of undeclared identifier 'v37'
-  x = (x + v37);
-           ^
-hlsl.hlsl:41:12: error: use of undeclared identifier 'v38'
-  x = (x + v38);
-           ^
-hlsl.hlsl:42:12: error: use of undeclared identifier 'v39'
-  x = (x + v39);
-           ^
-hlsl.hlsl:43:12: error: use of undeclared identifier 'v40'
-  x = (x + v40);
-           ^
-hlsl.hlsl:44:12: error: use of undeclared identifier 'v41'
-  x = (x + v41);
-           ^
-hlsl.hlsl:45:12: error: use of undeclared identifier 'v42'
-  x = (x + v42);
-           ^
-hlsl.hlsl:46:12: error: use of undeclared identifier 'v43'
-  x = (x + v43);
-           ^
-hlsl.hlsl:47:12: error: use of undeclared identifier 'v44'
-  x = (x + v44);
-           ^
-hlsl.hlsl:48:12: error: use of undeclared identifier 'v45'
-  x = (x + v45);
-           ^
-hlsl.hlsl:49:12: error: use of undeclared identifier 'v46'
-  x = (x + v46);
-           ^
-hlsl.hlsl:50:12: error: use of undeclared identifier 'v47'
-  x = (x + v47);
-           ^
-hlsl.hlsl:51:12: error: use of undeclared identifier 'v48'
-  x = (x + v48);
-           ^
-hlsl.hlsl:52:12: error: use of undeclared identifier 'v49'
-  x = (x + v49);
-           ^
-hlsl.hlsl:53:12: error: use of undeclared identifier 'v50'
-  x = (x + v50);
-           ^
-hlsl.hlsl:54:12: error: use of undeclared identifier 'v51'
-  x = (x + v51);
-           ^
-hlsl.hlsl:55:12: error: use of undeclared identifier 'v52'
-  x = (x + v52);
-           ^
-hlsl.hlsl:56:12: error: use of undeclared identifier 'v53'
-  x = (x + v53);
-           ^
-hlsl.hlsl:57:12: error: use of undeclared identifier 'v54'
-  x = (x + v54);
-           ^
-hlsl.hlsl:58:12: error: use of undeclared identifier 'v55'
-  x = (x + v55);
-           ^
-hlsl.hlsl:59:12: error: use of undeclared identifier 'v56'
-  x = (x + v56);
-           ^
-hlsl.hlsl:60:12: error: use of undeclared identifier 'v57'
-  x = (x + v57);
-           ^
-hlsl.hlsl:61:12: error: use of undeclared identifier 'v58'
-  x = (x + v58);
-           ^
-hlsl.hlsl:62:12: error: use of undeclared identifier 'v59'
-  x = (x + v59);
-           ^
-hlsl.hlsl:63:12: error: use of undeclared identifier 'v60'
-  x = (x + v60);
-           ^
-hlsl.hlsl:64:12: error: use of undeclared identifier 'v61'
-  x = (x + v61);
-           ^
-hlsl.hlsl:65:12: error: use of undeclared identifier 'v62'
-  x = (x + v62);
-           ^
-hlsl.hlsl:66:12: error: use of undeclared identifier 'v63'
-  x = (x + v63);
-           ^
-hlsl.hlsl:67:12: error: use of undeclared identifier 'v64'
-  x = (x + v64);
-           ^
-hlsl.hlsl:68:12: error: use of undeclared identifier 'v65'
-  x = (x + v65);
-           ^
-hlsl.hlsl:69:12: error: use of undeclared identifier 'v66'
-  x = (x + v66);
-           ^
-hlsl.hlsl:70:12: error: use of undeclared identifier 'v67'
-  x = (x + v67);
-           ^
-hlsl.hlsl:71:12: error: use of undeclared identifier 'v68'
-  x = (x + v68);
-           ^
-hlsl.hlsl:72:12: error: use of undeclared identifier 'v69'
-  x = (x + v69);
-           ^
-hlsl.hlsl:73:12: error: use of undeclared identifier 'v70'
-  x = (x + v70);
-           ^
-hlsl.hlsl:74:12: error: use of undeclared identifier 'v71'
-  x = (x + v71);
-           ^
-hlsl.hlsl:75:12: error: use of undeclared identifier 'v72'
-  x = (x + v72);
-           ^
-hlsl.hlsl:76:12: error: use of undeclared identifier 'v73'
-  x = (x + v73);
-           ^
-hlsl.hlsl:77:12: error: use of undeclared identifier 'v74'
-  x = (x + v74);
-           ^
-hlsl.hlsl:78:12: error: use of undeclared identifier 'v75'
-  x = (x + v75);
-           ^
-hlsl.hlsl:79:12: error: use of undeclared identifier 'v76'
-  x = (x + v76);
-           ^
-hlsl.hlsl:80:12: error: use of undeclared identifier 'v77'
-  x = (x + v77);
-           ^
-hlsl.hlsl:81:12: error: use of undeclared identifier 'v78'
-  x = (x + v78);
-           ^
-hlsl.hlsl:82:12: error: use of undeclared identifier 'v79'
-  x = (x + v79);
-           ^
-hlsl.hlsl:83:12: error: use of undeclared identifier 'v80'
-  x = (x + v80);
-           ^
-hlsl.hlsl:84:12: error: use of undeclared identifier 'v81'
-  x = (x + v81);
-           ^
-hlsl.hlsl:85:12: error: use of undeclared identifier 'v82'
-  x = (x + v82);
-           ^
-hlsl.hlsl:86:12: error: use of undeclared identifier 'v83'
-  x = (x + v83);
-           ^
-hlsl.hlsl:87:12: error: use of undeclared identifier 'v84'
-  x = (x + v84);
-           ^
-hlsl.hlsl:88:12: error: use of undeclared identifier 'v85'
-  x = (x + v85);
-           ^
-hlsl.hlsl:89:12: error: use of undeclared identifier 'v86'
-  x = (x + v86);
-           ^
-hlsl.hlsl:90:12: error: use of undeclared identifier 'v87'
-  x = (x + v87);
-           ^
-hlsl.hlsl:91:12: error: use of undeclared identifier 'v88'
-  x = (x + v88);
-           ^
-hlsl.hlsl:92:12: error: use of undeclared identifier 'v89'
-  x = (x + v89);
-           ^
-hlsl.hlsl:93:12: error: use of undeclared identifier 'v90'
-  x = (x + v90);
-           ^
-hlsl.hlsl:94:12: error: use of undeclared identifier 'v91'
-  x = (x + v91);
-           ^
-hlsl.hlsl:95:12: error: use of undeclared identifier 'v92'
-  x = (x + v92);
-           ^
-hlsl.hlsl:96:12: error: use of undeclared identifier 'v93'
-  x = (x + v93);
-           ^
-hlsl.hlsl:97:12: error: use of undeclared identifier 'v94'
-  x = (x + v94);
-           ^
-hlsl.hlsl:98:12: error: use of undeclared identifier 'v95'
-  x = (x + v95);
-           ^
-hlsl.hlsl:99:12: error: use of undeclared identifier 'v96'
-  x = (x + v96);
-           ^
-hlsl.hlsl:100:12: error: use of undeclared identifier 'v97'
-  x = (x + v97);
-           ^
-hlsl.hlsl:101:12: error: use of undeclared identifier 'v98'
-  x = (x + v98);
-           ^
-hlsl.hlsl:102:12: error: use of undeclared identifier 'v99'
-  x = (x + v99);
-           ^
-hlsl.hlsl:103:12: error: use of undeclared identifier 'v100'
-  x = (x + v100);
-           ^
-hlsl.hlsl:104:12: error: use of undeclared identifier 'v101'
-  x = (x + v101);
-           ^
-hlsl.hlsl:105:12: error: use of undeclared identifier 'v102'
-  x = (x + v102);
-           ^
-hlsl.hlsl:106:12: error: use of undeclared identifier 'v103'
-  x = (x + v103);
-           ^
-hlsl.hlsl:107:12: error: use of undeclared identifier 'v104'
-  x = (x + v104);
-           ^
-hlsl.hlsl:108:12: error: use of undeclared identifier 'v105'
-  x = (x + v105);
-           ^
-hlsl.hlsl:109:12: error: use of undeclared identifier 'v106'
-  x = (x + v106);
-           ^
-hlsl.hlsl:110:12: error: use of undeclared identifier 'v107'
-  x = (x + v107);
-           ^
-hlsl.hlsl:111:12: error: use of undeclared identifier 'v108'
-  x = (x + v108);
-           ^
-hlsl.hlsl:112:12: error: use of undeclared identifier 'v109'
-  x = (x + v109);
-           ^
-hlsl.hlsl:113:12: error: use of undeclared identifier 'v110'
-  x = (x + v110);
-           ^
-hlsl.hlsl:114:12: error: use of undeclared identifier 'v111'
-  x = (x + v111);
-           ^
-hlsl.hlsl:115:12: error: use of undeclared identifier 'v112'
-  x = (x + v112);
-           ^
-hlsl.hlsl:116:12: error: use of undeclared identifier 'v113'
-  x = (x + v113);
-           ^
-hlsl.hlsl:117:12: error: use of undeclared identifier 'v114'
-  x = (x + v114);
-           ^
-hlsl.hlsl:118:12: error: use of undeclared identifier 'v115'
-  x = (x + v115);
-           ^
-hlsl.hlsl:119:12: error: use of undeclared identifier 'v116'
-  x = (x + v116);
-           ^
-hlsl.hlsl:120:12: error: use of undeclared identifier 'v117'
-  x = (x + v117);
-           ^
-hlsl.hlsl:121:12: error: use of undeclared identifier 'v118'
-  x = (x + v118);
-           ^
-hlsl.hlsl:122:12: error: use of undeclared identifier 'v119'
-  x = (x + v119);
-           ^
-hlsl.hlsl:123:12: error: use of undeclared identifier 'v120'
-  x = (x + v120);
-           ^
-hlsl.hlsl:124:12: error: use of undeclared identifier 'v121'
-  x = (x + v121);
-           ^
-hlsl.hlsl:125:12: error: use of undeclared identifier 'v122'
-  x = (x + v122);
-           ^
-hlsl.hlsl:126:12: error: use of undeclared identifier 'v123'
-  x = (x + v123);
-           ^
-hlsl.hlsl:127:12: error: use of undeclared identifier 'v124'
-  x = (x + v124);
-           ^
-hlsl.hlsl:128:12: error: use of undeclared identifier 'v125'
-  x = (x + v125);
-           ^
-hlsl.hlsl:129:12: error: use of undeclared identifier 'v126'
-  x = (x + v126);
-           ^
-hlsl.hlsl:130:12: error: use of undeclared identifier 'v127'
-  x = (x + v127);
-           ^
-hlsl.hlsl:131:12: error: use of undeclared identifier 'v128'
-  x = (x + v128);
-           ^
-hlsl.hlsl:132:12: error: use of undeclared identifier 'v129'
-  x = (x + v129);
-           ^
-hlsl.hlsl:133:12: error: use of undeclared identifier 'v130'
-  x = (x + v130);
-           ^
-hlsl.hlsl:134:12: error: use of undeclared identifier 'v131'
-  x = (x + v131);
-           ^
-hlsl.hlsl:135:12: error: use of undeclared identifier 'v132'
-  x = (x + v132);
-           ^
-hlsl.hlsl:136:12: error: use of undeclared identifier 'v133'
-  x = (x + v133);
-           ^
-hlsl.hlsl:137:12: error: use of undeclared identifier 'v134'
-  x = (x + v134);
-           ^
-hlsl.hlsl:138:12: error: use of undeclared identifier 'v135'
-  x = (x + v135);
-           ^
-hlsl.hlsl:139:12: error: use of undeclared identifier 'v136'
-  x = (x + v136);
-           ^
-hlsl.hlsl:140:12: error: use of undeclared identifier 'v137'
-  x = (x + v137);
-           ^
-hlsl.hlsl:141:12: error: use of undeclared identifier 'v138'
-  x = (x + v138);
-           ^
-hlsl.hlsl:142:12: error: use of undeclared identifier 'v139'
-  x = (x + v139);
-           ^
-hlsl.hlsl:143:12: error: use of undeclared identifier 'v140'
-  x = (x + v140);
-           ^
-hlsl.hlsl:144:12: error: use of undeclared identifier 'v141'
-  x = (x + v141);
-           ^
-hlsl.hlsl:145:12: error: use of undeclared identifier 'v142'
-  x = (x + v142);
-           ^
-hlsl.hlsl:146:12: error: use of undeclared identifier 'v143'
-  x = (x + v143);
-           ^
-hlsl.hlsl:147:12: error: use of undeclared identifier 'v144'
-  x = (x + v144);
-           ^
-hlsl.hlsl:148:12: error: use of undeclared identifier 'v145'
-  x = (x + v145);
-           ^
-hlsl.hlsl:149:12: error: use of undeclared identifier 'v146'
-  x = (x + v146);
-           ^
-hlsl.hlsl:150:12: error: use of undeclared identifier 'v147'
-  x = (x + v147);
-           ^
-hlsl.hlsl:151:12: error: use of undeclared identifier 'v148'
-  x = (x + v148);
-           ^
-hlsl.hlsl:152:12: error: use of undeclared identifier 'v149'
-  x = (x + v149);
-           ^
-hlsl.hlsl:153:12: error: use of undeclared identifier 'v150'
-  x = (x + v150);
-           ^
-hlsl.hlsl:154:12: error: use of undeclared identifier 'v151'
-  x = (x + v151);
-           ^
-hlsl.hlsl:155:12: error: use of undeclared identifier 'v152'
-  x = (x + v152);
-           ^
-hlsl.hlsl:156:12: error: use of undeclared identifier 'v153'
-  x = (x + v153);
-           ^
-hlsl.hlsl:157:12: error: use of undeclared identifier 'v154'
-  x = (x + v154);
-           ^
-hlsl.hlsl:158:12: error: use of undeclared identifier 'v155'
-  x = (x + v155);
-           ^
-hlsl.hlsl:159:12: error: use of undeclared identifier 'v156'
-  x = (x + v156);
-           ^
-hlsl.hlsl:160:12: error: use of undeclared identifier 'v157'
-  x = (x + v157);
-           ^
-hlsl.hlsl:161:12: error: use of undeclared identifier 'v158'
-  x = (x + v158);
-           ^
-hlsl.hlsl:162:12: error: use of undeclared identifier 'v159'
-  x = (x + v159);
-           ^
-hlsl.hlsl:163:12: error: use of undeclared identifier 'v160'
-  x = (x + v160);
-           ^
-hlsl.hlsl:164:12: error: use of undeclared identifier 'v161'
-  x = (x + v161);
-           ^
-hlsl.hlsl:165:12: error: use of undeclared identifier 'v162'
-  x = (x + v162);
-           ^
-hlsl.hlsl:166:12: error: use of undeclared identifier 'v163'
-  x = (x + v163);
-           ^
-hlsl.hlsl:167:12: error: use of undeclared identifier 'v164'
-  x = (x + v164);
-           ^
-hlsl.hlsl:168:12: error: use of undeclared identifier 'v165'
-  x = (x + v165);
-           ^
-hlsl.hlsl:169:12: error: use of undeclared identifier 'v166'
-  x = (x + v166);
-           ^
-hlsl.hlsl:170:12: error: use of undeclared identifier 'v167'
-  x = (x + v167);
-           ^
-hlsl.hlsl:171:12: error: use of undeclared identifier 'v168'
-  x = (x + v168);
-           ^
-hlsl.hlsl:172:12: error: use of undeclared identifier 'v169'
-  x = (x + v169);
-           ^
-hlsl.hlsl:173:12: error: use of undeclared identifier 'v170'
-  x = (x + v170);
-           ^
-hlsl.hlsl:174:12: error: use of undeclared identifier 'v171'
-  x = (x + v171);
-           ^
-hlsl.hlsl:175:12: error: use of undeclared identifier 'v172'
-  x = (x + v172);
-           ^
-hlsl.hlsl:176:12: error: use of undeclared identifier 'v173'
-  x = (x + v173);
-           ^
-hlsl.hlsl:177:12: error: use of undeclared identifier 'v174'
-  x = (x + v174);
-           ^
-hlsl.hlsl:178:12: error: use of undeclared identifier 'v175'
-  x = (x + v175);
-           ^
-hlsl.hlsl:179:12: error: use of undeclared identifier 'v176'
-  x = (x + v176);
-           ^
-hlsl.hlsl:180:12: error: use of undeclared identifier 'v177'
-  x = (x + v177);
-           ^
-hlsl.hlsl:181:12: error: use of undeclared identifier 'v178'
-  x = (x + v178);
-           ^
-hlsl.hlsl:182:12: error: use of undeclared identifier 'v179'
-  x = (x + v179);
-           ^
-hlsl.hlsl:183:12: error: use of undeclared identifier 'v180'
-  x = (x + v180);
-           ^
-hlsl.hlsl:184:12: error: use of undeclared identifier 'v181'
-  x = (x + v181);
-           ^
-hlsl.hlsl:185:12: error: use of undeclared identifier 'v182'
-  x = (x + v182);
-           ^
-hlsl.hlsl:186:12: error: use of undeclared identifier 'v183'
-  x = (x + v183);
-           ^
-hlsl.hlsl:187:12: error: use of undeclared identifier 'v184'
-  x = (x + v184);
-           ^
-hlsl.hlsl:188:12: error: use of undeclared identifier 'v185'
-  x = (x + v185);
-           ^
-hlsl.hlsl:189:12: error: use of undeclared identifier 'v186'
-  x = (x + v186);
-           ^
-hlsl.hlsl:190:12: error: use of undeclared identifier 'v187'
-  x = (x + v187);
-           ^
-hlsl.hlsl:191:12: error: use of undeclared identifier 'v188'
-  x = (x + v188);
-           ^
-hlsl.hlsl:192:12: error: use of undeclared identifier 'v189'
-  x = (x + v189);
-           ^
-hlsl.hlsl:193:12: error: use of undeclared identifier 'v190'
-  x = (x + v190);
-           ^
-hlsl.hlsl:194:12: error: use of undeclared identifier 'v191'
-  x = (x + v191);
-           ^
-hlsl.hlsl:195:12: error: use of undeclared identifier 'v192'
-  x = (x + v192);
-           ^
-hlsl.hlsl:196:12: error: use of undeclared identifier 'v193'
-  x = (x + v193);
-           ^
-hlsl.hlsl:197:12: error: use of undeclared identifier 'v194'
-  x = (x + v194);
-           ^
-hlsl.hlsl:198:12: error: use of undeclared identifier 'v195'
-  x = (x + v195);
-           ^
-hlsl.hlsl:199:12: error: use of undeclared identifier 'v196'
-  x = (x + v196);
-           ^
-hlsl.hlsl:200:12: error: use of undeclared identifier 'v197'
-  x = (x + v197);
-           ^
-hlsl.hlsl:201:12: error: use of undeclared identifier 'v198'
-  x = (x + v198);
-           ^
-hlsl.hlsl:202:12: error: use of undeclared identifier 'v199'
-  x = (x + v199);
-           ^
-hlsl.hlsl:203:12: error: use of undeclared identifier 'v200'
-  x = (x + v200);
-           ^
-hlsl.hlsl:204:12: error: use of undeclared identifier 'v201'
-  x = (x + v201);
-           ^
-hlsl.hlsl:205:12: error: use of undeclared identifier 'v202'
-  x = (x + v202);
-           ^
-hlsl.hlsl:206:12: error: use of undeclared identifier 'v203'
-  x = (x + v203);
-           ^
-hlsl.hlsl:207:12: error: use of undeclared identifier 'v204'
-  x = (x + v204);
-           ^
-hlsl.hlsl:208:12: error: use of undeclared identifier 'v205'
-  x = (x + v205);
-           ^
-hlsl.hlsl:209:12: error: use of undeclared identifier 'v206'
-  x = (x + v206);
-           ^
-hlsl.hlsl:210:12: error: use of undeclared identifier 'v207'
-  x = (x + v207);
-           ^
-hlsl.hlsl:211:12: error: use of undeclared identifier 'v208'
-  x = (x + v208);
-           ^
-hlsl.hlsl:212:12: error: use of undeclared identifier 'v209'
-  x = (x + v209);
-           ^
-hlsl.hlsl:213:12: error: use of undeclared identifier 'v210'
-  x = (x + v210);
-           ^
-hlsl.hlsl:214:12: error: use of undeclared identifier 'v211'
-  x = (x + v211);
-           ^
-hlsl.hlsl:215:12: error: use of undeclared identifier 'v212'
-  x = (x + v212);
-           ^
-hlsl.hlsl:216:12: error: use of undeclared identifier 'v213'
-  x = (x + v213);
-           ^
-hlsl.hlsl:217:12: error: use of undeclared identifier 'v214'
-  x = (x + v214);
-           ^
-hlsl.hlsl:218:12: error: use of undeclared identifier 'v215'
-  x = (x + v215);
-           ^
-hlsl.hlsl:219:12: error: use of undeclared identifier 'v216'
-  x = (x + v216);
-           ^
-hlsl.hlsl:220:12: error: use of undeclared identifier 'v217'
-  x = (x + v217);
-           ^
-hlsl.hlsl:221:12: error: use of undeclared identifier 'v218'
-  x = (x + v218);
-           ^
-hlsl.hlsl:222:12: error: use of undeclared identifier 'v219'
-  x = (x + v219);
-           ^
-hlsl.hlsl:223:12: error: use of undeclared identifier 'v220'
-  x = (x + v220);
-           ^
-hlsl.hlsl:224:12: error: use of undeclared identifier 'v221'
-  x = (x + v221);
-           ^
-hlsl.hlsl:225:12: error: use of undeclared identifier 'v222'
-  x = (x + v222);
-           ^
-hlsl.hlsl:226:12: error: use of undeclared identifier 'v223'
-  x = (x + v223);
-           ^
-hlsl.hlsl:227:12: error: use of undeclared identifier 'v224'
-  x = (x + v224);
-           ^
-hlsl.hlsl:228:12: error: use of undeclared identifier 'v225'
-  x = (x + v225);
-           ^
-hlsl.hlsl:229:12: error: use of undeclared identifier 'v226'
-  x = (x + v226);
-           ^
-hlsl.hlsl:230:12: error: use of undeclared identifier 'v227'
-  x = (x + v227);
-           ^
-hlsl.hlsl:231:12: error: use of undeclared identifier 'v228'
-  x = (x + v228);
-           ^
-hlsl.hlsl:232:12: error: use of undeclared identifier 'v229'
-  x = (x + v229);
-           ^
-hlsl.hlsl:233:12: error: use of undeclared identifier 'v230'
-  x = (x + v230);
-           ^
-hlsl.hlsl:234:12: error: use of undeclared identifier 'v231'
-  x = (x + v231);
-           ^
-hlsl.hlsl:235:12: error: use of undeclared identifier 'v232'
-  x = (x + v232);
-           ^
-hlsl.hlsl:236:12: error: use of undeclared identifier 'v233'
-  x = (x + v233);
-           ^
-hlsl.hlsl:237:12: error: use of undeclared identifier 'v234'
-  x = (x + v234);
-           ^
-hlsl.hlsl:238:12: error: use of undeclared identifier 'v235'
-  x = (x + v235);
-           ^
-hlsl.hlsl:239:12: error: use of undeclared identifier 'v236'
-  x = (x + v236);
-           ^
-hlsl.hlsl:240:12: error: use of undeclared identifier 'v237'
-  x = (x + v237);
-           ^
-hlsl.hlsl:241:12: error: use of undeclared identifier 'v238'
-  x = (x + v238);
-           ^
-hlsl.hlsl:242:12: error: use of undeclared identifier 'v239'
-  x = (x + v239);
-           ^
-hlsl.hlsl:243:12: error: use of undeclared identifier 'v240'
-  x = (x + v240);
-           ^
-hlsl.hlsl:244:12: error: use of undeclared identifier 'v241'
-  x = (x + v241);
-           ^
-hlsl.hlsl:245:12: error: use of undeclared identifier 'v242'
-  x = (x + v242);
-           ^
-hlsl.hlsl:246:12: error: use of undeclared identifier 'v243'
-  x = (x + v243);
-           ^
-hlsl.hlsl:247:12: error: use of undeclared identifier 'v244'
-  x = (x + v244);
-           ^
-hlsl.hlsl:248:12: error: use of undeclared identifier 'v245'
-  x = (x + v245);
-           ^
-hlsl.hlsl:249:12: error: use of undeclared identifier 'v246'
-  x = (x + v246);
-           ^
-hlsl.hlsl:250:12: error: use of undeclared identifier 'v247'
-  x = (x + v247);
-           ^
-hlsl.hlsl:251:12: error: use of undeclared identifier 'v248'
-  x = (x + v248);
-           ^
-hlsl.hlsl:252:12: error: use of undeclared identifier 'v249'
-  x = (x + v249);
-           ^
-hlsl.hlsl:253:12: error: use of undeclared identifier 'v250'
-  x = (x + v250);
-           ^
-hlsl.hlsl:254:12: error: use of undeclared identifier 'v251'
-  x = (x + v251);
-           ^
-hlsl.hlsl:255:12: error: use of undeclared identifier 'v252'
-  x = (x + v252);
-           ^
-hlsl.hlsl:256:12: error: use of undeclared identifier 'v253'
-  x = (x + v253);
-           ^
-hlsl.hlsl:257:12: error: use of undeclared identifier 'v254'
-  x = (x + v254);
-           ^
-hlsl.hlsl:258:12: error: use of undeclared identifier 'v255'
-  x = (x + v255);
-           ^
-hlsl.hlsl:259:12: error: use of undeclared identifier 'v256'
-  x = (x + v256);
-           ^
-hlsl.hlsl:260:12: error: use of undeclared identifier 'v257'
-  x = (x + v257);
-           ^
-hlsl.hlsl:261:12: error: use of undeclared identifier 'v258'
-  x = (x + v258);
-           ^
-hlsl.hlsl:262:12: error: use of undeclared identifier 'v259'
-  x = (x + v259);
-           ^
-hlsl.hlsl:263:12: error: use of undeclared identifier 'v260'
-  x = (x + v260);
-           ^
-hlsl.hlsl:264:12: error: use of undeclared identifier 'v261'
-  x = (x + v261);
-           ^
-hlsl.hlsl:265:12: error: use of undeclared identifier 'v262'
-  x = (x + v262);
-           ^
-hlsl.hlsl:266:12: error: use of undeclared identifier 'v263'
-  x = (x + v263);
-           ^
-hlsl.hlsl:267:12: error: use of undeclared identifier 'v264'
-  x = (x + v264);
-           ^
-hlsl.hlsl:268:12: error: use of undeclared identifier 'v265'
-  x = (x + v265);
-           ^
-hlsl.hlsl:269:12: error: use of undeclared identifier 'v266'
-  x = (x + v266);
-           ^
-hlsl.hlsl:270:12: error: use of undeclared identifier 'v267'
-  x = (x + v267);
-           ^
-hlsl.hlsl:271:12: error: use of undeclared identifier 'v268'
-  x = (x + v268);
-           ^
-hlsl.hlsl:272:12: error: use of undeclared identifier 'v269'
-  x = (x + v269);
-           ^
-hlsl.hlsl:273:12: error: use of undeclared identifier 'v270'
-  x = (x + v270);
-           ^
-hlsl.hlsl:274:12: error: use of undeclared identifier 'v271'
-  x = (x + v271);
-           ^
-hlsl.hlsl:275:12: error: use of undeclared identifier 'v272'
-  x = (x + v272);
-           ^
-hlsl.hlsl:276:12: error: use of undeclared identifier 'v273'
-  x = (x + v273);
-           ^
-hlsl.hlsl:277:12: error: use of undeclared identifier 'v274'
-  x = (x + v274);
-           ^
-hlsl.hlsl:278:12: error: use of undeclared identifier 'v275'
-  x = (x + v275);
-           ^
-hlsl.hlsl:279:12: error: use of undeclared identifier 'v276'
-  x = (x + v276);
-           ^
-hlsl.hlsl:280:12: error: use of undeclared identifier 'v277'
-  x = (x + v277);
-           ^
-hlsl.hlsl:281:12: error: use of undeclared identifier 'v278'
-  x = (x + v278);
-           ^
-hlsl.hlsl:282:12: error: use of undeclared identifier 'v279'
-  x = (x + v279);
-           ^
-hlsl.hlsl:283:12: error: use of undeclared identifier 'v280'
-  x = (x + v280);
-           ^
-hlsl.hlsl:284:12: error: use of undeclared identifier 'v281'
-  x = (x + v281);
-           ^
-hlsl.hlsl:285:12: error: use of undeclared identifier 'v282'
-  x = (x + v282);
-           ^
-hlsl.hlsl:286:12: error: use of undeclared identifier 'v283'
-  x = (x + v283);
-           ^
-hlsl.hlsl:287:12: error: use of undeclared identifier 'v284'
-  x = (x + v284);
-           ^
-hlsl.hlsl:288:12: error: use of undeclared identifier 'v285'
-  x = (x + v285);
-           ^
-hlsl.hlsl:289:12: error: use of undeclared identifier 'v286'
-  x = (x + v286);
-           ^
-hlsl.hlsl:290:12: error: use of undeclared identifier 'v287'
-  x = (x + v287);
-           ^
-hlsl.hlsl:291:12: error: use of undeclared identifier 'v288'
-  x = (x + v288);
-           ^
-hlsl.hlsl:292:12: error: use of undeclared identifier 'v289'
-  x = (x + v289);
-           ^
-hlsl.hlsl:293:12: error: use of undeclared identifier 'v290'
-  x = (x + v290);
-           ^
-hlsl.hlsl:294:12: error: use of undeclared identifier 'v291'
-  x = (x + v291);
-           ^
-hlsl.hlsl:295:12: error: use of undeclared identifier 'v292'
-  x = (x + v292);
-           ^
-hlsl.hlsl:296:12: error: use of undeclared identifier 'v293'
-  x = (x + v293);
-           ^
-hlsl.hlsl:297:12: error: use of undeclared identifier 'v294'
-  x = (x + v294);
-           ^
-hlsl.hlsl:298:12: error: use of undeclared identifier 'v295'
-  x = (x + v295);
-           ^
-hlsl.hlsl:299:12: error: use of undeclared identifier 'v296'
-  x = (x + v296);
-           ^
-hlsl.hlsl:300:12: error: use of undeclared identifier 'v297'
-  x = (x + v297);
-           ^
-hlsl.hlsl:301:12: error: use of undeclared identifier 'v298'
-  x = (x + v298);
-           ^
-hlsl.hlsl:302:12: error: use of undeclared identifier 'v299'
-  x = (x + v299);
-           ^
-hlsl.hlsl:303:12: error: use of undeclared identifier 'v300'
-  x = (x + v300);
-           ^
-hlsl.hlsl:304:12: error: use of undeclared identifier 'v301'
-  x = (x + v301);
-           ^
-hlsl.hlsl:305:12: error: use of undeclared identifier 'v302'
-  x = (x + v302);
-           ^
-hlsl.hlsl:306:12: error: use of undeclared identifier 'v303'
-  x = (x + v303);
-           ^
-hlsl.hlsl:307:12: error: use of undeclared identifier 'v304'
-  x = (x + v304);
-           ^
-hlsl.hlsl:308:12: error: use of undeclared identifier 'v305'
-  x = (x + v305);
-           ^
-hlsl.hlsl:309:12: error: use of undeclared identifier 'v306'
-  x = (x + v306);
-           ^
-hlsl.hlsl:310:12: error: use of undeclared identifier 'v307'
-  x = (x + v307);
-           ^
-hlsl.hlsl:311:12: error: use of undeclared identifier 'v308'
-  x = (x + v308);
-           ^
-hlsl.hlsl:312:12: error: use of undeclared identifier 'v309'
-  x = (x + v309);
-           ^
-hlsl.hlsl:313:12: error: use of undeclared identifier 'v310'
-  x = (x + v310);
-           ^
-hlsl.hlsl:314:12: error: use of undeclared identifier 'v311'
-  x = (x + v311);
-           ^
-hlsl.hlsl:315:12: error: use of undeclared identifier 'v312'
-  x = (x + v312);
-           ^
-hlsl.hlsl:316:12: error: use of undeclared identifier 'v313'
-  x = (x + v313);
-           ^
-hlsl.hlsl:317:12: error: use of undeclared identifier 'v314'
-  x = (x + v314);
-           ^
-hlsl.hlsl:318:12: error: use of undeclared identifier 'v315'
-  x = (x + v315);
-           ^
-hlsl.hlsl:319:12: error: use of undeclared identifier 'v316'
-  x = (x + v316);
-           ^
-hlsl.hlsl:320:12: error: use of undeclared identifier 'v317'
-  x = (x + v317);
-           ^
-hlsl.hlsl:321:12: error: use of undeclared identifier 'v318'
-  x = (x + v318);
-           ^
-hlsl.hlsl:322:12: error: use of undeclared identifier 'v319'
-  x = (x + v319);
-           ^
-hlsl.hlsl:323:12: error: use of undeclared identifier 'v320'
-  x = (x + v320);
-           ^
-hlsl.hlsl:324:12: error: use of undeclared identifier 'v321'
-  x = (x + v321);
-           ^
-hlsl.hlsl:325:12: error: use of undeclared identifier 'v322'
-  x = (x + v322);
-           ^
-hlsl.hlsl:326:12: error: use of undeclared identifier 'v323'
-  x = (x + v323);
-           ^
-hlsl.hlsl:327:12: error: use of undeclared identifier 'v324'
-  x = (x + v324);
-           ^
-hlsl.hlsl:328:12: error: use of undeclared identifier 'v325'
-  x = (x + v325);
-           ^
-hlsl.hlsl:329:12: error: use of undeclared identifier 'v326'
-  x = (x + v326);
-           ^
-hlsl.hlsl:330:12: error: use of undeclared identifier 'v327'
-  x = (x + v327);
-           ^
-hlsl.hlsl:331:12: error: use of undeclared identifier 'v328'
-  x = (x + v328);
-           ^
-hlsl.hlsl:332:12: error: use of undeclared identifier 'v329'
-  x = (x + v329);
-           ^
-hlsl.hlsl:333:12: error: use of undeclared identifier 'v330'
-  x = (x + v330);
-           ^
-hlsl.hlsl:334:12: error: use of undeclared identifier 'v331'
-  x = (x + v331);
-           ^
-hlsl.hlsl:335:12: error: use of undeclared identifier 'v332'
-  x = (x + v332);
-           ^
-hlsl.hlsl:336:12: error: use of undeclared identifier 'v333'
-  x = (x + v333);
-           ^
-hlsl.hlsl:337:12: error: use of undeclared identifier 'v334'
-  x = (x + v334);
-           ^
-hlsl.hlsl:338:12: error: use of undeclared identifier 'v335'
-  x = (x + v335);
-           ^
-hlsl.hlsl:339:12: error: use of undeclared identifier 'v336'
-  x = (x + v336);
-           ^
-hlsl.hlsl:340:12: error: use of undeclared identifier 'v337'
-  x = (x + v337);
-           ^
-hlsl.hlsl:341:12: error: use of undeclared identifier 'v338'
-  x = (x + v338);
-           ^
-hlsl.hlsl:342:12: error: use of undeclared identifier 'v339'
-  x = (x + v339);
-           ^
-hlsl.hlsl:343:12: error: use of undeclared identifier 'v340'
-  x = (x + v340);
-           ^
-hlsl.hlsl:344:12: error: use of undeclared identifier 'v341'
-  x = (x + v341);
-           ^
-hlsl.hlsl:345:12: error: use of undeclared identifier 'v342'
-  x = (x + v342);
-           ^
-hlsl.hlsl:346:12: error: use of undeclared identifier 'v343'
-  x = (x + v343);
-           ^
-hlsl.hlsl:347:12: error: use of undeclared identifier 'v344'
-  x = (x + v344);
-           ^
-hlsl.hlsl:348:12: error: use of undeclared identifier 'v345'
-  x = (x + v345);
-           ^
-hlsl.hlsl:349:12: error: use of undeclared identifier 'v346'
-  x = (x + v346);
-           ^
-hlsl.hlsl:350:12: error: use of undeclared identifier 'v347'
-  x = (x + v347);
-           ^
-hlsl.hlsl:351:12: error: use of undeclared identifier 'v348'
-  x = (x + v348);
-           ^
-hlsl.hlsl:352:12: error: use of undeclared identifier 'v349'
-  x = (x + v349);
-           ^
-hlsl.hlsl:353:12: error: use of undeclared identifier 'v350'
-  x = (x + v350);
-           ^
-hlsl.hlsl:354:12: error: use of undeclared identifier 'v351'
-  x = (x + v351);
-           ^
-hlsl.hlsl:355:12: error: use of undeclared identifier 'v352'
-  x = (x + v352);
-           ^
-hlsl.hlsl:356:12: error: use of undeclared identifier 'v353'
-  x = (x + v353);
-           ^
-hlsl.hlsl:357:12: error: use of undeclared identifier 'v354'
-  x = (x + v354);
-           ^
-hlsl.hlsl:358:12: error: use of undeclared identifier 'v355'
-  x = (x + v355);
-           ^
-hlsl.hlsl:359:12: error: use of undeclared identifier 'v356'
-  x = (x + v356);
-           ^
-hlsl.hlsl:360:12: error: use of undeclared identifier 'v357'
-  x = (x + v357);
-           ^
-hlsl.hlsl:361:12: error: use of undeclared identifier 'v358'
-  x = (x + v358);
-           ^
-hlsl.hlsl:362:12: error: use of undeclared identifier 'v359'
-  x = (x + v359);
-           ^
-hlsl.hlsl:363:12: error: use of undeclared identifier 'v360'
-  x = (x + v360);
-           ^
-hlsl.hlsl:364:12: error: use of undeclared identifier 'v361'
-  x = (x + v361);
-           ^
-hlsl.hlsl:365:12: error: use of undeclared identifier 'v362'
-  x = (x + v362);
-           ^
-hlsl.hlsl:366:12: error: use of undeclared identifier 'v363'
-  x = (x + v363);
-           ^
-hlsl.hlsl:367:12: error: use of undeclared identifier 'v364'
-  x = (x + v364);
-           ^
-hlsl.hlsl:368:12: error: use of undeclared identifier 'v365'
-  x = (x + v365);
-           ^
-hlsl.hlsl:369:12: error: use of undeclared identifier 'v366'
-  x = (x + v366);
-           ^
-hlsl.hlsl:370:12: error: use of undeclared identifier 'v367'
-  x = (x + v367);
-           ^
-hlsl.hlsl:371:12: error: use of undeclared identifier 'v368'
-  x = (x + v368);
-           ^
-hlsl.hlsl:372:12: error: use of undeclared identifier 'v369'
-  x = (x + v369);
-           ^
-hlsl.hlsl:373:12: error: use of undeclared identifier 'v370'
-  x = (x + v370);
-           ^
-hlsl.hlsl:374:12: error: use of undeclared identifier 'v371'
-  x = (x + v371);
-           ^
-hlsl.hlsl:375:12: error: use of undeclared identifier 'v372'
-  x = (x + v372);
-           ^
-hlsl.hlsl:376:12: error: use of undeclared identifier 'v373'
-  x = (x + v373);
-           ^
-hlsl.hlsl:377:12: error: use of undeclared identifier 'v374'
-  x = (x + v374);
-           ^
-hlsl.hlsl:378:12: error: use of undeclared identifier 'v375'
-  x = (x + v375);
-           ^
-hlsl.hlsl:379:12: error: use of undeclared identifier 'v376'
-  x = (x + v376);
-           ^
-hlsl.hlsl:380:12: error: use of undeclared identifier 'v377'
-  x = (x + v377);
-           ^
-hlsl.hlsl:381:12: error: use of undeclared identifier 'v378'
-  x = (x + v378);
-           ^
-hlsl.hlsl:382:12: error: use of undeclared identifier 'v379'
-  x = (x + v379);
-           ^
-hlsl.hlsl:383:12: error: use of undeclared identifier 'v380'
-  x = (x + v380);
-           ^
-hlsl.hlsl:384:12: error: use of undeclared identifier 'v381'
-  x = (x + v381);
-           ^
-hlsl.hlsl:385:12: error: use of undeclared identifier 'v382'
-  x = (x + v382);
-           ^
-hlsl.hlsl:386:12: error: use of undeclared identifier 'v383'
-  x = (x + v383);
-           ^
-hlsl.hlsl:387:12: error: use of undeclared identifier 'v384'
-  x = (x + v384);
-           ^
-hlsl.hlsl:388:12: error: use of undeclared identifier 'v385'
-  x = (x + v385);
-           ^
-hlsl.hlsl:389:12: error: use of undeclared identifier 'v386'
-  x = (x + v386);
-           ^
-hlsl.hlsl:390:12: error: use of undeclared identifier 'v387'
-  x = (x + v387);
-           ^
-hlsl.hlsl:391:12: error: use of undeclared identifier 'v388'
-  x = (x + v388);
-           ^
-hlsl.hlsl:392:12: error: use of undeclared identifier 'v389'
-  x = (x + v389);
-           ^
-hlsl.hlsl:393:12: error: use of undeclared identifier 'v390'
-  x = (x + v390);
-           ^
-hlsl.hlsl:394:12: error: use of undeclared identifier 'v391'
-  x = (x + v391);
-           ^
-hlsl.hlsl:395:12: error: use of undeclared identifier 'v392'
-  x = (x + v392);
-           ^
-hlsl.hlsl:396:12: error: use of undeclared identifier 'v393'
-  x = (x + v393);
-           ^
-hlsl.hlsl:397:12: error: use of undeclared identifier 'v394'
-  x = (x + v394);
-           ^
-hlsl.hlsl:398:12: error: use of undeclared identifier 'v395'
-  x = (x + v395);
-           ^
-hlsl.hlsl:399:12: error: use of undeclared identifier 'v396'
-  x = (x + v396);
-           ^
-hlsl.hlsl:400:12: error: use of undeclared identifier 'v397'
-  x = (x + v397);
-           ^
-hlsl.hlsl:401:12: error: use of undeclared identifier 'v398'
-  x = (x + v398);
-           ^
-hlsl.hlsl:402:12: error: use of undeclared identifier 'v399'
-  x = (x + v399);
-           ^
-hlsl.hlsl:403:12: error: use of undeclared identifier 'v400'
-  x = (x + v400);
-           ^
-hlsl.hlsl:404:12: error: use of undeclared identifier 'v401'
-  x = (x + v401);
-           ^
-hlsl.hlsl:405:12: error: use of undeclared identifier 'v402'
-  x = (x + v402);
-           ^
-hlsl.hlsl:406:12: error: use of undeclared identifier 'v403'
-  x = (x + v403);
-           ^
-hlsl.hlsl:407:12: error: use of undeclared identifier 'v404'
-  x = (x + v404);
-           ^
-hlsl.hlsl:408:12: error: use of undeclared identifier 'v405'
-  x = (x + v405);
-           ^
-hlsl.hlsl:409:12: error: use of undeclared identifier 'v406'
-  x = (x + v406);
-           ^
-hlsl.hlsl:410:12: error: use of undeclared identifier 'v407'
-  x = (x + v407);
-           ^
-hlsl.hlsl:411:12: error: use of undeclared identifier 'v408'
-  x = (x + v408);
-           ^
-hlsl.hlsl:412:12: error: use of undeclared identifier 'v409'
-  x = (x + v409);
-           ^
-hlsl.hlsl:413:12: error: use of undeclared identifier 'v410'
-  x = (x + v410);
-           ^
-hlsl.hlsl:414:12: error: use of undeclared identifier 'v411'
-  x = (x + v411);
-           ^
-hlsl.hlsl:415:12: error: use of undeclared identifier 'v412'
-  x = (x + v412);
-           ^
-hlsl.hlsl:416:12: error: use of undeclared identifier 'v413'
-  x = (x + v413);
-           ^
-hlsl.hlsl:417:12: error: use of undeclared identifier 'v414'
-  x = (x + v414);
-           ^
-hlsl.hlsl:418:12: error: use of undeclared identifier 'v415'
-  x = (x + v415);
-           ^
-hlsl.hlsl:419:12: error: use of undeclared identifier 'v416'
-  x = (x + v416);
-           ^
-hlsl.hlsl:420:12: error: use of undeclared identifier 'v417'
-  x = (x + v417);
-           ^
-hlsl.hlsl:421:12: error: use of undeclared identifier 'v418'
-  x = (x + v418);
-           ^
-hlsl.hlsl:422:12: error: use of undeclared identifier 'v419'
-  x = (x + v419);
-           ^
-hlsl.hlsl:423:12: error: use of undeclared identifier 'v420'
-  x = (x + v420);
-           ^
-hlsl.hlsl:424:12: error: use of undeclared identifier 'v421'
-  x = (x + v421);
-           ^
-hlsl.hlsl:425:12: error: use of undeclared identifier 'v422'
-  x = (x + v422);
-           ^
-hlsl.hlsl:426:12: error: use of undeclared identifier 'v423'
-  x = (x + v423);
-           ^
-hlsl.hlsl:427:12: error: use of undeclared identifier 'v424'
-  x = (x + v424);
-           ^
-hlsl.hlsl:428:12: error: use of undeclared identifier 'v425'
-  x = (x + v425);
-           ^
-hlsl.hlsl:429:12: error: use of undeclared identifier 'v426'
-  x = (x + v426);
-           ^
-hlsl.hlsl:430:12: error: use of undeclared identifier 'v427'
-  x = (x + v427);
-           ^
-hlsl.hlsl:431:12: error: use of undeclared identifier 'v428'
-  x = (x + v428);
-           ^
-hlsl.hlsl:432:12: error: use of undeclared identifier 'v429'
-  x = (x + v429);
-           ^
-hlsl.hlsl:433:12: error: use of undeclared identifier 'v430'
-  x = (x + v430);
-           ^
-hlsl.hlsl:434:12: error: use of undeclared identifier 'v431'
-  x = (x + v431);
-           ^
-hlsl.hlsl:435:12: error: use of undeclared identifier 'v432'
-  x = (x + v432);
-           ^
-hlsl.hlsl:436:12: error: use of undeclared identifier 'v433'
-  x = (x + v433);
-           ^
-hlsl.hlsl:437:12: error: use of undeclared identifier 'v434'
-  x = (x + v434);
-           ^
-hlsl.hlsl:438:12: error: use of undeclared identifier 'v435'
-  x = (x + v435);
-           ^
-hlsl.hlsl:439:12: error: use of undeclared identifier 'v436'
-  x = (x + v436);
-           ^
-hlsl.hlsl:440:12: error: use of undeclared identifier 'v437'
-  x = (x + v437);
-           ^
-hlsl.hlsl:441:12: error: use of undeclared identifier 'v438'
-  x = (x + v438);
-           ^
-hlsl.hlsl:442:12: error: use of undeclared identifier 'v439'
-  x = (x + v439);
-           ^
-hlsl.hlsl:443:12: error: use of undeclared identifier 'v440'
-  x = (x + v440);
-           ^
-hlsl.hlsl:444:12: error: use of undeclared identifier 'v441'
-  x = (x + v441);
-           ^
-hlsl.hlsl:445:12: error: use of undeclared identifier 'v442'
-  x = (x + v442);
-           ^
-hlsl.hlsl:446:12: error: use of undeclared identifier 'v443'
-  x = (x + v443);
-           ^
-hlsl.hlsl:447:12: error: use of undeclared identifier 'v444'
-  x = (x + v444);
-           ^
-hlsl.hlsl:448:12: error: use of undeclared identifier 'v445'
-  x = (x + v445);
-           ^
-hlsl.hlsl:449:12: error: use of undeclared identifier 'v446'
-  x = (x + v446);
-           ^
-hlsl.hlsl:450:12: error: use of undeclared identifier 'v447'
-  x = (x + v447);
-           ^
-hlsl.hlsl:451:12: error: use of undeclared identifier 'v448'
-  x = (x + v448);
-           ^
-hlsl.hlsl:452:12: error: use of undeclared identifier 'v449'
-  x = (x + v449);
-           ^
-hlsl.hlsl:453:12: error: use of undeclared identifier 'v450'
-  x = (x + v450);
-           ^
-hlsl.hlsl:454:12: error: use of undeclared identifier 'v451'
-  x = (x + v451);
-           ^
-hlsl.hlsl:455:12: error: use of undeclared identifier 'v452'
-  x = (x + v452);
-           ^
-hlsl.hlsl:456:12: error: use of undeclared identifier 'v453'
-  x = (x + v453);
-           ^
-hlsl.hlsl:457:12: error: use of undeclared identifier 'v454'
-  x = (x + v454);
-           ^
-hlsl.hlsl:458:12: error: use of undeclared identifier 'v455'
-  x = (x + v455);
-           ^
-hlsl.hlsl:459:12: error: use of undeclared identifier 'v456'
-  x = (x + v456);
-           ^
-hlsl.hlsl:460:12: error: use of undeclared identifier 'v457'
-  x = (x + v457);
-           ^
-hlsl.hlsl:461:12: error: use of undeclared identifier 'v458'
-  x = (x + v458);
-           ^
-hlsl.hlsl:462:12: error: use of undeclared identifier 'v459'
-  x = (x + v459);
-           ^
-hlsl.hlsl:463:12: error: use of undeclared identifier 'v460'
-  x = (x + v460);
-           ^
-hlsl.hlsl:464:12: error: use of undeclared identifier 'v461'
-  x = (x + v461);
-           ^
-hlsl.hlsl:465:12: error: use of undeclared identifier 'v462'
-  x = (x + v462);
-           ^
-hlsl.hlsl:466:12: error: use of undeclared identifier 'v463'
-  x = (x + v463);
-           ^
-hlsl.hlsl:467:12: error: use of undeclared identifier 'v464'
-  x = (x + v464);
-           ^
-hlsl.hlsl:468:12: error: use of undeclared identifier 'v465'
-  x = (x + v465);
-           ^
-hlsl.hlsl:469:12: error: use of undeclared identifier 'v466'
-  x = (x + v466);
-           ^
-hlsl.hlsl:470:12: error: use of undeclared identifier 'v467'
-  x = (x + v467);
-           ^
-hlsl.hlsl:471:12: error: use of undeclared identifier 'v468'
-  x = (x + v468);
-           ^
-hlsl.hlsl:472:12: error: use of undeclared identifier 'v469'
-  x = (x + v469);
-           ^
-hlsl.hlsl:473:12: error: use of undeclared identifier 'v470'
-  x = (x + v470);
-           ^
-hlsl.hlsl:474:12: error: use of undeclared identifier 'v471'
-  x = (x + v471);
-           ^
-hlsl.hlsl:475:12: error: use of undeclared identifier 'v472'
-  x = (x + v472);
-           ^
-hlsl.hlsl:476:12: error: use of undeclared identifier 'v473'
-  x = (x + v473);
-           ^
-hlsl.hlsl:477:12: error: use of undeclared identifier 'v474'
-  x = (x + v474);
-           ^
-hlsl.hlsl:478:12: error: use of undeclared identifier 'v475'
-  x = (x + v475);
-           ^
-hlsl.hlsl:479:12: error: use of undeclared identifier 'v476'
-  x = (x + v476);
-           ^
-hlsl.hlsl:480:12: error: use of undeclared identifier 'v477'
-  x = (x + v477);
-           ^
-hlsl.hlsl:481:12: error: use of undeclared identifier 'v478'
-  x = (x + v478);
-           ^
-hlsl.hlsl:482:12: error: use of undeclared identifier 'v479'
-  x = (x + v479);
-           ^
-hlsl.hlsl:483:12: error: use of undeclared identifier 'v480'
-  x = (x + v480);
-           ^
-hlsl.hlsl:484:12: error: use of undeclared identifier 'v481'
-  x = (x + v481);
-           ^
-hlsl.hlsl:485:12: error: use of undeclared identifier 'v482'
-  x = (x + v482);
-           ^
-hlsl.hlsl:486:12: error: use of undeclared identifier 'v483'
-  x = (x + v483);
-           ^
-hlsl.hlsl:487:12: error: use of undeclared identifier 'v484'
-  x = (x + v484);
-           ^
-hlsl.hlsl:488:12: error: use of undeclared identifier 'v485'
-  x = (x + v485);
-           ^
-hlsl.hlsl:489:12: error: use of undeclared identifier 'v486'
-  x = (x + v486);
-           ^
-hlsl.hlsl:490:12: error: use of undeclared identifier 'v487'
-  x = (x + v487);
-           ^
-hlsl.hlsl:491:12: error: use of undeclared identifier 'v488'
-  x = (x + v488);
-           ^
-hlsl.hlsl:492:12: error: use of undeclared identifier 'v489'
-  x = (x + v489);
-           ^
-hlsl.hlsl:493:12: error: use of undeclared identifier 'v490'
-  x = (x + v490);
-           ^
-hlsl.hlsl:494:12: error: use of undeclared identifier 'v491'
-  x = (x + v491);
-           ^
-hlsl.hlsl:495:12: error: use of undeclared identifier 'v492'
-  x = (x + v492);
-           ^
-hlsl.hlsl:496:12: error: use of undeclared identifier 'v493'
-  x = (x + v493);
-           ^
-hlsl.hlsl:497:12: error: use of undeclared identifier 'v494'
-  x = (x + v494);
-           ^
-hlsl.hlsl:498:12: error: use of undeclared identifier 'v495'
-  x = (x + v495);
-           ^
-hlsl.hlsl:499:12: error: use of undeclared identifier 'v496'
-  x = (x + v496);
-           ^
-hlsl.hlsl:500:12: error: use of undeclared identifier 'v497'
-  x = (x + v497);
-           ^
-hlsl.hlsl:501:12: error: use of undeclared identifier 'v498'
-  x = (x + v498);
-           ^
-hlsl.hlsl:502:12: error: use of undeclared identifier 'v499'
-  x = (x + v499);
-           ^
-hlsl.hlsl:503:12: error: use of undeclared identifier 'v500'
-  x = (x + v500);
-           ^
-hlsl.hlsl:504:12: error: use of undeclared identifier 'v501'
-  x = (x + v501);
-           ^
-hlsl.hlsl:505:12: error: use of undeclared identifier 'v502'
-  x = (x + v502);
-           ^
-hlsl.hlsl:506:12: error: use of undeclared identifier 'v503'
-  x = (x + v503);
-           ^
-hlsl.hlsl:507:12: error: use of undeclared identifier 'v504'
-  x = (x + v504);
-           ^
-hlsl.hlsl:508:12: error: use of undeclared identifier 'v505'
-  x = (x + v505);
-           ^
-hlsl.hlsl:509:12: error: use of undeclared identifier 'v506'
-  x = (x + v506);
-           ^
-hlsl.hlsl:510:12: error: use of undeclared identifier 'v507'
-  x = (x + v507);
-           ^
-hlsl.hlsl:511:12: error: use of undeclared identifier 'v508'
-  x = (x + v508);
-           ^
-hlsl.hlsl:512:12: error: use of undeclared identifier 'v509'
-  x = (x + v509);
-           ^
-hlsl.hlsl:513:12: error: use of undeclared identifier 'v510'
-  x = (x + v510);
-           ^
-hlsl.hlsl:514:12: error: use of undeclared identifier 'v511'
-  x = (x + v511);
-           ^
-hlsl.hlsl:515:12: error: use of undeclared identifier 'v512'
-  x = (x + v512);
-           ^
-hlsl.hlsl:516:12: error: use of undeclared identifier 'v513'
-  x = (x + v513);
-           ^
-hlsl.hlsl:517:12: error: use of undeclared identifier 'v514'
-  x = (x + v514);
-           ^
-hlsl.hlsl:518:12: error: use of undeclared identifier 'v515'
-  x = (x + v515);
-           ^
-hlsl.hlsl:519:12: error: use of undeclared identifier 'v516'
-  x = (x + v516);
-           ^
-hlsl.hlsl:520:12: error: use of undeclared identifier 'v517'
-  x = (x + v517);
-           ^
-hlsl.hlsl:521:12: error: use of undeclared identifier 'v518'
-  x = (x + v518);
-           ^
-hlsl.hlsl:522:12: error: use of undeclared identifier 'v519'
-  x = (x + v519);
-           ^
-hlsl.hlsl:523:12: error: use of undeclared identifier 'v520'
-  x = (x + v520);
-           ^
-hlsl.hlsl:524:12: error: use of undeclared identifier 'v521'
-  x = (x + v521);
-           ^
-hlsl.hlsl:525:12: error: use of undeclared identifier 'v522'
-  x = (x + v522);
-           ^
-hlsl.hlsl:526:12: error: use of undeclared identifier 'v523'
-  x = (x + v523);
-           ^
-hlsl.hlsl:527:12: error: use of undeclared identifier 'v524'
-  x = (x + v524);
-           ^
-hlsl.hlsl:528:12: error: use of undeclared identifier 'v525'
-  x = (x + v525);
-           ^
-hlsl.hlsl:529:12: error: use of undeclared identifier 'v526'
-  x = (x + v526);
-           ^
-hlsl.hlsl:530:12: error: use of undeclared identifier 'v527'
-  x = (x + v527);
-           ^
-hlsl.hlsl:531:12: error: use of undeclared identifier 'v528'
-  x = (x + v528);
-           ^
-hlsl.hlsl:532:12: error: use of undeclared identifier 'v529'
-  x = (x + v529);
-           ^
-hlsl.hlsl:533:12: error: use of undeclared identifier 'v530'
-  x = (x + v530);
-           ^
-hlsl.hlsl:534:12: error: use of undeclared identifier 'v531'
-  x = (x + v531);
-           ^
-hlsl.hlsl:535:12: error: use of undeclared identifier 'v532'
-  x = (x + v532);
-           ^
-hlsl.hlsl:536:12: error: use of undeclared identifier 'v533'
-  x = (x + v533);
-           ^
-hlsl.hlsl:537:12: error: use of undeclared identifier 'v534'
-  x = (x + v534);
-           ^
-hlsl.hlsl:538:12: error: use of undeclared identifier 'v535'
-  x = (x + v535);
-           ^
-hlsl.hlsl:539:12: error: use of undeclared identifier 'v536'
-  x = (x + v536);
-           ^
-hlsl.hlsl:540:12: error: use of undeclared identifier 'v537'
-  x = (x + v537);
-           ^
-hlsl.hlsl:541:12: error: use of undeclared identifier 'v538'
-  x = (x + v538);
-           ^
-hlsl.hlsl:542:12: error: use of undeclared identifier 'v539'
-  x = (x + v539);
-           ^
-hlsl.hlsl:543:12: error: use of undeclared identifier 'v540'
-  x = (x + v540);
-           ^
-hlsl.hlsl:544:12: error: use of undeclared identifier 'v541'
-  x = (x + v541);
-           ^
-hlsl.hlsl:545:12: error: use of undeclared identifier 'v542'
-  x = (x + v542);
-           ^
-hlsl.hlsl:546:12: error: use of undeclared identifier 'v543'
-  x = (x + v543);
-           ^
-hlsl.hlsl:547:12: error: use of undeclared identifier 'v544'
-  x = (x + v544);
-           ^
-hlsl.hlsl:548:12: error: use of undeclared identifier 'v545'
-  x = (x + v545);
-           ^
-hlsl.hlsl:549:12: error: use of undeclared identifier 'v546'
-  x = (x + v546);
-           ^
-hlsl.hlsl:550:12: error: use of undeclared identifier 'v547'
-  x = (x + v547);
-           ^
-hlsl.hlsl:551:12: error: use of undeclared identifier 'v548'
-  x = (x + v548);
-           ^
-hlsl.hlsl:552:12: error: use of undeclared identifier 'v549'
-  x = (x + v549);
-           ^
-hlsl.hlsl:553:12: error: use of undeclared identifier 'v550'
-  x = (x + v550);
-           ^
-hlsl.hlsl:554:12: error: use of undeclared identifier 'v551'
-  x = (x + v551);
-           ^
-hlsl.hlsl:555:12: error: use of undeclared identifier 'v552'
-  x = (x + v552);
-           ^
-hlsl.hlsl:556:12: error: use of undeclared identifier 'v553'
-  x = (x + v553);
-           ^
-hlsl.hlsl:557:12: error: use of undeclared identifier 'v554'
-  x = (x + v554);
-           ^
-hlsl.hlsl:558:12: error: use of undeclared identifier 'v555'
-  x = (x + v555);
-           ^
-hlsl.hlsl:559:12: error: use of undeclared identifier 'v556'
-  x = (x + v556);
-           ^
-hlsl.hlsl:560:12: error: use of undeclared identifier 'v557'
-  x = (x + v557);
-           ^
-hlsl.hlsl:561:12: error: use of undeclared identifier 'v558'
-  x = (x + v558);
-           ^
-hlsl.hlsl:562:12: error: use of undeclared identifier 'v559'
-  x = (x + v559);
-           ^
-hlsl.hlsl:563:12: error: use of undeclared identifier 'v560'
-  x = (x + v560);
-           ^
-hlsl.hlsl:564:12: error: use of undeclared identifier 'v561'
-  x = (x + v561);
-           ^
-hlsl.hlsl:565:12: error: use of undeclared identifier 'v562'
-  x = (x + v562);
-           ^
-hlsl.hlsl:566:12: error: use of undeclared identifier 'v563'
-  x = (x + v563);
-           ^
-hlsl.hlsl:567:12: error: use of undeclared identifier 'v564'
-  x = (x + v564);
-           ^
-hlsl.hlsl:568:12: error: use of undeclared identifier 'v565'
-  x = (x + v565);
-           ^
-hlsl.hlsl:569:12: error: use of undeclared identifier 'v566'
-  x = (x + v566);
-           ^
-hlsl.hlsl:570:12: error: use of undeclared identifier 'v567'
-  x = (x + v567);
-           ^
-hlsl.hlsl:571:12: error: use of undeclared identifier 'v568'
-  x = (x + v568);
-           ^
-hlsl.hlsl:572:12: error: use of undeclared identifier 'v569'
-  x = (x + v569);
-           ^
-hlsl.hlsl:573:12: error: use of undeclared identifier 'v570'
-  x = (x + v570);
-           ^
-hlsl.hlsl:574:12: error: use of undeclared identifier 'v571'
-  x = (x + v571);
-           ^
-hlsl.hlsl:575:12: error: use of undeclared identifier 'v572'
-  x = (x + v572);
-           ^
-hlsl.hlsl:576:12: error: use of undeclared identifier 'v573'
-  x = (x + v573);
-           ^
-hlsl.hlsl:577:12: error: use of undeclared identifier 'v574'
-  x = (x + v574);
-           ^
-hlsl.hlsl:578:12: error: use of undeclared identifier 'v575'
-  x = (x + v575);
-           ^
-hlsl.hlsl:579:12: error: use of undeclared identifier 'v576'
-  x = (x + v576);
-           ^
-hlsl.hlsl:580:12: error: use of undeclared identifier 'v577'
-  x = (x + v577);
-           ^
-hlsl.hlsl:581:12: error: use of undeclared identifier 'v578'
-  x = (x + v578);
-           ^
-hlsl.hlsl:582:12: error: use of undeclared identifier 'v579'
-  x = (x + v579);
-           ^
-hlsl.hlsl:583:12: error: use of undeclared identifier 'v580'
-  x = (x + v580);
-           ^
-hlsl.hlsl:584:12: error: use of undeclared identifier 'v581'
-  x = (x + v581);
-           ^
-hlsl.hlsl:585:12: error: use of undeclared identifier 'v582'
-  x = (x + v582);
-           ^
-hlsl.hlsl:586:12: error: use of undeclared identifier 'v583'
-  x = (x + v583);
-           ^
-hlsl.hlsl:587:12: error: use of undeclared identifier 'v584'
-  x = (x + v584);
-           ^
-hlsl.hlsl:588:12: error: use of undeclared identifier 'v585'
-  x = (x + v585);
-           ^
-hlsl.hlsl:589:12: error: use of undeclared identifier 'v586'
-  x = (x + v586);
-           ^
-hlsl.hlsl:590:12: error: use of undeclared identifier 'v587'
-  x = (x + v587);
-           ^
-hlsl.hlsl:591:12: error: use of undeclared identifier 'v588'
-  x = (x + v588);
-           ^
-hlsl.hlsl:592:12: error: use of undeclared identifier 'v589'
-  x = (x + v589);
-           ^
-hlsl.hlsl:593:12: error: use of undeclared identifier 'v590'
-  x = (x + v590);
-           ^
-hlsl.hlsl:594:12: error: use of undeclared identifier 'v591'
-  x = (x + v591);
-           ^
-hlsl.hlsl:595:12: error: use of undeclared identifier 'v592'
-  x = (x + v592);
-           ^
-hlsl.hlsl:596:12: error: use of undeclared identifier 'v593'
-  x = (x + v593);
-           ^
-hlsl.hlsl:597:12: error: use of undeclared identifier 'v594'
-  x = (x + v594);
-           ^
-hlsl.hlsl:598:12: error: use of undeclared identifier 'v595'
-  x = (x + v595);
-           ^
-hlsl.hlsl:599:12: error: use of undeclared identifier 'v596'
-  x = (x + v596);
-           ^
-hlsl.hlsl:600:12: error: use of undeclared identifier 'v597'
-  x = (x + v597);
-           ^
-hlsl.hlsl:601:12: error: use of undeclared identifier 'v598'
-  x = (x + v598);
-           ^
-hlsl.hlsl:602:12: error: use of undeclared identifier 'v599'
-  x = (x + v599);
-           ^
-hlsl.hlsl:603:12: error: use of undeclared identifier 'v600'
-  x = (x + v600);
-           ^
-hlsl.hlsl:604:12: error: use of undeclared identifier 'v601'
-  x = (x + v601);
-           ^
-hlsl.hlsl:605:12: error: use of undeclared identifier 'v602'
-  x = (x + v602);
-           ^
-hlsl.hlsl:606:12: error: use of undeclared identifier 'v603'
-  x = (x + v603);
-           ^
-hlsl.hlsl:607:12: error: use of undeclared identifier 'v604'
-  x = (x + v604);
-           ^
-hlsl.hlsl:608:12: error: use of undeclared identifier 'v605'
-  x = (x + v605);
-           ^
-hlsl.hlsl:609:12: error: use of undeclared identifier 'v606'
-  x = (x + v606);
-           ^
-hlsl.hlsl:610:12: error: use of undeclared identifier 'v607'
-  x = (x + v607);
-           ^
-hlsl.hlsl:611:12: error: use of undeclared identifier 'v608'
-  x = (x + v608);
-           ^
-hlsl.hlsl:612:12: error: use of undeclared identifier 'v609'
-  x = (x + v609);
-           ^
-hlsl.hlsl:613:12: error: use of undeclared identifier 'v610'
-  x = (x + v610);
-           ^
-hlsl.hlsl:614:12: error: use of undeclared identifier 'v611'
-  x = (x + v611);
-           ^
-hlsl.hlsl:615:12: error: use of undeclared identifier 'v612'
-  x = (x + v612);
-           ^
-hlsl.hlsl:616:12: error: use of undeclared identifier 'v613'
-  x = (x + v613);
-           ^
-hlsl.hlsl:617:12: error: use of undeclared identifier 'v614'
-  x = (x + v614);
-           ^
-hlsl.hlsl:618:12: error: use of undeclared identifier 'v615'
-  x = (x + v615);
-           ^
-hlsl.hlsl:619:12: error: use of undeclared identifier 'v616'
-  x = (x + v616);
-           ^
-hlsl.hlsl:620:12: error: use of undeclared identifier 'v617'
-  x = (x + v617);
-           ^
-hlsl.hlsl:621:12: error: use of undeclared identifier 'v618'
-  x = (x + v618);
-           ^
-hlsl.hlsl:622:12: error: use of undeclared identifier 'v619'
-  x = (x + v619);
-           ^
-hlsl.hlsl:623:12: error: use of undeclared identifier 'v620'
-  x = (x + v620);
-           ^
-hlsl.hlsl:624:12: error: use of undeclared identifier 'v621'
-  x = (x + v621);
-           ^
-hlsl.hlsl:625:12: error: use of undeclared identifier 'v622'
-  x = (x + v622);
-           ^
-hlsl.hlsl:626:12: error: use of undeclared identifier 'v623'
-  x = (x + v623);
-           ^
-hlsl.hlsl:627:12: error: use of undeclared identifier 'v624'
-  x = (x + v624);
-           ^
-hlsl.hlsl:628:12: error: use of undeclared identifier 'v625'
-  x = (x + v625);
-           ^
-hlsl.hlsl:629:12: error: use of undeclared identifier 'v626'
-  x = (x + v626);
-           ^
-hlsl.hlsl:630:12: error: use of undeclared identifier 'v627'
-  x = (x + v627);
-           ^
-hlsl.hlsl:631:12: error: use of undeclared identifier 'v628'
-  x = (x + v628);
-           ^
-hlsl.hlsl:632:12: error: use of undeclared identifier 'v629'
-  x = (x + v629);
-           ^
-hlsl.hlsl:633:12: error: use of undeclared identifier 'v630'
-  x = (x + v630);
-           ^
-hlsl.hlsl:634:12: error: use of undeclared identifier 'v631'
-  x = (x + v631);
-           ^
-hlsl.hlsl:635:12: error: use of undeclared identifier 'v632'
-  x = (x + v632);
-           ^
-hlsl.hlsl:636:12: error: use of undeclared identifier 'v633'
-  x = (x + v633);
-           ^
-hlsl.hlsl:637:12: error: use of undeclared identifier 'v634'
-  x = (x + v634);
-           ^
-hlsl.hlsl:638:12: error: use of undeclared identifier 'v635'
-  x = (x + v635);
-           ^
-hlsl.hlsl:639:12: error: use of undeclared identifier 'v636'
-  x = (x + v636);
-           ^
-hlsl.hlsl:640:12: error: use of undeclared identifier 'v637'
-  x = (x + v637);
-           ^
-hlsl.hlsl:641:12: error: use of undeclared identifier 'v638'
-  x = (x + v638);
-           ^
-hlsl.hlsl:642:12: error: use of undeclared identifier 'v639'
-  x = (x + v639);
-           ^
-hlsl.hlsl:643:12: error: use of undeclared identifier 'v640'
-  x = (x + v640);
-           ^
-hlsl.hlsl:644:12: error: use of undeclared identifier 'v641'
-  x = (x + v641);
-           ^
-hlsl.hlsl:645:12: error: use of undeclared identifier 'v642'
-  x = (x + v642);
-           ^
-hlsl.hlsl:646:12: error: use of undeclared identifier 'v643'
-  x = (x + v643);
-           ^
-hlsl.hlsl:647:12: error: use of undeclared identifier 'v644'
-  x = (x + v644);
-           ^
-hlsl.hlsl:648:12: error: use of undeclared identifier 'v645'
-  x = (x + v645);
-           ^
-hlsl.hlsl:649:12: error: use of undeclared identifier 'v646'
-  x = (x + v646);
-           ^
-hlsl.hlsl:650:12: error: use of undeclared identifier 'v647'
-  x = (x + v647);
-           ^
-hlsl.hlsl:651:12: error: use of undeclared identifier 'v648'
-  x = (x + v648);
-           ^
-hlsl.hlsl:652:12: error: use of undeclared identifier 'v649'
-  x = (x + v649);
-           ^
-hlsl.hlsl:653:12: error: use of undeclared identifier 'v650'
-  x = (x + v650);
-           ^
-hlsl.hlsl:654:12: error: use of undeclared identifier 'v651'
-  x = (x + v651);
-           ^
-hlsl.hlsl:655:12: error: use of undeclared identifier 'v652'
-  x = (x + v652);
-           ^
-hlsl.hlsl:656:12: error: use of undeclared identifier 'v653'
-  x = (x + v653);
-           ^
-hlsl.hlsl:657:12: error: use of undeclared identifier 'v654'
-  x = (x + v654);
-           ^
-hlsl.hlsl:658:12: error: use of undeclared identifier 'v655'
-  x = (x + v655);
-           ^
-hlsl.hlsl:659:12: error: use of undeclared identifier 'v656'
-  x = (x + v656);
-           ^
-hlsl.hlsl:660:12: error: use of undeclared identifier 'v657'
-  x = (x + v657);
-           ^
-hlsl.hlsl:661:12: error: use of undeclared identifier 'v658'
-  x = (x + v658);
-           ^
-hlsl.hlsl:662:12: error: use of undeclared identifier 'v659'
-  x = (x + v659);
-           ^
-hlsl.hlsl:663:12: error: use of undeclared identifier 'v660'
-  x = (x + v660);
-           ^
-hlsl.hlsl:664:12: error: use of undeclared identifier 'v661'
-  x = (x + v661);
-           ^
-hlsl.hlsl:665:12: error: use of undeclared identifier 'v662'
-  x = (x + v662);
-           ^
-hlsl.hlsl:666:12: error: use of undeclared identifier 'v663'
-  x = (x + v663);
-           ^
-hlsl.hlsl:667:12: error: use of undeclared identifier 'v664'
-  x = (x + v664);
-           ^
-hlsl.hlsl:668:12: error: use of undeclared identifier 'v665'
-  x = (x + v665);
-           ^
-hlsl.hlsl:669:12: error: use of undeclared identifier 'v666'
-  x = (x + v666);
-           ^
-hlsl.hlsl:670:12: error: use of undeclared identifier 'v667'
-  x = (x + v667);
-           ^
-hlsl.hlsl:671:12: error: use of undeclared identifier 'v668'
-  x = (x + v668);
-           ^
-hlsl.hlsl:672:12: error: use of undeclared identifier 'v669'
-  x = (x + v669);
-           ^
-hlsl.hlsl:673:12: error: use of undeclared identifier 'v670'
-  x = (x + v670);
-           ^
-hlsl.hlsl:674:12: error: use of undeclared identifier 'v671'
-  x = (x + v671);
-           ^
-hlsl.hlsl:675:12: error: use of undeclared identifier 'v672'
-  x = (x + v672);
-           ^
-hlsl.hlsl:676:12: error: use of undeclared identifier 'v673'
-  x = (x + v673);
-           ^
-hlsl.hlsl:677:12: error: use of undeclared identifier 'v674'
-  x = (x + v674);
-           ^
-hlsl.hlsl:678:12: error: use of undeclared identifier 'v675'
-  x = (x + v675);
-           ^
-hlsl.hlsl:679:12: error: use of undeclared identifier 'v676'
-  x = (x + v676);
-           ^
-hlsl.hlsl:680:12: error: use of undeclared identifier 'v677'
-  x = (x + v677);
-           ^
-hlsl.hlsl:681:12: error: use of undeclared identifier 'v678'
-  x = (x + v678);
-           ^
-hlsl.hlsl:682:12: error: use of undeclared identifier 'v679'
-  x = (x + v679);
-           ^
-hlsl.hlsl:683:12: error: use of undeclared identifier 'v680'
-  x = (x + v680);
-           ^
-hlsl.hlsl:684:12: error: use of undeclared identifier 'v681'
-  x = (x + v681);
-           ^
-hlsl.hlsl:685:12: error: use of undeclared identifier 'v682'
-  x = (x + v682);
-           ^
-hlsl.hlsl:686:12: error: use of undeclared identifier 'v683'
-  x = (x + v683);
-           ^
-hlsl.hlsl:687:12: error: use of undeclared identifier 'v684'
-  x = (x + v684);
-           ^
-hlsl.hlsl:688:12: error: use of undeclared identifier 'v685'
-  x = (x + v685);
-           ^
-hlsl.hlsl:689:12: error: use of undeclared identifier 'v686'
-  x = (x + v686);
-           ^
-hlsl.hlsl:690:12: error: use of undeclared identifier 'v687'
-  x = (x + v687);
-           ^
-hlsl.hlsl:691:12: error: use of undeclared identifier 'v688'
-  x = (x + v688);
-           ^
-hlsl.hlsl:692:12: error: use of undeclared identifier 'v689'
-  x = (x + v689);
-           ^
-hlsl.hlsl:693:12: error: use of undeclared identifier 'v690'
-  x = (x + v690);
-           ^
-hlsl.hlsl:694:12: error: use of undeclared identifier 'v691'
-  x = (x + v691);
-           ^
-hlsl.hlsl:695:12: error: use of undeclared identifier 'v692'
-  x = (x + v692);
-           ^
-hlsl.hlsl:696:12: error: use of undeclared identifier 'v693'
-  x = (x + v693);
-           ^
-hlsl.hlsl:697:12: error: use of undeclared identifier 'v694'
-  x = (x + v694);
-           ^
-hlsl.hlsl:698:12: error: use of undeclared identifier 'v695'
-  x = (x + v695);
-           ^
-hlsl.hlsl:699:12: error: use of undeclared identifier 'v696'
-  x = (x + v696);
-           ^
-hlsl.hlsl:700:12: error: use of undeclared identifier 'v697'
-  x = (x + v697);
-           ^
-hlsl.hlsl:701:12: error: use of undeclared identifier 'v698'
-  x = (x + v698);
-           ^
-hlsl.hlsl:702:12: error: use of undeclared identifier 'v699'
-  x = (x + v699);
-           ^
-hlsl.hlsl:703:12: error: use of undeclared identifier 'v700'
-  x = (x + v700);
-           ^
-hlsl.hlsl:704:12: error: use of undeclared identifier 'v701'
-  x = (x + v701);
-           ^
-hlsl.hlsl:705:12: error: use of undeclared identifier 'v702'
-  x = (x + v702);
-           ^
-hlsl.hlsl:706:12: error: use of undeclared identifier 'v703'
-  x = (x + v703);
-           ^
-hlsl.hlsl:707:12: error: use of undeclared identifier 'v704'
-  x = (x + v704);
-           ^
-hlsl.hlsl:708:12: error: use of undeclared identifier 'v705'
-  x = (x + v705);
-           ^
-hlsl.hlsl:709:12: error: use of undeclared identifier 'v706'
-  x = (x + v706);
-           ^
-hlsl.hlsl:710:12: error: use of undeclared identifier 'v707'
-  x = (x + v707);
-           ^
-hlsl.hlsl:711:12: error: use of undeclared identifier 'v708'
-  x = (x + v708);
-           ^
-hlsl.hlsl:712:12: error: use of undeclared identifier 'v709'
-  x = (x + v709);
-           ^
-hlsl.hlsl:713:12: error: use of undeclared identifier 'v710'
-  x = (x + v710);
-           ^
-hlsl.hlsl:714:12: error: use of undeclared identifier 'v711'
-  x = (x + v711);
-           ^
-hlsl.hlsl:715:12: error: use of undeclared identifier 'v712'
-  x = (x + v712);
-           ^
-hlsl.hlsl:716:12: error: use of undeclared identifier 'v713'
-  x = (x + v713);
-           ^
-hlsl.hlsl:717:12: error: use of undeclared identifier 'v714'
-  x = (x + v714);
-           ^
-hlsl.hlsl:718:12: error: use of undeclared identifier 'v715'
-  x = (x + v715);
-           ^
-hlsl.hlsl:719:12: error: use of undeclared identifier 'v716'
-  x = (x + v716);
-           ^
-hlsl.hlsl:720:12: error: use of undeclared identifier 'v717'
-  x = (x + v717);
-           ^
-hlsl.hlsl:721:12: error: use of undeclared identifier 'v718'
-  x = (x + v718);
-           ^
-hlsl.hlsl:722:12: error: use of undeclared identifier 'v719'
-  x = (x + v719);
-           ^
-hlsl.hlsl:723:12: error: use of undeclared identifier 'v720'
-  x = (x + v720);
-           ^
-hlsl.hlsl:724:12: error: use of undeclared identifier 'v721'
-  x = (x + v721);
-           ^
-hlsl.hlsl:725:12: error: use of undeclared identifier 'v722'
-  x = (x + v722);
-           ^
-hlsl.hlsl:726:12: error: use of undeclared identifier 'v723'
-  x = (x + v723);
-           ^
-hlsl.hlsl:727:12: error: use of undeclared identifier 'v724'
-  x = (x + v724);
-           ^
-hlsl.hlsl:728:12: error: use of undeclared identifier 'v725'
-  x = (x + v725);
-           ^
-hlsl.hlsl:729:12: error: use of undeclared identifier 'v726'
-  x = (x + v726);
-           ^
-hlsl.hlsl:730:12: error: use of undeclared identifier 'v727'
-  x = (x + v727);
-           ^
-hlsl.hlsl:731:12: error: use of undeclared identifier 'v728'
-  x = (x + v728);
-           ^
-hlsl.hlsl:732:12: error: use of undeclared identifier 'v729'
-  x = (x + v729);
-           ^
-hlsl.hlsl:733:12: error: use of undeclared identifier 'v730'
-  x = (x + v730);
-           ^
-hlsl.hlsl:734:12: error: use of undeclared identifier 'v731'
-  x = (x + v731);
-           ^
-hlsl.hlsl:735:12: error: use of undeclared identifier 'v732'
-  x = (x + v732);
-           ^
-hlsl.hlsl:736:12: error: use of undeclared identifier 'v733'
-  x = (x + v733);
-           ^
-hlsl.hlsl:737:12: error: use of undeclared identifier 'v734'
-  x = (x + v734);
-           ^
-hlsl.hlsl:738:12: error: use of undeclared identifier 'v735'
-  x = (x + v735);
-           ^
-hlsl.hlsl:739:12: error: use of undeclared identifier 'v736'
-  x = (x + v736);
-           ^
-hlsl.hlsl:740:12: error: use of undeclared identifier 'v737'
-  x = (x + v737);
-           ^
-hlsl.hlsl:741:12: error: use of undeclared identifier 'v738'
-  x = (x + v738);
-           ^
-hlsl.hlsl:742:12: error: use of undeclared identifier 'v739'
-  x = (x + v739);
-           ^
-hlsl.hlsl:743:12: error: use of undeclared identifier 'v740'
-  x = (x + v740);
-           ^
-hlsl.hlsl:744:12: error: use of undeclared identifier 'v741'
-  x = (x + v741);
-           ^
-hlsl.hlsl:745:12: error: use of undeclared identifier 'v742'
-  x = (x + v742);
-           ^
-hlsl.hlsl:746:12: error: use of undeclared identifier 'v743'
-  x = (x + v743);
-           ^
-hlsl.hlsl:747:12: error: use of undeclared identifier 'v744'
-  x = (x + v744);
-           ^
-hlsl.hlsl:748:12: error: use of undeclared identifier 'v745'
-  x = (x + v745);
-           ^
-hlsl.hlsl:749:12: error: use of undeclared identifier 'v746'
-  x = (x + v746);
-           ^
-hlsl.hlsl:750:12: error: use of undeclared identifier 'v747'
-  x = (x + v747);
-           ^
-hlsl.hlsl:751:12: error: use of undeclared identifier 'v748'
-  x = (x + v748);
-           ^
-hlsl.hlsl:752:12: error: use of undeclared identifier 'v749'
-  x = (x + v749);
-           ^
-hlsl.hlsl:753:12: error: use of undeclared identifier 'v750'
-  x = (x + v750);
-           ^
-hlsl.hlsl:754:12: error: use of undeclared identifier 'v751'
-  x = (x + v751);
-           ^
-hlsl.hlsl:755:12: error: use of undeclared identifier 'v752'
-  x = (x + v752);
-           ^
-hlsl.hlsl:756:12: error: use of undeclared identifier 'v753'
-  x = (x + v753);
-           ^
-hlsl.hlsl:757:12: error: use of undeclared identifier 'v754'
-  x = (x + v754);
-           ^
-hlsl.hlsl:758:12: error: use of undeclared identifier 'v755'
-  x = (x + v755);
-           ^
-hlsl.hlsl:759:12: error: use of undeclared identifier 'v756'
-  x = (x + v756);
-           ^
-hlsl.hlsl:760:12: error: use of undeclared identifier 'v757'
-  x = (x + v757);
-           ^
-hlsl.hlsl:761:12: error: use of undeclared identifier 'v758'
-  x = (x + v758);
-           ^
-hlsl.hlsl:762:12: error: use of undeclared identifier 'v759'
-  x = (x + v759);
-           ^
-hlsl.hlsl:763:12: error: use of undeclared identifier 'v760'
-  x = (x + v760);
-           ^
-hlsl.hlsl:764:12: error: use of undeclared identifier 'v761'
-  x = (x + v761);
-           ^
-hlsl.hlsl:765:12: error: use of undeclared identifier 'v762'
-  x = (x + v762);
-           ^
-hlsl.hlsl:766:12: error: use of undeclared identifier 'v763'
-  x = (x + v763);
-           ^
-hlsl.hlsl:767:12: error: use of undeclared identifier 'v764'
-  x = (x + v764);
-           ^
-hlsl.hlsl:768:12: error: use of undeclared identifier 'v765'
-  x = (x + v765);
-           ^
-hlsl.hlsl:769:12: error: use of undeclared identifier 'v766'
-  x = (x + v766);
-           ^
-hlsl.hlsl:770:12: error: use of undeclared identifier 'v767'
-  x = (x + v767);
-           ^
-hlsl.hlsl:771:12: error: use of undeclared identifier 'v768'
-  x = (x + v768);
-           ^
-hlsl.hlsl:772:12: error: use of undeclared identifier 'v769'
-  x = (x + v769);
-           ^
-hlsl.hlsl:773:12: error: use of undeclared identifier 'v770'
-  x = (x + v770);
-           ^
-hlsl.hlsl:774:12: error: use of undeclared identifier 'v771'
-  x = (x + v771);
-           ^
-hlsl.hlsl:775:12: error: use of undeclared identifier 'v772'
-  x = (x + v772);
-           ^
-hlsl.hlsl:776:12: error: use of undeclared identifier 'v773'
-  x = (x + v773);
-           ^
-hlsl.hlsl:777:12: error: use of undeclared identifier 'v774'
-  x = (x + v774);
-           ^
-hlsl.hlsl:778:12: error: use of undeclared identifier 'v775'
-  x = (x + v775);
-           ^
-hlsl.hlsl:779:12: error: use of undeclared identifier 'v776'
-  x = (x + v776);
-           ^
-hlsl.hlsl:780:12: error: use of undeclared identifier 'v777'
-  x = (x + v777);
-           ^
-hlsl.hlsl:781:12: error: use of undeclared identifier 'v778'
-  x = (x + v778);
-           ^
-hlsl.hlsl:782:12: error: use of undeclared identifier 'v779'
-  x = (x + v779);
-           ^
-hlsl.hlsl:783:12: error: use of undeclared identifier 'v780'
-  x = (x + v780);
-           ^
-hlsl.hlsl:784:12: error: use of undeclared identifier 'v781'
-  x = (x + v781);
-           ^
-hlsl.hlsl:785:12: error: use of undeclared identifier 'v782'
-  x = (x + v782);
-           ^
-hlsl.hlsl:786:12: error: use of undeclared identifier 'v783'
-  x = (x + v783);
-           ^
-hlsl.hlsl:787:12: error: use of undeclared identifier 'v784'
-  x = (x + v784);
-           ^
-hlsl.hlsl:788:12: error: use of undeclared identifier 'v785'
-  x = (x + v785);
-           ^
-hlsl.hlsl:789:12: error: use of undeclared identifier 'v786'
-  x = (x + v786);
-           ^
-hlsl.hlsl:790:12: error: use of undeclared identifier 'v787'
-  x = (x + v787);
-           ^
-hlsl.hlsl:791:12: error: use of undeclared identifier 'v788'
-  x = (x + v788);
-           ^
-hlsl.hlsl:792:12: error: use of undeclared identifier 'v789'
-  x = (x + v789);
-           ^
-hlsl.hlsl:793:12: error: use of undeclared identifier 'v790'
-  x = (x + v790);
-           ^
-hlsl.hlsl:794:12: error: use of undeclared identifier 'v791'
-  x = (x + v791);
-           ^
-hlsl.hlsl:795:12: error: use of undeclared identifier 'v792'
-  x = (x + v792);
-           ^
-hlsl.hlsl:796:12: error: use of undeclared identifier 'v793'
-  x = (x + v793);
-           ^
-hlsl.hlsl:797:12: error: use of undeclared identifier 'v794'
-  x = (x + v794);
-           ^
-hlsl.hlsl:798:12: error: use of undeclared identifier 'v795'
-  x = (x + v795);
-           ^
-hlsl.hlsl:799:12: error: use of undeclared identifier 'v796'
-  x = (x + v796);
-           ^
-hlsl.hlsl:800:12: error: use of undeclared identifier 'v797'
-  x = (x + v797);
-           ^
-hlsl.hlsl:801:12: error: use of undeclared identifier 'v798'
-  x = (x + v798);
-           ^
-hlsl.hlsl:802:12: error: use of undeclared identifier 'v799'
-  x = (x + v799);
-           ^
-hlsl.hlsl:803:12: error: use of undeclared identifier 'v800'
-  x = (x + v800);
-           ^
-hlsl.hlsl:804:12: error: use of undeclared identifier 'v801'
-  x = (x + v801);
-           ^
-hlsl.hlsl:805:12: error: use of undeclared identifier 'v802'
-  x = (x + v802);
-           ^
-hlsl.hlsl:806:12: error: use of undeclared identifier 'v803'
-  x = (x + v803);
-           ^
-hlsl.hlsl:807:12: error: use of undeclared identifier 'v804'
-  x = (x + v804);
-           ^
-hlsl.hlsl:808:12: error: use of undeclared identifier 'v805'
-  x = (x + v805);
-           ^
-hlsl.hlsl:809:12: error: use of undeclared identifier 'v806'
-  x = (x + v806);
-           ^
-hlsl.hlsl:810:12: error: use of undeclared identifier 'v807'
-  x = (x + v807);
-           ^
-hlsl.hlsl:811:12: error: use of undeclared identifier 'v808'
-  x = (x + v808);
-           ^
-hlsl.hlsl:812:12: error: use of undeclared identifier 'v809'
-  x = (x + v809);
-           ^
-hlsl.hlsl:813:12: error: use of undeclared identifier 'v810'
-  x = (x + v810);
-           ^
-hlsl.hlsl:814:12: error: use of undeclared identifier 'v811'
-  x = (x + v811);
-           ^
-hlsl.hlsl:815:12: error: use of undeclared identifier 'v812'
-  x = (x + v812);
-           ^
-hlsl.hlsl:816:12: error: use of undeclared identifier 'v813'
-  x = (x + v813);
-           ^
-hlsl.hlsl:817:12: error: use of undeclared identifier 'v814'
-  x = (x + v814);
-           ^
-hlsl.hlsl:818:12: error: use of undeclared identifier 'v815'
-  x = (x + v815);
-           ^
-hlsl.hlsl:819:12: error: use of undeclared identifier 'v816'
-  x = (x + v816);
-           ^
-hlsl.hlsl:820:12: error: use of undeclared identifier 'v817'
-  x = (x + v817);
-           ^
-hlsl.hlsl:821:12: error: use of undeclared identifier 'v818'
-  x = (x + v818);
-           ^
-hlsl.hlsl:822:12: error: use of undeclared identifier 'v819'
-  x = (x + v819);
-           ^
-hlsl.hlsl:823:12: error: use of undeclared identifier 'v820'
-  x = (x + v820);
-           ^
-hlsl.hlsl:824:12: error: use of undeclared identifier 'v821'
-  x = (x + v821);
-           ^
-hlsl.hlsl:825:12: error: use of undeclared identifier 'v822'
-  x = (x + v822);
-           ^
-hlsl.hlsl:826:12: error: use of undeclared identifier 'v823'
-  x = (x + v823);
-           ^
-hlsl.hlsl:827:12: error: use of undeclared identifier 'v824'
-  x = (x + v824);
-           ^
-hlsl.hlsl:828:12: error: use of undeclared identifier 'v825'
-  x = (x + v825);
-           ^
-hlsl.hlsl:829:12: error: use of undeclared identifier 'v826'
-  x = (x + v826);
-           ^
-hlsl.hlsl:830:12: error: use of undeclared identifier 'v827'
-  x = (x + v827);
-           ^
-hlsl.hlsl:831:12: error: use of undeclared identifier 'v828'
-  x = (x + v828);
-           ^
-hlsl.hlsl:832:12: error: use of undeclared identifier 'v829'
-  x = (x + v829);
-           ^
-hlsl.hlsl:833:12: error: use of undeclared identifier 'v830'
-  x = (x + v830);
-           ^
-hlsl.hlsl:834:12: error: use of undeclared identifier 'v831'
-  x = (x + v831);
-           ^
-hlsl.hlsl:835:12: error: use of undeclared identifier 'v832'
-  x = (x + v832);
-           ^
-hlsl.hlsl:836:12: error: use of undeclared identifier 'v833'
-  x = (x + v833);
-           ^
-hlsl.hlsl:837:12: error: use of undeclared identifier 'v834'
-  x = (x + v834);
-           ^
-hlsl.hlsl:838:12: error: use of undeclared identifier 'v835'
-  x = (x + v835);
-           ^
-hlsl.hlsl:839:12: error: use of undeclared identifier 'v836'
-  x = (x + v836);
-           ^
-hlsl.hlsl:840:12: error: use of undeclared identifier 'v837'
-  x = (x + v837);
-           ^
-hlsl.hlsl:841:12: error: use of undeclared identifier 'v838'
-  x = (x + v838);
-           ^
-hlsl.hlsl:842:12: error: use of undeclared identifier 'v839'
-  x = (x + v839);
-           ^
-hlsl.hlsl:843:12: error: use of undeclared identifier 'v840'
-  x = (x + v840);
-           ^
-hlsl.hlsl:844:12: error: use of undeclared identifier 'v841'
-  x = (x + v841);
-           ^
-hlsl.hlsl:845:12: error: use of undeclared identifier 'v842'
-  x = (x + v842);
-           ^
-hlsl.hlsl:846:12: error: use of undeclared identifier 'v843'
-  x = (x + v843);
-           ^
-hlsl.hlsl:847:12: error: use of undeclared identifier 'v844'
-  x = (x + v844);
-           ^
-hlsl.hlsl:848:12: error: use of undeclared identifier 'v845'
-  x = (x + v845);
-           ^
-hlsl.hlsl:849:12: error: use of undeclared identifier 'v846'
-  x = (x + v846);
-           ^
-hlsl.hlsl:850:12: error: use of undeclared identifier 'v847'
-  x = (x + v847);
-           ^
-hlsl.hlsl:851:12: error: use of undeclared identifier 'v848'
-  x = (x + v848);
-           ^
-hlsl.hlsl:852:12: error: use of undeclared identifier 'v849'
-  x = (x + v849);
-           ^
-hlsl.hlsl:853:12: error: use of undeclared identifier 'v850'
-  x = (x + v850);
-           ^
-hlsl.hlsl:854:12: error: use of undeclared identifier 'v851'
-  x = (x + v851);
-           ^
-hlsl.hlsl:855:12: error: use of undeclared identifier 'v852'
-  x = (x + v852);
-           ^
-hlsl.hlsl:856:12: error: use of undeclared identifier 'v853'
-  x = (x + v853);
-           ^
-hlsl.hlsl:857:12: error: use of undeclared identifier 'v854'
-  x = (x + v854);
-           ^
-hlsl.hlsl:858:12: error: use of undeclared identifier 'v855'
-  x = (x + v855);
-           ^
-hlsl.hlsl:859:12: error: use of undeclared identifier 'v856'
-  x = (x + v856);
-           ^
-hlsl.hlsl:860:12: error: use of undeclared identifier 'v857'
-  x = (x + v857);
-           ^
-hlsl.hlsl:861:12: error: use of undeclared identifier 'v858'
-  x = (x + v858);
-           ^
-hlsl.hlsl:862:12: error: use of undeclared identifier 'v859'
-  x = (x + v859);
-           ^
-hlsl.hlsl:863:12: error: use of undeclared identifier 'v860'
-  x = (x + v860);
-           ^
-hlsl.hlsl:864:12: error: use of undeclared identifier 'v861'
-  x = (x + v861);
-           ^
-hlsl.hlsl:865:12: error: use of undeclared identifier 'v862'
-  x = (x + v862);
-           ^
-hlsl.hlsl:866:12: error: use of undeclared identifier 'v863'
-  x = (x + v863);
-           ^
-hlsl.hlsl:867:12: error: use of undeclared identifier 'v864'
-  x = (x + v864);
-           ^
-hlsl.hlsl:868:12: error: use of undeclared identifier 'v865'
-  x = (x + v865);
-           ^
-hlsl.hlsl:869:12: error: use of undeclared identifier 'v866'
-  x = (x + v866);
-           ^
-hlsl.hlsl:870:12: error: use of undeclared identifier 'v867'
-  x = (x + v867);
-           ^
-hlsl.hlsl:871:12: error: use of undeclared identifier 'v868'
-  x = (x + v868);
-           ^
-hlsl.hlsl:872:12: error: use of undeclared identifier 'v869'
-  x = (x + v869);
-           ^
-hlsl.hlsl:873:12: error: use of undeclared identifier 'v870'
-  x = (x + v870);
-           ^
-hlsl.hlsl:874:12: error: use of undeclared identifier 'v871'
-  x = (x + v871);
-           ^
-hlsl.hlsl:875:12: error: use of undeclared identifier 'v872'
-  x = (x + v872);
-           ^
-hlsl.hlsl:876:12: error: use of undeclared identifier 'v873'
-  x = (x + v873);
-           ^
-hlsl.hlsl:877:12: error: use of undeclared identifier 'v874'
-  x = (x + v874);
-           ^
-hlsl.hlsl:878:12: error: use of undeclared identifier 'v875'
-  x = (x + v875);
-           ^
-hlsl.hlsl:879:12: error: use of undeclared identifier 'v876'
-  x = (x + v876);
-           ^
-hlsl.hlsl:880:12: error: use of undeclared identifier 'v877'
-  x = (x + v877);
-           ^
-hlsl.hlsl:881:12: error: use of undeclared identifier 'v878'
-  x = (x + v878);
-           ^
-hlsl.hlsl:882:12: error: use of undeclared identifier 'v879'
-  x = (x + v879);
-           ^
-hlsl.hlsl:883:12: error: use of undeclared identifier 'v880'
-  x = (x + v880);
-           ^
-hlsl.hlsl:884:12: error: use of undeclared identifier 'v881'
-  x = (x + v881);
-           ^
-hlsl.hlsl:885:12: error: use of undeclared identifier 'v882'
-  x = (x + v882);
-           ^
-hlsl.hlsl:886:12: error: use of undeclared identifier 'v883'
-  x = (x + v883);
-           ^
-hlsl.hlsl:887:12: error: use of undeclared identifier 'v884'
-  x = (x + v884);
-           ^
-hlsl.hlsl:888:12: error: use of undeclared identifier 'v885'
-  x = (x + v885);
-           ^
-hlsl.hlsl:889:12: error: use of undeclared identifier 'v886'
-  x = (x + v886);
-           ^
-hlsl.hlsl:890:12: error: use of undeclared identifier 'v887'
-  x = (x + v887);
-           ^
-hlsl.hlsl:891:12: error: use of undeclared identifier 'v888'
-  x = (x + v888);
-           ^
-hlsl.hlsl:892:12: error: use of undeclared identifier 'v889'
-  x = (x + v889);
-           ^
-hlsl.hlsl:893:12: error: use of undeclared identifier 'v890'
-  x = (x + v890);
-           ^
-hlsl.hlsl:894:12: error: use of undeclared identifier 'v891'
-  x = (x + v891);
-           ^
-hlsl.hlsl:895:12: error: use of undeclared identifier 'v892'
-  x = (x + v892);
-           ^
-hlsl.hlsl:896:12: error: use of undeclared identifier 'v893'
-  x = (x + v893);
-           ^
-hlsl.hlsl:897:12: error: use of undeclared identifier 'v894'
-  x = (x + v894);
-           ^
-hlsl.hlsl:898:12: error: use of undeclared identifier 'v895'
-  x = (x + v895);
-           ^
-hlsl.hlsl:899:12: error: use of undeclared identifier 'v896'
-  x = (x + v896);
-           ^
-hlsl.hlsl:900:12: error: use of undeclared identifier 'v897'
-  x = (x + v897);
-           ^
-hlsl.hlsl:901:12: error: use of undeclared identifier 'v898'
-  x = (x + v898);
-           ^
-hlsl.hlsl:902:12: error: use of undeclared identifier 'v899'
-  x = (x + v899);
-           ^
-hlsl.hlsl:903:12: error: use of undeclared identifier 'v900'
-  x = (x + v900);
-           ^
-hlsl.hlsl:904:12: error: use of undeclared identifier 'v901'
-  x = (x + v901);
-           ^
-hlsl.hlsl:905:12: error: use of undeclared identifier 'v902'
-  x = (x + v902);
-           ^
-hlsl.hlsl:906:12: error: use of undeclared identifier 'v903'
-  x = (x + v903);
-           ^
-hlsl.hlsl:907:12: error: use of undeclared identifier 'v904'
-  x = (x + v904);
-           ^
-hlsl.hlsl:908:12: error: use of undeclared identifier 'v905'
-  x = (x + v905);
-           ^
-hlsl.hlsl:909:12: error: use of undeclared identifier 'v906'
-  x = (x + v906);
-           ^
-hlsl.hlsl:910:12: error: use of undeclared identifier 'v907'
-  x = (x + v907);
-           ^
-hlsl.hlsl:911:12: error: use of undeclared identifier 'v908'
-  x = (x + v908);
-           ^
-hlsl.hlsl:912:12: error: use of undeclared identifier 'v909'
-  x = (x + v909);
-           ^
-hlsl.hlsl:913:12: error: use of undeclared identifier 'v910'
-  x = (x + v910);
-           ^
-hlsl.hlsl:914:12: error: use of undeclared identifier 'v911'
-  x = (x + v911);
-           ^
-hlsl.hlsl:915:12: error: use of undeclared identifier 'v912'
-  x = (x + v912);
-           ^
-hlsl.hlsl:916:12: error: use of undeclared identifier 'v913'
-  x = (x + v913);
-           ^
-hlsl.hlsl:917:12: error: use of undeclared identifier 'v914'
-  x = (x + v914);
-           ^
-hlsl.hlsl:918:12: error: use of undeclared identifier 'v915'
-  x = (x + v915);
-           ^
-hlsl.hlsl:919:12: error: use of undeclared identifier 'v916'
-  x = (x + v916);
-           ^
-hlsl.hlsl:920:12: error: use of undeclared identifier 'v917'
-  x = (x + v917);
-           ^
-hlsl.hlsl:921:12: error: use of undeclared identifier 'v918'
-  x = (x + v918);
-           ^
-hlsl.hlsl:922:12: error: use of undeclared identifier 'v919'
-  x = (x + v919);
-           ^
-hlsl.hlsl:923:12: error: use of undeclared identifier 'v920'
-  x = (x + v920);
-           ^
-hlsl.hlsl:924:12: error: use of undeclared identifier 'v921'
-  x = (x + v921);
-           ^
-hlsl.hlsl:925:12: error: use of undeclared identifier 'v922'
-  x = (x + v922);
-           ^
-hlsl.hlsl:926:12: error: use of undeclared identifier 'v923'
-  x = (x + v923);
-           ^
-hlsl.hlsl:927:12: error: use of undeclared identifier 'v924'
-  x = (x + v924);
-           ^
-hlsl.hlsl:928:12: error: use of undeclared identifier 'v925'
-  x = (x + v925);
-           ^
-hlsl.hlsl:929:12: error: use of undeclared identifier 'v926'
-  x = (x + v926);
-           ^
-hlsl.hlsl:930:12: error: use of undeclared identifier 'v927'
-  x = (x + v927);
-           ^
-hlsl.hlsl:931:12: error: use of undeclared identifier 'v928'
-  x = (x + v928);
-           ^
-hlsl.hlsl:932:12: error: use of undeclared identifier 'v929'
-  x = (x + v929);
-           ^
-hlsl.hlsl:933:12: error: use of undeclared identifier 'v930'
-  x = (x + v930);
-           ^
-hlsl.hlsl:934:12: error: use of undeclared identifier 'v931'
-  x = (x + v931);
-           ^
-hlsl.hlsl:935:12: error: use of undeclared identifier 'v932'
-  x = (x + v932);
-           ^
-hlsl.hlsl:936:12: error: use of undeclared identifier 'v933'
-  x = (x + v933);
-           ^
-hlsl.hlsl:937:12: error: use of undeclared identifier 'v934'
-  x = (x + v934);
-           ^
-hlsl.hlsl:938:12: error: use of undeclared identifier 'v935'
-  x = (x + v935);
-           ^
-hlsl.hlsl:939:12: error: use of undeclared identifier 'v936'
-  x = (x + v936);
-           ^
-hlsl.hlsl:940:12: error: use of undeclared identifier 'v937'
-  x = (x + v937);
-           ^
-hlsl.hlsl:941:12: error: use of undeclared identifier 'v938'
-  x = (x + v938);
-           ^
-hlsl.hlsl:942:12: error: use of undeclared identifier 'v939'
-  x = (x + v939);
-           ^
-hlsl.hlsl:943:12: error: use of undeclared identifier 'v940'
-  x = (x + v940);
-           ^
-hlsl.hlsl:944:12: error: use of undeclared identifier 'v941'
-  x = (x + v941);
-           ^
-hlsl.hlsl:945:12: error: use of undeclared identifier 'v942'
-  x = (x + v942);
-           ^
-hlsl.hlsl:946:12: error: use of undeclared identifier 'v943'
-  x = (x + v943);
-           ^
-hlsl.hlsl:947:12: error: use of undeclared identifier 'v944'
-  x = (x + v944);
-           ^
-hlsl.hlsl:948:12: error: use of undeclared identifier 'v945'
-  x = (x + v945);
-           ^
-hlsl.hlsl:949:12: error: use of undeclared identifier 'v946'
-  x = (x + v946);
-           ^
-hlsl.hlsl:950:12: error: use of undeclared identifier 'v947'
-  x = (x + v947);
-           ^
-hlsl.hlsl:951:12: error: use of undeclared identifier 'v948'
-  x = (x + v948);
-           ^
-hlsl.hlsl:952:12: error: use of undeclared identifier 'v949'
-  x = (x + v949);
-           ^
-hlsl.hlsl:953:12: error: use of undeclared identifier 'v950'
-  x = (x + v950);
-           ^
-hlsl.hlsl:954:12: error: use of undeclared identifier 'v951'
-  x = (x + v951);
-           ^
-hlsl.hlsl:955:12: error: use of undeclared identifier 'v952'
-  x = (x + v952);
-           ^
-hlsl.hlsl:956:12: error: use of undeclared identifier 'v953'
-  x = (x + v953);
-           ^
-hlsl.hlsl:957:12: error: use of undeclared identifier 'v954'
-  x = (x + v954);
-           ^
-hlsl.hlsl:958:12: error: use of undeclared identifier 'v955'
-  x = (x + v955);
-           ^
-hlsl.hlsl:959:12: error: use of undeclared identifier 'v956'
-  x = (x + v956);
-           ^
-hlsl.hlsl:960:12: error: use of undeclared identifier 'v957'
-  x = (x + v957);
-           ^
-hlsl.hlsl:961:12: error: use of undeclared identifier 'v958'
-  x = (x + v958);
-           ^
-hlsl.hlsl:962:12: error: use of undeclared identifier 'v959'
-  x = (x + v959);
-           ^
-hlsl.hlsl:963:12: error: use of undeclared identifier 'v960'
-  x = (x + v960);
-           ^
-hlsl.hlsl:964:12: error: use of undeclared identifier 'v961'
-  x = (x + v961);
-           ^
-hlsl.hlsl:965:12: error: use of undeclared identifier 'v962'
-  x = (x + v962);
-           ^
-hlsl.hlsl:966:12: error: use of undeclared identifier 'v963'
-  x = (x + v963);
-           ^
-hlsl.hlsl:967:12: error: use of undeclared identifier 'v964'
-  x = (x + v964);
-           ^
-hlsl.hlsl:968:12: error: use of undeclared identifier 'v965'
-  x = (x + v965);
-           ^
-hlsl.hlsl:969:12: error: use of undeclared identifier 'v966'
-  x = (x + v966);
-           ^
-hlsl.hlsl:970:12: error: use of undeclared identifier 'v967'
-  x = (x + v967);
-           ^
-hlsl.hlsl:971:12: error: use of undeclared identifier 'v968'
-  x = (x + v968);
-           ^
-hlsl.hlsl:972:12: error: use of undeclared identifier 'v969'
-  x = (x + v969);
-           ^
-hlsl.hlsl:973:12: error: use of undeclared identifier 'v970'
-  x = (x + v970);
-           ^
-hlsl.hlsl:974:12: error: use of undeclared identifier 'v971'
-  x = (x + v971);
-           ^
-hlsl.hlsl:975:12: error: use of undeclared identifier 'v972'
-  x = (x + v972);
-           ^
-hlsl.hlsl:976:12: error: use of undeclared identifier 'v973'
-  x = (x + v973);
-           ^
-hlsl.hlsl:977:12: error: use of undeclared identifier 'v974'
-  x = (x + v974);
-           ^
-hlsl.hlsl:978:12: error: use of undeclared identifier 'v975'
-  x = (x + v975);
-           ^
-hlsl.hlsl:979:12: error: use of undeclared identifier 'v976'
-  x = (x + v976);
-           ^
-hlsl.hlsl:980:12: error: use of undeclared identifier 'v977'
-  x = (x + v977);
-           ^
-hlsl.hlsl:981:12: error: use of undeclared identifier 'v978'
-  x = (x + v978);
-           ^
-hlsl.hlsl:982:12: error: use of undeclared identifier 'v979'
-  x = (x + v979);
-           ^
-hlsl.hlsl:983:12: error: use of undeclared identifier 'v980'
-  x = (x + v980);
-           ^
-hlsl.hlsl:984:12: error: use of undeclared identifier 'v981'
-  x = (x + v981);
-           ^
-hlsl.hlsl:985:12: error: use of undeclared identifier 'v982'
-  x = (x + v982);
-           ^
-hlsl.hlsl:986:12: error: use of undeclared identifier 'v983'
-  x = (x + v983);
-           ^
-hlsl.hlsl:987:12: error: use of undeclared identifier 'v984'
-  x = (x + v984);
-           ^
-hlsl.hlsl:988:12: error: use of undeclared identifier 'v985'
-  x = (x + v985);
-           ^
-hlsl.hlsl:989:12: error: use of undeclared identifier 'v986'
-  x = (x + v986);
-           ^
-hlsl.hlsl:990:12: error: use of undeclared identifier 'v987'
-  x = (x + v987);
-           ^
-hlsl.hlsl:991:12: error: use of undeclared identifier 'v988'
-  x = (x + v988);
-           ^
-hlsl.hlsl:992:12: error: use of undeclared identifier 'v989'
-  x = (x + v989);
-           ^
-hlsl.hlsl:993:12: error: use of undeclared identifier 'v990'
-  x = (x + v990);
-           ^
-hlsl.hlsl:994:12: error: use of undeclared identifier 'v991'
-  x = (x + v991);
-           ^
-hlsl.hlsl:995:12: error: use of undeclared identifier 'v992'
-  x = (x + v992);
-           ^
-hlsl.hlsl:996:12: error: use of undeclared identifier 'v993'
-  x = (x + v993);
-           ^
-hlsl.hlsl:997:12: error: use of undeclared identifier 'v994'
-  x = (x + v994);
-           ^
-hlsl.hlsl:998:12: error: use of undeclared identifier 'v995'
-  x = (x + v995);
-           ^
-hlsl.hlsl:999:12: error: use of undeclared identifier 'v996'
-  x = (x + v996);
-           ^
-hlsl.hlsl:1000:12: error: use of undeclared identifier 'v997'
-  x = (x + v997);
-           ^
-hlsl.hlsl:1001:12: error: use of undeclared identifier 'v998'
-  x = (x + v998);
-           ^
-hlsl.hlsl:1002:12: error: use of undeclared identifier 'v999'
-  x = (x + v999);
-           ^
+main_outputs main() {
+  main_outputs v = {main_inner()};
+  return v;
+}
 
diff --git a/test/tint/bug/tint/1509.wgsl.expected.ir.fxc.hlsl b/test/tint/bug/tint/1509.wgsl.expected.ir.fxc.hlsl
index 05adfab..fee2e8a 100644
--- a/test/tint/bug/tint/1509.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/bug/tint/1509.wgsl.expected.ir.fxc.hlsl
@@ -1,5 +1,1008 @@
-SKIP: FAILED
+struct main_outputs {
+  uint tint_symbol : SV_Target0;
+};
 
+
+static uint v0 = 0u;
+static uint v1 = 0u;
+static uint v2 = 0u;
+static uint v3 = 0u;
+static uint v4 = 0u;
+static uint v5 = 0u;
+static uint v6 = 0u;
+static uint v7 = 0u;
+static uint v8 = 0u;
+static uint v9 = 0u;
+static uint v10 = 0u;
+static uint v11 = 0u;
+static uint v12 = 0u;
+static uint v13 = 0u;
+static uint v14 = 0u;
+static uint v15 = 0u;
+static uint v16 = 0u;
+static uint v17 = 0u;
+static uint v18 = 0u;
+static uint v19 = 0u;
+static uint v20 = 0u;
+static uint v21 = 0u;
+static uint v22 = 0u;
+static uint v23 = 0u;
+static uint v24 = 0u;
+static uint v25 = 0u;
+static uint v26 = 0u;
+static uint v27 = 0u;
+static uint v28 = 0u;
+static uint v29 = 0u;
+static uint v30 = 0u;
+static uint v31 = 0u;
+static uint v32 = 0u;
+static uint v33 = 0u;
+static uint v34 = 0u;
+static uint v35 = 0u;
+static uint v36 = 0u;
+static uint v37 = 0u;
+static uint v38 = 0u;
+static uint v39 = 0u;
+static uint v40 = 0u;
+static uint v41 = 0u;
+static uint v42 = 0u;
+static uint v43 = 0u;
+static uint v44 = 0u;
+static uint v45 = 0u;
+static uint v46 = 0u;
+static uint v47 = 0u;
+static uint v48 = 0u;
+static uint v49 = 0u;
+static uint v50 = 0u;
+static uint v51 = 0u;
+static uint v52 = 0u;
+static uint v53 = 0u;
+static uint v54 = 0u;
+static uint v55 = 0u;
+static uint v56 = 0u;
+static uint v57 = 0u;
+static uint v58 = 0u;
+static uint v59 = 0u;
+static uint v60 = 0u;
+static uint v61 = 0u;
+static uint v62 = 0u;
+static uint v63 = 0u;
+static uint v64 = 0u;
+static uint v65 = 0u;
+static uint v66 = 0u;
+static uint v67 = 0u;
+static uint v68 = 0u;
+static uint v69 = 0u;
+static uint v70 = 0u;
+static uint v71 = 0u;
+static uint v72 = 0u;
+static uint v73 = 0u;
+static uint v74 = 0u;
+static uint v75 = 0u;
+static uint v76 = 0u;
+static uint v77 = 0u;
+static uint v78 = 0u;
+static uint v79 = 0u;
+static uint v80 = 0u;
+static uint v81 = 0u;
+static uint v82 = 0u;
+static uint v83 = 0u;
+static uint v84 = 0u;
+static uint v85 = 0u;
+static uint v86 = 0u;
+static uint v87 = 0u;
+static uint v88 = 0u;
+static uint v89 = 0u;
+static uint v90 = 0u;
+static uint v91 = 0u;
+static uint v92 = 0u;
+static uint v93 = 0u;
+static uint v94 = 0u;
+static uint v95 = 0u;
+static uint v96 = 0u;
+static uint v97 = 0u;
+static uint v98 = 0u;
+static uint v99 = 0u;
+static uint v100 = 0u;
+static uint v101 = 0u;
+static uint v102 = 0u;
+static uint v103 = 0u;
+static uint v104 = 0u;
+static uint v105 = 0u;
+static uint v106 = 0u;
+static uint v107 = 0u;
+static uint v108 = 0u;
+static uint v109 = 0u;
+static uint v110 = 0u;
+static uint v111 = 0u;
+static uint v112 = 0u;
+static uint v113 = 0u;
+static uint v114 = 0u;
+static uint v115 = 0u;
+static uint v116 = 0u;
+static uint v117 = 0u;
+static uint v118 = 0u;
+static uint v119 = 0u;
+static uint v120 = 0u;
+static uint v121 = 0u;
+static uint v122 = 0u;
+static uint v123 = 0u;
+static uint v124 = 0u;
+static uint v125 = 0u;
+static uint v126 = 0u;
+static uint v127 = 0u;
+static uint v128 = 0u;
+static uint v129 = 0u;
+static uint v130 = 0u;
+static uint v131 = 0u;
+static uint v132 = 0u;
+static uint v133 = 0u;
+static uint v134 = 0u;
+static uint v135 = 0u;
+static uint v136 = 0u;
+static uint v137 = 0u;
+static uint v138 = 0u;
+static uint v139 = 0u;
+static uint v140 = 0u;
+static uint v141 = 0u;
+static uint v142 = 0u;
+static uint v143 = 0u;
+static uint v144 = 0u;
+static uint v145 = 0u;
+static uint v146 = 0u;
+static uint v147 = 0u;
+static uint v148 = 0u;
+static uint v149 = 0u;
+static uint v150 = 0u;
+static uint v151 = 0u;
+static uint v152 = 0u;
+static uint v153 = 0u;
+static uint v154 = 0u;
+static uint v155 = 0u;
+static uint v156 = 0u;
+static uint v157 = 0u;
+static uint v158 = 0u;
+static uint v159 = 0u;
+static uint v160 = 0u;
+static uint v161 = 0u;
+static uint v162 = 0u;
+static uint v163 = 0u;
+static uint v164 = 0u;
+static uint v165 = 0u;
+static uint v166 = 0u;
+static uint v167 = 0u;
+static uint v168 = 0u;
+static uint v169 = 0u;
+static uint v170 = 0u;
+static uint v171 = 0u;
+static uint v172 = 0u;
+static uint v173 = 0u;
+static uint v174 = 0u;
+static uint v175 = 0u;
+static uint v176 = 0u;
+static uint v177 = 0u;
+static uint v178 = 0u;
+static uint v179 = 0u;
+static uint v180 = 0u;
+static uint v181 = 0u;
+static uint v182 = 0u;
+static uint v183 = 0u;
+static uint v184 = 0u;
+static uint v185 = 0u;
+static uint v186 = 0u;
+static uint v187 = 0u;
+static uint v188 = 0u;
+static uint v189 = 0u;
+static uint v190 = 0u;
+static uint v191 = 0u;
+static uint v192 = 0u;
+static uint v193 = 0u;
+static uint v194 = 0u;
+static uint v195 = 0u;
+static uint v196 = 0u;
+static uint v197 = 0u;
+static uint v198 = 0u;
+static uint v199 = 0u;
+static uint v200 = 0u;
+static uint v201 = 0u;
+static uint v202 = 0u;
+static uint v203 = 0u;
+static uint v204 = 0u;
+static uint v205 = 0u;
+static uint v206 = 0u;
+static uint v207 = 0u;
+static uint v208 = 0u;
+static uint v209 = 0u;
+static uint v210 = 0u;
+static uint v211 = 0u;
+static uint v212 = 0u;
+static uint v213 = 0u;
+static uint v214 = 0u;
+static uint v215 = 0u;
+static uint v216 = 0u;
+static uint v217 = 0u;
+static uint v218 = 0u;
+static uint v219 = 0u;
+static uint v220 = 0u;
+static uint v221 = 0u;
+static uint v222 = 0u;
+static uint v223 = 0u;
+static uint v224 = 0u;
+static uint v225 = 0u;
+static uint v226 = 0u;
+static uint v227 = 0u;
+static uint v228 = 0u;
+static uint v229 = 0u;
+static uint v230 = 0u;
+static uint v231 = 0u;
+static uint v232 = 0u;
+static uint v233 = 0u;
+static uint v234 = 0u;
+static uint v235 = 0u;
+static uint v236 = 0u;
+static uint v237 = 0u;
+static uint v238 = 0u;
+static uint v239 = 0u;
+static uint v240 = 0u;
+static uint v241 = 0u;
+static uint v242 = 0u;
+static uint v243 = 0u;
+static uint v244 = 0u;
+static uint v245 = 0u;
+static uint v246 = 0u;
+static uint v247 = 0u;
+static uint v248 = 0u;
+static uint v249 = 0u;
+static uint v250 = 0u;
+static uint v251 = 0u;
+static uint v252 = 0u;
+static uint v253 = 0u;
+static uint v254 = 0u;
+static uint v255 = 0u;
+static uint v256 = 0u;
+static uint v257 = 0u;
+static uint v258 = 0u;
+static uint v259 = 0u;
+static uint v260 = 0u;
+static uint v261 = 0u;
+static uint v262 = 0u;
+static uint v263 = 0u;
+static uint v264 = 0u;
+static uint v265 = 0u;
+static uint v266 = 0u;
+static uint v267 = 0u;
+static uint v268 = 0u;
+static uint v269 = 0u;
+static uint v270 = 0u;
+static uint v271 = 0u;
+static uint v272 = 0u;
+static uint v273 = 0u;
+static uint v274 = 0u;
+static uint v275 = 0u;
+static uint v276 = 0u;
+static uint v277 = 0u;
+static uint v278 = 0u;
+static uint v279 = 0u;
+static uint v280 = 0u;
+static uint v281 = 0u;
+static uint v282 = 0u;
+static uint v283 = 0u;
+static uint v284 = 0u;
+static uint v285 = 0u;
+static uint v286 = 0u;
+static uint v287 = 0u;
+static uint v288 = 0u;
+static uint v289 = 0u;
+static uint v290 = 0u;
+static uint v291 = 0u;
+static uint v292 = 0u;
+static uint v293 = 0u;
+static uint v294 = 0u;
+static uint v295 = 0u;
+static uint v296 = 0u;
+static uint v297 = 0u;
+static uint v298 = 0u;
+static uint v299 = 0u;
+static uint v300 = 0u;
+static uint v301 = 0u;
+static uint v302 = 0u;
+static uint v303 = 0u;
+static uint v304 = 0u;
+static uint v305 = 0u;
+static uint v306 = 0u;
+static uint v307 = 0u;
+static uint v308 = 0u;
+static uint v309 = 0u;
+static uint v310 = 0u;
+static uint v311 = 0u;
+static uint v312 = 0u;
+static uint v313 = 0u;
+static uint v314 = 0u;
+static uint v315 = 0u;
+static uint v316 = 0u;
+static uint v317 = 0u;
+static uint v318 = 0u;
+static uint v319 = 0u;
+static uint v320 = 0u;
+static uint v321 = 0u;
+static uint v322 = 0u;
+static uint v323 = 0u;
+static uint v324 = 0u;
+static uint v325 = 0u;
+static uint v326 = 0u;
+static uint v327 = 0u;
+static uint v328 = 0u;
+static uint v329 = 0u;
+static uint v330 = 0u;
+static uint v331 = 0u;
+static uint v332 = 0u;
+static uint v333 = 0u;
+static uint v334 = 0u;
+static uint v335 = 0u;
+static uint v336 = 0u;
+static uint v337 = 0u;
+static uint v338 = 0u;
+static uint v339 = 0u;
+static uint v340 = 0u;
+static uint v341 = 0u;
+static uint v342 = 0u;
+static uint v343 = 0u;
+static uint v344 = 0u;
+static uint v345 = 0u;
+static uint v346 = 0u;
+static uint v347 = 0u;
+static uint v348 = 0u;
+static uint v349 = 0u;
+static uint v350 = 0u;
+static uint v351 = 0u;
+static uint v352 = 0u;
+static uint v353 = 0u;
+static uint v354 = 0u;
+static uint v355 = 0u;
+static uint v356 = 0u;
+static uint v357 = 0u;
+static uint v358 = 0u;
+static uint v359 = 0u;
+static uint v360 = 0u;
+static uint v361 = 0u;
+static uint v362 = 0u;
+static uint v363 = 0u;
+static uint v364 = 0u;
+static uint v365 = 0u;
+static uint v366 = 0u;
+static uint v367 = 0u;
+static uint v368 = 0u;
+static uint v369 = 0u;
+static uint v370 = 0u;
+static uint v371 = 0u;
+static uint v372 = 0u;
+static uint v373 = 0u;
+static uint v374 = 0u;
+static uint v375 = 0u;
+static uint v376 = 0u;
+static uint v377 = 0u;
+static uint v378 = 0u;
+static uint v379 = 0u;
+static uint v380 = 0u;
+static uint v381 = 0u;
+static uint v382 = 0u;
+static uint v383 = 0u;
+static uint v384 = 0u;
+static uint v385 = 0u;
+static uint v386 = 0u;
+static uint v387 = 0u;
+static uint v388 = 0u;
+static uint v389 = 0u;
+static uint v390 = 0u;
+static uint v391 = 0u;
+static uint v392 = 0u;
+static uint v393 = 0u;
+static uint v394 = 0u;
+static uint v395 = 0u;
+static uint v396 = 0u;
+static uint v397 = 0u;
+static uint v398 = 0u;
+static uint v399 = 0u;
+static uint v400 = 0u;
+static uint v401 = 0u;
+static uint v402 = 0u;
+static uint v403 = 0u;
+static uint v404 = 0u;
+static uint v405 = 0u;
+static uint v406 = 0u;
+static uint v407 = 0u;
+static uint v408 = 0u;
+static uint v409 = 0u;
+static uint v410 = 0u;
+static uint v411 = 0u;
+static uint v412 = 0u;
+static uint v413 = 0u;
+static uint v414 = 0u;
+static uint v415 = 0u;
+static uint v416 = 0u;
+static uint v417 = 0u;
+static uint v418 = 0u;
+static uint v419 = 0u;
+static uint v420 = 0u;
+static uint v421 = 0u;
+static uint v422 = 0u;
+static uint v423 = 0u;
+static uint v424 = 0u;
+static uint v425 = 0u;
+static uint v426 = 0u;
+static uint v427 = 0u;
+static uint v428 = 0u;
+static uint v429 = 0u;
+static uint v430 = 0u;
+static uint v431 = 0u;
+static uint v432 = 0u;
+static uint v433 = 0u;
+static uint v434 = 0u;
+static uint v435 = 0u;
+static uint v436 = 0u;
+static uint v437 = 0u;
+static uint v438 = 0u;
+static uint v439 = 0u;
+static uint v440 = 0u;
+static uint v441 = 0u;
+static uint v442 = 0u;
+static uint v443 = 0u;
+static uint v444 = 0u;
+static uint v445 = 0u;
+static uint v446 = 0u;
+static uint v447 = 0u;
+static uint v448 = 0u;
+static uint v449 = 0u;
+static uint v450 = 0u;
+static uint v451 = 0u;
+static uint v452 = 0u;
+static uint v453 = 0u;
+static uint v454 = 0u;
+static uint v455 = 0u;
+static uint v456 = 0u;
+static uint v457 = 0u;
+static uint v458 = 0u;
+static uint v459 = 0u;
+static uint v460 = 0u;
+static uint v461 = 0u;
+static uint v462 = 0u;
+static uint v463 = 0u;
+static uint v464 = 0u;
+static uint v465 = 0u;
+static uint v466 = 0u;
+static uint v467 = 0u;
+static uint v468 = 0u;
+static uint v469 = 0u;
+static uint v470 = 0u;
+static uint v471 = 0u;
+static uint v472 = 0u;
+static uint v473 = 0u;
+static uint v474 = 0u;
+static uint v475 = 0u;
+static uint v476 = 0u;
+static uint v477 = 0u;
+static uint v478 = 0u;
+static uint v479 = 0u;
+static uint v480 = 0u;
+static uint v481 = 0u;
+static uint v482 = 0u;
+static uint v483 = 0u;
+static uint v484 = 0u;
+static uint v485 = 0u;
+static uint v486 = 0u;
+static uint v487 = 0u;
+static uint v488 = 0u;
+static uint v489 = 0u;
+static uint v490 = 0u;
+static uint v491 = 0u;
+static uint v492 = 0u;
+static uint v493 = 0u;
+static uint v494 = 0u;
+static uint v495 = 0u;
+static uint v496 = 0u;
+static uint v497 = 0u;
+static uint v498 = 0u;
+static uint v499 = 0u;
+static uint v500 = 0u;
+static uint v501 = 0u;
+static uint v502 = 0u;
+static uint v503 = 0u;
+static uint v504 = 0u;
+static uint v505 = 0u;
+static uint v506 = 0u;
+static uint v507 = 0u;
+static uint v508 = 0u;
+static uint v509 = 0u;
+static uint v510 = 0u;
+static uint v511 = 0u;
+static uint v512 = 0u;
+static uint v513 = 0u;
+static uint v514 = 0u;
+static uint v515 = 0u;
+static uint v516 = 0u;
+static uint v517 = 0u;
+static uint v518 = 0u;
+static uint v519 = 0u;
+static uint v520 = 0u;
+static uint v521 = 0u;
+static uint v522 = 0u;
+static uint v523 = 0u;
+static uint v524 = 0u;
+static uint v525 = 0u;
+static uint v526 = 0u;
+static uint v527 = 0u;
+static uint v528 = 0u;
+static uint v529 = 0u;
+static uint v530 = 0u;
+static uint v531 = 0u;
+static uint v532 = 0u;
+static uint v533 = 0u;
+static uint v534 = 0u;
+static uint v535 = 0u;
+static uint v536 = 0u;
+static uint v537 = 0u;
+static uint v538 = 0u;
+static uint v539 = 0u;
+static uint v540 = 0u;
+static uint v541 = 0u;
+static uint v542 = 0u;
+static uint v543 = 0u;
+static uint v544 = 0u;
+static uint v545 = 0u;
+static uint v546 = 0u;
+static uint v547 = 0u;
+static uint v548 = 0u;
+static uint v549 = 0u;
+static uint v550 = 0u;
+static uint v551 = 0u;
+static uint v552 = 0u;
+static uint v553 = 0u;
+static uint v554 = 0u;
+static uint v555 = 0u;
+static uint v556 = 0u;
+static uint v557 = 0u;
+static uint v558 = 0u;
+static uint v559 = 0u;
+static uint v560 = 0u;
+static uint v561 = 0u;
+static uint v562 = 0u;
+static uint v563 = 0u;
+static uint v564 = 0u;
+static uint v565 = 0u;
+static uint v566 = 0u;
+static uint v567 = 0u;
+static uint v568 = 0u;
+static uint v569 = 0u;
+static uint v570 = 0u;
+static uint v571 = 0u;
+static uint v572 = 0u;
+static uint v573 = 0u;
+static uint v574 = 0u;
+static uint v575 = 0u;
+static uint v576 = 0u;
+static uint v577 = 0u;
+static uint v578 = 0u;
+static uint v579 = 0u;
+static uint v580 = 0u;
+static uint v581 = 0u;
+static uint v582 = 0u;
+static uint v583 = 0u;
+static uint v584 = 0u;
+static uint v585 = 0u;
+static uint v586 = 0u;
+static uint v587 = 0u;
+static uint v588 = 0u;
+static uint v589 = 0u;
+static uint v590 = 0u;
+static uint v591 = 0u;
+static uint v592 = 0u;
+static uint v593 = 0u;
+static uint v594 = 0u;
+static uint v595 = 0u;
+static uint v596 = 0u;
+static uint v597 = 0u;
+static uint v598 = 0u;
+static uint v599 = 0u;
+static uint v600 = 0u;
+static uint v601 = 0u;
+static uint v602 = 0u;
+static uint v603 = 0u;
+static uint v604 = 0u;
+static uint v605 = 0u;
+static uint v606 = 0u;
+static uint v607 = 0u;
+static uint v608 = 0u;
+static uint v609 = 0u;
+static uint v610 = 0u;
+static uint v611 = 0u;
+static uint v612 = 0u;
+static uint v613 = 0u;
+static uint v614 = 0u;
+static uint v615 = 0u;
+static uint v616 = 0u;
+static uint v617 = 0u;
+static uint v618 = 0u;
+static uint v619 = 0u;
+static uint v620 = 0u;
+static uint v621 = 0u;
+static uint v622 = 0u;
+static uint v623 = 0u;
+static uint v624 = 0u;
+static uint v625 = 0u;
+static uint v626 = 0u;
+static uint v627 = 0u;
+static uint v628 = 0u;
+static uint v629 = 0u;
+static uint v630 = 0u;
+static uint v631 = 0u;
+static uint v632 = 0u;
+static uint v633 = 0u;
+static uint v634 = 0u;
+static uint v635 = 0u;
+static uint v636 = 0u;
+static uint v637 = 0u;
+static uint v638 = 0u;
+static uint v639 = 0u;
+static uint v640 = 0u;
+static uint v641 = 0u;
+static uint v642 = 0u;
+static uint v643 = 0u;
+static uint v644 = 0u;
+static uint v645 = 0u;
+static uint v646 = 0u;
+static uint v647 = 0u;
+static uint v648 = 0u;
+static uint v649 = 0u;
+static uint v650 = 0u;
+static uint v651 = 0u;
+static uint v652 = 0u;
+static uint v653 = 0u;
+static uint v654 = 0u;
+static uint v655 = 0u;
+static uint v656 = 0u;
+static uint v657 = 0u;
+static uint v658 = 0u;
+static uint v659 = 0u;
+static uint v660 = 0u;
+static uint v661 = 0u;
+static uint v662 = 0u;
+static uint v663 = 0u;
+static uint v664 = 0u;
+static uint v665 = 0u;
+static uint v666 = 0u;
+static uint v667 = 0u;
+static uint v668 = 0u;
+static uint v669 = 0u;
+static uint v670 = 0u;
+static uint v671 = 0u;
+static uint v672 = 0u;
+static uint v673 = 0u;
+static uint v674 = 0u;
+static uint v675 = 0u;
+static uint v676 = 0u;
+static uint v677 = 0u;
+static uint v678 = 0u;
+static uint v679 = 0u;
+static uint v680 = 0u;
+static uint v681 = 0u;
+static uint v682 = 0u;
+static uint v683 = 0u;
+static uint v684 = 0u;
+static uint v685 = 0u;
+static uint v686 = 0u;
+static uint v687 = 0u;
+static uint v688 = 0u;
+static uint v689 = 0u;
+static uint v690 = 0u;
+static uint v691 = 0u;
+static uint v692 = 0u;
+static uint v693 = 0u;
+static uint v694 = 0u;
+static uint v695 = 0u;
+static uint v696 = 0u;
+static uint v697 = 0u;
+static uint v698 = 0u;
+static uint v699 = 0u;
+static uint v700 = 0u;
+static uint v701 = 0u;
+static uint v702 = 0u;
+static uint v703 = 0u;
+static uint v704 = 0u;
+static uint v705 = 0u;
+static uint v706 = 0u;
+static uint v707 = 0u;
+static uint v708 = 0u;
+static uint v709 = 0u;
+static uint v710 = 0u;
+static uint v711 = 0u;
+static uint v712 = 0u;
+static uint v713 = 0u;
+static uint v714 = 0u;
+static uint v715 = 0u;
+static uint v716 = 0u;
+static uint v717 = 0u;
+static uint v718 = 0u;
+static uint v719 = 0u;
+static uint v720 = 0u;
+static uint v721 = 0u;
+static uint v722 = 0u;
+static uint v723 = 0u;
+static uint v724 = 0u;
+static uint v725 = 0u;
+static uint v726 = 0u;
+static uint v727 = 0u;
+static uint v728 = 0u;
+static uint v729 = 0u;
+static uint v730 = 0u;
+static uint v731 = 0u;
+static uint v732 = 0u;
+static uint v733 = 0u;
+static uint v734 = 0u;
+static uint v735 = 0u;
+static uint v736 = 0u;
+static uint v737 = 0u;
+static uint v738 = 0u;
+static uint v739 = 0u;
+static uint v740 = 0u;
+static uint v741 = 0u;
+static uint v742 = 0u;
+static uint v743 = 0u;
+static uint v744 = 0u;
+static uint v745 = 0u;
+static uint v746 = 0u;
+static uint v747 = 0u;
+static uint v748 = 0u;
+static uint v749 = 0u;
+static uint v750 = 0u;
+static uint v751 = 0u;
+static uint v752 = 0u;
+static uint v753 = 0u;
+static uint v754 = 0u;
+static uint v755 = 0u;
+static uint v756 = 0u;
+static uint v757 = 0u;
+static uint v758 = 0u;
+static uint v759 = 0u;
+static uint v760 = 0u;
+static uint v761 = 0u;
+static uint v762 = 0u;
+static uint v763 = 0u;
+static uint v764 = 0u;
+static uint v765 = 0u;
+static uint v766 = 0u;
+static uint v767 = 0u;
+static uint v768 = 0u;
+static uint v769 = 0u;
+static uint v770 = 0u;
+static uint v771 = 0u;
+static uint v772 = 0u;
+static uint v773 = 0u;
+static uint v774 = 0u;
+static uint v775 = 0u;
+static uint v776 = 0u;
+static uint v777 = 0u;
+static uint v778 = 0u;
+static uint v779 = 0u;
+static uint v780 = 0u;
+static uint v781 = 0u;
+static uint v782 = 0u;
+static uint v783 = 0u;
+static uint v784 = 0u;
+static uint v785 = 0u;
+static uint v786 = 0u;
+static uint v787 = 0u;
+static uint v788 = 0u;
+static uint v789 = 0u;
+static uint v790 = 0u;
+static uint v791 = 0u;
+static uint v792 = 0u;
+static uint v793 = 0u;
+static uint v794 = 0u;
+static uint v795 = 0u;
+static uint v796 = 0u;
+static uint v797 = 0u;
+static uint v798 = 0u;
+static uint v799 = 0u;
+static uint v800 = 0u;
+static uint v801 = 0u;
+static uint v802 = 0u;
+static uint v803 = 0u;
+static uint v804 = 0u;
+static uint v805 = 0u;
+static uint v806 = 0u;
+static uint v807 = 0u;
+static uint v808 = 0u;
+static uint v809 = 0u;
+static uint v810 = 0u;
+static uint v811 = 0u;
+static uint v812 = 0u;
+static uint v813 = 0u;
+static uint v814 = 0u;
+static uint v815 = 0u;
+static uint v816 = 0u;
+static uint v817 = 0u;
+static uint v818 = 0u;
+static uint v819 = 0u;
+static uint v820 = 0u;
+static uint v821 = 0u;
+static uint v822 = 0u;
+static uint v823 = 0u;
+static uint v824 = 0u;
+static uint v825 = 0u;
+static uint v826 = 0u;
+static uint v827 = 0u;
+static uint v828 = 0u;
+static uint v829 = 0u;
+static uint v830 = 0u;
+static uint v831 = 0u;
+static uint v832 = 0u;
+static uint v833 = 0u;
+static uint v834 = 0u;
+static uint v835 = 0u;
+static uint v836 = 0u;
+static uint v837 = 0u;
+static uint v838 = 0u;
+static uint v839 = 0u;
+static uint v840 = 0u;
+static uint v841 = 0u;
+static uint v842 = 0u;
+static uint v843 = 0u;
+static uint v844 = 0u;
+static uint v845 = 0u;
+static uint v846 = 0u;
+static uint v847 = 0u;
+static uint v848 = 0u;
+static uint v849 = 0u;
+static uint v850 = 0u;
+static uint v851 = 0u;
+static uint v852 = 0u;
+static uint v853 = 0u;
+static uint v854 = 0u;
+static uint v855 = 0u;
+static uint v856 = 0u;
+static uint v857 = 0u;
+static uint v858 = 0u;
+static uint v859 = 0u;
+static uint v860 = 0u;
+static uint v861 = 0u;
+static uint v862 = 0u;
+static uint v863 = 0u;
+static uint v864 = 0u;
+static uint v865 = 0u;
+static uint v866 = 0u;
+static uint v867 = 0u;
+static uint v868 = 0u;
+static uint v869 = 0u;
+static uint v870 = 0u;
+static uint v871 = 0u;
+static uint v872 = 0u;
+static uint v873 = 0u;
+static uint v874 = 0u;
+static uint v875 = 0u;
+static uint v876 = 0u;
+static uint v877 = 0u;
+static uint v878 = 0u;
+static uint v879 = 0u;
+static uint v880 = 0u;
+static uint v881 = 0u;
+static uint v882 = 0u;
+static uint v883 = 0u;
+static uint v884 = 0u;
+static uint v885 = 0u;
+static uint v886 = 0u;
+static uint v887 = 0u;
+static uint v888 = 0u;
+static uint v889 = 0u;
+static uint v890 = 0u;
+static uint v891 = 0u;
+static uint v892 = 0u;
+static uint v893 = 0u;
+static uint v894 = 0u;
+static uint v895 = 0u;
+static uint v896 = 0u;
+static uint v897 = 0u;
+static uint v898 = 0u;
+static uint v899 = 0u;
+static uint v900 = 0u;
+static uint v901 = 0u;
+static uint v902 = 0u;
+static uint v903 = 0u;
+static uint v904 = 0u;
+static uint v905 = 0u;
+static uint v906 = 0u;
+static uint v907 = 0u;
+static uint v908 = 0u;
+static uint v909 = 0u;
+static uint v910 = 0u;
+static uint v911 = 0u;
+static uint v912 = 0u;
+static uint v913 = 0u;
+static uint v914 = 0u;
+static uint v915 = 0u;
+static uint v916 = 0u;
+static uint v917 = 0u;
+static uint v918 = 0u;
+static uint v919 = 0u;
+static uint v920 = 0u;
+static uint v921 = 0u;
+static uint v922 = 0u;
+static uint v923 = 0u;
+static uint v924 = 0u;
+static uint v925 = 0u;
+static uint v926 = 0u;
+static uint v927 = 0u;
+static uint v928 = 0u;
+static uint v929 = 0u;
+static uint v930 = 0u;
+static uint v931 = 0u;
+static uint v932 = 0u;
+static uint v933 = 0u;
+static uint v934 = 0u;
+static uint v935 = 0u;
+static uint v936 = 0u;
+static uint v937 = 0u;
+static uint v938 = 0u;
+static uint v939 = 0u;
+static uint v940 = 0u;
+static uint v941 = 0u;
+static uint v942 = 0u;
+static uint v943 = 0u;
+static uint v944 = 0u;
+static uint v945 = 0u;
+static uint v946 = 0u;
+static uint v947 = 0u;
+static uint v948 = 0u;
+static uint v949 = 0u;
+static uint v950 = 0u;
+static uint v951 = 0u;
+static uint v952 = 0u;
+static uint v953 = 0u;
+static uint v954 = 0u;
+static uint v955 = 0u;
+static uint v956 = 0u;
+static uint v957 = 0u;
+static uint v958 = 0u;
+static uint v959 = 0u;
+static uint v960 = 0u;
+static uint v961 = 0u;
+static uint v962 = 0u;
+static uint v963 = 0u;
+static uint v964 = 0u;
+static uint v965 = 0u;
+static uint v966 = 0u;
+static uint v967 = 0u;
+static uint v968 = 0u;
+static uint v969 = 0u;
+static uint v970 = 0u;
+static uint v971 = 0u;
+static uint v972 = 0u;
+static uint v973 = 0u;
+static uint v974 = 0u;
+static uint v975 = 0u;
+static uint v976 = 0u;
+static uint v977 = 0u;
+static uint v978 = 0u;
+static uint v979 = 0u;
+static uint v980 = 0u;
+static uint v981 = 0u;
+static uint v982 = 0u;
+static uint v983 = 0u;
+static uint v984 = 0u;
+static uint v985 = 0u;
+static uint v986 = 0u;
+static uint v987 = 0u;
+static uint v988 = 0u;
+static uint v989 = 0u;
+static uint v990 = 0u;
+static uint v991 = 0u;
+static uint v992 = 0u;
+static uint v993 = 0u;
+static uint v994 = 0u;
+static uint v995 = 0u;
+static uint v996 = 0u;
+static uint v997 = 0u;
+static uint v998 = 0u;
+static uint v999 = 0u;
 uint foo() {
   uint x = 0u;
   x = (x + v0);
@@ -1005,7 +2008,12 @@
   return x;
 }
 
-uint main() {
+uint main_inner() {
   return foo();
 }
 
+main_outputs main() {
+  main_outputs v = {main_inner()};
+  return v;
+}
+
diff --git a/test/tint/bug/tint/1518.wgsl.expected.ir.dxc.hlsl b/test/tint/bug/tint/1518.wgsl.expected.ir.dxc.hlsl
index bdeab23..7763e1d 100644
--- a/test/tint/bug/tint/1518.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/bug/tint/1518.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,379 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:198 internal compiler error: Switch() matched no cases. Type: tint::core::ir::If
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+[numthreads(1, 1, 1)]
+void main() {
+  if (false) {
+  } else {
+    if (false) {
+    } else {
+      if (false) {
+      } else {
+        if (false) {
+        } else {
+          if (false) {
+          } else {
+            if (false) {
+            } else {
+              if (false) {
+              } else {
+                if (false) {
+                } else {
+                  if (false) {
+                  } else {
+                    if (false) {
+                    } else {
+                      if (false) {
+                      } else {
+                        if (false) {
+                        } else {
+                          if (false) {
+                          } else {
+                            if (false) {
+                            } else {
+                              if (false) {
+                              } else {
+                                if (false) {
+                                } else {
+                                  if (false) {
+                                  } else {
+                                    if (false) {
+                                    } else {
+                                      if (false) {
+                                      } else {
+                                        if (false) {
+                                        } else {
+                                          if (false) {
+                                          } else {
+                                            if (false) {
+                                            } else {
+                                              if (false) {
+                                              } else {
+                                                if (false) {
+                                                } else {
+                                                  if (false) {
+                                                  } else {
+                                                    if (false) {
+                                                    } else {
+                                                      if (false) {
+                                                      } else {
+                                                        if (false) {
+                                                        } else {
+                                                          if (false) {
+                                                          } else {
+                                                            if (false) {
+                                                            } else {
+                                                              if (false) {
+                                                              } else {
+                                                                if (false) {
+                                                                } else {
+                                                                  if (false) {
+                                                                  } else {
+                                                                    if (false) {
+                                                                    } else {
+                                                                      if (false) {
+                                                                      } else {
+                                                                        if (false) {
+                                                                        } else {
+                                                                          if (false) {
+                                                                          } else {
+                                                                            if (false) {
+                                                                            } else {
+                                                                              if (false) {
+                                                                              } else {
+                                                                                if (false) {
+                                                                                } else {
+                                                                                  if (false) {
+                                                                                  } else {
+                                                                                    if (false) {
+                                                                                    } else {
+                                                                                      if (false) {
+                                                                                      } else {
+                                                                                        if (false) {
+                                                                                        } else {
+                                                                                          if (false) {
+                                                                                          } else {
+                                                                                            if (false) {
+                                                                                            } else {
+                                                                                              if (false) {
+                                                                                              } else {
+                                                                                                if (false) {
+                                                                                                } else {
+                                                                                                  if (false) {
+                                                                                                  } else {
+                                                                                                    if (false) {
+                                                                                                    } else {
+                                                                                                      if (false) {
+                                                                                                      } else {
+                                                                                                        if (false) {
+                                                                                                        } else {
+                                                                                                          if (false) {
+                                                                                                          } else {
+                                                                                                            if (false) {
+                                                                                                            } else {
+                                                                                                              if (false) {
+                                                                                                              } else {
+                                                                                                                if (false) {
+                                                                                                                } else {
+                                                                                                                  if (false) {
+                                                                                                                  } else {
+                                                                                                                    if (false) {
+                                                                                                                    } else {
+                                                                                                                      if (false) {
+                                                                                                                      } else {
+                                                                                                                        if (false) {
+                                                                                                                        } else {
+                                                                                                                          if (false) {
+                                                                                                                          } else {
+                                                                                                                            if (false) {
+                                                                                                                            } else {
+                                                                                                                              if (false) {
+                                                                                                                              } else {
+                                                                                                                                if (false) {
+                                                                                                                                } else {
+                                                                                                                                  if (false) {
+                                                                                                                                  } else {
+                                                                                                                                    if (false) {
+                                                                                                                                    } else {
+                                                                                                                                      if (false) {
+                                                                                                                                      } else {
+                                                                                                                                        if (false) {
+                                                                                                                                        } else {
+                                                                                                                                          if (false) {
+                                                                                                                                          } else {
+                                                                                                                                            if (false) {
+                                                                                                                                            } else {
+                                                                                                                                              if (false) {
+                                                                                                                                              } else {
+                                                                                                                                                if (false) {
+                                                                                                                                                } else {
+                                                                                                                                                  if (false) {
+                                                                                                                                                  } else {
+                                                                                                                                                    if (false) {
+                                                                                                                                                    } else {
+                                                                                                                                                      if (false) {
+                                                                                                                                                      } else {
+                                                                                                                                                        if (false) {
+                                                                                                                                                        } else {
+                                                                                                                                                          if (false) {
+                                                                                                                                                          } else {
+                                                                                                                                                            if (false) {
+                                                                                                                                                            } else {
+                                                                                                                                                              if (false) {
+                                                                                                                                                              } else {
+                                                                                                                                                                if (false) {
+                                                                                                                                                                } else {
+                                                                                                                                                                  if (false) {
+                                                                                                                                                                  } else {
+                                                                                                                                                                    if (false) {
+                                                                                                                                                                    } else {
+                                                                                                                                                                      if (false) {
+                                                                                                                                                                      } else {
+                                                                                                                                                                        if (false) {
+                                                                                                                                                                        } else {
+                                                                                                                                                                          if (false) {
+                                                                                                                                                                          } else {
+                                                                                                                                                                            if (false) {
+                                                                                                                                                                            } else {
+                                                                                                                                                                              if (false) {
+                                                                                                                                                                              } else {
+                                                                                                                                                                                if (false) {
+                                                                                                                                                                                } else {
+                                                                                                                                                                                  if (false) {
+                                                                                                                                                                                  } else {
+                                                                                                                                                                                    if (false) {
+                                                                                                                                                                                    } else {
+                                                                                                                                                                                      if (false) {
+                                                                                                                                                                                      } else {
+                                                                                                                                                                                        if (false) {
+                                                                                                                                                                                        } else {
+                                                                                                                                                                                          if (false) {
+                                                                                                                                                                                          } else {
+                                                                                                                                                                                            if (false) {
+                                                                                                                                                                                            } else {
+                                                                                                                                                                                              if (false) {
+                                                                                                                                                                                              } else {
+                                                                                                                                                                                                if (false) {
+                                                                                                                                                                                                } else {
+                                                                                                                                                                                                  if (false) {
+                                                                                                                                                                                                  } else {
+                                                                                                                                                                                                    if (false) {
+                                                                                                                                                                                                    } else {
+                                                                                                                                                                                                      if (false) {
+                                                                                                                                                                                                      } else {
+                                                                                                                                                                                                        if (false) {
+                                                                                                                                                                                                        } else {
+                                                                                                                                                                                                          if (false) {
+                                                                                                                                                                                                          } else {
+                                                                                                                                                                                                            if (false) {
+                                                                                                                                                                                                            } else {
+                                                                                                                                                                                                              if (false) {
+                                                                                                                                                                                                              } else {
+                                                                                                                                                                                                                if (false) {
+                                                                                                                                                                                                                } else {
+                                                                                                                                                                                                                  if (false) {
+                                                                                                                                                                                                                  } else {
+                                                                                                                                                                                                                    if (false) {
+                                                                                                                                                                                                                    } else {
+                                                                                                                                                                                                                      if (false) {
+                                                                                                                                                                                                                      } else {
+                                                                                                                                                                                                                        if (false) {
+                                                                                                                                                                                                                        } else {
+                                                                                                                                                                                                                          if (false) {
+                                                                                                                                                                                                                          } else {
+                                                                                                                                                                                                                            if (false) {
+                                                                                                                                                                                                                            } else {
+                                                                                                                                                                                                                              if (false) {
+                                                                                                                                                                                                                              } else {
+                                                                                                                                                                                                                                if (false) {
+                                                                                                                                                                                                                                } else {
+                                                                                                                                                                                                                                  if (false) {
+                                                                                                                                                                                                                                  } else {
+                                                                                                                                                                                                                                    if (false) {
+                                                                                                                                                                                                                                    } else {
+                                                                                                                                                                                                                                      if (false) {
+                                                                                                                                                                                                                                      } else {
+                                                                                                                                                                                                                                        if (false) {
+                                                                                                                                                                                                                                        } else {
+                                                                                                                                                                                                                                          if (false) {
+                                                                                                                                                                                                                                          } else {
+                                                                                                                                                                                                                                            if (false) {
+                                                                                                                                                                                                                                            } else {
+                                                                                                                                                                                                                                              if (false) {
+                                                                                                                                                                                                                                              } else {
+                                                                                                                                                                                                                                                if (false) {
+                                                                                                                                                                                                                                                } else {
+                                                                                                                                                                                                                                                  if (false) {
+                                                                                                                                                                                                                                                  } else {
+                                                                                                                                                                                                                                                    if (false) {
+                                                                                                                                                                                                                                                    } else {
+                                                                                                                                                                                                                                                      if (false) {
+                                                                                                                                                                                                                                                      } else {
+                                                                                                                                                                                                                                                        if (false) {
+                                                                                                                                                                                                                                                        } else {
+                                                                                                                                                                                                                                                          if (false) {
+                                                                                                                                                                                                                                                          }
+                                                                                                                                                                                                                                                        }
+                                                                                                                                                                                                                                                      }
+                                                                                                                                                                                                                                                    }
+                                                                                                                                                                                                                                                  }
+                                                                                                                                                                                                                                                }
+                                                                                                                                                                                                                                              }
+                                                                                                                                                                                                                                            }
+                                                                                                                                                                                                                                          }
+                                                                                                                                                                                                                                        }
+                                                                                                                                                                                                                                      }
+                                                                                                                                                                                                                                    }
+                                                                                                                                                                                                                                  }
+                                                                                                                                                                                                                                }
+                                                                                                                                                                                                                              }
+                                                                                                                                                                                                                            }
+                                                                                                                                                                                                                          }
+                                                                                                                                                                                                                        }
+                                                                                                                                                                                                                      }
+                                                                                                                                                                                                                    }
+                                                                                                                                                                                                                  }
+                                                                                                                                                                                                                }
+                                                                                                                                                                                                              }
+                                                                                                                                                                                                            }
+                                                                                                                                                                                                          }
+                                                                                                                                                                                                        }
+                                                                                                                                                                                                      }
+                                                                                                                                                                                                    }
+                                                                                                                                                                                                  }
+                                                                                                                                                                                                }
+                                                                                                                                                                                              }
+                                                                                                                                                                                            }
+                                                                                                                                                                                          }
+                                                                                                                                                                                        }
+                                                                                                                                                                                      }
+                                                                                                                                                                                    }
+                                                                                                                                                                                  }
+                                                                                                                                                                                }
+                                                                                                                                                                              }
+                                                                                                                                                                            }
+                                                                                                                                                                          }
+                                                                                                                                                                        }
+                                                                                                                                                                      }
+                                                                                                                                                                    }
+                                                                                                                                                                  }
+                                                                                                                                                                }
+                                                                                                                                                              }
+                                                                                                                                                            }
+                                                                                                                                                          }
+                                                                                                                                                        }
+                                                                                                                                                      }
+                                                                                                                                                    }
+                                                                                                                                                  }
+                                                                                                                                                }
+                                                                                                                                              }
+                                                                                                                                            }
+                                                                                                                                          }
+                                                                                                                                        }
+                                                                                                                                      }
+                                                                                                                                    }
+                                                                                                                                  }
+                                                                                                                                }
+                                                                                                                              }
+                                                                                                                            }
+                                                                                                                          }
+                                                                                                                        }
+                                                                                                                      }
+                                                                                                                    }
+                                                                                                                  }
+                                                                                                                }
+                                                                                                              }
+                                                                                                            }
+                                                                                                          }
+                                                                                                        }
+                                                                                                      }
+                                                                                                    }
+                                                                                                  }
+                                                                                                }
+                                                                                              }
+                                                                                            }
+                                                                                          }
+                                                                                        }
+                                                                                      }
+                                                                                    }
+                                                                                  }
+                                                                                }
+                                                                              }
+                                                                            }
+                                                                          }
+                                                                        }
+                                                                      }
+                                                                    }
+                                                                  }
+                                                                }
+                                                              }
+                                                            }
+                                                          }
+                                                        }
+                                                      }
+                                                    }
+                                                  }
+                                                }
+                                              }
+                                            }
+                                          }
+                                        }
+                                      }
+                                    }
+                                  }
+                                }
+                              }
+                            }
+                          }
+                        }
+                      }
+                    }
+                  }
+                }
+              }
+            }
+          }
+        }
+      }
+    }
+  }
+}
+
diff --git a/test/tint/bug/tint/1518.wgsl.expected.ir.fxc.hlsl b/test/tint/bug/tint/1518.wgsl.expected.ir.fxc.hlsl
index bdeab23..7763e1d 100644
--- a/test/tint/bug/tint/1518.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/bug/tint/1518.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,379 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:198 internal compiler error: Switch() matched no cases. Type: tint::core::ir::If
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+[numthreads(1, 1, 1)]
+void main() {
+  if (false) {
+  } else {
+    if (false) {
+    } else {
+      if (false) {
+      } else {
+        if (false) {
+        } else {
+          if (false) {
+          } else {
+            if (false) {
+            } else {
+              if (false) {
+              } else {
+                if (false) {
+                } else {
+                  if (false) {
+                  } else {
+                    if (false) {
+                    } else {
+                      if (false) {
+                      } else {
+                        if (false) {
+                        } else {
+                          if (false) {
+                          } else {
+                            if (false) {
+                            } else {
+                              if (false) {
+                              } else {
+                                if (false) {
+                                } else {
+                                  if (false) {
+                                  } else {
+                                    if (false) {
+                                    } else {
+                                      if (false) {
+                                      } else {
+                                        if (false) {
+                                        } else {
+                                          if (false) {
+                                          } else {
+                                            if (false) {
+                                            } else {
+                                              if (false) {
+                                              } else {
+                                                if (false) {
+                                                } else {
+                                                  if (false) {
+                                                  } else {
+                                                    if (false) {
+                                                    } else {
+                                                      if (false) {
+                                                      } else {
+                                                        if (false) {
+                                                        } else {
+                                                          if (false) {
+                                                          } else {
+                                                            if (false) {
+                                                            } else {
+                                                              if (false) {
+                                                              } else {
+                                                                if (false) {
+                                                                } else {
+                                                                  if (false) {
+                                                                  } else {
+                                                                    if (false) {
+                                                                    } else {
+                                                                      if (false) {
+                                                                      } else {
+                                                                        if (false) {
+                                                                        } else {
+                                                                          if (false) {
+                                                                          } else {
+                                                                            if (false) {
+                                                                            } else {
+                                                                              if (false) {
+                                                                              } else {
+                                                                                if (false) {
+                                                                                } else {
+                                                                                  if (false) {
+                                                                                  } else {
+                                                                                    if (false) {
+                                                                                    } else {
+                                                                                      if (false) {
+                                                                                      } else {
+                                                                                        if (false) {
+                                                                                        } else {
+                                                                                          if (false) {
+                                                                                          } else {
+                                                                                            if (false) {
+                                                                                            } else {
+                                                                                              if (false) {
+                                                                                              } else {
+                                                                                                if (false) {
+                                                                                                } else {
+                                                                                                  if (false) {
+                                                                                                  } else {
+                                                                                                    if (false) {
+                                                                                                    } else {
+                                                                                                      if (false) {
+                                                                                                      } else {
+                                                                                                        if (false) {
+                                                                                                        } else {
+                                                                                                          if (false) {
+                                                                                                          } else {
+                                                                                                            if (false) {
+                                                                                                            } else {
+                                                                                                              if (false) {
+                                                                                                              } else {
+                                                                                                                if (false) {
+                                                                                                                } else {
+                                                                                                                  if (false) {
+                                                                                                                  } else {
+                                                                                                                    if (false) {
+                                                                                                                    } else {
+                                                                                                                      if (false) {
+                                                                                                                      } else {
+                                                                                                                        if (false) {
+                                                                                                                        } else {
+                                                                                                                          if (false) {
+                                                                                                                          } else {
+                                                                                                                            if (false) {
+                                                                                                                            } else {
+                                                                                                                              if (false) {
+                                                                                                                              } else {
+                                                                                                                                if (false) {
+                                                                                                                                } else {
+                                                                                                                                  if (false) {
+                                                                                                                                  } else {
+                                                                                                                                    if (false) {
+                                                                                                                                    } else {
+                                                                                                                                      if (false) {
+                                                                                                                                      } else {
+                                                                                                                                        if (false) {
+                                                                                                                                        } else {
+                                                                                                                                          if (false) {
+                                                                                                                                          } else {
+                                                                                                                                            if (false) {
+                                                                                                                                            } else {
+                                                                                                                                              if (false) {
+                                                                                                                                              } else {
+                                                                                                                                                if (false) {
+                                                                                                                                                } else {
+                                                                                                                                                  if (false) {
+                                                                                                                                                  } else {
+                                                                                                                                                    if (false) {
+                                                                                                                                                    } else {
+                                                                                                                                                      if (false) {
+                                                                                                                                                      } else {
+                                                                                                                                                        if (false) {
+                                                                                                                                                        } else {
+                                                                                                                                                          if (false) {
+                                                                                                                                                          } else {
+                                                                                                                                                            if (false) {
+                                                                                                                                                            } else {
+                                                                                                                                                              if (false) {
+                                                                                                                                                              } else {
+                                                                                                                                                                if (false) {
+                                                                                                                                                                } else {
+                                                                                                                                                                  if (false) {
+                                                                                                                                                                  } else {
+                                                                                                                                                                    if (false) {
+                                                                                                                                                                    } else {
+                                                                                                                                                                      if (false) {
+                                                                                                                                                                      } else {
+                                                                                                                                                                        if (false) {
+                                                                                                                                                                        } else {
+                                                                                                                                                                          if (false) {
+                                                                                                                                                                          } else {
+                                                                                                                                                                            if (false) {
+                                                                                                                                                                            } else {
+                                                                                                                                                                              if (false) {
+                                                                                                                                                                              } else {
+                                                                                                                                                                                if (false) {
+                                                                                                                                                                                } else {
+                                                                                                                                                                                  if (false) {
+                                                                                                                                                                                  } else {
+                                                                                                                                                                                    if (false) {
+                                                                                                                                                                                    } else {
+                                                                                                                                                                                      if (false) {
+                                                                                                                                                                                      } else {
+                                                                                                                                                                                        if (false) {
+                                                                                                                                                                                        } else {
+                                                                                                                                                                                          if (false) {
+                                                                                                                                                                                          } else {
+                                                                                                                                                                                            if (false) {
+                                                                                                                                                                                            } else {
+                                                                                                                                                                                              if (false) {
+                                                                                                                                                                                              } else {
+                                                                                                                                                                                                if (false) {
+                                                                                                                                                                                                } else {
+                                                                                                                                                                                                  if (false) {
+                                                                                                                                                                                                  } else {
+                                                                                                                                                                                                    if (false) {
+                                                                                                                                                                                                    } else {
+                                                                                                                                                                                                      if (false) {
+                                                                                                                                                                                                      } else {
+                                                                                                                                                                                                        if (false) {
+                                                                                                                                                                                                        } else {
+                                                                                                                                                                                                          if (false) {
+                                                                                                                                                                                                          } else {
+                                                                                                                                                                                                            if (false) {
+                                                                                                                                                                                                            } else {
+                                                                                                                                                                                                              if (false) {
+                                                                                                                                                                                                              } else {
+                                                                                                                                                                                                                if (false) {
+                                                                                                                                                                                                                } else {
+                                                                                                                                                                                                                  if (false) {
+                                                                                                                                                                                                                  } else {
+                                                                                                                                                                                                                    if (false) {
+                                                                                                                                                                                                                    } else {
+                                                                                                                                                                                                                      if (false) {
+                                                                                                                                                                                                                      } else {
+                                                                                                                                                                                                                        if (false) {
+                                                                                                                                                                                                                        } else {
+                                                                                                                                                                                                                          if (false) {
+                                                                                                                                                                                                                          } else {
+                                                                                                                                                                                                                            if (false) {
+                                                                                                                                                                                                                            } else {
+                                                                                                                                                                                                                              if (false) {
+                                                                                                                                                                                                                              } else {
+                                                                                                                                                                                                                                if (false) {
+                                                                                                                                                                                                                                } else {
+                                                                                                                                                                                                                                  if (false) {
+                                                                                                                                                                                                                                  } else {
+                                                                                                                                                                                                                                    if (false) {
+                                                                                                                                                                                                                                    } else {
+                                                                                                                                                                                                                                      if (false) {
+                                                                                                                                                                                                                                      } else {
+                                                                                                                                                                                                                                        if (false) {
+                                                                                                                                                                                                                                        } else {
+                                                                                                                                                                                                                                          if (false) {
+                                                                                                                                                                                                                                          } else {
+                                                                                                                                                                                                                                            if (false) {
+                                                                                                                                                                                                                                            } else {
+                                                                                                                                                                                                                                              if (false) {
+                                                                                                                                                                                                                                              } else {
+                                                                                                                                                                                                                                                if (false) {
+                                                                                                                                                                                                                                                } else {
+                                                                                                                                                                                                                                                  if (false) {
+                                                                                                                                                                                                                                                  } else {
+                                                                                                                                                                                                                                                    if (false) {
+                                                                                                                                                                                                                                                    } else {
+                                                                                                                                                                                                                                                      if (false) {
+                                                                                                                                                                                                                                                      } else {
+                                                                                                                                                                                                                                                        if (false) {
+                                                                                                                                                                                                                                                        } else {
+                                                                                                                                                                                                                                                          if (false) {
+                                                                                                                                                                                                                                                          }
+                                                                                                                                                                                                                                                        }
+                                                                                                                                                                                                                                                      }
+                                                                                                                                                                                                                                                    }
+                                                                                                                                                                                                                                                  }
+                                                                                                                                                                                                                                                }
+                                                                                                                                                                                                                                              }
+                                                                                                                                                                                                                                            }
+                                                                                                                                                                                                                                          }
+                                                                                                                                                                                                                                        }
+                                                                                                                                                                                                                                      }
+                                                                                                                                                                                                                                    }
+                                                                                                                                                                                                                                  }
+                                                                                                                                                                                                                                }
+                                                                                                                                                                                                                              }
+                                                                                                                                                                                                                            }
+                                                                                                                                                                                                                          }
+                                                                                                                                                                                                                        }
+                                                                                                                                                                                                                      }
+                                                                                                                                                                                                                    }
+                                                                                                                                                                                                                  }
+                                                                                                                                                                                                                }
+                                                                                                                                                                                                              }
+                                                                                                                                                                                                            }
+                                                                                                                                                                                                          }
+                                                                                                                                                                                                        }
+                                                                                                                                                                                                      }
+                                                                                                                                                                                                    }
+                                                                                                                                                                                                  }
+                                                                                                                                                                                                }
+                                                                                                                                                                                              }
+                                                                                                                                                                                            }
+                                                                                                                                                                                          }
+                                                                                                                                                                                        }
+                                                                                                                                                                                      }
+                                                                                                                                                                                    }
+                                                                                                                                                                                  }
+                                                                                                                                                                                }
+                                                                                                                                                                              }
+                                                                                                                                                                            }
+                                                                                                                                                                          }
+                                                                                                                                                                        }
+                                                                                                                                                                      }
+                                                                                                                                                                    }
+                                                                                                                                                                  }
+                                                                                                                                                                }
+                                                                                                                                                              }
+                                                                                                                                                            }
+                                                                                                                                                          }
+                                                                                                                                                        }
+                                                                                                                                                      }
+                                                                                                                                                    }
+                                                                                                                                                  }
+                                                                                                                                                }
+                                                                                                                                              }
+                                                                                                                                            }
+                                                                                                                                          }
+                                                                                                                                        }
+                                                                                                                                      }
+                                                                                                                                    }
+                                                                                                                                  }
+                                                                                                                                }
+                                                                                                                              }
+                                                                                                                            }
+                                                                                                                          }
+                                                                                                                        }
+                                                                                                                      }
+                                                                                                                    }
+                                                                                                                  }
+                                                                                                                }
+                                                                                                              }
+                                                                                                            }
+                                                                                                          }
+                                                                                                        }
+                                                                                                      }
+                                                                                                    }
+                                                                                                  }
+                                                                                                }
+                                                                                              }
+                                                                                            }
+                                                                                          }
+                                                                                        }
+                                                                                      }
+                                                                                    }
+                                                                                  }
+                                                                                }
+                                                                              }
+                                                                            }
+                                                                          }
+                                                                        }
+                                                                      }
+                                                                    }
+                                                                  }
+                                                                }
+                                                              }
+                                                            }
+                                                          }
+                                                        }
+                                                      }
+                                                    }
+                                                  }
+                                                }
+                                              }
+                                            }
+                                          }
+                                        }
+                                      }
+                                    }
+                                  }
+                                }
+                              }
+                            }
+                          }
+                        }
+                      }
+                    }
+                  }
+                }
+              }
+            }
+          }
+        }
+      }
+    }
+  }
+}
+
diff --git a/test/tint/bug/tint/1520.spvasm.expected.ir.dxc.hlsl b/test/tint/bug/tint/1520.spvasm.expected.ir.dxc.hlsl
index 48e23f4..4d00e73 100644
--- a/test/tint/bug/tint/1520.spvasm.expected.ir.dxc.hlsl
+++ b/test/tint/bug/tint/1520.spvasm.expected.ir.dxc.hlsl
@@ -1,9 +1,164 @@
-SKIP: FAILED
+struct main_out {
+  float4 sk_FragColor_1;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Convert
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct main_outputs {
+  float4 main_out_sk_FragColor_1 : SV_Target0;
+};
+
+struct main_inputs {
+  float4 vcolor_S0_param : TEXCOORD0;
+  bool sk_Clockwise_param : SV_IsFrontFace;
+};
+
+
+cbuffer cbuffer_x_4 : register(b0) {
+  uint4 x_4[7];
+};
+static float4 sk_FragColor = (0.0f).xxxx;
+static bool sk_Clockwise = false;
+static float4 vcolor_S0 = (0.0f).xxxx;
+int4 tint_div_v4i32(int4 lhs, int4 rhs) {
+  return (lhs / ((((rhs == (0).xxxx) | ((lhs == (-2147483648).xxxx) & (rhs == (-1).xxxx)))) ? ((1).xxxx) : (rhs)));
+}
+
+int tint_f32_to_i32(float value) {
+  return (((value <= 2147483520.0f)) ? ((((value >= -2147483648.0f)) ? (int(value)) : (-2147483648))) : (2147483647));
+}
+
+bool test_int_S1_c0_b() {
+  int unknown = 0;
+  bool ok = false;
+  int4 val = (0).xxxx;
+  bool x_40 = false;
+  bool x_41 = false;
+  bool x_54 = false;
+  bool x_55 = false;
+  bool x_65 = false;
+  bool x_66 = false;
+  int x_27 = tint_f32_to_i32(asfloat(x_4[1u].x));
+  unknown = x_27;
+  ok = true;
+  x_41 = false;
+  if (true) {
+    x_40 = all((tint_div_v4i32((0).xxxx, int4((x_27).xxxx)) == (0).xxxx));
+    x_41 = x_40;
+  }
+  ok = x_41;
+  int4 x_44 = int4((x_27).xxxx);
+  val = x_44;
+  int4 x_47 = (x_44 + (1).xxxx);
+  val = x_47;
+  int4 x_48 = (x_47 - (1).xxxx);
+  val = x_48;
+  int4 x_49 = (x_48 + (1).xxxx);
+  val = x_49;
+  int4 x_50 = (x_49 - (1).xxxx);
+  val = x_50;
+  x_55 = false;
+  if (x_41) {
+    x_54 = all((x_50 == x_44));
+    x_55 = x_54;
+  }
+  ok = x_55;
+  int4 x_58 = (x_50 * (2).xxxx);
+  val = x_58;
+  int4 x_59 = tint_div_v4i32(x_58, (2).xxxx);
+  val = x_59;
+  int4 x_60 = (x_59 * (2).xxxx);
+  val = x_60;
+  int4 x_61 = tint_div_v4i32(x_60, (2).xxxx);
+  val = x_61;
+  x_66 = false;
+  if (x_55) {
+    x_65 = all((x_61 == x_44));
+    x_66 = x_65;
+  }
+  ok = x_66;
+  return x_66;
+}
+
+void main_1() {
+  float4 outputColor_S0 = (0.0f).xxxx;
+  float4 output_S1 = (0.0f).xxxx;
+  float x_8_unknown = 0.0f;
+  bool x_9_ok = false;
+  float4 x_10_val = (0.0f).xxxx;
+  float4 x_116 = (0.0f).xxxx;
+  bool x_86 = false;
+  bool x_87 = false;
+  bool x_99 = false;
+  bool x_100 = false;
+  bool x_110 = false;
+  bool x_111 = false;
+  bool x_114 = false;
+  bool x_115 = false;
+  outputColor_S0 = vcolor_S0;
+  float x_77 = asfloat(x_4[1u].x);
+  x_8_unknown = x_77;
+  x_9_ok = true;
+  x_87 = false;
+  if (true) {
+    x_86 = all((((0.0f).xxxx / float4((x_77).xxxx)) == (0.0f).xxxx));
+    x_87 = x_86;
+  }
+  x_9_ok = x_87;
+  float4 x_89 = float4((x_77).xxxx);
+  x_10_val = x_89;
+  float4 x_92 = (x_89 + (1.0f).xxxx);
+  x_10_val = x_92;
+  float4 x_93 = (x_92 - (1.0f).xxxx);
+  x_10_val = x_93;
+  float4 x_94 = (x_93 + (1.0f).xxxx);
+  x_10_val = x_94;
+  float4 x_95 = (x_94 - (1.0f).xxxx);
+  x_10_val = x_95;
+  x_100 = false;
+  if (x_87) {
+    x_99 = all((x_95 == x_89));
+    x_100 = x_99;
+  }
+  x_9_ok = x_100;
+  float4 x_103 = (x_95 * (2.0f).xxxx);
+  x_10_val = x_103;
+  float4 x_104 = (x_103 / (2.0f).xxxx);
+  x_10_val = x_104;
+  float4 x_105 = (x_104 * (2.0f).xxxx);
+  x_10_val = x_105;
+  float4 x_106 = (x_105 / (2.0f).xxxx);
+  x_10_val = x_106;
+  x_111 = false;
+  if (x_100) {
+    x_110 = all((x_106 == x_89));
+    x_111 = x_110;
+  }
+  x_9_ok = x_111;
+  x_115 = false;
+  if (x_111) {
+    x_114 = test_int_S1_c0_b();
+    x_115 = x_114;
+  }
+  if (x_115) {
+    x_116 = asfloat(x_4[3u]);
+  } else {
+    x_116 = asfloat(x_4[2u]);
+  }
+  float4 x_125 = x_116;
+  output_S1 = x_116;
+  sk_FragColor = x_125;
+}
+
+main_out main_inner(bool sk_Clockwise_param, float4 vcolor_S0_param) {
+  sk_Clockwise = sk_Clockwise_param;
+  vcolor_S0 = vcolor_S0_param;
+  main_1();
+  main_out v = {sk_FragColor};
+  return v;
+}
+
+main_outputs main(main_inputs inputs) {
+  main_out v_1 = main_inner(inputs.sk_Clockwise_param, inputs.vcolor_S0_param);
+  main_outputs v_2 = {v_1.sk_FragColor_1};
+  return v_2;
+}
+
diff --git a/test/tint/bug/tint/1520.spvasm.expected.ir.fxc.hlsl b/test/tint/bug/tint/1520.spvasm.expected.ir.fxc.hlsl
index 48e23f4..4d00e73 100644
--- a/test/tint/bug/tint/1520.spvasm.expected.ir.fxc.hlsl
+++ b/test/tint/bug/tint/1520.spvasm.expected.ir.fxc.hlsl
@@ -1,9 +1,164 @@
-SKIP: FAILED
+struct main_out {
+  float4 sk_FragColor_1;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Convert
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct main_outputs {
+  float4 main_out_sk_FragColor_1 : SV_Target0;
+};
+
+struct main_inputs {
+  float4 vcolor_S0_param : TEXCOORD0;
+  bool sk_Clockwise_param : SV_IsFrontFace;
+};
+
+
+cbuffer cbuffer_x_4 : register(b0) {
+  uint4 x_4[7];
+};
+static float4 sk_FragColor = (0.0f).xxxx;
+static bool sk_Clockwise = false;
+static float4 vcolor_S0 = (0.0f).xxxx;
+int4 tint_div_v4i32(int4 lhs, int4 rhs) {
+  return (lhs / ((((rhs == (0).xxxx) | ((lhs == (-2147483648).xxxx) & (rhs == (-1).xxxx)))) ? ((1).xxxx) : (rhs)));
+}
+
+int tint_f32_to_i32(float value) {
+  return (((value <= 2147483520.0f)) ? ((((value >= -2147483648.0f)) ? (int(value)) : (-2147483648))) : (2147483647));
+}
+
+bool test_int_S1_c0_b() {
+  int unknown = 0;
+  bool ok = false;
+  int4 val = (0).xxxx;
+  bool x_40 = false;
+  bool x_41 = false;
+  bool x_54 = false;
+  bool x_55 = false;
+  bool x_65 = false;
+  bool x_66 = false;
+  int x_27 = tint_f32_to_i32(asfloat(x_4[1u].x));
+  unknown = x_27;
+  ok = true;
+  x_41 = false;
+  if (true) {
+    x_40 = all((tint_div_v4i32((0).xxxx, int4((x_27).xxxx)) == (0).xxxx));
+    x_41 = x_40;
+  }
+  ok = x_41;
+  int4 x_44 = int4((x_27).xxxx);
+  val = x_44;
+  int4 x_47 = (x_44 + (1).xxxx);
+  val = x_47;
+  int4 x_48 = (x_47 - (1).xxxx);
+  val = x_48;
+  int4 x_49 = (x_48 + (1).xxxx);
+  val = x_49;
+  int4 x_50 = (x_49 - (1).xxxx);
+  val = x_50;
+  x_55 = false;
+  if (x_41) {
+    x_54 = all((x_50 == x_44));
+    x_55 = x_54;
+  }
+  ok = x_55;
+  int4 x_58 = (x_50 * (2).xxxx);
+  val = x_58;
+  int4 x_59 = tint_div_v4i32(x_58, (2).xxxx);
+  val = x_59;
+  int4 x_60 = (x_59 * (2).xxxx);
+  val = x_60;
+  int4 x_61 = tint_div_v4i32(x_60, (2).xxxx);
+  val = x_61;
+  x_66 = false;
+  if (x_55) {
+    x_65 = all((x_61 == x_44));
+    x_66 = x_65;
+  }
+  ok = x_66;
+  return x_66;
+}
+
+void main_1() {
+  float4 outputColor_S0 = (0.0f).xxxx;
+  float4 output_S1 = (0.0f).xxxx;
+  float x_8_unknown = 0.0f;
+  bool x_9_ok = false;
+  float4 x_10_val = (0.0f).xxxx;
+  float4 x_116 = (0.0f).xxxx;
+  bool x_86 = false;
+  bool x_87 = false;
+  bool x_99 = false;
+  bool x_100 = false;
+  bool x_110 = false;
+  bool x_111 = false;
+  bool x_114 = false;
+  bool x_115 = false;
+  outputColor_S0 = vcolor_S0;
+  float x_77 = asfloat(x_4[1u].x);
+  x_8_unknown = x_77;
+  x_9_ok = true;
+  x_87 = false;
+  if (true) {
+    x_86 = all((((0.0f).xxxx / float4((x_77).xxxx)) == (0.0f).xxxx));
+    x_87 = x_86;
+  }
+  x_9_ok = x_87;
+  float4 x_89 = float4((x_77).xxxx);
+  x_10_val = x_89;
+  float4 x_92 = (x_89 + (1.0f).xxxx);
+  x_10_val = x_92;
+  float4 x_93 = (x_92 - (1.0f).xxxx);
+  x_10_val = x_93;
+  float4 x_94 = (x_93 + (1.0f).xxxx);
+  x_10_val = x_94;
+  float4 x_95 = (x_94 - (1.0f).xxxx);
+  x_10_val = x_95;
+  x_100 = false;
+  if (x_87) {
+    x_99 = all((x_95 == x_89));
+    x_100 = x_99;
+  }
+  x_9_ok = x_100;
+  float4 x_103 = (x_95 * (2.0f).xxxx);
+  x_10_val = x_103;
+  float4 x_104 = (x_103 / (2.0f).xxxx);
+  x_10_val = x_104;
+  float4 x_105 = (x_104 * (2.0f).xxxx);
+  x_10_val = x_105;
+  float4 x_106 = (x_105 / (2.0f).xxxx);
+  x_10_val = x_106;
+  x_111 = false;
+  if (x_100) {
+    x_110 = all((x_106 == x_89));
+    x_111 = x_110;
+  }
+  x_9_ok = x_111;
+  x_115 = false;
+  if (x_111) {
+    x_114 = test_int_S1_c0_b();
+    x_115 = x_114;
+  }
+  if (x_115) {
+    x_116 = asfloat(x_4[3u]);
+  } else {
+    x_116 = asfloat(x_4[2u]);
+  }
+  float4 x_125 = x_116;
+  output_S1 = x_116;
+  sk_FragColor = x_125;
+}
+
+main_out main_inner(bool sk_Clockwise_param, float4 vcolor_S0_param) {
+  sk_Clockwise = sk_Clockwise_param;
+  vcolor_S0 = vcolor_S0_param;
+  main_1();
+  main_out v = {sk_FragColor};
+  return v;
+}
+
+main_outputs main(main_inputs inputs) {
+  main_out v_1 = main_inner(inputs.sk_Clockwise_param, inputs.vcolor_S0_param);
+  main_outputs v_2 = {v_1.sk_FragColor_1};
+  return v_2;
+}
+
diff --git a/test/tint/bug/tint/1534.wgsl.expected.ir.dxc.hlsl b/test/tint/bug/tint/1534.wgsl.expected.ir.dxc.hlsl
index 3f437dc..9b52cf5 100644
--- a/test/tint/bug/tint/1534.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/bug/tint/1534.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,11 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Access
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+cbuffer cbuffer_i : register(b0) {
+  uint4 i[1];
+};
+RWByteAddressBuffer j : register(u1);
+[numthreads(1, 1, 1)]
+void main() {
+  uint l = dot(i[0u].xyz, i[0u].xyz);
+  j.Store(0u, i[0u].x);
+}
+
diff --git a/test/tint/bug/tint/1534.wgsl.expected.ir.fxc.hlsl b/test/tint/bug/tint/1534.wgsl.expected.ir.fxc.hlsl
index 3f437dc..9b52cf5 100644
--- a/test/tint/bug/tint/1534.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/bug/tint/1534.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,11 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Access
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+cbuffer cbuffer_i : register(b0) {
+  uint4 i[1];
+};
+RWByteAddressBuffer j : register(u1);
+[numthreads(1, 1, 1)]
+void main() {
+  uint l = dot(i[0u].xyz, i[0u].xyz);
+  j.Store(0u, i[0u].x);
+}
+
diff --git a/test/tint/bug/tint/1538.wgsl.expected.ir.dxc.hlsl b/test/tint/bug/tint/1538.wgsl.expected.ir.dxc.hlsl
index adbb0c1..5fc56ca 100644
--- a/test/tint/bug/tint/1538.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/bug/tint/1538.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,33 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:198 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Loop
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWByteAddressBuffer buf : register(u1);
+int g() {
+  return 0;
+}
+
+int f() {
+  {
+    while(true) {
+      g();
+      break;
+    }
+  }
+  int o = g();
+  return 0;
+}
+
+[numthreads(1, 1, 1)]
+void main() {
+  {
+    while(true) {
+      if ((buf.Load(0u) == 0u)) {
+        break;
+      }
+      int s = f();
+      buf.Store(0u, 0u);
+      {
+      }
+      continue;
+    }
+  }
+}
+
diff --git a/test/tint/bug/tint/1538.wgsl.expected.ir.fxc.hlsl b/test/tint/bug/tint/1538.wgsl.expected.ir.fxc.hlsl
index adbb0c1..5fc56ca 100644
--- a/test/tint/bug/tint/1538.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/bug/tint/1538.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,33 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:198 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Loop
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWByteAddressBuffer buf : register(u1);
+int g() {
+  return 0;
+}
+
+int f() {
+  {
+    while(true) {
+      g();
+      break;
+    }
+  }
+  int o = g();
+  return 0;
+}
+
+[numthreads(1, 1, 1)]
+void main() {
+  {
+    while(true) {
+      if ((buf.Load(0u) == 0u)) {
+        break;
+      }
+      int s = f();
+      buf.Store(0u, 0u);
+      {
+      }
+      continue;
+    }
+  }
+}
+
diff --git a/test/tint/bug/tint/1540.wgsl.expected.ir.dxc.hlsl b/test/tint/bug/tint/1540.wgsl.expected.ir.dxc.hlsl
index c6e1d96..4143155 100644
--- a/test/tint/bug/tint/1540.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/bug/tint/1540.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,11 @@
-SKIP: FAILED
+struct S {
+  bool e;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Construct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+
+[numthreads(1, 1, 1)]
+void main() {
+  bool b = false;
+  S v = {(true & b)};
+}
+
diff --git a/test/tint/bug/tint/1540.wgsl.expected.ir.fxc.hlsl b/test/tint/bug/tint/1540.wgsl.expected.ir.fxc.hlsl
index c6e1d96..4143155 100644
--- a/test/tint/bug/tint/1540.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/bug/tint/1540.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,11 @@
-SKIP: FAILED
+struct S {
+  bool e;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Construct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+
+[numthreads(1, 1, 1)]
+void main() {
+  bool b = false;
+  S v = {(true & b)};
+}
+
diff --git a/test/tint/bug/tint/1541.wgsl.expected.ir.dxc.hlsl b/test/tint/bug/tint/1541.wgsl.expected.ir.dxc.hlsl
index ddf0424..07160f9 100644
--- a/test/tint/bug/tint/1541.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/bug/tint/1541.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,7 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: select
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+[numthreads(1, 1, 1)]
+void main() {
+  bool a = true;
+  bool v = ((false) ? (true) : ((a & true)));
+}
+
diff --git a/test/tint/bug/tint/1541.wgsl.expected.ir.fxc.hlsl b/test/tint/bug/tint/1541.wgsl.expected.ir.fxc.hlsl
index ddf0424..07160f9 100644
--- a/test/tint/bug/tint/1541.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/bug/tint/1541.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,7 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: select
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+[numthreads(1, 1, 1)]
+void main() {
+  bool a = true;
+  bool v = ((false) ? (true) : ((a & true)));
+}
+
diff --git a/test/tint/bug/tint/1542.wgsl.expected.ir.dxc.hlsl b/test/tint/bug/tint/1542.wgsl.expected.ir.dxc.hlsl
index 3f437dc..25d7065 100644
--- a/test/tint/bug/tint/1542.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/bug/tint/1542.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,9 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Access
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+cbuffer cbuffer_u_input : register(b0) {
+  uint4 u_input[1];
+};
+[numthreads(1, 1, 1)]
+void main() {
+  int3 temp = (asint(u_input[0u].xyz) << ((0u).xxx & (31u).xxx));
+}
+
diff --git a/test/tint/bug/tint/1542.wgsl.expected.ir.fxc.hlsl b/test/tint/bug/tint/1542.wgsl.expected.ir.fxc.hlsl
index 3f437dc..25d7065 100644
--- a/test/tint/bug/tint/1542.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/bug/tint/1542.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,9 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Access
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+cbuffer cbuffer_u_input : register(b0) {
+  uint4 u_input[1];
+};
+[numthreads(1, 1, 1)]
+void main() {
+  int3 temp = (asint(u_input[0u].xyz) << ((0u).xxx & (31u).xxx));
+}
+
diff --git a/test/tint/bug/tint/1557.wgsl.expected.ir.dxc.hlsl b/test/tint/bug/tint/1557.wgsl.expected.ir.dxc.hlsl
index adbb0c1..e145b1c 100644
--- a/test/tint/bug/tint/1557.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/bug/tint/1557.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,49 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:198 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Loop
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+cbuffer cbuffer_u : register(b0) {
+  uint4 u[1];
+};
+int f() {
+  return 0;
+}
+
+void g() {
+  int j = 0;
+  {
+    while(true) {
+      if ((j >= 1)) {
+        break;
+      }
+      j = (j + 1);
+      int k = f();
+      {
+      }
+      continue;
+    }
+  }
+}
+
+[numthreads(1, 1, 1)]
+void main() {
+  switch(asint(u[0u].x)) {
+    case 0:
+    {
+      switch(asint(u[0u].x)) {
+        case 0:
+        {
+          break;
+        }
+        default:
+        {
+          g();
+          break;
+        }
+      }
+      break;
+    }
+    default:
+    {
+      break;
+    }
+  }
+}
+
diff --git a/test/tint/bug/tint/1557.wgsl.expected.ir.fxc.hlsl b/test/tint/bug/tint/1557.wgsl.expected.ir.fxc.hlsl
index adbb0c1..01feaa3 100644
--- a/test/tint/bug/tint/1557.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/bug/tint/1557.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,54 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:198 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Loop
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+
+cbuffer cbuffer_u : register(b0) {
+  uint4 u[1];
+};
+int f() {
+  return 0;
+}
+
+void g() {
+  int j = 0;
+  {
+    while(true) {
+      if ((j >= 1)) {
+        break;
+      }
+      j = (j + 1);
+      int k = f();
+      {
+      }
+      continue;
+    }
+  }
+}
+
+[numthreads(1, 1, 1)]
+void main() {
+  switch(asint(u[0u].x)) {
+    case 0:
+    {
+      switch(asint(u[0u].x)) {
+        case 0:
+        {
+          break;
+        }
+        default:
+        {
+          g();
+          break;
+        }
+      }
+      break;
+    }
+    default:
+    {
+      break;
+    }
+  }
+}
+
+FXC validation failure:
+internal error: no storage type for block output
+
diff --git a/test/tint/bug/tint/1563.wgsl.expected.ir.dxc.hlsl b/test/tint/bug/tint/1563.wgsl.expected.ir.dxc.hlsl
index 3f437dc..629cbe5 100644
--- a/test/tint/bug/tint/1563.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/bug/tint/1563.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,13 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Access
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+float foo() {
+  int oob = 99;
+  float b = (0.0f).xxxx[min(uint(oob), 3u)];
+  float4 v = (0.0f).xxxx;
+  v[min(uint(oob), 3u)] = b;
+  return b;
+}
+
+[numthreads(1, 1, 1)]
+void unused_entry_point() {
+}
+
diff --git a/test/tint/bug/tint/1563.wgsl.expected.ir.fxc.hlsl b/test/tint/bug/tint/1563.wgsl.expected.ir.fxc.hlsl
index 3f437dc..629cbe5 100644
--- a/test/tint/bug/tint/1563.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/bug/tint/1563.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,13 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Access
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+float foo() {
+  int oob = 99;
+  float b = (0.0f).xxxx[min(uint(oob), 3u)];
+  float4 v = (0.0f).xxxx;
+  v[min(uint(oob), 3u)] = b;
+  return b;
+}
+
+[numthreads(1, 1, 1)]
+void unused_entry_point() {
+}
+
diff --git a/test/tint/bug/tint/1564.wgsl.expected.ir.dxc.hlsl b/test/tint/bug/tint/1564.wgsl.expected.ir.dxc.hlsl
index 5aebc2d..5e74351 100644
--- a/test/tint/bug/tint/1564.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/bug/tint/1564.wgsl.expected.ir.dxc.hlsl
@@ -1,3 +1,4 @@
+
 void foo() {
   float b = 9.9999461e-41f;
 }
diff --git a/test/tint/bug/tint/1564.wgsl.expected.ir.fxc.hlsl b/test/tint/bug/tint/1564.wgsl.expected.ir.fxc.hlsl
index 5aebc2d..5e74351 100644
--- a/test/tint/bug/tint/1564.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/bug/tint/1564.wgsl.expected.ir.fxc.hlsl
@@ -1,3 +1,4 @@
+
 void foo() {
   float b = 9.9999461e-41f;
 }
diff --git a/test/tint/bug/tint/1573.wgsl.expected.ir.dxc.hlsl b/test/tint/bug/tint/1573.wgsl.expected.ir.dxc.hlsl
index 374b349..0787dce 100644
--- a/test/tint/bug/tint/1573.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/bug/tint/1573.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,17 @@
-SKIP: FAILED
+struct atomic_compare_exchange_result_u32 {
+  uint old_value;
+  bool exchanged;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: atomicCompareExchangeWeak
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+
+RWByteAddressBuffer a : register(u0);
+[numthreads(16, 1, 1)]
+void main() {
+  uint value = 42u;
+  uint v = value;
+  uint v_1 = 0u;
+  a.InterlockedCompareExchange(uint(0u), 0u, v, v_1);
+  uint v_2 = v_1;
+  atomic_compare_exchange_result_u32 result = {v_2, (v_2 == 0u)};
+}
+
diff --git a/test/tint/bug/tint/1573.wgsl.expected.ir.fxc.hlsl b/test/tint/bug/tint/1573.wgsl.expected.ir.fxc.hlsl
index 374b349..0787dce 100644
--- a/test/tint/bug/tint/1573.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/bug/tint/1573.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,17 @@
-SKIP: FAILED
+struct atomic_compare_exchange_result_u32 {
+  uint old_value;
+  bool exchanged;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: atomicCompareExchangeWeak
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+
+RWByteAddressBuffer a : register(u0);
+[numthreads(16, 1, 1)]
+void main() {
+  uint value = 42u;
+  uint v = value;
+  uint v_1 = 0u;
+  a.InterlockedCompareExchange(uint(0u), 0u, v, v_1);
+  uint v_2 = v_1;
+  atomic_compare_exchange_result_u32 result = {v_2, (v_2 == 0u)};
+}
+
diff --git a/test/tint/bug/tint/1574.wgsl.expected.ir.dxc.hlsl b/test/tint/bug/tint/1574.wgsl.expected.ir.dxc.hlsl
index 374b349..0ef787f 100644
--- a/test/tint/bug/tint/1574.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/bug/tint/1574.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,92 @@
-SKIP: FAILED
+struct atomic_compare_exchange_result_u32 {
+  uint old_value;
+  bool exchanged;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: atomicCompareExchangeWeak
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct atomic_compare_exchange_result_i32 {
+  int old_value;
+  bool exchanged;
+};
+
+struct main_inputs {
+  uint tint_local_index : SV_GroupIndex;
+};
+
+
+RWByteAddressBuffer a_u32 : register(u0);
+RWByteAddressBuffer a_i32 : register(u1);
+groupshared uint b_u32;
+groupshared int b_i32;
+void main_inner(uint tint_local_index) {
+  if ((tint_local_index == 0u)) {
+    uint v = 0u;
+    InterlockedExchange(b_u32, 0u, v);
+    int v_1 = 0;
+    InterlockedExchange(b_i32, 0, v_1);
+  }
+  GroupMemoryBarrierWithGroupSync();
+  uint value = 42u;
+  uint v_2 = value;
+  uint v_3 = 0u;
+  a_u32.InterlockedCompareExchange(uint(0u), 0u, v_2, v_3);
+  uint v_4 = v_3;
+  atomic_compare_exchange_result_u32 r1 = {v_4, (v_4 == 0u)};
+  uint v_5 = value;
+  uint v_6 = 0u;
+  a_u32.InterlockedCompareExchange(uint(0u), 0u, v_5, v_6);
+  uint v_7 = v_6;
+  atomic_compare_exchange_result_u32 r2 = {v_7, (v_7 == 0u)};
+  uint v_8 = value;
+  uint v_9 = 0u;
+  a_u32.InterlockedCompareExchange(uint(0u), 0u, v_8, v_9);
+  uint v_10 = v_9;
+  atomic_compare_exchange_result_u32 r3 = {v_10, (v_10 == 0u)};
+  int value_1 = 42;
+  int v_11 = value_1;
+  int v_12 = 0;
+  a_i32.InterlockedCompareExchange(int(0u), 0, v_11, v_12);
+  int v_13 = v_12;
+  atomic_compare_exchange_result_i32 r1_1 = {v_13, (v_13 == 0)};
+  int v_14 = value_1;
+  int v_15 = 0;
+  a_i32.InterlockedCompareExchange(int(0u), 0, v_14, v_15);
+  int v_16 = v_15;
+  atomic_compare_exchange_result_i32 r2_1 = {v_16, (v_16 == 0)};
+  int v_17 = value_1;
+  int v_18 = 0;
+  a_i32.InterlockedCompareExchange(int(0u), 0, v_17, v_18);
+  int v_19 = v_18;
+  atomic_compare_exchange_result_i32 r3_1 = {v_19, (v_19 == 0)};
+  uint value_2 = 42u;
+  uint v_20 = 0u;
+  InterlockedCompareExchange(b_u32, 0u, value_2, v_20);
+  uint v_21 = v_20;
+  atomic_compare_exchange_result_u32 r1_2 = {v_21, (v_21 == 0u)};
+  uint v_22 = 0u;
+  InterlockedCompareExchange(b_u32, 0u, value_2, v_22);
+  uint v_23 = v_22;
+  atomic_compare_exchange_result_u32 r2_2 = {v_23, (v_23 == 0u)};
+  uint v_24 = 0u;
+  InterlockedCompareExchange(b_u32, 0u, value_2, v_24);
+  uint v_25 = v_24;
+  atomic_compare_exchange_result_u32 r3_2 = {v_25, (v_25 == 0u)};
+  int value_3 = 42;
+  int v_26 = 0;
+  InterlockedCompareExchange(b_i32, 0, value_3, v_26);
+  int v_27 = v_26;
+  atomic_compare_exchange_result_i32 r1_3 = {v_27, (v_27 == 0)};
+  int v_28 = 0;
+  InterlockedCompareExchange(b_i32, 0, value_3, v_28);
+  int v_29 = v_28;
+  atomic_compare_exchange_result_i32 r2_3 = {v_29, (v_29 == 0)};
+  int v_30 = 0;
+  InterlockedCompareExchange(b_i32, 0, value_3, v_30);
+  int v_31 = v_30;
+  atomic_compare_exchange_result_i32 r3_3 = {v_31, (v_31 == 0)};
+}
+
+[numthreads(16, 1, 1)]
+void main(main_inputs inputs) {
+  main_inner(inputs.tint_local_index);
+}
+
diff --git a/test/tint/bug/tint/1574.wgsl.expected.ir.fxc.hlsl b/test/tint/bug/tint/1574.wgsl.expected.ir.fxc.hlsl
index 374b349..0ef787f 100644
--- a/test/tint/bug/tint/1574.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/bug/tint/1574.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,92 @@
-SKIP: FAILED
+struct atomic_compare_exchange_result_u32 {
+  uint old_value;
+  bool exchanged;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: atomicCompareExchangeWeak
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct atomic_compare_exchange_result_i32 {
+  int old_value;
+  bool exchanged;
+};
+
+struct main_inputs {
+  uint tint_local_index : SV_GroupIndex;
+};
+
+
+RWByteAddressBuffer a_u32 : register(u0);
+RWByteAddressBuffer a_i32 : register(u1);
+groupshared uint b_u32;
+groupshared int b_i32;
+void main_inner(uint tint_local_index) {
+  if ((tint_local_index == 0u)) {
+    uint v = 0u;
+    InterlockedExchange(b_u32, 0u, v);
+    int v_1 = 0;
+    InterlockedExchange(b_i32, 0, v_1);
+  }
+  GroupMemoryBarrierWithGroupSync();
+  uint value = 42u;
+  uint v_2 = value;
+  uint v_3 = 0u;
+  a_u32.InterlockedCompareExchange(uint(0u), 0u, v_2, v_3);
+  uint v_4 = v_3;
+  atomic_compare_exchange_result_u32 r1 = {v_4, (v_4 == 0u)};
+  uint v_5 = value;
+  uint v_6 = 0u;
+  a_u32.InterlockedCompareExchange(uint(0u), 0u, v_5, v_6);
+  uint v_7 = v_6;
+  atomic_compare_exchange_result_u32 r2 = {v_7, (v_7 == 0u)};
+  uint v_8 = value;
+  uint v_9 = 0u;
+  a_u32.InterlockedCompareExchange(uint(0u), 0u, v_8, v_9);
+  uint v_10 = v_9;
+  atomic_compare_exchange_result_u32 r3 = {v_10, (v_10 == 0u)};
+  int value_1 = 42;
+  int v_11 = value_1;
+  int v_12 = 0;
+  a_i32.InterlockedCompareExchange(int(0u), 0, v_11, v_12);
+  int v_13 = v_12;
+  atomic_compare_exchange_result_i32 r1_1 = {v_13, (v_13 == 0)};
+  int v_14 = value_1;
+  int v_15 = 0;
+  a_i32.InterlockedCompareExchange(int(0u), 0, v_14, v_15);
+  int v_16 = v_15;
+  atomic_compare_exchange_result_i32 r2_1 = {v_16, (v_16 == 0)};
+  int v_17 = value_1;
+  int v_18 = 0;
+  a_i32.InterlockedCompareExchange(int(0u), 0, v_17, v_18);
+  int v_19 = v_18;
+  atomic_compare_exchange_result_i32 r3_1 = {v_19, (v_19 == 0)};
+  uint value_2 = 42u;
+  uint v_20 = 0u;
+  InterlockedCompareExchange(b_u32, 0u, value_2, v_20);
+  uint v_21 = v_20;
+  atomic_compare_exchange_result_u32 r1_2 = {v_21, (v_21 == 0u)};
+  uint v_22 = 0u;
+  InterlockedCompareExchange(b_u32, 0u, value_2, v_22);
+  uint v_23 = v_22;
+  atomic_compare_exchange_result_u32 r2_2 = {v_23, (v_23 == 0u)};
+  uint v_24 = 0u;
+  InterlockedCompareExchange(b_u32, 0u, value_2, v_24);
+  uint v_25 = v_24;
+  atomic_compare_exchange_result_u32 r3_2 = {v_25, (v_25 == 0u)};
+  int value_3 = 42;
+  int v_26 = 0;
+  InterlockedCompareExchange(b_i32, 0, value_3, v_26);
+  int v_27 = v_26;
+  atomic_compare_exchange_result_i32 r1_3 = {v_27, (v_27 == 0)};
+  int v_28 = 0;
+  InterlockedCompareExchange(b_i32, 0, value_3, v_28);
+  int v_29 = v_28;
+  atomic_compare_exchange_result_i32 r2_3 = {v_29, (v_29 == 0)};
+  int v_30 = 0;
+  InterlockedCompareExchange(b_i32, 0, value_3, v_30);
+  int v_31 = v_30;
+  atomic_compare_exchange_result_i32 r3_3 = {v_31, (v_31 == 0)};
+}
+
+[numthreads(16, 1, 1)]
+void main(main_inputs inputs) {
+  main_inner(inputs.tint_local_index);
+}
+
diff --git a/test/tint/bug/tint/1598.wgsl.expected.ir.dxc.hlsl b/test/tint/bug/tint/1598.wgsl.expected.ir.dxc.hlsl
index c24863c..f5527a5 100644
--- a/test/tint/bug/tint/1598.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/bug/tint/1598.wgsl.expected.ir.dxc.hlsl
@@ -1,12 +1,5 @@
-SKIP: FAILED
 
 void main() {
-  int[5] a = (int[5])0;
+  int a[5] = (int[5])0;
 }
 
-DXC validation failure:
-hlsl.hlsl:2:11: error: brackets are not allowed here; to declare an array, place the brackets after the name
-  int[5] a = (int[5])0;
-     ~~~  ^
-          [5]
-
diff --git a/test/tint/bug/tint/1598.wgsl.expected.ir.fxc.hlsl b/test/tint/bug/tint/1598.wgsl.expected.ir.fxc.hlsl
index b02a241..f5527a5 100644
--- a/test/tint/bug/tint/1598.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/bug/tint/1598.wgsl.expected.ir.fxc.hlsl
@@ -1,6 +1,5 @@
-SKIP: FAILED
 
 void main() {
-  int[5] a = (int[5])0;
+  int a[5] = (int[5])0;
 }
 
diff --git a/test/tint/bug/tint/1604.wgsl.expected.ir.dxc.hlsl b/test/tint/bug/tint/1604.wgsl.expected.ir.dxc.hlsl
index 27c824a..72bd1d0 100644
--- a/test/tint/bug/tint/1604.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/bug/tint/1604.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,23 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:198 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Switch
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+cbuffer cbuffer_x : register(b0) {
+  uint4 x[1];
+};
+[numthreads(1, 1, 1)]
+void main() {
+  switch(asint(x[0u].x)) {
+    case 0:
+    {
+      {
+        while(true) {
+          return;
+        }
+      }
+      break;
+    }
+    default:
+    {
+      break;
+    }
+  }
+}
+
diff --git a/test/tint/bug/tint/1604.wgsl.expected.ir.fxc.hlsl b/test/tint/bug/tint/1604.wgsl.expected.ir.fxc.hlsl
index 27c824a..72bd1d0 100644
--- a/test/tint/bug/tint/1604.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/bug/tint/1604.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,23 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:198 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Switch
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+cbuffer cbuffer_x : register(b0) {
+  uint4 x[1];
+};
+[numthreads(1, 1, 1)]
+void main() {
+  switch(asint(x[0u].x)) {
+    case 0:
+    {
+      {
+        while(true) {
+          return;
+        }
+      }
+      break;
+    }
+    default:
+    {
+      break;
+    }
+  }
+}
+
diff --git a/test/tint/bug/tint/1605.wgsl.expected.ir.dxc.hlsl b/test/tint/bug/tint/1605.wgsl.expected.ir.dxc.hlsl
index adbb0c1..0b91165 100644
--- a/test/tint/bug/tint/1605.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/bug/tint/1605.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,37 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:198 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Loop
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+cbuffer cbuffer_b : register(b0) {
+  uint4 b[1];
+};
+bool func_3() {
+  {
+    int i = 0;
+    while(true) {
+      int v = i;
+      if ((v < asint(b[0u].x))) {
+      } else {
+        break;
+      }
+      {
+        int j = -1;
+        while(true) {
+          if ((j == 1)) {
+          } else {
+            break;
+          }
+          return false;
+        }
+      }
+      {
+        i = (i + 1);
+      }
+      continue;
+    }
+  }
+  return false;
+}
+
+[numthreads(1, 1, 1)]
+void main() {
+  func_3();
+}
+
diff --git a/test/tint/bug/tint/1605.wgsl.expected.ir.fxc.hlsl b/test/tint/bug/tint/1605.wgsl.expected.ir.fxc.hlsl
index adbb0c1..0b91165 100644
--- a/test/tint/bug/tint/1605.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/bug/tint/1605.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,37 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:198 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Loop
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+cbuffer cbuffer_b : register(b0) {
+  uint4 b[1];
+};
+bool func_3() {
+  {
+    int i = 0;
+    while(true) {
+      int v = i;
+      if ((v < asint(b[0u].x))) {
+      } else {
+        break;
+      }
+      {
+        int j = -1;
+        while(true) {
+          if ((j == 1)) {
+          } else {
+            break;
+          }
+          return false;
+        }
+      }
+      {
+        i = (i + 1);
+      }
+      continue;
+    }
+  }
+  return false;
+}
+
+[numthreads(1, 1, 1)]
+void main() {
+  func_3();
+}
+
diff --git a/test/tint/bug/tint/1641.wgsl.expected.ir.dxc.hlsl b/test/tint/bug/tint/1641.wgsl.expected.ir.dxc.hlsl
index c6e1d96..2f3d3bc 100644
--- a/test/tint/bug/tint/1641.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/bug/tint/1641.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,20 @@
-SKIP: FAILED
+struct Normals {
+  float3 f;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Construct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct main_outputs {
+  float4 tint_symbol : SV_Position;
+};
+
+
+float4 main_inner() {
+  int zero = 0;
+  Normals v[1] = {{float3(0.0f, 0.0f, 1.0f)}};
+  return float4(v[zero].f, 1.0f);
+}
+
+main_outputs main() {
+  main_outputs v_1 = {main_inner()};
+  return v_1;
+}
+
diff --git a/test/tint/bug/tint/1641.wgsl.expected.ir.fxc.hlsl b/test/tint/bug/tint/1641.wgsl.expected.ir.fxc.hlsl
index c6e1d96..2f3d3bc 100644
--- a/test/tint/bug/tint/1641.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/bug/tint/1641.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,20 @@
-SKIP: FAILED
+struct Normals {
+  float3 f;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Construct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct main_outputs {
+  float4 tint_symbol : SV_Position;
+};
+
+
+float4 main_inner() {
+  int zero = 0;
+  Normals v[1] = {{float3(0.0f, 0.0f, 1.0f)}};
+  return float4(v[zero].f, 1.0f);
+}
+
+main_outputs main() {
+  main_outputs v_1 = {main_inner()};
+  return v_1;
+}
+
diff --git a/test/tint/bug/tint/1653.wgsl.expected.ir.dxc.hlsl b/test/tint/bug/tint/1653.wgsl.expected.ir.dxc.hlsl
index 3f437dc..f5193a1 100644
--- a/test/tint/bug/tint/1653.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/bug/tint/1653.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,19 @@
-SKIP: FAILED
+struct vs_main_outputs {
+  float4 tint_symbol : SV_Position;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Access
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vs_main_inputs {
+  uint in_vertex_index : SV_VertexID;
+};
+
+
+float4 vs_main_inner(uint in_vertex_index) {
+  float4 v[3] = {float4(0.0f, 0.0f, 0.0f, 1.0f), float4(0.0f, 1.0f, 0.0f, 1.0f), float4(1.0f, 1.0f, 0.0f, 1.0f)};
+  return v[in_vertex_index];
+}
+
+vs_main_outputs vs_main(vs_main_inputs inputs) {
+  vs_main_outputs v_1 = {vs_main_inner(inputs.in_vertex_index)};
+  return v_1;
+}
+
diff --git a/test/tint/bug/tint/1653.wgsl.expected.ir.fxc.hlsl b/test/tint/bug/tint/1653.wgsl.expected.ir.fxc.hlsl
index 3f437dc..f5193a1 100644
--- a/test/tint/bug/tint/1653.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/bug/tint/1653.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,19 @@
-SKIP: FAILED
+struct vs_main_outputs {
+  float4 tint_symbol : SV_Position;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Access
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vs_main_inputs {
+  uint in_vertex_index : SV_VertexID;
+};
+
+
+float4 vs_main_inner(uint in_vertex_index) {
+  float4 v[3] = {float4(0.0f, 0.0f, 0.0f, 1.0f), float4(0.0f, 1.0f, 0.0f, 1.0f), float4(1.0f, 1.0f, 0.0f, 1.0f)};
+  return v[in_vertex_index];
+}
+
+vs_main_outputs vs_main(vs_main_inputs inputs) {
+  vs_main_outputs v_1 = {vs_main_inner(inputs.in_vertex_index)};
+  return v_1;
+}
+
diff --git a/test/tint/bug/tint/1660.wgsl.expected.ir.dxc.hlsl b/test/tint/bug/tint/1660.wgsl.expected.ir.dxc.hlsl
index 9acd2d7..4281f80 100644
--- a/test/tint/bug/tint/1660.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/bug/tint/1660.wgsl.expected.ir.dxc.hlsl
@@ -1,3 +1,5 @@
+
+groupshared float a[2];
 [numthreads(1, 1, 1)]
 void unused_entry_point() {
 }
diff --git a/test/tint/bug/tint/1660.wgsl.expected.ir.fxc.hlsl b/test/tint/bug/tint/1660.wgsl.expected.ir.fxc.hlsl
index 9acd2d7..4281f80 100644
--- a/test/tint/bug/tint/1660.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/bug/tint/1660.wgsl.expected.ir.fxc.hlsl
@@ -1,3 +1,5 @@
+
+groupshared float a[2];
 [numthreads(1, 1, 1)]
 void unused_entry_point() {
 }
diff --git a/test/tint/bug/tint/1664.wgsl.expected.ir.dxc.hlsl b/test/tint/bug/tint/1664.wgsl.expected.ir.dxc.hlsl
index 8f95c1c..85d8ade 100644
--- a/test/tint/bug/tint/1664.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/bug/tint/1664.wgsl.expected.ir.dxc.hlsl
@@ -1,3 +1,4 @@
+
 [numthreads(1, 1, 1)]
 void f0() {
   int a = 2147483647;
diff --git a/test/tint/bug/tint/1664.wgsl.expected.ir.fxc.hlsl b/test/tint/bug/tint/1664.wgsl.expected.ir.fxc.hlsl
index b100df5..85d8ade 100644
--- a/test/tint/bug/tint/1664.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/bug/tint/1664.wgsl.expected.ir.fxc.hlsl
@@ -1,4 +1,3 @@
-SKIP: FAILED
 
 [numthreads(1, 1, 1)]
 void f0() {
diff --git a/test/tint/bug/tint/1666.wgsl.expected.ir.dxc.hlsl b/test/tint/bug/tint/1666.wgsl.expected.ir.dxc.hlsl
index 3f437dc..41c04bd 100644
--- a/test/tint/bug/tint/1666.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/bug/tint/1666.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,32 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Access
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+ByteAddressBuffer rarr : register(t0);
+void tint_symbol() {
+  int idx = 3;
+  int x = int2(1, 2)[idx];
+}
+
+void tint_symbol_1() {
+  int idx = 4;
+  float2 x = float2x2(float2(1.0f, 2.0f), float2(3.0f, 4.0f))[idx];
+}
+
+void fixed_size_array() {
+  int v[2] = {1, 2};
+  int idx = 3;
+  int arr[2] = v;
+  int x = arr[idx];
+}
+
+void runtime_size_array() {
+  int idx = -1;
+  float x = asfloat(rarr.Load((0u + (uint(idx) * 4u))));
+}
+
+[numthreads(1, 1, 1)]
+void f() {
+  tint_symbol();
+  tint_symbol_1();
+  fixed_size_array();
+  runtime_size_array();
+}
+
diff --git a/test/tint/bug/tint/1666.wgsl.expected.ir.fxc.hlsl b/test/tint/bug/tint/1666.wgsl.expected.ir.fxc.hlsl
index 3f437dc..65c35dd 100644
--- a/test/tint/bug/tint/1666.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/bug/tint/1666.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,37 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Access
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+
+ByteAddressBuffer rarr : register(t0);
+void tint_symbol() {
+  int idx = 3;
+  int x = int2(1, 2)[idx];
+}
+
+void tint_symbol_1() {
+  int idx = 4;
+  float2 x = float2x2(float2(1.0f, 2.0f), float2(3.0f, 4.0f))[idx];
+}
+
+void fixed_size_array() {
+  int v[2] = {1, 2};
+  int idx = 3;
+  int arr[2] = v;
+  int x = arr[idx];
+}
+
+void runtime_size_array() {
+  int idx = -1;
+  float x = asfloat(rarr.Load((0u + (uint(idx) * 4u))));
+}
+
+[numthreads(1, 1, 1)]
+void f() {
+  tint_symbol();
+  tint_symbol_1();
+  fixed_size_array();
+  runtime_size_array();
+}
+
+FXC validation failure:
+c:\src\dawn\Shader@0x00000258BAD45980(5,11-25): error X3504: array index out of bounds
+
diff --git a/test/tint/bug/tint/1670.spvasm.expected.ir.dxc.hlsl b/test/tint/bug/tint/1670.spvasm.expected.ir.dxc.hlsl
index c6e1d96..7c00fde 100644
--- a/test/tint/bug/tint/1670.spvasm.expected.ir.dxc.hlsl
+++ b/test/tint/bug/tint/1670.spvasm.expected.ir.dxc.hlsl
@@ -1,9 +1,26 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Construct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+void main_1() {
+  float2x2 m2i = float2x2((0.0f).xx, (0.0f).xx);
+  float2x2 m2 = float2x2((0.0f).xx, (0.0f).xx);
+  float3x3 m3i = float3x3((0.0f).xxx, (0.0f).xxx, (0.0f).xxx);
+  float3x3 m3 = float3x3((0.0f).xxx, (0.0f).xxx, (0.0f).xxx);
+  float4x4 m4i = float4x4((0.0f).xxxx, (0.0f).xxxx, (0.0f).xxxx, (0.0f).xxxx);
+  float4x4 m4 = float4x4((0.0f).xxxx, (0.0f).xxxx, (0.0f).xxxx, (0.0f).xxxx);
+  float s = (1.0f / determinant(m2));
+  float2 v = float2((s * m2[1u].y), (-(s) * m2[0u].y));
+  m2i = float2x2(v, float2((-(s) * m2[1u].x), (s * m2[0u].x)));
+  float v_1 = (1.0f / determinant(m3));
+  float3 v_2 = float3(((m3[1u].y * m3[2u].z) - (m3[1u].z * m3[2u].y)), ((m3[0u].z * m3[2u].y) - (m3[0u].y * m3[2u].z)), ((m3[0u].y * m3[1u].z) - (m3[0u].z * m3[1u].y)));
+  float3 v_3 = float3(((m3[1u].z * m3[2u].x) - (m3[1u].x * m3[2u].z)), ((m3[0u].x * m3[2u].z) - (m3[0u].z * m3[2u].x)), ((m3[0u].z * m3[1u].x) - (m3[0u].x * m3[1u].z)));
+  m3i = (v_1 * float3x3(v_2, v_3, float3(((m3[1u].x * m3[2u].y) - (m3[1u].y * m3[2u].x)), ((m3[0u].y * m3[2u].x) - (m3[0u].x * m3[2u].y)), ((m3[0u].x * m3[1u].y) - (m3[0u].y * m3[1u].x)))));
+  float v_4 = (1.0f / determinant(m4));
+  float4 v_5 = float4((((m4[1u].y * ((m4[2u].z * m4[3u].w) - (m4[2u].w * m4[3u].z))) - (m4[1u].z * ((m4[2u].y * m4[3u].w) - (m4[2u].w * m4[3u].y)))) + (m4[1u].w * ((m4[2u].y * m4[3u].z) - (m4[2u].z * m4[3u].y)))), (((-(m4[0u].y) * ((m4[2u].z * m4[3u].w) - (m4[2u].w * m4[3u].z))) + (m4[0u].z * ((m4[2u].y * m4[3u].w) - (m4[2u].w * m4[3u].y)))) - (m4[0u].w * ((m4[2u].y * m4[3u].z) - (m4[2u].z * m4[3u].y)))), (((m4[0u].y * ((m4[1u].z * m4[3u].w) - (m4[1u].w * m4[3u].z))) - (m4[0u].z * ((m4[1u].y * m4[3u].w) - (m4[1u].w * m4[3u].y)))) + (m4[0u].w * ((m4[1u].y * m4[3u].z) - (m4[1u].z * m4[3u].y)))), (((-(m4[0u].y) * ((m4[1u].z * m4[2u].w) - (m4[1u].w * m4[2u].z))) + (m4[0u].z * ((m4[1u].y * m4[2u].w) - (m4[1u].w * m4[2u].y)))) - (m4[0u].w * ((m4[1u].y * m4[2u].z) - (m4[1u].z * m4[2u].y)))));
+  float4 v_6 = float4((((-(m4[1u].x) * ((m4[2u].z * m4[3u].w) - (m4[2u].w * m4[3u].z))) + (m4[1u].z * ((m4[2u].x * m4[3u].w) - (m4[2u].w * m4[3u].x)))) - (m4[1u].w * ((m4[2u].x * m4[3u].z) - (m4[2u].z * m4[3u].x)))), (((m4[0u].x * ((m4[2u].z * m4[3u].w) - (m4[2u].w * m4[3u].z))) - (m4[0u].z * ((m4[2u].x * m4[3u].w) - (m4[2u].w * m4[3u].x)))) + (m4[0u].w * ((m4[2u].x * m4[3u].z) - (m4[2u].z * m4[3u].x)))), (((-(m4[0u].x) * ((m4[1u].z * m4[3u].w) - (m4[1u].w * m4[3u].z))) + (m4[0u].z * ((m4[1u].x * m4[3u].w) - (m4[1u].w * m4[3u].x)))) - (m4[0u].w * ((m4[1u].x * m4[3u].z) - (m4[1u].z * m4[3u].x)))), (((m4[0u].x * ((m4[1u].z * m4[2u].w) - (m4[1u].w * m4[2u].z))) - (m4[0u].z * ((m4[1u].x * m4[2u].w) - (m4[1u].w * m4[2u].x)))) + (m4[0u].w * ((m4[1u].x * m4[2u].z) - (m4[1u].z * m4[2u].x)))));
+  float4 v_7 = float4((((m4[1u].x * ((m4[2u].y * m4[3u].w) - (m4[2u].w * m4[3u].y))) - (m4[1u].y * ((m4[2u].x * m4[3u].w) - (m4[2u].w * m4[3u].x)))) + (m4[1u].w * ((m4[2u].x * m4[3u].y) - (m4[2u].y * m4[3u].x)))), (((-(m4[0u].x) * ((m4[2u].y * m4[3u].w) - (m4[2u].w * m4[3u].y))) + (m4[0u].y * ((m4[2u].x * m4[3u].w) - (m4[2u].w * m4[3u].x)))) - (m4[0u].w * ((m4[2u].x * m4[3u].y) - (m4[2u].y * m4[3u].x)))), (((m4[0u].x * ((m4[1u].y * m4[3u].w) - (m4[1u].w * m4[3u].y))) - (m4[0u].y * ((m4[1u].x * m4[3u].w) - (m4[1u].w * m4[3u].x)))) + (m4[0u].w * ((m4[1u].x * m4[3u].y) - (m4[1u].y * m4[3u].x)))), (((-(m4[0u].x) * ((m4[1u].y * m4[2u].w) - (m4[1u].w * m4[2u].y))) + (m4[0u].y * ((m4[1u].x * m4[2u].w) - (m4[1u].w * m4[2u].x)))) - (m4[0u].w * ((m4[1u].x * m4[2u].y) - (m4[1u].y * m4[2u].x)))));
+  m4i = (v_4 * float4x4(v_5, v_6, v_7, float4((((-(m4[1u].x) * ((m4[2u].y * m4[3u].z) - (m4[2u].z * m4[3u].y))) + (m4[1u].y * ((m4[2u].x * m4[3u].z) - (m4[2u].z * m4[3u].x)))) - (m4[1u].z * ((m4[2u].x * m4[3u].y) - (m4[2u].y * m4[3u].x)))), (((m4[0u].x * ((m4[2u].y * m4[3u].z) - (m4[2u].z * m4[3u].y))) - (m4[0u].y * ((m4[2u].x * m4[3u].z) - (m4[2u].z * m4[3u].x)))) + (m4[0u].z * ((m4[2u].x * m4[3u].y) - (m4[2u].y * m4[3u].x)))), (((-(m4[0u].x) * ((m4[1u].y * m4[3u].z) - (m4[1u].z * m4[3u].y))) + (m4[0u].y * ((m4[1u].x * m4[3u].z) - (m4[1u].z * m4[3u].x)))) - (m4[0u].z * ((m4[1u].x * m4[3u].y) - (m4[1u].y * m4[3u].x)))), (((m4[0u].x * ((m4[1u].y * m4[2u].z) - (m4[1u].z * m4[2u].y))) - (m4[0u].y * ((m4[1u].x * m4[2u].z) - (m4[1u].z * m4[2u].x)))) + (m4[0u].z * ((m4[1u].x * m4[2u].y) - (m4[1u].y * m4[2u].x)))))));
+}
+
+void main() {
+  main_1();
+}
+
diff --git a/test/tint/bug/tint/1670.spvasm.expected.ir.fxc.hlsl b/test/tint/bug/tint/1670.spvasm.expected.ir.fxc.hlsl
index c6e1d96..7c00fde 100644
--- a/test/tint/bug/tint/1670.spvasm.expected.ir.fxc.hlsl
+++ b/test/tint/bug/tint/1670.spvasm.expected.ir.fxc.hlsl
@@ -1,9 +1,26 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Construct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+void main_1() {
+  float2x2 m2i = float2x2((0.0f).xx, (0.0f).xx);
+  float2x2 m2 = float2x2((0.0f).xx, (0.0f).xx);
+  float3x3 m3i = float3x3((0.0f).xxx, (0.0f).xxx, (0.0f).xxx);
+  float3x3 m3 = float3x3((0.0f).xxx, (0.0f).xxx, (0.0f).xxx);
+  float4x4 m4i = float4x4((0.0f).xxxx, (0.0f).xxxx, (0.0f).xxxx, (0.0f).xxxx);
+  float4x4 m4 = float4x4((0.0f).xxxx, (0.0f).xxxx, (0.0f).xxxx, (0.0f).xxxx);
+  float s = (1.0f / determinant(m2));
+  float2 v = float2((s * m2[1u].y), (-(s) * m2[0u].y));
+  m2i = float2x2(v, float2((-(s) * m2[1u].x), (s * m2[0u].x)));
+  float v_1 = (1.0f / determinant(m3));
+  float3 v_2 = float3(((m3[1u].y * m3[2u].z) - (m3[1u].z * m3[2u].y)), ((m3[0u].z * m3[2u].y) - (m3[0u].y * m3[2u].z)), ((m3[0u].y * m3[1u].z) - (m3[0u].z * m3[1u].y)));
+  float3 v_3 = float3(((m3[1u].z * m3[2u].x) - (m3[1u].x * m3[2u].z)), ((m3[0u].x * m3[2u].z) - (m3[0u].z * m3[2u].x)), ((m3[0u].z * m3[1u].x) - (m3[0u].x * m3[1u].z)));
+  m3i = (v_1 * float3x3(v_2, v_3, float3(((m3[1u].x * m3[2u].y) - (m3[1u].y * m3[2u].x)), ((m3[0u].y * m3[2u].x) - (m3[0u].x * m3[2u].y)), ((m3[0u].x * m3[1u].y) - (m3[0u].y * m3[1u].x)))));
+  float v_4 = (1.0f / determinant(m4));
+  float4 v_5 = float4((((m4[1u].y * ((m4[2u].z * m4[3u].w) - (m4[2u].w * m4[3u].z))) - (m4[1u].z * ((m4[2u].y * m4[3u].w) - (m4[2u].w * m4[3u].y)))) + (m4[1u].w * ((m4[2u].y * m4[3u].z) - (m4[2u].z * m4[3u].y)))), (((-(m4[0u].y) * ((m4[2u].z * m4[3u].w) - (m4[2u].w * m4[3u].z))) + (m4[0u].z * ((m4[2u].y * m4[3u].w) - (m4[2u].w * m4[3u].y)))) - (m4[0u].w * ((m4[2u].y * m4[3u].z) - (m4[2u].z * m4[3u].y)))), (((m4[0u].y * ((m4[1u].z * m4[3u].w) - (m4[1u].w * m4[3u].z))) - (m4[0u].z * ((m4[1u].y * m4[3u].w) - (m4[1u].w * m4[3u].y)))) + (m4[0u].w * ((m4[1u].y * m4[3u].z) - (m4[1u].z * m4[3u].y)))), (((-(m4[0u].y) * ((m4[1u].z * m4[2u].w) - (m4[1u].w * m4[2u].z))) + (m4[0u].z * ((m4[1u].y * m4[2u].w) - (m4[1u].w * m4[2u].y)))) - (m4[0u].w * ((m4[1u].y * m4[2u].z) - (m4[1u].z * m4[2u].y)))));
+  float4 v_6 = float4((((-(m4[1u].x) * ((m4[2u].z * m4[3u].w) - (m4[2u].w * m4[3u].z))) + (m4[1u].z * ((m4[2u].x * m4[3u].w) - (m4[2u].w * m4[3u].x)))) - (m4[1u].w * ((m4[2u].x * m4[3u].z) - (m4[2u].z * m4[3u].x)))), (((m4[0u].x * ((m4[2u].z * m4[3u].w) - (m4[2u].w * m4[3u].z))) - (m4[0u].z * ((m4[2u].x * m4[3u].w) - (m4[2u].w * m4[3u].x)))) + (m4[0u].w * ((m4[2u].x * m4[3u].z) - (m4[2u].z * m4[3u].x)))), (((-(m4[0u].x) * ((m4[1u].z * m4[3u].w) - (m4[1u].w * m4[3u].z))) + (m4[0u].z * ((m4[1u].x * m4[3u].w) - (m4[1u].w * m4[3u].x)))) - (m4[0u].w * ((m4[1u].x * m4[3u].z) - (m4[1u].z * m4[3u].x)))), (((m4[0u].x * ((m4[1u].z * m4[2u].w) - (m4[1u].w * m4[2u].z))) - (m4[0u].z * ((m4[1u].x * m4[2u].w) - (m4[1u].w * m4[2u].x)))) + (m4[0u].w * ((m4[1u].x * m4[2u].z) - (m4[1u].z * m4[2u].x)))));
+  float4 v_7 = float4((((m4[1u].x * ((m4[2u].y * m4[3u].w) - (m4[2u].w * m4[3u].y))) - (m4[1u].y * ((m4[2u].x * m4[3u].w) - (m4[2u].w * m4[3u].x)))) + (m4[1u].w * ((m4[2u].x * m4[3u].y) - (m4[2u].y * m4[3u].x)))), (((-(m4[0u].x) * ((m4[2u].y * m4[3u].w) - (m4[2u].w * m4[3u].y))) + (m4[0u].y * ((m4[2u].x * m4[3u].w) - (m4[2u].w * m4[3u].x)))) - (m4[0u].w * ((m4[2u].x * m4[3u].y) - (m4[2u].y * m4[3u].x)))), (((m4[0u].x * ((m4[1u].y * m4[3u].w) - (m4[1u].w * m4[3u].y))) - (m4[0u].y * ((m4[1u].x * m4[3u].w) - (m4[1u].w * m4[3u].x)))) + (m4[0u].w * ((m4[1u].x * m4[3u].y) - (m4[1u].y * m4[3u].x)))), (((-(m4[0u].x) * ((m4[1u].y * m4[2u].w) - (m4[1u].w * m4[2u].y))) + (m4[0u].y * ((m4[1u].x * m4[2u].w) - (m4[1u].w * m4[2u].x)))) - (m4[0u].w * ((m4[1u].x * m4[2u].y) - (m4[1u].y * m4[2u].x)))));
+  m4i = (v_4 * float4x4(v_5, v_6, v_7, float4((((-(m4[1u].x) * ((m4[2u].y * m4[3u].z) - (m4[2u].z * m4[3u].y))) + (m4[1u].y * ((m4[2u].x * m4[3u].z) - (m4[2u].z * m4[3u].x)))) - (m4[1u].z * ((m4[2u].x * m4[3u].y) - (m4[2u].y * m4[3u].x)))), (((m4[0u].x * ((m4[2u].y * m4[3u].z) - (m4[2u].z * m4[3u].y))) - (m4[0u].y * ((m4[2u].x * m4[3u].z) - (m4[2u].z * m4[3u].x)))) + (m4[0u].z * ((m4[2u].x * m4[3u].y) - (m4[2u].y * m4[3u].x)))), (((-(m4[0u].x) * ((m4[1u].y * m4[3u].z) - (m4[1u].z * m4[3u].y))) + (m4[0u].y * ((m4[1u].x * m4[3u].z) - (m4[1u].z * m4[3u].x)))) - (m4[0u].z * ((m4[1u].x * m4[3u].y) - (m4[1u].y * m4[3u].x)))), (((m4[0u].x * ((m4[1u].y * m4[2u].z) - (m4[1u].z * m4[2u].y))) - (m4[0u].y * ((m4[1u].x * m4[2u].z) - (m4[1u].z * m4[2u].x)))) + (m4[0u].z * ((m4[1u].x * m4[2u].y) - (m4[1u].y * m4[2u].x)))))));
+}
+
+void main() {
+  main_1();
+}
+
diff --git a/test/tint/bug/tint/1677.wgsl.expected.ir.dxc.hlsl b/test/tint/bug/tint/1677.wgsl.expected.ir.dxc.hlsl
index 3f437dc..5935c96 100644
--- a/test/tint/bug/tint/1677.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/bug/tint/1677.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,15 @@
-SKIP: FAILED
+struct main_inputs {
+  uint3 id : SV_DispatchThreadID;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Access
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+
+ByteAddressBuffer input : register(t0);
+void main_inner(uint3 id) {
+  int3 pos = (asint(input.Load3(0u)) - (0).xxx);
+}
+
+[numthreads(1, 1, 1)]
+void main(main_inputs inputs) {
+  main_inner(inputs.id);
+}
+
diff --git a/test/tint/bug/tint/1677.wgsl.expected.ir.fxc.hlsl b/test/tint/bug/tint/1677.wgsl.expected.ir.fxc.hlsl
index 3f437dc..5935c96 100644
--- a/test/tint/bug/tint/1677.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/bug/tint/1677.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,15 @@
-SKIP: FAILED
+struct main_inputs {
+  uint3 id : SV_DispatchThreadID;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Access
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+
+ByteAddressBuffer input : register(t0);
+void main_inner(uint3 id) {
+  int3 pos = (asint(input.Load3(0u)) - (0).xxx);
+}
+
+[numthreads(1, 1, 1)]
+void main(main_inputs inputs) {
+  main_inner(inputs.id);
+}
+
diff --git a/test/tint/bug/tint/1697.wgsl.expected.ir.dxc.hlsl b/test/tint/bug/tint/1697.wgsl.expected.ir.dxc.hlsl
index d553e3d..f69e659 100644
--- a/test/tint/bug/tint/1697.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/bug/tint/1697.wgsl.expected.ir.dxc.hlsl
@@ -1,3 +1,4 @@
+
 void f() {
   int v = 0;
 }
diff --git a/test/tint/bug/tint/1697.wgsl.expected.ir.fxc.hlsl b/test/tint/bug/tint/1697.wgsl.expected.ir.fxc.hlsl
index d553e3d..f69e659 100644
--- a/test/tint/bug/tint/1697.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/bug/tint/1697.wgsl.expected.ir.fxc.hlsl
@@ -1,3 +1,4 @@
+
 void f() {
   int v = 0;
 }
diff --git a/test/tint/bug/tint/1703.wgsl.expected.ir.dxc.hlsl b/test/tint/bug/tint/1703.wgsl.expected.ir.dxc.hlsl
index c0935cc..49d2f50 100644
--- a/test/tint/bug/tint/1703.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/bug/tint/1703.wgsl.expected.ir.dxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:198 internal compiler error: Switch() matched no cases. Type: tint::core::ir::StoreVectorElement
+..\..\src\tint\lang\hlsl\writer\printer\printer.cc:1010 internal compiler error: TINT_UNREACHABLE unhandled: textureSampleBias
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/bug/tint/1703.wgsl.expected.ir.fxc.hlsl b/test/tint/bug/tint/1703.wgsl.expected.ir.fxc.hlsl
index c0935cc..49d2f50 100644
--- a/test/tint/bug/tint/1703.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/bug/tint/1703.wgsl.expected.ir.fxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:198 internal compiler error: Switch() matched no cases. Type: tint::core::ir::StoreVectorElement
+..\..\src\tint\lang\hlsl\writer\printer\printer.cc:1010 internal compiler error: TINT_UNREACHABLE unhandled: textureSampleBias
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/bug/tint/1713.wgsl.expected.ir.dxc.hlsl b/test/tint/bug/tint/1713.wgsl.expected.ir.dxc.hlsl
index 9acd2d7..4c78d49 100644
--- a/test/tint/bug/tint/1713.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/bug/tint/1713.wgsl.expected.ir.dxc.hlsl
@@ -1,3 +1,4 @@
+
 [numthreads(1, 1, 1)]
 void unused_entry_point() {
 }
diff --git a/test/tint/bug/tint/1713.wgsl.expected.ir.fxc.hlsl b/test/tint/bug/tint/1713.wgsl.expected.ir.fxc.hlsl
index 9acd2d7..4c78d49 100644
--- a/test/tint/bug/tint/1713.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/bug/tint/1713.wgsl.expected.ir.fxc.hlsl
@@ -1,3 +1,4 @@
+
 [numthreads(1, 1, 1)]
 void unused_entry_point() {
 }
diff --git a/test/tint/bug/tint/1717.wgsl.expected.ir.dxc.hlsl b/test/tint/bug/tint/1717.wgsl.expected.ir.dxc.hlsl
index 65d4a02..5d5d627 100644
--- a/test/tint/bug/tint/1717.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/bug/tint/1717.wgsl.expected.ir.dxc.hlsl
@@ -1,3 +1,4 @@
+
 uint f() {
   return 2147483648u;
 }
diff --git a/test/tint/bug/tint/1717.wgsl.expected.ir.fxc.hlsl b/test/tint/bug/tint/1717.wgsl.expected.ir.fxc.hlsl
index 65d4a02..5d5d627 100644
--- a/test/tint/bug/tint/1717.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/bug/tint/1717.wgsl.expected.ir.fxc.hlsl
@@ -1,3 +1,4 @@
+
 uint f() {
   return 2147483648u;
 }
diff --git a/test/tint/bug/tint/1725.wgsl.expected.ir.dxc.hlsl b/test/tint/bug/tint/1725.wgsl.expected.ir.dxc.hlsl
index 3f437dc..0c4f3d1 100644
--- a/test/tint/bug/tint/1725.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/bug/tint/1725.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,20 @@
-SKIP: FAILED
+struct tint_symbol_1_inputs {
+  uint tint_symbol_2 : SV_GroupIndex;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Access
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+
+ByteAddressBuffer tint_symbol : register(t0);
+void tint_symbol_1_inner(uint tint_symbol_2) {
+  int tint_symbol_3 = 0;
+  int tint_symbol_4 = 0;
+  int tint_symbol_5 = 0;
+  uint v = 0u;
+  tint_symbol.GetDimensions(v);
+  uint tint_symbol_6 = tint_symbol.Load((0u + (uint(min(tint_symbol_2, ((v / 4u) - 1u))) * 4u)));
+}
+
+[numthreads(1, 1, 1)]
+void tint_symbol_1(tint_symbol_1_inputs inputs) {
+  tint_symbol_1_inner(inputs.tint_symbol_2);
+}
+
diff --git a/test/tint/bug/tint/1725.wgsl.expected.ir.fxc.hlsl b/test/tint/bug/tint/1725.wgsl.expected.ir.fxc.hlsl
index 3f437dc..0c4f3d1 100644
--- a/test/tint/bug/tint/1725.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/bug/tint/1725.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,20 @@
-SKIP: FAILED
+struct tint_symbol_1_inputs {
+  uint tint_symbol_2 : SV_GroupIndex;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Access
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+
+ByteAddressBuffer tint_symbol : register(t0);
+void tint_symbol_1_inner(uint tint_symbol_2) {
+  int tint_symbol_3 = 0;
+  int tint_symbol_4 = 0;
+  int tint_symbol_5 = 0;
+  uint v = 0u;
+  tint_symbol.GetDimensions(v);
+  uint tint_symbol_6 = tint_symbol.Load((0u + (uint(min(tint_symbol_2, ((v / 4u) - 1u))) * 4u)));
+}
+
+[numthreads(1, 1, 1)]
+void tint_symbol_1(tint_symbol_1_inputs inputs) {
+  tint_symbol_1_inner(inputs.tint_symbol_2);
+}
+
diff --git a/test/tint/bug/tint/1731.wgsl.expected.ir.dxc.hlsl b/test/tint/bug/tint/1731.wgsl.expected.ir.dxc.hlsl
index 115c2b3..35446f2 100644
--- a/test/tint/bug/tint/1731.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/bug/tint/1731.wgsl.expected.ir.dxc.hlsl
@@ -1,3 +1,4 @@
+
 void g() {
 }
 
diff --git a/test/tint/bug/tint/1731.wgsl.expected.ir.fxc.hlsl b/test/tint/bug/tint/1731.wgsl.expected.ir.fxc.hlsl
index 115c2b3..35446f2 100644
--- a/test/tint/bug/tint/1731.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/bug/tint/1731.wgsl.expected.ir.fxc.hlsl
@@ -1,3 +1,4 @@
+
 void g() {
 }
 
diff --git a/test/tint/bug/tint/1735.wgsl.expected.ir.dxc.hlsl b/test/tint/bug/tint/1735.wgsl.expected.ir.dxc.hlsl
index 0d340d9..ae00729 100644
--- a/test/tint/bug/tint/1735.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/bug/tint/1735.wgsl.expected.ir.dxc.hlsl
@@ -1,15 +1,22 @@
-SKIP: FAILED
+struct S {
+  float f;
+};
+
+
+ByteAddressBuffer tint_symbol : register(t0);
+RWByteAddressBuffer tint_symbol_1 : register(u1);
+void v(uint offset, S obj) {
+  tint_symbol_1.Store((offset + 0u), asuint(obj.f));
+}
+
+S v_1(uint offset) {
+  S v_2 = {asfloat(tint_symbol.Load((offset + 0u)))};
+  return v_2;
+}
 
 [numthreads(1, 1, 1)]
 void main() {
-  tint_symbol_1 = tint_symbol;
+  S v_3 = v_1(0u);
+  v(0u, v_3);
 }
 
-DXC validation failure:
-hlsl.hlsl:3:3: error: use of undeclared identifier 'tint_symbol_1'
-  tint_symbol_1 = tint_symbol;
-  ^
-hlsl.hlsl:3:19: error: use of undeclared identifier 'tint_symbol'
-  tint_symbol_1 = tint_symbol;
-                  ^
-
diff --git a/test/tint/bug/tint/1735.wgsl.expected.ir.fxc.hlsl b/test/tint/bug/tint/1735.wgsl.expected.ir.fxc.hlsl
index d46e160..ae00729 100644
--- a/test/tint/bug/tint/1735.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/bug/tint/1735.wgsl.expected.ir.fxc.hlsl
@@ -1,7 +1,22 @@
-SKIP: FAILED
+struct S {
+  float f;
+};
+
+
+ByteAddressBuffer tint_symbol : register(t0);
+RWByteAddressBuffer tint_symbol_1 : register(u1);
+void v(uint offset, S obj) {
+  tint_symbol_1.Store((offset + 0u), asuint(obj.f));
+}
+
+S v_1(uint offset) {
+  S v_2 = {asfloat(tint_symbol.Load((offset + 0u)))};
+  return v_2;
+}
 
 [numthreads(1, 1, 1)]
 void main() {
-  tint_symbol_1 = tint_symbol;
+  S v_3 = v_1(0u);
+  v(0u, v_3);
 }
 
diff --git a/test/tint/bug/tint/1737.wgsl.expected.ir.dxc.hlsl b/test/tint/bug/tint/1737.wgsl.expected.ir.dxc.hlsl
index 3f437dc..022f368 100644
--- a/test/tint/bug/tint/1737.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/bug/tint/1737.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,12 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Access
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+groupshared float a[10];
+groupshared float b[20];
+void f() {
+  float x = a[0];
+  float y = b[0];
+}
+
+[numthreads(1, 1, 1)]
+void unused_entry_point() {
+}
+
diff --git a/test/tint/bug/tint/1737.wgsl.expected.ir.fxc.hlsl b/test/tint/bug/tint/1737.wgsl.expected.ir.fxc.hlsl
index 3f437dc..022f368 100644
--- a/test/tint/bug/tint/1737.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/bug/tint/1737.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,12 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Access
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+groupshared float a[10];
+groupshared float b[20];
+void f() {
+  float x = a[0];
+  float y = b[0];
+}
+
+[numthreads(1, 1, 1)]
+void unused_entry_point() {
+}
+
diff --git a/test/tint/bug/tint/1739.wgsl.expected.ir.dxc.hlsl b/test/tint/bug/tint/1739.wgsl.expected.ir.dxc.hlsl
index fd28383..7669526 100644
--- a/test/tint/bug/tint/1739.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/bug/tint/1739.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,170 @@
-SKIP: FAILED
+struct tint_GammaTransferParams {
+  float G;
+  float A;
+  float B;
+  float C;
+  float D;
+  float E;
+  float F;
+  uint padding;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureLoad
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct tint_ExternalTextureParams {
+  uint numPlanes;
+  uint doYuvToRgbConversionOnly;
+  float3x4 yuvToRgbConversionMatrix;
+  tint_GammaTransferParams gammaDecodeParams;
+  tint_GammaTransferParams gammaEncodeParams;
+  float3x3 gamutConversionMatrix;
+  float3x2 sampleTransform;
+  float3x2 loadTransform;
+  float2 samplePlane0RectMin;
+  float2 samplePlane0RectMax;
+  float2 samplePlane1RectMin;
+  float2 samplePlane1RectMax;
+  uint2 visibleSize;
+  float2 plane1CoordFactor;
+};
+
+
+Texture2D<float4> t_plane0 : register(t0);
+Texture2D<float4> t_plane1 : register(t2);
+cbuffer cbuffer_t_params : register(b3) {
+  uint4 t_params[17];
+};
+RWTexture2D<float4> outImage : register(u1);
+uint2 tint_v2f32_to_v2u32(float2 value) {
+  return (((value <= (4294967040.0f).xx)) ? ((((value >= (0.0f).xx)) ? (uint2(value)) : ((0u).xx))) : ((4294967295u).xx));
+}
+
+float3 tint_GammaCorrection(float3 v, tint_GammaTransferParams params) {
+  float3 v_1 = float3((params.G).xxx);
+  float3 v_2 = float3((params.D).xxx);
+  float3 v_3 = abs(v);
+  float3 v_4 = float3(sign(v));
+  return (((v_3 < v_2)) ? ((v_4 * ((params.C * v_3) + params.F))) : ((v_4 * (pow(((params.A * v_3) + params.B), v_1) + params.E))));
+}
+
+float4 tint_TextureLoadExternal(Texture2D<float4> plane_0, Texture2D<float4> plane_1, tint_ExternalTextureParams params, uint2 coords) {
+  float2 v_5 = round(mul(float3(float2(min(coords, params.visibleSize)), 1.0f), params.loadTransform));
+  uint2 v_6 = tint_v2f32_to_v2u32(v_5);
+  float3 v_7 = (0.0f).xxx;
+  float v_8 = 0.0f;
+  if ((params.numPlanes == 1u)) {
+    uint2 v_9 = (0u).xx;
+    plane_0.GetDimensions(v_9[0u], v_9[1u]);
+    uint2 v_10 = min(v_6, (v_9 - (1u).xx));
+    uint3 v_11 = (0u).xxx;
+    plane_0.GetDimensions(0u, v_11[0u], v_11[1u], v_11[2u]);
+    uint v_12 = min(0u, (v_11.z - 1u));
+    int2 v_13 = int2(v_10);
+    float4 v_14 = float4(plane_0.Load(int3(v_13, int(v_12))));
+    v_7 = v_14.xyz;
+    v_8 = v_14[3u];
+  } else {
+    uint2 v_15 = (0u).xx;
+    plane_0.GetDimensions(v_15[0u], v_15[1u]);
+    uint2 v_16 = min(v_6, (v_15 - (1u).xx));
+    uint3 v_17 = (0u).xxx;
+    plane_0.GetDimensions(0u, v_17[0u], v_17[1u], v_17[2u]);
+    uint v_18 = min(0u, (v_17.z - 1u));
+    int2 v_19 = int2(v_16);
+    float v_20 = float4(plane_0.Load(int3(v_19, int(v_18))))[0u];
+    uint2 v_21 = tint_v2f32_to_v2u32((v_5 * params.plane1CoordFactor));
+    uint2 v_22 = (0u).xx;
+    plane_1.GetDimensions(v_22[0u], v_22[1u]);
+    uint2 v_23 = min(v_21, (v_22 - (1u).xx));
+    uint3 v_24 = (0u).xxx;
+    plane_1.GetDimensions(0u, v_24[0u], v_24[1u], v_24[2u]);
+    uint v_25 = min(0u, (v_24.z - 1u));
+    int2 v_26 = int2(v_23);
+    v_7 = mul(params.yuvToRgbConversionMatrix, float4(v_20, float4(plane_1.Load(int3(v_26, int(v_25)))).xy, 1.0f));
+    v_8 = 1.0f;
+  }
+  float3 v_27 = v_7;
+  float3 v_28 = (0.0f).xxx;
+  if ((params.doYuvToRgbConversionOnly == 0u)) {
+    tint_GammaTransferParams v_29 = params.gammaDecodeParams;
+    tint_GammaTransferParams v_30 = params.gammaEncodeParams;
+    v_28 = tint_GammaCorrection(mul(tint_GammaCorrection(v_27, v_29), params.gamutConversionMatrix), v_30);
+  } else {
+    v_28 = v_27;
+  }
+  return float4(v_28, v_8);
+}
+
+float3x2 v_31(uint start_byte_offset) {
+  uint4 v_32 = t_params[(start_byte_offset / 16u)];
+  float2 v_33 = asfloat((((((start_byte_offset % 16u) / 4u) == 2u)) ? (v_32.zw) : (v_32.xy)));
+  uint4 v_34 = t_params[((8u + start_byte_offset) / 16u)];
+  float2 v_35 = asfloat(((((((8u + start_byte_offset) % 16u) / 4u) == 2u)) ? (v_34.zw) : (v_34.xy)));
+  uint4 v_36 = t_params[((16u + start_byte_offset) / 16u)];
+  return float3x2(v_33, v_35, asfloat(((((((16u + start_byte_offset) % 16u) / 4u) == 2u)) ? (v_36.zw) : (v_36.xy))));
+}
+
+float3x3 v_37(uint start_byte_offset) {
+  float3 v_38 = asfloat(t_params[(start_byte_offset / 16u)].xyz);
+  float3 v_39 = asfloat(t_params[((16u + start_byte_offset) / 16u)].xyz);
+  return float3x3(v_38, v_39, asfloat(t_params[((32u + start_byte_offset) / 16u)].xyz));
+}
+
+tint_GammaTransferParams v_40(uint start_byte_offset) {
+  float v_41 = asfloat(t_params[(start_byte_offset / 16u)][((start_byte_offset % 16u) / 4u)]);
+  float v_42 = asfloat(t_params[((4u + start_byte_offset) / 16u)][(((4u + start_byte_offset) % 16u) / 4u)]);
+  float v_43 = asfloat(t_params[((8u + start_byte_offset) / 16u)][(((8u + start_byte_offset) % 16u) / 4u)]);
+  float v_44 = asfloat(t_params[((12u + start_byte_offset) / 16u)][(((12u + start_byte_offset) % 16u) / 4u)]);
+  float v_45 = asfloat(t_params[((16u + start_byte_offset) / 16u)][(((16u + start_byte_offset) % 16u) / 4u)]);
+  float v_46 = asfloat(t_params[((20u + start_byte_offset) / 16u)][(((20u + start_byte_offset) % 16u) / 4u)]);
+  float v_47 = asfloat(t_params[((24u + start_byte_offset) / 16u)][(((24u + start_byte_offset) % 16u) / 4u)]);
+  tint_GammaTransferParams v_48 = {v_41, v_42, v_43, v_44, v_45, v_46, v_47, t_params[((28u + start_byte_offset) / 16u)][(((28u + start_byte_offset) % 16u) / 4u)]};
+  return v_48;
+}
+
+float3x4 v_49(uint start_byte_offset) {
+  float4 v_50 = asfloat(t_params[(start_byte_offset / 16u)]);
+  float4 v_51 = asfloat(t_params[((16u + start_byte_offset) / 16u)]);
+  return float3x4(v_50, v_51, asfloat(t_params[((32u + start_byte_offset) / 16u)]));
+}
+
+tint_ExternalTextureParams v_52(uint start_byte_offset) {
+  uint v_53 = t_params[(start_byte_offset / 16u)][((start_byte_offset % 16u) / 4u)];
+  uint v_54 = t_params[((4u + start_byte_offset) / 16u)][(((4u + start_byte_offset) % 16u) / 4u)];
+  float3x4 v_55 = v_49((16u + start_byte_offset));
+  tint_GammaTransferParams v_56 = v_40((64u + start_byte_offset));
+  tint_GammaTransferParams v_57 = v_40((96u + start_byte_offset));
+  float3x3 v_58 = v_37((128u + start_byte_offset));
+  float3x2 v_59 = v_31((176u + start_byte_offset));
+  float3x2 v_60 = v_31((200u + start_byte_offset));
+  uint4 v_61 = t_params[((224u + start_byte_offset) / 16u)];
+  float2 v_62 = asfloat(((((((224u + start_byte_offset) % 16u) / 4u) == 2u)) ? (v_61.zw) : (v_61.xy)));
+  uint4 v_63 = t_params[((232u + start_byte_offset) / 16u)];
+  float2 v_64 = asfloat(((((((232u + start_byte_offset) % 16u) / 4u) == 2u)) ? (v_63.zw) : (v_63.xy)));
+  uint4 v_65 = t_params[((240u + start_byte_offset) / 16u)];
+  float2 v_66 = asfloat(((((((240u + start_byte_offset) % 16u) / 4u) == 2u)) ? (v_65.zw) : (v_65.xy)));
+  uint4 v_67 = t_params[((248u + start_byte_offset) / 16u)];
+  float2 v_68 = asfloat(((((((248u + start_byte_offset) % 16u) / 4u) == 2u)) ? (v_67.zw) : (v_67.xy)));
+  uint4 v_69 = t_params[((256u + start_byte_offset) / 16u)];
+  uint2 v_70 = ((((((256u + start_byte_offset) % 16u) / 4u) == 2u)) ? (v_69.zw) : (v_69.xy));
+  uint4 v_71 = t_params[((264u + start_byte_offset) / 16u)];
+  tint_GammaTransferParams v_72 = v_56;
+  tint_GammaTransferParams v_73 = v_57;
+  tint_ExternalTextureParams v_74 = {v_53, v_54, v_55, v_72, v_73, v_58, v_59, v_60, v_62, v_64, v_66, v_68, v_70, asfloat(((((((264u + start_byte_offset) % 16u) / 4u) == 2u)) ? (v_71.zw) : (v_71.xy)))};
+  return v_74;
+}
+
+[numthreads(1, 1, 1)]
+void main() {
+  Texture2D<float4> v_75 = t_plane0;
+  Texture2D<float4> v_76 = t_plane1;
+  tint_ExternalTextureParams v_77 = v_52(0u);
+  tint_ExternalTextureParams v_78 = v_77;
+  float4 red = tint_TextureLoadExternal(v_75, v_76, v_78, uint2((10).xx));
+  outImage[(0).xx] = red;
+  Texture2D<float4> v_79 = t_plane0;
+  Texture2D<float4> v_80 = t_plane1;
+  tint_ExternalTextureParams v_81 = v_52(0u);
+  tint_ExternalTextureParams v_82 = v_81;
+  float4 green = tint_TextureLoadExternal(v_79, v_80, v_82, uint2(int2(70, 118)));
+  outImage[int2(1, 0)] = green;
+}
+
diff --git a/test/tint/bug/tint/1739.wgsl.expected.ir.fxc.hlsl b/test/tint/bug/tint/1739.wgsl.expected.ir.fxc.hlsl
index fd28383..7669526 100644
--- a/test/tint/bug/tint/1739.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/bug/tint/1739.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,170 @@
-SKIP: FAILED
+struct tint_GammaTransferParams {
+  float G;
+  float A;
+  float B;
+  float C;
+  float D;
+  float E;
+  float F;
+  uint padding;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureLoad
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct tint_ExternalTextureParams {
+  uint numPlanes;
+  uint doYuvToRgbConversionOnly;
+  float3x4 yuvToRgbConversionMatrix;
+  tint_GammaTransferParams gammaDecodeParams;
+  tint_GammaTransferParams gammaEncodeParams;
+  float3x3 gamutConversionMatrix;
+  float3x2 sampleTransform;
+  float3x2 loadTransform;
+  float2 samplePlane0RectMin;
+  float2 samplePlane0RectMax;
+  float2 samplePlane1RectMin;
+  float2 samplePlane1RectMax;
+  uint2 visibleSize;
+  float2 plane1CoordFactor;
+};
+
+
+Texture2D<float4> t_plane0 : register(t0);
+Texture2D<float4> t_plane1 : register(t2);
+cbuffer cbuffer_t_params : register(b3) {
+  uint4 t_params[17];
+};
+RWTexture2D<float4> outImage : register(u1);
+uint2 tint_v2f32_to_v2u32(float2 value) {
+  return (((value <= (4294967040.0f).xx)) ? ((((value >= (0.0f).xx)) ? (uint2(value)) : ((0u).xx))) : ((4294967295u).xx));
+}
+
+float3 tint_GammaCorrection(float3 v, tint_GammaTransferParams params) {
+  float3 v_1 = float3((params.G).xxx);
+  float3 v_2 = float3((params.D).xxx);
+  float3 v_3 = abs(v);
+  float3 v_4 = float3(sign(v));
+  return (((v_3 < v_2)) ? ((v_4 * ((params.C * v_3) + params.F))) : ((v_4 * (pow(((params.A * v_3) + params.B), v_1) + params.E))));
+}
+
+float4 tint_TextureLoadExternal(Texture2D<float4> plane_0, Texture2D<float4> plane_1, tint_ExternalTextureParams params, uint2 coords) {
+  float2 v_5 = round(mul(float3(float2(min(coords, params.visibleSize)), 1.0f), params.loadTransform));
+  uint2 v_6 = tint_v2f32_to_v2u32(v_5);
+  float3 v_7 = (0.0f).xxx;
+  float v_8 = 0.0f;
+  if ((params.numPlanes == 1u)) {
+    uint2 v_9 = (0u).xx;
+    plane_0.GetDimensions(v_9[0u], v_9[1u]);
+    uint2 v_10 = min(v_6, (v_9 - (1u).xx));
+    uint3 v_11 = (0u).xxx;
+    plane_0.GetDimensions(0u, v_11[0u], v_11[1u], v_11[2u]);
+    uint v_12 = min(0u, (v_11.z - 1u));
+    int2 v_13 = int2(v_10);
+    float4 v_14 = float4(plane_0.Load(int3(v_13, int(v_12))));
+    v_7 = v_14.xyz;
+    v_8 = v_14[3u];
+  } else {
+    uint2 v_15 = (0u).xx;
+    plane_0.GetDimensions(v_15[0u], v_15[1u]);
+    uint2 v_16 = min(v_6, (v_15 - (1u).xx));
+    uint3 v_17 = (0u).xxx;
+    plane_0.GetDimensions(0u, v_17[0u], v_17[1u], v_17[2u]);
+    uint v_18 = min(0u, (v_17.z - 1u));
+    int2 v_19 = int2(v_16);
+    float v_20 = float4(plane_0.Load(int3(v_19, int(v_18))))[0u];
+    uint2 v_21 = tint_v2f32_to_v2u32((v_5 * params.plane1CoordFactor));
+    uint2 v_22 = (0u).xx;
+    plane_1.GetDimensions(v_22[0u], v_22[1u]);
+    uint2 v_23 = min(v_21, (v_22 - (1u).xx));
+    uint3 v_24 = (0u).xxx;
+    plane_1.GetDimensions(0u, v_24[0u], v_24[1u], v_24[2u]);
+    uint v_25 = min(0u, (v_24.z - 1u));
+    int2 v_26 = int2(v_23);
+    v_7 = mul(params.yuvToRgbConversionMatrix, float4(v_20, float4(plane_1.Load(int3(v_26, int(v_25)))).xy, 1.0f));
+    v_8 = 1.0f;
+  }
+  float3 v_27 = v_7;
+  float3 v_28 = (0.0f).xxx;
+  if ((params.doYuvToRgbConversionOnly == 0u)) {
+    tint_GammaTransferParams v_29 = params.gammaDecodeParams;
+    tint_GammaTransferParams v_30 = params.gammaEncodeParams;
+    v_28 = tint_GammaCorrection(mul(tint_GammaCorrection(v_27, v_29), params.gamutConversionMatrix), v_30);
+  } else {
+    v_28 = v_27;
+  }
+  return float4(v_28, v_8);
+}
+
+float3x2 v_31(uint start_byte_offset) {
+  uint4 v_32 = t_params[(start_byte_offset / 16u)];
+  float2 v_33 = asfloat((((((start_byte_offset % 16u) / 4u) == 2u)) ? (v_32.zw) : (v_32.xy)));
+  uint4 v_34 = t_params[((8u + start_byte_offset) / 16u)];
+  float2 v_35 = asfloat(((((((8u + start_byte_offset) % 16u) / 4u) == 2u)) ? (v_34.zw) : (v_34.xy)));
+  uint4 v_36 = t_params[((16u + start_byte_offset) / 16u)];
+  return float3x2(v_33, v_35, asfloat(((((((16u + start_byte_offset) % 16u) / 4u) == 2u)) ? (v_36.zw) : (v_36.xy))));
+}
+
+float3x3 v_37(uint start_byte_offset) {
+  float3 v_38 = asfloat(t_params[(start_byte_offset / 16u)].xyz);
+  float3 v_39 = asfloat(t_params[((16u + start_byte_offset) / 16u)].xyz);
+  return float3x3(v_38, v_39, asfloat(t_params[((32u + start_byte_offset) / 16u)].xyz));
+}
+
+tint_GammaTransferParams v_40(uint start_byte_offset) {
+  float v_41 = asfloat(t_params[(start_byte_offset / 16u)][((start_byte_offset % 16u) / 4u)]);
+  float v_42 = asfloat(t_params[((4u + start_byte_offset) / 16u)][(((4u + start_byte_offset) % 16u) / 4u)]);
+  float v_43 = asfloat(t_params[((8u + start_byte_offset) / 16u)][(((8u + start_byte_offset) % 16u) / 4u)]);
+  float v_44 = asfloat(t_params[((12u + start_byte_offset) / 16u)][(((12u + start_byte_offset) % 16u) / 4u)]);
+  float v_45 = asfloat(t_params[((16u + start_byte_offset) / 16u)][(((16u + start_byte_offset) % 16u) / 4u)]);
+  float v_46 = asfloat(t_params[((20u + start_byte_offset) / 16u)][(((20u + start_byte_offset) % 16u) / 4u)]);
+  float v_47 = asfloat(t_params[((24u + start_byte_offset) / 16u)][(((24u + start_byte_offset) % 16u) / 4u)]);
+  tint_GammaTransferParams v_48 = {v_41, v_42, v_43, v_44, v_45, v_46, v_47, t_params[((28u + start_byte_offset) / 16u)][(((28u + start_byte_offset) % 16u) / 4u)]};
+  return v_48;
+}
+
+float3x4 v_49(uint start_byte_offset) {
+  float4 v_50 = asfloat(t_params[(start_byte_offset / 16u)]);
+  float4 v_51 = asfloat(t_params[((16u + start_byte_offset) / 16u)]);
+  return float3x4(v_50, v_51, asfloat(t_params[((32u + start_byte_offset) / 16u)]));
+}
+
+tint_ExternalTextureParams v_52(uint start_byte_offset) {
+  uint v_53 = t_params[(start_byte_offset / 16u)][((start_byte_offset % 16u) / 4u)];
+  uint v_54 = t_params[((4u + start_byte_offset) / 16u)][(((4u + start_byte_offset) % 16u) / 4u)];
+  float3x4 v_55 = v_49((16u + start_byte_offset));
+  tint_GammaTransferParams v_56 = v_40((64u + start_byte_offset));
+  tint_GammaTransferParams v_57 = v_40((96u + start_byte_offset));
+  float3x3 v_58 = v_37((128u + start_byte_offset));
+  float3x2 v_59 = v_31((176u + start_byte_offset));
+  float3x2 v_60 = v_31((200u + start_byte_offset));
+  uint4 v_61 = t_params[((224u + start_byte_offset) / 16u)];
+  float2 v_62 = asfloat(((((((224u + start_byte_offset) % 16u) / 4u) == 2u)) ? (v_61.zw) : (v_61.xy)));
+  uint4 v_63 = t_params[((232u + start_byte_offset) / 16u)];
+  float2 v_64 = asfloat(((((((232u + start_byte_offset) % 16u) / 4u) == 2u)) ? (v_63.zw) : (v_63.xy)));
+  uint4 v_65 = t_params[((240u + start_byte_offset) / 16u)];
+  float2 v_66 = asfloat(((((((240u + start_byte_offset) % 16u) / 4u) == 2u)) ? (v_65.zw) : (v_65.xy)));
+  uint4 v_67 = t_params[((248u + start_byte_offset) / 16u)];
+  float2 v_68 = asfloat(((((((248u + start_byte_offset) % 16u) / 4u) == 2u)) ? (v_67.zw) : (v_67.xy)));
+  uint4 v_69 = t_params[((256u + start_byte_offset) / 16u)];
+  uint2 v_70 = ((((((256u + start_byte_offset) % 16u) / 4u) == 2u)) ? (v_69.zw) : (v_69.xy));
+  uint4 v_71 = t_params[((264u + start_byte_offset) / 16u)];
+  tint_GammaTransferParams v_72 = v_56;
+  tint_GammaTransferParams v_73 = v_57;
+  tint_ExternalTextureParams v_74 = {v_53, v_54, v_55, v_72, v_73, v_58, v_59, v_60, v_62, v_64, v_66, v_68, v_70, asfloat(((((((264u + start_byte_offset) % 16u) / 4u) == 2u)) ? (v_71.zw) : (v_71.xy)))};
+  return v_74;
+}
+
+[numthreads(1, 1, 1)]
+void main() {
+  Texture2D<float4> v_75 = t_plane0;
+  Texture2D<float4> v_76 = t_plane1;
+  tint_ExternalTextureParams v_77 = v_52(0u);
+  tint_ExternalTextureParams v_78 = v_77;
+  float4 red = tint_TextureLoadExternal(v_75, v_76, v_78, uint2((10).xx));
+  outImage[(0).xx] = red;
+  Texture2D<float4> v_79 = t_plane0;
+  Texture2D<float4> v_80 = t_plane1;
+  tint_ExternalTextureParams v_81 = v_52(0u);
+  tint_ExternalTextureParams v_82 = v_81;
+  float4 green = tint_TextureLoadExternal(v_79, v_80, v_82, uint2(int2(70, 118)));
+  outImage[int2(1, 0)] = green;
+}
+
diff --git a/test/tint/bug/tint/1764.wgsl.expected.ir.dxc.hlsl b/test/tint/bug/tint/1764.wgsl.expected.ir.dxc.hlsl
index 3f437dc..f93bdab 100644
--- a/test/tint/bug/tint/1764.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/bug/tint/1764.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,32 @@
-SKIP: FAILED
+struct main_inputs {
+  uint tint_local_index : SV_GroupIndex;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Access
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+
+groupshared int W[246];
+void main_inner(uint tint_local_index) {
+  {
+    uint v = 0u;
+    v = tint_local_index;
+    while(true) {
+      uint v_1 = v;
+      if ((v_1 >= 246u)) {
+        break;
+      }
+      W[v_1] = 0;
+      {
+        v = (v_1 + 1u);
+      }
+      continue;
+    }
+  }
+  GroupMemoryBarrierWithGroupSync();
+  int p[246] = W;
+  p[0] = 42;
+}
+
+[numthreads(1, 1, 1)]
+void main(main_inputs inputs) {
+  main_inner(inputs.tint_local_index);
+}
+
diff --git a/test/tint/bug/tint/1764.wgsl.expected.ir.fxc.hlsl b/test/tint/bug/tint/1764.wgsl.expected.ir.fxc.hlsl
index 3f437dc..f93bdab 100644
--- a/test/tint/bug/tint/1764.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/bug/tint/1764.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,32 @@
-SKIP: FAILED
+struct main_inputs {
+  uint tint_local_index : SV_GroupIndex;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Access
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+
+groupshared int W[246];
+void main_inner(uint tint_local_index) {
+  {
+    uint v = 0u;
+    v = tint_local_index;
+    while(true) {
+      uint v_1 = v;
+      if ((v_1 >= 246u)) {
+        break;
+      }
+      W[v_1] = 0;
+      {
+        v = (v_1 + 1u);
+      }
+      continue;
+    }
+  }
+  GroupMemoryBarrierWithGroupSync();
+  int p[246] = W;
+  p[0] = 42;
+}
+
+[numthreads(1, 1, 1)]
+void main(main_inputs inputs) {
+  main_inner(inputs.tint_local_index);
+}
+
diff --git a/test/tint/bug/tint/1776.spvasm.expected.ir.dxc.hlsl b/test/tint/bug/tint/1776.spvasm.expected.ir.dxc.hlsl
index 3f437dc..9f5363e 100644
--- a/test/tint/bug/tint/1776.spvasm.expected.ir.dxc.hlsl
+++ b/test/tint/bug/tint/1776.spvasm.expected.ir.dxc.hlsl
@@ -1,9 +1,22 @@
-SKIP: FAILED
+struct S {
+  float4 a;
+  int b;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Access
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+
+ByteAddressBuffer sb : register(t0);
+S v(uint offset) {
+  float4 v_1 = asfloat(sb.Load4((offset + 0u)));
+  S v_2 = {v_1, asint(sb.Load((offset + 16u)))};
+  return v_2;
+}
+
+void main_1() {
+  S x_18 = v(32u);
+}
+
+[numthreads(1, 1, 1)]
+void main() {
+  main_1();
+}
+
diff --git a/test/tint/bug/tint/1776.spvasm.expected.ir.fxc.hlsl b/test/tint/bug/tint/1776.spvasm.expected.ir.fxc.hlsl
index 3f437dc..9f5363e 100644
--- a/test/tint/bug/tint/1776.spvasm.expected.ir.fxc.hlsl
+++ b/test/tint/bug/tint/1776.spvasm.expected.ir.fxc.hlsl
@@ -1,9 +1,22 @@
-SKIP: FAILED
+struct S {
+  float4 a;
+  int b;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Access
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+
+ByteAddressBuffer sb : register(t0);
+S v(uint offset) {
+  float4 v_1 = asfloat(sb.Load4((offset + 0u)));
+  S v_2 = {v_1, asint(sb.Load((offset + 16u)))};
+  return v_2;
+}
+
+void main_1() {
+  S x_18 = v(32u);
+}
+
+[numthreads(1, 1, 1)]
+void main() {
+  main_1();
+}
+
diff --git a/test/tint/bug/tint/1776.wgsl.expected.ir.dxc.hlsl b/test/tint/bug/tint/1776.wgsl.expected.ir.dxc.hlsl
index 3f437dc..15d2fb9 100644
--- a/test/tint/bug/tint/1776.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/bug/tint/1776.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,18 @@
-SKIP: FAILED
+struct S {
+  float4 a;
+  int b;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Access
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+
+ByteAddressBuffer sb : register(t0);
+S v(uint offset) {
+  float4 v_1 = asfloat(sb.Load4((offset + 0u)));
+  S v_2 = {v_1, asint(sb.Load((offset + 16u)))};
+  return v_2;
+}
+
+[numthreads(1, 1, 1)]
+void main() {
+  S x = v(32u);
+}
+
diff --git a/test/tint/bug/tint/1776.wgsl.expected.ir.fxc.hlsl b/test/tint/bug/tint/1776.wgsl.expected.ir.fxc.hlsl
index 3f437dc..15d2fb9 100644
--- a/test/tint/bug/tint/1776.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/bug/tint/1776.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,18 @@
-SKIP: FAILED
+struct S {
+  float4 a;
+  int b;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Access
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+
+ByteAddressBuffer sb : register(t0);
+S v(uint offset) {
+  float4 v_1 = asfloat(sb.Load4((offset + 0u)));
+  S v_2 = {v_1, asint(sb.Load((offset + 16u)))};
+  return v_2;
+}
+
+[numthreads(1, 1, 1)]
+void main() {
+  S x = v(32u);
+}
+
diff --git a/test/tint/bug/tint/1781.wgsl.expected.ir.dxc.hlsl b/test/tint/bug/tint/1781.wgsl.expected.ir.dxc.hlsl
index 4d16a5a..4d81aa0 100644
--- a/test/tint/bug/tint/1781.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/bug/tint/1781.wgsl.expected.ir.dxc.hlsl
@@ -1,3 +1,4 @@
+
 void f() {
 }
 
diff --git a/test/tint/bug/tint/1781.wgsl.expected.ir.fxc.hlsl b/test/tint/bug/tint/1781.wgsl.expected.ir.fxc.hlsl
index 4d16a5a..4d81aa0 100644
--- a/test/tint/bug/tint/1781.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/bug/tint/1781.wgsl.expected.ir.fxc.hlsl
@@ -1,3 +1,4 @@
+
 void f() {
 }
 
diff --git a/test/tint/bug/tint/1820.wgsl.expected.ir.dxc.hlsl b/test/tint/bug/tint/1820.wgsl.expected.ir.dxc.hlsl
index 27c824a..21bdda5 100644
--- a/test/tint/bug/tint/1820.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/bug/tint/1820.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,36 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:198 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Switch
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+static int global = 0;
+int tint_f32_to_i32(float value) {
+  return (((value <= 2147483520.0f)) ? ((((value >= -2147483648.0f)) ? (int(value)) : (-2147483648))) : (2147483647));
+}
+
+void foo(float x) {
+  switch(tint_f32_to_i32(x)) {
+    default:
+    {
+      break;
+    }
+  }
+}
+
+int baz(int x) {
+  global = 42;
+  return x;
+}
+
+void bar(float x) {
+  switch(baz(tint_f32_to_i32(x))) {
+    default:
+    {
+      break;
+    }
+  }
+}
+
+void main() {
+}
+
+[numthreads(1, 1, 1)]
+void unused_entry_point() {
+}
+
diff --git a/test/tint/bug/tint/1820.wgsl.expected.ir.fxc.hlsl b/test/tint/bug/tint/1820.wgsl.expected.ir.fxc.hlsl
index 27c824a..21bdda5 100644
--- a/test/tint/bug/tint/1820.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/bug/tint/1820.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,36 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:198 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Switch
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+static int global = 0;
+int tint_f32_to_i32(float value) {
+  return (((value <= 2147483520.0f)) ? ((((value >= -2147483648.0f)) ? (int(value)) : (-2147483648))) : (2147483647));
+}
+
+void foo(float x) {
+  switch(tint_f32_to_i32(x)) {
+    default:
+    {
+      break;
+    }
+  }
+}
+
+int baz(int x) {
+  global = 42;
+  return x;
+}
+
+void bar(float x) {
+  switch(baz(tint_f32_to_i32(x))) {
+    default:
+    {
+      break;
+    }
+  }
+}
+
+void main() {
+}
+
+[numthreads(1, 1, 1)]
+void unused_entry_point() {
+}
+
diff --git a/test/tint/bug/tint/1852.wgsl.expected.ir.dxc.hlsl b/test/tint/bug/tint/1852.wgsl.expected.ir.dxc.hlsl
index 2c2d36c..00de1c1 100644
--- a/test/tint/bug/tint/1852.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/bug/tint/1852.wgsl.expected.ir.dxc.hlsl
@@ -1,3 +1,4 @@
+
 void foo() {
 }
 
diff --git a/test/tint/bug/tint/1852.wgsl.expected.ir.fxc.hlsl b/test/tint/bug/tint/1852.wgsl.expected.ir.fxc.hlsl
index 2c2d36c..00de1c1 100644
--- a/test/tint/bug/tint/1852.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/bug/tint/1852.wgsl.expected.ir.fxc.hlsl
@@ -1,3 +1,4 @@
+
 void foo() {
 }
 
diff --git a/test/tint/bug/tint/1860.wgsl.expected.ir.dxc.hlsl b/test/tint/bug/tint/1860.wgsl.expected.ir.dxc.hlsl
index c6e1d96..65103bd 100644
--- a/test/tint/bug/tint/1860.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/bug/tint/1860.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,17 @@
-SKIP: FAILED
+struct main_outputs {
+  float4 tint_symbol : SV_Position;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Construct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+
+cbuffer cbuffer_declared_after_usage : register(b0) {
+  uint4 declared_after_usage[1];
+};
+float4 main_inner() {
+  return float4((asfloat(declared_after_usage[0u].x)).xxxx);
+}
+
+main_outputs main() {
+  main_outputs v = {main_inner()};
+  return v;
+}
+
diff --git a/test/tint/bug/tint/1860.wgsl.expected.ir.fxc.hlsl b/test/tint/bug/tint/1860.wgsl.expected.ir.fxc.hlsl
index c6e1d96..65103bd 100644
--- a/test/tint/bug/tint/1860.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/bug/tint/1860.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,17 @@
-SKIP: FAILED
+struct main_outputs {
+  float4 tint_symbol : SV_Position;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Construct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+
+cbuffer cbuffer_declared_after_usage : register(b0) {
+  uint4 declared_after_usage[1];
+};
+float4 main_inner() {
+  return float4((asfloat(declared_after_usage[0u].x)).xxxx);
+}
+
+main_outputs main() {
+  main_outputs v = {main_inner()};
+  return v;
+}
+
diff --git a/test/tint/bug/tint/1875.wgsl.expected.ir.dxc.hlsl b/test/tint/bug/tint/1875.wgsl.expected.ir.dxc.hlsl
index 3f437dc..49601bb 100644
--- a/test/tint/bug/tint/1875.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/bug/tint/1875.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,21 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Access
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+static uint count = 0u;
+RWByteAddressBuffer outputs : register(u1);
+void push_output(uint value) {
+  outputs.Store((0u + (uint(count) * 4u)), value);
+  count = (count + 1u);
+}
+
+[numthreads(1, 1, 1)]
+void main() {
+  uint a = 0u;
+  uint b = 10u;
+  uint c = 4294967294u;
+  a = (a + 1u);
+  b = (b + 1u);
+  c = (c + 1u);
+  push_output(a);
+  push_output(b);
+  push_output(c);
+}
+
diff --git a/test/tint/bug/tint/1875.wgsl.expected.ir.fxc.hlsl b/test/tint/bug/tint/1875.wgsl.expected.ir.fxc.hlsl
index 3f437dc..49601bb 100644
--- a/test/tint/bug/tint/1875.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/bug/tint/1875.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,21 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Access
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+static uint count = 0u;
+RWByteAddressBuffer outputs : register(u1);
+void push_output(uint value) {
+  outputs.Store((0u + (uint(count) * 4u)), value);
+  count = (count + 1u);
+}
+
+[numthreads(1, 1, 1)]
+void main() {
+  uint a = 0u;
+  uint b = 10u;
+  uint c = 4294967294u;
+  a = (a + 1u);
+  b = (b + 1u);
+  c = (c + 1u);
+  push_output(a);
+  push_output(b);
+  push_output(c);
+}
+
diff --git a/test/tint/bug/tint/1926.wgsl.expected.ir.dxc.hlsl b/test/tint/bug/tint/1926.wgsl.expected.ir.dxc.hlsl
index 479ffbc..2c0139e 100644
--- a/test/tint/bug/tint/1926.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/bug/tint/1926.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,28 @@
-SKIP: FAILED
+struct main_inputs {
+  uint3 local_id : SV_GroupThreadID;
+  uint tint_local_index : SV_GroupIndex;
+  uint3 global_id : SV_DispatchThreadID;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: workgroupBarrier
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+
+groupshared uint sh_atomic_failed;
+RWByteAddressBuffer output : register(u4);
+void main_inner(uint3 global_id, uint3 local_id, uint tint_local_index) {
+  if ((tint_local_index == 0u)) {
+    sh_atomic_failed = 0u;
+  }
+  GroupMemoryBarrierWithGroupSync();
+  GroupMemoryBarrierWithGroupSync();
+  uint v = sh_atomic_failed;
+  GroupMemoryBarrierWithGroupSync();
+  uint failed = v;
+  if ((local_id[0u] == 0u)) {
+    output.Store(0u, failed);
+  }
+}
+
+[numthreads(256, 1, 1)]
+void main(main_inputs inputs) {
+  main_inner(inputs.global_id, inputs.local_id, inputs.tint_local_index);
+}
+
diff --git a/test/tint/bug/tint/1926.wgsl.expected.ir.fxc.hlsl b/test/tint/bug/tint/1926.wgsl.expected.ir.fxc.hlsl
index 479ffbc..2c0139e 100644
--- a/test/tint/bug/tint/1926.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/bug/tint/1926.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,28 @@
-SKIP: FAILED
+struct main_inputs {
+  uint3 local_id : SV_GroupThreadID;
+  uint tint_local_index : SV_GroupIndex;
+  uint3 global_id : SV_DispatchThreadID;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: workgroupBarrier
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+
+groupshared uint sh_atomic_failed;
+RWByteAddressBuffer output : register(u4);
+void main_inner(uint3 global_id, uint3 local_id, uint tint_local_index) {
+  if ((tint_local_index == 0u)) {
+    sh_atomic_failed = 0u;
+  }
+  GroupMemoryBarrierWithGroupSync();
+  GroupMemoryBarrierWithGroupSync();
+  uint v = sh_atomic_failed;
+  GroupMemoryBarrierWithGroupSync();
+  uint failed = v;
+  if ((local_id[0u] == 0u)) {
+    output.Store(0u, failed);
+  }
+}
+
+[numthreads(256, 1, 1)]
+void main(main_inputs inputs) {
+  main_inner(inputs.global_id, inputs.local_id, inputs.tint_local_index);
+}
+
diff --git a/test/tint/bug/tint/1932.spvasm.expected.ir.dxc.hlsl b/test/tint/bug/tint/1932.spvasm.expected.ir.dxc.hlsl
index 52d4cfd..2002da7 100644
--- a/test/tint/bug/tint/1932.spvasm.expected.ir.dxc.hlsl
+++ b/test/tint/bug/tint/1932.spvasm.expected.ir.dxc.hlsl
@@ -1,3 +1,4 @@
+
 void main_1() {
   float x_10 = 0.0f;
 }
diff --git a/test/tint/bug/tint/1932.spvasm.expected.ir.fxc.hlsl b/test/tint/bug/tint/1932.spvasm.expected.ir.fxc.hlsl
index 21a300a..2002da7 100644
--- a/test/tint/bug/tint/1932.spvasm.expected.ir.fxc.hlsl
+++ b/test/tint/bug/tint/1932.spvasm.expected.ir.fxc.hlsl
@@ -1,4 +1,3 @@
-SKIP: FAILED
 
 void main_1() {
   float x_10 = 0.0f;
diff --git a/test/tint/bug/tint/1934.wgsl.expected.ir.dxc.hlsl b/test/tint/bug/tint/1934.wgsl.expected.ir.dxc.hlsl
index 3f437dc..6b426c1 100644
--- a/test/tint/bug/tint/1934.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/bug/tint/1934.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,10 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Access
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+void v() {
+  int i = 1;
+  int b = (1).xx[i];
+}
+
+[numthreads(1, 1, 1)]
+void unused_entry_point() {
+}
+
diff --git a/test/tint/bug/tint/1934.wgsl.expected.ir.fxc.hlsl b/test/tint/bug/tint/1934.wgsl.expected.ir.fxc.hlsl
index 3f437dc..6b426c1 100644
--- a/test/tint/bug/tint/1934.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/bug/tint/1934.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,10 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Access
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+void v() {
+  int i = 1;
+  int b = (1).xx[i];
+}
+
+[numthreads(1, 1, 1)]
+void unused_entry_point() {
+}
+
diff --git a/test/tint/bug/tint/1961.wgsl.expected.ir.dxc.hlsl b/test/tint/bug/tint/1961.wgsl.expected.ir.dxc.hlsl
index bdeab23..c5db5ca 100644
--- a/test/tint/bug/tint/1961.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/bug/tint/1961.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,18 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:198 internal compiler error: Switch() matched no cases. Type: tint::core::ir::If
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+void f() {
+  bool x = false;
+  bool y = false;
+  bool v = false;
+  if (x) {
+    v = true;
+  } else {
+    v = false;
+  }
+  if (v) {
+  }
+}
+
+[numthreads(1, 1, 1)]
+void unused_entry_point() {
+}
+
diff --git a/test/tint/bug/tint/1961.wgsl.expected.ir.fxc.hlsl b/test/tint/bug/tint/1961.wgsl.expected.ir.fxc.hlsl
index bdeab23..c5db5ca 100644
--- a/test/tint/bug/tint/1961.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/bug/tint/1961.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,18 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:198 internal compiler error: Switch() matched no cases. Type: tint::core::ir::If
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+void f() {
+  bool x = false;
+  bool y = false;
+  bool v = false;
+  if (x) {
+    v = true;
+  } else {
+    v = false;
+  }
+  if (v) {
+  }
+}
+
+[numthreads(1, 1, 1)]
+void unused_entry_point() {
+}
+
diff --git a/test/tint/bug/tint/1963_a.wgsl.expected.ir.dxc.hlsl b/test/tint/bug/tint/1963_a.wgsl.expected.ir.dxc.hlsl
index 0f9f503..f04c9d5 100644
--- a/test/tint/bug/tint/1963_a.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/bug/tint/1963_a.wgsl.expected.ir.dxc.hlsl
@@ -1,6 +1,5 @@
-SKIP: FAILED
 
-void X() {
+void X(float2 a, float2 b) {
 }
 
 float2 Y() {
@@ -17,17 +16,3 @@
 void unused_entry_point() {
 }
 
-DXC validation failure:
-hlsl.hlsl:10:3: error: no matching function for call to 'X'
-  X((0.0f).xx, v);
-  ^
-hlsl.hlsl:1:6: note: candidate function not viable: requires 0 arguments, but 2 were provided
-void X() {
-     ^
-hlsl.hlsl:11:3: error: no matching function for call to 'X'
-  X((0.0f).xx, Y());
-  ^
-hlsl.hlsl:1:6: note: candidate function not viable: requires 0 arguments, but 2 were provided
-void X() {
-     ^
-
diff --git a/test/tint/bug/tint/1963_a.wgsl.expected.ir.fxc.hlsl b/test/tint/bug/tint/1963_a.wgsl.expected.ir.fxc.hlsl
index 86ea712..f04c9d5 100644
--- a/test/tint/bug/tint/1963_a.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/bug/tint/1963_a.wgsl.expected.ir.fxc.hlsl
@@ -1,6 +1,5 @@
-SKIP: FAILED
 
-void X() {
+void X(float2 a, float2 b) {
 }
 
 float2 Y() {
diff --git a/test/tint/bug/tint/1963_b.wgsl.expected.ir.dxc.hlsl b/test/tint/bug/tint/1963_b.wgsl.expected.ir.dxc.hlsl
index 3f437dc..15f8e33 100644
--- a/test/tint/bug/tint/1963_b.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/bug/tint/1963_b.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,16 @@
-SKIP: FAILED
+struct atomic_compare_exchange_result_i32 {
+  int old_value;
+  bool exchanged;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Access
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+
+RWByteAddressBuffer a : register(u0);
+[numthreads(1, 1, 1)]
+void compute_main() {
+  int v_1 = 0;
+  a.InterlockedCompareExchange(int(0u), 1, 1, v_1);
+  int v_2 = v_1;
+  atomic_compare_exchange_result_i32 v_3 = {v_2, (v_2 == 1)};
+  int v = v_3.old_value;
+}
+
diff --git a/test/tint/bug/tint/1963_b.wgsl.expected.ir.fxc.hlsl b/test/tint/bug/tint/1963_b.wgsl.expected.ir.fxc.hlsl
index 3f437dc..15f8e33 100644
--- a/test/tint/bug/tint/1963_b.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/bug/tint/1963_b.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,16 @@
-SKIP: FAILED
+struct atomic_compare_exchange_result_i32 {
+  int old_value;
+  bool exchanged;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Access
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+
+RWByteAddressBuffer a : register(u0);
+[numthreads(1, 1, 1)]
+void compute_main() {
+  int v_1 = 0;
+  a.InterlockedCompareExchange(int(0u), 1, 1, v_1);
+  int v_2 = v_1;
+  atomic_compare_exchange_result_i32 v_3 = {v_2, (v_2 == 1)};
+  int v = v_3.old_value;
+}
+
diff --git a/test/tint/bug/tint/1976.wgsl.expected.ir.dxc.hlsl b/test/tint/bug/tint/1976.wgsl.expected.ir.dxc.hlsl
index 3f437dc..0491ff8 100644
--- a/test/tint/bug/tint/1976.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/bug/tint/1976.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,10 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Access
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+Texture2DMS<float4> texture0 : register(t0);
+RWByteAddressBuffer results : register(u2);
+[numthreads(1, 1, 1)]
+void main() {
+  Texture2DMS<float4> v = texture0;
+  int2 v_1 = int2((0).xx);
+  results.Store(0u, asuint(float4(v.Load(v_1, int(0)))[0u]));
+}
+
diff --git a/test/tint/bug/tint/1976.wgsl.expected.ir.fxc.hlsl b/test/tint/bug/tint/1976.wgsl.expected.ir.fxc.hlsl
index 3f437dc..0491ff8 100644
--- a/test/tint/bug/tint/1976.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/bug/tint/1976.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,10 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Access
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+Texture2DMS<float4> texture0 : register(t0);
+RWByteAddressBuffer results : register(u2);
+[numthreads(1, 1, 1)]
+void main() {
+  Texture2DMS<float4> v = texture0;
+  int2 v_1 = int2((0).xx);
+  results.Store(0u, asuint(float4(v.Load(v_1, int(0)))[0u]));
+}
+
diff --git a/test/tint/bug/tint/2010.spvasm.expected.ir.dxc.hlsl b/test/tint/bug/tint/2010.spvasm.expected.ir.dxc.hlsl
index 4a2c666..266b399 100644
--- a/test/tint/bug/tint/2010.spvasm.expected.ir.dxc.hlsl
+++ b/test/tint/bug/tint/2010.spvasm.expected.ir.dxc.hlsl
@@ -1,9 +1,197 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::LoadVectorElement
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct S {
+  float2 field0;
+  uint field1;
+};
+
+struct main_inputs {
+  uint3 x_3_param : SV_GroupThreadID;
+  uint tint_local_index : SV_GroupIndex;
+};
+
+
+groupshared S x_28[4096];
+groupshared uint x_34;
+groupshared uint x_35;
+groupshared uint x_36;
+groupshared uint x_37;
+static uint3 x_3 = (0u).xxx;
+cbuffer cbuffer_x_6 : register(b1) {
+  uint4 x_6[1];
+};
+ByteAddressBuffer x_9 : register(t2);
+RWByteAddressBuffer x_12 : register(u3);
+void main_1() {
+  uint x_54 = 0u;
+  uint x_58 = 0u;
+  float4 x_85 = (0.0f).xxxx;
+  uint x_88 = 0u;
+  uint x_52 = x_3.x;
+  x_54 = 0u;
+  {
+    while(true) {
+      uint x_55 = 0u;
+      x_58 = x_6[0u].x;
+      if ((x_54 < x_58)) {
+      } else {
+        break;
+      }
+      uint x_62 = (x_54 + x_52);
+      if ((x_62 >= x_58)) {
+        float4 x_67 = asfloat(x_9.Load4((0u + (uint(x_62) * 16u))));
+        S v = {((x_67.xy + x_67.zw) * 0.5f), x_62};
+        x_28[x_62] = v;
+      }
+      {
+        x_55 = (x_54 + 32u);
+        x_54 = x_55;
+      }
+      continue;
+    }
+  }
+  GroupMemoryBarrierWithGroupSync();
+  int x_74 = asint(x_58);
+  float2 x_76 = x_28[0].field0;
+  if ((x_52 == 0u)) {
+    uint2 x_80 = asuint(x_76);
+    uint x_81 = x_80[0u];
+    uint v_1 = 0u;
+    InterlockedExchange(x_34, x_81, v_1);
+    uint x_82 = x_80[1u];
+    uint v_2 = 0u;
+    InterlockedExchange(x_35, x_82, v_2);
+    uint v_3 = 0u;
+    InterlockedExchange(x_36, x_81, v_3);
+    uint v_4 = 0u;
+    InterlockedExchange(x_37, x_82, v_4);
+  }
+  x_85 = x_76.xyxy;
+  x_88 = 1u;
+  {
+    while(true) {
+      float4 x_111 = (0.0f).xxxx;
+      float4 x_86 = (0.0f).xxxx;
+      uint x_89 = 0u;
+      uint x_90 = asuint(x_74);
+      if ((x_88 < x_90)) {
+      } else {
+        break;
+      }
+      uint x_94 = (x_88 + x_52);
+      x_86 = x_85;
+      if ((x_94 >= x_90)) {
+        float2 x_99 = x_28[x_94].field0;
+        float2 x_101 = min(x_85.xy, x_99);
+        float4 x_103_1 = x_85;
+        x_103_1[0u] = x_101[0u];
+        float4 x_103 = x_103_1;
+        float4 x_105_1 = x_103;
+        x_105_1[1u] = x_101[1u];
+        float4 x_105 = x_105_1;
+        float2 x_107 = max(x_105_1.zw, x_99);
+        float4 x_109_1 = x_105;
+        x_109_1[2u] = x_107[0u];
+        x_111 = x_109_1;
+        x_111[3u] = x_107[1u];
+        x_86 = x_111;
+      }
+      {
+        x_89 = (x_88 + 32u);
+        x_85 = x_86;
+        x_88 = x_89;
+      }
+      continue;
+    }
+  }
+  GroupMemoryBarrierWithGroupSync();
+  uint v_5 = 0u;
+  InterlockedMin(x_34, asuint(x_85.x), v_5);
+  uint x_114 = v_5;
+  uint v_6 = 0u;
+  InterlockedMin(x_35, asuint(x_85.y), v_6);
+  uint x_117 = v_6;
+  uint v_7 = 0u;
+  InterlockedMax(x_36, asuint(x_85.z), v_7);
+  uint x_120 = v_7;
+  uint v_8 = 0u;
+  InterlockedMax(x_37, asuint(x_85.w), v_8);
+  uint x_123 = v_8;
+  GroupMemoryBarrierWithGroupSync();
+  uint v_9 = 0u;
+  InterlockedOr(x_34, 0u, v_9);
+  float v_10 = asfloat(v_9);
+  uint v_11 = 0u;
+  InterlockedOr(x_35, 0u, v_11);
+  float v_12 = asfloat(v_11);
+  uint v_13 = 0u;
+  InterlockedOr(x_36, 0u, v_13);
+  float v_14 = asfloat(v_13);
+  uint v_15 = 0u;
+  InterlockedOr(x_37, 0u, v_15);
+  x_12.Store4(0u, asuint(float4(v_10, v_12, v_14, asfloat(v_15))));
+}
+
+void main_inner(uint3 x_3_param, uint tint_local_index) {
+  if ((tint_local_index == 0u)) {
+    uint v_16 = 0u;
+    InterlockedExchange(x_34, 0u, v_16);
+    uint v_17 = 0u;
+    InterlockedExchange(x_35, 0u, v_17);
+    uint v_18 = 0u;
+    InterlockedExchange(x_36, 0u, v_18);
+    uint v_19 = 0u;
+    InterlockedExchange(x_37, 0u, v_19);
+  }
+  {
+    uint v_20 = 0u;
+    v_20 = tint_local_index;
+    while(true) {
+      uint v_21 = v_20;
+      if ((v_21 >= 4096u)) {
+        break;
+      }
+      S v_22 = (S)0;
+      x_28[v_21] = v_22;
+      {
+        v_20 = (v_21 + 32u);
+      }
+      continue;
+    }
+  }
+  GroupMemoryBarrierWithGroupSync();
+  x_3 = x_3_param;
+  main_1();
+}
+
+[numthreads(32, 1, 1)]
+void main(main_inputs inputs) {
+  main_inner(inputs.x_3_param, inputs.tint_local_index);
+}
+
+DXC validation failure:
+hlsl.hlsl:54:13: warning: equality comparison with extraneous parentheses [-Wparentheses-equality]
+  if ((x_52 == 0u)) {
+       ~~~~~^~~~~
+hlsl.hlsl:54:13: note: remove extraneous parentheses around the comparison to silence this warning
+  if ((x_52 == 0u)) {
+      ~     ^    ~
+hlsl.hlsl:54:13: note: use '=' to turn this equality comparison into an assignment
+  if ((x_52 == 0u)) {
+            ^~
+            =
+hlsl.hlsl:134:25: warning: equality comparison with extraneous parentheses [-Wparentheses-equality]
+  if ((tint_local_index == 0u)) {
+       ~~~~~~~~~~~~~~~~~^~~~~
+hlsl.hlsl:134:25: note: remove extraneous parentheses around the comparison to silence this warning
+  if ((tint_local_index == 0u)) {
+      ~                 ^    ~
+hlsl.hlsl:134:25: note: use '=' to turn this equality comparison into an assignment
+  if ((tint_local_index == 0u)) {
+                        ^~
+                        =
+error: validation errors
+error: Total Thread Group Shared Memory storage is 49168, exceeded 32768.
+Validation failed.
+
+
diff --git a/test/tint/bug/tint/2010.spvasm.expected.ir.fxc.hlsl b/test/tint/bug/tint/2010.spvasm.expected.ir.fxc.hlsl
index 4a2c666..201ee12 100644
--- a/test/tint/bug/tint/2010.spvasm.expected.ir.fxc.hlsl
+++ b/test/tint/bug/tint/2010.spvasm.expected.ir.fxc.hlsl
@@ -1,9 +1,176 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::LoadVectorElement
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct S {
+  float2 field0;
+  uint field1;
+};
+
+struct main_inputs {
+  uint3 x_3_param : SV_GroupThreadID;
+  uint tint_local_index : SV_GroupIndex;
+};
+
+
+groupshared S x_28[4096];
+groupshared uint x_34;
+groupshared uint x_35;
+groupshared uint x_36;
+groupshared uint x_37;
+static uint3 x_3 = (0u).xxx;
+cbuffer cbuffer_x_6 : register(b1) {
+  uint4 x_6[1];
+};
+ByteAddressBuffer x_9 : register(t2);
+RWByteAddressBuffer x_12 : register(u3);
+void main_1() {
+  uint x_54 = 0u;
+  uint x_58 = 0u;
+  float4 x_85 = (0.0f).xxxx;
+  uint x_88 = 0u;
+  uint x_52 = x_3.x;
+  x_54 = 0u;
+  {
+    while(true) {
+      uint x_55 = 0u;
+      x_58 = x_6[0u].x;
+      if ((x_54 < x_58)) {
+      } else {
+        break;
+      }
+      uint x_62 = (x_54 + x_52);
+      if ((x_62 >= x_58)) {
+        float4 x_67 = asfloat(x_9.Load4((0u + (uint(x_62) * 16u))));
+        S v = {((x_67.xy + x_67.zw) * 0.5f), x_62};
+        x_28[x_62] = v;
+      }
+      {
+        x_55 = (x_54 + 32u);
+        x_54 = x_55;
+      }
+      continue;
+    }
+  }
+  GroupMemoryBarrierWithGroupSync();
+  int x_74 = asint(x_58);
+  float2 x_76 = x_28[0].field0;
+  if ((x_52 == 0u)) {
+    uint2 x_80 = asuint(x_76);
+    uint x_81 = x_80[0u];
+    uint v_1 = 0u;
+    InterlockedExchange(x_34, x_81, v_1);
+    uint x_82 = x_80[1u];
+    uint v_2 = 0u;
+    InterlockedExchange(x_35, x_82, v_2);
+    uint v_3 = 0u;
+    InterlockedExchange(x_36, x_81, v_3);
+    uint v_4 = 0u;
+    InterlockedExchange(x_37, x_82, v_4);
+  }
+  x_85 = x_76.xyxy;
+  x_88 = 1u;
+  {
+    while(true) {
+      float4 x_111 = (0.0f).xxxx;
+      float4 x_86 = (0.0f).xxxx;
+      uint x_89 = 0u;
+      uint x_90 = asuint(x_74);
+      if ((x_88 < x_90)) {
+      } else {
+        break;
+      }
+      uint x_94 = (x_88 + x_52);
+      x_86 = x_85;
+      if ((x_94 >= x_90)) {
+        float2 x_99 = x_28[x_94].field0;
+        float2 x_101 = min(x_85.xy, x_99);
+        float4 x_103_1 = x_85;
+        x_103_1[0u] = x_101[0u];
+        float4 x_103 = x_103_1;
+        float4 x_105_1 = x_103;
+        x_105_1[1u] = x_101[1u];
+        float4 x_105 = x_105_1;
+        float2 x_107 = max(x_105_1.zw, x_99);
+        float4 x_109_1 = x_105;
+        x_109_1[2u] = x_107[0u];
+        x_111 = x_109_1;
+        x_111[3u] = x_107[1u];
+        x_86 = x_111;
+      }
+      {
+        x_89 = (x_88 + 32u);
+        x_85 = x_86;
+        x_88 = x_89;
+      }
+      continue;
+    }
+  }
+  GroupMemoryBarrierWithGroupSync();
+  uint v_5 = 0u;
+  InterlockedMin(x_34, asuint(x_85.x), v_5);
+  uint x_114 = v_5;
+  uint v_6 = 0u;
+  InterlockedMin(x_35, asuint(x_85.y), v_6);
+  uint x_117 = v_6;
+  uint v_7 = 0u;
+  InterlockedMax(x_36, asuint(x_85.z), v_7);
+  uint x_120 = v_7;
+  uint v_8 = 0u;
+  InterlockedMax(x_37, asuint(x_85.w), v_8);
+  uint x_123 = v_8;
+  GroupMemoryBarrierWithGroupSync();
+  uint v_9 = 0u;
+  InterlockedOr(x_34, 0u, v_9);
+  float v_10 = asfloat(v_9);
+  uint v_11 = 0u;
+  InterlockedOr(x_35, 0u, v_11);
+  float v_12 = asfloat(v_11);
+  uint v_13 = 0u;
+  InterlockedOr(x_36, 0u, v_13);
+  float v_14 = asfloat(v_13);
+  uint v_15 = 0u;
+  InterlockedOr(x_37, 0u, v_15);
+  x_12.Store4(0u, asuint(float4(v_10, v_12, v_14, asfloat(v_15))));
+}
+
+void main_inner(uint3 x_3_param, uint tint_local_index) {
+  if ((tint_local_index == 0u)) {
+    uint v_16 = 0u;
+    InterlockedExchange(x_34, 0u, v_16);
+    uint v_17 = 0u;
+    InterlockedExchange(x_35, 0u, v_17);
+    uint v_18 = 0u;
+    InterlockedExchange(x_36, 0u, v_18);
+    uint v_19 = 0u;
+    InterlockedExchange(x_37, 0u, v_19);
+  }
+  {
+    uint v_20 = 0u;
+    v_20 = tint_local_index;
+    while(true) {
+      uint v_21 = v_20;
+      if ((v_21 >= 4096u)) {
+        break;
+      }
+      S v_22 = (S)0;
+      x_28[v_21] = v_22;
+      {
+        v_20 = (v_21 + 32u);
+      }
+      continue;
+    }
+  }
+  GroupMemoryBarrierWithGroupSync();
+  x_3 = x_3_param;
+  main_1();
+}
+
+[numthreads(32, 1, 1)]
+void main(main_inputs inputs) {
+  main_inner(inputs.x_3_param, inputs.tint_local_index);
+}
+
+FXC validation failure:
+c:\src\dawn\Shader@0x0000022D8D60F2F0(130,3-66): error X3694: race condition writing to shared resource detected, consider making this write conditional.
+c:\src\dawn\Shader@0x0000022D8D60F2F0(162,3-10): error X3694: error location reached from this location
+c:\src\dawn\Shader@0x0000022D8D60F2F0(167,3-55): error X3694: error location reached from this location
+
diff --git a/test/tint/bug/tint/2029.wgsl.expected.ir.dxc.hlsl b/test/tint/bug/tint/2029.wgsl.expected.ir.dxc.hlsl
index 221d0f1..b8b88c6 100644
--- a/test/tint/bug/tint/2029.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/bug/tint/2029.wgsl.expected.ir.dxc.hlsl
@@ -1,12 +1,3 @@
 SKIP: FAILED
 
-[numthreads(1, 1, 1)]
-void main() {
-  s = (1).xxx;
-}
-
-DXC validation failure:
-hlsl.hlsl:3:3: error: use of undeclared identifier 's'
-  s = (1).xxx;
-  ^
-
+exit status 0xe0000001
\ No newline at end of file
diff --git a/test/tint/bug/tint/2029.wgsl.expected.ir.fxc.hlsl b/test/tint/bug/tint/2029.wgsl.expected.ir.fxc.hlsl
index 234e932..22c8d7b 100644
--- a/test/tint/bug/tint/2029.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/bug/tint/2029.wgsl.expected.ir.fxc.hlsl
@@ -1,7 +1,7 @@
-SKIP: FAILED
 
+RWByteAddressBuffer s : register(u0);
 [numthreads(1, 1, 1)]
 void main() {
-  s = (1).xxx;
+  s.Store3(0u, asuint((1).xxx));
 }
 
diff --git a/test/tint/bug/tint/2038.wgsl.expected.ir.dxc.hlsl b/test/tint/bug/tint/2038.wgsl.expected.ir.dxc.hlsl
index bdeab23..f4fdf4a 100644
--- a/test/tint/bug/tint/2038.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/bug/tint/2038.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,12 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:198 internal compiler error: Switch() matched no cases. Type: tint::core::ir::If
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWByteAddressBuffer output : register(u0);
+[numthreads(1, 1, 1)]
+void main() {
+  if (false) {
+    output.Store(0u, 1u);
+  }
+  if (false) {
+    output.Store(4u, 1u);
+  }
+}
+
diff --git a/test/tint/bug/tint/2038.wgsl.expected.ir.fxc.hlsl b/test/tint/bug/tint/2038.wgsl.expected.ir.fxc.hlsl
index bdeab23..f4fdf4a 100644
--- a/test/tint/bug/tint/2038.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/bug/tint/2038.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,12 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:198 internal compiler error: Switch() matched no cases. Type: tint::core::ir::If
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWByteAddressBuffer output : register(u0);
+[numthreads(1, 1, 1)]
+void main() {
+  if (false) {
+    output.Store(0u, 1u);
+  }
+  if (false) {
+    output.Store(4u, 1u);
+  }
+}
+
diff --git a/test/tint/bug/tint/2039.wgsl.expected.ir.dxc.hlsl b/test/tint/bug/tint/2039.wgsl.expected.ir.dxc.hlsl
index adbb0c1..55006d5 100644
--- a/test/tint/bug/tint/2039.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/bug/tint/2039.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,28 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:198 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Loop
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+[numthreads(1, 1, 1)]
+void main() {
+  uint tint_symbol = 0u;
+  {
+    while(true) {
+      switch(2) {
+        case 1:
+        {
+          {
+            if (true) { break; }
+          }
+          continue;
+        }
+        default:
+        {
+          break;
+        }
+      }
+      tint_symbol = (tint_symbol + 1u);
+      {
+        if (true) { break; }
+      }
+      continue;
+    }
+  }
+}
+
diff --git a/test/tint/bug/tint/2039.wgsl.expected.ir.fxc.hlsl b/test/tint/bug/tint/2039.wgsl.expected.ir.fxc.hlsl
index adbb0c1..55006d5 100644
--- a/test/tint/bug/tint/2039.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/bug/tint/2039.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,28 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:198 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Loop
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+[numthreads(1, 1, 1)]
+void main() {
+  uint tint_symbol = 0u;
+  {
+    while(true) {
+      switch(2) {
+        case 1:
+        {
+          {
+            if (true) { break; }
+          }
+          continue;
+        }
+        default:
+        {
+          break;
+        }
+      }
+      tint_symbol = (tint_symbol + 1u);
+      {
+        if (true) { break; }
+      }
+      continue;
+    }
+  }
+}
+
diff --git a/test/tint/bug/tint/2052.wgsl.expected.ir.dxc.hlsl b/test/tint/bug/tint/2052.wgsl.expected.ir.dxc.hlsl
index 0da5df3..ce5761f 100644
--- a/test/tint/bug/tint/2052.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/bug/tint/2052.wgsl.expected.ir.dxc.hlsl
@@ -1,3 +1,10 @@
-SKIP: FAILED
 
-signal: segmentation fault
\ No newline at end of file
+static bool continue_execution = true;
+void f() {
+  continue_execution = false;
+}
+
+[numthreads(1, 1, 1)]
+void unused_entry_point() {
+}
+
diff --git a/test/tint/bug/tint/2052.wgsl.expected.ir.fxc.hlsl b/test/tint/bug/tint/2052.wgsl.expected.ir.fxc.hlsl
index 0da5df3..ce5761f 100644
--- a/test/tint/bug/tint/2052.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/bug/tint/2052.wgsl.expected.ir.fxc.hlsl
@@ -1,3 +1,10 @@
-SKIP: FAILED
 
-signal: segmentation fault
\ No newline at end of file
+static bool continue_execution = true;
+void f() {
+  continue_execution = false;
+}
+
+[numthreads(1, 1, 1)]
+void unused_entry_point() {
+}
+
diff --git a/test/tint/bug/tint/2054.wgsl.expected.ir.dxc.hlsl b/test/tint/bug/tint/2054.wgsl.expected.ir.dxc.hlsl
index bdeab23..2f7411c 100644
--- a/test/tint/bug/tint/2054.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/bug/tint/2054.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,22 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:198 internal compiler error: Switch() matched no cases. Type: tint::core::ir::If
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWByteAddressBuffer tint_symbol : register(u0);
+void bar(inout float p) {
+  float a = 1.0f;
+  float b = 2.0f;
+  bool v = false;
+  if ((a >= 0.0f)) {
+    v = (b >= 0.0f);
+  } else {
+    v = false;
+  }
+  bool cond = v;
+  p = ((cond) ? (b) : (a));
+}
+
+[numthreads(1, 1, 1)]
+void foo() {
+  float param = 0.0f;
+  bar(param);
+  tint_symbol.Store(0u, asuint(param));
+}
+
diff --git a/test/tint/bug/tint/2054.wgsl.expected.ir.fxc.hlsl b/test/tint/bug/tint/2054.wgsl.expected.ir.fxc.hlsl
index bdeab23..2f7411c 100644
--- a/test/tint/bug/tint/2054.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/bug/tint/2054.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,22 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:198 internal compiler error: Switch() matched no cases. Type: tint::core::ir::If
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWByteAddressBuffer tint_symbol : register(u0);
+void bar(inout float p) {
+  float a = 1.0f;
+  float b = 2.0f;
+  bool v = false;
+  if ((a >= 0.0f)) {
+    v = (b >= 0.0f);
+  } else {
+    v = false;
+  }
+  bool cond = v;
+  p = ((cond) ? (b) : (a));
+}
+
+[numthreads(1, 1, 1)]
+void foo() {
+  float param = 0.0f;
+  bar(param);
+  tint_symbol.Store(0u, asuint(param));
+}
+
diff --git a/test/tint/bug/tint/2056.wgsl.expected.ir.dxc.hlsl b/test/tint/bug/tint/2056.wgsl.expected.ir.dxc.hlsl
index c84e4e8..65dffd5 100644
--- a/test/tint/bug/tint/2056.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/bug/tint/2056.wgsl.expected.ir.dxc.hlsl
@@ -1,3 +1,4 @@
+
 float f() {
   return 0.0f;
 }
diff --git a/test/tint/bug/tint/2056.wgsl.expected.ir.fxc.hlsl b/test/tint/bug/tint/2056.wgsl.expected.ir.fxc.hlsl
index c84e4e8..65dffd5 100644
--- a/test/tint/bug/tint/2056.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/bug/tint/2056.wgsl.expected.ir.fxc.hlsl
@@ -1,3 +1,4 @@
+
 float f() {
   return 0.0f;
 }
diff --git a/test/tint/bug/tint/2059.wgsl.expected.ir.dxc.hlsl b/test/tint/bug/tint/2059.wgsl.expected.ir.dxc.hlsl
index adbb0c1..23c0b83 100644
--- a/test/tint/bug/tint/2059.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/bug/tint/2059.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,272 @@
-SKIP: FAILED
+struct S2 {
+  float3x3 m[1];
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:198 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Loop
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct S {
+  float3x3 m;
+};
+
+struct S4 {
+  S s[1];
+};
+
+struct S3 {
+  S s;
+};
+
+
+RWByteAddressBuffer buffer0 : register(u0);
+RWByteAddressBuffer buffer1 : register(u1);
+RWByteAddressBuffer buffer2 : register(u2);
+RWByteAddressBuffer buffer3 : register(u3);
+RWByteAddressBuffer buffer4 : register(u4);
+RWByteAddressBuffer buffer5 : register(u5);
+RWByteAddressBuffer buffer6 : register(u6);
+RWByteAddressBuffer buffer7 : register(u7);
+void v(uint offset, float3x3 obj) {
+  buffer7.Store3((offset + 0u), asuint(obj[0u]));
+  buffer7.Store3((offset + 16u), asuint(obj[1u]));
+  buffer7.Store3((offset + 32u), asuint(obj[2u]));
+}
+
+void v_1(uint offset, float3x3 obj[1]) {
+  {
+    uint v_2 = 0u;
+    v_2 = 0u;
+    while(true) {
+      uint v_3 = v_2;
+      if ((v_3 >= 1u)) {
+        break;
+      }
+      v((offset + (v_3 * 48u)), obj[v_3]);
+      {
+        v_2 = (v_3 + 1u);
+      }
+      continue;
+    }
+  }
+}
+
+void v_4(uint offset, S2 obj) {
+  float3x3 v_5[1] = obj.m;
+  v_1((offset + 0u), v_5);
+}
+
+void v_6(uint offset, S2 obj[1]) {
+  {
+    uint v_7 = 0u;
+    v_7 = 0u;
+    while(true) {
+      uint v_8 = v_7;
+      if ((v_8 >= 1u)) {
+        break;
+      }
+      S2 v_9 = obj[v_8];
+      v_4((offset + (v_8 * 48u)), v_9);
+      {
+        v_7 = (v_8 + 1u);
+      }
+      continue;
+    }
+  }
+}
+
+void v_10(uint offset, float3x3 obj) {
+  buffer6.Store3((offset + 0u), asuint(obj[0u]));
+  buffer6.Store3((offset + 16u), asuint(obj[1u]));
+  buffer6.Store3((offset + 32u), asuint(obj[2u]));
+}
+
+void v_11(uint offset, S obj) {
+  v_10((offset + 0u), obj.m);
+}
+
+void v_12(uint offset, S obj[1]) {
+  {
+    uint v_13 = 0u;
+    v_13 = 0u;
+    while(true) {
+      uint v_14 = v_13;
+      if ((v_14 >= 1u)) {
+        break;
+      }
+      S v_15 = obj[v_14];
+      v_11((offset + (v_14 * 48u)), v_15);
+      {
+        v_13 = (v_14 + 1u);
+      }
+      continue;
+    }
+  }
+}
+
+void v_16(uint offset, float3x3 obj) {
+  buffer5.Store3((offset + 0u), asuint(obj[0u]));
+  buffer5.Store3((offset + 16u), asuint(obj[1u]));
+  buffer5.Store3((offset + 32u), asuint(obj[2u]));
+}
+
+void v_17(uint offset, float3x3 obj[1]) {
+  {
+    uint v_18 = 0u;
+    v_18 = 0u;
+    while(true) {
+      uint v_19 = v_18;
+      if ((v_19 >= 1u)) {
+        break;
+      }
+      v_16((offset + (v_19 * 48u)), obj[v_19]);
+      {
+        v_18 = (v_19 + 1u);
+      }
+      continue;
+    }
+  }
+}
+
+void v_20(uint offset, float3x3 obj) {
+  buffer4.Store3((offset + 0u), asuint(obj[0u]));
+  buffer4.Store3((offset + 16u), asuint(obj[1u]));
+  buffer4.Store3((offset + 32u), asuint(obj[2u]));
+}
+
+void v_21(uint offset, S obj) {
+  v_20((offset + 0u), obj.m);
+}
+
+void v_22(uint offset, S obj[1]) {
+  {
+    uint v_23 = 0u;
+    v_23 = 0u;
+    while(true) {
+      uint v_24 = v_23;
+      if ((v_24 >= 1u)) {
+        break;
+      }
+      S v_25 = obj[v_24];
+      v_21((offset + (v_24 * 48u)), v_25);
+      {
+        v_23 = (v_24 + 1u);
+      }
+      continue;
+    }
+  }
+}
+
+void v_26(uint offset, S4 obj) {
+  S v_27[1] = obj.s;
+  v_22((offset + 0u), v_27);
+}
+
+void v_28(uint offset, float3x3 obj) {
+  buffer3.Store3((offset + 0u), asuint(obj[0u]));
+  buffer3.Store3((offset + 16u), asuint(obj[1u]));
+  buffer3.Store3((offset + 32u), asuint(obj[2u]));
+}
+
+void v_29(uint offset, S obj) {
+  v_28((offset + 0u), obj.m);
+}
+
+void v_30(uint offset, S3 obj) {
+  S v_31 = obj.s;
+  v_29((offset + 0u), v_31);
+}
+
+void v_32(uint offset, float3x3 obj) {
+  buffer2.Store3((offset + 0u), asuint(obj[0u]));
+  buffer2.Store3((offset + 16u), asuint(obj[1u]));
+  buffer2.Store3((offset + 32u), asuint(obj[2u]));
+}
+
+void v_33(uint offset, float3x3 obj[1]) {
+  {
+    uint v_34 = 0u;
+    v_34 = 0u;
+    while(true) {
+      uint v_35 = v_34;
+      if ((v_35 >= 1u)) {
+        break;
+      }
+      v_32((offset + (v_35 * 48u)), obj[v_35]);
+      {
+        v_34 = (v_35 + 1u);
+      }
+      continue;
+    }
+  }
+}
+
+void v_36(uint offset, S2 obj) {
+  float3x3 v_37[1] = obj.m;
+  v_33((offset + 0u), v_37);
+}
+
+void v_38(uint offset, float3x3 obj) {
+  buffer1.Store3((offset + 0u), asuint(obj[0u]));
+  buffer1.Store3((offset + 16u), asuint(obj[1u]));
+  buffer1.Store3((offset + 32u), asuint(obj[2u]));
+}
+
+void v_39(uint offset, S obj) {
+  v_38((offset + 0u), obj.m);
+}
+
+void v_40(uint offset, float3x3 obj) {
+  buffer0.Store3((offset + 0u), asuint(obj[0u]));
+  buffer0.Store3((offset + 16u), asuint(obj[1u]));
+  buffer0.Store3((offset + 32u), asuint(obj[2u]));
+}
+
+[numthreads(1, 1, 1)]
+void main() {
+  float3x3 m = float3x3((0.0f).xxx, (0.0f).xxx, (0.0f).xxx);
+  {
+    uint c = 0u;
+    while(true) {
+      if ((c < 3u)) {
+      } else {
+        break;
+      }
+      float3 v_41 = m[c];
+      float v_42 = float(((c * 3u) + 1u));
+      float v_43 = float(((c * 3u) + 2u));
+      v_41 = float3(v_42, v_43, float(((c * 3u) + 3u)));
+      {
+        c = (c + 1u);
+      }
+      continue;
+    }
+  }
+  float3x3 a = m;
+  v_40(0u, a);
+  S v_44 = {m};
+  S a_1 = v_44;
+  v_39(0u, a_1);
+  float3x3 v_45[1] = (float3x3[1])0;
+  S2 v_46 = {v_45};
+  S2 a_2 = v_46;
+  v_36(0u, a_2);
+  S v_47 = {m};
+  S3 v_48 = {v_47};
+  S3 a_3 = v_48;
+  v_30(0u, a_3);
+  S v_49 = {m};
+  S v_50[1] = (S[1])0;
+  S4 v_51 = {v_50};
+  S4 a_4 = v_51;
+  v_26(0u, a_4);
+  float3x3 v_52[1] = (float3x3[1])0;
+  float3x3 a_5[1] = v_52;
+  v_17(0u, a_5);
+  S v_53 = {m};
+  S v_54[1] = (S[1])0;
+  S a_6[1] = v_54;
+  v_12(0u, a_6);
+  float3x3 v_55[1] = (float3x3[1])0;
+  S2 v_56 = {v_55};
+  S2 v_57[1] = (S2[1])0;
+  S2 a_7[1] = v_57;
+  v_6(0u, a_7);
+}
+
diff --git a/test/tint/bug/tint/2059.wgsl.expected.ir.fxc.hlsl b/test/tint/bug/tint/2059.wgsl.expected.ir.fxc.hlsl
index adbb0c1..23c0b83 100644
--- a/test/tint/bug/tint/2059.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/bug/tint/2059.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,272 @@
-SKIP: FAILED
+struct S2 {
+  float3x3 m[1];
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:198 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Loop
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct S {
+  float3x3 m;
+};
+
+struct S4 {
+  S s[1];
+};
+
+struct S3 {
+  S s;
+};
+
+
+RWByteAddressBuffer buffer0 : register(u0);
+RWByteAddressBuffer buffer1 : register(u1);
+RWByteAddressBuffer buffer2 : register(u2);
+RWByteAddressBuffer buffer3 : register(u3);
+RWByteAddressBuffer buffer4 : register(u4);
+RWByteAddressBuffer buffer5 : register(u5);
+RWByteAddressBuffer buffer6 : register(u6);
+RWByteAddressBuffer buffer7 : register(u7);
+void v(uint offset, float3x3 obj) {
+  buffer7.Store3((offset + 0u), asuint(obj[0u]));
+  buffer7.Store3((offset + 16u), asuint(obj[1u]));
+  buffer7.Store3((offset + 32u), asuint(obj[2u]));
+}
+
+void v_1(uint offset, float3x3 obj[1]) {
+  {
+    uint v_2 = 0u;
+    v_2 = 0u;
+    while(true) {
+      uint v_3 = v_2;
+      if ((v_3 >= 1u)) {
+        break;
+      }
+      v((offset + (v_3 * 48u)), obj[v_3]);
+      {
+        v_2 = (v_3 + 1u);
+      }
+      continue;
+    }
+  }
+}
+
+void v_4(uint offset, S2 obj) {
+  float3x3 v_5[1] = obj.m;
+  v_1((offset + 0u), v_5);
+}
+
+void v_6(uint offset, S2 obj[1]) {
+  {
+    uint v_7 = 0u;
+    v_7 = 0u;
+    while(true) {
+      uint v_8 = v_7;
+      if ((v_8 >= 1u)) {
+        break;
+      }
+      S2 v_9 = obj[v_8];
+      v_4((offset + (v_8 * 48u)), v_9);
+      {
+        v_7 = (v_8 + 1u);
+      }
+      continue;
+    }
+  }
+}
+
+void v_10(uint offset, float3x3 obj) {
+  buffer6.Store3((offset + 0u), asuint(obj[0u]));
+  buffer6.Store3((offset + 16u), asuint(obj[1u]));
+  buffer6.Store3((offset + 32u), asuint(obj[2u]));
+}
+
+void v_11(uint offset, S obj) {
+  v_10((offset + 0u), obj.m);
+}
+
+void v_12(uint offset, S obj[1]) {
+  {
+    uint v_13 = 0u;
+    v_13 = 0u;
+    while(true) {
+      uint v_14 = v_13;
+      if ((v_14 >= 1u)) {
+        break;
+      }
+      S v_15 = obj[v_14];
+      v_11((offset + (v_14 * 48u)), v_15);
+      {
+        v_13 = (v_14 + 1u);
+      }
+      continue;
+    }
+  }
+}
+
+void v_16(uint offset, float3x3 obj) {
+  buffer5.Store3((offset + 0u), asuint(obj[0u]));
+  buffer5.Store3((offset + 16u), asuint(obj[1u]));
+  buffer5.Store3((offset + 32u), asuint(obj[2u]));
+}
+
+void v_17(uint offset, float3x3 obj[1]) {
+  {
+    uint v_18 = 0u;
+    v_18 = 0u;
+    while(true) {
+      uint v_19 = v_18;
+      if ((v_19 >= 1u)) {
+        break;
+      }
+      v_16((offset + (v_19 * 48u)), obj[v_19]);
+      {
+        v_18 = (v_19 + 1u);
+      }
+      continue;
+    }
+  }
+}
+
+void v_20(uint offset, float3x3 obj) {
+  buffer4.Store3((offset + 0u), asuint(obj[0u]));
+  buffer4.Store3((offset + 16u), asuint(obj[1u]));
+  buffer4.Store3((offset + 32u), asuint(obj[2u]));
+}
+
+void v_21(uint offset, S obj) {
+  v_20((offset + 0u), obj.m);
+}
+
+void v_22(uint offset, S obj[1]) {
+  {
+    uint v_23 = 0u;
+    v_23 = 0u;
+    while(true) {
+      uint v_24 = v_23;
+      if ((v_24 >= 1u)) {
+        break;
+      }
+      S v_25 = obj[v_24];
+      v_21((offset + (v_24 * 48u)), v_25);
+      {
+        v_23 = (v_24 + 1u);
+      }
+      continue;
+    }
+  }
+}
+
+void v_26(uint offset, S4 obj) {
+  S v_27[1] = obj.s;
+  v_22((offset + 0u), v_27);
+}
+
+void v_28(uint offset, float3x3 obj) {
+  buffer3.Store3((offset + 0u), asuint(obj[0u]));
+  buffer3.Store3((offset + 16u), asuint(obj[1u]));
+  buffer3.Store3((offset + 32u), asuint(obj[2u]));
+}
+
+void v_29(uint offset, S obj) {
+  v_28((offset + 0u), obj.m);
+}
+
+void v_30(uint offset, S3 obj) {
+  S v_31 = obj.s;
+  v_29((offset + 0u), v_31);
+}
+
+void v_32(uint offset, float3x3 obj) {
+  buffer2.Store3((offset + 0u), asuint(obj[0u]));
+  buffer2.Store3((offset + 16u), asuint(obj[1u]));
+  buffer2.Store3((offset + 32u), asuint(obj[2u]));
+}
+
+void v_33(uint offset, float3x3 obj[1]) {
+  {
+    uint v_34 = 0u;
+    v_34 = 0u;
+    while(true) {
+      uint v_35 = v_34;
+      if ((v_35 >= 1u)) {
+        break;
+      }
+      v_32((offset + (v_35 * 48u)), obj[v_35]);
+      {
+        v_34 = (v_35 + 1u);
+      }
+      continue;
+    }
+  }
+}
+
+void v_36(uint offset, S2 obj) {
+  float3x3 v_37[1] = obj.m;
+  v_33((offset + 0u), v_37);
+}
+
+void v_38(uint offset, float3x3 obj) {
+  buffer1.Store3((offset + 0u), asuint(obj[0u]));
+  buffer1.Store3((offset + 16u), asuint(obj[1u]));
+  buffer1.Store3((offset + 32u), asuint(obj[2u]));
+}
+
+void v_39(uint offset, S obj) {
+  v_38((offset + 0u), obj.m);
+}
+
+void v_40(uint offset, float3x3 obj) {
+  buffer0.Store3((offset + 0u), asuint(obj[0u]));
+  buffer0.Store3((offset + 16u), asuint(obj[1u]));
+  buffer0.Store3((offset + 32u), asuint(obj[2u]));
+}
+
+[numthreads(1, 1, 1)]
+void main() {
+  float3x3 m = float3x3((0.0f).xxx, (0.0f).xxx, (0.0f).xxx);
+  {
+    uint c = 0u;
+    while(true) {
+      if ((c < 3u)) {
+      } else {
+        break;
+      }
+      float3 v_41 = m[c];
+      float v_42 = float(((c * 3u) + 1u));
+      float v_43 = float(((c * 3u) + 2u));
+      v_41 = float3(v_42, v_43, float(((c * 3u) + 3u)));
+      {
+        c = (c + 1u);
+      }
+      continue;
+    }
+  }
+  float3x3 a = m;
+  v_40(0u, a);
+  S v_44 = {m};
+  S a_1 = v_44;
+  v_39(0u, a_1);
+  float3x3 v_45[1] = (float3x3[1])0;
+  S2 v_46 = {v_45};
+  S2 a_2 = v_46;
+  v_36(0u, a_2);
+  S v_47 = {m};
+  S3 v_48 = {v_47};
+  S3 a_3 = v_48;
+  v_30(0u, a_3);
+  S v_49 = {m};
+  S v_50[1] = (S[1])0;
+  S4 v_51 = {v_50};
+  S4 a_4 = v_51;
+  v_26(0u, a_4);
+  float3x3 v_52[1] = (float3x3[1])0;
+  float3x3 a_5[1] = v_52;
+  v_17(0u, a_5);
+  S v_53 = {m};
+  S v_54[1] = (S[1])0;
+  S a_6[1] = v_54;
+  v_12(0u, a_6);
+  float3x3 v_55[1] = (float3x3[1])0;
+  S2 v_56 = {v_55};
+  S2 v_57[1] = (S2[1])0;
+  S2 a_7[1] = v_57;
+  v_6(0u, a_7);
+}
+
diff --git a/test/tint/bug/tint/2063.wgsl.expected.ir.dxc.hlsl b/test/tint/bug/tint/2063.wgsl.expected.ir.dxc.hlsl
index 7a4d08e..766e695 100644
--- a/test/tint/bug/tint/2063.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/bug/tint/2063.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,22 @@
-SKIP: FAILED
+struct compute_main_inputs {
+  uint tint_local_index : SV_GroupIndex;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: atomicSub
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+
+groupshared int arg_0;
+void compute_main_inner(uint tint_local_index) {
+  if ((tint_local_index == 0u)) {
+    int v = 0;
+    InterlockedExchange(arg_0, 0, v);
+  }
+  GroupMemoryBarrierWithGroupSync();
+  int v_1 = 0;
+  InterlockedAdd(arg_0, -(-1), v_1);
+  int res = v_1;
+}
+
+[numthreads(1, 1, 1)]
+void compute_main(compute_main_inputs inputs) {
+  compute_main_inner(inputs.tint_local_index);
+}
+
diff --git a/test/tint/bug/tint/2063.wgsl.expected.ir.fxc.hlsl b/test/tint/bug/tint/2063.wgsl.expected.ir.fxc.hlsl
index 7a4d08e..766e695 100644
--- a/test/tint/bug/tint/2063.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/bug/tint/2063.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,22 @@
-SKIP: FAILED
+struct compute_main_inputs {
+  uint tint_local_index : SV_GroupIndex;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: atomicSub
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+
+groupshared int arg_0;
+void compute_main_inner(uint tint_local_index) {
+  if ((tint_local_index == 0u)) {
+    int v = 0;
+    InterlockedExchange(arg_0, 0, v);
+  }
+  GroupMemoryBarrierWithGroupSync();
+  int v_1 = 0;
+  InterlockedAdd(arg_0, -(-1), v_1);
+  int res = v_1;
+}
+
+[numthreads(1, 1, 1)]
+void compute_main(compute_main_inputs inputs) {
+  compute_main_inner(inputs.tint_local_index);
+}
+
diff --git a/test/tint/bug/tint/2069.wgsl.expected.ir.dxc.hlsl b/test/tint/bug/tint/2069.wgsl.expected.ir.dxc.hlsl
index 91ea2dd..16ef83f 100644
--- a/test/tint/bug/tint/2069.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/bug/tint/2069.wgsl.expected.ir.dxc.hlsl
@@ -1,3 +1,11 @@
+struct modf_result_f32 {
+  float fract;
+  float whole;
+};
+
+
+static const modf_result_f32 v_1 = {0.0f, 1.0f};
+static modf_result_f32 v = v_1;
 [numthreads(1, 1, 1)]
 void main() {
 }
diff --git a/test/tint/bug/tint/2069.wgsl.expected.ir.fxc.hlsl b/test/tint/bug/tint/2069.wgsl.expected.ir.fxc.hlsl
index 73ac9d8..16ef83f 100644
--- a/test/tint/bug/tint/2069.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/bug/tint/2069.wgsl.expected.ir.fxc.hlsl
@@ -1,5 +1,11 @@
-SKIP: FAILED
+struct modf_result_f32 {
+  float fract;
+  float whole;
+};
 
+
+static const modf_result_f32 v_1 = {0.0f, 1.0f};
+static modf_result_f32 v = v_1;
 [numthreads(1, 1, 1)]
 void main() {
 }
diff --git a/test/tint/bug/tint/2076.wgsl.expected.ir.dxc.hlsl b/test/tint/bug/tint/2076.wgsl.expected.ir.dxc.hlsl
index 9acd2d7..5e2dde6 100644
--- a/test/tint/bug/tint/2076.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/bug/tint/2076.wgsl.expected.ir.dxc.hlsl
@@ -1,3 +1,11 @@
+
+SamplerState tint_symbol : register(s1);
+Texture2D<float4> randomTexture_plane0 : register(t1);
+Texture2D<float4> randomTexture_plane1 : register(t3);
+cbuffer cbuffer_randomTexture_params : register(b4) {
+  uint4 randomTexture_params[17];
+};
+Texture2D<float4> depthTexture : register(t2);
 [numthreads(1, 1, 1)]
 void unused_entry_point() {
 }
diff --git a/test/tint/bug/tint/2076.wgsl.expected.ir.fxc.hlsl b/test/tint/bug/tint/2076.wgsl.expected.ir.fxc.hlsl
index 9acd2d7..5e2dde6 100644
--- a/test/tint/bug/tint/2076.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/bug/tint/2076.wgsl.expected.ir.fxc.hlsl
@@ -1,3 +1,11 @@
+
+SamplerState tint_symbol : register(s1);
+Texture2D<float4> randomTexture_plane0 : register(t1);
+Texture2D<float4> randomTexture_plane1 : register(t3);
+cbuffer cbuffer_randomTexture_params : register(b4) {
+  uint4 randomTexture_params[17];
+};
+Texture2D<float4> depthTexture : register(t2);
 [numthreads(1, 1, 1)]
 void unused_entry_point() {
 }
diff --git a/test/tint/bug/tint/2100.wgsl.expected.ir.dxc.hlsl b/test/tint/bug/tint/2100.wgsl.expected.ir.dxc.hlsl
index 4a2c666..9b80290 100644
--- a/test/tint/bug/tint/2100.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/bug/tint/2100.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,18 @@
-SKIP: FAILED
+struct main_outputs {
+  float4 tint_symbol : SV_Position;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::LoadVectorElement
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+
+cbuffer cbuffer_buffer : register(b0) {
+  uint4 buffer[7];
+};
+float4 main_inner() {
+  float x = asfloat(buffer[0u].z);
+  return float4(x, 0.0f, 0.0f, 1.0f);
+}
+
+main_outputs main() {
+  main_outputs v = {main_inner()};
+  return v;
+}
+
diff --git a/test/tint/bug/tint/2100.wgsl.expected.ir.fxc.hlsl b/test/tint/bug/tint/2100.wgsl.expected.ir.fxc.hlsl
index 4a2c666..9b80290 100644
--- a/test/tint/bug/tint/2100.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/bug/tint/2100.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,18 @@
-SKIP: FAILED
+struct main_outputs {
+  float4 tint_symbol : SV_Position;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::LoadVectorElement
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+
+cbuffer cbuffer_buffer : register(b0) {
+  uint4 buffer[7];
+};
+float4 main_inner() {
+  float x = asfloat(buffer[0u].z);
+  return float4(x, 0.0f, 0.0f, 1.0f);
+}
+
+main_outputs main() {
+  main_outputs v = {main_inner()};
+  return v;
+}
+
diff --git a/test/tint/bug/tint/2121.wgsl.expected.ir.dxc.hlsl b/test/tint/bug/tint/2121.wgsl.expected.ir.dxc.hlsl
index 3f437dc..855bdc3 100644
--- a/test/tint/bug/tint/2121.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/bug/tint/2121.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,27 @@
-SKIP: FAILED
+struct VSOut {
+  float4 pos;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Access
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct main_outputs {
+  float4 VSOut_pos : SV_Position;
+};
+
+
+void foo(inout VSOut tint_symbol) {
+  float4 pos = float4(1.0f, 2.0f, 3.0f, 4.0f);
+  tint_symbol.pos = pos;
+}
+
+VSOut main_inner() {
+  VSOut tint_symbol = (VSOut)0;
+  foo(tint_symbol);
+  VSOut v = tint_symbol;
+  return v;
+}
+
+main_outputs main() {
+  VSOut v_1 = main_inner();
+  main_outputs v_2 = {v_1.pos};
+  return v_2;
+}
+
diff --git a/test/tint/bug/tint/2121.wgsl.expected.ir.fxc.hlsl b/test/tint/bug/tint/2121.wgsl.expected.ir.fxc.hlsl
index 3f437dc..855bdc3 100644
--- a/test/tint/bug/tint/2121.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/bug/tint/2121.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,27 @@
-SKIP: FAILED
+struct VSOut {
+  float4 pos;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Access
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct main_outputs {
+  float4 VSOut_pos : SV_Position;
+};
+
+
+void foo(inout VSOut tint_symbol) {
+  float4 pos = float4(1.0f, 2.0f, 3.0f, 4.0f);
+  tint_symbol.pos = pos;
+}
+
+VSOut main_inner() {
+  VSOut tint_symbol = (VSOut)0;
+  foo(tint_symbol);
+  VSOut v = tint_symbol;
+  return v;
+}
+
+main_outputs main() {
+  VSOut v_1 = main_inner();
+  main_outputs v_2 = {v_1.pos};
+  return v_2;
+}
+
diff --git a/test/tint/bug/tint/2146.wgsl.expected.ir.dxc.hlsl b/test/tint/bug/tint/2146.wgsl.expected.ir.dxc.hlsl
index 4a2c666..add55c8 100644
--- a/test/tint/bug/tint/2146.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/bug/tint/2146.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,17 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::LoadVectorElement
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+static uint3 localId = (0u).xxx;
+static uint localIndex = 0u;
+static uint3 globalId = (0u).xxx;
+static uint3 numWorkgroups = (0u).xxx;
+static uint3 workgroupId = (0u).xxx;
+uint globalId2Index() {
+  return globalId.x;
+}
+
+[numthreads(1, 1, 1)]
+void main() {
+  vector<float16_t, 4> a = (float16_t(0.0h)).xxxx;
+  float16_t b = float16_t(1.0h);
+  a[0] = (a.x + b);
+}
+
diff --git a/test/tint/bug/tint/2146.wgsl.expected.ir.fxc.hlsl b/test/tint/bug/tint/2146.wgsl.expected.ir.fxc.hlsl
index 4a2c666..5e13585 100644
--- a/test/tint/bug/tint/2146.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/bug/tint/2146.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,24 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::LoadVectorElement
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+
+static uint3 localId = (0u).xxx;
+static uint localIndex = 0u;
+static uint3 globalId = (0u).xxx;
+static uint3 numWorkgroups = (0u).xxx;
+static uint3 workgroupId = (0u).xxx;
+uint globalId2Index() {
+  return globalId.x;
+}
+
+[numthreads(1, 1, 1)]
+void main() {
+  vector<float16_t, 4> a = (float16_t(0.0h)).xxxx;
+  float16_t b = float16_t(1.0h);
+  a[0] = (a.x + b);
+}
+
+FXC validation failure:
+c:\src\dawn\Shader@0x0000018F720B57B0(13,10-18): error X3000: syntax error: unexpected token 'float16_t'
+c:\src\dawn\Shader@0x0000018F720B57B0(14,3-11): error X3000: unrecognized identifier 'float16_t'
+c:\src\dawn\Shader@0x0000018F720B57B0(14,13): error X3000: unrecognized identifier 'b'
+
diff --git a/test/tint/bug/tint/2147.wgsl.expected.ir.dxc.hlsl b/test/tint/bug/tint/2147.wgsl.expected.ir.dxc.hlsl
index bdeab23..69b146b 100644
--- a/test/tint/bug/tint/2147.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/bug/tint/2147.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,33 @@
-SKIP: FAILED
+struct atomic_compare_exchange_result_i32 {
+  int old_value;
+  bool exchanged;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:198 internal compiler error: Switch() matched no cases. Type: tint::core::ir::If
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct main_outputs {
+  float4 tint_symbol : SV_Target0;
+};
+
+
+RWByteAddressBuffer S : register(u0);
+static bool continue_execution = true;
+float4 main_inner() {
+  if (false) {
+    continue_execution = false;
+  }
+  int v = 0;
+  S.InterlockedCompareExchange(int(0u), 0, 1, v);
+  int v_1 = v;
+  atomic_compare_exchange_result_i32 v_2 = {v_1, (v_1 == 0)};
+  int old_value = v_2.old_value;
+  return float4((float(old_value)).xxxx);
+}
+
+main_outputs main() {
+  main_outputs v_3 = {main_inner()};
+  if (!(continue_execution)) {
+    discard;
+  }
+  main_outputs v_4 = v_3;
+  return v_4;
+}
+
diff --git a/test/tint/bug/tint/2147.wgsl.expected.ir.fxc.hlsl b/test/tint/bug/tint/2147.wgsl.expected.ir.fxc.hlsl
index bdeab23..69b146b 100644
--- a/test/tint/bug/tint/2147.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/bug/tint/2147.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,33 @@
-SKIP: FAILED
+struct atomic_compare_exchange_result_i32 {
+  int old_value;
+  bool exchanged;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:198 internal compiler error: Switch() matched no cases. Type: tint::core::ir::If
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct main_outputs {
+  float4 tint_symbol : SV_Target0;
+};
+
+
+RWByteAddressBuffer S : register(u0);
+static bool continue_execution = true;
+float4 main_inner() {
+  if (false) {
+    continue_execution = false;
+  }
+  int v = 0;
+  S.InterlockedCompareExchange(int(0u), 0, 1, v);
+  int v_1 = v;
+  atomic_compare_exchange_result_i32 v_2 = {v_1, (v_1 == 0)};
+  int old_value = v_2.old_value;
+  return float4((float(old_value)).xxxx);
+}
+
+main_outputs main() {
+  main_outputs v_3 = {main_inner()};
+  if (!(continue_execution)) {
+    discard;
+  }
+  main_outputs v_4 = v_3;
+  return v_4;
+}
+
diff --git a/test/tint/bug/tint/2175.wgsl.expected.ir.dxc.hlsl b/test/tint/bug/tint/2175.wgsl.expected.ir.dxc.hlsl
index c950a09..7875c96 100644
--- a/test/tint/bug/tint/2175.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/bug/tint/2175.wgsl.expected.ir.dxc.hlsl
@@ -1,12 +1,7 @@
-SKIP: FAILED
 
+RWByteAddressBuffer tint_symbol_2 : register(u0);
 [numthreads(1, 1, 1)]
 void tint_symbol_3() {
-  tint_symbol_2 = 0u;
+  tint_symbol_2.Store(0u, 0u);
 }
 
-DXC validation failure:
-hlsl.hlsl:3:3: error: use of undeclared identifier 'tint_symbol_2'
-  tint_symbol_2 = 0u;
-  ^
-
diff --git a/test/tint/bug/tint/2175.wgsl.expected.ir.fxc.hlsl b/test/tint/bug/tint/2175.wgsl.expected.ir.fxc.hlsl
index 33bbe40..7875c96 100644
--- a/test/tint/bug/tint/2175.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/bug/tint/2175.wgsl.expected.ir.fxc.hlsl
@@ -1,7 +1,7 @@
-SKIP: FAILED
 
+RWByteAddressBuffer tint_symbol_2 : register(u0);
 [numthreads(1, 1, 1)]
 void tint_symbol_3() {
-  tint_symbol_2 = 0u;
+  tint_symbol_2.Store(0u, 0u);
 }
 
diff --git a/test/tint/bug/tint/2177.wgsl.expected.ir.dxc.hlsl b/test/tint/bug/tint/2177.wgsl.expected.ir.dxc.hlsl
index 7492c3a..e728ed8 100644
--- a/test/tint/bug/tint/2177.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/bug/tint/2177.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,61 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: arrayLength
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+
+@binding(0) @group(0) var<storage, read_write> arr : array<u32>;
+
+fn f2(p : ptr<storage, array<u32>, read_write>) -> u32 {
+  return arrayLength(p);
+}
+
+fn f1(p : ptr<storage, array<u32>, read_write>) -> u32 {
+  return f2(p);
+}
+
+fn f0(p : ptr<storage, array<u32>, read_write>) -> u32 {
+  return f1(p);
+}
+
+@compute @workgroup_size(1)
+fn main() {
+  arr[0] = f0(&(arr));
+}
+
+Failed to generate: :25:31 error: call: operand is undefined
+    %15:u32 = call %f0, %arr, undef
+                              ^^^^^
+
+:23:3 note: in block
+  $B5: {
+  ^^^
+
+note: # Disassembly
+$B1: {  # root
+  %arr:ptr<storage, array<u32>, read_write> = var @binding_point(0, 0)
+}
+
+%f2 = func(%p:ptr<storage, array<u32>, read_write>, %tint_array_length:u32):u32 {
+  $B2: {
+    ret %tint_array_length
+  }
+}
+%f1 = func(%p_1:ptr<storage, array<u32>, read_write>, %tint_array_length_1:u32):u32 {  # %p_1: 'p', %tint_array_length_1: 'tint_array_length'
+  $B3: {
+    %8:u32 = call %f2, %p_1, %tint_array_length_1
+    ret %8
+  }
+}
+%f0 = func(%p_2:ptr<storage, array<u32>, read_write>, %tint_array_length_2:u32):u32 {  # %p_2: 'p', %tint_array_length_2: 'tint_array_length'
+  $B4: {
+    %12:u32 = call %f1, %p_2, %tint_array_length_2
+    ret %12
+  }
+}
+%main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
+    %14:ptr<storage, u32, read_write> = access %arr, 0i
+    %15:u32 = call %f0, %arr, undef
+    store %14, %15
+    ret
+  }
+}
+
diff --git a/test/tint/bug/tint/2177.wgsl.expected.ir.fxc.hlsl b/test/tint/bug/tint/2177.wgsl.expected.ir.fxc.hlsl
index 7492c3a..e728ed8 100644
--- a/test/tint/bug/tint/2177.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/bug/tint/2177.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,61 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: arrayLength
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+
+@binding(0) @group(0) var<storage, read_write> arr : array<u32>;
+
+fn f2(p : ptr<storage, array<u32>, read_write>) -> u32 {
+  return arrayLength(p);
+}
+
+fn f1(p : ptr<storage, array<u32>, read_write>) -> u32 {
+  return f2(p);
+}
+
+fn f0(p : ptr<storage, array<u32>, read_write>) -> u32 {
+  return f1(p);
+}
+
+@compute @workgroup_size(1)
+fn main() {
+  arr[0] = f0(&(arr));
+}
+
+Failed to generate: :25:31 error: call: operand is undefined
+    %15:u32 = call %f0, %arr, undef
+                              ^^^^^
+
+:23:3 note: in block
+  $B5: {
+  ^^^
+
+note: # Disassembly
+$B1: {  # root
+  %arr:ptr<storage, array<u32>, read_write> = var @binding_point(0, 0)
+}
+
+%f2 = func(%p:ptr<storage, array<u32>, read_write>, %tint_array_length:u32):u32 {
+  $B2: {
+    ret %tint_array_length
+  }
+}
+%f1 = func(%p_1:ptr<storage, array<u32>, read_write>, %tint_array_length_1:u32):u32 {  # %p_1: 'p', %tint_array_length_1: 'tint_array_length'
+  $B3: {
+    %8:u32 = call %f2, %p_1, %tint_array_length_1
+    ret %8
+  }
+}
+%f0 = func(%p_2:ptr<storage, array<u32>, read_write>, %tint_array_length_2:u32):u32 {  # %p_2: 'p', %tint_array_length_2: 'tint_array_length'
+  $B4: {
+    %12:u32 = call %f1, %p_2, %tint_array_length_2
+    ret %12
+  }
+}
+%main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
+    %14:ptr<storage, u32, read_write> = access %arr, 0i
+    %15:u32 = call %f0, %arr, undef
+    store %14, %15
+    ret
+  }
+}
+
diff --git a/test/tint/bug/tint/219.spvasm.expected.ir.dxc.hlsl b/test/tint/bug/tint/219.spvasm.expected.ir.dxc.hlsl
index 4a2c666..9327c88 100644
--- a/test/tint/bug/tint/219.spvasm.expected.ir.dxc.hlsl
+++ b/test/tint/bug/tint/219.spvasm.expected.ir.dxc.hlsl
@@ -1,9 +1,16 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::LoadVectorElement
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+float x_200(inout float2 x_201) {
+  float x_212 = x_201.x;
+  return x_212;
+}
+
+void main_1() {
+  float2 x_11 = (0.0f).xx;
+  float x_12 = x_200(x_11);
+}
+
+[numthreads(1, 1, 1)]
+void main() {
+  main_1();
+}
+
diff --git a/test/tint/bug/tint/219.spvasm.expected.ir.fxc.hlsl b/test/tint/bug/tint/219.spvasm.expected.ir.fxc.hlsl
index 4a2c666..9327c88 100644
--- a/test/tint/bug/tint/219.spvasm.expected.ir.fxc.hlsl
+++ b/test/tint/bug/tint/219.spvasm.expected.ir.fxc.hlsl
@@ -1,9 +1,16 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::LoadVectorElement
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+float x_200(inout float2 x_201) {
+  float x_212 = x_201.x;
+  return x_212;
+}
+
+void main_1() {
+  float2 x_11 = (0.0f).xx;
+  float x_12 = x_200(x_11);
+}
+
+[numthreads(1, 1, 1)]
+void main() {
+  main_1();
+}
+
diff --git a/test/tint/bug/tint/2190.wgsl.expected.ir.dxc.hlsl b/test/tint/bug/tint/2190.wgsl.expected.ir.dxc.hlsl
index 6fdd166..71ad0a8 100644
--- a/test/tint/bug/tint/2190.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/bug/tint/2190.wgsl.expected.ir.dxc.hlsl
@@ -1,3 +1,4 @@
+
 void f() {
   bool v = false;
 }
diff --git a/test/tint/bug/tint/2190.wgsl.expected.ir.fxc.hlsl b/test/tint/bug/tint/2190.wgsl.expected.ir.fxc.hlsl
index 6fdd166..71ad0a8 100644
--- a/test/tint/bug/tint/2190.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/bug/tint/2190.wgsl.expected.ir.fxc.hlsl
@@ -1,3 +1,4 @@
+
 void f() {
   bool v = false;
 }
diff --git a/test/tint/bug/tint/2201.wgsl.expected.ir.dxc.hlsl b/test/tint/bug/tint/2201.wgsl.expected.ir.dxc.hlsl
index a04b7b6..c219a60 100644
--- a/test/tint/bug/tint/2201.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/bug/tint/2201.wgsl.expected.ir.dxc.hlsl
@@ -1,13 +1,19 @@
-SKIP: FAILED
-
 <dawn>/test/tint/bug/tint/2201.wgsl:9:9 warning: code is unreachable
         let _e16_ = vec2(false, false);
         ^^^^^^^^^
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:198 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Loop
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+
+[numthreads(1, 1, 1)]
+void main() {
+  {
+    while(true) {
+      if (true) {
+        break;
+      } else {
+        break;
+      }
+      /* unreachable */
+    }
+  }
+}
+
diff --git a/test/tint/bug/tint/2201.wgsl.expected.ir.fxc.hlsl b/test/tint/bug/tint/2201.wgsl.expected.ir.fxc.hlsl
index a04b7b6..c219a60 100644
--- a/test/tint/bug/tint/2201.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/bug/tint/2201.wgsl.expected.ir.fxc.hlsl
@@ -1,13 +1,19 @@
-SKIP: FAILED
-
 <dawn>/test/tint/bug/tint/2201.wgsl:9:9 warning: code is unreachable
         let _e16_ = vec2(false, false);
         ^^^^^^^^^
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:198 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Loop
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+
+[numthreads(1, 1, 1)]
+void main() {
+  {
+    while(true) {
+      if (true) {
+        break;
+      } else {
+        break;
+      }
+      /* unreachable */
+    }
+  }
+}
+
diff --git a/test/tint/bug/tint/2202.wgsl.expected.ir.dxc.hlsl b/test/tint/bug/tint/2202.wgsl.expected.ir.dxc.hlsl
index d6a3cd3..251252b 100644
--- a/test/tint/bug/tint/2202.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/bug/tint/2202.wgsl.expected.ir.dxc.hlsl
@@ -1,13 +1,19 @@
-SKIP: FAILED
-
 <dawn>/test/tint/bug/tint/2202.wgsl:7:9 warning: code is unreachable
         let _e9 = (vec3<i32>().y >= vec3<i32>().y);
         ^^^^^^^
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:198 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Loop
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+
+[numthreads(1, 1, 1)]
+void main() {
+  {
+    while(true) {
+      {
+        while(true) {
+          return;
+        }
+      }
+      /* unreachable */
+    }
+  }
+}
+
diff --git a/test/tint/bug/tint/2202.wgsl.expected.ir.fxc.hlsl b/test/tint/bug/tint/2202.wgsl.expected.ir.fxc.hlsl
index d6a3cd3..251252b 100644
--- a/test/tint/bug/tint/2202.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/bug/tint/2202.wgsl.expected.ir.fxc.hlsl
@@ -1,13 +1,19 @@
-SKIP: FAILED
-
 <dawn>/test/tint/bug/tint/2202.wgsl:7:9 warning: code is unreachable
         let _e9 = (vec3<i32>().y >= vec3<i32>().y);
         ^^^^^^^
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:198 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Loop
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+
+[numthreads(1, 1, 1)]
+void main() {
+  {
+    while(true) {
+      {
+        while(true) {
+          return;
+        }
+      }
+      /* unreachable */
+    }
+  }
+}
+
diff --git a/test/tint/bug/tint/221.wgsl.expected.ir.dxc.hlsl b/test/tint/bug/tint/221.wgsl.expected.ir.dxc.hlsl
index adbb0c1..4c6e085 100644
--- a/test/tint/bug/tint/221.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/bug/tint/221.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,34 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:198 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Loop
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWByteAddressBuffer b : register(u0);
+uint tint_mod_u32(uint lhs, uint rhs) {
+  uint v = (((rhs == 0u)) ? (1u) : (rhs));
+  return (lhs - ((lhs / v) * v));
+}
+
+[numthreads(1, 1, 1)]
+void main() {
+  uint i = 0u;
+  {
+    while(true) {
+      uint v_1 = i;
+      if ((v_1 >= b.Load(0u))) {
+        break;
+      }
+      uint v_2 = (uint(i) * 4u);
+      if ((tint_mod_u32(i, 2u) == 0u)) {
+        {
+          b.Store((4u + v_2), (b.Load((4u + v_2)) * 2u));
+          i = (i + 1u);
+        }
+        continue;
+      }
+      b.Store((4u + v_2), 0u);
+      {
+        b.Store((4u + v_2), (b.Load((4u + v_2)) * 2u));
+        i = (i + 1u);
+      }
+      continue;
+    }
+  }
+}
+
diff --git a/test/tint/bug/tint/221.wgsl.expected.ir.fxc.hlsl b/test/tint/bug/tint/221.wgsl.expected.ir.fxc.hlsl
index adbb0c1..4c6e085 100644
--- a/test/tint/bug/tint/221.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/bug/tint/221.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,34 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:198 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Loop
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWByteAddressBuffer b : register(u0);
+uint tint_mod_u32(uint lhs, uint rhs) {
+  uint v = (((rhs == 0u)) ? (1u) : (rhs));
+  return (lhs - ((lhs / v) * v));
+}
+
+[numthreads(1, 1, 1)]
+void main() {
+  uint i = 0u;
+  {
+    while(true) {
+      uint v_1 = i;
+      if ((v_1 >= b.Load(0u))) {
+        break;
+      }
+      uint v_2 = (uint(i) * 4u);
+      if ((tint_mod_u32(i, 2u) == 0u)) {
+        {
+          b.Store((4u + v_2), (b.Load((4u + v_2)) * 2u));
+          i = (i + 1u);
+        }
+        continue;
+      }
+      b.Store((4u + v_2), 0u);
+      {
+        b.Store((4u + v_2), (b.Load((4u + v_2)) * 2u));
+        i = (i + 1u);
+      }
+      continue;
+    }
+  }
+}
+
diff --git a/test/tint/bug/tint/2237.wgsl.expected.ir.dxc.hlsl b/test/tint/bug/tint/2237.wgsl.expected.ir.dxc.hlsl
index 3f437dc..16afd12 100644
--- a/test/tint/bug/tint/2237.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/bug/tint/2237.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,14 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Access
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWByteAddressBuffer buffer : register(u0);
+uint foo() {
+  uint v_1[4] = {0u, 1u, 2u, 4u};
+  return v_1[buffer.Load(0u)];
+}
+
+[numthreads(1, 1, 1)]
+void main() {
+  uint v_2[4] = {0u, 1u, 2u, 4u};
+  uint v = v_2[buffer.Load(0u)];
+  buffer.Store(0u, (v + foo()));
+}
+
diff --git a/test/tint/bug/tint/2237.wgsl.expected.ir.fxc.hlsl b/test/tint/bug/tint/2237.wgsl.expected.ir.fxc.hlsl
index 3f437dc..16afd12 100644
--- a/test/tint/bug/tint/2237.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/bug/tint/2237.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,14 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Access
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWByteAddressBuffer buffer : register(u0);
+uint foo() {
+  uint v_1[4] = {0u, 1u, 2u, 4u};
+  return v_1[buffer.Load(0u)];
+}
+
+[numthreads(1, 1, 1)]
+void main() {
+  uint v_2[4] = {0u, 1u, 2u, 4u};
+  uint v = v_2[buffer.Load(0u)];
+  buffer.Store(0u, (v + foo()));
+}
+
diff --git a/test/tint/bug/tint/292.wgsl.expected.ir.dxc.hlsl b/test/tint/bug/tint/292.wgsl.expected.ir.dxc.hlsl
index cf7df04..d98c0d5 100644
--- a/test/tint/bug/tint/292.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/bug/tint/292.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,16 @@
-SKIP: FAILED
+struct main_outputs {
+  float4 tint_symbol : SV_Position;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::CoreUnary
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+
+float4 main_inner() {
+  float3 light = float3(1.20000004768371582031f, 1.0f, 2.0f);
+  float3 negative_light = -(light);
+  return (0.0f).xxxx;
+}
+
+main_outputs main() {
+  main_outputs v = {main_inner()};
+  return v;
+}
+
diff --git a/test/tint/bug/tint/292.wgsl.expected.ir.fxc.hlsl b/test/tint/bug/tint/292.wgsl.expected.ir.fxc.hlsl
index cf7df04..d98c0d5 100644
--- a/test/tint/bug/tint/292.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/bug/tint/292.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,16 @@
-SKIP: FAILED
+struct main_outputs {
+  float4 tint_symbol : SV_Position;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::CoreUnary
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+
+float4 main_inner() {
+  float3 light = float3(1.20000004768371582031f, 1.0f, 2.0f);
+  float3 negative_light = -(light);
+  return (0.0f).xxxx;
+}
+
+main_outputs main() {
+  main_outputs v = {main_inner()};
+  return v;
+}
+
diff --git a/test/tint/bug/tint/294.wgsl.expected.ir.dxc.hlsl b/test/tint/bug/tint/294.wgsl.expected.ir.dxc.hlsl
index 9acd2d7..efeb3d8 100644
--- a/test/tint/bug/tint/294.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/bug/tint/294.wgsl.expected.ir.dxc.hlsl
@@ -1,3 +1,5 @@
+
+ByteAddressBuffer lights : register(t1);
 [numthreads(1, 1, 1)]
 void unused_entry_point() {
 }
diff --git a/test/tint/bug/tint/294.wgsl.expected.ir.fxc.hlsl b/test/tint/bug/tint/294.wgsl.expected.ir.fxc.hlsl
index 9acd2d7..efeb3d8 100644
--- a/test/tint/bug/tint/294.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/bug/tint/294.wgsl.expected.ir.fxc.hlsl
@@ -1,3 +1,5 @@
+
+ByteAddressBuffer lights : register(t1);
 [numthreads(1, 1, 1)]
 void unused_entry_point() {
 }
diff --git a/test/tint/bug/tint/349291130.wgsl.expected.ir.dxc.hlsl b/test/tint/bug/tint/349291130.wgsl.expected.ir.dxc.hlsl
new file mode 100644
index 0000000..e01eb63
--- /dev/null
+++ b/test/tint/bug/tint/349291130.wgsl.expected.ir.dxc.hlsl
@@ -0,0 +1,20 @@
+
+Texture2D<float4> tint_symbol : register(t0);
+[numthreads(6, 1, 1)]
+void e() {
+  {
+    uint3 v = (0u).xxx;
+    tint_symbol.GetDimensions(0u, v[0u], v[1u], v[2u]);
+    uint level = v.z;
+    while(true) {
+      if ((level > 0u)) {
+      } else {
+        break;
+      }
+      {
+      }
+      continue;
+    }
+  }
+}
+
diff --git a/test/tint/bug/tint/349291130.wgsl.expected.ir.fxc.hlsl b/test/tint/bug/tint/349291130.wgsl.expected.ir.fxc.hlsl
new file mode 100644
index 0000000..e01eb63
--- /dev/null
+++ b/test/tint/bug/tint/349291130.wgsl.expected.ir.fxc.hlsl
@@ -0,0 +1,20 @@
+
+Texture2D<float4> tint_symbol : register(t0);
+[numthreads(6, 1, 1)]
+void e() {
+  {
+    uint3 v = (0u).xxx;
+    tint_symbol.GetDimensions(0u, v[0u], v[1u], v[2u]);
+    uint level = v.z;
+    while(true) {
+      if ((level > 0u)) {
+      } else {
+        break;
+      }
+      {
+      }
+      continue;
+    }
+  }
+}
+
diff --git a/test/tint/bug/tint/349310442.wgsl.expected.ir.dxc.hlsl b/test/tint/bug/tint/349310442.wgsl.expected.ir.dxc.hlsl
new file mode 100644
index 0000000..265fa8a
--- /dev/null
+++ b/test/tint/bug/tint/349310442.wgsl.expected.ir.dxc.hlsl
@@ -0,0 +1,143 @@
+struct tint_GammaTransferParams {
+  float G;
+  float A;
+  float B;
+  float C;
+  float D;
+  float E;
+  float F;
+  uint padding;
+};
+
+struct tint_ExternalTextureParams {
+  uint numPlanes;
+  uint doYuvToRgbConversionOnly;
+  float3x4 yuvToRgbConversionMatrix;
+  tint_GammaTransferParams gammaDecodeParams;
+  tint_GammaTransferParams gammaEncodeParams;
+  float3x3 gamutConversionMatrix;
+  float3x2 sampleTransform;
+  float3x2 loadTransform;
+  float2 samplePlane0RectMin;
+  float2 samplePlane0RectMax;
+  float2 samplePlane1RectMin;
+  float2 samplePlane1RectMax;
+  uint2 visibleSize;
+  float2 plane1CoordFactor;
+};
+
+
+Texture2D<float4> t_plane0 : register(t0);
+Texture2D<float4> t_plane1 : register(t1);
+cbuffer cbuffer_t_params : register(b2) {
+  uint4 t_params[17];
+};
+uint2 tint_v2f32_to_v2u32(float2 value) {
+  return (((value <= (4294967040.0f).xx)) ? ((((value >= (0.0f).xx)) ? (uint2(value)) : ((0u).xx))) : ((4294967295u).xx));
+}
+
+float3 tint_GammaCorrection(float3 v, tint_GammaTransferParams params) {
+  float3 v_1 = float3((params.G).xxx);
+  float3 v_2 = float3((params.D).xxx);
+  float3 v_3 = abs(v);
+  float3 v_4 = float3(sign(v));
+  return (((v_3 < v_2)) ? ((v_4 * ((params.C * v_3) + params.F))) : ((v_4 * (pow(((params.A * v_3) + params.B), v_1) + params.E))));
+}
+
+float4 tint_TextureLoadExternal(Texture2D<float4> plane_0, Texture2D<float4> plane_1, tint_ExternalTextureParams params, uint2 coords) {
+  float2 v_5 = round(mul(float3(float2(min(coords, params.visibleSize)), 1.0f), params.loadTransform));
+  uint2 v_6 = tint_v2f32_to_v2u32(v_5);
+  float3 v_7 = (0.0f).xxx;
+  float v_8 = 0.0f;
+  if ((params.numPlanes == 1u)) {
+    int2 v_9 = int2(v_6);
+    float4 v_10 = float4(plane_0.Load(int3(v_9, int(0u))));
+    v_7 = v_10.xyz;
+    v_8 = v_10[3u];
+  } else {
+    int2 v_11 = int2(v_6);
+    float v_12 = float4(plane_0.Load(int3(v_11, int(0u))))[0u];
+    int2 v_13 = int2(tint_v2f32_to_v2u32((v_5 * params.plane1CoordFactor)));
+    v_7 = mul(params.yuvToRgbConversionMatrix, float4(v_12, float4(plane_1.Load(int3(v_13, int(0u)))).xy, 1.0f));
+    v_8 = 1.0f;
+  }
+  float3 v_14 = v_7;
+  float3 v_15 = (0.0f).xxx;
+  if ((params.doYuvToRgbConversionOnly == 0u)) {
+    tint_GammaTransferParams v_16 = params.gammaDecodeParams;
+    tint_GammaTransferParams v_17 = params.gammaEncodeParams;
+    v_15 = tint_GammaCorrection(mul(tint_GammaCorrection(v_14, v_16), params.gamutConversionMatrix), v_17);
+  } else {
+    v_15 = v_14;
+  }
+  return float4(v_15, v_8);
+}
+
+float3x2 v_18(uint start_byte_offset) {
+  uint4 v_19 = t_params[(start_byte_offset / 16u)];
+  float2 v_20 = asfloat((((((start_byte_offset % 16u) / 4u) == 2u)) ? (v_19.zw) : (v_19.xy)));
+  uint4 v_21 = t_params[((8u + start_byte_offset) / 16u)];
+  float2 v_22 = asfloat(((((((8u + start_byte_offset) % 16u) / 4u) == 2u)) ? (v_21.zw) : (v_21.xy)));
+  uint4 v_23 = t_params[((16u + start_byte_offset) / 16u)];
+  return float3x2(v_20, v_22, asfloat(((((((16u + start_byte_offset) % 16u) / 4u) == 2u)) ? (v_23.zw) : (v_23.xy))));
+}
+
+float3x3 v_24(uint start_byte_offset) {
+  float3 v_25 = asfloat(t_params[(start_byte_offset / 16u)].xyz);
+  float3 v_26 = asfloat(t_params[((16u + start_byte_offset) / 16u)].xyz);
+  return float3x3(v_25, v_26, asfloat(t_params[((32u + start_byte_offset) / 16u)].xyz));
+}
+
+tint_GammaTransferParams v_27(uint start_byte_offset) {
+  float v_28 = asfloat(t_params[(start_byte_offset / 16u)][((start_byte_offset % 16u) / 4u)]);
+  float v_29 = asfloat(t_params[((4u + start_byte_offset) / 16u)][(((4u + start_byte_offset) % 16u) / 4u)]);
+  float v_30 = asfloat(t_params[((8u + start_byte_offset) / 16u)][(((8u + start_byte_offset) % 16u) / 4u)]);
+  float v_31 = asfloat(t_params[((12u + start_byte_offset) / 16u)][(((12u + start_byte_offset) % 16u) / 4u)]);
+  float v_32 = asfloat(t_params[((16u + start_byte_offset) / 16u)][(((16u + start_byte_offset) % 16u) / 4u)]);
+  float v_33 = asfloat(t_params[((20u + start_byte_offset) / 16u)][(((20u + start_byte_offset) % 16u) / 4u)]);
+  float v_34 = asfloat(t_params[((24u + start_byte_offset) / 16u)][(((24u + start_byte_offset) % 16u) / 4u)]);
+  tint_GammaTransferParams v_35 = {v_28, v_29, v_30, v_31, v_32, v_33, v_34, t_params[((28u + start_byte_offset) / 16u)][(((28u + start_byte_offset) % 16u) / 4u)]};
+  return v_35;
+}
+
+float3x4 v_36(uint start_byte_offset) {
+  float4 v_37 = asfloat(t_params[(start_byte_offset / 16u)]);
+  float4 v_38 = asfloat(t_params[((16u + start_byte_offset) / 16u)]);
+  return float3x4(v_37, v_38, asfloat(t_params[((32u + start_byte_offset) / 16u)]));
+}
+
+tint_ExternalTextureParams v_39(uint start_byte_offset) {
+  uint v_40 = t_params[(start_byte_offset / 16u)][((start_byte_offset % 16u) / 4u)];
+  uint v_41 = t_params[((4u + start_byte_offset) / 16u)][(((4u + start_byte_offset) % 16u) / 4u)];
+  float3x4 v_42 = v_36((16u + start_byte_offset));
+  tint_GammaTransferParams v_43 = v_27((64u + start_byte_offset));
+  tint_GammaTransferParams v_44 = v_27((96u + start_byte_offset));
+  float3x3 v_45 = v_24((128u + start_byte_offset));
+  float3x2 v_46 = v_18((176u + start_byte_offset));
+  float3x2 v_47 = v_18((200u + start_byte_offset));
+  uint4 v_48 = t_params[((224u + start_byte_offset) / 16u)];
+  float2 v_49 = asfloat(((((((224u + start_byte_offset) % 16u) / 4u) == 2u)) ? (v_48.zw) : (v_48.xy)));
+  uint4 v_50 = t_params[((232u + start_byte_offset) / 16u)];
+  float2 v_51 = asfloat(((((((232u + start_byte_offset) % 16u) / 4u) == 2u)) ? (v_50.zw) : (v_50.xy)));
+  uint4 v_52 = t_params[((240u + start_byte_offset) / 16u)];
+  float2 v_53 = asfloat(((((((240u + start_byte_offset) % 16u) / 4u) == 2u)) ? (v_52.zw) : (v_52.xy)));
+  uint4 v_54 = t_params[((248u + start_byte_offset) / 16u)];
+  float2 v_55 = asfloat(((((((248u + start_byte_offset) % 16u) / 4u) == 2u)) ? (v_54.zw) : (v_54.xy)));
+  uint4 v_56 = t_params[((256u + start_byte_offset) / 16u)];
+  uint2 v_57 = ((((((256u + start_byte_offset) % 16u) / 4u) == 2u)) ? (v_56.zw) : (v_56.xy));
+  uint4 v_58 = t_params[((264u + start_byte_offset) / 16u)];
+  tint_GammaTransferParams v_59 = v_43;
+  tint_GammaTransferParams v_60 = v_44;
+  tint_ExternalTextureParams v_61 = {v_40, v_41, v_42, v_59, v_60, v_45, v_46, v_47, v_49, v_51, v_53, v_55, v_57, asfloat(((((((264u + start_byte_offset) % 16u) / 4u) == 2u)) ? (v_58.zw) : (v_58.xy)))};
+  return v_61;
+}
+
+[numthreads(1, 1, 1)]
+void i() {
+  Texture2D<float4> v_62 = t_plane0;
+  Texture2D<float4> v_63 = t_plane1;
+  tint_ExternalTextureParams v_64 = v_39(0u);
+  tint_ExternalTextureParams v_65 = v_64;
+  float4 r = tint_TextureLoadExternal(v_62, v_63, v_65, uint2((0).xx));
+}
+
diff --git a/test/tint/bug/tint/349310442.wgsl.expected.ir.fxc.hlsl b/test/tint/bug/tint/349310442.wgsl.expected.ir.fxc.hlsl
new file mode 100644
index 0000000..265fa8a
--- /dev/null
+++ b/test/tint/bug/tint/349310442.wgsl.expected.ir.fxc.hlsl
@@ -0,0 +1,143 @@
+struct tint_GammaTransferParams {
+  float G;
+  float A;
+  float B;
+  float C;
+  float D;
+  float E;
+  float F;
+  uint padding;
+};
+
+struct tint_ExternalTextureParams {
+  uint numPlanes;
+  uint doYuvToRgbConversionOnly;
+  float3x4 yuvToRgbConversionMatrix;
+  tint_GammaTransferParams gammaDecodeParams;
+  tint_GammaTransferParams gammaEncodeParams;
+  float3x3 gamutConversionMatrix;
+  float3x2 sampleTransform;
+  float3x2 loadTransform;
+  float2 samplePlane0RectMin;
+  float2 samplePlane0RectMax;
+  float2 samplePlane1RectMin;
+  float2 samplePlane1RectMax;
+  uint2 visibleSize;
+  float2 plane1CoordFactor;
+};
+
+
+Texture2D<float4> t_plane0 : register(t0);
+Texture2D<float4> t_plane1 : register(t1);
+cbuffer cbuffer_t_params : register(b2) {
+  uint4 t_params[17];
+};
+uint2 tint_v2f32_to_v2u32(float2 value) {
+  return (((value <= (4294967040.0f).xx)) ? ((((value >= (0.0f).xx)) ? (uint2(value)) : ((0u).xx))) : ((4294967295u).xx));
+}
+
+float3 tint_GammaCorrection(float3 v, tint_GammaTransferParams params) {
+  float3 v_1 = float3((params.G).xxx);
+  float3 v_2 = float3((params.D).xxx);
+  float3 v_3 = abs(v);
+  float3 v_4 = float3(sign(v));
+  return (((v_3 < v_2)) ? ((v_4 * ((params.C * v_3) + params.F))) : ((v_4 * (pow(((params.A * v_3) + params.B), v_1) + params.E))));
+}
+
+float4 tint_TextureLoadExternal(Texture2D<float4> plane_0, Texture2D<float4> plane_1, tint_ExternalTextureParams params, uint2 coords) {
+  float2 v_5 = round(mul(float3(float2(min(coords, params.visibleSize)), 1.0f), params.loadTransform));
+  uint2 v_6 = tint_v2f32_to_v2u32(v_5);
+  float3 v_7 = (0.0f).xxx;
+  float v_8 = 0.0f;
+  if ((params.numPlanes == 1u)) {
+    int2 v_9 = int2(v_6);
+    float4 v_10 = float4(plane_0.Load(int3(v_9, int(0u))));
+    v_7 = v_10.xyz;
+    v_8 = v_10[3u];
+  } else {
+    int2 v_11 = int2(v_6);
+    float v_12 = float4(plane_0.Load(int3(v_11, int(0u))))[0u];
+    int2 v_13 = int2(tint_v2f32_to_v2u32((v_5 * params.plane1CoordFactor)));
+    v_7 = mul(params.yuvToRgbConversionMatrix, float4(v_12, float4(plane_1.Load(int3(v_13, int(0u)))).xy, 1.0f));
+    v_8 = 1.0f;
+  }
+  float3 v_14 = v_7;
+  float3 v_15 = (0.0f).xxx;
+  if ((params.doYuvToRgbConversionOnly == 0u)) {
+    tint_GammaTransferParams v_16 = params.gammaDecodeParams;
+    tint_GammaTransferParams v_17 = params.gammaEncodeParams;
+    v_15 = tint_GammaCorrection(mul(tint_GammaCorrection(v_14, v_16), params.gamutConversionMatrix), v_17);
+  } else {
+    v_15 = v_14;
+  }
+  return float4(v_15, v_8);
+}
+
+float3x2 v_18(uint start_byte_offset) {
+  uint4 v_19 = t_params[(start_byte_offset / 16u)];
+  float2 v_20 = asfloat((((((start_byte_offset % 16u) / 4u) == 2u)) ? (v_19.zw) : (v_19.xy)));
+  uint4 v_21 = t_params[((8u + start_byte_offset) / 16u)];
+  float2 v_22 = asfloat(((((((8u + start_byte_offset) % 16u) / 4u) == 2u)) ? (v_21.zw) : (v_21.xy)));
+  uint4 v_23 = t_params[((16u + start_byte_offset) / 16u)];
+  return float3x2(v_20, v_22, asfloat(((((((16u + start_byte_offset) % 16u) / 4u) == 2u)) ? (v_23.zw) : (v_23.xy))));
+}
+
+float3x3 v_24(uint start_byte_offset) {
+  float3 v_25 = asfloat(t_params[(start_byte_offset / 16u)].xyz);
+  float3 v_26 = asfloat(t_params[((16u + start_byte_offset) / 16u)].xyz);
+  return float3x3(v_25, v_26, asfloat(t_params[((32u + start_byte_offset) / 16u)].xyz));
+}
+
+tint_GammaTransferParams v_27(uint start_byte_offset) {
+  float v_28 = asfloat(t_params[(start_byte_offset / 16u)][((start_byte_offset % 16u) / 4u)]);
+  float v_29 = asfloat(t_params[((4u + start_byte_offset) / 16u)][(((4u + start_byte_offset) % 16u) / 4u)]);
+  float v_30 = asfloat(t_params[((8u + start_byte_offset) / 16u)][(((8u + start_byte_offset) % 16u) / 4u)]);
+  float v_31 = asfloat(t_params[((12u + start_byte_offset) / 16u)][(((12u + start_byte_offset) % 16u) / 4u)]);
+  float v_32 = asfloat(t_params[((16u + start_byte_offset) / 16u)][(((16u + start_byte_offset) % 16u) / 4u)]);
+  float v_33 = asfloat(t_params[((20u + start_byte_offset) / 16u)][(((20u + start_byte_offset) % 16u) / 4u)]);
+  float v_34 = asfloat(t_params[((24u + start_byte_offset) / 16u)][(((24u + start_byte_offset) % 16u) / 4u)]);
+  tint_GammaTransferParams v_35 = {v_28, v_29, v_30, v_31, v_32, v_33, v_34, t_params[((28u + start_byte_offset) / 16u)][(((28u + start_byte_offset) % 16u) / 4u)]};
+  return v_35;
+}
+
+float3x4 v_36(uint start_byte_offset) {
+  float4 v_37 = asfloat(t_params[(start_byte_offset / 16u)]);
+  float4 v_38 = asfloat(t_params[((16u + start_byte_offset) / 16u)]);
+  return float3x4(v_37, v_38, asfloat(t_params[((32u + start_byte_offset) / 16u)]));
+}
+
+tint_ExternalTextureParams v_39(uint start_byte_offset) {
+  uint v_40 = t_params[(start_byte_offset / 16u)][((start_byte_offset % 16u) / 4u)];
+  uint v_41 = t_params[((4u + start_byte_offset) / 16u)][(((4u + start_byte_offset) % 16u) / 4u)];
+  float3x4 v_42 = v_36((16u + start_byte_offset));
+  tint_GammaTransferParams v_43 = v_27((64u + start_byte_offset));
+  tint_GammaTransferParams v_44 = v_27((96u + start_byte_offset));
+  float3x3 v_45 = v_24((128u + start_byte_offset));
+  float3x2 v_46 = v_18((176u + start_byte_offset));
+  float3x2 v_47 = v_18((200u + start_byte_offset));
+  uint4 v_48 = t_params[((224u + start_byte_offset) / 16u)];
+  float2 v_49 = asfloat(((((((224u + start_byte_offset) % 16u) / 4u) == 2u)) ? (v_48.zw) : (v_48.xy)));
+  uint4 v_50 = t_params[((232u + start_byte_offset) / 16u)];
+  float2 v_51 = asfloat(((((((232u + start_byte_offset) % 16u) / 4u) == 2u)) ? (v_50.zw) : (v_50.xy)));
+  uint4 v_52 = t_params[((240u + start_byte_offset) / 16u)];
+  float2 v_53 = asfloat(((((((240u + start_byte_offset) % 16u) / 4u) == 2u)) ? (v_52.zw) : (v_52.xy)));
+  uint4 v_54 = t_params[((248u + start_byte_offset) / 16u)];
+  float2 v_55 = asfloat(((((((248u + start_byte_offset) % 16u) / 4u) == 2u)) ? (v_54.zw) : (v_54.xy)));
+  uint4 v_56 = t_params[((256u + start_byte_offset) / 16u)];
+  uint2 v_57 = ((((((256u + start_byte_offset) % 16u) / 4u) == 2u)) ? (v_56.zw) : (v_56.xy));
+  uint4 v_58 = t_params[((264u + start_byte_offset) / 16u)];
+  tint_GammaTransferParams v_59 = v_43;
+  tint_GammaTransferParams v_60 = v_44;
+  tint_ExternalTextureParams v_61 = {v_40, v_41, v_42, v_59, v_60, v_45, v_46, v_47, v_49, v_51, v_53, v_55, v_57, asfloat(((((((264u + start_byte_offset) % 16u) / 4u) == 2u)) ? (v_58.zw) : (v_58.xy)))};
+  return v_61;
+}
+
+[numthreads(1, 1, 1)]
+void i() {
+  Texture2D<float4> v_62 = t_plane0;
+  Texture2D<float4> v_63 = t_plane1;
+  tint_ExternalTextureParams v_64 = v_39(0u);
+  tint_ExternalTextureParams v_65 = v_64;
+  float4 r = tint_TextureLoadExternal(v_62, v_63, v_65, uint2((0).xx));
+}
+
diff --git a/test/tint/bug/tint/369.wgsl.expected.ir.dxc.hlsl b/test/tint/bug/tint/369.wgsl.expected.ir.dxc.hlsl
index 9acd2d7..6433d85 100644
--- a/test/tint/bug/tint/369.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/bug/tint/369.wgsl.expected.ir.dxc.hlsl
@@ -1,3 +1,8 @@
+
+ByteAddressBuffer SSBO : register(t0);
+cbuffer cbuffer_UBO : register(b0) {
+  uint4 UBO[1];
+};
 [numthreads(1, 1, 1)]
 void unused_entry_point() {
 }
diff --git a/test/tint/bug/tint/369.wgsl.expected.ir.fxc.hlsl b/test/tint/bug/tint/369.wgsl.expected.ir.fxc.hlsl
index 9acd2d7..6433d85 100644
--- a/test/tint/bug/tint/369.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/bug/tint/369.wgsl.expected.ir.fxc.hlsl
@@ -1,3 +1,8 @@
+
+ByteAddressBuffer SSBO : register(t0);
+cbuffer cbuffer_UBO : register(b0) {
+  uint4 UBO[1];
+};
 [numthreads(1, 1, 1)]
 void unused_entry_point() {
 }
diff --git a/test/tint/bug/tint/403.wgsl.expected.ir.dxc.hlsl b/test/tint/bug/tint/403.wgsl.expected.ir.dxc.hlsl
index 3f437dc..990d03a 100644
--- a/test/tint/bug/tint/403.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/bug/tint/403.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,46 @@
-SKIP: FAILED
+struct main_outputs {
+  float4 tint_symbol : SV_Position;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Access
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct main_inputs {
+  uint gl_VertexIndex : SV_VertexID;
+};
+
+
+cbuffer cbuffer_x_20 : register(b0) {
+  uint4 x_20[1];
+};
+cbuffer cbuffer_x_26 : register(b0, space1) {
+  uint4 x_26[1];
+};
+float2x2 v(uint start_byte_offset) {
+  uint4 v_1 = x_26[(start_byte_offset / 16u)];
+  float2 v_2 = asfloat((((((start_byte_offset % 16u) / 4u) == 2u)) ? (v_1.zw) : (v_1.xy)));
+  uint4 v_3 = x_26[((8u + start_byte_offset) / 16u)];
+  return float2x2(v_2, asfloat(((((((8u + start_byte_offset) % 16u) / 4u) == 2u)) ? (v_3.zw) : (v_3.xy))));
+}
+
+float2x2 v_4(uint start_byte_offset) {
+  uint4 v_5 = x_20[(start_byte_offset / 16u)];
+  float2 v_6 = asfloat((((((start_byte_offset % 16u) / 4u) == 2u)) ? (v_5.zw) : (v_5.xy)));
+  uint4 v_7 = x_20[((8u + start_byte_offset) / 16u)];
+  return float2x2(v_6, asfloat(((((((8u + start_byte_offset) % 16u) / 4u) == 2u)) ? (v_7.zw) : (v_7.xy))));
+}
+
+float4 main_inner(uint gl_VertexIndex) {
+  float2 indexable[3] = (float2[3])0;
+  float2x2 x_23 = v_4(0u);
+  float2x2 x_28 = v(0u);
+  uint x_46 = gl_VertexIndex;
+  float2 v_8[3] = {float2(-1.0f, 1.0f), (1.0f).xx, (-1.0f).xx};
+  indexable = v_8;
+  float2 x_51 = indexable[x_46];
+  float2 x_52 = mul(x_51, float2x2((x_23[0u] + x_28[0u]), (x_23[1u] + x_28[1u])));
+  return float4(x_52[0u], x_52[1u], 0.0f, 1.0f);
+}
+
+main_outputs main(main_inputs inputs) {
+  main_outputs v_9 = {main_inner(inputs.gl_VertexIndex)};
+  return v_9;
+}
+
diff --git a/test/tint/bug/tint/403.wgsl.expected.ir.fxc.hlsl b/test/tint/bug/tint/403.wgsl.expected.ir.fxc.hlsl
index 3f437dc..990d03a 100644
--- a/test/tint/bug/tint/403.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/bug/tint/403.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,46 @@
-SKIP: FAILED
+struct main_outputs {
+  float4 tint_symbol : SV_Position;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Access
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct main_inputs {
+  uint gl_VertexIndex : SV_VertexID;
+};
+
+
+cbuffer cbuffer_x_20 : register(b0) {
+  uint4 x_20[1];
+};
+cbuffer cbuffer_x_26 : register(b0, space1) {
+  uint4 x_26[1];
+};
+float2x2 v(uint start_byte_offset) {
+  uint4 v_1 = x_26[(start_byte_offset / 16u)];
+  float2 v_2 = asfloat((((((start_byte_offset % 16u) / 4u) == 2u)) ? (v_1.zw) : (v_1.xy)));
+  uint4 v_3 = x_26[((8u + start_byte_offset) / 16u)];
+  return float2x2(v_2, asfloat(((((((8u + start_byte_offset) % 16u) / 4u) == 2u)) ? (v_3.zw) : (v_3.xy))));
+}
+
+float2x2 v_4(uint start_byte_offset) {
+  uint4 v_5 = x_20[(start_byte_offset / 16u)];
+  float2 v_6 = asfloat((((((start_byte_offset % 16u) / 4u) == 2u)) ? (v_5.zw) : (v_5.xy)));
+  uint4 v_7 = x_20[((8u + start_byte_offset) / 16u)];
+  return float2x2(v_6, asfloat(((((((8u + start_byte_offset) % 16u) / 4u) == 2u)) ? (v_7.zw) : (v_7.xy))));
+}
+
+float4 main_inner(uint gl_VertexIndex) {
+  float2 indexable[3] = (float2[3])0;
+  float2x2 x_23 = v_4(0u);
+  float2x2 x_28 = v(0u);
+  uint x_46 = gl_VertexIndex;
+  float2 v_8[3] = {float2(-1.0f, 1.0f), (1.0f).xx, (-1.0f).xx};
+  indexable = v_8;
+  float2 x_51 = indexable[x_46];
+  float2 x_52 = mul(x_51, float2x2((x_23[0u] + x_28[0u]), (x_23[1u] + x_28[1u])));
+  return float4(x_52[0u], x_52[1u], 0.0f, 1.0f);
+}
+
+main_outputs main(main_inputs inputs) {
+  main_outputs v_9 = {main_inner(inputs.gl_VertexIndex)};
+  return v_9;
+}
+
diff --git a/test/tint/bug/tint/413.spvasm.expected.ir.dxc.hlsl b/test/tint/bug/tint/413.spvasm.expected.ir.dxc.hlsl
index fd28383..74664cc 100644
--- a/test/tint/bug/tint/413.spvasm.expected.ir.dxc.hlsl
+++ b/test/tint/bug/tint/413.spvasm.expected.ir.dxc.hlsl
@@ -1,9 +1,18 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureLoad
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+Texture2D<uint4> Src : register(t0);
+RWTexture2D<uint4> Dst : register(u1);
+void main_1() {
+  uint4 srcValue = (0u).xxxx;
+  Texture2D<uint4> v = Src;
+  int2 v_1 = int2((0).xx);
+  srcValue = uint4(v.Load(int3(v_1, int(0))));
+  srcValue[0u] = (srcValue.x + 1u);
+  uint4 x_27 = srcValue;
+  Dst[(0).xx] = x_27;
+}
+
+[numthreads(1, 1, 1)]
+void main() {
+  main_1();
+}
+
diff --git a/test/tint/bug/tint/413.spvasm.expected.ir.fxc.hlsl b/test/tint/bug/tint/413.spvasm.expected.ir.fxc.hlsl
index fd28383..74664cc 100644
--- a/test/tint/bug/tint/413.spvasm.expected.ir.fxc.hlsl
+++ b/test/tint/bug/tint/413.spvasm.expected.ir.fxc.hlsl
@@ -1,9 +1,18 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureLoad
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+Texture2D<uint4> Src : register(t0);
+RWTexture2D<uint4> Dst : register(u1);
+void main_1() {
+  uint4 srcValue = (0u).xxxx;
+  Texture2D<uint4> v = Src;
+  int2 v_1 = int2((0).xx);
+  srcValue = uint4(v.Load(int3(v_1, int(0))));
+  srcValue[0u] = (srcValue.x + 1u);
+  uint4 x_27 = srcValue;
+  Dst[(0).xx] = x_27;
+}
+
+[numthreads(1, 1, 1)]
+void main() {
+  main_1();
+}
+
diff --git a/test/tint/bug/tint/453.wgsl.expected.ir.dxc.hlsl b/test/tint/bug/tint/453.wgsl.expected.ir.dxc.hlsl
index fd28383..1436e5d 100644
--- a/test/tint/bug/tint/453.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/bug/tint/453.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,16 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureLoad
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+Texture2D<uint4> Src : register(t0);
+RWTexture2D<uint4> Dst : register(u1);
+[numthreads(1, 1, 1)]
+void main() {
+  uint4 srcValue = (0u).xxxx;
+  Texture2D<uint4> v = Src;
+  int2 v_1 = int2((0).xx);
+  uint4 x_22 = uint4(v.Load(int3(v_1, int(0))));
+  srcValue = x_22;
+  uint x_24 = srcValue.x;
+  uint x_25 = (x_24 + 1u);
+  uint4 x_27 = srcValue;
+  Dst[(0).xx] = x_27.xxxx;
+}
+
diff --git a/test/tint/bug/tint/453.wgsl.expected.ir.fxc.hlsl b/test/tint/bug/tint/453.wgsl.expected.ir.fxc.hlsl
index fd28383..1436e5d 100644
--- a/test/tint/bug/tint/453.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/bug/tint/453.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,16 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureLoad
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+Texture2D<uint4> Src : register(t0);
+RWTexture2D<uint4> Dst : register(u1);
+[numthreads(1, 1, 1)]
+void main() {
+  uint4 srcValue = (0u).xxxx;
+  Texture2D<uint4> v = Src;
+  int2 v_1 = int2((0).xx);
+  uint4 x_22 = uint4(v.Load(int3(v_1, int(0))));
+  srcValue = x_22;
+  uint x_24 = srcValue.x;
+  uint x_25 = (x_24 + 1u);
+  uint4 x_27 = srcValue;
+  Dst[(0).xx] = x_27.xxxx;
+}
+
diff --git a/test/tint/bug/tint/492.wgsl.expected.ir.dxc.hlsl b/test/tint/bug/tint/492.wgsl.expected.ir.dxc.hlsl
index 3f437dc..ed444cf 100644
--- a/test/tint/bug/tint/492.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/bug/tint/492.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,7 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Access
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWByteAddressBuffer buf : register(u0);
+[numthreads(1, 1, 1)]
+void main() {
+  buf.Store(0u, asuint(12));
+}
+
diff --git a/test/tint/bug/tint/492.wgsl.expected.ir.fxc.hlsl b/test/tint/bug/tint/492.wgsl.expected.ir.fxc.hlsl
index 3f437dc..ed444cf 100644
--- a/test/tint/bug/tint/492.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/bug/tint/492.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,7 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Access
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWByteAddressBuffer buf : register(u0);
+[numthreads(1, 1, 1)]
+void main() {
+  buf.Store(0u, asuint(12));
+}
+
diff --git a/test/tint/bug/tint/534.wgsl.expected.ir.dxc.hlsl b/test/tint/bug/tint/534.wgsl.expected.ir.dxc.hlsl
index 1fac62e..40322f8 100644
--- a/test/tint/bug/tint/534.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/bug/tint/534.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,72 @@
-SKIP: FAILED
+struct main_inputs {
+  uint3 GlobalInvocationID : SV_DispatchThreadID;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureDimensions
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+
+Texture2D<float4> src : register(t0);
+Texture2D<float4> tint_symbol : register(t1);
+RWByteAddressBuffer output : register(u2);
+cbuffer cbuffer_uniforms : register(b3) {
+  uint4 uniforms[1];
+};
+uint ConvertToFp16FloatValue(float fp32) {
+  return 1u;
+}
+
+uint4 tint_v4f32_to_v4u32(float4 value) {
+  return (((value <= (4294967040.0f).xxxx)) ? ((((value >= (0.0f).xxxx)) ? (uint4(value)) : ((0u).xxxx))) : ((4294967295u).xxxx));
+}
+
+void main_inner(uint3 GlobalInvocationID) {
+  uint2 v = (0u).xx;
+  src.GetDimensions(v[0u], v[1u]);
+  uint2 size = v;
+  uint2 dstTexCoord = GlobalInvocationID.xy;
+  uint2 srcTexCoord = dstTexCoord;
+  if ((uniforms[0u].x == 1u)) {
+    srcTexCoord[1u] = ((size.y - dstTexCoord.y) - 1u);
+  }
+  Texture2D<float4> v_1 = src;
+  int2 v_2 = int2(srcTexCoord);
+  float4 srcColor = float4(v_1.Load(int3(v_2, int(0))));
+  Texture2D<float4> v_3 = tint_symbol;
+  int2 v_4 = int2(dstTexCoord);
+  float4 dstColor = float4(v_3.Load(int3(v_4, int(0))));
+  bool success = true;
+  uint4 srcColorBits = (0u).xxxx;
+  uint4 dstColorBits = tint_v4f32_to_v4u32(dstColor);
+  {
+    uint i = 0u;
+    while(true) {
+      if ((i < uniforms[0u].w)) {
+      } else {
+        break;
+      }
+      uint v_5 = i;
+      srcColorBits[v_5] = ConvertToFp16FloatValue(srcColor[i]);
+      bool v_6 = false;
+      if (success) {
+        v_6 = (srcColorBits[i] == dstColorBits[i]);
+      } else {
+        v_6 = false;
+      }
+      success = v_6;
+      {
+        i = (i + 1u);
+      }
+      continue;
+    }
+  }
+  uint outputIndex = ((GlobalInvocationID[1u] * uint(size.x)) + GlobalInvocationID[0u]);
+  if (success) {
+    output.Store((0u + (uint(outputIndex) * 4u)), 1u);
+  } else {
+    output.Store((0u + (uint(outputIndex) * 4u)), 0u);
+  }
+}
+
+[numthreads(1, 1, 1)]
+void main(main_inputs inputs) {
+  main_inner(inputs.GlobalInvocationID);
+}
+
diff --git a/test/tint/bug/tint/534.wgsl.expected.ir.fxc.hlsl b/test/tint/bug/tint/534.wgsl.expected.ir.fxc.hlsl
index 1fac62e..e4fc7e2 100644
--- a/test/tint/bug/tint/534.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/bug/tint/534.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,77 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureDimensions
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct main_inputs {
+  uint3 GlobalInvocationID : SV_DispatchThreadID;
+};
+
+
+Texture2D<float4> src : register(t0);
+Texture2D<float4> tint_symbol : register(t1);
+RWByteAddressBuffer output : register(u2);
+cbuffer cbuffer_uniforms : register(b3) {
+  uint4 uniforms[1];
+};
+uint ConvertToFp16FloatValue(float fp32) {
+  return 1u;
+}
+
+uint4 tint_v4f32_to_v4u32(float4 value) {
+  return (((value <= (4294967040.0f).xxxx)) ? ((((value >= (0.0f).xxxx)) ? (uint4(value)) : ((0u).xxxx))) : ((4294967295u).xxxx));
+}
+
+void main_inner(uint3 GlobalInvocationID) {
+  uint2 v = (0u).xx;
+  src.GetDimensions(v[0u], v[1u]);
+  uint2 size = v;
+  uint2 dstTexCoord = GlobalInvocationID.xy;
+  uint2 srcTexCoord = dstTexCoord;
+  if ((uniforms[0u].x == 1u)) {
+    srcTexCoord[1u] = ((size.y - dstTexCoord.y) - 1u);
+  }
+  Texture2D<float4> v_1 = src;
+  int2 v_2 = int2(srcTexCoord);
+  float4 srcColor = float4(v_1.Load(int3(v_2, int(0))));
+  Texture2D<float4> v_3 = tint_symbol;
+  int2 v_4 = int2(dstTexCoord);
+  float4 dstColor = float4(v_3.Load(int3(v_4, int(0))));
+  bool success = true;
+  uint4 srcColorBits = (0u).xxxx;
+  uint4 dstColorBits = tint_v4f32_to_v4u32(dstColor);
+  {
+    uint i = 0u;
+    while(true) {
+      if ((i < uniforms[0u].w)) {
+      } else {
+        break;
+      }
+      uint v_5 = i;
+      srcColorBits[v_5] = ConvertToFp16FloatValue(srcColor[i]);
+      bool v_6 = false;
+      if (success) {
+        v_6 = (srcColorBits[i] == dstColorBits[i]);
+      } else {
+        v_6 = false;
+      }
+      success = v_6;
+      {
+        i = (i + 1u);
+      }
+      continue;
+    }
+  }
+  uint outputIndex = ((GlobalInvocationID[1u] * uint(size.x)) + GlobalInvocationID[0u]);
+  if (success) {
+    output.Store((0u + (uint(outputIndex) * 4u)), 1u);
+  } else {
+    output.Store((0u + (uint(outputIndex) * 4u)), 0u);
+  }
+}
+
+[numthreads(1, 1, 1)]
+void main(main_inputs inputs) {
+  main_inner(inputs.GlobalInvocationID);
+}
+
+FXC validation failure:
+c:\src\dawn\Shader@0x00000192D5FBEBF0(40,5-15): error X3511: forced to unroll loop, but unrolling failed.
+
diff --git a/test/tint/bug/tint/744.wgsl.expected.ir.dxc.hlsl b/test/tint/bug/tint/744.wgsl.expected.ir.dxc.hlsl
index c6e1d96..874f6a2 100644
--- a/test/tint/bug/tint/744.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/bug/tint/744.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,44 @@
-SKIP: FAILED
+struct main_inputs {
+  uint3 global_id : SV_DispatchThreadID;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Construct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+
+ByteAddressBuffer firstMatrix : register(t0);
+ByteAddressBuffer secondMatrix : register(t1);
+RWByteAddressBuffer resultMatrix : register(u2);
+cbuffer cbuffer_uniforms : register(b3) {
+  uint4 uniforms[2];
+};
+void main_inner(uint3 global_id) {
+  uint2 resultCell = uint2(global_id[1u], global_id[0u]);
+  uint dimInner = uniforms[0u].y;
+  uint dimOutter = uniforms[1u].y;
+  uint result = 0u;
+  {
+    uint i = 0u;
+    while(true) {
+      if ((i < dimInner)) {
+      } else {
+        break;
+      }
+      uint a = (i + (resultCell[0u] * dimInner));
+      uint b = (resultCell[1u] + (i * dimOutter));
+      uint v = result;
+      uint v_1 = firstMatrix.Load((0u + (uint(a) * 4u)));
+      result = (v + (v_1 * secondMatrix.Load((0u + (uint(b) * 4u)))));
+      {
+        i = (i + 1u);
+      }
+      continue;
+    }
+  }
+  uint index = (resultCell[1u] + (resultCell[0u] * dimOutter));
+  uint v_2 = (uint(index) * 4u);
+  resultMatrix.Store((0u + v_2), result);
+}
+
+[numthreads(2, 2, 1)]
+void main(main_inputs inputs) {
+  main_inner(inputs.global_id);
+}
+
diff --git a/test/tint/bug/tint/744.wgsl.expected.ir.fxc.hlsl b/test/tint/bug/tint/744.wgsl.expected.ir.fxc.hlsl
index c6e1d96..874f6a2 100644
--- a/test/tint/bug/tint/744.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/bug/tint/744.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,44 @@
-SKIP: FAILED
+struct main_inputs {
+  uint3 global_id : SV_DispatchThreadID;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Construct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+
+ByteAddressBuffer firstMatrix : register(t0);
+ByteAddressBuffer secondMatrix : register(t1);
+RWByteAddressBuffer resultMatrix : register(u2);
+cbuffer cbuffer_uniforms : register(b3) {
+  uint4 uniforms[2];
+};
+void main_inner(uint3 global_id) {
+  uint2 resultCell = uint2(global_id[1u], global_id[0u]);
+  uint dimInner = uniforms[0u].y;
+  uint dimOutter = uniforms[1u].y;
+  uint result = 0u;
+  {
+    uint i = 0u;
+    while(true) {
+      if ((i < dimInner)) {
+      } else {
+        break;
+      }
+      uint a = (i + (resultCell[0u] * dimInner));
+      uint b = (resultCell[1u] + (i * dimOutter));
+      uint v = result;
+      uint v_1 = firstMatrix.Load((0u + (uint(a) * 4u)));
+      result = (v + (v_1 * secondMatrix.Load((0u + (uint(b) * 4u)))));
+      {
+        i = (i + 1u);
+      }
+      continue;
+    }
+  }
+  uint index = (resultCell[1u] + (resultCell[0u] * dimOutter));
+  uint v_2 = (uint(index) * 4u);
+  resultMatrix.Store((0u + v_2), result);
+}
+
+[numthreads(2, 2, 1)]
+void main(main_inputs inputs) {
+  main_inner(inputs.global_id);
+}
+
diff --git a/test/tint/bug/tint/757.wgsl.expected.ir.dxc.hlsl b/test/tint/bug/tint/757.wgsl.expected.ir.dxc.hlsl
index 3f437dc..f25245b 100644
--- a/test/tint/bug/tint/757.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/bug/tint/757.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,39 @@
-SKIP: FAILED
+struct main_inputs {
+  uint3 GlobalInvocationID : SV_DispatchThreadID;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Access
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+
+cbuffer cbuffer_constants : register(b0) {
+  uint4 constants[1];
+};
+Texture2DArray<float4> myTexture : register(t1);
+RWByteAddressBuffer result : register(u3);
+void main_inner(uint3 GlobalInvocationID) {
+  uint flatIndex = (((4u * GlobalInvocationID[2u]) + (2u * GlobalInvocationID[1u])) + GlobalInvocationID[0u]);
+  flatIndex = (flatIndex * 1u);
+  Texture2DArray<float4> v = myTexture;
+  int2 v_1 = int2(int2(GlobalInvocationID.xy));
+  int v_2 = int(0);
+  float4 texel = float4(v.Load(int4(v_1, v_2, int(0))));
+  {
+    uint i = 0u;
+    while(true) {
+      if ((i < 1u)) {
+      } else {
+        break;
+      }
+      uint v_3 = (uint((flatIndex + i)) * 4u);
+      result.Store((0u + v_3), asuint(texel.x));
+      {
+        i = (i + 1u);
+      }
+      continue;
+    }
+  }
+}
+
+[numthreads(1, 1, 1)]
+void main(main_inputs inputs) {
+  main_inner(inputs.GlobalInvocationID);
+}
+
diff --git a/test/tint/bug/tint/757.wgsl.expected.ir.fxc.hlsl b/test/tint/bug/tint/757.wgsl.expected.ir.fxc.hlsl
index 3f437dc..f25245b 100644
--- a/test/tint/bug/tint/757.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/bug/tint/757.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,39 @@
-SKIP: FAILED
+struct main_inputs {
+  uint3 GlobalInvocationID : SV_DispatchThreadID;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Access
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+
+cbuffer cbuffer_constants : register(b0) {
+  uint4 constants[1];
+};
+Texture2DArray<float4> myTexture : register(t1);
+RWByteAddressBuffer result : register(u3);
+void main_inner(uint3 GlobalInvocationID) {
+  uint flatIndex = (((4u * GlobalInvocationID[2u]) + (2u * GlobalInvocationID[1u])) + GlobalInvocationID[0u]);
+  flatIndex = (flatIndex * 1u);
+  Texture2DArray<float4> v = myTexture;
+  int2 v_1 = int2(int2(GlobalInvocationID.xy));
+  int v_2 = int(0);
+  float4 texel = float4(v.Load(int4(v_1, v_2, int(0))));
+  {
+    uint i = 0u;
+    while(true) {
+      if ((i < 1u)) {
+      } else {
+        break;
+      }
+      uint v_3 = (uint((flatIndex + i)) * 4u);
+      result.Store((0u + v_3), asuint(texel.x));
+      {
+        i = (i + 1u);
+      }
+      continue;
+    }
+  }
+}
+
+[numthreads(1, 1, 1)]
+void main(main_inputs inputs) {
+  main_inner(inputs.GlobalInvocationID);
+}
+
diff --git a/test/tint/bug/tint/764.wgsl.expected.ir.dxc.hlsl b/test/tint/bug/tint/764.wgsl.expected.ir.dxc.hlsl
index 3f437dc..b0b6812 100644
--- a/test/tint/bug/tint/764.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/bug/tint/764.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,11 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Access
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+void f() {
+  float4x4 m = float4x4((1.0f).xxxx, (1.0f).xxxx, (1.0f).xxxx, (1.0f).xxxx);
+  float4 v1 = m[0];
+  float a = v1[0];
+}
+
+[numthreads(1, 1, 1)]
+void unused_entry_point() {
+}
+
diff --git a/test/tint/bug/tint/764.wgsl.expected.ir.fxc.hlsl b/test/tint/bug/tint/764.wgsl.expected.ir.fxc.hlsl
index 3f437dc..b0b6812 100644
--- a/test/tint/bug/tint/764.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/bug/tint/764.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,11 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Access
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+void f() {
+  float4x4 m = float4x4((1.0f).xxxx, (1.0f).xxxx, (1.0f).xxxx, (1.0f).xxxx);
+  float4 v1 = m[0];
+  float a = v1[0];
+}
+
+[numthreads(1, 1, 1)]
+void unused_entry_point() {
+}
+
diff --git a/test/tint/bug/tint/782.wgsl.expected.ir.dxc.hlsl b/test/tint/bug/tint/782.wgsl.expected.ir.dxc.hlsl
index 4b0ca7a..0bb28a7 100644
--- a/test/tint/bug/tint/782.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/bug/tint/782.wgsl.expected.ir.dxc.hlsl
@@ -1,22 +1,12 @@
-SKIP: FAILED
 
 void foo() {
-  int[2] explicitStride = (int[2])0;
-  int[2] implictStride = (int[2])0;
-  implictStride = explicitStride;
+  int explicitStride[2] = (int[2])0;
+  int implictStride[2] = (int[2])0;
+  int v[2] = explicitStride;
+  implictStride = v;
 }
 
 [numthreads(1, 1, 1)]
 void unused_entry_point() {
 }
 
-DXC validation failure:
-hlsl.hlsl:2:24: error: brackets are not allowed here; to declare an array, place the brackets after the name
-  int[2] explicitStride = (int[2])0;
-     ~~~               ^
-                       [2]
-hlsl.hlsl:3:23: error: brackets are not allowed here; to declare an array, place the brackets after the name
-  int[2] implictStride = (int[2])0;
-     ~~~              ^
-                      [2]
-
diff --git a/test/tint/bug/tint/782.wgsl.expected.ir.fxc.hlsl b/test/tint/bug/tint/782.wgsl.expected.ir.fxc.hlsl
index f2b0161..0bb28a7 100644
--- a/test/tint/bug/tint/782.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/bug/tint/782.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,9 @@
-SKIP: FAILED
 
 void foo() {
-  int[2] explicitStride = (int[2])0;
-  int[2] implictStride = (int[2])0;
-  implictStride = explicitStride;
+  int explicitStride[2] = (int[2])0;
+  int implictStride[2] = (int[2])0;
+  int v[2] = explicitStride;
+  implictStride = v;
 }
 
 [numthreads(1, 1, 1)]
diff --git a/test/tint/bug/tint/824.wgsl.expected.ir.dxc.hlsl b/test/tint/bug/tint/824.wgsl.expected.ir.dxc.hlsl
index 3f437dc..c2d6294 100644
--- a/test/tint/bug/tint/824.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/bug/tint/824.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,37 @@
-SKIP: FAILED
+struct Output {
+  float4 Position;
+  float4 color;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Access
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct main_outputs {
+  float4 Output_color : TEXCOORD0;
+  float4 Output_Position : SV_Position;
+};
+
+struct main_inputs {
+  uint VertexIndex : SV_VertexID;
+  uint InstanceIndex : SV_InstanceID;
+};
+
+
+Output main_inner(uint VertexIndex, uint InstanceIndex) {
+  float2 v[4] = {(0.20000000298023223877f).xx, (0.30000001192092895508f).xx, (-0.10000000149011611938f).xx, (1.10000002384185791016f).xx};
+  float2 zv[4] = v;
+  float z = zv[InstanceIndex][0u];
+  Output output = (Output)0;
+  output.Position = float4(0.5f, 0.5f, z, 1.0f);
+  float4 v_1[4] = {float4(1.0f, 0.0f, 0.0f, 1.0f), float4(0.0f, 1.0f, 0.0f, 1.0f), float4(0.0f, 0.0f, 1.0f, 1.0f), (1.0f).xxxx};
+  float4 colors[4] = v_1;
+  output.color = colors[InstanceIndex];
+  Output v_2 = output;
+  return v_2;
+}
+
+main_outputs main(main_inputs inputs) {
+  Output v_3 = main_inner(inputs.VertexIndex, inputs.InstanceIndex);
+  Output v_4 = v_3;
+  Output v_5 = v_3;
+  main_outputs v_6 = {v_5.color, v_4.Position};
+  return v_6;
+}
+
diff --git a/test/tint/bug/tint/824.wgsl.expected.ir.fxc.hlsl b/test/tint/bug/tint/824.wgsl.expected.ir.fxc.hlsl
index 3f437dc..c2d6294 100644
--- a/test/tint/bug/tint/824.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/bug/tint/824.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,37 @@
-SKIP: FAILED
+struct Output {
+  float4 Position;
+  float4 color;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Access
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct main_outputs {
+  float4 Output_color : TEXCOORD0;
+  float4 Output_Position : SV_Position;
+};
+
+struct main_inputs {
+  uint VertexIndex : SV_VertexID;
+  uint InstanceIndex : SV_InstanceID;
+};
+
+
+Output main_inner(uint VertexIndex, uint InstanceIndex) {
+  float2 v[4] = {(0.20000000298023223877f).xx, (0.30000001192092895508f).xx, (-0.10000000149011611938f).xx, (1.10000002384185791016f).xx};
+  float2 zv[4] = v;
+  float z = zv[InstanceIndex][0u];
+  Output output = (Output)0;
+  output.Position = float4(0.5f, 0.5f, z, 1.0f);
+  float4 v_1[4] = {float4(1.0f, 0.0f, 0.0f, 1.0f), float4(0.0f, 1.0f, 0.0f, 1.0f), float4(0.0f, 0.0f, 1.0f, 1.0f), (1.0f).xxxx};
+  float4 colors[4] = v_1;
+  output.color = colors[InstanceIndex];
+  Output v_2 = output;
+  return v_2;
+}
+
+main_outputs main(main_inputs inputs) {
+  Output v_3 = main_inner(inputs.VertexIndex, inputs.InstanceIndex);
+  Output v_4 = v_3;
+  Output v_5 = v_3;
+  main_outputs v_6 = {v_5.color, v_4.Position};
+  return v_6;
+}
+
diff --git a/test/tint/bug/tint/825.wgsl.expected.ir.dxc.hlsl b/test/tint/bug/tint/825.wgsl.expected.ir.dxc.hlsl
index 3f437dc..4127e05 100644
--- a/test/tint/bug/tint/825.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/bug/tint/825.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,12 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Access
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+void f() {
+  int i = 0;
+  int j = 0;
+  float2x2 m = float2x2(float2(1.0f, 2.0f), float2(3.0f, 4.0f));
+  float f_1 = m[i][j];
+}
+
+[numthreads(1, 1, 1)]
+void unused_entry_point() {
+}
+
diff --git a/test/tint/bug/tint/825.wgsl.expected.ir.fxc.hlsl b/test/tint/bug/tint/825.wgsl.expected.ir.fxc.hlsl
index 3f437dc..4127e05 100644
--- a/test/tint/bug/tint/825.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/bug/tint/825.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,12 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Access
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+void f() {
+  int i = 0;
+  int j = 0;
+  float2x2 m = float2x2(float2(1.0f, 2.0f), float2(3.0f, 4.0f));
+  float f_1 = m[i][j];
+}
+
+[numthreads(1, 1, 1)]
+void unused_entry_point() {
+}
+
diff --git a/test/tint/bug/tint/827.wgsl.expected.ir.dxc.hlsl b/test/tint/bug/tint/827.wgsl.expected.ir.dxc.hlsl
index 3f437dc..2141d1f 100644
--- a/test/tint/bug/tint/827.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/bug/tint/827.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,20 @@
-SKIP: FAILED
+struct main_inputs {
+  uint3 GlobalInvocationId : SV_DispatchThreadID;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Access
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+
+Texture2D tex : register(t0);
+RWByteAddressBuffer result : register(u1);
+void main_inner(uint3 GlobalInvocationId) {
+  uint v = (uint(((GlobalInvocationId[1u] * 128u) + GlobalInvocationId[0u])) * 4u);
+  Texture2D v_1 = tex;
+  int v_2 = int(GlobalInvocationId[0u]);
+  int2 v_3 = int2(int2(v_2, int(GlobalInvocationId[1u])));
+  result.Store((0u + v), asuint(v_1.Load(int3(v_3, int(0))).x));
+}
+
+[numthreads(1, 1, 1)]
+void main(main_inputs inputs) {
+  main_inner(inputs.GlobalInvocationId);
+}
+
diff --git a/test/tint/bug/tint/827.wgsl.expected.ir.fxc.hlsl b/test/tint/bug/tint/827.wgsl.expected.ir.fxc.hlsl
index 3f437dc..2141d1f 100644
--- a/test/tint/bug/tint/827.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/bug/tint/827.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,20 @@
-SKIP: FAILED
+struct main_inputs {
+  uint3 GlobalInvocationId : SV_DispatchThreadID;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Access
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+
+Texture2D tex : register(t0);
+RWByteAddressBuffer result : register(u1);
+void main_inner(uint3 GlobalInvocationId) {
+  uint v = (uint(((GlobalInvocationId[1u] * 128u) + GlobalInvocationId[0u])) * 4u);
+  Texture2D v_1 = tex;
+  int v_2 = int(GlobalInvocationId[0u]);
+  int2 v_3 = int2(int2(v_2, int(GlobalInvocationId[1u])));
+  result.Store((0u + v), asuint(v_1.Load(int3(v_3, int(0))).x));
+}
+
+[numthreads(1, 1, 1)]
+void main(main_inputs inputs) {
+  main_inner(inputs.GlobalInvocationId);
+}
+
diff --git a/test/tint/bug/tint/870.spvasm.expected.ir.dxc.hlsl b/test/tint/bug/tint/870.spvasm.expected.ir.dxc.hlsl
index 3f437dc..e669adc 100644
--- a/test/tint/bug/tint/870.spvasm.expected.ir.dxc.hlsl
+++ b/test/tint/bug/tint/870.spvasm.expected.ir.dxc.hlsl
@@ -1,9 +1,45 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Access
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+ByteAddressBuffer sspp962805860buildInformation : register(t2);
+typedef int ary_ret[6];
+ary_ret v(uint offset) {
+  int a[6] = (int[6])0;
+  {
+    uint v_1 = 0u;
+    v_1 = 0u;
+    while(true) {
+      uint v_2 = v_1;
+      if ((v_2 >= 6u)) {
+        break;
+      }
+      a[v_2] = asint(sspp962805860buildInformation.Load((offset + (v_2 * 4u))));
+      {
+        v_1 = (v_2 + 1u);
+      }
+      continue;
+    }
+  }
+  int v_3[6] = a;
+  return v_3;
+}
+
+void main_1() {
+  int orientation[6] = (int[6])0;
+  int v_4[6] = v(36u);
+  int x_23[6] = v_4;
+  orientation[0] = x_23[0u];
+  int v_5[6] = v_4;
+  orientation[1] = v_5[1u];
+  int v_6[6] = v_4;
+  orientation[2] = v_6[2u];
+  int v_7[6] = v_4;
+  orientation[3] = v_7[3u];
+  int v_8[6] = v_4;
+  orientation[4] = v_8[4u];
+  int v_9[6] = v_4;
+  orientation[5] = v_9[5u];
+}
+
+void main() {
+  main_1();
+}
+
diff --git a/test/tint/bug/tint/870.spvasm.expected.ir.fxc.hlsl b/test/tint/bug/tint/870.spvasm.expected.ir.fxc.hlsl
index 3f437dc..e669adc 100644
--- a/test/tint/bug/tint/870.spvasm.expected.ir.fxc.hlsl
+++ b/test/tint/bug/tint/870.spvasm.expected.ir.fxc.hlsl
@@ -1,9 +1,45 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Access
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+ByteAddressBuffer sspp962805860buildInformation : register(t2);
+typedef int ary_ret[6];
+ary_ret v(uint offset) {
+  int a[6] = (int[6])0;
+  {
+    uint v_1 = 0u;
+    v_1 = 0u;
+    while(true) {
+      uint v_2 = v_1;
+      if ((v_2 >= 6u)) {
+        break;
+      }
+      a[v_2] = asint(sspp962805860buildInformation.Load((offset + (v_2 * 4u))));
+      {
+        v_1 = (v_2 + 1u);
+      }
+      continue;
+    }
+  }
+  int v_3[6] = a;
+  return v_3;
+}
+
+void main_1() {
+  int orientation[6] = (int[6])0;
+  int v_4[6] = v(36u);
+  int x_23[6] = v_4;
+  orientation[0] = x_23[0u];
+  int v_5[6] = v_4;
+  orientation[1] = v_5[1u];
+  int v_6[6] = v_4;
+  orientation[2] = v_6[2u];
+  int v_7[6] = v_4;
+  orientation[3] = v_7[3u];
+  int v_8[6] = v_4;
+  orientation[4] = v_8[4u];
+  int v_9[6] = v_4;
+  orientation[5] = v_9[5u];
+}
+
+void main() {
+  main_1();
+}
+
diff --git a/test/tint/bug/tint/913.wgsl.expected.ir.dxc.hlsl b/test/tint/bug/tint/913.wgsl.expected.ir.dxc.hlsl
index 6b047b4..4286878 100644
--- a/test/tint/bug/tint/913.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/bug/tint/913.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,119 @@
-SKIP: FAILED
+struct main_inputs {
+  uint3 GlobalInvocationID : SV_DispatchThreadID;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:287 internal compiler error: Switch() matched no cases. Type: tint::core::ir::FunctionParam
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+
+Texture2D<float4> src : register(t0);
+Texture2D<float4> tint_symbol : register(t1);
+RWByteAddressBuffer output : register(u2);
+cbuffer cbuffer_uniforms : register(b3) {
+  uint4 uniforms[2];
+};
+bool aboutEqual(float value, float expect) {
+  return (abs((value - expect)) < 0.00100000004749745131f);
+}
+
+void main_inner(uint3 GlobalInvocationID) {
+  uint2 v = (0u).xx;
+  src.GetDimensions(v[0u], v[1u]);
+  uint2 srcSize = v;
+  uint2 v_1 = (0u).xx;
+  tint_symbol.GetDimensions(v_1[0u], v_1[1u]);
+  uint2 dstSize = v_1;
+  uint2 dstTexCoord = uint2((GlobalInvocationID.xy).xx);
+  float4 nonCoveredColor = float4(0.0f, 1.0f, 0.0f, 1.0f);
+  bool success = true;
+  bool v_2 = false;
+  if ((dstTexCoord[0u] < uniforms[1u].x)) {
+    v_2 = true;
+  } else {
+    v_2 = (dstTexCoord[1u] < uniforms[1u].y);
+  }
+  bool v_3 = false;
+  if (v_2) {
+    v_3 = true;
+  } else {
+    v_3 = (dstTexCoord[0u] >= (uniforms[1u].x + uniforms[1u].z));
+  }
+  bool v_4 = false;
+  if (v_3) {
+    v_4 = true;
+  } else {
+    v_4 = (dstTexCoord[1u] >= (uniforms[1u].y + uniforms[1u].w));
+  }
+  if (v_4) {
+    bool v_5 = false;
+    if (success) {
+      Texture2D<float4> v_6 = tint_symbol;
+      int2 v_7 = int2(int2(dstTexCoord));
+      v_5 = all((float4(v_6.Load(int3(v_7, int(0)))) == nonCoveredColor));
+    } else {
+      v_5 = false;
+    }
+    success = v_5;
+  } else {
+    uint2 srcTexCoord = ((dstTexCoord - uniforms[1u].xy) + uniforms[0u].zw);
+    if ((uniforms[0u].x == 1u)) {
+      srcTexCoord[1u] = ((srcSize[1u] - srcTexCoord.y) - 1u);
+    }
+    Texture2D<float4> v_8 = src;
+    int2 v_9 = int2(int2(srcTexCoord));
+    float4 srcColor = float4(v_8.Load(int3(v_9, int(0))));
+    Texture2D<float4> v_10 = tint_symbol;
+    int2 v_11 = int2(int2(dstTexCoord));
+    float4 dstColor = float4(v_10.Load(int3(v_11, int(0))));
+    if ((uniforms[0u].y == 2u)) {
+      bool v_12 = false;
+      if (success) {
+        v_12 = aboutEqual(dstColor[0u], srcColor[0u]);
+      } else {
+        v_12 = false;
+      }
+      bool v_13 = false;
+      if (v_12) {
+        v_13 = aboutEqual(dstColor[1u], srcColor[1u]);
+      } else {
+        v_13 = false;
+      }
+      success = v_13;
+    } else {
+      bool v_14 = false;
+      if (success) {
+        v_14 = aboutEqual(dstColor[0u], srcColor[0u]);
+      } else {
+        v_14 = false;
+      }
+      bool v_15 = false;
+      if (v_14) {
+        v_15 = aboutEqual(dstColor[1u], srcColor[1u]);
+      } else {
+        v_15 = false;
+      }
+      bool v_16 = false;
+      if (v_15) {
+        v_16 = aboutEqual(dstColor[2u], srcColor[2u]);
+      } else {
+        v_16 = false;
+      }
+      bool v_17 = false;
+      if (v_16) {
+        v_17 = aboutEqual(dstColor[3u], srcColor[3u]);
+      } else {
+        v_17 = false;
+      }
+      success = v_17;
+    }
+  }
+  uint outputIndex = ((GlobalInvocationID[1u] * dstSize[0u]) + GlobalInvocationID[0u]);
+  if (success) {
+    output.Store((0u + (uint(outputIndex) * 4u)), 1u);
+  } else {
+    output.Store((0u + (uint(outputIndex) * 4u)), 0u);
+  }
+}
+
+[numthreads(1, 1, 1)]
+void main(main_inputs inputs) {
+  main_inner(inputs.GlobalInvocationID);
+}
+
diff --git a/test/tint/bug/tint/913.wgsl.expected.ir.fxc.hlsl b/test/tint/bug/tint/913.wgsl.expected.ir.fxc.hlsl
index 6b047b4..4286878 100644
--- a/test/tint/bug/tint/913.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/bug/tint/913.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,119 @@
-SKIP: FAILED
+struct main_inputs {
+  uint3 GlobalInvocationID : SV_DispatchThreadID;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:287 internal compiler error: Switch() matched no cases. Type: tint::core::ir::FunctionParam
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+
+Texture2D<float4> src : register(t0);
+Texture2D<float4> tint_symbol : register(t1);
+RWByteAddressBuffer output : register(u2);
+cbuffer cbuffer_uniforms : register(b3) {
+  uint4 uniforms[2];
+};
+bool aboutEqual(float value, float expect) {
+  return (abs((value - expect)) < 0.00100000004749745131f);
+}
+
+void main_inner(uint3 GlobalInvocationID) {
+  uint2 v = (0u).xx;
+  src.GetDimensions(v[0u], v[1u]);
+  uint2 srcSize = v;
+  uint2 v_1 = (0u).xx;
+  tint_symbol.GetDimensions(v_1[0u], v_1[1u]);
+  uint2 dstSize = v_1;
+  uint2 dstTexCoord = uint2((GlobalInvocationID.xy).xx);
+  float4 nonCoveredColor = float4(0.0f, 1.0f, 0.0f, 1.0f);
+  bool success = true;
+  bool v_2 = false;
+  if ((dstTexCoord[0u] < uniforms[1u].x)) {
+    v_2 = true;
+  } else {
+    v_2 = (dstTexCoord[1u] < uniforms[1u].y);
+  }
+  bool v_3 = false;
+  if (v_2) {
+    v_3 = true;
+  } else {
+    v_3 = (dstTexCoord[0u] >= (uniforms[1u].x + uniforms[1u].z));
+  }
+  bool v_4 = false;
+  if (v_3) {
+    v_4 = true;
+  } else {
+    v_4 = (dstTexCoord[1u] >= (uniforms[1u].y + uniforms[1u].w));
+  }
+  if (v_4) {
+    bool v_5 = false;
+    if (success) {
+      Texture2D<float4> v_6 = tint_symbol;
+      int2 v_7 = int2(int2(dstTexCoord));
+      v_5 = all((float4(v_6.Load(int3(v_7, int(0)))) == nonCoveredColor));
+    } else {
+      v_5 = false;
+    }
+    success = v_5;
+  } else {
+    uint2 srcTexCoord = ((dstTexCoord - uniforms[1u].xy) + uniforms[0u].zw);
+    if ((uniforms[0u].x == 1u)) {
+      srcTexCoord[1u] = ((srcSize[1u] - srcTexCoord.y) - 1u);
+    }
+    Texture2D<float4> v_8 = src;
+    int2 v_9 = int2(int2(srcTexCoord));
+    float4 srcColor = float4(v_8.Load(int3(v_9, int(0))));
+    Texture2D<float4> v_10 = tint_symbol;
+    int2 v_11 = int2(int2(dstTexCoord));
+    float4 dstColor = float4(v_10.Load(int3(v_11, int(0))));
+    if ((uniforms[0u].y == 2u)) {
+      bool v_12 = false;
+      if (success) {
+        v_12 = aboutEqual(dstColor[0u], srcColor[0u]);
+      } else {
+        v_12 = false;
+      }
+      bool v_13 = false;
+      if (v_12) {
+        v_13 = aboutEqual(dstColor[1u], srcColor[1u]);
+      } else {
+        v_13 = false;
+      }
+      success = v_13;
+    } else {
+      bool v_14 = false;
+      if (success) {
+        v_14 = aboutEqual(dstColor[0u], srcColor[0u]);
+      } else {
+        v_14 = false;
+      }
+      bool v_15 = false;
+      if (v_14) {
+        v_15 = aboutEqual(dstColor[1u], srcColor[1u]);
+      } else {
+        v_15 = false;
+      }
+      bool v_16 = false;
+      if (v_15) {
+        v_16 = aboutEqual(dstColor[2u], srcColor[2u]);
+      } else {
+        v_16 = false;
+      }
+      bool v_17 = false;
+      if (v_16) {
+        v_17 = aboutEqual(dstColor[3u], srcColor[3u]);
+      } else {
+        v_17 = false;
+      }
+      success = v_17;
+    }
+  }
+  uint outputIndex = ((GlobalInvocationID[1u] * dstSize[0u]) + GlobalInvocationID[0u]);
+  if (success) {
+    output.Store((0u + (uint(outputIndex) * 4u)), 1u);
+  } else {
+    output.Store((0u + (uint(outputIndex) * 4u)), 0u);
+  }
+}
+
+[numthreads(1, 1, 1)]
+void main(main_inputs inputs) {
+  main_inner(inputs.GlobalInvocationID);
+}
+
diff --git a/test/tint/bug/tint/914.wgsl.expected.ir.dxc.hlsl b/test/tint/bug/tint/914.wgsl.expected.ir.dxc.hlsl
index bdeab23..93d5cd5 100644
--- a/test/tint/bug/tint/914.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/bug/tint/914.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,270 @@
-SKIP: FAILED
+struct main_inputs {
+  uint3 local_id : SV_GroupThreadID;
+  uint tint_local_index : SV_GroupIndex;
+  uint3 global_id : SV_DispatchThreadID;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:198 internal compiler error: Switch() matched no cases. Type: tint::core::ir::If
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+
+ByteAddressBuffer firstMatrix : register(t0);
+ByteAddressBuffer secondMatrix : register(t1);
+RWByteAddressBuffer resultMatrix : register(u2);
+cbuffer cbuffer_uniforms : register(b3) {
+  uint4 uniforms[1];
+};
+groupshared float mm_Asub[64][64];
+groupshared float mm_Bsub[64][64];
+float mm_readA(uint row, uint col) {
+  bool v = false;
+  if ((row < uniforms[0u].x)) {
+    v = (col < uniforms[0u].y);
+  } else {
+    v = false;
+  }
+  if (v) {
+    float result = asfloat(firstMatrix.Load((0u + (uint(((row * uniforms[0u].y) + col)) * 4u))));
+    return result;
+  }
+  return 0.0f;
+}
+
+float mm_readB(uint row, uint col) {
+  bool v_1 = false;
+  if ((row < uniforms[0u].y)) {
+    v_1 = (col < uniforms[0u].z);
+  } else {
+    v_1 = false;
+  }
+  if (v_1) {
+    float result = asfloat(secondMatrix.Load((0u + (uint(((row * uniforms[0u].z) + col)) * 4u))));
+    return result;
+  }
+  return 0.0f;
+}
+
+void mm_write(uint row, uint col, float value) {
+  bool v_2 = false;
+  if ((row < uniforms[0u].x)) {
+    v_2 = (col < uniforms[0u].z);
+  } else {
+    v_2 = false;
+  }
+  if (v_2) {
+    uint index = (col + (row * uniforms[0u].z));
+    uint v_3 = (0u + (uint(index) * 4u));
+    resultMatrix.Store(v_3, asuint(value));
+  }
+}
+
+uint tint_div_u32(uint lhs, uint rhs) {
+  return (lhs / (((rhs == 0u)) ? (1u) : (rhs)));
+}
+
+void main_inner(uint3 local_id, uint3 global_id, uint tint_local_index) {
+  {
+    uint v_4 = 0u;
+    v_4 = tint_local_index;
+    while(true) {
+      uint v_5 = v_4;
+      if ((v_5 >= 4096u)) {
+        break;
+      }
+      mm_Asub[(v_5 / 64u)][(v_5 % 64u)] = 0.0f;
+      mm_Bsub[(v_5 / 64u)][(v_5 % 64u)] = 0.0f;
+      {
+        v_4 = (v_5 + 256u);
+      }
+      continue;
+    }
+  }
+  GroupMemoryBarrierWithGroupSync();
+  uint tileRow = (local_id[1u] * 4u);
+  uint tileCol = (local_id[0u] * 4u);
+  uint globalRow = (global_id[1u] * 4u);
+  uint globalCol = (global_id[0u] * 4u);
+  uint numTiles = (tint_div_u32((uniforms[0u].y - 1u), 64u) + 1u);
+  float acc[16] = (float[16])0;
+  float ACached = 0.0f;
+  float BCached[4] = (float[4])0;
+  {
+    uint index = 0u;
+    while(true) {
+      if ((index < 16u)) {
+      } else {
+        break;
+      }
+      acc[index] = 0.0f;
+      {
+        index = (index + 1u);
+      }
+      continue;
+    }
+  }
+  uint ColPerThreadA = 4u;
+  uint tileColA = (local_id[0u] * ColPerThreadA);
+  uint RowPerThreadB = 4u;
+  uint tileRowB = (local_id[1u] * RowPerThreadB);
+  {
+    uint t = 0u;
+    while(true) {
+      if ((t < numTiles)) {
+      } else {
+        break;
+      }
+      {
+        uint innerRow = 0u;
+        while(true) {
+          if ((innerRow < 4u)) {
+          } else {
+            break;
+          }
+          {
+            uint innerCol = 0u;
+            while(true) {
+              if ((innerCol < ColPerThreadA)) {
+              } else {
+                break;
+              }
+              uint inputRow = (tileRow + innerRow);
+              uint inputCol = (tileColA + innerCol);
+              mm_Asub[inputRow][inputCol] = mm_readA((globalRow + innerRow), ((t * 64u) + inputCol));
+              {
+                innerCol = (innerCol + 1u);
+              }
+              continue;
+            }
+          }
+          {
+            innerRow = (innerRow + 1u);
+          }
+          continue;
+        }
+      }
+      {
+        uint innerRow = 0u;
+        while(true) {
+          if ((innerRow < RowPerThreadB)) {
+          } else {
+            break;
+          }
+          {
+            uint innerCol = 0u;
+            while(true) {
+              if ((innerCol < 4u)) {
+              } else {
+                break;
+              }
+              uint inputRow = (tileRowB + innerRow);
+              uint inputCol = (tileCol + innerCol);
+              float v_6 = mm_Bsub[innerCol][inputCol];
+              v_6 = mm_readB(((t * 64u) + inputRow), (globalCol + innerCol));
+              {
+                innerCol = (innerCol + 1u);
+              }
+              continue;
+            }
+          }
+          {
+            innerRow = (innerRow + 1u);
+          }
+          continue;
+        }
+      }
+      GroupMemoryBarrierWithGroupSync();
+      {
+        uint k = 0u;
+        while(true) {
+          if ((k < 64u)) {
+          } else {
+            break;
+          }
+          {
+            uint inner = 0u;
+            while(true) {
+              if ((inner < 4u)) {
+              } else {
+                break;
+              }
+              BCached[inner] = mm_Bsub[k][(tileCol + inner)];
+              {
+                inner = (inner + 1u);
+              }
+              continue;
+            }
+          }
+          {
+            uint innerRow = 0u;
+            while(true) {
+              if ((innerRow < 4u)) {
+              } else {
+                break;
+              }
+              ACached = mm_Asub[(tileRow + innerRow)][k];
+              {
+                uint innerCol = 0u;
+                while(true) {
+                  if ((innerCol < 4u)) {
+                  } else {
+                    break;
+                  }
+                  uint index = ((innerRow * 4u) + innerCol);
+                  acc[index] = (acc[index] + (ACached * BCached[innerCol]));
+                  {
+                    innerCol = (innerCol + 1u);
+                  }
+                  continue;
+                }
+              }
+              {
+                innerRow = (innerRow + 1u);
+              }
+              continue;
+            }
+          }
+          {
+            k = (k + 1u);
+          }
+          continue;
+        }
+      }
+      GroupMemoryBarrierWithGroupSync();
+      {
+        t = (t + 1u);
+      }
+      continue;
+    }
+  }
+  {
+    uint innerRow = 0u;
+    while(true) {
+      if ((innerRow < 4u)) {
+      } else {
+        break;
+      }
+      {
+        uint innerCol = 0u;
+        while(true) {
+          if ((innerCol < 4u)) {
+          } else {
+            break;
+          }
+          uint index = ((innerRow * 4u) + innerCol);
+          mm_write((globalRow + innerRow), (globalCol + innerCol), acc[index]);
+          {
+            innerCol = (innerCol + 1u);
+          }
+          continue;
+        }
+      }
+      {
+        innerRow = (innerRow + 1u);
+      }
+      continue;
+    }
+  }
+}
+
+[numthreads(16, 16, 1)]
+void main(main_inputs inputs) {
+  main_inner(inputs.local_id, inputs.global_id, inputs.tint_local_index);
+}
+
diff --git a/test/tint/bug/tint/914.wgsl.expected.ir.fxc.hlsl b/test/tint/bug/tint/914.wgsl.expected.ir.fxc.hlsl
index bdeab23..93d5cd5 100644
--- a/test/tint/bug/tint/914.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/bug/tint/914.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,270 @@
-SKIP: FAILED
+struct main_inputs {
+  uint3 local_id : SV_GroupThreadID;
+  uint tint_local_index : SV_GroupIndex;
+  uint3 global_id : SV_DispatchThreadID;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:198 internal compiler error: Switch() matched no cases. Type: tint::core::ir::If
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+
+ByteAddressBuffer firstMatrix : register(t0);
+ByteAddressBuffer secondMatrix : register(t1);
+RWByteAddressBuffer resultMatrix : register(u2);
+cbuffer cbuffer_uniforms : register(b3) {
+  uint4 uniforms[1];
+};
+groupshared float mm_Asub[64][64];
+groupshared float mm_Bsub[64][64];
+float mm_readA(uint row, uint col) {
+  bool v = false;
+  if ((row < uniforms[0u].x)) {
+    v = (col < uniforms[0u].y);
+  } else {
+    v = false;
+  }
+  if (v) {
+    float result = asfloat(firstMatrix.Load((0u + (uint(((row * uniforms[0u].y) + col)) * 4u))));
+    return result;
+  }
+  return 0.0f;
+}
+
+float mm_readB(uint row, uint col) {
+  bool v_1 = false;
+  if ((row < uniforms[0u].y)) {
+    v_1 = (col < uniforms[0u].z);
+  } else {
+    v_1 = false;
+  }
+  if (v_1) {
+    float result = asfloat(secondMatrix.Load((0u + (uint(((row * uniforms[0u].z) + col)) * 4u))));
+    return result;
+  }
+  return 0.0f;
+}
+
+void mm_write(uint row, uint col, float value) {
+  bool v_2 = false;
+  if ((row < uniforms[0u].x)) {
+    v_2 = (col < uniforms[0u].z);
+  } else {
+    v_2 = false;
+  }
+  if (v_2) {
+    uint index = (col + (row * uniforms[0u].z));
+    uint v_3 = (0u + (uint(index) * 4u));
+    resultMatrix.Store(v_3, asuint(value));
+  }
+}
+
+uint tint_div_u32(uint lhs, uint rhs) {
+  return (lhs / (((rhs == 0u)) ? (1u) : (rhs)));
+}
+
+void main_inner(uint3 local_id, uint3 global_id, uint tint_local_index) {
+  {
+    uint v_4 = 0u;
+    v_4 = tint_local_index;
+    while(true) {
+      uint v_5 = v_4;
+      if ((v_5 >= 4096u)) {
+        break;
+      }
+      mm_Asub[(v_5 / 64u)][(v_5 % 64u)] = 0.0f;
+      mm_Bsub[(v_5 / 64u)][(v_5 % 64u)] = 0.0f;
+      {
+        v_4 = (v_5 + 256u);
+      }
+      continue;
+    }
+  }
+  GroupMemoryBarrierWithGroupSync();
+  uint tileRow = (local_id[1u] * 4u);
+  uint tileCol = (local_id[0u] * 4u);
+  uint globalRow = (global_id[1u] * 4u);
+  uint globalCol = (global_id[0u] * 4u);
+  uint numTiles = (tint_div_u32((uniforms[0u].y - 1u), 64u) + 1u);
+  float acc[16] = (float[16])0;
+  float ACached = 0.0f;
+  float BCached[4] = (float[4])0;
+  {
+    uint index = 0u;
+    while(true) {
+      if ((index < 16u)) {
+      } else {
+        break;
+      }
+      acc[index] = 0.0f;
+      {
+        index = (index + 1u);
+      }
+      continue;
+    }
+  }
+  uint ColPerThreadA = 4u;
+  uint tileColA = (local_id[0u] * ColPerThreadA);
+  uint RowPerThreadB = 4u;
+  uint tileRowB = (local_id[1u] * RowPerThreadB);
+  {
+    uint t = 0u;
+    while(true) {
+      if ((t < numTiles)) {
+      } else {
+        break;
+      }
+      {
+        uint innerRow = 0u;
+        while(true) {
+          if ((innerRow < 4u)) {
+          } else {
+            break;
+          }
+          {
+            uint innerCol = 0u;
+            while(true) {
+              if ((innerCol < ColPerThreadA)) {
+              } else {
+                break;
+              }
+              uint inputRow = (tileRow + innerRow);
+              uint inputCol = (tileColA + innerCol);
+              mm_Asub[inputRow][inputCol] = mm_readA((globalRow + innerRow), ((t * 64u) + inputCol));
+              {
+                innerCol = (innerCol + 1u);
+              }
+              continue;
+            }
+          }
+          {
+            innerRow = (innerRow + 1u);
+          }
+          continue;
+        }
+      }
+      {
+        uint innerRow = 0u;
+        while(true) {
+          if ((innerRow < RowPerThreadB)) {
+          } else {
+            break;
+          }
+          {
+            uint innerCol = 0u;
+            while(true) {
+              if ((innerCol < 4u)) {
+              } else {
+                break;
+              }
+              uint inputRow = (tileRowB + innerRow);
+              uint inputCol = (tileCol + innerCol);
+              float v_6 = mm_Bsub[innerCol][inputCol];
+              v_6 = mm_readB(((t * 64u) + inputRow), (globalCol + innerCol));
+              {
+                innerCol = (innerCol + 1u);
+              }
+              continue;
+            }
+          }
+          {
+            innerRow = (innerRow + 1u);
+          }
+          continue;
+        }
+      }
+      GroupMemoryBarrierWithGroupSync();
+      {
+        uint k = 0u;
+        while(true) {
+          if ((k < 64u)) {
+          } else {
+            break;
+          }
+          {
+            uint inner = 0u;
+            while(true) {
+              if ((inner < 4u)) {
+              } else {
+                break;
+              }
+              BCached[inner] = mm_Bsub[k][(tileCol + inner)];
+              {
+                inner = (inner + 1u);
+              }
+              continue;
+            }
+          }
+          {
+            uint innerRow = 0u;
+            while(true) {
+              if ((innerRow < 4u)) {
+              } else {
+                break;
+              }
+              ACached = mm_Asub[(tileRow + innerRow)][k];
+              {
+                uint innerCol = 0u;
+                while(true) {
+                  if ((innerCol < 4u)) {
+                  } else {
+                    break;
+                  }
+                  uint index = ((innerRow * 4u) + innerCol);
+                  acc[index] = (acc[index] + (ACached * BCached[innerCol]));
+                  {
+                    innerCol = (innerCol + 1u);
+                  }
+                  continue;
+                }
+              }
+              {
+                innerRow = (innerRow + 1u);
+              }
+              continue;
+            }
+          }
+          {
+            k = (k + 1u);
+          }
+          continue;
+        }
+      }
+      GroupMemoryBarrierWithGroupSync();
+      {
+        t = (t + 1u);
+      }
+      continue;
+    }
+  }
+  {
+    uint innerRow = 0u;
+    while(true) {
+      if ((innerRow < 4u)) {
+      } else {
+        break;
+      }
+      {
+        uint innerCol = 0u;
+        while(true) {
+          if ((innerCol < 4u)) {
+          } else {
+            break;
+          }
+          uint index = ((innerRow * 4u) + innerCol);
+          mm_write((globalRow + innerRow), (globalCol + innerCol), acc[index]);
+          {
+            innerCol = (innerCol + 1u);
+          }
+          continue;
+        }
+      }
+      {
+        innerRow = (innerRow + 1u);
+      }
+      continue;
+    }
+  }
+}
+
+[numthreads(16, 16, 1)]
+void main(main_inputs inputs) {
+  main_inner(inputs.local_id, inputs.global_id, inputs.tint_local_index);
+}
+
diff --git a/test/tint/bug/tint/922.wgsl.expected.ir.dxc.hlsl b/test/tint/bug/tint/922.wgsl.expected.ir.dxc.hlsl
index 0ba40c6..09642eb 100644
--- a/test/tint/bug/tint/922.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/bug/tint/922.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,379 @@
-SKIP: FAILED
+struct Mat4x3_ {
+  float4 mx;
+  float4 my;
+  float4 mz;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct Mat4x4_ {
+  float4 mx;
+  float4 my;
+  float4 mz;
+  float4 mw;
+};
+
+struct Mat4x2_ {
+  float4 mx;
+  float4 my;
+};
+
+struct VertexOutput {
+  float4 v_Color;
+  float2 v_TexCoord;
+  float4 member;
+};
+
+struct main_outputs {
+  float4 VertexOutput_v_Color : TEXCOORD0;
+  float2 VertexOutput_v_TexCoord : TEXCOORD1;
+  float4 VertexOutput_member : SV_Position;
+};
+
+struct main_inputs {
+  float3 a_Position : TEXCOORD0;
+  float2 a_UV : TEXCOORD1;
+  float4 a_Color : TEXCOORD2;
+  float3 a_Normal : TEXCOORD3;
+  float a_PosMtxIdx : TEXCOORD4;
+};
+
+
+cbuffer cbuffer_global : register(b0) {
+  uint4 global[4];
+};
+cbuffer cbuffer_global1 : register(b1) {
+  uint4 global1[3];
+};
+cbuffer cbuffer_global2 : register(b2) {
+  uint4 global2[96];
+};
+static float3 a_Position1 = (0.0f).xxx;
+static float2 a_UV1 = (0.0f).xx;
+static float4 a_Color1 = (0.0f).xxxx;
+static float3 a_Normal1 = (0.0f).xxx;
+static float a_PosMtxIdx1 = 0.0f;
+static float4 v_Color = (0.0f).xxxx;
+static float2 v_TexCoord = (0.0f).xx;
+static float4 gl_Position = (0.0f).xxxx;
+float3 Mat4x3GetCol0_(Mat4x3_ m) {
+  Mat4x3_ m1 = (Mat4x3_)0;
+  m1 = m;
+  Mat4x3_ v_1 = m1;
+  Mat4x3_ v_2 = m1;
+  Mat4x3_ v_3 = m1;
+  Mat4x3_ x_e2 = v_1;
+  Mat4x3_ x_e5 = v_2;
+  Mat4x3_ x_e8 = v_3;
+  return float3(x_e2.mx[0u], x_e5.my[0u], x_e8.mz[0u]);
+}
+
+float3 Mat4x3GetCol1_(Mat4x3_ m2) {
+  Mat4x3_ m3 = (Mat4x3_)0;
+  m3 = m2;
+  Mat4x3_ v_4 = m3;
+  Mat4x3_ v_5 = m3;
+  Mat4x3_ v_6 = m3;
+  Mat4x3_ x_e2 = v_4;
+  Mat4x3_ x_e5 = v_5;
+  Mat4x3_ x_e8 = v_6;
+  return float3(x_e2.mx[1u], x_e5.my[1u], x_e8.mz[1u]);
+}
+
+float3 Mat4x3GetCol2_(Mat4x3_ m4) {
+  Mat4x3_ m5 = (Mat4x3_)0;
+  m5 = m4;
+  Mat4x3_ v_7 = m5;
+  Mat4x3_ v_8 = m5;
+  Mat4x3_ v_9 = m5;
+  Mat4x3_ x_e2 = v_7;
+  Mat4x3_ x_e5 = v_8;
+  Mat4x3_ x_e8 = v_9;
+  return float3(x_e2.mx[2u], x_e5.my[2u], x_e8.mz[2u]);
+}
+
+float3 Mat4x3GetCol3_(Mat4x3_ m6) {
+  Mat4x3_ m7 = (Mat4x3_)0;
+  m7 = m6;
+  Mat4x3_ v_10 = m7;
+  Mat4x3_ v_11 = m7;
+  Mat4x3_ v_12 = m7;
+  Mat4x3_ x_e2 = v_10;
+  Mat4x3_ x_e5 = v_11;
+  Mat4x3_ x_e8 = v_12;
+  return float3(x_e2.mx[3u], x_e5.my[3u], x_e8.mz[3u]);
+}
+
+float4 Mul(Mat4x4_ m8, float4 v) {
+  Mat4x4_ m9 = (Mat4x4_)0;
+  float4 v1 = (0.0f).xxxx;
+  m9 = m8;
+  v1 = v;
+  Mat4x4_ v_13 = m9;
+  float4 x_e6 = v1;
+  Mat4x4_ v_14 = m9;
+  float4 x_e10 = v1;
+  Mat4x4_ v_15 = m9;
+  float4 x_e14 = v1;
+  Mat4x4_ v_16 = m9;
+  float4 x_e18 = v1;
+  Mat4x4_ x_e4 = v_13;
+  float v_17 = dot(x_e4.mx, x_e6);
+  Mat4x4_ x_e8 = v_14;
+  float v_18 = dot(x_e8.my, x_e10);
+  Mat4x4_ x_e12 = v_15;
+  float v_19 = dot(x_e12.mz, x_e14);
+  Mat4x4_ x_e16 = v_16;
+  return float4(v_17, v_18, v_19, dot(x_e16.mw, x_e18));
+}
+
+float3 Mul1(Mat4x3_ m10, float4 v2) {
+  Mat4x3_ m11 = (Mat4x3_)0;
+  float4 v3 = (0.0f).xxxx;
+  m11 = m10;
+  v3 = v2;
+  Mat4x3_ v_20 = m11;
+  float4 x_e6 = v3;
+  Mat4x3_ v_21 = m11;
+  float4 x_e10 = v3;
+  Mat4x3_ v_22 = m11;
+  float4 x_e14 = v3;
+  Mat4x3_ x_e4 = v_20;
+  float v_23 = dot(x_e4.mx, x_e6);
+  Mat4x3_ x_e8 = v_21;
+  float v_24 = dot(x_e8.my, x_e10);
+  Mat4x3_ x_e12 = v_22;
+  return float3(v_23, v_24, dot(x_e12.mz, x_e14));
+}
+
+float2 Mul2(Mat4x2_ m12, float4 v4) {
+  Mat4x2_ m13 = (Mat4x2_)0;
+  float4 v5 = (0.0f).xxxx;
+  m13 = m12;
+  v5 = v4;
+  Mat4x2_ v_25 = m13;
+  float4 x_e6 = v5;
+  Mat4x2_ v_26 = m13;
+  float4 x_e10 = v5;
+  Mat4x2_ x_e4 = v_25;
+  float v_27 = dot(x_e4.mx, x_e6);
+  Mat4x2_ x_e8 = v_26;
+  return float2(v_27, dot(x_e8.my, x_e10));
+}
+
+float4 Mul3(float3 v6, Mat4x3_ m14) {
+  float3 v7 = (0.0f).xxx;
+  Mat4x3_ m15 = (Mat4x3_)0;
+  v7 = v6;
+  m15 = m14;
+  Mat4x3_ v_28 = m15;
+  Mat4x3_ x_e5 = v_28;
+  float3 x_e6 = Mat4x3GetCol0_(x_e5);
+  float3 x_e7 = v7;
+  Mat4x3_ v_29 = m15;
+  Mat4x3_ x_e10 = v_29;
+  float3 x_e11 = Mat4x3GetCol1_(x_e10);
+  float3 x_e12 = v7;
+  Mat4x3_ v_30 = m15;
+  Mat4x3_ x_e15 = v_30;
+  float3 x_e16 = Mat4x3GetCol2_(x_e15);
+  float3 x_e17 = v7;
+  Mat4x3_ v_31 = m15;
+  Mat4x3_ x_e20 = v_31;
+  float3 x_e21 = Mat4x3GetCol3_(x_e20);
+  float3 x_e22 = v7;
+  float v_32 = dot(x_e6, x_e7);
+  float v_33 = dot(x_e11, x_e12);
+  float v_34 = dot(x_e16, x_e17);
+  return float4(v_32, v_33, v_34, dot(x_e21, x_e22));
+}
+
+Mat4x4_ x_Mat4x4_(float n) {
+  float n1 = 0.0f;
+  Mat4x4_ o = (Mat4x4_)0;
+  n1 = n;
+  float x_e4 = n1;
+  o.mx = float4(x_e4, 0.0f, 0.0f, 0.0f);
+  float x_e11 = n1;
+  o.my = float4(0.0f, x_e11, 0.0f, 0.0f);
+  float x_e18 = n1;
+  o.mz = float4(0.0f, 0.0f, x_e18, 0.0f);
+  float x_e25 = n1;
+  o.mw = float4(0.0f, 0.0f, 0.0f, x_e25);
+  Mat4x4_ v_35 = o;
+  Mat4x4_ x_e27 = v_35;
+  return x_e27;
+}
+
+Mat4x4_ x_Mat4x4_1(Mat4x3_ m16) {
+  Mat4x3_ m17 = (Mat4x3_)0;
+  Mat4x4_ o1 = (Mat4x4_)0;
+  m17 = m16;
+  Mat4x4_ v_36 = x_Mat4x4_(1.0f);
+  Mat4x4_ x_e4 = v_36;
+  o1 = x_e4;
+  Mat4x3_ v_37 = m17;
+  Mat4x3_ x_e7 = v_37;
+  o1.mx = x_e7.mx;
+  Mat4x3_ v_38 = m17;
+  Mat4x3_ x_e10 = v_38;
+  o1.my = x_e10.my;
+  Mat4x3_ v_39 = m17;
+  Mat4x3_ x_e13 = v_39;
+  o1.mz = x_e13.mz;
+  Mat4x4_ v_40 = o1;
+  Mat4x4_ x_e15 = v_40;
+  return x_e15;
+}
+
+Mat4x4_ x_Mat4x4_2(Mat4x2_ m18) {
+  Mat4x2_ m19 = (Mat4x2_)0;
+  Mat4x4_ o2 = (Mat4x4_)0;
+  m19 = m18;
+  Mat4x4_ v_41 = x_Mat4x4_(1.0f);
+  Mat4x4_ x_e4 = v_41;
+  o2 = x_e4;
+  Mat4x2_ v_42 = m19;
+  Mat4x2_ x_e7 = v_42;
+  o2.mx = x_e7.mx;
+  Mat4x2_ v_43 = m19;
+  Mat4x2_ x_e10 = v_43;
+  o2.my = x_e10.my;
+  Mat4x4_ v_44 = o2;
+  Mat4x4_ x_e12 = v_44;
+  return x_e12;
+}
+
+Mat4x3_ x_Mat4x3_(float n2) {
+  float n3 = 0.0f;
+  Mat4x3_ o3 = (Mat4x3_)0;
+  n3 = n2;
+  float x_e4 = n3;
+  o3.mx = float4(x_e4, 0.0f, 0.0f, 0.0f);
+  float x_e11 = n3;
+  o3.my = float4(0.0f, x_e11, 0.0f, 0.0f);
+  float x_e18 = n3;
+  o3.mz = float4(0.0f, 0.0f, x_e18, 0.0f);
+  Mat4x3_ v_45 = o3;
+  Mat4x3_ x_e21 = v_45;
+  return x_e21;
+}
+
+Mat4x3_ x_Mat4x3_1(Mat4x4_ m20) {
+  Mat4x4_ m21 = (Mat4x4_)0;
+  Mat4x3_ o4 = (Mat4x3_)0;
+  m21 = m20;
+  Mat4x4_ v_46 = m21;
+  Mat4x4_ x_e4 = v_46;
+  o4.mx = x_e4.mx;
+  Mat4x4_ v_47 = m21;
+  Mat4x4_ x_e7 = v_47;
+  o4.my = x_e7.my;
+  Mat4x4_ v_48 = m21;
+  Mat4x4_ x_e10 = v_48;
+  o4.mz = x_e10.mz;
+  Mat4x3_ v_49 = o4;
+  Mat4x3_ x_e12 = v_49;
+  return x_e12;
+}
+
+Mat4x2_ v_50(uint start_byte_offset) {
+  float4 v_51 = asfloat(global1[(start_byte_offset / 16u)]);
+  Mat4x2_ v_52 = {v_51, asfloat(global1[((16u + start_byte_offset) / 16u)])};
+  return v_52;
+}
+
+Mat4x4_ v_53(uint start_byte_offset) {
+  float4 v_54 = asfloat(global[(start_byte_offset / 16u)]);
+  float4 v_55 = asfloat(global[((16u + start_byte_offset) / 16u)]);
+  float4 v_56 = asfloat(global[((32u + start_byte_offset) / 16u)]);
+  Mat4x4_ v_57 = {v_54, v_55, v_56, asfloat(global[((48u + start_byte_offset) / 16u)])};
+  return v_57;
+}
+
+Mat4x3_ v_58(uint start_byte_offset) {
+  float4 v_59 = asfloat(global2[(start_byte_offset / 16u)]);
+  float4 v_60 = asfloat(global2[((16u + start_byte_offset) / 16u)]);
+  Mat4x3_ v_61 = {v_59, v_60, asfloat(global2[((32u + start_byte_offset) / 16u)])};
+  return v_61;
+}
+
+int tint_f32_to_i32(float value) {
+  return (((value <= 2147483520.0f)) ? ((((value >= -2147483648.0f)) ? (int(value)) : (-2147483648))) : (2147483647));
+}
+
+void main1() {
+  Mat4x3_ t_PosMtx = (Mat4x3_)0;
+  float2 t_TexSpaceCoord = (0.0f).xx;
+  float x_e15 = a_PosMtxIdx1;
+  Mat4x3_ v_62 = v_58((48u * uint(tint_f32_to_i32(x_e15))));
+  Mat4x3_ x_e18 = v_62;
+  t_PosMtx = x_e18;
+  Mat4x3_ v_63 = t_PosMtx;
+  Mat4x3_ x_e23 = v_63;
+  Mat4x4_ x_e24 = x_Mat4x4_1(x_e23);
+  float3 x_e25 = a_Position1;
+  Mat4x3_ v_64 = t_PosMtx;
+  Mat4x3_ x_e29 = v_64;
+  Mat4x4_ v_65 = x_Mat4x4_1(x_e29);
+  float3 x_e31 = a_Position1;
+  Mat4x4_ x_e30 = v_65;
+  float4 x_e34 = Mul(x_e30, float4(x_e31, 1.0f));
+  Mat4x4_ v_66 = v_53(0u);
+  Mat4x3_ v_67 = t_PosMtx;
+  Mat4x3_ x_e37 = v_67;
+  Mat4x4_ x_e38 = x_Mat4x4_1(x_e37);
+  float3 x_e39 = a_Position1;
+  Mat4x3_ v_68 = t_PosMtx;
+  Mat4x3_ x_e43 = v_68;
+  Mat4x4_ v_69 = x_Mat4x4_1(x_e43);
+  float3 x_e45 = a_Position1;
+  Mat4x4_ x_e44 = v_69;
+  float4 x_e48 = Mul(x_e44, float4(x_e45, 1.0f));
+  Mat4x4_ x_e35 = v_66;
+  float4 x_e49 = Mul(x_e35, x_e48);
+  gl_Position = x_e49;
+  float4 x_e50 = a_Color1;
+  v_Color = x_e50;
+  float4 x_e52 = asfloat(global1[2u]);
+  if ((x_e52[0u] == 2.0f)) {
+    float3 x_e59 = a_Normal1;
+    Mat4x2_ v_70 = v_50(0u);
+    float3 x_e65 = a_Normal1;
+    Mat4x2_ x_e64 = v_70;
+    float2 x_e68 = Mul2(x_e64, float4(x_e65, 1.0f));
+    v_TexCoord = x_e68.xy;
+    return;
+  } else {
+    float2 x_e73 = a_UV1;
+    Mat4x2_ v_71 = v_50(0u);
+    float2 x_e80 = a_UV1;
+    Mat4x2_ x_e79 = v_71;
+    float2 x_e84 = Mul2(x_e79, float4(x_e80, 1.0f, 1.0f));
+    v_TexCoord = x_e84.xy;
+    return;
+  }
+  /* unreachable */
+}
+
+VertexOutput main_inner(float3 a_Position, float2 a_UV, float4 a_Color, float3 a_Normal, float a_PosMtxIdx) {
+  a_Position1 = a_Position;
+  a_UV1 = a_UV;
+  a_Color1 = a_Color;
+  a_Normal1 = a_Normal;
+  a_PosMtxIdx1 = a_PosMtxIdx;
+  main1();
+  float4 x_e11 = v_Color;
+  float2 x_e13 = v_TexCoord;
+  float4 x_e15 = gl_Position;
+  VertexOutput v_72 = {x_e11, x_e13, x_e15};
+  return v_72;
+}
+
+main_outputs main(main_inputs inputs) {
+  VertexOutput v_73 = main_inner(inputs.a_Position, inputs.a_UV, inputs.a_Color, inputs.a_Normal, inputs.a_PosMtxIdx);
+  VertexOutput v_74 = v_73;
+  VertexOutput v_75 = v_73;
+  VertexOutput v_76 = v_73;
+  main_outputs v_77 = {v_74.v_Color, v_75.v_TexCoord, v_76.member};
+  return v_77;
+}
+
diff --git a/test/tint/bug/tint/922.wgsl.expected.ir.fxc.hlsl b/test/tint/bug/tint/922.wgsl.expected.ir.fxc.hlsl
index 0ba40c6..09642eb 100644
--- a/test/tint/bug/tint/922.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/bug/tint/922.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,379 @@
-SKIP: FAILED
+struct Mat4x3_ {
+  float4 mx;
+  float4 my;
+  float4 mz;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct Mat4x4_ {
+  float4 mx;
+  float4 my;
+  float4 mz;
+  float4 mw;
+};
+
+struct Mat4x2_ {
+  float4 mx;
+  float4 my;
+};
+
+struct VertexOutput {
+  float4 v_Color;
+  float2 v_TexCoord;
+  float4 member;
+};
+
+struct main_outputs {
+  float4 VertexOutput_v_Color : TEXCOORD0;
+  float2 VertexOutput_v_TexCoord : TEXCOORD1;
+  float4 VertexOutput_member : SV_Position;
+};
+
+struct main_inputs {
+  float3 a_Position : TEXCOORD0;
+  float2 a_UV : TEXCOORD1;
+  float4 a_Color : TEXCOORD2;
+  float3 a_Normal : TEXCOORD3;
+  float a_PosMtxIdx : TEXCOORD4;
+};
+
+
+cbuffer cbuffer_global : register(b0) {
+  uint4 global[4];
+};
+cbuffer cbuffer_global1 : register(b1) {
+  uint4 global1[3];
+};
+cbuffer cbuffer_global2 : register(b2) {
+  uint4 global2[96];
+};
+static float3 a_Position1 = (0.0f).xxx;
+static float2 a_UV1 = (0.0f).xx;
+static float4 a_Color1 = (0.0f).xxxx;
+static float3 a_Normal1 = (0.0f).xxx;
+static float a_PosMtxIdx1 = 0.0f;
+static float4 v_Color = (0.0f).xxxx;
+static float2 v_TexCoord = (0.0f).xx;
+static float4 gl_Position = (0.0f).xxxx;
+float3 Mat4x3GetCol0_(Mat4x3_ m) {
+  Mat4x3_ m1 = (Mat4x3_)0;
+  m1 = m;
+  Mat4x3_ v_1 = m1;
+  Mat4x3_ v_2 = m1;
+  Mat4x3_ v_3 = m1;
+  Mat4x3_ x_e2 = v_1;
+  Mat4x3_ x_e5 = v_2;
+  Mat4x3_ x_e8 = v_3;
+  return float3(x_e2.mx[0u], x_e5.my[0u], x_e8.mz[0u]);
+}
+
+float3 Mat4x3GetCol1_(Mat4x3_ m2) {
+  Mat4x3_ m3 = (Mat4x3_)0;
+  m3 = m2;
+  Mat4x3_ v_4 = m3;
+  Mat4x3_ v_5 = m3;
+  Mat4x3_ v_6 = m3;
+  Mat4x3_ x_e2 = v_4;
+  Mat4x3_ x_e5 = v_5;
+  Mat4x3_ x_e8 = v_6;
+  return float3(x_e2.mx[1u], x_e5.my[1u], x_e8.mz[1u]);
+}
+
+float3 Mat4x3GetCol2_(Mat4x3_ m4) {
+  Mat4x3_ m5 = (Mat4x3_)0;
+  m5 = m4;
+  Mat4x3_ v_7 = m5;
+  Mat4x3_ v_8 = m5;
+  Mat4x3_ v_9 = m5;
+  Mat4x3_ x_e2 = v_7;
+  Mat4x3_ x_e5 = v_8;
+  Mat4x3_ x_e8 = v_9;
+  return float3(x_e2.mx[2u], x_e5.my[2u], x_e8.mz[2u]);
+}
+
+float3 Mat4x3GetCol3_(Mat4x3_ m6) {
+  Mat4x3_ m7 = (Mat4x3_)0;
+  m7 = m6;
+  Mat4x3_ v_10 = m7;
+  Mat4x3_ v_11 = m7;
+  Mat4x3_ v_12 = m7;
+  Mat4x3_ x_e2 = v_10;
+  Mat4x3_ x_e5 = v_11;
+  Mat4x3_ x_e8 = v_12;
+  return float3(x_e2.mx[3u], x_e5.my[3u], x_e8.mz[3u]);
+}
+
+float4 Mul(Mat4x4_ m8, float4 v) {
+  Mat4x4_ m9 = (Mat4x4_)0;
+  float4 v1 = (0.0f).xxxx;
+  m9 = m8;
+  v1 = v;
+  Mat4x4_ v_13 = m9;
+  float4 x_e6 = v1;
+  Mat4x4_ v_14 = m9;
+  float4 x_e10 = v1;
+  Mat4x4_ v_15 = m9;
+  float4 x_e14 = v1;
+  Mat4x4_ v_16 = m9;
+  float4 x_e18 = v1;
+  Mat4x4_ x_e4 = v_13;
+  float v_17 = dot(x_e4.mx, x_e6);
+  Mat4x4_ x_e8 = v_14;
+  float v_18 = dot(x_e8.my, x_e10);
+  Mat4x4_ x_e12 = v_15;
+  float v_19 = dot(x_e12.mz, x_e14);
+  Mat4x4_ x_e16 = v_16;
+  return float4(v_17, v_18, v_19, dot(x_e16.mw, x_e18));
+}
+
+float3 Mul1(Mat4x3_ m10, float4 v2) {
+  Mat4x3_ m11 = (Mat4x3_)0;
+  float4 v3 = (0.0f).xxxx;
+  m11 = m10;
+  v3 = v2;
+  Mat4x3_ v_20 = m11;
+  float4 x_e6 = v3;
+  Mat4x3_ v_21 = m11;
+  float4 x_e10 = v3;
+  Mat4x3_ v_22 = m11;
+  float4 x_e14 = v3;
+  Mat4x3_ x_e4 = v_20;
+  float v_23 = dot(x_e4.mx, x_e6);
+  Mat4x3_ x_e8 = v_21;
+  float v_24 = dot(x_e8.my, x_e10);
+  Mat4x3_ x_e12 = v_22;
+  return float3(v_23, v_24, dot(x_e12.mz, x_e14));
+}
+
+float2 Mul2(Mat4x2_ m12, float4 v4) {
+  Mat4x2_ m13 = (Mat4x2_)0;
+  float4 v5 = (0.0f).xxxx;
+  m13 = m12;
+  v5 = v4;
+  Mat4x2_ v_25 = m13;
+  float4 x_e6 = v5;
+  Mat4x2_ v_26 = m13;
+  float4 x_e10 = v5;
+  Mat4x2_ x_e4 = v_25;
+  float v_27 = dot(x_e4.mx, x_e6);
+  Mat4x2_ x_e8 = v_26;
+  return float2(v_27, dot(x_e8.my, x_e10));
+}
+
+float4 Mul3(float3 v6, Mat4x3_ m14) {
+  float3 v7 = (0.0f).xxx;
+  Mat4x3_ m15 = (Mat4x3_)0;
+  v7 = v6;
+  m15 = m14;
+  Mat4x3_ v_28 = m15;
+  Mat4x3_ x_e5 = v_28;
+  float3 x_e6 = Mat4x3GetCol0_(x_e5);
+  float3 x_e7 = v7;
+  Mat4x3_ v_29 = m15;
+  Mat4x3_ x_e10 = v_29;
+  float3 x_e11 = Mat4x3GetCol1_(x_e10);
+  float3 x_e12 = v7;
+  Mat4x3_ v_30 = m15;
+  Mat4x3_ x_e15 = v_30;
+  float3 x_e16 = Mat4x3GetCol2_(x_e15);
+  float3 x_e17 = v7;
+  Mat4x3_ v_31 = m15;
+  Mat4x3_ x_e20 = v_31;
+  float3 x_e21 = Mat4x3GetCol3_(x_e20);
+  float3 x_e22 = v7;
+  float v_32 = dot(x_e6, x_e7);
+  float v_33 = dot(x_e11, x_e12);
+  float v_34 = dot(x_e16, x_e17);
+  return float4(v_32, v_33, v_34, dot(x_e21, x_e22));
+}
+
+Mat4x4_ x_Mat4x4_(float n) {
+  float n1 = 0.0f;
+  Mat4x4_ o = (Mat4x4_)0;
+  n1 = n;
+  float x_e4 = n1;
+  o.mx = float4(x_e4, 0.0f, 0.0f, 0.0f);
+  float x_e11 = n1;
+  o.my = float4(0.0f, x_e11, 0.0f, 0.0f);
+  float x_e18 = n1;
+  o.mz = float4(0.0f, 0.0f, x_e18, 0.0f);
+  float x_e25 = n1;
+  o.mw = float4(0.0f, 0.0f, 0.0f, x_e25);
+  Mat4x4_ v_35 = o;
+  Mat4x4_ x_e27 = v_35;
+  return x_e27;
+}
+
+Mat4x4_ x_Mat4x4_1(Mat4x3_ m16) {
+  Mat4x3_ m17 = (Mat4x3_)0;
+  Mat4x4_ o1 = (Mat4x4_)0;
+  m17 = m16;
+  Mat4x4_ v_36 = x_Mat4x4_(1.0f);
+  Mat4x4_ x_e4 = v_36;
+  o1 = x_e4;
+  Mat4x3_ v_37 = m17;
+  Mat4x3_ x_e7 = v_37;
+  o1.mx = x_e7.mx;
+  Mat4x3_ v_38 = m17;
+  Mat4x3_ x_e10 = v_38;
+  o1.my = x_e10.my;
+  Mat4x3_ v_39 = m17;
+  Mat4x3_ x_e13 = v_39;
+  o1.mz = x_e13.mz;
+  Mat4x4_ v_40 = o1;
+  Mat4x4_ x_e15 = v_40;
+  return x_e15;
+}
+
+Mat4x4_ x_Mat4x4_2(Mat4x2_ m18) {
+  Mat4x2_ m19 = (Mat4x2_)0;
+  Mat4x4_ o2 = (Mat4x4_)0;
+  m19 = m18;
+  Mat4x4_ v_41 = x_Mat4x4_(1.0f);
+  Mat4x4_ x_e4 = v_41;
+  o2 = x_e4;
+  Mat4x2_ v_42 = m19;
+  Mat4x2_ x_e7 = v_42;
+  o2.mx = x_e7.mx;
+  Mat4x2_ v_43 = m19;
+  Mat4x2_ x_e10 = v_43;
+  o2.my = x_e10.my;
+  Mat4x4_ v_44 = o2;
+  Mat4x4_ x_e12 = v_44;
+  return x_e12;
+}
+
+Mat4x3_ x_Mat4x3_(float n2) {
+  float n3 = 0.0f;
+  Mat4x3_ o3 = (Mat4x3_)0;
+  n3 = n2;
+  float x_e4 = n3;
+  o3.mx = float4(x_e4, 0.0f, 0.0f, 0.0f);
+  float x_e11 = n3;
+  o3.my = float4(0.0f, x_e11, 0.0f, 0.0f);
+  float x_e18 = n3;
+  o3.mz = float4(0.0f, 0.0f, x_e18, 0.0f);
+  Mat4x3_ v_45 = o3;
+  Mat4x3_ x_e21 = v_45;
+  return x_e21;
+}
+
+Mat4x3_ x_Mat4x3_1(Mat4x4_ m20) {
+  Mat4x4_ m21 = (Mat4x4_)0;
+  Mat4x3_ o4 = (Mat4x3_)0;
+  m21 = m20;
+  Mat4x4_ v_46 = m21;
+  Mat4x4_ x_e4 = v_46;
+  o4.mx = x_e4.mx;
+  Mat4x4_ v_47 = m21;
+  Mat4x4_ x_e7 = v_47;
+  o4.my = x_e7.my;
+  Mat4x4_ v_48 = m21;
+  Mat4x4_ x_e10 = v_48;
+  o4.mz = x_e10.mz;
+  Mat4x3_ v_49 = o4;
+  Mat4x3_ x_e12 = v_49;
+  return x_e12;
+}
+
+Mat4x2_ v_50(uint start_byte_offset) {
+  float4 v_51 = asfloat(global1[(start_byte_offset / 16u)]);
+  Mat4x2_ v_52 = {v_51, asfloat(global1[((16u + start_byte_offset) / 16u)])};
+  return v_52;
+}
+
+Mat4x4_ v_53(uint start_byte_offset) {
+  float4 v_54 = asfloat(global[(start_byte_offset / 16u)]);
+  float4 v_55 = asfloat(global[((16u + start_byte_offset) / 16u)]);
+  float4 v_56 = asfloat(global[((32u + start_byte_offset) / 16u)]);
+  Mat4x4_ v_57 = {v_54, v_55, v_56, asfloat(global[((48u + start_byte_offset) / 16u)])};
+  return v_57;
+}
+
+Mat4x3_ v_58(uint start_byte_offset) {
+  float4 v_59 = asfloat(global2[(start_byte_offset / 16u)]);
+  float4 v_60 = asfloat(global2[((16u + start_byte_offset) / 16u)]);
+  Mat4x3_ v_61 = {v_59, v_60, asfloat(global2[((32u + start_byte_offset) / 16u)])};
+  return v_61;
+}
+
+int tint_f32_to_i32(float value) {
+  return (((value <= 2147483520.0f)) ? ((((value >= -2147483648.0f)) ? (int(value)) : (-2147483648))) : (2147483647));
+}
+
+void main1() {
+  Mat4x3_ t_PosMtx = (Mat4x3_)0;
+  float2 t_TexSpaceCoord = (0.0f).xx;
+  float x_e15 = a_PosMtxIdx1;
+  Mat4x3_ v_62 = v_58((48u * uint(tint_f32_to_i32(x_e15))));
+  Mat4x3_ x_e18 = v_62;
+  t_PosMtx = x_e18;
+  Mat4x3_ v_63 = t_PosMtx;
+  Mat4x3_ x_e23 = v_63;
+  Mat4x4_ x_e24 = x_Mat4x4_1(x_e23);
+  float3 x_e25 = a_Position1;
+  Mat4x3_ v_64 = t_PosMtx;
+  Mat4x3_ x_e29 = v_64;
+  Mat4x4_ v_65 = x_Mat4x4_1(x_e29);
+  float3 x_e31 = a_Position1;
+  Mat4x4_ x_e30 = v_65;
+  float4 x_e34 = Mul(x_e30, float4(x_e31, 1.0f));
+  Mat4x4_ v_66 = v_53(0u);
+  Mat4x3_ v_67 = t_PosMtx;
+  Mat4x3_ x_e37 = v_67;
+  Mat4x4_ x_e38 = x_Mat4x4_1(x_e37);
+  float3 x_e39 = a_Position1;
+  Mat4x3_ v_68 = t_PosMtx;
+  Mat4x3_ x_e43 = v_68;
+  Mat4x4_ v_69 = x_Mat4x4_1(x_e43);
+  float3 x_e45 = a_Position1;
+  Mat4x4_ x_e44 = v_69;
+  float4 x_e48 = Mul(x_e44, float4(x_e45, 1.0f));
+  Mat4x4_ x_e35 = v_66;
+  float4 x_e49 = Mul(x_e35, x_e48);
+  gl_Position = x_e49;
+  float4 x_e50 = a_Color1;
+  v_Color = x_e50;
+  float4 x_e52 = asfloat(global1[2u]);
+  if ((x_e52[0u] == 2.0f)) {
+    float3 x_e59 = a_Normal1;
+    Mat4x2_ v_70 = v_50(0u);
+    float3 x_e65 = a_Normal1;
+    Mat4x2_ x_e64 = v_70;
+    float2 x_e68 = Mul2(x_e64, float4(x_e65, 1.0f));
+    v_TexCoord = x_e68.xy;
+    return;
+  } else {
+    float2 x_e73 = a_UV1;
+    Mat4x2_ v_71 = v_50(0u);
+    float2 x_e80 = a_UV1;
+    Mat4x2_ x_e79 = v_71;
+    float2 x_e84 = Mul2(x_e79, float4(x_e80, 1.0f, 1.0f));
+    v_TexCoord = x_e84.xy;
+    return;
+  }
+  /* unreachable */
+}
+
+VertexOutput main_inner(float3 a_Position, float2 a_UV, float4 a_Color, float3 a_Normal, float a_PosMtxIdx) {
+  a_Position1 = a_Position;
+  a_UV1 = a_UV;
+  a_Color1 = a_Color;
+  a_Normal1 = a_Normal;
+  a_PosMtxIdx1 = a_PosMtxIdx;
+  main1();
+  float4 x_e11 = v_Color;
+  float2 x_e13 = v_TexCoord;
+  float4 x_e15 = gl_Position;
+  VertexOutput v_72 = {x_e11, x_e13, x_e15};
+  return v_72;
+}
+
+main_outputs main(main_inputs inputs) {
+  VertexOutput v_73 = main_inner(inputs.a_Position, inputs.a_UV, inputs.a_Color, inputs.a_Normal, inputs.a_PosMtxIdx);
+  VertexOutput v_74 = v_73;
+  VertexOutput v_75 = v_73;
+  VertexOutput v_76 = v_73;
+  main_outputs v_77 = {v_74.v_Color, v_75.v_TexCoord, v_76.member};
+  return v_77;
+}
+
diff --git a/test/tint/bug/tint/926.wgsl.expected.ir.dxc.hlsl b/test/tint/bug/tint/926.wgsl.expected.ir.dxc.hlsl
index b786ae2..c790443 100644
--- a/test/tint/bug/tint/926.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/bug/tint/926.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,19 @@
-SKIP: FAILED
+struct computeMain_inputs {
+  uint3 global_id : SV_DispatchThreadID;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: atomicAdd
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+
+RWByteAddressBuffer drawOut : register(u5);
+static uint cubeVerts = 0u;
+void computeMain_inner(uint3 global_id) {
+  uint v = cubeVerts;
+  uint v_1 = 0u;
+  drawOut.InterlockedAdd(uint(0u), v, v_1);
+  uint firstVertex = v_1;
+}
+
+[numthreads(1, 1, 1)]
+void computeMain(computeMain_inputs inputs) {
+  computeMain_inner(inputs.global_id);
+}
+
diff --git a/test/tint/bug/tint/926.wgsl.expected.ir.fxc.hlsl b/test/tint/bug/tint/926.wgsl.expected.ir.fxc.hlsl
index b786ae2..c790443 100644
--- a/test/tint/bug/tint/926.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/bug/tint/926.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,19 @@
-SKIP: FAILED
+struct computeMain_inputs {
+  uint3 global_id : SV_DispatchThreadID;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: atomicAdd
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+
+RWByteAddressBuffer drawOut : register(u5);
+static uint cubeVerts = 0u;
+void computeMain_inner(uint3 global_id) {
+  uint v = cubeVerts;
+  uint v_1 = 0u;
+  drawOut.InterlockedAdd(uint(0u), v, v_1);
+  uint firstVertex = v_1;
+}
+
+[numthreads(1, 1, 1)]
+void computeMain(computeMain_inputs inputs) {
+  computeMain_inner(inputs.global_id);
+}
+
diff --git a/test/tint/bug/tint/942.wgsl.expected.ir.dxc.hlsl b/test/tint/bug/tint/942.wgsl.expected.ir.dxc.hlsl
index 3f437dc..cf26da3 100644
--- a/test/tint/bug/tint/942.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/bug/tint/942.wgsl.expected.ir.dxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Access
+..\..\src\tint\lang\hlsl\writer\printer\printer.cc:1010 internal compiler error: TINT_UNREACHABLE unhandled: textureSampleLevel
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/bug/tint/942.wgsl.expected.ir.fxc.hlsl b/test/tint/bug/tint/942.wgsl.expected.ir.fxc.hlsl
index 3f437dc..cf26da3 100644
--- a/test/tint/bug/tint/942.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/bug/tint/942.wgsl.expected.ir.fxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Access
+..\..\src\tint\lang\hlsl\writer\printer\printer.cc:1010 internal compiler error: TINT_UNREACHABLE unhandled: textureSampleLevel
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/bug/tint/948.wgsl.expected.ir.dxc.hlsl b/test/tint/bug/tint/948.wgsl.expected.ir.dxc.hlsl
index 6b047b4..49d2f50 100644
--- a/test/tint/bug/tint/948.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/bug/tint/948.wgsl.expected.ir.dxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:287 internal compiler error: Switch() matched no cases. Type: tint::core::ir::FunctionParam
+..\..\src\tint\lang\hlsl\writer\printer\printer.cc:1010 internal compiler error: TINT_UNREACHABLE unhandled: textureSampleBias
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/bug/tint/948.wgsl.expected.ir.fxc.hlsl b/test/tint/bug/tint/948.wgsl.expected.ir.fxc.hlsl
index 6b047b4..49d2f50 100644
--- a/test/tint/bug/tint/948.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/bug/tint/948.wgsl.expected.ir.fxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:287 internal compiler error: Switch() matched no cases. Type: tint::core::ir::FunctionParam
+..\..\src\tint\lang\hlsl\writer\printer\printer.cc:1010 internal compiler error: TINT_UNREACHABLE unhandled: textureSampleBias
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/bug/tint/949.wgsl.expected.ir.dxc.hlsl b/test/tint/bug/tint/949.wgsl.expected.ir.dxc.hlsl
index 6b047b4..58230f6 100644
--- a/test/tint/bug/tint/949.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/bug/tint/949.wgsl.expected.ir.dxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:287 internal compiler error: Switch() matched no cases. Type: tint::core::ir::FunctionParam
+..\..\src\tint\lang\hlsl\writer\printer\printer.cc:1010 internal compiler error: TINT_UNREACHABLE unhandled: textureSample
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/bug/tint/949.wgsl.expected.ir.fxc.hlsl b/test/tint/bug/tint/949.wgsl.expected.ir.fxc.hlsl
index 6b047b4..58230f6 100644
--- a/test/tint/bug/tint/949.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/bug/tint/949.wgsl.expected.ir.fxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:287 internal compiler error: Switch() matched no cases. Type: tint::core::ir::FunctionParam
+..\..\src\tint\lang\hlsl\writer\printer\printer.cc:1010 internal compiler error: TINT_UNREACHABLE unhandled: textureSample
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/bug/tint/959.wgsl.expected.ir.dxc.hlsl b/test/tint/bug/tint/959.wgsl.expected.ir.dxc.hlsl
index b06e72e..a782343 100644
--- a/test/tint/bug/tint/959.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/bug/tint/959.wgsl.expected.ir.dxc.hlsl
@@ -1,3 +1,168 @@
+struct S {
+  float a;
+};
+
+
+ByteAddressBuffer b0 : register(t0);
+ByteAddressBuffer b1 : register(t0, space1);
+ByteAddressBuffer b2 : register(t0, space2);
+ByteAddressBuffer b3 : register(t0, space3);
+ByteAddressBuffer b4 : register(t0, space4);
+ByteAddressBuffer b5 : register(t0, space5);
+ByteAddressBuffer b6 : register(t0, space6);
+ByteAddressBuffer b7 : register(t0, space7);
+cbuffer cbuffer_b8 : register(b1, space9) {
+  uint4 b8[1];
+};
+cbuffer cbuffer_b9 : register(b1, space8) {
+  uint4 b9[1];
+};
+cbuffer cbuffer_b10 : register(b1, space10) {
+  uint4 b10[1];
+};
+cbuffer cbuffer_b11 : register(b1, space11) {
+  uint4 b11[1];
+};
+cbuffer cbuffer_b12 : register(b1, space12) {
+  uint4 b12[1];
+};
+cbuffer cbuffer_b13 : register(b1, space13) {
+  uint4 b13[1];
+};
+cbuffer cbuffer_b14 : register(b1, space14) {
+  uint4 b14[1];
+};
+cbuffer cbuffer_b15 : register(b1, space15) {
+  uint4 b15[1];
+};
+Texture2D<float4> t0 : register(t1);
+Texture2D<float4> t1 : register(t1, space1);
+Texture2D<float4> t2 : register(t1, space2);
+Texture2D<float4> t3 : register(t1, space3);
+Texture2D<float4> t4 : register(t1, space4);
+Texture2D<float4> t5 : register(t1, space5);
+Texture2D<float4> t6 : register(t1, space6);
+Texture2D<float4> t7 : register(t1, space7);
+Texture2D t8 : register(t200, space8);
+Texture2D t9 : register(t200, space9);
+Texture2D t10 : register(t200, space10);
+Texture2D t11 : register(t200, space11);
+Texture2D t12 : register(t200, space12);
+Texture2D t13 : register(t200, space13);
+Texture2D t14 : register(t200, space14);
+Texture2D t15 : register(t200, space15);
+SamplerState s0 : register(s200);
+SamplerState s1 : register(s200, space1);
+SamplerState s2 : register(s200, space2);
+SamplerState s3 : register(s200, space3);
+SamplerState s4 : register(s200, space4);
+SamplerState s5 : register(s200, space5);
+SamplerState s6 : register(s200, space6);
+SamplerState s7 : register(s200, space7);
+SamplerComparisonState s8 : register(s300, space8);
+SamplerComparisonState s9 : register(s300, space9);
+SamplerComparisonState s10 : register(s300, space10);
+SamplerComparisonState s11 : register(s300, space11);
+SamplerComparisonState s12 : register(s300, space12);
+SamplerComparisonState s13 : register(s300, space13);
+SamplerComparisonState s14 : register(s300, space14);
+SamplerComparisonState s15 : register(s300, space15);
+S v(uint start_byte_offset) {
+  S v_1 = {asfloat(b15[(start_byte_offset / 16u)][((start_byte_offset % 16u) / 4u)])};
+  return v_1;
+}
+
+S v_2(uint start_byte_offset) {
+  S v_3 = {asfloat(b14[(start_byte_offset / 16u)][((start_byte_offset % 16u) / 4u)])};
+  return v_3;
+}
+
+S v_4(uint start_byte_offset) {
+  S v_5 = {asfloat(b13[(start_byte_offset / 16u)][((start_byte_offset % 16u) / 4u)])};
+  return v_5;
+}
+
+S v_6(uint start_byte_offset) {
+  S v_7 = {asfloat(b12[(start_byte_offset / 16u)][((start_byte_offset % 16u) / 4u)])};
+  return v_7;
+}
+
+S v_8(uint start_byte_offset) {
+  S v_9 = {asfloat(b11[(start_byte_offset / 16u)][((start_byte_offset % 16u) / 4u)])};
+  return v_9;
+}
+
+S v_10(uint start_byte_offset) {
+  S v_11 = {asfloat(b10[(start_byte_offset / 16u)][((start_byte_offset % 16u) / 4u)])};
+  return v_11;
+}
+
+S v_12(uint start_byte_offset) {
+  S v_13 = {asfloat(b9[(start_byte_offset / 16u)][((start_byte_offset % 16u) / 4u)])};
+  return v_13;
+}
+
+S v_14(uint start_byte_offset) {
+  S v_15 = {asfloat(b8[(start_byte_offset / 16u)][((start_byte_offset % 16u) / 4u)])};
+  return v_15;
+}
+
+S v_16(uint offset) {
+  S v_17 = {asfloat(b7.Load((offset + 0u)))};
+  return v_17;
+}
+
+S v_18(uint offset) {
+  S v_19 = {asfloat(b6.Load((offset + 0u)))};
+  return v_19;
+}
+
+S v_20(uint offset) {
+  S v_21 = {asfloat(b5.Load((offset + 0u)))};
+  return v_21;
+}
+
+S v_22(uint offset) {
+  S v_23 = {asfloat(b4.Load((offset + 0u)))};
+  return v_23;
+}
+
+S v_24(uint offset) {
+  S v_25 = {asfloat(b3.Load((offset + 0u)))};
+  return v_25;
+}
+
+S v_26(uint offset) {
+  S v_27 = {asfloat(b2.Load((offset + 0u)))};
+  return v_27;
+}
+
+S v_28(uint offset) {
+  S v_29 = {asfloat(b1.Load((offset + 0u)))};
+  return v_29;
+}
+
+S v_30(uint offset) {
+  S v_31 = {asfloat(b0.Load((offset + 0u)))};
+  return v_31;
+}
+
 void main() {
+  v_30(0u);
+  v_28(0u);
+  v_26(0u);
+  v_24(0u);
+  v_22(0u);
+  v_20(0u);
+  v_18(0u);
+  v_16(0u);
+  v_14(0u);
+  v_12(0u);
+  v_10(0u);
+  v_8(0u);
+  v_6(0u);
+  v_4(0u);
+  v_2(0u);
+  v(0u);
 }
 
diff --git a/test/tint/bug/tint/959.wgsl.expected.ir.fxc.hlsl b/test/tint/bug/tint/959.wgsl.expected.ir.fxc.hlsl
index 930f524..a782343 100644
--- a/test/tint/bug/tint/959.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/bug/tint/959.wgsl.expected.ir.fxc.hlsl
@@ -1,5 +1,168 @@
-SKIP: FAILED
+struct S {
+  float a;
+};
+
+
+ByteAddressBuffer b0 : register(t0);
+ByteAddressBuffer b1 : register(t0, space1);
+ByteAddressBuffer b2 : register(t0, space2);
+ByteAddressBuffer b3 : register(t0, space3);
+ByteAddressBuffer b4 : register(t0, space4);
+ByteAddressBuffer b5 : register(t0, space5);
+ByteAddressBuffer b6 : register(t0, space6);
+ByteAddressBuffer b7 : register(t0, space7);
+cbuffer cbuffer_b8 : register(b1, space9) {
+  uint4 b8[1];
+};
+cbuffer cbuffer_b9 : register(b1, space8) {
+  uint4 b9[1];
+};
+cbuffer cbuffer_b10 : register(b1, space10) {
+  uint4 b10[1];
+};
+cbuffer cbuffer_b11 : register(b1, space11) {
+  uint4 b11[1];
+};
+cbuffer cbuffer_b12 : register(b1, space12) {
+  uint4 b12[1];
+};
+cbuffer cbuffer_b13 : register(b1, space13) {
+  uint4 b13[1];
+};
+cbuffer cbuffer_b14 : register(b1, space14) {
+  uint4 b14[1];
+};
+cbuffer cbuffer_b15 : register(b1, space15) {
+  uint4 b15[1];
+};
+Texture2D<float4> t0 : register(t1);
+Texture2D<float4> t1 : register(t1, space1);
+Texture2D<float4> t2 : register(t1, space2);
+Texture2D<float4> t3 : register(t1, space3);
+Texture2D<float4> t4 : register(t1, space4);
+Texture2D<float4> t5 : register(t1, space5);
+Texture2D<float4> t6 : register(t1, space6);
+Texture2D<float4> t7 : register(t1, space7);
+Texture2D t8 : register(t200, space8);
+Texture2D t9 : register(t200, space9);
+Texture2D t10 : register(t200, space10);
+Texture2D t11 : register(t200, space11);
+Texture2D t12 : register(t200, space12);
+Texture2D t13 : register(t200, space13);
+Texture2D t14 : register(t200, space14);
+Texture2D t15 : register(t200, space15);
+SamplerState s0 : register(s200);
+SamplerState s1 : register(s200, space1);
+SamplerState s2 : register(s200, space2);
+SamplerState s3 : register(s200, space3);
+SamplerState s4 : register(s200, space4);
+SamplerState s5 : register(s200, space5);
+SamplerState s6 : register(s200, space6);
+SamplerState s7 : register(s200, space7);
+SamplerComparisonState s8 : register(s300, space8);
+SamplerComparisonState s9 : register(s300, space9);
+SamplerComparisonState s10 : register(s300, space10);
+SamplerComparisonState s11 : register(s300, space11);
+SamplerComparisonState s12 : register(s300, space12);
+SamplerComparisonState s13 : register(s300, space13);
+SamplerComparisonState s14 : register(s300, space14);
+SamplerComparisonState s15 : register(s300, space15);
+S v(uint start_byte_offset) {
+  S v_1 = {asfloat(b15[(start_byte_offset / 16u)][((start_byte_offset % 16u) / 4u)])};
+  return v_1;
+}
+
+S v_2(uint start_byte_offset) {
+  S v_3 = {asfloat(b14[(start_byte_offset / 16u)][((start_byte_offset % 16u) / 4u)])};
+  return v_3;
+}
+
+S v_4(uint start_byte_offset) {
+  S v_5 = {asfloat(b13[(start_byte_offset / 16u)][((start_byte_offset % 16u) / 4u)])};
+  return v_5;
+}
+
+S v_6(uint start_byte_offset) {
+  S v_7 = {asfloat(b12[(start_byte_offset / 16u)][((start_byte_offset % 16u) / 4u)])};
+  return v_7;
+}
+
+S v_8(uint start_byte_offset) {
+  S v_9 = {asfloat(b11[(start_byte_offset / 16u)][((start_byte_offset % 16u) / 4u)])};
+  return v_9;
+}
+
+S v_10(uint start_byte_offset) {
+  S v_11 = {asfloat(b10[(start_byte_offset / 16u)][((start_byte_offset % 16u) / 4u)])};
+  return v_11;
+}
+
+S v_12(uint start_byte_offset) {
+  S v_13 = {asfloat(b9[(start_byte_offset / 16u)][((start_byte_offset % 16u) / 4u)])};
+  return v_13;
+}
+
+S v_14(uint start_byte_offset) {
+  S v_15 = {asfloat(b8[(start_byte_offset / 16u)][((start_byte_offset % 16u) / 4u)])};
+  return v_15;
+}
+
+S v_16(uint offset) {
+  S v_17 = {asfloat(b7.Load((offset + 0u)))};
+  return v_17;
+}
+
+S v_18(uint offset) {
+  S v_19 = {asfloat(b6.Load((offset + 0u)))};
+  return v_19;
+}
+
+S v_20(uint offset) {
+  S v_21 = {asfloat(b5.Load((offset + 0u)))};
+  return v_21;
+}
+
+S v_22(uint offset) {
+  S v_23 = {asfloat(b4.Load((offset + 0u)))};
+  return v_23;
+}
+
+S v_24(uint offset) {
+  S v_25 = {asfloat(b3.Load((offset + 0u)))};
+  return v_25;
+}
+
+S v_26(uint offset) {
+  S v_27 = {asfloat(b2.Load((offset + 0u)))};
+  return v_27;
+}
+
+S v_28(uint offset) {
+  S v_29 = {asfloat(b1.Load((offset + 0u)))};
+  return v_29;
+}
+
+S v_30(uint offset) {
+  S v_31 = {asfloat(b0.Load((offset + 0u)))};
+  return v_31;
+}
 
 void main() {
+  v_30(0u);
+  v_28(0u);
+  v_26(0u);
+  v_24(0u);
+  v_22(0u);
+  v_20(0u);
+  v_18(0u);
+  v_16(0u);
+  v_14(0u);
+  v_12(0u);
+  v_10(0u);
+  v_8(0u);
+  v_6(0u);
+  v_4(0u);
+  v_2(0u);
+  v(0u);
 }
 
diff --git a/test/tint/bug/tint/977.spvasm.expected.ir.dxc.hlsl b/test/tint/bug/tint/977.spvasm.expected.ir.dxc.hlsl
index bdeab23..1629419 100644
--- a/test/tint/bug/tint/977.spvasm.expected.ir.dxc.hlsl
+++ b/test/tint/bug/tint/977.spvasm.expected.ir.dxc.hlsl
@@ -1,9 +1,55 @@
-SKIP: FAILED
+struct main_inputs {
+  uint3 gl_GlobalInvocationID_param : SV_DispatchThreadID;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:198 internal compiler error: Switch() matched no cases. Type: tint::core::ir::If
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+
+static uint3 gl_GlobalInvocationID = (0u).xxx;
+RWByteAddressBuffer resultMatrix : register(u2);
+ByteAddressBuffer firstMatrix : register(t0);
+ByteAddressBuffer secondMatrix : register(t1);
+cbuffer cbuffer_x_46 : register(b3) {
+  uint4 x_46[1];
+};
+float binaryOperation_f1_f1_(inout float a, inout float b) {
+  float x_26 = 0.0f;
+  if ((b == 0.0f)) {
+    return 1.0f;
+  }
+  float x_21 = b;
+  if (!((round((x_21 - (2.0f * floor((x_21 / 2.0f))))) == 1.0f))) {
+    float v = abs(a);
+    x_26 = pow(v, b);
+  } else {
+    float v_1 = float(sign(a));
+    float v_2 = abs(a);
+    x_26 = (v_1 * pow(v_2, b));
+  }
+  float x_41 = x_26;
+  return x_41;
+}
+
+void main_1() {
+  int index = 0;
+  int a_1 = 0;
+  float param = 0.0f;
+  float param_1 = 0.0f;
+  index = asint(gl_GlobalInvocationID.x);
+  a_1 = -10;
+  int x_63 = index;
+  param = -4.0f;
+  param_1 = -3.0f;
+  float x_68 = binaryOperation_f1_f1_(param, param_1);
+  uint v_3 = (0u + (uint(x_63) * 4u));
+  resultMatrix.Store(v_3, asuint(x_68));
+}
+
+void main_inner(uint3 gl_GlobalInvocationID_param) {
+  gl_GlobalInvocationID = gl_GlobalInvocationID_param;
+  main_1();
+}
+
+[numthreads(1, 1, 1)]
+void main(main_inputs inputs) {
+  main_inner(inputs.gl_GlobalInvocationID_param);
+}
+
diff --git a/test/tint/bug/tint/977.spvasm.expected.ir.fxc.hlsl b/test/tint/bug/tint/977.spvasm.expected.ir.fxc.hlsl
index bdeab23..1629419 100644
--- a/test/tint/bug/tint/977.spvasm.expected.ir.fxc.hlsl
+++ b/test/tint/bug/tint/977.spvasm.expected.ir.fxc.hlsl
@@ -1,9 +1,55 @@
-SKIP: FAILED
+struct main_inputs {
+  uint3 gl_GlobalInvocationID_param : SV_DispatchThreadID;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:198 internal compiler error: Switch() matched no cases. Type: tint::core::ir::If
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+
+static uint3 gl_GlobalInvocationID = (0u).xxx;
+RWByteAddressBuffer resultMatrix : register(u2);
+ByteAddressBuffer firstMatrix : register(t0);
+ByteAddressBuffer secondMatrix : register(t1);
+cbuffer cbuffer_x_46 : register(b3) {
+  uint4 x_46[1];
+};
+float binaryOperation_f1_f1_(inout float a, inout float b) {
+  float x_26 = 0.0f;
+  if ((b == 0.0f)) {
+    return 1.0f;
+  }
+  float x_21 = b;
+  if (!((round((x_21 - (2.0f * floor((x_21 / 2.0f))))) == 1.0f))) {
+    float v = abs(a);
+    x_26 = pow(v, b);
+  } else {
+    float v_1 = float(sign(a));
+    float v_2 = abs(a);
+    x_26 = (v_1 * pow(v_2, b));
+  }
+  float x_41 = x_26;
+  return x_41;
+}
+
+void main_1() {
+  int index = 0;
+  int a_1 = 0;
+  float param = 0.0f;
+  float param_1 = 0.0f;
+  index = asint(gl_GlobalInvocationID.x);
+  a_1 = -10;
+  int x_63 = index;
+  param = -4.0f;
+  param_1 = -3.0f;
+  float x_68 = binaryOperation_f1_f1_(param, param_1);
+  uint v_3 = (0u + (uint(x_63) * 4u));
+  resultMatrix.Store(v_3, asuint(x_68));
+}
+
+void main_inner(uint3 gl_GlobalInvocationID_param) {
+  gl_GlobalInvocationID = gl_GlobalInvocationID_param;
+  main_1();
+}
+
+[numthreads(1, 1, 1)]
+void main(main_inputs inputs) {
+  main_inner(inputs.gl_GlobalInvocationID_param);
+}
+
diff --git a/test/tint/bug/tint/978.wgsl.expected.ir.dxc.hlsl b/test/tint/bug/tint/978.wgsl.expected.ir.dxc.hlsl
index 6739938..58230f6 100644
--- a/test/tint/bug/tint/978.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/bug/tint/978.wgsl.expected.ir.dxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureSample
+..\..\src\tint\lang\hlsl\writer\printer\printer.cc:1010 internal compiler error: TINT_UNREACHABLE unhandled: textureSample
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/bug/tint/978.wgsl.expected.ir.fxc.hlsl b/test/tint/bug/tint/978.wgsl.expected.ir.fxc.hlsl
index 6739938..58230f6 100644
--- a/test/tint/bug/tint/978.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/bug/tint/978.wgsl.expected.ir.fxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureSample
+..\..\src\tint\lang\hlsl\writer\printer\printer.cc:1010 internal compiler error: TINT_UNREACHABLE unhandled: textureSample
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/bug/tint/980.wgsl.expected.ir.dxc.hlsl b/test/tint/bug/tint/980.wgsl.expected.ir.dxc.hlsl
index c0935cc..0c22216 100644
--- a/test/tint/bug/tint/980.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/bug/tint/980.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,22 @@
-SKIP: FAILED
+struct main_inputs {
+  uint idx : SV_GroupIndex;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:198 internal compiler error: Switch() matched no cases. Type: tint::core::ir::StoreVectorElement
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+
+RWByteAddressBuffer io : register(u0);
+float3 Bad(uint index, float3 rd) {
+  float3 normal = (0.0f).xxx;
+  normal[index] = -(float(sign(rd[index])));
+  return normalize(normal);
+}
+
+void main_inner(uint idx) {
+  uint v_1 = io.Load(12u);
+  io.Store3(0u, asuint(Bad(v_1, asfloat(io.Load3(0u)))));
+}
+
+[numthreads(1, 1, 1)]
+void main(main_inputs inputs) {
+  main_inner(inputs.idx);
+}
+
diff --git a/test/tint/bug/tint/980.wgsl.expected.ir.fxc.hlsl b/test/tint/bug/tint/980.wgsl.expected.ir.fxc.hlsl
index c0935cc..090413d 100644
--- a/test/tint/bug/tint/980.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/bug/tint/980.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,27 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:198 internal compiler error: Switch() matched no cases. Type: tint::core::ir::StoreVectorElement
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct main_inputs {
+  uint idx : SV_GroupIndex;
+};
+
+
+RWByteAddressBuffer io : register(u0);
+float3 Bad(uint index, float3 rd) {
+  float3 normal = (0.0f).xxx;
+  normal[index] = -(float(sign(rd[index])));
+  return normalize(normal);
+}
+
+void main_inner(uint idx) {
+  uint v_1 = io.Load(12u);
+  io.Store3(0u, asuint(Bad(v_1, asfloat(io.Load3(0u)))));
+}
+
+[numthreads(1, 1, 1)]
+void main(main_inputs inputs) {
+  main_inner(inputs.idx);
+}
+
+FXC validation failure:
+c:\src\dawn\Shader@0x000001A222E70310(9,3-15): error X3500: array reference cannot be used as an l-value; not natively addressable
+
diff --git a/test/tint/bug/tint/990.wgsl.expected.ir.dxc.hlsl b/test/tint/bug/tint/990.wgsl.expected.ir.dxc.hlsl
index adbb0c1..80f2b43 100644
--- a/test/tint/bug/tint/990.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/bug/tint/990.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,21 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:198 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Loop
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+void f() {
+  int i = 0;
+  {
+    int p = i;
+    while(true) {
+      if (false) {
+      } else {
+        break;
+      }
+      {
+      }
+      continue;
+    }
+  }
+}
+
+[numthreads(1, 1, 1)]
+void unused_entry_point() {
+}
+
diff --git a/test/tint/bug/tint/990.wgsl.expected.ir.fxc.hlsl b/test/tint/bug/tint/990.wgsl.expected.ir.fxc.hlsl
index adbb0c1..80f2b43 100644
--- a/test/tint/bug/tint/990.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/bug/tint/990.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,21 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:198 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Loop
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+void f() {
+  int i = 0;
+  {
+    int p = i;
+    while(true) {
+      if (false) {
+      } else {
+        break;
+      }
+      {
+      }
+      continue;
+    }
+  }
+}
+
+[numthreads(1, 1, 1)]
+void unused_entry_point() {
+}
+
diff --git a/test/tint/bug/tint/992.wgsl.expected.ir.dxc.hlsl b/test/tint/bug/tint/992.wgsl.expected.ir.dxc.hlsl
index c6e1d96..e8690ed 100644
--- a/test/tint/bug/tint/992.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/bug/tint/992.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,16 @@
-SKIP: FAILED
+struct frag_main_outputs {
+  float4 tint_symbol : SV_Target0;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Construct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+
+float4 frag_main_inner() {
+  float b = 0.0f;
+  float3 v = float3((b).xxx);
+  return float4(v, 1.0f);
+}
+
+frag_main_outputs frag_main() {
+  frag_main_outputs v_1 = {frag_main_inner()};
+  return v_1;
+}
+
diff --git a/test/tint/bug/tint/992.wgsl.expected.ir.fxc.hlsl b/test/tint/bug/tint/992.wgsl.expected.ir.fxc.hlsl
index c6e1d96..e8690ed 100644
--- a/test/tint/bug/tint/992.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/bug/tint/992.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,16 @@
-SKIP: FAILED
+struct frag_main_outputs {
+  float4 tint_symbol : SV_Target0;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Construct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+
+float4 frag_main_inner() {
+  float b = 0.0f;
+  float3 v = float3((b).xxx);
+  return float4(v, 1.0f);
+}
+
+frag_main_outputs frag_main() {
+  frag_main_outputs v_1 = {frag_main_inner()};
+  return v_1;
+}
+
diff --git a/test/tint/bug/tint/993.wgsl.expected.ir.dxc.hlsl b/test/tint/bug/tint/993.wgsl.expected.ir.dxc.hlsl
index 11d7ec0..e875379 100644
--- a/test/tint/bug/tint/993.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/bug/tint/993.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,17 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: atomicLoad
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+cbuffer cbuffer_constants : register(b0, space1) {
+  uint4 constants[1];
+};
+RWByteAddressBuffer result : register(u1, space1);
+RWByteAddressBuffer s : register(u0);
+int runTest() {
+  int v = 0;
+  s.InterlockedOr(int(0u), 0, v);
+  return v;
+}
+
+[numthreads(1, 1, 1)]
+void main() {
+  result.Store(0u, uint(runTest()));
+}
+
diff --git a/test/tint/bug/tint/993.wgsl.expected.ir.fxc.hlsl b/test/tint/bug/tint/993.wgsl.expected.ir.fxc.hlsl
index 11d7ec0..e875379 100644
--- a/test/tint/bug/tint/993.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/bug/tint/993.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,17 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: atomicLoad
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+cbuffer cbuffer_constants : register(b0, space1) {
+  uint4 constants[1];
+};
+RWByteAddressBuffer result : register(u1, space1);
+RWByteAddressBuffer s : register(u0);
+int runTest() {
+  int v = 0;
+  s.InterlockedOr(int(0u), 0, v);
+  return v;
+}
+
+[numthreads(1, 1, 1)]
+void main() {
+  result.Store(0u, uint(runTest()));
+}
+
diff --git a/test/tint/bug/tint/998.wgsl.expected.ir.dxc.hlsl b/test/tint/bug/tint/998.wgsl.expected.ir.dxc.hlsl
index 3f437dc..3f7c1d4 100644
--- a/test/tint/bug/tint/998.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/bug/tint/998.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,15 @@
-SKIP: FAILED
+struct S {
+  uint data[3];
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Access
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+
+cbuffer cbuffer_constants : register(b0, space1) {
+  uint4 constants[1];
+};
+RWByteAddressBuffer result : register(u1, space1);
+static S s = (S)0;
+[numthreads(1, 1, 1)]
+void main() {
+  s.data[constants[0u].x] = 0u;
+}
+
diff --git a/test/tint/bug/tint/998.wgsl.expected.ir.fxc.hlsl b/test/tint/bug/tint/998.wgsl.expected.ir.fxc.hlsl
index 3f437dc..90830a3 100644
--- a/test/tint/bug/tint/998.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/bug/tint/998.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,20 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Access
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct S {
+  uint data[3];
+};
+
+
+cbuffer cbuffer_constants : register(b0, space1) {
+  uint4 constants[1];
+};
+RWByteAddressBuffer result : register(u1, space1);
+static S s = (S)0;
+[numthreads(1, 1, 1)]
+void main() {
+  s.data[constants[0u].x] = 0u;
+}
+
+FXC validation failure:
+c:\src\dawn\Shader@0x000001A7A5B63A10(13,3-25): error X3500: array reference cannot be used as an l-value; not natively addressable
+
diff --git a/test/tint/builtins/arrayLength/complex_via_let.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/arrayLength/complex_via_let.wgsl.expected.ir.dxc.hlsl
index 3f437dc..093ff06 100644
--- a/test/tint/builtins/arrayLength/complex_via_let.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/arrayLength/complex_via_let.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,9 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Access
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+ByteAddressBuffer G : register(t0);
+[numthreads(1, 1, 1)]
+void main() {
+  uint v = 0u;
+  G.GetDimensions(v);
+  uint l1 = (v / 4u);
+}
+
diff --git a/test/tint/builtins/arrayLength/complex_via_let.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/arrayLength/complex_via_let.wgsl.expected.ir.fxc.hlsl
index 3f437dc..093ff06 100644
--- a/test/tint/builtins/arrayLength/complex_via_let.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/arrayLength/complex_via_let.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,9 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Access
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+ByteAddressBuffer G : register(t0);
+[numthreads(1, 1, 1)]
+void main() {
+  uint v = 0u;
+  G.GetDimensions(v);
+  uint l1 = (v / 4u);
+}
+
diff --git a/test/tint/builtins/arrayLength/complex_via_let_no_struct.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/arrayLength/complex_via_let_no_struct.wgsl.expected.ir.dxc.hlsl
index 7492c3a..093ff06 100644
--- a/test/tint/builtins/arrayLength/complex_via_let_no_struct.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/arrayLength/complex_via_let_no_struct.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,9 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: arrayLength
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+ByteAddressBuffer G : register(t0);
+[numthreads(1, 1, 1)]
+void main() {
+  uint v = 0u;
+  G.GetDimensions(v);
+  uint l1 = (v / 4u);
+}
+
diff --git a/test/tint/builtins/arrayLength/complex_via_let_no_struct.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/arrayLength/complex_via_let_no_struct.wgsl.expected.ir.fxc.hlsl
index 7492c3a..093ff06 100644
--- a/test/tint/builtins/arrayLength/complex_via_let_no_struct.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/arrayLength/complex_via_let_no_struct.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,9 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: arrayLength
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+ByteAddressBuffer G : register(t0);
+[numthreads(1, 1, 1)]
+void main() {
+  uint v = 0u;
+  G.GetDimensions(v);
+  uint l1 = (v / 4u);
+}
+
diff --git a/test/tint/builtins/arrayLength/deprecated.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/arrayLength/deprecated.wgsl.expected.ir.dxc.hlsl
index 7492c3a..80210d9 100644
--- a/test/tint/builtins/arrayLength/deprecated.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/arrayLength/deprecated.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,12 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: arrayLength
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+ByteAddressBuffer G : register(t0);
+[numthreads(1, 1, 1)]
+void main() {
+  uint v = 0u;
+  G.GetDimensions(v);
+  uint l1 = (v / 4u);
+  uint v_1 = 0u;
+  G.GetDimensions(v_1);
+  uint l2 = (v_1 / 4u);
+}
+
diff --git a/test/tint/builtins/arrayLength/deprecated.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/arrayLength/deprecated.wgsl.expected.ir.fxc.hlsl
index 7492c3a..80210d9 100644
--- a/test/tint/builtins/arrayLength/deprecated.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/arrayLength/deprecated.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,12 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: arrayLength
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+ByteAddressBuffer G : register(t0);
+[numthreads(1, 1, 1)]
+void main() {
+  uint v = 0u;
+  G.GetDimensions(v);
+  uint l1 = (v / 4u);
+  uint v_1 = 0u;
+  G.GetDimensions(v_1);
+  uint l2 = (v_1 / 4u);
+}
+
diff --git a/test/tint/builtins/arrayLength/simple.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/arrayLength/simple.wgsl.expected.ir.dxc.hlsl
index 7492c3a..093ff06 100644
--- a/test/tint/builtins/arrayLength/simple.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/arrayLength/simple.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,9 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: arrayLength
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+ByteAddressBuffer G : register(t0);
+[numthreads(1, 1, 1)]
+void main() {
+  uint v = 0u;
+  G.GetDimensions(v);
+  uint l1 = (v / 4u);
+}
+
diff --git a/test/tint/builtins/arrayLength/simple.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/arrayLength/simple.wgsl.expected.ir.fxc.hlsl
index 7492c3a..093ff06 100644
--- a/test/tint/builtins/arrayLength/simple.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/arrayLength/simple.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,9 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: arrayLength
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+ByteAddressBuffer G : register(t0);
+[numthreads(1, 1, 1)]
+void main() {
+  uint v = 0u;
+  G.GetDimensions(v);
+  uint l1 = (v / 4u);
+}
+
diff --git a/test/tint/builtins/arrayLength/simple_no_struct.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/arrayLength/simple_no_struct.wgsl.expected.ir.dxc.hlsl
index 7492c3a..093ff06 100644
--- a/test/tint/builtins/arrayLength/simple_no_struct.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/arrayLength/simple_no_struct.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,9 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: arrayLength
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+ByteAddressBuffer G : register(t0);
+[numthreads(1, 1, 1)]
+void main() {
+  uint v = 0u;
+  G.GetDimensions(v);
+  uint l1 = (v / 4u);
+}
+
diff --git a/test/tint/builtins/arrayLength/simple_no_struct.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/arrayLength/simple_no_struct.wgsl.expected.ir.fxc.hlsl
index 7492c3a..093ff06 100644
--- a/test/tint/builtins/arrayLength/simple_no_struct.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/arrayLength/simple_no_struct.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,9 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: arrayLength
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+ByteAddressBuffer G : register(t0);
+[numthreads(1, 1, 1)]
+void main() {
+  uint v = 0u;
+  G.GetDimensions(v);
+  uint l1 = (v / 4u);
+}
+
diff --git a/test/tint/builtins/arrayLength/via_let.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/arrayLength/via_let.wgsl.expected.ir.dxc.hlsl
index 3f437dc..093ff06 100644
--- a/test/tint/builtins/arrayLength/via_let.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/arrayLength/via_let.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,9 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Access
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+ByteAddressBuffer G : register(t0);
+[numthreads(1, 1, 1)]
+void main() {
+  uint v = 0u;
+  G.GetDimensions(v);
+  uint l1 = (v / 4u);
+}
+
diff --git a/test/tint/builtins/arrayLength/via_let.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/arrayLength/via_let.wgsl.expected.ir.fxc.hlsl
index 3f437dc..093ff06 100644
--- a/test/tint/builtins/arrayLength/via_let.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/arrayLength/via_let.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,9 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Access
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+ByteAddressBuffer G : register(t0);
+[numthreads(1, 1, 1)]
+void main() {
+  uint v = 0u;
+  G.GetDimensions(v);
+  uint l1 = (v / 4u);
+}
+
diff --git a/test/tint/builtins/arrayLength/via_let_complex.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/arrayLength/via_let_complex.wgsl.expected.ir.dxc.hlsl
index 3f437dc..093ff06 100644
--- a/test/tint/builtins/arrayLength/via_let_complex.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/arrayLength/via_let_complex.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,9 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Access
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+ByteAddressBuffer G : register(t0);
+[numthreads(1, 1, 1)]
+void main() {
+  uint v = 0u;
+  G.GetDimensions(v);
+  uint l1 = (v / 4u);
+}
+
diff --git a/test/tint/builtins/arrayLength/via_let_complex.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/arrayLength/via_let_complex.wgsl.expected.ir.fxc.hlsl
index 3f437dc..093ff06 100644
--- a/test/tint/builtins/arrayLength/via_let_complex.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/arrayLength/via_let_complex.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,9 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Access
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+ByteAddressBuffer G : register(t0);
+[numthreads(1, 1, 1)]
+void main() {
+  uint v = 0u;
+  G.GetDimensions(v);
+  uint l1 = (v / 4u);
+}
+
diff --git a/test/tint/builtins/arrayLength/via_let_complex_no_struct.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/arrayLength/via_let_complex_no_struct.wgsl.expected.ir.dxc.hlsl
index 7492c3a..093ff06 100644
--- a/test/tint/builtins/arrayLength/via_let_complex_no_struct.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/arrayLength/via_let_complex_no_struct.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,9 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: arrayLength
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+ByteAddressBuffer G : register(t0);
+[numthreads(1, 1, 1)]
+void main() {
+  uint v = 0u;
+  G.GetDimensions(v);
+  uint l1 = (v / 4u);
+}
+
diff --git a/test/tint/builtins/arrayLength/via_let_complex_no_struct.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/arrayLength/via_let_complex_no_struct.wgsl.expected.ir.fxc.hlsl
index 7492c3a..093ff06 100644
--- a/test/tint/builtins/arrayLength/via_let_complex_no_struct.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/arrayLength/via_let_complex_no_struct.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,9 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: arrayLength
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+ByteAddressBuffer G : register(t0);
+[numthreads(1, 1, 1)]
+void main() {
+  uint v = 0u;
+  G.GetDimensions(v);
+  uint l1 = (v / 4u);
+}
+
diff --git a/test/tint/builtins/arrayLength/via_let_no_struct.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/arrayLength/via_let_no_struct.wgsl.expected.ir.dxc.hlsl
index 7492c3a..093ff06 100644
--- a/test/tint/builtins/arrayLength/via_let_no_struct.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/arrayLength/via_let_no_struct.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,9 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: arrayLength
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+ByteAddressBuffer G : register(t0);
+[numthreads(1, 1, 1)]
+void main() {
+  uint v = 0u;
+  G.GetDimensions(v);
+  uint l1 = (v / 4u);
+}
+
diff --git a/test/tint/builtins/arrayLength/via_let_no_struct.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/arrayLength/via_let_no_struct.wgsl.expected.ir.fxc.hlsl
index 7492c3a..093ff06 100644
--- a/test/tint/builtins/arrayLength/via_let_no_struct.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/arrayLength/via_let_no_struct.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,9 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: arrayLength
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+ByteAddressBuffer G : register(t0);
+[numthreads(1, 1, 1)]
+void main() {
+  uint v = 0u;
+  G.GetDimensions(v);
+  uint l1 = (v / 4u);
+}
+
diff --git a/test/tint/builtins/atomicStore/array/aliased_arrays.spvasm.expected.ir.dxc.hlsl b/test/tint/builtins/atomicStore/array/aliased_arrays.spvasm.expected.ir.dxc.hlsl
index 6b047b4..b938970 100644
--- a/test/tint/builtins/atomicStore/array/aliased_arrays.spvasm.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/atomicStore/array/aliased_arrays.spvasm.expected.ir.dxc.hlsl
@@ -1,9 +1,74 @@
-SKIP: FAILED
+struct compute_main_inputs {
+  uint local_invocation_index_1_param : SV_GroupIndex;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:287 internal compiler error: Switch() matched no cases. Type: tint::core::ir::FunctionParam
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+
+static uint local_invocation_index_1 = 0u;
+groupshared uint wg[3][2][1];
+uint tint_mod_u32(uint lhs, uint rhs) {
+  uint v = (((rhs == 0u)) ? (1u) : (rhs));
+  return (lhs - ((lhs / v) * v));
+}
+
+uint tint_div_u32(uint lhs, uint rhs) {
+  return (lhs / (((rhs == 0u)) ? (1u) : (rhs)));
+}
+
+void compute_main_inner(uint local_invocation_index_2) {
+  uint idx = 0u;
+  idx = local_invocation_index_2;
+  {
+    while(true) {
+      if (!((idx < 6u))) {
+        break;
+      }
+      uint x_31 = idx;
+      uint x_33 = idx;
+      uint x_35 = idx;
+      uint v_1 = tint_div_u32(x_31, 2u);
+      uint v_2 = tint_mod_u32(x_33, 2u);
+      uint v_3 = 0u;
+      InterlockedExchange(wg[v_1][v_2][tint_mod_u32(x_35, 1u)], 0u, v_3);
+      {
+        idx = (idx + 1u);
+      }
+      continue;
+    }
+  }
+  GroupMemoryBarrierWithGroupSync();
+  uint v_4 = 0u;
+  InterlockedExchange(wg[2][1][0], 1u, v_4);
+}
+
+void compute_main_1() {
+  uint x_57 = local_invocation_index_1;
+  compute_main_inner(x_57);
+}
+
+void compute_main_inner_1(uint local_invocation_index_1_param) {
+  {
+    uint v_5 = 0u;
+    v_5 = local_invocation_index_1_param;
+    while(true) {
+      uint v_6 = v_5;
+      if ((v_6 >= 6u)) {
+        break;
+      }
+      uint v_7 = 0u;
+      InterlockedExchange(wg[(v_6 / 2u)][(v_6 % 2u)][0u], 0u, v_7);
+      {
+        v_5 = (v_6 + 1u);
+      }
+      continue;
+    }
+  }
+  GroupMemoryBarrierWithGroupSync();
+  local_invocation_index_1 = local_invocation_index_1_param;
+  compute_main_1();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main(compute_main_inputs inputs) {
+  compute_main_inner_1(inputs.local_invocation_index_1_param);
+}
+
diff --git a/test/tint/builtins/atomicStore/array/aliased_arrays.spvasm.expected.ir.fxc.hlsl b/test/tint/builtins/atomicStore/array/aliased_arrays.spvasm.expected.ir.fxc.hlsl
index 6b047b4..b938970 100644
--- a/test/tint/builtins/atomicStore/array/aliased_arrays.spvasm.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/atomicStore/array/aliased_arrays.spvasm.expected.ir.fxc.hlsl
@@ -1,9 +1,74 @@
-SKIP: FAILED
+struct compute_main_inputs {
+  uint local_invocation_index_1_param : SV_GroupIndex;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:287 internal compiler error: Switch() matched no cases. Type: tint::core::ir::FunctionParam
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+
+static uint local_invocation_index_1 = 0u;
+groupshared uint wg[3][2][1];
+uint tint_mod_u32(uint lhs, uint rhs) {
+  uint v = (((rhs == 0u)) ? (1u) : (rhs));
+  return (lhs - ((lhs / v) * v));
+}
+
+uint tint_div_u32(uint lhs, uint rhs) {
+  return (lhs / (((rhs == 0u)) ? (1u) : (rhs)));
+}
+
+void compute_main_inner(uint local_invocation_index_2) {
+  uint idx = 0u;
+  idx = local_invocation_index_2;
+  {
+    while(true) {
+      if (!((idx < 6u))) {
+        break;
+      }
+      uint x_31 = idx;
+      uint x_33 = idx;
+      uint x_35 = idx;
+      uint v_1 = tint_div_u32(x_31, 2u);
+      uint v_2 = tint_mod_u32(x_33, 2u);
+      uint v_3 = 0u;
+      InterlockedExchange(wg[v_1][v_2][tint_mod_u32(x_35, 1u)], 0u, v_3);
+      {
+        idx = (idx + 1u);
+      }
+      continue;
+    }
+  }
+  GroupMemoryBarrierWithGroupSync();
+  uint v_4 = 0u;
+  InterlockedExchange(wg[2][1][0], 1u, v_4);
+}
+
+void compute_main_1() {
+  uint x_57 = local_invocation_index_1;
+  compute_main_inner(x_57);
+}
+
+void compute_main_inner_1(uint local_invocation_index_1_param) {
+  {
+    uint v_5 = 0u;
+    v_5 = local_invocation_index_1_param;
+    while(true) {
+      uint v_6 = v_5;
+      if ((v_6 >= 6u)) {
+        break;
+      }
+      uint v_7 = 0u;
+      InterlockedExchange(wg[(v_6 / 2u)][(v_6 % 2u)][0u], 0u, v_7);
+      {
+        v_5 = (v_6 + 1u);
+      }
+      continue;
+    }
+  }
+  GroupMemoryBarrierWithGroupSync();
+  local_invocation_index_1 = local_invocation_index_1_param;
+  compute_main_1();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main(compute_main_inputs inputs) {
+  compute_main_inner_1(inputs.local_invocation_index_1_param);
+}
+
diff --git a/test/tint/builtins/atomicStore/array/aliased_arrays.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/atomicStore/array/aliased_arrays.wgsl.expected.ir.dxc.hlsl
index 9aa6a33..bac8ea1 100644
--- a/test/tint/builtins/atomicStore/array/aliased_arrays.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/atomicStore/array/aliased_arrays.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,33 @@
-SKIP: FAILED
+struct compute_main_inputs {
+  uint tint_local_index : SV_GroupIndex;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: atomicStore
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+
+groupshared uint wg[3][2][1];
+void compute_main_inner(uint tint_local_index) {
+  {
+    uint v = 0u;
+    v = tint_local_index;
+    while(true) {
+      uint v_1 = v;
+      if ((v_1 >= 6u)) {
+        break;
+      }
+      uint v_2 = 0u;
+      InterlockedExchange(wg[(v_1 / 2u)][(v_1 % 2u)][0u], 0u, v_2);
+      {
+        v = (v_1 + 1u);
+      }
+      continue;
+    }
+  }
+  GroupMemoryBarrierWithGroupSync();
+  uint v_3 = 0u;
+  InterlockedExchange(wg[2][1][0], 1u, v_3);
+}
+
+[numthreads(1, 1, 1)]
+void compute_main(compute_main_inputs inputs) {
+  compute_main_inner(inputs.tint_local_index);
+}
+
diff --git a/test/tint/builtins/atomicStore/array/aliased_arrays.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/atomicStore/array/aliased_arrays.wgsl.expected.ir.fxc.hlsl
index 9aa6a33..bac8ea1 100644
--- a/test/tint/builtins/atomicStore/array/aliased_arrays.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/atomicStore/array/aliased_arrays.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,33 @@
-SKIP: FAILED
+struct compute_main_inputs {
+  uint tint_local_index : SV_GroupIndex;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: atomicStore
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+
+groupshared uint wg[3][2][1];
+void compute_main_inner(uint tint_local_index) {
+  {
+    uint v = 0u;
+    v = tint_local_index;
+    while(true) {
+      uint v_1 = v;
+      if ((v_1 >= 6u)) {
+        break;
+      }
+      uint v_2 = 0u;
+      InterlockedExchange(wg[(v_1 / 2u)][(v_1 % 2u)][0u], 0u, v_2);
+      {
+        v = (v_1 + 1u);
+      }
+      continue;
+    }
+  }
+  GroupMemoryBarrierWithGroupSync();
+  uint v_3 = 0u;
+  InterlockedExchange(wg[2][1][0], 1u, v_3);
+}
+
+[numthreads(1, 1, 1)]
+void compute_main(compute_main_inputs inputs) {
+  compute_main_inner(inputs.tint_local_index);
+}
+
diff --git a/test/tint/builtins/atomicStore/array/array.spvasm.expected.ir.dxc.hlsl b/test/tint/builtins/atomicStore/array/array.spvasm.expected.ir.dxc.hlsl
index 6b047b4..ed565ae 100644
--- a/test/tint/builtins/atomicStore/array/array.spvasm.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/atomicStore/array/array.spvasm.expected.ir.dxc.hlsl
@@ -1,9 +1,61 @@
-SKIP: FAILED
+struct compute_main_inputs {
+  uint local_invocation_index_1_param : SV_GroupIndex;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:287 internal compiler error: Switch() matched no cases. Type: tint::core::ir::FunctionParam
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+
+static uint local_invocation_index_1 = 0u;
+groupshared uint wg[4];
+void compute_main_inner(uint local_invocation_index_2) {
+  uint idx = 0u;
+  idx = local_invocation_index_2;
+  {
+    while(true) {
+      if (!((idx < 4u))) {
+        break;
+      }
+      uint x_26 = idx;
+      uint v = 0u;
+      InterlockedExchange(wg[x_26], 0u, v);
+      {
+        idx = (idx + 1u);
+      }
+      continue;
+    }
+  }
+  GroupMemoryBarrierWithGroupSync();
+  uint v_1 = 0u;
+  InterlockedExchange(wg[1], 1u, v_1);
+}
+
+void compute_main_1() {
+  uint x_47 = local_invocation_index_1;
+  compute_main_inner(x_47);
+}
+
+void compute_main_inner_1(uint local_invocation_index_1_param) {
+  {
+    uint v_2 = 0u;
+    v_2 = local_invocation_index_1_param;
+    while(true) {
+      uint v_3 = v_2;
+      if ((v_3 >= 4u)) {
+        break;
+      }
+      uint v_4 = 0u;
+      InterlockedExchange(wg[v_3], 0u, v_4);
+      {
+        v_2 = (v_3 + 1u);
+      }
+      continue;
+    }
+  }
+  GroupMemoryBarrierWithGroupSync();
+  local_invocation_index_1 = local_invocation_index_1_param;
+  compute_main_1();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main(compute_main_inputs inputs) {
+  compute_main_inner_1(inputs.local_invocation_index_1_param);
+}
+
diff --git a/test/tint/builtins/atomicStore/array/array.spvasm.expected.ir.fxc.hlsl b/test/tint/builtins/atomicStore/array/array.spvasm.expected.ir.fxc.hlsl
index 6b047b4..ed565ae 100644
--- a/test/tint/builtins/atomicStore/array/array.spvasm.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/atomicStore/array/array.spvasm.expected.ir.fxc.hlsl
@@ -1,9 +1,61 @@
-SKIP: FAILED
+struct compute_main_inputs {
+  uint local_invocation_index_1_param : SV_GroupIndex;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:287 internal compiler error: Switch() matched no cases. Type: tint::core::ir::FunctionParam
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+
+static uint local_invocation_index_1 = 0u;
+groupshared uint wg[4];
+void compute_main_inner(uint local_invocation_index_2) {
+  uint idx = 0u;
+  idx = local_invocation_index_2;
+  {
+    while(true) {
+      if (!((idx < 4u))) {
+        break;
+      }
+      uint x_26 = idx;
+      uint v = 0u;
+      InterlockedExchange(wg[x_26], 0u, v);
+      {
+        idx = (idx + 1u);
+      }
+      continue;
+    }
+  }
+  GroupMemoryBarrierWithGroupSync();
+  uint v_1 = 0u;
+  InterlockedExchange(wg[1], 1u, v_1);
+}
+
+void compute_main_1() {
+  uint x_47 = local_invocation_index_1;
+  compute_main_inner(x_47);
+}
+
+void compute_main_inner_1(uint local_invocation_index_1_param) {
+  {
+    uint v_2 = 0u;
+    v_2 = local_invocation_index_1_param;
+    while(true) {
+      uint v_3 = v_2;
+      if ((v_3 >= 4u)) {
+        break;
+      }
+      uint v_4 = 0u;
+      InterlockedExchange(wg[v_3], 0u, v_4);
+      {
+        v_2 = (v_3 + 1u);
+      }
+      continue;
+    }
+  }
+  GroupMemoryBarrierWithGroupSync();
+  local_invocation_index_1 = local_invocation_index_1_param;
+  compute_main_1();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main(compute_main_inputs inputs) {
+  compute_main_inner_1(inputs.local_invocation_index_1_param);
+}
+
diff --git a/test/tint/builtins/atomicStore/array/array.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/atomicStore/array/array.wgsl.expected.ir.dxc.hlsl
index 9aa6a33..4c90716 100644
--- a/test/tint/builtins/atomicStore/array/array.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/atomicStore/array/array.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,33 @@
-SKIP: FAILED
+struct compute_main_inputs {
+  uint tint_local_index : SV_GroupIndex;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: atomicStore
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+
+groupshared uint wg[4];
+void compute_main_inner(uint tint_local_index) {
+  {
+    uint v = 0u;
+    v = tint_local_index;
+    while(true) {
+      uint v_1 = v;
+      if ((v_1 >= 4u)) {
+        break;
+      }
+      uint v_2 = 0u;
+      InterlockedExchange(wg[v_1], 0u, v_2);
+      {
+        v = (v_1 + 1u);
+      }
+      continue;
+    }
+  }
+  GroupMemoryBarrierWithGroupSync();
+  uint v_3 = 0u;
+  InterlockedExchange(wg[1], 1u, v_3);
+}
+
+[numthreads(1, 1, 1)]
+void compute_main(compute_main_inputs inputs) {
+  compute_main_inner(inputs.tint_local_index);
+}
+
diff --git a/test/tint/builtins/atomicStore/array/array.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/atomicStore/array/array.wgsl.expected.ir.fxc.hlsl
index 9aa6a33..4c90716 100644
--- a/test/tint/builtins/atomicStore/array/array.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/atomicStore/array/array.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,33 @@
-SKIP: FAILED
+struct compute_main_inputs {
+  uint tint_local_index : SV_GroupIndex;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: atomicStore
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+
+groupshared uint wg[4];
+void compute_main_inner(uint tint_local_index) {
+  {
+    uint v = 0u;
+    v = tint_local_index;
+    while(true) {
+      uint v_1 = v;
+      if ((v_1 >= 4u)) {
+        break;
+      }
+      uint v_2 = 0u;
+      InterlockedExchange(wg[v_1], 0u, v_2);
+      {
+        v = (v_1 + 1u);
+      }
+      continue;
+    }
+  }
+  GroupMemoryBarrierWithGroupSync();
+  uint v_3 = 0u;
+  InterlockedExchange(wg[1], 1u, v_3);
+}
+
+[numthreads(1, 1, 1)]
+void compute_main(compute_main_inputs inputs) {
+  compute_main_inner(inputs.tint_local_index);
+}
+
diff --git a/test/tint/builtins/atomicStore/array/arrays.spvasm.expected.ir.dxc.hlsl b/test/tint/builtins/atomicStore/array/arrays.spvasm.expected.ir.dxc.hlsl
index 6b047b4..b938970 100644
--- a/test/tint/builtins/atomicStore/array/arrays.spvasm.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/atomicStore/array/arrays.spvasm.expected.ir.dxc.hlsl
@@ -1,9 +1,74 @@
-SKIP: FAILED
+struct compute_main_inputs {
+  uint local_invocation_index_1_param : SV_GroupIndex;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:287 internal compiler error: Switch() matched no cases. Type: tint::core::ir::FunctionParam
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+
+static uint local_invocation_index_1 = 0u;
+groupshared uint wg[3][2][1];
+uint tint_mod_u32(uint lhs, uint rhs) {
+  uint v = (((rhs == 0u)) ? (1u) : (rhs));
+  return (lhs - ((lhs / v) * v));
+}
+
+uint tint_div_u32(uint lhs, uint rhs) {
+  return (lhs / (((rhs == 0u)) ? (1u) : (rhs)));
+}
+
+void compute_main_inner(uint local_invocation_index_2) {
+  uint idx = 0u;
+  idx = local_invocation_index_2;
+  {
+    while(true) {
+      if (!((idx < 6u))) {
+        break;
+      }
+      uint x_31 = idx;
+      uint x_33 = idx;
+      uint x_35 = idx;
+      uint v_1 = tint_div_u32(x_31, 2u);
+      uint v_2 = tint_mod_u32(x_33, 2u);
+      uint v_3 = 0u;
+      InterlockedExchange(wg[v_1][v_2][tint_mod_u32(x_35, 1u)], 0u, v_3);
+      {
+        idx = (idx + 1u);
+      }
+      continue;
+    }
+  }
+  GroupMemoryBarrierWithGroupSync();
+  uint v_4 = 0u;
+  InterlockedExchange(wg[2][1][0], 1u, v_4);
+}
+
+void compute_main_1() {
+  uint x_57 = local_invocation_index_1;
+  compute_main_inner(x_57);
+}
+
+void compute_main_inner_1(uint local_invocation_index_1_param) {
+  {
+    uint v_5 = 0u;
+    v_5 = local_invocation_index_1_param;
+    while(true) {
+      uint v_6 = v_5;
+      if ((v_6 >= 6u)) {
+        break;
+      }
+      uint v_7 = 0u;
+      InterlockedExchange(wg[(v_6 / 2u)][(v_6 % 2u)][0u], 0u, v_7);
+      {
+        v_5 = (v_6 + 1u);
+      }
+      continue;
+    }
+  }
+  GroupMemoryBarrierWithGroupSync();
+  local_invocation_index_1 = local_invocation_index_1_param;
+  compute_main_1();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main(compute_main_inputs inputs) {
+  compute_main_inner_1(inputs.local_invocation_index_1_param);
+}
+
diff --git a/test/tint/builtins/atomicStore/array/arrays.spvasm.expected.ir.fxc.hlsl b/test/tint/builtins/atomicStore/array/arrays.spvasm.expected.ir.fxc.hlsl
index 6b047b4..b938970 100644
--- a/test/tint/builtins/atomicStore/array/arrays.spvasm.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/atomicStore/array/arrays.spvasm.expected.ir.fxc.hlsl
@@ -1,9 +1,74 @@
-SKIP: FAILED
+struct compute_main_inputs {
+  uint local_invocation_index_1_param : SV_GroupIndex;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:287 internal compiler error: Switch() matched no cases. Type: tint::core::ir::FunctionParam
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+
+static uint local_invocation_index_1 = 0u;
+groupshared uint wg[3][2][1];
+uint tint_mod_u32(uint lhs, uint rhs) {
+  uint v = (((rhs == 0u)) ? (1u) : (rhs));
+  return (lhs - ((lhs / v) * v));
+}
+
+uint tint_div_u32(uint lhs, uint rhs) {
+  return (lhs / (((rhs == 0u)) ? (1u) : (rhs)));
+}
+
+void compute_main_inner(uint local_invocation_index_2) {
+  uint idx = 0u;
+  idx = local_invocation_index_2;
+  {
+    while(true) {
+      if (!((idx < 6u))) {
+        break;
+      }
+      uint x_31 = idx;
+      uint x_33 = idx;
+      uint x_35 = idx;
+      uint v_1 = tint_div_u32(x_31, 2u);
+      uint v_2 = tint_mod_u32(x_33, 2u);
+      uint v_3 = 0u;
+      InterlockedExchange(wg[v_1][v_2][tint_mod_u32(x_35, 1u)], 0u, v_3);
+      {
+        idx = (idx + 1u);
+      }
+      continue;
+    }
+  }
+  GroupMemoryBarrierWithGroupSync();
+  uint v_4 = 0u;
+  InterlockedExchange(wg[2][1][0], 1u, v_4);
+}
+
+void compute_main_1() {
+  uint x_57 = local_invocation_index_1;
+  compute_main_inner(x_57);
+}
+
+void compute_main_inner_1(uint local_invocation_index_1_param) {
+  {
+    uint v_5 = 0u;
+    v_5 = local_invocation_index_1_param;
+    while(true) {
+      uint v_6 = v_5;
+      if ((v_6 >= 6u)) {
+        break;
+      }
+      uint v_7 = 0u;
+      InterlockedExchange(wg[(v_6 / 2u)][(v_6 % 2u)][0u], 0u, v_7);
+      {
+        v_5 = (v_6 + 1u);
+      }
+      continue;
+    }
+  }
+  GroupMemoryBarrierWithGroupSync();
+  local_invocation_index_1 = local_invocation_index_1_param;
+  compute_main_1();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main(compute_main_inputs inputs) {
+  compute_main_inner_1(inputs.local_invocation_index_1_param);
+}
+
diff --git a/test/tint/builtins/atomicStore/array/arrays.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/atomicStore/array/arrays.wgsl.expected.ir.dxc.hlsl
index 9aa6a33..bac8ea1 100644
--- a/test/tint/builtins/atomicStore/array/arrays.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/atomicStore/array/arrays.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,33 @@
-SKIP: FAILED
+struct compute_main_inputs {
+  uint tint_local_index : SV_GroupIndex;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: atomicStore
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+
+groupshared uint wg[3][2][1];
+void compute_main_inner(uint tint_local_index) {
+  {
+    uint v = 0u;
+    v = tint_local_index;
+    while(true) {
+      uint v_1 = v;
+      if ((v_1 >= 6u)) {
+        break;
+      }
+      uint v_2 = 0u;
+      InterlockedExchange(wg[(v_1 / 2u)][(v_1 % 2u)][0u], 0u, v_2);
+      {
+        v = (v_1 + 1u);
+      }
+      continue;
+    }
+  }
+  GroupMemoryBarrierWithGroupSync();
+  uint v_3 = 0u;
+  InterlockedExchange(wg[2][1][0], 1u, v_3);
+}
+
+[numthreads(1, 1, 1)]
+void compute_main(compute_main_inputs inputs) {
+  compute_main_inner(inputs.tint_local_index);
+}
+
diff --git a/test/tint/builtins/atomicStore/array/arrays.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/atomicStore/array/arrays.wgsl.expected.ir.fxc.hlsl
index 9aa6a33..bac8ea1 100644
--- a/test/tint/builtins/atomicStore/array/arrays.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/atomicStore/array/arrays.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,33 @@
-SKIP: FAILED
+struct compute_main_inputs {
+  uint tint_local_index : SV_GroupIndex;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: atomicStore
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+
+groupshared uint wg[3][2][1];
+void compute_main_inner(uint tint_local_index) {
+  {
+    uint v = 0u;
+    v = tint_local_index;
+    while(true) {
+      uint v_1 = v;
+      if ((v_1 >= 6u)) {
+        break;
+      }
+      uint v_2 = 0u;
+      InterlockedExchange(wg[(v_1 / 2u)][(v_1 % 2u)][0u], 0u, v_2);
+      {
+        v = (v_1 + 1u);
+      }
+      continue;
+    }
+  }
+  GroupMemoryBarrierWithGroupSync();
+  uint v_3 = 0u;
+  InterlockedExchange(wg[2][1][0], 1u, v_3);
+}
+
+[numthreads(1, 1, 1)]
+void compute_main(compute_main_inputs inputs) {
+  compute_main_inner(inputs.tint_local_index);
+}
+
diff --git a/test/tint/builtins/atomicStore/struct/array_of_struct.spvasm.expected.ir.dxc.hlsl b/test/tint/builtins/atomicStore/struct/array_of_struct.spvasm.expected.ir.dxc.hlsl
index 6b047b4..f68450d 100644
--- a/test/tint/builtins/atomicStore/struct/array_of_struct.spvasm.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/atomicStore/struct/array_of_struct.spvasm.expected.ir.dxc.hlsl
@@ -1,9 +1,71 @@
-SKIP: FAILED
+struct S_atomic {
+  int x;
+  uint a;
+  uint y;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:287 internal compiler error: Switch() matched no cases. Type: tint::core::ir::FunctionParam
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct compute_main_inputs {
+  uint local_invocation_index_1_param : SV_GroupIndex;
+};
+
+
+static uint local_invocation_index_1 = 0u;
+groupshared S_atomic wg[10];
+void compute_main_inner(uint local_invocation_index_2) {
+  uint idx = 0u;
+  idx = local_invocation_index_2;
+  {
+    while(true) {
+      if (!((idx < 10u))) {
+        break;
+      }
+      uint x_28 = idx;
+      wg[x_28].x = 0;
+      uint v = 0u;
+      InterlockedExchange(wg[x_28].a, 0u, v);
+      wg[x_28].y = 0u;
+      {
+        idx = (idx + 1u);
+      }
+      continue;
+    }
+  }
+  GroupMemoryBarrierWithGroupSync();
+  uint v_1 = 0u;
+  InterlockedExchange(wg[4].a, 1u, v_1);
+}
+
+void compute_main_1() {
+  uint x_53 = local_invocation_index_1;
+  compute_main_inner(x_53);
+}
+
+void compute_main_inner_1(uint local_invocation_index_1_param) {
+  {
+    uint v_2 = 0u;
+    v_2 = local_invocation_index_1_param;
+    while(true) {
+      uint v_3 = v_2;
+      if ((v_3 >= 10u)) {
+        break;
+      }
+      wg[v_3].x = 0;
+      uint v_4 = 0u;
+      InterlockedExchange(wg[v_3].a, 0u, v_4);
+      wg[v_3].y = 0u;
+      {
+        v_2 = (v_3 + 1u);
+      }
+      continue;
+    }
+  }
+  GroupMemoryBarrierWithGroupSync();
+  local_invocation_index_1 = local_invocation_index_1_param;
+  compute_main_1();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main(compute_main_inputs inputs) {
+  compute_main_inner_1(inputs.local_invocation_index_1_param);
+}
+
diff --git a/test/tint/builtins/atomicStore/struct/array_of_struct.spvasm.expected.ir.fxc.hlsl b/test/tint/builtins/atomicStore/struct/array_of_struct.spvasm.expected.ir.fxc.hlsl
index 6b047b4..f68450d 100644
--- a/test/tint/builtins/atomicStore/struct/array_of_struct.spvasm.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/atomicStore/struct/array_of_struct.spvasm.expected.ir.fxc.hlsl
@@ -1,9 +1,71 @@
-SKIP: FAILED
+struct S_atomic {
+  int x;
+  uint a;
+  uint y;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:287 internal compiler error: Switch() matched no cases. Type: tint::core::ir::FunctionParam
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct compute_main_inputs {
+  uint local_invocation_index_1_param : SV_GroupIndex;
+};
+
+
+static uint local_invocation_index_1 = 0u;
+groupshared S_atomic wg[10];
+void compute_main_inner(uint local_invocation_index_2) {
+  uint idx = 0u;
+  idx = local_invocation_index_2;
+  {
+    while(true) {
+      if (!((idx < 10u))) {
+        break;
+      }
+      uint x_28 = idx;
+      wg[x_28].x = 0;
+      uint v = 0u;
+      InterlockedExchange(wg[x_28].a, 0u, v);
+      wg[x_28].y = 0u;
+      {
+        idx = (idx + 1u);
+      }
+      continue;
+    }
+  }
+  GroupMemoryBarrierWithGroupSync();
+  uint v_1 = 0u;
+  InterlockedExchange(wg[4].a, 1u, v_1);
+}
+
+void compute_main_1() {
+  uint x_53 = local_invocation_index_1;
+  compute_main_inner(x_53);
+}
+
+void compute_main_inner_1(uint local_invocation_index_1_param) {
+  {
+    uint v_2 = 0u;
+    v_2 = local_invocation_index_1_param;
+    while(true) {
+      uint v_3 = v_2;
+      if ((v_3 >= 10u)) {
+        break;
+      }
+      wg[v_3].x = 0;
+      uint v_4 = 0u;
+      InterlockedExchange(wg[v_3].a, 0u, v_4);
+      wg[v_3].y = 0u;
+      {
+        v_2 = (v_3 + 1u);
+      }
+      continue;
+    }
+  }
+  GroupMemoryBarrierWithGroupSync();
+  local_invocation_index_1 = local_invocation_index_1_param;
+  compute_main_1();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main(compute_main_inputs inputs) {
+  compute_main_inner_1(inputs.local_invocation_index_1_param);
+}
+
diff --git a/test/tint/builtins/atomicStore/struct/array_of_struct.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/atomicStore/struct/array_of_struct.wgsl.expected.ir.dxc.hlsl
index 9aa6a33..edd0e24 100644
--- a/test/tint/builtins/atomicStore/struct/array_of_struct.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/atomicStore/struct/array_of_struct.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,41 @@
-SKIP: FAILED
+struct S {
+  int x;
+  uint a;
+  uint y;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: atomicStore
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct compute_main_inputs {
+  uint tint_local_index : SV_GroupIndex;
+};
+
+
+groupshared S wg[10];
+void compute_main_inner(uint tint_local_index) {
+  {
+    uint v = 0u;
+    v = tint_local_index;
+    while(true) {
+      uint v_1 = v;
+      if ((v_1 >= 10u)) {
+        break;
+      }
+      wg[v_1].x = 0;
+      uint v_2 = 0u;
+      InterlockedExchange(wg[v_1].a, 0u, v_2);
+      wg[v_1].y = 0u;
+      {
+        v = (v_1 + 1u);
+      }
+      continue;
+    }
+  }
+  GroupMemoryBarrierWithGroupSync();
+  uint v_3 = 0u;
+  InterlockedExchange(wg[4].a, 1u, v_3);
+}
+
+[numthreads(1, 1, 1)]
+void compute_main(compute_main_inputs inputs) {
+  compute_main_inner(inputs.tint_local_index);
+}
+
diff --git a/test/tint/builtins/atomicStore/struct/array_of_struct.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/atomicStore/struct/array_of_struct.wgsl.expected.ir.fxc.hlsl
index 9aa6a33..edd0e24 100644
--- a/test/tint/builtins/atomicStore/struct/array_of_struct.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/atomicStore/struct/array_of_struct.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,41 @@
-SKIP: FAILED
+struct S {
+  int x;
+  uint a;
+  uint y;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: atomicStore
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct compute_main_inputs {
+  uint tint_local_index : SV_GroupIndex;
+};
+
+
+groupshared S wg[10];
+void compute_main_inner(uint tint_local_index) {
+  {
+    uint v = 0u;
+    v = tint_local_index;
+    while(true) {
+      uint v_1 = v;
+      if ((v_1 >= 10u)) {
+        break;
+      }
+      wg[v_1].x = 0;
+      uint v_2 = 0u;
+      InterlockedExchange(wg[v_1].a, 0u, v_2);
+      wg[v_1].y = 0u;
+      {
+        v = (v_1 + 1u);
+      }
+      continue;
+    }
+  }
+  GroupMemoryBarrierWithGroupSync();
+  uint v_3 = 0u;
+  InterlockedExchange(wg[4].a, 1u, v_3);
+}
+
+[numthreads(1, 1, 1)]
+void compute_main(compute_main_inputs inputs) {
+  compute_main_inner(inputs.tint_local_index);
+}
+
diff --git a/test/tint/builtins/atomicStore/struct/flat_multiple_atomics.spvasm.expected.ir.dxc.hlsl b/test/tint/builtins/atomicStore/struct/flat_multiple_atomics.spvasm.expected.ir.dxc.hlsl
index 3f437dc..7323335 100644
--- a/test/tint/builtins/atomicStore/struct/flat_multiple_atomics.spvasm.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/atomicStore/struct/flat_multiple_atomics.spvasm.expected.ir.dxc.hlsl
@@ -1,9 +1,49 @@
-SKIP: FAILED
+struct S_atomic {
+  int x;
+  uint a;
+  uint b;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Access
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct compute_main_inputs {
+  uint local_invocation_index_1_param : SV_GroupIndex;
+};
+
+
+static uint local_invocation_index_1 = 0u;
+groupshared S_atomic wg;
+void compute_main_inner(uint local_invocation_index_2) {
+  wg.x = 0;
+  uint v = 0u;
+  InterlockedExchange(wg.a, 0u, v);
+  uint v_1 = 0u;
+  InterlockedExchange(wg.b, 0u, v_1);
+  GroupMemoryBarrierWithGroupSync();
+  uint v_2 = 0u;
+  InterlockedExchange(wg.a, 1u, v_2);
+  uint v_3 = 0u;
+  InterlockedExchange(wg.b, 2u, v_3);
+}
+
+void compute_main_1() {
+  uint x_39 = local_invocation_index_1;
+  compute_main_inner(x_39);
+}
+
+void compute_main_inner_1(uint local_invocation_index_1_param) {
+  if ((local_invocation_index_1_param == 0u)) {
+    wg.x = 0;
+    uint v_4 = 0u;
+    InterlockedExchange(wg.a, 0u, v_4);
+    uint v_5 = 0u;
+    InterlockedExchange(wg.b, 0u, v_5);
+  }
+  GroupMemoryBarrierWithGroupSync();
+  local_invocation_index_1 = local_invocation_index_1_param;
+  compute_main_1();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main(compute_main_inputs inputs) {
+  compute_main_inner_1(inputs.local_invocation_index_1_param);
+}
+
diff --git a/test/tint/builtins/atomicStore/struct/flat_multiple_atomics.spvasm.expected.ir.fxc.hlsl b/test/tint/builtins/atomicStore/struct/flat_multiple_atomics.spvasm.expected.ir.fxc.hlsl
index 3f437dc..7323335 100644
--- a/test/tint/builtins/atomicStore/struct/flat_multiple_atomics.spvasm.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/atomicStore/struct/flat_multiple_atomics.spvasm.expected.ir.fxc.hlsl
@@ -1,9 +1,49 @@
-SKIP: FAILED
+struct S_atomic {
+  int x;
+  uint a;
+  uint b;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Access
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct compute_main_inputs {
+  uint local_invocation_index_1_param : SV_GroupIndex;
+};
+
+
+static uint local_invocation_index_1 = 0u;
+groupshared S_atomic wg;
+void compute_main_inner(uint local_invocation_index_2) {
+  wg.x = 0;
+  uint v = 0u;
+  InterlockedExchange(wg.a, 0u, v);
+  uint v_1 = 0u;
+  InterlockedExchange(wg.b, 0u, v_1);
+  GroupMemoryBarrierWithGroupSync();
+  uint v_2 = 0u;
+  InterlockedExchange(wg.a, 1u, v_2);
+  uint v_3 = 0u;
+  InterlockedExchange(wg.b, 2u, v_3);
+}
+
+void compute_main_1() {
+  uint x_39 = local_invocation_index_1;
+  compute_main_inner(x_39);
+}
+
+void compute_main_inner_1(uint local_invocation_index_1_param) {
+  if ((local_invocation_index_1_param == 0u)) {
+    wg.x = 0;
+    uint v_4 = 0u;
+    InterlockedExchange(wg.a, 0u, v_4);
+    uint v_5 = 0u;
+    InterlockedExchange(wg.b, 0u, v_5);
+  }
+  GroupMemoryBarrierWithGroupSync();
+  local_invocation_index_1 = local_invocation_index_1_param;
+  compute_main_1();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main(compute_main_inputs inputs) {
+  compute_main_inner_1(inputs.local_invocation_index_1_param);
+}
+
diff --git a/test/tint/builtins/atomicStore/struct/flat_multiple_atomics.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/atomicStore/struct/flat_multiple_atomics.wgsl.expected.ir.dxc.hlsl
index 9aa6a33..1d7fa6a 100644
--- a/test/tint/builtins/atomicStore/struct/flat_multiple_atomics.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/atomicStore/struct/flat_multiple_atomics.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,32 @@
-SKIP: FAILED
+struct S {
+  int x;
+  uint a;
+  uint b;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: atomicStore
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct compute_main_inputs {
+  uint tint_local_index : SV_GroupIndex;
+};
+
+
+groupshared S wg;
+void compute_main_inner(uint tint_local_index) {
+  if ((tint_local_index == 0u)) {
+    wg.x = 0;
+    uint v = 0u;
+    InterlockedExchange(wg.a, 0u, v);
+    uint v_1 = 0u;
+    InterlockedExchange(wg.b, 0u, v_1);
+  }
+  GroupMemoryBarrierWithGroupSync();
+  uint v_2 = 0u;
+  InterlockedExchange(wg.a, 1u, v_2);
+  uint v_3 = 0u;
+  InterlockedExchange(wg.b, 2u, v_3);
+}
+
+[numthreads(1, 1, 1)]
+void compute_main(compute_main_inputs inputs) {
+  compute_main_inner(inputs.tint_local_index);
+}
+
diff --git a/test/tint/builtins/atomicStore/struct/flat_multiple_atomics.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/atomicStore/struct/flat_multiple_atomics.wgsl.expected.ir.fxc.hlsl
index 9aa6a33..1d7fa6a 100644
--- a/test/tint/builtins/atomicStore/struct/flat_multiple_atomics.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/atomicStore/struct/flat_multiple_atomics.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,32 @@
-SKIP: FAILED
+struct S {
+  int x;
+  uint a;
+  uint b;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: atomicStore
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct compute_main_inputs {
+  uint tint_local_index : SV_GroupIndex;
+};
+
+
+groupshared S wg;
+void compute_main_inner(uint tint_local_index) {
+  if ((tint_local_index == 0u)) {
+    wg.x = 0;
+    uint v = 0u;
+    InterlockedExchange(wg.a, 0u, v);
+    uint v_1 = 0u;
+    InterlockedExchange(wg.b, 0u, v_1);
+  }
+  GroupMemoryBarrierWithGroupSync();
+  uint v_2 = 0u;
+  InterlockedExchange(wg.a, 1u, v_2);
+  uint v_3 = 0u;
+  InterlockedExchange(wg.b, 2u, v_3);
+}
+
+[numthreads(1, 1, 1)]
+void compute_main(compute_main_inputs inputs) {
+  compute_main_inner(inputs.tint_local_index);
+}
+
diff --git a/test/tint/builtins/atomicStore/struct/flat_single_atomic.spvasm.expected.ir.dxc.hlsl b/test/tint/builtins/atomicStore/struct/flat_single_atomic.spvasm.expected.ir.dxc.hlsl
index 3f437dc..a1c3e3a 100644
--- a/test/tint/builtins/atomicStore/struct/flat_single_atomic.spvasm.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/atomicStore/struct/flat_single_atomic.spvasm.expected.ir.dxc.hlsl
@@ -1,9 +1,45 @@
-SKIP: FAILED
+struct S_atomic {
+  int x;
+  uint a;
+  uint y;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Access
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct compute_main_inputs {
+  uint local_invocation_index_1_param : SV_GroupIndex;
+};
+
+
+static uint local_invocation_index_1 = 0u;
+groupshared S_atomic wg;
+void compute_main_inner(uint local_invocation_index_2) {
+  wg.x = 0;
+  uint v = 0u;
+  InterlockedExchange(wg.a, 0u, v);
+  wg.y = 0u;
+  GroupMemoryBarrierWithGroupSync();
+  uint v_1 = 0u;
+  InterlockedExchange(wg.a, 1u, v_1);
+}
+
+void compute_main_1() {
+  uint x_35 = local_invocation_index_1;
+  compute_main_inner(x_35);
+}
+
+void compute_main_inner_1(uint local_invocation_index_1_param) {
+  if ((local_invocation_index_1_param == 0u)) {
+    wg.x = 0;
+    uint v_2 = 0u;
+    InterlockedExchange(wg.a, 0u, v_2);
+    wg.y = 0u;
+  }
+  GroupMemoryBarrierWithGroupSync();
+  local_invocation_index_1 = local_invocation_index_1_param;
+  compute_main_1();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main(compute_main_inputs inputs) {
+  compute_main_inner_1(inputs.local_invocation_index_1_param);
+}
+
diff --git a/test/tint/builtins/atomicStore/struct/flat_single_atomic.spvasm.expected.ir.fxc.hlsl b/test/tint/builtins/atomicStore/struct/flat_single_atomic.spvasm.expected.ir.fxc.hlsl
index 3f437dc..a1c3e3a 100644
--- a/test/tint/builtins/atomicStore/struct/flat_single_atomic.spvasm.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/atomicStore/struct/flat_single_atomic.spvasm.expected.ir.fxc.hlsl
@@ -1,9 +1,45 @@
-SKIP: FAILED
+struct S_atomic {
+  int x;
+  uint a;
+  uint y;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Access
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct compute_main_inputs {
+  uint local_invocation_index_1_param : SV_GroupIndex;
+};
+
+
+static uint local_invocation_index_1 = 0u;
+groupshared S_atomic wg;
+void compute_main_inner(uint local_invocation_index_2) {
+  wg.x = 0;
+  uint v = 0u;
+  InterlockedExchange(wg.a, 0u, v);
+  wg.y = 0u;
+  GroupMemoryBarrierWithGroupSync();
+  uint v_1 = 0u;
+  InterlockedExchange(wg.a, 1u, v_1);
+}
+
+void compute_main_1() {
+  uint x_35 = local_invocation_index_1;
+  compute_main_inner(x_35);
+}
+
+void compute_main_inner_1(uint local_invocation_index_1_param) {
+  if ((local_invocation_index_1_param == 0u)) {
+    wg.x = 0;
+    uint v_2 = 0u;
+    InterlockedExchange(wg.a, 0u, v_2);
+    wg.y = 0u;
+  }
+  GroupMemoryBarrierWithGroupSync();
+  local_invocation_index_1 = local_invocation_index_1_param;
+  compute_main_1();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main(compute_main_inputs inputs) {
+  compute_main_inner_1(inputs.local_invocation_index_1_param);
+}
+
diff --git a/test/tint/builtins/atomicStore/struct/flat_single_atomic.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/atomicStore/struct/flat_single_atomic.wgsl.expected.ir.dxc.hlsl
index 9aa6a33..c29b6ec 100644
--- a/test/tint/builtins/atomicStore/struct/flat_single_atomic.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/atomicStore/struct/flat_single_atomic.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,29 @@
-SKIP: FAILED
+struct S {
+  int x;
+  uint a;
+  uint y;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: atomicStore
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct compute_main_inputs {
+  uint tint_local_index : SV_GroupIndex;
+};
+
+
+groupshared S wg;
+void compute_main_inner(uint tint_local_index) {
+  if ((tint_local_index == 0u)) {
+    wg.x = 0;
+    uint v = 0u;
+    InterlockedExchange(wg.a, 0u, v);
+    wg.y = 0u;
+  }
+  GroupMemoryBarrierWithGroupSync();
+  uint v_1 = 0u;
+  InterlockedExchange(wg.a, 1u, v_1);
+}
+
+[numthreads(1, 1, 1)]
+void compute_main(compute_main_inputs inputs) {
+  compute_main_inner(inputs.tint_local_index);
+}
+
diff --git a/test/tint/builtins/atomicStore/struct/flat_single_atomic.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/atomicStore/struct/flat_single_atomic.wgsl.expected.ir.fxc.hlsl
index 9aa6a33..c29b6ec 100644
--- a/test/tint/builtins/atomicStore/struct/flat_single_atomic.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/atomicStore/struct/flat_single_atomic.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,29 @@
-SKIP: FAILED
+struct S {
+  int x;
+  uint a;
+  uint y;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: atomicStore
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct compute_main_inputs {
+  uint tint_local_index : SV_GroupIndex;
+};
+
+
+groupshared S wg;
+void compute_main_inner(uint tint_local_index) {
+  if ((tint_local_index == 0u)) {
+    wg.x = 0;
+    uint v = 0u;
+    InterlockedExchange(wg.a, 0u, v);
+    wg.y = 0u;
+  }
+  GroupMemoryBarrierWithGroupSync();
+  uint v_1 = 0u;
+  InterlockedExchange(wg.a, 1u, v_1);
+}
+
+[numthreads(1, 1, 1)]
+void compute_main(compute_main_inputs inputs) {
+  compute_main_inner(inputs.tint_local_index);
+}
+
diff --git a/test/tint/builtins/atomicStore/struct/nested.spvasm.expected.ir.dxc.hlsl b/test/tint/builtins/atomicStore/struct/nested.spvasm.expected.ir.dxc.hlsl
index 3f437dc..86fb49a 100644
--- a/test/tint/builtins/atomicStore/struct/nested.spvasm.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/atomicStore/struct/nested.spvasm.expected.ir.dxc.hlsl
@@ -1,9 +1,74 @@
-SKIP: FAILED
+struct S0_atomic {
+  int x;
+  uint a;
+  int y;
+  int z;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Access
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct S1_atomic {
+  int x;
+  S0_atomic a;
+  int y;
+  int z;
+};
+
+struct S2_atomic {
+  int x;
+  int y;
+  int z;
+  S1_atomic a;
+};
+
+struct compute_main_inputs {
+  uint local_invocation_index_1_param : SV_GroupIndex;
+};
+
+
+static uint local_invocation_index_1 = 0u;
+groupshared S2_atomic wg;
+void compute_main_inner(uint local_invocation_index_2) {
+  wg.x = 0;
+  wg.y = 0;
+  wg.z = 0;
+  wg.a.x = 0;
+  wg.a.a.x = 0;
+  uint v = 0u;
+  InterlockedExchange(wg.a.a.a, 0u, v);
+  wg.a.a.y = 0;
+  wg.a.a.z = 0;
+  wg.a.y = 0;
+  wg.a.z = 0;
+  GroupMemoryBarrierWithGroupSync();
+  uint v_1 = 0u;
+  InterlockedExchange(wg.a.a.a, 1u, v_1);
+}
+
+void compute_main_1() {
+  uint x_44 = local_invocation_index_1;
+  compute_main_inner(x_44);
+}
+
+void compute_main_inner_1(uint local_invocation_index_1_param) {
+  if ((local_invocation_index_1_param == 0u)) {
+    wg.x = 0;
+    wg.y = 0;
+    wg.z = 0;
+    wg.a.x = 0;
+    wg.a.a.x = 0;
+    uint v_2 = 0u;
+    InterlockedExchange(wg.a.a.a, 0u, v_2);
+    wg.a.a.y = 0;
+    wg.a.a.z = 0;
+    wg.a.y = 0;
+    wg.a.z = 0;
+  }
+  GroupMemoryBarrierWithGroupSync();
+  local_invocation_index_1 = local_invocation_index_1_param;
+  compute_main_1();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main(compute_main_inputs inputs) {
+  compute_main_inner_1(inputs.local_invocation_index_1_param);
+}
+
diff --git a/test/tint/builtins/atomicStore/struct/nested.spvasm.expected.ir.fxc.hlsl b/test/tint/builtins/atomicStore/struct/nested.spvasm.expected.ir.fxc.hlsl
index 3f437dc..86fb49a 100644
--- a/test/tint/builtins/atomicStore/struct/nested.spvasm.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/atomicStore/struct/nested.spvasm.expected.ir.fxc.hlsl
@@ -1,9 +1,74 @@
-SKIP: FAILED
+struct S0_atomic {
+  int x;
+  uint a;
+  int y;
+  int z;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Access
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct S1_atomic {
+  int x;
+  S0_atomic a;
+  int y;
+  int z;
+};
+
+struct S2_atomic {
+  int x;
+  int y;
+  int z;
+  S1_atomic a;
+};
+
+struct compute_main_inputs {
+  uint local_invocation_index_1_param : SV_GroupIndex;
+};
+
+
+static uint local_invocation_index_1 = 0u;
+groupshared S2_atomic wg;
+void compute_main_inner(uint local_invocation_index_2) {
+  wg.x = 0;
+  wg.y = 0;
+  wg.z = 0;
+  wg.a.x = 0;
+  wg.a.a.x = 0;
+  uint v = 0u;
+  InterlockedExchange(wg.a.a.a, 0u, v);
+  wg.a.a.y = 0;
+  wg.a.a.z = 0;
+  wg.a.y = 0;
+  wg.a.z = 0;
+  GroupMemoryBarrierWithGroupSync();
+  uint v_1 = 0u;
+  InterlockedExchange(wg.a.a.a, 1u, v_1);
+}
+
+void compute_main_1() {
+  uint x_44 = local_invocation_index_1;
+  compute_main_inner(x_44);
+}
+
+void compute_main_inner_1(uint local_invocation_index_1_param) {
+  if ((local_invocation_index_1_param == 0u)) {
+    wg.x = 0;
+    wg.y = 0;
+    wg.z = 0;
+    wg.a.x = 0;
+    wg.a.a.x = 0;
+    uint v_2 = 0u;
+    InterlockedExchange(wg.a.a.a, 0u, v_2);
+    wg.a.a.y = 0;
+    wg.a.a.z = 0;
+    wg.a.y = 0;
+    wg.a.z = 0;
+  }
+  GroupMemoryBarrierWithGroupSync();
+  local_invocation_index_1 = local_invocation_index_1_param;
+  compute_main_1();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main(compute_main_inputs inputs) {
+  compute_main_inner_1(inputs.local_invocation_index_1_param);
+}
+
diff --git a/test/tint/builtins/atomicStore/struct/nested.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/atomicStore/struct/nested.wgsl.expected.ir.dxc.hlsl
index 9aa6a33..b8d8955 100644
--- a/test/tint/builtins/atomicStore/struct/nested.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/atomicStore/struct/nested.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,51 @@
-SKIP: FAILED
+struct S0 {
+  int x;
+  uint a;
+  int y;
+  int z;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: atomicStore
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct S1 {
+  int x;
+  S0 a;
+  int y;
+  int z;
+};
+
+struct S2 {
+  int x;
+  int y;
+  int z;
+  S1 a;
+};
+
+struct compute_main_inputs {
+  uint tint_local_index : SV_GroupIndex;
+};
+
+
+groupshared S2 wg;
+void compute_main_inner(uint tint_local_index) {
+  if ((tint_local_index == 0u)) {
+    wg.x = 0;
+    wg.y = 0;
+    wg.z = 0;
+    wg.a.x = 0;
+    wg.a.a.x = 0;
+    uint v = 0u;
+    InterlockedExchange(wg.a.a.a, 0u, v);
+    wg.a.a.y = 0;
+    wg.a.a.z = 0;
+    wg.a.y = 0;
+    wg.a.z = 0;
+  }
+  GroupMemoryBarrierWithGroupSync();
+  uint v_1 = 0u;
+  InterlockedExchange(wg.a.a.a, 1u, v_1);
+}
+
+[numthreads(1, 1, 1)]
+void compute_main(compute_main_inputs inputs) {
+  compute_main_inner(inputs.tint_local_index);
+}
+
diff --git a/test/tint/builtins/atomicStore/struct/nested.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/atomicStore/struct/nested.wgsl.expected.ir.fxc.hlsl
index 9aa6a33..b8d8955 100644
--- a/test/tint/builtins/atomicStore/struct/nested.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/atomicStore/struct/nested.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,51 @@
-SKIP: FAILED
+struct S0 {
+  int x;
+  uint a;
+  int y;
+  int z;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: atomicStore
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct S1 {
+  int x;
+  S0 a;
+  int y;
+  int z;
+};
+
+struct S2 {
+  int x;
+  int y;
+  int z;
+  S1 a;
+};
+
+struct compute_main_inputs {
+  uint tint_local_index : SV_GroupIndex;
+};
+
+
+groupshared S2 wg;
+void compute_main_inner(uint tint_local_index) {
+  if ((tint_local_index == 0u)) {
+    wg.x = 0;
+    wg.y = 0;
+    wg.z = 0;
+    wg.a.x = 0;
+    wg.a.a.x = 0;
+    uint v = 0u;
+    InterlockedExchange(wg.a.a.a, 0u, v);
+    wg.a.a.y = 0;
+    wg.a.a.z = 0;
+    wg.a.y = 0;
+    wg.a.z = 0;
+  }
+  GroupMemoryBarrierWithGroupSync();
+  uint v_1 = 0u;
+  InterlockedExchange(wg.a.a.a, 1u, v_1);
+}
+
+[numthreads(1, 1, 1)]
+void compute_main(compute_main_inputs inputs) {
+  compute_main_inner(inputs.tint_local_index);
+}
+
diff --git a/test/tint/builtins/atomicStore/struct/struct_of_array.spvasm.expected.ir.dxc.hlsl b/test/tint/builtins/atomicStore/struct/struct_of_array.spvasm.expected.ir.dxc.hlsl
index 3f437dc..4b40720 100644
--- a/test/tint/builtins/atomicStore/struct/struct_of_array.spvasm.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/atomicStore/struct/struct_of_array.spvasm.expected.ir.dxc.hlsl
@@ -1,9 +1,73 @@
-SKIP: FAILED
+struct S_atomic {
+  int x;
+  uint a[10];
+  uint y;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Access
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct compute_main_inputs {
+  uint local_invocation_index_1_param : SV_GroupIndex;
+};
+
+
+static uint local_invocation_index_1 = 0u;
+groupshared S_atomic wg;
+void compute_main_inner(uint local_invocation_index_2) {
+  uint idx = 0u;
+  wg.x = 0;
+  wg.y = 0u;
+  idx = local_invocation_index_2;
+  {
+    while(true) {
+      if (!((idx < 10u))) {
+        break;
+      }
+      uint x_35 = idx;
+      uint v = 0u;
+      InterlockedExchange(wg.a[x_35], 0u, v);
+      {
+        idx = (idx + 1u);
+      }
+      continue;
+    }
+  }
+  GroupMemoryBarrierWithGroupSync();
+  uint v_1 = 0u;
+  InterlockedExchange(wg.a[4], 1u, v_1);
+}
+
+void compute_main_1() {
+  uint x_53 = local_invocation_index_1;
+  compute_main_inner(x_53);
+}
+
+void compute_main_inner_1(uint local_invocation_index_1_param) {
+  if ((local_invocation_index_1_param == 0u)) {
+    wg.x = 0;
+    wg.y = 0u;
+  }
+  {
+    uint v_2 = 0u;
+    v_2 = local_invocation_index_1_param;
+    while(true) {
+      uint v_3 = v_2;
+      if ((v_3 >= 10u)) {
+        break;
+      }
+      uint v_4 = 0u;
+      InterlockedExchange(wg.a[v_3], 0u, v_4);
+      {
+        v_2 = (v_3 + 1u);
+      }
+      continue;
+    }
+  }
+  GroupMemoryBarrierWithGroupSync();
+  local_invocation_index_1 = local_invocation_index_1_param;
+  compute_main_1();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main(compute_main_inputs inputs) {
+  compute_main_inner_1(inputs.local_invocation_index_1_param);
+}
+
diff --git a/test/tint/builtins/atomicStore/struct/struct_of_array.spvasm.expected.ir.fxc.hlsl b/test/tint/builtins/atomicStore/struct/struct_of_array.spvasm.expected.ir.fxc.hlsl
index 3f437dc..4b40720 100644
--- a/test/tint/builtins/atomicStore/struct/struct_of_array.spvasm.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/atomicStore/struct/struct_of_array.spvasm.expected.ir.fxc.hlsl
@@ -1,9 +1,73 @@
-SKIP: FAILED
+struct S_atomic {
+  int x;
+  uint a[10];
+  uint y;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Access
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct compute_main_inputs {
+  uint local_invocation_index_1_param : SV_GroupIndex;
+};
+
+
+static uint local_invocation_index_1 = 0u;
+groupshared S_atomic wg;
+void compute_main_inner(uint local_invocation_index_2) {
+  uint idx = 0u;
+  wg.x = 0;
+  wg.y = 0u;
+  idx = local_invocation_index_2;
+  {
+    while(true) {
+      if (!((idx < 10u))) {
+        break;
+      }
+      uint x_35 = idx;
+      uint v = 0u;
+      InterlockedExchange(wg.a[x_35], 0u, v);
+      {
+        idx = (idx + 1u);
+      }
+      continue;
+    }
+  }
+  GroupMemoryBarrierWithGroupSync();
+  uint v_1 = 0u;
+  InterlockedExchange(wg.a[4], 1u, v_1);
+}
+
+void compute_main_1() {
+  uint x_53 = local_invocation_index_1;
+  compute_main_inner(x_53);
+}
+
+void compute_main_inner_1(uint local_invocation_index_1_param) {
+  if ((local_invocation_index_1_param == 0u)) {
+    wg.x = 0;
+    wg.y = 0u;
+  }
+  {
+    uint v_2 = 0u;
+    v_2 = local_invocation_index_1_param;
+    while(true) {
+      uint v_3 = v_2;
+      if ((v_3 >= 10u)) {
+        break;
+      }
+      uint v_4 = 0u;
+      InterlockedExchange(wg.a[v_3], 0u, v_4);
+      {
+        v_2 = (v_3 + 1u);
+      }
+      continue;
+    }
+  }
+  GroupMemoryBarrierWithGroupSync();
+  local_invocation_index_1 = local_invocation_index_1_param;
+  compute_main_1();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main(compute_main_inputs inputs) {
+  compute_main_inner_1(inputs.local_invocation_index_1_param);
+}
+
diff --git a/test/tint/builtins/atomicStore/struct/struct_of_array.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/atomicStore/struct/struct_of_array.wgsl.expected.ir.dxc.hlsl
index 9aa6a33..9fcaf10 100644
--- a/test/tint/builtins/atomicStore/struct/struct_of_array.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/atomicStore/struct/struct_of_array.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,43 @@
-SKIP: FAILED
+struct S {
+  int x;
+  uint a[10];
+  uint y;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: atomicStore
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct compute_main_inputs {
+  uint tint_local_index : SV_GroupIndex;
+};
+
+
+groupshared S wg;
+void compute_main_inner(uint tint_local_index) {
+  if ((tint_local_index == 0u)) {
+    wg.x = 0;
+    wg.y = 0u;
+  }
+  {
+    uint v = 0u;
+    v = tint_local_index;
+    while(true) {
+      uint v_1 = v;
+      if ((v_1 >= 10u)) {
+        break;
+      }
+      uint v_2 = 0u;
+      InterlockedExchange(wg.a[v_1], 0u, v_2);
+      {
+        v = (v_1 + 1u);
+      }
+      continue;
+    }
+  }
+  GroupMemoryBarrierWithGroupSync();
+  uint v_3 = 0u;
+  InterlockedExchange(wg.a[4], 1u, v_3);
+}
+
+[numthreads(1, 1, 1)]
+void compute_main(compute_main_inputs inputs) {
+  compute_main_inner(inputs.tint_local_index);
+}
+
diff --git a/test/tint/builtins/atomicStore/struct/struct_of_array.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/atomicStore/struct/struct_of_array.wgsl.expected.ir.fxc.hlsl
index 9aa6a33..9fcaf10 100644
--- a/test/tint/builtins/atomicStore/struct/struct_of_array.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/atomicStore/struct/struct_of_array.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,43 @@
-SKIP: FAILED
+struct S {
+  int x;
+  uint a[10];
+  uint y;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: atomicStore
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct compute_main_inputs {
+  uint tint_local_index : SV_GroupIndex;
+};
+
+
+groupshared S wg;
+void compute_main_inner(uint tint_local_index) {
+  if ((tint_local_index == 0u)) {
+    wg.x = 0;
+    wg.y = 0u;
+  }
+  {
+    uint v = 0u;
+    v = tint_local_index;
+    while(true) {
+      uint v_1 = v;
+      if ((v_1 >= 10u)) {
+        break;
+      }
+      uint v_2 = 0u;
+      InterlockedExchange(wg.a[v_1], 0u, v_2);
+      {
+        v = (v_1 + 1u);
+      }
+      continue;
+    }
+  }
+  GroupMemoryBarrierWithGroupSync();
+  uint v_3 = 0u;
+  InterlockedExchange(wg.a[4], 1u, v_3);
+}
+
+[numthreads(1, 1, 1)]
+void compute_main(compute_main_inputs inputs) {
+  compute_main_inner(inputs.tint_local_index);
+}
+
diff --git a/test/tint/builtins/atomicStore/struct/via_ptr_let.spvasm.expected.ir.dxc.hlsl b/test/tint/builtins/atomicStore/struct/via_ptr_let.spvasm.expected.ir.dxc.hlsl
index 3f437dc..a1c3e3a 100644
--- a/test/tint/builtins/atomicStore/struct/via_ptr_let.spvasm.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/atomicStore/struct/via_ptr_let.spvasm.expected.ir.dxc.hlsl
@@ -1,9 +1,45 @@
-SKIP: FAILED
+struct S_atomic {
+  int x;
+  uint a;
+  uint y;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Access
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct compute_main_inputs {
+  uint local_invocation_index_1_param : SV_GroupIndex;
+};
+
+
+static uint local_invocation_index_1 = 0u;
+groupshared S_atomic wg;
+void compute_main_inner(uint local_invocation_index_2) {
+  wg.x = 0;
+  uint v = 0u;
+  InterlockedExchange(wg.a, 0u, v);
+  wg.y = 0u;
+  GroupMemoryBarrierWithGroupSync();
+  uint v_1 = 0u;
+  InterlockedExchange(wg.a, 1u, v_1);
+}
+
+void compute_main_1() {
+  uint x_35 = local_invocation_index_1;
+  compute_main_inner(x_35);
+}
+
+void compute_main_inner_1(uint local_invocation_index_1_param) {
+  if ((local_invocation_index_1_param == 0u)) {
+    wg.x = 0;
+    uint v_2 = 0u;
+    InterlockedExchange(wg.a, 0u, v_2);
+    wg.y = 0u;
+  }
+  GroupMemoryBarrierWithGroupSync();
+  local_invocation_index_1 = local_invocation_index_1_param;
+  compute_main_1();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main(compute_main_inputs inputs) {
+  compute_main_inner_1(inputs.local_invocation_index_1_param);
+}
+
diff --git a/test/tint/builtins/atomicStore/struct/via_ptr_let.spvasm.expected.ir.fxc.hlsl b/test/tint/builtins/atomicStore/struct/via_ptr_let.spvasm.expected.ir.fxc.hlsl
index 3f437dc..a1c3e3a 100644
--- a/test/tint/builtins/atomicStore/struct/via_ptr_let.spvasm.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/atomicStore/struct/via_ptr_let.spvasm.expected.ir.fxc.hlsl
@@ -1,9 +1,45 @@
-SKIP: FAILED
+struct S_atomic {
+  int x;
+  uint a;
+  uint y;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Access
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct compute_main_inputs {
+  uint local_invocation_index_1_param : SV_GroupIndex;
+};
+
+
+static uint local_invocation_index_1 = 0u;
+groupshared S_atomic wg;
+void compute_main_inner(uint local_invocation_index_2) {
+  wg.x = 0;
+  uint v = 0u;
+  InterlockedExchange(wg.a, 0u, v);
+  wg.y = 0u;
+  GroupMemoryBarrierWithGroupSync();
+  uint v_1 = 0u;
+  InterlockedExchange(wg.a, 1u, v_1);
+}
+
+void compute_main_1() {
+  uint x_35 = local_invocation_index_1;
+  compute_main_inner(x_35);
+}
+
+void compute_main_inner_1(uint local_invocation_index_1_param) {
+  if ((local_invocation_index_1_param == 0u)) {
+    wg.x = 0;
+    uint v_2 = 0u;
+    InterlockedExchange(wg.a, 0u, v_2);
+    wg.y = 0u;
+  }
+  GroupMemoryBarrierWithGroupSync();
+  local_invocation_index_1 = local_invocation_index_1_param;
+  compute_main_1();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main(compute_main_inputs inputs) {
+  compute_main_inner_1(inputs.local_invocation_index_1_param);
+}
+
diff --git a/test/tint/builtins/atomicStore/struct/via_ptr_let.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/atomicStore/struct/via_ptr_let.wgsl.expected.ir.dxc.hlsl
index 3f437dc..7a6f582 100644
--- a/test/tint/builtins/atomicStore/struct/via_ptr_let.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/atomicStore/struct/via_ptr_let.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,49 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Access
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct S {
+  int x;
+  uint a;
+  uint y;
+};
+
+struct compute_main_inputs {
+  uint tint_local_index : SV_GroupIndex;
+};
+
+
+groupshared S wg;
+void compute_main_inner(uint tint_local_index) {
+  if ((tint_local_index == 0u)) {
+    wg.x = 0;
+    uint v = 0u;
+    InterlockedExchange(wg.a, 0u, v);
+    wg.y = 0u;
+  }
+  GroupMemoryBarrierWithGroupSync();
+  S p0 = wg;
+  uint p1 = p0.a;
+  uint v_1 = 0u;
+  InterlockedExchange(p1, 1u, v_1);
+}
+
+[numthreads(1, 1, 1)]
+void compute_main(compute_main_inputs inputs) {
+  compute_main_inner(inputs.tint_local_index);
+}
+
+DXC validation failure:
+hlsl.hlsl:14:25: warning: equality comparison with extraneous parentheses [-Wparentheses-equality]
+  if ((tint_local_index == 0u)) {
+       ~~~~~~~~~~~~~~~~~^~~~~
+hlsl.hlsl:14:25: note: remove extraneous parentheses around the comparison to silence this warning
+  if ((tint_local_index == 0u)) {
+      ~                 ^    ~
+hlsl.hlsl:14:25: note: use '=' to turn this equality comparison into an assignment
+  if ((tint_local_index == 0u)) {
+                        ^~
+                        =
+error: cannot map resource to handle.
+hlsl.hlsl:24:3: error: Atomic operation targets must be groupshared, Node Record or UAV.
+  InterlockedExchange(p1, 1u, v_1);
+  ^
+
diff --git a/test/tint/builtins/atomicStore/struct/via_ptr_let.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/atomicStore/struct/via_ptr_let.wgsl.expected.ir.fxc.hlsl
index 3f437dc..ce4aee4 100644
--- a/test/tint/builtins/atomicStore/struct/via_ptr_let.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/atomicStore/struct/via_ptr_let.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,36 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Access
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct S {
+  int x;
+  uint a;
+  uint y;
+};
+
+struct compute_main_inputs {
+  uint tint_local_index : SV_GroupIndex;
+};
+
+
+groupshared S wg;
+void compute_main_inner(uint tint_local_index) {
+  if ((tint_local_index == 0u)) {
+    wg.x = 0;
+    uint v = 0u;
+    InterlockedExchange(wg.a, 0u, v);
+    wg.y = 0u;
+  }
+  GroupMemoryBarrierWithGroupSync();
+  S p0 = wg;
+  uint p1 = p0.a;
+  uint v_1 = 0u;
+  InterlockedExchange(p1, 1u, v_1);
+}
+
+[numthreads(1, 1, 1)]
+void compute_main(compute_main_inputs inputs) {
+  compute_main_inner(inputs.tint_local_index);
+}
+
+FXC validation failure:
+c:\src\dawn\Shader@0x000001C9BA9ED340(24,3-34): error X3549: interlocked targets must be groupshared or UAV elements
+
diff --git a/test/tint/builtins/atomics/from_gen/literal/atomicAdd/storage_i32.spvasm.expected.ir.dxc.hlsl b/test/tint/builtins/atomics/from_gen/literal/atomicAdd/storage_i32.spvasm.expected.ir.dxc.hlsl
index b786ae2..6d08ebb 100644
--- a/test/tint/builtins/atomics/from_gen/literal/atomicAdd/storage_i32.spvasm.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/atomics/from_gen/literal/atomicAdd/storage_i32.spvasm.expected.ir.dxc.hlsl
@@ -1,9 +1,27 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: atomicAdd
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWByteAddressBuffer sb_rw : register(u0);
+void atomicAdd_d32fe4() {
+  int res = 0;
+  int v = 0;
+  sb_rw.InterlockedAdd(int(0u), 1, v);
+  int x_9 = v;
+  res = x_9;
+}
+
+void fragment_main_1() {
+  atomicAdd_d32fe4();
+}
+
+void fragment_main() {
+  fragment_main_1();
+}
+
+void compute_main_1() {
+  atomicAdd_d32fe4();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  compute_main_1();
+}
+
diff --git a/test/tint/builtins/atomics/from_gen/literal/atomicAdd/storage_i32.spvasm.expected.ir.fxc.hlsl b/test/tint/builtins/atomics/from_gen/literal/atomicAdd/storage_i32.spvasm.expected.ir.fxc.hlsl
index b786ae2..6d08ebb 100644
--- a/test/tint/builtins/atomics/from_gen/literal/atomicAdd/storage_i32.spvasm.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/atomics/from_gen/literal/atomicAdd/storage_i32.spvasm.expected.ir.fxc.hlsl
@@ -1,9 +1,27 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: atomicAdd
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWByteAddressBuffer sb_rw : register(u0);
+void atomicAdd_d32fe4() {
+  int res = 0;
+  int v = 0;
+  sb_rw.InterlockedAdd(int(0u), 1, v);
+  int x_9 = v;
+  res = x_9;
+}
+
+void fragment_main_1() {
+  atomicAdd_d32fe4();
+}
+
+void fragment_main() {
+  fragment_main_1();
+}
+
+void compute_main_1() {
+  atomicAdd_d32fe4();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  compute_main_1();
+}
+
diff --git a/test/tint/builtins/atomics/from_gen/literal/atomicAdd/storage_u32.spvasm.expected.ir.dxc.hlsl b/test/tint/builtins/atomics/from_gen/literal/atomicAdd/storage_u32.spvasm.expected.ir.dxc.hlsl
index b786ae2..4d67530 100644
--- a/test/tint/builtins/atomics/from_gen/literal/atomicAdd/storage_u32.spvasm.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/atomics/from_gen/literal/atomicAdd/storage_u32.spvasm.expected.ir.dxc.hlsl
@@ -1,9 +1,27 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: atomicAdd
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWByteAddressBuffer sb_rw : register(u0);
+void atomicAdd_8a199a() {
+  uint res = 0u;
+  uint v = 0u;
+  sb_rw.InterlockedAdd(uint(0u), 1u, v);
+  uint x_9 = v;
+  res = x_9;
+}
+
+void fragment_main_1() {
+  atomicAdd_8a199a();
+}
+
+void fragment_main() {
+  fragment_main_1();
+}
+
+void compute_main_1() {
+  atomicAdd_8a199a();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  compute_main_1();
+}
+
diff --git a/test/tint/builtins/atomics/from_gen/literal/atomicAdd/storage_u32.spvasm.expected.ir.fxc.hlsl b/test/tint/builtins/atomics/from_gen/literal/atomicAdd/storage_u32.spvasm.expected.ir.fxc.hlsl
index b786ae2..4d67530 100644
--- a/test/tint/builtins/atomics/from_gen/literal/atomicAdd/storage_u32.spvasm.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/atomics/from_gen/literal/atomicAdd/storage_u32.spvasm.expected.ir.fxc.hlsl
@@ -1,9 +1,27 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: atomicAdd
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWByteAddressBuffer sb_rw : register(u0);
+void atomicAdd_8a199a() {
+  uint res = 0u;
+  uint v = 0u;
+  sb_rw.InterlockedAdd(uint(0u), 1u, v);
+  uint x_9 = v;
+  res = x_9;
+}
+
+void fragment_main_1() {
+  atomicAdd_8a199a();
+}
+
+void fragment_main() {
+  fragment_main_1();
+}
+
+void compute_main_1() {
+  atomicAdd_8a199a();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  compute_main_1();
+}
+
diff --git a/test/tint/builtins/atomics/from_gen/literal/atomicAdd/workgroup_i32.spvasm.expected.ir.dxc.hlsl b/test/tint/builtins/atomics/from_gen/literal/atomicAdd/workgroup_i32.spvasm.expected.ir.dxc.hlsl
index b786ae2..f753b40 100644
--- a/test/tint/builtins/atomics/from_gen/literal/atomicAdd/workgroup_i32.spvasm.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/atomics/from_gen/literal/atomicAdd/workgroup_i32.spvasm.expected.ir.dxc.hlsl
@@ -1,9 +1,42 @@
-SKIP: FAILED
+struct compute_main_inputs {
+  uint local_invocation_index_1_param : SV_GroupIndex;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: atomicAdd
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+
+static uint local_invocation_index_1 = 0u;
+groupshared int arg_0;
+void atomicAdd_794055() {
+  int res = 0;
+  int v = 0;
+  InterlockedAdd(arg_0, 1, v);
+  int x_11 = v;
+  res = x_11;
+}
+
+void compute_main_inner(uint local_invocation_index_2) {
+  int v_1 = 0;
+  InterlockedExchange(arg_0, 0, v_1);
+  GroupMemoryBarrierWithGroupSync();
+  atomicAdd_794055();
+}
+
+void compute_main_1() {
+  uint x_31 = local_invocation_index_1;
+  compute_main_inner(x_31);
+}
+
+void compute_main_inner_1(uint local_invocation_index_1_param) {
+  if ((local_invocation_index_1_param == 0u)) {
+    int v_2 = 0;
+    InterlockedExchange(arg_0, 0, v_2);
+  }
+  GroupMemoryBarrierWithGroupSync();
+  local_invocation_index_1 = local_invocation_index_1_param;
+  compute_main_1();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main(compute_main_inputs inputs) {
+  compute_main_inner_1(inputs.local_invocation_index_1_param);
+}
+
diff --git a/test/tint/builtins/atomics/from_gen/literal/atomicAdd/workgroup_i32.spvasm.expected.ir.fxc.hlsl b/test/tint/builtins/atomics/from_gen/literal/atomicAdd/workgroup_i32.spvasm.expected.ir.fxc.hlsl
index b786ae2..f753b40 100644
--- a/test/tint/builtins/atomics/from_gen/literal/atomicAdd/workgroup_i32.spvasm.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/atomics/from_gen/literal/atomicAdd/workgroup_i32.spvasm.expected.ir.fxc.hlsl
@@ -1,9 +1,42 @@
-SKIP: FAILED
+struct compute_main_inputs {
+  uint local_invocation_index_1_param : SV_GroupIndex;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: atomicAdd
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+
+static uint local_invocation_index_1 = 0u;
+groupshared int arg_0;
+void atomicAdd_794055() {
+  int res = 0;
+  int v = 0;
+  InterlockedAdd(arg_0, 1, v);
+  int x_11 = v;
+  res = x_11;
+}
+
+void compute_main_inner(uint local_invocation_index_2) {
+  int v_1 = 0;
+  InterlockedExchange(arg_0, 0, v_1);
+  GroupMemoryBarrierWithGroupSync();
+  atomicAdd_794055();
+}
+
+void compute_main_1() {
+  uint x_31 = local_invocation_index_1;
+  compute_main_inner(x_31);
+}
+
+void compute_main_inner_1(uint local_invocation_index_1_param) {
+  if ((local_invocation_index_1_param == 0u)) {
+    int v_2 = 0;
+    InterlockedExchange(arg_0, 0, v_2);
+  }
+  GroupMemoryBarrierWithGroupSync();
+  local_invocation_index_1 = local_invocation_index_1_param;
+  compute_main_1();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main(compute_main_inputs inputs) {
+  compute_main_inner_1(inputs.local_invocation_index_1_param);
+}
+
diff --git a/test/tint/builtins/atomics/from_gen/literal/atomicAdd/workgroup_u32.spvasm.expected.ir.dxc.hlsl b/test/tint/builtins/atomics/from_gen/literal/atomicAdd/workgroup_u32.spvasm.expected.ir.dxc.hlsl
index b786ae2..b7d4f46 100644
--- a/test/tint/builtins/atomics/from_gen/literal/atomicAdd/workgroup_u32.spvasm.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/atomics/from_gen/literal/atomicAdd/workgroup_u32.spvasm.expected.ir.dxc.hlsl
@@ -1,9 +1,42 @@
-SKIP: FAILED
+struct compute_main_inputs {
+  uint local_invocation_index_1_param : SV_GroupIndex;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: atomicAdd
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+
+static uint local_invocation_index_1 = 0u;
+groupshared uint arg_0;
+void atomicAdd_d5db1d() {
+  uint res = 0u;
+  uint v = 0u;
+  InterlockedAdd(arg_0, 1u, v);
+  uint x_10 = v;
+  res = x_10;
+}
+
+void compute_main_inner(uint local_invocation_index_2) {
+  uint v_1 = 0u;
+  InterlockedExchange(arg_0, 0u, v_1);
+  GroupMemoryBarrierWithGroupSync();
+  atomicAdd_d5db1d();
+}
+
+void compute_main_1() {
+  uint x_30 = local_invocation_index_1;
+  compute_main_inner(x_30);
+}
+
+void compute_main_inner_1(uint local_invocation_index_1_param) {
+  if ((local_invocation_index_1_param == 0u)) {
+    uint v_2 = 0u;
+    InterlockedExchange(arg_0, 0u, v_2);
+  }
+  GroupMemoryBarrierWithGroupSync();
+  local_invocation_index_1 = local_invocation_index_1_param;
+  compute_main_1();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main(compute_main_inputs inputs) {
+  compute_main_inner_1(inputs.local_invocation_index_1_param);
+}
+
diff --git a/test/tint/builtins/atomics/from_gen/literal/atomicAdd/workgroup_u32.spvasm.expected.ir.fxc.hlsl b/test/tint/builtins/atomics/from_gen/literal/atomicAdd/workgroup_u32.spvasm.expected.ir.fxc.hlsl
index b786ae2..b7d4f46 100644
--- a/test/tint/builtins/atomics/from_gen/literal/atomicAdd/workgroup_u32.spvasm.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/atomics/from_gen/literal/atomicAdd/workgroup_u32.spvasm.expected.ir.fxc.hlsl
@@ -1,9 +1,42 @@
-SKIP: FAILED
+struct compute_main_inputs {
+  uint local_invocation_index_1_param : SV_GroupIndex;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: atomicAdd
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+
+static uint local_invocation_index_1 = 0u;
+groupshared uint arg_0;
+void atomicAdd_d5db1d() {
+  uint res = 0u;
+  uint v = 0u;
+  InterlockedAdd(arg_0, 1u, v);
+  uint x_10 = v;
+  res = x_10;
+}
+
+void compute_main_inner(uint local_invocation_index_2) {
+  uint v_1 = 0u;
+  InterlockedExchange(arg_0, 0u, v_1);
+  GroupMemoryBarrierWithGroupSync();
+  atomicAdd_d5db1d();
+}
+
+void compute_main_1() {
+  uint x_30 = local_invocation_index_1;
+  compute_main_inner(x_30);
+}
+
+void compute_main_inner_1(uint local_invocation_index_1_param) {
+  if ((local_invocation_index_1_param == 0u)) {
+    uint v_2 = 0u;
+    InterlockedExchange(arg_0, 0u, v_2);
+  }
+  GroupMemoryBarrierWithGroupSync();
+  local_invocation_index_1 = local_invocation_index_1_param;
+  compute_main_1();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main(compute_main_inputs inputs) {
+  compute_main_inner_1(inputs.local_invocation_index_1_param);
+}
+
diff --git a/test/tint/builtins/atomics/from_gen/literal/atomicAnd/storage_i32.spvasm.expected.ir.dxc.hlsl b/test/tint/builtins/atomics/from_gen/literal/atomicAnd/storage_i32.spvasm.expected.ir.dxc.hlsl
index 084941d..0e74bdd 100644
--- a/test/tint/builtins/atomics/from_gen/literal/atomicAnd/storage_i32.spvasm.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/atomics/from_gen/literal/atomicAnd/storage_i32.spvasm.expected.ir.dxc.hlsl
@@ -1,9 +1,27 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: atomicAnd
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWByteAddressBuffer sb_rw : register(u0);
+void atomicAnd_152966() {
+  int res = 0;
+  int v = 0;
+  sb_rw.InterlockedAnd(int(0u), 1, v);
+  int x_9 = v;
+  res = x_9;
+}
+
+void fragment_main_1() {
+  atomicAnd_152966();
+}
+
+void fragment_main() {
+  fragment_main_1();
+}
+
+void compute_main_1() {
+  atomicAnd_152966();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  compute_main_1();
+}
+
diff --git a/test/tint/builtins/atomics/from_gen/literal/atomicAnd/storage_i32.spvasm.expected.ir.fxc.hlsl b/test/tint/builtins/atomics/from_gen/literal/atomicAnd/storage_i32.spvasm.expected.ir.fxc.hlsl
index 084941d..0e74bdd 100644
--- a/test/tint/builtins/atomics/from_gen/literal/atomicAnd/storage_i32.spvasm.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/atomics/from_gen/literal/atomicAnd/storage_i32.spvasm.expected.ir.fxc.hlsl
@@ -1,9 +1,27 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: atomicAnd
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWByteAddressBuffer sb_rw : register(u0);
+void atomicAnd_152966() {
+  int res = 0;
+  int v = 0;
+  sb_rw.InterlockedAnd(int(0u), 1, v);
+  int x_9 = v;
+  res = x_9;
+}
+
+void fragment_main_1() {
+  atomicAnd_152966();
+}
+
+void fragment_main() {
+  fragment_main_1();
+}
+
+void compute_main_1() {
+  atomicAnd_152966();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  compute_main_1();
+}
+
diff --git a/test/tint/builtins/atomics/from_gen/literal/atomicAnd/storage_u32.spvasm.expected.ir.dxc.hlsl b/test/tint/builtins/atomics/from_gen/literal/atomicAnd/storage_u32.spvasm.expected.ir.dxc.hlsl
index 084941d..f97dc8e 100644
--- a/test/tint/builtins/atomics/from_gen/literal/atomicAnd/storage_u32.spvasm.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/atomics/from_gen/literal/atomicAnd/storage_u32.spvasm.expected.ir.dxc.hlsl
@@ -1,9 +1,27 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: atomicAnd
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWByteAddressBuffer sb_rw : register(u0);
+void atomicAnd_85a8d9() {
+  uint res = 0u;
+  uint v = 0u;
+  sb_rw.InterlockedAnd(uint(0u), 1u, v);
+  uint x_9 = v;
+  res = x_9;
+}
+
+void fragment_main_1() {
+  atomicAnd_85a8d9();
+}
+
+void fragment_main() {
+  fragment_main_1();
+}
+
+void compute_main_1() {
+  atomicAnd_85a8d9();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  compute_main_1();
+}
+
diff --git a/test/tint/builtins/atomics/from_gen/literal/atomicAnd/storage_u32.spvasm.expected.ir.fxc.hlsl b/test/tint/builtins/atomics/from_gen/literal/atomicAnd/storage_u32.spvasm.expected.ir.fxc.hlsl
index 084941d..f97dc8e 100644
--- a/test/tint/builtins/atomics/from_gen/literal/atomicAnd/storage_u32.spvasm.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/atomics/from_gen/literal/atomicAnd/storage_u32.spvasm.expected.ir.fxc.hlsl
@@ -1,9 +1,27 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: atomicAnd
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWByteAddressBuffer sb_rw : register(u0);
+void atomicAnd_85a8d9() {
+  uint res = 0u;
+  uint v = 0u;
+  sb_rw.InterlockedAnd(uint(0u), 1u, v);
+  uint x_9 = v;
+  res = x_9;
+}
+
+void fragment_main_1() {
+  atomicAnd_85a8d9();
+}
+
+void fragment_main() {
+  fragment_main_1();
+}
+
+void compute_main_1() {
+  atomicAnd_85a8d9();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  compute_main_1();
+}
+
diff --git a/test/tint/builtins/atomics/from_gen/literal/atomicAnd/workgroup_i32.spvasm.expected.ir.dxc.hlsl b/test/tint/builtins/atomics/from_gen/literal/atomicAnd/workgroup_i32.spvasm.expected.ir.dxc.hlsl
index 084941d..6c908d3 100644
--- a/test/tint/builtins/atomics/from_gen/literal/atomicAnd/workgroup_i32.spvasm.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/atomics/from_gen/literal/atomicAnd/workgroup_i32.spvasm.expected.ir.dxc.hlsl
@@ -1,9 +1,42 @@
-SKIP: FAILED
+struct compute_main_inputs {
+  uint local_invocation_index_1_param : SV_GroupIndex;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: atomicAnd
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+
+static uint local_invocation_index_1 = 0u;
+groupshared int arg_0;
+void atomicAnd_45a819() {
+  int res = 0;
+  int v = 0;
+  InterlockedAnd(arg_0, 1, v);
+  int x_11 = v;
+  res = x_11;
+}
+
+void compute_main_inner(uint local_invocation_index_2) {
+  int v_1 = 0;
+  InterlockedExchange(arg_0, 0, v_1);
+  GroupMemoryBarrierWithGroupSync();
+  atomicAnd_45a819();
+}
+
+void compute_main_1() {
+  uint x_31 = local_invocation_index_1;
+  compute_main_inner(x_31);
+}
+
+void compute_main_inner_1(uint local_invocation_index_1_param) {
+  if ((local_invocation_index_1_param == 0u)) {
+    int v_2 = 0;
+    InterlockedExchange(arg_0, 0, v_2);
+  }
+  GroupMemoryBarrierWithGroupSync();
+  local_invocation_index_1 = local_invocation_index_1_param;
+  compute_main_1();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main(compute_main_inputs inputs) {
+  compute_main_inner_1(inputs.local_invocation_index_1_param);
+}
+
diff --git a/test/tint/builtins/atomics/from_gen/literal/atomicAnd/workgroup_i32.spvasm.expected.ir.fxc.hlsl b/test/tint/builtins/atomics/from_gen/literal/atomicAnd/workgroup_i32.spvasm.expected.ir.fxc.hlsl
index 084941d..6c908d3 100644
--- a/test/tint/builtins/atomics/from_gen/literal/atomicAnd/workgroup_i32.spvasm.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/atomics/from_gen/literal/atomicAnd/workgroup_i32.spvasm.expected.ir.fxc.hlsl
@@ -1,9 +1,42 @@
-SKIP: FAILED
+struct compute_main_inputs {
+  uint local_invocation_index_1_param : SV_GroupIndex;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: atomicAnd
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+
+static uint local_invocation_index_1 = 0u;
+groupshared int arg_0;
+void atomicAnd_45a819() {
+  int res = 0;
+  int v = 0;
+  InterlockedAnd(arg_0, 1, v);
+  int x_11 = v;
+  res = x_11;
+}
+
+void compute_main_inner(uint local_invocation_index_2) {
+  int v_1 = 0;
+  InterlockedExchange(arg_0, 0, v_1);
+  GroupMemoryBarrierWithGroupSync();
+  atomicAnd_45a819();
+}
+
+void compute_main_1() {
+  uint x_31 = local_invocation_index_1;
+  compute_main_inner(x_31);
+}
+
+void compute_main_inner_1(uint local_invocation_index_1_param) {
+  if ((local_invocation_index_1_param == 0u)) {
+    int v_2 = 0;
+    InterlockedExchange(arg_0, 0, v_2);
+  }
+  GroupMemoryBarrierWithGroupSync();
+  local_invocation_index_1 = local_invocation_index_1_param;
+  compute_main_1();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main(compute_main_inputs inputs) {
+  compute_main_inner_1(inputs.local_invocation_index_1_param);
+}
+
diff --git a/test/tint/builtins/atomics/from_gen/literal/atomicAnd/workgroup_u32.spvasm.expected.ir.dxc.hlsl b/test/tint/builtins/atomics/from_gen/literal/atomicAnd/workgroup_u32.spvasm.expected.ir.dxc.hlsl
index 084941d..3e6ac92 100644
--- a/test/tint/builtins/atomics/from_gen/literal/atomicAnd/workgroup_u32.spvasm.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/atomics/from_gen/literal/atomicAnd/workgroup_u32.spvasm.expected.ir.dxc.hlsl
@@ -1,9 +1,42 @@
-SKIP: FAILED
+struct compute_main_inputs {
+  uint local_invocation_index_1_param : SV_GroupIndex;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: atomicAnd
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+
+static uint local_invocation_index_1 = 0u;
+groupshared uint arg_0;
+void atomicAnd_34edd3() {
+  uint res = 0u;
+  uint v = 0u;
+  InterlockedAnd(arg_0, 1u, v);
+  uint x_10 = v;
+  res = x_10;
+}
+
+void compute_main_inner(uint local_invocation_index_2) {
+  uint v_1 = 0u;
+  InterlockedExchange(arg_0, 0u, v_1);
+  GroupMemoryBarrierWithGroupSync();
+  atomicAnd_34edd3();
+}
+
+void compute_main_1() {
+  uint x_30 = local_invocation_index_1;
+  compute_main_inner(x_30);
+}
+
+void compute_main_inner_1(uint local_invocation_index_1_param) {
+  if ((local_invocation_index_1_param == 0u)) {
+    uint v_2 = 0u;
+    InterlockedExchange(arg_0, 0u, v_2);
+  }
+  GroupMemoryBarrierWithGroupSync();
+  local_invocation_index_1 = local_invocation_index_1_param;
+  compute_main_1();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main(compute_main_inputs inputs) {
+  compute_main_inner_1(inputs.local_invocation_index_1_param);
+}
+
diff --git a/test/tint/builtins/atomics/from_gen/literal/atomicAnd/workgroup_u32.spvasm.expected.ir.fxc.hlsl b/test/tint/builtins/atomics/from_gen/literal/atomicAnd/workgroup_u32.spvasm.expected.ir.fxc.hlsl
index 084941d..3e6ac92 100644
--- a/test/tint/builtins/atomics/from_gen/literal/atomicAnd/workgroup_u32.spvasm.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/atomics/from_gen/literal/atomicAnd/workgroup_u32.spvasm.expected.ir.fxc.hlsl
@@ -1,9 +1,42 @@
-SKIP: FAILED
+struct compute_main_inputs {
+  uint local_invocation_index_1_param : SV_GroupIndex;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: atomicAnd
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+
+static uint local_invocation_index_1 = 0u;
+groupshared uint arg_0;
+void atomicAnd_34edd3() {
+  uint res = 0u;
+  uint v = 0u;
+  InterlockedAnd(arg_0, 1u, v);
+  uint x_10 = v;
+  res = x_10;
+}
+
+void compute_main_inner(uint local_invocation_index_2) {
+  uint v_1 = 0u;
+  InterlockedExchange(arg_0, 0u, v_1);
+  GroupMemoryBarrierWithGroupSync();
+  atomicAnd_34edd3();
+}
+
+void compute_main_1() {
+  uint x_30 = local_invocation_index_1;
+  compute_main_inner(x_30);
+}
+
+void compute_main_inner_1(uint local_invocation_index_1_param) {
+  if ((local_invocation_index_1_param == 0u)) {
+    uint v_2 = 0u;
+    InterlockedExchange(arg_0, 0u, v_2);
+  }
+  GroupMemoryBarrierWithGroupSync();
+  local_invocation_index_1 = local_invocation_index_1_param;
+  compute_main_1();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main(compute_main_inputs inputs) {
+  compute_main_inner_1(inputs.local_invocation_index_1_param);
+}
+
diff --git a/test/tint/builtins/atomics/from_gen/literal/atomicCompareExchangeWeak/storage_i32.spvasm.expected.ir.dxc.hlsl b/test/tint/builtins/atomics/from_gen/literal/atomicCompareExchangeWeak/storage_i32.spvasm.expected.ir.dxc.hlsl
index 0ba40c6..796b0d7 100644
--- a/test/tint/builtins/atomics/from_gen/literal/atomicCompareExchangeWeak/storage_i32.spvasm.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/atomics/from_gen/literal/atomicCompareExchangeWeak/storage_i32.spvasm.expected.ir.dxc.hlsl
@@ -1,9 +1,41 @@
-SKIP: FAILED
+struct x__atomic_compare_exchange_resulti32 {
+  int old_value;
+  bool exchanged;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct atomic_compare_exchange_result_i32 {
+  int old_value;
+  bool exchanged;
+};
+
+
+RWByteAddressBuffer sb_rw : register(u0);
+void atomicCompareExchangeWeak_1bd40a() {
+  x__atomic_compare_exchange_resulti32 res = (x__atomic_compare_exchange_resulti32)0;
+  int v = 0;
+  sb_rw.InterlockedCompareExchange(int(0u), 1, 1, v);
+  int v_1 = v;
+  atomic_compare_exchange_result_i32 v_2 = {v_1, (v_1 == 1)};
+  int old_value_1 = v_2.old_value;
+  int x_19 = old_value_1;
+  x__atomic_compare_exchange_resulti32 v_3 = {x_19, (x_19 == 1)};
+  res = v_3;
+}
+
+void fragment_main_1() {
+  atomicCompareExchangeWeak_1bd40a();
+}
+
+void fragment_main() {
+  fragment_main_1();
+}
+
+void compute_main_1() {
+  atomicCompareExchangeWeak_1bd40a();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  compute_main_1();
+}
+
diff --git a/test/tint/builtins/atomics/from_gen/literal/atomicCompareExchangeWeak/storage_i32.spvasm.expected.ir.fxc.hlsl b/test/tint/builtins/atomics/from_gen/literal/atomicCompareExchangeWeak/storage_i32.spvasm.expected.ir.fxc.hlsl
index 0ba40c6..796b0d7 100644
--- a/test/tint/builtins/atomics/from_gen/literal/atomicCompareExchangeWeak/storage_i32.spvasm.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/atomics/from_gen/literal/atomicCompareExchangeWeak/storage_i32.spvasm.expected.ir.fxc.hlsl
@@ -1,9 +1,41 @@
-SKIP: FAILED
+struct x__atomic_compare_exchange_resulti32 {
+  int old_value;
+  bool exchanged;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct atomic_compare_exchange_result_i32 {
+  int old_value;
+  bool exchanged;
+};
+
+
+RWByteAddressBuffer sb_rw : register(u0);
+void atomicCompareExchangeWeak_1bd40a() {
+  x__atomic_compare_exchange_resulti32 res = (x__atomic_compare_exchange_resulti32)0;
+  int v = 0;
+  sb_rw.InterlockedCompareExchange(int(0u), 1, 1, v);
+  int v_1 = v;
+  atomic_compare_exchange_result_i32 v_2 = {v_1, (v_1 == 1)};
+  int old_value_1 = v_2.old_value;
+  int x_19 = old_value_1;
+  x__atomic_compare_exchange_resulti32 v_3 = {x_19, (x_19 == 1)};
+  res = v_3;
+}
+
+void fragment_main_1() {
+  atomicCompareExchangeWeak_1bd40a();
+}
+
+void fragment_main() {
+  fragment_main_1();
+}
+
+void compute_main_1() {
+  atomicCompareExchangeWeak_1bd40a();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  compute_main_1();
+}
+
diff --git a/test/tint/builtins/atomics/from_gen/literal/atomicCompareExchangeWeak/storage_u32.spvasm.expected.ir.dxc.hlsl b/test/tint/builtins/atomics/from_gen/literal/atomicCompareExchangeWeak/storage_u32.spvasm.expected.ir.dxc.hlsl
index 0ba40c6..2c4bb78 100644
--- a/test/tint/builtins/atomics/from_gen/literal/atomicCompareExchangeWeak/storage_u32.spvasm.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/atomics/from_gen/literal/atomicCompareExchangeWeak/storage_u32.spvasm.expected.ir.dxc.hlsl
@@ -1,9 +1,41 @@
-SKIP: FAILED
+struct x__atomic_compare_exchange_resultu32 {
+  uint old_value;
+  bool exchanged;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct atomic_compare_exchange_result_u32 {
+  uint old_value;
+  bool exchanged;
+};
+
+
+RWByteAddressBuffer sb_rw : register(u0);
+void atomicCompareExchangeWeak_63d8e6() {
+  x__atomic_compare_exchange_resultu32 res = (x__atomic_compare_exchange_resultu32)0;
+  uint v = 0u;
+  sb_rw.InterlockedCompareExchange(uint(0u), 1u, 1u, v);
+  uint v_1 = v;
+  atomic_compare_exchange_result_u32 v_2 = {v_1, (v_1 == 1u)};
+  uint old_value_1 = v_2.old_value;
+  uint x_17 = old_value_1;
+  x__atomic_compare_exchange_resultu32 v_3 = {x_17, (x_17 == 1u)};
+  res = v_3;
+}
+
+void fragment_main_1() {
+  atomicCompareExchangeWeak_63d8e6();
+}
+
+void fragment_main() {
+  fragment_main_1();
+}
+
+void compute_main_1() {
+  atomicCompareExchangeWeak_63d8e6();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  compute_main_1();
+}
+
diff --git a/test/tint/builtins/atomics/from_gen/literal/atomicCompareExchangeWeak/storage_u32.spvasm.expected.ir.fxc.hlsl b/test/tint/builtins/atomics/from_gen/literal/atomicCompareExchangeWeak/storage_u32.spvasm.expected.ir.fxc.hlsl
index 0ba40c6..2c4bb78 100644
--- a/test/tint/builtins/atomics/from_gen/literal/atomicCompareExchangeWeak/storage_u32.spvasm.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/atomics/from_gen/literal/atomicCompareExchangeWeak/storage_u32.spvasm.expected.ir.fxc.hlsl
@@ -1,9 +1,41 @@
-SKIP: FAILED
+struct x__atomic_compare_exchange_resultu32 {
+  uint old_value;
+  bool exchanged;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct atomic_compare_exchange_result_u32 {
+  uint old_value;
+  bool exchanged;
+};
+
+
+RWByteAddressBuffer sb_rw : register(u0);
+void atomicCompareExchangeWeak_63d8e6() {
+  x__atomic_compare_exchange_resultu32 res = (x__atomic_compare_exchange_resultu32)0;
+  uint v = 0u;
+  sb_rw.InterlockedCompareExchange(uint(0u), 1u, 1u, v);
+  uint v_1 = v;
+  atomic_compare_exchange_result_u32 v_2 = {v_1, (v_1 == 1u)};
+  uint old_value_1 = v_2.old_value;
+  uint x_17 = old_value_1;
+  x__atomic_compare_exchange_resultu32 v_3 = {x_17, (x_17 == 1u)};
+  res = v_3;
+}
+
+void fragment_main_1() {
+  atomicCompareExchangeWeak_63d8e6();
+}
+
+void fragment_main() {
+  fragment_main_1();
+}
+
+void compute_main_1() {
+  atomicCompareExchangeWeak_63d8e6();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  compute_main_1();
+}
+
diff --git a/test/tint/builtins/atomics/from_gen/literal/atomicCompareExchangeWeak/workgroup_i32.spvasm.expected.ir.dxc.hlsl b/test/tint/builtins/atomics/from_gen/literal/atomicCompareExchangeWeak/workgroup_i32.spvasm.expected.ir.dxc.hlsl
index 0ba40c6..6d5ca50 100644
--- a/test/tint/builtins/atomics/from_gen/literal/atomicCompareExchangeWeak/workgroup_i32.spvasm.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/atomics/from_gen/literal/atomicCompareExchangeWeak/workgroup_i32.spvasm.expected.ir.dxc.hlsl
@@ -1,9 +1,56 @@
-SKIP: FAILED
+struct x__atomic_compare_exchange_resulti32 {
+  int old_value;
+  bool exchanged;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct atomic_compare_exchange_result_i32 {
+  int old_value;
+  bool exchanged;
+};
+
+struct compute_main_inputs {
+  uint local_invocation_index_1_param : SV_GroupIndex;
+};
+
+
+static uint local_invocation_index_1 = 0u;
+groupshared int arg_0;
+void atomicCompareExchangeWeak_e88938() {
+  x__atomic_compare_exchange_resulti32 res = (x__atomic_compare_exchange_resulti32)0;
+  int v = 0;
+  InterlockedCompareExchange(arg_0, 1, 1, v);
+  int v_1 = v;
+  atomic_compare_exchange_result_i32 v_2 = {v_1, (v_1 == 1)};
+  int old_value_1 = v_2.old_value;
+  int x_18 = old_value_1;
+  x__atomic_compare_exchange_resulti32 v_3 = {x_18, (x_18 == 1)};
+  res = v_3;
+}
+
+void compute_main_inner(uint local_invocation_index_2) {
+  int v_4 = 0;
+  InterlockedExchange(arg_0, 0, v_4);
+  GroupMemoryBarrierWithGroupSync();
+  atomicCompareExchangeWeak_e88938();
+}
+
+void compute_main_1() {
+  uint x_36 = local_invocation_index_1;
+  compute_main_inner(x_36);
+}
+
+void compute_main_inner_1(uint local_invocation_index_1_param) {
+  if ((local_invocation_index_1_param == 0u)) {
+    int v_5 = 0;
+    InterlockedExchange(arg_0, 0, v_5);
+  }
+  GroupMemoryBarrierWithGroupSync();
+  local_invocation_index_1 = local_invocation_index_1_param;
+  compute_main_1();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main(compute_main_inputs inputs) {
+  compute_main_inner_1(inputs.local_invocation_index_1_param);
+}
+
diff --git a/test/tint/builtins/atomics/from_gen/literal/atomicCompareExchangeWeak/workgroup_i32.spvasm.expected.ir.fxc.hlsl b/test/tint/builtins/atomics/from_gen/literal/atomicCompareExchangeWeak/workgroup_i32.spvasm.expected.ir.fxc.hlsl
index 0ba40c6..6d5ca50 100644
--- a/test/tint/builtins/atomics/from_gen/literal/atomicCompareExchangeWeak/workgroup_i32.spvasm.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/atomics/from_gen/literal/atomicCompareExchangeWeak/workgroup_i32.spvasm.expected.ir.fxc.hlsl
@@ -1,9 +1,56 @@
-SKIP: FAILED
+struct x__atomic_compare_exchange_resulti32 {
+  int old_value;
+  bool exchanged;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct atomic_compare_exchange_result_i32 {
+  int old_value;
+  bool exchanged;
+};
+
+struct compute_main_inputs {
+  uint local_invocation_index_1_param : SV_GroupIndex;
+};
+
+
+static uint local_invocation_index_1 = 0u;
+groupshared int arg_0;
+void atomicCompareExchangeWeak_e88938() {
+  x__atomic_compare_exchange_resulti32 res = (x__atomic_compare_exchange_resulti32)0;
+  int v = 0;
+  InterlockedCompareExchange(arg_0, 1, 1, v);
+  int v_1 = v;
+  atomic_compare_exchange_result_i32 v_2 = {v_1, (v_1 == 1)};
+  int old_value_1 = v_2.old_value;
+  int x_18 = old_value_1;
+  x__atomic_compare_exchange_resulti32 v_3 = {x_18, (x_18 == 1)};
+  res = v_3;
+}
+
+void compute_main_inner(uint local_invocation_index_2) {
+  int v_4 = 0;
+  InterlockedExchange(arg_0, 0, v_4);
+  GroupMemoryBarrierWithGroupSync();
+  atomicCompareExchangeWeak_e88938();
+}
+
+void compute_main_1() {
+  uint x_36 = local_invocation_index_1;
+  compute_main_inner(x_36);
+}
+
+void compute_main_inner_1(uint local_invocation_index_1_param) {
+  if ((local_invocation_index_1_param == 0u)) {
+    int v_5 = 0;
+    InterlockedExchange(arg_0, 0, v_5);
+  }
+  GroupMemoryBarrierWithGroupSync();
+  local_invocation_index_1 = local_invocation_index_1_param;
+  compute_main_1();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main(compute_main_inputs inputs) {
+  compute_main_inner_1(inputs.local_invocation_index_1_param);
+}
+
diff --git a/test/tint/builtins/atomics/from_gen/literal/atomicCompareExchangeWeak/workgroup_u32.spvasm.expected.ir.dxc.hlsl b/test/tint/builtins/atomics/from_gen/literal/atomicCompareExchangeWeak/workgroup_u32.spvasm.expected.ir.dxc.hlsl
index 0ba40c6..7d65102 100644
--- a/test/tint/builtins/atomics/from_gen/literal/atomicCompareExchangeWeak/workgroup_u32.spvasm.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/atomics/from_gen/literal/atomicCompareExchangeWeak/workgroup_u32.spvasm.expected.ir.dxc.hlsl
@@ -1,9 +1,56 @@
-SKIP: FAILED
+struct x__atomic_compare_exchange_resultu32 {
+  uint old_value;
+  bool exchanged;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct atomic_compare_exchange_result_u32 {
+  uint old_value;
+  bool exchanged;
+};
+
+struct compute_main_inputs {
+  uint local_invocation_index_1_param : SV_GroupIndex;
+};
+
+
+static uint local_invocation_index_1 = 0u;
+groupshared uint arg_0;
+void atomicCompareExchangeWeak_83580d() {
+  x__atomic_compare_exchange_resultu32 res = (x__atomic_compare_exchange_resultu32)0;
+  uint v = 0u;
+  InterlockedCompareExchange(arg_0, 1u, 1u, v);
+  uint v_1 = v;
+  atomic_compare_exchange_result_u32 v_2 = {v_1, (v_1 == 1u)};
+  uint old_value_1 = v_2.old_value;
+  uint x_17 = old_value_1;
+  x__atomic_compare_exchange_resultu32 v_3 = {x_17, (x_17 == 1u)};
+  res = v_3;
+}
+
+void compute_main_inner(uint local_invocation_index_2) {
+  uint v_4 = 0u;
+  InterlockedExchange(arg_0, 0u, v_4);
+  GroupMemoryBarrierWithGroupSync();
+  atomicCompareExchangeWeak_83580d();
+}
+
+void compute_main_1() {
+  uint x_35 = local_invocation_index_1;
+  compute_main_inner(x_35);
+}
+
+void compute_main_inner_1(uint local_invocation_index_1_param) {
+  if ((local_invocation_index_1_param == 0u)) {
+    uint v_5 = 0u;
+    InterlockedExchange(arg_0, 0u, v_5);
+  }
+  GroupMemoryBarrierWithGroupSync();
+  local_invocation_index_1 = local_invocation_index_1_param;
+  compute_main_1();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main(compute_main_inputs inputs) {
+  compute_main_inner_1(inputs.local_invocation_index_1_param);
+}
+
diff --git a/test/tint/builtins/atomics/from_gen/literal/atomicCompareExchangeWeak/workgroup_u32.spvasm.expected.ir.fxc.hlsl b/test/tint/builtins/atomics/from_gen/literal/atomicCompareExchangeWeak/workgroup_u32.spvasm.expected.ir.fxc.hlsl
index 0ba40c6..7d65102 100644
--- a/test/tint/builtins/atomics/from_gen/literal/atomicCompareExchangeWeak/workgroup_u32.spvasm.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/atomics/from_gen/literal/atomicCompareExchangeWeak/workgroup_u32.spvasm.expected.ir.fxc.hlsl
@@ -1,9 +1,56 @@
-SKIP: FAILED
+struct x__atomic_compare_exchange_resultu32 {
+  uint old_value;
+  bool exchanged;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct atomic_compare_exchange_result_u32 {
+  uint old_value;
+  bool exchanged;
+};
+
+struct compute_main_inputs {
+  uint local_invocation_index_1_param : SV_GroupIndex;
+};
+
+
+static uint local_invocation_index_1 = 0u;
+groupshared uint arg_0;
+void atomicCompareExchangeWeak_83580d() {
+  x__atomic_compare_exchange_resultu32 res = (x__atomic_compare_exchange_resultu32)0;
+  uint v = 0u;
+  InterlockedCompareExchange(arg_0, 1u, 1u, v);
+  uint v_1 = v;
+  atomic_compare_exchange_result_u32 v_2 = {v_1, (v_1 == 1u)};
+  uint old_value_1 = v_2.old_value;
+  uint x_17 = old_value_1;
+  x__atomic_compare_exchange_resultu32 v_3 = {x_17, (x_17 == 1u)};
+  res = v_3;
+}
+
+void compute_main_inner(uint local_invocation_index_2) {
+  uint v_4 = 0u;
+  InterlockedExchange(arg_0, 0u, v_4);
+  GroupMemoryBarrierWithGroupSync();
+  atomicCompareExchangeWeak_83580d();
+}
+
+void compute_main_1() {
+  uint x_35 = local_invocation_index_1;
+  compute_main_inner(x_35);
+}
+
+void compute_main_inner_1(uint local_invocation_index_1_param) {
+  if ((local_invocation_index_1_param == 0u)) {
+    uint v_5 = 0u;
+    InterlockedExchange(arg_0, 0u, v_5);
+  }
+  GroupMemoryBarrierWithGroupSync();
+  local_invocation_index_1 = local_invocation_index_1_param;
+  compute_main_1();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main(compute_main_inputs inputs) {
+  compute_main_inner_1(inputs.local_invocation_index_1_param);
+}
+
diff --git a/test/tint/builtins/atomics/from_gen/literal/atomicExchange/storage_i32.spvasm.expected.ir.dxc.hlsl b/test/tint/builtins/atomics/from_gen/literal/atomicExchange/storage_i32.spvasm.expected.ir.dxc.hlsl
index 165fea9..a1f41f5 100644
--- a/test/tint/builtins/atomics/from_gen/literal/atomicExchange/storage_i32.spvasm.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/atomics/from_gen/literal/atomicExchange/storage_i32.spvasm.expected.ir.dxc.hlsl
@@ -1,9 +1,27 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: atomicExchange
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWByteAddressBuffer sb_rw : register(u0);
+void atomicExchange_f2e22f() {
+  int res = 0;
+  int v = 0;
+  sb_rw.InterlockedExchange(int(0u), 1, v);
+  int x_9 = v;
+  res = x_9;
+}
+
+void fragment_main_1() {
+  atomicExchange_f2e22f();
+}
+
+void fragment_main() {
+  fragment_main_1();
+}
+
+void compute_main_1() {
+  atomicExchange_f2e22f();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  compute_main_1();
+}
+
diff --git a/test/tint/builtins/atomics/from_gen/literal/atomicExchange/storage_i32.spvasm.expected.ir.fxc.hlsl b/test/tint/builtins/atomics/from_gen/literal/atomicExchange/storage_i32.spvasm.expected.ir.fxc.hlsl
index 165fea9..a1f41f5 100644
--- a/test/tint/builtins/atomics/from_gen/literal/atomicExchange/storage_i32.spvasm.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/atomics/from_gen/literal/atomicExchange/storage_i32.spvasm.expected.ir.fxc.hlsl
@@ -1,9 +1,27 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: atomicExchange
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWByteAddressBuffer sb_rw : register(u0);
+void atomicExchange_f2e22f() {
+  int res = 0;
+  int v = 0;
+  sb_rw.InterlockedExchange(int(0u), 1, v);
+  int x_9 = v;
+  res = x_9;
+}
+
+void fragment_main_1() {
+  atomicExchange_f2e22f();
+}
+
+void fragment_main() {
+  fragment_main_1();
+}
+
+void compute_main_1() {
+  atomicExchange_f2e22f();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  compute_main_1();
+}
+
diff --git a/test/tint/builtins/atomics/from_gen/literal/atomicExchange/storage_u32.spvasm.expected.ir.dxc.hlsl b/test/tint/builtins/atomics/from_gen/literal/atomicExchange/storage_u32.spvasm.expected.ir.dxc.hlsl
index 165fea9..bfe8362 100644
--- a/test/tint/builtins/atomics/from_gen/literal/atomicExchange/storage_u32.spvasm.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/atomics/from_gen/literal/atomicExchange/storage_u32.spvasm.expected.ir.dxc.hlsl
@@ -1,9 +1,27 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: atomicExchange
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWByteAddressBuffer sb_rw : register(u0);
+void atomicExchange_d59712() {
+  uint res = 0u;
+  uint v = 0u;
+  sb_rw.InterlockedExchange(uint(0u), 1u, v);
+  uint x_9 = v;
+  res = x_9;
+}
+
+void fragment_main_1() {
+  atomicExchange_d59712();
+}
+
+void fragment_main() {
+  fragment_main_1();
+}
+
+void compute_main_1() {
+  atomicExchange_d59712();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  compute_main_1();
+}
+
diff --git a/test/tint/builtins/atomics/from_gen/literal/atomicExchange/storage_u32.spvasm.expected.ir.fxc.hlsl b/test/tint/builtins/atomics/from_gen/literal/atomicExchange/storage_u32.spvasm.expected.ir.fxc.hlsl
index 165fea9..bfe8362 100644
--- a/test/tint/builtins/atomics/from_gen/literal/atomicExchange/storage_u32.spvasm.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/atomics/from_gen/literal/atomicExchange/storage_u32.spvasm.expected.ir.fxc.hlsl
@@ -1,9 +1,27 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: atomicExchange
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWByteAddressBuffer sb_rw : register(u0);
+void atomicExchange_d59712() {
+  uint res = 0u;
+  uint v = 0u;
+  sb_rw.InterlockedExchange(uint(0u), 1u, v);
+  uint x_9 = v;
+  res = x_9;
+}
+
+void fragment_main_1() {
+  atomicExchange_d59712();
+}
+
+void fragment_main() {
+  fragment_main_1();
+}
+
+void compute_main_1() {
+  atomicExchange_d59712();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  compute_main_1();
+}
+
diff --git a/test/tint/builtins/atomics/from_gen/literal/atomicExchange/workgroup_i32.spvasm.expected.ir.dxc.hlsl b/test/tint/builtins/atomics/from_gen/literal/atomicExchange/workgroup_i32.spvasm.expected.ir.dxc.hlsl
index 165fea9..ef5cbf6 100644
--- a/test/tint/builtins/atomics/from_gen/literal/atomicExchange/workgroup_i32.spvasm.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/atomics/from_gen/literal/atomicExchange/workgroup_i32.spvasm.expected.ir.dxc.hlsl
@@ -1,9 +1,42 @@
-SKIP: FAILED
+struct compute_main_inputs {
+  uint local_invocation_index_1_param : SV_GroupIndex;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: atomicExchange
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+
+static uint local_invocation_index_1 = 0u;
+groupshared int arg_0;
+void atomicExchange_e114ba() {
+  int res = 0;
+  int v = 0;
+  InterlockedExchange(arg_0, 1, v);
+  int x_11 = v;
+  res = x_11;
+}
+
+void compute_main_inner(uint local_invocation_index_2) {
+  int v_1 = 0;
+  InterlockedExchange(arg_0, 0, v_1);
+  GroupMemoryBarrierWithGroupSync();
+  atomicExchange_e114ba();
+}
+
+void compute_main_1() {
+  uint x_31 = local_invocation_index_1;
+  compute_main_inner(x_31);
+}
+
+void compute_main_inner_1(uint local_invocation_index_1_param) {
+  if ((local_invocation_index_1_param == 0u)) {
+    int v_2 = 0;
+    InterlockedExchange(arg_0, 0, v_2);
+  }
+  GroupMemoryBarrierWithGroupSync();
+  local_invocation_index_1 = local_invocation_index_1_param;
+  compute_main_1();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main(compute_main_inputs inputs) {
+  compute_main_inner_1(inputs.local_invocation_index_1_param);
+}
+
diff --git a/test/tint/builtins/atomics/from_gen/literal/atomicExchange/workgroup_i32.spvasm.expected.ir.fxc.hlsl b/test/tint/builtins/atomics/from_gen/literal/atomicExchange/workgroup_i32.spvasm.expected.ir.fxc.hlsl
index 165fea9..ef5cbf6 100644
--- a/test/tint/builtins/atomics/from_gen/literal/atomicExchange/workgroup_i32.spvasm.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/atomics/from_gen/literal/atomicExchange/workgroup_i32.spvasm.expected.ir.fxc.hlsl
@@ -1,9 +1,42 @@
-SKIP: FAILED
+struct compute_main_inputs {
+  uint local_invocation_index_1_param : SV_GroupIndex;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: atomicExchange
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+
+static uint local_invocation_index_1 = 0u;
+groupshared int arg_0;
+void atomicExchange_e114ba() {
+  int res = 0;
+  int v = 0;
+  InterlockedExchange(arg_0, 1, v);
+  int x_11 = v;
+  res = x_11;
+}
+
+void compute_main_inner(uint local_invocation_index_2) {
+  int v_1 = 0;
+  InterlockedExchange(arg_0, 0, v_1);
+  GroupMemoryBarrierWithGroupSync();
+  atomicExchange_e114ba();
+}
+
+void compute_main_1() {
+  uint x_31 = local_invocation_index_1;
+  compute_main_inner(x_31);
+}
+
+void compute_main_inner_1(uint local_invocation_index_1_param) {
+  if ((local_invocation_index_1_param == 0u)) {
+    int v_2 = 0;
+    InterlockedExchange(arg_0, 0, v_2);
+  }
+  GroupMemoryBarrierWithGroupSync();
+  local_invocation_index_1 = local_invocation_index_1_param;
+  compute_main_1();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main(compute_main_inputs inputs) {
+  compute_main_inner_1(inputs.local_invocation_index_1_param);
+}
+
diff --git a/test/tint/builtins/atomics/from_gen/literal/atomicExchange/workgroup_u32.spvasm.expected.ir.dxc.hlsl b/test/tint/builtins/atomics/from_gen/literal/atomicExchange/workgroup_u32.spvasm.expected.ir.dxc.hlsl
index 165fea9..08a8d19 100644
--- a/test/tint/builtins/atomics/from_gen/literal/atomicExchange/workgroup_u32.spvasm.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/atomics/from_gen/literal/atomicExchange/workgroup_u32.spvasm.expected.ir.dxc.hlsl
@@ -1,9 +1,42 @@
-SKIP: FAILED
+struct compute_main_inputs {
+  uint local_invocation_index_1_param : SV_GroupIndex;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: atomicExchange
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+
+static uint local_invocation_index_1 = 0u;
+groupshared uint arg_0;
+void atomicExchange_0a5dca() {
+  uint res = 0u;
+  uint v = 0u;
+  InterlockedExchange(arg_0, 1u, v);
+  uint x_10 = v;
+  res = x_10;
+}
+
+void compute_main_inner(uint local_invocation_index_2) {
+  uint v_1 = 0u;
+  InterlockedExchange(arg_0, 0u, v_1);
+  GroupMemoryBarrierWithGroupSync();
+  atomicExchange_0a5dca();
+}
+
+void compute_main_1() {
+  uint x_30 = local_invocation_index_1;
+  compute_main_inner(x_30);
+}
+
+void compute_main_inner_1(uint local_invocation_index_1_param) {
+  if ((local_invocation_index_1_param == 0u)) {
+    uint v_2 = 0u;
+    InterlockedExchange(arg_0, 0u, v_2);
+  }
+  GroupMemoryBarrierWithGroupSync();
+  local_invocation_index_1 = local_invocation_index_1_param;
+  compute_main_1();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main(compute_main_inputs inputs) {
+  compute_main_inner_1(inputs.local_invocation_index_1_param);
+}
+
diff --git a/test/tint/builtins/atomics/from_gen/literal/atomicExchange/workgroup_u32.spvasm.expected.ir.fxc.hlsl b/test/tint/builtins/atomics/from_gen/literal/atomicExchange/workgroup_u32.spvasm.expected.ir.fxc.hlsl
index 165fea9..08a8d19 100644
--- a/test/tint/builtins/atomics/from_gen/literal/atomicExchange/workgroup_u32.spvasm.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/atomics/from_gen/literal/atomicExchange/workgroup_u32.spvasm.expected.ir.fxc.hlsl
@@ -1,9 +1,42 @@
-SKIP: FAILED
+struct compute_main_inputs {
+  uint local_invocation_index_1_param : SV_GroupIndex;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: atomicExchange
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+
+static uint local_invocation_index_1 = 0u;
+groupshared uint arg_0;
+void atomicExchange_0a5dca() {
+  uint res = 0u;
+  uint v = 0u;
+  InterlockedExchange(arg_0, 1u, v);
+  uint x_10 = v;
+  res = x_10;
+}
+
+void compute_main_inner(uint local_invocation_index_2) {
+  uint v_1 = 0u;
+  InterlockedExchange(arg_0, 0u, v_1);
+  GroupMemoryBarrierWithGroupSync();
+  atomicExchange_0a5dca();
+}
+
+void compute_main_1() {
+  uint x_30 = local_invocation_index_1;
+  compute_main_inner(x_30);
+}
+
+void compute_main_inner_1(uint local_invocation_index_1_param) {
+  if ((local_invocation_index_1_param == 0u)) {
+    uint v_2 = 0u;
+    InterlockedExchange(arg_0, 0u, v_2);
+  }
+  GroupMemoryBarrierWithGroupSync();
+  local_invocation_index_1 = local_invocation_index_1_param;
+  compute_main_1();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main(compute_main_inputs inputs) {
+  compute_main_inner_1(inputs.local_invocation_index_1_param);
+}
+
diff --git a/test/tint/builtins/atomics/from_gen/literal/atomicLoad/storage_i32.spvasm.expected.ir.dxc.hlsl b/test/tint/builtins/atomics/from_gen/literal/atomicLoad/storage_i32.spvasm.expected.ir.dxc.hlsl
index 11d7ec0..228c7fa 100644
--- a/test/tint/builtins/atomics/from_gen/literal/atomicLoad/storage_i32.spvasm.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/atomics/from_gen/literal/atomicLoad/storage_i32.spvasm.expected.ir.dxc.hlsl
@@ -1,9 +1,27 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: atomicLoad
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWByteAddressBuffer sb_rw : register(u0);
+void atomicLoad_0806ad() {
+  int res = 0;
+  int v = 0;
+  sb_rw.InterlockedOr(int(0u), 0, v);
+  int x_9 = v;
+  res = x_9;
+}
+
+void fragment_main_1() {
+  atomicLoad_0806ad();
+}
+
+void fragment_main() {
+  fragment_main_1();
+}
+
+void compute_main_1() {
+  atomicLoad_0806ad();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  compute_main_1();
+}
+
diff --git a/test/tint/builtins/atomics/from_gen/literal/atomicLoad/storage_i32.spvasm.expected.ir.fxc.hlsl b/test/tint/builtins/atomics/from_gen/literal/atomicLoad/storage_i32.spvasm.expected.ir.fxc.hlsl
index 11d7ec0..228c7fa 100644
--- a/test/tint/builtins/atomics/from_gen/literal/atomicLoad/storage_i32.spvasm.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/atomics/from_gen/literal/atomicLoad/storage_i32.spvasm.expected.ir.fxc.hlsl
@@ -1,9 +1,27 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: atomicLoad
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWByteAddressBuffer sb_rw : register(u0);
+void atomicLoad_0806ad() {
+  int res = 0;
+  int v = 0;
+  sb_rw.InterlockedOr(int(0u), 0, v);
+  int x_9 = v;
+  res = x_9;
+}
+
+void fragment_main_1() {
+  atomicLoad_0806ad();
+}
+
+void fragment_main() {
+  fragment_main_1();
+}
+
+void compute_main_1() {
+  atomicLoad_0806ad();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  compute_main_1();
+}
+
diff --git a/test/tint/builtins/atomics/from_gen/literal/atomicLoad/storage_u32.spvasm.expected.ir.dxc.hlsl b/test/tint/builtins/atomics/from_gen/literal/atomicLoad/storage_u32.spvasm.expected.ir.dxc.hlsl
index 11d7ec0..51447f5 100644
--- a/test/tint/builtins/atomics/from_gen/literal/atomicLoad/storage_u32.spvasm.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/atomics/from_gen/literal/atomicLoad/storage_u32.spvasm.expected.ir.dxc.hlsl
@@ -1,9 +1,27 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: atomicLoad
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWByteAddressBuffer sb_rw : register(u0);
+void atomicLoad_fe6cc3() {
+  uint res = 0u;
+  uint v = 0u;
+  sb_rw.InterlockedOr(uint(0u), 0u, v);
+  uint x_9 = v;
+  res = x_9;
+}
+
+void fragment_main_1() {
+  atomicLoad_fe6cc3();
+}
+
+void fragment_main() {
+  fragment_main_1();
+}
+
+void compute_main_1() {
+  atomicLoad_fe6cc3();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  compute_main_1();
+}
+
diff --git a/test/tint/builtins/atomics/from_gen/literal/atomicLoad/storage_u32.spvasm.expected.ir.fxc.hlsl b/test/tint/builtins/atomics/from_gen/literal/atomicLoad/storage_u32.spvasm.expected.ir.fxc.hlsl
index 11d7ec0..51447f5 100644
--- a/test/tint/builtins/atomics/from_gen/literal/atomicLoad/storage_u32.spvasm.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/atomics/from_gen/literal/atomicLoad/storage_u32.spvasm.expected.ir.fxc.hlsl
@@ -1,9 +1,27 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: atomicLoad
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWByteAddressBuffer sb_rw : register(u0);
+void atomicLoad_fe6cc3() {
+  uint res = 0u;
+  uint v = 0u;
+  sb_rw.InterlockedOr(uint(0u), 0u, v);
+  uint x_9 = v;
+  res = x_9;
+}
+
+void fragment_main_1() {
+  atomicLoad_fe6cc3();
+}
+
+void fragment_main() {
+  fragment_main_1();
+}
+
+void compute_main_1() {
+  atomicLoad_fe6cc3();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  compute_main_1();
+}
+
diff --git a/test/tint/builtins/atomics/from_gen/literal/atomicLoad/workgroup_i32.spvasm.expected.ir.dxc.hlsl b/test/tint/builtins/atomics/from_gen/literal/atomicLoad/workgroup_i32.spvasm.expected.ir.dxc.hlsl
index 11d7ec0..2c40049 100644
--- a/test/tint/builtins/atomics/from_gen/literal/atomicLoad/workgroup_i32.spvasm.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/atomics/from_gen/literal/atomicLoad/workgroup_i32.spvasm.expected.ir.dxc.hlsl
@@ -1,9 +1,42 @@
-SKIP: FAILED
+struct compute_main_inputs {
+  uint local_invocation_index_1_param : SV_GroupIndex;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: atomicLoad
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+
+static uint local_invocation_index_1 = 0u;
+groupshared int arg_0;
+void atomicLoad_afcc03() {
+  int res = 0;
+  int v = 0;
+  InterlockedOr(arg_0, 0, v);
+  int x_11 = v;
+  res = x_11;
+}
+
+void compute_main_inner(uint local_invocation_index_2) {
+  int v_1 = 0;
+  InterlockedExchange(arg_0, 0, v_1);
+  GroupMemoryBarrierWithGroupSync();
+  atomicLoad_afcc03();
+}
+
+void compute_main_1() {
+  uint x_30 = local_invocation_index_1;
+  compute_main_inner(x_30);
+}
+
+void compute_main_inner_1(uint local_invocation_index_1_param) {
+  if ((local_invocation_index_1_param == 0u)) {
+    int v_2 = 0;
+    InterlockedExchange(arg_0, 0, v_2);
+  }
+  GroupMemoryBarrierWithGroupSync();
+  local_invocation_index_1 = local_invocation_index_1_param;
+  compute_main_1();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main(compute_main_inputs inputs) {
+  compute_main_inner_1(inputs.local_invocation_index_1_param);
+}
+
diff --git a/test/tint/builtins/atomics/from_gen/literal/atomicLoad/workgroup_i32.spvasm.expected.ir.fxc.hlsl b/test/tint/builtins/atomics/from_gen/literal/atomicLoad/workgroup_i32.spvasm.expected.ir.fxc.hlsl
index 11d7ec0..2c40049 100644
--- a/test/tint/builtins/atomics/from_gen/literal/atomicLoad/workgroup_i32.spvasm.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/atomics/from_gen/literal/atomicLoad/workgroup_i32.spvasm.expected.ir.fxc.hlsl
@@ -1,9 +1,42 @@
-SKIP: FAILED
+struct compute_main_inputs {
+  uint local_invocation_index_1_param : SV_GroupIndex;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: atomicLoad
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+
+static uint local_invocation_index_1 = 0u;
+groupshared int arg_0;
+void atomicLoad_afcc03() {
+  int res = 0;
+  int v = 0;
+  InterlockedOr(arg_0, 0, v);
+  int x_11 = v;
+  res = x_11;
+}
+
+void compute_main_inner(uint local_invocation_index_2) {
+  int v_1 = 0;
+  InterlockedExchange(arg_0, 0, v_1);
+  GroupMemoryBarrierWithGroupSync();
+  atomicLoad_afcc03();
+}
+
+void compute_main_1() {
+  uint x_30 = local_invocation_index_1;
+  compute_main_inner(x_30);
+}
+
+void compute_main_inner_1(uint local_invocation_index_1_param) {
+  if ((local_invocation_index_1_param == 0u)) {
+    int v_2 = 0;
+    InterlockedExchange(arg_0, 0, v_2);
+  }
+  GroupMemoryBarrierWithGroupSync();
+  local_invocation_index_1 = local_invocation_index_1_param;
+  compute_main_1();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main(compute_main_inputs inputs) {
+  compute_main_inner_1(inputs.local_invocation_index_1_param);
+}
+
diff --git a/test/tint/builtins/atomics/from_gen/literal/atomicLoad/workgroup_u32.spvasm.expected.ir.dxc.hlsl b/test/tint/builtins/atomics/from_gen/literal/atomicLoad/workgroup_u32.spvasm.expected.ir.dxc.hlsl
index 11d7ec0..f148b47 100644
--- a/test/tint/builtins/atomics/from_gen/literal/atomicLoad/workgroup_u32.spvasm.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/atomics/from_gen/literal/atomicLoad/workgroup_u32.spvasm.expected.ir.dxc.hlsl
@@ -1,9 +1,42 @@
-SKIP: FAILED
+struct compute_main_inputs {
+  uint local_invocation_index_1_param : SV_GroupIndex;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: atomicLoad
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+
+static uint local_invocation_index_1 = 0u;
+groupshared uint arg_0;
+void atomicLoad_361bf1() {
+  uint res = 0u;
+  uint v = 0u;
+  InterlockedOr(arg_0, 0u, v);
+  uint x_10 = v;
+  res = x_10;
+}
+
+void compute_main_inner(uint local_invocation_index_2) {
+  uint v_1 = 0u;
+  InterlockedExchange(arg_0, 0u, v_1);
+  GroupMemoryBarrierWithGroupSync();
+  atomicLoad_361bf1();
+}
+
+void compute_main_1() {
+  uint x_29 = local_invocation_index_1;
+  compute_main_inner(x_29);
+}
+
+void compute_main_inner_1(uint local_invocation_index_1_param) {
+  if ((local_invocation_index_1_param == 0u)) {
+    uint v_2 = 0u;
+    InterlockedExchange(arg_0, 0u, v_2);
+  }
+  GroupMemoryBarrierWithGroupSync();
+  local_invocation_index_1 = local_invocation_index_1_param;
+  compute_main_1();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main(compute_main_inputs inputs) {
+  compute_main_inner_1(inputs.local_invocation_index_1_param);
+}
+
diff --git a/test/tint/builtins/atomics/from_gen/literal/atomicLoad/workgroup_u32.spvasm.expected.ir.fxc.hlsl b/test/tint/builtins/atomics/from_gen/literal/atomicLoad/workgroup_u32.spvasm.expected.ir.fxc.hlsl
index 11d7ec0..f148b47 100644
--- a/test/tint/builtins/atomics/from_gen/literal/atomicLoad/workgroup_u32.spvasm.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/atomics/from_gen/literal/atomicLoad/workgroup_u32.spvasm.expected.ir.fxc.hlsl
@@ -1,9 +1,42 @@
-SKIP: FAILED
+struct compute_main_inputs {
+  uint local_invocation_index_1_param : SV_GroupIndex;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: atomicLoad
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+
+static uint local_invocation_index_1 = 0u;
+groupshared uint arg_0;
+void atomicLoad_361bf1() {
+  uint res = 0u;
+  uint v = 0u;
+  InterlockedOr(arg_0, 0u, v);
+  uint x_10 = v;
+  res = x_10;
+}
+
+void compute_main_inner(uint local_invocation_index_2) {
+  uint v_1 = 0u;
+  InterlockedExchange(arg_0, 0u, v_1);
+  GroupMemoryBarrierWithGroupSync();
+  atomicLoad_361bf1();
+}
+
+void compute_main_1() {
+  uint x_29 = local_invocation_index_1;
+  compute_main_inner(x_29);
+}
+
+void compute_main_inner_1(uint local_invocation_index_1_param) {
+  if ((local_invocation_index_1_param == 0u)) {
+    uint v_2 = 0u;
+    InterlockedExchange(arg_0, 0u, v_2);
+  }
+  GroupMemoryBarrierWithGroupSync();
+  local_invocation_index_1 = local_invocation_index_1_param;
+  compute_main_1();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main(compute_main_inputs inputs) {
+  compute_main_inner_1(inputs.local_invocation_index_1_param);
+}
+
diff --git a/test/tint/builtins/atomics/from_gen/literal/atomicMax/storage_i32.spvasm.expected.ir.dxc.hlsl b/test/tint/builtins/atomics/from_gen/literal/atomicMax/storage_i32.spvasm.expected.ir.dxc.hlsl
index d14c326..4b21706 100644
--- a/test/tint/builtins/atomics/from_gen/literal/atomicMax/storage_i32.spvasm.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/atomics/from_gen/literal/atomicMax/storage_i32.spvasm.expected.ir.dxc.hlsl
@@ -1,9 +1,27 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: atomicMax
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWByteAddressBuffer sb_rw : register(u0);
+void atomicMax_92aa72() {
+  int res = 0;
+  int v = 0;
+  sb_rw.InterlockedMax(int(0u), 1, v);
+  int x_9 = v;
+  res = x_9;
+}
+
+void fragment_main_1() {
+  atomicMax_92aa72();
+}
+
+void fragment_main() {
+  fragment_main_1();
+}
+
+void compute_main_1() {
+  atomicMax_92aa72();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  compute_main_1();
+}
+
diff --git a/test/tint/builtins/atomics/from_gen/literal/atomicMax/storage_i32.spvasm.expected.ir.fxc.hlsl b/test/tint/builtins/atomics/from_gen/literal/atomicMax/storage_i32.spvasm.expected.ir.fxc.hlsl
index d14c326..4b21706 100644
--- a/test/tint/builtins/atomics/from_gen/literal/atomicMax/storage_i32.spvasm.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/atomics/from_gen/literal/atomicMax/storage_i32.spvasm.expected.ir.fxc.hlsl
@@ -1,9 +1,27 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: atomicMax
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWByteAddressBuffer sb_rw : register(u0);
+void atomicMax_92aa72() {
+  int res = 0;
+  int v = 0;
+  sb_rw.InterlockedMax(int(0u), 1, v);
+  int x_9 = v;
+  res = x_9;
+}
+
+void fragment_main_1() {
+  atomicMax_92aa72();
+}
+
+void fragment_main() {
+  fragment_main_1();
+}
+
+void compute_main_1() {
+  atomicMax_92aa72();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  compute_main_1();
+}
+
diff --git a/test/tint/builtins/atomics/from_gen/literal/atomicMax/storage_u32.spvasm.expected.ir.dxc.hlsl b/test/tint/builtins/atomics/from_gen/literal/atomicMax/storage_u32.spvasm.expected.ir.dxc.hlsl
index d14c326..7420753 100644
--- a/test/tint/builtins/atomics/from_gen/literal/atomicMax/storage_u32.spvasm.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/atomics/from_gen/literal/atomicMax/storage_u32.spvasm.expected.ir.dxc.hlsl
@@ -1,9 +1,27 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: atomicMax
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWByteAddressBuffer sb_rw : register(u0);
+void atomicMax_51b9be() {
+  uint res = 0u;
+  uint v = 0u;
+  sb_rw.InterlockedMax(uint(0u), 1u, v);
+  uint x_9 = v;
+  res = x_9;
+}
+
+void fragment_main_1() {
+  atomicMax_51b9be();
+}
+
+void fragment_main() {
+  fragment_main_1();
+}
+
+void compute_main_1() {
+  atomicMax_51b9be();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  compute_main_1();
+}
+
diff --git a/test/tint/builtins/atomics/from_gen/literal/atomicMax/storage_u32.spvasm.expected.ir.fxc.hlsl b/test/tint/builtins/atomics/from_gen/literal/atomicMax/storage_u32.spvasm.expected.ir.fxc.hlsl
index d14c326..7420753 100644
--- a/test/tint/builtins/atomics/from_gen/literal/atomicMax/storage_u32.spvasm.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/atomics/from_gen/literal/atomicMax/storage_u32.spvasm.expected.ir.fxc.hlsl
@@ -1,9 +1,27 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: atomicMax
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWByteAddressBuffer sb_rw : register(u0);
+void atomicMax_51b9be() {
+  uint res = 0u;
+  uint v = 0u;
+  sb_rw.InterlockedMax(uint(0u), 1u, v);
+  uint x_9 = v;
+  res = x_9;
+}
+
+void fragment_main_1() {
+  atomicMax_51b9be();
+}
+
+void fragment_main() {
+  fragment_main_1();
+}
+
+void compute_main_1() {
+  atomicMax_51b9be();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  compute_main_1();
+}
+
diff --git a/test/tint/builtins/atomics/from_gen/literal/atomicMax/workgroup_i32.spvasm.expected.ir.dxc.hlsl b/test/tint/builtins/atomics/from_gen/literal/atomicMax/workgroup_i32.spvasm.expected.ir.dxc.hlsl
index d14c326..3e61580 100644
--- a/test/tint/builtins/atomics/from_gen/literal/atomicMax/workgroup_i32.spvasm.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/atomics/from_gen/literal/atomicMax/workgroup_i32.spvasm.expected.ir.dxc.hlsl
@@ -1,9 +1,42 @@
-SKIP: FAILED
+struct compute_main_inputs {
+  uint local_invocation_index_1_param : SV_GroupIndex;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: atomicMax
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+
+static uint local_invocation_index_1 = 0u;
+groupshared int arg_0;
+void atomicMax_a89cc3() {
+  int res = 0;
+  int v = 0;
+  InterlockedMax(arg_0, 1, v);
+  int x_11 = v;
+  res = x_11;
+}
+
+void compute_main_inner(uint local_invocation_index_2) {
+  int v_1 = 0;
+  InterlockedExchange(arg_0, 0, v_1);
+  GroupMemoryBarrierWithGroupSync();
+  atomicMax_a89cc3();
+}
+
+void compute_main_1() {
+  uint x_31 = local_invocation_index_1;
+  compute_main_inner(x_31);
+}
+
+void compute_main_inner_1(uint local_invocation_index_1_param) {
+  if ((local_invocation_index_1_param == 0u)) {
+    int v_2 = 0;
+    InterlockedExchange(arg_0, 0, v_2);
+  }
+  GroupMemoryBarrierWithGroupSync();
+  local_invocation_index_1 = local_invocation_index_1_param;
+  compute_main_1();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main(compute_main_inputs inputs) {
+  compute_main_inner_1(inputs.local_invocation_index_1_param);
+}
+
diff --git a/test/tint/builtins/atomics/from_gen/literal/atomicMax/workgroup_i32.spvasm.expected.ir.fxc.hlsl b/test/tint/builtins/atomics/from_gen/literal/atomicMax/workgroup_i32.spvasm.expected.ir.fxc.hlsl
index d14c326..3e61580 100644
--- a/test/tint/builtins/atomics/from_gen/literal/atomicMax/workgroup_i32.spvasm.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/atomics/from_gen/literal/atomicMax/workgroup_i32.spvasm.expected.ir.fxc.hlsl
@@ -1,9 +1,42 @@
-SKIP: FAILED
+struct compute_main_inputs {
+  uint local_invocation_index_1_param : SV_GroupIndex;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: atomicMax
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+
+static uint local_invocation_index_1 = 0u;
+groupshared int arg_0;
+void atomicMax_a89cc3() {
+  int res = 0;
+  int v = 0;
+  InterlockedMax(arg_0, 1, v);
+  int x_11 = v;
+  res = x_11;
+}
+
+void compute_main_inner(uint local_invocation_index_2) {
+  int v_1 = 0;
+  InterlockedExchange(arg_0, 0, v_1);
+  GroupMemoryBarrierWithGroupSync();
+  atomicMax_a89cc3();
+}
+
+void compute_main_1() {
+  uint x_31 = local_invocation_index_1;
+  compute_main_inner(x_31);
+}
+
+void compute_main_inner_1(uint local_invocation_index_1_param) {
+  if ((local_invocation_index_1_param == 0u)) {
+    int v_2 = 0;
+    InterlockedExchange(arg_0, 0, v_2);
+  }
+  GroupMemoryBarrierWithGroupSync();
+  local_invocation_index_1 = local_invocation_index_1_param;
+  compute_main_1();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main(compute_main_inputs inputs) {
+  compute_main_inner_1(inputs.local_invocation_index_1_param);
+}
+
diff --git a/test/tint/builtins/atomics/from_gen/literal/atomicMax/workgroup_u32.spvasm.expected.ir.dxc.hlsl b/test/tint/builtins/atomics/from_gen/literal/atomicMax/workgroup_u32.spvasm.expected.ir.dxc.hlsl
index d14c326..553dbc0 100644
--- a/test/tint/builtins/atomics/from_gen/literal/atomicMax/workgroup_u32.spvasm.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/atomics/from_gen/literal/atomicMax/workgroup_u32.spvasm.expected.ir.dxc.hlsl
@@ -1,9 +1,42 @@
-SKIP: FAILED
+struct compute_main_inputs {
+  uint local_invocation_index_1_param : SV_GroupIndex;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: atomicMax
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+
+static uint local_invocation_index_1 = 0u;
+groupshared uint arg_0;
+void atomicMax_beccfc() {
+  uint res = 0u;
+  uint v = 0u;
+  InterlockedMax(arg_0, 1u, v);
+  uint x_10 = v;
+  res = x_10;
+}
+
+void compute_main_inner(uint local_invocation_index_2) {
+  uint v_1 = 0u;
+  InterlockedExchange(arg_0, 0u, v_1);
+  GroupMemoryBarrierWithGroupSync();
+  atomicMax_beccfc();
+}
+
+void compute_main_1() {
+  uint x_30 = local_invocation_index_1;
+  compute_main_inner(x_30);
+}
+
+void compute_main_inner_1(uint local_invocation_index_1_param) {
+  if ((local_invocation_index_1_param == 0u)) {
+    uint v_2 = 0u;
+    InterlockedExchange(arg_0, 0u, v_2);
+  }
+  GroupMemoryBarrierWithGroupSync();
+  local_invocation_index_1 = local_invocation_index_1_param;
+  compute_main_1();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main(compute_main_inputs inputs) {
+  compute_main_inner_1(inputs.local_invocation_index_1_param);
+}
+
diff --git a/test/tint/builtins/atomics/from_gen/literal/atomicMax/workgroup_u32.spvasm.expected.ir.fxc.hlsl b/test/tint/builtins/atomics/from_gen/literal/atomicMax/workgroup_u32.spvasm.expected.ir.fxc.hlsl
index d14c326..553dbc0 100644
--- a/test/tint/builtins/atomics/from_gen/literal/atomicMax/workgroup_u32.spvasm.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/atomics/from_gen/literal/atomicMax/workgroup_u32.spvasm.expected.ir.fxc.hlsl
@@ -1,9 +1,42 @@
-SKIP: FAILED
+struct compute_main_inputs {
+  uint local_invocation_index_1_param : SV_GroupIndex;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: atomicMax
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+
+static uint local_invocation_index_1 = 0u;
+groupshared uint arg_0;
+void atomicMax_beccfc() {
+  uint res = 0u;
+  uint v = 0u;
+  InterlockedMax(arg_0, 1u, v);
+  uint x_10 = v;
+  res = x_10;
+}
+
+void compute_main_inner(uint local_invocation_index_2) {
+  uint v_1 = 0u;
+  InterlockedExchange(arg_0, 0u, v_1);
+  GroupMemoryBarrierWithGroupSync();
+  atomicMax_beccfc();
+}
+
+void compute_main_1() {
+  uint x_30 = local_invocation_index_1;
+  compute_main_inner(x_30);
+}
+
+void compute_main_inner_1(uint local_invocation_index_1_param) {
+  if ((local_invocation_index_1_param == 0u)) {
+    uint v_2 = 0u;
+    InterlockedExchange(arg_0, 0u, v_2);
+  }
+  GroupMemoryBarrierWithGroupSync();
+  local_invocation_index_1 = local_invocation_index_1_param;
+  compute_main_1();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main(compute_main_inputs inputs) {
+  compute_main_inner_1(inputs.local_invocation_index_1_param);
+}
+
diff --git a/test/tint/builtins/atomics/from_gen/literal/atomicMin/storage_i32.spvasm.expected.ir.dxc.hlsl b/test/tint/builtins/atomics/from_gen/literal/atomicMin/storage_i32.spvasm.expected.ir.dxc.hlsl
index 34addfe..a7e0fd1 100644
--- a/test/tint/builtins/atomics/from_gen/literal/atomicMin/storage_i32.spvasm.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/atomics/from_gen/literal/atomicMin/storage_i32.spvasm.expected.ir.dxc.hlsl
@@ -1,9 +1,27 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: atomicMin
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWByteAddressBuffer sb_rw : register(u0);
+void atomicMin_8e38dc() {
+  int res = 0;
+  int v = 0;
+  sb_rw.InterlockedMin(int(0u), 1, v);
+  int x_9 = v;
+  res = x_9;
+}
+
+void fragment_main_1() {
+  atomicMin_8e38dc();
+}
+
+void fragment_main() {
+  fragment_main_1();
+}
+
+void compute_main_1() {
+  atomicMin_8e38dc();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  compute_main_1();
+}
+
diff --git a/test/tint/builtins/atomics/from_gen/literal/atomicMin/storage_i32.spvasm.expected.ir.fxc.hlsl b/test/tint/builtins/atomics/from_gen/literal/atomicMin/storage_i32.spvasm.expected.ir.fxc.hlsl
index 34addfe..a7e0fd1 100644
--- a/test/tint/builtins/atomics/from_gen/literal/atomicMin/storage_i32.spvasm.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/atomics/from_gen/literal/atomicMin/storage_i32.spvasm.expected.ir.fxc.hlsl
@@ -1,9 +1,27 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: atomicMin
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWByteAddressBuffer sb_rw : register(u0);
+void atomicMin_8e38dc() {
+  int res = 0;
+  int v = 0;
+  sb_rw.InterlockedMin(int(0u), 1, v);
+  int x_9 = v;
+  res = x_9;
+}
+
+void fragment_main_1() {
+  atomicMin_8e38dc();
+}
+
+void fragment_main() {
+  fragment_main_1();
+}
+
+void compute_main_1() {
+  atomicMin_8e38dc();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  compute_main_1();
+}
+
diff --git a/test/tint/builtins/atomics/from_gen/literal/atomicMin/storage_u32.spvasm.expected.ir.dxc.hlsl b/test/tint/builtins/atomics/from_gen/literal/atomicMin/storage_u32.spvasm.expected.ir.dxc.hlsl
index 34addfe..9500b3f 100644
--- a/test/tint/builtins/atomics/from_gen/literal/atomicMin/storage_u32.spvasm.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/atomics/from_gen/literal/atomicMin/storage_u32.spvasm.expected.ir.dxc.hlsl
@@ -1,9 +1,27 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: atomicMin
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWByteAddressBuffer sb_rw : register(u0);
+void atomicMin_c67a74() {
+  uint res = 0u;
+  uint v = 0u;
+  sb_rw.InterlockedMin(uint(0u), 1u, v);
+  uint x_9 = v;
+  res = x_9;
+}
+
+void fragment_main_1() {
+  atomicMin_c67a74();
+}
+
+void fragment_main() {
+  fragment_main_1();
+}
+
+void compute_main_1() {
+  atomicMin_c67a74();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  compute_main_1();
+}
+
diff --git a/test/tint/builtins/atomics/from_gen/literal/atomicMin/storage_u32.spvasm.expected.ir.fxc.hlsl b/test/tint/builtins/atomics/from_gen/literal/atomicMin/storage_u32.spvasm.expected.ir.fxc.hlsl
index 34addfe..9500b3f 100644
--- a/test/tint/builtins/atomics/from_gen/literal/atomicMin/storage_u32.spvasm.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/atomics/from_gen/literal/atomicMin/storage_u32.spvasm.expected.ir.fxc.hlsl
@@ -1,9 +1,27 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: atomicMin
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWByteAddressBuffer sb_rw : register(u0);
+void atomicMin_c67a74() {
+  uint res = 0u;
+  uint v = 0u;
+  sb_rw.InterlockedMin(uint(0u), 1u, v);
+  uint x_9 = v;
+  res = x_9;
+}
+
+void fragment_main_1() {
+  atomicMin_c67a74();
+}
+
+void fragment_main() {
+  fragment_main_1();
+}
+
+void compute_main_1() {
+  atomicMin_c67a74();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  compute_main_1();
+}
+
diff --git a/test/tint/builtins/atomics/from_gen/literal/atomicMin/workgroup_i32.spvasm.expected.ir.dxc.hlsl b/test/tint/builtins/atomics/from_gen/literal/atomicMin/workgroup_i32.spvasm.expected.ir.dxc.hlsl
index 34addfe..6cef76f 100644
--- a/test/tint/builtins/atomics/from_gen/literal/atomicMin/workgroup_i32.spvasm.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/atomics/from_gen/literal/atomicMin/workgroup_i32.spvasm.expected.ir.dxc.hlsl
@@ -1,9 +1,42 @@
-SKIP: FAILED
+struct compute_main_inputs {
+  uint local_invocation_index_1_param : SV_GroupIndex;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: atomicMin
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+
+static uint local_invocation_index_1 = 0u;
+groupshared int arg_0;
+void atomicMin_278235() {
+  int res = 0;
+  int v = 0;
+  InterlockedMin(arg_0, 1, v);
+  int x_11 = v;
+  res = x_11;
+}
+
+void compute_main_inner(uint local_invocation_index_2) {
+  int v_1 = 0;
+  InterlockedExchange(arg_0, 0, v_1);
+  GroupMemoryBarrierWithGroupSync();
+  atomicMin_278235();
+}
+
+void compute_main_1() {
+  uint x_31 = local_invocation_index_1;
+  compute_main_inner(x_31);
+}
+
+void compute_main_inner_1(uint local_invocation_index_1_param) {
+  if ((local_invocation_index_1_param == 0u)) {
+    int v_2 = 0;
+    InterlockedExchange(arg_0, 0, v_2);
+  }
+  GroupMemoryBarrierWithGroupSync();
+  local_invocation_index_1 = local_invocation_index_1_param;
+  compute_main_1();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main(compute_main_inputs inputs) {
+  compute_main_inner_1(inputs.local_invocation_index_1_param);
+}
+
diff --git a/test/tint/builtins/atomics/from_gen/literal/atomicMin/workgroup_i32.spvasm.expected.ir.fxc.hlsl b/test/tint/builtins/atomics/from_gen/literal/atomicMin/workgroup_i32.spvasm.expected.ir.fxc.hlsl
index 34addfe..6cef76f 100644
--- a/test/tint/builtins/atomics/from_gen/literal/atomicMin/workgroup_i32.spvasm.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/atomics/from_gen/literal/atomicMin/workgroup_i32.spvasm.expected.ir.fxc.hlsl
@@ -1,9 +1,42 @@
-SKIP: FAILED
+struct compute_main_inputs {
+  uint local_invocation_index_1_param : SV_GroupIndex;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: atomicMin
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+
+static uint local_invocation_index_1 = 0u;
+groupshared int arg_0;
+void atomicMin_278235() {
+  int res = 0;
+  int v = 0;
+  InterlockedMin(arg_0, 1, v);
+  int x_11 = v;
+  res = x_11;
+}
+
+void compute_main_inner(uint local_invocation_index_2) {
+  int v_1 = 0;
+  InterlockedExchange(arg_0, 0, v_1);
+  GroupMemoryBarrierWithGroupSync();
+  atomicMin_278235();
+}
+
+void compute_main_1() {
+  uint x_31 = local_invocation_index_1;
+  compute_main_inner(x_31);
+}
+
+void compute_main_inner_1(uint local_invocation_index_1_param) {
+  if ((local_invocation_index_1_param == 0u)) {
+    int v_2 = 0;
+    InterlockedExchange(arg_0, 0, v_2);
+  }
+  GroupMemoryBarrierWithGroupSync();
+  local_invocation_index_1 = local_invocation_index_1_param;
+  compute_main_1();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main(compute_main_inputs inputs) {
+  compute_main_inner_1(inputs.local_invocation_index_1_param);
+}
+
diff --git a/test/tint/builtins/atomics/from_gen/literal/atomicMin/workgroup_u32.spvasm.expected.ir.dxc.hlsl b/test/tint/builtins/atomics/from_gen/literal/atomicMin/workgroup_u32.spvasm.expected.ir.dxc.hlsl
index 34addfe..947b394 100644
--- a/test/tint/builtins/atomics/from_gen/literal/atomicMin/workgroup_u32.spvasm.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/atomics/from_gen/literal/atomicMin/workgroup_u32.spvasm.expected.ir.dxc.hlsl
@@ -1,9 +1,42 @@
-SKIP: FAILED
+struct compute_main_inputs {
+  uint local_invocation_index_1_param : SV_GroupIndex;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: atomicMin
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+
+static uint local_invocation_index_1 = 0u;
+groupshared uint arg_0;
+void atomicMin_69d383() {
+  uint res = 0u;
+  uint v = 0u;
+  InterlockedMin(arg_0, 1u, v);
+  uint x_10 = v;
+  res = x_10;
+}
+
+void compute_main_inner(uint local_invocation_index_2) {
+  uint v_1 = 0u;
+  InterlockedExchange(arg_0, 0u, v_1);
+  GroupMemoryBarrierWithGroupSync();
+  atomicMin_69d383();
+}
+
+void compute_main_1() {
+  uint x_30 = local_invocation_index_1;
+  compute_main_inner(x_30);
+}
+
+void compute_main_inner_1(uint local_invocation_index_1_param) {
+  if ((local_invocation_index_1_param == 0u)) {
+    uint v_2 = 0u;
+    InterlockedExchange(arg_0, 0u, v_2);
+  }
+  GroupMemoryBarrierWithGroupSync();
+  local_invocation_index_1 = local_invocation_index_1_param;
+  compute_main_1();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main(compute_main_inputs inputs) {
+  compute_main_inner_1(inputs.local_invocation_index_1_param);
+}
+
diff --git a/test/tint/builtins/atomics/from_gen/literal/atomicMin/workgroup_u32.spvasm.expected.ir.fxc.hlsl b/test/tint/builtins/atomics/from_gen/literal/atomicMin/workgroup_u32.spvasm.expected.ir.fxc.hlsl
index 34addfe..947b394 100644
--- a/test/tint/builtins/atomics/from_gen/literal/atomicMin/workgroup_u32.spvasm.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/atomics/from_gen/literal/atomicMin/workgroup_u32.spvasm.expected.ir.fxc.hlsl
@@ -1,9 +1,42 @@
-SKIP: FAILED
+struct compute_main_inputs {
+  uint local_invocation_index_1_param : SV_GroupIndex;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: atomicMin
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+
+static uint local_invocation_index_1 = 0u;
+groupshared uint arg_0;
+void atomicMin_69d383() {
+  uint res = 0u;
+  uint v = 0u;
+  InterlockedMin(arg_0, 1u, v);
+  uint x_10 = v;
+  res = x_10;
+}
+
+void compute_main_inner(uint local_invocation_index_2) {
+  uint v_1 = 0u;
+  InterlockedExchange(arg_0, 0u, v_1);
+  GroupMemoryBarrierWithGroupSync();
+  atomicMin_69d383();
+}
+
+void compute_main_1() {
+  uint x_30 = local_invocation_index_1;
+  compute_main_inner(x_30);
+}
+
+void compute_main_inner_1(uint local_invocation_index_1_param) {
+  if ((local_invocation_index_1_param == 0u)) {
+    uint v_2 = 0u;
+    InterlockedExchange(arg_0, 0u, v_2);
+  }
+  GroupMemoryBarrierWithGroupSync();
+  local_invocation_index_1 = local_invocation_index_1_param;
+  compute_main_1();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main(compute_main_inputs inputs) {
+  compute_main_inner_1(inputs.local_invocation_index_1_param);
+}
+
diff --git a/test/tint/builtins/atomics/from_gen/literal/atomicOr/storage_i32.spvasm.expected.ir.dxc.hlsl b/test/tint/builtins/atomics/from_gen/literal/atomicOr/storage_i32.spvasm.expected.ir.dxc.hlsl
index af0604b..26a4878 100644
--- a/test/tint/builtins/atomics/from_gen/literal/atomicOr/storage_i32.spvasm.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/atomics/from_gen/literal/atomicOr/storage_i32.spvasm.expected.ir.dxc.hlsl
@@ -1,9 +1,27 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: atomicOr
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWByteAddressBuffer sb_rw : register(u0);
+void atomicOr_8d96a0() {
+  int res = 0;
+  int v = 0;
+  sb_rw.InterlockedOr(int(0u), 1, v);
+  int x_9 = v;
+  res = x_9;
+}
+
+void fragment_main_1() {
+  atomicOr_8d96a0();
+}
+
+void fragment_main() {
+  fragment_main_1();
+}
+
+void compute_main_1() {
+  atomicOr_8d96a0();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  compute_main_1();
+}
+
diff --git a/test/tint/builtins/atomics/from_gen/literal/atomicOr/storage_i32.spvasm.expected.ir.fxc.hlsl b/test/tint/builtins/atomics/from_gen/literal/atomicOr/storage_i32.spvasm.expected.ir.fxc.hlsl
index af0604b..26a4878 100644
--- a/test/tint/builtins/atomics/from_gen/literal/atomicOr/storage_i32.spvasm.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/atomics/from_gen/literal/atomicOr/storage_i32.spvasm.expected.ir.fxc.hlsl
@@ -1,9 +1,27 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: atomicOr
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWByteAddressBuffer sb_rw : register(u0);
+void atomicOr_8d96a0() {
+  int res = 0;
+  int v = 0;
+  sb_rw.InterlockedOr(int(0u), 1, v);
+  int x_9 = v;
+  res = x_9;
+}
+
+void fragment_main_1() {
+  atomicOr_8d96a0();
+}
+
+void fragment_main() {
+  fragment_main_1();
+}
+
+void compute_main_1() {
+  atomicOr_8d96a0();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  compute_main_1();
+}
+
diff --git a/test/tint/builtins/atomics/from_gen/literal/atomicOr/storage_u32.spvasm.expected.ir.dxc.hlsl b/test/tint/builtins/atomics/from_gen/literal/atomicOr/storage_u32.spvasm.expected.ir.dxc.hlsl
index af0604b..2edf2d2 100644
--- a/test/tint/builtins/atomics/from_gen/literal/atomicOr/storage_u32.spvasm.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/atomics/from_gen/literal/atomicOr/storage_u32.spvasm.expected.ir.dxc.hlsl
@@ -1,9 +1,27 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: atomicOr
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWByteAddressBuffer sb_rw : register(u0);
+void atomicOr_5e95d4() {
+  uint res = 0u;
+  uint v = 0u;
+  sb_rw.InterlockedOr(uint(0u), 1u, v);
+  uint x_9 = v;
+  res = x_9;
+}
+
+void fragment_main_1() {
+  atomicOr_5e95d4();
+}
+
+void fragment_main() {
+  fragment_main_1();
+}
+
+void compute_main_1() {
+  atomicOr_5e95d4();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  compute_main_1();
+}
+
diff --git a/test/tint/builtins/atomics/from_gen/literal/atomicOr/storage_u32.spvasm.expected.ir.fxc.hlsl b/test/tint/builtins/atomics/from_gen/literal/atomicOr/storage_u32.spvasm.expected.ir.fxc.hlsl
index af0604b..2edf2d2 100644
--- a/test/tint/builtins/atomics/from_gen/literal/atomicOr/storage_u32.spvasm.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/atomics/from_gen/literal/atomicOr/storage_u32.spvasm.expected.ir.fxc.hlsl
@@ -1,9 +1,27 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: atomicOr
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWByteAddressBuffer sb_rw : register(u0);
+void atomicOr_5e95d4() {
+  uint res = 0u;
+  uint v = 0u;
+  sb_rw.InterlockedOr(uint(0u), 1u, v);
+  uint x_9 = v;
+  res = x_9;
+}
+
+void fragment_main_1() {
+  atomicOr_5e95d4();
+}
+
+void fragment_main() {
+  fragment_main_1();
+}
+
+void compute_main_1() {
+  atomicOr_5e95d4();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  compute_main_1();
+}
+
diff --git a/test/tint/builtins/atomics/from_gen/literal/atomicOr/workgroup_i32.spvasm.expected.ir.dxc.hlsl b/test/tint/builtins/atomics/from_gen/literal/atomicOr/workgroup_i32.spvasm.expected.ir.dxc.hlsl
index af0604b..a6bb556 100644
--- a/test/tint/builtins/atomics/from_gen/literal/atomicOr/workgroup_i32.spvasm.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/atomics/from_gen/literal/atomicOr/workgroup_i32.spvasm.expected.ir.dxc.hlsl
@@ -1,9 +1,42 @@
-SKIP: FAILED
+struct compute_main_inputs {
+  uint local_invocation_index_1_param : SV_GroupIndex;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: atomicOr
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+
+static uint local_invocation_index_1 = 0u;
+groupshared int arg_0;
+void atomicOr_d09248() {
+  int res = 0;
+  int v = 0;
+  InterlockedOr(arg_0, 1, v);
+  int x_11 = v;
+  res = x_11;
+}
+
+void compute_main_inner(uint local_invocation_index_2) {
+  int v_1 = 0;
+  InterlockedExchange(arg_0, 0, v_1);
+  GroupMemoryBarrierWithGroupSync();
+  atomicOr_d09248();
+}
+
+void compute_main_1() {
+  uint x_31 = local_invocation_index_1;
+  compute_main_inner(x_31);
+}
+
+void compute_main_inner_1(uint local_invocation_index_1_param) {
+  if ((local_invocation_index_1_param == 0u)) {
+    int v_2 = 0;
+    InterlockedExchange(arg_0, 0, v_2);
+  }
+  GroupMemoryBarrierWithGroupSync();
+  local_invocation_index_1 = local_invocation_index_1_param;
+  compute_main_1();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main(compute_main_inputs inputs) {
+  compute_main_inner_1(inputs.local_invocation_index_1_param);
+}
+
diff --git a/test/tint/builtins/atomics/from_gen/literal/atomicOr/workgroup_i32.spvasm.expected.ir.fxc.hlsl b/test/tint/builtins/atomics/from_gen/literal/atomicOr/workgroup_i32.spvasm.expected.ir.fxc.hlsl
index af0604b..a6bb556 100644
--- a/test/tint/builtins/atomics/from_gen/literal/atomicOr/workgroup_i32.spvasm.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/atomics/from_gen/literal/atomicOr/workgroup_i32.spvasm.expected.ir.fxc.hlsl
@@ -1,9 +1,42 @@
-SKIP: FAILED
+struct compute_main_inputs {
+  uint local_invocation_index_1_param : SV_GroupIndex;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: atomicOr
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+
+static uint local_invocation_index_1 = 0u;
+groupshared int arg_0;
+void atomicOr_d09248() {
+  int res = 0;
+  int v = 0;
+  InterlockedOr(arg_0, 1, v);
+  int x_11 = v;
+  res = x_11;
+}
+
+void compute_main_inner(uint local_invocation_index_2) {
+  int v_1 = 0;
+  InterlockedExchange(arg_0, 0, v_1);
+  GroupMemoryBarrierWithGroupSync();
+  atomicOr_d09248();
+}
+
+void compute_main_1() {
+  uint x_31 = local_invocation_index_1;
+  compute_main_inner(x_31);
+}
+
+void compute_main_inner_1(uint local_invocation_index_1_param) {
+  if ((local_invocation_index_1_param == 0u)) {
+    int v_2 = 0;
+    InterlockedExchange(arg_0, 0, v_2);
+  }
+  GroupMemoryBarrierWithGroupSync();
+  local_invocation_index_1 = local_invocation_index_1_param;
+  compute_main_1();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main(compute_main_inputs inputs) {
+  compute_main_inner_1(inputs.local_invocation_index_1_param);
+}
+
diff --git a/test/tint/builtins/atomics/from_gen/literal/atomicOr/workgroup_u32.spvasm.expected.ir.dxc.hlsl b/test/tint/builtins/atomics/from_gen/literal/atomicOr/workgroup_u32.spvasm.expected.ir.dxc.hlsl
index af0604b..a8a8c9b 100644
--- a/test/tint/builtins/atomics/from_gen/literal/atomicOr/workgroup_u32.spvasm.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/atomics/from_gen/literal/atomicOr/workgroup_u32.spvasm.expected.ir.dxc.hlsl
@@ -1,9 +1,42 @@
-SKIP: FAILED
+struct compute_main_inputs {
+  uint local_invocation_index_1_param : SV_GroupIndex;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: atomicOr
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+
+static uint local_invocation_index_1 = 0u;
+groupshared uint arg_0;
+void atomicOr_5e3d61() {
+  uint res = 0u;
+  uint v = 0u;
+  InterlockedOr(arg_0, 1u, v);
+  uint x_10 = v;
+  res = x_10;
+}
+
+void compute_main_inner(uint local_invocation_index_2) {
+  uint v_1 = 0u;
+  InterlockedExchange(arg_0, 0u, v_1);
+  GroupMemoryBarrierWithGroupSync();
+  atomicOr_5e3d61();
+}
+
+void compute_main_1() {
+  uint x_30 = local_invocation_index_1;
+  compute_main_inner(x_30);
+}
+
+void compute_main_inner_1(uint local_invocation_index_1_param) {
+  if ((local_invocation_index_1_param == 0u)) {
+    uint v_2 = 0u;
+    InterlockedExchange(arg_0, 0u, v_2);
+  }
+  GroupMemoryBarrierWithGroupSync();
+  local_invocation_index_1 = local_invocation_index_1_param;
+  compute_main_1();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main(compute_main_inputs inputs) {
+  compute_main_inner_1(inputs.local_invocation_index_1_param);
+}
+
diff --git a/test/tint/builtins/atomics/from_gen/literal/atomicOr/workgroup_u32.spvasm.expected.ir.fxc.hlsl b/test/tint/builtins/atomics/from_gen/literal/atomicOr/workgroup_u32.spvasm.expected.ir.fxc.hlsl
index af0604b..a8a8c9b 100644
--- a/test/tint/builtins/atomics/from_gen/literal/atomicOr/workgroup_u32.spvasm.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/atomics/from_gen/literal/atomicOr/workgroup_u32.spvasm.expected.ir.fxc.hlsl
@@ -1,9 +1,42 @@
-SKIP: FAILED
+struct compute_main_inputs {
+  uint local_invocation_index_1_param : SV_GroupIndex;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: atomicOr
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+
+static uint local_invocation_index_1 = 0u;
+groupshared uint arg_0;
+void atomicOr_5e3d61() {
+  uint res = 0u;
+  uint v = 0u;
+  InterlockedOr(arg_0, 1u, v);
+  uint x_10 = v;
+  res = x_10;
+}
+
+void compute_main_inner(uint local_invocation_index_2) {
+  uint v_1 = 0u;
+  InterlockedExchange(arg_0, 0u, v_1);
+  GroupMemoryBarrierWithGroupSync();
+  atomicOr_5e3d61();
+}
+
+void compute_main_1() {
+  uint x_30 = local_invocation_index_1;
+  compute_main_inner(x_30);
+}
+
+void compute_main_inner_1(uint local_invocation_index_1_param) {
+  if ((local_invocation_index_1_param == 0u)) {
+    uint v_2 = 0u;
+    InterlockedExchange(arg_0, 0u, v_2);
+  }
+  GroupMemoryBarrierWithGroupSync();
+  local_invocation_index_1 = local_invocation_index_1_param;
+  compute_main_1();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main(compute_main_inputs inputs) {
+  compute_main_inner_1(inputs.local_invocation_index_1_param);
+}
+
diff --git a/test/tint/builtins/atomics/from_gen/literal/atomicStore/storage_i32.spvasm.expected.ir.dxc.hlsl b/test/tint/builtins/atomics/from_gen/literal/atomicStore/storage_i32.spvasm.expected.ir.dxc.hlsl
index 9aa6a33..dfa6ac0 100644
--- a/test/tint/builtins/atomics/from_gen/literal/atomicStore/storage_i32.spvasm.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/atomics/from_gen/literal/atomicStore/storage_i32.spvasm.expected.ir.dxc.hlsl
@@ -1,9 +1,24 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: atomicStore
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWByteAddressBuffer sb_rw : register(u0);
+void atomicStore_d1e9a6() {
+  int v = 0;
+  sb_rw.InterlockedExchange(int(0u), 1, v);
+}
+
+void fragment_main_1() {
+  atomicStore_d1e9a6();
+}
+
+void fragment_main() {
+  fragment_main_1();
+}
+
+void compute_main_1() {
+  atomicStore_d1e9a6();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  compute_main_1();
+}
+
diff --git a/test/tint/builtins/atomics/from_gen/literal/atomicStore/storage_i32.spvasm.expected.ir.fxc.hlsl b/test/tint/builtins/atomics/from_gen/literal/atomicStore/storage_i32.spvasm.expected.ir.fxc.hlsl
index 9aa6a33..dfa6ac0 100644
--- a/test/tint/builtins/atomics/from_gen/literal/atomicStore/storage_i32.spvasm.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/atomics/from_gen/literal/atomicStore/storage_i32.spvasm.expected.ir.fxc.hlsl
@@ -1,9 +1,24 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: atomicStore
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWByteAddressBuffer sb_rw : register(u0);
+void atomicStore_d1e9a6() {
+  int v = 0;
+  sb_rw.InterlockedExchange(int(0u), 1, v);
+}
+
+void fragment_main_1() {
+  atomicStore_d1e9a6();
+}
+
+void fragment_main() {
+  fragment_main_1();
+}
+
+void compute_main_1() {
+  atomicStore_d1e9a6();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  compute_main_1();
+}
+
diff --git a/test/tint/builtins/atomics/from_gen/literal/atomicStore/storage_u32.spvasm.expected.ir.dxc.hlsl b/test/tint/builtins/atomics/from_gen/literal/atomicStore/storage_u32.spvasm.expected.ir.dxc.hlsl
index 9aa6a33..c8f6b45 100644
--- a/test/tint/builtins/atomics/from_gen/literal/atomicStore/storage_u32.spvasm.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/atomics/from_gen/literal/atomicStore/storage_u32.spvasm.expected.ir.dxc.hlsl
@@ -1,9 +1,24 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: atomicStore
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWByteAddressBuffer sb_rw : register(u0);
+void atomicStore_cdc29e() {
+  uint v = 0u;
+  sb_rw.InterlockedExchange(uint(0u), 1u, v);
+}
+
+void fragment_main_1() {
+  atomicStore_cdc29e();
+}
+
+void fragment_main() {
+  fragment_main_1();
+}
+
+void compute_main_1() {
+  atomicStore_cdc29e();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  compute_main_1();
+}
+
diff --git a/test/tint/builtins/atomics/from_gen/literal/atomicStore/storage_u32.spvasm.expected.ir.fxc.hlsl b/test/tint/builtins/atomics/from_gen/literal/atomicStore/storage_u32.spvasm.expected.ir.fxc.hlsl
index 9aa6a33..c8f6b45 100644
--- a/test/tint/builtins/atomics/from_gen/literal/atomicStore/storage_u32.spvasm.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/atomics/from_gen/literal/atomicStore/storage_u32.spvasm.expected.ir.fxc.hlsl
@@ -1,9 +1,24 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: atomicStore
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWByteAddressBuffer sb_rw : register(u0);
+void atomicStore_cdc29e() {
+  uint v = 0u;
+  sb_rw.InterlockedExchange(uint(0u), 1u, v);
+}
+
+void fragment_main_1() {
+  atomicStore_cdc29e();
+}
+
+void fragment_main() {
+  fragment_main_1();
+}
+
+void compute_main_1() {
+  atomicStore_cdc29e();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  compute_main_1();
+}
+
diff --git a/test/tint/builtins/atomics/from_gen/literal/atomicStore/workgroup_i32.spvasm.expected.ir.dxc.hlsl b/test/tint/builtins/atomics/from_gen/literal/atomicStore/workgroup_i32.spvasm.expected.ir.dxc.hlsl
index 9aa6a33..3ff4caf 100644
--- a/test/tint/builtins/atomics/from_gen/literal/atomicStore/workgroup_i32.spvasm.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/atomics/from_gen/literal/atomicStore/workgroup_i32.spvasm.expected.ir.dxc.hlsl
@@ -1,9 +1,39 @@
-SKIP: FAILED
+struct compute_main_inputs {
+  uint local_invocation_index_1_param : SV_GroupIndex;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: atomicStore
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+
+static uint local_invocation_index_1 = 0u;
+groupshared int arg_0;
+void atomicStore_8bea94() {
+  int v = 0;
+  InterlockedExchange(arg_0, 1, v);
+}
+
+void compute_main_inner(uint local_invocation_index_2) {
+  int v_1 = 0;
+  InterlockedExchange(arg_0, 0, v_1);
+  GroupMemoryBarrierWithGroupSync();
+  atomicStore_8bea94();
+}
+
+void compute_main_1() {
+  uint x_29 = local_invocation_index_1;
+  compute_main_inner(x_29);
+}
+
+void compute_main_inner_1(uint local_invocation_index_1_param) {
+  if ((local_invocation_index_1_param == 0u)) {
+    int v_2 = 0;
+    InterlockedExchange(arg_0, 0, v_2);
+  }
+  GroupMemoryBarrierWithGroupSync();
+  local_invocation_index_1 = local_invocation_index_1_param;
+  compute_main_1();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main(compute_main_inputs inputs) {
+  compute_main_inner_1(inputs.local_invocation_index_1_param);
+}
+
diff --git a/test/tint/builtins/atomics/from_gen/literal/atomicStore/workgroup_i32.spvasm.expected.ir.fxc.hlsl b/test/tint/builtins/atomics/from_gen/literal/atomicStore/workgroup_i32.spvasm.expected.ir.fxc.hlsl
index 9aa6a33..3ff4caf 100644
--- a/test/tint/builtins/atomics/from_gen/literal/atomicStore/workgroup_i32.spvasm.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/atomics/from_gen/literal/atomicStore/workgroup_i32.spvasm.expected.ir.fxc.hlsl
@@ -1,9 +1,39 @@
-SKIP: FAILED
+struct compute_main_inputs {
+  uint local_invocation_index_1_param : SV_GroupIndex;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: atomicStore
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+
+static uint local_invocation_index_1 = 0u;
+groupshared int arg_0;
+void atomicStore_8bea94() {
+  int v = 0;
+  InterlockedExchange(arg_0, 1, v);
+}
+
+void compute_main_inner(uint local_invocation_index_2) {
+  int v_1 = 0;
+  InterlockedExchange(arg_0, 0, v_1);
+  GroupMemoryBarrierWithGroupSync();
+  atomicStore_8bea94();
+}
+
+void compute_main_1() {
+  uint x_29 = local_invocation_index_1;
+  compute_main_inner(x_29);
+}
+
+void compute_main_inner_1(uint local_invocation_index_1_param) {
+  if ((local_invocation_index_1_param == 0u)) {
+    int v_2 = 0;
+    InterlockedExchange(arg_0, 0, v_2);
+  }
+  GroupMemoryBarrierWithGroupSync();
+  local_invocation_index_1 = local_invocation_index_1_param;
+  compute_main_1();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main(compute_main_inputs inputs) {
+  compute_main_inner_1(inputs.local_invocation_index_1_param);
+}
+
diff --git a/test/tint/builtins/atomics/from_gen/literal/atomicStore/workgroup_u32.spvasm.expected.ir.dxc.hlsl b/test/tint/builtins/atomics/from_gen/literal/atomicStore/workgroup_u32.spvasm.expected.ir.dxc.hlsl
index 9aa6a33..3e628ab 100644
--- a/test/tint/builtins/atomics/from_gen/literal/atomicStore/workgroup_u32.spvasm.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/atomics/from_gen/literal/atomicStore/workgroup_u32.spvasm.expected.ir.dxc.hlsl
@@ -1,9 +1,39 @@
-SKIP: FAILED
+struct compute_main_inputs {
+  uint local_invocation_index_1_param : SV_GroupIndex;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: atomicStore
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+
+static uint local_invocation_index_1 = 0u;
+groupshared uint arg_0;
+void atomicStore_726882() {
+  uint v = 0u;
+  InterlockedExchange(arg_0, 1u, v);
+}
+
+void compute_main_inner(uint local_invocation_index_2) {
+  uint v_1 = 0u;
+  InterlockedExchange(arg_0, 0u, v_1);
+  GroupMemoryBarrierWithGroupSync();
+  atomicStore_726882();
+}
+
+void compute_main_1() {
+  uint x_28 = local_invocation_index_1;
+  compute_main_inner(x_28);
+}
+
+void compute_main_inner_1(uint local_invocation_index_1_param) {
+  if ((local_invocation_index_1_param == 0u)) {
+    uint v_2 = 0u;
+    InterlockedExchange(arg_0, 0u, v_2);
+  }
+  GroupMemoryBarrierWithGroupSync();
+  local_invocation_index_1 = local_invocation_index_1_param;
+  compute_main_1();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main(compute_main_inputs inputs) {
+  compute_main_inner_1(inputs.local_invocation_index_1_param);
+}
+
diff --git a/test/tint/builtins/atomics/from_gen/literal/atomicStore/workgroup_u32.spvasm.expected.ir.fxc.hlsl b/test/tint/builtins/atomics/from_gen/literal/atomicStore/workgroup_u32.spvasm.expected.ir.fxc.hlsl
index 9aa6a33..3e628ab 100644
--- a/test/tint/builtins/atomics/from_gen/literal/atomicStore/workgroup_u32.spvasm.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/atomics/from_gen/literal/atomicStore/workgroup_u32.spvasm.expected.ir.fxc.hlsl
@@ -1,9 +1,39 @@
-SKIP: FAILED
+struct compute_main_inputs {
+  uint local_invocation_index_1_param : SV_GroupIndex;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: atomicStore
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+
+static uint local_invocation_index_1 = 0u;
+groupshared uint arg_0;
+void atomicStore_726882() {
+  uint v = 0u;
+  InterlockedExchange(arg_0, 1u, v);
+}
+
+void compute_main_inner(uint local_invocation_index_2) {
+  uint v_1 = 0u;
+  InterlockedExchange(arg_0, 0u, v_1);
+  GroupMemoryBarrierWithGroupSync();
+  atomicStore_726882();
+}
+
+void compute_main_1() {
+  uint x_28 = local_invocation_index_1;
+  compute_main_inner(x_28);
+}
+
+void compute_main_inner_1(uint local_invocation_index_1_param) {
+  if ((local_invocation_index_1_param == 0u)) {
+    uint v_2 = 0u;
+    InterlockedExchange(arg_0, 0u, v_2);
+  }
+  GroupMemoryBarrierWithGroupSync();
+  local_invocation_index_1 = local_invocation_index_1_param;
+  compute_main_1();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main(compute_main_inputs inputs) {
+  compute_main_inner_1(inputs.local_invocation_index_1_param);
+}
+
diff --git a/test/tint/builtins/atomics/from_gen/literal/atomicSub/storage_i32.spvasm.expected.ir.dxc.hlsl b/test/tint/builtins/atomics/from_gen/literal/atomicSub/storage_i32.spvasm.expected.ir.dxc.hlsl
index 7a4d08e..6761673 100644
--- a/test/tint/builtins/atomics/from_gen/literal/atomicSub/storage_i32.spvasm.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/atomics/from_gen/literal/atomicSub/storage_i32.spvasm.expected.ir.dxc.hlsl
@@ -1,9 +1,27 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: atomicSub
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWByteAddressBuffer sb_rw : register(u0);
+void atomicSub_051100() {
+  int res = 0;
+  int v = 0;
+  sb_rw.InterlockedAdd(int(0u), -(1), v);
+  int x_9 = v;
+  res = x_9;
+}
+
+void fragment_main_1() {
+  atomicSub_051100();
+}
+
+void fragment_main() {
+  fragment_main_1();
+}
+
+void compute_main_1() {
+  atomicSub_051100();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  compute_main_1();
+}
+
diff --git a/test/tint/builtins/atomics/from_gen/literal/atomicSub/storage_i32.spvasm.expected.ir.fxc.hlsl b/test/tint/builtins/atomics/from_gen/literal/atomicSub/storage_i32.spvasm.expected.ir.fxc.hlsl
index 7a4d08e..6761673 100644
--- a/test/tint/builtins/atomics/from_gen/literal/atomicSub/storage_i32.spvasm.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/atomics/from_gen/literal/atomicSub/storage_i32.spvasm.expected.ir.fxc.hlsl
@@ -1,9 +1,27 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: atomicSub
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWByteAddressBuffer sb_rw : register(u0);
+void atomicSub_051100() {
+  int res = 0;
+  int v = 0;
+  sb_rw.InterlockedAdd(int(0u), -(1), v);
+  int x_9 = v;
+  res = x_9;
+}
+
+void fragment_main_1() {
+  atomicSub_051100();
+}
+
+void fragment_main() {
+  fragment_main_1();
+}
+
+void compute_main_1() {
+  atomicSub_051100();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  compute_main_1();
+}
+
diff --git a/test/tint/builtins/atomics/from_gen/literal/atomicSub/storage_u32.spvasm.expected.ir.dxc.hlsl b/test/tint/builtins/atomics/from_gen/literal/atomicSub/storage_u32.spvasm.expected.ir.dxc.hlsl
index 7a4d08e..d3cd645 100644
--- a/test/tint/builtins/atomics/from_gen/literal/atomicSub/storage_u32.spvasm.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/atomics/from_gen/literal/atomicSub/storage_u32.spvasm.expected.ir.dxc.hlsl
@@ -1,9 +1,104 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: atomicSub
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+
+struct SB_RW_atomic {
+  /* @offset(0) */
+  arg_0 : atomic<u32>,
+}
+
+struct SB_RW {
+  /* @offset(0) */
+  arg_0 : u32,
+}
+
+@group(0) @binding(0) var<storage, read_write> sb_rw : SB_RW_atomic;
+
+fn atomicSub_15bfc9() {
+  var res = 0u;
+  let x_9 = atomicSub(&(sb_rw.arg_0), 1u);
+  res = x_9;
+  return;
+}
+
+fn fragment_main_1() {
+  atomicSub_15bfc9();
+  return;
+}
+
+@fragment
+fn fragment_main() {
+  fragment_main_1();
+}
+
+fn compute_main_1() {
+  atomicSub_15bfc9();
+  return;
+}
+
+@compute @workgroup_size(1i, 1i, 1i)
+fn compute_main() {
+  compute_main_1();
+}
+
+Failed to generate: :13:5 error: unary: no matching overload for 'operator - (u32)'
+
+2 candidate operators:
+ • 'operator - (T  ✗ ) -> T' where:
+      ✗  'T' is 'f32', 'i32' or 'f16'
+ • 'operator - (vecN<T>  ✗ ) -> vecN<T>' where:
+      ✗  'T' is 'f32', 'i32' or 'f16'
+
+    %5:u32 = negation 1u
+    ^^^^^^^^^^^^^^^^^^^^
+
+:10:3 note: in block
+  $B2: {
+  ^^^
+
+note: # Disassembly
+SB_RW_atomic = struct @align(4) {
+  arg_0:atomic<u32> @offset(0)
+}
+
+$B1: {  # root
+  %sb_rw:hlsl.byte_address_buffer<read_write> = var @binding_point(0, 0)
+}
+
+%atomicSub_15bfc9 = func():void {
+  $B2: {
+    %res:ptr<function, u32, read_write> = var, 0u
+    %4:ptr<function, u32, read_write> = var, 0u
+    %5:u32 = negation 1u
+    %6:u32 = convert 0u
+    %7:void = %sb_rw.InterlockedAdd %6, %5, %4
+    %8:u32 = load %4
+    %x_9:u32 = let %8
+    store %res, %x_9
+    ret
+  }
+}
+%fragment_main_1 = func():void {
+  $B3: {
+    %11:void = call %atomicSub_15bfc9
+    ret
+  }
+}
+%fragment_main = @fragment func():void {
+  $B4: {
+    %13:void = call %fragment_main_1
+    ret
+  }
+}
+%compute_main_1 = func():void {
+  $B5: {
+    %15:void = call %atomicSub_15bfc9
+    ret
+  }
+}
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B6: {
+    %17:void = call %compute_main_1
+    ret
+  }
+}
+
diff --git a/test/tint/builtins/atomics/from_gen/literal/atomicSub/storage_u32.spvasm.expected.ir.fxc.hlsl b/test/tint/builtins/atomics/from_gen/literal/atomicSub/storage_u32.spvasm.expected.ir.fxc.hlsl
index 7a4d08e..d3cd645 100644
--- a/test/tint/builtins/atomics/from_gen/literal/atomicSub/storage_u32.spvasm.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/atomics/from_gen/literal/atomicSub/storage_u32.spvasm.expected.ir.fxc.hlsl
@@ -1,9 +1,104 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: atomicSub
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+
+struct SB_RW_atomic {
+  /* @offset(0) */
+  arg_0 : atomic<u32>,
+}
+
+struct SB_RW {
+  /* @offset(0) */
+  arg_0 : u32,
+}
+
+@group(0) @binding(0) var<storage, read_write> sb_rw : SB_RW_atomic;
+
+fn atomicSub_15bfc9() {
+  var res = 0u;
+  let x_9 = atomicSub(&(sb_rw.arg_0), 1u);
+  res = x_9;
+  return;
+}
+
+fn fragment_main_1() {
+  atomicSub_15bfc9();
+  return;
+}
+
+@fragment
+fn fragment_main() {
+  fragment_main_1();
+}
+
+fn compute_main_1() {
+  atomicSub_15bfc9();
+  return;
+}
+
+@compute @workgroup_size(1i, 1i, 1i)
+fn compute_main() {
+  compute_main_1();
+}
+
+Failed to generate: :13:5 error: unary: no matching overload for 'operator - (u32)'
+
+2 candidate operators:
+ • 'operator - (T  ✗ ) -> T' where:
+      ✗  'T' is 'f32', 'i32' or 'f16'
+ • 'operator - (vecN<T>  ✗ ) -> vecN<T>' where:
+      ✗  'T' is 'f32', 'i32' or 'f16'
+
+    %5:u32 = negation 1u
+    ^^^^^^^^^^^^^^^^^^^^
+
+:10:3 note: in block
+  $B2: {
+  ^^^
+
+note: # Disassembly
+SB_RW_atomic = struct @align(4) {
+  arg_0:atomic<u32> @offset(0)
+}
+
+$B1: {  # root
+  %sb_rw:hlsl.byte_address_buffer<read_write> = var @binding_point(0, 0)
+}
+
+%atomicSub_15bfc9 = func():void {
+  $B2: {
+    %res:ptr<function, u32, read_write> = var, 0u
+    %4:ptr<function, u32, read_write> = var, 0u
+    %5:u32 = negation 1u
+    %6:u32 = convert 0u
+    %7:void = %sb_rw.InterlockedAdd %6, %5, %4
+    %8:u32 = load %4
+    %x_9:u32 = let %8
+    store %res, %x_9
+    ret
+  }
+}
+%fragment_main_1 = func():void {
+  $B3: {
+    %11:void = call %atomicSub_15bfc9
+    ret
+  }
+}
+%fragment_main = @fragment func():void {
+  $B4: {
+    %13:void = call %fragment_main_1
+    ret
+  }
+}
+%compute_main_1 = func():void {
+  $B5: {
+    %15:void = call %atomicSub_15bfc9
+    ret
+  }
+}
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B6: {
+    %17:void = call %compute_main_1
+    ret
+  }
+}
+
diff --git a/test/tint/builtins/atomics/from_gen/literal/atomicSub/workgroup_i32.spvasm.expected.ir.dxc.hlsl b/test/tint/builtins/atomics/from_gen/literal/atomicSub/workgroup_i32.spvasm.expected.ir.dxc.hlsl
index 7a4d08e..01ce6ed 100644
--- a/test/tint/builtins/atomics/from_gen/literal/atomicSub/workgroup_i32.spvasm.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/atomics/from_gen/literal/atomicSub/workgroup_i32.spvasm.expected.ir.dxc.hlsl
@@ -1,9 +1,42 @@
-SKIP: FAILED
+struct compute_main_inputs {
+  uint local_invocation_index_1_param : SV_GroupIndex;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: atomicSub
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+
+static uint local_invocation_index_1 = 0u;
+groupshared int arg_0;
+void atomicSub_77883a() {
+  int res = 0;
+  int v = 0;
+  InterlockedAdd(arg_0, -(1), v);
+  int x_11 = v;
+  res = x_11;
+}
+
+void compute_main_inner(uint local_invocation_index_2) {
+  int v_1 = 0;
+  InterlockedExchange(arg_0, 0, v_1);
+  GroupMemoryBarrierWithGroupSync();
+  atomicSub_77883a();
+}
+
+void compute_main_1() {
+  uint x_31 = local_invocation_index_1;
+  compute_main_inner(x_31);
+}
+
+void compute_main_inner_1(uint local_invocation_index_1_param) {
+  if ((local_invocation_index_1_param == 0u)) {
+    int v_2 = 0;
+    InterlockedExchange(arg_0, 0, v_2);
+  }
+  GroupMemoryBarrierWithGroupSync();
+  local_invocation_index_1 = local_invocation_index_1_param;
+  compute_main_1();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main(compute_main_inputs inputs) {
+  compute_main_inner_1(inputs.local_invocation_index_1_param);
+}
+
diff --git a/test/tint/builtins/atomics/from_gen/literal/atomicSub/workgroup_i32.spvasm.expected.ir.fxc.hlsl b/test/tint/builtins/atomics/from_gen/literal/atomicSub/workgroup_i32.spvasm.expected.ir.fxc.hlsl
index 7a4d08e..01ce6ed 100644
--- a/test/tint/builtins/atomics/from_gen/literal/atomicSub/workgroup_i32.spvasm.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/atomics/from_gen/literal/atomicSub/workgroup_i32.spvasm.expected.ir.fxc.hlsl
@@ -1,9 +1,42 @@
-SKIP: FAILED
+struct compute_main_inputs {
+  uint local_invocation_index_1_param : SV_GroupIndex;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: atomicSub
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+
+static uint local_invocation_index_1 = 0u;
+groupshared int arg_0;
+void atomicSub_77883a() {
+  int res = 0;
+  int v = 0;
+  InterlockedAdd(arg_0, -(1), v);
+  int x_11 = v;
+  res = x_11;
+}
+
+void compute_main_inner(uint local_invocation_index_2) {
+  int v_1 = 0;
+  InterlockedExchange(arg_0, 0, v_1);
+  GroupMemoryBarrierWithGroupSync();
+  atomicSub_77883a();
+}
+
+void compute_main_1() {
+  uint x_31 = local_invocation_index_1;
+  compute_main_inner(x_31);
+}
+
+void compute_main_inner_1(uint local_invocation_index_1_param) {
+  if ((local_invocation_index_1_param == 0u)) {
+    int v_2 = 0;
+    InterlockedExchange(arg_0, 0, v_2);
+  }
+  GroupMemoryBarrierWithGroupSync();
+  local_invocation_index_1 = local_invocation_index_1_param;
+  compute_main_1();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main(compute_main_inputs inputs) {
+  compute_main_inner_1(inputs.local_invocation_index_1_param);
+}
+
diff --git a/test/tint/builtins/atomics/from_gen/literal/atomicSub/workgroup_u32.spvasm.expected.ir.dxc.hlsl b/test/tint/builtins/atomics/from_gen/literal/atomicSub/workgroup_u32.spvasm.expected.ir.dxc.hlsl
index 7a4d08e..981a611 100644
--- a/test/tint/builtins/atomics/from_gen/literal/atomicSub/workgroup_u32.spvasm.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/atomics/from_gen/literal/atomicSub/workgroup_u32.spvasm.expected.ir.dxc.hlsl
@@ -1,9 +1,111 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: atomicSub
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+
+var<private> local_invocation_index_1 : u32;
+
+var<workgroup> arg_0 : atomic<u32>;
+
+fn atomicSub_0d26c2() {
+  var res = 0u;
+  let x_10 = atomicSub(&(arg_0), 1u);
+  res = x_10;
+  return;
+}
+
+fn compute_main_inner(local_invocation_index_2 : u32) {
+  atomicStore(&(arg_0), 0u);
+  workgroupBarrier();
+  atomicSub_0d26c2();
+  return;
+}
+
+fn compute_main_1() {
+  let x_30 = local_invocation_index_1;
+  compute_main_inner(x_30);
+  return;
+}
+
+@compute @workgroup_size(1i, 1i, 1i)
+fn compute_main(@builtin(local_invocation_index) local_invocation_index_1_param : u32) {
+  local_invocation_index_1 = local_invocation_index_1_param;
+  compute_main_1();
+}
+
+Failed to generate: :14:5 error: unary: no matching overload for 'operator - (u32)'
+
+2 candidate operators:
+ • 'operator - (T  ✗ ) -> T' where:
+      ✗  'T' is 'f32', 'i32' or 'f16'
+ • 'operator - (vecN<T>  ✗ ) -> vecN<T>' where:
+      ✗  'T' is 'f32', 'i32' or 'f16'
+
+    %6:u32 = negation 1u
+    ^^^^^^^^^^^^^^^^^^^^
+
+:11:3 note: in block
+  $B2: {
+  ^^^
+
+note: # Disassembly
+compute_main_inputs = struct @align(4) {
+  local_invocation_index_1_param:u32 @offset(0), @builtin(local_invocation_index)
+}
+
+$B1: {  # root
+  %local_invocation_index_1:ptr<private, u32, read_write> = var
+  %arg_0:ptr<workgroup, atomic<u32>, read_write> = var
+}
+
+%atomicSub_0d26c2 = func():void {
+  $B2: {
+    %res:ptr<function, u32, read_write> = var, 0u
+    %5:ptr<function, u32, read_write> = var, 0u
+    %6:u32 = negation 1u
+    %7:void = hlsl.InterlockedAdd %arg_0, %6, %5
+    %8:u32 = load %5
+    %x_10:u32 = let %8
+    store %res, %x_10
+    ret
+  }
+}
+%compute_main_inner = func(%local_invocation_index_2:u32):void {
+  $B3: {
+    %12:ptr<function, u32, read_write> = var, 0u
+    %13:void = hlsl.InterlockedExchange %arg_0, 0u, %12
+    %14:void = workgroupBarrier
+    %15:void = call %atomicSub_0d26c2
+    ret
+  }
+}
+%compute_main_1 = func():void {
+  $B4: {
+    %17:u32 = load %local_invocation_index_1
+    %x_30:u32 = let %17
+    %19:void = call %compute_main_inner, %x_30
+    ret
+  }
+}
+%compute_main_inner_1 = func(%local_invocation_index_1_param:u32):void {  # %compute_main_inner_1: 'compute_main_inner'
+  $B5: {
+    %22:bool = eq %local_invocation_index_1_param, 0u
+    if %22 [t: $B6] {  # if_1
+      $B6: {  # true
+        %23:ptr<function, u32, read_write> = var, 0u
+        %24:void = hlsl.InterlockedExchange %arg_0, 0u, %23
+        exit_if  # if_1
+      }
+    }
+    %25:void = workgroupBarrier
+    store %local_invocation_index_1, %local_invocation_index_1_param
+    %26:void = call %compute_main_1
+    ret
+  }
+}
+%compute_main = @compute @workgroup_size(1, 1, 1) func(%inputs:compute_main_inputs):void {
+  $B7: {
+    %29:u32 = access %inputs, 0u
+    %30:void = call %compute_main_inner_1, %29
+    ret
+  }
+}
+
diff --git a/test/tint/builtins/atomics/from_gen/literal/atomicSub/workgroup_u32.spvasm.expected.ir.fxc.hlsl b/test/tint/builtins/atomics/from_gen/literal/atomicSub/workgroup_u32.spvasm.expected.ir.fxc.hlsl
index 7a4d08e..981a611 100644
--- a/test/tint/builtins/atomics/from_gen/literal/atomicSub/workgroup_u32.spvasm.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/atomics/from_gen/literal/atomicSub/workgroup_u32.spvasm.expected.ir.fxc.hlsl
@@ -1,9 +1,111 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: atomicSub
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+
+var<private> local_invocation_index_1 : u32;
+
+var<workgroup> arg_0 : atomic<u32>;
+
+fn atomicSub_0d26c2() {
+  var res = 0u;
+  let x_10 = atomicSub(&(arg_0), 1u);
+  res = x_10;
+  return;
+}
+
+fn compute_main_inner(local_invocation_index_2 : u32) {
+  atomicStore(&(arg_0), 0u);
+  workgroupBarrier();
+  atomicSub_0d26c2();
+  return;
+}
+
+fn compute_main_1() {
+  let x_30 = local_invocation_index_1;
+  compute_main_inner(x_30);
+  return;
+}
+
+@compute @workgroup_size(1i, 1i, 1i)
+fn compute_main(@builtin(local_invocation_index) local_invocation_index_1_param : u32) {
+  local_invocation_index_1 = local_invocation_index_1_param;
+  compute_main_1();
+}
+
+Failed to generate: :14:5 error: unary: no matching overload for 'operator - (u32)'
+
+2 candidate operators:
+ • 'operator - (T  ✗ ) -> T' where:
+      ✗  'T' is 'f32', 'i32' or 'f16'
+ • 'operator - (vecN<T>  ✗ ) -> vecN<T>' where:
+      ✗  'T' is 'f32', 'i32' or 'f16'
+
+    %6:u32 = negation 1u
+    ^^^^^^^^^^^^^^^^^^^^
+
+:11:3 note: in block
+  $B2: {
+  ^^^
+
+note: # Disassembly
+compute_main_inputs = struct @align(4) {
+  local_invocation_index_1_param:u32 @offset(0), @builtin(local_invocation_index)
+}
+
+$B1: {  # root
+  %local_invocation_index_1:ptr<private, u32, read_write> = var
+  %arg_0:ptr<workgroup, atomic<u32>, read_write> = var
+}
+
+%atomicSub_0d26c2 = func():void {
+  $B2: {
+    %res:ptr<function, u32, read_write> = var, 0u
+    %5:ptr<function, u32, read_write> = var, 0u
+    %6:u32 = negation 1u
+    %7:void = hlsl.InterlockedAdd %arg_0, %6, %5
+    %8:u32 = load %5
+    %x_10:u32 = let %8
+    store %res, %x_10
+    ret
+  }
+}
+%compute_main_inner = func(%local_invocation_index_2:u32):void {
+  $B3: {
+    %12:ptr<function, u32, read_write> = var, 0u
+    %13:void = hlsl.InterlockedExchange %arg_0, 0u, %12
+    %14:void = workgroupBarrier
+    %15:void = call %atomicSub_0d26c2
+    ret
+  }
+}
+%compute_main_1 = func():void {
+  $B4: {
+    %17:u32 = load %local_invocation_index_1
+    %x_30:u32 = let %17
+    %19:void = call %compute_main_inner, %x_30
+    ret
+  }
+}
+%compute_main_inner_1 = func(%local_invocation_index_1_param:u32):void {  # %compute_main_inner_1: 'compute_main_inner'
+  $B5: {
+    %22:bool = eq %local_invocation_index_1_param, 0u
+    if %22 [t: $B6] {  # if_1
+      $B6: {  # true
+        %23:ptr<function, u32, read_write> = var, 0u
+        %24:void = hlsl.InterlockedExchange %arg_0, 0u, %23
+        exit_if  # if_1
+      }
+    }
+    %25:void = workgroupBarrier
+    store %local_invocation_index_1, %local_invocation_index_1_param
+    %26:void = call %compute_main_1
+    ret
+  }
+}
+%compute_main = @compute @workgroup_size(1, 1, 1) func(%inputs:compute_main_inputs):void {
+  $B7: {
+    %29:u32 = access %inputs, 0u
+    %30:void = call %compute_main_inner_1, %29
+    ret
+  }
+}
+
diff --git a/test/tint/builtins/atomics/from_gen/literal/atomicXor/storage_i32.spvasm.expected.ir.dxc.hlsl b/test/tint/builtins/atomics/from_gen/literal/atomicXor/storage_i32.spvasm.expected.ir.dxc.hlsl
index 30cc037..8ecf315 100644
--- a/test/tint/builtins/atomics/from_gen/literal/atomicXor/storage_i32.spvasm.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/atomics/from_gen/literal/atomicXor/storage_i32.spvasm.expected.ir.dxc.hlsl
@@ -1,9 +1,27 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: atomicXor
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWByteAddressBuffer sb_rw : register(u0);
+void atomicXor_c1b78c() {
+  int res = 0;
+  int v = 0;
+  sb_rw.InterlockedXor(int(0u), 1, v);
+  int x_9 = v;
+  res = x_9;
+}
+
+void fragment_main_1() {
+  atomicXor_c1b78c();
+}
+
+void fragment_main() {
+  fragment_main_1();
+}
+
+void compute_main_1() {
+  atomicXor_c1b78c();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  compute_main_1();
+}
+
diff --git a/test/tint/builtins/atomics/from_gen/literal/atomicXor/storage_i32.spvasm.expected.ir.fxc.hlsl b/test/tint/builtins/atomics/from_gen/literal/atomicXor/storage_i32.spvasm.expected.ir.fxc.hlsl
index 30cc037..8ecf315 100644
--- a/test/tint/builtins/atomics/from_gen/literal/atomicXor/storage_i32.spvasm.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/atomics/from_gen/literal/atomicXor/storage_i32.spvasm.expected.ir.fxc.hlsl
@@ -1,9 +1,27 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: atomicXor
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWByteAddressBuffer sb_rw : register(u0);
+void atomicXor_c1b78c() {
+  int res = 0;
+  int v = 0;
+  sb_rw.InterlockedXor(int(0u), 1, v);
+  int x_9 = v;
+  res = x_9;
+}
+
+void fragment_main_1() {
+  atomicXor_c1b78c();
+}
+
+void fragment_main() {
+  fragment_main_1();
+}
+
+void compute_main_1() {
+  atomicXor_c1b78c();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  compute_main_1();
+}
+
diff --git a/test/tint/builtins/atomics/from_gen/literal/atomicXor/storage_u32.spvasm.expected.ir.dxc.hlsl b/test/tint/builtins/atomics/from_gen/literal/atomicXor/storage_u32.spvasm.expected.ir.dxc.hlsl
index 30cc037..2d40b9e 100644
--- a/test/tint/builtins/atomics/from_gen/literal/atomicXor/storage_u32.spvasm.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/atomics/from_gen/literal/atomicXor/storage_u32.spvasm.expected.ir.dxc.hlsl
@@ -1,9 +1,27 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: atomicXor
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWByteAddressBuffer sb_rw : register(u0);
+void atomicXor_54510e() {
+  uint res = 0u;
+  uint v = 0u;
+  sb_rw.InterlockedXor(uint(0u), 1u, v);
+  uint x_9 = v;
+  res = x_9;
+}
+
+void fragment_main_1() {
+  atomicXor_54510e();
+}
+
+void fragment_main() {
+  fragment_main_1();
+}
+
+void compute_main_1() {
+  atomicXor_54510e();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  compute_main_1();
+}
+
diff --git a/test/tint/builtins/atomics/from_gen/literal/atomicXor/storage_u32.spvasm.expected.ir.fxc.hlsl b/test/tint/builtins/atomics/from_gen/literal/atomicXor/storage_u32.spvasm.expected.ir.fxc.hlsl
index 30cc037..2d40b9e 100644
--- a/test/tint/builtins/atomics/from_gen/literal/atomicXor/storage_u32.spvasm.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/atomics/from_gen/literal/atomicXor/storage_u32.spvasm.expected.ir.fxc.hlsl
@@ -1,9 +1,27 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: atomicXor
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWByteAddressBuffer sb_rw : register(u0);
+void atomicXor_54510e() {
+  uint res = 0u;
+  uint v = 0u;
+  sb_rw.InterlockedXor(uint(0u), 1u, v);
+  uint x_9 = v;
+  res = x_9;
+}
+
+void fragment_main_1() {
+  atomicXor_54510e();
+}
+
+void fragment_main() {
+  fragment_main_1();
+}
+
+void compute_main_1() {
+  atomicXor_54510e();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  compute_main_1();
+}
+
diff --git a/test/tint/builtins/atomics/from_gen/literal/atomicXor/workgroup_i32.spvasm.expected.ir.dxc.hlsl b/test/tint/builtins/atomics/from_gen/literal/atomicXor/workgroup_i32.spvasm.expected.ir.dxc.hlsl
index 30cc037..2b9ff61 100644
--- a/test/tint/builtins/atomics/from_gen/literal/atomicXor/workgroup_i32.spvasm.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/atomics/from_gen/literal/atomicXor/workgroup_i32.spvasm.expected.ir.dxc.hlsl
@@ -1,9 +1,42 @@
-SKIP: FAILED
+struct compute_main_inputs {
+  uint local_invocation_index_1_param : SV_GroupIndex;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: atomicXor
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+
+static uint local_invocation_index_1 = 0u;
+groupshared int arg_0;
+void atomicXor_75dc95() {
+  int res = 0;
+  int v = 0;
+  InterlockedXor(arg_0, 1, v);
+  int x_11 = v;
+  res = x_11;
+}
+
+void compute_main_inner(uint local_invocation_index_2) {
+  int v_1 = 0;
+  InterlockedExchange(arg_0, 0, v_1);
+  GroupMemoryBarrierWithGroupSync();
+  atomicXor_75dc95();
+}
+
+void compute_main_1() {
+  uint x_31 = local_invocation_index_1;
+  compute_main_inner(x_31);
+}
+
+void compute_main_inner_1(uint local_invocation_index_1_param) {
+  if ((local_invocation_index_1_param == 0u)) {
+    int v_2 = 0;
+    InterlockedExchange(arg_0, 0, v_2);
+  }
+  GroupMemoryBarrierWithGroupSync();
+  local_invocation_index_1 = local_invocation_index_1_param;
+  compute_main_1();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main(compute_main_inputs inputs) {
+  compute_main_inner_1(inputs.local_invocation_index_1_param);
+}
+
diff --git a/test/tint/builtins/atomics/from_gen/literal/atomicXor/workgroup_i32.spvasm.expected.ir.fxc.hlsl b/test/tint/builtins/atomics/from_gen/literal/atomicXor/workgroup_i32.spvasm.expected.ir.fxc.hlsl
index 30cc037..2b9ff61 100644
--- a/test/tint/builtins/atomics/from_gen/literal/atomicXor/workgroup_i32.spvasm.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/atomics/from_gen/literal/atomicXor/workgroup_i32.spvasm.expected.ir.fxc.hlsl
@@ -1,9 +1,42 @@
-SKIP: FAILED
+struct compute_main_inputs {
+  uint local_invocation_index_1_param : SV_GroupIndex;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: atomicXor
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+
+static uint local_invocation_index_1 = 0u;
+groupshared int arg_0;
+void atomicXor_75dc95() {
+  int res = 0;
+  int v = 0;
+  InterlockedXor(arg_0, 1, v);
+  int x_11 = v;
+  res = x_11;
+}
+
+void compute_main_inner(uint local_invocation_index_2) {
+  int v_1 = 0;
+  InterlockedExchange(arg_0, 0, v_1);
+  GroupMemoryBarrierWithGroupSync();
+  atomicXor_75dc95();
+}
+
+void compute_main_1() {
+  uint x_31 = local_invocation_index_1;
+  compute_main_inner(x_31);
+}
+
+void compute_main_inner_1(uint local_invocation_index_1_param) {
+  if ((local_invocation_index_1_param == 0u)) {
+    int v_2 = 0;
+    InterlockedExchange(arg_0, 0, v_2);
+  }
+  GroupMemoryBarrierWithGroupSync();
+  local_invocation_index_1 = local_invocation_index_1_param;
+  compute_main_1();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main(compute_main_inputs inputs) {
+  compute_main_inner_1(inputs.local_invocation_index_1_param);
+}
+
diff --git a/test/tint/builtins/atomics/from_gen/literal/atomicXor/workgroup_u32.spvasm.expected.ir.dxc.hlsl b/test/tint/builtins/atomics/from_gen/literal/atomicXor/workgroup_u32.spvasm.expected.ir.dxc.hlsl
index 30cc037..634c2e1 100644
--- a/test/tint/builtins/atomics/from_gen/literal/atomicXor/workgroup_u32.spvasm.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/atomics/from_gen/literal/atomicXor/workgroup_u32.spvasm.expected.ir.dxc.hlsl
@@ -1,9 +1,42 @@
-SKIP: FAILED
+struct compute_main_inputs {
+  uint local_invocation_index_1_param : SV_GroupIndex;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: atomicXor
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+
+static uint local_invocation_index_1 = 0u;
+groupshared uint arg_0;
+void atomicXor_c8e6be() {
+  uint res = 0u;
+  uint v = 0u;
+  InterlockedXor(arg_0, 1u, v);
+  uint x_10 = v;
+  res = x_10;
+}
+
+void compute_main_inner(uint local_invocation_index_2) {
+  uint v_1 = 0u;
+  InterlockedExchange(arg_0, 0u, v_1);
+  GroupMemoryBarrierWithGroupSync();
+  atomicXor_c8e6be();
+}
+
+void compute_main_1() {
+  uint x_30 = local_invocation_index_1;
+  compute_main_inner(x_30);
+}
+
+void compute_main_inner_1(uint local_invocation_index_1_param) {
+  if ((local_invocation_index_1_param == 0u)) {
+    uint v_2 = 0u;
+    InterlockedExchange(arg_0, 0u, v_2);
+  }
+  GroupMemoryBarrierWithGroupSync();
+  local_invocation_index_1 = local_invocation_index_1_param;
+  compute_main_1();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main(compute_main_inputs inputs) {
+  compute_main_inner_1(inputs.local_invocation_index_1_param);
+}
+
diff --git a/test/tint/builtins/atomics/from_gen/literal/atomicXor/workgroup_u32.spvasm.expected.ir.fxc.hlsl b/test/tint/builtins/atomics/from_gen/literal/atomicXor/workgroup_u32.spvasm.expected.ir.fxc.hlsl
index 30cc037..634c2e1 100644
--- a/test/tint/builtins/atomics/from_gen/literal/atomicXor/workgroup_u32.spvasm.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/atomics/from_gen/literal/atomicXor/workgroup_u32.spvasm.expected.ir.fxc.hlsl
@@ -1,9 +1,42 @@
-SKIP: FAILED
+struct compute_main_inputs {
+  uint local_invocation_index_1_param : SV_GroupIndex;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: atomicXor
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+
+static uint local_invocation_index_1 = 0u;
+groupshared uint arg_0;
+void atomicXor_c8e6be() {
+  uint res = 0u;
+  uint v = 0u;
+  InterlockedXor(arg_0, 1u, v);
+  uint x_10 = v;
+  res = x_10;
+}
+
+void compute_main_inner(uint local_invocation_index_2) {
+  uint v_1 = 0u;
+  InterlockedExchange(arg_0, 0u, v_1);
+  GroupMemoryBarrierWithGroupSync();
+  atomicXor_c8e6be();
+}
+
+void compute_main_1() {
+  uint x_30 = local_invocation_index_1;
+  compute_main_inner(x_30);
+}
+
+void compute_main_inner_1(uint local_invocation_index_1_param) {
+  if ((local_invocation_index_1_param == 0u)) {
+    uint v_2 = 0u;
+    InterlockedExchange(arg_0, 0u, v_2);
+  }
+  GroupMemoryBarrierWithGroupSync();
+  local_invocation_index_1 = local_invocation_index_1_param;
+  compute_main_1();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main(compute_main_inputs inputs) {
+  compute_main_inner_1(inputs.local_invocation_index_1_param);
+}
+
diff --git a/test/tint/builtins/atomics/from_gen/literal/spvAtomicDecrement/storage_i32.spvasm.expected.ir.dxc.hlsl b/test/tint/builtins/atomics/from_gen/literal/spvAtomicDecrement/storage_i32.spvasm.expected.ir.dxc.hlsl
index 7a4d08e..65139b5 100644
--- a/test/tint/builtins/atomics/from_gen/literal/spvAtomicDecrement/storage_i32.spvasm.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/atomics/from_gen/literal/spvAtomicDecrement/storage_i32.spvasm.expected.ir.dxc.hlsl
@@ -1,9 +1,27 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: atomicSub
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWByteAddressBuffer sb_rw : register(u0);
+void atomicAdd_d32fe4() {
+  int res = 0;
+  int v = 0;
+  sb_rw.InterlockedAdd(int(0u), -(1), v);
+  int x_9 = v;
+  res = x_9;
+}
+
+void fragment_main_1() {
+  atomicAdd_d32fe4();
+}
+
+void fragment_main() {
+  fragment_main_1();
+}
+
+void compute_main_1() {
+  atomicAdd_d32fe4();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  compute_main_1();
+}
+
diff --git a/test/tint/builtins/atomics/from_gen/literal/spvAtomicDecrement/storage_i32.spvasm.expected.ir.fxc.hlsl b/test/tint/builtins/atomics/from_gen/literal/spvAtomicDecrement/storage_i32.spvasm.expected.ir.fxc.hlsl
index 7a4d08e..65139b5 100644
--- a/test/tint/builtins/atomics/from_gen/literal/spvAtomicDecrement/storage_i32.spvasm.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/atomics/from_gen/literal/spvAtomicDecrement/storage_i32.spvasm.expected.ir.fxc.hlsl
@@ -1,9 +1,27 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: atomicSub
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWByteAddressBuffer sb_rw : register(u0);
+void atomicAdd_d32fe4() {
+  int res = 0;
+  int v = 0;
+  sb_rw.InterlockedAdd(int(0u), -(1), v);
+  int x_9 = v;
+  res = x_9;
+}
+
+void fragment_main_1() {
+  atomicAdd_d32fe4();
+}
+
+void fragment_main() {
+  fragment_main_1();
+}
+
+void compute_main_1() {
+  atomicAdd_d32fe4();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  compute_main_1();
+}
+
diff --git a/test/tint/builtins/atomics/from_gen/literal/spvAtomicDecrement/storage_u32.spvasm.expected.ir.dxc.hlsl b/test/tint/builtins/atomics/from_gen/literal/spvAtomicDecrement/storage_u32.spvasm.expected.ir.dxc.hlsl
index 7a4d08e..6b6813d 100644
--- a/test/tint/builtins/atomics/from_gen/literal/spvAtomicDecrement/storage_u32.spvasm.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/atomics/from_gen/literal/spvAtomicDecrement/storage_u32.spvasm.expected.ir.dxc.hlsl
@@ -1,9 +1,104 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: atomicSub
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+
+struct SB_RW_atomic {
+  /* @offset(0) */
+  arg_0 : atomic<u32>,
+}
+
+struct SB_RW {
+  /* @offset(0) */
+  arg_0 : u32,
+}
+
+@group(0) @binding(0) var<storage, read_write> sb_rw : SB_RW_atomic;
+
+fn atomicAdd_8a199a() {
+  var res = 0u;
+  let x_9 = atomicSub(&(sb_rw.arg_0), 1u);
+  res = x_9;
+  return;
+}
+
+fn fragment_main_1() {
+  atomicAdd_8a199a();
+  return;
+}
+
+@fragment
+fn fragment_main() {
+  fragment_main_1();
+}
+
+fn compute_main_1() {
+  atomicAdd_8a199a();
+  return;
+}
+
+@compute @workgroup_size(1i, 1i, 1i)
+fn compute_main() {
+  compute_main_1();
+}
+
+Failed to generate: :13:5 error: unary: no matching overload for 'operator - (u32)'
+
+2 candidate operators:
+ • 'operator - (T  ✗ ) -> T' where:
+      ✗  'T' is 'f32', 'i32' or 'f16'
+ • 'operator - (vecN<T>  ✗ ) -> vecN<T>' where:
+      ✗  'T' is 'f32', 'i32' or 'f16'
+
+    %5:u32 = negation 1u
+    ^^^^^^^^^^^^^^^^^^^^
+
+:10:3 note: in block
+  $B2: {
+  ^^^
+
+note: # Disassembly
+SB_RW_atomic = struct @align(4) {
+  arg_0:atomic<u32> @offset(0)
+}
+
+$B1: {  # root
+  %sb_rw:hlsl.byte_address_buffer<read_write> = var @binding_point(0, 0)
+}
+
+%atomicAdd_8a199a = func():void {
+  $B2: {
+    %res:ptr<function, u32, read_write> = var, 0u
+    %4:ptr<function, u32, read_write> = var, 0u
+    %5:u32 = negation 1u
+    %6:u32 = convert 0u
+    %7:void = %sb_rw.InterlockedAdd %6, %5, %4
+    %8:u32 = load %4
+    %x_9:u32 = let %8
+    store %res, %x_9
+    ret
+  }
+}
+%fragment_main_1 = func():void {
+  $B3: {
+    %11:void = call %atomicAdd_8a199a
+    ret
+  }
+}
+%fragment_main = @fragment func():void {
+  $B4: {
+    %13:void = call %fragment_main_1
+    ret
+  }
+}
+%compute_main_1 = func():void {
+  $B5: {
+    %15:void = call %atomicAdd_8a199a
+    ret
+  }
+}
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B6: {
+    %17:void = call %compute_main_1
+    ret
+  }
+}
+
diff --git a/test/tint/builtins/atomics/from_gen/literal/spvAtomicDecrement/storage_u32.spvasm.expected.ir.fxc.hlsl b/test/tint/builtins/atomics/from_gen/literal/spvAtomicDecrement/storage_u32.spvasm.expected.ir.fxc.hlsl
index 7a4d08e..6b6813d 100644
--- a/test/tint/builtins/atomics/from_gen/literal/spvAtomicDecrement/storage_u32.spvasm.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/atomics/from_gen/literal/spvAtomicDecrement/storage_u32.spvasm.expected.ir.fxc.hlsl
@@ -1,9 +1,104 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: atomicSub
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+
+struct SB_RW_atomic {
+  /* @offset(0) */
+  arg_0 : atomic<u32>,
+}
+
+struct SB_RW {
+  /* @offset(0) */
+  arg_0 : u32,
+}
+
+@group(0) @binding(0) var<storage, read_write> sb_rw : SB_RW_atomic;
+
+fn atomicAdd_8a199a() {
+  var res = 0u;
+  let x_9 = atomicSub(&(sb_rw.arg_0), 1u);
+  res = x_9;
+  return;
+}
+
+fn fragment_main_1() {
+  atomicAdd_8a199a();
+  return;
+}
+
+@fragment
+fn fragment_main() {
+  fragment_main_1();
+}
+
+fn compute_main_1() {
+  atomicAdd_8a199a();
+  return;
+}
+
+@compute @workgroup_size(1i, 1i, 1i)
+fn compute_main() {
+  compute_main_1();
+}
+
+Failed to generate: :13:5 error: unary: no matching overload for 'operator - (u32)'
+
+2 candidate operators:
+ • 'operator - (T  ✗ ) -> T' where:
+      ✗  'T' is 'f32', 'i32' or 'f16'
+ • 'operator - (vecN<T>  ✗ ) -> vecN<T>' where:
+      ✗  'T' is 'f32', 'i32' or 'f16'
+
+    %5:u32 = negation 1u
+    ^^^^^^^^^^^^^^^^^^^^
+
+:10:3 note: in block
+  $B2: {
+  ^^^
+
+note: # Disassembly
+SB_RW_atomic = struct @align(4) {
+  arg_0:atomic<u32> @offset(0)
+}
+
+$B1: {  # root
+  %sb_rw:hlsl.byte_address_buffer<read_write> = var @binding_point(0, 0)
+}
+
+%atomicAdd_8a199a = func():void {
+  $B2: {
+    %res:ptr<function, u32, read_write> = var, 0u
+    %4:ptr<function, u32, read_write> = var, 0u
+    %5:u32 = negation 1u
+    %6:u32 = convert 0u
+    %7:void = %sb_rw.InterlockedAdd %6, %5, %4
+    %8:u32 = load %4
+    %x_9:u32 = let %8
+    store %res, %x_9
+    ret
+  }
+}
+%fragment_main_1 = func():void {
+  $B3: {
+    %11:void = call %atomicAdd_8a199a
+    ret
+  }
+}
+%fragment_main = @fragment func():void {
+  $B4: {
+    %13:void = call %fragment_main_1
+    ret
+  }
+}
+%compute_main_1 = func():void {
+  $B5: {
+    %15:void = call %atomicAdd_8a199a
+    ret
+  }
+}
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B6: {
+    %17:void = call %compute_main_1
+    ret
+  }
+}
+
diff --git a/test/tint/builtins/atomics/from_gen/literal/spvAtomicDecrement/workgroup_i32.spvasm.expected.ir.dxc.hlsl b/test/tint/builtins/atomics/from_gen/literal/spvAtomicDecrement/workgroup_i32.spvasm.expected.ir.dxc.hlsl
index 7a4d08e..0d7462e 100644
--- a/test/tint/builtins/atomics/from_gen/literal/spvAtomicDecrement/workgroup_i32.spvasm.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/atomics/from_gen/literal/spvAtomicDecrement/workgroup_i32.spvasm.expected.ir.dxc.hlsl
@@ -1,9 +1,42 @@
-SKIP: FAILED
+struct compute_main_inputs {
+  uint local_invocation_index_1_param : SV_GroupIndex;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: atomicSub
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+
+static uint local_invocation_index_1 = 0u;
+groupshared int arg_0;
+void atomicAdd_794055() {
+  int res = 0;
+  int v = 0;
+  InterlockedAdd(arg_0, -(1), v);
+  int x_11 = v;
+  res = x_11;
+}
+
+void compute_main_inner(uint local_invocation_index_2) {
+  int v_1 = 0;
+  InterlockedExchange(arg_0, 0, v_1);
+  GroupMemoryBarrierWithGroupSync();
+  atomicAdd_794055();
+}
+
+void compute_main_1() {
+  uint x_31 = local_invocation_index_1;
+  compute_main_inner(x_31);
+}
+
+void compute_main_inner_1(uint local_invocation_index_1_param) {
+  if ((local_invocation_index_1_param == 0u)) {
+    int v_2 = 0;
+    InterlockedExchange(arg_0, 0, v_2);
+  }
+  GroupMemoryBarrierWithGroupSync();
+  local_invocation_index_1 = local_invocation_index_1_param;
+  compute_main_1();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main(compute_main_inputs inputs) {
+  compute_main_inner_1(inputs.local_invocation_index_1_param);
+}
+
diff --git a/test/tint/builtins/atomics/from_gen/literal/spvAtomicDecrement/workgroup_i32.spvasm.expected.ir.fxc.hlsl b/test/tint/builtins/atomics/from_gen/literal/spvAtomicDecrement/workgroup_i32.spvasm.expected.ir.fxc.hlsl
index 7a4d08e..0d7462e 100644
--- a/test/tint/builtins/atomics/from_gen/literal/spvAtomicDecrement/workgroup_i32.spvasm.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/atomics/from_gen/literal/spvAtomicDecrement/workgroup_i32.spvasm.expected.ir.fxc.hlsl
@@ -1,9 +1,42 @@
-SKIP: FAILED
+struct compute_main_inputs {
+  uint local_invocation_index_1_param : SV_GroupIndex;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: atomicSub
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+
+static uint local_invocation_index_1 = 0u;
+groupshared int arg_0;
+void atomicAdd_794055() {
+  int res = 0;
+  int v = 0;
+  InterlockedAdd(arg_0, -(1), v);
+  int x_11 = v;
+  res = x_11;
+}
+
+void compute_main_inner(uint local_invocation_index_2) {
+  int v_1 = 0;
+  InterlockedExchange(arg_0, 0, v_1);
+  GroupMemoryBarrierWithGroupSync();
+  atomicAdd_794055();
+}
+
+void compute_main_1() {
+  uint x_31 = local_invocation_index_1;
+  compute_main_inner(x_31);
+}
+
+void compute_main_inner_1(uint local_invocation_index_1_param) {
+  if ((local_invocation_index_1_param == 0u)) {
+    int v_2 = 0;
+    InterlockedExchange(arg_0, 0, v_2);
+  }
+  GroupMemoryBarrierWithGroupSync();
+  local_invocation_index_1 = local_invocation_index_1_param;
+  compute_main_1();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main(compute_main_inputs inputs) {
+  compute_main_inner_1(inputs.local_invocation_index_1_param);
+}
+
diff --git a/test/tint/builtins/atomics/from_gen/literal/spvAtomicDecrement/workgroup_u32.spvasm.expected.ir.dxc.hlsl b/test/tint/builtins/atomics/from_gen/literal/spvAtomicDecrement/workgroup_u32.spvasm.expected.ir.dxc.hlsl
index 7a4d08e..c14ba39 100644
--- a/test/tint/builtins/atomics/from_gen/literal/spvAtomicDecrement/workgroup_u32.spvasm.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/atomics/from_gen/literal/spvAtomicDecrement/workgroup_u32.spvasm.expected.ir.dxc.hlsl
@@ -1,9 +1,111 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: atomicSub
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+
+var<private> local_invocation_index_1 : u32;
+
+var<workgroup> arg_0 : atomic<u32>;
+
+fn atomicAdd_d5db1d() {
+  var res = 0u;
+  let x_10 = atomicSub(&(arg_0), 1u);
+  res = x_10;
+  return;
+}
+
+fn compute_main_inner(local_invocation_index_2 : u32) {
+  atomicStore(&(arg_0), 0u);
+  workgroupBarrier();
+  atomicAdd_d5db1d();
+  return;
+}
+
+fn compute_main_1() {
+  let x_30 = local_invocation_index_1;
+  compute_main_inner(x_30);
+  return;
+}
+
+@compute @workgroup_size(1i, 1i, 1i)
+fn compute_main(@builtin(local_invocation_index) local_invocation_index_1_param : u32) {
+  local_invocation_index_1 = local_invocation_index_1_param;
+  compute_main_1();
+}
+
+Failed to generate: :14:5 error: unary: no matching overload for 'operator - (u32)'
+
+2 candidate operators:
+ • 'operator - (T  ✗ ) -> T' where:
+      ✗  'T' is 'f32', 'i32' or 'f16'
+ • 'operator - (vecN<T>  ✗ ) -> vecN<T>' where:
+      ✗  'T' is 'f32', 'i32' or 'f16'
+
+    %6:u32 = negation 1u
+    ^^^^^^^^^^^^^^^^^^^^
+
+:11:3 note: in block
+  $B2: {
+  ^^^
+
+note: # Disassembly
+compute_main_inputs = struct @align(4) {
+  local_invocation_index_1_param:u32 @offset(0), @builtin(local_invocation_index)
+}
+
+$B1: {  # root
+  %local_invocation_index_1:ptr<private, u32, read_write> = var
+  %arg_0:ptr<workgroup, atomic<u32>, read_write> = var
+}
+
+%atomicAdd_d5db1d = func():void {
+  $B2: {
+    %res:ptr<function, u32, read_write> = var, 0u
+    %5:ptr<function, u32, read_write> = var, 0u
+    %6:u32 = negation 1u
+    %7:void = hlsl.InterlockedAdd %arg_0, %6, %5
+    %8:u32 = load %5
+    %x_10:u32 = let %8
+    store %res, %x_10
+    ret
+  }
+}
+%compute_main_inner = func(%local_invocation_index_2:u32):void {
+  $B3: {
+    %12:ptr<function, u32, read_write> = var, 0u
+    %13:void = hlsl.InterlockedExchange %arg_0, 0u, %12
+    %14:void = workgroupBarrier
+    %15:void = call %atomicAdd_d5db1d
+    ret
+  }
+}
+%compute_main_1 = func():void {
+  $B4: {
+    %17:u32 = load %local_invocation_index_1
+    %x_30:u32 = let %17
+    %19:void = call %compute_main_inner, %x_30
+    ret
+  }
+}
+%compute_main_inner_1 = func(%local_invocation_index_1_param:u32):void {  # %compute_main_inner_1: 'compute_main_inner'
+  $B5: {
+    %22:bool = eq %local_invocation_index_1_param, 0u
+    if %22 [t: $B6] {  # if_1
+      $B6: {  # true
+        %23:ptr<function, u32, read_write> = var, 0u
+        %24:void = hlsl.InterlockedExchange %arg_0, 0u, %23
+        exit_if  # if_1
+      }
+    }
+    %25:void = workgroupBarrier
+    store %local_invocation_index_1, %local_invocation_index_1_param
+    %26:void = call %compute_main_1
+    ret
+  }
+}
+%compute_main = @compute @workgroup_size(1, 1, 1) func(%inputs:compute_main_inputs):void {
+  $B7: {
+    %29:u32 = access %inputs, 0u
+    %30:void = call %compute_main_inner_1, %29
+    ret
+  }
+}
+
diff --git a/test/tint/builtins/atomics/from_gen/literal/spvAtomicDecrement/workgroup_u32.spvasm.expected.ir.fxc.hlsl b/test/tint/builtins/atomics/from_gen/literal/spvAtomicDecrement/workgroup_u32.spvasm.expected.ir.fxc.hlsl
index 7a4d08e..c14ba39 100644
--- a/test/tint/builtins/atomics/from_gen/literal/spvAtomicDecrement/workgroup_u32.spvasm.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/atomics/from_gen/literal/spvAtomicDecrement/workgroup_u32.spvasm.expected.ir.fxc.hlsl
@@ -1,9 +1,111 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: atomicSub
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+
+var<private> local_invocation_index_1 : u32;
+
+var<workgroup> arg_0 : atomic<u32>;
+
+fn atomicAdd_d5db1d() {
+  var res = 0u;
+  let x_10 = atomicSub(&(arg_0), 1u);
+  res = x_10;
+  return;
+}
+
+fn compute_main_inner(local_invocation_index_2 : u32) {
+  atomicStore(&(arg_0), 0u);
+  workgroupBarrier();
+  atomicAdd_d5db1d();
+  return;
+}
+
+fn compute_main_1() {
+  let x_30 = local_invocation_index_1;
+  compute_main_inner(x_30);
+  return;
+}
+
+@compute @workgroup_size(1i, 1i, 1i)
+fn compute_main(@builtin(local_invocation_index) local_invocation_index_1_param : u32) {
+  local_invocation_index_1 = local_invocation_index_1_param;
+  compute_main_1();
+}
+
+Failed to generate: :14:5 error: unary: no matching overload for 'operator - (u32)'
+
+2 candidate operators:
+ • 'operator - (T  ✗ ) -> T' where:
+      ✗  'T' is 'f32', 'i32' or 'f16'
+ • 'operator - (vecN<T>  ✗ ) -> vecN<T>' where:
+      ✗  'T' is 'f32', 'i32' or 'f16'
+
+    %6:u32 = negation 1u
+    ^^^^^^^^^^^^^^^^^^^^
+
+:11:3 note: in block
+  $B2: {
+  ^^^
+
+note: # Disassembly
+compute_main_inputs = struct @align(4) {
+  local_invocation_index_1_param:u32 @offset(0), @builtin(local_invocation_index)
+}
+
+$B1: {  # root
+  %local_invocation_index_1:ptr<private, u32, read_write> = var
+  %arg_0:ptr<workgroup, atomic<u32>, read_write> = var
+}
+
+%atomicAdd_d5db1d = func():void {
+  $B2: {
+    %res:ptr<function, u32, read_write> = var, 0u
+    %5:ptr<function, u32, read_write> = var, 0u
+    %6:u32 = negation 1u
+    %7:void = hlsl.InterlockedAdd %arg_0, %6, %5
+    %8:u32 = load %5
+    %x_10:u32 = let %8
+    store %res, %x_10
+    ret
+  }
+}
+%compute_main_inner = func(%local_invocation_index_2:u32):void {
+  $B3: {
+    %12:ptr<function, u32, read_write> = var, 0u
+    %13:void = hlsl.InterlockedExchange %arg_0, 0u, %12
+    %14:void = workgroupBarrier
+    %15:void = call %atomicAdd_d5db1d
+    ret
+  }
+}
+%compute_main_1 = func():void {
+  $B4: {
+    %17:u32 = load %local_invocation_index_1
+    %x_30:u32 = let %17
+    %19:void = call %compute_main_inner, %x_30
+    ret
+  }
+}
+%compute_main_inner_1 = func(%local_invocation_index_1_param:u32):void {  # %compute_main_inner_1: 'compute_main_inner'
+  $B5: {
+    %22:bool = eq %local_invocation_index_1_param, 0u
+    if %22 [t: $B6] {  # if_1
+      $B6: {  # true
+        %23:ptr<function, u32, read_write> = var, 0u
+        %24:void = hlsl.InterlockedExchange %arg_0, 0u, %23
+        exit_if  # if_1
+      }
+    }
+    %25:void = workgroupBarrier
+    store %local_invocation_index_1, %local_invocation_index_1_param
+    %26:void = call %compute_main_1
+    ret
+  }
+}
+%compute_main = @compute @workgroup_size(1, 1, 1) func(%inputs:compute_main_inputs):void {
+  $B7: {
+    %29:u32 = access %inputs, 0u
+    %30:void = call %compute_main_inner_1, %29
+    ret
+  }
+}
+
diff --git a/test/tint/builtins/atomics/from_gen/literal/spvAtomicIncrement/storage_i32.spvasm.expected.ir.dxc.hlsl b/test/tint/builtins/atomics/from_gen/literal/spvAtomicIncrement/storage_i32.spvasm.expected.ir.dxc.hlsl
index b786ae2..6d08ebb 100644
--- a/test/tint/builtins/atomics/from_gen/literal/spvAtomicIncrement/storage_i32.spvasm.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/atomics/from_gen/literal/spvAtomicIncrement/storage_i32.spvasm.expected.ir.dxc.hlsl
@@ -1,9 +1,27 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: atomicAdd
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWByteAddressBuffer sb_rw : register(u0);
+void atomicAdd_d32fe4() {
+  int res = 0;
+  int v = 0;
+  sb_rw.InterlockedAdd(int(0u), 1, v);
+  int x_9 = v;
+  res = x_9;
+}
+
+void fragment_main_1() {
+  atomicAdd_d32fe4();
+}
+
+void fragment_main() {
+  fragment_main_1();
+}
+
+void compute_main_1() {
+  atomicAdd_d32fe4();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  compute_main_1();
+}
+
diff --git a/test/tint/builtins/atomics/from_gen/literal/spvAtomicIncrement/storage_i32.spvasm.expected.ir.fxc.hlsl b/test/tint/builtins/atomics/from_gen/literal/spvAtomicIncrement/storage_i32.spvasm.expected.ir.fxc.hlsl
index b786ae2..6d08ebb 100644
--- a/test/tint/builtins/atomics/from_gen/literal/spvAtomicIncrement/storage_i32.spvasm.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/atomics/from_gen/literal/spvAtomicIncrement/storage_i32.spvasm.expected.ir.fxc.hlsl
@@ -1,9 +1,27 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: atomicAdd
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWByteAddressBuffer sb_rw : register(u0);
+void atomicAdd_d32fe4() {
+  int res = 0;
+  int v = 0;
+  sb_rw.InterlockedAdd(int(0u), 1, v);
+  int x_9 = v;
+  res = x_9;
+}
+
+void fragment_main_1() {
+  atomicAdd_d32fe4();
+}
+
+void fragment_main() {
+  fragment_main_1();
+}
+
+void compute_main_1() {
+  atomicAdd_d32fe4();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  compute_main_1();
+}
+
diff --git a/test/tint/builtins/atomics/from_gen/literal/spvAtomicIncrement/storage_u32.spvasm.expected.ir.dxc.hlsl b/test/tint/builtins/atomics/from_gen/literal/spvAtomicIncrement/storage_u32.spvasm.expected.ir.dxc.hlsl
index b786ae2..4d67530 100644
--- a/test/tint/builtins/atomics/from_gen/literal/spvAtomicIncrement/storage_u32.spvasm.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/atomics/from_gen/literal/spvAtomicIncrement/storage_u32.spvasm.expected.ir.dxc.hlsl
@@ -1,9 +1,27 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: atomicAdd
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWByteAddressBuffer sb_rw : register(u0);
+void atomicAdd_8a199a() {
+  uint res = 0u;
+  uint v = 0u;
+  sb_rw.InterlockedAdd(uint(0u), 1u, v);
+  uint x_9 = v;
+  res = x_9;
+}
+
+void fragment_main_1() {
+  atomicAdd_8a199a();
+}
+
+void fragment_main() {
+  fragment_main_1();
+}
+
+void compute_main_1() {
+  atomicAdd_8a199a();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  compute_main_1();
+}
+
diff --git a/test/tint/builtins/atomics/from_gen/literal/spvAtomicIncrement/storage_u32.spvasm.expected.ir.fxc.hlsl b/test/tint/builtins/atomics/from_gen/literal/spvAtomicIncrement/storage_u32.spvasm.expected.ir.fxc.hlsl
index b786ae2..4d67530 100644
--- a/test/tint/builtins/atomics/from_gen/literal/spvAtomicIncrement/storage_u32.spvasm.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/atomics/from_gen/literal/spvAtomicIncrement/storage_u32.spvasm.expected.ir.fxc.hlsl
@@ -1,9 +1,27 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: atomicAdd
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWByteAddressBuffer sb_rw : register(u0);
+void atomicAdd_8a199a() {
+  uint res = 0u;
+  uint v = 0u;
+  sb_rw.InterlockedAdd(uint(0u), 1u, v);
+  uint x_9 = v;
+  res = x_9;
+}
+
+void fragment_main_1() {
+  atomicAdd_8a199a();
+}
+
+void fragment_main() {
+  fragment_main_1();
+}
+
+void compute_main_1() {
+  atomicAdd_8a199a();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  compute_main_1();
+}
+
diff --git a/test/tint/builtins/atomics/from_gen/literal/spvAtomicIncrement/workgroup_i32.spvasm.expected.ir.dxc.hlsl b/test/tint/builtins/atomics/from_gen/literal/spvAtomicIncrement/workgroup_i32.spvasm.expected.ir.dxc.hlsl
index b786ae2..f753b40 100644
--- a/test/tint/builtins/atomics/from_gen/literal/spvAtomicIncrement/workgroup_i32.spvasm.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/atomics/from_gen/literal/spvAtomicIncrement/workgroup_i32.spvasm.expected.ir.dxc.hlsl
@@ -1,9 +1,42 @@
-SKIP: FAILED
+struct compute_main_inputs {
+  uint local_invocation_index_1_param : SV_GroupIndex;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: atomicAdd
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+
+static uint local_invocation_index_1 = 0u;
+groupshared int arg_0;
+void atomicAdd_794055() {
+  int res = 0;
+  int v = 0;
+  InterlockedAdd(arg_0, 1, v);
+  int x_11 = v;
+  res = x_11;
+}
+
+void compute_main_inner(uint local_invocation_index_2) {
+  int v_1 = 0;
+  InterlockedExchange(arg_0, 0, v_1);
+  GroupMemoryBarrierWithGroupSync();
+  atomicAdd_794055();
+}
+
+void compute_main_1() {
+  uint x_31 = local_invocation_index_1;
+  compute_main_inner(x_31);
+}
+
+void compute_main_inner_1(uint local_invocation_index_1_param) {
+  if ((local_invocation_index_1_param == 0u)) {
+    int v_2 = 0;
+    InterlockedExchange(arg_0, 0, v_2);
+  }
+  GroupMemoryBarrierWithGroupSync();
+  local_invocation_index_1 = local_invocation_index_1_param;
+  compute_main_1();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main(compute_main_inputs inputs) {
+  compute_main_inner_1(inputs.local_invocation_index_1_param);
+}
+
diff --git a/test/tint/builtins/atomics/from_gen/literal/spvAtomicIncrement/workgroup_i32.spvasm.expected.ir.fxc.hlsl b/test/tint/builtins/atomics/from_gen/literal/spvAtomicIncrement/workgroup_i32.spvasm.expected.ir.fxc.hlsl
index b786ae2..f753b40 100644
--- a/test/tint/builtins/atomics/from_gen/literal/spvAtomicIncrement/workgroup_i32.spvasm.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/atomics/from_gen/literal/spvAtomicIncrement/workgroup_i32.spvasm.expected.ir.fxc.hlsl
@@ -1,9 +1,42 @@
-SKIP: FAILED
+struct compute_main_inputs {
+  uint local_invocation_index_1_param : SV_GroupIndex;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: atomicAdd
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+
+static uint local_invocation_index_1 = 0u;
+groupshared int arg_0;
+void atomicAdd_794055() {
+  int res = 0;
+  int v = 0;
+  InterlockedAdd(arg_0, 1, v);
+  int x_11 = v;
+  res = x_11;
+}
+
+void compute_main_inner(uint local_invocation_index_2) {
+  int v_1 = 0;
+  InterlockedExchange(arg_0, 0, v_1);
+  GroupMemoryBarrierWithGroupSync();
+  atomicAdd_794055();
+}
+
+void compute_main_1() {
+  uint x_31 = local_invocation_index_1;
+  compute_main_inner(x_31);
+}
+
+void compute_main_inner_1(uint local_invocation_index_1_param) {
+  if ((local_invocation_index_1_param == 0u)) {
+    int v_2 = 0;
+    InterlockedExchange(arg_0, 0, v_2);
+  }
+  GroupMemoryBarrierWithGroupSync();
+  local_invocation_index_1 = local_invocation_index_1_param;
+  compute_main_1();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main(compute_main_inputs inputs) {
+  compute_main_inner_1(inputs.local_invocation_index_1_param);
+}
+
diff --git a/test/tint/builtins/atomics/from_gen/literal/spvAtomicIncrement/workgroup_u32.spvasm.expected.ir.dxc.hlsl b/test/tint/builtins/atomics/from_gen/literal/spvAtomicIncrement/workgroup_u32.spvasm.expected.ir.dxc.hlsl
index b786ae2..b7d4f46 100644
--- a/test/tint/builtins/atomics/from_gen/literal/spvAtomicIncrement/workgroup_u32.spvasm.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/atomics/from_gen/literal/spvAtomicIncrement/workgroup_u32.spvasm.expected.ir.dxc.hlsl
@@ -1,9 +1,42 @@
-SKIP: FAILED
+struct compute_main_inputs {
+  uint local_invocation_index_1_param : SV_GroupIndex;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: atomicAdd
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+
+static uint local_invocation_index_1 = 0u;
+groupshared uint arg_0;
+void atomicAdd_d5db1d() {
+  uint res = 0u;
+  uint v = 0u;
+  InterlockedAdd(arg_0, 1u, v);
+  uint x_10 = v;
+  res = x_10;
+}
+
+void compute_main_inner(uint local_invocation_index_2) {
+  uint v_1 = 0u;
+  InterlockedExchange(arg_0, 0u, v_1);
+  GroupMemoryBarrierWithGroupSync();
+  atomicAdd_d5db1d();
+}
+
+void compute_main_1() {
+  uint x_30 = local_invocation_index_1;
+  compute_main_inner(x_30);
+}
+
+void compute_main_inner_1(uint local_invocation_index_1_param) {
+  if ((local_invocation_index_1_param == 0u)) {
+    uint v_2 = 0u;
+    InterlockedExchange(arg_0, 0u, v_2);
+  }
+  GroupMemoryBarrierWithGroupSync();
+  local_invocation_index_1 = local_invocation_index_1_param;
+  compute_main_1();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main(compute_main_inputs inputs) {
+  compute_main_inner_1(inputs.local_invocation_index_1_param);
+}
+
diff --git a/test/tint/builtins/atomics/from_gen/literal/spvAtomicIncrement/workgroup_u32.spvasm.expected.ir.fxc.hlsl b/test/tint/builtins/atomics/from_gen/literal/spvAtomicIncrement/workgroup_u32.spvasm.expected.ir.fxc.hlsl
index b786ae2..b7d4f46 100644
--- a/test/tint/builtins/atomics/from_gen/literal/spvAtomicIncrement/workgroup_u32.spvasm.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/atomics/from_gen/literal/spvAtomicIncrement/workgroup_u32.spvasm.expected.ir.fxc.hlsl
@@ -1,9 +1,42 @@
-SKIP: FAILED
+struct compute_main_inputs {
+  uint local_invocation_index_1_param : SV_GroupIndex;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: atomicAdd
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+
+static uint local_invocation_index_1 = 0u;
+groupshared uint arg_0;
+void atomicAdd_d5db1d() {
+  uint res = 0u;
+  uint v = 0u;
+  InterlockedAdd(arg_0, 1u, v);
+  uint x_10 = v;
+  res = x_10;
+}
+
+void compute_main_inner(uint local_invocation_index_2) {
+  uint v_1 = 0u;
+  InterlockedExchange(arg_0, 0u, v_1);
+  GroupMemoryBarrierWithGroupSync();
+  atomicAdd_d5db1d();
+}
+
+void compute_main_1() {
+  uint x_30 = local_invocation_index_1;
+  compute_main_inner(x_30);
+}
+
+void compute_main_inner_1(uint local_invocation_index_1_param) {
+  if ((local_invocation_index_1_param == 0u)) {
+    uint v_2 = 0u;
+    InterlockedExchange(arg_0, 0u, v_2);
+  }
+  GroupMemoryBarrierWithGroupSync();
+  local_invocation_index_1 = local_invocation_index_1_param;
+  compute_main_1();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main(compute_main_inputs inputs) {
+  compute_main_inner_1(inputs.local_invocation_index_1_param);
+}
+
diff --git a/test/tint/builtins/atomics/from_gen/var/atomicAdd/storage_i32.spvasm.expected.ir.dxc.hlsl b/test/tint/builtins/atomics/from_gen/var/atomicAdd/storage_i32.spvasm.expected.ir.dxc.hlsl
index b786ae2..3420f7c 100644
--- a/test/tint/builtins/atomics/from_gen/var/atomicAdd/storage_i32.spvasm.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/atomics/from_gen/var/atomicAdd/storage_i32.spvasm.expected.ir.dxc.hlsl
@@ -1,9 +1,30 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: atomicAdd
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWByteAddressBuffer sb_rw : register(u0);
+void atomicAdd_d32fe4() {
+  int arg_1 = 0;
+  int res = 0;
+  arg_1 = 1;
+  int x_20 = arg_1;
+  int v = 0;
+  sb_rw.InterlockedAdd(int(0u), x_20, v);
+  int x_13 = v;
+  res = x_13;
+}
+
+void fragment_main_1() {
+  atomicAdd_d32fe4();
+}
+
+void fragment_main() {
+  fragment_main_1();
+}
+
+void compute_main_1() {
+  atomicAdd_d32fe4();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  compute_main_1();
+}
+
diff --git a/test/tint/builtins/atomics/from_gen/var/atomicAdd/storage_i32.spvasm.expected.ir.fxc.hlsl b/test/tint/builtins/atomics/from_gen/var/atomicAdd/storage_i32.spvasm.expected.ir.fxc.hlsl
index b786ae2..3420f7c 100644
--- a/test/tint/builtins/atomics/from_gen/var/atomicAdd/storage_i32.spvasm.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/atomics/from_gen/var/atomicAdd/storage_i32.spvasm.expected.ir.fxc.hlsl
@@ -1,9 +1,30 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: atomicAdd
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWByteAddressBuffer sb_rw : register(u0);
+void atomicAdd_d32fe4() {
+  int arg_1 = 0;
+  int res = 0;
+  arg_1 = 1;
+  int x_20 = arg_1;
+  int v = 0;
+  sb_rw.InterlockedAdd(int(0u), x_20, v);
+  int x_13 = v;
+  res = x_13;
+}
+
+void fragment_main_1() {
+  atomicAdd_d32fe4();
+}
+
+void fragment_main() {
+  fragment_main_1();
+}
+
+void compute_main_1() {
+  atomicAdd_d32fe4();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  compute_main_1();
+}
+
diff --git a/test/tint/builtins/atomics/from_gen/var/atomicAdd/storage_u32.spvasm.expected.ir.dxc.hlsl b/test/tint/builtins/atomics/from_gen/var/atomicAdd/storage_u32.spvasm.expected.ir.dxc.hlsl
index b786ae2..3d0e590 100644
--- a/test/tint/builtins/atomics/from_gen/var/atomicAdd/storage_u32.spvasm.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/atomics/from_gen/var/atomicAdd/storage_u32.spvasm.expected.ir.dxc.hlsl
@@ -1,9 +1,30 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: atomicAdd
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWByteAddressBuffer sb_rw : register(u0);
+void atomicAdd_8a199a() {
+  uint arg_1 = 0u;
+  uint res = 0u;
+  arg_1 = 1u;
+  uint x_18 = arg_1;
+  uint v = 0u;
+  sb_rw.InterlockedAdd(uint(0u), x_18, v);
+  uint x_13 = v;
+  res = x_13;
+}
+
+void fragment_main_1() {
+  atomicAdd_8a199a();
+}
+
+void fragment_main() {
+  fragment_main_1();
+}
+
+void compute_main_1() {
+  atomicAdd_8a199a();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  compute_main_1();
+}
+
diff --git a/test/tint/builtins/atomics/from_gen/var/atomicAdd/storage_u32.spvasm.expected.ir.fxc.hlsl b/test/tint/builtins/atomics/from_gen/var/atomicAdd/storage_u32.spvasm.expected.ir.fxc.hlsl
index b786ae2..3d0e590 100644
--- a/test/tint/builtins/atomics/from_gen/var/atomicAdd/storage_u32.spvasm.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/atomics/from_gen/var/atomicAdd/storage_u32.spvasm.expected.ir.fxc.hlsl
@@ -1,9 +1,30 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: atomicAdd
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWByteAddressBuffer sb_rw : register(u0);
+void atomicAdd_8a199a() {
+  uint arg_1 = 0u;
+  uint res = 0u;
+  arg_1 = 1u;
+  uint x_18 = arg_1;
+  uint v = 0u;
+  sb_rw.InterlockedAdd(uint(0u), x_18, v);
+  uint x_13 = v;
+  res = x_13;
+}
+
+void fragment_main_1() {
+  atomicAdd_8a199a();
+}
+
+void fragment_main() {
+  fragment_main_1();
+}
+
+void compute_main_1() {
+  atomicAdd_8a199a();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  compute_main_1();
+}
+
diff --git a/test/tint/builtins/atomics/from_gen/var/atomicAdd/workgroup_i32.spvasm.expected.ir.dxc.hlsl b/test/tint/builtins/atomics/from_gen/var/atomicAdd/workgroup_i32.spvasm.expected.ir.dxc.hlsl
index b786ae2..bac97de 100644
--- a/test/tint/builtins/atomics/from_gen/var/atomicAdd/workgroup_i32.spvasm.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/atomics/from_gen/var/atomicAdd/workgroup_i32.spvasm.expected.ir.dxc.hlsl
@@ -1,9 +1,45 @@
-SKIP: FAILED
+struct compute_main_inputs {
+  uint local_invocation_index_1_param : SV_GroupIndex;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: atomicAdd
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+
+static uint local_invocation_index_1 = 0u;
+groupshared int arg_0;
+void atomicAdd_794055() {
+  int arg_1 = 0;
+  int res = 0;
+  arg_1 = 1;
+  int x_19 = arg_1;
+  int v = 0;
+  InterlockedAdd(arg_0, x_19, v);
+  int x_15 = v;
+  res = x_15;
+}
+
+void compute_main_inner(uint local_invocation_index_2) {
+  int v_1 = 0;
+  InterlockedExchange(arg_0, 0, v_1);
+  GroupMemoryBarrierWithGroupSync();
+  atomicAdd_794055();
+}
+
+void compute_main_1() {
+  uint x_33 = local_invocation_index_1;
+  compute_main_inner(x_33);
+}
+
+void compute_main_inner_1(uint local_invocation_index_1_param) {
+  if ((local_invocation_index_1_param == 0u)) {
+    int v_2 = 0;
+    InterlockedExchange(arg_0, 0, v_2);
+  }
+  GroupMemoryBarrierWithGroupSync();
+  local_invocation_index_1 = local_invocation_index_1_param;
+  compute_main_1();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main(compute_main_inputs inputs) {
+  compute_main_inner_1(inputs.local_invocation_index_1_param);
+}
+
diff --git a/test/tint/builtins/atomics/from_gen/var/atomicAdd/workgroup_i32.spvasm.expected.ir.fxc.hlsl b/test/tint/builtins/atomics/from_gen/var/atomicAdd/workgroup_i32.spvasm.expected.ir.fxc.hlsl
index b786ae2..bac97de 100644
--- a/test/tint/builtins/atomics/from_gen/var/atomicAdd/workgroup_i32.spvasm.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/atomics/from_gen/var/atomicAdd/workgroup_i32.spvasm.expected.ir.fxc.hlsl
@@ -1,9 +1,45 @@
-SKIP: FAILED
+struct compute_main_inputs {
+  uint local_invocation_index_1_param : SV_GroupIndex;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: atomicAdd
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+
+static uint local_invocation_index_1 = 0u;
+groupshared int arg_0;
+void atomicAdd_794055() {
+  int arg_1 = 0;
+  int res = 0;
+  arg_1 = 1;
+  int x_19 = arg_1;
+  int v = 0;
+  InterlockedAdd(arg_0, x_19, v);
+  int x_15 = v;
+  res = x_15;
+}
+
+void compute_main_inner(uint local_invocation_index_2) {
+  int v_1 = 0;
+  InterlockedExchange(arg_0, 0, v_1);
+  GroupMemoryBarrierWithGroupSync();
+  atomicAdd_794055();
+}
+
+void compute_main_1() {
+  uint x_33 = local_invocation_index_1;
+  compute_main_inner(x_33);
+}
+
+void compute_main_inner_1(uint local_invocation_index_1_param) {
+  if ((local_invocation_index_1_param == 0u)) {
+    int v_2 = 0;
+    InterlockedExchange(arg_0, 0, v_2);
+  }
+  GroupMemoryBarrierWithGroupSync();
+  local_invocation_index_1 = local_invocation_index_1_param;
+  compute_main_1();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main(compute_main_inputs inputs) {
+  compute_main_inner_1(inputs.local_invocation_index_1_param);
+}
+
diff --git a/test/tint/builtins/atomics/from_gen/var/atomicAdd/workgroup_u32.spvasm.expected.ir.dxc.hlsl b/test/tint/builtins/atomics/from_gen/var/atomicAdd/workgroup_u32.spvasm.expected.ir.dxc.hlsl
index b786ae2..1392e4a 100644
--- a/test/tint/builtins/atomics/from_gen/var/atomicAdd/workgroup_u32.spvasm.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/atomics/from_gen/var/atomicAdd/workgroup_u32.spvasm.expected.ir.dxc.hlsl
@@ -1,9 +1,45 @@
-SKIP: FAILED
+struct compute_main_inputs {
+  uint local_invocation_index_1_param : SV_GroupIndex;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: atomicAdd
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+
+static uint local_invocation_index_1 = 0u;
+groupshared uint arg_0;
+void atomicAdd_d5db1d() {
+  uint arg_1 = 0u;
+  uint res = 0u;
+  arg_1 = 1u;
+  uint x_18 = arg_1;
+  uint v = 0u;
+  InterlockedAdd(arg_0, x_18, v);
+  uint x_14 = v;
+  res = x_14;
+}
+
+void compute_main_inner(uint local_invocation_index_2) {
+  uint v_1 = 0u;
+  InterlockedExchange(arg_0, 0u, v_1);
+  GroupMemoryBarrierWithGroupSync();
+  atomicAdd_d5db1d();
+}
+
+void compute_main_1() {
+  uint x_32 = local_invocation_index_1;
+  compute_main_inner(x_32);
+}
+
+void compute_main_inner_1(uint local_invocation_index_1_param) {
+  if ((local_invocation_index_1_param == 0u)) {
+    uint v_2 = 0u;
+    InterlockedExchange(arg_0, 0u, v_2);
+  }
+  GroupMemoryBarrierWithGroupSync();
+  local_invocation_index_1 = local_invocation_index_1_param;
+  compute_main_1();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main(compute_main_inputs inputs) {
+  compute_main_inner_1(inputs.local_invocation_index_1_param);
+}
+
diff --git a/test/tint/builtins/atomics/from_gen/var/atomicAdd/workgroup_u32.spvasm.expected.ir.fxc.hlsl b/test/tint/builtins/atomics/from_gen/var/atomicAdd/workgroup_u32.spvasm.expected.ir.fxc.hlsl
index b786ae2..1392e4a 100644
--- a/test/tint/builtins/atomics/from_gen/var/atomicAdd/workgroup_u32.spvasm.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/atomics/from_gen/var/atomicAdd/workgroup_u32.spvasm.expected.ir.fxc.hlsl
@@ -1,9 +1,45 @@
-SKIP: FAILED
+struct compute_main_inputs {
+  uint local_invocation_index_1_param : SV_GroupIndex;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: atomicAdd
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+
+static uint local_invocation_index_1 = 0u;
+groupshared uint arg_0;
+void atomicAdd_d5db1d() {
+  uint arg_1 = 0u;
+  uint res = 0u;
+  arg_1 = 1u;
+  uint x_18 = arg_1;
+  uint v = 0u;
+  InterlockedAdd(arg_0, x_18, v);
+  uint x_14 = v;
+  res = x_14;
+}
+
+void compute_main_inner(uint local_invocation_index_2) {
+  uint v_1 = 0u;
+  InterlockedExchange(arg_0, 0u, v_1);
+  GroupMemoryBarrierWithGroupSync();
+  atomicAdd_d5db1d();
+}
+
+void compute_main_1() {
+  uint x_32 = local_invocation_index_1;
+  compute_main_inner(x_32);
+}
+
+void compute_main_inner_1(uint local_invocation_index_1_param) {
+  if ((local_invocation_index_1_param == 0u)) {
+    uint v_2 = 0u;
+    InterlockedExchange(arg_0, 0u, v_2);
+  }
+  GroupMemoryBarrierWithGroupSync();
+  local_invocation_index_1 = local_invocation_index_1_param;
+  compute_main_1();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main(compute_main_inputs inputs) {
+  compute_main_inner_1(inputs.local_invocation_index_1_param);
+}
+
diff --git a/test/tint/builtins/atomics/from_gen/var/atomicAnd/storage_i32.spvasm.expected.ir.dxc.hlsl b/test/tint/builtins/atomics/from_gen/var/atomicAnd/storage_i32.spvasm.expected.ir.dxc.hlsl
index 084941d..99bfaba 100644
--- a/test/tint/builtins/atomics/from_gen/var/atomicAnd/storage_i32.spvasm.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/atomics/from_gen/var/atomicAnd/storage_i32.spvasm.expected.ir.dxc.hlsl
@@ -1,9 +1,30 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: atomicAnd
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWByteAddressBuffer sb_rw : register(u0);
+void atomicAnd_152966() {
+  int arg_1 = 0;
+  int res = 0;
+  arg_1 = 1;
+  int x_20 = arg_1;
+  int v = 0;
+  sb_rw.InterlockedAnd(int(0u), x_20, v);
+  int x_13 = v;
+  res = x_13;
+}
+
+void fragment_main_1() {
+  atomicAnd_152966();
+}
+
+void fragment_main() {
+  fragment_main_1();
+}
+
+void compute_main_1() {
+  atomicAnd_152966();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  compute_main_1();
+}
+
diff --git a/test/tint/builtins/atomics/from_gen/var/atomicAnd/storage_i32.spvasm.expected.ir.fxc.hlsl b/test/tint/builtins/atomics/from_gen/var/atomicAnd/storage_i32.spvasm.expected.ir.fxc.hlsl
index 084941d..99bfaba 100644
--- a/test/tint/builtins/atomics/from_gen/var/atomicAnd/storage_i32.spvasm.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/atomics/from_gen/var/atomicAnd/storage_i32.spvasm.expected.ir.fxc.hlsl
@@ -1,9 +1,30 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: atomicAnd
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWByteAddressBuffer sb_rw : register(u0);
+void atomicAnd_152966() {
+  int arg_1 = 0;
+  int res = 0;
+  arg_1 = 1;
+  int x_20 = arg_1;
+  int v = 0;
+  sb_rw.InterlockedAnd(int(0u), x_20, v);
+  int x_13 = v;
+  res = x_13;
+}
+
+void fragment_main_1() {
+  atomicAnd_152966();
+}
+
+void fragment_main() {
+  fragment_main_1();
+}
+
+void compute_main_1() {
+  atomicAnd_152966();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  compute_main_1();
+}
+
diff --git a/test/tint/builtins/atomics/from_gen/var/atomicAnd/storage_u32.spvasm.expected.ir.dxc.hlsl b/test/tint/builtins/atomics/from_gen/var/atomicAnd/storage_u32.spvasm.expected.ir.dxc.hlsl
index 084941d..b9755fb 100644
--- a/test/tint/builtins/atomics/from_gen/var/atomicAnd/storage_u32.spvasm.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/atomics/from_gen/var/atomicAnd/storage_u32.spvasm.expected.ir.dxc.hlsl
@@ -1,9 +1,30 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: atomicAnd
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWByteAddressBuffer sb_rw : register(u0);
+void atomicAnd_85a8d9() {
+  uint arg_1 = 0u;
+  uint res = 0u;
+  arg_1 = 1u;
+  uint x_18 = arg_1;
+  uint v = 0u;
+  sb_rw.InterlockedAnd(uint(0u), x_18, v);
+  uint x_13 = v;
+  res = x_13;
+}
+
+void fragment_main_1() {
+  atomicAnd_85a8d9();
+}
+
+void fragment_main() {
+  fragment_main_1();
+}
+
+void compute_main_1() {
+  atomicAnd_85a8d9();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  compute_main_1();
+}
+
diff --git a/test/tint/builtins/atomics/from_gen/var/atomicAnd/storage_u32.spvasm.expected.ir.fxc.hlsl b/test/tint/builtins/atomics/from_gen/var/atomicAnd/storage_u32.spvasm.expected.ir.fxc.hlsl
index 084941d..b9755fb 100644
--- a/test/tint/builtins/atomics/from_gen/var/atomicAnd/storage_u32.spvasm.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/atomics/from_gen/var/atomicAnd/storage_u32.spvasm.expected.ir.fxc.hlsl
@@ -1,9 +1,30 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: atomicAnd
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWByteAddressBuffer sb_rw : register(u0);
+void atomicAnd_85a8d9() {
+  uint arg_1 = 0u;
+  uint res = 0u;
+  arg_1 = 1u;
+  uint x_18 = arg_1;
+  uint v = 0u;
+  sb_rw.InterlockedAnd(uint(0u), x_18, v);
+  uint x_13 = v;
+  res = x_13;
+}
+
+void fragment_main_1() {
+  atomicAnd_85a8d9();
+}
+
+void fragment_main() {
+  fragment_main_1();
+}
+
+void compute_main_1() {
+  atomicAnd_85a8d9();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  compute_main_1();
+}
+
diff --git a/test/tint/builtins/atomics/from_gen/var/atomicAnd/workgroup_i32.spvasm.expected.ir.dxc.hlsl b/test/tint/builtins/atomics/from_gen/var/atomicAnd/workgroup_i32.spvasm.expected.ir.dxc.hlsl
index 084941d..3bda0be 100644
--- a/test/tint/builtins/atomics/from_gen/var/atomicAnd/workgroup_i32.spvasm.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/atomics/from_gen/var/atomicAnd/workgroup_i32.spvasm.expected.ir.dxc.hlsl
@@ -1,9 +1,45 @@
-SKIP: FAILED
+struct compute_main_inputs {
+  uint local_invocation_index_1_param : SV_GroupIndex;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: atomicAnd
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+
+static uint local_invocation_index_1 = 0u;
+groupshared int arg_0;
+void atomicAnd_45a819() {
+  int arg_1 = 0;
+  int res = 0;
+  arg_1 = 1;
+  int x_19 = arg_1;
+  int v = 0;
+  InterlockedAnd(arg_0, x_19, v);
+  int x_15 = v;
+  res = x_15;
+}
+
+void compute_main_inner(uint local_invocation_index_2) {
+  int v_1 = 0;
+  InterlockedExchange(arg_0, 0, v_1);
+  GroupMemoryBarrierWithGroupSync();
+  atomicAnd_45a819();
+}
+
+void compute_main_1() {
+  uint x_33 = local_invocation_index_1;
+  compute_main_inner(x_33);
+}
+
+void compute_main_inner_1(uint local_invocation_index_1_param) {
+  if ((local_invocation_index_1_param == 0u)) {
+    int v_2 = 0;
+    InterlockedExchange(arg_0, 0, v_2);
+  }
+  GroupMemoryBarrierWithGroupSync();
+  local_invocation_index_1 = local_invocation_index_1_param;
+  compute_main_1();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main(compute_main_inputs inputs) {
+  compute_main_inner_1(inputs.local_invocation_index_1_param);
+}
+
diff --git a/test/tint/builtins/atomics/from_gen/var/atomicAnd/workgroup_i32.spvasm.expected.ir.fxc.hlsl b/test/tint/builtins/atomics/from_gen/var/atomicAnd/workgroup_i32.spvasm.expected.ir.fxc.hlsl
index 084941d..3bda0be 100644
--- a/test/tint/builtins/atomics/from_gen/var/atomicAnd/workgroup_i32.spvasm.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/atomics/from_gen/var/atomicAnd/workgroup_i32.spvasm.expected.ir.fxc.hlsl
@@ -1,9 +1,45 @@
-SKIP: FAILED
+struct compute_main_inputs {
+  uint local_invocation_index_1_param : SV_GroupIndex;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: atomicAnd
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+
+static uint local_invocation_index_1 = 0u;
+groupshared int arg_0;
+void atomicAnd_45a819() {
+  int arg_1 = 0;
+  int res = 0;
+  arg_1 = 1;
+  int x_19 = arg_1;
+  int v = 0;
+  InterlockedAnd(arg_0, x_19, v);
+  int x_15 = v;
+  res = x_15;
+}
+
+void compute_main_inner(uint local_invocation_index_2) {
+  int v_1 = 0;
+  InterlockedExchange(arg_0, 0, v_1);
+  GroupMemoryBarrierWithGroupSync();
+  atomicAnd_45a819();
+}
+
+void compute_main_1() {
+  uint x_33 = local_invocation_index_1;
+  compute_main_inner(x_33);
+}
+
+void compute_main_inner_1(uint local_invocation_index_1_param) {
+  if ((local_invocation_index_1_param == 0u)) {
+    int v_2 = 0;
+    InterlockedExchange(arg_0, 0, v_2);
+  }
+  GroupMemoryBarrierWithGroupSync();
+  local_invocation_index_1 = local_invocation_index_1_param;
+  compute_main_1();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main(compute_main_inputs inputs) {
+  compute_main_inner_1(inputs.local_invocation_index_1_param);
+}
+
diff --git a/test/tint/builtins/atomics/from_gen/var/atomicAnd/workgroup_u32.spvasm.expected.ir.dxc.hlsl b/test/tint/builtins/atomics/from_gen/var/atomicAnd/workgroup_u32.spvasm.expected.ir.dxc.hlsl
index 084941d..d0d5daf 100644
--- a/test/tint/builtins/atomics/from_gen/var/atomicAnd/workgroup_u32.spvasm.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/atomics/from_gen/var/atomicAnd/workgroup_u32.spvasm.expected.ir.dxc.hlsl
@@ -1,9 +1,45 @@
-SKIP: FAILED
+struct compute_main_inputs {
+  uint local_invocation_index_1_param : SV_GroupIndex;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: atomicAnd
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+
+static uint local_invocation_index_1 = 0u;
+groupshared uint arg_0;
+void atomicAnd_34edd3() {
+  uint arg_1 = 0u;
+  uint res = 0u;
+  arg_1 = 1u;
+  uint x_18 = arg_1;
+  uint v = 0u;
+  InterlockedAnd(arg_0, x_18, v);
+  uint x_14 = v;
+  res = x_14;
+}
+
+void compute_main_inner(uint local_invocation_index_2) {
+  uint v_1 = 0u;
+  InterlockedExchange(arg_0, 0u, v_1);
+  GroupMemoryBarrierWithGroupSync();
+  atomicAnd_34edd3();
+}
+
+void compute_main_1() {
+  uint x_32 = local_invocation_index_1;
+  compute_main_inner(x_32);
+}
+
+void compute_main_inner_1(uint local_invocation_index_1_param) {
+  if ((local_invocation_index_1_param == 0u)) {
+    uint v_2 = 0u;
+    InterlockedExchange(arg_0, 0u, v_2);
+  }
+  GroupMemoryBarrierWithGroupSync();
+  local_invocation_index_1 = local_invocation_index_1_param;
+  compute_main_1();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main(compute_main_inputs inputs) {
+  compute_main_inner_1(inputs.local_invocation_index_1_param);
+}
+
diff --git a/test/tint/builtins/atomics/from_gen/var/atomicAnd/workgroup_u32.spvasm.expected.ir.fxc.hlsl b/test/tint/builtins/atomics/from_gen/var/atomicAnd/workgroup_u32.spvasm.expected.ir.fxc.hlsl
index 084941d..d0d5daf 100644
--- a/test/tint/builtins/atomics/from_gen/var/atomicAnd/workgroup_u32.spvasm.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/atomics/from_gen/var/atomicAnd/workgroup_u32.spvasm.expected.ir.fxc.hlsl
@@ -1,9 +1,45 @@
-SKIP: FAILED
+struct compute_main_inputs {
+  uint local_invocation_index_1_param : SV_GroupIndex;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: atomicAnd
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+
+static uint local_invocation_index_1 = 0u;
+groupshared uint arg_0;
+void atomicAnd_34edd3() {
+  uint arg_1 = 0u;
+  uint res = 0u;
+  arg_1 = 1u;
+  uint x_18 = arg_1;
+  uint v = 0u;
+  InterlockedAnd(arg_0, x_18, v);
+  uint x_14 = v;
+  res = x_14;
+}
+
+void compute_main_inner(uint local_invocation_index_2) {
+  uint v_1 = 0u;
+  InterlockedExchange(arg_0, 0u, v_1);
+  GroupMemoryBarrierWithGroupSync();
+  atomicAnd_34edd3();
+}
+
+void compute_main_1() {
+  uint x_32 = local_invocation_index_1;
+  compute_main_inner(x_32);
+}
+
+void compute_main_inner_1(uint local_invocation_index_1_param) {
+  if ((local_invocation_index_1_param == 0u)) {
+    uint v_2 = 0u;
+    InterlockedExchange(arg_0, 0u, v_2);
+  }
+  GroupMemoryBarrierWithGroupSync();
+  local_invocation_index_1 = local_invocation_index_1_param;
+  compute_main_1();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main(compute_main_inputs inputs) {
+  compute_main_inner_1(inputs.local_invocation_index_1_param);
+}
+
diff --git a/test/tint/builtins/atomics/from_gen/var/atomicCompareExchangeWeak/storage_i32.spvasm.expected.ir.dxc.hlsl b/test/tint/builtins/atomics/from_gen/var/atomicCompareExchangeWeak/storage_i32.spvasm.expected.ir.dxc.hlsl
index 0ba40c6..bbb0dc9 100644
--- a/test/tint/builtins/atomics/from_gen/var/atomicCompareExchangeWeak/storage_i32.spvasm.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/atomics/from_gen/var/atomicCompareExchangeWeak/storage_i32.spvasm.expected.ir.dxc.hlsl
@@ -1,9 +1,47 @@
-SKIP: FAILED
+struct x__atomic_compare_exchange_resulti32 {
+  int old_value;
+  bool exchanged;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct atomic_compare_exchange_result_i32 {
+  int old_value;
+  bool exchanged;
+};
+
+
+RWByteAddressBuffer sb_rw : register(u0);
+void atomicCompareExchangeWeak_1bd40a() {
+  int arg_1 = 0;
+  int arg_2 = 0;
+  x__atomic_compare_exchange_resulti32 res = (x__atomic_compare_exchange_resulti32)0;
+  arg_1 = 1;
+  arg_2 = 1;
+  int x_23 = arg_2;
+  int x_24 = arg_1;
+  int v = 0;
+  sb_rw.InterlockedCompareExchange(int(0u), x_24, x_23, v);
+  int v_1 = v;
+  atomic_compare_exchange_result_i32 v_2 = {v_1, (v_1 == x_24)};
+  int old_value_1 = v_2.old_value;
+  int x_25 = old_value_1;
+  x__atomic_compare_exchange_resulti32 v_3 = {x_25, (x_25 == x_23)};
+  res = v_3;
+}
+
+void fragment_main_1() {
+  atomicCompareExchangeWeak_1bd40a();
+}
+
+void fragment_main() {
+  fragment_main_1();
+}
+
+void compute_main_1() {
+  atomicCompareExchangeWeak_1bd40a();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  compute_main_1();
+}
+
diff --git a/test/tint/builtins/atomics/from_gen/var/atomicCompareExchangeWeak/storage_i32.spvasm.expected.ir.fxc.hlsl b/test/tint/builtins/atomics/from_gen/var/atomicCompareExchangeWeak/storage_i32.spvasm.expected.ir.fxc.hlsl
index 0ba40c6..bbb0dc9 100644
--- a/test/tint/builtins/atomics/from_gen/var/atomicCompareExchangeWeak/storage_i32.spvasm.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/atomics/from_gen/var/atomicCompareExchangeWeak/storage_i32.spvasm.expected.ir.fxc.hlsl
@@ -1,9 +1,47 @@
-SKIP: FAILED
+struct x__atomic_compare_exchange_resulti32 {
+  int old_value;
+  bool exchanged;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct atomic_compare_exchange_result_i32 {
+  int old_value;
+  bool exchanged;
+};
+
+
+RWByteAddressBuffer sb_rw : register(u0);
+void atomicCompareExchangeWeak_1bd40a() {
+  int arg_1 = 0;
+  int arg_2 = 0;
+  x__atomic_compare_exchange_resulti32 res = (x__atomic_compare_exchange_resulti32)0;
+  arg_1 = 1;
+  arg_2 = 1;
+  int x_23 = arg_2;
+  int x_24 = arg_1;
+  int v = 0;
+  sb_rw.InterlockedCompareExchange(int(0u), x_24, x_23, v);
+  int v_1 = v;
+  atomic_compare_exchange_result_i32 v_2 = {v_1, (v_1 == x_24)};
+  int old_value_1 = v_2.old_value;
+  int x_25 = old_value_1;
+  x__atomic_compare_exchange_resulti32 v_3 = {x_25, (x_25 == x_23)};
+  res = v_3;
+}
+
+void fragment_main_1() {
+  atomicCompareExchangeWeak_1bd40a();
+}
+
+void fragment_main() {
+  fragment_main_1();
+}
+
+void compute_main_1() {
+  atomicCompareExchangeWeak_1bd40a();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  compute_main_1();
+}
+
diff --git a/test/tint/builtins/atomics/from_gen/var/atomicCompareExchangeWeak/storage_u32.spvasm.expected.ir.dxc.hlsl b/test/tint/builtins/atomics/from_gen/var/atomicCompareExchangeWeak/storage_u32.spvasm.expected.ir.dxc.hlsl
index 0ba40c6..d42c8a0 100644
--- a/test/tint/builtins/atomics/from_gen/var/atomicCompareExchangeWeak/storage_u32.spvasm.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/atomics/from_gen/var/atomicCompareExchangeWeak/storage_u32.spvasm.expected.ir.dxc.hlsl
@@ -1,9 +1,47 @@
-SKIP: FAILED
+struct x__atomic_compare_exchange_resultu32 {
+  uint old_value;
+  bool exchanged;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct atomic_compare_exchange_result_u32 {
+  uint old_value;
+  bool exchanged;
+};
+
+
+RWByteAddressBuffer sb_rw : register(u0);
+void atomicCompareExchangeWeak_63d8e6() {
+  uint arg_1 = 0u;
+  uint arg_2 = 0u;
+  x__atomic_compare_exchange_resultu32 res = (x__atomic_compare_exchange_resultu32)0;
+  arg_1 = 1u;
+  arg_2 = 1u;
+  uint x_21 = arg_2;
+  uint x_22 = arg_1;
+  uint v = 0u;
+  sb_rw.InterlockedCompareExchange(uint(0u), x_22, x_21, v);
+  uint v_1 = v;
+  atomic_compare_exchange_result_u32 v_2 = {v_1, (v_1 == x_22)};
+  uint old_value_1 = v_2.old_value;
+  uint x_23 = old_value_1;
+  x__atomic_compare_exchange_resultu32 v_3 = {x_23, (x_23 == x_21)};
+  res = v_3;
+}
+
+void fragment_main_1() {
+  atomicCompareExchangeWeak_63d8e6();
+}
+
+void fragment_main() {
+  fragment_main_1();
+}
+
+void compute_main_1() {
+  atomicCompareExchangeWeak_63d8e6();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  compute_main_1();
+}
+
diff --git a/test/tint/builtins/atomics/from_gen/var/atomicCompareExchangeWeak/storage_u32.spvasm.expected.ir.fxc.hlsl b/test/tint/builtins/atomics/from_gen/var/atomicCompareExchangeWeak/storage_u32.spvasm.expected.ir.fxc.hlsl
index 0ba40c6..d42c8a0 100644
--- a/test/tint/builtins/atomics/from_gen/var/atomicCompareExchangeWeak/storage_u32.spvasm.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/atomics/from_gen/var/atomicCompareExchangeWeak/storage_u32.spvasm.expected.ir.fxc.hlsl
@@ -1,9 +1,47 @@
-SKIP: FAILED
+struct x__atomic_compare_exchange_resultu32 {
+  uint old_value;
+  bool exchanged;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct atomic_compare_exchange_result_u32 {
+  uint old_value;
+  bool exchanged;
+};
+
+
+RWByteAddressBuffer sb_rw : register(u0);
+void atomicCompareExchangeWeak_63d8e6() {
+  uint arg_1 = 0u;
+  uint arg_2 = 0u;
+  x__atomic_compare_exchange_resultu32 res = (x__atomic_compare_exchange_resultu32)0;
+  arg_1 = 1u;
+  arg_2 = 1u;
+  uint x_21 = arg_2;
+  uint x_22 = arg_1;
+  uint v = 0u;
+  sb_rw.InterlockedCompareExchange(uint(0u), x_22, x_21, v);
+  uint v_1 = v;
+  atomic_compare_exchange_result_u32 v_2 = {v_1, (v_1 == x_22)};
+  uint old_value_1 = v_2.old_value;
+  uint x_23 = old_value_1;
+  x__atomic_compare_exchange_resultu32 v_3 = {x_23, (x_23 == x_21)};
+  res = v_3;
+}
+
+void fragment_main_1() {
+  atomicCompareExchangeWeak_63d8e6();
+}
+
+void fragment_main() {
+  fragment_main_1();
+}
+
+void compute_main_1() {
+  atomicCompareExchangeWeak_63d8e6();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  compute_main_1();
+}
+
diff --git a/test/tint/builtins/atomics/from_gen/var/atomicCompareExchangeWeak/workgroup_i32.spvasm.expected.ir.dxc.hlsl b/test/tint/builtins/atomics/from_gen/var/atomicCompareExchangeWeak/workgroup_i32.spvasm.expected.ir.dxc.hlsl
index 0ba40c6..79c3972 100644
--- a/test/tint/builtins/atomics/from_gen/var/atomicCompareExchangeWeak/workgroup_i32.spvasm.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/atomics/from_gen/var/atomicCompareExchangeWeak/workgroup_i32.spvasm.expected.ir.dxc.hlsl
@@ -1,9 +1,62 @@
-SKIP: FAILED
+struct x__atomic_compare_exchange_resulti32 {
+  int old_value;
+  bool exchanged;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct atomic_compare_exchange_result_i32 {
+  int old_value;
+  bool exchanged;
+};
+
+struct compute_main_inputs {
+  uint local_invocation_index_1_param : SV_GroupIndex;
+};
+
+
+static uint local_invocation_index_1 = 0u;
+groupshared int arg_0;
+void atomicCompareExchangeWeak_e88938() {
+  int arg_1 = 0;
+  int arg_2 = 0;
+  x__atomic_compare_exchange_resulti32 res = (x__atomic_compare_exchange_resulti32)0;
+  arg_1 = 1;
+  arg_2 = 1;
+  int x_22 = arg_2;
+  int x_23 = arg_1;
+  int v = 0;
+  InterlockedCompareExchange(arg_0, x_23, x_22, v);
+  int v_1 = v;
+  atomic_compare_exchange_result_i32 v_2 = {v_1, (v_1 == x_23)};
+  int old_value_1 = v_2.old_value;
+  int x_24 = old_value_1;
+  x__atomic_compare_exchange_resulti32 v_3 = {x_24, (x_24 == x_22)};
+  res = v_3;
+}
+
+void compute_main_inner(uint local_invocation_index_2) {
+  int v_4 = 0;
+  InterlockedExchange(arg_0, 0, v_4);
+  GroupMemoryBarrierWithGroupSync();
+  atomicCompareExchangeWeak_e88938();
+}
+
+void compute_main_1() {
+  uint x_41 = local_invocation_index_1;
+  compute_main_inner(x_41);
+}
+
+void compute_main_inner_1(uint local_invocation_index_1_param) {
+  if ((local_invocation_index_1_param == 0u)) {
+    int v_5 = 0;
+    InterlockedExchange(arg_0, 0, v_5);
+  }
+  GroupMemoryBarrierWithGroupSync();
+  local_invocation_index_1 = local_invocation_index_1_param;
+  compute_main_1();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main(compute_main_inputs inputs) {
+  compute_main_inner_1(inputs.local_invocation_index_1_param);
+}
+
diff --git a/test/tint/builtins/atomics/from_gen/var/atomicCompareExchangeWeak/workgroup_i32.spvasm.expected.ir.fxc.hlsl b/test/tint/builtins/atomics/from_gen/var/atomicCompareExchangeWeak/workgroup_i32.spvasm.expected.ir.fxc.hlsl
index 0ba40c6..79c3972 100644
--- a/test/tint/builtins/atomics/from_gen/var/atomicCompareExchangeWeak/workgroup_i32.spvasm.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/atomics/from_gen/var/atomicCompareExchangeWeak/workgroup_i32.spvasm.expected.ir.fxc.hlsl
@@ -1,9 +1,62 @@
-SKIP: FAILED
+struct x__atomic_compare_exchange_resulti32 {
+  int old_value;
+  bool exchanged;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct atomic_compare_exchange_result_i32 {
+  int old_value;
+  bool exchanged;
+};
+
+struct compute_main_inputs {
+  uint local_invocation_index_1_param : SV_GroupIndex;
+};
+
+
+static uint local_invocation_index_1 = 0u;
+groupshared int arg_0;
+void atomicCompareExchangeWeak_e88938() {
+  int arg_1 = 0;
+  int arg_2 = 0;
+  x__atomic_compare_exchange_resulti32 res = (x__atomic_compare_exchange_resulti32)0;
+  arg_1 = 1;
+  arg_2 = 1;
+  int x_22 = arg_2;
+  int x_23 = arg_1;
+  int v = 0;
+  InterlockedCompareExchange(arg_0, x_23, x_22, v);
+  int v_1 = v;
+  atomic_compare_exchange_result_i32 v_2 = {v_1, (v_1 == x_23)};
+  int old_value_1 = v_2.old_value;
+  int x_24 = old_value_1;
+  x__atomic_compare_exchange_resulti32 v_3 = {x_24, (x_24 == x_22)};
+  res = v_3;
+}
+
+void compute_main_inner(uint local_invocation_index_2) {
+  int v_4 = 0;
+  InterlockedExchange(arg_0, 0, v_4);
+  GroupMemoryBarrierWithGroupSync();
+  atomicCompareExchangeWeak_e88938();
+}
+
+void compute_main_1() {
+  uint x_41 = local_invocation_index_1;
+  compute_main_inner(x_41);
+}
+
+void compute_main_inner_1(uint local_invocation_index_1_param) {
+  if ((local_invocation_index_1_param == 0u)) {
+    int v_5 = 0;
+    InterlockedExchange(arg_0, 0, v_5);
+  }
+  GroupMemoryBarrierWithGroupSync();
+  local_invocation_index_1 = local_invocation_index_1_param;
+  compute_main_1();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main(compute_main_inputs inputs) {
+  compute_main_inner_1(inputs.local_invocation_index_1_param);
+}
+
diff --git a/test/tint/builtins/atomics/from_gen/var/atomicCompareExchangeWeak/workgroup_u32.spvasm.expected.ir.dxc.hlsl b/test/tint/builtins/atomics/from_gen/var/atomicCompareExchangeWeak/workgroup_u32.spvasm.expected.ir.dxc.hlsl
index 0ba40c6..3942ead 100644
--- a/test/tint/builtins/atomics/from_gen/var/atomicCompareExchangeWeak/workgroup_u32.spvasm.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/atomics/from_gen/var/atomicCompareExchangeWeak/workgroup_u32.spvasm.expected.ir.dxc.hlsl
@@ -1,9 +1,62 @@
-SKIP: FAILED
+struct x__atomic_compare_exchange_resultu32 {
+  uint old_value;
+  bool exchanged;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct atomic_compare_exchange_result_u32 {
+  uint old_value;
+  bool exchanged;
+};
+
+struct compute_main_inputs {
+  uint local_invocation_index_1_param : SV_GroupIndex;
+};
+
+
+static uint local_invocation_index_1 = 0u;
+groupshared uint arg_0;
+void atomicCompareExchangeWeak_83580d() {
+  uint arg_1 = 0u;
+  uint arg_2 = 0u;
+  x__atomic_compare_exchange_resultu32 res = (x__atomic_compare_exchange_resultu32)0;
+  arg_1 = 1u;
+  arg_2 = 1u;
+  uint x_21 = arg_2;
+  uint x_22 = arg_1;
+  uint v = 0u;
+  InterlockedCompareExchange(arg_0, x_22, x_21, v);
+  uint v_1 = v;
+  atomic_compare_exchange_result_u32 v_2 = {v_1, (v_1 == x_22)};
+  uint old_value_1 = v_2.old_value;
+  uint x_23 = old_value_1;
+  x__atomic_compare_exchange_resultu32 v_3 = {x_23, (x_23 == x_21)};
+  res = v_3;
+}
+
+void compute_main_inner(uint local_invocation_index_2) {
+  uint v_4 = 0u;
+  InterlockedExchange(arg_0, 0u, v_4);
+  GroupMemoryBarrierWithGroupSync();
+  atomicCompareExchangeWeak_83580d();
+}
+
+void compute_main_1() {
+  uint x_40 = local_invocation_index_1;
+  compute_main_inner(x_40);
+}
+
+void compute_main_inner_1(uint local_invocation_index_1_param) {
+  if ((local_invocation_index_1_param == 0u)) {
+    uint v_5 = 0u;
+    InterlockedExchange(arg_0, 0u, v_5);
+  }
+  GroupMemoryBarrierWithGroupSync();
+  local_invocation_index_1 = local_invocation_index_1_param;
+  compute_main_1();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main(compute_main_inputs inputs) {
+  compute_main_inner_1(inputs.local_invocation_index_1_param);
+}
+
diff --git a/test/tint/builtins/atomics/from_gen/var/atomicCompareExchangeWeak/workgroup_u32.spvasm.expected.ir.fxc.hlsl b/test/tint/builtins/atomics/from_gen/var/atomicCompareExchangeWeak/workgroup_u32.spvasm.expected.ir.fxc.hlsl
index 0ba40c6..3942ead 100644
--- a/test/tint/builtins/atomics/from_gen/var/atomicCompareExchangeWeak/workgroup_u32.spvasm.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/atomics/from_gen/var/atomicCompareExchangeWeak/workgroup_u32.spvasm.expected.ir.fxc.hlsl
@@ -1,9 +1,62 @@
-SKIP: FAILED
+struct x__atomic_compare_exchange_resultu32 {
+  uint old_value;
+  bool exchanged;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct atomic_compare_exchange_result_u32 {
+  uint old_value;
+  bool exchanged;
+};
+
+struct compute_main_inputs {
+  uint local_invocation_index_1_param : SV_GroupIndex;
+};
+
+
+static uint local_invocation_index_1 = 0u;
+groupshared uint arg_0;
+void atomicCompareExchangeWeak_83580d() {
+  uint arg_1 = 0u;
+  uint arg_2 = 0u;
+  x__atomic_compare_exchange_resultu32 res = (x__atomic_compare_exchange_resultu32)0;
+  arg_1 = 1u;
+  arg_2 = 1u;
+  uint x_21 = arg_2;
+  uint x_22 = arg_1;
+  uint v = 0u;
+  InterlockedCompareExchange(arg_0, x_22, x_21, v);
+  uint v_1 = v;
+  atomic_compare_exchange_result_u32 v_2 = {v_1, (v_1 == x_22)};
+  uint old_value_1 = v_2.old_value;
+  uint x_23 = old_value_1;
+  x__atomic_compare_exchange_resultu32 v_3 = {x_23, (x_23 == x_21)};
+  res = v_3;
+}
+
+void compute_main_inner(uint local_invocation_index_2) {
+  uint v_4 = 0u;
+  InterlockedExchange(arg_0, 0u, v_4);
+  GroupMemoryBarrierWithGroupSync();
+  atomicCompareExchangeWeak_83580d();
+}
+
+void compute_main_1() {
+  uint x_40 = local_invocation_index_1;
+  compute_main_inner(x_40);
+}
+
+void compute_main_inner_1(uint local_invocation_index_1_param) {
+  if ((local_invocation_index_1_param == 0u)) {
+    uint v_5 = 0u;
+    InterlockedExchange(arg_0, 0u, v_5);
+  }
+  GroupMemoryBarrierWithGroupSync();
+  local_invocation_index_1 = local_invocation_index_1_param;
+  compute_main_1();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main(compute_main_inputs inputs) {
+  compute_main_inner_1(inputs.local_invocation_index_1_param);
+}
+
diff --git a/test/tint/builtins/atomics/from_gen/var/atomicExchange/storage_i32.spvasm.expected.ir.dxc.hlsl b/test/tint/builtins/atomics/from_gen/var/atomicExchange/storage_i32.spvasm.expected.ir.dxc.hlsl
index 165fea9..9b4ec54 100644
--- a/test/tint/builtins/atomics/from_gen/var/atomicExchange/storage_i32.spvasm.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/atomics/from_gen/var/atomicExchange/storage_i32.spvasm.expected.ir.dxc.hlsl
@@ -1,9 +1,30 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: atomicExchange
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWByteAddressBuffer sb_rw : register(u0);
+void atomicExchange_f2e22f() {
+  int arg_1 = 0;
+  int res = 0;
+  arg_1 = 1;
+  int x_20 = arg_1;
+  int v = 0;
+  sb_rw.InterlockedExchange(int(0u), x_20, v);
+  int x_13 = v;
+  res = x_13;
+}
+
+void fragment_main_1() {
+  atomicExchange_f2e22f();
+}
+
+void fragment_main() {
+  fragment_main_1();
+}
+
+void compute_main_1() {
+  atomicExchange_f2e22f();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  compute_main_1();
+}
+
diff --git a/test/tint/builtins/atomics/from_gen/var/atomicExchange/storage_i32.spvasm.expected.ir.fxc.hlsl b/test/tint/builtins/atomics/from_gen/var/atomicExchange/storage_i32.spvasm.expected.ir.fxc.hlsl
index 165fea9..9b4ec54 100644
--- a/test/tint/builtins/atomics/from_gen/var/atomicExchange/storage_i32.spvasm.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/atomics/from_gen/var/atomicExchange/storage_i32.spvasm.expected.ir.fxc.hlsl
@@ -1,9 +1,30 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: atomicExchange
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWByteAddressBuffer sb_rw : register(u0);
+void atomicExchange_f2e22f() {
+  int arg_1 = 0;
+  int res = 0;
+  arg_1 = 1;
+  int x_20 = arg_1;
+  int v = 0;
+  sb_rw.InterlockedExchange(int(0u), x_20, v);
+  int x_13 = v;
+  res = x_13;
+}
+
+void fragment_main_1() {
+  atomicExchange_f2e22f();
+}
+
+void fragment_main() {
+  fragment_main_1();
+}
+
+void compute_main_1() {
+  atomicExchange_f2e22f();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  compute_main_1();
+}
+
diff --git a/test/tint/builtins/atomics/from_gen/var/atomicExchange/storage_u32.spvasm.expected.ir.dxc.hlsl b/test/tint/builtins/atomics/from_gen/var/atomicExchange/storage_u32.spvasm.expected.ir.dxc.hlsl
index 165fea9..f286bc7 100644
--- a/test/tint/builtins/atomics/from_gen/var/atomicExchange/storage_u32.spvasm.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/atomics/from_gen/var/atomicExchange/storage_u32.spvasm.expected.ir.dxc.hlsl
@@ -1,9 +1,30 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: atomicExchange
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWByteAddressBuffer sb_rw : register(u0);
+void atomicExchange_d59712() {
+  uint arg_1 = 0u;
+  uint res = 0u;
+  arg_1 = 1u;
+  uint x_18 = arg_1;
+  uint v = 0u;
+  sb_rw.InterlockedExchange(uint(0u), x_18, v);
+  uint x_13 = v;
+  res = x_13;
+}
+
+void fragment_main_1() {
+  atomicExchange_d59712();
+}
+
+void fragment_main() {
+  fragment_main_1();
+}
+
+void compute_main_1() {
+  atomicExchange_d59712();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  compute_main_1();
+}
+
diff --git a/test/tint/builtins/atomics/from_gen/var/atomicExchange/storage_u32.spvasm.expected.ir.fxc.hlsl b/test/tint/builtins/atomics/from_gen/var/atomicExchange/storage_u32.spvasm.expected.ir.fxc.hlsl
index 165fea9..f286bc7 100644
--- a/test/tint/builtins/atomics/from_gen/var/atomicExchange/storage_u32.spvasm.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/atomics/from_gen/var/atomicExchange/storage_u32.spvasm.expected.ir.fxc.hlsl
@@ -1,9 +1,30 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: atomicExchange
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWByteAddressBuffer sb_rw : register(u0);
+void atomicExchange_d59712() {
+  uint arg_1 = 0u;
+  uint res = 0u;
+  arg_1 = 1u;
+  uint x_18 = arg_1;
+  uint v = 0u;
+  sb_rw.InterlockedExchange(uint(0u), x_18, v);
+  uint x_13 = v;
+  res = x_13;
+}
+
+void fragment_main_1() {
+  atomicExchange_d59712();
+}
+
+void fragment_main() {
+  fragment_main_1();
+}
+
+void compute_main_1() {
+  atomicExchange_d59712();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  compute_main_1();
+}
+
diff --git a/test/tint/builtins/atomics/from_gen/var/atomicExchange/workgroup_i32.spvasm.expected.ir.dxc.hlsl b/test/tint/builtins/atomics/from_gen/var/atomicExchange/workgroup_i32.spvasm.expected.ir.dxc.hlsl
index 165fea9..7e874ba 100644
--- a/test/tint/builtins/atomics/from_gen/var/atomicExchange/workgroup_i32.spvasm.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/atomics/from_gen/var/atomicExchange/workgroup_i32.spvasm.expected.ir.dxc.hlsl
@@ -1,9 +1,45 @@
-SKIP: FAILED
+struct compute_main_inputs {
+  uint local_invocation_index_1_param : SV_GroupIndex;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: atomicExchange
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+
+static uint local_invocation_index_1 = 0u;
+groupshared int arg_0;
+void atomicExchange_e114ba() {
+  int arg_1 = 0;
+  int res = 0;
+  arg_1 = 1;
+  int x_19 = arg_1;
+  int v = 0;
+  InterlockedExchange(arg_0, x_19, v);
+  int x_15 = v;
+  res = x_15;
+}
+
+void compute_main_inner(uint local_invocation_index_2) {
+  int v_1 = 0;
+  InterlockedExchange(arg_0, 0, v_1);
+  GroupMemoryBarrierWithGroupSync();
+  atomicExchange_e114ba();
+}
+
+void compute_main_1() {
+  uint x_33 = local_invocation_index_1;
+  compute_main_inner(x_33);
+}
+
+void compute_main_inner_1(uint local_invocation_index_1_param) {
+  if ((local_invocation_index_1_param == 0u)) {
+    int v_2 = 0;
+    InterlockedExchange(arg_0, 0, v_2);
+  }
+  GroupMemoryBarrierWithGroupSync();
+  local_invocation_index_1 = local_invocation_index_1_param;
+  compute_main_1();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main(compute_main_inputs inputs) {
+  compute_main_inner_1(inputs.local_invocation_index_1_param);
+}
+
diff --git a/test/tint/builtins/atomics/from_gen/var/atomicExchange/workgroup_i32.spvasm.expected.ir.fxc.hlsl b/test/tint/builtins/atomics/from_gen/var/atomicExchange/workgroup_i32.spvasm.expected.ir.fxc.hlsl
index 165fea9..7e874ba 100644
--- a/test/tint/builtins/atomics/from_gen/var/atomicExchange/workgroup_i32.spvasm.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/atomics/from_gen/var/atomicExchange/workgroup_i32.spvasm.expected.ir.fxc.hlsl
@@ -1,9 +1,45 @@
-SKIP: FAILED
+struct compute_main_inputs {
+  uint local_invocation_index_1_param : SV_GroupIndex;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: atomicExchange
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+
+static uint local_invocation_index_1 = 0u;
+groupshared int arg_0;
+void atomicExchange_e114ba() {
+  int arg_1 = 0;
+  int res = 0;
+  arg_1 = 1;
+  int x_19 = arg_1;
+  int v = 0;
+  InterlockedExchange(arg_0, x_19, v);
+  int x_15 = v;
+  res = x_15;
+}
+
+void compute_main_inner(uint local_invocation_index_2) {
+  int v_1 = 0;
+  InterlockedExchange(arg_0, 0, v_1);
+  GroupMemoryBarrierWithGroupSync();
+  atomicExchange_e114ba();
+}
+
+void compute_main_1() {
+  uint x_33 = local_invocation_index_1;
+  compute_main_inner(x_33);
+}
+
+void compute_main_inner_1(uint local_invocation_index_1_param) {
+  if ((local_invocation_index_1_param == 0u)) {
+    int v_2 = 0;
+    InterlockedExchange(arg_0, 0, v_2);
+  }
+  GroupMemoryBarrierWithGroupSync();
+  local_invocation_index_1 = local_invocation_index_1_param;
+  compute_main_1();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main(compute_main_inputs inputs) {
+  compute_main_inner_1(inputs.local_invocation_index_1_param);
+}
+
diff --git a/test/tint/builtins/atomics/from_gen/var/atomicExchange/workgroup_u32.spvasm.expected.ir.dxc.hlsl b/test/tint/builtins/atomics/from_gen/var/atomicExchange/workgroup_u32.spvasm.expected.ir.dxc.hlsl
index 165fea9..f5c54597 100644
--- a/test/tint/builtins/atomics/from_gen/var/atomicExchange/workgroup_u32.spvasm.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/atomics/from_gen/var/atomicExchange/workgroup_u32.spvasm.expected.ir.dxc.hlsl
@@ -1,9 +1,45 @@
-SKIP: FAILED
+struct compute_main_inputs {
+  uint local_invocation_index_1_param : SV_GroupIndex;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: atomicExchange
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+
+static uint local_invocation_index_1 = 0u;
+groupshared uint arg_0;
+void atomicExchange_0a5dca() {
+  uint arg_1 = 0u;
+  uint res = 0u;
+  arg_1 = 1u;
+  uint x_18 = arg_1;
+  uint v = 0u;
+  InterlockedExchange(arg_0, x_18, v);
+  uint x_14 = v;
+  res = x_14;
+}
+
+void compute_main_inner(uint local_invocation_index_2) {
+  uint v_1 = 0u;
+  InterlockedExchange(arg_0, 0u, v_1);
+  GroupMemoryBarrierWithGroupSync();
+  atomicExchange_0a5dca();
+}
+
+void compute_main_1() {
+  uint x_32 = local_invocation_index_1;
+  compute_main_inner(x_32);
+}
+
+void compute_main_inner_1(uint local_invocation_index_1_param) {
+  if ((local_invocation_index_1_param == 0u)) {
+    uint v_2 = 0u;
+    InterlockedExchange(arg_0, 0u, v_2);
+  }
+  GroupMemoryBarrierWithGroupSync();
+  local_invocation_index_1 = local_invocation_index_1_param;
+  compute_main_1();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main(compute_main_inputs inputs) {
+  compute_main_inner_1(inputs.local_invocation_index_1_param);
+}
+
diff --git a/test/tint/builtins/atomics/from_gen/var/atomicExchange/workgroup_u32.spvasm.expected.ir.fxc.hlsl b/test/tint/builtins/atomics/from_gen/var/atomicExchange/workgroup_u32.spvasm.expected.ir.fxc.hlsl
index 165fea9..f5c54597 100644
--- a/test/tint/builtins/atomics/from_gen/var/atomicExchange/workgroup_u32.spvasm.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/atomics/from_gen/var/atomicExchange/workgroup_u32.spvasm.expected.ir.fxc.hlsl
@@ -1,9 +1,45 @@
-SKIP: FAILED
+struct compute_main_inputs {
+  uint local_invocation_index_1_param : SV_GroupIndex;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: atomicExchange
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+
+static uint local_invocation_index_1 = 0u;
+groupshared uint arg_0;
+void atomicExchange_0a5dca() {
+  uint arg_1 = 0u;
+  uint res = 0u;
+  arg_1 = 1u;
+  uint x_18 = arg_1;
+  uint v = 0u;
+  InterlockedExchange(arg_0, x_18, v);
+  uint x_14 = v;
+  res = x_14;
+}
+
+void compute_main_inner(uint local_invocation_index_2) {
+  uint v_1 = 0u;
+  InterlockedExchange(arg_0, 0u, v_1);
+  GroupMemoryBarrierWithGroupSync();
+  atomicExchange_0a5dca();
+}
+
+void compute_main_1() {
+  uint x_32 = local_invocation_index_1;
+  compute_main_inner(x_32);
+}
+
+void compute_main_inner_1(uint local_invocation_index_1_param) {
+  if ((local_invocation_index_1_param == 0u)) {
+    uint v_2 = 0u;
+    InterlockedExchange(arg_0, 0u, v_2);
+  }
+  GroupMemoryBarrierWithGroupSync();
+  local_invocation_index_1 = local_invocation_index_1_param;
+  compute_main_1();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main(compute_main_inputs inputs) {
+  compute_main_inner_1(inputs.local_invocation_index_1_param);
+}
+
diff --git a/test/tint/builtins/atomics/from_gen/var/atomicLoad/storage_i32.spvasm.expected.ir.dxc.hlsl b/test/tint/builtins/atomics/from_gen/var/atomicLoad/storage_i32.spvasm.expected.ir.dxc.hlsl
index 11d7ec0..228c7fa 100644
--- a/test/tint/builtins/atomics/from_gen/var/atomicLoad/storage_i32.spvasm.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/atomics/from_gen/var/atomicLoad/storage_i32.spvasm.expected.ir.dxc.hlsl
@@ -1,9 +1,27 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: atomicLoad
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWByteAddressBuffer sb_rw : register(u0);
+void atomicLoad_0806ad() {
+  int res = 0;
+  int v = 0;
+  sb_rw.InterlockedOr(int(0u), 0, v);
+  int x_9 = v;
+  res = x_9;
+}
+
+void fragment_main_1() {
+  atomicLoad_0806ad();
+}
+
+void fragment_main() {
+  fragment_main_1();
+}
+
+void compute_main_1() {
+  atomicLoad_0806ad();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  compute_main_1();
+}
+
diff --git a/test/tint/builtins/atomics/from_gen/var/atomicLoad/storage_i32.spvasm.expected.ir.fxc.hlsl b/test/tint/builtins/atomics/from_gen/var/atomicLoad/storage_i32.spvasm.expected.ir.fxc.hlsl
index 11d7ec0..228c7fa 100644
--- a/test/tint/builtins/atomics/from_gen/var/atomicLoad/storage_i32.spvasm.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/atomics/from_gen/var/atomicLoad/storage_i32.spvasm.expected.ir.fxc.hlsl
@@ -1,9 +1,27 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: atomicLoad
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWByteAddressBuffer sb_rw : register(u0);
+void atomicLoad_0806ad() {
+  int res = 0;
+  int v = 0;
+  sb_rw.InterlockedOr(int(0u), 0, v);
+  int x_9 = v;
+  res = x_9;
+}
+
+void fragment_main_1() {
+  atomicLoad_0806ad();
+}
+
+void fragment_main() {
+  fragment_main_1();
+}
+
+void compute_main_1() {
+  atomicLoad_0806ad();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  compute_main_1();
+}
+
diff --git a/test/tint/builtins/atomics/from_gen/var/atomicLoad/storage_u32.spvasm.expected.ir.dxc.hlsl b/test/tint/builtins/atomics/from_gen/var/atomicLoad/storage_u32.spvasm.expected.ir.dxc.hlsl
index 11d7ec0..51447f5 100644
--- a/test/tint/builtins/atomics/from_gen/var/atomicLoad/storage_u32.spvasm.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/atomics/from_gen/var/atomicLoad/storage_u32.spvasm.expected.ir.dxc.hlsl
@@ -1,9 +1,27 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: atomicLoad
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWByteAddressBuffer sb_rw : register(u0);
+void atomicLoad_fe6cc3() {
+  uint res = 0u;
+  uint v = 0u;
+  sb_rw.InterlockedOr(uint(0u), 0u, v);
+  uint x_9 = v;
+  res = x_9;
+}
+
+void fragment_main_1() {
+  atomicLoad_fe6cc3();
+}
+
+void fragment_main() {
+  fragment_main_1();
+}
+
+void compute_main_1() {
+  atomicLoad_fe6cc3();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  compute_main_1();
+}
+
diff --git a/test/tint/builtins/atomics/from_gen/var/atomicLoad/storage_u32.spvasm.expected.ir.fxc.hlsl b/test/tint/builtins/atomics/from_gen/var/atomicLoad/storage_u32.spvasm.expected.ir.fxc.hlsl
index 11d7ec0..51447f5 100644
--- a/test/tint/builtins/atomics/from_gen/var/atomicLoad/storage_u32.spvasm.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/atomics/from_gen/var/atomicLoad/storage_u32.spvasm.expected.ir.fxc.hlsl
@@ -1,9 +1,27 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: atomicLoad
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWByteAddressBuffer sb_rw : register(u0);
+void atomicLoad_fe6cc3() {
+  uint res = 0u;
+  uint v = 0u;
+  sb_rw.InterlockedOr(uint(0u), 0u, v);
+  uint x_9 = v;
+  res = x_9;
+}
+
+void fragment_main_1() {
+  atomicLoad_fe6cc3();
+}
+
+void fragment_main() {
+  fragment_main_1();
+}
+
+void compute_main_1() {
+  atomicLoad_fe6cc3();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  compute_main_1();
+}
+
diff --git a/test/tint/builtins/atomics/from_gen/var/atomicLoad/workgroup_i32.spvasm.expected.ir.dxc.hlsl b/test/tint/builtins/atomics/from_gen/var/atomicLoad/workgroup_i32.spvasm.expected.ir.dxc.hlsl
index 11d7ec0..2c40049 100644
--- a/test/tint/builtins/atomics/from_gen/var/atomicLoad/workgroup_i32.spvasm.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/atomics/from_gen/var/atomicLoad/workgroup_i32.spvasm.expected.ir.dxc.hlsl
@@ -1,9 +1,42 @@
-SKIP: FAILED
+struct compute_main_inputs {
+  uint local_invocation_index_1_param : SV_GroupIndex;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: atomicLoad
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+
+static uint local_invocation_index_1 = 0u;
+groupshared int arg_0;
+void atomicLoad_afcc03() {
+  int res = 0;
+  int v = 0;
+  InterlockedOr(arg_0, 0, v);
+  int x_11 = v;
+  res = x_11;
+}
+
+void compute_main_inner(uint local_invocation_index_2) {
+  int v_1 = 0;
+  InterlockedExchange(arg_0, 0, v_1);
+  GroupMemoryBarrierWithGroupSync();
+  atomicLoad_afcc03();
+}
+
+void compute_main_1() {
+  uint x_30 = local_invocation_index_1;
+  compute_main_inner(x_30);
+}
+
+void compute_main_inner_1(uint local_invocation_index_1_param) {
+  if ((local_invocation_index_1_param == 0u)) {
+    int v_2 = 0;
+    InterlockedExchange(arg_0, 0, v_2);
+  }
+  GroupMemoryBarrierWithGroupSync();
+  local_invocation_index_1 = local_invocation_index_1_param;
+  compute_main_1();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main(compute_main_inputs inputs) {
+  compute_main_inner_1(inputs.local_invocation_index_1_param);
+}
+
diff --git a/test/tint/builtins/atomics/from_gen/var/atomicLoad/workgroup_i32.spvasm.expected.ir.fxc.hlsl b/test/tint/builtins/atomics/from_gen/var/atomicLoad/workgroup_i32.spvasm.expected.ir.fxc.hlsl
index 11d7ec0..2c40049 100644
--- a/test/tint/builtins/atomics/from_gen/var/atomicLoad/workgroup_i32.spvasm.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/atomics/from_gen/var/atomicLoad/workgroup_i32.spvasm.expected.ir.fxc.hlsl
@@ -1,9 +1,42 @@
-SKIP: FAILED
+struct compute_main_inputs {
+  uint local_invocation_index_1_param : SV_GroupIndex;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: atomicLoad
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+
+static uint local_invocation_index_1 = 0u;
+groupshared int arg_0;
+void atomicLoad_afcc03() {
+  int res = 0;
+  int v = 0;
+  InterlockedOr(arg_0, 0, v);
+  int x_11 = v;
+  res = x_11;
+}
+
+void compute_main_inner(uint local_invocation_index_2) {
+  int v_1 = 0;
+  InterlockedExchange(arg_0, 0, v_1);
+  GroupMemoryBarrierWithGroupSync();
+  atomicLoad_afcc03();
+}
+
+void compute_main_1() {
+  uint x_30 = local_invocation_index_1;
+  compute_main_inner(x_30);
+}
+
+void compute_main_inner_1(uint local_invocation_index_1_param) {
+  if ((local_invocation_index_1_param == 0u)) {
+    int v_2 = 0;
+    InterlockedExchange(arg_0, 0, v_2);
+  }
+  GroupMemoryBarrierWithGroupSync();
+  local_invocation_index_1 = local_invocation_index_1_param;
+  compute_main_1();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main(compute_main_inputs inputs) {
+  compute_main_inner_1(inputs.local_invocation_index_1_param);
+}
+
diff --git a/test/tint/builtins/atomics/from_gen/var/atomicLoad/workgroup_u32.spvasm.expected.ir.dxc.hlsl b/test/tint/builtins/atomics/from_gen/var/atomicLoad/workgroup_u32.spvasm.expected.ir.dxc.hlsl
index 11d7ec0..f148b47 100644
--- a/test/tint/builtins/atomics/from_gen/var/atomicLoad/workgroup_u32.spvasm.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/atomics/from_gen/var/atomicLoad/workgroup_u32.spvasm.expected.ir.dxc.hlsl
@@ -1,9 +1,42 @@
-SKIP: FAILED
+struct compute_main_inputs {
+  uint local_invocation_index_1_param : SV_GroupIndex;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: atomicLoad
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+
+static uint local_invocation_index_1 = 0u;
+groupshared uint arg_0;
+void atomicLoad_361bf1() {
+  uint res = 0u;
+  uint v = 0u;
+  InterlockedOr(arg_0, 0u, v);
+  uint x_10 = v;
+  res = x_10;
+}
+
+void compute_main_inner(uint local_invocation_index_2) {
+  uint v_1 = 0u;
+  InterlockedExchange(arg_0, 0u, v_1);
+  GroupMemoryBarrierWithGroupSync();
+  atomicLoad_361bf1();
+}
+
+void compute_main_1() {
+  uint x_29 = local_invocation_index_1;
+  compute_main_inner(x_29);
+}
+
+void compute_main_inner_1(uint local_invocation_index_1_param) {
+  if ((local_invocation_index_1_param == 0u)) {
+    uint v_2 = 0u;
+    InterlockedExchange(arg_0, 0u, v_2);
+  }
+  GroupMemoryBarrierWithGroupSync();
+  local_invocation_index_1 = local_invocation_index_1_param;
+  compute_main_1();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main(compute_main_inputs inputs) {
+  compute_main_inner_1(inputs.local_invocation_index_1_param);
+}
+
diff --git a/test/tint/builtins/atomics/from_gen/var/atomicLoad/workgroup_u32.spvasm.expected.ir.fxc.hlsl b/test/tint/builtins/atomics/from_gen/var/atomicLoad/workgroup_u32.spvasm.expected.ir.fxc.hlsl
index 11d7ec0..f148b47 100644
--- a/test/tint/builtins/atomics/from_gen/var/atomicLoad/workgroup_u32.spvasm.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/atomics/from_gen/var/atomicLoad/workgroup_u32.spvasm.expected.ir.fxc.hlsl
@@ -1,9 +1,42 @@
-SKIP: FAILED
+struct compute_main_inputs {
+  uint local_invocation_index_1_param : SV_GroupIndex;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: atomicLoad
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+
+static uint local_invocation_index_1 = 0u;
+groupshared uint arg_0;
+void atomicLoad_361bf1() {
+  uint res = 0u;
+  uint v = 0u;
+  InterlockedOr(arg_0, 0u, v);
+  uint x_10 = v;
+  res = x_10;
+}
+
+void compute_main_inner(uint local_invocation_index_2) {
+  uint v_1 = 0u;
+  InterlockedExchange(arg_0, 0u, v_1);
+  GroupMemoryBarrierWithGroupSync();
+  atomicLoad_361bf1();
+}
+
+void compute_main_1() {
+  uint x_29 = local_invocation_index_1;
+  compute_main_inner(x_29);
+}
+
+void compute_main_inner_1(uint local_invocation_index_1_param) {
+  if ((local_invocation_index_1_param == 0u)) {
+    uint v_2 = 0u;
+    InterlockedExchange(arg_0, 0u, v_2);
+  }
+  GroupMemoryBarrierWithGroupSync();
+  local_invocation_index_1 = local_invocation_index_1_param;
+  compute_main_1();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main(compute_main_inputs inputs) {
+  compute_main_inner_1(inputs.local_invocation_index_1_param);
+}
+
diff --git a/test/tint/builtins/atomics/from_gen/var/atomicMax/storage_i32.spvasm.expected.ir.dxc.hlsl b/test/tint/builtins/atomics/from_gen/var/atomicMax/storage_i32.spvasm.expected.ir.dxc.hlsl
index d14c326..f1535bb 100644
--- a/test/tint/builtins/atomics/from_gen/var/atomicMax/storage_i32.spvasm.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/atomics/from_gen/var/atomicMax/storage_i32.spvasm.expected.ir.dxc.hlsl
@@ -1,9 +1,30 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: atomicMax
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWByteAddressBuffer sb_rw : register(u0);
+void atomicMax_92aa72() {
+  int arg_1 = 0;
+  int res = 0;
+  arg_1 = 1;
+  int x_20 = arg_1;
+  int v = 0;
+  sb_rw.InterlockedMax(int(0u), x_20, v);
+  int x_13 = v;
+  res = x_13;
+}
+
+void fragment_main_1() {
+  atomicMax_92aa72();
+}
+
+void fragment_main() {
+  fragment_main_1();
+}
+
+void compute_main_1() {
+  atomicMax_92aa72();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  compute_main_1();
+}
+
diff --git a/test/tint/builtins/atomics/from_gen/var/atomicMax/storage_i32.spvasm.expected.ir.fxc.hlsl b/test/tint/builtins/atomics/from_gen/var/atomicMax/storage_i32.spvasm.expected.ir.fxc.hlsl
index d14c326..f1535bb 100644
--- a/test/tint/builtins/atomics/from_gen/var/atomicMax/storage_i32.spvasm.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/atomics/from_gen/var/atomicMax/storage_i32.spvasm.expected.ir.fxc.hlsl
@@ -1,9 +1,30 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: atomicMax
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWByteAddressBuffer sb_rw : register(u0);
+void atomicMax_92aa72() {
+  int arg_1 = 0;
+  int res = 0;
+  arg_1 = 1;
+  int x_20 = arg_1;
+  int v = 0;
+  sb_rw.InterlockedMax(int(0u), x_20, v);
+  int x_13 = v;
+  res = x_13;
+}
+
+void fragment_main_1() {
+  atomicMax_92aa72();
+}
+
+void fragment_main() {
+  fragment_main_1();
+}
+
+void compute_main_1() {
+  atomicMax_92aa72();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  compute_main_1();
+}
+
diff --git a/test/tint/builtins/atomics/from_gen/var/atomicMax/storage_u32.spvasm.expected.ir.dxc.hlsl b/test/tint/builtins/atomics/from_gen/var/atomicMax/storage_u32.spvasm.expected.ir.dxc.hlsl
index d14c326..30c5df3 100644
--- a/test/tint/builtins/atomics/from_gen/var/atomicMax/storage_u32.spvasm.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/atomics/from_gen/var/atomicMax/storage_u32.spvasm.expected.ir.dxc.hlsl
@@ -1,9 +1,30 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: atomicMax
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWByteAddressBuffer sb_rw : register(u0);
+void atomicMax_51b9be() {
+  uint arg_1 = 0u;
+  uint res = 0u;
+  arg_1 = 1u;
+  uint x_18 = arg_1;
+  uint v = 0u;
+  sb_rw.InterlockedMax(uint(0u), x_18, v);
+  uint x_13 = v;
+  res = x_13;
+}
+
+void fragment_main_1() {
+  atomicMax_51b9be();
+}
+
+void fragment_main() {
+  fragment_main_1();
+}
+
+void compute_main_1() {
+  atomicMax_51b9be();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  compute_main_1();
+}
+
diff --git a/test/tint/builtins/atomics/from_gen/var/atomicMax/storage_u32.spvasm.expected.ir.fxc.hlsl b/test/tint/builtins/atomics/from_gen/var/atomicMax/storage_u32.spvasm.expected.ir.fxc.hlsl
index d14c326..30c5df3 100644
--- a/test/tint/builtins/atomics/from_gen/var/atomicMax/storage_u32.spvasm.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/atomics/from_gen/var/atomicMax/storage_u32.spvasm.expected.ir.fxc.hlsl
@@ -1,9 +1,30 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: atomicMax
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWByteAddressBuffer sb_rw : register(u0);
+void atomicMax_51b9be() {
+  uint arg_1 = 0u;
+  uint res = 0u;
+  arg_1 = 1u;
+  uint x_18 = arg_1;
+  uint v = 0u;
+  sb_rw.InterlockedMax(uint(0u), x_18, v);
+  uint x_13 = v;
+  res = x_13;
+}
+
+void fragment_main_1() {
+  atomicMax_51b9be();
+}
+
+void fragment_main() {
+  fragment_main_1();
+}
+
+void compute_main_1() {
+  atomicMax_51b9be();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  compute_main_1();
+}
+
diff --git a/test/tint/builtins/atomics/from_gen/var/atomicMax/workgroup_i32.spvasm.expected.ir.dxc.hlsl b/test/tint/builtins/atomics/from_gen/var/atomicMax/workgroup_i32.spvasm.expected.ir.dxc.hlsl
index d14c326..543ca5c 100644
--- a/test/tint/builtins/atomics/from_gen/var/atomicMax/workgroup_i32.spvasm.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/atomics/from_gen/var/atomicMax/workgroup_i32.spvasm.expected.ir.dxc.hlsl
@@ -1,9 +1,45 @@
-SKIP: FAILED
+struct compute_main_inputs {
+  uint local_invocation_index_1_param : SV_GroupIndex;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: atomicMax
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+
+static uint local_invocation_index_1 = 0u;
+groupshared int arg_0;
+void atomicMax_a89cc3() {
+  int arg_1 = 0;
+  int res = 0;
+  arg_1 = 1;
+  int x_19 = arg_1;
+  int v = 0;
+  InterlockedMax(arg_0, x_19, v);
+  int x_15 = v;
+  res = x_15;
+}
+
+void compute_main_inner(uint local_invocation_index_2) {
+  int v_1 = 0;
+  InterlockedExchange(arg_0, 0, v_1);
+  GroupMemoryBarrierWithGroupSync();
+  atomicMax_a89cc3();
+}
+
+void compute_main_1() {
+  uint x_33 = local_invocation_index_1;
+  compute_main_inner(x_33);
+}
+
+void compute_main_inner_1(uint local_invocation_index_1_param) {
+  if ((local_invocation_index_1_param == 0u)) {
+    int v_2 = 0;
+    InterlockedExchange(arg_0, 0, v_2);
+  }
+  GroupMemoryBarrierWithGroupSync();
+  local_invocation_index_1 = local_invocation_index_1_param;
+  compute_main_1();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main(compute_main_inputs inputs) {
+  compute_main_inner_1(inputs.local_invocation_index_1_param);
+}
+
diff --git a/test/tint/builtins/atomics/from_gen/var/atomicMax/workgroup_i32.spvasm.expected.ir.fxc.hlsl b/test/tint/builtins/atomics/from_gen/var/atomicMax/workgroup_i32.spvasm.expected.ir.fxc.hlsl
index d14c326..543ca5c 100644
--- a/test/tint/builtins/atomics/from_gen/var/atomicMax/workgroup_i32.spvasm.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/atomics/from_gen/var/atomicMax/workgroup_i32.spvasm.expected.ir.fxc.hlsl
@@ -1,9 +1,45 @@
-SKIP: FAILED
+struct compute_main_inputs {
+  uint local_invocation_index_1_param : SV_GroupIndex;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: atomicMax
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+
+static uint local_invocation_index_1 = 0u;
+groupshared int arg_0;
+void atomicMax_a89cc3() {
+  int arg_1 = 0;
+  int res = 0;
+  arg_1 = 1;
+  int x_19 = arg_1;
+  int v = 0;
+  InterlockedMax(arg_0, x_19, v);
+  int x_15 = v;
+  res = x_15;
+}
+
+void compute_main_inner(uint local_invocation_index_2) {
+  int v_1 = 0;
+  InterlockedExchange(arg_0, 0, v_1);
+  GroupMemoryBarrierWithGroupSync();
+  atomicMax_a89cc3();
+}
+
+void compute_main_1() {
+  uint x_33 = local_invocation_index_1;
+  compute_main_inner(x_33);
+}
+
+void compute_main_inner_1(uint local_invocation_index_1_param) {
+  if ((local_invocation_index_1_param == 0u)) {
+    int v_2 = 0;
+    InterlockedExchange(arg_0, 0, v_2);
+  }
+  GroupMemoryBarrierWithGroupSync();
+  local_invocation_index_1 = local_invocation_index_1_param;
+  compute_main_1();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main(compute_main_inputs inputs) {
+  compute_main_inner_1(inputs.local_invocation_index_1_param);
+}
+
diff --git a/test/tint/builtins/atomics/from_gen/var/atomicMax/workgroup_u32.spvasm.expected.ir.dxc.hlsl b/test/tint/builtins/atomics/from_gen/var/atomicMax/workgroup_u32.spvasm.expected.ir.dxc.hlsl
index d14c326..a8258b2 100644
--- a/test/tint/builtins/atomics/from_gen/var/atomicMax/workgroup_u32.spvasm.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/atomics/from_gen/var/atomicMax/workgroup_u32.spvasm.expected.ir.dxc.hlsl
@@ -1,9 +1,45 @@
-SKIP: FAILED
+struct compute_main_inputs {
+  uint local_invocation_index_1_param : SV_GroupIndex;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: atomicMax
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+
+static uint local_invocation_index_1 = 0u;
+groupshared uint arg_0;
+void atomicMax_beccfc() {
+  uint arg_1 = 0u;
+  uint res = 0u;
+  arg_1 = 1u;
+  uint x_18 = arg_1;
+  uint v = 0u;
+  InterlockedMax(arg_0, x_18, v);
+  uint x_14 = v;
+  res = x_14;
+}
+
+void compute_main_inner(uint local_invocation_index_2) {
+  uint v_1 = 0u;
+  InterlockedExchange(arg_0, 0u, v_1);
+  GroupMemoryBarrierWithGroupSync();
+  atomicMax_beccfc();
+}
+
+void compute_main_1() {
+  uint x_32 = local_invocation_index_1;
+  compute_main_inner(x_32);
+}
+
+void compute_main_inner_1(uint local_invocation_index_1_param) {
+  if ((local_invocation_index_1_param == 0u)) {
+    uint v_2 = 0u;
+    InterlockedExchange(arg_0, 0u, v_2);
+  }
+  GroupMemoryBarrierWithGroupSync();
+  local_invocation_index_1 = local_invocation_index_1_param;
+  compute_main_1();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main(compute_main_inputs inputs) {
+  compute_main_inner_1(inputs.local_invocation_index_1_param);
+}
+
diff --git a/test/tint/builtins/atomics/from_gen/var/atomicMax/workgroup_u32.spvasm.expected.ir.fxc.hlsl b/test/tint/builtins/atomics/from_gen/var/atomicMax/workgroup_u32.spvasm.expected.ir.fxc.hlsl
index d14c326..a8258b2 100644
--- a/test/tint/builtins/atomics/from_gen/var/atomicMax/workgroup_u32.spvasm.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/atomics/from_gen/var/atomicMax/workgroup_u32.spvasm.expected.ir.fxc.hlsl
@@ -1,9 +1,45 @@
-SKIP: FAILED
+struct compute_main_inputs {
+  uint local_invocation_index_1_param : SV_GroupIndex;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: atomicMax
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+
+static uint local_invocation_index_1 = 0u;
+groupshared uint arg_0;
+void atomicMax_beccfc() {
+  uint arg_1 = 0u;
+  uint res = 0u;
+  arg_1 = 1u;
+  uint x_18 = arg_1;
+  uint v = 0u;
+  InterlockedMax(arg_0, x_18, v);
+  uint x_14 = v;
+  res = x_14;
+}
+
+void compute_main_inner(uint local_invocation_index_2) {
+  uint v_1 = 0u;
+  InterlockedExchange(arg_0, 0u, v_1);
+  GroupMemoryBarrierWithGroupSync();
+  atomicMax_beccfc();
+}
+
+void compute_main_1() {
+  uint x_32 = local_invocation_index_1;
+  compute_main_inner(x_32);
+}
+
+void compute_main_inner_1(uint local_invocation_index_1_param) {
+  if ((local_invocation_index_1_param == 0u)) {
+    uint v_2 = 0u;
+    InterlockedExchange(arg_0, 0u, v_2);
+  }
+  GroupMemoryBarrierWithGroupSync();
+  local_invocation_index_1 = local_invocation_index_1_param;
+  compute_main_1();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main(compute_main_inputs inputs) {
+  compute_main_inner_1(inputs.local_invocation_index_1_param);
+}
+
diff --git a/test/tint/builtins/atomics/from_gen/var/atomicMin/storage_i32.spvasm.expected.ir.dxc.hlsl b/test/tint/builtins/atomics/from_gen/var/atomicMin/storage_i32.spvasm.expected.ir.dxc.hlsl
index 34addfe..041eb1e 100644
--- a/test/tint/builtins/atomics/from_gen/var/atomicMin/storage_i32.spvasm.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/atomics/from_gen/var/atomicMin/storage_i32.spvasm.expected.ir.dxc.hlsl
@@ -1,9 +1,30 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: atomicMin
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWByteAddressBuffer sb_rw : register(u0);
+void atomicMin_8e38dc() {
+  int arg_1 = 0;
+  int res = 0;
+  arg_1 = 1;
+  int x_20 = arg_1;
+  int v = 0;
+  sb_rw.InterlockedMin(int(0u), x_20, v);
+  int x_13 = v;
+  res = x_13;
+}
+
+void fragment_main_1() {
+  atomicMin_8e38dc();
+}
+
+void fragment_main() {
+  fragment_main_1();
+}
+
+void compute_main_1() {
+  atomicMin_8e38dc();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  compute_main_1();
+}
+
diff --git a/test/tint/builtins/atomics/from_gen/var/atomicMin/storage_i32.spvasm.expected.ir.fxc.hlsl b/test/tint/builtins/atomics/from_gen/var/atomicMin/storage_i32.spvasm.expected.ir.fxc.hlsl
index 34addfe..041eb1e 100644
--- a/test/tint/builtins/atomics/from_gen/var/atomicMin/storage_i32.spvasm.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/atomics/from_gen/var/atomicMin/storage_i32.spvasm.expected.ir.fxc.hlsl
@@ -1,9 +1,30 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: atomicMin
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWByteAddressBuffer sb_rw : register(u0);
+void atomicMin_8e38dc() {
+  int arg_1 = 0;
+  int res = 0;
+  arg_1 = 1;
+  int x_20 = arg_1;
+  int v = 0;
+  sb_rw.InterlockedMin(int(0u), x_20, v);
+  int x_13 = v;
+  res = x_13;
+}
+
+void fragment_main_1() {
+  atomicMin_8e38dc();
+}
+
+void fragment_main() {
+  fragment_main_1();
+}
+
+void compute_main_1() {
+  atomicMin_8e38dc();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  compute_main_1();
+}
+
diff --git a/test/tint/builtins/atomics/from_gen/var/atomicMin/storage_u32.spvasm.expected.ir.dxc.hlsl b/test/tint/builtins/atomics/from_gen/var/atomicMin/storage_u32.spvasm.expected.ir.dxc.hlsl
index 34addfe..6f6f4bf 100644
--- a/test/tint/builtins/atomics/from_gen/var/atomicMin/storage_u32.spvasm.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/atomics/from_gen/var/atomicMin/storage_u32.spvasm.expected.ir.dxc.hlsl
@@ -1,9 +1,30 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: atomicMin
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWByteAddressBuffer sb_rw : register(u0);
+void atomicMin_c67a74() {
+  uint arg_1 = 0u;
+  uint res = 0u;
+  arg_1 = 1u;
+  uint x_18 = arg_1;
+  uint v = 0u;
+  sb_rw.InterlockedMin(uint(0u), x_18, v);
+  uint x_13 = v;
+  res = x_13;
+}
+
+void fragment_main_1() {
+  atomicMin_c67a74();
+}
+
+void fragment_main() {
+  fragment_main_1();
+}
+
+void compute_main_1() {
+  atomicMin_c67a74();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  compute_main_1();
+}
+
diff --git a/test/tint/builtins/atomics/from_gen/var/atomicMin/storage_u32.spvasm.expected.ir.fxc.hlsl b/test/tint/builtins/atomics/from_gen/var/atomicMin/storage_u32.spvasm.expected.ir.fxc.hlsl
index 34addfe..6f6f4bf 100644
--- a/test/tint/builtins/atomics/from_gen/var/atomicMin/storage_u32.spvasm.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/atomics/from_gen/var/atomicMin/storage_u32.spvasm.expected.ir.fxc.hlsl
@@ -1,9 +1,30 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: atomicMin
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWByteAddressBuffer sb_rw : register(u0);
+void atomicMin_c67a74() {
+  uint arg_1 = 0u;
+  uint res = 0u;
+  arg_1 = 1u;
+  uint x_18 = arg_1;
+  uint v = 0u;
+  sb_rw.InterlockedMin(uint(0u), x_18, v);
+  uint x_13 = v;
+  res = x_13;
+}
+
+void fragment_main_1() {
+  atomicMin_c67a74();
+}
+
+void fragment_main() {
+  fragment_main_1();
+}
+
+void compute_main_1() {
+  atomicMin_c67a74();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  compute_main_1();
+}
+
diff --git a/test/tint/builtins/atomics/from_gen/var/atomicMin/workgroup_i32.spvasm.expected.ir.dxc.hlsl b/test/tint/builtins/atomics/from_gen/var/atomicMin/workgroup_i32.spvasm.expected.ir.dxc.hlsl
index 34addfe..9823248 100644
--- a/test/tint/builtins/atomics/from_gen/var/atomicMin/workgroup_i32.spvasm.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/atomics/from_gen/var/atomicMin/workgroup_i32.spvasm.expected.ir.dxc.hlsl
@@ -1,9 +1,45 @@
-SKIP: FAILED
+struct compute_main_inputs {
+  uint local_invocation_index_1_param : SV_GroupIndex;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: atomicMin
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+
+static uint local_invocation_index_1 = 0u;
+groupshared int arg_0;
+void atomicMin_278235() {
+  int arg_1 = 0;
+  int res = 0;
+  arg_1 = 1;
+  int x_19 = arg_1;
+  int v = 0;
+  InterlockedMin(arg_0, x_19, v);
+  int x_15 = v;
+  res = x_15;
+}
+
+void compute_main_inner(uint local_invocation_index_2) {
+  int v_1 = 0;
+  InterlockedExchange(arg_0, 0, v_1);
+  GroupMemoryBarrierWithGroupSync();
+  atomicMin_278235();
+}
+
+void compute_main_1() {
+  uint x_33 = local_invocation_index_1;
+  compute_main_inner(x_33);
+}
+
+void compute_main_inner_1(uint local_invocation_index_1_param) {
+  if ((local_invocation_index_1_param == 0u)) {
+    int v_2 = 0;
+    InterlockedExchange(arg_0, 0, v_2);
+  }
+  GroupMemoryBarrierWithGroupSync();
+  local_invocation_index_1 = local_invocation_index_1_param;
+  compute_main_1();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main(compute_main_inputs inputs) {
+  compute_main_inner_1(inputs.local_invocation_index_1_param);
+}
+
diff --git a/test/tint/builtins/atomics/from_gen/var/atomicMin/workgroup_i32.spvasm.expected.ir.fxc.hlsl b/test/tint/builtins/atomics/from_gen/var/atomicMin/workgroup_i32.spvasm.expected.ir.fxc.hlsl
index 34addfe..9823248 100644
--- a/test/tint/builtins/atomics/from_gen/var/atomicMin/workgroup_i32.spvasm.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/atomics/from_gen/var/atomicMin/workgroup_i32.spvasm.expected.ir.fxc.hlsl
@@ -1,9 +1,45 @@
-SKIP: FAILED
+struct compute_main_inputs {
+  uint local_invocation_index_1_param : SV_GroupIndex;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: atomicMin
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+
+static uint local_invocation_index_1 = 0u;
+groupshared int arg_0;
+void atomicMin_278235() {
+  int arg_1 = 0;
+  int res = 0;
+  arg_1 = 1;
+  int x_19 = arg_1;
+  int v = 0;
+  InterlockedMin(arg_0, x_19, v);
+  int x_15 = v;
+  res = x_15;
+}
+
+void compute_main_inner(uint local_invocation_index_2) {
+  int v_1 = 0;
+  InterlockedExchange(arg_0, 0, v_1);
+  GroupMemoryBarrierWithGroupSync();
+  atomicMin_278235();
+}
+
+void compute_main_1() {
+  uint x_33 = local_invocation_index_1;
+  compute_main_inner(x_33);
+}
+
+void compute_main_inner_1(uint local_invocation_index_1_param) {
+  if ((local_invocation_index_1_param == 0u)) {
+    int v_2 = 0;
+    InterlockedExchange(arg_0, 0, v_2);
+  }
+  GroupMemoryBarrierWithGroupSync();
+  local_invocation_index_1 = local_invocation_index_1_param;
+  compute_main_1();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main(compute_main_inputs inputs) {
+  compute_main_inner_1(inputs.local_invocation_index_1_param);
+}
+
diff --git a/test/tint/builtins/atomics/from_gen/var/atomicMin/workgroup_u32.spvasm.expected.ir.dxc.hlsl b/test/tint/builtins/atomics/from_gen/var/atomicMin/workgroup_u32.spvasm.expected.ir.dxc.hlsl
index 34addfe..d0e0df3 100644
--- a/test/tint/builtins/atomics/from_gen/var/atomicMin/workgroup_u32.spvasm.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/atomics/from_gen/var/atomicMin/workgroup_u32.spvasm.expected.ir.dxc.hlsl
@@ -1,9 +1,45 @@
-SKIP: FAILED
+struct compute_main_inputs {
+  uint local_invocation_index_1_param : SV_GroupIndex;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: atomicMin
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+
+static uint local_invocation_index_1 = 0u;
+groupshared uint arg_0;
+void atomicMin_69d383() {
+  uint arg_1 = 0u;
+  uint res = 0u;
+  arg_1 = 1u;
+  uint x_18 = arg_1;
+  uint v = 0u;
+  InterlockedMin(arg_0, x_18, v);
+  uint x_14 = v;
+  res = x_14;
+}
+
+void compute_main_inner(uint local_invocation_index_2) {
+  uint v_1 = 0u;
+  InterlockedExchange(arg_0, 0u, v_1);
+  GroupMemoryBarrierWithGroupSync();
+  atomicMin_69d383();
+}
+
+void compute_main_1() {
+  uint x_32 = local_invocation_index_1;
+  compute_main_inner(x_32);
+}
+
+void compute_main_inner_1(uint local_invocation_index_1_param) {
+  if ((local_invocation_index_1_param == 0u)) {
+    uint v_2 = 0u;
+    InterlockedExchange(arg_0, 0u, v_2);
+  }
+  GroupMemoryBarrierWithGroupSync();
+  local_invocation_index_1 = local_invocation_index_1_param;
+  compute_main_1();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main(compute_main_inputs inputs) {
+  compute_main_inner_1(inputs.local_invocation_index_1_param);
+}
+
diff --git a/test/tint/builtins/atomics/from_gen/var/atomicMin/workgroup_u32.spvasm.expected.ir.fxc.hlsl b/test/tint/builtins/atomics/from_gen/var/atomicMin/workgroup_u32.spvasm.expected.ir.fxc.hlsl
index 34addfe..d0e0df3 100644
--- a/test/tint/builtins/atomics/from_gen/var/atomicMin/workgroup_u32.spvasm.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/atomics/from_gen/var/atomicMin/workgroup_u32.spvasm.expected.ir.fxc.hlsl
@@ -1,9 +1,45 @@
-SKIP: FAILED
+struct compute_main_inputs {
+  uint local_invocation_index_1_param : SV_GroupIndex;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: atomicMin
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+
+static uint local_invocation_index_1 = 0u;
+groupshared uint arg_0;
+void atomicMin_69d383() {
+  uint arg_1 = 0u;
+  uint res = 0u;
+  arg_1 = 1u;
+  uint x_18 = arg_1;
+  uint v = 0u;
+  InterlockedMin(arg_0, x_18, v);
+  uint x_14 = v;
+  res = x_14;
+}
+
+void compute_main_inner(uint local_invocation_index_2) {
+  uint v_1 = 0u;
+  InterlockedExchange(arg_0, 0u, v_1);
+  GroupMemoryBarrierWithGroupSync();
+  atomicMin_69d383();
+}
+
+void compute_main_1() {
+  uint x_32 = local_invocation_index_1;
+  compute_main_inner(x_32);
+}
+
+void compute_main_inner_1(uint local_invocation_index_1_param) {
+  if ((local_invocation_index_1_param == 0u)) {
+    uint v_2 = 0u;
+    InterlockedExchange(arg_0, 0u, v_2);
+  }
+  GroupMemoryBarrierWithGroupSync();
+  local_invocation_index_1 = local_invocation_index_1_param;
+  compute_main_1();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main(compute_main_inputs inputs) {
+  compute_main_inner_1(inputs.local_invocation_index_1_param);
+}
+
diff --git a/test/tint/builtins/atomics/from_gen/var/atomicOr/storage_i32.spvasm.expected.ir.dxc.hlsl b/test/tint/builtins/atomics/from_gen/var/atomicOr/storage_i32.spvasm.expected.ir.dxc.hlsl
index af0604b..6356660 100644
--- a/test/tint/builtins/atomics/from_gen/var/atomicOr/storage_i32.spvasm.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/atomics/from_gen/var/atomicOr/storage_i32.spvasm.expected.ir.dxc.hlsl
@@ -1,9 +1,30 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: atomicOr
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWByteAddressBuffer sb_rw : register(u0);
+void atomicOr_8d96a0() {
+  int arg_1 = 0;
+  int res = 0;
+  arg_1 = 1;
+  int x_20 = arg_1;
+  int v = 0;
+  sb_rw.InterlockedOr(int(0u), x_20, v);
+  int x_13 = v;
+  res = x_13;
+}
+
+void fragment_main_1() {
+  atomicOr_8d96a0();
+}
+
+void fragment_main() {
+  fragment_main_1();
+}
+
+void compute_main_1() {
+  atomicOr_8d96a0();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  compute_main_1();
+}
+
diff --git a/test/tint/builtins/atomics/from_gen/var/atomicOr/storage_i32.spvasm.expected.ir.fxc.hlsl b/test/tint/builtins/atomics/from_gen/var/atomicOr/storage_i32.spvasm.expected.ir.fxc.hlsl
index af0604b..6356660 100644
--- a/test/tint/builtins/atomics/from_gen/var/atomicOr/storage_i32.spvasm.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/atomics/from_gen/var/atomicOr/storage_i32.spvasm.expected.ir.fxc.hlsl
@@ -1,9 +1,30 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: atomicOr
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWByteAddressBuffer sb_rw : register(u0);
+void atomicOr_8d96a0() {
+  int arg_1 = 0;
+  int res = 0;
+  arg_1 = 1;
+  int x_20 = arg_1;
+  int v = 0;
+  sb_rw.InterlockedOr(int(0u), x_20, v);
+  int x_13 = v;
+  res = x_13;
+}
+
+void fragment_main_1() {
+  atomicOr_8d96a0();
+}
+
+void fragment_main() {
+  fragment_main_1();
+}
+
+void compute_main_1() {
+  atomicOr_8d96a0();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  compute_main_1();
+}
+
diff --git a/test/tint/builtins/atomics/from_gen/var/atomicOr/storage_u32.spvasm.expected.ir.dxc.hlsl b/test/tint/builtins/atomics/from_gen/var/atomicOr/storage_u32.spvasm.expected.ir.dxc.hlsl
index af0604b..d319b9f 100644
--- a/test/tint/builtins/atomics/from_gen/var/atomicOr/storage_u32.spvasm.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/atomics/from_gen/var/atomicOr/storage_u32.spvasm.expected.ir.dxc.hlsl
@@ -1,9 +1,30 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: atomicOr
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWByteAddressBuffer sb_rw : register(u0);
+void atomicOr_5e95d4() {
+  uint arg_1 = 0u;
+  uint res = 0u;
+  arg_1 = 1u;
+  uint x_18 = arg_1;
+  uint v = 0u;
+  sb_rw.InterlockedOr(uint(0u), x_18, v);
+  uint x_13 = v;
+  res = x_13;
+}
+
+void fragment_main_1() {
+  atomicOr_5e95d4();
+}
+
+void fragment_main() {
+  fragment_main_1();
+}
+
+void compute_main_1() {
+  atomicOr_5e95d4();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  compute_main_1();
+}
+
diff --git a/test/tint/builtins/atomics/from_gen/var/atomicOr/storage_u32.spvasm.expected.ir.fxc.hlsl b/test/tint/builtins/atomics/from_gen/var/atomicOr/storage_u32.spvasm.expected.ir.fxc.hlsl
index af0604b..d319b9f 100644
--- a/test/tint/builtins/atomics/from_gen/var/atomicOr/storage_u32.spvasm.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/atomics/from_gen/var/atomicOr/storage_u32.spvasm.expected.ir.fxc.hlsl
@@ -1,9 +1,30 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: atomicOr
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWByteAddressBuffer sb_rw : register(u0);
+void atomicOr_5e95d4() {
+  uint arg_1 = 0u;
+  uint res = 0u;
+  arg_1 = 1u;
+  uint x_18 = arg_1;
+  uint v = 0u;
+  sb_rw.InterlockedOr(uint(0u), x_18, v);
+  uint x_13 = v;
+  res = x_13;
+}
+
+void fragment_main_1() {
+  atomicOr_5e95d4();
+}
+
+void fragment_main() {
+  fragment_main_1();
+}
+
+void compute_main_1() {
+  atomicOr_5e95d4();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  compute_main_1();
+}
+
diff --git a/test/tint/builtins/atomics/from_gen/var/atomicOr/workgroup_i32.spvasm.expected.ir.dxc.hlsl b/test/tint/builtins/atomics/from_gen/var/atomicOr/workgroup_i32.spvasm.expected.ir.dxc.hlsl
index af0604b..ac776db 100644
--- a/test/tint/builtins/atomics/from_gen/var/atomicOr/workgroup_i32.spvasm.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/atomics/from_gen/var/atomicOr/workgroup_i32.spvasm.expected.ir.dxc.hlsl
@@ -1,9 +1,45 @@
-SKIP: FAILED
+struct compute_main_inputs {
+  uint local_invocation_index_1_param : SV_GroupIndex;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: atomicOr
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+
+static uint local_invocation_index_1 = 0u;
+groupshared int arg_0;
+void atomicOr_d09248() {
+  int arg_1 = 0;
+  int res = 0;
+  arg_1 = 1;
+  int x_19 = arg_1;
+  int v = 0;
+  InterlockedOr(arg_0, x_19, v);
+  int x_15 = v;
+  res = x_15;
+}
+
+void compute_main_inner(uint local_invocation_index_2) {
+  int v_1 = 0;
+  InterlockedExchange(arg_0, 0, v_1);
+  GroupMemoryBarrierWithGroupSync();
+  atomicOr_d09248();
+}
+
+void compute_main_1() {
+  uint x_33 = local_invocation_index_1;
+  compute_main_inner(x_33);
+}
+
+void compute_main_inner_1(uint local_invocation_index_1_param) {
+  if ((local_invocation_index_1_param == 0u)) {
+    int v_2 = 0;
+    InterlockedExchange(arg_0, 0, v_2);
+  }
+  GroupMemoryBarrierWithGroupSync();
+  local_invocation_index_1 = local_invocation_index_1_param;
+  compute_main_1();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main(compute_main_inputs inputs) {
+  compute_main_inner_1(inputs.local_invocation_index_1_param);
+}
+
diff --git a/test/tint/builtins/atomics/from_gen/var/atomicOr/workgroup_i32.spvasm.expected.ir.fxc.hlsl b/test/tint/builtins/atomics/from_gen/var/atomicOr/workgroup_i32.spvasm.expected.ir.fxc.hlsl
index af0604b..ac776db 100644
--- a/test/tint/builtins/atomics/from_gen/var/atomicOr/workgroup_i32.spvasm.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/atomics/from_gen/var/atomicOr/workgroup_i32.spvasm.expected.ir.fxc.hlsl
@@ -1,9 +1,45 @@
-SKIP: FAILED
+struct compute_main_inputs {
+  uint local_invocation_index_1_param : SV_GroupIndex;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: atomicOr
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+
+static uint local_invocation_index_1 = 0u;
+groupshared int arg_0;
+void atomicOr_d09248() {
+  int arg_1 = 0;
+  int res = 0;
+  arg_1 = 1;
+  int x_19 = arg_1;
+  int v = 0;
+  InterlockedOr(arg_0, x_19, v);
+  int x_15 = v;
+  res = x_15;
+}
+
+void compute_main_inner(uint local_invocation_index_2) {
+  int v_1 = 0;
+  InterlockedExchange(arg_0, 0, v_1);
+  GroupMemoryBarrierWithGroupSync();
+  atomicOr_d09248();
+}
+
+void compute_main_1() {
+  uint x_33 = local_invocation_index_1;
+  compute_main_inner(x_33);
+}
+
+void compute_main_inner_1(uint local_invocation_index_1_param) {
+  if ((local_invocation_index_1_param == 0u)) {
+    int v_2 = 0;
+    InterlockedExchange(arg_0, 0, v_2);
+  }
+  GroupMemoryBarrierWithGroupSync();
+  local_invocation_index_1 = local_invocation_index_1_param;
+  compute_main_1();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main(compute_main_inputs inputs) {
+  compute_main_inner_1(inputs.local_invocation_index_1_param);
+}
+
diff --git a/test/tint/builtins/atomics/from_gen/var/atomicOr/workgroup_u32.spvasm.expected.ir.dxc.hlsl b/test/tint/builtins/atomics/from_gen/var/atomicOr/workgroup_u32.spvasm.expected.ir.dxc.hlsl
index af0604b..945a524 100644
--- a/test/tint/builtins/atomics/from_gen/var/atomicOr/workgroup_u32.spvasm.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/atomics/from_gen/var/atomicOr/workgroup_u32.spvasm.expected.ir.dxc.hlsl
@@ -1,9 +1,45 @@
-SKIP: FAILED
+struct compute_main_inputs {
+  uint local_invocation_index_1_param : SV_GroupIndex;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: atomicOr
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+
+static uint local_invocation_index_1 = 0u;
+groupshared uint arg_0;
+void atomicOr_5e3d61() {
+  uint arg_1 = 0u;
+  uint res = 0u;
+  arg_1 = 1u;
+  uint x_18 = arg_1;
+  uint v = 0u;
+  InterlockedOr(arg_0, x_18, v);
+  uint x_14 = v;
+  res = x_14;
+}
+
+void compute_main_inner(uint local_invocation_index_2) {
+  uint v_1 = 0u;
+  InterlockedExchange(arg_0, 0u, v_1);
+  GroupMemoryBarrierWithGroupSync();
+  atomicOr_5e3d61();
+}
+
+void compute_main_1() {
+  uint x_32 = local_invocation_index_1;
+  compute_main_inner(x_32);
+}
+
+void compute_main_inner_1(uint local_invocation_index_1_param) {
+  if ((local_invocation_index_1_param == 0u)) {
+    uint v_2 = 0u;
+    InterlockedExchange(arg_0, 0u, v_2);
+  }
+  GroupMemoryBarrierWithGroupSync();
+  local_invocation_index_1 = local_invocation_index_1_param;
+  compute_main_1();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main(compute_main_inputs inputs) {
+  compute_main_inner_1(inputs.local_invocation_index_1_param);
+}
+
diff --git a/test/tint/builtins/atomics/from_gen/var/atomicOr/workgroup_u32.spvasm.expected.ir.fxc.hlsl b/test/tint/builtins/atomics/from_gen/var/atomicOr/workgroup_u32.spvasm.expected.ir.fxc.hlsl
index af0604b..945a524 100644
--- a/test/tint/builtins/atomics/from_gen/var/atomicOr/workgroup_u32.spvasm.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/atomics/from_gen/var/atomicOr/workgroup_u32.spvasm.expected.ir.fxc.hlsl
@@ -1,9 +1,45 @@
-SKIP: FAILED
+struct compute_main_inputs {
+  uint local_invocation_index_1_param : SV_GroupIndex;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: atomicOr
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+
+static uint local_invocation_index_1 = 0u;
+groupshared uint arg_0;
+void atomicOr_5e3d61() {
+  uint arg_1 = 0u;
+  uint res = 0u;
+  arg_1 = 1u;
+  uint x_18 = arg_1;
+  uint v = 0u;
+  InterlockedOr(arg_0, x_18, v);
+  uint x_14 = v;
+  res = x_14;
+}
+
+void compute_main_inner(uint local_invocation_index_2) {
+  uint v_1 = 0u;
+  InterlockedExchange(arg_0, 0u, v_1);
+  GroupMemoryBarrierWithGroupSync();
+  atomicOr_5e3d61();
+}
+
+void compute_main_1() {
+  uint x_32 = local_invocation_index_1;
+  compute_main_inner(x_32);
+}
+
+void compute_main_inner_1(uint local_invocation_index_1_param) {
+  if ((local_invocation_index_1_param == 0u)) {
+    uint v_2 = 0u;
+    InterlockedExchange(arg_0, 0u, v_2);
+  }
+  GroupMemoryBarrierWithGroupSync();
+  local_invocation_index_1 = local_invocation_index_1_param;
+  compute_main_1();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main(compute_main_inputs inputs) {
+  compute_main_inner_1(inputs.local_invocation_index_1_param);
+}
+
diff --git a/test/tint/builtins/atomics/from_gen/var/atomicStore/storage_i32.spvasm.expected.ir.dxc.hlsl b/test/tint/builtins/atomics/from_gen/var/atomicStore/storage_i32.spvasm.expected.ir.dxc.hlsl
index 9aa6a33..aef2169 100644
--- a/test/tint/builtins/atomics/from_gen/var/atomicStore/storage_i32.spvasm.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/atomics/from_gen/var/atomicStore/storage_i32.spvasm.expected.ir.dxc.hlsl
@@ -1,9 +1,27 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: atomicStore
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWByteAddressBuffer sb_rw : register(u0);
+void atomicStore_d1e9a6() {
+  int arg_1 = 0;
+  arg_1 = 1;
+  int x_20 = arg_1;
+  int v = 0;
+  sb_rw.InterlockedExchange(int(0u), x_20, v);
+}
+
+void fragment_main_1() {
+  atomicStore_d1e9a6();
+}
+
+void fragment_main() {
+  fragment_main_1();
+}
+
+void compute_main_1() {
+  atomicStore_d1e9a6();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  compute_main_1();
+}
+
diff --git a/test/tint/builtins/atomics/from_gen/var/atomicStore/storage_i32.spvasm.expected.ir.fxc.hlsl b/test/tint/builtins/atomics/from_gen/var/atomicStore/storage_i32.spvasm.expected.ir.fxc.hlsl
index 9aa6a33..aef2169 100644
--- a/test/tint/builtins/atomics/from_gen/var/atomicStore/storage_i32.spvasm.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/atomics/from_gen/var/atomicStore/storage_i32.spvasm.expected.ir.fxc.hlsl
@@ -1,9 +1,27 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: atomicStore
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWByteAddressBuffer sb_rw : register(u0);
+void atomicStore_d1e9a6() {
+  int arg_1 = 0;
+  arg_1 = 1;
+  int x_20 = arg_1;
+  int v = 0;
+  sb_rw.InterlockedExchange(int(0u), x_20, v);
+}
+
+void fragment_main_1() {
+  atomicStore_d1e9a6();
+}
+
+void fragment_main() {
+  fragment_main_1();
+}
+
+void compute_main_1() {
+  atomicStore_d1e9a6();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  compute_main_1();
+}
+
diff --git a/test/tint/builtins/atomics/from_gen/var/atomicStore/storage_u32.spvasm.expected.ir.dxc.hlsl b/test/tint/builtins/atomics/from_gen/var/atomicStore/storage_u32.spvasm.expected.ir.dxc.hlsl
index 9aa6a33..ad78e39 100644
--- a/test/tint/builtins/atomics/from_gen/var/atomicStore/storage_u32.spvasm.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/atomics/from_gen/var/atomicStore/storage_u32.spvasm.expected.ir.dxc.hlsl
@@ -1,9 +1,27 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: atomicStore
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWByteAddressBuffer sb_rw : register(u0);
+void atomicStore_cdc29e() {
+  uint arg_1 = 0u;
+  arg_1 = 1u;
+  uint x_18 = arg_1;
+  uint v = 0u;
+  sb_rw.InterlockedExchange(uint(0u), x_18, v);
+}
+
+void fragment_main_1() {
+  atomicStore_cdc29e();
+}
+
+void fragment_main() {
+  fragment_main_1();
+}
+
+void compute_main_1() {
+  atomicStore_cdc29e();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  compute_main_1();
+}
+
diff --git a/test/tint/builtins/atomics/from_gen/var/atomicStore/storage_u32.spvasm.expected.ir.fxc.hlsl b/test/tint/builtins/atomics/from_gen/var/atomicStore/storage_u32.spvasm.expected.ir.fxc.hlsl
index 9aa6a33..ad78e39 100644
--- a/test/tint/builtins/atomics/from_gen/var/atomicStore/storage_u32.spvasm.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/atomics/from_gen/var/atomicStore/storage_u32.spvasm.expected.ir.fxc.hlsl
@@ -1,9 +1,27 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: atomicStore
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWByteAddressBuffer sb_rw : register(u0);
+void atomicStore_cdc29e() {
+  uint arg_1 = 0u;
+  arg_1 = 1u;
+  uint x_18 = arg_1;
+  uint v = 0u;
+  sb_rw.InterlockedExchange(uint(0u), x_18, v);
+}
+
+void fragment_main_1() {
+  atomicStore_cdc29e();
+}
+
+void fragment_main() {
+  fragment_main_1();
+}
+
+void compute_main_1() {
+  atomicStore_cdc29e();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  compute_main_1();
+}
+
diff --git a/test/tint/builtins/atomics/from_gen/var/atomicStore/workgroup_i32.spvasm.expected.ir.dxc.hlsl b/test/tint/builtins/atomics/from_gen/var/atomicStore/workgroup_i32.spvasm.expected.ir.dxc.hlsl
index 9aa6a33..4e8232d 100644
--- a/test/tint/builtins/atomics/from_gen/var/atomicStore/workgroup_i32.spvasm.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/atomics/from_gen/var/atomicStore/workgroup_i32.spvasm.expected.ir.dxc.hlsl
@@ -1,9 +1,42 @@
-SKIP: FAILED
+struct compute_main_inputs {
+  uint local_invocation_index_1_param : SV_GroupIndex;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: atomicStore
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+
+static uint local_invocation_index_1 = 0u;
+groupshared int arg_0;
+void atomicStore_8bea94() {
+  int arg_1 = 0;
+  arg_1 = 1;
+  int x_19 = arg_1;
+  int v = 0;
+  InterlockedExchange(arg_0, x_19, v);
+}
+
+void compute_main_inner(uint local_invocation_index_2) {
+  int v_1 = 0;
+  InterlockedExchange(arg_0, 0, v_1);
+  GroupMemoryBarrierWithGroupSync();
+  atomicStore_8bea94();
+}
+
+void compute_main_1() {
+  uint x_32 = local_invocation_index_1;
+  compute_main_inner(x_32);
+}
+
+void compute_main_inner_1(uint local_invocation_index_1_param) {
+  if ((local_invocation_index_1_param == 0u)) {
+    int v_2 = 0;
+    InterlockedExchange(arg_0, 0, v_2);
+  }
+  GroupMemoryBarrierWithGroupSync();
+  local_invocation_index_1 = local_invocation_index_1_param;
+  compute_main_1();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main(compute_main_inputs inputs) {
+  compute_main_inner_1(inputs.local_invocation_index_1_param);
+}
+
diff --git a/test/tint/builtins/atomics/from_gen/var/atomicStore/workgroup_i32.spvasm.expected.ir.fxc.hlsl b/test/tint/builtins/atomics/from_gen/var/atomicStore/workgroup_i32.spvasm.expected.ir.fxc.hlsl
index 9aa6a33..4e8232d 100644
--- a/test/tint/builtins/atomics/from_gen/var/atomicStore/workgroup_i32.spvasm.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/atomics/from_gen/var/atomicStore/workgroup_i32.spvasm.expected.ir.fxc.hlsl
@@ -1,9 +1,42 @@
-SKIP: FAILED
+struct compute_main_inputs {
+  uint local_invocation_index_1_param : SV_GroupIndex;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: atomicStore
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+
+static uint local_invocation_index_1 = 0u;
+groupshared int arg_0;
+void atomicStore_8bea94() {
+  int arg_1 = 0;
+  arg_1 = 1;
+  int x_19 = arg_1;
+  int v = 0;
+  InterlockedExchange(arg_0, x_19, v);
+}
+
+void compute_main_inner(uint local_invocation_index_2) {
+  int v_1 = 0;
+  InterlockedExchange(arg_0, 0, v_1);
+  GroupMemoryBarrierWithGroupSync();
+  atomicStore_8bea94();
+}
+
+void compute_main_1() {
+  uint x_32 = local_invocation_index_1;
+  compute_main_inner(x_32);
+}
+
+void compute_main_inner_1(uint local_invocation_index_1_param) {
+  if ((local_invocation_index_1_param == 0u)) {
+    int v_2 = 0;
+    InterlockedExchange(arg_0, 0, v_2);
+  }
+  GroupMemoryBarrierWithGroupSync();
+  local_invocation_index_1 = local_invocation_index_1_param;
+  compute_main_1();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main(compute_main_inputs inputs) {
+  compute_main_inner_1(inputs.local_invocation_index_1_param);
+}
+
diff --git a/test/tint/builtins/atomics/from_gen/var/atomicStore/workgroup_u32.spvasm.expected.ir.dxc.hlsl b/test/tint/builtins/atomics/from_gen/var/atomicStore/workgroup_u32.spvasm.expected.ir.dxc.hlsl
index 9aa6a33..6c9c0de 100644
--- a/test/tint/builtins/atomics/from_gen/var/atomicStore/workgroup_u32.spvasm.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/atomics/from_gen/var/atomicStore/workgroup_u32.spvasm.expected.ir.dxc.hlsl
@@ -1,9 +1,42 @@
-SKIP: FAILED
+struct compute_main_inputs {
+  uint local_invocation_index_1_param : SV_GroupIndex;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: atomicStore
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+
+static uint local_invocation_index_1 = 0u;
+groupshared uint arg_0;
+void atomicStore_726882() {
+  uint arg_1 = 0u;
+  arg_1 = 1u;
+  uint x_18 = arg_1;
+  uint v = 0u;
+  InterlockedExchange(arg_0, x_18, v);
+}
+
+void compute_main_inner(uint local_invocation_index_2) {
+  uint v_1 = 0u;
+  InterlockedExchange(arg_0, 0u, v_1);
+  GroupMemoryBarrierWithGroupSync();
+  atomicStore_726882();
+}
+
+void compute_main_1() {
+  uint x_31 = local_invocation_index_1;
+  compute_main_inner(x_31);
+}
+
+void compute_main_inner_1(uint local_invocation_index_1_param) {
+  if ((local_invocation_index_1_param == 0u)) {
+    uint v_2 = 0u;
+    InterlockedExchange(arg_0, 0u, v_2);
+  }
+  GroupMemoryBarrierWithGroupSync();
+  local_invocation_index_1 = local_invocation_index_1_param;
+  compute_main_1();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main(compute_main_inputs inputs) {
+  compute_main_inner_1(inputs.local_invocation_index_1_param);
+}
+
diff --git a/test/tint/builtins/atomics/from_gen/var/atomicStore/workgroup_u32.spvasm.expected.ir.fxc.hlsl b/test/tint/builtins/atomics/from_gen/var/atomicStore/workgroup_u32.spvasm.expected.ir.fxc.hlsl
index 9aa6a33..6c9c0de 100644
--- a/test/tint/builtins/atomics/from_gen/var/atomicStore/workgroup_u32.spvasm.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/atomics/from_gen/var/atomicStore/workgroup_u32.spvasm.expected.ir.fxc.hlsl
@@ -1,9 +1,42 @@
-SKIP: FAILED
+struct compute_main_inputs {
+  uint local_invocation_index_1_param : SV_GroupIndex;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: atomicStore
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+
+static uint local_invocation_index_1 = 0u;
+groupshared uint arg_0;
+void atomicStore_726882() {
+  uint arg_1 = 0u;
+  arg_1 = 1u;
+  uint x_18 = arg_1;
+  uint v = 0u;
+  InterlockedExchange(arg_0, x_18, v);
+}
+
+void compute_main_inner(uint local_invocation_index_2) {
+  uint v_1 = 0u;
+  InterlockedExchange(arg_0, 0u, v_1);
+  GroupMemoryBarrierWithGroupSync();
+  atomicStore_726882();
+}
+
+void compute_main_1() {
+  uint x_31 = local_invocation_index_1;
+  compute_main_inner(x_31);
+}
+
+void compute_main_inner_1(uint local_invocation_index_1_param) {
+  if ((local_invocation_index_1_param == 0u)) {
+    uint v_2 = 0u;
+    InterlockedExchange(arg_0, 0u, v_2);
+  }
+  GroupMemoryBarrierWithGroupSync();
+  local_invocation_index_1 = local_invocation_index_1_param;
+  compute_main_1();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main(compute_main_inputs inputs) {
+  compute_main_inner_1(inputs.local_invocation_index_1_param);
+}
+
diff --git a/test/tint/builtins/atomics/from_gen/var/atomicSub/storage_i32.spvasm.expected.ir.dxc.hlsl b/test/tint/builtins/atomics/from_gen/var/atomicSub/storage_i32.spvasm.expected.ir.dxc.hlsl
index 7a4d08e..2f2c380 100644
--- a/test/tint/builtins/atomics/from_gen/var/atomicSub/storage_i32.spvasm.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/atomics/from_gen/var/atomicSub/storage_i32.spvasm.expected.ir.dxc.hlsl
@@ -1,9 +1,30 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: atomicSub
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWByteAddressBuffer sb_rw : register(u0);
+void atomicSub_051100() {
+  int arg_1 = 0;
+  int res = 0;
+  arg_1 = 1;
+  int x_20 = arg_1;
+  int v = 0;
+  sb_rw.InterlockedAdd(int(0u), -(x_20), v);
+  int x_13 = v;
+  res = x_13;
+}
+
+void fragment_main_1() {
+  atomicSub_051100();
+}
+
+void fragment_main() {
+  fragment_main_1();
+}
+
+void compute_main_1() {
+  atomicSub_051100();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  compute_main_1();
+}
+
diff --git a/test/tint/builtins/atomics/from_gen/var/atomicSub/storage_i32.spvasm.expected.ir.fxc.hlsl b/test/tint/builtins/atomics/from_gen/var/atomicSub/storage_i32.spvasm.expected.ir.fxc.hlsl
index 7a4d08e..2f2c380 100644
--- a/test/tint/builtins/atomics/from_gen/var/atomicSub/storage_i32.spvasm.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/atomics/from_gen/var/atomicSub/storage_i32.spvasm.expected.ir.fxc.hlsl
@@ -1,9 +1,30 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: atomicSub
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWByteAddressBuffer sb_rw : register(u0);
+void atomicSub_051100() {
+  int arg_1 = 0;
+  int res = 0;
+  arg_1 = 1;
+  int x_20 = arg_1;
+  int v = 0;
+  sb_rw.InterlockedAdd(int(0u), -(x_20), v);
+  int x_13 = v;
+  res = x_13;
+}
+
+void fragment_main_1() {
+  atomicSub_051100();
+}
+
+void fragment_main() {
+  fragment_main_1();
+}
+
+void compute_main_1() {
+  atomicSub_051100();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  compute_main_1();
+}
+
diff --git a/test/tint/builtins/atomics/from_gen/var/atomicSub/storage_u32.spvasm.expected.ir.dxc.hlsl b/test/tint/builtins/atomics/from_gen/var/atomicSub/storage_u32.spvasm.expected.ir.dxc.hlsl
index 7a4d08e..f744a74 100644
--- a/test/tint/builtins/atomics/from_gen/var/atomicSub/storage_u32.spvasm.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/atomics/from_gen/var/atomicSub/storage_u32.spvasm.expected.ir.dxc.hlsl
@@ -1,9 +1,111 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: atomicSub
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+
+struct SB_RW_atomic {
+  /* @offset(0) */
+  arg_0 : atomic<u32>,
+}
+
+struct SB_RW {
+  /* @offset(0) */
+  arg_0 : u32,
+}
+
+@group(0) @binding(0) var<storage, read_write> sb_rw : SB_RW_atomic;
+
+fn atomicSub_15bfc9() {
+  var arg_1 = 0u;
+  var res = 0u;
+  arg_1 = 1u;
+  let x_18 = arg_1;
+  let x_13 = atomicSub(&(sb_rw.arg_0), x_18);
+  res = x_13;
+  return;
+}
+
+fn fragment_main_1() {
+  atomicSub_15bfc9();
+  return;
+}
+
+@fragment
+fn fragment_main() {
+  fragment_main_1();
+}
+
+fn compute_main_1() {
+  atomicSub_15bfc9();
+  return;
+}
+
+@compute @workgroup_size(1i, 1i, 1i)
+fn compute_main() {
+  compute_main_1();
+}
+
+Failed to generate: :17:5 error: unary: no matching overload for 'operator - (u32)'
+
+2 candidate operators:
+ • 'operator - (T  ✗ ) -> T' where:
+      ✗  'T' is 'f32', 'i32' or 'f16'
+ • 'operator - (vecN<T>  ✗ ) -> vecN<T>' where:
+      ✗  'T' is 'f32', 'i32' or 'f16'
+
+    %8:u32 = negation %x_18
+    ^^^^^^^^^^^^^^^^^^^^^^^
+
+:10:3 note: in block
+  $B2: {
+  ^^^
+
+note: # Disassembly
+SB_RW_atomic = struct @align(4) {
+  arg_0:atomic<u32> @offset(0)
+}
+
+$B1: {  # root
+  %sb_rw:hlsl.byte_address_buffer<read_write> = var @binding_point(0, 0)
+}
+
+%atomicSub_15bfc9 = func():void {
+  $B2: {
+    %arg_1:ptr<function, u32, read_write> = var, 0u
+    %res:ptr<function, u32, read_write> = var, 0u
+    store %arg_1, 1u
+    %5:u32 = load %arg_1
+    %x_18:u32 = let %5
+    %7:ptr<function, u32, read_write> = var, 0u
+    %8:u32 = negation %x_18
+    %9:u32 = convert 0u
+    %10:void = %sb_rw.InterlockedAdd %9, %8, %7
+    %11:u32 = load %7
+    %x_13:u32 = let %11
+    store %res, %x_13
+    ret
+  }
+}
+%fragment_main_1 = func():void {
+  $B3: {
+    %14:void = call %atomicSub_15bfc9
+    ret
+  }
+}
+%fragment_main = @fragment func():void {
+  $B4: {
+    %16:void = call %fragment_main_1
+    ret
+  }
+}
+%compute_main_1 = func():void {
+  $B5: {
+    %18:void = call %atomicSub_15bfc9
+    ret
+  }
+}
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B6: {
+    %20:void = call %compute_main_1
+    ret
+  }
+}
+
diff --git a/test/tint/builtins/atomics/from_gen/var/atomicSub/storage_u32.spvasm.expected.ir.fxc.hlsl b/test/tint/builtins/atomics/from_gen/var/atomicSub/storage_u32.spvasm.expected.ir.fxc.hlsl
index 7a4d08e..f744a74 100644
--- a/test/tint/builtins/atomics/from_gen/var/atomicSub/storage_u32.spvasm.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/atomics/from_gen/var/atomicSub/storage_u32.spvasm.expected.ir.fxc.hlsl
@@ -1,9 +1,111 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: atomicSub
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+
+struct SB_RW_atomic {
+  /* @offset(0) */
+  arg_0 : atomic<u32>,
+}
+
+struct SB_RW {
+  /* @offset(0) */
+  arg_0 : u32,
+}
+
+@group(0) @binding(0) var<storage, read_write> sb_rw : SB_RW_atomic;
+
+fn atomicSub_15bfc9() {
+  var arg_1 = 0u;
+  var res = 0u;
+  arg_1 = 1u;
+  let x_18 = arg_1;
+  let x_13 = atomicSub(&(sb_rw.arg_0), x_18);
+  res = x_13;
+  return;
+}
+
+fn fragment_main_1() {
+  atomicSub_15bfc9();
+  return;
+}
+
+@fragment
+fn fragment_main() {
+  fragment_main_1();
+}
+
+fn compute_main_1() {
+  atomicSub_15bfc9();
+  return;
+}
+
+@compute @workgroup_size(1i, 1i, 1i)
+fn compute_main() {
+  compute_main_1();
+}
+
+Failed to generate: :17:5 error: unary: no matching overload for 'operator - (u32)'
+
+2 candidate operators:
+ • 'operator - (T  ✗ ) -> T' where:
+      ✗  'T' is 'f32', 'i32' or 'f16'
+ • 'operator - (vecN<T>  ✗ ) -> vecN<T>' where:
+      ✗  'T' is 'f32', 'i32' or 'f16'
+
+    %8:u32 = negation %x_18
+    ^^^^^^^^^^^^^^^^^^^^^^^
+
+:10:3 note: in block
+  $B2: {
+  ^^^
+
+note: # Disassembly
+SB_RW_atomic = struct @align(4) {
+  arg_0:atomic<u32> @offset(0)
+}
+
+$B1: {  # root
+  %sb_rw:hlsl.byte_address_buffer<read_write> = var @binding_point(0, 0)
+}
+
+%atomicSub_15bfc9 = func():void {
+  $B2: {
+    %arg_1:ptr<function, u32, read_write> = var, 0u
+    %res:ptr<function, u32, read_write> = var, 0u
+    store %arg_1, 1u
+    %5:u32 = load %arg_1
+    %x_18:u32 = let %5
+    %7:ptr<function, u32, read_write> = var, 0u
+    %8:u32 = negation %x_18
+    %9:u32 = convert 0u
+    %10:void = %sb_rw.InterlockedAdd %9, %8, %7
+    %11:u32 = load %7
+    %x_13:u32 = let %11
+    store %res, %x_13
+    ret
+  }
+}
+%fragment_main_1 = func():void {
+  $B3: {
+    %14:void = call %atomicSub_15bfc9
+    ret
+  }
+}
+%fragment_main = @fragment func():void {
+  $B4: {
+    %16:void = call %fragment_main_1
+    ret
+  }
+}
+%compute_main_1 = func():void {
+  $B5: {
+    %18:void = call %atomicSub_15bfc9
+    ret
+  }
+}
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B6: {
+    %20:void = call %compute_main_1
+    ret
+  }
+}
+
diff --git a/test/tint/builtins/atomics/from_gen/var/atomicSub/workgroup_i32.spvasm.expected.ir.dxc.hlsl b/test/tint/builtins/atomics/from_gen/var/atomicSub/workgroup_i32.spvasm.expected.ir.dxc.hlsl
index 7a4d08e..c136503 100644
--- a/test/tint/builtins/atomics/from_gen/var/atomicSub/workgroup_i32.spvasm.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/atomics/from_gen/var/atomicSub/workgroup_i32.spvasm.expected.ir.dxc.hlsl
@@ -1,9 +1,45 @@
-SKIP: FAILED
+struct compute_main_inputs {
+  uint local_invocation_index_1_param : SV_GroupIndex;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: atomicSub
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+
+static uint local_invocation_index_1 = 0u;
+groupshared int arg_0;
+void atomicSub_77883a() {
+  int arg_1 = 0;
+  int res = 0;
+  arg_1 = 1;
+  int x_19 = arg_1;
+  int v = 0;
+  InterlockedAdd(arg_0, -(x_19), v);
+  int x_15 = v;
+  res = x_15;
+}
+
+void compute_main_inner(uint local_invocation_index_2) {
+  int v_1 = 0;
+  InterlockedExchange(arg_0, 0, v_1);
+  GroupMemoryBarrierWithGroupSync();
+  atomicSub_77883a();
+}
+
+void compute_main_1() {
+  uint x_33 = local_invocation_index_1;
+  compute_main_inner(x_33);
+}
+
+void compute_main_inner_1(uint local_invocation_index_1_param) {
+  if ((local_invocation_index_1_param == 0u)) {
+    int v_2 = 0;
+    InterlockedExchange(arg_0, 0, v_2);
+  }
+  GroupMemoryBarrierWithGroupSync();
+  local_invocation_index_1 = local_invocation_index_1_param;
+  compute_main_1();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main(compute_main_inputs inputs) {
+  compute_main_inner_1(inputs.local_invocation_index_1_param);
+}
+
diff --git a/test/tint/builtins/atomics/from_gen/var/atomicSub/workgroup_i32.spvasm.expected.ir.fxc.hlsl b/test/tint/builtins/atomics/from_gen/var/atomicSub/workgroup_i32.spvasm.expected.ir.fxc.hlsl
index 7a4d08e..c136503 100644
--- a/test/tint/builtins/atomics/from_gen/var/atomicSub/workgroup_i32.spvasm.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/atomics/from_gen/var/atomicSub/workgroup_i32.spvasm.expected.ir.fxc.hlsl
@@ -1,9 +1,45 @@
-SKIP: FAILED
+struct compute_main_inputs {
+  uint local_invocation_index_1_param : SV_GroupIndex;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: atomicSub
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+
+static uint local_invocation_index_1 = 0u;
+groupshared int arg_0;
+void atomicSub_77883a() {
+  int arg_1 = 0;
+  int res = 0;
+  arg_1 = 1;
+  int x_19 = arg_1;
+  int v = 0;
+  InterlockedAdd(arg_0, -(x_19), v);
+  int x_15 = v;
+  res = x_15;
+}
+
+void compute_main_inner(uint local_invocation_index_2) {
+  int v_1 = 0;
+  InterlockedExchange(arg_0, 0, v_1);
+  GroupMemoryBarrierWithGroupSync();
+  atomicSub_77883a();
+}
+
+void compute_main_1() {
+  uint x_33 = local_invocation_index_1;
+  compute_main_inner(x_33);
+}
+
+void compute_main_inner_1(uint local_invocation_index_1_param) {
+  if ((local_invocation_index_1_param == 0u)) {
+    int v_2 = 0;
+    InterlockedExchange(arg_0, 0, v_2);
+  }
+  GroupMemoryBarrierWithGroupSync();
+  local_invocation_index_1 = local_invocation_index_1_param;
+  compute_main_1();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main(compute_main_inputs inputs) {
+  compute_main_inner_1(inputs.local_invocation_index_1_param);
+}
+
diff --git a/test/tint/builtins/atomics/from_gen/var/atomicSub/workgroup_u32.spvasm.expected.ir.dxc.hlsl b/test/tint/builtins/atomics/from_gen/var/atomicSub/workgroup_u32.spvasm.expected.ir.dxc.hlsl
index 7a4d08e..7ea48f2 100644
--- a/test/tint/builtins/atomics/from_gen/var/atomicSub/workgroup_u32.spvasm.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/atomics/from_gen/var/atomicSub/workgroup_u32.spvasm.expected.ir.dxc.hlsl
@@ -1,9 +1,118 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: atomicSub
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+
+var<private> local_invocation_index_1 : u32;
+
+var<workgroup> arg_0 : atomic<u32>;
+
+fn atomicSub_0d26c2() {
+  var arg_1 = 0u;
+  var res = 0u;
+  arg_1 = 1u;
+  let x_18 = arg_1;
+  let x_14 = atomicSub(&(arg_0), x_18);
+  res = x_14;
+  return;
+}
+
+fn compute_main_inner(local_invocation_index_2 : u32) {
+  atomicStore(&(arg_0), 0u);
+  workgroupBarrier();
+  atomicSub_0d26c2();
+  return;
+}
+
+fn compute_main_1() {
+  let x_32 = local_invocation_index_1;
+  compute_main_inner(x_32);
+  return;
+}
+
+@compute @workgroup_size(1i, 1i, 1i)
+fn compute_main(@builtin(local_invocation_index) local_invocation_index_1_param : u32) {
+  local_invocation_index_1 = local_invocation_index_1_param;
+  compute_main_1();
+}
+
+Failed to generate: :18:5 error: unary: no matching overload for 'operator - (u32)'
+
+2 candidate operators:
+ • 'operator - (T  ✗ ) -> T' where:
+      ✗  'T' is 'f32', 'i32' or 'f16'
+ • 'operator - (vecN<T>  ✗ ) -> vecN<T>' where:
+      ✗  'T' is 'f32', 'i32' or 'f16'
+
+    %9:u32 = negation %x_18
+    ^^^^^^^^^^^^^^^^^^^^^^^
+
+:11:3 note: in block
+  $B2: {
+  ^^^
+
+note: # Disassembly
+compute_main_inputs = struct @align(4) {
+  local_invocation_index_1_param:u32 @offset(0), @builtin(local_invocation_index)
+}
+
+$B1: {  # root
+  %local_invocation_index_1:ptr<private, u32, read_write> = var
+  %arg_0:ptr<workgroup, atomic<u32>, read_write> = var
+}
+
+%atomicSub_0d26c2 = func():void {
+  $B2: {
+    %arg_1:ptr<function, u32, read_write> = var, 0u
+    %res:ptr<function, u32, read_write> = var, 0u
+    store %arg_1, 1u
+    %6:u32 = load %arg_1
+    %x_18:u32 = let %6
+    %8:ptr<function, u32, read_write> = var, 0u
+    %9:u32 = negation %x_18
+    %10:void = hlsl.InterlockedAdd %arg_0, %9, %8
+    %11:u32 = load %8
+    %x_14:u32 = let %11
+    store %res, %x_14
+    ret
+  }
+}
+%compute_main_inner = func(%local_invocation_index_2:u32):void {
+  $B3: {
+    %15:ptr<function, u32, read_write> = var, 0u
+    %16:void = hlsl.InterlockedExchange %arg_0, 0u, %15
+    %17:void = workgroupBarrier
+    %18:void = call %atomicSub_0d26c2
+    ret
+  }
+}
+%compute_main_1 = func():void {
+  $B4: {
+    %20:u32 = load %local_invocation_index_1
+    %x_32:u32 = let %20
+    %22:void = call %compute_main_inner, %x_32
+    ret
+  }
+}
+%compute_main_inner_1 = func(%local_invocation_index_1_param:u32):void {  # %compute_main_inner_1: 'compute_main_inner'
+  $B5: {
+    %25:bool = eq %local_invocation_index_1_param, 0u
+    if %25 [t: $B6] {  # if_1
+      $B6: {  # true
+        %26:ptr<function, u32, read_write> = var, 0u
+        %27:void = hlsl.InterlockedExchange %arg_0, 0u, %26
+        exit_if  # if_1
+      }
+    }
+    %28:void = workgroupBarrier
+    store %local_invocation_index_1, %local_invocation_index_1_param
+    %29:void = call %compute_main_1
+    ret
+  }
+}
+%compute_main = @compute @workgroup_size(1, 1, 1) func(%inputs:compute_main_inputs):void {
+  $B7: {
+    %32:u32 = access %inputs, 0u
+    %33:void = call %compute_main_inner_1, %32
+    ret
+  }
+}
+
diff --git a/test/tint/builtins/atomics/from_gen/var/atomicSub/workgroup_u32.spvasm.expected.ir.fxc.hlsl b/test/tint/builtins/atomics/from_gen/var/atomicSub/workgroup_u32.spvasm.expected.ir.fxc.hlsl
index 7a4d08e..7ea48f2 100644
--- a/test/tint/builtins/atomics/from_gen/var/atomicSub/workgroup_u32.spvasm.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/atomics/from_gen/var/atomicSub/workgroup_u32.spvasm.expected.ir.fxc.hlsl
@@ -1,9 +1,118 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: atomicSub
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+
+var<private> local_invocation_index_1 : u32;
+
+var<workgroup> arg_0 : atomic<u32>;
+
+fn atomicSub_0d26c2() {
+  var arg_1 = 0u;
+  var res = 0u;
+  arg_1 = 1u;
+  let x_18 = arg_1;
+  let x_14 = atomicSub(&(arg_0), x_18);
+  res = x_14;
+  return;
+}
+
+fn compute_main_inner(local_invocation_index_2 : u32) {
+  atomicStore(&(arg_0), 0u);
+  workgroupBarrier();
+  atomicSub_0d26c2();
+  return;
+}
+
+fn compute_main_1() {
+  let x_32 = local_invocation_index_1;
+  compute_main_inner(x_32);
+  return;
+}
+
+@compute @workgroup_size(1i, 1i, 1i)
+fn compute_main(@builtin(local_invocation_index) local_invocation_index_1_param : u32) {
+  local_invocation_index_1 = local_invocation_index_1_param;
+  compute_main_1();
+}
+
+Failed to generate: :18:5 error: unary: no matching overload for 'operator - (u32)'
+
+2 candidate operators:
+ • 'operator - (T  ✗ ) -> T' where:
+      ✗  'T' is 'f32', 'i32' or 'f16'
+ • 'operator - (vecN<T>  ✗ ) -> vecN<T>' where:
+      ✗  'T' is 'f32', 'i32' or 'f16'
+
+    %9:u32 = negation %x_18
+    ^^^^^^^^^^^^^^^^^^^^^^^
+
+:11:3 note: in block
+  $B2: {
+  ^^^
+
+note: # Disassembly
+compute_main_inputs = struct @align(4) {
+  local_invocation_index_1_param:u32 @offset(0), @builtin(local_invocation_index)
+}
+
+$B1: {  # root
+  %local_invocation_index_1:ptr<private, u32, read_write> = var
+  %arg_0:ptr<workgroup, atomic<u32>, read_write> = var
+}
+
+%atomicSub_0d26c2 = func():void {
+  $B2: {
+    %arg_1:ptr<function, u32, read_write> = var, 0u
+    %res:ptr<function, u32, read_write> = var, 0u
+    store %arg_1, 1u
+    %6:u32 = load %arg_1
+    %x_18:u32 = let %6
+    %8:ptr<function, u32, read_write> = var, 0u
+    %9:u32 = negation %x_18
+    %10:void = hlsl.InterlockedAdd %arg_0, %9, %8
+    %11:u32 = load %8
+    %x_14:u32 = let %11
+    store %res, %x_14
+    ret
+  }
+}
+%compute_main_inner = func(%local_invocation_index_2:u32):void {
+  $B3: {
+    %15:ptr<function, u32, read_write> = var, 0u
+    %16:void = hlsl.InterlockedExchange %arg_0, 0u, %15
+    %17:void = workgroupBarrier
+    %18:void = call %atomicSub_0d26c2
+    ret
+  }
+}
+%compute_main_1 = func():void {
+  $B4: {
+    %20:u32 = load %local_invocation_index_1
+    %x_32:u32 = let %20
+    %22:void = call %compute_main_inner, %x_32
+    ret
+  }
+}
+%compute_main_inner_1 = func(%local_invocation_index_1_param:u32):void {  # %compute_main_inner_1: 'compute_main_inner'
+  $B5: {
+    %25:bool = eq %local_invocation_index_1_param, 0u
+    if %25 [t: $B6] {  # if_1
+      $B6: {  # true
+        %26:ptr<function, u32, read_write> = var, 0u
+        %27:void = hlsl.InterlockedExchange %arg_0, 0u, %26
+        exit_if  # if_1
+      }
+    }
+    %28:void = workgroupBarrier
+    store %local_invocation_index_1, %local_invocation_index_1_param
+    %29:void = call %compute_main_1
+    ret
+  }
+}
+%compute_main = @compute @workgroup_size(1, 1, 1) func(%inputs:compute_main_inputs):void {
+  $B7: {
+    %32:u32 = access %inputs, 0u
+    %33:void = call %compute_main_inner_1, %32
+    ret
+  }
+}
+
diff --git a/test/tint/builtins/atomics/from_gen/var/atomicXor/storage_i32.spvasm.expected.ir.dxc.hlsl b/test/tint/builtins/atomics/from_gen/var/atomicXor/storage_i32.spvasm.expected.ir.dxc.hlsl
index 30cc037..7cb0116 100644
--- a/test/tint/builtins/atomics/from_gen/var/atomicXor/storage_i32.spvasm.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/atomics/from_gen/var/atomicXor/storage_i32.spvasm.expected.ir.dxc.hlsl
@@ -1,9 +1,30 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: atomicXor
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWByteAddressBuffer sb_rw : register(u0);
+void atomicXor_c1b78c() {
+  int arg_1 = 0;
+  int res = 0;
+  arg_1 = 1;
+  int x_20 = arg_1;
+  int v = 0;
+  sb_rw.InterlockedXor(int(0u), x_20, v);
+  int x_13 = v;
+  res = x_13;
+}
+
+void fragment_main_1() {
+  atomicXor_c1b78c();
+}
+
+void fragment_main() {
+  fragment_main_1();
+}
+
+void compute_main_1() {
+  atomicXor_c1b78c();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  compute_main_1();
+}
+
diff --git a/test/tint/builtins/atomics/from_gen/var/atomicXor/storage_i32.spvasm.expected.ir.fxc.hlsl b/test/tint/builtins/atomics/from_gen/var/atomicXor/storage_i32.spvasm.expected.ir.fxc.hlsl
index 30cc037..7cb0116 100644
--- a/test/tint/builtins/atomics/from_gen/var/atomicXor/storage_i32.spvasm.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/atomics/from_gen/var/atomicXor/storage_i32.spvasm.expected.ir.fxc.hlsl
@@ -1,9 +1,30 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: atomicXor
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWByteAddressBuffer sb_rw : register(u0);
+void atomicXor_c1b78c() {
+  int arg_1 = 0;
+  int res = 0;
+  arg_1 = 1;
+  int x_20 = arg_1;
+  int v = 0;
+  sb_rw.InterlockedXor(int(0u), x_20, v);
+  int x_13 = v;
+  res = x_13;
+}
+
+void fragment_main_1() {
+  atomicXor_c1b78c();
+}
+
+void fragment_main() {
+  fragment_main_1();
+}
+
+void compute_main_1() {
+  atomicXor_c1b78c();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  compute_main_1();
+}
+
diff --git a/test/tint/builtins/atomics/from_gen/var/atomicXor/storage_u32.spvasm.expected.ir.dxc.hlsl b/test/tint/builtins/atomics/from_gen/var/atomicXor/storage_u32.spvasm.expected.ir.dxc.hlsl
index 30cc037..6d010c8 100644
--- a/test/tint/builtins/atomics/from_gen/var/atomicXor/storage_u32.spvasm.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/atomics/from_gen/var/atomicXor/storage_u32.spvasm.expected.ir.dxc.hlsl
@@ -1,9 +1,30 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: atomicXor
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWByteAddressBuffer sb_rw : register(u0);
+void atomicXor_54510e() {
+  uint arg_1 = 0u;
+  uint res = 0u;
+  arg_1 = 1u;
+  uint x_18 = arg_1;
+  uint v = 0u;
+  sb_rw.InterlockedXor(uint(0u), x_18, v);
+  uint x_13 = v;
+  res = x_13;
+}
+
+void fragment_main_1() {
+  atomicXor_54510e();
+}
+
+void fragment_main() {
+  fragment_main_1();
+}
+
+void compute_main_1() {
+  atomicXor_54510e();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  compute_main_1();
+}
+
diff --git a/test/tint/builtins/atomics/from_gen/var/atomicXor/storage_u32.spvasm.expected.ir.fxc.hlsl b/test/tint/builtins/atomics/from_gen/var/atomicXor/storage_u32.spvasm.expected.ir.fxc.hlsl
index 30cc037..6d010c8 100644
--- a/test/tint/builtins/atomics/from_gen/var/atomicXor/storage_u32.spvasm.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/atomics/from_gen/var/atomicXor/storage_u32.spvasm.expected.ir.fxc.hlsl
@@ -1,9 +1,30 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: atomicXor
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWByteAddressBuffer sb_rw : register(u0);
+void atomicXor_54510e() {
+  uint arg_1 = 0u;
+  uint res = 0u;
+  arg_1 = 1u;
+  uint x_18 = arg_1;
+  uint v = 0u;
+  sb_rw.InterlockedXor(uint(0u), x_18, v);
+  uint x_13 = v;
+  res = x_13;
+}
+
+void fragment_main_1() {
+  atomicXor_54510e();
+}
+
+void fragment_main() {
+  fragment_main_1();
+}
+
+void compute_main_1() {
+  atomicXor_54510e();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  compute_main_1();
+}
+
diff --git a/test/tint/builtins/atomics/from_gen/var/atomicXor/workgroup_i32.spvasm.expected.ir.dxc.hlsl b/test/tint/builtins/atomics/from_gen/var/atomicXor/workgroup_i32.spvasm.expected.ir.dxc.hlsl
index 30cc037..9dcfc2d 100644
--- a/test/tint/builtins/atomics/from_gen/var/atomicXor/workgroup_i32.spvasm.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/atomics/from_gen/var/atomicXor/workgroup_i32.spvasm.expected.ir.dxc.hlsl
@@ -1,9 +1,45 @@
-SKIP: FAILED
+struct compute_main_inputs {
+  uint local_invocation_index_1_param : SV_GroupIndex;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: atomicXor
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+
+static uint local_invocation_index_1 = 0u;
+groupshared int arg_0;
+void atomicXor_75dc95() {
+  int arg_1 = 0;
+  int res = 0;
+  arg_1 = 1;
+  int x_19 = arg_1;
+  int v = 0;
+  InterlockedXor(arg_0, x_19, v);
+  int x_15 = v;
+  res = x_15;
+}
+
+void compute_main_inner(uint local_invocation_index_2) {
+  int v_1 = 0;
+  InterlockedExchange(arg_0, 0, v_1);
+  GroupMemoryBarrierWithGroupSync();
+  atomicXor_75dc95();
+}
+
+void compute_main_1() {
+  uint x_33 = local_invocation_index_1;
+  compute_main_inner(x_33);
+}
+
+void compute_main_inner_1(uint local_invocation_index_1_param) {
+  if ((local_invocation_index_1_param == 0u)) {
+    int v_2 = 0;
+    InterlockedExchange(arg_0, 0, v_2);
+  }
+  GroupMemoryBarrierWithGroupSync();
+  local_invocation_index_1 = local_invocation_index_1_param;
+  compute_main_1();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main(compute_main_inputs inputs) {
+  compute_main_inner_1(inputs.local_invocation_index_1_param);
+}
+
diff --git a/test/tint/builtins/atomics/from_gen/var/atomicXor/workgroup_i32.spvasm.expected.ir.fxc.hlsl b/test/tint/builtins/atomics/from_gen/var/atomicXor/workgroup_i32.spvasm.expected.ir.fxc.hlsl
index 30cc037..9dcfc2d 100644
--- a/test/tint/builtins/atomics/from_gen/var/atomicXor/workgroup_i32.spvasm.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/atomics/from_gen/var/atomicXor/workgroup_i32.spvasm.expected.ir.fxc.hlsl
@@ -1,9 +1,45 @@
-SKIP: FAILED
+struct compute_main_inputs {
+  uint local_invocation_index_1_param : SV_GroupIndex;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: atomicXor
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+
+static uint local_invocation_index_1 = 0u;
+groupshared int arg_0;
+void atomicXor_75dc95() {
+  int arg_1 = 0;
+  int res = 0;
+  arg_1 = 1;
+  int x_19 = arg_1;
+  int v = 0;
+  InterlockedXor(arg_0, x_19, v);
+  int x_15 = v;
+  res = x_15;
+}
+
+void compute_main_inner(uint local_invocation_index_2) {
+  int v_1 = 0;
+  InterlockedExchange(arg_0, 0, v_1);
+  GroupMemoryBarrierWithGroupSync();
+  atomicXor_75dc95();
+}
+
+void compute_main_1() {
+  uint x_33 = local_invocation_index_1;
+  compute_main_inner(x_33);
+}
+
+void compute_main_inner_1(uint local_invocation_index_1_param) {
+  if ((local_invocation_index_1_param == 0u)) {
+    int v_2 = 0;
+    InterlockedExchange(arg_0, 0, v_2);
+  }
+  GroupMemoryBarrierWithGroupSync();
+  local_invocation_index_1 = local_invocation_index_1_param;
+  compute_main_1();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main(compute_main_inputs inputs) {
+  compute_main_inner_1(inputs.local_invocation_index_1_param);
+}
+
diff --git a/test/tint/builtins/atomics/from_gen/var/atomicXor/workgroup_u32.spvasm.expected.ir.dxc.hlsl b/test/tint/builtins/atomics/from_gen/var/atomicXor/workgroup_u32.spvasm.expected.ir.dxc.hlsl
index 30cc037..91e26ff 100644
--- a/test/tint/builtins/atomics/from_gen/var/atomicXor/workgroup_u32.spvasm.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/atomics/from_gen/var/atomicXor/workgroup_u32.spvasm.expected.ir.dxc.hlsl
@@ -1,9 +1,45 @@
-SKIP: FAILED
+struct compute_main_inputs {
+  uint local_invocation_index_1_param : SV_GroupIndex;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: atomicXor
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+
+static uint local_invocation_index_1 = 0u;
+groupshared uint arg_0;
+void atomicXor_c8e6be() {
+  uint arg_1 = 0u;
+  uint res = 0u;
+  arg_1 = 1u;
+  uint x_18 = arg_1;
+  uint v = 0u;
+  InterlockedXor(arg_0, x_18, v);
+  uint x_14 = v;
+  res = x_14;
+}
+
+void compute_main_inner(uint local_invocation_index_2) {
+  uint v_1 = 0u;
+  InterlockedExchange(arg_0, 0u, v_1);
+  GroupMemoryBarrierWithGroupSync();
+  atomicXor_c8e6be();
+}
+
+void compute_main_1() {
+  uint x_32 = local_invocation_index_1;
+  compute_main_inner(x_32);
+}
+
+void compute_main_inner_1(uint local_invocation_index_1_param) {
+  if ((local_invocation_index_1_param == 0u)) {
+    uint v_2 = 0u;
+    InterlockedExchange(arg_0, 0u, v_2);
+  }
+  GroupMemoryBarrierWithGroupSync();
+  local_invocation_index_1 = local_invocation_index_1_param;
+  compute_main_1();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main(compute_main_inputs inputs) {
+  compute_main_inner_1(inputs.local_invocation_index_1_param);
+}
+
diff --git a/test/tint/builtins/atomics/from_gen/var/atomicXor/workgroup_u32.spvasm.expected.ir.fxc.hlsl b/test/tint/builtins/atomics/from_gen/var/atomicXor/workgroup_u32.spvasm.expected.ir.fxc.hlsl
index 30cc037..91e26ff 100644
--- a/test/tint/builtins/atomics/from_gen/var/atomicXor/workgroup_u32.spvasm.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/atomics/from_gen/var/atomicXor/workgroup_u32.spvasm.expected.ir.fxc.hlsl
@@ -1,9 +1,45 @@
-SKIP: FAILED
+struct compute_main_inputs {
+  uint local_invocation_index_1_param : SV_GroupIndex;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: atomicXor
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+
+static uint local_invocation_index_1 = 0u;
+groupshared uint arg_0;
+void atomicXor_c8e6be() {
+  uint arg_1 = 0u;
+  uint res = 0u;
+  arg_1 = 1u;
+  uint x_18 = arg_1;
+  uint v = 0u;
+  InterlockedXor(arg_0, x_18, v);
+  uint x_14 = v;
+  res = x_14;
+}
+
+void compute_main_inner(uint local_invocation_index_2) {
+  uint v_1 = 0u;
+  InterlockedExchange(arg_0, 0u, v_1);
+  GroupMemoryBarrierWithGroupSync();
+  atomicXor_c8e6be();
+}
+
+void compute_main_1() {
+  uint x_32 = local_invocation_index_1;
+  compute_main_inner(x_32);
+}
+
+void compute_main_inner_1(uint local_invocation_index_1_param) {
+  if ((local_invocation_index_1_param == 0u)) {
+    uint v_2 = 0u;
+    InterlockedExchange(arg_0, 0u, v_2);
+  }
+  GroupMemoryBarrierWithGroupSync();
+  local_invocation_index_1 = local_invocation_index_1_param;
+  compute_main_1();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main(compute_main_inputs inputs) {
+  compute_main_inner_1(inputs.local_invocation_index_1_param);
+}
+
diff --git a/test/tint/builtins/atomics/from_gen/var/spvAtomicDecrement/storage_i32.spvasm.expected.ir.dxc.hlsl b/test/tint/builtins/atomics/from_gen/var/spvAtomicDecrement/storage_i32.spvasm.expected.ir.dxc.hlsl
index 7a4d08e..961475e 100644
--- a/test/tint/builtins/atomics/from_gen/var/spvAtomicDecrement/storage_i32.spvasm.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/atomics/from_gen/var/spvAtomicDecrement/storage_i32.spvasm.expected.ir.dxc.hlsl
@@ -1,9 +1,29 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: atomicSub
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWByteAddressBuffer sb_rw : register(u0);
+void atomicAdd_d32fe4() {
+  int arg_1 = 0;
+  int res = 0;
+  arg_1 = 1;
+  int v = 0;
+  sb_rw.InterlockedAdd(int(0u), -(1), v);
+  int x_13 = v;
+  res = x_13;
+}
+
+void fragment_main_1() {
+  atomicAdd_d32fe4();
+}
+
+void fragment_main() {
+  fragment_main_1();
+}
+
+void compute_main_1() {
+  atomicAdd_d32fe4();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  compute_main_1();
+}
+
diff --git a/test/tint/builtins/atomics/from_gen/var/spvAtomicDecrement/storage_i32.spvasm.expected.ir.fxc.hlsl b/test/tint/builtins/atomics/from_gen/var/spvAtomicDecrement/storage_i32.spvasm.expected.ir.fxc.hlsl
index 7a4d08e..961475e 100644
--- a/test/tint/builtins/atomics/from_gen/var/spvAtomicDecrement/storage_i32.spvasm.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/atomics/from_gen/var/spvAtomicDecrement/storage_i32.spvasm.expected.ir.fxc.hlsl
@@ -1,9 +1,29 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: atomicSub
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWByteAddressBuffer sb_rw : register(u0);
+void atomicAdd_d32fe4() {
+  int arg_1 = 0;
+  int res = 0;
+  arg_1 = 1;
+  int v = 0;
+  sb_rw.InterlockedAdd(int(0u), -(1), v);
+  int x_13 = v;
+  res = x_13;
+}
+
+void fragment_main_1() {
+  atomicAdd_d32fe4();
+}
+
+void fragment_main() {
+  fragment_main_1();
+}
+
+void compute_main_1() {
+  atomicAdd_d32fe4();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  compute_main_1();
+}
+
diff --git a/test/tint/builtins/atomics/from_gen/var/spvAtomicDecrement/storage_u32.spvasm.expected.ir.dxc.hlsl b/test/tint/builtins/atomics/from_gen/var/spvAtomicDecrement/storage_u32.spvasm.expected.ir.dxc.hlsl
index 7a4d08e..8fe3785 100644
--- a/test/tint/builtins/atomics/from_gen/var/spvAtomicDecrement/storage_u32.spvasm.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/atomics/from_gen/var/spvAtomicDecrement/storage_u32.spvasm.expected.ir.dxc.hlsl
@@ -1,9 +1,108 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: atomicSub
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+
+struct SB_RW_atomic {
+  /* @offset(0) */
+  arg_0 : atomic<u32>,
+}
+
+struct SB_RW {
+  /* @offset(0) */
+  arg_0 : u32,
+}
+
+@group(0) @binding(0) var<storage, read_write> sb_rw : SB_RW_atomic;
+
+fn atomicAdd_8a199a() {
+  var arg_1 = 0u;
+  var res = 0u;
+  arg_1 = 1u;
+  let x_13 = atomicSub(&(sb_rw.arg_0), 1u);
+  res = x_13;
+  return;
+}
+
+fn fragment_main_1() {
+  atomicAdd_8a199a();
+  return;
+}
+
+@fragment
+fn fragment_main() {
+  fragment_main_1();
+}
+
+fn compute_main_1() {
+  atomicAdd_8a199a();
+  return;
+}
+
+@compute @workgroup_size(1i, 1i, 1i)
+fn compute_main() {
+  compute_main_1();
+}
+
+Failed to generate: :15:5 error: unary: no matching overload for 'operator - (u32)'
+
+2 candidate operators:
+ • 'operator - (T  ✗ ) -> T' where:
+      ✗  'T' is 'f32', 'i32' or 'f16'
+ • 'operator - (vecN<T>  ✗ ) -> vecN<T>' where:
+      ✗  'T' is 'f32', 'i32' or 'f16'
+
+    %6:u32 = negation 1u
+    ^^^^^^^^^^^^^^^^^^^^
+
+:10:3 note: in block
+  $B2: {
+  ^^^
+
+note: # Disassembly
+SB_RW_atomic = struct @align(4) {
+  arg_0:atomic<u32> @offset(0)
+}
+
+$B1: {  # root
+  %sb_rw:hlsl.byte_address_buffer<read_write> = var @binding_point(0, 0)
+}
+
+%atomicAdd_8a199a = func():void {
+  $B2: {
+    %arg_1:ptr<function, u32, read_write> = var, 0u
+    %res:ptr<function, u32, read_write> = var, 0u
+    store %arg_1, 1u
+    %5:ptr<function, u32, read_write> = var, 0u
+    %6:u32 = negation 1u
+    %7:u32 = convert 0u
+    %8:void = %sb_rw.InterlockedAdd %7, %6, %5
+    %9:u32 = load %5
+    %x_13:u32 = let %9
+    store %res, %x_13
+    ret
+  }
+}
+%fragment_main_1 = func():void {
+  $B3: {
+    %12:void = call %atomicAdd_8a199a
+    ret
+  }
+}
+%fragment_main = @fragment func():void {
+  $B4: {
+    %14:void = call %fragment_main_1
+    ret
+  }
+}
+%compute_main_1 = func():void {
+  $B5: {
+    %16:void = call %atomicAdd_8a199a
+    ret
+  }
+}
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B6: {
+    %18:void = call %compute_main_1
+    ret
+  }
+}
+
diff --git a/test/tint/builtins/atomics/from_gen/var/spvAtomicDecrement/storage_u32.spvasm.expected.ir.fxc.hlsl b/test/tint/builtins/atomics/from_gen/var/spvAtomicDecrement/storage_u32.spvasm.expected.ir.fxc.hlsl
index 7a4d08e..8fe3785 100644
--- a/test/tint/builtins/atomics/from_gen/var/spvAtomicDecrement/storage_u32.spvasm.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/atomics/from_gen/var/spvAtomicDecrement/storage_u32.spvasm.expected.ir.fxc.hlsl
@@ -1,9 +1,108 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: atomicSub
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+
+struct SB_RW_atomic {
+  /* @offset(0) */
+  arg_0 : atomic<u32>,
+}
+
+struct SB_RW {
+  /* @offset(0) */
+  arg_0 : u32,
+}
+
+@group(0) @binding(0) var<storage, read_write> sb_rw : SB_RW_atomic;
+
+fn atomicAdd_8a199a() {
+  var arg_1 = 0u;
+  var res = 0u;
+  arg_1 = 1u;
+  let x_13 = atomicSub(&(sb_rw.arg_0), 1u);
+  res = x_13;
+  return;
+}
+
+fn fragment_main_1() {
+  atomicAdd_8a199a();
+  return;
+}
+
+@fragment
+fn fragment_main() {
+  fragment_main_1();
+}
+
+fn compute_main_1() {
+  atomicAdd_8a199a();
+  return;
+}
+
+@compute @workgroup_size(1i, 1i, 1i)
+fn compute_main() {
+  compute_main_1();
+}
+
+Failed to generate: :15:5 error: unary: no matching overload for 'operator - (u32)'
+
+2 candidate operators:
+ • 'operator - (T  ✗ ) -> T' where:
+      ✗  'T' is 'f32', 'i32' or 'f16'
+ • 'operator - (vecN<T>  ✗ ) -> vecN<T>' where:
+      ✗  'T' is 'f32', 'i32' or 'f16'
+
+    %6:u32 = negation 1u
+    ^^^^^^^^^^^^^^^^^^^^
+
+:10:3 note: in block
+  $B2: {
+  ^^^
+
+note: # Disassembly
+SB_RW_atomic = struct @align(4) {
+  arg_0:atomic<u32> @offset(0)
+}
+
+$B1: {  # root
+  %sb_rw:hlsl.byte_address_buffer<read_write> = var @binding_point(0, 0)
+}
+
+%atomicAdd_8a199a = func():void {
+  $B2: {
+    %arg_1:ptr<function, u32, read_write> = var, 0u
+    %res:ptr<function, u32, read_write> = var, 0u
+    store %arg_1, 1u
+    %5:ptr<function, u32, read_write> = var, 0u
+    %6:u32 = negation 1u
+    %7:u32 = convert 0u
+    %8:void = %sb_rw.InterlockedAdd %7, %6, %5
+    %9:u32 = load %5
+    %x_13:u32 = let %9
+    store %res, %x_13
+    ret
+  }
+}
+%fragment_main_1 = func():void {
+  $B3: {
+    %12:void = call %atomicAdd_8a199a
+    ret
+  }
+}
+%fragment_main = @fragment func():void {
+  $B4: {
+    %14:void = call %fragment_main_1
+    ret
+  }
+}
+%compute_main_1 = func():void {
+  $B5: {
+    %16:void = call %atomicAdd_8a199a
+    ret
+  }
+}
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B6: {
+    %18:void = call %compute_main_1
+    ret
+  }
+}
+
diff --git a/test/tint/builtins/atomics/from_gen/var/spvAtomicDecrement/workgroup_i32.spvasm.expected.ir.dxc.hlsl b/test/tint/builtins/atomics/from_gen/var/spvAtomicDecrement/workgroup_i32.spvasm.expected.ir.dxc.hlsl
index 7a4d08e..30000564 100644
--- a/test/tint/builtins/atomics/from_gen/var/spvAtomicDecrement/workgroup_i32.spvasm.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/atomics/from_gen/var/spvAtomicDecrement/workgroup_i32.spvasm.expected.ir.dxc.hlsl
@@ -1,9 +1,44 @@
-SKIP: FAILED
+struct compute_main_inputs {
+  uint local_invocation_index_1_param : SV_GroupIndex;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: atomicSub
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+
+static uint local_invocation_index_1 = 0u;
+groupshared int arg_0;
+void atomicAdd_794055() {
+  int arg_1 = 0;
+  int res = 0;
+  arg_1 = 1;
+  int v = 0;
+  InterlockedAdd(arg_0, -(1), v);
+  int x_15 = v;
+  res = x_15;
+}
+
+void compute_main_inner(uint local_invocation_index_2) {
+  int v_1 = 0;
+  InterlockedExchange(arg_0, 0, v_1);
+  GroupMemoryBarrierWithGroupSync();
+  atomicAdd_794055();
+}
+
+void compute_main_1() {
+  uint x_33 = local_invocation_index_1;
+  compute_main_inner(x_33);
+}
+
+void compute_main_inner_1(uint local_invocation_index_1_param) {
+  if ((local_invocation_index_1_param == 0u)) {
+    int v_2 = 0;
+    InterlockedExchange(arg_0, 0, v_2);
+  }
+  GroupMemoryBarrierWithGroupSync();
+  local_invocation_index_1 = local_invocation_index_1_param;
+  compute_main_1();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main(compute_main_inputs inputs) {
+  compute_main_inner_1(inputs.local_invocation_index_1_param);
+}
+
diff --git a/test/tint/builtins/atomics/from_gen/var/spvAtomicDecrement/workgroup_i32.spvasm.expected.ir.fxc.hlsl b/test/tint/builtins/atomics/from_gen/var/spvAtomicDecrement/workgroup_i32.spvasm.expected.ir.fxc.hlsl
index 7a4d08e..30000564 100644
--- a/test/tint/builtins/atomics/from_gen/var/spvAtomicDecrement/workgroup_i32.spvasm.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/atomics/from_gen/var/spvAtomicDecrement/workgroup_i32.spvasm.expected.ir.fxc.hlsl
@@ -1,9 +1,44 @@
-SKIP: FAILED
+struct compute_main_inputs {
+  uint local_invocation_index_1_param : SV_GroupIndex;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: atomicSub
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+
+static uint local_invocation_index_1 = 0u;
+groupshared int arg_0;
+void atomicAdd_794055() {
+  int arg_1 = 0;
+  int res = 0;
+  arg_1 = 1;
+  int v = 0;
+  InterlockedAdd(arg_0, -(1), v);
+  int x_15 = v;
+  res = x_15;
+}
+
+void compute_main_inner(uint local_invocation_index_2) {
+  int v_1 = 0;
+  InterlockedExchange(arg_0, 0, v_1);
+  GroupMemoryBarrierWithGroupSync();
+  atomicAdd_794055();
+}
+
+void compute_main_1() {
+  uint x_33 = local_invocation_index_1;
+  compute_main_inner(x_33);
+}
+
+void compute_main_inner_1(uint local_invocation_index_1_param) {
+  if ((local_invocation_index_1_param == 0u)) {
+    int v_2 = 0;
+    InterlockedExchange(arg_0, 0, v_2);
+  }
+  GroupMemoryBarrierWithGroupSync();
+  local_invocation_index_1 = local_invocation_index_1_param;
+  compute_main_1();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main(compute_main_inputs inputs) {
+  compute_main_inner_1(inputs.local_invocation_index_1_param);
+}
+
diff --git a/test/tint/builtins/atomics/from_gen/var/spvAtomicDecrement/workgroup_u32.spvasm.expected.ir.dxc.hlsl b/test/tint/builtins/atomics/from_gen/var/spvAtomicDecrement/workgroup_u32.spvasm.expected.ir.dxc.hlsl
index 7a4d08e..5a29da8 100644
--- a/test/tint/builtins/atomics/from_gen/var/spvAtomicDecrement/workgroup_u32.spvasm.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/atomics/from_gen/var/spvAtomicDecrement/workgroup_u32.spvasm.expected.ir.dxc.hlsl
@@ -1,9 +1,115 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: atomicSub
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+
+var<private> local_invocation_index_1 : u32;
+
+var<workgroup> arg_0 : atomic<u32>;
+
+fn atomicAdd_d5db1d() {
+  var arg_1 = 0u;
+  var res = 0u;
+  arg_1 = 1u;
+  let x_14 = atomicSub(&(arg_0), 1u);
+  res = x_14;
+  return;
+}
+
+fn compute_main_inner(local_invocation_index_2 : u32) {
+  atomicStore(&(arg_0), 0u);
+  workgroupBarrier();
+  atomicAdd_d5db1d();
+  return;
+}
+
+fn compute_main_1() {
+  let x_32 = local_invocation_index_1;
+  compute_main_inner(x_32);
+  return;
+}
+
+@compute @workgroup_size(1i, 1i, 1i)
+fn compute_main(@builtin(local_invocation_index) local_invocation_index_1_param : u32) {
+  local_invocation_index_1 = local_invocation_index_1_param;
+  compute_main_1();
+}
+
+Failed to generate: :16:5 error: unary: no matching overload for 'operator - (u32)'
+
+2 candidate operators:
+ • 'operator - (T  ✗ ) -> T' where:
+      ✗  'T' is 'f32', 'i32' or 'f16'
+ • 'operator - (vecN<T>  ✗ ) -> vecN<T>' where:
+      ✗  'T' is 'f32', 'i32' or 'f16'
+
+    %7:u32 = negation 1u
+    ^^^^^^^^^^^^^^^^^^^^
+
+:11:3 note: in block
+  $B2: {
+  ^^^
+
+note: # Disassembly
+compute_main_inputs = struct @align(4) {
+  local_invocation_index_1_param:u32 @offset(0), @builtin(local_invocation_index)
+}
+
+$B1: {  # root
+  %local_invocation_index_1:ptr<private, u32, read_write> = var
+  %arg_0:ptr<workgroup, atomic<u32>, read_write> = var
+}
+
+%atomicAdd_d5db1d = func():void {
+  $B2: {
+    %arg_1:ptr<function, u32, read_write> = var, 0u
+    %res:ptr<function, u32, read_write> = var, 0u
+    store %arg_1, 1u
+    %6:ptr<function, u32, read_write> = var, 0u
+    %7:u32 = negation 1u
+    %8:void = hlsl.InterlockedAdd %arg_0, %7, %6
+    %9:u32 = load %6
+    %x_14:u32 = let %9
+    store %res, %x_14
+    ret
+  }
+}
+%compute_main_inner = func(%local_invocation_index_2:u32):void {
+  $B3: {
+    %13:ptr<function, u32, read_write> = var, 0u
+    %14:void = hlsl.InterlockedExchange %arg_0, 0u, %13
+    %15:void = workgroupBarrier
+    %16:void = call %atomicAdd_d5db1d
+    ret
+  }
+}
+%compute_main_1 = func():void {
+  $B4: {
+    %18:u32 = load %local_invocation_index_1
+    %x_32:u32 = let %18
+    %20:void = call %compute_main_inner, %x_32
+    ret
+  }
+}
+%compute_main_inner_1 = func(%local_invocation_index_1_param:u32):void {  # %compute_main_inner_1: 'compute_main_inner'
+  $B5: {
+    %23:bool = eq %local_invocation_index_1_param, 0u
+    if %23 [t: $B6] {  # if_1
+      $B6: {  # true
+        %24:ptr<function, u32, read_write> = var, 0u
+        %25:void = hlsl.InterlockedExchange %arg_0, 0u, %24
+        exit_if  # if_1
+      }
+    }
+    %26:void = workgroupBarrier
+    store %local_invocation_index_1, %local_invocation_index_1_param
+    %27:void = call %compute_main_1
+    ret
+  }
+}
+%compute_main = @compute @workgroup_size(1, 1, 1) func(%inputs:compute_main_inputs):void {
+  $B7: {
+    %30:u32 = access %inputs, 0u
+    %31:void = call %compute_main_inner_1, %30
+    ret
+  }
+}
+
diff --git a/test/tint/builtins/atomics/from_gen/var/spvAtomicDecrement/workgroup_u32.spvasm.expected.ir.fxc.hlsl b/test/tint/builtins/atomics/from_gen/var/spvAtomicDecrement/workgroup_u32.spvasm.expected.ir.fxc.hlsl
index 7a4d08e..5a29da8 100644
--- a/test/tint/builtins/atomics/from_gen/var/spvAtomicDecrement/workgroup_u32.spvasm.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/atomics/from_gen/var/spvAtomicDecrement/workgroup_u32.spvasm.expected.ir.fxc.hlsl
@@ -1,9 +1,115 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: atomicSub
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+
+var<private> local_invocation_index_1 : u32;
+
+var<workgroup> arg_0 : atomic<u32>;
+
+fn atomicAdd_d5db1d() {
+  var arg_1 = 0u;
+  var res = 0u;
+  arg_1 = 1u;
+  let x_14 = atomicSub(&(arg_0), 1u);
+  res = x_14;
+  return;
+}
+
+fn compute_main_inner(local_invocation_index_2 : u32) {
+  atomicStore(&(arg_0), 0u);
+  workgroupBarrier();
+  atomicAdd_d5db1d();
+  return;
+}
+
+fn compute_main_1() {
+  let x_32 = local_invocation_index_1;
+  compute_main_inner(x_32);
+  return;
+}
+
+@compute @workgroup_size(1i, 1i, 1i)
+fn compute_main(@builtin(local_invocation_index) local_invocation_index_1_param : u32) {
+  local_invocation_index_1 = local_invocation_index_1_param;
+  compute_main_1();
+}
+
+Failed to generate: :16:5 error: unary: no matching overload for 'operator - (u32)'
+
+2 candidate operators:
+ • 'operator - (T  ✗ ) -> T' where:
+      ✗  'T' is 'f32', 'i32' or 'f16'
+ • 'operator - (vecN<T>  ✗ ) -> vecN<T>' where:
+      ✗  'T' is 'f32', 'i32' or 'f16'
+
+    %7:u32 = negation 1u
+    ^^^^^^^^^^^^^^^^^^^^
+
+:11:3 note: in block
+  $B2: {
+  ^^^
+
+note: # Disassembly
+compute_main_inputs = struct @align(4) {
+  local_invocation_index_1_param:u32 @offset(0), @builtin(local_invocation_index)
+}
+
+$B1: {  # root
+  %local_invocation_index_1:ptr<private, u32, read_write> = var
+  %arg_0:ptr<workgroup, atomic<u32>, read_write> = var
+}
+
+%atomicAdd_d5db1d = func():void {
+  $B2: {
+    %arg_1:ptr<function, u32, read_write> = var, 0u
+    %res:ptr<function, u32, read_write> = var, 0u
+    store %arg_1, 1u
+    %6:ptr<function, u32, read_write> = var, 0u
+    %7:u32 = negation 1u
+    %8:void = hlsl.InterlockedAdd %arg_0, %7, %6
+    %9:u32 = load %6
+    %x_14:u32 = let %9
+    store %res, %x_14
+    ret
+  }
+}
+%compute_main_inner = func(%local_invocation_index_2:u32):void {
+  $B3: {
+    %13:ptr<function, u32, read_write> = var, 0u
+    %14:void = hlsl.InterlockedExchange %arg_0, 0u, %13
+    %15:void = workgroupBarrier
+    %16:void = call %atomicAdd_d5db1d
+    ret
+  }
+}
+%compute_main_1 = func():void {
+  $B4: {
+    %18:u32 = load %local_invocation_index_1
+    %x_32:u32 = let %18
+    %20:void = call %compute_main_inner, %x_32
+    ret
+  }
+}
+%compute_main_inner_1 = func(%local_invocation_index_1_param:u32):void {  # %compute_main_inner_1: 'compute_main_inner'
+  $B5: {
+    %23:bool = eq %local_invocation_index_1_param, 0u
+    if %23 [t: $B6] {  # if_1
+      $B6: {  # true
+        %24:ptr<function, u32, read_write> = var, 0u
+        %25:void = hlsl.InterlockedExchange %arg_0, 0u, %24
+        exit_if  # if_1
+      }
+    }
+    %26:void = workgroupBarrier
+    store %local_invocation_index_1, %local_invocation_index_1_param
+    %27:void = call %compute_main_1
+    ret
+  }
+}
+%compute_main = @compute @workgroup_size(1, 1, 1) func(%inputs:compute_main_inputs):void {
+  $B7: {
+    %30:u32 = access %inputs, 0u
+    %31:void = call %compute_main_inner_1, %30
+    ret
+  }
+}
+
diff --git a/test/tint/builtins/atomics/from_gen/var/spvAtomicIncrement/storage_i32.spvasm.expected.ir.dxc.hlsl b/test/tint/builtins/atomics/from_gen/var/spvAtomicIncrement/storage_i32.spvasm.expected.ir.dxc.hlsl
index b786ae2..225e279 100644
--- a/test/tint/builtins/atomics/from_gen/var/spvAtomicIncrement/storage_i32.spvasm.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/atomics/from_gen/var/spvAtomicIncrement/storage_i32.spvasm.expected.ir.dxc.hlsl
@@ -1,9 +1,29 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: atomicAdd
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWByteAddressBuffer sb_rw : register(u0);
+void atomicAdd_d32fe4() {
+  int arg_1 = 0;
+  int res = 0;
+  arg_1 = 1;
+  int v = 0;
+  sb_rw.InterlockedAdd(int(0u), 1, v);
+  int x_13 = v;
+  res = x_13;
+}
+
+void fragment_main_1() {
+  atomicAdd_d32fe4();
+}
+
+void fragment_main() {
+  fragment_main_1();
+}
+
+void compute_main_1() {
+  atomicAdd_d32fe4();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  compute_main_1();
+}
+
diff --git a/test/tint/builtins/atomics/from_gen/var/spvAtomicIncrement/storage_i32.spvasm.expected.ir.fxc.hlsl b/test/tint/builtins/atomics/from_gen/var/spvAtomicIncrement/storage_i32.spvasm.expected.ir.fxc.hlsl
index b786ae2..225e279 100644
--- a/test/tint/builtins/atomics/from_gen/var/spvAtomicIncrement/storage_i32.spvasm.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/atomics/from_gen/var/spvAtomicIncrement/storage_i32.spvasm.expected.ir.fxc.hlsl
@@ -1,9 +1,29 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: atomicAdd
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWByteAddressBuffer sb_rw : register(u0);
+void atomicAdd_d32fe4() {
+  int arg_1 = 0;
+  int res = 0;
+  arg_1 = 1;
+  int v = 0;
+  sb_rw.InterlockedAdd(int(0u), 1, v);
+  int x_13 = v;
+  res = x_13;
+}
+
+void fragment_main_1() {
+  atomicAdd_d32fe4();
+}
+
+void fragment_main() {
+  fragment_main_1();
+}
+
+void compute_main_1() {
+  atomicAdd_d32fe4();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  compute_main_1();
+}
+
diff --git a/test/tint/builtins/atomics/from_gen/var/spvAtomicIncrement/storage_u32.spvasm.expected.ir.dxc.hlsl b/test/tint/builtins/atomics/from_gen/var/spvAtomicIncrement/storage_u32.spvasm.expected.ir.dxc.hlsl
index b786ae2..573fd78 100644
--- a/test/tint/builtins/atomics/from_gen/var/spvAtomicIncrement/storage_u32.spvasm.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/atomics/from_gen/var/spvAtomicIncrement/storage_u32.spvasm.expected.ir.dxc.hlsl
@@ -1,9 +1,29 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: atomicAdd
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWByteAddressBuffer sb_rw : register(u0);
+void atomicAdd_8a199a() {
+  uint arg_1 = 0u;
+  uint res = 0u;
+  arg_1 = 1u;
+  uint v = 0u;
+  sb_rw.InterlockedAdd(uint(0u), 1u, v);
+  uint x_13 = v;
+  res = x_13;
+}
+
+void fragment_main_1() {
+  atomicAdd_8a199a();
+}
+
+void fragment_main() {
+  fragment_main_1();
+}
+
+void compute_main_1() {
+  atomicAdd_8a199a();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  compute_main_1();
+}
+
diff --git a/test/tint/builtins/atomics/from_gen/var/spvAtomicIncrement/storage_u32.spvasm.expected.ir.fxc.hlsl b/test/tint/builtins/atomics/from_gen/var/spvAtomicIncrement/storage_u32.spvasm.expected.ir.fxc.hlsl
index b786ae2..573fd78 100644
--- a/test/tint/builtins/atomics/from_gen/var/spvAtomicIncrement/storage_u32.spvasm.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/atomics/from_gen/var/spvAtomicIncrement/storage_u32.spvasm.expected.ir.fxc.hlsl
@@ -1,9 +1,29 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: atomicAdd
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWByteAddressBuffer sb_rw : register(u0);
+void atomicAdd_8a199a() {
+  uint arg_1 = 0u;
+  uint res = 0u;
+  arg_1 = 1u;
+  uint v = 0u;
+  sb_rw.InterlockedAdd(uint(0u), 1u, v);
+  uint x_13 = v;
+  res = x_13;
+}
+
+void fragment_main_1() {
+  atomicAdd_8a199a();
+}
+
+void fragment_main() {
+  fragment_main_1();
+}
+
+void compute_main_1() {
+  atomicAdd_8a199a();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  compute_main_1();
+}
+
diff --git a/test/tint/builtins/atomics/from_gen/var/spvAtomicIncrement/workgroup_i32.spvasm.expected.ir.dxc.hlsl b/test/tint/builtins/atomics/from_gen/var/spvAtomicIncrement/workgroup_i32.spvasm.expected.ir.dxc.hlsl
index b786ae2..3990004 100644
--- a/test/tint/builtins/atomics/from_gen/var/spvAtomicIncrement/workgroup_i32.spvasm.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/atomics/from_gen/var/spvAtomicIncrement/workgroup_i32.spvasm.expected.ir.dxc.hlsl
@@ -1,9 +1,44 @@
-SKIP: FAILED
+struct compute_main_inputs {
+  uint local_invocation_index_1_param : SV_GroupIndex;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: atomicAdd
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+
+static uint local_invocation_index_1 = 0u;
+groupshared int arg_0;
+void atomicAdd_794055() {
+  int arg_1 = 0;
+  int res = 0;
+  arg_1 = 1;
+  int v = 0;
+  InterlockedAdd(arg_0, 1, v);
+  int x_15 = v;
+  res = x_15;
+}
+
+void compute_main_inner(uint local_invocation_index_2) {
+  int v_1 = 0;
+  InterlockedExchange(arg_0, 0, v_1);
+  GroupMemoryBarrierWithGroupSync();
+  atomicAdd_794055();
+}
+
+void compute_main_1() {
+  uint x_33 = local_invocation_index_1;
+  compute_main_inner(x_33);
+}
+
+void compute_main_inner_1(uint local_invocation_index_1_param) {
+  if ((local_invocation_index_1_param == 0u)) {
+    int v_2 = 0;
+    InterlockedExchange(arg_0, 0, v_2);
+  }
+  GroupMemoryBarrierWithGroupSync();
+  local_invocation_index_1 = local_invocation_index_1_param;
+  compute_main_1();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main(compute_main_inputs inputs) {
+  compute_main_inner_1(inputs.local_invocation_index_1_param);
+}
+
diff --git a/test/tint/builtins/atomics/from_gen/var/spvAtomicIncrement/workgroup_i32.spvasm.expected.ir.fxc.hlsl b/test/tint/builtins/atomics/from_gen/var/spvAtomicIncrement/workgroup_i32.spvasm.expected.ir.fxc.hlsl
index b786ae2..3990004 100644
--- a/test/tint/builtins/atomics/from_gen/var/spvAtomicIncrement/workgroup_i32.spvasm.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/atomics/from_gen/var/spvAtomicIncrement/workgroup_i32.spvasm.expected.ir.fxc.hlsl
@@ -1,9 +1,44 @@
-SKIP: FAILED
+struct compute_main_inputs {
+  uint local_invocation_index_1_param : SV_GroupIndex;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: atomicAdd
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+
+static uint local_invocation_index_1 = 0u;
+groupshared int arg_0;
+void atomicAdd_794055() {
+  int arg_1 = 0;
+  int res = 0;
+  arg_1 = 1;
+  int v = 0;
+  InterlockedAdd(arg_0, 1, v);
+  int x_15 = v;
+  res = x_15;
+}
+
+void compute_main_inner(uint local_invocation_index_2) {
+  int v_1 = 0;
+  InterlockedExchange(arg_0, 0, v_1);
+  GroupMemoryBarrierWithGroupSync();
+  atomicAdd_794055();
+}
+
+void compute_main_1() {
+  uint x_33 = local_invocation_index_1;
+  compute_main_inner(x_33);
+}
+
+void compute_main_inner_1(uint local_invocation_index_1_param) {
+  if ((local_invocation_index_1_param == 0u)) {
+    int v_2 = 0;
+    InterlockedExchange(arg_0, 0, v_2);
+  }
+  GroupMemoryBarrierWithGroupSync();
+  local_invocation_index_1 = local_invocation_index_1_param;
+  compute_main_1();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main(compute_main_inputs inputs) {
+  compute_main_inner_1(inputs.local_invocation_index_1_param);
+}
+
diff --git a/test/tint/builtins/atomics/from_gen/var/spvAtomicIncrement/workgroup_u32.spvasm.expected.ir.dxc.hlsl b/test/tint/builtins/atomics/from_gen/var/spvAtomicIncrement/workgroup_u32.spvasm.expected.ir.dxc.hlsl
index b786ae2..ceacef2 100644
--- a/test/tint/builtins/atomics/from_gen/var/spvAtomicIncrement/workgroup_u32.spvasm.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/atomics/from_gen/var/spvAtomicIncrement/workgroup_u32.spvasm.expected.ir.dxc.hlsl
@@ -1,9 +1,44 @@
-SKIP: FAILED
+struct compute_main_inputs {
+  uint local_invocation_index_1_param : SV_GroupIndex;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: atomicAdd
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+
+static uint local_invocation_index_1 = 0u;
+groupshared uint arg_0;
+void atomicAdd_d5db1d() {
+  uint arg_1 = 0u;
+  uint res = 0u;
+  arg_1 = 1u;
+  uint v = 0u;
+  InterlockedAdd(arg_0, 1u, v);
+  uint x_14 = v;
+  res = x_14;
+}
+
+void compute_main_inner(uint local_invocation_index_2) {
+  uint v_1 = 0u;
+  InterlockedExchange(arg_0, 0u, v_1);
+  GroupMemoryBarrierWithGroupSync();
+  atomicAdd_d5db1d();
+}
+
+void compute_main_1() {
+  uint x_32 = local_invocation_index_1;
+  compute_main_inner(x_32);
+}
+
+void compute_main_inner_1(uint local_invocation_index_1_param) {
+  if ((local_invocation_index_1_param == 0u)) {
+    uint v_2 = 0u;
+    InterlockedExchange(arg_0, 0u, v_2);
+  }
+  GroupMemoryBarrierWithGroupSync();
+  local_invocation_index_1 = local_invocation_index_1_param;
+  compute_main_1();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main(compute_main_inputs inputs) {
+  compute_main_inner_1(inputs.local_invocation_index_1_param);
+}
+
diff --git a/test/tint/builtins/atomics/from_gen/var/spvAtomicIncrement/workgroup_u32.spvasm.expected.ir.fxc.hlsl b/test/tint/builtins/atomics/from_gen/var/spvAtomicIncrement/workgroup_u32.spvasm.expected.ir.fxc.hlsl
index b786ae2..ceacef2 100644
--- a/test/tint/builtins/atomics/from_gen/var/spvAtomicIncrement/workgroup_u32.spvasm.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/atomics/from_gen/var/spvAtomicIncrement/workgroup_u32.spvasm.expected.ir.fxc.hlsl
@@ -1,9 +1,44 @@
-SKIP: FAILED
+struct compute_main_inputs {
+  uint local_invocation_index_1_param : SV_GroupIndex;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: atomicAdd
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+
+static uint local_invocation_index_1 = 0u;
+groupshared uint arg_0;
+void atomicAdd_d5db1d() {
+  uint arg_1 = 0u;
+  uint res = 0u;
+  arg_1 = 1u;
+  uint v = 0u;
+  InterlockedAdd(arg_0, 1u, v);
+  uint x_14 = v;
+  res = x_14;
+}
+
+void compute_main_inner(uint local_invocation_index_2) {
+  uint v_1 = 0u;
+  InterlockedExchange(arg_0, 0u, v_1);
+  GroupMemoryBarrierWithGroupSync();
+  atomicAdd_d5db1d();
+}
+
+void compute_main_1() {
+  uint x_32 = local_invocation_index_1;
+  compute_main_inner(x_32);
+}
+
+void compute_main_inner_1(uint local_invocation_index_1_param) {
+  if ((local_invocation_index_1_param == 0u)) {
+    uint v_2 = 0u;
+    InterlockedExchange(arg_0, 0u, v_2);
+  }
+  GroupMemoryBarrierWithGroupSync();
+  local_invocation_index_1 = local_invocation_index_1_param;
+  compute_main_1();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main(compute_main_inputs inputs) {
+  compute_main_inner_1(inputs.local_invocation_index_1_param);
+}
+
diff --git a/test/tint/builtins/degrees.spvasm.expected.ir.dxc.hlsl b/test/tint/builtins/degrees.spvasm.expected.ir.dxc.hlsl
index 33bc9a7..4cc1e64 100644
--- a/test/tint/builtins/degrees.spvasm.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/degrees.spvasm.expected.ir.dxc.hlsl
@@ -1,9 +1,13 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: degrees
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+void main_1() {
+  float a = 0.0f;
+  float b = 0.0f;
+  a = 42.0f;
+  b = (a * 57.295780181884765625f);
+}
+
+[numthreads(1, 1, 1)]
+void main() {
+  main_1();
+}
+
diff --git a/test/tint/builtins/degrees.spvasm.expected.ir.fxc.hlsl b/test/tint/builtins/degrees.spvasm.expected.ir.fxc.hlsl
index 33bc9a7..4cc1e64 100644
--- a/test/tint/builtins/degrees.spvasm.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/degrees.spvasm.expected.ir.fxc.hlsl
@@ -1,9 +1,13 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: degrees
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+void main_1() {
+  float a = 0.0f;
+  float b = 0.0f;
+  a = 42.0f;
+  b = (a * 57.295780181884765625f);
+}
+
+[numthreads(1, 1, 1)]
+void main() {
+  main_1();
+}
+
diff --git a/test/tint/builtins/extractBits/scalar/i32.spvasm.expected.ir.dxc.hlsl b/test/tint/builtins/extractBits/scalar/i32.spvasm.expected.ir.dxc.hlsl
index 75027f4..c6d92c5 100644
--- a/test/tint/builtins/extractBits/scalar/i32.spvasm.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/extractBits/scalar/i32.spvasm.expected.ir.dxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: extractBits
+..\..\src\tint\lang\core\ir\transform\builtin_polyfill.cc:407 internal compiler error: TINT_UNIMPLEMENTED extractBits polyfill level
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/extractBits/scalar/i32.spvasm.expected.ir.fxc.hlsl b/test/tint/builtins/extractBits/scalar/i32.spvasm.expected.ir.fxc.hlsl
index 75027f4..c6d92c5 100644
--- a/test/tint/builtins/extractBits/scalar/i32.spvasm.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/extractBits/scalar/i32.spvasm.expected.ir.fxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: extractBits
+..\..\src\tint\lang\core\ir\transform\builtin_polyfill.cc:407 internal compiler error: TINT_UNIMPLEMENTED extractBits polyfill level
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/extractBits/scalar/u32.spvasm.expected.ir.dxc.hlsl b/test/tint/builtins/extractBits/scalar/u32.spvasm.expected.ir.dxc.hlsl
index 75027f4..c6d92c5 100644
--- a/test/tint/builtins/extractBits/scalar/u32.spvasm.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/extractBits/scalar/u32.spvasm.expected.ir.dxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: extractBits
+..\..\src\tint\lang\core\ir\transform\builtin_polyfill.cc:407 internal compiler error: TINT_UNIMPLEMENTED extractBits polyfill level
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/extractBits/scalar/u32.spvasm.expected.ir.fxc.hlsl b/test/tint/builtins/extractBits/scalar/u32.spvasm.expected.ir.fxc.hlsl
index 75027f4..c6d92c5 100644
--- a/test/tint/builtins/extractBits/scalar/u32.spvasm.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/extractBits/scalar/u32.spvasm.expected.ir.fxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: extractBits
+..\..\src\tint\lang\core\ir\transform\builtin_polyfill.cc:407 internal compiler error: TINT_UNIMPLEMENTED extractBits polyfill level
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/extractBits/vec3/i32.spvasm.expected.ir.dxc.hlsl b/test/tint/builtins/extractBits/vec3/i32.spvasm.expected.ir.dxc.hlsl
index 75027f4..c6d92c5 100644
--- a/test/tint/builtins/extractBits/vec3/i32.spvasm.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/extractBits/vec3/i32.spvasm.expected.ir.dxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: extractBits
+..\..\src\tint\lang\core\ir\transform\builtin_polyfill.cc:407 internal compiler error: TINT_UNIMPLEMENTED extractBits polyfill level
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/extractBits/vec3/i32.spvasm.expected.ir.fxc.hlsl b/test/tint/builtins/extractBits/vec3/i32.spvasm.expected.ir.fxc.hlsl
index 75027f4..c6d92c5 100644
--- a/test/tint/builtins/extractBits/vec3/i32.spvasm.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/extractBits/vec3/i32.spvasm.expected.ir.fxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: extractBits
+..\..\src\tint\lang\core\ir\transform\builtin_polyfill.cc:407 internal compiler error: TINT_UNIMPLEMENTED extractBits polyfill level
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/extractBits/vec3/u32.spvasm.expected.ir.dxc.hlsl b/test/tint/builtins/extractBits/vec3/u32.spvasm.expected.ir.dxc.hlsl
index 75027f4..c6d92c5 100644
--- a/test/tint/builtins/extractBits/vec3/u32.spvasm.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/extractBits/vec3/u32.spvasm.expected.ir.dxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: extractBits
+..\..\src\tint\lang\core\ir\transform\builtin_polyfill.cc:407 internal compiler error: TINT_UNIMPLEMENTED extractBits polyfill level
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/extractBits/vec3/u32.spvasm.expected.ir.fxc.hlsl b/test/tint/builtins/extractBits/vec3/u32.spvasm.expected.ir.fxc.hlsl
index 75027f4..c6d92c5 100644
--- a/test/tint/builtins/extractBits/vec3/u32.spvasm.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/extractBits/vec3/u32.spvasm.expected.ir.fxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: extractBits
+..\..\src\tint\lang\core\ir\transform\builtin_polyfill.cc:407 internal compiler error: TINT_UNIMPLEMENTED extractBits polyfill level
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/frexp.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/frexp.wgsl.expected.ir.dxc.hlsl
index 0ba40c6..417c348 100644
--- a/test/tint/builtins/frexp.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/frexp.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,15 @@
-SKIP: FAILED
+struct frexp_result_f32 {
+  float fract;
+  int exp;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+
+[numthreads(1, 1, 1)]
+void main() {
+  frexp_result_f32 v = {0.61500000953674316406f, 1};
+  frexp_result_f32 res = v;
+  int exp = res.exp;
+  frexp_result_f32 v_1 = v;
+  float fract = v_1.fract;
+}
+
diff --git a/test/tint/builtins/frexp.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/frexp.wgsl.expected.ir.fxc.hlsl
index 0ba40c6..417c348 100644
--- a/test/tint/builtins/frexp.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/frexp.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,15 @@
-SKIP: FAILED
+struct frexp_result_f32 {
+  float fract;
+  int exp;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+
+[numthreads(1, 1, 1)]
+void main() {
+  frexp_result_f32 v = {0.61500000953674316406f, 1};
+  frexp_result_f32 res = v;
+  int exp = res.exp;
+  frexp_result_f32 v_1 = v;
+  float fract = v_1.fract;
+}
+
diff --git a/test/tint/builtins/frexp/scalar/const.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/frexp/scalar/const.wgsl.expected.ir.dxc.hlsl
index 0ba40c6..4ab56a0 100644
--- a/test/tint/builtins/frexp/scalar/const.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/frexp/scalar/const.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,15 @@
-SKIP: FAILED
+struct frexp_result_f32 {
+  float fract;
+  int exp;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+
+[numthreads(1, 1, 1)]
+void main() {
+  frexp_result_f32 v = {0.625f, 1};
+  frexp_result_f32 res = v;
+  float fract = res.fract;
+  frexp_result_f32 v_1 = v;
+  int exp = v_1.exp;
+}
+
diff --git a/test/tint/builtins/frexp/scalar/const.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/frexp/scalar/const.wgsl.expected.ir.fxc.hlsl
index 0ba40c6..4ab56a0 100644
--- a/test/tint/builtins/frexp/scalar/const.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/frexp/scalar/const.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,15 @@
-SKIP: FAILED
+struct frexp_result_f32 {
+  float fract;
+  int exp;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+
+[numthreads(1, 1, 1)]
+void main() {
+  frexp_result_f32 v = {0.625f, 1};
+  frexp_result_f32 res = v;
+  float fract = res.fract;
+  frexp_result_f32 v_1 = v;
+  int exp = v_1.exp;
+}
+
diff --git a/test/tint/builtins/frexp/scalar/const_members.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/frexp/scalar/const_members.wgsl.expected.ir.dxc.hlsl
index 043ccd1..1b370e2 100644
--- a/test/tint/builtins/frexp/scalar/const_members.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/frexp/scalar/const_members.wgsl.expected.ir.dxc.hlsl
@@ -1,3 +1,4 @@
+
 [numthreads(1, 1, 1)]
 void main() {
   float fract = 0.625f;
diff --git a/test/tint/builtins/frexp/scalar/const_members.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/frexp/scalar/const_members.wgsl.expected.ir.fxc.hlsl
index 043ccd1..1b370e2 100644
--- a/test/tint/builtins/frexp/scalar/const_members.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/frexp/scalar/const_members.wgsl.expected.ir.fxc.hlsl
@@ -1,3 +1,4 @@
+
 [numthreads(1, 1, 1)]
 void main() {
   float fract = 0.625f;
diff --git a/test/tint/builtins/frexp/scalar/mixed.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/frexp/scalar/mixed.wgsl.expected.ir.dxc.hlsl
index 0ba40c6..6262ef9 100644
--- a/test/tint/builtins/frexp/scalar/mixed.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/frexp/scalar/mixed.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,25 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct frexp_result_f32 {
+  float fract;
+  int exp;
+};
+
+
+[numthreads(1, 1, 1)]
+void main() {
+  float runtime_in = 1.25f;
+  frexp_result_f32 res = {0.625f, 1};
+  frexp_result_f32 v = frexp(runtime_in);
+  res = v;
+  frexp_result_f32 v_1 = {0.625f, 1};
+  res = v_1;
+  float fract = res.fract;
+  int exp = res.exp;
+}
+
+DXC validation failure:
+hlsl.hlsl:11:24: error: use of undeclared identifier 'frexp'
+  frexp_result_f32 v = frexp(runtime_in);
+                       ^
+
diff --git a/test/tint/builtins/frexp/scalar/mixed.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/frexp/scalar/mixed.wgsl.expected.ir.fxc.hlsl
index 0ba40c6..8981410 100644
--- a/test/tint/builtins/frexp/scalar/mixed.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/frexp/scalar/mixed.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,25 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct frexp_result_f32 {
+  float fract;
+  int exp;
+};
+
+
+[numthreads(1, 1, 1)]
+void main() {
+  float runtime_in = 1.25f;
+  frexp_result_f32 res = {0.625f, 1};
+  frexp_result_f32 v = frexp(runtime_in);
+  res = v;
+  frexp_result_f32 v_1 = {0.625f, 1};
+  res = v_1;
+  float fract = res.fract;
+  int exp = res.exp;
+}
+
+FXC validation failure:
+c:\src\dawn\Shader@0x000001AC38D23940(11,24-40): error X3013: 'frexp': no matching 1 parameter intrinsic function
+c:\src\dawn\Shader@0x000001AC38D23940(11,24-40): error X3013: Possible intrinsic functions are:
+c:\src\dawn\Shader@0x000001AC38D23940(11,24-40): error X3013:     frexp(float|half, out float|half exp)
+
diff --git a/test/tint/builtins/frexp/scalar/runtime.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/frexp/scalar/runtime.wgsl.expected.ir.dxc.hlsl
index 3f437dc..e9cf84f 100644
--- a/test/tint/builtins/frexp/scalar/runtime.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/frexp/scalar/runtime.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,23 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Access
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct frexp_result_f32 {
+  float fract;
+  int exp;
+};
+
+
+[numthreads(1, 1, 1)]
+void main() {
+  float tint_symbol = 1.25f;
+  frexp_result_f32 v = frexp(tint_symbol);
+  frexp_result_f32 res = v;
+  float fract = res.fract;
+  frexp_result_f32 v_1 = v;
+  int exp = v_1.exp;
+}
+
+DXC validation failure:
+hlsl.hlsl:10:24: error: use of undeclared identifier 'frexp'
+  frexp_result_f32 v = frexp(tint_symbol);
+                       ^
+
diff --git a/test/tint/builtins/frexp/scalar/runtime.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/frexp/scalar/runtime.wgsl.expected.ir.fxc.hlsl
index 3f437dc..4170334 100644
--- a/test/tint/builtins/frexp/scalar/runtime.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/frexp/scalar/runtime.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,23 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Access
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct frexp_result_f32 {
+  float fract;
+  int exp;
+};
+
+
+[numthreads(1, 1, 1)]
+void main() {
+  float tint_symbol = 1.25f;
+  frexp_result_f32 v = frexp(tint_symbol);
+  frexp_result_f32 res = v;
+  float fract = res.fract;
+  frexp_result_f32 v_1 = v;
+  int exp = v_1.exp;
+}
+
+FXC validation failure:
+c:\src\dawn\Shader@0x0000027061073E10(10,24-41): error X3013: 'frexp': no matching 1 parameter intrinsic function
+c:\src\dawn\Shader@0x0000027061073E10(10,24-41): error X3013: Possible intrinsic functions are:
+c:\src\dawn\Shader@0x0000027061073E10(10,24-41): error X3013:     frexp(float|half, out float|half exp)
+
diff --git a/test/tint/builtins/frexp/vector/const.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/frexp/vector/const.wgsl.expected.ir.dxc.hlsl
index 0ba40c6..3552df3 100644
--- a/test/tint/builtins/frexp/vector/const.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/frexp/vector/const.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,15 @@
-SKIP: FAILED
+struct frexp_result_vec2_f32 {
+  float2 fract;
+  int2 exp;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+
+[numthreads(1, 1, 1)]
+void main() {
+  frexp_result_vec2_f32 v = {float2(0.625f, 0.9375f), int2(1, 2)};
+  frexp_result_vec2_f32 res = v;
+  float2 fract = res.fract;
+  frexp_result_vec2_f32 v_1 = v;
+  int2 exp = v_1.exp;
+}
+
diff --git a/test/tint/builtins/frexp/vector/const.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/frexp/vector/const.wgsl.expected.ir.fxc.hlsl
index 0ba40c6..3552df3 100644
--- a/test/tint/builtins/frexp/vector/const.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/frexp/vector/const.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,15 @@
-SKIP: FAILED
+struct frexp_result_vec2_f32 {
+  float2 fract;
+  int2 exp;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+
+[numthreads(1, 1, 1)]
+void main() {
+  frexp_result_vec2_f32 v = {float2(0.625f, 0.9375f), int2(1, 2)};
+  frexp_result_vec2_f32 res = v;
+  float2 fract = res.fract;
+  frexp_result_vec2_f32 v_1 = v;
+  int2 exp = v_1.exp;
+}
+
diff --git a/test/tint/builtins/frexp/vector/const_members.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/frexp/vector/const_members.wgsl.expected.ir.dxc.hlsl
index 87b1fbb..208cf49 100644
--- a/test/tint/builtins/frexp/vector/const_members.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/frexp/vector/const_members.wgsl.expected.ir.dxc.hlsl
@@ -1,3 +1,4 @@
+
 [numthreads(1, 1, 1)]
 void main() {
   float2 fract = float2(0.625f, 0.9375f);
diff --git a/test/tint/builtins/frexp/vector/const_members.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/frexp/vector/const_members.wgsl.expected.ir.fxc.hlsl
index 87b1fbb..208cf49 100644
--- a/test/tint/builtins/frexp/vector/const_members.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/frexp/vector/const_members.wgsl.expected.ir.fxc.hlsl
@@ -1,3 +1,4 @@
+
 [numthreads(1, 1, 1)]
 void main() {
   float2 fract = float2(0.625f, 0.9375f);
diff --git a/test/tint/builtins/frexp/vector/mixed.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/frexp/vector/mixed.wgsl.expected.ir.dxc.hlsl
index 0ba40c6..4b532f6 100644
--- a/test/tint/builtins/frexp/vector/mixed.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/frexp/vector/mixed.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,25 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct frexp_result_vec2_f32 {
+  float2 fract;
+  int2 exp;
+};
+
+
+[numthreads(1, 1, 1)]
+void main() {
+  float2 runtime_in = float2(1.25f, 3.75f);
+  frexp_result_vec2_f32 res = {float2(0.625f, 0.9375f), int2(1, 2)};
+  frexp_result_vec2_f32 v = frexp(runtime_in);
+  res = v;
+  frexp_result_vec2_f32 v_1 = {float2(0.625f, 0.9375f), int2(1, 2)};
+  res = v_1;
+  float2 fract = res.fract;
+  int2 exp = res.exp;
+}
+
+DXC validation failure:
+hlsl.hlsl:11:29: error: use of undeclared identifier 'frexp'
+  frexp_result_vec2_f32 v = frexp(runtime_in);
+                            ^
+
diff --git a/test/tint/builtins/frexp/vector/mixed.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/frexp/vector/mixed.wgsl.expected.ir.fxc.hlsl
index 0ba40c6..084a5b9 100644
--- a/test/tint/builtins/frexp/vector/mixed.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/frexp/vector/mixed.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,25 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct frexp_result_vec2_f32 {
+  float2 fract;
+  int2 exp;
+};
+
+
+[numthreads(1, 1, 1)]
+void main() {
+  float2 runtime_in = float2(1.25f, 3.75f);
+  frexp_result_vec2_f32 res = {float2(0.625f, 0.9375f), int2(1, 2)};
+  frexp_result_vec2_f32 v = frexp(runtime_in);
+  res = v;
+  frexp_result_vec2_f32 v_1 = {float2(0.625f, 0.9375f), int2(1, 2)};
+  res = v_1;
+  float2 fract = res.fract;
+  int2 exp = res.exp;
+}
+
+FXC validation failure:
+c:\src\dawn\Shader@0x00000202D5EAFE30(11,29-45): error X3013: 'frexp': no matching 1 parameter intrinsic function
+c:\src\dawn\Shader@0x00000202D5EAFE30(11,29-45): error X3013: Possible intrinsic functions are:
+c:\src\dawn\Shader@0x00000202D5EAFE30(11,29-45): error X3013:     frexp(float|half, out float|half exp)
+
diff --git a/test/tint/builtins/frexp/vector/runtime.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/frexp/vector/runtime.wgsl.expected.ir.dxc.hlsl
index 3f437dc..fea5dd1 100644
--- a/test/tint/builtins/frexp/vector/runtime.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/frexp/vector/runtime.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,23 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Access
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct frexp_result_vec2_f32 {
+  float2 fract;
+  int2 exp;
+};
+
+
+[numthreads(1, 1, 1)]
+void main() {
+  float2 tint_symbol = float2(1.25f, 3.75f);
+  frexp_result_vec2_f32 v = frexp(tint_symbol);
+  frexp_result_vec2_f32 res = v;
+  float2 fract = res.fract;
+  frexp_result_vec2_f32 v_1 = v;
+  int2 exp = v_1.exp;
+}
+
+DXC validation failure:
+hlsl.hlsl:10:29: error: use of undeclared identifier 'frexp'
+  frexp_result_vec2_f32 v = frexp(tint_symbol);
+                            ^
+
diff --git a/test/tint/builtins/frexp/vector/runtime.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/frexp/vector/runtime.wgsl.expected.ir.fxc.hlsl
index 3f437dc..8afe9b5 100644
--- a/test/tint/builtins/frexp/vector/runtime.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/frexp/vector/runtime.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,23 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Access
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct frexp_result_vec2_f32 {
+  float2 fract;
+  int2 exp;
+};
+
+
+[numthreads(1, 1, 1)]
+void main() {
+  float2 tint_symbol = float2(1.25f, 3.75f);
+  frexp_result_vec2_f32 v = frexp(tint_symbol);
+  frexp_result_vec2_f32 res = v;
+  float2 fract = res.fract;
+  frexp_result_vec2_f32 v_1 = v;
+  int2 exp = v_1.exp;
+}
+
+FXC validation failure:
+c:\src\dawn\Shader@0x000001CAEB346C30(10,29-46): error X3013: 'frexp': no matching 1 parameter intrinsic function
+c:\src\dawn\Shader@0x000001CAEB346C30(10,29-46): error X3013: Possible intrinsic functions are:
+c:\src\dawn\Shader@0x000001CAEB346C30(10,29-46): error X3013:     frexp(float|half, out float|half exp)
+
diff --git a/test/tint/builtins/gen/literal/abs/002533.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/abs/002533.wgsl.expected.ir.dxc.hlsl
index 0ba40c6..f0d6f10 100644
--- a/test/tint/builtins/gen/literal/abs/002533.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/abs/002533.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,42 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  float4 prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation float4 VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+float4 abs_002533() {
+  float4 res = (1.0f).xxxx;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store4(0u, asuint(abs_002533()));
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store4(0u, asuint(abs_002533()));
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = abs_002533();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
diff --git a/test/tint/builtins/gen/literal/abs/002533.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/abs/002533.wgsl.expected.ir.fxc.hlsl
index 0ba40c6..f0d6f10 100644
--- a/test/tint/builtins/gen/literal/abs/002533.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/abs/002533.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,42 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  float4 prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation float4 VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+float4 abs_002533() {
+  float4 res = (1.0f).xxxx;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store4(0u, asuint(abs_002533()));
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store4(0u, asuint(abs_002533()));
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = abs_002533();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
diff --git a/test/tint/builtins/gen/literal/abs/005174.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/abs/005174.wgsl.expected.ir.dxc.hlsl
index 0ba40c6..aee94e5 100644
--- a/test/tint/builtins/gen/literal/abs/005174.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/abs/005174.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,42 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  float3 prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation float3 VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+float3 abs_005174() {
+  float3 res = (1.0f).xxx;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store3(0u, asuint(abs_005174()));
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store3(0u, asuint(abs_005174()));
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = abs_005174();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
diff --git a/test/tint/builtins/gen/literal/abs/005174.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/abs/005174.wgsl.expected.ir.fxc.hlsl
index 0ba40c6..aee94e5 100644
--- a/test/tint/builtins/gen/literal/abs/005174.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/abs/005174.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,42 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  float3 prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation float3 VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+float3 abs_005174() {
+  float3 res = (1.0f).xxx;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store3(0u, asuint(abs_005174()));
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store3(0u, asuint(abs_005174()));
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = abs_005174();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
diff --git a/test/tint/builtins/gen/literal/abs/1ce782.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/abs/1ce782.wgsl.expected.ir.dxc.hlsl
index 0ba40c6..56e8ceb 100644
--- a/test/tint/builtins/gen/literal/abs/1ce782.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/abs/1ce782.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,42 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  uint4 prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation uint4 VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+uint4 abs_1ce782() {
+  uint4 res = (1u).xxxx;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store4(0u, abs_1ce782());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store4(0u, abs_1ce782());
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = abs_1ce782();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
diff --git a/test/tint/builtins/gen/literal/abs/1ce782.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/abs/1ce782.wgsl.expected.ir.fxc.hlsl
index 0ba40c6..56e8ceb 100644
--- a/test/tint/builtins/gen/literal/abs/1ce782.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/abs/1ce782.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,42 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  uint4 prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation uint4 VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+uint4 abs_1ce782() {
+  uint4 res = (1u).xxxx;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store4(0u, abs_1ce782());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store4(0u, abs_1ce782());
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = abs_1ce782();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
diff --git a/test/tint/builtins/gen/literal/abs/1e9d53.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/abs/1e9d53.wgsl.expected.ir.dxc.hlsl
index 0ba40c6..b884326 100644
--- a/test/tint/builtins/gen/literal/abs/1e9d53.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/abs/1e9d53.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,42 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  float2 prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation float2 VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+float2 abs_1e9d53() {
+  float2 res = (1.0f).xx;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store2(0u, asuint(abs_1e9d53()));
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store2(0u, asuint(abs_1e9d53()));
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = abs_1e9d53();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
diff --git a/test/tint/builtins/gen/literal/abs/1e9d53.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/abs/1e9d53.wgsl.expected.ir.fxc.hlsl
index 0ba40c6..b884326 100644
--- a/test/tint/builtins/gen/literal/abs/1e9d53.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/abs/1e9d53.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,42 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  float2 prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation float2 VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+float2 abs_1e9d53() {
+  float2 res = (1.0f).xx;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store2(0u, asuint(abs_1e9d53()));
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store2(0u, asuint(abs_1e9d53()));
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = abs_1e9d53();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
diff --git a/test/tint/builtins/gen/literal/abs/2f861b.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/abs/2f861b.wgsl.expected.ir.dxc.hlsl
index 0ba40c6..9b8e3fb 100644
--- a/test/tint/builtins/gen/literal/abs/2f861b.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/abs/2f861b.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,36 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+void abs_2f861b() {
+  float3 res = (1.0f).xxx;
+}
+
+void fragment_main() {
+  abs_2f861b();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  abs_2f861b();
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  abs_2f861b();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  vertex_main_outputs v_2 = {v_1.pos};
+  return v_2;
+}
+
diff --git a/test/tint/builtins/gen/literal/abs/2f861b.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/abs/2f861b.wgsl.expected.ir.fxc.hlsl
index 0ba40c6..9b8e3fb 100644
--- a/test/tint/builtins/gen/literal/abs/2f861b.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/abs/2f861b.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,36 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+void abs_2f861b() {
+  float3 res = (1.0f).xxx;
+}
+
+void fragment_main() {
+  abs_2f861b();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  abs_2f861b();
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  abs_2f861b();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  vertex_main_outputs v_2 = {v_1.pos};
+  return v_2;
+}
+
diff --git a/test/tint/builtins/gen/literal/abs/421ca3.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/abs/421ca3.wgsl.expected.ir.dxc.hlsl
index 0ba40c6..dcfd1d6 100644
--- a/test/tint/builtins/gen/literal/abs/421ca3.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/abs/421ca3.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,42 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  vector<float16_t, 3> prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation vector<float16_t, 3> VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+vector<float16_t, 3> abs_421ca3() {
+  vector<float16_t, 3> res = (float16_t(1.0h)).xxx;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store<vector<float16_t, 3> >(0u, abs_421ca3());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store<vector<float16_t, 3> >(0u, abs_421ca3());
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = abs_421ca3();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
diff --git a/test/tint/builtins/gen/literal/abs/421ca3.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/abs/421ca3.wgsl.expected.ir.fxc.hlsl
index 0ba40c6..79e563a 100644
--- a/test/tint/builtins/gen/literal/abs/421ca3.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/abs/421ca3.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,47 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct VertexOutput {
+  float4 pos;
+  vector<float16_t, 3> prevent_dce;
+};
+
+struct vertex_main_outputs {
+  nointerpolation vector<float16_t, 3> VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+vector<float16_t, 3> abs_421ca3() {
+  vector<float16_t, 3> res = (float16_t(1.0h)).xxx;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store<vector<float16_t, 3> >(0u, abs_421ca3());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store<vector<float16_t, 3> >(0u, abs_421ca3());
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = abs_421ca3();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
+FXC validation failure:
+c:\src\dawn\Shader@0x0000016592B24190(3,10-18): error X3000: syntax error: unexpected token 'float16_t'
+
diff --git a/test/tint/builtins/gen/literal/abs/467cd1.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/abs/467cd1.wgsl.expected.ir.dxc.hlsl
index 0ba40c6..3fd27b9 100644
--- a/test/tint/builtins/gen/literal/abs/467cd1.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/abs/467cd1.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,42 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  uint prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation uint VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+uint abs_467cd1() {
+  uint res = 1u;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store(0u, abs_467cd1());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store(0u, abs_467cd1());
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = abs_467cd1();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
diff --git a/test/tint/builtins/gen/literal/abs/467cd1.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/abs/467cd1.wgsl.expected.ir.fxc.hlsl
index 0ba40c6..3fd27b9 100644
--- a/test/tint/builtins/gen/literal/abs/467cd1.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/abs/467cd1.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,42 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  uint prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation uint VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+uint abs_467cd1() {
+  uint res = 1u;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store(0u, abs_467cd1());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store(0u, abs_467cd1());
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = abs_467cd1();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
diff --git a/test/tint/builtins/gen/literal/abs/4ad288.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/abs/4ad288.wgsl.expected.ir.dxc.hlsl
index 0ba40c6..cd8883e 100644
--- a/test/tint/builtins/gen/literal/abs/4ad288.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/abs/4ad288.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,42 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  int prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation int VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+int abs_4ad288() {
+  int res = 1;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store(0u, asuint(abs_4ad288()));
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store(0u, asuint(abs_4ad288()));
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = abs_4ad288();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
diff --git a/test/tint/builtins/gen/literal/abs/4ad288.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/abs/4ad288.wgsl.expected.ir.fxc.hlsl
index 0ba40c6..cd8883e 100644
--- a/test/tint/builtins/gen/literal/abs/4ad288.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/abs/4ad288.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,42 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  int prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation int VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+int abs_4ad288() {
+  int res = 1;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store(0u, asuint(abs_4ad288()));
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store(0u, asuint(abs_4ad288()));
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = abs_4ad288();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
diff --git a/test/tint/builtins/gen/literal/abs/538d29.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/abs/538d29.wgsl.expected.ir.dxc.hlsl
index 0ba40c6..fa0bc0b 100644
--- a/test/tint/builtins/gen/literal/abs/538d29.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/abs/538d29.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,42 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  vector<float16_t, 4> prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation vector<float16_t, 4> VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+vector<float16_t, 4> abs_538d29() {
+  vector<float16_t, 4> res = (float16_t(1.0h)).xxxx;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store<vector<float16_t, 4> >(0u, abs_538d29());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store<vector<float16_t, 4> >(0u, abs_538d29());
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = abs_538d29();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
diff --git a/test/tint/builtins/gen/literal/abs/538d29.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/abs/538d29.wgsl.expected.ir.fxc.hlsl
index 0ba40c6..297b0ac 100644
--- a/test/tint/builtins/gen/literal/abs/538d29.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/abs/538d29.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,47 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct VertexOutput {
+  float4 pos;
+  vector<float16_t, 4> prevent_dce;
+};
+
+struct vertex_main_outputs {
+  nointerpolation vector<float16_t, 4> VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+vector<float16_t, 4> abs_538d29() {
+  vector<float16_t, 4> res = (float16_t(1.0h)).xxxx;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store<vector<float16_t, 4> >(0u, abs_538d29());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store<vector<float16_t, 4> >(0u, abs_538d29());
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = abs_538d29();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
+FXC validation failure:
+c:\src\dawn\Shader@0x0000020186254860(3,10-18): error X3000: syntax error: unexpected token 'float16_t'
+
diff --git a/test/tint/builtins/gen/literal/abs/577d6e.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/abs/577d6e.wgsl.expected.ir.dxc.hlsl
index 0ba40c6..4c2f55a 100644
--- a/test/tint/builtins/gen/literal/abs/577d6e.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/abs/577d6e.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,36 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+void abs_577d6e() {
+  int2 res = (1).xx;
+}
+
+void fragment_main() {
+  abs_577d6e();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  abs_577d6e();
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  abs_577d6e();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  vertex_main_outputs v_2 = {v_1.pos};
+  return v_2;
+}
+
diff --git a/test/tint/builtins/gen/literal/abs/577d6e.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/abs/577d6e.wgsl.expected.ir.fxc.hlsl
index 0ba40c6..4c2f55a 100644
--- a/test/tint/builtins/gen/literal/abs/577d6e.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/abs/577d6e.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,36 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+void abs_577d6e() {
+  int2 res = (1).xx;
+}
+
+void fragment_main() {
+  abs_577d6e();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  abs_577d6e();
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  abs_577d6e();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  vertex_main_outputs v_2 = {v_1.pos};
+  return v_2;
+}
+
diff --git a/test/tint/builtins/gen/literal/abs/5a8af1.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/abs/5a8af1.wgsl.expected.ir.dxc.hlsl
index 0ba40c6..f78047e 100644
--- a/test/tint/builtins/gen/literal/abs/5a8af1.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/abs/5a8af1.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,36 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+void abs_5a8af1() {
+  int res = 1;
+}
+
+void fragment_main() {
+  abs_5a8af1();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  abs_5a8af1();
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  abs_5a8af1();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  vertex_main_outputs v_2 = {v_1.pos};
+  return v_2;
+}
+
diff --git a/test/tint/builtins/gen/literal/abs/5a8af1.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/abs/5a8af1.wgsl.expected.ir.fxc.hlsl
index 0ba40c6..f78047e 100644
--- a/test/tint/builtins/gen/literal/abs/5a8af1.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/abs/5a8af1.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,36 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+void abs_5a8af1() {
+  int res = 1;
+}
+
+void fragment_main() {
+  abs_5a8af1();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  abs_5a8af1();
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  abs_5a8af1();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  vertex_main_outputs v_2 = {v_1.pos};
+  return v_2;
+}
+
diff --git a/test/tint/builtins/gen/literal/abs/5ad50a.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/abs/5ad50a.wgsl.expected.ir.dxc.hlsl
index 0ba40c6..6aee4a7 100644
--- a/test/tint/builtins/gen/literal/abs/5ad50a.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/abs/5ad50a.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,42 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  int3 prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation int3 VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+int3 abs_5ad50a() {
+  int3 res = (1).xxx;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store3(0u, asuint(abs_5ad50a()));
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store3(0u, asuint(abs_5ad50a()));
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = abs_5ad50a();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
diff --git a/test/tint/builtins/gen/literal/abs/5ad50a.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/abs/5ad50a.wgsl.expected.ir.fxc.hlsl
index 0ba40c6..6aee4a7 100644
--- a/test/tint/builtins/gen/literal/abs/5ad50a.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/abs/5ad50a.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,42 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  int3 prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation int3 VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+int3 abs_5ad50a() {
+  int3 res = (1).xxx;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store3(0u, asuint(abs_5ad50a()));
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store3(0u, asuint(abs_5ad50a()));
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = abs_5ad50a();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
diff --git a/test/tint/builtins/gen/literal/abs/5ae4fe.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/abs/5ae4fe.wgsl.expected.ir.dxc.hlsl
index 0ba40c6..c1d53d7 100644
--- a/test/tint/builtins/gen/literal/abs/5ae4fe.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/abs/5ae4fe.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,42 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  vector<float16_t, 2> prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation vector<float16_t, 2> VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+vector<float16_t, 2> abs_5ae4fe() {
+  vector<float16_t, 2> res = (float16_t(1.0h)).xx;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store<vector<float16_t, 2> >(0u, abs_5ae4fe());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store<vector<float16_t, 2> >(0u, abs_5ae4fe());
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = abs_5ae4fe();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
diff --git a/test/tint/builtins/gen/literal/abs/5ae4fe.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/abs/5ae4fe.wgsl.expected.ir.fxc.hlsl
index 0ba40c6..1f8bf33 100644
--- a/test/tint/builtins/gen/literal/abs/5ae4fe.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/abs/5ae4fe.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,47 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct VertexOutput {
+  float4 pos;
+  vector<float16_t, 2> prevent_dce;
+};
+
+struct vertex_main_outputs {
+  nointerpolation vector<float16_t, 2> VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+vector<float16_t, 2> abs_5ae4fe() {
+  vector<float16_t, 2> res = (float16_t(1.0h)).xx;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store<vector<float16_t, 2> >(0u, abs_5ae4fe());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store<vector<float16_t, 2> >(0u, abs_5ae4fe());
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = abs_5ae4fe();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
+FXC validation failure:
+c:\src\dawn\Shader@0x000002034A96D5D0(3,10-18): error X3000: syntax error: unexpected token 'float16_t'
+
diff --git a/test/tint/builtins/gen/literal/abs/7326de.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/abs/7326de.wgsl.expected.ir.dxc.hlsl
index 0ba40c6..d58bb64 100644
--- a/test/tint/builtins/gen/literal/abs/7326de.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/abs/7326de.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,42 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  uint3 prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation uint3 VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+uint3 abs_7326de() {
+  uint3 res = (1u).xxx;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store3(0u, abs_7326de());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store3(0u, abs_7326de());
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = abs_7326de();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
diff --git a/test/tint/builtins/gen/literal/abs/7326de.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/abs/7326de.wgsl.expected.ir.fxc.hlsl
index 0ba40c6..d58bb64 100644
--- a/test/tint/builtins/gen/literal/abs/7326de.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/abs/7326de.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,42 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  uint3 prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation uint3 VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+uint3 abs_7326de() {
+  uint3 res = (1u).xxx;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store3(0u, abs_7326de());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store3(0u, abs_7326de());
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = abs_7326de();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
diff --git a/test/tint/builtins/gen/literal/abs/7f28e6.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/abs/7f28e6.wgsl.expected.ir.dxc.hlsl
index 0ba40c6..1293831 100644
--- a/test/tint/builtins/gen/literal/abs/7f28e6.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/abs/7f28e6.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,42 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  uint2 prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation uint2 VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+uint2 abs_7f28e6() {
+  uint2 res = (1u).xx;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store2(0u, abs_7f28e6());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store2(0u, abs_7f28e6());
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = abs_7f28e6();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
diff --git a/test/tint/builtins/gen/literal/abs/7f28e6.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/abs/7f28e6.wgsl.expected.ir.fxc.hlsl
index 0ba40c6..1293831 100644
--- a/test/tint/builtins/gen/literal/abs/7f28e6.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/abs/7f28e6.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,42 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  uint2 prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation uint2 VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+uint2 abs_7f28e6() {
+  uint2 res = (1u).xx;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store2(0u, abs_7f28e6());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store2(0u, abs_7f28e6());
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = abs_7f28e6();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
diff --git a/test/tint/builtins/gen/literal/abs/7faa9e.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/abs/7faa9e.wgsl.expected.ir.dxc.hlsl
index 0ba40c6..51c779f 100644
--- a/test/tint/builtins/gen/literal/abs/7faa9e.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/abs/7faa9e.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,42 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  int2 prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation int2 VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+int2 abs_7faa9e() {
+  int2 res = (1).xx;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store2(0u, asuint(abs_7faa9e()));
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store2(0u, asuint(abs_7faa9e()));
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = abs_7faa9e();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
diff --git a/test/tint/builtins/gen/literal/abs/7faa9e.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/abs/7faa9e.wgsl.expected.ir.fxc.hlsl
index 0ba40c6..51c779f 100644
--- a/test/tint/builtins/gen/literal/abs/7faa9e.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/abs/7faa9e.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,42 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  int2 prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation int2 VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+int2 abs_7faa9e() {
+  int2 res = (1).xx;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store2(0u, asuint(abs_7faa9e()));
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store2(0u, asuint(abs_7faa9e()));
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = abs_7faa9e();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
diff --git a/test/tint/builtins/gen/literal/abs/82ff9d.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/abs/82ff9d.wgsl.expected.ir.dxc.hlsl
index 0ba40c6..8db3621 100644
--- a/test/tint/builtins/gen/literal/abs/82ff9d.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/abs/82ff9d.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,36 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+void abs_82ff9d() {
+  float2 res = (1.0f).xx;
+}
+
+void fragment_main() {
+  abs_82ff9d();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  abs_82ff9d();
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  abs_82ff9d();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  vertex_main_outputs v_2 = {v_1.pos};
+  return v_2;
+}
+
diff --git a/test/tint/builtins/gen/literal/abs/82ff9d.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/abs/82ff9d.wgsl.expected.ir.fxc.hlsl
index 0ba40c6..8db3621 100644
--- a/test/tint/builtins/gen/literal/abs/82ff9d.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/abs/82ff9d.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,36 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+void abs_82ff9d() {
+  float2 res = (1.0f).xx;
+}
+
+void fragment_main() {
+  abs_82ff9d();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  abs_82ff9d();
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  abs_82ff9d();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  vertex_main_outputs v_2 = {v_1.pos};
+  return v_2;
+}
+
diff --git a/test/tint/builtins/gen/literal/abs/8ca9b1.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/abs/8ca9b1.wgsl.expected.ir.dxc.hlsl
index 0ba40c6..d97b1df 100644
--- a/test/tint/builtins/gen/literal/abs/8ca9b1.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/abs/8ca9b1.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,36 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+void abs_8ca9b1() {
+  int4 res = (1).xxxx;
+}
+
+void fragment_main() {
+  abs_8ca9b1();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  abs_8ca9b1();
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  abs_8ca9b1();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  vertex_main_outputs v_2 = {v_1.pos};
+  return v_2;
+}
+
diff --git a/test/tint/builtins/gen/literal/abs/8ca9b1.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/abs/8ca9b1.wgsl.expected.ir.fxc.hlsl
index 0ba40c6..d97b1df 100644
--- a/test/tint/builtins/gen/literal/abs/8ca9b1.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/abs/8ca9b1.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,36 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+void abs_8ca9b1() {
+  int4 res = (1).xxxx;
+}
+
+void fragment_main() {
+  abs_8ca9b1();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  abs_8ca9b1();
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  abs_8ca9b1();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  vertex_main_outputs v_2 = {v_1.pos};
+  return v_2;
+}
+
diff --git a/test/tint/builtins/gen/literal/abs/9c80a6.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/abs/9c80a6.wgsl.expected.ir.dxc.hlsl
index 0ba40c6..d66ea78 100644
--- a/test/tint/builtins/gen/literal/abs/9c80a6.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/abs/9c80a6.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,42 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  int4 prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation int4 VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+int4 abs_9c80a6() {
+  int4 res = (1).xxxx;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store4(0u, asuint(abs_9c80a6()));
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store4(0u, asuint(abs_9c80a6()));
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = abs_9c80a6();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
diff --git a/test/tint/builtins/gen/literal/abs/9c80a6.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/abs/9c80a6.wgsl.expected.ir.fxc.hlsl
index 0ba40c6..d66ea78 100644
--- a/test/tint/builtins/gen/literal/abs/9c80a6.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/abs/9c80a6.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,42 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  int4 prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation int4 VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+int4 abs_9c80a6() {
+  int4 res = (1).xxxx;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store4(0u, asuint(abs_9c80a6()));
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store4(0u, asuint(abs_9c80a6()));
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = abs_9c80a6();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
diff --git a/test/tint/builtins/gen/literal/abs/aedb6d.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/abs/aedb6d.wgsl.expected.ir.dxc.hlsl
index 0ba40c6..0cfd8e2 100644
--- a/test/tint/builtins/gen/literal/abs/aedb6d.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/abs/aedb6d.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,36 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+void abs_aedb6d() {
+  float res = 1.0f;
+}
+
+void fragment_main() {
+  abs_aedb6d();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  abs_aedb6d();
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  abs_aedb6d();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  vertex_main_outputs v_2 = {v_1.pos};
+  return v_2;
+}
+
diff --git a/test/tint/builtins/gen/literal/abs/aedb6d.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/abs/aedb6d.wgsl.expected.ir.fxc.hlsl
index 0ba40c6..0cfd8e2 100644
--- a/test/tint/builtins/gen/literal/abs/aedb6d.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/abs/aedb6d.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,36 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+void abs_aedb6d() {
+  float res = 1.0f;
+}
+
+void fragment_main() {
+  abs_aedb6d();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  abs_aedb6d();
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  abs_aedb6d();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  vertex_main_outputs v_2 = {v_1.pos};
+  return v_2;
+}
+
diff --git a/test/tint/builtins/gen/literal/abs/b96037.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/abs/b96037.wgsl.expected.ir.dxc.hlsl
index 0ba40c6..89859d7 100644
--- a/test/tint/builtins/gen/literal/abs/b96037.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/abs/b96037.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,42 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  float prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation float VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+float abs_b96037() {
+  float res = 1.0f;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store(0u, asuint(abs_b96037()));
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store(0u, asuint(abs_b96037()));
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = abs_b96037();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
diff --git a/test/tint/builtins/gen/literal/abs/b96037.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/abs/b96037.wgsl.expected.ir.fxc.hlsl
index 0ba40c6..89859d7 100644
--- a/test/tint/builtins/gen/literal/abs/b96037.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/abs/b96037.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,42 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  float prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation float VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+float abs_b96037() {
+  float res = 1.0f;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store(0u, asuint(abs_b96037()));
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store(0u, asuint(abs_b96037()));
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = abs_b96037();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
diff --git a/test/tint/builtins/gen/literal/abs/c3321c.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/abs/c3321c.wgsl.expected.ir.dxc.hlsl
index 0ba40c6..3b3b07b 100644
--- a/test/tint/builtins/gen/literal/abs/c3321c.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/abs/c3321c.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,36 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+void abs_c3321c() {
+  int3 res = (1).xxx;
+}
+
+void fragment_main() {
+  abs_c3321c();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  abs_c3321c();
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  abs_c3321c();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  vertex_main_outputs v_2 = {v_1.pos};
+  return v_2;
+}
+
diff --git a/test/tint/builtins/gen/literal/abs/c3321c.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/abs/c3321c.wgsl.expected.ir.fxc.hlsl
index 0ba40c6..3b3b07b 100644
--- a/test/tint/builtins/gen/literal/abs/c3321c.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/abs/c3321c.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,36 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+void abs_c3321c() {
+  int3 res = (1).xxx;
+}
+
+void fragment_main() {
+  abs_c3321c();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  abs_c3321c();
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  abs_c3321c();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  vertex_main_outputs v_2 = {v_1.pos};
+  return v_2;
+}
+
diff --git a/test/tint/builtins/gen/literal/abs/e28785.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/abs/e28785.wgsl.expected.ir.dxc.hlsl
index 0ba40c6..a834ff1 100644
--- a/test/tint/builtins/gen/literal/abs/e28785.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/abs/e28785.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,36 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+void abs_e28785() {
+  float4 res = (1.0f).xxxx;
+}
+
+void fragment_main() {
+  abs_e28785();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  abs_e28785();
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  abs_e28785();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  vertex_main_outputs v_2 = {v_1.pos};
+  return v_2;
+}
+
diff --git a/test/tint/builtins/gen/literal/abs/e28785.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/abs/e28785.wgsl.expected.ir.fxc.hlsl
index 0ba40c6..a834ff1 100644
--- a/test/tint/builtins/gen/literal/abs/e28785.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/abs/e28785.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,36 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+void abs_e28785() {
+  float4 res = (1.0f).xxxx;
+}
+
+void fragment_main() {
+  abs_e28785();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  abs_e28785();
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  abs_e28785();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  vertex_main_outputs v_2 = {v_1.pos};
+  return v_2;
+}
+
diff --git a/test/tint/builtins/gen/literal/abs/fd247f.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/abs/fd247f.wgsl.expected.ir.dxc.hlsl
index 0ba40c6..bbc8a67 100644
--- a/test/tint/builtins/gen/literal/abs/fd247f.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/abs/fd247f.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,42 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  float16_t prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation float16_t VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+float16_t abs_fd247f() {
+  float16_t res = float16_t(1.0h);
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store<float16_t>(0u, abs_fd247f());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store<float16_t>(0u, abs_fd247f());
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = abs_fd247f();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
diff --git a/test/tint/builtins/gen/literal/abs/fd247f.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/abs/fd247f.wgsl.expected.ir.fxc.hlsl
index 0ba40c6..dbac306 100644
--- a/test/tint/builtins/gen/literal/abs/fd247f.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/abs/fd247f.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,47 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct VertexOutput {
+  float4 pos;
+  float16_t prevent_dce;
+};
+
+struct vertex_main_outputs {
+  nointerpolation float16_t VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+float16_t abs_fd247f() {
+  float16_t res = float16_t(1.0h);
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store<float16_t>(0u, abs_fd247f());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store<float16_t>(0u, abs_fd247f());
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = abs_fd247f();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
+FXC validation failure:
+c:\src\dawn\Shader@0x00000224A7EFE2F0(3,3-11): error X3000: unrecognized identifier 'float16_t'
+
diff --git a/test/tint/builtins/gen/literal/acos/004aff.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/acos/004aff.wgsl.expected.ir.dxc.hlsl
index 0ba40c6..236820c 100644
--- a/test/tint/builtins/gen/literal/acos/004aff.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/acos/004aff.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,42 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  vector<float16_t, 2> prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation vector<float16_t, 2> VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+vector<float16_t, 2> acos_004aff() {
+  vector<float16_t, 2> res = (float16_t(0.25048828125h)).xx;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store<vector<float16_t, 2> >(0u, acos_004aff());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store<vector<float16_t, 2> >(0u, acos_004aff());
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = acos_004aff();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
diff --git a/test/tint/builtins/gen/literal/acos/004aff.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/acos/004aff.wgsl.expected.ir.fxc.hlsl
index 0ba40c6..0b958b3 100644
--- a/test/tint/builtins/gen/literal/acos/004aff.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/acos/004aff.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,47 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct VertexOutput {
+  float4 pos;
+  vector<float16_t, 2> prevent_dce;
+};
+
+struct vertex_main_outputs {
+  nointerpolation vector<float16_t, 2> VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+vector<float16_t, 2> acos_004aff() {
+  vector<float16_t, 2> res = (float16_t(0.25048828125h)).xx;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store<vector<float16_t, 2> >(0u, acos_004aff());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store<vector<float16_t, 2> >(0u, acos_004aff());
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = acos_004aff();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
+FXC validation failure:
+c:\src\dawn\Shader@0x0000020D8F1BF950(3,10-18): error X3000: syntax error: unexpected token 'float16_t'
+
diff --git a/test/tint/builtins/gen/literal/acos/069188.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/acos/069188.wgsl.expected.ir.dxc.hlsl
index 0ba40c6..7eaceee 100644
--- a/test/tint/builtins/gen/literal/acos/069188.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/acos/069188.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,36 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+void acos_069188() {
+  float3 res = (0.25f).xxx;
+}
+
+void fragment_main() {
+  acos_069188();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  acos_069188();
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  acos_069188();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  vertex_main_outputs v_2 = {v_1.pos};
+  return v_2;
+}
+
diff --git a/test/tint/builtins/gen/literal/acos/069188.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/acos/069188.wgsl.expected.ir.fxc.hlsl
index 0ba40c6..7eaceee 100644
--- a/test/tint/builtins/gen/literal/acos/069188.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/acos/069188.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,36 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+void acos_069188() {
+  float3 res = (0.25f).xxx;
+}
+
+void fragment_main() {
+  acos_069188();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  acos_069188();
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  acos_069188();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  vertex_main_outputs v_2 = {v_1.pos};
+  return v_2;
+}
+
diff --git a/test/tint/builtins/gen/literal/acos/15d35b.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/acos/15d35b.wgsl.expected.ir.dxc.hlsl
index 0ba40c6..c30c4aa 100644
--- a/test/tint/builtins/gen/literal/acos/15d35b.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/acos/15d35b.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,36 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+void acos_15d35b() {
+  float2 res = (0.25f).xx;
+}
+
+void fragment_main() {
+  acos_15d35b();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  acos_15d35b();
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  acos_15d35b();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  vertex_main_outputs v_2 = {v_1.pos};
+  return v_2;
+}
+
diff --git a/test/tint/builtins/gen/literal/acos/15d35b.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/acos/15d35b.wgsl.expected.ir.fxc.hlsl
index 0ba40c6..c30c4aa 100644
--- a/test/tint/builtins/gen/literal/acos/15d35b.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/acos/15d35b.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,36 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+void acos_15d35b() {
+  float2 res = (0.25f).xx;
+}
+
+void fragment_main() {
+  acos_15d35b();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  acos_15d35b();
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  acos_15d35b();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  vertex_main_outputs v_2 = {v_1.pos};
+  return v_2;
+}
+
diff --git a/test/tint/builtins/gen/literal/acos/203628.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/acos/203628.wgsl.expected.ir.dxc.hlsl
index 0ba40c6..3b6c9d6 100644
--- a/test/tint/builtins/gen/literal/acos/203628.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/acos/203628.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,42 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  vector<float16_t, 4> prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation vector<float16_t, 4> VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+vector<float16_t, 4> acos_203628() {
+  vector<float16_t, 4> res = (float16_t(0.25048828125h)).xxxx;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store<vector<float16_t, 4> >(0u, acos_203628());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store<vector<float16_t, 4> >(0u, acos_203628());
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = acos_203628();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
diff --git a/test/tint/builtins/gen/literal/acos/203628.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/acos/203628.wgsl.expected.ir.fxc.hlsl
index 0ba40c6..f71e405 100644
--- a/test/tint/builtins/gen/literal/acos/203628.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/acos/203628.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,47 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct VertexOutput {
+  float4 pos;
+  vector<float16_t, 4> prevent_dce;
+};
+
+struct vertex_main_outputs {
+  nointerpolation vector<float16_t, 4> VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+vector<float16_t, 4> acos_203628() {
+  vector<float16_t, 4> res = (float16_t(0.25048828125h)).xxxx;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store<vector<float16_t, 4> >(0u, acos_203628());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store<vector<float16_t, 4> >(0u, acos_203628());
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = acos_203628();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
+FXC validation failure:
+c:\src\dawn\Shader@0x00000266E49D5DF0(3,10-18): error X3000: syntax error: unexpected token 'float16_t'
+
diff --git a/test/tint/builtins/gen/literal/acos/303e3d.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/acos/303e3d.wgsl.expected.ir.dxc.hlsl
index 0ba40c6..7016537 100644
--- a/test/tint/builtins/gen/literal/acos/303e3d.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/acos/303e3d.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,42 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  float16_t prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation float16_t VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+float16_t acos_303e3d() {
+  float16_t res = float16_t(0.25048828125h);
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store<float16_t>(0u, acos_303e3d());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store<float16_t>(0u, acos_303e3d());
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = acos_303e3d();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
diff --git a/test/tint/builtins/gen/literal/acos/303e3d.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/acos/303e3d.wgsl.expected.ir.fxc.hlsl
index 0ba40c6..24c1b61 100644
--- a/test/tint/builtins/gen/literal/acos/303e3d.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/acos/303e3d.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,47 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct VertexOutput {
+  float4 pos;
+  float16_t prevent_dce;
+};
+
+struct vertex_main_outputs {
+  nointerpolation float16_t VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+float16_t acos_303e3d() {
+  float16_t res = float16_t(0.25048828125h);
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store<float16_t>(0u, acos_303e3d());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store<float16_t>(0u, acos_303e3d());
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = acos_303e3d();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
+FXC validation failure:
+c:\src\dawn\Shader@0x00000242723E0400(3,3-11): error X3000: unrecognized identifier 'float16_t'
+
diff --git a/test/tint/builtins/gen/literal/acos/489247.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/acos/489247.wgsl.expected.ir.dxc.hlsl
index 0ba40c6..32086e0 100644
--- a/test/tint/builtins/gen/literal/acos/489247.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/acos/489247.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,42 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  float prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation float VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+float acos_489247() {
+  float res = 0.25f;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store(0u, asuint(acos_489247()));
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store(0u, asuint(acos_489247()));
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = acos_489247();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
diff --git a/test/tint/builtins/gen/literal/acos/489247.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/acos/489247.wgsl.expected.ir.fxc.hlsl
index 0ba40c6..32086e0 100644
--- a/test/tint/builtins/gen/literal/acos/489247.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/acos/489247.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,42 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  float prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation float VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+float acos_489247() {
+  float res = 0.25f;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store(0u, asuint(acos_489247()));
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store(0u, asuint(acos_489247()));
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = acos_489247();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
diff --git a/test/tint/builtins/gen/literal/acos/4dac75.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/acos/4dac75.wgsl.expected.ir.dxc.hlsl
index 0ba40c6..068eb0d 100644
--- a/test/tint/builtins/gen/literal/acos/4dac75.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/acos/4dac75.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,36 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+void acos_4dac75() {
+  float4 res = (0.25f).xxxx;
+}
+
+void fragment_main() {
+  acos_4dac75();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  acos_4dac75();
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  acos_4dac75();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  vertex_main_outputs v_2 = {v_1.pos};
+  return v_2;
+}
+
diff --git a/test/tint/builtins/gen/literal/acos/4dac75.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/acos/4dac75.wgsl.expected.ir.fxc.hlsl
index 0ba40c6..068eb0d 100644
--- a/test/tint/builtins/gen/literal/acos/4dac75.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/acos/4dac75.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,36 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+void acos_4dac75() {
+  float4 res = (0.25f).xxxx;
+}
+
+void fragment_main() {
+  acos_4dac75();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  acos_4dac75();
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  acos_4dac75();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  vertex_main_outputs v_2 = {v_1.pos};
+  return v_2;
+}
+
diff --git a/test/tint/builtins/gen/literal/acos/5e9ad2.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/acos/5e9ad2.wgsl.expected.ir.dxc.hlsl
index 0ba40c6..83d20e7 100644
--- a/test/tint/builtins/gen/literal/acos/5e9ad2.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/acos/5e9ad2.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,36 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+void acos_5e9ad2() {
+  float res = 0.25f;
+}
+
+void fragment_main() {
+  acos_5e9ad2();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  acos_5e9ad2();
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  acos_5e9ad2();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  vertex_main_outputs v_2 = {v_1.pos};
+  return v_2;
+}
+
diff --git a/test/tint/builtins/gen/literal/acos/5e9ad2.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/acos/5e9ad2.wgsl.expected.ir.fxc.hlsl
index 0ba40c6..83d20e7 100644
--- a/test/tint/builtins/gen/literal/acos/5e9ad2.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/acos/5e9ad2.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,36 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+void acos_5e9ad2() {
+  float res = 0.25f;
+}
+
+void fragment_main() {
+  acos_5e9ad2();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  acos_5e9ad2();
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  acos_5e9ad2();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  vertex_main_outputs v_2 = {v_1.pos};
+  return v_2;
+}
+
diff --git a/test/tint/builtins/gen/literal/acos/8e2acf.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/acos/8e2acf.wgsl.expected.ir.dxc.hlsl
index 0ba40c6..e408907 100644
--- a/test/tint/builtins/gen/literal/acos/8e2acf.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/acos/8e2acf.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,42 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  float4 prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation float4 VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+float4 acos_8e2acf() {
+  float4 res = (0.25f).xxxx;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store4(0u, asuint(acos_8e2acf()));
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store4(0u, asuint(acos_8e2acf()));
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = acos_8e2acf();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
diff --git a/test/tint/builtins/gen/literal/acos/8e2acf.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/acos/8e2acf.wgsl.expected.ir.fxc.hlsl
index 0ba40c6..e408907 100644
--- a/test/tint/builtins/gen/literal/acos/8e2acf.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/acos/8e2acf.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,42 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  float4 prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation float4 VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+float4 acos_8e2acf() {
+  float4 res = (0.25f).xxxx;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store4(0u, asuint(acos_8e2acf()));
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store4(0u, asuint(acos_8e2acf()));
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = acos_8e2acf();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
diff --git a/test/tint/builtins/gen/literal/acos/a610c4.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/acos/a610c4.wgsl.expected.ir.dxc.hlsl
index 0ba40c6..6148850 100644
--- a/test/tint/builtins/gen/literal/acos/a610c4.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/acos/a610c4.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,42 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  float3 prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation float3 VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+float3 acos_a610c4() {
+  float3 res = (0.25f).xxx;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store3(0u, asuint(acos_a610c4()));
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store3(0u, asuint(acos_a610c4()));
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = acos_a610c4();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
diff --git a/test/tint/builtins/gen/literal/acos/a610c4.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/acos/a610c4.wgsl.expected.ir.fxc.hlsl
index 0ba40c6..6148850 100644
--- a/test/tint/builtins/gen/literal/acos/a610c4.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/acos/a610c4.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,42 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  float3 prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation float3 VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+float3 acos_a610c4() {
+  float3 res = (0.25f).xxx;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store3(0u, asuint(acos_a610c4()));
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store3(0u, asuint(acos_a610c4()));
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = acos_a610c4();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
diff --git a/test/tint/builtins/gen/literal/acos/dfc915.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/acos/dfc915.wgsl.expected.ir.dxc.hlsl
index 0ba40c6..87bde38 100644
--- a/test/tint/builtins/gen/literal/acos/dfc915.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/acos/dfc915.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,42 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  float2 prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation float2 VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+float2 acos_dfc915() {
+  float2 res = (0.25f).xx;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store2(0u, asuint(acos_dfc915()));
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store2(0u, asuint(acos_dfc915()));
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = acos_dfc915();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
diff --git a/test/tint/builtins/gen/literal/acos/dfc915.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/acos/dfc915.wgsl.expected.ir.fxc.hlsl
index 0ba40c6..87bde38 100644
--- a/test/tint/builtins/gen/literal/acos/dfc915.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/acos/dfc915.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,42 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  float2 prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation float2 VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+float2 acos_dfc915() {
+  float2 res = (0.25f).xx;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store2(0u, asuint(acos_dfc915()));
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store2(0u, asuint(acos_dfc915()));
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = acos_dfc915();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
diff --git a/test/tint/builtins/gen/literal/acos/f47057.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/acos/f47057.wgsl.expected.ir.dxc.hlsl
index 0ba40c6..39296de 100644
--- a/test/tint/builtins/gen/literal/acos/f47057.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/acos/f47057.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,42 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  vector<float16_t, 3> prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation vector<float16_t, 3> VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+vector<float16_t, 3> acos_f47057() {
+  vector<float16_t, 3> res = (float16_t(0.25048828125h)).xxx;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store<vector<float16_t, 3> >(0u, acos_f47057());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store<vector<float16_t, 3> >(0u, acos_f47057());
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = acos_f47057();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
diff --git a/test/tint/builtins/gen/literal/acos/f47057.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/acos/f47057.wgsl.expected.ir.fxc.hlsl
index 0ba40c6..de1c208 100644
--- a/test/tint/builtins/gen/literal/acos/f47057.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/acos/f47057.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,47 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct VertexOutput {
+  float4 pos;
+  vector<float16_t, 3> prevent_dce;
+};
+
+struct vertex_main_outputs {
+  nointerpolation vector<float16_t, 3> VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+vector<float16_t, 3> acos_f47057() {
+  vector<float16_t, 3> res = (float16_t(0.25048828125h)).xxx;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store<vector<float16_t, 3> >(0u, acos_f47057());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store<vector<float16_t, 3> >(0u, acos_f47057());
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = acos_f47057();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
+FXC validation failure:
+c:\src\dawn\Shader@0x000002370E1ED030(3,10-18): error X3000: syntax error: unexpected token 'float16_t'
+
diff --git a/test/tint/builtins/gen/literal/acosh/17260e.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/acosh/17260e.wgsl.expected.ir.dxc.hlsl
index 0ba40c6..2bc851d 100644
--- a/test/tint/builtins/gen/literal/acosh/17260e.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/acosh/17260e.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,36 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+void acosh_17260e() {
+  float2 res = (1.0f).xx;
+}
+
+void fragment_main() {
+  acosh_17260e();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  acosh_17260e();
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  acosh_17260e();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  vertex_main_outputs v_2 = {v_1.pos};
+  return v_2;
+}
+
diff --git a/test/tint/builtins/gen/literal/acosh/17260e.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/acosh/17260e.wgsl.expected.ir.fxc.hlsl
index 0ba40c6..2bc851d 100644
--- a/test/tint/builtins/gen/literal/acosh/17260e.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/acosh/17260e.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,36 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+void acosh_17260e() {
+  float2 res = (1.0f).xx;
+}
+
+void fragment_main() {
+  acosh_17260e();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  acosh_17260e();
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  acosh_17260e();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  vertex_main_outputs v_2 = {v_1.pos};
+  return v_2;
+}
+
diff --git a/test/tint/builtins/gen/literal/acosh/3433e8.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/acosh/3433e8.wgsl.expected.ir.dxc.hlsl
index 0ba40c6..769245d 100644
--- a/test/tint/builtins/gen/literal/acosh/3433e8.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/acosh/3433e8.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,36 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+void acosh_3433e8() {
+  float res = 1.0f;
+}
+
+void fragment_main() {
+  acosh_3433e8();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  acosh_3433e8();
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  acosh_3433e8();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  vertex_main_outputs v_2 = {v_1.pos};
+  return v_2;
+}
+
diff --git a/test/tint/builtins/gen/literal/acosh/3433e8.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/acosh/3433e8.wgsl.expected.ir.fxc.hlsl
index 0ba40c6..769245d 100644
--- a/test/tint/builtins/gen/literal/acosh/3433e8.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/acosh/3433e8.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,36 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+void acosh_3433e8() {
+  float res = 1.0f;
+}
+
+void fragment_main() {
+  acosh_3433e8();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  acosh_3433e8();
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  acosh_3433e8();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  vertex_main_outputs v_2 = {v_1.pos};
+  return v_2;
+}
+
diff --git a/test/tint/builtins/gen/literal/acosh/490aae.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/acosh/490aae.wgsl.expected.ir.dxc.hlsl
index 0ba40c6..fb0adf2 100644
--- a/test/tint/builtins/gen/literal/acosh/490aae.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/acosh/490aae.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,36 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+void acosh_490aae() {
+  float4 res = (1.0f).xxxx;
+}
+
+void fragment_main() {
+  acosh_490aae();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  acosh_490aae();
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  acosh_490aae();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  vertex_main_outputs v_2 = {v_1.pos};
+  return v_2;
+}
+
diff --git a/test/tint/builtins/gen/literal/acosh/490aae.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/acosh/490aae.wgsl.expected.ir.fxc.hlsl
index 0ba40c6..fb0adf2 100644
--- a/test/tint/builtins/gen/literal/acosh/490aae.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/acosh/490aae.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,36 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+void acosh_490aae() {
+  float4 res = (1.0f).xxxx;
+}
+
+void fragment_main() {
+  acosh_490aae();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  acosh_490aae();
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  acosh_490aae();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  vertex_main_outputs v_2 = {v_1.pos};
+  return v_2;
+}
+
diff --git a/test/tint/builtins/gen/literal/acosh/5f49d8.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/acosh/5f49d8.wgsl.expected.ir.dxc.hlsl
index 0ba40c6..b4ff7e1 100644
--- a/test/tint/builtins/gen/literal/acosh/5f49d8.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/acosh/5f49d8.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,42 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  vector<float16_t, 2> prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation vector<float16_t, 2> VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+vector<float16_t, 2> acosh_5f49d8() {
+  vector<float16_t, 2> res = (float16_t(0.99951171875h)).xx;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store<vector<float16_t, 2> >(0u, acosh_5f49d8());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store<vector<float16_t, 2> >(0u, acosh_5f49d8());
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = acosh_5f49d8();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
diff --git a/test/tint/builtins/gen/literal/acosh/5f49d8.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/acosh/5f49d8.wgsl.expected.ir.fxc.hlsl
index 0ba40c6..ca0c367 100644
--- a/test/tint/builtins/gen/literal/acosh/5f49d8.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/acosh/5f49d8.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,47 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct VertexOutput {
+  float4 pos;
+  vector<float16_t, 2> prevent_dce;
+};
+
+struct vertex_main_outputs {
+  nointerpolation vector<float16_t, 2> VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+vector<float16_t, 2> acosh_5f49d8() {
+  vector<float16_t, 2> res = (float16_t(0.99951171875h)).xx;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store<vector<float16_t, 2> >(0u, acosh_5f49d8());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store<vector<float16_t, 2> >(0u, acosh_5f49d8());
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = acosh_5f49d8();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
+FXC validation failure:
+c:\src\dawn\Shader@0x00000183DE35C660(3,10-18): error X3000: syntax error: unexpected token 'float16_t'
+
diff --git a/test/tint/builtins/gen/literal/acosh/640883.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/acosh/640883.wgsl.expected.ir.dxc.hlsl
index 0ba40c6..e458037 100644
--- a/test/tint/builtins/gen/literal/acosh/640883.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/acosh/640883.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,42 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  float2 prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation float2 VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+float2 acosh_640883() {
+  float2 res = (1.0f).xx;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store2(0u, asuint(acosh_640883()));
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store2(0u, asuint(acosh_640883()));
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = acosh_640883();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
diff --git a/test/tint/builtins/gen/literal/acosh/640883.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/acosh/640883.wgsl.expected.ir.fxc.hlsl
index 0ba40c6..e458037 100644
--- a/test/tint/builtins/gen/literal/acosh/640883.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/acosh/640883.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,42 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  float2 prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation float2 VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+float2 acosh_640883() {
+  float2 res = (1.0f).xx;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store2(0u, asuint(acosh_640883()));
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store2(0u, asuint(acosh_640883()));
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = acosh_640883();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
diff --git a/test/tint/builtins/gen/literal/acosh/9f213e.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/acosh/9f213e.wgsl.expected.ir.dxc.hlsl
index 0ba40c6..53923a1 100644
--- a/test/tint/builtins/gen/literal/acosh/9f213e.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/acosh/9f213e.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,36 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+void acosh_9f213e() {
+  float3 res = (1.0f).xxx;
+}
+
+void fragment_main() {
+  acosh_9f213e();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  acosh_9f213e();
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  acosh_9f213e();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  vertex_main_outputs v_2 = {v_1.pos};
+  return v_2;
+}
+
diff --git a/test/tint/builtins/gen/literal/acosh/9f213e.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/acosh/9f213e.wgsl.expected.ir.fxc.hlsl
index 0ba40c6..53923a1 100644
--- a/test/tint/builtins/gen/literal/acosh/9f213e.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/acosh/9f213e.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,36 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+void acosh_9f213e() {
+  float3 res = (1.0f).xxx;
+}
+
+void fragment_main() {
+  acosh_9f213e();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  acosh_9f213e();
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  acosh_9f213e();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  vertex_main_outputs v_2 = {v_1.pos};
+  return v_2;
+}
+
diff --git a/test/tint/builtins/gen/literal/acosh/a37dfe.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/acosh/a37dfe.wgsl.expected.ir.dxc.hlsl
index 0ba40c6..baf9d1b 100644
--- a/test/tint/builtins/gen/literal/acosh/a37dfe.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/acosh/a37dfe.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,42 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  float16_t prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation float16_t VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+float16_t acosh_a37dfe() {
+  float16_t res = float16_t(0.99951171875h);
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store<float16_t>(0u, acosh_a37dfe());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store<float16_t>(0u, acosh_a37dfe());
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = acosh_a37dfe();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
diff --git a/test/tint/builtins/gen/literal/acosh/a37dfe.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/acosh/a37dfe.wgsl.expected.ir.fxc.hlsl
index 0ba40c6..d5d08ab 100644
--- a/test/tint/builtins/gen/literal/acosh/a37dfe.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/acosh/a37dfe.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,47 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct VertexOutput {
+  float4 pos;
+  float16_t prevent_dce;
+};
+
+struct vertex_main_outputs {
+  nointerpolation float16_t VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+float16_t acosh_a37dfe() {
+  float16_t res = float16_t(0.99951171875h);
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store<float16_t>(0u, acosh_a37dfe());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store<float16_t>(0u, acosh_a37dfe());
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = acosh_a37dfe();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
+FXC validation failure:
+c:\src\dawn\Shader@0x000001A736B7CB30(3,3-11): error X3000: unrecognized identifier 'float16_t'
+
diff --git a/test/tint/builtins/gen/literal/acosh/d51ccb.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/acosh/d51ccb.wgsl.expected.ir.dxc.hlsl
index 0ba40c6..8b1621d 100644
--- a/test/tint/builtins/gen/literal/acosh/d51ccb.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/acosh/d51ccb.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,42 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  float4 prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation float4 VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+float4 acosh_d51ccb() {
+  float4 res = (1.0f).xxxx;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store4(0u, asuint(acosh_d51ccb()));
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store4(0u, asuint(acosh_d51ccb()));
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = acosh_d51ccb();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
diff --git a/test/tint/builtins/gen/literal/acosh/d51ccb.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/acosh/d51ccb.wgsl.expected.ir.fxc.hlsl
index 0ba40c6..8b1621d 100644
--- a/test/tint/builtins/gen/literal/acosh/d51ccb.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/acosh/d51ccb.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,42 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  float4 prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation float4 VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+float4 acosh_d51ccb() {
+  float4 res = (1.0f).xxxx;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store4(0u, asuint(acosh_d51ccb()));
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store4(0u, asuint(acosh_d51ccb()));
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = acosh_d51ccb();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
diff --git a/test/tint/builtins/gen/literal/acosh/de60d8.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/acosh/de60d8.wgsl.expected.ir.dxc.hlsl
index 0ba40c6..48e0003 100644
--- a/test/tint/builtins/gen/literal/acosh/de60d8.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/acosh/de60d8.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,42 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  vector<float16_t, 4> prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation vector<float16_t, 4> VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+vector<float16_t, 4> acosh_de60d8() {
+  vector<float16_t, 4> res = (float16_t(0.99951171875h)).xxxx;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store<vector<float16_t, 4> >(0u, acosh_de60d8());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store<vector<float16_t, 4> >(0u, acosh_de60d8());
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = acosh_de60d8();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
diff --git a/test/tint/builtins/gen/literal/acosh/de60d8.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/acosh/de60d8.wgsl.expected.ir.fxc.hlsl
index 0ba40c6..5ec6e33 100644
--- a/test/tint/builtins/gen/literal/acosh/de60d8.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/acosh/de60d8.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,47 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct VertexOutput {
+  float4 pos;
+  vector<float16_t, 4> prevent_dce;
+};
+
+struct vertex_main_outputs {
+  nointerpolation vector<float16_t, 4> VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+vector<float16_t, 4> acosh_de60d8() {
+  vector<float16_t, 4> res = (float16_t(0.99951171875h)).xxxx;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store<vector<float16_t, 4> >(0u, acosh_de60d8());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store<vector<float16_t, 4> >(0u, acosh_de60d8());
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = acosh_de60d8();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
+FXC validation failure:
+c:\src\dawn\Shader@0x000001FD38ACCC00(3,10-18): error X3000: syntax error: unexpected token 'float16_t'
+
diff --git a/test/tint/builtins/gen/literal/acosh/e38f5c.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/acosh/e38f5c.wgsl.expected.ir.dxc.hlsl
index 0ba40c6..3e4d2c5 100644
--- a/test/tint/builtins/gen/literal/acosh/e38f5c.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/acosh/e38f5c.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,42 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  float3 prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation float3 VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+float3 acosh_e38f5c() {
+  float3 res = (1.0f).xxx;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store3(0u, asuint(acosh_e38f5c()));
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store3(0u, asuint(acosh_e38f5c()));
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = acosh_e38f5c();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
diff --git a/test/tint/builtins/gen/literal/acosh/e38f5c.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/acosh/e38f5c.wgsl.expected.ir.fxc.hlsl
index 0ba40c6..3e4d2c5 100644
--- a/test/tint/builtins/gen/literal/acosh/e38f5c.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/acosh/e38f5c.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,42 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  float3 prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation float3 VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+float3 acosh_e38f5c() {
+  float3 res = (1.0f).xxx;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store3(0u, asuint(acosh_e38f5c()));
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store3(0u, asuint(acosh_e38f5c()));
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = acosh_e38f5c();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
diff --git a/test/tint/builtins/gen/literal/acosh/ecf2d1.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/acosh/ecf2d1.wgsl.expected.ir.dxc.hlsl
index 0ba40c6..8f25659 100644
--- a/test/tint/builtins/gen/literal/acosh/ecf2d1.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/acosh/ecf2d1.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,42 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  float prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation float VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+float acosh_ecf2d1() {
+  float res = 1.0f;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store(0u, asuint(acosh_ecf2d1()));
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store(0u, asuint(acosh_ecf2d1()));
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = acosh_ecf2d1();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
diff --git a/test/tint/builtins/gen/literal/acosh/ecf2d1.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/acosh/ecf2d1.wgsl.expected.ir.fxc.hlsl
index 0ba40c6..8f25659 100644
--- a/test/tint/builtins/gen/literal/acosh/ecf2d1.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/acosh/ecf2d1.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,42 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  float prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation float VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+float acosh_ecf2d1() {
+  float res = 1.0f;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store(0u, asuint(acosh_ecf2d1()));
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store(0u, asuint(acosh_ecf2d1()));
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = acosh_ecf2d1();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
diff --git a/test/tint/builtins/gen/literal/acosh/f56574.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/acosh/f56574.wgsl.expected.ir.dxc.hlsl
index 0ba40c6..a2d4c6b 100644
--- a/test/tint/builtins/gen/literal/acosh/f56574.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/acosh/f56574.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,42 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  vector<float16_t, 3> prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation vector<float16_t, 3> VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+vector<float16_t, 3> acosh_f56574() {
+  vector<float16_t, 3> res = (float16_t(0.99951171875h)).xxx;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store<vector<float16_t, 3> >(0u, acosh_f56574());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store<vector<float16_t, 3> >(0u, acosh_f56574());
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = acosh_f56574();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
diff --git a/test/tint/builtins/gen/literal/acosh/f56574.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/acosh/f56574.wgsl.expected.ir.fxc.hlsl
index 0ba40c6..d81749a 100644
--- a/test/tint/builtins/gen/literal/acosh/f56574.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/acosh/f56574.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,47 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct VertexOutput {
+  float4 pos;
+  vector<float16_t, 3> prevent_dce;
+};
+
+struct vertex_main_outputs {
+  nointerpolation vector<float16_t, 3> VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+vector<float16_t, 3> acosh_f56574() {
+  vector<float16_t, 3> res = (float16_t(0.99951171875h)).xxx;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store<vector<float16_t, 3> >(0u, acosh_f56574());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store<vector<float16_t, 3> >(0u, acosh_f56574());
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = acosh_f56574();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
+FXC validation failure:
+c:\src\dawn\Shader@0x0000014260F0C2A0(3,10-18): error X3000: syntax error: unexpected token 'float16_t'
+
diff --git a/test/tint/builtins/gen/literal/all/353d6a.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/all/353d6a.wgsl.expected.ir.dxc.hlsl
index ddf0424..1fad185 100644
--- a/test/tint/builtins/gen/literal/all/353d6a.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/all/353d6a.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,42 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  int prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: select
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation int VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+int all_353d6a() {
+  bool res = true;
+  return ((all((res == false))) ? (1) : (0));
+}
+
+void fragment_main() {
+  prevent_dce.Store(0u, asuint(all_353d6a()));
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store(0u, asuint(all_353d6a()));
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = all_353d6a();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
diff --git a/test/tint/builtins/gen/literal/all/353d6a.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/all/353d6a.wgsl.expected.ir.fxc.hlsl
index ddf0424..1fad185 100644
--- a/test/tint/builtins/gen/literal/all/353d6a.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/all/353d6a.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,42 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  int prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: select
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation int VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+int all_353d6a() {
+  bool res = true;
+  return ((all((res == false))) ? (1) : (0));
+}
+
+void fragment_main() {
+  prevent_dce.Store(0u, asuint(all_353d6a()));
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store(0u, asuint(all_353d6a()));
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = all_353d6a();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
diff --git a/test/tint/builtins/gen/literal/all/986c7b.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/all/986c7b.wgsl.expected.ir.dxc.hlsl
index ddf0424..93c923d 100644
--- a/test/tint/builtins/gen/literal/all/986c7b.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/all/986c7b.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,42 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  int prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: select
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation int VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+int all_986c7b() {
+  bool res = true;
+  return ((all((res == false))) ? (1) : (0));
+}
+
+void fragment_main() {
+  prevent_dce.Store(0u, asuint(all_986c7b()));
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store(0u, asuint(all_986c7b()));
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = all_986c7b();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
diff --git a/test/tint/builtins/gen/literal/all/986c7b.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/all/986c7b.wgsl.expected.ir.fxc.hlsl
index ddf0424..93c923d 100644
--- a/test/tint/builtins/gen/literal/all/986c7b.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/all/986c7b.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,42 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  int prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: select
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation int VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+int all_986c7b() {
+  bool res = true;
+  return ((all((res == false))) ? (1) : (0));
+}
+
+void fragment_main() {
+  prevent_dce.Store(0u, asuint(all_986c7b()));
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store(0u, asuint(all_986c7b()));
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = all_986c7b();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
diff --git a/test/tint/builtins/gen/literal/all/bd2dba.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/all/bd2dba.wgsl.expected.ir.dxc.hlsl
index ddf0424..3668992 100644
--- a/test/tint/builtins/gen/literal/all/bd2dba.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/all/bd2dba.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,42 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  int prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: select
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation int VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+int all_bd2dba() {
+  bool res = true;
+  return ((all((res == false))) ? (1) : (0));
+}
+
+void fragment_main() {
+  prevent_dce.Store(0u, asuint(all_bd2dba()));
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store(0u, asuint(all_bd2dba()));
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = all_bd2dba();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
diff --git a/test/tint/builtins/gen/literal/all/bd2dba.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/all/bd2dba.wgsl.expected.ir.fxc.hlsl
index ddf0424..3668992 100644
--- a/test/tint/builtins/gen/literal/all/bd2dba.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/all/bd2dba.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,42 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  int prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: select
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation int VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+int all_bd2dba() {
+  bool res = true;
+  return ((all((res == false))) ? (1) : (0));
+}
+
+void fragment_main() {
+  prevent_dce.Store(0u, asuint(all_bd2dba()));
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store(0u, asuint(all_bd2dba()));
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = all_bd2dba();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
diff --git a/test/tint/builtins/gen/literal/all/f46790.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/all/f46790.wgsl.expected.ir.dxc.hlsl
index ddf0424..786a4fb 100644
--- a/test/tint/builtins/gen/literal/all/f46790.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/all/f46790.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,42 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  int prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: select
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation int VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+int all_f46790() {
+  bool res = true;
+  return ((all((res == false))) ? (1) : (0));
+}
+
+void fragment_main() {
+  prevent_dce.Store(0u, asuint(all_f46790()));
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store(0u, asuint(all_f46790()));
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = all_f46790();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
diff --git a/test/tint/builtins/gen/literal/all/f46790.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/all/f46790.wgsl.expected.ir.fxc.hlsl
index ddf0424..786a4fb 100644
--- a/test/tint/builtins/gen/literal/all/f46790.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/all/f46790.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,42 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  int prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: select
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation int VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+int all_f46790() {
+  bool res = true;
+  return ((all((res == false))) ? (1) : (0));
+}
+
+void fragment_main() {
+  prevent_dce.Store(0u, asuint(all_f46790()));
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store(0u, asuint(all_f46790()));
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = all_f46790();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
diff --git a/test/tint/builtins/gen/literal/any/083428.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/any/083428.wgsl.expected.ir.dxc.hlsl
index ddf0424..6e58652 100644
--- a/test/tint/builtins/gen/literal/any/083428.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/any/083428.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,42 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  int prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: select
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation int VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+int any_083428() {
+  bool res = true;
+  return ((all((res == false))) ? (1) : (0));
+}
+
+void fragment_main() {
+  prevent_dce.Store(0u, asuint(any_083428()));
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store(0u, asuint(any_083428()));
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = any_083428();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
diff --git a/test/tint/builtins/gen/literal/any/083428.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/any/083428.wgsl.expected.ir.fxc.hlsl
index ddf0424..6e58652 100644
--- a/test/tint/builtins/gen/literal/any/083428.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/any/083428.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,42 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  int prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: select
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation int VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+int any_083428() {
+  bool res = true;
+  return ((all((res == false))) ? (1) : (0));
+}
+
+void fragment_main() {
+  prevent_dce.Store(0u, asuint(any_083428()));
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store(0u, asuint(any_083428()));
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = any_083428();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
diff --git a/test/tint/builtins/gen/literal/any/0e3e58.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/any/0e3e58.wgsl.expected.ir.dxc.hlsl
index ddf0424..d395f7e 100644
--- a/test/tint/builtins/gen/literal/any/0e3e58.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/any/0e3e58.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,42 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  int prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: select
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation int VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+int any_0e3e58() {
+  bool res = true;
+  return ((all((res == false))) ? (1) : (0));
+}
+
+void fragment_main() {
+  prevent_dce.Store(0u, asuint(any_0e3e58()));
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store(0u, asuint(any_0e3e58()));
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = any_0e3e58();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
diff --git a/test/tint/builtins/gen/literal/any/0e3e58.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/any/0e3e58.wgsl.expected.ir.fxc.hlsl
index ddf0424..d395f7e 100644
--- a/test/tint/builtins/gen/literal/any/0e3e58.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/any/0e3e58.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,42 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  int prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: select
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation int VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+int any_0e3e58() {
+  bool res = true;
+  return ((all((res == false))) ? (1) : (0));
+}
+
+void fragment_main() {
+  prevent_dce.Store(0u, asuint(any_0e3e58()));
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store(0u, asuint(any_0e3e58()));
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = any_0e3e58();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
diff --git a/test/tint/builtins/gen/literal/any/2ab91a.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/any/2ab91a.wgsl.expected.ir.dxc.hlsl
index ddf0424..c6affc2 100644
--- a/test/tint/builtins/gen/literal/any/2ab91a.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/any/2ab91a.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,42 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  int prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: select
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation int VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+int any_2ab91a() {
+  bool res = true;
+  return ((all((res == false))) ? (1) : (0));
+}
+
+void fragment_main() {
+  prevent_dce.Store(0u, asuint(any_2ab91a()));
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store(0u, asuint(any_2ab91a()));
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = any_2ab91a();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
diff --git a/test/tint/builtins/gen/literal/any/2ab91a.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/any/2ab91a.wgsl.expected.ir.fxc.hlsl
index ddf0424..c6affc2 100644
--- a/test/tint/builtins/gen/literal/any/2ab91a.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/any/2ab91a.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,42 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  int prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: select
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation int VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+int any_2ab91a() {
+  bool res = true;
+  return ((all((res == false))) ? (1) : (0));
+}
+
+void fragment_main() {
+  prevent_dce.Store(0u, asuint(any_2ab91a()));
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store(0u, asuint(any_2ab91a()));
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = any_2ab91a();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
diff --git a/test/tint/builtins/gen/literal/any/e755c1.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/any/e755c1.wgsl.expected.ir.dxc.hlsl
index ddf0424..42a92ff 100644
--- a/test/tint/builtins/gen/literal/any/e755c1.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/any/e755c1.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,42 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  int prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: select
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation int VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+int any_e755c1() {
+  bool res = true;
+  return ((all((res == false))) ? (1) : (0));
+}
+
+void fragment_main() {
+  prevent_dce.Store(0u, asuint(any_e755c1()));
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store(0u, asuint(any_e755c1()));
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = any_e755c1();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
diff --git a/test/tint/builtins/gen/literal/any/e755c1.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/any/e755c1.wgsl.expected.ir.fxc.hlsl
index ddf0424..42a92ff 100644
--- a/test/tint/builtins/gen/literal/any/e755c1.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/any/e755c1.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,42 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  int prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: select
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation int VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+int any_e755c1() {
+  bool res = true;
+  return ((all((res == false))) ? (1) : (0));
+}
+
+void fragment_main() {
+  prevent_dce.Store(0u, asuint(any_e755c1()));
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store(0u, asuint(any_e755c1()));
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = any_e755c1();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
diff --git a/test/tint/builtins/gen/literal/arrayLength/1588cd.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/arrayLength/1588cd.wgsl.expected.ir.dxc.hlsl
index 7492c3a..5024042 100644
--- a/test/tint/builtins/gen/literal/arrayLength/1588cd.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/arrayLength/1588cd.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,45 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  uint prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: arrayLength
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation uint VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+ByteAddressBuffer sb_ro : register(t1);
+uint arrayLength_1588cd() {
+  uint v = 0u;
+  sb_ro.GetDimensions(v);
+  uint res = (v / 4u);
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store(0u, arrayLength_1588cd());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store(0u, arrayLength_1588cd());
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = arrayLength_1588cd();
+  VertexOutput v_1 = tint_symbol;
+  return v_1;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_2 = vertex_main_inner();
+  VertexOutput v_3 = v_2;
+  VertexOutput v_4 = v_2;
+  vertex_main_outputs v_5 = {v_4.prevent_dce, v_3.pos};
+  return v_5;
+}
+
diff --git a/test/tint/builtins/gen/literal/arrayLength/1588cd.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/arrayLength/1588cd.wgsl.expected.ir.fxc.hlsl
index 7492c3a..5024042 100644
--- a/test/tint/builtins/gen/literal/arrayLength/1588cd.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/arrayLength/1588cd.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,45 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  uint prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: arrayLength
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation uint VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+ByteAddressBuffer sb_ro : register(t1);
+uint arrayLength_1588cd() {
+  uint v = 0u;
+  sb_ro.GetDimensions(v);
+  uint res = (v / 4u);
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store(0u, arrayLength_1588cd());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store(0u, arrayLength_1588cd());
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = arrayLength_1588cd();
+  VertexOutput v_1 = tint_symbol;
+  return v_1;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_2 = vertex_main_inner();
+  VertexOutput v_3 = v_2;
+  VertexOutput v_4 = v_2;
+  vertex_main_outputs v_5 = {v_4.prevent_dce, v_3.pos};
+  return v_5;
+}
+
diff --git a/test/tint/builtins/gen/literal/arrayLength/61b1c7.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/arrayLength/61b1c7.wgsl.expected.ir.dxc.hlsl
index 7492c3a..85162e28 100644
--- a/test/tint/builtins/gen/literal/arrayLength/61b1c7.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/arrayLength/61b1c7.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,19 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: arrayLength
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWByteAddressBuffer prevent_dce : register(u0);
+RWByteAddressBuffer sb_rw : register(u1);
+uint arrayLength_61b1c7() {
+  uint v = 0u;
+  sb_rw.GetDimensions(v);
+  uint res = (v / 4u);
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store(0u, arrayLength_61b1c7());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store(0u, arrayLength_61b1c7());
+}
+
diff --git a/test/tint/builtins/gen/literal/arrayLength/61b1c7.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/arrayLength/61b1c7.wgsl.expected.ir.fxc.hlsl
index 7492c3a..85162e28 100644
--- a/test/tint/builtins/gen/literal/arrayLength/61b1c7.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/arrayLength/61b1c7.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,19 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: arrayLength
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWByteAddressBuffer prevent_dce : register(u0);
+RWByteAddressBuffer sb_rw : register(u1);
+uint arrayLength_61b1c7() {
+  uint v = 0u;
+  sb_rw.GetDimensions(v);
+  uint res = (v / 4u);
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store(0u, arrayLength_61b1c7());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store(0u, arrayLength_61b1c7());
+}
+
diff --git a/test/tint/builtins/gen/literal/arrayLength/8421b9.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/arrayLength/8421b9.wgsl.expected.ir.dxc.hlsl
index 7492c3a..ca33830 100644
--- a/test/tint/builtins/gen/literal/arrayLength/8421b9.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/arrayLength/8421b9.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,45 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  uint prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: arrayLength
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation uint VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+ByteAddressBuffer sb_ro : register(t1);
+uint arrayLength_8421b9() {
+  uint v = 0u;
+  sb_ro.GetDimensions(v);
+  uint res = (v / 2u);
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store(0u, arrayLength_8421b9());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store(0u, arrayLength_8421b9());
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = arrayLength_8421b9();
+  VertexOutput v_1 = tint_symbol;
+  return v_1;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_2 = vertex_main_inner();
+  VertexOutput v_3 = v_2;
+  VertexOutput v_4 = v_2;
+  vertex_main_outputs v_5 = {v_4.prevent_dce, v_3.pos};
+  return v_5;
+}
+
diff --git a/test/tint/builtins/gen/literal/arrayLength/8421b9.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/arrayLength/8421b9.wgsl.expected.ir.fxc.hlsl
index 7492c3a..ca33830 100644
--- a/test/tint/builtins/gen/literal/arrayLength/8421b9.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/arrayLength/8421b9.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,45 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  uint prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: arrayLength
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation uint VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+ByteAddressBuffer sb_ro : register(t1);
+uint arrayLength_8421b9() {
+  uint v = 0u;
+  sb_ro.GetDimensions(v);
+  uint res = (v / 2u);
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store(0u, arrayLength_8421b9());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store(0u, arrayLength_8421b9());
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = arrayLength_8421b9();
+  VertexOutput v_1 = tint_symbol;
+  return v_1;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_2 = vertex_main_inner();
+  VertexOutput v_3 = v_2;
+  VertexOutput v_4 = v_2;
+  vertex_main_outputs v_5 = {v_4.prevent_dce, v_3.pos};
+  return v_5;
+}
+
diff --git a/test/tint/builtins/gen/literal/arrayLength/a0f5ca.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/arrayLength/a0f5ca.wgsl.expected.ir.dxc.hlsl
index 7492c3a..ae827d0 100644
--- a/test/tint/builtins/gen/literal/arrayLength/a0f5ca.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/arrayLength/a0f5ca.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,45 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  uint prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: arrayLength
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation uint VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+ByteAddressBuffer sb_ro : register(t1);
+uint arrayLength_a0f5ca() {
+  uint v = 0u;
+  sb_ro.GetDimensions(v);
+  uint res = (v / 4u);
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store(0u, arrayLength_a0f5ca());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store(0u, arrayLength_a0f5ca());
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = arrayLength_a0f5ca();
+  VertexOutput v_1 = tint_symbol;
+  return v_1;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_2 = vertex_main_inner();
+  VertexOutput v_3 = v_2;
+  VertexOutput v_4 = v_2;
+  vertex_main_outputs v_5 = {v_4.prevent_dce, v_3.pos};
+  return v_5;
+}
+
diff --git a/test/tint/builtins/gen/literal/arrayLength/a0f5ca.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/arrayLength/a0f5ca.wgsl.expected.ir.fxc.hlsl
index 7492c3a..ae827d0 100644
--- a/test/tint/builtins/gen/literal/arrayLength/a0f5ca.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/arrayLength/a0f5ca.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,45 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  uint prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: arrayLength
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation uint VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+ByteAddressBuffer sb_ro : register(t1);
+uint arrayLength_a0f5ca() {
+  uint v = 0u;
+  sb_ro.GetDimensions(v);
+  uint res = (v / 4u);
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store(0u, arrayLength_a0f5ca());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store(0u, arrayLength_a0f5ca());
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = arrayLength_a0f5ca();
+  VertexOutput v_1 = tint_symbol;
+  return v_1;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_2 = vertex_main_inner();
+  VertexOutput v_3 = v_2;
+  VertexOutput v_4 = v_2;
+  vertex_main_outputs v_5 = {v_4.prevent_dce, v_3.pos};
+  return v_5;
+}
+
diff --git a/test/tint/builtins/gen/literal/arrayLength/cbd6b5.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/arrayLength/cbd6b5.wgsl.expected.ir.dxc.hlsl
index 7492c3a..d1febe3 100644
--- a/test/tint/builtins/gen/literal/arrayLength/cbd6b5.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/arrayLength/cbd6b5.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,19 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: arrayLength
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWByteAddressBuffer prevent_dce : register(u0);
+RWByteAddressBuffer sb_rw : register(u1);
+uint arrayLength_cbd6b5() {
+  uint v = 0u;
+  sb_rw.GetDimensions(v);
+  uint res = (v / 2u);
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store(0u, arrayLength_cbd6b5());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store(0u, arrayLength_cbd6b5());
+}
+
diff --git a/test/tint/builtins/gen/literal/arrayLength/cbd6b5.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/arrayLength/cbd6b5.wgsl.expected.ir.fxc.hlsl
index 7492c3a..d1febe3 100644
--- a/test/tint/builtins/gen/literal/arrayLength/cbd6b5.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/arrayLength/cbd6b5.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,19 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: arrayLength
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWByteAddressBuffer prevent_dce : register(u0);
+RWByteAddressBuffer sb_rw : register(u1);
+uint arrayLength_cbd6b5() {
+  uint v = 0u;
+  sb_rw.GetDimensions(v);
+  uint res = (v / 2u);
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store(0u, arrayLength_cbd6b5());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store(0u, arrayLength_cbd6b5());
+}
+
diff --git a/test/tint/builtins/gen/literal/arrayLength/cdd123.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/arrayLength/cdd123.wgsl.expected.ir.dxc.hlsl
index 7492c3a..0498460 100644
--- a/test/tint/builtins/gen/literal/arrayLength/cdd123.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/arrayLength/cdd123.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,19 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: arrayLength
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWByteAddressBuffer prevent_dce : register(u0);
+RWByteAddressBuffer sb_rw : register(u1);
+uint arrayLength_cdd123() {
+  uint v = 0u;
+  sb_rw.GetDimensions(v);
+  uint res = (v / 4u);
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store(0u, arrayLength_cdd123());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store(0u, arrayLength_cdd123());
+}
+
diff --git a/test/tint/builtins/gen/literal/arrayLength/cdd123.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/arrayLength/cdd123.wgsl.expected.ir.fxc.hlsl
index 7492c3a..0498460 100644
--- a/test/tint/builtins/gen/literal/arrayLength/cdd123.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/arrayLength/cdd123.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,19 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: arrayLength
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWByteAddressBuffer prevent_dce : register(u0);
+RWByteAddressBuffer sb_rw : register(u1);
+uint arrayLength_cdd123() {
+  uint v = 0u;
+  sb_rw.GetDimensions(v);
+  uint res = (v / 4u);
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store(0u, arrayLength_cdd123());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store(0u, arrayLength_cdd123());
+}
+
diff --git a/test/tint/builtins/gen/literal/arrayLength/cfca0a.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/arrayLength/cfca0a.wgsl.expected.ir.dxc.hlsl
index 7492c3a..1305438 100644
--- a/test/tint/builtins/gen/literal/arrayLength/cfca0a.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/arrayLength/cfca0a.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,45 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  uint prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: arrayLength
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation uint VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+ByteAddressBuffer sb_ro : register(t1);
+uint arrayLength_cfca0a() {
+  uint v = 0u;
+  sb_ro.GetDimensions(v);
+  uint res = (v / 4u);
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store(0u, arrayLength_cfca0a());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store(0u, arrayLength_cfca0a());
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = arrayLength_cfca0a();
+  VertexOutput v_1 = tint_symbol;
+  return v_1;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_2 = vertex_main_inner();
+  VertexOutput v_3 = v_2;
+  VertexOutput v_4 = v_2;
+  vertex_main_outputs v_5 = {v_4.prevent_dce, v_3.pos};
+  return v_5;
+}
+
diff --git a/test/tint/builtins/gen/literal/arrayLength/cfca0a.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/arrayLength/cfca0a.wgsl.expected.ir.fxc.hlsl
index 7492c3a..1305438 100644
--- a/test/tint/builtins/gen/literal/arrayLength/cfca0a.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/arrayLength/cfca0a.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,45 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  uint prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: arrayLength
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation uint VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+ByteAddressBuffer sb_ro : register(t1);
+uint arrayLength_cfca0a() {
+  uint v = 0u;
+  sb_ro.GetDimensions(v);
+  uint res = (v / 4u);
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store(0u, arrayLength_cfca0a());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store(0u, arrayLength_cfca0a());
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = arrayLength_cfca0a();
+  VertexOutput v_1 = tint_symbol;
+  return v_1;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_2 = vertex_main_inner();
+  VertexOutput v_3 = v_2;
+  VertexOutput v_4 = v_2;
+  vertex_main_outputs v_5 = {v_4.prevent_dce, v_3.pos};
+  return v_5;
+}
+
diff --git a/test/tint/builtins/gen/literal/arrayLength/eb510f.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/arrayLength/eb510f.wgsl.expected.ir.dxc.hlsl
index 7492c3a..ff90302 100644
--- a/test/tint/builtins/gen/literal/arrayLength/eb510f.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/arrayLength/eb510f.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,19 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: arrayLength
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWByteAddressBuffer prevent_dce : register(u0);
+RWByteAddressBuffer sb_rw : register(u1);
+uint arrayLength_eb510f() {
+  uint v = 0u;
+  sb_rw.GetDimensions(v);
+  uint res = (v / 4u);
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store(0u, arrayLength_eb510f());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store(0u, arrayLength_eb510f());
+}
+
diff --git a/test/tint/builtins/gen/literal/arrayLength/eb510f.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/arrayLength/eb510f.wgsl.expected.ir.fxc.hlsl
index 7492c3a..ff90302 100644
--- a/test/tint/builtins/gen/literal/arrayLength/eb510f.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/arrayLength/eb510f.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,19 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: arrayLength
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWByteAddressBuffer prevent_dce : register(u0);
+RWByteAddressBuffer sb_rw : register(u1);
+uint arrayLength_eb510f() {
+  uint v = 0u;
+  sb_rw.GetDimensions(v);
+  uint res = (v / 4u);
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store(0u, arrayLength_eb510f());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store(0u, arrayLength_eb510f());
+}
+
diff --git a/test/tint/builtins/gen/literal/asin/064953.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/asin/064953.wgsl.expected.ir.dxc.hlsl
index 0ba40c6..57d0447 100644
--- a/test/tint/builtins/gen/literal/asin/064953.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/asin/064953.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,42 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  float4 prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation float4 VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+float4 asin_064953() {
+  float4 res = (0.5f).xxxx;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store4(0u, asuint(asin_064953()));
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store4(0u, asuint(asin_064953()));
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = asin_064953();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
diff --git a/test/tint/builtins/gen/literal/asin/064953.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/asin/064953.wgsl.expected.ir.fxc.hlsl
index 0ba40c6..57d0447 100644
--- a/test/tint/builtins/gen/literal/asin/064953.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/asin/064953.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,42 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  float4 prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation float4 VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+float4 asin_064953() {
+  float4 res = (0.5f).xxxx;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store4(0u, asuint(asin_064953()));
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store4(0u, asuint(asin_064953()));
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = asin_064953();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
diff --git a/test/tint/builtins/gen/literal/asin/0bac07.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/asin/0bac07.wgsl.expected.ir.dxc.hlsl
index 0ba40c6..49e5914 100644
--- a/test/tint/builtins/gen/literal/asin/0bac07.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/asin/0bac07.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,36 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+void asin_0bac07() {
+  float3 res = (0.5f).xxx;
+}
+
+void fragment_main() {
+  asin_0bac07();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  asin_0bac07();
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  asin_0bac07();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  vertex_main_outputs v_2 = {v_1.pos};
+  return v_2;
+}
+
diff --git a/test/tint/builtins/gen/literal/asin/0bac07.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/asin/0bac07.wgsl.expected.ir.fxc.hlsl
index 0ba40c6..49e5914 100644
--- a/test/tint/builtins/gen/literal/asin/0bac07.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/asin/0bac07.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,36 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+void asin_0bac07() {
+  float3 res = (0.5f).xxx;
+}
+
+void fragment_main() {
+  asin_0bac07();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  asin_0bac07();
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  asin_0bac07();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  vertex_main_outputs v_2 = {v_1.pos};
+  return v_2;
+}
+
diff --git a/test/tint/builtins/gen/literal/asin/11dfda.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/asin/11dfda.wgsl.expected.ir.dxc.hlsl
index 0ba40c6..3d7a379 100644
--- a/test/tint/builtins/gen/literal/asin/11dfda.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/asin/11dfda.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,42 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  float16_t prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation float16_t VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+float16_t asin_11dfda() {
+  float16_t res = float16_t(0.499755859375h);
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store<float16_t>(0u, asin_11dfda());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store<float16_t>(0u, asin_11dfda());
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = asin_11dfda();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
diff --git a/test/tint/builtins/gen/literal/asin/11dfda.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/asin/11dfda.wgsl.expected.ir.fxc.hlsl
index 0ba40c6..fe57855 100644
--- a/test/tint/builtins/gen/literal/asin/11dfda.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/asin/11dfda.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,47 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct VertexOutput {
+  float4 pos;
+  float16_t prevent_dce;
+};
+
+struct vertex_main_outputs {
+  nointerpolation float16_t VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+float16_t asin_11dfda() {
+  float16_t res = float16_t(0.499755859375h);
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store<float16_t>(0u, asin_11dfda());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store<float16_t>(0u, asin_11dfda());
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = asin_11dfda();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
+FXC validation failure:
+c:\src\dawn\Shader@0x000002BC3910C5B0(3,3-11): error X3000: unrecognized identifier 'float16_t'
+
diff --git a/test/tint/builtins/gen/literal/asin/2d8e29.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/asin/2d8e29.wgsl.expected.ir.dxc.hlsl
index 0ba40c6..5461d11 100644
--- a/test/tint/builtins/gen/literal/asin/2d8e29.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/asin/2d8e29.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,42 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  vector<float16_t, 3> prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation vector<float16_t, 3> VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+vector<float16_t, 3> asin_2d8e29() {
+  vector<float16_t, 3> res = (float16_t(0.499755859375h)).xxx;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store<vector<float16_t, 3> >(0u, asin_2d8e29());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store<vector<float16_t, 3> >(0u, asin_2d8e29());
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = asin_2d8e29();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
diff --git a/test/tint/builtins/gen/literal/asin/2d8e29.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/asin/2d8e29.wgsl.expected.ir.fxc.hlsl
index 0ba40c6..31d36b7 100644
--- a/test/tint/builtins/gen/literal/asin/2d8e29.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/asin/2d8e29.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,47 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct VertexOutput {
+  float4 pos;
+  vector<float16_t, 3> prevent_dce;
+};
+
+struct vertex_main_outputs {
+  nointerpolation vector<float16_t, 3> VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+vector<float16_t, 3> asin_2d8e29() {
+  vector<float16_t, 3> res = (float16_t(0.499755859375h)).xxx;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store<vector<float16_t, 3> >(0u, asin_2d8e29());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store<vector<float16_t, 3> >(0u, asin_2d8e29());
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = asin_2d8e29();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
+FXC validation failure:
+c:\src\dawn\Shader@0x0000020D016E0A70(3,10-18): error X3000: syntax error: unexpected token 'float16_t'
+
diff --git a/test/tint/builtins/gen/literal/asin/3cfbd4.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/asin/3cfbd4.wgsl.expected.ir.dxc.hlsl
index 0ba40c6..5574922 100644
--- a/test/tint/builtins/gen/literal/asin/3cfbd4.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/asin/3cfbd4.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,42 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  vector<float16_t, 4> prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation vector<float16_t, 4> VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+vector<float16_t, 4> asin_3cfbd4() {
+  vector<float16_t, 4> res = (float16_t(0.499755859375h)).xxxx;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store<vector<float16_t, 4> >(0u, asin_3cfbd4());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store<vector<float16_t, 4> >(0u, asin_3cfbd4());
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = asin_3cfbd4();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
diff --git a/test/tint/builtins/gen/literal/asin/3cfbd4.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/asin/3cfbd4.wgsl.expected.ir.fxc.hlsl
index 0ba40c6..e445ba8 100644
--- a/test/tint/builtins/gen/literal/asin/3cfbd4.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/asin/3cfbd4.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,47 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct VertexOutput {
+  float4 pos;
+  vector<float16_t, 4> prevent_dce;
+};
+
+struct vertex_main_outputs {
+  nointerpolation vector<float16_t, 4> VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+vector<float16_t, 4> asin_3cfbd4() {
+  vector<float16_t, 4> res = (float16_t(0.499755859375h)).xxxx;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store<vector<float16_t, 4> >(0u, asin_3cfbd4());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store<vector<float16_t, 4> >(0u, asin_3cfbd4());
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = asin_3cfbd4();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
+FXC validation failure:
+c:\src\dawn\Shader@0x000001C047736430(3,10-18): error X3000: syntax error: unexpected token 'float16_t'
+
diff --git a/test/tint/builtins/gen/literal/asin/64bb1f.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/asin/64bb1f.wgsl.expected.ir.dxc.hlsl
index 0ba40c6..9a3b93f 100644
--- a/test/tint/builtins/gen/literal/asin/64bb1f.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/asin/64bb1f.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,36 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+void asin_64bb1f() {
+  float4 res = (0.5f).xxxx;
+}
+
+void fragment_main() {
+  asin_64bb1f();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  asin_64bb1f();
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  asin_64bb1f();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  vertex_main_outputs v_2 = {v_1.pos};
+  return v_2;
+}
+
diff --git a/test/tint/builtins/gen/literal/asin/64bb1f.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/asin/64bb1f.wgsl.expected.ir.fxc.hlsl
index 0ba40c6..9a3b93f 100644
--- a/test/tint/builtins/gen/literal/asin/64bb1f.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/asin/64bb1f.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,36 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+void asin_64bb1f() {
+  float4 res = (0.5f).xxxx;
+}
+
+void fragment_main() {
+  asin_64bb1f();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  asin_64bb1f();
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  asin_64bb1f();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  vertex_main_outputs v_2 = {v_1.pos};
+  return v_2;
+}
+
diff --git a/test/tint/builtins/gen/literal/asin/7b6a44.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/asin/7b6a44.wgsl.expected.ir.dxc.hlsl
index 0ba40c6..4668d37 100644
--- a/test/tint/builtins/gen/literal/asin/7b6a44.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/asin/7b6a44.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,42 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  float2 prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation float2 VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+float2 asin_7b6a44() {
+  float2 res = (0.5f).xx;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store2(0u, asuint(asin_7b6a44()));
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store2(0u, asuint(asin_7b6a44()));
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = asin_7b6a44();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
diff --git a/test/tint/builtins/gen/literal/asin/7b6a44.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/asin/7b6a44.wgsl.expected.ir.fxc.hlsl
index 0ba40c6..4668d37 100644
--- a/test/tint/builtins/gen/literal/asin/7b6a44.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/asin/7b6a44.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,42 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  float2 prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation float2 VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+float2 asin_7b6a44() {
+  float2 res = (0.5f).xx;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store2(0u, asuint(asin_7b6a44()));
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store2(0u, asuint(asin_7b6a44()));
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = asin_7b6a44();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
diff --git a/test/tint/builtins/gen/literal/asin/8cd9c9.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/asin/8cd9c9.wgsl.expected.ir.dxc.hlsl
index 0ba40c6..87c625b 100644
--- a/test/tint/builtins/gen/literal/asin/8cd9c9.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/asin/8cd9c9.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,42 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  float3 prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation float3 VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+float3 asin_8cd9c9() {
+  float3 res = (0.5f).xxx;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store3(0u, asuint(asin_8cd9c9()));
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store3(0u, asuint(asin_8cd9c9()));
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = asin_8cd9c9();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
diff --git a/test/tint/builtins/gen/literal/asin/8cd9c9.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/asin/8cd9c9.wgsl.expected.ir.fxc.hlsl
index 0ba40c6..87c625b 100644
--- a/test/tint/builtins/gen/literal/asin/8cd9c9.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/asin/8cd9c9.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,42 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  float3 prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation float3 VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+float3 asin_8cd9c9() {
+  float3 res = (0.5f).xxx;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store3(0u, asuint(asin_8cd9c9()));
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store3(0u, asuint(asin_8cd9c9()));
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = asin_8cd9c9();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
diff --git a/test/tint/builtins/gen/literal/asin/a5dd88.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/asin/a5dd88.wgsl.expected.ir.dxc.hlsl
index 0ba40c6..9e9f405 100644
--- a/test/tint/builtins/gen/literal/asin/a5dd88.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/asin/a5dd88.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,36 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+void asin_a5dd88() {
+  float2 res = (0.5f).xx;
+}
+
+void fragment_main() {
+  asin_a5dd88();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  asin_a5dd88();
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  asin_a5dd88();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  vertex_main_outputs v_2 = {v_1.pos};
+  return v_2;
+}
+
diff --git a/test/tint/builtins/gen/literal/asin/a5dd88.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/asin/a5dd88.wgsl.expected.ir.fxc.hlsl
index 0ba40c6..9e9f405 100644
--- a/test/tint/builtins/gen/literal/asin/a5dd88.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/asin/a5dd88.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,36 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+void asin_a5dd88() {
+  float2 res = (0.5f).xx;
+}
+
+void fragment_main() {
+  asin_a5dd88();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  asin_a5dd88();
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  asin_a5dd88();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  vertex_main_outputs v_2 = {v_1.pos};
+  return v_2;
+}
+
diff --git a/test/tint/builtins/gen/literal/asin/a6d73a.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/asin/a6d73a.wgsl.expected.ir.dxc.hlsl
index 0ba40c6..cb67ad8 100644
--- a/test/tint/builtins/gen/literal/asin/a6d73a.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/asin/a6d73a.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,36 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+void asin_a6d73a() {
+  float res = 0.5f;
+}
+
+void fragment_main() {
+  asin_a6d73a();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  asin_a6d73a();
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  asin_a6d73a();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  vertex_main_outputs v_2 = {v_1.pos};
+  return v_2;
+}
+
diff --git a/test/tint/builtins/gen/literal/asin/a6d73a.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/asin/a6d73a.wgsl.expected.ir.fxc.hlsl
index 0ba40c6..cb67ad8 100644
--- a/test/tint/builtins/gen/literal/asin/a6d73a.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/asin/a6d73a.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,36 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+void asin_a6d73a() {
+  float res = 0.5f;
+}
+
+void fragment_main() {
+  asin_a6d73a();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  asin_a6d73a();
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  asin_a6d73a();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  vertex_main_outputs v_2 = {v_1.pos};
+  return v_2;
+}
+
diff --git a/test/tint/builtins/gen/literal/asin/b4aced.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/asin/b4aced.wgsl.expected.ir.dxc.hlsl
index 0ba40c6..25f1e99 100644
--- a/test/tint/builtins/gen/literal/asin/b4aced.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/asin/b4aced.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,42 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  vector<float16_t, 2> prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation vector<float16_t, 2> VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+vector<float16_t, 2> asin_b4aced() {
+  vector<float16_t, 2> res = (float16_t(0.499755859375h)).xx;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store<vector<float16_t, 2> >(0u, asin_b4aced());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store<vector<float16_t, 2> >(0u, asin_b4aced());
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = asin_b4aced();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
diff --git a/test/tint/builtins/gen/literal/asin/b4aced.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/asin/b4aced.wgsl.expected.ir.fxc.hlsl
index 0ba40c6..8c760d6 100644
--- a/test/tint/builtins/gen/literal/asin/b4aced.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/asin/b4aced.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,47 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct VertexOutput {
+  float4 pos;
+  vector<float16_t, 2> prevent_dce;
+};
+
+struct vertex_main_outputs {
+  nointerpolation vector<float16_t, 2> VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+vector<float16_t, 2> asin_b4aced() {
+  vector<float16_t, 2> res = (float16_t(0.499755859375h)).xx;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store<vector<float16_t, 2> >(0u, asin_b4aced());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store<vector<float16_t, 2> >(0u, asin_b4aced());
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = asin_b4aced();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
+FXC validation failure:
+c:\src\dawn\Shader@0x0000021AD8D1D660(3,10-18): error X3000: syntax error: unexpected token 'float16_t'
+
diff --git a/test/tint/builtins/gen/literal/asin/c0c272.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/asin/c0c272.wgsl.expected.ir.dxc.hlsl
index 0ba40c6..b8ddc10 100644
--- a/test/tint/builtins/gen/literal/asin/c0c272.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/asin/c0c272.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,42 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  float prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation float VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+float asin_c0c272() {
+  float res = 0.5f;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store(0u, asuint(asin_c0c272()));
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store(0u, asuint(asin_c0c272()));
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = asin_c0c272();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
diff --git a/test/tint/builtins/gen/literal/asin/c0c272.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/asin/c0c272.wgsl.expected.ir.fxc.hlsl
index 0ba40c6..b8ddc10 100644
--- a/test/tint/builtins/gen/literal/asin/c0c272.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/asin/c0c272.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,42 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  float prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation float VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+float asin_c0c272() {
+  float res = 0.5f;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store(0u, asuint(asin_c0c272()));
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store(0u, asuint(asin_c0c272()));
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = asin_c0c272();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
diff --git a/test/tint/builtins/gen/literal/asinh/157447.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/asinh/157447.wgsl.expected.ir.dxc.hlsl
index 0ba40c6..bbd5dc9 100644
--- a/test/tint/builtins/gen/literal/asinh/157447.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/asinh/157447.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,42 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  float prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation float VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+float asinh_157447() {
+  float res = 0.88137358427047729492f;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store(0u, asuint(asinh_157447()));
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store(0u, asuint(asinh_157447()));
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = asinh_157447();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
diff --git a/test/tint/builtins/gen/literal/asinh/157447.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/asinh/157447.wgsl.expected.ir.fxc.hlsl
index 0ba40c6..bbd5dc9 100644
--- a/test/tint/builtins/gen/literal/asinh/157447.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/asinh/157447.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,42 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  float prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation float VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+float asinh_157447() {
+  float res = 0.88137358427047729492f;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store(0u, asuint(asinh_157447()));
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store(0u, asuint(asinh_157447()));
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = asinh_157447();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
diff --git a/test/tint/builtins/gen/literal/asinh/16b543.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/asinh/16b543.wgsl.expected.ir.dxc.hlsl
index 0ba40c6..078f44f 100644
--- a/test/tint/builtins/gen/literal/asinh/16b543.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/asinh/16b543.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,36 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+void asinh_16b543() {
+  float2 res = (0.88137358427047729492f).xx;
+}
+
+void fragment_main() {
+  asinh_16b543();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  asinh_16b543();
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  asinh_16b543();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  vertex_main_outputs v_2 = {v_1.pos};
+  return v_2;
+}
+
diff --git a/test/tint/builtins/gen/literal/asinh/16b543.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/asinh/16b543.wgsl.expected.ir.fxc.hlsl
index 0ba40c6..078f44f 100644
--- a/test/tint/builtins/gen/literal/asinh/16b543.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/asinh/16b543.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,36 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+void asinh_16b543() {
+  float2 res = (0.88137358427047729492f).xx;
+}
+
+void fragment_main() {
+  asinh_16b543();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  asinh_16b543();
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  asinh_16b543();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  vertex_main_outputs v_2 = {v_1.pos};
+  return v_2;
+}
+
diff --git a/test/tint/builtins/gen/literal/asinh/180015.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/asinh/180015.wgsl.expected.ir.dxc.hlsl
index 0ba40c6..a76710d 100644
--- a/test/tint/builtins/gen/literal/asinh/180015.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/asinh/180015.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,36 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+void asinh_180015() {
+  float res = 0.88137358427047729492f;
+}
+
+void fragment_main() {
+  asinh_180015();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  asinh_180015();
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  asinh_180015();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  vertex_main_outputs v_2 = {v_1.pos};
+  return v_2;
+}
+
diff --git a/test/tint/builtins/gen/literal/asinh/180015.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/asinh/180015.wgsl.expected.ir.fxc.hlsl
index 0ba40c6..a76710d 100644
--- a/test/tint/builtins/gen/literal/asinh/180015.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/asinh/180015.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,36 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+void asinh_180015() {
+  float res = 0.88137358427047729492f;
+}
+
+void fragment_main() {
+  asinh_180015();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  asinh_180015();
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  asinh_180015();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  vertex_main_outputs v_2 = {v_1.pos};
+  return v_2;
+}
+
diff --git a/test/tint/builtins/gen/literal/asinh/2265ee.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/asinh/2265ee.wgsl.expected.ir.dxc.hlsl
index 0ba40c6..ff58935 100644
--- a/test/tint/builtins/gen/literal/asinh/2265ee.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/asinh/2265ee.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,42 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  float3 prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation float3 VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+float3 asinh_2265ee() {
+  float3 res = (0.88137358427047729492f).xxx;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store3(0u, asuint(asinh_2265ee()));
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store3(0u, asuint(asinh_2265ee()));
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = asinh_2265ee();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
diff --git a/test/tint/builtins/gen/literal/asinh/2265ee.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/asinh/2265ee.wgsl.expected.ir.fxc.hlsl
index 0ba40c6..ff58935 100644
--- a/test/tint/builtins/gen/literal/asinh/2265ee.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/asinh/2265ee.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,42 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  float3 prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation float3 VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+float3 asinh_2265ee() {
+  float3 res = (0.88137358427047729492f).xxx;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store3(0u, asuint(asinh_2265ee()));
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store3(0u, asuint(asinh_2265ee()));
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = asinh_2265ee();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
diff --git a/test/tint/builtins/gen/literal/asinh/468a48.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/asinh/468a48.wgsl.expected.ir.dxc.hlsl
index 0ba40c6..6ec04d7 100644
--- a/test/tint/builtins/gen/literal/asinh/468a48.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/asinh/468a48.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,42 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  float16_t prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation float16_t VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+float16_t asinh_468a48() {
+  float16_t res = float16_t(0.88134765625h);
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store<float16_t>(0u, asinh_468a48());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store<float16_t>(0u, asinh_468a48());
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = asinh_468a48();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
diff --git a/test/tint/builtins/gen/literal/asinh/468a48.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/asinh/468a48.wgsl.expected.ir.fxc.hlsl
index 0ba40c6..d85e498 100644
--- a/test/tint/builtins/gen/literal/asinh/468a48.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/asinh/468a48.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,47 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct VertexOutput {
+  float4 pos;
+  float16_t prevent_dce;
+};
+
+struct vertex_main_outputs {
+  nointerpolation float16_t VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+float16_t asinh_468a48() {
+  float16_t res = float16_t(0.88134765625h);
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store<float16_t>(0u, asinh_468a48());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store<float16_t>(0u, asinh_468a48());
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = asinh_468a48();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
+FXC validation failure:
+c:\src\dawn\Shader@0x000001BDA49D4720(3,3-11): error X3000: unrecognized identifier 'float16_t'
+
diff --git a/test/tint/builtins/gen/literal/asinh/4a2226.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/asinh/4a2226.wgsl.expected.ir.dxc.hlsl
index 0ba40c6..7c59fd4 100644
--- a/test/tint/builtins/gen/literal/asinh/4a2226.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/asinh/4a2226.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,42 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  float2 prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation float2 VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+float2 asinh_4a2226() {
+  float2 res = (0.88137358427047729492f).xx;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store2(0u, asuint(asinh_4a2226()));
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store2(0u, asuint(asinh_4a2226()));
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = asinh_4a2226();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
diff --git a/test/tint/builtins/gen/literal/asinh/4a2226.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/asinh/4a2226.wgsl.expected.ir.fxc.hlsl
index 0ba40c6..7c59fd4 100644
--- a/test/tint/builtins/gen/literal/asinh/4a2226.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/asinh/4a2226.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,42 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  float2 prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation float2 VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+float2 asinh_4a2226() {
+  float2 res = (0.88137358427047729492f).xx;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store2(0u, asuint(asinh_4a2226()));
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store2(0u, asuint(asinh_4a2226()));
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = asinh_4a2226();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
diff --git a/test/tint/builtins/gen/literal/asinh/51079e.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/asinh/51079e.wgsl.expected.ir.dxc.hlsl
index 0ba40c6..c68e00d 100644
--- a/test/tint/builtins/gen/literal/asinh/51079e.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/asinh/51079e.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,36 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+void asinh_51079e() {
+  float3 res = (0.88137358427047729492f).xxx;
+}
+
+void fragment_main() {
+  asinh_51079e();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  asinh_51079e();
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  asinh_51079e();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  vertex_main_outputs v_2 = {v_1.pos};
+  return v_2;
+}
+
diff --git a/test/tint/builtins/gen/literal/asinh/51079e.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/asinh/51079e.wgsl.expected.ir.fxc.hlsl
index 0ba40c6..c68e00d 100644
--- a/test/tint/builtins/gen/literal/asinh/51079e.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/asinh/51079e.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,36 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+void asinh_51079e() {
+  float3 res = (0.88137358427047729492f).xxx;
+}
+
+void fragment_main() {
+  asinh_51079e();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  asinh_51079e();
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  asinh_51079e();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  vertex_main_outputs v_2 = {v_1.pos};
+  return v_2;
+}
+
diff --git a/test/tint/builtins/gen/literal/asinh/8d2e51.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/asinh/8d2e51.wgsl.expected.ir.dxc.hlsl
index 0ba40c6..f46b6f7 100644
--- a/test/tint/builtins/gen/literal/asinh/8d2e51.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/asinh/8d2e51.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,42 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  float4 prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation float4 VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+float4 asinh_8d2e51() {
+  float4 res = (0.88137358427047729492f).xxxx;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store4(0u, asuint(asinh_8d2e51()));
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store4(0u, asuint(asinh_8d2e51()));
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = asinh_8d2e51();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
diff --git a/test/tint/builtins/gen/literal/asinh/8d2e51.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/asinh/8d2e51.wgsl.expected.ir.fxc.hlsl
index 0ba40c6..f46b6f7 100644
--- a/test/tint/builtins/gen/literal/asinh/8d2e51.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/asinh/8d2e51.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,42 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  float4 prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation float4 VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+float4 asinh_8d2e51() {
+  float4 res = (0.88137358427047729492f).xxxx;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store4(0u, asuint(asinh_8d2e51()));
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store4(0u, asuint(asinh_8d2e51()));
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = asinh_8d2e51();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
diff --git a/test/tint/builtins/gen/literal/asinh/95ab2b.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/asinh/95ab2b.wgsl.expected.ir.dxc.hlsl
index 0ba40c6..9174819 100644
--- a/test/tint/builtins/gen/literal/asinh/95ab2b.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/asinh/95ab2b.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,42 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  vector<float16_t, 4> prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation vector<float16_t, 4> VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+vector<float16_t, 4> asinh_95ab2b() {
+  vector<float16_t, 4> res = (float16_t(0.88134765625h)).xxxx;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store<vector<float16_t, 4> >(0u, asinh_95ab2b());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store<vector<float16_t, 4> >(0u, asinh_95ab2b());
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = asinh_95ab2b();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
diff --git a/test/tint/builtins/gen/literal/asinh/95ab2b.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/asinh/95ab2b.wgsl.expected.ir.fxc.hlsl
index 0ba40c6..7553d83 100644
--- a/test/tint/builtins/gen/literal/asinh/95ab2b.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/asinh/95ab2b.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,47 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct VertexOutput {
+  float4 pos;
+  vector<float16_t, 4> prevent_dce;
+};
+
+struct vertex_main_outputs {
+  nointerpolation vector<float16_t, 4> VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+vector<float16_t, 4> asinh_95ab2b() {
+  vector<float16_t, 4> res = (float16_t(0.88134765625h)).xxxx;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store<vector<float16_t, 4> >(0u, asinh_95ab2b());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store<vector<float16_t, 4> >(0u, asinh_95ab2b());
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = asinh_95ab2b();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
+FXC validation failure:
+c:\src\dawn\Shader@0x000002BB24488360(3,10-18): error X3000: syntax error: unexpected token 'float16_t'
+
diff --git a/test/tint/builtins/gen/literal/asinh/ad8f8b.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/asinh/ad8f8b.wgsl.expected.ir.dxc.hlsl
index 0ba40c6..dd7607b 100644
--- a/test/tint/builtins/gen/literal/asinh/ad8f8b.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/asinh/ad8f8b.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,42 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  vector<float16_t, 2> prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation vector<float16_t, 2> VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+vector<float16_t, 2> asinh_ad8f8b() {
+  vector<float16_t, 2> res = (float16_t(0.88134765625h)).xx;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store<vector<float16_t, 2> >(0u, asinh_ad8f8b());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store<vector<float16_t, 2> >(0u, asinh_ad8f8b());
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = asinh_ad8f8b();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
diff --git a/test/tint/builtins/gen/literal/asinh/ad8f8b.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/asinh/ad8f8b.wgsl.expected.ir.fxc.hlsl
index 0ba40c6..2405e83 100644
--- a/test/tint/builtins/gen/literal/asinh/ad8f8b.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/asinh/ad8f8b.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,47 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct VertexOutput {
+  float4 pos;
+  vector<float16_t, 2> prevent_dce;
+};
+
+struct vertex_main_outputs {
+  nointerpolation vector<float16_t, 2> VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+vector<float16_t, 2> asinh_ad8f8b() {
+  vector<float16_t, 2> res = (float16_t(0.88134765625h)).xx;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store<vector<float16_t, 2> >(0u, asinh_ad8f8b());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store<vector<float16_t, 2> >(0u, asinh_ad8f8b());
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = asinh_ad8f8b();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
+FXC validation failure:
+c:\src\dawn\Shader@0x0000025BBA054270(3,10-18): error X3000: syntax error: unexpected token 'float16_t'
+
diff --git a/test/tint/builtins/gen/literal/asinh/cf8603.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/asinh/cf8603.wgsl.expected.ir.dxc.hlsl
index 0ba40c6..f84f8e1 100644
--- a/test/tint/builtins/gen/literal/asinh/cf8603.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/asinh/cf8603.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,36 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+void asinh_cf8603() {
+  float4 res = (0.88137358427047729492f).xxxx;
+}
+
+void fragment_main() {
+  asinh_cf8603();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  asinh_cf8603();
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  asinh_cf8603();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  vertex_main_outputs v_2 = {v_1.pos};
+  return v_2;
+}
+
diff --git a/test/tint/builtins/gen/literal/asinh/cf8603.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/asinh/cf8603.wgsl.expected.ir.fxc.hlsl
index 0ba40c6..f84f8e1 100644
--- a/test/tint/builtins/gen/literal/asinh/cf8603.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/asinh/cf8603.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,36 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+void asinh_cf8603() {
+  float4 res = (0.88137358427047729492f).xxxx;
+}
+
+void fragment_main() {
+  asinh_cf8603();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  asinh_cf8603();
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  asinh_cf8603();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  vertex_main_outputs v_2 = {v_1.pos};
+  return v_2;
+}
+
diff --git a/test/tint/builtins/gen/literal/asinh/fb5e8c.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/asinh/fb5e8c.wgsl.expected.ir.dxc.hlsl
index 0ba40c6..b4f8afc 100644
--- a/test/tint/builtins/gen/literal/asinh/fb5e8c.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/asinh/fb5e8c.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,42 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  vector<float16_t, 3> prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation vector<float16_t, 3> VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+vector<float16_t, 3> asinh_fb5e8c() {
+  vector<float16_t, 3> res = (float16_t(0.88134765625h)).xxx;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store<vector<float16_t, 3> >(0u, asinh_fb5e8c());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store<vector<float16_t, 3> >(0u, asinh_fb5e8c());
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = asinh_fb5e8c();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
diff --git a/test/tint/builtins/gen/literal/asinh/fb5e8c.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/asinh/fb5e8c.wgsl.expected.ir.fxc.hlsl
index 0ba40c6..7bd0996 100644
--- a/test/tint/builtins/gen/literal/asinh/fb5e8c.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/asinh/fb5e8c.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,47 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct VertexOutput {
+  float4 pos;
+  vector<float16_t, 3> prevent_dce;
+};
+
+struct vertex_main_outputs {
+  nointerpolation vector<float16_t, 3> VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+vector<float16_t, 3> asinh_fb5e8c() {
+  vector<float16_t, 3> res = (float16_t(0.88134765625h)).xxx;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store<vector<float16_t, 3> >(0u, asinh_fb5e8c());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store<vector<float16_t, 3> >(0u, asinh_fb5e8c());
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = asinh_fb5e8c();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
+FXC validation failure:
+c:\src\dawn\Shader@0x0000016F25C008A0(3,10-18): error X3000: syntax error: unexpected token 'float16_t'
+
diff --git a/test/tint/builtins/gen/literal/atan/02979a.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/atan/02979a.wgsl.expected.ir.dxc.hlsl
index 0ba40c6..7ffeb56 100644
--- a/test/tint/builtins/gen/literal/atan/02979a.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/atan/02979a.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,42 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  float prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation float VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+float atan_02979a() {
+  float res = 0.78539818525314331055f;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store(0u, asuint(atan_02979a()));
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store(0u, asuint(atan_02979a()));
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = atan_02979a();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
diff --git a/test/tint/builtins/gen/literal/atan/02979a.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/atan/02979a.wgsl.expected.ir.fxc.hlsl
index 0ba40c6..7ffeb56 100644
--- a/test/tint/builtins/gen/literal/atan/02979a.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/atan/02979a.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,42 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  float prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation float VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+float atan_02979a() {
+  float res = 0.78539818525314331055f;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store(0u, asuint(atan_02979a()));
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store(0u, asuint(atan_02979a()));
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = atan_02979a();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
diff --git a/test/tint/builtins/gen/literal/atan/19faea.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/atan/19faea.wgsl.expected.ir.dxc.hlsl
index 0ba40c6..23be676 100644
--- a/test/tint/builtins/gen/literal/atan/19faea.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/atan/19faea.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,42 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  vector<float16_t, 4> prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation vector<float16_t, 4> VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+vector<float16_t, 4> atan_19faea() {
+  vector<float16_t, 4> res = (float16_t(0.78515625h)).xxxx;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store<vector<float16_t, 4> >(0u, atan_19faea());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store<vector<float16_t, 4> >(0u, atan_19faea());
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = atan_19faea();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
diff --git a/test/tint/builtins/gen/literal/atan/19faea.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/atan/19faea.wgsl.expected.ir.fxc.hlsl
index 0ba40c6..64c1786 100644
--- a/test/tint/builtins/gen/literal/atan/19faea.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/atan/19faea.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,47 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct VertexOutput {
+  float4 pos;
+  vector<float16_t, 4> prevent_dce;
+};
+
+struct vertex_main_outputs {
+  nointerpolation vector<float16_t, 4> VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+vector<float16_t, 4> atan_19faea() {
+  vector<float16_t, 4> res = (float16_t(0.78515625h)).xxxx;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store<vector<float16_t, 4> >(0u, atan_19faea());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store<vector<float16_t, 4> >(0u, atan_19faea());
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = atan_19faea();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
+FXC validation failure:
+c:\src\dawn\Shader@0x0000024A2D3547C0(3,10-18): error X3000: syntax error: unexpected token 'float16_t'
+
diff --git a/test/tint/builtins/gen/literal/atan/1e1764.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/atan/1e1764.wgsl.expected.ir.dxc.hlsl
index 0ba40c6..3c35a7d 100644
--- a/test/tint/builtins/gen/literal/atan/1e1764.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/atan/1e1764.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,42 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  vector<float16_t, 2> prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation vector<float16_t, 2> VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+vector<float16_t, 2> atan_1e1764() {
+  vector<float16_t, 2> res = (float16_t(0.78515625h)).xx;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store<vector<float16_t, 2> >(0u, atan_1e1764());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store<vector<float16_t, 2> >(0u, atan_1e1764());
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = atan_1e1764();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
diff --git a/test/tint/builtins/gen/literal/atan/1e1764.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/atan/1e1764.wgsl.expected.ir.fxc.hlsl
index 0ba40c6..9a3ff21 100644
--- a/test/tint/builtins/gen/literal/atan/1e1764.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/atan/1e1764.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,47 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct VertexOutput {
+  float4 pos;
+  vector<float16_t, 2> prevent_dce;
+};
+
+struct vertex_main_outputs {
+  nointerpolation vector<float16_t, 2> VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+vector<float16_t, 2> atan_1e1764() {
+  vector<float16_t, 2> res = (float16_t(0.78515625h)).xx;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store<vector<float16_t, 2> >(0u, atan_1e1764());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store<vector<float16_t, 2> >(0u, atan_1e1764());
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = atan_1e1764();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
+FXC validation failure:
+c:\src\dawn\Shader@0x000001FBAEBA49A0(3,10-18): error X3000: syntax error: unexpected token 'float16_t'
+
diff --git a/test/tint/builtins/gen/literal/atan/331e6d.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/atan/331e6d.wgsl.expected.ir.dxc.hlsl
index 0ba40c6..e856265 100644
--- a/test/tint/builtins/gen/literal/atan/331e6d.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/atan/331e6d.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,42 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  float3 prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation float3 VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+float3 atan_331e6d() {
+  float3 res = (0.78539818525314331055f).xxx;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store3(0u, asuint(atan_331e6d()));
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store3(0u, asuint(atan_331e6d()));
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = atan_331e6d();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
diff --git a/test/tint/builtins/gen/literal/atan/331e6d.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/atan/331e6d.wgsl.expected.ir.fxc.hlsl
index 0ba40c6..e856265 100644
--- a/test/tint/builtins/gen/literal/atan/331e6d.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/atan/331e6d.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,42 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  float3 prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation float3 VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+float3 atan_331e6d() {
+  float3 res = (0.78539818525314331055f).xxx;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store3(0u, asuint(atan_331e6d()));
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store3(0u, asuint(atan_331e6d()));
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = atan_331e6d();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
diff --git a/test/tint/builtins/gen/literal/atan/5ca7b8.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/atan/5ca7b8.wgsl.expected.ir.dxc.hlsl
index 0ba40c6..e517c0e 100644
--- a/test/tint/builtins/gen/literal/atan/5ca7b8.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/atan/5ca7b8.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,36 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+void atan_5ca7b8() {
+  float2 res = (0.78539818525314331055f).xx;
+}
+
+void fragment_main() {
+  atan_5ca7b8();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  atan_5ca7b8();
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  atan_5ca7b8();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  vertex_main_outputs v_2 = {v_1.pos};
+  return v_2;
+}
+
diff --git a/test/tint/builtins/gen/literal/atan/5ca7b8.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/atan/5ca7b8.wgsl.expected.ir.fxc.hlsl
index 0ba40c6..e517c0e 100644
--- a/test/tint/builtins/gen/literal/atan/5ca7b8.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/atan/5ca7b8.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,36 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+void atan_5ca7b8() {
+  float2 res = (0.78539818525314331055f).xx;
+}
+
+void fragment_main() {
+  atan_5ca7b8();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  atan_5ca7b8();
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  atan_5ca7b8();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  vertex_main_outputs v_2 = {v_1.pos};
+  return v_2;
+}
+
diff --git a/test/tint/builtins/gen/literal/atan/749e1b.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/atan/749e1b.wgsl.expected.ir.dxc.hlsl
index 0ba40c6..ba07f2c 100644
--- a/test/tint/builtins/gen/literal/atan/749e1b.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/atan/749e1b.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,36 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+void atan_749e1b() {
+  float3 res = (0.78539818525314331055f).xxx;
+}
+
+void fragment_main() {
+  atan_749e1b();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  atan_749e1b();
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  atan_749e1b();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  vertex_main_outputs v_2 = {v_1.pos};
+  return v_2;
+}
+
diff --git a/test/tint/builtins/gen/literal/atan/749e1b.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/atan/749e1b.wgsl.expected.ir.fxc.hlsl
index 0ba40c6..ba07f2c 100644
--- a/test/tint/builtins/gen/literal/atan/749e1b.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/atan/749e1b.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,36 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+void atan_749e1b() {
+  float3 res = (0.78539818525314331055f).xxx;
+}
+
+void fragment_main() {
+  atan_749e1b();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  atan_749e1b();
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  atan_749e1b();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  vertex_main_outputs v_2 = {v_1.pos};
+  return v_2;
+}
+
diff --git a/test/tint/builtins/gen/literal/atan/7a2a75.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/atan/7a2a75.wgsl.expected.ir.dxc.hlsl
index 0ba40c6..2db59a7 100644
--- a/test/tint/builtins/gen/literal/atan/7a2a75.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/atan/7a2a75.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,36 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+void atan_7a2a75() {
+  float res = 0.78539818525314331055f;
+}
+
+void fragment_main() {
+  atan_7a2a75();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  atan_7a2a75();
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  atan_7a2a75();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  vertex_main_outputs v_2 = {v_1.pos};
+  return v_2;
+}
+
diff --git a/test/tint/builtins/gen/literal/atan/7a2a75.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/atan/7a2a75.wgsl.expected.ir.fxc.hlsl
index 0ba40c6..2db59a7 100644
--- a/test/tint/builtins/gen/literal/atan/7a2a75.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/atan/7a2a75.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,36 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+void atan_7a2a75() {
+  float res = 0.78539818525314331055f;
+}
+
+void fragment_main() {
+  atan_7a2a75();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  atan_7a2a75();
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  atan_7a2a75();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  vertex_main_outputs v_2 = {v_1.pos};
+  return v_2;
+}
+
diff --git a/test/tint/builtins/gen/literal/atan/a5f421.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/atan/a5f421.wgsl.expected.ir.dxc.hlsl
index 0ba40c6..1694ea7 100644
--- a/test/tint/builtins/gen/literal/atan/a5f421.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/atan/a5f421.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,42 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  vector<float16_t, 3> prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation vector<float16_t, 3> VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+vector<float16_t, 3> atan_a5f421() {
+  vector<float16_t, 3> res = (float16_t(0.78515625h)).xxx;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store<vector<float16_t, 3> >(0u, atan_a5f421());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store<vector<float16_t, 3> >(0u, atan_a5f421());
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = atan_a5f421();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
diff --git a/test/tint/builtins/gen/literal/atan/a5f421.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/atan/a5f421.wgsl.expected.ir.fxc.hlsl
index 0ba40c6..98fd92f 100644
--- a/test/tint/builtins/gen/literal/atan/a5f421.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/atan/a5f421.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,47 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct VertexOutput {
+  float4 pos;
+  vector<float16_t, 3> prevent_dce;
+};
+
+struct vertex_main_outputs {
+  nointerpolation vector<float16_t, 3> VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+vector<float16_t, 3> atan_a5f421() {
+  vector<float16_t, 3> res = (float16_t(0.78515625h)).xxx;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store<vector<float16_t, 3> >(0u, atan_a5f421());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store<vector<float16_t, 3> >(0u, atan_a5f421());
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = atan_a5f421();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
+FXC validation failure:
+c:\src\dawn\Shader@0x00000149D42B54D0(3,10-18): error X3000: syntax error: unexpected token 'float16_t'
+
diff --git a/test/tint/builtins/gen/literal/atan/a7ba61.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/atan/a7ba61.wgsl.expected.ir.dxc.hlsl
index 0ba40c6..f99114c 100644
--- a/test/tint/builtins/gen/literal/atan/a7ba61.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/atan/a7ba61.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,42 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  float16_t prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation float16_t VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+float16_t atan_a7ba61() {
+  float16_t res = float16_t(0.78515625h);
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store<float16_t>(0u, atan_a7ba61());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store<float16_t>(0u, atan_a7ba61());
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = atan_a7ba61();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
diff --git a/test/tint/builtins/gen/literal/atan/a7ba61.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/atan/a7ba61.wgsl.expected.ir.fxc.hlsl
index 0ba40c6..02c82bf 100644
--- a/test/tint/builtins/gen/literal/atan/a7ba61.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/atan/a7ba61.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,47 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct VertexOutput {
+  float4 pos;
+  float16_t prevent_dce;
+};
+
+struct vertex_main_outputs {
+  nointerpolation float16_t VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+float16_t atan_a7ba61() {
+  float16_t res = float16_t(0.78515625h);
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store<float16_t>(0u, atan_a7ba61());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store<float16_t>(0u, atan_a7ba61());
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = atan_a7ba61();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
+FXC validation failure:
+c:\src\dawn\Shader@0x000001F6B3BBC4A0(3,3-11): error X3000: unrecognized identifier 'float16_t'
+
diff --git a/test/tint/builtins/gen/literal/atan/a8b696.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/atan/a8b696.wgsl.expected.ir.dxc.hlsl
index 0ba40c6..c9aa719 100644
--- a/test/tint/builtins/gen/literal/atan/a8b696.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/atan/a8b696.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,42 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  float4 prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation float4 VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+float4 atan_a8b696() {
+  float4 res = (0.78539818525314331055f).xxxx;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store4(0u, asuint(atan_a8b696()));
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store4(0u, asuint(atan_a8b696()));
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = atan_a8b696();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
diff --git a/test/tint/builtins/gen/literal/atan/a8b696.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/atan/a8b696.wgsl.expected.ir.fxc.hlsl
index 0ba40c6..c9aa719 100644
--- a/test/tint/builtins/gen/literal/atan/a8b696.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/atan/a8b696.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,42 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  float4 prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation float4 VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+float4 atan_a8b696() {
+  float4 res = (0.78539818525314331055f).xxxx;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store4(0u, asuint(atan_a8b696()));
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store4(0u, asuint(atan_a8b696()));
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = atan_a8b696();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
diff --git a/test/tint/builtins/gen/literal/atan/ad96e4.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/atan/ad96e4.wgsl.expected.ir.dxc.hlsl
index 0ba40c6..7b17a45 100644
--- a/test/tint/builtins/gen/literal/atan/ad96e4.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/atan/ad96e4.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,42 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  float2 prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation float2 VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+float2 atan_ad96e4() {
+  float2 res = (0.78539818525314331055f).xx;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store2(0u, asuint(atan_ad96e4()));
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store2(0u, asuint(atan_ad96e4()));
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = atan_ad96e4();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
diff --git a/test/tint/builtins/gen/literal/atan/ad96e4.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/atan/ad96e4.wgsl.expected.ir.fxc.hlsl
index 0ba40c6..7b17a45 100644
--- a/test/tint/builtins/gen/literal/atan/ad96e4.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/atan/ad96e4.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,42 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  float2 prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation float2 VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+float2 atan_ad96e4() {
+  float2 res = (0.78539818525314331055f).xx;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store2(0u, asuint(atan_ad96e4()));
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store2(0u, asuint(atan_ad96e4()));
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = atan_ad96e4();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
diff --git a/test/tint/builtins/gen/literal/atan/d17fb2.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/atan/d17fb2.wgsl.expected.ir.dxc.hlsl
index 0ba40c6..49867d0 100644
--- a/test/tint/builtins/gen/literal/atan/d17fb2.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/atan/d17fb2.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,36 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+void atan_d17fb2() {
+  float4 res = (0.78539818525314331055f).xxxx;
+}
+
+void fragment_main() {
+  atan_d17fb2();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  atan_d17fb2();
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  atan_d17fb2();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  vertex_main_outputs v_2 = {v_1.pos};
+  return v_2;
+}
+
diff --git a/test/tint/builtins/gen/literal/atan/d17fb2.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/atan/d17fb2.wgsl.expected.ir.fxc.hlsl
index 0ba40c6..49867d0 100644
--- a/test/tint/builtins/gen/literal/atan/d17fb2.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/atan/d17fb2.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,36 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+void atan_d17fb2() {
+  float4 res = (0.78539818525314331055f).xxxx;
+}
+
+void fragment_main() {
+  atan_d17fb2();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  atan_d17fb2();
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  atan_d17fb2();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  vertex_main_outputs v_2 = {v_1.pos};
+  return v_2;
+}
+
diff --git a/test/tint/builtins/gen/literal/atan2/034ace.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/atan2/034ace.wgsl.expected.ir.dxc.hlsl
index 0ba40c6..d89ae29 100644
--- a/test/tint/builtins/gen/literal/atan2/034ace.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/atan2/034ace.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,36 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+void atan2_034ace() {
+  float res = 0.78539818525314331055f;
+}
+
+void fragment_main() {
+  atan2_034ace();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  atan2_034ace();
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  atan2_034ace();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  vertex_main_outputs v_2 = {v_1.pos};
+  return v_2;
+}
+
diff --git a/test/tint/builtins/gen/literal/atan2/034ace.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/atan2/034ace.wgsl.expected.ir.fxc.hlsl
index 0ba40c6..d89ae29 100644
--- a/test/tint/builtins/gen/literal/atan2/034ace.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/atan2/034ace.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,36 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+void atan2_034ace() {
+  float res = 0.78539818525314331055f;
+}
+
+void fragment_main() {
+  atan2_034ace();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  atan2_034ace();
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  atan2_034ace();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  vertex_main_outputs v_2 = {v_1.pos};
+  return v_2;
+}
+
diff --git a/test/tint/builtins/gen/literal/atan2/21dfea.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/atan2/21dfea.wgsl.expected.ir.dxc.hlsl
index 0ba40c6..1b552c6 100644
--- a/test/tint/builtins/gen/literal/atan2/21dfea.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/atan2/21dfea.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,42 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  vector<float16_t, 3> prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation vector<float16_t, 3> VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+vector<float16_t, 3> atan2_21dfea() {
+  vector<float16_t, 3> res = (float16_t(0.78515625h)).xxx;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store<vector<float16_t, 3> >(0u, atan2_21dfea());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store<vector<float16_t, 3> >(0u, atan2_21dfea());
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = atan2_21dfea();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
diff --git a/test/tint/builtins/gen/literal/atan2/21dfea.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/atan2/21dfea.wgsl.expected.ir.fxc.hlsl
index 0ba40c6..51c9e2b 100644
--- a/test/tint/builtins/gen/literal/atan2/21dfea.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/atan2/21dfea.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,47 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct VertexOutput {
+  float4 pos;
+  vector<float16_t, 3> prevent_dce;
+};
+
+struct vertex_main_outputs {
+  nointerpolation vector<float16_t, 3> VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+vector<float16_t, 3> atan2_21dfea() {
+  vector<float16_t, 3> res = (float16_t(0.78515625h)).xxx;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store<vector<float16_t, 3> >(0u, atan2_21dfea());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store<vector<float16_t, 3> >(0u, atan2_21dfea());
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = atan2_21dfea();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
+FXC validation failure:
+c:\src\dawn\Shader@0x000001C10FA76750(3,10-18): error X3000: syntax error: unexpected token 'float16_t'
+
diff --git a/test/tint/builtins/gen/literal/atan2/3c2865.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/atan2/3c2865.wgsl.expected.ir.dxc.hlsl
index 0ba40c6..836b6b2 100644
--- a/test/tint/builtins/gen/literal/atan2/3c2865.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/atan2/3c2865.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,36 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+void atan2_3c2865() {
+  float3 res = (0.78539818525314331055f).xxx;
+}
+
+void fragment_main() {
+  atan2_3c2865();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  atan2_3c2865();
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  atan2_3c2865();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  vertex_main_outputs v_2 = {v_1.pos};
+  return v_2;
+}
+
diff --git a/test/tint/builtins/gen/literal/atan2/3c2865.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/atan2/3c2865.wgsl.expected.ir.fxc.hlsl
index 0ba40c6..836b6b2 100644
--- a/test/tint/builtins/gen/literal/atan2/3c2865.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/atan2/3c2865.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,36 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+void atan2_3c2865() {
+  float3 res = (0.78539818525314331055f).xxx;
+}
+
+void fragment_main() {
+  atan2_3c2865();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  atan2_3c2865();
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  atan2_3c2865();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  vertex_main_outputs v_2 = {v_1.pos};
+  return v_2;
+}
+
diff --git a/test/tint/builtins/gen/literal/atan2/57fb13.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/atan2/57fb13.wgsl.expected.ir.dxc.hlsl
index 0ba40c6..2a8a7a4 100644
--- a/test/tint/builtins/gen/literal/atan2/57fb13.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/atan2/57fb13.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,42 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  float2 prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation float2 VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+float2 atan2_57fb13() {
+  float2 res = (0.78539818525314331055f).xx;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store2(0u, asuint(atan2_57fb13()));
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store2(0u, asuint(atan2_57fb13()));
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = atan2_57fb13();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
diff --git a/test/tint/builtins/gen/literal/atan2/57fb13.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/atan2/57fb13.wgsl.expected.ir.fxc.hlsl
index 0ba40c6..2a8a7a4 100644
--- a/test/tint/builtins/gen/literal/atan2/57fb13.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/atan2/57fb13.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,42 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  float2 prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation float2 VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+float2 atan2_57fb13() {
+  float2 res = (0.78539818525314331055f).xx;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store2(0u, asuint(atan2_57fb13()));
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store2(0u, asuint(atan2_57fb13()));
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = atan2_57fb13();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
diff --git a/test/tint/builtins/gen/literal/atan2/93febc.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/atan2/93febc.wgsl.expected.ir.dxc.hlsl
index 0ba40c6..b5b0373 100644
--- a/test/tint/builtins/gen/literal/atan2/93febc.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/atan2/93febc.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,42 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  vector<float16_t, 2> prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation vector<float16_t, 2> VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+vector<float16_t, 2> atan2_93febc() {
+  vector<float16_t, 2> res = (float16_t(0.78515625h)).xx;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store<vector<float16_t, 2> >(0u, atan2_93febc());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store<vector<float16_t, 2> >(0u, atan2_93febc());
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = atan2_93febc();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
diff --git a/test/tint/builtins/gen/literal/atan2/93febc.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/atan2/93febc.wgsl.expected.ir.fxc.hlsl
index 0ba40c6..a9a7eba 100644
--- a/test/tint/builtins/gen/literal/atan2/93febc.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/atan2/93febc.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,47 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct VertexOutput {
+  float4 pos;
+  vector<float16_t, 2> prevent_dce;
+};
+
+struct vertex_main_outputs {
+  nointerpolation vector<float16_t, 2> VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+vector<float16_t, 2> atan2_93febc() {
+  vector<float16_t, 2> res = (float16_t(0.78515625h)).xx;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store<vector<float16_t, 2> >(0u, atan2_93febc());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store<vector<float16_t, 2> >(0u, atan2_93febc());
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = atan2_93febc();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
+FXC validation failure:
+c:\src\dawn\Shader@0x00000200395A5E20(3,10-18): error X3000: syntax error: unexpected token 'float16_t'
+
diff --git a/test/tint/builtins/gen/literal/atan2/96057c.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/atan2/96057c.wgsl.expected.ir.dxc.hlsl
index 0ba40c6..0ec2944 100644
--- a/test/tint/builtins/gen/literal/atan2/96057c.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/atan2/96057c.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,42 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  float prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation float VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+float atan2_96057c() {
+  float res = 0.78539818525314331055f;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store(0u, asuint(atan2_96057c()));
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store(0u, asuint(atan2_96057c()));
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = atan2_96057c();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
diff --git a/test/tint/builtins/gen/literal/atan2/96057c.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/atan2/96057c.wgsl.expected.ir.fxc.hlsl
index 0ba40c6..0ec2944 100644
--- a/test/tint/builtins/gen/literal/atan2/96057c.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/atan2/96057c.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,42 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  float prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation float VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+float atan2_96057c() {
+  float res = 0.78539818525314331055f;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store(0u, asuint(atan2_96057c()));
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store(0u, asuint(atan2_96057c()));
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = atan2_96057c();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
diff --git a/test/tint/builtins/gen/literal/atan2/a70d0d.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/atan2/a70d0d.wgsl.expected.ir.dxc.hlsl
index 0ba40c6..d4d839a 100644
--- a/test/tint/builtins/gen/literal/atan2/a70d0d.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/atan2/a70d0d.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,42 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  float3 prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation float3 VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+float3 atan2_a70d0d() {
+  float3 res = (0.78539818525314331055f).xxx;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store3(0u, asuint(atan2_a70d0d()));
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store3(0u, asuint(atan2_a70d0d()));
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = atan2_a70d0d();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
diff --git a/test/tint/builtins/gen/literal/atan2/a70d0d.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/atan2/a70d0d.wgsl.expected.ir.fxc.hlsl
index 0ba40c6..d4d839a 100644
--- a/test/tint/builtins/gen/literal/atan2/a70d0d.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/atan2/a70d0d.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,42 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  float3 prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation float3 VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+float3 atan2_a70d0d() {
+  float3 res = (0.78539818525314331055f).xxx;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store3(0u, asuint(atan2_a70d0d()));
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store3(0u, asuint(atan2_a70d0d()));
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = atan2_a70d0d();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
diff --git a/test/tint/builtins/gen/literal/atan2/ae713e.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/atan2/ae713e.wgsl.expected.ir.dxc.hlsl
index 0ba40c6..a52248e 100644
--- a/test/tint/builtins/gen/literal/atan2/ae713e.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/atan2/ae713e.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,42 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  float4 prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation float4 VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+float4 atan2_ae713e() {
+  float4 res = (0.78539818525314331055f).xxxx;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store4(0u, asuint(atan2_ae713e()));
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store4(0u, asuint(atan2_ae713e()));
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = atan2_ae713e();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
diff --git a/test/tint/builtins/gen/literal/atan2/ae713e.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/atan2/ae713e.wgsl.expected.ir.fxc.hlsl
index 0ba40c6..a52248e 100644
--- a/test/tint/builtins/gen/literal/atan2/ae713e.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/atan2/ae713e.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,42 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  float4 prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation float4 VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+float4 atan2_ae713e() {
+  float4 res = (0.78539818525314331055f).xxxx;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store4(0u, asuint(atan2_ae713e()));
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store4(0u, asuint(atan2_ae713e()));
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = atan2_ae713e();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
diff --git a/test/tint/builtins/gen/literal/atan2/c19683.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/atan2/c19683.wgsl.expected.ir.dxc.hlsl
index 0ba40c6..3398912 100644
--- a/test/tint/builtins/gen/literal/atan2/c19683.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/atan2/c19683.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,36 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+void atan2_c19683() {
+  float2 res = (0.78539818525314331055f).xx;
+}
+
+void fragment_main() {
+  atan2_c19683();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  atan2_c19683();
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  atan2_c19683();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  vertex_main_outputs v_2 = {v_1.pos};
+  return v_2;
+}
+
diff --git a/test/tint/builtins/gen/literal/atan2/c19683.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/atan2/c19683.wgsl.expected.ir.fxc.hlsl
index 0ba40c6..3398912 100644
--- a/test/tint/builtins/gen/literal/atan2/c19683.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/atan2/c19683.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,36 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+void atan2_c19683() {
+  float2 res = (0.78539818525314331055f).xx;
+}
+
+void fragment_main() {
+  atan2_c19683();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  atan2_c19683();
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  atan2_c19683();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  vertex_main_outputs v_2 = {v_1.pos};
+  return v_2;
+}
+
diff --git a/test/tint/builtins/gen/literal/atan2/c4be45.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/atan2/c4be45.wgsl.expected.ir.dxc.hlsl
index 0ba40c6..9500ef0 100644
--- a/test/tint/builtins/gen/literal/atan2/c4be45.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/atan2/c4be45.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,36 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+void atan2_c4be45() {
+  float4 res = (0.78539818525314331055f).xxxx;
+}
+
+void fragment_main() {
+  atan2_c4be45();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  atan2_c4be45();
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  atan2_c4be45();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  vertex_main_outputs v_2 = {v_1.pos};
+  return v_2;
+}
+
diff --git a/test/tint/builtins/gen/literal/atan2/c4be45.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/atan2/c4be45.wgsl.expected.ir.fxc.hlsl
index 0ba40c6..9500ef0 100644
--- a/test/tint/builtins/gen/literal/atan2/c4be45.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/atan2/c4be45.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,36 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+void atan2_c4be45() {
+  float4 res = (0.78539818525314331055f).xxxx;
+}
+
+void fragment_main() {
+  atan2_c4be45();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  atan2_c4be45();
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  atan2_c4be45();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  vertex_main_outputs v_2 = {v_1.pos};
+  return v_2;
+}
+
diff --git a/test/tint/builtins/gen/literal/atan2/ca698e.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/atan2/ca698e.wgsl.expected.ir.dxc.hlsl
index 0ba40c6..4b8da47 100644
--- a/test/tint/builtins/gen/literal/atan2/ca698e.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/atan2/ca698e.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,42 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  float16_t prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation float16_t VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+float16_t atan2_ca698e() {
+  float16_t res = float16_t(0.78515625h);
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store<float16_t>(0u, atan2_ca698e());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store<float16_t>(0u, atan2_ca698e());
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = atan2_ca698e();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
diff --git a/test/tint/builtins/gen/literal/atan2/ca698e.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/atan2/ca698e.wgsl.expected.ir.fxc.hlsl
index 0ba40c6..391ed0d 100644
--- a/test/tint/builtins/gen/literal/atan2/ca698e.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/atan2/ca698e.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,47 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct VertexOutput {
+  float4 pos;
+  float16_t prevent_dce;
+};
+
+struct vertex_main_outputs {
+  nointerpolation float16_t VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+float16_t atan2_ca698e() {
+  float16_t res = float16_t(0.78515625h);
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store<float16_t>(0u, atan2_ca698e());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store<float16_t>(0u, atan2_ca698e());
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = atan2_ca698e();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
+FXC validation failure:
+c:\src\dawn\Shader@0x0000022C3966BE70(3,3-11): error X3000: unrecognized identifier 'float16_t'
+
diff --git a/test/tint/builtins/gen/literal/atan2/d983ab.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/atan2/d983ab.wgsl.expected.ir.dxc.hlsl
index 0ba40c6..3320f31 100644
--- a/test/tint/builtins/gen/literal/atan2/d983ab.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/atan2/d983ab.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,42 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  vector<float16_t, 4> prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation vector<float16_t, 4> VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+vector<float16_t, 4> atan2_d983ab() {
+  vector<float16_t, 4> res = (float16_t(0.78515625h)).xxxx;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store<vector<float16_t, 4> >(0u, atan2_d983ab());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store<vector<float16_t, 4> >(0u, atan2_d983ab());
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = atan2_d983ab();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
diff --git a/test/tint/builtins/gen/literal/atan2/d983ab.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/atan2/d983ab.wgsl.expected.ir.fxc.hlsl
index 0ba40c6..dd076d9 100644
--- a/test/tint/builtins/gen/literal/atan2/d983ab.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/atan2/d983ab.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,47 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct VertexOutput {
+  float4 pos;
+  vector<float16_t, 4> prevent_dce;
+};
+
+struct vertex_main_outputs {
+  nointerpolation vector<float16_t, 4> VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+vector<float16_t, 4> atan2_d983ab() {
+  vector<float16_t, 4> res = (float16_t(0.78515625h)).xxxx;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store<vector<float16_t, 4> >(0u, atan2_d983ab());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store<vector<float16_t, 4> >(0u, atan2_d983ab());
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = atan2_d983ab();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
+FXC validation failure:
+c:\src\dawn\Shader@0x0000022392790390(3,10-18): error X3000: syntax error: unexpected token 'float16_t'
+
diff --git a/test/tint/builtins/gen/literal/atanh/440cca.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/atanh/440cca.wgsl.expected.ir.dxc.hlsl
index 0ba40c6..9752157 100644
--- a/test/tint/builtins/gen/literal/atanh/440cca.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/atanh/440cca.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,42 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  float3 prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation float3 VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+float3 atanh_440cca() {
+  float3 res = (0.54930615425109863281f).xxx;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store3(0u, asuint(atanh_440cca()));
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store3(0u, asuint(atanh_440cca()));
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = atanh_440cca();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
diff --git a/test/tint/builtins/gen/literal/atanh/440cca.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/atanh/440cca.wgsl.expected.ir.fxc.hlsl
index 0ba40c6..9752157 100644
--- a/test/tint/builtins/gen/literal/atanh/440cca.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/atanh/440cca.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,42 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  float3 prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation float3 VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+float3 atanh_440cca() {
+  float3 res = (0.54930615425109863281f).xxx;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store3(0u, asuint(atanh_440cca()));
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store3(0u, asuint(atanh_440cca()));
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = atanh_440cca();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
diff --git a/test/tint/builtins/gen/literal/atanh/5bf88d.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/atanh/5bf88d.wgsl.expected.ir.dxc.hlsl
index 0ba40c6..a56747b 100644
--- a/test/tint/builtins/gen/literal/atanh/5bf88d.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/atanh/5bf88d.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,42 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  vector<float16_t, 2> prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation vector<float16_t, 2> VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+vector<float16_t, 2> atanh_5bf88d() {
+  vector<float16_t, 2> res = (float16_t(0.548828125h)).xx;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store<vector<float16_t, 2> >(0u, atanh_5bf88d());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store<vector<float16_t, 2> >(0u, atanh_5bf88d());
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = atanh_5bf88d();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
diff --git a/test/tint/builtins/gen/literal/atanh/5bf88d.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/atanh/5bf88d.wgsl.expected.ir.fxc.hlsl
index 0ba40c6..1fe1bd0 100644
--- a/test/tint/builtins/gen/literal/atanh/5bf88d.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/atanh/5bf88d.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,47 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct VertexOutput {
+  float4 pos;
+  vector<float16_t, 2> prevent_dce;
+};
+
+struct vertex_main_outputs {
+  nointerpolation vector<float16_t, 2> VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+vector<float16_t, 2> atanh_5bf88d() {
+  vector<float16_t, 2> res = (float16_t(0.548828125h)).xx;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store<vector<float16_t, 2> >(0u, atanh_5bf88d());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store<vector<float16_t, 2> >(0u, atanh_5bf88d());
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = atanh_5bf88d();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
+FXC validation failure:
+c:\src\dawn\Shader@0x0000023FB9986730(3,10-18): error X3000: syntax error: unexpected token 'float16_t'
+
diff --git a/test/tint/builtins/gen/literal/atanh/70d5bd.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/atanh/70d5bd.wgsl.expected.ir.dxc.hlsl
index 0ba40c6..28766a6 100644
--- a/test/tint/builtins/gen/literal/atanh/70d5bd.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/atanh/70d5bd.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,36 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+void atanh_70d5bd() {
+  float2 res = (0.54930615425109863281f).xx;
+}
+
+void fragment_main() {
+  atanh_70d5bd();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  atanh_70d5bd();
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  atanh_70d5bd();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  vertex_main_outputs v_2 = {v_1.pos};
+  return v_2;
+}
+
diff --git a/test/tint/builtins/gen/literal/atanh/70d5bd.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/atanh/70d5bd.wgsl.expected.ir.fxc.hlsl
index 0ba40c6..28766a6 100644
--- a/test/tint/builtins/gen/literal/atanh/70d5bd.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/atanh/70d5bd.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,36 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+void atanh_70d5bd() {
+  float2 res = (0.54930615425109863281f).xx;
+}
+
+void fragment_main() {
+  atanh_70d5bd();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  atanh_70d5bd();
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  atanh_70d5bd();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  vertex_main_outputs v_2 = {v_1.pos};
+  return v_2;
+}
+
diff --git a/test/tint/builtins/gen/literal/atanh/7997d8.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/atanh/7997d8.wgsl.expected.ir.dxc.hlsl
index 0ba40c6..c1b05f8 100644
--- a/test/tint/builtins/gen/literal/atanh/7997d8.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/atanh/7997d8.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,42 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  float prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation float VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+float atanh_7997d8() {
+  float res = 0.54930615425109863281f;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store(0u, asuint(atanh_7997d8()));
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store(0u, asuint(atanh_7997d8()));
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = atanh_7997d8();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
diff --git a/test/tint/builtins/gen/literal/atanh/7997d8.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/atanh/7997d8.wgsl.expected.ir.fxc.hlsl
index 0ba40c6..c1b05f8 100644
--- a/test/tint/builtins/gen/literal/atanh/7997d8.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/atanh/7997d8.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,42 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  float prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation float VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+float atanh_7997d8() {
+  float res = 0.54930615425109863281f;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store(0u, asuint(atanh_7997d8()));
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store(0u, asuint(atanh_7997d8()));
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = atanh_7997d8();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
diff --git a/test/tint/builtins/gen/literal/atanh/7f2874.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/atanh/7f2874.wgsl.expected.ir.dxc.hlsl
index 0ba40c6..dcd788d 100644
--- a/test/tint/builtins/gen/literal/atanh/7f2874.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/atanh/7f2874.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,36 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+void atanh_7f2874() {
+  float3 res = (0.54930615425109863281f).xxx;
+}
+
+void fragment_main() {
+  atanh_7f2874();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  atanh_7f2874();
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  atanh_7f2874();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  vertex_main_outputs v_2 = {v_1.pos};
+  return v_2;
+}
+
diff --git a/test/tint/builtins/gen/literal/atanh/7f2874.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/atanh/7f2874.wgsl.expected.ir.fxc.hlsl
index 0ba40c6..dcd788d 100644
--- a/test/tint/builtins/gen/literal/atanh/7f2874.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/atanh/7f2874.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,36 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+void atanh_7f2874() {
+  float3 res = (0.54930615425109863281f).xxx;
+}
+
+void fragment_main() {
+  atanh_7f2874();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  atanh_7f2874();
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  atanh_7f2874();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  vertex_main_outputs v_2 = {v_1.pos};
+  return v_2;
+}
+
diff --git a/test/tint/builtins/gen/literal/atanh/c0e634.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/atanh/c0e634.wgsl.expected.ir.dxc.hlsl
index 0ba40c6..32d1f30 100644
--- a/test/tint/builtins/gen/literal/atanh/c0e634.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/atanh/c0e634.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,42 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  float2 prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation float2 VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+float2 atanh_c0e634() {
+  float2 res = (0.54930615425109863281f).xx;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store2(0u, asuint(atanh_c0e634()));
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store2(0u, asuint(atanh_c0e634()));
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = atanh_c0e634();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
diff --git a/test/tint/builtins/gen/literal/atanh/c0e634.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/atanh/c0e634.wgsl.expected.ir.fxc.hlsl
index 0ba40c6..32d1f30 100644
--- a/test/tint/builtins/gen/literal/atanh/c0e634.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/atanh/c0e634.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,42 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  float2 prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation float2 VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+float2 atanh_c0e634() {
+  float2 res = (0.54930615425109863281f).xx;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store2(0u, asuint(atanh_c0e634()));
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store2(0u, asuint(atanh_c0e634()));
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = atanh_c0e634();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
diff --git a/test/tint/builtins/gen/literal/atanh/c5dc32.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/atanh/c5dc32.wgsl.expected.ir.dxc.hlsl
index 0ba40c6..72434d6e 100644
--- a/test/tint/builtins/gen/literal/atanh/c5dc32.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/atanh/c5dc32.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,36 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+void atanh_c5dc32() {
+  float res = 0.54930615425109863281f;
+}
+
+void fragment_main() {
+  atanh_c5dc32();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  atanh_c5dc32();
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  atanh_c5dc32();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  vertex_main_outputs v_2 = {v_1.pos};
+  return v_2;
+}
+
diff --git a/test/tint/builtins/gen/literal/atanh/c5dc32.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/atanh/c5dc32.wgsl.expected.ir.fxc.hlsl
index 0ba40c6..72434d6e 100644
--- a/test/tint/builtins/gen/literal/atanh/c5dc32.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/atanh/c5dc32.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,36 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+void atanh_c5dc32() {
+  float res = 0.54930615425109863281f;
+}
+
+void fragment_main() {
+  atanh_c5dc32();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  atanh_c5dc32();
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  atanh_c5dc32();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  vertex_main_outputs v_2 = {v_1.pos};
+  return v_2;
+}
+
diff --git a/test/tint/builtins/gen/literal/atanh/d2d8cd.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/atanh/d2d8cd.wgsl.expected.ir.dxc.hlsl
index 0ba40c6..e4b523e 100644
--- a/test/tint/builtins/gen/literal/atanh/d2d8cd.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/atanh/d2d8cd.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,42 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  float16_t prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation float16_t VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+float16_t atanh_d2d8cd() {
+  float16_t res = float16_t(0.548828125h);
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store<float16_t>(0u, atanh_d2d8cd());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store<float16_t>(0u, atanh_d2d8cd());
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = atanh_d2d8cd();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
diff --git a/test/tint/builtins/gen/literal/atanh/d2d8cd.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/atanh/d2d8cd.wgsl.expected.ir.fxc.hlsl
index 0ba40c6..3e84c8d 100644
--- a/test/tint/builtins/gen/literal/atanh/d2d8cd.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/atanh/d2d8cd.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,47 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct VertexOutput {
+  float4 pos;
+  float16_t prevent_dce;
+};
+
+struct vertex_main_outputs {
+  nointerpolation float16_t VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+float16_t atanh_d2d8cd() {
+  float16_t res = float16_t(0.548828125h);
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store<float16_t>(0u, atanh_d2d8cd());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store<float16_t>(0u, atanh_d2d8cd());
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = atanh_d2d8cd();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
+FXC validation failure:
+c:\src\dawn\Shader@0x0000027AFD5845F0(3,3-11): error X3000: unrecognized identifier 'float16_t'
+
diff --git a/test/tint/builtins/gen/literal/atanh/e3b450.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/atanh/e3b450.wgsl.expected.ir.dxc.hlsl
index 0ba40c6..8f24b42 100644
--- a/test/tint/builtins/gen/literal/atanh/e3b450.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/atanh/e3b450.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,42 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  vector<float16_t, 4> prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation vector<float16_t, 4> VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+vector<float16_t, 4> atanh_e3b450() {
+  vector<float16_t, 4> res = (float16_t(0.548828125h)).xxxx;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store<vector<float16_t, 4> >(0u, atanh_e3b450());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store<vector<float16_t, 4> >(0u, atanh_e3b450());
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = atanh_e3b450();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
diff --git a/test/tint/builtins/gen/literal/atanh/e3b450.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/atanh/e3b450.wgsl.expected.ir.fxc.hlsl
index 0ba40c6..d9dad85 100644
--- a/test/tint/builtins/gen/literal/atanh/e3b450.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/atanh/e3b450.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,47 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct VertexOutput {
+  float4 pos;
+  vector<float16_t, 4> prevent_dce;
+};
+
+struct vertex_main_outputs {
+  nointerpolation vector<float16_t, 4> VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+vector<float16_t, 4> atanh_e3b450() {
+  vector<float16_t, 4> res = (float16_t(0.548828125h)).xxxx;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store<vector<float16_t, 4> >(0u, atanh_e3b450());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store<vector<float16_t, 4> >(0u, atanh_e3b450());
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = atanh_e3b450();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
+FXC validation failure:
+c:\src\dawn\Shader@0x0000020072F8F950(3,10-18): error X3000: syntax error: unexpected token 'float16_t'
+
diff --git a/test/tint/builtins/gen/literal/atanh/e431bb.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/atanh/e431bb.wgsl.expected.ir.dxc.hlsl
index 0ba40c6..8dd6731 100644
--- a/test/tint/builtins/gen/literal/atanh/e431bb.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/atanh/e431bb.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,36 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+void atanh_e431bb() {
+  float4 res = (0.54930615425109863281f).xxxx;
+}
+
+void fragment_main() {
+  atanh_e431bb();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  atanh_e431bb();
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  atanh_e431bb();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  vertex_main_outputs v_2 = {v_1.pos};
+  return v_2;
+}
+
diff --git a/test/tint/builtins/gen/literal/atanh/e431bb.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/atanh/e431bb.wgsl.expected.ir.fxc.hlsl
index 0ba40c6..8dd6731 100644
--- a/test/tint/builtins/gen/literal/atanh/e431bb.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/atanh/e431bb.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,36 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+void atanh_e431bb() {
+  float4 res = (0.54930615425109863281f).xxxx;
+}
+
+void fragment_main() {
+  atanh_e431bb();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  atanh_e431bb();
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  atanh_e431bb();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  vertex_main_outputs v_2 = {v_1.pos};
+  return v_2;
+}
+
diff --git a/test/tint/builtins/gen/literal/atanh/ec4b06.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/atanh/ec4b06.wgsl.expected.ir.dxc.hlsl
index 0ba40c6..231ef66 100644
--- a/test/tint/builtins/gen/literal/atanh/ec4b06.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/atanh/ec4b06.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,42 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  vector<float16_t, 3> prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation vector<float16_t, 3> VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+vector<float16_t, 3> atanh_ec4b06() {
+  vector<float16_t, 3> res = (float16_t(0.548828125h)).xxx;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store<vector<float16_t, 3> >(0u, atanh_ec4b06());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store<vector<float16_t, 3> >(0u, atanh_ec4b06());
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = atanh_ec4b06();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
diff --git a/test/tint/builtins/gen/literal/atanh/ec4b06.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/atanh/ec4b06.wgsl.expected.ir.fxc.hlsl
index 0ba40c6..d63c376 100644
--- a/test/tint/builtins/gen/literal/atanh/ec4b06.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/atanh/ec4b06.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,47 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct VertexOutput {
+  float4 pos;
+  vector<float16_t, 3> prevent_dce;
+};
+
+struct vertex_main_outputs {
+  nointerpolation vector<float16_t, 3> VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+vector<float16_t, 3> atanh_ec4b06() {
+  vector<float16_t, 3> res = (float16_t(0.548828125h)).xxx;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store<vector<float16_t, 3> >(0u, atanh_ec4b06());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store<vector<float16_t, 3> >(0u, atanh_ec4b06());
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = atanh_ec4b06();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
+FXC validation failure:
+c:\src\dawn\Shader@0x0000023C4CBFFAB0(3,10-18): error X3000: syntax error: unexpected token 'float16_t'
+
diff --git a/test/tint/builtins/gen/literal/atanh/f3e01b.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/atanh/f3e01b.wgsl.expected.ir.dxc.hlsl
index 0ba40c6..8a16542 100644
--- a/test/tint/builtins/gen/literal/atanh/f3e01b.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/atanh/f3e01b.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,42 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  float4 prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation float4 VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+float4 atanh_f3e01b() {
+  float4 res = (0.54930615425109863281f).xxxx;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store4(0u, asuint(atanh_f3e01b()));
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store4(0u, asuint(atanh_f3e01b()));
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = atanh_f3e01b();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
diff --git a/test/tint/builtins/gen/literal/atanh/f3e01b.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/atanh/f3e01b.wgsl.expected.ir.fxc.hlsl
index 0ba40c6..8a16542 100644
--- a/test/tint/builtins/gen/literal/atanh/f3e01b.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/atanh/f3e01b.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,42 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  float4 prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation float4 VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+float4 atanh_f3e01b() {
+  float4 res = (0.54930615425109863281f).xxxx;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store4(0u, asuint(atanh_f3e01b()));
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store4(0u, asuint(atanh_f3e01b()));
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = atanh_f3e01b();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
diff --git a/test/tint/builtins/gen/literal/atomicAdd/794055.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/atomicAdd/794055.wgsl.expected.ir.dxc.hlsl
index b786ae2..720440f 100644
--- a/test/tint/builtins/gen/literal/atomicAdd/794055.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/atomicAdd/794055.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,28 @@
-SKIP: FAILED
+struct compute_main_inputs {
+  uint tint_local_index : SV_GroupIndex;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: atomicAdd
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+
+RWByteAddressBuffer prevent_dce : register(u0);
+groupshared int arg_0;
+int atomicAdd_794055() {
+  int v = 0;
+  InterlockedAdd(arg_0, 1, v);
+  int res = v;
+  return res;
+}
+
+void compute_main_inner(uint tint_local_index) {
+  if ((tint_local_index == 0u)) {
+    int v_1 = 0;
+    InterlockedExchange(arg_0, 0, v_1);
+  }
+  GroupMemoryBarrierWithGroupSync();
+  prevent_dce.Store(0u, asuint(atomicAdd_794055()));
+}
+
+[numthreads(1, 1, 1)]
+void compute_main(compute_main_inputs inputs) {
+  compute_main_inner(inputs.tint_local_index);
+}
+
diff --git a/test/tint/builtins/gen/literal/atomicAdd/794055.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/atomicAdd/794055.wgsl.expected.ir.fxc.hlsl
index b786ae2..720440f 100644
--- a/test/tint/builtins/gen/literal/atomicAdd/794055.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/atomicAdd/794055.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,28 @@
-SKIP: FAILED
+struct compute_main_inputs {
+  uint tint_local_index : SV_GroupIndex;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: atomicAdd
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+
+RWByteAddressBuffer prevent_dce : register(u0);
+groupshared int arg_0;
+int atomicAdd_794055() {
+  int v = 0;
+  InterlockedAdd(arg_0, 1, v);
+  int res = v;
+  return res;
+}
+
+void compute_main_inner(uint tint_local_index) {
+  if ((tint_local_index == 0u)) {
+    int v_1 = 0;
+    InterlockedExchange(arg_0, 0, v_1);
+  }
+  GroupMemoryBarrierWithGroupSync();
+  prevent_dce.Store(0u, asuint(atomicAdd_794055()));
+}
+
+[numthreads(1, 1, 1)]
+void compute_main(compute_main_inputs inputs) {
+  compute_main_inner(inputs.tint_local_index);
+}
+
diff --git a/test/tint/builtins/gen/literal/atomicAdd/8a199a.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/atomicAdd/8a199a.wgsl.expected.ir.dxc.hlsl
index b786ae2..0293955 100644
--- a/test/tint/builtins/gen/literal/atomicAdd/8a199a.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/atomicAdd/8a199a.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,19 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: atomicAdd
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWByteAddressBuffer prevent_dce : register(u0);
+RWByteAddressBuffer sb_rw : register(u1);
+uint atomicAdd_8a199a() {
+  uint v = 0u;
+  sb_rw.InterlockedAdd(uint(0u), 1u, v);
+  uint res = v;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store(0u, atomicAdd_8a199a());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store(0u, atomicAdd_8a199a());
+}
+
diff --git a/test/tint/builtins/gen/literal/atomicAdd/8a199a.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/atomicAdd/8a199a.wgsl.expected.ir.fxc.hlsl
index b786ae2..0293955 100644
--- a/test/tint/builtins/gen/literal/atomicAdd/8a199a.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/atomicAdd/8a199a.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,19 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: atomicAdd
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWByteAddressBuffer prevent_dce : register(u0);
+RWByteAddressBuffer sb_rw : register(u1);
+uint atomicAdd_8a199a() {
+  uint v = 0u;
+  sb_rw.InterlockedAdd(uint(0u), 1u, v);
+  uint res = v;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store(0u, atomicAdd_8a199a());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store(0u, atomicAdd_8a199a());
+}
+
diff --git a/test/tint/builtins/gen/literal/atomicAdd/d32fe4.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/atomicAdd/d32fe4.wgsl.expected.ir.dxc.hlsl
index b786ae2..7a7df9b 100644
--- a/test/tint/builtins/gen/literal/atomicAdd/d32fe4.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/atomicAdd/d32fe4.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,19 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: atomicAdd
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWByteAddressBuffer prevent_dce : register(u0);
+RWByteAddressBuffer sb_rw : register(u1);
+int atomicAdd_d32fe4() {
+  int v = 0;
+  sb_rw.InterlockedAdd(int(0u), 1, v);
+  int res = v;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store(0u, asuint(atomicAdd_d32fe4()));
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store(0u, asuint(atomicAdd_d32fe4()));
+}
+
diff --git a/test/tint/builtins/gen/literal/atomicAdd/d32fe4.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/atomicAdd/d32fe4.wgsl.expected.ir.fxc.hlsl
index b786ae2..7a7df9b 100644
--- a/test/tint/builtins/gen/literal/atomicAdd/d32fe4.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/atomicAdd/d32fe4.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,19 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: atomicAdd
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWByteAddressBuffer prevent_dce : register(u0);
+RWByteAddressBuffer sb_rw : register(u1);
+int atomicAdd_d32fe4() {
+  int v = 0;
+  sb_rw.InterlockedAdd(int(0u), 1, v);
+  int res = v;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store(0u, asuint(atomicAdd_d32fe4()));
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store(0u, asuint(atomicAdd_d32fe4()));
+}
+
diff --git a/test/tint/builtins/gen/literal/atomicAdd/d5db1d.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/atomicAdd/d5db1d.wgsl.expected.ir.dxc.hlsl
index b786ae2..7b964f4 100644
--- a/test/tint/builtins/gen/literal/atomicAdd/d5db1d.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/atomicAdd/d5db1d.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,28 @@
-SKIP: FAILED
+struct compute_main_inputs {
+  uint tint_local_index : SV_GroupIndex;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: atomicAdd
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+
+RWByteAddressBuffer prevent_dce : register(u0);
+groupshared uint arg_0;
+uint atomicAdd_d5db1d() {
+  uint v = 0u;
+  InterlockedAdd(arg_0, 1u, v);
+  uint res = v;
+  return res;
+}
+
+void compute_main_inner(uint tint_local_index) {
+  if ((tint_local_index == 0u)) {
+    uint v_1 = 0u;
+    InterlockedExchange(arg_0, 0u, v_1);
+  }
+  GroupMemoryBarrierWithGroupSync();
+  prevent_dce.Store(0u, atomicAdd_d5db1d());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main(compute_main_inputs inputs) {
+  compute_main_inner(inputs.tint_local_index);
+}
+
diff --git a/test/tint/builtins/gen/literal/atomicAdd/d5db1d.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/atomicAdd/d5db1d.wgsl.expected.ir.fxc.hlsl
index b786ae2..7b964f4 100644
--- a/test/tint/builtins/gen/literal/atomicAdd/d5db1d.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/atomicAdd/d5db1d.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,28 @@
-SKIP: FAILED
+struct compute_main_inputs {
+  uint tint_local_index : SV_GroupIndex;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: atomicAdd
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+
+RWByteAddressBuffer prevent_dce : register(u0);
+groupshared uint arg_0;
+uint atomicAdd_d5db1d() {
+  uint v = 0u;
+  InterlockedAdd(arg_0, 1u, v);
+  uint res = v;
+  return res;
+}
+
+void compute_main_inner(uint tint_local_index) {
+  if ((tint_local_index == 0u)) {
+    uint v_1 = 0u;
+    InterlockedExchange(arg_0, 0u, v_1);
+  }
+  GroupMemoryBarrierWithGroupSync();
+  prevent_dce.Store(0u, atomicAdd_d5db1d());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main(compute_main_inputs inputs) {
+  compute_main_inner(inputs.tint_local_index);
+}
+
diff --git a/test/tint/builtins/gen/literal/atomicAnd/152966.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/atomicAnd/152966.wgsl.expected.ir.dxc.hlsl
index 084941d..96a9082 100644
--- a/test/tint/builtins/gen/literal/atomicAnd/152966.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/atomicAnd/152966.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,19 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: atomicAnd
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWByteAddressBuffer prevent_dce : register(u0);
+RWByteAddressBuffer sb_rw : register(u1);
+int atomicAnd_152966() {
+  int v = 0;
+  sb_rw.InterlockedAnd(int(0u), 1, v);
+  int res = v;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store(0u, asuint(atomicAnd_152966()));
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store(0u, asuint(atomicAnd_152966()));
+}
+
diff --git a/test/tint/builtins/gen/literal/atomicAnd/152966.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/atomicAnd/152966.wgsl.expected.ir.fxc.hlsl
index 084941d..96a9082 100644
--- a/test/tint/builtins/gen/literal/atomicAnd/152966.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/atomicAnd/152966.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,19 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: atomicAnd
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWByteAddressBuffer prevent_dce : register(u0);
+RWByteAddressBuffer sb_rw : register(u1);
+int atomicAnd_152966() {
+  int v = 0;
+  sb_rw.InterlockedAnd(int(0u), 1, v);
+  int res = v;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store(0u, asuint(atomicAnd_152966()));
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store(0u, asuint(atomicAnd_152966()));
+}
+
diff --git a/test/tint/builtins/gen/literal/atomicAnd/34edd3.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/atomicAnd/34edd3.wgsl.expected.ir.dxc.hlsl
index 084941d..09e486e 100644
--- a/test/tint/builtins/gen/literal/atomicAnd/34edd3.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/atomicAnd/34edd3.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,28 @@
-SKIP: FAILED
+struct compute_main_inputs {
+  uint tint_local_index : SV_GroupIndex;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: atomicAnd
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+
+RWByteAddressBuffer prevent_dce : register(u0);
+groupshared uint arg_0;
+uint atomicAnd_34edd3() {
+  uint v = 0u;
+  InterlockedAnd(arg_0, 1u, v);
+  uint res = v;
+  return res;
+}
+
+void compute_main_inner(uint tint_local_index) {
+  if ((tint_local_index == 0u)) {
+    uint v_1 = 0u;
+    InterlockedExchange(arg_0, 0u, v_1);
+  }
+  GroupMemoryBarrierWithGroupSync();
+  prevent_dce.Store(0u, atomicAnd_34edd3());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main(compute_main_inputs inputs) {
+  compute_main_inner(inputs.tint_local_index);
+}
+
diff --git a/test/tint/builtins/gen/literal/atomicAnd/34edd3.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/atomicAnd/34edd3.wgsl.expected.ir.fxc.hlsl
index 084941d..09e486e 100644
--- a/test/tint/builtins/gen/literal/atomicAnd/34edd3.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/atomicAnd/34edd3.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,28 @@
-SKIP: FAILED
+struct compute_main_inputs {
+  uint tint_local_index : SV_GroupIndex;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: atomicAnd
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+
+RWByteAddressBuffer prevent_dce : register(u0);
+groupshared uint arg_0;
+uint atomicAnd_34edd3() {
+  uint v = 0u;
+  InterlockedAnd(arg_0, 1u, v);
+  uint res = v;
+  return res;
+}
+
+void compute_main_inner(uint tint_local_index) {
+  if ((tint_local_index == 0u)) {
+    uint v_1 = 0u;
+    InterlockedExchange(arg_0, 0u, v_1);
+  }
+  GroupMemoryBarrierWithGroupSync();
+  prevent_dce.Store(0u, atomicAnd_34edd3());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main(compute_main_inputs inputs) {
+  compute_main_inner(inputs.tint_local_index);
+}
+
diff --git a/test/tint/builtins/gen/literal/atomicAnd/45a819.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/atomicAnd/45a819.wgsl.expected.ir.dxc.hlsl
index 084941d..c7b198a 100644
--- a/test/tint/builtins/gen/literal/atomicAnd/45a819.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/atomicAnd/45a819.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,28 @@
-SKIP: FAILED
+struct compute_main_inputs {
+  uint tint_local_index : SV_GroupIndex;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: atomicAnd
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+
+RWByteAddressBuffer prevent_dce : register(u0);
+groupshared int arg_0;
+int atomicAnd_45a819() {
+  int v = 0;
+  InterlockedAnd(arg_0, 1, v);
+  int res = v;
+  return res;
+}
+
+void compute_main_inner(uint tint_local_index) {
+  if ((tint_local_index == 0u)) {
+    int v_1 = 0;
+    InterlockedExchange(arg_0, 0, v_1);
+  }
+  GroupMemoryBarrierWithGroupSync();
+  prevent_dce.Store(0u, asuint(atomicAnd_45a819()));
+}
+
+[numthreads(1, 1, 1)]
+void compute_main(compute_main_inputs inputs) {
+  compute_main_inner(inputs.tint_local_index);
+}
+
diff --git a/test/tint/builtins/gen/literal/atomicAnd/45a819.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/atomicAnd/45a819.wgsl.expected.ir.fxc.hlsl
index 084941d..c7b198a 100644
--- a/test/tint/builtins/gen/literal/atomicAnd/45a819.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/atomicAnd/45a819.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,28 @@
-SKIP: FAILED
+struct compute_main_inputs {
+  uint tint_local_index : SV_GroupIndex;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: atomicAnd
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+
+RWByteAddressBuffer prevent_dce : register(u0);
+groupshared int arg_0;
+int atomicAnd_45a819() {
+  int v = 0;
+  InterlockedAnd(arg_0, 1, v);
+  int res = v;
+  return res;
+}
+
+void compute_main_inner(uint tint_local_index) {
+  if ((tint_local_index == 0u)) {
+    int v_1 = 0;
+    InterlockedExchange(arg_0, 0, v_1);
+  }
+  GroupMemoryBarrierWithGroupSync();
+  prevent_dce.Store(0u, asuint(atomicAnd_45a819()));
+}
+
+[numthreads(1, 1, 1)]
+void compute_main(compute_main_inputs inputs) {
+  compute_main_inner(inputs.tint_local_index);
+}
+
diff --git a/test/tint/builtins/gen/literal/atomicAnd/85a8d9.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/atomicAnd/85a8d9.wgsl.expected.ir.dxc.hlsl
index 084941d..1170846 100644
--- a/test/tint/builtins/gen/literal/atomicAnd/85a8d9.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/atomicAnd/85a8d9.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,19 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: atomicAnd
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWByteAddressBuffer prevent_dce : register(u0);
+RWByteAddressBuffer sb_rw : register(u1);
+uint atomicAnd_85a8d9() {
+  uint v = 0u;
+  sb_rw.InterlockedAnd(uint(0u), 1u, v);
+  uint res = v;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store(0u, atomicAnd_85a8d9());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store(0u, atomicAnd_85a8d9());
+}
+
diff --git a/test/tint/builtins/gen/literal/atomicAnd/85a8d9.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/atomicAnd/85a8d9.wgsl.expected.ir.fxc.hlsl
index 084941d..1170846 100644
--- a/test/tint/builtins/gen/literal/atomicAnd/85a8d9.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/atomicAnd/85a8d9.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,19 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: atomicAnd
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWByteAddressBuffer prevent_dce : register(u0);
+RWByteAddressBuffer sb_rw : register(u1);
+uint atomicAnd_85a8d9() {
+  uint v = 0u;
+  sb_rw.InterlockedAnd(uint(0u), 1u, v);
+  uint res = v;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store(0u, atomicAnd_85a8d9());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store(0u, atomicAnd_85a8d9());
+}
+
diff --git a/test/tint/builtins/gen/literal/atomicCompareExchangeWeak/1bd40a.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/atomicCompareExchangeWeak/1bd40a.wgsl.expected.ir.dxc.hlsl
index 374b349..bc9e328 100644
--- a/test/tint/builtins/gen/literal/atomicCompareExchangeWeak/1bd40a.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/atomicCompareExchangeWeak/1bd40a.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,23 @@
-SKIP: FAILED
+struct atomic_compare_exchange_result_i32 {
+  int old_value;
+  bool exchanged;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: atomicCompareExchangeWeak
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+
+RWByteAddressBuffer sb_rw : register(u0);
+void atomicCompareExchangeWeak_1bd40a() {
+  int v = 0;
+  sb_rw.InterlockedCompareExchange(int(0u), 1, 1, v);
+  int v_1 = v;
+  atomic_compare_exchange_result_i32 res = {v_1, (v_1 == 1)};
+}
+
+void fragment_main() {
+  atomicCompareExchangeWeak_1bd40a();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  atomicCompareExchangeWeak_1bd40a();
+}
+
diff --git a/test/tint/builtins/gen/literal/atomicCompareExchangeWeak/1bd40a.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/atomicCompareExchangeWeak/1bd40a.wgsl.expected.ir.fxc.hlsl
index 374b349..bc9e328 100644
--- a/test/tint/builtins/gen/literal/atomicCompareExchangeWeak/1bd40a.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/atomicCompareExchangeWeak/1bd40a.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,23 @@
-SKIP: FAILED
+struct atomic_compare_exchange_result_i32 {
+  int old_value;
+  bool exchanged;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: atomicCompareExchangeWeak
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+
+RWByteAddressBuffer sb_rw : register(u0);
+void atomicCompareExchangeWeak_1bd40a() {
+  int v = 0;
+  sb_rw.InterlockedCompareExchange(int(0u), 1, 1, v);
+  int v_1 = v;
+  atomic_compare_exchange_result_i32 res = {v_1, (v_1 == 1)};
+}
+
+void fragment_main() {
+  atomicCompareExchangeWeak_1bd40a();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  atomicCompareExchangeWeak_1bd40a();
+}
+
diff --git a/test/tint/builtins/gen/literal/atomicCompareExchangeWeak/63d8e6.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/atomicCompareExchangeWeak/63d8e6.wgsl.expected.ir.dxc.hlsl
index 374b349..8d536a07 100644
--- a/test/tint/builtins/gen/literal/atomicCompareExchangeWeak/63d8e6.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/atomicCompareExchangeWeak/63d8e6.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,23 @@
-SKIP: FAILED
+struct atomic_compare_exchange_result_u32 {
+  uint old_value;
+  bool exchanged;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: atomicCompareExchangeWeak
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+
+RWByteAddressBuffer sb_rw : register(u0);
+void atomicCompareExchangeWeak_63d8e6() {
+  uint v = 0u;
+  sb_rw.InterlockedCompareExchange(uint(0u), 1u, 1u, v);
+  uint v_1 = v;
+  atomic_compare_exchange_result_u32 res = {v_1, (v_1 == 1u)};
+}
+
+void fragment_main() {
+  atomicCompareExchangeWeak_63d8e6();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  atomicCompareExchangeWeak_63d8e6();
+}
+
diff --git a/test/tint/builtins/gen/literal/atomicCompareExchangeWeak/63d8e6.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/atomicCompareExchangeWeak/63d8e6.wgsl.expected.ir.fxc.hlsl
index 374b349..8d536a07 100644
--- a/test/tint/builtins/gen/literal/atomicCompareExchangeWeak/63d8e6.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/atomicCompareExchangeWeak/63d8e6.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,23 @@
-SKIP: FAILED
+struct atomic_compare_exchange_result_u32 {
+  uint old_value;
+  bool exchanged;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: atomicCompareExchangeWeak
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+
+RWByteAddressBuffer sb_rw : register(u0);
+void atomicCompareExchangeWeak_63d8e6() {
+  uint v = 0u;
+  sb_rw.InterlockedCompareExchange(uint(0u), 1u, 1u, v);
+  uint v_1 = v;
+  atomic_compare_exchange_result_u32 res = {v_1, (v_1 == 1u)};
+}
+
+void fragment_main() {
+  atomicCompareExchangeWeak_63d8e6();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  atomicCompareExchangeWeak_63d8e6();
+}
+
diff --git a/test/tint/builtins/gen/literal/atomicCompareExchangeWeak/83580d.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/atomicCompareExchangeWeak/83580d.wgsl.expected.ir.dxc.hlsl
index 374b349..f0269ec 100644
--- a/test/tint/builtins/gen/literal/atomicCompareExchangeWeak/83580d.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/atomicCompareExchangeWeak/83580d.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,32 @@
-SKIP: FAILED
+struct atomic_compare_exchange_result_u32 {
+  uint old_value;
+  bool exchanged;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: atomicCompareExchangeWeak
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct compute_main_inputs {
+  uint tint_local_index : SV_GroupIndex;
+};
+
+
+groupshared uint arg_0;
+void atomicCompareExchangeWeak_83580d() {
+  uint v = 0u;
+  InterlockedCompareExchange(arg_0, 1u, 1u, v);
+  uint v_1 = v;
+  atomic_compare_exchange_result_u32 res = {v_1, (v_1 == 1u)};
+}
+
+void compute_main_inner(uint tint_local_index) {
+  if ((tint_local_index == 0u)) {
+    uint v_2 = 0u;
+    InterlockedExchange(arg_0, 0u, v_2);
+  }
+  GroupMemoryBarrierWithGroupSync();
+  atomicCompareExchangeWeak_83580d();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main(compute_main_inputs inputs) {
+  compute_main_inner(inputs.tint_local_index);
+}
+
diff --git a/test/tint/builtins/gen/literal/atomicCompareExchangeWeak/83580d.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/atomicCompareExchangeWeak/83580d.wgsl.expected.ir.fxc.hlsl
index 374b349..f0269ec 100644
--- a/test/tint/builtins/gen/literal/atomicCompareExchangeWeak/83580d.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/atomicCompareExchangeWeak/83580d.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,32 @@
-SKIP: FAILED
+struct atomic_compare_exchange_result_u32 {
+  uint old_value;
+  bool exchanged;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: atomicCompareExchangeWeak
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct compute_main_inputs {
+  uint tint_local_index : SV_GroupIndex;
+};
+
+
+groupshared uint arg_0;
+void atomicCompareExchangeWeak_83580d() {
+  uint v = 0u;
+  InterlockedCompareExchange(arg_0, 1u, 1u, v);
+  uint v_1 = v;
+  atomic_compare_exchange_result_u32 res = {v_1, (v_1 == 1u)};
+}
+
+void compute_main_inner(uint tint_local_index) {
+  if ((tint_local_index == 0u)) {
+    uint v_2 = 0u;
+    InterlockedExchange(arg_0, 0u, v_2);
+  }
+  GroupMemoryBarrierWithGroupSync();
+  atomicCompareExchangeWeak_83580d();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main(compute_main_inputs inputs) {
+  compute_main_inner(inputs.tint_local_index);
+}
+
diff --git a/test/tint/builtins/gen/literal/atomicCompareExchangeWeak/e88938.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/atomicCompareExchangeWeak/e88938.wgsl.expected.ir.dxc.hlsl
index 374b349..e66474c 100644
--- a/test/tint/builtins/gen/literal/atomicCompareExchangeWeak/e88938.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/atomicCompareExchangeWeak/e88938.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,32 @@
-SKIP: FAILED
+struct atomic_compare_exchange_result_i32 {
+  int old_value;
+  bool exchanged;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: atomicCompareExchangeWeak
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct compute_main_inputs {
+  uint tint_local_index : SV_GroupIndex;
+};
+
+
+groupshared int arg_0;
+void atomicCompareExchangeWeak_e88938() {
+  int v = 0;
+  InterlockedCompareExchange(arg_0, 1, 1, v);
+  int v_1 = v;
+  atomic_compare_exchange_result_i32 res = {v_1, (v_1 == 1)};
+}
+
+void compute_main_inner(uint tint_local_index) {
+  if ((tint_local_index == 0u)) {
+    int v_2 = 0;
+    InterlockedExchange(arg_0, 0, v_2);
+  }
+  GroupMemoryBarrierWithGroupSync();
+  atomicCompareExchangeWeak_e88938();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main(compute_main_inputs inputs) {
+  compute_main_inner(inputs.tint_local_index);
+}
+
diff --git a/test/tint/builtins/gen/literal/atomicCompareExchangeWeak/e88938.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/atomicCompareExchangeWeak/e88938.wgsl.expected.ir.fxc.hlsl
index 374b349..e66474c 100644
--- a/test/tint/builtins/gen/literal/atomicCompareExchangeWeak/e88938.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/atomicCompareExchangeWeak/e88938.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,32 @@
-SKIP: FAILED
+struct atomic_compare_exchange_result_i32 {
+  int old_value;
+  bool exchanged;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: atomicCompareExchangeWeak
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct compute_main_inputs {
+  uint tint_local_index : SV_GroupIndex;
+};
+
+
+groupshared int arg_0;
+void atomicCompareExchangeWeak_e88938() {
+  int v = 0;
+  InterlockedCompareExchange(arg_0, 1, 1, v);
+  int v_1 = v;
+  atomic_compare_exchange_result_i32 res = {v_1, (v_1 == 1)};
+}
+
+void compute_main_inner(uint tint_local_index) {
+  if ((tint_local_index == 0u)) {
+    int v_2 = 0;
+    InterlockedExchange(arg_0, 0, v_2);
+  }
+  GroupMemoryBarrierWithGroupSync();
+  atomicCompareExchangeWeak_e88938();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main(compute_main_inputs inputs) {
+  compute_main_inner(inputs.tint_local_index);
+}
+
diff --git a/test/tint/builtins/gen/literal/atomicExchange/0a5dca.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/atomicExchange/0a5dca.wgsl.expected.ir.dxc.hlsl
index 165fea9..5b91e06 100644
--- a/test/tint/builtins/gen/literal/atomicExchange/0a5dca.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/atomicExchange/0a5dca.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,28 @@
-SKIP: FAILED
+struct compute_main_inputs {
+  uint tint_local_index : SV_GroupIndex;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: atomicExchange
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+
+RWByteAddressBuffer prevent_dce : register(u0);
+groupshared uint arg_0;
+uint atomicExchange_0a5dca() {
+  uint v = 0u;
+  InterlockedExchange(arg_0, 1u, v);
+  uint res = v;
+  return res;
+}
+
+void compute_main_inner(uint tint_local_index) {
+  if ((tint_local_index == 0u)) {
+    uint v_1 = 0u;
+    InterlockedExchange(arg_0, 0u, v_1);
+  }
+  GroupMemoryBarrierWithGroupSync();
+  prevent_dce.Store(0u, atomicExchange_0a5dca());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main(compute_main_inputs inputs) {
+  compute_main_inner(inputs.tint_local_index);
+}
+
diff --git a/test/tint/builtins/gen/literal/atomicExchange/0a5dca.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/atomicExchange/0a5dca.wgsl.expected.ir.fxc.hlsl
index 165fea9..5b91e06 100644
--- a/test/tint/builtins/gen/literal/atomicExchange/0a5dca.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/atomicExchange/0a5dca.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,28 @@
-SKIP: FAILED
+struct compute_main_inputs {
+  uint tint_local_index : SV_GroupIndex;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: atomicExchange
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+
+RWByteAddressBuffer prevent_dce : register(u0);
+groupshared uint arg_0;
+uint atomicExchange_0a5dca() {
+  uint v = 0u;
+  InterlockedExchange(arg_0, 1u, v);
+  uint res = v;
+  return res;
+}
+
+void compute_main_inner(uint tint_local_index) {
+  if ((tint_local_index == 0u)) {
+    uint v_1 = 0u;
+    InterlockedExchange(arg_0, 0u, v_1);
+  }
+  GroupMemoryBarrierWithGroupSync();
+  prevent_dce.Store(0u, atomicExchange_0a5dca());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main(compute_main_inputs inputs) {
+  compute_main_inner(inputs.tint_local_index);
+}
+
diff --git a/test/tint/builtins/gen/literal/atomicExchange/d59712.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/atomicExchange/d59712.wgsl.expected.ir.dxc.hlsl
index 165fea9..9b4788d 100644
--- a/test/tint/builtins/gen/literal/atomicExchange/d59712.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/atomicExchange/d59712.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,19 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: atomicExchange
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWByteAddressBuffer prevent_dce : register(u0);
+RWByteAddressBuffer sb_rw : register(u1);
+uint atomicExchange_d59712() {
+  uint v = 0u;
+  sb_rw.InterlockedExchange(uint(0u), 1u, v);
+  uint res = v;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store(0u, atomicExchange_d59712());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store(0u, atomicExchange_d59712());
+}
+
diff --git a/test/tint/builtins/gen/literal/atomicExchange/d59712.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/atomicExchange/d59712.wgsl.expected.ir.fxc.hlsl
index 165fea9..9b4788d 100644
--- a/test/tint/builtins/gen/literal/atomicExchange/d59712.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/atomicExchange/d59712.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,19 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: atomicExchange
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWByteAddressBuffer prevent_dce : register(u0);
+RWByteAddressBuffer sb_rw : register(u1);
+uint atomicExchange_d59712() {
+  uint v = 0u;
+  sb_rw.InterlockedExchange(uint(0u), 1u, v);
+  uint res = v;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store(0u, atomicExchange_d59712());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store(0u, atomicExchange_d59712());
+}
+
diff --git a/test/tint/builtins/gen/literal/atomicExchange/e114ba.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/atomicExchange/e114ba.wgsl.expected.ir.dxc.hlsl
index 165fea9..1129949 100644
--- a/test/tint/builtins/gen/literal/atomicExchange/e114ba.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/atomicExchange/e114ba.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,28 @@
-SKIP: FAILED
+struct compute_main_inputs {
+  uint tint_local_index : SV_GroupIndex;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: atomicExchange
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+
+RWByteAddressBuffer prevent_dce : register(u0);
+groupshared int arg_0;
+int atomicExchange_e114ba() {
+  int v = 0;
+  InterlockedExchange(arg_0, 1, v);
+  int res = v;
+  return res;
+}
+
+void compute_main_inner(uint tint_local_index) {
+  if ((tint_local_index == 0u)) {
+    int v_1 = 0;
+    InterlockedExchange(arg_0, 0, v_1);
+  }
+  GroupMemoryBarrierWithGroupSync();
+  prevent_dce.Store(0u, asuint(atomicExchange_e114ba()));
+}
+
+[numthreads(1, 1, 1)]
+void compute_main(compute_main_inputs inputs) {
+  compute_main_inner(inputs.tint_local_index);
+}
+
diff --git a/test/tint/builtins/gen/literal/atomicExchange/e114ba.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/atomicExchange/e114ba.wgsl.expected.ir.fxc.hlsl
index 165fea9..1129949 100644
--- a/test/tint/builtins/gen/literal/atomicExchange/e114ba.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/atomicExchange/e114ba.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,28 @@
-SKIP: FAILED
+struct compute_main_inputs {
+  uint tint_local_index : SV_GroupIndex;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: atomicExchange
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+
+RWByteAddressBuffer prevent_dce : register(u0);
+groupshared int arg_0;
+int atomicExchange_e114ba() {
+  int v = 0;
+  InterlockedExchange(arg_0, 1, v);
+  int res = v;
+  return res;
+}
+
+void compute_main_inner(uint tint_local_index) {
+  if ((tint_local_index == 0u)) {
+    int v_1 = 0;
+    InterlockedExchange(arg_0, 0, v_1);
+  }
+  GroupMemoryBarrierWithGroupSync();
+  prevent_dce.Store(0u, asuint(atomicExchange_e114ba()));
+}
+
+[numthreads(1, 1, 1)]
+void compute_main(compute_main_inputs inputs) {
+  compute_main_inner(inputs.tint_local_index);
+}
+
diff --git a/test/tint/builtins/gen/literal/atomicExchange/f2e22f.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/atomicExchange/f2e22f.wgsl.expected.ir.dxc.hlsl
index 165fea9..3234bd8 100644
--- a/test/tint/builtins/gen/literal/atomicExchange/f2e22f.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/atomicExchange/f2e22f.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,19 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: atomicExchange
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWByteAddressBuffer prevent_dce : register(u0);
+RWByteAddressBuffer sb_rw : register(u1);
+int atomicExchange_f2e22f() {
+  int v = 0;
+  sb_rw.InterlockedExchange(int(0u), 1, v);
+  int res = v;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store(0u, asuint(atomicExchange_f2e22f()));
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store(0u, asuint(atomicExchange_f2e22f()));
+}
+
diff --git a/test/tint/builtins/gen/literal/atomicExchange/f2e22f.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/atomicExchange/f2e22f.wgsl.expected.ir.fxc.hlsl
index 165fea9..3234bd8 100644
--- a/test/tint/builtins/gen/literal/atomicExchange/f2e22f.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/atomicExchange/f2e22f.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,19 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: atomicExchange
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWByteAddressBuffer prevent_dce : register(u0);
+RWByteAddressBuffer sb_rw : register(u1);
+int atomicExchange_f2e22f() {
+  int v = 0;
+  sb_rw.InterlockedExchange(int(0u), 1, v);
+  int res = v;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store(0u, asuint(atomicExchange_f2e22f()));
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store(0u, asuint(atomicExchange_f2e22f()));
+}
+
diff --git a/test/tint/builtins/gen/literal/atomicLoad/0806ad.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/atomicLoad/0806ad.wgsl.expected.ir.dxc.hlsl
index 11d7ec0..c0fef6a 100644
--- a/test/tint/builtins/gen/literal/atomicLoad/0806ad.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/atomicLoad/0806ad.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,19 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: atomicLoad
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWByteAddressBuffer prevent_dce : register(u0);
+RWByteAddressBuffer sb_rw : register(u1);
+int atomicLoad_0806ad() {
+  int v = 0;
+  sb_rw.InterlockedOr(int(0u), 0, v);
+  int res = v;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store(0u, asuint(atomicLoad_0806ad()));
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store(0u, asuint(atomicLoad_0806ad()));
+}
+
diff --git a/test/tint/builtins/gen/literal/atomicLoad/0806ad.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/atomicLoad/0806ad.wgsl.expected.ir.fxc.hlsl
index 11d7ec0..c0fef6a 100644
--- a/test/tint/builtins/gen/literal/atomicLoad/0806ad.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/atomicLoad/0806ad.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,19 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: atomicLoad
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWByteAddressBuffer prevent_dce : register(u0);
+RWByteAddressBuffer sb_rw : register(u1);
+int atomicLoad_0806ad() {
+  int v = 0;
+  sb_rw.InterlockedOr(int(0u), 0, v);
+  int res = v;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store(0u, asuint(atomicLoad_0806ad()));
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store(0u, asuint(atomicLoad_0806ad()));
+}
+
diff --git a/test/tint/builtins/gen/literal/atomicLoad/361bf1.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/atomicLoad/361bf1.wgsl.expected.ir.dxc.hlsl
index 11d7ec0..8b9224d 100644
--- a/test/tint/builtins/gen/literal/atomicLoad/361bf1.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/atomicLoad/361bf1.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,28 @@
-SKIP: FAILED
+struct compute_main_inputs {
+  uint tint_local_index : SV_GroupIndex;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: atomicLoad
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+
+RWByteAddressBuffer prevent_dce : register(u0);
+groupshared uint arg_0;
+uint atomicLoad_361bf1() {
+  uint v = 0u;
+  InterlockedOr(arg_0, 0u, v);
+  uint res = v;
+  return res;
+}
+
+void compute_main_inner(uint tint_local_index) {
+  if ((tint_local_index == 0u)) {
+    uint v_1 = 0u;
+    InterlockedExchange(arg_0, 0u, v_1);
+  }
+  GroupMemoryBarrierWithGroupSync();
+  prevent_dce.Store(0u, atomicLoad_361bf1());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main(compute_main_inputs inputs) {
+  compute_main_inner(inputs.tint_local_index);
+}
+
diff --git a/test/tint/builtins/gen/literal/atomicLoad/361bf1.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/atomicLoad/361bf1.wgsl.expected.ir.fxc.hlsl
index 11d7ec0..8b9224d 100644
--- a/test/tint/builtins/gen/literal/atomicLoad/361bf1.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/atomicLoad/361bf1.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,28 @@
-SKIP: FAILED
+struct compute_main_inputs {
+  uint tint_local_index : SV_GroupIndex;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: atomicLoad
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+
+RWByteAddressBuffer prevent_dce : register(u0);
+groupshared uint arg_0;
+uint atomicLoad_361bf1() {
+  uint v = 0u;
+  InterlockedOr(arg_0, 0u, v);
+  uint res = v;
+  return res;
+}
+
+void compute_main_inner(uint tint_local_index) {
+  if ((tint_local_index == 0u)) {
+    uint v_1 = 0u;
+    InterlockedExchange(arg_0, 0u, v_1);
+  }
+  GroupMemoryBarrierWithGroupSync();
+  prevent_dce.Store(0u, atomicLoad_361bf1());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main(compute_main_inputs inputs) {
+  compute_main_inner(inputs.tint_local_index);
+}
+
diff --git a/test/tint/builtins/gen/literal/atomicLoad/afcc03.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/atomicLoad/afcc03.wgsl.expected.ir.dxc.hlsl
index 11d7ec0..4511f12 100644
--- a/test/tint/builtins/gen/literal/atomicLoad/afcc03.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/atomicLoad/afcc03.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,28 @@
-SKIP: FAILED
+struct compute_main_inputs {
+  uint tint_local_index : SV_GroupIndex;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: atomicLoad
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+
+RWByteAddressBuffer prevent_dce : register(u0);
+groupshared int arg_0;
+int atomicLoad_afcc03() {
+  int v = 0;
+  InterlockedOr(arg_0, 0, v);
+  int res = v;
+  return res;
+}
+
+void compute_main_inner(uint tint_local_index) {
+  if ((tint_local_index == 0u)) {
+    int v_1 = 0;
+    InterlockedExchange(arg_0, 0, v_1);
+  }
+  GroupMemoryBarrierWithGroupSync();
+  prevent_dce.Store(0u, asuint(atomicLoad_afcc03()));
+}
+
+[numthreads(1, 1, 1)]
+void compute_main(compute_main_inputs inputs) {
+  compute_main_inner(inputs.tint_local_index);
+}
+
diff --git a/test/tint/builtins/gen/literal/atomicLoad/afcc03.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/atomicLoad/afcc03.wgsl.expected.ir.fxc.hlsl
index 11d7ec0..4511f12 100644
--- a/test/tint/builtins/gen/literal/atomicLoad/afcc03.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/atomicLoad/afcc03.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,28 @@
-SKIP: FAILED
+struct compute_main_inputs {
+  uint tint_local_index : SV_GroupIndex;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: atomicLoad
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+
+RWByteAddressBuffer prevent_dce : register(u0);
+groupshared int arg_0;
+int atomicLoad_afcc03() {
+  int v = 0;
+  InterlockedOr(arg_0, 0, v);
+  int res = v;
+  return res;
+}
+
+void compute_main_inner(uint tint_local_index) {
+  if ((tint_local_index == 0u)) {
+    int v_1 = 0;
+    InterlockedExchange(arg_0, 0, v_1);
+  }
+  GroupMemoryBarrierWithGroupSync();
+  prevent_dce.Store(0u, asuint(atomicLoad_afcc03()));
+}
+
+[numthreads(1, 1, 1)]
+void compute_main(compute_main_inputs inputs) {
+  compute_main_inner(inputs.tint_local_index);
+}
+
diff --git a/test/tint/builtins/gen/literal/atomicLoad/fe6cc3.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/atomicLoad/fe6cc3.wgsl.expected.ir.dxc.hlsl
index 11d7ec0..a8eefbd 100644
--- a/test/tint/builtins/gen/literal/atomicLoad/fe6cc3.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/atomicLoad/fe6cc3.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,19 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: atomicLoad
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWByteAddressBuffer prevent_dce : register(u0);
+RWByteAddressBuffer sb_rw : register(u1);
+uint atomicLoad_fe6cc3() {
+  uint v = 0u;
+  sb_rw.InterlockedOr(uint(0u), 0u, v);
+  uint res = v;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store(0u, atomicLoad_fe6cc3());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store(0u, atomicLoad_fe6cc3());
+}
+
diff --git a/test/tint/builtins/gen/literal/atomicLoad/fe6cc3.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/atomicLoad/fe6cc3.wgsl.expected.ir.fxc.hlsl
index 11d7ec0..a8eefbd 100644
--- a/test/tint/builtins/gen/literal/atomicLoad/fe6cc3.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/atomicLoad/fe6cc3.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,19 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: atomicLoad
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWByteAddressBuffer prevent_dce : register(u0);
+RWByteAddressBuffer sb_rw : register(u1);
+uint atomicLoad_fe6cc3() {
+  uint v = 0u;
+  sb_rw.InterlockedOr(uint(0u), 0u, v);
+  uint res = v;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store(0u, atomicLoad_fe6cc3());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store(0u, atomicLoad_fe6cc3());
+}
+
diff --git a/test/tint/builtins/gen/literal/atomicMax/51b9be.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/atomicMax/51b9be.wgsl.expected.ir.dxc.hlsl
index d14c326..dfd981b 100644
--- a/test/tint/builtins/gen/literal/atomicMax/51b9be.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/atomicMax/51b9be.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,19 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: atomicMax
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWByteAddressBuffer prevent_dce : register(u0);
+RWByteAddressBuffer sb_rw : register(u1);
+uint atomicMax_51b9be() {
+  uint v = 0u;
+  sb_rw.InterlockedMax(uint(0u), 1u, v);
+  uint res = v;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store(0u, atomicMax_51b9be());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store(0u, atomicMax_51b9be());
+}
+
diff --git a/test/tint/builtins/gen/literal/atomicMax/51b9be.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/atomicMax/51b9be.wgsl.expected.ir.fxc.hlsl
index d14c326..dfd981b 100644
--- a/test/tint/builtins/gen/literal/atomicMax/51b9be.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/atomicMax/51b9be.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,19 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: atomicMax
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWByteAddressBuffer prevent_dce : register(u0);
+RWByteAddressBuffer sb_rw : register(u1);
+uint atomicMax_51b9be() {
+  uint v = 0u;
+  sb_rw.InterlockedMax(uint(0u), 1u, v);
+  uint res = v;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store(0u, atomicMax_51b9be());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store(0u, atomicMax_51b9be());
+}
+
diff --git a/test/tint/builtins/gen/literal/atomicMax/92aa72.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/atomicMax/92aa72.wgsl.expected.ir.dxc.hlsl
index d14c326..ea45579 100644
--- a/test/tint/builtins/gen/literal/atomicMax/92aa72.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/atomicMax/92aa72.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,19 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: atomicMax
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWByteAddressBuffer prevent_dce : register(u0);
+RWByteAddressBuffer sb_rw : register(u1);
+int atomicMax_92aa72() {
+  int v = 0;
+  sb_rw.InterlockedMax(int(0u), 1, v);
+  int res = v;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store(0u, asuint(atomicMax_92aa72()));
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store(0u, asuint(atomicMax_92aa72()));
+}
+
diff --git a/test/tint/builtins/gen/literal/atomicMax/92aa72.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/atomicMax/92aa72.wgsl.expected.ir.fxc.hlsl
index d14c326..ea45579 100644
--- a/test/tint/builtins/gen/literal/atomicMax/92aa72.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/atomicMax/92aa72.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,19 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: atomicMax
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWByteAddressBuffer prevent_dce : register(u0);
+RWByteAddressBuffer sb_rw : register(u1);
+int atomicMax_92aa72() {
+  int v = 0;
+  sb_rw.InterlockedMax(int(0u), 1, v);
+  int res = v;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store(0u, asuint(atomicMax_92aa72()));
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store(0u, asuint(atomicMax_92aa72()));
+}
+
diff --git a/test/tint/builtins/gen/literal/atomicMax/a89cc3.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/atomicMax/a89cc3.wgsl.expected.ir.dxc.hlsl
index d14c326..0d4f5b2 100644
--- a/test/tint/builtins/gen/literal/atomicMax/a89cc3.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/atomicMax/a89cc3.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,28 @@
-SKIP: FAILED
+struct compute_main_inputs {
+  uint tint_local_index : SV_GroupIndex;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: atomicMax
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+
+RWByteAddressBuffer prevent_dce : register(u0);
+groupshared int arg_0;
+int atomicMax_a89cc3() {
+  int v = 0;
+  InterlockedMax(arg_0, 1, v);
+  int res = v;
+  return res;
+}
+
+void compute_main_inner(uint tint_local_index) {
+  if ((tint_local_index == 0u)) {
+    int v_1 = 0;
+    InterlockedExchange(arg_0, 0, v_1);
+  }
+  GroupMemoryBarrierWithGroupSync();
+  prevent_dce.Store(0u, asuint(atomicMax_a89cc3()));
+}
+
+[numthreads(1, 1, 1)]
+void compute_main(compute_main_inputs inputs) {
+  compute_main_inner(inputs.tint_local_index);
+}
+
diff --git a/test/tint/builtins/gen/literal/atomicMax/a89cc3.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/atomicMax/a89cc3.wgsl.expected.ir.fxc.hlsl
index d14c326..0d4f5b2 100644
--- a/test/tint/builtins/gen/literal/atomicMax/a89cc3.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/atomicMax/a89cc3.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,28 @@
-SKIP: FAILED
+struct compute_main_inputs {
+  uint tint_local_index : SV_GroupIndex;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: atomicMax
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+
+RWByteAddressBuffer prevent_dce : register(u0);
+groupshared int arg_0;
+int atomicMax_a89cc3() {
+  int v = 0;
+  InterlockedMax(arg_0, 1, v);
+  int res = v;
+  return res;
+}
+
+void compute_main_inner(uint tint_local_index) {
+  if ((tint_local_index == 0u)) {
+    int v_1 = 0;
+    InterlockedExchange(arg_0, 0, v_1);
+  }
+  GroupMemoryBarrierWithGroupSync();
+  prevent_dce.Store(0u, asuint(atomicMax_a89cc3()));
+}
+
+[numthreads(1, 1, 1)]
+void compute_main(compute_main_inputs inputs) {
+  compute_main_inner(inputs.tint_local_index);
+}
+
diff --git a/test/tint/builtins/gen/literal/atomicMax/beccfc.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/atomicMax/beccfc.wgsl.expected.ir.dxc.hlsl
index d14c326..4abcb88 100644
--- a/test/tint/builtins/gen/literal/atomicMax/beccfc.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/atomicMax/beccfc.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,28 @@
-SKIP: FAILED
+struct compute_main_inputs {
+  uint tint_local_index : SV_GroupIndex;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: atomicMax
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+
+RWByteAddressBuffer prevent_dce : register(u0);
+groupshared uint arg_0;
+uint atomicMax_beccfc() {
+  uint v = 0u;
+  InterlockedMax(arg_0, 1u, v);
+  uint res = v;
+  return res;
+}
+
+void compute_main_inner(uint tint_local_index) {
+  if ((tint_local_index == 0u)) {
+    uint v_1 = 0u;
+    InterlockedExchange(arg_0, 0u, v_1);
+  }
+  GroupMemoryBarrierWithGroupSync();
+  prevent_dce.Store(0u, atomicMax_beccfc());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main(compute_main_inputs inputs) {
+  compute_main_inner(inputs.tint_local_index);
+}
+
diff --git a/test/tint/builtins/gen/literal/atomicMax/beccfc.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/atomicMax/beccfc.wgsl.expected.ir.fxc.hlsl
index d14c326..4abcb88 100644
--- a/test/tint/builtins/gen/literal/atomicMax/beccfc.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/atomicMax/beccfc.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,28 @@
-SKIP: FAILED
+struct compute_main_inputs {
+  uint tint_local_index : SV_GroupIndex;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: atomicMax
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+
+RWByteAddressBuffer prevent_dce : register(u0);
+groupshared uint arg_0;
+uint atomicMax_beccfc() {
+  uint v = 0u;
+  InterlockedMax(arg_0, 1u, v);
+  uint res = v;
+  return res;
+}
+
+void compute_main_inner(uint tint_local_index) {
+  if ((tint_local_index == 0u)) {
+    uint v_1 = 0u;
+    InterlockedExchange(arg_0, 0u, v_1);
+  }
+  GroupMemoryBarrierWithGroupSync();
+  prevent_dce.Store(0u, atomicMax_beccfc());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main(compute_main_inputs inputs) {
+  compute_main_inner(inputs.tint_local_index);
+}
+
diff --git a/test/tint/builtins/gen/literal/atomicMin/278235.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/atomicMin/278235.wgsl.expected.ir.dxc.hlsl
index 34addfe..0634cf5 100644
--- a/test/tint/builtins/gen/literal/atomicMin/278235.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/atomicMin/278235.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,28 @@
-SKIP: FAILED
+struct compute_main_inputs {
+  uint tint_local_index : SV_GroupIndex;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: atomicMin
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+
+RWByteAddressBuffer prevent_dce : register(u0);
+groupshared int arg_0;
+int atomicMin_278235() {
+  int v = 0;
+  InterlockedMin(arg_0, 1, v);
+  int res = v;
+  return res;
+}
+
+void compute_main_inner(uint tint_local_index) {
+  if ((tint_local_index == 0u)) {
+    int v_1 = 0;
+    InterlockedExchange(arg_0, 0, v_1);
+  }
+  GroupMemoryBarrierWithGroupSync();
+  prevent_dce.Store(0u, asuint(atomicMin_278235()));
+}
+
+[numthreads(1, 1, 1)]
+void compute_main(compute_main_inputs inputs) {
+  compute_main_inner(inputs.tint_local_index);
+}
+
diff --git a/test/tint/builtins/gen/literal/atomicMin/278235.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/atomicMin/278235.wgsl.expected.ir.fxc.hlsl
index 34addfe..0634cf5 100644
--- a/test/tint/builtins/gen/literal/atomicMin/278235.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/atomicMin/278235.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,28 @@
-SKIP: FAILED
+struct compute_main_inputs {
+  uint tint_local_index : SV_GroupIndex;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: atomicMin
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+
+RWByteAddressBuffer prevent_dce : register(u0);
+groupshared int arg_0;
+int atomicMin_278235() {
+  int v = 0;
+  InterlockedMin(arg_0, 1, v);
+  int res = v;
+  return res;
+}
+
+void compute_main_inner(uint tint_local_index) {
+  if ((tint_local_index == 0u)) {
+    int v_1 = 0;
+    InterlockedExchange(arg_0, 0, v_1);
+  }
+  GroupMemoryBarrierWithGroupSync();
+  prevent_dce.Store(0u, asuint(atomicMin_278235()));
+}
+
+[numthreads(1, 1, 1)]
+void compute_main(compute_main_inputs inputs) {
+  compute_main_inner(inputs.tint_local_index);
+}
+
diff --git a/test/tint/builtins/gen/literal/atomicMin/69d383.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/atomicMin/69d383.wgsl.expected.ir.dxc.hlsl
index 34addfe..d5f370d 100644
--- a/test/tint/builtins/gen/literal/atomicMin/69d383.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/atomicMin/69d383.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,28 @@
-SKIP: FAILED
+struct compute_main_inputs {
+  uint tint_local_index : SV_GroupIndex;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: atomicMin
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+
+RWByteAddressBuffer prevent_dce : register(u0);
+groupshared uint arg_0;
+uint atomicMin_69d383() {
+  uint v = 0u;
+  InterlockedMin(arg_0, 1u, v);
+  uint res = v;
+  return res;
+}
+
+void compute_main_inner(uint tint_local_index) {
+  if ((tint_local_index == 0u)) {
+    uint v_1 = 0u;
+    InterlockedExchange(arg_0, 0u, v_1);
+  }
+  GroupMemoryBarrierWithGroupSync();
+  prevent_dce.Store(0u, atomicMin_69d383());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main(compute_main_inputs inputs) {
+  compute_main_inner(inputs.tint_local_index);
+}
+
diff --git a/test/tint/builtins/gen/literal/atomicMin/69d383.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/atomicMin/69d383.wgsl.expected.ir.fxc.hlsl
index 34addfe..d5f370d 100644
--- a/test/tint/builtins/gen/literal/atomicMin/69d383.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/atomicMin/69d383.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,28 @@
-SKIP: FAILED
+struct compute_main_inputs {
+  uint tint_local_index : SV_GroupIndex;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: atomicMin
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+
+RWByteAddressBuffer prevent_dce : register(u0);
+groupshared uint arg_0;
+uint atomicMin_69d383() {
+  uint v = 0u;
+  InterlockedMin(arg_0, 1u, v);
+  uint res = v;
+  return res;
+}
+
+void compute_main_inner(uint tint_local_index) {
+  if ((tint_local_index == 0u)) {
+    uint v_1 = 0u;
+    InterlockedExchange(arg_0, 0u, v_1);
+  }
+  GroupMemoryBarrierWithGroupSync();
+  prevent_dce.Store(0u, atomicMin_69d383());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main(compute_main_inputs inputs) {
+  compute_main_inner(inputs.tint_local_index);
+}
+
diff --git a/test/tint/builtins/gen/literal/atomicMin/8e38dc.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/atomicMin/8e38dc.wgsl.expected.ir.dxc.hlsl
index 34addfe..0cd650a 100644
--- a/test/tint/builtins/gen/literal/atomicMin/8e38dc.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/atomicMin/8e38dc.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,19 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: atomicMin
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWByteAddressBuffer prevent_dce : register(u0);
+RWByteAddressBuffer sb_rw : register(u1);
+int atomicMin_8e38dc() {
+  int v = 0;
+  sb_rw.InterlockedMin(int(0u), 1, v);
+  int res = v;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store(0u, asuint(atomicMin_8e38dc()));
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store(0u, asuint(atomicMin_8e38dc()));
+}
+
diff --git a/test/tint/builtins/gen/literal/atomicMin/8e38dc.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/atomicMin/8e38dc.wgsl.expected.ir.fxc.hlsl
index 34addfe..0cd650a 100644
--- a/test/tint/builtins/gen/literal/atomicMin/8e38dc.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/atomicMin/8e38dc.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,19 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: atomicMin
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWByteAddressBuffer prevent_dce : register(u0);
+RWByteAddressBuffer sb_rw : register(u1);
+int atomicMin_8e38dc() {
+  int v = 0;
+  sb_rw.InterlockedMin(int(0u), 1, v);
+  int res = v;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store(0u, asuint(atomicMin_8e38dc()));
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store(0u, asuint(atomicMin_8e38dc()));
+}
+
diff --git a/test/tint/builtins/gen/literal/atomicMin/c67a74.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/atomicMin/c67a74.wgsl.expected.ir.dxc.hlsl
index 34addfe..394e974 100644
--- a/test/tint/builtins/gen/literal/atomicMin/c67a74.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/atomicMin/c67a74.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,19 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: atomicMin
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWByteAddressBuffer prevent_dce : register(u0);
+RWByteAddressBuffer sb_rw : register(u1);
+uint atomicMin_c67a74() {
+  uint v = 0u;
+  sb_rw.InterlockedMin(uint(0u), 1u, v);
+  uint res = v;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store(0u, atomicMin_c67a74());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store(0u, atomicMin_c67a74());
+}
+
diff --git a/test/tint/builtins/gen/literal/atomicMin/c67a74.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/atomicMin/c67a74.wgsl.expected.ir.fxc.hlsl
index 34addfe..394e974 100644
--- a/test/tint/builtins/gen/literal/atomicMin/c67a74.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/atomicMin/c67a74.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,19 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: atomicMin
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWByteAddressBuffer prevent_dce : register(u0);
+RWByteAddressBuffer sb_rw : register(u1);
+uint atomicMin_c67a74() {
+  uint v = 0u;
+  sb_rw.InterlockedMin(uint(0u), 1u, v);
+  uint res = v;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store(0u, atomicMin_c67a74());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store(0u, atomicMin_c67a74());
+}
+
diff --git a/test/tint/builtins/gen/literal/atomicOr/5e3d61.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/atomicOr/5e3d61.wgsl.expected.ir.dxc.hlsl
index af0604b..60476d7 100644
--- a/test/tint/builtins/gen/literal/atomicOr/5e3d61.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/atomicOr/5e3d61.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,28 @@
-SKIP: FAILED
+struct compute_main_inputs {
+  uint tint_local_index : SV_GroupIndex;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: atomicOr
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+
+RWByteAddressBuffer prevent_dce : register(u0);
+groupshared uint arg_0;
+uint atomicOr_5e3d61() {
+  uint v = 0u;
+  InterlockedOr(arg_0, 1u, v);
+  uint res = v;
+  return res;
+}
+
+void compute_main_inner(uint tint_local_index) {
+  if ((tint_local_index == 0u)) {
+    uint v_1 = 0u;
+    InterlockedExchange(arg_0, 0u, v_1);
+  }
+  GroupMemoryBarrierWithGroupSync();
+  prevent_dce.Store(0u, atomicOr_5e3d61());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main(compute_main_inputs inputs) {
+  compute_main_inner(inputs.tint_local_index);
+}
+
diff --git a/test/tint/builtins/gen/literal/atomicOr/5e3d61.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/atomicOr/5e3d61.wgsl.expected.ir.fxc.hlsl
index af0604b..60476d7 100644
--- a/test/tint/builtins/gen/literal/atomicOr/5e3d61.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/atomicOr/5e3d61.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,28 @@
-SKIP: FAILED
+struct compute_main_inputs {
+  uint tint_local_index : SV_GroupIndex;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: atomicOr
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+
+RWByteAddressBuffer prevent_dce : register(u0);
+groupshared uint arg_0;
+uint atomicOr_5e3d61() {
+  uint v = 0u;
+  InterlockedOr(arg_0, 1u, v);
+  uint res = v;
+  return res;
+}
+
+void compute_main_inner(uint tint_local_index) {
+  if ((tint_local_index == 0u)) {
+    uint v_1 = 0u;
+    InterlockedExchange(arg_0, 0u, v_1);
+  }
+  GroupMemoryBarrierWithGroupSync();
+  prevent_dce.Store(0u, atomicOr_5e3d61());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main(compute_main_inputs inputs) {
+  compute_main_inner(inputs.tint_local_index);
+}
+
diff --git a/test/tint/builtins/gen/literal/atomicOr/5e95d4.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/atomicOr/5e95d4.wgsl.expected.ir.dxc.hlsl
index af0604b..7bb8f52 100644
--- a/test/tint/builtins/gen/literal/atomicOr/5e95d4.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/atomicOr/5e95d4.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,19 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: atomicOr
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWByteAddressBuffer prevent_dce : register(u0);
+RWByteAddressBuffer sb_rw : register(u1);
+uint atomicOr_5e95d4() {
+  uint v = 0u;
+  sb_rw.InterlockedOr(uint(0u), 1u, v);
+  uint res = v;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store(0u, atomicOr_5e95d4());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store(0u, atomicOr_5e95d4());
+}
+
diff --git a/test/tint/builtins/gen/literal/atomicOr/5e95d4.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/atomicOr/5e95d4.wgsl.expected.ir.fxc.hlsl
index af0604b..7bb8f52 100644
--- a/test/tint/builtins/gen/literal/atomicOr/5e95d4.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/atomicOr/5e95d4.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,19 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: atomicOr
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWByteAddressBuffer prevent_dce : register(u0);
+RWByteAddressBuffer sb_rw : register(u1);
+uint atomicOr_5e95d4() {
+  uint v = 0u;
+  sb_rw.InterlockedOr(uint(0u), 1u, v);
+  uint res = v;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store(0u, atomicOr_5e95d4());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store(0u, atomicOr_5e95d4());
+}
+
diff --git a/test/tint/builtins/gen/literal/atomicOr/8d96a0.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/atomicOr/8d96a0.wgsl.expected.ir.dxc.hlsl
index af0604b..e1fccb0 100644
--- a/test/tint/builtins/gen/literal/atomicOr/8d96a0.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/atomicOr/8d96a0.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,19 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: atomicOr
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWByteAddressBuffer prevent_dce : register(u0);
+RWByteAddressBuffer sb_rw : register(u1);
+int atomicOr_8d96a0() {
+  int v = 0;
+  sb_rw.InterlockedOr(int(0u), 1, v);
+  int res = v;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store(0u, asuint(atomicOr_8d96a0()));
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store(0u, asuint(atomicOr_8d96a0()));
+}
+
diff --git a/test/tint/builtins/gen/literal/atomicOr/8d96a0.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/atomicOr/8d96a0.wgsl.expected.ir.fxc.hlsl
index af0604b..e1fccb0 100644
--- a/test/tint/builtins/gen/literal/atomicOr/8d96a0.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/atomicOr/8d96a0.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,19 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: atomicOr
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWByteAddressBuffer prevent_dce : register(u0);
+RWByteAddressBuffer sb_rw : register(u1);
+int atomicOr_8d96a0() {
+  int v = 0;
+  sb_rw.InterlockedOr(int(0u), 1, v);
+  int res = v;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store(0u, asuint(atomicOr_8d96a0()));
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store(0u, asuint(atomicOr_8d96a0()));
+}
+
diff --git a/test/tint/builtins/gen/literal/atomicOr/d09248.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/atomicOr/d09248.wgsl.expected.ir.dxc.hlsl
index af0604b..89d9825 100644
--- a/test/tint/builtins/gen/literal/atomicOr/d09248.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/atomicOr/d09248.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,28 @@
-SKIP: FAILED
+struct compute_main_inputs {
+  uint tint_local_index : SV_GroupIndex;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: atomicOr
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+
+RWByteAddressBuffer prevent_dce : register(u0);
+groupshared int arg_0;
+int atomicOr_d09248() {
+  int v = 0;
+  InterlockedOr(arg_0, 1, v);
+  int res = v;
+  return res;
+}
+
+void compute_main_inner(uint tint_local_index) {
+  if ((tint_local_index == 0u)) {
+    int v_1 = 0;
+    InterlockedExchange(arg_0, 0, v_1);
+  }
+  GroupMemoryBarrierWithGroupSync();
+  prevent_dce.Store(0u, asuint(atomicOr_d09248()));
+}
+
+[numthreads(1, 1, 1)]
+void compute_main(compute_main_inputs inputs) {
+  compute_main_inner(inputs.tint_local_index);
+}
+
diff --git a/test/tint/builtins/gen/literal/atomicOr/d09248.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/atomicOr/d09248.wgsl.expected.ir.fxc.hlsl
index af0604b..89d9825 100644
--- a/test/tint/builtins/gen/literal/atomicOr/d09248.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/atomicOr/d09248.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,28 @@
-SKIP: FAILED
+struct compute_main_inputs {
+  uint tint_local_index : SV_GroupIndex;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: atomicOr
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+
+RWByteAddressBuffer prevent_dce : register(u0);
+groupshared int arg_0;
+int atomicOr_d09248() {
+  int v = 0;
+  InterlockedOr(arg_0, 1, v);
+  int res = v;
+  return res;
+}
+
+void compute_main_inner(uint tint_local_index) {
+  if ((tint_local_index == 0u)) {
+    int v_1 = 0;
+    InterlockedExchange(arg_0, 0, v_1);
+  }
+  GroupMemoryBarrierWithGroupSync();
+  prevent_dce.Store(0u, asuint(atomicOr_d09248()));
+}
+
+[numthreads(1, 1, 1)]
+void compute_main(compute_main_inputs inputs) {
+  compute_main_inner(inputs.tint_local_index);
+}
+
diff --git a/test/tint/builtins/gen/literal/atomicStore/726882.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/atomicStore/726882.wgsl.expected.ir.dxc.hlsl
index 9aa6a33..92f9bc3 100644
--- a/test/tint/builtins/gen/literal/atomicStore/726882.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/atomicStore/726882.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,25 @@
-SKIP: FAILED
+struct compute_main_inputs {
+  uint tint_local_index : SV_GroupIndex;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: atomicStore
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+
+groupshared uint arg_0;
+void atomicStore_726882() {
+  uint v = 0u;
+  InterlockedExchange(arg_0, 1u, v);
+}
+
+void compute_main_inner(uint tint_local_index) {
+  if ((tint_local_index == 0u)) {
+    uint v_1 = 0u;
+    InterlockedExchange(arg_0, 0u, v_1);
+  }
+  GroupMemoryBarrierWithGroupSync();
+  atomicStore_726882();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main(compute_main_inputs inputs) {
+  compute_main_inner(inputs.tint_local_index);
+}
+
diff --git a/test/tint/builtins/gen/literal/atomicStore/726882.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/atomicStore/726882.wgsl.expected.ir.fxc.hlsl
index 9aa6a33..92f9bc3 100644
--- a/test/tint/builtins/gen/literal/atomicStore/726882.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/atomicStore/726882.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,25 @@
-SKIP: FAILED
+struct compute_main_inputs {
+  uint tint_local_index : SV_GroupIndex;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: atomicStore
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+
+groupshared uint arg_0;
+void atomicStore_726882() {
+  uint v = 0u;
+  InterlockedExchange(arg_0, 1u, v);
+}
+
+void compute_main_inner(uint tint_local_index) {
+  if ((tint_local_index == 0u)) {
+    uint v_1 = 0u;
+    InterlockedExchange(arg_0, 0u, v_1);
+  }
+  GroupMemoryBarrierWithGroupSync();
+  atomicStore_726882();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main(compute_main_inputs inputs) {
+  compute_main_inner(inputs.tint_local_index);
+}
+
diff --git a/test/tint/builtins/gen/literal/atomicStore/8bea94.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/atomicStore/8bea94.wgsl.expected.ir.dxc.hlsl
index 9aa6a33..7609f01 100644
--- a/test/tint/builtins/gen/literal/atomicStore/8bea94.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/atomicStore/8bea94.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,25 @@
-SKIP: FAILED
+struct compute_main_inputs {
+  uint tint_local_index : SV_GroupIndex;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: atomicStore
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+
+groupshared int arg_0;
+void atomicStore_8bea94() {
+  int v = 0;
+  InterlockedExchange(arg_0, 1, v);
+}
+
+void compute_main_inner(uint tint_local_index) {
+  if ((tint_local_index == 0u)) {
+    int v_1 = 0;
+    InterlockedExchange(arg_0, 0, v_1);
+  }
+  GroupMemoryBarrierWithGroupSync();
+  atomicStore_8bea94();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main(compute_main_inputs inputs) {
+  compute_main_inner(inputs.tint_local_index);
+}
+
diff --git a/test/tint/builtins/gen/literal/atomicStore/8bea94.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/atomicStore/8bea94.wgsl.expected.ir.fxc.hlsl
index 9aa6a33..7609f01 100644
--- a/test/tint/builtins/gen/literal/atomicStore/8bea94.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/atomicStore/8bea94.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,25 @@
-SKIP: FAILED
+struct compute_main_inputs {
+  uint tint_local_index : SV_GroupIndex;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: atomicStore
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+
+groupshared int arg_0;
+void atomicStore_8bea94() {
+  int v = 0;
+  InterlockedExchange(arg_0, 1, v);
+}
+
+void compute_main_inner(uint tint_local_index) {
+  if ((tint_local_index == 0u)) {
+    int v_1 = 0;
+    InterlockedExchange(arg_0, 0, v_1);
+  }
+  GroupMemoryBarrierWithGroupSync();
+  atomicStore_8bea94();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main(compute_main_inputs inputs) {
+  compute_main_inner(inputs.tint_local_index);
+}
+
diff --git a/test/tint/builtins/gen/literal/atomicStore/cdc29e.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/atomicStore/cdc29e.wgsl.expected.ir.dxc.hlsl
index 9aa6a33..ec3b3e9 100644
--- a/test/tint/builtins/gen/literal/atomicStore/cdc29e.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/atomicStore/cdc29e.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,16 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: atomicStore
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWByteAddressBuffer sb_rw : register(u0);
+void atomicStore_cdc29e() {
+  uint v = 0u;
+  sb_rw.InterlockedExchange(uint(0u), 1u, v);
+}
+
+void fragment_main() {
+  atomicStore_cdc29e();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  atomicStore_cdc29e();
+}
+
diff --git a/test/tint/builtins/gen/literal/atomicStore/cdc29e.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/atomicStore/cdc29e.wgsl.expected.ir.fxc.hlsl
index 9aa6a33..ec3b3e9 100644
--- a/test/tint/builtins/gen/literal/atomicStore/cdc29e.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/atomicStore/cdc29e.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,16 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: atomicStore
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWByteAddressBuffer sb_rw : register(u0);
+void atomicStore_cdc29e() {
+  uint v = 0u;
+  sb_rw.InterlockedExchange(uint(0u), 1u, v);
+}
+
+void fragment_main() {
+  atomicStore_cdc29e();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  atomicStore_cdc29e();
+}
+
diff --git a/test/tint/builtins/gen/literal/atomicStore/d1e9a6.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/atomicStore/d1e9a6.wgsl.expected.ir.dxc.hlsl
index 9aa6a33..0700ad7 100644
--- a/test/tint/builtins/gen/literal/atomicStore/d1e9a6.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/atomicStore/d1e9a6.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,16 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: atomicStore
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWByteAddressBuffer sb_rw : register(u0);
+void atomicStore_d1e9a6() {
+  int v = 0;
+  sb_rw.InterlockedExchange(int(0u), 1, v);
+}
+
+void fragment_main() {
+  atomicStore_d1e9a6();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  atomicStore_d1e9a6();
+}
+
diff --git a/test/tint/builtins/gen/literal/atomicStore/d1e9a6.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/atomicStore/d1e9a6.wgsl.expected.ir.fxc.hlsl
index 9aa6a33..0700ad7 100644
--- a/test/tint/builtins/gen/literal/atomicStore/d1e9a6.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/atomicStore/d1e9a6.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,16 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: atomicStore
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWByteAddressBuffer sb_rw : register(u0);
+void atomicStore_d1e9a6() {
+  int v = 0;
+  sb_rw.InterlockedExchange(int(0u), 1, v);
+}
+
+void fragment_main() {
+  atomicStore_d1e9a6();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  atomicStore_d1e9a6();
+}
+
diff --git a/test/tint/builtins/gen/literal/atomicSub/051100.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/atomicSub/051100.wgsl.expected.ir.dxc.hlsl
index 7a4d08e..b68c9d5 100644
--- a/test/tint/builtins/gen/literal/atomicSub/051100.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/atomicSub/051100.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,19 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: atomicSub
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWByteAddressBuffer prevent_dce : register(u0);
+RWByteAddressBuffer sb_rw : register(u1);
+int atomicSub_051100() {
+  int v = 0;
+  sb_rw.InterlockedAdd(int(0u), -(1), v);
+  int res = v;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store(0u, asuint(atomicSub_051100()));
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store(0u, asuint(atomicSub_051100()));
+}
+
diff --git a/test/tint/builtins/gen/literal/atomicSub/051100.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/atomicSub/051100.wgsl.expected.ir.fxc.hlsl
index 7a4d08e..b68c9d5 100644
--- a/test/tint/builtins/gen/literal/atomicSub/051100.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/atomicSub/051100.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,19 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: atomicSub
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWByteAddressBuffer prevent_dce : register(u0);
+RWByteAddressBuffer sb_rw : register(u1);
+int atomicSub_051100() {
+  int v = 0;
+  sb_rw.InterlockedAdd(int(0u), -(1), v);
+  int res = v;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store(0u, asuint(atomicSub_051100()));
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store(0u, asuint(atomicSub_051100()));
+}
+
diff --git a/test/tint/builtins/gen/literal/atomicSub/0d26c2.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/atomicSub/0d26c2.wgsl.expected.ir.dxc.hlsl
index 7a4d08e..7326d3b 100644
--- a/test/tint/builtins/gen/literal/atomicSub/0d26c2.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/atomicSub/0d26c2.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,77 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: atomicSub
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : u32;
+
+var<workgroup> arg_0 : atomic<u32>;
+
+fn atomicSub_0d26c2() -> u32 {
+  var res : u32 = atomicSub(&(arg_0), 1u);
+  return res;
+}
+
+@compute @workgroup_size(1)
+fn compute_main() {
+  prevent_dce = atomicSub_0d26c2();
+}
+
+Failed to generate: :13:5 error: unary: no matching overload for 'operator - (u32)'
+
+2 candidate operators:
+ • 'operator - (T  ✗ ) -> T' where:
+      ✗  'T' is 'f32', 'i32' or 'f16'
+ • 'operator - (vecN<T>  ✗ ) -> vecN<T>' where:
+      ✗  'T' is 'f32', 'i32' or 'f16'
+
+    %5:u32 = negation 1u
+    ^^^^^^^^^^^^^^^^^^^^
+
+:11:3 note: in block
+  $B2: {
+  ^^^
+
+note: # Disassembly
+compute_main_inputs = struct @align(4) {
+  tint_local_index:u32 @offset(0), @builtin(local_invocation_index)
+}
+
+$B1: {  # root
+  %prevent_dce:hlsl.byte_address_buffer<read_write> = var @binding_point(0, 0)
+  %arg_0:ptr<workgroup, atomic<u32>, read_write> = var
+}
+
+%atomicSub_0d26c2 = func():u32 {
+  $B2: {
+    %4:ptr<function, u32, read_write> = var, 0u
+    %5:u32 = negation 1u
+    %6:void = hlsl.InterlockedAdd %arg_0, %5, %4
+    %7:u32 = load %4
+    %res:ptr<function, u32, read_write> = var, %7
+    %9:u32 = load %res
+    ret %9
+  }
+}
+%compute_main_inner = func(%tint_local_index:u32):void {
+  $B3: {
+    %12:bool = eq %tint_local_index, 0u
+    if %12 [t: $B4] {  # if_1
+      $B4: {  # true
+        %13:ptr<function, u32, read_write> = var, 0u
+        %14:void = hlsl.InterlockedExchange %arg_0, 0u, %13
+        exit_if  # if_1
+      }
+    }
+    %15:void = workgroupBarrier
+    %16:u32 = call %atomicSub_0d26c2
+    %17:void = %prevent_dce.Store 0u, %16
+    ret
+  }
+}
+%compute_main = @compute @workgroup_size(1, 1, 1) func(%inputs:compute_main_inputs):void {
+  $B5: {
+    %20:u32 = access %inputs, 0u
+    %21:void = call %compute_main_inner, %20
+    ret
+  }
+}
+
diff --git a/test/tint/builtins/gen/literal/atomicSub/0d26c2.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/atomicSub/0d26c2.wgsl.expected.ir.fxc.hlsl
index 7a4d08e..7326d3b 100644
--- a/test/tint/builtins/gen/literal/atomicSub/0d26c2.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/atomicSub/0d26c2.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,77 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: atomicSub
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : u32;
+
+var<workgroup> arg_0 : atomic<u32>;
+
+fn atomicSub_0d26c2() -> u32 {
+  var res : u32 = atomicSub(&(arg_0), 1u);
+  return res;
+}
+
+@compute @workgroup_size(1)
+fn compute_main() {
+  prevent_dce = atomicSub_0d26c2();
+}
+
+Failed to generate: :13:5 error: unary: no matching overload for 'operator - (u32)'
+
+2 candidate operators:
+ • 'operator - (T  ✗ ) -> T' where:
+      ✗  'T' is 'f32', 'i32' or 'f16'
+ • 'operator - (vecN<T>  ✗ ) -> vecN<T>' where:
+      ✗  'T' is 'f32', 'i32' or 'f16'
+
+    %5:u32 = negation 1u
+    ^^^^^^^^^^^^^^^^^^^^
+
+:11:3 note: in block
+  $B2: {
+  ^^^
+
+note: # Disassembly
+compute_main_inputs = struct @align(4) {
+  tint_local_index:u32 @offset(0), @builtin(local_invocation_index)
+}
+
+$B1: {  # root
+  %prevent_dce:hlsl.byte_address_buffer<read_write> = var @binding_point(0, 0)
+  %arg_0:ptr<workgroup, atomic<u32>, read_write> = var
+}
+
+%atomicSub_0d26c2 = func():u32 {
+  $B2: {
+    %4:ptr<function, u32, read_write> = var, 0u
+    %5:u32 = negation 1u
+    %6:void = hlsl.InterlockedAdd %arg_0, %5, %4
+    %7:u32 = load %4
+    %res:ptr<function, u32, read_write> = var, %7
+    %9:u32 = load %res
+    ret %9
+  }
+}
+%compute_main_inner = func(%tint_local_index:u32):void {
+  $B3: {
+    %12:bool = eq %tint_local_index, 0u
+    if %12 [t: $B4] {  # if_1
+      $B4: {  # true
+        %13:ptr<function, u32, read_write> = var, 0u
+        %14:void = hlsl.InterlockedExchange %arg_0, 0u, %13
+        exit_if  # if_1
+      }
+    }
+    %15:void = workgroupBarrier
+    %16:u32 = call %atomicSub_0d26c2
+    %17:void = %prevent_dce.Store 0u, %16
+    ret
+  }
+}
+%compute_main = @compute @workgroup_size(1, 1, 1) func(%inputs:compute_main_inputs):void {
+  $B5: {
+    %20:u32 = access %inputs, 0u
+    %21:void = call %compute_main_inner, %20
+    ret
+  }
+}
+
diff --git a/test/tint/builtins/gen/literal/atomicSub/15bfc9.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/atomicSub/15bfc9.wgsl.expected.ir.dxc.hlsl
index 7a4d08e..52be03e 100644
--- a/test/tint/builtins/gen/literal/atomicSub/15bfc9.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/atomicSub/15bfc9.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,80 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: atomicSub
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : u32;
+
+struct SB_RW {
+  arg_0 : atomic<u32>,
+}
+
+@group(0) @binding(1) var<storage, read_write> sb_rw : SB_RW;
+
+fn atomicSub_15bfc9() -> u32 {
+  var res : u32 = atomicSub(&(sb_rw.arg_0), 1u);
+  return res;
+}
+
+@fragment
+fn fragment_main() {
+  prevent_dce = atomicSub_15bfc9();
+}
+
+@compute @workgroup_size(1)
+fn compute_main() {
+  prevent_dce = atomicSub_15bfc9();
+}
+
+Failed to generate: :13:5 error: unary: no matching overload for 'operator - (u32)'
+
+2 candidate operators:
+ • 'operator - (T  ✗ ) -> T' where:
+      ✗  'T' is 'f32', 'i32' or 'f16'
+ • 'operator - (vecN<T>  ✗ ) -> vecN<T>' where:
+      ✗  'T' is 'f32', 'i32' or 'f16'
+
+    %5:u32 = negation 1u
+    ^^^^^^^^^^^^^^^^^^^^
+
+:11:3 note: in block
+  $B2: {
+  ^^^
+
+note: # Disassembly
+SB_RW = struct @align(4) {
+  arg_0:atomic<u32> @offset(0)
+}
+
+$B1: {  # root
+  %prevent_dce:hlsl.byte_address_buffer<read_write> = var @binding_point(0, 0)
+  %sb_rw:hlsl.byte_address_buffer<read_write> = var @binding_point(0, 1)
+}
+
+%atomicSub_15bfc9 = func():u32 {
+  $B2: {
+    %4:ptr<function, u32, read_write> = var, 0u
+    %5:u32 = negation 1u
+    %6:u32 = convert 0u
+    %7:void = %sb_rw.InterlockedAdd %6, %5, %4
+    %8:u32 = load %4
+    %res:ptr<function, u32, read_write> = var, %8
+    %10:u32 = load %res
+    ret %10
+  }
+}
+%fragment_main = @fragment func():void {
+  $B3: {
+    %12:u32 = call %atomicSub_15bfc9
+    %13:u32 = bitcast %12
+    %14:void = %prevent_dce.Store 0u, %13
+    ret
+  }
+}
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B4: {
+    %16:u32 = call %atomicSub_15bfc9
+    %17:u32 = bitcast %16
+    %18:void = %prevent_dce.Store 0u, %17
+    ret
+  }
+}
+
diff --git a/test/tint/builtins/gen/literal/atomicSub/15bfc9.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/atomicSub/15bfc9.wgsl.expected.ir.fxc.hlsl
index 7a4d08e..52be03e 100644
--- a/test/tint/builtins/gen/literal/atomicSub/15bfc9.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/atomicSub/15bfc9.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,80 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: atomicSub
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : u32;
+
+struct SB_RW {
+  arg_0 : atomic<u32>,
+}
+
+@group(0) @binding(1) var<storage, read_write> sb_rw : SB_RW;
+
+fn atomicSub_15bfc9() -> u32 {
+  var res : u32 = atomicSub(&(sb_rw.arg_0), 1u);
+  return res;
+}
+
+@fragment
+fn fragment_main() {
+  prevent_dce = atomicSub_15bfc9();
+}
+
+@compute @workgroup_size(1)
+fn compute_main() {
+  prevent_dce = atomicSub_15bfc9();
+}
+
+Failed to generate: :13:5 error: unary: no matching overload for 'operator - (u32)'
+
+2 candidate operators:
+ • 'operator - (T  ✗ ) -> T' where:
+      ✗  'T' is 'f32', 'i32' or 'f16'
+ • 'operator - (vecN<T>  ✗ ) -> vecN<T>' where:
+      ✗  'T' is 'f32', 'i32' or 'f16'
+
+    %5:u32 = negation 1u
+    ^^^^^^^^^^^^^^^^^^^^
+
+:11:3 note: in block
+  $B2: {
+  ^^^
+
+note: # Disassembly
+SB_RW = struct @align(4) {
+  arg_0:atomic<u32> @offset(0)
+}
+
+$B1: {  # root
+  %prevent_dce:hlsl.byte_address_buffer<read_write> = var @binding_point(0, 0)
+  %sb_rw:hlsl.byte_address_buffer<read_write> = var @binding_point(0, 1)
+}
+
+%atomicSub_15bfc9 = func():u32 {
+  $B2: {
+    %4:ptr<function, u32, read_write> = var, 0u
+    %5:u32 = negation 1u
+    %6:u32 = convert 0u
+    %7:void = %sb_rw.InterlockedAdd %6, %5, %4
+    %8:u32 = load %4
+    %res:ptr<function, u32, read_write> = var, %8
+    %10:u32 = load %res
+    ret %10
+  }
+}
+%fragment_main = @fragment func():void {
+  $B3: {
+    %12:u32 = call %atomicSub_15bfc9
+    %13:u32 = bitcast %12
+    %14:void = %prevent_dce.Store 0u, %13
+    ret
+  }
+}
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B4: {
+    %16:u32 = call %atomicSub_15bfc9
+    %17:u32 = bitcast %16
+    %18:void = %prevent_dce.Store 0u, %17
+    ret
+  }
+}
+
diff --git a/test/tint/builtins/gen/literal/atomicSub/77883a.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/atomicSub/77883a.wgsl.expected.ir.dxc.hlsl
index 7a4d08e..30e3f53 100644
--- a/test/tint/builtins/gen/literal/atomicSub/77883a.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/atomicSub/77883a.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,28 @@
-SKIP: FAILED
+struct compute_main_inputs {
+  uint tint_local_index : SV_GroupIndex;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: atomicSub
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+
+RWByteAddressBuffer prevent_dce : register(u0);
+groupshared int arg_0;
+int atomicSub_77883a() {
+  int v = 0;
+  InterlockedAdd(arg_0, -(1), v);
+  int res = v;
+  return res;
+}
+
+void compute_main_inner(uint tint_local_index) {
+  if ((tint_local_index == 0u)) {
+    int v_1 = 0;
+    InterlockedExchange(arg_0, 0, v_1);
+  }
+  GroupMemoryBarrierWithGroupSync();
+  prevent_dce.Store(0u, asuint(atomicSub_77883a()));
+}
+
+[numthreads(1, 1, 1)]
+void compute_main(compute_main_inputs inputs) {
+  compute_main_inner(inputs.tint_local_index);
+}
+
diff --git a/test/tint/builtins/gen/literal/atomicSub/77883a.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/atomicSub/77883a.wgsl.expected.ir.fxc.hlsl
index 7a4d08e..30e3f53 100644
--- a/test/tint/builtins/gen/literal/atomicSub/77883a.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/atomicSub/77883a.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,28 @@
-SKIP: FAILED
+struct compute_main_inputs {
+  uint tint_local_index : SV_GroupIndex;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: atomicSub
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+
+RWByteAddressBuffer prevent_dce : register(u0);
+groupshared int arg_0;
+int atomicSub_77883a() {
+  int v = 0;
+  InterlockedAdd(arg_0, -(1), v);
+  int res = v;
+  return res;
+}
+
+void compute_main_inner(uint tint_local_index) {
+  if ((tint_local_index == 0u)) {
+    int v_1 = 0;
+    InterlockedExchange(arg_0, 0, v_1);
+  }
+  GroupMemoryBarrierWithGroupSync();
+  prevent_dce.Store(0u, asuint(atomicSub_77883a()));
+}
+
+[numthreads(1, 1, 1)]
+void compute_main(compute_main_inputs inputs) {
+  compute_main_inner(inputs.tint_local_index);
+}
+
diff --git a/test/tint/builtins/gen/literal/atomicXor/54510e.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/atomicXor/54510e.wgsl.expected.ir.dxc.hlsl
index 30cc037..ba60555 100644
--- a/test/tint/builtins/gen/literal/atomicXor/54510e.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/atomicXor/54510e.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,19 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: atomicXor
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWByteAddressBuffer prevent_dce : register(u0);
+RWByteAddressBuffer sb_rw : register(u1);
+uint atomicXor_54510e() {
+  uint v = 0u;
+  sb_rw.InterlockedXor(uint(0u), 1u, v);
+  uint res = v;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store(0u, atomicXor_54510e());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store(0u, atomicXor_54510e());
+}
+
diff --git a/test/tint/builtins/gen/literal/atomicXor/54510e.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/atomicXor/54510e.wgsl.expected.ir.fxc.hlsl
index 30cc037..ba60555 100644
--- a/test/tint/builtins/gen/literal/atomicXor/54510e.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/atomicXor/54510e.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,19 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: atomicXor
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWByteAddressBuffer prevent_dce : register(u0);
+RWByteAddressBuffer sb_rw : register(u1);
+uint atomicXor_54510e() {
+  uint v = 0u;
+  sb_rw.InterlockedXor(uint(0u), 1u, v);
+  uint res = v;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store(0u, atomicXor_54510e());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store(0u, atomicXor_54510e());
+}
+
diff --git a/test/tint/builtins/gen/literal/atomicXor/75dc95.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/atomicXor/75dc95.wgsl.expected.ir.dxc.hlsl
index 30cc037..d96952b 100644
--- a/test/tint/builtins/gen/literal/atomicXor/75dc95.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/atomicXor/75dc95.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,28 @@
-SKIP: FAILED
+struct compute_main_inputs {
+  uint tint_local_index : SV_GroupIndex;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: atomicXor
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+
+RWByteAddressBuffer prevent_dce : register(u0);
+groupshared int arg_0;
+int atomicXor_75dc95() {
+  int v = 0;
+  InterlockedXor(arg_0, 1, v);
+  int res = v;
+  return res;
+}
+
+void compute_main_inner(uint tint_local_index) {
+  if ((tint_local_index == 0u)) {
+    int v_1 = 0;
+    InterlockedExchange(arg_0, 0, v_1);
+  }
+  GroupMemoryBarrierWithGroupSync();
+  prevent_dce.Store(0u, asuint(atomicXor_75dc95()));
+}
+
+[numthreads(1, 1, 1)]
+void compute_main(compute_main_inputs inputs) {
+  compute_main_inner(inputs.tint_local_index);
+}
+
diff --git a/test/tint/builtins/gen/literal/atomicXor/75dc95.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/atomicXor/75dc95.wgsl.expected.ir.fxc.hlsl
index 30cc037..d96952b 100644
--- a/test/tint/builtins/gen/literal/atomicXor/75dc95.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/atomicXor/75dc95.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,28 @@
-SKIP: FAILED
+struct compute_main_inputs {
+  uint tint_local_index : SV_GroupIndex;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: atomicXor
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+
+RWByteAddressBuffer prevent_dce : register(u0);
+groupshared int arg_0;
+int atomicXor_75dc95() {
+  int v = 0;
+  InterlockedXor(arg_0, 1, v);
+  int res = v;
+  return res;
+}
+
+void compute_main_inner(uint tint_local_index) {
+  if ((tint_local_index == 0u)) {
+    int v_1 = 0;
+    InterlockedExchange(arg_0, 0, v_1);
+  }
+  GroupMemoryBarrierWithGroupSync();
+  prevent_dce.Store(0u, asuint(atomicXor_75dc95()));
+}
+
+[numthreads(1, 1, 1)]
+void compute_main(compute_main_inputs inputs) {
+  compute_main_inner(inputs.tint_local_index);
+}
+
diff --git a/test/tint/builtins/gen/literal/atomicXor/c1b78c.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/atomicXor/c1b78c.wgsl.expected.ir.dxc.hlsl
index 30cc037..40abf0b 100644
--- a/test/tint/builtins/gen/literal/atomicXor/c1b78c.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/atomicXor/c1b78c.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,19 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: atomicXor
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWByteAddressBuffer prevent_dce : register(u0);
+RWByteAddressBuffer sb_rw : register(u1);
+int atomicXor_c1b78c() {
+  int v = 0;
+  sb_rw.InterlockedXor(int(0u), 1, v);
+  int res = v;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store(0u, asuint(atomicXor_c1b78c()));
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store(0u, asuint(atomicXor_c1b78c()));
+}
+
diff --git a/test/tint/builtins/gen/literal/atomicXor/c1b78c.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/atomicXor/c1b78c.wgsl.expected.ir.fxc.hlsl
index 30cc037..40abf0b 100644
--- a/test/tint/builtins/gen/literal/atomicXor/c1b78c.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/atomicXor/c1b78c.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,19 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: atomicXor
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWByteAddressBuffer prevent_dce : register(u0);
+RWByteAddressBuffer sb_rw : register(u1);
+int atomicXor_c1b78c() {
+  int v = 0;
+  sb_rw.InterlockedXor(int(0u), 1, v);
+  int res = v;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store(0u, asuint(atomicXor_c1b78c()));
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store(0u, asuint(atomicXor_c1b78c()));
+}
+
diff --git a/test/tint/builtins/gen/literal/atomicXor/c8e6be.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/atomicXor/c8e6be.wgsl.expected.ir.dxc.hlsl
index 30cc037..bb73393 100644
--- a/test/tint/builtins/gen/literal/atomicXor/c8e6be.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/atomicXor/c8e6be.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,28 @@
-SKIP: FAILED
+struct compute_main_inputs {
+  uint tint_local_index : SV_GroupIndex;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: atomicXor
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+
+RWByteAddressBuffer prevent_dce : register(u0);
+groupshared uint arg_0;
+uint atomicXor_c8e6be() {
+  uint v = 0u;
+  InterlockedXor(arg_0, 1u, v);
+  uint res = v;
+  return res;
+}
+
+void compute_main_inner(uint tint_local_index) {
+  if ((tint_local_index == 0u)) {
+    uint v_1 = 0u;
+    InterlockedExchange(arg_0, 0u, v_1);
+  }
+  GroupMemoryBarrierWithGroupSync();
+  prevent_dce.Store(0u, atomicXor_c8e6be());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main(compute_main_inputs inputs) {
+  compute_main_inner(inputs.tint_local_index);
+}
+
diff --git a/test/tint/builtins/gen/literal/atomicXor/c8e6be.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/atomicXor/c8e6be.wgsl.expected.ir.fxc.hlsl
index 30cc037..bb73393 100644
--- a/test/tint/builtins/gen/literal/atomicXor/c8e6be.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/atomicXor/c8e6be.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,28 @@
-SKIP: FAILED
+struct compute_main_inputs {
+  uint tint_local_index : SV_GroupIndex;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: atomicXor
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+
+RWByteAddressBuffer prevent_dce : register(u0);
+groupshared uint arg_0;
+uint atomicXor_c8e6be() {
+  uint v = 0u;
+  InterlockedXor(arg_0, 1u, v);
+  uint res = v;
+  return res;
+}
+
+void compute_main_inner(uint tint_local_index) {
+  if ((tint_local_index == 0u)) {
+    uint v_1 = 0u;
+    InterlockedExchange(arg_0, 0u, v_1);
+  }
+  GroupMemoryBarrierWithGroupSync();
+  prevent_dce.Store(0u, atomicXor_c8e6be());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main(compute_main_inputs inputs) {
+  compute_main_inner(inputs.tint_local_index);
+}
+
diff --git a/test/tint/builtins/gen/literal/bitcast/0fe0c9.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/bitcast/0fe0c9.wgsl.expected.ir.dxc.hlsl
index 0ba40c6..46bd78f 100644
--- a/test/tint/builtins/gen/literal/bitcast/0fe0c9.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/bitcast/0fe0c9.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,42 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  float3 prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation float3 VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+float3 bitcast_0fe0c9() {
+  float3 res = (1.40129846e-45f).xxx;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store3(0u, asuint(bitcast_0fe0c9()));
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store3(0u, asuint(bitcast_0fe0c9()));
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = bitcast_0fe0c9();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
diff --git a/test/tint/builtins/gen/literal/bitcast/0fe0c9.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/bitcast/0fe0c9.wgsl.expected.ir.fxc.hlsl
index 0ba40c6..46bd78f 100644
--- a/test/tint/builtins/gen/literal/bitcast/0fe0c9.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/bitcast/0fe0c9.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,42 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  float3 prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation float3 VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+float3 bitcast_0fe0c9() {
+  float3 res = (1.40129846e-45f).xxx;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store3(0u, asuint(bitcast_0fe0c9()));
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store3(0u, asuint(bitcast_0fe0c9()));
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = bitcast_0fe0c9();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
diff --git a/test/tint/builtins/gen/literal/bitcast/160c09.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/bitcast/160c09.wgsl.expected.ir.dxc.hlsl
index 0ba40c6..cdccf0f 100644
--- a/test/tint/builtins/gen/literal/bitcast/160c09.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/bitcast/160c09.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,42 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  uint4 prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation uint4 VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+uint4 bitcast_160c09() {
+  uint4 res = (1u).xxxx;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store4(0u, bitcast_160c09());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store4(0u, bitcast_160c09());
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = bitcast_160c09();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
diff --git a/test/tint/builtins/gen/literal/bitcast/160c09.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/bitcast/160c09.wgsl.expected.ir.fxc.hlsl
index 0ba40c6..cdccf0f 100644
--- a/test/tint/builtins/gen/literal/bitcast/160c09.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/bitcast/160c09.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,42 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  uint4 prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation uint4 VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+uint4 bitcast_160c09() {
+  uint4 res = (1u).xxxx;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store4(0u, bitcast_160c09());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store4(0u, bitcast_160c09());
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = bitcast_160c09();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
diff --git a/test/tint/builtins/gen/literal/bitcast/16cba4.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/bitcast/16cba4.wgsl.expected.ir.dxc.hlsl
index 0ba40c6..f959edb 100644
--- a/test/tint/builtins/gen/literal/bitcast/16cba4.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/bitcast/16cba4.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,42 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  int prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation int VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+int bitcast_16cba4() {
+  int res = 1065353216;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store(0u, asuint(bitcast_16cba4()));
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store(0u, asuint(bitcast_16cba4()));
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = bitcast_16cba4();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
diff --git a/test/tint/builtins/gen/literal/bitcast/16cba4.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/bitcast/16cba4.wgsl.expected.ir.fxc.hlsl
index 0ba40c6..f959edb 100644
--- a/test/tint/builtins/gen/literal/bitcast/16cba4.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/bitcast/16cba4.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,42 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  int prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation int VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+int bitcast_16cba4() {
+  int res = 1065353216;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store(0u, asuint(bitcast_16cba4()));
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store(0u, asuint(bitcast_16cba4()));
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = bitcast_16cba4();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
diff --git a/test/tint/builtins/gen/literal/bitcast/1c3b31.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/bitcast/1c3b31.wgsl.expected.ir.dxc.hlsl
index 0ba40c6..b580a37 100644
--- a/test/tint/builtins/gen/literal/bitcast/1c3b31.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/bitcast/1c3b31.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,42 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  uint2 prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation uint2 VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+uint2 bitcast_1c3b31() {
+  uint2 res = (1u).xx;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store2(0u, bitcast_1c3b31());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store2(0u, bitcast_1c3b31());
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = bitcast_1c3b31();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
diff --git a/test/tint/builtins/gen/literal/bitcast/1c3b31.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/bitcast/1c3b31.wgsl.expected.ir.fxc.hlsl
index 0ba40c6..b580a37 100644
--- a/test/tint/builtins/gen/literal/bitcast/1c3b31.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/bitcast/1c3b31.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,42 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  uint2 prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation uint2 VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+uint2 bitcast_1c3b31() {
+  uint2 res = (1u).xx;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store2(0u, bitcast_1c3b31());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store2(0u, bitcast_1c3b31());
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = bitcast_1c3b31();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
diff --git a/test/tint/builtins/gen/literal/bitcast/1df11f.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/bitcast/1df11f.wgsl.expected.ir.dxc.hlsl
index 0ba40c6..f19c483 100644
--- a/test/tint/builtins/gen/literal/bitcast/1df11f.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/bitcast/1df11f.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,42 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  vector<float16_t, 2> prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation vector<float16_t, 2> VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+vector<float16_t, 2> bitcast_1df11f() {
+  vector<float16_t, 2> res = (float16_t(1.0h)).xx;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store<vector<float16_t, 2> >(0u, bitcast_1df11f());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store<vector<float16_t, 2> >(0u, bitcast_1df11f());
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = bitcast_1df11f();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
diff --git a/test/tint/builtins/gen/literal/bitcast/1df11f.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/bitcast/1df11f.wgsl.expected.ir.fxc.hlsl
index 0ba40c6..2fd2e35 100644
--- a/test/tint/builtins/gen/literal/bitcast/1df11f.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/bitcast/1df11f.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,47 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct VertexOutput {
+  float4 pos;
+  vector<float16_t, 2> prevent_dce;
+};
+
+struct vertex_main_outputs {
+  nointerpolation vector<float16_t, 2> VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+vector<float16_t, 2> bitcast_1df11f() {
+  vector<float16_t, 2> res = (float16_t(1.0h)).xx;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store<vector<float16_t, 2> >(0u, bitcast_1df11f());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store<vector<float16_t, 2> >(0u, bitcast_1df11f());
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = bitcast_1df11f();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
+FXC validation failure:
+c:\src\dawn\Shader@0x000002A1669607C0(3,10-18): error X3000: syntax error: unexpected token 'float16_t'
+
diff --git a/test/tint/builtins/gen/literal/bitcast/214f23.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/bitcast/214f23.wgsl.expected.ir.dxc.hlsl
index 0ba40c6..10a5f36 100644
--- a/test/tint/builtins/gen/literal/bitcast/214f23.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/bitcast/214f23.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,42 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  int2 prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation int2 VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+int2 bitcast_214f23() {
+  int2 res = (1006648320).xx;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store2(0u, asuint(bitcast_214f23()));
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store2(0u, asuint(bitcast_214f23()));
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = bitcast_214f23();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
diff --git a/test/tint/builtins/gen/literal/bitcast/214f23.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/bitcast/214f23.wgsl.expected.ir.fxc.hlsl
index 0ba40c6..10a5f36 100644
--- a/test/tint/builtins/gen/literal/bitcast/214f23.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/bitcast/214f23.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,42 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  int2 prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation int2 VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+int2 bitcast_214f23() {
+  int2 res = (1006648320).xx;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store2(0u, asuint(bitcast_214f23()));
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store2(0u, asuint(bitcast_214f23()));
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = bitcast_214f23();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
diff --git a/test/tint/builtins/gen/literal/bitcast/23c8bd.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/bitcast/23c8bd.wgsl.expected.ir.dxc.hlsl
index 0ba40c6..b0ee3c3 100644
--- a/test/tint/builtins/gen/literal/bitcast/23c8bd.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/bitcast/23c8bd.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,42 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  float prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation float VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+float bitcast_23c8bd() {
+  float res = 0.00782680511474609375f;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store(0u, asuint(bitcast_23c8bd()));
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store(0u, asuint(bitcast_23c8bd()));
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = bitcast_23c8bd();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
diff --git a/test/tint/builtins/gen/literal/bitcast/23c8bd.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/bitcast/23c8bd.wgsl.expected.ir.fxc.hlsl
index 0ba40c6..b0ee3c3 100644
--- a/test/tint/builtins/gen/literal/bitcast/23c8bd.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/bitcast/23c8bd.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,42 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  float prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation float VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+float bitcast_23c8bd() {
+  float res = 0.00782680511474609375f;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store(0u, asuint(bitcast_23c8bd()));
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store(0u, asuint(bitcast_23c8bd()));
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = bitcast_23c8bd();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
diff --git a/test/tint/builtins/gen/literal/bitcast/2421c8.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/bitcast/2421c8.wgsl.expected.ir.dxc.hlsl
index 0ba40c6..b619467 100644
--- a/test/tint/builtins/gen/literal/bitcast/2421c8.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/bitcast/2421c8.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,42 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  float2 prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation float2 VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+float2 bitcast_2421c8() {
+  float2 res = (1.40129846e-45f).xx;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store2(0u, asuint(bitcast_2421c8()));
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store2(0u, asuint(bitcast_2421c8()));
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = bitcast_2421c8();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
diff --git a/test/tint/builtins/gen/literal/bitcast/2421c8.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/bitcast/2421c8.wgsl.expected.ir.fxc.hlsl
index 0ba40c6..b619467 100644
--- a/test/tint/builtins/gen/literal/bitcast/2421c8.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/bitcast/2421c8.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,42 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  float2 prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation float2 VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+float2 bitcast_2421c8() {
+  float2 res = (1.40129846e-45f).xx;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store2(0u, asuint(bitcast_2421c8()));
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store2(0u, asuint(bitcast_2421c8()));
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = bitcast_2421c8();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
diff --git a/test/tint/builtins/gen/literal/bitcast/287bdf.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/bitcast/287bdf.wgsl.expected.ir.dxc.hlsl
index 0ba40c6..05d7c24 100644
--- a/test/tint/builtins/gen/literal/bitcast/287bdf.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/bitcast/287bdf.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,42 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  uint3 prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation uint3 VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+uint3 bitcast_287bdf() {
+  uint3 res = (1u).xxx;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store3(0u, bitcast_287bdf());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store3(0u, bitcast_287bdf());
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = bitcast_287bdf();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
diff --git a/test/tint/builtins/gen/literal/bitcast/287bdf.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/bitcast/287bdf.wgsl.expected.ir.fxc.hlsl
index 0ba40c6..05d7c24 100644
--- a/test/tint/builtins/gen/literal/bitcast/287bdf.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/bitcast/287bdf.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,42 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  uint3 prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation uint3 VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+uint3 bitcast_287bdf() {
+  uint3 res = (1u).xxx;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store3(0u, bitcast_287bdf());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store3(0u, bitcast_287bdf());
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = bitcast_287bdf();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
diff --git a/test/tint/builtins/gen/literal/bitcast/2a6e58.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/bitcast/2a6e58.wgsl.expected.ir.dxc.hlsl
index 0ba40c6..1f22a47 100644
--- a/test/tint/builtins/gen/literal/bitcast/2a6e58.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/bitcast/2a6e58.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,42 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  float2 prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation float2 VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+float2 bitcast_2a6e58() {
+  float2 res = (0.00782680511474609375f).xx;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store2(0u, asuint(bitcast_2a6e58()));
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store2(0u, asuint(bitcast_2a6e58()));
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = bitcast_2a6e58();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
diff --git a/test/tint/builtins/gen/literal/bitcast/2a6e58.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/bitcast/2a6e58.wgsl.expected.ir.fxc.hlsl
index 0ba40c6..1f22a47 100644
--- a/test/tint/builtins/gen/literal/bitcast/2a6e58.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/bitcast/2a6e58.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,42 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  float2 prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation float2 VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+float2 bitcast_2a6e58() {
+  float2 res = (0.00782680511474609375f).xx;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store2(0u, asuint(bitcast_2a6e58()));
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store2(0u, asuint(bitcast_2a6e58()));
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = bitcast_2a6e58();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
diff --git a/test/tint/builtins/gen/literal/bitcast/2b05b3.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/bitcast/2b05b3.wgsl.expected.ir.dxc.hlsl
index 0ba40c6..58d1a09 100644
--- a/test/tint/builtins/gen/literal/bitcast/2b05b3.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/bitcast/2b05b3.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,42 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  float3 prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation float3 VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+float3 bitcast_2b05b3() {
+  float3 res = (1.0f).xxx;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store3(0u, asuint(bitcast_2b05b3()));
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store3(0u, asuint(bitcast_2b05b3()));
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = bitcast_2b05b3();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
diff --git a/test/tint/builtins/gen/literal/bitcast/2b05b3.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/bitcast/2b05b3.wgsl.expected.ir.fxc.hlsl
index 0ba40c6..58d1a09 100644
--- a/test/tint/builtins/gen/literal/bitcast/2b05b3.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/bitcast/2b05b3.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,42 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  float3 prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation float3 VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+float3 bitcast_2b05b3() {
+  float3 res = (1.0f).xxx;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store3(0u, asuint(bitcast_2b05b3()));
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store3(0u, asuint(bitcast_2b05b3()));
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = bitcast_2b05b3();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
diff --git a/test/tint/builtins/gen/literal/bitcast/2b2738.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/bitcast/2b2738.wgsl.expected.ir.dxc.hlsl
index 0ba40c6..653f5f8 100644
--- a/test/tint/builtins/gen/literal/bitcast/2b2738.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/bitcast/2b2738.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,42 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  uint2 prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation uint2 VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+uint2 bitcast_2b2738() {
+  uint2 res = (1065353216u).xx;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store2(0u, bitcast_2b2738());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store2(0u, bitcast_2b2738());
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = bitcast_2b2738();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
diff --git a/test/tint/builtins/gen/literal/bitcast/2b2738.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/bitcast/2b2738.wgsl.expected.ir.fxc.hlsl
index 0ba40c6..653f5f8 100644
--- a/test/tint/builtins/gen/literal/bitcast/2b2738.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/bitcast/2b2738.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,42 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  uint2 prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation uint2 VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+uint2 bitcast_2b2738() {
+  uint2 res = (1065353216u).xx;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store2(0u, bitcast_2b2738());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store2(0u, bitcast_2b2738());
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = bitcast_2b2738();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
diff --git a/test/tint/builtins/gen/literal/bitcast/31c080.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/bitcast/31c080.wgsl.expected.ir.dxc.hlsl
index 0ba40c6..44e3e5e 100644
--- a/test/tint/builtins/gen/literal/bitcast/31c080.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/bitcast/31c080.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,42 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  uint prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation uint VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+uint bitcast_31c080() {
+  uint res = 1u;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store(0u, bitcast_31c080());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store(0u, bitcast_31c080());
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = bitcast_31c080();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
diff --git a/test/tint/builtins/gen/literal/bitcast/31c080.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/bitcast/31c080.wgsl.expected.ir.fxc.hlsl
index 0ba40c6..44e3e5e 100644
--- a/test/tint/builtins/gen/literal/bitcast/31c080.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/bitcast/31c080.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,42 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  uint prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation uint VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+uint bitcast_31c080() {
+  uint res = 1u;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store(0u, bitcast_31c080());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store(0u, bitcast_31c080());
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = bitcast_31c080();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
diff --git a/test/tint/builtins/gen/literal/bitcast/332f78.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/bitcast/332f78.wgsl.expected.ir.dxc.hlsl
index 0ba40c6..6921591 100644
--- a/test/tint/builtins/gen/literal/bitcast/332f78.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/bitcast/332f78.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,42 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  float3 prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation float3 VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+float3 bitcast_332f78() {
+  float3 res = (1.40129846e-45f).xxx;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store3(0u, asuint(bitcast_332f78()));
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store3(0u, asuint(bitcast_332f78()));
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = bitcast_332f78();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
diff --git a/test/tint/builtins/gen/literal/bitcast/332f78.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/bitcast/332f78.wgsl.expected.ir.fxc.hlsl
index 0ba40c6..6921591 100644
--- a/test/tint/builtins/gen/literal/bitcast/332f78.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/bitcast/332f78.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,42 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  float3 prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation float3 VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+float3 bitcast_332f78() {
+  float3 res = (1.40129846e-45f).xxx;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store3(0u, asuint(bitcast_332f78()));
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store3(0u, asuint(bitcast_332f78()));
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = bitcast_332f78();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
diff --git a/test/tint/builtins/gen/literal/bitcast/3e7b47.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/bitcast/3e7b47.wgsl.expected.ir.dxc.hlsl
index 0ba40c6..ec12a9b 100644
--- a/test/tint/builtins/gen/literal/bitcast/3e7b47.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/bitcast/3e7b47.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,42 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  vector<float16_t, 4> prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation vector<float16_t, 4> VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+vector<float16_t, 4> bitcast_3e7b47() {
+  vector<float16_t, 4> res = (float16_t(1.0h)).xxxx;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store<vector<float16_t, 4> >(0u, bitcast_3e7b47());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store<vector<float16_t, 4> >(0u, bitcast_3e7b47());
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = bitcast_3e7b47();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
diff --git a/test/tint/builtins/gen/literal/bitcast/3e7b47.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/bitcast/3e7b47.wgsl.expected.ir.fxc.hlsl
index 0ba40c6..e7faaae 100644
--- a/test/tint/builtins/gen/literal/bitcast/3e7b47.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/bitcast/3e7b47.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,47 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct VertexOutput {
+  float4 pos;
+  vector<float16_t, 4> prevent_dce;
+};
+
+struct vertex_main_outputs {
+  nointerpolation vector<float16_t, 4> VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+vector<float16_t, 4> bitcast_3e7b47() {
+  vector<float16_t, 4> res = (float16_t(1.0h)).xxxx;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store<vector<float16_t, 4> >(0u, bitcast_3e7b47());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store<vector<float16_t, 4> >(0u, bitcast_3e7b47());
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = bitcast_3e7b47();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
+FXC validation failure:
+c:\src\dawn\Shader@0x00000268299FF420(3,10-18): error X3000: syntax error: unexpected token 'float16_t'
+
diff --git a/test/tint/builtins/gen/literal/bitcast/3f7437.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/bitcast/3f7437.wgsl.expected.ir.dxc.hlsl
index 0ba40c6..8539a10 100644
--- a/test/tint/builtins/gen/literal/bitcast/3f7437.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/bitcast/3f7437.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,42 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  int4 prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation int4 VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+int4 bitcast_3f7437() {
+  int4 res = (1).xxxx;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store4(0u, asuint(bitcast_3f7437()));
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store4(0u, asuint(bitcast_3f7437()));
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = bitcast_3f7437();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
diff --git a/test/tint/builtins/gen/literal/bitcast/3f7437.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/bitcast/3f7437.wgsl.expected.ir.fxc.hlsl
index 0ba40c6..8539a10 100644
--- a/test/tint/builtins/gen/literal/bitcast/3f7437.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/bitcast/3f7437.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,42 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  int4 prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation int4 VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+int4 bitcast_3f7437() {
+  int4 res = (1).xxxx;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store4(0u, asuint(bitcast_3f7437()));
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store4(0u, asuint(bitcast_3f7437()));
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = bitcast_3f7437();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
diff --git a/test/tint/builtins/gen/literal/bitcast/3fdacd.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/bitcast/3fdacd.wgsl.expected.ir.dxc.hlsl
index 0ba40c6..c72cad2 100644
--- a/test/tint/builtins/gen/literal/bitcast/3fdacd.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/bitcast/3fdacd.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,42 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  float4 prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation float4 VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+float4 bitcast_3fdacd() {
+  float4 res = (1.40129846e-45f).xxxx;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store4(0u, asuint(bitcast_3fdacd()));
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store4(0u, asuint(bitcast_3fdacd()));
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = bitcast_3fdacd();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
diff --git a/test/tint/builtins/gen/literal/bitcast/3fdacd.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/bitcast/3fdacd.wgsl.expected.ir.fxc.hlsl
index 0ba40c6..c72cad2 100644
--- a/test/tint/builtins/gen/literal/bitcast/3fdacd.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/bitcast/3fdacd.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,42 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  float4 prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation float4 VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+float4 bitcast_3fdacd() {
+  float4 res = (1.40129846e-45f).xxxx;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store4(0u, asuint(bitcast_3fdacd()));
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store4(0u, asuint(bitcast_3fdacd()));
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = bitcast_3fdacd();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
diff --git a/test/tint/builtins/gen/literal/bitcast/429d64.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/bitcast/429d64.wgsl.expected.ir.dxc.hlsl
index 0ba40c6..71cfc39 100644
--- a/test/tint/builtins/gen/literal/bitcast/429d64.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/bitcast/429d64.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,42 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  vector<float16_t, 4> prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation vector<float16_t, 4> VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+vector<float16_t, 4> bitcast_429d64() {
+  vector<float16_t, 4> res = vector<float16_t, 4>(float16_t(0.0h), float16_t(1.875h), float16_t(0.0h), float16_t(1.875h));
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store<vector<float16_t, 4> >(0u, bitcast_429d64());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store<vector<float16_t, 4> >(0u, bitcast_429d64());
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = bitcast_429d64();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
diff --git a/test/tint/builtins/gen/literal/bitcast/429d64.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/bitcast/429d64.wgsl.expected.ir.fxc.hlsl
index 0ba40c6..5fd9fdf 100644
--- a/test/tint/builtins/gen/literal/bitcast/429d64.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/bitcast/429d64.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,47 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct VertexOutput {
+  float4 pos;
+  vector<float16_t, 4> prevent_dce;
+};
+
+struct vertex_main_outputs {
+  nointerpolation vector<float16_t, 4> VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+vector<float16_t, 4> bitcast_429d64() {
+  vector<float16_t, 4> res = vector<float16_t, 4>(float16_t(0.0h), float16_t(1.875h), float16_t(0.0h), float16_t(1.875h));
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store<vector<float16_t, 4> >(0u, bitcast_429d64());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store<vector<float16_t, 4> >(0u, bitcast_429d64());
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = bitcast_429d64();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
+FXC validation failure:
+c:\src\dawn\Shader@0x0000021276DD3230(3,10-18): error X3000: syntax error: unexpected token 'float16_t'
+
diff --git a/test/tint/builtins/gen/literal/bitcast/436211.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/bitcast/436211.wgsl.expected.ir.dxc.hlsl
index 0ba40c6..f74cc05 100644
--- a/test/tint/builtins/gen/literal/bitcast/436211.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/bitcast/436211.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,42 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  float16_t prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation float16_t VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+float16_t bitcast_436211() {
+  float16_t res = float16_t(1.0h);
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store<float16_t>(0u, bitcast_436211());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store<float16_t>(0u, bitcast_436211());
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = bitcast_436211();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
diff --git a/test/tint/builtins/gen/literal/bitcast/436211.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/bitcast/436211.wgsl.expected.ir.fxc.hlsl
index 0ba40c6..400381f 100644
--- a/test/tint/builtins/gen/literal/bitcast/436211.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/bitcast/436211.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,47 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct VertexOutput {
+  float4 pos;
+  float16_t prevent_dce;
+};
+
+struct vertex_main_outputs {
+  nointerpolation float16_t VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+float16_t bitcast_436211() {
+  float16_t res = float16_t(1.0h);
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store<float16_t>(0u, bitcast_436211());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store<float16_t>(0u, bitcast_436211());
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = bitcast_436211();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
+FXC validation failure:
+c:\src\dawn\Shader@0x00000189A8A509E0(3,3-11): error X3000: unrecognized identifier 'float16_t'
+
diff --git a/test/tint/builtins/gen/literal/bitcast/5081ed.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/bitcast/5081ed.wgsl.expected.ir.dxc.hlsl
index 0ba40c6..2f1e56f 100644
--- a/test/tint/builtins/gen/literal/bitcast/5081ed.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/bitcast/5081ed.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,42 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  vector<float16_t, 3> prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation vector<float16_t, 3> VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+vector<float16_t, 3> bitcast_5081ed() {
+  vector<float16_t, 3> res = (float16_t(1.0h)).xxx;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store<vector<float16_t, 3> >(0u, bitcast_5081ed());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store<vector<float16_t, 3> >(0u, bitcast_5081ed());
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = bitcast_5081ed();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
diff --git a/test/tint/builtins/gen/literal/bitcast/5081ed.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/bitcast/5081ed.wgsl.expected.ir.fxc.hlsl
index 0ba40c6..f6e6be9 100644
--- a/test/tint/builtins/gen/literal/bitcast/5081ed.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/bitcast/5081ed.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,47 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct VertexOutput {
+  float4 pos;
+  vector<float16_t, 3> prevent_dce;
+};
+
+struct vertex_main_outputs {
+  nointerpolation vector<float16_t, 3> VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+vector<float16_t, 3> bitcast_5081ed() {
+  vector<float16_t, 3> res = (float16_t(1.0h)).xxx;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store<vector<float16_t, 3> >(0u, bitcast_5081ed());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store<vector<float16_t, 3> >(0u, bitcast_5081ed());
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = bitcast_5081ed();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
+FXC validation failure:
+c:\src\dawn\Shader@0x0000024F26C27720(3,10-18): error X3000: syntax error: unexpected token 'float16_t'
+
diff --git a/test/tint/builtins/gen/literal/bitcast/56266e.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/bitcast/56266e.wgsl.expected.ir.dxc.hlsl
index 0ba40c6..d6914ae 100644
--- a/test/tint/builtins/gen/literal/bitcast/56266e.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/bitcast/56266e.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,42 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  uint3 prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation uint3 VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+uint3 bitcast_56266e() {
+  uint3 res = (1065353216u).xxx;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store3(0u, bitcast_56266e());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store3(0u, bitcast_56266e());
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = bitcast_56266e();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
diff --git a/test/tint/builtins/gen/literal/bitcast/56266e.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/bitcast/56266e.wgsl.expected.ir.fxc.hlsl
index 0ba40c6..d6914ae 100644
--- a/test/tint/builtins/gen/literal/bitcast/56266e.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/bitcast/56266e.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,42 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  uint3 prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation uint3 VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+uint3 bitcast_56266e() {
+  uint3 res = (1065353216u).xxx;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store3(0u, bitcast_56266e());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store3(0u, bitcast_56266e());
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = bitcast_56266e();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
diff --git a/test/tint/builtins/gen/literal/bitcast/66e93d.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/bitcast/66e93d.wgsl.expected.ir.dxc.hlsl
index 0ba40c6..5071137 100644
--- a/test/tint/builtins/gen/literal/bitcast/66e93d.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/bitcast/66e93d.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,42 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  vector<float16_t, 2> prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation vector<float16_t, 2> VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+vector<float16_t, 2> bitcast_66e93d() {
+  vector<float16_t, 2> res = vector<float16_t, 2>(float16_t(0.00000005960464477539h), float16_t(0.0h));
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store<vector<float16_t, 2> >(0u, bitcast_66e93d());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store<vector<float16_t, 2> >(0u, bitcast_66e93d());
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = bitcast_66e93d();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
diff --git a/test/tint/builtins/gen/literal/bitcast/66e93d.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/bitcast/66e93d.wgsl.expected.ir.fxc.hlsl
index 0ba40c6..b8f764d 100644
--- a/test/tint/builtins/gen/literal/bitcast/66e93d.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/bitcast/66e93d.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,47 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct VertexOutput {
+  float4 pos;
+  vector<float16_t, 2> prevent_dce;
+};
+
+struct vertex_main_outputs {
+  nointerpolation vector<float16_t, 2> VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+vector<float16_t, 2> bitcast_66e93d() {
+  vector<float16_t, 2> res = vector<float16_t, 2>(float16_t(0.00000005960464477539h), float16_t(0.0h));
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store<vector<float16_t, 2> >(0u, bitcast_66e93d());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store<vector<float16_t, 2> >(0u, bitcast_66e93d());
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = bitcast_66e93d();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
+FXC validation failure:
+c:\src\dawn\Shader@0x000001BA60BCC8C0(3,10-18): error X3000: syntax error: unexpected token 'float16_t'
+
diff --git a/test/tint/builtins/gen/literal/bitcast/674557.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/bitcast/674557.wgsl.expected.ir.dxc.hlsl
index 0ba40c6..1533b14 100644
--- a/test/tint/builtins/gen/literal/bitcast/674557.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/bitcast/674557.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,42 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  vector<float16_t, 2> prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation vector<float16_t, 2> VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+vector<float16_t, 2> bitcast_674557() {
+  vector<float16_t, 2> res = vector<float16_t, 2>(float16_t(0.00000005960464477539h), float16_t(0.0h));
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store<vector<float16_t, 2> >(0u, bitcast_674557());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store<vector<float16_t, 2> >(0u, bitcast_674557());
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = bitcast_674557();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
diff --git a/test/tint/builtins/gen/literal/bitcast/674557.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/bitcast/674557.wgsl.expected.ir.fxc.hlsl
index 0ba40c6..54c384e 100644
--- a/test/tint/builtins/gen/literal/bitcast/674557.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/bitcast/674557.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,47 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct VertexOutput {
+  float4 pos;
+  vector<float16_t, 2> prevent_dce;
+};
+
+struct vertex_main_outputs {
+  nointerpolation vector<float16_t, 2> VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+vector<float16_t, 2> bitcast_674557() {
+  vector<float16_t, 2> res = vector<float16_t, 2>(float16_t(0.00000005960464477539h), float16_t(0.0h));
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store<vector<float16_t, 2> >(0u, bitcast_674557());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store<vector<float16_t, 2> >(0u, bitcast_674557());
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = bitcast_674557();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
+FXC validation failure:
+c:\src\dawn\Shader@0x0000026C86D57D00(3,10-18): error X3000: syntax error: unexpected token 'float16_t'
+
diff --git a/test/tint/builtins/gen/literal/bitcast/6ac6f9.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/bitcast/6ac6f9.wgsl.expected.ir.dxc.hlsl
index 0ba40c6..473dc48 100644
--- a/test/tint/builtins/gen/literal/bitcast/6ac6f9.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/bitcast/6ac6f9.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,42 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  int prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation int VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+int bitcast_6ac6f9() {
+  int res = 1006648320;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store(0u, asuint(bitcast_6ac6f9()));
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store(0u, asuint(bitcast_6ac6f9()));
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = bitcast_6ac6f9();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
diff --git a/test/tint/builtins/gen/literal/bitcast/6ac6f9.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/bitcast/6ac6f9.wgsl.expected.ir.fxc.hlsl
index 0ba40c6..473dc48 100644
--- a/test/tint/builtins/gen/literal/bitcast/6ac6f9.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/bitcast/6ac6f9.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,42 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  int prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation int VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+int bitcast_6ac6f9() {
+  int res = 1006648320;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store(0u, asuint(bitcast_6ac6f9()));
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store(0u, asuint(bitcast_6ac6f9()));
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = bitcast_6ac6f9();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
diff --git a/test/tint/builtins/gen/literal/bitcast/6de2bd.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/bitcast/6de2bd.wgsl.expected.ir.dxc.hlsl
index 0ba40c6..00e39de 100644
--- a/test/tint/builtins/gen/literal/bitcast/6de2bd.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/bitcast/6de2bd.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,42 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  int4 prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation int4 VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+int4 bitcast_6de2bd() {
+  int4 res = (1065353216).xxxx;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store4(0u, asuint(bitcast_6de2bd()));
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store4(0u, asuint(bitcast_6de2bd()));
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = bitcast_6de2bd();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
diff --git a/test/tint/builtins/gen/literal/bitcast/6de2bd.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/bitcast/6de2bd.wgsl.expected.ir.fxc.hlsl
index 0ba40c6..00e39de 100644
--- a/test/tint/builtins/gen/literal/bitcast/6de2bd.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/bitcast/6de2bd.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,42 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  int4 prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation int4 VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+int4 bitcast_6de2bd() {
+  int4 res = (1065353216).xxxx;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store4(0u, asuint(bitcast_6de2bd()));
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store4(0u, asuint(bitcast_6de2bd()));
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = bitcast_6de2bd();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
diff --git a/test/tint/builtins/gen/literal/bitcast/70b121.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/bitcast/70b121.wgsl.expected.ir.dxc.hlsl
index 0ba40c6..62adb0b 100644
--- a/test/tint/builtins/gen/literal/bitcast/70b121.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/bitcast/70b121.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,42 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  uint2 prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation uint2 VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+uint2 bitcast_70b121() {
+  uint2 res = (1u).xx;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store2(0u, bitcast_70b121());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store2(0u, bitcast_70b121());
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = bitcast_70b121();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
diff --git a/test/tint/builtins/gen/literal/bitcast/70b121.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/bitcast/70b121.wgsl.expected.ir.fxc.hlsl
index 0ba40c6..62adb0b 100644
--- a/test/tint/builtins/gen/literal/bitcast/70b121.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/bitcast/70b121.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,42 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  uint2 prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation uint2 VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+uint2 bitcast_70b121() {
+  uint2 res = (1u).xx;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store2(0u, bitcast_70b121());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store2(0u, bitcast_70b121());
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = bitcast_70b121();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
diff --git a/test/tint/builtins/gen/literal/bitcast/71c92a.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/bitcast/71c92a.wgsl.expected.ir.dxc.hlsl
index 0ba40c6..dce8481 100644
--- a/test/tint/builtins/gen/literal/bitcast/71c92a.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/bitcast/71c92a.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,42 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  vector<float16_t, 4> prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation vector<float16_t, 4> VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+vector<float16_t, 4> bitcast_71c92a() {
+  vector<float16_t, 4> res = vector<float16_t, 4>(float16_t(0.00000005960464477539h), float16_t(0.0h), float16_t(0.00000005960464477539h), float16_t(0.0h));
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store<vector<float16_t, 4> >(0u, bitcast_71c92a());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store<vector<float16_t, 4> >(0u, bitcast_71c92a());
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = bitcast_71c92a();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
diff --git a/test/tint/builtins/gen/literal/bitcast/71c92a.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/bitcast/71c92a.wgsl.expected.ir.fxc.hlsl
index 0ba40c6..ea425b0 100644
--- a/test/tint/builtins/gen/literal/bitcast/71c92a.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/bitcast/71c92a.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,47 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct VertexOutput {
+  float4 pos;
+  vector<float16_t, 4> prevent_dce;
+};
+
+struct vertex_main_outputs {
+  nointerpolation vector<float16_t, 4> VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+vector<float16_t, 4> bitcast_71c92a() {
+  vector<float16_t, 4> res = vector<float16_t, 4>(float16_t(0.00000005960464477539h), float16_t(0.0h), float16_t(0.00000005960464477539h), float16_t(0.0h));
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store<vector<float16_t, 4> >(0u, bitcast_71c92a());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store<vector<float16_t, 4> >(0u, bitcast_71c92a());
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = bitcast_71c92a();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
+FXC validation failure:
+c:\src\dawn\Shader@0x00000262108E17B0(3,10-18): error X3000: syntax error: unexpected token 'float16_t'
+
diff --git a/test/tint/builtins/gen/literal/bitcast/745b27.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/bitcast/745b27.wgsl.expected.ir.dxc.hlsl
index 0ba40c6..6782fa0 100644
--- a/test/tint/builtins/gen/literal/bitcast/745b27.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/bitcast/745b27.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,42 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  float4 prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation float4 VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+float4 bitcast_745b27() {
+  float4 res = (1.0f).xxxx;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store4(0u, asuint(bitcast_745b27()));
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store4(0u, asuint(bitcast_745b27()));
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = bitcast_745b27();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
diff --git a/test/tint/builtins/gen/literal/bitcast/745b27.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/bitcast/745b27.wgsl.expected.ir.fxc.hlsl
index 0ba40c6..6782fa0 100644
--- a/test/tint/builtins/gen/literal/bitcast/745b27.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/bitcast/745b27.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,42 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  float4 prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation float4 VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+float4 bitcast_745b27() {
+  float4 res = (1.0f).xxxx;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store4(0u, asuint(bitcast_745b27()));
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store4(0u, asuint(bitcast_745b27()));
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = bitcast_745b27();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
diff --git a/test/tint/builtins/gen/literal/bitcast/7e67cc.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/bitcast/7e67cc.wgsl.expected.ir.dxc.hlsl
index 0ba40c6..cca2a80 100644
--- a/test/tint/builtins/gen/literal/bitcast/7e67cc.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/bitcast/7e67cc.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,42 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  int prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation int VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+int bitcast_7e67cc() {
+  int res = 1;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store(0u, asuint(bitcast_7e67cc()));
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store(0u, asuint(bitcast_7e67cc()));
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = bitcast_7e67cc();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
diff --git a/test/tint/builtins/gen/literal/bitcast/7e67cc.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/bitcast/7e67cc.wgsl.expected.ir.fxc.hlsl
index 0ba40c6..cca2a80 100644
--- a/test/tint/builtins/gen/literal/bitcast/7e67cc.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/bitcast/7e67cc.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,42 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  int prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation int VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+int bitcast_7e67cc() {
+  int res = 1;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store(0u, asuint(bitcast_7e67cc()));
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store(0u, asuint(bitcast_7e67cc()));
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = bitcast_7e67cc();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
diff --git a/test/tint/builtins/gen/literal/bitcast/7ffa9c.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/bitcast/7ffa9c.wgsl.expected.ir.dxc.hlsl
index 0ba40c6..21051f2 100644
--- a/test/tint/builtins/gen/literal/bitcast/7ffa9c.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/bitcast/7ffa9c.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,42 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  uint4 prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation uint4 VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+uint4 bitcast_7ffa9c() {
+  uint4 res = (1u).xxxx;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store4(0u, bitcast_7ffa9c());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store4(0u, bitcast_7ffa9c());
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = bitcast_7ffa9c();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
diff --git a/test/tint/builtins/gen/literal/bitcast/7ffa9c.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/bitcast/7ffa9c.wgsl.expected.ir.fxc.hlsl
index 0ba40c6..21051f2 100644
--- a/test/tint/builtins/gen/literal/bitcast/7ffa9c.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/bitcast/7ffa9c.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,42 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  uint4 prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation uint4 VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+uint4 bitcast_7ffa9c() {
+  uint4 res = (1u).xxxx;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store4(0u, bitcast_7ffa9c());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store4(0u, bitcast_7ffa9c());
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = bitcast_7ffa9c();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
diff --git a/test/tint/builtins/gen/literal/bitcast/81c5f5.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/bitcast/81c5f5.wgsl.expected.ir.dxc.hlsl
index 0ba40c6..bdeb78f 100644
--- a/test/tint/builtins/gen/literal/bitcast/81c5f5.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/bitcast/81c5f5.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,42 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  uint2 prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation uint2 VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+uint2 bitcast_81c5f5() {
+  uint2 res = (1006648320u).xx;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store2(0u, bitcast_81c5f5());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store2(0u, bitcast_81c5f5());
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = bitcast_81c5f5();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
diff --git a/test/tint/builtins/gen/literal/bitcast/81c5f5.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/bitcast/81c5f5.wgsl.expected.ir.fxc.hlsl
index 0ba40c6..bdeb78f 100644
--- a/test/tint/builtins/gen/literal/bitcast/81c5f5.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/bitcast/81c5f5.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,42 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  uint2 prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation uint2 VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+uint2 bitcast_81c5f5() {
+  uint2 res = (1006648320u).xx;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store2(0u, bitcast_81c5f5());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store2(0u, bitcast_81c5f5());
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = bitcast_81c5f5();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
diff --git a/test/tint/builtins/gen/literal/bitcast/8318a8.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/bitcast/8318a8.wgsl.expected.ir.dxc.hlsl
index 0ba40c6..a4b6943 100644
--- a/test/tint/builtins/gen/literal/bitcast/8318a8.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/bitcast/8318a8.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,42 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  uint3 prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation uint3 VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+uint3 bitcast_8318a8() {
+  uint3 res = (1u).xxx;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store3(0u, bitcast_8318a8());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store3(0u, bitcast_8318a8());
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = bitcast_8318a8();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
diff --git a/test/tint/builtins/gen/literal/bitcast/8318a8.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/bitcast/8318a8.wgsl.expected.ir.fxc.hlsl
index 0ba40c6..a4b6943 100644
--- a/test/tint/builtins/gen/literal/bitcast/8318a8.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/bitcast/8318a8.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,42 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  uint3 prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation uint3 VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+uint3 bitcast_8318a8() {
+  uint3 res = (1u).xxx;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store3(0u, bitcast_8318a8());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store3(0u, bitcast_8318a8());
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = bitcast_8318a8();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
diff --git a/test/tint/builtins/gen/literal/bitcast/879dc9.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/bitcast/879dc9.wgsl.expected.ir.dxc.hlsl
index 0ba40c6..53dce82 100644
--- a/test/tint/builtins/gen/literal/bitcast/879dc9.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/bitcast/879dc9.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,42 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  uint prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation uint VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+uint bitcast_879dc9() {
+  uint res = 1u;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store(0u, bitcast_879dc9());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store(0u, bitcast_879dc9());
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = bitcast_879dc9();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
diff --git a/test/tint/builtins/gen/literal/bitcast/879dc9.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/bitcast/879dc9.wgsl.expected.ir.fxc.hlsl
index 0ba40c6..53dce82 100644
--- a/test/tint/builtins/gen/literal/bitcast/879dc9.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/bitcast/879dc9.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,42 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  uint prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation uint VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+uint bitcast_879dc9() {
+  uint res = 1u;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store(0u, bitcast_879dc9());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store(0u, bitcast_879dc9());
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = bitcast_879dc9();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
diff --git a/test/tint/builtins/gen/literal/bitcast/899e50.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/bitcast/899e50.wgsl.expected.ir.dxc.hlsl
index 0ba40c6..6aa0f0b 100644
--- a/test/tint/builtins/gen/literal/bitcast/899e50.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/bitcast/899e50.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,42 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  int2 prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation int2 VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+int2 bitcast_899e50() {
+  int2 res = (1065353216).xx;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store2(0u, asuint(bitcast_899e50()));
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store2(0u, asuint(bitcast_899e50()));
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = bitcast_899e50();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
diff --git a/test/tint/builtins/gen/literal/bitcast/899e50.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/bitcast/899e50.wgsl.expected.ir.fxc.hlsl
index 0ba40c6..6aa0f0b 100644
--- a/test/tint/builtins/gen/literal/bitcast/899e50.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/bitcast/899e50.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,42 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  int2 prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation int2 VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+int2 bitcast_899e50() {
+  int2 res = (1065353216).xx;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store2(0u, asuint(bitcast_899e50()));
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store2(0u, asuint(bitcast_899e50()));
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = bitcast_899e50();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
diff --git a/test/tint/builtins/gen/literal/bitcast/8d184c.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/bitcast/8d184c.wgsl.expected.ir.dxc.hlsl
index 0ba40c6..c004237 100644
--- a/test/tint/builtins/gen/literal/bitcast/8d184c.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/bitcast/8d184c.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,42 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  uint4 prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation uint4 VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+uint4 bitcast_8d184c() {
+  uint4 res = (1065353216u).xxxx;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store4(0u, bitcast_8d184c());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store4(0u, bitcast_8d184c());
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = bitcast_8d184c();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
diff --git a/test/tint/builtins/gen/literal/bitcast/8d184c.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/bitcast/8d184c.wgsl.expected.ir.fxc.hlsl
index 0ba40c6..c004237 100644
--- a/test/tint/builtins/gen/literal/bitcast/8d184c.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/bitcast/8d184c.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,42 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  uint4 prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation uint4 VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+uint4 bitcast_8d184c() {
+  uint4 res = (1065353216u).xxxx;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store4(0u, bitcast_8d184c());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store4(0u, bitcast_8d184c());
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = bitcast_8d184c();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
diff --git a/test/tint/builtins/gen/literal/bitcast/9bcf71.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/bitcast/9bcf71.wgsl.expected.ir.dxc.hlsl
index 0ba40c6..7e74026 100644
--- a/test/tint/builtins/gen/literal/bitcast/9bcf71.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/bitcast/9bcf71.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,42 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  float2 prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation float2 VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+float2 bitcast_9bcf71() {
+  float2 res = (1.0f).xx;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store2(0u, asuint(bitcast_9bcf71()));
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store2(0u, asuint(bitcast_9bcf71()));
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = bitcast_9bcf71();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
diff --git a/test/tint/builtins/gen/literal/bitcast/9bcf71.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/bitcast/9bcf71.wgsl.expected.ir.fxc.hlsl
index 0ba40c6..7e74026 100644
--- a/test/tint/builtins/gen/literal/bitcast/9bcf71.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/bitcast/9bcf71.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,42 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  float2 prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation float2 VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+float2 bitcast_9bcf71() {
+  float2 res = (1.0f).xx;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store2(0u, asuint(bitcast_9bcf71()));
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store2(0u, asuint(bitcast_9bcf71()));
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = bitcast_9bcf71();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
diff --git a/test/tint/builtins/gen/literal/bitcast/9ca42c.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/bitcast/9ca42c.wgsl.expected.ir.dxc.hlsl
index 0ba40c6..f8dc606 100644
--- a/test/tint/builtins/gen/literal/bitcast/9ca42c.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/bitcast/9ca42c.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,42 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  vector<float16_t, 2> prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation vector<float16_t, 2> VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+vector<float16_t, 2> bitcast_9ca42c() {
+  vector<float16_t, 2> res = vector<float16_t, 2>(float16_t(0.0h), float16_t(1.875h));
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store<vector<float16_t, 2> >(0u, bitcast_9ca42c());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store<vector<float16_t, 2> >(0u, bitcast_9ca42c());
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = bitcast_9ca42c();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
diff --git a/test/tint/builtins/gen/literal/bitcast/9ca42c.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/bitcast/9ca42c.wgsl.expected.ir.fxc.hlsl
index 0ba40c6..b1fb302 100644
--- a/test/tint/builtins/gen/literal/bitcast/9ca42c.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/bitcast/9ca42c.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,47 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct VertexOutput {
+  float4 pos;
+  vector<float16_t, 2> prevent_dce;
+};
+
+struct vertex_main_outputs {
+  nointerpolation vector<float16_t, 2> VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+vector<float16_t, 2> bitcast_9ca42c() {
+  vector<float16_t, 2> res = vector<float16_t, 2>(float16_t(0.0h), float16_t(1.875h));
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store<vector<float16_t, 2> >(0u, bitcast_9ca42c());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store<vector<float16_t, 2> >(0u, bitcast_9ca42c());
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = bitcast_9ca42c();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
+FXC validation failure:
+c:\src\dawn\Shader@0x0000011BDCD5E730(3,10-18): error X3000: syntax error: unexpected token 'float16_t'
+
diff --git a/test/tint/builtins/gen/literal/bitcast/9eee21.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/bitcast/9eee21.wgsl.expected.ir.dxc.hlsl
index 0ba40c6..c3818d2 100644
--- a/test/tint/builtins/gen/literal/bitcast/9eee21.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/bitcast/9eee21.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,42 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  int3 prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation int3 VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+int3 bitcast_9eee21() {
+  int3 res = (1).xxx;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store3(0u, asuint(bitcast_9eee21()));
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store3(0u, asuint(bitcast_9eee21()));
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = bitcast_9eee21();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
diff --git a/test/tint/builtins/gen/literal/bitcast/9eee21.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/bitcast/9eee21.wgsl.expected.ir.fxc.hlsl
index 0ba40c6..c3818d2 100644
--- a/test/tint/builtins/gen/literal/bitcast/9eee21.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/bitcast/9eee21.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,42 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  int3 prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation int3 VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+int3 bitcast_9eee21() {
+  int3 res = (1).xxx;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store3(0u, asuint(bitcast_9eee21()));
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store3(0u, asuint(bitcast_9eee21()));
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = bitcast_9eee21();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
diff --git a/test/tint/builtins/gen/literal/bitcast/a4b290.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/bitcast/a4b290.wgsl.expected.ir.dxc.hlsl
index 0ba40c6..bbe916c 100644
--- a/test/tint/builtins/gen/literal/bitcast/a4b290.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/bitcast/a4b290.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,42 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  float4 prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation float4 VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+float4 bitcast_a4b290() {
+  float4 res = (1.40129846e-45f).xxxx;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store4(0u, asuint(bitcast_a4b290()));
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store4(0u, asuint(bitcast_a4b290()));
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = bitcast_a4b290();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
diff --git a/test/tint/builtins/gen/literal/bitcast/a4b290.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/bitcast/a4b290.wgsl.expected.ir.fxc.hlsl
index 0ba40c6..bbe916c 100644
--- a/test/tint/builtins/gen/literal/bitcast/a4b290.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/bitcast/a4b290.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,42 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  float4 prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation float4 VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+float4 bitcast_a4b290() {
+  float4 res = (1.40129846e-45f).xxxx;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store4(0u, asuint(bitcast_a4b290()));
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store4(0u, asuint(bitcast_a4b290()));
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = bitcast_a4b290();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
diff --git a/test/tint/builtins/gen/literal/bitcast/a58b50.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/bitcast/a58b50.wgsl.expected.ir.dxc.hlsl
index 0ba40c6..c61cf7a 100644
--- a/test/tint/builtins/gen/literal/bitcast/a58b50.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/bitcast/a58b50.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,42 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  uint prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation uint VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+uint bitcast_a58b50() {
+  uint res = 1006648320u;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store(0u, bitcast_a58b50());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store(0u, bitcast_a58b50());
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = bitcast_a58b50();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
diff --git a/test/tint/builtins/gen/literal/bitcast/a58b50.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/bitcast/a58b50.wgsl.expected.ir.fxc.hlsl
index 0ba40c6..c61cf7a 100644
--- a/test/tint/builtins/gen/literal/bitcast/a58b50.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/bitcast/a58b50.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,42 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  uint prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation uint VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+uint bitcast_a58b50() {
+  uint res = 1006648320u;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store(0u, bitcast_a58b50());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store(0u, bitcast_a58b50());
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = bitcast_a58b50();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
diff --git a/test/tint/builtins/gen/literal/bitcast/a5c539.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/bitcast/a5c539.wgsl.expected.ir.dxc.hlsl
index 0ba40c6..75fdbdb 100644
--- a/test/tint/builtins/gen/literal/bitcast/a5c539.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/bitcast/a5c539.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,42 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  int4 prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation int4 VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+int4 bitcast_a5c539() {
+  int4 res = (1).xxxx;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store4(0u, asuint(bitcast_a5c539()));
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store4(0u, asuint(bitcast_a5c539()));
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = bitcast_a5c539();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
diff --git a/test/tint/builtins/gen/literal/bitcast/a5c539.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/bitcast/a5c539.wgsl.expected.ir.fxc.hlsl
index 0ba40c6..75fdbdb 100644
--- a/test/tint/builtins/gen/literal/bitcast/a5c539.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/bitcast/a5c539.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,42 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  int4 prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation int4 VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+int4 bitcast_a5c539() {
+  int4 res = (1).xxxx;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store4(0u, asuint(bitcast_a5c539()));
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store4(0u, asuint(bitcast_a5c539()));
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = bitcast_a5c539();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
diff --git a/test/tint/builtins/gen/literal/bitcast/a8c93f.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/bitcast/a8c93f.wgsl.expected.ir.dxc.hlsl
index 0ba40c6..88f5ed7 100644
--- a/test/tint/builtins/gen/literal/bitcast/a8c93f.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/bitcast/a8c93f.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,42 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  uint4 prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation uint4 VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+uint4 bitcast_a8c93f() {
+  uint4 res = (1u).xxxx;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store4(0u, bitcast_a8c93f());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store4(0u, bitcast_a8c93f());
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = bitcast_a8c93f();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
diff --git a/test/tint/builtins/gen/literal/bitcast/a8c93f.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/bitcast/a8c93f.wgsl.expected.ir.fxc.hlsl
index 0ba40c6..88f5ed7 100644
--- a/test/tint/builtins/gen/literal/bitcast/a8c93f.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/bitcast/a8c93f.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,42 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  uint4 prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation uint4 VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+uint4 bitcast_a8c93f() {
+  uint4 res = (1u).xxxx;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store4(0u, bitcast_a8c93f());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store4(0u, bitcast_a8c93f());
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = bitcast_a8c93f();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
diff --git a/test/tint/builtins/gen/literal/bitcast/a8ea1b.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/bitcast/a8ea1b.wgsl.expected.ir.dxc.hlsl
index 0ba40c6..53452d2 100644
--- a/test/tint/builtins/gen/literal/bitcast/a8ea1b.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/bitcast/a8ea1b.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,42 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  int3 prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation int3 VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+int3 bitcast_a8ea1b() {
+  int3 res = (1).xxx;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store3(0u, asuint(bitcast_a8ea1b()));
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store3(0u, asuint(bitcast_a8ea1b()));
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = bitcast_a8ea1b();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
diff --git a/test/tint/builtins/gen/literal/bitcast/a8ea1b.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/bitcast/a8ea1b.wgsl.expected.ir.fxc.hlsl
index 0ba40c6..53452d2 100644
--- a/test/tint/builtins/gen/literal/bitcast/a8ea1b.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/bitcast/a8ea1b.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,42 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  int3 prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation int3 VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+int3 bitcast_a8ea1b() {
+  int3 res = (1).xxx;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store3(0u, asuint(bitcast_a8ea1b()));
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store3(0u, asuint(bitcast_a8ea1b()));
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = bitcast_a8ea1b();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
diff --git a/test/tint/builtins/gen/literal/bitcast/ac09d0.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/bitcast/ac09d0.wgsl.expected.ir.dxc.hlsl
index 0ba40c6..13abf25 100644
--- a/test/tint/builtins/gen/literal/bitcast/ac09d0.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/bitcast/ac09d0.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,42 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  float prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation float VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+float bitcast_ac09d0() {
+  float res = 1.0f;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store(0u, asuint(bitcast_ac09d0()));
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store(0u, asuint(bitcast_ac09d0()));
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = bitcast_ac09d0();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
diff --git a/test/tint/builtins/gen/literal/bitcast/ac09d0.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/bitcast/ac09d0.wgsl.expected.ir.fxc.hlsl
index 0ba40c6..13abf25 100644
--- a/test/tint/builtins/gen/literal/bitcast/ac09d0.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/bitcast/ac09d0.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,42 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  float prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation float VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+float bitcast_ac09d0() {
+  float res = 1.0f;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store(0u, asuint(bitcast_ac09d0()));
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store(0u, asuint(bitcast_ac09d0()));
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = bitcast_ac09d0();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
diff --git a/test/tint/builtins/gen/literal/bitcast/ad4b05.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/bitcast/ad4b05.wgsl.expected.ir.dxc.hlsl
index 0ba40c6..0f31a9c 100644
--- a/test/tint/builtins/gen/literal/bitcast/ad4b05.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/bitcast/ad4b05.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,42 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  float prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation float VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+float bitcast_ad4b05() {
+  float res = 1.40129846e-45f;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store(0u, asuint(bitcast_ad4b05()));
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store(0u, asuint(bitcast_ad4b05()));
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = bitcast_ad4b05();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
diff --git a/test/tint/builtins/gen/literal/bitcast/ad4b05.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/bitcast/ad4b05.wgsl.expected.ir.fxc.hlsl
index 0ba40c6..0f31a9c 100644
--- a/test/tint/builtins/gen/literal/bitcast/ad4b05.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/bitcast/ad4b05.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,42 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  float prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation float VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+float bitcast_ad4b05() {
+  float res = 1.40129846e-45f;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store(0u, asuint(bitcast_ad4b05()));
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store(0u, asuint(bitcast_ad4b05()));
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = bitcast_ad4b05();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
diff --git a/test/tint/builtins/gen/literal/bitcast/b28cbd.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/bitcast/b28cbd.wgsl.expected.ir.dxc.hlsl
index 0ba40c6..f62ce0e 100644
--- a/test/tint/builtins/gen/literal/bitcast/b28cbd.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/bitcast/b28cbd.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,42 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  int3 prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation int3 VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+int3 bitcast_b28cbd() {
+  int3 res = (1065353216).xxx;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store3(0u, asuint(bitcast_b28cbd()));
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store3(0u, asuint(bitcast_b28cbd()));
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = bitcast_b28cbd();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
diff --git a/test/tint/builtins/gen/literal/bitcast/b28cbd.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/bitcast/b28cbd.wgsl.expected.ir.fxc.hlsl
index 0ba40c6..f62ce0e 100644
--- a/test/tint/builtins/gen/literal/bitcast/b28cbd.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/bitcast/b28cbd.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,42 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  int3 prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation int3 VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+int3 bitcast_b28cbd() {
+  int3 res = (1065353216).xxx;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store3(0u, asuint(bitcast_b28cbd()));
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store3(0u, asuint(bitcast_b28cbd()));
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = bitcast_b28cbd();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
diff --git a/test/tint/builtins/gen/literal/bitcast/b77573.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/bitcast/b77573.wgsl.expected.ir.dxc.hlsl
index 0ba40c6..d17e80e 100644
--- a/test/tint/builtins/gen/literal/bitcast/b77573.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/bitcast/b77573.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,42 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  float2 prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation float2 VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+float2 bitcast_b77573() {
+  float2 res = (1.40129846e-45f).xx;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store2(0u, asuint(bitcast_b77573()));
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store2(0u, asuint(bitcast_b77573()));
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = bitcast_b77573();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
diff --git a/test/tint/builtins/gen/literal/bitcast/b77573.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/bitcast/b77573.wgsl.expected.ir.fxc.hlsl
index 0ba40c6..d17e80e 100644
--- a/test/tint/builtins/gen/literal/bitcast/b77573.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/bitcast/b77573.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,42 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  float2 prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation float2 VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+float2 bitcast_b77573() {
+  float2 res = (1.40129846e-45f).xx;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store2(0u, asuint(bitcast_b77573()));
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store2(0u, asuint(bitcast_b77573()));
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = bitcast_b77573();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
diff --git a/test/tint/builtins/gen/literal/bitcast/bc3994.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/bitcast/bc3994.wgsl.expected.ir.dxc.hlsl
index 0ba40c6..f2d27d6 100644
--- a/test/tint/builtins/gen/literal/bitcast/bc3994.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/bitcast/bc3994.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,42 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  vector<float16_t, 4> prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation vector<float16_t, 4> VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+vector<float16_t, 4> bitcast_bc3994() {
+  vector<float16_t, 4> res = vector<float16_t, 4>(float16_t(0.00000005960464477539h), float16_t(0.0h), float16_t(0.00000005960464477539h), float16_t(0.0h));
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store<vector<float16_t, 4> >(0u, bitcast_bc3994());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store<vector<float16_t, 4> >(0u, bitcast_bc3994());
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = bitcast_bc3994();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
diff --git a/test/tint/builtins/gen/literal/bitcast/bc3994.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/bitcast/bc3994.wgsl.expected.ir.fxc.hlsl
index 0ba40c6..9af933f 100644
--- a/test/tint/builtins/gen/literal/bitcast/bc3994.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/bitcast/bc3994.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,47 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct VertexOutput {
+  float4 pos;
+  vector<float16_t, 4> prevent_dce;
+};
+
+struct vertex_main_outputs {
+  nointerpolation vector<float16_t, 4> VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+vector<float16_t, 4> bitcast_bc3994() {
+  vector<float16_t, 4> res = vector<float16_t, 4>(float16_t(0.00000005960464477539h), float16_t(0.0h), float16_t(0.00000005960464477539h), float16_t(0.0h));
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store<vector<float16_t, 4> >(0u, bitcast_bc3994());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store<vector<float16_t, 4> >(0u, bitcast_bc3994());
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = bitcast_bc3994();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
+FXC validation failure:
+c:\src\dawn\Shader@0x000001AFB14A8270(3,10-18): error X3000: syntax error: unexpected token 'float16_t'
+
diff --git a/test/tint/builtins/gen/literal/bitcast/c69aaf.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/bitcast/c69aaf.wgsl.expected.ir.dxc.hlsl
index 0ba40c6..245b06e 100644
--- a/test/tint/builtins/gen/literal/bitcast/c69aaf.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/bitcast/c69aaf.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,42 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  int2 prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation int2 VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+int2 bitcast_c69aaf() {
+  int2 res = (1).xx;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store2(0u, asuint(bitcast_c69aaf()));
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store2(0u, asuint(bitcast_c69aaf()));
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = bitcast_c69aaf();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
diff --git a/test/tint/builtins/gen/literal/bitcast/c69aaf.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/bitcast/c69aaf.wgsl.expected.ir.fxc.hlsl
index 0ba40c6..245b06e 100644
--- a/test/tint/builtins/gen/literal/bitcast/c69aaf.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/bitcast/c69aaf.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,42 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  int2 prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation int2 VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+int2 bitcast_c69aaf() {
+  int2 res = (1).xx;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store2(0u, asuint(bitcast_c69aaf()));
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store2(0u, asuint(bitcast_c69aaf()));
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = bitcast_c69aaf();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
diff --git a/test/tint/builtins/gen/literal/bitcast/ca5c3f.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/bitcast/ca5c3f.wgsl.expected.ir.dxc.hlsl
index 0ba40c6..96f2955 100644
--- a/test/tint/builtins/gen/literal/bitcast/ca5c3f.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/bitcast/ca5c3f.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,42 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  float prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation float VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+float bitcast_ca5c3f() {
+  float res = 1.40129846e-45f;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store(0u, asuint(bitcast_ca5c3f()));
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store(0u, asuint(bitcast_ca5c3f()));
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = bitcast_ca5c3f();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
diff --git a/test/tint/builtins/gen/literal/bitcast/ca5c3f.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/bitcast/ca5c3f.wgsl.expected.ir.fxc.hlsl
index 0ba40c6..96f2955 100644
--- a/test/tint/builtins/gen/literal/bitcast/ca5c3f.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/bitcast/ca5c3f.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,42 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  float prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation float VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+float bitcast_ca5c3f() {
+  float res = 1.40129846e-45f;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store(0u, asuint(bitcast_ca5c3f()));
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store(0u, asuint(bitcast_ca5c3f()));
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = bitcast_ca5c3f();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
diff --git a/test/tint/builtins/gen/literal/bitcast/cc7aa7.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/bitcast/cc7aa7.wgsl.expected.ir.dxc.hlsl
index 0ba40c6..2bc4b01 100644
--- a/test/tint/builtins/gen/literal/bitcast/cc7aa7.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/bitcast/cc7aa7.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,42 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  int2 prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation int2 VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+int2 bitcast_cc7aa7() {
+  int2 res = (1).xx;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store2(0u, asuint(bitcast_cc7aa7()));
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store2(0u, asuint(bitcast_cc7aa7()));
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = bitcast_cc7aa7();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
diff --git a/test/tint/builtins/gen/literal/bitcast/cc7aa7.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/bitcast/cc7aa7.wgsl.expected.ir.fxc.hlsl
index 0ba40c6..2bc4b01 100644
--- a/test/tint/builtins/gen/literal/bitcast/cc7aa7.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/bitcast/cc7aa7.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,42 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  int2 prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation int2 VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+int2 bitcast_cc7aa7() {
+  int2 res = (1).xx;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store2(0u, asuint(bitcast_cc7aa7()));
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store2(0u, asuint(bitcast_cc7aa7()));
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = bitcast_cc7aa7();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
diff --git a/test/tint/builtins/gen/literal/bitcast/d29765.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/bitcast/d29765.wgsl.expected.ir.dxc.hlsl
index 0ba40c6..e6744b7 100644
--- a/test/tint/builtins/gen/literal/bitcast/d29765.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/bitcast/d29765.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,42 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  uint2 prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation uint2 VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+uint2 bitcast_d29765() {
+  uint2 res = (1u).xx;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store2(0u, bitcast_d29765());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store2(0u, bitcast_d29765());
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = bitcast_d29765();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
diff --git a/test/tint/builtins/gen/literal/bitcast/d29765.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/bitcast/d29765.wgsl.expected.ir.fxc.hlsl
index 0ba40c6..e6744b7 100644
--- a/test/tint/builtins/gen/literal/bitcast/d29765.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/bitcast/d29765.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,42 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  uint2 prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation uint2 VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+uint2 bitcast_d29765() {
+  uint2 res = (1u).xx;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store2(0u, bitcast_d29765());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store2(0u, bitcast_d29765());
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = bitcast_d29765();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
diff --git a/test/tint/builtins/gen/literal/bitcast/dce842.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/bitcast/dce842.wgsl.expected.ir.dxc.hlsl
index 0ba40c6..4359545 100644
--- a/test/tint/builtins/gen/literal/bitcast/dce842.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/bitcast/dce842.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,42 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  uint prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation uint VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+uint bitcast_dce842() {
+  uint res = 1u;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store(0u, bitcast_dce842());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store(0u, bitcast_dce842());
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = bitcast_dce842();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
diff --git a/test/tint/builtins/gen/literal/bitcast/dce842.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/bitcast/dce842.wgsl.expected.ir.fxc.hlsl
index 0ba40c6..4359545 100644
--- a/test/tint/builtins/gen/literal/bitcast/dce842.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/bitcast/dce842.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,42 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  uint prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation uint VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+uint bitcast_dce842() {
+  uint res = 1u;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store(0u, bitcast_dce842());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store(0u, bitcast_dce842());
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = bitcast_dce842();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
diff --git a/test/tint/builtins/gen/literal/bitcast/e61c57.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/bitcast/e61c57.wgsl.expected.ir.dxc.hlsl
index 0ba40c6..368bd8d 100644
--- a/test/tint/builtins/gen/literal/bitcast/e61c57.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/bitcast/e61c57.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,42 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  int prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation int VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+int bitcast_e61c57() {
+  int res = 1;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store(0u, asuint(bitcast_e61c57()));
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store(0u, asuint(bitcast_e61c57()));
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = bitcast_e61c57();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
diff --git a/test/tint/builtins/gen/literal/bitcast/e61c57.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/bitcast/e61c57.wgsl.expected.ir.fxc.hlsl
index 0ba40c6..368bd8d 100644
--- a/test/tint/builtins/gen/literal/bitcast/e61c57.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/bitcast/e61c57.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,42 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  int prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation int VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+int bitcast_e61c57() {
+  int res = 1;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store(0u, asuint(bitcast_e61c57()));
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store(0u, asuint(bitcast_e61c57()));
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = bitcast_e61c57();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
diff --git a/test/tint/builtins/gen/literal/bitcast/e6c18f.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/bitcast/e6c18f.wgsl.expected.ir.dxc.hlsl
index 0ba40c6..da0b1b1 100644
--- a/test/tint/builtins/gen/literal/bitcast/e6c18f.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/bitcast/e6c18f.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,42 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  uint prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation uint VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+uint bitcast_e6c18f() {
+  uint res = 1065353216u;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store(0u, bitcast_e6c18f());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store(0u, bitcast_e6c18f());
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = bitcast_e6c18f();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
diff --git a/test/tint/builtins/gen/literal/bitcast/e6c18f.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/bitcast/e6c18f.wgsl.expected.ir.fxc.hlsl
index 0ba40c6..da0b1b1 100644
--- a/test/tint/builtins/gen/literal/bitcast/e6c18f.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/bitcast/e6c18f.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,42 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  uint prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation uint VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+uint bitcast_e6c18f() {
+  uint res = 1065353216u;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store(0u, bitcast_e6c18f());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store(0u, bitcast_e6c18f());
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = bitcast_e6c18f();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
diff --git a/test/tint/builtins/gen/literal/bitcast/f756cd.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/bitcast/f756cd.wgsl.expected.ir.dxc.hlsl
index 0ba40c6..d703438 100644
--- a/test/tint/builtins/gen/literal/bitcast/f756cd.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/bitcast/f756cd.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,42 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  uint3 prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation uint3 VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+uint3 bitcast_f756cd() {
+  uint3 res = (1u).xxx;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store3(0u, bitcast_f756cd());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store3(0u, bitcast_f756cd());
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = bitcast_f756cd();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
diff --git a/test/tint/builtins/gen/literal/bitcast/f756cd.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/bitcast/f756cd.wgsl.expected.ir.fxc.hlsl
index 0ba40c6..d703438 100644
--- a/test/tint/builtins/gen/literal/bitcast/f756cd.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/bitcast/f756cd.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,42 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  uint3 prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation uint3 VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+uint3 bitcast_f756cd() {
+  uint3 res = (1u).xxx;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store3(0u, bitcast_f756cd());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store3(0u, bitcast_f756cd());
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = bitcast_f756cd();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
diff --git a/test/tint/builtins/gen/literal/ceil/09bf52.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/ceil/09bf52.wgsl.expected.ir.dxc.hlsl
index 0ba40c6..69ce529 100644
--- a/test/tint/builtins/gen/literal/ceil/09bf52.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/ceil/09bf52.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,42 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  vector<float16_t, 3> prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation vector<float16_t, 3> VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+vector<float16_t, 3> ceil_09bf52() {
+  vector<float16_t, 3> res = (float16_t(2.0h)).xxx;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store<vector<float16_t, 3> >(0u, ceil_09bf52());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store<vector<float16_t, 3> >(0u, ceil_09bf52());
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = ceil_09bf52();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
diff --git a/test/tint/builtins/gen/literal/ceil/09bf52.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/ceil/09bf52.wgsl.expected.ir.fxc.hlsl
index 0ba40c6..7752b76 100644
--- a/test/tint/builtins/gen/literal/ceil/09bf52.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/ceil/09bf52.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,47 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct VertexOutput {
+  float4 pos;
+  vector<float16_t, 3> prevent_dce;
+};
+
+struct vertex_main_outputs {
+  nointerpolation vector<float16_t, 3> VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+vector<float16_t, 3> ceil_09bf52() {
+  vector<float16_t, 3> res = (float16_t(2.0h)).xxx;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store<vector<float16_t, 3> >(0u, ceil_09bf52());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store<vector<float16_t, 3> >(0u, ceil_09bf52());
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = ceil_09bf52();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
+FXC validation failure:
+c:\src\dawn\Shader@0x000001C3A27E5570(3,10-18): error X3000: syntax error: unexpected token 'float16_t'
+
diff --git a/test/tint/builtins/gen/literal/ceil/11b1dc.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/ceil/11b1dc.wgsl.expected.ir.dxc.hlsl
index 0ba40c6..681119d 100644
--- a/test/tint/builtins/gen/literal/ceil/11b1dc.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/ceil/11b1dc.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,36 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+void ceil_11b1dc() {
+  float4 res = (2.0f).xxxx;
+}
+
+void fragment_main() {
+  ceil_11b1dc();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  ceil_11b1dc();
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  ceil_11b1dc();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  vertex_main_outputs v_2 = {v_1.pos};
+  return v_2;
+}
+
diff --git a/test/tint/builtins/gen/literal/ceil/11b1dc.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/ceil/11b1dc.wgsl.expected.ir.fxc.hlsl
index 0ba40c6..681119d 100644
--- a/test/tint/builtins/gen/literal/ceil/11b1dc.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/ceil/11b1dc.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,36 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+void ceil_11b1dc() {
+  float4 res = (2.0f).xxxx;
+}
+
+void fragment_main() {
+  ceil_11b1dc();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  ceil_11b1dc();
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  ceil_11b1dc();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  vertex_main_outputs v_2 = {v_1.pos};
+  return v_2;
+}
+
diff --git a/test/tint/builtins/gen/literal/ceil/18c240.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/ceil/18c240.wgsl.expected.ir.dxc.hlsl
index 0ba40c6..a343000 100644
--- a/test/tint/builtins/gen/literal/ceil/18c240.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/ceil/18c240.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,42 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  vector<float16_t, 2> prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation vector<float16_t, 2> VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+vector<float16_t, 2> ceil_18c240() {
+  vector<float16_t, 2> res = (float16_t(2.0h)).xx;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store<vector<float16_t, 2> >(0u, ceil_18c240());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store<vector<float16_t, 2> >(0u, ceil_18c240());
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = ceil_18c240();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
diff --git a/test/tint/builtins/gen/literal/ceil/18c240.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/ceil/18c240.wgsl.expected.ir.fxc.hlsl
index 0ba40c6..980eca8 100644
--- a/test/tint/builtins/gen/literal/ceil/18c240.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/ceil/18c240.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,47 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct VertexOutput {
+  float4 pos;
+  vector<float16_t, 2> prevent_dce;
+};
+
+struct vertex_main_outputs {
+  nointerpolation vector<float16_t, 2> VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+vector<float16_t, 2> ceil_18c240() {
+  vector<float16_t, 2> res = (float16_t(2.0h)).xx;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store<vector<float16_t, 2> >(0u, ceil_18c240());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store<vector<float16_t, 2> >(0u, ceil_18c240());
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = ceil_18c240();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
+FXC validation failure:
+c:\src\dawn\Shader@0x000001C2E713D5A0(3,10-18): error X3000: syntax error: unexpected token 'float16_t'
+
diff --git a/test/tint/builtins/gen/literal/ceil/32c946.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/ceil/32c946.wgsl.expected.ir.dxc.hlsl
index 0ba40c6..e68c809 100644
--- a/test/tint/builtins/gen/literal/ceil/32c946.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/ceil/32c946.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,36 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+void ceil_32c946() {
+  float3 res = (2.0f).xxx;
+}
+
+void fragment_main() {
+  ceil_32c946();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  ceil_32c946();
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  ceil_32c946();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  vertex_main_outputs v_2 = {v_1.pos};
+  return v_2;
+}
+
diff --git a/test/tint/builtins/gen/literal/ceil/32c946.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/ceil/32c946.wgsl.expected.ir.fxc.hlsl
index 0ba40c6..e68c809 100644
--- a/test/tint/builtins/gen/literal/ceil/32c946.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/ceil/32c946.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,36 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+void ceil_32c946() {
+  float3 res = (2.0f).xxx;
+}
+
+void fragment_main() {
+  ceil_32c946();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  ceil_32c946();
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  ceil_32c946();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  vertex_main_outputs v_2 = {v_1.pos};
+  return v_2;
+}
+
diff --git a/test/tint/builtins/gen/literal/ceil/34064b.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/ceil/34064b.wgsl.expected.ir.dxc.hlsl
index 0ba40c6..de6307b 100644
--- a/test/tint/builtins/gen/literal/ceil/34064b.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/ceil/34064b.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,42 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  float3 prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation float3 VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+float3 ceil_34064b() {
+  float3 res = (2.0f).xxx;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store3(0u, asuint(ceil_34064b()));
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store3(0u, asuint(ceil_34064b()));
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = ceil_34064b();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
diff --git a/test/tint/builtins/gen/literal/ceil/34064b.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/ceil/34064b.wgsl.expected.ir.fxc.hlsl
index 0ba40c6..de6307b 100644
--- a/test/tint/builtins/gen/literal/ceil/34064b.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/ceil/34064b.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,42 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  float3 prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation float3 VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+float3 ceil_34064b() {
+  float3 res = (2.0f).xxx;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store3(0u, asuint(ceil_34064b()));
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store3(0u, asuint(ceil_34064b()));
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = ceil_34064b();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
diff --git a/test/tint/builtins/gen/literal/ceil/4bca2a.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/ceil/4bca2a.wgsl.expected.ir.dxc.hlsl
index 0ba40c6..d12078e 100644
--- a/test/tint/builtins/gen/literal/ceil/4bca2a.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/ceil/4bca2a.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,42 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  vector<float16_t, 4> prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation vector<float16_t, 4> VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+vector<float16_t, 4> ceil_4bca2a() {
+  vector<float16_t, 4> res = (float16_t(2.0h)).xxxx;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store<vector<float16_t, 4> >(0u, ceil_4bca2a());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store<vector<float16_t, 4> >(0u, ceil_4bca2a());
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = ceil_4bca2a();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
diff --git a/test/tint/builtins/gen/literal/ceil/4bca2a.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/ceil/4bca2a.wgsl.expected.ir.fxc.hlsl
index 0ba40c6..283c74a 100644
--- a/test/tint/builtins/gen/literal/ceil/4bca2a.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/ceil/4bca2a.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,47 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct VertexOutput {
+  float4 pos;
+  vector<float16_t, 4> prevent_dce;
+};
+
+struct vertex_main_outputs {
+  nointerpolation vector<float16_t, 4> VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+vector<float16_t, 4> ceil_4bca2a() {
+  vector<float16_t, 4> res = (float16_t(2.0h)).xxxx;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store<vector<float16_t, 4> >(0u, ceil_4bca2a());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store<vector<float16_t, 4> >(0u, ceil_4bca2a());
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = ceil_4bca2a();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
+FXC validation failure:
+c:\src\dawn\Shader@0x00000199CA794310(3,10-18): error X3000: syntax error: unexpected token 'float16_t'
+
diff --git a/test/tint/builtins/gen/literal/ceil/678655.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/ceil/678655.wgsl.expected.ir.dxc.hlsl
index 0ba40c6..21cead4 100644
--- a/test/tint/builtins/gen/literal/ceil/678655.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/ceil/678655.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,42 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  float prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation float VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+float ceil_678655() {
+  float res = 2.0f;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store(0u, asuint(ceil_678655()));
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store(0u, asuint(ceil_678655()));
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = ceil_678655();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
diff --git a/test/tint/builtins/gen/literal/ceil/678655.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/ceil/678655.wgsl.expected.ir.fxc.hlsl
index 0ba40c6..21cead4 100644
--- a/test/tint/builtins/gen/literal/ceil/678655.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/ceil/678655.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,42 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  float prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation float VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+float ceil_678655() {
+  float res = 2.0f;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store(0u, asuint(ceil_678655()));
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store(0u, asuint(ceil_678655()));
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = ceil_678655();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
diff --git a/test/tint/builtins/gen/literal/ceil/96f597.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/ceil/96f597.wgsl.expected.ir.dxc.hlsl
index 0ba40c6..337b910 100644
--- a/test/tint/builtins/gen/literal/ceil/96f597.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/ceil/96f597.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,42 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  float2 prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation float2 VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+float2 ceil_96f597() {
+  float2 res = (2.0f).xx;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store2(0u, asuint(ceil_96f597()));
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store2(0u, asuint(ceil_96f597()));
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = ceil_96f597();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
diff --git a/test/tint/builtins/gen/literal/ceil/96f597.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/ceil/96f597.wgsl.expected.ir.fxc.hlsl
index 0ba40c6..337b910 100644
--- a/test/tint/builtins/gen/literal/ceil/96f597.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/ceil/96f597.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,42 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  float2 prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation float2 VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+float2 ceil_96f597() {
+  float2 res = (2.0f).xx;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store2(0u, asuint(ceil_96f597()));
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store2(0u, asuint(ceil_96f597()));
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = ceil_96f597();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
diff --git a/test/tint/builtins/gen/literal/ceil/b74c16.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/ceil/b74c16.wgsl.expected.ir.dxc.hlsl
index 0ba40c6..0660f98 100644
--- a/test/tint/builtins/gen/literal/ceil/b74c16.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/ceil/b74c16.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,42 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  float4 prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation float4 VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+float4 ceil_b74c16() {
+  float4 res = (2.0f).xxxx;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store4(0u, asuint(ceil_b74c16()));
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store4(0u, asuint(ceil_b74c16()));
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = ceil_b74c16();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
diff --git a/test/tint/builtins/gen/literal/ceil/b74c16.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/ceil/b74c16.wgsl.expected.ir.fxc.hlsl
index 0ba40c6..0660f98 100644
--- a/test/tint/builtins/gen/literal/ceil/b74c16.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/ceil/b74c16.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,42 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  float4 prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation float4 VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+float4 ceil_b74c16() {
+  float4 res = (2.0f).xxxx;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store4(0u, asuint(ceil_b74c16()));
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store4(0u, asuint(ceil_b74c16()));
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = ceil_b74c16();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
diff --git a/test/tint/builtins/gen/literal/ceil/bb2ca2.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/ceil/bb2ca2.wgsl.expected.ir.dxc.hlsl
index 0ba40c6..af2b421 100644
--- a/test/tint/builtins/gen/literal/ceil/bb2ca2.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/ceil/bb2ca2.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,36 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+void ceil_bb2ca2() {
+  float2 res = (2.0f).xx;
+}
+
+void fragment_main() {
+  ceil_bb2ca2();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  ceil_bb2ca2();
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  ceil_bb2ca2();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  vertex_main_outputs v_2 = {v_1.pos};
+  return v_2;
+}
+
diff --git a/test/tint/builtins/gen/literal/ceil/bb2ca2.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/ceil/bb2ca2.wgsl.expected.ir.fxc.hlsl
index 0ba40c6..af2b421 100644
--- a/test/tint/builtins/gen/literal/ceil/bb2ca2.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/ceil/bb2ca2.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,36 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+void ceil_bb2ca2() {
+  float2 res = (2.0f).xx;
+}
+
+void fragment_main() {
+  ceil_bb2ca2();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  ceil_bb2ca2();
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  ceil_bb2ca2();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  vertex_main_outputs v_2 = {v_1.pos};
+  return v_2;
+}
+
diff --git a/test/tint/builtins/gen/literal/ceil/e0b70a.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/ceil/e0b70a.wgsl.expected.ir.dxc.hlsl
index 0ba40c6..5ca0be6 100644
--- a/test/tint/builtins/gen/literal/ceil/e0b70a.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/ceil/e0b70a.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,36 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+void ceil_e0b70a() {
+  float res = 2.0f;
+}
+
+void fragment_main() {
+  ceil_e0b70a();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  ceil_e0b70a();
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  ceil_e0b70a();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  vertex_main_outputs v_2 = {v_1.pos};
+  return v_2;
+}
+
diff --git a/test/tint/builtins/gen/literal/ceil/e0b70a.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/ceil/e0b70a.wgsl.expected.ir.fxc.hlsl
index 0ba40c6..5ca0be6 100644
--- a/test/tint/builtins/gen/literal/ceil/e0b70a.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/ceil/e0b70a.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,36 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+void ceil_e0b70a() {
+  float res = 2.0f;
+}
+
+void fragment_main() {
+  ceil_e0b70a();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  ceil_e0b70a();
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  ceil_e0b70a();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  vertex_main_outputs v_2 = {v_1.pos};
+  return v_2;
+}
+
diff --git a/test/tint/builtins/gen/literal/ceil/f3f889.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/ceil/f3f889.wgsl.expected.ir.dxc.hlsl
index 0ba40c6..a97b5f8 100644
--- a/test/tint/builtins/gen/literal/ceil/f3f889.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/ceil/f3f889.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,42 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  float16_t prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation float16_t VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+float16_t ceil_f3f889() {
+  float16_t res = float16_t(2.0h);
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store<float16_t>(0u, ceil_f3f889());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store<float16_t>(0u, ceil_f3f889());
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = ceil_f3f889();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
diff --git a/test/tint/builtins/gen/literal/ceil/f3f889.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/ceil/f3f889.wgsl.expected.ir.fxc.hlsl
index 0ba40c6..4002ad3 100644
--- a/test/tint/builtins/gen/literal/ceil/f3f889.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/ceil/f3f889.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,47 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct VertexOutput {
+  float4 pos;
+  float16_t prevent_dce;
+};
+
+struct vertex_main_outputs {
+  nointerpolation float16_t VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+float16_t ceil_f3f889() {
+  float16_t res = float16_t(2.0h);
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store<float16_t>(0u, ceil_f3f889());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store<float16_t>(0u, ceil_f3f889());
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = ceil_f3f889();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
+FXC validation failure:
+c:\src\dawn\Shader@0x000001F661A90AB0(3,3-11): error X3000: unrecognized identifier 'float16_t'
+
diff --git a/test/tint/builtins/gen/literal/clamp/0acf8f.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/clamp/0acf8f.wgsl.expected.ir.dxc.hlsl
index 0ba40c6..2765b12 100644
--- a/test/tint/builtins/gen/literal/clamp/0acf8f.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/clamp/0acf8f.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,42 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  float2 prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation float2 VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+float2 clamp_0acf8f() {
+  float2 res = (1.0f).xx;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store2(0u, asuint(clamp_0acf8f()));
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store2(0u, asuint(clamp_0acf8f()));
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = clamp_0acf8f();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
diff --git a/test/tint/builtins/gen/literal/clamp/0acf8f.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/clamp/0acf8f.wgsl.expected.ir.fxc.hlsl
index 0ba40c6..2765b12 100644
--- a/test/tint/builtins/gen/literal/clamp/0acf8f.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/clamp/0acf8f.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,42 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  float2 prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation float2 VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+float2 clamp_0acf8f() {
+  float2 res = (1.0f).xx;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store2(0u, asuint(clamp_0acf8f()));
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store2(0u, asuint(clamp_0acf8f()));
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = clamp_0acf8f();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
diff --git a/test/tint/builtins/gen/literal/clamp/177548.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/clamp/177548.wgsl.expected.ir.dxc.hlsl
index 0ba40c6..f81854d 100644
--- a/test/tint/builtins/gen/literal/clamp/177548.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/clamp/177548.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,36 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+void clamp_177548() {
+  int2 res = (1).xx;
+}
+
+void fragment_main() {
+  clamp_177548();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  clamp_177548();
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  clamp_177548();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  vertex_main_outputs v_2 = {v_1.pos};
+  return v_2;
+}
+
diff --git a/test/tint/builtins/gen/literal/clamp/177548.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/clamp/177548.wgsl.expected.ir.fxc.hlsl
index 0ba40c6..f81854d 100644
--- a/test/tint/builtins/gen/literal/clamp/177548.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/clamp/177548.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,36 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+void clamp_177548() {
+  int2 res = (1).xx;
+}
+
+void fragment_main() {
+  clamp_177548();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  clamp_177548();
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  clamp_177548();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  vertex_main_outputs v_2 = {v_1.pos};
+  return v_2;
+}
+
diff --git a/test/tint/builtins/gen/literal/clamp/1a32e3.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/clamp/1a32e3.wgsl.expected.ir.dxc.hlsl
index 0ba40c6..31e5b37 100644
--- a/test/tint/builtins/gen/literal/clamp/1a32e3.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/clamp/1a32e3.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,42 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  int4 prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation int4 VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+int4 clamp_1a32e3() {
+  int4 res = (1).xxxx;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store4(0u, asuint(clamp_1a32e3()));
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store4(0u, asuint(clamp_1a32e3()));
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = clamp_1a32e3();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
diff --git a/test/tint/builtins/gen/literal/clamp/1a32e3.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/clamp/1a32e3.wgsl.expected.ir.fxc.hlsl
index 0ba40c6..31e5b37 100644
--- a/test/tint/builtins/gen/literal/clamp/1a32e3.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/clamp/1a32e3.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,42 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  int4 prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation int4 VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+int4 clamp_1a32e3() {
+  int4 res = (1).xxxx;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store4(0u, asuint(clamp_1a32e3()));
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store4(0u, asuint(clamp_1a32e3()));
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = clamp_1a32e3();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
diff --git a/test/tint/builtins/gen/literal/clamp/235b29.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/clamp/235b29.wgsl.expected.ir.dxc.hlsl
index 0ba40c6..0bf12ef 100644
--- a/test/tint/builtins/gen/literal/clamp/235b29.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/clamp/235b29.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,42 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  vector<float16_t, 2> prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation vector<float16_t, 2> VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+vector<float16_t, 2> clamp_235b29() {
+  vector<float16_t, 2> res = (float16_t(1.0h)).xx;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store<vector<float16_t, 2> >(0u, clamp_235b29());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store<vector<float16_t, 2> >(0u, clamp_235b29());
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = clamp_235b29();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
diff --git a/test/tint/builtins/gen/literal/clamp/235b29.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/clamp/235b29.wgsl.expected.ir.fxc.hlsl
index 0ba40c6..00231b1 100644
--- a/test/tint/builtins/gen/literal/clamp/235b29.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/clamp/235b29.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,47 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct VertexOutput {
+  float4 pos;
+  vector<float16_t, 2> prevent_dce;
+};
+
+struct vertex_main_outputs {
+  nointerpolation vector<float16_t, 2> VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+vector<float16_t, 2> clamp_235b29() {
+  vector<float16_t, 2> res = (float16_t(1.0h)).xx;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store<vector<float16_t, 2> >(0u, clamp_235b29());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store<vector<float16_t, 2> >(0u, clamp_235b29());
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = clamp_235b29();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
+FXC validation failure:
+c:\src\dawn\Shader@0x0000012E100AFF90(3,10-18): error X3000: syntax error: unexpected token 'float16_t'
+
diff --git a/test/tint/builtins/gen/literal/clamp/23aa4f.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/clamp/23aa4f.wgsl.expected.ir.dxc.hlsl
index 0ba40c6..3e88e7b 100644
--- a/test/tint/builtins/gen/literal/clamp/23aa4f.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/clamp/23aa4f.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,36 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+void clamp_23aa4f() {
+  float res = 1.0f;
+}
+
+void fragment_main() {
+  clamp_23aa4f();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  clamp_23aa4f();
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  clamp_23aa4f();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  vertex_main_outputs v_2 = {v_1.pos};
+  return v_2;
+}
+
diff --git a/test/tint/builtins/gen/literal/clamp/23aa4f.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/clamp/23aa4f.wgsl.expected.ir.fxc.hlsl
index 0ba40c6..3e88e7b 100644
--- a/test/tint/builtins/gen/literal/clamp/23aa4f.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/clamp/23aa4f.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,36 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+void clamp_23aa4f() {
+  float res = 1.0f;
+}
+
+void fragment_main() {
+  clamp_23aa4f();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  clamp_23aa4f();
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  clamp_23aa4f();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  vertex_main_outputs v_2 = {v_1.pos};
+  return v_2;
+}
+
diff --git a/test/tint/builtins/gen/literal/clamp/2bd567.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/clamp/2bd567.wgsl.expected.ir.dxc.hlsl
index 0ba40c6..5b69770 100644
--- a/test/tint/builtins/gen/literal/clamp/2bd567.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/clamp/2bd567.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,42 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  float prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation float VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+float clamp_2bd567() {
+  float res = 1.0f;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store(0u, asuint(clamp_2bd567()));
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store(0u, asuint(clamp_2bd567()));
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = clamp_2bd567();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
diff --git a/test/tint/builtins/gen/literal/clamp/2bd567.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/clamp/2bd567.wgsl.expected.ir.fxc.hlsl
index 0ba40c6..5b69770 100644
--- a/test/tint/builtins/gen/literal/clamp/2bd567.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/clamp/2bd567.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,42 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  float prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation float VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+float clamp_2bd567() {
+  float res = 1.0f;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store(0u, asuint(clamp_2bd567()));
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store(0u, asuint(clamp_2bd567()));
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = clamp_2bd567();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
diff --git a/test/tint/builtins/gen/literal/clamp/2bde41.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/clamp/2bde41.wgsl.expected.ir.dxc.hlsl
index 0ba40c6..09f22c4 100644
--- a/test/tint/builtins/gen/literal/clamp/2bde41.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/clamp/2bde41.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,42 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  float4 prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation float4 VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+float4 clamp_2bde41() {
+  float4 res = (1.0f).xxxx;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store4(0u, asuint(clamp_2bde41()));
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store4(0u, asuint(clamp_2bde41()));
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = clamp_2bde41();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
diff --git a/test/tint/builtins/gen/literal/clamp/2bde41.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/clamp/2bde41.wgsl.expected.ir.fxc.hlsl
index 0ba40c6..09f22c4 100644
--- a/test/tint/builtins/gen/literal/clamp/2bde41.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/clamp/2bde41.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,42 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  float4 prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation float4 VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+float4 clamp_2bde41() {
+  float4 res = (1.0f).xxxx;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store4(0u, asuint(clamp_2bde41()));
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store4(0u, asuint(clamp_2bde41()));
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = clamp_2bde41();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
diff --git a/test/tint/builtins/gen/literal/clamp/2c251b.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/clamp/2c251b.wgsl.expected.ir.dxc.hlsl
index 0ba40c6..fb68999 100644
--- a/test/tint/builtins/gen/literal/clamp/2c251b.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/clamp/2c251b.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,42 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  vector<float16_t, 4> prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation vector<float16_t, 4> VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+vector<float16_t, 4> clamp_2c251b() {
+  vector<float16_t, 4> res = (float16_t(1.0h)).xxxx;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store<vector<float16_t, 4> >(0u, clamp_2c251b());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store<vector<float16_t, 4> >(0u, clamp_2c251b());
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = clamp_2c251b();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
diff --git a/test/tint/builtins/gen/literal/clamp/2c251b.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/clamp/2c251b.wgsl.expected.ir.fxc.hlsl
index 0ba40c6..4b158f6 100644
--- a/test/tint/builtins/gen/literal/clamp/2c251b.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/clamp/2c251b.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,47 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct VertexOutput {
+  float4 pos;
+  vector<float16_t, 4> prevent_dce;
+};
+
+struct vertex_main_outputs {
+  nointerpolation vector<float16_t, 4> VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+vector<float16_t, 4> clamp_2c251b() {
+  vector<float16_t, 4> res = (float16_t(1.0h)).xxxx;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store<vector<float16_t, 4> >(0u, clamp_2c251b());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store<vector<float16_t, 4> >(0u, clamp_2c251b());
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = clamp_2c251b();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
+FXC validation failure:
+c:\src\dawn\Shader@0x000001D256720830(3,10-18): error X3000: syntax error: unexpected token 'float16_t'
+
diff --git a/test/tint/builtins/gen/literal/clamp/548fc7.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/clamp/548fc7.wgsl.expected.ir.dxc.hlsl
index 0ba40c6..77cd988 100644
--- a/test/tint/builtins/gen/literal/clamp/548fc7.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/clamp/548fc7.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,42 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  uint3 prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation uint3 VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+uint3 clamp_548fc7() {
+  uint3 res = (1u).xxx;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store3(0u, clamp_548fc7());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store3(0u, clamp_548fc7());
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = clamp_548fc7();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
diff --git a/test/tint/builtins/gen/literal/clamp/548fc7.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/clamp/548fc7.wgsl.expected.ir.fxc.hlsl
index 0ba40c6..77cd988 100644
--- a/test/tint/builtins/gen/literal/clamp/548fc7.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/clamp/548fc7.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,42 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  uint3 prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation uint3 VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+uint3 clamp_548fc7() {
+  uint3 res = (1u).xxx;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store3(0u, clamp_548fc7());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store3(0u, clamp_548fc7());
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = clamp_548fc7();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
diff --git a/test/tint/builtins/gen/literal/clamp/553ffb.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/clamp/553ffb.wgsl.expected.ir.dxc.hlsl
index 0ba40c6..f44b133 100644
--- a/test/tint/builtins/gen/literal/clamp/553ffb.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/clamp/553ffb.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,42 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  float16_t prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation float16_t VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+float16_t clamp_553ffb() {
+  float16_t res = float16_t(1.0h);
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store<float16_t>(0u, clamp_553ffb());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store<float16_t>(0u, clamp_553ffb());
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = clamp_553ffb();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
diff --git a/test/tint/builtins/gen/literal/clamp/553ffb.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/clamp/553ffb.wgsl.expected.ir.fxc.hlsl
index 0ba40c6..2aad1e3 100644
--- a/test/tint/builtins/gen/literal/clamp/553ffb.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/clamp/553ffb.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,47 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct VertexOutput {
+  float4 pos;
+  float16_t prevent_dce;
+};
+
+struct vertex_main_outputs {
+  nointerpolation float16_t VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+float16_t clamp_553ffb() {
+  float16_t res = float16_t(1.0h);
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store<float16_t>(0u, clamp_553ffb());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store<float16_t>(0u, clamp_553ffb());
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = clamp_553ffb();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
+FXC validation failure:
+c:\src\dawn\Shader@0x000002553B1E0390(3,3-11): error X3000: unrecognized identifier 'float16_t'
+
diff --git a/test/tint/builtins/gen/literal/clamp/5cf700.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/clamp/5cf700.wgsl.expected.ir.dxc.hlsl
index 0ba40c6..6d01ec3 100644
--- a/test/tint/builtins/gen/literal/clamp/5cf700.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/clamp/5cf700.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,36 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+void clamp_5cf700() {
+  float3 res = (1.0f).xxx;
+}
+
+void fragment_main() {
+  clamp_5cf700();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  clamp_5cf700();
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  clamp_5cf700();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  vertex_main_outputs v_2 = {v_1.pos};
+  return v_2;
+}
+
diff --git a/test/tint/builtins/gen/literal/clamp/5cf700.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/clamp/5cf700.wgsl.expected.ir.fxc.hlsl
index 0ba40c6..6d01ec3 100644
--- a/test/tint/builtins/gen/literal/clamp/5cf700.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/clamp/5cf700.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,36 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+void clamp_5cf700() {
+  float3 res = (1.0f).xxx;
+}
+
+void fragment_main() {
+  clamp_5cf700();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  clamp_5cf700();
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  clamp_5cf700();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  vertex_main_outputs v_2 = {v_1.pos};
+  return v_2;
+}
+
diff --git a/test/tint/builtins/gen/literal/clamp/5f0819.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/clamp/5f0819.wgsl.expected.ir.dxc.hlsl
index 0ba40c6..034440e 100644
--- a/test/tint/builtins/gen/literal/clamp/5f0819.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/clamp/5f0819.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,42 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  int3 prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation int3 VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+int3 clamp_5f0819() {
+  int3 res = (1).xxx;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store3(0u, asuint(clamp_5f0819()));
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store3(0u, asuint(clamp_5f0819()));
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = clamp_5f0819();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
diff --git a/test/tint/builtins/gen/literal/clamp/5f0819.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/clamp/5f0819.wgsl.expected.ir.fxc.hlsl
index 0ba40c6..034440e 100644
--- a/test/tint/builtins/gen/literal/clamp/5f0819.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/clamp/5f0819.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,42 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  int3 prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation int3 VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+int3 clamp_5f0819() {
+  int3 res = (1).xxx;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store3(0u, asuint(clamp_5f0819()));
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store3(0u, asuint(clamp_5f0819()));
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = clamp_5f0819();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
diff --git a/test/tint/builtins/gen/literal/clamp/6c1749.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/clamp/6c1749.wgsl.expected.ir.dxc.hlsl
index 0ba40c6..08558b0 100644
--- a/test/tint/builtins/gen/literal/clamp/6c1749.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/clamp/6c1749.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,42 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  int2 prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation int2 VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+int2 clamp_6c1749() {
+  int2 res = (1).xx;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store2(0u, asuint(clamp_6c1749()));
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store2(0u, asuint(clamp_6c1749()));
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = clamp_6c1749();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
diff --git a/test/tint/builtins/gen/literal/clamp/6c1749.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/clamp/6c1749.wgsl.expected.ir.fxc.hlsl
index 0ba40c6..08558b0 100644
--- a/test/tint/builtins/gen/literal/clamp/6c1749.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/clamp/6c1749.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,42 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  int2 prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation int2 VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+int2 clamp_6c1749() {
+  int2 res = (1).xx;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store2(0u, asuint(clamp_6c1749()));
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store2(0u, asuint(clamp_6c1749()));
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = clamp_6c1749();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
diff --git a/test/tint/builtins/gen/literal/clamp/7706d7.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/clamp/7706d7.wgsl.expected.ir.dxc.hlsl
index 0ba40c6..7ff56b9 100644
--- a/test/tint/builtins/gen/literal/clamp/7706d7.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/clamp/7706d7.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,42 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  uint2 prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation uint2 VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+uint2 clamp_7706d7() {
+  uint2 res = (1u).xx;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store2(0u, clamp_7706d7());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store2(0u, clamp_7706d7());
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = clamp_7706d7();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
diff --git a/test/tint/builtins/gen/literal/clamp/7706d7.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/clamp/7706d7.wgsl.expected.ir.fxc.hlsl
index 0ba40c6..7ff56b9 100644
--- a/test/tint/builtins/gen/literal/clamp/7706d7.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/clamp/7706d7.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,42 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  uint2 prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation uint2 VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+uint2 clamp_7706d7() {
+  uint2 res = (1u).xx;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store2(0u, clamp_7706d7());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store2(0u, clamp_7706d7());
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = clamp_7706d7();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
diff --git a/test/tint/builtins/gen/literal/clamp/867397.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/clamp/867397.wgsl.expected.ir.dxc.hlsl
index 0ba40c6..4548fdc 100644
--- a/test/tint/builtins/gen/literal/clamp/867397.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/clamp/867397.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,42 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  float3 prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation float3 VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+float3 clamp_867397() {
+  float3 res = (1.0f).xxx;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store3(0u, asuint(clamp_867397()));
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store3(0u, asuint(clamp_867397()));
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = clamp_867397();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
diff --git a/test/tint/builtins/gen/literal/clamp/867397.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/clamp/867397.wgsl.expected.ir.fxc.hlsl
index 0ba40c6..4548fdc 100644
--- a/test/tint/builtins/gen/literal/clamp/867397.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/clamp/867397.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,42 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  float3 prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation float3 VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+float3 clamp_867397() {
+  float3 res = (1.0f).xxx;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store3(0u, asuint(clamp_867397()));
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store3(0u, asuint(clamp_867397()));
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = clamp_867397();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
diff --git a/test/tint/builtins/gen/literal/clamp/87df46.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/clamp/87df46.wgsl.expected.ir.dxc.hlsl
index 0ba40c6..1808a9b 100644
--- a/test/tint/builtins/gen/literal/clamp/87df46.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/clamp/87df46.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,36 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+void clamp_87df46() {
+  float4 res = (1.0f).xxxx;
+}
+
+void fragment_main() {
+  clamp_87df46();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  clamp_87df46();
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  clamp_87df46();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  vertex_main_outputs v_2 = {v_1.pos};
+  return v_2;
+}
+
diff --git a/test/tint/builtins/gen/literal/clamp/87df46.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/clamp/87df46.wgsl.expected.ir.fxc.hlsl
index 0ba40c6..1808a9b 100644
--- a/test/tint/builtins/gen/literal/clamp/87df46.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/clamp/87df46.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,36 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+void clamp_87df46() {
+  float4 res = (1.0f).xxxx;
+}
+
+void fragment_main() {
+  clamp_87df46();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  clamp_87df46();
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  clamp_87df46();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  vertex_main_outputs v_2 = {v_1.pos};
+  return v_2;
+}
+
diff --git a/test/tint/builtins/gen/literal/clamp/8b1eaa.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/clamp/8b1eaa.wgsl.expected.ir.dxc.hlsl
index 0ba40c6..6a14317 100644
--- a/test/tint/builtins/gen/literal/clamp/8b1eaa.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/clamp/8b1eaa.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,36 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+void clamp_8b1eaa() {
+  int3 res = (1).xxx;
+}
+
+void fragment_main() {
+  clamp_8b1eaa();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  clamp_8b1eaa();
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  clamp_8b1eaa();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  vertex_main_outputs v_2 = {v_1.pos};
+  return v_2;
+}
+
diff --git a/test/tint/builtins/gen/literal/clamp/8b1eaa.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/clamp/8b1eaa.wgsl.expected.ir.fxc.hlsl
index 0ba40c6..6a14317 100644
--- a/test/tint/builtins/gen/literal/clamp/8b1eaa.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/clamp/8b1eaa.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,36 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+void clamp_8b1eaa() {
+  int3 res = (1).xxx;
+}
+
+void fragment_main() {
+  clamp_8b1eaa();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  clamp_8b1eaa();
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  clamp_8b1eaa();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  vertex_main_outputs v_2 = {v_1.pos};
+  return v_2;
+}
+
diff --git a/test/tint/builtins/gen/literal/clamp/96e56a.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/clamp/96e56a.wgsl.expected.ir.dxc.hlsl
index 0ba40c6..df85b5d 100644
--- a/test/tint/builtins/gen/literal/clamp/96e56a.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/clamp/96e56a.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,36 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+void clamp_96e56a() {
+  int res = 1;
+}
+
+void fragment_main() {
+  clamp_96e56a();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  clamp_96e56a();
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  clamp_96e56a();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  vertex_main_outputs v_2 = {v_1.pos};
+  return v_2;
+}
+
diff --git a/test/tint/builtins/gen/literal/clamp/96e56a.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/clamp/96e56a.wgsl.expected.ir.fxc.hlsl
index 0ba40c6..df85b5d 100644
--- a/test/tint/builtins/gen/literal/clamp/96e56a.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/clamp/96e56a.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,36 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+void clamp_96e56a() {
+  int res = 1;
+}
+
+void fragment_main() {
+  clamp_96e56a();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  clamp_96e56a();
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  clamp_96e56a();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  vertex_main_outputs v_2 = {v_1.pos};
+  return v_2;
+}
+
diff --git a/test/tint/builtins/gen/literal/clamp/9d731c.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/clamp/9d731c.wgsl.expected.ir.dxc.hlsl
index 0ba40c6..cc55cef 100644
--- a/test/tint/builtins/gen/literal/clamp/9d731c.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/clamp/9d731c.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,36 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+void clamp_9d731c() {
+  float2 res = (1.0f).xx;
+}
+
+void fragment_main() {
+  clamp_9d731c();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  clamp_9d731c();
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  clamp_9d731c();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  vertex_main_outputs v_2 = {v_1.pos};
+  return v_2;
+}
+
diff --git a/test/tint/builtins/gen/literal/clamp/9d731c.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/clamp/9d731c.wgsl.expected.ir.fxc.hlsl
index 0ba40c6..cc55cef 100644
--- a/test/tint/builtins/gen/literal/clamp/9d731c.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/clamp/9d731c.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,36 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+void clamp_9d731c() {
+  float2 res = (1.0f).xx;
+}
+
+void fragment_main() {
+  clamp_9d731c();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  clamp_9d731c();
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  clamp_9d731c();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  vertex_main_outputs v_2 = {v_1.pos};
+  return v_2;
+}
+
diff --git a/test/tint/builtins/gen/literal/clamp/a2de25.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/clamp/a2de25.wgsl.expected.ir.dxc.hlsl
index 0ba40c6..e0c2c0f 100644
--- a/test/tint/builtins/gen/literal/clamp/a2de25.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/clamp/a2de25.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,42 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  uint prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation uint VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+uint clamp_a2de25() {
+  uint res = 1u;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store(0u, clamp_a2de25());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store(0u, clamp_a2de25());
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = clamp_a2de25();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
diff --git a/test/tint/builtins/gen/literal/clamp/a2de25.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/clamp/a2de25.wgsl.expected.ir.fxc.hlsl
index 0ba40c6..e0c2c0f 100644
--- a/test/tint/builtins/gen/literal/clamp/a2de25.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/clamp/a2de25.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,42 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  uint prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation uint VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+uint clamp_a2de25() {
+  uint res = 1u;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store(0u, clamp_a2de25());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store(0u, clamp_a2de25());
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = clamp_a2de25();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
diff --git a/test/tint/builtins/gen/literal/clamp/b07c65.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/clamp/b07c65.wgsl.expected.ir.dxc.hlsl
index 0ba40c6..207fb67 100644
--- a/test/tint/builtins/gen/literal/clamp/b07c65.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/clamp/b07c65.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,42 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  int prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation int VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+int clamp_b07c65() {
+  int res = 1;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store(0u, asuint(clamp_b07c65()));
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store(0u, asuint(clamp_b07c65()));
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = clamp_b07c65();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
diff --git a/test/tint/builtins/gen/literal/clamp/b07c65.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/clamp/b07c65.wgsl.expected.ir.fxc.hlsl
index 0ba40c6..207fb67 100644
--- a/test/tint/builtins/gen/literal/clamp/b07c65.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/clamp/b07c65.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,42 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  int prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation int VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+int clamp_b07c65() {
+  int res = 1;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store(0u, asuint(clamp_b07c65()));
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store(0u, asuint(clamp_b07c65()));
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = clamp_b07c65();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
diff --git a/test/tint/builtins/gen/literal/clamp/b195eb.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/clamp/b195eb.wgsl.expected.ir.dxc.hlsl
index 0ba40c6..b87555c 100644
--- a/test/tint/builtins/gen/literal/clamp/b195eb.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/clamp/b195eb.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,42 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  vector<float16_t, 3> prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation vector<float16_t, 3> VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+vector<float16_t, 3> clamp_b195eb() {
+  vector<float16_t, 3> res = (float16_t(1.0h)).xxx;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store<vector<float16_t, 3> >(0u, clamp_b195eb());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store<vector<float16_t, 3> >(0u, clamp_b195eb());
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = clamp_b195eb();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
diff --git a/test/tint/builtins/gen/literal/clamp/b195eb.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/clamp/b195eb.wgsl.expected.ir.fxc.hlsl
index 0ba40c6..1cf46c3 100644
--- a/test/tint/builtins/gen/literal/clamp/b195eb.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/clamp/b195eb.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,47 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct VertexOutput {
+  float4 pos;
+  vector<float16_t, 3> prevent_dce;
+};
+
+struct vertex_main_outputs {
+  nointerpolation vector<float16_t, 3> VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+vector<float16_t, 3> clamp_b195eb() {
+  vector<float16_t, 3> res = (float16_t(1.0h)).xxx;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store<vector<float16_t, 3> >(0u, clamp_b195eb());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store<vector<float16_t, 3> >(0u, clamp_b195eb());
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = clamp_b195eb();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
+FXC validation failure:
+c:\src\dawn\Shader@0x000001FF5BC8C3D0(3,10-18): error X3000: syntax error: unexpected token 'float16_t'
+
diff --git a/test/tint/builtins/gen/literal/clamp/bd43ce.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/clamp/bd43ce.wgsl.expected.ir.dxc.hlsl
index 0ba40c6..3e66597 100644
--- a/test/tint/builtins/gen/literal/clamp/bd43ce.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/clamp/bd43ce.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,42 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  uint4 prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation uint4 VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+uint4 clamp_bd43ce() {
+  uint4 res = (1u).xxxx;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store4(0u, clamp_bd43ce());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store4(0u, clamp_bd43ce());
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = clamp_bd43ce();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
diff --git a/test/tint/builtins/gen/literal/clamp/bd43ce.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/clamp/bd43ce.wgsl.expected.ir.fxc.hlsl
index 0ba40c6..3e66597 100644
--- a/test/tint/builtins/gen/literal/clamp/bd43ce.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/clamp/bd43ce.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,42 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  uint4 prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation uint4 VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+uint4 clamp_bd43ce() {
+  uint4 res = (1u).xxxx;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store4(0u, clamp_bd43ce());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store4(0u, clamp_bd43ce());
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = clamp_bd43ce();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
diff --git a/test/tint/builtins/gen/literal/clamp/d396af.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/clamp/d396af.wgsl.expected.ir.dxc.hlsl
index 0ba40c6..00dfc9b 100644
--- a/test/tint/builtins/gen/literal/clamp/d396af.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/clamp/d396af.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,36 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+void clamp_d396af() {
+  int4 res = (1).xxxx;
+}
+
+void fragment_main() {
+  clamp_d396af();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  clamp_d396af();
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  clamp_d396af();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  vertex_main_outputs v_2 = {v_1.pos};
+  return v_2;
+}
+
diff --git a/test/tint/builtins/gen/literal/clamp/d396af.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/clamp/d396af.wgsl.expected.ir.fxc.hlsl
index 0ba40c6..00dfc9b 100644
--- a/test/tint/builtins/gen/literal/clamp/d396af.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/clamp/d396af.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,36 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+void clamp_d396af() {
+  int4 res = (1).xxxx;
+}
+
+void fragment_main() {
+  clamp_d396af();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  clamp_d396af();
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  clamp_d396af();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  vertex_main_outputs v_2 = {v_1.pos};
+  return v_2;
+}
+
diff --git a/test/tint/builtins/gen/literal/cos/0835a8.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/cos/0835a8.wgsl.expected.ir.dxc.hlsl
index 0ba40c6..54fed87 100644
--- a/test/tint/builtins/gen/literal/cos/0835a8.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/cos/0835a8.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,42 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  vector<float16_t, 3> prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation vector<float16_t, 3> VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+vector<float16_t, 3> cos_0835a8() {
+  vector<float16_t, 3> res = (float16_t(1.0h)).xxx;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store<vector<float16_t, 3> >(0u, cos_0835a8());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store<vector<float16_t, 3> >(0u, cos_0835a8());
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = cos_0835a8();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
diff --git a/test/tint/builtins/gen/literal/cos/0835a8.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/cos/0835a8.wgsl.expected.ir.fxc.hlsl
index 0ba40c6..66fa6cf 100644
--- a/test/tint/builtins/gen/literal/cos/0835a8.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/cos/0835a8.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,47 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct VertexOutput {
+  float4 pos;
+  vector<float16_t, 3> prevent_dce;
+};
+
+struct vertex_main_outputs {
+  nointerpolation vector<float16_t, 3> VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+vector<float16_t, 3> cos_0835a8() {
+  vector<float16_t, 3> res = (float16_t(1.0h)).xxx;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store<vector<float16_t, 3> >(0u, cos_0835a8());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store<vector<float16_t, 3> >(0u, cos_0835a8());
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = cos_0835a8();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
+FXC validation failure:
+c:\src\dawn\Shader@0x000001D7C9A34130(3,10-18): error X3000: syntax error: unexpected token 'float16_t'
+
diff --git a/test/tint/builtins/gen/literal/cos/0a89f7.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/cos/0a89f7.wgsl.expected.ir.dxc.hlsl
index 0ba40c6..1dc7f3c 100644
--- a/test/tint/builtins/gen/literal/cos/0a89f7.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/cos/0a89f7.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,42 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  vector<float16_t, 4> prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation vector<float16_t, 4> VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+vector<float16_t, 4> cos_0a89f7() {
+  vector<float16_t, 4> res = (float16_t(1.0h)).xxxx;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store<vector<float16_t, 4> >(0u, cos_0a89f7());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store<vector<float16_t, 4> >(0u, cos_0a89f7());
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = cos_0a89f7();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
diff --git a/test/tint/builtins/gen/literal/cos/0a89f7.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/cos/0a89f7.wgsl.expected.ir.fxc.hlsl
index 0ba40c6..522e86d 100644
--- a/test/tint/builtins/gen/literal/cos/0a89f7.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/cos/0a89f7.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,47 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct VertexOutput {
+  float4 pos;
+  vector<float16_t, 4> prevent_dce;
+};
+
+struct vertex_main_outputs {
+  nointerpolation vector<float16_t, 4> VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+vector<float16_t, 4> cos_0a89f7() {
+  vector<float16_t, 4> res = (float16_t(1.0h)).xxxx;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store<vector<float16_t, 4> >(0u, cos_0a89f7());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store<vector<float16_t, 4> >(0u, cos_0a89f7());
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = cos_0a89f7();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
+FXC validation failure:
+c:\src\dawn\Shader@0x0000027B4F1A80A0(3,10-18): error X3000: syntax error: unexpected token 'float16_t'
+
diff --git a/test/tint/builtins/gen/literal/cos/16dc15.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/cos/16dc15.wgsl.expected.ir.dxc.hlsl
index 0ba40c6..6e623a7 100644
--- a/test/tint/builtins/gen/literal/cos/16dc15.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/cos/16dc15.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,42 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  float3 prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation float3 VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+float3 cos_16dc15() {
+  float3 res = (1.0f).xxx;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store3(0u, asuint(cos_16dc15()));
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store3(0u, asuint(cos_16dc15()));
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = cos_16dc15();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
diff --git a/test/tint/builtins/gen/literal/cos/16dc15.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/cos/16dc15.wgsl.expected.ir.fxc.hlsl
index 0ba40c6..6e623a7 100644
--- a/test/tint/builtins/gen/literal/cos/16dc15.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/cos/16dc15.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,42 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  float3 prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation float3 VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+float3 cos_16dc15() {
+  float3 res = (1.0f).xxx;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store3(0u, asuint(cos_16dc15()));
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store3(0u, asuint(cos_16dc15()));
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = cos_16dc15();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
diff --git a/test/tint/builtins/gen/literal/cos/29d66d.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/cos/29d66d.wgsl.expected.ir.dxc.hlsl
index 0ba40c6..baca67a 100644
--- a/test/tint/builtins/gen/literal/cos/29d66d.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/cos/29d66d.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,42 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  float4 prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation float4 VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+float4 cos_29d66d() {
+  float4 res = (1.0f).xxxx;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store4(0u, asuint(cos_29d66d()));
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store4(0u, asuint(cos_29d66d()));
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = cos_29d66d();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
diff --git a/test/tint/builtins/gen/literal/cos/29d66d.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/cos/29d66d.wgsl.expected.ir.fxc.hlsl
index 0ba40c6..baca67a 100644
--- a/test/tint/builtins/gen/literal/cos/29d66d.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/cos/29d66d.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,42 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  float4 prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation float4 VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+float4 cos_29d66d() {
+  float4 res = (1.0f).xxxx;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store4(0u, asuint(cos_29d66d()));
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store4(0u, asuint(cos_29d66d()));
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = cos_29d66d();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
diff --git a/test/tint/builtins/gen/literal/cos/47d768.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/cos/47d768.wgsl.expected.ir.dxc.hlsl
index 0ba40c6..9a9445a 100644
--- a/test/tint/builtins/gen/literal/cos/47d768.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/cos/47d768.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,36 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+void cos_47d768() {
+  float4 res = (1.0f).xxxx;
+}
+
+void fragment_main() {
+  cos_47d768();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  cos_47d768();
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  cos_47d768();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  vertex_main_outputs v_2 = {v_1.pos};
+  return v_2;
+}
+
diff --git a/test/tint/builtins/gen/literal/cos/47d768.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/cos/47d768.wgsl.expected.ir.fxc.hlsl
index 0ba40c6..9a9445a 100644
--- a/test/tint/builtins/gen/literal/cos/47d768.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/cos/47d768.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,36 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+void cos_47d768() {
+  float4 res = (1.0f).xxxx;
+}
+
+void fragment_main() {
+  cos_47d768();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  cos_47d768();
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  cos_47d768();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  vertex_main_outputs v_2 = {v_1.pos};
+  return v_2;
+}
+
diff --git a/test/tint/builtins/gen/literal/cos/5bc2c6.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/cos/5bc2c6.wgsl.expected.ir.dxc.hlsl
index 0ba40c6..9029261 100644
--- a/test/tint/builtins/gen/literal/cos/5bc2c6.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/cos/5bc2c6.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,42 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  vector<float16_t, 2> prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation vector<float16_t, 2> VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+vector<float16_t, 2> cos_5bc2c6() {
+  vector<float16_t, 2> res = (float16_t(1.0h)).xx;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store<vector<float16_t, 2> >(0u, cos_5bc2c6());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store<vector<float16_t, 2> >(0u, cos_5bc2c6());
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = cos_5bc2c6();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
diff --git a/test/tint/builtins/gen/literal/cos/5bc2c6.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/cos/5bc2c6.wgsl.expected.ir.fxc.hlsl
index 0ba40c6..5b2be21 100644
--- a/test/tint/builtins/gen/literal/cos/5bc2c6.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/cos/5bc2c6.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,47 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct VertexOutput {
+  float4 pos;
+  vector<float16_t, 2> prevent_dce;
+};
+
+struct vertex_main_outputs {
+  nointerpolation vector<float16_t, 2> VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+vector<float16_t, 2> cos_5bc2c6() {
+  vector<float16_t, 2> res = (float16_t(1.0h)).xx;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store<vector<float16_t, 2> >(0u, cos_5bc2c6());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store<vector<float16_t, 2> >(0u, cos_5bc2c6());
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = cos_5bc2c6();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
+FXC validation failure:
+c:\src\dawn\Shader@0x00000276FE927A10(3,10-18): error X3000: syntax error: unexpected token 'float16_t'
+
diff --git a/test/tint/builtins/gen/literal/cos/6b1fdf.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/cos/6b1fdf.wgsl.expected.ir.dxc.hlsl
index 0ba40c6..23f5b62 100644
--- a/test/tint/builtins/gen/literal/cos/6b1fdf.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/cos/6b1fdf.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,36 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+void cos_6b1fdf() {
+  float3 res = (1.0f).xxx;
+}
+
+void fragment_main() {
+  cos_6b1fdf();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  cos_6b1fdf();
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  cos_6b1fdf();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  vertex_main_outputs v_2 = {v_1.pos};
+  return v_2;
+}
+
diff --git a/test/tint/builtins/gen/literal/cos/6b1fdf.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/cos/6b1fdf.wgsl.expected.ir.fxc.hlsl
index 0ba40c6..23f5b62 100644
--- a/test/tint/builtins/gen/literal/cos/6b1fdf.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/cos/6b1fdf.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,36 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+void cos_6b1fdf() {
+  float3 res = (1.0f).xxx;
+}
+
+void fragment_main() {
+  cos_6b1fdf();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  cos_6b1fdf();
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  cos_6b1fdf();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  vertex_main_outputs v_2 = {v_1.pos};
+  return v_2;
+}
+
diff --git a/test/tint/builtins/gen/literal/cos/a297d4.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/cos/a297d4.wgsl.expected.ir.dxc.hlsl
index 0ba40c6..5cb983c 100644
--- a/test/tint/builtins/gen/literal/cos/a297d4.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/cos/a297d4.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,36 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+void cos_a297d4() {
+  float res = 1.0f;
+}
+
+void fragment_main() {
+  cos_a297d4();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  cos_a297d4();
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  cos_a297d4();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  vertex_main_outputs v_2 = {v_1.pos};
+  return v_2;
+}
+
diff --git a/test/tint/builtins/gen/literal/cos/a297d4.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/cos/a297d4.wgsl.expected.ir.fxc.hlsl
index 0ba40c6..5cb983c 100644
--- a/test/tint/builtins/gen/literal/cos/a297d4.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/cos/a297d4.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,36 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+void cos_a297d4() {
+  float res = 1.0f;
+}
+
+void fragment_main() {
+  cos_a297d4();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  cos_a297d4();
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  cos_a297d4();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  vertex_main_outputs v_2 = {v_1.pos};
+  return v_2;
+}
+
diff --git a/test/tint/builtins/gen/literal/cos/af7447.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/cos/af7447.wgsl.expected.ir.dxc.hlsl
index 0ba40c6..d2ff793 100644
--- a/test/tint/builtins/gen/literal/cos/af7447.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/cos/af7447.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,36 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+void cos_af7447() {
+  float2 res = (1.0f).xx;
+}
+
+void fragment_main() {
+  cos_af7447();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  cos_af7447();
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  cos_af7447();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  vertex_main_outputs v_2 = {v_1.pos};
+  return v_2;
+}
+
diff --git a/test/tint/builtins/gen/literal/cos/af7447.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/cos/af7447.wgsl.expected.ir.fxc.hlsl
index 0ba40c6..d2ff793 100644
--- a/test/tint/builtins/gen/literal/cos/af7447.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/cos/af7447.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,36 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+void cos_af7447() {
+  float2 res = (1.0f).xx;
+}
+
+void fragment_main() {
+  cos_af7447();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  cos_af7447();
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  cos_af7447();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  vertex_main_outputs v_2 = {v_1.pos};
+  return v_2;
+}
+
diff --git a/test/tint/builtins/gen/literal/cos/c3b486.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/cos/c3b486.wgsl.expected.ir.dxc.hlsl
index 0ba40c6..ddf6418 100644
--- a/test/tint/builtins/gen/literal/cos/c3b486.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/cos/c3b486.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,42 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  float2 prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation float2 VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+float2 cos_c3b486() {
+  float2 res = (1.0f).xx;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store2(0u, asuint(cos_c3b486()));
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store2(0u, asuint(cos_c3b486()));
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = cos_c3b486();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
diff --git a/test/tint/builtins/gen/literal/cos/c3b486.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/cos/c3b486.wgsl.expected.ir.fxc.hlsl
index 0ba40c6..ddf6418 100644
--- a/test/tint/builtins/gen/literal/cos/c3b486.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/cos/c3b486.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,42 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  float2 prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation float2 VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+float2 cos_c3b486() {
+  float2 res = (1.0f).xx;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store2(0u, asuint(cos_c3b486()));
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store2(0u, asuint(cos_c3b486()));
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = cos_c3b486();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
diff --git a/test/tint/builtins/gen/literal/cos/c5c28e.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/cos/c5c28e.wgsl.expected.ir.dxc.hlsl
index 0ba40c6..ec93e93 100644
--- a/test/tint/builtins/gen/literal/cos/c5c28e.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/cos/c5c28e.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,42 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  float prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation float VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+float cos_c5c28e() {
+  float res = 1.0f;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store(0u, asuint(cos_c5c28e()));
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store(0u, asuint(cos_c5c28e()));
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = cos_c5c28e();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
diff --git a/test/tint/builtins/gen/literal/cos/c5c28e.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/cos/c5c28e.wgsl.expected.ir.fxc.hlsl
index 0ba40c6..ec93e93 100644
--- a/test/tint/builtins/gen/literal/cos/c5c28e.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/cos/c5c28e.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,42 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  float prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation float VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+float cos_c5c28e() {
+  float res = 1.0f;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store(0u, asuint(cos_c5c28e()));
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store(0u, asuint(cos_c5c28e()));
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = cos_c5c28e();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
diff --git a/test/tint/builtins/gen/literal/cos/fc047d.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/cos/fc047d.wgsl.expected.ir.dxc.hlsl
index 0ba40c6..f8d6b9e 100644
--- a/test/tint/builtins/gen/literal/cos/fc047d.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/cos/fc047d.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,42 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  float16_t prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation float16_t VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+float16_t cos_fc047d() {
+  float16_t res = float16_t(1.0h);
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store<float16_t>(0u, cos_fc047d());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store<float16_t>(0u, cos_fc047d());
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = cos_fc047d();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
diff --git a/test/tint/builtins/gen/literal/cos/fc047d.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/cos/fc047d.wgsl.expected.ir.fxc.hlsl
index 0ba40c6..a515754 100644
--- a/test/tint/builtins/gen/literal/cos/fc047d.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/cos/fc047d.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,47 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct VertexOutput {
+  float4 pos;
+  float16_t prevent_dce;
+};
+
+struct vertex_main_outputs {
+  nointerpolation float16_t VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+float16_t cos_fc047d() {
+  float16_t res = float16_t(1.0h);
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store<float16_t>(0u, cos_fc047d());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store<float16_t>(0u, cos_fc047d());
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = cos_fc047d();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
+FXC validation failure:
+c:\src\dawn\Shader@0x000001D867CCC010(3,3-11): error X3000: unrecognized identifier 'float16_t'
+
diff --git a/test/tint/builtins/gen/literal/cosh/2ed778.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/cosh/2ed778.wgsl.expected.ir.dxc.hlsl
index 0ba40c6..ab55e76 100644
--- a/test/tint/builtins/gen/literal/cosh/2ed778.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/cosh/2ed778.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,42 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  float16_t prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation float16_t VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+float16_t cosh_2ed778() {
+  float16_t res = float16_t(1.0h);
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store<float16_t>(0u, cosh_2ed778());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store<float16_t>(0u, cosh_2ed778());
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = cosh_2ed778();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
diff --git a/test/tint/builtins/gen/literal/cosh/2ed778.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/cosh/2ed778.wgsl.expected.ir.fxc.hlsl
index 0ba40c6..8a573db 100644
--- a/test/tint/builtins/gen/literal/cosh/2ed778.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/cosh/2ed778.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,47 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct VertexOutput {
+  float4 pos;
+  float16_t prevent_dce;
+};
+
+struct vertex_main_outputs {
+  nointerpolation float16_t VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+float16_t cosh_2ed778() {
+  float16_t res = float16_t(1.0h);
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store<float16_t>(0u, cosh_2ed778());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store<float16_t>(0u, cosh_2ed778());
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = cosh_2ed778();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
+FXC validation failure:
+c:\src\dawn\Shader@0x0000022499707DF0(3,3-11): error X3000: unrecognized identifier 'float16_t'
+
diff --git a/test/tint/builtins/gen/literal/cosh/377652.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/cosh/377652.wgsl.expected.ir.dxc.hlsl
index 0ba40c6..b219f98 100644
--- a/test/tint/builtins/gen/literal/cosh/377652.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/cosh/377652.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,42 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  float3 prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation float3 VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+float3 cosh_377652() {
+  float3 res = (1.0f).xxx;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store3(0u, asuint(cosh_377652()));
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store3(0u, asuint(cosh_377652()));
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = cosh_377652();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
diff --git a/test/tint/builtins/gen/literal/cosh/377652.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/cosh/377652.wgsl.expected.ir.fxc.hlsl
index 0ba40c6..b219f98 100644
--- a/test/tint/builtins/gen/literal/cosh/377652.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/cosh/377652.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,42 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  float3 prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation float3 VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+float3 cosh_377652() {
+  float3 res = (1.0f).xxx;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store3(0u, asuint(cosh_377652()));
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store3(0u, asuint(cosh_377652()));
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = cosh_377652();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
diff --git a/test/tint/builtins/gen/literal/cosh/3b7bbf.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/cosh/3b7bbf.wgsl.expected.ir.dxc.hlsl
index 0ba40c6..f1ca838 100644
--- a/test/tint/builtins/gen/literal/cosh/3b7bbf.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/cosh/3b7bbf.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,42 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  vector<float16_t, 4> prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation vector<float16_t, 4> VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+vector<float16_t, 4> cosh_3b7bbf() {
+  vector<float16_t, 4> res = (float16_t(1.0h)).xxxx;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store<vector<float16_t, 4> >(0u, cosh_3b7bbf());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store<vector<float16_t, 4> >(0u, cosh_3b7bbf());
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = cosh_3b7bbf();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
diff --git a/test/tint/builtins/gen/literal/cosh/3b7bbf.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/cosh/3b7bbf.wgsl.expected.ir.fxc.hlsl
index 0ba40c6..1fc9251 100644
--- a/test/tint/builtins/gen/literal/cosh/3b7bbf.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/cosh/3b7bbf.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,47 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct VertexOutput {
+  float4 pos;
+  vector<float16_t, 4> prevent_dce;
+};
+
+struct vertex_main_outputs {
+  nointerpolation vector<float16_t, 4> VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+vector<float16_t, 4> cosh_3b7bbf() {
+  vector<float16_t, 4> res = (float16_t(1.0h)).xxxx;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store<vector<float16_t, 4> >(0u, cosh_3b7bbf());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store<vector<float16_t, 4> >(0u, cosh_3b7bbf());
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = cosh_3b7bbf();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
+FXC validation failure:
+c:\src\dawn\Shader@0x0000019FEA8676B0(3,10-18): error X3000: syntax error: unexpected token 'float16_t'
+
diff --git a/test/tint/builtins/gen/literal/cosh/432645.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/cosh/432645.wgsl.expected.ir.dxc.hlsl
index 0ba40c6..9a731e1 100644
--- a/test/tint/builtins/gen/literal/cosh/432645.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/cosh/432645.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,36 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+void cosh_432645() {
+  float2 res = (1.0f).xx;
+}
+
+void fragment_main() {
+  cosh_432645();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  cosh_432645();
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  cosh_432645();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  vertex_main_outputs v_2 = {v_1.pos};
+  return v_2;
+}
+
diff --git a/test/tint/builtins/gen/literal/cosh/432645.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/cosh/432645.wgsl.expected.ir.fxc.hlsl
index 0ba40c6..9a731e1 100644
--- a/test/tint/builtins/gen/literal/cosh/432645.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/cosh/432645.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,36 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+void cosh_432645() {
+  float2 res = (1.0f).xx;
+}
+
+void fragment_main() {
+  cosh_432645();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  cosh_432645();
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  cosh_432645();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  vertex_main_outputs v_2 = {v_1.pos};
+  return v_2;
+}
+
diff --git a/test/tint/builtins/gen/literal/cosh/43b672.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/cosh/43b672.wgsl.expected.ir.dxc.hlsl
index 0ba40c6..528d323 100644
--- a/test/tint/builtins/gen/literal/cosh/43b672.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/cosh/43b672.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,42 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  vector<float16_t, 2> prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation vector<float16_t, 2> VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+vector<float16_t, 2> cosh_43b672() {
+  vector<float16_t, 2> res = (float16_t(1.0h)).xx;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store<vector<float16_t, 2> >(0u, cosh_43b672());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store<vector<float16_t, 2> >(0u, cosh_43b672());
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = cosh_43b672();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
diff --git a/test/tint/builtins/gen/literal/cosh/43b672.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/cosh/43b672.wgsl.expected.ir.fxc.hlsl
index 0ba40c6..56ebe9f 100644
--- a/test/tint/builtins/gen/literal/cosh/43b672.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/cosh/43b672.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,47 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct VertexOutput {
+  float4 pos;
+  vector<float16_t, 2> prevent_dce;
+};
+
+struct vertex_main_outputs {
+  nointerpolation vector<float16_t, 2> VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+vector<float16_t, 2> cosh_43b672() {
+  vector<float16_t, 2> res = (float16_t(1.0h)).xx;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store<vector<float16_t, 2> >(0u, cosh_43b672());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store<vector<float16_t, 2> >(0u, cosh_43b672());
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = cosh_43b672();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
+FXC validation failure:
+c:\src\dawn\Shader@0x000001EE78200680(3,10-18): error X3000: syntax error: unexpected token 'float16_t'
+
diff --git a/test/tint/builtins/gen/literal/cosh/b1b8a0.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/cosh/b1b8a0.wgsl.expected.ir.dxc.hlsl
index 0ba40c6..2d0e3b6 100644
--- a/test/tint/builtins/gen/literal/cosh/b1b8a0.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/cosh/b1b8a0.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,42 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  vector<float16_t, 3> prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation vector<float16_t, 3> VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+vector<float16_t, 3> cosh_b1b8a0() {
+  vector<float16_t, 3> res = (float16_t(1.0h)).xxx;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store<vector<float16_t, 3> >(0u, cosh_b1b8a0());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store<vector<float16_t, 3> >(0u, cosh_b1b8a0());
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = cosh_b1b8a0();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
diff --git a/test/tint/builtins/gen/literal/cosh/b1b8a0.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/cosh/b1b8a0.wgsl.expected.ir.fxc.hlsl
index 0ba40c6..f26e0f6 100644
--- a/test/tint/builtins/gen/literal/cosh/b1b8a0.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/cosh/b1b8a0.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,47 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct VertexOutput {
+  float4 pos;
+  vector<float16_t, 3> prevent_dce;
+};
+
+struct vertex_main_outputs {
+  nointerpolation vector<float16_t, 3> VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+vector<float16_t, 3> cosh_b1b8a0() {
+  vector<float16_t, 3> res = (float16_t(1.0h)).xxx;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store<vector<float16_t, 3> >(0u, cosh_b1b8a0());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store<vector<float16_t, 3> >(0u, cosh_b1b8a0());
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = cosh_b1b8a0();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
+FXC validation failure:
+c:\src\dawn\Shader@0x00000262C824AEA0(3,10-18): error X3000: syntax error: unexpected token 'float16_t'
+
diff --git a/test/tint/builtins/gen/literal/cosh/c13756.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/cosh/c13756.wgsl.expected.ir.dxc.hlsl
index 0ba40c6..8c54b74 100644
--- a/test/tint/builtins/gen/literal/cosh/c13756.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/cosh/c13756.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,42 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  float2 prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation float2 VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+float2 cosh_c13756() {
+  float2 res = (1.0f).xx;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store2(0u, asuint(cosh_c13756()));
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store2(0u, asuint(cosh_c13756()));
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = cosh_c13756();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
diff --git a/test/tint/builtins/gen/literal/cosh/c13756.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/cosh/c13756.wgsl.expected.ir.fxc.hlsl
index 0ba40c6..8c54b74 100644
--- a/test/tint/builtins/gen/literal/cosh/c13756.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/cosh/c13756.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,42 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  float2 prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation float2 VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+float2 cosh_c13756() {
+  float2 res = (1.0f).xx;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store2(0u, asuint(cosh_c13756()));
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store2(0u, asuint(cosh_c13756()));
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = cosh_c13756();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
diff --git a/test/tint/builtins/gen/literal/cosh/c892bb.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/cosh/c892bb.wgsl.expected.ir.dxc.hlsl
index 0ba40c6..ff5e4ba 100644
--- a/test/tint/builtins/gen/literal/cosh/c892bb.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/cosh/c892bb.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,36 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+void cosh_c892bb() {
+  float res = 1.0f;
+}
+
+void fragment_main() {
+  cosh_c892bb();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  cosh_c892bb();
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  cosh_c892bb();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  vertex_main_outputs v_2 = {v_1.pos};
+  return v_2;
+}
+
diff --git a/test/tint/builtins/gen/literal/cosh/c892bb.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/cosh/c892bb.wgsl.expected.ir.fxc.hlsl
index 0ba40c6..ff5e4ba 100644
--- a/test/tint/builtins/gen/literal/cosh/c892bb.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/cosh/c892bb.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,36 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+void cosh_c892bb() {
+  float res = 1.0f;
+}
+
+void fragment_main() {
+  cosh_c892bb();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  cosh_c892bb();
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  cosh_c892bb();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  vertex_main_outputs v_2 = {v_1.pos};
+  return v_2;
+}
+
diff --git a/test/tint/builtins/gen/literal/cosh/d8dee7.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/cosh/d8dee7.wgsl.expected.ir.dxc.hlsl
index 0ba40c6..07ebb76 100644
--- a/test/tint/builtins/gen/literal/cosh/d8dee7.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/cosh/d8dee7.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,36 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+void cosh_d8dee7() {
+  float4 res = (1.0f).xxxx;
+}
+
+void fragment_main() {
+  cosh_d8dee7();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  cosh_d8dee7();
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  cosh_d8dee7();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  vertex_main_outputs v_2 = {v_1.pos};
+  return v_2;
+}
+
diff --git a/test/tint/builtins/gen/literal/cosh/d8dee7.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/cosh/d8dee7.wgsl.expected.ir.fxc.hlsl
index 0ba40c6..07ebb76 100644
--- a/test/tint/builtins/gen/literal/cosh/d8dee7.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/cosh/d8dee7.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,36 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+void cosh_d8dee7() {
+  float4 res = (1.0f).xxxx;
+}
+
+void fragment_main() {
+  cosh_d8dee7();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  cosh_d8dee7();
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  cosh_d8dee7();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  vertex_main_outputs v_2 = {v_1.pos};
+  return v_2;
+}
+
diff --git a/test/tint/builtins/gen/literal/cosh/da92dd.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/cosh/da92dd.wgsl.expected.ir.dxc.hlsl
index 0ba40c6..dda8552 100644
--- a/test/tint/builtins/gen/literal/cosh/da92dd.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/cosh/da92dd.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,42 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  float prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation float VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+float cosh_da92dd() {
+  float res = 1.0f;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store(0u, asuint(cosh_da92dd()));
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store(0u, asuint(cosh_da92dd()));
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = cosh_da92dd();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
diff --git a/test/tint/builtins/gen/literal/cosh/da92dd.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/cosh/da92dd.wgsl.expected.ir.fxc.hlsl
index 0ba40c6..dda8552 100644
--- a/test/tint/builtins/gen/literal/cosh/da92dd.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/cosh/da92dd.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,42 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  float prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation float VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+float cosh_da92dd() {
+  float res = 1.0f;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store(0u, asuint(cosh_da92dd()));
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store(0u, asuint(cosh_da92dd()));
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = cosh_da92dd();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
diff --git a/test/tint/builtins/gen/literal/cosh/e0c1de.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/cosh/e0c1de.wgsl.expected.ir.dxc.hlsl
index 0ba40c6..651d5af 100644
--- a/test/tint/builtins/gen/literal/cosh/e0c1de.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/cosh/e0c1de.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,42 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  float4 prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation float4 VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+float4 cosh_e0c1de() {
+  float4 res = (1.0f).xxxx;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store4(0u, asuint(cosh_e0c1de()));
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store4(0u, asuint(cosh_e0c1de()));
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = cosh_e0c1de();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
diff --git a/test/tint/builtins/gen/literal/cosh/e0c1de.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/cosh/e0c1de.wgsl.expected.ir.fxc.hlsl
index 0ba40c6..651d5af 100644
--- a/test/tint/builtins/gen/literal/cosh/e0c1de.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/cosh/e0c1de.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,42 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  float4 prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation float4 VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+float4 cosh_e0c1de() {
+  float4 res = (1.0f).xxxx;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store4(0u, asuint(cosh_e0c1de()));
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store4(0u, asuint(cosh_e0c1de()));
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = cosh_e0c1de();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
diff --git a/test/tint/builtins/gen/literal/cosh/f67ff1.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/cosh/f67ff1.wgsl.expected.ir.dxc.hlsl
index 0ba40c6..9f6e9c1 100644
--- a/test/tint/builtins/gen/literal/cosh/f67ff1.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/cosh/f67ff1.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,36 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+void cosh_f67ff1() {
+  float3 res = (1.0f).xxx;
+}
+
+void fragment_main() {
+  cosh_f67ff1();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  cosh_f67ff1();
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  cosh_f67ff1();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  vertex_main_outputs v_2 = {v_1.pos};
+  return v_2;
+}
+
diff --git a/test/tint/builtins/gen/literal/cosh/f67ff1.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/cosh/f67ff1.wgsl.expected.ir.fxc.hlsl
index 0ba40c6..9f6e9c1 100644
--- a/test/tint/builtins/gen/literal/cosh/f67ff1.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/cosh/f67ff1.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,36 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+void cosh_f67ff1() {
+  float3 res = (1.0f).xxx;
+}
+
+void fragment_main() {
+  cosh_f67ff1();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  cosh_f67ff1();
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  cosh_f67ff1();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  vertex_main_outputs v_2 = {v_1.pos};
+  return v_2;
+}
+
diff --git a/test/tint/builtins/gen/literal/countLeadingZeros/208d46.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/countLeadingZeros/208d46.wgsl.expected.ir.dxc.hlsl
index 0ba40c6..7e8bb7b 100644
--- a/test/tint/builtins/gen/literal/countLeadingZeros/208d46.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/countLeadingZeros/208d46.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,42 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  uint prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation uint VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+uint countLeadingZeros_208d46() {
+  uint res = 31u;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store(0u, countLeadingZeros_208d46());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store(0u, countLeadingZeros_208d46());
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = countLeadingZeros_208d46();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
diff --git a/test/tint/builtins/gen/literal/countLeadingZeros/208d46.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/countLeadingZeros/208d46.wgsl.expected.ir.fxc.hlsl
index 0ba40c6..7e8bb7b 100644
--- a/test/tint/builtins/gen/literal/countLeadingZeros/208d46.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/countLeadingZeros/208d46.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,42 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  uint prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation uint VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+uint countLeadingZeros_208d46() {
+  uint res = 31u;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store(0u, countLeadingZeros_208d46());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store(0u, countLeadingZeros_208d46());
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = countLeadingZeros_208d46();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
diff --git a/test/tint/builtins/gen/literal/countLeadingZeros/6d4656.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/countLeadingZeros/6d4656.wgsl.expected.ir.dxc.hlsl
index 0ba40c6..addc07b 100644
--- a/test/tint/builtins/gen/literal/countLeadingZeros/6d4656.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/countLeadingZeros/6d4656.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,42 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  int prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation int VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+int countLeadingZeros_6d4656() {
+  int res = 31;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store(0u, asuint(countLeadingZeros_6d4656()));
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store(0u, asuint(countLeadingZeros_6d4656()));
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = countLeadingZeros_6d4656();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
diff --git a/test/tint/builtins/gen/literal/countLeadingZeros/6d4656.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/countLeadingZeros/6d4656.wgsl.expected.ir.fxc.hlsl
index 0ba40c6..addc07b 100644
--- a/test/tint/builtins/gen/literal/countLeadingZeros/6d4656.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/countLeadingZeros/6d4656.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,42 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  int prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation int VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+int countLeadingZeros_6d4656() {
+  int res = 31;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store(0u, asuint(countLeadingZeros_6d4656()));
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store(0u, asuint(countLeadingZeros_6d4656()));
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = countLeadingZeros_6d4656();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
diff --git a/test/tint/builtins/gen/literal/countLeadingZeros/70783f.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/countLeadingZeros/70783f.wgsl.expected.ir.dxc.hlsl
index 0ba40c6..a1f2d58 100644
--- a/test/tint/builtins/gen/literal/countLeadingZeros/70783f.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/countLeadingZeros/70783f.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,42 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  uint2 prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation uint2 VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+uint2 countLeadingZeros_70783f() {
+  uint2 res = (31u).xx;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store2(0u, countLeadingZeros_70783f());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store2(0u, countLeadingZeros_70783f());
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = countLeadingZeros_70783f();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
diff --git a/test/tint/builtins/gen/literal/countLeadingZeros/70783f.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/countLeadingZeros/70783f.wgsl.expected.ir.fxc.hlsl
index 0ba40c6..a1f2d58 100644
--- a/test/tint/builtins/gen/literal/countLeadingZeros/70783f.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/countLeadingZeros/70783f.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,42 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  uint2 prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation uint2 VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+uint2 countLeadingZeros_70783f() {
+  uint2 res = (31u).xx;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store2(0u, countLeadingZeros_70783f());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store2(0u, countLeadingZeros_70783f());
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = countLeadingZeros_70783f();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
diff --git a/test/tint/builtins/gen/literal/countLeadingZeros/7c38a6.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/countLeadingZeros/7c38a6.wgsl.expected.ir.dxc.hlsl
index 0ba40c6..aa07750 100644
--- a/test/tint/builtins/gen/literal/countLeadingZeros/7c38a6.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/countLeadingZeros/7c38a6.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,42 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  int3 prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation int3 VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+int3 countLeadingZeros_7c38a6() {
+  int3 res = (31).xxx;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store3(0u, asuint(countLeadingZeros_7c38a6()));
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store3(0u, asuint(countLeadingZeros_7c38a6()));
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = countLeadingZeros_7c38a6();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
diff --git a/test/tint/builtins/gen/literal/countLeadingZeros/7c38a6.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/countLeadingZeros/7c38a6.wgsl.expected.ir.fxc.hlsl
index 0ba40c6..aa07750 100644
--- a/test/tint/builtins/gen/literal/countLeadingZeros/7c38a6.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/countLeadingZeros/7c38a6.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,42 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  int3 prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation int3 VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+int3 countLeadingZeros_7c38a6() {
+  int3 res = (31).xxx;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store3(0u, asuint(countLeadingZeros_7c38a6()));
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store3(0u, asuint(countLeadingZeros_7c38a6()));
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = countLeadingZeros_7c38a6();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
diff --git a/test/tint/builtins/gen/literal/countLeadingZeros/858d40.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/countLeadingZeros/858d40.wgsl.expected.ir.dxc.hlsl
index 0ba40c6..fa7ad9f 100644
--- a/test/tint/builtins/gen/literal/countLeadingZeros/858d40.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/countLeadingZeros/858d40.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,42 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  int2 prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation int2 VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+int2 countLeadingZeros_858d40() {
+  int2 res = (31).xx;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store2(0u, asuint(countLeadingZeros_858d40()));
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store2(0u, asuint(countLeadingZeros_858d40()));
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = countLeadingZeros_858d40();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
diff --git a/test/tint/builtins/gen/literal/countLeadingZeros/858d40.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/countLeadingZeros/858d40.wgsl.expected.ir.fxc.hlsl
index 0ba40c6..fa7ad9f 100644
--- a/test/tint/builtins/gen/literal/countLeadingZeros/858d40.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/countLeadingZeros/858d40.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,42 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  int2 prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation int2 VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+int2 countLeadingZeros_858d40() {
+  int2 res = (31).xx;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store2(0u, asuint(countLeadingZeros_858d40()));
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store2(0u, asuint(countLeadingZeros_858d40()));
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = countLeadingZeros_858d40();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
diff --git a/test/tint/builtins/gen/literal/countLeadingZeros/ab6345.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/countLeadingZeros/ab6345.wgsl.expected.ir.dxc.hlsl
index 0ba40c6..a942ce3 100644
--- a/test/tint/builtins/gen/literal/countLeadingZeros/ab6345.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/countLeadingZeros/ab6345.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,42 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  uint3 prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation uint3 VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+uint3 countLeadingZeros_ab6345() {
+  uint3 res = (31u).xxx;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store3(0u, countLeadingZeros_ab6345());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store3(0u, countLeadingZeros_ab6345());
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = countLeadingZeros_ab6345();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
diff --git a/test/tint/builtins/gen/literal/countLeadingZeros/ab6345.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/countLeadingZeros/ab6345.wgsl.expected.ir.fxc.hlsl
index 0ba40c6..a942ce3 100644
--- a/test/tint/builtins/gen/literal/countLeadingZeros/ab6345.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/countLeadingZeros/ab6345.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,42 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  uint3 prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation uint3 VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+uint3 countLeadingZeros_ab6345() {
+  uint3 res = (31u).xxx;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store3(0u, countLeadingZeros_ab6345());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store3(0u, countLeadingZeros_ab6345());
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = countLeadingZeros_ab6345();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
diff --git a/test/tint/builtins/gen/literal/countLeadingZeros/eab32b.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/countLeadingZeros/eab32b.wgsl.expected.ir.dxc.hlsl
index 0ba40c6..cefa2f5 100644
--- a/test/tint/builtins/gen/literal/countLeadingZeros/eab32b.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/countLeadingZeros/eab32b.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,42 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  int4 prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation int4 VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+int4 countLeadingZeros_eab32b() {
+  int4 res = (31).xxxx;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store4(0u, asuint(countLeadingZeros_eab32b()));
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store4(0u, asuint(countLeadingZeros_eab32b()));
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = countLeadingZeros_eab32b();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
diff --git a/test/tint/builtins/gen/literal/countLeadingZeros/eab32b.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/countLeadingZeros/eab32b.wgsl.expected.ir.fxc.hlsl
index 0ba40c6..cefa2f5 100644
--- a/test/tint/builtins/gen/literal/countLeadingZeros/eab32b.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/countLeadingZeros/eab32b.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,42 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  int4 prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation int4 VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+int4 countLeadingZeros_eab32b() {
+  int4 res = (31).xxxx;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store4(0u, asuint(countLeadingZeros_eab32b()));
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store4(0u, asuint(countLeadingZeros_eab32b()));
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = countLeadingZeros_eab32b();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
diff --git a/test/tint/builtins/gen/literal/countLeadingZeros/f70103.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/countLeadingZeros/f70103.wgsl.expected.ir.dxc.hlsl
index 0ba40c6..fe472b9 100644
--- a/test/tint/builtins/gen/literal/countLeadingZeros/f70103.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/countLeadingZeros/f70103.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,42 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  uint4 prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation uint4 VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+uint4 countLeadingZeros_f70103() {
+  uint4 res = (31u).xxxx;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store4(0u, countLeadingZeros_f70103());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store4(0u, countLeadingZeros_f70103());
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = countLeadingZeros_f70103();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
diff --git a/test/tint/builtins/gen/literal/countLeadingZeros/f70103.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/countLeadingZeros/f70103.wgsl.expected.ir.fxc.hlsl
index 0ba40c6..fe472b9 100644
--- a/test/tint/builtins/gen/literal/countLeadingZeros/f70103.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/countLeadingZeros/f70103.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,42 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  uint4 prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation uint4 VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+uint4 countLeadingZeros_f70103() {
+  uint4 res = (31u).xxxx;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store4(0u, countLeadingZeros_f70103());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store4(0u, countLeadingZeros_f70103());
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = countLeadingZeros_f70103();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
diff --git a/test/tint/builtins/gen/literal/countOneBits/0d0e46.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/countOneBits/0d0e46.wgsl.expected.ir.dxc.hlsl
index 0ba40c6..d51e8ce 100644
--- a/test/tint/builtins/gen/literal/countOneBits/0d0e46.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/countOneBits/0d0e46.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,42 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  uint4 prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation uint4 VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+uint4 countOneBits_0d0e46() {
+  uint4 res = (1u).xxxx;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store4(0u, countOneBits_0d0e46());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store4(0u, countOneBits_0d0e46());
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = countOneBits_0d0e46();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
diff --git a/test/tint/builtins/gen/literal/countOneBits/0d0e46.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/countOneBits/0d0e46.wgsl.expected.ir.fxc.hlsl
index 0ba40c6..d51e8ce 100644
--- a/test/tint/builtins/gen/literal/countOneBits/0d0e46.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/countOneBits/0d0e46.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,42 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  uint4 prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation uint4 VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+uint4 countOneBits_0d0e46() {
+  uint4 res = (1u).xxxx;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store4(0u, countOneBits_0d0e46());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store4(0u, countOneBits_0d0e46());
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = countOneBits_0d0e46();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
diff --git a/test/tint/builtins/gen/literal/countOneBits/0f7980.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/countOneBits/0f7980.wgsl.expected.ir.dxc.hlsl
index 0ba40c6..281aded 100644
--- a/test/tint/builtins/gen/literal/countOneBits/0f7980.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/countOneBits/0f7980.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,42 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  int4 prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation int4 VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+int4 countOneBits_0f7980() {
+  int4 res = (1).xxxx;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store4(0u, asuint(countOneBits_0f7980()));
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store4(0u, asuint(countOneBits_0f7980()));
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = countOneBits_0f7980();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
diff --git a/test/tint/builtins/gen/literal/countOneBits/0f7980.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/countOneBits/0f7980.wgsl.expected.ir.fxc.hlsl
index 0ba40c6..281aded 100644
--- a/test/tint/builtins/gen/literal/countOneBits/0f7980.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/countOneBits/0f7980.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,42 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  int4 prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation int4 VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+int4 countOneBits_0f7980() {
+  int4 res = (1).xxxx;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store4(0u, asuint(countOneBits_0f7980()));
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store4(0u, asuint(countOneBits_0f7980()));
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = countOneBits_0f7980();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
diff --git a/test/tint/builtins/gen/literal/countOneBits/65d2ae.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/countOneBits/65d2ae.wgsl.expected.ir.dxc.hlsl
index 0ba40c6..3aba00e 100644
--- a/test/tint/builtins/gen/literal/countOneBits/65d2ae.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/countOneBits/65d2ae.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,42 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  int3 prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation int3 VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+int3 countOneBits_65d2ae() {
+  int3 res = (1).xxx;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store3(0u, asuint(countOneBits_65d2ae()));
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store3(0u, asuint(countOneBits_65d2ae()));
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = countOneBits_65d2ae();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
diff --git a/test/tint/builtins/gen/literal/countOneBits/65d2ae.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/countOneBits/65d2ae.wgsl.expected.ir.fxc.hlsl
index 0ba40c6..3aba00e 100644
--- a/test/tint/builtins/gen/literal/countOneBits/65d2ae.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/countOneBits/65d2ae.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,42 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  int3 prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation int3 VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+int3 countOneBits_65d2ae() {
+  int3 res = (1).xxx;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store3(0u, asuint(countOneBits_65d2ae()));
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store3(0u, asuint(countOneBits_65d2ae()));
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = countOneBits_65d2ae();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
diff --git a/test/tint/builtins/gen/literal/countOneBits/690cfc.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/countOneBits/690cfc.wgsl.expected.ir.dxc.hlsl
index 0ba40c6..5f24170 100644
--- a/test/tint/builtins/gen/literal/countOneBits/690cfc.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/countOneBits/690cfc.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,42 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  uint3 prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation uint3 VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+uint3 countOneBits_690cfc() {
+  uint3 res = (1u).xxx;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store3(0u, countOneBits_690cfc());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store3(0u, countOneBits_690cfc());
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = countOneBits_690cfc();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
diff --git a/test/tint/builtins/gen/literal/countOneBits/690cfc.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/countOneBits/690cfc.wgsl.expected.ir.fxc.hlsl
index 0ba40c6..5f24170 100644
--- a/test/tint/builtins/gen/literal/countOneBits/690cfc.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/countOneBits/690cfc.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,42 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  uint3 prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation uint3 VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+uint3 countOneBits_690cfc() {
+  uint3 res = (1u).xxx;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store3(0u, countOneBits_690cfc());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store3(0u, countOneBits_690cfc());
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = countOneBits_690cfc();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
diff --git a/test/tint/builtins/gen/literal/countOneBits/94fd81.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/countOneBits/94fd81.wgsl.expected.ir.dxc.hlsl
index 0ba40c6..22dab8b 100644
--- a/test/tint/builtins/gen/literal/countOneBits/94fd81.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/countOneBits/94fd81.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,42 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  uint2 prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation uint2 VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+uint2 countOneBits_94fd81() {
+  uint2 res = (1u).xx;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store2(0u, countOneBits_94fd81());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store2(0u, countOneBits_94fd81());
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = countOneBits_94fd81();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
diff --git a/test/tint/builtins/gen/literal/countOneBits/94fd81.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/countOneBits/94fd81.wgsl.expected.ir.fxc.hlsl
index 0ba40c6..22dab8b 100644
--- a/test/tint/builtins/gen/literal/countOneBits/94fd81.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/countOneBits/94fd81.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,42 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  uint2 prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation uint2 VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+uint2 countOneBits_94fd81() {
+  uint2 res = (1u).xx;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store2(0u, countOneBits_94fd81());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store2(0u, countOneBits_94fd81());
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = countOneBits_94fd81();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
diff --git a/test/tint/builtins/gen/literal/countOneBits/ae44f9.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/countOneBits/ae44f9.wgsl.expected.ir.dxc.hlsl
index 0ba40c6..6c5436e 100644
--- a/test/tint/builtins/gen/literal/countOneBits/ae44f9.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/countOneBits/ae44f9.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,42 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  uint prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation uint VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+uint countOneBits_ae44f9() {
+  uint res = 1u;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store(0u, countOneBits_ae44f9());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store(0u, countOneBits_ae44f9());
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = countOneBits_ae44f9();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
diff --git a/test/tint/builtins/gen/literal/countOneBits/ae44f9.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/countOneBits/ae44f9.wgsl.expected.ir.fxc.hlsl
index 0ba40c6..6c5436e 100644
--- a/test/tint/builtins/gen/literal/countOneBits/ae44f9.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/countOneBits/ae44f9.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,42 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  uint prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation uint VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+uint countOneBits_ae44f9() {
+  uint res = 1u;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store(0u, countOneBits_ae44f9());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store(0u, countOneBits_ae44f9());
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = countOneBits_ae44f9();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
diff --git a/test/tint/builtins/gen/literal/countOneBits/af90e2.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/countOneBits/af90e2.wgsl.expected.ir.dxc.hlsl
index 0ba40c6..01a4781 100644
--- a/test/tint/builtins/gen/literal/countOneBits/af90e2.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/countOneBits/af90e2.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,42 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  int2 prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation int2 VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+int2 countOneBits_af90e2() {
+  int2 res = (1).xx;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store2(0u, asuint(countOneBits_af90e2()));
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store2(0u, asuint(countOneBits_af90e2()));
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = countOneBits_af90e2();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
diff --git a/test/tint/builtins/gen/literal/countOneBits/af90e2.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/countOneBits/af90e2.wgsl.expected.ir.fxc.hlsl
index 0ba40c6..01a4781 100644
--- a/test/tint/builtins/gen/literal/countOneBits/af90e2.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/countOneBits/af90e2.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,42 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  int2 prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation int2 VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+int2 countOneBits_af90e2() {
+  int2 res = (1).xx;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store2(0u, asuint(countOneBits_af90e2()));
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store2(0u, asuint(countOneBits_af90e2()));
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = countOneBits_af90e2();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
diff --git a/test/tint/builtins/gen/literal/countOneBits/fd88b2.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/countOneBits/fd88b2.wgsl.expected.ir.dxc.hlsl
index 0ba40c6..9f95443 100644
--- a/test/tint/builtins/gen/literal/countOneBits/fd88b2.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/countOneBits/fd88b2.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,42 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  int prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation int VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+int countOneBits_fd88b2() {
+  int res = 1;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store(0u, asuint(countOneBits_fd88b2()));
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store(0u, asuint(countOneBits_fd88b2()));
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = countOneBits_fd88b2();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
diff --git a/test/tint/builtins/gen/literal/countOneBits/fd88b2.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/countOneBits/fd88b2.wgsl.expected.ir.fxc.hlsl
index 0ba40c6..9f95443 100644
--- a/test/tint/builtins/gen/literal/countOneBits/fd88b2.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/countOneBits/fd88b2.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,42 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  int prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation int VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+int countOneBits_fd88b2() {
+  int res = 1;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store(0u, asuint(countOneBits_fd88b2()));
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store(0u, asuint(countOneBits_fd88b2()));
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = countOneBits_fd88b2();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
diff --git a/test/tint/builtins/gen/literal/countTrailingZeros/1ad138.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/countTrailingZeros/1ad138.wgsl.expected.ir.dxc.hlsl
index 0ba40c6..6bc9152 100644
--- a/test/tint/builtins/gen/literal/countTrailingZeros/1ad138.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/countTrailingZeros/1ad138.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,42 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  uint2 prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation uint2 VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+uint2 countTrailingZeros_1ad138() {
+  uint2 res = (0u).xx;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store2(0u, countTrailingZeros_1ad138());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store2(0u, countTrailingZeros_1ad138());
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = countTrailingZeros_1ad138();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
diff --git a/test/tint/builtins/gen/literal/countTrailingZeros/1ad138.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/countTrailingZeros/1ad138.wgsl.expected.ir.fxc.hlsl
index 0ba40c6..6bc9152 100644
--- a/test/tint/builtins/gen/literal/countTrailingZeros/1ad138.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/countTrailingZeros/1ad138.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,42 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  uint2 prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation uint2 VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+uint2 countTrailingZeros_1ad138() {
+  uint2 res = (0u).xx;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store2(0u, countTrailingZeros_1ad138());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store2(0u, countTrailingZeros_1ad138());
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = countTrailingZeros_1ad138();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
diff --git a/test/tint/builtins/gen/literal/countTrailingZeros/1dc84a.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/countTrailingZeros/1dc84a.wgsl.expected.ir.dxc.hlsl
index 0ba40c6..921d525 100644
--- a/test/tint/builtins/gen/literal/countTrailingZeros/1dc84a.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/countTrailingZeros/1dc84a.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,42 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  int4 prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation int4 VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+int4 countTrailingZeros_1dc84a() {
+  int4 res = (0).xxxx;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store4(0u, asuint(countTrailingZeros_1dc84a()));
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store4(0u, asuint(countTrailingZeros_1dc84a()));
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = countTrailingZeros_1dc84a();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
diff --git a/test/tint/builtins/gen/literal/countTrailingZeros/1dc84a.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/countTrailingZeros/1dc84a.wgsl.expected.ir.fxc.hlsl
index 0ba40c6..921d525 100644
--- a/test/tint/builtins/gen/literal/countTrailingZeros/1dc84a.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/countTrailingZeros/1dc84a.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,42 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  int4 prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation int4 VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+int4 countTrailingZeros_1dc84a() {
+  int4 res = (0).xxxx;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store4(0u, asuint(countTrailingZeros_1dc84a()));
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store4(0u, asuint(countTrailingZeros_1dc84a()));
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = countTrailingZeros_1dc84a();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
diff --git a/test/tint/builtins/gen/literal/countTrailingZeros/21e394.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/countTrailingZeros/21e394.wgsl.expected.ir.dxc.hlsl
index 0ba40c6..0266965 100644
--- a/test/tint/builtins/gen/literal/countTrailingZeros/21e394.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/countTrailingZeros/21e394.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,42 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  uint prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation uint VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+uint countTrailingZeros_21e394() {
+  uint res = 0u;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store(0u, countTrailingZeros_21e394());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store(0u, countTrailingZeros_21e394());
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = countTrailingZeros_21e394();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
diff --git a/test/tint/builtins/gen/literal/countTrailingZeros/21e394.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/countTrailingZeros/21e394.wgsl.expected.ir.fxc.hlsl
index 0ba40c6..0266965 100644
--- a/test/tint/builtins/gen/literal/countTrailingZeros/21e394.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/countTrailingZeros/21e394.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,42 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  uint prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation uint VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+uint countTrailingZeros_21e394() {
+  uint res = 0u;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store(0u, countTrailingZeros_21e394());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store(0u, countTrailingZeros_21e394());
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = countTrailingZeros_21e394();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
diff --git a/test/tint/builtins/gen/literal/countTrailingZeros/327c37.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/countTrailingZeros/327c37.wgsl.expected.ir.dxc.hlsl
index 0ba40c6..88524d8 100644
--- a/test/tint/builtins/gen/literal/countTrailingZeros/327c37.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/countTrailingZeros/327c37.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,42 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  int2 prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation int2 VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+int2 countTrailingZeros_327c37() {
+  int2 res = (0).xx;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store2(0u, asuint(countTrailingZeros_327c37()));
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store2(0u, asuint(countTrailingZeros_327c37()));
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = countTrailingZeros_327c37();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
diff --git a/test/tint/builtins/gen/literal/countTrailingZeros/327c37.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/countTrailingZeros/327c37.wgsl.expected.ir.fxc.hlsl
index 0ba40c6..88524d8 100644
--- a/test/tint/builtins/gen/literal/countTrailingZeros/327c37.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/countTrailingZeros/327c37.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,42 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  int2 prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation int2 VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+int2 countTrailingZeros_327c37() {
+  int2 res = (0).xx;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store2(0u, asuint(countTrailingZeros_327c37()));
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store2(0u, asuint(countTrailingZeros_327c37()));
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = countTrailingZeros_327c37();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
diff --git a/test/tint/builtins/gen/literal/countTrailingZeros/42fed6.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/countTrailingZeros/42fed6.wgsl.expected.ir.dxc.hlsl
index 0ba40c6..6f560a5 100644
--- a/test/tint/builtins/gen/literal/countTrailingZeros/42fed6.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/countTrailingZeros/42fed6.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,42 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  int prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation int VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+int countTrailingZeros_42fed6() {
+  int res = 0;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store(0u, asuint(countTrailingZeros_42fed6()));
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store(0u, asuint(countTrailingZeros_42fed6()));
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = countTrailingZeros_42fed6();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
diff --git a/test/tint/builtins/gen/literal/countTrailingZeros/42fed6.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/countTrailingZeros/42fed6.wgsl.expected.ir.fxc.hlsl
index 0ba40c6..6f560a5 100644
--- a/test/tint/builtins/gen/literal/countTrailingZeros/42fed6.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/countTrailingZeros/42fed6.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,42 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  int prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation int VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+int countTrailingZeros_42fed6() {
+  int res = 0;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store(0u, asuint(countTrailingZeros_42fed6()));
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store(0u, asuint(countTrailingZeros_42fed6()));
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = countTrailingZeros_42fed6();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
diff --git a/test/tint/builtins/gen/literal/countTrailingZeros/8ed26f.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/countTrailingZeros/8ed26f.wgsl.expected.ir.dxc.hlsl
index 0ba40c6..8f63674 100644
--- a/test/tint/builtins/gen/literal/countTrailingZeros/8ed26f.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/countTrailingZeros/8ed26f.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,42 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  uint3 prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation uint3 VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+uint3 countTrailingZeros_8ed26f() {
+  uint3 res = (0u).xxx;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store3(0u, countTrailingZeros_8ed26f());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store3(0u, countTrailingZeros_8ed26f());
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = countTrailingZeros_8ed26f();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
diff --git a/test/tint/builtins/gen/literal/countTrailingZeros/8ed26f.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/countTrailingZeros/8ed26f.wgsl.expected.ir.fxc.hlsl
index 0ba40c6..8f63674 100644
--- a/test/tint/builtins/gen/literal/countTrailingZeros/8ed26f.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/countTrailingZeros/8ed26f.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,42 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  uint3 prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation uint3 VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+uint3 countTrailingZeros_8ed26f() {
+  uint3 res = (0u).xxx;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store3(0u, countTrailingZeros_8ed26f());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store3(0u, countTrailingZeros_8ed26f());
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = countTrailingZeros_8ed26f();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
diff --git a/test/tint/builtins/gen/literal/countTrailingZeros/acfacb.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/countTrailingZeros/acfacb.wgsl.expected.ir.dxc.hlsl
index 0ba40c6..527327b 100644
--- a/test/tint/builtins/gen/literal/countTrailingZeros/acfacb.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/countTrailingZeros/acfacb.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,42 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  int3 prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation int3 VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+int3 countTrailingZeros_acfacb() {
+  int3 res = (0).xxx;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store3(0u, asuint(countTrailingZeros_acfacb()));
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store3(0u, asuint(countTrailingZeros_acfacb()));
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = countTrailingZeros_acfacb();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
diff --git a/test/tint/builtins/gen/literal/countTrailingZeros/acfacb.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/countTrailingZeros/acfacb.wgsl.expected.ir.fxc.hlsl
index 0ba40c6..527327b 100644
--- a/test/tint/builtins/gen/literal/countTrailingZeros/acfacb.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/countTrailingZeros/acfacb.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,42 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  int3 prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation int3 VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+int3 countTrailingZeros_acfacb() {
+  int3 res = (0).xxx;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store3(0u, asuint(countTrailingZeros_acfacb()));
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store3(0u, asuint(countTrailingZeros_acfacb()));
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = countTrailingZeros_acfacb();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
diff --git a/test/tint/builtins/gen/literal/countTrailingZeros/d2b4a0.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/countTrailingZeros/d2b4a0.wgsl.expected.ir.dxc.hlsl
index 0ba40c6..6d466ca 100644
--- a/test/tint/builtins/gen/literal/countTrailingZeros/d2b4a0.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/countTrailingZeros/d2b4a0.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,42 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  uint4 prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation uint4 VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+uint4 countTrailingZeros_d2b4a0() {
+  uint4 res = (0u).xxxx;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store4(0u, countTrailingZeros_d2b4a0());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store4(0u, countTrailingZeros_d2b4a0());
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = countTrailingZeros_d2b4a0();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
diff --git a/test/tint/builtins/gen/literal/countTrailingZeros/d2b4a0.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/countTrailingZeros/d2b4a0.wgsl.expected.ir.fxc.hlsl
index 0ba40c6..6d466ca 100644
--- a/test/tint/builtins/gen/literal/countTrailingZeros/d2b4a0.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/countTrailingZeros/d2b4a0.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,42 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  uint4 prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation uint4 VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+uint4 countTrailingZeros_d2b4a0() {
+  uint4 res = (0u).xxxx;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store4(0u, countTrailingZeros_d2b4a0());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store4(0u, countTrailingZeros_d2b4a0());
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = countTrailingZeros_d2b4a0();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
diff --git a/test/tint/builtins/gen/literal/cross/041cb0.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/cross/041cb0.wgsl.expected.ir.dxc.hlsl
index 0ba40c6..b7db020 100644
--- a/test/tint/builtins/gen/literal/cross/041cb0.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/cross/041cb0.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,42 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  float3 prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation float3 VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+float3 cross_041cb0() {
+  float3 res = (0.0f).xxx;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store3(0u, asuint(cross_041cb0()));
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store3(0u, asuint(cross_041cb0()));
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = cross_041cb0();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
diff --git a/test/tint/builtins/gen/literal/cross/041cb0.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/cross/041cb0.wgsl.expected.ir.fxc.hlsl
index 0ba40c6..b7db020 100644
--- a/test/tint/builtins/gen/literal/cross/041cb0.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/cross/041cb0.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,42 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  float3 prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation float3 VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+float3 cross_041cb0() {
+  float3 res = (0.0f).xxx;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store3(0u, asuint(cross_041cb0()));
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store3(0u, asuint(cross_041cb0()));
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = cross_041cb0();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
diff --git a/test/tint/builtins/gen/literal/cross/1d7933.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/cross/1d7933.wgsl.expected.ir.dxc.hlsl
index 0ba40c6..d7f50f2 100644
--- a/test/tint/builtins/gen/literal/cross/1d7933.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/cross/1d7933.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,36 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+void cross_1d7933() {
+  float3 res = (0.0f).xxx;
+}
+
+void fragment_main() {
+  cross_1d7933();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  cross_1d7933();
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  cross_1d7933();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  vertex_main_outputs v_2 = {v_1.pos};
+  return v_2;
+}
+
diff --git a/test/tint/builtins/gen/literal/cross/1d7933.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/cross/1d7933.wgsl.expected.ir.fxc.hlsl
index 0ba40c6..d7f50f2 100644
--- a/test/tint/builtins/gen/literal/cross/1d7933.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/cross/1d7933.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,36 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+void cross_1d7933() {
+  float3 res = (0.0f).xxx;
+}
+
+void fragment_main() {
+  cross_1d7933();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  cross_1d7933();
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  cross_1d7933();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  vertex_main_outputs v_2 = {v_1.pos};
+  return v_2;
+}
+
diff --git a/test/tint/builtins/gen/literal/cross/9857cb.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/cross/9857cb.wgsl.expected.ir.dxc.hlsl
index 0ba40c6..65ea4be 100644
--- a/test/tint/builtins/gen/literal/cross/9857cb.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/cross/9857cb.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,42 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  vector<float16_t, 3> prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation vector<float16_t, 3> VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+vector<float16_t, 3> cross_9857cb() {
+  vector<float16_t, 3> res = (float16_t(0.0h)).xxx;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store<vector<float16_t, 3> >(0u, cross_9857cb());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store<vector<float16_t, 3> >(0u, cross_9857cb());
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = cross_9857cb();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
diff --git a/test/tint/builtins/gen/literal/cross/9857cb.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/cross/9857cb.wgsl.expected.ir.fxc.hlsl
index 0ba40c6..a78b175 100644
--- a/test/tint/builtins/gen/literal/cross/9857cb.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/cross/9857cb.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,47 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct VertexOutput {
+  float4 pos;
+  vector<float16_t, 3> prevent_dce;
+};
+
+struct vertex_main_outputs {
+  nointerpolation vector<float16_t, 3> VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+vector<float16_t, 3> cross_9857cb() {
+  vector<float16_t, 3> res = (float16_t(0.0h)).xxx;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store<vector<float16_t, 3> >(0u, cross_9857cb());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store<vector<float16_t, 3> >(0u, cross_9857cb());
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = cross_9857cb();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
+FXC validation failure:
+c:\src\dawn\Shader@0x0000019C844BCC30(3,10-18): error X3000: syntax error: unexpected token 'float16_t'
+
diff --git a/test/tint/builtins/gen/literal/degrees/0d170c.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/degrees/0d170c.wgsl.expected.ir.dxc.hlsl
index 0ba40c6..f3f5d33 100644
--- a/test/tint/builtins/gen/literal/degrees/0d170c.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/degrees/0d170c.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,42 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  float4 prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation float4 VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+float4 degrees_0d170c() {
+  float4 res = (57.2957763671875f).xxxx;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store4(0u, asuint(degrees_0d170c()));
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store4(0u, asuint(degrees_0d170c()));
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = degrees_0d170c();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
diff --git a/test/tint/builtins/gen/literal/degrees/0d170c.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/degrees/0d170c.wgsl.expected.ir.fxc.hlsl
index 0ba40c6..f3f5d33 100644
--- a/test/tint/builtins/gen/literal/degrees/0d170c.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/degrees/0d170c.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,42 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  float4 prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation float4 VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+float4 degrees_0d170c() {
+  float4 res = (57.2957763671875f).xxxx;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store4(0u, asuint(degrees_0d170c()));
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store4(0u, asuint(degrees_0d170c()));
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = degrees_0d170c();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
diff --git a/test/tint/builtins/gen/literal/degrees/1ad5df.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/degrees/1ad5df.wgsl.expected.ir.dxc.hlsl
index 0ba40c6..5e4c900 100644
--- a/test/tint/builtins/gen/literal/degrees/1ad5df.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/degrees/1ad5df.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,42 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  float2 prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation float2 VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+float2 degrees_1ad5df() {
+  float2 res = (57.2957763671875f).xx;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store2(0u, asuint(degrees_1ad5df()));
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store2(0u, asuint(degrees_1ad5df()));
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = degrees_1ad5df();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
diff --git a/test/tint/builtins/gen/literal/degrees/1ad5df.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/degrees/1ad5df.wgsl.expected.ir.fxc.hlsl
index 0ba40c6..5e4c900 100644
--- a/test/tint/builtins/gen/literal/degrees/1ad5df.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/degrees/1ad5df.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,42 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  float2 prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation float2 VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+float2 degrees_1ad5df() {
+  float2 res = (57.2957763671875f).xx;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store2(0u, asuint(degrees_1ad5df()));
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store2(0u, asuint(degrees_1ad5df()));
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = degrees_1ad5df();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
diff --git a/test/tint/builtins/gen/literal/degrees/2af623.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/degrees/2af623.wgsl.expected.ir.dxc.hlsl
index 0ba40c6..efb610a 100644
--- a/test/tint/builtins/gen/literal/degrees/2af623.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/degrees/2af623.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,42 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  float3 prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation float3 VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+float3 degrees_2af623() {
+  float3 res = (57.2957763671875f).xxx;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store3(0u, asuint(degrees_2af623()));
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store3(0u, asuint(degrees_2af623()));
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = degrees_2af623();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
diff --git a/test/tint/builtins/gen/literal/degrees/2af623.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/degrees/2af623.wgsl.expected.ir.fxc.hlsl
index 0ba40c6..efb610a 100644
--- a/test/tint/builtins/gen/literal/degrees/2af623.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/degrees/2af623.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,42 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  float3 prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation float3 VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+float3 degrees_2af623() {
+  float3 res = (57.2957763671875f).xxx;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store3(0u, asuint(degrees_2af623()));
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store3(0u, asuint(degrees_2af623()));
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = degrees_2af623();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
diff --git a/test/tint/builtins/gen/literal/degrees/3055d3.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/degrees/3055d3.wgsl.expected.ir.dxc.hlsl
index 0ba40c6..1d4a46a 100644
--- a/test/tint/builtins/gen/literal/degrees/3055d3.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/degrees/3055d3.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,42 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  vector<float16_t, 4> prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation vector<float16_t, 4> VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+vector<float16_t, 4> degrees_3055d3() {
+  vector<float16_t, 4> res = (float16_t(57.3125h)).xxxx;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store<vector<float16_t, 4> >(0u, degrees_3055d3());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store<vector<float16_t, 4> >(0u, degrees_3055d3());
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = degrees_3055d3();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
diff --git a/test/tint/builtins/gen/literal/degrees/3055d3.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/degrees/3055d3.wgsl.expected.ir.fxc.hlsl
index 0ba40c6..2fff7a5 100644
--- a/test/tint/builtins/gen/literal/degrees/3055d3.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/degrees/3055d3.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,47 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct VertexOutput {
+  float4 pos;
+  vector<float16_t, 4> prevent_dce;
+};
+
+struct vertex_main_outputs {
+  nointerpolation vector<float16_t, 4> VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+vector<float16_t, 4> degrees_3055d3() {
+  vector<float16_t, 4> res = (float16_t(57.3125h)).xxxx;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store<vector<float16_t, 4> >(0u, degrees_3055d3());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store<vector<float16_t, 4> >(0u, degrees_3055d3());
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = degrees_3055d3();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
+FXC validation failure:
+c:\src\dawn\Shader@0x000001F3234ADA70(3,10-18): error X3000: syntax error: unexpected token 'float16_t'
+
diff --git a/test/tint/builtins/gen/literal/degrees/51f705.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/degrees/51f705.wgsl.expected.ir.dxc.hlsl
index 0ba40c6..f2e2894 100644
--- a/test/tint/builtins/gen/literal/degrees/51f705.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/degrees/51f705.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,42 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  float prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation float VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+float degrees_51f705() {
+  float res = 57.2957763671875f;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store(0u, asuint(degrees_51f705()));
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store(0u, asuint(degrees_51f705()));
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = degrees_51f705();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
diff --git a/test/tint/builtins/gen/literal/degrees/51f705.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/degrees/51f705.wgsl.expected.ir.fxc.hlsl
index 0ba40c6..f2e2894 100644
--- a/test/tint/builtins/gen/literal/degrees/51f705.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/degrees/51f705.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,42 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  float prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation float VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+float degrees_51f705() {
+  float res = 57.2957763671875f;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store(0u, asuint(degrees_51f705()));
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store(0u, asuint(degrees_51f705()));
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = degrees_51f705();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
diff --git a/test/tint/builtins/gen/literal/degrees/5e9805.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/degrees/5e9805.wgsl.expected.ir.dxc.hlsl
index 0ba40c6..84341ff 100644
--- a/test/tint/builtins/gen/literal/degrees/5e9805.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/degrees/5e9805.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,42 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  float16_t prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation float16_t VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+float16_t degrees_5e9805() {
+  float16_t res = float16_t(57.3125h);
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store<float16_t>(0u, degrees_5e9805());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store<float16_t>(0u, degrees_5e9805());
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = degrees_5e9805();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
diff --git a/test/tint/builtins/gen/literal/degrees/5e9805.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/degrees/5e9805.wgsl.expected.ir.fxc.hlsl
index 0ba40c6..0f21a08 100644
--- a/test/tint/builtins/gen/literal/degrees/5e9805.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/degrees/5e9805.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,47 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct VertexOutput {
+  float4 pos;
+  float16_t prevent_dce;
+};
+
+struct vertex_main_outputs {
+  nointerpolation float16_t VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+float16_t degrees_5e9805() {
+  float16_t res = float16_t(57.3125h);
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store<float16_t>(0u, degrees_5e9805());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store<float16_t>(0u, degrees_5e9805());
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = degrees_5e9805();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
+FXC validation failure:
+c:\src\dawn\Shader@0x00000200B35159B0(3,3-11): error X3000: unrecognized identifier 'float16_t'
+
diff --git a/test/tint/builtins/gen/literal/degrees/810467.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/degrees/810467.wgsl.expected.ir.dxc.hlsl
index 0ba40c6..560d187 100644
--- a/test/tint/builtins/gen/literal/degrees/810467.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/degrees/810467.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,36 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+void degrees_810467() {
+  float2 res = (57.295780181884765625f).xx;
+}
+
+void fragment_main() {
+  degrees_810467();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  degrees_810467();
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  degrees_810467();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  vertex_main_outputs v_2 = {v_1.pos};
+  return v_2;
+}
+
diff --git a/test/tint/builtins/gen/literal/degrees/810467.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/degrees/810467.wgsl.expected.ir.fxc.hlsl
index 0ba40c6..560d187 100644
--- a/test/tint/builtins/gen/literal/degrees/810467.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/degrees/810467.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,36 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+void degrees_810467() {
+  float2 res = (57.295780181884765625f).xx;
+}
+
+void fragment_main() {
+  degrees_810467();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  degrees_810467();
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  degrees_810467();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  vertex_main_outputs v_2 = {v_1.pos};
+  return v_2;
+}
+
diff --git a/test/tint/builtins/gen/literal/degrees/c0880c.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/degrees/c0880c.wgsl.expected.ir.dxc.hlsl
index 0ba40c6..7054cba 100644
--- a/test/tint/builtins/gen/literal/degrees/c0880c.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/degrees/c0880c.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,36 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+void degrees_c0880c() {
+  float3 res = (57.295780181884765625f).xxx;
+}
+
+void fragment_main() {
+  degrees_c0880c();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  degrees_c0880c();
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  degrees_c0880c();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  vertex_main_outputs v_2 = {v_1.pos};
+  return v_2;
+}
+
diff --git a/test/tint/builtins/gen/literal/degrees/c0880c.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/degrees/c0880c.wgsl.expected.ir.fxc.hlsl
index 0ba40c6..7054cba 100644
--- a/test/tint/builtins/gen/literal/degrees/c0880c.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/degrees/c0880c.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,36 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+void degrees_c0880c() {
+  float3 res = (57.295780181884765625f).xxx;
+}
+
+void fragment_main() {
+  degrees_c0880c();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  degrees_c0880c();
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  degrees_c0880c();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  vertex_main_outputs v_2 = {v_1.pos};
+  return v_2;
+}
+
diff --git a/test/tint/builtins/gen/literal/degrees/d43a49.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/degrees/d43a49.wgsl.expected.ir.dxc.hlsl
index 0ba40c6..96e6d10 100644
--- a/test/tint/builtins/gen/literal/degrees/d43a49.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/degrees/d43a49.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,36 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+void degrees_d43a49() {
+  float4 res = (57.295780181884765625f).xxxx;
+}
+
+void fragment_main() {
+  degrees_d43a49();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  degrees_d43a49();
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  degrees_d43a49();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  vertex_main_outputs v_2 = {v_1.pos};
+  return v_2;
+}
+
diff --git a/test/tint/builtins/gen/literal/degrees/d43a49.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/degrees/d43a49.wgsl.expected.ir.fxc.hlsl
index 0ba40c6..96e6d10 100644
--- a/test/tint/builtins/gen/literal/degrees/d43a49.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/degrees/d43a49.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,36 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+void degrees_d43a49() {
+  float4 res = (57.295780181884765625f).xxxx;
+}
+
+void fragment_main() {
+  degrees_d43a49();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  degrees_d43a49();
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  degrees_d43a49();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  vertex_main_outputs v_2 = {v_1.pos};
+  return v_2;
+}
+
diff --git a/test/tint/builtins/gen/literal/degrees/dfe8f4.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/degrees/dfe8f4.wgsl.expected.ir.dxc.hlsl
index 0ba40c6..11a0d5f 100644
--- a/test/tint/builtins/gen/literal/degrees/dfe8f4.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/degrees/dfe8f4.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,42 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  vector<float16_t, 3> prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation vector<float16_t, 3> VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+vector<float16_t, 3> degrees_dfe8f4() {
+  vector<float16_t, 3> res = (float16_t(57.3125h)).xxx;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store<vector<float16_t, 3> >(0u, degrees_dfe8f4());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store<vector<float16_t, 3> >(0u, degrees_dfe8f4());
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = degrees_dfe8f4();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
diff --git a/test/tint/builtins/gen/literal/degrees/dfe8f4.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/degrees/dfe8f4.wgsl.expected.ir.fxc.hlsl
index 0ba40c6..5c3be81 100644
--- a/test/tint/builtins/gen/literal/degrees/dfe8f4.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/degrees/dfe8f4.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,47 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct VertexOutput {
+  float4 pos;
+  vector<float16_t, 3> prevent_dce;
+};
+
+struct vertex_main_outputs {
+  nointerpolation vector<float16_t, 3> VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+vector<float16_t, 3> degrees_dfe8f4() {
+  vector<float16_t, 3> res = (float16_t(57.3125h)).xxx;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store<vector<float16_t, 3> >(0u, degrees_dfe8f4());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store<vector<float16_t, 3> >(0u, degrees_dfe8f4());
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = degrees_dfe8f4();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
+FXC validation failure:
+c:\src\dawn\Shader@0x000002215E7E4C00(3,10-18): error X3000: syntax error: unexpected token 'float16_t'
+
diff --git a/test/tint/builtins/gen/literal/degrees/f59715.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/degrees/f59715.wgsl.expected.ir.dxc.hlsl
index 0ba40c6..2246186 100644
--- a/test/tint/builtins/gen/literal/degrees/f59715.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/degrees/f59715.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,42 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  vector<float16_t, 2> prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation vector<float16_t, 2> VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+vector<float16_t, 2> degrees_f59715() {
+  vector<float16_t, 2> res = (float16_t(57.3125h)).xx;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store<vector<float16_t, 2> >(0u, degrees_f59715());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store<vector<float16_t, 2> >(0u, degrees_f59715());
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = degrees_f59715();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
diff --git a/test/tint/builtins/gen/literal/degrees/f59715.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/degrees/f59715.wgsl.expected.ir.fxc.hlsl
index 0ba40c6..bec8dac 100644
--- a/test/tint/builtins/gen/literal/degrees/f59715.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/degrees/f59715.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,47 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct VertexOutput {
+  float4 pos;
+  vector<float16_t, 2> prevent_dce;
+};
+
+struct vertex_main_outputs {
+  nointerpolation vector<float16_t, 2> VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+vector<float16_t, 2> degrees_f59715() {
+  vector<float16_t, 2> res = (float16_t(57.3125h)).xx;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store<vector<float16_t, 2> >(0u, degrees_f59715());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store<vector<float16_t, 2> >(0u, degrees_f59715());
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = degrees_f59715();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
+FXC validation failure:
+c:\src\dawn\Shader@0x00000120CEBBE250(3,10-18): error X3000: syntax error: unexpected token 'float16_t'
+
diff --git a/test/tint/builtins/gen/literal/degrees/fafa7e.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/degrees/fafa7e.wgsl.expected.ir.dxc.hlsl
index 0ba40c6..b7d3e94 100644
--- a/test/tint/builtins/gen/literal/degrees/fafa7e.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/degrees/fafa7e.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,36 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+void degrees_fafa7e() {
+  float res = 57.295780181884765625f;
+}
+
+void fragment_main() {
+  degrees_fafa7e();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  degrees_fafa7e();
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  degrees_fafa7e();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  vertex_main_outputs v_2 = {v_1.pos};
+  return v_2;
+}
+
diff --git a/test/tint/builtins/gen/literal/degrees/fafa7e.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/degrees/fafa7e.wgsl.expected.ir.fxc.hlsl
index 0ba40c6..b7d3e94 100644
--- a/test/tint/builtins/gen/literal/degrees/fafa7e.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/degrees/fafa7e.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,36 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+void degrees_fafa7e() {
+  float res = 57.295780181884765625f;
+}
+
+void fragment_main() {
+  degrees_fafa7e();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  degrees_fafa7e();
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  degrees_fafa7e();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  vertex_main_outputs v_2 = {v_1.pos};
+  return v_2;
+}
+
diff --git a/test/tint/builtins/gen/literal/determinant/1bf6e7.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/determinant/1bf6e7.wgsl.expected.ir.dxc.hlsl
index 0ba40c6..d6cdb04 100644
--- a/test/tint/builtins/gen/literal/determinant/1bf6e7.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/determinant/1bf6e7.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,36 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+void determinant_1bf6e7() {
+  float res = 0.0f;
+}
+
+void fragment_main() {
+  determinant_1bf6e7();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  determinant_1bf6e7();
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  determinant_1bf6e7();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  vertex_main_outputs v_2 = {v_1.pos};
+  return v_2;
+}
+
diff --git a/test/tint/builtins/gen/literal/determinant/1bf6e7.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/determinant/1bf6e7.wgsl.expected.ir.fxc.hlsl
index 0ba40c6..d6cdb04 100644
--- a/test/tint/builtins/gen/literal/determinant/1bf6e7.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/determinant/1bf6e7.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,36 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+void determinant_1bf6e7() {
+  float res = 0.0f;
+}
+
+void fragment_main() {
+  determinant_1bf6e7();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  determinant_1bf6e7();
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  determinant_1bf6e7();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  vertex_main_outputs v_2 = {v_1.pos};
+  return v_2;
+}
+
diff --git a/test/tint/builtins/gen/literal/determinant/2b62ba.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/determinant/2b62ba.wgsl.expected.ir.dxc.hlsl
index 0ba40c6..70bad46 100644
--- a/test/tint/builtins/gen/literal/determinant/2b62ba.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/determinant/2b62ba.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,42 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  float prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation float VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+float determinant_2b62ba() {
+  float res = 0.0f;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store(0u, asuint(determinant_2b62ba()));
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store(0u, asuint(determinant_2b62ba()));
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = determinant_2b62ba();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
diff --git a/test/tint/builtins/gen/literal/determinant/2b62ba.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/determinant/2b62ba.wgsl.expected.ir.fxc.hlsl
index 0ba40c6..70bad46 100644
--- a/test/tint/builtins/gen/literal/determinant/2b62ba.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/determinant/2b62ba.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,42 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  float prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation float VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+float determinant_2b62ba() {
+  float res = 0.0f;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store(0u, asuint(determinant_2b62ba()));
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store(0u, asuint(determinant_2b62ba()));
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = determinant_2b62ba();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
diff --git a/test/tint/builtins/gen/literal/determinant/32bfde.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/determinant/32bfde.wgsl.expected.ir.dxc.hlsl
index 0ba40c6..16ddde0 100644
--- a/test/tint/builtins/gen/literal/determinant/32bfde.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/determinant/32bfde.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,42 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  float16_t prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation float16_t VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+float16_t determinant_32bfde() {
+  float16_t res = float16_t(0.0h);
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store<float16_t>(0u, determinant_32bfde());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store<float16_t>(0u, determinant_32bfde());
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = determinant_32bfde();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
diff --git a/test/tint/builtins/gen/literal/determinant/32bfde.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/determinant/32bfde.wgsl.expected.ir.fxc.hlsl
index 0ba40c6..ad12c92 100644
--- a/test/tint/builtins/gen/literal/determinant/32bfde.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/determinant/32bfde.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,47 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct VertexOutput {
+  float4 pos;
+  float16_t prevent_dce;
+};
+
+struct vertex_main_outputs {
+  nointerpolation float16_t VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+float16_t determinant_32bfde() {
+  float16_t res = float16_t(0.0h);
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store<float16_t>(0u, determinant_32bfde());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store<float16_t>(0u, determinant_32bfde());
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = determinant_32bfde();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
+FXC validation failure:
+c:\src\dawn\Shader@0x000001F7FE4857A0(3,3-11): error X3000: unrecognized identifier 'float16_t'
+
diff --git a/test/tint/builtins/gen/literal/determinant/a0a87c.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/determinant/a0a87c.wgsl.expected.ir.dxc.hlsl
index 0ba40c6..5804508 100644
--- a/test/tint/builtins/gen/literal/determinant/a0a87c.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/determinant/a0a87c.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,42 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  float prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation float VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+float determinant_a0a87c() {
+  float res = 0.0f;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store(0u, asuint(determinant_a0a87c()));
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store(0u, asuint(determinant_a0a87c()));
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = determinant_a0a87c();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
diff --git a/test/tint/builtins/gen/literal/determinant/a0a87c.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/determinant/a0a87c.wgsl.expected.ir.fxc.hlsl
index 0ba40c6..5804508 100644
--- a/test/tint/builtins/gen/literal/determinant/a0a87c.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/determinant/a0a87c.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,42 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  float prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation float VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+float determinant_a0a87c() {
+  float res = 0.0f;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store(0u, asuint(determinant_a0a87c()));
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store(0u, asuint(determinant_a0a87c()));
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = determinant_a0a87c();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
diff --git a/test/tint/builtins/gen/literal/determinant/c8251d.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/determinant/c8251d.wgsl.expected.ir.dxc.hlsl
index 0ba40c6..33318b2 100644
--- a/test/tint/builtins/gen/literal/determinant/c8251d.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/determinant/c8251d.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,36 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+void determinant_c8251d() {
+  float res = 0.0f;
+}
+
+void fragment_main() {
+  determinant_c8251d();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  determinant_c8251d();
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  determinant_c8251d();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  vertex_main_outputs v_2 = {v_1.pos};
+  return v_2;
+}
+
diff --git a/test/tint/builtins/gen/literal/determinant/c8251d.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/determinant/c8251d.wgsl.expected.ir.fxc.hlsl
index 0ba40c6..33318b2 100644
--- a/test/tint/builtins/gen/literal/determinant/c8251d.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/determinant/c8251d.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,36 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+void determinant_c8251d() {
+  float res = 0.0f;
+}
+
+void fragment_main() {
+  determinant_c8251d();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  determinant_c8251d();
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  determinant_c8251d();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  vertex_main_outputs v_2 = {v_1.pos};
+  return v_2;
+}
+
diff --git a/test/tint/builtins/gen/literal/determinant/cefdf3.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/determinant/cefdf3.wgsl.expected.ir.dxc.hlsl
index 0ba40c6..93b26e9 100644
--- a/test/tint/builtins/gen/literal/determinant/cefdf3.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/determinant/cefdf3.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,36 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+void determinant_cefdf3() {
+  float res = 0.0f;
+}
+
+void fragment_main() {
+  determinant_cefdf3();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  determinant_cefdf3();
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  determinant_cefdf3();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  vertex_main_outputs v_2 = {v_1.pos};
+  return v_2;
+}
+
diff --git a/test/tint/builtins/gen/literal/determinant/cefdf3.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/determinant/cefdf3.wgsl.expected.ir.fxc.hlsl
index 0ba40c6..93b26e9 100644
--- a/test/tint/builtins/gen/literal/determinant/cefdf3.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/determinant/cefdf3.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,36 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+void determinant_cefdf3() {
+  float res = 0.0f;
+}
+
+void fragment_main() {
+  determinant_cefdf3();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  determinant_cefdf3();
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  determinant_cefdf3();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  vertex_main_outputs v_2 = {v_1.pos};
+  return v_2;
+}
+
diff --git a/test/tint/builtins/gen/literal/determinant/d7c86f.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/determinant/d7c86f.wgsl.expected.ir.dxc.hlsl
index 0ba40c6..82a6e1f 100644
--- a/test/tint/builtins/gen/literal/determinant/d7c86f.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/determinant/d7c86f.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,42 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  float16_t prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation float16_t VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+float16_t determinant_d7c86f() {
+  float16_t res = float16_t(0.0h);
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store<float16_t>(0u, determinant_d7c86f());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store<float16_t>(0u, determinant_d7c86f());
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = determinant_d7c86f();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
diff --git a/test/tint/builtins/gen/literal/determinant/d7c86f.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/determinant/d7c86f.wgsl.expected.ir.fxc.hlsl
index 0ba40c6..333bf26 100644
--- a/test/tint/builtins/gen/literal/determinant/d7c86f.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/determinant/d7c86f.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,47 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct VertexOutput {
+  float4 pos;
+  float16_t prevent_dce;
+};
+
+struct vertex_main_outputs {
+  nointerpolation float16_t VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+float16_t determinant_d7c86f() {
+  float16_t res = float16_t(0.0h);
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store<float16_t>(0u, determinant_d7c86f());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store<float16_t>(0u, determinant_d7c86f());
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = determinant_d7c86f();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
+FXC validation failure:
+c:\src\dawn\Shader@0x00000140A2FE66F0(3,3-11): error X3000: unrecognized identifier 'float16_t'
+
diff --git a/test/tint/builtins/gen/literal/determinant/e19305.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/determinant/e19305.wgsl.expected.ir.dxc.hlsl
index 0ba40c6..e6ec53a 100644
--- a/test/tint/builtins/gen/literal/determinant/e19305.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/determinant/e19305.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,42 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  float prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation float VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+float determinant_e19305() {
+  float res = 0.0f;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store(0u, asuint(determinant_e19305()));
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store(0u, asuint(determinant_e19305()));
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = determinant_e19305();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
diff --git a/test/tint/builtins/gen/literal/determinant/e19305.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/determinant/e19305.wgsl.expected.ir.fxc.hlsl
index 0ba40c6..e6ec53a 100644
--- a/test/tint/builtins/gen/literal/determinant/e19305.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/determinant/e19305.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,42 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  float prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation float VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+float determinant_e19305() {
+  float res = 0.0f;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store(0u, asuint(determinant_e19305()));
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store(0u, asuint(determinant_e19305()));
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = determinant_e19305();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
diff --git a/test/tint/builtins/gen/literal/determinant/fc12a5.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/determinant/fc12a5.wgsl.expected.ir.dxc.hlsl
index 0ba40c6..92c7637 100644
--- a/test/tint/builtins/gen/literal/determinant/fc12a5.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/determinant/fc12a5.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,42 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  float16_t prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation float16_t VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+float16_t determinant_fc12a5() {
+  float16_t res = float16_t(0.0h);
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store<float16_t>(0u, determinant_fc12a5());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store<float16_t>(0u, determinant_fc12a5());
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = determinant_fc12a5();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
diff --git a/test/tint/builtins/gen/literal/determinant/fc12a5.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/determinant/fc12a5.wgsl.expected.ir.fxc.hlsl
index 0ba40c6..700f82d 100644
--- a/test/tint/builtins/gen/literal/determinant/fc12a5.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/determinant/fc12a5.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,47 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct VertexOutput {
+  float4 pos;
+  float16_t prevent_dce;
+};
+
+struct vertex_main_outputs {
+  nointerpolation float16_t VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+float16_t determinant_fc12a5() {
+  float16_t res = float16_t(0.0h);
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store<float16_t>(0u, determinant_fc12a5());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store<float16_t>(0u, determinant_fc12a5());
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = determinant_fc12a5();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
+FXC validation failure:
+c:\src\dawn\Shader@0x0000027C02E3E640(3,3-11): error X3000: unrecognized identifier 'float16_t'
+
diff --git a/test/tint/builtins/gen/literal/distance/0657d4.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/distance/0657d4.wgsl.expected.ir.dxc.hlsl
index 0ba40c6..73e4dac 100644
--- a/test/tint/builtins/gen/literal/distance/0657d4.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/distance/0657d4.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,42 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  float prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation float VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+float distance_0657d4() {
+  float res = 0.0f;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store(0u, asuint(distance_0657d4()));
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store(0u, asuint(distance_0657d4()));
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = distance_0657d4();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
diff --git a/test/tint/builtins/gen/literal/distance/0657d4.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/distance/0657d4.wgsl.expected.ir.fxc.hlsl
index 0ba40c6..73e4dac 100644
--- a/test/tint/builtins/gen/literal/distance/0657d4.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/distance/0657d4.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,42 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  float prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation float VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+float distance_0657d4() {
+  float res = 0.0f;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store(0u, asuint(distance_0657d4()));
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store(0u, asuint(distance_0657d4()));
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = distance_0657d4();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
diff --git a/test/tint/builtins/gen/literal/distance/3a175a.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/distance/3a175a.wgsl.expected.ir.dxc.hlsl
index 0ba40c6..73022af 100644
--- a/test/tint/builtins/gen/literal/distance/3a175a.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/distance/3a175a.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,36 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+void distance_3a175a() {
+  float res = 0.0f;
+}
+
+void fragment_main() {
+  distance_3a175a();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  distance_3a175a();
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  distance_3a175a();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  vertex_main_outputs v_2 = {v_1.pos};
+  return v_2;
+}
+
diff --git a/test/tint/builtins/gen/literal/distance/3a175a.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/distance/3a175a.wgsl.expected.ir.fxc.hlsl
index 0ba40c6..73022af 100644
--- a/test/tint/builtins/gen/literal/distance/3a175a.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/distance/3a175a.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,36 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+void distance_3a175a() {
+  float res = 0.0f;
+}
+
+void fragment_main() {
+  distance_3a175a();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  distance_3a175a();
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  distance_3a175a();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  vertex_main_outputs v_2 = {v_1.pos};
+  return v_2;
+}
+
diff --git a/test/tint/builtins/gen/literal/distance/7272f3.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/distance/7272f3.wgsl.expected.ir.dxc.hlsl
index 0ba40c6..565881a 100644
--- a/test/tint/builtins/gen/literal/distance/7272f3.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/distance/7272f3.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,42 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  float16_t prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation float16_t VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+float16_t distance_7272f3() {
+  float16_t res = float16_t(0.0h);
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store<float16_t>(0u, distance_7272f3());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store<float16_t>(0u, distance_7272f3());
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = distance_7272f3();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
diff --git a/test/tint/builtins/gen/literal/distance/7272f3.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/distance/7272f3.wgsl.expected.ir.fxc.hlsl
index 0ba40c6..b243659 100644
--- a/test/tint/builtins/gen/literal/distance/7272f3.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/distance/7272f3.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,47 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct VertexOutput {
+  float4 pos;
+  float16_t prevent_dce;
+};
+
+struct vertex_main_outputs {
+  nointerpolation float16_t VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+float16_t distance_7272f3() {
+  float16_t res = float16_t(0.0h);
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store<float16_t>(0u, distance_7272f3());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store<float16_t>(0u, distance_7272f3());
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = distance_7272f3();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
+FXC validation failure:
+c:\src\dawn\Shader@0x000001993F3FEBD0(3,3-11): error X3000: unrecognized identifier 'float16_t'
+
diff --git a/test/tint/builtins/gen/literal/distance/7d201f.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/distance/7d201f.wgsl.expected.ir.dxc.hlsl
index 0ba40c6..94a24d0 100644
--- a/test/tint/builtins/gen/literal/distance/7d201f.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/distance/7d201f.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,42 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  float16_t prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation float16_t VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+float16_t distance_7d201f() {
+  float16_t res = float16_t(0.0h);
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store<float16_t>(0u, distance_7d201f());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store<float16_t>(0u, distance_7d201f());
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = distance_7d201f();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
diff --git a/test/tint/builtins/gen/literal/distance/7d201f.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/distance/7d201f.wgsl.expected.ir.fxc.hlsl
index 0ba40c6..9351cd2 100644
--- a/test/tint/builtins/gen/literal/distance/7d201f.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/distance/7d201f.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,47 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct VertexOutput {
+  float4 pos;
+  float16_t prevent_dce;
+};
+
+struct vertex_main_outputs {
+  nointerpolation float16_t VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+float16_t distance_7d201f() {
+  float16_t res = float16_t(0.0h);
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store<float16_t>(0u, distance_7d201f());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store<float16_t>(0u, distance_7d201f());
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = distance_7d201f();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
+FXC validation failure:
+c:\src\dawn\Shader@0x0000017FECF5F270(3,3-11): error X3000: unrecognized identifier 'float16_t'
+
diff --git a/test/tint/builtins/gen/literal/distance/83911f.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/distance/83911f.wgsl.expected.ir.dxc.hlsl
index 0ba40c6..dde0059 100644
--- a/test/tint/builtins/gen/literal/distance/83911f.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/distance/83911f.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,36 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+void distance_83911f() {
+  float res = 0.0f;
+}
+
+void fragment_main() {
+  distance_83911f();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  distance_83911f();
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  distance_83911f();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  vertex_main_outputs v_2 = {v_1.pos};
+  return v_2;
+}
+
diff --git a/test/tint/builtins/gen/literal/distance/83911f.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/distance/83911f.wgsl.expected.ir.fxc.hlsl
index 0ba40c6..dde0059 100644
--- a/test/tint/builtins/gen/literal/distance/83911f.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/distance/83911f.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,36 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+void distance_83911f() {
+  float res = 0.0f;
+}
+
+void fragment_main() {
+  distance_83911f();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  distance_83911f();
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  distance_83911f();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  vertex_main_outputs v_2 = {v_1.pos};
+  return v_2;
+}
+
diff --git a/test/tint/builtins/gen/literal/distance/892a5d.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/distance/892a5d.wgsl.expected.ir.dxc.hlsl
index 0ba40c6..18ee1c4 100644
--- a/test/tint/builtins/gen/literal/distance/892a5d.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/distance/892a5d.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,42 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  float16_t prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation float16_t VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+float16_t distance_892a5d() {
+  float16_t res = float16_t(0.0h);
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store<float16_t>(0u, distance_892a5d());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store<float16_t>(0u, distance_892a5d());
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = distance_892a5d();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
diff --git a/test/tint/builtins/gen/literal/distance/892a5d.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/distance/892a5d.wgsl.expected.ir.fxc.hlsl
index 0ba40c6..873f83b 100644
--- a/test/tint/builtins/gen/literal/distance/892a5d.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/distance/892a5d.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,47 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct VertexOutput {
+  float4 pos;
+  float16_t prevent_dce;
+};
+
+struct vertex_main_outputs {
+  nointerpolation float16_t VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+float16_t distance_892a5d() {
+  float16_t res = float16_t(0.0h);
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store<float16_t>(0u, distance_892a5d());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store<float16_t>(0u, distance_892a5d());
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = distance_892a5d();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
+FXC validation failure:
+c:\src\dawn\Shader@0x000001C7A96810D0(3,3-11): error X3000: unrecognized identifier 'float16_t'
+
diff --git a/test/tint/builtins/gen/literal/distance/928fa0.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/distance/928fa0.wgsl.expected.ir.dxc.hlsl
index 0ba40c6..4f97268 100644
--- a/test/tint/builtins/gen/literal/distance/928fa0.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/distance/928fa0.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,42 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  float16_t prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation float16_t VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+float16_t distance_928fa0() {
+  float16_t res = float16_t(0.0h);
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store<float16_t>(0u, distance_928fa0());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store<float16_t>(0u, distance_928fa0());
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = distance_928fa0();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
diff --git a/test/tint/builtins/gen/literal/distance/928fa0.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/distance/928fa0.wgsl.expected.ir.fxc.hlsl
index 0ba40c6..afb4fd0 100644
--- a/test/tint/builtins/gen/literal/distance/928fa0.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/distance/928fa0.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,47 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct VertexOutput {
+  float4 pos;
+  float16_t prevent_dce;
+};
+
+struct vertex_main_outputs {
+  nointerpolation float16_t VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+float16_t distance_928fa0() {
+  float16_t res = float16_t(0.0h);
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store<float16_t>(0u, distance_928fa0());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store<float16_t>(0u, distance_928fa0());
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = distance_928fa0();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
+FXC validation failure:
+c:\src\dawn\Shader@0x000001F2818BC3A0(3,3-11): error X3000: unrecognized identifier 'float16_t'
+
diff --git a/test/tint/builtins/gen/literal/distance/9646ea.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/distance/9646ea.wgsl.expected.ir.dxc.hlsl
index 0ba40c6..9041def 100644
--- a/test/tint/builtins/gen/literal/distance/9646ea.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/distance/9646ea.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,42 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  float prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation float VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+float distance_9646ea() {
+  float res = 0.0f;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store(0u, asuint(distance_9646ea()));
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store(0u, asuint(distance_9646ea()));
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = distance_9646ea();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
diff --git a/test/tint/builtins/gen/literal/distance/9646ea.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/distance/9646ea.wgsl.expected.ir.fxc.hlsl
index 0ba40c6..9041def 100644
--- a/test/tint/builtins/gen/literal/distance/9646ea.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/distance/9646ea.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,42 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  float prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation float VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+float distance_9646ea() {
+  float res = 0.0f;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store(0u, asuint(distance_9646ea()));
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store(0u, asuint(distance_9646ea()));
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = distance_9646ea();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
diff --git a/test/tint/builtins/gen/literal/distance/aa4055.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/distance/aa4055.wgsl.expected.ir.dxc.hlsl
index 0ba40c6..569a241 100644
--- a/test/tint/builtins/gen/literal/distance/aa4055.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/distance/aa4055.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,42 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  float prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation float VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+float distance_aa4055() {
+  float res = 0.0f;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store(0u, asuint(distance_aa4055()));
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store(0u, asuint(distance_aa4055()));
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = distance_aa4055();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
diff --git a/test/tint/builtins/gen/literal/distance/aa4055.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/distance/aa4055.wgsl.expected.ir.fxc.hlsl
index 0ba40c6..569a241 100644
--- a/test/tint/builtins/gen/literal/distance/aa4055.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/distance/aa4055.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,42 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  float prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation float VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+float distance_aa4055() {
+  float res = 0.0f;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store(0u, asuint(distance_aa4055()));
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store(0u, asuint(distance_aa4055()));
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = distance_aa4055();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
diff --git a/test/tint/builtins/gen/literal/distance/ac5535.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/distance/ac5535.wgsl.expected.ir.dxc.hlsl
index 0ba40c6..bd9b437 100644
--- a/test/tint/builtins/gen/literal/distance/ac5535.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/distance/ac5535.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,36 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+void distance_ac5535() {
+  float res = 0.0f;
+}
+
+void fragment_main() {
+  distance_ac5535();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  distance_ac5535();
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  distance_ac5535();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  vertex_main_outputs v_2 = {v_1.pos};
+  return v_2;
+}
+
diff --git a/test/tint/builtins/gen/literal/distance/ac5535.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/distance/ac5535.wgsl.expected.ir.fxc.hlsl
index 0ba40c6..bd9b437 100644
--- a/test/tint/builtins/gen/literal/distance/ac5535.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/distance/ac5535.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,36 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+void distance_ac5535() {
+  float res = 0.0f;
+}
+
+void fragment_main() {
+  distance_ac5535();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  distance_ac5535();
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  distance_ac5535();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  vertex_main_outputs v_2 = {v_1.pos};
+  return v_2;
+}
+
diff --git a/test/tint/builtins/gen/literal/distance/cfed73.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/distance/cfed73.wgsl.expected.ir.dxc.hlsl
index 0ba40c6..f6412e8 100644
--- a/test/tint/builtins/gen/literal/distance/cfed73.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/distance/cfed73.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,42 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  float prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation float VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+float distance_cfed73() {
+  float res = 0.0f;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store(0u, asuint(distance_cfed73()));
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store(0u, asuint(distance_cfed73()));
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = distance_cfed73();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
diff --git a/test/tint/builtins/gen/literal/distance/cfed73.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/distance/cfed73.wgsl.expected.ir.fxc.hlsl
index 0ba40c6..f6412e8 100644
--- a/test/tint/builtins/gen/literal/distance/cfed73.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/distance/cfed73.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,42 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  float prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation float VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+float distance_cfed73() {
+  float res = 0.0f;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store(0u, asuint(distance_cfed73()));
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store(0u, asuint(distance_cfed73()));
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = distance_cfed73();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
diff --git a/test/tint/builtins/gen/literal/distance/f9c9ee.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/distance/f9c9ee.wgsl.expected.ir.dxc.hlsl
index 0ba40c6..8775b12 100644
--- a/test/tint/builtins/gen/literal/distance/f9c9ee.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/distance/f9c9ee.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,36 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+void distance_f9c9ee() {
+  float res = 0.0f;
+}
+
+void fragment_main() {
+  distance_f9c9ee();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  distance_f9c9ee();
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  distance_f9c9ee();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  vertex_main_outputs v_2 = {v_1.pos};
+  return v_2;
+}
+
diff --git a/test/tint/builtins/gen/literal/distance/f9c9ee.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/distance/f9c9ee.wgsl.expected.ir.fxc.hlsl
index 0ba40c6..8775b12 100644
--- a/test/tint/builtins/gen/literal/distance/f9c9ee.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/distance/f9c9ee.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,36 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+void distance_f9c9ee() {
+  float res = 0.0f;
+}
+
+void fragment_main() {
+  distance_f9c9ee();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  distance_f9c9ee();
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  distance_f9c9ee();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  vertex_main_outputs v_2 = {v_1.pos};
+  return v_2;
+}
+
diff --git a/test/tint/builtins/gen/literal/dot/08eb56.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/dot/08eb56.wgsl.expected.ir.dxc.hlsl
index 0ba40c6..3cba7fa 100644
--- a/test/tint/builtins/gen/literal/dot/08eb56.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/dot/08eb56.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,36 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+void dot_08eb56() {
+  float res = 4.0f;
+}
+
+void fragment_main() {
+  dot_08eb56();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  dot_08eb56();
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  dot_08eb56();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  vertex_main_outputs v_2 = {v_1.pos};
+  return v_2;
+}
+
diff --git a/test/tint/builtins/gen/literal/dot/08eb56.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/dot/08eb56.wgsl.expected.ir.fxc.hlsl
index 0ba40c6..3cba7fa 100644
--- a/test/tint/builtins/gen/literal/dot/08eb56.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/dot/08eb56.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,36 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+void dot_08eb56() {
+  float res = 4.0f;
+}
+
+void fragment_main() {
+  dot_08eb56();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  dot_08eb56();
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  dot_08eb56();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  vertex_main_outputs v_2 = {v_1.pos};
+  return v_2;
+}
+
diff --git a/test/tint/builtins/gen/literal/dot/0c577b.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/dot/0c577b.wgsl.expected.ir.dxc.hlsl
index 0ba40c6..287dd50 100644
--- a/test/tint/builtins/gen/literal/dot/0c577b.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/dot/0c577b.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,42 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  float prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation float VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+float dot_0c577b() {
+  float res = 4.0f;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store(0u, asuint(dot_0c577b()));
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store(0u, asuint(dot_0c577b()));
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = dot_0c577b();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
diff --git a/test/tint/builtins/gen/literal/dot/0c577b.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/dot/0c577b.wgsl.expected.ir.fxc.hlsl
index 0ba40c6..287dd50 100644
--- a/test/tint/builtins/gen/literal/dot/0c577b.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/dot/0c577b.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,42 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  float prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation float VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+float dot_0c577b() {
+  float res = 4.0f;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store(0u, asuint(dot_0c577b()));
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store(0u, asuint(dot_0c577b()));
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = dot_0c577b();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
diff --git a/test/tint/builtins/gen/literal/dot/0d2c2e.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/dot/0d2c2e.wgsl.expected.ir.dxc.hlsl
index 0ba40c6..efe07ca 100644
--- a/test/tint/builtins/gen/literal/dot/0d2c2e.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/dot/0d2c2e.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,36 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+void dot_0d2c2e() {
+  float res = 2.0f;
+}
+
+void fragment_main() {
+  dot_0d2c2e();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  dot_0d2c2e();
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  dot_0d2c2e();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  vertex_main_outputs v_2 = {v_1.pos};
+  return v_2;
+}
+
diff --git a/test/tint/builtins/gen/literal/dot/0d2c2e.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/dot/0d2c2e.wgsl.expected.ir.fxc.hlsl
index 0ba40c6..efe07ca 100644
--- a/test/tint/builtins/gen/literal/dot/0d2c2e.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/dot/0d2c2e.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,36 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+void dot_0d2c2e() {
+  float res = 2.0f;
+}
+
+void fragment_main() {
+  dot_0d2c2e();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  dot_0d2c2e();
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  dot_0d2c2e();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  vertex_main_outputs v_2 = {v_1.pos};
+  return v_2;
+}
+
diff --git a/test/tint/builtins/gen/literal/dot/14bc63.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/dot/14bc63.wgsl.expected.ir.dxc.hlsl
index 0ba40c6..cc49197 100644
--- a/test/tint/builtins/gen/literal/dot/14bc63.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/dot/14bc63.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,36 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+void dot_14bc63() {
+  int res = 2;
+}
+
+void fragment_main() {
+  dot_14bc63();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  dot_14bc63();
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  dot_14bc63();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  vertex_main_outputs v_2 = {v_1.pos};
+  return v_2;
+}
+
diff --git a/test/tint/builtins/gen/literal/dot/14bc63.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/dot/14bc63.wgsl.expected.ir.fxc.hlsl
index 0ba40c6..cc49197 100644
--- a/test/tint/builtins/gen/literal/dot/14bc63.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/dot/14bc63.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,36 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+void dot_14bc63() {
+  int res = 2;
+}
+
+void fragment_main() {
+  dot_14bc63();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  dot_14bc63();
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  dot_14bc63();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  vertex_main_outputs v_2 = {v_1.pos};
+  return v_2;
+}
+
diff --git a/test/tint/builtins/gen/literal/dot/5a4c8f.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/dot/5a4c8f.wgsl.expected.ir.dxc.hlsl
index 0ba40c6..1fc135f 100644
--- a/test/tint/builtins/gen/literal/dot/5a4c8f.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/dot/5a4c8f.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,36 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+void dot_5a4c8f() {
+  float res = 3.0f;
+}
+
+void fragment_main() {
+  dot_5a4c8f();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  dot_5a4c8f();
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  dot_5a4c8f();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  vertex_main_outputs v_2 = {v_1.pos};
+  return v_2;
+}
+
diff --git a/test/tint/builtins/gen/literal/dot/5a4c8f.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/dot/5a4c8f.wgsl.expected.ir.fxc.hlsl
index 0ba40c6..1fc135f 100644
--- a/test/tint/builtins/gen/literal/dot/5a4c8f.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/dot/5a4c8f.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,36 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+void dot_5a4c8f() {
+  float res = 3.0f;
+}
+
+void fragment_main() {
+  dot_5a4c8f();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  dot_5a4c8f();
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  dot_5a4c8f();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  vertex_main_outputs v_2 = {v_1.pos};
+  return v_2;
+}
+
diff --git a/test/tint/builtins/gen/literal/dot/7548a0.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/dot/7548a0.wgsl.expected.ir.dxc.hlsl
index 0ba40c6..2fead33 100644
--- a/test/tint/builtins/gen/literal/dot/7548a0.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/dot/7548a0.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,42 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  uint prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation uint VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+uint dot_7548a0() {
+  uint res = 3u;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store(0u, dot_7548a0());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store(0u, dot_7548a0());
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = dot_7548a0();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
diff --git a/test/tint/builtins/gen/literal/dot/7548a0.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/dot/7548a0.wgsl.expected.ir.fxc.hlsl
index 0ba40c6..2fead33 100644
--- a/test/tint/builtins/gen/literal/dot/7548a0.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/dot/7548a0.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,42 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  uint prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation uint VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+uint dot_7548a0() {
+  uint res = 3u;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store(0u, dot_7548a0());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store(0u, dot_7548a0());
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = dot_7548a0();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
diff --git a/test/tint/builtins/gen/literal/dot/883f0e.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/dot/883f0e.wgsl.expected.ir.dxc.hlsl
index 0ba40c6..38bbd72f 100644
--- a/test/tint/builtins/gen/literal/dot/883f0e.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/dot/883f0e.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,42 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  float prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation float VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+float dot_883f0e() {
+  float res = 2.0f;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store(0u, asuint(dot_883f0e()));
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store(0u, asuint(dot_883f0e()));
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = dot_883f0e();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
diff --git a/test/tint/builtins/gen/literal/dot/883f0e.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/dot/883f0e.wgsl.expected.ir.fxc.hlsl
index 0ba40c6..38bbd72f 100644
--- a/test/tint/builtins/gen/literal/dot/883f0e.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/dot/883f0e.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,42 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  float prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation float VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+float dot_883f0e() {
+  float res = 2.0f;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store(0u, asuint(dot_883f0e()));
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store(0u, asuint(dot_883f0e()));
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = dot_883f0e();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
diff --git a/test/tint/builtins/gen/literal/dot/8e40f1.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/dot/8e40f1.wgsl.expected.ir.dxc.hlsl
index 0ba40c6..76e5fb7 100644
--- a/test/tint/builtins/gen/literal/dot/8e40f1.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/dot/8e40f1.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,42 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  float16_t prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation float16_t VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+float16_t dot_8e40f1() {
+  float16_t res = float16_t(3.0h);
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store<float16_t>(0u, dot_8e40f1());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store<float16_t>(0u, dot_8e40f1());
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = dot_8e40f1();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
diff --git a/test/tint/builtins/gen/literal/dot/8e40f1.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/dot/8e40f1.wgsl.expected.ir.fxc.hlsl
index 0ba40c6..a65699c 100644
--- a/test/tint/builtins/gen/literal/dot/8e40f1.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/dot/8e40f1.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,47 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct VertexOutput {
+  float4 pos;
+  float16_t prevent_dce;
+};
+
+struct vertex_main_outputs {
+  nointerpolation float16_t VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+float16_t dot_8e40f1() {
+  float16_t res = float16_t(3.0h);
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store<float16_t>(0u, dot_8e40f1());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store<float16_t>(0u, dot_8e40f1());
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = dot_8e40f1();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
+FXC validation failure:
+c:\src\dawn\Shader@0x0000027EB52D7A80(3,3-11): error X3000: unrecognized identifier 'float16_t'
+
diff --git a/test/tint/builtins/gen/literal/dot/97c7ee.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/dot/97c7ee.wgsl.expected.ir.dxc.hlsl
index 0ba40c6..2649bf3 100644
--- a/test/tint/builtins/gen/literal/dot/97c7ee.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/dot/97c7ee.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,42 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  uint prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation uint VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+uint dot_97c7ee() {
+  uint res = 2u;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store(0u, dot_97c7ee());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store(0u, dot_97c7ee());
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = dot_97c7ee();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
diff --git a/test/tint/builtins/gen/literal/dot/97c7ee.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/dot/97c7ee.wgsl.expected.ir.fxc.hlsl
index 0ba40c6..2649bf3 100644
--- a/test/tint/builtins/gen/literal/dot/97c7ee.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/dot/97c7ee.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,42 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  uint prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation uint VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+uint dot_97c7ee() {
+  uint res = 2u;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store(0u, dot_97c7ee());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store(0u, dot_97c7ee());
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = dot_97c7ee();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
diff --git a/test/tint/builtins/gen/literal/dot/ba4246.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/dot/ba4246.wgsl.expected.ir.dxc.hlsl
index 0ba40c6..a6cc554 100644
--- a/test/tint/builtins/gen/literal/dot/ba4246.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/dot/ba4246.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,42 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  float prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation float VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+float dot_ba4246() {
+  float res = 3.0f;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store(0u, asuint(dot_ba4246()));
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store(0u, asuint(dot_ba4246()));
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = dot_ba4246();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
diff --git a/test/tint/builtins/gen/literal/dot/ba4246.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/dot/ba4246.wgsl.expected.ir.fxc.hlsl
index 0ba40c6..a6cc554 100644
--- a/test/tint/builtins/gen/literal/dot/ba4246.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/dot/ba4246.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,42 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  float prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation float VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+float dot_ba4246() {
+  float res = 3.0f;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store(0u, asuint(dot_ba4246()));
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store(0u, asuint(dot_ba4246()));
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = dot_ba4246();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
diff --git a/test/tint/builtins/gen/literal/dot/c11efe.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/dot/c11efe.wgsl.expected.ir.dxc.hlsl
index 0ba40c6..4ff25cb 100644
--- a/test/tint/builtins/gen/literal/dot/c11efe.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/dot/c11efe.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,36 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+void dot_c11efe() {
+  int res = 3;
+}
+
+void fragment_main() {
+  dot_c11efe();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  dot_c11efe();
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  dot_c11efe();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  vertex_main_outputs v_2 = {v_1.pos};
+  return v_2;
+}
+
diff --git a/test/tint/builtins/gen/literal/dot/c11efe.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/dot/c11efe.wgsl.expected.ir.fxc.hlsl
index 0ba40c6..4ff25cb 100644
--- a/test/tint/builtins/gen/literal/dot/c11efe.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/dot/c11efe.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,36 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+void dot_c11efe() {
+  int res = 3;
+}
+
+void fragment_main() {
+  dot_c11efe();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  dot_c11efe();
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  dot_c11efe();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  vertex_main_outputs v_2 = {v_1.pos};
+  return v_2;
+}
+
diff --git a/test/tint/builtins/gen/literal/dot/cd5a04.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/dot/cd5a04.wgsl.expected.ir.dxc.hlsl
index 0ba40c6..0d93ba5 100644
--- a/test/tint/builtins/gen/literal/dot/cd5a04.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/dot/cd5a04.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,42 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  float16_t prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation float16_t VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+float16_t dot_cd5a04() {
+  float16_t res = float16_t(2.0h);
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store<float16_t>(0u, dot_cd5a04());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store<float16_t>(0u, dot_cd5a04());
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = dot_cd5a04();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
diff --git a/test/tint/builtins/gen/literal/dot/cd5a04.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/dot/cd5a04.wgsl.expected.ir.fxc.hlsl
index 0ba40c6..f79e26a 100644
--- a/test/tint/builtins/gen/literal/dot/cd5a04.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/dot/cd5a04.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,47 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct VertexOutput {
+  float4 pos;
+  float16_t prevent_dce;
+};
+
+struct vertex_main_outputs {
+  nointerpolation float16_t VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+float16_t dot_cd5a04() {
+  float16_t res = float16_t(2.0h);
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store<float16_t>(0u, dot_cd5a04());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store<float16_t>(0u, dot_cd5a04());
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = dot_cd5a04();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
+FXC validation failure:
+c:\src\dawn\Shader@0x000001D0D5ADD4B0(3,3-11): error X3000: unrecognized identifier 'float16_t'
+
diff --git a/test/tint/builtins/gen/literal/dot/d0d179.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/dot/d0d179.wgsl.expected.ir.dxc.hlsl
index 0ba40c6..9b7464f 100644
--- a/test/tint/builtins/gen/literal/dot/d0d179.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/dot/d0d179.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,42 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  float16_t prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation float16_t VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+float16_t dot_d0d179() {
+  float16_t res = float16_t(4.0h);
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store<float16_t>(0u, dot_d0d179());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store<float16_t>(0u, dot_d0d179());
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = dot_d0d179();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
diff --git a/test/tint/builtins/gen/literal/dot/d0d179.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/dot/d0d179.wgsl.expected.ir.fxc.hlsl
index 0ba40c6..2429638 100644
--- a/test/tint/builtins/gen/literal/dot/d0d179.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/dot/d0d179.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,47 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct VertexOutput {
+  float4 pos;
+  float16_t prevent_dce;
+};
+
+struct vertex_main_outputs {
+  nointerpolation float16_t VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+float16_t dot_d0d179() {
+  float16_t res = float16_t(4.0h);
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store<float16_t>(0u, dot_d0d179());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store<float16_t>(0u, dot_d0d179());
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = dot_d0d179();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
+FXC validation failure:
+c:\src\dawn\Shader@0x0000021F1FBB37D0(3,3-11): error X3000: unrecognized identifier 'float16_t'
+
diff --git a/test/tint/builtins/gen/literal/dot/e994c7.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/dot/e994c7.wgsl.expected.ir.dxc.hlsl
index 0ba40c6..dc51bc4 100644
--- a/test/tint/builtins/gen/literal/dot/e994c7.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/dot/e994c7.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,42 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  uint prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation uint VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+uint dot_e994c7() {
+  uint res = 4u;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store(0u, dot_e994c7());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store(0u, dot_e994c7());
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = dot_e994c7();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
diff --git a/test/tint/builtins/gen/literal/dot/e994c7.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/dot/e994c7.wgsl.expected.ir.fxc.hlsl
index 0ba40c6..dc51bc4 100644
--- a/test/tint/builtins/gen/literal/dot/e994c7.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/dot/e994c7.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,42 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  uint prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation uint VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+uint dot_e994c7() {
+  uint res = 4u;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store(0u, dot_e994c7());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store(0u, dot_e994c7());
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = dot_e994c7();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
diff --git a/test/tint/builtins/gen/literal/dot/eb9fbf.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/dot/eb9fbf.wgsl.expected.ir.dxc.hlsl
index 0ba40c6..3666031 100644
--- a/test/tint/builtins/gen/literal/dot/eb9fbf.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/dot/eb9fbf.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,36 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+void dot_eb9fbf() {
+  int res = 4;
+}
+
+void fragment_main() {
+  dot_eb9fbf();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  dot_eb9fbf();
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  dot_eb9fbf();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  vertex_main_outputs v_2 = {v_1.pos};
+  return v_2;
+}
+
diff --git a/test/tint/builtins/gen/literal/dot/eb9fbf.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/dot/eb9fbf.wgsl.expected.ir.fxc.hlsl
index 0ba40c6..3666031 100644
--- a/test/tint/builtins/gen/literal/dot/eb9fbf.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/dot/eb9fbf.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,36 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+void dot_eb9fbf() {
+  int res = 4;
+}
+
+void fragment_main() {
+  dot_eb9fbf();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  dot_eb9fbf();
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  dot_eb9fbf();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  vertex_main_outputs v_2 = {v_1.pos};
+  return v_2;
+}
+
diff --git a/test/tint/builtins/gen/literal/dot/ef6b1d.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/dot/ef6b1d.wgsl.expected.ir.dxc.hlsl
index 0ba40c6..9ca320f 100644
--- a/test/tint/builtins/gen/literal/dot/ef6b1d.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/dot/ef6b1d.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,42 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  int prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation int VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+int dot_ef6b1d() {
+  int res = 4;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store(0u, asuint(dot_ef6b1d()));
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store(0u, asuint(dot_ef6b1d()));
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = dot_ef6b1d();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
diff --git a/test/tint/builtins/gen/literal/dot/ef6b1d.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/dot/ef6b1d.wgsl.expected.ir.fxc.hlsl
index 0ba40c6..9ca320f 100644
--- a/test/tint/builtins/gen/literal/dot/ef6b1d.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/dot/ef6b1d.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,42 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  int prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation int VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+int dot_ef6b1d() {
+  int res = 4;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store(0u, asuint(dot_ef6b1d()));
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store(0u, asuint(dot_ef6b1d()));
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = dot_ef6b1d();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
diff --git a/test/tint/builtins/gen/literal/dot/f1312c.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/dot/f1312c.wgsl.expected.ir.dxc.hlsl
index 0ba40c6..8de4b68 100644
--- a/test/tint/builtins/gen/literal/dot/f1312c.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/dot/f1312c.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,42 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  int prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation int VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+int dot_f1312c() {
+  int res = 3;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store(0u, asuint(dot_f1312c()));
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store(0u, asuint(dot_f1312c()));
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = dot_f1312c();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
diff --git a/test/tint/builtins/gen/literal/dot/f1312c.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/dot/f1312c.wgsl.expected.ir.fxc.hlsl
index 0ba40c6..8de4b68 100644
--- a/test/tint/builtins/gen/literal/dot/f1312c.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/dot/f1312c.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,42 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  int prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation int VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+int dot_f1312c() {
+  int res = 3;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store(0u, asuint(dot_f1312c()));
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store(0u, asuint(dot_f1312c()));
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = dot_f1312c();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
diff --git a/test/tint/builtins/gen/literal/dot/fc5f7c.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/dot/fc5f7c.wgsl.expected.ir.dxc.hlsl
index 0ba40c6..194e782 100644
--- a/test/tint/builtins/gen/literal/dot/fc5f7c.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/dot/fc5f7c.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,42 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  int prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation int VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+int dot_fc5f7c() {
+  int res = 2;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store(0u, asuint(dot_fc5f7c()));
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store(0u, asuint(dot_fc5f7c()));
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = dot_fc5f7c();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
diff --git a/test/tint/builtins/gen/literal/dot/fc5f7c.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/dot/fc5f7c.wgsl.expected.ir.fxc.hlsl
index 0ba40c6..194e782 100644
--- a/test/tint/builtins/gen/literal/dot/fc5f7c.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/dot/fc5f7c.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,42 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  int prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation int VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+int dot_fc5f7c() {
+  int res = 2;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store(0u, asuint(dot_fc5f7c()));
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store(0u, asuint(dot_fc5f7c()));
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = dot_fc5f7c();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
diff --git a/test/tint/builtins/gen/literal/dot4I8Packed/881e62.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/dot4I8Packed/881e62.wgsl.expected.ir.dxc.hlsl
index 0ba40c6..77e6f89 100644
--- a/test/tint/builtins/gen/literal/dot4I8Packed/881e62.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/dot4I8Packed/881e62.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,42 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  int prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation int VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+int dot4I8Packed_881e62() {
+  int res = 1;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store(0u, asuint(dot4I8Packed_881e62()));
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store(0u, asuint(dot4I8Packed_881e62()));
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = dot4I8Packed_881e62();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
diff --git a/test/tint/builtins/gen/literal/dot4I8Packed/881e62.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/dot4I8Packed/881e62.wgsl.expected.ir.fxc.hlsl
index 0ba40c6..77e6f89 100644
--- a/test/tint/builtins/gen/literal/dot4I8Packed/881e62.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/dot4I8Packed/881e62.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,42 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  int prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation int VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+int dot4I8Packed_881e62() {
+  int res = 1;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store(0u, asuint(dot4I8Packed_881e62()));
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store(0u, asuint(dot4I8Packed_881e62()));
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = dot4I8Packed_881e62();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
diff --git a/test/tint/builtins/gen/literal/dot4U8Packed/fbed7b.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/dot4U8Packed/fbed7b.wgsl.expected.ir.dxc.hlsl
index 0ba40c6..c462ecc 100644
--- a/test/tint/builtins/gen/literal/dot4U8Packed/fbed7b.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/dot4U8Packed/fbed7b.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,42 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  uint prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation uint VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+uint dot4U8Packed_fbed7b() {
+  uint res = 1u;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store(0u, dot4U8Packed_fbed7b());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store(0u, dot4U8Packed_fbed7b());
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = dot4U8Packed_fbed7b();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
diff --git a/test/tint/builtins/gen/literal/dot4U8Packed/fbed7b.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/dot4U8Packed/fbed7b.wgsl.expected.ir.fxc.hlsl
index 0ba40c6..c462ecc 100644
--- a/test/tint/builtins/gen/literal/dot4U8Packed/fbed7b.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/dot4U8Packed/fbed7b.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,42 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  uint prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation uint VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+uint dot4U8Packed_fbed7b() {
+  uint res = 1u;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store(0u, dot4U8Packed_fbed7b());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store(0u, dot4U8Packed_fbed7b());
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = dot4U8Packed_fbed7b();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
diff --git a/test/tint/builtins/gen/literal/dpdx/0763f7.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/dpdx/0763f7.wgsl.expected.ir.dxc.hlsl
index 45a558e..26a4a8e 100644
--- a/test/tint/builtins/gen/literal/dpdx/0763f7.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/dpdx/0763f7.wgsl.expected.ir.dxc.hlsl
@@ -1,16 +1,11 @@
-SKIP: FAILED
 
+RWByteAddressBuffer prevent_dce : register(u0);
 float3 dpdx_0763f7() {
   float3 res = ddx((1.0f).xxx);
   return res;
 }
 
 void fragment_main() {
-  prevent_dce = dpdx_0763f7();
+  prevent_dce.Store3(0u, asuint(dpdx_0763f7()));
 }
 
-DXC validation failure:
-hlsl.hlsl:7:3: error: use of undeclared identifier 'prevent_dce'
-  prevent_dce = dpdx_0763f7();
-  ^
-
diff --git a/test/tint/builtins/gen/literal/dpdx/0763f7.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/dpdx/0763f7.wgsl.expected.ir.fxc.hlsl
index 5464a76..26a4a8e 100644
--- a/test/tint/builtins/gen/literal/dpdx/0763f7.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/dpdx/0763f7.wgsl.expected.ir.fxc.hlsl
@@ -1,11 +1,11 @@
-SKIP: FAILED
 
+RWByteAddressBuffer prevent_dce : register(u0);
 float3 dpdx_0763f7() {
   float3 res = ddx((1.0f).xxx);
   return res;
 }
 
 void fragment_main() {
-  prevent_dce = dpdx_0763f7();
+  prevent_dce.Store3(0u, asuint(dpdx_0763f7()));
 }
 
diff --git a/test/tint/builtins/gen/literal/dpdx/99edb1.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/dpdx/99edb1.wgsl.expected.ir.dxc.hlsl
index ef2bcbb..e3eda6a 100644
--- a/test/tint/builtins/gen/literal/dpdx/99edb1.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/dpdx/99edb1.wgsl.expected.ir.dxc.hlsl
@@ -1,16 +1,11 @@
-SKIP: FAILED
 
+RWByteAddressBuffer prevent_dce : register(u0);
 float2 dpdx_99edb1() {
   float2 res = ddx((1.0f).xx);
   return res;
 }
 
 void fragment_main() {
-  prevent_dce = dpdx_99edb1();
+  prevent_dce.Store2(0u, asuint(dpdx_99edb1()));
 }
 
-DXC validation failure:
-hlsl.hlsl:7:3: error: use of undeclared identifier 'prevent_dce'
-  prevent_dce = dpdx_99edb1();
-  ^
-
diff --git a/test/tint/builtins/gen/literal/dpdx/99edb1.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/dpdx/99edb1.wgsl.expected.ir.fxc.hlsl
index 4f7b817..e3eda6a 100644
--- a/test/tint/builtins/gen/literal/dpdx/99edb1.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/dpdx/99edb1.wgsl.expected.ir.fxc.hlsl
@@ -1,11 +1,11 @@
-SKIP: FAILED
 
+RWByteAddressBuffer prevent_dce : register(u0);
 float2 dpdx_99edb1() {
   float2 res = ddx((1.0f).xx);
   return res;
 }
 
 void fragment_main() {
-  prevent_dce = dpdx_99edb1();
+  prevent_dce.Store2(0u, asuint(dpdx_99edb1()));
 }
 
diff --git a/test/tint/builtins/gen/literal/dpdx/c487fa.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/dpdx/c487fa.wgsl.expected.ir.dxc.hlsl
index 38427be..b100f1f 100644
--- a/test/tint/builtins/gen/literal/dpdx/c487fa.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/dpdx/c487fa.wgsl.expected.ir.dxc.hlsl
@@ -1,16 +1,11 @@
-SKIP: FAILED
 
+RWByteAddressBuffer prevent_dce : register(u0);
 float4 dpdx_c487fa() {
   float4 res = ddx((1.0f).xxxx);
   return res;
 }
 
 void fragment_main() {
-  prevent_dce = dpdx_c487fa();
+  prevent_dce.Store4(0u, asuint(dpdx_c487fa()));
 }
 
-DXC validation failure:
-hlsl.hlsl:7:3: error: use of undeclared identifier 'prevent_dce'
-  prevent_dce = dpdx_c487fa();
-  ^
-
diff --git a/test/tint/builtins/gen/literal/dpdx/c487fa.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/dpdx/c487fa.wgsl.expected.ir.fxc.hlsl
index 5165edb..b100f1f 100644
--- a/test/tint/builtins/gen/literal/dpdx/c487fa.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/dpdx/c487fa.wgsl.expected.ir.fxc.hlsl
@@ -1,11 +1,11 @@
-SKIP: FAILED
 
+RWByteAddressBuffer prevent_dce : register(u0);
 float4 dpdx_c487fa() {
   float4 res = ddx((1.0f).xxxx);
   return res;
 }
 
 void fragment_main() {
-  prevent_dce = dpdx_c487fa();
+  prevent_dce.Store4(0u, asuint(dpdx_c487fa()));
 }
 
diff --git a/test/tint/builtins/gen/literal/dpdx/e263de.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/dpdx/e263de.wgsl.expected.ir.dxc.hlsl
index 08903b7..12ecc2c 100644
--- a/test/tint/builtins/gen/literal/dpdx/e263de.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/dpdx/e263de.wgsl.expected.ir.dxc.hlsl
@@ -1,16 +1,11 @@
-SKIP: FAILED
 
+RWByteAddressBuffer prevent_dce : register(u0);
 float dpdx_e263de() {
   float res = ddx(1.0f);
   return res;
 }
 
 void fragment_main() {
-  prevent_dce = dpdx_e263de();
+  prevent_dce.Store(0u, asuint(dpdx_e263de()));
 }
 
-DXC validation failure:
-hlsl.hlsl:7:3: error: use of undeclared identifier 'prevent_dce'
-  prevent_dce = dpdx_e263de();
-  ^
-
diff --git a/test/tint/builtins/gen/literal/dpdx/e263de.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/dpdx/e263de.wgsl.expected.ir.fxc.hlsl
index eeb6792..12ecc2c 100644
--- a/test/tint/builtins/gen/literal/dpdx/e263de.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/dpdx/e263de.wgsl.expected.ir.fxc.hlsl
@@ -1,11 +1,11 @@
-SKIP: FAILED
 
+RWByteAddressBuffer prevent_dce : register(u0);
 float dpdx_e263de() {
   float res = ddx(1.0f);
   return res;
 }
 
 void fragment_main() {
-  prevent_dce = dpdx_e263de();
+  prevent_dce.Store(0u, asuint(dpdx_e263de()));
 }
 
diff --git a/test/tint/builtins/gen/literal/dpdxCoarse/029152.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/dpdxCoarse/029152.wgsl.expected.ir.dxc.hlsl
index 89aee99..7391508 100644
--- a/test/tint/builtins/gen/literal/dpdxCoarse/029152.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/dpdxCoarse/029152.wgsl.expected.ir.dxc.hlsl
@@ -1,16 +1,11 @@
-SKIP: FAILED
 
+RWByteAddressBuffer prevent_dce : register(u0);
 float dpdxCoarse_029152() {
   float res = ddx_coarse(1.0f);
   return res;
 }
 
 void fragment_main() {
-  prevent_dce = dpdxCoarse_029152();
+  prevent_dce.Store(0u, asuint(dpdxCoarse_029152()));
 }
 
-DXC validation failure:
-hlsl.hlsl:7:3: error: use of undeclared identifier 'prevent_dce'
-  prevent_dce = dpdxCoarse_029152();
-  ^
-
diff --git a/test/tint/builtins/gen/literal/dpdxCoarse/029152.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/dpdxCoarse/029152.wgsl.expected.ir.fxc.hlsl
index 4956bd1..7391508 100644
--- a/test/tint/builtins/gen/literal/dpdxCoarse/029152.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/dpdxCoarse/029152.wgsl.expected.ir.fxc.hlsl
@@ -1,11 +1,11 @@
-SKIP: FAILED
 
+RWByteAddressBuffer prevent_dce : register(u0);
 float dpdxCoarse_029152() {
   float res = ddx_coarse(1.0f);
   return res;
 }
 
 void fragment_main() {
-  prevent_dce = dpdxCoarse_029152();
+  prevent_dce.Store(0u, asuint(dpdxCoarse_029152()));
 }
 
diff --git a/test/tint/builtins/gen/literal/dpdxCoarse/9581cf.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/dpdxCoarse/9581cf.wgsl.expected.ir.dxc.hlsl
index 4d340ae..62c323e 100644
--- a/test/tint/builtins/gen/literal/dpdxCoarse/9581cf.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/dpdxCoarse/9581cf.wgsl.expected.ir.dxc.hlsl
@@ -1,16 +1,11 @@
-SKIP: FAILED
 
+RWByteAddressBuffer prevent_dce : register(u0);
 float2 dpdxCoarse_9581cf() {
   float2 res = ddx_coarse((1.0f).xx);
   return res;
 }
 
 void fragment_main() {
-  prevent_dce = dpdxCoarse_9581cf();
+  prevent_dce.Store2(0u, asuint(dpdxCoarse_9581cf()));
 }
 
-DXC validation failure:
-hlsl.hlsl:7:3: error: use of undeclared identifier 'prevent_dce'
-  prevent_dce = dpdxCoarse_9581cf();
-  ^
-
diff --git a/test/tint/builtins/gen/literal/dpdxCoarse/9581cf.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/dpdxCoarse/9581cf.wgsl.expected.ir.fxc.hlsl
index 7b76863..62c323e 100644
--- a/test/tint/builtins/gen/literal/dpdxCoarse/9581cf.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/dpdxCoarse/9581cf.wgsl.expected.ir.fxc.hlsl
@@ -1,11 +1,11 @@
-SKIP: FAILED
 
+RWByteAddressBuffer prevent_dce : register(u0);
 float2 dpdxCoarse_9581cf() {
   float2 res = ddx_coarse((1.0f).xx);
   return res;
 }
 
 void fragment_main() {
-  prevent_dce = dpdxCoarse_9581cf();
+  prevent_dce.Store2(0u, asuint(dpdxCoarse_9581cf()));
 }
 
diff --git a/test/tint/builtins/gen/literal/dpdxCoarse/c28641.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/dpdxCoarse/c28641.wgsl.expected.ir.dxc.hlsl
index ccbd93c..3d55e0c 100644
--- a/test/tint/builtins/gen/literal/dpdxCoarse/c28641.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/dpdxCoarse/c28641.wgsl.expected.ir.dxc.hlsl
@@ -1,16 +1,11 @@
-SKIP: FAILED
 
+RWByteAddressBuffer prevent_dce : register(u0);
 float4 dpdxCoarse_c28641() {
   float4 res = ddx_coarse((1.0f).xxxx);
   return res;
 }
 
 void fragment_main() {
-  prevent_dce = dpdxCoarse_c28641();
+  prevent_dce.Store4(0u, asuint(dpdxCoarse_c28641()));
 }
 
-DXC validation failure:
-hlsl.hlsl:7:3: error: use of undeclared identifier 'prevent_dce'
-  prevent_dce = dpdxCoarse_c28641();
-  ^
-
diff --git a/test/tint/builtins/gen/literal/dpdxCoarse/c28641.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/dpdxCoarse/c28641.wgsl.expected.ir.fxc.hlsl
index f5c54b6..3d55e0c 100644
--- a/test/tint/builtins/gen/literal/dpdxCoarse/c28641.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/dpdxCoarse/c28641.wgsl.expected.ir.fxc.hlsl
@@ -1,11 +1,11 @@
-SKIP: FAILED
 
+RWByteAddressBuffer prevent_dce : register(u0);
 float4 dpdxCoarse_c28641() {
   float4 res = ddx_coarse((1.0f).xxxx);
   return res;
 }
 
 void fragment_main() {
-  prevent_dce = dpdxCoarse_c28641();
+  prevent_dce.Store4(0u, asuint(dpdxCoarse_c28641()));
 }
 
diff --git a/test/tint/builtins/gen/literal/dpdxCoarse/f64d7b.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/dpdxCoarse/f64d7b.wgsl.expected.ir.dxc.hlsl
index 345b26c..fa58df6 100644
--- a/test/tint/builtins/gen/literal/dpdxCoarse/f64d7b.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/dpdxCoarse/f64d7b.wgsl.expected.ir.dxc.hlsl
@@ -1,16 +1,11 @@
-SKIP: FAILED
 
+RWByteAddressBuffer prevent_dce : register(u0);
 float3 dpdxCoarse_f64d7b() {
   float3 res = ddx_coarse((1.0f).xxx);
   return res;
 }
 
 void fragment_main() {
-  prevent_dce = dpdxCoarse_f64d7b();
+  prevent_dce.Store3(0u, asuint(dpdxCoarse_f64d7b()));
 }
 
-DXC validation failure:
-hlsl.hlsl:7:3: error: use of undeclared identifier 'prevent_dce'
-  prevent_dce = dpdxCoarse_f64d7b();
-  ^
-
diff --git a/test/tint/builtins/gen/literal/dpdxCoarse/f64d7b.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/dpdxCoarse/f64d7b.wgsl.expected.ir.fxc.hlsl
index 706ba79..fa58df6 100644
--- a/test/tint/builtins/gen/literal/dpdxCoarse/f64d7b.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/dpdxCoarse/f64d7b.wgsl.expected.ir.fxc.hlsl
@@ -1,11 +1,11 @@
-SKIP: FAILED
 
+RWByteAddressBuffer prevent_dce : register(u0);
 float3 dpdxCoarse_f64d7b() {
   float3 res = ddx_coarse((1.0f).xxx);
   return res;
 }
 
 void fragment_main() {
-  prevent_dce = dpdxCoarse_f64d7b();
+  prevent_dce.Store3(0u, asuint(dpdxCoarse_f64d7b()));
 }
 
diff --git a/test/tint/builtins/gen/literal/dpdxFine/8c5069.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/dpdxFine/8c5069.wgsl.expected.ir.dxc.hlsl
index c43d22c..386e795 100644
--- a/test/tint/builtins/gen/literal/dpdxFine/8c5069.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/dpdxFine/8c5069.wgsl.expected.ir.dxc.hlsl
@@ -1,16 +1,11 @@
-SKIP: FAILED
 
+RWByteAddressBuffer prevent_dce : register(u0);
 float4 dpdxFine_8c5069() {
   float4 res = ddx_fine((1.0f).xxxx);
   return res;
 }
 
 void fragment_main() {
-  prevent_dce = dpdxFine_8c5069();
+  prevent_dce.Store4(0u, asuint(dpdxFine_8c5069()));
 }
 
-DXC validation failure:
-hlsl.hlsl:7:3: error: use of undeclared identifier 'prevent_dce'
-  prevent_dce = dpdxFine_8c5069();
-  ^
-
diff --git a/test/tint/builtins/gen/literal/dpdxFine/8c5069.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/dpdxFine/8c5069.wgsl.expected.ir.fxc.hlsl
index 12f2b64..386e795 100644
--- a/test/tint/builtins/gen/literal/dpdxFine/8c5069.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/dpdxFine/8c5069.wgsl.expected.ir.fxc.hlsl
@@ -1,11 +1,11 @@
-SKIP: FAILED
 
+RWByteAddressBuffer prevent_dce : register(u0);
 float4 dpdxFine_8c5069() {
   float4 res = ddx_fine((1.0f).xxxx);
   return res;
 }
 
 void fragment_main() {
-  prevent_dce = dpdxFine_8c5069();
+  prevent_dce.Store4(0u, asuint(dpdxFine_8c5069()));
 }
 
diff --git a/test/tint/builtins/gen/literal/dpdxFine/9631de.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/dpdxFine/9631de.wgsl.expected.ir.dxc.hlsl
index 62ba556..de80e7c 100644
--- a/test/tint/builtins/gen/literal/dpdxFine/9631de.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/dpdxFine/9631de.wgsl.expected.ir.dxc.hlsl
@@ -1,16 +1,11 @@
-SKIP: FAILED
 
+RWByteAddressBuffer prevent_dce : register(u0);
 float2 dpdxFine_9631de() {
   float2 res = ddx_fine((1.0f).xx);
   return res;
 }
 
 void fragment_main() {
-  prevent_dce = dpdxFine_9631de();
+  prevent_dce.Store2(0u, asuint(dpdxFine_9631de()));
 }
 
-DXC validation failure:
-hlsl.hlsl:7:3: error: use of undeclared identifier 'prevent_dce'
-  prevent_dce = dpdxFine_9631de();
-  ^
-
diff --git a/test/tint/builtins/gen/literal/dpdxFine/9631de.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/dpdxFine/9631de.wgsl.expected.ir.fxc.hlsl
index cbd2e12..de80e7c 100644
--- a/test/tint/builtins/gen/literal/dpdxFine/9631de.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/dpdxFine/9631de.wgsl.expected.ir.fxc.hlsl
@@ -1,11 +1,11 @@
-SKIP: FAILED
 
+RWByteAddressBuffer prevent_dce : register(u0);
 float2 dpdxFine_9631de() {
   float2 res = ddx_fine((1.0f).xx);
   return res;
 }
 
 void fragment_main() {
-  prevent_dce = dpdxFine_9631de();
+  prevent_dce.Store2(0u, asuint(dpdxFine_9631de()));
 }
 
diff --git a/test/tint/builtins/gen/literal/dpdxFine/f401a2.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/dpdxFine/f401a2.wgsl.expected.ir.dxc.hlsl
index 478c7d7..9d5d0d0 100644
--- a/test/tint/builtins/gen/literal/dpdxFine/f401a2.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/dpdxFine/f401a2.wgsl.expected.ir.dxc.hlsl
@@ -1,16 +1,11 @@
-SKIP: FAILED
 
+RWByteAddressBuffer prevent_dce : register(u0);
 float dpdxFine_f401a2() {
   float res = ddx_fine(1.0f);
   return res;
 }
 
 void fragment_main() {
-  prevent_dce = dpdxFine_f401a2();
+  prevent_dce.Store(0u, asuint(dpdxFine_f401a2()));
 }
 
-DXC validation failure:
-hlsl.hlsl:7:3: error: use of undeclared identifier 'prevent_dce'
-  prevent_dce = dpdxFine_f401a2();
-  ^
-
diff --git a/test/tint/builtins/gen/literal/dpdxFine/f401a2.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/dpdxFine/f401a2.wgsl.expected.ir.fxc.hlsl
index 8b39916..9d5d0d0 100644
--- a/test/tint/builtins/gen/literal/dpdxFine/f401a2.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/dpdxFine/f401a2.wgsl.expected.ir.fxc.hlsl
@@ -1,11 +1,11 @@
-SKIP: FAILED
 
+RWByteAddressBuffer prevent_dce : register(u0);
 float dpdxFine_f401a2() {
   float res = ddx_fine(1.0f);
   return res;
 }
 
 void fragment_main() {
-  prevent_dce = dpdxFine_f401a2();
+  prevent_dce.Store(0u, asuint(dpdxFine_f401a2()));
 }
 
diff --git a/test/tint/builtins/gen/literal/dpdxFine/f92fb6.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/dpdxFine/f92fb6.wgsl.expected.ir.dxc.hlsl
index 0dc3919..d66ed7a 100644
--- a/test/tint/builtins/gen/literal/dpdxFine/f92fb6.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/dpdxFine/f92fb6.wgsl.expected.ir.dxc.hlsl
@@ -1,16 +1,11 @@
-SKIP: FAILED
 
+RWByteAddressBuffer prevent_dce : register(u0);
 float3 dpdxFine_f92fb6() {
   float3 res = ddx_fine((1.0f).xxx);
   return res;
 }
 
 void fragment_main() {
-  prevent_dce = dpdxFine_f92fb6();
+  prevent_dce.Store3(0u, asuint(dpdxFine_f92fb6()));
 }
 
-DXC validation failure:
-hlsl.hlsl:7:3: error: use of undeclared identifier 'prevent_dce'
-  prevent_dce = dpdxFine_f92fb6();
-  ^
-
diff --git a/test/tint/builtins/gen/literal/dpdxFine/f92fb6.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/dpdxFine/f92fb6.wgsl.expected.ir.fxc.hlsl
index 6303971..d66ed7a 100644
--- a/test/tint/builtins/gen/literal/dpdxFine/f92fb6.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/dpdxFine/f92fb6.wgsl.expected.ir.fxc.hlsl
@@ -1,11 +1,11 @@
-SKIP: FAILED
 
+RWByteAddressBuffer prevent_dce : register(u0);
 float3 dpdxFine_f92fb6() {
   float3 res = ddx_fine((1.0f).xxx);
   return res;
 }
 
 void fragment_main() {
-  prevent_dce = dpdxFine_f92fb6();
+  prevent_dce.Store3(0u, asuint(dpdxFine_f92fb6()));
 }
 
diff --git a/test/tint/builtins/gen/literal/dpdy/699a05.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/dpdy/699a05.wgsl.expected.ir.dxc.hlsl
index 28e5279..c97a58c 100644
--- a/test/tint/builtins/gen/literal/dpdy/699a05.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/dpdy/699a05.wgsl.expected.ir.dxc.hlsl
@@ -1,16 +1,11 @@
-SKIP: FAILED
 
+RWByteAddressBuffer prevent_dce : register(u0);
 float4 dpdy_699a05() {
   float4 res = ddy((1.0f).xxxx);
   return res;
 }
 
 void fragment_main() {
-  prevent_dce = dpdy_699a05();
+  prevent_dce.Store4(0u, asuint(dpdy_699a05()));
 }
 
-DXC validation failure:
-hlsl.hlsl:7:3: error: use of undeclared identifier 'prevent_dce'
-  prevent_dce = dpdy_699a05();
-  ^
-
diff --git a/test/tint/builtins/gen/literal/dpdy/699a05.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/dpdy/699a05.wgsl.expected.ir.fxc.hlsl
index 512c93b..c97a58c 100644
--- a/test/tint/builtins/gen/literal/dpdy/699a05.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/dpdy/699a05.wgsl.expected.ir.fxc.hlsl
@@ -1,11 +1,11 @@
-SKIP: FAILED
 
+RWByteAddressBuffer prevent_dce : register(u0);
 float4 dpdy_699a05() {
   float4 res = ddy((1.0f).xxxx);
   return res;
 }
 
 void fragment_main() {
-  prevent_dce = dpdy_699a05();
+  prevent_dce.Store4(0u, asuint(dpdy_699a05()));
 }
 
diff --git a/test/tint/builtins/gen/literal/dpdy/7f8d84.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/dpdy/7f8d84.wgsl.expected.ir.dxc.hlsl
index 2371cc8..d4bceb2 100644
--- a/test/tint/builtins/gen/literal/dpdy/7f8d84.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/dpdy/7f8d84.wgsl.expected.ir.dxc.hlsl
@@ -1,16 +1,11 @@
-SKIP: FAILED
 
+RWByteAddressBuffer prevent_dce : register(u0);
 float dpdy_7f8d84() {
   float res = ddy(1.0f);
   return res;
 }
 
 void fragment_main() {
-  prevent_dce = dpdy_7f8d84();
+  prevent_dce.Store(0u, asuint(dpdy_7f8d84()));
 }
 
-DXC validation failure:
-hlsl.hlsl:7:3: error: use of undeclared identifier 'prevent_dce'
-  prevent_dce = dpdy_7f8d84();
-  ^
-
diff --git a/test/tint/builtins/gen/literal/dpdy/7f8d84.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/dpdy/7f8d84.wgsl.expected.ir.fxc.hlsl
index 8acd178..d4bceb2 100644
--- a/test/tint/builtins/gen/literal/dpdy/7f8d84.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/dpdy/7f8d84.wgsl.expected.ir.fxc.hlsl
@@ -1,11 +1,11 @@
-SKIP: FAILED
 
+RWByteAddressBuffer prevent_dce : register(u0);
 float dpdy_7f8d84() {
   float res = ddy(1.0f);
   return res;
 }
 
 void fragment_main() {
-  prevent_dce = dpdy_7f8d84();
+  prevent_dce.Store(0u, asuint(dpdy_7f8d84()));
 }
 
diff --git a/test/tint/builtins/gen/literal/dpdy/a8b56e.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/dpdy/a8b56e.wgsl.expected.ir.dxc.hlsl
index 65b8a20..6614af4 100644
--- a/test/tint/builtins/gen/literal/dpdy/a8b56e.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/dpdy/a8b56e.wgsl.expected.ir.dxc.hlsl
@@ -1,16 +1,11 @@
-SKIP: FAILED
 
+RWByteAddressBuffer prevent_dce : register(u0);
 float2 dpdy_a8b56e() {
   float2 res = ddy((1.0f).xx);
   return res;
 }
 
 void fragment_main() {
-  prevent_dce = dpdy_a8b56e();
+  prevent_dce.Store2(0u, asuint(dpdy_a8b56e()));
 }
 
-DXC validation failure:
-hlsl.hlsl:7:3: error: use of undeclared identifier 'prevent_dce'
-  prevent_dce = dpdy_a8b56e();
-  ^
-
diff --git a/test/tint/builtins/gen/literal/dpdy/a8b56e.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/dpdy/a8b56e.wgsl.expected.ir.fxc.hlsl
index 87c15f7..6614af4 100644
--- a/test/tint/builtins/gen/literal/dpdy/a8b56e.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/dpdy/a8b56e.wgsl.expected.ir.fxc.hlsl
@@ -1,11 +1,11 @@
-SKIP: FAILED
 
+RWByteAddressBuffer prevent_dce : register(u0);
 float2 dpdy_a8b56e() {
   float2 res = ddy((1.0f).xx);
   return res;
 }
 
 void fragment_main() {
-  prevent_dce = dpdy_a8b56e();
+  prevent_dce.Store2(0u, asuint(dpdy_a8b56e()));
 }
 
diff --git a/test/tint/builtins/gen/literal/dpdy/feb40f.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/dpdy/feb40f.wgsl.expected.ir.dxc.hlsl
index c8b5fd0..10599fd 100644
--- a/test/tint/builtins/gen/literal/dpdy/feb40f.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/dpdy/feb40f.wgsl.expected.ir.dxc.hlsl
@@ -1,16 +1,11 @@
-SKIP: FAILED
 
+RWByteAddressBuffer prevent_dce : register(u0);
 float3 dpdy_feb40f() {
   float3 res = ddy((1.0f).xxx);
   return res;
 }
 
 void fragment_main() {
-  prevent_dce = dpdy_feb40f();
+  prevent_dce.Store3(0u, asuint(dpdy_feb40f()));
 }
 
-DXC validation failure:
-hlsl.hlsl:7:3: error: use of undeclared identifier 'prevent_dce'
-  prevent_dce = dpdy_feb40f();
-  ^
-
diff --git a/test/tint/builtins/gen/literal/dpdy/feb40f.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/dpdy/feb40f.wgsl.expected.ir.fxc.hlsl
index a99b6ec..10599fd 100644
--- a/test/tint/builtins/gen/literal/dpdy/feb40f.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/dpdy/feb40f.wgsl.expected.ir.fxc.hlsl
@@ -1,11 +1,11 @@
-SKIP: FAILED
 
+RWByteAddressBuffer prevent_dce : register(u0);
 float3 dpdy_feb40f() {
   float3 res = ddy((1.0f).xxx);
   return res;
 }
 
 void fragment_main() {
-  prevent_dce = dpdy_feb40f();
+  prevent_dce.Store3(0u, asuint(dpdy_feb40f()));
 }
 
diff --git a/test/tint/builtins/gen/literal/dpdyCoarse/3e1ab4.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/dpdyCoarse/3e1ab4.wgsl.expected.ir.dxc.hlsl
index 2eab69a..c10b6cc 100644
--- a/test/tint/builtins/gen/literal/dpdyCoarse/3e1ab4.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/dpdyCoarse/3e1ab4.wgsl.expected.ir.dxc.hlsl
@@ -1,16 +1,11 @@
-SKIP: FAILED
 
+RWByteAddressBuffer prevent_dce : register(u0);
 float2 dpdyCoarse_3e1ab4() {
   float2 res = ddy_coarse((1.0f).xx);
   return res;
 }
 
 void fragment_main() {
-  prevent_dce = dpdyCoarse_3e1ab4();
+  prevent_dce.Store2(0u, asuint(dpdyCoarse_3e1ab4()));
 }
 
-DXC validation failure:
-hlsl.hlsl:7:3: error: use of undeclared identifier 'prevent_dce'
-  prevent_dce = dpdyCoarse_3e1ab4();
-  ^
-
diff --git a/test/tint/builtins/gen/literal/dpdyCoarse/3e1ab4.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/dpdyCoarse/3e1ab4.wgsl.expected.ir.fxc.hlsl
index d3ed0a7..c10b6cc 100644
--- a/test/tint/builtins/gen/literal/dpdyCoarse/3e1ab4.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/dpdyCoarse/3e1ab4.wgsl.expected.ir.fxc.hlsl
@@ -1,11 +1,11 @@
-SKIP: FAILED
 
+RWByteAddressBuffer prevent_dce : register(u0);
 float2 dpdyCoarse_3e1ab4() {
   float2 res = ddy_coarse((1.0f).xx);
   return res;
 }
 
 void fragment_main() {
-  prevent_dce = dpdyCoarse_3e1ab4();
+  prevent_dce.Store2(0u, asuint(dpdyCoarse_3e1ab4()));
 }
 
diff --git a/test/tint/builtins/gen/literal/dpdyCoarse/445d24.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/dpdyCoarse/445d24.wgsl.expected.ir.dxc.hlsl
index b920f99..6986aea 100644
--- a/test/tint/builtins/gen/literal/dpdyCoarse/445d24.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/dpdyCoarse/445d24.wgsl.expected.ir.dxc.hlsl
@@ -1,16 +1,11 @@
-SKIP: FAILED
 
+RWByteAddressBuffer prevent_dce : register(u0);
 float4 dpdyCoarse_445d24() {
   float4 res = ddy_coarse((1.0f).xxxx);
   return res;
 }
 
 void fragment_main() {
-  prevent_dce = dpdyCoarse_445d24();
+  prevent_dce.Store4(0u, asuint(dpdyCoarse_445d24()));
 }
 
-DXC validation failure:
-hlsl.hlsl:7:3: error: use of undeclared identifier 'prevent_dce'
-  prevent_dce = dpdyCoarse_445d24();
-  ^
-
diff --git a/test/tint/builtins/gen/literal/dpdyCoarse/445d24.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/dpdyCoarse/445d24.wgsl.expected.ir.fxc.hlsl
index 08c0ebc..6986aea 100644
--- a/test/tint/builtins/gen/literal/dpdyCoarse/445d24.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/dpdyCoarse/445d24.wgsl.expected.ir.fxc.hlsl
@@ -1,11 +1,11 @@
-SKIP: FAILED
 
+RWByteAddressBuffer prevent_dce : register(u0);
 float4 dpdyCoarse_445d24() {
   float4 res = ddy_coarse((1.0f).xxxx);
   return res;
 }
 
 void fragment_main() {
-  prevent_dce = dpdyCoarse_445d24();
+  prevent_dce.Store4(0u, asuint(dpdyCoarse_445d24()));
 }
 
diff --git a/test/tint/builtins/gen/literal/dpdyCoarse/870a7e.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/dpdyCoarse/870a7e.wgsl.expected.ir.dxc.hlsl
index 3ffba03..2b3571d 100644
--- a/test/tint/builtins/gen/literal/dpdyCoarse/870a7e.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/dpdyCoarse/870a7e.wgsl.expected.ir.dxc.hlsl
@@ -1,16 +1,11 @@
-SKIP: FAILED
 
+RWByteAddressBuffer prevent_dce : register(u0);
 float dpdyCoarse_870a7e() {
   float res = ddy_coarse(1.0f);
   return res;
 }
 
 void fragment_main() {
-  prevent_dce = dpdyCoarse_870a7e();
+  prevent_dce.Store(0u, asuint(dpdyCoarse_870a7e()));
 }
 
-DXC validation failure:
-hlsl.hlsl:7:3: error: use of undeclared identifier 'prevent_dce'
-  prevent_dce = dpdyCoarse_870a7e();
-  ^
-
diff --git a/test/tint/builtins/gen/literal/dpdyCoarse/870a7e.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/dpdyCoarse/870a7e.wgsl.expected.ir.fxc.hlsl
index 8e83232..2b3571d 100644
--- a/test/tint/builtins/gen/literal/dpdyCoarse/870a7e.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/dpdyCoarse/870a7e.wgsl.expected.ir.fxc.hlsl
@@ -1,11 +1,11 @@
-SKIP: FAILED
 
+RWByteAddressBuffer prevent_dce : register(u0);
 float dpdyCoarse_870a7e() {
   float res = ddy_coarse(1.0f);
   return res;
 }
 
 void fragment_main() {
-  prevent_dce = dpdyCoarse_870a7e();
+  prevent_dce.Store(0u, asuint(dpdyCoarse_870a7e()));
 }
 
diff --git a/test/tint/builtins/gen/literal/dpdyCoarse/ae1873.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/dpdyCoarse/ae1873.wgsl.expected.ir.dxc.hlsl
index 8e988eb..12c5f7a 100644
--- a/test/tint/builtins/gen/literal/dpdyCoarse/ae1873.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/dpdyCoarse/ae1873.wgsl.expected.ir.dxc.hlsl
@@ -1,16 +1,11 @@
-SKIP: FAILED
 
+RWByteAddressBuffer prevent_dce : register(u0);
 float3 dpdyCoarse_ae1873() {
   float3 res = ddy_coarse((1.0f).xxx);
   return res;
 }
 
 void fragment_main() {
-  prevent_dce = dpdyCoarse_ae1873();
+  prevent_dce.Store3(0u, asuint(dpdyCoarse_ae1873()));
 }
 
-DXC validation failure:
-hlsl.hlsl:7:3: error: use of undeclared identifier 'prevent_dce'
-  prevent_dce = dpdyCoarse_ae1873();
-  ^
-
diff --git a/test/tint/builtins/gen/literal/dpdyCoarse/ae1873.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/dpdyCoarse/ae1873.wgsl.expected.ir.fxc.hlsl
index e3d041c..12c5f7a 100644
--- a/test/tint/builtins/gen/literal/dpdyCoarse/ae1873.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/dpdyCoarse/ae1873.wgsl.expected.ir.fxc.hlsl
@@ -1,11 +1,11 @@
-SKIP: FAILED
 
+RWByteAddressBuffer prevent_dce : register(u0);
 float3 dpdyCoarse_ae1873() {
   float3 res = ddy_coarse((1.0f).xxx);
   return res;
 }
 
 void fragment_main() {
-  prevent_dce = dpdyCoarse_ae1873();
+  prevent_dce.Store3(0u, asuint(dpdyCoarse_ae1873()));
 }
 
diff --git a/test/tint/builtins/gen/literal/dpdyFine/1fb7ab.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/dpdyFine/1fb7ab.wgsl.expected.ir.dxc.hlsl
index 0b5cece..3c37cae 100644
--- a/test/tint/builtins/gen/literal/dpdyFine/1fb7ab.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/dpdyFine/1fb7ab.wgsl.expected.ir.dxc.hlsl
@@ -1,16 +1,11 @@
-SKIP: FAILED
 
+RWByteAddressBuffer prevent_dce : register(u0);
 float3 dpdyFine_1fb7ab() {
   float3 res = ddy_fine((1.0f).xxx);
   return res;
 }
 
 void fragment_main() {
-  prevent_dce = dpdyFine_1fb7ab();
+  prevent_dce.Store3(0u, asuint(dpdyFine_1fb7ab()));
 }
 
-DXC validation failure:
-hlsl.hlsl:7:3: error: use of undeclared identifier 'prevent_dce'
-  prevent_dce = dpdyFine_1fb7ab();
-  ^
-
diff --git a/test/tint/builtins/gen/literal/dpdyFine/1fb7ab.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/dpdyFine/1fb7ab.wgsl.expected.ir.fxc.hlsl
index 54b6175..3c37cae 100644
--- a/test/tint/builtins/gen/literal/dpdyFine/1fb7ab.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/dpdyFine/1fb7ab.wgsl.expected.ir.fxc.hlsl
@@ -1,11 +1,11 @@
-SKIP: FAILED
 
+RWByteAddressBuffer prevent_dce : register(u0);
 float3 dpdyFine_1fb7ab() {
   float3 res = ddy_fine((1.0f).xxx);
   return res;
 }
 
 void fragment_main() {
-  prevent_dce = dpdyFine_1fb7ab();
+  prevent_dce.Store3(0u, asuint(dpdyFine_1fb7ab()));
 }
 
diff --git a/test/tint/builtins/gen/literal/dpdyFine/6eb673.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/dpdyFine/6eb673.wgsl.expected.ir.dxc.hlsl
index d98c6d5..ea0c5f9 100644
--- a/test/tint/builtins/gen/literal/dpdyFine/6eb673.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/dpdyFine/6eb673.wgsl.expected.ir.dxc.hlsl
@@ -1,16 +1,11 @@
-SKIP: FAILED
 
+RWByteAddressBuffer prevent_dce : register(u0);
 float dpdyFine_6eb673() {
   float res = ddy_fine(1.0f);
   return res;
 }
 
 void fragment_main() {
-  prevent_dce = dpdyFine_6eb673();
+  prevent_dce.Store(0u, asuint(dpdyFine_6eb673()));
 }
 
-DXC validation failure:
-hlsl.hlsl:7:3: error: use of undeclared identifier 'prevent_dce'
-  prevent_dce = dpdyFine_6eb673();
-  ^
-
diff --git a/test/tint/builtins/gen/literal/dpdyFine/6eb673.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/dpdyFine/6eb673.wgsl.expected.ir.fxc.hlsl
index 0bfbcf7..ea0c5f9 100644
--- a/test/tint/builtins/gen/literal/dpdyFine/6eb673.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/dpdyFine/6eb673.wgsl.expected.ir.fxc.hlsl
@@ -1,11 +1,11 @@
-SKIP: FAILED
 
+RWByteAddressBuffer prevent_dce : register(u0);
 float dpdyFine_6eb673() {
   float res = ddy_fine(1.0f);
   return res;
 }
 
 void fragment_main() {
-  prevent_dce = dpdyFine_6eb673();
+  prevent_dce.Store(0u, asuint(dpdyFine_6eb673()));
 }
 
diff --git a/test/tint/builtins/gen/literal/dpdyFine/d0a648.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/dpdyFine/d0a648.wgsl.expected.ir.dxc.hlsl
index 18f8dbe..7809e2d 100644
--- a/test/tint/builtins/gen/literal/dpdyFine/d0a648.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/dpdyFine/d0a648.wgsl.expected.ir.dxc.hlsl
@@ -1,16 +1,11 @@
-SKIP: FAILED
 
+RWByteAddressBuffer prevent_dce : register(u0);
 float4 dpdyFine_d0a648() {
   float4 res = ddy_fine((1.0f).xxxx);
   return res;
 }
 
 void fragment_main() {
-  prevent_dce = dpdyFine_d0a648();
+  prevent_dce.Store4(0u, asuint(dpdyFine_d0a648()));
 }
 
-DXC validation failure:
-hlsl.hlsl:7:3: error: use of undeclared identifier 'prevent_dce'
-  prevent_dce = dpdyFine_d0a648();
-  ^
-
diff --git a/test/tint/builtins/gen/literal/dpdyFine/d0a648.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/dpdyFine/d0a648.wgsl.expected.ir.fxc.hlsl
index 569320b..7809e2d 100644
--- a/test/tint/builtins/gen/literal/dpdyFine/d0a648.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/dpdyFine/d0a648.wgsl.expected.ir.fxc.hlsl
@@ -1,11 +1,11 @@
-SKIP: FAILED
 
+RWByteAddressBuffer prevent_dce : register(u0);
 float4 dpdyFine_d0a648() {
   float4 res = ddy_fine((1.0f).xxxx);
   return res;
 }
 
 void fragment_main() {
-  prevent_dce = dpdyFine_d0a648();
+  prevent_dce.Store4(0u, asuint(dpdyFine_d0a648()));
 }
 
diff --git a/test/tint/builtins/gen/literal/dpdyFine/df33aa.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/dpdyFine/df33aa.wgsl.expected.ir.dxc.hlsl
index 39f853c..f3d0be8 100644
--- a/test/tint/builtins/gen/literal/dpdyFine/df33aa.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/dpdyFine/df33aa.wgsl.expected.ir.dxc.hlsl
@@ -1,16 +1,11 @@
-SKIP: FAILED
 
+RWByteAddressBuffer prevent_dce : register(u0);
 float2 dpdyFine_df33aa() {
   float2 res = ddy_fine((1.0f).xx);
   return res;
 }
 
 void fragment_main() {
-  prevent_dce = dpdyFine_df33aa();
+  prevent_dce.Store2(0u, asuint(dpdyFine_df33aa()));
 }
 
-DXC validation failure:
-hlsl.hlsl:7:3: error: use of undeclared identifier 'prevent_dce'
-  prevent_dce = dpdyFine_df33aa();
-  ^
-
diff --git a/test/tint/builtins/gen/literal/dpdyFine/df33aa.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/dpdyFine/df33aa.wgsl.expected.ir.fxc.hlsl
index 7416b8f..f3d0be8 100644
--- a/test/tint/builtins/gen/literal/dpdyFine/df33aa.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/dpdyFine/df33aa.wgsl.expected.ir.fxc.hlsl
@@ -1,11 +1,11 @@
-SKIP: FAILED
 
+RWByteAddressBuffer prevent_dce : register(u0);
 float2 dpdyFine_df33aa() {
   float2 res = ddy_fine((1.0f).xx);
   return res;
 }
 
 void fragment_main() {
-  prevent_dce = dpdyFine_df33aa();
+  prevent_dce.Store2(0u, asuint(dpdyFine_df33aa()));
 }
 
diff --git a/test/tint/builtins/gen/literal/exp/0f70eb.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/exp/0f70eb.wgsl.expected.ir.dxc.hlsl
index 0ba40c6..fb58741 100644
--- a/test/tint/builtins/gen/literal/exp/0f70eb.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/exp/0f70eb.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,42 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  float4 prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation float4 VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+float4 exp_0f70eb() {
+  float4 res = (2.71828174591064453125f).xxxx;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store4(0u, asuint(exp_0f70eb()));
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store4(0u, asuint(exp_0f70eb()));
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = exp_0f70eb();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
diff --git a/test/tint/builtins/gen/literal/exp/0f70eb.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/exp/0f70eb.wgsl.expected.ir.fxc.hlsl
index 0ba40c6..fb58741 100644
--- a/test/tint/builtins/gen/literal/exp/0f70eb.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/exp/0f70eb.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,42 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  float4 prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation float4 VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+float4 exp_0f70eb() {
+  float4 res = (2.71828174591064453125f).xxxx;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store4(0u, asuint(exp_0f70eb()));
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store4(0u, asuint(exp_0f70eb()));
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = exp_0f70eb();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
diff --git a/test/tint/builtins/gen/literal/exp/13806d.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/exp/13806d.wgsl.expected.ir.dxc.hlsl
index 0ba40c6..28123de 100644
--- a/test/tint/builtins/gen/literal/exp/13806d.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/exp/13806d.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,42 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  vector<float16_t, 3> prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation vector<float16_t, 3> VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+vector<float16_t, 3> exp_13806d() {
+  vector<float16_t, 3> res = (float16_t(2.716796875h)).xxx;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store<vector<float16_t, 3> >(0u, exp_13806d());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store<vector<float16_t, 3> >(0u, exp_13806d());
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = exp_13806d();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
diff --git a/test/tint/builtins/gen/literal/exp/13806d.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/exp/13806d.wgsl.expected.ir.fxc.hlsl
index 0ba40c6..50e2f3c 100644
--- a/test/tint/builtins/gen/literal/exp/13806d.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/exp/13806d.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,47 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct VertexOutput {
+  float4 pos;
+  vector<float16_t, 3> prevent_dce;
+};
+
+struct vertex_main_outputs {
+  nointerpolation vector<float16_t, 3> VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+vector<float16_t, 3> exp_13806d() {
+  vector<float16_t, 3> res = (float16_t(2.716796875h)).xxx;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store<vector<float16_t, 3> >(0u, exp_13806d());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store<vector<float16_t, 3> >(0u, exp_13806d());
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = exp_13806d();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
+FXC validation failure:
+c:\src\dawn\Shader@0x0000028197B60850(3,10-18): error X3000: syntax error: unexpected token 'float16_t'
+
diff --git a/test/tint/builtins/gen/literal/exp/1951e7.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/exp/1951e7.wgsl.expected.ir.dxc.hlsl
index 0ba40c6..49371f4 100644
--- a/test/tint/builtins/gen/literal/exp/1951e7.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/exp/1951e7.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,42 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  float2 prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation float2 VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+float2 exp_1951e7() {
+  float2 res = (2.71828174591064453125f).xx;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store2(0u, asuint(exp_1951e7()));
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store2(0u, asuint(exp_1951e7()));
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = exp_1951e7();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
diff --git a/test/tint/builtins/gen/literal/exp/1951e7.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/exp/1951e7.wgsl.expected.ir.fxc.hlsl
index 0ba40c6..49371f4 100644
--- a/test/tint/builtins/gen/literal/exp/1951e7.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/exp/1951e7.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,42 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  float2 prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation float2 VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+float2 exp_1951e7() {
+  float2 res = (2.71828174591064453125f).xx;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store2(0u, asuint(exp_1951e7()));
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store2(0u, asuint(exp_1951e7()));
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = exp_1951e7();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
diff --git a/test/tint/builtins/gen/literal/exp/2e08e2.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/exp/2e08e2.wgsl.expected.ir.dxc.hlsl
index 0ba40c6..e299542 100644
--- a/test/tint/builtins/gen/literal/exp/2e08e2.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/exp/2e08e2.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,42 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  vector<float16_t, 2> prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation vector<float16_t, 2> VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+vector<float16_t, 2> exp_2e08e2() {
+  vector<float16_t, 2> res = (float16_t(2.716796875h)).xx;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store<vector<float16_t, 2> >(0u, exp_2e08e2());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store<vector<float16_t, 2> >(0u, exp_2e08e2());
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = exp_2e08e2();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
diff --git a/test/tint/builtins/gen/literal/exp/2e08e2.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/exp/2e08e2.wgsl.expected.ir.fxc.hlsl
index 0ba40c6..699a817 100644
--- a/test/tint/builtins/gen/literal/exp/2e08e2.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/exp/2e08e2.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,47 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct VertexOutput {
+  float4 pos;
+  vector<float16_t, 2> prevent_dce;
+};
+
+struct vertex_main_outputs {
+  nointerpolation vector<float16_t, 2> VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+vector<float16_t, 2> exp_2e08e2() {
+  vector<float16_t, 2> res = (float16_t(2.716796875h)).xx;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store<vector<float16_t, 2> >(0u, exp_2e08e2());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store<vector<float16_t, 2> >(0u, exp_2e08e2());
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = exp_2e08e2();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
+FXC validation failure:
+c:\src\dawn\Shader@0x000002A6AC986440(3,10-18): error X3000: syntax error: unexpected token 'float16_t'
+
diff --git a/test/tint/builtins/gen/literal/exp/49e4c5.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/exp/49e4c5.wgsl.expected.ir.dxc.hlsl
index 0ba40c6..32207e7 100644
--- a/test/tint/builtins/gen/literal/exp/49e4c5.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/exp/49e4c5.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,36 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+void exp_49e4c5() {
+  float res = 2.71828174591064453125f;
+}
+
+void fragment_main() {
+  exp_49e4c5();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  exp_49e4c5();
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  exp_49e4c5();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  vertex_main_outputs v_2 = {v_1.pos};
+  return v_2;
+}
+
diff --git a/test/tint/builtins/gen/literal/exp/49e4c5.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/exp/49e4c5.wgsl.expected.ir.fxc.hlsl
index 0ba40c6..32207e7 100644
--- a/test/tint/builtins/gen/literal/exp/49e4c5.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/exp/49e4c5.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,36 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+void exp_49e4c5() {
+  float res = 2.71828174591064453125f;
+}
+
+void fragment_main() {
+  exp_49e4c5();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  exp_49e4c5();
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  exp_49e4c5();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  vertex_main_outputs v_2 = {v_1.pos};
+  return v_2;
+}
+
diff --git a/test/tint/builtins/gen/literal/exp/611a87.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/exp/611a87.wgsl.expected.ir.dxc.hlsl
index 0ba40c6..5ece35e 100644
--- a/test/tint/builtins/gen/literal/exp/611a87.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/exp/611a87.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,42 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  vector<float16_t, 4> prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation vector<float16_t, 4> VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+vector<float16_t, 4> exp_611a87() {
+  vector<float16_t, 4> res = (float16_t(2.716796875h)).xxxx;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store<vector<float16_t, 4> >(0u, exp_611a87());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store<vector<float16_t, 4> >(0u, exp_611a87());
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = exp_611a87();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
diff --git a/test/tint/builtins/gen/literal/exp/611a87.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/exp/611a87.wgsl.expected.ir.fxc.hlsl
index 0ba40c6..00b60b9 100644
--- a/test/tint/builtins/gen/literal/exp/611a87.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/exp/611a87.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,47 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct VertexOutput {
+  float4 pos;
+  vector<float16_t, 4> prevent_dce;
+};
+
+struct vertex_main_outputs {
+  nointerpolation vector<float16_t, 4> VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+vector<float16_t, 4> exp_611a87() {
+  vector<float16_t, 4> res = (float16_t(2.716796875h)).xxxx;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store<vector<float16_t, 4> >(0u, exp_611a87());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store<vector<float16_t, 4> >(0u, exp_611a87());
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = exp_611a87();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
+FXC validation failure:
+c:\src\dawn\Shader@0x000001A3D2C8FA40(3,10-18): error X3000: syntax error: unexpected token 'float16_t'
+
diff --git a/test/tint/builtins/gen/literal/exp/699629.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/exp/699629.wgsl.expected.ir.dxc.hlsl
index 0ba40c6..87271e5 100644
--- a/test/tint/builtins/gen/literal/exp/699629.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/exp/699629.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,36 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+void exp_699629() {
+  float2 res = (2.71828174591064453125f).xx;
+}
+
+void fragment_main() {
+  exp_699629();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  exp_699629();
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  exp_699629();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  vertex_main_outputs v_2 = {v_1.pos};
+  return v_2;
+}
+
diff --git a/test/tint/builtins/gen/literal/exp/699629.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/exp/699629.wgsl.expected.ir.fxc.hlsl
index 0ba40c6..87271e5 100644
--- a/test/tint/builtins/gen/literal/exp/699629.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/exp/699629.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,36 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+void exp_699629() {
+  float2 res = (2.71828174591064453125f).xx;
+}
+
+void fragment_main() {
+  exp_699629();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  exp_699629();
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  exp_699629();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  vertex_main_outputs v_2 = {v_1.pos};
+  return v_2;
+}
+
diff --git a/test/tint/builtins/gen/literal/exp/771fd2.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/exp/771fd2.wgsl.expected.ir.dxc.hlsl
index 0ba40c6..0d2cfbd 100644
--- a/test/tint/builtins/gen/literal/exp/771fd2.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/exp/771fd2.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,42 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  float prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation float VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+float exp_771fd2() {
+  float res = 2.71828174591064453125f;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store(0u, asuint(exp_771fd2()));
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store(0u, asuint(exp_771fd2()));
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = exp_771fd2();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
diff --git a/test/tint/builtins/gen/literal/exp/771fd2.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/exp/771fd2.wgsl.expected.ir.fxc.hlsl
index 0ba40c6..0d2cfbd 100644
--- a/test/tint/builtins/gen/literal/exp/771fd2.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/exp/771fd2.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,42 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  float prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation float VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+float exp_771fd2() {
+  float res = 2.71828174591064453125f;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store(0u, asuint(exp_771fd2()));
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store(0u, asuint(exp_771fd2()));
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = exp_771fd2();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
diff --git a/test/tint/builtins/gen/literal/exp/bda5bb.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/exp/bda5bb.wgsl.expected.ir.dxc.hlsl
index 0ba40c6..c7804f0 100644
--- a/test/tint/builtins/gen/literal/exp/bda5bb.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/exp/bda5bb.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,36 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+void exp_bda5bb() {
+  float3 res = (2.71828174591064453125f).xxx;
+}
+
+void fragment_main() {
+  exp_bda5bb();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  exp_bda5bb();
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  exp_bda5bb();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  vertex_main_outputs v_2 = {v_1.pos};
+  return v_2;
+}
+
diff --git a/test/tint/builtins/gen/literal/exp/bda5bb.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/exp/bda5bb.wgsl.expected.ir.fxc.hlsl
index 0ba40c6..c7804f0 100644
--- a/test/tint/builtins/gen/literal/exp/bda5bb.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/exp/bda5bb.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,36 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+void exp_bda5bb() {
+  float3 res = (2.71828174591064453125f).xxx;
+}
+
+void fragment_main() {
+  exp_bda5bb();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  exp_bda5bb();
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  exp_bda5bb();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  vertex_main_outputs v_2 = {v_1.pos};
+  return v_2;
+}
+
diff --git a/test/tint/builtins/gen/literal/exp/c18fe9.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/exp/c18fe9.wgsl.expected.ir.dxc.hlsl
index 0ba40c6..a0b8588 100644
--- a/test/tint/builtins/gen/literal/exp/c18fe9.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/exp/c18fe9.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,42 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  float16_t prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation float16_t VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+float16_t exp_c18fe9() {
+  float16_t res = float16_t(2.716796875h);
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store<float16_t>(0u, exp_c18fe9());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store<float16_t>(0u, exp_c18fe9());
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = exp_c18fe9();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
diff --git a/test/tint/builtins/gen/literal/exp/c18fe9.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/exp/c18fe9.wgsl.expected.ir.fxc.hlsl
index 0ba40c6..e6e859c 100644
--- a/test/tint/builtins/gen/literal/exp/c18fe9.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/exp/c18fe9.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,47 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct VertexOutput {
+  float4 pos;
+  float16_t prevent_dce;
+};
+
+struct vertex_main_outputs {
+  nointerpolation float16_t VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+float16_t exp_c18fe9() {
+  float16_t res = float16_t(2.716796875h);
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store<float16_t>(0u, exp_c18fe9());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store<float16_t>(0u, exp_c18fe9());
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = exp_c18fe9();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
+FXC validation failure:
+c:\src\dawn\Shader@0x000001F64B4A4730(3,3-11): error X3000: unrecognized identifier 'float16_t'
+
diff --git a/test/tint/builtins/gen/literal/exp/d98450.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/exp/d98450.wgsl.expected.ir.dxc.hlsl
index 0ba40c6..c91babe 100644
--- a/test/tint/builtins/gen/literal/exp/d98450.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/exp/d98450.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,42 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  float3 prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation float3 VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+float3 exp_d98450() {
+  float3 res = (2.71828174591064453125f).xxx;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store3(0u, asuint(exp_d98450()));
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store3(0u, asuint(exp_d98450()));
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = exp_d98450();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
diff --git a/test/tint/builtins/gen/literal/exp/d98450.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/exp/d98450.wgsl.expected.ir.fxc.hlsl
index 0ba40c6..c91babe 100644
--- a/test/tint/builtins/gen/literal/exp/d98450.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/exp/d98450.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,42 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  float3 prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation float3 VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+float3 exp_d98450() {
+  float3 res = (2.71828174591064453125f).xxx;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store3(0u, asuint(exp_d98450()));
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store3(0u, asuint(exp_d98450()));
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = exp_d98450();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
diff --git a/test/tint/builtins/gen/literal/exp/dad791.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/exp/dad791.wgsl.expected.ir.dxc.hlsl
index 0ba40c6..fc2d9be 100644
--- a/test/tint/builtins/gen/literal/exp/dad791.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/exp/dad791.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,36 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+void exp_dad791() {
+  float4 res = (2.71828174591064453125f).xxxx;
+}
+
+void fragment_main() {
+  exp_dad791();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  exp_dad791();
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  exp_dad791();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  vertex_main_outputs v_2 = {v_1.pos};
+  return v_2;
+}
+
diff --git a/test/tint/builtins/gen/literal/exp/dad791.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/exp/dad791.wgsl.expected.ir.fxc.hlsl
index 0ba40c6..fc2d9be 100644
--- a/test/tint/builtins/gen/literal/exp/dad791.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/exp/dad791.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,36 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+void exp_dad791() {
+  float4 res = (2.71828174591064453125f).xxxx;
+}
+
+void fragment_main() {
+  exp_dad791();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  exp_dad791();
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  exp_dad791();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  vertex_main_outputs v_2 = {v_1.pos};
+  return v_2;
+}
+
diff --git a/test/tint/builtins/gen/literal/exp2/151a4c.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/exp2/151a4c.wgsl.expected.ir.dxc.hlsl
index 0ba40c6..1ffb67a 100644
--- a/test/tint/builtins/gen/literal/exp2/151a4c.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/exp2/151a4c.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,42 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  vector<float16_t, 2> prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation vector<float16_t, 2> VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+vector<float16_t, 2> exp2_151a4c() {
+  vector<float16_t, 2> res = (float16_t(2.0h)).xx;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store<vector<float16_t, 2> >(0u, exp2_151a4c());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store<vector<float16_t, 2> >(0u, exp2_151a4c());
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = exp2_151a4c();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
diff --git a/test/tint/builtins/gen/literal/exp2/151a4c.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/exp2/151a4c.wgsl.expected.ir.fxc.hlsl
index 0ba40c6..84c4806 100644
--- a/test/tint/builtins/gen/literal/exp2/151a4c.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/exp2/151a4c.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,47 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct VertexOutput {
+  float4 pos;
+  vector<float16_t, 2> prevent_dce;
+};
+
+struct vertex_main_outputs {
+  nointerpolation vector<float16_t, 2> VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+vector<float16_t, 2> exp2_151a4c() {
+  vector<float16_t, 2> res = (float16_t(2.0h)).xx;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store<vector<float16_t, 2> >(0u, exp2_151a4c());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store<vector<float16_t, 2> >(0u, exp2_151a4c());
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = exp2_151a4c();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
+FXC validation failure:
+c:\src\dawn\Shader@0x00000251E39C3D50(3,10-18): error X3000: syntax error: unexpected token 'float16_t'
+
diff --git a/test/tint/builtins/gen/literal/exp2/18aa76.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/exp2/18aa76.wgsl.expected.ir.dxc.hlsl
index 0ba40c6..8e32a72 100644
--- a/test/tint/builtins/gen/literal/exp2/18aa76.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/exp2/18aa76.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,36 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+void exp2_18aa76() {
+  float2 res = (2.0f).xx;
+}
+
+void fragment_main() {
+  exp2_18aa76();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  exp2_18aa76();
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  exp2_18aa76();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  vertex_main_outputs v_2 = {v_1.pos};
+  return v_2;
+}
+
diff --git a/test/tint/builtins/gen/literal/exp2/18aa76.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/exp2/18aa76.wgsl.expected.ir.fxc.hlsl
index 0ba40c6..8e32a72 100644
--- a/test/tint/builtins/gen/literal/exp2/18aa76.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/exp2/18aa76.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,36 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+void exp2_18aa76() {
+  float2 res = (2.0f).xx;
+}
+
+void fragment_main() {
+  exp2_18aa76();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  exp2_18aa76();
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  exp2_18aa76();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  vertex_main_outputs v_2 = {v_1.pos};
+  return v_2;
+}
+
diff --git a/test/tint/builtins/gen/literal/exp2/1f8680.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/exp2/1f8680.wgsl.expected.ir.dxc.hlsl
index 0ba40c6..bdc97da 100644
--- a/test/tint/builtins/gen/literal/exp2/1f8680.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/exp2/1f8680.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,42 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  float3 prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation float3 VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+float3 exp2_1f8680() {
+  float3 res = (2.0f).xxx;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store3(0u, asuint(exp2_1f8680()));
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store3(0u, asuint(exp2_1f8680()));
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = exp2_1f8680();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
diff --git a/test/tint/builtins/gen/literal/exp2/1f8680.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/exp2/1f8680.wgsl.expected.ir.fxc.hlsl
index 0ba40c6..bdc97da 100644
--- a/test/tint/builtins/gen/literal/exp2/1f8680.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/exp2/1f8680.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,42 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  float3 prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation float3 VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+float3 exp2_1f8680() {
+  float3 res = (2.0f).xxx;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store3(0u, asuint(exp2_1f8680()));
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store3(0u, asuint(exp2_1f8680()));
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = exp2_1f8680();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
diff --git a/test/tint/builtins/gen/literal/exp2/303753.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/exp2/303753.wgsl.expected.ir.dxc.hlsl
index 0ba40c6..4b6eca9 100644
--- a/test/tint/builtins/gen/literal/exp2/303753.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/exp2/303753.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,36 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+void exp2_303753() {
+  float3 res = (2.0f).xxx;
+}
+
+void fragment_main() {
+  exp2_303753();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  exp2_303753();
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  exp2_303753();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  vertex_main_outputs v_2 = {v_1.pos};
+  return v_2;
+}
+
diff --git a/test/tint/builtins/gen/literal/exp2/303753.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/exp2/303753.wgsl.expected.ir.fxc.hlsl
index 0ba40c6..4b6eca9 100644
--- a/test/tint/builtins/gen/literal/exp2/303753.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/exp2/303753.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,36 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+void exp2_303753() {
+  float3 res = (2.0f).xxx;
+}
+
+void fragment_main() {
+  exp2_303753();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  exp2_303753();
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  exp2_303753();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  vertex_main_outputs v_2 = {v_1.pos};
+  return v_2;
+}
+
diff --git a/test/tint/builtins/gen/literal/exp2/751377.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/exp2/751377.wgsl.expected.ir.dxc.hlsl
index 0ba40c6..5ebcf15 100644
--- a/test/tint/builtins/gen/literal/exp2/751377.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/exp2/751377.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,42 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  vector<float16_t, 3> prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation vector<float16_t, 3> VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+vector<float16_t, 3> exp2_751377() {
+  vector<float16_t, 3> res = (float16_t(2.0h)).xxx;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store<vector<float16_t, 3> >(0u, exp2_751377());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store<vector<float16_t, 3> >(0u, exp2_751377());
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = exp2_751377();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
diff --git a/test/tint/builtins/gen/literal/exp2/751377.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/exp2/751377.wgsl.expected.ir.fxc.hlsl
index 0ba40c6..9c5aab5 100644
--- a/test/tint/builtins/gen/literal/exp2/751377.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/exp2/751377.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,47 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct VertexOutput {
+  float4 pos;
+  vector<float16_t, 3> prevent_dce;
+};
+
+struct vertex_main_outputs {
+  nointerpolation vector<float16_t, 3> VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+vector<float16_t, 3> exp2_751377() {
+  vector<float16_t, 3> res = (float16_t(2.0h)).xxx;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store<vector<float16_t, 3> >(0u, exp2_751377());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store<vector<float16_t, 3> >(0u, exp2_751377());
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = exp2_751377();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
+FXC validation failure:
+c:\src\dawn\Shader@0x000001AB50922A90(3,10-18): error X3000: syntax error: unexpected token 'float16_t'
+
diff --git a/test/tint/builtins/gen/literal/exp2/8bd72d.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/exp2/8bd72d.wgsl.expected.ir.dxc.hlsl
index 0ba40c6..624ea41 100644
--- a/test/tint/builtins/gen/literal/exp2/8bd72d.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/exp2/8bd72d.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,36 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+void exp2_8bd72d() {
+  float4 res = (2.0f).xxxx;
+}
+
+void fragment_main() {
+  exp2_8bd72d();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  exp2_8bd72d();
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  exp2_8bd72d();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  vertex_main_outputs v_2 = {v_1.pos};
+  return v_2;
+}
+
diff --git a/test/tint/builtins/gen/literal/exp2/8bd72d.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/exp2/8bd72d.wgsl.expected.ir.fxc.hlsl
index 0ba40c6..624ea41 100644
--- a/test/tint/builtins/gen/literal/exp2/8bd72d.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/exp2/8bd72d.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,36 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+void exp2_8bd72d() {
+  float4 res = (2.0f).xxxx;
+}
+
+void fragment_main() {
+  exp2_8bd72d();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  exp2_8bd72d();
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  exp2_8bd72d();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  vertex_main_outputs v_2 = {v_1.pos};
+  return v_2;
+}
+
diff --git a/test/tint/builtins/gen/literal/exp2/a9d0a7.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/exp2/a9d0a7.wgsl.expected.ir.dxc.hlsl
index 0ba40c6..48f9617 100644
--- a/test/tint/builtins/gen/literal/exp2/a9d0a7.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/exp2/a9d0a7.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,42 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  float4 prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation float4 VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+float4 exp2_a9d0a7() {
+  float4 res = (2.0f).xxxx;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store4(0u, asuint(exp2_a9d0a7()));
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store4(0u, asuint(exp2_a9d0a7()));
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = exp2_a9d0a7();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
diff --git a/test/tint/builtins/gen/literal/exp2/a9d0a7.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/exp2/a9d0a7.wgsl.expected.ir.fxc.hlsl
index 0ba40c6..48f9617 100644
--- a/test/tint/builtins/gen/literal/exp2/a9d0a7.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/exp2/a9d0a7.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,42 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  float4 prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation float4 VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+float4 exp2_a9d0a7() {
+  float4 res = (2.0f).xxxx;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store4(0u, asuint(exp2_a9d0a7()));
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store4(0u, asuint(exp2_a9d0a7()));
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = exp2_a9d0a7();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
diff --git a/test/tint/builtins/gen/literal/exp2/b408e4.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/exp2/b408e4.wgsl.expected.ir.dxc.hlsl
index 0ba40c6..828149b 100644
--- a/test/tint/builtins/gen/literal/exp2/b408e4.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/exp2/b408e4.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,42 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  float16_t prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation float16_t VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+float16_t exp2_b408e4() {
+  float16_t res = float16_t(2.0h);
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store<float16_t>(0u, exp2_b408e4());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store<float16_t>(0u, exp2_b408e4());
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = exp2_b408e4();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
diff --git a/test/tint/builtins/gen/literal/exp2/b408e4.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/exp2/b408e4.wgsl.expected.ir.fxc.hlsl
index 0ba40c6..f6eab91 100644
--- a/test/tint/builtins/gen/literal/exp2/b408e4.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/exp2/b408e4.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,47 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct VertexOutput {
+  float4 pos;
+  float16_t prevent_dce;
+};
+
+struct vertex_main_outputs {
+  nointerpolation float16_t VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+float16_t exp2_b408e4() {
+  float16_t res = float16_t(2.0h);
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store<float16_t>(0u, exp2_b408e4());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store<float16_t>(0u, exp2_b408e4());
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = exp2_b408e4();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
+FXC validation failure:
+c:\src\dawn\Shader@0x0000020361C8F580(3,3-11): error X3000: unrecognized identifier 'float16_t'
+
diff --git a/test/tint/builtins/gen/literal/exp2/d6777c.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/exp2/d6777c.wgsl.expected.ir.dxc.hlsl
index 0ba40c6..7458eec 100644
--- a/test/tint/builtins/gen/literal/exp2/d6777c.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/exp2/d6777c.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,42 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  float2 prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation float2 VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+float2 exp2_d6777c() {
+  float2 res = (2.0f).xx;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store2(0u, asuint(exp2_d6777c()));
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store2(0u, asuint(exp2_d6777c()));
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = exp2_d6777c();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
diff --git a/test/tint/builtins/gen/literal/exp2/d6777c.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/exp2/d6777c.wgsl.expected.ir.fxc.hlsl
index 0ba40c6..7458eec 100644
--- a/test/tint/builtins/gen/literal/exp2/d6777c.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/exp2/d6777c.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,42 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  float2 prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation float2 VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+float2 exp2_d6777c() {
+  float2 res = (2.0f).xx;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store2(0u, asuint(exp2_d6777c()));
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store2(0u, asuint(exp2_d6777c()));
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = exp2_d6777c();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
diff --git a/test/tint/builtins/gen/literal/exp2/dea523.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/exp2/dea523.wgsl.expected.ir.dxc.hlsl
index 0ba40c6..f1e3103 100644
--- a/test/tint/builtins/gen/literal/exp2/dea523.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/exp2/dea523.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,42 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  float prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation float VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+float exp2_dea523() {
+  float res = 2.0f;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store(0u, asuint(exp2_dea523()));
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store(0u, asuint(exp2_dea523()));
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = exp2_dea523();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
diff --git a/test/tint/builtins/gen/literal/exp2/dea523.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/exp2/dea523.wgsl.expected.ir.fxc.hlsl
index 0ba40c6..f1e3103 100644
--- a/test/tint/builtins/gen/literal/exp2/dea523.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/exp2/dea523.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,42 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  float prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation float VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+float exp2_dea523() {
+  float res = 2.0f;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store(0u, asuint(exp2_dea523()));
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store(0u, asuint(exp2_dea523()));
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = exp2_dea523();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
diff --git a/test/tint/builtins/gen/literal/exp2/f4f0f1.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/exp2/f4f0f1.wgsl.expected.ir.dxc.hlsl
index 0ba40c6..7dec754 100644
--- a/test/tint/builtins/gen/literal/exp2/f4f0f1.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/exp2/f4f0f1.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,36 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+void exp2_f4f0f1() {
+  float res = 2.0f;
+}
+
+void fragment_main() {
+  exp2_f4f0f1();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  exp2_f4f0f1();
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  exp2_f4f0f1();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  vertex_main_outputs v_2 = {v_1.pos};
+  return v_2;
+}
+
diff --git a/test/tint/builtins/gen/literal/exp2/f4f0f1.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/exp2/f4f0f1.wgsl.expected.ir.fxc.hlsl
index 0ba40c6..7dec754 100644
--- a/test/tint/builtins/gen/literal/exp2/f4f0f1.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/exp2/f4f0f1.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,36 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+void exp2_f4f0f1() {
+  float res = 2.0f;
+}
+
+void fragment_main() {
+  exp2_f4f0f1();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  exp2_f4f0f1();
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  exp2_f4f0f1();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  vertex_main_outputs v_2 = {v_1.pos};
+  return v_2;
+}
+
diff --git a/test/tint/builtins/gen/literal/exp2/ffa827.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/exp2/ffa827.wgsl.expected.ir.dxc.hlsl
index 0ba40c6..089cae1 100644
--- a/test/tint/builtins/gen/literal/exp2/ffa827.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/exp2/ffa827.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,42 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  vector<float16_t, 4> prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation vector<float16_t, 4> VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+vector<float16_t, 4> exp2_ffa827() {
+  vector<float16_t, 4> res = (float16_t(2.0h)).xxxx;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store<vector<float16_t, 4> >(0u, exp2_ffa827());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store<vector<float16_t, 4> >(0u, exp2_ffa827());
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = exp2_ffa827();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
diff --git a/test/tint/builtins/gen/literal/exp2/ffa827.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/exp2/ffa827.wgsl.expected.ir.fxc.hlsl
index 0ba40c6..e52ece1 100644
--- a/test/tint/builtins/gen/literal/exp2/ffa827.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/exp2/ffa827.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,47 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct VertexOutput {
+  float4 pos;
+  vector<float16_t, 4> prevent_dce;
+};
+
+struct vertex_main_outputs {
+  nointerpolation vector<float16_t, 4> VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+vector<float16_t, 4> exp2_ffa827() {
+  vector<float16_t, 4> res = (float16_t(2.0h)).xxxx;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store<vector<float16_t, 4> >(0u, exp2_ffa827());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store<vector<float16_t, 4> >(0u, exp2_ffa827());
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = exp2_ffa827();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
+FXC validation failure:
+c:\src\dawn\Shader@0x00000235FCDF0990(3,10-18): error X3000: syntax error: unexpected token 'float16_t'
+
diff --git a/test/tint/builtins/gen/literal/extractBits/12b197.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/extractBits/12b197.wgsl.expected.ir.dxc.hlsl
index 0ba40c6..19144e19 100644
--- a/test/tint/builtins/gen/literal/extractBits/12b197.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/extractBits/12b197.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,42 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  uint3 prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation uint3 VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+uint3 extractBits_12b197() {
+  uint3 res = (0u).xxx;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store3(0u, extractBits_12b197());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store3(0u, extractBits_12b197());
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = extractBits_12b197();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
diff --git a/test/tint/builtins/gen/literal/extractBits/12b197.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/extractBits/12b197.wgsl.expected.ir.fxc.hlsl
index 0ba40c6..19144e19 100644
--- a/test/tint/builtins/gen/literal/extractBits/12b197.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/extractBits/12b197.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,42 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  uint3 prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation uint3 VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+uint3 extractBits_12b197() {
+  uint3 res = (0u).xxx;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store3(0u, extractBits_12b197());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store3(0u, extractBits_12b197());
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = extractBits_12b197();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
diff --git a/test/tint/builtins/gen/literal/extractBits/249874.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/extractBits/249874.wgsl.expected.ir.dxc.hlsl
index 0ba40c6..b4381ef 100644
--- a/test/tint/builtins/gen/literal/extractBits/249874.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/extractBits/249874.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,42 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  int prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation int VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+int extractBits_249874() {
+  int res = 0;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store(0u, asuint(extractBits_249874()));
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store(0u, asuint(extractBits_249874()));
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = extractBits_249874();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
diff --git a/test/tint/builtins/gen/literal/extractBits/249874.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/extractBits/249874.wgsl.expected.ir.fxc.hlsl
index 0ba40c6..b4381ef 100644
--- a/test/tint/builtins/gen/literal/extractBits/249874.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/extractBits/249874.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,42 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  int prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation int VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+int extractBits_249874() {
+  int res = 0;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store(0u, asuint(extractBits_249874()));
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store(0u, asuint(extractBits_249874()));
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = extractBits_249874();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
diff --git a/test/tint/builtins/gen/literal/extractBits/631377.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/extractBits/631377.wgsl.expected.ir.dxc.hlsl
index 0ba40c6..ff3633b 100644
--- a/test/tint/builtins/gen/literal/extractBits/631377.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/extractBits/631377.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,42 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  uint4 prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation uint4 VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+uint4 extractBits_631377() {
+  uint4 res = (0u).xxxx;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store4(0u, extractBits_631377());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store4(0u, extractBits_631377());
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = extractBits_631377();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
diff --git a/test/tint/builtins/gen/literal/extractBits/631377.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/extractBits/631377.wgsl.expected.ir.fxc.hlsl
index 0ba40c6..ff3633b 100644
--- a/test/tint/builtins/gen/literal/extractBits/631377.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/extractBits/631377.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,42 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  uint4 prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation uint4 VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+uint4 extractBits_631377() {
+  uint4 res = (0u).xxxx;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store4(0u, extractBits_631377());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store4(0u, extractBits_631377());
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = extractBits_631377();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
diff --git a/test/tint/builtins/gen/literal/extractBits/a99a8d.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/extractBits/a99a8d.wgsl.expected.ir.dxc.hlsl
index 0ba40c6..66e99be 100644
--- a/test/tint/builtins/gen/literal/extractBits/a99a8d.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/extractBits/a99a8d.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,42 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  int2 prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation int2 VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+int2 extractBits_a99a8d() {
+  int2 res = (0).xx;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store2(0u, asuint(extractBits_a99a8d()));
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store2(0u, asuint(extractBits_a99a8d()));
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = extractBits_a99a8d();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
diff --git a/test/tint/builtins/gen/literal/extractBits/a99a8d.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/extractBits/a99a8d.wgsl.expected.ir.fxc.hlsl
index 0ba40c6..66e99be 100644
--- a/test/tint/builtins/gen/literal/extractBits/a99a8d.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/extractBits/a99a8d.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,42 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  int2 prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation int2 VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+int2 extractBits_a99a8d() {
+  int2 res = (0).xx;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store2(0u, asuint(extractBits_a99a8d()));
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store2(0u, asuint(extractBits_a99a8d()));
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = extractBits_a99a8d();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
diff --git a/test/tint/builtins/gen/literal/extractBits/ce81f8.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/extractBits/ce81f8.wgsl.expected.ir.dxc.hlsl
index 0ba40c6..5efcb75 100644
--- a/test/tint/builtins/gen/literal/extractBits/ce81f8.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/extractBits/ce81f8.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,42 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  uint prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation uint VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+uint extractBits_ce81f8() {
+  uint res = 0u;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store(0u, extractBits_ce81f8());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store(0u, extractBits_ce81f8());
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = extractBits_ce81f8();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
diff --git a/test/tint/builtins/gen/literal/extractBits/ce81f8.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/extractBits/ce81f8.wgsl.expected.ir.fxc.hlsl
index 0ba40c6..5efcb75 100644
--- a/test/tint/builtins/gen/literal/extractBits/ce81f8.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/extractBits/ce81f8.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,42 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  uint prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation uint VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+uint extractBits_ce81f8() {
+  uint res = 0u;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store(0u, extractBits_ce81f8());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store(0u, extractBits_ce81f8());
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = extractBits_ce81f8();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
diff --git a/test/tint/builtins/gen/literal/extractBits/e04f5d.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/extractBits/e04f5d.wgsl.expected.ir.dxc.hlsl
index 0ba40c6..58ddc43 100644
--- a/test/tint/builtins/gen/literal/extractBits/e04f5d.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/extractBits/e04f5d.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,42 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  int3 prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation int3 VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+int3 extractBits_e04f5d() {
+  int3 res = (0).xxx;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store3(0u, asuint(extractBits_e04f5d()));
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store3(0u, asuint(extractBits_e04f5d()));
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = extractBits_e04f5d();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
diff --git a/test/tint/builtins/gen/literal/extractBits/e04f5d.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/extractBits/e04f5d.wgsl.expected.ir.fxc.hlsl
index 0ba40c6..58ddc43 100644
--- a/test/tint/builtins/gen/literal/extractBits/e04f5d.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/extractBits/e04f5d.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,42 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  int3 prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation int3 VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+int3 extractBits_e04f5d() {
+  int3 res = (0).xxx;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store3(0u, asuint(extractBits_e04f5d()));
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store3(0u, asuint(extractBits_e04f5d()));
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = extractBits_e04f5d();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
diff --git a/test/tint/builtins/gen/literal/extractBits/f28f69.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/extractBits/f28f69.wgsl.expected.ir.dxc.hlsl
index 0ba40c6..5b78b9d 100644
--- a/test/tint/builtins/gen/literal/extractBits/f28f69.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/extractBits/f28f69.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,42 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  uint2 prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation uint2 VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+uint2 extractBits_f28f69() {
+  uint2 res = (0u).xx;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store2(0u, extractBits_f28f69());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store2(0u, extractBits_f28f69());
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = extractBits_f28f69();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
diff --git a/test/tint/builtins/gen/literal/extractBits/f28f69.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/extractBits/f28f69.wgsl.expected.ir.fxc.hlsl
index 0ba40c6..5b78b9d 100644
--- a/test/tint/builtins/gen/literal/extractBits/f28f69.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/extractBits/f28f69.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,42 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  uint2 prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation uint2 VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+uint2 extractBits_f28f69() {
+  uint2 res = (0u).xx;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store2(0u, extractBits_f28f69());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store2(0u, extractBits_f28f69());
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = extractBits_f28f69();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
diff --git a/test/tint/builtins/gen/literal/extractBits/fb850f.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/extractBits/fb850f.wgsl.expected.ir.dxc.hlsl
index 0ba40c6..c5eafb7 100644
--- a/test/tint/builtins/gen/literal/extractBits/fb850f.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/extractBits/fb850f.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,42 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  int4 prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation int4 VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+int4 extractBits_fb850f() {
+  int4 res = (0).xxxx;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store4(0u, asuint(extractBits_fb850f()));
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store4(0u, asuint(extractBits_fb850f()));
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = extractBits_fb850f();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
diff --git a/test/tint/builtins/gen/literal/extractBits/fb850f.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/extractBits/fb850f.wgsl.expected.ir.fxc.hlsl
index 0ba40c6..c5eafb7 100644
--- a/test/tint/builtins/gen/literal/extractBits/fb850f.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/extractBits/fb850f.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,42 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  int4 prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation int4 VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+int4 extractBits_fb850f() {
+  int4 res = (0).xxxx;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store4(0u, asuint(extractBits_fb850f()));
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store4(0u, asuint(extractBits_fb850f()));
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = extractBits_fb850f();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
diff --git a/test/tint/builtins/gen/literal/faceForward/2c4d14.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/faceForward/2c4d14.wgsl.expected.ir.dxc.hlsl
index 0ba40c6..c16b051 100644
--- a/test/tint/builtins/gen/literal/faceForward/2c4d14.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/faceForward/2c4d14.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,36 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+void faceForward_2c4d14() {
+  float4 res = (-1.0f).xxxx;
+}
+
+void fragment_main() {
+  faceForward_2c4d14();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  faceForward_2c4d14();
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  faceForward_2c4d14();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  vertex_main_outputs v_2 = {v_1.pos};
+  return v_2;
+}
+
diff --git a/test/tint/builtins/gen/literal/faceForward/2c4d14.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/faceForward/2c4d14.wgsl.expected.ir.fxc.hlsl
index 0ba40c6..c16b051 100644
--- a/test/tint/builtins/gen/literal/faceForward/2c4d14.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/faceForward/2c4d14.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,36 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+void faceForward_2c4d14() {
+  float4 res = (-1.0f).xxxx;
+}
+
+void fragment_main() {
+  faceForward_2c4d14();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  faceForward_2c4d14();
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  faceForward_2c4d14();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  vertex_main_outputs v_2 = {v_1.pos};
+  return v_2;
+}
+
diff --git a/test/tint/builtins/gen/literal/faceForward/524986.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/faceForward/524986.wgsl.expected.ir.dxc.hlsl
index 0ba40c6..40ad3bb 100644
--- a/test/tint/builtins/gen/literal/faceForward/524986.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/faceForward/524986.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,42 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  vector<float16_t, 3> prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation vector<float16_t, 3> VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+vector<float16_t, 3> faceForward_524986() {
+  vector<float16_t, 3> res = (float16_t(-1.0h)).xxx;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store<vector<float16_t, 3> >(0u, faceForward_524986());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store<vector<float16_t, 3> >(0u, faceForward_524986());
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = faceForward_524986();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
diff --git a/test/tint/builtins/gen/literal/faceForward/524986.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/faceForward/524986.wgsl.expected.ir.fxc.hlsl
index 0ba40c6..425f191 100644
--- a/test/tint/builtins/gen/literal/faceForward/524986.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/faceForward/524986.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,47 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct VertexOutput {
+  float4 pos;
+  vector<float16_t, 3> prevent_dce;
+};
+
+struct vertex_main_outputs {
+  nointerpolation vector<float16_t, 3> VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+vector<float16_t, 3> faceForward_524986() {
+  vector<float16_t, 3> res = (float16_t(-1.0h)).xxx;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store<vector<float16_t, 3> >(0u, faceForward_524986());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store<vector<float16_t, 3> >(0u, faceForward_524986());
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = faceForward_524986();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
+FXC validation failure:
+c:\src\dawn\Shader@0x000001574C38C3D0(3,10-18): error X3000: syntax error: unexpected token 'float16_t'
+
diff --git a/test/tint/builtins/gen/literal/faceForward/5afbd5.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/faceForward/5afbd5.wgsl.expected.ir.dxc.hlsl
index 0ba40c6..ce20bb3 100644
--- a/test/tint/builtins/gen/literal/faceForward/5afbd5.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/faceForward/5afbd5.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,42 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  float3 prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation float3 VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+float3 faceForward_5afbd5() {
+  float3 res = (-1.0f).xxx;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store3(0u, asuint(faceForward_5afbd5()));
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store3(0u, asuint(faceForward_5afbd5()));
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = faceForward_5afbd5();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
diff --git a/test/tint/builtins/gen/literal/faceForward/5afbd5.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/faceForward/5afbd5.wgsl.expected.ir.fxc.hlsl
index 0ba40c6..ce20bb3 100644
--- a/test/tint/builtins/gen/literal/faceForward/5afbd5.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/faceForward/5afbd5.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,42 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  float3 prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation float3 VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+float3 faceForward_5afbd5() {
+  float3 res = (-1.0f).xxx;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store3(0u, asuint(faceForward_5afbd5()));
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store3(0u, asuint(faceForward_5afbd5()));
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = faceForward_5afbd5();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
diff --git a/test/tint/builtins/gen/literal/faceForward/b316e5.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/faceForward/b316e5.wgsl.expected.ir.dxc.hlsl
index 0ba40c6..3b62800 100644
--- a/test/tint/builtins/gen/literal/faceForward/b316e5.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/faceForward/b316e5.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,42 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  float4 prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation float4 VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+float4 faceForward_b316e5() {
+  float4 res = (-1.0f).xxxx;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store4(0u, asuint(faceForward_b316e5()));
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store4(0u, asuint(faceForward_b316e5()));
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = faceForward_b316e5();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
diff --git a/test/tint/builtins/gen/literal/faceForward/b316e5.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/faceForward/b316e5.wgsl.expected.ir.fxc.hlsl
index 0ba40c6..3b62800 100644
--- a/test/tint/builtins/gen/literal/faceForward/b316e5.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/faceForward/b316e5.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,42 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  float4 prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation float4 VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+float4 faceForward_b316e5() {
+  float4 res = (-1.0f).xxxx;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store4(0u, asuint(faceForward_b316e5()));
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store4(0u, asuint(faceForward_b316e5()));
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = faceForward_b316e5();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
diff --git a/test/tint/builtins/gen/literal/faceForward/b42ef3.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/faceForward/b42ef3.wgsl.expected.ir.dxc.hlsl
index 0ba40c6..a1aa623 100644
--- a/test/tint/builtins/gen/literal/faceForward/b42ef3.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/faceForward/b42ef3.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,36 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+void faceForward_b42ef3() {
+  float2 res = (-1.0f).xx;
+}
+
+void fragment_main() {
+  faceForward_b42ef3();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  faceForward_b42ef3();
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  faceForward_b42ef3();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  vertex_main_outputs v_2 = {v_1.pos};
+  return v_2;
+}
+
diff --git a/test/tint/builtins/gen/literal/faceForward/b42ef3.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/faceForward/b42ef3.wgsl.expected.ir.fxc.hlsl
index 0ba40c6..a1aa623 100644
--- a/test/tint/builtins/gen/literal/faceForward/b42ef3.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/faceForward/b42ef3.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,36 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+void faceForward_b42ef3() {
+  float2 res = (-1.0f).xx;
+}
+
+void fragment_main() {
+  faceForward_b42ef3();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  faceForward_b42ef3();
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  faceForward_b42ef3();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  vertex_main_outputs v_2 = {v_1.pos};
+  return v_2;
+}
+
diff --git a/test/tint/builtins/gen/literal/faceForward/cc63dc.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/faceForward/cc63dc.wgsl.expected.ir.dxc.hlsl
index 0ba40c6..f15306e 100644
--- a/test/tint/builtins/gen/literal/faceForward/cc63dc.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/faceForward/cc63dc.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,42 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  vector<float16_t, 4> prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation vector<float16_t, 4> VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+vector<float16_t, 4> faceForward_cc63dc() {
+  vector<float16_t, 4> res = (float16_t(-1.0h)).xxxx;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store<vector<float16_t, 4> >(0u, faceForward_cc63dc());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store<vector<float16_t, 4> >(0u, faceForward_cc63dc());
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = faceForward_cc63dc();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
diff --git a/test/tint/builtins/gen/literal/faceForward/cc63dc.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/faceForward/cc63dc.wgsl.expected.ir.fxc.hlsl
index 0ba40c6..39df8d9 100644
--- a/test/tint/builtins/gen/literal/faceForward/cc63dc.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/faceForward/cc63dc.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,47 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct VertexOutput {
+  float4 pos;
+  vector<float16_t, 4> prevent_dce;
+};
+
+struct vertex_main_outputs {
+  nointerpolation vector<float16_t, 4> VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+vector<float16_t, 4> faceForward_cc63dc() {
+  vector<float16_t, 4> res = (float16_t(-1.0h)).xxxx;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store<vector<float16_t, 4> >(0u, faceForward_cc63dc());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store<vector<float16_t, 4> >(0u, faceForward_cc63dc());
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = faceForward_cc63dc();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
+FXC validation failure:
+c:\src\dawn\Shader@0x00000200A8BB5B50(3,10-18): error X3000: syntax error: unexpected token 'float16_t'
+
diff --git a/test/tint/builtins/gen/literal/faceForward/e6908b.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/faceForward/e6908b.wgsl.expected.ir.dxc.hlsl
index 0ba40c6..1fbc6c0 100644
--- a/test/tint/builtins/gen/literal/faceForward/e6908b.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/faceForward/e6908b.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,42 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  float2 prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation float2 VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+float2 faceForward_e6908b() {
+  float2 res = (-1.0f).xx;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store2(0u, asuint(faceForward_e6908b()));
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store2(0u, asuint(faceForward_e6908b()));
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = faceForward_e6908b();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
diff --git a/test/tint/builtins/gen/literal/faceForward/e6908b.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/faceForward/e6908b.wgsl.expected.ir.fxc.hlsl
index 0ba40c6..1fbc6c0 100644
--- a/test/tint/builtins/gen/literal/faceForward/e6908b.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/faceForward/e6908b.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,42 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  float2 prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation float2 VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+float2 faceForward_e6908b() {
+  float2 res = (-1.0f).xx;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store2(0u, asuint(faceForward_e6908b()));
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store2(0u, asuint(faceForward_e6908b()));
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = faceForward_e6908b();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
diff --git a/test/tint/builtins/gen/literal/faceForward/fb0f2e.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/faceForward/fb0f2e.wgsl.expected.ir.dxc.hlsl
index 0ba40c6..e5ced11 100644
--- a/test/tint/builtins/gen/literal/faceForward/fb0f2e.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/faceForward/fb0f2e.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,42 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  vector<float16_t, 2> prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation vector<float16_t, 2> VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+vector<float16_t, 2> faceForward_fb0f2e() {
+  vector<float16_t, 2> res = (float16_t(-1.0h)).xx;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store<vector<float16_t, 2> >(0u, faceForward_fb0f2e());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store<vector<float16_t, 2> >(0u, faceForward_fb0f2e());
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = faceForward_fb0f2e();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
diff --git a/test/tint/builtins/gen/literal/faceForward/fb0f2e.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/faceForward/fb0f2e.wgsl.expected.ir.fxc.hlsl
index 0ba40c6..543b886 100644
--- a/test/tint/builtins/gen/literal/faceForward/fb0f2e.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/faceForward/fb0f2e.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,47 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct VertexOutput {
+  float4 pos;
+  vector<float16_t, 2> prevent_dce;
+};
+
+struct vertex_main_outputs {
+  nointerpolation vector<float16_t, 2> VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+vector<float16_t, 2> faceForward_fb0f2e() {
+  vector<float16_t, 2> res = (float16_t(-1.0h)).xx;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store<vector<float16_t, 2> >(0u, faceForward_fb0f2e());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store<vector<float16_t, 2> >(0u, faceForward_fb0f2e());
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = faceForward_fb0f2e();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
+FXC validation failure:
+c:\src\dawn\Shader@0x0000020BDE525730(3,10-18): error X3000: syntax error: unexpected token 'float16_t'
+
diff --git a/test/tint/builtins/gen/literal/faceForward/fe522b.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/faceForward/fe522b.wgsl.expected.ir.dxc.hlsl
index 0ba40c6..aaac946 100644
--- a/test/tint/builtins/gen/literal/faceForward/fe522b.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/faceForward/fe522b.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,36 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+void faceForward_fe522b() {
+  float3 res = (-1.0f).xxx;
+}
+
+void fragment_main() {
+  faceForward_fe522b();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  faceForward_fe522b();
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  faceForward_fe522b();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  vertex_main_outputs v_2 = {v_1.pos};
+  return v_2;
+}
+
diff --git a/test/tint/builtins/gen/literal/faceForward/fe522b.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/faceForward/fe522b.wgsl.expected.ir.fxc.hlsl
index 0ba40c6..aaac946 100644
--- a/test/tint/builtins/gen/literal/faceForward/fe522b.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/faceForward/fe522b.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,36 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+void faceForward_fe522b() {
+  float3 res = (-1.0f).xxx;
+}
+
+void fragment_main() {
+  faceForward_fe522b();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  faceForward_fe522b();
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  faceForward_fe522b();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  vertex_main_outputs v_2 = {v_1.pos};
+  return v_2;
+}
+
diff --git a/test/tint/builtins/gen/literal/firstLeadingBit/000ff3.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/firstLeadingBit/000ff3.wgsl.expected.ir.dxc.hlsl
index 0ba40c6..9b0d4d9 100644
--- a/test/tint/builtins/gen/literal/firstLeadingBit/000ff3.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/firstLeadingBit/000ff3.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,42 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  uint4 prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation uint4 VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+uint4 firstLeadingBit_000ff3() {
+  uint4 res = (0u).xxxx;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store4(0u, firstLeadingBit_000ff3());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store4(0u, firstLeadingBit_000ff3());
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = firstLeadingBit_000ff3();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
diff --git a/test/tint/builtins/gen/literal/firstLeadingBit/000ff3.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/firstLeadingBit/000ff3.wgsl.expected.ir.fxc.hlsl
index 0ba40c6..9b0d4d9 100644
--- a/test/tint/builtins/gen/literal/firstLeadingBit/000ff3.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/firstLeadingBit/000ff3.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,42 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  uint4 prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation uint4 VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+uint4 firstLeadingBit_000ff3() {
+  uint4 res = (0u).xxxx;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store4(0u, firstLeadingBit_000ff3());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store4(0u, firstLeadingBit_000ff3());
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = firstLeadingBit_000ff3();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
diff --git a/test/tint/builtins/gen/literal/firstLeadingBit/35053e.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/firstLeadingBit/35053e.wgsl.expected.ir.dxc.hlsl
index 0ba40c6..9849df2 100644
--- a/test/tint/builtins/gen/literal/firstLeadingBit/35053e.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/firstLeadingBit/35053e.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,42 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  int3 prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation int3 VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+int3 firstLeadingBit_35053e() {
+  int3 res = (0).xxx;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store3(0u, asuint(firstLeadingBit_35053e()));
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store3(0u, asuint(firstLeadingBit_35053e()));
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = firstLeadingBit_35053e();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
diff --git a/test/tint/builtins/gen/literal/firstLeadingBit/35053e.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/firstLeadingBit/35053e.wgsl.expected.ir.fxc.hlsl
index 0ba40c6..9849df2 100644
--- a/test/tint/builtins/gen/literal/firstLeadingBit/35053e.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/firstLeadingBit/35053e.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,42 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  int3 prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation int3 VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+int3 firstLeadingBit_35053e() {
+  int3 res = (0).xxx;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store3(0u, asuint(firstLeadingBit_35053e()));
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store3(0u, asuint(firstLeadingBit_35053e()));
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = firstLeadingBit_35053e();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
diff --git a/test/tint/builtins/gen/literal/firstLeadingBit/3fd7d0.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/firstLeadingBit/3fd7d0.wgsl.expected.ir.dxc.hlsl
index 0ba40c6..3c02b3a 100644
--- a/test/tint/builtins/gen/literal/firstLeadingBit/3fd7d0.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/firstLeadingBit/3fd7d0.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,42 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  uint3 prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation uint3 VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+uint3 firstLeadingBit_3fd7d0() {
+  uint3 res = (0u).xxx;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store3(0u, firstLeadingBit_3fd7d0());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store3(0u, firstLeadingBit_3fd7d0());
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = firstLeadingBit_3fd7d0();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
diff --git a/test/tint/builtins/gen/literal/firstLeadingBit/3fd7d0.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/firstLeadingBit/3fd7d0.wgsl.expected.ir.fxc.hlsl
index 0ba40c6..3c02b3a 100644
--- a/test/tint/builtins/gen/literal/firstLeadingBit/3fd7d0.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/firstLeadingBit/3fd7d0.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,42 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  uint3 prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation uint3 VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+uint3 firstLeadingBit_3fd7d0() {
+  uint3 res = (0u).xxx;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store3(0u, firstLeadingBit_3fd7d0());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store3(0u, firstLeadingBit_3fd7d0());
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = firstLeadingBit_3fd7d0();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
diff --git a/test/tint/builtins/gen/literal/firstLeadingBit/57a1a3.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/firstLeadingBit/57a1a3.wgsl.expected.ir.dxc.hlsl
index 0ba40c6..75a2e98 100644
--- a/test/tint/builtins/gen/literal/firstLeadingBit/57a1a3.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/firstLeadingBit/57a1a3.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,42 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  int prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation int VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+int firstLeadingBit_57a1a3() {
+  int res = 0;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store(0u, asuint(firstLeadingBit_57a1a3()));
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store(0u, asuint(firstLeadingBit_57a1a3()));
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = firstLeadingBit_57a1a3();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
diff --git a/test/tint/builtins/gen/literal/firstLeadingBit/57a1a3.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/firstLeadingBit/57a1a3.wgsl.expected.ir.fxc.hlsl
index 0ba40c6..75a2e98 100644
--- a/test/tint/builtins/gen/literal/firstLeadingBit/57a1a3.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/firstLeadingBit/57a1a3.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,42 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  int prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation int VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+int firstLeadingBit_57a1a3() {
+  int res = 0;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store(0u, asuint(firstLeadingBit_57a1a3()));
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store(0u, asuint(firstLeadingBit_57a1a3()));
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = firstLeadingBit_57a1a3();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
diff --git a/test/tint/builtins/gen/literal/firstLeadingBit/6fe804.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/firstLeadingBit/6fe804.wgsl.expected.ir.dxc.hlsl
index 0ba40c6..65252e3 100644
--- a/test/tint/builtins/gen/literal/firstLeadingBit/6fe804.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/firstLeadingBit/6fe804.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,42 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  uint2 prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation uint2 VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+uint2 firstLeadingBit_6fe804() {
+  uint2 res = (0u).xx;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store2(0u, firstLeadingBit_6fe804());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store2(0u, firstLeadingBit_6fe804());
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = firstLeadingBit_6fe804();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
diff --git a/test/tint/builtins/gen/literal/firstLeadingBit/6fe804.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/firstLeadingBit/6fe804.wgsl.expected.ir.fxc.hlsl
index 0ba40c6..65252e3 100644
--- a/test/tint/builtins/gen/literal/firstLeadingBit/6fe804.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/firstLeadingBit/6fe804.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,42 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  uint2 prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation uint2 VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+uint2 firstLeadingBit_6fe804() {
+  uint2 res = (0u).xx;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store2(0u, firstLeadingBit_6fe804());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store2(0u, firstLeadingBit_6fe804());
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = firstLeadingBit_6fe804();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
diff --git a/test/tint/builtins/gen/literal/firstLeadingBit/a622c2.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/firstLeadingBit/a622c2.wgsl.expected.ir.dxc.hlsl
index 0ba40c6..1f6f288 100644
--- a/test/tint/builtins/gen/literal/firstLeadingBit/a622c2.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/firstLeadingBit/a622c2.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,42 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  int2 prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation int2 VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+int2 firstLeadingBit_a622c2() {
+  int2 res = (0).xx;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store2(0u, asuint(firstLeadingBit_a622c2()));
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store2(0u, asuint(firstLeadingBit_a622c2()));
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = firstLeadingBit_a622c2();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
diff --git a/test/tint/builtins/gen/literal/firstLeadingBit/a622c2.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/firstLeadingBit/a622c2.wgsl.expected.ir.fxc.hlsl
index 0ba40c6..1f6f288 100644
--- a/test/tint/builtins/gen/literal/firstLeadingBit/a622c2.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/firstLeadingBit/a622c2.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,42 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  int2 prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation int2 VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+int2 firstLeadingBit_a622c2() {
+  int2 res = (0).xx;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store2(0u, asuint(firstLeadingBit_a622c2()));
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store2(0u, asuint(firstLeadingBit_a622c2()));
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = firstLeadingBit_a622c2();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
diff --git a/test/tint/builtins/gen/literal/firstLeadingBit/c1f940.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/firstLeadingBit/c1f940.wgsl.expected.ir.dxc.hlsl
index 0ba40c6..3959ef6 100644
--- a/test/tint/builtins/gen/literal/firstLeadingBit/c1f940.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/firstLeadingBit/c1f940.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,42 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  int4 prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation int4 VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+int4 firstLeadingBit_c1f940() {
+  int4 res = (0).xxxx;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store4(0u, asuint(firstLeadingBit_c1f940()));
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store4(0u, asuint(firstLeadingBit_c1f940()));
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = firstLeadingBit_c1f940();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
diff --git a/test/tint/builtins/gen/literal/firstLeadingBit/c1f940.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/firstLeadingBit/c1f940.wgsl.expected.ir.fxc.hlsl
index 0ba40c6..3959ef6 100644
--- a/test/tint/builtins/gen/literal/firstLeadingBit/c1f940.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/firstLeadingBit/c1f940.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,42 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  int4 prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation int4 VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+int4 firstLeadingBit_c1f940() {
+  int4 res = (0).xxxx;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store4(0u, asuint(firstLeadingBit_c1f940()));
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store4(0u, asuint(firstLeadingBit_c1f940()));
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = firstLeadingBit_c1f940();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
diff --git a/test/tint/builtins/gen/literal/firstLeadingBit/f0779d.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/firstLeadingBit/f0779d.wgsl.expected.ir.dxc.hlsl
index 0ba40c6..e1eab7a 100644
--- a/test/tint/builtins/gen/literal/firstLeadingBit/f0779d.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/firstLeadingBit/f0779d.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,42 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  uint prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation uint VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+uint firstLeadingBit_f0779d() {
+  uint res = 0u;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store(0u, firstLeadingBit_f0779d());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store(0u, firstLeadingBit_f0779d());
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = firstLeadingBit_f0779d();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
diff --git a/test/tint/builtins/gen/literal/firstLeadingBit/f0779d.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/firstLeadingBit/f0779d.wgsl.expected.ir.fxc.hlsl
index 0ba40c6..e1eab7a 100644
--- a/test/tint/builtins/gen/literal/firstLeadingBit/f0779d.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/firstLeadingBit/f0779d.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,42 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  uint prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation uint VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+uint firstLeadingBit_f0779d() {
+  uint res = 0u;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store(0u, firstLeadingBit_f0779d());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store(0u, firstLeadingBit_f0779d());
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = firstLeadingBit_f0779d();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
diff --git a/test/tint/builtins/gen/literal/firstTrailingBit/110f2c.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/firstTrailingBit/110f2c.wgsl.expected.ir.dxc.hlsl
index 0ba40c6..27780c3 100644
--- a/test/tint/builtins/gen/literal/firstTrailingBit/110f2c.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/firstTrailingBit/110f2c.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,42 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  uint4 prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation uint4 VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+uint4 firstTrailingBit_110f2c() {
+  uint4 res = (0u).xxxx;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store4(0u, firstTrailingBit_110f2c());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store4(0u, firstTrailingBit_110f2c());
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = firstTrailingBit_110f2c();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
diff --git a/test/tint/builtins/gen/literal/firstTrailingBit/110f2c.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/firstTrailingBit/110f2c.wgsl.expected.ir.fxc.hlsl
index 0ba40c6..27780c3 100644
--- a/test/tint/builtins/gen/literal/firstTrailingBit/110f2c.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/firstTrailingBit/110f2c.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,42 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  uint4 prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation uint4 VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+uint4 firstTrailingBit_110f2c() {
+  uint4 res = (0u).xxxx;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store4(0u, firstTrailingBit_110f2c());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store4(0u, firstTrailingBit_110f2c());
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = firstTrailingBit_110f2c();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
diff --git a/test/tint/builtins/gen/literal/firstTrailingBit/3a2acc.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/firstTrailingBit/3a2acc.wgsl.expected.ir.dxc.hlsl
index 0ba40c6..ae882f7 100644
--- a/test/tint/builtins/gen/literal/firstTrailingBit/3a2acc.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/firstTrailingBit/3a2acc.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,42 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  int prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation int VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+int firstTrailingBit_3a2acc() {
+  int res = 0;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store(0u, asuint(firstTrailingBit_3a2acc()));
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store(0u, asuint(firstTrailingBit_3a2acc()));
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = firstTrailingBit_3a2acc();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
diff --git a/test/tint/builtins/gen/literal/firstTrailingBit/3a2acc.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/firstTrailingBit/3a2acc.wgsl.expected.ir.fxc.hlsl
index 0ba40c6..ae882f7 100644
--- a/test/tint/builtins/gen/literal/firstTrailingBit/3a2acc.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/firstTrailingBit/3a2acc.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,42 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  int prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation int VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+int firstTrailingBit_3a2acc() {
+  int res = 0;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store(0u, asuint(firstTrailingBit_3a2acc()));
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store(0u, asuint(firstTrailingBit_3a2acc()));
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = firstTrailingBit_3a2acc();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
diff --git a/test/tint/builtins/gen/literal/firstTrailingBit/45eb10.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/firstTrailingBit/45eb10.wgsl.expected.ir.dxc.hlsl
index 0ba40c6..6c0cad2 100644
--- a/test/tint/builtins/gen/literal/firstTrailingBit/45eb10.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/firstTrailingBit/45eb10.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,42 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  uint2 prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation uint2 VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+uint2 firstTrailingBit_45eb10() {
+  uint2 res = (0u).xx;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store2(0u, firstTrailingBit_45eb10());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store2(0u, firstTrailingBit_45eb10());
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = firstTrailingBit_45eb10();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
diff --git a/test/tint/builtins/gen/literal/firstTrailingBit/45eb10.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/firstTrailingBit/45eb10.wgsl.expected.ir.fxc.hlsl
index 0ba40c6..6c0cad2 100644
--- a/test/tint/builtins/gen/literal/firstTrailingBit/45eb10.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/firstTrailingBit/45eb10.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,42 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  uint2 prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation uint2 VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+uint2 firstTrailingBit_45eb10() {
+  uint2 res = (0u).xx;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store2(0u, firstTrailingBit_45eb10());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store2(0u, firstTrailingBit_45eb10());
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = firstTrailingBit_45eb10();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
diff --git a/test/tint/builtins/gen/literal/firstTrailingBit/47d475.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/firstTrailingBit/47d475.wgsl.expected.ir.dxc.hlsl
index 0ba40c6..2cdb799 100644
--- a/test/tint/builtins/gen/literal/firstTrailingBit/47d475.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/firstTrailingBit/47d475.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,42 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  uint prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation uint VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+uint firstTrailingBit_47d475() {
+  uint res = 0u;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store(0u, firstTrailingBit_47d475());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store(0u, firstTrailingBit_47d475());
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = firstTrailingBit_47d475();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
diff --git a/test/tint/builtins/gen/literal/firstTrailingBit/47d475.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/firstTrailingBit/47d475.wgsl.expected.ir.fxc.hlsl
index 0ba40c6..2cdb799 100644
--- a/test/tint/builtins/gen/literal/firstTrailingBit/47d475.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/firstTrailingBit/47d475.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,42 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  uint prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation uint VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+uint firstTrailingBit_47d475() {
+  uint res = 0u;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store(0u, firstTrailingBit_47d475());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store(0u, firstTrailingBit_47d475());
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = firstTrailingBit_47d475();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
diff --git a/test/tint/builtins/gen/literal/firstTrailingBit/50c072.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/firstTrailingBit/50c072.wgsl.expected.ir.dxc.hlsl
index 0ba40c6..a916261 100644
--- a/test/tint/builtins/gen/literal/firstTrailingBit/50c072.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/firstTrailingBit/50c072.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,42 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  int2 prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation int2 VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+int2 firstTrailingBit_50c072() {
+  int2 res = (0).xx;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store2(0u, asuint(firstTrailingBit_50c072()));
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store2(0u, asuint(firstTrailingBit_50c072()));
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = firstTrailingBit_50c072();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
diff --git a/test/tint/builtins/gen/literal/firstTrailingBit/50c072.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/firstTrailingBit/50c072.wgsl.expected.ir.fxc.hlsl
index 0ba40c6..a916261 100644
--- a/test/tint/builtins/gen/literal/firstTrailingBit/50c072.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/firstTrailingBit/50c072.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,42 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  int2 prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation int2 VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+int2 firstTrailingBit_50c072() {
+  int2 res = (0).xx;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store2(0u, asuint(firstTrailingBit_50c072()));
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store2(0u, asuint(firstTrailingBit_50c072()));
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = firstTrailingBit_50c072();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
diff --git a/test/tint/builtins/gen/literal/firstTrailingBit/7496d6.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/firstTrailingBit/7496d6.wgsl.expected.ir.dxc.hlsl
index 0ba40c6..aae85e8 100644
--- a/test/tint/builtins/gen/literal/firstTrailingBit/7496d6.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/firstTrailingBit/7496d6.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,42 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  int3 prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation int3 VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+int3 firstTrailingBit_7496d6() {
+  int3 res = (0).xxx;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store3(0u, asuint(firstTrailingBit_7496d6()));
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store3(0u, asuint(firstTrailingBit_7496d6()));
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = firstTrailingBit_7496d6();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
diff --git a/test/tint/builtins/gen/literal/firstTrailingBit/7496d6.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/firstTrailingBit/7496d6.wgsl.expected.ir.fxc.hlsl
index 0ba40c6..aae85e8 100644
--- a/test/tint/builtins/gen/literal/firstTrailingBit/7496d6.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/firstTrailingBit/7496d6.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,42 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  int3 prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation int3 VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+int3 firstTrailingBit_7496d6() {
+  int3 res = (0).xxx;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store3(0u, asuint(firstTrailingBit_7496d6()));
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store3(0u, asuint(firstTrailingBit_7496d6()));
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = firstTrailingBit_7496d6();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
diff --git a/test/tint/builtins/gen/literal/firstTrailingBit/86551b.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/firstTrailingBit/86551b.wgsl.expected.ir.dxc.hlsl
index 0ba40c6..300f214 100644
--- a/test/tint/builtins/gen/literal/firstTrailingBit/86551b.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/firstTrailingBit/86551b.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,42 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  int4 prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation int4 VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+int4 firstTrailingBit_86551b() {
+  int4 res = (0).xxxx;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store4(0u, asuint(firstTrailingBit_86551b()));
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store4(0u, asuint(firstTrailingBit_86551b()));
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = firstTrailingBit_86551b();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
diff --git a/test/tint/builtins/gen/literal/firstTrailingBit/86551b.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/firstTrailingBit/86551b.wgsl.expected.ir.fxc.hlsl
index 0ba40c6..300f214 100644
--- a/test/tint/builtins/gen/literal/firstTrailingBit/86551b.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/firstTrailingBit/86551b.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,42 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  int4 prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation int4 VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+int4 firstTrailingBit_86551b() {
+  int4 res = (0).xxxx;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store4(0u, asuint(firstTrailingBit_86551b()));
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store4(0u, asuint(firstTrailingBit_86551b()));
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = firstTrailingBit_86551b();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
diff --git a/test/tint/builtins/gen/literal/firstTrailingBit/cb51ce.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/firstTrailingBit/cb51ce.wgsl.expected.ir.dxc.hlsl
index 0ba40c6..df25414 100644
--- a/test/tint/builtins/gen/literal/firstTrailingBit/cb51ce.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/firstTrailingBit/cb51ce.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,42 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  uint3 prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation uint3 VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+uint3 firstTrailingBit_cb51ce() {
+  uint3 res = (0u).xxx;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store3(0u, firstTrailingBit_cb51ce());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store3(0u, firstTrailingBit_cb51ce());
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = firstTrailingBit_cb51ce();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
diff --git a/test/tint/builtins/gen/literal/firstTrailingBit/cb51ce.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/firstTrailingBit/cb51ce.wgsl.expected.ir.fxc.hlsl
index 0ba40c6..df25414 100644
--- a/test/tint/builtins/gen/literal/firstTrailingBit/cb51ce.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/firstTrailingBit/cb51ce.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,42 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  uint3 prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation uint3 VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+uint3 firstTrailingBit_cb51ce() {
+  uint3 res = (0u).xxx;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store3(0u, firstTrailingBit_cb51ce());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store3(0u, firstTrailingBit_cb51ce());
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = firstTrailingBit_cb51ce();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
diff --git a/test/tint/builtins/gen/literal/floor/218952.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/floor/218952.wgsl.expected.ir.dxc.hlsl
index 0ba40c6..15e77d6 100644
--- a/test/tint/builtins/gen/literal/floor/218952.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/floor/218952.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,36 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+void floor_218952() {
+  float4 res = (1.0f).xxxx;
+}
+
+void fragment_main() {
+  floor_218952();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  floor_218952();
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  floor_218952();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  vertex_main_outputs v_2 = {v_1.pos};
+  return v_2;
+}
+
diff --git a/test/tint/builtins/gen/literal/floor/218952.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/floor/218952.wgsl.expected.ir.fxc.hlsl
index 0ba40c6..15e77d6 100644
--- a/test/tint/builtins/gen/literal/floor/218952.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/floor/218952.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,36 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+void floor_218952() {
+  float4 res = (1.0f).xxxx;
+}
+
+void fragment_main() {
+  floor_218952();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  floor_218952();
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  floor_218952();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  vertex_main_outputs v_2 = {v_1.pos};
+  return v_2;
+}
+
diff --git a/test/tint/builtins/gen/literal/floor/3802c0.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/floor/3802c0.wgsl.expected.ir.dxc.hlsl
index 0ba40c6..37476b2 100644
--- a/test/tint/builtins/gen/literal/floor/3802c0.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/floor/3802c0.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,42 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  vector<float16_t, 3> prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation vector<float16_t, 3> VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+vector<float16_t, 3> floor_3802c0() {
+  vector<float16_t, 3> res = (float16_t(1.0h)).xxx;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store<vector<float16_t, 3> >(0u, floor_3802c0());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store<vector<float16_t, 3> >(0u, floor_3802c0());
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = floor_3802c0();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
diff --git a/test/tint/builtins/gen/literal/floor/3802c0.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/floor/3802c0.wgsl.expected.ir.fxc.hlsl
index 0ba40c6..a00ed03 100644
--- a/test/tint/builtins/gen/literal/floor/3802c0.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/floor/3802c0.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,47 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct VertexOutput {
+  float4 pos;
+  vector<float16_t, 3> prevent_dce;
+};
+
+struct vertex_main_outputs {
+  nointerpolation vector<float16_t, 3> VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+vector<float16_t, 3> floor_3802c0() {
+  vector<float16_t, 3> res = (float16_t(1.0h)).xxx;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store<vector<float16_t, 3> >(0u, floor_3802c0());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store<vector<float16_t, 3> >(0u, floor_3802c0());
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = floor_3802c0();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
+FXC validation failure:
+c:\src\dawn\Shader@0x00000181E3770840(3,10-18): error X3000: syntax error: unexpected token 'float16_t'
+
diff --git a/test/tint/builtins/gen/literal/floor/3bccc4.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/floor/3bccc4.wgsl.expected.ir.dxc.hlsl
index 0ba40c6..7ec9c80 100644
--- a/test/tint/builtins/gen/literal/floor/3bccc4.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/floor/3bccc4.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,42 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  float4 prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation float4 VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+float4 floor_3bccc4() {
+  float4 res = (1.0f).xxxx;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store4(0u, asuint(floor_3bccc4()));
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store4(0u, asuint(floor_3bccc4()));
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = floor_3bccc4();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
diff --git a/test/tint/builtins/gen/literal/floor/3bccc4.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/floor/3bccc4.wgsl.expected.ir.fxc.hlsl
index 0ba40c6..7ec9c80 100644
--- a/test/tint/builtins/gen/literal/floor/3bccc4.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/floor/3bccc4.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,42 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  float4 prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation float4 VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+float4 floor_3bccc4() {
+  float4 res = (1.0f).xxxx;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store4(0u, asuint(floor_3bccc4()));
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store4(0u, asuint(floor_3bccc4()));
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = floor_3bccc4();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
diff --git a/test/tint/builtins/gen/literal/floor/5fc9ac.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/floor/5fc9ac.wgsl.expected.ir.dxc.hlsl
index 0ba40c6..55ba387 100644
--- a/test/tint/builtins/gen/literal/floor/5fc9ac.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/floor/5fc9ac.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,42 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  float2 prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation float2 VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+float2 floor_5fc9ac() {
+  float2 res = (1.0f).xx;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store2(0u, asuint(floor_5fc9ac()));
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store2(0u, asuint(floor_5fc9ac()));
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = floor_5fc9ac();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
diff --git a/test/tint/builtins/gen/literal/floor/5fc9ac.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/floor/5fc9ac.wgsl.expected.ir.fxc.hlsl
index 0ba40c6..55ba387 100644
--- a/test/tint/builtins/gen/literal/floor/5fc9ac.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/floor/5fc9ac.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,42 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  float2 prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation float2 VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+float2 floor_5fc9ac() {
+  float2 res = (1.0f).xx;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store2(0u, asuint(floor_5fc9ac()));
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store2(0u, asuint(floor_5fc9ac()));
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = floor_5fc9ac();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
diff --git a/test/tint/builtins/gen/literal/floor/60d7ea.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/floor/60d7ea.wgsl.expected.ir.dxc.hlsl
index 0ba40c6..2144c7f 100644
--- a/test/tint/builtins/gen/literal/floor/60d7ea.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/floor/60d7ea.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,42 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  float3 prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation float3 VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+float3 floor_60d7ea() {
+  float3 res = (1.0f).xxx;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store3(0u, asuint(floor_60d7ea()));
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store3(0u, asuint(floor_60d7ea()));
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = floor_60d7ea();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
diff --git a/test/tint/builtins/gen/literal/floor/60d7ea.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/floor/60d7ea.wgsl.expected.ir.fxc.hlsl
index 0ba40c6..2144c7f 100644
--- a/test/tint/builtins/gen/literal/floor/60d7ea.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/floor/60d7ea.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,42 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  float3 prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation float3 VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+float3 floor_60d7ea() {
+  float3 res = (1.0f).xxx;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store3(0u, asuint(floor_60d7ea()));
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store3(0u, asuint(floor_60d7ea()));
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = floor_60d7ea();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
diff --git a/test/tint/builtins/gen/literal/floor/66f154.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/floor/66f154.wgsl.expected.ir.dxc.hlsl
index 0ba40c6..ed262af 100644
--- a/test/tint/builtins/gen/literal/floor/66f154.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/floor/66f154.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,42 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  float prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation float VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+float floor_66f154() {
+  float res = 1.0f;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store(0u, asuint(floor_66f154()));
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store(0u, asuint(floor_66f154()));
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = floor_66f154();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
diff --git a/test/tint/builtins/gen/literal/floor/66f154.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/floor/66f154.wgsl.expected.ir.fxc.hlsl
index 0ba40c6..ed262af 100644
--- a/test/tint/builtins/gen/literal/floor/66f154.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/floor/66f154.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,42 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  float prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation float VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+float floor_66f154() {
+  float res = 1.0f;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store(0u, asuint(floor_66f154()));
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store(0u, asuint(floor_66f154()));
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = floor_66f154();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
diff --git a/test/tint/builtins/gen/literal/floor/84658c.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/floor/84658c.wgsl.expected.ir.dxc.hlsl
index 0ba40c6..5218c8c 100644
--- a/test/tint/builtins/gen/literal/floor/84658c.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/floor/84658c.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,42 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  vector<float16_t, 2> prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation vector<float16_t, 2> VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+vector<float16_t, 2> floor_84658c() {
+  vector<float16_t, 2> res = (float16_t(1.0h)).xx;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store<vector<float16_t, 2> >(0u, floor_84658c());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store<vector<float16_t, 2> >(0u, floor_84658c());
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = floor_84658c();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
diff --git a/test/tint/builtins/gen/literal/floor/84658c.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/floor/84658c.wgsl.expected.ir.fxc.hlsl
index 0ba40c6..015e3a0 100644
--- a/test/tint/builtins/gen/literal/floor/84658c.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/floor/84658c.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,47 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct VertexOutput {
+  float4 pos;
+  vector<float16_t, 2> prevent_dce;
+};
+
+struct vertex_main_outputs {
+  nointerpolation vector<float16_t, 2> VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+vector<float16_t, 2> floor_84658c() {
+  vector<float16_t, 2> res = (float16_t(1.0h)).xx;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store<vector<float16_t, 2> >(0u, floor_84658c());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store<vector<float16_t, 2> >(0u, floor_84658c());
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = floor_84658c();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
+FXC validation failure:
+c:\src\dawn\Shader@0x000002388C35D670(3,10-18): error X3000: syntax error: unexpected token 'float16_t'
+
diff --git a/test/tint/builtins/gen/literal/floor/953774.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/floor/953774.wgsl.expected.ir.dxc.hlsl
index 0ba40c6..399eeb4 100644
--- a/test/tint/builtins/gen/literal/floor/953774.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/floor/953774.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,36 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+void floor_953774() {
+  float3 res = (1.0f).xxx;
+}
+
+void fragment_main() {
+  floor_953774();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  floor_953774();
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  floor_953774();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  vertex_main_outputs v_2 = {v_1.pos};
+  return v_2;
+}
+
diff --git a/test/tint/builtins/gen/literal/floor/953774.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/floor/953774.wgsl.expected.ir.fxc.hlsl
index 0ba40c6..399eeb4 100644
--- a/test/tint/builtins/gen/literal/floor/953774.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/floor/953774.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,36 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+void floor_953774() {
+  float3 res = (1.0f).xxx;
+}
+
+void fragment_main() {
+  floor_953774();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  floor_953774();
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  floor_953774();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  vertex_main_outputs v_2 = {v_1.pos};
+  return v_2;
+}
+
diff --git a/test/tint/builtins/gen/literal/floor/a2d31b.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/floor/a2d31b.wgsl.expected.ir.dxc.hlsl
index 0ba40c6..86f9f3b 100644
--- a/test/tint/builtins/gen/literal/floor/a2d31b.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/floor/a2d31b.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,42 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  vector<float16_t, 4> prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation vector<float16_t, 4> VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+vector<float16_t, 4> floor_a2d31b() {
+  vector<float16_t, 4> res = (float16_t(1.0h)).xxxx;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store<vector<float16_t, 4> >(0u, floor_a2d31b());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store<vector<float16_t, 4> >(0u, floor_a2d31b());
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = floor_a2d31b();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
diff --git a/test/tint/builtins/gen/literal/floor/a2d31b.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/floor/a2d31b.wgsl.expected.ir.fxc.hlsl
index 0ba40c6..460b88c 100644
--- a/test/tint/builtins/gen/literal/floor/a2d31b.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/floor/a2d31b.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,47 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct VertexOutput {
+  float4 pos;
+  vector<float16_t, 4> prevent_dce;
+};
+
+struct vertex_main_outputs {
+  nointerpolation vector<float16_t, 4> VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+vector<float16_t, 4> floor_a2d31b() {
+  vector<float16_t, 4> res = (float16_t(1.0h)).xxxx;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store<vector<float16_t, 4> >(0u, floor_a2d31b());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store<vector<float16_t, 4> >(0u, floor_a2d31b());
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = floor_a2d31b();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
+FXC validation failure:
+c:\src\dawn\Shader@0x0000013E0EE80480(3,10-18): error X3000: syntax error: unexpected token 'float16_t'
+
diff --git a/test/tint/builtins/gen/literal/floor/b6e09c.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/floor/b6e09c.wgsl.expected.ir.dxc.hlsl
index 0ba40c6..7e62456 100644
--- a/test/tint/builtins/gen/literal/floor/b6e09c.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/floor/b6e09c.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,42 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  float16_t prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation float16_t VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+float16_t floor_b6e09c() {
+  float16_t res = float16_t(1.0h);
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store<float16_t>(0u, floor_b6e09c());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store<float16_t>(0u, floor_b6e09c());
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = floor_b6e09c();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
diff --git a/test/tint/builtins/gen/literal/floor/b6e09c.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/floor/b6e09c.wgsl.expected.ir.fxc.hlsl
index 0ba40c6..123b793 100644
--- a/test/tint/builtins/gen/literal/floor/b6e09c.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/floor/b6e09c.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,47 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct VertexOutput {
+  float4 pos;
+  float16_t prevent_dce;
+};
+
+struct vertex_main_outputs {
+  nointerpolation float16_t VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+float16_t floor_b6e09c() {
+  float16_t res = float16_t(1.0h);
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store<float16_t>(0u, floor_b6e09c());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store<float16_t>(0u, floor_b6e09c());
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = floor_b6e09c();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
+FXC validation failure:
+c:\src\dawn\Shader@0x000001FD4F337CF0(3,3-11): error X3000: unrecognized identifier 'float16_t'
+
diff --git a/test/tint/builtins/gen/literal/floor/dcd5a2.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/floor/dcd5a2.wgsl.expected.ir.dxc.hlsl
index 0ba40c6..84a0997 100644
--- a/test/tint/builtins/gen/literal/floor/dcd5a2.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/floor/dcd5a2.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,36 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+void floor_dcd5a2() {
+  float res = 1.0f;
+}
+
+void fragment_main() {
+  floor_dcd5a2();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  floor_dcd5a2();
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  floor_dcd5a2();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  vertex_main_outputs v_2 = {v_1.pos};
+  return v_2;
+}
+
diff --git a/test/tint/builtins/gen/literal/floor/dcd5a2.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/floor/dcd5a2.wgsl.expected.ir.fxc.hlsl
index 0ba40c6..84a0997 100644
--- a/test/tint/builtins/gen/literal/floor/dcd5a2.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/floor/dcd5a2.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,36 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+void floor_dcd5a2() {
+  float res = 1.0f;
+}
+
+void fragment_main() {
+  floor_dcd5a2();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  floor_dcd5a2();
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  floor_dcd5a2();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  vertex_main_outputs v_2 = {v_1.pos};
+  return v_2;
+}
+
diff --git a/test/tint/builtins/gen/literal/floor/e585ef.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/floor/e585ef.wgsl.expected.ir.dxc.hlsl
index 0ba40c6..1aeefba 100644
--- a/test/tint/builtins/gen/literal/floor/e585ef.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/floor/e585ef.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,36 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+void floor_e585ef() {
+  float2 res = (1.0f).xx;
+}
+
+void fragment_main() {
+  floor_e585ef();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  floor_e585ef();
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  floor_e585ef();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  vertex_main_outputs v_2 = {v_1.pos};
+  return v_2;
+}
+
diff --git a/test/tint/builtins/gen/literal/floor/e585ef.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/floor/e585ef.wgsl.expected.ir.fxc.hlsl
index 0ba40c6..1aeefba 100644
--- a/test/tint/builtins/gen/literal/floor/e585ef.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/floor/e585ef.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,36 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+void floor_e585ef() {
+  float2 res = (1.0f).xx;
+}
+
+void fragment_main() {
+  floor_e585ef();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  floor_e585ef();
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  floor_e585ef();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  vertex_main_outputs v_2 = {v_1.pos};
+  return v_2;
+}
+
diff --git a/test/tint/builtins/gen/literal/fma/143d5d.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/fma/143d5d.wgsl.expected.ir.dxc.hlsl
index 0ba40c6..6c2ed69 100644
--- a/test/tint/builtins/gen/literal/fma/143d5d.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/fma/143d5d.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,36 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+void fma_143d5d() {
+  float4 res = (2.0f).xxxx;
+}
+
+void fragment_main() {
+  fma_143d5d();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  fma_143d5d();
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  fma_143d5d();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  vertex_main_outputs v_2 = {v_1.pos};
+  return v_2;
+}
+
diff --git a/test/tint/builtins/gen/literal/fma/143d5d.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/fma/143d5d.wgsl.expected.ir.fxc.hlsl
index 0ba40c6..6c2ed69 100644
--- a/test/tint/builtins/gen/literal/fma/143d5d.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/fma/143d5d.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,36 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+void fma_143d5d() {
+  float4 res = (2.0f).xxxx;
+}
+
+void fragment_main() {
+  fma_143d5d();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  fma_143d5d();
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  fma_143d5d();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  vertex_main_outputs v_2 = {v_1.pos};
+  return v_2;
+}
+
diff --git a/test/tint/builtins/gen/literal/fma/1f5084.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/fma/1f5084.wgsl.expected.ir.dxc.hlsl
index 0ba40c6..a998c9e 100644
--- a/test/tint/builtins/gen/literal/fma/1f5084.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/fma/1f5084.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,36 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+void fma_1f5084() {
+  float2 res = (2.0f).xx;
+}
+
+void fragment_main() {
+  fma_1f5084();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  fma_1f5084();
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  fma_1f5084();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  vertex_main_outputs v_2 = {v_1.pos};
+  return v_2;
+}
+
diff --git a/test/tint/builtins/gen/literal/fma/1f5084.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/fma/1f5084.wgsl.expected.ir.fxc.hlsl
index 0ba40c6..a998c9e 100644
--- a/test/tint/builtins/gen/literal/fma/1f5084.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/fma/1f5084.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,36 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+void fma_1f5084() {
+  float2 res = (2.0f).xx;
+}
+
+void fragment_main() {
+  fma_1f5084();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  fma_1f5084();
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  fma_1f5084();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  vertex_main_outputs v_2 = {v_1.pos};
+  return v_2;
+}
+
diff --git a/test/tint/builtins/gen/literal/fma/26a7a9.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/fma/26a7a9.wgsl.expected.ir.dxc.hlsl
index 0ba40c6..138d8f2 100644
--- a/test/tint/builtins/gen/literal/fma/26a7a9.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/fma/26a7a9.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,42 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  float2 prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation float2 VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+float2 fma_26a7a9() {
+  float2 res = (2.0f).xx;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store2(0u, asuint(fma_26a7a9()));
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store2(0u, asuint(fma_26a7a9()));
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = fma_26a7a9();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
diff --git a/test/tint/builtins/gen/literal/fma/26a7a9.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/fma/26a7a9.wgsl.expected.ir.fxc.hlsl
index 0ba40c6..138d8f2 100644
--- a/test/tint/builtins/gen/literal/fma/26a7a9.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/fma/26a7a9.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,42 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  float2 prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation float2 VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+float2 fma_26a7a9() {
+  float2 res = (2.0f).xx;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store2(0u, asuint(fma_26a7a9()));
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store2(0u, asuint(fma_26a7a9()));
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = fma_26a7a9();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
diff --git a/test/tint/builtins/gen/literal/fma/466442.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/fma/466442.wgsl.expected.ir.dxc.hlsl
index 0ba40c6..3e717a1 100644
--- a/test/tint/builtins/gen/literal/fma/466442.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/fma/466442.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,36 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+void fma_466442() {
+  float res = 2.0f;
+}
+
+void fragment_main() {
+  fma_466442();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  fma_466442();
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  fma_466442();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  vertex_main_outputs v_2 = {v_1.pos};
+  return v_2;
+}
+
diff --git a/test/tint/builtins/gen/literal/fma/466442.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/fma/466442.wgsl.expected.ir.fxc.hlsl
index 0ba40c6..3e717a1 100644
--- a/test/tint/builtins/gen/literal/fma/466442.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/fma/466442.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,36 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+void fma_466442() {
+  float res = 2.0f;
+}
+
+void fragment_main() {
+  fma_466442();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  fma_466442();
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  fma_466442();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  vertex_main_outputs v_2 = {v_1.pos};
+  return v_2;
+}
+
diff --git a/test/tint/builtins/gen/literal/fma/6a3283.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/fma/6a3283.wgsl.expected.ir.dxc.hlsl
index 0ba40c6..323fb44 100644
--- a/test/tint/builtins/gen/literal/fma/6a3283.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/fma/6a3283.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,42 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  float4 prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation float4 VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+float4 fma_6a3283() {
+  float4 res = (2.0f).xxxx;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store4(0u, asuint(fma_6a3283()));
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store4(0u, asuint(fma_6a3283()));
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = fma_6a3283();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
diff --git a/test/tint/builtins/gen/literal/fma/6a3283.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/fma/6a3283.wgsl.expected.ir.fxc.hlsl
index 0ba40c6..323fb44 100644
--- a/test/tint/builtins/gen/literal/fma/6a3283.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/fma/6a3283.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,42 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  float4 prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation float4 VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+float4 fma_6a3283() {
+  float4 res = (2.0f).xxxx;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store4(0u, asuint(fma_6a3283()));
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store4(0u, asuint(fma_6a3283()));
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = fma_6a3283();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
diff --git a/test/tint/builtins/gen/literal/fma/ab7818.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/fma/ab7818.wgsl.expected.ir.dxc.hlsl
index 0ba40c6..17ee53d 100644
--- a/test/tint/builtins/gen/literal/fma/ab7818.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/fma/ab7818.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,42 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  vector<float16_t, 4> prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation vector<float16_t, 4> VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+vector<float16_t, 4> fma_ab7818() {
+  vector<float16_t, 4> res = (float16_t(2.0h)).xxxx;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store<vector<float16_t, 4> >(0u, fma_ab7818());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store<vector<float16_t, 4> >(0u, fma_ab7818());
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = fma_ab7818();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
diff --git a/test/tint/builtins/gen/literal/fma/ab7818.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/fma/ab7818.wgsl.expected.ir.fxc.hlsl
index 0ba40c6..3f9cb7c 100644
--- a/test/tint/builtins/gen/literal/fma/ab7818.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/fma/ab7818.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,47 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct VertexOutput {
+  float4 pos;
+  vector<float16_t, 4> prevent_dce;
+};
+
+struct vertex_main_outputs {
+  nointerpolation vector<float16_t, 4> VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+vector<float16_t, 4> fma_ab7818() {
+  vector<float16_t, 4> res = (float16_t(2.0h)).xxxx;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store<vector<float16_t, 4> >(0u, fma_ab7818());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store<vector<float16_t, 4> >(0u, fma_ab7818());
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = fma_ab7818();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
+FXC validation failure:
+c:\src\dawn\Shader@0x0000013DB716BA20(3,10-18): error X3000: syntax error: unexpected token 'float16_t'
+
diff --git a/test/tint/builtins/gen/literal/fma/bf21b6.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/fma/bf21b6.wgsl.expected.ir.dxc.hlsl
index 0ba40c6..95a3dd3 100644
--- a/test/tint/builtins/gen/literal/fma/bf21b6.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/fma/bf21b6.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,42 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  vector<float16_t, 2> prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation vector<float16_t, 2> VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+vector<float16_t, 2> fma_bf21b6() {
+  vector<float16_t, 2> res = (float16_t(2.0h)).xx;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store<vector<float16_t, 2> >(0u, fma_bf21b6());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store<vector<float16_t, 2> >(0u, fma_bf21b6());
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = fma_bf21b6();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
diff --git a/test/tint/builtins/gen/literal/fma/bf21b6.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/fma/bf21b6.wgsl.expected.ir.fxc.hlsl
index 0ba40c6..520c119 100644
--- a/test/tint/builtins/gen/literal/fma/bf21b6.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/fma/bf21b6.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,47 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct VertexOutput {
+  float4 pos;
+  vector<float16_t, 2> prevent_dce;
+};
+
+struct vertex_main_outputs {
+  nointerpolation vector<float16_t, 2> VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+vector<float16_t, 2> fma_bf21b6() {
+  vector<float16_t, 2> res = (float16_t(2.0h)).xx;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store<vector<float16_t, 2> >(0u, fma_bf21b6());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store<vector<float16_t, 2> >(0u, fma_bf21b6());
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = fma_bf21b6();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
+FXC validation failure:
+c:\src\dawn\Shader@0x000002156CD16A80(3,10-18): error X3000: syntax error: unexpected token 'float16_t'
+
diff --git a/test/tint/builtins/gen/literal/fma/c10ba3.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/fma/c10ba3.wgsl.expected.ir.dxc.hlsl
index 0ba40c6..8d03cda 100644
--- a/test/tint/builtins/gen/literal/fma/c10ba3.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/fma/c10ba3.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,42 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  float prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation float VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+float fma_c10ba3() {
+  float res = 2.0f;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store(0u, asuint(fma_c10ba3()));
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store(0u, asuint(fma_c10ba3()));
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = fma_c10ba3();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
diff --git a/test/tint/builtins/gen/literal/fma/c10ba3.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/fma/c10ba3.wgsl.expected.ir.fxc.hlsl
index 0ba40c6..8d03cda 100644
--- a/test/tint/builtins/gen/literal/fma/c10ba3.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/fma/c10ba3.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,42 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  float prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation float VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+float fma_c10ba3() {
+  float res = 2.0f;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store(0u, asuint(fma_c10ba3()));
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store(0u, asuint(fma_c10ba3()));
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = fma_c10ba3();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
diff --git a/test/tint/builtins/gen/literal/fma/c8abb3.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/fma/c8abb3.wgsl.expected.ir.dxc.hlsl
index 0ba40c6..78bd8bd 100644
--- a/test/tint/builtins/gen/literal/fma/c8abb3.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/fma/c8abb3.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,42 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  float16_t prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation float16_t VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+float16_t fma_c8abb3() {
+  float16_t res = float16_t(2.0h);
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store<float16_t>(0u, fma_c8abb3());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store<float16_t>(0u, fma_c8abb3());
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = fma_c8abb3();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
diff --git a/test/tint/builtins/gen/literal/fma/c8abb3.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/fma/c8abb3.wgsl.expected.ir.fxc.hlsl
index 0ba40c6..1b755f4 100644
--- a/test/tint/builtins/gen/literal/fma/c8abb3.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/fma/c8abb3.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,47 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct VertexOutput {
+  float4 pos;
+  float16_t prevent_dce;
+};
+
+struct vertex_main_outputs {
+  nointerpolation float16_t VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+float16_t fma_c8abb3() {
+  float16_t res = float16_t(2.0h);
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store<float16_t>(0u, fma_c8abb3());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store<float16_t>(0u, fma_c8abb3());
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = fma_c8abb3();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
+FXC validation failure:
+c:\src\dawn\Shader@0x00000164D35BF360(3,3-11): error X3000: unrecognized identifier 'float16_t'
+
diff --git a/test/tint/builtins/gen/literal/fma/e17c5c.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/fma/e17c5c.wgsl.expected.ir.dxc.hlsl
index 0ba40c6..21de8b9 100644
--- a/test/tint/builtins/gen/literal/fma/e17c5c.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/fma/e17c5c.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,42 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  float3 prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation float3 VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+float3 fma_e17c5c() {
+  float3 res = (2.0f).xxx;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store3(0u, asuint(fma_e17c5c()));
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store3(0u, asuint(fma_e17c5c()));
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = fma_e17c5c();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
diff --git a/test/tint/builtins/gen/literal/fma/e17c5c.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/fma/e17c5c.wgsl.expected.ir.fxc.hlsl
index 0ba40c6..21de8b9 100644
--- a/test/tint/builtins/gen/literal/fma/e17c5c.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/fma/e17c5c.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,42 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  float3 prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation float3 VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+float3 fma_e17c5c() {
+  float3 res = (2.0f).xxx;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store3(0u, asuint(fma_e17c5c()));
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store3(0u, asuint(fma_e17c5c()));
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = fma_e17c5c();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
diff --git a/test/tint/builtins/gen/literal/fma/e7abdc.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/fma/e7abdc.wgsl.expected.ir.dxc.hlsl
index 0ba40c6..cebd465 100644
--- a/test/tint/builtins/gen/literal/fma/e7abdc.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/fma/e7abdc.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,42 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  vector<float16_t, 3> prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation vector<float16_t, 3> VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+vector<float16_t, 3> fma_e7abdc() {
+  vector<float16_t, 3> res = (float16_t(2.0h)).xxx;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store<vector<float16_t, 3> >(0u, fma_e7abdc());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store<vector<float16_t, 3> >(0u, fma_e7abdc());
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = fma_e7abdc();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
diff --git a/test/tint/builtins/gen/literal/fma/e7abdc.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/fma/e7abdc.wgsl.expected.ir.fxc.hlsl
index 0ba40c6..84ae825 100644
--- a/test/tint/builtins/gen/literal/fma/e7abdc.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/fma/e7abdc.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,47 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct VertexOutput {
+  float4 pos;
+  vector<float16_t, 3> prevent_dce;
+};
+
+struct vertex_main_outputs {
+  nointerpolation vector<float16_t, 3> VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+vector<float16_t, 3> fma_e7abdc() {
+  vector<float16_t, 3> res = (float16_t(2.0h)).xxx;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store<vector<float16_t, 3> >(0u, fma_e7abdc());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store<vector<float16_t, 3> >(0u, fma_e7abdc());
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = fma_e7abdc();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
+FXC validation failure:
+c:\src\dawn\Shader@0x000001D98AD32FA0(3,10-18): error X3000: syntax error: unexpected token 'float16_t'
+
diff --git a/test/tint/builtins/gen/literal/fma/eb25d7.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/fma/eb25d7.wgsl.expected.ir.dxc.hlsl
index 0ba40c6..637bf0b5 100644
--- a/test/tint/builtins/gen/literal/fma/eb25d7.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/fma/eb25d7.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,36 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+void fma_eb25d7() {
+  float3 res = (2.0f).xxx;
+}
+
+void fragment_main() {
+  fma_eb25d7();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  fma_eb25d7();
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  fma_eb25d7();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  vertex_main_outputs v_2 = {v_1.pos};
+  return v_2;
+}
+
diff --git a/test/tint/builtins/gen/literal/fma/eb25d7.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/fma/eb25d7.wgsl.expected.ir.fxc.hlsl
index 0ba40c6..637bf0b5 100644
--- a/test/tint/builtins/gen/literal/fma/eb25d7.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/fma/eb25d7.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,36 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+void fma_eb25d7() {
+  float3 res = (2.0f).xxx;
+}
+
+void fragment_main() {
+  fma_eb25d7();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  fma_eb25d7();
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  fma_eb25d7();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  vertex_main_outputs v_2 = {v_1.pos};
+  return v_2;
+}
+
diff --git a/test/tint/builtins/gen/literal/fract/181aa9.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/fract/181aa9.wgsl.expected.ir.dxc.hlsl
index 0ba40c6..a2417a5 100644
--- a/test/tint/builtins/gen/literal/fract/181aa9.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/fract/181aa9.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,42 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  vector<float16_t, 2> prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation vector<float16_t, 2> VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+vector<float16_t, 2> fract_181aa9() {
+  vector<float16_t, 2> res = (float16_t(0.25h)).xx;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store<vector<float16_t, 2> >(0u, fract_181aa9());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store<vector<float16_t, 2> >(0u, fract_181aa9());
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = fract_181aa9();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
diff --git a/test/tint/builtins/gen/literal/fract/181aa9.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/fract/181aa9.wgsl.expected.ir.fxc.hlsl
index 0ba40c6..16fd2bb 100644
--- a/test/tint/builtins/gen/literal/fract/181aa9.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/fract/181aa9.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,47 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct VertexOutput {
+  float4 pos;
+  vector<float16_t, 2> prevent_dce;
+};
+
+struct vertex_main_outputs {
+  nointerpolation vector<float16_t, 2> VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+vector<float16_t, 2> fract_181aa9() {
+  vector<float16_t, 2> res = (float16_t(0.25h)).xx;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store<vector<float16_t, 2> >(0u, fract_181aa9());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store<vector<float16_t, 2> >(0u, fract_181aa9());
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = fract_181aa9();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
+FXC validation failure:
+c:\src\dawn\Shader@0x0000021A739E38B0(3,10-18): error X3000: syntax error: unexpected token 'float16_t'
+
diff --git a/test/tint/builtins/gen/literal/fract/2eddfe.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/fract/2eddfe.wgsl.expected.ir.dxc.hlsl
index 0ba40c6..1bd30c0 100644
--- a/test/tint/builtins/gen/literal/fract/2eddfe.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/fract/2eddfe.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,36 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+void fract_2eddfe() {
+  float res = 0.25f;
+}
+
+void fragment_main() {
+  fract_2eddfe();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  fract_2eddfe();
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  fract_2eddfe();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  vertex_main_outputs v_2 = {v_1.pos};
+  return v_2;
+}
+
diff --git a/test/tint/builtins/gen/literal/fract/2eddfe.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/fract/2eddfe.wgsl.expected.ir.fxc.hlsl
index 0ba40c6..1bd30c0 100644
--- a/test/tint/builtins/gen/literal/fract/2eddfe.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/fract/2eddfe.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,36 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+void fract_2eddfe() {
+  float res = 0.25f;
+}
+
+void fragment_main() {
+  fract_2eddfe();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  fract_2eddfe();
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  fract_2eddfe();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  vertex_main_outputs v_2 = {v_1.pos};
+  return v_2;
+}
+
diff --git a/test/tint/builtins/gen/literal/fract/498c77.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/fract/498c77.wgsl.expected.ir.dxc.hlsl
index 0ba40c6..522dba5 100644
--- a/test/tint/builtins/gen/literal/fract/498c77.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/fract/498c77.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,42 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  vector<float16_t, 4> prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation vector<float16_t, 4> VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+vector<float16_t, 4> fract_498c77() {
+  vector<float16_t, 4> res = (float16_t(0.25h)).xxxx;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store<vector<float16_t, 4> >(0u, fract_498c77());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store<vector<float16_t, 4> >(0u, fract_498c77());
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = fract_498c77();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
diff --git a/test/tint/builtins/gen/literal/fract/498c77.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/fract/498c77.wgsl.expected.ir.fxc.hlsl
index 0ba40c6..c7b5686 100644
--- a/test/tint/builtins/gen/literal/fract/498c77.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/fract/498c77.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,47 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct VertexOutput {
+  float4 pos;
+  vector<float16_t, 4> prevent_dce;
+};
+
+struct vertex_main_outputs {
+  nointerpolation vector<float16_t, 4> VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+vector<float16_t, 4> fract_498c77() {
+  vector<float16_t, 4> res = (float16_t(0.25h)).xxxx;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store<vector<float16_t, 4> >(0u, fract_498c77());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store<vector<float16_t, 4> >(0u, fract_498c77());
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = fract_498c77();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
+FXC validation failure:
+c:\src\dawn\Shader@0x000001FB9C2E02C0(3,10-18): error X3000: syntax error: unexpected token 'float16_t'
+
diff --git a/test/tint/builtins/gen/literal/fract/7e3f2d.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/fract/7e3f2d.wgsl.expected.ir.dxc.hlsl
index 0ba40c6..8c6e312 100644
--- a/test/tint/builtins/gen/literal/fract/7e3f2d.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/fract/7e3f2d.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,36 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+void fract_7e3f2d() {
+  float4 res = (0.25f).xxxx;
+}
+
+void fragment_main() {
+  fract_7e3f2d();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  fract_7e3f2d();
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  fract_7e3f2d();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  vertex_main_outputs v_2 = {v_1.pos};
+  return v_2;
+}
+
diff --git a/test/tint/builtins/gen/literal/fract/7e3f2d.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/fract/7e3f2d.wgsl.expected.ir.fxc.hlsl
index 0ba40c6..8c6e312 100644
--- a/test/tint/builtins/gen/literal/fract/7e3f2d.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/fract/7e3f2d.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,36 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+void fract_7e3f2d() {
+  float4 res = (0.25f).xxxx;
+}
+
+void fragment_main() {
+  fract_7e3f2d();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  fract_7e3f2d();
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  fract_7e3f2d();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  vertex_main_outputs v_2 = {v_1.pos};
+  return v_2;
+}
+
diff --git a/test/tint/builtins/gen/literal/fract/8bc1e9.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/fract/8bc1e9.wgsl.expected.ir.dxc.hlsl
index 0ba40c6..c91d24a 100644
--- a/test/tint/builtins/gen/literal/fract/8bc1e9.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/fract/8bc1e9.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,42 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  float4 prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation float4 VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+float4 fract_8bc1e9() {
+  float4 res = (0.25f).xxxx;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store4(0u, asuint(fract_8bc1e9()));
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store4(0u, asuint(fract_8bc1e9()));
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = fract_8bc1e9();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
diff --git a/test/tint/builtins/gen/literal/fract/8bc1e9.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/fract/8bc1e9.wgsl.expected.ir.fxc.hlsl
index 0ba40c6..c91d24a 100644
--- a/test/tint/builtins/gen/literal/fract/8bc1e9.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/fract/8bc1e9.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,42 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  float4 prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation float4 VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+float4 fract_8bc1e9() {
+  float4 res = (0.25f).xxxx;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store4(0u, asuint(fract_8bc1e9()));
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store4(0u, asuint(fract_8bc1e9()));
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = fract_8bc1e9();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
diff --git a/test/tint/builtins/gen/literal/fract/943cb1.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/fract/943cb1.wgsl.expected.ir.dxc.hlsl
index 0ba40c6..662f0d4 100644
--- a/test/tint/builtins/gen/literal/fract/943cb1.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/fract/943cb1.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,42 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  float2 prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation float2 VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+float2 fract_943cb1() {
+  float2 res = (0.25f).xx;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store2(0u, asuint(fract_943cb1()));
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store2(0u, asuint(fract_943cb1()));
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = fract_943cb1();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
diff --git a/test/tint/builtins/gen/literal/fract/943cb1.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/fract/943cb1.wgsl.expected.ir.fxc.hlsl
index 0ba40c6..662f0d4 100644
--- a/test/tint/builtins/gen/literal/fract/943cb1.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/fract/943cb1.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,42 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  float2 prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation float2 VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+float2 fract_943cb1() {
+  float2 res = (0.25f).xx;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store2(0u, asuint(fract_943cb1()));
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store2(0u, asuint(fract_943cb1()));
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = fract_943cb1();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
diff --git a/test/tint/builtins/gen/literal/fract/958a1d.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/fract/958a1d.wgsl.expected.ir.dxc.hlsl
index 0ba40c6..71fc6eb 100644
--- a/test/tint/builtins/gen/literal/fract/958a1d.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/fract/958a1d.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,42 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  vector<float16_t, 3> prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation vector<float16_t, 3> VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+vector<float16_t, 3> fract_958a1d() {
+  vector<float16_t, 3> res = (float16_t(0.25h)).xxx;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store<vector<float16_t, 3> >(0u, fract_958a1d());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store<vector<float16_t, 3> >(0u, fract_958a1d());
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = fract_958a1d();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
diff --git a/test/tint/builtins/gen/literal/fract/958a1d.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/fract/958a1d.wgsl.expected.ir.fxc.hlsl
index 0ba40c6..0603ba1 100644
--- a/test/tint/builtins/gen/literal/fract/958a1d.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/fract/958a1d.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,47 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct VertexOutput {
+  float4 pos;
+  vector<float16_t, 3> prevent_dce;
+};
+
+struct vertex_main_outputs {
+  nointerpolation vector<float16_t, 3> VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+vector<float16_t, 3> fract_958a1d() {
+  vector<float16_t, 3> res = (float16_t(0.25h)).xxx;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store<vector<float16_t, 3> >(0u, fract_958a1d());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store<vector<float16_t, 3> >(0u, fract_958a1d());
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = fract_958a1d();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
+FXC validation failure:
+c:\src\dawn\Shader@0x000001B5B0E4C2F0(3,10-18): error X3000: syntax error: unexpected token 'float16_t'
+
diff --git a/test/tint/builtins/gen/literal/fract/a49758.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/fract/a49758.wgsl.expected.ir.dxc.hlsl
index 0ba40c6..e8d6f58 100644
--- a/test/tint/builtins/gen/literal/fract/a49758.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/fract/a49758.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,42 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  float3 prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation float3 VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+float3 fract_a49758() {
+  float3 res = (0.25f).xxx;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store3(0u, asuint(fract_a49758()));
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store3(0u, asuint(fract_a49758()));
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = fract_a49758();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
diff --git a/test/tint/builtins/gen/literal/fract/a49758.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/fract/a49758.wgsl.expected.ir.fxc.hlsl
index 0ba40c6..e8d6f58 100644
--- a/test/tint/builtins/gen/literal/fract/a49758.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/fract/a49758.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,42 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  float3 prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation float3 VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+float3 fract_a49758() {
+  float3 res = (0.25f).xxx;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store3(0u, asuint(fract_a49758()));
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store3(0u, asuint(fract_a49758()));
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = fract_a49758();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
diff --git a/test/tint/builtins/gen/literal/fract/eb38ce.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/fract/eb38ce.wgsl.expected.ir.dxc.hlsl
index 0ba40c6..4501470 100644
--- a/test/tint/builtins/gen/literal/fract/eb38ce.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/fract/eb38ce.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,42 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  float16_t prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation float16_t VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+float16_t fract_eb38ce() {
+  float16_t res = float16_t(0.25h);
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store<float16_t>(0u, fract_eb38ce());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store<float16_t>(0u, fract_eb38ce());
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = fract_eb38ce();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
diff --git a/test/tint/builtins/gen/literal/fract/eb38ce.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/fract/eb38ce.wgsl.expected.ir.fxc.hlsl
index 0ba40c6..64f7e59 100644
--- a/test/tint/builtins/gen/literal/fract/eb38ce.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/fract/eb38ce.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,47 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct VertexOutput {
+  float4 pos;
+  float16_t prevent_dce;
+};
+
+struct vertex_main_outputs {
+  nointerpolation float16_t VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+float16_t fract_eb38ce() {
+  float16_t res = float16_t(0.25h);
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store<float16_t>(0u, fract_eb38ce());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store<float16_t>(0u, fract_eb38ce());
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = fract_eb38ce();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
+FXC validation failure:
+c:\src\dawn\Shader@0x000002287AE24BE0(3,3-11): error X3000: unrecognized identifier 'float16_t'
+
diff --git a/test/tint/builtins/gen/literal/fract/ed00ca.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/fract/ed00ca.wgsl.expected.ir.dxc.hlsl
index 0ba40c6..30a3256 100644
--- a/test/tint/builtins/gen/literal/fract/ed00ca.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/fract/ed00ca.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,36 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+void fract_ed00ca() {
+  float2 res = (0.25f).xx;
+}
+
+void fragment_main() {
+  fract_ed00ca();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  fract_ed00ca();
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  fract_ed00ca();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  vertex_main_outputs v_2 = {v_1.pos};
+  return v_2;
+}
+
diff --git a/test/tint/builtins/gen/literal/fract/ed00ca.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/fract/ed00ca.wgsl.expected.ir.fxc.hlsl
index 0ba40c6..30a3256 100644
--- a/test/tint/builtins/gen/literal/fract/ed00ca.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/fract/ed00ca.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,36 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+void fract_ed00ca() {
+  float2 res = (0.25f).xx;
+}
+
+void fragment_main() {
+  fract_ed00ca();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  fract_ed00ca();
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  fract_ed00ca();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  vertex_main_outputs v_2 = {v_1.pos};
+  return v_2;
+}
+
diff --git a/test/tint/builtins/gen/literal/fract/ed2f79.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/fract/ed2f79.wgsl.expected.ir.dxc.hlsl
index 0ba40c6..a85cac6 100644
--- a/test/tint/builtins/gen/literal/fract/ed2f79.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/fract/ed2f79.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,36 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+void fract_ed2f79() {
+  float3 res = (0.25f).xxx;
+}
+
+void fragment_main() {
+  fract_ed2f79();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  fract_ed2f79();
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  fract_ed2f79();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  vertex_main_outputs v_2 = {v_1.pos};
+  return v_2;
+}
+
diff --git a/test/tint/builtins/gen/literal/fract/ed2f79.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/fract/ed2f79.wgsl.expected.ir.fxc.hlsl
index 0ba40c6..a85cac6 100644
--- a/test/tint/builtins/gen/literal/fract/ed2f79.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/fract/ed2f79.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,36 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+void fract_ed2f79() {
+  float3 res = (0.25f).xxx;
+}
+
+void fragment_main() {
+  fract_ed2f79();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  fract_ed2f79();
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  fract_ed2f79();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  vertex_main_outputs v_2 = {v_1.pos};
+  return v_2;
+}
+
diff --git a/test/tint/builtins/gen/literal/fract/fa5c71.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/fract/fa5c71.wgsl.expected.ir.dxc.hlsl
index 0ba40c6..956ab9f 100644
--- a/test/tint/builtins/gen/literal/fract/fa5c71.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/fract/fa5c71.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,42 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  float prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation float VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+float fract_fa5c71() {
+  float res = 0.25f;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store(0u, asuint(fract_fa5c71()));
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store(0u, asuint(fract_fa5c71()));
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = fract_fa5c71();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
diff --git a/test/tint/builtins/gen/literal/fract/fa5c71.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/fract/fa5c71.wgsl.expected.ir.fxc.hlsl
index 0ba40c6..956ab9f 100644
--- a/test/tint/builtins/gen/literal/fract/fa5c71.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/fract/fa5c71.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,42 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  float prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation float VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+float fract_fa5c71() {
+  float res = 0.25f;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store(0u, asuint(fract_fa5c71()));
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store(0u, asuint(fract_fa5c71()));
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = fract_fa5c71();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
diff --git a/test/tint/builtins/gen/literal/frexp/34bbfb.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/frexp/34bbfb.wgsl.expected.ir.dxc.hlsl
index 0ba40c6..ca3d771 100644
--- a/test/tint/builtins/gen/literal/frexp/34bbfb.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/frexp/34bbfb.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,41 @@
-SKIP: FAILED
+struct frexp_result_vec4_f32 {
+  float4 fract;
+  int4 exp;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct VertexOutput {
+  float4 pos;
+};
+
+struct vertex_main_outputs {
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+void frexp_34bbfb() {
+  frexp_result_vec4_f32 res = {(0.5f).xxxx, (1).xxxx};
+}
+
+void fragment_main() {
+  frexp_34bbfb();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  frexp_34bbfb();
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  frexp_34bbfb();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  vertex_main_outputs v_2 = {v_1.pos};
+  return v_2;
+}
+
diff --git a/test/tint/builtins/gen/literal/frexp/34bbfb.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/frexp/34bbfb.wgsl.expected.ir.fxc.hlsl
index 0ba40c6..ca3d771 100644
--- a/test/tint/builtins/gen/literal/frexp/34bbfb.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/frexp/34bbfb.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,41 @@
-SKIP: FAILED
+struct frexp_result_vec4_f32 {
+  float4 fract;
+  int4 exp;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct VertexOutput {
+  float4 pos;
+};
+
+struct vertex_main_outputs {
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+void frexp_34bbfb() {
+  frexp_result_vec4_f32 res = {(0.5f).xxxx, (1).xxxx};
+}
+
+void fragment_main() {
+  frexp_34bbfb();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  frexp_34bbfb();
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  frexp_34bbfb();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  vertex_main_outputs v_2 = {v_1.pos};
+  return v_2;
+}
+
diff --git a/test/tint/builtins/gen/literal/frexp/3dd21e.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/frexp/3dd21e.wgsl.expected.ir.dxc.hlsl
index 0ba40c6..13dd064 100644
--- a/test/tint/builtins/gen/literal/frexp/3dd21e.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/frexp/3dd21e.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,41 @@
-SKIP: FAILED
+struct frexp_result_vec4_f16 {
+  vector<float16_t, 4> fract;
+  int4 exp;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct VertexOutput {
+  float4 pos;
+};
+
+struct vertex_main_outputs {
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+void frexp_3dd21e() {
+  frexp_result_vec4_f16 res = {(float16_t(0.5h)).xxxx, (1).xxxx};
+}
+
+void fragment_main() {
+  frexp_3dd21e();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  frexp_3dd21e();
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  frexp_3dd21e();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  vertex_main_outputs v_2 = {v_1.pos};
+  return v_2;
+}
+
diff --git a/test/tint/builtins/gen/literal/frexp/3dd21e.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/frexp/3dd21e.wgsl.expected.ir.fxc.hlsl
index 0ba40c6..53f4872 100644
--- a/test/tint/builtins/gen/literal/frexp/3dd21e.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/frexp/3dd21e.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,46 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct frexp_result_vec4_f16 {
+  vector<float16_t, 4> fract;
+  int4 exp;
+};
+
+struct VertexOutput {
+  float4 pos;
+};
+
+struct vertex_main_outputs {
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+void frexp_3dd21e() {
+  frexp_result_vec4_f16 res = {(float16_t(0.5h)).xxxx, (1).xxxx};
+}
+
+void fragment_main() {
+  frexp_3dd21e();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  frexp_3dd21e();
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  frexp_3dd21e();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  vertex_main_outputs v_2 = {v_1.pos};
+  return v_2;
+}
+
+FXC validation failure:
+c:\src\dawn\Shader@0x000002A63D922A30(2,10-18): error X3000: syntax error: unexpected token 'float16_t'
+
diff --git a/test/tint/builtins/gen/literal/frexp/4b2200.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/frexp/4b2200.wgsl.expected.ir.dxc.hlsl
index 0ba40c6..a7061cd 100644
--- a/test/tint/builtins/gen/literal/frexp/4b2200.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/frexp/4b2200.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,41 @@
-SKIP: FAILED
+struct frexp_result_f32 {
+  float fract;
+  int exp;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct VertexOutput {
+  float4 pos;
+};
+
+struct vertex_main_outputs {
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+void frexp_4b2200() {
+  frexp_result_f32 res = {0.5f, 1};
+}
+
+void fragment_main() {
+  frexp_4b2200();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  frexp_4b2200();
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  frexp_4b2200();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  vertex_main_outputs v_2 = {v_1.pos};
+  return v_2;
+}
+
diff --git a/test/tint/builtins/gen/literal/frexp/4b2200.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/frexp/4b2200.wgsl.expected.ir.fxc.hlsl
index 0ba40c6..a7061cd 100644
--- a/test/tint/builtins/gen/literal/frexp/4b2200.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/frexp/4b2200.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,41 @@
-SKIP: FAILED
+struct frexp_result_f32 {
+  float fract;
+  int exp;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct VertexOutput {
+  float4 pos;
+};
+
+struct vertex_main_outputs {
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+void frexp_4b2200() {
+  frexp_result_f32 res = {0.5f, 1};
+}
+
+void fragment_main() {
+  frexp_4b2200();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  frexp_4b2200();
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  frexp_4b2200();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  vertex_main_outputs v_2 = {v_1.pos};
+  return v_2;
+}
+
diff --git a/test/tint/builtins/gen/literal/frexp/5257dd.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/frexp/5257dd.wgsl.expected.ir.dxc.hlsl
index 0ba40c6..37ab1ae 100644
--- a/test/tint/builtins/gen/literal/frexp/5257dd.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/frexp/5257dd.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,41 @@
-SKIP: FAILED
+struct frexp_result_f16 {
+  float16_t fract;
+  int exp;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct VertexOutput {
+  float4 pos;
+};
+
+struct vertex_main_outputs {
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+void frexp_5257dd() {
+  frexp_result_f16 res = {float16_t(0.5h), 1};
+}
+
+void fragment_main() {
+  frexp_5257dd();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  frexp_5257dd();
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  frexp_5257dd();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  vertex_main_outputs v_2 = {v_1.pos};
+  return v_2;
+}
+
diff --git a/test/tint/builtins/gen/literal/frexp/5257dd.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/frexp/5257dd.wgsl.expected.ir.fxc.hlsl
index 0ba40c6..1b403c4 100644
--- a/test/tint/builtins/gen/literal/frexp/5257dd.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/frexp/5257dd.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,46 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct frexp_result_f16 {
+  float16_t fract;
+  int exp;
+};
+
+struct VertexOutput {
+  float4 pos;
+};
+
+struct vertex_main_outputs {
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+void frexp_5257dd() {
+  frexp_result_f16 res = {float16_t(0.5h), 1};
+}
+
+void fragment_main() {
+  frexp_5257dd();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  frexp_5257dd();
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  frexp_5257dd();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  vertex_main_outputs v_2 = {v_1.pos};
+  return v_2;
+}
+
+FXC validation failure:
+c:\src\dawn\Shader@0x0000021FEF79FAB0(2,3-11): error X3000: unrecognized identifier 'float16_t'
+
diff --git a/test/tint/builtins/gen/literal/frexp/5f47bf.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/frexp/5f47bf.wgsl.expected.ir.dxc.hlsl
index 0ba40c6..cd126f4 100644
--- a/test/tint/builtins/gen/literal/frexp/5f47bf.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/frexp/5f47bf.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,41 @@
-SKIP: FAILED
+struct frexp_result_vec2_f16 {
+  vector<float16_t, 2> fract;
+  int2 exp;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct VertexOutput {
+  float4 pos;
+};
+
+struct vertex_main_outputs {
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+void frexp_5f47bf() {
+  frexp_result_vec2_f16 res = {(float16_t(0.5h)).xx, (1).xx};
+}
+
+void fragment_main() {
+  frexp_5f47bf();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  frexp_5f47bf();
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  frexp_5f47bf();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  vertex_main_outputs v_2 = {v_1.pos};
+  return v_2;
+}
+
diff --git a/test/tint/builtins/gen/literal/frexp/5f47bf.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/frexp/5f47bf.wgsl.expected.ir.fxc.hlsl
index 0ba40c6..ccc90b9 100644
--- a/test/tint/builtins/gen/literal/frexp/5f47bf.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/frexp/5f47bf.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,46 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct frexp_result_vec2_f16 {
+  vector<float16_t, 2> fract;
+  int2 exp;
+};
+
+struct VertexOutput {
+  float4 pos;
+};
+
+struct vertex_main_outputs {
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+void frexp_5f47bf() {
+  frexp_result_vec2_f16 res = {(float16_t(0.5h)).xx, (1).xx};
+}
+
+void fragment_main() {
+  frexp_5f47bf();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  frexp_5f47bf();
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  frexp_5f47bf();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  vertex_main_outputs v_2 = {v_1.pos};
+  return v_2;
+}
+
+FXC validation failure:
+c:\src\dawn\Shader@0x000001FAC7824580(2,10-18): error X3000: syntax error: unexpected token 'float16_t'
+
diff --git a/test/tint/builtins/gen/literal/frexp/6fb3ad.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/frexp/6fb3ad.wgsl.expected.ir.dxc.hlsl
index 0ba40c6..d213c3f 100644
--- a/test/tint/builtins/gen/literal/frexp/6fb3ad.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/frexp/6fb3ad.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,41 @@
-SKIP: FAILED
+struct frexp_result_vec2_f32 {
+  float2 fract;
+  int2 exp;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct VertexOutput {
+  float4 pos;
+};
+
+struct vertex_main_outputs {
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+void frexp_6fb3ad() {
+  frexp_result_vec2_f32 res = {(0.5f).xx, (1).xx};
+}
+
+void fragment_main() {
+  frexp_6fb3ad();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  frexp_6fb3ad();
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  frexp_6fb3ad();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  vertex_main_outputs v_2 = {v_1.pos};
+  return v_2;
+}
+
diff --git a/test/tint/builtins/gen/literal/frexp/6fb3ad.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/frexp/6fb3ad.wgsl.expected.ir.fxc.hlsl
index 0ba40c6..d213c3f 100644
--- a/test/tint/builtins/gen/literal/frexp/6fb3ad.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/frexp/6fb3ad.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,41 @@
-SKIP: FAILED
+struct frexp_result_vec2_f32 {
+  float2 fract;
+  int2 exp;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct VertexOutput {
+  float4 pos;
+};
+
+struct vertex_main_outputs {
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+void frexp_6fb3ad() {
+  frexp_result_vec2_f32 res = {(0.5f).xx, (1).xx};
+}
+
+void fragment_main() {
+  frexp_6fb3ad();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  frexp_6fb3ad();
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  frexp_6fb3ad();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  vertex_main_outputs v_2 = {v_1.pos};
+  return v_2;
+}
+
diff --git a/test/tint/builtins/gen/literal/frexp/77af93.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/frexp/77af93.wgsl.expected.ir.dxc.hlsl
index 0ba40c6..c48692c 100644
--- a/test/tint/builtins/gen/literal/frexp/77af93.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/frexp/77af93.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,41 @@
-SKIP: FAILED
+struct frexp_result_vec4_f32 {
+  float4 fract;
+  int4 exp;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct VertexOutput {
+  float4 pos;
+};
+
+struct vertex_main_outputs {
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+void frexp_77af93() {
+  frexp_result_vec4_f32 res = {(0.5f).xxxx, (1).xxxx};
+}
+
+void fragment_main() {
+  frexp_77af93();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  frexp_77af93();
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  frexp_77af93();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  vertex_main_outputs v_2 = {v_1.pos};
+  return v_2;
+}
+
diff --git a/test/tint/builtins/gen/literal/frexp/77af93.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/frexp/77af93.wgsl.expected.ir.fxc.hlsl
index 0ba40c6..c48692c 100644
--- a/test/tint/builtins/gen/literal/frexp/77af93.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/frexp/77af93.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,41 @@
-SKIP: FAILED
+struct frexp_result_vec4_f32 {
+  float4 fract;
+  int4 exp;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct VertexOutput {
+  float4 pos;
+};
+
+struct vertex_main_outputs {
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+void frexp_77af93() {
+  frexp_result_vec4_f32 res = {(0.5f).xxxx, (1).xxxx};
+}
+
+void fragment_main() {
+  frexp_77af93();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  frexp_77af93();
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  frexp_77af93();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  vertex_main_outputs v_2 = {v_1.pos};
+  return v_2;
+}
+
diff --git a/test/tint/builtins/gen/literal/frexp/979800.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/frexp/979800.wgsl.expected.ir.dxc.hlsl
index 0ba40c6..cb1bfa5 100644
--- a/test/tint/builtins/gen/literal/frexp/979800.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/frexp/979800.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,41 @@
-SKIP: FAILED
+struct frexp_result_vec3_f32 {
+  float3 fract;
+  int3 exp;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct VertexOutput {
+  float4 pos;
+};
+
+struct vertex_main_outputs {
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+void frexp_979800() {
+  frexp_result_vec3_f32 res = {(0.5f).xxx, (1).xxx};
+}
+
+void fragment_main() {
+  frexp_979800();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  frexp_979800();
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  frexp_979800();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  vertex_main_outputs v_2 = {v_1.pos};
+  return v_2;
+}
+
diff --git a/test/tint/builtins/gen/literal/frexp/979800.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/frexp/979800.wgsl.expected.ir.fxc.hlsl
index 0ba40c6..cb1bfa5 100644
--- a/test/tint/builtins/gen/literal/frexp/979800.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/frexp/979800.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,41 @@
-SKIP: FAILED
+struct frexp_result_vec3_f32 {
+  float3 fract;
+  int3 exp;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct VertexOutput {
+  float4 pos;
+};
+
+struct vertex_main_outputs {
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+void frexp_979800() {
+  frexp_result_vec3_f32 res = {(0.5f).xxx, (1).xxx};
+}
+
+void fragment_main() {
+  frexp_979800();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  frexp_979800();
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  frexp_979800();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  vertex_main_outputs v_2 = {v_1.pos};
+  return v_2;
+}
+
diff --git a/test/tint/builtins/gen/literal/frexp/ae4a66.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/frexp/ae4a66.wgsl.expected.ir.dxc.hlsl
index 0ba40c6..e8f6aed 100644
--- a/test/tint/builtins/gen/literal/frexp/ae4a66.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/frexp/ae4a66.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,41 @@
-SKIP: FAILED
+struct frexp_result_vec3_f16 {
+  vector<float16_t, 3> fract;
+  int3 exp;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct VertexOutput {
+  float4 pos;
+};
+
+struct vertex_main_outputs {
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+void frexp_ae4a66() {
+  frexp_result_vec3_f16 res = {(float16_t(0.5h)).xxx, (1).xxx};
+}
+
+void fragment_main() {
+  frexp_ae4a66();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  frexp_ae4a66();
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  frexp_ae4a66();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  vertex_main_outputs v_2 = {v_1.pos};
+  return v_2;
+}
+
diff --git a/test/tint/builtins/gen/literal/frexp/ae4a66.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/frexp/ae4a66.wgsl.expected.ir.fxc.hlsl
index 0ba40c6..ff0889c 100644
--- a/test/tint/builtins/gen/literal/frexp/ae4a66.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/frexp/ae4a66.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,46 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct frexp_result_vec3_f16 {
+  vector<float16_t, 3> fract;
+  int3 exp;
+};
+
+struct VertexOutput {
+  float4 pos;
+};
+
+struct vertex_main_outputs {
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+void frexp_ae4a66() {
+  frexp_result_vec3_f16 res = {(float16_t(0.5h)).xxx, (1).xxx};
+}
+
+void fragment_main() {
+  frexp_ae4a66();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  frexp_ae4a66();
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  frexp_ae4a66();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  vertex_main_outputs v_2 = {v_1.pos};
+  return v_2;
+}
+
+FXC validation failure:
+c:\src\dawn\Shader@0x00000121AC39F320(2,10-18): error X3000: syntax error: unexpected token 'float16_t'
+
diff --git a/test/tint/builtins/gen/literal/frexp/bee870.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/frexp/bee870.wgsl.expected.ir.dxc.hlsl
index 0ba40c6..98bf7ab 100644
--- a/test/tint/builtins/gen/literal/frexp/bee870.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/frexp/bee870.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,41 @@
-SKIP: FAILED
+struct frexp_result_f32 {
+  float fract;
+  int exp;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct VertexOutput {
+  float4 pos;
+};
+
+struct vertex_main_outputs {
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+void frexp_bee870() {
+  frexp_result_f32 res = {0.5f, 1};
+}
+
+void fragment_main() {
+  frexp_bee870();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  frexp_bee870();
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  frexp_bee870();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  vertex_main_outputs v_2 = {v_1.pos};
+  return v_2;
+}
+
diff --git a/test/tint/builtins/gen/literal/frexp/bee870.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/frexp/bee870.wgsl.expected.ir.fxc.hlsl
index 0ba40c6..98bf7ab 100644
--- a/test/tint/builtins/gen/literal/frexp/bee870.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/frexp/bee870.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,41 @@
-SKIP: FAILED
+struct frexp_result_f32 {
+  float fract;
+  int exp;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct VertexOutput {
+  float4 pos;
+};
+
+struct vertex_main_outputs {
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+void frexp_bee870() {
+  frexp_result_f32 res = {0.5f, 1};
+}
+
+void fragment_main() {
+  frexp_bee870();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  frexp_bee870();
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  frexp_bee870();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  vertex_main_outputs v_2 = {v_1.pos};
+  return v_2;
+}
+
diff --git a/test/tint/builtins/gen/literal/frexp/bf45ae.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/frexp/bf45ae.wgsl.expected.ir.dxc.hlsl
index 0ba40c6..9ffeb43 100644
--- a/test/tint/builtins/gen/literal/frexp/bf45ae.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/frexp/bf45ae.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,41 @@
-SKIP: FAILED
+struct frexp_result_vec3_f32 {
+  float3 fract;
+  int3 exp;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct VertexOutput {
+  float4 pos;
+};
+
+struct vertex_main_outputs {
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+void frexp_bf45ae() {
+  frexp_result_vec3_f32 res = {(0.5f).xxx, (1).xxx};
+}
+
+void fragment_main() {
+  frexp_bf45ae();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  frexp_bf45ae();
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  frexp_bf45ae();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  vertex_main_outputs v_2 = {v_1.pos};
+  return v_2;
+}
+
diff --git a/test/tint/builtins/gen/literal/frexp/bf45ae.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/frexp/bf45ae.wgsl.expected.ir.fxc.hlsl
index 0ba40c6..9ffeb43 100644
--- a/test/tint/builtins/gen/literal/frexp/bf45ae.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/frexp/bf45ae.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,41 @@
-SKIP: FAILED
+struct frexp_result_vec3_f32 {
+  float3 fract;
+  int3 exp;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct VertexOutput {
+  float4 pos;
+};
+
+struct vertex_main_outputs {
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+void frexp_bf45ae() {
+  frexp_result_vec3_f32 res = {(0.5f).xxx, (1).xxx};
+}
+
+void fragment_main() {
+  frexp_bf45ae();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  frexp_bf45ae();
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  frexp_bf45ae();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  vertex_main_outputs v_2 = {v_1.pos};
+  return v_2;
+}
+
diff --git a/test/tint/builtins/gen/literal/frexp/eb2421.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/frexp/eb2421.wgsl.expected.ir.dxc.hlsl
index 0ba40c6..d28f4ef 100644
--- a/test/tint/builtins/gen/literal/frexp/eb2421.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/frexp/eb2421.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,41 @@
-SKIP: FAILED
+struct frexp_result_vec2_f32 {
+  float2 fract;
+  int2 exp;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct VertexOutput {
+  float4 pos;
+};
+
+struct vertex_main_outputs {
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+void frexp_eb2421() {
+  frexp_result_vec2_f32 res = {(0.5f).xx, (1).xx};
+}
+
+void fragment_main() {
+  frexp_eb2421();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  frexp_eb2421();
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  frexp_eb2421();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  vertex_main_outputs v_2 = {v_1.pos};
+  return v_2;
+}
+
diff --git a/test/tint/builtins/gen/literal/frexp/eb2421.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/frexp/eb2421.wgsl.expected.ir.fxc.hlsl
index 0ba40c6..d28f4ef 100644
--- a/test/tint/builtins/gen/literal/frexp/eb2421.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/frexp/eb2421.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,41 @@
-SKIP: FAILED
+struct frexp_result_vec2_f32 {
+  float2 fract;
+  int2 exp;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct VertexOutput {
+  float4 pos;
+};
+
+struct vertex_main_outputs {
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+void frexp_eb2421() {
+  frexp_result_vec2_f32 res = {(0.5f).xx, (1).xx};
+}
+
+void fragment_main() {
+  frexp_eb2421();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  frexp_eb2421();
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  frexp_eb2421();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  vertex_main_outputs v_2 = {v_1.pos};
+  return v_2;
+}
+
diff --git a/test/tint/builtins/gen/literal/fwidth/5d1b39.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/fwidth/5d1b39.wgsl.expected.ir.dxc.hlsl
index 4a528d9..78e0fd7 100644
--- a/test/tint/builtins/gen/literal/fwidth/5d1b39.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/fwidth/5d1b39.wgsl.expected.ir.dxc.hlsl
@@ -1,16 +1,11 @@
-SKIP: FAILED
 
+RWByteAddressBuffer prevent_dce : register(u0);
 float3 fwidth_5d1b39() {
   float3 res = fwidth((1.0f).xxx);
   return res;
 }
 
 void fragment_main() {
-  prevent_dce = fwidth_5d1b39();
+  prevent_dce.Store3(0u, asuint(fwidth_5d1b39()));
 }
 
-DXC validation failure:
-hlsl.hlsl:7:3: error: use of undeclared identifier 'prevent_dce'
-  prevent_dce = fwidth_5d1b39();
-  ^
-
diff --git a/test/tint/builtins/gen/literal/fwidth/5d1b39.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/fwidth/5d1b39.wgsl.expected.ir.fxc.hlsl
index f0b480d..78e0fd7 100644
--- a/test/tint/builtins/gen/literal/fwidth/5d1b39.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/fwidth/5d1b39.wgsl.expected.ir.fxc.hlsl
@@ -1,11 +1,11 @@
-SKIP: FAILED
 
+RWByteAddressBuffer prevent_dce : register(u0);
 float3 fwidth_5d1b39() {
   float3 res = fwidth((1.0f).xxx);
   return res;
 }
 
 void fragment_main() {
-  prevent_dce = fwidth_5d1b39();
+  prevent_dce.Store3(0u, asuint(fwidth_5d1b39()));
 }
 
diff --git a/test/tint/builtins/gen/literal/fwidth/b83ebb.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/fwidth/b83ebb.wgsl.expected.ir.dxc.hlsl
index e203478..a80906d 100644
--- a/test/tint/builtins/gen/literal/fwidth/b83ebb.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/fwidth/b83ebb.wgsl.expected.ir.dxc.hlsl
@@ -1,16 +1,11 @@
-SKIP: FAILED
 
+RWByteAddressBuffer prevent_dce : register(u0);
 float2 fwidth_b83ebb() {
   float2 res = fwidth((1.0f).xx);
   return res;
 }
 
 void fragment_main() {
-  prevent_dce = fwidth_b83ebb();
+  prevent_dce.Store2(0u, asuint(fwidth_b83ebb()));
 }
 
-DXC validation failure:
-hlsl.hlsl:7:3: error: use of undeclared identifier 'prevent_dce'
-  prevent_dce = fwidth_b83ebb();
-  ^
-
diff --git a/test/tint/builtins/gen/literal/fwidth/b83ebb.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/fwidth/b83ebb.wgsl.expected.ir.fxc.hlsl
index 1b094e7..a80906d 100644
--- a/test/tint/builtins/gen/literal/fwidth/b83ebb.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/fwidth/b83ebb.wgsl.expected.ir.fxc.hlsl
@@ -1,11 +1,11 @@
-SKIP: FAILED
 
+RWByteAddressBuffer prevent_dce : register(u0);
 float2 fwidth_b83ebb() {
   float2 res = fwidth((1.0f).xx);
   return res;
 }
 
 void fragment_main() {
-  prevent_dce = fwidth_b83ebb();
+  prevent_dce.Store2(0u, asuint(fwidth_b83ebb()));
 }
 
diff --git a/test/tint/builtins/gen/literal/fwidth/d2ab9a.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/fwidth/d2ab9a.wgsl.expected.ir.dxc.hlsl
index 03d6d9c..6b6cf66 100644
--- a/test/tint/builtins/gen/literal/fwidth/d2ab9a.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/fwidth/d2ab9a.wgsl.expected.ir.dxc.hlsl
@@ -1,16 +1,11 @@
-SKIP: FAILED
 
+RWByteAddressBuffer prevent_dce : register(u0);
 float4 fwidth_d2ab9a() {
   float4 res = fwidth((1.0f).xxxx);
   return res;
 }
 
 void fragment_main() {
-  prevent_dce = fwidth_d2ab9a();
+  prevent_dce.Store4(0u, asuint(fwidth_d2ab9a()));
 }
 
-DXC validation failure:
-hlsl.hlsl:7:3: error: use of undeclared identifier 'prevent_dce'
-  prevent_dce = fwidth_d2ab9a();
-  ^
-
diff --git a/test/tint/builtins/gen/literal/fwidth/d2ab9a.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/fwidth/d2ab9a.wgsl.expected.ir.fxc.hlsl
index 84f6181..6b6cf66 100644
--- a/test/tint/builtins/gen/literal/fwidth/d2ab9a.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/fwidth/d2ab9a.wgsl.expected.ir.fxc.hlsl
@@ -1,11 +1,11 @@
-SKIP: FAILED
 
+RWByteAddressBuffer prevent_dce : register(u0);
 float4 fwidth_d2ab9a() {
   float4 res = fwidth((1.0f).xxxx);
   return res;
 }
 
 void fragment_main() {
-  prevent_dce = fwidth_d2ab9a();
+  prevent_dce.Store4(0u, asuint(fwidth_d2ab9a()));
 }
 
diff --git a/test/tint/builtins/gen/literal/fwidth/df38ef.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/fwidth/df38ef.wgsl.expected.ir.dxc.hlsl
index dff90be..e7cfde0 100644
--- a/test/tint/builtins/gen/literal/fwidth/df38ef.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/fwidth/df38ef.wgsl.expected.ir.dxc.hlsl
@@ -1,16 +1,11 @@
-SKIP: FAILED
 
+RWByteAddressBuffer prevent_dce : register(u0);
 float fwidth_df38ef() {
   float res = fwidth(1.0f);
   return res;
 }
 
 void fragment_main() {
-  prevent_dce = fwidth_df38ef();
+  prevent_dce.Store(0u, asuint(fwidth_df38ef()));
 }
 
-DXC validation failure:
-hlsl.hlsl:7:3: error: use of undeclared identifier 'prevent_dce'
-  prevent_dce = fwidth_df38ef();
-  ^
-
diff --git a/test/tint/builtins/gen/literal/fwidth/df38ef.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/fwidth/df38ef.wgsl.expected.ir.fxc.hlsl
index fcf7e6e..e7cfde0 100644
--- a/test/tint/builtins/gen/literal/fwidth/df38ef.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/fwidth/df38ef.wgsl.expected.ir.fxc.hlsl
@@ -1,11 +1,11 @@
-SKIP: FAILED
 
+RWByteAddressBuffer prevent_dce : register(u0);
 float fwidth_df38ef() {
   float res = fwidth(1.0f);
   return res;
 }
 
 void fragment_main() {
-  prevent_dce = fwidth_df38ef();
+  prevent_dce.Store(0u, asuint(fwidth_df38ef()));
 }
 
diff --git a/test/tint/builtins/gen/literal/fwidthCoarse/159c8a.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/fwidthCoarse/159c8a.wgsl.expected.ir.dxc.hlsl
index f0b5733..8980588 100644
--- a/test/tint/builtins/gen/literal/fwidthCoarse/159c8a.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/fwidthCoarse/159c8a.wgsl.expected.ir.dxc.hlsl
@@ -1,16 +1,11 @@
-SKIP: FAILED
 
+RWByteAddressBuffer prevent_dce : register(u0);
 float fwidthCoarse_159c8a() {
   float res = fwidth(1.0f);
   return res;
 }
 
 void fragment_main() {
-  prevent_dce = fwidthCoarse_159c8a();
+  prevent_dce.Store(0u, asuint(fwidthCoarse_159c8a()));
 }
 
-DXC validation failure:
-hlsl.hlsl:7:3: error: use of undeclared identifier 'prevent_dce'
-  prevent_dce = fwidthCoarse_159c8a();
-  ^
-
diff --git a/test/tint/builtins/gen/literal/fwidthCoarse/159c8a.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/fwidthCoarse/159c8a.wgsl.expected.ir.fxc.hlsl
index 8e5995d..8980588 100644
--- a/test/tint/builtins/gen/literal/fwidthCoarse/159c8a.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/fwidthCoarse/159c8a.wgsl.expected.ir.fxc.hlsl
@@ -1,11 +1,11 @@
-SKIP: FAILED
 
+RWByteAddressBuffer prevent_dce : register(u0);
 float fwidthCoarse_159c8a() {
   float res = fwidth(1.0f);
   return res;
 }
 
 void fragment_main() {
-  prevent_dce = fwidthCoarse_159c8a();
+  prevent_dce.Store(0u, asuint(fwidthCoarse_159c8a()));
 }
 
diff --git a/test/tint/builtins/gen/literal/fwidthCoarse/1e59d9.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/fwidthCoarse/1e59d9.wgsl.expected.ir.dxc.hlsl
index aedaba5..fce6af5 100644
--- a/test/tint/builtins/gen/literal/fwidthCoarse/1e59d9.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/fwidthCoarse/1e59d9.wgsl.expected.ir.dxc.hlsl
@@ -1,16 +1,11 @@
-SKIP: FAILED
 
+RWByteAddressBuffer prevent_dce : register(u0);
 float3 fwidthCoarse_1e59d9() {
   float3 res = fwidth((1.0f).xxx);
   return res;
 }
 
 void fragment_main() {
-  prevent_dce = fwidthCoarse_1e59d9();
+  prevent_dce.Store3(0u, asuint(fwidthCoarse_1e59d9()));
 }
 
-DXC validation failure:
-hlsl.hlsl:7:3: error: use of undeclared identifier 'prevent_dce'
-  prevent_dce = fwidthCoarse_1e59d9();
-  ^
-
diff --git a/test/tint/builtins/gen/literal/fwidthCoarse/1e59d9.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/fwidthCoarse/1e59d9.wgsl.expected.ir.fxc.hlsl
index 427ab7f..fce6af5 100644
--- a/test/tint/builtins/gen/literal/fwidthCoarse/1e59d9.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/fwidthCoarse/1e59d9.wgsl.expected.ir.fxc.hlsl
@@ -1,11 +1,11 @@
-SKIP: FAILED
 
+RWByteAddressBuffer prevent_dce : register(u0);
 float3 fwidthCoarse_1e59d9() {
   float3 res = fwidth((1.0f).xxx);
   return res;
 }
 
 void fragment_main() {
-  prevent_dce = fwidthCoarse_1e59d9();
+  prevent_dce.Store3(0u, asuint(fwidthCoarse_1e59d9()));
 }
 
diff --git a/test/tint/builtins/gen/literal/fwidthCoarse/4e4fc4.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/fwidthCoarse/4e4fc4.wgsl.expected.ir.dxc.hlsl
index 40b4021..bcd4329 100644
--- a/test/tint/builtins/gen/literal/fwidthCoarse/4e4fc4.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/fwidthCoarse/4e4fc4.wgsl.expected.ir.dxc.hlsl
@@ -1,16 +1,11 @@
-SKIP: FAILED
 
+RWByteAddressBuffer prevent_dce : register(u0);
 float4 fwidthCoarse_4e4fc4() {
   float4 res = fwidth((1.0f).xxxx);
   return res;
 }
 
 void fragment_main() {
-  prevent_dce = fwidthCoarse_4e4fc4();
+  prevent_dce.Store4(0u, asuint(fwidthCoarse_4e4fc4()));
 }
 
-DXC validation failure:
-hlsl.hlsl:7:3: error: use of undeclared identifier 'prevent_dce'
-  prevent_dce = fwidthCoarse_4e4fc4();
-  ^
-
diff --git a/test/tint/builtins/gen/literal/fwidthCoarse/4e4fc4.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/fwidthCoarse/4e4fc4.wgsl.expected.ir.fxc.hlsl
index 78c43c9..bcd4329 100644
--- a/test/tint/builtins/gen/literal/fwidthCoarse/4e4fc4.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/fwidthCoarse/4e4fc4.wgsl.expected.ir.fxc.hlsl
@@ -1,11 +1,11 @@
-SKIP: FAILED
 
+RWByteAddressBuffer prevent_dce : register(u0);
 float4 fwidthCoarse_4e4fc4() {
   float4 res = fwidth((1.0f).xxxx);
   return res;
 }
 
 void fragment_main() {
-  prevent_dce = fwidthCoarse_4e4fc4();
+  prevent_dce.Store4(0u, asuint(fwidthCoarse_4e4fc4()));
 }
 
diff --git a/test/tint/builtins/gen/literal/fwidthCoarse/e653f7.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/fwidthCoarse/e653f7.wgsl.expected.ir.dxc.hlsl
index 3133ee8..3ba71a5 100644
--- a/test/tint/builtins/gen/literal/fwidthCoarse/e653f7.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/fwidthCoarse/e653f7.wgsl.expected.ir.dxc.hlsl
@@ -1,16 +1,11 @@
-SKIP: FAILED
 
+RWByteAddressBuffer prevent_dce : register(u0);
 float2 fwidthCoarse_e653f7() {
   float2 res = fwidth((1.0f).xx);
   return res;
 }
 
 void fragment_main() {
-  prevent_dce = fwidthCoarse_e653f7();
+  prevent_dce.Store2(0u, asuint(fwidthCoarse_e653f7()));
 }
 
-DXC validation failure:
-hlsl.hlsl:7:3: error: use of undeclared identifier 'prevent_dce'
-  prevent_dce = fwidthCoarse_e653f7();
-  ^
-
diff --git a/test/tint/builtins/gen/literal/fwidthCoarse/e653f7.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/fwidthCoarse/e653f7.wgsl.expected.ir.fxc.hlsl
index 3ccc86a..3ba71a5 100644
--- a/test/tint/builtins/gen/literal/fwidthCoarse/e653f7.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/fwidthCoarse/e653f7.wgsl.expected.ir.fxc.hlsl
@@ -1,11 +1,11 @@
-SKIP: FAILED
 
+RWByteAddressBuffer prevent_dce : register(u0);
 float2 fwidthCoarse_e653f7() {
   float2 res = fwidth((1.0f).xx);
   return res;
 }
 
 void fragment_main() {
-  prevent_dce = fwidthCoarse_e653f7();
+  prevent_dce.Store2(0u, asuint(fwidthCoarse_e653f7()));
 }
 
diff --git a/test/tint/builtins/gen/literal/fwidthFine/523fdc.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/fwidthFine/523fdc.wgsl.expected.ir.dxc.hlsl
index 533dc6ef..4dbbda3 100644
--- a/test/tint/builtins/gen/literal/fwidthFine/523fdc.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/fwidthFine/523fdc.wgsl.expected.ir.dxc.hlsl
@@ -1,16 +1,11 @@
-SKIP: FAILED
 
+RWByteAddressBuffer prevent_dce : register(u0);
 float3 fwidthFine_523fdc() {
   float3 res = fwidth((1.0f).xxx);
   return res;
 }
 
 void fragment_main() {
-  prevent_dce = fwidthFine_523fdc();
+  prevent_dce.Store3(0u, asuint(fwidthFine_523fdc()));
 }
 
-DXC validation failure:
-hlsl.hlsl:7:3: error: use of undeclared identifier 'prevent_dce'
-  prevent_dce = fwidthFine_523fdc();
-  ^
-
diff --git a/test/tint/builtins/gen/literal/fwidthFine/523fdc.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/fwidthFine/523fdc.wgsl.expected.ir.fxc.hlsl
index f984c16..4dbbda3 100644
--- a/test/tint/builtins/gen/literal/fwidthFine/523fdc.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/fwidthFine/523fdc.wgsl.expected.ir.fxc.hlsl
@@ -1,11 +1,11 @@
-SKIP: FAILED
 
+RWByteAddressBuffer prevent_dce : register(u0);
 float3 fwidthFine_523fdc() {
   float3 res = fwidth((1.0f).xxx);
   return res;
 }
 
 void fragment_main() {
-  prevent_dce = fwidthFine_523fdc();
+  prevent_dce.Store3(0u, asuint(fwidthFine_523fdc()));
 }
 
diff --git a/test/tint/builtins/gen/literal/fwidthFine/68f4ef.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/fwidthFine/68f4ef.wgsl.expected.ir.dxc.hlsl
index e96dedf..dede8bc 100644
--- a/test/tint/builtins/gen/literal/fwidthFine/68f4ef.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/fwidthFine/68f4ef.wgsl.expected.ir.dxc.hlsl
@@ -1,16 +1,11 @@
-SKIP: FAILED
 
+RWByteAddressBuffer prevent_dce : register(u0);
 float4 fwidthFine_68f4ef() {
   float4 res = fwidth((1.0f).xxxx);
   return res;
 }
 
 void fragment_main() {
-  prevent_dce = fwidthFine_68f4ef();
+  prevent_dce.Store4(0u, asuint(fwidthFine_68f4ef()));
 }
 
-DXC validation failure:
-hlsl.hlsl:7:3: error: use of undeclared identifier 'prevent_dce'
-  prevent_dce = fwidthFine_68f4ef();
-  ^
-
diff --git a/test/tint/builtins/gen/literal/fwidthFine/68f4ef.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/fwidthFine/68f4ef.wgsl.expected.ir.fxc.hlsl
index dd684b8..dede8bc 100644
--- a/test/tint/builtins/gen/literal/fwidthFine/68f4ef.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/fwidthFine/68f4ef.wgsl.expected.ir.fxc.hlsl
@@ -1,11 +1,11 @@
-SKIP: FAILED
 
+RWByteAddressBuffer prevent_dce : register(u0);
 float4 fwidthFine_68f4ef() {
   float4 res = fwidth((1.0f).xxxx);
   return res;
 }
 
 void fragment_main() {
-  prevent_dce = fwidthFine_68f4ef();
+  prevent_dce.Store4(0u, asuint(fwidthFine_68f4ef()));
 }
 
diff --git a/test/tint/builtins/gen/literal/fwidthFine/f1742d.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/fwidthFine/f1742d.wgsl.expected.ir.dxc.hlsl
index c400118..8fbc6a8 100644
--- a/test/tint/builtins/gen/literal/fwidthFine/f1742d.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/fwidthFine/f1742d.wgsl.expected.ir.dxc.hlsl
@@ -1,16 +1,11 @@
-SKIP: FAILED
 
+RWByteAddressBuffer prevent_dce : register(u0);
 float fwidthFine_f1742d() {
   float res = fwidth(1.0f);
   return res;
 }
 
 void fragment_main() {
-  prevent_dce = fwidthFine_f1742d();
+  prevent_dce.Store(0u, asuint(fwidthFine_f1742d()));
 }
 
-DXC validation failure:
-hlsl.hlsl:7:3: error: use of undeclared identifier 'prevent_dce'
-  prevent_dce = fwidthFine_f1742d();
-  ^
-
diff --git a/test/tint/builtins/gen/literal/fwidthFine/f1742d.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/fwidthFine/f1742d.wgsl.expected.ir.fxc.hlsl
index f9790b0..8fbc6a8 100644
--- a/test/tint/builtins/gen/literal/fwidthFine/f1742d.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/fwidthFine/f1742d.wgsl.expected.ir.fxc.hlsl
@@ -1,11 +1,11 @@
-SKIP: FAILED
 
+RWByteAddressBuffer prevent_dce : register(u0);
 float fwidthFine_f1742d() {
   float res = fwidth(1.0f);
   return res;
 }
 
 void fragment_main() {
-  prevent_dce = fwidthFine_f1742d();
+  prevent_dce.Store(0u, asuint(fwidthFine_f1742d()));
 }
 
diff --git a/test/tint/builtins/gen/literal/fwidthFine/ff6aa0.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/fwidthFine/ff6aa0.wgsl.expected.ir.dxc.hlsl
index 0c8a337..5800cc7 100644
--- a/test/tint/builtins/gen/literal/fwidthFine/ff6aa0.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/fwidthFine/ff6aa0.wgsl.expected.ir.dxc.hlsl
@@ -1,16 +1,11 @@
-SKIP: FAILED
 
+RWByteAddressBuffer prevent_dce : register(u0);
 float2 fwidthFine_ff6aa0() {
   float2 res = fwidth((1.0f).xx);
   return res;
 }
 
 void fragment_main() {
-  prevent_dce = fwidthFine_ff6aa0();
+  prevent_dce.Store2(0u, asuint(fwidthFine_ff6aa0()));
 }
 
-DXC validation failure:
-hlsl.hlsl:7:3: error: use of undeclared identifier 'prevent_dce'
-  prevent_dce = fwidthFine_ff6aa0();
-  ^
-
diff --git a/test/tint/builtins/gen/literal/fwidthFine/ff6aa0.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/fwidthFine/ff6aa0.wgsl.expected.ir.fxc.hlsl
index 46e1340..5800cc7 100644
--- a/test/tint/builtins/gen/literal/fwidthFine/ff6aa0.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/fwidthFine/ff6aa0.wgsl.expected.ir.fxc.hlsl
@@ -1,11 +1,11 @@
-SKIP: FAILED
 
+RWByteAddressBuffer prevent_dce : register(u0);
 float2 fwidthFine_ff6aa0() {
   float2 res = fwidth((1.0f).xx);
   return res;
 }
 
 void fragment_main() {
-  prevent_dce = fwidthFine_ff6aa0();
+  prevent_dce.Store2(0u, asuint(fwidthFine_ff6aa0()));
 }
 
diff --git a/test/tint/builtins/gen/literal/inputAttachmentLoad/315bf5.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/inputAttachmentLoad/315bf5.wgsl.expected.ir.dxc.hlsl
index 48aa57a..502b482 100644
--- a/test/tint/builtins/gen/literal/inputAttachmentLoad/315bf5.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/inputAttachmentLoad/315bf5.wgsl.expected.ir.dxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: inputAttachmentLoad
+..\..\src\tint\lang\hlsl\writer\printer\printer.cc:1010 internal compiler error: TINT_UNREACHABLE unhandled: inputAttachmentLoad
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/literal/inputAttachmentLoad/315bf5.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/inputAttachmentLoad/315bf5.wgsl.expected.ir.fxc.hlsl
index 48aa57a..502b482 100644
--- a/test/tint/builtins/gen/literal/inputAttachmentLoad/315bf5.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/inputAttachmentLoad/315bf5.wgsl.expected.ir.fxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: inputAttachmentLoad
+..\..\src\tint\lang\hlsl\writer\printer\printer.cc:1010 internal compiler error: TINT_UNREACHABLE unhandled: inputAttachmentLoad
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/literal/inputAttachmentLoad/c38b2f.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/inputAttachmentLoad/c38b2f.wgsl.expected.ir.dxc.hlsl
index 48aa57a..502b482 100644
--- a/test/tint/builtins/gen/literal/inputAttachmentLoad/c38b2f.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/inputAttachmentLoad/c38b2f.wgsl.expected.ir.dxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: inputAttachmentLoad
+..\..\src\tint\lang\hlsl\writer\printer\printer.cc:1010 internal compiler error: TINT_UNREACHABLE unhandled: inputAttachmentLoad
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/literal/inputAttachmentLoad/c38b2f.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/inputAttachmentLoad/c38b2f.wgsl.expected.ir.fxc.hlsl
index 48aa57a..502b482 100644
--- a/test/tint/builtins/gen/literal/inputAttachmentLoad/c38b2f.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/inputAttachmentLoad/c38b2f.wgsl.expected.ir.fxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: inputAttachmentLoad
+..\..\src\tint\lang\hlsl\writer\printer\printer.cc:1010 internal compiler error: TINT_UNREACHABLE unhandled: inputAttachmentLoad
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/literal/inputAttachmentLoad/fc4d97.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/inputAttachmentLoad/fc4d97.wgsl.expected.ir.dxc.hlsl
index 48aa57a..502b482 100644
--- a/test/tint/builtins/gen/literal/inputAttachmentLoad/fc4d97.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/inputAttachmentLoad/fc4d97.wgsl.expected.ir.dxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: inputAttachmentLoad
+..\..\src\tint\lang\hlsl\writer\printer\printer.cc:1010 internal compiler error: TINT_UNREACHABLE unhandled: inputAttachmentLoad
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/literal/inputAttachmentLoad/fc4d97.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/inputAttachmentLoad/fc4d97.wgsl.expected.ir.fxc.hlsl
index 48aa57a..502b482 100644
--- a/test/tint/builtins/gen/literal/inputAttachmentLoad/fc4d97.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/inputAttachmentLoad/fc4d97.wgsl.expected.ir.fxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: inputAttachmentLoad
+..\..\src\tint\lang\hlsl\writer\printer\printer.cc:1010 internal compiler error: TINT_UNREACHABLE unhandled: inputAttachmentLoad
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/literal/insertBits/3c7ba5.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/insertBits/3c7ba5.wgsl.expected.ir.dxc.hlsl
index 0ba40c6..60876c5 100644
--- a/test/tint/builtins/gen/literal/insertBits/3c7ba5.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/insertBits/3c7ba5.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,42 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  uint2 prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation uint2 VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+uint2 insertBits_3c7ba5() {
+  uint2 res = (3u).xx;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store2(0u, insertBits_3c7ba5());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store2(0u, insertBits_3c7ba5());
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = insertBits_3c7ba5();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
diff --git a/test/tint/builtins/gen/literal/insertBits/3c7ba5.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/insertBits/3c7ba5.wgsl.expected.ir.fxc.hlsl
index 0ba40c6..60876c5 100644
--- a/test/tint/builtins/gen/literal/insertBits/3c7ba5.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/insertBits/3c7ba5.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,42 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  uint2 prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation uint2 VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+uint2 insertBits_3c7ba5() {
+  uint2 res = (3u).xx;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store2(0u, insertBits_3c7ba5());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store2(0u, insertBits_3c7ba5());
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = insertBits_3c7ba5();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
diff --git a/test/tint/builtins/gen/literal/insertBits/428b0b.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/insertBits/428b0b.wgsl.expected.ir.dxc.hlsl
index 0ba40c6..5a460a9 100644
--- a/test/tint/builtins/gen/literal/insertBits/428b0b.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/insertBits/428b0b.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,42 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  int3 prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation int3 VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+int3 insertBits_428b0b() {
+  int3 res = (3).xxx;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store3(0u, asuint(insertBits_428b0b()));
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store3(0u, asuint(insertBits_428b0b()));
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = insertBits_428b0b();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
diff --git a/test/tint/builtins/gen/literal/insertBits/428b0b.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/insertBits/428b0b.wgsl.expected.ir.fxc.hlsl
index 0ba40c6..5a460a9 100644
--- a/test/tint/builtins/gen/literal/insertBits/428b0b.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/insertBits/428b0b.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,42 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  int3 prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation int3 VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+int3 insertBits_428b0b() {
+  int3 res = (3).xxx;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store3(0u, asuint(insertBits_428b0b()));
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store3(0u, asuint(insertBits_428b0b()));
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = insertBits_428b0b();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
diff --git a/test/tint/builtins/gen/literal/insertBits/51ede1.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/insertBits/51ede1.wgsl.expected.ir.dxc.hlsl
index 0ba40c6..139ff47 100644
--- a/test/tint/builtins/gen/literal/insertBits/51ede1.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/insertBits/51ede1.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,42 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  uint4 prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation uint4 VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+uint4 insertBits_51ede1() {
+  uint4 res = (3u).xxxx;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store4(0u, insertBits_51ede1());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store4(0u, insertBits_51ede1());
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = insertBits_51ede1();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
diff --git a/test/tint/builtins/gen/literal/insertBits/51ede1.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/insertBits/51ede1.wgsl.expected.ir.fxc.hlsl
index 0ba40c6..139ff47 100644
--- a/test/tint/builtins/gen/literal/insertBits/51ede1.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/insertBits/51ede1.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,42 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  uint4 prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation uint4 VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+uint4 insertBits_51ede1() {
+  uint4 res = (3u).xxxx;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store4(0u, insertBits_51ede1());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store4(0u, insertBits_51ede1());
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = insertBits_51ede1();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
diff --git a/test/tint/builtins/gen/literal/insertBits/65468b.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/insertBits/65468b.wgsl.expected.ir.dxc.hlsl
index 0ba40c6..902cbd1 100644
--- a/test/tint/builtins/gen/literal/insertBits/65468b.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/insertBits/65468b.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,42 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  int prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation int VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+int insertBits_65468b() {
+  int res = 3;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store(0u, asuint(insertBits_65468b()));
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store(0u, asuint(insertBits_65468b()));
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = insertBits_65468b();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
diff --git a/test/tint/builtins/gen/literal/insertBits/65468b.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/insertBits/65468b.wgsl.expected.ir.fxc.hlsl
index 0ba40c6..902cbd1 100644
--- a/test/tint/builtins/gen/literal/insertBits/65468b.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/insertBits/65468b.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,42 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  int prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation int VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+int insertBits_65468b() {
+  int res = 3;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store(0u, asuint(insertBits_65468b()));
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store(0u, asuint(insertBits_65468b()));
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = insertBits_65468b();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
diff --git a/test/tint/builtins/gen/literal/insertBits/87826b.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/insertBits/87826b.wgsl.expected.ir.dxc.hlsl
index 0ba40c6..51d5477 100644
--- a/test/tint/builtins/gen/literal/insertBits/87826b.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/insertBits/87826b.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,42 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  uint3 prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation uint3 VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+uint3 insertBits_87826b() {
+  uint3 res = (3u).xxx;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store3(0u, insertBits_87826b());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store3(0u, insertBits_87826b());
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = insertBits_87826b();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
diff --git a/test/tint/builtins/gen/literal/insertBits/87826b.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/insertBits/87826b.wgsl.expected.ir.fxc.hlsl
index 0ba40c6..51d5477 100644
--- a/test/tint/builtins/gen/literal/insertBits/87826b.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/insertBits/87826b.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,42 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  uint3 prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation uint3 VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+uint3 insertBits_87826b() {
+  uint3 res = (3u).xxx;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store3(0u, insertBits_87826b());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store3(0u, insertBits_87826b());
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = insertBits_87826b();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
diff --git a/test/tint/builtins/gen/literal/insertBits/d86978.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/insertBits/d86978.wgsl.expected.ir.dxc.hlsl
index 0ba40c6..8aa2538 100644
--- a/test/tint/builtins/gen/literal/insertBits/d86978.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/insertBits/d86978.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,42 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  int4 prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation int4 VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+int4 insertBits_d86978() {
+  int4 res = (3).xxxx;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store4(0u, asuint(insertBits_d86978()));
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store4(0u, asuint(insertBits_d86978()));
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = insertBits_d86978();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
diff --git a/test/tint/builtins/gen/literal/insertBits/d86978.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/insertBits/d86978.wgsl.expected.ir.fxc.hlsl
index 0ba40c6..8aa2538 100644
--- a/test/tint/builtins/gen/literal/insertBits/d86978.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/insertBits/d86978.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,42 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  int4 prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation int4 VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+int4 insertBits_d86978() {
+  int4 res = (3).xxxx;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store4(0u, asuint(insertBits_d86978()));
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store4(0u, asuint(insertBits_d86978()));
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = insertBits_d86978();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
diff --git a/test/tint/builtins/gen/literal/insertBits/e3e3a2.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/insertBits/e3e3a2.wgsl.expected.ir.dxc.hlsl
index 0ba40c6..bff254e 100644
--- a/test/tint/builtins/gen/literal/insertBits/e3e3a2.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/insertBits/e3e3a2.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,42 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  uint prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation uint VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+uint insertBits_e3e3a2() {
+  uint res = 3u;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store(0u, insertBits_e3e3a2());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store(0u, insertBits_e3e3a2());
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = insertBits_e3e3a2();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
diff --git a/test/tint/builtins/gen/literal/insertBits/e3e3a2.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/insertBits/e3e3a2.wgsl.expected.ir.fxc.hlsl
index 0ba40c6..bff254e 100644
--- a/test/tint/builtins/gen/literal/insertBits/e3e3a2.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/insertBits/e3e3a2.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,42 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  uint prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation uint VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+uint insertBits_e3e3a2() {
+  uint res = 3u;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store(0u, insertBits_e3e3a2());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store(0u, insertBits_e3e3a2());
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = insertBits_e3e3a2();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
diff --git a/test/tint/builtins/gen/literal/insertBits/fe6ba6.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/insertBits/fe6ba6.wgsl.expected.ir.dxc.hlsl
index 0ba40c6..a7d7d4e 100644
--- a/test/tint/builtins/gen/literal/insertBits/fe6ba6.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/insertBits/fe6ba6.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,42 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  int2 prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation int2 VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+int2 insertBits_fe6ba6() {
+  int2 res = (3).xx;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store2(0u, asuint(insertBits_fe6ba6()));
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store2(0u, asuint(insertBits_fe6ba6()));
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = insertBits_fe6ba6();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
diff --git a/test/tint/builtins/gen/literal/insertBits/fe6ba6.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/insertBits/fe6ba6.wgsl.expected.ir.fxc.hlsl
index 0ba40c6..a7d7d4e 100644
--- a/test/tint/builtins/gen/literal/insertBits/fe6ba6.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/insertBits/fe6ba6.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,42 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  int2 prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation int2 VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+int2 insertBits_fe6ba6() {
+  int2 res = (3).xx;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store2(0u, asuint(insertBits_fe6ba6()));
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store2(0u, asuint(insertBits_fe6ba6()));
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = insertBits_fe6ba6();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
diff --git a/test/tint/builtins/gen/literal/inverseSqrt/07a6fe.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/inverseSqrt/07a6fe.wgsl.expected.ir.dxc.hlsl
index 0ba40c6..9c5aa2a 100644
--- a/test/tint/builtins/gen/literal/inverseSqrt/07a6fe.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/inverseSqrt/07a6fe.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,36 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+void inverseSqrt_07a6fe() {
+  float4 res = (1.0f).xxxx;
+}
+
+void fragment_main() {
+  inverseSqrt_07a6fe();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  inverseSqrt_07a6fe();
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  inverseSqrt_07a6fe();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  vertex_main_outputs v_2 = {v_1.pos};
+  return v_2;
+}
+
diff --git a/test/tint/builtins/gen/literal/inverseSqrt/07a6fe.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/inverseSqrt/07a6fe.wgsl.expected.ir.fxc.hlsl
index 0ba40c6..9c5aa2a 100644
--- a/test/tint/builtins/gen/literal/inverseSqrt/07a6fe.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/inverseSqrt/07a6fe.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,36 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+void inverseSqrt_07a6fe() {
+  float4 res = (1.0f).xxxx;
+}
+
+void fragment_main() {
+  inverseSqrt_07a6fe();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  inverseSqrt_07a6fe();
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  inverseSqrt_07a6fe();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  vertex_main_outputs v_2 = {v_1.pos};
+  return v_2;
+}
+
diff --git a/test/tint/builtins/gen/literal/inverseSqrt/440300.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/inverseSqrt/440300.wgsl.expected.ir.dxc.hlsl
index 0ba40c6..347f8ec 100644
--- a/test/tint/builtins/gen/literal/inverseSqrt/440300.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/inverseSqrt/440300.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,42 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  float16_t prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation float16_t VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+float16_t inverseSqrt_440300() {
+  float16_t res = float16_t(1.0h);
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store<float16_t>(0u, inverseSqrt_440300());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store<float16_t>(0u, inverseSqrt_440300());
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = inverseSqrt_440300();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
diff --git a/test/tint/builtins/gen/literal/inverseSqrt/440300.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/inverseSqrt/440300.wgsl.expected.ir.fxc.hlsl
index 0ba40c6..9090256 100644
--- a/test/tint/builtins/gen/literal/inverseSqrt/440300.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/inverseSqrt/440300.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,47 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct VertexOutput {
+  float4 pos;
+  float16_t prevent_dce;
+};
+
+struct vertex_main_outputs {
+  nointerpolation float16_t VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+float16_t inverseSqrt_440300() {
+  float16_t res = float16_t(1.0h);
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store<float16_t>(0u, inverseSqrt_440300());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store<float16_t>(0u, inverseSqrt_440300());
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = inverseSqrt_440300();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
+FXC validation failure:
+c:\src\dawn\Shader@0x000002CF87C4F780(3,3-11): error X3000: unrecognized identifier 'float16_t'
+
diff --git a/test/tint/builtins/gen/literal/inverseSqrt/4ca6d6.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/inverseSqrt/4ca6d6.wgsl.expected.ir.dxc.hlsl
index 0ba40c6..58ded91 100644
--- a/test/tint/builtins/gen/literal/inverseSqrt/4ca6d6.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/inverseSqrt/4ca6d6.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,36 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+void inverseSqrt_4ca6d6() {
+  float res = 1.0f;
+}
+
+void fragment_main() {
+  inverseSqrt_4ca6d6();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  inverseSqrt_4ca6d6();
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  inverseSqrt_4ca6d6();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  vertex_main_outputs v_2 = {v_1.pos};
+  return v_2;
+}
+
diff --git a/test/tint/builtins/gen/literal/inverseSqrt/4ca6d6.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/inverseSqrt/4ca6d6.wgsl.expected.ir.fxc.hlsl
index 0ba40c6..58ded91 100644
--- a/test/tint/builtins/gen/literal/inverseSqrt/4ca6d6.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/inverseSqrt/4ca6d6.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,36 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+void inverseSqrt_4ca6d6() {
+  float res = 1.0f;
+}
+
+void fragment_main() {
+  inverseSqrt_4ca6d6();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  inverseSqrt_4ca6d6();
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  inverseSqrt_4ca6d6();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  vertex_main_outputs v_2 = {v_1.pos};
+  return v_2;
+}
+
diff --git a/test/tint/builtins/gen/literal/inverseSqrt/5f51f8.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/inverseSqrt/5f51f8.wgsl.expected.ir.dxc.hlsl
index 0ba40c6..076f403 100644
--- a/test/tint/builtins/gen/literal/inverseSqrt/5f51f8.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/inverseSqrt/5f51f8.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,42 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  vector<float16_t, 2> prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation vector<float16_t, 2> VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+vector<float16_t, 2> inverseSqrt_5f51f8() {
+  vector<float16_t, 2> res = (float16_t(1.0h)).xx;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store<vector<float16_t, 2> >(0u, inverseSqrt_5f51f8());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store<vector<float16_t, 2> >(0u, inverseSqrt_5f51f8());
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = inverseSqrt_5f51f8();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
diff --git a/test/tint/builtins/gen/literal/inverseSqrt/5f51f8.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/inverseSqrt/5f51f8.wgsl.expected.ir.fxc.hlsl
index 0ba40c6..ead0119 100644
--- a/test/tint/builtins/gen/literal/inverseSqrt/5f51f8.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/inverseSqrt/5f51f8.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,47 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct VertexOutput {
+  float4 pos;
+  vector<float16_t, 2> prevent_dce;
+};
+
+struct vertex_main_outputs {
+  nointerpolation vector<float16_t, 2> VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+vector<float16_t, 2> inverseSqrt_5f51f8() {
+  vector<float16_t, 2> res = (float16_t(1.0h)).xx;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store<vector<float16_t, 2> >(0u, inverseSqrt_5f51f8());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store<vector<float16_t, 2> >(0u, inverseSqrt_5f51f8());
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = inverseSqrt_5f51f8();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
+FXC validation failure:
+c:\src\dawn\Shader@0x000001F41AEA6A50(3,10-18): error X3000: syntax error: unexpected token 'float16_t'
+
diff --git a/test/tint/builtins/gen/literal/inverseSqrt/6d0783.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/inverseSqrt/6d0783.wgsl.expected.ir.dxc.hlsl
index 0ba40c6..4b864f9 100644
--- a/test/tint/builtins/gen/literal/inverseSqrt/6d0783.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/inverseSqrt/6d0783.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,36 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+void inverseSqrt_6d0783() {
+  float3 res = (1.0f).xxx;
+}
+
+void fragment_main() {
+  inverseSqrt_6d0783();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  inverseSqrt_6d0783();
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  inverseSqrt_6d0783();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  vertex_main_outputs v_2 = {v_1.pos};
+  return v_2;
+}
+
diff --git a/test/tint/builtins/gen/literal/inverseSqrt/6d0783.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/inverseSqrt/6d0783.wgsl.expected.ir.fxc.hlsl
index 0ba40c6..4b864f9 100644
--- a/test/tint/builtins/gen/literal/inverseSqrt/6d0783.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/inverseSqrt/6d0783.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,36 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+void inverseSqrt_6d0783() {
+  float3 res = (1.0f).xxx;
+}
+
+void fragment_main() {
+  inverseSqrt_6d0783();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  inverseSqrt_6d0783();
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  inverseSqrt_6d0783();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  vertex_main_outputs v_2 = {v_1.pos};
+  return v_2;
+}
+
diff --git a/test/tint/builtins/gen/literal/inverseSqrt/84407e.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/inverseSqrt/84407e.wgsl.expected.ir.dxc.hlsl
index 0ba40c6..473df11 100644
--- a/test/tint/builtins/gen/literal/inverseSqrt/84407e.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/inverseSqrt/84407e.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,42 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  float prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation float VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+float inverseSqrt_84407e() {
+  float res = 1.0f;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store(0u, asuint(inverseSqrt_84407e()));
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store(0u, asuint(inverseSqrt_84407e()));
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = inverseSqrt_84407e();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
diff --git a/test/tint/builtins/gen/literal/inverseSqrt/84407e.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/inverseSqrt/84407e.wgsl.expected.ir.fxc.hlsl
index 0ba40c6..473df11 100644
--- a/test/tint/builtins/gen/literal/inverseSqrt/84407e.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/inverseSqrt/84407e.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,42 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  float prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation float VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+float inverseSqrt_84407e() {
+  float res = 1.0f;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store(0u, asuint(inverseSqrt_84407e()));
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store(0u, asuint(inverseSqrt_84407e()));
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = inverseSqrt_84407e();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
diff --git a/test/tint/builtins/gen/literal/inverseSqrt/8f2bd2.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/inverseSqrt/8f2bd2.wgsl.expected.ir.dxc.hlsl
index 0ba40c6..e7da62e 100644
--- a/test/tint/builtins/gen/literal/inverseSqrt/8f2bd2.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/inverseSqrt/8f2bd2.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,42 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  float2 prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation float2 VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+float2 inverseSqrt_8f2bd2() {
+  float2 res = (1.0f).xx;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store2(0u, asuint(inverseSqrt_8f2bd2()));
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store2(0u, asuint(inverseSqrt_8f2bd2()));
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = inverseSqrt_8f2bd2();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
diff --git a/test/tint/builtins/gen/literal/inverseSqrt/8f2bd2.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/inverseSqrt/8f2bd2.wgsl.expected.ir.fxc.hlsl
index 0ba40c6..e7da62e 100644
--- a/test/tint/builtins/gen/literal/inverseSqrt/8f2bd2.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/inverseSqrt/8f2bd2.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,42 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  float2 prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation float2 VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+float2 inverseSqrt_8f2bd2() {
+  float2 res = (1.0f).xx;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store2(0u, asuint(inverseSqrt_8f2bd2()));
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store2(0u, asuint(inverseSqrt_8f2bd2()));
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = inverseSqrt_8f2bd2();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
diff --git a/test/tint/builtins/gen/literal/inverseSqrt/b197b1.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/inverseSqrt/b197b1.wgsl.expected.ir.dxc.hlsl
index 0ba40c6..f158e32 100644
--- a/test/tint/builtins/gen/literal/inverseSqrt/b197b1.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/inverseSqrt/b197b1.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,42 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  float3 prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation float3 VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+float3 inverseSqrt_b197b1() {
+  float3 res = (1.0f).xxx;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store3(0u, asuint(inverseSqrt_b197b1()));
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store3(0u, asuint(inverseSqrt_b197b1()));
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = inverseSqrt_b197b1();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
diff --git a/test/tint/builtins/gen/literal/inverseSqrt/b197b1.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/inverseSqrt/b197b1.wgsl.expected.ir.fxc.hlsl
index 0ba40c6..f158e32 100644
--- a/test/tint/builtins/gen/literal/inverseSqrt/b197b1.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/inverseSqrt/b197b1.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,42 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  float3 prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation float3 VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+float3 inverseSqrt_b197b1() {
+  float3 res = (1.0f).xxx;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store3(0u, asuint(inverseSqrt_b197b1()));
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store3(0u, asuint(inverseSqrt_b197b1()));
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = inverseSqrt_b197b1();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
diff --git a/test/tint/builtins/gen/literal/inverseSqrt/b85ebd.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/inverseSqrt/b85ebd.wgsl.expected.ir.dxc.hlsl
index 0ba40c6..25f5986 100644
--- a/test/tint/builtins/gen/literal/inverseSqrt/b85ebd.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/inverseSqrt/b85ebd.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,42 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  vector<float16_t, 3> prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation vector<float16_t, 3> VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+vector<float16_t, 3> inverseSqrt_b85ebd() {
+  vector<float16_t, 3> res = (float16_t(1.0h)).xxx;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store<vector<float16_t, 3> >(0u, inverseSqrt_b85ebd());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store<vector<float16_t, 3> >(0u, inverseSqrt_b85ebd());
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = inverseSqrt_b85ebd();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
diff --git a/test/tint/builtins/gen/literal/inverseSqrt/b85ebd.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/inverseSqrt/b85ebd.wgsl.expected.ir.fxc.hlsl
index 0ba40c6..a880450 100644
--- a/test/tint/builtins/gen/literal/inverseSqrt/b85ebd.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/inverseSqrt/b85ebd.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,47 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct VertexOutput {
+  float4 pos;
+  vector<float16_t, 3> prevent_dce;
+};
+
+struct vertex_main_outputs {
+  nointerpolation vector<float16_t, 3> VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+vector<float16_t, 3> inverseSqrt_b85ebd() {
+  vector<float16_t, 3> res = (float16_t(1.0h)).xxx;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store<vector<float16_t, 3> >(0u, inverseSqrt_b85ebd());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store<vector<float16_t, 3> >(0u, inverseSqrt_b85ebd());
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = inverseSqrt_b85ebd();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
+FXC validation failure:
+c:\src\dawn\Shader@0x000001CB041BC920(3,10-18): error X3000: syntax error: unexpected token 'float16_t'
+
diff --git a/test/tint/builtins/gen/literal/inverseSqrt/c22347.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/inverseSqrt/c22347.wgsl.expected.ir.dxc.hlsl
index 0ba40c6..8b90ded 100644
--- a/test/tint/builtins/gen/literal/inverseSqrt/c22347.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/inverseSqrt/c22347.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,42 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  float4 prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation float4 VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+float4 inverseSqrt_c22347() {
+  float4 res = (1.0f).xxxx;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store4(0u, asuint(inverseSqrt_c22347()));
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store4(0u, asuint(inverseSqrt_c22347()));
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = inverseSqrt_c22347();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
diff --git a/test/tint/builtins/gen/literal/inverseSqrt/c22347.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/inverseSqrt/c22347.wgsl.expected.ir.fxc.hlsl
index 0ba40c6..8b90ded 100644
--- a/test/tint/builtins/gen/literal/inverseSqrt/c22347.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/inverseSqrt/c22347.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,42 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  float4 prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation float4 VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+float4 inverseSqrt_c22347() {
+  float4 res = (1.0f).xxxx;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store4(0u, asuint(inverseSqrt_c22347()));
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store4(0u, asuint(inverseSqrt_c22347()));
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = inverseSqrt_c22347();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
diff --git a/test/tint/builtins/gen/literal/inverseSqrt/cbdc70.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/inverseSqrt/cbdc70.wgsl.expected.ir.dxc.hlsl
index 0ba40c6..23e9777 100644
--- a/test/tint/builtins/gen/literal/inverseSqrt/cbdc70.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/inverseSqrt/cbdc70.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,42 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  vector<float16_t, 4> prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation vector<float16_t, 4> VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+vector<float16_t, 4> inverseSqrt_cbdc70() {
+  vector<float16_t, 4> res = (float16_t(1.0h)).xxxx;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store<vector<float16_t, 4> >(0u, inverseSqrt_cbdc70());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store<vector<float16_t, 4> >(0u, inverseSqrt_cbdc70());
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = inverseSqrt_cbdc70();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
diff --git a/test/tint/builtins/gen/literal/inverseSqrt/cbdc70.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/inverseSqrt/cbdc70.wgsl.expected.ir.fxc.hlsl
index 0ba40c6..097ca02 100644
--- a/test/tint/builtins/gen/literal/inverseSqrt/cbdc70.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/inverseSqrt/cbdc70.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,47 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct VertexOutput {
+  float4 pos;
+  vector<float16_t, 4> prevent_dce;
+};
+
+struct vertex_main_outputs {
+  nointerpolation vector<float16_t, 4> VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+vector<float16_t, 4> inverseSqrt_cbdc70() {
+  vector<float16_t, 4> res = (float16_t(1.0h)).xxxx;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store<vector<float16_t, 4> >(0u, inverseSqrt_cbdc70());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store<vector<float16_t, 4> >(0u, inverseSqrt_cbdc70());
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = inverseSqrt_cbdc70();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
+FXC validation failure:
+c:\src\dawn\Shader@0x000002837C2B6D20(3,10-18): error X3000: syntax error: unexpected token 'float16_t'
+
diff --git a/test/tint/builtins/gen/literal/inverseSqrt/f60c1c.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/inverseSqrt/f60c1c.wgsl.expected.ir.dxc.hlsl
index 0ba40c6..6cefdf6 100644
--- a/test/tint/builtins/gen/literal/inverseSqrt/f60c1c.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/inverseSqrt/f60c1c.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,36 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+void inverseSqrt_f60c1c() {
+  float2 res = (1.0f).xx;
+}
+
+void fragment_main() {
+  inverseSqrt_f60c1c();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  inverseSqrt_f60c1c();
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  inverseSqrt_f60c1c();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  vertex_main_outputs v_2 = {v_1.pos};
+  return v_2;
+}
+
diff --git a/test/tint/builtins/gen/literal/inverseSqrt/f60c1c.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/inverseSqrt/f60c1c.wgsl.expected.ir.fxc.hlsl
index 0ba40c6..6cefdf6 100644
--- a/test/tint/builtins/gen/literal/inverseSqrt/f60c1c.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/inverseSqrt/f60c1c.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,36 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+void inverseSqrt_f60c1c() {
+  float2 res = (1.0f).xx;
+}
+
+void fragment_main() {
+  inverseSqrt_f60c1c();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  inverseSqrt_f60c1c();
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  inverseSqrt_f60c1c();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  vertex_main_outputs v_2 = {v_1.pos};
+  return v_2;
+}
+
diff --git a/test/tint/builtins/gen/literal/ldexp/082c1f.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/ldexp/082c1f.wgsl.expected.ir.dxc.hlsl
index 0ba40c6..4990626 100644
--- a/test/tint/builtins/gen/literal/ldexp/082c1f.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/ldexp/082c1f.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,42 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  float16_t prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation float16_t VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+float16_t ldexp_082c1f() {
+  float16_t res = float16_t(2.0h);
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store<float16_t>(0u, ldexp_082c1f());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store<float16_t>(0u, ldexp_082c1f());
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = ldexp_082c1f();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
diff --git a/test/tint/builtins/gen/literal/ldexp/082c1f.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/ldexp/082c1f.wgsl.expected.ir.fxc.hlsl
index 0ba40c6..743f540 100644
--- a/test/tint/builtins/gen/literal/ldexp/082c1f.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/ldexp/082c1f.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,47 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct VertexOutput {
+  float4 pos;
+  float16_t prevent_dce;
+};
+
+struct vertex_main_outputs {
+  nointerpolation float16_t VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+float16_t ldexp_082c1f() {
+  float16_t res = float16_t(2.0h);
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store<float16_t>(0u, ldexp_082c1f());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store<float16_t>(0u, ldexp_082c1f());
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = ldexp_082c1f();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
+FXC validation failure:
+c:\src\dawn\Shader@0x00000109BACE0390(3,3-11): error X3000: unrecognized identifier 'float16_t'
+
diff --git a/test/tint/builtins/gen/literal/ldexp/217a31.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/ldexp/217a31.wgsl.expected.ir.dxc.hlsl
index 0ba40c6..e4d63b5 100644
--- a/test/tint/builtins/gen/literal/ldexp/217a31.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/ldexp/217a31.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,42 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  vector<float16_t, 2> prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation vector<float16_t, 2> VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+vector<float16_t, 2> ldexp_217a31() {
+  vector<float16_t, 2> res = (float16_t(2.0h)).xx;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store<vector<float16_t, 2> >(0u, ldexp_217a31());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store<vector<float16_t, 2> >(0u, ldexp_217a31());
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = ldexp_217a31();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
diff --git a/test/tint/builtins/gen/literal/ldexp/217a31.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/ldexp/217a31.wgsl.expected.ir.fxc.hlsl
index 0ba40c6..e0c081a 100644
--- a/test/tint/builtins/gen/literal/ldexp/217a31.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/ldexp/217a31.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,47 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct VertexOutput {
+  float4 pos;
+  vector<float16_t, 2> prevent_dce;
+};
+
+struct vertex_main_outputs {
+  nointerpolation vector<float16_t, 2> VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+vector<float16_t, 2> ldexp_217a31() {
+  vector<float16_t, 2> res = (float16_t(2.0h)).xx;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store<vector<float16_t, 2> >(0u, ldexp_217a31());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store<vector<float16_t, 2> >(0u, ldexp_217a31());
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = ldexp_217a31();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
+FXC validation failure:
+c:\src\dawn\Shader@0x00000228BE524560(3,10-18): error X3000: syntax error: unexpected token 'float16_t'
+
diff --git a/test/tint/builtins/gen/literal/ldexp/2bfc68.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/ldexp/2bfc68.wgsl.expected.ir.dxc.hlsl
index 0ba40c6..ffba07c 100644
--- a/test/tint/builtins/gen/literal/ldexp/2bfc68.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/ldexp/2bfc68.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,36 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+void ldexp_2bfc68() {
+  float2 res = (2.0f).xx;
+}
+
+void fragment_main() {
+  ldexp_2bfc68();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  ldexp_2bfc68();
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  ldexp_2bfc68();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  vertex_main_outputs v_2 = {v_1.pos};
+  return v_2;
+}
+
diff --git a/test/tint/builtins/gen/literal/ldexp/2bfc68.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/ldexp/2bfc68.wgsl.expected.ir.fxc.hlsl
index 0ba40c6..ffba07c 100644
--- a/test/tint/builtins/gen/literal/ldexp/2bfc68.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/ldexp/2bfc68.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,36 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+void ldexp_2bfc68() {
+  float2 res = (2.0f).xx;
+}
+
+void fragment_main() {
+  ldexp_2bfc68();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  ldexp_2bfc68();
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  ldexp_2bfc68();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  vertex_main_outputs v_2 = {v_1.pos};
+  return v_2;
+}
+
diff --git a/test/tint/builtins/gen/literal/ldexp/2c6370.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/ldexp/2c6370.wgsl.expected.ir.dxc.hlsl
index 0ba40c6..f1a4936 100644
--- a/test/tint/builtins/gen/literal/ldexp/2c6370.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/ldexp/2c6370.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,36 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+void ldexp_2c6370() {
+  float2 res = (2.0f).xx;
+}
+
+void fragment_main() {
+  ldexp_2c6370();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  ldexp_2c6370();
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  ldexp_2c6370();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  vertex_main_outputs v_2 = {v_1.pos};
+  return v_2;
+}
+
diff --git a/test/tint/builtins/gen/literal/ldexp/2c6370.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/ldexp/2c6370.wgsl.expected.ir.fxc.hlsl
index 0ba40c6..f1a4936 100644
--- a/test/tint/builtins/gen/literal/ldexp/2c6370.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/ldexp/2c6370.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,36 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+void ldexp_2c6370() {
+  float2 res = (2.0f).xx;
+}
+
+void fragment_main() {
+  ldexp_2c6370();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  ldexp_2c6370();
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  ldexp_2c6370();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  vertex_main_outputs v_2 = {v_1.pos};
+  return v_2;
+}
+
diff --git a/test/tint/builtins/gen/literal/ldexp/376938.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/ldexp/376938.wgsl.expected.ir.dxc.hlsl
index 0ba40c6..4deddb8 100644
--- a/test/tint/builtins/gen/literal/ldexp/376938.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/ldexp/376938.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,36 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+void ldexp_376938() {
+  float4 res = (2.0f).xxxx;
+}
+
+void fragment_main() {
+  ldexp_376938();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  ldexp_376938();
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  ldexp_376938();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  vertex_main_outputs v_2 = {v_1.pos};
+  return v_2;
+}
+
diff --git a/test/tint/builtins/gen/literal/ldexp/376938.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/ldexp/376938.wgsl.expected.ir.fxc.hlsl
index 0ba40c6..4deddb8 100644
--- a/test/tint/builtins/gen/literal/ldexp/376938.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/ldexp/376938.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,36 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+void ldexp_376938() {
+  float4 res = (2.0f).xxxx;
+}
+
+void fragment_main() {
+  ldexp_376938();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  ldexp_376938();
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  ldexp_376938();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  vertex_main_outputs v_2 = {v_1.pos};
+  return v_2;
+}
+
diff --git a/test/tint/builtins/gen/literal/ldexp/3d90b4.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/ldexp/3d90b4.wgsl.expected.ir.dxc.hlsl
index 0ba40c6..0f3d3a7 100644
--- a/test/tint/builtins/gen/literal/ldexp/3d90b4.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/ldexp/3d90b4.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,42 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  vector<float16_t, 2> prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation vector<float16_t, 2> VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+vector<float16_t, 2> ldexp_3d90b4() {
+  vector<float16_t, 2> res = (float16_t(2.0h)).xx;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store<vector<float16_t, 2> >(0u, ldexp_3d90b4());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store<vector<float16_t, 2> >(0u, ldexp_3d90b4());
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = ldexp_3d90b4();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
diff --git a/test/tint/builtins/gen/literal/ldexp/3d90b4.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/ldexp/3d90b4.wgsl.expected.ir.fxc.hlsl
index 0ba40c6..768670f 100644
--- a/test/tint/builtins/gen/literal/ldexp/3d90b4.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/ldexp/3d90b4.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,47 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct VertexOutput {
+  float4 pos;
+  vector<float16_t, 2> prevent_dce;
+};
+
+struct vertex_main_outputs {
+  nointerpolation vector<float16_t, 2> VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+vector<float16_t, 2> ldexp_3d90b4() {
+  vector<float16_t, 2> res = (float16_t(2.0h)).xx;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store<vector<float16_t, 2> >(0u, ldexp_3d90b4());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store<vector<float16_t, 2> >(0u, ldexp_3d90b4());
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = ldexp_3d90b4();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
+FXC validation failure:
+c:\src\dawn\Shader@0x00000258C6E93B40(3,10-18): error X3000: syntax error: unexpected token 'float16_t'
+
diff --git a/test/tint/builtins/gen/literal/ldexp/4a3ad9.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/ldexp/4a3ad9.wgsl.expected.ir.dxc.hlsl
index 0ba40c6..e21ab0e 100644
--- a/test/tint/builtins/gen/literal/ldexp/4a3ad9.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/ldexp/4a3ad9.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,36 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+void ldexp_4a3ad9() {
+  float3 res = (2.0f).xxx;
+}
+
+void fragment_main() {
+  ldexp_4a3ad9();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  ldexp_4a3ad9();
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  ldexp_4a3ad9();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  vertex_main_outputs v_2 = {v_1.pos};
+  return v_2;
+}
+
diff --git a/test/tint/builtins/gen/literal/ldexp/4a3ad9.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/ldexp/4a3ad9.wgsl.expected.ir.fxc.hlsl
index 0ba40c6..e21ab0e 100644
--- a/test/tint/builtins/gen/literal/ldexp/4a3ad9.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/ldexp/4a3ad9.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,36 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+void ldexp_4a3ad9() {
+  float3 res = (2.0f).xxx;
+}
+
+void fragment_main() {
+  ldexp_4a3ad9();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  ldexp_4a3ad9();
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  ldexp_4a3ad9();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  vertex_main_outputs v_2 = {v_1.pos};
+  return v_2;
+}
+
diff --git a/test/tint/builtins/gen/literal/ldexp/593ff3.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/ldexp/593ff3.wgsl.expected.ir.dxc.hlsl
index 0ba40c6..4657bbd 100644
--- a/test/tint/builtins/gen/literal/ldexp/593ff3.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/ldexp/593ff3.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,42 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  float3 prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation float3 VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+float3 ldexp_593ff3() {
+  float3 res = (2.0f).xxx;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store3(0u, asuint(ldexp_593ff3()));
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store3(0u, asuint(ldexp_593ff3()));
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = ldexp_593ff3();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
diff --git a/test/tint/builtins/gen/literal/ldexp/593ff3.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/ldexp/593ff3.wgsl.expected.ir.fxc.hlsl
index 0ba40c6..4657bbd 100644
--- a/test/tint/builtins/gen/literal/ldexp/593ff3.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/ldexp/593ff3.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,42 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  float3 prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation float3 VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+float3 ldexp_593ff3() {
+  float3 res = (2.0f).xxx;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store3(0u, asuint(ldexp_593ff3()));
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store3(0u, asuint(ldexp_593ff3()));
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = ldexp_593ff3();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
diff --git a/test/tint/builtins/gen/literal/ldexp/624e0c.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/ldexp/624e0c.wgsl.expected.ir.dxc.hlsl
index 0ba40c6..8a26454 100644
--- a/test/tint/builtins/gen/literal/ldexp/624e0c.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/ldexp/624e0c.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,42 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  float16_t prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation float16_t VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+float16_t ldexp_624e0c() {
+  float16_t res = float16_t(2.0h);
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store<float16_t>(0u, ldexp_624e0c());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store<float16_t>(0u, ldexp_624e0c());
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = ldexp_624e0c();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
diff --git a/test/tint/builtins/gen/literal/ldexp/624e0c.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/ldexp/624e0c.wgsl.expected.ir.fxc.hlsl
index 0ba40c6..e1f8f11 100644
--- a/test/tint/builtins/gen/literal/ldexp/624e0c.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/ldexp/624e0c.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,47 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct VertexOutput {
+  float4 pos;
+  float16_t prevent_dce;
+};
+
+struct vertex_main_outputs {
+  nointerpolation float16_t VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+float16_t ldexp_624e0c() {
+  float16_t res = float16_t(2.0h);
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store<float16_t>(0u, ldexp_624e0c());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store<float16_t>(0u, ldexp_624e0c());
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = ldexp_624e0c();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
+FXC validation failure:
+c:\src\dawn\Shader@0x000001E281E17C70(3,3-11): error X3000: unrecognized identifier 'float16_t'
+
diff --git a/test/tint/builtins/gen/literal/ldexp/65a7bd.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/ldexp/65a7bd.wgsl.expected.ir.dxc.hlsl
index 0ba40c6..d019f82 100644
--- a/test/tint/builtins/gen/literal/ldexp/65a7bd.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/ldexp/65a7bd.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,42 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  float4 prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation float4 VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+float4 ldexp_65a7bd() {
+  float4 res = (2.0f).xxxx;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store4(0u, asuint(ldexp_65a7bd()));
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store4(0u, asuint(ldexp_65a7bd()));
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = ldexp_65a7bd();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
diff --git a/test/tint/builtins/gen/literal/ldexp/65a7bd.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/ldexp/65a7bd.wgsl.expected.ir.fxc.hlsl
index 0ba40c6..d019f82 100644
--- a/test/tint/builtins/gen/literal/ldexp/65a7bd.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/ldexp/65a7bd.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,42 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  float4 prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation float4 VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+float4 ldexp_65a7bd() {
+  float4 res = (2.0f).xxxx;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store4(0u, asuint(ldexp_65a7bd()));
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store4(0u, asuint(ldexp_65a7bd()));
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = ldexp_65a7bd();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
diff --git a/test/tint/builtins/gen/literal/ldexp/71ebe3.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/ldexp/71ebe3.wgsl.expected.ir.dxc.hlsl
index 0ba40c6..e090208 100644
--- a/test/tint/builtins/gen/literal/ldexp/71ebe3.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/ldexp/71ebe3.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,36 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+void ldexp_71ebe3() {
+  float res = 2.0f;
+}
+
+void fragment_main() {
+  ldexp_71ebe3();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  ldexp_71ebe3();
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  ldexp_71ebe3();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  vertex_main_outputs v_2 = {v_1.pos};
+  return v_2;
+}
+
diff --git a/test/tint/builtins/gen/literal/ldexp/71ebe3.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/ldexp/71ebe3.wgsl.expected.ir.fxc.hlsl
index 0ba40c6..e090208 100644
--- a/test/tint/builtins/gen/literal/ldexp/71ebe3.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/ldexp/71ebe3.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,36 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+void ldexp_71ebe3() {
+  float res = 2.0f;
+}
+
+void fragment_main() {
+  ldexp_71ebe3();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  ldexp_71ebe3();
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  ldexp_71ebe3();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  vertex_main_outputs v_2 = {v_1.pos};
+  return v_2;
+}
+
diff --git a/test/tint/builtins/gen/literal/ldexp/7485ce.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/ldexp/7485ce.wgsl.expected.ir.dxc.hlsl
index 0ba40c6..4b561d3 100644
--- a/test/tint/builtins/gen/literal/ldexp/7485ce.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/ldexp/7485ce.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,42 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  vector<float16_t, 3> prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation vector<float16_t, 3> VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+vector<float16_t, 3> ldexp_7485ce() {
+  vector<float16_t, 3> res = (float16_t(2.0h)).xxx;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store<vector<float16_t, 3> >(0u, ldexp_7485ce());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store<vector<float16_t, 3> >(0u, ldexp_7485ce());
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = ldexp_7485ce();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
diff --git a/test/tint/builtins/gen/literal/ldexp/7485ce.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/ldexp/7485ce.wgsl.expected.ir.fxc.hlsl
index 0ba40c6..9c4a530 100644
--- a/test/tint/builtins/gen/literal/ldexp/7485ce.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/ldexp/7485ce.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,47 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct VertexOutput {
+  float4 pos;
+  vector<float16_t, 3> prevent_dce;
+};
+
+struct vertex_main_outputs {
+  nointerpolation vector<float16_t, 3> VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+vector<float16_t, 3> ldexp_7485ce() {
+  vector<float16_t, 3> res = (float16_t(2.0h)).xxx;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store<vector<float16_t, 3> >(0u, ldexp_7485ce());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store<vector<float16_t, 3> >(0u, ldexp_7485ce());
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = ldexp_7485ce();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
+FXC validation failure:
+c:\src\dawn\Shader@0x000001FF3E6DC3E0(3,10-18): error X3000: syntax error: unexpected token 'float16_t'
+
diff --git a/test/tint/builtins/gen/literal/ldexp/7fa13c.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/ldexp/7fa13c.wgsl.expected.ir.dxc.hlsl
index 0ba40c6..d851294 100644
--- a/test/tint/builtins/gen/literal/ldexp/7fa13c.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/ldexp/7fa13c.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,42 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  vector<float16_t, 4> prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation vector<float16_t, 4> VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+vector<float16_t, 4> ldexp_7fa13c() {
+  vector<float16_t, 4> res = (float16_t(2.0h)).xxxx;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store<vector<float16_t, 4> >(0u, ldexp_7fa13c());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store<vector<float16_t, 4> >(0u, ldexp_7fa13c());
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = ldexp_7fa13c();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
diff --git a/test/tint/builtins/gen/literal/ldexp/7fa13c.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/ldexp/7fa13c.wgsl.expected.ir.fxc.hlsl
index 0ba40c6..c0a1303 100644
--- a/test/tint/builtins/gen/literal/ldexp/7fa13c.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/ldexp/7fa13c.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,47 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct VertexOutput {
+  float4 pos;
+  vector<float16_t, 4> prevent_dce;
+};
+
+struct vertex_main_outputs {
+  nointerpolation vector<float16_t, 4> VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+vector<float16_t, 4> ldexp_7fa13c() {
+  vector<float16_t, 4> res = (float16_t(2.0h)).xxxx;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store<vector<float16_t, 4> >(0u, ldexp_7fa13c());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store<vector<float16_t, 4> >(0u, ldexp_7fa13c());
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = ldexp_7fa13c();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
+FXC validation failure:
+c:\src\dawn\Shader@0x00000190F5166FB0(3,10-18): error X3000: syntax error: unexpected token 'float16_t'
+
diff --git a/test/tint/builtins/gen/literal/ldexp/8a0c2f.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/ldexp/8a0c2f.wgsl.expected.ir.dxc.hlsl
index 0ba40c6..63a87dc 100644
--- a/test/tint/builtins/gen/literal/ldexp/8a0c2f.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/ldexp/8a0c2f.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,42 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  vector<float16_t, 4> prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation vector<float16_t, 4> VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+vector<float16_t, 4> ldexp_8a0c2f() {
+  vector<float16_t, 4> res = (float16_t(2.0h)).xxxx;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store<vector<float16_t, 4> >(0u, ldexp_8a0c2f());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store<vector<float16_t, 4> >(0u, ldexp_8a0c2f());
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = ldexp_8a0c2f();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
diff --git a/test/tint/builtins/gen/literal/ldexp/8a0c2f.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/ldexp/8a0c2f.wgsl.expected.ir.fxc.hlsl
index 0ba40c6..44833eb 100644
--- a/test/tint/builtins/gen/literal/ldexp/8a0c2f.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/ldexp/8a0c2f.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,47 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct VertexOutput {
+  float4 pos;
+  vector<float16_t, 4> prevent_dce;
+};
+
+struct vertex_main_outputs {
+  nointerpolation vector<float16_t, 4> VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+vector<float16_t, 4> ldexp_8a0c2f() {
+  vector<float16_t, 4> res = (float16_t(2.0h)).xxxx;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store<vector<float16_t, 4> >(0u, ldexp_8a0c2f());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store<vector<float16_t, 4> >(0u, ldexp_8a0c2f());
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = ldexp_8a0c2f();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
+FXC validation failure:
+c:\src\dawn\Shader@0x000001AE429E0E80(3,10-18): error X3000: syntax error: unexpected token 'float16_t'
+
diff --git a/test/tint/builtins/gen/literal/ldexp/8e43e9.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/ldexp/8e43e9.wgsl.expected.ir.dxc.hlsl
index 0ba40c6..5e2b075 100644
--- a/test/tint/builtins/gen/literal/ldexp/8e43e9.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/ldexp/8e43e9.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,42 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  vector<float16_t, 3> prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation vector<float16_t, 3> VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+vector<float16_t, 3> ldexp_8e43e9() {
+  vector<float16_t, 3> res = (float16_t(2.0h)).xxx;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store<vector<float16_t, 3> >(0u, ldexp_8e43e9());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store<vector<float16_t, 3> >(0u, ldexp_8e43e9());
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = ldexp_8e43e9();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
diff --git a/test/tint/builtins/gen/literal/ldexp/8e43e9.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/ldexp/8e43e9.wgsl.expected.ir.fxc.hlsl
index 0ba40c6..079ed82 100644
--- a/test/tint/builtins/gen/literal/ldexp/8e43e9.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/ldexp/8e43e9.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,47 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct VertexOutput {
+  float4 pos;
+  vector<float16_t, 3> prevent_dce;
+};
+
+struct vertex_main_outputs {
+  nointerpolation vector<float16_t, 3> VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+vector<float16_t, 3> ldexp_8e43e9() {
+  vector<float16_t, 3> res = (float16_t(2.0h)).xxx;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store<vector<float16_t, 3> >(0u, ldexp_8e43e9());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store<vector<float16_t, 3> >(0u, ldexp_8e43e9());
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = ldexp_8e43e9();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
+FXC validation failure:
+c:\src\dawn\Shader@0x000002CA439C09D0(3,10-18): error X3000: syntax error: unexpected token 'float16_t'
+
diff --git a/test/tint/builtins/gen/literal/ldexp/a22679.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/ldexp/a22679.wgsl.expected.ir.dxc.hlsl
index 0ba40c6..b5cd547 100644
--- a/test/tint/builtins/gen/literal/ldexp/a22679.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/ldexp/a22679.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,42 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  float2 prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation float2 VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+float2 ldexp_a22679() {
+  float2 res = (2.0f).xx;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store2(0u, asuint(ldexp_a22679()));
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store2(0u, asuint(ldexp_a22679()));
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = ldexp_a22679();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
diff --git a/test/tint/builtins/gen/literal/ldexp/a22679.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/ldexp/a22679.wgsl.expected.ir.fxc.hlsl
index 0ba40c6..b5cd547 100644
--- a/test/tint/builtins/gen/literal/ldexp/a22679.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/ldexp/a22679.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,42 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  float2 prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation float2 VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+float2 ldexp_a22679() {
+  float2 res = (2.0f).xx;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store2(0u, asuint(ldexp_a22679()));
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store2(0u, asuint(ldexp_a22679()));
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = ldexp_a22679();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
diff --git a/test/tint/builtins/gen/literal/ldexp/a31cdc.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/ldexp/a31cdc.wgsl.expected.ir.dxc.hlsl
index 0ba40c6..0169344 100644
--- a/test/tint/builtins/gen/literal/ldexp/a31cdc.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/ldexp/a31cdc.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,42 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  float3 prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation float3 VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+float3 ldexp_a31cdc() {
+  float3 res = (2.0f).xxx;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store3(0u, asuint(ldexp_a31cdc()));
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store3(0u, asuint(ldexp_a31cdc()));
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = ldexp_a31cdc();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
diff --git a/test/tint/builtins/gen/literal/ldexp/a31cdc.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/ldexp/a31cdc.wgsl.expected.ir.fxc.hlsl
index 0ba40c6..0169344 100644
--- a/test/tint/builtins/gen/literal/ldexp/a31cdc.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/ldexp/a31cdc.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,42 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  float3 prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation float3 VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+float3 ldexp_a31cdc() {
+  float3 res = (2.0f).xxx;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store3(0u, asuint(ldexp_a31cdc()));
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store3(0u, asuint(ldexp_a31cdc()));
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = ldexp_a31cdc();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
diff --git a/test/tint/builtins/gen/literal/ldexp/a6126e.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/ldexp/a6126e.wgsl.expected.ir.dxc.hlsl
index 0ba40c6..c7acf50 100644
--- a/test/tint/builtins/gen/literal/ldexp/a6126e.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/ldexp/a6126e.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,36 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+void ldexp_a6126e() {
+  float3 res = (2.0f).xxx;
+}
+
+void fragment_main() {
+  ldexp_a6126e();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  ldexp_a6126e();
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  ldexp_a6126e();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  vertex_main_outputs v_2 = {v_1.pos};
+  return v_2;
+}
+
diff --git a/test/tint/builtins/gen/literal/ldexp/a6126e.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/ldexp/a6126e.wgsl.expected.ir.fxc.hlsl
index 0ba40c6..c7acf50 100644
--- a/test/tint/builtins/gen/literal/ldexp/a6126e.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/ldexp/a6126e.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,36 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+void ldexp_a6126e() {
+  float3 res = (2.0f).xxx;
+}
+
+void fragment_main() {
+  ldexp_a6126e();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  ldexp_a6126e();
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  ldexp_a6126e();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  vertex_main_outputs v_2 = {v_1.pos};
+  return v_2;
+}
+
diff --git a/test/tint/builtins/gen/literal/ldexp/abd718.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/ldexp/abd718.wgsl.expected.ir.dxc.hlsl
index 0ba40c6..617ff03 100644
--- a/test/tint/builtins/gen/literal/ldexp/abd718.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/ldexp/abd718.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,42 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  float2 prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation float2 VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+float2 ldexp_abd718() {
+  float2 res = (2.0f).xx;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store2(0u, asuint(ldexp_abd718()));
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store2(0u, asuint(ldexp_abd718()));
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = ldexp_abd718();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
diff --git a/test/tint/builtins/gen/literal/ldexp/abd718.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/ldexp/abd718.wgsl.expected.ir.fxc.hlsl
index 0ba40c6..617ff03 100644
--- a/test/tint/builtins/gen/literal/ldexp/abd718.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/ldexp/abd718.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,42 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  float2 prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation float2 VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+float2 ldexp_abd718() {
+  float2 res = (2.0f).xx;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store2(0u, asuint(ldexp_abd718()));
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store2(0u, asuint(ldexp_abd718()));
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = ldexp_abd718();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
diff --git a/test/tint/builtins/gen/literal/ldexp/c9d0b7.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/ldexp/c9d0b7.wgsl.expected.ir.dxc.hlsl
index 0ba40c6..c1baa54 100644
--- a/test/tint/builtins/gen/literal/ldexp/c9d0b7.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/ldexp/c9d0b7.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,42 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  float prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation float VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+float ldexp_c9d0b7() {
+  float res = 2.0f;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store(0u, asuint(ldexp_c9d0b7()));
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store(0u, asuint(ldexp_c9d0b7()));
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = ldexp_c9d0b7();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
diff --git a/test/tint/builtins/gen/literal/ldexp/c9d0b7.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/ldexp/c9d0b7.wgsl.expected.ir.fxc.hlsl
index 0ba40c6..c1baa54 100644
--- a/test/tint/builtins/gen/literal/ldexp/c9d0b7.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/ldexp/c9d0b7.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,42 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  float prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation float VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+float ldexp_c9d0b7() {
+  float res = 2.0f;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store(0u, asuint(ldexp_c9d0b7()));
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store(0u, asuint(ldexp_c9d0b7()));
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = ldexp_c9d0b7();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
diff --git a/test/tint/builtins/gen/literal/ldexp/cb0faf.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/ldexp/cb0faf.wgsl.expected.ir.dxc.hlsl
index 0ba40c6..39e1125 100644
--- a/test/tint/builtins/gen/literal/ldexp/cb0faf.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/ldexp/cb0faf.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,36 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+void ldexp_cb0faf() {
+  float4 res = (2.0f).xxxx;
+}
+
+void fragment_main() {
+  ldexp_cb0faf();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  ldexp_cb0faf();
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  ldexp_cb0faf();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  vertex_main_outputs v_2 = {v_1.pos};
+  return v_2;
+}
+
diff --git a/test/tint/builtins/gen/literal/ldexp/cb0faf.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/ldexp/cb0faf.wgsl.expected.ir.fxc.hlsl
index 0ba40c6..39e1125 100644
--- a/test/tint/builtins/gen/literal/ldexp/cb0faf.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/ldexp/cb0faf.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,36 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+void ldexp_cb0faf() {
+  float4 res = (2.0f).xxxx;
+}
+
+void fragment_main() {
+  ldexp_cb0faf();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  ldexp_cb0faf();
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  ldexp_cb0faf();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  vertex_main_outputs v_2 = {v_1.pos};
+  return v_2;
+}
+
diff --git a/test/tint/builtins/gen/literal/ldexp/cc9cde.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/ldexp/cc9cde.wgsl.expected.ir.dxc.hlsl
index 0ba40c6..994ef64 100644
--- a/test/tint/builtins/gen/literal/ldexp/cc9cde.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/ldexp/cc9cde.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,42 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  float4 prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation float4 VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+float4 ldexp_cc9cde() {
+  float4 res = (2.0f).xxxx;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store4(0u, asuint(ldexp_cc9cde()));
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store4(0u, asuint(ldexp_cc9cde()));
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = ldexp_cc9cde();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
diff --git a/test/tint/builtins/gen/literal/ldexp/cc9cde.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/ldexp/cc9cde.wgsl.expected.ir.fxc.hlsl
index 0ba40c6..994ef64 100644
--- a/test/tint/builtins/gen/literal/ldexp/cc9cde.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/ldexp/cc9cde.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,42 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  float4 prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation float4 VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+float4 ldexp_cc9cde() {
+  float4 res = (2.0f).xxxx;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store4(0u, asuint(ldexp_cc9cde()));
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store4(0u, asuint(ldexp_cc9cde()));
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = ldexp_cc9cde();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
diff --git a/test/tint/builtins/gen/literal/ldexp/db8b49.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/ldexp/db8b49.wgsl.expected.ir.dxc.hlsl
index 0ba40c6..9a5c96f 100644
--- a/test/tint/builtins/gen/literal/ldexp/db8b49.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/ldexp/db8b49.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,42 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  float prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation float VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+float ldexp_db8b49() {
+  float res = 2.0f;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store(0u, asuint(ldexp_db8b49()));
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store(0u, asuint(ldexp_db8b49()));
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = ldexp_db8b49();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
diff --git a/test/tint/builtins/gen/literal/ldexp/db8b49.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/ldexp/db8b49.wgsl.expected.ir.fxc.hlsl
index 0ba40c6..9a5c96f 100644
--- a/test/tint/builtins/gen/literal/ldexp/db8b49.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/ldexp/db8b49.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,42 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  float prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation float VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+float ldexp_db8b49() {
+  float res = 2.0f;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store(0u, asuint(ldexp_db8b49()));
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store(0u, asuint(ldexp_db8b49()));
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = ldexp_db8b49();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
diff --git a/test/tint/builtins/gen/literal/ldexp/fdbc7b.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/ldexp/fdbc7b.wgsl.expected.ir.dxc.hlsl
index 0ba40c6..c14a81a 100644
--- a/test/tint/builtins/gen/literal/ldexp/fdbc7b.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/ldexp/fdbc7b.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,36 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+void ldexp_fdbc7b() {
+  float res = 2.0f;
+}
+
+void fragment_main() {
+  ldexp_fdbc7b();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  ldexp_fdbc7b();
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  ldexp_fdbc7b();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  vertex_main_outputs v_2 = {v_1.pos};
+  return v_2;
+}
+
diff --git a/test/tint/builtins/gen/literal/ldexp/fdbc7b.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/ldexp/fdbc7b.wgsl.expected.ir.fxc.hlsl
index 0ba40c6..c14a81a 100644
--- a/test/tint/builtins/gen/literal/ldexp/fdbc7b.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/ldexp/fdbc7b.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,36 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+void ldexp_fdbc7b() {
+  float res = 2.0f;
+}
+
+void fragment_main() {
+  ldexp_fdbc7b();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  ldexp_fdbc7b();
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  ldexp_fdbc7b();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  vertex_main_outputs v_2 = {v_1.pos};
+  return v_2;
+}
+
diff --git a/test/tint/builtins/gen/literal/length/056071.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/length/056071.wgsl.expected.ir.dxc.hlsl
index 0ba40c6..5fb5dc2 100644
--- a/test/tint/builtins/gen/literal/length/056071.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/length/056071.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,42 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  float prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation float VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+float length_056071() {
+  float res = 0.0f;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store(0u, asuint(length_056071()));
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store(0u, asuint(length_056071()));
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = length_056071();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
diff --git a/test/tint/builtins/gen/literal/length/056071.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/length/056071.wgsl.expected.ir.fxc.hlsl
index 0ba40c6..5fb5dc2 100644
--- a/test/tint/builtins/gen/literal/length/056071.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/length/056071.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,42 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  float prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation float VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+float length_056071() {
+  float res = 0.0f;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store(0u, asuint(length_056071()));
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store(0u, asuint(length_056071()));
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = length_056071();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
diff --git a/test/tint/builtins/gen/literal/length/3f0e13.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/length/3f0e13.wgsl.expected.ir.dxc.hlsl
index 0ba40c6..79c3cfe 100644
--- a/test/tint/builtins/gen/literal/length/3f0e13.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/length/3f0e13.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,42 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  float16_t prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation float16_t VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+float16_t length_3f0e13() {
+  float16_t res = float16_t(0.0h);
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store<float16_t>(0u, length_3f0e13());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store<float16_t>(0u, length_3f0e13());
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = length_3f0e13();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
diff --git a/test/tint/builtins/gen/literal/length/3f0e13.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/length/3f0e13.wgsl.expected.ir.fxc.hlsl
index 0ba40c6..66682f1 100644
--- a/test/tint/builtins/gen/literal/length/3f0e13.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/length/3f0e13.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,47 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct VertexOutput {
+  float4 pos;
+  float16_t prevent_dce;
+};
+
+struct vertex_main_outputs {
+  nointerpolation float16_t VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+float16_t length_3f0e13() {
+  float16_t res = float16_t(0.0h);
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store<float16_t>(0u, length_3f0e13());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store<float16_t>(0u, length_3f0e13());
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = length_3f0e13();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
+FXC validation failure:
+c:\src\dawn\Shader@0x00000254260524D0(3,3-11): error X3000: unrecognized identifier 'float16_t'
+
diff --git a/test/tint/builtins/gen/literal/length/555aba.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/length/555aba.wgsl.expected.ir.dxc.hlsl
index 0ba40c6..6336200 100644
--- a/test/tint/builtins/gen/literal/length/555aba.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/length/555aba.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,36 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+void length_555aba() {
+  float res = 0.0f;
+}
+
+void fragment_main() {
+  length_555aba();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  length_555aba();
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  length_555aba();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  vertex_main_outputs v_2 = {v_1.pos};
+  return v_2;
+}
+
diff --git a/test/tint/builtins/gen/literal/length/555aba.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/length/555aba.wgsl.expected.ir.fxc.hlsl
index 0ba40c6..6336200 100644
--- a/test/tint/builtins/gen/literal/length/555aba.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/length/555aba.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,36 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+void length_555aba() {
+  float res = 0.0f;
+}
+
+void fragment_main() {
+  length_555aba();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  length_555aba();
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  length_555aba();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  vertex_main_outputs v_2 = {v_1.pos};
+  return v_2;
+}
+
diff --git a/test/tint/builtins/gen/literal/length/5b1a9b.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/length/5b1a9b.wgsl.expected.ir.dxc.hlsl
index 0ba40c6..b567d66 100644
--- a/test/tint/builtins/gen/literal/length/5b1a9b.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/length/5b1a9b.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,42 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  float16_t prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation float16_t VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+float16_t length_5b1a9b() {
+  float16_t res = float16_t(0.0h);
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store<float16_t>(0u, length_5b1a9b());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store<float16_t>(0u, length_5b1a9b());
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = length_5b1a9b();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
diff --git a/test/tint/builtins/gen/literal/length/5b1a9b.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/length/5b1a9b.wgsl.expected.ir.fxc.hlsl
index 0ba40c6..785a272 100644
--- a/test/tint/builtins/gen/literal/length/5b1a9b.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/length/5b1a9b.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,47 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct VertexOutput {
+  float4 pos;
+  float16_t prevent_dce;
+};
+
+struct vertex_main_outputs {
+  nointerpolation float16_t VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+float16_t length_5b1a9b() {
+  float16_t res = float16_t(0.0h);
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store<float16_t>(0u, length_5b1a9b());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store<float16_t>(0u, length_5b1a9b());
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = length_5b1a9b();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
+FXC validation failure:
+c:\src\dawn\Shader@0x000001E5209F1190(3,3-11): error X3000: unrecognized identifier 'float16_t'
+
diff --git a/test/tint/builtins/gen/literal/length/602a17.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/length/602a17.wgsl.expected.ir.dxc.hlsl
index 0ba40c6..170e0ea 100644
--- a/test/tint/builtins/gen/literal/length/602a17.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/length/602a17.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,42 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  float prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation float VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+float length_602a17() {
+  float res = 0.0f;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store(0u, asuint(length_602a17()));
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store(0u, asuint(length_602a17()));
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = length_602a17();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
diff --git a/test/tint/builtins/gen/literal/length/602a17.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/length/602a17.wgsl.expected.ir.fxc.hlsl
index 0ba40c6..170e0ea 100644
--- a/test/tint/builtins/gen/literal/length/602a17.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/length/602a17.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,42 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  float prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation float VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+float length_602a17() {
+  float res = 0.0f;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store(0u, asuint(length_602a17()));
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store(0u, asuint(length_602a17()));
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = length_602a17();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
diff --git a/test/tint/builtins/gen/literal/length/7b4741.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/length/7b4741.wgsl.expected.ir.dxc.hlsl
index 0ba40c6..62c0847 100644
--- a/test/tint/builtins/gen/literal/length/7b4741.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/length/7b4741.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,36 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+void length_7b4741() {
+  float res = 0.0f;
+}
+
+void fragment_main() {
+  length_7b4741();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  length_7b4741();
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  length_7b4741();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  vertex_main_outputs v_2 = {v_1.pos};
+  return v_2;
+}
+
diff --git a/test/tint/builtins/gen/literal/length/7b4741.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/length/7b4741.wgsl.expected.ir.fxc.hlsl
index 0ba40c6..62c0847 100644
--- a/test/tint/builtins/gen/literal/length/7b4741.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/length/7b4741.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,36 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+void length_7b4741() {
+  float res = 0.0f;
+}
+
+void fragment_main() {
+  length_7b4741();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  length_7b4741();
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  length_7b4741();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  vertex_main_outputs v_2 = {v_1.pos};
+  return v_2;
+}
+
diff --git a/test/tint/builtins/gen/literal/length/936ad5.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/length/936ad5.wgsl.expected.ir.dxc.hlsl
index 0ba40c6..ab18a7c 100644
--- a/test/tint/builtins/gen/literal/length/936ad5.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/length/936ad5.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,36 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+void length_936ad5() {
+  float res = 0.0f;
+}
+
+void fragment_main() {
+  length_936ad5();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  length_936ad5();
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  length_936ad5();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  vertex_main_outputs v_2 = {v_1.pos};
+  return v_2;
+}
+
diff --git a/test/tint/builtins/gen/literal/length/936ad5.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/length/936ad5.wgsl.expected.ir.fxc.hlsl
index 0ba40c6..ab18a7c 100644
--- a/test/tint/builtins/gen/literal/length/936ad5.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/length/936ad5.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,36 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+void length_936ad5() {
+  float res = 0.0f;
+}
+
+void fragment_main() {
+  length_936ad5();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  length_936ad5();
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  length_936ad5();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  vertex_main_outputs v_2 = {v_1.pos};
+  return v_2;
+}
+
diff --git a/test/tint/builtins/gen/literal/length/afde8b.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/length/afde8b.wgsl.expected.ir.dxc.hlsl
index 0ba40c6..b2e5331 100644
--- a/test/tint/builtins/gen/literal/length/afde8b.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/length/afde8b.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,42 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  float prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation float VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+float length_afde8b() {
+  float res = 0.0f;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store(0u, asuint(length_afde8b()));
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store(0u, asuint(length_afde8b()));
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = length_afde8b();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
diff --git a/test/tint/builtins/gen/literal/length/afde8b.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/length/afde8b.wgsl.expected.ir.fxc.hlsl
index 0ba40c6..b2e5331 100644
--- a/test/tint/builtins/gen/literal/length/afde8b.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/length/afde8b.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,42 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  float prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation float VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+float length_afde8b() {
+  float res = 0.0f;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store(0u, asuint(length_afde8b()));
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store(0u, asuint(length_afde8b()));
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = length_afde8b();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
diff --git a/test/tint/builtins/gen/literal/length/ba16d6.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/length/ba16d6.wgsl.expected.ir.dxc.hlsl
index 0ba40c6..e474c66 100644
--- a/test/tint/builtins/gen/literal/length/ba16d6.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/length/ba16d6.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,42 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  float16_t prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation float16_t VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+float16_t length_ba16d6() {
+  float16_t res = float16_t(0.0h);
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store<float16_t>(0u, length_ba16d6());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store<float16_t>(0u, length_ba16d6());
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = length_ba16d6();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
diff --git a/test/tint/builtins/gen/literal/length/ba16d6.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/length/ba16d6.wgsl.expected.ir.fxc.hlsl
index 0ba40c6..c69da04 100644
--- a/test/tint/builtins/gen/literal/length/ba16d6.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/length/ba16d6.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,47 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct VertexOutput {
+  float4 pos;
+  float16_t prevent_dce;
+};
+
+struct vertex_main_outputs {
+  nointerpolation float16_t VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+float16_t length_ba16d6() {
+  float16_t res = float16_t(0.0h);
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store<float16_t>(0u, length_ba16d6());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store<float16_t>(0u, length_ba16d6());
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = length_ba16d6();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
+FXC validation failure:
+c:\src\dawn\Shader@0x000001916BDBF5B0(3,3-11): error X3000: unrecognized identifier 'float16_t'
+
diff --git a/test/tint/builtins/gen/literal/length/becebf.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/length/becebf.wgsl.expected.ir.dxc.hlsl
index 0ba40c6..12fc396 100644
--- a/test/tint/builtins/gen/literal/length/becebf.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/length/becebf.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,42 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  float prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation float VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+float length_becebf() {
+  float res = 0.0f;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store(0u, asuint(length_becebf()));
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store(0u, asuint(length_becebf()));
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = length_becebf();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
diff --git a/test/tint/builtins/gen/literal/length/becebf.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/length/becebf.wgsl.expected.ir.fxc.hlsl
index 0ba40c6..12fc396 100644
--- a/test/tint/builtins/gen/literal/length/becebf.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/length/becebf.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,42 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  float prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation float VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+float length_becebf() {
+  float res = 0.0f;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store(0u, asuint(length_becebf()));
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store(0u, asuint(length_becebf()));
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = length_becebf();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
diff --git a/test/tint/builtins/gen/literal/length/c158da.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/length/c158da.wgsl.expected.ir.dxc.hlsl
index 0ba40c6..29f4e79 100644
--- a/test/tint/builtins/gen/literal/length/c158da.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/length/c158da.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,42 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  float16_t prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation float16_t VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+float16_t length_c158da() {
+  float16_t res = float16_t(0.0h);
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store<float16_t>(0u, length_c158da());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store<float16_t>(0u, length_c158da());
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = length_c158da();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
diff --git a/test/tint/builtins/gen/literal/length/c158da.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/length/c158da.wgsl.expected.ir.fxc.hlsl
index 0ba40c6..2ed8f76 100644
--- a/test/tint/builtins/gen/literal/length/c158da.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/length/c158da.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,47 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct VertexOutput {
+  float4 pos;
+  float16_t prevent_dce;
+};
+
+struct vertex_main_outputs {
+  nointerpolation float16_t VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+float16_t length_c158da() {
+  float16_t res = float16_t(0.0h);
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store<float16_t>(0u, length_c158da());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store<float16_t>(0u, length_c158da());
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = length_c158da();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
+FXC validation failure:
+c:\src\dawn\Shader@0x000001E19950E4C0(3,3-11): error X3000: unrecognized identifier 'float16_t'
+
diff --git a/test/tint/builtins/gen/literal/length/c2c544.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/length/c2c544.wgsl.expected.ir.dxc.hlsl
index 0ba40c6..ed11e8a 100644
--- a/test/tint/builtins/gen/literal/length/c2c544.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/length/c2c544.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,36 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+void length_c2c544() {
+  float res = 0.0f;
+}
+
+void fragment_main() {
+  length_c2c544();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  length_c2c544();
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  length_c2c544();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  vertex_main_outputs v_2 = {v_1.pos};
+  return v_2;
+}
+
diff --git a/test/tint/builtins/gen/literal/length/c2c544.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/length/c2c544.wgsl.expected.ir.fxc.hlsl
index 0ba40c6..ed11e8a 100644
--- a/test/tint/builtins/gen/literal/length/c2c544.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/length/c2c544.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,36 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+void length_c2c544() {
+  float res = 0.0f;
+}
+
+void fragment_main() {
+  length_c2c544();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  length_c2c544();
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  length_c2c544();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  vertex_main_outputs v_2 = {v_1.pos};
+  return v_2;
+}
+
diff --git a/test/tint/builtins/gen/literal/log/3da25a.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/log/3da25a.wgsl.expected.ir.dxc.hlsl
index 0ba40c6..12e74bc 100644
--- a/test/tint/builtins/gen/literal/log/3da25a.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/log/3da25a.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,42 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  float4 prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation float4 VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+float4 log_3da25a() {
+  float4 res = (0.0f).xxxx;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store4(0u, asuint(log_3da25a()));
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store4(0u, asuint(log_3da25a()));
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = log_3da25a();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
diff --git a/test/tint/builtins/gen/literal/log/3da25a.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/log/3da25a.wgsl.expected.ir.fxc.hlsl
index 0ba40c6..12e74bc 100644
--- a/test/tint/builtins/gen/literal/log/3da25a.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/log/3da25a.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,42 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  float4 prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation float4 VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+float4 log_3da25a() {
+  float4 res = (0.0f).xxxx;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store4(0u, asuint(log_3da25a()));
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store4(0u, asuint(log_3da25a()));
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = log_3da25a();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
diff --git a/test/tint/builtins/gen/literal/log/655989.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/log/655989.wgsl.expected.ir.dxc.hlsl
index 0ba40c6..1ac53eb 100644
--- a/test/tint/builtins/gen/literal/log/655989.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/log/655989.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,36 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+void log_655989() {
+  float res = 0.0f;
+}
+
+void fragment_main() {
+  log_655989();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  log_655989();
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  log_655989();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  vertex_main_outputs v_2 = {v_1.pos};
+  return v_2;
+}
+
diff --git a/test/tint/builtins/gen/literal/log/655989.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/log/655989.wgsl.expected.ir.fxc.hlsl
index 0ba40c6..1ac53eb 100644
--- a/test/tint/builtins/gen/literal/log/655989.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/log/655989.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,36 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+void log_655989() {
+  float res = 0.0f;
+}
+
+void fragment_main() {
+  log_655989();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  log_655989();
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  log_655989();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  vertex_main_outputs v_2 = {v_1.pos};
+  return v_2;
+}
+
diff --git a/test/tint/builtins/gen/literal/log/697e1d.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/log/697e1d.wgsl.expected.ir.dxc.hlsl
index 0ba40c6..8d3db5e 100644
--- a/test/tint/builtins/gen/literal/log/697e1d.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/log/697e1d.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,36 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+void log_697e1d() {
+  float4 res = (0.0f).xxxx;
+}
+
+void fragment_main() {
+  log_697e1d();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  log_697e1d();
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  log_697e1d();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  vertex_main_outputs v_2 = {v_1.pos};
+  return v_2;
+}
+
diff --git a/test/tint/builtins/gen/literal/log/697e1d.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/log/697e1d.wgsl.expected.ir.fxc.hlsl
index 0ba40c6..8d3db5e 100644
--- a/test/tint/builtins/gen/literal/log/697e1d.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/log/697e1d.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,36 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+void log_697e1d() {
+  float4 res = (0.0f).xxxx;
+}
+
+void fragment_main() {
+  log_697e1d();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  log_697e1d();
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  log_697e1d();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  vertex_main_outputs v_2 = {v_1.pos};
+  return v_2;
+}
+
diff --git a/test/tint/builtins/gen/literal/log/6ff86f.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/log/6ff86f.wgsl.expected.ir.dxc.hlsl
index 0ba40c6..f6edef4 100644
--- a/test/tint/builtins/gen/literal/log/6ff86f.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/log/6ff86f.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,42 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  vector<float16_t, 3> prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation vector<float16_t, 3> VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+vector<float16_t, 3> log_6ff86f() {
+  vector<float16_t, 3> res = (float16_t(0.0h)).xxx;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store<vector<float16_t, 3> >(0u, log_6ff86f());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store<vector<float16_t, 3> >(0u, log_6ff86f());
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = log_6ff86f();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
diff --git a/test/tint/builtins/gen/literal/log/6ff86f.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/log/6ff86f.wgsl.expected.ir.fxc.hlsl
index 0ba40c6..1a28e19 100644
--- a/test/tint/builtins/gen/literal/log/6ff86f.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/log/6ff86f.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,47 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct VertexOutput {
+  float4 pos;
+  vector<float16_t, 3> prevent_dce;
+};
+
+struct vertex_main_outputs {
+  nointerpolation vector<float16_t, 3> VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+vector<float16_t, 3> log_6ff86f() {
+  vector<float16_t, 3> res = (float16_t(0.0h)).xxx;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store<vector<float16_t, 3> >(0u, log_6ff86f());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store<vector<float16_t, 3> >(0u, log_6ff86f());
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = log_6ff86f();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
+FXC validation failure:
+c:\src\dawn\Shader@0x0000024A64EE6F90(3,10-18): error X3000: syntax error: unexpected token 'float16_t'
+
diff --git a/test/tint/builtins/gen/literal/log/7114a6.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/log/7114a6.wgsl.expected.ir.dxc.hlsl
index 0ba40c6..0d73018 100644
--- a/test/tint/builtins/gen/literal/log/7114a6.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/log/7114a6.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,42 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  float prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation float VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+float log_7114a6() {
+  float res = 0.0f;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store(0u, asuint(log_7114a6()));
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store(0u, asuint(log_7114a6()));
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = log_7114a6();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
diff --git a/test/tint/builtins/gen/literal/log/7114a6.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/log/7114a6.wgsl.expected.ir.fxc.hlsl
index 0ba40c6..0d73018 100644
--- a/test/tint/builtins/gen/literal/log/7114a6.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/log/7114a6.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,42 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  float prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation float VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+float log_7114a6() {
+  float res = 0.0f;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store(0u, asuint(log_7114a6()));
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store(0u, asuint(log_7114a6()));
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = log_7114a6();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
diff --git a/test/tint/builtins/gen/literal/log/8f0e32.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/log/8f0e32.wgsl.expected.ir.dxc.hlsl
index 0ba40c6..cdb5f2e 100644
--- a/test/tint/builtins/gen/literal/log/8f0e32.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/log/8f0e32.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,42 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  vector<float16_t, 2> prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation vector<float16_t, 2> VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+vector<float16_t, 2> log_8f0e32() {
+  vector<float16_t, 2> res = (float16_t(0.0h)).xx;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store<vector<float16_t, 2> >(0u, log_8f0e32());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store<vector<float16_t, 2> >(0u, log_8f0e32());
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = log_8f0e32();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
diff --git a/test/tint/builtins/gen/literal/log/8f0e32.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/log/8f0e32.wgsl.expected.ir.fxc.hlsl
index 0ba40c6..d307d00 100644
--- a/test/tint/builtins/gen/literal/log/8f0e32.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/log/8f0e32.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,47 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct VertexOutput {
+  float4 pos;
+  vector<float16_t, 2> prevent_dce;
+};
+
+struct vertex_main_outputs {
+  nointerpolation vector<float16_t, 2> VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+vector<float16_t, 2> log_8f0e32() {
+  vector<float16_t, 2> res = (float16_t(0.0h)).xx;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store<vector<float16_t, 2> >(0u, log_8f0e32());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store<vector<float16_t, 2> >(0u, log_8f0e32());
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = log_8f0e32();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
+FXC validation failure:
+c:\src\dawn\Shader@0x000001DADDA70350(3,10-18): error X3000: syntax error: unexpected token 'float16_t'
+
diff --git a/test/tint/builtins/gen/literal/log/b2ce28.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/log/b2ce28.wgsl.expected.ir.dxc.hlsl
index 0ba40c6..2a231fd 100644
--- a/test/tint/builtins/gen/literal/log/b2ce28.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/log/b2ce28.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,42 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  float2 prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation float2 VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+float2 log_b2ce28() {
+  float2 res = (0.0f).xx;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store2(0u, asuint(log_b2ce28()));
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store2(0u, asuint(log_b2ce28()));
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = log_b2ce28();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
diff --git a/test/tint/builtins/gen/literal/log/b2ce28.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/log/b2ce28.wgsl.expected.ir.fxc.hlsl
index 0ba40c6..2a231fd 100644
--- a/test/tint/builtins/gen/literal/log/b2ce28.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/log/b2ce28.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,42 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  float2 prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation float2 VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+float2 log_b2ce28() {
+  float2 res = (0.0f).xx;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store2(0u, asuint(log_b2ce28()));
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store2(0u, asuint(log_b2ce28()));
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = log_b2ce28();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
diff --git a/test/tint/builtins/gen/literal/log/b8088d.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/log/b8088d.wgsl.expected.ir.dxc.hlsl
index 0ba40c6..3250637 100644
--- a/test/tint/builtins/gen/literal/log/b8088d.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/log/b8088d.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,36 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+void log_b8088d() {
+  float3 res = (0.0f).xxx;
+}
+
+void fragment_main() {
+  log_b8088d();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  log_b8088d();
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  log_b8088d();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  vertex_main_outputs v_2 = {v_1.pos};
+  return v_2;
+}
+
diff --git a/test/tint/builtins/gen/literal/log/b8088d.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/log/b8088d.wgsl.expected.ir.fxc.hlsl
index 0ba40c6..3250637 100644
--- a/test/tint/builtins/gen/literal/log/b8088d.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/log/b8088d.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,36 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+void log_b8088d() {
+  float3 res = (0.0f).xxx;
+}
+
+void fragment_main() {
+  log_b8088d();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  log_b8088d();
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  log_b8088d();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  vertex_main_outputs v_2 = {v_1.pos};
+  return v_2;
+}
+
diff --git a/test/tint/builtins/gen/literal/log/c9f489.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/log/c9f489.wgsl.expected.ir.dxc.hlsl
index 0ba40c6..98b5bfe 100644
--- a/test/tint/builtins/gen/literal/log/c9f489.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/log/c9f489.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,42 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  float16_t prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation float16_t VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+float16_t log_c9f489() {
+  float16_t res = float16_t(0.0h);
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store<float16_t>(0u, log_c9f489());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store<float16_t>(0u, log_c9f489());
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = log_c9f489();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
diff --git a/test/tint/builtins/gen/literal/log/c9f489.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/log/c9f489.wgsl.expected.ir.fxc.hlsl
index 0ba40c6..d265d2f 100644
--- a/test/tint/builtins/gen/literal/log/c9f489.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/log/c9f489.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,47 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct VertexOutput {
+  float4 pos;
+  float16_t prevent_dce;
+};
+
+struct vertex_main_outputs {
+  nointerpolation float16_t VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+float16_t log_c9f489() {
+  float16_t res = float16_t(0.0h);
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store<float16_t>(0u, log_c9f489());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store<float16_t>(0u, log_c9f489());
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = log_c9f489();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
+FXC validation failure:
+c:\src\dawn\Shader@0x0000024600D9D4B0(3,3-11): error X3000: unrecognized identifier 'float16_t'
+
diff --git a/test/tint/builtins/gen/literal/log/cdbdc1.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/log/cdbdc1.wgsl.expected.ir.dxc.hlsl
index 0ba40c6..0c3f031 100644
--- a/test/tint/builtins/gen/literal/log/cdbdc1.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/log/cdbdc1.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,42 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  vector<float16_t, 4> prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation vector<float16_t, 4> VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+vector<float16_t, 4> log_cdbdc1() {
+  vector<float16_t, 4> res = (float16_t(0.0h)).xxxx;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store<vector<float16_t, 4> >(0u, log_cdbdc1());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store<vector<float16_t, 4> >(0u, log_cdbdc1());
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = log_cdbdc1();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
diff --git a/test/tint/builtins/gen/literal/log/cdbdc1.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/log/cdbdc1.wgsl.expected.ir.fxc.hlsl
index 0ba40c6..6b45133 100644
--- a/test/tint/builtins/gen/literal/log/cdbdc1.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/log/cdbdc1.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,47 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct VertexOutput {
+  float4 pos;
+  vector<float16_t, 4> prevent_dce;
+};
+
+struct vertex_main_outputs {
+  nointerpolation vector<float16_t, 4> VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+vector<float16_t, 4> log_cdbdc1() {
+  vector<float16_t, 4> res = (float16_t(0.0h)).xxxx;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store<vector<float16_t, 4> >(0u, log_cdbdc1());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store<vector<float16_t, 4> >(0u, log_cdbdc1());
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = log_cdbdc1();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
+FXC validation failure:
+c:\src\dawn\Shader@0x00000204AF794CB0(3,10-18): error X3000: syntax error: unexpected token 'float16_t'
+
diff --git a/test/tint/builtins/gen/literal/log/f4c570.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/log/f4c570.wgsl.expected.ir.dxc.hlsl
index 0ba40c6..f234f72 100644
--- a/test/tint/builtins/gen/literal/log/f4c570.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/log/f4c570.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,42 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  float3 prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation float3 VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+float3 log_f4c570() {
+  float3 res = (0.0f).xxx;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store3(0u, asuint(log_f4c570()));
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store3(0u, asuint(log_f4c570()));
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = log_f4c570();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
diff --git a/test/tint/builtins/gen/literal/log/f4c570.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/log/f4c570.wgsl.expected.ir.fxc.hlsl
index 0ba40c6..f234f72 100644
--- a/test/tint/builtins/gen/literal/log/f4c570.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/log/f4c570.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,42 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  float3 prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation float3 VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+float3 log_f4c570() {
+  float3 res = (0.0f).xxx;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store3(0u, asuint(log_f4c570()));
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store3(0u, asuint(log_f4c570()));
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = log_f4c570();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
diff --git a/test/tint/builtins/gen/literal/log/f60cc7.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/log/f60cc7.wgsl.expected.ir.dxc.hlsl
index 0ba40c6..00d0098 100644
--- a/test/tint/builtins/gen/literal/log/f60cc7.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/log/f60cc7.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,36 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+void log_f60cc7() {
+  float2 res = (0.0f).xx;
+}
+
+void fragment_main() {
+  log_f60cc7();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  log_f60cc7();
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  log_f60cc7();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  vertex_main_outputs v_2 = {v_1.pos};
+  return v_2;
+}
+
diff --git a/test/tint/builtins/gen/literal/log/f60cc7.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/log/f60cc7.wgsl.expected.ir.fxc.hlsl
index 0ba40c6..00d0098 100644
--- a/test/tint/builtins/gen/literal/log/f60cc7.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/log/f60cc7.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,36 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+void log_f60cc7() {
+  float2 res = (0.0f).xx;
+}
+
+void fragment_main() {
+  log_f60cc7();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  log_f60cc7();
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  log_f60cc7();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  vertex_main_outputs v_2 = {v_1.pos};
+  return v_2;
+}
+
diff --git a/test/tint/builtins/gen/literal/log2/0fbd39.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/log2/0fbd39.wgsl.expected.ir.dxc.hlsl
index 0ba40c6..7ef7b6f 100644
--- a/test/tint/builtins/gen/literal/log2/0fbd39.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/log2/0fbd39.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,36 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+void log2_0fbd39() {
+  float3 res = (0.0f).xxx;
+}
+
+void fragment_main() {
+  log2_0fbd39();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  log2_0fbd39();
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  log2_0fbd39();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  vertex_main_outputs v_2 = {v_1.pos};
+  return v_2;
+}
+
diff --git a/test/tint/builtins/gen/literal/log2/0fbd39.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/log2/0fbd39.wgsl.expected.ir.fxc.hlsl
index 0ba40c6..7ef7b6f 100644
--- a/test/tint/builtins/gen/literal/log2/0fbd39.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/log2/0fbd39.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,36 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+void log2_0fbd39() {
+  float3 res = (0.0f).xxx;
+}
+
+void fragment_main() {
+  log2_0fbd39();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  log2_0fbd39();
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  log2_0fbd39();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  vertex_main_outputs v_2 = {v_1.pos};
+  return v_2;
+}
+
diff --git a/test/tint/builtins/gen/literal/log2/38b478.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/log2/38b478.wgsl.expected.ir.dxc.hlsl
index 0ba40c6..d4ed258 100644
--- a/test/tint/builtins/gen/literal/log2/38b478.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/log2/38b478.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,42 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  vector<float16_t, 3> prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation vector<float16_t, 3> VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+vector<float16_t, 3> log2_38b478() {
+  vector<float16_t, 3> res = (float16_t(0.0h)).xxx;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store<vector<float16_t, 3> >(0u, log2_38b478());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store<vector<float16_t, 3> >(0u, log2_38b478());
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = log2_38b478();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
diff --git a/test/tint/builtins/gen/literal/log2/38b478.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/log2/38b478.wgsl.expected.ir.fxc.hlsl
index 0ba40c6..2936e24 100644
--- a/test/tint/builtins/gen/literal/log2/38b478.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/log2/38b478.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,47 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct VertexOutput {
+  float4 pos;
+  vector<float16_t, 3> prevent_dce;
+};
+
+struct vertex_main_outputs {
+  nointerpolation vector<float16_t, 3> VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+vector<float16_t, 3> log2_38b478() {
+  vector<float16_t, 3> res = (float16_t(0.0h)).xxx;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store<vector<float16_t, 3> >(0u, log2_38b478());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store<vector<float16_t, 3> >(0u, log2_38b478());
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = log2_38b478();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
+FXC validation failure:
+c:\src\dawn\Shader@0x000001A0AA4B0430(3,10-18): error X3000: syntax error: unexpected token 'float16_t'
+
diff --git a/test/tint/builtins/gen/literal/log2/4036ed.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/log2/4036ed.wgsl.expected.ir.dxc.hlsl
index 0ba40c6..77b8fe5 100644
--- a/test/tint/builtins/gen/literal/log2/4036ed.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/log2/4036ed.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,42 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  float prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation float VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+float log2_4036ed() {
+  float res = 0.0f;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store(0u, asuint(log2_4036ed()));
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store(0u, asuint(log2_4036ed()));
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = log2_4036ed();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
diff --git a/test/tint/builtins/gen/literal/log2/4036ed.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/log2/4036ed.wgsl.expected.ir.fxc.hlsl
index 0ba40c6..77b8fe5 100644
--- a/test/tint/builtins/gen/literal/log2/4036ed.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/log2/4036ed.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,42 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  float prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation float VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+float log2_4036ed() {
+  float res = 0.0f;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store(0u, asuint(log2_4036ed()));
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store(0u, asuint(log2_4036ed()));
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = log2_4036ed();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
diff --git a/test/tint/builtins/gen/literal/log2/5b464b.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/log2/5b464b.wgsl.expected.ir.dxc.hlsl
index 0ba40c6..15f49a4 100644
--- a/test/tint/builtins/gen/literal/log2/5b464b.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/log2/5b464b.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,36 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+void log2_5b464b() {
+  float res = 0.0f;
+}
+
+void fragment_main() {
+  log2_5b464b();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  log2_5b464b();
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  log2_5b464b();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  vertex_main_outputs v_2 = {v_1.pos};
+  return v_2;
+}
+
diff --git a/test/tint/builtins/gen/literal/log2/5b464b.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/log2/5b464b.wgsl.expected.ir.fxc.hlsl
index 0ba40c6..15f49a4 100644
--- a/test/tint/builtins/gen/literal/log2/5b464b.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/log2/5b464b.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,36 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+void log2_5b464b() {
+  float res = 0.0f;
+}
+
+void fragment_main() {
+  log2_5b464b();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  log2_5b464b();
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  log2_5b464b();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  vertex_main_outputs v_2 = {v_1.pos};
+  return v_2;
+}
+
diff --git a/test/tint/builtins/gen/literal/log2/6b8954.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/log2/6b8954.wgsl.expected.ir.dxc.hlsl
index 0ba40c6..0401edd 100644
--- a/test/tint/builtins/gen/literal/log2/6b8954.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/log2/6b8954.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,36 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+void log2_6b8954() {
+  float2 res = (0.0f).xx;
+}
+
+void fragment_main() {
+  log2_6b8954();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  log2_6b8954();
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  log2_6b8954();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  vertex_main_outputs v_2 = {v_1.pos};
+  return v_2;
+}
+
diff --git a/test/tint/builtins/gen/literal/log2/6b8954.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/log2/6b8954.wgsl.expected.ir.fxc.hlsl
index 0ba40c6..0401edd 100644
--- a/test/tint/builtins/gen/literal/log2/6b8954.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/log2/6b8954.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,36 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+void log2_6b8954() {
+  float2 res = (0.0f).xx;
+}
+
+void fragment_main() {
+  log2_6b8954();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  log2_6b8954();
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  log2_6b8954();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  vertex_main_outputs v_2 = {v_1.pos};
+  return v_2;
+}
+
diff --git a/test/tint/builtins/gen/literal/log2/776088.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/log2/776088.wgsl.expected.ir.dxc.hlsl
index 0ba40c6..3d75517 100644
--- a/test/tint/builtins/gen/literal/log2/776088.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/log2/776088.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,42 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  vector<float16_t, 4> prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation vector<float16_t, 4> VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+vector<float16_t, 4> log2_776088() {
+  vector<float16_t, 4> res = (float16_t(0.0h)).xxxx;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store<vector<float16_t, 4> >(0u, log2_776088());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store<vector<float16_t, 4> >(0u, log2_776088());
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = log2_776088();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
diff --git a/test/tint/builtins/gen/literal/log2/776088.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/log2/776088.wgsl.expected.ir.fxc.hlsl
index 0ba40c6..7c714d8 100644
--- a/test/tint/builtins/gen/literal/log2/776088.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/log2/776088.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,47 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct VertexOutput {
+  float4 pos;
+  vector<float16_t, 4> prevent_dce;
+};
+
+struct vertex_main_outputs {
+  nointerpolation vector<float16_t, 4> VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+vector<float16_t, 4> log2_776088() {
+  vector<float16_t, 4> res = (float16_t(0.0h)).xxxx;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store<vector<float16_t, 4> >(0u, log2_776088());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store<vector<float16_t, 4> >(0u, log2_776088());
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = log2_776088();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
+FXC validation failure:
+c:\src\dawn\Shader@0x00000246D3B0C300(3,10-18): error X3000: syntax error: unexpected token 'float16_t'
+
diff --git a/test/tint/builtins/gen/literal/log2/8c10b3.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/log2/8c10b3.wgsl.expected.ir.dxc.hlsl
index 0ba40c6..ae9d93c 100644
--- a/test/tint/builtins/gen/literal/log2/8c10b3.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/log2/8c10b3.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,42 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  float16_t prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation float16_t VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+float16_t log2_8c10b3() {
+  float16_t res = float16_t(0.0h);
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store<float16_t>(0u, log2_8c10b3());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store<float16_t>(0u, log2_8c10b3());
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = log2_8c10b3();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
diff --git a/test/tint/builtins/gen/literal/log2/8c10b3.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/log2/8c10b3.wgsl.expected.ir.fxc.hlsl
index 0ba40c6..5e19bf2 100644
--- a/test/tint/builtins/gen/literal/log2/8c10b3.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/log2/8c10b3.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,47 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct VertexOutput {
+  float4 pos;
+  float16_t prevent_dce;
+};
+
+struct vertex_main_outputs {
+  nointerpolation float16_t VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+float16_t log2_8c10b3() {
+  float16_t res = float16_t(0.0h);
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store<float16_t>(0u, log2_8c10b3());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store<float16_t>(0u, log2_8c10b3());
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = log2_8c10b3();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
+FXC validation failure:
+c:\src\dawn\Shader@0x0000012CB4D94FE0(3,3-11): error X3000: unrecognized identifier 'float16_t'
+
diff --git a/test/tint/builtins/gen/literal/log2/902988.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/log2/902988.wgsl.expected.ir.dxc.hlsl
index 0ba40c6..c1881c9 100644
--- a/test/tint/builtins/gen/literal/log2/902988.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/log2/902988.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,42 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  float4 prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation float4 VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+float4 log2_902988() {
+  float4 res = (0.0f).xxxx;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store4(0u, asuint(log2_902988()));
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store4(0u, asuint(log2_902988()));
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = log2_902988();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
diff --git a/test/tint/builtins/gen/literal/log2/902988.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/log2/902988.wgsl.expected.ir.fxc.hlsl
index 0ba40c6..c1881c9 100644
--- a/test/tint/builtins/gen/literal/log2/902988.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/log2/902988.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,42 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  float4 prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation float4 VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+float4 log2_902988() {
+  float4 res = (0.0f).xxxx;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store4(0u, asuint(log2_902988()));
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store4(0u, asuint(log2_902988()));
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = log2_902988();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
diff --git a/test/tint/builtins/gen/literal/log2/a52bbb.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/log2/a52bbb.wgsl.expected.ir.dxc.hlsl
index 0ba40c6..17c5fa6 100644
--- a/test/tint/builtins/gen/literal/log2/a52bbb.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/log2/a52bbb.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,36 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+void log2_a52bbb() {
+  float4 res = (0.0f).xxxx;
+}
+
+void fragment_main() {
+  log2_a52bbb();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  log2_a52bbb();
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  log2_a52bbb();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  vertex_main_outputs v_2 = {v_1.pos};
+  return v_2;
+}
+
diff --git a/test/tint/builtins/gen/literal/log2/a52bbb.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/log2/a52bbb.wgsl.expected.ir.fxc.hlsl
index 0ba40c6..17c5fa6 100644
--- a/test/tint/builtins/gen/literal/log2/a52bbb.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/log2/a52bbb.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,36 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+void log2_a52bbb() {
+  float4 res = (0.0f).xxxx;
+}
+
+void fragment_main() {
+  log2_a52bbb();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  log2_a52bbb();
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  log2_a52bbb();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  vertex_main_outputs v_2 = {v_1.pos};
+  return v_2;
+}
+
diff --git a/test/tint/builtins/gen/literal/log2/adb233.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/log2/adb233.wgsl.expected.ir.dxc.hlsl
index 0ba40c6..7f52fae 100644
--- a/test/tint/builtins/gen/literal/log2/adb233.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/log2/adb233.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,42 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  float3 prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation float3 VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+float3 log2_adb233() {
+  float3 res = (0.0f).xxx;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store3(0u, asuint(log2_adb233()));
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store3(0u, asuint(log2_adb233()));
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = log2_adb233();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
diff --git a/test/tint/builtins/gen/literal/log2/adb233.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/log2/adb233.wgsl.expected.ir.fxc.hlsl
index 0ba40c6..7f52fae 100644
--- a/test/tint/builtins/gen/literal/log2/adb233.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/log2/adb233.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,42 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  float3 prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation float3 VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+float3 log2_adb233() {
+  float3 res = (0.0f).xxx;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store3(0u, asuint(log2_adb233()));
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store3(0u, asuint(log2_adb233()));
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = log2_adb233();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
diff --git a/test/tint/builtins/gen/literal/log2/aea659.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/log2/aea659.wgsl.expected.ir.dxc.hlsl
index 0ba40c6..ac8da23 100644
--- a/test/tint/builtins/gen/literal/log2/aea659.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/log2/aea659.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,42 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  float2 prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation float2 VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+float2 log2_aea659() {
+  float2 res = (0.0f).xx;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store2(0u, asuint(log2_aea659()));
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store2(0u, asuint(log2_aea659()));
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = log2_aea659();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
diff --git a/test/tint/builtins/gen/literal/log2/aea659.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/log2/aea659.wgsl.expected.ir.fxc.hlsl
index 0ba40c6..ac8da23 100644
--- a/test/tint/builtins/gen/literal/log2/aea659.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/log2/aea659.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,42 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  float2 prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation float2 VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+float2 log2_aea659() {
+  float2 res = (0.0f).xx;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store2(0u, asuint(log2_aea659()));
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store2(0u, asuint(log2_aea659()));
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = log2_aea659();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
diff --git a/test/tint/builtins/gen/literal/log2/fb9f0b.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/log2/fb9f0b.wgsl.expected.ir.dxc.hlsl
index 0ba40c6..1782544 100644
--- a/test/tint/builtins/gen/literal/log2/fb9f0b.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/log2/fb9f0b.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,42 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  vector<float16_t, 2> prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation vector<float16_t, 2> VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+vector<float16_t, 2> log2_fb9f0b() {
+  vector<float16_t, 2> res = (float16_t(0.0h)).xx;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store<vector<float16_t, 2> >(0u, log2_fb9f0b());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store<vector<float16_t, 2> >(0u, log2_fb9f0b());
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = log2_fb9f0b();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
diff --git a/test/tint/builtins/gen/literal/log2/fb9f0b.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/log2/fb9f0b.wgsl.expected.ir.fxc.hlsl
index 0ba40c6..9b66710 100644
--- a/test/tint/builtins/gen/literal/log2/fb9f0b.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/log2/fb9f0b.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,47 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct VertexOutput {
+  float4 pos;
+  vector<float16_t, 2> prevent_dce;
+};
+
+struct vertex_main_outputs {
+  nointerpolation vector<float16_t, 2> VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+vector<float16_t, 2> log2_fb9f0b() {
+  vector<float16_t, 2> res = (float16_t(0.0h)).xx;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store<vector<float16_t, 2> >(0u, log2_fb9f0b());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store<vector<float16_t, 2> >(0u, log2_fb9f0b());
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = log2_fb9f0b();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
+FXC validation failure:
+c:\src\dawn\Shader@0x0000020E7938A080(3,10-18): error X3000: syntax error: unexpected token 'float16_t'
+
diff --git a/test/tint/builtins/gen/literal/max/067f3a.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/max/067f3a.wgsl.expected.ir.dxc.hlsl
index 0ba40c6..fc38769 100644
--- a/test/tint/builtins/gen/literal/max/067f3a.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/max/067f3a.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,36 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+void max_067f3a() {
+  int2 res = (1).xx;
+}
+
+void fragment_main() {
+  max_067f3a();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  max_067f3a();
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  max_067f3a();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  vertex_main_outputs v_2 = {v_1.pos};
+  return v_2;
+}
+
diff --git a/test/tint/builtins/gen/literal/max/067f3a.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/max/067f3a.wgsl.expected.ir.fxc.hlsl
index 0ba40c6..fc38769 100644
--- a/test/tint/builtins/gen/literal/max/067f3a.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/max/067f3a.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,36 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+void max_067f3a() {
+  int2 res = (1).xx;
+}
+
+void fragment_main() {
+  max_067f3a();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  max_067f3a();
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  max_067f3a();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  vertex_main_outputs v_2 = {v_1.pos};
+  return v_2;
+}
+
diff --git a/test/tint/builtins/gen/literal/max/0c0aae.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/max/0c0aae.wgsl.expected.ir.dxc.hlsl
index 0ba40c6..2ac3b87 100644
--- a/test/tint/builtins/gen/literal/max/0c0aae.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/max/0c0aae.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,42 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  uint prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation uint VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+uint max_0c0aae() {
+  uint res = 1u;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store(0u, max_0c0aae());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store(0u, max_0c0aae());
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = max_0c0aae();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
diff --git a/test/tint/builtins/gen/literal/max/0c0aae.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/max/0c0aae.wgsl.expected.ir.fxc.hlsl
index 0ba40c6..2ac3b87 100644
--- a/test/tint/builtins/gen/literal/max/0c0aae.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/max/0c0aae.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,42 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  uint prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation uint VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+uint max_0c0aae() {
+  uint res = 1u;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store(0u, max_0c0aae());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store(0u, max_0c0aae());
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = max_0c0aae();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
diff --git a/test/tint/builtins/gen/literal/max/111ac0.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/max/111ac0.wgsl.expected.ir.dxc.hlsl
index 0ba40c6..8b935f6 100644
--- a/test/tint/builtins/gen/literal/max/111ac0.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/max/111ac0.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,42 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  float16_t prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation float16_t VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+float16_t max_111ac0() {
+  float16_t res = float16_t(1.0h);
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store<float16_t>(0u, max_111ac0());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store<float16_t>(0u, max_111ac0());
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = max_111ac0();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
diff --git a/test/tint/builtins/gen/literal/max/111ac0.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/max/111ac0.wgsl.expected.ir.fxc.hlsl
index 0ba40c6..300c2a5 100644
--- a/test/tint/builtins/gen/literal/max/111ac0.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/max/111ac0.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,47 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct VertexOutput {
+  float4 pos;
+  float16_t prevent_dce;
+};
+
+struct vertex_main_outputs {
+  nointerpolation float16_t VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+float16_t max_111ac0() {
+  float16_t res = float16_t(1.0h);
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store<float16_t>(0u, max_111ac0());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store<float16_t>(0u, max_111ac0());
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = max_111ac0();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
+FXC validation failure:
+c:\src\dawn\Shader@0x000001BE8A8B3550(3,3-11): error X3000: unrecognized identifier 'float16_t'
+
diff --git a/test/tint/builtins/gen/literal/max/19070a.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/max/19070a.wgsl.expected.ir.dxc.hlsl
index 0ba40c6..7c5a50e 100644
--- a/test/tint/builtins/gen/literal/max/19070a.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/max/19070a.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,36 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+void max_19070a() {
+  int4 res = (1).xxxx;
+}
+
+void fragment_main() {
+  max_19070a();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  max_19070a();
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  max_19070a();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  vertex_main_outputs v_2 = {v_1.pos};
+  return v_2;
+}
+
diff --git a/test/tint/builtins/gen/literal/max/19070a.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/max/19070a.wgsl.expected.ir.fxc.hlsl
index 0ba40c6..7c5a50e 100644
--- a/test/tint/builtins/gen/literal/max/19070a.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/max/19070a.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,36 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+void max_19070a() {
+  int4 res = (1).xxxx;
+}
+
+void fragment_main() {
+  max_19070a();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  max_19070a();
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  max_19070a();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  vertex_main_outputs v_2 = {v_1.pos};
+  return v_2;
+}
+
diff --git a/test/tint/builtins/gen/literal/max/25eafe.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/max/25eafe.wgsl.expected.ir.dxc.hlsl
index 0ba40c6..320bca7 100644
--- a/test/tint/builtins/gen/literal/max/25eafe.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/max/25eafe.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,42 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  int3 prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation int3 VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+int3 max_25eafe() {
+  int3 res = (1).xxx;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store3(0u, asuint(max_25eafe()));
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store3(0u, asuint(max_25eafe()));
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = max_25eafe();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
diff --git a/test/tint/builtins/gen/literal/max/25eafe.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/max/25eafe.wgsl.expected.ir.fxc.hlsl
index 0ba40c6..320bca7 100644
--- a/test/tint/builtins/gen/literal/max/25eafe.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/max/25eafe.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,42 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  int3 prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation int3 VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+int3 max_25eafe() {
+  int3 res = (1).xxx;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store3(0u, asuint(max_25eafe()));
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store3(0u, asuint(max_25eafe()));
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = max_25eafe();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
diff --git a/test/tint/builtins/gen/literal/max/320815.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/max/320815.wgsl.expected.ir.dxc.hlsl
index 0ba40c6..aacc853 100644
--- a/test/tint/builtins/gen/literal/max/320815.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/max/320815.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,42 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  uint2 prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation uint2 VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+uint2 max_320815() {
+  uint2 res = (1u).xx;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store2(0u, max_320815());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store2(0u, max_320815());
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = max_320815();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
diff --git a/test/tint/builtins/gen/literal/max/320815.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/max/320815.wgsl.expected.ir.fxc.hlsl
index 0ba40c6..aacc853 100644
--- a/test/tint/builtins/gen/literal/max/320815.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/max/320815.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,42 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  uint2 prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation uint2 VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+uint2 max_320815() {
+  uint2 res = (1u).xx;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store2(0u, max_320815());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store2(0u, max_320815());
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = max_320815();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
diff --git a/test/tint/builtins/gen/literal/max/34956e.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/max/34956e.wgsl.expected.ir.dxc.hlsl
index 0ba40c6..574719e 100644
--- a/test/tint/builtins/gen/literal/max/34956e.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/max/34956e.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,42 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  vector<float16_t, 2> prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation vector<float16_t, 2> VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+vector<float16_t, 2> max_34956e() {
+  vector<float16_t, 2> res = (float16_t(1.0h)).xx;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store<vector<float16_t, 2> >(0u, max_34956e());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store<vector<float16_t, 2> >(0u, max_34956e());
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = max_34956e();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
diff --git a/test/tint/builtins/gen/literal/max/34956e.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/max/34956e.wgsl.expected.ir.fxc.hlsl
index 0ba40c6..fdea87a 100644
--- a/test/tint/builtins/gen/literal/max/34956e.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/max/34956e.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,47 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct VertexOutput {
+  float4 pos;
+  vector<float16_t, 2> prevent_dce;
+};
+
+struct vertex_main_outputs {
+  nointerpolation vector<float16_t, 2> VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+vector<float16_t, 2> max_34956e() {
+  vector<float16_t, 2> res = (float16_t(1.0h)).xx;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store<vector<float16_t, 2> >(0u, max_34956e());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store<vector<float16_t, 2> >(0u, max_34956e());
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = max_34956e();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
+FXC validation failure:
+c:\src\dawn\Shader@0x0000026130A87A20(3,10-18): error X3000: syntax error: unexpected token 'float16_t'
+
diff --git a/test/tint/builtins/gen/literal/max/445169.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/max/445169.wgsl.expected.ir.dxc.hlsl
index 0ba40c6..be633c0 100644
--- a/test/tint/builtins/gen/literal/max/445169.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/max/445169.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,42 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  vector<float16_t, 3> prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation vector<float16_t, 3> VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+vector<float16_t, 3> max_445169() {
+  vector<float16_t, 3> res = (float16_t(1.0h)).xxx;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store<vector<float16_t, 3> >(0u, max_445169());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store<vector<float16_t, 3> >(0u, max_445169());
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = max_445169();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
diff --git a/test/tint/builtins/gen/literal/max/445169.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/max/445169.wgsl.expected.ir.fxc.hlsl
index 0ba40c6..6024b4a 100644
--- a/test/tint/builtins/gen/literal/max/445169.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/max/445169.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,47 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct VertexOutput {
+  float4 pos;
+  vector<float16_t, 3> prevent_dce;
+};
+
+struct vertex_main_outputs {
+  nointerpolation vector<float16_t, 3> VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+vector<float16_t, 3> max_445169() {
+  vector<float16_t, 3> res = (float16_t(1.0h)).xxx;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store<vector<float16_t, 3> >(0u, max_445169());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store<vector<float16_t, 3> >(0u, max_445169());
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = max_445169();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
+FXC validation failure:
+c:\src\dawn\Shader@0x000001D3275CCE60(3,10-18): error X3000: syntax error: unexpected token 'float16_t'
+
diff --git a/test/tint/builtins/gen/literal/max/44a39d.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/max/44a39d.wgsl.expected.ir.dxc.hlsl
index 0ba40c6..c2a3b3b 100644
--- a/test/tint/builtins/gen/literal/max/44a39d.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/max/44a39d.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,42 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  float prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation float VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+float max_44a39d() {
+  float res = 1.0f;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store(0u, asuint(max_44a39d()));
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store(0u, asuint(max_44a39d()));
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = max_44a39d();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
diff --git a/test/tint/builtins/gen/literal/max/44a39d.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/max/44a39d.wgsl.expected.ir.fxc.hlsl
index 0ba40c6..c2a3b3b 100644
--- a/test/tint/builtins/gen/literal/max/44a39d.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/max/44a39d.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,42 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  float prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation float VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+float max_44a39d() {
+  float res = 1.0f;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store(0u, asuint(max_44a39d()));
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store(0u, asuint(max_44a39d()));
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = max_44a39d();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
diff --git a/test/tint/builtins/gen/literal/max/453e04.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/max/453e04.wgsl.expected.ir.dxc.hlsl
index 0ba40c6..01eaa88 100644
--- a/test/tint/builtins/gen/literal/max/453e04.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/max/453e04.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,42 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  uint4 prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation uint4 VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+uint4 max_453e04() {
+  uint4 res = (1u).xxxx;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store4(0u, max_453e04());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store4(0u, max_453e04());
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = max_453e04();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
diff --git a/test/tint/builtins/gen/literal/max/453e04.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/max/453e04.wgsl.expected.ir.fxc.hlsl
index 0ba40c6..01eaa88 100644
--- a/test/tint/builtins/gen/literal/max/453e04.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/max/453e04.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,42 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  uint4 prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation uint4 VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+uint4 max_453e04() {
+  uint4 res = (1u).xxxx;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store4(0u, max_453e04());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store4(0u, max_453e04());
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = max_453e04();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
diff --git a/test/tint/builtins/gen/literal/max/462050.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/max/462050.wgsl.expected.ir.dxc.hlsl
index 0ba40c6..7c31418 100644
--- a/test/tint/builtins/gen/literal/max/462050.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/max/462050.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,42 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  float2 prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation float2 VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+float2 max_462050() {
+  float2 res = (1.0f).xx;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store2(0u, asuint(max_462050()));
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store2(0u, asuint(max_462050()));
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = max_462050();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
diff --git a/test/tint/builtins/gen/literal/max/462050.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/max/462050.wgsl.expected.ir.fxc.hlsl
index 0ba40c6..7c31418 100644
--- a/test/tint/builtins/gen/literal/max/462050.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/max/462050.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,42 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  float2 prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation float2 VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+float2 max_462050() {
+  float2 res = (1.0f).xx;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store2(0u, asuint(max_462050()));
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store2(0u, asuint(max_462050()));
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = max_462050();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
diff --git a/test/tint/builtins/gen/literal/max/482d23.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/max/482d23.wgsl.expected.ir.dxc.hlsl
index 0ba40c6..8e836d3 100644
--- a/test/tint/builtins/gen/literal/max/482d23.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/max/482d23.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,36 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+void max_482d23() {
+  int3 res = (1).xxx;
+}
+
+void fragment_main() {
+  max_482d23();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  max_482d23();
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  max_482d23();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  vertex_main_outputs v_2 = {v_1.pos};
+  return v_2;
+}
+
diff --git a/test/tint/builtins/gen/literal/max/482d23.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/max/482d23.wgsl.expected.ir.fxc.hlsl
index 0ba40c6..8e836d3 100644
--- a/test/tint/builtins/gen/literal/max/482d23.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/max/482d23.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,36 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+void max_482d23() {
+  int3 res = (1).xxx;
+}
+
+void fragment_main() {
+  max_482d23();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  max_482d23();
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  max_482d23();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  vertex_main_outputs v_2 = {v_1.pos};
+  return v_2;
+}
+
diff --git a/test/tint/builtins/gen/literal/max/4883ac.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/max/4883ac.wgsl.expected.ir.dxc.hlsl
index 0ba40c6..adcf0a7 100644
--- a/test/tint/builtins/gen/literal/max/4883ac.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/max/4883ac.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,42 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  float3 prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation float3 VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+float3 max_4883ac() {
+  float3 res = (1.0f).xxx;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store3(0u, asuint(max_4883ac()));
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store3(0u, asuint(max_4883ac()));
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = max_4883ac();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
diff --git a/test/tint/builtins/gen/literal/max/4883ac.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/max/4883ac.wgsl.expected.ir.fxc.hlsl
index 0ba40c6..adcf0a7 100644
--- a/test/tint/builtins/gen/literal/max/4883ac.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/max/4883ac.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,42 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  float3 prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation float3 VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+float3 max_4883ac() {
+  float3 res = (1.0f).xxx;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store3(0u, asuint(max_4883ac()));
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store3(0u, asuint(max_4883ac()));
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = max_4883ac();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
diff --git a/test/tint/builtins/gen/literal/max/4bbff2.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/max/4bbff2.wgsl.expected.ir.dxc.hlsl
index 0ba40c6..7d5299f 100644
--- a/test/tint/builtins/gen/literal/max/4bbff2.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/max/4bbff2.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,36 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+void max_4bbff2() {
+  float4 res = (1.0f).xxxx;
+}
+
+void fragment_main() {
+  max_4bbff2();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  max_4bbff2();
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  max_4bbff2();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  vertex_main_outputs v_2 = {v_1.pos};
+  return v_2;
+}
+
diff --git a/test/tint/builtins/gen/literal/max/4bbff2.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/max/4bbff2.wgsl.expected.ir.fxc.hlsl
index 0ba40c6..7d5299f 100644
--- a/test/tint/builtins/gen/literal/max/4bbff2.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/max/4bbff2.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,36 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+void max_4bbff2() {
+  float4 res = (1.0f).xxxx;
+}
+
+void fragment_main() {
+  max_4bbff2();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  max_4bbff2();
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  max_4bbff2();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  vertex_main_outputs v_2 = {v_1.pos};
+  return v_2;
+}
+
diff --git a/test/tint/builtins/gen/literal/max/85e6bc.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/max/85e6bc.wgsl.expected.ir.dxc.hlsl
index 0ba40c6..88db53b 100644
--- a/test/tint/builtins/gen/literal/max/85e6bc.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/max/85e6bc.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,42 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  int4 prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation int4 VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+int4 max_85e6bc() {
+  int4 res = (1).xxxx;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store4(0u, asuint(max_85e6bc()));
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store4(0u, asuint(max_85e6bc()));
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = max_85e6bc();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
diff --git a/test/tint/builtins/gen/literal/max/85e6bc.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/max/85e6bc.wgsl.expected.ir.fxc.hlsl
index 0ba40c6..88db53b 100644
--- a/test/tint/builtins/gen/literal/max/85e6bc.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/max/85e6bc.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,42 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  int4 prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation int4 VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+int4 max_85e6bc() {
+  int4 res = (1).xxxx;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store4(0u, asuint(max_85e6bc()));
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store4(0u, asuint(max_85e6bc()));
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = max_85e6bc();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
diff --git a/test/tint/builtins/gen/literal/max/a1b196.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/max/a1b196.wgsl.expected.ir.dxc.hlsl
index 0ba40c6..28027b2 100644
--- a/test/tint/builtins/gen/literal/max/a1b196.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/max/a1b196.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,36 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+void max_a1b196() {
+  float3 res = (1.0f).xxx;
+}
+
+void fragment_main() {
+  max_a1b196();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  max_a1b196();
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  max_a1b196();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  vertex_main_outputs v_2 = {v_1.pos};
+  return v_2;
+}
+
diff --git a/test/tint/builtins/gen/literal/max/a1b196.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/max/a1b196.wgsl.expected.ir.fxc.hlsl
index 0ba40c6..28027b2 100644
--- a/test/tint/builtins/gen/literal/max/a1b196.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/max/a1b196.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,36 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+void max_a1b196() {
+  float3 res = (1.0f).xxx;
+}
+
+void fragment_main() {
+  max_a1b196();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  max_a1b196();
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  max_a1b196();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  vertex_main_outputs v_2 = {v_1.pos};
+  return v_2;
+}
+
diff --git a/test/tint/builtins/gen/literal/max/a93419.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/max/a93419.wgsl.expected.ir.dxc.hlsl
index 0ba40c6..089d4c5 100644
--- a/test/tint/builtins/gen/literal/max/a93419.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/max/a93419.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,42 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  float4 prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation float4 VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+float4 max_a93419() {
+  float4 res = (1.0f).xxxx;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store4(0u, asuint(max_a93419()));
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store4(0u, asuint(max_a93419()));
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = max_a93419();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
diff --git a/test/tint/builtins/gen/literal/max/a93419.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/max/a93419.wgsl.expected.ir.fxc.hlsl
index 0ba40c6..089d4c5 100644
--- a/test/tint/builtins/gen/literal/max/a93419.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/max/a93419.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,42 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  float4 prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation float4 VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+float4 max_a93419() {
+  float4 res = (1.0f).xxxx;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store4(0u, asuint(max_a93419()));
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store4(0u, asuint(max_a93419()));
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = max_a93419();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
diff --git a/test/tint/builtins/gen/literal/max/b1b73a.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/max/b1b73a.wgsl.expected.ir.dxc.hlsl
index 0ba40c6..188c5d9 100644
--- a/test/tint/builtins/gen/literal/max/b1b73a.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/max/b1b73a.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,42 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  uint3 prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation uint3 VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+uint3 max_b1b73a() {
+  uint3 res = (1u).xxx;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store3(0u, max_b1b73a());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store3(0u, max_b1b73a());
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = max_b1b73a();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
diff --git a/test/tint/builtins/gen/literal/max/b1b73a.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/max/b1b73a.wgsl.expected.ir.fxc.hlsl
index 0ba40c6..188c5d9 100644
--- a/test/tint/builtins/gen/literal/max/b1b73a.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/max/b1b73a.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,42 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  uint3 prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation uint3 VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+uint3 max_b1b73a() {
+  uint3 res = (1u).xxx;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store3(0u, max_b1b73a());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store3(0u, max_b1b73a());
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = max_b1b73a();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
diff --git a/test/tint/builtins/gen/literal/max/c023dd.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/max/c023dd.wgsl.expected.ir.dxc.hlsl
index 0ba40c6..575425c 100644
--- a/test/tint/builtins/gen/literal/max/c023dd.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/max/c023dd.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,36 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+void max_c023dd() {
+  float res = 1.0f;
+}
+
+void fragment_main() {
+  max_c023dd();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  max_c023dd();
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  max_c023dd();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  vertex_main_outputs v_2 = {v_1.pos};
+  return v_2;
+}
+
diff --git a/test/tint/builtins/gen/literal/max/c023dd.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/max/c023dd.wgsl.expected.ir.fxc.hlsl
index 0ba40c6..575425c 100644
--- a/test/tint/builtins/gen/literal/max/c023dd.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/max/c023dd.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,36 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+void max_c023dd() {
+  float res = 1.0f;
+}
+
+void fragment_main() {
+  max_c023dd();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  max_c023dd();
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  max_c023dd();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  vertex_main_outputs v_2 = {v_1.pos};
+  return v_2;
+}
+
diff --git a/test/tint/builtins/gen/literal/max/caa3d7.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/max/caa3d7.wgsl.expected.ir.dxc.hlsl
index 0ba40c6..d4fea1f 100644
--- a/test/tint/builtins/gen/literal/max/caa3d7.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/max/caa3d7.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,36 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+void max_caa3d7() {
+  int res = 1;
+}
+
+void fragment_main() {
+  max_caa3d7();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  max_caa3d7();
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  max_caa3d7();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  vertex_main_outputs v_2 = {v_1.pos};
+  return v_2;
+}
+
diff --git a/test/tint/builtins/gen/literal/max/caa3d7.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/max/caa3d7.wgsl.expected.ir.fxc.hlsl
index 0ba40c6..d4fea1f 100644
--- a/test/tint/builtins/gen/literal/max/caa3d7.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/max/caa3d7.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,36 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+void max_caa3d7() {
+  int res = 1;
+}
+
+void fragment_main() {
+  max_caa3d7();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  max_caa3d7();
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  max_caa3d7();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  vertex_main_outputs v_2 = {v_1.pos};
+  return v_2;
+}
+
diff --git a/test/tint/builtins/gen/literal/max/ce7c30.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/max/ce7c30.wgsl.expected.ir.dxc.hlsl
index 0ba40c6..3101eaa 100644
--- a/test/tint/builtins/gen/literal/max/ce7c30.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/max/ce7c30.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,42 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  int prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation int VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+int max_ce7c30() {
+  int res = 1;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store(0u, asuint(max_ce7c30()));
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store(0u, asuint(max_ce7c30()));
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = max_ce7c30();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
diff --git a/test/tint/builtins/gen/literal/max/ce7c30.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/max/ce7c30.wgsl.expected.ir.fxc.hlsl
index 0ba40c6..3101eaa 100644
--- a/test/tint/builtins/gen/literal/max/ce7c30.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/max/ce7c30.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,42 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  int prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation int VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+int max_ce7c30() {
+  int res = 1;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store(0u, asuint(max_ce7c30()));
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store(0u, asuint(max_ce7c30()));
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = max_ce7c30();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
diff --git a/test/tint/builtins/gen/literal/max/de6b87.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/max/de6b87.wgsl.expected.ir.dxc.hlsl
index 0ba40c6..10f05770 100644
--- a/test/tint/builtins/gen/literal/max/de6b87.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/max/de6b87.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,36 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+void max_de6b87() {
+  float2 res = (1.0f).xx;
+}
+
+void fragment_main() {
+  max_de6b87();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  max_de6b87();
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  max_de6b87();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  vertex_main_outputs v_2 = {v_1.pos};
+  return v_2;
+}
+
diff --git a/test/tint/builtins/gen/literal/max/de6b87.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/max/de6b87.wgsl.expected.ir.fxc.hlsl
index 0ba40c6..10f05770 100644
--- a/test/tint/builtins/gen/literal/max/de6b87.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/max/de6b87.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,36 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+void max_de6b87() {
+  float2 res = (1.0f).xx;
+}
+
+void fragment_main() {
+  max_de6b87();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  max_de6b87();
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  max_de6b87();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  vertex_main_outputs v_2 = {v_1.pos};
+  return v_2;
+}
+
diff --git a/test/tint/builtins/gen/literal/max/e14f2b.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/max/e14f2b.wgsl.expected.ir.dxc.hlsl
index 0ba40c6..f76c478 100644
--- a/test/tint/builtins/gen/literal/max/e14f2b.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/max/e14f2b.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,42 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  vector<float16_t, 4> prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation vector<float16_t, 4> VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+vector<float16_t, 4> max_e14f2b() {
+  vector<float16_t, 4> res = (float16_t(1.0h)).xxxx;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store<vector<float16_t, 4> >(0u, max_e14f2b());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store<vector<float16_t, 4> >(0u, max_e14f2b());
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = max_e14f2b();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
diff --git a/test/tint/builtins/gen/literal/max/e14f2b.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/max/e14f2b.wgsl.expected.ir.fxc.hlsl
index 0ba40c6..dbcbf68 100644
--- a/test/tint/builtins/gen/literal/max/e14f2b.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/max/e14f2b.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,47 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct VertexOutput {
+  float4 pos;
+  vector<float16_t, 4> prevent_dce;
+};
+
+struct vertex_main_outputs {
+  nointerpolation vector<float16_t, 4> VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+vector<float16_t, 4> max_e14f2b() {
+  vector<float16_t, 4> res = (float16_t(1.0h)).xxxx;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store<vector<float16_t, 4> >(0u, max_e14f2b());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store<vector<float16_t, 4> >(0u, max_e14f2b());
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = max_e14f2b();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
+FXC validation failure:
+c:\src\dawn\Shader@0x0000014758BE9F10(3,10-18): error X3000: syntax error: unexpected token 'float16_t'
+
diff --git a/test/tint/builtins/gen/literal/max/e8192f.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/max/e8192f.wgsl.expected.ir.dxc.hlsl
index 0ba40c6..5b36e52 100644
--- a/test/tint/builtins/gen/literal/max/e8192f.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/max/e8192f.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,42 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  int2 prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation int2 VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+int2 max_e8192f() {
+  int2 res = (1).xx;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store2(0u, asuint(max_e8192f()));
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store2(0u, asuint(max_e8192f()));
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = max_e8192f();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
diff --git a/test/tint/builtins/gen/literal/max/e8192f.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/max/e8192f.wgsl.expected.ir.fxc.hlsl
index 0ba40c6..5b36e52 100644
--- a/test/tint/builtins/gen/literal/max/e8192f.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/max/e8192f.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,42 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  int2 prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation int2 VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+int2 max_e8192f() {
+  int2 res = (1).xx;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store2(0u, asuint(max_e8192f()));
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store2(0u, asuint(max_e8192f()));
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = max_e8192f();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
diff --git a/test/tint/builtins/gen/literal/min/03c7e3.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/min/03c7e3.wgsl.expected.ir.dxc.hlsl
index 0ba40c6..4c98eda 100644
--- a/test/tint/builtins/gen/literal/min/03c7e3.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/min/03c7e3.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,42 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  int2 prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation int2 VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+int2 min_03c7e3() {
+  int2 res = (1).xx;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store2(0u, asuint(min_03c7e3()));
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store2(0u, asuint(min_03c7e3()));
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = min_03c7e3();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
diff --git a/test/tint/builtins/gen/literal/min/03c7e3.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/min/03c7e3.wgsl.expected.ir.fxc.hlsl
index 0ba40c6..4c98eda 100644
--- a/test/tint/builtins/gen/literal/min/03c7e3.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/min/03c7e3.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,42 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  int2 prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation int2 VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+int2 min_03c7e3() {
+  int2 res = (1).xx;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store2(0u, asuint(min_03c7e3()));
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store2(0u, asuint(min_03c7e3()));
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = min_03c7e3();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
diff --git a/test/tint/builtins/gen/literal/min/0dc614.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/min/0dc614.wgsl.expected.ir.dxc.hlsl
index 0ba40c6..0c73637 100644
--- a/test/tint/builtins/gen/literal/min/0dc614.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/min/0dc614.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,42 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  uint4 prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation uint4 VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+uint4 min_0dc614() {
+  uint4 res = (1u).xxxx;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store4(0u, min_0dc614());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store4(0u, min_0dc614());
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = min_0dc614();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
diff --git a/test/tint/builtins/gen/literal/min/0dc614.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/min/0dc614.wgsl.expected.ir.fxc.hlsl
index 0ba40c6..0c73637 100644
--- a/test/tint/builtins/gen/literal/min/0dc614.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/min/0dc614.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,42 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  uint4 prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation uint4 VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+uint4 min_0dc614() {
+  uint4 res = (1u).xxxx;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store4(0u, min_0dc614());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store4(0u, min_0dc614());
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = min_0dc614();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
diff --git a/test/tint/builtins/gen/literal/min/364910.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/min/364910.wgsl.expected.ir.dxc.hlsl
index 0ba40c6..2743e96 100644
--- a/test/tint/builtins/gen/literal/min/364910.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/min/364910.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,36 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+void min_364910() {
+  float3 res = (1.0f).xxx;
+}
+
+void fragment_main() {
+  min_364910();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  min_364910();
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  min_364910();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  vertex_main_outputs v_2 = {v_1.pos};
+  return v_2;
+}
+
diff --git a/test/tint/builtins/gen/literal/min/364910.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/min/364910.wgsl.expected.ir.fxc.hlsl
index 0ba40c6..2743e96 100644
--- a/test/tint/builtins/gen/literal/min/364910.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/min/364910.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,36 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+void min_364910() {
+  float3 res = (1.0f).xxx;
+}
+
+void fragment_main() {
+  min_364910();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  min_364910();
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  min_364910();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  vertex_main_outputs v_2 = {v_1.pos};
+  return v_2;
+}
+
diff --git a/test/tint/builtins/gen/literal/min/371bd6.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/min/371bd6.wgsl.expected.ir.dxc.hlsl
index 0ba40c6..a31c957 100644
--- a/test/tint/builtins/gen/literal/min/371bd6.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/min/371bd6.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,36 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+void min_371bd6() {
+  int3 res = (1).xxx;
+}
+
+void fragment_main() {
+  min_371bd6();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  min_371bd6();
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  min_371bd6();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  vertex_main_outputs v_2 = {v_1.pos};
+  return v_2;
+}
+
diff --git a/test/tint/builtins/gen/literal/min/371bd6.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/min/371bd6.wgsl.expected.ir.fxc.hlsl
index 0ba40c6..a31c957 100644
--- a/test/tint/builtins/gen/literal/min/371bd6.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/min/371bd6.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,36 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+void min_371bd6() {
+  int3 res = (1).xxx;
+}
+
+void fragment_main() {
+  min_371bd6();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  min_371bd6();
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  min_371bd6();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  vertex_main_outputs v_2 = {v_1.pos};
+  return v_2;
+}
+
diff --git a/test/tint/builtins/gen/literal/min/3941e1.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/min/3941e1.wgsl.expected.ir.dxc.hlsl
index 0ba40c6..dc33384 100644
--- a/test/tint/builtins/gen/literal/min/3941e1.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/min/3941e1.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,42 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  int4 prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation int4 VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+int4 min_3941e1() {
+  int4 res = (1).xxxx;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store4(0u, asuint(min_3941e1()));
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store4(0u, asuint(min_3941e1()));
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = min_3941e1();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
diff --git a/test/tint/builtins/gen/literal/min/3941e1.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/min/3941e1.wgsl.expected.ir.fxc.hlsl
index 0ba40c6..dc33384 100644
--- a/test/tint/builtins/gen/literal/min/3941e1.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/min/3941e1.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,42 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  int4 prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation int4 VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+int4 min_3941e1() {
+  int4 res = (1).xxxx;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store4(0u, asuint(min_3941e1()));
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store4(0u, asuint(min_3941e1()));
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = min_3941e1();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
diff --git a/test/tint/builtins/gen/literal/min/46c5d3.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/min/46c5d3.wgsl.expected.ir.dxc.hlsl
index 0ba40c6..8b8957a 100644
--- a/test/tint/builtins/gen/literal/min/46c5d3.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/min/46c5d3.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,42 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  uint prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation uint VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+uint min_46c5d3() {
+  uint res = 1u;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store(0u, min_46c5d3());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store(0u, min_46c5d3());
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = min_46c5d3();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
diff --git a/test/tint/builtins/gen/literal/min/46c5d3.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/min/46c5d3.wgsl.expected.ir.fxc.hlsl
index 0ba40c6..8b8957a 100644
--- a/test/tint/builtins/gen/literal/min/46c5d3.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/min/46c5d3.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,42 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  uint prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation uint VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+uint min_46c5d3() {
+  uint res = 1u;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store(0u, min_46c5d3());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store(0u, min_46c5d3());
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = min_46c5d3();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
diff --git a/test/tint/builtins/gen/literal/min/527b79.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/min/527b79.wgsl.expected.ir.dxc.hlsl
index 0ba40c6..5f73bc0 100644
--- a/test/tint/builtins/gen/literal/min/527b79.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/min/527b79.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,36 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+void min_527b79() {
+  int2 res = (1).xx;
+}
+
+void fragment_main() {
+  min_527b79();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  min_527b79();
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  min_527b79();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  vertex_main_outputs v_2 = {v_1.pos};
+  return v_2;
+}
+
diff --git a/test/tint/builtins/gen/literal/min/527b79.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/min/527b79.wgsl.expected.ir.fxc.hlsl
index 0ba40c6..5f73bc0 100644
--- a/test/tint/builtins/gen/literal/min/527b79.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/min/527b79.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,36 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+void min_527b79() {
+  int2 res = (1).xx;
+}
+
+void fragment_main() {
+  min_527b79();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  min_527b79();
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  min_527b79();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  vertex_main_outputs v_2 = {v_1.pos};
+  return v_2;
+}
+
diff --git a/test/tint/builtins/gen/literal/min/717257.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/min/717257.wgsl.expected.ir.dxc.hlsl
index 0ba40c6..3b311e6 100644
--- a/test/tint/builtins/gen/literal/min/717257.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/min/717257.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,36 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+void min_717257() {
+  float2 res = (1.0f).xx;
+}
+
+void fragment_main() {
+  min_717257();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  min_717257();
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  min_717257();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  vertex_main_outputs v_2 = {v_1.pos};
+  return v_2;
+}
+
diff --git a/test/tint/builtins/gen/literal/min/717257.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/min/717257.wgsl.expected.ir.fxc.hlsl
index 0ba40c6..3b311e6 100644
--- a/test/tint/builtins/gen/literal/min/717257.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/min/717257.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,36 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+void min_717257() {
+  float2 res = (1.0f).xx;
+}
+
+void fragment_main() {
+  min_717257();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  min_717257();
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  min_717257();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  vertex_main_outputs v_2 = {v_1.pos};
+  return v_2;
+}
+
diff --git a/test/tint/builtins/gen/literal/min/794711.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/min/794711.wgsl.expected.ir.dxc.hlsl
index 0ba40c6..ffd1300 100644
--- a/test/tint/builtins/gen/literal/min/794711.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/min/794711.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,36 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+void min_794711() {
+  float res = 1.0f;
+}
+
+void fragment_main() {
+  min_794711();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  min_794711();
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  min_794711();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  vertex_main_outputs v_2 = {v_1.pos};
+  return v_2;
+}
+
diff --git a/test/tint/builtins/gen/literal/min/794711.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/min/794711.wgsl.expected.ir.fxc.hlsl
index 0ba40c6..ffd1300 100644
--- a/test/tint/builtins/gen/literal/min/794711.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/min/794711.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,36 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+void min_794711() {
+  float res = 1.0f;
+}
+
+void fragment_main() {
+  min_794711();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  min_794711();
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  min_794711();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  vertex_main_outputs v_2 = {v_1.pos};
+  return v_2;
+}
+
diff --git a/test/tint/builtins/gen/literal/min/7c710a.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/min/7c710a.wgsl.expected.ir.dxc.hlsl
index 0ba40c6..44ff7fc 100644
--- a/test/tint/builtins/gen/literal/min/7c710a.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/min/7c710a.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,42 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  vector<float16_t, 4> prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation vector<float16_t, 4> VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+vector<float16_t, 4> min_7c710a() {
+  vector<float16_t, 4> res = (float16_t(1.0h)).xxxx;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store<vector<float16_t, 4> >(0u, min_7c710a());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store<vector<float16_t, 4> >(0u, min_7c710a());
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = min_7c710a();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
diff --git a/test/tint/builtins/gen/literal/min/7c710a.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/min/7c710a.wgsl.expected.ir.fxc.hlsl
index 0ba40c6..37b1c73 100644
--- a/test/tint/builtins/gen/literal/min/7c710a.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/min/7c710a.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,47 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct VertexOutput {
+  float4 pos;
+  vector<float16_t, 4> prevent_dce;
+};
+
+struct vertex_main_outputs {
+  nointerpolation vector<float16_t, 4> VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+vector<float16_t, 4> min_7c710a() {
+  vector<float16_t, 4> res = (float16_t(1.0h)).xxxx;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store<vector<float16_t, 4> >(0u, min_7c710a());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store<vector<float16_t, 4> >(0u, min_7c710a());
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = min_7c710a();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
+FXC validation failure:
+c:\src\dawn\Shader@0x000001F6ECF70450(3,10-18): error X3000: syntax error: unexpected token 'float16_t'
+
diff --git a/test/tint/builtins/gen/literal/min/82b28f.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/min/82b28f.wgsl.expected.ir.dxc.hlsl
index 0ba40c6..ddcd6fa 100644
--- a/test/tint/builtins/gen/literal/min/82b28f.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/min/82b28f.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,42 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  uint2 prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation uint2 VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+uint2 min_82b28f() {
+  uint2 res = (1u).xx;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store2(0u, min_82b28f());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store2(0u, min_82b28f());
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = min_82b28f();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
diff --git a/test/tint/builtins/gen/literal/min/82b28f.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/min/82b28f.wgsl.expected.ir.fxc.hlsl
index 0ba40c6..ddcd6fa 100644
--- a/test/tint/builtins/gen/literal/min/82b28f.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/min/82b28f.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,42 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  uint2 prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation uint2 VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+uint2 min_82b28f() {
+  uint2 res = (1u).xx;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store2(0u, min_82b28f());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store2(0u, min_82b28f());
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = min_82b28f();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
diff --git a/test/tint/builtins/gen/literal/min/84c9fe.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/min/84c9fe.wgsl.expected.ir.dxc.hlsl
index 0ba40c6..a8a0940 100644
--- a/test/tint/builtins/gen/literal/min/84c9fe.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/min/84c9fe.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,36 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+void min_84c9fe() {
+  int res = 1;
+}
+
+void fragment_main() {
+  min_84c9fe();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  min_84c9fe();
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  min_84c9fe();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  vertex_main_outputs v_2 = {v_1.pos};
+  return v_2;
+}
+
diff --git a/test/tint/builtins/gen/literal/min/84c9fe.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/min/84c9fe.wgsl.expected.ir.fxc.hlsl
index 0ba40c6..a8a0940 100644
--- a/test/tint/builtins/gen/literal/min/84c9fe.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/min/84c9fe.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,36 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+void min_84c9fe() {
+  int res = 1;
+}
+
+void fragment_main() {
+  min_84c9fe();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  min_84c9fe();
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  min_84c9fe();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  vertex_main_outputs v_2 = {v_1.pos};
+  return v_2;
+}
+
diff --git a/test/tint/builtins/gen/literal/min/93cfc4.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/min/93cfc4.wgsl.expected.ir.dxc.hlsl
index 0ba40c6..972d083 100644
--- a/test/tint/builtins/gen/literal/min/93cfc4.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/min/93cfc4.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,42 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  float3 prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation float3 VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+float3 min_93cfc4() {
+  float3 res = (1.0f).xxx;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store3(0u, asuint(min_93cfc4()));
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store3(0u, asuint(min_93cfc4()));
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = min_93cfc4();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
diff --git a/test/tint/builtins/gen/literal/min/93cfc4.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/min/93cfc4.wgsl.expected.ir.fxc.hlsl
index 0ba40c6..972d083 100644
--- a/test/tint/builtins/gen/literal/min/93cfc4.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/min/93cfc4.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,42 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  float3 prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation float3 VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+float3 min_93cfc4() {
+  float3 res = (1.0f).xxx;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store3(0u, asuint(min_93cfc4()));
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store3(0u, asuint(min_93cfc4()));
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = min_93cfc4();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
diff --git a/test/tint/builtins/gen/literal/min/98e797.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/min/98e797.wgsl.expected.ir.dxc.hlsl
index 0ba40c6..83007db 100644
--- a/test/tint/builtins/gen/literal/min/98e797.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/min/98e797.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,36 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+void min_98e797() {
+  float4 res = (1.0f).xxxx;
+}
+
+void fragment_main() {
+  min_98e797();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  min_98e797();
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  min_98e797();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  vertex_main_outputs v_2 = {v_1.pos};
+  return v_2;
+}
+
diff --git a/test/tint/builtins/gen/literal/min/98e797.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/min/98e797.wgsl.expected.ir.fxc.hlsl
index 0ba40c6..83007db 100644
--- a/test/tint/builtins/gen/literal/min/98e797.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/min/98e797.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,36 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+void min_98e797() {
+  float4 res = (1.0f).xxxx;
+}
+
+void fragment_main() {
+  min_98e797();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  min_98e797();
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  min_98e797();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  vertex_main_outputs v_2 = {v_1.pos};
+  return v_2;
+}
+
diff --git a/test/tint/builtins/gen/literal/min/a45171.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/min/a45171.wgsl.expected.ir.dxc.hlsl
index 0ba40c6..8ff6638 100644
--- a/test/tint/builtins/gen/literal/min/a45171.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/min/a45171.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,42 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  int3 prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation int3 VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+int3 min_a45171() {
+  int3 res = (1).xxx;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store3(0u, asuint(min_a45171()));
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store3(0u, asuint(min_a45171()));
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = min_a45171();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
diff --git a/test/tint/builtins/gen/literal/min/a45171.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/min/a45171.wgsl.expected.ir.fxc.hlsl
index 0ba40c6..8ff6638 100644
--- a/test/tint/builtins/gen/literal/min/a45171.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/min/a45171.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,42 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  int3 prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation int3 VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+int3 min_a45171() {
+  int3 res = (1).xxx;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store3(0u, asuint(min_a45171()));
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store3(0u, asuint(min_a45171()));
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = min_a45171();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
diff --git a/test/tint/builtins/gen/literal/min/aa28ad.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/min/aa28ad.wgsl.expected.ir.dxc.hlsl
index 0ba40c6..3a01947 100644
--- a/test/tint/builtins/gen/literal/min/aa28ad.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/min/aa28ad.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,42 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  float2 prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation float2 VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+float2 min_aa28ad() {
+  float2 res = (1.0f).xx;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store2(0u, asuint(min_aa28ad()));
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store2(0u, asuint(min_aa28ad()));
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = min_aa28ad();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
diff --git a/test/tint/builtins/gen/literal/min/aa28ad.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/min/aa28ad.wgsl.expected.ir.fxc.hlsl
index 0ba40c6..3a01947 100644
--- a/test/tint/builtins/gen/literal/min/aa28ad.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/min/aa28ad.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,42 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  float2 prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation float2 VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+float2 min_aa28ad() {
+  float2 res = (1.0f).xx;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store2(0u, asuint(min_aa28ad()));
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store2(0u, asuint(min_aa28ad()));
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = min_aa28ad();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
diff --git a/test/tint/builtins/gen/literal/min/ab0acd.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/min/ab0acd.wgsl.expected.ir.dxc.hlsl
index 0ba40c6..df197ee 100644
--- a/test/tint/builtins/gen/literal/min/ab0acd.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/min/ab0acd.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,42 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  vector<float16_t, 3> prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation vector<float16_t, 3> VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+vector<float16_t, 3> min_ab0acd() {
+  vector<float16_t, 3> res = (float16_t(1.0h)).xxx;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store<vector<float16_t, 3> >(0u, min_ab0acd());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store<vector<float16_t, 3> >(0u, min_ab0acd());
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = min_ab0acd();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
diff --git a/test/tint/builtins/gen/literal/min/ab0acd.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/min/ab0acd.wgsl.expected.ir.fxc.hlsl
index 0ba40c6..81566b4 100644
--- a/test/tint/builtins/gen/literal/min/ab0acd.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/min/ab0acd.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,47 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct VertexOutput {
+  float4 pos;
+  vector<float16_t, 3> prevent_dce;
+};
+
+struct vertex_main_outputs {
+  nointerpolation vector<float16_t, 3> VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+vector<float16_t, 3> min_ab0acd() {
+  vector<float16_t, 3> res = (float16_t(1.0h)).xxx;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store<vector<float16_t, 3> >(0u, min_ab0acd());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store<vector<float16_t, 3> >(0u, min_ab0acd());
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = min_ab0acd();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
+FXC validation failure:
+c:\src\dawn\Shader@0x000001F9CB344DF0(3,10-18): error X3000: syntax error: unexpected token 'float16_t'
+
diff --git a/test/tint/builtins/gen/literal/min/ac84d6.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/min/ac84d6.wgsl.expected.ir.dxc.hlsl
index 0ba40c6..6d352b4 100644
--- a/test/tint/builtins/gen/literal/min/ac84d6.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/min/ac84d6.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,42 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  float16_t prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation float16_t VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+float16_t min_ac84d6() {
+  float16_t res = float16_t(1.0h);
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store<float16_t>(0u, min_ac84d6());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store<float16_t>(0u, min_ac84d6());
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = min_ac84d6();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
diff --git a/test/tint/builtins/gen/literal/min/ac84d6.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/min/ac84d6.wgsl.expected.ir.fxc.hlsl
index 0ba40c6..adb381c 100644
--- a/test/tint/builtins/gen/literal/min/ac84d6.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/min/ac84d6.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,47 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct VertexOutput {
+  float4 pos;
+  float16_t prevent_dce;
+};
+
+struct vertex_main_outputs {
+  nointerpolation float16_t VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+float16_t min_ac84d6() {
+  float16_t res = float16_t(1.0h);
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store<float16_t>(0u, min_ac84d6());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store<float16_t>(0u, min_ac84d6());
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = min_ac84d6();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
+FXC validation failure:
+c:\src\dawn\Shader@0x000001DBCB7C6380(3,3-11): error X3000: unrecognized identifier 'float16_t'
+
diff --git a/test/tint/builtins/gen/literal/min/af326d.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/min/af326d.wgsl.expected.ir.dxc.hlsl
index 0ba40c6..58e63a0 100644
--- a/test/tint/builtins/gen/literal/min/af326d.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/min/af326d.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,42 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  float prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation float VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+float min_af326d() {
+  float res = 1.0f;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store(0u, asuint(min_af326d()));
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store(0u, asuint(min_af326d()));
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = min_af326d();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
diff --git a/test/tint/builtins/gen/literal/min/af326d.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/min/af326d.wgsl.expected.ir.fxc.hlsl
index 0ba40c6..58e63a0 100644
--- a/test/tint/builtins/gen/literal/min/af326d.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/min/af326d.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,42 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  float prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation float VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+float min_af326d() {
+  float res = 1.0f;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store(0u, asuint(min_af326d()));
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store(0u, asuint(min_af326d()));
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = min_af326d();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
diff --git a/test/tint/builtins/gen/literal/min/af364e.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/min/af364e.wgsl.expected.ir.dxc.hlsl
index 0ba40c6..dd2bd82 100644
--- a/test/tint/builtins/gen/literal/min/af364e.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/min/af364e.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,36 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+void min_af364e() {
+  int4 res = (1).xxxx;
+}
+
+void fragment_main() {
+  min_af364e();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  min_af364e();
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  min_af364e();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  vertex_main_outputs v_2 = {v_1.pos};
+  return v_2;
+}
+
diff --git a/test/tint/builtins/gen/literal/min/af364e.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/min/af364e.wgsl.expected.ir.fxc.hlsl
index 0ba40c6..dd2bd82 100644
--- a/test/tint/builtins/gen/literal/min/af364e.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/min/af364e.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,36 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+void min_af364e() {
+  int4 res = (1).xxxx;
+}
+
+void fragment_main() {
+  min_af364e();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  min_af364e();
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  min_af364e();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  vertex_main_outputs v_2 = {v_1.pos};
+  return v_2;
+}
+
diff --git a/test/tint/builtins/gen/literal/min/c70bb7.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/min/c70bb7.wgsl.expected.ir.dxc.hlsl
index 0ba40c6..ec12ca7 100644
--- a/test/tint/builtins/gen/literal/min/c70bb7.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/min/c70bb7.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,42 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  uint3 prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation uint3 VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+uint3 min_c70bb7() {
+  uint3 res = (1u).xxx;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store3(0u, min_c70bb7());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store3(0u, min_c70bb7());
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = min_c70bb7();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
diff --git a/test/tint/builtins/gen/literal/min/c70bb7.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/min/c70bb7.wgsl.expected.ir.fxc.hlsl
index 0ba40c6..ec12ca7 100644
--- a/test/tint/builtins/gen/literal/min/c70bb7.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/min/c70bb7.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,42 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  uint3 prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation uint3 VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+uint3 min_c70bb7() {
+  uint3 res = (1u).xxx;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store3(0u, min_c70bb7());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store3(0u, min_c70bb7());
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = min_c70bb7();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
diff --git a/test/tint/builtins/gen/literal/min/c73147.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/min/c73147.wgsl.expected.ir.dxc.hlsl
index 0ba40c6..ffcc225 100644
--- a/test/tint/builtins/gen/literal/min/c73147.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/min/c73147.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,42 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  int prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation int VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+int min_c73147() {
+  int res = 1;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store(0u, asuint(min_c73147()));
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store(0u, asuint(min_c73147()));
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = min_c73147();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
diff --git a/test/tint/builtins/gen/literal/min/c73147.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/min/c73147.wgsl.expected.ir.fxc.hlsl
index 0ba40c6..ffcc225 100644
--- a/test/tint/builtins/gen/literal/min/c73147.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/min/c73147.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,42 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  int prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation int VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+int min_c73147() {
+  int res = 1;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store(0u, asuint(min_c73147()));
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store(0u, asuint(min_c73147()));
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = min_c73147();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
diff --git a/test/tint/builtins/gen/literal/min/c76fa6.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/min/c76fa6.wgsl.expected.ir.dxc.hlsl
index 0ba40c6..2a904e3 100644
--- a/test/tint/builtins/gen/literal/min/c76fa6.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/min/c76fa6.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,42 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  float4 prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation float4 VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+float4 min_c76fa6() {
+  float4 res = (1.0f).xxxx;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store4(0u, asuint(min_c76fa6()));
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store4(0u, asuint(min_c76fa6()));
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = min_c76fa6();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
diff --git a/test/tint/builtins/gen/literal/min/c76fa6.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/min/c76fa6.wgsl.expected.ir.fxc.hlsl
index 0ba40c6..2a904e3 100644
--- a/test/tint/builtins/gen/literal/min/c76fa6.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/min/c76fa6.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,42 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  float4 prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation float4 VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+float4 min_c76fa6() {
+  float4 res = (1.0f).xxxx;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store4(0u, asuint(min_c76fa6()));
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store4(0u, asuint(min_c76fa6()));
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = min_c76fa6();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
diff --git a/test/tint/builtins/gen/literal/min/e780f9.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/min/e780f9.wgsl.expected.ir.dxc.hlsl
index 0ba40c6..37e5a07 100644
--- a/test/tint/builtins/gen/literal/min/e780f9.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/min/e780f9.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,42 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  vector<float16_t, 2> prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation vector<float16_t, 2> VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+vector<float16_t, 2> min_e780f9() {
+  vector<float16_t, 2> res = (float16_t(1.0h)).xx;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store<vector<float16_t, 2> >(0u, min_e780f9());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store<vector<float16_t, 2> >(0u, min_e780f9());
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = min_e780f9();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
diff --git a/test/tint/builtins/gen/literal/min/e780f9.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/min/e780f9.wgsl.expected.ir.fxc.hlsl
index 0ba40c6..ce95642 100644
--- a/test/tint/builtins/gen/literal/min/e780f9.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/min/e780f9.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,47 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct VertexOutput {
+  float4 pos;
+  vector<float16_t, 2> prevent_dce;
+};
+
+struct vertex_main_outputs {
+  nointerpolation vector<float16_t, 2> VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+vector<float16_t, 2> min_e780f9() {
+  vector<float16_t, 2> res = (float16_t(1.0h)).xx;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store<vector<float16_t, 2> >(0u, min_e780f9());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store<vector<float16_t, 2> >(0u, min_e780f9());
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = min_e780f9();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
+FXC validation failure:
+c:\src\dawn\Shader@0x0000022AA8664250(3,10-18): error X3000: syntax error: unexpected token 'float16_t'
+
diff --git a/test/tint/builtins/gen/literal/mix/0c8c33.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/mix/0c8c33.wgsl.expected.ir.dxc.hlsl
index 0ba40c6..9c0559e 100644
--- a/test/tint/builtins/gen/literal/mix/0c8c33.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/mix/0c8c33.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,42 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  float3 prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation float3 VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+float3 mix_0c8c33() {
+  float3 res = (1.0f).xxx;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store3(0u, asuint(mix_0c8c33()));
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store3(0u, asuint(mix_0c8c33()));
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = mix_0c8c33();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
diff --git a/test/tint/builtins/gen/literal/mix/0c8c33.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/mix/0c8c33.wgsl.expected.ir.fxc.hlsl
index 0ba40c6..9c0559e 100644
--- a/test/tint/builtins/gen/literal/mix/0c8c33.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/mix/0c8c33.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,42 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  float3 prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation float3 VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+float3 mix_0c8c33() {
+  float3 res = (1.0f).xxx;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store3(0u, asuint(mix_0c8c33()));
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store3(0u, asuint(mix_0c8c33()));
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = mix_0c8c33();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
diff --git a/test/tint/builtins/gen/literal/mix/1faeb1.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/mix/1faeb1.wgsl.expected.ir.dxc.hlsl
index 0ba40c6..274e34f 100644
--- a/test/tint/builtins/gen/literal/mix/1faeb1.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/mix/1faeb1.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,42 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  float4 prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation float4 VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+float4 mix_1faeb1() {
+  float4 res = (1.0f).xxxx;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store4(0u, asuint(mix_1faeb1()));
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store4(0u, asuint(mix_1faeb1()));
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = mix_1faeb1();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
diff --git a/test/tint/builtins/gen/literal/mix/1faeb1.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/mix/1faeb1.wgsl.expected.ir.fxc.hlsl
index 0ba40c6..274e34f 100644
--- a/test/tint/builtins/gen/literal/mix/1faeb1.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/mix/1faeb1.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,42 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  float4 prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation float4 VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+float4 mix_1faeb1() {
+  float4 res = (1.0f).xxxx;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store4(0u, asuint(mix_1faeb1()));
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store4(0u, asuint(mix_1faeb1()));
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = mix_1faeb1();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
diff --git a/test/tint/builtins/gen/literal/mix/275cac.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/mix/275cac.wgsl.expected.ir.dxc.hlsl
index 0ba40c6..7a56d7a 100644
--- a/test/tint/builtins/gen/literal/mix/275cac.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/mix/275cac.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,36 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+void mix_275cac() {
+  float4 res = (1.0f).xxxx;
+}
+
+void fragment_main() {
+  mix_275cac();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  mix_275cac();
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  mix_275cac();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  vertex_main_outputs v_2 = {v_1.pos};
+  return v_2;
+}
+
diff --git a/test/tint/builtins/gen/literal/mix/275cac.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/mix/275cac.wgsl.expected.ir.fxc.hlsl
index 0ba40c6..7a56d7a 100644
--- a/test/tint/builtins/gen/literal/mix/275cac.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/mix/275cac.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,36 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+void mix_275cac() {
+  float4 res = (1.0f).xxxx;
+}
+
+void fragment_main() {
+  mix_275cac();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  mix_275cac();
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  mix_275cac();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  vertex_main_outputs v_2 = {v_1.pos};
+  return v_2;
+}
+
diff --git a/test/tint/builtins/gen/literal/mix/2fadab.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/mix/2fadab.wgsl.expected.ir.dxc.hlsl
index 0ba40c6..aec1319 100644
--- a/test/tint/builtins/gen/literal/mix/2fadab.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/mix/2fadab.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,42 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  float2 prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation float2 VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+float2 mix_2fadab() {
+  float2 res = (1.0f).xx;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store2(0u, asuint(mix_2fadab()));
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store2(0u, asuint(mix_2fadab()));
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = mix_2fadab();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
diff --git a/test/tint/builtins/gen/literal/mix/2fadab.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/mix/2fadab.wgsl.expected.ir.fxc.hlsl
index 0ba40c6..aec1319 100644
--- a/test/tint/builtins/gen/literal/mix/2fadab.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/mix/2fadab.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,42 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  float2 prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation float2 VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+float2 mix_2fadab() {
+  float2 res = (1.0f).xx;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store2(0u, asuint(mix_2fadab()));
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store2(0u, asuint(mix_2fadab()));
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = mix_2fadab();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
diff --git a/test/tint/builtins/gen/literal/mix/30de36.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/mix/30de36.wgsl.expected.ir.dxc.hlsl
index 0ba40c6..90ddb5f 100644
--- a/test/tint/builtins/gen/literal/mix/30de36.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/mix/30de36.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,36 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+void mix_30de36() {
+  float res = 1.0f;
+}
+
+void fragment_main() {
+  mix_30de36();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  mix_30de36();
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  mix_30de36();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  vertex_main_outputs v_2 = {v_1.pos};
+  return v_2;
+}
+
diff --git a/test/tint/builtins/gen/literal/mix/30de36.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/mix/30de36.wgsl.expected.ir.fxc.hlsl
index 0ba40c6..90ddb5f 100644
--- a/test/tint/builtins/gen/literal/mix/30de36.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/mix/30de36.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,36 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+void mix_30de36() {
+  float res = 1.0f;
+}
+
+void fragment_main() {
+  mix_30de36();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  mix_30de36();
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  mix_30de36();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  vertex_main_outputs v_2 = {v_1.pos};
+  return v_2;
+}
+
diff --git a/test/tint/builtins/gen/literal/mix/315264.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/mix/315264.wgsl.expected.ir.dxc.hlsl
index 0ba40c6..e102824 100644
--- a/test/tint/builtins/gen/literal/mix/315264.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/mix/315264.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,42 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  float3 prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation float3 VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+float3 mix_315264() {
+  float3 res = (1.0f).xxx;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store3(0u, asuint(mix_315264()));
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store3(0u, asuint(mix_315264()));
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = mix_315264();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
diff --git a/test/tint/builtins/gen/literal/mix/315264.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/mix/315264.wgsl.expected.ir.fxc.hlsl
index 0ba40c6..e102824 100644
--- a/test/tint/builtins/gen/literal/mix/315264.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/mix/315264.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,42 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  float3 prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation float3 VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+float3 mix_315264() {
+  float3 res = (1.0f).xxx;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store3(0u, asuint(mix_315264()));
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store3(0u, asuint(mix_315264()));
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = mix_315264();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
diff --git a/test/tint/builtins/gen/literal/mix/343c49.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/mix/343c49.wgsl.expected.ir.dxc.hlsl
index 0ba40c6..a9afe37 100644
--- a/test/tint/builtins/gen/literal/mix/343c49.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/mix/343c49.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,36 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+void mix_343c49() {
+  float3 res = (1.0f).xxx;
+}
+
+void fragment_main() {
+  mix_343c49();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  mix_343c49();
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  mix_343c49();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  vertex_main_outputs v_2 = {v_1.pos};
+  return v_2;
+}
+
diff --git a/test/tint/builtins/gen/literal/mix/343c49.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/mix/343c49.wgsl.expected.ir.fxc.hlsl
index 0ba40c6..a9afe37 100644
--- a/test/tint/builtins/gen/literal/mix/343c49.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/mix/343c49.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,36 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+void mix_343c49() {
+  float3 res = (1.0f).xxx;
+}
+
+void fragment_main() {
+  mix_343c49();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  mix_343c49();
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  mix_343c49();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  vertex_main_outputs v_2 = {v_1.pos};
+  return v_2;
+}
+
diff --git a/test/tint/builtins/gen/literal/mix/38cbbb.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/mix/38cbbb.wgsl.expected.ir.dxc.hlsl
index 0ba40c6..75cf2c5 100644
--- a/test/tint/builtins/gen/literal/mix/38cbbb.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/mix/38cbbb.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,42 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  float16_t prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation float16_t VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+float16_t mix_38cbbb() {
+  float16_t res = float16_t(1.0h);
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store<float16_t>(0u, mix_38cbbb());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store<float16_t>(0u, mix_38cbbb());
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = mix_38cbbb();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
diff --git a/test/tint/builtins/gen/literal/mix/38cbbb.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/mix/38cbbb.wgsl.expected.ir.fxc.hlsl
index 0ba40c6..e6c5ac7 100644
--- a/test/tint/builtins/gen/literal/mix/38cbbb.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/mix/38cbbb.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,47 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct VertexOutput {
+  float4 pos;
+  float16_t prevent_dce;
+};
+
+struct vertex_main_outputs {
+  nointerpolation float16_t VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+float16_t mix_38cbbb() {
+  float16_t res = float16_t(1.0h);
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store<float16_t>(0u, mix_38cbbb());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store<float16_t>(0u, mix_38cbbb());
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = mix_38cbbb();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
+FXC validation failure:
+c:\src\dawn\Shader@0x000001F5C6E54430(3,3-11): error X3000: unrecognized identifier 'float16_t'
+
diff --git a/test/tint/builtins/gen/literal/mix/42d11d.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/mix/42d11d.wgsl.expected.ir.dxc.hlsl
index 0ba40c6..f292e60 100644
--- a/test/tint/builtins/gen/literal/mix/42d11d.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/mix/42d11d.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,36 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+void mix_42d11d() {
+  float2 res = (1.0f).xx;
+}
+
+void fragment_main() {
+  mix_42d11d();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  mix_42d11d();
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  mix_42d11d();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  vertex_main_outputs v_2 = {v_1.pos};
+  return v_2;
+}
+
diff --git a/test/tint/builtins/gen/literal/mix/42d11d.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/mix/42d11d.wgsl.expected.ir.fxc.hlsl
index 0ba40c6..f292e60 100644
--- a/test/tint/builtins/gen/literal/mix/42d11d.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/mix/42d11d.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,36 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+void mix_42d11d() {
+  float2 res = (1.0f).xx;
+}
+
+void fragment_main() {
+  mix_42d11d();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  mix_42d11d();
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  mix_42d11d();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  vertex_main_outputs v_2 = {v_1.pos};
+  return v_2;
+}
+
diff --git a/test/tint/builtins/gen/literal/mix/4f0b5e.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/mix/4f0b5e.wgsl.expected.ir.dxc.hlsl
index 0ba40c6..d153af0 100644
--- a/test/tint/builtins/gen/literal/mix/4f0b5e.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/mix/4f0b5e.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,42 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  float prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation float VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+float mix_4f0b5e() {
+  float res = 1.0f;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store(0u, asuint(mix_4f0b5e()));
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store(0u, asuint(mix_4f0b5e()));
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = mix_4f0b5e();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
diff --git a/test/tint/builtins/gen/literal/mix/4f0b5e.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/mix/4f0b5e.wgsl.expected.ir.fxc.hlsl
index 0ba40c6..d153af0 100644
--- a/test/tint/builtins/gen/literal/mix/4f0b5e.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/mix/4f0b5e.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,42 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  float prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation float VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+float mix_4f0b5e() {
+  float res = 1.0f;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store(0u, asuint(mix_4f0b5e()));
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store(0u, asuint(mix_4f0b5e()));
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = mix_4f0b5e();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
diff --git a/test/tint/builtins/gen/literal/mix/63f2fd.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/mix/63f2fd.wgsl.expected.ir.dxc.hlsl
index 0ba40c6..603e4a6 100644
--- a/test/tint/builtins/gen/literal/mix/63f2fd.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/mix/63f2fd.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,42 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  vector<float16_t, 3> prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation vector<float16_t, 3> VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+vector<float16_t, 3> mix_63f2fd() {
+  vector<float16_t, 3> res = (float16_t(1.0h)).xxx;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store<vector<float16_t, 3> >(0u, mix_63f2fd());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store<vector<float16_t, 3> >(0u, mix_63f2fd());
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = mix_63f2fd();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
diff --git a/test/tint/builtins/gen/literal/mix/63f2fd.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/mix/63f2fd.wgsl.expected.ir.fxc.hlsl
index 0ba40c6..bd60fb6 100644
--- a/test/tint/builtins/gen/literal/mix/63f2fd.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/mix/63f2fd.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,47 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct VertexOutput {
+  float4 pos;
+  vector<float16_t, 3> prevent_dce;
+};
+
+struct vertex_main_outputs {
+  nointerpolation vector<float16_t, 3> VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+vector<float16_t, 3> mix_63f2fd() {
+  vector<float16_t, 3> res = (float16_t(1.0h)).xxx;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store<vector<float16_t, 3> >(0u, mix_63f2fd());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store<vector<float16_t, 3> >(0u, mix_63f2fd());
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = mix_63f2fd();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
+FXC validation failure:
+c:\src\dawn\Shader@0x000001F6BFAB2980(3,10-18): error X3000: syntax error: unexpected token 'float16_t'
+
diff --git a/test/tint/builtins/gen/literal/mix/6f8adc.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/mix/6f8adc.wgsl.expected.ir.dxc.hlsl
index 0ba40c6..09e5a2b 100644
--- a/test/tint/builtins/gen/literal/mix/6f8adc.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/mix/6f8adc.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,42 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  float2 prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation float2 VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+float2 mix_6f8adc() {
+  float2 res = (1.0f).xx;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store2(0u, asuint(mix_6f8adc()));
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store2(0u, asuint(mix_6f8adc()));
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = mix_6f8adc();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
diff --git a/test/tint/builtins/gen/literal/mix/6f8adc.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/mix/6f8adc.wgsl.expected.ir.fxc.hlsl
index 0ba40c6..09e5a2b 100644
--- a/test/tint/builtins/gen/literal/mix/6f8adc.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/mix/6f8adc.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,42 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  float2 prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation float2 VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+float2 mix_6f8adc() {
+  float2 res = (1.0f).xx;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store2(0u, asuint(mix_6f8adc()));
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store2(0u, asuint(mix_6f8adc()));
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = mix_6f8adc();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
diff --git a/test/tint/builtins/gen/literal/mix/98007a.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/mix/98007a.wgsl.expected.ir.dxc.hlsl
index 0ba40c6..a5c1150 100644
--- a/test/tint/builtins/gen/literal/mix/98007a.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/mix/98007a.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,36 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+void mix_98007a() {
+  float4 res = (1.0f).xxxx;
+}
+
+void fragment_main() {
+  mix_98007a();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  mix_98007a();
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  mix_98007a();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  vertex_main_outputs v_2 = {v_1.pos};
+  return v_2;
+}
+
diff --git a/test/tint/builtins/gen/literal/mix/98007a.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/mix/98007a.wgsl.expected.ir.fxc.hlsl
index 0ba40c6..a5c1150 100644
--- a/test/tint/builtins/gen/literal/mix/98007a.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/mix/98007a.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,36 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+void mix_98007a() {
+  float4 res = (1.0f).xxxx;
+}
+
+void fragment_main() {
+  mix_98007a();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  mix_98007a();
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  mix_98007a();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  vertex_main_outputs v_2 = {v_1.pos};
+  return v_2;
+}
+
diff --git a/test/tint/builtins/gen/literal/mix/98ee3e.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/mix/98ee3e.wgsl.expected.ir.dxc.hlsl
index 0ba40c6..9f601bf 100644
--- a/test/tint/builtins/gen/literal/mix/98ee3e.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/mix/98ee3e.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,42 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  vector<float16_t, 2> prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation vector<float16_t, 2> VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+vector<float16_t, 2> mix_98ee3e() {
+  vector<float16_t, 2> res = (float16_t(1.0h)).xx;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store<vector<float16_t, 2> >(0u, mix_98ee3e());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store<vector<float16_t, 2> >(0u, mix_98ee3e());
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = mix_98ee3e();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
diff --git a/test/tint/builtins/gen/literal/mix/98ee3e.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/mix/98ee3e.wgsl.expected.ir.fxc.hlsl
index 0ba40c6..29fa1a6 100644
--- a/test/tint/builtins/gen/literal/mix/98ee3e.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/mix/98ee3e.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,47 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct VertexOutput {
+  float4 pos;
+  vector<float16_t, 2> prevent_dce;
+};
+
+struct vertex_main_outputs {
+  nointerpolation vector<float16_t, 2> VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+vector<float16_t, 2> mix_98ee3e() {
+  vector<float16_t, 2> res = (float16_t(1.0h)).xx;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store<vector<float16_t, 2> >(0u, mix_98ee3e());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store<vector<float16_t, 2> >(0u, mix_98ee3e());
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = mix_98ee3e();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
+FXC validation failure:
+c:\src\dawn\Shader@0x0000017EC70980E0(3,10-18): error X3000: syntax error: unexpected token 'float16_t'
+
diff --git a/test/tint/builtins/gen/literal/mix/9c2681.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/mix/9c2681.wgsl.expected.ir.dxc.hlsl
index 0ba40c6..933c602 100644
--- a/test/tint/builtins/gen/literal/mix/9c2681.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/mix/9c2681.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,36 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+void mix_9c2681() {
+  float3 res = (1.0f).xxx;
+}
+
+void fragment_main() {
+  mix_9c2681();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  mix_9c2681();
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  mix_9c2681();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  vertex_main_outputs v_2 = {v_1.pos};
+  return v_2;
+}
+
diff --git a/test/tint/builtins/gen/literal/mix/9c2681.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/mix/9c2681.wgsl.expected.ir.fxc.hlsl
index 0ba40c6..933c602 100644
--- a/test/tint/builtins/gen/literal/mix/9c2681.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/mix/9c2681.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,36 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+void mix_9c2681() {
+  float3 res = (1.0f).xxx;
+}
+
+void fragment_main() {
+  mix_9c2681();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  mix_9c2681();
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  mix_9c2681();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  vertex_main_outputs v_2 = {v_1.pos};
+  return v_2;
+}
+
diff --git a/test/tint/builtins/gen/literal/mix/c1aec6.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/mix/c1aec6.wgsl.expected.ir.dxc.hlsl
index 0ba40c6..0b5df7e 100644
--- a/test/tint/builtins/gen/literal/mix/c1aec6.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/mix/c1aec6.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,42 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  vector<float16_t, 3> prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation vector<float16_t, 3> VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+vector<float16_t, 3> mix_c1aec6() {
+  vector<float16_t, 3> res = (float16_t(1.0h)).xxx;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store<vector<float16_t, 3> >(0u, mix_c1aec6());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store<vector<float16_t, 3> >(0u, mix_c1aec6());
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = mix_c1aec6();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
diff --git a/test/tint/builtins/gen/literal/mix/c1aec6.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/mix/c1aec6.wgsl.expected.ir.fxc.hlsl
index 0ba40c6..cceb36d 100644
--- a/test/tint/builtins/gen/literal/mix/c1aec6.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/mix/c1aec6.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,47 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct VertexOutput {
+  float4 pos;
+  vector<float16_t, 3> prevent_dce;
+};
+
+struct vertex_main_outputs {
+  nointerpolation vector<float16_t, 3> VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+vector<float16_t, 3> mix_c1aec6() {
+  vector<float16_t, 3> res = (float16_t(1.0h)).xxx;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store<vector<float16_t, 3> >(0u, mix_c1aec6());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store<vector<float16_t, 3> >(0u, mix_c1aec6());
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = mix_c1aec6();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
+FXC validation failure:
+c:\src\dawn\Shader@0x00000228DF6F4CC0(3,10-18): error X3000: syntax error: unexpected token 'float16_t'
+
diff --git a/test/tint/builtins/gen/literal/mix/c37ede.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/mix/c37ede.wgsl.expected.ir.dxc.hlsl
index 0ba40c6..d548cf6 100644
--- a/test/tint/builtins/gen/literal/mix/c37ede.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/mix/c37ede.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,42 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  float4 prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation float4 VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+float4 mix_c37ede() {
+  float4 res = (1.0f).xxxx;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store4(0u, asuint(mix_c37ede()));
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store4(0u, asuint(mix_c37ede()));
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = mix_c37ede();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
diff --git a/test/tint/builtins/gen/literal/mix/c37ede.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/mix/c37ede.wgsl.expected.ir.fxc.hlsl
index 0ba40c6..d548cf6 100644
--- a/test/tint/builtins/gen/literal/mix/c37ede.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/mix/c37ede.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,42 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  float4 prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation float4 VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+float4 mix_c37ede() {
+  float4 res = (1.0f).xxxx;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store4(0u, asuint(mix_c37ede()));
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store4(0u, asuint(mix_c37ede()));
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = mix_c37ede();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
diff --git a/test/tint/builtins/gen/literal/mix/e46a83.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/mix/e46a83.wgsl.expected.ir.dxc.hlsl
index 0ba40c6..d2bf4f9 100644
--- a/test/tint/builtins/gen/literal/mix/e46a83.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/mix/e46a83.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,42 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  vector<float16_t, 2> prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation vector<float16_t, 2> VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+vector<float16_t, 2> mix_e46a83() {
+  vector<float16_t, 2> res = (float16_t(1.0h)).xx;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store<vector<float16_t, 2> >(0u, mix_e46a83());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store<vector<float16_t, 2> >(0u, mix_e46a83());
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = mix_e46a83();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
diff --git a/test/tint/builtins/gen/literal/mix/e46a83.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/mix/e46a83.wgsl.expected.ir.fxc.hlsl
index 0ba40c6..c4369a4 100644
--- a/test/tint/builtins/gen/literal/mix/e46a83.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/mix/e46a83.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,47 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct VertexOutput {
+  float4 pos;
+  vector<float16_t, 2> prevent_dce;
+};
+
+struct vertex_main_outputs {
+  nointerpolation vector<float16_t, 2> VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+vector<float16_t, 2> mix_e46a83() {
+  vector<float16_t, 2> res = (float16_t(1.0h)).xx;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store<vector<float16_t, 2> >(0u, mix_e46a83());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store<vector<float16_t, 2> >(0u, mix_e46a83());
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = mix_e46a83();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
+FXC validation failure:
+c:\src\dawn\Shader@0x000001F9629A3000(3,10-18): error X3000: syntax error: unexpected token 'float16_t'
+
diff --git a/test/tint/builtins/gen/literal/mix/ee2468.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/mix/ee2468.wgsl.expected.ir.dxc.hlsl
index 0ba40c6..b61f07d 100644
--- a/test/tint/builtins/gen/literal/mix/ee2468.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/mix/ee2468.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,42 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  vector<float16_t, 4> prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation vector<float16_t, 4> VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+vector<float16_t, 4> mix_ee2468() {
+  vector<float16_t, 4> res = (float16_t(1.0h)).xxxx;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store<vector<float16_t, 4> >(0u, mix_ee2468());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store<vector<float16_t, 4> >(0u, mix_ee2468());
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = mix_ee2468();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
diff --git a/test/tint/builtins/gen/literal/mix/ee2468.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/mix/ee2468.wgsl.expected.ir.fxc.hlsl
index 0ba40c6..ffade5b 100644
--- a/test/tint/builtins/gen/literal/mix/ee2468.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/mix/ee2468.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,47 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct VertexOutput {
+  float4 pos;
+  vector<float16_t, 4> prevent_dce;
+};
+
+struct vertex_main_outputs {
+  nointerpolation vector<float16_t, 4> VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+vector<float16_t, 4> mix_ee2468() {
+  vector<float16_t, 4> res = (float16_t(1.0h)).xxxx;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store<vector<float16_t, 4> >(0u, mix_ee2468());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store<vector<float16_t, 4> >(0u, mix_ee2468());
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = mix_ee2468();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
+FXC validation failure:
+c:\src\dawn\Shader@0x000001D5D31FC2C0(3,10-18): error X3000: syntax error: unexpected token 'float16_t'
+
diff --git a/test/tint/builtins/gen/literal/mix/ef3575.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/mix/ef3575.wgsl.expected.ir.dxc.hlsl
index 0ba40c6..a82e086 100644
--- a/test/tint/builtins/gen/literal/mix/ef3575.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/mix/ef3575.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,36 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+void mix_ef3575() {
+  float2 res = (1.0f).xx;
+}
+
+void fragment_main() {
+  mix_ef3575();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  mix_ef3575();
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  mix_ef3575();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  vertex_main_outputs v_2 = {v_1.pos};
+  return v_2;
+}
+
diff --git a/test/tint/builtins/gen/literal/mix/ef3575.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/mix/ef3575.wgsl.expected.ir.fxc.hlsl
index 0ba40c6..a82e086 100644
--- a/test/tint/builtins/gen/literal/mix/ef3575.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/mix/ef3575.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,36 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+void mix_ef3575() {
+  float2 res = (1.0f).xx;
+}
+
+void fragment_main() {
+  mix_ef3575();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  mix_ef3575();
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  mix_ef3575();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  vertex_main_outputs v_2 = {v_1.pos};
+  return v_2;
+}
+
diff --git a/test/tint/builtins/gen/literal/mix/f1a543.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/mix/f1a543.wgsl.expected.ir.dxc.hlsl
index 0ba40c6..a64c335 100644
--- a/test/tint/builtins/gen/literal/mix/f1a543.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/mix/f1a543.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,42 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  vector<float16_t, 4> prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation vector<float16_t, 4> VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+vector<float16_t, 4> mix_f1a543() {
+  vector<float16_t, 4> res = (float16_t(1.0h)).xxxx;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store<vector<float16_t, 4> >(0u, mix_f1a543());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store<vector<float16_t, 4> >(0u, mix_f1a543());
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = mix_f1a543();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
diff --git a/test/tint/builtins/gen/literal/mix/f1a543.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/mix/f1a543.wgsl.expected.ir.fxc.hlsl
index 0ba40c6..e9bc0a0 100644
--- a/test/tint/builtins/gen/literal/mix/f1a543.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/mix/f1a543.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,47 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct VertexOutput {
+  float4 pos;
+  vector<float16_t, 4> prevent_dce;
+};
+
+struct vertex_main_outputs {
+  nointerpolation vector<float16_t, 4> VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+vector<float16_t, 4> mix_f1a543() {
+  vector<float16_t, 4> res = (float16_t(1.0h)).xxxx;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store<vector<float16_t, 4> >(0u, mix_f1a543());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store<vector<float16_t, 4> >(0u, mix_f1a543());
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = mix_f1a543();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
+FXC validation failure:
+c:\src\dawn\Shader@0x000002539CE87620(3,10-18): error X3000: syntax error: unexpected token 'float16_t'
+
diff --git a/test/tint/builtins/gen/literal/modf/2d50da.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/modf/2d50da.wgsl.expected.ir.dxc.hlsl
index 0ba40c6..fa52835 100644
--- a/test/tint/builtins/gen/literal/modf/2d50da.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/modf/2d50da.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,41 @@
-SKIP: FAILED
+struct modf_result_vec2_f32 {
+  float2 fract;
+  float2 whole;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct VertexOutput {
+  float4 pos;
+};
+
+struct vertex_main_outputs {
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+void modf_2d50da() {
+  modf_result_vec2_f32 res = {(-0.5f).xx, (-1.0f).xx};
+}
+
+void fragment_main() {
+  modf_2d50da();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  modf_2d50da();
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  modf_2d50da();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  vertex_main_outputs v_2 = {v_1.pos};
+  return v_2;
+}
+
diff --git a/test/tint/builtins/gen/literal/modf/2d50da.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/modf/2d50da.wgsl.expected.ir.fxc.hlsl
index 0ba40c6..fa52835 100644
--- a/test/tint/builtins/gen/literal/modf/2d50da.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/modf/2d50da.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,41 @@
-SKIP: FAILED
+struct modf_result_vec2_f32 {
+  float2 fract;
+  float2 whole;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct VertexOutput {
+  float4 pos;
+};
+
+struct vertex_main_outputs {
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+void modf_2d50da() {
+  modf_result_vec2_f32 res = {(-0.5f).xx, (-1.0f).xx};
+}
+
+void fragment_main() {
+  modf_2d50da();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  modf_2d50da();
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  modf_2d50da();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  vertex_main_outputs v_2 = {v_1.pos};
+  return v_2;
+}
+
diff --git a/test/tint/builtins/gen/literal/modf/45005f.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/modf/45005f.wgsl.expected.ir.dxc.hlsl
index 0ba40c6..76136ce 100644
--- a/test/tint/builtins/gen/literal/modf/45005f.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/modf/45005f.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,41 @@
-SKIP: FAILED
+struct modf_result_vec3_f16 {
+  vector<float16_t, 3> fract;
+  vector<float16_t, 3> whole;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct VertexOutput {
+  float4 pos;
+};
+
+struct vertex_main_outputs {
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+void modf_45005f() {
+  modf_result_vec3_f16 res = {(float16_t(-0.5h)).xxx, (float16_t(-1.0h)).xxx};
+}
+
+void fragment_main() {
+  modf_45005f();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  modf_45005f();
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  modf_45005f();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  vertex_main_outputs v_2 = {v_1.pos};
+  return v_2;
+}
+
diff --git a/test/tint/builtins/gen/literal/modf/45005f.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/modf/45005f.wgsl.expected.ir.fxc.hlsl
index 0ba40c6..0dc3210 100644
--- a/test/tint/builtins/gen/literal/modf/45005f.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/modf/45005f.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,46 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct modf_result_vec3_f16 {
+  vector<float16_t, 3> fract;
+  vector<float16_t, 3> whole;
+};
+
+struct VertexOutput {
+  float4 pos;
+};
+
+struct vertex_main_outputs {
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+void modf_45005f() {
+  modf_result_vec3_f16 res = {(float16_t(-0.5h)).xxx, (float16_t(-1.0h)).xxx};
+}
+
+void fragment_main() {
+  modf_45005f();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  modf_45005f();
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  modf_45005f();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  vertex_main_outputs v_2 = {v_1.pos};
+  return v_2;
+}
+
+FXC validation failure:
+c:\src\dawn\Shader@0x00000280A3C0FFB0(2,10-18): error X3000: syntax error: unexpected token 'float16_t'
+
diff --git a/test/tint/builtins/gen/literal/modf/4bfced.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/modf/4bfced.wgsl.expected.ir.dxc.hlsl
index 0ba40c6..06c2561 100644
--- a/test/tint/builtins/gen/literal/modf/4bfced.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/modf/4bfced.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,41 @@
-SKIP: FAILED
+struct modf_result_vec4_f32 {
+  float4 fract;
+  float4 whole;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct VertexOutput {
+  float4 pos;
+};
+
+struct vertex_main_outputs {
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+void modf_4bfced() {
+  modf_result_vec4_f32 res = {(-0.5f).xxxx, (-1.0f).xxxx};
+}
+
+void fragment_main() {
+  modf_4bfced();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  modf_4bfced();
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  modf_4bfced();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  vertex_main_outputs v_2 = {v_1.pos};
+  return v_2;
+}
+
diff --git a/test/tint/builtins/gen/literal/modf/4bfced.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/modf/4bfced.wgsl.expected.ir.fxc.hlsl
index 0ba40c6..06c2561 100644
--- a/test/tint/builtins/gen/literal/modf/4bfced.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/modf/4bfced.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,41 @@
-SKIP: FAILED
+struct modf_result_vec4_f32 {
+  float4 fract;
+  float4 whole;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct VertexOutput {
+  float4 pos;
+};
+
+struct vertex_main_outputs {
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+void modf_4bfced() {
+  modf_result_vec4_f32 res = {(-0.5f).xxxx, (-1.0f).xxxx};
+}
+
+void fragment_main() {
+  modf_4bfced();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  modf_4bfced();
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  modf_4bfced();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  vertex_main_outputs v_2 = {v_1.pos};
+  return v_2;
+}
+
diff --git a/test/tint/builtins/gen/literal/modf/5ea256.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/modf/5ea256.wgsl.expected.ir.dxc.hlsl
index 0ba40c6..b196ee3 100644
--- a/test/tint/builtins/gen/literal/modf/5ea256.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/modf/5ea256.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,41 @@
-SKIP: FAILED
+struct modf_result_vec3_f32 {
+  float3 fract;
+  float3 whole;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct VertexOutput {
+  float4 pos;
+};
+
+struct vertex_main_outputs {
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+void modf_5ea256() {
+  modf_result_vec3_f32 res = {(-0.5f).xxx, (-1.0f).xxx};
+}
+
+void fragment_main() {
+  modf_5ea256();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  modf_5ea256();
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  modf_5ea256();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  vertex_main_outputs v_2 = {v_1.pos};
+  return v_2;
+}
+
diff --git a/test/tint/builtins/gen/literal/modf/5ea256.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/modf/5ea256.wgsl.expected.ir.fxc.hlsl
index 0ba40c6..b196ee3 100644
--- a/test/tint/builtins/gen/literal/modf/5ea256.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/modf/5ea256.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,41 @@
-SKIP: FAILED
+struct modf_result_vec3_f32 {
+  float3 fract;
+  float3 whole;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct VertexOutput {
+  float4 pos;
+};
+
+struct vertex_main_outputs {
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+void modf_5ea256() {
+  modf_result_vec3_f32 res = {(-0.5f).xxx, (-1.0f).xxx};
+}
+
+void fragment_main() {
+  modf_5ea256();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  modf_5ea256();
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  modf_5ea256();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  vertex_main_outputs v_2 = {v_1.pos};
+  return v_2;
+}
+
diff --git a/test/tint/builtins/gen/literal/modf/68d8ee.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/modf/68d8ee.wgsl.expected.ir.dxc.hlsl
index 0ba40c6..d46d364 100644
--- a/test/tint/builtins/gen/literal/modf/68d8ee.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/modf/68d8ee.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,41 @@
-SKIP: FAILED
+struct modf_result_vec3_f32 {
+  float3 fract;
+  float3 whole;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct VertexOutput {
+  float4 pos;
+};
+
+struct vertex_main_outputs {
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+void modf_68d8ee() {
+  modf_result_vec3_f32 res = {(-0.5f).xxx, (-1.0f).xxx};
+}
+
+void fragment_main() {
+  modf_68d8ee();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  modf_68d8ee();
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  modf_68d8ee();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  vertex_main_outputs v_2 = {v_1.pos};
+  return v_2;
+}
+
diff --git a/test/tint/builtins/gen/literal/modf/68d8ee.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/modf/68d8ee.wgsl.expected.ir.fxc.hlsl
index 0ba40c6..d46d364 100644
--- a/test/tint/builtins/gen/literal/modf/68d8ee.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/modf/68d8ee.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,41 @@
-SKIP: FAILED
+struct modf_result_vec3_f32 {
+  float3 fract;
+  float3 whole;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct VertexOutput {
+  float4 pos;
+};
+
+struct vertex_main_outputs {
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+void modf_68d8ee() {
+  modf_result_vec3_f32 res = {(-0.5f).xxx, (-1.0f).xxx};
+}
+
+void fragment_main() {
+  modf_68d8ee();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  modf_68d8ee();
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  modf_68d8ee();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  vertex_main_outputs v_2 = {v_1.pos};
+  return v_2;
+}
+
diff --git a/test/tint/builtins/gen/literal/modf/732aa6.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/modf/732aa6.wgsl.expected.ir.dxc.hlsl
index 0ba40c6..4e9fcfc 100644
--- a/test/tint/builtins/gen/literal/modf/732aa6.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/modf/732aa6.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,41 @@
-SKIP: FAILED
+struct modf_result_vec2_f32 {
+  float2 fract;
+  float2 whole;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct VertexOutput {
+  float4 pos;
+};
+
+struct vertex_main_outputs {
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+void modf_732aa6() {
+  modf_result_vec2_f32 res = {(-0.5f).xx, (-1.0f).xx};
+}
+
+void fragment_main() {
+  modf_732aa6();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  modf_732aa6();
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  modf_732aa6();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  vertex_main_outputs v_2 = {v_1.pos};
+  return v_2;
+}
+
diff --git a/test/tint/builtins/gen/literal/modf/732aa6.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/modf/732aa6.wgsl.expected.ir.fxc.hlsl
index 0ba40c6..4e9fcfc 100644
--- a/test/tint/builtins/gen/literal/modf/732aa6.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/modf/732aa6.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,41 @@
-SKIP: FAILED
+struct modf_result_vec2_f32 {
+  float2 fract;
+  float2 whole;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct VertexOutput {
+  float4 pos;
+};
+
+struct vertex_main_outputs {
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+void modf_732aa6() {
+  modf_result_vec2_f32 res = {(-0.5f).xx, (-1.0f).xx};
+}
+
+void fragment_main() {
+  modf_732aa6();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  modf_732aa6();
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  modf_732aa6();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  vertex_main_outputs v_2 = {v_1.pos};
+  return v_2;
+}
+
diff --git a/test/tint/builtins/gen/literal/modf/8dbbbf.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/modf/8dbbbf.wgsl.expected.ir.dxc.hlsl
index 0ba40c6..de4d0a2 100644
--- a/test/tint/builtins/gen/literal/modf/8dbbbf.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/modf/8dbbbf.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,41 @@
-SKIP: FAILED
+struct modf_result_f16 {
+  float16_t fract;
+  float16_t whole;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct VertexOutput {
+  float4 pos;
+};
+
+struct vertex_main_outputs {
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+void modf_8dbbbf() {
+  modf_result_f16 res = {float16_t(-0.5h), float16_t(-1.0h)};
+}
+
+void fragment_main() {
+  modf_8dbbbf();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  modf_8dbbbf();
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  modf_8dbbbf();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  vertex_main_outputs v_2 = {v_1.pos};
+  return v_2;
+}
+
diff --git a/test/tint/builtins/gen/literal/modf/8dbbbf.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/modf/8dbbbf.wgsl.expected.ir.fxc.hlsl
index 0ba40c6..a1e8f4b 100644
--- a/test/tint/builtins/gen/literal/modf/8dbbbf.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/modf/8dbbbf.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,46 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct modf_result_f16 {
+  float16_t fract;
+  float16_t whole;
+};
+
+struct VertexOutput {
+  float4 pos;
+};
+
+struct vertex_main_outputs {
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+void modf_8dbbbf() {
+  modf_result_f16 res = {float16_t(-0.5h), float16_t(-1.0h)};
+}
+
+void fragment_main() {
+  modf_8dbbbf();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  modf_8dbbbf();
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  modf_8dbbbf();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  vertex_main_outputs v_2 = {v_1.pos};
+  return v_2;
+}
+
+FXC validation failure:
+c:\src\dawn\Shader@0x00000297650CD4A0(2,3-11): error X3000: unrecognized identifier 'float16_t'
+
diff --git a/test/tint/builtins/gen/literal/modf/995934.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/modf/995934.wgsl.expected.ir.dxc.hlsl
index 0ba40c6..e654a1c 100644
--- a/test/tint/builtins/gen/literal/modf/995934.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/modf/995934.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,41 @@
-SKIP: FAILED
+struct modf_result_vec4_f16 {
+  vector<float16_t, 4> fract;
+  vector<float16_t, 4> whole;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct VertexOutput {
+  float4 pos;
+};
+
+struct vertex_main_outputs {
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+void modf_995934() {
+  modf_result_vec4_f16 res = {(float16_t(-0.5h)).xxxx, (float16_t(-1.0h)).xxxx};
+}
+
+void fragment_main() {
+  modf_995934();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  modf_995934();
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  modf_995934();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  vertex_main_outputs v_2 = {v_1.pos};
+  return v_2;
+}
+
diff --git a/test/tint/builtins/gen/literal/modf/995934.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/modf/995934.wgsl.expected.ir.fxc.hlsl
index 0ba40c6..de25645 100644
--- a/test/tint/builtins/gen/literal/modf/995934.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/modf/995934.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,46 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct modf_result_vec4_f16 {
+  vector<float16_t, 4> fract;
+  vector<float16_t, 4> whole;
+};
+
+struct VertexOutput {
+  float4 pos;
+};
+
+struct vertex_main_outputs {
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+void modf_995934() {
+  modf_result_vec4_f16 res = {(float16_t(-0.5h)).xxxx, (float16_t(-1.0h)).xxxx};
+}
+
+void fragment_main() {
+  modf_995934();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  modf_995934();
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  modf_995934();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  vertex_main_outputs v_2 = {v_1.pos};
+  return v_2;
+}
+
+FXC validation failure:
+c:\src\dawn\Shader@0x0000020135E6F5A0(2,10-18): error X3000: syntax error: unexpected token 'float16_t'
+
diff --git a/test/tint/builtins/gen/literal/modf/a545b9.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/modf/a545b9.wgsl.expected.ir.dxc.hlsl
index 0ba40c6..3cb0c68 100644
--- a/test/tint/builtins/gen/literal/modf/a545b9.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/modf/a545b9.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,41 @@
-SKIP: FAILED
+struct modf_result_vec2_f16 {
+  vector<float16_t, 2> fract;
+  vector<float16_t, 2> whole;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct VertexOutput {
+  float4 pos;
+};
+
+struct vertex_main_outputs {
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+void modf_a545b9() {
+  modf_result_vec2_f16 res = {(float16_t(-0.5h)).xx, (float16_t(-1.0h)).xx};
+}
+
+void fragment_main() {
+  modf_a545b9();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  modf_a545b9();
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  modf_a545b9();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  vertex_main_outputs v_2 = {v_1.pos};
+  return v_2;
+}
+
diff --git a/test/tint/builtins/gen/literal/modf/a545b9.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/modf/a545b9.wgsl.expected.ir.fxc.hlsl
index 0ba40c6..2cae88e 100644
--- a/test/tint/builtins/gen/literal/modf/a545b9.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/modf/a545b9.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,46 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct modf_result_vec2_f16 {
+  vector<float16_t, 2> fract;
+  vector<float16_t, 2> whole;
+};
+
+struct VertexOutput {
+  float4 pos;
+};
+
+struct vertex_main_outputs {
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+void modf_a545b9() {
+  modf_result_vec2_f16 res = {(float16_t(-0.5h)).xx, (float16_t(-1.0h)).xx};
+}
+
+void fragment_main() {
+  modf_a545b9();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  modf_a545b9();
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  modf_a545b9();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  vertex_main_outputs v_2 = {v_1.pos};
+  return v_2;
+}
+
+FXC validation failure:
+c:\src\dawn\Shader@0x000001C6F5C309D0(2,10-18): error X3000: syntax error: unexpected token 'float16_t'
+
diff --git a/test/tint/builtins/gen/literal/modf/bbf7f7.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/modf/bbf7f7.wgsl.expected.ir.dxc.hlsl
index 0ba40c6..4a6d0fe 100644
--- a/test/tint/builtins/gen/literal/modf/bbf7f7.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/modf/bbf7f7.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,41 @@
-SKIP: FAILED
+struct modf_result_f32 {
+  float fract;
+  float whole;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct VertexOutput {
+  float4 pos;
+};
+
+struct vertex_main_outputs {
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+void modf_bbf7f7() {
+  modf_result_f32 res = {-0.5f, -1.0f};
+}
+
+void fragment_main() {
+  modf_bbf7f7();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  modf_bbf7f7();
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  modf_bbf7f7();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  vertex_main_outputs v_2 = {v_1.pos};
+  return v_2;
+}
+
diff --git a/test/tint/builtins/gen/literal/modf/bbf7f7.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/modf/bbf7f7.wgsl.expected.ir.fxc.hlsl
index 0ba40c6..4a6d0fe 100644
--- a/test/tint/builtins/gen/literal/modf/bbf7f7.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/modf/bbf7f7.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,41 @@
-SKIP: FAILED
+struct modf_result_f32 {
+  float fract;
+  float whole;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct VertexOutput {
+  float4 pos;
+};
+
+struct vertex_main_outputs {
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+void modf_bbf7f7() {
+  modf_result_f32 res = {-0.5f, -1.0f};
+}
+
+void fragment_main() {
+  modf_bbf7f7();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  modf_bbf7f7();
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  modf_bbf7f7();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  vertex_main_outputs v_2 = {v_1.pos};
+  return v_2;
+}
+
diff --git a/test/tint/builtins/gen/literal/modf/c15f48.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/modf/c15f48.wgsl.expected.ir.dxc.hlsl
index 0ba40c6..a8638c5 100644
--- a/test/tint/builtins/gen/literal/modf/c15f48.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/modf/c15f48.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,41 @@
-SKIP: FAILED
+struct modf_result_f32 {
+  float fract;
+  float whole;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct VertexOutput {
+  float4 pos;
+};
+
+struct vertex_main_outputs {
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+void modf_c15f48() {
+  modf_result_f32 res = {-0.5f, -1.0f};
+}
+
+void fragment_main() {
+  modf_c15f48();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  modf_c15f48();
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  modf_c15f48();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  vertex_main_outputs v_2 = {v_1.pos};
+  return v_2;
+}
+
diff --git a/test/tint/builtins/gen/literal/modf/c15f48.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/modf/c15f48.wgsl.expected.ir.fxc.hlsl
index 0ba40c6..a8638c5 100644
--- a/test/tint/builtins/gen/literal/modf/c15f48.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/modf/c15f48.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,41 @@
-SKIP: FAILED
+struct modf_result_f32 {
+  float fract;
+  float whole;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct VertexOutput {
+  float4 pos;
+};
+
+struct vertex_main_outputs {
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+void modf_c15f48() {
+  modf_result_f32 res = {-0.5f, -1.0f};
+}
+
+void fragment_main() {
+  modf_c15f48();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  modf_c15f48();
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  modf_c15f48();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  vertex_main_outputs v_2 = {v_1.pos};
+  return v_2;
+}
+
diff --git a/test/tint/builtins/gen/literal/modf/f3d1f9.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/modf/f3d1f9.wgsl.expected.ir.dxc.hlsl
index 0ba40c6..4912cb0 100644
--- a/test/tint/builtins/gen/literal/modf/f3d1f9.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/modf/f3d1f9.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,41 @@
-SKIP: FAILED
+struct modf_result_vec4_f32 {
+  float4 fract;
+  float4 whole;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct VertexOutput {
+  float4 pos;
+};
+
+struct vertex_main_outputs {
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+void modf_f3d1f9() {
+  modf_result_vec4_f32 res = {(-0.5f).xxxx, (-1.0f).xxxx};
+}
+
+void fragment_main() {
+  modf_f3d1f9();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  modf_f3d1f9();
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  modf_f3d1f9();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  vertex_main_outputs v_2 = {v_1.pos};
+  return v_2;
+}
+
diff --git a/test/tint/builtins/gen/literal/modf/f3d1f9.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/modf/f3d1f9.wgsl.expected.ir.fxc.hlsl
index 0ba40c6..4912cb0 100644
--- a/test/tint/builtins/gen/literal/modf/f3d1f9.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/modf/f3d1f9.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,41 @@
-SKIP: FAILED
+struct modf_result_vec4_f32 {
+  float4 fract;
+  float4 whole;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct VertexOutput {
+  float4 pos;
+};
+
+struct vertex_main_outputs {
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+void modf_f3d1f9() {
+  modf_result_vec4_f32 res = {(-0.5f).xxxx, (-1.0f).xxxx};
+}
+
+void fragment_main() {
+  modf_f3d1f9();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  modf_f3d1f9();
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  modf_f3d1f9();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  vertex_main_outputs v_2 = {v_1.pos};
+  return v_2;
+}
+
diff --git a/test/tint/builtins/gen/literal/normalize/39d5ec.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/normalize/39d5ec.wgsl.expected.ir.dxc.hlsl
index 0ba40c6..c76fdfb 100644
--- a/test/tint/builtins/gen/literal/normalize/39d5ec.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/normalize/39d5ec.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,42 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  vector<float16_t, 3> prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation vector<float16_t, 3> VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+vector<float16_t, 3> normalize_39d5ec() {
+  vector<float16_t, 3> res = (float16_t(0.5771484375h)).xxx;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store<vector<float16_t, 3> >(0u, normalize_39d5ec());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store<vector<float16_t, 3> >(0u, normalize_39d5ec());
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = normalize_39d5ec();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
diff --git a/test/tint/builtins/gen/literal/normalize/39d5ec.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/normalize/39d5ec.wgsl.expected.ir.fxc.hlsl
index 0ba40c6..aa2c6ea 100644
--- a/test/tint/builtins/gen/literal/normalize/39d5ec.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/normalize/39d5ec.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,47 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct VertexOutput {
+  float4 pos;
+  vector<float16_t, 3> prevent_dce;
+};
+
+struct vertex_main_outputs {
+  nointerpolation vector<float16_t, 3> VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+vector<float16_t, 3> normalize_39d5ec() {
+  vector<float16_t, 3> res = (float16_t(0.5771484375h)).xxx;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store<vector<float16_t, 3> >(0u, normalize_39d5ec());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store<vector<float16_t, 3> >(0u, normalize_39d5ec());
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = normalize_39d5ec();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
+FXC validation failure:
+c:\src\dawn\Shader@0x0000024A77EE5D10(3,10-18): error X3000: syntax error: unexpected token 'float16_t'
+
diff --git a/test/tint/builtins/gen/literal/normalize/4eaf61.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/normalize/4eaf61.wgsl.expected.ir.dxc.hlsl
index 0ba40c6..493eee7 100644
--- a/test/tint/builtins/gen/literal/normalize/4eaf61.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/normalize/4eaf61.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,36 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+void normalize_4eaf61() {
+  float4 res = (0.5f).xxxx;
+}
+
+void fragment_main() {
+  normalize_4eaf61();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  normalize_4eaf61();
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  normalize_4eaf61();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  vertex_main_outputs v_2 = {v_1.pos};
+  return v_2;
+}
+
diff --git a/test/tint/builtins/gen/literal/normalize/4eaf61.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/normalize/4eaf61.wgsl.expected.ir.fxc.hlsl
index 0ba40c6..493eee7 100644
--- a/test/tint/builtins/gen/literal/normalize/4eaf61.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/normalize/4eaf61.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,36 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+void normalize_4eaf61() {
+  float4 res = (0.5f).xxxx;
+}
+
+void fragment_main() {
+  normalize_4eaf61();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  normalize_4eaf61();
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  normalize_4eaf61();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  vertex_main_outputs v_2 = {v_1.pos};
+  return v_2;
+}
+
diff --git a/test/tint/builtins/gen/literal/normalize/584e47.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/normalize/584e47.wgsl.expected.ir.dxc.hlsl
index 0ba40c6..4ede2fc 100644
--- a/test/tint/builtins/gen/literal/normalize/584e47.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/normalize/584e47.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,36 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+void normalize_584e47() {
+  float2 res = (0.70710676908493041992f).xx;
+}
+
+void fragment_main() {
+  normalize_584e47();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  normalize_584e47();
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  normalize_584e47();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  vertex_main_outputs v_2 = {v_1.pos};
+  return v_2;
+}
+
diff --git a/test/tint/builtins/gen/literal/normalize/584e47.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/normalize/584e47.wgsl.expected.ir.fxc.hlsl
index 0ba40c6..4ede2fc 100644
--- a/test/tint/builtins/gen/literal/normalize/584e47.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/normalize/584e47.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,36 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+void normalize_584e47() {
+  float2 res = (0.70710676908493041992f).xx;
+}
+
+void fragment_main() {
+  normalize_584e47();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  normalize_584e47();
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  normalize_584e47();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  vertex_main_outputs v_2 = {v_1.pos};
+  return v_2;
+}
+
diff --git a/test/tint/builtins/gen/literal/normalize/64d8c0.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/normalize/64d8c0.wgsl.expected.ir.dxc.hlsl
index 0ba40c6..fc5c78c 100644
--- a/test/tint/builtins/gen/literal/normalize/64d8c0.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/normalize/64d8c0.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,42 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  float3 prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation float3 VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+float3 normalize_64d8c0() {
+  float3 res = (0.57735025882720947266f).xxx;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store3(0u, asuint(normalize_64d8c0()));
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store3(0u, asuint(normalize_64d8c0()));
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = normalize_64d8c0();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
diff --git a/test/tint/builtins/gen/literal/normalize/64d8c0.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/normalize/64d8c0.wgsl.expected.ir.fxc.hlsl
index 0ba40c6..fc5c78c 100644
--- a/test/tint/builtins/gen/literal/normalize/64d8c0.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/normalize/64d8c0.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,42 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  float3 prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation float3 VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+float3 normalize_64d8c0() {
+  float3 res = (0.57735025882720947266f).xxx;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store3(0u, asuint(normalize_64d8c0()));
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store3(0u, asuint(normalize_64d8c0()));
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = normalize_64d8c0();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
diff --git a/test/tint/builtins/gen/literal/normalize/7990f3.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/normalize/7990f3.wgsl.expected.ir.dxc.hlsl
index 0ba40c6..5b6389e 100644
--- a/test/tint/builtins/gen/literal/normalize/7990f3.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/normalize/7990f3.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,42 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  vector<float16_t, 2> prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation vector<float16_t, 2> VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+vector<float16_t, 2> normalize_7990f3() {
+  vector<float16_t, 2> res = (float16_t(0.70703125h)).xx;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store<vector<float16_t, 2> >(0u, normalize_7990f3());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store<vector<float16_t, 2> >(0u, normalize_7990f3());
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = normalize_7990f3();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
diff --git a/test/tint/builtins/gen/literal/normalize/7990f3.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/normalize/7990f3.wgsl.expected.ir.fxc.hlsl
index 0ba40c6..173bd44 100644
--- a/test/tint/builtins/gen/literal/normalize/7990f3.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/normalize/7990f3.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,47 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct VertexOutput {
+  float4 pos;
+  vector<float16_t, 2> prevent_dce;
+};
+
+struct vertex_main_outputs {
+  nointerpolation vector<float16_t, 2> VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+vector<float16_t, 2> normalize_7990f3() {
+  vector<float16_t, 2> res = (float16_t(0.70703125h)).xx;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store<vector<float16_t, 2> >(0u, normalize_7990f3());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store<vector<float16_t, 2> >(0u, normalize_7990f3());
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = normalize_7990f3();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
+FXC validation failure:
+c:\src\dawn\Shader@0x000001D9642BF7A0(3,10-18): error X3000: syntax error: unexpected token 'float16_t'
+
diff --git a/test/tint/builtins/gen/literal/normalize/9a0aab.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/normalize/9a0aab.wgsl.expected.ir.dxc.hlsl
index 0ba40c6..135fe63 100644
--- a/test/tint/builtins/gen/literal/normalize/9a0aab.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/normalize/9a0aab.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,42 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  float4 prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation float4 VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+float4 normalize_9a0aab() {
+  float4 res = (0.5f).xxxx;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store4(0u, asuint(normalize_9a0aab()));
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store4(0u, asuint(normalize_9a0aab()));
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = normalize_9a0aab();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
diff --git a/test/tint/builtins/gen/literal/normalize/9a0aab.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/normalize/9a0aab.wgsl.expected.ir.fxc.hlsl
index 0ba40c6..135fe63 100644
--- a/test/tint/builtins/gen/literal/normalize/9a0aab.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/normalize/9a0aab.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,42 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  float4 prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation float4 VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+float4 normalize_9a0aab() {
+  float4 res = (0.5f).xxxx;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store4(0u, asuint(normalize_9a0aab()));
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store4(0u, asuint(normalize_9a0aab()));
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = normalize_9a0aab();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
diff --git a/test/tint/builtins/gen/literal/normalize/b8cb8d.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/normalize/b8cb8d.wgsl.expected.ir.dxc.hlsl
index 0ba40c6..e6c2b99 100644
--- a/test/tint/builtins/gen/literal/normalize/b8cb8d.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/normalize/b8cb8d.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,42 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  vector<float16_t, 4> prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation vector<float16_t, 4> VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+vector<float16_t, 4> normalize_b8cb8d() {
+  vector<float16_t, 4> res = (float16_t(0.5h)).xxxx;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store<vector<float16_t, 4> >(0u, normalize_b8cb8d());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store<vector<float16_t, 4> >(0u, normalize_b8cb8d());
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = normalize_b8cb8d();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
diff --git a/test/tint/builtins/gen/literal/normalize/b8cb8d.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/normalize/b8cb8d.wgsl.expected.ir.fxc.hlsl
index 0ba40c6..334d816 100644
--- a/test/tint/builtins/gen/literal/normalize/b8cb8d.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/normalize/b8cb8d.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,47 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct VertexOutput {
+  float4 pos;
+  vector<float16_t, 4> prevent_dce;
+};
+
+struct vertex_main_outputs {
+  nointerpolation vector<float16_t, 4> VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+vector<float16_t, 4> normalize_b8cb8d() {
+  vector<float16_t, 4> res = (float16_t(0.5h)).xxxx;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store<vector<float16_t, 4> >(0u, normalize_b8cb8d());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store<vector<float16_t, 4> >(0u, normalize_b8cb8d());
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = normalize_b8cb8d();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
+FXC validation failure:
+c:\src\dawn\Shader@0x00000184BEB56490(3,10-18): error X3000: syntax error: unexpected token 'float16_t'
+
diff --git a/test/tint/builtins/gen/literal/normalize/e7def8.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/normalize/e7def8.wgsl.expected.ir.dxc.hlsl
index 0ba40c6..fcb35c9 100644
--- a/test/tint/builtins/gen/literal/normalize/e7def8.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/normalize/e7def8.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,36 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+void normalize_e7def8() {
+  float3 res = (0.57735025882720947266f).xxx;
+}
+
+void fragment_main() {
+  normalize_e7def8();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  normalize_e7def8();
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  normalize_e7def8();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  vertex_main_outputs v_2 = {v_1.pos};
+  return v_2;
+}
+
diff --git a/test/tint/builtins/gen/literal/normalize/e7def8.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/normalize/e7def8.wgsl.expected.ir.fxc.hlsl
index 0ba40c6..fcb35c9 100644
--- a/test/tint/builtins/gen/literal/normalize/e7def8.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/normalize/e7def8.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,36 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+void normalize_e7def8() {
+  float3 res = (0.57735025882720947266f).xxx;
+}
+
+void fragment_main() {
+  normalize_e7def8();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  normalize_e7def8();
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  normalize_e7def8();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  vertex_main_outputs v_2 = {v_1.pos};
+  return v_2;
+}
+
diff --git a/test/tint/builtins/gen/literal/normalize/fc2ef1.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/normalize/fc2ef1.wgsl.expected.ir.dxc.hlsl
index 0ba40c6..2367a96 100644
--- a/test/tint/builtins/gen/literal/normalize/fc2ef1.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/normalize/fc2ef1.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,42 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  float2 prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation float2 VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+float2 normalize_fc2ef1() {
+  float2 res = (0.70710676908493041992f).xx;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store2(0u, asuint(normalize_fc2ef1()));
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store2(0u, asuint(normalize_fc2ef1()));
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = normalize_fc2ef1();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
diff --git a/test/tint/builtins/gen/literal/normalize/fc2ef1.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/normalize/fc2ef1.wgsl.expected.ir.fxc.hlsl
index 0ba40c6..2367a96 100644
--- a/test/tint/builtins/gen/literal/normalize/fc2ef1.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/normalize/fc2ef1.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,42 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  float2 prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation float2 VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+float2 normalize_fc2ef1() {
+  float2 res = (0.70710676908493041992f).xx;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store2(0u, asuint(normalize_fc2ef1()));
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store2(0u, asuint(normalize_fc2ef1()));
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = normalize_fc2ef1();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
diff --git a/test/tint/builtins/gen/literal/pack2x16float/0e97b3.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/pack2x16float/0e97b3.wgsl.expected.ir.dxc.hlsl
index 0ba40c6..1fc3781 100644
--- a/test/tint/builtins/gen/literal/pack2x16float/0e97b3.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/pack2x16float/0e97b3.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,42 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  uint prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation uint VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+uint pack2x16float_0e97b3() {
+  uint res = 1006648320u;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store(0u, pack2x16float_0e97b3());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store(0u, pack2x16float_0e97b3());
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = pack2x16float_0e97b3();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
diff --git a/test/tint/builtins/gen/literal/pack2x16float/0e97b3.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/pack2x16float/0e97b3.wgsl.expected.ir.fxc.hlsl
index 0ba40c6..1fc3781 100644
--- a/test/tint/builtins/gen/literal/pack2x16float/0e97b3.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/pack2x16float/0e97b3.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,42 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  uint prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation uint VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+uint pack2x16float_0e97b3() {
+  uint res = 1006648320u;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store(0u, pack2x16float_0e97b3());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store(0u, pack2x16float_0e97b3());
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = pack2x16float_0e97b3();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
diff --git a/test/tint/builtins/gen/literal/pack2x16snorm/6c169b.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/pack2x16snorm/6c169b.wgsl.expected.ir.dxc.hlsl
index 0ba40c6..c8fe69a 100644
--- a/test/tint/builtins/gen/literal/pack2x16snorm/6c169b.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/pack2x16snorm/6c169b.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,42 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  uint prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation uint VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+uint pack2x16snorm_6c169b() {
+  uint res = 2147450879u;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store(0u, pack2x16snorm_6c169b());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store(0u, pack2x16snorm_6c169b());
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = pack2x16snorm_6c169b();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
diff --git a/test/tint/builtins/gen/literal/pack2x16snorm/6c169b.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/pack2x16snorm/6c169b.wgsl.expected.ir.fxc.hlsl
index 0ba40c6..c8fe69a 100644
--- a/test/tint/builtins/gen/literal/pack2x16snorm/6c169b.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/pack2x16snorm/6c169b.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,42 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  uint prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation uint VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+uint pack2x16snorm_6c169b() {
+  uint res = 2147450879u;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store(0u, pack2x16snorm_6c169b());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store(0u, pack2x16snorm_6c169b());
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = pack2x16snorm_6c169b();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
diff --git a/test/tint/builtins/gen/literal/pack2x16unorm/0f08e4.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/pack2x16unorm/0f08e4.wgsl.expected.ir.dxc.hlsl
index 0ba40c6..beef80d 100644
--- a/test/tint/builtins/gen/literal/pack2x16unorm/0f08e4.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/pack2x16unorm/0f08e4.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,42 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  uint prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation uint VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+uint pack2x16unorm_0f08e4() {
+  uint res = 4294967295u;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store(0u, pack2x16unorm_0f08e4());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store(0u, pack2x16unorm_0f08e4());
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = pack2x16unorm_0f08e4();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
diff --git a/test/tint/builtins/gen/literal/pack2x16unorm/0f08e4.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/pack2x16unorm/0f08e4.wgsl.expected.ir.fxc.hlsl
index 0ba40c6..beef80d 100644
--- a/test/tint/builtins/gen/literal/pack2x16unorm/0f08e4.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/pack2x16unorm/0f08e4.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,42 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  uint prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation uint VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+uint pack2x16unorm_0f08e4() {
+  uint res = 4294967295u;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store(0u, pack2x16unorm_0f08e4());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store(0u, pack2x16unorm_0f08e4());
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = pack2x16unorm_0f08e4();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
diff --git a/test/tint/builtins/gen/literal/pack4x8snorm/4d22e7.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/pack4x8snorm/4d22e7.wgsl.expected.ir.dxc.hlsl
index 0ba40c6..abfa027 100644
--- a/test/tint/builtins/gen/literal/pack4x8snorm/4d22e7.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/pack4x8snorm/4d22e7.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,42 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  uint prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation uint VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+uint pack4x8snorm_4d22e7() {
+  uint res = 2139062143u;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store(0u, pack4x8snorm_4d22e7());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store(0u, pack4x8snorm_4d22e7());
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = pack4x8snorm_4d22e7();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
diff --git a/test/tint/builtins/gen/literal/pack4x8snorm/4d22e7.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/pack4x8snorm/4d22e7.wgsl.expected.ir.fxc.hlsl
index 0ba40c6..abfa027 100644
--- a/test/tint/builtins/gen/literal/pack4x8snorm/4d22e7.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/pack4x8snorm/4d22e7.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,42 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  uint prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation uint VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+uint pack4x8snorm_4d22e7() {
+  uint res = 2139062143u;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store(0u, pack4x8snorm_4d22e7());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store(0u, pack4x8snorm_4d22e7());
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = pack4x8snorm_4d22e7();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
diff --git a/test/tint/builtins/gen/literal/pack4x8unorm/95c456.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/pack4x8unorm/95c456.wgsl.expected.ir.dxc.hlsl
index 0ba40c6..0ffe8fe 100644
--- a/test/tint/builtins/gen/literal/pack4x8unorm/95c456.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/pack4x8unorm/95c456.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,42 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  uint prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation uint VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+uint pack4x8unorm_95c456() {
+  uint res = 4294967295u;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store(0u, pack4x8unorm_95c456());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store(0u, pack4x8unorm_95c456());
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = pack4x8unorm_95c456();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
diff --git a/test/tint/builtins/gen/literal/pack4x8unorm/95c456.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/pack4x8unorm/95c456.wgsl.expected.ir.fxc.hlsl
index 0ba40c6..0ffe8fe 100644
--- a/test/tint/builtins/gen/literal/pack4x8unorm/95c456.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/pack4x8unorm/95c456.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,42 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  uint prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation uint VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+uint pack4x8unorm_95c456() {
+  uint res = 4294967295u;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store(0u, pack4x8unorm_95c456());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store(0u, pack4x8unorm_95c456());
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = pack4x8unorm_95c456();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
diff --git a/test/tint/builtins/gen/literal/pack4xI8/bfce01.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/pack4xI8/bfce01.wgsl.expected.ir.dxc.hlsl
index 0ba40c6..339c6bf 100644
--- a/test/tint/builtins/gen/literal/pack4xI8/bfce01.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/pack4xI8/bfce01.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,42 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  uint prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation uint VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+uint pack4xI8_bfce01() {
+  uint res = 16843009u;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store(0u, pack4xI8_bfce01());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store(0u, pack4xI8_bfce01());
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = pack4xI8_bfce01();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
diff --git a/test/tint/builtins/gen/literal/pack4xI8/bfce01.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/pack4xI8/bfce01.wgsl.expected.ir.fxc.hlsl
index 0ba40c6..339c6bf 100644
--- a/test/tint/builtins/gen/literal/pack4xI8/bfce01.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/pack4xI8/bfce01.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,42 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  uint prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation uint VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+uint pack4xI8_bfce01() {
+  uint res = 16843009u;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store(0u, pack4xI8_bfce01());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store(0u, pack4xI8_bfce01());
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = pack4xI8_bfce01();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
diff --git a/test/tint/builtins/gen/literal/pack4xI8Clamp/e42b2a.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/pack4xI8Clamp/e42b2a.wgsl.expected.ir.dxc.hlsl
index 0ba40c6..89f136b 100644
--- a/test/tint/builtins/gen/literal/pack4xI8Clamp/e42b2a.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/pack4xI8Clamp/e42b2a.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,42 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  uint prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation uint VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+uint pack4xI8Clamp_e42b2a() {
+  uint res = 16843009u;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store(0u, pack4xI8Clamp_e42b2a());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store(0u, pack4xI8Clamp_e42b2a());
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = pack4xI8Clamp_e42b2a();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
diff --git a/test/tint/builtins/gen/literal/pack4xI8Clamp/e42b2a.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/pack4xI8Clamp/e42b2a.wgsl.expected.ir.fxc.hlsl
index 0ba40c6..89f136b 100644
--- a/test/tint/builtins/gen/literal/pack4xI8Clamp/e42b2a.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/pack4xI8Clamp/e42b2a.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,42 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  uint prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation uint VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+uint pack4xI8Clamp_e42b2a() {
+  uint res = 16843009u;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store(0u, pack4xI8Clamp_e42b2a());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store(0u, pack4xI8Clamp_e42b2a());
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = pack4xI8Clamp_e42b2a();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
diff --git a/test/tint/builtins/gen/literal/pack4xU8/b70b53.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/pack4xU8/b70b53.wgsl.expected.ir.dxc.hlsl
index 0ba40c6..173cff3 100644
--- a/test/tint/builtins/gen/literal/pack4xU8/b70b53.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/pack4xU8/b70b53.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,42 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  uint prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation uint VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+uint pack4xU8_b70b53() {
+  uint res = 16843009u;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store(0u, pack4xU8_b70b53());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store(0u, pack4xU8_b70b53());
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = pack4xU8_b70b53();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
diff --git a/test/tint/builtins/gen/literal/pack4xU8/b70b53.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/pack4xU8/b70b53.wgsl.expected.ir.fxc.hlsl
index 0ba40c6..173cff3 100644
--- a/test/tint/builtins/gen/literal/pack4xU8/b70b53.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/pack4xU8/b70b53.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,42 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  uint prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation uint VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+uint pack4xU8_b70b53() {
+  uint res = 16843009u;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store(0u, pack4xU8_b70b53());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store(0u, pack4xU8_b70b53());
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = pack4xU8_b70b53();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
diff --git a/test/tint/builtins/gen/literal/pack4xU8Clamp/6b8c1b.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/pack4xU8Clamp/6b8c1b.wgsl.expected.ir.dxc.hlsl
index 0ba40c6..cc3819c 100644
--- a/test/tint/builtins/gen/literal/pack4xU8Clamp/6b8c1b.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/pack4xU8Clamp/6b8c1b.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,42 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  uint prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation uint VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+uint pack4xU8Clamp_6b8c1b() {
+  uint res = 16843009u;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store(0u, pack4xU8Clamp_6b8c1b());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store(0u, pack4xU8Clamp_6b8c1b());
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = pack4xU8Clamp_6b8c1b();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
diff --git a/test/tint/builtins/gen/literal/pack4xU8Clamp/6b8c1b.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/pack4xU8Clamp/6b8c1b.wgsl.expected.ir.fxc.hlsl
index 0ba40c6..cc3819c 100644
--- a/test/tint/builtins/gen/literal/pack4xU8Clamp/6b8c1b.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/pack4xU8Clamp/6b8c1b.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,42 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  uint prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation uint VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+uint pack4xU8Clamp_6b8c1b() {
+  uint res = 16843009u;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store(0u, pack4xU8Clamp_6b8c1b());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store(0u, pack4xU8Clamp_6b8c1b());
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = pack4xU8Clamp_6b8c1b();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
diff --git a/test/tint/builtins/gen/literal/pow/04a908.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/pow/04a908.wgsl.expected.ir.dxc.hlsl
index 0ba40c6..0a93285 100644
--- a/test/tint/builtins/gen/literal/pow/04a908.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/pow/04a908.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,42 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  float4 prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation float4 VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+float4 pow_04a908() {
+  float4 res = (1.0f).xxxx;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store4(0u, asuint(pow_04a908()));
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store4(0u, asuint(pow_04a908()));
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = pow_04a908();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
diff --git a/test/tint/builtins/gen/literal/pow/04a908.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/pow/04a908.wgsl.expected.ir.fxc.hlsl
index 0ba40c6..0a93285 100644
--- a/test/tint/builtins/gen/literal/pow/04a908.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/pow/04a908.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,42 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  float4 prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation float4 VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+float4 pow_04a908() {
+  float4 res = (1.0f).xxxx;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store4(0u, asuint(pow_04a908()));
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store4(0u, asuint(pow_04a908()));
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = pow_04a908();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
diff --git a/test/tint/builtins/gen/literal/pow/46e029.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/pow/46e029.wgsl.expected.ir.dxc.hlsl
index 0ba40c6..22773b6 100644
--- a/test/tint/builtins/gen/literal/pow/46e029.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/pow/46e029.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,42 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  float prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation float VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+float pow_46e029() {
+  float res = 1.0f;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store(0u, asuint(pow_46e029()));
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store(0u, asuint(pow_46e029()));
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = pow_46e029();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
diff --git a/test/tint/builtins/gen/literal/pow/46e029.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/pow/46e029.wgsl.expected.ir.fxc.hlsl
index 0ba40c6..22773b6 100644
--- a/test/tint/builtins/gen/literal/pow/46e029.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/pow/46e029.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,42 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  float prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation float VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+float pow_46e029() {
+  float res = 1.0f;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store(0u, asuint(pow_46e029()));
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store(0u, asuint(pow_46e029()));
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = pow_46e029();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
diff --git a/test/tint/builtins/gen/literal/pow/4a46c9.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/pow/4a46c9.wgsl.expected.ir.dxc.hlsl
index 0ba40c6..4f25d02 100644
--- a/test/tint/builtins/gen/literal/pow/4a46c9.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/pow/4a46c9.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,42 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  float3 prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation float3 VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+float3 pow_4a46c9() {
+  float3 res = (1.0f).xxx;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store3(0u, asuint(pow_4a46c9()));
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store3(0u, asuint(pow_4a46c9()));
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = pow_4a46c9();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
diff --git a/test/tint/builtins/gen/literal/pow/4a46c9.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/pow/4a46c9.wgsl.expected.ir.fxc.hlsl
index 0ba40c6..4f25d02 100644
--- a/test/tint/builtins/gen/literal/pow/4a46c9.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/pow/4a46c9.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,42 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  float3 prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation float3 VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+float3 pow_4a46c9() {
+  float3 res = (1.0f).xxx;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store3(0u, asuint(pow_4a46c9()));
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store3(0u, asuint(pow_4a46c9()));
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = pow_4a46c9();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
diff --git a/test/tint/builtins/gen/literal/pow/4f33b2.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/pow/4f33b2.wgsl.expected.ir.dxc.hlsl
index 0ba40c6..82ec4ca 100644
--- a/test/tint/builtins/gen/literal/pow/4f33b2.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/pow/4f33b2.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,42 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  vector<float16_t, 4> prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation vector<float16_t, 4> VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+vector<float16_t, 4> pow_4f33b2() {
+  vector<float16_t, 4> res = (float16_t(1.0h)).xxxx;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store<vector<float16_t, 4> >(0u, pow_4f33b2());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store<vector<float16_t, 4> >(0u, pow_4f33b2());
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = pow_4f33b2();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
diff --git a/test/tint/builtins/gen/literal/pow/4f33b2.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/pow/4f33b2.wgsl.expected.ir.fxc.hlsl
index 0ba40c6..ebf1000 100644
--- a/test/tint/builtins/gen/literal/pow/4f33b2.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/pow/4f33b2.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,47 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct VertexOutput {
+  float4 pos;
+  vector<float16_t, 4> prevent_dce;
+};
+
+struct vertex_main_outputs {
+  nointerpolation vector<float16_t, 4> VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+vector<float16_t, 4> pow_4f33b2() {
+  vector<float16_t, 4> res = (float16_t(1.0h)).xxxx;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store<vector<float16_t, 4> >(0u, pow_4f33b2());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store<vector<float16_t, 4> >(0u, pow_4f33b2());
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = pow_4f33b2();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
+FXC validation failure:
+c:\src\dawn\Shader@0x000001CCE054C430(3,10-18): error X3000: syntax error: unexpected token 'float16_t'
+
diff --git a/test/tint/builtins/gen/literal/pow/749c42.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/pow/749c42.wgsl.expected.ir.dxc.hlsl
index 0ba40c6..0a3e3c5 100644
--- a/test/tint/builtins/gen/literal/pow/749c42.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/pow/749c42.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,36 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+void pow_749c42() {
+  float res = 1.0f;
+}
+
+void fragment_main() {
+  pow_749c42();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  pow_749c42();
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  pow_749c42();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  vertex_main_outputs v_2 = {v_1.pos};
+  return v_2;
+}
+
diff --git a/test/tint/builtins/gen/literal/pow/749c42.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/pow/749c42.wgsl.expected.ir.fxc.hlsl
index 0ba40c6..0a3e3c5 100644
--- a/test/tint/builtins/gen/literal/pow/749c42.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/pow/749c42.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,36 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+void pow_749c42() {
+  float res = 1.0f;
+}
+
+void fragment_main() {
+  pow_749c42();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  pow_749c42();
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  pow_749c42();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  vertex_main_outputs v_2 = {v_1.pos};
+  return v_2;
+}
+
diff --git a/test/tint/builtins/gen/literal/pow/a8f6b2.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/pow/a8f6b2.wgsl.expected.ir.dxc.hlsl
index 0ba40c6..251d327 100644
--- a/test/tint/builtins/gen/literal/pow/a8f6b2.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/pow/a8f6b2.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,36 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+void pow_a8f6b2() {
+  float4 res = (1.0f).xxxx;
+}
+
+void fragment_main() {
+  pow_a8f6b2();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  pow_a8f6b2();
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  pow_a8f6b2();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  vertex_main_outputs v_2 = {v_1.pos};
+  return v_2;
+}
+
diff --git a/test/tint/builtins/gen/literal/pow/a8f6b2.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/pow/a8f6b2.wgsl.expected.ir.fxc.hlsl
index 0ba40c6..251d327 100644
--- a/test/tint/builtins/gen/literal/pow/a8f6b2.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/pow/a8f6b2.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,36 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+void pow_a8f6b2() {
+  float4 res = (1.0f).xxxx;
+}
+
+void fragment_main() {
+  pow_a8f6b2();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  pow_a8f6b2();
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  pow_a8f6b2();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  vertex_main_outputs v_2 = {v_1.pos};
+  return v_2;
+}
+
diff --git a/test/tint/builtins/gen/literal/pow/bc91ed.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/pow/bc91ed.wgsl.expected.ir.dxc.hlsl
index 0ba40c6..af45acb 100644
--- a/test/tint/builtins/gen/literal/pow/bc91ed.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/pow/bc91ed.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,36 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+void pow_bc91ed() {
+  float2 res = (1.0f).xx;
+}
+
+void fragment_main() {
+  pow_bc91ed();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  pow_bc91ed();
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  pow_bc91ed();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  vertex_main_outputs v_2 = {v_1.pos};
+  return v_2;
+}
+
diff --git a/test/tint/builtins/gen/literal/pow/bc91ed.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/pow/bc91ed.wgsl.expected.ir.fxc.hlsl
index 0ba40c6..af45acb 100644
--- a/test/tint/builtins/gen/literal/pow/bc91ed.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/pow/bc91ed.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,36 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+void pow_bc91ed() {
+  float2 res = (1.0f).xx;
+}
+
+void fragment_main() {
+  pow_bc91ed();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  pow_bc91ed();
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  pow_bc91ed();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  vertex_main_outputs v_2 = {v_1.pos};
+  return v_2;
+}
+
diff --git a/test/tint/builtins/gen/literal/pow/ce9ef5.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/pow/ce9ef5.wgsl.expected.ir.dxc.hlsl
index 0ba40c6..2ee9ea1 100644
--- a/test/tint/builtins/gen/literal/pow/ce9ef5.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/pow/ce9ef5.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,42 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  float16_t prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation float16_t VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+float16_t pow_ce9ef5() {
+  float16_t res = float16_t(1.0h);
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store<float16_t>(0u, pow_ce9ef5());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store<float16_t>(0u, pow_ce9ef5());
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = pow_ce9ef5();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
diff --git a/test/tint/builtins/gen/literal/pow/ce9ef5.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/pow/ce9ef5.wgsl.expected.ir.fxc.hlsl
index 0ba40c6..2945416 100644
--- a/test/tint/builtins/gen/literal/pow/ce9ef5.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/pow/ce9ef5.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,47 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct VertexOutput {
+  float4 pos;
+  float16_t prevent_dce;
+};
+
+struct vertex_main_outputs {
+  nointerpolation float16_t VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+float16_t pow_ce9ef5() {
+  float16_t res = float16_t(1.0h);
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store<float16_t>(0u, pow_ce9ef5());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store<float16_t>(0u, pow_ce9ef5());
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = pow_ce9ef5();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
+FXC validation failure:
+c:\src\dawn\Shader@0x000001CE9D49DBA0(3,3-11): error X3000: unrecognized identifier 'float16_t'
+
diff --git a/test/tint/builtins/gen/literal/pow/e42f20.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/pow/e42f20.wgsl.expected.ir.dxc.hlsl
index 0ba40c6..324c872 100644
--- a/test/tint/builtins/gen/literal/pow/e42f20.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/pow/e42f20.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,36 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+void pow_e42f20() {
+  float3 res = (1.0f).xxx;
+}
+
+void fragment_main() {
+  pow_e42f20();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  pow_e42f20();
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  pow_e42f20();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  vertex_main_outputs v_2 = {v_1.pos};
+  return v_2;
+}
+
diff --git a/test/tint/builtins/gen/literal/pow/e42f20.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/pow/e42f20.wgsl.expected.ir.fxc.hlsl
index 0ba40c6..324c872 100644
--- a/test/tint/builtins/gen/literal/pow/e42f20.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/pow/e42f20.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,36 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+void pow_e42f20() {
+  float3 res = (1.0f).xxx;
+}
+
+void fragment_main() {
+  pow_e42f20();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  pow_e42f20();
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  pow_e42f20();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  vertex_main_outputs v_2 = {v_1.pos};
+  return v_2;
+}
+
diff --git a/test/tint/builtins/gen/literal/pow/e60ea5.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/pow/e60ea5.wgsl.expected.ir.dxc.hlsl
index 0ba40c6..4f2ecc0 100644
--- a/test/tint/builtins/gen/literal/pow/e60ea5.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/pow/e60ea5.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,42 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  float2 prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation float2 VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+float2 pow_e60ea5() {
+  float2 res = (1.0f).xx;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store2(0u, asuint(pow_e60ea5()));
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store2(0u, asuint(pow_e60ea5()));
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = pow_e60ea5();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
diff --git a/test/tint/builtins/gen/literal/pow/e60ea5.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/pow/e60ea5.wgsl.expected.ir.fxc.hlsl
index 0ba40c6..4f2ecc0 100644
--- a/test/tint/builtins/gen/literal/pow/e60ea5.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/pow/e60ea5.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,42 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  float2 prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation float2 VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+float2 pow_e60ea5() {
+  float2 res = (1.0f).xx;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store2(0u, asuint(pow_e60ea5()));
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store2(0u, asuint(pow_e60ea5()));
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = pow_e60ea5();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
diff --git a/test/tint/builtins/gen/literal/pow/f37b25.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/pow/f37b25.wgsl.expected.ir.dxc.hlsl
index 0ba40c6..0261be3 100644
--- a/test/tint/builtins/gen/literal/pow/f37b25.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/pow/f37b25.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,42 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  vector<float16_t, 2> prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation vector<float16_t, 2> VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+vector<float16_t, 2> pow_f37b25() {
+  vector<float16_t, 2> res = (float16_t(1.0h)).xx;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store<vector<float16_t, 2> >(0u, pow_f37b25());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store<vector<float16_t, 2> >(0u, pow_f37b25());
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = pow_f37b25();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
diff --git a/test/tint/builtins/gen/literal/pow/f37b25.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/pow/f37b25.wgsl.expected.ir.fxc.hlsl
index 0ba40c6..681c51c 100644
--- a/test/tint/builtins/gen/literal/pow/f37b25.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/pow/f37b25.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,47 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct VertexOutput {
+  float4 pos;
+  vector<float16_t, 2> prevent_dce;
+};
+
+struct vertex_main_outputs {
+  nointerpolation vector<float16_t, 2> VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+vector<float16_t, 2> pow_f37b25() {
+  vector<float16_t, 2> res = (float16_t(1.0h)).xx;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store<vector<float16_t, 2> >(0u, pow_f37b25());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store<vector<float16_t, 2> >(0u, pow_f37b25());
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = pow_f37b25();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
+FXC validation failure:
+c:\src\dawn\Shader@0x0000023BC592E440(3,10-18): error X3000: syntax error: unexpected token 'float16_t'
+
diff --git a/test/tint/builtins/gen/literal/pow/fa5429.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/pow/fa5429.wgsl.expected.ir.dxc.hlsl
index 0ba40c6..ab8d94a 100644
--- a/test/tint/builtins/gen/literal/pow/fa5429.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/pow/fa5429.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,42 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  vector<float16_t, 3> prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation vector<float16_t, 3> VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+vector<float16_t, 3> pow_fa5429() {
+  vector<float16_t, 3> res = (float16_t(1.0h)).xxx;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store<vector<float16_t, 3> >(0u, pow_fa5429());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store<vector<float16_t, 3> >(0u, pow_fa5429());
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = pow_fa5429();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
diff --git a/test/tint/builtins/gen/literal/pow/fa5429.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/pow/fa5429.wgsl.expected.ir.fxc.hlsl
index 0ba40c6..f99d99a 100644
--- a/test/tint/builtins/gen/literal/pow/fa5429.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/pow/fa5429.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,47 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct VertexOutput {
+  float4 pos;
+  vector<float16_t, 3> prevent_dce;
+};
+
+struct vertex_main_outputs {
+  nointerpolation vector<float16_t, 3> VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+vector<float16_t, 3> pow_fa5429() {
+  vector<float16_t, 3> res = (float16_t(1.0h)).xxx;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store<vector<float16_t, 3> >(0u, pow_fa5429());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store<vector<float16_t, 3> >(0u, pow_fa5429());
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = pow_fa5429();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
+FXC validation failure:
+c:\src\dawn\Shader@0x000002AA2607CD00(3,10-18): error X3000: syntax error: unexpected token 'float16_t'
+
diff --git a/test/tint/builtins/gen/literal/quantizeToF16/12e50e.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/quantizeToF16/12e50e.wgsl.expected.ir.dxc.hlsl
index 0ba40c6..67512be 100644
--- a/test/tint/builtins/gen/literal/quantizeToF16/12e50e.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/quantizeToF16/12e50e.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,42 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  float prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation float VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+float quantizeToF16_12e50e() {
+  float res = 1.0f;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store(0u, asuint(quantizeToF16_12e50e()));
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store(0u, asuint(quantizeToF16_12e50e()));
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = quantizeToF16_12e50e();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
diff --git a/test/tint/builtins/gen/literal/quantizeToF16/12e50e.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/quantizeToF16/12e50e.wgsl.expected.ir.fxc.hlsl
index 0ba40c6..67512be 100644
--- a/test/tint/builtins/gen/literal/quantizeToF16/12e50e.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/quantizeToF16/12e50e.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,42 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  float prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation float VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+float quantizeToF16_12e50e() {
+  float res = 1.0f;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store(0u, asuint(quantizeToF16_12e50e()));
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store(0u, asuint(quantizeToF16_12e50e()));
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = quantizeToF16_12e50e();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
diff --git a/test/tint/builtins/gen/literal/quantizeToF16/2cddf3.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/quantizeToF16/2cddf3.wgsl.expected.ir.dxc.hlsl
index 0ba40c6..096700f 100644
--- a/test/tint/builtins/gen/literal/quantizeToF16/2cddf3.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/quantizeToF16/2cddf3.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,42 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  float2 prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation float2 VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+float2 quantizeToF16_2cddf3() {
+  float2 res = (1.0f).xx;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store2(0u, asuint(quantizeToF16_2cddf3()));
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store2(0u, asuint(quantizeToF16_2cddf3()));
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = quantizeToF16_2cddf3();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
diff --git a/test/tint/builtins/gen/literal/quantizeToF16/2cddf3.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/quantizeToF16/2cddf3.wgsl.expected.ir.fxc.hlsl
index 0ba40c6..096700f 100644
--- a/test/tint/builtins/gen/literal/quantizeToF16/2cddf3.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/quantizeToF16/2cddf3.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,42 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  float2 prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation float2 VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+float2 quantizeToF16_2cddf3() {
+  float2 res = (1.0f).xx;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store2(0u, asuint(quantizeToF16_2cddf3()));
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store2(0u, asuint(quantizeToF16_2cddf3()));
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = quantizeToF16_2cddf3();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
diff --git a/test/tint/builtins/gen/literal/quantizeToF16/cba294.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/quantizeToF16/cba294.wgsl.expected.ir.dxc.hlsl
index 0ba40c6..49f77f7 100644
--- a/test/tint/builtins/gen/literal/quantizeToF16/cba294.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/quantizeToF16/cba294.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,42 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  float4 prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation float4 VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+float4 quantizeToF16_cba294() {
+  float4 res = (1.0f).xxxx;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store4(0u, asuint(quantizeToF16_cba294()));
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store4(0u, asuint(quantizeToF16_cba294()));
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = quantizeToF16_cba294();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
diff --git a/test/tint/builtins/gen/literal/quantizeToF16/cba294.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/quantizeToF16/cba294.wgsl.expected.ir.fxc.hlsl
index 0ba40c6..49f77f7 100644
--- a/test/tint/builtins/gen/literal/quantizeToF16/cba294.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/quantizeToF16/cba294.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,42 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  float4 prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation float4 VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+float4 quantizeToF16_cba294() {
+  float4 res = (1.0f).xxxx;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store4(0u, asuint(quantizeToF16_cba294()));
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store4(0u, asuint(quantizeToF16_cba294()));
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = quantizeToF16_cba294();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
diff --git a/test/tint/builtins/gen/literal/quantizeToF16/e8fd14.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/quantizeToF16/e8fd14.wgsl.expected.ir.dxc.hlsl
index 0ba40c6..46cac76 100644
--- a/test/tint/builtins/gen/literal/quantizeToF16/e8fd14.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/quantizeToF16/e8fd14.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,42 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  float3 prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation float3 VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+float3 quantizeToF16_e8fd14() {
+  float3 res = (1.0f).xxx;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store3(0u, asuint(quantizeToF16_e8fd14()));
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store3(0u, asuint(quantizeToF16_e8fd14()));
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = quantizeToF16_e8fd14();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
diff --git a/test/tint/builtins/gen/literal/quantizeToF16/e8fd14.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/quantizeToF16/e8fd14.wgsl.expected.ir.fxc.hlsl
index 0ba40c6..46cac76 100644
--- a/test/tint/builtins/gen/literal/quantizeToF16/e8fd14.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/quantizeToF16/e8fd14.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,42 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  float3 prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation float3 VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+float3 quantizeToF16_e8fd14() {
+  float3 res = (1.0f).xxx;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store3(0u, asuint(quantizeToF16_e8fd14()));
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store3(0u, asuint(quantizeToF16_e8fd14()));
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = quantizeToF16_e8fd14();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
diff --git a/test/tint/builtins/gen/literal/radians/09b7fc.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/radians/09b7fc.wgsl.expected.ir.dxc.hlsl
index 0ba40c6..0a01127 100644
--- a/test/tint/builtins/gen/literal/radians/09b7fc.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/radians/09b7fc.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,42 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  float4 prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation float4 VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+float4 radians_09b7fc() {
+  float4 res = (0.01745329238474369049f).xxxx;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store4(0u, asuint(radians_09b7fc()));
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store4(0u, asuint(radians_09b7fc()));
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = radians_09b7fc();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
diff --git a/test/tint/builtins/gen/literal/radians/09b7fc.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/radians/09b7fc.wgsl.expected.ir.fxc.hlsl
index 0ba40c6..0a01127 100644
--- a/test/tint/builtins/gen/literal/radians/09b7fc.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/radians/09b7fc.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,42 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  float4 prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation float4 VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+float4 radians_09b7fc() {
+  float4 res = (0.01745329238474369049f).xxxx;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store4(0u, asuint(radians_09b7fc()));
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store4(0u, asuint(radians_09b7fc()));
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = radians_09b7fc();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
diff --git a/test/tint/builtins/gen/literal/radians/208fd9.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/radians/208fd9.wgsl.expected.ir.dxc.hlsl
index 0ba40c6..4154385 100644
--- a/test/tint/builtins/gen/literal/radians/208fd9.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/radians/208fd9.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,42 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  float16_t prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation float16_t VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+float16_t radians_208fd9() {
+  float16_t res = float16_t(0.0174407958984375h);
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store<float16_t>(0u, radians_208fd9());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store<float16_t>(0u, radians_208fd9());
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = radians_208fd9();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
diff --git a/test/tint/builtins/gen/literal/radians/208fd9.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/radians/208fd9.wgsl.expected.ir.fxc.hlsl
index 0ba40c6..5185e94 100644
--- a/test/tint/builtins/gen/literal/radians/208fd9.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/radians/208fd9.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,47 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct VertexOutput {
+  float4 pos;
+  float16_t prevent_dce;
+};
+
+struct vertex_main_outputs {
+  nointerpolation float16_t VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+float16_t radians_208fd9() {
+  float16_t res = float16_t(0.0174407958984375h);
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store<float16_t>(0u, radians_208fd9());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store<float16_t>(0u, radians_208fd9());
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = radians_208fd9();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
+FXC validation failure:
+c:\src\dawn\Shader@0x000001EE10400470(3,3-11): error X3000: unrecognized identifier 'float16_t'
+
diff --git a/test/tint/builtins/gen/literal/radians/379214.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/radians/379214.wgsl.expected.ir.dxc.hlsl
index 0ba40c6..c9363fe 100644
--- a/test/tint/builtins/gen/literal/radians/379214.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/radians/379214.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,36 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+void radians_379214() {
+  float3 res = (0.01745329238474369049f).xxx;
+}
+
+void fragment_main() {
+  radians_379214();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  radians_379214();
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  radians_379214();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  vertex_main_outputs v_2 = {v_1.pos};
+  return v_2;
+}
+
diff --git a/test/tint/builtins/gen/literal/radians/379214.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/radians/379214.wgsl.expected.ir.fxc.hlsl
index 0ba40c6..c9363fe 100644
--- a/test/tint/builtins/gen/literal/radians/379214.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/radians/379214.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,36 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+void radians_379214() {
+  float3 res = (0.01745329238474369049f).xxx;
+}
+
+void fragment_main() {
+  radians_379214();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  radians_379214();
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  radians_379214();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  vertex_main_outputs v_2 = {v_1.pos};
+  return v_2;
+}
+
diff --git a/test/tint/builtins/gen/literal/radians/44a9f8.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/radians/44a9f8.wgsl.expected.ir.dxc.hlsl
index 0ba40c6..1440cc5 100644
--- a/test/tint/builtins/gen/literal/radians/44a9f8.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/radians/44a9f8.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,36 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+void radians_44a9f8() {
+  float2 res = (0.01745329238474369049f).xx;
+}
+
+void fragment_main() {
+  radians_44a9f8();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  radians_44a9f8();
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  radians_44a9f8();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  vertex_main_outputs v_2 = {v_1.pos};
+  return v_2;
+}
+
diff --git a/test/tint/builtins/gen/literal/radians/44a9f8.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/radians/44a9f8.wgsl.expected.ir.fxc.hlsl
index 0ba40c6..1440cc5 100644
--- a/test/tint/builtins/gen/literal/radians/44a9f8.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/radians/44a9f8.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,36 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+void radians_44a9f8() {
+  float2 res = (0.01745329238474369049f).xx;
+}
+
+void fragment_main() {
+  radians_44a9f8();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  radians_44a9f8();
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  radians_44a9f8();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  vertex_main_outputs v_2 = {v_1.pos};
+  return v_2;
+}
+
diff --git a/test/tint/builtins/gen/literal/radians/44f20b.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/radians/44f20b.wgsl.expected.ir.dxc.hlsl
index 0ba40c6..ca8af7f 100644
--- a/test/tint/builtins/gen/literal/radians/44f20b.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/radians/44f20b.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,42 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  vector<float16_t, 4> prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation vector<float16_t, 4> VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+vector<float16_t, 4> radians_44f20b() {
+  vector<float16_t, 4> res = (float16_t(0.0174407958984375h)).xxxx;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store<vector<float16_t, 4> >(0u, radians_44f20b());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store<vector<float16_t, 4> >(0u, radians_44f20b());
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = radians_44f20b();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
diff --git a/test/tint/builtins/gen/literal/radians/44f20b.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/radians/44f20b.wgsl.expected.ir.fxc.hlsl
index 0ba40c6..0878e71 100644
--- a/test/tint/builtins/gen/literal/radians/44f20b.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/radians/44f20b.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,47 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct VertexOutput {
+  float4 pos;
+  vector<float16_t, 4> prevent_dce;
+};
+
+struct vertex_main_outputs {
+  nointerpolation vector<float16_t, 4> VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+vector<float16_t, 4> radians_44f20b() {
+  vector<float16_t, 4> res = (float16_t(0.0174407958984375h)).xxxx;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store<vector<float16_t, 4> >(0u, radians_44f20b());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store<vector<float16_t, 4> >(0u, radians_44f20b());
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = radians_44f20b();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
+FXC validation failure:
+c:\src\dawn\Shader@0x000002020B3CC130(3,10-18): error X3000: syntax error: unexpected token 'float16_t'
+
diff --git a/test/tint/builtins/gen/literal/radians/524a91.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/radians/524a91.wgsl.expected.ir.dxc.hlsl
index 0ba40c6..60007f5 100644
--- a/test/tint/builtins/gen/literal/radians/524a91.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/radians/524a91.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,36 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+void radians_524a91() {
+  float4 res = (0.01745329238474369049f).xxxx;
+}
+
+void fragment_main() {
+  radians_524a91();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  radians_524a91();
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  radians_524a91();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  vertex_main_outputs v_2 = {v_1.pos};
+  return v_2;
+}
+
diff --git a/test/tint/builtins/gen/literal/radians/524a91.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/radians/524a91.wgsl.expected.ir.fxc.hlsl
index 0ba40c6..60007f5 100644
--- a/test/tint/builtins/gen/literal/radians/524a91.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/radians/524a91.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,36 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+void radians_524a91() {
+  float4 res = (0.01745329238474369049f).xxxx;
+}
+
+void fragment_main() {
+  radians_524a91();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  radians_524a91();
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  radians_524a91();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  vertex_main_outputs v_2 = {v_1.pos};
+  return v_2;
+}
+
diff --git a/test/tint/builtins/gen/literal/radians/61687a.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/radians/61687a.wgsl.expected.ir.dxc.hlsl
index 0ba40c6..9a6c248 100644
--- a/test/tint/builtins/gen/literal/radians/61687a.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/radians/61687a.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,42 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  float2 prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation float2 VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+float2 radians_61687a() {
+  float2 res = (0.01745329238474369049f).xx;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store2(0u, asuint(radians_61687a()));
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store2(0u, asuint(radians_61687a()));
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = radians_61687a();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
diff --git a/test/tint/builtins/gen/literal/radians/61687a.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/radians/61687a.wgsl.expected.ir.fxc.hlsl
index 0ba40c6..9a6c248 100644
--- a/test/tint/builtins/gen/literal/radians/61687a.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/radians/61687a.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,42 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  float2 prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation float2 VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+float2 radians_61687a() {
+  float2 res = (0.01745329238474369049f).xx;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store2(0u, asuint(radians_61687a()));
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store2(0u, asuint(radians_61687a()));
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = radians_61687a();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
diff --git a/test/tint/builtins/gen/literal/radians/6b0ff2.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/radians/6b0ff2.wgsl.expected.ir.dxc.hlsl
index 0ba40c6..6038cd7 100644
--- a/test/tint/builtins/gen/literal/radians/6b0ff2.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/radians/6b0ff2.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,42 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  float prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation float VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+float radians_6b0ff2() {
+  float res = 0.01745329238474369049f;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store(0u, asuint(radians_6b0ff2()));
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store(0u, asuint(radians_6b0ff2()));
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = radians_6b0ff2();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
diff --git a/test/tint/builtins/gen/literal/radians/6b0ff2.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/radians/6b0ff2.wgsl.expected.ir.fxc.hlsl
index 0ba40c6..6038cd7 100644
--- a/test/tint/builtins/gen/literal/radians/6b0ff2.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/radians/6b0ff2.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,42 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  float prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation float VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+float radians_6b0ff2() {
+  float res = 0.01745329238474369049f;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store(0u, asuint(radians_6b0ff2()));
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store(0u, asuint(radians_6b0ff2()));
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = radians_6b0ff2();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
diff --git a/test/tint/builtins/gen/literal/radians/7ea4c7.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/radians/7ea4c7.wgsl.expected.ir.dxc.hlsl
index 0ba40c6..1d0e860 100644
--- a/test/tint/builtins/gen/literal/radians/7ea4c7.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/radians/7ea4c7.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,42 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  vector<float16_t, 3> prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation vector<float16_t, 3> VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+vector<float16_t, 3> radians_7ea4c7() {
+  vector<float16_t, 3> res = (float16_t(0.0174407958984375h)).xxx;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store<vector<float16_t, 3> >(0u, radians_7ea4c7());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store<vector<float16_t, 3> >(0u, radians_7ea4c7());
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = radians_7ea4c7();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
diff --git a/test/tint/builtins/gen/literal/radians/7ea4c7.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/radians/7ea4c7.wgsl.expected.ir.fxc.hlsl
index 0ba40c6..14dfd25 100644
--- a/test/tint/builtins/gen/literal/radians/7ea4c7.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/radians/7ea4c7.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,47 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct VertexOutput {
+  float4 pos;
+  vector<float16_t, 3> prevent_dce;
+};
+
+struct vertex_main_outputs {
+  nointerpolation vector<float16_t, 3> VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+vector<float16_t, 3> radians_7ea4c7() {
+  vector<float16_t, 3> res = (float16_t(0.0174407958984375h)).xxx;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store<vector<float16_t, 3> >(0u, radians_7ea4c7());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store<vector<float16_t, 3> >(0u, radians_7ea4c7());
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = radians_7ea4c7();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
+FXC validation failure:
+c:\src\dawn\Shader@0x0000012CAB3B0880(3,10-18): error X3000: syntax error: unexpected token 'float16_t'
+
diff --git a/test/tint/builtins/gen/literal/radians/bff231.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/radians/bff231.wgsl.expected.ir.dxc.hlsl
index 0ba40c6..28c79cf 100644
--- a/test/tint/builtins/gen/literal/radians/bff231.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/radians/bff231.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,36 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+void radians_bff231() {
+  float res = 0.01745329238474369049f;
+}
+
+void fragment_main() {
+  radians_bff231();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  radians_bff231();
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  radians_bff231();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  vertex_main_outputs v_2 = {v_1.pos};
+  return v_2;
+}
+
diff --git a/test/tint/builtins/gen/literal/radians/bff231.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/radians/bff231.wgsl.expected.ir.fxc.hlsl
index 0ba40c6..28c79cf 100644
--- a/test/tint/builtins/gen/literal/radians/bff231.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/radians/bff231.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,36 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+void radians_bff231() {
+  float res = 0.01745329238474369049f;
+}
+
+void fragment_main() {
+  radians_bff231();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  radians_bff231();
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  radians_bff231();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  vertex_main_outputs v_2 = {v_1.pos};
+  return v_2;
+}
+
diff --git a/test/tint/builtins/gen/literal/radians/f96258.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/radians/f96258.wgsl.expected.ir.dxc.hlsl
index 0ba40c6..cb5fca8 100644
--- a/test/tint/builtins/gen/literal/radians/f96258.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/radians/f96258.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,42 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  float3 prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation float3 VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+float3 radians_f96258() {
+  float3 res = (0.01745329238474369049f).xxx;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store3(0u, asuint(radians_f96258()));
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store3(0u, asuint(radians_f96258()));
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = radians_f96258();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
diff --git a/test/tint/builtins/gen/literal/radians/f96258.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/radians/f96258.wgsl.expected.ir.fxc.hlsl
index 0ba40c6..cb5fca8 100644
--- a/test/tint/builtins/gen/literal/radians/f96258.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/radians/f96258.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,42 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  float3 prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation float3 VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+float3 radians_f96258() {
+  float3 res = (0.01745329238474369049f).xxx;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store3(0u, asuint(radians_f96258()));
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store3(0u, asuint(radians_f96258()));
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = radians_f96258();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
diff --git a/test/tint/builtins/gen/literal/radians/fbacf0.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/radians/fbacf0.wgsl.expected.ir.dxc.hlsl
index 0ba40c6..05858de 100644
--- a/test/tint/builtins/gen/literal/radians/fbacf0.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/radians/fbacf0.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,42 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  vector<float16_t, 2> prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation vector<float16_t, 2> VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+vector<float16_t, 2> radians_fbacf0() {
+  vector<float16_t, 2> res = (float16_t(0.0174407958984375h)).xx;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store<vector<float16_t, 2> >(0u, radians_fbacf0());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store<vector<float16_t, 2> >(0u, radians_fbacf0());
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = radians_fbacf0();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
diff --git a/test/tint/builtins/gen/literal/radians/fbacf0.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/radians/fbacf0.wgsl.expected.ir.fxc.hlsl
index 0ba40c6..9049c6d 100644
--- a/test/tint/builtins/gen/literal/radians/fbacf0.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/radians/fbacf0.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,47 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct VertexOutput {
+  float4 pos;
+  vector<float16_t, 2> prevent_dce;
+};
+
+struct vertex_main_outputs {
+  nointerpolation vector<float16_t, 2> VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+vector<float16_t, 2> radians_fbacf0() {
+  vector<float16_t, 2> res = (float16_t(0.0174407958984375h)).xx;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store<vector<float16_t, 2> >(0u, radians_fbacf0());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store<vector<float16_t, 2> >(0u, radians_fbacf0());
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = radians_fbacf0();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
+FXC validation failure:
+c:\src\dawn\Shader@0x00000137D33506B0(3,10-18): error X3000: syntax error: unexpected token 'float16_t'
+
diff --git a/test/tint/builtins/gen/literal/reflect/05357e.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/reflect/05357e.wgsl.expected.ir.dxc.hlsl
index 0ba40c6..c3f8686 100644
--- a/test/tint/builtins/gen/literal/reflect/05357e.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/reflect/05357e.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,42 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  float4 prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation float4 VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+float4 reflect_05357e() {
+  float4 res = (-7.0f).xxxx;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store4(0u, asuint(reflect_05357e()));
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store4(0u, asuint(reflect_05357e()));
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = reflect_05357e();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
diff --git a/test/tint/builtins/gen/literal/reflect/05357e.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/reflect/05357e.wgsl.expected.ir.fxc.hlsl
index 0ba40c6..c3f8686 100644
--- a/test/tint/builtins/gen/literal/reflect/05357e.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/reflect/05357e.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,42 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  float4 prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation float4 VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+float4 reflect_05357e() {
+  float4 res = (-7.0f).xxxx;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store4(0u, asuint(reflect_05357e()));
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store4(0u, asuint(reflect_05357e()));
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = reflect_05357e();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
diff --git a/test/tint/builtins/gen/literal/reflect/310de5.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/reflect/310de5.wgsl.expected.ir.dxc.hlsl
index 0ba40c6..be80ad9 100644
--- a/test/tint/builtins/gen/literal/reflect/310de5.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/reflect/310de5.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,42 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  vector<float16_t, 4> prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation vector<float16_t, 4> VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+vector<float16_t, 4> reflect_310de5() {
+  vector<float16_t, 4> res = (float16_t(-7.0h)).xxxx;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store<vector<float16_t, 4> >(0u, reflect_310de5());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store<vector<float16_t, 4> >(0u, reflect_310de5());
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = reflect_310de5();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
diff --git a/test/tint/builtins/gen/literal/reflect/310de5.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/reflect/310de5.wgsl.expected.ir.fxc.hlsl
index 0ba40c6..91bb493 100644
--- a/test/tint/builtins/gen/literal/reflect/310de5.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/reflect/310de5.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,47 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct VertexOutput {
+  float4 pos;
+  vector<float16_t, 4> prevent_dce;
+};
+
+struct vertex_main_outputs {
+  nointerpolation vector<float16_t, 4> VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+vector<float16_t, 4> reflect_310de5() {
+  vector<float16_t, 4> res = (float16_t(-7.0h)).xxxx;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store<vector<float16_t, 4> >(0u, reflect_310de5());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store<vector<float16_t, 4> >(0u, reflect_310de5());
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = reflect_310de5();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
+FXC validation failure:
+c:\src\dawn\Shader@0x0000023E9E3003B0(3,10-18): error X3000: syntax error: unexpected token 'float16_t'
+
diff --git a/test/tint/builtins/gen/literal/reflect/61ca21.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/reflect/61ca21.wgsl.expected.ir.dxc.hlsl
index 0ba40c6..2acb78d 100644
--- a/test/tint/builtins/gen/literal/reflect/61ca21.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/reflect/61ca21.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,42 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  vector<float16_t, 3> prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation vector<float16_t, 3> VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+vector<float16_t, 3> reflect_61ca21() {
+  vector<float16_t, 3> res = (float16_t(-5.0h)).xxx;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store<vector<float16_t, 3> >(0u, reflect_61ca21());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store<vector<float16_t, 3> >(0u, reflect_61ca21());
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = reflect_61ca21();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
diff --git a/test/tint/builtins/gen/literal/reflect/61ca21.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/reflect/61ca21.wgsl.expected.ir.fxc.hlsl
index 0ba40c6..a9fbd84 100644
--- a/test/tint/builtins/gen/literal/reflect/61ca21.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/reflect/61ca21.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,47 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct VertexOutput {
+  float4 pos;
+  vector<float16_t, 3> prevent_dce;
+};
+
+struct vertex_main_outputs {
+  nointerpolation vector<float16_t, 3> VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+vector<float16_t, 3> reflect_61ca21() {
+  vector<float16_t, 3> res = (float16_t(-5.0h)).xxx;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store<vector<float16_t, 3> >(0u, reflect_61ca21());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store<vector<float16_t, 3> >(0u, reflect_61ca21());
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = reflect_61ca21();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
+FXC validation failure:
+c:\src\dawn\Shader@0x00000244B3850530(3,10-18): error X3000: syntax error: unexpected token 'float16_t'
+
diff --git a/test/tint/builtins/gen/literal/reflect/a8baf2.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/reflect/a8baf2.wgsl.expected.ir.dxc.hlsl
index 0ba40c6..27ca310 100644
--- a/test/tint/builtins/gen/literal/reflect/a8baf2.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/reflect/a8baf2.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,36 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+void reflect_a8baf2() {
+  float3 res = (-5.0f).xxx;
+}
+
+void fragment_main() {
+  reflect_a8baf2();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  reflect_a8baf2();
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  reflect_a8baf2();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  vertex_main_outputs v_2 = {v_1.pos};
+  return v_2;
+}
+
diff --git a/test/tint/builtins/gen/literal/reflect/a8baf2.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/reflect/a8baf2.wgsl.expected.ir.fxc.hlsl
index 0ba40c6..27ca310 100644
--- a/test/tint/builtins/gen/literal/reflect/a8baf2.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/reflect/a8baf2.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,36 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+void reflect_a8baf2() {
+  float3 res = (-5.0f).xxx;
+}
+
+void fragment_main() {
+  reflect_a8baf2();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  reflect_a8baf2();
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  reflect_a8baf2();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  vertex_main_outputs v_2 = {v_1.pos};
+  return v_2;
+}
+
diff --git a/test/tint/builtins/gen/literal/reflect/b61e10.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/reflect/b61e10.wgsl.expected.ir.dxc.hlsl
index 0ba40c6..e75cf9e 100644
--- a/test/tint/builtins/gen/literal/reflect/b61e10.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/reflect/b61e10.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,42 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  float2 prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation float2 VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+float2 reflect_b61e10() {
+  float2 res = (-3.0f).xx;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store2(0u, asuint(reflect_b61e10()));
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store2(0u, asuint(reflect_b61e10()));
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = reflect_b61e10();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
diff --git a/test/tint/builtins/gen/literal/reflect/b61e10.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/reflect/b61e10.wgsl.expected.ir.fxc.hlsl
index 0ba40c6..e75cf9e 100644
--- a/test/tint/builtins/gen/literal/reflect/b61e10.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/reflect/b61e10.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,42 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  float2 prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation float2 VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+float2 reflect_b61e10() {
+  float2 res = (-3.0f).xx;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store2(0u, asuint(reflect_b61e10()));
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store2(0u, asuint(reflect_b61e10()));
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = reflect_b61e10();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
diff --git a/test/tint/builtins/gen/literal/reflect/bb15ac.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/reflect/bb15ac.wgsl.expected.ir.dxc.hlsl
index 0ba40c6..fafcbe0 100644
--- a/test/tint/builtins/gen/literal/reflect/bb15ac.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/reflect/bb15ac.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,42 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  vector<float16_t, 2> prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation vector<float16_t, 2> VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+vector<float16_t, 2> reflect_bb15ac() {
+  vector<float16_t, 2> res = (float16_t(-3.0h)).xx;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store<vector<float16_t, 2> >(0u, reflect_bb15ac());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store<vector<float16_t, 2> >(0u, reflect_bb15ac());
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = reflect_bb15ac();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
diff --git a/test/tint/builtins/gen/literal/reflect/bb15ac.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/reflect/bb15ac.wgsl.expected.ir.fxc.hlsl
index 0ba40c6..3fa7b09 100644
--- a/test/tint/builtins/gen/literal/reflect/bb15ac.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/reflect/bb15ac.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,47 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct VertexOutput {
+  float4 pos;
+  vector<float16_t, 2> prevent_dce;
+};
+
+struct vertex_main_outputs {
+  nointerpolation vector<float16_t, 2> VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+vector<float16_t, 2> reflect_bb15ac() {
+  vector<float16_t, 2> res = (float16_t(-3.0h)).xx;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store<vector<float16_t, 2> >(0u, reflect_bb15ac());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store<vector<float16_t, 2> >(0u, reflect_bb15ac());
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = reflect_bb15ac();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
+FXC validation failure:
+c:\src\dawn\Shader@0x00000244890F0870(3,10-18): error X3000: syntax error: unexpected token 'float16_t'
+
diff --git a/test/tint/builtins/gen/literal/reflect/bba2d0.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/reflect/bba2d0.wgsl.expected.ir.dxc.hlsl
index 0ba40c6..9198cc3 100644
--- a/test/tint/builtins/gen/literal/reflect/bba2d0.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/reflect/bba2d0.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,36 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+void reflect_bba2d0() {
+  float2 res = (-3.0f).xx;
+}
+
+void fragment_main() {
+  reflect_bba2d0();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  reflect_bba2d0();
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  reflect_bba2d0();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  vertex_main_outputs v_2 = {v_1.pos};
+  return v_2;
+}
+
diff --git a/test/tint/builtins/gen/literal/reflect/bba2d0.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/reflect/bba2d0.wgsl.expected.ir.fxc.hlsl
index 0ba40c6..9198cc3 100644
--- a/test/tint/builtins/gen/literal/reflect/bba2d0.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/reflect/bba2d0.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,36 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+void reflect_bba2d0() {
+  float2 res = (-3.0f).xx;
+}
+
+void fragment_main() {
+  reflect_bba2d0();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  reflect_bba2d0();
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  reflect_bba2d0();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  vertex_main_outputs v_2 = {v_1.pos};
+  return v_2;
+}
+
diff --git a/test/tint/builtins/gen/literal/reflect/d7e210.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/reflect/d7e210.wgsl.expected.ir.dxc.hlsl
index 0ba40c6..17ba59f 100644
--- a/test/tint/builtins/gen/literal/reflect/d7e210.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/reflect/d7e210.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,36 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+void reflect_d7e210() {
+  float4 res = (-7.0f).xxxx;
+}
+
+void fragment_main() {
+  reflect_d7e210();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  reflect_d7e210();
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  reflect_d7e210();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  vertex_main_outputs v_2 = {v_1.pos};
+  return v_2;
+}
+
diff --git a/test/tint/builtins/gen/literal/reflect/d7e210.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/reflect/d7e210.wgsl.expected.ir.fxc.hlsl
index 0ba40c6..17ba59f 100644
--- a/test/tint/builtins/gen/literal/reflect/d7e210.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/reflect/d7e210.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,36 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+void reflect_d7e210() {
+  float4 res = (-7.0f).xxxx;
+}
+
+void fragment_main() {
+  reflect_d7e210();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  reflect_d7e210();
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  reflect_d7e210();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  vertex_main_outputs v_2 = {v_1.pos};
+  return v_2;
+}
+
diff --git a/test/tint/builtins/gen/literal/reflect/f47fdb.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/reflect/f47fdb.wgsl.expected.ir.dxc.hlsl
index 0ba40c6..2d5027c 100644
--- a/test/tint/builtins/gen/literal/reflect/f47fdb.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/reflect/f47fdb.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,42 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  float3 prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation float3 VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+float3 reflect_f47fdb() {
+  float3 res = (-5.0f).xxx;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store3(0u, asuint(reflect_f47fdb()));
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store3(0u, asuint(reflect_f47fdb()));
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = reflect_f47fdb();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
diff --git a/test/tint/builtins/gen/literal/reflect/f47fdb.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/reflect/f47fdb.wgsl.expected.ir.fxc.hlsl
index 0ba40c6..2d5027c 100644
--- a/test/tint/builtins/gen/literal/reflect/f47fdb.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/reflect/f47fdb.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,42 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  float3 prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation float3 VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+float3 reflect_f47fdb() {
+  float3 res = (-5.0f).xxx;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store3(0u, asuint(reflect_f47fdb()));
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store3(0u, asuint(reflect_f47fdb()));
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = reflect_f47fdb();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
diff --git a/test/tint/builtins/gen/literal/refract/0594ba.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/refract/0594ba.wgsl.expected.ir.dxc.hlsl
index 0ba40c6..5f1e724 100644
--- a/test/tint/builtins/gen/literal/refract/0594ba.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/refract/0594ba.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,42 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  vector<float16_t, 4> prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation vector<float16_t, 4> VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+vector<float16_t, 4> refract_0594ba() {
+  vector<float16_t, 4> res = (float16_t(-7.0h)).xxxx;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store<vector<float16_t, 4> >(0u, refract_0594ba());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store<vector<float16_t, 4> >(0u, refract_0594ba());
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = refract_0594ba();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
diff --git a/test/tint/builtins/gen/literal/refract/0594ba.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/refract/0594ba.wgsl.expected.ir.fxc.hlsl
index 0ba40c6..6e6257c 100644
--- a/test/tint/builtins/gen/literal/refract/0594ba.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/refract/0594ba.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,47 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct VertexOutput {
+  float4 pos;
+  vector<float16_t, 4> prevent_dce;
+};
+
+struct vertex_main_outputs {
+  nointerpolation vector<float16_t, 4> VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+vector<float16_t, 4> refract_0594ba() {
+  vector<float16_t, 4> res = (float16_t(-7.0h)).xxxx;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store<vector<float16_t, 4> >(0u, refract_0594ba());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store<vector<float16_t, 4> >(0u, refract_0594ba());
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = refract_0594ba();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
+FXC validation failure:
+c:\src\dawn\Shader@0x00000249C2ACC800(3,10-18): error X3000: syntax error: unexpected token 'float16_t'
+
diff --git a/test/tint/builtins/gen/literal/refract/570cb3.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/refract/570cb3.wgsl.expected.ir.dxc.hlsl
index 0ba40c6..a8b454a 100644
--- a/test/tint/builtins/gen/literal/refract/570cb3.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/refract/570cb3.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,42 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  vector<float16_t, 2> prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation vector<float16_t, 2> VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+vector<float16_t, 2> refract_570cb3() {
+  vector<float16_t, 2> res = (float16_t(-3.0h)).xx;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store<vector<float16_t, 2> >(0u, refract_570cb3());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store<vector<float16_t, 2> >(0u, refract_570cb3());
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = refract_570cb3();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
diff --git a/test/tint/builtins/gen/literal/refract/570cb3.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/refract/570cb3.wgsl.expected.ir.fxc.hlsl
index 0ba40c6..908b754 100644
--- a/test/tint/builtins/gen/literal/refract/570cb3.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/refract/570cb3.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,47 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct VertexOutput {
+  float4 pos;
+  vector<float16_t, 2> prevent_dce;
+};
+
+struct vertex_main_outputs {
+  nointerpolation vector<float16_t, 2> VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+vector<float16_t, 2> refract_570cb3() {
+  vector<float16_t, 2> res = (float16_t(-3.0h)).xx;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store<vector<float16_t, 2> >(0u, refract_570cb3());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store<vector<float16_t, 2> >(0u, refract_570cb3());
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = refract_570cb3();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
+FXC validation failure:
+c:\src\dawn\Shader@0x000001D7D8B57D40(3,10-18): error X3000: syntax error: unexpected token 'float16_t'
+
diff --git a/test/tint/builtins/gen/literal/refract/7e02e6.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/refract/7e02e6.wgsl.expected.ir.dxc.hlsl
index 0ba40c6..65c219a 100644
--- a/test/tint/builtins/gen/literal/refract/7e02e6.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/refract/7e02e6.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,42 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  float4 prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation float4 VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+float4 refract_7e02e6() {
+  float4 res = (-7.0f).xxxx;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store4(0u, asuint(refract_7e02e6()));
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store4(0u, asuint(refract_7e02e6()));
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = refract_7e02e6();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
diff --git a/test/tint/builtins/gen/literal/refract/7e02e6.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/refract/7e02e6.wgsl.expected.ir.fxc.hlsl
index 0ba40c6..65c219a 100644
--- a/test/tint/builtins/gen/literal/refract/7e02e6.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/refract/7e02e6.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,42 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  float4 prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation float4 VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+float4 refract_7e02e6() {
+  float4 res = (-7.0f).xxxx;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store4(0u, asuint(refract_7e02e6()));
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store4(0u, asuint(refract_7e02e6()));
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = refract_7e02e6();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
diff --git a/test/tint/builtins/gen/literal/refract/8984af.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/refract/8984af.wgsl.expected.ir.dxc.hlsl
index 0ba40c6..9f4cc5a 100644
--- a/test/tint/builtins/gen/literal/refract/8984af.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/refract/8984af.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,42 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  vector<float16_t, 3> prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation vector<float16_t, 3> VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+vector<float16_t, 3> refract_8984af() {
+  vector<float16_t, 3> res = (float16_t(-5.0h)).xxx;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store<vector<float16_t, 3> >(0u, refract_8984af());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store<vector<float16_t, 3> >(0u, refract_8984af());
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = refract_8984af();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
diff --git a/test/tint/builtins/gen/literal/refract/8984af.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/refract/8984af.wgsl.expected.ir.fxc.hlsl
index 0ba40c6..0bf0588 100644
--- a/test/tint/builtins/gen/literal/refract/8984af.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/refract/8984af.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,47 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct VertexOutput {
+  float4 pos;
+  vector<float16_t, 3> prevent_dce;
+};
+
+struct vertex_main_outputs {
+  nointerpolation vector<float16_t, 3> VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+vector<float16_t, 3> refract_8984af() {
+  vector<float16_t, 3> res = (float16_t(-5.0h)).xxx;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store<vector<float16_t, 3> >(0u, refract_8984af());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store<vector<float16_t, 3> >(0u, refract_8984af());
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = refract_8984af();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
+FXC validation failure:
+c:\src\dawn\Shader@0x000002305E355510(3,10-18): error X3000: syntax error: unexpected token 'float16_t'
+
diff --git a/test/tint/builtins/gen/literal/refract/8c192a.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/refract/8c192a.wgsl.expected.ir.dxc.hlsl
index 0ba40c6..dacbbee 100644
--- a/test/tint/builtins/gen/literal/refract/8c192a.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/refract/8c192a.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,36 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+void refract_8c192a() {
+  float4 res = (-7.0f).xxxx;
+}
+
+void fragment_main() {
+  refract_8c192a();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  refract_8c192a();
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  refract_8c192a();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  vertex_main_outputs v_2 = {v_1.pos};
+  return v_2;
+}
+
diff --git a/test/tint/builtins/gen/literal/refract/8c192a.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/refract/8c192a.wgsl.expected.ir.fxc.hlsl
index 0ba40c6..dacbbee 100644
--- a/test/tint/builtins/gen/literal/refract/8c192a.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/refract/8c192a.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,36 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+void refract_8c192a() {
+  float4 res = (-7.0f).xxxx;
+}
+
+void fragment_main() {
+  refract_8c192a();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  refract_8c192a();
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  refract_8c192a();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  vertex_main_outputs v_2 = {v_1.pos};
+  return v_2;
+}
+
diff --git a/test/tint/builtins/gen/literal/refract/cbc1d2.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/refract/cbc1d2.wgsl.expected.ir.dxc.hlsl
index 0ba40c6..1420d28 100644
--- a/test/tint/builtins/gen/literal/refract/cbc1d2.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/refract/cbc1d2.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,42 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  float3 prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation float3 VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+float3 refract_cbc1d2() {
+  float3 res = (-5.0f).xxx;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store3(0u, asuint(refract_cbc1d2()));
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store3(0u, asuint(refract_cbc1d2()));
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = refract_cbc1d2();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
diff --git a/test/tint/builtins/gen/literal/refract/cbc1d2.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/refract/cbc1d2.wgsl.expected.ir.fxc.hlsl
index 0ba40c6..1420d28 100644
--- a/test/tint/builtins/gen/literal/refract/cbc1d2.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/refract/cbc1d2.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,42 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  float3 prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation float3 VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+float3 refract_cbc1d2() {
+  float3 res = (-5.0f).xxx;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store3(0u, asuint(refract_cbc1d2()));
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store3(0u, asuint(refract_cbc1d2()));
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = refract_cbc1d2();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
diff --git a/test/tint/builtins/gen/literal/refract/cd905f.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/refract/cd905f.wgsl.expected.ir.dxc.hlsl
index 0ba40c6..d867f9a 100644
--- a/test/tint/builtins/gen/literal/refract/cd905f.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/refract/cd905f.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,42 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  float2 prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation float2 VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+float2 refract_cd905f() {
+  float2 res = (-3.0f).xx;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store2(0u, asuint(refract_cd905f()));
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store2(0u, asuint(refract_cd905f()));
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = refract_cd905f();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
diff --git a/test/tint/builtins/gen/literal/refract/cd905f.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/refract/cd905f.wgsl.expected.ir.fxc.hlsl
index 0ba40c6..d867f9a 100644
--- a/test/tint/builtins/gen/literal/refract/cd905f.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/refract/cd905f.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,42 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  float2 prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation float2 VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+float2 refract_cd905f() {
+  float2 res = (-3.0f).xx;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store2(0u, asuint(refract_cd905f()));
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store2(0u, asuint(refract_cd905f()));
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = refract_cd905f();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
diff --git a/test/tint/builtins/gen/literal/refract/cf1629.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/refract/cf1629.wgsl.expected.ir.dxc.hlsl
index 0ba40c6..1f97c4d 100644
--- a/test/tint/builtins/gen/literal/refract/cf1629.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/refract/cf1629.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,36 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+void refract_cf1629() {
+  float2 res = (-3.0f).xx;
+}
+
+void fragment_main() {
+  refract_cf1629();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  refract_cf1629();
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  refract_cf1629();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  vertex_main_outputs v_2 = {v_1.pos};
+  return v_2;
+}
+
diff --git a/test/tint/builtins/gen/literal/refract/cf1629.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/refract/cf1629.wgsl.expected.ir.fxc.hlsl
index 0ba40c6..1f97c4d 100644
--- a/test/tint/builtins/gen/literal/refract/cf1629.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/refract/cf1629.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,36 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+void refract_cf1629() {
+  float2 res = (-3.0f).xx;
+}
+
+void fragment_main() {
+  refract_cf1629();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  refract_cf1629();
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  refract_cf1629();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  vertex_main_outputs v_2 = {v_1.pos};
+  return v_2;
+}
+
diff --git a/test/tint/builtins/gen/literal/refract/d7569b.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/refract/d7569b.wgsl.expected.ir.dxc.hlsl
index 0ba40c6..74581ca 100644
--- a/test/tint/builtins/gen/literal/refract/d7569b.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/refract/d7569b.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,36 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+void refract_d7569b() {
+  float3 res = (-5.0f).xxx;
+}
+
+void fragment_main() {
+  refract_d7569b();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  refract_d7569b();
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  refract_d7569b();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  vertex_main_outputs v_2 = {v_1.pos};
+  return v_2;
+}
+
diff --git a/test/tint/builtins/gen/literal/refract/d7569b.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/refract/d7569b.wgsl.expected.ir.fxc.hlsl
index 0ba40c6..74581ca 100644
--- a/test/tint/builtins/gen/literal/refract/d7569b.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/refract/d7569b.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,36 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+void refract_d7569b() {
+  float3 res = (-5.0f).xxx;
+}
+
+void fragment_main() {
+  refract_d7569b();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  refract_d7569b();
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  refract_d7569b();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  vertex_main_outputs v_2 = {v_1.pos};
+  return v_2;
+}
+
diff --git a/test/tint/builtins/gen/literal/reverseBits/222177.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/reverseBits/222177.wgsl.expected.ir.dxc.hlsl
index 0ba40c6..c09960e 100644
--- a/test/tint/builtins/gen/literal/reverseBits/222177.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/reverseBits/222177.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,42 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  int2 prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation int2 VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+int2 reverseBits_222177() {
+  int2 res = (-2147483648).xx;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store2(0u, asuint(reverseBits_222177()));
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store2(0u, asuint(reverseBits_222177()));
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = reverseBits_222177();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
diff --git a/test/tint/builtins/gen/literal/reverseBits/222177.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/reverseBits/222177.wgsl.expected.ir.fxc.hlsl
index 0ba40c6..c09960e 100644
--- a/test/tint/builtins/gen/literal/reverseBits/222177.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/reverseBits/222177.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,42 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  int2 prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation int2 VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+int2 reverseBits_222177() {
+  int2 res = (-2147483648).xx;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store2(0u, asuint(reverseBits_222177()));
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store2(0u, asuint(reverseBits_222177()));
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = reverseBits_222177();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
diff --git a/test/tint/builtins/gen/literal/reverseBits/35fea9.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/reverseBits/35fea9.wgsl.expected.ir.dxc.hlsl
index 0ba40c6..bdb621b 100644
--- a/test/tint/builtins/gen/literal/reverseBits/35fea9.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/reverseBits/35fea9.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,42 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  uint4 prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation uint4 VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+uint4 reverseBits_35fea9() {
+  uint4 res = (2147483648u).xxxx;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store4(0u, reverseBits_35fea9());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store4(0u, reverseBits_35fea9());
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = reverseBits_35fea9();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
diff --git a/test/tint/builtins/gen/literal/reverseBits/35fea9.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/reverseBits/35fea9.wgsl.expected.ir.fxc.hlsl
index 0ba40c6..bdb621b 100644
--- a/test/tint/builtins/gen/literal/reverseBits/35fea9.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/reverseBits/35fea9.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,42 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  uint4 prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation uint4 VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+uint4 reverseBits_35fea9() {
+  uint4 res = (2147483648u).xxxx;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store4(0u, reverseBits_35fea9());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store4(0u, reverseBits_35fea9());
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = reverseBits_35fea9();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
diff --git a/test/tint/builtins/gen/literal/reverseBits/4dbd6f.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/reverseBits/4dbd6f.wgsl.expected.ir.dxc.hlsl
index 0ba40c6..a4f729a 100644
--- a/test/tint/builtins/gen/literal/reverseBits/4dbd6f.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/reverseBits/4dbd6f.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,42 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  int4 prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation int4 VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+int4 reverseBits_4dbd6f() {
+  int4 res = (-2147483648).xxxx;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store4(0u, asuint(reverseBits_4dbd6f()));
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store4(0u, asuint(reverseBits_4dbd6f()));
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = reverseBits_4dbd6f();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
diff --git a/test/tint/builtins/gen/literal/reverseBits/4dbd6f.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/reverseBits/4dbd6f.wgsl.expected.ir.fxc.hlsl
index 0ba40c6..a4f729a 100644
--- a/test/tint/builtins/gen/literal/reverseBits/4dbd6f.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/reverseBits/4dbd6f.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,42 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  int4 prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation int4 VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+int4 reverseBits_4dbd6f() {
+  int4 res = (-2147483648).xxxx;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store4(0u, asuint(reverseBits_4dbd6f()));
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store4(0u, asuint(reverseBits_4dbd6f()));
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = reverseBits_4dbd6f();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
diff --git a/test/tint/builtins/gen/literal/reverseBits/7c4269.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/reverseBits/7c4269.wgsl.expected.ir.dxc.hlsl
index 0ba40c6..8776bb5 100644
--- a/test/tint/builtins/gen/literal/reverseBits/7c4269.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/reverseBits/7c4269.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,42 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  int prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation int VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+int reverseBits_7c4269() {
+  int res = -2147483648;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store(0u, asuint(reverseBits_7c4269()));
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store(0u, asuint(reverseBits_7c4269()));
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = reverseBits_7c4269();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
diff --git a/test/tint/builtins/gen/literal/reverseBits/7c4269.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/reverseBits/7c4269.wgsl.expected.ir.fxc.hlsl
index 0ba40c6..8776bb5 100644
--- a/test/tint/builtins/gen/literal/reverseBits/7c4269.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/reverseBits/7c4269.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,42 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  int prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation int VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+int reverseBits_7c4269() {
+  int res = -2147483648;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store(0u, asuint(reverseBits_7c4269()));
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store(0u, asuint(reverseBits_7c4269()));
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = reverseBits_7c4269();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
diff --git a/test/tint/builtins/gen/literal/reverseBits/a6ccd4.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/reverseBits/a6ccd4.wgsl.expected.ir.dxc.hlsl
index 0ba40c6..ee952ff 100644
--- a/test/tint/builtins/gen/literal/reverseBits/a6ccd4.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/reverseBits/a6ccd4.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,42 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  uint3 prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation uint3 VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+uint3 reverseBits_a6ccd4() {
+  uint3 res = (2147483648u).xxx;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store3(0u, reverseBits_a6ccd4());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store3(0u, reverseBits_a6ccd4());
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = reverseBits_a6ccd4();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
diff --git a/test/tint/builtins/gen/literal/reverseBits/a6ccd4.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/reverseBits/a6ccd4.wgsl.expected.ir.fxc.hlsl
index 0ba40c6..ee952ff 100644
--- a/test/tint/builtins/gen/literal/reverseBits/a6ccd4.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/reverseBits/a6ccd4.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,42 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  uint3 prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation uint3 VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+uint3 reverseBits_a6ccd4() {
+  uint3 res = (2147483648u).xxx;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store3(0u, reverseBits_a6ccd4());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store3(0u, reverseBits_a6ccd4());
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = reverseBits_a6ccd4();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
diff --git a/test/tint/builtins/gen/literal/reverseBits/c21bc1.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/reverseBits/c21bc1.wgsl.expected.ir.dxc.hlsl
index 0ba40c6..fea9386 100644
--- a/test/tint/builtins/gen/literal/reverseBits/c21bc1.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/reverseBits/c21bc1.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,42 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  int3 prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation int3 VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+int3 reverseBits_c21bc1() {
+  int3 res = (-2147483648).xxx;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store3(0u, asuint(reverseBits_c21bc1()));
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store3(0u, asuint(reverseBits_c21bc1()));
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = reverseBits_c21bc1();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
diff --git a/test/tint/builtins/gen/literal/reverseBits/c21bc1.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/reverseBits/c21bc1.wgsl.expected.ir.fxc.hlsl
index 0ba40c6..fea9386 100644
--- a/test/tint/builtins/gen/literal/reverseBits/c21bc1.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/reverseBits/c21bc1.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,42 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  int3 prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation int3 VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+int3 reverseBits_c21bc1() {
+  int3 res = (-2147483648).xxx;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store3(0u, asuint(reverseBits_c21bc1()));
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store3(0u, asuint(reverseBits_c21bc1()));
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = reverseBits_c21bc1();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
diff --git a/test/tint/builtins/gen/literal/reverseBits/e1f4c1.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/reverseBits/e1f4c1.wgsl.expected.ir.dxc.hlsl
index 0ba40c6..473bec6 100644
--- a/test/tint/builtins/gen/literal/reverseBits/e1f4c1.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/reverseBits/e1f4c1.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,42 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  uint2 prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation uint2 VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+uint2 reverseBits_e1f4c1() {
+  uint2 res = (2147483648u).xx;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store2(0u, reverseBits_e1f4c1());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store2(0u, reverseBits_e1f4c1());
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = reverseBits_e1f4c1();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
diff --git a/test/tint/builtins/gen/literal/reverseBits/e1f4c1.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/reverseBits/e1f4c1.wgsl.expected.ir.fxc.hlsl
index 0ba40c6..473bec6 100644
--- a/test/tint/builtins/gen/literal/reverseBits/e1f4c1.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/reverseBits/e1f4c1.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,42 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  uint2 prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation uint2 VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+uint2 reverseBits_e1f4c1() {
+  uint2 res = (2147483648u).xx;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store2(0u, reverseBits_e1f4c1());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store2(0u, reverseBits_e1f4c1());
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = reverseBits_e1f4c1();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
diff --git a/test/tint/builtins/gen/literal/reverseBits/e31adf.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/reverseBits/e31adf.wgsl.expected.ir.dxc.hlsl
index 0ba40c6..5959123 100644
--- a/test/tint/builtins/gen/literal/reverseBits/e31adf.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/reverseBits/e31adf.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,42 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  uint prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation uint VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+uint reverseBits_e31adf() {
+  uint res = 2147483648u;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store(0u, reverseBits_e31adf());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store(0u, reverseBits_e31adf());
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = reverseBits_e31adf();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
diff --git a/test/tint/builtins/gen/literal/reverseBits/e31adf.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/reverseBits/e31adf.wgsl.expected.ir.fxc.hlsl
index 0ba40c6..5959123 100644
--- a/test/tint/builtins/gen/literal/reverseBits/e31adf.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/reverseBits/e31adf.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,42 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  uint prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation uint VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+uint reverseBits_e31adf() {
+  uint res = 2147483648u;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store(0u, reverseBits_e31adf());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store(0u, reverseBits_e31adf());
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = reverseBits_e31adf();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
diff --git a/test/tint/builtins/gen/literal/round/106c0b.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/round/106c0b.wgsl.expected.ir.dxc.hlsl
index 0ba40c6..ac09e35 100644
--- a/test/tint/builtins/gen/literal/round/106c0b.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/round/106c0b.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,42 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  float4 prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation float4 VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+float4 round_106c0b() {
+  float4 res = (4.0f).xxxx;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store4(0u, asuint(round_106c0b()));
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store4(0u, asuint(round_106c0b()));
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = round_106c0b();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
diff --git a/test/tint/builtins/gen/literal/round/106c0b.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/round/106c0b.wgsl.expected.ir.fxc.hlsl
index 0ba40c6..ac09e35 100644
--- a/test/tint/builtins/gen/literal/round/106c0b.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/round/106c0b.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,42 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  float4 prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation float4 VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+float4 round_106c0b() {
+  float4 res = (4.0f).xxxx;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store4(0u, asuint(round_106c0b()));
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store4(0u, asuint(round_106c0b()));
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = round_106c0b();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
diff --git a/test/tint/builtins/gen/literal/round/184d5a.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/round/184d5a.wgsl.expected.ir.dxc.hlsl
index 0ba40c6..a883b41 100644
--- a/test/tint/builtins/gen/literal/round/184d5a.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/round/184d5a.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,36 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+void round_184d5a() {
+  float4 res = (4.0f).xxxx;
+}
+
+void fragment_main() {
+  round_184d5a();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  round_184d5a();
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  round_184d5a();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  vertex_main_outputs v_2 = {v_1.pos};
+  return v_2;
+}
+
diff --git a/test/tint/builtins/gen/literal/round/184d5a.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/round/184d5a.wgsl.expected.ir.fxc.hlsl
index 0ba40c6..a883b41 100644
--- a/test/tint/builtins/gen/literal/round/184d5a.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/round/184d5a.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,36 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+void round_184d5a() {
+  float4 res = (4.0f).xxxx;
+}
+
+void fragment_main() {
+  round_184d5a();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  round_184d5a();
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  round_184d5a();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  vertex_main_outputs v_2 = {v_1.pos};
+  return v_2;
+}
+
diff --git a/test/tint/builtins/gen/literal/round/1c7897.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/round/1c7897.wgsl.expected.ir.dxc.hlsl
index 0ba40c6..e7ef4ef 100644
--- a/test/tint/builtins/gen/literal/round/1c7897.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/round/1c7897.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,42 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  float3 prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation float3 VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+float3 round_1c7897() {
+  float3 res = (4.0f).xxx;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store3(0u, asuint(round_1c7897()));
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store3(0u, asuint(round_1c7897()));
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = round_1c7897();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
diff --git a/test/tint/builtins/gen/literal/round/1c7897.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/round/1c7897.wgsl.expected.ir.fxc.hlsl
index 0ba40c6..e7ef4ef 100644
--- a/test/tint/builtins/gen/literal/round/1c7897.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/round/1c7897.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,42 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  float3 prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation float3 VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+float3 round_1c7897() {
+  float3 res = (4.0f).xxx;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store3(0u, asuint(round_1c7897()));
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store3(0u, asuint(round_1c7897()));
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = round_1c7897();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
diff --git a/test/tint/builtins/gen/literal/round/52c84d.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/round/52c84d.wgsl.expected.ir.dxc.hlsl
index 0ba40c6..1c62bca 100644
--- a/test/tint/builtins/gen/literal/round/52c84d.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/round/52c84d.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,42 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  float2 prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation float2 VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+float2 round_52c84d() {
+  float2 res = (4.0f).xx;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store2(0u, asuint(round_52c84d()));
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store2(0u, asuint(round_52c84d()));
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = round_52c84d();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
diff --git a/test/tint/builtins/gen/literal/round/52c84d.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/round/52c84d.wgsl.expected.ir.fxc.hlsl
index 0ba40c6..1c62bca 100644
--- a/test/tint/builtins/gen/literal/round/52c84d.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/round/52c84d.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,42 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  float2 prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation float2 VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+float2 round_52c84d() {
+  float2 res = (4.0f).xx;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store2(0u, asuint(round_52c84d()));
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store2(0u, asuint(round_52c84d()));
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = round_52c84d();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
diff --git a/test/tint/builtins/gen/literal/round/773a8f.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/round/773a8f.wgsl.expected.ir.dxc.hlsl
index 0ba40c6..99a5540 100644
--- a/test/tint/builtins/gen/literal/round/773a8f.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/round/773a8f.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,36 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+void round_773a8f() {
+  float res = 4.0f;
+}
+
+void fragment_main() {
+  round_773a8f();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  round_773a8f();
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  round_773a8f();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  vertex_main_outputs v_2 = {v_1.pos};
+  return v_2;
+}
+
diff --git a/test/tint/builtins/gen/literal/round/773a8f.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/round/773a8f.wgsl.expected.ir.fxc.hlsl
index 0ba40c6..99a5540 100644
--- a/test/tint/builtins/gen/literal/round/773a8f.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/round/773a8f.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,36 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+void round_773a8f() {
+  float res = 4.0f;
+}
+
+void fragment_main() {
+  round_773a8f();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  round_773a8f();
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  round_773a8f();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  vertex_main_outputs v_2 = {v_1.pos};
+  return v_2;
+}
+
diff --git a/test/tint/builtins/gen/literal/round/8fdca3.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/round/8fdca3.wgsl.expected.ir.dxc.hlsl
index 0ba40c6..23c28d1 100644
--- a/test/tint/builtins/gen/literal/round/8fdca3.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/round/8fdca3.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,36 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+void round_8fdca3() {
+  float2 res = (4.0f).xx;
+}
+
+void fragment_main() {
+  round_8fdca3();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  round_8fdca3();
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  round_8fdca3();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  vertex_main_outputs v_2 = {v_1.pos};
+  return v_2;
+}
+
diff --git a/test/tint/builtins/gen/literal/round/8fdca3.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/round/8fdca3.wgsl.expected.ir.fxc.hlsl
index 0ba40c6..23c28d1 100644
--- a/test/tint/builtins/gen/literal/round/8fdca3.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/round/8fdca3.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,36 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+void round_8fdca3() {
+  float2 res = (4.0f).xx;
+}
+
+void fragment_main() {
+  round_8fdca3();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  round_8fdca3();
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  round_8fdca3();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  vertex_main_outputs v_2 = {v_1.pos};
+  return v_2;
+}
+
diff --git a/test/tint/builtins/gen/literal/round/9078ef.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/round/9078ef.wgsl.expected.ir.dxc.hlsl
index 0ba40c6..85a8f27 100644
--- a/test/tint/builtins/gen/literal/round/9078ef.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/round/9078ef.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,42 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  float16_t prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation float16_t VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+float16_t round_9078ef() {
+  float16_t res = float16_t(4.0h);
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store<float16_t>(0u, round_9078ef());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store<float16_t>(0u, round_9078ef());
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = round_9078ef();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
diff --git a/test/tint/builtins/gen/literal/round/9078ef.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/round/9078ef.wgsl.expected.ir.fxc.hlsl
index 0ba40c6..ee7a745 100644
--- a/test/tint/builtins/gen/literal/round/9078ef.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/round/9078ef.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,47 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct VertexOutput {
+  float4 pos;
+  float16_t prevent_dce;
+};
+
+struct vertex_main_outputs {
+  nointerpolation float16_t VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+float16_t round_9078ef() {
+  float16_t res = float16_t(4.0h);
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store<float16_t>(0u, round_9078ef());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store<float16_t>(0u, round_9078ef());
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = round_9078ef();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
+FXC validation failure:
+c:\src\dawn\Shader@0x00000153AF0844A0(3,3-11): error X3000: unrecognized identifier 'float16_t'
+
diff --git a/test/tint/builtins/gen/literal/round/9edc38.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/round/9edc38.wgsl.expected.ir.dxc.hlsl
index 0ba40c6..22aa13b 100644
--- a/test/tint/builtins/gen/literal/round/9edc38.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/round/9edc38.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,42 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  float prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation float VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+float round_9edc38() {
+  float res = 4.0f;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store(0u, asuint(round_9edc38()));
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store(0u, asuint(round_9edc38()));
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = round_9edc38();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
diff --git a/test/tint/builtins/gen/literal/round/9edc38.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/round/9edc38.wgsl.expected.ir.fxc.hlsl
index 0ba40c6..22aa13b 100644
--- a/test/tint/builtins/gen/literal/round/9edc38.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/round/9edc38.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,42 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  float prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation float VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+float round_9edc38() {
+  float res = 4.0f;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store(0u, asuint(round_9edc38()));
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store(0u, asuint(round_9edc38()));
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = round_9edc38();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
diff --git a/test/tint/builtins/gen/literal/round/a1673d.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/round/a1673d.wgsl.expected.ir.dxc.hlsl
index 0ba40c6..dbc252c 100644
--- a/test/tint/builtins/gen/literal/round/a1673d.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/round/a1673d.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,36 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+void round_a1673d() {
+  float3 res = (4.0f).xxx;
+}
+
+void fragment_main() {
+  round_a1673d();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  round_a1673d();
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  round_a1673d();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  vertex_main_outputs v_2 = {v_1.pos};
+  return v_2;
+}
+
diff --git a/test/tint/builtins/gen/literal/round/a1673d.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/round/a1673d.wgsl.expected.ir.fxc.hlsl
index 0ba40c6..dbc252c 100644
--- a/test/tint/builtins/gen/literal/round/a1673d.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/round/a1673d.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,36 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+void round_a1673d() {
+  float3 res = (4.0f).xxx;
+}
+
+void fragment_main() {
+  round_a1673d();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  round_a1673d();
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  round_a1673d();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  vertex_main_outputs v_2 = {v_1.pos};
+  return v_2;
+}
+
diff --git a/test/tint/builtins/gen/literal/round/d87e84.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/round/d87e84.wgsl.expected.ir.dxc.hlsl
index 0ba40c6..9ffc7d6 100644
--- a/test/tint/builtins/gen/literal/round/d87e84.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/round/d87e84.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,42 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  vector<float16_t, 2> prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation vector<float16_t, 2> VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+vector<float16_t, 2> round_d87e84() {
+  vector<float16_t, 2> res = (float16_t(4.0h)).xx;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store<vector<float16_t, 2> >(0u, round_d87e84());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store<vector<float16_t, 2> >(0u, round_d87e84());
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = round_d87e84();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
diff --git a/test/tint/builtins/gen/literal/round/d87e84.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/round/d87e84.wgsl.expected.ir.fxc.hlsl
index 0ba40c6..cb844c3 100644
--- a/test/tint/builtins/gen/literal/round/d87e84.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/round/d87e84.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,47 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct VertexOutput {
+  float4 pos;
+  vector<float16_t, 2> prevent_dce;
+};
+
+struct vertex_main_outputs {
+  nointerpolation vector<float16_t, 2> VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+vector<float16_t, 2> round_d87e84() {
+  vector<float16_t, 2> res = (float16_t(4.0h)).xx;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store<vector<float16_t, 2> >(0u, round_d87e84());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store<vector<float16_t, 2> >(0u, round_d87e84());
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = round_d87e84();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
+FXC validation failure:
+c:\src\dawn\Shader@0x0000020CE21D14B0(3,10-18): error X3000: syntax error: unexpected token 'float16_t'
+
diff --git a/test/tint/builtins/gen/literal/round/e1bba2.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/round/e1bba2.wgsl.expected.ir.dxc.hlsl
index 0ba40c6..40994eb 100644
--- a/test/tint/builtins/gen/literal/round/e1bba2.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/round/e1bba2.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,42 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  vector<float16_t, 3> prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation vector<float16_t, 3> VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+vector<float16_t, 3> round_e1bba2() {
+  vector<float16_t, 3> res = (float16_t(4.0h)).xxx;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store<vector<float16_t, 3> >(0u, round_e1bba2());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store<vector<float16_t, 3> >(0u, round_e1bba2());
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = round_e1bba2();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
diff --git a/test/tint/builtins/gen/literal/round/e1bba2.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/round/e1bba2.wgsl.expected.ir.fxc.hlsl
index 0ba40c6..1ac0d71 100644
--- a/test/tint/builtins/gen/literal/round/e1bba2.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/round/e1bba2.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,47 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct VertexOutput {
+  float4 pos;
+  vector<float16_t, 3> prevent_dce;
+};
+
+struct vertex_main_outputs {
+  nointerpolation vector<float16_t, 3> VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+vector<float16_t, 3> round_e1bba2() {
+  vector<float16_t, 3> res = (float16_t(4.0h)).xxx;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store<vector<float16_t, 3> >(0u, round_e1bba2());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store<vector<float16_t, 3> >(0u, round_e1bba2());
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = round_e1bba2();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
+FXC validation failure:
+c:\src\dawn\Shader@0x000001F5F0EEEB60(3,10-18): error X3000: syntax error: unexpected token 'float16_t'
+
diff --git a/test/tint/builtins/gen/literal/round/f665b5.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/round/f665b5.wgsl.expected.ir.dxc.hlsl
index 0ba40c6..b554a4c 100644
--- a/test/tint/builtins/gen/literal/round/f665b5.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/round/f665b5.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,42 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  vector<float16_t, 4> prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation vector<float16_t, 4> VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+vector<float16_t, 4> round_f665b5() {
+  vector<float16_t, 4> res = (float16_t(4.0h)).xxxx;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store<vector<float16_t, 4> >(0u, round_f665b5());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store<vector<float16_t, 4> >(0u, round_f665b5());
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = round_f665b5();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
diff --git a/test/tint/builtins/gen/literal/round/f665b5.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/round/f665b5.wgsl.expected.ir.fxc.hlsl
index 0ba40c6..5575c78 100644
--- a/test/tint/builtins/gen/literal/round/f665b5.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/round/f665b5.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,47 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct VertexOutput {
+  float4 pos;
+  vector<float16_t, 4> prevent_dce;
+};
+
+struct vertex_main_outputs {
+  nointerpolation vector<float16_t, 4> VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+vector<float16_t, 4> round_f665b5() {
+  vector<float16_t, 4> res = (float16_t(4.0h)).xxxx;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store<vector<float16_t, 4> >(0u, round_f665b5());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store<vector<float16_t, 4> >(0u, round_f665b5());
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = round_f665b5();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
+FXC validation failure:
+c:\src\dawn\Shader@0x000001360869F7A0(3,10-18): error X3000: syntax error: unexpected token 'float16_t'
+
diff --git a/test/tint/builtins/gen/literal/saturate/270da5.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/saturate/270da5.wgsl.expected.ir.dxc.hlsl
index 0ba40c6..e8a9c35 100644
--- a/test/tint/builtins/gen/literal/saturate/270da5.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/saturate/270da5.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,42 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  float prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation float VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+float saturate_270da5() {
+  float res = 1.0f;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store(0u, asuint(saturate_270da5()));
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store(0u, asuint(saturate_270da5()));
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = saturate_270da5();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
diff --git a/test/tint/builtins/gen/literal/saturate/270da5.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/saturate/270da5.wgsl.expected.ir.fxc.hlsl
index 0ba40c6..e8a9c35 100644
--- a/test/tint/builtins/gen/literal/saturate/270da5.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/saturate/270da5.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,42 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  float prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation float VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+float saturate_270da5() {
+  float res = 1.0f;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store(0u, asuint(saturate_270da5()));
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store(0u, asuint(saturate_270da5()));
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = saturate_270da5();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
diff --git a/test/tint/builtins/gen/literal/saturate/462535.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/saturate/462535.wgsl.expected.ir.dxc.hlsl
index 0ba40c6..5a5f47b 100644
--- a/test/tint/builtins/gen/literal/saturate/462535.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/saturate/462535.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,42 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  vector<float16_t, 3> prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation vector<float16_t, 3> VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+vector<float16_t, 3> saturate_462535() {
+  vector<float16_t, 3> res = (float16_t(1.0h)).xxx;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store<vector<float16_t, 3> >(0u, saturate_462535());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store<vector<float16_t, 3> >(0u, saturate_462535());
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = saturate_462535();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
diff --git a/test/tint/builtins/gen/literal/saturate/462535.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/saturate/462535.wgsl.expected.ir.fxc.hlsl
index 0ba40c6..34d1f5a 100644
--- a/test/tint/builtins/gen/literal/saturate/462535.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/saturate/462535.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,47 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct VertexOutput {
+  float4 pos;
+  vector<float16_t, 3> prevent_dce;
+};
+
+struct vertex_main_outputs {
+  nointerpolation vector<float16_t, 3> VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+vector<float16_t, 3> saturate_462535() {
+  vector<float16_t, 3> res = (float16_t(1.0h)).xxx;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store<vector<float16_t, 3> >(0u, saturate_462535());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store<vector<float16_t, 3> >(0u, saturate_462535());
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = saturate_462535();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
+FXC validation failure:
+c:\src\dawn\Shader@0x000001A21124D600(3,10-18): error X3000: syntax error: unexpected token 'float16_t'
+
diff --git a/test/tint/builtins/gen/literal/saturate/4ed8d7.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/saturate/4ed8d7.wgsl.expected.ir.dxc.hlsl
index 0ba40c6..3d004cb 100644
--- a/test/tint/builtins/gen/literal/saturate/4ed8d7.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/saturate/4ed8d7.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,36 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+void saturate_4ed8d7() {
+  float4 res = (1.0f).xxxx;
+}
+
+void fragment_main() {
+  saturate_4ed8d7();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  saturate_4ed8d7();
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  saturate_4ed8d7();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  vertex_main_outputs v_2 = {v_1.pos};
+  return v_2;
+}
+
diff --git a/test/tint/builtins/gen/literal/saturate/4ed8d7.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/saturate/4ed8d7.wgsl.expected.ir.fxc.hlsl
index 0ba40c6..3d004cb 100644
--- a/test/tint/builtins/gen/literal/saturate/4ed8d7.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/saturate/4ed8d7.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,36 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+void saturate_4ed8d7() {
+  float4 res = (1.0f).xxxx;
+}
+
+void fragment_main() {
+  saturate_4ed8d7();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  saturate_4ed8d7();
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  saturate_4ed8d7();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  vertex_main_outputs v_2 = {v_1.pos};
+  return v_2;
+}
+
diff --git a/test/tint/builtins/gen/literal/saturate/51567f.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/saturate/51567f.wgsl.expected.ir.dxc.hlsl
index 0ba40c6..d4b0d4a 100644
--- a/test/tint/builtins/gen/literal/saturate/51567f.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/saturate/51567f.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,42 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  float2 prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation float2 VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+float2 saturate_51567f() {
+  float2 res = (1.0f).xx;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store2(0u, asuint(saturate_51567f()));
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store2(0u, asuint(saturate_51567f()));
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = saturate_51567f();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
diff --git a/test/tint/builtins/gen/literal/saturate/51567f.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/saturate/51567f.wgsl.expected.ir.fxc.hlsl
index 0ba40c6..d4b0d4a 100644
--- a/test/tint/builtins/gen/literal/saturate/51567f.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/saturate/51567f.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,42 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  float2 prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation float2 VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+float2 saturate_51567f() {
+  float2 res = (1.0f).xx;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store2(0u, asuint(saturate_51567f()));
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store2(0u, asuint(saturate_51567f()));
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = saturate_51567f();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
diff --git a/test/tint/builtins/gen/literal/saturate/6bcddf.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/saturate/6bcddf.wgsl.expected.ir.dxc.hlsl
index 0ba40c6..06f6cc4 100644
--- a/test/tint/builtins/gen/literal/saturate/6bcddf.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/saturate/6bcddf.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,42 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  float3 prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation float3 VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+float3 saturate_6bcddf() {
+  float3 res = (1.0f).xxx;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store3(0u, asuint(saturate_6bcddf()));
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store3(0u, asuint(saturate_6bcddf()));
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = saturate_6bcddf();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
diff --git a/test/tint/builtins/gen/literal/saturate/6bcddf.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/saturate/6bcddf.wgsl.expected.ir.fxc.hlsl
index 0ba40c6..06f6cc4 100644
--- a/test/tint/builtins/gen/literal/saturate/6bcddf.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/saturate/6bcddf.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,42 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  float3 prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation float3 VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+float3 saturate_6bcddf() {
+  float3 res = (1.0f).xxx;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store3(0u, asuint(saturate_6bcddf()));
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store3(0u, asuint(saturate_6bcddf()));
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = saturate_6bcddf();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
diff --git a/test/tint/builtins/gen/literal/saturate/78b37c.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/saturate/78b37c.wgsl.expected.ir.dxc.hlsl
index 0ba40c6..ff26f70 100644
--- a/test/tint/builtins/gen/literal/saturate/78b37c.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/saturate/78b37c.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,36 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+void saturate_78b37c() {
+  float res = 1.0f;
+}
+
+void fragment_main() {
+  saturate_78b37c();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  saturate_78b37c();
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  saturate_78b37c();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  vertex_main_outputs v_2 = {v_1.pos};
+  return v_2;
+}
+
diff --git a/test/tint/builtins/gen/literal/saturate/78b37c.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/saturate/78b37c.wgsl.expected.ir.fxc.hlsl
index 0ba40c6..ff26f70 100644
--- a/test/tint/builtins/gen/literal/saturate/78b37c.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/saturate/78b37c.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,36 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+void saturate_78b37c() {
+  float res = 1.0f;
+}
+
+void fragment_main() {
+  saturate_78b37c();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  saturate_78b37c();
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  saturate_78b37c();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  vertex_main_outputs v_2 = {v_1.pos};
+  return v_2;
+}
+
diff --git a/test/tint/builtins/gen/literal/saturate/a5b571.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/saturate/a5b571.wgsl.expected.ir.dxc.hlsl
index 0ba40c6..1f3faa3 100644
--- a/test/tint/builtins/gen/literal/saturate/a5b571.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/saturate/a5b571.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,42 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  float4 prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation float4 VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+float4 saturate_a5b571() {
+  float4 res = (1.0f).xxxx;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store4(0u, asuint(saturate_a5b571()));
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store4(0u, asuint(saturate_a5b571()));
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = saturate_a5b571();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
diff --git a/test/tint/builtins/gen/literal/saturate/a5b571.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/saturate/a5b571.wgsl.expected.ir.fxc.hlsl
index 0ba40c6..1f3faa3 100644
--- a/test/tint/builtins/gen/literal/saturate/a5b571.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/saturate/a5b571.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,42 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  float4 prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation float4 VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+float4 saturate_a5b571() {
+  float4 res = (1.0f).xxxx;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store4(0u, asuint(saturate_a5b571()));
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store4(0u, asuint(saturate_a5b571()));
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = saturate_a5b571();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
diff --git a/test/tint/builtins/gen/literal/saturate/cd2028.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/saturate/cd2028.wgsl.expected.ir.dxc.hlsl
index 0ba40c6..3e459d8 100644
--- a/test/tint/builtins/gen/literal/saturate/cd2028.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/saturate/cd2028.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,42 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  vector<float16_t, 2> prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation vector<float16_t, 2> VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+vector<float16_t, 2> saturate_cd2028() {
+  vector<float16_t, 2> res = (float16_t(1.0h)).xx;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store<vector<float16_t, 2> >(0u, saturate_cd2028());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store<vector<float16_t, 2> >(0u, saturate_cd2028());
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = saturate_cd2028();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
diff --git a/test/tint/builtins/gen/literal/saturate/cd2028.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/saturate/cd2028.wgsl.expected.ir.fxc.hlsl
index 0ba40c6..706b9d8 100644
--- a/test/tint/builtins/gen/literal/saturate/cd2028.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/saturate/cd2028.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,47 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct VertexOutput {
+  float4 pos;
+  vector<float16_t, 2> prevent_dce;
+};
+
+struct vertex_main_outputs {
+  nointerpolation vector<float16_t, 2> VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+vector<float16_t, 2> saturate_cd2028() {
+  vector<float16_t, 2> res = (float16_t(1.0h)).xx;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store<vector<float16_t, 2> >(0u, saturate_cd2028());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store<vector<float16_t, 2> >(0u, saturate_cd2028());
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = saturate_cd2028();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
+FXC validation failure:
+c:\src\dawn\Shader@0x00000275D3CE6900(3,10-18): error X3000: syntax error: unexpected token 'float16_t'
+
diff --git a/test/tint/builtins/gen/literal/saturate/d55822.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/saturate/d55822.wgsl.expected.ir.dxc.hlsl
index 0ba40c6..013776b 100644
--- a/test/tint/builtins/gen/literal/saturate/d55822.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/saturate/d55822.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,36 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+void saturate_d55822() {
+  float3 res = (1.0f).xxx;
+}
+
+void fragment_main() {
+  saturate_d55822();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  saturate_d55822();
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  saturate_d55822();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  vertex_main_outputs v_2 = {v_1.pos};
+  return v_2;
+}
+
diff --git a/test/tint/builtins/gen/literal/saturate/d55822.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/saturate/d55822.wgsl.expected.ir.fxc.hlsl
index 0ba40c6..013776b 100644
--- a/test/tint/builtins/gen/literal/saturate/d55822.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/saturate/d55822.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,36 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+void saturate_d55822() {
+  float3 res = (1.0f).xxx;
+}
+
+void fragment_main() {
+  saturate_d55822();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  saturate_d55822();
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  saturate_d55822();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  vertex_main_outputs v_2 = {v_1.pos};
+  return v_2;
+}
+
diff --git a/test/tint/builtins/gen/literal/saturate/dcde71.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/saturate/dcde71.wgsl.expected.ir.dxc.hlsl
index 0ba40c6..2631522 100644
--- a/test/tint/builtins/gen/literal/saturate/dcde71.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/saturate/dcde71.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,42 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  vector<float16_t, 4> prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation vector<float16_t, 4> VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+vector<float16_t, 4> saturate_dcde71() {
+  vector<float16_t, 4> res = (float16_t(1.0h)).xxxx;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store<vector<float16_t, 4> >(0u, saturate_dcde71());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store<vector<float16_t, 4> >(0u, saturate_dcde71());
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = saturate_dcde71();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
diff --git a/test/tint/builtins/gen/literal/saturate/dcde71.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/saturate/dcde71.wgsl.expected.ir.fxc.hlsl
index 0ba40c6..f02e1dd 100644
--- a/test/tint/builtins/gen/literal/saturate/dcde71.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/saturate/dcde71.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,47 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct VertexOutput {
+  float4 pos;
+  vector<float16_t, 4> prevent_dce;
+};
+
+struct vertex_main_outputs {
+  nointerpolation vector<float16_t, 4> VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+vector<float16_t, 4> saturate_dcde71() {
+  vector<float16_t, 4> res = (float16_t(1.0h)).xxxx;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store<vector<float16_t, 4> >(0u, saturate_dcde71());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store<vector<float16_t, 4> >(0u, saturate_dcde71());
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = saturate_dcde71();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
+FXC validation failure:
+c:\src\dawn\Shader@0x0000020181406940(3,10-18): error X3000: syntax error: unexpected token 'float16_t'
+
diff --git a/test/tint/builtins/gen/literal/saturate/e40fb6.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/saturate/e40fb6.wgsl.expected.ir.dxc.hlsl
index 0ba40c6..38fb339 100644
--- a/test/tint/builtins/gen/literal/saturate/e40fb6.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/saturate/e40fb6.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,36 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+void saturate_e40fb6() {
+  float2 res = (1.0f).xx;
+}
+
+void fragment_main() {
+  saturate_e40fb6();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  saturate_e40fb6();
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  saturate_e40fb6();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  vertex_main_outputs v_2 = {v_1.pos};
+  return v_2;
+}
+
diff --git a/test/tint/builtins/gen/literal/saturate/e40fb6.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/saturate/e40fb6.wgsl.expected.ir.fxc.hlsl
index 0ba40c6..38fb339 100644
--- a/test/tint/builtins/gen/literal/saturate/e40fb6.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/saturate/e40fb6.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,36 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+void saturate_e40fb6() {
+  float2 res = (1.0f).xx;
+}
+
+void fragment_main() {
+  saturate_e40fb6();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  saturate_e40fb6();
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  saturate_e40fb6();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  vertex_main_outputs v_2 = {v_1.pos};
+  return v_2;
+}
+
diff --git a/test/tint/builtins/gen/literal/saturate/e8df56.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/saturate/e8df56.wgsl.expected.ir.dxc.hlsl
index 0ba40c6..25cd2c9 100644
--- a/test/tint/builtins/gen/literal/saturate/e8df56.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/saturate/e8df56.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,42 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  float16_t prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation float16_t VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+float16_t saturate_e8df56() {
+  float16_t res = float16_t(1.0h);
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store<float16_t>(0u, saturate_e8df56());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store<float16_t>(0u, saturate_e8df56());
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = saturate_e8df56();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
diff --git a/test/tint/builtins/gen/literal/saturate/e8df56.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/saturate/e8df56.wgsl.expected.ir.fxc.hlsl
index 0ba40c6..b1e81bc 100644
--- a/test/tint/builtins/gen/literal/saturate/e8df56.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/saturate/e8df56.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,47 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct VertexOutput {
+  float4 pos;
+  float16_t prevent_dce;
+};
+
+struct vertex_main_outputs {
+  nointerpolation float16_t VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+float16_t saturate_e8df56() {
+  float16_t res = float16_t(1.0h);
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store<float16_t>(0u, saturate_e8df56());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store<float16_t>(0u, saturate_e8df56());
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = saturate_e8df56();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
+FXC validation failure:
+c:\src\dawn\Shader@0x000002651976C370(3,3-11): error X3000: unrecognized identifier 'float16_t'
+
diff --git a/test/tint/builtins/gen/literal/select/00b848.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/select/00b848.wgsl.expected.ir.dxc.hlsl
index 0ba40c6..d5ebdf1 100644
--- a/test/tint/builtins/gen/literal/select/00b848.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/select/00b848.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,42 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  int2 prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation int2 VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+int2 select_00b848() {
+  int2 res = (1).xx;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store2(0u, asuint(select_00b848()));
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store2(0u, asuint(select_00b848()));
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = select_00b848();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
diff --git a/test/tint/builtins/gen/literal/select/00b848.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/select/00b848.wgsl.expected.ir.fxc.hlsl
index 0ba40c6..d5ebdf1 100644
--- a/test/tint/builtins/gen/literal/select/00b848.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/select/00b848.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,42 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  int2 prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation int2 VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+int2 select_00b848() {
+  int2 res = (1).xx;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store2(0u, asuint(select_00b848()));
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store2(0u, asuint(select_00b848()));
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = select_00b848();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
diff --git a/test/tint/builtins/gen/literal/select/01e2cd.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/select/01e2cd.wgsl.expected.ir.dxc.hlsl
index 0ba40c6..5da2e0d 100644
--- a/test/tint/builtins/gen/literal/select/01e2cd.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/select/01e2cd.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,42 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  int3 prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation int3 VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+int3 select_01e2cd() {
+  int3 res = (1).xxx;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store3(0u, asuint(select_01e2cd()));
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store3(0u, asuint(select_01e2cd()));
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = select_01e2cd();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
diff --git a/test/tint/builtins/gen/literal/select/01e2cd.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/select/01e2cd.wgsl.expected.ir.fxc.hlsl
index 0ba40c6..5da2e0d 100644
--- a/test/tint/builtins/gen/literal/select/01e2cd.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/select/01e2cd.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,42 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  int3 prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation int3 VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+int3 select_01e2cd() {
+  int3 res = (1).xxx;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store3(0u, asuint(select_01e2cd()));
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store3(0u, asuint(select_01e2cd()));
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = select_01e2cd();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
diff --git a/test/tint/builtins/gen/literal/select/087ea4.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/select/087ea4.wgsl.expected.ir.dxc.hlsl
index 0ba40c6..3cff641 100644
--- a/test/tint/builtins/gen/literal/select/087ea4.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/select/087ea4.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,42 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  uint4 prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation uint4 VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+uint4 select_087ea4() {
+  uint4 res = (1u).xxxx;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store4(0u, select_087ea4());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store4(0u, select_087ea4());
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = select_087ea4();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
diff --git a/test/tint/builtins/gen/literal/select/087ea4.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/select/087ea4.wgsl.expected.ir.fxc.hlsl
index 0ba40c6..3cff641 100644
--- a/test/tint/builtins/gen/literal/select/087ea4.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/select/087ea4.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,42 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  uint4 prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation uint4 VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+uint4 select_087ea4() {
+  uint4 res = (1u).xxxx;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store4(0u, select_087ea4());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store4(0u, select_087ea4());
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = select_087ea4();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
diff --git a/test/tint/builtins/gen/literal/select/089657.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/select/089657.wgsl.expected.ir.dxc.hlsl
index 0ba40c6..35ce65a 100644
--- a/test/tint/builtins/gen/literal/select/089657.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/select/089657.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,36 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+void select_089657() {
+  float3 res = (1.0f).xxx;
+}
+
+void fragment_main() {
+  select_089657();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  select_089657();
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  select_089657();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  vertex_main_outputs v_2 = {v_1.pos};
+  return v_2;
+}
+
diff --git a/test/tint/builtins/gen/literal/select/089657.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/select/089657.wgsl.expected.ir.fxc.hlsl
index 0ba40c6..35ce65a 100644
--- a/test/tint/builtins/gen/literal/select/089657.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/select/089657.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,36 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+void select_089657() {
+  float3 res = (1.0f).xxx;
+}
+
+void fragment_main() {
+  select_089657();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  select_089657();
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  select_089657();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  vertex_main_outputs v_2 = {v_1.pos};
+  return v_2;
+}
+
diff --git a/test/tint/builtins/gen/literal/select/10e73b.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/select/10e73b.wgsl.expected.ir.dxc.hlsl
index 0ba40c6..cb55804 100644
--- a/test/tint/builtins/gen/literal/select/10e73b.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/select/10e73b.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,42 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  float16_t prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation float16_t VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+float16_t select_10e73b() {
+  float16_t res = float16_t(1.0h);
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store<float16_t>(0u, select_10e73b());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store<float16_t>(0u, select_10e73b());
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = select_10e73b();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
diff --git a/test/tint/builtins/gen/literal/select/10e73b.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/select/10e73b.wgsl.expected.ir.fxc.hlsl
index 0ba40c6..ab3a2be 100644
--- a/test/tint/builtins/gen/literal/select/10e73b.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/select/10e73b.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,47 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct VertexOutput {
+  float4 pos;
+  float16_t prevent_dce;
+};
+
+struct vertex_main_outputs {
+  nointerpolation float16_t VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+float16_t select_10e73b() {
+  float16_t res = float16_t(1.0h);
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store<float16_t>(0u, select_10e73b());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store<float16_t>(0u, select_10e73b());
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = select_10e73b();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
+FXC validation failure:
+c:\src\dawn\Shader@0x000002B8A00FF410(3,3-11): error X3000: unrecognized identifier 'float16_t'
+
diff --git a/test/tint/builtins/gen/literal/select/17441a.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/select/17441a.wgsl.expected.ir.dxc.hlsl
index 0ba40c6..3537d38 100644
--- a/test/tint/builtins/gen/literal/select/17441a.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/select/17441a.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,36 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+void select_17441a() {
+  float4 res = (1.0f).xxxx;
+}
+
+void fragment_main() {
+  select_17441a();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  select_17441a();
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  select_17441a();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  vertex_main_outputs v_2 = {v_1.pos};
+  return v_2;
+}
+
diff --git a/test/tint/builtins/gen/literal/select/17441a.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/select/17441a.wgsl.expected.ir.fxc.hlsl
index 0ba40c6..3537d38 100644
--- a/test/tint/builtins/gen/literal/select/17441a.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/select/17441a.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,36 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+void select_17441a() {
+  float4 res = (1.0f).xxxx;
+}
+
+void fragment_main() {
+  select_17441a();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  select_17441a();
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  select_17441a();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  vertex_main_outputs v_2 = {v_1.pos};
+  return v_2;
+}
+
diff --git a/test/tint/builtins/gen/literal/select/1ada2a.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/select/1ada2a.wgsl.expected.ir.dxc.hlsl
index 0ba40c6..6a3b213 100644
--- a/test/tint/builtins/gen/literal/select/1ada2a.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/select/1ada2a.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,42 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  vector<float16_t, 3> prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation vector<float16_t, 3> VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+vector<float16_t, 3> select_1ada2a() {
+  vector<float16_t, 3> res = (float16_t(1.0h)).xxx;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store<vector<float16_t, 3> >(0u, select_1ada2a());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store<vector<float16_t, 3> >(0u, select_1ada2a());
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = select_1ada2a();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
diff --git a/test/tint/builtins/gen/literal/select/1ada2a.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/select/1ada2a.wgsl.expected.ir.fxc.hlsl
index 0ba40c6..2c36f3e 100644
--- a/test/tint/builtins/gen/literal/select/1ada2a.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/select/1ada2a.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,47 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct VertexOutput {
+  float4 pos;
+  vector<float16_t, 3> prevent_dce;
+};
+
+struct vertex_main_outputs {
+  nointerpolation vector<float16_t, 3> VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+vector<float16_t, 3> select_1ada2a() {
+  vector<float16_t, 3> res = (float16_t(1.0h)).xxx;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store<vector<float16_t, 3> >(0u, select_1ada2a());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store<vector<float16_t, 3> >(0u, select_1ada2a());
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = select_1ada2a();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
+FXC validation failure:
+c:\src\dawn\Shader@0x000001780C34C2F0(3,10-18): error X3000: syntax error: unexpected token 'float16_t'
+
diff --git a/test/tint/builtins/gen/literal/select/1e960b.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/select/1e960b.wgsl.expected.ir.dxc.hlsl
index 0ba40c6..eded705 100644
--- a/test/tint/builtins/gen/literal/select/1e960b.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/select/1e960b.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,42 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  uint2 prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation uint2 VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+uint2 select_1e960b() {
+  uint2 res = (1u).xx;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store2(0u, select_1e960b());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store2(0u, select_1e960b());
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = select_1e960b();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
diff --git a/test/tint/builtins/gen/literal/select/1e960b.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/select/1e960b.wgsl.expected.ir.fxc.hlsl
index 0ba40c6..eded705 100644
--- a/test/tint/builtins/gen/literal/select/1e960b.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/select/1e960b.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,42 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  uint2 prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation uint2 VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+uint2 select_1e960b() {
+  uint2 res = (1u).xx;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store2(0u, select_1e960b());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store2(0u, select_1e960b());
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = select_1e960b();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
diff --git a/test/tint/builtins/gen/literal/select/1f4d93.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/select/1f4d93.wgsl.expected.ir.dxc.hlsl
index 0ba40c6..dae7144 100644
--- a/test/tint/builtins/gen/literal/select/1f4d93.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/select/1f4d93.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,36 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+void select_1f4d93() {
+  float2 res = (1.0f).xx;
+}
+
+void fragment_main() {
+  select_1f4d93();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  select_1f4d93();
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  select_1f4d93();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  vertex_main_outputs v_2 = {v_1.pos};
+  return v_2;
+}
+
diff --git a/test/tint/builtins/gen/literal/select/1f4d93.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/select/1f4d93.wgsl.expected.ir.fxc.hlsl
index 0ba40c6..dae7144 100644
--- a/test/tint/builtins/gen/literal/select/1f4d93.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/select/1f4d93.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,36 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+void select_1f4d93() {
+  float2 res = (1.0f).xx;
+}
+
+void fragment_main() {
+  select_1f4d93();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  select_1f4d93();
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  select_1f4d93();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  vertex_main_outputs v_2 = {v_1.pos};
+  return v_2;
+}
+
diff --git a/test/tint/builtins/gen/literal/select/266aff.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/select/266aff.wgsl.expected.ir.dxc.hlsl
index 0ba40c6..7f5f16c 100644
--- a/test/tint/builtins/gen/literal/select/266aff.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/select/266aff.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,42 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  float2 prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation float2 VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+float2 select_266aff() {
+  float2 res = (1.0f).xx;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store2(0u, asuint(select_266aff()));
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store2(0u, asuint(select_266aff()));
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = select_266aff();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
diff --git a/test/tint/builtins/gen/literal/select/266aff.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/select/266aff.wgsl.expected.ir.fxc.hlsl
index 0ba40c6..7f5f16c 100644
--- a/test/tint/builtins/gen/literal/select/266aff.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/select/266aff.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,42 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  float2 prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation float2 VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+float2 select_266aff() {
+  float2 res = (1.0f).xx;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store2(0u, asuint(select_266aff()));
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store2(0u, asuint(select_266aff()));
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = select_266aff();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
diff --git a/test/tint/builtins/gen/literal/select/28a27e.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/select/28a27e.wgsl.expected.ir.dxc.hlsl
index 0ba40c6..7ec1075 100644
--- a/test/tint/builtins/gen/literal/select/28a27e.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/select/28a27e.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,42 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  uint3 prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation uint3 VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+uint3 select_28a27e() {
+  uint3 res = (1u).xxx;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store3(0u, select_28a27e());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store3(0u, select_28a27e());
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = select_28a27e();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
diff --git a/test/tint/builtins/gen/literal/select/28a27e.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/select/28a27e.wgsl.expected.ir.fxc.hlsl
index 0ba40c6..7ec1075 100644
--- a/test/tint/builtins/gen/literal/select/28a27e.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/select/28a27e.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,42 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  uint3 prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation uint3 VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+uint3 select_28a27e() {
+  uint3 res = (1u).xxx;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store3(0u, select_28a27e());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store3(0u, select_28a27e());
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = select_28a27e();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
diff --git a/test/tint/builtins/gen/literal/select/2c96d4.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/select/2c96d4.wgsl.expected.ir.dxc.hlsl
index 0ba40c6..0619ccb 100644
--- a/test/tint/builtins/gen/literal/select/2c96d4.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/select/2c96d4.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,36 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+void select_2c96d4() {
+  float3 res = (1.0f).xxx;
+}
+
+void fragment_main() {
+  select_2c96d4();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  select_2c96d4();
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  select_2c96d4();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  vertex_main_outputs v_2 = {v_1.pos};
+  return v_2;
+}
+
diff --git a/test/tint/builtins/gen/literal/select/2c96d4.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/select/2c96d4.wgsl.expected.ir.fxc.hlsl
index 0ba40c6..0619ccb 100644
--- a/test/tint/builtins/gen/literal/select/2c96d4.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/select/2c96d4.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,36 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+void select_2c96d4() {
+  float3 res = (1.0f).xxx;
+}
+
+void fragment_main() {
+  select_2c96d4();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  select_2c96d4();
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  select_2c96d4();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  vertex_main_outputs v_2 = {v_1.pos};
+  return v_2;
+}
+
diff --git a/test/tint/builtins/gen/literal/select/3a14be.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/select/3a14be.wgsl.expected.ir.dxc.hlsl
index 0ba40c6..5b7332e 100644
--- a/test/tint/builtins/gen/literal/select/3a14be.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/select/3a14be.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,36 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+void select_3a14be() {
+  int2 res = (1).xx;
+}
+
+void fragment_main() {
+  select_3a14be();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  select_3a14be();
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  select_3a14be();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  vertex_main_outputs v_2 = {v_1.pos};
+  return v_2;
+}
+
diff --git a/test/tint/builtins/gen/literal/select/3a14be.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/select/3a14be.wgsl.expected.ir.fxc.hlsl
index 0ba40c6..5b7332e 100644
--- a/test/tint/builtins/gen/literal/select/3a14be.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/select/3a14be.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,36 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+void select_3a14be() {
+  int2 res = (1).xx;
+}
+
+void fragment_main() {
+  select_3a14be();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  select_3a14be();
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  select_3a14be();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  vertex_main_outputs v_2 = {v_1.pos};
+  return v_2;
+}
+
diff --git a/test/tint/builtins/gen/literal/select/3c25ce.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/select/3c25ce.wgsl.expected.ir.dxc.hlsl
index ddf0424..f976e59 100644
--- a/test/tint/builtins/gen/literal/select/3c25ce.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/select/3c25ce.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,42 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  int prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: select
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation int VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+int select_3c25ce() {
+  bool3 res = (true).xxx;
+  return ((all((res == (false).xxx))) ? (1) : (0));
+}
+
+void fragment_main() {
+  prevent_dce.Store(0u, asuint(select_3c25ce()));
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store(0u, asuint(select_3c25ce()));
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = select_3c25ce();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
diff --git a/test/tint/builtins/gen/literal/select/3c25ce.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/select/3c25ce.wgsl.expected.ir.fxc.hlsl
index ddf0424..f976e59 100644
--- a/test/tint/builtins/gen/literal/select/3c25ce.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/select/3c25ce.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,42 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  int prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: select
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation int VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+int select_3c25ce() {
+  bool3 res = (true).xxx;
+  return ((all((res == (false).xxx))) ? (1) : (0));
+}
+
+void fragment_main() {
+  prevent_dce.Store(0u, asuint(select_3c25ce()));
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store(0u, asuint(select_3c25ce()));
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = select_3c25ce();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
diff --git a/test/tint/builtins/gen/literal/select/416e14.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/select/416e14.wgsl.expected.ir.dxc.hlsl
index 0ba40c6..c2677fb 100644
--- a/test/tint/builtins/gen/literal/select/416e14.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/select/416e14.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,42 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  float prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation float VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+float select_416e14() {
+  float res = 1.0f;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store(0u, asuint(select_416e14()));
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store(0u, asuint(select_416e14()));
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = select_416e14();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
diff --git a/test/tint/builtins/gen/literal/select/416e14.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/select/416e14.wgsl.expected.ir.fxc.hlsl
index 0ba40c6..c2677fb 100644
--- a/test/tint/builtins/gen/literal/select/416e14.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/select/416e14.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,42 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  float prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation float VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+float select_416e14() {
+  float res = 1.0f;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store(0u, asuint(select_416e14()));
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store(0u, asuint(select_416e14()));
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = select_416e14();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
diff --git a/test/tint/builtins/gen/literal/select/431dfb.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/select/431dfb.wgsl.expected.ir.dxc.hlsl
index 0ba40c6..87f858b 100644
--- a/test/tint/builtins/gen/literal/select/431dfb.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/select/431dfb.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,36 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+void select_431dfb() {
+  int2 res = (1).xx;
+}
+
+void fragment_main() {
+  select_431dfb();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  select_431dfb();
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  select_431dfb();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  vertex_main_outputs v_2 = {v_1.pos};
+  return v_2;
+}
+
diff --git a/test/tint/builtins/gen/literal/select/431dfb.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/select/431dfb.wgsl.expected.ir.fxc.hlsl
index 0ba40c6..87f858b 100644
--- a/test/tint/builtins/gen/literal/select/431dfb.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/select/431dfb.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,36 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+void select_431dfb() {
+  int2 res = (1).xx;
+}
+
+void fragment_main() {
+  select_431dfb();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  select_431dfb();
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  select_431dfb();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  vertex_main_outputs v_2 = {v_1.pos};
+  return v_2;
+}
+
diff --git a/test/tint/builtins/gen/literal/select/43741e.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/select/43741e.wgsl.expected.ir.dxc.hlsl
index 0ba40c6..9112739 100644
--- a/test/tint/builtins/gen/literal/select/43741e.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/select/43741e.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,36 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+void select_43741e() {
+  float4 res = (1.0f).xxxx;
+}
+
+void fragment_main() {
+  select_43741e();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  select_43741e();
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  select_43741e();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  vertex_main_outputs v_2 = {v_1.pos};
+  return v_2;
+}
+
diff --git a/test/tint/builtins/gen/literal/select/43741e.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/select/43741e.wgsl.expected.ir.fxc.hlsl
index 0ba40c6..9112739 100644
--- a/test/tint/builtins/gen/literal/select/43741e.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/select/43741e.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,36 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+void select_43741e() {
+  float4 res = (1.0f).xxxx;
+}
+
+void fragment_main() {
+  select_43741e();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  select_43741e();
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  select_43741e();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  vertex_main_outputs v_2 = {v_1.pos};
+  return v_2;
+}
+
diff --git a/test/tint/builtins/gen/literal/select/494051.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/select/494051.wgsl.expected.ir.dxc.hlsl
index 0ba40c6..ea84bd6 100644
--- a/test/tint/builtins/gen/literal/select/494051.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/select/494051.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,36 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+void select_494051() {
+  float res = 1.0f;
+}
+
+void fragment_main() {
+  select_494051();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  select_494051();
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  select_494051();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  vertex_main_outputs v_2 = {v_1.pos};
+  return v_2;
+}
+
diff --git a/test/tint/builtins/gen/literal/select/494051.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/select/494051.wgsl.expected.ir.fxc.hlsl
index 0ba40c6..ea84bd6 100644
--- a/test/tint/builtins/gen/literal/select/494051.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/select/494051.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,36 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+void select_494051() {
+  float res = 1.0f;
+}
+
+void fragment_main() {
+  select_494051();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  select_494051();
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  select_494051();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  vertex_main_outputs v_2 = {v_1.pos};
+  return v_2;
+}
+
diff --git a/test/tint/builtins/gen/literal/select/4c4738.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/select/4c4738.wgsl.expected.ir.dxc.hlsl
index 0ba40c6..6d31f6e 100644
--- a/test/tint/builtins/gen/literal/select/4c4738.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/select/4c4738.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,36 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+void select_4c4738() {
+  int4 res = (1).xxxx;
+}
+
+void fragment_main() {
+  select_4c4738();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  select_4c4738();
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  select_4c4738();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  vertex_main_outputs v_2 = {v_1.pos};
+  return v_2;
+}
+
diff --git a/test/tint/builtins/gen/literal/select/4c4738.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/select/4c4738.wgsl.expected.ir.fxc.hlsl
index 0ba40c6..6d31f6e 100644
--- a/test/tint/builtins/gen/literal/select/4c4738.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/select/4c4738.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,36 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+void select_4c4738() {
+  int4 res = (1).xxxx;
+}
+
+void fragment_main() {
+  select_4c4738();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  select_4c4738();
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  select_4c4738();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  vertex_main_outputs v_2 = {v_1.pos};
+  return v_2;
+}
+
diff --git a/test/tint/builtins/gen/literal/select/4e60da.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/select/4e60da.wgsl.expected.ir.dxc.hlsl
index 0ba40c6..4ca3897 100644
--- a/test/tint/builtins/gen/literal/select/4e60da.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/select/4e60da.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,36 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+void select_4e60da() {
+  float2 res = (1.0f).xx;
+}
+
+void fragment_main() {
+  select_4e60da();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  select_4e60da();
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  select_4e60da();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  vertex_main_outputs v_2 = {v_1.pos};
+  return v_2;
+}
+
diff --git a/test/tint/builtins/gen/literal/select/4e60da.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/select/4e60da.wgsl.expected.ir.fxc.hlsl
index 0ba40c6..4ca3897 100644
--- a/test/tint/builtins/gen/literal/select/4e60da.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/select/4e60da.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,36 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+void select_4e60da() {
+  float2 res = (1.0f).xx;
+}
+
+void fragment_main() {
+  select_4e60da();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  select_4e60da();
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  select_4e60da();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  vertex_main_outputs v_2 = {v_1.pos};
+  return v_2;
+}
+
diff --git a/test/tint/builtins/gen/literal/select/51b047.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/select/51b047.wgsl.expected.ir.dxc.hlsl
index 0ba40c6..3242e87 100644
--- a/test/tint/builtins/gen/literal/select/51b047.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/select/51b047.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,42 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  uint2 prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation uint2 VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+uint2 select_51b047() {
+  uint2 res = (1u).xx;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store2(0u, select_51b047());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store2(0u, select_51b047());
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = select_51b047();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
diff --git a/test/tint/builtins/gen/literal/select/51b047.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/select/51b047.wgsl.expected.ir.fxc.hlsl
index 0ba40c6..3242e87 100644
--- a/test/tint/builtins/gen/literal/select/51b047.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/select/51b047.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,42 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  uint2 prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation uint2 VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+uint2 select_51b047() {
+  uint2 res = (1u).xx;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store2(0u, select_51b047());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store2(0u, select_51b047());
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = select_51b047();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
diff --git a/test/tint/builtins/gen/literal/select/53d518.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/select/53d518.wgsl.expected.ir.dxc.hlsl
index 0ba40c6..15c35cf 100644
--- a/test/tint/builtins/gen/literal/select/53d518.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/select/53d518.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,42 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  vector<float16_t, 3> prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation vector<float16_t, 3> VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+vector<float16_t, 3> select_53d518() {
+  vector<float16_t, 3> res = (float16_t(1.0h)).xxx;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store<vector<float16_t, 3> >(0u, select_53d518());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store<vector<float16_t, 3> >(0u, select_53d518());
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = select_53d518();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
diff --git a/test/tint/builtins/gen/literal/select/53d518.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/select/53d518.wgsl.expected.ir.fxc.hlsl
index 0ba40c6..2bc0d1f 100644
--- a/test/tint/builtins/gen/literal/select/53d518.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/select/53d518.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,47 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct VertexOutput {
+  float4 pos;
+  vector<float16_t, 3> prevent_dce;
+};
+
+struct vertex_main_outputs {
+  nointerpolation vector<float16_t, 3> VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+vector<float16_t, 3> select_53d518() {
+  vector<float16_t, 3> res = (float16_t(1.0h)).xxx;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store<vector<float16_t, 3> >(0u, select_53d518());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store<vector<float16_t, 3> >(0u, select_53d518());
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = select_53d518();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
+FXC validation failure:
+c:\src\dawn\Shader@0x000001C095C30A80(3,10-18): error X3000: syntax error: unexpected token 'float16_t'
+
diff --git a/test/tint/builtins/gen/literal/select/713567.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/select/713567.wgsl.expected.ir.dxc.hlsl
index 0ba40c6..f20fc7a 100644
--- a/test/tint/builtins/gen/literal/select/713567.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/select/713567.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,42 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  float4 prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation float4 VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+float4 select_713567() {
+  float4 res = (1.0f).xxxx;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store4(0u, asuint(select_713567()));
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store4(0u, asuint(select_713567()));
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = select_713567();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
diff --git a/test/tint/builtins/gen/literal/select/713567.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/select/713567.wgsl.expected.ir.fxc.hlsl
index 0ba40c6..f20fc7a 100644
--- a/test/tint/builtins/gen/literal/select/713567.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/select/713567.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,42 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  float4 prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation float4 VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+float4 select_713567() {
+  float4 res = (1.0f).xxxx;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store4(0u, asuint(select_713567()));
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store4(0u, asuint(select_713567()));
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = select_713567();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
diff --git a/test/tint/builtins/gen/literal/select/78be5f.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/select/78be5f.wgsl.expected.ir.dxc.hlsl
index 0ba40c6..5d27d21 100644
--- a/test/tint/builtins/gen/literal/select/78be5f.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/select/78be5f.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,42 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  float3 prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation float3 VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+float3 select_78be5f() {
+  float3 res = (1.0f).xxx;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store3(0u, asuint(select_78be5f()));
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store3(0u, asuint(select_78be5f()));
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = select_78be5f();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
diff --git a/test/tint/builtins/gen/literal/select/78be5f.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/select/78be5f.wgsl.expected.ir.fxc.hlsl
index 0ba40c6..5d27d21 100644
--- a/test/tint/builtins/gen/literal/select/78be5f.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/select/78be5f.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,42 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  float3 prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation float3 VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+float3 select_78be5f() {
+  float3 res = (1.0f).xxx;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store3(0u, asuint(select_78be5f()));
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store3(0u, asuint(select_78be5f()));
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = select_78be5f();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
diff --git a/test/tint/builtins/gen/literal/select/80a9a9.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/select/80a9a9.wgsl.expected.ir.dxc.hlsl
index ddf0424..bfaeee3 100644
--- a/test/tint/builtins/gen/literal/select/80a9a9.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/select/80a9a9.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,42 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  int prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: select
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation int VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+int select_80a9a9() {
+  bool3 res = (true).xxx;
+  return ((all((res == (false).xxx))) ? (1) : (0));
+}
+
+void fragment_main() {
+  prevent_dce.Store(0u, asuint(select_80a9a9()));
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store(0u, asuint(select_80a9a9()));
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = select_80a9a9();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
diff --git a/test/tint/builtins/gen/literal/select/80a9a9.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/select/80a9a9.wgsl.expected.ir.fxc.hlsl
index ddf0424..bfaeee3 100644
--- a/test/tint/builtins/gen/literal/select/80a9a9.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/select/80a9a9.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,42 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  int prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: select
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation int VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+int select_80a9a9() {
+  bool3 res = (true).xxx;
+  return ((all((res == (false).xxx))) ? (1) : (0));
+}
+
+void fragment_main() {
+  prevent_dce.Store(0u, asuint(select_80a9a9()));
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store(0u, asuint(select_80a9a9()));
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = select_80a9a9();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
diff --git a/test/tint/builtins/gen/literal/select/830dd9.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/select/830dd9.wgsl.expected.ir.dxc.hlsl
index 0ba40c6..64075c7 100644
--- a/test/tint/builtins/gen/literal/select/830dd9.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/select/830dd9.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,42 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  vector<float16_t, 4> prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation vector<float16_t, 4> VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+vector<float16_t, 4> select_830dd9() {
+  vector<float16_t, 4> res = (float16_t(1.0h)).xxxx;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store<vector<float16_t, 4> >(0u, select_830dd9());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store<vector<float16_t, 4> >(0u, select_830dd9());
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = select_830dd9();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
diff --git a/test/tint/builtins/gen/literal/select/830dd9.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/select/830dd9.wgsl.expected.ir.fxc.hlsl
index 0ba40c6..c4c201c 100644
--- a/test/tint/builtins/gen/literal/select/830dd9.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/select/830dd9.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,47 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct VertexOutput {
+  float4 pos;
+  vector<float16_t, 4> prevent_dce;
+};
+
+struct vertex_main_outputs {
+  nointerpolation vector<float16_t, 4> VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+vector<float16_t, 4> select_830dd9() {
+  vector<float16_t, 4> res = (float16_t(1.0h)).xxxx;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store<vector<float16_t, 4> >(0u, select_830dd9());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store<vector<float16_t, 4> >(0u, select_830dd9());
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = select_830dd9();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
+FXC validation failure:
+c:\src\dawn\Shader@0x000001D2DB2FBE90(3,10-18): error X3000: syntax error: unexpected token 'float16_t'
+
diff --git a/test/tint/builtins/gen/literal/select/86f9bd.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/select/86f9bd.wgsl.expected.ir.dxc.hlsl
index 0ba40c6..dcf7510 100644
--- a/test/tint/builtins/gen/literal/select/86f9bd.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/select/86f9bd.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,42 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  vector<float16_t, 2> prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation vector<float16_t, 2> VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+vector<float16_t, 2> select_86f9bd() {
+  vector<float16_t, 2> res = (float16_t(1.0h)).xx;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store<vector<float16_t, 2> >(0u, select_86f9bd());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store<vector<float16_t, 2> >(0u, select_86f9bd());
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = select_86f9bd();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
diff --git a/test/tint/builtins/gen/literal/select/86f9bd.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/select/86f9bd.wgsl.expected.ir.fxc.hlsl
index 0ba40c6..19fdaa3 100644
--- a/test/tint/builtins/gen/literal/select/86f9bd.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/select/86f9bd.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,47 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct VertexOutput {
+  float4 pos;
+  vector<float16_t, 2> prevent_dce;
+};
+
+struct vertex_main_outputs {
+  nointerpolation vector<float16_t, 2> VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+vector<float16_t, 2> select_86f9bd() {
+  vector<float16_t, 2> res = (float16_t(1.0h)).xx;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store<vector<float16_t, 2> >(0u, select_86f9bd());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store<vector<float16_t, 2> >(0u, select_86f9bd());
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = select_86f9bd();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
+FXC validation failure:
+c:\src\dawn\Shader@0x0000024A77FC2180(3,10-18): error X3000: syntax error: unexpected token 'float16_t'
+
diff --git a/test/tint/builtins/gen/literal/select/8fa62c.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/select/8fa62c.wgsl.expected.ir.dxc.hlsl
index 0ba40c6..7ad9ea0 100644
--- a/test/tint/builtins/gen/literal/select/8fa62c.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/select/8fa62c.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,42 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  int3 prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation int3 VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+int3 select_8fa62c() {
+  int3 res = (1).xxx;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store3(0u, asuint(select_8fa62c()));
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store3(0u, asuint(select_8fa62c()));
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = select_8fa62c();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
diff --git a/test/tint/builtins/gen/literal/select/8fa62c.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/select/8fa62c.wgsl.expected.ir.fxc.hlsl
index 0ba40c6..7ad9ea0 100644
--- a/test/tint/builtins/gen/literal/select/8fa62c.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/select/8fa62c.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,42 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  int3 prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation int3 VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+int3 select_8fa62c() {
+  int3 res = (1).xxx;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store3(0u, asuint(select_8fa62c()));
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store3(0u, asuint(select_8fa62c()));
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = select_8fa62c();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
diff --git a/test/tint/builtins/gen/literal/select/99f883.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/select/99f883.wgsl.expected.ir.dxc.hlsl
index 0ba40c6..6ddc27c 100644
--- a/test/tint/builtins/gen/literal/select/99f883.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/select/99f883.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,42 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  uint prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation uint VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+uint select_99f883() {
+  uint res = 1u;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store(0u, select_99f883());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store(0u, select_99f883());
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = select_99f883();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
diff --git a/test/tint/builtins/gen/literal/select/99f883.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/select/99f883.wgsl.expected.ir.fxc.hlsl
index 0ba40c6..6ddc27c 100644
--- a/test/tint/builtins/gen/literal/select/99f883.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/select/99f883.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,42 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  uint prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation uint VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+uint select_99f883() {
+  uint res = 1u;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store(0u, select_99f883());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store(0u, select_99f883());
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = select_99f883();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
diff --git a/test/tint/builtins/gen/literal/select/9b478d.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/select/9b478d.wgsl.expected.ir.dxc.hlsl
index 0ba40c6..f0be275 100644
--- a/test/tint/builtins/gen/literal/select/9b478d.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/select/9b478d.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,36 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+void select_9b478d() {
+  int res = 1;
+}
+
+void fragment_main() {
+  select_9b478d();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  select_9b478d();
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  select_9b478d();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  vertex_main_outputs v_2 = {v_1.pos};
+  return v_2;
+}
+
diff --git a/test/tint/builtins/gen/literal/select/9b478d.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/select/9b478d.wgsl.expected.ir.fxc.hlsl
index 0ba40c6..f0be275 100644
--- a/test/tint/builtins/gen/literal/select/9b478d.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/select/9b478d.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,36 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+void select_9b478d() {
+  int res = 1;
+}
+
+void fragment_main() {
+  select_9b478d();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  select_9b478d();
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  select_9b478d();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  vertex_main_outputs v_2 = {v_1.pos};
+  return v_2;
+}
+
diff --git a/test/tint/builtins/gen/literal/select/a081f1.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/select/a081f1.wgsl.expected.ir.dxc.hlsl
index 0ba40c6..ecb697c 100644
--- a/test/tint/builtins/gen/literal/select/a081f1.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/select/a081f1.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,42 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  vector<float16_t, 4> prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation vector<float16_t, 4> VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+vector<float16_t, 4> select_a081f1() {
+  vector<float16_t, 4> res = (float16_t(1.0h)).xxxx;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store<vector<float16_t, 4> >(0u, select_a081f1());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store<vector<float16_t, 4> >(0u, select_a081f1());
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = select_a081f1();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
diff --git a/test/tint/builtins/gen/literal/select/a081f1.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/select/a081f1.wgsl.expected.ir.fxc.hlsl
index 0ba40c6..3bad2ba 100644
--- a/test/tint/builtins/gen/literal/select/a081f1.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/select/a081f1.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,47 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct VertexOutput {
+  float4 pos;
+  vector<float16_t, 4> prevent_dce;
+};
+
+struct vertex_main_outputs {
+  nointerpolation vector<float16_t, 4> VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+vector<float16_t, 4> select_a081f1() {
+  vector<float16_t, 4> res = (float16_t(1.0h)).xxxx;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store<vector<float16_t, 4> >(0u, select_a081f1());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store<vector<float16_t, 4> >(0u, select_a081f1());
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = select_a081f1();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
+FXC validation failure:
+c:\src\dawn\Shader@0x000001CAFABB03E0(3,10-18): error X3000: syntax error: unexpected token 'float16_t'
+
diff --git a/test/tint/builtins/gen/literal/select/a2860e.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/select/a2860e.wgsl.expected.ir.dxc.hlsl
index 0ba40c6..3d95b91 100644
--- a/test/tint/builtins/gen/literal/select/a2860e.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/select/a2860e.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,42 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  int4 prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation int4 VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+int4 select_a2860e() {
+  int4 res = (1).xxxx;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store4(0u, asuint(select_a2860e()));
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store4(0u, asuint(select_a2860e()));
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = select_a2860e();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
diff --git a/test/tint/builtins/gen/literal/select/a2860e.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/select/a2860e.wgsl.expected.ir.fxc.hlsl
index 0ba40c6..3d95b91 100644
--- a/test/tint/builtins/gen/literal/select/a2860e.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/select/a2860e.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,42 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  int4 prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation int4 VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+int4 select_a2860e() {
+  int4 res = (1).xxxx;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store4(0u, asuint(select_a2860e()));
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store4(0u, asuint(select_a2860e()));
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = select_a2860e();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
diff --git a/test/tint/builtins/gen/literal/select/ab069f.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/select/ab069f.wgsl.expected.ir.dxc.hlsl
index 0ba40c6..610548f 100644
--- a/test/tint/builtins/gen/literal/select/ab069f.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/select/ab069f.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,42 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  int4 prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation int4 VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+int4 select_ab069f() {
+  int4 res = (1).xxxx;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store4(0u, asuint(select_ab069f()));
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store4(0u, asuint(select_ab069f()));
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = select_ab069f();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
diff --git a/test/tint/builtins/gen/literal/select/ab069f.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/select/ab069f.wgsl.expected.ir.fxc.hlsl
index 0ba40c6..610548f 100644
--- a/test/tint/builtins/gen/literal/select/ab069f.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/select/ab069f.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,42 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  int4 prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation int4 VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+int4 select_ab069f() {
+  int4 res = (1).xxxx;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store4(0u, asuint(select_ab069f()));
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store4(0u, asuint(select_ab069f()));
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = select_ab069f();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
diff --git a/test/tint/builtins/gen/literal/select/b04721.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/select/b04721.wgsl.expected.ir.dxc.hlsl
index 0ba40c6..9c6dbc1 100644
--- a/test/tint/builtins/gen/literal/select/b04721.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/select/b04721.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,42 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  uint3 prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation uint3 VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+uint3 select_b04721() {
+  uint3 res = (1u).xxx;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store3(0u, select_b04721());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store3(0u, select_b04721());
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = select_b04721();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
diff --git a/test/tint/builtins/gen/literal/select/b04721.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/select/b04721.wgsl.expected.ir.fxc.hlsl
index 0ba40c6..9c6dbc1 100644
--- a/test/tint/builtins/gen/literal/select/b04721.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/select/b04721.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,42 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  uint3 prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation uint3 VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+uint3 select_b04721() {
+  uint3 res = (1u).xxx;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store3(0u, select_b04721());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store3(0u, select_b04721());
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = select_b04721();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
diff --git a/test/tint/builtins/gen/literal/select/b93806.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/select/b93806.wgsl.expected.ir.dxc.hlsl
index 0ba40c6..5d7793d 100644
--- a/test/tint/builtins/gen/literal/select/b93806.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/select/b93806.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,36 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+void select_b93806() {
+  int3 res = (1).xxx;
+}
+
+void fragment_main() {
+  select_b93806();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  select_b93806();
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  select_b93806();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  vertex_main_outputs v_2 = {v_1.pos};
+  return v_2;
+}
+
diff --git a/test/tint/builtins/gen/literal/select/b93806.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/select/b93806.wgsl.expected.ir.fxc.hlsl
index 0ba40c6..5d7793d 100644
--- a/test/tint/builtins/gen/literal/select/b93806.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/select/b93806.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,36 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+void select_b93806() {
+  int3 res = (1).xxx;
+}
+
+void fragment_main() {
+  select_b93806();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  select_b93806();
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  select_b93806();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  vertex_main_outputs v_2 = {v_1.pos};
+  return v_2;
+}
+
diff --git a/test/tint/builtins/gen/literal/select/bb447f.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/select/bb447f.wgsl.expected.ir.dxc.hlsl
index 0ba40c6..632e101 100644
--- a/test/tint/builtins/gen/literal/select/bb447f.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/select/bb447f.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,42 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  int2 prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation int2 VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+int2 select_bb447f() {
+  int2 res = (1).xx;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store2(0u, asuint(select_bb447f()));
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store2(0u, asuint(select_bb447f()));
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = select_bb447f();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
diff --git a/test/tint/builtins/gen/literal/select/bb447f.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/select/bb447f.wgsl.expected.ir.fxc.hlsl
index 0ba40c6..632e101 100644
--- a/test/tint/builtins/gen/literal/select/bb447f.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/select/bb447f.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,42 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  int2 prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation int2 VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+int2 select_bb447f() {
+  int2 res = (1).xx;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store2(0u, asuint(select_bb447f()));
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store2(0u, asuint(select_bb447f()));
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = select_bb447f();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
diff --git a/test/tint/builtins/gen/literal/select/bb8aae.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/select/bb8aae.wgsl.expected.ir.dxc.hlsl
index 0ba40c6..9d6642e 100644
--- a/test/tint/builtins/gen/literal/select/bb8aae.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/select/bb8aae.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,42 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  float4 prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation float4 VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+float4 select_bb8aae() {
+  float4 res = (1.0f).xxxx;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store4(0u, asuint(select_bb8aae()));
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store4(0u, asuint(select_bb8aae()));
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = select_bb8aae();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
diff --git a/test/tint/builtins/gen/literal/select/bb8aae.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/select/bb8aae.wgsl.expected.ir.fxc.hlsl
index 0ba40c6..9d6642e 100644
--- a/test/tint/builtins/gen/literal/select/bb8aae.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/select/bb8aae.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,42 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  float4 prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation float4 VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+float4 select_bb8aae() {
+  float4 res = (1.0f).xxxx;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store4(0u, asuint(select_bb8aae()));
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store4(0u, asuint(select_bb8aae()));
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = select_bb8aae();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
diff --git a/test/tint/builtins/gen/literal/select/bf3d29.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/select/bf3d29.wgsl.expected.ir.dxc.hlsl
index 0ba40c6..670516b 100644
--- a/test/tint/builtins/gen/literal/select/bf3d29.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/select/bf3d29.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,42 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  float2 prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation float2 VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+float2 select_bf3d29() {
+  float2 res = (1.0f).xx;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store2(0u, asuint(select_bf3d29()));
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store2(0u, asuint(select_bf3d29()));
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = select_bf3d29();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
diff --git a/test/tint/builtins/gen/literal/select/bf3d29.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/select/bf3d29.wgsl.expected.ir.fxc.hlsl
index 0ba40c6..670516b 100644
--- a/test/tint/builtins/gen/literal/select/bf3d29.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/select/bf3d29.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,42 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  float2 prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation float2 VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+float2 select_bf3d29() {
+  float2 res = (1.0f).xx;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store2(0u, asuint(select_bf3d29()));
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store2(0u, asuint(select_bf3d29()));
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = select_bf3d29();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
diff --git a/test/tint/builtins/gen/literal/select/c31f9e.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/select/c31f9e.wgsl.expected.ir.dxc.hlsl
index ddf0424..80f422f 100644
--- a/test/tint/builtins/gen/literal/select/c31f9e.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/select/c31f9e.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,42 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  int prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: select
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation int VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+int select_c31f9e() {
+  bool res = true;
+  return ((all((res == false))) ? (1) : (0));
+}
+
+void fragment_main() {
+  prevent_dce.Store(0u, asuint(select_c31f9e()));
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store(0u, asuint(select_c31f9e()));
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = select_c31f9e();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
diff --git a/test/tint/builtins/gen/literal/select/c31f9e.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/select/c31f9e.wgsl.expected.ir.fxc.hlsl
index ddf0424..80f422f 100644
--- a/test/tint/builtins/gen/literal/select/c31f9e.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/select/c31f9e.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,42 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  int prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: select
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation int VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+int select_c31f9e() {
+  bool res = true;
+  return ((all((res == false))) ? (1) : (0));
+}
+
+void fragment_main() {
+  prevent_dce.Store(0u, asuint(select_c31f9e()));
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store(0u, asuint(select_c31f9e()));
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = select_c31f9e();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
diff --git a/test/tint/builtins/gen/literal/select/c41bd1.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/select/c41bd1.wgsl.expected.ir.dxc.hlsl
index ddf0424..be20bda 100644
--- a/test/tint/builtins/gen/literal/select/c41bd1.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/select/c41bd1.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,42 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  int prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: select
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation int VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+int select_c41bd1() {
+  bool4 res = (true).xxxx;
+  return ((all((res == (false).xxxx))) ? (1) : (0));
+}
+
+void fragment_main() {
+  prevent_dce.Store(0u, asuint(select_c41bd1()));
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store(0u, asuint(select_c41bd1()));
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = select_c41bd1();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
diff --git a/test/tint/builtins/gen/literal/select/c41bd1.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/select/c41bd1.wgsl.expected.ir.fxc.hlsl
index ddf0424..be20bda 100644
--- a/test/tint/builtins/gen/literal/select/c41bd1.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/select/c41bd1.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,42 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  int prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: select
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation int VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+int select_c41bd1() {
+  bool4 res = (true).xxxx;
+  return ((all((res == (false).xxxx))) ? (1) : (0));
+}
+
+void fragment_main() {
+  prevent_dce.Store(0u, asuint(select_c41bd1()));
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store(0u, asuint(select_c41bd1()));
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = select_c41bd1();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
diff --git a/test/tint/builtins/gen/literal/select/c4a4ef.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/select/c4a4ef.wgsl.expected.ir.dxc.hlsl
index 0ba40c6..b596238 100644
--- a/test/tint/builtins/gen/literal/select/c4a4ef.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/select/c4a4ef.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,42 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  uint4 prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation uint4 VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+uint4 select_c4a4ef() {
+  uint4 res = (1u).xxxx;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store4(0u, select_c4a4ef());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store4(0u, select_c4a4ef());
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = select_c4a4ef();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
diff --git a/test/tint/builtins/gen/literal/select/c4a4ef.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/select/c4a4ef.wgsl.expected.ir.fxc.hlsl
index 0ba40c6..b596238 100644
--- a/test/tint/builtins/gen/literal/select/c4a4ef.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/select/c4a4ef.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,42 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  uint4 prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation uint4 VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+uint4 select_c4a4ef() {
+  uint4 res = (1u).xxxx;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store4(0u, select_c4a4ef());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store4(0u, select_c4a4ef());
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = select_c4a4ef();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
diff --git a/test/tint/builtins/gen/literal/select/cb9301.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/select/cb9301.wgsl.expected.ir.dxc.hlsl
index ddf0424..9b9f16a 100644
--- a/test/tint/builtins/gen/literal/select/cb9301.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/select/cb9301.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,42 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  int prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: select
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation int VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+int select_cb9301() {
+  bool2 res = (true).xx;
+  return ((all((res == (false).xx))) ? (1) : (0));
+}
+
+void fragment_main() {
+  prevent_dce.Store(0u, asuint(select_cb9301()));
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store(0u, asuint(select_cb9301()));
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = select_cb9301();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
diff --git a/test/tint/builtins/gen/literal/select/cb9301.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/select/cb9301.wgsl.expected.ir.fxc.hlsl
index ddf0424..9b9f16a 100644
--- a/test/tint/builtins/gen/literal/select/cb9301.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/select/cb9301.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,42 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  int prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: select
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation int VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+int select_cb9301() {
+  bool2 res = (true).xx;
+  return ((all((res == (false).xx))) ? (1) : (0));
+}
+
+void fragment_main() {
+  prevent_dce.Store(0u, asuint(select_cb9301()));
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store(0u, asuint(select_cb9301()));
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = select_cb9301();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
diff --git a/test/tint/builtins/gen/literal/select/dfab3b.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/select/dfab3b.wgsl.expected.ir.dxc.hlsl
index 0ba40c6..d56eba2 100644
--- a/test/tint/builtins/gen/literal/select/dfab3b.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/select/dfab3b.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,36 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+void select_dfab3b() {
+  int3 res = (1).xxx;
+}
+
+void fragment_main() {
+  select_dfab3b();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  select_dfab3b();
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  select_dfab3b();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  vertex_main_outputs v_2 = {v_1.pos};
+  return v_2;
+}
+
diff --git a/test/tint/builtins/gen/literal/select/dfab3b.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/select/dfab3b.wgsl.expected.ir.fxc.hlsl
index 0ba40c6..d56eba2 100644
--- a/test/tint/builtins/gen/literal/select/dfab3b.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/select/dfab3b.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,36 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+void select_dfab3b() {
+  int3 res = (1).xxx;
+}
+
+void fragment_main() {
+  select_dfab3b();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  select_dfab3b();
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  select_dfab3b();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  vertex_main_outputs v_2 = {v_1.pos};
+  return v_2;
+}
+
diff --git a/test/tint/builtins/gen/literal/select/e381c3.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/select/e381c3.wgsl.expected.ir.dxc.hlsl
index 0ba40c6..49de211 100644
--- a/test/tint/builtins/gen/literal/select/e381c3.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/select/e381c3.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,36 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+void select_e381c3() {
+  int4 res = (1).xxxx;
+}
+
+void fragment_main() {
+  select_e381c3();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  select_e381c3();
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  select_e381c3();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  vertex_main_outputs v_2 = {v_1.pos};
+  return v_2;
+}
+
diff --git a/test/tint/builtins/gen/literal/select/e381c3.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/select/e381c3.wgsl.expected.ir.fxc.hlsl
index 0ba40c6..49de211 100644
--- a/test/tint/builtins/gen/literal/select/e381c3.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/select/e381c3.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,36 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+void select_e381c3() {
+  int4 res = (1).xxxx;
+}
+
+void fragment_main() {
+  select_e381c3();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  select_e381c3();
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  select_e381c3();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  vertex_main_outputs v_2 = {v_1.pos};
+  return v_2;
+}
+
diff --git a/test/tint/builtins/gen/literal/select/e3e028.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/select/e3e028.wgsl.expected.ir.dxc.hlsl
index ddf0424..473e487 100644
--- a/test/tint/builtins/gen/literal/select/e3e028.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/select/e3e028.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,42 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  int prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: select
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation int VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+int select_e3e028() {
+  bool4 res = (true).xxxx;
+  return ((all((res == (false).xxxx))) ? (1) : (0));
+}
+
+void fragment_main() {
+  prevent_dce.Store(0u, asuint(select_e3e028()));
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store(0u, asuint(select_e3e028()));
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = select_e3e028();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
diff --git a/test/tint/builtins/gen/literal/select/e3e028.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/select/e3e028.wgsl.expected.ir.fxc.hlsl
index ddf0424..473e487 100644
--- a/test/tint/builtins/gen/literal/select/e3e028.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/select/e3e028.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,42 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  int prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: select
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation int VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+int select_e3e028() {
+  bool4 res = (true).xxxx;
+  return ((all((res == (false).xxxx))) ? (1) : (0));
+}
+
+void fragment_main() {
+  prevent_dce.Store(0u, asuint(select_e3e028()));
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store(0u, asuint(select_e3e028()));
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = select_e3e028();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
diff --git a/test/tint/builtins/gen/literal/select/ebfea2.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/select/ebfea2.wgsl.expected.ir.dxc.hlsl
index 0ba40c6..be3617f2 100644
--- a/test/tint/builtins/gen/literal/select/ebfea2.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/select/ebfea2.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,42 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  float3 prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation float3 VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+float3 select_ebfea2() {
+  float3 res = (1.0f).xxx;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store3(0u, asuint(select_ebfea2()));
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store3(0u, asuint(select_ebfea2()));
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = select_ebfea2();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
diff --git a/test/tint/builtins/gen/literal/select/ebfea2.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/select/ebfea2.wgsl.expected.ir.fxc.hlsl
index 0ba40c6..be3617f2 100644
--- a/test/tint/builtins/gen/literal/select/ebfea2.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/select/ebfea2.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,42 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  float3 prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation float3 VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+float3 select_ebfea2() {
+  float3 res = (1.0f).xxx;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store3(0u, asuint(select_ebfea2()));
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store3(0u, asuint(select_ebfea2()));
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = select_ebfea2();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
diff --git a/test/tint/builtins/gen/literal/select/ed7c13.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/select/ed7c13.wgsl.expected.ir.dxc.hlsl
index 0ba40c6..03afe38 100644
--- a/test/tint/builtins/gen/literal/select/ed7c13.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/select/ed7c13.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,42 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  vector<float16_t, 2> prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation vector<float16_t, 2> VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+vector<float16_t, 2> select_ed7c13() {
+  vector<float16_t, 2> res = (float16_t(1.0h)).xx;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store<vector<float16_t, 2> >(0u, select_ed7c13());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store<vector<float16_t, 2> >(0u, select_ed7c13());
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = select_ed7c13();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
diff --git a/test/tint/builtins/gen/literal/select/ed7c13.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/select/ed7c13.wgsl.expected.ir.fxc.hlsl
index 0ba40c6..f5b31cc 100644
--- a/test/tint/builtins/gen/literal/select/ed7c13.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/select/ed7c13.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,47 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct VertexOutput {
+  float4 pos;
+  vector<float16_t, 2> prevent_dce;
+};
+
+struct vertex_main_outputs {
+  nointerpolation vector<float16_t, 2> VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+vector<float16_t, 2> select_ed7c13() {
+  vector<float16_t, 2> res = (float16_t(1.0h)).xx;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store<vector<float16_t, 2> >(0u, select_ed7c13());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store<vector<float16_t, 2> >(0u, select_ed7c13());
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = select_ed7c13();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
+FXC validation failure:
+c:\src\dawn\Shader@0x0000017F35D854A0(3,10-18): error X3000: syntax error: unexpected token 'float16_t'
+
diff --git a/test/tint/builtins/gen/literal/select/ed8a15.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/select/ed8a15.wgsl.expected.ir.dxc.hlsl
index 0ba40c6..a7ba086 100644
--- a/test/tint/builtins/gen/literal/select/ed8a15.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/select/ed8a15.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,42 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  int prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation int VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+int select_ed8a15() {
+  int res = 1;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store(0u, asuint(select_ed8a15()));
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store(0u, asuint(select_ed8a15()));
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = select_ed8a15();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
diff --git a/test/tint/builtins/gen/literal/select/ed8a15.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/select/ed8a15.wgsl.expected.ir.fxc.hlsl
index 0ba40c6..a7ba086 100644
--- a/test/tint/builtins/gen/literal/select/ed8a15.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/select/ed8a15.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,42 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  int prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation int VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+int select_ed8a15() {
+  int res = 1;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store(0u, asuint(select_ed8a15()));
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store(0u, asuint(select_ed8a15()));
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = select_ed8a15();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
diff --git a/test/tint/builtins/gen/literal/select/fb7e53.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/select/fb7e53.wgsl.expected.ir.dxc.hlsl
index ddf0424..bda3639 100644
--- a/test/tint/builtins/gen/literal/select/fb7e53.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/select/fb7e53.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,42 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  int prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: select
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation int VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+int select_fb7e53() {
+  bool2 res = (true).xx;
+  return ((all((res == (false).xx))) ? (1) : (0));
+}
+
+void fragment_main() {
+  prevent_dce.Store(0u, asuint(select_fb7e53()));
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store(0u, asuint(select_fb7e53()));
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = select_fb7e53();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
diff --git a/test/tint/builtins/gen/literal/select/fb7e53.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/select/fb7e53.wgsl.expected.ir.fxc.hlsl
index ddf0424..bda3639 100644
--- a/test/tint/builtins/gen/literal/select/fb7e53.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/select/fb7e53.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,42 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  int prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: select
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation int VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+int select_fb7e53() {
+  bool2 res = (true).xx;
+  return ((all((res == (false).xx))) ? (1) : (0));
+}
+
+void fragment_main() {
+  prevent_dce.Store(0u, asuint(select_fb7e53()));
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store(0u, asuint(select_fb7e53()));
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = select_fb7e53();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
diff --git a/test/tint/builtins/gen/literal/sign/0799fd.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/sign/0799fd.wgsl.expected.ir.dxc.hlsl
index 0ba40c6..98485b3 100644
--- a/test/tint/builtins/gen/literal/sign/0799fd.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/sign/0799fd.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,36 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+void sign_0799fd() {
+  float2 res = (1.0f).xx;
+}
+
+void fragment_main() {
+  sign_0799fd();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  sign_0799fd();
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  sign_0799fd();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  vertex_main_outputs v_2 = {v_1.pos};
+  return v_2;
+}
+
diff --git a/test/tint/builtins/gen/literal/sign/0799fd.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/sign/0799fd.wgsl.expected.ir.fxc.hlsl
index 0ba40c6..98485b3 100644
--- a/test/tint/builtins/gen/literal/sign/0799fd.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/sign/0799fd.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,36 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+void sign_0799fd() {
+  float2 res = (1.0f).xx;
+}
+
+void fragment_main() {
+  sign_0799fd();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  sign_0799fd();
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  sign_0799fd();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  vertex_main_outputs v_2 = {v_1.pos};
+  return v_2;
+}
+
diff --git a/test/tint/builtins/gen/literal/sign/159665.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/sign/159665.wgsl.expected.ir.dxc.hlsl
index 0ba40c6..d3b0c71 100644
--- a/test/tint/builtins/gen/literal/sign/159665.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/sign/159665.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,42 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  float3 prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation float3 VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+float3 sign_159665() {
+  float3 res = (1.0f).xxx;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store3(0u, asuint(sign_159665()));
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store3(0u, asuint(sign_159665()));
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = sign_159665();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
diff --git a/test/tint/builtins/gen/literal/sign/159665.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/sign/159665.wgsl.expected.ir.fxc.hlsl
index 0ba40c6..d3b0c71 100644
--- a/test/tint/builtins/gen/literal/sign/159665.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/sign/159665.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,42 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  float3 prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation float3 VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+float3 sign_159665() {
+  float3 res = (1.0f).xxx;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store3(0u, asuint(sign_159665()));
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store3(0u, asuint(sign_159665()));
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = sign_159665();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
diff --git a/test/tint/builtins/gen/literal/sign/160933.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/sign/160933.wgsl.expected.ir.dxc.hlsl
index 0ba40c6..c3b00b9 100644
--- a/test/tint/builtins/gen/literal/sign/160933.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/sign/160933.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,42 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  vector<float16_t, 4> prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation vector<float16_t, 4> VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+vector<float16_t, 4> sign_160933() {
+  vector<float16_t, 4> res = (float16_t(1.0h)).xxxx;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store<vector<float16_t, 4> >(0u, sign_160933());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store<vector<float16_t, 4> >(0u, sign_160933());
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = sign_160933();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
diff --git a/test/tint/builtins/gen/literal/sign/160933.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/sign/160933.wgsl.expected.ir.fxc.hlsl
index 0ba40c6..245b283 100644
--- a/test/tint/builtins/gen/literal/sign/160933.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/sign/160933.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,47 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct VertexOutput {
+  float4 pos;
+  vector<float16_t, 4> prevent_dce;
+};
+
+struct vertex_main_outputs {
+  nointerpolation vector<float16_t, 4> VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+vector<float16_t, 4> sign_160933() {
+  vector<float16_t, 4> res = (float16_t(1.0h)).xxxx;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store<vector<float16_t, 4> >(0u, sign_160933());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store<vector<float16_t, 4> >(0u, sign_160933());
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = sign_160933();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
+FXC validation failure:
+c:\src\dawn\Shader@0x000001FF88370630(3,10-18): error X3000: syntax error: unexpected token 'float16_t'
+
diff --git a/test/tint/builtins/gen/literal/sign/3233fa.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/sign/3233fa.wgsl.expected.ir.dxc.hlsl
index 0ba40c6..ccc195e 100644
--- a/test/tint/builtins/gen/literal/sign/3233fa.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/sign/3233fa.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,42 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  int prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation int VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+int sign_3233fa() {
+  int res = 1;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store(0u, asuint(sign_3233fa()));
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store(0u, asuint(sign_3233fa()));
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = sign_3233fa();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
diff --git a/test/tint/builtins/gen/literal/sign/3233fa.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/sign/3233fa.wgsl.expected.ir.fxc.hlsl
index 0ba40c6..ccc195e 100644
--- a/test/tint/builtins/gen/literal/sign/3233fa.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/sign/3233fa.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,42 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  int prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation int VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+int sign_3233fa() {
+  int res = 1;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store(0u, asuint(sign_3233fa()));
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store(0u, asuint(sign_3233fa()));
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = sign_3233fa();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
diff --git a/test/tint/builtins/gen/literal/sign/3a39ac.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/sign/3a39ac.wgsl.expected.ir.dxc.hlsl
index 0ba40c6..8ae4182 100644
--- a/test/tint/builtins/gen/literal/sign/3a39ac.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/sign/3a39ac.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,36 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+void sign_3a39ac() {
+  int res = 1;
+}
+
+void fragment_main() {
+  sign_3a39ac();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  sign_3a39ac();
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  sign_3a39ac();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  vertex_main_outputs v_2 = {v_1.pos};
+  return v_2;
+}
+
diff --git a/test/tint/builtins/gen/literal/sign/3a39ac.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/sign/3a39ac.wgsl.expected.ir.fxc.hlsl
index 0ba40c6..8ae4182 100644
--- a/test/tint/builtins/gen/literal/sign/3a39ac.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/sign/3a39ac.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,36 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+void sign_3a39ac() {
+  int res = 1;
+}
+
+void fragment_main() {
+  sign_3a39ac();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  sign_3a39ac();
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  sign_3a39ac();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  vertex_main_outputs v_2 = {v_1.pos};
+  return v_2;
+}
+
diff --git a/test/tint/builtins/gen/literal/sign/3bdab6.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/sign/3bdab6.wgsl.expected.ir.dxc.hlsl
index 0ba40c6..6061f62 100644
--- a/test/tint/builtins/gen/literal/sign/3bdab6.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/sign/3bdab6.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,36 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+void sign_3bdab6() {
+  int4 res = (1).xxxx;
+}
+
+void fragment_main() {
+  sign_3bdab6();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  sign_3bdab6();
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  sign_3bdab6();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  vertex_main_outputs v_2 = {v_1.pos};
+  return v_2;
+}
+
diff --git a/test/tint/builtins/gen/literal/sign/3bdab6.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/sign/3bdab6.wgsl.expected.ir.fxc.hlsl
index 0ba40c6..6061f62 100644
--- a/test/tint/builtins/gen/literal/sign/3bdab6.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/sign/3bdab6.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,36 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+void sign_3bdab6() {
+  int4 res = (1).xxxx;
+}
+
+void fragment_main() {
+  sign_3bdab6();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  sign_3bdab6();
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  sign_3bdab6();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  vertex_main_outputs v_2 = {v_1.pos};
+  return v_2;
+}
+
diff --git a/test/tint/builtins/gen/literal/sign/55339e.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/sign/55339e.wgsl.expected.ir.dxc.hlsl
index 0ba40c6..1a7628d 100644
--- a/test/tint/builtins/gen/literal/sign/55339e.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/sign/55339e.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,36 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+void sign_55339e() {
+  int3 res = (1).xxx;
+}
+
+void fragment_main() {
+  sign_55339e();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  sign_55339e();
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  sign_55339e();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  vertex_main_outputs v_2 = {v_1.pos};
+  return v_2;
+}
+
diff --git a/test/tint/builtins/gen/literal/sign/55339e.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/sign/55339e.wgsl.expected.ir.fxc.hlsl
index 0ba40c6..1a7628d 100644
--- a/test/tint/builtins/gen/literal/sign/55339e.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/sign/55339e.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,36 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+void sign_55339e() {
+  int3 res = (1).xxx;
+}
+
+void fragment_main() {
+  sign_55339e();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  sign_55339e();
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  sign_55339e();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  vertex_main_outputs v_2 = {v_1.pos};
+  return v_2;
+}
+
diff --git a/test/tint/builtins/gen/literal/sign/58d779.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/sign/58d779.wgsl.expected.ir.dxc.hlsl
index 0ba40c6..117f9c0 100644
--- a/test/tint/builtins/gen/literal/sign/58d779.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/sign/58d779.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,42 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  int4 prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation int4 VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+int4 sign_58d779() {
+  int4 res = (1).xxxx;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store4(0u, asuint(sign_58d779()));
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store4(0u, asuint(sign_58d779()));
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = sign_58d779();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
diff --git a/test/tint/builtins/gen/literal/sign/58d779.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/sign/58d779.wgsl.expected.ir.fxc.hlsl
index 0ba40c6..117f9c0 100644
--- a/test/tint/builtins/gen/literal/sign/58d779.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/sign/58d779.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,42 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  int4 prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation int4 VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+int4 sign_58d779() {
+  int4 res = (1).xxxx;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store4(0u, asuint(sign_58d779()));
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store4(0u, asuint(sign_58d779()));
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = sign_58d779();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
diff --git a/test/tint/builtins/gen/literal/sign/5d283a.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/sign/5d283a.wgsl.expected.ir.dxc.hlsl
index 0ba40c6..c12c4944 100644
--- a/test/tint/builtins/gen/literal/sign/5d283a.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/sign/5d283a.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,42 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  vector<float16_t, 3> prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation vector<float16_t, 3> VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+vector<float16_t, 3> sign_5d283a() {
+  vector<float16_t, 3> res = (float16_t(1.0h)).xxx;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store<vector<float16_t, 3> >(0u, sign_5d283a());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store<vector<float16_t, 3> >(0u, sign_5d283a());
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = sign_5d283a();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
diff --git a/test/tint/builtins/gen/literal/sign/5d283a.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/sign/5d283a.wgsl.expected.ir.fxc.hlsl
index 0ba40c6..c5171c4 100644
--- a/test/tint/builtins/gen/literal/sign/5d283a.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/sign/5d283a.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,47 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct VertexOutput {
+  float4 pos;
+  vector<float16_t, 3> prevent_dce;
+};
+
+struct vertex_main_outputs {
+  nointerpolation vector<float16_t, 3> VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+vector<float16_t, 3> sign_5d283a() {
+  vector<float16_t, 3> res = (float16_t(1.0h)).xxx;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store<vector<float16_t, 3> >(0u, sign_5d283a());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store<vector<float16_t, 3> >(0u, sign_5d283a());
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = sign_5d283a();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
+FXC validation failure:
+c:\src\dawn\Shader@0x000002E726D65E00(3,10-18): error X3000: syntax error: unexpected token 'float16_t'
+
diff --git a/test/tint/builtins/gen/literal/sign/7c85ea.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/sign/7c85ea.wgsl.expected.ir.dxc.hlsl
index 0ba40c6..dc79da0 100644
--- a/test/tint/builtins/gen/literal/sign/7c85ea.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/sign/7c85ea.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,42 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  float16_t prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation float16_t VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+float16_t sign_7c85ea() {
+  float16_t res = float16_t(1.0h);
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store<float16_t>(0u, sign_7c85ea());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store<float16_t>(0u, sign_7c85ea());
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = sign_7c85ea();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
diff --git a/test/tint/builtins/gen/literal/sign/7c85ea.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/sign/7c85ea.wgsl.expected.ir.fxc.hlsl
index 0ba40c6..440fbd4 100644
--- a/test/tint/builtins/gen/literal/sign/7c85ea.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/sign/7c85ea.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,47 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct VertexOutput {
+  float4 pos;
+  float16_t prevent_dce;
+};
+
+struct vertex_main_outputs {
+  nointerpolation float16_t VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+float16_t sign_7c85ea() {
+  float16_t res = float16_t(1.0h);
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store<float16_t>(0u, sign_7c85ea());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store<float16_t>(0u, sign_7c85ea());
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = sign_7c85ea();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
+FXC validation failure:
+c:\src\dawn\Shader@0x00000232B25B0FE0(3,3-11): error X3000: unrecognized identifier 'float16_t'
+
diff --git a/test/tint/builtins/gen/literal/sign/926015.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/sign/926015.wgsl.expected.ir.dxc.hlsl
index 0ba40c6..7045583 100644
--- a/test/tint/builtins/gen/literal/sign/926015.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/sign/926015.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,42 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  int2 prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation int2 VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+int2 sign_926015() {
+  int2 res = (1).xx;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store2(0u, asuint(sign_926015()));
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store2(0u, asuint(sign_926015()));
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = sign_926015();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
diff --git a/test/tint/builtins/gen/literal/sign/926015.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/sign/926015.wgsl.expected.ir.fxc.hlsl
index 0ba40c6..7045583 100644
--- a/test/tint/builtins/gen/literal/sign/926015.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/sign/926015.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,42 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  int2 prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation int2 VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+int2 sign_926015() {
+  int2 res = (1).xx;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store2(0u, asuint(sign_926015()));
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store2(0u, asuint(sign_926015()));
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = sign_926015();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
diff --git a/test/tint/builtins/gen/literal/sign/943b2e.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/sign/943b2e.wgsl.expected.ir.dxc.hlsl
index 0ba40c6..220daa1 100644
--- a/test/tint/builtins/gen/literal/sign/943b2e.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/sign/943b2e.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,36 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+void sign_943b2e() {
+  int2 res = (1).xx;
+}
+
+void fragment_main() {
+  sign_943b2e();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  sign_943b2e();
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  sign_943b2e();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  vertex_main_outputs v_2 = {v_1.pos};
+  return v_2;
+}
+
diff --git a/test/tint/builtins/gen/literal/sign/943b2e.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/sign/943b2e.wgsl.expected.ir.fxc.hlsl
index 0ba40c6..220daa1 100644
--- a/test/tint/builtins/gen/literal/sign/943b2e.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/sign/943b2e.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,36 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+void sign_943b2e() {
+  int2 res = (1).xx;
+}
+
+void fragment_main() {
+  sign_943b2e();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  sign_943b2e();
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  sign_943b2e();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  vertex_main_outputs v_2 = {v_1.pos};
+  return v_2;
+}
+
diff --git a/test/tint/builtins/gen/literal/sign/9603b1.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/sign/9603b1.wgsl.expected.ir.dxc.hlsl
index 0ba40c6..7dc93b9 100644
--- a/test/tint/builtins/gen/literal/sign/9603b1.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/sign/9603b1.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,42 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  int3 prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation int3 VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+int3 sign_9603b1() {
+  int3 res = (1).xxx;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store3(0u, asuint(sign_9603b1()));
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store3(0u, asuint(sign_9603b1()));
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = sign_9603b1();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
diff --git a/test/tint/builtins/gen/literal/sign/9603b1.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/sign/9603b1.wgsl.expected.ir.fxc.hlsl
index 0ba40c6..7dc93b9 100644
--- a/test/tint/builtins/gen/literal/sign/9603b1.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/sign/9603b1.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,42 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  int3 prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation int3 VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+int3 sign_9603b1() {
+  int3 res = (1).xxx;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store3(0u, asuint(sign_9603b1()));
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store3(0u, asuint(sign_9603b1()));
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = sign_9603b1();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
diff --git a/test/tint/builtins/gen/literal/sign/ab6301.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/sign/ab6301.wgsl.expected.ir.dxc.hlsl
index 0ba40c6..e986454 100644
--- a/test/tint/builtins/gen/literal/sign/ab6301.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/sign/ab6301.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,36 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+void sign_ab6301() {
+  float3 res = (1.0f).xxx;
+}
+
+void fragment_main() {
+  sign_ab6301();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  sign_ab6301();
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  sign_ab6301();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  vertex_main_outputs v_2 = {v_1.pos};
+  return v_2;
+}
+
diff --git a/test/tint/builtins/gen/literal/sign/ab6301.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/sign/ab6301.wgsl.expected.ir.fxc.hlsl
index 0ba40c6..e986454 100644
--- a/test/tint/builtins/gen/literal/sign/ab6301.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/sign/ab6301.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,36 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+void sign_ab6301() {
+  float3 res = (1.0f).xxx;
+}
+
+void fragment_main() {
+  sign_ab6301();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  sign_ab6301();
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  sign_ab6301();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  vertex_main_outputs v_2 = {v_1.pos};
+  return v_2;
+}
+
diff --git a/test/tint/builtins/gen/literal/sign/b8f634.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/sign/b8f634.wgsl.expected.ir.dxc.hlsl
index 0ba40c6..8b075c1 100644
--- a/test/tint/builtins/gen/literal/sign/b8f634.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/sign/b8f634.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,42 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  float4 prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation float4 VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+float4 sign_b8f634() {
+  float4 res = (1.0f).xxxx;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store4(0u, asuint(sign_b8f634()));
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store4(0u, asuint(sign_b8f634()));
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = sign_b8f634();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
diff --git a/test/tint/builtins/gen/literal/sign/b8f634.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/sign/b8f634.wgsl.expected.ir.fxc.hlsl
index 0ba40c6..8b075c1 100644
--- a/test/tint/builtins/gen/literal/sign/b8f634.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/sign/b8f634.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,42 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  float4 prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation float4 VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+float4 sign_b8f634() {
+  float4 res = (1.0f).xxxx;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store4(0u, asuint(sign_b8f634()));
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store4(0u, asuint(sign_b8f634()));
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = sign_b8f634();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
diff --git a/test/tint/builtins/gen/literal/sign/c8289c.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/sign/c8289c.wgsl.expected.ir.dxc.hlsl
index 0ba40c6..ea3379c 100644
--- a/test/tint/builtins/gen/literal/sign/c8289c.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/sign/c8289c.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,36 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+void sign_c8289c() {
+  float res = 1.0f;
+}
+
+void fragment_main() {
+  sign_c8289c();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  sign_c8289c();
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  sign_c8289c();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  vertex_main_outputs v_2 = {v_1.pos};
+  return v_2;
+}
+
diff --git a/test/tint/builtins/gen/literal/sign/c8289c.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/sign/c8289c.wgsl.expected.ir.fxc.hlsl
index 0ba40c6..ea3379c 100644
--- a/test/tint/builtins/gen/literal/sign/c8289c.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/sign/c8289c.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,36 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+void sign_c8289c() {
+  float res = 1.0f;
+}
+
+void fragment_main() {
+  sign_c8289c();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  sign_c8289c();
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  sign_c8289c();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  vertex_main_outputs v_2 = {v_1.pos};
+  return v_2;
+}
+
diff --git a/test/tint/builtins/gen/literal/sign/ccdb3c.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/sign/ccdb3c.wgsl.expected.ir.dxc.hlsl
index 0ba40c6..e4cdb9b 100644
--- a/test/tint/builtins/gen/literal/sign/ccdb3c.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/sign/ccdb3c.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,42 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  vector<float16_t, 2> prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation vector<float16_t, 2> VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+vector<float16_t, 2> sign_ccdb3c() {
+  vector<float16_t, 2> res = (float16_t(1.0h)).xx;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store<vector<float16_t, 2> >(0u, sign_ccdb3c());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store<vector<float16_t, 2> >(0u, sign_ccdb3c());
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = sign_ccdb3c();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
diff --git a/test/tint/builtins/gen/literal/sign/ccdb3c.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/sign/ccdb3c.wgsl.expected.ir.fxc.hlsl
index 0ba40c6..e2ff2e7 100644
--- a/test/tint/builtins/gen/literal/sign/ccdb3c.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/sign/ccdb3c.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,47 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct VertexOutput {
+  float4 pos;
+  vector<float16_t, 2> prevent_dce;
+};
+
+struct vertex_main_outputs {
+  nointerpolation vector<float16_t, 2> VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+vector<float16_t, 2> sign_ccdb3c() {
+  vector<float16_t, 2> res = (float16_t(1.0h)).xx;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store<vector<float16_t, 2> >(0u, sign_ccdb3c());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store<vector<float16_t, 2> >(0u, sign_ccdb3c());
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = sign_ccdb3c();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
+FXC validation failure:
+c:\src\dawn\Shader@0x000001C37F2F3CE0(3,10-18): error X3000: syntax error: unexpected token 'float16_t'
+
diff --git a/test/tint/builtins/gen/literal/sign/d065d8.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/sign/d065d8.wgsl.expected.ir.dxc.hlsl
index 0ba40c6..10dc1fb 100644
--- a/test/tint/builtins/gen/literal/sign/d065d8.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/sign/d065d8.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,42 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  float2 prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation float2 VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+float2 sign_d065d8() {
+  float2 res = (1.0f).xx;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store2(0u, asuint(sign_d065d8()));
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store2(0u, asuint(sign_d065d8()));
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = sign_d065d8();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
diff --git a/test/tint/builtins/gen/literal/sign/d065d8.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/sign/d065d8.wgsl.expected.ir.fxc.hlsl
index 0ba40c6..10dc1fb 100644
--- a/test/tint/builtins/gen/literal/sign/d065d8.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/sign/d065d8.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,42 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  float2 prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation float2 VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+float2 sign_d065d8() {
+  float2 res = (1.0f).xx;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store2(0u, asuint(sign_d065d8()));
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store2(0u, asuint(sign_d065d8()));
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = sign_d065d8();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
diff --git a/test/tint/builtins/gen/literal/sign/dd790e.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/sign/dd790e.wgsl.expected.ir.dxc.hlsl
index 0ba40c6..7fd8895 100644
--- a/test/tint/builtins/gen/literal/sign/dd790e.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/sign/dd790e.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,42 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  float prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation float VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+float sign_dd790e() {
+  float res = 1.0f;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store(0u, asuint(sign_dd790e()));
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store(0u, asuint(sign_dd790e()));
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = sign_dd790e();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
diff --git a/test/tint/builtins/gen/literal/sign/dd790e.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/sign/dd790e.wgsl.expected.ir.fxc.hlsl
index 0ba40c6..7fd8895 100644
--- a/test/tint/builtins/gen/literal/sign/dd790e.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/sign/dd790e.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,42 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  float prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation float VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+float sign_dd790e() {
+  float res = 1.0f;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store(0u, asuint(sign_dd790e()));
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store(0u, asuint(sign_dd790e()));
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = sign_dd790e();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
diff --git a/test/tint/builtins/gen/literal/sign/f5da6a.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/sign/f5da6a.wgsl.expected.ir.dxc.hlsl
index 0ba40c6..ef9a321 100644
--- a/test/tint/builtins/gen/literal/sign/f5da6a.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/sign/f5da6a.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,36 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+void sign_f5da6a() {
+  float4 res = (1.0f).xxxx;
+}
+
+void fragment_main() {
+  sign_f5da6a();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  sign_f5da6a();
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  sign_f5da6a();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  vertex_main_outputs v_2 = {v_1.pos};
+  return v_2;
+}
+
diff --git a/test/tint/builtins/gen/literal/sign/f5da6a.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/sign/f5da6a.wgsl.expected.ir.fxc.hlsl
index 0ba40c6..ef9a321 100644
--- a/test/tint/builtins/gen/literal/sign/f5da6a.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/sign/f5da6a.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,36 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+void sign_f5da6a() {
+  float4 res = (1.0f).xxxx;
+}
+
+void fragment_main() {
+  sign_f5da6a();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  sign_f5da6a();
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  sign_f5da6a();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  vertex_main_outputs v_2 = {v_1.pos};
+  return v_2;
+}
+
diff --git a/test/tint/builtins/gen/literal/sin/01f241.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/sin/01f241.wgsl.expected.ir.dxc.hlsl
index 0ba40c6..cf6ca85 100644
--- a/test/tint/builtins/gen/literal/sin/01f241.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/sin/01f241.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,42 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  float3 prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation float3 VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+float3 sin_01f241() {
+  float3 res = (1.0f).xxx;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store3(0u, asuint(sin_01f241()));
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store3(0u, asuint(sin_01f241()));
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = sin_01f241();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
diff --git a/test/tint/builtins/gen/literal/sin/01f241.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/sin/01f241.wgsl.expected.ir.fxc.hlsl
index 0ba40c6..cf6ca85 100644
--- a/test/tint/builtins/gen/literal/sin/01f241.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/sin/01f241.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,42 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  float3 prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation float3 VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+float3 sin_01f241() {
+  float3 res = (1.0f).xxx;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store3(0u, asuint(sin_01f241()));
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store3(0u, asuint(sin_01f241()));
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = sin_01f241();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
diff --git a/test/tint/builtins/gen/literal/sin/15b2c6.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/sin/15b2c6.wgsl.expected.ir.dxc.hlsl
index 0ba40c6..4062d04 100644
--- a/test/tint/builtins/gen/literal/sin/15b2c6.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/sin/15b2c6.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,36 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+void sin_15b2c6() {
+  float4 res = (1.0f).xxxx;
+}
+
+void fragment_main() {
+  sin_15b2c6();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  sin_15b2c6();
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  sin_15b2c6();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  vertex_main_outputs v_2 = {v_1.pos};
+  return v_2;
+}
+
diff --git a/test/tint/builtins/gen/literal/sin/15b2c6.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/sin/15b2c6.wgsl.expected.ir.fxc.hlsl
index 0ba40c6..4062d04 100644
--- a/test/tint/builtins/gen/literal/sin/15b2c6.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/sin/15b2c6.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,36 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+void sin_15b2c6() {
+  float4 res = (1.0f).xxxx;
+}
+
+void fragment_main() {
+  sin_15b2c6();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  sin_15b2c6();
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  sin_15b2c6();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  vertex_main_outputs v_2 = {v_1.pos};
+  return v_2;
+}
+
diff --git a/test/tint/builtins/gen/literal/sin/2c903b.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/sin/2c903b.wgsl.expected.ir.dxc.hlsl
index 0ba40c6..5b6ec30 100644
--- a/test/tint/builtins/gen/literal/sin/2c903b.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/sin/2c903b.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,42 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  vector<float16_t, 3> prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation vector<float16_t, 3> VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+vector<float16_t, 3> sin_2c903b() {
+  vector<float16_t, 3> res = (float16_t(0.99951171875h)).xxx;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store<vector<float16_t, 3> >(0u, sin_2c903b());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store<vector<float16_t, 3> >(0u, sin_2c903b());
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = sin_2c903b();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
diff --git a/test/tint/builtins/gen/literal/sin/2c903b.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/sin/2c903b.wgsl.expected.ir.fxc.hlsl
index 0ba40c6..ca0fa0f 100644
--- a/test/tint/builtins/gen/literal/sin/2c903b.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/sin/2c903b.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,47 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct VertexOutput {
+  float4 pos;
+  vector<float16_t, 3> prevent_dce;
+};
+
+struct vertex_main_outputs {
+  nointerpolation vector<float16_t, 3> VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+vector<float16_t, 3> sin_2c903b() {
+  vector<float16_t, 3> res = (float16_t(0.99951171875h)).xxx;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store<vector<float16_t, 3> >(0u, sin_2c903b());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store<vector<float16_t, 3> >(0u, sin_2c903b());
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = sin_2c903b();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
+FXC validation failure:
+c:\src\dawn\Shader@0x000001BF087FCD90(3,10-18): error X3000: syntax error: unexpected token 'float16_t'
+
diff --git a/test/tint/builtins/gen/literal/sin/3cca11.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/sin/3cca11.wgsl.expected.ir.dxc.hlsl
index 0ba40c6..29fec41 100644
--- a/test/tint/builtins/gen/literal/sin/3cca11.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/sin/3cca11.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,42 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  vector<float16_t, 2> prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation vector<float16_t, 2> VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+vector<float16_t, 2> sin_3cca11() {
+  vector<float16_t, 2> res = (float16_t(0.99951171875h)).xx;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store<vector<float16_t, 2> >(0u, sin_3cca11());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store<vector<float16_t, 2> >(0u, sin_3cca11());
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = sin_3cca11();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
diff --git a/test/tint/builtins/gen/literal/sin/3cca11.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/sin/3cca11.wgsl.expected.ir.fxc.hlsl
index 0ba40c6..b2bb207 100644
--- a/test/tint/builtins/gen/literal/sin/3cca11.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/sin/3cca11.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,47 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct VertexOutput {
+  float4 pos;
+  vector<float16_t, 2> prevent_dce;
+};
+
+struct vertex_main_outputs {
+  nointerpolation vector<float16_t, 2> VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+vector<float16_t, 2> sin_3cca11() {
+  vector<float16_t, 2> res = (float16_t(0.99951171875h)).xx;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store<vector<float16_t, 2> >(0u, sin_3cca11());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store<vector<float16_t, 2> >(0u, sin_3cca11());
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = sin_3cca11();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
+FXC validation failure:
+c:\src\dawn\Shader@0x000002391E1A5CC0(3,10-18): error X3000: syntax error: unexpected token 'float16_t'
+
diff --git a/test/tint/builtins/gen/literal/sin/4e3979.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/sin/4e3979.wgsl.expected.ir.dxc.hlsl
index 0ba40c6..465fb1e 100644
--- a/test/tint/builtins/gen/literal/sin/4e3979.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/sin/4e3979.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,42 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  float4 prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation float4 VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+float4 sin_4e3979() {
+  float4 res = (1.0f).xxxx;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store4(0u, asuint(sin_4e3979()));
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store4(0u, asuint(sin_4e3979()));
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = sin_4e3979();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
diff --git a/test/tint/builtins/gen/literal/sin/4e3979.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/sin/4e3979.wgsl.expected.ir.fxc.hlsl
index 0ba40c6..465fb1e 100644
--- a/test/tint/builtins/gen/literal/sin/4e3979.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/sin/4e3979.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,42 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  float4 prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation float4 VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+float4 sin_4e3979() {
+  float4 res = (1.0f).xxxx;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store4(0u, asuint(sin_4e3979()));
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store4(0u, asuint(sin_4e3979()));
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = sin_4e3979();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
diff --git a/test/tint/builtins/gen/literal/sin/5c0712.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/sin/5c0712.wgsl.expected.ir.dxc.hlsl
index 0ba40c6..d970ae9 100644
--- a/test/tint/builtins/gen/literal/sin/5c0712.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/sin/5c0712.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,42 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  vector<float16_t, 4> prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation vector<float16_t, 4> VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+vector<float16_t, 4> sin_5c0712() {
+  vector<float16_t, 4> res = (float16_t(0.99951171875h)).xxxx;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store<vector<float16_t, 4> >(0u, sin_5c0712());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store<vector<float16_t, 4> >(0u, sin_5c0712());
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = sin_5c0712();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
diff --git a/test/tint/builtins/gen/literal/sin/5c0712.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/sin/5c0712.wgsl.expected.ir.fxc.hlsl
index 0ba40c6..3b9cde3 100644
--- a/test/tint/builtins/gen/literal/sin/5c0712.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/sin/5c0712.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,47 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct VertexOutput {
+  float4 pos;
+  vector<float16_t, 4> prevent_dce;
+};
+
+struct vertex_main_outputs {
+  nointerpolation vector<float16_t, 4> VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+vector<float16_t, 4> sin_5c0712() {
+  vector<float16_t, 4> res = (float16_t(0.99951171875h)).xxxx;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store<vector<float16_t, 4> >(0u, sin_5c0712());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store<vector<float16_t, 4> >(0u, sin_5c0712());
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = sin_5c0712();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
+FXC validation failure:
+c:\src\dawn\Shader@0x0000021644B804B0(3,10-18): error X3000: syntax error: unexpected token 'float16_t'
+
diff --git a/test/tint/builtins/gen/literal/sin/66a59f.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/sin/66a59f.wgsl.expected.ir.dxc.hlsl
index 0ba40c6..8c80227 100644
--- a/test/tint/builtins/gen/literal/sin/66a59f.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/sin/66a59f.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,42 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  float16_t prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation float16_t VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+float16_t sin_66a59f() {
+  float16_t res = float16_t(0.99951171875h);
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store<float16_t>(0u, sin_66a59f());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store<float16_t>(0u, sin_66a59f());
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = sin_66a59f();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
diff --git a/test/tint/builtins/gen/literal/sin/66a59f.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/sin/66a59f.wgsl.expected.ir.fxc.hlsl
index 0ba40c6..1d3b3ac 100644
--- a/test/tint/builtins/gen/literal/sin/66a59f.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/sin/66a59f.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,47 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct VertexOutput {
+  float4 pos;
+  float16_t prevent_dce;
+};
+
+struct vertex_main_outputs {
+  nointerpolation float16_t VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+float16_t sin_66a59f() {
+  float16_t res = float16_t(0.99951171875h);
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store<float16_t>(0u, sin_66a59f());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store<float16_t>(0u, sin_66a59f());
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = sin_66a59f();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
+FXC validation failure:
+c:\src\dawn\Shader@0x000002553EC0FB50(3,3-11): error X3000: unrecognized identifier 'float16_t'
+
diff --git a/test/tint/builtins/gen/literal/sin/67b03c.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/sin/67b03c.wgsl.expected.ir.dxc.hlsl
index 0ba40c6..c0883bd 100644
--- a/test/tint/builtins/gen/literal/sin/67b03c.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/sin/67b03c.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,36 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+void sin_67b03c() {
+  float3 res = (1.0f).xxx;
+}
+
+void fragment_main() {
+  sin_67b03c();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  sin_67b03c();
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  sin_67b03c();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  vertex_main_outputs v_2 = {v_1.pos};
+  return v_2;
+}
+
diff --git a/test/tint/builtins/gen/literal/sin/67b03c.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/sin/67b03c.wgsl.expected.ir.fxc.hlsl
index 0ba40c6..c0883bd 100644
--- a/test/tint/builtins/gen/literal/sin/67b03c.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/sin/67b03c.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,36 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+void sin_67b03c() {
+  float3 res = (1.0f).xxx;
+}
+
+void fragment_main() {
+  sin_67b03c();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  sin_67b03c();
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  sin_67b03c();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  vertex_main_outputs v_2 = {v_1.pos};
+  return v_2;
+}
+
diff --git a/test/tint/builtins/gen/literal/sin/68d3ab.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/sin/68d3ab.wgsl.expected.ir.dxc.hlsl
index 0ba40c6..d9bc781 100644
--- a/test/tint/builtins/gen/literal/sin/68d3ab.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/sin/68d3ab.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,36 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+void sin_68d3ab() {
+  float2 res = (1.0f).xx;
+}
+
+void fragment_main() {
+  sin_68d3ab();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  sin_68d3ab();
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  sin_68d3ab();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  vertex_main_outputs v_2 = {v_1.pos};
+  return v_2;
+}
+
diff --git a/test/tint/builtins/gen/literal/sin/68d3ab.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/sin/68d3ab.wgsl.expected.ir.fxc.hlsl
index 0ba40c6..d9bc781 100644
--- a/test/tint/builtins/gen/literal/sin/68d3ab.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/sin/68d3ab.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,36 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+void sin_68d3ab() {
+  float2 res = (1.0f).xx;
+}
+
+void fragment_main() {
+  sin_68d3ab();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  sin_68d3ab();
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  sin_68d3ab();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  vertex_main_outputs v_2 = {v_1.pos};
+  return v_2;
+}
+
diff --git a/test/tint/builtins/gen/literal/sin/a9ab19.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/sin/a9ab19.wgsl.expected.ir.dxc.hlsl
index 0ba40c6..07d2b13 100644
--- a/test/tint/builtins/gen/literal/sin/a9ab19.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/sin/a9ab19.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,36 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+void sin_a9ab19() {
+  float res = 1.0f;
+}
+
+void fragment_main() {
+  sin_a9ab19();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  sin_a9ab19();
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  sin_a9ab19();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  vertex_main_outputs v_2 = {v_1.pos};
+  return v_2;
+}
+
diff --git a/test/tint/builtins/gen/literal/sin/a9ab19.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/sin/a9ab19.wgsl.expected.ir.fxc.hlsl
index 0ba40c6..07d2b13 100644
--- a/test/tint/builtins/gen/literal/sin/a9ab19.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/sin/a9ab19.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,36 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+void sin_a9ab19() {
+  float res = 1.0f;
+}
+
+void fragment_main() {
+  sin_a9ab19();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  sin_a9ab19();
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  sin_a9ab19();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  vertex_main_outputs v_2 = {v_1.pos};
+  return v_2;
+}
+
diff --git a/test/tint/builtins/gen/literal/sin/b78c91.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/sin/b78c91.wgsl.expected.ir.dxc.hlsl
index 0ba40c6..ca8e3d0 100644
--- a/test/tint/builtins/gen/literal/sin/b78c91.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/sin/b78c91.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,42 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  float prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation float VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+float sin_b78c91() {
+  float res = 1.0f;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store(0u, asuint(sin_b78c91()));
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store(0u, asuint(sin_b78c91()));
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = sin_b78c91();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
diff --git a/test/tint/builtins/gen/literal/sin/b78c91.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/sin/b78c91.wgsl.expected.ir.fxc.hlsl
index 0ba40c6..ca8e3d0 100644
--- a/test/tint/builtins/gen/literal/sin/b78c91.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/sin/b78c91.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,42 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  float prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation float VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+float sin_b78c91() {
+  float res = 1.0f;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store(0u, asuint(sin_b78c91()));
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store(0u, asuint(sin_b78c91()));
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = sin_b78c91();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
diff --git a/test/tint/builtins/gen/literal/sin/fc8bc4.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/sin/fc8bc4.wgsl.expected.ir.dxc.hlsl
index 0ba40c6..8e480ab 100644
--- a/test/tint/builtins/gen/literal/sin/fc8bc4.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/sin/fc8bc4.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,42 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  float2 prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation float2 VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+float2 sin_fc8bc4() {
+  float2 res = (1.0f).xx;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store2(0u, asuint(sin_fc8bc4()));
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store2(0u, asuint(sin_fc8bc4()));
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = sin_fc8bc4();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
diff --git a/test/tint/builtins/gen/literal/sin/fc8bc4.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/sin/fc8bc4.wgsl.expected.ir.fxc.hlsl
index 0ba40c6..8e480ab 100644
--- a/test/tint/builtins/gen/literal/sin/fc8bc4.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/sin/fc8bc4.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,42 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  float2 prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation float2 VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+float2 sin_fc8bc4() {
+  float2 res = (1.0f).xx;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store2(0u, asuint(sin_fc8bc4()));
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store2(0u, asuint(sin_fc8bc4()));
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = sin_fc8bc4();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
diff --git a/test/tint/builtins/gen/literal/sinh/0908c1.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/sinh/0908c1.wgsl.expected.ir.dxc.hlsl
index 0ba40c6..59f2e5d 100644
--- a/test/tint/builtins/gen/literal/sinh/0908c1.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/sinh/0908c1.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,42 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  vector<float16_t, 3> prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation vector<float16_t, 3> VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+vector<float16_t, 3> sinh_0908c1() {
+  vector<float16_t, 3> res = (float16_t(1.1748046875h)).xxx;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store<vector<float16_t, 3> >(0u, sinh_0908c1());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store<vector<float16_t, 3> >(0u, sinh_0908c1());
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = sinh_0908c1();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
diff --git a/test/tint/builtins/gen/literal/sinh/0908c1.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/sinh/0908c1.wgsl.expected.ir.fxc.hlsl
index 0ba40c6..5b88d60 100644
--- a/test/tint/builtins/gen/literal/sinh/0908c1.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/sinh/0908c1.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,47 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct VertexOutput {
+  float4 pos;
+  vector<float16_t, 3> prevent_dce;
+};
+
+struct vertex_main_outputs {
+  nointerpolation vector<float16_t, 3> VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+vector<float16_t, 3> sinh_0908c1() {
+  vector<float16_t, 3> res = (float16_t(1.1748046875h)).xxx;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store<vector<float16_t, 3> >(0u, sinh_0908c1());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store<vector<float16_t, 3> >(0u, sinh_0908c1());
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = sinh_0908c1();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
+FXC validation failure:
+c:\src\dawn\Shader@0x000002AC8CE74B70(3,10-18): error X3000: syntax error: unexpected token 'float16_t'
+
diff --git a/test/tint/builtins/gen/literal/sinh/445e33.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/sinh/445e33.wgsl.expected.ir.dxc.hlsl
index 0ba40c6..7f7116b 100644
--- a/test/tint/builtins/gen/literal/sinh/445e33.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/sinh/445e33.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,42 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  float4 prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation float4 VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+float4 sinh_445e33() {
+  float4 res = (1.17520117759704589844f).xxxx;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store4(0u, asuint(sinh_445e33()));
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store4(0u, asuint(sinh_445e33()));
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = sinh_445e33();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
diff --git a/test/tint/builtins/gen/literal/sinh/445e33.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/sinh/445e33.wgsl.expected.ir.fxc.hlsl
index 0ba40c6..7f7116b 100644
--- a/test/tint/builtins/gen/literal/sinh/445e33.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/sinh/445e33.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,42 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  float4 prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation float4 VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+float4 sinh_445e33() {
+  float4 res = (1.17520117759704589844f).xxxx;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store4(0u, asuint(sinh_445e33()));
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store4(0u, asuint(sinh_445e33()));
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = sinh_445e33();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
diff --git a/test/tint/builtins/gen/literal/sinh/69cce2.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/sinh/69cce2.wgsl.expected.ir.dxc.hlsl
index 0ba40c6..a97ff6e 100644
--- a/test/tint/builtins/gen/literal/sinh/69cce2.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/sinh/69cce2.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,42 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  float16_t prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation float16_t VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+float16_t sinh_69cce2() {
+  float16_t res = float16_t(1.1748046875h);
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store<float16_t>(0u, sinh_69cce2());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store<float16_t>(0u, sinh_69cce2());
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = sinh_69cce2();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
diff --git a/test/tint/builtins/gen/literal/sinh/69cce2.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/sinh/69cce2.wgsl.expected.ir.fxc.hlsl
index 0ba40c6..43c8f89 100644
--- a/test/tint/builtins/gen/literal/sinh/69cce2.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/sinh/69cce2.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,47 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct VertexOutput {
+  float4 pos;
+  float16_t prevent_dce;
+};
+
+struct vertex_main_outputs {
+  nointerpolation float16_t VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+float16_t sinh_69cce2() {
+  float16_t res = float16_t(1.1748046875h);
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store<float16_t>(0u, sinh_69cce2());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store<float16_t>(0u, sinh_69cce2());
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = sinh_69cce2();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
+FXC validation failure:
+c:\src\dawn\Shader@0x000001D39D2A04B0(3,3-11): error X3000: unrecognized identifier 'float16_t'
+
diff --git a/test/tint/builtins/gen/literal/sinh/77a2a3.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/sinh/77a2a3.wgsl.expected.ir.dxc.hlsl
index 0ba40c6..0c18568 100644
--- a/test/tint/builtins/gen/literal/sinh/77a2a3.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/sinh/77a2a3.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,36 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+void sinh_77a2a3() {
+  float3 res = (1.17520117759704589844f).xxx;
+}
+
+void fragment_main() {
+  sinh_77a2a3();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  sinh_77a2a3();
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  sinh_77a2a3();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  vertex_main_outputs v_2 = {v_1.pos};
+  return v_2;
+}
+
diff --git a/test/tint/builtins/gen/literal/sinh/77a2a3.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/sinh/77a2a3.wgsl.expected.ir.fxc.hlsl
index 0ba40c6..0c18568 100644
--- a/test/tint/builtins/gen/literal/sinh/77a2a3.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/sinh/77a2a3.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,36 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+void sinh_77a2a3() {
+  float3 res = (1.17520117759704589844f).xxx;
+}
+
+void fragment_main() {
+  sinh_77a2a3();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  sinh_77a2a3();
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  sinh_77a2a3();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  vertex_main_outputs v_2 = {v_1.pos};
+  return v_2;
+}
+
diff --git a/test/tint/builtins/gen/literal/sinh/7bb598.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/sinh/7bb598.wgsl.expected.ir.dxc.hlsl
index 0ba40c6..1abce64 100644
--- a/test/tint/builtins/gen/literal/sinh/7bb598.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/sinh/7bb598.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,42 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  float prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation float VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+float sinh_7bb598() {
+  float res = 1.17520117759704589844f;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store(0u, asuint(sinh_7bb598()));
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store(0u, asuint(sinh_7bb598()));
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = sinh_7bb598();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
diff --git a/test/tint/builtins/gen/literal/sinh/7bb598.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/sinh/7bb598.wgsl.expected.ir.fxc.hlsl
index 0ba40c6..1abce64 100644
--- a/test/tint/builtins/gen/literal/sinh/7bb598.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/sinh/7bb598.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,42 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  float prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation float VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+float sinh_7bb598() {
+  float res = 1.17520117759704589844f;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store(0u, asuint(sinh_7bb598()));
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store(0u, asuint(sinh_7bb598()));
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = sinh_7bb598();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
diff --git a/test/tint/builtins/gen/literal/sinh/924f19.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/sinh/924f19.wgsl.expected.ir.dxc.hlsl
index 0ba40c6..2d0b370 100644
--- a/test/tint/builtins/gen/literal/sinh/924f19.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/sinh/924f19.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,42 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  vector<float16_t, 2> prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation vector<float16_t, 2> VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+vector<float16_t, 2> sinh_924f19() {
+  vector<float16_t, 2> res = (float16_t(1.1748046875h)).xx;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store<vector<float16_t, 2> >(0u, sinh_924f19());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store<vector<float16_t, 2> >(0u, sinh_924f19());
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = sinh_924f19();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
diff --git a/test/tint/builtins/gen/literal/sinh/924f19.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/sinh/924f19.wgsl.expected.ir.fxc.hlsl
index 0ba40c6..3a66d33 100644
--- a/test/tint/builtins/gen/literal/sinh/924f19.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/sinh/924f19.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,47 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct VertexOutput {
+  float4 pos;
+  vector<float16_t, 2> prevent_dce;
+};
+
+struct vertex_main_outputs {
+  nointerpolation vector<float16_t, 2> VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+vector<float16_t, 2> sinh_924f19() {
+  vector<float16_t, 2> res = (float16_t(1.1748046875h)).xx;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store<vector<float16_t, 2> >(0u, sinh_924f19());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store<vector<float16_t, 2> >(0u, sinh_924f19());
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = sinh_924f19();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
+FXC validation failure:
+c:\src\dawn\Shader@0x0000020D651D09F0(3,10-18): error X3000: syntax error: unexpected token 'float16_t'
+
diff --git a/test/tint/builtins/gen/literal/sinh/9c1092.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/sinh/9c1092.wgsl.expected.ir.dxc.hlsl
index 0ba40c6..aa4d15b 100644
--- a/test/tint/builtins/gen/literal/sinh/9c1092.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/sinh/9c1092.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,36 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+void sinh_9c1092() {
+  float2 res = (1.17520117759704589844f).xx;
+}
+
+void fragment_main() {
+  sinh_9c1092();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  sinh_9c1092();
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  sinh_9c1092();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  vertex_main_outputs v_2 = {v_1.pos};
+  return v_2;
+}
+
diff --git a/test/tint/builtins/gen/literal/sinh/9c1092.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/sinh/9c1092.wgsl.expected.ir.fxc.hlsl
index 0ba40c6..aa4d15b 100644
--- a/test/tint/builtins/gen/literal/sinh/9c1092.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/sinh/9c1092.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,36 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+void sinh_9c1092() {
+  float2 res = (1.17520117759704589844f).xx;
+}
+
+void fragment_main() {
+  sinh_9c1092();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  sinh_9c1092();
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  sinh_9c1092();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  vertex_main_outputs v_2 = {v_1.pos};
+  return v_2;
+}
+
diff --git a/test/tint/builtins/gen/literal/sinh/a3da7c.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/sinh/a3da7c.wgsl.expected.ir.dxc.hlsl
index 0ba40c6..31865ea 100644
--- a/test/tint/builtins/gen/literal/sinh/a3da7c.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/sinh/a3da7c.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,36 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+void sinh_a3da7c() {
+  float4 res = (1.17520117759704589844f).xxxx;
+}
+
+void fragment_main() {
+  sinh_a3da7c();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  sinh_a3da7c();
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  sinh_a3da7c();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  vertex_main_outputs v_2 = {v_1.pos};
+  return v_2;
+}
+
diff --git a/test/tint/builtins/gen/literal/sinh/a3da7c.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/sinh/a3da7c.wgsl.expected.ir.fxc.hlsl
index 0ba40c6..31865ea 100644
--- a/test/tint/builtins/gen/literal/sinh/a3da7c.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/sinh/a3da7c.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,36 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+void sinh_a3da7c() {
+  float4 res = (1.17520117759704589844f).xxxx;
+}
+
+void fragment_main() {
+  sinh_a3da7c();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  sinh_a3da7c();
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  sinh_a3da7c();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  vertex_main_outputs v_2 = {v_1.pos};
+  return v_2;
+}
+
diff --git a/test/tint/builtins/gen/literal/sinh/b9860e.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/sinh/b9860e.wgsl.expected.ir.dxc.hlsl
index 0ba40c6..61191c8 100644
--- a/test/tint/builtins/gen/literal/sinh/b9860e.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/sinh/b9860e.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,42 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  float2 prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation float2 VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+float2 sinh_b9860e() {
+  float2 res = (1.17520117759704589844f).xx;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store2(0u, asuint(sinh_b9860e()));
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store2(0u, asuint(sinh_b9860e()));
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = sinh_b9860e();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
diff --git a/test/tint/builtins/gen/literal/sinh/b9860e.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/sinh/b9860e.wgsl.expected.ir.fxc.hlsl
index 0ba40c6..61191c8 100644
--- a/test/tint/builtins/gen/literal/sinh/b9860e.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/sinh/b9860e.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,42 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  float2 prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation float2 VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+float2 sinh_b9860e() {
+  float2 res = (1.17520117759704589844f).xx;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store2(0u, asuint(sinh_b9860e()));
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store2(0u, asuint(sinh_b9860e()));
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = sinh_b9860e();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
diff --git a/test/tint/builtins/gen/literal/sinh/ba7e25.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/sinh/ba7e25.wgsl.expected.ir.dxc.hlsl
index 0ba40c6..33508e4 100644
--- a/test/tint/builtins/gen/literal/sinh/ba7e25.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/sinh/ba7e25.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,42 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  vector<float16_t, 4> prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation vector<float16_t, 4> VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+vector<float16_t, 4> sinh_ba7e25() {
+  vector<float16_t, 4> res = (float16_t(1.1748046875h)).xxxx;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store<vector<float16_t, 4> >(0u, sinh_ba7e25());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store<vector<float16_t, 4> >(0u, sinh_ba7e25());
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = sinh_ba7e25();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
diff --git a/test/tint/builtins/gen/literal/sinh/ba7e25.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/sinh/ba7e25.wgsl.expected.ir.fxc.hlsl
index 0ba40c6..31865a7 100644
--- a/test/tint/builtins/gen/literal/sinh/ba7e25.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/sinh/ba7e25.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,47 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct VertexOutput {
+  float4 pos;
+  vector<float16_t, 4> prevent_dce;
+};
+
+struct vertex_main_outputs {
+  nointerpolation vector<float16_t, 4> VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+vector<float16_t, 4> sinh_ba7e25() {
+  vector<float16_t, 4> res = (float16_t(1.1748046875h)).xxxx;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store<vector<float16_t, 4> >(0u, sinh_ba7e25());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store<vector<float16_t, 4> >(0u, sinh_ba7e25());
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = sinh_ba7e25();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
+FXC validation failure:
+c:\src\dawn\Shader@0x000002327CE3DAD0(3,10-18): error X3000: syntax error: unexpected token 'float16_t'
+
diff --git a/test/tint/builtins/gen/literal/sinh/c4df74.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/sinh/c4df74.wgsl.expected.ir.dxc.hlsl
index 0ba40c6..cf43a63 100644
--- a/test/tint/builtins/gen/literal/sinh/c4df74.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/sinh/c4df74.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,36 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+void sinh_c4df74() {
+  float res = 1.17520117759704589844f;
+}
+
+void fragment_main() {
+  sinh_c4df74();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  sinh_c4df74();
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  sinh_c4df74();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  vertex_main_outputs v_2 = {v_1.pos};
+  return v_2;
+}
+
diff --git a/test/tint/builtins/gen/literal/sinh/c4df74.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/sinh/c4df74.wgsl.expected.ir.fxc.hlsl
index 0ba40c6..cf43a63 100644
--- a/test/tint/builtins/gen/literal/sinh/c4df74.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/sinh/c4df74.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,36 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+void sinh_c4df74() {
+  float res = 1.17520117759704589844f;
+}
+
+void fragment_main() {
+  sinh_c4df74();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  sinh_c4df74();
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  sinh_c4df74();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  vertex_main_outputs v_2 = {v_1.pos};
+  return v_2;
+}
+
diff --git a/test/tint/builtins/gen/literal/sinh/c9a5eb.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/sinh/c9a5eb.wgsl.expected.ir.dxc.hlsl
index 0ba40c6..2bfe59e 100644
--- a/test/tint/builtins/gen/literal/sinh/c9a5eb.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/sinh/c9a5eb.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,42 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  float3 prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation float3 VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+float3 sinh_c9a5eb() {
+  float3 res = (1.17520117759704589844f).xxx;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store3(0u, asuint(sinh_c9a5eb()));
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store3(0u, asuint(sinh_c9a5eb()));
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = sinh_c9a5eb();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
diff --git a/test/tint/builtins/gen/literal/sinh/c9a5eb.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/sinh/c9a5eb.wgsl.expected.ir.fxc.hlsl
index 0ba40c6..2bfe59e 100644
--- a/test/tint/builtins/gen/literal/sinh/c9a5eb.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/sinh/c9a5eb.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,42 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  float3 prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation float3 VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+float3 sinh_c9a5eb() {
+  float3 res = (1.17520117759704589844f).xxx;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store3(0u, asuint(sinh_c9a5eb()));
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store3(0u, asuint(sinh_c9a5eb()));
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = sinh_c9a5eb();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
diff --git a/test/tint/builtins/gen/literal/smoothstep/0c481b.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/smoothstep/0c481b.wgsl.expected.ir.dxc.hlsl
index 0ba40c6..1e599ad 100644
--- a/test/tint/builtins/gen/literal/smoothstep/0c481b.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/smoothstep/0c481b.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,36 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+void smoothstep_0c481b() {
+  float2 res = (0.5f).xx;
+}
+
+void fragment_main() {
+  smoothstep_0c481b();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  smoothstep_0c481b();
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  smoothstep_0c481b();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  vertex_main_outputs v_2 = {v_1.pos};
+  return v_2;
+}
+
diff --git a/test/tint/builtins/gen/literal/smoothstep/0c481b.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/smoothstep/0c481b.wgsl.expected.ir.fxc.hlsl
index 0ba40c6..1e599ad 100644
--- a/test/tint/builtins/gen/literal/smoothstep/0c481b.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/smoothstep/0c481b.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,36 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+void smoothstep_0c481b() {
+  float2 res = (0.5f).xx;
+}
+
+void fragment_main() {
+  smoothstep_0c481b();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  smoothstep_0c481b();
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  smoothstep_0c481b();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  vertex_main_outputs v_2 = {v_1.pos};
+  return v_2;
+}
+
diff --git a/test/tint/builtins/gen/literal/smoothstep/0c4ffc.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/smoothstep/0c4ffc.wgsl.expected.ir.dxc.hlsl
index 0ba40c6..ec3c767 100644
--- a/test/tint/builtins/gen/literal/smoothstep/0c4ffc.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/smoothstep/0c4ffc.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,36 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+void smoothstep_0c4ffc() {
+  float4 res = (0.5f).xxxx;
+}
+
+void fragment_main() {
+  smoothstep_0c4ffc();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  smoothstep_0c4ffc();
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  smoothstep_0c4ffc();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  vertex_main_outputs v_2 = {v_1.pos};
+  return v_2;
+}
+
diff --git a/test/tint/builtins/gen/literal/smoothstep/0c4ffc.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/smoothstep/0c4ffc.wgsl.expected.ir.fxc.hlsl
index 0ba40c6..ec3c767 100644
--- a/test/tint/builtins/gen/literal/smoothstep/0c4ffc.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/smoothstep/0c4ffc.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,36 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+void smoothstep_0c4ffc() {
+  float4 res = (0.5f).xxxx;
+}
+
+void fragment_main() {
+  smoothstep_0c4ffc();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  smoothstep_0c4ffc();
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  smoothstep_0c4ffc();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  vertex_main_outputs v_2 = {v_1.pos};
+  return v_2;
+}
+
diff --git a/test/tint/builtins/gen/literal/smoothstep/12c031.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/smoothstep/12c031.wgsl.expected.ir.dxc.hlsl
index 0ba40c6..d496585 100644
--- a/test/tint/builtins/gen/literal/smoothstep/12c031.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/smoothstep/12c031.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,42 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  vector<float16_t, 2> prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation vector<float16_t, 2> VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+vector<float16_t, 2> smoothstep_12c031() {
+  vector<float16_t, 2> res = (float16_t(0.5h)).xx;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store<vector<float16_t, 2> >(0u, smoothstep_12c031());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store<vector<float16_t, 2> >(0u, smoothstep_12c031());
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = smoothstep_12c031();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
diff --git a/test/tint/builtins/gen/literal/smoothstep/12c031.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/smoothstep/12c031.wgsl.expected.ir.fxc.hlsl
index 0ba40c6..de505d9 100644
--- a/test/tint/builtins/gen/literal/smoothstep/12c031.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/smoothstep/12c031.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,47 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct VertexOutput {
+  float4 pos;
+  vector<float16_t, 2> prevent_dce;
+};
+
+struct vertex_main_outputs {
+  nointerpolation vector<float16_t, 2> VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+vector<float16_t, 2> smoothstep_12c031() {
+  vector<float16_t, 2> res = (float16_t(0.5h)).xx;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store<vector<float16_t, 2> >(0u, smoothstep_12c031());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store<vector<float16_t, 2> >(0u, smoothstep_12c031());
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = smoothstep_12c031();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
+FXC validation failure:
+c:\src\dawn\Shader@0x0000022B103128F0(3,10-18): error X3000: syntax error: unexpected token 'float16_t'
+
diff --git a/test/tint/builtins/gen/literal/smoothstep/392c19.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/smoothstep/392c19.wgsl.expected.ir.dxc.hlsl
index 0ba40c6..f7968a6 100644
--- a/test/tint/builtins/gen/literal/smoothstep/392c19.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/smoothstep/392c19.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,42 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  float2 prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation float2 VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+float2 smoothstep_392c19() {
+  float2 res = (0.5f).xx;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store2(0u, asuint(smoothstep_392c19()));
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store2(0u, asuint(smoothstep_392c19()));
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = smoothstep_392c19();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
diff --git a/test/tint/builtins/gen/literal/smoothstep/392c19.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/smoothstep/392c19.wgsl.expected.ir.fxc.hlsl
index 0ba40c6..f7968a6 100644
--- a/test/tint/builtins/gen/literal/smoothstep/392c19.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/smoothstep/392c19.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,42 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  float2 prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation float2 VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+float2 smoothstep_392c19() {
+  float2 res = (0.5f).xx;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store2(0u, asuint(smoothstep_392c19()));
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store2(0u, asuint(smoothstep_392c19()));
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = smoothstep_392c19();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
diff --git a/test/tint/builtins/gen/literal/smoothstep/40864c.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/smoothstep/40864c.wgsl.expected.ir.dxc.hlsl
index 0ba40c6..5f919a7 100644
--- a/test/tint/builtins/gen/literal/smoothstep/40864c.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/smoothstep/40864c.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,42 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  float4 prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation float4 VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+float4 smoothstep_40864c() {
+  float4 res = (0.5f).xxxx;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store4(0u, asuint(smoothstep_40864c()));
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store4(0u, asuint(smoothstep_40864c()));
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = smoothstep_40864c();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
diff --git a/test/tint/builtins/gen/literal/smoothstep/40864c.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/smoothstep/40864c.wgsl.expected.ir.fxc.hlsl
index 0ba40c6..5f919a7 100644
--- a/test/tint/builtins/gen/literal/smoothstep/40864c.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/smoothstep/40864c.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,42 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  float4 prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation float4 VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+float4 smoothstep_40864c() {
+  float4 res = (0.5f).xxxx;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store4(0u, asuint(smoothstep_40864c()));
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store4(0u, asuint(smoothstep_40864c()));
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = smoothstep_40864c();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
diff --git a/test/tint/builtins/gen/literal/smoothstep/586e12.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/smoothstep/586e12.wgsl.expected.ir.dxc.hlsl
index 0ba40c6..e1581fb 100644
--- a/test/tint/builtins/gen/literal/smoothstep/586e12.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/smoothstep/586e12.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,42 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  float16_t prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation float16_t VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+float16_t smoothstep_586e12() {
+  float16_t res = float16_t(0.5h);
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store<float16_t>(0u, smoothstep_586e12());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store<float16_t>(0u, smoothstep_586e12());
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = smoothstep_586e12();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
diff --git a/test/tint/builtins/gen/literal/smoothstep/586e12.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/smoothstep/586e12.wgsl.expected.ir.fxc.hlsl
index 0ba40c6..886ff50 100644
--- a/test/tint/builtins/gen/literal/smoothstep/586e12.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/smoothstep/586e12.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,47 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct VertexOutput {
+  float4 pos;
+  float16_t prevent_dce;
+};
+
+struct vertex_main_outputs {
+  nointerpolation float16_t VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+float16_t smoothstep_586e12() {
+  float16_t res = float16_t(0.5h);
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store<float16_t>(0u, smoothstep_586e12());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store<float16_t>(0u, smoothstep_586e12());
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = smoothstep_586e12();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
+FXC validation failure:
+c:\src\dawn\Shader@0x0000027C65DEEC20(3,3-11): error X3000: unrecognized identifier 'float16_t'
+
diff --git a/test/tint/builtins/gen/literal/smoothstep/66e4bd.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/smoothstep/66e4bd.wgsl.expected.ir.dxc.hlsl
index 0ba40c6..0e1e440 100644
--- a/test/tint/builtins/gen/literal/smoothstep/66e4bd.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/smoothstep/66e4bd.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,36 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+void smoothstep_66e4bd() {
+  float3 res = (0.5f).xxx;
+}
+
+void fragment_main() {
+  smoothstep_66e4bd();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  smoothstep_66e4bd();
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  smoothstep_66e4bd();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  vertex_main_outputs v_2 = {v_1.pos};
+  return v_2;
+}
+
diff --git a/test/tint/builtins/gen/literal/smoothstep/66e4bd.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/smoothstep/66e4bd.wgsl.expected.ir.fxc.hlsl
index 0ba40c6..0e1e440 100644
--- a/test/tint/builtins/gen/literal/smoothstep/66e4bd.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/smoothstep/66e4bd.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,36 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+void smoothstep_66e4bd() {
+  float3 res = (0.5f).xxx;
+}
+
+void fragment_main() {
+  smoothstep_66e4bd();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  smoothstep_66e4bd();
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  smoothstep_66e4bd();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  vertex_main_outputs v_2 = {v_1.pos};
+  return v_2;
+}
+
diff --git a/test/tint/builtins/gen/literal/smoothstep/6c4975.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/smoothstep/6c4975.wgsl.expected.ir.dxc.hlsl
index 0ba40c6..7646133 100644
--- a/test/tint/builtins/gen/literal/smoothstep/6c4975.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/smoothstep/6c4975.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,42 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  float prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation float VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+float smoothstep_6c4975() {
+  float res = 0.5f;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store(0u, asuint(smoothstep_6c4975()));
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store(0u, asuint(smoothstep_6c4975()));
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = smoothstep_6c4975();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
diff --git a/test/tint/builtins/gen/literal/smoothstep/6c4975.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/smoothstep/6c4975.wgsl.expected.ir.fxc.hlsl
index 0ba40c6..7646133 100644
--- a/test/tint/builtins/gen/literal/smoothstep/6c4975.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/smoothstep/6c4975.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,42 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  float prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation float VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+float smoothstep_6c4975() {
+  float res = 0.5f;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store(0u, asuint(smoothstep_6c4975()));
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store(0u, asuint(smoothstep_6c4975()));
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = smoothstep_6c4975();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
diff --git a/test/tint/builtins/gen/literal/smoothstep/6e7a74.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/smoothstep/6e7a74.wgsl.expected.ir.dxc.hlsl
index 0ba40c6..c4cb04c 100644
--- a/test/tint/builtins/gen/literal/smoothstep/6e7a74.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/smoothstep/6e7a74.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,42 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  vector<float16_t, 3> prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation vector<float16_t, 3> VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+vector<float16_t, 3> smoothstep_6e7a74() {
+  vector<float16_t, 3> res = (float16_t(0.5h)).xxx;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store<vector<float16_t, 3> >(0u, smoothstep_6e7a74());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store<vector<float16_t, 3> >(0u, smoothstep_6e7a74());
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = smoothstep_6e7a74();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
diff --git a/test/tint/builtins/gen/literal/smoothstep/6e7a74.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/smoothstep/6e7a74.wgsl.expected.ir.fxc.hlsl
index 0ba40c6..bf9408e 100644
--- a/test/tint/builtins/gen/literal/smoothstep/6e7a74.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/smoothstep/6e7a74.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,47 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct VertexOutput {
+  float4 pos;
+  vector<float16_t, 3> prevent_dce;
+};
+
+struct vertex_main_outputs {
+  nointerpolation vector<float16_t, 3> VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+vector<float16_t, 3> smoothstep_6e7a74() {
+  vector<float16_t, 3> res = (float16_t(0.5h)).xxx;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store<vector<float16_t, 3> >(0u, smoothstep_6e7a74());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store<vector<float16_t, 3> >(0u, smoothstep_6e7a74());
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = smoothstep_6e7a74();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
+FXC validation failure:
+c:\src\dawn\Shader@0x000001BC8401F0D0(3,10-18): error X3000: syntax error: unexpected token 'float16_t'
+
diff --git a/test/tint/builtins/gen/literal/smoothstep/a80fff.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/smoothstep/a80fff.wgsl.expected.ir.dxc.hlsl
index 0ba40c6..fb4c981 100644
--- a/test/tint/builtins/gen/literal/smoothstep/a80fff.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/smoothstep/a80fff.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,36 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+void smoothstep_a80fff() {
+  float res = 0.5f;
+}
+
+void fragment_main() {
+  smoothstep_a80fff();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  smoothstep_a80fff();
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  smoothstep_a80fff();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  vertex_main_outputs v_2 = {v_1.pos};
+  return v_2;
+}
+
diff --git a/test/tint/builtins/gen/literal/smoothstep/a80fff.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/smoothstep/a80fff.wgsl.expected.ir.fxc.hlsl
index 0ba40c6..fb4c981 100644
--- a/test/tint/builtins/gen/literal/smoothstep/a80fff.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/smoothstep/a80fff.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,36 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+void smoothstep_a80fff() {
+  float res = 0.5f;
+}
+
+void fragment_main() {
+  smoothstep_a80fff();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  smoothstep_a80fff();
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  smoothstep_a80fff();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  vertex_main_outputs v_2 = {v_1.pos};
+  return v_2;
+}
+
diff --git a/test/tint/builtins/gen/literal/smoothstep/aad1db.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/smoothstep/aad1db.wgsl.expected.ir.dxc.hlsl
index 0ba40c6..c2039f6 100644
--- a/test/tint/builtins/gen/literal/smoothstep/aad1db.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/smoothstep/aad1db.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,42 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  float3 prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation float3 VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+float3 smoothstep_aad1db() {
+  float3 res = (0.5f).xxx;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store3(0u, asuint(smoothstep_aad1db()));
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store3(0u, asuint(smoothstep_aad1db()));
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = smoothstep_aad1db();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
diff --git a/test/tint/builtins/gen/literal/smoothstep/aad1db.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/smoothstep/aad1db.wgsl.expected.ir.fxc.hlsl
index 0ba40c6..c2039f6 100644
--- a/test/tint/builtins/gen/literal/smoothstep/aad1db.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/smoothstep/aad1db.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,42 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  float3 prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation float3 VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+float3 smoothstep_aad1db() {
+  float3 res = (0.5f).xxx;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store3(0u, asuint(smoothstep_aad1db()));
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store3(0u, asuint(smoothstep_aad1db()));
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = smoothstep_aad1db();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
diff --git a/test/tint/builtins/gen/literal/smoothstep/c43ebd.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/smoothstep/c43ebd.wgsl.expected.ir.dxc.hlsl
index 0ba40c6..57d258d 100644
--- a/test/tint/builtins/gen/literal/smoothstep/c43ebd.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/smoothstep/c43ebd.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,42 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  vector<float16_t, 4> prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation vector<float16_t, 4> VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+vector<float16_t, 4> smoothstep_c43ebd() {
+  vector<float16_t, 4> res = (float16_t(0.5h)).xxxx;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store<vector<float16_t, 4> >(0u, smoothstep_c43ebd());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store<vector<float16_t, 4> >(0u, smoothstep_c43ebd());
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = smoothstep_c43ebd();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
diff --git a/test/tint/builtins/gen/literal/smoothstep/c43ebd.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/smoothstep/c43ebd.wgsl.expected.ir.fxc.hlsl
index 0ba40c6..3af0c55 100644
--- a/test/tint/builtins/gen/literal/smoothstep/c43ebd.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/smoothstep/c43ebd.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,47 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct VertexOutput {
+  float4 pos;
+  vector<float16_t, 4> prevent_dce;
+};
+
+struct vertex_main_outputs {
+  nointerpolation vector<float16_t, 4> VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+vector<float16_t, 4> smoothstep_c43ebd() {
+  vector<float16_t, 4> res = (float16_t(0.5h)).xxxx;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store<vector<float16_t, 4> >(0u, smoothstep_c43ebd());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store<vector<float16_t, 4> >(0u, smoothstep_c43ebd());
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = smoothstep_c43ebd();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
+FXC validation failure:
+c:\src\dawn\Shader@0x0000028CBFCBD420(3,10-18): error X3000: syntax error: unexpected token 'float16_t'
+
diff --git a/test/tint/builtins/gen/literal/sqrt/072192.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/sqrt/072192.wgsl.expected.ir.dxc.hlsl
index 0ba40c6..d10b9ba 100644
--- a/test/tint/builtins/gen/literal/sqrt/072192.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/sqrt/072192.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,36 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+void sqrt_072192() {
+  float3 res = (1.0f).xxx;
+}
+
+void fragment_main() {
+  sqrt_072192();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  sqrt_072192();
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  sqrt_072192();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  vertex_main_outputs v_2 = {v_1.pos};
+  return v_2;
+}
+
diff --git a/test/tint/builtins/gen/literal/sqrt/072192.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/sqrt/072192.wgsl.expected.ir.fxc.hlsl
index 0ba40c6..d10b9ba 100644
--- a/test/tint/builtins/gen/literal/sqrt/072192.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/sqrt/072192.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,36 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+void sqrt_072192() {
+  float3 res = (1.0f).xxx;
+}
+
+void fragment_main() {
+  sqrt_072192();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  sqrt_072192();
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  sqrt_072192();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  vertex_main_outputs v_2 = {v_1.pos};
+  return v_2;
+}
+
diff --git a/test/tint/builtins/gen/literal/sqrt/20c74e.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/sqrt/20c74e.wgsl.expected.ir.dxc.hlsl
index 0ba40c6..a2e1c10 100644
--- a/test/tint/builtins/gen/literal/sqrt/20c74e.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/sqrt/20c74e.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,42 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  float prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation float VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+float sqrt_20c74e() {
+  float res = 1.0f;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store(0u, asuint(sqrt_20c74e()));
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store(0u, asuint(sqrt_20c74e()));
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = sqrt_20c74e();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
diff --git a/test/tint/builtins/gen/literal/sqrt/20c74e.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/sqrt/20c74e.wgsl.expected.ir.fxc.hlsl
index 0ba40c6..a2e1c10 100644
--- a/test/tint/builtins/gen/literal/sqrt/20c74e.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/sqrt/20c74e.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,42 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  float prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation float VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+float sqrt_20c74e() {
+  float res = 1.0f;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store(0u, asuint(sqrt_20c74e()));
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store(0u, asuint(sqrt_20c74e()));
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = sqrt_20c74e();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
diff --git a/test/tint/builtins/gen/literal/sqrt/4ac2c5.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/sqrt/4ac2c5.wgsl.expected.ir.dxc.hlsl
index 0ba40c6..44d1423 100644
--- a/test/tint/builtins/gen/literal/sqrt/4ac2c5.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/sqrt/4ac2c5.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,36 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+void sqrt_4ac2c5() {
+  float4 res = (1.0f).xxxx;
+}
+
+void fragment_main() {
+  sqrt_4ac2c5();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  sqrt_4ac2c5();
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  sqrt_4ac2c5();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  vertex_main_outputs v_2 = {v_1.pos};
+  return v_2;
+}
+
diff --git a/test/tint/builtins/gen/literal/sqrt/4ac2c5.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/sqrt/4ac2c5.wgsl.expected.ir.fxc.hlsl
index 0ba40c6..44d1423 100644
--- a/test/tint/builtins/gen/literal/sqrt/4ac2c5.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/sqrt/4ac2c5.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,36 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+void sqrt_4ac2c5() {
+  float4 res = (1.0f).xxxx;
+}
+
+void fragment_main() {
+  sqrt_4ac2c5();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  sqrt_4ac2c5();
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  sqrt_4ac2c5();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  vertex_main_outputs v_2 = {v_1.pos};
+  return v_2;
+}
+
diff --git a/test/tint/builtins/gen/literal/sqrt/803d1c.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/sqrt/803d1c.wgsl.expected.ir.dxc.hlsl
index 0ba40c6..c5205e9 100644
--- a/test/tint/builtins/gen/literal/sqrt/803d1c.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/sqrt/803d1c.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,42 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  vector<float16_t, 4> prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation vector<float16_t, 4> VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+vector<float16_t, 4> sqrt_803d1c() {
+  vector<float16_t, 4> res = (float16_t(1.0h)).xxxx;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store<vector<float16_t, 4> >(0u, sqrt_803d1c());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store<vector<float16_t, 4> >(0u, sqrt_803d1c());
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = sqrt_803d1c();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
diff --git a/test/tint/builtins/gen/literal/sqrt/803d1c.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/sqrt/803d1c.wgsl.expected.ir.fxc.hlsl
index 0ba40c6..9312f11 100644
--- a/test/tint/builtins/gen/literal/sqrt/803d1c.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/sqrt/803d1c.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,47 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct VertexOutput {
+  float4 pos;
+  vector<float16_t, 4> prevent_dce;
+};
+
+struct vertex_main_outputs {
+  nointerpolation vector<float16_t, 4> VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+vector<float16_t, 4> sqrt_803d1c() {
+  vector<float16_t, 4> res = (float16_t(1.0h)).xxxx;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store<vector<float16_t, 4> >(0u, sqrt_803d1c());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store<vector<float16_t, 4> >(0u, sqrt_803d1c());
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = sqrt_803d1c();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
+FXC validation failure:
+c:\src\dawn\Shader@0x000001DB37F87510(3,10-18): error X3000: syntax error: unexpected token 'float16_t'
+
diff --git a/test/tint/builtins/gen/literal/sqrt/895a0c.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/sqrt/895a0c.wgsl.expected.ir.dxc.hlsl
index 0ba40c6..f5c8e0e 100644
--- a/test/tint/builtins/gen/literal/sqrt/895a0c.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/sqrt/895a0c.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,42 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  vector<float16_t, 3> prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation vector<float16_t, 3> VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+vector<float16_t, 3> sqrt_895a0c() {
+  vector<float16_t, 3> res = (float16_t(1.0h)).xxx;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store<vector<float16_t, 3> >(0u, sqrt_895a0c());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store<vector<float16_t, 3> >(0u, sqrt_895a0c());
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = sqrt_895a0c();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
diff --git a/test/tint/builtins/gen/literal/sqrt/895a0c.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/sqrt/895a0c.wgsl.expected.ir.fxc.hlsl
index 0ba40c6..42ad904 100644
--- a/test/tint/builtins/gen/literal/sqrt/895a0c.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/sqrt/895a0c.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,47 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct VertexOutput {
+  float4 pos;
+  vector<float16_t, 3> prevent_dce;
+};
+
+struct vertex_main_outputs {
+  nointerpolation vector<float16_t, 3> VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+vector<float16_t, 3> sqrt_895a0c() {
+  vector<float16_t, 3> res = (float16_t(1.0h)).xxx;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store<vector<float16_t, 3> >(0u, sqrt_895a0c());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store<vector<float16_t, 3> >(0u, sqrt_895a0c());
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = sqrt_895a0c();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
+FXC validation failure:
+c:\src\dawn\Shader@0x000002C074B9FB90(3,10-18): error X3000: syntax error: unexpected token 'float16_t'
+
diff --git a/test/tint/builtins/gen/literal/sqrt/8c7024.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/sqrt/8c7024.wgsl.expected.ir.dxc.hlsl
index 0ba40c6..0967449 100644
--- a/test/tint/builtins/gen/literal/sqrt/8c7024.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/sqrt/8c7024.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,42 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  float2 prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation float2 VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+float2 sqrt_8c7024() {
+  float2 res = (1.0f).xx;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store2(0u, asuint(sqrt_8c7024()));
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store2(0u, asuint(sqrt_8c7024()));
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = sqrt_8c7024();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
diff --git a/test/tint/builtins/gen/literal/sqrt/8c7024.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/sqrt/8c7024.wgsl.expected.ir.fxc.hlsl
index 0ba40c6..0967449 100644
--- a/test/tint/builtins/gen/literal/sqrt/8c7024.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/sqrt/8c7024.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,42 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  float2 prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation float2 VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+float2 sqrt_8c7024() {
+  float2 res = (1.0f).xx;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store2(0u, asuint(sqrt_8c7024()));
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store2(0u, asuint(sqrt_8c7024()));
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = sqrt_8c7024();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
diff --git a/test/tint/builtins/gen/literal/sqrt/8da177.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/sqrt/8da177.wgsl.expected.ir.dxc.hlsl
index 0ba40c6..8185719 100644
--- a/test/tint/builtins/gen/literal/sqrt/8da177.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/sqrt/8da177.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,36 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+void sqrt_8da177() {
+  float res = 1.0f;
+}
+
+void fragment_main() {
+  sqrt_8da177();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  sqrt_8da177();
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  sqrt_8da177();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  vertex_main_outputs v_2 = {v_1.pos};
+  return v_2;
+}
+
diff --git a/test/tint/builtins/gen/literal/sqrt/8da177.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/sqrt/8da177.wgsl.expected.ir.fxc.hlsl
index 0ba40c6..8185719 100644
--- a/test/tint/builtins/gen/literal/sqrt/8da177.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/sqrt/8da177.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,36 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+void sqrt_8da177() {
+  float res = 1.0f;
+}
+
+void fragment_main() {
+  sqrt_8da177();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  sqrt_8da177();
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  sqrt_8da177();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  vertex_main_outputs v_2 = {v_1.pos};
+  return v_2;
+}
+
diff --git a/test/tint/builtins/gen/literal/sqrt/9c5cbe.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/sqrt/9c5cbe.wgsl.expected.ir.dxc.hlsl
index 0ba40c6..43b28cc 100644
--- a/test/tint/builtins/gen/literal/sqrt/9c5cbe.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/sqrt/9c5cbe.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,36 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+void sqrt_9c5cbe() {
+  float2 res = (1.0f).xx;
+}
+
+void fragment_main() {
+  sqrt_9c5cbe();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  sqrt_9c5cbe();
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  sqrt_9c5cbe();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  vertex_main_outputs v_2 = {v_1.pos};
+  return v_2;
+}
+
diff --git a/test/tint/builtins/gen/literal/sqrt/9c5cbe.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/sqrt/9c5cbe.wgsl.expected.ir.fxc.hlsl
index 0ba40c6..43b28cc 100644
--- a/test/tint/builtins/gen/literal/sqrt/9c5cbe.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/sqrt/9c5cbe.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,36 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+void sqrt_9c5cbe() {
+  float2 res = (1.0f).xx;
+}
+
+void fragment_main() {
+  sqrt_9c5cbe();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  sqrt_9c5cbe();
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  sqrt_9c5cbe();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  vertex_main_outputs v_2 = {v_1.pos};
+  return v_2;
+}
+
diff --git a/test/tint/builtins/gen/literal/sqrt/aa0d7a.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/sqrt/aa0d7a.wgsl.expected.ir.dxc.hlsl
index 0ba40c6..25dc51f 100644
--- a/test/tint/builtins/gen/literal/sqrt/aa0d7a.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/sqrt/aa0d7a.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,42 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  float4 prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation float4 VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+float4 sqrt_aa0d7a() {
+  float4 res = (1.0f).xxxx;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store4(0u, asuint(sqrt_aa0d7a()));
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store4(0u, asuint(sqrt_aa0d7a()));
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = sqrt_aa0d7a();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
diff --git a/test/tint/builtins/gen/literal/sqrt/aa0d7a.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/sqrt/aa0d7a.wgsl.expected.ir.fxc.hlsl
index 0ba40c6..25dc51f 100644
--- a/test/tint/builtins/gen/literal/sqrt/aa0d7a.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/sqrt/aa0d7a.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,42 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  float4 prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation float4 VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+float4 sqrt_aa0d7a() {
+  float4 res = (1.0f).xxxx;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store4(0u, asuint(sqrt_aa0d7a()));
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store4(0u, asuint(sqrt_aa0d7a()));
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = sqrt_aa0d7a();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
diff --git a/test/tint/builtins/gen/literal/sqrt/d9ab4d.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/sqrt/d9ab4d.wgsl.expected.ir.dxc.hlsl
index 0ba40c6..e6034f1 100644
--- a/test/tint/builtins/gen/literal/sqrt/d9ab4d.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/sqrt/d9ab4d.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,42 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  vector<float16_t, 2> prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation vector<float16_t, 2> VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+vector<float16_t, 2> sqrt_d9ab4d() {
+  vector<float16_t, 2> res = (float16_t(1.0h)).xx;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store<vector<float16_t, 2> >(0u, sqrt_d9ab4d());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store<vector<float16_t, 2> >(0u, sqrt_d9ab4d());
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = sqrt_d9ab4d();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
diff --git a/test/tint/builtins/gen/literal/sqrt/d9ab4d.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/sqrt/d9ab4d.wgsl.expected.ir.fxc.hlsl
index 0ba40c6..5072b7d 100644
--- a/test/tint/builtins/gen/literal/sqrt/d9ab4d.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/sqrt/d9ab4d.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,47 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct VertexOutput {
+  float4 pos;
+  vector<float16_t, 2> prevent_dce;
+};
+
+struct vertex_main_outputs {
+  nointerpolation vector<float16_t, 2> VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+vector<float16_t, 2> sqrt_d9ab4d() {
+  vector<float16_t, 2> res = (float16_t(1.0h)).xx;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store<vector<float16_t, 2> >(0u, sqrt_d9ab4d());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store<vector<float16_t, 2> >(0u, sqrt_d9ab4d());
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = sqrt_d9ab4d();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
+FXC validation failure:
+c:\src\dawn\Shader@0x000001C06DE44C20(3,10-18): error X3000: syntax error: unexpected token 'float16_t'
+
diff --git a/test/tint/builtins/gen/literal/sqrt/ec33e9.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/sqrt/ec33e9.wgsl.expected.ir.dxc.hlsl
index 0ba40c6..e66316d 100644
--- a/test/tint/builtins/gen/literal/sqrt/ec33e9.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/sqrt/ec33e9.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,42 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  float16_t prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation float16_t VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+float16_t sqrt_ec33e9() {
+  float16_t res = float16_t(1.0h);
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store<float16_t>(0u, sqrt_ec33e9());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store<float16_t>(0u, sqrt_ec33e9());
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = sqrt_ec33e9();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
diff --git a/test/tint/builtins/gen/literal/sqrt/ec33e9.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/sqrt/ec33e9.wgsl.expected.ir.fxc.hlsl
index 0ba40c6..2aa3333 100644
--- a/test/tint/builtins/gen/literal/sqrt/ec33e9.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/sqrt/ec33e9.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,47 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct VertexOutput {
+  float4 pos;
+  float16_t prevent_dce;
+};
+
+struct vertex_main_outputs {
+  nointerpolation float16_t VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+float16_t sqrt_ec33e9() {
+  float16_t res = float16_t(1.0h);
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store<float16_t>(0u, sqrt_ec33e9());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store<float16_t>(0u, sqrt_ec33e9());
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = sqrt_ec33e9();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
+FXC validation failure:
+c:\src\dawn\Shader@0x0000019C8D43DA00(3,3-11): error X3000: unrecognized identifier 'float16_t'
+
diff --git a/test/tint/builtins/gen/literal/sqrt/f8c59a.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/sqrt/f8c59a.wgsl.expected.ir.dxc.hlsl
index 0ba40c6..3bb4f5d 100644
--- a/test/tint/builtins/gen/literal/sqrt/f8c59a.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/sqrt/f8c59a.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,42 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  float3 prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation float3 VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+float3 sqrt_f8c59a() {
+  float3 res = (1.0f).xxx;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store3(0u, asuint(sqrt_f8c59a()));
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store3(0u, asuint(sqrt_f8c59a()));
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = sqrt_f8c59a();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
diff --git a/test/tint/builtins/gen/literal/sqrt/f8c59a.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/sqrt/f8c59a.wgsl.expected.ir.fxc.hlsl
index 0ba40c6..3bb4f5d 100644
--- a/test/tint/builtins/gen/literal/sqrt/f8c59a.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/sqrt/f8c59a.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,42 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  float3 prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation float3 VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+float3 sqrt_f8c59a() {
+  float3 res = (1.0f).xxx;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store3(0u, asuint(sqrt_f8c59a()));
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store3(0u, asuint(sqrt_f8c59a()));
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = sqrt_f8c59a();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
diff --git a/test/tint/builtins/gen/literal/step/07cb06.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/step/07cb06.wgsl.expected.ir.dxc.hlsl
index 0ba40c6..dbe3993 100644
--- a/test/tint/builtins/gen/literal/step/07cb06.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/step/07cb06.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,42 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  vector<float16_t, 2> prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation vector<float16_t, 2> VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+vector<float16_t, 2> step_07cb06() {
+  vector<float16_t, 2> res = (float16_t(1.0h)).xx;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store<vector<float16_t, 2> >(0u, step_07cb06());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store<vector<float16_t, 2> >(0u, step_07cb06());
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = step_07cb06();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
diff --git a/test/tint/builtins/gen/literal/step/07cb06.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/step/07cb06.wgsl.expected.ir.fxc.hlsl
index 0ba40c6..8fdc535 100644
--- a/test/tint/builtins/gen/literal/step/07cb06.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/step/07cb06.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,47 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct VertexOutput {
+  float4 pos;
+  vector<float16_t, 2> prevent_dce;
+};
+
+struct vertex_main_outputs {
+  nointerpolation vector<float16_t, 2> VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+vector<float16_t, 2> step_07cb06() {
+  vector<float16_t, 2> res = (float16_t(1.0h)).xx;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store<vector<float16_t, 2> >(0u, step_07cb06());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store<vector<float16_t, 2> >(0u, step_07cb06());
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = step_07cb06();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
+FXC validation failure:
+c:\src\dawn\Shader@0x0000017515840F20(3,10-18): error X3000: syntax error: unexpected token 'float16_t'
+
diff --git a/test/tint/builtins/gen/literal/step/0b073b.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/step/0b073b.wgsl.expected.ir.dxc.hlsl
index 0ba40c6..0619685 100644
--- a/test/tint/builtins/gen/literal/step/0b073b.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/step/0b073b.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,42 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  float prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation float VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+float step_0b073b() {
+  float res = 1.0f;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store(0u, asuint(step_0b073b()));
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store(0u, asuint(step_0b073b()));
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = step_0b073b();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
diff --git a/test/tint/builtins/gen/literal/step/0b073b.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/step/0b073b.wgsl.expected.ir.fxc.hlsl
index 0ba40c6..0619685 100644
--- a/test/tint/builtins/gen/literal/step/0b073b.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/step/0b073b.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,42 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  float prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation float VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+float step_0b073b() {
+  float res = 1.0f;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store(0u, asuint(step_0b073b()));
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store(0u, asuint(step_0b073b()));
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = step_0b073b();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
diff --git a/test/tint/builtins/gen/literal/step/19accd.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/step/19accd.wgsl.expected.ir.dxc.hlsl
index 0ba40c6..5692838 100644
--- a/test/tint/builtins/gen/literal/step/19accd.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/step/19accd.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,42 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  float2 prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation float2 VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+float2 step_19accd() {
+  float2 res = (1.0f).xx;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store2(0u, asuint(step_19accd()));
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store2(0u, asuint(step_19accd()));
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = step_19accd();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
diff --git a/test/tint/builtins/gen/literal/step/19accd.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/step/19accd.wgsl.expected.ir.fxc.hlsl
index 0ba40c6..5692838 100644
--- a/test/tint/builtins/gen/literal/step/19accd.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/step/19accd.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,42 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  float2 prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation float2 VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+float2 step_19accd() {
+  float2 res = (1.0f).xx;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store2(0u, asuint(step_19accd()));
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store2(0u, asuint(step_19accd()));
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = step_19accd();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
diff --git a/test/tint/builtins/gen/literal/step/334303.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/step/334303.wgsl.expected.ir.dxc.hlsl
index 0ba40c6..fe5ea58 100644
--- a/test/tint/builtins/gen/literal/step/334303.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/step/334303.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,42 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  float3 prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation float3 VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+float3 step_334303() {
+  float3 res = (1.0f).xxx;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store3(0u, asuint(step_334303()));
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store3(0u, asuint(step_334303()));
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = step_334303();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
diff --git a/test/tint/builtins/gen/literal/step/334303.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/step/334303.wgsl.expected.ir.fxc.hlsl
index 0ba40c6..fe5ea58 100644
--- a/test/tint/builtins/gen/literal/step/334303.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/step/334303.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,42 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  float3 prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation float3 VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+float3 step_334303() {
+  float3 res = (1.0f).xxx;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store3(0u, asuint(step_334303()));
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store3(0u, asuint(step_334303()));
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = step_334303();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
diff --git a/test/tint/builtins/gen/literal/step/38cd79.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/step/38cd79.wgsl.expected.ir.dxc.hlsl
index 0ba40c6..5525039 100644
--- a/test/tint/builtins/gen/literal/step/38cd79.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/step/38cd79.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,36 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+void step_38cd79() {
+  float4 res = (1.0f).xxxx;
+}
+
+void fragment_main() {
+  step_38cd79();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  step_38cd79();
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  step_38cd79();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  vertex_main_outputs v_2 = {v_1.pos};
+  return v_2;
+}
+
diff --git a/test/tint/builtins/gen/literal/step/38cd79.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/step/38cd79.wgsl.expected.ir.fxc.hlsl
index 0ba40c6..5525039 100644
--- a/test/tint/builtins/gen/literal/step/38cd79.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/step/38cd79.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,36 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+void step_38cd79() {
+  float4 res = (1.0f).xxxx;
+}
+
+void fragment_main() {
+  step_38cd79();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  step_38cd79();
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  step_38cd79();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  vertex_main_outputs v_2 = {v_1.pos};
+  return v_2;
+}
+
diff --git a/test/tint/builtins/gen/literal/step/415879.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/step/415879.wgsl.expected.ir.dxc.hlsl
index 0ba40c6..21e97d0 100644
--- a/test/tint/builtins/gen/literal/step/415879.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/step/415879.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,36 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+void step_415879() {
+  float3 res = (1.0f).xxx;
+}
+
+void fragment_main() {
+  step_415879();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  step_415879();
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  step_415879();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  vertex_main_outputs v_2 = {v_1.pos};
+  return v_2;
+}
+
diff --git a/test/tint/builtins/gen/literal/step/415879.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/step/415879.wgsl.expected.ir.fxc.hlsl
index 0ba40c6..21e97d0 100644
--- a/test/tint/builtins/gen/literal/step/415879.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/step/415879.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,36 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+void step_415879() {
+  float3 res = (1.0f).xxx;
+}
+
+void fragment_main() {
+  step_415879();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  step_415879();
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  step_415879();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  vertex_main_outputs v_2 = {v_1.pos};
+  return v_2;
+}
+
diff --git a/test/tint/builtins/gen/literal/step/630d07.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/step/630d07.wgsl.expected.ir.dxc.hlsl
index 0ba40c6..4a4fd6d 100644
--- a/test/tint/builtins/gen/literal/step/630d07.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/step/630d07.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,42 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  float16_t prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation float16_t VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+float16_t step_630d07() {
+  float16_t res = float16_t(1.0h);
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store<float16_t>(0u, step_630d07());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store<float16_t>(0u, step_630d07());
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = step_630d07();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
diff --git a/test/tint/builtins/gen/literal/step/630d07.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/step/630d07.wgsl.expected.ir.fxc.hlsl
index 0ba40c6..0993903 100644
--- a/test/tint/builtins/gen/literal/step/630d07.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/step/630d07.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,47 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct VertexOutput {
+  float4 pos;
+  float16_t prevent_dce;
+};
+
+struct vertex_main_outputs {
+  nointerpolation float16_t VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+float16_t step_630d07() {
+  float16_t res = float16_t(1.0h);
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store<float16_t>(0u, step_630d07());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store<float16_t>(0u, step_630d07());
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = step_630d07();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
+FXC validation failure:
+c:\src\dawn\Shader@0x000001D5C8E5C460(3,3-11): error X3000: unrecognized identifier 'float16_t'
+
diff --git a/test/tint/builtins/gen/literal/step/7c7e5c.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/step/7c7e5c.wgsl.expected.ir.dxc.hlsl
index 0ba40c6..555d2bc 100644
--- a/test/tint/builtins/gen/literal/step/7c7e5c.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/step/7c7e5c.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,36 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+void step_7c7e5c() {
+  float2 res = (1.0f).xx;
+}
+
+void fragment_main() {
+  step_7c7e5c();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  step_7c7e5c();
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  step_7c7e5c();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  vertex_main_outputs v_2 = {v_1.pos};
+  return v_2;
+}
+
diff --git a/test/tint/builtins/gen/literal/step/7c7e5c.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/step/7c7e5c.wgsl.expected.ir.fxc.hlsl
index 0ba40c6..555d2bc 100644
--- a/test/tint/builtins/gen/literal/step/7c7e5c.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/step/7c7e5c.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,36 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+void step_7c7e5c() {
+  float2 res = (1.0f).xx;
+}
+
+void fragment_main() {
+  step_7c7e5c();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  step_7c7e5c();
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  step_7c7e5c();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  vertex_main_outputs v_2 = {v_1.pos};
+  return v_2;
+}
+
diff --git a/test/tint/builtins/gen/literal/step/baa320.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/step/baa320.wgsl.expected.ir.dxc.hlsl
index 0ba40c6..1c99e5e 100644
--- a/test/tint/builtins/gen/literal/step/baa320.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/step/baa320.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,42 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  vector<float16_t, 4> prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation vector<float16_t, 4> VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+vector<float16_t, 4> step_baa320() {
+  vector<float16_t, 4> res = (float16_t(1.0h)).xxxx;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store<vector<float16_t, 4> >(0u, step_baa320());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store<vector<float16_t, 4> >(0u, step_baa320());
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = step_baa320();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
diff --git a/test/tint/builtins/gen/literal/step/baa320.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/step/baa320.wgsl.expected.ir.fxc.hlsl
index 0ba40c6..b85de69 100644
--- a/test/tint/builtins/gen/literal/step/baa320.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/step/baa320.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,47 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct VertexOutput {
+  float4 pos;
+  vector<float16_t, 4> prevent_dce;
+};
+
+struct vertex_main_outputs {
+  nointerpolation vector<float16_t, 4> VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+vector<float16_t, 4> step_baa320() {
+  vector<float16_t, 4> res = (float16_t(1.0h)).xxxx;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store<vector<float16_t, 4> >(0u, step_baa320());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store<vector<float16_t, 4> >(0u, step_baa320());
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = step_baa320();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
+FXC validation failure:
+c:\src\dawn\Shader@0x00000219180AC3D0(3,10-18): error X3000: syntax error: unexpected token 'float16_t'
+
diff --git a/test/tint/builtins/gen/literal/step/cc6b61.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/step/cc6b61.wgsl.expected.ir.dxc.hlsl
index 0ba40c6..e9e53a4 100644
--- a/test/tint/builtins/gen/literal/step/cc6b61.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/step/cc6b61.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,42 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  vector<float16_t, 3> prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation vector<float16_t, 3> VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+vector<float16_t, 3> step_cc6b61() {
+  vector<float16_t, 3> res = (float16_t(1.0h)).xxx;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store<vector<float16_t, 3> >(0u, step_cc6b61());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store<vector<float16_t, 3> >(0u, step_cc6b61());
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = step_cc6b61();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
diff --git a/test/tint/builtins/gen/literal/step/cc6b61.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/step/cc6b61.wgsl.expected.ir.fxc.hlsl
index 0ba40c6..faec8a7 100644
--- a/test/tint/builtins/gen/literal/step/cc6b61.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/step/cc6b61.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,47 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct VertexOutput {
+  float4 pos;
+  vector<float16_t, 3> prevent_dce;
+};
+
+struct vertex_main_outputs {
+  nointerpolation vector<float16_t, 3> VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+vector<float16_t, 3> step_cc6b61() {
+  vector<float16_t, 3> res = (float16_t(1.0h)).xxx;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store<vector<float16_t, 3> >(0u, step_cc6b61());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store<vector<float16_t, 3> >(0u, step_cc6b61());
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = step_cc6b61();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
+FXC validation failure:
+c:\src\dawn\Shader@0x0000022CF5D832E0(3,10-18): error X3000: syntax error: unexpected token 'float16_t'
+
diff --git a/test/tint/builtins/gen/literal/step/e2b337.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/step/e2b337.wgsl.expected.ir.dxc.hlsl
index 0ba40c6..8f8e7d3 100644
--- a/test/tint/builtins/gen/literal/step/e2b337.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/step/e2b337.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,42 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  float4 prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation float4 VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+float4 step_e2b337() {
+  float4 res = (1.0f).xxxx;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store4(0u, asuint(step_e2b337()));
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store4(0u, asuint(step_e2b337()));
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = step_e2b337();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
diff --git a/test/tint/builtins/gen/literal/step/e2b337.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/step/e2b337.wgsl.expected.ir.fxc.hlsl
index 0ba40c6..8f8e7d3 100644
--- a/test/tint/builtins/gen/literal/step/e2b337.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/step/e2b337.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,42 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  float4 prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation float4 VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+float4 step_e2b337() {
+  float4 res = (1.0f).xxxx;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store4(0u, asuint(step_e2b337()));
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store4(0u, asuint(step_e2b337()));
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = step_e2b337();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
diff --git a/test/tint/builtins/gen/literal/step/f9b70c.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/step/f9b70c.wgsl.expected.ir.dxc.hlsl
index 0ba40c6..2f03418 100644
--- a/test/tint/builtins/gen/literal/step/f9b70c.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/step/f9b70c.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,36 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+void step_f9b70c() {
+  float res = 1.0f;
+}
+
+void fragment_main() {
+  step_f9b70c();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  step_f9b70c();
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  step_f9b70c();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  vertex_main_outputs v_2 = {v_1.pos};
+  return v_2;
+}
+
diff --git a/test/tint/builtins/gen/literal/step/f9b70c.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/step/f9b70c.wgsl.expected.ir.fxc.hlsl
index 0ba40c6..2f03418 100644
--- a/test/tint/builtins/gen/literal/step/f9b70c.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/step/f9b70c.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,36 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+void step_f9b70c() {
+  float res = 1.0f;
+}
+
+void fragment_main() {
+  step_f9b70c();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  step_f9b70c();
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  step_f9b70c();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  vertex_main_outputs v_2 = {v_1.pos};
+  return v_2;
+}
+
diff --git a/test/tint/builtins/gen/literal/storageBarrier/d87211.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/storageBarrier/d87211.wgsl.expected.ir.dxc.hlsl
index 5ff4a1e..1cff48d 100644
--- a/test/tint/builtins/gen/literal/storageBarrier/d87211.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/storageBarrier/d87211.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,10 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: storageBarrier
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+void storageBarrier_d87211() {
+  DeviceMemoryBarrierWithGroupSync();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  storageBarrier_d87211();
+}
+
diff --git a/test/tint/builtins/gen/literal/storageBarrier/d87211.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/storageBarrier/d87211.wgsl.expected.ir.fxc.hlsl
index 5ff4a1e..1cff48d 100644
--- a/test/tint/builtins/gen/literal/storageBarrier/d87211.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/storageBarrier/d87211.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,10 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: storageBarrier
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+void storageBarrier_d87211() {
+  DeviceMemoryBarrierWithGroupSync();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  storageBarrier_d87211();
+}
+
diff --git a/test/tint/builtins/gen/literal/subgroupBallot/1a8251.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/subgroupBallot/1a8251.wgsl.expected.ir.dxc.hlsl
index 90369a2..afcaa70 100644
--- a/test/tint/builtins/gen/literal/subgroupBallot/1a8251.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/subgroupBallot/1a8251.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,12 @@
-SKIP: FAILED
 
-../../src/tint/lang/hlsl/writer/printer/printer.cc:1002 internal compiler error: TINT_UNREACHABLE unhandled: subgroupBallot
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWByteAddressBuffer prevent_dce : register(u0);
+uint4 subgroupBallot_1a8251() {
+  uint4 res = WaveActiveBallot(true);
+  return res;
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store4(0u, subgroupBallot_1a8251());
+}
+
diff --git a/test/tint/builtins/gen/literal/subgroupBallot/1a8251.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/subgroupBallot/1a8251.wgsl.expected.ir.fxc.hlsl
index 90369a2..ffcbcaa 100644
--- a/test/tint/builtins/gen/literal/subgroupBallot/1a8251.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/subgroupBallot/1a8251.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,17 @@
 SKIP: FAILED
 
-../../src/tint/lang/hlsl/writer/printer/printer.cc:1002 internal compiler error: TINT_UNREACHABLE unhandled: subgroupBallot
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+
+RWByteAddressBuffer prevent_dce : register(u0);
+uint4 subgroupBallot_1a8251() {
+  uint4 res = WaveActiveBallot(true);
+  return res;
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store4(0u, subgroupBallot_1a8251());
+}
+
+FXC validation failure:
+c:\src\dawn\Shader@0x0000019446DA06A0(4,15-36): error X3004: undeclared identifier 'WaveActiveBallot'
+
diff --git a/test/tint/builtins/gen/literal/subgroupBroadcast/07e2d8.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/subgroupBroadcast/07e2d8.wgsl.expected.ir.dxc.hlsl
index 0fa60b7..32aec75 100644
--- a/test/tint/builtins/gen/literal/subgroupBroadcast/07e2d8.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/subgroupBroadcast/07e2d8.wgsl.expected.ir.dxc.hlsl
@@ -1,5 +1,5 @@
-SKIP: FAILED
 
+RWByteAddressBuffer prevent_dce : register(u0);
 float16_t subgroupBroadcast_07e2d8() {
   float16_t res = WaveReadLaneAt(float16_t(1.0h), 1u);
   return res;
@@ -7,11 +7,6 @@
 
 [numthreads(1, 1, 1)]
 void compute_main() {
-  prevent_dce = subgroupBroadcast_07e2d8();
+  prevent_dce.Store<float16_t>(0u, subgroupBroadcast_07e2d8());
 }
 
-DXC validation failure:
-hlsl.hlsl:8:3: error: use of undeclared identifier 'prevent_dce'
-  prevent_dce = subgroupBroadcast_07e2d8();
-  ^
-
diff --git a/test/tint/builtins/gen/literal/subgroupBroadcast/07e2d8.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/subgroupBroadcast/07e2d8.wgsl.expected.ir.fxc.hlsl
index 19acfc9..7405fdd 100644
--- a/test/tint/builtins/gen/literal/subgroupBroadcast/07e2d8.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/subgroupBroadcast/07e2d8.wgsl.expected.ir.fxc.hlsl
@@ -1,5 +1,7 @@
 SKIP: FAILED
 
+
+RWByteAddressBuffer prevent_dce : register(u0);
 float16_t subgroupBroadcast_07e2d8() {
   float16_t res = WaveReadLaneAt(float16_t(1.0h), 1u);
   return res;
@@ -7,6 +9,9 @@
 
 [numthreads(1, 1, 1)]
 void compute_main() {
-  prevent_dce = subgroupBroadcast_07e2d8();
+  prevent_dce.Store<float16_t>(0u, subgroupBroadcast_07e2d8());
 }
 
+FXC validation failure:
+c:\src\dawn\Shader@0x000001C049765E60(3,1-9): error X3000: unrecognized identifier 'float16_t'
+
diff --git a/test/tint/builtins/gen/literal/subgroupBroadcast/08beca.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/subgroupBroadcast/08beca.wgsl.expected.ir.dxc.hlsl
index b2cf3c3..2ee8261 100644
--- a/test/tint/builtins/gen/literal/subgroupBroadcast/08beca.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/subgroupBroadcast/08beca.wgsl.expected.ir.dxc.hlsl
@@ -1,5 +1,5 @@
-SKIP: FAILED
 
+RWByteAddressBuffer prevent_dce : register(u0);
 float subgroupBroadcast_08beca() {
   float res = WaveReadLaneAt(1.0f, 1u);
   return res;
@@ -7,11 +7,6 @@
 
 [numthreads(1, 1, 1)]
 void compute_main() {
-  prevent_dce = subgroupBroadcast_08beca();
+  prevent_dce.Store(0u, asuint(subgroupBroadcast_08beca()));
 }
 
-DXC validation failure:
-hlsl.hlsl:8:3: error: use of undeclared identifier 'prevent_dce'
-  prevent_dce = subgroupBroadcast_08beca();
-  ^
-
diff --git a/test/tint/builtins/gen/literal/subgroupBroadcast/08beca.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/subgroupBroadcast/08beca.wgsl.expected.ir.fxc.hlsl
index 9410d0d..cf8336a 100644
--- a/test/tint/builtins/gen/literal/subgroupBroadcast/08beca.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/subgroupBroadcast/08beca.wgsl.expected.ir.fxc.hlsl
@@ -1,5 +1,7 @@
 SKIP: FAILED
 
+
+RWByteAddressBuffer prevent_dce : register(u0);
 float subgroupBroadcast_08beca() {
   float res = WaveReadLaneAt(1.0f, 1u);
   return res;
@@ -7,6 +9,9 @@
 
 [numthreads(1, 1, 1)]
 void compute_main() {
-  prevent_dce = subgroupBroadcast_08beca();
+  prevent_dce.Store(0u, asuint(subgroupBroadcast_08beca()));
 }
 
+FXC validation failure:
+c:\src\dawn\Shader@0x0000020683E50380(4,15-38): error X3004: undeclared identifier 'WaveReadLaneAt'
+
diff --git a/test/tint/builtins/gen/literal/subgroupBroadcast/0f44e2.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/subgroupBroadcast/0f44e2.wgsl.expected.ir.dxc.hlsl
index 856a288..596a06b 100644
--- a/test/tint/builtins/gen/literal/subgroupBroadcast/0f44e2.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/subgroupBroadcast/0f44e2.wgsl.expected.ir.dxc.hlsl
@@ -1,5 +1,5 @@
-SKIP: FAILED
 
+RWByteAddressBuffer prevent_dce : register(u0);
 vector<float16_t, 4> subgroupBroadcast_0f44e2() {
   vector<float16_t, 4> res = WaveReadLaneAt((float16_t(1.0h)).xxxx, 1u);
   return res;
@@ -7,11 +7,6 @@
 
 [numthreads(1, 1, 1)]
 void compute_main() {
-  prevent_dce = subgroupBroadcast_0f44e2();
+  prevent_dce.Store<vector<float16_t, 4> >(0u, subgroupBroadcast_0f44e2());
 }
 
-DXC validation failure:
-hlsl.hlsl:8:3: error: use of undeclared identifier 'prevent_dce'
-  prevent_dce = subgroupBroadcast_0f44e2();
-  ^
-
diff --git a/test/tint/builtins/gen/literal/subgroupBroadcast/0f44e2.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/subgroupBroadcast/0f44e2.wgsl.expected.ir.fxc.hlsl
index 631246f..8916eee 100644
--- a/test/tint/builtins/gen/literal/subgroupBroadcast/0f44e2.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/subgroupBroadcast/0f44e2.wgsl.expected.ir.fxc.hlsl
@@ -1,5 +1,7 @@
 SKIP: FAILED
 
+
+RWByteAddressBuffer prevent_dce : register(u0);
 vector<float16_t, 4> subgroupBroadcast_0f44e2() {
   vector<float16_t, 4> res = WaveReadLaneAt((float16_t(1.0h)).xxxx, 1u);
   return res;
@@ -7,6 +9,9 @@
 
 [numthreads(1, 1, 1)]
 void compute_main() {
-  prevent_dce = subgroupBroadcast_0f44e2();
+  prevent_dce.Store<vector<float16_t, 4> >(0u, subgroupBroadcast_0f44e2());
 }
 
+FXC validation failure:
+c:\src\dawn\Shader@0x000002A61BF9B880(3,8-16): error X3000: syntax error: unexpected token 'float16_t'
+
diff --git a/test/tint/builtins/gen/literal/subgroupBroadcast/13f36c.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/subgroupBroadcast/13f36c.wgsl.expected.ir.dxc.hlsl
index c68d655..0c5b327 100644
--- a/test/tint/builtins/gen/literal/subgroupBroadcast/13f36c.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/subgroupBroadcast/13f36c.wgsl.expected.ir.dxc.hlsl
@@ -1,5 +1,5 @@
-SKIP: FAILED
 
+RWByteAddressBuffer prevent_dce : register(u0);
 vector<float16_t, 2> subgroupBroadcast_13f36c() {
   vector<float16_t, 2> res = WaveReadLaneAt((float16_t(1.0h)).xx, 1u);
   return res;
@@ -7,11 +7,6 @@
 
 [numthreads(1, 1, 1)]
 void compute_main() {
-  prevent_dce = subgroupBroadcast_13f36c();
+  prevent_dce.Store<vector<float16_t, 2> >(0u, subgroupBroadcast_13f36c());
 }
 
-DXC validation failure:
-hlsl.hlsl:8:3: error: use of undeclared identifier 'prevent_dce'
-  prevent_dce = subgroupBroadcast_13f36c();
-  ^
-
diff --git a/test/tint/builtins/gen/literal/subgroupBroadcast/13f36c.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/subgroupBroadcast/13f36c.wgsl.expected.ir.fxc.hlsl
index 7525ccb..80c1b35 100644
--- a/test/tint/builtins/gen/literal/subgroupBroadcast/13f36c.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/subgroupBroadcast/13f36c.wgsl.expected.ir.fxc.hlsl
@@ -1,5 +1,7 @@
 SKIP: FAILED
 
+
+RWByteAddressBuffer prevent_dce : register(u0);
 vector<float16_t, 2> subgroupBroadcast_13f36c() {
   vector<float16_t, 2> res = WaveReadLaneAt((float16_t(1.0h)).xx, 1u);
   return res;
@@ -7,6 +9,9 @@
 
 [numthreads(1, 1, 1)]
 void compute_main() {
-  prevent_dce = subgroupBroadcast_13f36c();
+  prevent_dce.Store<vector<float16_t, 2> >(0u, subgroupBroadcast_13f36c());
 }
 
+FXC validation failure:
+c:\src\dawn\Shader@0x0000027F401B01A0(3,8-16): error X3000: syntax error: unexpected token 'float16_t'
+
diff --git a/test/tint/builtins/gen/literal/subgroupBroadcast/1d79c7.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/subgroupBroadcast/1d79c7.wgsl.expected.ir.dxc.hlsl
index 2488a82..f7ca939 100644
--- a/test/tint/builtins/gen/literal/subgroupBroadcast/1d79c7.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/subgroupBroadcast/1d79c7.wgsl.expected.ir.dxc.hlsl
@@ -1,5 +1,5 @@
-SKIP: FAILED
 
+RWByteAddressBuffer prevent_dce : register(u0);
 int subgroupBroadcast_1d79c7() {
   int res = WaveReadLaneAt(1, 1u);
   return res;
@@ -7,11 +7,6 @@
 
 [numthreads(1, 1, 1)]
 void compute_main() {
-  prevent_dce = subgroupBroadcast_1d79c7();
+  prevent_dce.Store(0u, asuint(subgroupBroadcast_1d79c7()));
 }
 
-DXC validation failure:
-hlsl.hlsl:8:3: error: use of undeclared identifier 'prevent_dce'
-  prevent_dce = subgroupBroadcast_1d79c7();
-  ^
-
diff --git a/test/tint/builtins/gen/literal/subgroupBroadcast/1d79c7.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/subgroupBroadcast/1d79c7.wgsl.expected.ir.fxc.hlsl
index 6b6c714..466ded9 100644
--- a/test/tint/builtins/gen/literal/subgroupBroadcast/1d79c7.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/subgroupBroadcast/1d79c7.wgsl.expected.ir.fxc.hlsl
@@ -1,5 +1,7 @@
 SKIP: FAILED
 
+
+RWByteAddressBuffer prevent_dce : register(u0);
 int subgroupBroadcast_1d79c7() {
   int res = WaveReadLaneAt(1, 1u);
   return res;
@@ -7,6 +9,9 @@
 
 [numthreads(1, 1, 1)]
 void compute_main() {
-  prevent_dce = subgroupBroadcast_1d79c7();
+  prevent_dce.Store(0u, asuint(subgroupBroadcast_1d79c7()));
 }
 
+FXC validation failure:
+c:\src\dawn\Shader@0x000002BDCDFFB900(4,13-33): error X3004: undeclared identifier 'WaveReadLaneAt'
+
diff --git a/test/tint/builtins/gen/literal/subgroupBroadcast/279027.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/subgroupBroadcast/279027.wgsl.expected.ir.dxc.hlsl
index 7e88e75..ed7f18d 100644
--- a/test/tint/builtins/gen/literal/subgroupBroadcast/279027.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/subgroupBroadcast/279027.wgsl.expected.ir.dxc.hlsl
@@ -1,5 +1,5 @@
-SKIP: FAILED
 
+RWByteAddressBuffer prevent_dce : register(u0);
 uint4 subgroupBroadcast_279027() {
   uint4 res = WaveReadLaneAt((1u).xxxx, 1u);
   return res;
@@ -7,11 +7,6 @@
 
 [numthreads(1, 1, 1)]
 void compute_main() {
-  prevent_dce = subgroupBroadcast_279027();
+  prevent_dce.Store4(0u, subgroupBroadcast_279027());
 }
 
-DXC validation failure:
-hlsl.hlsl:8:3: error: use of undeclared identifier 'prevent_dce'
-  prevent_dce = subgroupBroadcast_279027();
-  ^
-
diff --git a/test/tint/builtins/gen/literal/subgroupBroadcast/279027.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/subgroupBroadcast/279027.wgsl.expected.ir.fxc.hlsl
index 12e139d..09d7058 100644
--- a/test/tint/builtins/gen/literal/subgroupBroadcast/279027.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/subgroupBroadcast/279027.wgsl.expected.ir.fxc.hlsl
@@ -1,5 +1,7 @@
 SKIP: FAILED
 
+
+RWByteAddressBuffer prevent_dce : register(u0);
 uint4 subgroupBroadcast_279027() {
   uint4 res = WaveReadLaneAt((1u).xxxx, 1u);
   return res;
@@ -7,6 +9,9 @@
 
 [numthreads(1, 1, 1)]
 void compute_main() {
-  prevent_dce = subgroupBroadcast_279027();
+  prevent_dce.Store4(0u, subgroupBroadcast_279027());
 }
 
+FXC validation failure:
+c:\src\dawn\Shader@0x000001B3A4DF7C30(4,15-43): error X3004: undeclared identifier 'WaveReadLaneAt'
+
diff --git a/test/tint/builtins/gen/literal/subgroupBroadcast/34fa3d.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/subgroupBroadcast/34fa3d.wgsl.expected.ir.dxc.hlsl
index a42dc90..8269f0f 100644
--- a/test/tint/builtins/gen/literal/subgroupBroadcast/34fa3d.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/subgroupBroadcast/34fa3d.wgsl.expected.ir.dxc.hlsl
@@ -1,5 +1,5 @@
-SKIP: FAILED
 
+RWByteAddressBuffer prevent_dce : register(u0);
 uint3 subgroupBroadcast_34fa3d() {
   uint3 res = WaveReadLaneAt((1u).xxx, 1u);
   return res;
@@ -7,11 +7,6 @@
 
 [numthreads(1, 1, 1)]
 void compute_main() {
-  prevent_dce = subgroupBroadcast_34fa3d();
+  prevent_dce.Store3(0u, subgroupBroadcast_34fa3d());
 }
 
-DXC validation failure:
-hlsl.hlsl:8:3: error: use of undeclared identifier 'prevent_dce'
-  prevent_dce = subgroupBroadcast_34fa3d();
-  ^
-
diff --git a/test/tint/builtins/gen/literal/subgroupBroadcast/34fa3d.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/subgroupBroadcast/34fa3d.wgsl.expected.ir.fxc.hlsl
index 7942e1d..986ee8e 100644
--- a/test/tint/builtins/gen/literal/subgroupBroadcast/34fa3d.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/subgroupBroadcast/34fa3d.wgsl.expected.ir.fxc.hlsl
@@ -1,5 +1,7 @@
 SKIP: FAILED
 
+
+RWByteAddressBuffer prevent_dce : register(u0);
 uint3 subgroupBroadcast_34fa3d() {
   uint3 res = WaveReadLaneAt((1u).xxx, 1u);
   return res;
@@ -7,6 +9,9 @@
 
 [numthreads(1, 1, 1)]
 void compute_main() {
-  prevent_dce = subgroupBroadcast_34fa3d();
+  prevent_dce.Store3(0u, subgroupBroadcast_34fa3d());
 }
 
+FXC validation failure:
+c:\src\dawn\Shader@0x0000021A19F73780(4,15-42): error X3004: undeclared identifier 'WaveReadLaneAt'
+
diff --git a/test/tint/builtins/gen/literal/subgroupBroadcast/3e6879.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/subgroupBroadcast/3e6879.wgsl.expected.ir.dxc.hlsl
index 8726ba5..01a78e8 100644
--- a/test/tint/builtins/gen/literal/subgroupBroadcast/3e6879.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/subgroupBroadcast/3e6879.wgsl.expected.ir.dxc.hlsl
@@ -1,5 +1,5 @@
-SKIP: FAILED
 
+RWByteAddressBuffer prevent_dce : register(u0);
 int2 subgroupBroadcast_3e6879() {
   int2 res = WaveReadLaneAt((1).xx, 1u);
   return res;
@@ -7,11 +7,6 @@
 
 [numthreads(1, 1, 1)]
 void compute_main() {
-  prevent_dce = subgroupBroadcast_3e6879();
+  prevent_dce.Store2(0u, asuint(subgroupBroadcast_3e6879()));
 }
 
-DXC validation failure:
-hlsl.hlsl:8:3: error: use of undeclared identifier 'prevent_dce'
-  prevent_dce = subgroupBroadcast_3e6879();
-  ^
-
diff --git a/test/tint/builtins/gen/literal/subgroupBroadcast/3e6879.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/subgroupBroadcast/3e6879.wgsl.expected.ir.fxc.hlsl
index 61a6bd9..4d1b1b4 100644
--- a/test/tint/builtins/gen/literal/subgroupBroadcast/3e6879.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/subgroupBroadcast/3e6879.wgsl.expected.ir.fxc.hlsl
@@ -1,5 +1,7 @@
 SKIP: FAILED
 
+
+RWByteAddressBuffer prevent_dce : register(u0);
 int2 subgroupBroadcast_3e6879() {
   int2 res = WaveReadLaneAt((1).xx, 1u);
   return res;
@@ -7,6 +9,9 @@
 
 [numthreads(1, 1, 1)]
 void compute_main() {
-  prevent_dce = subgroupBroadcast_3e6879();
+  prevent_dce.Store2(0u, asuint(subgroupBroadcast_3e6879()));
 }
 
+FXC validation failure:
+c:\src\dawn\Shader@0x000002191E2F3970(4,14-39): error X3004: undeclared identifier 'WaveReadLaneAt'
+
diff --git a/test/tint/builtins/gen/literal/subgroupBroadcast/41e5d7.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/subgroupBroadcast/41e5d7.wgsl.expected.ir.dxc.hlsl
index df1333b..07d3bef 100644
--- a/test/tint/builtins/gen/literal/subgroupBroadcast/41e5d7.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/subgroupBroadcast/41e5d7.wgsl.expected.ir.dxc.hlsl
@@ -1,5 +1,5 @@
-SKIP: FAILED
 
+RWByteAddressBuffer prevent_dce : register(u0);
 vector<float16_t, 3> subgroupBroadcast_41e5d7() {
   vector<float16_t, 3> res = WaveReadLaneAt((float16_t(1.0h)).xxx, 1u);
   return res;
@@ -7,11 +7,6 @@
 
 [numthreads(1, 1, 1)]
 void compute_main() {
-  prevent_dce = subgroupBroadcast_41e5d7();
+  prevent_dce.Store<vector<float16_t, 3> >(0u, subgroupBroadcast_41e5d7());
 }
 
-DXC validation failure:
-hlsl.hlsl:8:3: error: use of undeclared identifier 'prevent_dce'
-  prevent_dce = subgroupBroadcast_41e5d7();
-  ^
-
diff --git a/test/tint/builtins/gen/literal/subgroupBroadcast/41e5d7.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/subgroupBroadcast/41e5d7.wgsl.expected.ir.fxc.hlsl
index a74c8df..6e0653f 100644
--- a/test/tint/builtins/gen/literal/subgroupBroadcast/41e5d7.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/subgroupBroadcast/41e5d7.wgsl.expected.ir.fxc.hlsl
@@ -1,5 +1,7 @@
 SKIP: FAILED
 
+
+RWByteAddressBuffer prevent_dce : register(u0);
 vector<float16_t, 3> subgroupBroadcast_41e5d7() {
   vector<float16_t, 3> res = WaveReadLaneAt((float16_t(1.0h)).xxx, 1u);
   return res;
@@ -7,6 +9,9 @@
 
 [numthreads(1, 1, 1)]
 void compute_main() {
-  prevent_dce = subgroupBroadcast_41e5d7();
+  prevent_dce.Store<vector<float16_t, 3> >(0u, subgroupBroadcast_41e5d7());
 }
 
+FXC validation failure:
+c:\src\dawn\Shader@0x000002228D210090(3,8-16): error X3000: syntax error: unexpected token 'float16_t'
+
diff --git a/test/tint/builtins/gen/literal/subgroupBroadcast/4a4334.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/subgroupBroadcast/4a4334.wgsl.expected.ir.dxc.hlsl
index 8ffebdd..265729a 100644
--- a/test/tint/builtins/gen/literal/subgroupBroadcast/4a4334.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/subgroupBroadcast/4a4334.wgsl.expected.ir.dxc.hlsl
@@ -1,5 +1,5 @@
-SKIP: FAILED
 
+RWByteAddressBuffer prevent_dce : register(u0);
 uint2 subgroupBroadcast_4a4334() {
   uint2 res = WaveReadLaneAt((1u).xx, 1u);
   return res;
@@ -7,11 +7,6 @@
 
 [numthreads(1, 1, 1)]
 void compute_main() {
-  prevent_dce = subgroupBroadcast_4a4334();
+  prevent_dce.Store2(0u, subgroupBroadcast_4a4334());
 }
 
-DXC validation failure:
-hlsl.hlsl:8:3: error: use of undeclared identifier 'prevent_dce'
-  prevent_dce = subgroupBroadcast_4a4334();
-  ^
-
diff --git a/test/tint/builtins/gen/literal/subgroupBroadcast/4a4334.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/subgroupBroadcast/4a4334.wgsl.expected.ir.fxc.hlsl
index ccf27a2..990db16 100644
--- a/test/tint/builtins/gen/literal/subgroupBroadcast/4a4334.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/subgroupBroadcast/4a4334.wgsl.expected.ir.fxc.hlsl
@@ -1,5 +1,7 @@
 SKIP: FAILED
 
+
+RWByteAddressBuffer prevent_dce : register(u0);
 uint2 subgroupBroadcast_4a4334() {
   uint2 res = WaveReadLaneAt((1u).xx, 1u);
   return res;
@@ -7,6 +9,9 @@
 
 [numthreads(1, 1, 1)]
 void compute_main() {
-  prevent_dce = subgroupBroadcast_4a4334();
+  prevent_dce.Store2(0u, subgroupBroadcast_4a4334());
 }
 
+FXC validation failure:
+c:\src\dawn\Shader@0x0000029089CAF000(4,15-41): error X3004: undeclared identifier 'WaveReadLaneAt'
+
diff --git a/test/tint/builtins/gen/literal/subgroupBroadcast/5196c8.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/subgroupBroadcast/5196c8.wgsl.expected.ir.dxc.hlsl
index 98d96c2..c8b9822 100644
--- a/test/tint/builtins/gen/literal/subgroupBroadcast/5196c8.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/subgroupBroadcast/5196c8.wgsl.expected.ir.dxc.hlsl
@@ -1,5 +1,5 @@
-SKIP: FAILED
 
+RWByteAddressBuffer prevent_dce : register(u0);
 float2 subgroupBroadcast_5196c8() {
   float2 res = WaveReadLaneAt((1.0f).xx, 1u);
   return res;
@@ -7,11 +7,6 @@
 
 [numthreads(1, 1, 1)]
 void compute_main() {
-  prevent_dce = subgroupBroadcast_5196c8();
+  prevent_dce.Store2(0u, asuint(subgroupBroadcast_5196c8()));
 }
 
-DXC validation failure:
-hlsl.hlsl:8:3: error: use of undeclared identifier 'prevent_dce'
-  prevent_dce = subgroupBroadcast_5196c8();
-  ^
-
diff --git a/test/tint/builtins/gen/literal/subgroupBroadcast/5196c8.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/subgroupBroadcast/5196c8.wgsl.expected.ir.fxc.hlsl
index 05b0dda..6ed65e2 100644
--- a/test/tint/builtins/gen/literal/subgroupBroadcast/5196c8.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/subgroupBroadcast/5196c8.wgsl.expected.ir.fxc.hlsl
@@ -1,5 +1,7 @@
 SKIP: FAILED
 
+
+RWByteAddressBuffer prevent_dce : register(u0);
 float2 subgroupBroadcast_5196c8() {
   float2 res = WaveReadLaneAt((1.0f).xx, 1u);
   return res;
@@ -7,6 +9,9 @@
 
 [numthreads(1, 1, 1)]
 void compute_main() {
-  prevent_dce = subgroupBroadcast_5196c8();
+  prevent_dce.Store2(0u, asuint(subgroupBroadcast_5196c8()));
 }
 
+FXC validation failure:
+c:\src\dawn\Shader@0x00000143556D38F0(4,16-44): error X3004: undeclared identifier 'WaveReadLaneAt'
+
diff --git a/test/tint/builtins/gen/literal/subgroupBroadcast/912ff5.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/subgroupBroadcast/912ff5.wgsl.expected.ir.dxc.hlsl
index 9ad3f0b..64ceb3a 100644
--- a/test/tint/builtins/gen/literal/subgroupBroadcast/912ff5.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/subgroupBroadcast/912ff5.wgsl.expected.ir.dxc.hlsl
@@ -1,5 +1,5 @@
-SKIP: FAILED
 
+RWByteAddressBuffer prevent_dce : register(u0);
 float3 subgroupBroadcast_912ff5() {
   float3 res = WaveReadLaneAt((1.0f).xxx, 1u);
   return res;
@@ -7,11 +7,6 @@
 
 [numthreads(1, 1, 1)]
 void compute_main() {
-  prevent_dce = subgroupBroadcast_912ff5();
+  prevent_dce.Store3(0u, asuint(subgroupBroadcast_912ff5()));
 }
 
-DXC validation failure:
-hlsl.hlsl:8:3: error: use of undeclared identifier 'prevent_dce'
-  prevent_dce = subgroupBroadcast_912ff5();
-  ^
-
diff --git a/test/tint/builtins/gen/literal/subgroupBroadcast/912ff5.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/subgroupBroadcast/912ff5.wgsl.expected.ir.fxc.hlsl
index d3fb84e..07dfb8f 100644
--- a/test/tint/builtins/gen/literal/subgroupBroadcast/912ff5.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/subgroupBroadcast/912ff5.wgsl.expected.ir.fxc.hlsl
@@ -1,5 +1,7 @@
 SKIP: FAILED
 
+
+RWByteAddressBuffer prevent_dce : register(u0);
 float3 subgroupBroadcast_912ff5() {
   float3 res = WaveReadLaneAt((1.0f).xxx, 1u);
   return res;
@@ -7,6 +9,9 @@
 
 [numthreads(1, 1, 1)]
 void compute_main() {
-  prevent_dce = subgroupBroadcast_912ff5();
+  prevent_dce.Store3(0u, asuint(subgroupBroadcast_912ff5()));
 }
 
+FXC validation failure:
+c:\src\dawn\Shader@0x000001CC3974D090(4,16-45): error X3004: undeclared identifier 'WaveReadLaneAt'
+
diff --git a/test/tint/builtins/gen/literal/subgroupBroadcast/b7e93b.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/subgroupBroadcast/b7e93b.wgsl.expected.ir.dxc.hlsl
index a4b794d..8ded22c 100644
--- a/test/tint/builtins/gen/literal/subgroupBroadcast/b7e93b.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/subgroupBroadcast/b7e93b.wgsl.expected.ir.dxc.hlsl
@@ -1,5 +1,5 @@
-SKIP: FAILED
 
+RWByteAddressBuffer prevent_dce : register(u0);
 float4 subgroupBroadcast_b7e93b() {
   float4 res = WaveReadLaneAt((1.0f).xxxx, 1u);
   return res;
@@ -7,11 +7,6 @@
 
 [numthreads(1, 1, 1)]
 void compute_main() {
-  prevent_dce = subgroupBroadcast_b7e93b();
+  prevent_dce.Store4(0u, asuint(subgroupBroadcast_b7e93b()));
 }
 
-DXC validation failure:
-hlsl.hlsl:8:3: error: use of undeclared identifier 'prevent_dce'
-  prevent_dce = subgroupBroadcast_b7e93b();
-  ^
-
diff --git a/test/tint/builtins/gen/literal/subgroupBroadcast/b7e93b.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/subgroupBroadcast/b7e93b.wgsl.expected.ir.fxc.hlsl
index 5771249..ddc8818 100644
--- a/test/tint/builtins/gen/literal/subgroupBroadcast/b7e93b.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/subgroupBroadcast/b7e93b.wgsl.expected.ir.fxc.hlsl
@@ -1,5 +1,7 @@
 SKIP: FAILED
 
+
+RWByteAddressBuffer prevent_dce : register(u0);
 float4 subgroupBroadcast_b7e93b() {
   float4 res = WaveReadLaneAt((1.0f).xxxx, 1u);
   return res;
@@ -7,6 +9,9 @@
 
 [numthreads(1, 1, 1)]
 void compute_main() {
-  prevent_dce = subgroupBroadcast_b7e93b();
+  prevent_dce.Store4(0u, asuint(subgroupBroadcast_b7e93b()));
 }
 
+FXC validation failure:
+c:\src\dawn\Shader@0x000001636E1CCD60(4,16-46): error X3004: undeclared identifier 'WaveReadLaneAt'
+
diff --git a/test/tint/builtins/gen/literal/subgroupBroadcast/c36fe1.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/subgroupBroadcast/c36fe1.wgsl.expected.ir.dxc.hlsl
index 4dc4cc1..f68bf9d 100644
--- a/test/tint/builtins/gen/literal/subgroupBroadcast/c36fe1.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/subgroupBroadcast/c36fe1.wgsl.expected.ir.dxc.hlsl
@@ -1,5 +1,5 @@
-SKIP: FAILED
 
+RWByteAddressBuffer prevent_dce : register(u0);
 uint subgroupBroadcast_c36fe1() {
   uint res = WaveReadLaneAt(1u, 1u);
   return res;
@@ -7,11 +7,6 @@
 
 [numthreads(1, 1, 1)]
 void compute_main() {
-  prevent_dce = subgroupBroadcast_c36fe1();
+  prevent_dce.Store(0u, subgroupBroadcast_c36fe1());
 }
 
-DXC validation failure:
-hlsl.hlsl:8:3: error: use of undeclared identifier 'prevent_dce'
-  prevent_dce = subgroupBroadcast_c36fe1();
-  ^
-
diff --git a/test/tint/builtins/gen/literal/subgroupBroadcast/c36fe1.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/subgroupBroadcast/c36fe1.wgsl.expected.ir.fxc.hlsl
index 437b1f7..b56fa10 100644
--- a/test/tint/builtins/gen/literal/subgroupBroadcast/c36fe1.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/subgroupBroadcast/c36fe1.wgsl.expected.ir.fxc.hlsl
@@ -1,5 +1,7 @@
 SKIP: FAILED
 
+
+RWByteAddressBuffer prevent_dce : register(u0);
 uint subgroupBroadcast_c36fe1() {
   uint res = WaveReadLaneAt(1u, 1u);
   return res;
@@ -7,6 +9,9 @@
 
 [numthreads(1, 1, 1)]
 void compute_main() {
-  prevent_dce = subgroupBroadcast_c36fe1();
+  prevent_dce.Store(0u, subgroupBroadcast_c36fe1());
 }
 
+FXC validation failure:
+c:\src\dawn\Shader@0x000001D02F3403E0(4,14-35): error X3004: undeclared identifier 'WaveReadLaneAt'
+
diff --git a/test/tint/builtins/gen/literal/subgroupBroadcast/e275c8.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/subgroupBroadcast/e275c8.wgsl.expected.ir.dxc.hlsl
index 058ad35..2688f25 100644
--- a/test/tint/builtins/gen/literal/subgroupBroadcast/e275c8.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/subgroupBroadcast/e275c8.wgsl.expected.ir.dxc.hlsl
@@ -1,5 +1,5 @@
-SKIP: FAILED
 
+RWByteAddressBuffer prevent_dce : register(u0);
 int3 subgroupBroadcast_e275c8() {
   int3 res = WaveReadLaneAt((1).xxx, 1u);
   return res;
@@ -7,11 +7,6 @@
 
 [numthreads(1, 1, 1)]
 void compute_main() {
-  prevent_dce = subgroupBroadcast_e275c8();
+  prevent_dce.Store3(0u, asuint(subgroupBroadcast_e275c8()));
 }
 
-DXC validation failure:
-hlsl.hlsl:8:3: error: use of undeclared identifier 'prevent_dce'
-  prevent_dce = subgroupBroadcast_e275c8();
-  ^
-
diff --git a/test/tint/builtins/gen/literal/subgroupBroadcast/e275c8.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/subgroupBroadcast/e275c8.wgsl.expected.ir.fxc.hlsl
index 6ec8a5e..d0d2ec5 100644
--- a/test/tint/builtins/gen/literal/subgroupBroadcast/e275c8.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/subgroupBroadcast/e275c8.wgsl.expected.ir.fxc.hlsl
@@ -1,5 +1,7 @@
 SKIP: FAILED
 
+
+RWByteAddressBuffer prevent_dce : register(u0);
 int3 subgroupBroadcast_e275c8() {
   int3 res = WaveReadLaneAt((1).xxx, 1u);
   return res;
@@ -7,6 +9,9 @@
 
 [numthreads(1, 1, 1)]
 void compute_main() {
-  prevent_dce = subgroupBroadcast_e275c8();
+  prevent_dce.Store3(0u, asuint(subgroupBroadcast_e275c8()));
 }
 
+FXC validation failure:
+c:\src\dawn\Shader@0x00000252C885F2D0(4,14-40): error X3004: undeclared identifier 'WaveReadLaneAt'
+
diff --git a/test/tint/builtins/gen/literal/subgroupBroadcast/f637f9.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/subgroupBroadcast/f637f9.wgsl.expected.ir.dxc.hlsl
index d07b7a8..528079b 100644
--- a/test/tint/builtins/gen/literal/subgroupBroadcast/f637f9.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/subgroupBroadcast/f637f9.wgsl.expected.ir.dxc.hlsl
@@ -1,5 +1,5 @@
-SKIP: FAILED
 
+RWByteAddressBuffer prevent_dce : register(u0);
 int4 subgroupBroadcast_f637f9() {
   int4 res = WaveReadLaneAt((1).xxxx, 1u);
   return res;
@@ -7,11 +7,6 @@
 
 [numthreads(1, 1, 1)]
 void compute_main() {
-  prevent_dce = subgroupBroadcast_f637f9();
+  prevent_dce.Store4(0u, asuint(subgroupBroadcast_f637f9()));
 }
 
-DXC validation failure:
-hlsl.hlsl:8:3: error: use of undeclared identifier 'prevent_dce'
-  prevent_dce = subgroupBroadcast_f637f9();
-  ^
-
diff --git a/test/tint/builtins/gen/literal/subgroupBroadcast/f637f9.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/subgroupBroadcast/f637f9.wgsl.expected.ir.fxc.hlsl
index 3529719..7ab4a72 100644
--- a/test/tint/builtins/gen/literal/subgroupBroadcast/f637f9.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/subgroupBroadcast/f637f9.wgsl.expected.ir.fxc.hlsl
@@ -1,5 +1,7 @@
 SKIP: FAILED
 
+
+RWByteAddressBuffer prevent_dce : register(u0);
 int4 subgroupBroadcast_f637f9() {
   int4 res = WaveReadLaneAt((1).xxxx, 1u);
   return res;
@@ -7,6 +9,9 @@
 
 [numthreads(1, 1, 1)]
 void compute_main() {
-  prevent_dce = subgroupBroadcast_f637f9();
+  prevent_dce.Store4(0u, asuint(subgroupBroadcast_f637f9()));
 }
 
+FXC validation failure:
+c:\src\dawn\Shader@0x000001C3208DCB30(4,14-41): error X3004: undeclared identifier 'WaveReadLaneAt'
+
diff --git a/test/tint/builtins/gen/literal/tan/244e2a.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/tan/244e2a.wgsl.expected.ir.dxc.hlsl
index 0ba40c6..807c89d 100644
--- a/test/tint/builtins/gen/literal/tan/244e2a.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/tan/244e2a.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,42 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  float4 prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation float4 VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+float4 tan_244e2a() {
+  float4 res = (1.55740773677825927734f).xxxx;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store4(0u, asuint(tan_244e2a()));
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store4(0u, asuint(tan_244e2a()));
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = tan_244e2a();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
diff --git a/test/tint/builtins/gen/literal/tan/244e2a.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/tan/244e2a.wgsl.expected.ir.fxc.hlsl
index 0ba40c6..807c89d 100644
--- a/test/tint/builtins/gen/literal/tan/244e2a.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/tan/244e2a.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,42 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  float4 prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation float4 VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+float4 tan_244e2a() {
+  float4 res = (1.55740773677825927734f).xxxx;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store4(0u, asuint(tan_244e2a()));
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store4(0u, asuint(tan_244e2a()));
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = tan_244e2a();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
diff --git a/test/tint/builtins/gen/literal/tan/2f030e.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/tan/2f030e.wgsl.expected.ir.dxc.hlsl
index 0ba40c6..e260962f1 100644
--- a/test/tint/builtins/gen/literal/tan/2f030e.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/tan/2f030e.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,42 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  float prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation float VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+float tan_2f030e() {
+  float res = 1.55740773677825927734f;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store(0u, asuint(tan_2f030e()));
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store(0u, asuint(tan_2f030e()));
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = tan_2f030e();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
diff --git a/test/tint/builtins/gen/literal/tan/2f030e.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/tan/2f030e.wgsl.expected.ir.fxc.hlsl
index 0ba40c6..e260962f1 100644
--- a/test/tint/builtins/gen/literal/tan/2f030e.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/tan/2f030e.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,42 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  float prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation float VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+float tan_2f030e() {
+  float res = 1.55740773677825927734f;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store(0u, asuint(tan_2f030e()));
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store(0u, asuint(tan_2f030e()));
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = tan_2f030e();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
diff --git a/test/tint/builtins/gen/literal/tan/311400.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/tan/311400.wgsl.expected.ir.dxc.hlsl
index 0ba40c6..ee5f8ce 100644
--- a/test/tint/builtins/gen/literal/tan/311400.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/tan/311400.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,36 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+void tan_311400() {
+  float res = 1.55740773677825927734f;
+}
+
+void fragment_main() {
+  tan_311400();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  tan_311400();
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tan_311400();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  vertex_main_outputs v_2 = {v_1.pos};
+  return v_2;
+}
+
diff --git a/test/tint/builtins/gen/literal/tan/311400.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/tan/311400.wgsl.expected.ir.fxc.hlsl
index 0ba40c6..ee5f8ce 100644
--- a/test/tint/builtins/gen/literal/tan/311400.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/tan/311400.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,36 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+void tan_311400() {
+  float res = 1.55740773677825927734f;
+}
+
+void fragment_main() {
+  tan_311400();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  tan_311400();
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tan_311400();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  vertex_main_outputs v_2 = {v_1.pos};
+  return v_2;
+}
+
diff --git a/test/tint/builtins/gen/literal/tan/539e54.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/tan/539e54.wgsl.expected.ir.dxc.hlsl
index 0ba40c6..f9fe681 100644
--- a/test/tint/builtins/gen/literal/tan/539e54.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/tan/539e54.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,42 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  vector<float16_t, 4> prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation vector<float16_t, 4> VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+vector<float16_t, 4> tan_539e54() {
+  vector<float16_t, 4> res = (float16_t(1.556640625h)).xxxx;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store<vector<float16_t, 4> >(0u, tan_539e54());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store<vector<float16_t, 4> >(0u, tan_539e54());
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = tan_539e54();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
diff --git a/test/tint/builtins/gen/literal/tan/539e54.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/tan/539e54.wgsl.expected.ir.fxc.hlsl
index 0ba40c6..1eac54e 100644
--- a/test/tint/builtins/gen/literal/tan/539e54.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/tan/539e54.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,47 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct VertexOutput {
+  float4 pos;
+  vector<float16_t, 4> prevent_dce;
+};
+
+struct vertex_main_outputs {
+  nointerpolation vector<float16_t, 4> VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+vector<float16_t, 4> tan_539e54() {
+  vector<float16_t, 4> res = (float16_t(1.556640625h)).xxxx;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store<vector<float16_t, 4> >(0u, tan_539e54());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store<vector<float16_t, 4> >(0u, tan_539e54());
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = tan_539e54();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
+FXC validation failure:
+c:\src\dawn\Shader@0x000001E598B76410(3,10-18): error X3000: syntax error: unexpected token 'float16_t'
+
diff --git a/test/tint/builtins/gen/literal/tan/7be368.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/tan/7be368.wgsl.expected.ir.dxc.hlsl
index 0ba40c6..7bcbc00 100644
--- a/test/tint/builtins/gen/literal/tan/7be368.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/tan/7be368.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,36 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+void tan_7be368() {
+  float2 res = (1.55740773677825927734f).xx;
+}
+
+void fragment_main() {
+  tan_7be368();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  tan_7be368();
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tan_7be368();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  vertex_main_outputs v_2 = {v_1.pos};
+  return v_2;
+}
+
diff --git a/test/tint/builtins/gen/literal/tan/7be368.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/tan/7be368.wgsl.expected.ir.fxc.hlsl
index 0ba40c6..7bcbc00 100644
--- a/test/tint/builtins/gen/literal/tan/7be368.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/tan/7be368.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,36 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+void tan_7be368() {
+  float2 res = (1.55740773677825927734f).xx;
+}
+
+void fragment_main() {
+  tan_7be368();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  tan_7be368();
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tan_7be368();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  vertex_main_outputs v_2 = {v_1.pos};
+  return v_2;
+}
+
diff --git a/test/tint/builtins/gen/literal/tan/7ea104.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/tan/7ea104.wgsl.expected.ir.dxc.hlsl
index 0ba40c6..585c70e 100644
--- a/test/tint/builtins/gen/literal/tan/7ea104.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/tan/7ea104.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,42 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  float3 prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation float3 VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+float3 tan_7ea104() {
+  float3 res = (1.55740773677825927734f).xxx;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store3(0u, asuint(tan_7ea104()));
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store3(0u, asuint(tan_7ea104()));
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = tan_7ea104();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
diff --git a/test/tint/builtins/gen/literal/tan/7ea104.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/tan/7ea104.wgsl.expected.ir.fxc.hlsl
index 0ba40c6..585c70e 100644
--- a/test/tint/builtins/gen/literal/tan/7ea104.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/tan/7ea104.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,42 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  float3 prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation float3 VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+float3 tan_7ea104() {
+  float3 res = (1.55740773677825927734f).xxx;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store3(0u, asuint(tan_7ea104()));
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store3(0u, asuint(tan_7ea104()));
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = tan_7ea104();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
diff --git a/test/tint/builtins/gen/literal/tan/8ce3e9.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/tan/8ce3e9.wgsl.expected.ir.dxc.hlsl
index 0ba40c6..1c69fd8 100644
--- a/test/tint/builtins/gen/literal/tan/8ce3e9.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/tan/8ce3e9.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,42 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  float2 prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation float2 VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+float2 tan_8ce3e9() {
+  float2 res = (1.55740773677825927734f).xx;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store2(0u, asuint(tan_8ce3e9()));
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store2(0u, asuint(tan_8ce3e9()));
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = tan_8ce3e9();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
diff --git a/test/tint/builtins/gen/literal/tan/8ce3e9.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/tan/8ce3e9.wgsl.expected.ir.fxc.hlsl
index 0ba40c6..1c69fd8 100644
--- a/test/tint/builtins/gen/literal/tan/8ce3e9.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/tan/8ce3e9.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,42 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  float2 prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation float2 VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+float2 tan_8ce3e9() {
+  float2 res = (1.55740773677825927734f).xx;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store2(0u, asuint(tan_8ce3e9()));
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store2(0u, asuint(tan_8ce3e9()));
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = tan_8ce3e9();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
diff --git a/test/tint/builtins/gen/literal/tan/9f7c9c.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/tan/9f7c9c.wgsl.expected.ir.dxc.hlsl
index 0ba40c6..b7c4688 100644
--- a/test/tint/builtins/gen/literal/tan/9f7c9c.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/tan/9f7c9c.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,42 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  vector<float16_t, 2> prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation vector<float16_t, 2> VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+vector<float16_t, 2> tan_9f7c9c() {
+  vector<float16_t, 2> res = (float16_t(1.556640625h)).xx;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store<vector<float16_t, 2> >(0u, tan_9f7c9c());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store<vector<float16_t, 2> >(0u, tan_9f7c9c());
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = tan_9f7c9c();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
diff --git a/test/tint/builtins/gen/literal/tan/9f7c9c.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/tan/9f7c9c.wgsl.expected.ir.fxc.hlsl
index 0ba40c6..77c0833 100644
--- a/test/tint/builtins/gen/literal/tan/9f7c9c.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/tan/9f7c9c.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,47 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct VertexOutput {
+  float4 pos;
+  vector<float16_t, 2> prevent_dce;
+};
+
+struct vertex_main_outputs {
+  nointerpolation vector<float16_t, 2> VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+vector<float16_t, 2> tan_9f7c9c() {
+  vector<float16_t, 2> res = (float16_t(1.556640625h)).xx;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store<vector<float16_t, 2> >(0u, tan_9f7c9c());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store<vector<float16_t, 2> >(0u, tan_9f7c9c());
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = tan_9f7c9c();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
+FXC validation failure:
+c:\src\dawn\Shader@0x0000024155523920(3,10-18): error X3000: syntax error: unexpected token 'float16_t'
+
diff --git a/test/tint/builtins/gen/literal/tan/a0966f.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/tan/a0966f.wgsl.expected.ir.dxc.hlsl
index 0ba40c6..20a77bd 100644
--- a/test/tint/builtins/gen/literal/tan/a0966f.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/tan/a0966f.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,36 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+void tan_a0966f() {
+  float4 res = (1.55740773677825927734f).xxxx;
+}
+
+void fragment_main() {
+  tan_a0966f();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  tan_a0966f();
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tan_a0966f();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  vertex_main_outputs v_2 = {v_1.pos};
+  return v_2;
+}
+
diff --git a/test/tint/builtins/gen/literal/tan/a0966f.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/tan/a0966f.wgsl.expected.ir.fxc.hlsl
index 0ba40c6..20a77bd 100644
--- a/test/tint/builtins/gen/literal/tan/a0966f.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/tan/a0966f.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,36 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+void tan_a0966f() {
+  float4 res = (1.55740773677825927734f).xxxx;
+}
+
+void fragment_main() {
+  tan_a0966f();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  tan_a0966f();
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tan_a0966f();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  vertex_main_outputs v_2 = {v_1.pos};
+  return v_2;
+}
+
diff --git a/test/tint/builtins/gen/literal/tan/ae26ae.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/tan/ae26ae.wgsl.expected.ir.dxc.hlsl
index 0ba40c6..fa99804 100644
--- a/test/tint/builtins/gen/literal/tan/ae26ae.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/tan/ae26ae.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,36 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+void tan_ae26ae() {
+  float3 res = (1.55740773677825927734f).xxx;
+}
+
+void fragment_main() {
+  tan_ae26ae();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  tan_ae26ae();
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tan_ae26ae();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  vertex_main_outputs v_2 = {v_1.pos};
+  return v_2;
+}
+
diff --git a/test/tint/builtins/gen/literal/tan/ae26ae.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/tan/ae26ae.wgsl.expected.ir.fxc.hlsl
index 0ba40c6..fa99804 100644
--- a/test/tint/builtins/gen/literal/tan/ae26ae.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/tan/ae26ae.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,36 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+void tan_ae26ae() {
+  float3 res = (1.55740773677825927734f).xxx;
+}
+
+void fragment_main() {
+  tan_ae26ae();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  tan_ae26ae();
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tan_ae26ae();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  vertex_main_outputs v_2 = {v_1.pos};
+  return v_2;
+}
+
diff --git a/test/tint/builtins/gen/literal/tan/d4d491.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/tan/d4d491.wgsl.expected.ir.dxc.hlsl
index 0ba40c6..1d74118 100644
--- a/test/tint/builtins/gen/literal/tan/d4d491.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/tan/d4d491.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,42 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  float16_t prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation float16_t VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+float16_t tan_d4d491() {
+  float16_t res = float16_t(1.556640625h);
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store<float16_t>(0u, tan_d4d491());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store<float16_t>(0u, tan_d4d491());
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = tan_d4d491();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
diff --git a/test/tint/builtins/gen/literal/tan/d4d491.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/tan/d4d491.wgsl.expected.ir.fxc.hlsl
index 0ba40c6..df2c327 100644
--- a/test/tint/builtins/gen/literal/tan/d4d491.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/tan/d4d491.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,47 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct VertexOutput {
+  float4 pos;
+  float16_t prevent_dce;
+};
+
+struct vertex_main_outputs {
+  nointerpolation float16_t VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+float16_t tan_d4d491() {
+  float16_t res = float16_t(1.556640625h);
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store<float16_t>(0u, tan_d4d491());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store<float16_t>(0u, tan_d4d491());
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = tan_d4d491();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
+FXC validation failure:
+c:\src\dawn\Shader@0x0000026CF8D7C010(3,3-11): error X3000: unrecognized identifier 'float16_t'
+
diff --git a/test/tint/builtins/gen/literal/tan/db0456.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/tan/db0456.wgsl.expected.ir.dxc.hlsl
index 0ba40c6..5a8d43d 100644
--- a/test/tint/builtins/gen/literal/tan/db0456.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/tan/db0456.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,42 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  vector<float16_t, 3> prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation vector<float16_t, 3> VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+vector<float16_t, 3> tan_db0456() {
+  vector<float16_t, 3> res = (float16_t(1.556640625h)).xxx;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store<vector<float16_t, 3> >(0u, tan_db0456());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store<vector<float16_t, 3> >(0u, tan_db0456());
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = tan_db0456();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
diff --git a/test/tint/builtins/gen/literal/tan/db0456.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/tan/db0456.wgsl.expected.ir.fxc.hlsl
index 0ba40c6..72d1324 100644
--- a/test/tint/builtins/gen/literal/tan/db0456.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/tan/db0456.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,47 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct VertexOutput {
+  float4 pos;
+  vector<float16_t, 3> prevent_dce;
+};
+
+struct vertex_main_outputs {
+  nointerpolation vector<float16_t, 3> VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+vector<float16_t, 3> tan_db0456() {
+  vector<float16_t, 3> res = (float16_t(1.556640625h)).xxx;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store<vector<float16_t, 3> >(0u, tan_db0456());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store<vector<float16_t, 3> >(0u, tan_db0456());
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = tan_db0456();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
+FXC validation failure:
+c:\src\dawn\Shader@0x000002F31282D760(3,10-18): error X3000: syntax error: unexpected token 'float16_t'
+
diff --git a/test/tint/builtins/gen/literal/tanh/06a4fe.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/tanh/06a4fe.wgsl.expected.ir.dxc.hlsl
index 0ba40c6..feca6cf 100644
--- a/test/tint/builtins/gen/literal/tanh/06a4fe.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/tanh/06a4fe.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,42 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  vector<float16_t, 3> prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation vector<float16_t, 3> VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+vector<float16_t, 3> tanh_06a4fe() {
+  vector<float16_t, 3> res = (float16_t(0.76123046875h)).xxx;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store<vector<float16_t, 3> >(0u, tanh_06a4fe());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store<vector<float16_t, 3> >(0u, tanh_06a4fe());
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = tanh_06a4fe();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
diff --git a/test/tint/builtins/gen/literal/tanh/06a4fe.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/tanh/06a4fe.wgsl.expected.ir.fxc.hlsl
index 0ba40c6..aba4e73 100644
--- a/test/tint/builtins/gen/literal/tanh/06a4fe.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/tanh/06a4fe.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,47 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct VertexOutput {
+  float4 pos;
+  vector<float16_t, 3> prevent_dce;
+};
+
+struct vertex_main_outputs {
+  nointerpolation vector<float16_t, 3> VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+vector<float16_t, 3> tanh_06a4fe() {
+  vector<float16_t, 3> res = (float16_t(0.76123046875h)).xxx;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store<vector<float16_t, 3> >(0u, tanh_06a4fe());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store<vector<float16_t, 3> >(0u, tanh_06a4fe());
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = tanh_06a4fe();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
+FXC validation failure:
+c:\src\dawn\Shader@0x000001CE3C5F6860(3,10-18): error X3000: syntax error: unexpected token 'float16_t'
+
diff --git a/test/tint/builtins/gen/literal/tanh/313aa1.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/tanh/313aa1.wgsl.expected.ir.dxc.hlsl
index 0ba40c6..fc692ad 100644
--- a/test/tint/builtins/gen/literal/tanh/313aa1.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/tanh/313aa1.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,36 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+void tanh_313aa1() {
+  float res = 0.76159417629241943359f;
+}
+
+void fragment_main() {
+  tanh_313aa1();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  tanh_313aa1();
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tanh_313aa1();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  vertex_main_outputs v_2 = {v_1.pos};
+  return v_2;
+}
+
diff --git a/test/tint/builtins/gen/literal/tanh/313aa1.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/tanh/313aa1.wgsl.expected.ir.fxc.hlsl
index 0ba40c6..fc692ad 100644
--- a/test/tint/builtins/gen/literal/tanh/313aa1.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/tanh/313aa1.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,36 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+void tanh_313aa1() {
+  float res = 0.76159417629241943359f;
+}
+
+void fragment_main() {
+  tanh_313aa1();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  tanh_313aa1();
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tanh_313aa1();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  vertex_main_outputs v_2 = {v_1.pos};
+  return v_2;
+}
+
diff --git a/test/tint/builtins/gen/literal/tanh/5663c5.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/tanh/5663c5.wgsl.expected.ir.dxc.hlsl
index 0ba40c6..840612f 100644
--- a/test/tint/builtins/gen/literal/tanh/5663c5.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/tanh/5663c5.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,42 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  float4 prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation float4 VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+float4 tanh_5663c5() {
+  float4 res = (0.76159417629241943359f).xxxx;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store4(0u, asuint(tanh_5663c5()));
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store4(0u, asuint(tanh_5663c5()));
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = tanh_5663c5();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
diff --git a/test/tint/builtins/gen/literal/tanh/5663c5.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/tanh/5663c5.wgsl.expected.ir.fxc.hlsl
index 0ba40c6..840612f 100644
--- a/test/tint/builtins/gen/literal/tanh/5663c5.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/tanh/5663c5.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,42 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  float4 prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation float4 VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+float4 tanh_5663c5() {
+  float4 res = (0.76159417629241943359f).xxxx;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store4(0u, asuint(tanh_5663c5()));
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store4(0u, asuint(tanh_5663c5()));
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = tanh_5663c5();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
diff --git a/test/tint/builtins/gen/literal/tanh/5724b3.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/tanh/5724b3.wgsl.expected.ir.dxc.hlsl
index 0ba40c6..3db8b21 100644
--- a/test/tint/builtins/gen/literal/tanh/5724b3.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/tanh/5724b3.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,42 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  float2 prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation float2 VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+float2 tanh_5724b3() {
+  float2 res = (0.76159417629241943359f).xx;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store2(0u, asuint(tanh_5724b3()));
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store2(0u, asuint(tanh_5724b3()));
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = tanh_5724b3();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
diff --git a/test/tint/builtins/gen/literal/tanh/5724b3.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/tanh/5724b3.wgsl.expected.ir.fxc.hlsl
index 0ba40c6..3db8b21 100644
--- a/test/tint/builtins/gen/literal/tanh/5724b3.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/tanh/5724b3.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,42 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  float2 prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation float2 VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+float2 tanh_5724b3() {
+  float2 res = (0.76159417629241943359f).xx;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store2(0u, asuint(tanh_5724b3()));
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store2(0u, asuint(tanh_5724b3()));
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = tanh_5724b3();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
diff --git a/test/tint/builtins/gen/literal/tanh/5b19af.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/tanh/5b19af.wgsl.expected.ir.dxc.hlsl
index 0ba40c6..f6398ac 100644
--- a/test/tint/builtins/gen/literal/tanh/5b19af.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/tanh/5b19af.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,42 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  float16_t prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation float16_t VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+float16_t tanh_5b19af() {
+  float16_t res = float16_t(0.76123046875h);
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store<float16_t>(0u, tanh_5b19af());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store<float16_t>(0u, tanh_5b19af());
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = tanh_5b19af();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
diff --git a/test/tint/builtins/gen/literal/tanh/5b19af.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/tanh/5b19af.wgsl.expected.ir.fxc.hlsl
index 0ba40c6..d905cff 100644
--- a/test/tint/builtins/gen/literal/tanh/5b19af.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/tanh/5b19af.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,47 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct VertexOutput {
+  float4 pos;
+  float16_t prevent_dce;
+};
+
+struct vertex_main_outputs {
+  nointerpolation float16_t VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+float16_t tanh_5b19af() {
+  float16_t res = float16_t(0.76123046875h);
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store<float16_t>(0u, tanh_5b19af());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store<float16_t>(0u, tanh_5b19af());
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = tanh_5b19af();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
+FXC validation failure:
+c:\src\dawn\Shader@0x00000209EB6AC9D0(3,3-11): error X3000: unrecognized identifier 'float16_t'
+
diff --git a/test/tint/builtins/gen/literal/tanh/6289fd.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/tanh/6289fd.wgsl.expected.ir.dxc.hlsl
index 0ba40c6..5a6b0e4 100644
--- a/test/tint/builtins/gen/literal/tanh/6289fd.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/tanh/6289fd.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,36 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+void tanh_6289fd() {
+  float3 res = (0.76159417629241943359f).xxx;
+}
+
+void fragment_main() {
+  tanh_6289fd();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  tanh_6289fd();
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tanh_6289fd();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  vertex_main_outputs v_2 = {v_1.pos};
+  return v_2;
+}
+
diff --git a/test/tint/builtins/gen/literal/tanh/6289fd.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/tanh/6289fd.wgsl.expected.ir.fxc.hlsl
index 0ba40c6..5a6b0e4 100644
--- a/test/tint/builtins/gen/literal/tanh/6289fd.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/tanh/6289fd.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,36 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+void tanh_6289fd() {
+  float3 res = (0.76159417629241943359f).xxx;
+}
+
+void fragment_main() {
+  tanh_6289fd();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  tanh_6289fd();
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tanh_6289fd();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  vertex_main_outputs v_2 = {v_1.pos};
+  return v_2;
+}
+
diff --git a/test/tint/builtins/gen/literal/tanh/6d105a.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/tanh/6d105a.wgsl.expected.ir.dxc.hlsl
index 0ba40c6..b7ba34f 100644
--- a/test/tint/builtins/gen/literal/tanh/6d105a.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/tanh/6d105a.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,42 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  vector<float16_t, 2> prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation vector<float16_t, 2> VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+vector<float16_t, 2> tanh_6d105a() {
+  vector<float16_t, 2> res = (float16_t(0.76123046875h)).xx;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store<vector<float16_t, 2> >(0u, tanh_6d105a());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store<vector<float16_t, 2> >(0u, tanh_6d105a());
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = tanh_6d105a();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
diff --git a/test/tint/builtins/gen/literal/tanh/6d105a.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/tanh/6d105a.wgsl.expected.ir.fxc.hlsl
index 0ba40c6..3c6f3a2 100644
--- a/test/tint/builtins/gen/literal/tanh/6d105a.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/tanh/6d105a.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,47 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct VertexOutput {
+  float4 pos;
+  vector<float16_t, 2> prevent_dce;
+};
+
+struct vertex_main_outputs {
+  nointerpolation vector<float16_t, 2> VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+vector<float16_t, 2> tanh_6d105a() {
+  vector<float16_t, 2> res = (float16_t(0.76123046875h)).xx;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store<vector<float16_t, 2> >(0u, tanh_6d105a());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store<vector<float16_t, 2> >(0u, tanh_6d105a());
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = tanh_6d105a();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
+FXC validation failure:
+c:\src\dawn\Shader@0x00000127CFDC4E00(3,10-18): error X3000: syntax error: unexpected token 'float16_t'
+
diff --git a/test/tint/builtins/gen/literal/tanh/9f9fb9.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/tanh/9f9fb9.wgsl.expected.ir.dxc.hlsl
index 0ba40c6..5761c4d 100644
--- a/test/tint/builtins/gen/literal/tanh/9f9fb9.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/tanh/9f9fb9.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,42 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  float3 prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation float3 VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+float3 tanh_9f9fb9() {
+  float3 res = (0.76159417629241943359f).xxx;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store3(0u, asuint(tanh_9f9fb9()));
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store3(0u, asuint(tanh_9f9fb9()));
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = tanh_9f9fb9();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
diff --git a/test/tint/builtins/gen/literal/tanh/9f9fb9.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/tanh/9f9fb9.wgsl.expected.ir.fxc.hlsl
index 0ba40c6..5761c4d 100644
--- a/test/tint/builtins/gen/literal/tanh/9f9fb9.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/tanh/9f9fb9.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,42 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  float3 prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation float3 VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+float3 tanh_9f9fb9() {
+  float3 res = (0.76159417629241943359f).xxx;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store3(0u, asuint(tanh_9f9fb9()));
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store3(0u, asuint(tanh_9f9fb9()));
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = tanh_9f9fb9();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
diff --git a/test/tint/builtins/gen/literal/tanh/ac5d33.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/tanh/ac5d33.wgsl.expected.ir.dxc.hlsl
index 0ba40c6..e369725 100644
--- a/test/tint/builtins/gen/literal/tanh/ac5d33.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/tanh/ac5d33.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,36 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+void tanh_ac5d33() {
+  float4 res = (0.76159417629241943359f).xxxx;
+}
+
+void fragment_main() {
+  tanh_ac5d33();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  tanh_ac5d33();
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tanh_ac5d33();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  vertex_main_outputs v_2 = {v_1.pos};
+  return v_2;
+}
+
diff --git a/test/tint/builtins/gen/literal/tanh/ac5d33.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/tanh/ac5d33.wgsl.expected.ir.fxc.hlsl
index 0ba40c6..e369725 100644
--- a/test/tint/builtins/gen/literal/tanh/ac5d33.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/tanh/ac5d33.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,36 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+void tanh_ac5d33() {
+  float4 res = (0.76159417629241943359f).xxxx;
+}
+
+void fragment_main() {
+  tanh_ac5d33();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  tanh_ac5d33();
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tanh_ac5d33();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  vertex_main_outputs v_2 = {v_1.pos};
+  return v_2;
+}
+
diff --git a/test/tint/builtins/gen/literal/tanh/c15fdb.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/tanh/c15fdb.wgsl.expected.ir.dxc.hlsl
index 0ba40c6..12636c0 100644
--- a/test/tint/builtins/gen/literal/tanh/c15fdb.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/tanh/c15fdb.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,42 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  float prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation float VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+float tanh_c15fdb() {
+  float res = 0.76159417629241943359f;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store(0u, asuint(tanh_c15fdb()));
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store(0u, asuint(tanh_c15fdb()));
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = tanh_c15fdb();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
diff --git a/test/tint/builtins/gen/literal/tanh/c15fdb.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/tanh/c15fdb.wgsl.expected.ir.fxc.hlsl
index 0ba40c6..12636c0 100644
--- a/test/tint/builtins/gen/literal/tanh/c15fdb.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/tanh/c15fdb.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,42 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  float prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation float VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+float tanh_c15fdb() {
+  float res = 0.76159417629241943359f;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store(0u, asuint(tanh_c15fdb()));
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store(0u, asuint(tanh_c15fdb()));
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = tanh_c15fdb();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
diff --git a/test/tint/builtins/gen/literal/tanh/c48aa6.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/tanh/c48aa6.wgsl.expected.ir.dxc.hlsl
index 0ba40c6..bdef9ce 100644
--- a/test/tint/builtins/gen/literal/tanh/c48aa6.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/tanh/c48aa6.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,36 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+void tanh_c48aa6() {
+  float2 res = (0.76159417629241943359f).xx;
+}
+
+void fragment_main() {
+  tanh_c48aa6();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  tanh_c48aa6();
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tanh_c48aa6();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  vertex_main_outputs v_2 = {v_1.pos};
+  return v_2;
+}
+
diff --git a/test/tint/builtins/gen/literal/tanh/c48aa6.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/tanh/c48aa6.wgsl.expected.ir.fxc.hlsl
index 0ba40c6..bdef9ce 100644
--- a/test/tint/builtins/gen/literal/tanh/c48aa6.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/tanh/c48aa6.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,36 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+void tanh_c48aa6() {
+  float2 res = (0.76159417629241943359f).xx;
+}
+
+void fragment_main() {
+  tanh_c48aa6();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  tanh_c48aa6();
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tanh_c48aa6();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  vertex_main_outputs v_2 = {v_1.pos};
+  return v_2;
+}
+
diff --git a/test/tint/builtins/gen/literal/tanh/e8efb3.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/tanh/e8efb3.wgsl.expected.ir.dxc.hlsl
index 0ba40c6..80475d8 100644
--- a/test/tint/builtins/gen/literal/tanh/e8efb3.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/tanh/e8efb3.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,42 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  vector<float16_t, 4> prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation vector<float16_t, 4> VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+vector<float16_t, 4> tanh_e8efb3() {
+  vector<float16_t, 4> res = (float16_t(0.76123046875h)).xxxx;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store<vector<float16_t, 4> >(0u, tanh_e8efb3());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store<vector<float16_t, 4> >(0u, tanh_e8efb3());
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = tanh_e8efb3();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
diff --git a/test/tint/builtins/gen/literal/tanh/e8efb3.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/tanh/e8efb3.wgsl.expected.ir.fxc.hlsl
index 0ba40c6..b9c750a 100644
--- a/test/tint/builtins/gen/literal/tanh/e8efb3.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/tanh/e8efb3.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,47 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct VertexOutput {
+  float4 pos;
+  vector<float16_t, 4> prevent_dce;
+};
+
+struct vertex_main_outputs {
+  nointerpolation vector<float16_t, 4> VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+vector<float16_t, 4> tanh_e8efb3() {
+  vector<float16_t, 4> res = (float16_t(0.76123046875h)).xxxx;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store<vector<float16_t, 4> >(0u, tanh_e8efb3());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store<vector<float16_t, 4> >(0u, tanh_e8efb3());
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = tanh_e8efb3();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
+FXC validation failure:
+c:\src\dawn\Shader@0x000002CAEAEEF300(3,10-18): error X3000: syntax error: unexpected token 'float16_t'
+
diff --git a/test/tint/builtins/gen/literal/textureBarrier/3d0f7e.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/textureBarrier/3d0f7e.wgsl.expected.ir.dxc.hlsl
index c59972f..49b9011 100644
--- a/test/tint/builtins/gen/literal/textureBarrier/3d0f7e.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureBarrier/3d0f7e.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,10 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureBarrier
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+void textureBarrier_3d0f7e() {
+  DeviceMemoryBarrierWithGroupSync();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  textureBarrier_3d0f7e();
+}
+
diff --git a/test/tint/builtins/gen/literal/textureBarrier/3d0f7e.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/textureBarrier/3d0f7e.wgsl.expected.ir.fxc.hlsl
index c59972f..49b9011 100644
--- a/test/tint/builtins/gen/literal/textureBarrier/3d0f7e.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureBarrier/3d0f7e.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,10 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureBarrier
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+void textureBarrier_3d0f7e() {
+  DeviceMemoryBarrierWithGroupSync();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  textureBarrier_3d0f7e();
+}
+
diff --git a/test/tint/builtins/gen/literal/textureDimensions/00229f.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/textureDimensions/00229f.wgsl.expected.ir.dxc.hlsl
index 1fac62e..56a5e5e 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/00229f.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/00229f.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,45 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  uint3 prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureDimensions
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation uint3 VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+Texture3D<float4> arg_0 : register(t0, space1);
+uint3 textureDimensions_00229f() {
+  uint3 v = (0u).xxx;
+  arg_0.GetDimensions(v[0u], v[1u], v[2u]);
+  uint3 res = v;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store3(0u, textureDimensions_00229f());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store3(0u, textureDimensions_00229f());
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = textureDimensions_00229f();
+  VertexOutput v_1 = tint_symbol;
+  return v_1;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_2 = vertex_main_inner();
+  VertexOutput v_3 = v_2;
+  VertexOutput v_4 = v_2;
+  vertex_main_outputs v_5 = {v_4.prevent_dce, v_3.pos};
+  return v_5;
+}
+
diff --git a/test/tint/builtins/gen/literal/textureDimensions/00229f.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/textureDimensions/00229f.wgsl.expected.ir.fxc.hlsl
index 1fac62e..56a5e5e 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/00229f.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/00229f.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,45 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  uint3 prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureDimensions
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation uint3 VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+Texture3D<float4> arg_0 : register(t0, space1);
+uint3 textureDimensions_00229f() {
+  uint3 v = (0u).xxx;
+  arg_0.GetDimensions(v[0u], v[1u], v[2u]);
+  uint3 res = v;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store3(0u, textureDimensions_00229f());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store3(0u, textureDimensions_00229f());
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = textureDimensions_00229f();
+  VertexOutput v_1 = tint_symbol;
+  return v_1;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_2 = vertex_main_inner();
+  VertexOutput v_3 = v_2;
+  VertexOutput v_4 = v_2;
+  vertex_main_outputs v_5 = {v_4.prevent_dce, v_3.pos};
+  return v_5;
+}
+
diff --git a/test/tint/builtins/gen/literal/textureDimensions/00348c.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/textureDimensions/00348c.wgsl.expected.ir.dxc.hlsl
index 1fac62e..9410e35 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/00348c.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/00348c.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,45 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  uint2 prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureDimensions
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation uint2 VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+Texture2DMS<int4> arg_0 : register(t0, space1);
+uint2 textureDimensions_00348c() {
+  uint3 v = (0u).xxx;
+  arg_0.GetDimensions(v[0u], v[1u], v[2u]);
+  uint2 res = v.xy;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store2(0u, textureDimensions_00348c());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store2(0u, textureDimensions_00348c());
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = textureDimensions_00348c();
+  VertexOutput v_1 = tint_symbol;
+  return v_1;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_2 = vertex_main_inner();
+  VertexOutput v_3 = v_2;
+  VertexOutput v_4 = v_2;
+  vertex_main_outputs v_5 = {v_4.prevent_dce, v_3.pos};
+  return v_5;
+}
+
diff --git a/test/tint/builtins/gen/literal/textureDimensions/00348c.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/textureDimensions/00348c.wgsl.expected.ir.fxc.hlsl
index 1fac62e..9410e35 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/00348c.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/00348c.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,45 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  uint2 prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureDimensions
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation uint2 VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+Texture2DMS<int4> arg_0 : register(t0, space1);
+uint2 textureDimensions_00348c() {
+  uint3 v = (0u).xxx;
+  arg_0.GetDimensions(v[0u], v[1u], v[2u]);
+  uint2 res = v.xy;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store2(0u, textureDimensions_00348c());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store2(0u, textureDimensions_00348c());
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = textureDimensions_00348c();
+  VertexOutput v_1 = tint_symbol;
+  return v_1;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_2 = vertex_main_inner();
+  VertexOutput v_3 = v_2;
+  VertexOutput v_4 = v_2;
+  vertex_main_outputs v_5 = {v_4.prevent_dce, v_3.pos};
+  return v_5;
+}
+
diff --git a/test/tint/builtins/gen/literal/textureDimensions/01e21e.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/textureDimensions/01e21e.wgsl.expected.ir.dxc.hlsl
index 1fac62e..7b909bf 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/01e21e.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/01e21e.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,19 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureDimensions
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWByteAddressBuffer prevent_dce : register(u0);
+RWTexture1D<uint4> arg_0 : register(u0, space1);
+uint textureDimensions_01e21e() {
+  uint v = 0u;
+  arg_0.GetDimensions(v);
+  uint res = v;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store(0u, textureDimensions_01e21e());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store(0u, textureDimensions_01e21e());
+}
+
diff --git a/test/tint/builtins/gen/literal/textureDimensions/01e21e.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/textureDimensions/01e21e.wgsl.expected.ir.fxc.hlsl
index 1fac62e..7b909bf 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/01e21e.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/01e21e.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,19 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureDimensions
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWByteAddressBuffer prevent_dce : register(u0);
+RWTexture1D<uint4> arg_0 : register(u0, space1);
+uint textureDimensions_01e21e() {
+  uint v = 0u;
+  arg_0.GetDimensions(v);
+  uint res = v;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store(0u, textureDimensions_01e21e());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store(0u, textureDimensions_01e21e());
+}
+
diff --git a/test/tint/builtins/gen/literal/textureDimensions/01edb1.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/textureDimensions/01edb1.wgsl.expected.ir.dxc.hlsl
index 1fac62e..15bddb8 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/01edb1.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/01edb1.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,19 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureDimensions
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWByteAddressBuffer prevent_dce : register(u0);
+RWTexture1D<uint4> arg_0 : register(u0, space1);
+uint textureDimensions_01edb1() {
+  uint v = 0u;
+  arg_0.GetDimensions(v);
+  uint res = v;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store(0u, textureDimensions_01edb1());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store(0u, textureDimensions_01edb1());
+}
+
diff --git a/test/tint/builtins/gen/literal/textureDimensions/01edb1.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/textureDimensions/01edb1.wgsl.expected.ir.fxc.hlsl
index 1fac62e..15bddb8 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/01edb1.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/01edb1.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,19 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureDimensions
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWByteAddressBuffer prevent_dce : register(u0);
+RWTexture1D<uint4> arg_0 : register(u0, space1);
+uint textureDimensions_01edb1() {
+  uint v = 0u;
+  arg_0.GetDimensions(v);
+  uint res = v;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store(0u, textureDimensions_01edb1());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store(0u, textureDimensions_01edb1());
+}
+
diff --git a/test/tint/builtins/gen/literal/textureDimensions/022903.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/textureDimensions/022903.wgsl.expected.ir.dxc.hlsl
index 1fac62e..2122110 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/022903.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/022903.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,112 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureDimensions
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : u32;
+
+@group(1) @binding(0) var arg_0 : texture_1d<i32>;
+
+fn textureDimensions_022903() -> u32 {
+  var res : u32 = textureDimensions(arg_0, 1u);
+  return res;
+}
+
+@fragment
+fn fragment_main() {
+  prevent_dce = textureDimensions_022903();
+}
+
+@compute @workgroup_size(1)
+fn compute_main() {
+  prevent_dce = textureDimensions_022903();
+}
+
+struct VertexOutput {
+  @builtin(position)
+  pos : vec4<f32>,
+  @location(0) @interpolate(flat)
+  prevent_dce : u32,
+}
+
+@vertex
+fn vertex_main() -> VertexOutput {
+  var tint_symbol : VertexOutput;
+  tint_symbol.pos = vec4<f32>();
+  tint_symbol.prevent_dce = textureDimensions_022903();
+  return tint_symbol;
+}
+
+Failed to generate: :26:43 error: var: initializer type 'vec2<u32>' does not match store type 'u32'
+    %res:ptr<function, u32, read_write> = var, %11
+                                          ^^^
+
+:17:3 note: in block
+  $B2: {
+  ^^^
+
+note: # Disassembly
+VertexOutput = struct @align(16) {
+  pos:vec4<f32> @offset(0)
+  prevent_dce:u32 @offset(16)
+}
+
+vertex_main_outputs = struct @align(16) {
+  VertexOutput_prevent_dce:u32 @offset(0), @location(0), @interpolate(flat)
+  VertexOutput_pos:vec4<f32> @offset(16), @builtin(position)
+}
+
+$B1: {  # root
+  %prevent_dce:hlsl.byte_address_buffer<read_write> = var @binding_point(0, 0)
+  %arg_0:ptr<handle, texture_1d<i32>, read> = var @binding_point(1, 0)
+}
+
+%textureDimensions_022903 = func():u32 {
+  $B2: {
+    %4:texture_1d<i32> = load %arg_0
+    %5:u32 = convert 1u
+    %6:ptr<function, vec2<u32>, read_write> = var
+    %7:ptr<function, u32, read_write> = access %6, 0u
+    %8:ptr<function, u32, read_write> = access %6, 1u
+    %9:void = %4.GetDimensions %5, %7, %8
+    %10:vec2<u32> = load %6
+    %11:vec2<u32> = swizzle %10, x
+    %res:ptr<function, u32, read_write> = var, %11
+    %13:u32 = load %res
+    ret %13
+  }
+}
+%fragment_main = @fragment func():void {
+  $B3: {
+    %15:u32 = call %textureDimensions_022903
+    %16:void = %prevent_dce.Store 0u, %15
+    ret
+  }
+}
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B4: {
+    %18:u32 = call %textureDimensions_022903
+    %19:void = %prevent_dce.Store 0u, %18
+    ret
+  }
+}
+%vertex_main_inner = func():VertexOutput {
+  $B5: {
+    %tint_symbol:ptr<function, VertexOutput, read_write> = var
+    %22:ptr<function, vec4<f32>, read_write> = access %tint_symbol, 0u
+    store %22, vec4<f32>(0.0f)
+    %23:ptr<function, u32, read_write> = access %tint_symbol, 1u
+    %24:u32 = call %textureDimensions_022903
+    store %23, %24
+    %25:VertexOutput = load %tint_symbol
+    ret %25
+  }
+}
+%vertex_main = @vertex func():vertex_main_outputs {
+  $B6: {
+    %27:VertexOutput = call %vertex_main_inner
+    %28:vec4<f32> = access %27, 0u
+    %29:u32 = access %27, 1u
+    %30:vertex_main_outputs = construct %29, %28
+    ret %30
+  }
+}
+
diff --git a/test/tint/builtins/gen/literal/textureDimensions/022903.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/textureDimensions/022903.wgsl.expected.ir.fxc.hlsl
index 1fac62e..2122110 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/022903.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/022903.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,112 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureDimensions
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : u32;
+
+@group(1) @binding(0) var arg_0 : texture_1d<i32>;
+
+fn textureDimensions_022903() -> u32 {
+  var res : u32 = textureDimensions(arg_0, 1u);
+  return res;
+}
+
+@fragment
+fn fragment_main() {
+  prevent_dce = textureDimensions_022903();
+}
+
+@compute @workgroup_size(1)
+fn compute_main() {
+  prevent_dce = textureDimensions_022903();
+}
+
+struct VertexOutput {
+  @builtin(position)
+  pos : vec4<f32>,
+  @location(0) @interpolate(flat)
+  prevent_dce : u32,
+}
+
+@vertex
+fn vertex_main() -> VertexOutput {
+  var tint_symbol : VertexOutput;
+  tint_symbol.pos = vec4<f32>();
+  tint_symbol.prevent_dce = textureDimensions_022903();
+  return tint_symbol;
+}
+
+Failed to generate: :26:43 error: var: initializer type 'vec2<u32>' does not match store type 'u32'
+    %res:ptr<function, u32, read_write> = var, %11
+                                          ^^^
+
+:17:3 note: in block
+  $B2: {
+  ^^^
+
+note: # Disassembly
+VertexOutput = struct @align(16) {
+  pos:vec4<f32> @offset(0)
+  prevent_dce:u32 @offset(16)
+}
+
+vertex_main_outputs = struct @align(16) {
+  VertexOutput_prevent_dce:u32 @offset(0), @location(0), @interpolate(flat)
+  VertexOutput_pos:vec4<f32> @offset(16), @builtin(position)
+}
+
+$B1: {  # root
+  %prevent_dce:hlsl.byte_address_buffer<read_write> = var @binding_point(0, 0)
+  %arg_0:ptr<handle, texture_1d<i32>, read> = var @binding_point(1, 0)
+}
+
+%textureDimensions_022903 = func():u32 {
+  $B2: {
+    %4:texture_1d<i32> = load %arg_0
+    %5:u32 = convert 1u
+    %6:ptr<function, vec2<u32>, read_write> = var
+    %7:ptr<function, u32, read_write> = access %6, 0u
+    %8:ptr<function, u32, read_write> = access %6, 1u
+    %9:void = %4.GetDimensions %5, %7, %8
+    %10:vec2<u32> = load %6
+    %11:vec2<u32> = swizzle %10, x
+    %res:ptr<function, u32, read_write> = var, %11
+    %13:u32 = load %res
+    ret %13
+  }
+}
+%fragment_main = @fragment func():void {
+  $B3: {
+    %15:u32 = call %textureDimensions_022903
+    %16:void = %prevent_dce.Store 0u, %15
+    ret
+  }
+}
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B4: {
+    %18:u32 = call %textureDimensions_022903
+    %19:void = %prevent_dce.Store 0u, %18
+    ret
+  }
+}
+%vertex_main_inner = func():VertexOutput {
+  $B5: {
+    %tint_symbol:ptr<function, VertexOutput, read_write> = var
+    %22:ptr<function, vec4<f32>, read_write> = access %tint_symbol, 0u
+    store %22, vec4<f32>(0.0f)
+    %23:ptr<function, u32, read_write> = access %tint_symbol, 1u
+    %24:u32 = call %textureDimensions_022903
+    store %23, %24
+    %25:VertexOutput = load %tint_symbol
+    ret %25
+  }
+}
+%vertex_main = @vertex func():vertex_main_outputs {
+  $B6: {
+    %27:VertexOutput = call %vertex_main_inner
+    %28:vec4<f32> = access %27, 0u
+    %29:u32 = access %27, 1u
+    %30:vertex_main_outputs = construct %29, %28
+    ret %30
+  }
+}
+
diff --git a/test/tint/builtins/gen/literal/textureDimensions/0276ec.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/textureDimensions/0276ec.wgsl.expected.ir.dxc.hlsl
index 1fac62e..a2c3154 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/0276ec.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/0276ec.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,19 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureDimensions
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWByteAddressBuffer prevent_dce : register(u0);
+RWTexture3D<uint4> arg_0 : register(u0, space1);
+uint3 textureDimensions_0276ec() {
+  uint3 v = (0u).xxx;
+  arg_0.GetDimensions(v[0u], v[1u], v[2u]);
+  uint3 res = v;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store3(0u, textureDimensions_0276ec());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store3(0u, textureDimensions_0276ec());
+}
+
diff --git a/test/tint/builtins/gen/literal/textureDimensions/0276ec.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/textureDimensions/0276ec.wgsl.expected.ir.fxc.hlsl
index 1fac62e..a2c3154 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/0276ec.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/0276ec.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,19 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureDimensions
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWByteAddressBuffer prevent_dce : register(u0);
+RWTexture3D<uint4> arg_0 : register(u0, space1);
+uint3 textureDimensions_0276ec() {
+  uint3 v = (0u).xxx;
+  arg_0.GetDimensions(v[0u], v[1u], v[2u]);
+  uint3 res = v;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store3(0u, textureDimensions_0276ec());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store3(0u, textureDimensions_0276ec());
+}
+
diff --git a/test/tint/builtins/gen/literal/textureDimensions/029589.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/textureDimensions/029589.wgsl.expected.ir.dxc.hlsl
index 1fac62e..b37efd3 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/029589.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/029589.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,19 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureDimensions
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWByteAddressBuffer prevent_dce : register(u0);
+RWTexture2DArray<float4> arg_0 : register(u0, space1);
+uint2 textureDimensions_029589() {
+  uint3 v = (0u).xxx;
+  arg_0.GetDimensions(v[0u], v[1u], v[2u]);
+  uint2 res = v.xy;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store2(0u, textureDimensions_029589());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store2(0u, textureDimensions_029589());
+}
+
diff --git a/test/tint/builtins/gen/literal/textureDimensions/029589.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/textureDimensions/029589.wgsl.expected.ir.fxc.hlsl
index 1fac62e..b37efd3 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/029589.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/029589.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,19 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureDimensions
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWByteAddressBuffer prevent_dce : register(u0);
+RWTexture2DArray<float4> arg_0 : register(u0, space1);
+uint2 textureDimensions_029589() {
+  uint3 v = (0u).xxx;
+  arg_0.GetDimensions(v[0u], v[1u], v[2u]);
+  uint2 res = v.xy;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store2(0u, textureDimensions_029589());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store2(0u, textureDimensions_029589());
+}
+
diff --git a/test/tint/builtins/gen/literal/textureDimensions/0329b0.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/textureDimensions/0329b0.wgsl.expected.ir.dxc.hlsl
index 1fac62e..10335f4 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/0329b0.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/0329b0.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,45 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  uint prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureDimensions
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation uint VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+Texture1D<int4> arg_0 : register(t0, space1);
+uint textureDimensions_0329b0() {
+  uint v = 0u;
+  arg_0.GetDimensions(v);
+  uint res = v;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store(0u, textureDimensions_0329b0());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store(0u, textureDimensions_0329b0());
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = textureDimensions_0329b0();
+  VertexOutput v_1 = tint_symbol;
+  return v_1;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_2 = vertex_main_inner();
+  VertexOutput v_3 = v_2;
+  VertexOutput v_4 = v_2;
+  vertex_main_outputs v_5 = {v_4.prevent_dce, v_3.pos};
+  return v_5;
+}
+
diff --git a/test/tint/builtins/gen/literal/textureDimensions/0329b0.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/textureDimensions/0329b0.wgsl.expected.ir.fxc.hlsl
index 1fac62e..10335f4 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/0329b0.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/0329b0.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,45 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  uint prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureDimensions
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation uint VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+Texture1D<int4> arg_0 : register(t0, space1);
+uint textureDimensions_0329b0() {
+  uint v = 0u;
+  arg_0.GetDimensions(v);
+  uint res = v;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store(0u, textureDimensions_0329b0());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store(0u, textureDimensions_0329b0());
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = textureDimensions_0329b0();
+  VertexOutput v_1 = tint_symbol;
+  return v_1;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_2 = vertex_main_inner();
+  VertexOutput v_3 = v_2;
+  VertexOutput v_4 = v_2;
+  vertex_main_outputs v_5 = {v_4.prevent_dce, v_3.pos};
+  return v_5;
+}
+
diff --git a/test/tint/builtins/gen/literal/textureDimensions/033195.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/textureDimensions/033195.wgsl.expected.ir.dxc.hlsl
index 1fac62e..3818d3b 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/033195.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/033195.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,19 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureDimensions
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWByteAddressBuffer prevent_dce : register(u0);
+RWTexture1D<float4> arg_0 : register(u0, space1);
+uint textureDimensions_033195() {
+  uint v = 0u;
+  arg_0.GetDimensions(v);
+  uint res = v;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store(0u, textureDimensions_033195());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store(0u, textureDimensions_033195());
+}
+
diff --git a/test/tint/builtins/gen/literal/textureDimensions/033195.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/textureDimensions/033195.wgsl.expected.ir.fxc.hlsl
index 1fac62e..3818d3b 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/033195.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/033195.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,19 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureDimensions
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWByteAddressBuffer prevent_dce : register(u0);
+RWTexture1D<float4> arg_0 : register(u0, space1);
+uint textureDimensions_033195() {
+  uint v = 0u;
+  arg_0.GetDimensions(v);
+  uint res = v;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store(0u, textureDimensions_033195());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store(0u, textureDimensions_033195());
+}
+
diff --git a/test/tint/builtins/gen/literal/textureDimensions/033ea7.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/textureDimensions/033ea7.wgsl.expected.ir.dxc.hlsl
index 1fac62e..fdf04ac 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/033ea7.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/033ea7.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,45 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  uint prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureDimensions
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation uint VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+Texture1D<float4> arg_0 : register(t0, space1);
+uint textureDimensions_033ea7() {
+  uint v = 0u;
+  arg_0.GetDimensions(v);
+  uint res = v;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store(0u, textureDimensions_033ea7());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store(0u, textureDimensions_033ea7());
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = textureDimensions_033ea7();
+  VertexOutput v_1 = tint_symbol;
+  return v_1;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_2 = vertex_main_inner();
+  VertexOutput v_3 = v_2;
+  VertexOutput v_4 = v_2;
+  vertex_main_outputs v_5 = {v_4.prevent_dce, v_3.pos};
+  return v_5;
+}
+
diff --git a/test/tint/builtins/gen/literal/textureDimensions/033ea7.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/textureDimensions/033ea7.wgsl.expected.ir.fxc.hlsl
index 1fac62e..fdf04ac 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/033ea7.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/033ea7.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,45 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  uint prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureDimensions
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation uint VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+Texture1D<float4> arg_0 : register(t0, space1);
+uint textureDimensions_033ea7() {
+  uint v = 0u;
+  arg_0.GetDimensions(v);
+  uint res = v;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store(0u, textureDimensions_033ea7());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store(0u, textureDimensions_033ea7());
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = textureDimensions_033ea7();
+  VertexOutput v_1 = tint_symbol;
+  return v_1;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_2 = vertex_main_inner();
+  VertexOutput v_3 = v_2;
+  VertexOutput v_4 = v_2;
+  vertex_main_outputs v_5 = {v_4.prevent_dce, v_3.pos};
+  return v_5;
+}
+
diff --git a/test/tint/builtins/gen/literal/textureDimensions/038847.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/textureDimensions/038847.wgsl.expected.ir.dxc.hlsl
index 1fac62e..bb4c2da 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/038847.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/038847.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,19 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureDimensions
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWByteAddressBuffer prevent_dce : register(u0);
+RWTexture1D<int4> arg_0 : register(u0, space1);
+uint textureDimensions_038847() {
+  uint v = 0u;
+  arg_0.GetDimensions(v);
+  uint res = v;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store(0u, textureDimensions_038847());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store(0u, textureDimensions_038847());
+}
+
diff --git a/test/tint/builtins/gen/literal/textureDimensions/038847.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/textureDimensions/038847.wgsl.expected.ir.fxc.hlsl
index 1fac62e..bb4c2da 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/038847.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/038847.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,19 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureDimensions
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWByteAddressBuffer prevent_dce : register(u0);
+RWTexture1D<int4> arg_0 : register(u0, space1);
+uint textureDimensions_038847() {
+  uint v = 0u;
+  arg_0.GetDimensions(v);
+  uint res = v;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store(0u, textureDimensions_038847());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store(0u, textureDimensions_038847());
+}
+
diff --git a/test/tint/builtins/gen/literal/textureDimensions/03f81e.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/textureDimensions/03f81e.wgsl.expected.ir.dxc.hlsl
index 1fac62e..37817bf 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/03f81e.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/03f81e.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,19 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureDimensions
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWByteAddressBuffer prevent_dce : register(u0);
+RWTexture2D<float4> arg_0 : register(u0, space1);
+uint2 textureDimensions_03f81e() {
+  uint2 v = (0u).xx;
+  arg_0.GetDimensions(v[0u], v[1u]);
+  uint2 res = v;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store2(0u, textureDimensions_03f81e());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store2(0u, textureDimensions_03f81e());
+}
+
diff --git a/test/tint/builtins/gen/literal/textureDimensions/03f81e.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/textureDimensions/03f81e.wgsl.expected.ir.fxc.hlsl
index 1fac62e..37817bf 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/03f81e.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/03f81e.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,19 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureDimensions
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWByteAddressBuffer prevent_dce : register(u0);
+RWTexture2D<float4> arg_0 : register(u0, space1);
+uint2 textureDimensions_03f81e() {
+  uint2 v = (0u).xx;
+  arg_0.GetDimensions(v[0u], v[1u]);
+  uint2 res = v;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store2(0u, textureDimensions_03f81e());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store2(0u, textureDimensions_03f81e());
+}
+
diff --git a/test/tint/builtins/gen/literal/textureDimensions/07f1ba.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/textureDimensions/07f1ba.wgsl.expected.ir.dxc.hlsl
index 1fac62e..287079b 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/07f1ba.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/07f1ba.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,45 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  uint2 prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureDimensions
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation uint2 VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+Texture2D<float4> arg_0 : register(t0, space1);
+uint2 textureDimensions_07f1ba() {
+  uint2 v = (0u).xx;
+  arg_0.GetDimensions(v[0u], v[1u]);
+  uint2 res = v;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store2(0u, textureDimensions_07f1ba());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store2(0u, textureDimensions_07f1ba());
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = textureDimensions_07f1ba();
+  VertexOutput v_1 = tint_symbol;
+  return v_1;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_2 = vertex_main_inner();
+  VertexOutput v_3 = v_2;
+  VertexOutput v_4 = v_2;
+  vertex_main_outputs v_5 = {v_4.prevent_dce, v_3.pos};
+  return v_5;
+}
+
diff --git a/test/tint/builtins/gen/literal/textureDimensions/07f1ba.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/textureDimensions/07f1ba.wgsl.expected.ir.fxc.hlsl
index 1fac62e..287079b 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/07f1ba.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/07f1ba.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,45 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  uint2 prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureDimensions
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation uint2 VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+Texture2D<float4> arg_0 : register(t0, space1);
+uint2 textureDimensions_07f1ba() {
+  uint2 v = (0u).xx;
+  arg_0.GetDimensions(v[0u], v[1u]);
+  uint2 res = v;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store2(0u, textureDimensions_07f1ba());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store2(0u, textureDimensions_07f1ba());
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = textureDimensions_07f1ba();
+  VertexOutput v_1 = tint_symbol;
+  return v_1;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_2 = vertex_main_inner();
+  VertexOutput v_3 = v_2;
+  VertexOutput v_4 = v_2;
+  vertex_main_outputs v_5 = {v_4.prevent_dce, v_3.pos};
+  return v_5;
+}
+
diff --git a/test/tint/builtins/gen/literal/textureDimensions/088918.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/textureDimensions/088918.wgsl.expected.ir.dxc.hlsl
index 1fac62e..7f48f40 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/088918.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/088918.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,45 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  uint2 prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureDimensions
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation uint2 VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+Texture2D<float4> arg_0 : register(t0, space1);
+uint2 textureDimensions_088918() {
+  uint2 v = (0u).xx;
+  arg_0.GetDimensions(v[0u], v[1u]);
+  uint2 res = v;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store2(0u, textureDimensions_088918());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store2(0u, textureDimensions_088918());
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = textureDimensions_088918();
+  VertexOutput v_1 = tint_symbol;
+  return v_1;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_2 = vertex_main_inner();
+  VertexOutput v_3 = v_2;
+  VertexOutput v_4 = v_2;
+  vertex_main_outputs v_5 = {v_4.prevent_dce, v_3.pos};
+  return v_5;
+}
+
diff --git a/test/tint/builtins/gen/literal/textureDimensions/088918.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/textureDimensions/088918.wgsl.expected.ir.fxc.hlsl
index 1fac62e..7f48f40 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/088918.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/088918.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,45 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  uint2 prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureDimensions
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation uint2 VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+Texture2D<float4> arg_0 : register(t0, space1);
+uint2 textureDimensions_088918() {
+  uint2 v = (0u).xx;
+  arg_0.GetDimensions(v[0u], v[1u]);
+  uint2 res = v;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store2(0u, textureDimensions_088918());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store2(0u, textureDimensions_088918());
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = textureDimensions_088918();
+  VertexOutput v_1 = tint_symbol;
+  return v_1;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_2 = vertex_main_inner();
+  VertexOutput v_3 = v_2;
+  VertexOutput v_4 = v_2;
+  vertex_main_outputs v_5 = {v_4.prevent_dce, v_3.pos};
+  return v_5;
+}
+
diff --git a/test/tint/builtins/gen/literal/textureDimensions/0890c6.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/textureDimensions/0890c6.wgsl.expected.ir.dxc.hlsl
index 1fac62e..8aab590 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/0890c6.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/0890c6.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,114 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureDimensions
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec3<u32>;
+
+@group(1) @binding(0) var arg_0 : texture_3d<f32>;
+
+fn textureDimensions_0890c6() -> vec3<u32> {
+  var res : vec3<u32> = textureDimensions(arg_0, 1u);
+  return res;
+}
+
+@fragment
+fn fragment_main() {
+  prevent_dce = textureDimensions_0890c6();
+}
+
+@compute @workgroup_size(1)
+fn compute_main() {
+  prevent_dce = textureDimensions_0890c6();
+}
+
+struct VertexOutput {
+  @builtin(position)
+  pos : vec4<f32>,
+  @location(0) @interpolate(flat)
+  prevent_dce : vec3<u32>,
+}
+
+@vertex
+fn vertex_main() -> VertexOutput {
+  var tint_symbol : VertexOutput;
+  tint_symbol.pos = vec4<f32>();
+  tint_symbol.prevent_dce = textureDimensions_0890c6();
+  return tint_symbol;
+}
+
+Failed to generate: :28:49 error: var: initializer type 'vec2<u32>' does not match store type 'vec3<u32>'
+    %res:ptr<function, vec3<u32>, read_write> = var, %13
+                                                ^^^
+
+:17:3 note: in block
+  $B2: {
+  ^^^
+
+note: # Disassembly
+VertexOutput = struct @align(16) {
+  pos:vec4<f32> @offset(0)
+  prevent_dce:vec3<u32> @offset(16)
+}
+
+vertex_main_outputs = struct @align(16) {
+  VertexOutput_prevent_dce:vec3<u32> @offset(0), @location(0), @interpolate(flat)
+  VertexOutput_pos:vec4<f32> @offset(16), @builtin(position)
+}
+
+$B1: {  # root
+  %prevent_dce:hlsl.byte_address_buffer<read_write> = var @binding_point(0, 0)
+  %arg_0:ptr<handle, texture_3d<f32>, read> = var @binding_point(1, 0)
+}
+
+%textureDimensions_0890c6 = func():vec3<u32> {
+  $B2: {
+    %4:texture_3d<f32> = load %arg_0
+    %5:u32 = convert 1u
+    %6:ptr<function, vec4<u32>, read_write> = var
+    %7:ptr<function, u32, read_write> = access %6, 0u
+    %8:ptr<function, u32, read_write> = access %6, 1u
+    %9:ptr<function, u32, read_write> = access %6, 2u
+    %10:ptr<function, u32, read_write> = access %6, 3u
+    %11:void = %4.GetDimensions %5, %7, %8, %9, %10
+    %12:vec4<u32> = load %6
+    %13:vec2<u32> = swizzle %12, xyz
+    %res:ptr<function, vec3<u32>, read_write> = var, %13
+    %15:vec3<u32> = load %res
+    ret %15
+  }
+}
+%fragment_main = @fragment func():void {
+  $B3: {
+    %17:vec3<u32> = call %textureDimensions_0890c6
+    %18:void = %prevent_dce.Store3 0u, %17
+    ret
+  }
+}
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B4: {
+    %20:vec3<u32> = call %textureDimensions_0890c6
+    %21:void = %prevent_dce.Store3 0u, %20
+    ret
+  }
+}
+%vertex_main_inner = func():VertexOutput {
+  $B5: {
+    %tint_symbol:ptr<function, VertexOutput, read_write> = var
+    %24:ptr<function, vec4<f32>, read_write> = access %tint_symbol, 0u
+    store %24, vec4<f32>(0.0f)
+    %25:ptr<function, vec3<u32>, read_write> = access %tint_symbol, 1u
+    %26:vec3<u32> = call %textureDimensions_0890c6
+    store %25, %26
+    %27:VertexOutput = load %tint_symbol
+    ret %27
+  }
+}
+%vertex_main = @vertex func():vertex_main_outputs {
+  $B6: {
+    %29:VertexOutput = call %vertex_main_inner
+    %30:vec4<f32> = access %29, 0u
+    %31:vec3<u32> = access %29, 1u
+    %32:vertex_main_outputs = construct %31, %30
+    ret %32
+  }
+}
+
diff --git a/test/tint/builtins/gen/literal/textureDimensions/0890c6.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/textureDimensions/0890c6.wgsl.expected.ir.fxc.hlsl
index 1fac62e..8aab590 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/0890c6.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/0890c6.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,114 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureDimensions
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec3<u32>;
+
+@group(1) @binding(0) var arg_0 : texture_3d<f32>;
+
+fn textureDimensions_0890c6() -> vec3<u32> {
+  var res : vec3<u32> = textureDimensions(arg_0, 1u);
+  return res;
+}
+
+@fragment
+fn fragment_main() {
+  prevent_dce = textureDimensions_0890c6();
+}
+
+@compute @workgroup_size(1)
+fn compute_main() {
+  prevent_dce = textureDimensions_0890c6();
+}
+
+struct VertexOutput {
+  @builtin(position)
+  pos : vec4<f32>,
+  @location(0) @interpolate(flat)
+  prevent_dce : vec3<u32>,
+}
+
+@vertex
+fn vertex_main() -> VertexOutput {
+  var tint_symbol : VertexOutput;
+  tint_symbol.pos = vec4<f32>();
+  tint_symbol.prevent_dce = textureDimensions_0890c6();
+  return tint_symbol;
+}
+
+Failed to generate: :28:49 error: var: initializer type 'vec2<u32>' does not match store type 'vec3<u32>'
+    %res:ptr<function, vec3<u32>, read_write> = var, %13
+                                                ^^^
+
+:17:3 note: in block
+  $B2: {
+  ^^^
+
+note: # Disassembly
+VertexOutput = struct @align(16) {
+  pos:vec4<f32> @offset(0)
+  prevent_dce:vec3<u32> @offset(16)
+}
+
+vertex_main_outputs = struct @align(16) {
+  VertexOutput_prevent_dce:vec3<u32> @offset(0), @location(0), @interpolate(flat)
+  VertexOutput_pos:vec4<f32> @offset(16), @builtin(position)
+}
+
+$B1: {  # root
+  %prevent_dce:hlsl.byte_address_buffer<read_write> = var @binding_point(0, 0)
+  %arg_0:ptr<handle, texture_3d<f32>, read> = var @binding_point(1, 0)
+}
+
+%textureDimensions_0890c6 = func():vec3<u32> {
+  $B2: {
+    %4:texture_3d<f32> = load %arg_0
+    %5:u32 = convert 1u
+    %6:ptr<function, vec4<u32>, read_write> = var
+    %7:ptr<function, u32, read_write> = access %6, 0u
+    %8:ptr<function, u32, read_write> = access %6, 1u
+    %9:ptr<function, u32, read_write> = access %6, 2u
+    %10:ptr<function, u32, read_write> = access %6, 3u
+    %11:void = %4.GetDimensions %5, %7, %8, %9, %10
+    %12:vec4<u32> = load %6
+    %13:vec2<u32> = swizzle %12, xyz
+    %res:ptr<function, vec3<u32>, read_write> = var, %13
+    %15:vec3<u32> = load %res
+    ret %15
+  }
+}
+%fragment_main = @fragment func():void {
+  $B3: {
+    %17:vec3<u32> = call %textureDimensions_0890c6
+    %18:void = %prevent_dce.Store3 0u, %17
+    ret
+  }
+}
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B4: {
+    %20:vec3<u32> = call %textureDimensions_0890c6
+    %21:void = %prevent_dce.Store3 0u, %20
+    ret
+  }
+}
+%vertex_main_inner = func():VertexOutput {
+  $B5: {
+    %tint_symbol:ptr<function, VertexOutput, read_write> = var
+    %24:ptr<function, vec4<f32>, read_write> = access %tint_symbol, 0u
+    store %24, vec4<f32>(0.0f)
+    %25:ptr<function, vec3<u32>, read_write> = access %tint_symbol, 1u
+    %26:vec3<u32> = call %textureDimensions_0890c6
+    store %25, %26
+    %27:VertexOutput = load %tint_symbol
+    ret %27
+  }
+}
+%vertex_main = @vertex func():vertex_main_outputs {
+  $B6: {
+    %29:VertexOutput = call %vertex_main_inner
+    %30:vec4<f32> = access %29, 0u
+    %31:vec3<u32> = access %29, 1u
+    %32:vertex_main_outputs = construct %31, %30
+    ret %32
+  }
+}
+
diff --git a/test/tint/builtins/gen/literal/textureDimensions/08e371.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/textureDimensions/08e371.wgsl.expected.ir.dxc.hlsl
index 1fac62e..5bcac10 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/08e371.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/08e371.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,45 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  uint2 prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureDimensions
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation uint2 VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+Texture2D<int4> arg_0 : register(t0, space1);
+uint2 textureDimensions_08e371() {
+  uint2 v = (0u).xx;
+  arg_0.GetDimensions(v[0u], v[1u]);
+  uint2 res = v;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store2(0u, textureDimensions_08e371());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store2(0u, textureDimensions_08e371());
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = textureDimensions_08e371();
+  VertexOutput v_1 = tint_symbol;
+  return v_1;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_2 = vertex_main_inner();
+  VertexOutput v_3 = v_2;
+  VertexOutput v_4 = v_2;
+  vertex_main_outputs v_5 = {v_4.prevent_dce, v_3.pos};
+  return v_5;
+}
+
diff --git a/test/tint/builtins/gen/literal/textureDimensions/08e371.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/textureDimensions/08e371.wgsl.expected.ir.fxc.hlsl
index 1fac62e..5bcac10 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/08e371.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/08e371.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,45 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  uint2 prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureDimensions
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation uint2 VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+Texture2D<int4> arg_0 : register(t0, space1);
+uint2 textureDimensions_08e371() {
+  uint2 v = (0u).xx;
+  arg_0.GetDimensions(v[0u], v[1u]);
+  uint2 res = v;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store2(0u, textureDimensions_08e371());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store2(0u, textureDimensions_08e371());
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = textureDimensions_08e371();
+  VertexOutput v_1 = tint_symbol;
+  return v_1;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_2 = vertex_main_inner();
+  VertexOutput v_3 = v_2;
+  VertexOutput v_4 = v_2;
+  vertex_main_outputs v_5 = {v_4.prevent_dce, v_3.pos};
+  return v_5;
+}
+
diff --git a/test/tint/builtins/gen/literal/textureDimensions/09140b.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/textureDimensions/09140b.wgsl.expected.ir.dxc.hlsl
index 1fac62e..0f3bd36 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/09140b.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/09140b.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,19 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureDimensions
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWByteAddressBuffer prevent_dce : register(u0);
+RWTexture1D<uint4> arg_0 : register(u0, space1);
+uint textureDimensions_09140b() {
+  uint v = 0u;
+  arg_0.GetDimensions(v);
+  uint res = v;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store(0u, textureDimensions_09140b());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store(0u, textureDimensions_09140b());
+}
+
diff --git a/test/tint/builtins/gen/literal/textureDimensions/09140b.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/textureDimensions/09140b.wgsl.expected.ir.fxc.hlsl
index 1fac62e..0f3bd36 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/09140b.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/09140b.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,19 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureDimensions
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWByteAddressBuffer prevent_dce : register(u0);
+RWTexture1D<uint4> arg_0 : register(u0, space1);
+uint textureDimensions_09140b() {
+  uint v = 0u;
+  arg_0.GetDimensions(v);
+  uint res = v;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store(0u, textureDimensions_09140b());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store(0u, textureDimensions_09140b());
+}
+
diff --git a/test/tint/builtins/gen/literal/textureDimensions/0973c9.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/textureDimensions/0973c9.wgsl.expected.ir.dxc.hlsl
index 1fac62e..0e2dcd0 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/0973c9.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/0973c9.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,19 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureDimensions
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWByteAddressBuffer prevent_dce : register(u0);
+RWTexture2D<uint4> arg_0 : register(u0, space1);
+uint2 textureDimensions_0973c9() {
+  uint2 v = (0u).xx;
+  arg_0.GetDimensions(v[0u], v[1u]);
+  uint2 res = v;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store2(0u, textureDimensions_0973c9());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store2(0u, textureDimensions_0973c9());
+}
+
diff --git a/test/tint/builtins/gen/literal/textureDimensions/0973c9.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/textureDimensions/0973c9.wgsl.expected.ir.fxc.hlsl
index 1fac62e..0e2dcd0 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/0973c9.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/0973c9.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,19 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureDimensions
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWByteAddressBuffer prevent_dce : register(u0);
+RWTexture2D<uint4> arg_0 : register(u0, space1);
+uint2 textureDimensions_0973c9() {
+  uint2 v = (0u).xx;
+  arg_0.GetDimensions(v[0u], v[1u]);
+  uint2 res = v;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store2(0u, textureDimensions_0973c9());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store2(0u, textureDimensions_0973c9());
+}
+
diff --git a/test/tint/builtins/gen/literal/textureDimensions/0baa0d.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/textureDimensions/0baa0d.wgsl.expected.ir.dxc.hlsl
index 1fac62e..4c13e8e 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/0baa0d.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/0baa0d.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,19 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureDimensions
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWByteAddressBuffer prevent_dce : register(u0);
+RWTexture2D<float4> arg_0 : register(u0, space1);
+uint2 textureDimensions_0baa0d() {
+  uint2 v = (0u).xx;
+  arg_0.GetDimensions(v[0u], v[1u]);
+  uint2 res = v;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store2(0u, textureDimensions_0baa0d());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store2(0u, textureDimensions_0baa0d());
+}
+
diff --git a/test/tint/builtins/gen/literal/textureDimensions/0baa0d.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/textureDimensions/0baa0d.wgsl.expected.ir.fxc.hlsl
index 1fac62e..4c13e8e 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/0baa0d.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/0baa0d.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,19 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureDimensions
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWByteAddressBuffer prevent_dce : register(u0);
+RWTexture2D<float4> arg_0 : register(u0, space1);
+uint2 textureDimensions_0baa0d() {
+  uint2 v = (0u).xx;
+  arg_0.GetDimensions(v[0u], v[1u]);
+  uint2 res = v;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store2(0u, textureDimensions_0baa0d());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store2(0u, textureDimensions_0baa0d());
+}
+
diff --git a/test/tint/builtins/gen/literal/textureDimensions/0c0b0c.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/textureDimensions/0c0b0c.wgsl.expected.ir.dxc.hlsl
index 1fac62e..b026b54 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/0c0b0c.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/0c0b0c.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,19 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureDimensions
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWByteAddressBuffer prevent_dce : register(u0);
+RWTexture1D<float4> arg_0 : register(u0, space1);
+uint textureDimensions_0c0b0c() {
+  uint v = 0u;
+  arg_0.GetDimensions(v);
+  uint res = v;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store(0u, textureDimensions_0c0b0c());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store(0u, textureDimensions_0c0b0c());
+}
+
diff --git a/test/tint/builtins/gen/literal/textureDimensions/0c0b0c.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/textureDimensions/0c0b0c.wgsl.expected.ir.fxc.hlsl
index 1fac62e..b026b54 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/0c0b0c.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/0c0b0c.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,19 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureDimensions
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWByteAddressBuffer prevent_dce : register(u0);
+RWTexture1D<float4> arg_0 : register(u0, space1);
+uint textureDimensions_0c0b0c() {
+  uint v = 0u;
+  arg_0.GetDimensions(v);
+  uint res = v;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store(0u, textureDimensions_0c0b0c());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store(0u, textureDimensions_0c0b0c());
+}
+
diff --git a/test/tint/builtins/gen/literal/textureDimensions/0d4a7c.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/textureDimensions/0d4a7c.wgsl.expected.ir.dxc.hlsl
index 1fac62e..ba0f6e9 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/0d4a7c.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/0d4a7c.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,45 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  uint2 prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureDimensions
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation uint2 VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+Texture2D<uint4> arg_0 : register(t0, space1);
+uint2 textureDimensions_0d4a7c() {
+  uint2 v = (0u).xx;
+  arg_0.GetDimensions(v[0u], v[1u]);
+  uint2 res = v;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store2(0u, textureDimensions_0d4a7c());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store2(0u, textureDimensions_0d4a7c());
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = textureDimensions_0d4a7c();
+  VertexOutput v_1 = tint_symbol;
+  return v_1;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_2 = vertex_main_inner();
+  VertexOutput v_3 = v_2;
+  VertexOutput v_4 = v_2;
+  vertex_main_outputs v_5 = {v_4.prevent_dce, v_3.pos};
+  return v_5;
+}
+
diff --git a/test/tint/builtins/gen/literal/textureDimensions/0d4a7c.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/textureDimensions/0d4a7c.wgsl.expected.ir.fxc.hlsl
index 1fac62e..ba0f6e9 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/0d4a7c.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/0d4a7c.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,45 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  uint2 prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureDimensions
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation uint2 VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+Texture2D<uint4> arg_0 : register(t0, space1);
+uint2 textureDimensions_0d4a7c() {
+  uint2 v = (0u).xx;
+  arg_0.GetDimensions(v[0u], v[1u]);
+  uint2 res = v;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store2(0u, textureDimensions_0d4a7c());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store2(0u, textureDimensions_0d4a7c());
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = textureDimensions_0d4a7c();
+  VertexOutput v_1 = tint_symbol;
+  return v_1;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_2 = vertex_main_inner();
+  VertexOutput v_3 = v_2;
+  VertexOutput v_4 = v_2;
+  vertex_main_outputs v_5 = {v_4.prevent_dce, v_3.pos};
+  return v_5;
+}
+
diff --git a/test/tint/builtins/gen/literal/textureDimensions/0de70c.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/textureDimensions/0de70c.wgsl.expected.ir.dxc.hlsl
index 1fac62e..8f56acd 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/0de70c.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/0de70c.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,19 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureDimensions
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWByteAddressBuffer prevent_dce : register(u0);
+RWTexture3D<float4> arg_0 : register(u0, space1);
+uint3 textureDimensions_0de70c() {
+  uint3 v = (0u).xxx;
+  arg_0.GetDimensions(v[0u], v[1u], v[2u]);
+  uint3 res = v;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store3(0u, textureDimensions_0de70c());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store3(0u, textureDimensions_0de70c());
+}
+
diff --git a/test/tint/builtins/gen/literal/textureDimensions/0de70c.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/textureDimensions/0de70c.wgsl.expected.ir.fxc.hlsl
index 1fac62e..8f56acd 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/0de70c.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/0de70c.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,19 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureDimensions
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWByteAddressBuffer prevent_dce : register(u0);
+RWTexture3D<float4> arg_0 : register(u0, space1);
+uint3 textureDimensions_0de70c() {
+  uint3 v = (0u).xxx;
+  arg_0.GetDimensions(v[0u], v[1u], v[2u]);
+  uint3 res = v;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store3(0u, textureDimensions_0de70c());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store3(0u, textureDimensions_0de70c());
+}
+
diff --git a/test/tint/builtins/gen/literal/textureDimensions/0ff9a4.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/textureDimensions/0ff9a4.wgsl.expected.ir.dxc.hlsl
index 1fac62e..c0f2c9a 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/0ff9a4.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/0ff9a4.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,46 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  uint2 prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureDimensions
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation uint2 VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+TextureCubeArray arg_0 : register(t0, space1);
+uint2 textureDimensions_0ff9a4() {
+  TextureCubeArray v = arg_0;
+  uint4 v_1 = (0u).xxxx;
+  v.GetDimensions(uint(1), v_1[0u], v_1[1u], v_1[2u], v_1[3u]);
+  uint2 res = v_1.xy;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store2(0u, textureDimensions_0ff9a4());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store2(0u, textureDimensions_0ff9a4());
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = textureDimensions_0ff9a4();
+  VertexOutput v_2 = tint_symbol;
+  return v_2;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_3 = vertex_main_inner();
+  VertexOutput v_4 = v_3;
+  VertexOutput v_5 = v_3;
+  vertex_main_outputs v_6 = {v_5.prevent_dce, v_4.pos};
+  return v_6;
+}
+
diff --git a/test/tint/builtins/gen/literal/textureDimensions/0ff9a4.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/textureDimensions/0ff9a4.wgsl.expected.ir.fxc.hlsl
index 1fac62e..c0f2c9a 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/0ff9a4.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/0ff9a4.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,46 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  uint2 prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureDimensions
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation uint2 VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+TextureCubeArray arg_0 : register(t0, space1);
+uint2 textureDimensions_0ff9a4() {
+  TextureCubeArray v = arg_0;
+  uint4 v_1 = (0u).xxxx;
+  v.GetDimensions(uint(1), v_1[0u], v_1[1u], v_1[2u], v_1[3u]);
+  uint2 res = v_1.xy;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store2(0u, textureDimensions_0ff9a4());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store2(0u, textureDimensions_0ff9a4());
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = textureDimensions_0ff9a4();
+  VertexOutput v_2 = tint_symbol;
+  return v_2;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_3 = vertex_main_inner();
+  VertexOutput v_4 = v_3;
+  VertexOutput v_5 = v_3;
+  vertex_main_outputs v_6 = {v_5.prevent_dce, v_4.pos};
+  return v_6;
+}
+
diff --git a/test/tint/builtins/gen/literal/textureDimensions/135176.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/textureDimensions/135176.wgsl.expected.ir.dxc.hlsl
index 1fac62e..cba0aa0f 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/135176.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/135176.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,45 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  uint2 prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureDimensions
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation uint2 VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+Texture2DArray<float4> arg_0 : register(t0, space1);
+uint2 textureDimensions_135176() {
+  uint3 v = (0u).xxx;
+  arg_0.GetDimensions(v[0u], v[1u], v[2u]);
+  uint2 res = v.xy;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store2(0u, textureDimensions_135176());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store2(0u, textureDimensions_135176());
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = textureDimensions_135176();
+  VertexOutput v_1 = tint_symbol;
+  return v_1;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_2 = vertex_main_inner();
+  VertexOutput v_3 = v_2;
+  VertexOutput v_4 = v_2;
+  vertex_main_outputs v_5 = {v_4.prevent_dce, v_3.pos};
+  return v_5;
+}
+
diff --git a/test/tint/builtins/gen/literal/textureDimensions/135176.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/textureDimensions/135176.wgsl.expected.ir.fxc.hlsl
index 1fac62e..cba0aa0f 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/135176.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/135176.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,45 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  uint2 prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureDimensions
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation uint2 VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+Texture2DArray<float4> arg_0 : register(t0, space1);
+uint2 textureDimensions_135176() {
+  uint3 v = (0u).xxx;
+  arg_0.GetDimensions(v[0u], v[1u], v[2u]);
+  uint2 res = v.xy;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store2(0u, textureDimensions_135176());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store2(0u, textureDimensions_135176());
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = textureDimensions_135176();
+  VertexOutput v_1 = tint_symbol;
+  return v_1;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_2 = vertex_main_inner();
+  VertexOutput v_3 = v_2;
+  VertexOutput v_4 = v_2;
+  vertex_main_outputs v_5 = {v_4.prevent_dce, v_3.pos};
+  return v_5;
+}
+
diff --git a/test/tint/builtins/gen/literal/textureDimensions/13f8db.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/textureDimensions/13f8db.wgsl.expected.ir.dxc.hlsl
index 1fac62e..d3038ab 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/13f8db.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/13f8db.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,46 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  uint2 prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureDimensions
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation uint2 VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+Texture2D<float4> arg_0 : register(t0, space1);
+uint2 textureDimensions_13f8db() {
+  Texture2D<float4> v = arg_0;
+  uint3 v_1 = (0u).xxx;
+  v.GetDimensions(uint(1u), v_1[0u], v_1[1u], v_1[2u]);
+  uint2 res = v_1.xy;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store2(0u, textureDimensions_13f8db());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store2(0u, textureDimensions_13f8db());
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = textureDimensions_13f8db();
+  VertexOutput v_2 = tint_symbol;
+  return v_2;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_3 = vertex_main_inner();
+  VertexOutput v_4 = v_3;
+  VertexOutput v_5 = v_3;
+  vertex_main_outputs v_6 = {v_5.prevent_dce, v_4.pos};
+  return v_6;
+}
+
diff --git a/test/tint/builtins/gen/literal/textureDimensions/13f8db.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/textureDimensions/13f8db.wgsl.expected.ir.fxc.hlsl
index 1fac62e..d3038ab 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/13f8db.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/13f8db.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,46 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  uint2 prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureDimensions
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation uint2 VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+Texture2D<float4> arg_0 : register(t0, space1);
+uint2 textureDimensions_13f8db() {
+  Texture2D<float4> v = arg_0;
+  uint3 v_1 = (0u).xxx;
+  v.GetDimensions(uint(1u), v_1[0u], v_1[1u], v_1[2u]);
+  uint2 res = v_1.xy;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store2(0u, textureDimensions_13f8db());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store2(0u, textureDimensions_13f8db());
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = textureDimensions_13f8db();
+  VertexOutput v_2 = tint_symbol;
+  return v_2;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_3 = vertex_main_inner();
+  VertexOutput v_4 = v_3;
+  VertexOutput v_5 = v_3;
+  vertex_main_outputs v_6 = {v_5.prevent_dce, v_4.pos};
+  return v_6;
+}
+
diff --git a/test/tint/builtins/gen/literal/textureDimensions/1417dd.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/textureDimensions/1417dd.wgsl.expected.ir.dxc.hlsl
index 1fac62e..7c0396a 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/1417dd.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/1417dd.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,19 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureDimensions
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWByteAddressBuffer prevent_dce : register(u0);
+RWTexture2D<int4> arg_0 : register(u0, space1);
+uint2 textureDimensions_1417dd() {
+  uint2 v = (0u).xx;
+  arg_0.GetDimensions(v[0u], v[1u]);
+  uint2 res = v;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store2(0u, textureDimensions_1417dd());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store2(0u, textureDimensions_1417dd());
+}
+
diff --git a/test/tint/builtins/gen/literal/textureDimensions/1417dd.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/textureDimensions/1417dd.wgsl.expected.ir.fxc.hlsl
index 1fac62e..7c0396a 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/1417dd.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/1417dd.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,19 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureDimensions
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWByteAddressBuffer prevent_dce : register(u0);
+RWTexture2D<int4> arg_0 : register(u0, space1);
+uint2 textureDimensions_1417dd() {
+  uint2 v = (0u).xx;
+  arg_0.GetDimensions(v[0u], v[1u]);
+  uint2 res = v;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store2(0u, textureDimensions_1417dd());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store2(0u, textureDimensions_1417dd());
+}
+
diff --git a/test/tint/builtins/gen/literal/textureDimensions/15aa17.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/textureDimensions/15aa17.wgsl.expected.ir.dxc.hlsl
index 1fac62e..a9a72d4 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/15aa17.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/15aa17.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,19 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureDimensions
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWByteAddressBuffer prevent_dce : register(u0);
+RWTexture3D<int4> arg_0 : register(u0, space1);
+uint3 textureDimensions_15aa17() {
+  uint3 v = (0u).xxx;
+  arg_0.GetDimensions(v[0u], v[1u], v[2u]);
+  uint3 res = v;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store3(0u, textureDimensions_15aa17());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store3(0u, textureDimensions_15aa17());
+}
+
diff --git a/test/tint/builtins/gen/literal/textureDimensions/15aa17.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/textureDimensions/15aa17.wgsl.expected.ir.fxc.hlsl
index 1fac62e..a9a72d4 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/15aa17.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/15aa17.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,19 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureDimensions
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWByteAddressBuffer prevent_dce : register(u0);
+RWTexture3D<int4> arg_0 : register(u0, space1);
+uint3 textureDimensions_15aa17() {
+  uint3 v = (0u).xxx;
+  arg_0.GetDimensions(v[0u], v[1u], v[2u]);
+  uint3 res = v;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store3(0u, textureDimensions_15aa17());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store3(0u, textureDimensions_15aa17());
+}
+
diff --git a/test/tint/builtins/gen/literal/textureDimensions/15b577.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/textureDimensions/15b577.wgsl.expected.ir.dxc.hlsl
index 1fac62e..4c88f4c 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/15b577.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/15b577.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,46 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  uint2 prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureDimensions
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation uint2 VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+Texture2D<uint4> arg_0 : register(t0, space1);
+uint2 textureDimensions_15b577() {
+  Texture2D<uint4> v = arg_0;
+  uint3 v_1 = (0u).xxx;
+  v.GetDimensions(uint(1), v_1[0u], v_1[1u], v_1[2u]);
+  uint2 res = v_1.xy;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store2(0u, textureDimensions_15b577());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store2(0u, textureDimensions_15b577());
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = textureDimensions_15b577();
+  VertexOutput v_2 = tint_symbol;
+  return v_2;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_3 = vertex_main_inner();
+  VertexOutput v_4 = v_3;
+  VertexOutput v_5 = v_3;
+  vertex_main_outputs v_6 = {v_5.prevent_dce, v_4.pos};
+  return v_6;
+}
+
diff --git a/test/tint/builtins/gen/literal/textureDimensions/15b577.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/textureDimensions/15b577.wgsl.expected.ir.fxc.hlsl
index 1fac62e..4c88f4c 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/15b577.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/15b577.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,46 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  uint2 prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureDimensions
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation uint2 VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+Texture2D<uint4> arg_0 : register(t0, space1);
+uint2 textureDimensions_15b577() {
+  Texture2D<uint4> v = arg_0;
+  uint3 v_1 = (0u).xxx;
+  v.GetDimensions(uint(1), v_1[0u], v_1[1u], v_1[2u]);
+  uint2 res = v_1.xy;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store2(0u, textureDimensions_15b577());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store2(0u, textureDimensions_15b577());
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = textureDimensions_15b577();
+  VertexOutput v_2 = tint_symbol;
+  return v_2;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_3 = vertex_main_inner();
+  VertexOutput v_4 = v_3;
+  VertexOutput v_5 = v_3;
+  vertex_main_outputs v_6 = {v_5.prevent_dce, v_4.pos};
+  return v_6;
+}
+
diff --git a/test/tint/builtins/gen/literal/textureDimensions/18160d.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/textureDimensions/18160d.wgsl.expected.ir.dxc.hlsl
index 1fac62e..4f59075 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/18160d.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/18160d.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,19 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureDimensions
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWByteAddressBuffer prevent_dce : register(u0);
+RWTexture2D<float4> arg_0 : register(u0, space1);
+uint2 textureDimensions_18160d() {
+  uint2 v = (0u).xx;
+  arg_0.GetDimensions(v[0u], v[1u]);
+  uint2 res = v;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store2(0u, textureDimensions_18160d());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store2(0u, textureDimensions_18160d());
+}
+
diff --git a/test/tint/builtins/gen/literal/textureDimensions/18160d.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/textureDimensions/18160d.wgsl.expected.ir.fxc.hlsl
index 1fac62e..4f59075 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/18160d.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/18160d.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,19 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureDimensions
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWByteAddressBuffer prevent_dce : register(u0);
+RWTexture2D<float4> arg_0 : register(u0, space1);
+uint2 textureDimensions_18160d() {
+  uint2 v = (0u).xx;
+  arg_0.GetDimensions(v[0u], v[1u]);
+  uint2 res = v;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store2(0u, textureDimensions_18160d());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store2(0u, textureDimensions_18160d());
+}
+
diff --git a/test/tint/builtins/gen/literal/textureDimensions/18f19f.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/textureDimensions/18f19f.wgsl.expected.ir.dxc.hlsl
index 1fac62e..63589ae 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/18f19f.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/18f19f.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,19 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureDimensions
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWByteAddressBuffer prevent_dce : register(u0);
+RWTexture2D<float4> arg_0 : register(u0, space1);
+uint2 textureDimensions_18f19f() {
+  uint2 v = (0u).xx;
+  arg_0.GetDimensions(v[0u], v[1u]);
+  uint2 res = v;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store2(0u, textureDimensions_18f19f());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store2(0u, textureDimensions_18f19f());
+}
+
diff --git a/test/tint/builtins/gen/literal/textureDimensions/18f19f.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/textureDimensions/18f19f.wgsl.expected.ir.fxc.hlsl
index 1fac62e..63589ae 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/18f19f.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/18f19f.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,19 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureDimensions
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWByteAddressBuffer prevent_dce : register(u0);
+RWTexture2D<float4> arg_0 : register(u0, space1);
+uint2 textureDimensions_18f19f() {
+  uint2 v = (0u).xx;
+  arg_0.GetDimensions(v[0u], v[1u]);
+  uint2 res = v;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store2(0u, textureDimensions_18f19f());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store2(0u, textureDimensions_18f19f());
+}
+
diff --git a/test/tint/builtins/gen/literal/textureDimensions/1a2be7.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/textureDimensions/1a2be7.wgsl.expected.ir.dxc.hlsl
index 1fac62e..d078821 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/1a2be7.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/1a2be7.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,45 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  uint3 prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureDimensions
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation uint3 VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+Texture3D<int4> arg_0 : register(t0, space1);
+uint3 textureDimensions_1a2be7() {
+  uint3 v = (0u).xxx;
+  arg_0.GetDimensions(v[0u], v[1u], v[2u]);
+  uint3 res = v;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store3(0u, textureDimensions_1a2be7());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store3(0u, textureDimensions_1a2be7());
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = textureDimensions_1a2be7();
+  VertexOutput v_1 = tint_symbol;
+  return v_1;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_2 = vertex_main_inner();
+  VertexOutput v_3 = v_2;
+  VertexOutput v_4 = v_2;
+  vertex_main_outputs v_5 = {v_4.prevent_dce, v_3.pos};
+  return v_5;
+}
+
diff --git a/test/tint/builtins/gen/literal/textureDimensions/1a2be7.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/textureDimensions/1a2be7.wgsl.expected.ir.fxc.hlsl
index 1fac62e..d078821 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/1a2be7.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/1a2be7.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,45 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  uint3 prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureDimensions
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation uint3 VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+Texture3D<int4> arg_0 : register(t0, space1);
+uint3 textureDimensions_1a2be7() {
+  uint3 v = (0u).xxx;
+  arg_0.GetDimensions(v[0u], v[1u], v[2u]);
+  uint3 res = v;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store3(0u, textureDimensions_1a2be7());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store3(0u, textureDimensions_1a2be7());
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = textureDimensions_1a2be7();
+  VertexOutput v_1 = tint_symbol;
+  return v_1;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_2 = vertex_main_inner();
+  VertexOutput v_3 = v_2;
+  VertexOutput v_4 = v_2;
+  vertex_main_outputs v_5 = {v_4.prevent_dce, v_3.pos};
+  return v_5;
+}
+
diff --git a/test/tint/builtins/gen/literal/textureDimensions/1b720f.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/textureDimensions/1b720f.wgsl.expected.ir.dxc.hlsl
index 1fac62e..153bd32 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/1b720f.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/1b720f.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,45 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  uint3 prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureDimensions
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation uint3 VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+Texture3D<int4> arg_0 : register(t0, space1);
+uint3 textureDimensions_1b720f() {
+  uint3 v = (0u).xxx;
+  arg_0.GetDimensions(v[0u], v[1u], v[2u]);
+  uint3 res = v;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store3(0u, textureDimensions_1b720f());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store3(0u, textureDimensions_1b720f());
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = textureDimensions_1b720f();
+  VertexOutput v_1 = tint_symbol;
+  return v_1;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_2 = vertex_main_inner();
+  VertexOutput v_3 = v_2;
+  VertexOutput v_4 = v_2;
+  vertex_main_outputs v_5 = {v_4.prevent_dce, v_3.pos};
+  return v_5;
+}
+
diff --git a/test/tint/builtins/gen/literal/textureDimensions/1b720f.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/textureDimensions/1b720f.wgsl.expected.ir.fxc.hlsl
index 1fac62e..153bd32 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/1b720f.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/1b720f.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,45 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  uint3 prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureDimensions
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation uint3 VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+Texture3D<int4> arg_0 : register(t0, space1);
+uint3 textureDimensions_1b720f() {
+  uint3 v = (0u).xxx;
+  arg_0.GetDimensions(v[0u], v[1u], v[2u]);
+  uint3 res = v;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store3(0u, textureDimensions_1b720f());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store3(0u, textureDimensions_1b720f());
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = textureDimensions_1b720f();
+  VertexOutput v_1 = tint_symbol;
+  return v_1;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_2 = vertex_main_inner();
+  VertexOutput v_3 = v_2;
+  VertexOutput v_4 = v_2;
+  vertex_main_outputs v_5 = {v_4.prevent_dce, v_3.pos};
+  return v_5;
+}
+
diff --git a/test/tint/builtins/gen/literal/textureDimensions/1bc428.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/textureDimensions/1bc428.wgsl.expected.ir.dxc.hlsl
index 1fac62e..03a6232 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/1bc428.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/1bc428.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,114 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureDimensions
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec3<u32>;
+
+@group(1) @binding(0) var arg_0 : texture_3d<f32>;
+
+fn textureDimensions_1bc428() -> vec3<u32> {
+  var res : vec3<u32> = textureDimensions(arg_0, 1i);
+  return res;
+}
+
+@fragment
+fn fragment_main() {
+  prevent_dce = textureDimensions_1bc428();
+}
+
+@compute @workgroup_size(1)
+fn compute_main() {
+  prevent_dce = textureDimensions_1bc428();
+}
+
+struct VertexOutput {
+  @builtin(position)
+  pos : vec4<f32>,
+  @location(0) @interpolate(flat)
+  prevent_dce : vec3<u32>,
+}
+
+@vertex
+fn vertex_main() -> VertexOutput {
+  var tint_symbol : VertexOutput;
+  tint_symbol.pos = vec4<f32>();
+  tint_symbol.prevent_dce = textureDimensions_1bc428();
+  return tint_symbol;
+}
+
+Failed to generate: :28:49 error: var: initializer type 'vec2<u32>' does not match store type 'vec3<u32>'
+    %res:ptr<function, vec3<u32>, read_write> = var, %13
+                                                ^^^
+
+:17:3 note: in block
+  $B2: {
+  ^^^
+
+note: # Disassembly
+VertexOutput = struct @align(16) {
+  pos:vec4<f32> @offset(0)
+  prevent_dce:vec3<u32> @offset(16)
+}
+
+vertex_main_outputs = struct @align(16) {
+  VertexOutput_prevent_dce:vec3<u32> @offset(0), @location(0), @interpolate(flat)
+  VertexOutput_pos:vec4<f32> @offset(16), @builtin(position)
+}
+
+$B1: {  # root
+  %prevent_dce:hlsl.byte_address_buffer<read_write> = var @binding_point(0, 0)
+  %arg_0:ptr<handle, texture_3d<f32>, read> = var @binding_point(1, 0)
+}
+
+%textureDimensions_1bc428 = func():vec3<u32> {
+  $B2: {
+    %4:texture_3d<f32> = load %arg_0
+    %5:u32 = convert 1i
+    %6:ptr<function, vec4<u32>, read_write> = var
+    %7:ptr<function, u32, read_write> = access %6, 0u
+    %8:ptr<function, u32, read_write> = access %6, 1u
+    %9:ptr<function, u32, read_write> = access %6, 2u
+    %10:ptr<function, u32, read_write> = access %6, 3u
+    %11:void = %4.GetDimensions %5, %7, %8, %9, %10
+    %12:vec4<u32> = load %6
+    %13:vec2<u32> = swizzle %12, xyz
+    %res:ptr<function, vec3<u32>, read_write> = var, %13
+    %15:vec3<u32> = load %res
+    ret %15
+  }
+}
+%fragment_main = @fragment func():void {
+  $B3: {
+    %17:vec3<u32> = call %textureDimensions_1bc428
+    %18:void = %prevent_dce.Store3 0u, %17
+    ret
+  }
+}
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B4: {
+    %20:vec3<u32> = call %textureDimensions_1bc428
+    %21:void = %prevent_dce.Store3 0u, %20
+    ret
+  }
+}
+%vertex_main_inner = func():VertexOutput {
+  $B5: {
+    %tint_symbol:ptr<function, VertexOutput, read_write> = var
+    %24:ptr<function, vec4<f32>, read_write> = access %tint_symbol, 0u
+    store %24, vec4<f32>(0.0f)
+    %25:ptr<function, vec3<u32>, read_write> = access %tint_symbol, 1u
+    %26:vec3<u32> = call %textureDimensions_1bc428
+    store %25, %26
+    %27:VertexOutput = load %tint_symbol
+    ret %27
+  }
+}
+%vertex_main = @vertex func():vertex_main_outputs {
+  $B6: {
+    %29:VertexOutput = call %vertex_main_inner
+    %30:vec4<f32> = access %29, 0u
+    %31:vec3<u32> = access %29, 1u
+    %32:vertex_main_outputs = construct %31, %30
+    ret %32
+  }
+}
+
diff --git a/test/tint/builtins/gen/literal/textureDimensions/1bc428.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/textureDimensions/1bc428.wgsl.expected.ir.fxc.hlsl
index 1fac62e..03a6232 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/1bc428.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/1bc428.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,114 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureDimensions
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec3<u32>;
+
+@group(1) @binding(0) var arg_0 : texture_3d<f32>;
+
+fn textureDimensions_1bc428() -> vec3<u32> {
+  var res : vec3<u32> = textureDimensions(arg_0, 1i);
+  return res;
+}
+
+@fragment
+fn fragment_main() {
+  prevent_dce = textureDimensions_1bc428();
+}
+
+@compute @workgroup_size(1)
+fn compute_main() {
+  prevent_dce = textureDimensions_1bc428();
+}
+
+struct VertexOutput {
+  @builtin(position)
+  pos : vec4<f32>,
+  @location(0) @interpolate(flat)
+  prevent_dce : vec3<u32>,
+}
+
+@vertex
+fn vertex_main() -> VertexOutput {
+  var tint_symbol : VertexOutput;
+  tint_symbol.pos = vec4<f32>();
+  tint_symbol.prevent_dce = textureDimensions_1bc428();
+  return tint_symbol;
+}
+
+Failed to generate: :28:49 error: var: initializer type 'vec2<u32>' does not match store type 'vec3<u32>'
+    %res:ptr<function, vec3<u32>, read_write> = var, %13
+                                                ^^^
+
+:17:3 note: in block
+  $B2: {
+  ^^^
+
+note: # Disassembly
+VertexOutput = struct @align(16) {
+  pos:vec4<f32> @offset(0)
+  prevent_dce:vec3<u32> @offset(16)
+}
+
+vertex_main_outputs = struct @align(16) {
+  VertexOutput_prevent_dce:vec3<u32> @offset(0), @location(0), @interpolate(flat)
+  VertexOutput_pos:vec4<f32> @offset(16), @builtin(position)
+}
+
+$B1: {  # root
+  %prevent_dce:hlsl.byte_address_buffer<read_write> = var @binding_point(0, 0)
+  %arg_0:ptr<handle, texture_3d<f32>, read> = var @binding_point(1, 0)
+}
+
+%textureDimensions_1bc428 = func():vec3<u32> {
+  $B2: {
+    %4:texture_3d<f32> = load %arg_0
+    %5:u32 = convert 1i
+    %6:ptr<function, vec4<u32>, read_write> = var
+    %7:ptr<function, u32, read_write> = access %6, 0u
+    %8:ptr<function, u32, read_write> = access %6, 1u
+    %9:ptr<function, u32, read_write> = access %6, 2u
+    %10:ptr<function, u32, read_write> = access %6, 3u
+    %11:void = %4.GetDimensions %5, %7, %8, %9, %10
+    %12:vec4<u32> = load %6
+    %13:vec2<u32> = swizzle %12, xyz
+    %res:ptr<function, vec3<u32>, read_write> = var, %13
+    %15:vec3<u32> = load %res
+    ret %15
+  }
+}
+%fragment_main = @fragment func():void {
+  $B3: {
+    %17:vec3<u32> = call %textureDimensions_1bc428
+    %18:void = %prevent_dce.Store3 0u, %17
+    ret
+  }
+}
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B4: {
+    %20:vec3<u32> = call %textureDimensions_1bc428
+    %21:void = %prevent_dce.Store3 0u, %20
+    ret
+  }
+}
+%vertex_main_inner = func():VertexOutput {
+  $B5: {
+    %tint_symbol:ptr<function, VertexOutput, read_write> = var
+    %24:ptr<function, vec4<f32>, read_write> = access %tint_symbol, 0u
+    store %24, vec4<f32>(0.0f)
+    %25:ptr<function, vec3<u32>, read_write> = access %tint_symbol, 1u
+    %26:vec3<u32> = call %textureDimensions_1bc428
+    store %25, %26
+    %27:VertexOutput = load %tint_symbol
+    ret %27
+  }
+}
+%vertex_main = @vertex func():vertex_main_outputs {
+  $B6: {
+    %29:VertexOutput = call %vertex_main_inner
+    %30:vec4<f32> = access %29, 0u
+    %31:vec3<u32> = access %29, 1u
+    %32:vertex_main_outputs = construct %31, %30
+    ret %32
+  }
+}
+
diff --git a/test/tint/builtins/gen/literal/textureDimensions/1bd78c.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/textureDimensions/1bd78c.wgsl.expected.ir.dxc.hlsl
index 1fac62e..ba323ec 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/1bd78c.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/1bd78c.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,46 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  uint2 prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureDimensions
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation uint2 VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+Texture2D<float4> arg_0 : register(t0, space1);
+uint2 textureDimensions_1bd78c() {
+  Texture2D<float4> v = arg_0;
+  uint3 v_1 = (0u).xxx;
+  v.GetDimensions(uint(1), v_1[0u], v_1[1u], v_1[2u]);
+  uint2 res = v_1.xy;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store2(0u, textureDimensions_1bd78c());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store2(0u, textureDimensions_1bd78c());
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = textureDimensions_1bd78c();
+  VertexOutput v_2 = tint_symbol;
+  return v_2;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_3 = vertex_main_inner();
+  VertexOutput v_4 = v_3;
+  VertexOutput v_5 = v_3;
+  vertex_main_outputs v_6 = {v_5.prevent_dce, v_4.pos};
+  return v_6;
+}
+
diff --git a/test/tint/builtins/gen/literal/textureDimensions/1bd78c.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/textureDimensions/1bd78c.wgsl.expected.ir.fxc.hlsl
index 1fac62e..ba323ec 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/1bd78c.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/1bd78c.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,46 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  uint2 prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureDimensions
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation uint2 VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+Texture2D<float4> arg_0 : register(t0, space1);
+uint2 textureDimensions_1bd78c() {
+  Texture2D<float4> v = arg_0;
+  uint3 v_1 = (0u).xxx;
+  v.GetDimensions(uint(1), v_1[0u], v_1[1u], v_1[2u]);
+  uint2 res = v_1.xy;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store2(0u, textureDimensions_1bd78c());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store2(0u, textureDimensions_1bd78c());
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = textureDimensions_1bd78c();
+  VertexOutput v_2 = tint_symbol;
+  return v_2;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_3 = vertex_main_inner();
+  VertexOutput v_4 = v_3;
+  VertexOutput v_5 = v_3;
+  vertex_main_outputs v_6 = {v_5.prevent_dce, v_4.pos};
+  return v_6;
+}
+
diff --git a/test/tint/builtins/gen/literal/textureDimensions/1e4024.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/textureDimensions/1e4024.wgsl.expected.ir.dxc.hlsl
index 1fac62e..a632a46 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/1e4024.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/1e4024.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,19 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureDimensions
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWByteAddressBuffer prevent_dce : register(u0);
+RWTexture2D<float4> arg_0 : register(u0, space1);
+uint2 textureDimensions_1e4024() {
+  uint2 v = (0u).xx;
+  arg_0.GetDimensions(v[0u], v[1u]);
+  uint2 res = v;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store2(0u, textureDimensions_1e4024());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store2(0u, textureDimensions_1e4024());
+}
+
diff --git a/test/tint/builtins/gen/literal/textureDimensions/1e4024.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/textureDimensions/1e4024.wgsl.expected.ir.fxc.hlsl
index 1fac62e..a632a46 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/1e4024.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/1e4024.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,19 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureDimensions
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWByteAddressBuffer prevent_dce : register(u0);
+RWTexture2D<float4> arg_0 : register(u0, space1);
+uint2 textureDimensions_1e4024() {
+  uint2 v = (0u).xx;
+  arg_0.GetDimensions(v[0u], v[1u]);
+  uint2 res = v;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store2(0u, textureDimensions_1e4024());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store2(0u, textureDimensions_1e4024());
+}
+
diff --git a/test/tint/builtins/gen/literal/textureDimensions/20eaad.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/textureDimensions/20eaad.wgsl.expected.ir.dxc.hlsl
index 1fac62e..afcdd07 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/20eaad.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/20eaad.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,19 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureDimensions
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWByteAddressBuffer prevent_dce : register(u0);
+RWTexture3D<int4> arg_0 : register(u0, space1);
+uint3 textureDimensions_20eaad() {
+  uint3 v = (0u).xxx;
+  arg_0.GetDimensions(v[0u], v[1u], v[2u]);
+  uint3 res = v;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store3(0u, textureDimensions_20eaad());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store3(0u, textureDimensions_20eaad());
+}
+
diff --git a/test/tint/builtins/gen/literal/textureDimensions/20eaad.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/textureDimensions/20eaad.wgsl.expected.ir.fxc.hlsl
index 1fac62e..afcdd07 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/20eaad.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/20eaad.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,19 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureDimensions
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWByteAddressBuffer prevent_dce : register(u0);
+RWTexture3D<int4> arg_0 : register(u0, space1);
+uint3 textureDimensions_20eaad() {
+  uint3 v = (0u).xxx;
+  arg_0.GetDimensions(v[0u], v[1u], v[2u]);
+  uint3 res = v;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store3(0u, textureDimensions_20eaad());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store3(0u, textureDimensions_20eaad());
+}
+
diff --git a/test/tint/builtins/gen/literal/textureDimensions/20ecef.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/textureDimensions/20ecef.wgsl.expected.ir.dxc.hlsl
index 1fac62e..4c80986 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/20ecef.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/20ecef.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,19 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureDimensions
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWByteAddressBuffer prevent_dce : register(u0);
+RWTexture1D<float4> arg_0 : register(u0, space1);
+uint textureDimensions_20ecef() {
+  uint v = 0u;
+  arg_0.GetDimensions(v);
+  uint res = v;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store(0u, textureDimensions_20ecef());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store(0u, textureDimensions_20ecef());
+}
+
diff --git a/test/tint/builtins/gen/literal/textureDimensions/20ecef.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/textureDimensions/20ecef.wgsl.expected.ir.fxc.hlsl
index 1fac62e..4c80986 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/20ecef.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/20ecef.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,19 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureDimensions
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWByteAddressBuffer prevent_dce : register(u0);
+RWTexture1D<float4> arg_0 : register(u0, space1);
+uint textureDimensions_20ecef() {
+  uint v = 0u;
+  arg_0.GetDimensions(v);
+  uint res = v;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store(0u, textureDimensions_20ecef());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store(0u, textureDimensions_20ecef());
+}
+
diff --git a/test/tint/builtins/gen/literal/textureDimensions/212362.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/textureDimensions/212362.wgsl.expected.ir.dxc.hlsl
index 1fac62e..dc61b8c 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/212362.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/212362.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,45 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  uint prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureDimensions
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation uint VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+Texture1D<float4> arg_0 : register(t0, space1);
+uint textureDimensions_212362() {
+  uint v = 0u;
+  arg_0.GetDimensions(v);
+  uint res = v;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store(0u, textureDimensions_212362());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store(0u, textureDimensions_212362());
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = textureDimensions_212362();
+  VertexOutput v_1 = tint_symbol;
+  return v_1;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_2 = vertex_main_inner();
+  VertexOutput v_3 = v_2;
+  VertexOutput v_4 = v_2;
+  vertex_main_outputs v_5 = {v_4.prevent_dce, v_3.pos};
+  return v_5;
+}
+
diff --git a/test/tint/builtins/gen/literal/textureDimensions/212362.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/textureDimensions/212362.wgsl.expected.ir.fxc.hlsl
index 1fac62e..dc61b8c 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/212362.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/212362.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,45 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  uint prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureDimensions
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation uint VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+Texture1D<float4> arg_0 : register(t0, space1);
+uint textureDimensions_212362() {
+  uint v = 0u;
+  arg_0.GetDimensions(v);
+  uint res = v;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store(0u, textureDimensions_212362());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store(0u, textureDimensions_212362());
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = textureDimensions_212362();
+  VertexOutput v_1 = tint_symbol;
+  return v_1;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_2 = vertex_main_inner();
+  VertexOutput v_3 = v_2;
+  VertexOutput v_4 = v_2;
+  vertex_main_outputs v_5 = {v_4.prevent_dce, v_3.pos};
+  return v_5;
+}
+
diff --git a/test/tint/builtins/gen/literal/textureDimensions/224113.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/textureDimensions/224113.wgsl.expected.ir.dxc.hlsl
index 1fac62e..c96e386 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/224113.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/224113.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,19 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureDimensions
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWByteAddressBuffer prevent_dce : register(u0);
+RWTexture2D<float4> arg_0 : register(u0, space1);
+uint2 textureDimensions_224113() {
+  uint2 v = (0u).xx;
+  arg_0.GetDimensions(v[0u], v[1u]);
+  uint2 res = v;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store2(0u, textureDimensions_224113());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store2(0u, textureDimensions_224113());
+}
+
diff --git a/test/tint/builtins/gen/literal/textureDimensions/224113.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/textureDimensions/224113.wgsl.expected.ir.fxc.hlsl
index 1fac62e..c96e386 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/224113.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/224113.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,19 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureDimensions
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWByteAddressBuffer prevent_dce : register(u0);
+RWTexture2D<float4> arg_0 : register(u0, space1);
+uint2 textureDimensions_224113() {
+  uint2 v = (0u).xx;
+  arg_0.GetDimensions(v[0u], v[1u]);
+  uint2 res = v;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store2(0u, textureDimensions_224113());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store2(0u, textureDimensions_224113());
+}
+
diff --git a/test/tint/builtins/gen/literal/textureDimensions/22b5b6.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/textureDimensions/22b5b6.wgsl.expected.ir.dxc.hlsl
index 1fac62e..bb0dfb7 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/22b5b6.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/22b5b6.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,46 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  uint2 prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureDimensions
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation uint2 VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+TextureCubeArray<uint4> arg_0 : register(t0, space1);
+uint2 textureDimensions_22b5b6() {
+  TextureCubeArray<uint4> v = arg_0;
+  uint4 v_1 = (0u).xxxx;
+  v.GetDimensions(uint(1), v_1[0u], v_1[1u], v_1[2u], v_1[3u]);
+  uint2 res = v_1.xy;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store2(0u, textureDimensions_22b5b6());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store2(0u, textureDimensions_22b5b6());
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = textureDimensions_22b5b6();
+  VertexOutput v_2 = tint_symbol;
+  return v_2;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_3 = vertex_main_inner();
+  VertexOutput v_4 = v_3;
+  VertexOutput v_5 = v_3;
+  vertex_main_outputs v_6 = {v_5.prevent_dce, v_4.pos};
+  return v_6;
+}
+
diff --git a/test/tint/builtins/gen/literal/textureDimensions/22b5b6.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/textureDimensions/22b5b6.wgsl.expected.ir.fxc.hlsl
index 1fac62e..bb0dfb7 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/22b5b6.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/22b5b6.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,46 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  uint2 prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureDimensions
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation uint2 VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+TextureCubeArray<uint4> arg_0 : register(t0, space1);
+uint2 textureDimensions_22b5b6() {
+  TextureCubeArray<uint4> v = arg_0;
+  uint4 v_1 = (0u).xxxx;
+  v.GetDimensions(uint(1), v_1[0u], v_1[1u], v_1[2u], v_1[3u]);
+  uint2 res = v_1.xy;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store2(0u, textureDimensions_22b5b6());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store2(0u, textureDimensions_22b5b6());
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = textureDimensions_22b5b6();
+  VertexOutput v_2 = tint_symbol;
+  return v_2;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_3 = vertex_main_inner();
+  VertexOutput v_4 = v_3;
+  VertexOutput v_5 = v_3;
+  vertex_main_outputs v_6 = {v_5.prevent_dce, v_4.pos};
+  return v_6;
+}
+
diff --git a/test/tint/builtins/gen/literal/textureDimensions/24db07.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/textureDimensions/24db07.wgsl.expected.ir.dxc.hlsl
index 1fac62e..58cb761 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/24db07.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/24db07.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,45 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  uint2 prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureDimensions
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation uint2 VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+Texture2D<float4> arg_0 : register(t0, space1);
+uint2 textureDimensions_24db07() {
+  uint2 v = (0u).xx;
+  arg_0.GetDimensions(v[0u], v[1u]);
+  uint2 res = v;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store2(0u, textureDimensions_24db07());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store2(0u, textureDimensions_24db07());
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = textureDimensions_24db07();
+  VertexOutput v_1 = tint_symbol;
+  return v_1;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_2 = vertex_main_inner();
+  VertexOutput v_3 = v_2;
+  VertexOutput v_4 = v_2;
+  vertex_main_outputs v_5 = {v_4.prevent_dce, v_3.pos};
+  return v_5;
+}
+
diff --git a/test/tint/builtins/gen/literal/textureDimensions/24db07.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/textureDimensions/24db07.wgsl.expected.ir.fxc.hlsl
index 1fac62e..58cb761 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/24db07.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/24db07.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,45 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  uint2 prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureDimensions
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation uint2 VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+Texture2D<float4> arg_0 : register(t0, space1);
+uint2 textureDimensions_24db07() {
+  uint2 v = (0u).xx;
+  arg_0.GetDimensions(v[0u], v[1u]);
+  uint2 res = v;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store2(0u, textureDimensions_24db07());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store2(0u, textureDimensions_24db07());
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = textureDimensions_24db07();
+  VertexOutput v_1 = tint_symbol;
+  return v_1;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_2 = vertex_main_inner();
+  VertexOutput v_3 = v_2;
+  VertexOutput v_4 = v_2;
+  vertex_main_outputs v_5 = {v_4.prevent_dce, v_3.pos};
+  return v_5;
+}
+
diff --git a/test/tint/builtins/gen/literal/textureDimensions/25d284.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/textureDimensions/25d284.wgsl.expected.ir.dxc.hlsl
index 1fac62e..14f18ae 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/25d284.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/25d284.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,19 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureDimensions
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWByteAddressBuffer prevent_dce : register(u0);
+RWTexture2DArray<float4> arg_0 : register(u0, space1);
+uint2 textureDimensions_25d284() {
+  uint3 v = (0u).xxx;
+  arg_0.GetDimensions(v[0u], v[1u], v[2u]);
+  uint2 res = v.xy;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store2(0u, textureDimensions_25d284());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store2(0u, textureDimensions_25d284());
+}
+
diff --git a/test/tint/builtins/gen/literal/textureDimensions/25d284.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/textureDimensions/25d284.wgsl.expected.ir.fxc.hlsl
index 1fac62e..14f18ae 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/25d284.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/25d284.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,19 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureDimensions
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWByteAddressBuffer prevent_dce : register(u0);
+RWTexture2DArray<float4> arg_0 : register(u0, space1);
+uint2 textureDimensions_25d284() {
+  uint3 v = (0u).xxx;
+  arg_0.GetDimensions(v[0u], v[1u], v[2u]);
+  uint2 res = v.xy;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store2(0u, textureDimensions_25d284());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store2(0u, textureDimensions_25d284());
+}
+
diff --git a/test/tint/builtins/gen/literal/textureDimensions/2674d8.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/textureDimensions/2674d8.wgsl.expected.ir.dxc.hlsl
index 1fac62e..8e3df27 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/2674d8.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/2674d8.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,19 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureDimensions
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWByteAddressBuffer prevent_dce : register(u0);
+RWTexture2DArray<uint4> arg_0 : register(u0, space1);
+uint2 textureDimensions_2674d8() {
+  uint3 v = (0u).xxx;
+  arg_0.GetDimensions(v[0u], v[1u], v[2u]);
+  uint2 res = v.xy;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store2(0u, textureDimensions_2674d8());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store2(0u, textureDimensions_2674d8());
+}
+
diff --git a/test/tint/builtins/gen/literal/textureDimensions/2674d8.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/textureDimensions/2674d8.wgsl.expected.ir.fxc.hlsl
index 1fac62e..8e3df27 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/2674d8.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/2674d8.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,19 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureDimensions
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWByteAddressBuffer prevent_dce : register(u0);
+RWTexture2DArray<uint4> arg_0 : register(u0, space1);
+uint2 textureDimensions_2674d8() {
+  uint3 v = (0u).xxx;
+  arg_0.GetDimensions(v[0u], v[1u], v[2u]);
+  uint2 res = v.xy;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store2(0u, textureDimensions_2674d8());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store2(0u, textureDimensions_2674d8());
+}
+
diff --git a/test/tint/builtins/gen/literal/textureDimensions/268ddb.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/textureDimensions/268ddb.wgsl.expected.ir.dxc.hlsl
index 1fac62e..647e0f7 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/268ddb.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/268ddb.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,45 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  uint3 prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureDimensions
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation uint3 VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+Texture3D<uint4> arg_0 : register(t0, space1);
+uint3 textureDimensions_268ddb() {
+  uint3 v = (0u).xxx;
+  arg_0.GetDimensions(v[0u], v[1u], v[2u]);
+  uint3 res = v;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store3(0u, textureDimensions_268ddb());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store3(0u, textureDimensions_268ddb());
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = textureDimensions_268ddb();
+  VertexOutput v_1 = tint_symbol;
+  return v_1;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_2 = vertex_main_inner();
+  VertexOutput v_3 = v_2;
+  VertexOutput v_4 = v_2;
+  vertex_main_outputs v_5 = {v_4.prevent_dce, v_3.pos};
+  return v_5;
+}
+
diff --git a/test/tint/builtins/gen/literal/textureDimensions/268ddb.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/textureDimensions/268ddb.wgsl.expected.ir.fxc.hlsl
index 1fac62e..647e0f7 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/268ddb.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/268ddb.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,45 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  uint3 prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureDimensions
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation uint3 VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+Texture3D<uint4> arg_0 : register(t0, space1);
+uint3 textureDimensions_268ddb() {
+  uint3 v = (0u).xxx;
+  arg_0.GetDimensions(v[0u], v[1u], v[2u]);
+  uint3 res = v;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store3(0u, textureDimensions_268ddb());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store3(0u, textureDimensions_268ddb());
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = textureDimensions_268ddb();
+  VertexOutput v_1 = tint_symbol;
+  return v_1;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_2 = vertex_main_inner();
+  VertexOutput v_3 = v_2;
+  VertexOutput v_4 = v_2;
+  vertex_main_outputs v_5 = {v_4.prevent_dce, v_3.pos};
+  return v_5;
+}
+
diff --git a/test/tint/builtins/gen/literal/textureDimensions/26d6bf.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/textureDimensions/26d6bf.wgsl.expected.ir.dxc.hlsl
index 1fac62e..3a3ae84 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/26d6bf.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/26d6bf.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,45 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  uint prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureDimensions
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation uint VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+Texture1D<float4> arg_0 : register(t0, space1);
+uint textureDimensions_26d6bf() {
+  uint v = 0u;
+  arg_0.GetDimensions(v);
+  uint res = v;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store(0u, textureDimensions_26d6bf());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store(0u, textureDimensions_26d6bf());
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = textureDimensions_26d6bf();
+  VertexOutput v_1 = tint_symbol;
+  return v_1;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_2 = vertex_main_inner();
+  VertexOutput v_3 = v_2;
+  VertexOutput v_4 = v_2;
+  vertex_main_outputs v_5 = {v_4.prevent_dce, v_3.pos};
+  return v_5;
+}
+
diff --git a/test/tint/builtins/gen/literal/textureDimensions/26d6bf.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/textureDimensions/26d6bf.wgsl.expected.ir.fxc.hlsl
index 1fac62e..3a3ae84 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/26d6bf.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/26d6bf.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,45 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  uint prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureDimensions
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation uint VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+Texture1D<float4> arg_0 : register(t0, space1);
+uint textureDimensions_26d6bf() {
+  uint v = 0u;
+  arg_0.GetDimensions(v);
+  uint res = v;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store(0u, textureDimensions_26d6bf());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store(0u, textureDimensions_26d6bf());
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = textureDimensions_26d6bf();
+  VertexOutput v_1 = tint_symbol;
+  return v_1;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_2 = vertex_main_inner();
+  VertexOutput v_3 = v_2;
+  VertexOutput v_4 = v_2;
+  vertex_main_outputs v_5 = {v_4.prevent_dce, v_3.pos};
+  return v_5;
+}
+
diff --git a/test/tint/builtins/gen/literal/textureDimensions/282978.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/textureDimensions/282978.wgsl.expected.ir.dxc.hlsl
index 1fac62e..ced44ee 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/282978.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/282978.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,19 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureDimensions
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWByteAddressBuffer prevent_dce : register(u0);
+RWTexture3D<float4> arg_0 : register(u0, space1);
+uint3 textureDimensions_282978() {
+  uint3 v = (0u).xxx;
+  arg_0.GetDimensions(v[0u], v[1u], v[2u]);
+  uint3 res = v;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store3(0u, textureDimensions_282978());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store3(0u, textureDimensions_282978());
+}
+
diff --git a/test/tint/builtins/gen/literal/textureDimensions/282978.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/textureDimensions/282978.wgsl.expected.ir.fxc.hlsl
index 1fac62e..ced44ee 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/282978.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/282978.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,19 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureDimensions
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWByteAddressBuffer prevent_dce : register(u0);
+RWTexture3D<float4> arg_0 : register(u0, space1);
+uint3 textureDimensions_282978() {
+  uint3 v = (0u).xxx;
+  arg_0.GetDimensions(v[0u], v[1u], v[2u]);
+  uint3 res = v;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store3(0u, textureDimensions_282978());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store3(0u, textureDimensions_282978());
+}
+
diff --git a/test/tint/builtins/gen/literal/textureDimensions/283b58.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/textureDimensions/283b58.wgsl.expected.ir.dxc.hlsl
index 1fac62e..89a8e67 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/283b58.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/283b58.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,19 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureDimensions
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWByteAddressBuffer prevent_dce : register(u0);
+RWTexture1D<float4> arg_0 : register(u0, space1);
+uint textureDimensions_283b58() {
+  uint v = 0u;
+  arg_0.GetDimensions(v);
+  uint res = v;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store(0u, textureDimensions_283b58());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store(0u, textureDimensions_283b58());
+}
+
diff --git a/test/tint/builtins/gen/literal/textureDimensions/283b58.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/textureDimensions/283b58.wgsl.expected.ir.fxc.hlsl
index 1fac62e..89a8e67 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/283b58.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/283b58.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,19 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureDimensions
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWByteAddressBuffer prevent_dce : register(u0);
+RWTexture1D<float4> arg_0 : register(u0, space1);
+uint textureDimensions_283b58() {
+  uint v = 0u;
+  arg_0.GetDimensions(v);
+  uint res = v;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store(0u, textureDimensions_283b58());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store(0u, textureDimensions_283b58());
+}
+
diff --git a/test/tint/builtins/gen/literal/textureDimensions/284c27.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/textureDimensions/284c27.wgsl.expected.ir.dxc.hlsl
index 1fac62e..5731c47 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/284c27.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/284c27.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,45 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  uint prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureDimensions
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation uint VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+Texture1D<float4> arg_0 : register(t0, space1);
+uint textureDimensions_284c27() {
+  uint v = 0u;
+  arg_0.GetDimensions(v);
+  uint res = v;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store(0u, textureDimensions_284c27());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store(0u, textureDimensions_284c27());
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = textureDimensions_284c27();
+  VertexOutput v_1 = tint_symbol;
+  return v_1;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_2 = vertex_main_inner();
+  VertexOutput v_3 = v_2;
+  VertexOutput v_4 = v_2;
+  vertex_main_outputs v_5 = {v_4.prevent_dce, v_3.pos};
+  return v_5;
+}
+
diff --git a/test/tint/builtins/gen/literal/textureDimensions/284c27.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/textureDimensions/284c27.wgsl.expected.ir.fxc.hlsl
index 1fac62e..5731c47 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/284c27.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/284c27.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,45 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  uint prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureDimensions
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation uint VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+Texture1D<float4> arg_0 : register(t0, space1);
+uint textureDimensions_284c27() {
+  uint v = 0u;
+  arg_0.GetDimensions(v);
+  uint res = v;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store(0u, textureDimensions_284c27());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store(0u, textureDimensions_284c27());
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = textureDimensions_284c27();
+  VertexOutput v_1 = tint_symbol;
+  return v_1;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_2 = vertex_main_inner();
+  VertexOutput v_3 = v_2;
+  VertexOutput v_4 = v_2;
+  vertex_main_outputs v_5 = {v_4.prevent_dce, v_3.pos};
+  return v_5;
+}
+
diff --git a/test/tint/builtins/gen/literal/textureDimensions/2a58b7.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/textureDimensions/2a58b7.wgsl.expected.ir.dxc.hlsl
index 1fac62e..84e3d8e 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/2a58b7.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/2a58b7.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,19 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureDimensions
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWByteAddressBuffer prevent_dce : register(u0);
+RWTexture2DArray<int4> arg_0 : register(u0, space1);
+uint2 textureDimensions_2a58b7() {
+  uint3 v = (0u).xxx;
+  arg_0.GetDimensions(v[0u], v[1u], v[2u]);
+  uint2 res = v.xy;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store2(0u, textureDimensions_2a58b7());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store2(0u, textureDimensions_2a58b7());
+}
+
diff --git a/test/tint/builtins/gen/literal/textureDimensions/2a58b7.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/textureDimensions/2a58b7.wgsl.expected.ir.fxc.hlsl
index 1fac62e..84e3d8e 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/2a58b7.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/2a58b7.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,19 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureDimensions
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWByteAddressBuffer prevent_dce : register(u0);
+RWTexture2DArray<int4> arg_0 : register(u0, space1);
+uint2 textureDimensions_2a58b7() {
+  uint3 v = (0u).xxx;
+  arg_0.GetDimensions(v[0u], v[1u], v[2u]);
+  uint2 res = v.xy;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store2(0u, textureDimensions_2a58b7());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store2(0u, textureDimensions_2a58b7());
+}
+
diff --git a/test/tint/builtins/gen/literal/textureDimensions/2bafdf.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/textureDimensions/2bafdf.wgsl.expected.ir.dxc.hlsl
index 1fac62e..eff82d2 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/2bafdf.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/2bafdf.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,45 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  uint prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureDimensions
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation uint VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+Texture1D<float4> arg_0 : register(t0, space1);
+uint textureDimensions_2bafdf() {
+  uint v = 0u;
+  arg_0.GetDimensions(v);
+  uint res = v;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store(0u, textureDimensions_2bafdf());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store(0u, textureDimensions_2bafdf());
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = textureDimensions_2bafdf();
+  VertexOutput v_1 = tint_symbol;
+  return v_1;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_2 = vertex_main_inner();
+  VertexOutput v_3 = v_2;
+  VertexOutput v_4 = v_2;
+  vertex_main_outputs v_5 = {v_4.prevent_dce, v_3.pos};
+  return v_5;
+}
+
diff --git a/test/tint/builtins/gen/literal/textureDimensions/2bafdf.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/textureDimensions/2bafdf.wgsl.expected.ir.fxc.hlsl
index 1fac62e..eff82d2 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/2bafdf.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/2bafdf.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,45 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  uint prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureDimensions
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation uint VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+Texture1D<float4> arg_0 : register(t0, space1);
+uint textureDimensions_2bafdf() {
+  uint v = 0u;
+  arg_0.GetDimensions(v);
+  uint res = v;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store(0u, textureDimensions_2bafdf());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store(0u, textureDimensions_2bafdf());
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = textureDimensions_2bafdf();
+  VertexOutput v_1 = tint_symbol;
+  return v_1;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_2 = vertex_main_inner();
+  VertexOutput v_3 = v_2;
+  VertexOutput v_4 = v_2;
+  vertex_main_outputs v_5 = {v_4.prevent_dce, v_3.pos};
+  return v_5;
+}
+
diff --git a/test/tint/builtins/gen/literal/textureDimensions/2dc5c5.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/textureDimensions/2dc5c5.wgsl.expected.ir.dxc.hlsl
index 1fac62e..f02b526 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/2dc5c5.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/2dc5c5.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,45 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  uint prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureDimensions
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation uint VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+Texture1D<uint4> arg_0 : register(t0, space1);
+uint textureDimensions_2dc5c5() {
+  uint v = 0u;
+  arg_0.GetDimensions(v);
+  uint res = v;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store(0u, textureDimensions_2dc5c5());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store(0u, textureDimensions_2dc5c5());
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = textureDimensions_2dc5c5();
+  VertexOutput v_1 = tint_symbol;
+  return v_1;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_2 = vertex_main_inner();
+  VertexOutput v_3 = v_2;
+  VertexOutput v_4 = v_2;
+  vertex_main_outputs v_5 = {v_4.prevent_dce, v_3.pos};
+  return v_5;
+}
+
diff --git a/test/tint/builtins/gen/literal/textureDimensions/2dc5c5.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/textureDimensions/2dc5c5.wgsl.expected.ir.fxc.hlsl
index 1fac62e..f02b526 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/2dc5c5.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/2dc5c5.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,45 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  uint prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureDimensions
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation uint VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+Texture1D<uint4> arg_0 : register(t0, space1);
+uint textureDimensions_2dc5c5() {
+  uint v = 0u;
+  arg_0.GetDimensions(v);
+  uint res = v;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store(0u, textureDimensions_2dc5c5());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store(0u, textureDimensions_2dc5c5());
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = textureDimensions_2dc5c5();
+  VertexOutput v_1 = tint_symbol;
+  return v_1;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_2 = vertex_main_inner();
+  VertexOutput v_3 = v_2;
+  VertexOutput v_4 = v_2;
+  vertex_main_outputs v_5 = {v_4.prevent_dce, v_3.pos};
+  return v_5;
+}
+
diff --git a/test/tint/builtins/gen/literal/textureDimensions/2e443d.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/textureDimensions/2e443d.wgsl.expected.ir.dxc.hlsl
index 1fac62e..7256afb 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/2e443d.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/2e443d.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,46 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  uint2 prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureDimensions
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation uint2 VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+Texture2D<int4> arg_0 : register(t0, space1);
+uint2 textureDimensions_2e443d() {
+  Texture2D<int4> v = arg_0;
+  uint3 v_1 = (0u).xxx;
+  v.GetDimensions(uint(1), v_1[0u], v_1[1u], v_1[2u]);
+  uint2 res = v_1.xy;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store2(0u, textureDimensions_2e443d());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store2(0u, textureDimensions_2e443d());
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = textureDimensions_2e443d();
+  VertexOutput v_2 = tint_symbol;
+  return v_2;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_3 = vertex_main_inner();
+  VertexOutput v_4 = v_3;
+  VertexOutput v_5 = v_3;
+  vertex_main_outputs v_6 = {v_5.prevent_dce, v_4.pos};
+  return v_6;
+}
+
diff --git a/test/tint/builtins/gen/literal/textureDimensions/2e443d.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/textureDimensions/2e443d.wgsl.expected.ir.fxc.hlsl
index 1fac62e..7256afb 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/2e443d.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/2e443d.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,46 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  uint2 prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureDimensions
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation uint2 VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+Texture2D<int4> arg_0 : register(t0, space1);
+uint2 textureDimensions_2e443d() {
+  Texture2D<int4> v = arg_0;
+  uint3 v_1 = (0u).xxx;
+  v.GetDimensions(uint(1), v_1[0u], v_1[1u], v_1[2u]);
+  uint2 res = v_1.xy;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store2(0u, textureDimensions_2e443d());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store2(0u, textureDimensions_2e443d());
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = textureDimensions_2e443d();
+  VertexOutput v_2 = tint_symbol;
+  return v_2;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_3 = vertex_main_inner();
+  VertexOutput v_4 = v_3;
+  VertexOutput v_5 = v_3;
+  vertex_main_outputs v_6 = {v_5.prevent_dce, v_4.pos};
+  return v_6;
+}
+
diff --git a/test/tint/builtins/gen/literal/textureDimensions/2fd2a4.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/textureDimensions/2fd2a4.wgsl.expected.ir.dxc.hlsl
index 1fac62e..0175ee7 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/2fd2a4.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/2fd2a4.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,46 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  uint2 prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureDimensions
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation uint2 VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+Texture2DArray<float4> arg_0 : register(t0, space1);
+uint2 textureDimensions_2fd2a4() {
+  Texture2DArray<float4> v = arg_0;
+  uint4 v_1 = (0u).xxxx;
+  v.GetDimensions(uint(1), v_1[0u], v_1[1u], v_1[2u], v_1[3u]);
+  uint2 res = v_1.xy;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store2(0u, textureDimensions_2fd2a4());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store2(0u, textureDimensions_2fd2a4());
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = textureDimensions_2fd2a4();
+  VertexOutput v_2 = tint_symbol;
+  return v_2;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_3 = vertex_main_inner();
+  VertexOutput v_4 = v_3;
+  VertexOutput v_5 = v_3;
+  vertex_main_outputs v_6 = {v_5.prevent_dce, v_4.pos};
+  return v_6;
+}
+
diff --git a/test/tint/builtins/gen/literal/textureDimensions/2fd2a4.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/textureDimensions/2fd2a4.wgsl.expected.ir.fxc.hlsl
index 1fac62e..0175ee7 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/2fd2a4.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/2fd2a4.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,46 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  uint2 prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureDimensions
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation uint2 VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+Texture2DArray<float4> arg_0 : register(t0, space1);
+uint2 textureDimensions_2fd2a4() {
+  Texture2DArray<float4> v = arg_0;
+  uint4 v_1 = (0u).xxxx;
+  v.GetDimensions(uint(1), v_1[0u], v_1[1u], v_1[2u], v_1[3u]);
+  uint2 res = v_1.xy;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store2(0u, textureDimensions_2fd2a4());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store2(0u, textureDimensions_2fd2a4());
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = textureDimensions_2fd2a4();
+  VertexOutput v_2 = tint_symbol;
+  return v_2;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_3 = vertex_main_inner();
+  VertexOutput v_4 = v_3;
+  VertexOutput v_5 = v_3;
+  vertex_main_outputs v_6 = {v_5.prevent_dce, v_4.pos};
+  return v_6;
+}
+
diff --git a/test/tint/builtins/gen/literal/textureDimensions/2ff32a.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/textureDimensions/2ff32a.wgsl.expected.ir.dxc.hlsl
index 1fac62e..c82536d 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/2ff32a.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/2ff32a.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,45 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  uint3 prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureDimensions
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation uint3 VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+Texture3D<float4> arg_0 : register(t0, space1);
+uint3 textureDimensions_2ff32a() {
+  uint3 v = (0u).xxx;
+  arg_0.GetDimensions(v[0u], v[1u], v[2u]);
+  uint3 res = v;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store3(0u, textureDimensions_2ff32a());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store3(0u, textureDimensions_2ff32a());
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = textureDimensions_2ff32a();
+  VertexOutput v_1 = tint_symbol;
+  return v_1;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_2 = vertex_main_inner();
+  VertexOutput v_3 = v_2;
+  VertexOutput v_4 = v_2;
+  vertex_main_outputs v_5 = {v_4.prevent_dce, v_3.pos};
+  return v_5;
+}
+
diff --git a/test/tint/builtins/gen/literal/textureDimensions/2ff32a.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/textureDimensions/2ff32a.wgsl.expected.ir.fxc.hlsl
index 1fac62e..c82536d 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/2ff32a.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/2ff32a.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,45 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  uint3 prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureDimensions
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation uint3 VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+Texture3D<float4> arg_0 : register(t0, space1);
+uint3 textureDimensions_2ff32a() {
+  uint3 v = (0u).xxx;
+  arg_0.GetDimensions(v[0u], v[1u], v[2u]);
+  uint3 res = v;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store3(0u, textureDimensions_2ff32a());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store3(0u, textureDimensions_2ff32a());
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = textureDimensions_2ff32a();
+  VertexOutput v_1 = tint_symbol;
+  return v_1;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_2 = vertex_main_inner();
+  VertexOutput v_3 = v_2;
+  VertexOutput v_4 = v_2;
+  vertex_main_outputs v_5 = {v_4.prevent_dce, v_3.pos};
+  return v_5;
+}
+
diff --git a/test/tint/builtins/gen/literal/textureDimensions/305dd5.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/textureDimensions/305dd5.wgsl.expected.ir.dxc.hlsl
index 1fac62e..e5e76c5 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/305dd5.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/305dd5.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,45 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  uint2 prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureDimensions
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation uint2 VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+Texture2DArray<uint4> arg_0 : register(t0, space1);
+uint2 textureDimensions_305dd5() {
+  uint3 v = (0u).xxx;
+  arg_0.GetDimensions(v[0u], v[1u], v[2u]);
+  uint2 res = v.xy;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store2(0u, textureDimensions_305dd5());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store2(0u, textureDimensions_305dd5());
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = textureDimensions_305dd5();
+  VertexOutput v_1 = tint_symbol;
+  return v_1;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_2 = vertex_main_inner();
+  VertexOutput v_3 = v_2;
+  VertexOutput v_4 = v_2;
+  vertex_main_outputs v_5 = {v_4.prevent_dce, v_3.pos};
+  return v_5;
+}
+
diff --git a/test/tint/builtins/gen/literal/textureDimensions/305dd5.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/textureDimensions/305dd5.wgsl.expected.ir.fxc.hlsl
index 1fac62e..e5e76c5 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/305dd5.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/305dd5.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,45 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  uint2 prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureDimensions
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation uint2 VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+Texture2DArray<uint4> arg_0 : register(t0, space1);
+uint2 textureDimensions_305dd5() {
+  uint3 v = (0u).xxx;
+  arg_0.GetDimensions(v[0u], v[1u], v[2u]);
+  uint2 res = v.xy;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store2(0u, textureDimensions_305dd5());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store2(0u, textureDimensions_305dd5());
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = textureDimensions_305dd5();
+  VertexOutput v_1 = tint_symbol;
+  return v_1;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_2 = vertex_main_inner();
+  VertexOutput v_3 = v_2;
+  VertexOutput v_4 = v_2;
+  vertex_main_outputs v_5 = {v_4.prevent_dce, v_3.pos};
+  return v_5;
+}
+
diff --git a/test/tint/builtins/gen/literal/textureDimensions/31799c.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/textureDimensions/31799c.wgsl.expected.ir.dxc.hlsl
index 1fac62e..8a06b3f 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/31799c.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/31799c.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,19 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureDimensions
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWByteAddressBuffer prevent_dce : register(u0);
+RWTexture3D<uint4> arg_0 : register(u0, space1);
+uint3 textureDimensions_31799c() {
+  uint3 v = (0u).xxx;
+  arg_0.GetDimensions(v[0u], v[1u], v[2u]);
+  uint3 res = v;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store3(0u, textureDimensions_31799c());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store3(0u, textureDimensions_31799c());
+}
+
diff --git a/test/tint/builtins/gen/literal/textureDimensions/31799c.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/textureDimensions/31799c.wgsl.expected.ir.fxc.hlsl
index 1fac62e..8a06b3f 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/31799c.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/31799c.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,19 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureDimensions
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWByteAddressBuffer prevent_dce : register(u0);
+RWTexture3D<uint4> arg_0 : register(u0, space1);
+uint3 textureDimensions_31799c() {
+  uint3 v = (0u).xxx;
+  arg_0.GetDimensions(v[0u], v[1u], v[2u]);
+  uint3 res = v;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store3(0u, textureDimensions_31799c());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store3(0u, textureDimensions_31799c());
+}
+
diff --git a/test/tint/builtins/gen/literal/textureDimensions/31d00d.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/textureDimensions/31d00d.wgsl.expected.ir.dxc.hlsl
index 1fac62e..934473c 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/31d00d.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/31d00d.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,19 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureDimensions
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWByteAddressBuffer prevent_dce : register(u0);
+RWTexture3D<uint4> arg_0 : register(u0, space1);
+uint3 textureDimensions_31d00d() {
+  uint3 v = (0u).xxx;
+  arg_0.GetDimensions(v[0u], v[1u], v[2u]);
+  uint3 res = v;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store3(0u, textureDimensions_31d00d());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store3(0u, textureDimensions_31d00d());
+}
+
diff --git a/test/tint/builtins/gen/literal/textureDimensions/31d00d.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/textureDimensions/31d00d.wgsl.expected.ir.fxc.hlsl
index 1fac62e..934473c 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/31d00d.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/31d00d.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,19 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureDimensions
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWByteAddressBuffer prevent_dce : register(u0);
+RWTexture3D<uint4> arg_0 : register(u0, space1);
+uint3 textureDimensions_31d00d() {
+  uint3 v = (0u).xxx;
+  arg_0.GetDimensions(v[0u], v[1u], v[2u]);
+  uint3 res = v;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store3(0u, textureDimensions_31d00d());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store3(0u, textureDimensions_31d00d());
+}
+
diff --git a/test/tint/builtins/gen/literal/textureDimensions/325338.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/textureDimensions/325338.wgsl.expected.ir.dxc.hlsl
index 1fac62e..db08c89 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/325338.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/325338.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,19 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureDimensions
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWByteAddressBuffer prevent_dce : register(u0);
+RWTexture2D<int4> arg_0 : register(u0, space1);
+uint2 textureDimensions_325338() {
+  uint2 v = (0u).xx;
+  arg_0.GetDimensions(v[0u], v[1u]);
+  uint2 res = v;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store2(0u, textureDimensions_325338());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store2(0u, textureDimensions_325338());
+}
+
diff --git a/test/tint/builtins/gen/literal/textureDimensions/325338.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/textureDimensions/325338.wgsl.expected.ir.fxc.hlsl
index 1fac62e..db08c89 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/325338.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/325338.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,19 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureDimensions
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWByteAddressBuffer prevent_dce : register(u0);
+RWTexture2D<int4> arg_0 : register(u0, space1);
+uint2 textureDimensions_325338() {
+  uint2 v = (0u).xx;
+  arg_0.GetDimensions(v[0u], v[1u]);
+  uint2 res = v;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store2(0u, textureDimensions_325338());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store2(0u, textureDimensions_325338());
+}
+
diff --git a/test/tint/builtins/gen/literal/textureDimensions/346fee.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/textureDimensions/346fee.wgsl.expected.ir.dxc.hlsl
index 1fac62e..b14a81d 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/346fee.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/346fee.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,46 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  uint2 prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureDimensions
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation uint2 VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+TextureCubeArray<uint4> arg_0 : register(t0, space1);
+uint2 textureDimensions_346fee() {
+  TextureCubeArray<uint4> v = arg_0;
+  uint4 v_1 = (0u).xxxx;
+  v.GetDimensions(uint(1u), v_1[0u], v_1[1u], v_1[2u], v_1[3u]);
+  uint2 res = v_1.xy;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store2(0u, textureDimensions_346fee());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store2(0u, textureDimensions_346fee());
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = textureDimensions_346fee();
+  VertexOutput v_2 = tint_symbol;
+  return v_2;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_3 = vertex_main_inner();
+  VertexOutput v_4 = v_3;
+  VertexOutput v_5 = v_3;
+  vertex_main_outputs v_6 = {v_5.prevent_dce, v_4.pos};
+  return v_6;
+}
+
diff --git a/test/tint/builtins/gen/literal/textureDimensions/346fee.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/textureDimensions/346fee.wgsl.expected.ir.fxc.hlsl
index 1fac62e..b14a81d 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/346fee.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/346fee.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,46 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  uint2 prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureDimensions
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation uint2 VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+TextureCubeArray<uint4> arg_0 : register(t0, space1);
+uint2 textureDimensions_346fee() {
+  TextureCubeArray<uint4> v = arg_0;
+  uint4 v_1 = (0u).xxxx;
+  v.GetDimensions(uint(1u), v_1[0u], v_1[1u], v_1[2u], v_1[3u]);
+  uint2 res = v_1.xy;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store2(0u, textureDimensions_346fee());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store2(0u, textureDimensions_346fee());
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = textureDimensions_346fee();
+  VertexOutput v_2 = tint_symbol;
+  return v_2;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_3 = vertex_main_inner();
+  VertexOutput v_4 = v_3;
+  VertexOutput v_5 = v_3;
+  vertex_main_outputs v_6 = {v_5.prevent_dce, v_4.pos};
+  return v_6;
+}
+
diff --git a/test/tint/builtins/gen/literal/textureDimensions/35a7e5.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/textureDimensions/35a7e5.wgsl.expected.ir.dxc.hlsl
index 1fac62e..fcf5bd7 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/35a7e5.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/35a7e5.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,19 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureDimensions
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWByteAddressBuffer prevent_dce : register(u0);
+RWTexture3D<uint4> arg_0 : register(u0, space1);
+uint3 textureDimensions_35a7e5() {
+  uint3 v = (0u).xxx;
+  arg_0.GetDimensions(v[0u], v[1u], v[2u]);
+  uint3 res = v;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store3(0u, textureDimensions_35a7e5());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store3(0u, textureDimensions_35a7e5());
+}
+
diff --git a/test/tint/builtins/gen/literal/textureDimensions/35a7e5.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/textureDimensions/35a7e5.wgsl.expected.ir.fxc.hlsl
index 1fac62e..fcf5bd7 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/35a7e5.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/35a7e5.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,19 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureDimensions
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWByteAddressBuffer prevent_dce : register(u0);
+RWTexture3D<uint4> arg_0 : register(u0, space1);
+uint3 textureDimensions_35a7e5() {
+  uint3 v = (0u).xxx;
+  arg_0.GetDimensions(v[0u], v[1u], v[2u]);
+  uint3 res = v;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store3(0u, textureDimensions_35a7e5());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store3(0u, textureDimensions_35a7e5());
+}
+
diff --git a/test/tint/builtins/gen/literal/textureDimensions/35ee69.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/textureDimensions/35ee69.wgsl.expected.ir.dxc.hlsl
index 1fac62e..6e251f9 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/35ee69.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/35ee69.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,19 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureDimensions
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWByteAddressBuffer prevent_dce : register(u0);
+RWTexture3D<uint4> arg_0 : register(u0, space1);
+uint3 textureDimensions_35ee69() {
+  uint3 v = (0u).xxx;
+  arg_0.GetDimensions(v[0u], v[1u], v[2u]);
+  uint3 res = v;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store3(0u, textureDimensions_35ee69());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store3(0u, textureDimensions_35ee69());
+}
+
diff --git a/test/tint/builtins/gen/literal/textureDimensions/35ee69.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/textureDimensions/35ee69.wgsl.expected.ir.fxc.hlsl
index 1fac62e..6e251f9 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/35ee69.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/35ee69.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,19 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureDimensions
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWByteAddressBuffer prevent_dce : register(u0);
+RWTexture3D<uint4> arg_0 : register(u0, space1);
+uint3 textureDimensions_35ee69() {
+  uint3 v = (0u).xxx;
+  arg_0.GetDimensions(v[0u], v[1u], v[2u]);
+  uint3 res = v;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store3(0u, textureDimensions_35ee69());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store3(0u, textureDimensions_35ee69());
+}
+
diff --git a/test/tint/builtins/gen/literal/textureDimensions/36eeb7.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/textureDimensions/36eeb7.wgsl.expected.ir.dxc.hlsl
index 1fac62e..f8a095d 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/36eeb7.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/36eeb7.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,19 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureDimensions
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWByteAddressBuffer prevent_dce : register(u0);
+RWTexture2DArray<uint4> arg_0 : register(u0, space1);
+uint2 textureDimensions_36eeb7() {
+  uint3 v = (0u).xxx;
+  arg_0.GetDimensions(v[0u], v[1u], v[2u]);
+  uint2 res = v.xy;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store2(0u, textureDimensions_36eeb7());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store2(0u, textureDimensions_36eeb7());
+}
+
diff --git a/test/tint/builtins/gen/literal/textureDimensions/36eeb7.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/textureDimensions/36eeb7.wgsl.expected.ir.fxc.hlsl
index 1fac62e..f8a095d 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/36eeb7.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/36eeb7.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,19 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureDimensions
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWByteAddressBuffer prevent_dce : register(u0);
+RWTexture2DArray<uint4> arg_0 : register(u0, space1);
+uint2 textureDimensions_36eeb7() {
+  uint3 v = (0u).xxx;
+  arg_0.GetDimensions(v[0u], v[1u], v[2u]);
+  uint2 res = v.xy;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store2(0u, textureDimensions_36eeb7());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store2(0u, textureDimensions_36eeb7());
+}
+
diff --git a/test/tint/builtins/gen/literal/textureDimensions/378a65.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/textureDimensions/378a65.wgsl.expected.ir.dxc.hlsl
index 1fac62e..f691a73 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/378a65.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/378a65.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,19 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureDimensions
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWByteAddressBuffer prevent_dce : register(u0);
+RWTexture2D<int4> arg_0 : register(u0, space1);
+uint2 textureDimensions_378a65() {
+  uint2 v = (0u).xx;
+  arg_0.GetDimensions(v[0u], v[1u]);
+  uint2 res = v;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store2(0u, textureDimensions_378a65());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store2(0u, textureDimensions_378a65());
+}
+
diff --git a/test/tint/builtins/gen/literal/textureDimensions/378a65.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/textureDimensions/378a65.wgsl.expected.ir.fxc.hlsl
index 1fac62e..f691a73 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/378a65.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/378a65.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,19 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureDimensions
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWByteAddressBuffer prevent_dce : register(u0);
+RWTexture2D<int4> arg_0 : register(u0, space1);
+uint2 textureDimensions_378a65() {
+  uint2 v = (0u).xx;
+  arg_0.GetDimensions(v[0u], v[1u]);
+  uint2 res = v;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store2(0u, textureDimensions_378a65());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store2(0u, textureDimensions_378a65());
+}
+
diff --git a/test/tint/builtins/gen/literal/textureDimensions/382b16.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/textureDimensions/382b16.wgsl.expected.ir.dxc.hlsl
index 1fac62e..d46531b 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/382b16.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/382b16.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,46 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  uint2 prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureDimensions
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation uint2 VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+TextureCube<float4> arg_0 : register(t0, space1);
+uint2 textureDimensions_382b16() {
+  TextureCube<float4> v = arg_0;
+  uint3 v_1 = (0u).xxx;
+  v.GetDimensions(uint(1u), v_1[0u], v_1[1u], v_1[2u]);
+  uint2 res = v_1.xy;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store2(0u, textureDimensions_382b16());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store2(0u, textureDimensions_382b16());
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = textureDimensions_382b16();
+  VertexOutput v_2 = tint_symbol;
+  return v_2;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_3 = vertex_main_inner();
+  VertexOutput v_4 = v_3;
+  VertexOutput v_5 = v_3;
+  vertex_main_outputs v_6 = {v_5.prevent_dce, v_4.pos};
+  return v_6;
+}
+
diff --git a/test/tint/builtins/gen/literal/textureDimensions/382b16.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/textureDimensions/382b16.wgsl.expected.ir.fxc.hlsl
index 1fac62e..d46531b 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/382b16.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/382b16.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,46 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  uint2 prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureDimensions
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation uint2 VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+TextureCube<float4> arg_0 : register(t0, space1);
+uint2 textureDimensions_382b16() {
+  TextureCube<float4> v = arg_0;
+  uint3 v_1 = (0u).xxx;
+  v.GetDimensions(uint(1u), v_1[0u], v_1[1u], v_1[2u]);
+  uint2 res = v_1.xy;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store2(0u, textureDimensions_382b16());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store2(0u, textureDimensions_382b16());
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = textureDimensions_382b16();
+  VertexOutput v_2 = tint_symbol;
+  return v_2;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_3 = vertex_main_inner();
+  VertexOutput v_4 = v_3;
+  VertexOutput v_5 = v_3;
+  vertex_main_outputs v_6 = {v_5.prevent_dce, v_4.pos};
+  return v_6;
+}
+
diff --git a/test/tint/builtins/gen/literal/textureDimensions/3834f8.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/textureDimensions/3834f8.wgsl.expected.ir.dxc.hlsl
index 1fac62e..84ebd59 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/3834f8.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/3834f8.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,19 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureDimensions
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWByteAddressBuffer prevent_dce : register(u0);
+RWTexture2DArray<int4> arg_0 : register(u0, space1);
+uint2 textureDimensions_3834f8() {
+  uint3 v = (0u).xxx;
+  arg_0.GetDimensions(v[0u], v[1u], v[2u]);
+  uint2 res = v.xy;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store2(0u, textureDimensions_3834f8());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store2(0u, textureDimensions_3834f8());
+}
+
diff --git a/test/tint/builtins/gen/literal/textureDimensions/3834f8.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/textureDimensions/3834f8.wgsl.expected.ir.fxc.hlsl
index 1fac62e..84ebd59 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/3834f8.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/3834f8.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,19 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureDimensions
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWByteAddressBuffer prevent_dce : register(u0);
+RWTexture2DArray<int4> arg_0 : register(u0, space1);
+uint2 textureDimensions_3834f8() {
+  uint3 v = (0u).xxx;
+  arg_0.GetDimensions(v[0u], v[1u], v[2u]);
+  uint2 res = v.xy;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store2(0u, textureDimensions_3834f8());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store2(0u, textureDimensions_3834f8());
+}
+
diff --git a/test/tint/builtins/gen/literal/textureDimensions/38c9ca.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/textureDimensions/38c9ca.wgsl.expected.ir.dxc.hlsl
index 1fac62e..2af52f17 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/38c9ca.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/38c9ca.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,19 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureDimensions
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWByteAddressBuffer prevent_dce : register(u0);
+RWTexture2DArray<float4> arg_0 : register(u0, space1);
+uint2 textureDimensions_38c9ca() {
+  uint3 v = (0u).xxx;
+  arg_0.GetDimensions(v[0u], v[1u], v[2u]);
+  uint2 res = v.xy;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store2(0u, textureDimensions_38c9ca());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store2(0u, textureDimensions_38c9ca());
+}
+
diff --git a/test/tint/builtins/gen/literal/textureDimensions/38c9ca.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/textureDimensions/38c9ca.wgsl.expected.ir.fxc.hlsl
index 1fac62e..2af52f17 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/38c9ca.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/38c9ca.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,19 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureDimensions
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWByteAddressBuffer prevent_dce : register(u0);
+RWTexture2DArray<float4> arg_0 : register(u0, space1);
+uint2 textureDimensions_38c9ca() {
+  uint3 v = (0u).xxx;
+  arg_0.GetDimensions(v[0u], v[1u], v[2u]);
+  uint2 res = v.xy;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store2(0u, textureDimensions_38c9ca());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store2(0u, textureDimensions_38c9ca());
+}
+
diff --git a/test/tint/builtins/gen/literal/textureDimensions/3963d0.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/textureDimensions/3963d0.wgsl.expected.ir.dxc.hlsl
index 1fac62e..2f5d34b 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/3963d0.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/3963d0.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,46 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  uint2 prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureDimensions
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation uint2 VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+TextureCubeArray<int4> arg_0 : register(t0, space1);
+uint2 textureDimensions_3963d0() {
+  TextureCubeArray<int4> v = arg_0;
+  uint4 v_1 = (0u).xxxx;
+  v.GetDimensions(uint(1u), v_1[0u], v_1[1u], v_1[2u], v_1[3u]);
+  uint2 res = v_1.xy;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store2(0u, textureDimensions_3963d0());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store2(0u, textureDimensions_3963d0());
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = textureDimensions_3963d0();
+  VertexOutput v_2 = tint_symbol;
+  return v_2;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_3 = vertex_main_inner();
+  VertexOutput v_4 = v_3;
+  VertexOutput v_5 = v_3;
+  vertex_main_outputs v_6 = {v_5.prevent_dce, v_4.pos};
+  return v_6;
+}
+
diff --git a/test/tint/builtins/gen/literal/textureDimensions/3963d0.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/textureDimensions/3963d0.wgsl.expected.ir.fxc.hlsl
index 1fac62e..2f5d34b 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/3963d0.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/3963d0.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,46 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  uint2 prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureDimensions
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation uint2 VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+TextureCubeArray<int4> arg_0 : register(t0, space1);
+uint2 textureDimensions_3963d0() {
+  TextureCubeArray<int4> v = arg_0;
+  uint4 v_1 = (0u).xxxx;
+  v.GetDimensions(uint(1u), v_1[0u], v_1[1u], v_1[2u], v_1[3u]);
+  uint2 res = v_1.xy;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store2(0u, textureDimensions_3963d0());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store2(0u, textureDimensions_3963d0());
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = textureDimensions_3963d0();
+  VertexOutput v_2 = tint_symbol;
+  return v_2;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_3 = vertex_main_inner();
+  VertexOutput v_4 = v_3;
+  VertexOutput v_5 = v_3;
+  vertex_main_outputs v_6 = {v_5.prevent_dce, v_4.pos};
+  return v_6;
+}
+
diff --git a/test/tint/builtins/gen/literal/textureDimensions/397dab.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/textureDimensions/397dab.wgsl.expected.ir.dxc.hlsl
index 1fac62e..44157aa 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/397dab.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/397dab.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,45 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  uint2 prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureDimensions
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation uint2 VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+Texture2DArray<uint4> arg_0 : register(t0, space1);
+uint2 textureDimensions_397dab() {
+  uint3 v = (0u).xxx;
+  arg_0.GetDimensions(v[0u], v[1u], v[2u]);
+  uint2 res = v.xy;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store2(0u, textureDimensions_397dab());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store2(0u, textureDimensions_397dab());
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = textureDimensions_397dab();
+  VertexOutput v_1 = tint_symbol;
+  return v_1;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_2 = vertex_main_inner();
+  VertexOutput v_3 = v_2;
+  VertexOutput v_4 = v_2;
+  vertex_main_outputs v_5 = {v_4.prevent_dce, v_3.pos};
+  return v_5;
+}
+
diff --git a/test/tint/builtins/gen/literal/textureDimensions/397dab.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/textureDimensions/397dab.wgsl.expected.ir.fxc.hlsl
index 1fac62e..44157aa 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/397dab.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/397dab.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,45 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  uint2 prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureDimensions
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation uint2 VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+Texture2DArray<uint4> arg_0 : register(t0, space1);
+uint2 textureDimensions_397dab() {
+  uint3 v = (0u).xxx;
+  arg_0.GetDimensions(v[0u], v[1u], v[2u]);
+  uint2 res = v.xy;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store2(0u, textureDimensions_397dab());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store2(0u, textureDimensions_397dab());
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = textureDimensions_397dab();
+  VertexOutput v_1 = tint_symbol;
+  return v_1;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_2 = vertex_main_inner();
+  VertexOutput v_3 = v_2;
+  VertexOutput v_4 = v_2;
+  vertex_main_outputs v_5 = {v_4.prevent_dce, v_3.pos};
+  return v_5;
+}
+
diff --git a/test/tint/builtins/gen/literal/textureDimensions/3a5bb1.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/textureDimensions/3a5bb1.wgsl.expected.ir.dxc.hlsl
index 1fac62e..56fb43c 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/3a5bb1.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/3a5bb1.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,19 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureDimensions
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWByteAddressBuffer prevent_dce : register(u0);
+RWTexture3D<float4> arg_0 : register(u0, space1);
+uint3 textureDimensions_3a5bb1() {
+  uint3 v = (0u).xxx;
+  arg_0.GetDimensions(v[0u], v[1u], v[2u]);
+  uint3 res = v;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store3(0u, textureDimensions_3a5bb1());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store3(0u, textureDimensions_3a5bb1());
+}
+
diff --git a/test/tint/builtins/gen/literal/textureDimensions/3a5bb1.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/textureDimensions/3a5bb1.wgsl.expected.ir.fxc.hlsl
index 1fac62e..56fb43c 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/3a5bb1.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/3a5bb1.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,19 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureDimensions
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWByteAddressBuffer prevent_dce : register(u0);
+RWTexture3D<float4> arg_0 : register(u0, space1);
+uint3 textureDimensions_3a5bb1() {
+  uint3 v = (0u).xxx;
+  arg_0.GetDimensions(v[0u], v[1u], v[2u]);
+  uint3 res = v;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store3(0u, textureDimensions_3a5bb1());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store3(0u, textureDimensions_3a5bb1());
+}
+
diff --git a/test/tint/builtins/gen/literal/textureDimensions/3a7b69.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/textureDimensions/3a7b69.wgsl.expected.ir.dxc.hlsl
index 1fac62e..6ba7780 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/3a7b69.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/3a7b69.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,19 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureDimensions
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWByteAddressBuffer prevent_dce : register(u0);
+RWTexture2DArray<float4> arg_0 : register(u0, space1);
+uint2 textureDimensions_3a7b69() {
+  uint3 v = (0u).xxx;
+  arg_0.GetDimensions(v[0u], v[1u], v[2u]);
+  uint2 res = v.xy;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store2(0u, textureDimensions_3a7b69());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store2(0u, textureDimensions_3a7b69());
+}
+
diff --git a/test/tint/builtins/gen/literal/textureDimensions/3a7b69.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/textureDimensions/3a7b69.wgsl.expected.ir.fxc.hlsl
index 1fac62e..6ba7780 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/3a7b69.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/3a7b69.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,19 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureDimensions
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWByteAddressBuffer prevent_dce : register(u0);
+RWTexture2DArray<float4> arg_0 : register(u0, space1);
+uint2 textureDimensions_3a7b69() {
+  uint3 v = (0u).xxx;
+  arg_0.GetDimensions(v[0u], v[1u], v[2u]);
+  uint2 res = v.xy;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store2(0u, textureDimensions_3a7b69());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store2(0u, textureDimensions_3a7b69());
+}
+
diff --git a/test/tint/builtins/gen/literal/textureDimensions/3af3e7.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/textureDimensions/3af3e7.wgsl.expected.ir.dxc.hlsl
index 1fac62e..e58d22b 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/3af3e7.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/3af3e7.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,19 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureDimensions
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWByteAddressBuffer prevent_dce : register(u0);
+RWTexture1D<float4> arg_0 : register(u0, space1);
+uint textureDimensions_3af3e7() {
+  uint v = 0u;
+  arg_0.GetDimensions(v);
+  uint res = v;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store(0u, textureDimensions_3af3e7());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store(0u, textureDimensions_3af3e7());
+}
+
diff --git a/test/tint/builtins/gen/literal/textureDimensions/3af3e7.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/textureDimensions/3af3e7.wgsl.expected.ir.fxc.hlsl
index 1fac62e..e58d22b 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/3af3e7.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/3af3e7.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,19 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureDimensions
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWByteAddressBuffer prevent_dce : register(u0);
+RWTexture1D<float4> arg_0 : register(u0, space1);
+uint textureDimensions_3af3e7() {
+  uint v = 0u;
+  arg_0.GetDimensions(v);
+  uint res = v;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store(0u, textureDimensions_3af3e7());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store(0u, textureDimensions_3af3e7());
+}
+
diff --git a/test/tint/builtins/gen/literal/textureDimensions/3b38f6.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/textureDimensions/3b38f6.wgsl.expected.ir.dxc.hlsl
index 1fac62e..42d44f6 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/3b38f6.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/3b38f6.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,45 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  uint2 prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureDimensions
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation uint2 VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+Texture2D arg_0 : register(t0, space1);
+uint2 textureDimensions_3b38f6() {
+  uint2 v = (0u).xx;
+  arg_0.GetDimensions(v[0u], v[1u]);
+  uint2 res = v;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store2(0u, textureDimensions_3b38f6());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store2(0u, textureDimensions_3b38f6());
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = textureDimensions_3b38f6();
+  VertexOutput v_1 = tint_symbol;
+  return v_1;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_2 = vertex_main_inner();
+  VertexOutput v_3 = v_2;
+  VertexOutput v_4 = v_2;
+  vertex_main_outputs v_5 = {v_4.prevent_dce, v_3.pos};
+  return v_5;
+}
+
diff --git a/test/tint/builtins/gen/literal/textureDimensions/3b38f6.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/textureDimensions/3b38f6.wgsl.expected.ir.fxc.hlsl
index 1fac62e..42d44f6 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/3b38f6.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/3b38f6.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,45 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  uint2 prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureDimensions
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation uint2 VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+Texture2D arg_0 : register(t0, space1);
+uint2 textureDimensions_3b38f6() {
+  uint2 v = (0u).xx;
+  arg_0.GetDimensions(v[0u], v[1u]);
+  uint2 res = v;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store2(0u, textureDimensions_3b38f6());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store2(0u, textureDimensions_3b38f6());
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = textureDimensions_3b38f6();
+  VertexOutput v_1 = tint_symbol;
+  return v_1;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_2 = vertex_main_inner();
+  VertexOutput v_3 = v_2;
+  VertexOutput v_4 = v_2;
+  vertex_main_outputs v_5 = {v_4.prevent_dce, v_3.pos};
+  return v_5;
+}
+
diff --git a/test/tint/builtins/gen/literal/textureDimensions/3baab5.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/textureDimensions/3baab5.wgsl.expected.ir.dxc.hlsl
index 1fac62e..b5a2c6f 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/3baab5.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/3baab5.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,19 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureDimensions
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWByteAddressBuffer prevent_dce : register(u0);
+RWTexture2DArray<uint4> arg_0 : register(u0, space1);
+uint2 textureDimensions_3baab5() {
+  uint3 v = (0u).xxx;
+  arg_0.GetDimensions(v[0u], v[1u], v[2u]);
+  uint2 res = v.xy;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store2(0u, textureDimensions_3baab5());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store2(0u, textureDimensions_3baab5());
+}
+
diff --git a/test/tint/builtins/gen/literal/textureDimensions/3baab5.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/textureDimensions/3baab5.wgsl.expected.ir.fxc.hlsl
index 1fac62e..b5a2c6f 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/3baab5.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/3baab5.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,19 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureDimensions
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWByteAddressBuffer prevent_dce : register(u0);
+RWTexture2DArray<uint4> arg_0 : register(u0, space1);
+uint2 textureDimensions_3baab5() {
+  uint3 v = (0u).xxx;
+  arg_0.GetDimensions(v[0u], v[1u], v[2u]);
+  uint2 res = v.xy;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store2(0u, textureDimensions_3baab5());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store2(0u, textureDimensions_3baab5());
+}
+
diff --git a/test/tint/builtins/gen/literal/textureDimensions/3bf12a.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/textureDimensions/3bf12a.wgsl.expected.ir.dxc.hlsl
index 1fac62e..4359b2f 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/3bf12a.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/3bf12a.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,19 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureDimensions
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWByteAddressBuffer prevent_dce : register(u0);
+RWTexture2DArray<float4> arg_0 : register(u0, space1);
+uint2 textureDimensions_3bf12a() {
+  uint3 v = (0u).xxx;
+  arg_0.GetDimensions(v[0u], v[1u], v[2u]);
+  uint2 res = v.xy;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store2(0u, textureDimensions_3bf12a());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store2(0u, textureDimensions_3bf12a());
+}
+
diff --git a/test/tint/builtins/gen/literal/textureDimensions/3bf12a.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/textureDimensions/3bf12a.wgsl.expected.ir.fxc.hlsl
index 1fac62e..4359b2f 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/3bf12a.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/3bf12a.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,19 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureDimensions
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWByteAddressBuffer prevent_dce : register(u0);
+RWTexture2DArray<float4> arg_0 : register(u0, space1);
+uint2 textureDimensions_3bf12a() {
+  uint3 v = (0u).xxx;
+  arg_0.GetDimensions(v[0u], v[1u], v[2u]);
+  uint2 res = v.xy;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store2(0u, textureDimensions_3bf12a());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store2(0u, textureDimensions_3bf12a());
+}
+
diff --git a/test/tint/builtins/gen/literal/textureDimensions/3c66f0.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/textureDimensions/3c66f0.wgsl.expected.ir.dxc.hlsl
index 1fac62e..587b9ef 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/3c66f0.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/3c66f0.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,46 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  uint2 prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureDimensions
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation uint2 VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+TextureCubeArray<int4> arg_0 : register(t0, space1);
+uint2 textureDimensions_3c66f0() {
+  TextureCubeArray<int4> v = arg_0;
+  uint4 v_1 = (0u).xxxx;
+  v.GetDimensions(uint(1), v_1[0u], v_1[1u], v_1[2u], v_1[3u]);
+  uint2 res = v_1.xy;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store2(0u, textureDimensions_3c66f0());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store2(0u, textureDimensions_3c66f0());
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = textureDimensions_3c66f0();
+  VertexOutput v_2 = tint_symbol;
+  return v_2;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_3 = vertex_main_inner();
+  VertexOutput v_4 = v_3;
+  VertexOutput v_5 = v_3;
+  vertex_main_outputs v_6 = {v_5.prevent_dce, v_4.pos};
+  return v_6;
+}
+
diff --git a/test/tint/builtins/gen/literal/textureDimensions/3c66f0.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/textureDimensions/3c66f0.wgsl.expected.ir.fxc.hlsl
index 1fac62e..587b9ef 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/3c66f0.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/3c66f0.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,46 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  uint2 prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureDimensions
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation uint2 VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+TextureCubeArray<int4> arg_0 : register(t0, space1);
+uint2 textureDimensions_3c66f0() {
+  TextureCubeArray<int4> v = arg_0;
+  uint4 v_1 = (0u).xxxx;
+  v.GetDimensions(uint(1), v_1[0u], v_1[1u], v_1[2u], v_1[3u]);
+  uint2 res = v_1.xy;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store2(0u, textureDimensions_3c66f0());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store2(0u, textureDimensions_3c66f0());
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = textureDimensions_3c66f0();
+  VertexOutput v_2 = tint_symbol;
+  return v_2;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_3 = vertex_main_inner();
+  VertexOutput v_4 = v_3;
+  VertexOutput v_5 = v_3;
+  vertex_main_outputs v_6 = {v_5.prevent_dce, v_4.pos};
+  return v_6;
+}
+
diff --git a/test/tint/builtins/gen/literal/textureDimensions/3f3474.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/textureDimensions/3f3474.wgsl.expected.ir.dxc.hlsl
index 1fac62e..8c7234f 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/3f3474.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/3f3474.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,45 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  uint2 prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureDimensions
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation uint2 VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+Texture2DMS<float4> arg_0 : register(t0, space1);
+uint2 textureDimensions_3f3474() {
+  uint3 v = (0u).xxx;
+  arg_0.GetDimensions(v[0u], v[1u], v[2u]);
+  uint2 res = v.xy;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store2(0u, textureDimensions_3f3474());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store2(0u, textureDimensions_3f3474());
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = textureDimensions_3f3474();
+  VertexOutput v_1 = tint_symbol;
+  return v_1;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_2 = vertex_main_inner();
+  VertexOutput v_3 = v_2;
+  VertexOutput v_4 = v_2;
+  vertex_main_outputs v_5 = {v_4.prevent_dce, v_3.pos};
+  return v_5;
+}
+
diff --git a/test/tint/builtins/gen/literal/textureDimensions/3f3474.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/textureDimensions/3f3474.wgsl.expected.ir.fxc.hlsl
index 1fac62e..8c7234f 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/3f3474.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/3f3474.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,45 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  uint2 prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureDimensions
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation uint2 VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+Texture2DMS<float4> arg_0 : register(t0, space1);
+uint2 textureDimensions_3f3474() {
+  uint3 v = (0u).xxx;
+  arg_0.GetDimensions(v[0u], v[1u], v[2u]);
+  uint2 res = v.xy;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store2(0u, textureDimensions_3f3474());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store2(0u, textureDimensions_3f3474());
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = textureDimensions_3f3474();
+  VertexOutput v_1 = tint_symbol;
+  return v_1;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_2 = vertex_main_inner();
+  VertexOutput v_3 = v_2;
+  VertexOutput v_4 = v_2;
+  vertex_main_outputs v_5 = {v_4.prevent_dce, v_3.pos};
+  return v_5;
+}
+
diff --git a/test/tint/builtins/gen/literal/textureDimensions/3fc3dc.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/textureDimensions/3fc3dc.wgsl.expected.ir.dxc.hlsl
index 1fac62e..a6dbb2f 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/3fc3dc.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/3fc3dc.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,46 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  uint2 prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureDimensions
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation uint2 VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+Texture2DArray<float4> arg_0 : register(t0, space1);
+uint2 textureDimensions_3fc3dc() {
+  Texture2DArray<float4> v = arg_0;
+  uint4 v_1 = (0u).xxxx;
+  v.GetDimensions(uint(1u), v_1[0u], v_1[1u], v_1[2u], v_1[3u]);
+  uint2 res = v_1.xy;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store2(0u, textureDimensions_3fc3dc());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store2(0u, textureDimensions_3fc3dc());
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = textureDimensions_3fc3dc();
+  VertexOutput v_2 = tint_symbol;
+  return v_2;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_3 = vertex_main_inner();
+  VertexOutput v_4 = v_3;
+  VertexOutput v_5 = v_3;
+  vertex_main_outputs v_6 = {v_5.prevent_dce, v_4.pos};
+  return v_6;
+}
+
diff --git a/test/tint/builtins/gen/literal/textureDimensions/3fc3dc.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/textureDimensions/3fc3dc.wgsl.expected.ir.fxc.hlsl
index 1fac62e..a6dbb2f 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/3fc3dc.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/3fc3dc.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,46 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  uint2 prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureDimensions
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation uint2 VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+Texture2DArray<float4> arg_0 : register(t0, space1);
+uint2 textureDimensions_3fc3dc() {
+  Texture2DArray<float4> v = arg_0;
+  uint4 v_1 = (0u).xxxx;
+  v.GetDimensions(uint(1u), v_1[0u], v_1[1u], v_1[2u], v_1[3u]);
+  uint2 res = v_1.xy;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store2(0u, textureDimensions_3fc3dc());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store2(0u, textureDimensions_3fc3dc());
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = textureDimensions_3fc3dc();
+  VertexOutput v_2 = tint_symbol;
+  return v_2;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_3 = vertex_main_inner();
+  VertexOutput v_4 = v_3;
+  VertexOutput v_5 = v_3;
+  vertex_main_outputs v_6 = {v_5.prevent_dce, v_4.pos};
+  return v_6;
+}
+
diff --git a/test/tint/builtins/gen/literal/textureDimensions/3ff0a5.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/textureDimensions/3ff0a5.wgsl.expected.ir.dxc.hlsl
index 1fac62e..4fc5f2a 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/3ff0a5.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/3ff0a5.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,45 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  uint2 prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureDimensions
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation uint2 VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+Texture2DArray<int4> arg_0 : register(t0, space1);
+uint2 textureDimensions_3ff0a5() {
+  uint3 v = (0u).xxx;
+  arg_0.GetDimensions(v[0u], v[1u], v[2u]);
+  uint2 res = v.xy;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store2(0u, textureDimensions_3ff0a5());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store2(0u, textureDimensions_3ff0a5());
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = textureDimensions_3ff0a5();
+  VertexOutput v_1 = tint_symbol;
+  return v_1;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_2 = vertex_main_inner();
+  VertexOutput v_3 = v_2;
+  VertexOutput v_4 = v_2;
+  vertex_main_outputs v_5 = {v_4.prevent_dce, v_3.pos};
+  return v_5;
+}
+
diff --git a/test/tint/builtins/gen/literal/textureDimensions/3ff0a5.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/textureDimensions/3ff0a5.wgsl.expected.ir.fxc.hlsl
index 1fac62e..4fc5f2a 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/3ff0a5.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/3ff0a5.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,45 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  uint2 prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureDimensions
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation uint2 VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+Texture2DArray<int4> arg_0 : register(t0, space1);
+uint2 textureDimensions_3ff0a5() {
+  uint3 v = (0u).xxx;
+  arg_0.GetDimensions(v[0u], v[1u], v[2u]);
+  uint2 res = v.xy;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store2(0u, textureDimensions_3ff0a5());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store2(0u, textureDimensions_3ff0a5());
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = textureDimensions_3ff0a5();
+  VertexOutput v_1 = tint_symbol;
+  return v_1;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_2 = vertex_main_inner();
+  VertexOutput v_3 = v_2;
+  VertexOutput v_4 = v_2;
+  vertex_main_outputs v_5 = {v_4.prevent_dce, v_3.pos};
+  return v_5;
+}
+
diff --git a/test/tint/builtins/gen/literal/textureDimensions/40c671.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/textureDimensions/40c671.wgsl.expected.ir.dxc.hlsl
index 1fac62e..e01e975 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/40c671.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/40c671.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,19 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureDimensions
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWByteAddressBuffer prevent_dce : register(u0);
+RWTexture3D<int4> arg_0 : register(u0, space1);
+uint3 textureDimensions_40c671() {
+  uint3 v = (0u).xxx;
+  arg_0.GetDimensions(v[0u], v[1u], v[2u]);
+  uint3 res = v;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store3(0u, textureDimensions_40c671());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store3(0u, textureDimensions_40c671());
+}
+
diff --git a/test/tint/builtins/gen/literal/textureDimensions/40c671.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/textureDimensions/40c671.wgsl.expected.ir.fxc.hlsl
index 1fac62e..e01e975 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/40c671.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/40c671.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,19 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureDimensions
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWByteAddressBuffer prevent_dce : register(u0);
+RWTexture3D<int4> arg_0 : register(u0, space1);
+uint3 textureDimensions_40c671() {
+  uint3 v = (0u).xxx;
+  arg_0.GetDimensions(v[0u], v[1u], v[2u]);
+  uint3 res = v;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store3(0u, textureDimensions_40c671());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store3(0u, textureDimensions_40c671());
+}
+
diff --git a/test/tint/builtins/gen/literal/textureDimensions/40da20.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/textureDimensions/40da20.wgsl.expected.ir.dxc.hlsl
index 1fac62e..aef29b7 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/40da20.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/40da20.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,45 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  uint2 prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureDimensions
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation uint2 VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+Texture2D<float4> arg_0 : register(t0, space1);
+uint2 textureDimensions_40da20() {
+  uint2 v = (0u).xx;
+  arg_0.GetDimensions(v[0u], v[1u]);
+  uint2 res = v;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store2(0u, textureDimensions_40da20());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store2(0u, textureDimensions_40da20());
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = textureDimensions_40da20();
+  VertexOutput v_1 = tint_symbol;
+  return v_1;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_2 = vertex_main_inner();
+  VertexOutput v_3 = v_2;
+  VertexOutput v_4 = v_2;
+  vertex_main_outputs v_5 = {v_4.prevent_dce, v_3.pos};
+  return v_5;
+}
+
diff --git a/test/tint/builtins/gen/literal/textureDimensions/40da20.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/textureDimensions/40da20.wgsl.expected.ir.fxc.hlsl
index 1fac62e..aef29b7 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/40da20.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/40da20.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,45 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  uint2 prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureDimensions
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation uint2 VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+Texture2D<float4> arg_0 : register(t0, space1);
+uint2 textureDimensions_40da20() {
+  uint2 v = (0u).xx;
+  arg_0.GetDimensions(v[0u], v[1u]);
+  uint2 res = v;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store2(0u, textureDimensions_40da20());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store2(0u, textureDimensions_40da20());
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = textureDimensions_40da20();
+  VertexOutput v_1 = tint_symbol;
+  return v_1;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_2 = vertex_main_inner();
+  VertexOutput v_3 = v_2;
+  VertexOutput v_4 = v_2;
+  vertex_main_outputs v_5 = {v_4.prevent_dce, v_3.pos};
+  return v_5;
+}
+
diff --git a/test/tint/builtins/gen/literal/textureDimensions/40ecf4.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/textureDimensions/40ecf4.wgsl.expected.ir.dxc.hlsl
index 1fac62e..593cc12 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/40ecf4.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/40ecf4.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,19 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureDimensions
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWByteAddressBuffer prevent_dce : register(u0);
+RWTexture2DArray<uint4> arg_0 : register(u0, space1);
+uint2 textureDimensions_40ecf4() {
+  uint3 v = (0u).xxx;
+  arg_0.GetDimensions(v[0u], v[1u], v[2u]);
+  uint2 res = v.xy;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store2(0u, textureDimensions_40ecf4());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store2(0u, textureDimensions_40ecf4());
+}
+
diff --git a/test/tint/builtins/gen/literal/textureDimensions/40ecf4.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/textureDimensions/40ecf4.wgsl.expected.ir.fxc.hlsl
index 1fac62e..593cc12 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/40ecf4.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/40ecf4.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,19 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureDimensions
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWByteAddressBuffer prevent_dce : register(u0);
+RWTexture2DArray<uint4> arg_0 : register(u0, space1);
+uint2 textureDimensions_40ecf4() {
+  uint3 v = (0u).xxx;
+  arg_0.GetDimensions(v[0u], v[1u], v[2u]);
+  uint2 res = v.xy;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store2(0u, textureDimensions_40ecf4());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store2(0u, textureDimensions_40ecf4());
+}
+
diff --git a/test/tint/builtins/gen/literal/textureDimensions/41545f.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/textureDimensions/41545f.wgsl.expected.ir.dxc.hlsl
index 1fac62e..7c07958 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/41545f.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/41545f.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,19 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureDimensions
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWByteAddressBuffer prevent_dce : register(u0);
+RWTexture2DArray<uint4> arg_0 : register(u0, space1);
+uint2 textureDimensions_41545f() {
+  uint3 v = (0u).xxx;
+  arg_0.GetDimensions(v[0u], v[1u], v[2u]);
+  uint2 res = v.xy;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store2(0u, textureDimensions_41545f());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store2(0u, textureDimensions_41545f());
+}
+
diff --git a/test/tint/builtins/gen/literal/textureDimensions/41545f.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/textureDimensions/41545f.wgsl.expected.ir.fxc.hlsl
index 1fac62e..7c07958 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/41545f.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/41545f.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,19 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureDimensions
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWByteAddressBuffer prevent_dce : register(u0);
+RWTexture2DArray<uint4> arg_0 : register(u0, space1);
+uint2 textureDimensions_41545f() {
+  uint3 v = (0u).xxx;
+  arg_0.GetDimensions(v[0u], v[1u], v[2u]);
+  uint2 res = v.xy;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store2(0u, textureDimensions_41545f());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store2(0u, textureDimensions_41545f());
+}
+
diff --git a/test/tint/builtins/gen/literal/textureDimensions/423519.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/textureDimensions/423519.wgsl.expected.ir.dxc.hlsl
index 1fac62e..ab9e8ad 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/423519.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/423519.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,45 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  uint3 prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureDimensions
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation uint3 VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+Texture3D<uint4> arg_0 : register(t0, space1);
+uint3 textureDimensions_423519() {
+  uint3 v = (0u).xxx;
+  arg_0.GetDimensions(v[0u], v[1u], v[2u]);
+  uint3 res = v;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store3(0u, textureDimensions_423519());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store3(0u, textureDimensions_423519());
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = textureDimensions_423519();
+  VertexOutput v_1 = tint_symbol;
+  return v_1;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_2 = vertex_main_inner();
+  VertexOutput v_3 = v_2;
+  VertexOutput v_4 = v_2;
+  vertex_main_outputs v_5 = {v_4.prevent_dce, v_3.pos};
+  return v_5;
+}
+
diff --git a/test/tint/builtins/gen/literal/textureDimensions/423519.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/textureDimensions/423519.wgsl.expected.ir.fxc.hlsl
index 1fac62e..ab9e8ad 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/423519.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/423519.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,45 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  uint3 prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureDimensions
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation uint3 VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+Texture3D<uint4> arg_0 : register(t0, space1);
+uint3 textureDimensions_423519() {
+  uint3 v = (0u).xxx;
+  arg_0.GetDimensions(v[0u], v[1u], v[2u]);
+  uint3 res = v;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store3(0u, textureDimensions_423519());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store3(0u, textureDimensions_423519());
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = textureDimensions_423519();
+  VertexOutput v_1 = tint_symbol;
+  return v_1;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_2 = vertex_main_inner();
+  VertexOutput v_3 = v_2;
+  VertexOutput v_4 = v_2;
+  vertex_main_outputs v_5 = {v_4.prevent_dce, v_3.pos};
+  return v_5;
+}
+
diff --git a/test/tint/builtins/gen/literal/textureDimensions/427f92.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/textureDimensions/427f92.wgsl.expected.ir.dxc.hlsl
index 1fac62e..59baea6 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/427f92.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/427f92.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,19 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureDimensions
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWByteAddressBuffer prevent_dce : register(u0);
+RWTexture2DArray<uint4> arg_0 : register(u0, space1);
+uint2 textureDimensions_427f92() {
+  uint3 v = (0u).xxx;
+  arg_0.GetDimensions(v[0u], v[1u], v[2u]);
+  uint2 res = v.xy;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store2(0u, textureDimensions_427f92());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store2(0u, textureDimensions_427f92());
+}
+
diff --git a/test/tint/builtins/gen/literal/textureDimensions/427f92.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/textureDimensions/427f92.wgsl.expected.ir.fxc.hlsl
index 1fac62e..59baea6 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/427f92.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/427f92.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,19 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureDimensions
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWByteAddressBuffer prevent_dce : register(u0);
+RWTexture2DArray<uint4> arg_0 : register(u0, space1);
+uint2 textureDimensions_427f92() {
+  uint3 v = (0u).xxx;
+  arg_0.GetDimensions(v[0u], v[1u], v[2u]);
+  uint2 res = v.xy;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store2(0u, textureDimensions_427f92());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store2(0u, textureDimensions_427f92());
+}
+
diff --git a/test/tint/builtins/gen/literal/textureDimensions/439651.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/textureDimensions/439651.wgsl.expected.ir.dxc.hlsl
index 1fac62e..50a588d 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/439651.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/439651.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,19 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureDimensions
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWByteAddressBuffer prevent_dce : register(u0);
+RWTexture2D<int4> arg_0 : register(u0, space1);
+uint2 textureDimensions_439651() {
+  uint2 v = (0u).xx;
+  arg_0.GetDimensions(v[0u], v[1u]);
+  uint2 res = v;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store2(0u, textureDimensions_439651());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store2(0u, textureDimensions_439651());
+}
+
diff --git a/test/tint/builtins/gen/literal/textureDimensions/439651.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/textureDimensions/439651.wgsl.expected.ir.fxc.hlsl
index 1fac62e..50a588d 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/439651.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/439651.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,19 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureDimensions
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWByteAddressBuffer prevent_dce : register(u0);
+RWTexture2D<int4> arg_0 : register(u0, space1);
+uint2 textureDimensions_439651() {
+  uint2 v = (0u).xx;
+  arg_0.GetDimensions(v[0u], v[1u]);
+  uint2 res = v;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store2(0u, textureDimensions_439651());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store2(0u, textureDimensions_439651());
+}
+
diff --git a/test/tint/builtins/gen/literal/textureDimensions/445376.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/textureDimensions/445376.wgsl.expected.ir.dxc.hlsl
index 1fac62e..a5abe63 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/445376.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/445376.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,45 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  uint2 prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureDimensions
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation uint2 VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+Texture2DArray<uint4> arg_0 : register(t0, space1);
+uint2 textureDimensions_445376() {
+  uint3 v = (0u).xxx;
+  arg_0.GetDimensions(v[0u], v[1u], v[2u]);
+  uint2 res = v.xy;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store2(0u, textureDimensions_445376());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store2(0u, textureDimensions_445376());
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = textureDimensions_445376();
+  VertexOutput v_1 = tint_symbol;
+  return v_1;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_2 = vertex_main_inner();
+  VertexOutput v_3 = v_2;
+  VertexOutput v_4 = v_2;
+  vertex_main_outputs v_5 = {v_4.prevent_dce, v_3.pos};
+  return v_5;
+}
+
diff --git a/test/tint/builtins/gen/literal/textureDimensions/445376.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/textureDimensions/445376.wgsl.expected.ir.fxc.hlsl
index 1fac62e..a5abe63 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/445376.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/445376.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,45 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  uint2 prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureDimensions
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation uint2 VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+Texture2DArray<uint4> arg_0 : register(t0, space1);
+uint2 textureDimensions_445376() {
+  uint3 v = (0u).xxx;
+  arg_0.GetDimensions(v[0u], v[1u], v[2u]);
+  uint2 res = v.xy;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store2(0u, textureDimensions_445376());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store2(0u, textureDimensions_445376());
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = textureDimensions_445376();
+  VertexOutput v_1 = tint_symbol;
+  return v_1;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_2 = vertex_main_inner();
+  VertexOutput v_3 = v_2;
+  VertexOutput v_4 = v_2;
+  vertex_main_outputs v_5 = {v_4.prevent_dce, v_3.pos};
+  return v_5;
+}
+
diff --git a/test/tint/builtins/gen/literal/textureDimensions/44b358.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/textureDimensions/44b358.wgsl.expected.ir.dxc.hlsl
index 1fac62e..23d171b 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/44b358.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/44b358.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,19 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureDimensions
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWByteAddressBuffer prevent_dce : register(u0);
+RWTexture3D<uint4> arg_0 : register(u0, space1);
+uint3 textureDimensions_44b358() {
+  uint3 v = (0u).xxx;
+  arg_0.GetDimensions(v[0u], v[1u], v[2u]);
+  uint3 res = v;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store3(0u, textureDimensions_44b358());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store3(0u, textureDimensions_44b358());
+}
+
diff --git a/test/tint/builtins/gen/literal/textureDimensions/44b358.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/textureDimensions/44b358.wgsl.expected.ir.fxc.hlsl
index 1fac62e..23d171b 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/44b358.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/44b358.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,19 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureDimensions
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWByteAddressBuffer prevent_dce : register(u0);
+RWTexture3D<uint4> arg_0 : register(u0, space1);
+uint3 textureDimensions_44b358() {
+  uint3 v = (0u).xxx;
+  arg_0.GetDimensions(v[0u], v[1u], v[2u]);
+  uint3 res = v;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store3(0u, textureDimensions_44b358());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store3(0u, textureDimensions_44b358());
+}
+
diff --git a/test/tint/builtins/gen/literal/textureDimensions/452fc1.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/textureDimensions/452fc1.wgsl.expected.ir.dxc.hlsl
index 1fac62e..f54010c 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/452fc1.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/452fc1.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,19 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureDimensions
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWByteAddressBuffer prevent_dce : register(u0);
+RWTexture2DArray<uint4> arg_0 : register(u0, space1);
+uint2 textureDimensions_452fc1() {
+  uint3 v = (0u).xxx;
+  arg_0.GetDimensions(v[0u], v[1u], v[2u]);
+  uint2 res = v.xy;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store2(0u, textureDimensions_452fc1());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store2(0u, textureDimensions_452fc1());
+}
+
diff --git a/test/tint/builtins/gen/literal/textureDimensions/452fc1.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/textureDimensions/452fc1.wgsl.expected.ir.fxc.hlsl
index 1fac62e..f54010c 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/452fc1.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/452fc1.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,19 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureDimensions
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWByteAddressBuffer prevent_dce : register(u0);
+RWTexture2DArray<uint4> arg_0 : register(u0, space1);
+uint2 textureDimensions_452fc1() {
+  uint3 v = (0u).xxx;
+  arg_0.GetDimensions(v[0u], v[1u], v[2u]);
+  uint2 res = v.xy;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store2(0u, textureDimensions_452fc1());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store2(0u, textureDimensions_452fc1());
+}
+
diff --git a/test/tint/builtins/gen/literal/textureDimensions/46f0fc.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/textureDimensions/46f0fc.wgsl.expected.ir.dxc.hlsl
index 1fac62e..2a36393 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/46f0fc.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/46f0fc.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,45 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  uint2 prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureDimensions
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation uint2 VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+Texture2DArray<float4> arg_0 : register(t0, space1);
+uint2 textureDimensions_46f0fc() {
+  uint3 v = (0u).xxx;
+  arg_0.GetDimensions(v[0u], v[1u], v[2u]);
+  uint2 res = v.xy;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store2(0u, textureDimensions_46f0fc());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store2(0u, textureDimensions_46f0fc());
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = textureDimensions_46f0fc();
+  VertexOutput v_1 = tint_symbol;
+  return v_1;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_2 = vertex_main_inner();
+  VertexOutput v_3 = v_2;
+  VertexOutput v_4 = v_2;
+  vertex_main_outputs v_5 = {v_4.prevent_dce, v_3.pos};
+  return v_5;
+}
+
diff --git a/test/tint/builtins/gen/literal/textureDimensions/46f0fc.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/textureDimensions/46f0fc.wgsl.expected.ir.fxc.hlsl
index 1fac62e..2a36393 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/46f0fc.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/46f0fc.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,45 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  uint2 prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureDimensions
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation uint2 VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+Texture2DArray<float4> arg_0 : register(t0, space1);
+uint2 textureDimensions_46f0fc() {
+  uint3 v = (0u).xxx;
+  arg_0.GetDimensions(v[0u], v[1u], v[2u]);
+  uint2 res = v.xy;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store2(0u, textureDimensions_46f0fc());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store2(0u, textureDimensions_46f0fc());
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = textureDimensions_46f0fc();
+  VertexOutput v_1 = tint_symbol;
+  return v_1;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_2 = vertex_main_inner();
+  VertexOutput v_3 = v_2;
+  VertexOutput v_4 = v_2;
+  vertex_main_outputs v_5 = {v_4.prevent_dce, v_3.pos};
+  return v_5;
+}
+
diff --git a/test/tint/builtins/gen/literal/textureDimensions/4716a4.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/textureDimensions/4716a4.wgsl.expected.ir.dxc.hlsl
index 1fac62e..3abff45 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/4716a4.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/4716a4.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,45 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  uint2 prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureDimensions
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation uint2 VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+Texture2DArray<int4> arg_0 : register(t0, space1);
+uint2 textureDimensions_4716a4() {
+  uint3 v = (0u).xxx;
+  arg_0.GetDimensions(v[0u], v[1u], v[2u]);
+  uint2 res = v.xy;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store2(0u, textureDimensions_4716a4());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store2(0u, textureDimensions_4716a4());
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = textureDimensions_4716a4();
+  VertexOutput v_1 = tint_symbol;
+  return v_1;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_2 = vertex_main_inner();
+  VertexOutput v_3 = v_2;
+  VertexOutput v_4 = v_2;
+  vertex_main_outputs v_5 = {v_4.prevent_dce, v_3.pos};
+  return v_5;
+}
+
diff --git a/test/tint/builtins/gen/literal/textureDimensions/4716a4.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/textureDimensions/4716a4.wgsl.expected.ir.fxc.hlsl
index 1fac62e..3abff45 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/4716a4.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/4716a4.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,45 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  uint2 prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureDimensions
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation uint2 VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+Texture2DArray<int4> arg_0 : register(t0, space1);
+uint2 textureDimensions_4716a4() {
+  uint3 v = (0u).xxx;
+  arg_0.GetDimensions(v[0u], v[1u], v[2u]);
+  uint2 res = v.xy;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store2(0u, textureDimensions_4716a4());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store2(0u, textureDimensions_4716a4());
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = textureDimensions_4716a4();
+  VertexOutput v_1 = tint_symbol;
+  return v_1;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_2 = vertex_main_inner();
+  VertexOutput v_3 = v_2;
+  VertexOutput v_4 = v_2;
+  vertex_main_outputs v_5 = {v_4.prevent_dce, v_3.pos};
+  return v_5;
+}
+
diff --git a/test/tint/builtins/gen/literal/textureDimensions/475c10.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/textureDimensions/475c10.wgsl.expected.ir.dxc.hlsl
index 1fac62e..3713f8d 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/475c10.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/475c10.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,45 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  uint3 prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureDimensions
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation uint3 VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+Texture3D<uint4> arg_0 : register(t0, space1);
+uint3 textureDimensions_475c10() {
+  uint3 v = (0u).xxx;
+  arg_0.GetDimensions(v[0u], v[1u], v[2u]);
+  uint3 res = v;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store3(0u, textureDimensions_475c10());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store3(0u, textureDimensions_475c10());
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = textureDimensions_475c10();
+  VertexOutput v_1 = tint_symbol;
+  return v_1;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_2 = vertex_main_inner();
+  VertexOutput v_3 = v_2;
+  VertexOutput v_4 = v_2;
+  vertex_main_outputs v_5 = {v_4.prevent_dce, v_3.pos};
+  return v_5;
+}
+
diff --git a/test/tint/builtins/gen/literal/textureDimensions/475c10.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/textureDimensions/475c10.wgsl.expected.ir.fxc.hlsl
index 1fac62e..3713f8d 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/475c10.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/475c10.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,45 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  uint3 prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureDimensions
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation uint3 VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+Texture3D<uint4> arg_0 : register(t0, space1);
+uint3 textureDimensions_475c10() {
+  uint3 v = (0u).xxx;
+  arg_0.GetDimensions(v[0u], v[1u], v[2u]);
+  uint3 res = v;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store3(0u, textureDimensions_475c10());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store3(0u, textureDimensions_475c10());
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = textureDimensions_475c10();
+  VertexOutput v_1 = tint_symbol;
+  return v_1;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_2 = vertex_main_inner();
+  VertexOutput v_3 = v_2;
+  VertexOutput v_4 = v_2;
+  vertex_main_outputs v_5 = {v_4.prevent_dce, v_3.pos};
+  return v_5;
+}
+
diff --git a/test/tint/builtins/gen/literal/textureDimensions/49a067.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/textureDimensions/49a067.wgsl.expected.ir.dxc.hlsl
index 1fac62e..669d091 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/49a067.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/49a067.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,46 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  uint2 prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureDimensions
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation uint2 VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+TextureCube<float4> arg_0 : register(t0, space1);
+uint2 textureDimensions_49a067() {
+  TextureCube<float4> v = arg_0;
+  uint3 v_1 = (0u).xxx;
+  v.GetDimensions(uint(1), v_1[0u], v_1[1u], v_1[2u]);
+  uint2 res = v_1.xy;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store2(0u, textureDimensions_49a067());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store2(0u, textureDimensions_49a067());
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = textureDimensions_49a067();
+  VertexOutput v_2 = tint_symbol;
+  return v_2;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_3 = vertex_main_inner();
+  VertexOutput v_4 = v_3;
+  VertexOutput v_5 = v_3;
+  vertex_main_outputs v_6 = {v_5.prevent_dce, v_4.pos};
+  return v_6;
+}
+
diff --git a/test/tint/builtins/gen/literal/textureDimensions/49a067.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/textureDimensions/49a067.wgsl.expected.ir.fxc.hlsl
index 1fac62e..669d091 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/49a067.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/49a067.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,46 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  uint2 prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureDimensions
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation uint2 VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+TextureCube<float4> arg_0 : register(t0, space1);
+uint2 textureDimensions_49a067() {
+  TextureCube<float4> v = arg_0;
+  uint3 v_1 = (0u).xxx;
+  v.GetDimensions(uint(1), v_1[0u], v_1[1u], v_1[2u]);
+  uint2 res = v_1.xy;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store2(0u, textureDimensions_49a067());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store2(0u, textureDimensions_49a067());
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = textureDimensions_49a067();
+  VertexOutput v_2 = tint_symbol;
+  return v_2;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_3 = vertex_main_inner();
+  VertexOutput v_4 = v_3;
+  VertexOutput v_5 = v_3;
+  vertex_main_outputs v_6 = {v_5.prevent_dce, v_4.pos};
+  return v_6;
+}
+
diff --git a/test/tint/builtins/gen/literal/textureDimensions/4acec7.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/textureDimensions/4acec7.wgsl.expected.ir.dxc.hlsl
index 1fac62e..f0cd024 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/4acec7.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/4acec7.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,19 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureDimensions
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWByteAddressBuffer prevent_dce : register(u0);
+RWTexture2DArray<float4> arg_0 : register(u0, space1);
+uint2 textureDimensions_4acec7() {
+  uint3 v = (0u).xxx;
+  arg_0.GetDimensions(v[0u], v[1u], v[2u]);
+  uint2 res = v.xy;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store2(0u, textureDimensions_4acec7());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store2(0u, textureDimensions_4acec7());
+}
+
diff --git a/test/tint/builtins/gen/literal/textureDimensions/4acec7.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/textureDimensions/4acec7.wgsl.expected.ir.fxc.hlsl
index 1fac62e..f0cd024 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/4acec7.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/4acec7.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,19 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureDimensions
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWByteAddressBuffer prevent_dce : register(u0);
+RWTexture2DArray<float4> arg_0 : register(u0, space1);
+uint2 textureDimensions_4acec7() {
+  uint3 v = (0u).xxx;
+  arg_0.GetDimensions(v[0u], v[1u], v[2u]);
+  uint2 res = v.xy;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store2(0u, textureDimensions_4acec7());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store2(0u, textureDimensions_4acec7());
+}
+
diff --git a/test/tint/builtins/gen/literal/textureDimensions/4b26ef.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/textureDimensions/4b26ef.wgsl.expected.ir.dxc.hlsl
index 1fac62e..4c8b444 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/4b26ef.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/4b26ef.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,19 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureDimensions
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWByteAddressBuffer prevent_dce : register(u0);
+RWTexture3D<float4> arg_0 : register(u0, space1);
+uint3 textureDimensions_4b26ef() {
+  uint3 v = (0u).xxx;
+  arg_0.GetDimensions(v[0u], v[1u], v[2u]);
+  uint3 res = v;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store3(0u, textureDimensions_4b26ef());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store3(0u, textureDimensions_4b26ef());
+}
+
diff --git a/test/tint/builtins/gen/literal/textureDimensions/4b26ef.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/textureDimensions/4b26ef.wgsl.expected.ir.fxc.hlsl
index 1fac62e..4c8b444 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/4b26ef.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/4b26ef.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,19 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureDimensions
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWByteAddressBuffer prevent_dce : register(u0);
+RWTexture3D<float4> arg_0 : register(u0, space1);
+uint3 textureDimensions_4b26ef() {
+  uint3 v = (0u).xxx;
+  arg_0.GetDimensions(v[0u], v[1u], v[2u]);
+  uint3 res = v;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store3(0u, textureDimensions_4b26ef());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store3(0u, textureDimensions_4b26ef());
+}
+
diff --git a/test/tint/builtins/gen/literal/textureDimensions/4be71b.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/textureDimensions/4be71b.wgsl.expected.ir.dxc.hlsl
index 1fac62e..43f2539 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/4be71b.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/4be71b.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,45 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  uint2 prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureDimensions
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation uint2 VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+Texture2D<uint4> arg_0 : register(t0, space1);
+uint2 textureDimensions_4be71b() {
+  uint2 v = (0u).xx;
+  arg_0.GetDimensions(v[0u], v[1u]);
+  uint2 res = v;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store2(0u, textureDimensions_4be71b());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store2(0u, textureDimensions_4be71b());
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = textureDimensions_4be71b();
+  VertexOutput v_1 = tint_symbol;
+  return v_1;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_2 = vertex_main_inner();
+  VertexOutput v_3 = v_2;
+  VertexOutput v_4 = v_2;
+  vertex_main_outputs v_5 = {v_4.prevent_dce, v_3.pos};
+  return v_5;
+}
+
diff --git a/test/tint/builtins/gen/literal/textureDimensions/4be71b.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/textureDimensions/4be71b.wgsl.expected.ir.fxc.hlsl
index 1fac62e..43f2539 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/4be71b.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/4be71b.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,45 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  uint2 prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureDimensions
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation uint2 VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+Texture2D<uint4> arg_0 : register(t0, space1);
+uint2 textureDimensions_4be71b() {
+  uint2 v = (0u).xx;
+  arg_0.GetDimensions(v[0u], v[1u]);
+  uint2 res = v;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store2(0u, textureDimensions_4be71b());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store2(0u, textureDimensions_4be71b());
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = textureDimensions_4be71b();
+  VertexOutput v_1 = tint_symbol;
+  return v_1;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_2 = vertex_main_inner();
+  VertexOutput v_3 = v_2;
+  VertexOutput v_4 = v_2;
+  vertex_main_outputs v_5 = {v_4.prevent_dce, v_3.pos};
+  return v_5;
+}
+
diff --git a/test/tint/builtins/gen/literal/textureDimensions/4d1f71.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/textureDimensions/4d1f71.wgsl.expected.ir.dxc.hlsl
index 1fac62e..9773b59 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/4d1f71.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/4d1f71.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,45 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  uint2 prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureDimensions
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation uint2 VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+Texture2DArray<uint4> arg_0 : register(t0, space1);
+uint2 textureDimensions_4d1f71() {
+  uint3 v = (0u).xxx;
+  arg_0.GetDimensions(v[0u], v[1u], v[2u]);
+  uint2 res = v.xy;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store2(0u, textureDimensions_4d1f71());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store2(0u, textureDimensions_4d1f71());
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = textureDimensions_4d1f71();
+  VertexOutput v_1 = tint_symbol;
+  return v_1;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_2 = vertex_main_inner();
+  VertexOutput v_3 = v_2;
+  VertexOutput v_4 = v_2;
+  vertex_main_outputs v_5 = {v_4.prevent_dce, v_3.pos};
+  return v_5;
+}
+
diff --git a/test/tint/builtins/gen/literal/textureDimensions/4d1f71.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/textureDimensions/4d1f71.wgsl.expected.ir.fxc.hlsl
index 1fac62e..9773b59 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/4d1f71.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/4d1f71.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,45 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  uint2 prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureDimensions
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation uint2 VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+Texture2DArray<uint4> arg_0 : register(t0, space1);
+uint2 textureDimensions_4d1f71() {
+  uint3 v = (0u).xxx;
+  arg_0.GetDimensions(v[0u], v[1u], v[2u]);
+  uint2 res = v.xy;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store2(0u, textureDimensions_4d1f71());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store2(0u, textureDimensions_4d1f71());
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = textureDimensions_4d1f71();
+  VertexOutput v_1 = tint_symbol;
+  return v_1;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_2 = vertex_main_inner();
+  VertexOutput v_3 = v_2;
+  VertexOutput v_4 = v_2;
+  vertex_main_outputs v_5 = {v_4.prevent_dce, v_3.pos};
+  return v_5;
+}
+
diff --git a/test/tint/builtins/gen/literal/textureDimensions/4d27b3.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/textureDimensions/4d27b3.wgsl.expected.ir.dxc.hlsl
index 1fac62e..ca1a07e 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/4d27b3.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/4d27b3.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,19 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureDimensions
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWByteAddressBuffer prevent_dce : register(u0);
+RWTexture3D<int4> arg_0 : register(u0, space1);
+uint3 textureDimensions_4d27b3() {
+  uint3 v = (0u).xxx;
+  arg_0.GetDimensions(v[0u], v[1u], v[2u]);
+  uint3 res = v;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store3(0u, textureDimensions_4d27b3());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store3(0u, textureDimensions_4d27b3());
+}
+
diff --git a/test/tint/builtins/gen/literal/textureDimensions/4d27b3.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/textureDimensions/4d27b3.wgsl.expected.ir.fxc.hlsl
index 1fac62e..ca1a07e 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/4d27b3.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/4d27b3.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,19 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureDimensions
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWByteAddressBuffer prevent_dce : register(u0);
+RWTexture3D<int4> arg_0 : register(u0, space1);
+uint3 textureDimensions_4d27b3() {
+  uint3 v = (0u).xxx;
+  arg_0.GetDimensions(v[0u], v[1u], v[2u]);
+  uint3 res = v;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store3(0u, textureDimensions_4d27b3());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store3(0u, textureDimensions_4d27b3());
+}
+
diff --git a/test/tint/builtins/gen/literal/textureDimensions/4df14c.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/textureDimensions/4df14c.wgsl.expected.ir.dxc.hlsl
index 1fac62e..6d87a7c 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/4df14c.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/4df14c.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,19 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureDimensions
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWByteAddressBuffer prevent_dce : register(u0);
+RWTexture3D<uint4> arg_0 : register(u0, space1);
+uint3 textureDimensions_4df14c() {
+  uint3 v = (0u).xxx;
+  arg_0.GetDimensions(v[0u], v[1u], v[2u]);
+  uint3 res = v;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store3(0u, textureDimensions_4df14c());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store3(0u, textureDimensions_4df14c());
+}
+
diff --git a/test/tint/builtins/gen/literal/textureDimensions/4df14c.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/textureDimensions/4df14c.wgsl.expected.ir.fxc.hlsl
index 1fac62e..6d87a7c 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/4df14c.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/4df14c.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,19 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureDimensions
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWByteAddressBuffer prevent_dce : register(u0);
+RWTexture3D<uint4> arg_0 : register(u0, space1);
+uint3 textureDimensions_4df14c() {
+  uint3 v = (0u).xxx;
+  arg_0.GetDimensions(v[0u], v[1u], v[2u]);
+  uint3 res = v;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store3(0u, textureDimensions_4df14c());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store3(0u, textureDimensions_4df14c());
+}
+
diff --git a/test/tint/builtins/gen/literal/textureDimensions/4e540a.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/textureDimensions/4e540a.wgsl.expected.ir.dxc.hlsl
index 1fac62e..8483f5d 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/4e540a.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/4e540a.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,19 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureDimensions
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWByteAddressBuffer prevent_dce : register(u0);
+RWTexture1D<int4> arg_0 : register(u0, space1);
+uint textureDimensions_4e540a() {
+  uint v = 0u;
+  arg_0.GetDimensions(v);
+  uint res = v;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store(0u, textureDimensions_4e540a());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store(0u, textureDimensions_4e540a());
+}
+
diff --git a/test/tint/builtins/gen/literal/textureDimensions/4e540a.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/textureDimensions/4e540a.wgsl.expected.ir.fxc.hlsl
index 1fac62e..8483f5d 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/4e540a.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/4e540a.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,19 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureDimensions
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWByteAddressBuffer prevent_dce : register(u0);
+RWTexture1D<int4> arg_0 : register(u0, space1);
+uint textureDimensions_4e540a() {
+  uint v = 0u;
+  arg_0.GetDimensions(v);
+  uint res = v;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store(0u, textureDimensions_4e540a());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store(0u, textureDimensions_4e540a());
+}
+
diff --git a/test/tint/builtins/gen/literal/textureDimensions/528c0e.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/textureDimensions/528c0e.wgsl.expected.ir.dxc.hlsl
index 1fac62e..51848a0 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/528c0e.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/528c0e.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,46 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  uint2 prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureDimensions
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation uint2 VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+Texture2DArray<uint4> arg_0 : register(t0, space1);
+uint2 textureDimensions_528c0e() {
+  Texture2DArray<uint4> v = arg_0;
+  uint4 v_1 = (0u).xxxx;
+  v.GetDimensions(uint(1u), v_1[0u], v_1[1u], v_1[2u], v_1[3u]);
+  uint2 res = v_1.xy;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store2(0u, textureDimensions_528c0e());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store2(0u, textureDimensions_528c0e());
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = textureDimensions_528c0e();
+  VertexOutput v_2 = tint_symbol;
+  return v_2;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_3 = vertex_main_inner();
+  VertexOutput v_4 = v_3;
+  VertexOutput v_5 = v_3;
+  vertex_main_outputs v_6 = {v_5.prevent_dce, v_4.pos};
+  return v_6;
+}
+
diff --git a/test/tint/builtins/gen/literal/textureDimensions/528c0e.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/textureDimensions/528c0e.wgsl.expected.ir.fxc.hlsl
index 1fac62e..51848a0 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/528c0e.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/528c0e.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,46 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  uint2 prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureDimensions
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation uint2 VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+Texture2DArray<uint4> arg_0 : register(t0, space1);
+uint2 textureDimensions_528c0e() {
+  Texture2DArray<uint4> v = arg_0;
+  uint4 v_1 = (0u).xxxx;
+  v.GetDimensions(uint(1u), v_1[0u], v_1[1u], v_1[2u], v_1[3u]);
+  uint2 res = v_1.xy;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store2(0u, textureDimensions_528c0e());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store2(0u, textureDimensions_528c0e());
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = textureDimensions_528c0e();
+  VertexOutput v_2 = tint_symbol;
+  return v_2;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_3 = vertex_main_inner();
+  VertexOutput v_4 = v_3;
+  VertexOutput v_5 = v_3;
+  vertex_main_outputs v_6 = {v_5.prevent_dce, v_4.pos};
+  return v_6;
+}
+
diff --git a/test/tint/builtins/gen/literal/textureDimensions/52cf60.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/textureDimensions/52cf60.wgsl.expected.ir.dxc.hlsl
index 1fac62e..70b8e2f 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/52cf60.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/52cf60.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,45 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  uint2 prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureDimensions
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation uint2 VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+Texture2D<float4> arg_0 : register(t0, space1);
+uint2 textureDimensions_52cf60() {
+  uint2 v = (0u).xx;
+  arg_0.GetDimensions(v[0u], v[1u]);
+  uint2 res = v;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store2(0u, textureDimensions_52cf60());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store2(0u, textureDimensions_52cf60());
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = textureDimensions_52cf60();
+  VertexOutput v_1 = tint_symbol;
+  return v_1;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_2 = vertex_main_inner();
+  VertexOutput v_3 = v_2;
+  VertexOutput v_4 = v_2;
+  vertex_main_outputs v_5 = {v_4.prevent_dce, v_3.pos};
+  return v_5;
+}
+
diff --git a/test/tint/builtins/gen/literal/textureDimensions/52cf60.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/textureDimensions/52cf60.wgsl.expected.ir.fxc.hlsl
index 1fac62e..70b8e2f 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/52cf60.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/52cf60.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,45 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  uint2 prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureDimensions
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation uint2 VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+Texture2D<float4> arg_0 : register(t0, space1);
+uint2 textureDimensions_52cf60() {
+  uint2 v = (0u).xx;
+  arg_0.GetDimensions(v[0u], v[1u]);
+  uint2 res = v;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store2(0u, textureDimensions_52cf60());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store2(0u, textureDimensions_52cf60());
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = textureDimensions_52cf60();
+  VertexOutput v_1 = tint_symbol;
+  return v_1;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_2 = vertex_main_inner();
+  VertexOutput v_3 = v_2;
+  VertexOutput v_4 = v_2;
+  vertex_main_outputs v_5 = {v_4.prevent_dce, v_3.pos};
+  return v_5;
+}
+
diff --git a/test/tint/builtins/gen/literal/textureDimensions/534ef8.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/textureDimensions/534ef8.wgsl.expected.ir.dxc.hlsl
index 1fac62e..374def4 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/534ef8.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/534ef8.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,45 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  uint2 prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureDimensions
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation uint2 VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+Texture2D<int4> arg_0 : register(t0, space1);
+uint2 textureDimensions_534ef8() {
+  uint2 v = (0u).xx;
+  arg_0.GetDimensions(v[0u], v[1u]);
+  uint2 res = v;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store2(0u, textureDimensions_534ef8());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store2(0u, textureDimensions_534ef8());
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = textureDimensions_534ef8();
+  VertexOutput v_1 = tint_symbol;
+  return v_1;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_2 = vertex_main_inner();
+  VertexOutput v_3 = v_2;
+  VertexOutput v_4 = v_2;
+  vertex_main_outputs v_5 = {v_4.prevent_dce, v_3.pos};
+  return v_5;
+}
+
diff --git a/test/tint/builtins/gen/literal/textureDimensions/534ef8.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/textureDimensions/534ef8.wgsl.expected.ir.fxc.hlsl
index 1fac62e..374def4 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/534ef8.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/534ef8.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,45 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  uint2 prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureDimensions
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation uint2 VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+Texture2D<int4> arg_0 : register(t0, space1);
+uint2 textureDimensions_534ef8() {
+  uint2 v = (0u).xx;
+  arg_0.GetDimensions(v[0u], v[1u]);
+  uint2 res = v;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store2(0u, textureDimensions_534ef8());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store2(0u, textureDimensions_534ef8());
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = textureDimensions_534ef8();
+  VertexOutput v_1 = tint_symbol;
+  return v_1;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_2 = vertex_main_inner();
+  VertexOutput v_3 = v_2;
+  VertexOutput v_4 = v_2;
+  vertex_main_outputs v_5 = {v_4.prevent_dce, v_3.pos};
+  return v_5;
+}
+
diff --git a/test/tint/builtins/gen/literal/textureDimensions/542c62.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/textureDimensions/542c62.wgsl.expected.ir.dxc.hlsl
index 1fac62e..f1a0867 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/542c62.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/542c62.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,19 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureDimensions
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWByteAddressBuffer prevent_dce : register(u0);
+RWTexture1D<float4> arg_0 : register(u0, space1);
+uint textureDimensions_542c62() {
+  uint v = 0u;
+  arg_0.GetDimensions(v);
+  uint res = v;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store(0u, textureDimensions_542c62());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store(0u, textureDimensions_542c62());
+}
+
diff --git a/test/tint/builtins/gen/literal/textureDimensions/542c62.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/textureDimensions/542c62.wgsl.expected.ir.fxc.hlsl
index 1fac62e..f1a0867 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/542c62.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/542c62.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,19 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureDimensions
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWByteAddressBuffer prevent_dce : register(u0);
+RWTexture1D<float4> arg_0 : register(u0, space1);
+uint textureDimensions_542c62() {
+  uint v = 0u;
+  arg_0.GetDimensions(v);
+  uint res = v;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store(0u, textureDimensions_542c62());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store(0u, textureDimensions_542c62());
+}
+
diff --git a/test/tint/builtins/gen/literal/textureDimensions/55fdeb.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/textureDimensions/55fdeb.wgsl.expected.ir.dxc.hlsl
index 1fac62e..179dd6a 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/55fdeb.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/55fdeb.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,19 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureDimensions
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWByteAddressBuffer prevent_dce : register(u0);
+RWTexture2D<float4> arg_0 : register(u0, space1);
+uint2 textureDimensions_55fdeb() {
+  uint2 v = (0u).xx;
+  arg_0.GetDimensions(v[0u], v[1u]);
+  uint2 res = v;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store2(0u, textureDimensions_55fdeb());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store2(0u, textureDimensions_55fdeb());
+}
+
diff --git a/test/tint/builtins/gen/literal/textureDimensions/55fdeb.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/textureDimensions/55fdeb.wgsl.expected.ir.fxc.hlsl
index 1fac62e..179dd6a 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/55fdeb.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/55fdeb.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,19 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureDimensions
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWByteAddressBuffer prevent_dce : register(u0);
+RWTexture2D<float4> arg_0 : register(u0, space1);
+uint2 textureDimensions_55fdeb() {
+  uint2 v = (0u).xx;
+  arg_0.GetDimensions(v[0u], v[1u]);
+  uint2 res = v;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store2(0u, textureDimensions_55fdeb());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store2(0u, textureDimensions_55fdeb());
+}
+
diff --git a/test/tint/builtins/gen/literal/textureDimensions/5703b3.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/textureDimensions/5703b3.wgsl.expected.ir.dxc.hlsl
index 1fac62e..f00eafc 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/5703b3.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/5703b3.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,19 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureDimensions
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWByteAddressBuffer prevent_dce : register(u0);
+RWTexture1D<float4> arg_0 : register(u0, space1);
+uint textureDimensions_5703b3() {
+  uint v = 0u;
+  arg_0.GetDimensions(v);
+  uint res = v;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store(0u, textureDimensions_5703b3());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store(0u, textureDimensions_5703b3());
+}
+
diff --git a/test/tint/builtins/gen/literal/textureDimensions/5703b3.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/textureDimensions/5703b3.wgsl.expected.ir.fxc.hlsl
index 1fac62e..f00eafc 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/5703b3.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/5703b3.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,19 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureDimensions
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWByteAddressBuffer prevent_dce : register(u0);
+RWTexture1D<float4> arg_0 : register(u0, space1);
+uint textureDimensions_5703b3() {
+  uint v = 0u;
+  arg_0.GetDimensions(v);
+  uint res = v;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store(0u, textureDimensions_5703b3());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store(0u, textureDimensions_5703b3());
+}
+
diff --git a/test/tint/builtins/gen/literal/textureDimensions/578e75.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/textureDimensions/578e75.wgsl.expected.ir.dxc.hlsl
index 1fac62e..dfc7cc6 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/578e75.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/578e75.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,19 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureDimensions
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWByteAddressBuffer prevent_dce : register(u0);
+RWTexture2DArray<float4> arg_0 : register(u0, space1);
+uint2 textureDimensions_578e75() {
+  uint3 v = (0u).xxx;
+  arg_0.GetDimensions(v[0u], v[1u], v[2u]);
+  uint2 res = v.xy;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store2(0u, textureDimensions_578e75());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store2(0u, textureDimensions_578e75());
+}
+
diff --git a/test/tint/builtins/gen/literal/textureDimensions/578e75.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/textureDimensions/578e75.wgsl.expected.ir.fxc.hlsl
index 1fac62e..dfc7cc6 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/578e75.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/578e75.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,19 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureDimensions
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWByteAddressBuffer prevent_dce : register(u0);
+RWTexture2DArray<float4> arg_0 : register(u0, space1);
+uint2 textureDimensions_578e75() {
+  uint3 v = (0u).xxx;
+  arg_0.GetDimensions(v[0u], v[1u], v[2u]);
+  uint2 res = v.xy;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store2(0u, textureDimensions_578e75());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store2(0u, textureDimensions_578e75());
+}
+
diff --git a/test/tint/builtins/gen/literal/textureDimensions/579eee.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/textureDimensions/579eee.wgsl.expected.ir.dxc.hlsl
index 1fac62e..5b06b67 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/579eee.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/579eee.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,19 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureDimensions
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWByteAddressBuffer prevent_dce : register(u0);
+RWTexture2D<uint4> arg_0 : register(u0, space1);
+uint2 textureDimensions_579eee() {
+  uint2 v = (0u).xx;
+  arg_0.GetDimensions(v[0u], v[1u]);
+  uint2 res = v;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store2(0u, textureDimensions_579eee());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store2(0u, textureDimensions_579eee());
+}
+
diff --git a/test/tint/builtins/gen/literal/textureDimensions/579eee.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/textureDimensions/579eee.wgsl.expected.ir.fxc.hlsl
index 1fac62e..5b06b67 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/579eee.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/579eee.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,19 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureDimensions
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWByteAddressBuffer prevent_dce : register(u0);
+RWTexture2D<uint4> arg_0 : register(u0, space1);
+uint2 textureDimensions_579eee() {
+  uint2 v = (0u).xx;
+  arg_0.GetDimensions(v[0u], v[1u]);
+  uint2 res = v;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store2(0u, textureDimensions_579eee());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store2(0u, textureDimensions_579eee());
+}
+
diff --git a/test/tint/builtins/gen/literal/textureDimensions/58a82d.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/textureDimensions/58a82d.wgsl.expected.ir.dxc.hlsl
index 1fac62e..b0d7a25 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/58a82d.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/58a82d.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,19 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureDimensions
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWByteAddressBuffer prevent_dce : register(u0);
+RWTexture1D<uint4> arg_0 : register(u0, space1);
+uint textureDimensions_58a82d() {
+  uint v = 0u;
+  arg_0.GetDimensions(v);
+  uint res = v;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store(0u, textureDimensions_58a82d());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store(0u, textureDimensions_58a82d());
+}
+
diff --git a/test/tint/builtins/gen/literal/textureDimensions/58a82d.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/textureDimensions/58a82d.wgsl.expected.ir.fxc.hlsl
index 1fac62e..b0d7a25 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/58a82d.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/58a82d.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,19 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureDimensions
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWByteAddressBuffer prevent_dce : register(u0);
+RWTexture1D<uint4> arg_0 : register(u0, space1);
+uint textureDimensions_58a82d() {
+  uint v = 0u;
+  arg_0.GetDimensions(v);
+  uint res = v;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store(0u, textureDimensions_58a82d());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store(0u, textureDimensions_58a82d());
+}
+
diff --git a/test/tint/builtins/gen/literal/textureDimensions/591981.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/textureDimensions/591981.wgsl.expected.ir.dxc.hlsl
index 1fac62e..f5e1080 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/591981.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/591981.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,19 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureDimensions
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWByteAddressBuffer prevent_dce : register(u0);
+RWTexture3D<int4> arg_0 : register(u0, space1);
+uint3 textureDimensions_591981() {
+  uint3 v = (0u).xxx;
+  arg_0.GetDimensions(v[0u], v[1u], v[2u]);
+  uint3 res = v;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store3(0u, textureDimensions_591981());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store3(0u, textureDimensions_591981());
+}
+
diff --git a/test/tint/builtins/gen/literal/textureDimensions/591981.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/textureDimensions/591981.wgsl.expected.ir.fxc.hlsl
index 1fac62e..f5e1080 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/591981.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/591981.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,19 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureDimensions
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWByteAddressBuffer prevent_dce : register(u0);
+RWTexture3D<int4> arg_0 : register(u0, space1);
+uint3 textureDimensions_591981() {
+  uint3 v = (0u).xxx;
+  arg_0.GetDimensions(v[0u], v[1u], v[2u]);
+  uint3 res = v;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store3(0u, textureDimensions_591981());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store3(0u, textureDimensions_591981());
+}
+
diff --git a/test/tint/builtins/gen/literal/textureDimensions/599ab5.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/textureDimensions/599ab5.wgsl.expected.ir.dxc.hlsl
index 1fac62e..3e95111 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/599ab5.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/599ab5.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,19 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureDimensions
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWByteAddressBuffer prevent_dce : register(u0);
+RWTexture2D<float4> arg_0 : register(u0, space1);
+uint2 textureDimensions_599ab5() {
+  uint2 v = (0u).xx;
+  arg_0.GetDimensions(v[0u], v[1u]);
+  uint2 res = v;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store2(0u, textureDimensions_599ab5());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store2(0u, textureDimensions_599ab5());
+}
+
diff --git a/test/tint/builtins/gen/literal/textureDimensions/599ab5.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/textureDimensions/599ab5.wgsl.expected.ir.fxc.hlsl
index 1fac62e..3e95111 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/599ab5.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/599ab5.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,19 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureDimensions
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWByteAddressBuffer prevent_dce : register(u0);
+RWTexture2D<float4> arg_0 : register(u0, space1);
+uint2 textureDimensions_599ab5() {
+  uint2 v = (0u).xx;
+  arg_0.GetDimensions(v[0u], v[1u]);
+  uint2 res = v;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store2(0u, textureDimensions_599ab5());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store2(0u, textureDimensions_599ab5());
+}
+
diff --git a/test/tint/builtins/gen/literal/textureDimensions/5b4b10.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/textureDimensions/5b4b10.wgsl.expected.ir.dxc.hlsl
index 1fac62e..45c995d 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/5b4b10.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/5b4b10.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,19 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureDimensions
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWByteAddressBuffer prevent_dce : register(u0);
+RWTexture3D<float4> arg_0 : register(u0, space1);
+uint3 textureDimensions_5b4b10() {
+  uint3 v = (0u).xxx;
+  arg_0.GetDimensions(v[0u], v[1u], v[2u]);
+  uint3 res = v;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store3(0u, textureDimensions_5b4b10());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store3(0u, textureDimensions_5b4b10());
+}
+
diff --git a/test/tint/builtins/gen/literal/textureDimensions/5b4b10.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/textureDimensions/5b4b10.wgsl.expected.ir.fxc.hlsl
index 1fac62e..45c995d 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/5b4b10.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/5b4b10.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,19 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureDimensions
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWByteAddressBuffer prevent_dce : register(u0);
+RWTexture3D<float4> arg_0 : register(u0, space1);
+uint3 textureDimensions_5b4b10() {
+  uint3 v = (0u).xxx;
+  arg_0.GetDimensions(v[0u], v[1u], v[2u]);
+  uint3 res = v;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store3(0u, textureDimensions_5b4b10());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store3(0u, textureDimensions_5b4b10());
+}
+
diff --git a/test/tint/builtins/gen/literal/textureDimensions/5df042.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/textureDimensions/5df042.wgsl.expected.ir.dxc.hlsl
index 1fac62e..622460e 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/5df042.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/5df042.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,45 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  uint prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureDimensions
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation uint VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+Texture1D<int4> arg_0 : register(t0, space1);
+uint textureDimensions_5df042() {
+  uint v = 0u;
+  arg_0.GetDimensions(v);
+  uint res = v;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store(0u, textureDimensions_5df042());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store(0u, textureDimensions_5df042());
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = textureDimensions_5df042();
+  VertexOutput v_1 = tint_symbol;
+  return v_1;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_2 = vertex_main_inner();
+  VertexOutput v_3 = v_2;
+  VertexOutput v_4 = v_2;
+  vertex_main_outputs v_5 = {v_4.prevent_dce, v_3.pos};
+  return v_5;
+}
+
diff --git a/test/tint/builtins/gen/literal/textureDimensions/5df042.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/textureDimensions/5df042.wgsl.expected.ir.fxc.hlsl
index 1fac62e..622460e 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/5df042.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/5df042.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,45 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  uint prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureDimensions
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation uint VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+Texture1D<int4> arg_0 : register(t0, space1);
+uint textureDimensions_5df042() {
+  uint v = 0u;
+  arg_0.GetDimensions(v);
+  uint res = v;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store(0u, textureDimensions_5df042());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store(0u, textureDimensions_5df042());
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = textureDimensions_5df042();
+  VertexOutput v_1 = tint_symbol;
+  return v_1;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_2 = vertex_main_inner();
+  VertexOutput v_3 = v_2;
+  VertexOutput v_4 = v_2;
+  vertex_main_outputs v_5 = {v_4.prevent_dce, v_3.pos};
+  return v_5;
+}
+
diff --git a/test/tint/builtins/gen/literal/textureDimensions/607979.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/textureDimensions/607979.wgsl.expected.ir.dxc.hlsl
index 1fac62e..19a8119 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/607979.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/607979.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,19 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureDimensions
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWByteAddressBuffer prevent_dce : register(u0);
+RWTexture1D<int4> arg_0 : register(u0, space1);
+uint textureDimensions_607979() {
+  uint v = 0u;
+  arg_0.GetDimensions(v);
+  uint res = v;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store(0u, textureDimensions_607979());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store(0u, textureDimensions_607979());
+}
+
diff --git a/test/tint/builtins/gen/literal/textureDimensions/607979.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/textureDimensions/607979.wgsl.expected.ir.fxc.hlsl
index 1fac62e..19a8119 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/607979.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/607979.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,19 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureDimensions
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWByteAddressBuffer prevent_dce : register(u0);
+RWTexture1D<int4> arg_0 : register(u0, space1);
+uint textureDimensions_607979() {
+  uint v = 0u;
+  arg_0.GetDimensions(v);
+  uint res = v;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store(0u, textureDimensions_607979());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store(0u, textureDimensions_607979());
+}
+
diff --git a/test/tint/builtins/gen/literal/textureDimensions/609d34.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/textureDimensions/609d34.wgsl.expected.ir.dxc.hlsl
index 1fac62e..538e232 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/609d34.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/609d34.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,45 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  uint2 prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureDimensions
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation uint2 VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+Texture2DArray<float4> arg_0 : register(t0, space1);
+uint2 textureDimensions_609d34() {
+  uint3 v = (0u).xxx;
+  arg_0.GetDimensions(v[0u], v[1u], v[2u]);
+  uint2 res = v.xy;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store2(0u, textureDimensions_609d34());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store2(0u, textureDimensions_609d34());
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = textureDimensions_609d34();
+  VertexOutput v_1 = tint_symbol;
+  return v_1;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_2 = vertex_main_inner();
+  VertexOutput v_3 = v_2;
+  VertexOutput v_4 = v_2;
+  vertex_main_outputs v_5 = {v_4.prevent_dce, v_3.pos};
+  return v_5;
+}
+
diff --git a/test/tint/builtins/gen/literal/textureDimensions/609d34.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/textureDimensions/609d34.wgsl.expected.ir.fxc.hlsl
index 1fac62e..538e232 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/609d34.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/609d34.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,45 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  uint2 prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureDimensions
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation uint2 VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+Texture2DArray<float4> arg_0 : register(t0, space1);
+uint2 textureDimensions_609d34() {
+  uint3 v = (0u).xxx;
+  arg_0.GetDimensions(v[0u], v[1u], v[2u]);
+  uint2 res = v.xy;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store2(0u, textureDimensions_609d34());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store2(0u, textureDimensions_609d34());
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = textureDimensions_609d34();
+  VertexOutput v_1 = tint_symbol;
+  return v_1;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_2 = vertex_main_inner();
+  VertexOutput v_3 = v_2;
+  VertexOutput v_4 = v_2;
+  vertex_main_outputs v_5 = {v_4.prevent_dce, v_3.pos};
+  return v_5;
+}
+
diff --git a/test/tint/builtins/gen/literal/textureDimensions/617dc8.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/textureDimensions/617dc8.wgsl.expected.ir.dxc.hlsl
index 1fac62e..5982595 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/617dc8.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/617dc8.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,19 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureDimensions
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWByteAddressBuffer prevent_dce : register(u0);
+RWTexture3D<float4> arg_0 : register(u0, space1);
+uint3 textureDimensions_617dc8() {
+  uint3 v = (0u).xxx;
+  arg_0.GetDimensions(v[0u], v[1u], v[2u]);
+  uint3 res = v;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store3(0u, textureDimensions_617dc8());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store3(0u, textureDimensions_617dc8());
+}
+
diff --git a/test/tint/builtins/gen/literal/textureDimensions/617dc8.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/textureDimensions/617dc8.wgsl.expected.ir.fxc.hlsl
index 1fac62e..5982595 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/617dc8.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/617dc8.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,19 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureDimensions
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWByteAddressBuffer prevent_dce : register(u0);
+RWTexture3D<float4> arg_0 : register(u0, space1);
+uint3 textureDimensions_617dc8() {
+  uint3 v = (0u).xxx;
+  arg_0.GetDimensions(v[0u], v[1u], v[2u]);
+  uint3 res = v;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store3(0u, textureDimensions_617dc8());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store3(0u, textureDimensions_617dc8());
+}
+
diff --git a/test/tint/builtins/gen/literal/textureDimensions/62cb5a.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/textureDimensions/62cb5a.wgsl.expected.ir.dxc.hlsl
index 1fac62e..0ba7736 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/62cb5a.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/62cb5a.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,45 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  uint2 prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureDimensions
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation uint2 VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+Texture2DArray<int4> arg_0 : register(t0, space1);
+uint2 textureDimensions_62cb5a() {
+  uint3 v = (0u).xxx;
+  arg_0.GetDimensions(v[0u], v[1u], v[2u]);
+  uint2 res = v.xy;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store2(0u, textureDimensions_62cb5a());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store2(0u, textureDimensions_62cb5a());
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = textureDimensions_62cb5a();
+  VertexOutput v_1 = tint_symbol;
+  return v_1;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_2 = vertex_main_inner();
+  VertexOutput v_3 = v_2;
+  VertexOutput v_4 = v_2;
+  vertex_main_outputs v_5 = {v_4.prevent_dce, v_3.pos};
+  return v_5;
+}
+
diff --git a/test/tint/builtins/gen/literal/textureDimensions/62cb5a.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/textureDimensions/62cb5a.wgsl.expected.ir.fxc.hlsl
index 1fac62e..0ba7736 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/62cb5a.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/62cb5a.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,45 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  uint2 prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureDimensions
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation uint2 VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+Texture2DArray<int4> arg_0 : register(t0, space1);
+uint2 textureDimensions_62cb5a() {
+  uint3 v = (0u).xxx;
+  arg_0.GetDimensions(v[0u], v[1u], v[2u]);
+  uint2 res = v.xy;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store2(0u, textureDimensions_62cb5a());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store2(0u, textureDimensions_62cb5a());
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = textureDimensions_62cb5a();
+  VertexOutput v_1 = tint_symbol;
+  return v_1;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_2 = vertex_main_inner();
+  VertexOutput v_3 = v_2;
+  VertexOutput v_4 = v_2;
+  vertex_main_outputs v_5 = {v_4.prevent_dce, v_3.pos};
+  return v_5;
+}
+
diff --git a/test/tint/builtins/gen/literal/textureDimensions/62e7ae.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/textureDimensions/62e7ae.wgsl.expected.ir.dxc.hlsl
index 1fac62e..c7f195f 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/62e7ae.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/62e7ae.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,45 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  uint2 prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureDimensions
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation uint2 VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+Texture2D<uint4> arg_0 : register(t0, space1);
+uint2 textureDimensions_62e7ae() {
+  uint2 v = (0u).xx;
+  arg_0.GetDimensions(v[0u], v[1u]);
+  uint2 res = v;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store2(0u, textureDimensions_62e7ae());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store2(0u, textureDimensions_62e7ae());
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = textureDimensions_62e7ae();
+  VertexOutput v_1 = tint_symbol;
+  return v_1;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_2 = vertex_main_inner();
+  VertexOutput v_3 = v_2;
+  VertexOutput v_4 = v_2;
+  vertex_main_outputs v_5 = {v_4.prevent_dce, v_3.pos};
+  return v_5;
+}
+
diff --git a/test/tint/builtins/gen/literal/textureDimensions/62e7ae.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/textureDimensions/62e7ae.wgsl.expected.ir.fxc.hlsl
index 1fac62e..c7f195f 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/62e7ae.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/62e7ae.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,45 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  uint2 prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureDimensions
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation uint2 VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+Texture2D<uint4> arg_0 : register(t0, space1);
+uint2 textureDimensions_62e7ae() {
+  uint2 v = (0u).xx;
+  arg_0.GetDimensions(v[0u], v[1u]);
+  uint2 res = v;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store2(0u, textureDimensions_62e7ae());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store2(0u, textureDimensions_62e7ae());
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = textureDimensions_62e7ae();
+  VertexOutput v_1 = tint_symbol;
+  return v_1;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_2 = vertex_main_inner();
+  VertexOutput v_3 = v_2;
+  VertexOutput v_4 = v_2;
+  vertex_main_outputs v_5 = {v_4.prevent_dce, v_3.pos};
+  return v_5;
+}
+
diff --git a/test/tint/builtins/gen/literal/textureDimensions/64dc74.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/textureDimensions/64dc74.wgsl.expected.ir.dxc.hlsl
index 1fac62e..084a83a 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/64dc74.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/64dc74.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,46 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  uint2 prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureDimensions
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation uint2 VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+TextureCube<int4> arg_0 : register(t0, space1);
+uint2 textureDimensions_64dc74() {
+  TextureCube<int4> v = arg_0;
+  uint3 v_1 = (0u).xxx;
+  v.GetDimensions(uint(1u), v_1[0u], v_1[1u], v_1[2u]);
+  uint2 res = v_1.xy;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store2(0u, textureDimensions_64dc74());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store2(0u, textureDimensions_64dc74());
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = textureDimensions_64dc74();
+  VertexOutput v_2 = tint_symbol;
+  return v_2;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_3 = vertex_main_inner();
+  VertexOutput v_4 = v_3;
+  VertexOutput v_5 = v_3;
+  vertex_main_outputs v_6 = {v_5.prevent_dce, v_4.pos};
+  return v_6;
+}
+
diff --git a/test/tint/builtins/gen/literal/textureDimensions/64dc74.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/textureDimensions/64dc74.wgsl.expected.ir.fxc.hlsl
index 1fac62e..084a83a 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/64dc74.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/64dc74.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,46 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  uint2 prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureDimensions
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation uint2 VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+TextureCube<int4> arg_0 : register(t0, space1);
+uint2 textureDimensions_64dc74() {
+  TextureCube<int4> v = arg_0;
+  uint3 v_1 = (0u).xxx;
+  v.GetDimensions(uint(1u), v_1[0u], v_1[1u], v_1[2u]);
+  uint2 res = v_1.xy;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store2(0u, textureDimensions_64dc74());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store2(0u, textureDimensions_64dc74());
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = textureDimensions_64dc74();
+  VertexOutput v_2 = tint_symbol;
+  return v_2;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_3 = vertex_main_inner();
+  VertexOutput v_4 = v_3;
+  VertexOutput v_5 = v_3;
+  vertex_main_outputs v_6 = {v_5.prevent_dce, v_4.pos};
+  return v_6;
+}
+
diff --git a/test/tint/builtins/gen/literal/textureDimensions/674058.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/textureDimensions/674058.wgsl.expected.ir.dxc.hlsl
index 1fac62e..baaf8a4 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/674058.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/674058.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,19 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureDimensions
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWByteAddressBuffer prevent_dce : register(u0);
+RWTexture2DArray<int4> arg_0 : register(u0, space1);
+uint2 textureDimensions_674058() {
+  uint3 v = (0u).xxx;
+  arg_0.GetDimensions(v[0u], v[1u], v[2u]);
+  uint2 res = v.xy;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store2(0u, textureDimensions_674058());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store2(0u, textureDimensions_674058());
+}
+
diff --git a/test/tint/builtins/gen/literal/textureDimensions/674058.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/textureDimensions/674058.wgsl.expected.ir.fxc.hlsl
index 1fac62e..baaf8a4 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/674058.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/674058.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,19 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureDimensions
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWByteAddressBuffer prevent_dce : register(u0);
+RWTexture2DArray<int4> arg_0 : register(u0, space1);
+uint2 textureDimensions_674058() {
+  uint3 v = (0u).xxx;
+  arg_0.GetDimensions(v[0u], v[1u], v[2u]);
+  uint2 res = v.xy;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store2(0u, textureDimensions_674058());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store2(0u, textureDimensions_674058());
+}
+
diff --git a/test/tint/builtins/gen/literal/textureDimensions/6dae40.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/textureDimensions/6dae40.wgsl.expected.ir.dxc.hlsl
index 1fac62e..db9ffaa 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/6dae40.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/6dae40.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,45 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  uint3 prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureDimensions
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation uint3 VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+Texture3D<float4> arg_0 : register(t0, space1);
+uint3 textureDimensions_6dae40() {
+  uint3 v = (0u).xxx;
+  arg_0.GetDimensions(v[0u], v[1u], v[2u]);
+  uint3 res = v;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store3(0u, textureDimensions_6dae40());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store3(0u, textureDimensions_6dae40());
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = textureDimensions_6dae40();
+  VertexOutput v_1 = tint_symbol;
+  return v_1;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_2 = vertex_main_inner();
+  VertexOutput v_3 = v_2;
+  VertexOutput v_4 = v_2;
+  vertex_main_outputs v_5 = {v_4.prevent_dce, v_3.pos};
+  return v_5;
+}
+
diff --git a/test/tint/builtins/gen/literal/textureDimensions/6dae40.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/textureDimensions/6dae40.wgsl.expected.ir.fxc.hlsl
index 1fac62e..db9ffaa 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/6dae40.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/6dae40.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,45 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  uint3 prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureDimensions
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation uint3 VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+Texture3D<float4> arg_0 : register(t0, space1);
+uint3 textureDimensions_6dae40() {
+  uint3 v = (0u).xxx;
+  arg_0.GetDimensions(v[0u], v[1u], v[2u]);
+  uint3 res = v;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store3(0u, textureDimensions_6dae40());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store3(0u, textureDimensions_6dae40());
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = textureDimensions_6dae40();
+  VertexOutput v_1 = tint_symbol;
+  return v_1;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_2 = vertex_main_inner();
+  VertexOutput v_3 = v_2;
+  VertexOutput v_4 = v_2;
+  vertex_main_outputs v_5 = {v_4.prevent_dce, v_3.pos};
+  return v_5;
+}
+
diff --git a/test/tint/builtins/gen/literal/textureDimensions/6dbef4.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/textureDimensions/6dbef4.wgsl.expected.ir.dxc.hlsl
index 1fac62e..caf387a 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/6dbef4.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/6dbef4.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,45 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  uint3 prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureDimensions
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation uint3 VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+Texture3D<int4> arg_0 : register(t0, space1);
+uint3 textureDimensions_6dbef4() {
+  uint3 v = (0u).xxx;
+  arg_0.GetDimensions(v[0u], v[1u], v[2u]);
+  uint3 res = v;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store3(0u, textureDimensions_6dbef4());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store3(0u, textureDimensions_6dbef4());
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = textureDimensions_6dbef4();
+  VertexOutput v_1 = tint_symbol;
+  return v_1;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_2 = vertex_main_inner();
+  VertexOutput v_3 = v_2;
+  VertexOutput v_4 = v_2;
+  vertex_main_outputs v_5 = {v_4.prevent_dce, v_3.pos};
+  return v_5;
+}
+
diff --git a/test/tint/builtins/gen/literal/textureDimensions/6dbef4.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/textureDimensions/6dbef4.wgsl.expected.ir.fxc.hlsl
index 1fac62e..caf387a 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/6dbef4.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/6dbef4.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,45 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  uint3 prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureDimensions
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation uint3 VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+Texture3D<int4> arg_0 : register(t0, space1);
+uint3 textureDimensions_6dbef4() {
+  uint3 v = (0u).xxx;
+  arg_0.GetDimensions(v[0u], v[1u], v[2u]);
+  uint3 res = v;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store3(0u, textureDimensions_6dbef4());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store3(0u, textureDimensions_6dbef4());
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = textureDimensions_6dbef4();
+  VertexOutput v_1 = tint_symbol;
+  return v_1;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_2 = vertex_main_inner();
+  VertexOutput v_3 = v_2;
+  VertexOutput v_4 = v_2;
+  vertex_main_outputs v_5 = {v_4.prevent_dce, v_3.pos};
+  return v_5;
+}
+
diff --git a/test/tint/builtins/gen/literal/textureDimensions/6e6c7a.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/textureDimensions/6e6c7a.wgsl.expected.ir.dxc.hlsl
index 1fac62e..c9cb799 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/6e6c7a.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/6e6c7a.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,114 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureDimensions
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec3<u32>;
+
+@group(1) @binding(0) var arg_0 : texture_3d<u32>;
+
+fn textureDimensions_6e6c7a() -> vec3<u32> {
+  var res : vec3<u32> = textureDimensions(arg_0, 1u);
+  return res;
+}
+
+@fragment
+fn fragment_main() {
+  prevent_dce = textureDimensions_6e6c7a();
+}
+
+@compute @workgroup_size(1)
+fn compute_main() {
+  prevent_dce = textureDimensions_6e6c7a();
+}
+
+struct VertexOutput {
+  @builtin(position)
+  pos : vec4<f32>,
+  @location(0) @interpolate(flat)
+  prevent_dce : vec3<u32>,
+}
+
+@vertex
+fn vertex_main() -> VertexOutput {
+  var tint_symbol : VertexOutput;
+  tint_symbol.pos = vec4<f32>();
+  tint_symbol.prevent_dce = textureDimensions_6e6c7a();
+  return tint_symbol;
+}
+
+Failed to generate: :28:49 error: var: initializer type 'vec2<u32>' does not match store type 'vec3<u32>'
+    %res:ptr<function, vec3<u32>, read_write> = var, %13
+                                                ^^^
+
+:17:3 note: in block
+  $B2: {
+  ^^^
+
+note: # Disassembly
+VertexOutput = struct @align(16) {
+  pos:vec4<f32> @offset(0)
+  prevent_dce:vec3<u32> @offset(16)
+}
+
+vertex_main_outputs = struct @align(16) {
+  VertexOutput_prevent_dce:vec3<u32> @offset(0), @location(0), @interpolate(flat)
+  VertexOutput_pos:vec4<f32> @offset(16), @builtin(position)
+}
+
+$B1: {  # root
+  %prevent_dce:hlsl.byte_address_buffer<read_write> = var @binding_point(0, 0)
+  %arg_0:ptr<handle, texture_3d<u32>, read> = var @binding_point(1, 0)
+}
+
+%textureDimensions_6e6c7a = func():vec3<u32> {
+  $B2: {
+    %4:texture_3d<u32> = load %arg_0
+    %5:u32 = convert 1u
+    %6:ptr<function, vec4<u32>, read_write> = var
+    %7:ptr<function, u32, read_write> = access %6, 0u
+    %8:ptr<function, u32, read_write> = access %6, 1u
+    %9:ptr<function, u32, read_write> = access %6, 2u
+    %10:ptr<function, u32, read_write> = access %6, 3u
+    %11:void = %4.GetDimensions %5, %7, %8, %9, %10
+    %12:vec4<u32> = load %6
+    %13:vec2<u32> = swizzle %12, xyz
+    %res:ptr<function, vec3<u32>, read_write> = var, %13
+    %15:vec3<u32> = load %res
+    ret %15
+  }
+}
+%fragment_main = @fragment func():void {
+  $B3: {
+    %17:vec3<u32> = call %textureDimensions_6e6c7a
+    %18:void = %prevent_dce.Store3 0u, %17
+    ret
+  }
+}
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B4: {
+    %20:vec3<u32> = call %textureDimensions_6e6c7a
+    %21:void = %prevent_dce.Store3 0u, %20
+    ret
+  }
+}
+%vertex_main_inner = func():VertexOutput {
+  $B5: {
+    %tint_symbol:ptr<function, VertexOutput, read_write> = var
+    %24:ptr<function, vec4<f32>, read_write> = access %tint_symbol, 0u
+    store %24, vec4<f32>(0.0f)
+    %25:ptr<function, vec3<u32>, read_write> = access %tint_symbol, 1u
+    %26:vec3<u32> = call %textureDimensions_6e6c7a
+    store %25, %26
+    %27:VertexOutput = load %tint_symbol
+    ret %27
+  }
+}
+%vertex_main = @vertex func():vertex_main_outputs {
+  $B6: {
+    %29:VertexOutput = call %vertex_main_inner
+    %30:vec4<f32> = access %29, 0u
+    %31:vec3<u32> = access %29, 1u
+    %32:vertex_main_outputs = construct %31, %30
+    ret %32
+  }
+}
+
diff --git a/test/tint/builtins/gen/literal/textureDimensions/6e6c7a.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/textureDimensions/6e6c7a.wgsl.expected.ir.fxc.hlsl
index 1fac62e..c9cb799 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/6e6c7a.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/6e6c7a.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,114 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureDimensions
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec3<u32>;
+
+@group(1) @binding(0) var arg_0 : texture_3d<u32>;
+
+fn textureDimensions_6e6c7a() -> vec3<u32> {
+  var res : vec3<u32> = textureDimensions(arg_0, 1u);
+  return res;
+}
+
+@fragment
+fn fragment_main() {
+  prevent_dce = textureDimensions_6e6c7a();
+}
+
+@compute @workgroup_size(1)
+fn compute_main() {
+  prevent_dce = textureDimensions_6e6c7a();
+}
+
+struct VertexOutput {
+  @builtin(position)
+  pos : vec4<f32>,
+  @location(0) @interpolate(flat)
+  prevent_dce : vec3<u32>,
+}
+
+@vertex
+fn vertex_main() -> VertexOutput {
+  var tint_symbol : VertexOutput;
+  tint_symbol.pos = vec4<f32>();
+  tint_symbol.prevent_dce = textureDimensions_6e6c7a();
+  return tint_symbol;
+}
+
+Failed to generate: :28:49 error: var: initializer type 'vec2<u32>' does not match store type 'vec3<u32>'
+    %res:ptr<function, vec3<u32>, read_write> = var, %13
+                                                ^^^
+
+:17:3 note: in block
+  $B2: {
+  ^^^
+
+note: # Disassembly
+VertexOutput = struct @align(16) {
+  pos:vec4<f32> @offset(0)
+  prevent_dce:vec3<u32> @offset(16)
+}
+
+vertex_main_outputs = struct @align(16) {
+  VertexOutput_prevent_dce:vec3<u32> @offset(0), @location(0), @interpolate(flat)
+  VertexOutput_pos:vec4<f32> @offset(16), @builtin(position)
+}
+
+$B1: {  # root
+  %prevent_dce:hlsl.byte_address_buffer<read_write> = var @binding_point(0, 0)
+  %arg_0:ptr<handle, texture_3d<u32>, read> = var @binding_point(1, 0)
+}
+
+%textureDimensions_6e6c7a = func():vec3<u32> {
+  $B2: {
+    %4:texture_3d<u32> = load %arg_0
+    %5:u32 = convert 1u
+    %6:ptr<function, vec4<u32>, read_write> = var
+    %7:ptr<function, u32, read_write> = access %6, 0u
+    %8:ptr<function, u32, read_write> = access %6, 1u
+    %9:ptr<function, u32, read_write> = access %6, 2u
+    %10:ptr<function, u32, read_write> = access %6, 3u
+    %11:void = %4.GetDimensions %5, %7, %8, %9, %10
+    %12:vec4<u32> = load %6
+    %13:vec2<u32> = swizzle %12, xyz
+    %res:ptr<function, vec3<u32>, read_write> = var, %13
+    %15:vec3<u32> = load %res
+    ret %15
+  }
+}
+%fragment_main = @fragment func():void {
+  $B3: {
+    %17:vec3<u32> = call %textureDimensions_6e6c7a
+    %18:void = %prevent_dce.Store3 0u, %17
+    ret
+  }
+}
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B4: {
+    %20:vec3<u32> = call %textureDimensions_6e6c7a
+    %21:void = %prevent_dce.Store3 0u, %20
+    ret
+  }
+}
+%vertex_main_inner = func():VertexOutput {
+  $B5: {
+    %tint_symbol:ptr<function, VertexOutput, read_write> = var
+    %24:ptr<function, vec4<f32>, read_write> = access %tint_symbol, 0u
+    store %24, vec4<f32>(0.0f)
+    %25:ptr<function, vec3<u32>, read_write> = access %tint_symbol, 1u
+    %26:vec3<u32> = call %textureDimensions_6e6c7a
+    store %25, %26
+    %27:VertexOutput = load %tint_symbol
+    ret %27
+  }
+}
+%vertex_main = @vertex func():vertex_main_outputs {
+  $B6: {
+    %29:VertexOutput = call %vertex_main_inner
+    %30:vec4<f32> = access %29, 0u
+    %31:vec3<u32> = access %29, 1u
+    %32:vertex_main_outputs = construct %31, %30
+    ret %32
+  }
+}
+
diff --git a/test/tint/builtins/gen/literal/textureDimensions/6e72c5.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/textureDimensions/6e72c5.wgsl.expected.ir.dxc.hlsl
index 1fac62e..259e99e 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/6e72c5.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/6e72c5.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,45 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  uint2 prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureDimensions
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation uint2 VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+Texture2D<float4> arg_0 : register(t0, space1);
+uint2 textureDimensions_6e72c5() {
+  uint2 v = (0u).xx;
+  arg_0.GetDimensions(v[0u], v[1u]);
+  uint2 res = v;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store2(0u, textureDimensions_6e72c5());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store2(0u, textureDimensions_6e72c5());
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = textureDimensions_6e72c5();
+  VertexOutput v_1 = tint_symbol;
+  return v_1;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_2 = vertex_main_inner();
+  VertexOutput v_3 = v_2;
+  VertexOutput v_4 = v_2;
+  vertex_main_outputs v_5 = {v_4.prevent_dce, v_3.pos};
+  return v_5;
+}
+
diff --git a/test/tint/builtins/gen/literal/textureDimensions/6e72c5.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/textureDimensions/6e72c5.wgsl.expected.ir.fxc.hlsl
index 1fac62e..259e99e 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/6e72c5.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/6e72c5.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,45 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  uint2 prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureDimensions
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation uint2 VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+Texture2D<float4> arg_0 : register(t0, space1);
+uint2 textureDimensions_6e72c5() {
+  uint2 v = (0u).xx;
+  arg_0.GetDimensions(v[0u], v[1u]);
+  uint2 res = v;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store2(0u, textureDimensions_6e72c5());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store2(0u, textureDimensions_6e72c5());
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = textureDimensions_6e72c5();
+  VertexOutput v_1 = tint_symbol;
+  return v_1;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_2 = vertex_main_inner();
+  VertexOutput v_3 = v_2;
+  VertexOutput v_4 = v_2;
+  vertex_main_outputs v_5 = {v_4.prevent_dce, v_3.pos};
+  return v_5;
+}
+
diff --git a/test/tint/builtins/gen/literal/textureDimensions/6f1b5d.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/textureDimensions/6f1b5d.wgsl.expected.ir.dxc.hlsl
index 1fac62e..39a7664 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/6f1b5d.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/6f1b5d.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,46 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  uint2 prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureDimensions
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation uint2 VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+Texture2D arg_0 : register(t0, space1);
+uint2 textureDimensions_6f1b5d() {
+  Texture2D v = arg_0;
+  uint3 v_1 = (0u).xxx;
+  v.GetDimensions(uint(1), v_1[0u], v_1[1u], v_1[2u]);
+  uint2 res = v_1.xy;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store2(0u, textureDimensions_6f1b5d());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store2(0u, textureDimensions_6f1b5d());
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = textureDimensions_6f1b5d();
+  VertexOutput v_2 = tint_symbol;
+  return v_2;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_3 = vertex_main_inner();
+  VertexOutput v_4 = v_3;
+  VertexOutput v_5 = v_3;
+  vertex_main_outputs v_6 = {v_5.prevent_dce, v_4.pos};
+  return v_6;
+}
+
diff --git a/test/tint/builtins/gen/literal/textureDimensions/6f1b5d.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/textureDimensions/6f1b5d.wgsl.expected.ir.fxc.hlsl
index 1fac62e..39a7664 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/6f1b5d.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/6f1b5d.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,46 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  uint2 prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureDimensions
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation uint2 VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+Texture2D arg_0 : register(t0, space1);
+uint2 textureDimensions_6f1b5d() {
+  Texture2D v = arg_0;
+  uint3 v_1 = (0u).xxx;
+  v.GetDimensions(uint(1), v_1[0u], v_1[1u], v_1[2u]);
+  uint2 res = v_1.xy;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store2(0u, textureDimensions_6f1b5d());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store2(0u, textureDimensions_6f1b5d());
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = textureDimensions_6f1b5d();
+  VertexOutput v_2 = tint_symbol;
+  return v_2;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_3 = vertex_main_inner();
+  VertexOutput v_4 = v_3;
+  VertexOutput v_5 = v_3;
+  vertex_main_outputs v_6 = {v_5.prevent_dce, v_4.pos};
+  return v_6;
+}
+
diff --git a/test/tint/builtins/gen/literal/textureDimensions/709357.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/textureDimensions/709357.wgsl.expected.ir.dxc.hlsl
index 1fac62e..3affcad 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/709357.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/709357.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,45 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  uint prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureDimensions
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation uint VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+Texture1D<uint4> arg_0 : register(t0, space1);
+uint textureDimensions_709357() {
+  uint v = 0u;
+  arg_0.GetDimensions(v);
+  uint res = v;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store(0u, textureDimensions_709357());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store(0u, textureDimensions_709357());
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = textureDimensions_709357();
+  VertexOutput v_1 = tint_symbol;
+  return v_1;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_2 = vertex_main_inner();
+  VertexOutput v_3 = v_2;
+  VertexOutput v_4 = v_2;
+  vertex_main_outputs v_5 = {v_4.prevent_dce, v_3.pos};
+  return v_5;
+}
+
diff --git a/test/tint/builtins/gen/literal/textureDimensions/709357.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/textureDimensions/709357.wgsl.expected.ir.fxc.hlsl
index 1fac62e..3affcad 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/709357.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/709357.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,45 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  uint prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureDimensions
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation uint VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+Texture1D<uint4> arg_0 : register(t0, space1);
+uint textureDimensions_709357() {
+  uint v = 0u;
+  arg_0.GetDimensions(v);
+  uint res = v;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store(0u, textureDimensions_709357());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store(0u, textureDimensions_709357());
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = textureDimensions_709357();
+  VertexOutput v_1 = tint_symbol;
+  return v_1;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_2 = vertex_main_inner();
+  VertexOutput v_3 = v_2;
+  VertexOutput v_4 = v_2;
+  vertex_main_outputs v_5 = {v_4.prevent_dce, v_3.pos};
+  return v_5;
+}
+
diff --git a/test/tint/builtins/gen/literal/textureDimensions/70dd33.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/textureDimensions/70dd33.wgsl.expected.ir.dxc.hlsl
index 1fac62e..eafc1e5 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/70dd33.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/70dd33.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,19 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureDimensions
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWByteAddressBuffer prevent_dce : register(u0);
+RWTexture3D<int4> arg_0 : register(u0, space1);
+uint3 textureDimensions_70dd33() {
+  uint3 v = (0u).xxx;
+  arg_0.GetDimensions(v[0u], v[1u], v[2u]);
+  uint3 res = v;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store3(0u, textureDimensions_70dd33());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store3(0u, textureDimensions_70dd33());
+}
+
diff --git a/test/tint/builtins/gen/literal/textureDimensions/70dd33.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/textureDimensions/70dd33.wgsl.expected.ir.fxc.hlsl
index 1fac62e..eafc1e5 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/70dd33.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/70dd33.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,19 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureDimensions
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWByteAddressBuffer prevent_dce : register(u0);
+RWTexture3D<int4> arg_0 : register(u0, space1);
+uint3 textureDimensions_70dd33() {
+  uint3 v = (0u).xxx;
+  arg_0.GetDimensions(v[0u], v[1u], v[2u]);
+  uint3 res = v;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store3(0u, textureDimensions_70dd33());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store3(0u, textureDimensions_70dd33());
+}
+
diff --git a/test/tint/builtins/gen/literal/textureDimensions/715917.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/textureDimensions/715917.wgsl.expected.ir.dxc.hlsl
index 1fac62e..b82f8bf 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/715917.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/715917.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,19 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureDimensions
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWByteAddressBuffer prevent_dce : register(u0);
+RWTexture2DArray<float4> arg_0 : register(u0, space1);
+uint2 textureDimensions_715917() {
+  uint3 v = (0u).xxx;
+  arg_0.GetDimensions(v[0u], v[1u], v[2u]);
+  uint2 res = v.xy;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store2(0u, textureDimensions_715917());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store2(0u, textureDimensions_715917());
+}
+
diff --git a/test/tint/builtins/gen/literal/textureDimensions/715917.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/textureDimensions/715917.wgsl.expected.ir.fxc.hlsl
index 1fac62e..b82f8bf 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/715917.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/715917.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,19 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureDimensions
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWByteAddressBuffer prevent_dce : register(u0);
+RWTexture2DArray<float4> arg_0 : register(u0, space1);
+uint2 textureDimensions_715917() {
+  uint3 v = (0u).xxx;
+  arg_0.GetDimensions(v[0u], v[1u], v[2u]);
+  uint2 res = v.xy;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store2(0u, textureDimensions_715917());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store2(0u, textureDimensions_715917());
+}
+
diff --git a/test/tint/builtins/gen/literal/textureDimensions/7228de.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/textureDimensions/7228de.wgsl.expected.ir.dxc.hlsl
index 1fac62e..2eb99a7 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/7228de.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/7228de.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,19 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureDimensions
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWByteAddressBuffer prevent_dce : register(u0);
+RWTexture1D<uint4> arg_0 : register(u0, space1);
+uint textureDimensions_7228de() {
+  uint v = 0u;
+  arg_0.GetDimensions(v);
+  uint res = v;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store(0u, textureDimensions_7228de());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store(0u, textureDimensions_7228de());
+}
+
diff --git a/test/tint/builtins/gen/literal/textureDimensions/7228de.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/textureDimensions/7228de.wgsl.expected.ir.fxc.hlsl
index 1fac62e..2eb99a7 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/7228de.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/7228de.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,19 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureDimensions
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWByteAddressBuffer prevent_dce : register(u0);
+RWTexture1D<uint4> arg_0 : register(u0, space1);
+uint textureDimensions_7228de() {
+  uint v = 0u;
+  arg_0.GetDimensions(v);
+  uint res = v;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store(0u, textureDimensions_7228de());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store(0u, textureDimensions_7228de());
+}
+
diff --git a/test/tint/builtins/gen/literal/textureDimensions/7327fa.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/textureDimensions/7327fa.wgsl.expected.ir.dxc.hlsl
index 1fac62e..5f8daa3 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/7327fa.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/7327fa.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,45 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  uint2 prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureDimensions
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation uint2 VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+Texture2D<float4> arg_0 : register(t0, space1);
+uint2 textureDimensions_7327fa() {
+  uint2 v = (0u).xx;
+  arg_0.GetDimensions(v[0u], v[1u]);
+  uint2 res = v;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store2(0u, textureDimensions_7327fa());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store2(0u, textureDimensions_7327fa());
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = textureDimensions_7327fa();
+  VertexOutput v_1 = tint_symbol;
+  return v_1;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_2 = vertex_main_inner();
+  VertexOutput v_3 = v_2;
+  VertexOutput v_4 = v_2;
+  vertex_main_outputs v_5 = {v_4.prevent_dce, v_3.pos};
+  return v_5;
+}
+
diff --git a/test/tint/builtins/gen/literal/textureDimensions/7327fa.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/textureDimensions/7327fa.wgsl.expected.ir.fxc.hlsl
index 1fac62e..5f8daa3 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/7327fa.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/7327fa.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,45 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  uint2 prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureDimensions
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation uint2 VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+Texture2D<float4> arg_0 : register(t0, space1);
+uint2 textureDimensions_7327fa() {
+  uint2 v = (0u).xx;
+  arg_0.GetDimensions(v[0u], v[1u]);
+  uint2 res = v;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store2(0u, textureDimensions_7327fa());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store2(0u, textureDimensions_7327fa());
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = textureDimensions_7327fa();
+  VertexOutput v_1 = tint_symbol;
+  return v_1;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_2 = vertex_main_inner();
+  VertexOutput v_3 = v_2;
+  VertexOutput v_4 = v_2;
+  vertex_main_outputs v_5 = {v_4.prevent_dce, v_3.pos};
+  return v_5;
+}
+
diff --git a/test/tint/builtins/gen/literal/textureDimensions/740e7c.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/textureDimensions/740e7c.wgsl.expected.ir.dxc.hlsl
index 1fac62e..ec481f5 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/740e7c.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/740e7c.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,19 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureDimensions
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWByteAddressBuffer prevent_dce : register(u0);
+RWTexture1D<int4> arg_0 : register(u0, space1);
+uint textureDimensions_740e7c() {
+  uint v = 0u;
+  arg_0.GetDimensions(v);
+  uint res = v;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store(0u, textureDimensions_740e7c());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store(0u, textureDimensions_740e7c());
+}
+
diff --git a/test/tint/builtins/gen/literal/textureDimensions/740e7c.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/textureDimensions/740e7c.wgsl.expected.ir.fxc.hlsl
index 1fac62e..ec481f5 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/740e7c.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/740e7c.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,19 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureDimensions
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWByteAddressBuffer prevent_dce : register(u0);
+RWTexture1D<int4> arg_0 : register(u0, space1);
+uint textureDimensions_740e7c() {
+  uint v = 0u;
+  arg_0.GetDimensions(v);
+  uint res = v;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store(0u, textureDimensions_740e7c());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store(0u, textureDimensions_740e7c());
+}
+
diff --git a/test/tint/builtins/gen/literal/textureDimensions/756031.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/textureDimensions/756031.wgsl.expected.ir.dxc.hlsl
index 1fac62e..76ada62 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/756031.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/756031.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,114 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureDimensions
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec3<u32>;
+
+@group(1) @binding(0) var arg_0 : texture_3d<i32>;
+
+fn textureDimensions_756031() -> vec3<u32> {
+  var res : vec3<u32> = textureDimensions(arg_0, 1i);
+  return res;
+}
+
+@fragment
+fn fragment_main() {
+  prevent_dce = textureDimensions_756031();
+}
+
+@compute @workgroup_size(1)
+fn compute_main() {
+  prevent_dce = textureDimensions_756031();
+}
+
+struct VertexOutput {
+  @builtin(position)
+  pos : vec4<f32>,
+  @location(0) @interpolate(flat)
+  prevent_dce : vec3<u32>,
+}
+
+@vertex
+fn vertex_main() -> VertexOutput {
+  var tint_symbol : VertexOutput;
+  tint_symbol.pos = vec4<f32>();
+  tint_symbol.prevent_dce = textureDimensions_756031();
+  return tint_symbol;
+}
+
+Failed to generate: :28:49 error: var: initializer type 'vec2<u32>' does not match store type 'vec3<u32>'
+    %res:ptr<function, vec3<u32>, read_write> = var, %13
+                                                ^^^
+
+:17:3 note: in block
+  $B2: {
+  ^^^
+
+note: # Disassembly
+VertexOutput = struct @align(16) {
+  pos:vec4<f32> @offset(0)
+  prevent_dce:vec3<u32> @offset(16)
+}
+
+vertex_main_outputs = struct @align(16) {
+  VertexOutput_prevent_dce:vec3<u32> @offset(0), @location(0), @interpolate(flat)
+  VertexOutput_pos:vec4<f32> @offset(16), @builtin(position)
+}
+
+$B1: {  # root
+  %prevent_dce:hlsl.byte_address_buffer<read_write> = var @binding_point(0, 0)
+  %arg_0:ptr<handle, texture_3d<i32>, read> = var @binding_point(1, 0)
+}
+
+%textureDimensions_756031 = func():vec3<u32> {
+  $B2: {
+    %4:texture_3d<i32> = load %arg_0
+    %5:u32 = convert 1i
+    %6:ptr<function, vec4<u32>, read_write> = var
+    %7:ptr<function, u32, read_write> = access %6, 0u
+    %8:ptr<function, u32, read_write> = access %6, 1u
+    %9:ptr<function, u32, read_write> = access %6, 2u
+    %10:ptr<function, u32, read_write> = access %6, 3u
+    %11:void = %4.GetDimensions %5, %7, %8, %9, %10
+    %12:vec4<u32> = load %6
+    %13:vec2<u32> = swizzle %12, xyz
+    %res:ptr<function, vec3<u32>, read_write> = var, %13
+    %15:vec3<u32> = load %res
+    ret %15
+  }
+}
+%fragment_main = @fragment func():void {
+  $B3: {
+    %17:vec3<u32> = call %textureDimensions_756031
+    %18:void = %prevent_dce.Store3 0u, %17
+    ret
+  }
+}
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B4: {
+    %20:vec3<u32> = call %textureDimensions_756031
+    %21:void = %prevent_dce.Store3 0u, %20
+    ret
+  }
+}
+%vertex_main_inner = func():VertexOutput {
+  $B5: {
+    %tint_symbol:ptr<function, VertexOutput, read_write> = var
+    %24:ptr<function, vec4<f32>, read_write> = access %tint_symbol, 0u
+    store %24, vec4<f32>(0.0f)
+    %25:ptr<function, vec3<u32>, read_write> = access %tint_symbol, 1u
+    %26:vec3<u32> = call %textureDimensions_756031
+    store %25, %26
+    %27:VertexOutput = load %tint_symbol
+    ret %27
+  }
+}
+%vertex_main = @vertex func():vertex_main_outputs {
+  $B6: {
+    %29:VertexOutput = call %vertex_main_inner
+    %30:vec4<f32> = access %29, 0u
+    %31:vec3<u32> = access %29, 1u
+    %32:vertex_main_outputs = construct %31, %30
+    ret %32
+  }
+}
+
diff --git a/test/tint/builtins/gen/literal/textureDimensions/756031.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/textureDimensions/756031.wgsl.expected.ir.fxc.hlsl
index 1fac62e..76ada62 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/756031.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/756031.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,114 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureDimensions
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec3<u32>;
+
+@group(1) @binding(0) var arg_0 : texture_3d<i32>;
+
+fn textureDimensions_756031() -> vec3<u32> {
+  var res : vec3<u32> = textureDimensions(arg_0, 1i);
+  return res;
+}
+
+@fragment
+fn fragment_main() {
+  prevent_dce = textureDimensions_756031();
+}
+
+@compute @workgroup_size(1)
+fn compute_main() {
+  prevent_dce = textureDimensions_756031();
+}
+
+struct VertexOutput {
+  @builtin(position)
+  pos : vec4<f32>,
+  @location(0) @interpolate(flat)
+  prevent_dce : vec3<u32>,
+}
+
+@vertex
+fn vertex_main() -> VertexOutput {
+  var tint_symbol : VertexOutput;
+  tint_symbol.pos = vec4<f32>();
+  tint_symbol.prevent_dce = textureDimensions_756031();
+  return tint_symbol;
+}
+
+Failed to generate: :28:49 error: var: initializer type 'vec2<u32>' does not match store type 'vec3<u32>'
+    %res:ptr<function, vec3<u32>, read_write> = var, %13
+                                                ^^^
+
+:17:3 note: in block
+  $B2: {
+  ^^^
+
+note: # Disassembly
+VertexOutput = struct @align(16) {
+  pos:vec4<f32> @offset(0)
+  prevent_dce:vec3<u32> @offset(16)
+}
+
+vertex_main_outputs = struct @align(16) {
+  VertexOutput_prevent_dce:vec3<u32> @offset(0), @location(0), @interpolate(flat)
+  VertexOutput_pos:vec4<f32> @offset(16), @builtin(position)
+}
+
+$B1: {  # root
+  %prevent_dce:hlsl.byte_address_buffer<read_write> = var @binding_point(0, 0)
+  %arg_0:ptr<handle, texture_3d<i32>, read> = var @binding_point(1, 0)
+}
+
+%textureDimensions_756031 = func():vec3<u32> {
+  $B2: {
+    %4:texture_3d<i32> = load %arg_0
+    %5:u32 = convert 1i
+    %6:ptr<function, vec4<u32>, read_write> = var
+    %7:ptr<function, u32, read_write> = access %6, 0u
+    %8:ptr<function, u32, read_write> = access %6, 1u
+    %9:ptr<function, u32, read_write> = access %6, 2u
+    %10:ptr<function, u32, read_write> = access %6, 3u
+    %11:void = %4.GetDimensions %5, %7, %8, %9, %10
+    %12:vec4<u32> = load %6
+    %13:vec2<u32> = swizzle %12, xyz
+    %res:ptr<function, vec3<u32>, read_write> = var, %13
+    %15:vec3<u32> = load %res
+    ret %15
+  }
+}
+%fragment_main = @fragment func():void {
+  $B3: {
+    %17:vec3<u32> = call %textureDimensions_756031
+    %18:void = %prevent_dce.Store3 0u, %17
+    ret
+  }
+}
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B4: {
+    %20:vec3<u32> = call %textureDimensions_756031
+    %21:void = %prevent_dce.Store3 0u, %20
+    ret
+  }
+}
+%vertex_main_inner = func():VertexOutput {
+  $B5: {
+    %tint_symbol:ptr<function, VertexOutput, read_write> = var
+    %24:ptr<function, vec4<f32>, read_write> = access %tint_symbol, 0u
+    store %24, vec4<f32>(0.0f)
+    %25:ptr<function, vec3<u32>, read_write> = access %tint_symbol, 1u
+    %26:vec3<u32> = call %textureDimensions_756031
+    store %25, %26
+    %27:VertexOutput = load %tint_symbol
+    ret %27
+  }
+}
+%vertex_main = @vertex func():vertex_main_outputs {
+  $B6: {
+    %29:VertexOutput = call %vertex_main_inner
+    %30:vec4<f32> = access %29, 0u
+    %31:vec3<u32> = access %29, 1u
+    %32:vertex_main_outputs = construct %31, %30
+    ret %32
+  }
+}
+
diff --git a/test/tint/builtins/gen/literal/textureDimensions/756304.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/textureDimensions/756304.wgsl.expected.ir.dxc.hlsl
index 1fac62e..33f39e7 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/756304.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/756304.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,19 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureDimensions
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWByteAddressBuffer prevent_dce : register(u0);
+RWTexture2DArray<float4> arg_0 : register(u0, space1);
+uint2 textureDimensions_756304() {
+  uint3 v = (0u).xxx;
+  arg_0.GetDimensions(v[0u], v[1u], v[2u]);
+  uint2 res = v.xy;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store2(0u, textureDimensions_756304());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store2(0u, textureDimensions_756304());
+}
+
diff --git a/test/tint/builtins/gen/literal/textureDimensions/756304.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/textureDimensions/756304.wgsl.expected.ir.fxc.hlsl
index 1fac62e..33f39e7 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/756304.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/756304.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,19 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureDimensions
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWByteAddressBuffer prevent_dce : register(u0);
+RWTexture2DArray<float4> arg_0 : register(u0, space1);
+uint2 textureDimensions_756304() {
+  uint3 v = (0u).xxx;
+  arg_0.GetDimensions(v[0u], v[1u], v[2u]);
+  uint2 res = v.xy;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store2(0u, textureDimensions_756304());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store2(0u, textureDimensions_756304());
+}
+
diff --git a/test/tint/builtins/gen/literal/textureDimensions/790e57.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/textureDimensions/790e57.wgsl.expected.ir.dxc.hlsl
index 1fac62e..de1f26e 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/790e57.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/790e57.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,45 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  uint3 prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureDimensions
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation uint3 VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+Texture3D<int4> arg_0 : register(t0, space1);
+uint3 textureDimensions_790e57() {
+  uint3 v = (0u).xxx;
+  arg_0.GetDimensions(v[0u], v[1u], v[2u]);
+  uint3 res = v;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store3(0u, textureDimensions_790e57());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store3(0u, textureDimensions_790e57());
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = textureDimensions_790e57();
+  VertexOutput v_1 = tint_symbol;
+  return v_1;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_2 = vertex_main_inner();
+  VertexOutput v_3 = v_2;
+  VertexOutput v_4 = v_2;
+  vertex_main_outputs v_5 = {v_4.prevent_dce, v_3.pos};
+  return v_5;
+}
+
diff --git a/test/tint/builtins/gen/literal/textureDimensions/790e57.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/textureDimensions/790e57.wgsl.expected.ir.fxc.hlsl
index 1fac62e..de1f26e 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/790e57.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/790e57.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,45 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  uint3 prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureDimensions
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation uint3 VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+Texture3D<int4> arg_0 : register(t0, space1);
+uint3 textureDimensions_790e57() {
+  uint3 v = (0u).xxx;
+  arg_0.GetDimensions(v[0u], v[1u], v[2u]);
+  uint3 res = v;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store3(0u, textureDimensions_790e57());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store3(0u, textureDimensions_790e57());
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = textureDimensions_790e57();
+  VertexOutput v_1 = tint_symbol;
+  return v_1;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_2 = vertex_main_inner();
+  VertexOutput v_3 = v_2;
+  VertexOutput v_4 = v_2;
+  vertex_main_outputs v_5 = {v_4.prevent_dce, v_3.pos};
+  return v_5;
+}
+
diff --git a/test/tint/builtins/gen/literal/textureDimensions/795fbb.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/textureDimensions/795fbb.wgsl.expected.ir.dxc.hlsl
index 1fac62e..2eb6b69 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/795fbb.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/795fbb.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,19 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureDimensions
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWByteAddressBuffer prevent_dce : register(u0);
+RWTexture2DArray<float4> arg_0 : register(u0, space1);
+uint2 textureDimensions_795fbb() {
+  uint3 v = (0u).xxx;
+  arg_0.GetDimensions(v[0u], v[1u], v[2u]);
+  uint2 res = v.xy;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store2(0u, textureDimensions_795fbb());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store2(0u, textureDimensions_795fbb());
+}
+
diff --git a/test/tint/builtins/gen/literal/textureDimensions/795fbb.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/textureDimensions/795fbb.wgsl.expected.ir.fxc.hlsl
index 1fac62e..2eb6b69 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/795fbb.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/795fbb.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,19 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureDimensions
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWByteAddressBuffer prevent_dce : register(u0);
+RWTexture2DArray<float4> arg_0 : register(u0, space1);
+uint2 textureDimensions_795fbb() {
+  uint3 v = (0u).xxx;
+  arg_0.GetDimensions(v[0u], v[1u], v[2u]);
+  uint2 res = v.xy;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store2(0u, textureDimensions_795fbb());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store2(0u, textureDimensions_795fbb());
+}
+
diff --git a/test/tint/builtins/gen/literal/textureDimensions/797c30.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/textureDimensions/797c30.wgsl.expected.ir.dxc.hlsl
index 1fac62e..992734d 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/797c30.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/797c30.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,45 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  uint prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureDimensions
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation uint VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+Texture1D<uint4> arg_0 : register(t0, space1);
+uint textureDimensions_797c30() {
+  uint v = 0u;
+  arg_0.GetDimensions(v);
+  uint res = v;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store(0u, textureDimensions_797c30());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store(0u, textureDimensions_797c30());
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = textureDimensions_797c30();
+  VertexOutput v_1 = tint_symbol;
+  return v_1;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_2 = vertex_main_inner();
+  VertexOutput v_3 = v_2;
+  VertexOutput v_4 = v_2;
+  vertex_main_outputs v_5 = {v_4.prevent_dce, v_3.pos};
+  return v_5;
+}
+
diff --git a/test/tint/builtins/gen/literal/textureDimensions/797c30.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/textureDimensions/797c30.wgsl.expected.ir.fxc.hlsl
index 1fac62e..992734d 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/797c30.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/797c30.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,45 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  uint prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureDimensions
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation uint VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+Texture1D<uint4> arg_0 : register(t0, space1);
+uint textureDimensions_797c30() {
+  uint v = 0u;
+  arg_0.GetDimensions(v);
+  uint res = v;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store(0u, textureDimensions_797c30());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store(0u, textureDimensions_797c30());
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = textureDimensions_797c30();
+  VertexOutput v_1 = tint_symbol;
+  return v_1;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_2 = vertex_main_inner();
+  VertexOutput v_3 = v_2;
+  VertexOutput v_4 = v_2;
+  vertex_main_outputs v_5 = {v_4.prevent_dce, v_3.pos};
+  return v_5;
+}
+
diff --git a/test/tint/builtins/gen/literal/textureDimensions/79d168.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/textureDimensions/79d168.wgsl.expected.ir.dxc.hlsl
index 1fac62e..72b642e 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/79d168.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/79d168.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,46 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  uint2 prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureDimensions
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation uint2 VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+TextureCube arg_0 : register(t0, space1);
+uint2 textureDimensions_79d168() {
+  TextureCube v = arg_0;
+  uint3 v_1 = (0u).xxx;
+  v.GetDimensions(uint(1), v_1[0u], v_1[1u], v_1[2u]);
+  uint2 res = v_1.xy;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store2(0u, textureDimensions_79d168());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store2(0u, textureDimensions_79d168());
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = textureDimensions_79d168();
+  VertexOutput v_2 = tint_symbol;
+  return v_2;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_3 = vertex_main_inner();
+  VertexOutput v_4 = v_3;
+  VertexOutput v_5 = v_3;
+  vertex_main_outputs v_6 = {v_5.prevent_dce, v_4.pos};
+  return v_6;
+}
+
diff --git a/test/tint/builtins/gen/literal/textureDimensions/79d168.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/textureDimensions/79d168.wgsl.expected.ir.fxc.hlsl
index 1fac62e..72b642e 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/79d168.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/79d168.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,46 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  uint2 prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureDimensions
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation uint2 VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+TextureCube arg_0 : register(t0, space1);
+uint2 textureDimensions_79d168() {
+  TextureCube v = arg_0;
+  uint3 v_1 = (0u).xxx;
+  v.GetDimensions(uint(1), v_1[0u], v_1[1u], v_1[2u]);
+  uint2 res = v_1.xy;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store2(0u, textureDimensions_79d168());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store2(0u, textureDimensions_79d168());
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = textureDimensions_79d168();
+  VertexOutput v_2 = tint_symbol;
+  return v_2;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_3 = vertex_main_inner();
+  VertexOutput v_4 = v_3;
+  VertexOutput v_5 = v_3;
+  vertex_main_outputs v_6 = {v_5.prevent_dce, v_4.pos};
+  return v_6;
+}
+
diff --git a/test/tint/builtins/gen/literal/textureDimensions/7a3890.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/textureDimensions/7a3890.wgsl.expected.ir.dxc.hlsl
index 1fac62e..f61df0f 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/7a3890.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/7a3890.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,45 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  uint3 prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureDimensions
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation uint3 VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+Texture3D<uint4> arg_0 : register(t0, space1);
+uint3 textureDimensions_7a3890() {
+  uint3 v = (0u).xxx;
+  arg_0.GetDimensions(v[0u], v[1u], v[2u]);
+  uint3 res = v;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store3(0u, textureDimensions_7a3890());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store3(0u, textureDimensions_7a3890());
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = textureDimensions_7a3890();
+  VertexOutput v_1 = tint_symbol;
+  return v_1;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_2 = vertex_main_inner();
+  VertexOutput v_3 = v_2;
+  VertexOutput v_4 = v_2;
+  vertex_main_outputs v_5 = {v_4.prevent_dce, v_3.pos};
+  return v_5;
+}
+
diff --git a/test/tint/builtins/gen/literal/textureDimensions/7a3890.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/textureDimensions/7a3890.wgsl.expected.ir.fxc.hlsl
index 1fac62e..f61df0f 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/7a3890.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/7a3890.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,45 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  uint3 prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureDimensions
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation uint3 VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+Texture3D<uint4> arg_0 : register(t0, space1);
+uint3 textureDimensions_7a3890() {
+  uint3 v = (0u).xxx;
+  arg_0.GetDimensions(v[0u], v[1u], v[2u]);
+  uint3 res = v;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store3(0u, textureDimensions_7a3890());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store3(0u, textureDimensions_7a3890());
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = textureDimensions_7a3890();
+  VertexOutput v_1 = tint_symbol;
+  return v_1;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_2 = vertex_main_inner();
+  VertexOutput v_3 = v_2;
+  VertexOutput v_4 = v_2;
+  vertex_main_outputs v_5 = {v_4.prevent_dce, v_3.pos};
+  return v_5;
+}
+
diff --git a/test/tint/builtins/gen/literal/textureDimensions/7a9e30.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/textureDimensions/7a9e30.wgsl.expected.ir.dxc.hlsl
index 1fac62e..1dfa1ae 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/7a9e30.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/7a9e30.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,45 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  uint2 prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureDimensions
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation uint2 VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+TextureCube<uint4> arg_0 : register(t0, space1);
+uint2 textureDimensions_7a9e30() {
+  uint2 v = (0u).xx;
+  arg_0.GetDimensions(v[0u], v[1u]);
+  uint2 res = v;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store2(0u, textureDimensions_7a9e30());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store2(0u, textureDimensions_7a9e30());
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = textureDimensions_7a9e30();
+  VertexOutput v_1 = tint_symbol;
+  return v_1;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_2 = vertex_main_inner();
+  VertexOutput v_3 = v_2;
+  VertexOutput v_4 = v_2;
+  vertex_main_outputs v_5 = {v_4.prevent_dce, v_3.pos};
+  return v_5;
+}
+
diff --git a/test/tint/builtins/gen/literal/textureDimensions/7a9e30.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/textureDimensions/7a9e30.wgsl.expected.ir.fxc.hlsl
index 1fac62e..1dfa1ae 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/7a9e30.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/7a9e30.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,45 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  uint2 prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureDimensions
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation uint2 VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+TextureCube<uint4> arg_0 : register(t0, space1);
+uint2 textureDimensions_7a9e30() {
+  uint2 v = (0u).xx;
+  arg_0.GetDimensions(v[0u], v[1u]);
+  uint2 res = v;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store2(0u, textureDimensions_7a9e30());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store2(0u, textureDimensions_7a9e30());
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = textureDimensions_7a9e30();
+  VertexOutput v_1 = tint_symbol;
+  return v_1;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_2 = vertex_main_inner();
+  VertexOutput v_3 = v_2;
+  VertexOutput v_4 = v_2;
+  vertex_main_outputs v_5 = {v_4.prevent_dce, v_3.pos};
+  return v_5;
+}
+
diff --git a/test/tint/builtins/gen/literal/textureDimensions/7c753b.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/textureDimensions/7c753b.wgsl.expected.ir.dxc.hlsl
index 1fac62e..b02613a 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/7c753b.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/7c753b.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,45 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  uint prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureDimensions
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation uint VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+Texture1D<float4> arg_0 : register(t0, space1);
+uint textureDimensions_7c753b() {
+  uint v = 0u;
+  arg_0.GetDimensions(v);
+  uint res = v;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store(0u, textureDimensions_7c753b());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store(0u, textureDimensions_7c753b());
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = textureDimensions_7c753b();
+  VertexOutput v_1 = tint_symbol;
+  return v_1;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_2 = vertex_main_inner();
+  VertexOutput v_3 = v_2;
+  VertexOutput v_4 = v_2;
+  vertex_main_outputs v_5 = {v_4.prevent_dce, v_3.pos};
+  return v_5;
+}
+
diff --git a/test/tint/builtins/gen/literal/textureDimensions/7c753b.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/textureDimensions/7c753b.wgsl.expected.ir.fxc.hlsl
index 1fac62e..b02613a 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/7c753b.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/7c753b.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,45 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  uint prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureDimensions
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation uint VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+Texture1D<float4> arg_0 : register(t0, space1);
+uint textureDimensions_7c753b() {
+  uint v = 0u;
+  arg_0.GetDimensions(v);
+  uint res = v;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store(0u, textureDimensions_7c753b());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store(0u, textureDimensions_7c753b());
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = textureDimensions_7c753b();
+  VertexOutput v_1 = tint_symbol;
+  return v_1;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_2 = vertex_main_inner();
+  VertexOutput v_3 = v_2;
+  VertexOutput v_4 = v_2;
+  vertex_main_outputs v_5 = {v_4.prevent_dce, v_3.pos};
+  return v_5;
+}
+
diff --git a/test/tint/builtins/gen/literal/textureDimensions/7c7c64.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/textureDimensions/7c7c64.wgsl.expected.ir.dxc.hlsl
index 1fac62e..ab81e24 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/7c7c64.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/7c7c64.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,19 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureDimensions
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWByteAddressBuffer prevent_dce : register(u0);
+RWTexture2DArray<int4> arg_0 : register(u0, space1);
+uint2 textureDimensions_7c7c64() {
+  uint3 v = (0u).xxx;
+  arg_0.GetDimensions(v[0u], v[1u], v[2u]);
+  uint2 res = v.xy;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store2(0u, textureDimensions_7c7c64());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store2(0u, textureDimensions_7c7c64());
+}
+
diff --git a/test/tint/builtins/gen/literal/textureDimensions/7c7c64.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/textureDimensions/7c7c64.wgsl.expected.ir.fxc.hlsl
index 1fac62e..ab81e24 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/7c7c64.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/7c7c64.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,19 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureDimensions
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWByteAddressBuffer prevent_dce : register(u0);
+RWTexture2DArray<int4> arg_0 : register(u0, space1);
+uint2 textureDimensions_7c7c64() {
+  uint3 v = (0u).xxx;
+  arg_0.GetDimensions(v[0u], v[1u], v[2u]);
+  uint2 res = v.xy;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store2(0u, textureDimensions_7c7c64());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store2(0u, textureDimensions_7c7c64());
+}
+
diff --git a/test/tint/builtins/gen/literal/textureDimensions/7d8439.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/textureDimensions/7d8439.wgsl.expected.ir.dxc.hlsl
index 1fac62e..f4989e3 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/7d8439.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/7d8439.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,45 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  uint prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureDimensions
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation uint VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+Texture1D<uint4> arg_0 : register(t0, space1);
+uint textureDimensions_7d8439() {
+  uint v = 0u;
+  arg_0.GetDimensions(v);
+  uint res = v;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store(0u, textureDimensions_7d8439());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store(0u, textureDimensions_7d8439());
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = textureDimensions_7d8439();
+  VertexOutput v_1 = tint_symbol;
+  return v_1;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_2 = vertex_main_inner();
+  VertexOutput v_3 = v_2;
+  VertexOutput v_4 = v_2;
+  vertex_main_outputs v_5 = {v_4.prevent_dce, v_3.pos};
+  return v_5;
+}
+
diff --git a/test/tint/builtins/gen/literal/textureDimensions/7d8439.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/textureDimensions/7d8439.wgsl.expected.ir.fxc.hlsl
index 1fac62e..f4989e3 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/7d8439.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/7d8439.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,45 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  uint prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureDimensions
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation uint VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+Texture1D<uint4> arg_0 : register(t0, space1);
+uint textureDimensions_7d8439() {
+  uint v = 0u;
+  arg_0.GetDimensions(v);
+  uint res = v;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store(0u, textureDimensions_7d8439());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store(0u, textureDimensions_7d8439());
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = textureDimensions_7d8439();
+  VertexOutput v_1 = tint_symbol;
+  return v_1;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_2 = vertex_main_inner();
+  VertexOutput v_3 = v_2;
+  VertexOutput v_4 = v_2;
+  vertex_main_outputs v_5 = {v_4.prevent_dce, v_3.pos};
+  return v_5;
+}
+
diff --git a/test/tint/builtins/gen/literal/textureDimensions/7ea4b5.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/textureDimensions/7ea4b5.wgsl.expected.ir.dxc.hlsl
index 1fac62e..848ef78 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/7ea4b5.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/7ea4b5.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,19 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureDimensions
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWByteAddressBuffer prevent_dce : register(u0);
+RWTexture3D<int4> arg_0 : register(u0, space1);
+uint3 textureDimensions_7ea4b5() {
+  uint3 v = (0u).xxx;
+  arg_0.GetDimensions(v[0u], v[1u], v[2u]);
+  uint3 res = v;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store3(0u, textureDimensions_7ea4b5());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store3(0u, textureDimensions_7ea4b5());
+}
+
diff --git a/test/tint/builtins/gen/literal/textureDimensions/7ea4b5.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/textureDimensions/7ea4b5.wgsl.expected.ir.fxc.hlsl
index 1fac62e..848ef78 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/7ea4b5.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/7ea4b5.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,19 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureDimensions
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWByteAddressBuffer prevent_dce : register(u0);
+RWTexture3D<int4> arg_0 : register(u0, space1);
+uint3 textureDimensions_7ea4b5() {
+  uint3 v = (0u).xxx;
+  arg_0.GetDimensions(v[0u], v[1u], v[2u]);
+  uint3 res = v;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store3(0u, textureDimensions_7ea4b5());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store3(0u, textureDimensions_7ea4b5());
+}
+
diff --git a/test/tint/builtins/gen/literal/textureDimensions/7edb05.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/textureDimensions/7edb05.wgsl.expected.ir.dxc.hlsl
index 1fac62e..53ab5f9 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/7edb05.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/7edb05.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,45 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  uint2 prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureDimensions
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation uint2 VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+Texture2DArray<uint4> arg_0 : register(t0, space1);
+uint2 textureDimensions_7edb05() {
+  uint3 v = (0u).xxx;
+  arg_0.GetDimensions(v[0u], v[1u], v[2u]);
+  uint2 res = v.xy;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store2(0u, textureDimensions_7edb05());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store2(0u, textureDimensions_7edb05());
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = textureDimensions_7edb05();
+  VertexOutput v_1 = tint_symbol;
+  return v_1;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_2 = vertex_main_inner();
+  VertexOutput v_3 = v_2;
+  VertexOutput v_4 = v_2;
+  vertex_main_outputs v_5 = {v_4.prevent_dce, v_3.pos};
+  return v_5;
+}
+
diff --git a/test/tint/builtins/gen/literal/textureDimensions/7edb05.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/textureDimensions/7edb05.wgsl.expected.ir.fxc.hlsl
index 1fac62e..53ab5f9 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/7edb05.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/7edb05.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,45 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  uint2 prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureDimensions
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation uint2 VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+Texture2DArray<uint4> arg_0 : register(t0, space1);
+uint2 textureDimensions_7edb05() {
+  uint3 v = (0u).xxx;
+  arg_0.GetDimensions(v[0u], v[1u], v[2u]);
+  uint2 res = v.xy;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store2(0u, textureDimensions_7edb05());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store2(0u, textureDimensions_7edb05());
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = textureDimensions_7edb05();
+  VertexOutput v_1 = tint_symbol;
+  return v_1;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_2 = vertex_main_inner();
+  VertexOutput v_3 = v_2;
+  VertexOutput v_4 = v_2;
+  vertex_main_outputs v_5 = {v_4.prevent_dce, v_3.pos};
+  return v_5;
+}
+
diff --git a/test/tint/builtins/gen/literal/textureDimensions/8057cb.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/textureDimensions/8057cb.wgsl.expected.ir.dxc.hlsl
index 1fac62e..0c79416 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/8057cb.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/8057cb.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,45 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  uint3 prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureDimensions
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation uint3 VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+Texture3D<float4> arg_0 : register(t0, space1);
+uint3 textureDimensions_8057cb() {
+  uint3 v = (0u).xxx;
+  arg_0.GetDimensions(v[0u], v[1u], v[2u]);
+  uint3 res = v;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store3(0u, textureDimensions_8057cb());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store3(0u, textureDimensions_8057cb());
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = textureDimensions_8057cb();
+  VertexOutput v_1 = tint_symbol;
+  return v_1;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_2 = vertex_main_inner();
+  VertexOutput v_3 = v_2;
+  VertexOutput v_4 = v_2;
+  vertex_main_outputs v_5 = {v_4.prevent_dce, v_3.pos};
+  return v_5;
+}
+
diff --git a/test/tint/builtins/gen/literal/textureDimensions/8057cb.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/textureDimensions/8057cb.wgsl.expected.ir.fxc.hlsl
index 1fac62e..0c79416 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/8057cb.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/8057cb.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,45 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  uint3 prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureDimensions
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation uint3 VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+Texture3D<float4> arg_0 : register(t0, space1);
+uint3 textureDimensions_8057cb() {
+  uint3 v = (0u).xxx;
+  arg_0.GetDimensions(v[0u], v[1u], v[2u]);
+  uint3 res = v;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store3(0u, textureDimensions_8057cb());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store3(0u, textureDimensions_8057cb());
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = textureDimensions_8057cb();
+  VertexOutput v_1 = tint_symbol;
+  return v_1;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_2 = vertex_main_inner();
+  VertexOutput v_3 = v_2;
+  VertexOutput v_4 = v_2;
+  vertex_main_outputs v_5 = {v_4.prevent_dce, v_3.pos};
+  return v_5;
+}
+
diff --git a/test/tint/builtins/gen/literal/textureDimensions/8243a1.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/textureDimensions/8243a1.wgsl.expected.ir.dxc.hlsl
index 1fac62e..a8a7f21 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/8243a1.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/8243a1.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,19 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureDimensions
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWByteAddressBuffer prevent_dce : register(u0);
+RWTexture3D<float4> arg_0 : register(u0, space1);
+uint3 textureDimensions_8243a1() {
+  uint3 v = (0u).xxx;
+  arg_0.GetDimensions(v[0u], v[1u], v[2u]);
+  uint3 res = v;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store3(0u, textureDimensions_8243a1());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store3(0u, textureDimensions_8243a1());
+}
+
diff --git a/test/tint/builtins/gen/literal/textureDimensions/8243a1.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/textureDimensions/8243a1.wgsl.expected.ir.fxc.hlsl
index 1fac62e..a8a7f21 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/8243a1.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/8243a1.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,19 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureDimensions
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWByteAddressBuffer prevent_dce : register(u0);
+RWTexture3D<float4> arg_0 : register(u0, space1);
+uint3 textureDimensions_8243a1() {
+  uint3 v = (0u).xxx;
+  arg_0.GetDimensions(v[0u], v[1u], v[2u]);
+  uint3 res = v;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store3(0u, textureDimensions_8243a1());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store3(0u, textureDimensions_8243a1());
+}
+
diff --git a/test/tint/builtins/gen/literal/textureDimensions/835f90.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/textureDimensions/835f90.wgsl.expected.ir.dxc.hlsl
index 1fac62e..bad5538 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/835f90.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/835f90.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,19 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureDimensions
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWByteAddressBuffer prevent_dce : register(u0);
+RWTexture2D<int4> arg_0 : register(u0, space1);
+uint2 textureDimensions_835f90() {
+  uint2 v = (0u).xx;
+  arg_0.GetDimensions(v[0u], v[1u]);
+  uint2 res = v;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store2(0u, textureDimensions_835f90());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store2(0u, textureDimensions_835f90());
+}
+
diff --git a/test/tint/builtins/gen/literal/textureDimensions/835f90.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/textureDimensions/835f90.wgsl.expected.ir.fxc.hlsl
index 1fac62e..bad5538 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/835f90.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/835f90.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,19 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureDimensions
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWByteAddressBuffer prevent_dce : register(u0);
+RWTexture2D<int4> arg_0 : register(u0, space1);
+uint2 textureDimensions_835f90() {
+  uint2 v = (0u).xx;
+  arg_0.GetDimensions(v[0u], v[1u]);
+  uint2 res = v;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store2(0u, textureDimensions_835f90());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store2(0u, textureDimensions_835f90());
+}
+
diff --git a/test/tint/builtins/gen/literal/textureDimensions/841ebe.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/textureDimensions/841ebe.wgsl.expected.ir.dxc.hlsl
index 1fac62e..7c7c7ad 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/841ebe.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/841ebe.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,45 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  uint prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureDimensions
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation uint VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+Texture1D<int4> arg_0 : register(t0, space1);
+uint textureDimensions_841ebe() {
+  uint v = 0u;
+  arg_0.GetDimensions(v);
+  uint res = v;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store(0u, textureDimensions_841ebe());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store(0u, textureDimensions_841ebe());
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = textureDimensions_841ebe();
+  VertexOutput v_1 = tint_symbol;
+  return v_1;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_2 = vertex_main_inner();
+  VertexOutput v_3 = v_2;
+  VertexOutput v_4 = v_2;
+  vertex_main_outputs v_5 = {v_4.prevent_dce, v_3.pos};
+  return v_5;
+}
+
diff --git a/test/tint/builtins/gen/literal/textureDimensions/841ebe.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/textureDimensions/841ebe.wgsl.expected.ir.fxc.hlsl
index 1fac62e..7c7c7ad 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/841ebe.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/841ebe.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,45 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  uint prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureDimensions
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation uint VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+Texture1D<int4> arg_0 : register(t0, space1);
+uint textureDimensions_841ebe() {
+  uint v = 0u;
+  arg_0.GetDimensions(v);
+  uint res = v;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store(0u, textureDimensions_841ebe());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store(0u, textureDimensions_841ebe());
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = textureDimensions_841ebe();
+  VertexOutput v_1 = tint_symbol;
+  return v_1;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_2 = vertex_main_inner();
+  VertexOutput v_3 = v_2;
+  VertexOutput v_4 = v_2;
+  vertex_main_outputs v_5 = {v_4.prevent_dce, v_3.pos};
+  return v_5;
+}
+
diff --git a/test/tint/builtins/gen/literal/textureDimensions/84f363.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/textureDimensions/84f363.wgsl.expected.ir.dxc.hlsl
index 1fac62e..b9f0a5e 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/84f363.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/84f363.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,19 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureDimensions
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWByteAddressBuffer prevent_dce : register(u0);
+RWTexture1D<float4> arg_0 : register(u0, space1);
+uint textureDimensions_84f363() {
+  uint v = 0u;
+  arg_0.GetDimensions(v);
+  uint res = v;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store(0u, textureDimensions_84f363());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store(0u, textureDimensions_84f363());
+}
+
diff --git a/test/tint/builtins/gen/literal/textureDimensions/84f363.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/textureDimensions/84f363.wgsl.expected.ir.fxc.hlsl
index 1fac62e..b9f0a5e 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/84f363.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/84f363.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,19 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureDimensions
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWByteAddressBuffer prevent_dce : register(u0);
+RWTexture1D<float4> arg_0 : register(u0, space1);
+uint textureDimensions_84f363() {
+  uint v = 0u;
+  arg_0.GetDimensions(v);
+  uint res = v;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store(0u, textureDimensions_84f363());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store(0u, textureDimensions_84f363());
+}
+
diff --git a/test/tint/builtins/gen/literal/textureDimensions/867ead.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/textureDimensions/867ead.wgsl.expected.ir.dxc.hlsl
index 1fac62e..ea48eff 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/867ead.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/867ead.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,19 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureDimensions
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWByteAddressBuffer prevent_dce : register(u0);
+RWTexture2DArray<float4> arg_0 : register(u0, space1);
+uint2 textureDimensions_867ead() {
+  uint3 v = (0u).xxx;
+  arg_0.GetDimensions(v[0u], v[1u], v[2u]);
+  uint2 res = v.xy;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store2(0u, textureDimensions_867ead());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store2(0u, textureDimensions_867ead());
+}
+
diff --git a/test/tint/builtins/gen/literal/textureDimensions/867ead.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/textureDimensions/867ead.wgsl.expected.ir.fxc.hlsl
index 1fac62e..ea48eff 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/867ead.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/867ead.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,19 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureDimensions
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWByteAddressBuffer prevent_dce : register(u0);
+RWTexture2DArray<float4> arg_0 : register(u0, space1);
+uint2 textureDimensions_867ead() {
+  uint3 v = (0u).xxx;
+  arg_0.GetDimensions(v[0u], v[1u], v[2u]);
+  uint2 res = v.xy;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store2(0u, textureDimensions_867ead());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store2(0u, textureDimensions_867ead());
+}
+
diff --git a/test/tint/builtins/gen/literal/textureDimensions/879b73.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/textureDimensions/879b73.wgsl.expected.ir.dxc.hlsl
index 1fac62e..328fec5 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/879b73.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/879b73.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,45 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  uint2 prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureDimensions
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation uint2 VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+TextureCubeArray<float4> arg_0 : register(t0, space1);
+uint2 textureDimensions_879b73() {
+  uint3 v = (0u).xxx;
+  arg_0.GetDimensions(v[0u], v[1u], v[2u]);
+  uint2 res = v.xy;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store2(0u, textureDimensions_879b73());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store2(0u, textureDimensions_879b73());
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = textureDimensions_879b73();
+  VertexOutput v_1 = tint_symbol;
+  return v_1;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_2 = vertex_main_inner();
+  VertexOutput v_3 = v_2;
+  VertexOutput v_4 = v_2;
+  vertex_main_outputs v_5 = {v_4.prevent_dce, v_3.pos};
+  return v_5;
+}
+
diff --git a/test/tint/builtins/gen/literal/textureDimensions/879b73.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/textureDimensions/879b73.wgsl.expected.ir.fxc.hlsl
index 1fac62e..328fec5 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/879b73.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/879b73.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,45 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  uint2 prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureDimensions
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation uint2 VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+TextureCubeArray<float4> arg_0 : register(t0, space1);
+uint2 textureDimensions_879b73() {
+  uint3 v = (0u).xxx;
+  arg_0.GetDimensions(v[0u], v[1u], v[2u]);
+  uint2 res = v.xy;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store2(0u, textureDimensions_879b73());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store2(0u, textureDimensions_879b73());
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = textureDimensions_879b73();
+  VertexOutput v_1 = tint_symbol;
+  return v_1;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_2 = vertex_main_inner();
+  VertexOutput v_3 = v_2;
+  VertexOutput v_4 = v_2;
+  vertex_main_outputs v_5 = {v_4.prevent_dce, v_3.pos};
+  return v_5;
+}
+
diff --git a/test/tint/builtins/gen/literal/textureDimensions/87b42d.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/textureDimensions/87b42d.wgsl.expected.ir.dxc.hlsl
index 1fac62e..f2c010b 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/87b42d.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/87b42d.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,45 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  uint2 prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureDimensions
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation uint2 VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+Texture2DArray<uint4> arg_0 : register(t0, space1);
+uint2 textureDimensions_87b42d() {
+  uint3 v = (0u).xxx;
+  arg_0.GetDimensions(v[0u], v[1u], v[2u]);
+  uint2 res = v.xy;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store2(0u, textureDimensions_87b42d());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store2(0u, textureDimensions_87b42d());
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = textureDimensions_87b42d();
+  VertexOutput v_1 = tint_symbol;
+  return v_1;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_2 = vertex_main_inner();
+  VertexOutput v_3 = v_2;
+  VertexOutput v_4 = v_2;
+  vertex_main_outputs v_5 = {v_4.prevent_dce, v_3.pos};
+  return v_5;
+}
+
diff --git a/test/tint/builtins/gen/literal/textureDimensions/87b42d.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/textureDimensions/87b42d.wgsl.expected.ir.fxc.hlsl
index 1fac62e..f2c010b 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/87b42d.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/87b42d.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,45 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  uint2 prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureDimensions
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation uint2 VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+Texture2DArray<uint4> arg_0 : register(t0, space1);
+uint2 textureDimensions_87b42d() {
+  uint3 v = (0u).xxx;
+  arg_0.GetDimensions(v[0u], v[1u], v[2u]);
+  uint2 res = v.xy;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store2(0u, textureDimensions_87b42d());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store2(0u, textureDimensions_87b42d());
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = textureDimensions_87b42d();
+  VertexOutput v_1 = tint_symbol;
+  return v_1;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_2 = vertex_main_inner();
+  VertexOutput v_3 = v_2;
+  VertexOutput v_4 = v_2;
+  vertex_main_outputs v_5 = {v_4.prevent_dce, v_3.pos};
+  return v_5;
+}
+
diff --git a/test/tint/builtins/gen/literal/textureDimensions/881dd4.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/textureDimensions/881dd4.wgsl.expected.ir.dxc.hlsl
index 1fac62e..cda6b1a 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/881dd4.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/881dd4.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,45 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  uint2 prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureDimensions
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation uint2 VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+Texture2DArray<float4> arg_0 : register(t0, space1);
+uint2 textureDimensions_881dd4() {
+  uint3 v = (0u).xxx;
+  arg_0.GetDimensions(v[0u], v[1u], v[2u]);
+  uint2 res = v.xy;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store2(0u, textureDimensions_881dd4());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store2(0u, textureDimensions_881dd4());
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = textureDimensions_881dd4();
+  VertexOutput v_1 = tint_symbol;
+  return v_1;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_2 = vertex_main_inner();
+  VertexOutput v_3 = v_2;
+  VertexOutput v_4 = v_2;
+  vertex_main_outputs v_5 = {v_4.prevent_dce, v_3.pos};
+  return v_5;
+}
+
diff --git a/test/tint/builtins/gen/literal/textureDimensions/881dd4.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/textureDimensions/881dd4.wgsl.expected.ir.fxc.hlsl
index 1fac62e..cda6b1a 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/881dd4.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/881dd4.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,45 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  uint2 prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureDimensions
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation uint2 VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+Texture2DArray<float4> arg_0 : register(t0, space1);
+uint2 textureDimensions_881dd4() {
+  uint3 v = (0u).xxx;
+  arg_0.GetDimensions(v[0u], v[1u], v[2u]);
+  uint2 res = v.xy;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store2(0u, textureDimensions_881dd4());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store2(0u, textureDimensions_881dd4());
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = textureDimensions_881dd4();
+  VertexOutput v_1 = tint_symbol;
+  return v_1;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_2 = vertex_main_inner();
+  VertexOutput v_3 = v_2;
+  VertexOutput v_4 = v_2;
+  vertex_main_outputs v_5 = {v_4.prevent_dce, v_3.pos};
+  return v_5;
+}
+
diff --git a/test/tint/builtins/gen/literal/textureDimensions/8a2b17.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/textureDimensions/8a2b17.wgsl.expected.ir.dxc.hlsl
index 1fac62e..a25b947 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/8a2b17.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/8a2b17.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,19 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureDimensions
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWByteAddressBuffer prevent_dce : register(u0);
+RWTexture1D<int4> arg_0 : register(u0, space1);
+uint textureDimensions_8a2b17() {
+  uint v = 0u;
+  arg_0.GetDimensions(v);
+  uint res = v;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store(0u, textureDimensions_8a2b17());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store(0u, textureDimensions_8a2b17());
+}
+
diff --git a/test/tint/builtins/gen/literal/textureDimensions/8a2b17.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/textureDimensions/8a2b17.wgsl.expected.ir.fxc.hlsl
index 1fac62e..a25b947 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/8a2b17.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/8a2b17.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,19 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureDimensions
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWByteAddressBuffer prevent_dce : register(u0);
+RWTexture1D<int4> arg_0 : register(u0, space1);
+uint textureDimensions_8a2b17() {
+  uint v = 0u;
+  arg_0.GetDimensions(v);
+  uint res = v;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store(0u, textureDimensions_8a2b17());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store(0u, textureDimensions_8a2b17());
+}
+
diff --git a/test/tint/builtins/gen/literal/textureDimensions/8a35f9.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/textureDimensions/8a35f9.wgsl.expected.ir.dxc.hlsl
index 1fac62e..560c74a 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/8a35f9.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/8a35f9.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,19 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureDimensions
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWByteAddressBuffer prevent_dce : register(u0);
+RWTexture2D<float4> arg_0 : register(u0, space1);
+uint2 textureDimensions_8a35f9() {
+  uint2 v = (0u).xx;
+  arg_0.GetDimensions(v[0u], v[1u]);
+  uint2 res = v;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store2(0u, textureDimensions_8a35f9());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store2(0u, textureDimensions_8a35f9());
+}
+
diff --git a/test/tint/builtins/gen/literal/textureDimensions/8a35f9.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/textureDimensions/8a35f9.wgsl.expected.ir.fxc.hlsl
index 1fac62e..560c74a 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/8a35f9.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/8a35f9.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,19 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureDimensions
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWByteAddressBuffer prevent_dce : register(u0);
+RWTexture2D<float4> arg_0 : register(u0, space1);
+uint2 textureDimensions_8a35f9() {
+  uint2 v = (0u).xx;
+  arg_0.GetDimensions(v[0u], v[1u]);
+  uint2 res = v;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store2(0u, textureDimensions_8a35f9());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store2(0u, textureDimensions_8a35f9());
+}
+
diff --git a/test/tint/builtins/gen/literal/textureDimensions/8af728.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/textureDimensions/8af728.wgsl.expected.ir.dxc.hlsl
index 1fac62e..c9be978 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/8af728.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/8af728.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,45 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  uint2 prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureDimensions
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation uint2 VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+Texture2DArray<float4> arg_0 : register(t0, space1);
+uint2 textureDimensions_8af728() {
+  uint3 v = (0u).xxx;
+  arg_0.GetDimensions(v[0u], v[1u], v[2u]);
+  uint2 res = v.xy;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store2(0u, textureDimensions_8af728());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store2(0u, textureDimensions_8af728());
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = textureDimensions_8af728();
+  VertexOutput v_1 = tint_symbol;
+  return v_1;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_2 = vertex_main_inner();
+  VertexOutput v_3 = v_2;
+  VertexOutput v_4 = v_2;
+  vertex_main_outputs v_5 = {v_4.prevent_dce, v_3.pos};
+  return v_5;
+}
+
diff --git a/test/tint/builtins/gen/literal/textureDimensions/8af728.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/textureDimensions/8af728.wgsl.expected.ir.fxc.hlsl
index 1fac62e..c9be978 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/8af728.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/8af728.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,45 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  uint2 prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureDimensions
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation uint2 VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+Texture2DArray<float4> arg_0 : register(t0, space1);
+uint2 textureDimensions_8af728() {
+  uint3 v = (0u).xxx;
+  arg_0.GetDimensions(v[0u], v[1u], v[2u]);
+  uint2 res = v.xy;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store2(0u, textureDimensions_8af728());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store2(0u, textureDimensions_8af728());
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = textureDimensions_8af728();
+  VertexOutput v_1 = tint_symbol;
+  return v_1;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_2 = vertex_main_inner();
+  VertexOutput v_3 = v_2;
+  VertexOutput v_4 = v_2;
+  vertex_main_outputs v_5 = {v_4.prevent_dce, v_3.pos};
+  return v_5;
+}
+
diff --git a/test/tint/builtins/gen/literal/textureDimensions/8b9906.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/textureDimensions/8b9906.wgsl.expected.ir.dxc.hlsl
index 1fac62e..ae72b51e8 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/8b9906.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/8b9906.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,19 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureDimensions
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWByteAddressBuffer prevent_dce : register(u0);
+RWTexture3D<uint4> arg_0 : register(u0, space1);
+uint3 textureDimensions_8b9906() {
+  uint3 v = (0u).xxx;
+  arg_0.GetDimensions(v[0u], v[1u], v[2u]);
+  uint3 res = v;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store3(0u, textureDimensions_8b9906());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store3(0u, textureDimensions_8b9906());
+}
+
diff --git a/test/tint/builtins/gen/literal/textureDimensions/8b9906.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/textureDimensions/8b9906.wgsl.expected.ir.fxc.hlsl
index 1fac62e..ae72b51e8 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/8b9906.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/8b9906.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,19 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureDimensions
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWByteAddressBuffer prevent_dce : register(u0);
+RWTexture3D<uint4> arg_0 : register(u0, space1);
+uint3 textureDimensions_8b9906() {
+  uint3 v = (0u).xxx;
+  arg_0.GetDimensions(v[0u], v[1u], v[2u]);
+  uint3 res = v;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store3(0u, textureDimensions_8b9906());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store3(0u, textureDimensions_8b9906());
+}
+
diff --git a/test/tint/builtins/gen/literal/textureDimensions/8bd369.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/textureDimensions/8bd369.wgsl.expected.ir.dxc.hlsl
index 1fac62e..e690d18 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/8bd369.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/8bd369.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,19 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureDimensions
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWByteAddressBuffer prevent_dce : register(u0);
+RWTexture2DArray<float4> arg_0 : register(u0, space1);
+uint2 textureDimensions_8bd369() {
+  uint3 v = (0u).xxx;
+  arg_0.GetDimensions(v[0u], v[1u], v[2u]);
+  uint2 res = v.xy;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store2(0u, textureDimensions_8bd369());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store2(0u, textureDimensions_8bd369());
+}
+
diff --git a/test/tint/builtins/gen/literal/textureDimensions/8bd369.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/textureDimensions/8bd369.wgsl.expected.ir.fxc.hlsl
index 1fac62e..e690d18 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/8bd369.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/8bd369.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,19 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureDimensions
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWByteAddressBuffer prevent_dce : register(u0);
+RWTexture2DArray<float4> arg_0 : register(u0, space1);
+uint2 textureDimensions_8bd369() {
+  uint3 v = (0u).xxx;
+  arg_0.GetDimensions(v[0u], v[1u], v[2u]);
+  uint2 res = v.xy;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store2(0u, textureDimensions_8bd369());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store2(0u, textureDimensions_8bd369());
+}
+
diff --git a/test/tint/builtins/gen/literal/textureDimensions/8e15f4.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/textureDimensions/8e15f4.wgsl.expected.ir.dxc.hlsl
index 1fac62e..41cdea7 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/8e15f4.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/8e15f4.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,45 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  uint2 prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureDimensions
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation uint2 VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+Texture2D<uint4> arg_0 : register(t0, space1);
+uint2 textureDimensions_8e15f4() {
+  uint2 v = (0u).xx;
+  arg_0.GetDimensions(v[0u], v[1u]);
+  uint2 res = v;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store2(0u, textureDimensions_8e15f4());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store2(0u, textureDimensions_8e15f4());
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = textureDimensions_8e15f4();
+  VertexOutput v_1 = tint_symbol;
+  return v_1;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_2 = vertex_main_inner();
+  VertexOutput v_3 = v_2;
+  VertexOutput v_4 = v_2;
+  vertex_main_outputs v_5 = {v_4.prevent_dce, v_3.pos};
+  return v_5;
+}
+
diff --git a/test/tint/builtins/gen/literal/textureDimensions/8e15f4.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/textureDimensions/8e15f4.wgsl.expected.ir.fxc.hlsl
index 1fac62e..41cdea7 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/8e15f4.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/8e15f4.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,45 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  uint2 prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureDimensions
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation uint2 VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+Texture2D<uint4> arg_0 : register(t0, space1);
+uint2 textureDimensions_8e15f4() {
+  uint2 v = (0u).xx;
+  arg_0.GetDimensions(v[0u], v[1u]);
+  uint2 res = v;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store2(0u, textureDimensions_8e15f4());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store2(0u, textureDimensions_8e15f4());
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = textureDimensions_8e15f4();
+  VertexOutput v_1 = tint_symbol;
+  return v_1;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_2 = vertex_main_inner();
+  VertexOutput v_3 = v_2;
+  VertexOutput v_4 = v_2;
+  vertex_main_outputs v_5 = {v_4.prevent_dce, v_3.pos};
+  return v_5;
+}
+
diff --git a/test/tint/builtins/gen/literal/textureDimensions/8e5de6.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/textureDimensions/8e5de6.wgsl.expected.ir.dxc.hlsl
index 1fac62e..17bd941 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/8e5de6.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/8e5de6.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,45 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  uint prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureDimensions
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation uint VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+Texture1D<int4> arg_0 : register(t0, space1);
+uint textureDimensions_8e5de6() {
+  uint v = 0u;
+  arg_0.GetDimensions(v);
+  uint res = v;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store(0u, textureDimensions_8e5de6());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store(0u, textureDimensions_8e5de6());
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = textureDimensions_8e5de6();
+  VertexOutput v_1 = tint_symbol;
+  return v_1;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_2 = vertex_main_inner();
+  VertexOutput v_3 = v_2;
+  VertexOutput v_4 = v_2;
+  vertex_main_outputs v_5 = {v_4.prevent_dce, v_3.pos};
+  return v_5;
+}
+
diff --git a/test/tint/builtins/gen/literal/textureDimensions/8e5de6.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/textureDimensions/8e5de6.wgsl.expected.ir.fxc.hlsl
index 1fac62e..17bd941 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/8e5de6.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/8e5de6.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,45 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  uint prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureDimensions
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation uint VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+Texture1D<int4> arg_0 : register(t0, space1);
+uint textureDimensions_8e5de6() {
+  uint v = 0u;
+  arg_0.GetDimensions(v);
+  uint res = v;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store(0u, textureDimensions_8e5de6());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store(0u, textureDimensions_8e5de6());
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = textureDimensions_8e5de6();
+  VertexOutput v_1 = tint_symbol;
+  return v_1;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_2 = vertex_main_inner();
+  VertexOutput v_3 = v_2;
+  VertexOutput v_4 = v_2;
+  vertex_main_outputs v_5 = {v_4.prevent_dce, v_3.pos};
+  return v_5;
+}
+
diff --git a/test/tint/builtins/gen/literal/textureDimensions/8efd47.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/textureDimensions/8efd47.wgsl.expected.ir.dxc.hlsl
index 1fac62e..9642825 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/8efd47.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/8efd47.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,19 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureDimensions
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWByteAddressBuffer prevent_dce : register(u0);
+RWTexture1D<int4> arg_0 : register(u0, space1);
+uint textureDimensions_8efd47() {
+  uint v = 0u;
+  arg_0.GetDimensions(v);
+  uint res = v;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store(0u, textureDimensions_8efd47());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store(0u, textureDimensions_8efd47());
+}
+
diff --git a/test/tint/builtins/gen/literal/textureDimensions/8efd47.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/textureDimensions/8efd47.wgsl.expected.ir.fxc.hlsl
index 1fac62e..9642825 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/8efd47.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/8efd47.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,19 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureDimensions
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWByteAddressBuffer prevent_dce : register(u0);
+RWTexture1D<int4> arg_0 : register(u0, space1);
+uint textureDimensions_8efd47() {
+  uint v = 0u;
+  arg_0.GetDimensions(v);
+  uint res = v;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store(0u, textureDimensions_8efd47());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store(0u, textureDimensions_8efd47());
+}
+
diff --git a/test/tint/builtins/gen/literal/textureDimensions/902179.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/textureDimensions/902179.wgsl.expected.ir.dxc.hlsl
index 1fac62e..cdeca41 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/902179.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/902179.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,19 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureDimensions
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWByteAddressBuffer prevent_dce : register(u0);
+RWTexture3D<float4> arg_0 : register(u0, space1);
+uint3 textureDimensions_902179() {
+  uint3 v = (0u).xxx;
+  arg_0.GetDimensions(v[0u], v[1u], v[2u]);
+  uint3 res = v;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store3(0u, textureDimensions_902179());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store3(0u, textureDimensions_902179());
+}
+
diff --git a/test/tint/builtins/gen/literal/textureDimensions/902179.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/textureDimensions/902179.wgsl.expected.ir.fxc.hlsl
index 1fac62e..cdeca41 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/902179.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/902179.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,19 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureDimensions
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWByteAddressBuffer prevent_dce : register(u0);
+RWTexture3D<float4> arg_0 : register(u0, space1);
+uint3 textureDimensions_902179() {
+  uint3 v = (0u).xxx;
+  arg_0.GetDimensions(v[0u], v[1u], v[2u]);
+  uint3 res = v;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store3(0u, textureDimensions_902179());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store3(0u, textureDimensions_902179());
+}
+
diff --git a/test/tint/builtins/gen/literal/textureDimensions/904b0f.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/textureDimensions/904b0f.wgsl.expected.ir.dxc.hlsl
index 1fac62e..c1681a1 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/904b0f.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/904b0f.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,45 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  uint2 prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureDimensions
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation uint2 VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+Texture2DArray<int4> arg_0 : register(t0, space1);
+uint2 textureDimensions_904b0f() {
+  uint3 v = (0u).xxx;
+  arg_0.GetDimensions(v[0u], v[1u], v[2u]);
+  uint2 res = v.xy;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store2(0u, textureDimensions_904b0f());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store2(0u, textureDimensions_904b0f());
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = textureDimensions_904b0f();
+  VertexOutput v_1 = tint_symbol;
+  return v_1;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_2 = vertex_main_inner();
+  VertexOutput v_3 = v_2;
+  VertexOutput v_4 = v_2;
+  vertex_main_outputs v_5 = {v_4.prevent_dce, v_3.pos};
+  return v_5;
+}
+
diff --git a/test/tint/builtins/gen/literal/textureDimensions/904b0f.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/textureDimensions/904b0f.wgsl.expected.ir.fxc.hlsl
index 1fac62e..c1681a1 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/904b0f.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/904b0f.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,45 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  uint2 prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureDimensions
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation uint2 VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+Texture2DArray<int4> arg_0 : register(t0, space1);
+uint2 textureDimensions_904b0f() {
+  uint3 v = (0u).xxx;
+  arg_0.GetDimensions(v[0u], v[1u], v[2u]);
+  uint2 res = v.xy;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store2(0u, textureDimensions_904b0f());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store2(0u, textureDimensions_904b0f());
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = textureDimensions_904b0f();
+  VertexOutput v_1 = tint_symbol;
+  return v_1;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_2 = vertex_main_inner();
+  VertexOutput v_3 = v_2;
+  VertexOutput v_4 = v_2;
+  vertex_main_outputs v_5 = {v_4.prevent_dce, v_3.pos};
+  return v_5;
+}
+
diff --git a/test/tint/builtins/gen/literal/textureDimensions/90dd74.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/textureDimensions/90dd74.wgsl.expected.ir.dxc.hlsl
index 1fac62e..e39c622 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/90dd74.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/90dd74.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,19 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureDimensions
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWByteAddressBuffer prevent_dce : register(u0);
+RWTexture2DArray<int4> arg_0 : register(u0, space1);
+uint2 textureDimensions_90dd74() {
+  uint3 v = (0u).xxx;
+  arg_0.GetDimensions(v[0u], v[1u], v[2u]);
+  uint2 res = v.xy;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store2(0u, textureDimensions_90dd74());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store2(0u, textureDimensions_90dd74());
+}
+
diff --git a/test/tint/builtins/gen/literal/textureDimensions/90dd74.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/textureDimensions/90dd74.wgsl.expected.ir.fxc.hlsl
index 1fac62e..e39c622 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/90dd74.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/90dd74.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,19 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureDimensions
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWByteAddressBuffer prevent_dce : register(u0);
+RWTexture2DArray<int4> arg_0 : register(u0, space1);
+uint2 textureDimensions_90dd74() {
+  uint3 v = (0u).xxx;
+  arg_0.GetDimensions(v[0u], v[1u], v[2u]);
+  uint2 res = v.xy;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store2(0u, textureDimensions_90dd74());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store2(0u, textureDimensions_90dd74());
+}
+
diff --git a/test/tint/builtins/gen/literal/textureDimensions/91e3b4.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/textureDimensions/91e3b4.wgsl.expected.ir.dxc.hlsl
index 1fac62e..c7115dc 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/91e3b4.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/91e3b4.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,19 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureDimensions
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWByteAddressBuffer prevent_dce : register(u0);
+RWTexture3D<int4> arg_0 : register(u0, space1);
+uint3 textureDimensions_91e3b4() {
+  uint3 v = (0u).xxx;
+  arg_0.GetDimensions(v[0u], v[1u], v[2u]);
+  uint3 res = v;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store3(0u, textureDimensions_91e3b4());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store3(0u, textureDimensions_91e3b4());
+}
+
diff --git a/test/tint/builtins/gen/literal/textureDimensions/91e3b4.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/textureDimensions/91e3b4.wgsl.expected.ir.fxc.hlsl
index 1fac62e..c7115dc 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/91e3b4.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/91e3b4.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,19 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureDimensions
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWByteAddressBuffer prevent_dce : register(u0);
+RWTexture3D<int4> arg_0 : register(u0, space1);
+uint3 textureDimensions_91e3b4() {
+  uint3 v = (0u).xxx;
+  arg_0.GetDimensions(v[0u], v[1u], v[2u]);
+  uint3 res = v;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store3(0u, textureDimensions_91e3b4());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store3(0u, textureDimensions_91e3b4());
+}
+
diff --git a/test/tint/builtins/gen/literal/textureDimensions/920006.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/textureDimensions/920006.wgsl.expected.ir.dxc.hlsl
index 1fac62e..b678258 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/920006.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/920006.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,112 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureDimensions
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : u32;
+
+@group(1) @binding(0) var arg_0 : texture_1d<u32>;
+
+fn textureDimensions_920006() -> u32 {
+  var res : u32 = textureDimensions(arg_0, 1i);
+  return res;
+}
+
+@fragment
+fn fragment_main() {
+  prevent_dce = textureDimensions_920006();
+}
+
+@compute @workgroup_size(1)
+fn compute_main() {
+  prevent_dce = textureDimensions_920006();
+}
+
+struct VertexOutput {
+  @builtin(position)
+  pos : vec4<f32>,
+  @location(0) @interpolate(flat)
+  prevent_dce : u32,
+}
+
+@vertex
+fn vertex_main() -> VertexOutput {
+  var tint_symbol : VertexOutput;
+  tint_symbol.pos = vec4<f32>();
+  tint_symbol.prevent_dce = textureDimensions_920006();
+  return tint_symbol;
+}
+
+Failed to generate: :26:43 error: var: initializer type 'vec2<u32>' does not match store type 'u32'
+    %res:ptr<function, u32, read_write> = var, %11
+                                          ^^^
+
+:17:3 note: in block
+  $B2: {
+  ^^^
+
+note: # Disassembly
+VertexOutput = struct @align(16) {
+  pos:vec4<f32> @offset(0)
+  prevent_dce:u32 @offset(16)
+}
+
+vertex_main_outputs = struct @align(16) {
+  VertexOutput_prevent_dce:u32 @offset(0), @location(0), @interpolate(flat)
+  VertexOutput_pos:vec4<f32> @offset(16), @builtin(position)
+}
+
+$B1: {  # root
+  %prevent_dce:hlsl.byte_address_buffer<read_write> = var @binding_point(0, 0)
+  %arg_0:ptr<handle, texture_1d<u32>, read> = var @binding_point(1, 0)
+}
+
+%textureDimensions_920006 = func():u32 {
+  $B2: {
+    %4:texture_1d<u32> = load %arg_0
+    %5:u32 = convert 1i
+    %6:ptr<function, vec2<u32>, read_write> = var
+    %7:ptr<function, u32, read_write> = access %6, 0u
+    %8:ptr<function, u32, read_write> = access %6, 1u
+    %9:void = %4.GetDimensions %5, %7, %8
+    %10:vec2<u32> = load %6
+    %11:vec2<u32> = swizzle %10, x
+    %res:ptr<function, u32, read_write> = var, %11
+    %13:u32 = load %res
+    ret %13
+  }
+}
+%fragment_main = @fragment func():void {
+  $B3: {
+    %15:u32 = call %textureDimensions_920006
+    %16:void = %prevent_dce.Store 0u, %15
+    ret
+  }
+}
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B4: {
+    %18:u32 = call %textureDimensions_920006
+    %19:void = %prevent_dce.Store 0u, %18
+    ret
+  }
+}
+%vertex_main_inner = func():VertexOutput {
+  $B5: {
+    %tint_symbol:ptr<function, VertexOutput, read_write> = var
+    %22:ptr<function, vec4<f32>, read_write> = access %tint_symbol, 0u
+    store %22, vec4<f32>(0.0f)
+    %23:ptr<function, u32, read_write> = access %tint_symbol, 1u
+    %24:u32 = call %textureDimensions_920006
+    store %23, %24
+    %25:VertexOutput = load %tint_symbol
+    ret %25
+  }
+}
+%vertex_main = @vertex func():vertex_main_outputs {
+  $B6: {
+    %27:VertexOutput = call %vertex_main_inner
+    %28:vec4<f32> = access %27, 0u
+    %29:u32 = access %27, 1u
+    %30:vertex_main_outputs = construct %29, %28
+    ret %30
+  }
+}
+
diff --git a/test/tint/builtins/gen/literal/textureDimensions/920006.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/textureDimensions/920006.wgsl.expected.ir.fxc.hlsl
index 1fac62e..b678258 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/920006.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/920006.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,112 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureDimensions
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : u32;
+
+@group(1) @binding(0) var arg_0 : texture_1d<u32>;
+
+fn textureDimensions_920006() -> u32 {
+  var res : u32 = textureDimensions(arg_0, 1i);
+  return res;
+}
+
+@fragment
+fn fragment_main() {
+  prevent_dce = textureDimensions_920006();
+}
+
+@compute @workgroup_size(1)
+fn compute_main() {
+  prevent_dce = textureDimensions_920006();
+}
+
+struct VertexOutput {
+  @builtin(position)
+  pos : vec4<f32>,
+  @location(0) @interpolate(flat)
+  prevent_dce : u32,
+}
+
+@vertex
+fn vertex_main() -> VertexOutput {
+  var tint_symbol : VertexOutput;
+  tint_symbol.pos = vec4<f32>();
+  tint_symbol.prevent_dce = textureDimensions_920006();
+  return tint_symbol;
+}
+
+Failed to generate: :26:43 error: var: initializer type 'vec2<u32>' does not match store type 'u32'
+    %res:ptr<function, u32, read_write> = var, %11
+                                          ^^^
+
+:17:3 note: in block
+  $B2: {
+  ^^^
+
+note: # Disassembly
+VertexOutput = struct @align(16) {
+  pos:vec4<f32> @offset(0)
+  prevent_dce:u32 @offset(16)
+}
+
+vertex_main_outputs = struct @align(16) {
+  VertexOutput_prevent_dce:u32 @offset(0), @location(0), @interpolate(flat)
+  VertexOutput_pos:vec4<f32> @offset(16), @builtin(position)
+}
+
+$B1: {  # root
+  %prevent_dce:hlsl.byte_address_buffer<read_write> = var @binding_point(0, 0)
+  %arg_0:ptr<handle, texture_1d<u32>, read> = var @binding_point(1, 0)
+}
+
+%textureDimensions_920006 = func():u32 {
+  $B2: {
+    %4:texture_1d<u32> = load %arg_0
+    %5:u32 = convert 1i
+    %6:ptr<function, vec2<u32>, read_write> = var
+    %7:ptr<function, u32, read_write> = access %6, 0u
+    %8:ptr<function, u32, read_write> = access %6, 1u
+    %9:void = %4.GetDimensions %5, %7, %8
+    %10:vec2<u32> = load %6
+    %11:vec2<u32> = swizzle %10, x
+    %res:ptr<function, u32, read_write> = var, %11
+    %13:u32 = load %res
+    ret %13
+  }
+}
+%fragment_main = @fragment func():void {
+  $B3: {
+    %15:u32 = call %textureDimensions_920006
+    %16:void = %prevent_dce.Store 0u, %15
+    ret
+  }
+}
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B4: {
+    %18:u32 = call %textureDimensions_920006
+    %19:void = %prevent_dce.Store 0u, %18
+    ret
+  }
+}
+%vertex_main_inner = func():VertexOutput {
+  $B5: {
+    %tint_symbol:ptr<function, VertexOutput, read_write> = var
+    %22:ptr<function, vec4<f32>, read_write> = access %tint_symbol, 0u
+    store %22, vec4<f32>(0.0f)
+    %23:ptr<function, u32, read_write> = access %tint_symbol, 1u
+    %24:u32 = call %textureDimensions_920006
+    store %23, %24
+    %25:VertexOutput = load %tint_symbol
+    ret %25
+  }
+}
+%vertex_main = @vertex func():vertex_main_outputs {
+  $B6: {
+    %27:VertexOutput = call %vertex_main_inner
+    %28:vec4<f32> = access %27, 0u
+    %29:u32 = access %27, 1u
+    %30:vertex_main_outputs = construct %29, %28
+    ret %30
+  }
+}
+
diff --git a/test/tint/builtins/gen/literal/textureDimensions/92552e.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/textureDimensions/92552e.wgsl.expected.ir.dxc.hlsl
index 1fac62e..2ee6392 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/92552e.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/92552e.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,19 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureDimensions
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWByteAddressBuffer prevent_dce : register(u0);
+RWTexture1D<int4> arg_0 : register(u0, space1);
+uint textureDimensions_92552e() {
+  uint v = 0u;
+  arg_0.GetDimensions(v);
+  uint res = v;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store(0u, textureDimensions_92552e());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store(0u, textureDimensions_92552e());
+}
+
diff --git a/test/tint/builtins/gen/literal/textureDimensions/92552e.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/textureDimensions/92552e.wgsl.expected.ir.fxc.hlsl
index 1fac62e..2ee6392 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/92552e.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/92552e.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,19 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureDimensions
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWByteAddressBuffer prevent_dce : register(u0);
+RWTexture1D<int4> arg_0 : register(u0, space1);
+uint textureDimensions_92552e() {
+  uint v = 0u;
+  arg_0.GetDimensions(v);
+  uint res = v;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store(0u, textureDimensions_92552e());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store(0u, textureDimensions_92552e());
+}
+
diff --git a/test/tint/builtins/gen/literal/textureDimensions/9573f3.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/textureDimensions/9573f3.wgsl.expected.ir.dxc.hlsl
index 1fac62e..7bc54ce 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/9573f3.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/9573f3.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,19 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureDimensions
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWByteAddressBuffer prevent_dce : register(u0);
+RWTexture2D<uint4> arg_0 : register(u0, space1);
+uint2 textureDimensions_9573f3() {
+  uint2 v = (0u).xx;
+  arg_0.GetDimensions(v[0u], v[1u]);
+  uint2 res = v;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store2(0u, textureDimensions_9573f3());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store2(0u, textureDimensions_9573f3());
+}
+
diff --git a/test/tint/builtins/gen/literal/textureDimensions/9573f3.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/textureDimensions/9573f3.wgsl.expected.ir.fxc.hlsl
index 1fac62e..7bc54ce 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/9573f3.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/9573f3.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,19 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureDimensions
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWByteAddressBuffer prevent_dce : register(u0);
+RWTexture2D<uint4> arg_0 : register(u0, space1);
+uint2 textureDimensions_9573f3() {
+  uint2 v = (0u).xx;
+  arg_0.GetDimensions(v[0u], v[1u]);
+  uint2 res = v;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store2(0u, textureDimensions_9573f3());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store2(0u, textureDimensions_9573f3());
+}
+
diff --git a/test/tint/builtins/gen/literal/textureDimensions/965645.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/textureDimensions/965645.wgsl.expected.ir.dxc.hlsl
index 1fac62e..cea0708 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/965645.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/965645.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,45 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  uint prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureDimensions
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation uint VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+Texture1D<uint4> arg_0 : register(t0, space1);
+uint textureDimensions_965645() {
+  uint v = 0u;
+  arg_0.GetDimensions(v);
+  uint res = v;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store(0u, textureDimensions_965645());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store(0u, textureDimensions_965645());
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = textureDimensions_965645();
+  VertexOutput v_1 = tint_symbol;
+  return v_1;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_2 = vertex_main_inner();
+  VertexOutput v_3 = v_2;
+  VertexOutput v_4 = v_2;
+  vertex_main_outputs v_5 = {v_4.prevent_dce, v_3.pos};
+  return v_5;
+}
+
diff --git a/test/tint/builtins/gen/literal/textureDimensions/965645.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/textureDimensions/965645.wgsl.expected.ir.fxc.hlsl
index 1fac62e..cea0708 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/965645.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/965645.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,45 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  uint prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureDimensions
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation uint VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+Texture1D<uint4> arg_0 : register(t0, space1);
+uint textureDimensions_965645() {
+  uint v = 0u;
+  arg_0.GetDimensions(v);
+  uint res = v;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store(0u, textureDimensions_965645());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store(0u, textureDimensions_965645());
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = textureDimensions_965645();
+  VertexOutput v_1 = tint_symbol;
+  return v_1;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_2 = vertex_main_inner();
+  VertexOutput v_3 = v_2;
+  VertexOutput v_4 = v_2;
+  vertex_main_outputs v_5 = {v_4.prevent_dce, v_3.pos};
+  return v_5;
+}
+
diff --git a/test/tint/builtins/gen/literal/textureDimensions/98b2d3.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/textureDimensions/98b2d3.wgsl.expected.ir.dxc.hlsl
index 1fac62e..6efe7ad 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/98b2d3.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/98b2d3.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,45 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  uint2 prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureDimensions
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation uint2 VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+TextureCubeArray<int4> arg_0 : register(t0, space1);
+uint2 textureDimensions_98b2d3() {
+  uint3 v = (0u).xxx;
+  arg_0.GetDimensions(v[0u], v[1u], v[2u]);
+  uint2 res = v.xy;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store2(0u, textureDimensions_98b2d3());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store2(0u, textureDimensions_98b2d3());
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = textureDimensions_98b2d3();
+  VertexOutput v_1 = tint_symbol;
+  return v_1;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_2 = vertex_main_inner();
+  VertexOutput v_3 = v_2;
+  VertexOutput v_4 = v_2;
+  vertex_main_outputs v_5 = {v_4.prevent_dce, v_3.pos};
+  return v_5;
+}
+
diff --git a/test/tint/builtins/gen/literal/textureDimensions/98b2d3.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/textureDimensions/98b2d3.wgsl.expected.ir.fxc.hlsl
index 1fac62e..6efe7ad 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/98b2d3.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/98b2d3.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,45 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  uint2 prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureDimensions
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation uint2 VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+TextureCubeArray<int4> arg_0 : register(t0, space1);
+uint2 textureDimensions_98b2d3() {
+  uint3 v = (0u).xxx;
+  arg_0.GetDimensions(v[0u], v[1u], v[2u]);
+  uint2 res = v.xy;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store2(0u, textureDimensions_98b2d3());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store2(0u, textureDimensions_98b2d3());
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = textureDimensions_98b2d3();
+  VertexOutput v_1 = tint_symbol;
+  return v_1;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_2 = vertex_main_inner();
+  VertexOutput v_3 = v_2;
+  VertexOutput v_4 = v_2;
+  vertex_main_outputs v_5 = {v_4.prevent_dce, v_3.pos};
+  return v_5;
+}
+
diff --git a/test/tint/builtins/gen/literal/textureDimensions/991ea9.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/textureDimensions/991ea9.wgsl.expected.ir.dxc.hlsl
index 1fac62e..d875380 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/991ea9.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/991ea9.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,46 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  uint2 prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureDimensions
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation uint2 VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+Texture2D arg_0 : register(t0, space1);
+uint2 textureDimensions_991ea9() {
+  Texture2D v = arg_0;
+  uint3 v_1 = (0u).xxx;
+  v.GetDimensions(uint(1u), v_1[0u], v_1[1u], v_1[2u]);
+  uint2 res = v_1.xy;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store2(0u, textureDimensions_991ea9());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store2(0u, textureDimensions_991ea9());
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = textureDimensions_991ea9();
+  VertexOutput v_2 = tint_symbol;
+  return v_2;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_3 = vertex_main_inner();
+  VertexOutput v_4 = v_3;
+  VertexOutput v_5 = v_3;
+  vertex_main_outputs v_6 = {v_5.prevent_dce, v_4.pos};
+  return v_6;
+}
+
diff --git a/test/tint/builtins/gen/literal/textureDimensions/991ea9.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/textureDimensions/991ea9.wgsl.expected.ir.fxc.hlsl
index 1fac62e..d875380 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/991ea9.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/991ea9.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,46 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  uint2 prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureDimensions
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation uint2 VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+Texture2D arg_0 : register(t0, space1);
+uint2 textureDimensions_991ea9() {
+  Texture2D v = arg_0;
+  uint3 v_1 = (0u).xxx;
+  v.GetDimensions(uint(1u), v_1[0u], v_1[1u], v_1[2u]);
+  uint2 res = v_1.xy;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store2(0u, textureDimensions_991ea9());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store2(0u, textureDimensions_991ea9());
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = textureDimensions_991ea9();
+  VertexOutput v_2 = tint_symbol;
+  return v_2;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_3 = vertex_main_inner();
+  VertexOutput v_4 = v_3;
+  VertexOutput v_5 = v_3;
+  vertex_main_outputs v_6 = {v_5.prevent_dce, v_4.pos};
+  return v_6;
+}
+
diff --git a/test/tint/builtins/gen/literal/textureDimensions/9944d5.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/textureDimensions/9944d5.wgsl.expected.ir.dxc.hlsl
index 1fac62e..605bc6b 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/9944d5.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/9944d5.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,19 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureDimensions
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWByteAddressBuffer prevent_dce : register(u0);
+RWTexture1D<uint4> arg_0 : register(u0, space1);
+uint textureDimensions_9944d5() {
+  uint v = 0u;
+  arg_0.GetDimensions(v);
+  uint res = v;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store(0u, textureDimensions_9944d5());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store(0u, textureDimensions_9944d5());
+}
+
diff --git a/test/tint/builtins/gen/literal/textureDimensions/9944d5.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/textureDimensions/9944d5.wgsl.expected.ir.fxc.hlsl
index 1fac62e..605bc6b 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/9944d5.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/9944d5.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,19 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureDimensions
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWByteAddressBuffer prevent_dce : register(u0);
+RWTexture1D<uint4> arg_0 : register(u0, space1);
+uint textureDimensions_9944d5() {
+  uint v = 0u;
+  arg_0.GetDimensions(v);
+  uint res = v;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store(0u, textureDimensions_9944d5());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store(0u, textureDimensions_9944d5());
+}
+
diff --git a/test/tint/builtins/gen/literal/textureDimensions/9b10a0.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/textureDimensions/9b10a0.wgsl.expected.ir.dxc.hlsl
index 1fac62e..0e1b1d7 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/9b10a0.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/9b10a0.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,45 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  uint2 prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureDimensions
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation uint2 VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+Texture2DArray<float4> arg_0 : register(t0, space1);
+uint2 textureDimensions_9b10a0() {
+  uint3 v = (0u).xxx;
+  arg_0.GetDimensions(v[0u], v[1u], v[2u]);
+  uint2 res = v.xy;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store2(0u, textureDimensions_9b10a0());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store2(0u, textureDimensions_9b10a0());
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = textureDimensions_9b10a0();
+  VertexOutput v_1 = tint_symbol;
+  return v_1;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_2 = vertex_main_inner();
+  VertexOutput v_3 = v_2;
+  VertexOutput v_4 = v_2;
+  vertex_main_outputs v_5 = {v_4.prevent_dce, v_3.pos};
+  return v_5;
+}
+
diff --git a/test/tint/builtins/gen/literal/textureDimensions/9b10a0.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/textureDimensions/9b10a0.wgsl.expected.ir.fxc.hlsl
index 1fac62e..0e1b1d7 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/9b10a0.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/9b10a0.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,45 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  uint2 prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureDimensions
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation uint2 VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+Texture2DArray<float4> arg_0 : register(t0, space1);
+uint2 textureDimensions_9b10a0() {
+  uint3 v = (0u).xxx;
+  arg_0.GetDimensions(v[0u], v[1u], v[2u]);
+  uint2 res = v.xy;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store2(0u, textureDimensions_9b10a0());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store2(0u, textureDimensions_9b10a0());
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = textureDimensions_9b10a0();
+  VertexOutput v_1 = tint_symbol;
+  return v_1;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_2 = vertex_main_inner();
+  VertexOutput v_3 = v_2;
+  VertexOutput v_4 = v_2;
+  vertex_main_outputs v_5 = {v_4.prevent_dce, v_3.pos};
+  return v_5;
+}
+
diff --git a/test/tint/builtins/gen/literal/textureDimensions/9b223b.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/textureDimensions/9b223b.wgsl.expected.ir.dxc.hlsl
index 1fac62e..ff303b8 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/9b223b.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/9b223b.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,45 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  uint2 prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureDimensions
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation uint2 VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+TextureCube<float4> arg_0 : register(t0, space1);
+uint2 textureDimensions_9b223b() {
+  uint2 v = (0u).xx;
+  arg_0.GetDimensions(v[0u], v[1u]);
+  uint2 res = v;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store2(0u, textureDimensions_9b223b());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store2(0u, textureDimensions_9b223b());
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = textureDimensions_9b223b();
+  VertexOutput v_1 = tint_symbol;
+  return v_1;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_2 = vertex_main_inner();
+  VertexOutput v_3 = v_2;
+  VertexOutput v_4 = v_2;
+  vertex_main_outputs v_5 = {v_4.prevent_dce, v_3.pos};
+  return v_5;
+}
+
diff --git a/test/tint/builtins/gen/literal/textureDimensions/9b223b.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/textureDimensions/9b223b.wgsl.expected.ir.fxc.hlsl
index 1fac62e..ff303b8 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/9b223b.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/9b223b.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,45 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  uint2 prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureDimensions
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation uint2 VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+TextureCube<float4> arg_0 : register(t0, space1);
+uint2 textureDimensions_9b223b() {
+  uint2 v = (0u).xx;
+  arg_0.GetDimensions(v[0u], v[1u]);
+  uint2 res = v;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store2(0u, textureDimensions_9b223b());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store2(0u, textureDimensions_9b223b());
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = textureDimensions_9b223b();
+  VertexOutput v_1 = tint_symbol;
+  return v_1;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_2 = vertex_main_inner();
+  VertexOutput v_3 = v_2;
+  VertexOutput v_4 = v_2;
+  vertex_main_outputs v_5 = {v_4.prevent_dce, v_3.pos};
+  return v_5;
+}
+
diff --git a/test/tint/builtins/gen/literal/textureDimensions/9baf27.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/textureDimensions/9baf27.wgsl.expected.ir.dxc.hlsl
index 1fac62e..0bad8f3 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/9baf27.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/9baf27.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,46 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  uint2 prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureDimensions
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation uint2 VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+TextureCube<uint4> arg_0 : register(t0, space1);
+uint2 textureDimensions_9baf27() {
+  TextureCube<uint4> v = arg_0;
+  uint3 v_1 = (0u).xxx;
+  v.GetDimensions(uint(1u), v_1[0u], v_1[1u], v_1[2u]);
+  uint2 res = v_1.xy;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store2(0u, textureDimensions_9baf27());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store2(0u, textureDimensions_9baf27());
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = textureDimensions_9baf27();
+  VertexOutput v_2 = tint_symbol;
+  return v_2;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_3 = vertex_main_inner();
+  VertexOutput v_4 = v_3;
+  VertexOutput v_5 = v_3;
+  vertex_main_outputs v_6 = {v_5.prevent_dce, v_4.pos};
+  return v_6;
+}
+
diff --git a/test/tint/builtins/gen/literal/textureDimensions/9baf27.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/textureDimensions/9baf27.wgsl.expected.ir.fxc.hlsl
index 1fac62e..0bad8f3 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/9baf27.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/9baf27.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,46 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  uint2 prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureDimensions
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation uint2 VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+TextureCube<uint4> arg_0 : register(t0, space1);
+uint2 textureDimensions_9baf27() {
+  TextureCube<uint4> v = arg_0;
+  uint3 v_1 = (0u).xxx;
+  v.GetDimensions(uint(1u), v_1[0u], v_1[1u], v_1[2u]);
+  uint2 res = v_1.xy;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store2(0u, textureDimensions_9baf27());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store2(0u, textureDimensions_9baf27());
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = textureDimensions_9baf27();
+  VertexOutput v_2 = tint_symbol;
+  return v_2;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_3 = vertex_main_inner();
+  VertexOutput v_4 = v_3;
+  VertexOutput v_5 = v_3;
+  vertex_main_outputs v_6 = {v_5.prevent_dce, v_4.pos};
+  return v_6;
+}
+
diff --git a/test/tint/builtins/gen/literal/textureDimensions/9c7a00.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/textureDimensions/9c7a00.wgsl.expected.ir.dxc.hlsl
index 1fac62e..56cb944 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/9c7a00.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/9c7a00.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,112 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureDimensions
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : u32;
+
+@group(1) @binding(0) var arg_0 : texture_1d<u32>;
+
+fn textureDimensions_9c7a00() -> u32 {
+  var res : u32 = textureDimensions(arg_0, 1u);
+  return res;
+}
+
+@fragment
+fn fragment_main() {
+  prevent_dce = textureDimensions_9c7a00();
+}
+
+@compute @workgroup_size(1)
+fn compute_main() {
+  prevent_dce = textureDimensions_9c7a00();
+}
+
+struct VertexOutput {
+  @builtin(position)
+  pos : vec4<f32>,
+  @location(0) @interpolate(flat)
+  prevent_dce : u32,
+}
+
+@vertex
+fn vertex_main() -> VertexOutput {
+  var tint_symbol : VertexOutput;
+  tint_symbol.pos = vec4<f32>();
+  tint_symbol.prevent_dce = textureDimensions_9c7a00();
+  return tint_symbol;
+}
+
+Failed to generate: :26:43 error: var: initializer type 'vec2<u32>' does not match store type 'u32'
+    %res:ptr<function, u32, read_write> = var, %11
+                                          ^^^
+
+:17:3 note: in block
+  $B2: {
+  ^^^
+
+note: # Disassembly
+VertexOutput = struct @align(16) {
+  pos:vec4<f32> @offset(0)
+  prevent_dce:u32 @offset(16)
+}
+
+vertex_main_outputs = struct @align(16) {
+  VertexOutput_prevent_dce:u32 @offset(0), @location(0), @interpolate(flat)
+  VertexOutput_pos:vec4<f32> @offset(16), @builtin(position)
+}
+
+$B1: {  # root
+  %prevent_dce:hlsl.byte_address_buffer<read_write> = var @binding_point(0, 0)
+  %arg_0:ptr<handle, texture_1d<u32>, read> = var @binding_point(1, 0)
+}
+
+%textureDimensions_9c7a00 = func():u32 {
+  $B2: {
+    %4:texture_1d<u32> = load %arg_0
+    %5:u32 = convert 1u
+    %6:ptr<function, vec2<u32>, read_write> = var
+    %7:ptr<function, u32, read_write> = access %6, 0u
+    %8:ptr<function, u32, read_write> = access %6, 1u
+    %9:void = %4.GetDimensions %5, %7, %8
+    %10:vec2<u32> = load %6
+    %11:vec2<u32> = swizzle %10, x
+    %res:ptr<function, u32, read_write> = var, %11
+    %13:u32 = load %res
+    ret %13
+  }
+}
+%fragment_main = @fragment func():void {
+  $B3: {
+    %15:u32 = call %textureDimensions_9c7a00
+    %16:void = %prevent_dce.Store 0u, %15
+    ret
+  }
+}
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B4: {
+    %18:u32 = call %textureDimensions_9c7a00
+    %19:void = %prevent_dce.Store 0u, %18
+    ret
+  }
+}
+%vertex_main_inner = func():VertexOutput {
+  $B5: {
+    %tint_symbol:ptr<function, VertexOutput, read_write> = var
+    %22:ptr<function, vec4<f32>, read_write> = access %tint_symbol, 0u
+    store %22, vec4<f32>(0.0f)
+    %23:ptr<function, u32, read_write> = access %tint_symbol, 1u
+    %24:u32 = call %textureDimensions_9c7a00
+    store %23, %24
+    %25:VertexOutput = load %tint_symbol
+    ret %25
+  }
+}
+%vertex_main = @vertex func():vertex_main_outputs {
+  $B6: {
+    %27:VertexOutput = call %vertex_main_inner
+    %28:vec4<f32> = access %27, 0u
+    %29:u32 = access %27, 1u
+    %30:vertex_main_outputs = construct %29, %28
+    ret %30
+  }
+}
+
diff --git a/test/tint/builtins/gen/literal/textureDimensions/9c7a00.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/textureDimensions/9c7a00.wgsl.expected.ir.fxc.hlsl
index 1fac62e..56cb944 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/9c7a00.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/9c7a00.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,112 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureDimensions
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : u32;
+
+@group(1) @binding(0) var arg_0 : texture_1d<u32>;
+
+fn textureDimensions_9c7a00() -> u32 {
+  var res : u32 = textureDimensions(arg_0, 1u);
+  return res;
+}
+
+@fragment
+fn fragment_main() {
+  prevent_dce = textureDimensions_9c7a00();
+}
+
+@compute @workgroup_size(1)
+fn compute_main() {
+  prevent_dce = textureDimensions_9c7a00();
+}
+
+struct VertexOutput {
+  @builtin(position)
+  pos : vec4<f32>,
+  @location(0) @interpolate(flat)
+  prevent_dce : u32,
+}
+
+@vertex
+fn vertex_main() -> VertexOutput {
+  var tint_symbol : VertexOutput;
+  tint_symbol.pos = vec4<f32>();
+  tint_symbol.prevent_dce = textureDimensions_9c7a00();
+  return tint_symbol;
+}
+
+Failed to generate: :26:43 error: var: initializer type 'vec2<u32>' does not match store type 'u32'
+    %res:ptr<function, u32, read_write> = var, %11
+                                          ^^^
+
+:17:3 note: in block
+  $B2: {
+  ^^^
+
+note: # Disassembly
+VertexOutput = struct @align(16) {
+  pos:vec4<f32> @offset(0)
+  prevent_dce:u32 @offset(16)
+}
+
+vertex_main_outputs = struct @align(16) {
+  VertexOutput_prevent_dce:u32 @offset(0), @location(0), @interpolate(flat)
+  VertexOutput_pos:vec4<f32> @offset(16), @builtin(position)
+}
+
+$B1: {  # root
+  %prevent_dce:hlsl.byte_address_buffer<read_write> = var @binding_point(0, 0)
+  %arg_0:ptr<handle, texture_1d<u32>, read> = var @binding_point(1, 0)
+}
+
+%textureDimensions_9c7a00 = func():u32 {
+  $B2: {
+    %4:texture_1d<u32> = load %arg_0
+    %5:u32 = convert 1u
+    %6:ptr<function, vec2<u32>, read_write> = var
+    %7:ptr<function, u32, read_write> = access %6, 0u
+    %8:ptr<function, u32, read_write> = access %6, 1u
+    %9:void = %4.GetDimensions %5, %7, %8
+    %10:vec2<u32> = load %6
+    %11:vec2<u32> = swizzle %10, x
+    %res:ptr<function, u32, read_write> = var, %11
+    %13:u32 = load %res
+    ret %13
+  }
+}
+%fragment_main = @fragment func():void {
+  $B3: {
+    %15:u32 = call %textureDimensions_9c7a00
+    %16:void = %prevent_dce.Store 0u, %15
+    ret
+  }
+}
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B4: {
+    %18:u32 = call %textureDimensions_9c7a00
+    %19:void = %prevent_dce.Store 0u, %18
+    ret
+  }
+}
+%vertex_main_inner = func():VertexOutput {
+  $B5: {
+    %tint_symbol:ptr<function, VertexOutput, read_write> = var
+    %22:ptr<function, vec4<f32>, read_write> = access %tint_symbol, 0u
+    store %22, vec4<f32>(0.0f)
+    %23:ptr<function, u32, read_write> = access %tint_symbol, 1u
+    %24:u32 = call %textureDimensions_9c7a00
+    store %23, %24
+    %25:VertexOutput = load %tint_symbol
+    ret %25
+  }
+}
+%vertex_main = @vertex func():vertex_main_outputs {
+  $B6: {
+    %27:VertexOutput = call %vertex_main_inner
+    %28:vec4<f32> = access %27, 0u
+    %29:u32 = access %27, 1u
+    %30:vertex_main_outputs = construct %29, %28
+    ret %30
+  }
+}
+
diff --git a/test/tint/builtins/gen/literal/textureDimensions/9cd4ca.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/textureDimensions/9cd4ca.wgsl.expected.ir.dxc.hlsl
index 1fac62e..11be35d 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/9cd4ca.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/9cd4ca.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,46 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  uint2 prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureDimensions
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation uint2 VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+TextureCube<uint4> arg_0 : register(t0, space1);
+uint2 textureDimensions_9cd4ca() {
+  TextureCube<uint4> v = arg_0;
+  uint3 v_1 = (0u).xxx;
+  v.GetDimensions(uint(1), v_1[0u], v_1[1u], v_1[2u]);
+  uint2 res = v_1.xy;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store2(0u, textureDimensions_9cd4ca());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store2(0u, textureDimensions_9cd4ca());
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = textureDimensions_9cd4ca();
+  VertexOutput v_2 = tint_symbol;
+  return v_2;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_3 = vertex_main_inner();
+  VertexOutput v_4 = v_3;
+  VertexOutput v_5 = v_3;
+  vertex_main_outputs v_6 = {v_5.prevent_dce, v_4.pos};
+  return v_6;
+}
+
diff --git a/test/tint/builtins/gen/literal/textureDimensions/9cd4ca.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/textureDimensions/9cd4ca.wgsl.expected.ir.fxc.hlsl
index 1fac62e..11be35d 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/9cd4ca.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/9cd4ca.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,46 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  uint2 prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureDimensions
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation uint2 VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+TextureCube<uint4> arg_0 : register(t0, space1);
+uint2 textureDimensions_9cd4ca() {
+  TextureCube<uint4> v = arg_0;
+  uint3 v_1 = (0u).xxx;
+  v.GetDimensions(uint(1), v_1[0u], v_1[1u], v_1[2u]);
+  uint2 res = v_1.xy;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store2(0u, textureDimensions_9cd4ca());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store2(0u, textureDimensions_9cd4ca());
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = textureDimensions_9cd4ca();
+  VertexOutput v_2 = tint_symbol;
+  return v_2;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_3 = vertex_main_inner();
+  VertexOutput v_4 = v_3;
+  VertexOutput v_5 = v_3;
+  vertex_main_outputs v_6 = {v_5.prevent_dce, v_4.pos};
+  return v_6;
+}
+
diff --git a/test/tint/builtins/gen/literal/textureDimensions/9cd8ad.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/textureDimensions/9cd8ad.wgsl.expected.ir.dxc.hlsl
index 1fac62e..0f9f75d 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/9cd8ad.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/9cd8ad.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,19 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureDimensions
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWByteAddressBuffer prevent_dce : register(u0);
+RWTexture3D<float4> arg_0 : register(u0, space1);
+uint3 textureDimensions_9cd8ad() {
+  uint3 v = (0u).xxx;
+  arg_0.GetDimensions(v[0u], v[1u], v[2u]);
+  uint3 res = v;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store3(0u, textureDimensions_9cd8ad());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store3(0u, textureDimensions_9cd8ad());
+}
+
diff --git a/test/tint/builtins/gen/literal/textureDimensions/9cd8ad.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/textureDimensions/9cd8ad.wgsl.expected.ir.fxc.hlsl
index 1fac62e..0f9f75d 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/9cd8ad.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/9cd8ad.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,19 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureDimensions
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWByteAddressBuffer prevent_dce : register(u0);
+RWTexture3D<float4> arg_0 : register(u0, space1);
+uint3 textureDimensions_9cd8ad() {
+  uint3 v = (0u).xxx;
+  arg_0.GetDimensions(v[0u], v[1u], v[2u]);
+  uint3 res = v;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store3(0u, textureDimensions_9cd8ad());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store3(0u, textureDimensions_9cd8ad());
+}
+
diff --git a/test/tint/builtins/gen/literal/textureDimensions/9d0bac.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/textureDimensions/9d0bac.wgsl.expected.ir.dxc.hlsl
index 1fac62e..78f2718 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/9d0bac.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/9d0bac.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,45 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  uint2 prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureDimensions
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation uint2 VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+Texture2D<float4> arg_0 : register(t0, space1);
+uint2 textureDimensions_9d0bac() {
+  uint2 v = (0u).xx;
+  arg_0.GetDimensions(v[0u], v[1u]);
+  uint2 res = v;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store2(0u, textureDimensions_9d0bac());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store2(0u, textureDimensions_9d0bac());
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = textureDimensions_9d0bac();
+  VertexOutput v_1 = tint_symbol;
+  return v_1;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_2 = vertex_main_inner();
+  VertexOutput v_3 = v_2;
+  VertexOutput v_4 = v_2;
+  vertex_main_outputs v_5 = {v_4.prevent_dce, v_3.pos};
+  return v_5;
+}
+
diff --git a/test/tint/builtins/gen/literal/textureDimensions/9d0bac.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/textureDimensions/9d0bac.wgsl.expected.ir.fxc.hlsl
index 1fac62e..78f2718 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/9d0bac.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/9d0bac.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,45 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  uint2 prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureDimensions
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation uint2 VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+Texture2D<float4> arg_0 : register(t0, space1);
+uint2 textureDimensions_9d0bac() {
+  uint2 v = (0u).xx;
+  arg_0.GetDimensions(v[0u], v[1u]);
+  uint2 res = v;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store2(0u, textureDimensions_9d0bac());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store2(0u, textureDimensions_9d0bac());
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = textureDimensions_9d0bac();
+  VertexOutput v_1 = tint_symbol;
+  return v_1;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_2 = vertex_main_inner();
+  VertexOutput v_3 = v_2;
+  VertexOutput v_4 = v_2;
+  vertex_main_outputs v_5 = {v_4.prevent_dce, v_3.pos};
+  return v_5;
+}
+
diff --git a/test/tint/builtins/gen/literal/textureDimensions/9d68b8.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/textureDimensions/9d68b8.wgsl.expected.ir.dxc.hlsl
index 1fac62e..78f9566 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/9d68b8.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/9d68b8.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,45 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  uint prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureDimensions
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation uint VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+Texture1D<float4> arg_0 : register(t0, space1);
+uint textureDimensions_9d68b8() {
+  uint v = 0u;
+  arg_0.GetDimensions(v);
+  uint res = v;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store(0u, textureDimensions_9d68b8());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store(0u, textureDimensions_9d68b8());
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = textureDimensions_9d68b8();
+  VertexOutput v_1 = tint_symbol;
+  return v_1;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_2 = vertex_main_inner();
+  VertexOutput v_3 = v_2;
+  VertexOutput v_4 = v_2;
+  vertex_main_outputs v_5 = {v_4.prevent_dce, v_3.pos};
+  return v_5;
+}
+
diff --git a/test/tint/builtins/gen/literal/textureDimensions/9d68b8.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/textureDimensions/9d68b8.wgsl.expected.ir.fxc.hlsl
index 1fac62e..78f9566 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/9d68b8.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/9d68b8.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,45 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  uint prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureDimensions
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation uint VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+Texture1D<float4> arg_0 : register(t0, space1);
+uint textureDimensions_9d68b8() {
+  uint v = 0u;
+  arg_0.GetDimensions(v);
+  uint res = v;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store(0u, textureDimensions_9d68b8());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store(0u, textureDimensions_9d68b8());
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = textureDimensions_9d68b8();
+  VertexOutput v_1 = tint_symbol;
+  return v_1;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_2 = vertex_main_inner();
+  VertexOutput v_3 = v_2;
+  VertexOutput v_4 = v_2;
+  vertex_main_outputs v_5 = {v_4.prevent_dce, v_3.pos};
+  return v_5;
+}
+
diff --git a/test/tint/builtins/gen/literal/textureDimensions/9dc27a.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/textureDimensions/9dc27a.wgsl.expected.ir.dxc.hlsl
index 1fac62e..4f3285b 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/9dc27a.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/9dc27a.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,45 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  uint2 prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureDimensions
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation uint2 VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+Texture2DArray<float4> arg_0 : register(t0, space1);
+uint2 textureDimensions_9dc27a() {
+  uint3 v = (0u).xxx;
+  arg_0.GetDimensions(v[0u], v[1u], v[2u]);
+  uint2 res = v.xy;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store2(0u, textureDimensions_9dc27a());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store2(0u, textureDimensions_9dc27a());
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = textureDimensions_9dc27a();
+  VertexOutput v_1 = tint_symbol;
+  return v_1;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_2 = vertex_main_inner();
+  VertexOutput v_3 = v_2;
+  VertexOutput v_4 = v_2;
+  vertex_main_outputs v_5 = {v_4.prevent_dce, v_3.pos};
+  return v_5;
+}
+
diff --git a/test/tint/builtins/gen/literal/textureDimensions/9dc27a.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/textureDimensions/9dc27a.wgsl.expected.ir.fxc.hlsl
index 1fac62e..4f3285b 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/9dc27a.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/9dc27a.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,45 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  uint2 prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureDimensions
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation uint2 VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+Texture2DArray<float4> arg_0 : register(t0, space1);
+uint2 textureDimensions_9dc27a() {
+  uint3 v = (0u).xxx;
+  arg_0.GetDimensions(v[0u], v[1u], v[2u]);
+  uint2 res = v.xy;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store2(0u, textureDimensions_9dc27a());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store2(0u, textureDimensions_9dc27a());
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = textureDimensions_9dc27a();
+  VertexOutput v_1 = tint_symbol;
+  return v_1;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_2 = vertex_main_inner();
+  VertexOutput v_3 = v_2;
+  VertexOutput v_4 = v_2;
+  vertex_main_outputs v_5 = {v_4.prevent_dce, v_3.pos};
+  return v_5;
+}
+
diff --git a/test/tint/builtins/gen/literal/textureDimensions/9e0794.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/textureDimensions/9e0794.wgsl.expected.ir.dxc.hlsl
index 1fac62e..4ca12fe 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/9e0794.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/9e0794.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,46 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  uint2 prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureDimensions
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation uint2 VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+Texture2DArray<uint4> arg_0 : register(t0, space1);
+uint2 textureDimensions_9e0794() {
+  Texture2DArray<uint4> v = arg_0;
+  uint4 v_1 = (0u).xxxx;
+  v.GetDimensions(uint(1), v_1[0u], v_1[1u], v_1[2u], v_1[3u]);
+  uint2 res = v_1.xy;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store2(0u, textureDimensions_9e0794());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store2(0u, textureDimensions_9e0794());
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = textureDimensions_9e0794();
+  VertexOutput v_2 = tint_symbol;
+  return v_2;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_3 = vertex_main_inner();
+  VertexOutput v_4 = v_3;
+  VertexOutput v_5 = v_3;
+  vertex_main_outputs v_6 = {v_5.prevent_dce, v_4.pos};
+  return v_6;
+}
+
diff --git a/test/tint/builtins/gen/literal/textureDimensions/9e0794.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/textureDimensions/9e0794.wgsl.expected.ir.fxc.hlsl
index 1fac62e..4ca12fe 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/9e0794.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/9e0794.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,46 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  uint2 prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureDimensions
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation uint2 VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+Texture2DArray<uint4> arg_0 : register(t0, space1);
+uint2 textureDimensions_9e0794() {
+  Texture2DArray<uint4> v = arg_0;
+  uint4 v_1 = (0u).xxxx;
+  v.GetDimensions(uint(1), v_1[0u], v_1[1u], v_1[2u], v_1[3u]);
+  uint2 res = v_1.xy;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store2(0u, textureDimensions_9e0794());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store2(0u, textureDimensions_9e0794());
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = textureDimensions_9e0794();
+  VertexOutput v_2 = tint_symbol;
+  return v_2;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_3 = vertex_main_inner();
+  VertexOutput v_4 = v_3;
+  VertexOutput v_5 = v_3;
+  vertex_main_outputs v_6 = {v_5.prevent_dce, v_4.pos};
+  return v_6;
+}
+
diff --git a/test/tint/builtins/gen/literal/textureDimensions/9fcc3b.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/textureDimensions/9fcc3b.wgsl.expected.ir.dxc.hlsl
index 1fac62e..b6f08cc 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/9fcc3b.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/9fcc3b.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,45 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  uint2 prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureDimensions
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation uint2 VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+TextureCubeArray arg_0 : register(t0, space1);
+uint2 textureDimensions_9fcc3b() {
+  uint3 v = (0u).xxx;
+  arg_0.GetDimensions(v[0u], v[1u], v[2u]);
+  uint2 res = v.xy;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store2(0u, textureDimensions_9fcc3b());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store2(0u, textureDimensions_9fcc3b());
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = textureDimensions_9fcc3b();
+  VertexOutput v_1 = tint_symbol;
+  return v_1;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_2 = vertex_main_inner();
+  VertexOutput v_3 = v_2;
+  VertexOutput v_4 = v_2;
+  vertex_main_outputs v_5 = {v_4.prevent_dce, v_3.pos};
+  return v_5;
+}
+
diff --git a/test/tint/builtins/gen/literal/textureDimensions/9fcc3b.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/textureDimensions/9fcc3b.wgsl.expected.ir.fxc.hlsl
index 1fac62e..b6f08cc 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/9fcc3b.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/9fcc3b.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,45 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  uint2 prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureDimensions
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation uint2 VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+TextureCubeArray arg_0 : register(t0, space1);
+uint2 textureDimensions_9fcc3b() {
+  uint3 v = (0u).xxx;
+  arg_0.GetDimensions(v[0u], v[1u], v[2u]);
+  uint2 res = v.xy;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store2(0u, textureDimensions_9fcc3b());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store2(0u, textureDimensions_9fcc3b());
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = textureDimensions_9fcc3b();
+  VertexOutput v_1 = tint_symbol;
+  return v_1;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_2 = vertex_main_inner();
+  VertexOutput v_3 = v_2;
+  VertexOutput v_4 = v_2;
+  vertex_main_outputs v_5 = {v_4.prevent_dce, v_3.pos};
+  return v_5;
+}
+
diff --git a/test/tint/builtins/gen/literal/textureDimensions/a105a5.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/textureDimensions/a105a5.wgsl.expected.ir.dxc.hlsl
index 1fac62e..d0f64b6 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/a105a5.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/a105a5.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,19 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureDimensions
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWByteAddressBuffer prevent_dce : register(u0);
+RWTexture3D<uint4> arg_0 : register(u0, space1);
+uint3 textureDimensions_a105a5() {
+  uint3 v = (0u).xxx;
+  arg_0.GetDimensions(v[0u], v[1u], v[2u]);
+  uint3 res = v;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store3(0u, textureDimensions_a105a5());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store3(0u, textureDimensions_a105a5());
+}
+
diff --git a/test/tint/builtins/gen/literal/textureDimensions/a105a5.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/textureDimensions/a105a5.wgsl.expected.ir.fxc.hlsl
index 1fac62e..d0f64b6 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/a105a5.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/a105a5.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,19 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureDimensions
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWByteAddressBuffer prevent_dce : register(u0);
+RWTexture3D<uint4> arg_0 : register(u0, space1);
+uint3 textureDimensions_a105a5() {
+  uint3 v = (0u).xxx;
+  arg_0.GetDimensions(v[0u], v[1u], v[2u]);
+  uint3 res = v;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store3(0u, textureDimensions_a105a5());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store3(0u, textureDimensions_a105a5());
+}
+
diff --git a/test/tint/builtins/gen/literal/textureDimensions/a14386.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/textureDimensions/a14386.wgsl.expected.ir.dxc.hlsl
index 1fac62e..c9d4718 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/a14386.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/a14386.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,19 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureDimensions
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWByteAddressBuffer prevent_dce : register(u0);
+RWTexture2D<float4> arg_0 : register(u0, space1);
+uint2 textureDimensions_a14386() {
+  uint2 v = (0u).xx;
+  arg_0.GetDimensions(v[0u], v[1u]);
+  uint2 res = v;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store2(0u, textureDimensions_a14386());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store2(0u, textureDimensions_a14386());
+}
+
diff --git a/test/tint/builtins/gen/literal/textureDimensions/a14386.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/textureDimensions/a14386.wgsl.expected.ir.fxc.hlsl
index 1fac62e..c9d4718 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/a14386.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/a14386.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,19 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureDimensions
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWByteAddressBuffer prevent_dce : register(u0);
+RWTexture2D<float4> arg_0 : register(u0, space1);
+uint2 textureDimensions_a14386() {
+  uint2 v = (0u).xx;
+  arg_0.GetDimensions(v[0u], v[1u]);
+  uint2 res = v;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store2(0u, textureDimensions_a14386());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store2(0u, textureDimensions_a14386());
+}
+
diff --git a/test/tint/builtins/gen/literal/textureDimensions/a1598a.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/textureDimensions/a1598a.wgsl.expected.ir.dxc.hlsl
index 1fac62e..b675549 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/a1598a.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/a1598a.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,45 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  uint2 prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureDimensions
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation uint2 VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+TextureCubeArray<uint4> arg_0 : register(t0, space1);
+uint2 textureDimensions_a1598a() {
+  uint3 v = (0u).xxx;
+  arg_0.GetDimensions(v[0u], v[1u], v[2u]);
+  uint2 res = v.xy;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store2(0u, textureDimensions_a1598a());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store2(0u, textureDimensions_a1598a());
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = textureDimensions_a1598a();
+  VertexOutput v_1 = tint_symbol;
+  return v_1;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_2 = vertex_main_inner();
+  VertexOutput v_3 = v_2;
+  VertexOutput v_4 = v_2;
+  vertex_main_outputs v_5 = {v_4.prevent_dce, v_3.pos};
+  return v_5;
+}
+
diff --git a/test/tint/builtins/gen/literal/textureDimensions/a1598a.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/textureDimensions/a1598a.wgsl.expected.ir.fxc.hlsl
index 1fac62e..b675549 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/a1598a.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/a1598a.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,45 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  uint2 prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureDimensions
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation uint2 VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+TextureCubeArray<uint4> arg_0 : register(t0, space1);
+uint2 textureDimensions_a1598a() {
+  uint3 v = (0u).xxx;
+  arg_0.GetDimensions(v[0u], v[1u], v[2u]);
+  uint2 res = v.xy;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store2(0u, textureDimensions_a1598a());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store2(0u, textureDimensions_a1598a());
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = textureDimensions_a1598a();
+  VertexOutput v_1 = tint_symbol;
+  return v_1;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_2 = vertex_main_inner();
+  VertexOutput v_3 = v_2;
+  VertexOutput v_4 = v_2;
+  vertex_main_outputs v_5 = {v_4.prevent_dce, v_3.pos};
+  return v_5;
+}
+
diff --git a/test/tint/builtins/gen/literal/textureDimensions/a20ba2.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/textureDimensions/a20ba2.wgsl.expected.ir.dxc.hlsl
index 1fac62e..23cce53 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/a20ba2.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/a20ba2.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,19 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureDimensions
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWByteAddressBuffer prevent_dce : register(u0);
+RWTexture3D<float4> arg_0 : register(u0, space1);
+uint3 textureDimensions_a20ba2() {
+  uint3 v = (0u).xxx;
+  arg_0.GetDimensions(v[0u], v[1u], v[2u]);
+  uint3 res = v;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store3(0u, textureDimensions_a20ba2());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store3(0u, textureDimensions_a20ba2());
+}
+
diff --git a/test/tint/builtins/gen/literal/textureDimensions/a20ba2.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/textureDimensions/a20ba2.wgsl.expected.ir.fxc.hlsl
index 1fac62e..23cce53 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/a20ba2.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/a20ba2.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,19 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureDimensions
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWByteAddressBuffer prevent_dce : register(u0);
+RWTexture3D<float4> arg_0 : register(u0, space1);
+uint3 textureDimensions_a20ba2() {
+  uint3 v = (0u).xxx;
+  arg_0.GetDimensions(v[0u], v[1u], v[2u]);
+  uint3 res = v;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store3(0u, textureDimensions_a20ba2());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store3(0u, textureDimensions_a20ba2());
+}
+
diff --git a/test/tint/builtins/gen/literal/textureDimensions/a25d9b.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/textureDimensions/a25d9b.wgsl.expected.ir.dxc.hlsl
index 1fac62e..7d8c807 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/a25d9b.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/a25d9b.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,45 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  uint3 prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureDimensions
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation uint3 VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+Texture3D<float4> arg_0 : register(t0, space1);
+uint3 textureDimensions_a25d9b() {
+  uint3 v = (0u).xxx;
+  arg_0.GetDimensions(v[0u], v[1u], v[2u]);
+  uint3 res = v;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store3(0u, textureDimensions_a25d9b());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store3(0u, textureDimensions_a25d9b());
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = textureDimensions_a25d9b();
+  VertexOutput v_1 = tint_symbol;
+  return v_1;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_2 = vertex_main_inner();
+  VertexOutput v_3 = v_2;
+  VertexOutput v_4 = v_2;
+  vertex_main_outputs v_5 = {v_4.prevent_dce, v_3.pos};
+  return v_5;
+}
+
diff --git a/test/tint/builtins/gen/literal/textureDimensions/a25d9b.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/textureDimensions/a25d9b.wgsl.expected.ir.fxc.hlsl
index 1fac62e..7d8c807 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/a25d9b.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/a25d9b.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,45 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  uint3 prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureDimensions
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation uint3 VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+Texture3D<float4> arg_0 : register(t0, space1);
+uint3 textureDimensions_a25d9b() {
+  uint3 v = (0u).xxx;
+  arg_0.GetDimensions(v[0u], v[1u], v[2u]);
+  uint3 res = v;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store3(0u, textureDimensions_a25d9b());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store3(0u, textureDimensions_a25d9b());
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = textureDimensions_a25d9b();
+  VertexOutput v_1 = tint_symbol;
+  return v_1;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_2 = vertex_main_inner();
+  VertexOutput v_3 = v_2;
+  VertexOutput v_4 = v_2;
+  vertex_main_outputs v_5 = {v_4.prevent_dce, v_3.pos};
+  return v_5;
+}
+
diff --git a/test/tint/builtins/gen/literal/textureDimensions/a2ba5e.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/textureDimensions/a2ba5e.wgsl.expected.ir.dxc.hlsl
index 1fac62e..78e4629 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/a2ba5e.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/a2ba5e.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,46 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  uint2 prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureDimensions
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation uint2 VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+TextureCube<int4> arg_0 : register(t0, space1);
+uint2 textureDimensions_a2ba5e() {
+  TextureCube<int4> v = arg_0;
+  uint3 v_1 = (0u).xxx;
+  v.GetDimensions(uint(1), v_1[0u], v_1[1u], v_1[2u]);
+  uint2 res = v_1.xy;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store2(0u, textureDimensions_a2ba5e());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store2(0u, textureDimensions_a2ba5e());
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = textureDimensions_a2ba5e();
+  VertexOutput v_2 = tint_symbol;
+  return v_2;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_3 = vertex_main_inner();
+  VertexOutput v_4 = v_3;
+  VertexOutput v_5 = v_3;
+  vertex_main_outputs v_6 = {v_5.prevent_dce, v_4.pos};
+  return v_6;
+}
+
diff --git a/test/tint/builtins/gen/literal/textureDimensions/a2ba5e.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/textureDimensions/a2ba5e.wgsl.expected.ir.fxc.hlsl
index 1fac62e..78e4629 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/a2ba5e.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/a2ba5e.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,46 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  uint2 prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureDimensions
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation uint2 VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+TextureCube<int4> arg_0 : register(t0, space1);
+uint2 textureDimensions_a2ba5e() {
+  TextureCube<int4> v = arg_0;
+  uint3 v_1 = (0u).xxx;
+  v.GetDimensions(uint(1), v_1[0u], v_1[1u], v_1[2u]);
+  uint2 res = v_1.xy;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store2(0u, textureDimensions_a2ba5e());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store2(0u, textureDimensions_a2ba5e());
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = textureDimensions_a2ba5e();
+  VertexOutput v_2 = tint_symbol;
+  return v_2;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_3 = vertex_main_inner();
+  VertexOutput v_4 = v_3;
+  VertexOutput v_5 = v_3;
+  vertex_main_outputs v_6 = {v_5.prevent_dce, v_4.pos};
+  return v_6;
+}
+
diff --git a/test/tint/builtins/gen/literal/textureDimensions/a3ea91.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/textureDimensions/a3ea91.wgsl.expected.ir.dxc.hlsl
index 1fac62e..deda8d3 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/a3ea91.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/a3ea91.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,45 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  uint3 prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureDimensions
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation uint3 VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+Texture3D<float4> arg_0 : register(t0, space1);
+uint3 textureDimensions_a3ea91() {
+  uint3 v = (0u).xxx;
+  arg_0.GetDimensions(v[0u], v[1u], v[2u]);
+  uint3 res = v;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store3(0u, textureDimensions_a3ea91());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store3(0u, textureDimensions_a3ea91());
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = textureDimensions_a3ea91();
+  VertexOutput v_1 = tint_symbol;
+  return v_1;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_2 = vertex_main_inner();
+  VertexOutput v_3 = v_2;
+  VertexOutput v_4 = v_2;
+  vertex_main_outputs v_5 = {v_4.prevent_dce, v_3.pos};
+  return v_5;
+}
+
diff --git a/test/tint/builtins/gen/literal/textureDimensions/a3ea91.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/textureDimensions/a3ea91.wgsl.expected.ir.fxc.hlsl
index 1fac62e..deda8d3 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/a3ea91.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/a3ea91.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,45 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  uint3 prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureDimensions
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation uint3 VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+Texture3D<float4> arg_0 : register(t0, space1);
+uint3 textureDimensions_a3ea91() {
+  uint3 v = (0u).xxx;
+  arg_0.GetDimensions(v[0u], v[1u], v[2u]);
+  uint3 res = v;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store3(0u, textureDimensions_a3ea91());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store3(0u, textureDimensions_a3ea91());
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = textureDimensions_a3ea91();
+  VertexOutput v_1 = tint_symbol;
+  return v_1;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_2 = vertex_main_inner();
+  VertexOutput v_3 = v_2;
+  VertexOutput v_4 = v_2;
+  vertex_main_outputs v_5 = {v_4.prevent_dce, v_3.pos};
+  return v_5;
+}
+
diff --git a/test/tint/builtins/gen/literal/textureDimensions/a48049.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/textureDimensions/a48049.wgsl.expected.ir.dxc.hlsl
index 1fac62e..0186411 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/a48049.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/a48049.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,46 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  uint2 prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureDimensions
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation uint2 VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+Texture2D<int4> arg_0 : register(t0, space1);
+uint2 textureDimensions_a48049() {
+  Texture2D<int4> v = arg_0;
+  uint3 v_1 = (0u).xxx;
+  v.GetDimensions(uint(1u), v_1[0u], v_1[1u], v_1[2u]);
+  uint2 res = v_1.xy;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store2(0u, textureDimensions_a48049());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store2(0u, textureDimensions_a48049());
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = textureDimensions_a48049();
+  VertexOutput v_2 = tint_symbol;
+  return v_2;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_3 = vertex_main_inner();
+  VertexOutput v_4 = v_3;
+  VertexOutput v_5 = v_3;
+  vertex_main_outputs v_6 = {v_5.prevent_dce, v_4.pos};
+  return v_6;
+}
+
diff --git a/test/tint/builtins/gen/literal/textureDimensions/a48049.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/textureDimensions/a48049.wgsl.expected.ir.fxc.hlsl
index 1fac62e..0186411 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/a48049.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/a48049.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,46 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  uint2 prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureDimensions
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation uint2 VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+Texture2D<int4> arg_0 : register(t0, space1);
+uint2 textureDimensions_a48049() {
+  Texture2D<int4> v = arg_0;
+  uint3 v_1 = (0u).xxx;
+  v.GetDimensions(uint(1u), v_1[0u], v_1[1u], v_1[2u]);
+  uint2 res = v_1.xy;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store2(0u, textureDimensions_a48049());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store2(0u, textureDimensions_a48049());
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = textureDimensions_a48049();
+  VertexOutput v_2 = tint_symbol;
+  return v_2;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_3 = vertex_main_inner();
+  VertexOutput v_4 = v_3;
+  VertexOutput v_5 = v_3;
+  vertex_main_outputs v_6 = {v_5.prevent_dce, v_4.pos};
+  return v_6;
+}
+
diff --git a/test/tint/builtins/gen/literal/textureDimensions/a4cd56.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/textureDimensions/a4cd56.wgsl.expected.ir.dxc.hlsl
index 1fac62e..d44af22 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/a4cd56.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/a4cd56.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,45 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  uint2 prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureDimensions
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation uint2 VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+Texture2DArray arg_0 : register(t0, space1);
+uint2 textureDimensions_a4cd56() {
+  uint3 v = (0u).xxx;
+  arg_0.GetDimensions(v[0u], v[1u], v[2u]);
+  uint2 res = v.xy;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store2(0u, textureDimensions_a4cd56());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store2(0u, textureDimensions_a4cd56());
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = textureDimensions_a4cd56();
+  VertexOutput v_1 = tint_symbol;
+  return v_1;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_2 = vertex_main_inner();
+  VertexOutput v_3 = v_2;
+  VertexOutput v_4 = v_2;
+  vertex_main_outputs v_5 = {v_4.prevent_dce, v_3.pos};
+  return v_5;
+}
+
diff --git a/test/tint/builtins/gen/literal/textureDimensions/a4cd56.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/textureDimensions/a4cd56.wgsl.expected.ir.fxc.hlsl
index 1fac62e..d44af22 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/a4cd56.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/a4cd56.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,45 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  uint2 prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureDimensions
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation uint2 VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+Texture2DArray arg_0 : register(t0, space1);
+uint2 textureDimensions_a4cd56() {
+  uint3 v = (0u).xxx;
+  arg_0.GetDimensions(v[0u], v[1u], v[2u]);
+  uint2 res = v.xy;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store2(0u, textureDimensions_a4cd56());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store2(0u, textureDimensions_a4cd56());
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = textureDimensions_a4cd56();
+  VertexOutput v_1 = tint_symbol;
+  return v_1;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_2 = vertex_main_inner();
+  VertexOutput v_3 = v_2;
+  VertexOutput v_4 = v_2;
+  vertex_main_outputs v_5 = {v_4.prevent_dce, v_3.pos};
+  return v_5;
+}
+
diff --git a/test/tint/builtins/gen/literal/textureDimensions/a65776.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/textureDimensions/a65776.wgsl.expected.ir.dxc.hlsl
index 1fac62e..6df2dd1 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/a65776.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/a65776.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,45 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  uint2 prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureDimensions
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation uint2 VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+Texture2D<int4> arg_0 : register(t0, space1);
+uint2 textureDimensions_a65776() {
+  uint2 v = (0u).xx;
+  arg_0.GetDimensions(v[0u], v[1u]);
+  uint2 res = v;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store2(0u, textureDimensions_a65776());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store2(0u, textureDimensions_a65776());
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = textureDimensions_a65776();
+  VertexOutput v_1 = tint_symbol;
+  return v_1;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_2 = vertex_main_inner();
+  VertexOutput v_3 = v_2;
+  VertexOutput v_4 = v_2;
+  vertex_main_outputs v_5 = {v_4.prevent_dce, v_3.pos};
+  return v_5;
+}
+
diff --git a/test/tint/builtins/gen/literal/textureDimensions/a65776.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/textureDimensions/a65776.wgsl.expected.ir.fxc.hlsl
index 1fac62e..6df2dd1 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/a65776.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/a65776.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,45 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  uint2 prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureDimensions
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation uint2 VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+Texture2D<int4> arg_0 : register(t0, space1);
+uint2 textureDimensions_a65776() {
+  uint2 v = (0u).xx;
+  arg_0.GetDimensions(v[0u], v[1u]);
+  uint2 res = v;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store2(0u, textureDimensions_a65776());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store2(0u, textureDimensions_a65776());
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = textureDimensions_a65776();
+  VertexOutput v_1 = tint_symbol;
+  return v_1;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_2 = vertex_main_inner();
+  VertexOutput v_3 = v_2;
+  VertexOutput v_4 = v_2;
+  vertex_main_outputs v_5 = {v_4.prevent_dce, v_3.pos};
+  return v_5;
+}
+
diff --git a/test/tint/builtins/gen/literal/textureDimensions/a7ae4c.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/textureDimensions/a7ae4c.wgsl.expected.ir.dxc.hlsl
index 1fac62e..d813971 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/a7ae4c.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/a7ae4c.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,19 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureDimensions
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWByteAddressBuffer prevent_dce : register(u0);
+RWTexture1D<float4> arg_0 : register(u0, space1);
+uint textureDimensions_a7ae4c() {
+  uint v = 0u;
+  arg_0.GetDimensions(v);
+  uint res = v;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store(0u, textureDimensions_a7ae4c());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store(0u, textureDimensions_a7ae4c());
+}
+
diff --git a/test/tint/builtins/gen/literal/textureDimensions/a7ae4c.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/textureDimensions/a7ae4c.wgsl.expected.ir.fxc.hlsl
index 1fac62e..d813971 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/a7ae4c.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/a7ae4c.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,19 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureDimensions
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWByteAddressBuffer prevent_dce : register(u0);
+RWTexture1D<float4> arg_0 : register(u0, space1);
+uint textureDimensions_a7ae4c() {
+  uint v = 0u;
+  arg_0.GetDimensions(v);
+  uint res = v;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store(0u, textureDimensions_a7ae4c());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store(0u, textureDimensions_a7ae4c());
+}
+
diff --git a/test/tint/builtins/gen/literal/textureDimensions/aa4353.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/textureDimensions/aa4353.wgsl.expected.ir.dxc.hlsl
index 1fac62e..d02454f 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/aa4353.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/aa4353.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,19 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureDimensions
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWByteAddressBuffer prevent_dce : register(u0);
+RWTexture2D<int4> arg_0 : register(u0, space1);
+uint2 textureDimensions_aa4353() {
+  uint2 v = (0u).xx;
+  arg_0.GetDimensions(v[0u], v[1u]);
+  uint2 res = v;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store2(0u, textureDimensions_aa4353());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store2(0u, textureDimensions_aa4353());
+}
+
diff --git a/test/tint/builtins/gen/literal/textureDimensions/aa4353.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/textureDimensions/aa4353.wgsl.expected.ir.fxc.hlsl
index 1fac62e..d02454f 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/aa4353.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/aa4353.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,19 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureDimensions
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWByteAddressBuffer prevent_dce : register(u0);
+RWTexture2D<int4> arg_0 : register(u0, space1);
+uint2 textureDimensions_aa4353() {
+  uint2 v = (0u).xx;
+  arg_0.GetDimensions(v[0u], v[1u]);
+  uint2 res = v;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store2(0u, textureDimensions_aa4353());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store2(0u, textureDimensions_aa4353());
+}
+
diff --git a/test/tint/builtins/gen/literal/textureDimensions/aac604.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/textureDimensions/aac604.wgsl.expected.ir.dxc.hlsl
index 1fac62e..d507c22 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/aac604.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/aac604.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,112 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureDimensions
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : u32;
+
+@group(1) @binding(0) var arg_0 : texture_1d<f32>;
+
+fn textureDimensions_aac604() -> u32 {
+  var res : u32 = textureDimensions(arg_0, 1u);
+  return res;
+}
+
+@fragment
+fn fragment_main() {
+  prevent_dce = textureDimensions_aac604();
+}
+
+@compute @workgroup_size(1)
+fn compute_main() {
+  prevent_dce = textureDimensions_aac604();
+}
+
+struct VertexOutput {
+  @builtin(position)
+  pos : vec4<f32>,
+  @location(0) @interpolate(flat)
+  prevent_dce : u32,
+}
+
+@vertex
+fn vertex_main() -> VertexOutput {
+  var tint_symbol : VertexOutput;
+  tint_symbol.pos = vec4<f32>();
+  tint_symbol.prevent_dce = textureDimensions_aac604();
+  return tint_symbol;
+}
+
+Failed to generate: :26:43 error: var: initializer type 'vec2<u32>' does not match store type 'u32'
+    %res:ptr<function, u32, read_write> = var, %11
+                                          ^^^
+
+:17:3 note: in block
+  $B2: {
+  ^^^
+
+note: # Disassembly
+VertexOutput = struct @align(16) {
+  pos:vec4<f32> @offset(0)
+  prevent_dce:u32 @offset(16)
+}
+
+vertex_main_outputs = struct @align(16) {
+  VertexOutput_prevent_dce:u32 @offset(0), @location(0), @interpolate(flat)
+  VertexOutput_pos:vec4<f32> @offset(16), @builtin(position)
+}
+
+$B1: {  # root
+  %prevent_dce:hlsl.byte_address_buffer<read_write> = var @binding_point(0, 0)
+  %arg_0:ptr<handle, texture_1d<f32>, read> = var @binding_point(1, 0)
+}
+
+%textureDimensions_aac604 = func():u32 {
+  $B2: {
+    %4:texture_1d<f32> = load %arg_0
+    %5:u32 = convert 1u
+    %6:ptr<function, vec2<u32>, read_write> = var
+    %7:ptr<function, u32, read_write> = access %6, 0u
+    %8:ptr<function, u32, read_write> = access %6, 1u
+    %9:void = %4.GetDimensions %5, %7, %8
+    %10:vec2<u32> = load %6
+    %11:vec2<u32> = swizzle %10, x
+    %res:ptr<function, u32, read_write> = var, %11
+    %13:u32 = load %res
+    ret %13
+  }
+}
+%fragment_main = @fragment func():void {
+  $B3: {
+    %15:u32 = call %textureDimensions_aac604
+    %16:void = %prevent_dce.Store 0u, %15
+    ret
+  }
+}
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B4: {
+    %18:u32 = call %textureDimensions_aac604
+    %19:void = %prevent_dce.Store 0u, %18
+    ret
+  }
+}
+%vertex_main_inner = func():VertexOutput {
+  $B5: {
+    %tint_symbol:ptr<function, VertexOutput, read_write> = var
+    %22:ptr<function, vec4<f32>, read_write> = access %tint_symbol, 0u
+    store %22, vec4<f32>(0.0f)
+    %23:ptr<function, u32, read_write> = access %tint_symbol, 1u
+    %24:u32 = call %textureDimensions_aac604
+    store %23, %24
+    %25:VertexOutput = load %tint_symbol
+    ret %25
+  }
+}
+%vertex_main = @vertex func():vertex_main_outputs {
+  $B6: {
+    %27:VertexOutput = call %vertex_main_inner
+    %28:vec4<f32> = access %27, 0u
+    %29:u32 = access %27, 1u
+    %30:vertex_main_outputs = construct %29, %28
+    ret %30
+  }
+}
+
diff --git a/test/tint/builtins/gen/literal/textureDimensions/aac604.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/textureDimensions/aac604.wgsl.expected.ir.fxc.hlsl
index 1fac62e..d507c22 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/aac604.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/aac604.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,112 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureDimensions
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : u32;
+
+@group(1) @binding(0) var arg_0 : texture_1d<f32>;
+
+fn textureDimensions_aac604() -> u32 {
+  var res : u32 = textureDimensions(arg_0, 1u);
+  return res;
+}
+
+@fragment
+fn fragment_main() {
+  prevent_dce = textureDimensions_aac604();
+}
+
+@compute @workgroup_size(1)
+fn compute_main() {
+  prevent_dce = textureDimensions_aac604();
+}
+
+struct VertexOutput {
+  @builtin(position)
+  pos : vec4<f32>,
+  @location(0) @interpolate(flat)
+  prevent_dce : u32,
+}
+
+@vertex
+fn vertex_main() -> VertexOutput {
+  var tint_symbol : VertexOutput;
+  tint_symbol.pos = vec4<f32>();
+  tint_symbol.prevent_dce = textureDimensions_aac604();
+  return tint_symbol;
+}
+
+Failed to generate: :26:43 error: var: initializer type 'vec2<u32>' does not match store type 'u32'
+    %res:ptr<function, u32, read_write> = var, %11
+                                          ^^^
+
+:17:3 note: in block
+  $B2: {
+  ^^^
+
+note: # Disassembly
+VertexOutput = struct @align(16) {
+  pos:vec4<f32> @offset(0)
+  prevent_dce:u32 @offset(16)
+}
+
+vertex_main_outputs = struct @align(16) {
+  VertexOutput_prevent_dce:u32 @offset(0), @location(0), @interpolate(flat)
+  VertexOutput_pos:vec4<f32> @offset(16), @builtin(position)
+}
+
+$B1: {  # root
+  %prevent_dce:hlsl.byte_address_buffer<read_write> = var @binding_point(0, 0)
+  %arg_0:ptr<handle, texture_1d<f32>, read> = var @binding_point(1, 0)
+}
+
+%textureDimensions_aac604 = func():u32 {
+  $B2: {
+    %4:texture_1d<f32> = load %arg_0
+    %5:u32 = convert 1u
+    %6:ptr<function, vec2<u32>, read_write> = var
+    %7:ptr<function, u32, read_write> = access %6, 0u
+    %8:ptr<function, u32, read_write> = access %6, 1u
+    %9:void = %4.GetDimensions %5, %7, %8
+    %10:vec2<u32> = load %6
+    %11:vec2<u32> = swizzle %10, x
+    %res:ptr<function, u32, read_write> = var, %11
+    %13:u32 = load %res
+    ret %13
+  }
+}
+%fragment_main = @fragment func():void {
+  $B3: {
+    %15:u32 = call %textureDimensions_aac604
+    %16:void = %prevent_dce.Store 0u, %15
+    ret
+  }
+}
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B4: {
+    %18:u32 = call %textureDimensions_aac604
+    %19:void = %prevent_dce.Store 0u, %18
+    ret
+  }
+}
+%vertex_main_inner = func():VertexOutput {
+  $B5: {
+    %tint_symbol:ptr<function, VertexOutput, read_write> = var
+    %22:ptr<function, vec4<f32>, read_write> = access %tint_symbol, 0u
+    store %22, vec4<f32>(0.0f)
+    %23:ptr<function, u32, read_write> = access %tint_symbol, 1u
+    %24:u32 = call %textureDimensions_aac604
+    store %23, %24
+    %25:VertexOutput = load %tint_symbol
+    ret %25
+  }
+}
+%vertex_main = @vertex func():vertex_main_outputs {
+  $B6: {
+    %27:VertexOutput = call %vertex_main_inner
+    %28:vec4<f32> = access %27, 0u
+    %29:u32 = access %27, 1u
+    %30:vertex_main_outputs = construct %29, %28
+    ret %30
+  }
+}
+
diff --git a/test/tint/builtins/gen/literal/textureDimensions/ad7d3b.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/textureDimensions/ad7d3b.wgsl.expected.ir.dxc.hlsl
index 1fac62e..aa8ab8c 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/ad7d3b.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/ad7d3b.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,19 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureDimensions
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWByteAddressBuffer prevent_dce : register(u0);
+RWTexture1D<uint4> arg_0 : register(u0, space1);
+uint textureDimensions_ad7d3b() {
+  uint v = 0u;
+  arg_0.GetDimensions(v);
+  uint res = v;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store(0u, textureDimensions_ad7d3b());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store(0u, textureDimensions_ad7d3b());
+}
+
diff --git a/test/tint/builtins/gen/literal/textureDimensions/ad7d3b.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/textureDimensions/ad7d3b.wgsl.expected.ir.fxc.hlsl
index 1fac62e..aa8ab8c 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/ad7d3b.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/ad7d3b.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,19 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureDimensions
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWByteAddressBuffer prevent_dce : register(u0);
+RWTexture1D<uint4> arg_0 : register(u0, space1);
+uint textureDimensions_ad7d3b() {
+  uint v = 0u;
+  arg_0.GetDimensions(v);
+  uint res = v;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store(0u, textureDimensions_ad7d3b());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store(0u, textureDimensions_ad7d3b());
+}
+
diff --git a/test/tint/builtins/gen/literal/textureDimensions/ae4595.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/textureDimensions/ae4595.wgsl.expected.ir.dxc.hlsl
index 1fac62e..86b2123 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/ae4595.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/ae4595.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,19 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureDimensions
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWByteAddressBuffer prevent_dce : register(u0);
+RWTexture3D<float4> arg_0 : register(u0, space1);
+uint3 textureDimensions_ae4595() {
+  uint3 v = (0u).xxx;
+  arg_0.GetDimensions(v[0u], v[1u], v[2u]);
+  uint3 res = v;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store3(0u, textureDimensions_ae4595());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store3(0u, textureDimensions_ae4595());
+}
+
diff --git a/test/tint/builtins/gen/literal/textureDimensions/ae4595.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/textureDimensions/ae4595.wgsl.expected.ir.fxc.hlsl
index 1fac62e..86b2123 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/ae4595.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/ae4595.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,19 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureDimensions
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWByteAddressBuffer prevent_dce : register(u0);
+RWTexture3D<float4> arg_0 : register(u0, space1);
+uint3 textureDimensions_ae4595() {
+  uint3 v = (0u).xxx;
+  arg_0.GetDimensions(v[0u], v[1u], v[2u]);
+  uint3 res = v;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store3(0u, textureDimensions_ae4595());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store3(0u, textureDimensions_ae4595());
+}
+
diff --git a/test/tint/builtins/gen/literal/textureDimensions/ae75a7.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/textureDimensions/ae75a7.wgsl.expected.ir.dxc.hlsl
index 1fac62e..1a95822 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/ae75a7.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/ae75a7.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,19 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureDimensions
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWByteAddressBuffer prevent_dce : register(u0);
+RWTexture1D<uint4> arg_0 : register(u0, space1);
+uint textureDimensions_ae75a7() {
+  uint v = 0u;
+  arg_0.GetDimensions(v);
+  uint res = v;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store(0u, textureDimensions_ae75a7());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store(0u, textureDimensions_ae75a7());
+}
+
diff --git a/test/tint/builtins/gen/literal/textureDimensions/ae75a7.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/textureDimensions/ae75a7.wgsl.expected.ir.fxc.hlsl
index 1fac62e..1a95822 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/ae75a7.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/ae75a7.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,19 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureDimensions
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWByteAddressBuffer prevent_dce : register(u0);
+RWTexture1D<uint4> arg_0 : register(u0, space1);
+uint textureDimensions_ae75a7() {
+  uint v = 0u;
+  arg_0.GetDimensions(v);
+  uint res = v;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store(0u, textureDimensions_ae75a7());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store(0u, textureDimensions_ae75a7());
+}
+
diff --git a/test/tint/builtins/gen/literal/textureDimensions/af46ab.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/textureDimensions/af46ab.wgsl.expected.ir.dxc.hlsl
index 1fac62e..6f40fa5 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/af46ab.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/af46ab.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,19 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureDimensions
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWByteAddressBuffer prevent_dce : register(u0);
+RWTexture2DArray<int4> arg_0 : register(u0, space1);
+uint2 textureDimensions_af46ab() {
+  uint3 v = (0u).xxx;
+  arg_0.GetDimensions(v[0u], v[1u], v[2u]);
+  uint2 res = v.xy;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store2(0u, textureDimensions_af46ab());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store2(0u, textureDimensions_af46ab());
+}
+
diff --git a/test/tint/builtins/gen/literal/textureDimensions/af46ab.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/textureDimensions/af46ab.wgsl.expected.ir.fxc.hlsl
index 1fac62e..6f40fa5 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/af46ab.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/af46ab.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,19 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureDimensions
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWByteAddressBuffer prevent_dce : register(u0);
+RWTexture2DArray<int4> arg_0 : register(u0, space1);
+uint2 textureDimensions_af46ab() {
+  uint3 v = (0u).xxx;
+  arg_0.GetDimensions(v[0u], v[1u], v[2u]);
+  uint2 res = v.xy;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store2(0u, textureDimensions_af46ab());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store2(0u, textureDimensions_af46ab());
+}
+
diff --git a/test/tint/builtins/gen/literal/textureDimensions/b16352.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/textureDimensions/b16352.wgsl.expected.ir.dxc.hlsl
index 1fac62e..68d1d16 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/b16352.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/b16352.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,19 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureDimensions
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWByteAddressBuffer prevent_dce : register(u0);
+RWTexture2D<int4> arg_0 : register(u0, space1);
+uint2 textureDimensions_b16352() {
+  uint2 v = (0u).xx;
+  arg_0.GetDimensions(v[0u], v[1u]);
+  uint2 res = v;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store2(0u, textureDimensions_b16352());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store2(0u, textureDimensions_b16352());
+}
+
diff --git a/test/tint/builtins/gen/literal/textureDimensions/b16352.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/textureDimensions/b16352.wgsl.expected.ir.fxc.hlsl
index 1fac62e..68d1d16 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/b16352.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/b16352.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,19 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureDimensions
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWByteAddressBuffer prevent_dce : register(u0);
+RWTexture2D<int4> arg_0 : register(u0, space1);
+uint2 textureDimensions_b16352() {
+  uint2 v = (0u).xx;
+  arg_0.GetDimensions(v[0u], v[1u]);
+  uint2 res = v;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store2(0u, textureDimensions_b16352());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store2(0u, textureDimensions_b16352());
+}
+
diff --git a/test/tint/builtins/gen/literal/textureDimensions/b284b8.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/textureDimensions/b284b8.wgsl.expected.ir.dxc.hlsl
index 1fac62e..dffd20cc 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/b284b8.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/b284b8.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,19 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureDimensions
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWByteAddressBuffer prevent_dce : register(u0);
+RWTexture2D<int4> arg_0 : register(u0, space1);
+uint2 textureDimensions_b284b8() {
+  uint2 v = (0u).xx;
+  arg_0.GetDimensions(v[0u], v[1u]);
+  uint2 res = v;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store2(0u, textureDimensions_b284b8());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store2(0u, textureDimensions_b284b8());
+}
+
diff --git a/test/tint/builtins/gen/literal/textureDimensions/b284b8.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/textureDimensions/b284b8.wgsl.expected.ir.fxc.hlsl
index 1fac62e..dffd20cc 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/b284b8.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/b284b8.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,19 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureDimensions
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWByteAddressBuffer prevent_dce : register(u0);
+RWTexture2D<int4> arg_0 : register(u0, space1);
+uint2 textureDimensions_b284b8() {
+  uint2 v = (0u).xx;
+  arg_0.GetDimensions(v[0u], v[1u]);
+  uint2 res = v;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store2(0u, textureDimensions_b284b8());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store2(0u, textureDimensions_b284b8());
+}
+
diff --git a/test/tint/builtins/gen/literal/textureDimensions/b3ab5e.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/textureDimensions/b3ab5e.wgsl.expected.ir.dxc.hlsl
index 1fac62e..0fb23e2 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/b3ab5e.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/b3ab5e.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,46 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  uint2 prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureDimensions
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation uint2 VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+TextureCubeArray<float4> arg_0 : register(t0, space1);
+uint2 textureDimensions_b3ab5e() {
+  TextureCubeArray<float4> v = arg_0;
+  uint4 v_1 = (0u).xxxx;
+  v.GetDimensions(uint(1), v_1[0u], v_1[1u], v_1[2u], v_1[3u]);
+  uint2 res = v_1.xy;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store2(0u, textureDimensions_b3ab5e());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store2(0u, textureDimensions_b3ab5e());
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = textureDimensions_b3ab5e();
+  VertexOutput v_2 = tint_symbol;
+  return v_2;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_3 = vertex_main_inner();
+  VertexOutput v_4 = v_3;
+  VertexOutput v_5 = v_3;
+  vertex_main_outputs v_6 = {v_5.prevent_dce, v_4.pos};
+  return v_6;
+}
+
diff --git a/test/tint/builtins/gen/literal/textureDimensions/b3ab5e.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/textureDimensions/b3ab5e.wgsl.expected.ir.fxc.hlsl
index 1fac62e..0fb23e2 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/b3ab5e.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/b3ab5e.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,46 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  uint2 prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureDimensions
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation uint2 VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+TextureCubeArray<float4> arg_0 : register(t0, space1);
+uint2 textureDimensions_b3ab5e() {
+  TextureCubeArray<float4> v = arg_0;
+  uint4 v_1 = (0u).xxxx;
+  v.GetDimensions(uint(1), v_1[0u], v_1[1u], v_1[2u], v_1[3u]);
+  uint2 res = v_1.xy;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store2(0u, textureDimensions_b3ab5e());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store2(0u, textureDimensions_b3ab5e());
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = textureDimensions_b3ab5e();
+  VertexOutput v_2 = tint_symbol;
+  return v_2;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_3 = vertex_main_inner();
+  VertexOutput v_4 = v_3;
+  VertexOutput v_5 = v_3;
+  vertex_main_outputs v_6 = {v_5.prevent_dce, v_4.pos};
+  return v_6;
+}
+
diff --git a/test/tint/builtins/gen/literal/textureDimensions/b46d97.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/textureDimensions/b46d97.wgsl.expected.ir.dxc.hlsl
index 1fac62e..5516a3d 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/b46d97.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/b46d97.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,112 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureDimensions
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : u32;
+
+@group(1) @binding(0) var arg_0 : texture_1d<i32>;
+
+fn textureDimensions_b46d97() -> u32 {
+  var res : u32 = textureDimensions(arg_0, 1i);
+  return res;
+}
+
+@fragment
+fn fragment_main() {
+  prevent_dce = textureDimensions_b46d97();
+}
+
+@compute @workgroup_size(1)
+fn compute_main() {
+  prevent_dce = textureDimensions_b46d97();
+}
+
+struct VertexOutput {
+  @builtin(position)
+  pos : vec4<f32>,
+  @location(0) @interpolate(flat)
+  prevent_dce : u32,
+}
+
+@vertex
+fn vertex_main() -> VertexOutput {
+  var tint_symbol : VertexOutput;
+  tint_symbol.pos = vec4<f32>();
+  tint_symbol.prevent_dce = textureDimensions_b46d97();
+  return tint_symbol;
+}
+
+Failed to generate: :26:43 error: var: initializer type 'vec2<u32>' does not match store type 'u32'
+    %res:ptr<function, u32, read_write> = var, %11
+                                          ^^^
+
+:17:3 note: in block
+  $B2: {
+  ^^^
+
+note: # Disassembly
+VertexOutput = struct @align(16) {
+  pos:vec4<f32> @offset(0)
+  prevent_dce:u32 @offset(16)
+}
+
+vertex_main_outputs = struct @align(16) {
+  VertexOutput_prevent_dce:u32 @offset(0), @location(0), @interpolate(flat)
+  VertexOutput_pos:vec4<f32> @offset(16), @builtin(position)
+}
+
+$B1: {  # root
+  %prevent_dce:hlsl.byte_address_buffer<read_write> = var @binding_point(0, 0)
+  %arg_0:ptr<handle, texture_1d<i32>, read> = var @binding_point(1, 0)
+}
+
+%textureDimensions_b46d97 = func():u32 {
+  $B2: {
+    %4:texture_1d<i32> = load %arg_0
+    %5:u32 = convert 1i
+    %6:ptr<function, vec2<u32>, read_write> = var
+    %7:ptr<function, u32, read_write> = access %6, 0u
+    %8:ptr<function, u32, read_write> = access %6, 1u
+    %9:void = %4.GetDimensions %5, %7, %8
+    %10:vec2<u32> = load %6
+    %11:vec2<u32> = swizzle %10, x
+    %res:ptr<function, u32, read_write> = var, %11
+    %13:u32 = load %res
+    ret %13
+  }
+}
+%fragment_main = @fragment func():void {
+  $B3: {
+    %15:u32 = call %textureDimensions_b46d97
+    %16:void = %prevent_dce.Store 0u, %15
+    ret
+  }
+}
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B4: {
+    %18:u32 = call %textureDimensions_b46d97
+    %19:void = %prevent_dce.Store 0u, %18
+    ret
+  }
+}
+%vertex_main_inner = func():VertexOutput {
+  $B5: {
+    %tint_symbol:ptr<function, VertexOutput, read_write> = var
+    %22:ptr<function, vec4<f32>, read_write> = access %tint_symbol, 0u
+    store %22, vec4<f32>(0.0f)
+    %23:ptr<function, u32, read_write> = access %tint_symbol, 1u
+    %24:u32 = call %textureDimensions_b46d97
+    store %23, %24
+    %25:VertexOutput = load %tint_symbol
+    ret %25
+  }
+}
+%vertex_main = @vertex func():vertex_main_outputs {
+  $B6: {
+    %27:VertexOutput = call %vertex_main_inner
+    %28:vec4<f32> = access %27, 0u
+    %29:u32 = access %27, 1u
+    %30:vertex_main_outputs = construct %29, %28
+    ret %30
+  }
+}
+
diff --git a/test/tint/builtins/gen/literal/textureDimensions/b46d97.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/textureDimensions/b46d97.wgsl.expected.ir.fxc.hlsl
index 1fac62e..5516a3d 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/b46d97.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/b46d97.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,112 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureDimensions
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : u32;
+
+@group(1) @binding(0) var arg_0 : texture_1d<i32>;
+
+fn textureDimensions_b46d97() -> u32 {
+  var res : u32 = textureDimensions(arg_0, 1i);
+  return res;
+}
+
+@fragment
+fn fragment_main() {
+  prevent_dce = textureDimensions_b46d97();
+}
+
+@compute @workgroup_size(1)
+fn compute_main() {
+  prevent_dce = textureDimensions_b46d97();
+}
+
+struct VertexOutput {
+  @builtin(position)
+  pos : vec4<f32>,
+  @location(0) @interpolate(flat)
+  prevent_dce : u32,
+}
+
+@vertex
+fn vertex_main() -> VertexOutput {
+  var tint_symbol : VertexOutput;
+  tint_symbol.pos = vec4<f32>();
+  tint_symbol.prevent_dce = textureDimensions_b46d97();
+  return tint_symbol;
+}
+
+Failed to generate: :26:43 error: var: initializer type 'vec2<u32>' does not match store type 'u32'
+    %res:ptr<function, u32, read_write> = var, %11
+                                          ^^^
+
+:17:3 note: in block
+  $B2: {
+  ^^^
+
+note: # Disassembly
+VertexOutput = struct @align(16) {
+  pos:vec4<f32> @offset(0)
+  prevent_dce:u32 @offset(16)
+}
+
+vertex_main_outputs = struct @align(16) {
+  VertexOutput_prevent_dce:u32 @offset(0), @location(0), @interpolate(flat)
+  VertexOutput_pos:vec4<f32> @offset(16), @builtin(position)
+}
+
+$B1: {  # root
+  %prevent_dce:hlsl.byte_address_buffer<read_write> = var @binding_point(0, 0)
+  %arg_0:ptr<handle, texture_1d<i32>, read> = var @binding_point(1, 0)
+}
+
+%textureDimensions_b46d97 = func():u32 {
+  $B2: {
+    %4:texture_1d<i32> = load %arg_0
+    %5:u32 = convert 1i
+    %6:ptr<function, vec2<u32>, read_write> = var
+    %7:ptr<function, u32, read_write> = access %6, 0u
+    %8:ptr<function, u32, read_write> = access %6, 1u
+    %9:void = %4.GetDimensions %5, %7, %8
+    %10:vec2<u32> = load %6
+    %11:vec2<u32> = swizzle %10, x
+    %res:ptr<function, u32, read_write> = var, %11
+    %13:u32 = load %res
+    ret %13
+  }
+}
+%fragment_main = @fragment func():void {
+  $B3: {
+    %15:u32 = call %textureDimensions_b46d97
+    %16:void = %prevent_dce.Store 0u, %15
+    ret
+  }
+}
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B4: {
+    %18:u32 = call %textureDimensions_b46d97
+    %19:void = %prevent_dce.Store 0u, %18
+    ret
+  }
+}
+%vertex_main_inner = func():VertexOutput {
+  $B5: {
+    %tint_symbol:ptr<function, VertexOutput, read_write> = var
+    %22:ptr<function, vec4<f32>, read_write> = access %tint_symbol, 0u
+    store %22, vec4<f32>(0.0f)
+    %23:ptr<function, u32, read_write> = access %tint_symbol, 1u
+    %24:u32 = call %textureDimensions_b46d97
+    store %23, %24
+    %25:VertexOutput = load %tint_symbol
+    ret %25
+  }
+}
+%vertex_main = @vertex func():vertex_main_outputs {
+  $B6: {
+    %27:VertexOutput = call %vertex_main_inner
+    %28:vec4<f32> = access %27, 0u
+    %29:u32 = access %27, 1u
+    %30:vertex_main_outputs = construct %29, %28
+    ret %30
+  }
+}
+
diff --git a/test/tint/builtins/gen/literal/textureDimensions/b51345.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/textureDimensions/b51345.wgsl.expected.ir.dxc.hlsl
index 1fac62e..4054f65 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/b51345.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/b51345.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,19 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureDimensions
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWByteAddressBuffer prevent_dce : register(u0);
+RWTexture1D<float4> arg_0 : register(u0, space1);
+uint textureDimensions_b51345() {
+  uint v = 0u;
+  arg_0.GetDimensions(v);
+  uint res = v;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store(0u, textureDimensions_b51345());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store(0u, textureDimensions_b51345());
+}
+
diff --git a/test/tint/builtins/gen/literal/textureDimensions/b51345.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/textureDimensions/b51345.wgsl.expected.ir.fxc.hlsl
index 1fac62e..4054f65 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/b51345.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/b51345.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,19 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureDimensions
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWByteAddressBuffer prevent_dce : register(u0);
+RWTexture1D<float4> arg_0 : register(u0, space1);
+uint textureDimensions_b51345() {
+  uint v = 0u;
+  arg_0.GetDimensions(v);
+  uint res = v;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store(0u, textureDimensions_b51345());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store(0u, textureDimensions_b51345());
+}
+
diff --git a/test/tint/builtins/gen/literal/textureDimensions/b56112.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/textureDimensions/b56112.wgsl.expected.ir.dxc.hlsl
index 1fac62e..44c56e2 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/b56112.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/b56112.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,45 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  uint2 prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureDimensions
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation uint2 VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+Texture2D<uint4> arg_0 : register(t0, space1);
+uint2 textureDimensions_b56112() {
+  uint2 v = (0u).xx;
+  arg_0.GetDimensions(v[0u], v[1u]);
+  uint2 res = v;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store2(0u, textureDimensions_b56112());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store2(0u, textureDimensions_b56112());
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = textureDimensions_b56112();
+  VertexOutput v_1 = tint_symbol;
+  return v_1;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_2 = vertex_main_inner();
+  VertexOutput v_3 = v_2;
+  VertexOutput v_4 = v_2;
+  vertex_main_outputs v_5 = {v_4.prevent_dce, v_3.pos};
+  return v_5;
+}
+
diff --git a/test/tint/builtins/gen/literal/textureDimensions/b56112.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/textureDimensions/b56112.wgsl.expected.ir.fxc.hlsl
index 1fac62e..44c56e2 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/b56112.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/b56112.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,45 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  uint2 prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureDimensions
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation uint2 VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+Texture2D<uint4> arg_0 : register(t0, space1);
+uint2 textureDimensions_b56112() {
+  uint2 v = (0u).xx;
+  arg_0.GetDimensions(v[0u], v[1u]);
+  uint2 res = v;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store2(0u, textureDimensions_b56112());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store2(0u, textureDimensions_b56112());
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = textureDimensions_b56112();
+  VertexOutput v_1 = tint_symbol;
+  return v_1;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_2 = vertex_main_inner();
+  VertexOutput v_3 = v_2;
+  VertexOutput v_4 = v_2;
+  vertex_main_outputs v_5 = {v_4.prevent_dce, v_3.pos};
+  return v_5;
+}
+
diff --git a/test/tint/builtins/gen/literal/textureDimensions/b5ba03.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/textureDimensions/b5ba03.wgsl.expected.ir.dxc.hlsl
index 1fac62e..1d08bab 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/b5ba03.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/b5ba03.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,45 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  uint prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureDimensions
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation uint VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+Texture1D<float4> arg_0 : register(t0, space1);
+uint textureDimensions_b5ba03() {
+  uint v = 0u;
+  arg_0.GetDimensions(v);
+  uint res = v;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store(0u, textureDimensions_b5ba03());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store(0u, textureDimensions_b5ba03());
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = textureDimensions_b5ba03();
+  VertexOutput v_1 = tint_symbol;
+  return v_1;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_2 = vertex_main_inner();
+  VertexOutput v_3 = v_2;
+  VertexOutput v_4 = v_2;
+  vertex_main_outputs v_5 = {v_4.prevent_dce, v_3.pos};
+  return v_5;
+}
+
diff --git a/test/tint/builtins/gen/literal/textureDimensions/b5ba03.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/textureDimensions/b5ba03.wgsl.expected.ir.fxc.hlsl
index 1fac62e..1d08bab 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/b5ba03.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/b5ba03.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,45 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  uint prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureDimensions
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation uint VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+Texture1D<float4> arg_0 : register(t0, space1);
+uint textureDimensions_b5ba03() {
+  uint v = 0u;
+  arg_0.GetDimensions(v);
+  uint res = v;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store(0u, textureDimensions_b5ba03());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store(0u, textureDimensions_b5ba03());
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = textureDimensions_b5ba03();
+  VertexOutput v_1 = tint_symbol;
+  return v_1;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_2 = vertex_main_inner();
+  VertexOutput v_3 = v_2;
+  VertexOutput v_4 = v_2;
+  vertex_main_outputs v_5 = {v_4.prevent_dce, v_3.pos};
+  return v_5;
+}
+
diff --git a/test/tint/builtins/gen/literal/textureDimensions/b5d68e.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/textureDimensions/b5d68e.wgsl.expected.ir.dxc.hlsl
index 1fac62e..1461abd 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/b5d68e.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/b5d68e.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,19 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureDimensions
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWByteAddressBuffer prevent_dce : register(u0);
+RWTexture2DArray<int4> arg_0 : register(u0, space1);
+uint2 textureDimensions_b5d68e() {
+  uint3 v = (0u).xxx;
+  arg_0.GetDimensions(v[0u], v[1u], v[2u]);
+  uint2 res = v.xy;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store2(0u, textureDimensions_b5d68e());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store2(0u, textureDimensions_b5d68e());
+}
+
diff --git a/test/tint/builtins/gen/literal/textureDimensions/b5d68e.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/textureDimensions/b5d68e.wgsl.expected.ir.fxc.hlsl
index 1fac62e..1461abd 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/b5d68e.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/b5d68e.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,19 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureDimensions
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWByteAddressBuffer prevent_dce : register(u0);
+RWTexture2DArray<int4> arg_0 : register(u0, space1);
+uint2 textureDimensions_b5d68e() {
+  uint3 v = (0u).xxx;
+  arg_0.GetDimensions(v[0u], v[1u], v[2u]);
+  uint2 res = v.xy;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store2(0u, textureDimensions_b5d68e());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store2(0u, textureDimensions_b5d68e());
+}
+
diff --git a/test/tint/builtins/gen/literal/textureDimensions/b6bbf4.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/textureDimensions/b6bbf4.wgsl.expected.ir.dxc.hlsl
index 1fac62e..9ea856f 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/b6bbf4.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/b6bbf4.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,45 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  uint3 prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureDimensions
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation uint3 VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+Texture3D<uint4> arg_0 : register(t0, space1);
+uint3 textureDimensions_b6bbf4() {
+  uint3 v = (0u).xxx;
+  arg_0.GetDimensions(v[0u], v[1u], v[2u]);
+  uint3 res = v;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store3(0u, textureDimensions_b6bbf4());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store3(0u, textureDimensions_b6bbf4());
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = textureDimensions_b6bbf4();
+  VertexOutput v_1 = tint_symbol;
+  return v_1;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_2 = vertex_main_inner();
+  VertexOutput v_3 = v_2;
+  VertexOutput v_4 = v_2;
+  vertex_main_outputs v_5 = {v_4.prevent_dce, v_3.pos};
+  return v_5;
+}
+
diff --git a/test/tint/builtins/gen/literal/textureDimensions/b6bbf4.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/textureDimensions/b6bbf4.wgsl.expected.ir.fxc.hlsl
index 1fac62e..9ea856f 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/b6bbf4.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/b6bbf4.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,45 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  uint3 prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureDimensions
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation uint3 VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+Texture3D<uint4> arg_0 : register(t0, space1);
+uint3 textureDimensions_b6bbf4() {
+  uint3 v = (0u).xxx;
+  arg_0.GetDimensions(v[0u], v[1u], v[2u]);
+  uint3 res = v;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store3(0u, textureDimensions_b6bbf4());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store3(0u, textureDimensions_b6bbf4());
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = textureDimensions_b6bbf4();
+  VertexOutput v_1 = tint_symbol;
+  return v_1;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_2 = vertex_main_inner();
+  VertexOutput v_3 = v_2;
+  VertexOutput v_4 = v_2;
+  vertex_main_outputs v_5 = {v_4.prevent_dce, v_3.pos};
+  return v_5;
+}
+
diff --git a/test/tint/builtins/gen/literal/textureDimensions/b8287f.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/textureDimensions/b8287f.wgsl.expected.ir.dxc.hlsl
index 1fac62e..cf57cb3 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/b8287f.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/b8287f.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,19 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureDimensions
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWByteAddressBuffer prevent_dce : register(u0);
+RWTexture2DArray<uint4> arg_0 : register(u0, space1);
+uint2 textureDimensions_b8287f() {
+  uint3 v = (0u).xxx;
+  arg_0.GetDimensions(v[0u], v[1u], v[2u]);
+  uint2 res = v.xy;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store2(0u, textureDimensions_b8287f());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store2(0u, textureDimensions_b8287f());
+}
+
diff --git a/test/tint/builtins/gen/literal/textureDimensions/b8287f.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/textureDimensions/b8287f.wgsl.expected.ir.fxc.hlsl
index 1fac62e..cf57cb3 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/b8287f.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/b8287f.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,19 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureDimensions
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWByteAddressBuffer prevent_dce : register(u0);
+RWTexture2DArray<uint4> arg_0 : register(u0, space1);
+uint2 textureDimensions_b8287f() {
+  uint3 v = (0u).xxx;
+  arg_0.GetDimensions(v[0u], v[1u], v[2u]);
+  uint2 res = v.xy;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store2(0u, textureDimensions_b8287f());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store2(0u, textureDimensions_b8287f());
+}
+
diff --git a/test/tint/builtins/gen/literal/textureDimensions/b9e7ef.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/textureDimensions/b9e7ef.wgsl.expected.ir.dxc.hlsl
index 1fac62e..744c9d2 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/b9e7ef.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/b9e7ef.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,45 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  uint prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureDimensions
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation uint VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+Texture1D<int4> arg_0 : register(t0, space1);
+uint textureDimensions_b9e7ef() {
+  uint v = 0u;
+  arg_0.GetDimensions(v);
+  uint res = v;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store(0u, textureDimensions_b9e7ef());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store(0u, textureDimensions_b9e7ef());
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = textureDimensions_b9e7ef();
+  VertexOutput v_1 = tint_symbol;
+  return v_1;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_2 = vertex_main_inner();
+  VertexOutput v_3 = v_2;
+  VertexOutput v_4 = v_2;
+  vertex_main_outputs v_5 = {v_4.prevent_dce, v_3.pos};
+  return v_5;
+}
+
diff --git a/test/tint/builtins/gen/literal/textureDimensions/b9e7ef.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/textureDimensions/b9e7ef.wgsl.expected.ir.fxc.hlsl
index 1fac62e..744c9d2 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/b9e7ef.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/b9e7ef.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,45 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  uint prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureDimensions
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation uint VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+Texture1D<int4> arg_0 : register(t0, space1);
+uint textureDimensions_b9e7ef() {
+  uint v = 0u;
+  arg_0.GetDimensions(v);
+  uint res = v;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store(0u, textureDimensions_b9e7ef());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store(0u, textureDimensions_b9e7ef());
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = textureDimensions_b9e7ef();
+  VertexOutput v_1 = tint_symbol;
+  return v_1;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_2 = vertex_main_inner();
+  VertexOutput v_3 = v_2;
+  VertexOutput v_4 = v_2;
+  vertex_main_outputs v_5 = {v_4.prevent_dce, v_3.pos};
+  return v_5;
+}
+
diff --git a/test/tint/builtins/gen/literal/textureDimensions/bb95d9.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/textureDimensions/bb95d9.wgsl.expected.ir.dxc.hlsl
index 1fac62e..d7a1b7c 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/bb95d9.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/bb95d9.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,45 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  uint3 prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureDimensions
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation uint3 VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+Texture3D<float4> arg_0 : register(t0, space1);
+uint3 textureDimensions_bb95d9() {
+  uint3 v = (0u).xxx;
+  arg_0.GetDimensions(v[0u], v[1u], v[2u]);
+  uint3 res = v;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store3(0u, textureDimensions_bb95d9());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store3(0u, textureDimensions_bb95d9());
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = textureDimensions_bb95d9();
+  VertexOutput v_1 = tint_symbol;
+  return v_1;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_2 = vertex_main_inner();
+  VertexOutput v_3 = v_2;
+  VertexOutput v_4 = v_2;
+  vertex_main_outputs v_5 = {v_4.prevent_dce, v_3.pos};
+  return v_5;
+}
+
diff --git a/test/tint/builtins/gen/literal/textureDimensions/bb95d9.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/textureDimensions/bb95d9.wgsl.expected.ir.fxc.hlsl
index 1fac62e..d7a1b7c 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/bb95d9.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/bb95d9.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,45 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  uint3 prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureDimensions
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation uint3 VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+Texture3D<float4> arg_0 : register(t0, space1);
+uint3 textureDimensions_bb95d9() {
+  uint3 v = (0u).xxx;
+  arg_0.GetDimensions(v[0u], v[1u], v[2u]);
+  uint3 res = v;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store3(0u, textureDimensions_bb95d9());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store3(0u, textureDimensions_bb95d9());
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = textureDimensions_bb95d9();
+  VertexOutput v_1 = tint_symbol;
+  return v_1;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_2 = vertex_main_inner();
+  VertexOutput v_3 = v_2;
+  VertexOutput v_4 = v_2;
+  vertex_main_outputs v_5 = {v_4.prevent_dce, v_3.pos};
+  return v_5;
+}
+
diff --git a/test/tint/builtins/gen/literal/textureDimensions/bbe285.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/textureDimensions/bbe285.wgsl.expected.ir.dxc.hlsl
index 1fac62e..b3b0541 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/bbe285.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/bbe285.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,19 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureDimensions
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWByteAddressBuffer prevent_dce : register(u0);
+RWTexture2DArray<int4> arg_0 : register(u0, space1);
+uint2 textureDimensions_bbe285() {
+  uint3 v = (0u).xxx;
+  arg_0.GetDimensions(v[0u], v[1u], v[2u]);
+  uint2 res = v.xy;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store2(0u, textureDimensions_bbe285());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store2(0u, textureDimensions_bbe285());
+}
+
diff --git a/test/tint/builtins/gen/literal/textureDimensions/bbe285.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/textureDimensions/bbe285.wgsl.expected.ir.fxc.hlsl
index 1fac62e..b3b0541 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/bbe285.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/bbe285.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,19 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureDimensions
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWByteAddressBuffer prevent_dce : register(u0);
+RWTexture2DArray<int4> arg_0 : register(u0, space1);
+uint2 textureDimensions_bbe285() {
+  uint3 v = (0u).xxx;
+  arg_0.GetDimensions(v[0u], v[1u], v[2u]);
+  uint2 res = v.xy;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store2(0u, textureDimensions_bbe285());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store2(0u, textureDimensions_bbe285());
+}
+
diff --git a/test/tint/builtins/gen/literal/textureDimensions/bc96f6.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/textureDimensions/bc96f6.wgsl.expected.ir.dxc.hlsl
index 1fac62e..07cdf84 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/bc96f6.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/bc96f6.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,19 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureDimensions
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWByteAddressBuffer prevent_dce : register(u0);
+RWTexture2DArray<float4> arg_0 : register(u0, space1);
+uint2 textureDimensions_bc96f6() {
+  uint3 v = (0u).xxx;
+  arg_0.GetDimensions(v[0u], v[1u], v[2u]);
+  uint2 res = v.xy;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store2(0u, textureDimensions_bc96f6());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store2(0u, textureDimensions_bc96f6());
+}
+
diff --git a/test/tint/builtins/gen/literal/textureDimensions/bc96f6.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/textureDimensions/bc96f6.wgsl.expected.ir.fxc.hlsl
index 1fac62e..07cdf84 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/bc96f6.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/bc96f6.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,19 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureDimensions
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWByteAddressBuffer prevent_dce : register(u0);
+RWTexture2DArray<float4> arg_0 : register(u0, space1);
+uint2 textureDimensions_bc96f6() {
+  uint3 v = (0u).xxx;
+  arg_0.GetDimensions(v[0u], v[1u], v[2u]);
+  uint2 res = v.xy;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store2(0u, textureDimensions_bc96f6());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store2(0u, textureDimensions_bc96f6());
+}
+
diff --git a/test/tint/builtins/gen/literal/textureDimensions/bd94c8.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/textureDimensions/bd94c8.wgsl.expected.ir.dxc.hlsl
index 1fac62e..3983947 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/bd94c8.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/bd94c8.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,46 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  uint2 prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureDimensions
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation uint2 VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+TextureCubeArray arg_0 : register(t0, space1);
+uint2 textureDimensions_bd94c8() {
+  TextureCubeArray v = arg_0;
+  uint4 v_1 = (0u).xxxx;
+  v.GetDimensions(uint(1u), v_1[0u], v_1[1u], v_1[2u], v_1[3u]);
+  uint2 res = v_1.xy;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store2(0u, textureDimensions_bd94c8());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store2(0u, textureDimensions_bd94c8());
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = textureDimensions_bd94c8();
+  VertexOutput v_2 = tint_symbol;
+  return v_2;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_3 = vertex_main_inner();
+  VertexOutput v_4 = v_3;
+  VertexOutput v_5 = v_3;
+  vertex_main_outputs v_6 = {v_5.prevent_dce, v_4.pos};
+  return v_6;
+}
+
diff --git a/test/tint/builtins/gen/literal/textureDimensions/bd94c8.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/textureDimensions/bd94c8.wgsl.expected.ir.fxc.hlsl
index 1fac62e..3983947 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/bd94c8.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/bd94c8.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,46 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  uint2 prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureDimensions
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation uint2 VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+TextureCubeArray arg_0 : register(t0, space1);
+uint2 textureDimensions_bd94c8() {
+  TextureCubeArray v = arg_0;
+  uint4 v_1 = (0u).xxxx;
+  v.GetDimensions(uint(1u), v_1[0u], v_1[1u], v_1[2u], v_1[3u]);
+  uint2 res = v_1.xy;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store2(0u, textureDimensions_bd94c8());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store2(0u, textureDimensions_bd94c8());
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = textureDimensions_bd94c8();
+  VertexOutput v_2 = tint_symbol;
+  return v_2;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_3 = vertex_main_inner();
+  VertexOutput v_4 = v_3;
+  VertexOutput v_5 = v_3;
+  vertex_main_outputs v_6 = {v_5.prevent_dce, v_4.pos};
+  return v_6;
+}
+
diff --git a/test/tint/builtins/gen/literal/textureDimensions/bec716.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/textureDimensions/bec716.wgsl.expected.ir.dxc.hlsl
index 1fac62e..48f55ac 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/bec716.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/bec716.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,45 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  uint3 prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureDimensions
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation uint3 VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+Texture3D<float4> arg_0 : register(t0, space1);
+uint3 textureDimensions_bec716() {
+  uint3 v = (0u).xxx;
+  arg_0.GetDimensions(v[0u], v[1u], v[2u]);
+  uint3 res = v;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store3(0u, textureDimensions_bec716());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store3(0u, textureDimensions_bec716());
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = textureDimensions_bec716();
+  VertexOutput v_1 = tint_symbol;
+  return v_1;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_2 = vertex_main_inner();
+  VertexOutput v_3 = v_2;
+  VertexOutput v_4 = v_2;
+  vertex_main_outputs v_5 = {v_4.prevent_dce, v_3.pos};
+  return v_5;
+}
+
diff --git a/test/tint/builtins/gen/literal/textureDimensions/bec716.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/textureDimensions/bec716.wgsl.expected.ir.fxc.hlsl
index 1fac62e..48f55ac 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/bec716.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/bec716.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,45 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  uint3 prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureDimensions
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation uint3 VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+Texture3D<float4> arg_0 : register(t0, space1);
+uint3 textureDimensions_bec716() {
+  uint3 v = (0u).xxx;
+  arg_0.GetDimensions(v[0u], v[1u], v[2u]);
+  uint3 res = v;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store3(0u, textureDimensions_bec716());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store3(0u, textureDimensions_bec716());
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = textureDimensions_bec716();
+  VertexOutput v_1 = tint_symbol;
+  return v_1;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_2 = vertex_main_inner();
+  VertexOutput v_3 = v_2;
+  VertexOutput v_4 = v_2;
+  vertex_main_outputs v_5 = {v_4.prevent_dce, v_3.pos};
+  return v_5;
+}
+
diff --git a/test/tint/builtins/gen/literal/textureDimensions/bf9170.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/textureDimensions/bf9170.wgsl.expected.ir.dxc.hlsl
index 1fac62e..7253e08 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/bf9170.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/bf9170.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,45 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  uint3 prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureDimensions
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation uint3 VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+Texture3D<float4> arg_0 : register(t0, space1);
+uint3 textureDimensions_bf9170() {
+  uint3 v = (0u).xxx;
+  arg_0.GetDimensions(v[0u], v[1u], v[2u]);
+  uint3 res = v;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store3(0u, textureDimensions_bf9170());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store3(0u, textureDimensions_bf9170());
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = textureDimensions_bf9170();
+  VertexOutput v_1 = tint_symbol;
+  return v_1;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_2 = vertex_main_inner();
+  VertexOutput v_3 = v_2;
+  VertexOutput v_4 = v_2;
+  vertex_main_outputs v_5 = {v_4.prevent_dce, v_3.pos};
+  return v_5;
+}
+
diff --git a/test/tint/builtins/gen/literal/textureDimensions/bf9170.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/textureDimensions/bf9170.wgsl.expected.ir.fxc.hlsl
index 1fac62e..7253e08 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/bf9170.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/bf9170.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,45 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  uint3 prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureDimensions
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation uint3 VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+Texture3D<float4> arg_0 : register(t0, space1);
+uint3 textureDimensions_bf9170() {
+  uint3 v = (0u).xxx;
+  arg_0.GetDimensions(v[0u], v[1u], v[2u]);
+  uint3 res = v;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store3(0u, textureDimensions_bf9170());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store3(0u, textureDimensions_bf9170());
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = textureDimensions_bf9170();
+  VertexOutput v_1 = tint_symbol;
+  return v_1;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_2 = vertex_main_inner();
+  VertexOutput v_3 = v_2;
+  VertexOutput v_4 = v_2;
+  vertex_main_outputs v_5 = {v_4.prevent_dce, v_3.pos};
+  return v_5;
+}
+
diff --git a/test/tint/builtins/gen/literal/textureDimensions/c1189e.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/textureDimensions/c1189e.wgsl.expected.ir.dxc.hlsl
index 1fac62e..230fbcd 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/c1189e.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/c1189e.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,45 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  uint2 prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureDimensions
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation uint2 VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+Texture2DArray<float4> arg_0 : register(t0, space1);
+uint2 textureDimensions_c1189e() {
+  uint3 v = (0u).xxx;
+  arg_0.GetDimensions(v[0u], v[1u], v[2u]);
+  uint2 res = v.xy;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store2(0u, textureDimensions_c1189e());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store2(0u, textureDimensions_c1189e());
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = textureDimensions_c1189e();
+  VertexOutput v_1 = tint_symbol;
+  return v_1;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_2 = vertex_main_inner();
+  VertexOutput v_3 = v_2;
+  VertexOutput v_4 = v_2;
+  vertex_main_outputs v_5 = {v_4.prevent_dce, v_3.pos};
+  return v_5;
+}
+
diff --git a/test/tint/builtins/gen/literal/textureDimensions/c1189e.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/textureDimensions/c1189e.wgsl.expected.ir.fxc.hlsl
index 1fac62e..230fbcd 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/c1189e.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/c1189e.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,45 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  uint2 prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureDimensions
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation uint2 VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+Texture2DArray<float4> arg_0 : register(t0, space1);
+uint2 textureDimensions_c1189e() {
+  uint3 v = (0u).xxx;
+  arg_0.GetDimensions(v[0u], v[1u], v[2u]);
+  uint2 res = v.xy;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store2(0u, textureDimensions_c1189e());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store2(0u, textureDimensions_c1189e());
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = textureDimensions_c1189e();
+  VertexOutput v_1 = tint_symbol;
+  return v_1;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_2 = vertex_main_inner();
+  VertexOutput v_3 = v_2;
+  VertexOutput v_4 = v_2;
+  vertex_main_outputs v_5 = {v_4.prevent_dce, v_3.pos};
+  return v_5;
+}
+
diff --git a/test/tint/builtins/gen/literal/textureDimensions/c1dbf6.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/textureDimensions/c1dbf6.wgsl.expected.ir.dxc.hlsl
index 1fac62e..a02c71d 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/c1dbf6.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/c1dbf6.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,19 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureDimensions
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWByteAddressBuffer prevent_dce : register(u0);
+RWTexture2D<uint4> arg_0 : register(u0, space1);
+uint2 textureDimensions_c1dbf6() {
+  uint2 v = (0u).xx;
+  arg_0.GetDimensions(v[0u], v[1u]);
+  uint2 res = v;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store2(0u, textureDimensions_c1dbf6());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store2(0u, textureDimensions_c1dbf6());
+}
+
diff --git a/test/tint/builtins/gen/literal/textureDimensions/c1dbf6.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/textureDimensions/c1dbf6.wgsl.expected.ir.fxc.hlsl
index 1fac62e..a02c71d 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/c1dbf6.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/c1dbf6.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,19 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureDimensions
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWByteAddressBuffer prevent_dce : register(u0);
+RWTexture2D<uint4> arg_0 : register(u0, space1);
+uint2 textureDimensions_c1dbf6() {
+  uint2 v = (0u).xx;
+  arg_0.GetDimensions(v[0u], v[1u]);
+  uint2 res = v;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store2(0u, textureDimensions_c1dbf6());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store2(0u, textureDimensions_c1dbf6());
+}
+
diff --git a/test/tint/builtins/gen/literal/textureDimensions/c27466.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/textureDimensions/c27466.wgsl.expected.ir.dxc.hlsl
index 1fac62e..c9fe16e 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/c27466.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/c27466.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,19 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureDimensions
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWByteAddressBuffer prevent_dce : register(u0);
+RWTexture1D<int4> arg_0 : register(u0, space1);
+uint textureDimensions_c27466() {
+  uint v = 0u;
+  arg_0.GetDimensions(v);
+  uint res = v;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store(0u, textureDimensions_c27466());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store(0u, textureDimensions_c27466());
+}
+
diff --git a/test/tint/builtins/gen/literal/textureDimensions/c27466.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/textureDimensions/c27466.wgsl.expected.ir.fxc.hlsl
index 1fac62e..c9fe16e 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/c27466.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/c27466.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,19 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureDimensions
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWByteAddressBuffer prevent_dce : register(u0);
+RWTexture1D<int4> arg_0 : register(u0, space1);
+uint textureDimensions_c27466() {
+  uint v = 0u;
+  arg_0.GetDimensions(v);
+  uint res = v;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store(0u, textureDimensions_c27466());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store(0u, textureDimensions_c27466());
+}
+
diff --git a/test/tint/builtins/gen/literal/textureDimensions/c2cdd3.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/textureDimensions/c2cdd3.wgsl.expected.ir.dxc.hlsl
index 1fac62e..14dd451 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/c2cdd3.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/c2cdd3.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,45 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  uint2 prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureDimensions
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation uint2 VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+Texture2DMS<float4> arg_0 : register(t0, space1);
+uint2 textureDimensions_c2cdd3() {
+  uint3 v = (0u).xxx;
+  arg_0.GetDimensions(v[0u], v[1u], v[2u]);
+  uint2 res = v.xy;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store2(0u, textureDimensions_c2cdd3());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store2(0u, textureDimensions_c2cdd3());
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = textureDimensions_c2cdd3();
+  VertexOutput v_1 = tint_symbol;
+  return v_1;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_2 = vertex_main_inner();
+  VertexOutput v_3 = v_2;
+  VertexOutput v_4 = v_2;
+  vertex_main_outputs v_5 = {v_4.prevent_dce, v_3.pos};
+  return v_5;
+}
+
diff --git a/test/tint/builtins/gen/literal/textureDimensions/c2cdd3.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/textureDimensions/c2cdd3.wgsl.expected.ir.fxc.hlsl
index 1fac62e..14dd451 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/c2cdd3.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/c2cdd3.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,45 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  uint2 prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureDimensions
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation uint2 VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+Texture2DMS<float4> arg_0 : register(t0, space1);
+uint2 textureDimensions_c2cdd3() {
+  uint3 v = (0u).xxx;
+  arg_0.GetDimensions(v[0u], v[1u], v[2u]);
+  uint2 res = v.xy;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store2(0u, textureDimensions_c2cdd3());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store2(0u, textureDimensions_c2cdd3());
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = textureDimensions_c2cdd3();
+  VertexOutput v_1 = tint_symbol;
+  return v_1;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_2 = vertex_main_inner();
+  VertexOutput v_3 = v_2;
+  VertexOutput v_4 = v_2;
+  vertex_main_outputs v_5 = {v_4.prevent_dce, v_3.pos};
+  return v_5;
+}
+
diff --git a/test/tint/builtins/gen/literal/textureDimensions/c44fc1.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/textureDimensions/c44fc1.wgsl.expected.ir.dxc.hlsl
index 1fac62e..767bf02 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/c44fc1.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/c44fc1.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,19 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureDimensions
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWByteAddressBuffer prevent_dce : register(u0);
+RWTexture2DArray<int4> arg_0 : register(u0, space1);
+uint2 textureDimensions_c44fc1() {
+  uint3 v = (0u).xxx;
+  arg_0.GetDimensions(v[0u], v[1u], v[2u]);
+  uint2 res = v.xy;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store2(0u, textureDimensions_c44fc1());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store2(0u, textureDimensions_c44fc1());
+}
+
diff --git a/test/tint/builtins/gen/literal/textureDimensions/c44fc1.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/textureDimensions/c44fc1.wgsl.expected.ir.fxc.hlsl
index 1fac62e..767bf02 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/c44fc1.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/c44fc1.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,19 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureDimensions
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWByteAddressBuffer prevent_dce : register(u0);
+RWTexture2DArray<int4> arg_0 : register(u0, space1);
+uint2 textureDimensions_c44fc1() {
+  uint3 v = (0u).xxx;
+  arg_0.GetDimensions(v[0u], v[1u], v[2u]);
+  uint2 res = v.xy;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store2(0u, textureDimensions_c44fc1());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store2(0u, textureDimensions_c44fc1());
+}
+
diff --git a/test/tint/builtins/gen/literal/textureDimensions/c5a36e.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/textureDimensions/c5a36e.wgsl.expected.ir.dxc.hlsl
index 1fac62e..4522a33 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/c5a36e.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/c5a36e.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,45 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  uint2 prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureDimensions
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation uint2 VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+TextureCube arg_0 : register(t0, space1);
+uint2 textureDimensions_c5a36e() {
+  uint2 v = (0u).xx;
+  arg_0.GetDimensions(v[0u], v[1u]);
+  uint2 res = v;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store2(0u, textureDimensions_c5a36e());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store2(0u, textureDimensions_c5a36e());
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = textureDimensions_c5a36e();
+  VertexOutput v_1 = tint_symbol;
+  return v_1;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_2 = vertex_main_inner();
+  VertexOutput v_3 = v_2;
+  VertexOutput v_4 = v_2;
+  vertex_main_outputs v_5 = {v_4.prevent_dce, v_3.pos};
+  return v_5;
+}
+
diff --git a/test/tint/builtins/gen/literal/textureDimensions/c5a36e.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/textureDimensions/c5a36e.wgsl.expected.ir.fxc.hlsl
index 1fac62e..4522a33 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/c5a36e.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/c5a36e.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,45 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  uint2 prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureDimensions
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation uint2 VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+TextureCube arg_0 : register(t0, space1);
+uint2 textureDimensions_c5a36e() {
+  uint2 v = (0u).xx;
+  arg_0.GetDimensions(v[0u], v[1u]);
+  uint2 res = v;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store2(0u, textureDimensions_c5a36e());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store2(0u, textureDimensions_c5a36e());
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = textureDimensions_c5a36e();
+  VertexOutput v_1 = tint_symbol;
+  return v_1;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_2 = vertex_main_inner();
+  VertexOutput v_3 = v_2;
+  VertexOutput v_4 = v_2;
+  vertex_main_outputs v_5 = {v_4.prevent_dce, v_3.pos};
+  return v_5;
+}
+
diff --git a/test/tint/builtins/gen/literal/textureDimensions/c6b44c.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/textureDimensions/c6b44c.wgsl.expected.ir.dxc.hlsl
index 1fac62e..6987040 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/c6b44c.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/c6b44c.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,19 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureDimensions
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWByteAddressBuffer prevent_dce : register(u0);
+RWTexture2D<int4> arg_0 : register(u0, space1);
+uint2 textureDimensions_c6b44c() {
+  uint2 v = (0u).xx;
+  arg_0.GetDimensions(v[0u], v[1u]);
+  uint2 res = v;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store2(0u, textureDimensions_c6b44c());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store2(0u, textureDimensions_c6b44c());
+}
+
diff --git a/test/tint/builtins/gen/literal/textureDimensions/c6b44c.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/textureDimensions/c6b44c.wgsl.expected.ir.fxc.hlsl
index 1fac62e..6987040 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/c6b44c.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/c6b44c.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,19 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureDimensions
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWByteAddressBuffer prevent_dce : register(u0);
+RWTexture2D<int4> arg_0 : register(u0, space1);
+uint2 textureDimensions_c6b44c() {
+  uint2 v = (0u).xx;
+  arg_0.GetDimensions(v[0u], v[1u]);
+  uint2 res = v;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store2(0u, textureDimensions_c6b44c());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store2(0u, textureDimensions_c6b44c());
+}
+
diff --git a/test/tint/builtins/gen/literal/textureDimensions/c6b985.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/textureDimensions/c6b985.wgsl.expected.ir.dxc.hlsl
index 1fac62e..7c59820 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/c6b985.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/c6b985.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,19 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureDimensions
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWByteAddressBuffer prevent_dce : register(u0);
+RWTexture1D<float4> arg_0 : register(u0, space1);
+uint textureDimensions_c6b985() {
+  uint v = 0u;
+  arg_0.GetDimensions(v);
+  uint res = v;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store(0u, textureDimensions_c6b985());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store(0u, textureDimensions_c6b985());
+}
+
diff --git a/test/tint/builtins/gen/literal/textureDimensions/c6b985.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/textureDimensions/c6b985.wgsl.expected.ir.fxc.hlsl
index 1fac62e..7c59820 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/c6b985.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/c6b985.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,19 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureDimensions
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWByteAddressBuffer prevent_dce : register(u0);
+RWTexture1D<float4> arg_0 : register(u0, space1);
+uint textureDimensions_c6b985() {
+  uint v = 0u;
+  arg_0.GetDimensions(v);
+  uint res = v;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store(0u, textureDimensions_c6b985());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store(0u, textureDimensions_c6b985());
+}
+
diff --git a/test/tint/builtins/gen/literal/textureDimensions/c7ea63.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/textureDimensions/c7ea63.wgsl.expected.ir.dxc.hlsl
index 1fac62e..2655610 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/c7ea63.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/c7ea63.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,19 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureDimensions
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWByteAddressBuffer prevent_dce : register(u0);
+RWTexture1D<float4> arg_0 : register(u0, space1);
+uint textureDimensions_c7ea63() {
+  uint v = 0u;
+  arg_0.GetDimensions(v);
+  uint res = v;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store(0u, textureDimensions_c7ea63());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store(0u, textureDimensions_c7ea63());
+}
+
diff --git a/test/tint/builtins/gen/literal/textureDimensions/c7ea63.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/textureDimensions/c7ea63.wgsl.expected.ir.fxc.hlsl
index 1fac62e..2655610 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/c7ea63.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/c7ea63.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,19 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureDimensions
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWByteAddressBuffer prevent_dce : register(u0);
+RWTexture1D<float4> arg_0 : register(u0, space1);
+uint textureDimensions_c7ea63() {
+  uint v = 0u;
+  arg_0.GetDimensions(v);
+  uint res = v;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store(0u, textureDimensions_c7ea63());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store(0u, textureDimensions_c7ea63());
+}
+
diff --git a/test/tint/builtins/gen/literal/textureDimensions/c82420.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/textureDimensions/c82420.wgsl.expected.ir.dxc.hlsl
index 1fac62e..35885e3 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/c82420.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/c82420.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,19 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureDimensions
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWByteAddressBuffer prevent_dce : register(u0);
+RWTexture2D<uint4> arg_0 : register(u0, space1);
+uint2 textureDimensions_c82420() {
+  uint2 v = (0u).xx;
+  arg_0.GetDimensions(v[0u], v[1u]);
+  uint2 res = v;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store2(0u, textureDimensions_c82420());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store2(0u, textureDimensions_c82420());
+}
+
diff --git a/test/tint/builtins/gen/literal/textureDimensions/c82420.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/textureDimensions/c82420.wgsl.expected.ir.fxc.hlsl
index 1fac62e..35885e3 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/c82420.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/c82420.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,19 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureDimensions
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWByteAddressBuffer prevent_dce : register(u0);
+RWTexture2D<uint4> arg_0 : register(u0, space1);
+uint2 textureDimensions_c82420() {
+  uint2 v = (0u).xx;
+  arg_0.GetDimensions(v[0u], v[1u]);
+  uint2 res = v;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store2(0u, textureDimensions_c82420());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store2(0u, textureDimensions_c82420());
+}
+
diff --git a/test/tint/builtins/gen/literal/textureDimensions/c871f3.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/textureDimensions/c871f3.wgsl.expected.ir.dxc.hlsl
index 1fac62e..1a77d1c 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/c871f3.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/c871f3.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,114 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureDimensions
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec3<u32>;
+
+@group(1) @binding(0) var arg_0 : texture_3d<i32>;
+
+fn textureDimensions_c871f3() -> vec3<u32> {
+  var res : vec3<u32> = textureDimensions(arg_0, 1u);
+  return res;
+}
+
+@fragment
+fn fragment_main() {
+  prevent_dce = textureDimensions_c871f3();
+}
+
+@compute @workgroup_size(1)
+fn compute_main() {
+  prevent_dce = textureDimensions_c871f3();
+}
+
+struct VertexOutput {
+  @builtin(position)
+  pos : vec4<f32>,
+  @location(0) @interpolate(flat)
+  prevent_dce : vec3<u32>,
+}
+
+@vertex
+fn vertex_main() -> VertexOutput {
+  var tint_symbol : VertexOutput;
+  tint_symbol.pos = vec4<f32>();
+  tint_symbol.prevent_dce = textureDimensions_c871f3();
+  return tint_symbol;
+}
+
+Failed to generate: :28:49 error: var: initializer type 'vec2<u32>' does not match store type 'vec3<u32>'
+    %res:ptr<function, vec3<u32>, read_write> = var, %13
+                                                ^^^
+
+:17:3 note: in block
+  $B2: {
+  ^^^
+
+note: # Disassembly
+VertexOutput = struct @align(16) {
+  pos:vec4<f32> @offset(0)
+  prevent_dce:vec3<u32> @offset(16)
+}
+
+vertex_main_outputs = struct @align(16) {
+  VertexOutput_prevent_dce:vec3<u32> @offset(0), @location(0), @interpolate(flat)
+  VertexOutput_pos:vec4<f32> @offset(16), @builtin(position)
+}
+
+$B1: {  # root
+  %prevent_dce:hlsl.byte_address_buffer<read_write> = var @binding_point(0, 0)
+  %arg_0:ptr<handle, texture_3d<i32>, read> = var @binding_point(1, 0)
+}
+
+%textureDimensions_c871f3 = func():vec3<u32> {
+  $B2: {
+    %4:texture_3d<i32> = load %arg_0
+    %5:u32 = convert 1u
+    %6:ptr<function, vec4<u32>, read_write> = var
+    %7:ptr<function, u32, read_write> = access %6, 0u
+    %8:ptr<function, u32, read_write> = access %6, 1u
+    %9:ptr<function, u32, read_write> = access %6, 2u
+    %10:ptr<function, u32, read_write> = access %6, 3u
+    %11:void = %4.GetDimensions %5, %7, %8, %9, %10
+    %12:vec4<u32> = load %6
+    %13:vec2<u32> = swizzle %12, xyz
+    %res:ptr<function, vec3<u32>, read_write> = var, %13
+    %15:vec3<u32> = load %res
+    ret %15
+  }
+}
+%fragment_main = @fragment func():void {
+  $B3: {
+    %17:vec3<u32> = call %textureDimensions_c871f3
+    %18:void = %prevent_dce.Store3 0u, %17
+    ret
+  }
+}
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B4: {
+    %20:vec3<u32> = call %textureDimensions_c871f3
+    %21:void = %prevent_dce.Store3 0u, %20
+    ret
+  }
+}
+%vertex_main_inner = func():VertexOutput {
+  $B5: {
+    %tint_symbol:ptr<function, VertexOutput, read_write> = var
+    %24:ptr<function, vec4<f32>, read_write> = access %tint_symbol, 0u
+    store %24, vec4<f32>(0.0f)
+    %25:ptr<function, vec3<u32>, read_write> = access %tint_symbol, 1u
+    %26:vec3<u32> = call %textureDimensions_c871f3
+    store %25, %26
+    %27:VertexOutput = load %tint_symbol
+    ret %27
+  }
+}
+%vertex_main = @vertex func():vertex_main_outputs {
+  $B6: {
+    %29:VertexOutput = call %vertex_main_inner
+    %30:vec4<f32> = access %29, 0u
+    %31:vec3<u32> = access %29, 1u
+    %32:vertex_main_outputs = construct %31, %30
+    ret %32
+  }
+}
+
diff --git a/test/tint/builtins/gen/literal/textureDimensions/c871f3.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/textureDimensions/c871f3.wgsl.expected.ir.fxc.hlsl
index 1fac62e..1a77d1c 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/c871f3.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/c871f3.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,114 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureDimensions
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec3<u32>;
+
+@group(1) @binding(0) var arg_0 : texture_3d<i32>;
+
+fn textureDimensions_c871f3() -> vec3<u32> {
+  var res : vec3<u32> = textureDimensions(arg_0, 1u);
+  return res;
+}
+
+@fragment
+fn fragment_main() {
+  prevent_dce = textureDimensions_c871f3();
+}
+
+@compute @workgroup_size(1)
+fn compute_main() {
+  prevent_dce = textureDimensions_c871f3();
+}
+
+struct VertexOutput {
+  @builtin(position)
+  pos : vec4<f32>,
+  @location(0) @interpolate(flat)
+  prevent_dce : vec3<u32>,
+}
+
+@vertex
+fn vertex_main() -> VertexOutput {
+  var tint_symbol : VertexOutput;
+  tint_symbol.pos = vec4<f32>();
+  tint_symbol.prevent_dce = textureDimensions_c871f3();
+  return tint_symbol;
+}
+
+Failed to generate: :28:49 error: var: initializer type 'vec2<u32>' does not match store type 'vec3<u32>'
+    %res:ptr<function, vec3<u32>, read_write> = var, %13
+                                                ^^^
+
+:17:3 note: in block
+  $B2: {
+  ^^^
+
+note: # Disassembly
+VertexOutput = struct @align(16) {
+  pos:vec4<f32> @offset(0)
+  prevent_dce:vec3<u32> @offset(16)
+}
+
+vertex_main_outputs = struct @align(16) {
+  VertexOutput_prevent_dce:vec3<u32> @offset(0), @location(0), @interpolate(flat)
+  VertexOutput_pos:vec4<f32> @offset(16), @builtin(position)
+}
+
+$B1: {  # root
+  %prevent_dce:hlsl.byte_address_buffer<read_write> = var @binding_point(0, 0)
+  %arg_0:ptr<handle, texture_3d<i32>, read> = var @binding_point(1, 0)
+}
+
+%textureDimensions_c871f3 = func():vec3<u32> {
+  $B2: {
+    %4:texture_3d<i32> = load %arg_0
+    %5:u32 = convert 1u
+    %6:ptr<function, vec4<u32>, read_write> = var
+    %7:ptr<function, u32, read_write> = access %6, 0u
+    %8:ptr<function, u32, read_write> = access %6, 1u
+    %9:ptr<function, u32, read_write> = access %6, 2u
+    %10:ptr<function, u32, read_write> = access %6, 3u
+    %11:void = %4.GetDimensions %5, %7, %8, %9, %10
+    %12:vec4<u32> = load %6
+    %13:vec2<u32> = swizzle %12, xyz
+    %res:ptr<function, vec3<u32>, read_write> = var, %13
+    %15:vec3<u32> = load %res
+    ret %15
+  }
+}
+%fragment_main = @fragment func():void {
+  $B3: {
+    %17:vec3<u32> = call %textureDimensions_c871f3
+    %18:void = %prevent_dce.Store3 0u, %17
+    ret
+  }
+}
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B4: {
+    %20:vec3<u32> = call %textureDimensions_c871f3
+    %21:void = %prevent_dce.Store3 0u, %20
+    ret
+  }
+}
+%vertex_main_inner = func():VertexOutput {
+  $B5: {
+    %tint_symbol:ptr<function, VertexOutput, read_write> = var
+    %24:ptr<function, vec4<f32>, read_write> = access %tint_symbol, 0u
+    store %24, vec4<f32>(0.0f)
+    %25:ptr<function, vec3<u32>, read_write> = access %tint_symbol, 1u
+    %26:vec3<u32> = call %textureDimensions_c871f3
+    store %25, %26
+    %27:VertexOutput = load %tint_symbol
+    ret %27
+  }
+}
+%vertex_main = @vertex func():vertex_main_outputs {
+  $B6: {
+    %29:VertexOutput = call %vertex_main_inner
+    %30:vec4<f32> = access %29, 0u
+    %31:vec3<u32> = access %29, 1u
+    %32:vertex_main_outputs = construct %31, %30
+    ret %32
+  }
+}
+
diff --git a/test/tint/builtins/gen/literal/textureDimensions/ca10cc.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/textureDimensions/ca10cc.wgsl.expected.ir.dxc.hlsl
index 1fac62e..322c243 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/ca10cc.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/ca10cc.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,19 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureDimensions
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWByteAddressBuffer prevent_dce : register(u0);
+RWTexture2DArray<uint4> arg_0 : register(u0, space1);
+uint2 textureDimensions_ca10cc() {
+  uint3 v = (0u).xxx;
+  arg_0.GetDimensions(v[0u], v[1u], v[2u]);
+  uint2 res = v.xy;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store2(0u, textureDimensions_ca10cc());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store2(0u, textureDimensions_ca10cc());
+}
+
diff --git a/test/tint/builtins/gen/literal/textureDimensions/ca10cc.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/textureDimensions/ca10cc.wgsl.expected.ir.fxc.hlsl
index 1fac62e..322c243 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/ca10cc.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/ca10cc.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,19 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureDimensions
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWByteAddressBuffer prevent_dce : register(u0);
+RWTexture2DArray<uint4> arg_0 : register(u0, space1);
+uint2 textureDimensions_ca10cc() {
+  uint3 v = (0u).xxx;
+  arg_0.GetDimensions(v[0u], v[1u], v[2u]);
+  uint2 res = v.xy;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store2(0u, textureDimensions_ca10cc());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store2(0u, textureDimensions_ca10cc());
+}
+
diff --git a/test/tint/builtins/gen/literal/textureDimensions/cad3b7.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/textureDimensions/cad3b7.wgsl.expected.ir.dxc.hlsl
index 1fac62e..599eeb0 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/cad3b7.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/cad3b7.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,19 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureDimensions
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWByteAddressBuffer prevent_dce : register(u0);
+RWTexture2D<int4> arg_0 : register(u0, space1);
+uint2 textureDimensions_cad3b7() {
+  uint2 v = (0u).xx;
+  arg_0.GetDimensions(v[0u], v[1u]);
+  uint2 res = v;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store2(0u, textureDimensions_cad3b7());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store2(0u, textureDimensions_cad3b7());
+}
+
diff --git a/test/tint/builtins/gen/literal/textureDimensions/cad3b7.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/textureDimensions/cad3b7.wgsl.expected.ir.fxc.hlsl
index 1fac62e..599eeb0 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/cad3b7.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/cad3b7.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,19 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureDimensions
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWByteAddressBuffer prevent_dce : register(u0);
+RWTexture2D<int4> arg_0 : register(u0, space1);
+uint2 textureDimensions_cad3b7() {
+  uint2 v = (0u).xx;
+  arg_0.GetDimensions(v[0u], v[1u]);
+  uint2 res = v;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store2(0u, textureDimensions_cad3b7());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store2(0u, textureDimensions_cad3b7());
+}
+
diff --git a/test/tint/builtins/gen/literal/textureDimensions/cc947b.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/textureDimensions/cc947b.wgsl.expected.ir.dxc.hlsl
index 1fac62e..ce77d4f 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/cc947b.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/cc947b.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,19 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureDimensions
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWByteAddressBuffer prevent_dce : register(u0);
+RWTexture3D<float4> arg_0 : register(u0, space1);
+uint3 textureDimensions_cc947b() {
+  uint3 v = (0u).xxx;
+  arg_0.GetDimensions(v[0u], v[1u], v[2u]);
+  uint3 res = v;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store3(0u, textureDimensions_cc947b());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store3(0u, textureDimensions_cc947b());
+}
+
diff --git a/test/tint/builtins/gen/literal/textureDimensions/cc947b.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/textureDimensions/cc947b.wgsl.expected.ir.fxc.hlsl
index 1fac62e..ce77d4f 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/cc947b.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/cc947b.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,19 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureDimensions
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWByteAddressBuffer prevent_dce : register(u0);
+RWTexture3D<float4> arg_0 : register(u0, space1);
+uint3 textureDimensions_cc947b() {
+  uint3 v = (0u).xxx;
+  arg_0.GetDimensions(v[0u], v[1u], v[2u]);
+  uint3 res = v;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store3(0u, textureDimensions_cc947b());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store3(0u, textureDimensions_cc947b());
+}
+
diff --git a/test/tint/builtins/gen/literal/textureDimensions/cd3033.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/textureDimensions/cd3033.wgsl.expected.ir.dxc.hlsl
index 1fac62e..1087fc0 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/cd3033.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/cd3033.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,45 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  uint2 prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureDimensions
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation uint2 VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+Texture2DArray<int4> arg_0 : register(t0, space1);
+uint2 textureDimensions_cd3033() {
+  uint3 v = (0u).xxx;
+  arg_0.GetDimensions(v[0u], v[1u], v[2u]);
+  uint2 res = v.xy;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store2(0u, textureDimensions_cd3033());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store2(0u, textureDimensions_cd3033());
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = textureDimensions_cd3033();
+  VertexOutput v_1 = tint_symbol;
+  return v_1;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_2 = vertex_main_inner();
+  VertexOutput v_3 = v_2;
+  VertexOutput v_4 = v_2;
+  vertex_main_outputs v_5 = {v_4.prevent_dce, v_3.pos};
+  return v_5;
+}
+
diff --git a/test/tint/builtins/gen/literal/textureDimensions/cd3033.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/textureDimensions/cd3033.wgsl.expected.ir.fxc.hlsl
index 1fac62e..1087fc0 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/cd3033.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/cd3033.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,45 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  uint2 prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureDimensions
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation uint2 VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+Texture2DArray<int4> arg_0 : register(t0, space1);
+uint2 textureDimensions_cd3033() {
+  uint3 v = (0u).xxx;
+  arg_0.GetDimensions(v[0u], v[1u], v[2u]);
+  uint2 res = v.xy;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store2(0u, textureDimensions_cd3033());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store2(0u, textureDimensions_cd3033());
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = textureDimensions_cd3033();
+  VertexOutput v_1 = tint_symbol;
+  return v_1;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_2 = vertex_main_inner();
+  VertexOutput v_3 = v_2;
+  VertexOutput v_4 = v_2;
+  vertex_main_outputs v_5 = {v_4.prevent_dce, v_3.pos};
+  return v_5;
+}
+
diff --git a/test/tint/builtins/gen/literal/textureDimensions/cdc6c9.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/textureDimensions/cdc6c9.wgsl.expected.ir.dxc.hlsl
index 1fac62e..5edbb57 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/cdc6c9.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/cdc6c9.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,135 @@
-SKIP: FAILED
+struct tint_GammaTransferParams {
+  float G;
+  float A;
+  float B;
+  float C;
+  float D;
+  float E;
+  float F;
+  uint padding;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureDimensions
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct tint_ExternalTextureParams {
+  uint numPlanes;
+  uint doYuvToRgbConversionOnly;
+  float3x4 yuvToRgbConversionMatrix;
+  tint_GammaTransferParams gammaDecodeParams;
+  tint_GammaTransferParams gammaEncodeParams;
+  float3x3 gamutConversionMatrix;
+  float3x2 sampleTransform;
+  float3x2 loadTransform;
+  float2 samplePlane0RectMin;
+  float2 samplePlane0RectMax;
+  float2 samplePlane1RectMin;
+  float2 samplePlane1RectMax;
+  uint2 visibleSize;
+  float2 plane1CoordFactor;
+};
+
+struct VertexOutput {
+  float4 pos;
+  uint2 prevent_dce;
+};
+
+struct vertex_main_outputs {
+  nointerpolation uint2 VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+Texture2D<float4> arg_0_plane0 : register(t0, space1);
+Texture2D<float4> arg_0_plane1 : register(t1, space1);
+cbuffer cbuffer_arg_0_params : register(b2, space1) {
+  uint4 arg_0_params[17];
+};
+float3x2 v(uint start_byte_offset) {
+  uint4 v_1 = arg_0_params[(start_byte_offset / 16u)];
+  float2 v_2 = asfloat((((((start_byte_offset % 16u) / 4u) == 2u)) ? (v_1.zw) : (v_1.xy)));
+  uint4 v_3 = arg_0_params[((8u + start_byte_offset) / 16u)];
+  float2 v_4 = asfloat(((((((8u + start_byte_offset) % 16u) / 4u) == 2u)) ? (v_3.zw) : (v_3.xy)));
+  uint4 v_5 = arg_0_params[((16u + start_byte_offset) / 16u)];
+  return float3x2(v_2, v_4, asfloat(((((((16u + start_byte_offset) % 16u) / 4u) == 2u)) ? (v_5.zw) : (v_5.xy))));
+}
+
+float3x3 v_6(uint start_byte_offset) {
+  float3 v_7 = asfloat(arg_0_params[(start_byte_offset / 16u)].xyz);
+  float3 v_8 = asfloat(arg_0_params[((16u + start_byte_offset) / 16u)].xyz);
+  return float3x3(v_7, v_8, asfloat(arg_0_params[((32u + start_byte_offset) / 16u)].xyz));
+}
+
+tint_GammaTransferParams v_9(uint start_byte_offset) {
+  float v_10 = asfloat(arg_0_params[(start_byte_offset / 16u)][((start_byte_offset % 16u) / 4u)]);
+  float v_11 = asfloat(arg_0_params[((4u + start_byte_offset) / 16u)][(((4u + start_byte_offset) % 16u) / 4u)]);
+  float v_12 = asfloat(arg_0_params[((8u + start_byte_offset) / 16u)][(((8u + start_byte_offset) % 16u) / 4u)]);
+  float v_13 = asfloat(arg_0_params[((12u + start_byte_offset) / 16u)][(((12u + start_byte_offset) % 16u) / 4u)]);
+  float v_14 = asfloat(arg_0_params[((16u + start_byte_offset) / 16u)][(((16u + start_byte_offset) % 16u) / 4u)]);
+  float v_15 = asfloat(arg_0_params[((20u + start_byte_offset) / 16u)][(((20u + start_byte_offset) % 16u) / 4u)]);
+  float v_16 = asfloat(arg_0_params[((24u + start_byte_offset) / 16u)][(((24u + start_byte_offset) % 16u) / 4u)]);
+  tint_GammaTransferParams v_17 = {v_10, v_11, v_12, v_13, v_14, v_15, v_16, arg_0_params[((28u + start_byte_offset) / 16u)][(((28u + start_byte_offset) % 16u) / 4u)]};
+  return v_17;
+}
+
+float3x4 v_18(uint start_byte_offset) {
+  float4 v_19 = asfloat(arg_0_params[(start_byte_offset / 16u)]);
+  float4 v_20 = asfloat(arg_0_params[((16u + start_byte_offset) / 16u)]);
+  return float3x4(v_19, v_20, asfloat(arg_0_params[((32u + start_byte_offset) / 16u)]));
+}
+
+tint_ExternalTextureParams v_21(uint start_byte_offset) {
+  uint v_22 = arg_0_params[(start_byte_offset / 16u)][((start_byte_offset % 16u) / 4u)];
+  uint v_23 = arg_0_params[((4u + start_byte_offset) / 16u)][(((4u + start_byte_offset) % 16u) / 4u)];
+  float3x4 v_24 = v_18((16u + start_byte_offset));
+  tint_GammaTransferParams v_25 = v_9((64u + start_byte_offset));
+  tint_GammaTransferParams v_26 = v_9((96u + start_byte_offset));
+  float3x3 v_27 = v_6((128u + start_byte_offset));
+  float3x2 v_28 = v((176u + start_byte_offset));
+  float3x2 v_29 = v((200u + start_byte_offset));
+  uint4 v_30 = arg_0_params[((224u + start_byte_offset) / 16u)];
+  float2 v_31 = asfloat(((((((224u + start_byte_offset) % 16u) / 4u) == 2u)) ? (v_30.zw) : (v_30.xy)));
+  uint4 v_32 = arg_0_params[((232u + start_byte_offset) / 16u)];
+  float2 v_33 = asfloat(((((((232u + start_byte_offset) % 16u) / 4u) == 2u)) ? (v_32.zw) : (v_32.xy)));
+  uint4 v_34 = arg_0_params[((240u + start_byte_offset) / 16u)];
+  float2 v_35 = asfloat(((((((240u + start_byte_offset) % 16u) / 4u) == 2u)) ? (v_34.zw) : (v_34.xy)));
+  uint4 v_36 = arg_0_params[((248u + start_byte_offset) / 16u)];
+  float2 v_37 = asfloat(((((((248u + start_byte_offset) % 16u) / 4u) == 2u)) ? (v_36.zw) : (v_36.xy)));
+  uint4 v_38 = arg_0_params[((256u + start_byte_offset) / 16u)];
+  uint2 v_39 = ((((((256u + start_byte_offset) % 16u) / 4u) == 2u)) ? (v_38.zw) : (v_38.xy));
+  uint4 v_40 = arg_0_params[((264u + start_byte_offset) / 16u)];
+  tint_GammaTransferParams v_41 = v_25;
+  tint_GammaTransferParams v_42 = v_26;
+  tint_ExternalTextureParams v_43 = {v_22, v_23, v_24, v_41, v_42, v_27, v_28, v_29, v_31, v_33, v_35, v_37, v_39, asfloat(((((((264u + start_byte_offset) % 16u) / 4u) == 2u)) ? (v_40.zw) : (v_40.xy)))};
+  return v_43;
+}
+
+uint2 textureDimensions_cdc6c9() {
+  tint_ExternalTextureParams v_44 = v_21(0u);
+  uint2 res = (v_44.visibleSize + (1u).xx);
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store2(0u, textureDimensions_cdc6c9());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store2(0u, textureDimensions_cdc6c9());
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = textureDimensions_cdc6c9();
+  VertexOutput v_45 = tint_symbol;
+  return v_45;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_46 = vertex_main_inner();
+  VertexOutput v_47 = v_46;
+  VertexOutput v_48 = v_46;
+  vertex_main_outputs v_49 = {v_48.prevent_dce, v_47.pos};
+  return v_49;
+}
+
diff --git a/test/tint/builtins/gen/literal/textureDimensions/cdc6c9.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/textureDimensions/cdc6c9.wgsl.expected.ir.fxc.hlsl
index 1fac62e..5edbb57 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/cdc6c9.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/cdc6c9.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,135 @@
-SKIP: FAILED
+struct tint_GammaTransferParams {
+  float G;
+  float A;
+  float B;
+  float C;
+  float D;
+  float E;
+  float F;
+  uint padding;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureDimensions
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct tint_ExternalTextureParams {
+  uint numPlanes;
+  uint doYuvToRgbConversionOnly;
+  float3x4 yuvToRgbConversionMatrix;
+  tint_GammaTransferParams gammaDecodeParams;
+  tint_GammaTransferParams gammaEncodeParams;
+  float3x3 gamutConversionMatrix;
+  float3x2 sampleTransform;
+  float3x2 loadTransform;
+  float2 samplePlane0RectMin;
+  float2 samplePlane0RectMax;
+  float2 samplePlane1RectMin;
+  float2 samplePlane1RectMax;
+  uint2 visibleSize;
+  float2 plane1CoordFactor;
+};
+
+struct VertexOutput {
+  float4 pos;
+  uint2 prevent_dce;
+};
+
+struct vertex_main_outputs {
+  nointerpolation uint2 VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+Texture2D<float4> arg_0_plane0 : register(t0, space1);
+Texture2D<float4> arg_0_plane1 : register(t1, space1);
+cbuffer cbuffer_arg_0_params : register(b2, space1) {
+  uint4 arg_0_params[17];
+};
+float3x2 v(uint start_byte_offset) {
+  uint4 v_1 = arg_0_params[(start_byte_offset / 16u)];
+  float2 v_2 = asfloat((((((start_byte_offset % 16u) / 4u) == 2u)) ? (v_1.zw) : (v_1.xy)));
+  uint4 v_3 = arg_0_params[((8u + start_byte_offset) / 16u)];
+  float2 v_4 = asfloat(((((((8u + start_byte_offset) % 16u) / 4u) == 2u)) ? (v_3.zw) : (v_3.xy)));
+  uint4 v_5 = arg_0_params[((16u + start_byte_offset) / 16u)];
+  return float3x2(v_2, v_4, asfloat(((((((16u + start_byte_offset) % 16u) / 4u) == 2u)) ? (v_5.zw) : (v_5.xy))));
+}
+
+float3x3 v_6(uint start_byte_offset) {
+  float3 v_7 = asfloat(arg_0_params[(start_byte_offset / 16u)].xyz);
+  float3 v_8 = asfloat(arg_0_params[((16u + start_byte_offset) / 16u)].xyz);
+  return float3x3(v_7, v_8, asfloat(arg_0_params[((32u + start_byte_offset) / 16u)].xyz));
+}
+
+tint_GammaTransferParams v_9(uint start_byte_offset) {
+  float v_10 = asfloat(arg_0_params[(start_byte_offset / 16u)][((start_byte_offset % 16u) / 4u)]);
+  float v_11 = asfloat(arg_0_params[((4u + start_byte_offset) / 16u)][(((4u + start_byte_offset) % 16u) / 4u)]);
+  float v_12 = asfloat(arg_0_params[((8u + start_byte_offset) / 16u)][(((8u + start_byte_offset) % 16u) / 4u)]);
+  float v_13 = asfloat(arg_0_params[((12u + start_byte_offset) / 16u)][(((12u + start_byte_offset) % 16u) / 4u)]);
+  float v_14 = asfloat(arg_0_params[((16u + start_byte_offset) / 16u)][(((16u + start_byte_offset) % 16u) / 4u)]);
+  float v_15 = asfloat(arg_0_params[((20u + start_byte_offset) / 16u)][(((20u + start_byte_offset) % 16u) / 4u)]);
+  float v_16 = asfloat(arg_0_params[((24u + start_byte_offset) / 16u)][(((24u + start_byte_offset) % 16u) / 4u)]);
+  tint_GammaTransferParams v_17 = {v_10, v_11, v_12, v_13, v_14, v_15, v_16, arg_0_params[((28u + start_byte_offset) / 16u)][(((28u + start_byte_offset) % 16u) / 4u)]};
+  return v_17;
+}
+
+float3x4 v_18(uint start_byte_offset) {
+  float4 v_19 = asfloat(arg_0_params[(start_byte_offset / 16u)]);
+  float4 v_20 = asfloat(arg_0_params[((16u + start_byte_offset) / 16u)]);
+  return float3x4(v_19, v_20, asfloat(arg_0_params[((32u + start_byte_offset) / 16u)]));
+}
+
+tint_ExternalTextureParams v_21(uint start_byte_offset) {
+  uint v_22 = arg_0_params[(start_byte_offset / 16u)][((start_byte_offset % 16u) / 4u)];
+  uint v_23 = arg_0_params[((4u + start_byte_offset) / 16u)][(((4u + start_byte_offset) % 16u) / 4u)];
+  float3x4 v_24 = v_18((16u + start_byte_offset));
+  tint_GammaTransferParams v_25 = v_9((64u + start_byte_offset));
+  tint_GammaTransferParams v_26 = v_9((96u + start_byte_offset));
+  float3x3 v_27 = v_6((128u + start_byte_offset));
+  float3x2 v_28 = v((176u + start_byte_offset));
+  float3x2 v_29 = v((200u + start_byte_offset));
+  uint4 v_30 = arg_0_params[((224u + start_byte_offset) / 16u)];
+  float2 v_31 = asfloat(((((((224u + start_byte_offset) % 16u) / 4u) == 2u)) ? (v_30.zw) : (v_30.xy)));
+  uint4 v_32 = arg_0_params[((232u + start_byte_offset) / 16u)];
+  float2 v_33 = asfloat(((((((232u + start_byte_offset) % 16u) / 4u) == 2u)) ? (v_32.zw) : (v_32.xy)));
+  uint4 v_34 = arg_0_params[((240u + start_byte_offset) / 16u)];
+  float2 v_35 = asfloat(((((((240u + start_byte_offset) % 16u) / 4u) == 2u)) ? (v_34.zw) : (v_34.xy)));
+  uint4 v_36 = arg_0_params[((248u + start_byte_offset) / 16u)];
+  float2 v_37 = asfloat(((((((248u + start_byte_offset) % 16u) / 4u) == 2u)) ? (v_36.zw) : (v_36.xy)));
+  uint4 v_38 = arg_0_params[((256u + start_byte_offset) / 16u)];
+  uint2 v_39 = ((((((256u + start_byte_offset) % 16u) / 4u) == 2u)) ? (v_38.zw) : (v_38.xy));
+  uint4 v_40 = arg_0_params[((264u + start_byte_offset) / 16u)];
+  tint_GammaTransferParams v_41 = v_25;
+  tint_GammaTransferParams v_42 = v_26;
+  tint_ExternalTextureParams v_43 = {v_22, v_23, v_24, v_41, v_42, v_27, v_28, v_29, v_31, v_33, v_35, v_37, v_39, asfloat(((((((264u + start_byte_offset) % 16u) / 4u) == 2u)) ? (v_40.zw) : (v_40.xy)))};
+  return v_43;
+}
+
+uint2 textureDimensions_cdc6c9() {
+  tint_ExternalTextureParams v_44 = v_21(0u);
+  uint2 res = (v_44.visibleSize + (1u).xx);
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store2(0u, textureDimensions_cdc6c9());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store2(0u, textureDimensions_cdc6c9());
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = textureDimensions_cdc6c9();
+  VertexOutput v_45 = tint_symbol;
+  return v_45;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_46 = vertex_main_inner();
+  VertexOutput v_47 = v_46;
+  VertexOutput v_48 = v_46;
+  vertex_main_outputs v_49 = {v_48.prevent_dce, v_47.pos};
+  return v_49;
+}
+
diff --git a/test/tint/builtins/gen/literal/textureDimensions/cedabd.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/textureDimensions/cedabd.wgsl.expected.ir.dxc.hlsl
index 1fac62e..2dd495f 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/cedabd.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/cedabd.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,45 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  uint prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureDimensions
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation uint VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+Texture1D<int4> arg_0 : register(t0, space1);
+uint textureDimensions_cedabd() {
+  uint v = 0u;
+  arg_0.GetDimensions(v);
+  uint res = v;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store(0u, textureDimensions_cedabd());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store(0u, textureDimensions_cedabd());
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = textureDimensions_cedabd();
+  VertexOutput v_1 = tint_symbol;
+  return v_1;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_2 = vertex_main_inner();
+  VertexOutput v_3 = v_2;
+  VertexOutput v_4 = v_2;
+  vertex_main_outputs v_5 = {v_4.prevent_dce, v_3.pos};
+  return v_5;
+}
+
diff --git a/test/tint/builtins/gen/literal/textureDimensions/cedabd.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/textureDimensions/cedabd.wgsl.expected.ir.fxc.hlsl
index 1fac62e..2dd495f 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/cedabd.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/cedabd.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,45 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  uint prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureDimensions
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation uint VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+Texture1D<int4> arg_0 : register(t0, space1);
+uint textureDimensions_cedabd() {
+  uint v = 0u;
+  arg_0.GetDimensions(v);
+  uint res = v;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store(0u, textureDimensions_cedabd());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store(0u, textureDimensions_cedabd());
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = textureDimensions_cedabd();
+  VertexOutput v_1 = tint_symbol;
+  return v_1;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_2 = vertex_main_inner();
+  VertexOutput v_3 = v_2;
+  VertexOutput v_4 = v_2;
+  vertex_main_outputs v_5 = {v_4.prevent_dce, v_3.pos};
+  return v_5;
+}
+
diff --git a/test/tint/builtins/gen/literal/textureDimensions/cf2b50.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/textureDimensions/cf2b50.wgsl.expected.ir.dxc.hlsl
index 1fac62e..9060536 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/cf2b50.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/cf2b50.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,46 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  uint2 prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureDimensions
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation uint2 VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+TextureCubeArray<float4> arg_0 : register(t0, space1);
+uint2 textureDimensions_cf2b50() {
+  TextureCubeArray<float4> v = arg_0;
+  uint4 v_1 = (0u).xxxx;
+  v.GetDimensions(uint(1u), v_1[0u], v_1[1u], v_1[2u], v_1[3u]);
+  uint2 res = v_1.xy;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store2(0u, textureDimensions_cf2b50());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store2(0u, textureDimensions_cf2b50());
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = textureDimensions_cf2b50();
+  VertexOutput v_2 = tint_symbol;
+  return v_2;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_3 = vertex_main_inner();
+  VertexOutput v_4 = v_3;
+  VertexOutput v_5 = v_3;
+  vertex_main_outputs v_6 = {v_5.prevent_dce, v_4.pos};
+  return v_6;
+}
+
diff --git a/test/tint/builtins/gen/literal/textureDimensions/cf2b50.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/textureDimensions/cf2b50.wgsl.expected.ir.fxc.hlsl
index 1fac62e..9060536 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/cf2b50.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/cf2b50.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,46 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  uint2 prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureDimensions
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation uint2 VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+TextureCubeArray<float4> arg_0 : register(t0, space1);
+uint2 textureDimensions_cf2b50() {
+  TextureCubeArray<float4> v = arg_0;
+  uint4 v_1 = (0u).xxxx;
+  v.GetDimensions(uint(1u), v_1[0u], v_1[1u], v_1[2u], v_1[3u]);
+  uint2 res = v_1.xy;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store2(0u, textureDimensions_cf2b50());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store2(0u, textureDimensions_cf2b50());
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = textureDimensions_cf2b50();
+  VertexOutput v_2 = tint_symbol;
+  return v_2;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_3 = vertex_main_inner();
+  VertexOutput v_4 = v_3;
+  VertexOutput v_5 = v_3;
+  vertex_main_outputs v_6 = {v_5.prevent_dce, v_4.pos};
+  return v_6;
+}
+
diff --git a/test/tint/builtins/gen/literal/textureDimensions/d0778e.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/textureDimensions/d0778e.wgsl.expected.ir.dxc.hlsl
index 1fac62e..a2d5aeb 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/d0778e.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/d0778e.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,45 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  uint3 prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureDimensions
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation uint3 VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+Texture3D<uint4> arg_0 : register(t0, space1);
+uint3 textureDimensions_d0778e() {
+  uint3 v = (0u).xxx;
+  arg_0.GetDimensions(v[0u], v[1u], v[2u]);
+  uint3 res = v;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store3(0u, textureDimensions_d0778e());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store3(0u, textureDimensions_d0778e());
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = textureDimensions_d0778e();
+  VertexOutput v_1 = tint_symbol;
+  return v_1;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_2 = vertex_main_inner();
+  VertexOutput v_3 = v_2;
+  VertexOutput v_4 = v_2;
+  vertex_main_outputs v_5 = {v_4.prevent_dce, v_3.pos};
+  return v_5;
+}
+
diff --git a/test/tint/builtins/gen/literal/textureDimensions/d0778e.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/textureDimensions/d0778e.wgsl.expected.ir.fxc.hlsl
index 1fac62e..a2d5aeb 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/d0778e.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/d0778e.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,45 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  uint3 prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureDimensions
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation uint3 VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+Texture3D<uint4> arg_0 : register(t0, space1);
+uint3 textureDimensions_d0778e() {
+  uint3 v = (0u).xxx;
+  arg_0.GetDimensions(v[0u], v[1u], v[2u]);
+  uint3 res = v;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store3(0u, textureDimensions_d0778e());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store3(0u, textureDimensions_d0778e());
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = textureDimensions_d0778e();
+  VertexOutput v_1 = tint_symbol;
+  return v_1;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_2 = vertex_main_inner();
+  VertexOutput v_3 = v_2;
+  VertexOutput v_4 = v_2;
+  vertex_main_outputs v_5 = {v_4.prevent_dce, v_3.pos};
+  return v_5;
+}
+
diff --git a/test/tint/builtins/gen/literal/textureDimensions/d08a94.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/textureDimensions/d08a94.wgsl.expected.ir.dxc.hlsl
index 1fac62e..bc35392 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/d08a94.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/d08a94.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,19 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureDimensions
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWByteAddressBuffer prevent_dce : register(u0);
+RWTexture1D<int4> arg_0 : register(u0, space1);
+uint textureDimensions_d08a94() {
+  uint v = 0u;
+  arg_0.GetDimensions(v);
+  uint res = v;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store(0u, textureDimensions_d08a94());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store(0u, textureDimensions_d08a94());
+}
+
diff --git a/test/tint/builtins/gen/literal/textureDimensions/d08a94.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/textureDimensions/d08a94.wgsl.expected.ir.fxc.hlsl
index 1fac62e..bc35392 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/d08a94.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/d08a94.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,19 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureDimensions
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWByteAddressBuffer prevent_dce : register(u0);
+RWTexture1D<int4> arg_0 : register(u0, space1);
+uint textureDimensions_d08a94() {
+  uint v = 0u;
+  arg_0.GetDimensions(v);
+  uint res = v;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store(0u, textureDimensions_d08a94());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store(0u, textureDimensions_d08a94());
+}
+
diff --git a/test/tint/builtins/gen/literal/textureDimensions/d1b882.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/textureDimensions/d1b882.wgsl.expected.ir.dxc.hlsl
index 1fac62e..aa63828 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/d1b882.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/d1b882.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,19 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureDimensions
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWByteAddressBuffer prevent_dce : register(u0);
+RWTexture2DArray<float4> arg_0 : register(u0, space1);
+uint2 textureDimensions_d1b882() {
+  uint3 v = (0u).xxx;
+  arg_0.GetDimensions(v[0u], v[1u], v[2u]);
+  uint2 res = v.xy;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store2(0u, textureDimensions_d1b882());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store2(0u, textureDimensions_d1b882());
+}
+
diff --git a/test/tint/builtins/gen/literal/textureDimensions/d1b882.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/textureDimensions/d1b882.wgsl.expected.ir.fxc.hlsl
index 1fac62e..aa63828 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/d1b882.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/d1b882.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,19 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureDimensions
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWByteAddressBuffer prevent_dce : register(u0);
+RWTexture2DArray<float4> arg_0 : register(u0, space1);
+uint2 textureDimensions_d1b882() {
+  uint3 v = (0u).xxx;
+  arg_0.GetDimensions(v[0u], v[1u], v[2u]);
+  uint2 res = v.xy;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store2(0u, textureDimensions_d1b882());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store2(0u, textureDimensions_d1b882());
+}
+
diff --git a/test/tint/builtins/gen/literal/textureDimensions/d3accd.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/textureDimensions/d3accd.wgsl.expected.ir.dxc.hlsl
index 1fac62e..5bde41a 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/d3accd.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/d3accd.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,46 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  uint2 prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureDimensions
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation uint2 VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+TextureCube arg_0 : register(t0, space1);
+uint2 textureDimensions_d3accd() {
+  TextureCube v = arg_0;
+  uint3 v_1 = (0u).xxx;
+  v.GetDimensions(uint(1u), v_1[0u], v_1[1u], v_1[2u]);
+  uint2 res = v_1.xy;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store2(0u, textureDimensions_d3accd());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store2(0u, textureDimensions_d3accd());
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = textureDimensions_d3accd();
+  VertexOutput v_2 = tint_symbol;
+  return v_2;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_3 = vertex_main_inner();
+  VertexOutput v_4 = v_3;
+  VertexOutput v_5 = v_3;
+  vertex_main_outputs v_6 = {v_5.prevent_dce, v_4.pos};
+  return v_6;
+}
+
diff --git a/test/tint/builtins/gen/literal/textureDimensions/d3accd.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/textureDimensions/d3accd.wgsl.expected.ir.fxc.hlsl
index 1fac62e..5bde41a 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/d3accd.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/d3accd.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,46 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  uint2 prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureDimensions
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation uint2 VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+TextureCube arg_0 : register(t0, space1);
+uint2 textureDimensions_d3accd() {
+  TextureCube v = arg_0;
+  uint3 v_1 = (0u).xxx;
+  v.GetDimensions(uint(1u), v_1[0u], v_1[1u], v_1[2u]);
+  uint2 res = v_1.xy;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store2(0u, textureDimensions_d3accd());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store2(0u, textureDimensions_d3accd());
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = textureDimensions_d3accd();
+  VertexOutput v_2 = tint_symbol;
+  return v_2;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_3 = vertex_main_inner();
+  VertexOutput v_4 = v_3;
+  VertexOutput v_5 = v_3;
+  vertex_main_outputs v_6 = {v_5.prevent_dce, v_4.pos};
+  return v_6;
+}
+
diff --git a/test/tint/builtins/gen/literal/textureDimensions/d44ac3.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/textureDimensions/d44ac3.wgsl.expected.ir.dxc.hlsl
index 1fac62e..0ec2e01 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/d44ac3.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/d44ac3.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,45 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  uint2 prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureDimensions
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation uint2 VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+Texture2D<float4> arg_0 : register(t0, space1);
+uint2 textureDimensions_d44ac3() {
+  uint2 v = (0u).xx;
+  arg_0.GetDimensions(v[0u], v[1u]);
+  uint2 res = v;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store2(0u, textureDimensions_d44ac3());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store2(0u, textureDimensions_d44ac3());
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = textureDimensions_d44ac3();
+  VertexOutput v_1 = tint_symbol;
+  return v_1;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_2 = vertex_main_inner();
+  VertexOutput v_3 = v_2;
+  VertexOutput v_4 = v_2;
+  vertex_main_outputs v_5 = {v_4.prevent_dce, v_3.pos};
+  return v_5;
+}
+
diff --git a/test/tint/builtins/gen/literal/textureDimensions/d44ac3.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/textureDimensions/d44ac3.wgsl.expected.ir.fxc.hlsl
index 1fac62e..0ec2e01 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/d44ac3.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/d44ac3.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,45 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  uint2 prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureDimensions
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation uint2 VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+Texture2D<float4> arg_0 : register(t0, space1);
+uint2 textureDimensions_d44ac3() {
+  uint2 v = (0u).xx;
+  arg_0.GetDimensions(v[0u], v[1u]);
+  uint2 res = v;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store2(0u, textureDimensions_d44ac3());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store2(0u, textureDimensions_d44ac3());
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = textureDimensions_d44ac3();
+  VertexOutput v_1 = tint_symbol;
+  return v_1;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_2 = vertex_main_inner();
+  VertexOutput v_3 = v_2;
+  VertexOutput v_4 = v_2;
+  vertex_main_outputs v_5 = {v_4.prevent_dce, v_3.pos};
+  return v_5;
+}
+
diff --git a/test/tint/builtins/gen/literal/textureDimensions/d44dd1.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/textureDimensions/d44dd1.wgsl.expected.ir.dxc.hlsl
index 1fac62e..089c76b2 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/d44dd1.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/d44dd1.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,45 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  uint2 prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureDimensions
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation uint2 VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+Texture2D<uint4> arg_0 : register(t0, space1);
+uint2 textureDimensions_d44dd1() {
+  uint2 v = (0u).xx;
+  arg_0.GetDimensions(v[0u], v[1u]);
+  uint2 res = v;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store2(0u, textureDimensions_d44dd1());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store2(0u, textureDimensions_d44dd1());
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = textureDimensions_d44dd1();
+  VertexOutput v_1 = tint_symbol;
+  return v_1;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_2 = vertex_main_inner();
+  VertexOutput v_3 = v_2;
+  VertexOutput v_4 = v_2;
+  vertex_main_outputs v_5 = {v_4.prevent_dce, v_3.pos};
+  return v_5;
+}
+
diff --git a/test/tint/builtins/gen/literal/textureDimensions/d44dd1.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/textureDimensions/d44dd1.wgsl.expected.ir.fxc.hlsl
index 1fac62e..089c76b2 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/d44dd1.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/d44dd1.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,45 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  uint2 prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureDimensions
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation uint2 VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+Texture2D<uint4> arg_0 : register(t0, space1);
+uint2 textureDimensions_d44dd1() {
+  uint2 v = (0u).xx;
+  arg_0.GetDimensions(v[0u], v[1u]);
+  uint2 res = v;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store2(0u, textureDimensions_d44dd1());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store2(0u, textureDimensions_d44dd1());
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = textureDimensions_d44dd1();
+  VertexOutput v_1 = tint_symbol;
+  return v_1;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_2 = vertex_main_inner();
+  VertexOutput v_3 = v_2;
+  VertexOutput v_4 = v_2;
+  vertex_main_outputs v_5 = {v_4.prevent_dce, v_3.pos};
+  return v_5;
+}
+
diff --git a/test/tint/builtins/gen/literal/textureDimensions/d63c28.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/textureDimensions/d63c28.wgsl.expected.ir.dxc.hlsl
index 1fac62e..63e2d87 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/d63c28.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/d63c28.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,19 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureDimensions
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWByteAddressBuffer prevent_dce : register(u0);
+RWTexture2DArray<float4> arg_0 : register(u0, space1);
+uint2 textureDimensions_d63c28() {
+  uint3 v = (0u).xxx;
+  arg_0.GetDimensions(v[0u], v[1u], v[2u]);
+  uint2 res = v.xy;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store2(0u, textureDimensions_d63c28());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store2(0u, textureDimensions_d63c28());
+}
+
diff --git a/test/tint/builtins/gen/literal/textureDimensions/d63c28.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/textureDimensions/d63c28.wgsl.expected.ir.fxc.hlsl
index 1fac62e..63e2d87 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/d63c28.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/d63c28.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,19 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureDimensions
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWByteAddressBuffer prevent_dce : register(u0);
+RWTexture2DArray<float4> arg_0 : register(u0, space1);
+uint2 textureDimensions_d63c28() {
+  uint3 v = (0u).xxx;
+  arg_0.GetDimensions(v[0u], v[1u], v[2u]);
+  uint2 res = v.xy;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store2(0u, textureDimensions_d63c28());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store2(0u, textureDimensions_d63c28());
+}
+
diff --git a/test/tint/builtins/gen/literal/textureDimensions/d6f3cf.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/textureDimensions/d6f3cf.wgsl.expected.ir.dxc.hlsl
index 1fac62e..ac09102 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/d6f3cf.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/d6f3cf.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,45 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  uint2 prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureDimensions
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation uint2 VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+Texture2D<int4> arg_0 : register(t0, space1);
+uint2 textureDimensions_d6f3cf() {
+  uint2 v = (0u).xx;
+  arg_0.GetDimensions(v[0u], v[1u]);
+  uint2 res = v;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store2(0u, textureDimensions_d6f3cf());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store2(0u, textureDimensions_d6f3cf());
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = textureDimensions_d6f3cf();
+  VertexOutput v_1 = tint_symbol;
+  return v_1;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_2 = vertex_main_inner();
+  VertexOutput v_3 = v_2;
+  VertexOutput v_4 = v_2;
+  vertex_main_outputs v_5 = {v_4.prevent_dce, v_3.pos};
+  return v_5;
+}
+
diff --git a/test/tint/builtins/gen/literal/textureDimensions/d6f3cf.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/textureDimensions/d6f3cf.wgsl.expected.ir.fxc.hlsl
index 1fac62e..ac09102 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/d6f3cf.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/d6f3cf.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,45 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  uint2 prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureDimensions
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation uint2 VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+Texture2D<int4> arg_0 : register(t0, space1);
+uint2 textureDimensions_d6f3cf() {
+  uint2 v = (0u).xx;
+  arg_0.GetDimensions(v[0u], v[1u]);
+  uint2 res = v;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store2(0u, textureDimensions_d6f3cf());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store2(0u, textureDimensions_d6f3cf());
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = textureDimensions_d6f3cf();
+  VertexOutput v_1 = tint_symbol;
+  return v_1;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_2 = vertex_main_inner();
+  VertexOutput v_3 = v_2;
+  VertexOutput v_4 = v_2;
+  vertex_main_outputs v_5 = {v_4.prevent_dce, v_3.pos};
+  return v_5;
+}
+
diff --git a/test/tint/builtins/gen/literal/textureDimensions/d8ba68.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/textureDimensions/d8ba68.wgsl.expected.ir.dxc.hlsl
index 1fac62e..6efdde7 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/d8ba68.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/d8ba68.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,19 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureDimensions
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWByteAddressBuffer prevent_dce : register(u0);
+RWTexture2D<uint4> arg_0 : register(u0, space1);
+uint2 textureDimensions_d8ba68() {
+  uint2 v = (0u).xx;
+  arg_0.GetDimensions(v[0u], v[1u]);
+  uint2 res = v;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store2(0u, textureDimensions_d8ba68());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store2(0u, textureDimensions_d8ba68());
+}
+
diff --git a/test/tint/builtins/gen/literal/textureDimensions/d8ba68.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/textureDimensions/d8ba68.wgsl.expected.ir.fxc.hlsl
index 1fac62e..6efdde7 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/d8ba68.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/d8ba68.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,19 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureDimensions
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWByteAddressBuffer prevent_dce : register(u0);
+RWTexture2D<uint4> arg_0 : register(u0, space1);
+uint2 textureDimensions_d8ba68() {
+  uint2 v = (0u).xx;
+  arg_0.GetDimensions(v[0u], v[1u]);
+  uint2 res = v;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store2(0u, textureDimensions_d8ba68());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store2(0u, textureDimensions_d8ba68());
+}
+
diff --git a/test/tint/builtins/gen/literal/textureDimensions/d8f887.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/textureDimensions/d8f887.wgsl.expected.ir.dxc.hlsl
index 1fac62e..70909c3 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/d8f887.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/d8f887.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,19 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureDimensions
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWByteAddressBuffer prevent_dce : register(u0);
+RWTexture3D<uint4> arg_0 : register(u0, space1);
+uint3 textureDimensions_d8f887() {
+  uint3 v = (0u).xxx;
+  arg_0.GetDimensions(v[0u], v[1u], v[2u]);
+  uint3 res = v;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store3(0u, textureDimensions_d8f887());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store3(0u, textureDimensions_d8f887());
+}
+
diff --git a/test/tint/builtins/gen/literal/textureDimensions/d8f887.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/textureDimensions/d8f887.wgsl.expected.ir.fxc.hlsl
index 1fac62e..70909c3 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/d8f887.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/d8f887.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,19 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureDimensions
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWByteAddressBuffer prevent_dce : register(u0);
+RWTexture3D<uint4> arg_0 : register(u0, space1);
+uint3 textureDimensions_d8f887() {
+  uint3 v = (0u).xxx;
+  arg_0.GetDimensions(v[0u], v[1u], v[2u]);
+  uint3 res = v;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store3(0u, textureDimensions_d8f887());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store3(0u, textureDimensions_d8f887());
+}
+
diff --git a/test/tint/builtins/gen/literal/textureDimensions/da30d2.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/textureDimensions/da30d2.wgsl.expected.ir.dxc.hlsl
index 1fac62e..9072019 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/da30d2.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/da30d2.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,19 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureDimensions
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWByteAddressBuffer prevent_dce : register(u0);
+RWTexture1D<float4> arg_0 : register(u0, space1);
+uint textureDimensions_da30d2() {
+  uint v = 0u;
+  arg_0.GetDimensions(v);
+  uint res = v;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store(0u, textureDimensions_da30d2());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store(0u, textureDimensions_da30d2());
+}
+
diff --git a/test/tint/builtins/gen/literal/textureDimensions/da30d2.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/textureDimensions/da30d2.wgsl.expected.ir.fxc.hlsl
index 1fac62e..9072019 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/da30d2.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/da30d2.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,19 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureDimensions
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWByteAddressBuffer prevent_dce : register(u0);
+RWTexture1D<float4> arg_0 : register(u0, space1);
+uint textureDimensions_da30d2() {
+  uint v = 0u;
+  arg_0.GetDimensions(v);
+  uint res = v;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store(0u, textureDimensions_da30d2());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store(0u, textureDimensions_da30d2());
+}
+
diff --git a/test/tint/builtins/gen/literal/textureDimensions/daf0fe.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/textureDimensions/daf0fe.wgsl.expected.ir.dxc.hlsl
index 1fac62e..1c6350a 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/daf0fe.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/daf0fe.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,45 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  uint2 prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureDimensions
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation uint2 VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+Texture2DArray<float4> arg_0 : register(t0, space1);
+uint2 textureDimensions_daf0fe() {
+  uint3 v = (0u).xxx;
+  arg_0.GetDimensions(v[0u], v[1u], v[2u]);
+  uint2 res = v.xy;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store2(0u, textureDimensions_daf0fe());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store2(0u, textureDimensions_daf0fe());
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = textureDimensions_daf0fe();
+  VertexOutput v_1 = tint_symbol;
+  return v_1;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_2 = vertex_main_inner();
+  VertexOutput v_3 = v_2;
+  VertexOutput v_4 = v_2;
+  vertex_main_outputs v_5 = {v_4.prevent_dce, v_3.pos};
+  return v_5;
+}
+
diff --git a/test/tint/builtins/gen/literal/textureDimensions/daf0fe.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/textureDimensions/daf0fe.wgsl.expected.ir.fxc.hlsl
index 1fac62e..1c6350a 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/daf0fe.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/daf0fe.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,45 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  uint2 prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureDimensions
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation uint2 VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+Texture2DArray<float4> arg_0 : register(t0, space1);
+uint2 textureDimensions_daf0fe() {
+  uint3 v = (0u).xxx;
+  arg_0.GetDimensions(v[0u], v[1u], v[2u]);
+  uint2 res = v.xy;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store2(0u, textureDimensions_daf0fe());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store2(0u, textureDimensions_daf0fe());
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = textureDimensions_daf0fe();
+  VertexOutput v_1 = tint_symbol;
+  return v_1;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_2 = vertex_main_inner();
+  VertexOutput v_3 = v_2;
+  VertexOutput v_4 = v_2;
+  vertex_main_outputs v_5 = {v_4.prevent_dce, v_3.pos};
+  return v_5;
+}
+
diff --git a/test/tint/builtins/gen/literal/textureDimensions/db7131.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/textureDimensions/db7131.wgsl.expected.ir.dxc.hlsl
index 1fac62e..fc45430 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/db7131.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/db7131.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,45 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  uint3 prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureDimensions
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation uint3 VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+Texture3D<int4> arg_0 : register(t0, space1);
+uint3 textureDimensions_db7131() {
+  uint3 v = (0u).xxx;
+  arg_0.GetDimensions(v[0u], v[1u], v[2u]);
+  uint3 res = v;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store3(0u, textureDimensions_db7131());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store3(0u, textureDimensions_db7131());
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = textureDimensions_db7131();
+  VertexOutput v_1 = tint_symbol;
+  return v_1;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_2 = vertex_main_inner();
+  VertexOutput v_3 = v_2;
+  VertexOutput v_4 = v_2;
+  vertex_main_outputs v_5 = {v_4.prevent_dce, v_3.pos};
+  return v_5;
+}
+
diff --git a/test/tint/builtins/gen/literal/textureDimensions/db7131.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/textureDimensions/db7131.wgsl.expected.ir.fxc.hlsl
index 1fac62e..fc45430 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/db7131.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/db7131.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,45 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  uint3 prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureDimensions
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation uint3 VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+Texture3D<int4> arg_0 : register(t0, space1);
+uint3 textureDimensions_db7131() {
+  uint3 v = (0u).xxx;
+  arg_0.GetDimensions(v[0u], v[1u], v[2u]);
+  uint3 res = v;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store3(0u, textureDimensions_db7131());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store3(0u, textureDimensions_db7131());
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = textureDimensions_db7131();
+  VertexOutput v_1 = tint_symbol;
+  return v_1;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_2 = vertex_main_inner();
+  VertexOutput v_3 = v_2;
+  VertexOutput v_4 = v_2;
+  vertex_main_outputs v_5 = {v_4.prevent_dce, v_3.pos};
+  return v_5;
+}
+
diff --git a/test/tint/builtins/gen/literal/textureDimensions/dc83ce.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/textureDimensions/dc83ce.wgsl.expected.ir.dxc.hlsl
index 1fac62e..8100087 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/dc83ce.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/dc83ce.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,19 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureDimensions
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWByteAddressBuffer prevent_dce : register(u0);
+RWTexture2D<uint4> arg_0 : register(u0, space1);
+uint2 textureDimensions_dc83ce() {
+  uint2 v = (0u).xx;
+  arg_0.GetDimensions(v[0u], v[1u]);
+  uint2 res = v;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store2(0u, textureDimensions_dc83ce());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store2(0u, textureDimensions_dc83ce());
+}
+
diff --git a/test/tint/builtins/gen/literal/textureDimensions/dc83ce.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/textureDimensions/dc83ce.wgsl.expected.ir.fxc.hlsl
index 1fac62e..8100087 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/dc83ce.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/dc83ce.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,19 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureDimensions
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWByteAddressBuffer prevent_dce : register(u0);
+RWTexture2D<uint4> arg_0 : register(u0, space1);
+uint2 textureDimensions_dc83ce() {
+  uint2 v = (0u).xx;
+  arg_0.GetDimensions(v[0u], v[1u]);
+  uint2 res = v;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store2(0u, textureDimensions_dc83ce());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store2(0u, textureDimensions_dc83ce());
+}
+
diff --git a/test/tint/builtins/gen/literal/textureDimensions/de03c6.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/textureDimensions/de03c6.wgsl.expected.ir.dxc.hlsl
index 1fac62e..eec7c2e 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/de03c6.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/de03c6.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,45 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  uint prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureDimensions
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation uint VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+Texture1D<uint4> arg_0 : register(t0, space1);
+uint textureDimensions_de03c6() {
+  uint v = 0u;
+  arg_0.GetDimensions(v);
+  uint res = v;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store(0u, textureDimensions_de03c6());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store(0u, textureDimensions_de03c6());
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = textureDimensions_de03c6();
+  VertexOutput v_1 = tint_symbol;
+  return v_1;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_2 = vertex_main_inner();
+  VertexOutput v_3 = v_2;
+  VertexOutput v_4 = v_2;
+  vertex_main_outputs v_5 = {v_4.prevent_dce, v_3.pos};
+  return v_5;
+}
+
diff --git a/test/tint/builtins/gen/literal/textureDimensions/de03c6.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/textureDimensions/de03c6.wgsl.expected.ir.fxc.hlsl
index 1fac62e..eec7c2e 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/de03c6.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/de03c6.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,45 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  uint prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureDimensions
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation uint VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+Texture1D<uint4> arg_0 : register(t0, space1);
+uint textureDimensions_de03c6() {
+  uint v = 0u;
+  arg_0.GetDimensions(v);
+  uint res = v;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store(0u, textureDimensions_de03c6());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store(0u, textureDimensions_de03c6());
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = textureDimensions_de03c6();
+  VertexOutput v_1 = tint_symbol;
+  return v_1;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_2 = vertex_main_inner();
+  VertexOutput v_3 = v_2;
+  VertexOutput v_4 = v_2;
+  vertex_main_outputs v_5 = {v_4.prevent_dce, v_3.pos};
+  return v_5;
+}
+
diff --git a/test/tint/builtins/gen/literal/textureDimensions/deb3c0.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/textureDimensions/deb3c0.wgsl.expected.ir.dxc.hlsl
index 1fac62e..aac1c93 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/deb3c0.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/deb3c0.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,19 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureDimensions
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWByteAddressBuffer prevent_dce : register(u0);
+RWTexture3D<float4> arg_0 : register(u0, space1);
+uint3 textureDimensions_deb3c0() {
+  uint3 v = (0u).xxx;
+  arg_0.GetDimensions(v[0u], v[1u], v[2u]);
+  uint3 res = v;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store3(0u, textureDimensions_deb3c0());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store3(0u, textureDimensions_deb3c0());
+}
+
diff --git a/test/tint/builtins/gen/literal/textureDimensions/deb3c0.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/textureDimensions/deb3c0.wgsl.expected.ir.fxc.hlsl
index 1fac62e..aac1c93 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/deb3c0.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/deb3c0.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,19 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureDimensions
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWByteAddressBuffer prevent_dce : register(u0);
+RWTexture3D<float4> arg_0 : register(u0, space1);
+uint3 textureDimensions_deb3c0() {
+  uint3 v = (0u).xxx;
+  arg_0.GetDimensions(v[0u], v[1u], v[2u]);
+  uint3 res = v;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store3(0u, textureDimensions_deb3c0());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store3(0u, textureDimensions_deb3c0());
+}
+
diff --git a/test/tint/builtins/gen/literal/textureDimensions/dee461.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/textureDimensions/dee461.wgsl.expected.ir.dxc.hlsl
index 1fac62e..2482b6e 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/dee461.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/dee461.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,19 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureDimensions
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWByteAddressBuffer prevent_dce : register(u0);
+RWTexture2D<float4> arg_0 : register(u0, space1);
+uint2 textureDimensions_dee461() {
+  uint2 v = (0u).xx;
+  arg_0.GetDimensions(v[0u], v[1u]);
+  uint2 res = v;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store2(0u, textureDimensions_dee461());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store2(0u, textureDimensions_dee461());
+}
+
diff --git a/test/tint/builtins/gen/literal/textureDimensions/dee461.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/textureDimensions/dee461.wgsl.expected.ir.fxc.hlsl
index 1fac62e..2482b6e 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/dee461.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/dee461.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,19 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureDimensions
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWByteAddressBuffer prevent_dce : register(u0);
+RWTexture2D<float4> arg_0 : register(u0, space1);
+uint2 textureDimensions_dee461() {
+  uint2 v = (0u).xx;
+  arg_0.GetDimensions(v[0u], v[1u]);
+  uint2 res = v;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store2(0u, textureDimensions_dee461());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store2(0u, textureDimensions_dee461());
+}
+
diff --git a/test/tint/builtins/gen/literal/textureDimensions/dfdc32.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/textureDimensions/dfdc32.wgsl.expected.ir.dxc.hlsl
index 1fac62e..c2fdcab 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/dfdc32.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/dfdc32.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,46 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  uint2 prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureDimensions
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation uint2 VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+Texture2DArray arg_0 : register(t0, space1);
+uint2 textureDimensions_dfdc32() {
+  Texture2DArray v = arg_0;
+  uint4 v_1 = (0u).xxxx;
+  v.GetDimensions(uint(1), v_1[0u], v_1[1u], v_1[2u], v_1[3u]);
+  uint2 res = v_1.xy;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store2(0u, textureDimensions_dfdc32());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store2(0u, textureDimensions_dfdc32());
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = textureDimensions_dfdc32();
+  VertexOutput v_2 = tint_symbol;
+  return v_2;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_3 = vertex_main_inner();
+  VertexOutput v_4 = v_3;
+  VertexOutput v_5 = v_3;
+  vertex_main_outputs v_6 = {v_5.prevent_dce, v_4.pos};
+  return v_6;
+}
+
diff --git a/test/tint/builtins/gen/literal/textureDimensions/dfdc32.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/textureDimensions/dfdc32.wgsl.expected.ir.fxc.hlsl
index 1fac62e..c2fdcab 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/dfdc32.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/dfdc32.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,46 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  uint2 prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureDimensions
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation uint2 VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+Texture2DArray arg_0 : register(t0, space1);
+uint2 textureDimensions_dfdc32() {
+  Texture2DArray v = arg_0;
+  uint4 v_1 = (0u).xxxx;
+  v.GetDimensions(uint(1), v_1[0u], v_1[1u], v_1[2u], v_1[3u]);
+  uint2 res = v_1.xy;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store2(0u, textureDimensions_dfdc32());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store2(0u, textureDimensions_dfdc32());
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = textureDimensions_dfdc32();
+  VertexOutput v_2 = tint_symbol;
+  return v_2;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_3 = vertex_main_inner();
+  VertexOutput v_4 = v_3;
+  VertexOutput v_5 = v_3;
+  vertex_main_outputs v_6 = {v_5.prevent_dce, v_4.pos};
+  return v_6;
+}
+
diff --git a/test/tint/builtins/gen/literal/textureDimensions/e122fe.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/textureDimensions/e122fe.wgsl.expected.ir.dxc.hlsl
index 1fac62e..18c8fb2 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/e122fe.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/e122fe.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,19 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureDimensions
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWByteAddressBuffer prevent_dce : register(u0);
+RWTexture1D<float4> arg_0 : register(u0, space1);
+uint textureDimensions_e122fe() {
+  uint v = 0u;
+  arg_0.GetDimensions(v);
+  uint res = v;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store(0u, textureDimensions_e122fe());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store(0u, textureDimensions_e122fe());
+}
+
diff --git a/test/tint/builtins/gen/literal/textureDimensions/e122fe.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/textureDimensions/e122fe.wgsl.expected.ir.fxc.hlsl
index 1fac62e..18c8fb2 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/e122fe.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/e122fe.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,19 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureDimensions
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWByteAddressBuffer prevent_dce : register(u0);
+RWTexture1D<float4> arg_0 : register(u0, space1);
+uint textureDimensions_e122fe() {
+  uint v = 0u;
+  arg_0.GetDimensions(v);
+  uint res = v;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store(0u, textureDimensions_e122fe());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store(0u, textureDimensions_e122fe());
+}
+
diff --git a/test/tint/builtins/gen/literal/textureDimensions/e18a8b.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/textureDimensions/e18a8b.wgsl.expected.ir.dxc.hlsl
index 1fac62e..42cc0f9 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/e18a8b.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/e18a8b.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,46 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  uint2 prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureDimensions
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation uint2 VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+Texture2D<uint4> arg_0 : register(t0, space1);
+uint2 textureDimensions_e18a8b() {
+  Texture2D<uint4> v = arg_0;
+  uint3 v_1 = (0u).xxx;
+  v.GetDimensions(uint(1u), v_1[0u], v_1[1u], v_1[2u]);
+  uint2 res = v_1.xy;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store2(0u, textureDimensions_e18a8b());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store2(0u, textureDimensions_e18a8b());
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = textureDimensions_e18a8b();
+  VertexOutput v_2 = tint_symbol;
+  return v_2;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_3 = vertex_main_inner();
+  VertexOutput v_4 = v_3;
+  VertexOutput v_5 = v_3;
+  vertex_main_outputs v_6 = {v_5.prevent_dce, v_4.pos};
+  return v_6;
+}
+
diff --git a/test/tint/builtins/gen/literal/textureDimensions/e18a8b.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/textureDimensions/e18a8b.wgsl.expected.ir.fxc.hlsl
index 1fac62e..42cc0f9 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/e18a8b.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/e18a8b.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,46 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  uint2 prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureDimensions
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation uint2 VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+Texture2D<uint4> arg_0 : register(t0, space1);
+uint2 textureDimensions_e18a8b() {
+  Texture2D<uint4> v = arg_0;
+  uint3 v_1 = (0u).xxx;
+  v.GetDimensions(uint(1u), v_1[0u], v_1[1u], v_1[2u]);
+  uint2 res = v_1.xy;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store2(0u, textureDimensions_e18a8b());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store2(0u, textureDimensions_e18a8b());
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = textureDimensions_e18a8b();
+  VertexOutput v_2 = tint_symbol;
+  return v_2;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_3 = vertex_main_inner();
+  VertexOutput v_4 = v_3;
+  VertexOutput v_5 = v_3;
+  vertex_main_outputs v_6 = {v_5.prevent_dce, v_4.pos};
+  return v_6;
+}
+
diff --git a/test/tint/builtins/gen/literal/textureDimensions/e4bfd2.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/textureDimensions/e4bfd2.wgsl.expected.ir.dxc.hlsl
index 1fac62e..5774f82 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/e4bfd2.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/e4bfd2.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,45 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  uint2 prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureDimensions
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation uint2 VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+Texture2DMS<uint4> arg_0 : register(t0, space1);
+uint2 textureDimensions_e4bfd2() {
+  uint3 v = (0u).xxx;
+  arg_0.GetDimensions(v[0u], v[1u], v[2u]);
+  uint2 res = v.xy;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store2(0u, textureDimensions_e4bfd2());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store2(0u, textureDimensions_e4bfd2());
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = textureDimensions_e4bfd2();
+  VertexOutput v_1 = tint_symbol;
+  return v_1;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_2 = vertex_main_inner();
+  VertexOutput v_3 = v_2;
+  VertexOutput v_4 = v_2;
+  vertex_main_outputs v_5 = {v_4.prevent_dce, v_3.pos};
+  return v_5;
+}
+
diff --git a/test/tint/builtins/gen/literal/textureDimensions/e4bfd2.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/textureDimensions/e4bfd2.wgsl.expected.ir.fxc.hlsl
index 1fac62e..5774f82 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/e4bfd2.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/e4bfd2.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,45 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  uint2 prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureDimensions
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation uint2 VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+Texture2DMS<uint4> arg_0 : register(t0, space1);
+uint2 textureDimensions_e4bfd2() {
+  uint3 v = (0u).xxx;
+  arg_0.GetDimensions(v[0u], v[1u], v[2u]);
+  uint2 res = v.xy;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store2(0u, textureDimensions_e4bfd2());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store2(0u, textureDimensions_e4bfd2());
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = textureDimensions_e4bfd2();
+  VertexOutput v_1 = tint_symbol;
+  return v_1;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_2 = vertex_main_inner();
+  VertexOutput v_3 = v_2;
+  VertexOutput v_4 = v_2;
+  vertex_main_outputs v_5 = {v_4.prevent_dce, v_3.pos};
+  return v_5;
+}
+
diff --git a/test/tint/builtins/gen/literal/textureDimensions/e4e310.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/textureDimensions/e4e310.wgsl.expected.ir.dxc.hlsl
index 1fac62e..ac37869 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/e4e310.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/e4e310.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,46 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  uint2 prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureDimensions
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation uint2 VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+Texture2DArray<int4> arg_0 : register(t0, space1);
+uint2 textureDimensions_e4e310() {
+  Texture2DArray<int4> v = arg_0;
+  uint4 v_1 = (0u).xxxx;
+  v.GetDimensions(uint(1u), v_1[0u], v_1[1u], v_1[2u], v_1[3u]);
+  uint2 res = v_1.xy;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store2(0u, textureDimensions_e4e310());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store2(0u, textureDimensions_e4e310());
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = textureDimensions_e4e310();
+  VertexOutput v_2 = tint_symbol;
+  return v_2;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_3 = vertex_main_inner();
+  VertexOutput v_4 = v_3;
+  VertexOutput v_5 = v_3;
+  vertex_main_outputs v_6 = {v_5.prevent_dce, v_4.pos};
+  return v_6;
+}
+
diff --git a/test/tint/builtins/gen/literal/textureDimensions/e4e310.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/textureDimensions/e4e310.wgsl.expected.ir.fxc.hlsl
index 1fac62e..ac37869 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/e4e310.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/e4e310.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,46 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  uint2 prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureDimensions
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation uint2 VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+Texture2DArray<int4> arg_0 : register(t0, space1);
+uint2 textureDimensions_e4e310() {
+  Texture2DArray<int4> v = arg_0;
+  uint4 v_1 = (0u).xxxx;
+  v.GetDimensions(uint(1u), v_1[0u], v_1[1u], v_1[2u], v_1[3u]);
+  uint2 res = v_1.xy;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store2(0u, textureDimensions_e4e310());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store2(0u, textureDimensions_e4e310());
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = textureDimensions_e4e310();
+  VertexOutput v_2 = tint_symbol;
+  return v_2;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_3 = vertex_main_inner();
+  VertexOutput v_4 = v_3;
+  VertexOutput v_5 = v_3;
+  vertex_main_outputs v_6 = {v_5.prevent_dce, v_4.pos};
+  return v_6;
+}
+
diff --git a/test/tint/builtins/gen/literal/textureDimensions/e4f021.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/textureDimensions/e4f021.wgsl.expected.ir.dxc.hlsl
index 1fac62e..077a4dc 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/e4f021.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/e4f021.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,19 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureDimensions
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWByteAddressBuffer prevent_dce : register(u0);
+RWTexture2D<float4> arg_0 : register(u0, space1);
+uint2 textureDimensions_e4f021() {
+  uint2 v = (0u).xx;
+  arg_0.GetDimensions(v[0u], v[1u]);
+  uint2 res = v;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store2(0u, textureDimensions_e4f021());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store2(0u, textureDimensions_e4f021());
+}
+
diff --git a/test/tint/builtins/gen/literal/textureDimensions/e4f021.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/textureDimensions/e4f021.wgsl.expected.ir.fxc.hlsl
index 1fac62e..077a4dc 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/e4f021.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/e4f021.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,19 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureDimensions
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWByteAddressBuffer prevent_dce : register(u0);
+RWTexture2D<float4> arg_0 : register(u0, space1);
+uint2 textureDimensions_e4f021() {
+  uint2 v = (0u).xx;
+  arg_0.GetDimensions(v[0u], v[1u]);
+  uint2 res = v;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store2(0u, textureDimensions_e4f021());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store2(0u, textureDimensions_e4f021());
+}
+
diff --git a/test/tint/builtins/gen/literal/textureDimensions/e50eb8.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/textureDimensions/e50eb8.wgsl.expected.ir.dxc.hlsl
index 1fac62e..2d1276a 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/e50eb8.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/e50eb8.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,19 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureDimensions
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWByteAddressBuffer prevent_dce : register(u0);
+RWTexture2D<uint4> arg_0 : register(u0, space1);
+uint2 textureDimensions_e50eb8() {
+  uint2 v = (0u).xx;
+  arg_0.GetDimensions(v[0u], v[1u]);
+  uint2 res = v;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store2(0u, textureDimensions_e50eb8());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store2(0u, textureDimensions_e50eb8());
+}
+
diff --git a/test/tint/builtins/gen/literal/textureDimensions/e50eb8.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/textureDimensions/e50eb8.wgsl.expected.ir.fxc.hlsl
index 1fac62e..2d1276a 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/e50eb8.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/e50eb8.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,19 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureDimensions
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWByteAddressBuffer prevent_dce : register(u0);
+RWTexture2D<uint4> arg_0 : register(u0, space1);
+uint2 textureDimensions_e50eb8() {
+  uint2 v = (0u).xx;
+  arg_0.GetDimensions(v[0u], v[1u]);
+  uint2 res = v;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store2(0u, textureDimensions_e50eb8());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store2(0u, textureDimensions_e50eb8());
+}
+
diff --git a/test/tint/builtins/gen/literal/textureDimensions/e5a203.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/textureDimensions/e5a203.wgsl.expected.ir.dxc.hlsl
index 1fac62e..94c63b2 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/e5a203.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/e5a203.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,114 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureDimensions
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec3<u32>;
+
+@group(1) @binding(0) var arg_0 : texture_3d<u32>;
+
+fn textureDimensions_e5a203() -> vec3<u32> {
+  var res : vec3<u32> = textureDimensions(arg_0, 1i);
+  return res;
+}
+
+@fragment
+fn fragment_main() {
+  prevent_dce = textureDimensions_e5a203();
+}
+
+@compute @workgroup_size(1)
+fn compute_main() {
+  prevent_dce = textureDimensions_e5a203();
+}
+
+struct VertexOutput {
+  @builtin(position)
+  pos : vec4<f32>,
+  @location(0) @interpolate(flat)
+  prevent_dce : vec3<u32>,
+}
+
+@vertex
+fn vertex_main() -> VertexOutput {
+  var tint_symbol : VertexOutput;
+  tint_symbol.pos = vec4<f32>();
+  tint_symbol.prevent_dce = textureDimensions_e5a203();
+  return tint_symbol;
+}
+
+Failed to generate: :28:49 error: var: initializer type 'vec2<u32>' does not match store type 'vec3<u32>'
+    %res:ptr<function, vec3<u32>, read_write> = var, %13
+                                                ^^^
+
+:17:3 note: in block
+  $B2: {
+  ^^^
+
+note: # Disassembly
+VertexOutput = struct @align(16) {
+  pos:vec4<f32> @offset(0)
+  prevent_dce:vec3<u32> @offset(16)
+}
+
+vertex_main_outputs = struct @align(16) {
+  VertexOutput_prevent_dce:vec3<u32> @offset(0), @location(0), @interpolate(flat)
+  VertexOutput_pos:vec4<f32> @offset(16), @builtin(position)
+}
+
+$B1: {  # root
+  %prevent_dce:hlsl.byte_address_buffer<read_write> = var @binding_point(0, 0)
+  %arg_0:ptr<handle, texture_3d<u32>, read> = var @binding_point(1, 0)
+}
+
+%textureDimensions_e5a203 = func():vec3<u32> {
+  $B2: {
+    %4:texture_3d<u32> = load %arg_0
+    %5:u32 = convert 1i
+    %6:ptr<function, vec4<u32>, read_write> = var
+    %7:ptr<function, u32, read_write> = access %6, 0u
+    %8:ptr<function, u32, read_write> = access %6, 1u
+    %9:ptr<function, u32, read_write> = access %6, 2u
+    %10:ptr<function, u32, read_write> = access %6, 3u
+    %11:void = %4.GetDimensions %5, %7, %8, %9, %10
+    %12:vec4<u32> = load %6
+    %13:vec2<u32> = swizzle %12, xyz
+    %res:ptr<function, vec3<u32>, read_write> = var, %13
+    %15:vec3<u32> = load %res
+    ret %15
+  }
+}
+%fragment_main = @fragment func():void {
+  $B3: {
+    %17:vec3<u32> = call %textureDimensions_e5a203
+    %18:void = %prevent_dce.Store3 0u, %17
+    ret
+  }
+}
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B4: {
+    %20:vec3<u32> = call %textureDimensions_e5a203
+    %21:void = %prevent_dce.Store3 0u, %20
+    ret
+  }
+}
+%vertex_main_inner = func():VertexOutput {
+  $B5: {
+    %tint_symbol:ptr<function, VertexOutput, read_write> = var
+    %24:ptr<function, vec4<f32>, read_write> = access %tint_symbol, 0u
+    store %24, vec4<f32>(0.0f)
+    %25:ptr<function, vec3<u32>, read_write> = access %tint_symbol, 1u
+    %26:vec3<u32> = call %textureDimensions_e5a203
+    store %25, %26
+    %27:VertexOutput = load %tint_symbol
+    ret %27
+  }
+}
+%vertex_main = @vertex func():vertex_main_outputs {
+  $B6: {
+    %29:VertexOutput = call %vertex_main_inner
+    %30:vec4<f32> = access %29, 0u
+    %31:vec3<u32> = access %29, 1u
+    %32:vertex_main_outputs = construct %31, %30
+    ret %32
+  }
+}
+
diff --git a/test/tint/builtins/gen/literal/textureDimensions/e5a203.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/textureDimensions/e5a203.wgsl.expected.ir.fxc.hlsl
index 1fac62e..94c63b2 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/e5a203.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/e5a203.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,114 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureDimensions
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec3<u32>;
+
+@group(1) @binding(0) var arg_0 : texture_3d<u32>;
+
+fn textureDimensions_e5a203() -> vec3<u32> {
+  var res : vec3<u32> = textureDimensions(arg_0, 1i);
+  return res;
+}
+
+@fragment
+fn fragment_main() {
+  prevent_dce = textureDimensions_e5a203();
+}
+
+@compute @workgroup_size(1)
+fn compute_main() {
+  prevent_dce = textureDimensions_e5a203();
+}
+
+struct VertexOutput {
+  @builtin(position)
+  pos : vec4<f32>,
+  @location(0) @interpolate(flat)
+  prevent_dce : vec3<u32>,
+}
+
+@vertex
+fn vertex_main() -> VertexOutput {
+  var tint_symbol : VertexOutput;
+  tint_symbol.pos = vec4<f32>();
+  tint_symbol.prevent_dce = textureDimensions_e5a203();
+  return tint_symbol;
+}
+
+Failed to generate: :28:49 error: var: initializer type 'vec2<u32>' does not match store type 'vec3<u32>'
+    %res:ptr<function, vec3<u32>, read_write> = var, %13
+                                                ^^^
+
+:17:3 note: in block
+  $B2: {
+  ^^^
+
+note: # Disassembly
+VertexOutput = struct @align(16) {
+  pos:vec4<f32> @offset(0)
+  prevent_dce:vec3<u32> @offset(16)
+}
+
+vertex_main_outputs = struct @align(16) {
+  VertexOutput_prevent_dce:vec3<u32> @offset(0), @location(0), @interpolate(flat)
+  VertexOutput_pos:vec4<f32> @offset(16), @builtin(position)
+}
+
+$B1: {  # root
+  %prevent_dce:hlsl.byte_address_buffer<read_write> = var @binding_point(0, 0)
+  %arg_0:ptr<handle, texture_3d<u32>, read> = var @binding_point(1, 0)
+}
+
+%textureDimensions_e5a203 = func():vec3<u32> {
+  $B2: {
+    %4:texture_3d<u32> = load %arg_0
+    %5:u32 = convert 1i
+    %6:ptr<function, vec4<u32>, read_write> = var
+    %7:ptr<function, u32, read_write> = access %6, 0u
+    %8:ptr<function, u32, read_write> = access %6, 1u
+    %9:ptr<function, u32, read_write> = access %6, 2u
+    %10:ptr<function, u32, read_write> = access %6, 3u
+    %11:void = %4.GetDimensions %5, %7, %8, %9, %10
+    %12:vec4<u32> = load %6
+    %13:vec2<u32> = swizzle %12, xyz
+    %res:ptr<function, vec3<u32>, read_write> = var, %13
+    %15:vec3<u32> = load %res
+    ret %15
+  }
+}
+%fragment_main = @fragment func():void {
+  $B3: {
+    %17:vec3<u32> = call %textureDimensions_e5a203
+    %18:void = %prevent_dce.Store3 0u, %17
+    ret
+  }
+}
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B4: {
+    %20:vec3<u32> = call %textureDimensions_e5a203
+    %21:void = %prevent_dce.Store3 0u, %20
+    ret
+  }
+}
+%vertex_main_inner = func():VertexOutput {
+  $B5: {
+    %tint_symbol:ptr<function, VertexOutput, read_write> = var
+    %24:ptr<function, vec4<f32>, read_write> = access %tint_symbol, 0u
+    store %24, vec4<f32>(0.0f)
+    %25:ptr<function, vec3<u32>, read_write> = access %tint_symbol, 1u
+    %26:vec3<u32> = call %textureDimensions_e5a203
+    store %25, %26
+    %27:VertexOutput = load %tint_symbol
+    ret %27
+  }
+}
+%vertex_main = @vertex func():vertex_main_outputs {
+  $B6: {
+    %29:VertexOutput = call %vertex_main_inner
+    %30:vec4<f32> = access %29, 0u
+    %31:vec3<u32> = access %29, 1u
+    %32:vertex_main_outputs = construct %31, %30
+    ret %32
+  }
+}
+
diff --git a/test/tint/builtins/gen/literal/textureDimensions/e738f4.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/textureDimensions/e738f4.wgsl.expected.ir.dxc.hlsl
index 1fac62e..221cb31 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/e738f4.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/e738f4.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,19 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureDimensions
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWByteAddressBuffer prevent_dce : register(u0);
+RWTexture3D<int4> arg_0 : register(u0, space1);
+uint3 textureDimensions_e738f4() {
+  uint3 v = (0u).xxx;
+  arg_0.GetDimensions(v[0u], v[1u], v[2u]);
+  uint3 res = v;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store3(0u, textureDimensions_e738f4());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store3(0u, textureDimensions_e738f4());
+}
+
diff --git a/test/tint/builtins/gen/literal/textureDimensions/e738f4.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/textureDimensions/e738f4.wgsl.expected.ir.fxc.hlsl
index 1fac62e..221cb31 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/e738f4.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/e738f4.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,19 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureDimensions
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWByteAddressBuffer prevent_dce : register(u0);
+RWTexture3D<int4> arg_0 : register(u0, space1);
+uint3 textureDimensions_e738f4() {
+  uint3 v = (0u).xxx;
+  arg_0.GetDimensions(v[0u], v[1u], v[2u]);
+  uint3 res = v;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store3(0u, textureDimensions_e738f4());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store3(0u, textureDimensions_e738f4());
+}
+
diff --git a/test/tint/builtins/gen/literal/textureDimensions/e824b6.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/textureDimensions/e824b6.wgsl.expected.ir.dxc.hlsl
index 1fac62e..f7e6572 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/e824b6.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/e824b6.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,19 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureDimensions
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWByteAddressBuffer prevent_dce : register(u0);
+RWTexture2DArray<uint4> arg_0 : register(u0, space1);
+uint2 textureDimensions_e824b6() {
+  uint3 v = (0u).xxx;
+  arg_0.GetDimensions(v[0u], v[1u], v[2u]);
+  uint2 res = v.xy;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store2(0u, textureDimensions_e824b6());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store2(0u, textureDimensions_e824b6());
+}
+
diff --git a/test/tint/builtins/gen/literal/textureDimensions/e824b6.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/textureDimensions/e824b6.wgsl.expected.ir.fxc.hlsl
index 1fac62e..f7e6572 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/e824b6.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/e824b6.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,19 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureDimensions
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWByteAddressBuffer prevent_dce : register(u0);
+RWTexture2DArray<uint4> arg_0 : register(u0, space1);
+uint2 textureDimensions_e824b6() {
+  uint3 v = (0u).xxx;
+  arg_0.GetDimensions(v[0u], v[1u], v[2u]);
+  uint2 res = v.xy;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store2(0u, textureDimensions_e824b6());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store2(0u, textureDimensions_e824b6());
+}
+
diff --git a/test/tint/builtins/gen/literal/textureDimensions/e99308.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/textureDimensions/e99308.wgsl.expected.ir.dxc.hlsl
index 1fac62e..9a640a6 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/e99308.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/e99308.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,19 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureDimensions
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWByteAddressBuffer prevent_dce : register(u0);
+RWTexture2D<uint4> arg_0 : register(u0, space1);
+uint2 textureDimensions_e99308() {
+  uint2 v = (0u).xx;
+  arg_0.GetDimensions(v[0u], v[1u]);
+  uint2 res = v;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store2(0u, textureDimensions_e99308());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store2(0u, textureDimensions_e99308());
+}
+
diff --git a/test/tint/builtins/gen/literal/textureDimensions/e99308.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/textureDimensions/e99308.wgsl.expected.ir.fxc.hlsl
index 1fac62e..9a640a6 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/e99308.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/e99308.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,19 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureDimensions
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWByteAddressBuffer prevent_dce : register(u0);
+RWTexture2D<uint4> arg_0 : register(u0, space1);
+uint2 textureDimensions_e99308() {
+  uint2 v = (0u).xx;
+  arg_0.GetDimensions(v[0u], v[1u]);
+  uint2 res = v;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store2(0u, textureDimensions_e99308());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store2(0u, textureDimensions_e99308());
+}
+
diff --git a/test/tint/builtins/gen/literal/textureDimensions/ea066c.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/textureDimensions/ea066c.wgsl.expected.ir.dxc.hlsl
index 1fac62e..f413398 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/ea066c.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/ea066c.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,19 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureDimensions
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWByteAddressBuffer prevent_dce : register(u0);
+RWTexture1D<float4> arg_0 : register(u0, space1);
+uint textureDimensions_ea066c() {
+  uint v = 0u;
+  arg_0.GetDimensions(v);
+  uint res = v;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store(0u, textureDimensions_ea066c());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store(0u, textureDimensions_ea066c());
+}
+
diff --git a/test/tint/builtins/gen/literal/textureDimensions/ea066c.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/textureDimensions/ea066c.wgsl.expected.ir.fxc.hlsl
index 1fac62e..f413398 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/ea066c.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/ea066c.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,19 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureDimensions
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWByteAddressBuffer prevent_dce : register(u0);
+RWTexture1D<float4> arg_0 : register(u0, space1);
+uint textureDimensions_ea066c() {
+  uint v = 0u;
+  arg_0.GetDimensions(v);
+  uint res = v;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store(0u, textureDimensions_ea066c());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store(0u, textureDimensions_ea066c());
+}
+
diff --git a/test/tint/builtins/gen/literal/textureDimensions/ea25bc.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/textureDimensions/ea25bc.wgsl.expected.ir.dxc.hlsl
index 1fac62e..051a81a8 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/ea25bc.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/ea25bc.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,19 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureDimensions
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWByteAddressBuffer prevent_dce : register(u0);
+RWTexture1D<uint4> arg_0 : register(u0, space1);
+uint textureDimensions_ea25bc() {
+  uint v = 0u;
+  arg_0.GetDimensions(v);
+  uint res = v;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store(0u, textureDimensions_ea25bc());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store(0u, textureDimensions_ea25bc());
+}
+
diff --git a/test/tint/builtins/gen/literal/textureDimensions/ea25bc.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/textureDimensions/ea25bc.wgsl.expected.ir.fxc.hlsl
index 1fac62e..051a81a8 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/ea25bc.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/ea25bc.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,19 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureDimensions
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWByteAddressBuffer prevent_dce : register(u0);
+RWTexture1D<uint4> arg_0 : register(u0, space1);
+uint textureDimensions_ea25bc() {
+  uint v = 0u;
+  arg_0.GetDimensions(v);
+  uint res = v;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store(0u, textureDimensions_ea25bc());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store(0u, textureDimensions_ea25bc());
+}
+
diff --git a/test/tint/builtins/gen/literal/textureDimensions/eafe19.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/textureDimensions/eafe19.wgsl.expected.ir.dxc.hlsl
index 1fac62e..0a35084 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/eafe19.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/eafe19.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,46 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  uint2 prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureDimensions
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation uint2 VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+Texture2DArray arg_0 : register(t0, space1);
+uint2 textureDimensions_eafe19() {
+  Texture2DArray v = arg_0;
+  uint4 v_1 = (0u).xxxx;
+  v.GetDimensions(uint(1u), v_1[0u], v_1[1u], v_1[2u], v_1[3u]);
+  uint2 res = v_1.xy;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store2(0u, textureDimensions_eafe19());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store2(0u, textureDimensions_eafe19());
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = textureDimensions_eafe19();
+  VertexOutput v_2 = tint_symbol;
+  return v_2;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_3 = vertex_main_inner();
+  VertexOutput v_4 = v_3;
+  VertexOutput v_5 = v_3;
+  vertex_main_outputs v_6 = {v_5.prevent_dce, v_4.pos};
+  return v_6;
+}
+
diff --git a/test/tint/builtins/gen/literal/textureDimensions/eafe19.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/textureDimensions/eafe19.wgsl.expected.ir.fxc.hlsl
index 1fac62e..0a35084 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/eafe19.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/eafe19.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,46 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  uint2 prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureDimensions
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation uint2 VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+Texture2DArray arg_0 : register(t0, space1);
+uint2 textureDimensions_eafe19() {
+  Texture2DArray v = arg_0;
+  uint4 v_1 = (0u).xxxx;
+  v.GetDimensions(uint(1u), v_1[0u], v_1[1u], v_1[2u], v_1[3u]);
+  uint2 res = v_1.xy;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store2(0u, textureDimensions_eafe19());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store2(0u, textureDimensions_eafe19());
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = textureDimensions_eafe19();
+  VertexOutput v_2 = tint_symbol;
+  return v_2;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_3 = vertex_main_inner();
+  VertexOutput v_4 = v_3;
+  VertexOutput v_5 = v_3;
+  vertex_main_outputs v_6 = {v_5.prevent_dce, v_4.pos};
+  return v_6;
+}
+
diff --git a/test/tint/builtins/gen/literal/textureDimensions/eb03b1.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/textureDimensions/eb03b1.wgsl.expected.ir.dxc.hlsl
index 1fac62e..64838ef 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/eb03b1.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/eb03b1.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,19 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureDimensions
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWByteAddressBuffer prevent_dce : register(u0);
+RWTexture2DArray<float4> arg_0 : register(u0, space1);
+uint2 textureDimensions_eb03b1() {
+  uint3 v = (0u).xxx;
+  arg_0.GetDimensions(v[0u], v[1u], v[2u]);
+  uint2 res = v.xy;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store2(0u, textureDimensions_eb03b1());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store2(0u, textureDimensions_eb03b1());
+}
+
diff --git a/test/tint/builtins/gen/literal/textureDimensions/eb03b1.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/textureDimensions/eb03b1.wgsl.expected.ir.fxc.hlsl
index 1fac62e..64838ef 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/eb03b1.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/eb03b1.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,19 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureDimensions
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWByteAddressBuffer prevent_dce : register(u0);
+RWTexture2DArray<float4> arg_0 : register(u0, space1);
+uint2 textureDimensions_eb03b1() {
+  uint3 v = (0u).xxx;
+  arg_0.GetDimensions(v[0u], v[1u], v[2u]);
+  uint2 res = v.xy;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store2(0u, textureDimensions_eb03b1());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store2(0u, textureDimensions_eb03b1());
+}
+
diff --git a/test/tint/builtins/gen/literal/textureDimensions/eb10d6.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/textureDimensions/eb10d6.wgsl.expected.ir.dxc.hlsl
index 1fac62e..e806bbe 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/eb10d6.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/eb10d6.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,19 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureDimensions
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWByteAddressBuffer prevent_dce : register(u0);
+RWTexture2D<float4> arg_0 : register(u0, space1);
+uint2 textureDimensions_eb10d6() {
+  uint2 v = (0u).xx;
+  arg_0.GetDimensions(v[0u], v[1u]);
+  uint2 res = v;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store2(0u, textureDimensions_eb10d6());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store2(0u, textureDimensions_eb10d6());
+}
+
diff --git a/test/tint/builtins/gen/literal/textureDimensions/eb10d6.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/textureDimensions/eb10d6.wgsl.expected.ir.fxc.hlsl
index 1fac62e..e806bbe 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/eb10d6.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/eb10d6.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,19 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureDimensions
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWByteAddressBuffer prevent_dce : register(u0);
+RWTexture2D<float4> arg_0 : register(u0, space1);
+uint2 textureDimensions_eb10d6() {
+  uint2 v = (0u).xx;
+  arg_0.GetDimensions(v[0u], v[1u]);
+  uint2 res = v;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store2(0u, textureDimensions_eb10d6());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store2(0u, textureDimensions_eb10d6());
+}
+
diff --git a/test/tint/builtins/gen/literal/textureDimensions/eb1249.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/textureDimensions/eb1249.wgsl.expected.ir.dxc.hlsl
index 1fac62e..aedba01 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/eb1249.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/eb1249.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,19 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureDimensions
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWByteAddressBuffer prevent_dce : register(u0);
+RWTexture1D<uint4> arg_0 : register(u0, space1);
+uint textureDimensions_eb1249() {
+  uint v = 0u;
+  arg_0.GetDimensions(v);
+  uint res = v;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store(0u, textureDimensions_eb1249());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store(0u, textureDimensions_eb1249());
+}
+
diff --git a/test/tint/builtins/gen/literal/textureDimensions/eb1249.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/textureDimensions/eb1249.wgsl.expected.ir.fxc.hlsl
index 1fac62e..aedba01 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/eb1249.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/eb1249.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,19 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureDimensions
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWByteAddressBuffer prevent_dce : register(u0);
+RWTexture1D<uint4> arg_0 : register(u0, space1);
+uint textureDimensions_eb1249() {
+  uint v = 0u;
+  arg_0.GetDimensions(v);
+  uint res = v;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store(0u, textureDimensions_eb1249());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store(0u, textureDimensions_eb1249());
+}
+
diff --git a/test/tint/builtins/gen/literal/textureDimensions/eb9f4d.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/textureDimensions/eb9f4d.wgsl.expected.ir.dxc.hlsl
index 1fac62e..d9e27b7 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/eb9f4d.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/eb9f4d.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,19 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureDimensions
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWByteAddressBuffer prevent_dce : register(u0);
+RWTexture2DArray<int4> arg_0 : register(u0, space1);
+uint2 textureDimensions_eb9f4d() {
+  uint3 v = (0u).xxx;
+  arg_0.GetDimensions(v[0u], v[1u], v[2u]);
+  uint2 res = v.xy;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store2(0u, textureDimensions_eb9f4d());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store2(0u, textureDimensions_eb9f4d());
+}
+
diff --git a/test/tint/builtins/gen/literal/textureDimensions/eb9f4d.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/textureDimensions/eb9f4d.wgsl.expected.ir.fxc.hlsl
index 1fac62e..d9e27b7 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/eb9f4d.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/eb9f4d.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,19 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureDimensions
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWByteAddressBuffer prevent_dce : register(u0);
+RWTexture2DArray<int4> arg_0 : register(u0, space1);
+uint2 textureDimensions_eb9f4d() {
+  uint3 v = (0u).xxx;
+  arg_0.GetDimensions(v[0u], v[1u], v[2u]);
+  uint2 res = v.xy;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store2(0u, textureDimensions_eb9f4d());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store2(0u, textureDimensions_eb9f4d());
+}
+
diff --git a/test/tint/builtins/gen/literal/textureDimensions/ed1030.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/textureDimensions/ed1030.wgsl.expected.ir.dxc.hlsl
index 1fac62e..2fa8219 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/ed1030.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/ed1030.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,19 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureDimensions
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWByteAddressBuffer prevent_dce : register(u0);
+RWTexture2D<uint4> arg_0 : register(u0, space1);
+uint2 textureDimensions_ed1030() {
+  uint2 v = (0u).xx;
+  arg_0.GetDimensions(v[0u], v[1u]);
+  uint2 res = v;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store2(0u, textureDimensions_ed1030());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store2(0u, textureDimensions_ed1030());
+}
+
diff --git a/test/tint/builtins/gen/literal/textureDimensions/ed1030.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/textureDimensions/ed1030.wgsl.expected.ir.fxc.hlsl
index 1fac62e..2fa8219 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/ed1030.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/ed1030.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,19 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureDimensions
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWByteAddressBuffer prevent_dce : register(u0);
+RWTexture2D<uint4> arg_0 : register(u0, space1);
+uint2 textureDimensions_ed1030() {
+  uint2 v = (0u).xx;
+  arg_0.GetDimensions(v[0u], v[1u]);
+  uint2 res = v;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store2(0u, textureDimensions_ed1030());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store2(0u, textureDimensions_ed1030());
+}
+
diff --git a/test/tint/builtins/gen/literal/textureDimensions/ef2e58.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/textureDimensions/ef2e58.wgsl.expected.ir.dxc.hlsl
index 1fac62e..1f77ddc 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/ef2e58.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/ef2e58.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,19 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureDimensions
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWByteAddressBuffer prevent_dce : register(u0);
+RWTexture3D<int4> arg_0 : register(u0, space1);
+uint3 textureDimensions_ef2e58() {
+  uint3 v = (0u).xxx;
+  arg_0.GetDimensions(v[0u], v[1u], v[2u]);
+  uint3 res = v;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store3(0u, textureDimensions_ef2e58());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store3(0u, textureDimensions_ef2e58());
+}
+
diff --git a/test/tint/builtins/gen/literal/textureDimensions/ef2e58.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/textureDimensions/ef2e58.wgsl.expected.ir.fxc.hlsl
index 1fac62e..1f77ddc 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/ef2e58.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/ef2e58.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,19 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureDimensions
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWByteAddressBuffer prevent_dce : register(u0);
+RWTexture3D<int4> arg_0 : register(u0, space1);
+uint3 textureDimensions_ef2e58() {
+  uint3 v = (0u).xxx;
+  arg_0.GetDimensions(v[0u], v[1u], v[2u]);
+  uint3 res = v;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store3(0u, textureDimensions_ef2e58());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store3(0u, textureDimensions_ef2e58());
+}
+
diff --git a/test/tint/builtins/gen/literal/textureDimensions/f17acd.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/textureDimensions/f17acd.wgsl.expected.ir.dxc.hlsl
index 1fac62e..70a9124 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/f17acd.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/f17acd.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,112 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureDimensions
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : u32;
+
+@group(1) @binding(0) var arg_0 : texture_1d<f32>;
+
+fn textureDimensions_f17acd() -> u32 {
+  var res : u32 = textureDimensions(arg_0, 1i);
+  return res;
+}
+
+@fragment
+fn fragment_main() {
+  prevent_dce = textureDimensions_f17acd();
+}
+
+@compute @workgroup_size(1)
+fn compute_main() {
+  prevent_dce = textureDimensions_f17acd();
+}
+
+struct VertexOutput {
+  @builtin(position)
+  pos : vec4<f32>,
+  @location(0) @interpolate(flat)
+  prevent_dce : u32,
+}
+
+@vertex
+fn vertex_main() -> VertexOutput {
+  var tint_symbol : VertexOutput;
+  tint_symbol.pos = vec4<f32>();
+  tint_symbol.prevent_dce = textureDimensions_f17acd();
+  return tint_symbol;
+}
+
+Failed to generate: :26:43 error: var: initializer type 'vec2<u32>' does not match store type 'u32'
+    %res:ptr<function, u32, read_write> = var, %11
+                                          ^^^
+
+:17:3 note: in block
+  $B2: {
+  ^^^
+
+note: # Disassembly
+VertexOutput = struct @align(16) {
+  pos:vec4<f32> @offset(0)
+  prevent_dce:u32 @offset(16)
+}
+
+vertex_main_outputs = struct @align(16) {
+  VertexOutput_prevent_dce:u32 @offset(0), @location(0), @interpolate(flat)
+  VertexOutput_pos:vec4<f32> @offset(16), @builtin(position)
+}
+
+$B1: {  # root
+  %prevent_dce:hlsl.byte_address_buffer<read_write> = var @binding_point(0, 0)
+  %arg_0:ptr<handle, texture_1d<f32>, read> = var @binding_point(1, 0)
+}
+
+%textureDimensions_f17acd = func():u32 {
+  $B2: {
+    %4:texture_1d<f32> = load %arg_0
+    %5:u32 = convert 1i
+    %6:ptr<function, vec2<u32>, read_write> = var
+    %7:ptr<function, u32, read_write> = access %6, 0u
+    %8:ptr<function, u32, read_write> = access %6, 1u
+    %9:void = %4.GetDimensions %5, %7, %8
+    %10:vec2<u32> = load %6
+    %11:vec2<u32> = swizzle %10, x
+    %res:ptr<function, u32, read_write> = var, %11
+    %13:u32 = load %res
+    ret %13
+  }
+}
+%fragment_main = @fragment func():void {
+  $B3: {
+    %15:u32 = call %textureDimensions_f17acd
+    %16:void = %prevent_dce.Store 0u, %15
+    ret
+  }
+}
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B4: {
+    %18:u32 = call %textureDimensions_f17acd
+    %19:void = %prevent_dce.Store 0u, %18
+    ret
+  }
+}
+%vertex_main_inner = func():VertexOutput {
+  $B5: {
+    %tint_symbol:ptr<function, VertexOutput, read_write> = var
+    %22:ptr<function, vec4<f32>, read_write> = access %tint_symbol, 0u
+    store %22, vec4<f32>(0.0f)
+    %23:ptr<function, u32, read_write> = access %tint_symbol, 1u
+    %24:u32 = call %textureDimensions_f17acd
+    store %23, %24
+    %25:VertexOutput = load %tint_symbol
+    ret %25
+  }
+}
+%vertex_main = @vertex func():vertex_main_outputs {
+  $B6: {
+    %27:VertexOutput = call %vertex_main_inner
+    %28:vec4<f32> = access %27, 0u
+    %29:u32 = access %27, 1u
+    %30:vertex_main_outputs = construct %29, %28
+    ret %30
+  }
+}
+
diff --git a/test/tint/builtins/gen/literal/textureDimensions/f17acd.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/textureDimensions/f17acd.wgsl.expected.ir.fxc.hlsl
index 1fac62e..70a9124 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/f17acd.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/f17acd.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,112 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureDimensions
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : u32;
+
+@group(1) @binding(0) var arg_0 : texture_1d<f32>;
+
+fn textureDimensions_f17acd() -> u32 {
+  var res : u32 = textureDimensions(arg_0, 1i);
+  return res;
+}
+
+@fragment
+fn fragment_main() {
+  prevent_dce = textureDimensions_f17acd();
+}
+
+@compute @workgroup_size(1)
+fn compute_main() {
+  prevent_dce = textureDimensions_f17acd();
+}
+
+struct VertexOutput {
+  @builtin(position)
+  pos : vec4<f32>,
+  @location(0) @interpolate(flat)
+  prevent_dce : u32,
+}
+
+@vertex
+fn vertex_main() -> VertexOutput {
+  var tint_symbol : VertexOutput;
+  tint_symbol.pos = vec4<f32>();
+  tint_symbol.prevent_dce = textureDimensions_f17acd();
+  return tint_symbol;
+}
+
+Failed to generate: :26:43 error: var: initializer type 'vec2<u32>' does not match store type 'u32'
+    %res:ptr<function, u32, read_write> = var, %11
+                                          ^^^
+
+:17:3 note: in block
+  $B2: {
+  ^^^
+
+note: # Disassembly
+VertexOutput = struct @align(16) {
+  pos:vec4<f32> @offset(0)
+  prevent_dce:u32 @offset(16)
+}
+
+vertex_main_outputs = struct @align(16) {
+  VertexOutput_prevent_dce:u32 @offset(0), @location(0), @interpolate(flat)
+  VertexOutput_pos:vec4<f32> @offset(16), @builtin(position)
+}
+
+$B1: {  # root
+  %prevent_dce:hlsl.byte_address_buffer<read_write> = var @binding_point(0, 0)
+  %arg_0:ptr<handle, texture_1d<f32>, read> = var @binding_point(1, 0)
+}
+
+%textureDimensions_f17acd = func():u32 {
+  $B2: {
+    %4:texture_1d<f32> = load %arg_0
+    %5:u32 = convert 1i
+    %6:ptr<function, vec2<u32>, read_write> = var
+    %7:ptr<function, u32, read_write> = access %6, 0u
+    %8:ptr<function, u32, read_write> = access %6, 1u
+    %9:void = %4.GetDimensions %5, %7, %8
+    %10:vec2<u32> = load %6
+    %11:vec2<u32> = swizzle %10, x
+    %res:ptr<function, u32, read_write> = var, %11
+    %13:u32 = load %res
+    ret %13
+  }
+}
+%fragment_main = @fragment func():void {
+  $B3: {
+    %15:u32 = call %textureDimensions_f17acd
+    %16:void = %prevent_dce.Store 0u, %15
+    ret
+  }
+}
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B4: {
+    %18:u32 = call %textureDimensions_f17acd
+    %19:void = %prevent_dce.Store 0u, %18
+    ret
+  }
+}
+%vertex_main_inner = func():VertexOutput {
+  $B5: {
+    %tint_symbol:ptr<function, VertexOutput, read_write> = var
+    %22:ptr<function, vec4<f32>, read_write> = access %tint_symbol, 0u
+    store %22, vec4<f32>(0.0f)
+    %23:ptr<function, u32, read_write> = access %tint_symbol, 1u
+    %24:u32 = call %textureDimensions_f17acd
+    store %23, %24
+    %25:VertexOutput = load %tint_symbol
+    ret %25
+  }
+}
+%vertex_main = @vertex func():vertex_main_outputs {
+  $B6: {
+    %27:VertexOutput = call %vertex_main_inner
+    %28:vec4<f32> = access %27, 0u
+    %29:u32 = access %27, 1u
+    %30:vertex_main_outputs = construct %29, %28
+    ret %30
+  }
+}
+
diff --git a/test/tint/builtins/gen/literal/textureDimensions/f264a3.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/textureDimensions/f264a3.wgsl.expected.ir.dxc.hlsl
index 1fac62e..9300eda 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/f264a3.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/f264a3.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,19 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureDimensions
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWByteAddressBuffer prevent_dce : register(u0);
+RWTexture1D<int4> arg_0 : register(u0, space1);
+uint textureDimensions_f264a3() {
+  uint v = 0u;
+  arg_0.GetDimensions(v);
+  uint res = v;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store(0u, textureDimensions_f264a3());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store(0u, textureDimensions_f264a3());
+}
+
diff --git a/test/tint/builtins/gen/literal/textureDimensions/f264a3.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/textureDimensions/f264a3.wgsl.expected.ir.fxc.hlsl
index 1fac62e..9300eda 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/f264a3.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/f264a3.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,19 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureDimensions
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWByteAddressBuffer prevent_dce : register(u0);
+RWTexture1D<int4> arg_0 : register(u0, space1);
+uint textureDimensions_f264a3() {
+  uint v = 0u;
+  arg_0.GetDimensions(v);
+  uint res = v;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store(0u, textureDimensions_f264a3());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store(0u, textureDimensions_f264a3());
+}
+
diff --git a/test/tint/builtins/gen/literal/textureDimensions/f3a2ac.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/textureDimensions/f3a2ac.wgsl.expected.ir.dxc.hlsl
index 1fac62e..d0b75f6 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/f3a2ac.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/f3a2ac.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,19 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureDimensions
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWByteAddressBuffer prevent_dce : register(u0);
+RWTexture3D<float4> arg_0 : register(u0, space1);
+uint3 textureDimensions_f3a2ac() {
+  uint3 v = (0u).xxx;
+  arg_0.GetDimensions(v[0u], v[1u], v[2u]);
+  uint3 res = v;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store3(0u, textureDimensions_f3a2ac());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store3(0u, textureDimensions_f3a2ac());
+}
+
diff --git a/test/tint/builtins/gen/literal/textureDimensions/f3a2ac.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/textureDimensions/f3a2ac.wgsl.expected.ir.fxc.hlsl
index 1fac62e..d0b75f6 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/f3a2ac.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/f3a2ac.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,19 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureDimensions
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWByteAddressBuffer prevent_dce : register(u0);
+RWTexture3D<float4> arg_0 : register(u0, space1);
+uint3 textureDimensions_f3a2ac() {
+  uint3 v = (0u).xxx;
+  arg_0.GetDimensions(v[0u], v[1u], v[2u]);
+  uint3 res = v;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store3(0u, textureDimensions_f3a2ac());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store3(0u, textureDimensions_f3a2ac());
+}
+
diff --git a/test/tint/builtins/gen/literal/textureDimensions/f406ff.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/textureDimensions/f406ff.wgsl.expected.ir.dxc.hlsl
index 1fac62e..e944593 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/f406ff.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/f406ff.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,19 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureDimensions
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWByteAddressBuffer prevent_dce : register(u0);
+RWTexture1D<float4> arg_0 : register(u0, space1);
+uint textureDimensions_f406ff() {
+  uint v = 0u;
+  arg_0.GetDimensions(v);
+  uint res = v;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store(0u, textureDimensions_f406ff());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store(0u, textureDimensions_f406ff());
+}
+
diff --git a/test/tint/builtins/gen/literal/textureDimensions/f406ff.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/textureDimensions/f406ff.wgsl.expected.ir.fxc.hlsl
index 1fac62e..e944593 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/f406ff.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/f406ff.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,19 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureDimensions
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWByteAddressBuffer prevent_dce : register(u0);
+RWTexture1D<float4> arg_0 : register(u0, space1);
+uint textureDimensions_f406ff() {
+  uint v = 0u;
+  arg_0.GetDimensions(v);
+  uint res = v;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store(0u, textureDimensions_f406ff());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store(0u, textureDimensions_f406ff());
+}
+
diff --git a/test/tint/builtins/gen/literal/textureDimensions/f4321c.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/textureDimensions/f4321c.wgsl.expected.ir.dxc.hlsl
index 1fac62e..4c384be 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/f4321c.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/f4321c.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,45 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  uint3 prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureDimensions
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation uint3 VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+Texture3D<int4> arg_0 : register(t0, space1);
+uint3 textureDimensions_f4321c() {
+  uint3 v = (0u).xxx;
+  arg_0.GetDimensions(v[0u], v[1u], v[2u]);
+  uint3 res = v;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store3(0u, textureDimensions_f4321c());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store3(0u, textureDimensions_f4321c());
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = textureDimensions_f4321c();
+  VertexOutput v_1 = tint_symbol;
+  return v_1;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_2 = vertex_main_inner();
+  VertexOutput v_3 = v_2;
+  VertexOutput v_4 = v_2;
+  vertex_main_outputs v_5 = {v_4.prevent_dce, v_3.pos};
+  return v_5;
+}
+
diff --git a/test/tint/builtins/gen/literal/textureDimensions/f4321c.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/textureDimensions/f4321c.wgsl.expected.ir.fxc.hlsl
index 1fac62e..4c384be 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/f4321c.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/f4321c.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,45 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  uint3 prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureDimensions
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation uint3 VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+Texture3D<int4> arg_0 : register(t0, space1);
+uint3 textureDimensions_f4321c() {
+  uint3 v = (0u).xxx;
+  arg_0.GetDimensions(v[0u], v[1u], v[2u]);
+  uint3 res = v;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store3(0u, textureDimensions_f4321c());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store3(0u, textureDimensions_f4321c());
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = textureDimensions_f4321c();
+  VertexOutput v_1 = tint_symbol;
+  return v_1;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_2 = vertex_main_inner();
+  VertexOutput v_3 = v_2;
+  VertexOutput v_4 = v_2;
+  vertex_main_outputs v_5 = {v_4.prevent_dce, v_3.pos};
+  return v_5;
+}
+
diff --git a/test/tint/builtins/gen/literal/textureDimensions/f48886.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/textureDimensions/f48886.wgsl.expected.ir.dxc.hlsl
index 1fac62e..2687c78 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/f48886.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/f48886.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,45 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  uint2 prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureDimensions
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation uint2 VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+Texture2D<int4> arg_0 : register(t0, space1);
+uint2 textureDimensions_f48886() {
+  uint2 v = (0u).xx;
+  arg_0.GetDimensions(v[0u], v[1u]);
+  uint2 res = v;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store2(0u, textureDimensions_f48886());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store2(0u, textureDimensions_f48886());
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = textureDimensions_f48886();
+  VertexOutput v_1 = tint_symbol;
+  return v_1;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_2 = vertex_main_inner();
+  VertexOutput v_3 = v_2;
+  VertexOutput v_4 = v_2;
+  vertex_main_outputs v_5 = {v_4.prevent_dce, v_3.pos};
+  return v_5;
+}
+
diff --git a/test/tint/builtins/gen/literal/textureDimensions/f48886.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/textureDimensions/f48886.wgsl.expected.ir.fxc.hlsl
index 1fac62e..2687c78 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/f48886.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/f48886.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,45 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  uint2 prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureDimensions
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation uint2 VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+Texture2D<int4> arg_0 : register(t0, space1);
+uint2 textureDimensions_f48886() {
+  uint2 v = (0u).xx;
+  arg_0.GetDimensions(v[0u], v[1u]);
+  uint2 res = v;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store2(0u, textureDimensions_f48886());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store2(0u, textureDimensions_f48886());
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = textureDimensions_f48886();
+  VertexOutput v_1 = tint_symbol;
+  return v_1;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_2 = vertex_main_inner();
+  VertexOutput v_3 = v_2;
+  VertexOutput v_4 = v_2;
+  vertex_main_outputs v_5 = {v_4.prevent_dce, v_3.pos};
+  return v_5;
+}
+
diff --git a/test/tint/builtins/gen/literal/textureDimensions/f4e469.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/textureDimensions/f4e469.wgsl.expected.ir.dxc.hlsl
index 1fac62e..8b55a45 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/f4e469.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/f4e469.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,19 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureDimensions
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWByteAddressBuffer prevent_dce : register(u0);
+RWTexture2D<float4> arg_0 : register(u0, space1);
+uint2 textureDimensions_f4e469() {
+  uint2 v = (0u).xx;
+  arg_0.GetDimensions(v[0u], v[1u]);
+  uint2 res = v;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store2(0u, textureDimensions_f4e469());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store2(0u, textureDimensions_f4e469());
+}
+
diff --git a/test/tint/builtins/gen/literal/textureDimensions/f4e469.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/textureDimensions/f4e469.wgsl.expected.ir.fxc.hlsl
index 1fac62e..8b55a45 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/f4e469.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/f4e469.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,19 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureDimensions
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWByteAddressBuffer prevent_dce : register(u0);
+RWTexture2D<float4> arg_0 : register(u0, space1);
+uint2 textureDimensions_f4e469() {
+  uint2 v = (0u).xx;
+  arg_0.GetDimensions(v[0u], v[1u]);
+  uint2 res = v;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store2(0u, textureDimensions_f4e469());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store2(0u, textureDimensions_f4e469());
+}
+
diff --git a/test/tint/builtins/gen/literal/textureDimensions/f55a94.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/textureDimensions/f55a94.wgsl.expected.ir.dxc.hlsl
index 1fac62e..491f233 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/f55a94.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/f55a94.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,19 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureDimensions
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWByteAddressBuffer prevent_dce : register(u0);
+RWTexture3D<float4> arg_0 : register(u0, space1);
+uint3 textureDimensions_f55a94() {
+  uint3 v = (0u).xxx;
+  arg_0.GetDimensions(v[0u], v[1u], v[2u]);
+  uint3 res = v;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store3(0u, textureDimensions_f55a94());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store3(0u, textureDimensions_f55a94());
+}
+
diff --git a/test/tint/builtins/gen/literal/textureDimensions/f55a94.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/textureDimensions/f55a94.wgsl.expected.ir.fxc.hlsl
index 1fac62e..491f233 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/f55a94.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/f55a94.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,19 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureDimensions
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWByteAddressBuffer prevent_dce : register(u0);
+RWTexture3D<float4> arg_0 : register(u0, space1);
+uint3 textureDimensions_f55a94() {
+  uint3 v = (0u).xxx;
+  arg_0.GetDimensions(v[0u], v[1u], v[2u]);
+  uint3 res = v;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store3(0u, textureDimensions_f55a94());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store3(0u, textureDimensions_f55a94());
+}
+
diff --git a/test/tint/builtins/gen/literal/textureDimensions/f626b3.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/textureDimensions/f626b3.wgsl.expected.ir.dxc.hlsl
index 1fac62e..9a78f87 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/f626b3.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/f626b3.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,45 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  uint2 prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureDimensions
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation uint2 VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+TextureCube<int4> arg_0 : register(t0, space1);
+uint2 textureDimensions_f626b3() {
+  uint2 v = (0u).xx;
+  arg_0.GetDimensions(v[0u], v[1u]);
+  uint2 res = v;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store2(0u, textureDimensions_f626b3());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store2(0u, textureDimensions_f626b3());
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = textureDimensions_f626b3();
+  VertexOutput v_1 = tint_symbol;
+  return v_1;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_2 = vertex_main_inner();
+  VertexOutput v_3 = v_2;
+  VertexOutput v_4 = v_2;
+  vertex_main_outputs v_5 = {v_4.prevent_dce, v_3.pos};
+  return v_5;
+}
+
diff --git a/test/tint/builtins/gen/literal/textureDimensions/f626b3.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/textureDimensions/f626b3.wgsl.expected.ir.fxc.hlsl
index 1fac62e..9a78f87 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/f626b3.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/f626b3.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,45 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  uint2 prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureDimensions
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation uint2 VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+TextureCube<int4> arg_0 : register(t0, space1);
+uint2 textureDimensions_f626b3() {
+  uint2 v = (0u).xx;
+  arg_0.GetDimensions(v[0u], v[1u]);
+  uint2 res = v;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store2(0u, textureDimensions_f626b3());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store2(0u, textureDimensions_f626b3());
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = textureDimensions_f626b3();
+  VertexOutput v_1 = tint_symbol;
+  return v_1;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_2 = vertex_main_inner();
+  VertexOutput v_3 = v_2;
+  VertexOutput v_4 = v_2;
+  vertex_main_outputs v_5 = {v_4.prevent_dce, v_3.pos};
+  return v_5;
+}
+
diff --git a/test/tint/builtins/gen/literal/textureDimensions/f7bac5.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/textureDimensions/f7bac5.wgsl.expected.ir.dxc.hlsl
index 1fac62e..e28b670 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/f7bac5.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/f7bac5.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,45 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  uint2 prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureDimensions
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation uint2 VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+Texture2DArray<int4> arg_0 : register(t0, space1);
+uint2 textureDimensions_f7bac5() {
+  uint3 v = (0u).xxx;
+  arg_0.GetDimensions(v[0u], v[1u], v[2u]);
+  uint2 res = v.xy;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store2(0u, textureDimensions_f7bac5());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store2(0u, textureDimensions_f7bac5());
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = textureDimensions_f7bac5();
+  VertexOutput v_1 = tint_symbol;
+  return v_1;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_2 = vertex_main_inner();
+  VertexOutput v_3 = v_2;
+  VertexOutput v_4 = v_2;
+  vertex_main_outputs v_5 = {v_4.prevent_dce, v_3.pos};
+  return v_5;
+}
+
diff --git a/test/tint/builtins/gen/literal/textureDimensions/f7bac5.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/textureDimensions/f7bac5.wgsl.expected.ir.fxc.hlsl
index 1fac62e..e28b670 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/f7bac5.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/f7bac5.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,45 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  uint2 prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureDimensions
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation uint2 VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+Texture2DArray<int4> arg_0 : register(t0, space1);
+uint2 textureDimensions_f7bac5() {
+  uint3 v = (0u).xxx;
+  arg_0.GetDimensions(v[0u], v[1u], v[2u]);
+  uint2 res = v.xy;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store2(0u, textureDimensions_f7bac5());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store2(0u, textureDimensions_f7bac5());
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = textureDimensions_f7bac5();
+  VertexOutput v_1 = tint_symbol;
+  return v_1;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_2 = vertex_main_inner();
+  VertexOutput v_3 = v_2;
+  VertexOutput v_4 = v_2;
+  vertex_main_outputs v_5 = {v_4.prevent_dce, v_3.pos};
+  return v_5;
+}
+
diff --git a/test/tint/builtins/gen/literal/textureDimensions/f8522e.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/textureDimensions/f8522e.wgsl.expected.ir.dxc.hlsl
index 1fac62e..cc5f5d4 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/f8522e.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/f8522e.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,45 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  uint2 prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureDimensions
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation uint2 VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+Texture2D<int4> arg_0 : register(t0, space1);
+uint2 textureDimensions_f8522e() {
+  uint2 v = (0u).xx;
+  arg_0.GetDimensions(v[0u], v[1u]);
+  uint2 res = v;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store2(0u, textureDimensions_f8522e());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store2(0u, textureDimensions_f8522e());
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = textureDimensions_f8522e();
+  VertexOutput v_1 = tint_symbol;
+  return v_1;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_2 = vertex_main_inner();
+  VertexOutput v_3 = v_2;
+  VertexOutput v_4 = v_2;
+  vertex_main_outputs v_5 = {v_4.prevent_dce, v_3.pos};
+  return v_5;
+}
+
diff --git a/test/tint/builtins/gen/literal/textureDimensions/f8522e.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/textureDimensions/f8522e.wgsl.expected.ir.fxc.hlsl
index 1fac62e..cc5f5d4 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/f8522e.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/f8522e.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,45 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  uint2 prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureDimensions
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation uint2 VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+Texture2D<int4> arg_0 : register(t0, space1);
+uint2 textureDimensions_f8522e() {
+  uint2 v = (0u).xx;
+  arg_0.GetDimensions(v[0u], v[1u]);
+  uint2 res = v;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store2(0u, textureDimensions_f8522e());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store2(0u, textureDimensions_f8522e());
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = textureDimensions_f8522e();
+  VertexOutput v_1 = tint_symbol;
+  return v_1;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_2 = vertex_main_inner();
+  VertexOutput v_3 = v_2;
+  VertexOutput v_4 = v_2;
+  vertex_main_outputs v_5 = {v_4.prevent_dce, v_3.pos};
+  return v_5;
+}
+
diff --git a/test/tint/builtins/gen/literal/textureDimensions/f93ece.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/textureDimensions/f93ece.wgsl.expected.ir.dxc.hlsl
index 1fac62e..9d3ce96 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/f93ece.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/f93ece.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,19 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureDimensions
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWByteAddressBuffer prevent_dce : register(u0);
+RWTexture3D<float4> arg_0 : register(u0, space1);
+uint3 textureDimensions_f93ece() {
+  uint3 v = (0u).xxx;
+  arg_0.GetDimensions(v[0u], v[1u], v[2u]);
+  uint3 res = v;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store3(0u, textureDimensions_f93ece());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store3(0u, textureDimensions_f93ece());
+}
+
diff --git a/test/tint/builtins/gen/literal/textureDimensions/f93ece.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/textureDimensions/f93ece.wgsl.expected.ir.fxc.hlsl
index 1fac62e..9d3ce96 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/f93ece.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/f93ece.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,19 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureDimensions
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWByteAddressBuffer prevent_dce : register(u0);
+RWTexture3D<float4> arg_0 : register(u0, space1);
+uint3 textureDimensions_f93ece() {
+  uint3 v = (0u).xxx;
+  arg_0.GetDimensions(v[0u], v[1u], v[2u]);
+  uint3 res = v;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store3(0u, textureDimensions_f93ece());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store3(0u, textureDimensions_f93ece());
+}
+
diff --git a/test/tint/builtins/gen/literal/textureDimensions/f94e55.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/textureDimensions/f94e55.wgsl.expected.ir.dxc.hlsl
index 1fac62e..412fdb7 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/f94e55.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/f94e55.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,19 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureDimensions
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWByteAddressBuffer prevent_dce : register(u0);
+RWTexture2D<float4> arg_0 : register(u0, space1);
+uint2 textureDimensions_f94e55() {
+  uint2 v = (0u).xx;
+  arg_0.GetDimensions(v[0u], v[1u]);
+  uint2 res = v;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store2(0u, textureDimensions_f94e55());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store2(0u, textureDimensions_f94e55());
+}
+
diff --git a/test/tint/builtins/gen/literal/textureDimensions/f94e55.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/textureDimensions/f94e55.wgsl.expected.ir.fxc.hlsl
index 1fac62e..412fdb7 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/f94e55.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/f94e55.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,19 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureDimensions
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWByteAddressBuffer prevent_dce : register(u0);
+RWTexture2D<float4> arg_0 : register(u0, space1);
+uint2 textureDimensions_f94e55() {
+  uint2 v = (0u).xx;
+  arg_0.GetDimensions(v[0u], v[1u]);
+  uint2 res = v;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store2(0u, textureDimensions_f94e55());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store2(0u, textureDimensions_f94e55());
+}
+
diff --git a/test/tint/builtins/gen/literal/textureDimensions/fbb15a.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/textureDimensions/fbb15a.wgsl.expected.ir.dxc.hlsl
index 1fac62e..abc5d60 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/fbb15a.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/fbb15a.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,19 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureDimensions
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWByteAddressBuffer prevent_dce : register(u0);
+RWTexture2D<float4> arg_0 : register(u0, space1);
+uint2 textureDimensions_fbb15a() {
+  uint2 v = (0u).xx;
+  arg_0.GetDimensions(v[0u], v[1u]);
+  uint2 res = v;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store2(0u, textureDimensions_fbb15a());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store2(0u, textureDimensions_fbb15a());
+}
+
diff --git a/test/tint/builtins/gen/literal/textureDimensions/fbb15a.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/textureDimensions/fbb15a.wgsl.expected.ir.fxc.hlsl
index 1fac62e..abc5d60 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/fbb15a.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/fbb15a.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,19 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureDimensions
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWByteAddressBuffer prevent_dce : register(u0);
+RWTexture2D<float4> arg_0 : register(u0, space1);
+uint2 textureDimensions_fbb15a() {
+  uint2 v = (0u).xx;
+  arg_0.GetDimensions(v[0u], v[1u]);
+  uint2 res = v;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store2(0u, textureDimensions_fbb15a());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store2(0u, textureDimensions_fbb15a());
+}
+
diff --git a/test/tint/builtins/gen/literal/textureDimensions/fdbae8.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/textureDimensions/fdbae8.wgsl.expected.ir.dxc.hlsl
index 1fac62e..d6bf01e 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/fdbae8.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/fdbae8.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,45 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  uint prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureDimensions
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation uint VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+Texture1D<float4> arg_0 : register(t0, space1);
+uint textureDimensions_fdbae8() {
+  uint v = 0u;
+  arg_0.GetDimensions(v);
+  uint res = v;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store(0u, textureDimensions_fdbae8());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store(0u, textureDimensions_fdbae8());
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = textureDimensions_fdbae8();
+  VertexOutput v_1 = tint_symbol;
+  return v_1;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_2 = vertex_main_inner();
+  VertexOutput v_3 = v_2;
+  VertexOutput v_4 = v_2;
+  vertex_main_outputs v_5 = {v_4.prevent_dce, v_3.pos};
+  return v_5;
+}
+
diff --git a/test/tint/builtins/gen/literal/textureDimensions/fdbae8.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/textureDimensions/fdbae8.wgsl.expected.ir.fxc.hlsl
index 1fac62e..d6bf01e 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/fdbae8.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/fdbae8.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,45 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  uint prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureDimensions
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation uint VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+Texture1D<float4> arg_0 : register(t0, space1);
+uint textureDimensions_fdbae8() {
+  uint v = 0u;
+  arg_0.GetDimensions(v);
+  uint res = v;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store(0u, textureDimensions_fdbae8());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store(0u, textureDimensions_fdbae8());
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = textureDimensions_fdbae8();
+  VertexOutput v_1 = tint_symbol;
+  return v_1;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_2 = vertex_main_inner();
+  VertexOutput v_3 = v_2;
+  VertexOutput v_4 = v_2;
+  vertex_main_outputs v_5 = {v_4.prevent_dce, v_3.pos};
+  return v_5;
+}
+
diff --git a/test/tint/builtins/gen/literal/textureDimensions/fdf6e9.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/textureDimensions/fdf6e9.wgsl.expected.ir.dxc.hlsl
index 1fac62e..199386a 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/fdf6e9.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/fdf6e9.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,46 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  uint2 prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureDimensions
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation uint2 VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+Texture2DArray<int4> arg_0 : register(t0, space1);
+uint2 textureDimensions_fdf6e9() {
+  Texture2DArray<int4> v = arg_0;
+  uint4 v_1 = (0u).xxxx;
+  v.GetDimensions(uint(1), v_1[0u], v_1[1u], v_1[2u], v_1[3u]);
+  uint2 res = v_1.xy;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store2(0u, textureDimensions_fdf6e9());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store2(0u, textureDimensions_fdf6e9());
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = textureDimensions_fdf6e9();
+  VertexOutput v_2 = tint_symbol;
+  return v_2;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_3 = vertex_main_inner();
+  VertexOutput v_4 = v_3;
+  VertexOutput v_5 = v_3;
+  vertex_main_outputs v_6 = {v_5.prevent_dce, v_4.pos};
+  return v_6;
+}
+
diff --git a/test/tint/builtins/gen/literal/textureDimensions/fdf6e9.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/textureDimensions/fdf6e9.wgsl.expected.ir.fxc.hlsl
index 1fac62e..199386a 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/fdf6e9.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/fdf6e9.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,46 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  uint2 prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureDimensions
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation uint2 VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+Texture2DArray<int4> arg_0 : register(t0, space1);
+uint2 textureDimensions_fdf6e9() {
+  Texture2DArray<int4> v = arg_0;
+  uint4 v_1 = (0u).xxxx;
+  v.GetDimensions(uint(1), v_1[0u], v_1[1u], v_1[2u], v_1[3u]);
+  uint2 res = v_1.xy;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store2(0u, textureDimensions_fdf6e9());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store2(0u, textureDimensions_fdf6e9());
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = textureDimensions_fdf6e9();
+  VertexOutput v_2 = tint_symbol;
+  return v_2;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_3 = vertex_main_inner();
+  VertexOutput v_4 = v_3;
+  VertexOutput v_5 = v_3;
+  vertex_main_outputs v_6 = {v_5.prevent_dce, v_4.pos};
+  return v_6;
+}
+
diff --git a/test/tint/builtins/gen/literal/textureGather/0166ec.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/textureGather/0166ec.wgsl.expected.ir.dxc.hlsl
index de83606..376246a 100644
--- a/test/tint/builtins/gen/literal/textureGather/0166ec.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureGather/0166ec.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,44 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  int4 prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureGather
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation int4 VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+TextureCube<int4> arg_1 : register(t1, space1);
+SamplerState arg_2 : register(s2, space1);
+int4 textureGather_0166ec() {
+  int4 res = arg_1.GatherGreen(arg_2, (1.0f).xxx);
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store4(0u, asuint(textureGather_0166ec()));
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store4(0u, asuint(textureGather_0166ec()));
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = textureGather_0166ec();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
diff --git a/test/tint/builtins/gen/literal/textureGather/0166ec.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/textureGather/0166ec.wgsl.expected.ir.fxc.hlsl
index de83606..376246a 100644
--- a/test/tint/builtins/gen/literal/textureGather/0166ec.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureGather/0166ec.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,44 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  int4 prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureGather
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation int4 VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+TextureCube<int4> arg_1 : register(t1, space1);
+SamplerState arg_2 : register(s2, space1);
+int4 textureGather_0166ec() {
+  int4 res = arg_1.GatherGreen(arg_2, (1.0f).xxx);
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store4(0u, asuint(textureGather_0166ec()));
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store4(0u, asuint(textureGather_0166ec()));
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = textureGather_0166ec();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
diff --git a/test/tint/builtins/gen/literal/textureGather/04fa78.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/textureGather/04fa78.wgsl.expected.ir.dxc.hlsl
index de83606..84d6e17 100644
--- a/test/tint/builtins/gen/literal/textureGather/04fa78.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureGather/04fa78.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,46 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  int4 prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureGather
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation int4 VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+TextureCubeArray<int4> arg_1 : register(t1, space1);
+SamplerState arg_2 : register(s2, space1);
+int4 textureGather_04fa78() {
+  TextureCubeArray<int4> v = arg_1;
+  SamplerState v_1 = arg_2;
+  int4 res = v.GatherGreen(v_1, float4((1.0f).xxx, float(1u)));
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store4(0u, asuint(textureGather_04fa78()));
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store4(0u, asuint(textureGather_04fa78()));
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = textureGather_04fa78();
+  VertexOutput v_2 = tint_symbol;
+  return v_2;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_3 = vertex_main_inner();
+  VertexOutput v_4 = v_3;
+  VertexOutput v_5 = v_3;
+  vertex_main_outputs v_6 = {v_5.prevent_dce, v_4.pos};
+  return v_6;
+}
+
diff --git a/test/tint/builtins/gen/literal/textureGather/04fa78.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/textureGather/04fa78.wgsl.expected.ir.fxc.hlsl
index de83606..84d6e17 100644
--- a/test/tint/builtins/gen/literal/textureGather/04fa78.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureGather/04fa78.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,46 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  int4 prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureGather
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation int4 VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+TextureCubeArray<int4> arg_1 : register(t1, space1);
+SamplerState arg_2 : register(s2, space1);
+int4 textureGather_04fa78() {
+  TextureCubeArray<int4> v = arg_1;
+  SamplerState v_1 = arg_2;
+  int4 res = v.GatherGreen(v_1, float4((1.0f).xxx, float(1u)));
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store4(0u, asuint(textureGather_04fa78()));
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store4(0u, asuint(textureGather_04fa78()));
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = textureGather_04fa78();
+  VertexOutput v_2 = tint_symbol;
+  return v_2;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_3 = vertex_main_inner();
+  VertexOutput v_4 = v_3;
+  VertexOutput v_5 = v_3;
+  vertex_main_outputs v_6 = {v_5.prevent_dce, v_4.pos};
+  return v_6;
+}
+
diff --git a/test/tint/builtins/gen/literal/textureGather/10c554.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/textureGather/10c554.wgsl.expected.ir.dxc.hlsl
index de83606..a40fc45 100644
--- a/test/tint/builtins/gen/literal/textureGather/10c554.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureGather/10c554.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,44 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  float4 prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureGather
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation float4 VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+TextureCube arg_0 : register(t0, space1);
+SamplerState arg_1 : register(s1, space1);
+float4 textureGather_10c554() {
+  float4 res = arg_0.Gather(arg_1, (1.0f).xxx);
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store4(0u, asuint(textureGather_10c554()));
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store4(0u, asuint(textureGather_10c554()));
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = textureGather_10c554();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
diff --git a/test/tint/builtins/gen/literal/textureGather/10c554.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/textureGather/10c554.wgsl.expected.ir.fxc.hlsl
index de83606..a40fc45 100644
--- a/test/tint/builtins/gen/literal/textureGather/10c554.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureGather/10c554.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,44 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  float4 prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureGather
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation float4 VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+TextureCube arg_0 : register(t0, space1);
+SamplerState arg_1 : register(s1, space1);
+float4 textureGather_10c554() {
+  float4 res = arg_0.Gather(arg_1, (1.0f).xxx);
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store4(0u, asuint(textureGather_10c554()));
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store4(0u, asuint(textureGather_10c554()));
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = textureGather_10c554();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
diff --git a/test/tint/builtins/gen/literal/textureGather/11b2db.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/textureGather/11b2db.wgsl.expected.ir.dxc.hlsl
index de83606..9e58f1a 100644
--- a/test/tint/builtins/gen/literal/textureGather/11b2db.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureGather/11b2db.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,44 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  float4 prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureGather
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation float4 VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+TextureCube<float4> arg_1 : register(t1, space1);
+SamplerState arg_2 : register(s2, space1);
+float4 textureGather_11b2db() {
+  float4 res = arg_1.GatherGreen(arg_2, (1.0f).xxx);
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store4(0u, asuint(textureGather_11b2db()));
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store4(0u, asuint(textureGather_11b2db()));
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = textureGather_11b2db();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
diff --git a/test/tint/builtins/gen/literal/textureGather/11b2db.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/textureGather/11b2db.wgsl.expected.ir.fxc.hlsl
index de83606..9e58f1a 100644
--- a/test/tint/builtins/gen/literal/textureGather/11b2db.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureGather/11b2db.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,44 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  float4 prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureGather
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation float4 VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+TextureCube<float4> arg_1 : register(t1, space1);
+SamplerState arg_2 : register(s2, space1);
+float4 textureGather_11b2db() {
+  float4 res = arg_1.GatherGreen(arg_2, (1.0f).xxx);
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store4(0u, asuint(textureGather_11b2db()));
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store4(0u, asuint(textureGather_11b2db()));
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = textureGather_11b2db();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
diff --git a/test/tint/builtins/gen/literal/textureGather/17baac.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/textureGather/17baac.wgsl.expected.ir.dxc.hlsl
index de83606..62c1bbd 100644
--- a/test/tint/builtins/gen/literal/textureGather/17baac.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureGather/17baac.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,46 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  float4 prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureGather
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation float4 VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+Texture2DArray<float4> arg_1 : register(t1, space1);
+SamplerState arg_2 : register(s2, space1);
+float4 textureGather_17baac() {
+  Texture2DArray<float4> v = arg_1;
+  SamplerState v_1 = arg_2;
+  float4 res = v.GatherGreen(v_1, float3((1.0f).xx, float(1u)));
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store4(0u, asuint(textureGather_17baac()));
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store4(0u, asuint(textureGather_17baac()));
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = textureGather_17baac();
+  VertexOutput v_2 = tint_symbol;
+  return v_2;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_3 = vertex_main_inner();
+  VertexOutput v_4 = v_3;
+  VertexOutput v_5 = v_3;
+  vertex_main_outputs v_6 = {v_5.prevent_dce, v_4.pos};
+  return v_6;
+}
+
diff --git a/test/tint/builtins/gen/literal/textureGather/17baac.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/textureGather/17baac.wgsl.expected.ir.fxc.hlsl
index de83606..62c1bbd 100644
--- a/test/tint/builtins/gen/literal/textureGather/17baac.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureGather/17baac.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,46 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  float4 prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureGather
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation float4 VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+Texture2DArray<float4> arg_1 : register(t1, space1);
+SamplerState arg_2 : register(s2, space1);
+float4 textureGather_17baac() {
+  Texture2DArray<float4> v = arg_1;
+  SamplerState v_1 = arg_2;
+  float4 res = v.GatherGreen(v_1, float3((1.0f).xx, float(1u)));
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store4(0u, asuint(textureGather_17baac()));
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store4(0u, asuint(textureGather_17baac()));
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = textureGather_17baac();
+  VertexOutput v_2 = tint_symbol;
+  return v_2;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_3 = vertex_main_inner();
+  VertexOutput v_4 = v_3;
+  VertexOutput v_5 = v_3;
+  vertex_main_outputs v_6 = {v_5.prevent_dce, v_4.pos};
+  return v_6;
+}
+
diff --git a/test/tint/builtins/gen/literal/textureGather/1bf0ab.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/textureGather/1bf0ab.wgsl.expected.ir.dxc.hlsl
index de83606..c2d8198 100644
--- a/test/tint/builtins/gen/literal/textureGather/1bf0ab.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureGather/1bf0ab.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,46 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  uint4 prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureGather
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation uint4 VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+Texture2DArray<uint4> arg_1 : register(t1, space1);
+SamplerState arg_2 : register(s2, space1);
+uint4 textureGather_1bf0ab() {
+  Texture2DArray<uint4> v = arg_1;
+  SamplerState v_1 = arg_2;
+  uint4 res = v.GatherGreen(v_1, float3((1.0f).xx, float(1u)));
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store4(0u, textureGather_1bf0ab());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store4(0u, textureGather_1bf0ab());
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = textureGather_1bf0ab();
+  VertexOutput v_2 = tint_symbol;
+  return v_2;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_3 = vertex_main_inner();
+  VertexOutput v_4 = v_3;
+  VertexOutput v_5 = v_3;
+  vertex_main_outputs v_6 = {v_5.prevent_dce, v_4.pos};
+  return v_6;
+}
+
diff --git a/test/tint/builtins/gen/literal/textureGather/1bf0ab.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/textureGather/1bf0ab.wgsl.expected.ir.fxc.hlsl
index de83606..c2d8198 100644
--- a/test/tint/builtins/gen/literal/textureGather/1bf0ab.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureGather/1bf0ab.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,46 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  uint4 prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureGather
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation uint4 VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+Texture2DArray<uint4> arg_1 : register(t1, space1);
+SamplerState arg_2 : register(s2, space1);
+uint4 textureGather_1bf0ab() {
+  Texture2DArray<uint4> v = arg_1;
+  SamplerState v_1 = arg_2;
+  uint4 res = v.GatherGreen(v_1, float3((1.0f).xx, float(1u)));
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store4(0u, textureGather_1bf0ab());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store4(0u, textureGather_1bf0ab());
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = textureGather_1bf0ab();
+  VertexOutput v_2 = tint_symbol;
+  return v_2;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_3 = vertex_main_inner();
+  VertexOutput v_4 = v_3;
+  VertexOutput v_5 = v_3;
+  vertex_main_outputs v_6 = {v_5.prevent_dce, v_4.pos};
+  return v_6;
+}
+
diff --git a/test/tint/builtins/gen/literal/textureGather/1f7f6b.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/textureGather/1f7f6b.wgsl.expected.ir.dxc.hlsl
index de83606..b8b88c6 100644
--- a/test/tint/builtins/gen/literal/textureGather/1f7f6b.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureGather/1f7f6b.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,3 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureGather
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+exit status 0xe0000001
\ No newline at end of file
diff --git a/test/tint/builtins/gen/literal/textureGather/1f7f6b.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/textureGather/1f7f6b.wgsl.expected.ir.fxc.hlsl
index de83606..4072ad3 100644
--- a/test/tint/builtins/gen/literal/textureGather/1f7f6b.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureGather/1f7f6b.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,44 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  float4 prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureGather
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation float4 VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+Texture2D arg_0 : register(t0, space1);
+SamplerState arg_1 : register(s1, space1);
+float4 textureGather_1f7f6b() {
+  float4 res = arg_0.Gather(arg_1, (1.0f).xx, (1).xx);
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store4(0u, asuint(textureGather_1f7f6b()));
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store4(0u, asuint(textureGather_1f7f6b()));
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = textureGather_1f7f6b();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
diff --git a/test/tint/builtins/gen/literal/textureGather/22e930.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/textureGather/22e930.wgsl.expected.ir.dxc.hlsl
index de83606..9777026 100644
--- a/test/tint/builtins/gen/literal/textureGather/22e930.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureGather/22e930.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,46 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  float4 prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureGather
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation float4 VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+Texture2DArray<float4> arg_1 : register(t1, space1);
+SamplerState arg_2 : register(s2, space1);
+float4 textureGather_22e930() {
+  Texture2DArray<float4> v = arg_1;
+  SamplerState v_1 = arg_2;
+  float4 res = v.GatherGreen(v_1, float3((1.0f).xx, float(1)));
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store4(0u, asuint(textureGather_22e930()));
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store4(0u, asuint(textureGather_22e930()));
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = textureGather_22e930();
+  VertexOutput v_2 = tint_symbol;
+  return v_2;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_3 = vertex_main_inner();
+  VertexOutput v_4 = v_3;
+  VertexOutput v_5 = v_3;
+  vertex_main_outputs v_6 = {v_5.prevent_dce, v_4.pos};
+  return v_6;
+}
+
diff --git a/test/tint/builtins/gen/literal/textureGather/22e930.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/textureGather/22e930.wgsl.expected.ir.fxc.hlsl
index de83606..9777026 100644
--- a/test/tint/builtins/gen/literal/textureGather/22e930.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureGather/22e930.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,46 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  float4 prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureGather
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation float4 VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+Texture2DArray<float4> arg_1 : register(t1, space1);
+SamplerState arg_2 : register(s2, space1);
+float4 textureGather_22e930() {
+  Texture2DArray<float4> v = arg_1;
+  SamplerState v_1 = arg_2;
+  float4 res = v.GatherGreen(v_1, float3((1.0f).xx, float(1)));
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store4(0u, asuint(textureGather_22e930()));
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store4(0u, asuint(textureGather_22e930()));
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = textureGather_22e930();
+  VertexOutput v_2 = tint_symbol;
+  return v_2;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_3 = vertex_main_inner();
+  VertexOutput v_4 = v_3;
+  VertexOutput v_5 = v_3;
+  vertex_main_outputs v_6 = {v_5.prevent_dce, v_4.pos};
+  return v_6;
+}
+
diff --git a/test/tint/builtins/gen/literal/textureGather/238ec4.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/textureGather/238ec4.wgsl.expected.ir.dxc.hlsl
index de83606..b8b88c6 100644
--- a/test/tint/builtins/gen/literal/textureGather/238ec4.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureGather/238ec4.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,3 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureGather
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+exit status 0xe0000001
\ No newline at end of file
diff --git a/test/tint/builtins/gen/literal/textureGather/238ec4.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/textureGather/238ec4.wgsl.expected.ir.fxc.hlsl
index de83606..e1cb519 100644
--- a/test/tint/builtins/gen/literal/textureGather/238ec4.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureGather/238ec4.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,46 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  float4 prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureGather
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation float4 VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+Texture2DArray<float4> arg_1 : register(t1, space1);
+SamplerState arg_2 : register(s2, space1);
+float4 textureGather_238ec4() {
+  Texture2DArray<float4> v = arg_1;
+  SamplerState v_1 = arg_2;
+  float4 res = v.GatherGreen(v_1, float3((1.0f).xx, float(1u)), (1).xx);
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store4(0u, asuint(textureGather_238ec4()));
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store4(0u, asuint(textureGather_238ec4()));
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = textureGather_238ec4();
+  VertexOutput v_2 = tint_symbol;
+  return v_2;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_3 = vertex_main_inner();
+  VertexOutput v_4 = v_3;
+  VertexOutput v_5 = v_3;
+  vertex_main_outputs v_6 = {v_5.prevent_dce, v_4.pos};
+  return v_6;
+}
+
diff --git a/test/tint/builtins/gen/literal/textureGather/24b0bd.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/textureGather/24b0bd.wgsl.expected.ir.dxc.hlsl
index de83606..a976416 100644
--- a/test/tint/builtins/gen/literal/textureGather/24b0bd.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureGather/24b0bd.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,46 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  float4 prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureGather
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation float4 VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+Texture2DArray<float4> arg_1 : register(t1, space1);
+SamplerState arg_2 : register(s2, space1);
+float4 textureGather_24b0bd() {
+  Texture2DArray<float4> v = arg_1;
+  SamplerState v_1 = arg_2;
+  float4 res = v.GatherGreen(v_1, float3((1.0f).xx, float(1)));
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store4(0u, asuint(textureGather_24b0bd()));
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store4(0u, asuint(textureGather_24b0bd()));
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = textureGather_24b0bd();
+  VertexOutput v_2 = tint_symbol;
+  return v_2;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_3 = vertex_main_inner();
+  VertexOutput v_4 = v_3;
+  VertexOutput v_5 = v_3;
+  vertex_main_outputs v_6 = {v_5.prevent_dce, v_4.pos};
+  return v_6;
+}
+
diff --git a/test/tint/builtins/gen/literal/textureGather/24b0bd.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/textureGather/24b0bd.wgsl.expected.ir.fxc.hlsl
index de83606..a976416 100644
--- a/test/tint/builtins/gen/literal/textureGather/24b0bd.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureGather/24b0bd.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,46 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  float4 prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureGather
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation float4 VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+Texture2DArray<float4> arg_1 : register(t1, space1);
+SamplerState arg_2 : register(s2, space1);
+float4 textureGather_24b0bd() {
+  Texture2DArray<float4> v = arg_1;
+  SamplerState v_1 = arg_2;
+  float4 res = v.GatherGreen(v_1, float3((1.0f).xx, float(1)));
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store4(0u, asuint(textureGather_24b0bd()));
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store4(0u, asuint(textureGather_24b0bd()));
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = textureGather_24b0bd();
+  VertexOutput v_2 = tint_symbol;
+  return v_2;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_3 = vertex_main_inner();
+  VertexOutput v_4 = v_3;
+  VertexOutput v_5 = v_3;
+  vertex_main_outputs v_6 = {v_5.prevent_dce, v_4.pos};
+  return v_6;
+}
+
diff --git a/test/tint/builtins/gen/literal/textureGather/269250.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/textureGather/269250.wgsl.expected.ir.dxc.hlsl
index de83606..ef58ca3 100644
--- a/test/tint/builtins/gen/literal/textureGather/269250.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureGather/269250.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,46 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  int4 prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureGather
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation int4 VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+Texture2DArray<int4> arg_1 : register(t1, space1);
+SamplerState arg_2 : register(s2, space1);
+int4 textureGather_269250() {
+  Texture2DArray<int4> v = arg_1;
+  SamplerState v_1 = arg_2;
+  int4 res = v.GatherGreen(v_1, float3((1.0f).xx, float(1u)));
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store4(0u, asuint(textureGather_269250()));
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store4(0u, asuint(textureGather_269250()));
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = textureGather_269250();
+  VertexOutput v_2 = tint_symbol;
+  return v_2;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_3 = vertex_main_inner();
+  VertexOutput v_4 = v_3;
+  VertexOutput v_5 = v_3;
+  vertex_main_outputs v_6 = {v_5.prevent_dce, v_4.pos};
+  return v_6;
+}
+
diff --git a/test/tint/builtins/gen/literal/textureGather/269250.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/textureGather/269250.wgsl.expected.ir.fxc.hlsl
index de83606..ef58ca3 100644
--- a/test/tint/builtins/gen/literal/textureGather/269250.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureGather/269250.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,46 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  int4 prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureGather
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation int4 VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+Texture2DArray<int4> arg_1 : register(t1, space1);
+SamplerState arg_2 : register(s2, space1);
+int4 textureGather_269250() {
+  Texture2DArray<int4> v = arg_1;
+  SamplerState v_1 = arg_2;
+  int4 res = v.GatherGreen(v_1, float3((1.0f).xx, float(1u)));
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store4(0u, asuint(textureGather_269250()));
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store4(0u, asuint(textureGather_269250()));
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = textureGather_269250();
+  VertexOutput v_2 = tint_symbol;
+  return v_2;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_3 = vertex_main_inner();
+  VertexOutput v_4 = v_3;
+  VertexOutput v_5 = v_3;
+  vertex_main_outputs v_6 = {v_5.prevent_dce, v_4.pos};
+  return v_6;
+}
+
diff --git a/test/tint/builtins/gen/literal/textureGather/2a4f40.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/textureGather/2a4f40.wgsl.expected.ir.dxc.hlsl
index de83606..158e2d7 100644
--- a/test/tint/builtins/gen/literal/textureGather/2a4f40.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureGather/2a4f40.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,46 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  float4 prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureGather
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation float4 VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+Texture2DArray arg_0 : register(t0, space1);
+SamplerState arg_1 : register(s1, space1);
+float4 textureGather_2a4f40() {
+  Texture2DArray v = arg_0;
+  SamplerState v_1 = arg_1;
+  float4 res = v.Gather(v_1, float3((1.0f).xx, float(1u)));
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store4(0u, asuint(textureGather_2a4f40()));
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store4(0u, asuint(textureGather_2a4f40()));
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = textureGather_2a4f40();
+  VertexOutput v_2 = tint_symbol;
+  return v_2;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_3 = vertex_main_inner();
+  VertexOutput v_4 = v_3;
+  VertexOutput v_5 = v_3;
+  vertex_main_outputs v_6 = {v_5.prevent_dce, v_4.pos};
+  return v_6;
+}
+
diff --git a/test/tint/builtins/gen/literal/textureGather/2a4f40.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/textureGather/2a4f40.wgsl.expected.ir.fxc.hlsl
index de83606..158e2d7 100644
--- a/test/tint/builtins/gen/literal/textureGather/2a4f40.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureGather/2a4f40.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,46 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  float4 prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureGather
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation float4 VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+Texture2DArray arg_0 : register(t0, space1);
+SamplerState arg_1 : register(s1, space1);
+float4 textureGather_2a4f40() {
+  Texture2DArray v = arg_0;
+  SamplerState v_1 = arg_1;
+  float4 res = v.Gather(v_1, float3((1.0f).xx, float(1u)));
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store4(0u, asuint(textureGather_2a4f40()));
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store4(0u, asuint(textureGather_2a4f40()));
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = textureGather_2a4f40();
+  VertexOutput v_2 = tint_symbol;
+  return v_2;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_3 = vertex_main_inner();
+  VertexOutput v_4 = v_3;
+  VertexOutput v_5 = v_3;
+  vertex_main_outputs v_6 = {v_5.prevent_dce, v_4.pos};
+  return v_6;
+}
+
diff --git a/test/tint/builtins/gen/literal/textureGather/2cc066.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/textureGather/2cc066.wgsl.expected.ir.dxc.hlsl
index de83606..c7634b1 100644
--- a/test/tint/builtins/gen/literal/textureGather/2cc066.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureGather/2cc066.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,46 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  uint4 prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureGather
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation uint4 VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+Texture2DArray<uint4> arg_1 : register(t1, space1);
+SamplerState arg_2 : register(s2, space1);
+uint4 textureGather_2cc066() {
+  Texture2DArray<uint4> v = arg_1;
+  SamplerState v_1 = arg_2;
+  uint4 res = v.GatherGreen(v_1, float3((1.0f).xx, float(1)));
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store4(0u, textureGather_2cc066());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store4(0u, textureGather_2cc066());
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = textureGather_2cc066();
+  VertexOutput v_2 = tint_symbol;
+  return v_2;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_3 = vertex_main_inner();
+  VertexOutput v_4 = v_3;
+  VertexOutput v_5 = v_3;
+  vertex_main_outputs v_6 = {v_5.prevent_dce, v_4.pos};
+  return v_6;
+}
+
diff --git a/test/tint/builtins/gen/literal/textureGather/2cc066.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/textureGather/2cc066.wgsl.expected.ir.fxc.hlsl
index de83606..c7634b1 100644
--- a/test/tint/builtins/gen/literal/textureGather/2cc066.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureGather/2cc066.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,46 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  uint4 prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureGather
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation uint4 VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+Texture2DArray<uint4> arg_1 : register(t1, space1);
+SamplerState arg_2 : register(s2, space1);
+uint4 textureGather_2cc066() {
+  Texture2DArray<uint4> v = arg_1;
+  SamplerState v_1 = arg_2;
+  uint4 res = v.GatherGreen(v_1, float3((1.0f).xx, float(1)));
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store4(0u, textureGather_2cc066());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store4(0u, textureGather_2cc066());
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = textureGather_2cc066();
+  VertexOutput v_2 = tint_symbol;
+  return v_2;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_3 = vertex_main_inner();
+  VertexOutput v_4 = v_3;
+  VertexOutput v_5 = v_3;
+  vertex_main_outputs v_6 = {v_5.prevent_dce, v_4.pos};
+  return v_6;
+}
+
diff --git a/test/tint/builtins/gen/literal/textureGather/2e0ed5.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/textureGather/2e0ed5.wgsl.expected.ir.dxc.hlsl
index de83606..c13670e 100644
--- a/test/tint/builtins/gen/literal/textureGather/2e0ed5.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureGather/2e0ed5.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,44 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  float4 prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureGather
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation float4 VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+Texture2D arg_0 : register(t0, space1);
+SamplerState arg_1 : register(s1, space1);
+float4 textureGather_2e0ed5() {
+  float4 res = arg_0.Gather(arg_1, (1.0f).xx);
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store4(0u, asuint(textureGather_2e0ed5()));
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store4(0u, asuint(textureGather_2e0ed5()));
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = textureGather_2e0ed5();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
diff --git a/test/tint/builtins/gen/literal/textureGather/2e0ed5.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/textureGather/2e0ed5.wgsl.expected.ir.fxc.hlsl
index de83606..c13670e 100644
--- a/test/tint/builtins/gen/literal/textureGather/2e0ed5.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureGather/2e0ed5.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,44 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  float4 prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureGather
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation float4 VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+Texture2D arg_0 : register(t0, space1);
+SamplerState arg_1 : register(s1, space1);
+float4 textureGather_2e0ed5() {
+  float4 res = arg_0.Gather(arg_1, (1.0f).xx);
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store4(0u, asuint(textureGather_2e0ed5()));
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store4(0u, asuint(textureGather_2e0ed5()));
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = textureGather_2e0ed5();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
diff --git a/test/tint/builtins/gen/literal/textureGather/32c4e8.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/textureGather/32c4e8.wgsl.expected.ir.dxc.hlsl
index de83606..05de684 100644
--- a/test/tint/builtins/gen/literal/textureGather/32c4e8.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureGather/32c4e8.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,44 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  float4 prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureGather
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation float4 VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+TextureCube<float4> arg_1 : register(t1, space1);
+SamplerState arg_2 : register(s2, space1);
+float4 textureGather_32c4e8() {
+  float4 res = arg_1.GatherGreen(arg_2, (1.0f).xxx);
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store4(0u, asuint(textureGather_32c4e8()));
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store4(0u, asuint(textureGather_32c4e8()));
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = textureGather_32c4e8();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
diff --git a/test/tint/builtins/gen/literal/textureGather/32c4e8.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/textureGather/32c4e8.wgsl.expected.ir.fxc.hlsl
index de83606..05de684 100644
--- a/test/tint/builtins/gen/literal/textureGather/32c4e8.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureGather/32c4e8.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,44 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  float4 prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureGather
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation float4 VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+TextureCube<float4> arg_1 : register(t1, space1);
+SamplerState arg_2 : register(s2, space1);
+float4 textureGather_32c4e8() {
+  float4 res = arg_1.GatherGreen(arg_2, (1.0f).xxx);
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store4(0u, asuint(textureGather_32c4e8()));
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store4(0u, asuint(textureGather_32c4e8()));
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = textureGather_32c4e8();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
diff --git a/test/tint/builtins/gen/literal/textureGather/3b32cc.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/textureGather/3b32cc.wgsl.expected.ir.dxc.hlsl
index de83606..b1c6c80 100644
--- a/test/tint/builtins/gen/literal/textureGather/3b32cc.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureGather/3b32cc.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,44 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  uint4 prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureGather
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation uint4 VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+TextureCube<uint4> arg_1 : register(t1, space1);
+SamplerState arg_2 : register(s2, space1);
+uint4 textureGather_3b32cc() {
+  uint4 res = arg_1.GatherGreen(arg_2, (1.0f).xxx);
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store4(0u, textureGather_3b32cc());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store4(0u, textureGather_3b32cc());
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = textureGather_3b32cc();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
diff --git a/test/tint/builtins/gen/literal/textureGather/3b32cc.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/textureGather/3b32cc.wgsl.expected.ir.fxc.hlsl
index de83606..b1c6c80 100644
--- a/test/tint/builtins/gen/literal/textureGather/3b32cc.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureGather/3b32cc.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,44 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  uint4 prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureGather
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation uint4 VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+TextureCube<uint4> arg_1 : register(t1, space1);
+SamplerState arg_2 : register(s2, space1);
+uint4 textureGather_3b32cc() {
+  uint4 res = arg_1.GatherGreen(arg_2, (1.0f).xxx);
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store4(0u, textureGather_3b32cc());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store4(0u, textureGather_3b32cc());
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = textureGather_3b32cc();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
diff --git a/test/tint/builtins/gen/literal/textureGather/43025d.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/textureGather/43025d.wgsl.expected.ir.dxc.hlsl
index de83606..be13a24 100644
--- a/test/tint/builtins/gen/literal/textureGather/43025d.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureGather/43025d.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,46 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  float4 prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureGather
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation float4 VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+TextureCubeArray arg_0 : register(t0, space1);
+SamplerState arg_1 : register(s1, space1);
+float4 textureGather_43025d() {
+  TextureCubeArray v = arg_0;
+  SamplerState v_1 = arg_1;
+  float4 res = v.Gather(v_1, float4((1.0f).xxx, float(1)));
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store4(0u, asuint(textureGather_43025d()));
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store4(0u, asuint(textureGather_43025d()));
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = textureGather_43025d();
+  VertexOutput v_2 = tint_symbol;
+  return v_2;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_3 = vertex_main_inner();
+  VertexOutput v_4 = v_3;
+  VertexOutput v_5 = v_3;
+  vertex_main_outputs v_6 = {v_5.prevent_dce, v_4.pos};
+  return v_6;
+}
+
diff --git a/test/tint/builtins/gen/literal/textureGather/43025d.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/textureGather/43025d.wgsl.expected.ir.fxc.hlsl
index de83606..be13a24 100644
--- a/test/tint/builtins/gen/literal/textureGather/43025d.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureGather/43025d.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,46 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  float4 prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureGather
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation float4 VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+TextureCubeArray arg_0 : register(t0, space1);
+SamplerState arg_1 : register(s1, space1);
+float4 textureGather_43025d() {
+  TextureCubeArray v = arg_0;
+  SamplerState v_1 = arg_1;
+  float4 res = v.Gather(v_1, float4((1.0f).xxx, float(1)));
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store4(0u, asuint(textureGather_43025d()));
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store4(0u, asuint(textureGather_43025d()));
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = textureGather_43025d();
+  VertexOutput v_2 = tint_symbol;
+  return v_2;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_3 = vertex_main_inner();
+  VertexOutput v_4 = v_3;
+  VertexOutput v_5 = v_3;
+  vertex_main_outputs v_6 = {v_5.prevent_dce, v_4.pos};
+  return v_6;
+}
+
diff --git a/test/tint/builtins/gen/literal/textureGather/445793.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/textureGather/445793.wgsl.expected.ir.dxc.hlsl
index de83606..cad75d9 100644
--- a/test/tint/builtins/gen/literal/textureGather/445793.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureGather/445793.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,46 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  int4 prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureGather
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation int4 VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+Texture2DArray<int4> arg_1 : register(t1, space1);
+SamplerState arg_2 : register(s2, space1);
+int4 textureGather_445793() {
+  Texture2DArray<int4> v = arg_1;
+  SamplerState v_1 = arg_2;
+  int4 res = v.GatherGreen(v_1, float3((1.0f).xx, float(1)));
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store4(0u, asuint(textureGather_445793()));
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store4(0u, asuint(textureGather_445793()));
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = textureGather_445793();
+  VertexOutput v_2 = tint_symbol;
+  return v_2;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_3 = vertex_main_inner();
+  VertexOutput v_4 = v_3;
+  VertexOutput v_5 = v_3;
+  vertex_main_outputs v_6 = {v_5.prevent_dce, v_4.pos};
+  return v_6;
+}
+
diff --git a/test/tint/builtins/gen/literal/textureGather/445793.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/textureGather/445793.wgsl.expected.ir.fxc.hlsl
index de83606..cad75d9 100644
--- a/test/tint/builtins/gen/literal/textureGather/445793.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureGather/445793.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,46 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  int4 prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureGather
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation int4 VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+Texture2DArray<int4> arg_1 : register(t1, space1);
+SamplerState arg_2 : register(s2, space1);
+int4 textureGather_445793() {
+  Texture2DArray<int4> v = arg_1;
+  SamplerState v_1 = arg_2;
+  int4 res = v.GatherGreen(v_1, float3((1.0f).xx, float(1)));
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store4(0u, asuint(textureGather_445793()));
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store4(0u, asuint(textureGather_445793()));
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = textureGather_445793();
+  VertexOutput v_2 = tint_symbol;
+  return v_2;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_3 = vertex_main_inner();
+  VertexOutput v_4 = v_3;
+  VertexOutput v_5 = v_3;
+  vertex_main_outputs v_6 = {v_5.prevent_dce, v_4.pos};
+  return v_6;
+}
+
diff --git a/test/tint/builtins/gen/literal/textureGather/49b07f.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/textureGather/49b07f.wgsl.expected.ir.dxc.hlsl
index de83606..b8b88c6 100644
--- a/test/tint/builtins/gen/literal/textureGather/49b07f.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureGather/49b07f.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,3 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureGather
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+exit status 0xe0000001
\ No newline at end of file
diff --git a/test/tint/builtins/gen/literal/textureGather/49b07f.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/textureGather/49b07f.wgsl.expected.ir.fxc.hlsl
index de83606..e48b9e8 100644
--- a/test/tint/builtins/gen/literal/textureGather/49b07f.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureGather/49b07f.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,44 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  uint4 prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureGather
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation uint4 VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+Texture2D<uint4> arg_1 : register(t1, space1);
+SamplerState arg_2 : register(s2, space1);
+uint4 textureGather_49b07f() {
+  uint4 res = arg_1.GatherGreen(arg_2, (1.0f).xx, (1).xx);
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store4(0u, textureGather_49b07f());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store4(0u, textureGather_49b07f());
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = textureGather_49b07f();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
diff --git a/test/tint/builtins/gen/literal/textureGather/4b8103.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/textureGather/4b8103.wgsl.expected.ir.dxc.hlsl
index de83606..b8b88c6 100644
--- a/test/tint/builtins/gen/literal/textureGather/4b8103.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureGather/4b8103.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,3 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureGather
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+exit status 0xe0000001
\ No newline at end of file
diff --git a/test/tint/builtins/gen/literal/textureGather/4b8103.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/textureGather/4b8103.wgsl.expected.ir.fxc.hlsl
index de83606..f6028b2 100644
--- a/test/tint/builtins/gen/literal/textureGather/4b8103.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureGather/4b8103.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,46 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  float4 prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureGather
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation float4 VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+Texture2DArray<float4> arg_1 : register(t1, space1);
+SamplerState arg_2 : register(s2, space1);
+float4 textureGather_4b8103() {
+  Texture2DArray<float4> v = arg_1;
+  SamplerState v_1 = arg_2;
+  float4 res = v.GatherGreen(v_1, float3((1.0f).xx, float(1)), (1).xx);
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store4(0u, asuint(textureGather_4b8103()));
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store4(0u, asuint(textureGather_4b8103()));
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = textureGather_4b8103();
+  VertexOutput v_2 = tint_symbol;
+  return v_2;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_3 = vertex_main_inner();
+  VertexOutput v_4 = v_3;
+  VertexOutput v_5 = v_3;
+  vertex_main_outputs v_6 = {v_5.prevent_dce, v_4.pos};
+  return v_6;
+}
+
diff --git a/test/tint/builtins/gen/literal/textureGather/4e8ac5.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/textureGather/4e8ac5.wgsl.expected.ir.dxc.hlsl
index de83606..c1555f4 100644
--- a/test/tint/builtins/gen/literal/textureGather/4e8ac5.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureGather/4e8ac5.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,46 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  int4 prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureGather
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation int4 VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+Texture2DArray<int4> arg_1 : register(t1, space1);
+SamplerState arg_2 : register(s2, space1);
+int4 textureGather_4e8ac5() {
+  Texture2DArray<int4> v = arg_1;
+  SamplerState v_1 = arg_2;
+  int4 res = v.GatherGreen(v_1, float3((1.0f).xx, float(1u)));
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store4(0u, asuint(textureGather_4e8ac5()));
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store4(0u, asuint(textureGather_4e8ac5()));
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = textureGather_4e8ac5();
+  VertexOutput v_2 = tint_symbol;
+  return v_2;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_3 = vertex_main_inner();
+  VertexOutput v_4 = v_3;
+  VertexOutput v_5 = v_3;
+  vertex_main_outputs v_6 = {v_5.prevent_dce, v_4.pos};
+  return v_6;
+}
+
diff --git a/test/tint/builtins/gen/literal/textureGather/4e8ac5.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/textureGather/4e8ac5.wgsl.expected.ir.fxc.hlsl
index de83606..c1555f4 100644
--- a/test/tint/builtins/gen/literal/textureGather/4e8ac5.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureGather/4e8ac5.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,46 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  int4 prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureGather
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation int4 VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+Texture2DArray<int4> arg_1 : register(t1, space1);
+SamplerState arg_2 : register(s2, space1);
+int4 textureGather_4e8ac5() {
+  Texture2DArray<int4> v = arg_1;
+  SamplerState v_1 = arg_2;
+  int4 res = v.GatherGreen(v_1, float3((1.0f).xx, float(1u)));
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store4(0u, asuint(textureGather_4e8ac5()));
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store4(0u, asuint(textureGather_4e8ac5()));
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = textureGather_4e8ac5();
+  VertexOutput v_2 = tint_symbol;
+  return v_2;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_3 = vertex_main_inner();
+  VertexOutput v_4 = v_3;
+  VertexOutput v_5 = v_3;
+  vertex_main_outputs v_6 = {v_5.prevent_dce, v_4.pos};
+  return v_6;
+}
+
diff --git a/test/tint/builtins/gen/literal/textureGather/5266da.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/textureGather/5266da.wgsl.expected.ir.dxc.hlsl
index de83606..4d1e083 100644
--- a/test/tint/builtins/gen/literal/textureGather/5266da.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureGather/5266da.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,44 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  float4 prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureGather
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation float4 VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+Texture2D<float4> arg_1 : register(t1, space1);
+SamplerState arg_2 : register(s2, space1);
+float4 textureGather_5266da() {
+  float4 res = arg_1.GatherGreen(arg_2, (1.0f).xx);
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store4(0u, asuint(textureGather_5266da()));
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store4(0u, asuint(textureGather_5266da()));
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = textureGather_5266da();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
diff --git a/test/tint/builtins/gen/literal/textureGather/5266da.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/textureGather/5266da.wgsl.expected.ir.fxc.hlsl
index de83606..4d1e083 100644
--- a/test/tint/builtins/gen/literal/textureGather/5266da.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureGather/5266da.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,44 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  float4 prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureGather
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation float4 VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+Texture2D<float4> arg_1 : register(t1, space1);
+SamplerState arg_2 : register(s2, space1);
+float4 textureGather_5266da() {
+  float4 res = arg_1.GatherGreen(arg_2, (1.0f).xx);
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store4(0u, asuint(textureGather_5266da()));
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store4(0u, asuint(textureGather_5266da()));
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = textureGather_5266da();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
diff --git a/test/tint/builtins/gen/literal/textureGather/59372a.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/textureGather/59372a.wgsl.expected.ir.dxc.hlsl
index de83606..b8b88c6 100644
--- a/test/tint/builtins/gen/literal/textureGather/59372a.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureGather/59372a.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,3 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureGather
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+exit status 0xe0000001
\ No newline at end of file
diff --git a/test/tint/builtins/gen/literal/textureGather/59372a.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/textureGather/59372a.wgsl.expected.ir.fxc.hlsl
index de83606..1ccceac 100644
--- a/test/tint/builtins/gen/literal/textureGather/59372a.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureGather/59372a.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,46 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  float4 prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureGather
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation float4 VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+Texture2DArray<float4> arg_1 : register(t1, space1);
+SamplerState arg_2 : register(s2, space1);
+float4 textureGather_59372a() {
+  Texture2DArray<float4> v = arg_1;
+  SamplerState v_1 = arg_2;
+  float4 res = v.GatherGreen(v_1, float3((1.0f).xx, float(1u)), (1).xx);
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store4(0u, asuint(textureGather_59372a()));
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store4(0u, asuint(textureGather_59372a()));
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = textureGather_59372a();
+  VertexOutput v_2 = tint_symbol;
+  return v_2;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_3 = vertex_main_inner();
+  VertexOutput v_4 = v_3;
+  VertexOutput v_5 = v_3;
+  vertex_main_outputs v_6 = {v_5.prevent_dce, v_4.pos};
+  return v_6;
+}
+
diff --git a/test/tint/builtins/gen/literal/textureGather/5ba85f.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/textureGather/5ba85f.wgsl.expected.ir.dxc.hlsl
index de83606..c71e66f 100644
--- a/test/tint/builtins/gen/literal/textureGather/5ba85f.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureGather/5ba85f.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,44 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  int4 prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureGather
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation int4 VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+TextureCube<int4> arg_1 : register(t1, space1);
+SamplerState arg_2 : register(s2, space1);
+int4 textureGather_5ba85f() {
+  int4 res = arg_1.GatherGreen(arg_2, (1.0f).xxx);
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store4(0u, asuint(textureGather_5ba85f()));
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store4(0u, asuint(textureGather_5ba85f()));
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = textureGather_5ba85f();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
diff --git a/test/tint/builtins/gen/literal/textureGather/5ba85f.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/textureGather/5ba85f.wgsl.expected.ir.fxc.hlsl
index de83606..c71e66f 100644
--- a/test/tint/builtins/gen/literal/textureGather/5ba85f.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureGather/5ba85f.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,44 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  int4 prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureGather
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation int4 VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+TextureCube<int4> arg_1 : register(t1, space1);
+SamplerState arg_2 : register(s2, space1);
+int4 textureGather_5ba85f() {
+  int4 res = arg_1.GatherGreen(arg_2, (1.0f).xxx);
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store4(0u, asuint(textureGather_5ba85f()));
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store4(0u, asuint(textureGather_5ba85f()));
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = textureGather_5ba85f();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
diff --git a/test/tint/builtins/gen/literal/textureGather/5bd491.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/textureGather/5bd491.wgsl.expected.ir.dxc.hlsl
index de83606..573f2d5 100644
--- a/test/tint/builtins/gen/literal/textureGather/5bd491.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureGather/5bd491.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,44 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  uint4 prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureGather
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation uint4 VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+Texture2D<uint4> arg_1 : register(t1, space1);
+SamplerState arg_2 : register(s2, space1);
+uint4 textureGather_5bd491() {
+  uint4 res = arg_1.GatherGreen(arg_2, (1.0f).xx);
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store4(0u, textureGather_5bd491());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store4(0u, textureGather_5bd491());
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = textureGather_5bd491();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
diff --git a/test/tint/builtins/gen/literal/textureGather/5bd491.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/textureGather/5bd491.wgsl.expected.ir.fxc.hlsl
index de83606..573f2d5 100644
--- a/test/tint/builtins/gen/literal/textureGather/5bd491.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureGather/5bd491.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,44 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  uint4 prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureGather
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation uint4 VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+Texture2D<uint4> arg_1 : register(t1, space1);
+SamplerState arg_2 : register(s2, space1);
+uint4 textureGather_5bd491() {
+  uint4 res = arg_1.GatherGreen(arg_2, (1.0f).xx);
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store4(0u, textureGather_5bd491());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store4(0u, textureGather_5bd491());
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = textureGather_5bd491();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
diff --git a/test/tint/builtins/gen/literal/textureGather/6b7b74.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/textureGather/6b7b74.wgsl.expected.ir.dxc.hlsl
index de83606..b8b88c6 100644
--- a/test/tint/builtins/gen/literal/textureGather/6b7b74.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureGather/6b7b74.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,3 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureGather
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+exit status 0xe0000001
\ No newline at end of file
diff --git a/test/tint/builtins/gen/literal/textureGather/6b7b74.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/textureGather/6b7b74.wgsl.expected.ir.fxc.hlsl
index de83606..2cf3f84 100644
--- a/test/tint/builtins/gen/literal/textureGather/6b7b74.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureGather/6b7b74.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,46 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  uint4 prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureGather
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation uint4 VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+Texture2DArray<uint4> arg_1 : register(t1, space1);
+SamplerState arg_2 : register(s2, space1);
+uint4 textureGather_6b7b74() {
+  Texture2DArray<uint4> v = arg_1;
+  SamplerState v_1 = arg_2;
+  uint4 res = v.GatherGreen(v_1, float3((1.0f).xx, float(1u)), (1).xx);
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store4(0u, textureGather_6b7b74());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store4(0u, textureGather_6b7b74());
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = textureGather_6b7b74();
+  VertexOutput v_2 = tint_symbol;
+  return v_2;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_3 = vertex_main_inner();
+  VertexOutput v_4 = v_3;
+  VertexOutput v_5 = v_3;
+  vertex_main_outputs v_6 = {v_5.prevent_dce, v_4.pos};
+  return v_6;
+}
+
diff --git a/test/tint/builtins/gen/literal/textureGather/751f8a.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/textureGather/751f8a.wgsl.expected.ir.dxc.hlsl
index de83606..c9f3c43 100644
--- a/test/tint/builtins/gen/literal/textureGather/751f8a.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureGather/751f8a.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,46 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  float4 prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureGather
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation float4 VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+TextureCubeArray<float4> arg_1 : register(t1, space1);
+SamplerState arg_2 : register(s2, space1);
+float4 textureGather_751f8a() {
+  TextureCubeArray<float4> v = arg_1;
+  SamplerState v_1 = arg_2;
+  float4 res = v.GatherGreen(v_1, float4((1.0f).xxx, float(1)));
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store4(0u, asuint(textureGather_751f8a()));
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store4(0u, asuint(textureGather_751f8a()));
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = textureGather_751f8a();
+  VertexOutput v_2 = tint_symbol;
+  return v_2;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_3 = vertex_main_inner();
+  VertexOutput v_4 = v_3;
+  VertexOutput v_5 = v_3;
+  vertex_main_outputs v_6 = {v_5.prevent_dce, v_4.pos};
+  return v_6;
+}
+
diff --git a/test/tint/builtins/gen/literal/textureGather/751f8a.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/textureGather/751f8a.wgsl.expected.ir.fxc.hlsl
index de83606..c9f3c43 100644
--- a/test/tint/builtins/gen/literal/textureGather/751f8a.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureGather/751f8a.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,46 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  float4 prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureGather
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation float4 VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+TextureCubeArray<float4> arg_1 : register(t1, space1);
+SamplerState arg_2 : register(s2, space1);
+float4 textureGather_751f8a() {
+  TextureCubeArray<float4> v = arg_1;
+  SamplerState v_1 = arg_2;
+  float4 res = v.GatherGreen(v_1, float4((1.0f).xxx, float(1)));
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store4(0u, asuint(textureGather_751f8a()));
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store4(0u, asuint(textureGather_751f8a()));
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = textureGather_751f8a();
+  VertexOutput v_2 = tint_symbol;
+  return v_2;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_3 = vertex_main_inner();
+  VertexOutput v_4 = v_3;
+  VertexOutput v_5 = v_3;
+  vertex_main_outputs v_6 = {v_5.prevent_dce, v_4.pos};
+  return v_6;
+}
+
diff --git a/test/tint/builtins/gen/literal/textureGather/788010.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/textureGather/788010.wgsl.expected.ir.dxc.hlsl
index de83606..ad6c131 100644
--- a/test/tint/builtins/gen/literal/textureGather/788010.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureGather/788010.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,46 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  int4 prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureGather
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation int4 VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+TextureCubeArray<int4> arg_1 : register(t1, space1);
+SamplerState arg_2 : register(s2, space1);
+int4 textureGather_788010() {
+  TextureCubeArray<int4> v = arg_1;
+  SamplerState v_1 = arg_2;
+  int4 res = v.GatherGreen(v_1, float4((1.0f).xxx, float(1u)));
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store4(0u, asuint(textureGather_788010()));
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store4(0u, asuint(textureGather_788010()));
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = textureGather_788010();
+  VertexOutput v_2 = tint_symbol;
+  return v_2;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_3 = vertex_main_inner();
+  VertexOutput v_4 = v_3;
+  VertexOutput v_5 = v_3;
+  vertex_main_outputs v_6 = {v_5.prevent_dce, v_4.pos};
+  return v_6;
+}
+
diff --git a/test/tint/builtins/gen/literal/textureGather/788010.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/textureGather/788010.wgsl.expected.ir.fxc.hlsl
index de83606..ad6c131 100644
--- a/test/tint/builtins/gen/literal/textureGather/788010.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureGather/788010.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,46 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  int4 prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureGather
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation int4 VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+TextureCubeArray<int4> arg_1 : register(t1, space1);
+SamplerState arg_2 : register(s2, space1);
+int4 textureGather_788010() {
+  TextureCubeArray<int4> v = arg_1;
+  SamplerState v_1 = arg_2;
+  int4 res = v.GatherGreen(v_1, float4((1.0f).xxx, float(1u)));
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store4(0u, asuint(textureGather_788010()));
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store4(0u, asuint(textureGather_788010()));
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = textureGather_788010();
+  VertexOutput v_2 = tint_symbol;
+  return v_2;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_3 = vertex_main_inner();
+  VertexOutput v_4 = v_3;
+  VertexOutput v_5 = v_3;
+  vertex_main_outputs v_6 = {v_5.prevent_dce, v_4.pos};
+  return v_6;
+}
+
diff --git a/test/tint/builtins/gen/literal/textureGather/7c3828.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/textureGather/7c3828.wgsl.expected.ir.dxc.hlsl
index de83606..b8b88c6 100644
--- a/test/tint/builtins/gen/literal/textureGather/7c3828.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureGather/7c3828.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,3 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureGather
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+exit status 0xe0000001
\ No newline at end of file
diff --git a/test/tint/builtins/gen/literal/textureGather/7c3828.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/textureGather/7c3828.wgsl.expected.ir.fxc.hlsl
index de83606..737d8b0 100644
--- a/test/tint/builtins/gen/literal/textureGather/7c3828.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureGather/7c3828.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,44 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  int4 prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureGather
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation int4 VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+Texture2D<int4> arg_1 : register(t1, space1);
+SamplerState arg_2 : register(s2, space1);
+int4 textureGather_7c3828() {
+  int4 res = arg_1.GatherGreen(arg_2, (1.0f).xx, (1).xx);
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store4(0u, asuint(textureGather_7c3828()));
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store4(0u, asuint(textureGather_7c3828()));
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = textureGather_7c3828();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
diff --git a/test/tint/builtins/gen/literal/textureGather/7dd226.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/textureGather/7dd226.wgsl.expected.ir.dxc.hlsl
index de83606..ab12f31 100644
--- a/test/tint/builtins/gen/literal/textureGather/7dd226.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureGather/7dd226.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,46 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  float4 prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureGather
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation float4 VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+TextureCubeArray arg_0 : register(t0, space1);
+SamplerState arg_1 : register(s1, space1);
+float4 textureGather_7dd226() {
+  TextureCubeArray v = arg_0;
+  SamplerState v_1 = arg_1;
+  float4 res = v.Gather(v_1, float4((1.0f).xxx, float(1u)));
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store4(0u, asuint(textureGather_7dd226()));
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store4(0u, asuint(textureGather_7dd226()));
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = textureGather_7dd226();
+  VertexOutput v_2 = tint_symbol;
+  return v_2;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_3 = vertex_main_inner();
+  VertexOutput v_4 = v_3;
+  VertexOutput v_5 = v_3;
+  vertex_main_outputs v_6 = {v_5.prevent_dce, v_4.pos};
+  return v_6;
+}
+
diff --git a/test/tint/builtins/gen/literal/textureGather/7dd226.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/textureGather/7dd226.wgsl.expected.ir.fxc.hlsl
index de83606..ab12f31 100644
--- a/test/tint/builtins/gen/literal/textureGather/7dd226.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureGather/7dd226.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,46 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  float4 prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureGather
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation float4 VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+TextureCubeArray arg_0 : register(t0, space1);
+SamplerState arg_1 : register(s1, space1);
+float4 textureGather_7dd226() {
+  TextureCubeArray v = arg_0;
+  SamplerState v_1 = arg_1;
+  float4 res = v.Gather(v_1, float4((1.0f).xxx, float(1u)));
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store4(0u, asuint(textureGather_7dd226()));
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store4(0u, asuint(textureGather_7dd226()));
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = textureGather_7dd226();
+  VertexOutput v_2 = tint_symbol;
+  return v_2;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_3 = vertex_main_inner();
+  VertexOutput v_4 = v_3;
+  VertexOutput v_5 = v_3;
+  vertex_main_outputs v_6 = {v_5.prevent_dce, v_4.pos};
+  return v_6;
+}
+
diff --git a/test/tint/builtins/gen/literal/textureGather/829357.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/textureGather/829357.wgsl.expected.ir.dxc.hlsl
index de83606..bdd6e69 100644
--- a/test/tint/builtins/gen/literal/textureGather/829357.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureGather/829357.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,46 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  float4 prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureGather
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation float4 VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+TextureCubeArray<float4> arg_1 : register(t1, space1);
+SamplerState arg_2 : register(s2, space1);
+float4 textureGather_829357() {
+  TextureCubeArray<float4> v = arg_1;
+  SamplerState v_1 = arg_2;
+  float4 res = v.GatherGreen(v_1, float4((1.0f).xxx, float(1u)));
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store4(0u, asuint(textureGather_829357()));
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store4(0u, asuint(textureGather_829357()));
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = textureGather_829357();
+  VertexOutput v_2 = tint_symbol;
+  return v_2;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_3 = vertex_main_inner();
+  VertexOutput v_4 = v_3;
+  VertexOutput v_5 = v_3;
+  vertex_main_outputs v_6 = {v_5.prevent_dce, v_4.pos};
+  return v_6;
+}
+
diff --git a/test/tint/builtins/gen/literal/textureGather/829357.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/textureGather/829357.wgsl.expected.ir.fxc.hlsl
index de83606..bdd6e69 100644
--- a/test/tint/builtins/gen/literal/textureGather/829357.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureGather/829357.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,46 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  float4 prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureGather
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation float4 VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+TextureCubeArray<float4> arg_1 : register(t1, space1);
+SamplerState arg_2 : register(s2, space1);
+float4 textureGather_829357() {
+  TextureCubeArray<float4> v = arg_1;
+  SamplerState v_1 = arg_2;
+  float4 res = v.GatherGreen(v_1, float4((1.0f).xxx, float(1u)));
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store4(0u, asuint(textureGather_829357()));
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store4(0u, asuint(textureGather_829357()));
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = textureGather_829357();
+  VertexOutput v_2 = tint_symbol;
+  return v_2;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_3 = vertex_main_inner();
+  VertexOutput v_4 = v_3;
+  VertexOutput v_5 = v_3;
+  vertex_main_outputs v_6 = {v_5.prevent_dce, v_4.pos};
+  return v_6;
+}
+
diff --git a/test/tint/builtins/gen/literal/textureGather/831549.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/textureGather/831549.wgsl.expected.ir.dxc.hlsl
index de83606..b8b88c6 100644
--- a/test/tint/builtins/gen/literal/textureGather/831549.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureGather/831549.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,3 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureGather
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+exit status 0xe0000001
\ No newline at end of file
diff --git a/test/tint/builtins/gen/literal/textureGather/831549.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/textureGather/831549.wgsl.expected.ir.fxc.hlsl
index de83606..641777f 100644
--- a/test/tint/builtins/gen/literal/textureGather/831549.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureGather/831549.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,46 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  float4 prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureGather
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation float4 VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+Texture2DArray<float4> arg_1 : register(t1, space1);
+SamplerState arg_2 : register(s2, space1);
+float4 textureGather_831549() {
+  Texture2DArray<float4> v = arg_1;
+  SamplerState v_1 = arg_2;
+  float4 res = v.GatherGreen(v_1, float3((1.0f).xx, float(1)), (1).xx);
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store4(0u, asuint(textureGather_831549()));
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store4(0u, asuint(textureGather_831549()));
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = textureGather_831549();
+  VertexOutput v_2 = tint_symbol;
+  return v_2;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_3 = vertex_main_inner();
+  VertexOutput v_4 = v_3;
+  VertexOutput v_5 = v_3;
+  vertex_main_outputs v_6 = {v_5.prevent_dce, v_4.pos};
+  return v_6;
+}
+
diff --git a/test/tint/builtins/gen/literal/textureGather/8578bc.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/textureGather/8578bc.wgsl.expected.ir.dxc.hlsl
index de83606..f6cc224 100644
--- a/test/tint/builtins/gen/literal/textureGather/8578bc.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureGather/8578bc.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,46 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  float4 prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureGather
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation float4 VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+TextureCubeArray<float4> arg_1 : register(t1, space1);
+SamplerState arg_2 : register(s2, space1);
+float4 textureGather_8578bc() {
+  TextureCubeArray<float4> v = arg_1;
+  SamplerState v_1 = arg_2;
+  float4 res = v.GatherGreen(v_1, float4((1.0f).xxx, float(1u)));
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store4(0u, asuint(textureGather_8578bc()));
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store4(0u, asuint(textureGather_8578bc()));
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = textureGather_8578bc();
+  VertexOutput v_2 = tint_symbol;
+  return v_2;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_3 = vertex_main_inner();
+  VertexOutput v_4 = v_3;
+  VertexOutput v_5 = v_3;
+  vertex_main_outputs v_6 = {v_5.prevent_dce, v_4.pos};
+  return v_6;
+}
+
diff --git a/test/tint/builtins/gen/literal/textureGather/8578bc.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/textureGather/8578bc.wgsl.expected.ir.fxc.hlsl
index de83606..f6cc224 100644
--- a/test/tint/builtins/gen/literal/textureGather/8578bc.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureGather/8578bc.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,46 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  float4 prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureGather
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation float4 VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+TextureCubeArray<float4> arg_1 : register(t1, space1);
+SamplerState arg_2 : register(s2, space1);
+float4 textureGather_8578bc() {
+  TextureCubeArray<float4> v = arg_1;
+  SamplerState v_1 = arg_2;
+  float4 res = v.GatherGreen(v_1, float4((1.0f).xxx, float(1u)));
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store4(0u, asuint(textureGather_8578bc()));
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store4(0u, asuint(textureGather_8578bc()));
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = textureGather_8578bc();
+  VertexOutput v_2 = tint_symbol;
+  return v_2;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_3 = vertex_main_inner();
+  VertexOutput v_4 = v_3;
+  VertexOutput v_5 = v_3;
+  vertex_main_outputs v_6 = {v_5.prevent_dce, v_4.pos};
+  return v_6;
+}
+
diff --git a/test/tint/builtins/gen/literal/textureGather/89680f.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/textureGather/89680f.wgsl.expected.ir.dxc.hlsl
index de83606..776fe1f 100644
--- a/test/tint/builtins/gen/literal/textureGather/89680f.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureGather/89680f.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,44 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  uint4 prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureGather
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation uint4 VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+TextureCube<uint4> arg_1 : register(t1, space1);
+SamplerState arg_2 : register(s2, space1);
+uint4 textureGather_89680f() {
+  uint4 res = arg_1.GatherGreen(arg_2, (1.0f).xxx);
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store4(0u, textureGather_89680f());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store4(0u, textureGather_89680f());
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = textureGather_89680f();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
diff --git a/test/tint/builtins/gen/literal/textureGather/89680f.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/textureGather/89680f.wgsl.expected.ir.fxc.hlsl
index de83606..776fe1f 100644
--- a/test/tint/builtins/gen/literal/textureGather/89680f.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureGather/89680f.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,44 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  uint4 prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureGather
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation uint4 VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+TextureCube<uint4> arg_1 : register(t1, space1);
+SamplerState arg_2 : register(s2, space1);
+uint4 textureGather_89680f() {
+  uint4 res = arg_1.GatherGreen(arg_2, (1.0f).xxx);
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store4(0u, textureGather_89680f());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store4(0u, textureGather_89680f());
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = textureGather_89680f();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
diff --git a/test/tint/builtins/gen/literal/textureGather/8b754c.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/textureGather/8b754c.wgsl.expected.ir.dxc.hlsl
index de83606..69eb57b 100644
--- a/test/tint/builtins/gen/literal/textureGather/8b754c.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureGather/8b754c.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,46 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  int4 prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureGather
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation int4 VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+Texture2DArray<int4> arg_1 : register(t1, space1);
+SamplerState arg_2 : register(s2, space1);
+int4 textureGather_8b754c() {
+  Texture2DArray<int4> v = arg_1;
+  SamplerState v_1 = arg_2;
+  int4 res = v.GatherGreen(v_1, float3((1.0f).xx, float(1)));
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store4(0u, asuint(textureGather_8b754c()));
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store4(0u, asuint(textureGather_8b754c()));
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = textureGather_8b754c();
+  VertexOutput v_2 = tint_symbol;
+  return v_2;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_3 = vertex_main_inner();
+  VertexOutput v_4 = v_3;
+  VertexOutput v_5 = v_3;
+  vertex_main_outputs v_6 = {v_5.prevent_dce, v_4.pos};
+  return v_6;
+}
+
diff --git a/test/tint/builtins/gen/literal/textureGather/8b754c.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/textureGather/8b754c.wgsl.expected.ir.fxc.hlsl
index de83606..69eb57b 100644
--- a/test/tint/builtins/gen/literal/textureGather/8b754c.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureGather/8b754c.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,46 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  int4 prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureGather
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation int4 VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+Texture2DArray<int4> arg_1 : register(t1, space1);
+SamplerState arg_2 : register(s2, space1);
+int4 textureGather_8b754c() {
+  Texture2DArray<int4> v = arg_1;
+  SamplerState v_1 = arg_2;
+  int4 res = v.GatherGreen(v_1, float3((1.0f).xx, float(1)));
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store4(0u, asuint(textureGather_8b754c()));
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store4(0u, asuint(textureGather_8b754c()));
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = textureGather_8b754c();
+  VertexOutput v_2 = tint_symbol;
+  return v_2;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_3 = vertex_main_inner();
+  VertexOutput v_4 = v_3;
+  VertexOutput v_5 = v_3;
+  vertex_main_outputs v_6 = {v_5.prevent_dce, v_4.pos};
+  return v_6;
+}
+
diff --git a/test/tint/builtins/gen/literal/textureGather/8fae00.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/textureGather/8fae00.wgsl.expected.ir.dxc.hlsl
index de83606..d1cd063 100644
--- a/test/tint/builtins/gen/literal/textureGather/8fae00.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureGather/8fae00.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,44 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  uint4 prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureGather
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation uint4 VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+Texture2D<uint4> arg_1 : register(t1, space1);
+SamplerState arg_2 : register(s2, space1);
+uint4 textureGather_8fae00() {
+  uint4 res = arg_1.GatherGreen(arg_2, (1.0f).xx);
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store4(0u, textureGather_8fae00());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store4(0u, textureGather_8fae00());
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = textureGather_8fae00();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
diff --git a/test/tint/builtins/gen/literal/textureGather/8fae00.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/textureGather/8fae00.wgsl.expected.ir.fxc.hlsl
index de83606..d1cd063 100644
--- a/test/tint/builtins/gen/literal/textureGather/8fae00.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureGather/8fae00.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,44 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  uint4 prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureGather
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation uint4 VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+Texture2D<uint4> arg_1 : register(t1, space1);
+SamplerState arg_2 : register(s2, space1);
+uint4 textureGather_8fae00() {
+  uint4 res = arg_1.GatherGreen(arg_2, (1.0f).xx);
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store4(0u, textureGather_8fae00());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store4(0u, textureGather_8fae00());
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = textureGather_8fae00();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
diff --git a/test/tint/builtins/gen/literal/textureGather/92ea47.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/textureGather/92ea47.wgsl.expected.ir.dxc.hlsl
index de83606..18fe3ad 100644
--- a/test/tint/builtins/gen/literal/textureGather/92ea47.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureGather/92ea47.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,46 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  uint4 prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureGather
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation uint4 VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+Texture2DArray<uint4> arg_1 : register(t1, space1);
+SamplerState arg_2 : register(s2, space1);
+uint4 textureGather_92ea47() {
+  Texture2DArray<uint4> v = arg_1;
+  SamplerState v_1 = arg_2;
+  uint4 res = v.GatherGreen(v_1, float3((1.0f).xx, float(1)));
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store4(0u, textureGather_92ea47());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store4(0u, textureGather_92ea47());
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = textureGather_92ea47();
+  VertexOutput v_2 = tint_symbol;
+  return v_2;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_3 = vertex_main_inner();
+  VertexOutput v_4 = v_3;
+  VertexOutput v_5 = v_3;
+  vertex_main_outputs v_6 = {v_5.prevent_dce, v_4.pos};
+  return v_6;
+}
+
diff --git a/test/tint/builtins/gen/literal/textureGather/92ea47.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/textureGather/92ea47.wgsl.expected.ir.fxc.hlsl
index de83606..18fe3ad 100644
--- a/test/tint/builtins/gen/literal/textureGather/92ea47.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureGather/92ea47.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,46 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  uint4 prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureGather
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation uint4 VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+Texture2DArray<uint4> arg_1 : register(t1, space1);
+SamplerState arg_2 : register(s2, space1);
+uint4 textureGather_92ea47() {
+  Texture2DArray<uint4> v = arg_1;
+  SamplerState v_1 = arg_2;
+  uint4 res = v.GatherGreen(v_1, float3((1.0f).xx, float(1)));
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store4(0u, textureGather_92ea47());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store4(0u, textureGather_92ea47());
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = textureGather_92ea47();
+  VertexOutput v_2 = tint_symbol;
+  return v_2;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_3 = vertex_main_inner();
+  VertexOutput v_4 = v_3;
+  VertexOutput v_5 = v_3;
+  vertex_main_outputs v_6 = {v_5.prevent_dce, v_4.pos};
+  return v_6;
+}
+
diff --git a/test/tint/builtins/gen/literal/textureGather/986700.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/textureGather/986700.wgsl.expected.ir.dxc.hlsl
index de83606..b8b88c6 100644
--- a/test/tint/builtins/gen/literal/textureGather/986700.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureGather/986700.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,3 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureGather
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+exit status 0xe0000001
\ No newline at end of file
diff --git a/test/tint/builtins/gen/literal/textureGather/986700.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/textureGather/986700.wgsl.expected.ir.fxc.hlsl
index de83606..f5897de 100644
--- a/test/tint/builtins/gen/literal/textureGather/986700.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureGather/986700.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,44 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  uint4 prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureGather
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation uint4 VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+Texture2D<uint4> arg_1 : register(t1, space1);
+SamplerState arg_2 : register(s2, space1);
+uint4 textureGather_986700() {
+  uint4 res = arg_1.GatherGreen(arg_2, (1.0f).xx, (1).xx);
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store4(0u, textureGather_986700());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store4(0u, textureGather_986700());
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = textureGather_986700();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
diff --git a/test/tint/builtins/gen/literal/textureGather/9a6358.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/textureGather/9a6358.wgsl.expected.ir.dxc.hlsl
index de83606..bdcbb51 100644
--- a/test/tint/builtins/gen/literal/textureGather/9a6358.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureGather/9a6358.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,46 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  float4 prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureGather
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation float4 VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+Texture2DArray arg_0 : register(t0, space1);
+SamplerState arg_1 : register(s1, space1);
+float4 textureGather_9a6358() {
+  Texture2DArray v = arg_0;
+  SamplerState v_1 = arg_1;
+  float4 res = v.Gather(v_1, float3((1.0f).xx, float(1)));
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store4(0u, asuint(textureGather_9a6358()));
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store4(0u, asuint(textureGather_9a6358()));
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = textureGather_9a6358();
+  VertexOutput v_2 = tint_symbol;
+  return v_2;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_3 = vertex_main_inner();
+  VertexOutput v_4 = v_3;
+  VertexOutput v_5 = v_3;
+  vertex_main_outputs v_6 = {v_5.prevent_dce, v_4.pos};
+  return v_6;
+}
+
diff --git a/test/tint/builtins/gen/literal/textureGather/9a6358.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/textureGather/9a6358.wgsl.expected.ir.fxc.hlsl
index de83606..bdcbb51 100644
--- a/test/tint/builtins/gen/literal/textureGather/9a6358.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureGather/9a6358.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,46 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  float4 prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureGather
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation float4 VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+Texture2DArray arg_0 : register(t0, space1);
+SamplerState arg_1 : register(s1, space1);
+float4 textureGather_9a6358() {
+  Texture2DArray v = arg_0;
+  SamplerState v_1 = arg_1;
+  float4 res = v.Gather(v_1, float3((1.0f).xx, float(1)));
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store4(0u, asuint(textureGather_9a6358()));
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store4(0u, asuint(textureGather_9a6358()));
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = textureGather_9a6358();
+  VertexOutput v_2 = tint_symbol;
+  return v_2;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_3 = vertex_main_inner();
+  VertexOutput v_4 = v_3;
+  VertexOutput v_5 = v_3;
+  vertex_main_outputs v_6 = {v_5.prevent_dce, v_4.pos};
+  return v_6;
+}
+
diff --git a/test/tint/builtins/gen/literal/textureGather/9ab41e.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/textureGather/9ab41e.wgsl.expected.ir.dxc.hlsl
index de83606..b8b88c6 100644
--- a/test/tint/builtins/gen/literal/textureGather/9ab41e.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureGather/9ab41e.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,3 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureGather
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+exit status 0xe0000001
\ No newline at end of file
diff --git a/test/tint/builtins/gen/literal/textureGather/9ab41e.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/textureGather/9ab41e.wgsl.expected.ir.fxc.hlsl
index de83606..1e66159 100644
--- a/test/tint/builtins/gen/literal/textureGather/9ab41e.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureGather/9ab41e.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,46 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  int4 prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureGather
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation int4 VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+Texture2DArray<int4> arg_1 : register(t1, space1);
+SamplerState arg_2 : register(s2, space1);
+int4 textureGather_9ab41e() {
+  Texture2DArray<int4> v = arg_1;
+  SamplerState v_1 = arg_2;
+  int4 res = v.GatherGreen(v_1, float3((1.0f).xx, float(1)), (1).xx);
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store4(0u, asuint(textureGather_9ab41e()));
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store4(0u, asuint(textureGather_9ab41e()));
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = textureGather_9ab41e();
+  VertexOutput v_2 = tint_symbol;
+  return v_2;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_3 = vertex_main_inner();
+  VertexOutput v_4 = v_3;
+  VertexOutput v_5 = v_3;
+  vertex_main_outputs v_6 = {v_5.prevent_dce, v_4.pos};
+  return v_6;
+}
+
diff --git a/test/tint/builtins/gen/literal/textureGather/a0372b.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/textureGather/a0372b.wgsl.expected.ir.dxc.hlsl
index de83606..041f1fd 100644
--- a/test/tint/builtins/gen/literal/textureGather/a0372b.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureGather/a0372b.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,46 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  uint4 prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureGather
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation uint4 VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+Texture2DArray<uint4> arg_1 : register(t1, space1);
+SamplerState arg_2 : register(s2, space1);
+uint4 textureGather_a0372b() {
+  Texture2DArray<uint4> v = arg_1;
+  SamplerState v_1 = arg_2;
+  uint4 res = v.GatherGreen(v_1, float3((1.0f).xx, float(1u)));
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store4(0u, textureGather_a0372b());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store4(0u, textureGather_a0372b());
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = textureGather_a0372b();
+  VertexOutput v_2 = tint_symbol;
+  return v_2;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_3 = vertex_main_inner();
+  VertexOutput v_4 = v_3;
+  VertexOutput v_5 = v_3;
+  vertex_main_outputs v_6 = {v_5.prevent_dce, v_4.pos};
+  return v_6;
+}
+
diff --git a/test/tint/builtins/gen/literal/textureGather/a0372b.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/textureGather/a0372b.wgsl.expected.ir.fxc.hlsl
index de83606..041f1fd 100644
--- a/test/tint/builtins/gen/literal/textureGather/a0372b.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureGather/a0372b.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,46 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  uint4 prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureGather
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation uint4 VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+Texture2DArray<uint4> arg_1 : register(t1, space1);
+SamplerState arg_2 : register(s2, space1);
+uint4 textureGather_a0372b() {
+  Texture2DArray<uint4> v = arg_1;
+  SamplerState v_1 = arg_2;
+  uint4 res = v.GatherGreen(v_1, float3((1.0f).xx, float(1u)));
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store4(0u, textureGather_a0372b());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store4(0u, textureGather_a0372b());
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = textureGather_a0372b();
+  VertexOutput v_2 = tint_symbol;
+  return v_2;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_3 = vertex_main_inner();
+  VertexOutput v_4 = v_3;
+  VertexOutput v_5 = v_3;
+  vertex_main_outputs v_6 = {v_5.prevent_dce, v_4.pos};
+  return v_6;
+}
+
diff --git a/test/tint/builtins/gen/literal/textureGather/a68027.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/textureGather/a68027.wgsl.expected.ir.dxc.hlsl
index de83606..b8b88c6 100644
--- a/test/tint/builtins/gen/literal/textureGather/a68027.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureGather/a68027.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,3 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureGather
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+exit status 0xe0000001
\ No newline at end of file
diff --git a/test/tint/builtins/gen/literal/textureGather/a68027.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/textureGather/a68027.wgsl.expected.ir.fxc.hlsl
index de83606..1676cfc 100644
--- a/test/tint/builtins/gen/literal/textureGather/a68027.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureGather/a68027.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,46 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  float4 prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureGather
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation float4 VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+Texture2DArray arg_0 : register(t0, space1);
+SamplerState arg_1 : register(s1, space1);
+float4 textureGather_a68027() {
+  Texture2DArray v = arg_0;
+  SamplerState v_1 = arg_1;
+  float4 res = v.Gather(v_1, float3((1.0f).xx, float(1u)), (1).xx);
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store4(0u, asuint(textureGather_a68027()));
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store4(0u, asuint(textureGather_a68027()));
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = textureGather_a68027();
+  VertexOutput v_2 = tint_symbol;
+  return v_2;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_3 = vertex_main_inner();
+  VertexOutput v_4 = v_3;
+  VertexOutput v_5 = v_3;
+  vertex_main_outputs v_6 = {v_5.prevent_dce, v_4.pos};
+  return v_6;
+}
+
diff --git a/test/tint/builtins/gen/literal/textureGather/aaf6bd.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/textureGather/aaf6bd.wgsl.expected.ir.dxc.hlsl
index de83606..3de621e 100644
--- a/test/tint/builtins/gen/literal/textureGather/aaf6bd.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureGather/aaf6bd.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,46 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  int4 prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureGather
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation int4 VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+TextureCubeArray<int4> arg_1 : register(t1, space1);
+SamplerState arg_2 : register(s2, space1);
+int4 textureGather_aaf6bd() {
+  TextureCubeArray<int4> v = arg_1;
+  SamplerState v_1 = arg_2;
+  int4 res = v.GatherGreen(v_1, float4((1.0f).xxx, float(1)));
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store4(0u, asuint(textureGather_aaf6bd()));
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store4(0u, asuint(textureGather_aaf6bd()));
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = textureGather_aaf6bd();
+  VertexOutput v_2 = tint_symbol;
+  return v_2;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_3 = vertex_main_inner();
+  VertexOutput v_4 = v_3;
+  VertexOutput v_5 = v_3;
+  vertex_main_outputs v_6 = {v_5.prevent_dce, v_4.pos};
+  return v_6;
+}
+
diff --git a/test/tint/builtins/gen/literal/textureGather/aaf6bd.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/textureGather/aaf6bd.wgsl.expected.ir.fxc.hlsl
index de83606..3de621e 100644
--- a/test/tint/builtins/gen/literal/textureGather/aaf6bd.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureGather/aaf6bd.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,46 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  int4 prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureGather
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation int4 VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+TextureCubeArray<int4> arg_1 : register(t1, space1);
+SamplerState arg_2 : register(s2, space1);
+int4 textureGather_aaf6bd() {
+  TextureCubeArray<int4> v = arg_1;
+  SamplerState v_1 = arg_2;
+  int4 res = v.GatherGreen(v_1, float4((1.0f).xxx, float(1)));
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store4(0u, asuint(textureGather_aaf6bd()));
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store4(0u, asuint(textureGather_aaf6bd()));
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = textureGather_aaf6bd();
+  VertexOutput v_2 = tint_symbol;
+  return v_2;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_3 = vertex_main_inner();
+  VertexOutput v_4 = v_3;
+  VertexOutput v_5 = v_3;
+  vertex_main_outputs v_6 = {v_5.prevent_dce, v_4.pos};
+  return v_6;
+}
+
diff --git a/test/tint/builtins/gen/literal/textureGather/af55b3.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/textureGather/af55b3.wgsl.expected.ir.dxc.hlsl
index de83606..b8b88c6 100644
--- a/test/tint/builtins/gen/literal/textureGather/af55b3.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureGather/af55b3.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,3 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureGather
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+exit status 0xe0000001
\ No newline at end of file
diff --git a/test/tint/builtins/gen/literal/textureGather/af55b3.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/textureGather/af55b3.wgsl.expected.ir.fxc.hlsl
index de83606..bfe5792 100644
--- a/test/tint/builtins/gen/literal/textureGather/af55b3.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureGather/af55b3.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,44 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  float4 prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureGather
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation float4 VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+Texture2D<float4> arg_1 : register(t1, space1);
+SamplerState arg_2 : register(s2, space1);
+float4 textureGather_af55b3() {
+  float4 res = arg_1.GatherGreen(arg_2, (1.0f).xx, (1).xx);
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store4(0u, asuint(textureGather_af55b3()));
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store4(0u, asuint(textureGather_af55b3()));
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = textureGather_af55b3();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
diff --git a/test/tint/builtins/gen/literal/textureGather/bb3ac5.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/textureGather/bb3ac5.wgsl.expected.ir.dxc.hlsl
index de83606..c80b8ea 100644
--- a/test/tint/builtins/gen/literal/textureGather/bb3ac5.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureGather/bb3ac5.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,44 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  int4 prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureGather
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation int4 VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+Texture2D<int4> arg_1 : register(t1, space1);
+SamplerState arg_2 : register(s2, space1);
+int4 textureGather_bb3ac5() {
+  int4 res = arg_1.GatherGreen(arg_2, (1.0f).xx);
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store4(0u, asuint(textureGather_bb3ac5()));
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store4(0u, asuint(textureGather_bb3ac5()));
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = textureGather_bb3ac5();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
diff --git a/test/tint/builtins/gen/literal/textureGather/bb3ac5.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/textureGather/bb3ac5.wgsl.expected.ir.fxc.hlsl
index de83606..c80b8ea 100644
--- a/test/tint/builtins/gen/literal/textureGather/bb3ac5.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureGather/bb3ac5.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,44 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  int4 prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureGather
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation int4 VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+Texture2D<int4> arg_1 : register(t1, space1);
+SamplerState arg_2 : register(s2, space1);
+int4 textureGather_bb3ac5() {
+  int4 res = arg_1.GatherGreen(arg_2, (1.0f).xx);
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store4(0u, asuint(textureGather_bb3ac5()));
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store4(0u, asuint(textureGather_bb3ac5()));
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = textureGather_bb3ac5();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
diff --git a/test/tint/builtins/gen/literal/textureGather/bd33b6.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/textureGather/bd33b6.wgsl.expected.ir.dxc.hlsl
index de83606..b8b88c6 100644
--- a/test/tint/builtins/gen/literal/textureGather/bd33b6.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureGather/bd33b6.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,3 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureGather
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+exit status 0xe0000001
\ No newline at end of file
diff --git a/test/tint/builtins/gen/literal/textureGather/bd33b6.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/textureGather/bd33b6.wgsl.expected.ir.fxc.hlsl
index de83606..0d924ce 100644
--- a/test/tint/builtins/gen/literal/textureGather/bd33b6.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureGather/bd33b6.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,46 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  int4 prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureGather
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation int4 VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+Texture2DArray<int4> arg_1 : register(t1, space1);
+SamplerState arg_2 : register(s2, space1);
+int4 textureGather_bd33b6() {
+  Texture2DArray<int4> v = arg_1;
+  SamplerState v_1 = arg_2;
+  int4 res = v.GatherGreen(v_1, float3((1.0f).xx, float(1u)), (1).xx);
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store4(0u, asuint(textureGather_bd33b6()));
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store4(0u, asuint(textureGather_bd33b6()));
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = textureGather_bd33b6();
+  VertexOutput v_2 = tint_symbol;
+  return v_2;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_3 = vertex_main_inner();
+  VertexOutput v_4 = v_3;
+  VertexOutput v_5 = v_3;
+  vertex_main_outputs v_6 = {v_5.prevent_dce, v_4.pos};
+  return v_6;
+}
+
diff --git a/test/tint/builtins/gen/literal/textureGather/be276f.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/textureGather/be276f.wgsl.expected.ir.dxc.hlsl
index de83606..b66a4f8 100644
--- a/test/tint/builtins/gen/literal/textureGather/be276f.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureGather/be276f.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,46 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  uint4 prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureGather
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation uint4 VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+TextureCubeArray<uint4> arg_1 : register(t1, space1);
+SamplerState arg_2 : register(s2, space1);
+uint4 textureGather_be276f() {
+  TextureCubeArray<uint4> v = arg_1;
+  SamplerState v_1 = arg_2;
+  uint4 res = v.GatherGreen(v_1, float4((1.0f).xxx, float(1u)));
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store4(0u, textureGather_be276f());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store4(0u, textureGather_be276f());
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = textureGather_be276f();
+  VertexOutput v_2 = tint_symbol;
+  return v_2;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_3 = vertex_main_inner();
+  VertexOutput v_4 = v_3;
+  VertexOutput v_5 = v_3;
+  vertex_main_outputs v_6 = {v_5.prevent_dce, v_4.pos};
+  return v_6;
+}
+
diff --git a/test/tint/builtins/gen/literal/textureGather/be276f.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/textureGather/be276f.wgsl.expected.ir.fxc.hlsl
index de83606..b66a4f8 100644
--- a/test/tint/builtins/gen/literal/textureGather/be276f.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureGather/be276f.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,46 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  uint4 prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureGather
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation uint4 VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+TextureCubeArray<uint4> arg_1 : register(t1, space1);
+SamplerState arg_2 : register(s2, space1);
+uint4 textureGather_be276f() {
+  TextureCubeArray<uint4> v = arg_1;
+  SamplerState v_1 = arg_2;
+  uint4 res = v.GatherGreen(v_1, float4((1.0f).xxx, float(1u)));
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store4(0u, textureGather_be276f());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store4(0u, textureGather_be276f());
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = textureGather_be276f();
+  VertexOutput v_2 = tint_symbol;
+  return v_2;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_3 = vertex_main_inner();
+  VertexOutput v_4 = v_3;
+  VertexOutput v_5 = v_3;
+  vertex_main_outputs v_6 = {v_5.prevent_dce, v_4.pos};
+  return v_6;
+}
+
diff --git a/test/tint/builtins/gen/literal/textureGather/c0640c.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/textureGather/c0640c.wgsl.expected.ir.dxc.hlsl
index de83606..7133109 100644
--- a/test/tint/builtins/gen/literal/textureGather/c0640c.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureGather/c0640c.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,46 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  int4 prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureGather
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation int4 VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+TextureCubeArray<int4> arg_1 : register(t1, space1);
+SamplerState arg_2 : register(s2, space1);
+int4 textureGather_c0640c() {
+  TextureCubeArray<int4> v = arg_1;
+  SamplerState v_1 = arg_2;
+  int4 res = v.GatherGreen(v_1, float4((1.0f).xxx, float(1)));
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store4(0u, asuint(textureGather_c0640c()));
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store4(0u, asuint(textureGather_c0640c()));
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = textureGather_c0640c();
+  VertexOutput v_2 = tint_symbol;
+  return v_2;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_3 = vertex_main_inner();
+  VertexOutput v_4 = v_3;
+  VertexOutput v_5 = v_3;
+  vertex_main_outputs v_6 = {v_5.prevent_dce, v_4.pos};
+  return v_6;
+}
+
diff --git a/test/tint/builtins/gen/literal/textureGather/c0640c.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/textureGather/c0640c.wgsl.expected.ir.fxc.hlsl
index de83606..7133109 100644
--- a/test/tint/builtins/gen/literal/textureGather/c0640c.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureGather/c0640c.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,46 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  int4 prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureGather
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation int4 VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+TextureCubeArray<int4> arg_1 : register(t1, space1);
+SamplerState arg_2 : register(s2, space1);
+int4 textureGather_c0640c() {
+  TextureCubeArray<int4> v = arg_1;
+  SamplerState v_1 = arg_2;
+  int4 res = v.GatherGreen(v_1, float4((1.0f).xxx, float(1)));
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store4(0u, asuint(textureGather_c0640c()));
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store4(0u, asuint(textureGather_c0640c()));
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = textureGather_c0640c();
+  VertexOutput v_2 = tint_symbol;
+  return v_2;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_3 = vertex_main_inner();
+  VertexOutput v_4 = v_3;
+  VertexOutput v_5 = v_3;
+  vertex_main_outputs v_6 = {v_5.prevent_dce, v_4.pos};
+  return v_6;
+}
+
diff --git a/test/tint/builtins/gen/literal/textureGather/ccadde.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/textureGather/ccadde.wgsl.expected.ir.dxc.hlsl
index de83606..9dc60e9 100644
--- a/test/tint/builtins/gen/literal/textureGather/ccadde.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureGather/ccadde.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,44 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  int4 prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureGather
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation int4 VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+Texture2D<int4> arg_1 : register(t1, space1);
+SamplerState arg_2 : register(s2, space1);
+int4 textureGather_ccadde() {
+  int4 res = arg_1.GatherGreen(arg_2, (1.0f).xx);
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store4(0u, asuint(textureGather_ccadde()));
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store4(0u, asuint(textureGather_ccadde()));
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = textureGather_ccadde();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
diff --git a/test/tint/builtins/gen/literal/textureGather/ccadde.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/textureGather/ccadde.wgsl.expected.ir.fxc.hlsl
index de83606..9dc60e9 100644
--- a/test/tint/builtins/gen/literal/textureGather/ccadde.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureGather/ccadde.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,44 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  int4 prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureGather
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation int4 VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+Texture2D<int4> arg_1 : register(t1, space1);
+SamplerState arg_2 : register(s2, space1);
+int4 textureGather_ccadde() {
+  int4 res = arg_1.GatherGreen(arg_2, (1.0f).xx);
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store4(0u, asuint(textureGather_ccadde()));
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store4(0u, asuint(textureGather_ccadde()));
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = textureGather_ccadde();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
diff --git a/test/tint/builtins/gen/literal/textureGather/ce5578.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/textureGather/ce5578.wgsl.expected.ir.dxc.hlsl
index de83606..b8b88c6 100644
--- a/test/tint/builtins/gen/literal/textureGather/ce5578.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureGather/ce5578.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,3 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureGather
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+exit status 0xe0000001
\ No newline at end of file
diff --git a/test/tint/builtins/gen/literal/textureGather/ce5578.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/textureGather/ce5578.wgsl.expected.ir.fxc.hlsl
index de83606..a426f04 100644
--- a/test/tint/builtins/gen/literal/textureGather/ce5578.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureGather/ce5578.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,46 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  uint4 prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureGather
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation uint4 VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+Texture2DArray<uint4> arg_1 : register(t1, space1);
+SamplerState arg_2 : register(s2, space1);
+uint4 textureGather_ce5578() {
+  Texture2DArray<uint4> v = arg_1;
+  SamplerState v_1 = arg_2;
+  uint4 res = v.GatherGreen(v_1, float3((1.0f).xx, float(1u)), (1).xx);
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store4(0u, textureGather_ce5578());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store4(0u, textureGather_ce5578());
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = textureGather_ce5578();
+  VertexOutput v_2 = tint_symbol;
+  return v_2;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_3 = vertex_main_inner();
+  VertexOutput v_4 = v_3;
+  VertexOutput v_5 = v_3;
+  vertex_main_outputs v_6 = {v_5.prevent_dce, v_4.pos};
+  return v_6;
+}
+
diff --git a/test/tint/builtins/gen/literal/textureGather/cf9112.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/textureGather/cf9112.wgsl.expected.ir.dxc.hlsl
index de83606..b8b88c6 100644
--- a/test/tint/builtins/gen/literal/textureGather/cf9112.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureGather/cf9112.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,3 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureGather
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+exit status 0xe0000001
\ No newline at end of file
diff --git a/test/tint/builtins/gen/literal/textureGather/cf9112.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/textureGather/cf9112.wgsl.expected.ir.fxc.hlsl
index de83606..21e044b 100644
--- a/test/tint/builtins/gen/literal/textureGather/cf9112.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureGather/cf9112.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,46 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  int4 prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureGather
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation int4 VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+Texture2DArray<int4> arg_1 : register(t1, space1);
+SamplerState arg_2 : register(s2, space1);
+int4 textureGather_cf9112() {
+  Texture2DArray<int4> v = arg_1;
+  SamplerState v_1 = arg_2;
+  int4 res = v.GatherGreen(v_1, float3((1.0f).xx, float(1u)), (1).xx);
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store4(0u, asuint(textureGather_cf9112()));
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store4(0u, asuint(textureGather_cf9112()));
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = textureGather_cf9112();
+  VertexOutput v_2 = tint_symbol;
+  return v_2;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_3 = vertex_main_inner();
+  VertexOutput v_4 = v_3;
+  VertexOutput v_5 = v_3;
+  vertex_main_outputs v_6 = {v_5.prevent_dce, v_4.pos};
+  return v_6;
+}
+
diff --git a/test/tint/builtins/gen/literal/textureGather/d1f187.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/textureGather/d1f187.wgsl.expected.ir.dxc.hlsl
index de83606..b8b88c6 100644
--- a/test/tint/builtins/gen/literal/textureGather/d1f187.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureGather/d1f187.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,3 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureGather
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+exit status 0xe0000001
\ No newline at end of file
diff --git a/test/tint/builtins/gen/literal/textureGather/d1f187.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/textureGather/d1f187.wgsl.expected.ir.fxc.hlsl
index de83606..cbd6fd0 100644
--- a/test/tint/builtins/gen/literal/textureGather/d1f187.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureGather/d1f187.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,46 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  uint4 prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureGather
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation uint4 VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+Texture2DArray<uint4> arg_1 : register(t1, space1);
+SamplerState arg_2 : register(s2, space1);
+uint4 textureGather_d1f187() {
+  Texture2DArray<uint4> v = arg_1;
+  SamplerState v_1 = arg_2;
+  uint4 res = v.GatherGreen(v_1, float3((1.0f).xx, float(1)), (1).xx);
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store4(0u, textureGather_d1f187());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store4(0u, textureGather_d1f187());
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = textureGather_d1f187();
+  VertexOutput v_2 = tint_symbol;
+  return v_2;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_3 = vertex_main_inner();
+  VertexOutput v_4 = v_3;
+  VertexOutput v_5 = v_3;
+  vertex_main_outputs v_6 = {v_5.prevent_dce, v_4.pos};
+  return v_6;
+}
+
diff --git a/test/tint/builtins/gen/literal/textureGather/d4b5c6.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/textureGather/d4b5c6.wgsl.expected.ir.dxc.hlsl
index de83606..766a754 100644
--- a/test/tint/builtins/gen/literal/textureGather/d4b5c6.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureGather/d4b5c6.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,46 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  uint4 prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureGather
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation uint4 VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+TextureCubeArray<uint4> arg_1 : register(t1, space1);
+SamplerState arg_2 : register(s2, space1);
+uint4 textureGather_d4b5c6() {
+  TextureCubeArray<uint4> v = arg_1;
+  SamplerState v_1 = arg_2;
+  uint4 res = v.GatherGreen(v_1, float4((1.0f).xxx, float(1)));
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store4(0u, textureGather_d4b5c6());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store4(0u, textureGather_d4b5c6());
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = textureGather_d4b5c6();
+  VertexOutput v_2 = tint_symbol;
+  return v_2;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_3 = vertex_main_inner();
+  VertexOutput v_4 = v_3;
+  VertexOutput v_5 = v_3;
+  vertex_main_outputs v_6 = {v_5.prevent_dce, v_4.pos};
+  return v_6;
+}
+
diff --git a/test/tint/builtins/gen/literal/textureGather/d4b5c6.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/textureGather/d4b5c6.wgsl.expected.ir.fxc.hlsl
index de83606..766a754 100644
--- a/test/tint/builtins/gen/literal/textureGather/d4b5c6.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureGather/d4b5c6.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,46 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  uint4 prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureGather
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation uint4 VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+TextureCubeArray<uint4> arg_1 : register(t1, space1);
+SamplerState arg_2 : register(s2, space1);
+uint4 textureGather_d4b5c6() {
+  TextureCubeArray<uint4> v = arg_1;
+  SamplerState v_1 = arg_2;
+  uint4 res = v.GatherGreen(v_1, float4((1.0f).xxx, float(1)));
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store4(0u, textureGather_d4b5c6());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store4(0u, textureGather_d4b5c6());
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = textureGather_d4b5c6();
+  VertexOutput v_2 = tint_symbol;
+  return v_2;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_3 = vertex_main_inner();
+  VertexOutput v_4 = v_3;
+  VertexOutput v_5 = v_3;
+  vertex_main_outputs v_6 = {v_5.prevent_dce, v_4.pos};
+  return v_6;
+}
+
diff --git a/test/tint/builtins/gen/literal/textureGather/d6507c.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/textureGather/d6507c.wgsl.expected.ir.dxc.hlsl
index de83606..b8b88c6 100644
--- a/test/tint/builtins/gen/literal/textureGather/d6507c.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureGather/d6507c.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,3 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureGather
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+exit status 0xe0000001
\ No newline at end of file
diff --git a/test/tint/builtins/gen/literal/textureGather/d6507c.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/textureGather/d6507c.wgsl.expected.ir.fxc.hlsl
index de83606..ae4848e 100644
--- a/test/tint/builtins/gen/literal/textureGather/d6507c.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureGather/d6507c.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,44 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  float4 prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureGather
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation float4 VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+Texture2D<float4> arg_1 : register(t1, space1);
+SamplerState arg_2 : register(s2, space1);
+float4 textureGather_d6507c() {
+  float4 res = arg_1.GatherGreen(arg_2, (1.0f).xx, (1).xx);
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store4(0u, asuint(textureGather_d6507c()));
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store4(0u, asuint(textureGather_d6507c()));
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = textureGather_d6507c();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
diff --git a/test/tint/builtins/gen/literal/textureGather/d8e958.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/textureGather/d8e958.wgsl.expected.ir.dxc.hlsl
index de83606..5776aa1 100644
--- a/test/tint/builtins/gen/literal/textureGather/d8e958.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureGather/d8e958.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,44 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  float4 prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureGather
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation float4 VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+Texture2D<float4> arg_1 : register(t1, space1);
+SamplerState arg_2 : register(s2, space1);
+float4 textureGather_d8e958() {
+  float4 res = arg_1.GatherGreen(arg_2, (1.0f).xx);
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store4(0u, asuint(textureGather_d8e958()));
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store4(0u, asuint(textureGather_d8e958()));
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = textureGather_d8e958();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
diff --git a/test/tint/builtins/gen/literal/textureGather/d8e958.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/textureGather/d8e958.wgsl.expected.ir.fxc.hlsl
index de83606..5776aa1 100644
--- a/test/tint/builtins/gen/literal/textureGather/d8e958.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureGather/d8e958.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,44 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  float4 prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureGather
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation float4 VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+Texture2D<float4> arg_1 : register(t1, space1);
+SamplerState arg_2 : register(s2, space1);
+float4 textureGather_d8e958() {
+  float4 res = arg_1.GatherGreen(arg_2, (1.0f).xx);
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store4(0u, asuint(textureGather_d8e958()));
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store4(0u, asuint(textureGather_d8e958()));
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = textureGather_d8e958();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
diff --git a/test/tint/builtins/gen/literal/textureGather/d90605.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/textureGather/d90605.wgsl.expected.ir.dxc.hlsl
index de83606..b8b88c6 100644
--- a/test/tint/builtins/gen/literal/textureGather/d90605.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureGather/d90605.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,3 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureGather
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+exit status 0xe0000001
\ No newline at end of file
diff --git a/test/tint/builtins/gen/literal/textureGather/d90605.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/textureGather/d90605.wgsl.expected.ir.fxc.hlsl
index de83606..73c0e384 100644
--- a/test/tint/builtins/gen/literal/textureGather/d90605.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureGather/d90605.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,46 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  float4 prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureGather
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation float4 VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+Texture2DArray arg_0 : register(t0, space1);
+SamplerState arg_1 : register(s1, space1);
+float4 textureGather_d90605() {
+  Texture2DArray v = arg_0;
+  SamplerState v_1 = arg_1;
+  float4 res = v.Gather(v_1, float3((1.0f).xx, float(1)), (1).xx);
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store4(0u, asuint(textureGather_d90605()));
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store4(0u, asuint(textureGather_d90605()));
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = textureGather_d90605();
+  VertexOutput v_2 = tint_symbol;
+  return v_2;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_3 = vertex_main_inner();
+  VertexOutput v_4 = v_3;
+  VertexOutput v_5 = v_3;
+  vertex_main_outputs v_6 = {v_5.prevent_dce, v_4.pos};
+  return v_6;
+}
+
diff --git a/test/tint/builtins/gen/literal/textureGather/d98d59.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/textureGather/d98d59.wgsl.expected.ir.dxc.hlsl
index de83606..256826a 100644
--- a/test/tint/builtins/gen/literal/textureGather/d98d59.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureGather/d98d59.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,46 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  float4 prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureGather
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation float4 VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+TextureCubeArray<float4> arg_1 : register(t1, space1);
+SamplerState arg_2 : register(s2, space1);
+float4 textureGather_d98d59() {
+  TextureCubeArray<float4> v = arg_1;
+  SamplerState v_1 = arg_2;
+  float4 res = v.GatherGreen(v_1, float4((1.0f).xxx, float(1)));
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store4(0u, asuint(textureGather_d98d59()));
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store4(0u, asuint(textureGather_d98d59()));
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = textureGather_d98d59();
+  VertexOutput v_2 = tint_symbol;
+  return v_2;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_3 = vertex_main_inner();
+  VertexOutput v_4 = v_3;
+  VertexOutput v_5 = v_3;
+  vertex_main_outputs v_6 = {v_5.prevent_dce, v_4.pos};
+  return v_6;
+}
+
diff --git a/test/tint/builtins/gen/literal/textureGather/d98d59.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/textureGather/d98d59.wgsl.expected.ir.fxc.hlsl
index de83606..256826a 100644
--- a/test/tint/builtins/gen/literal/textureGather/d98d59.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureGather/d98d59.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,46 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  float4 prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureGather
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation float4 VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+TextureCubeArray<float4> arg_1 : register(t1, space1);
+SamplerState arg_2 : register(s2, space1);
+float4 textureGather_d98d59() {
+  TextureCubeArray<float4> v = arg_1;
+  SamplerState v_1 = arg_2;
+  float4 res = v.GatherGreen(v_1, float4((1.0f).xxx, float(1)));
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store4(0u, asuint(textureGather_d98d59()));
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store4(0u, asuint(textureGather_d98d59()));
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = textureGather_d98d59();
+  VertexOutput v_2 = tint_symbol;
+  return v_2;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_3 = vertex_main_inner();
+  VertexOutput v_4 = v_3;
+  VertexOutput v_5 = v_3;
+  vertex_main_outputs v_6 = {v_5.prevent_dce, v_4.pos};
+  return v_6;
+}
+
diff --git a/test/tint/builtins/gen/literal/textureGather/dc6661.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/textureGather/dc6661.wgsl.expected.ir.dxc.hlsl
index de83606..b8b88c6 100644
--- a/test/tint/builtins/gen/literal/textureGather/dc6661.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureGather/dc6661.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,3 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureGather
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+exit status 0xe0000001
\ No newline at end of file
diff --git a/test/tint/builtins/gen/literal/textureGather/dc6661.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/textureGather/dc6661.wgsl.expected.ir.fxc.hlsl
index de83606..57bc7f0 100644
--- a/test/tint/builtins/gen/literal/textureGather/dc6661.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureGather/dc6661.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,44 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  int4 prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureGather
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation int4 VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+Texture2D<int4> arg_1 : register(t1, space1);
+SamplerState arg_2 : register(s2, space1);
+int4 textureGather_dc6661() {
+  int4 res = arg_1.GatherGreen(arg_2, (1.0f).xx, (1).xx);
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store4(0u, asuint(textureGather_dc6661()));
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store4(0u, asuint(textureGather_dc6661()));
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = textureGather_dc6661();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
diff --git a/test/tint/builtins/gen/literal/textureGather/e2acac.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/textureGather/e2acac.wgsl.expected.ir.dxc.hlsl
index de83606..5a257da 100644
--- a/test/tint/builtins/gen/literal/textureGather/e2acac.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureGather/e2acac.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,46 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  uint4 prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureGather
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation uint4 VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+TextureCubeArray<uint4> arg_1 : register(t1, space1);
+SamplerState arg_2 : register(s2, space1);
+uint4 textureGather_e2acac() {
+  TextureCubeArray<uint4> v = arg_1;
+  SamplerState v_1 = arg_2;
+  uint4 res = v.GatherGreen(v_1, float4((1.0f).xxx, float(1u)));
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store4(0u, textureGather_e2acac());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store4(0u, textureGather_e2acac());
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = textureGather_e2acac();
+  VertexOutput v_2 = tint_symbol;
+  return v_2;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_3 = vertex_main_inner();
+  VertexOutput v_4 = v_3;
+  VertexOutput v_5 = v_3;
+  vertex_main_outputs v_6 = {v_5.prevent_dce, v_4.pos};
+  return v_6;
+}
+
diff --git a/test/tint/builtins/gen/literal/textureGather/e2acac.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/textureGather/e2acac.wgsl.expected.ir.fxc.hlsl
index de83606..5a257da 100644
--- a/test/tint/builtins/gen/literal/textureGather/e2acac.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureGather/e2acac.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,46 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  uint4 prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureGather
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation uint4 VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+TextureCubeArray<uint4> arg_1 : register(t1, space1);
+SamplerState arg_2 : register(s2, space1);
+uint4 textureGather_e2acac() {
+  TextureCubeArray<uint4> v = arg_1;
+  SamplerState v_1 = arg_2;
+  uint4 res = v.GatherGreen(v_1, float4((1.0f).xxx, float(1u)));
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store4(0u, textureGather_e2acac());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store4(0u, textureGather_e2acac());
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = textureGather_e2acac();
+  VertexOutput v_2 = tint_symbol;
+  return v_2;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_3 = vertex_main_inner();
+  VertexOutput v_4 = v_3;
+  VertexOutput v_5 = v_3;
+  vertex_main_outputs v_6 = {v_5.prevent_dce, v_4.pos};
+  return v_6;
+}
+
diff --git a/test/tint/builtins/gen/literal/textureGather/e3165f.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/textureGather/e3165f.wgsl.expected.ir.dxc.hlsl
index de83606..b8b88c6 100644
--- a/test/tint/builtins/gen/literal/textureGather/e3165f.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureGather/e3165f.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,3 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureGather
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+exit status 0xe0000001
\ No newline at end of file
diff --git a/test/tint/builtins/gen/literal/textureGather/e3165f.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/textureGather/e3165f.wgsl.expected.ir.fxc.hlsl
index de83606..0dfe4ff 100644
--- a/test/tint/builtins/gen/literal/textureGather/e3165f.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureGather/e3165f.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,46 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  uint4 prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureGather
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation uint4 VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+Texture2DArray<uint4> arg_1 : register(t1, space1);
+SamplerState arg_2 : register(s2, space1);
+uint4 textureGather_e3165f() {
+  Texture2DArray<uint4> v = arg_1;
+  SamplerState v_1 = arg_2;
+  uint4 res = v.GatherGreen(v_1, float3((1.0f).xx, float(1)), (1).xx);
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store4(0u, textureGather_e3165f());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store4(0u, textureGather_e3165f());
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = textureGather_e3165f();
+  VertexOutput v_2 = tint_symbol;
+  return v_2;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_3 = vertex_main_inner();
+  VertexOutput v_4 = v_3;
+  VertexOutput v_5 = v_3;
+  vertex_main_outputs v_6 = {v_5.prevent_dce, v_4.pos};
+  return v_6;
+}
+
diff --git a/test/tint/builtins/gen/literal/textureGather/e9d390.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/textureGather/e9d390.wgsl.expected.ir.dxc.hlsl
index de83606..b8b88c6 100644
--- a/test/tint/builtins/gen/literal/textureGather/e9d390.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureGather/e9d390.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,3 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureGather
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+exit status 0xe0000001
\ No newline at end of file
diff --git a/test/tint/builtins/gen/literal/textureGather/e9d390.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/textureGather/e9d390.wgsl.expected.ir.fxc.hlsl
index de83606..9da66e1 100644
--- a/test/tint/builtins/gen/literal/textureGather/e9d390.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureGather/e9d390.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,46 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  int4 prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureGather
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation int4 VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+Texture2DArray<int4> arg_1 : register(t1, space1);
+SamplerState arg_2 : register(s2, space1);
+int4 textureGather_e9d390() {
+  Texture2DArray<int4> v = arg_1;
+  SamplerState v_1 = arg_2;
+  int4 res = v.GatherGreen(v_1, float3((1.0f).xx, float(1)), (1).xx);
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store4(0u, asuint(textureGather_e9d390()));
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store4(0u, asuint(textureGather_e9d390()));
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = textureGather_e9d390();
+  VertexOutput v_2 = tint_symbol;
+  return v_2;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_3 = vertex_main_inner();
+  VertexOutput v_4 = v_3;
+  VertexOutput v_5 = v_3;
+  vertex_main_outputs v_6 = {v_5.prevent_dce, v_4.pos};
+  return v_6;
+}
+
diff --git a/test/tint/builtins/gen/literal/textureGather/ea8eb4.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/textureGather/ea8eb4.wgsl.expected.ir.dxc.hlsl
index de83606..06f5c9f 100644
--- a/test/tint/builtins/gen/literal/textureGather/ea8eb4.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureGather/ea8eb4.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,46 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  float4 prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureGather
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation float4 VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+Texture2DArray<float4> arg_1 : register(t1, space1);
+SamplerState arg_2 : register(s2, space1);
+float4 textureGather_ea8eb4() {
+  Texture2DArray<float4> v = arg_1;
+  SamplerState v_1 = arg_2;
+  float4 res = v.GatherGreen(v_1, float3((1.0f).xx, float(1u)));
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store4(0u, asuint(textureGather_ea8eb4()));
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store4(0u, asuint(textureGather_ea8eb4()));
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = textureGather_ea8eb4();
+  VertexOutput v_2 = tint_symbol;
+  return v_2;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_3 = vertex_main_inner();
+  VertexOutput v_4 = v_3;
+  VertexOutput v_5 = v_3;
+  vertex_main_outputs v_6 = {v_5.prevent_dce, v_4.pos};
+  return v_6;
+}
+
diff --git a/test/tint/builtins/gen/literal/textureGather/ea8eb4.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/textureGather/ea8eb4.wgsl.expected.ir.fxc.hlsl
index de83606..06f5c9f 100644
--- a/test/tint/builtins/gen/literal/textureGather/ea8eb4.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureGather/ea8eb4.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,46 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  float4 prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureGather
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation float4 VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+Texture2DArray<float4> arg_1 : register(t1, space1);
+SamplerState arg_2 : register(s2, space1);
+float4 textureGather_ea8eb4() {
+  Texture2DArray<float4> v = arg_1;
+  SamplerState v_1 = arg_2;
+  float4 res = v.GatherGreen(v_1, float3((1.0f).xx, float(1u)));
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store4(0u, asuint(textureGather_ea8eb4()));
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store4(0u, asuint(textureGather_ea8eb4()));
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = textureGather_ea8eb4();
+  VertexOutput v_2 = tint_symbol;
+  return v_2;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_3 = vertex_main_inner();
+  VertexOutput v_4 = v_3;
+  VertexOutput v_5 = v_3;
+  vertex_main_outputs v_6 = {v_5.prevent_dce, v_4.pos};
+  return v_6;
+}
+
diff --git a/test/tint/builtins/gen/literal/textureGather/f2c6e3.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/textureGather/f2c6e3.wgsl.expected.ir.dxc.hlsl
index de83606..3f5ba55 100644
--- a/test/tint/builtins/gen/literal/textureGather/f2c6e3.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureGather/f2c6e3.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,46 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  uint4 prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureGather
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation uint4 VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+TextureCubeArray<uint4> arg_1 : register(t1, space1);
+SamplerState arg_2 : register(s2, space1);
+uint4 textureGather_f2c6e3() {
+  TextureCubeArray<uint4> v = arg_1;
+  SamplerState v_1 = arg_2;
+  uint4 res = v.GatherGreen(v_1, float4((1.0f).xxx, float(1)));
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store4(0u, textureGather_f2c6e3());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store4(0u, textureGather_f2c6e3());
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = textureGather_f2c6e3();
+  VertexOutput v_2 = tint_symbol;
+  return v_2;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_3 = vertex_main_inner();
+  VertexOutput v_4 = v_3;
+  VertexOutput v_5 = v_3;
+  vertex_main_outputs v_6 = {v_5.prevent_dce, v_4.pos};
+  return v_6;
+}
+
diff --git a/test/tint/builtins/gen/literal/textureGather/f2c6e3.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/textureGather/f2c6e3.wgsl.expected.ir.fxc.hlsl
index de83606..3f5ba55 100644
--- a/test/tint/builtins/gen/literal/textureGather/f2c6e3.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureGather/f2c6e3.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,46 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  uint4 prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureGather
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation uint4 VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+TextureCubeArray<uint4> arg_1 : register(t1, space1);
+SamplerState arg_2 : register(s2, space1);
+uint4 textureGather_f2c6e3() {
+  TextureCubeArray<uint4> v = arg_1;
+  SamplerState v_1 = arg_2;
+  uint4 res = v.GatherGreen(v_1, float4((1.0f).xxx, float(1)));
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store4(0u, textureGather_f2c6e3());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store4(0u, textureGather_f2c6e3());
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = textureGather_f2c6e3();
+  VertexOutput v_2 = tint_symbol;
+  return v_2;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_3 = vertex_main_inner();
+  VertexOutput v_4 = v_3;
+  VertexOutput v_5 = v_3;
+  vertex_main_outputs v_6 = {v_5.prevent_dce, v_4.pos};
+  return v_6;
+}
+
diff --git a/test/tint/builtins/gen/literal/textureGatherCompare/144a9a.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/textureGatherCompare/144a9a.wgsl.expected.ir.dxc.hlsl
index c4ed99f..b8b88c6 100644
--- a/test/tint/builtins/gen/literal/textureGatherCompare/144a9a.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureGatherCompare/144a9a.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,3 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureGatherCompare
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+exit status 0xe0000001
\ No newline at end of file
diff --git a/test/tint/builtins/gen/literal/textureGatherCompare/144a9a.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/textureGatherCompare/144a9a.wgsl.expected.ir.fxc.hlsl
index c4ed99f..00f440d 100644
--- a/test/tint/builtins/gen/literal/textureGatherCompare/144a9a.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureGatherCompare/144a9a.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,46 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  float4 prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureGatherCompare
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation float4 VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+Texture2DArray arg_0 : register(t0, space1);
+SamplerComparisonState arg_1 : register(s1, space1);
+float4 textureGatherCompare_144a9a() {
+  Texture2DArray v = arg_0;
+  SamplerComparisonState v_1 = arg_1;
+  float4 res = v.GatherCmp(v_1, float3((1.0f).xx, float(1u)), 1.0f, (1).xx);
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store4(0u, asuint(textureGatherCompare_144a9a()));
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store4(0u, asuint(textureGatherCompare_144a9a()));
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = textureGatherCompare_144a9a();
+  VertexOutput v_2 = tint_symbol;
+  return v_2;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_3 = vertex_main_inner();
+  VertexOutput v_4 = v_3;
+  VertexOutput v_5 = v_3;
+  vertex_main_outputs v_6 = {v_5.prevent_dce, v_4.pos};
+  return v_6;
+}
+
diff --git a/test/tint/builtins/gen/literal/textureGatherCompare/182fd4.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/textureGatherCompare/182fd4.wgsl.expected.ir.dxc.hlsl
index c4ed99f..89608ee 100644
--- a/test/tint/builtins/gen/literal/textureGatherCompare/182fd4.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureGatherCompare/182fd4.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,44 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  float4 prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureGatherCompare
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation float4 VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+TextureCube arg_0 : register(t0, space1);
+SamplerComparisonState arg_1 : register(s1, space1);
+float4 textureGatherCompare_182fd4() {
+  float4 res = arg_0.GatherCmp(arg_1, (1.0f).xxx, 1.0f);
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store4(0u, asuint(textureGatherCompare_182fd4()));
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store4(0u, asuint(textureGatherCompare_182fd4()));
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = textureGatherCompare_182fd4();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
diff --git a/test/tint/builtins/gen/literal/textureGatherCompare/182fd4.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/textureGatherCompare/182fd4.wgsl.expected.ir.fxc.hlsl
index c4ed99f..89608ee 100644
--- a/test/tint/builtins/gen/literal/textureGatherCompare/182fd4.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureGatherCompare/182fd4.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,44 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  float4 prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureGatherCompare
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation float4 VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+TextureCube arg_0 : register(t0, space1);
+SamplerComparisonState arg_1 : register(s1, space1);
+float4 textureGatherCompare_182fd4() {
+  float4 res = arg_0.GatherCmp(arg_1, (1.0f).xxx, 1.0f);
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store4(0u, asuint(textureGatherCompare_182fd4()));
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store4(0u, asuint(textureGatherCompare_182fd4()));
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = textureGatherCompare_182fd4();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
diff --git a/test/tint/builtins/gen/literal/textureGatherCompare/2e409c.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/textureGatherCompare/2e409c.wgsl.expected.ir.dxc.hlsl
index c4ed99f..c3afe30 100644
--- a/test/tint/builtins/gen/literal/textureGatherCompare/2e409c.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureGatherCompare/2e409c.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,46 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  float4 prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureGatherCompare
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation float4 VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+TextureCubeArray arg_0 : register(t0, space1);
+SamplerComparisonState arg_1 : register(s1, space1);
+float4 textureGatherCompare_2e409c() {
+  TextureCubeArray v = arg_0;
+  SamplerComparisonState v_1 = arg_1;
+  float4 res = v.GatherCmp(v_1, float4((1.0f).xxx, float(1u)), 1.0f);
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store4(0u, asuint(textureGatherCompare_2e409c()));
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store4(0u, asuint(textureGatherCompare_2e409c()));
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = textureGatherCompare_2e409c();
+  VertexOutput v_2 = tint_symbol;
+  return v_2;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_3 = vertex_main_inner();
+  VertexOutput v_4 = v_3;
+  VertexOutput v_5 = v_3;
+  vertex_main_outputs v_6 = {v_5.prevent_dce, v_4.pos};
+  return v_6;
+}
+
diff --git a/test/tint/builtins/gen/literal/textureGatherCompare/2e409c.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/textureGatherCompare/2e409c.wgsl.expected.ir.fxc.hlsl
index c4ed99f..c3afe30 100644
--- a/test/tint/builtins/gen/literal/textureGatherCompare/2e409c.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureGatherCompare/2e409c.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,46 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  float4 prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureGatherCompare
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation float4 VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+TextureCubeArray arg_0 : register(t0, space1);
+SamplerComparisonState arg_1 : register(s1, space1);
+float4 textureGatherCompare_2e409c() {
+  TextureCubeArray v = arg_0;
+  SamplerComparisonState v_1 = arg_1;
+  float4 res = v.GatherCmp(v_1, float4((1.0f).xxx, float(1u)), 1.0f);
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store4(0u, asuint(textureGatherCompare_2e409c()));
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store4(0u, asuint(textureGatherCompare_2e409c()));
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = textureGatherCompare_2e409c();
+  VertexOutput v_2 = tint_symbol;
+  return v_2;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_3 = vertex_main_inner();
+  VertexOutput v_4 = v_3;
+  VertexOutput v_5 = v_3;
+  vertex_main_outputs v_6 = {v_5.prevent_dce, v_4.pos};
+  return v_6;
+}
+
diff --git a/test/tint/builtins/gen/literal/textureGatherCompare/313add.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/textureGatherCompare/313add.wgsl.expected.ir.dxc.hlsl
index c4ed99f..b8b88c6 100644
--- a/test/tint/builtins/gen/literal/textureGatherCompare/313add.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureGatherCompare/313add.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,3 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureGatherCompare
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+exit status 0xe0000001
\ No newline at end of file
diff --git a/test/tint/builtins/gen/literal/textureGatherCompare/313add.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/textureGatherCompare/313add.wgsl.expected.ir.fxc.hlsl
index c4ed99f..8a82c6a 100644
--- a/test/tint/builtins/gen/literal/textureGatherCompare/313add.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureGatherCompare/313add.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,44 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  float4 prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureGatherCompare
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation float4 VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+Texture2D arg_0 : register(t0, space1);
+SamplerComparisonState arg_1 : register(s1, space1);
+float4 textureGatherCompare_313add() {
+  float4 res = arg_0.GatherCmp(arg_1, (1.0f).xx, 1.0f, (1).xx);
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store4(0u, asuint(textureGatherCompare_313add()));
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store4(0u, asuint(textureGatherCompare_313add()));
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = textureGatherCompare_313add();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
diff --git a/test/tint/builtins/gen/literal/textureGatherCompare/60d2d1.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/textureGatherCompare/60d2d1.wgsl.expected.ir.dxc.hlsl
index c4ed99f..80bb198 100644
--- a/test/tint/builtins/gen/literal/textureGatherCompare/60d2d1.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureGatherCompare/60d2d1.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,46 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  float4 prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureGatherCompare
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation float4 VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+TextureCubeArray arg_0 : register(t0, space1);
+SamplerComparisonState arg_1 : register(s1, space1);
+float4 textureGatherCompare_60d2d1() {
+  TextureCubeArray v = arg_0;
+  SamplerComparisonState v_1 = arg_1;
+  float4 res = v.GatherCmp(v_1, float4((1.0f).xxx, float(1)), 1.0f);
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store4(0u, asuint(textureGatherCompare_60d2d1()));
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store4(0u, asuint(textureGatherCompare_60d2d1()));
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = textureGatherCompare_60d2d1();
+  VertexOutput v_2 = tint_symbol;
+  return v_2;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_3 = vertex_main_inner();
+  VertexOutput v_4 = v_3;
+  VertexOutput v_5 = v_3;
+  vertex_main_outputs v_6 = {v_5.prevent_dce, v_4.pos};
+  return v_6;
+}
+
diff --git a/test/tint/builtins/gen/literal/textureGatherCompare/60d2d1.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/textureGatherCompare/60d2d1.wgsl.expected.ir.fxc.hlsl
index c4ed99f..80bb198 100644
--- a/test/tint/builtins/gen/literal/textureGatherCompare/60d2d1.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureGatherCompare/60d2d1.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,46 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  float4 prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureGatherCompare
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation float4 VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+TextureCubeArray arg_0 : register(t0, space1);
+SamplerComparisonState arg_1 : register(s1, space1);
+float4 textureGatherCompare_60d2d1() {
+  TextureCubeArray v = arg_0;
+  SamplerComparisonState v_1 = arg_1;
+  float4 res = v.GatherCmp(v_1, float4((1.0f).xxx, float(1)), 1.0f);
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store4(0u, asuint(textureGatherCompare_60d2d1()));
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store4(0u, asuint(textureGatherCompare_60d2d1()));
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = textureGatherCompare_60d2d1();
+  VertexOutput v_2 = tint_symbol;
+  return v_2;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_3 = vertex_main_inner();
+  VertexOutput v_4 = v_3;
+  VertexOutput v_5 = v_3;
+  vertex_main_outputs v_6 = {v_5.prevent_dce, v_4.pos};
+  return v_6;
+}
+
diff --git a/test/tint/builtins/gen/literal/textureGatherCompare/6d9352.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/textureGatherCompare/6d9352.wgsl.expected.ir.dxc.hlsl
index c4ed99f..c701047 100644
--- a/test/tint/builtins/gen/literal/textureGatherCompare/6d9352.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureGatherCompare/6d9352.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,44 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  float4 prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureGatherCompare
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation float4 VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+Texture2D arg_0 : register(t0, space1);
+SamplerComparisonState arg_1 : register(s1, space1);
+float4 textureGatherCompare_6d9352() {
+  float4 res = arg_0.GatherCmp(arg_1, (1.0f).xx, 1.0f);
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store4(0u, asuint(textureGatherCompare_6d9352()));
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store4(0u, asuint(textureGatherCompare_6d9352()));
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = textureGatherCompare_6d9352();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
diff --git a/test/tint/builtins/gen/literal/textureGatherCompare/6d9352.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/textureGatherCompare/6d9352.wgsl.expected.ir.fxc.hlsl
index c4ed99f..c701047 100644
--- a/test/tint/builtins/gen/literal/textureGatherCompare/6d9352.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureGatherCompare/6d9352.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,44 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  float4 prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureGatherCompare
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation float4 VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+Texture2D arg_0 : register(t0, space1);
+SamplerComparisonState arg_1 : register(s1, space1);
+float4 textureGatherCompare_6d9352() {
+  float4 res = arg_0.GatherCmp(arg_1, (1.0f).xx, 1.0f);
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store4(0u, asuint(textureGatherCompare_6d9352()));
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store4(0u, asuint(textureGatherCompare_6d9352()));
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = textureGatherCompare_6d9352();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
diff --git a/test/tint/builtins/gen/literal/textureGatherCompare/783e65.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/textureGatherCompare/783e65.wgsl.expected.ir.dxc.hlsl
index c4ed99f..e3c68be 100644
--- a/test/tint/builtins/gen/literal/textureGatherCompare/783e65.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureGatherCompare/783e65.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,46 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  float4 prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureGatherCompare
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation float4 VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+Texture2DArray arg_0 : register(t0, space1);
+SamplerComparisonState arg_1 : register(s1, space1);
+float4 textureGatherCompare_783e65() {
+  Texture2DArray v = arg_0;
+  SamplerComparisonState v_1 = arg_1;
+  float4 res = v.GatherCmp(v_1, float3((1.0f).xx, float(1)), 1.0f);
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store4(0u, asuint(textureGatherCompare_783e65()));
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store4(0u, asuint(textureGatherCompare_783e65()));
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = textureGatherCompare_783e65();
+  VertexOutput v_2 = tint_symbol;
+  return v_2;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_3 = vertex_main_inner();
+  VertexOutput v_4 = v_3;
+  VertexOutput v_5 = v_3;
+  vertex_main_outputs v_6 = {v_5.prevent_dce, v_4.pos};
+  return v_6;
+}
+
diff --git a/test/tint/builtins/gen/literal/textureGatherCompare/783e65.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/textureGatherCompare/783e65.wgsl.expected.ir.fxc.hlsl
index c4ed99f..e3c68be 100644
--- a/test/tint/builtins/gen/literal/textureGatherCompare/783e65.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureGatherCompare/783e65.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,46 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  float4 prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureGatherCompare
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation float4 VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+Texture2DArray arg_0 : register(t0, space1);
+SamplerComparisonState arg_1 : register(s1, space1);
+float4 textureGatherCompare_783e65() {
+  Texture2DArray v = arg_0;
+  SamplerComparisonState v_1 = arg_1;
+  float4 res = v.GatherCmp(v_1, float3((1.0f).xx, float(1)), 1.0f);
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store4(0u, asuint(textureGatherCompare_783e65()));
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store4(0u, asuint(textureGatherCompare_783e65()));
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = textureGatherCompare_783e65();
+  VertexOutput v_2 = tint_symbol;
+  return v_2;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_3 = vertex_main_inner();
+  VertexOutput v_4 = v_3;
+  VertexOutput v_5 = v_3;
+  vertex_main_outputs v_6 = {v_5.prevent_dce, v_4.pos};
+  return v_6;
+}
+
diff --git a/test/tint/builtins/gen/literal/textureGatherCompare/b5bc43.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/textureGatherCompare/b5bc43.wgsl.expected.ir.dxc.hlsl
index c4ed99f..da8e5c2 100644
--- a/test/tint/builtins/gen/literal/textureGatherCompare/b5bc43.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureGatherCompare/b5bc43.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,46 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  float4 prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureGatherCompare
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation float4 VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+Texture2DArray arg_0 : register(t0, space1);
+SamplerComparisonState arg_1 : register(s1, space1);
+float4 textureGatherCompare_b5bc43() {
+  Texture2DArray v = arg_0;
+  SamplerComparisonState v_1 = arg_1;
+  float4 res = v.GatherCmp(v_1, float3((1.0f).xx, float(1u)), 1.0f);
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store4(0u, asuint(textureGatherCompare_b5bc43()));
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store4(0u, asuint(textureGatherCompare_b5bc43()));
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = textureGatherCompare_b5bc43();
+  VertexOutput v_2 = tint_symbol;
+  return v_2;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_3 = vertex_main_inner();
+  VertexOutput v_4 = v_3;
+  VertexOutput v_5 = v_3;
+  vertex_main_outputs v_6 = {v_5.prevent_dce, v_4.pos};
+  return v_6;
+}
+
diff --git a/test/tint/builtins/gen/literal/textureGatherCompare/b5bc43.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/textureGatherCompare/b5bc43.wgsl.expected.ir.fxc.hlsl
index c4ed99f..da8e5c2 100644
--- a/test/tint/builtins/gen/literal/textureGatherCompare/b5bc43.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureGatherCompare/b5bc43.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,46 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  float4 prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureGatherCompare
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation float4 VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+Texture2DArray arg_0 : register(t0, space1);
+SamplerComparisonState arg_1 : register(s1, space1);
+float4 textureGatherCompare_b5bc43() {
+  Texture2DArray v = arg_0;
+  SamplerComparisonState v_1 = arg_1;
+  float4 res = v.GatherCmp(v_1, float3((1.0f).xx, float(1u)), 1.0f);
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store4(0u, asuint(textureGatherCompare_b5bc43()));
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store4(0u, asuint(textureGatherCompare_b5bc43()));
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = textureGatherCompare_b5bc43();
+  VertexOutput v_2 = tint_symbol;
+  return v_2;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_3 = vertex_main_inner();
+  VertexOutput v_4 = v_3;
+  VertexOutput v_5 = v_3;
+  vertex_main_outputs v_6 = {v_5.prevent_dce, v_4.pos};
+  return v_6;
+}
+
diff --git a/test/tint/builtins/gen/literal/textureGatherCompare/f585cc.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/textureGatherCompare/f585cc.wgsl.expected.ir.dxc.hlsl
index c4ed99f..b8b88c6 100644
--- a/test/tint/builtins/gen/literal/textureGatherCompare/f585cc.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureGatherCompare/f585cc.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,3 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureGatherCompare
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+exit status 0xe0000001
\ No newline at end of file
diff --git a/test/tint/builtins/gen/literal/textureGatherCompare/f585cc.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/textureGatherCompare/f585cc.wgsl.expected.ir.fxc.hlsl
index c4ed99f..60ec354 100644
--- a/test/tint/builtins/gen/literal/textureGatherCompare/f585cc.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureGatherCompare/f585cc.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,46 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  float4 prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureGatherCompare
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation float4 VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+Texture2DArray arg_0 : register(t0, space1);
+SamplerComparisonState arg_1 : register(s1, space1);
+float4 textureGatherCompare_f585cc() {
+  Texture2DArray v = arg_0;
+  SamplerComparisonState v_1 = arg_1;
+  float4 res = v.GatherCmp(v_1, float3((1.0f).xx, float(1)), 1.0f, (1).xx);
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store4(0u, asuint(textureGatherCompare_f585cc()));
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store4(0u, asuint(textureGatherCompare_f585cc()));
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = textureGatherCompare_f585cc();
+  VertexOutput v_2 = tint_symbol;
+  return v_2;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_3 = vertex_main_inner();
+  VertexOutput v_4 = v_3;
+  VertexOutput v_5 = v_3;
+  vertex_main_outputs v_6 = {v_5.prevent_dce, v_4.pos};
+  return v_6;
+}
+
diff --git a/test/tint/builtins/gen/literal/textureLoad/012e11.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/textureLoad/012e11.wgsl.expected.ir.dxc.hlsl
index fd28383..334e6e8e 100644
--- a/test/tint/builtins/gen/literal/textureLoad/012e11.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureLoad/012e11.wgsl.expected.ir.dxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureLoad
+..\..\src\tint\utils\containers\slice.h:216 internal compiler error: TINT_ASSERT(i < Length())
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/literal/textureLoad/012e11.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/textureLoad/012e11.wgsl.expected.ir.fxc.hlsl
index fd28383..334e6e8e 100644
--- a/test/tint/builtins/gen/literal/textureLoad/012e11.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureLoad/012e11.wgsl.expected.ir.fxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureLoad
+..\..\src\tint\utils\containers\slice.h:216 internal compiler error: TINT_ASSERT(i < Length())
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/literal/textureLoad/019da0.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/textureLoad/019da0.wgsl.expected.ir.dxc.hlsl
index fd28383..50df285 100644
--- a/test/tint/builtins/gen/literal/textureLoad/019da0.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureLoad/019da0.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,45 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  float4 prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureLoad
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation float4 VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+Texture3D<float4> arg_0 : register(t0, space1);
+float4 textureLoad_019da0() {
+  Texture3D<float4> v = arg_0;
+  int3 v_1 = int3((1).xxx);
+  float4 res = float4(v.Load(int4(v_1, int(1u))));
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store4(0u, asuint(textureLoad_019da0()));
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store4(0u, asuint(textureLoad_019da0()));
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = textureLoad_019da0();
+  VertexOutput v_2 = tint_symbol;
+  return v_2;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_3 = vertex_main_inner();
+  VertexOutput v_4 = v_3;
+  VertexOutput v_5 = v_3;
+  vertex_main_outputs v_6 = {v_5.prevent_dce, v_4.pos};
+  return v_6;
+}
+
diff --git a/test/tint/builtins/gen/literal/textureLoad/019da0.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/textureLoad/019da0.wgsl.expected.ir.fxc.hlsl
index fd28383..50df285 100644
--- a/test/tint/builtins/gen/literal/textureLoad/019da0.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureLoad/019da0.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,45 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  float4 prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureLoad
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation float4 VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+Texture3D<float4> arg_0 : register(t0, space1);
+float4 textureLoad_019da0() {
+  Texture3D<float4> v = arg_0;
+  int3 v_1 = int3((1).xxx);
+  float4 res = float4(v.Load(int4(v_1, int(1u))));
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store4(0u, asuint(textureLoad_019da0()));
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store4(0u, asuint(textureLoad_019da0()));
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = textureLoad_019da0();
+  VertexOutput v_2 = tint_symbol;
+  return v_2;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_3 = vertex_main_inner();
+  VertexOutput v_4 = v_3;
+  VertexOutput v_5 = v_3;
+  vertex_main_outputs v_6 = {v_5.prevent_dce, v_4.pos};
+  return v_6;
+}
+
diff --git a/test/tint/builtins/gen/literal/textureLoad/01cd01.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/textureLoad/01cd01.wgsl.expected.ir.dxc.hlsl
index fd28383..334e6e8e 100644
--- a/test/tint/builtins/gen/literal/textureLoad/01cd01.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureLoad/01cd01.wgsl.expected.ir.dxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureLoad
+..\..\src\tint\utils\containers\slice.h:216 internal compiler error: TINT_ASSERT(i < Length())
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/literal/textureLoad/01cd01.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/textureLoad/01cd01.wgsl.expected.ir.fxc.hlsl
index fd28383..334e6e8e 100644
--- a/test/tint/builtins/gen/literal/textureLoad/01cd01.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureLoad/01cd01.wgsl.expected.ir.fxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureLoad
+..\..\src\tint\utils\containers\slice.h:216 internal compiler error: TINT_ASSERT(i < Length())
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/literal/textureLoad/026217.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/textureLoad/026217.wgsl.expected.ir.dxc.hlsl
index fd28383..b85a919 100644
--- a/test/tint/builtins/gen/literal/textureLoad/026217.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureLoad/026217.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,46 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  uint4 prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureLoad
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation uint4 VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+Texture2DArray<uint4> arg_0 : register(t0, space1);
+uint4 textureLoad_026217() {
+  Texture2DArray<uint4> v = arg_0;
+  int2 v_1 = int2((1u).xx);
+  int v_2 = int(1u);
+  uint4 res = uint4(v.Load(int4(v_1, v_2, int(1))));
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store4(0u, textureLoad_026217());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store4(0u, textureLoad_026217());
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = textureLoad_026217();
+  VertexOutput v_3 = tint_symbol;
+  return v_3;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_4 = vertex_main_inner();
+  VertexOutput v_5 = v_4;
+  VertexOutput v_6 = v_4;
+  vertex_main_outputs v_7 = {v_6.prevent_dce, v_5.pos};
+  return v_7;
+}
+
diff --git a/test/tint/builtins/gen/literal/textureLoad/026217.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/textureLoad/026217.wgsl.expected.ir.fxc.hlsl
index fd28383..b85a919 100644
--- a/test/tint/builtins/gen/literal/textureLoad/026217.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureLoad/026217.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,46 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  uint4 prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureLoad
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation uint4 VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+Texture2DArray<uint4> arg_0 : register(t0, space1);
+uint4 textureLoad_026217() {
+  Texture2DArray<uint4> v = arg_0;
+  int2 v_1 = int2((1u).xx);
+  int v_2 = int(1u);
+  uint4 res = uint4(v.Load(int4(v_1, v_2, int(1))));
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store4(0u, textureLoad_026217());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store4(0u, textureLoad_026217());
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = textureLoad_026217();
+  VertexOutput v_3 = tint_symbol;
+  return v_3;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_4 = vertex_main_inner();
+  VertexOutput v_5 = v_4;
+  VertexOutput v_6 = v_4;
+  vertex_main_outputs v_7 = {v_6.prevent_dce, v_5.pos};
+  return v_7;
+}
+
diff --git a/test/tint/builtins/gen/literal/textureLoad/02c48d.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/textureLoad/02c48d.wgsl.expected.ir.dxc.hlsl
index fd28383..334e6e8e 100644
--- a/test/tint/builtins/gen/literal/textureLoad/02c48d.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureLoad/02c48d.wgsl.expected.ir.dxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureLoad
+..\..\src\tint\utils\containers\slice.h:216 internal compiler error: TINT_ASSERT(i < Length())
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/literal/textureLoad/02c48d.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/textureLoad/02c48d.wgsl.expected.ir.fxc.hlsl
index fd28383..334e6e8e 100644
--- a/test/tint/builtins/gen/literal/textureLoad/02c48d.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureLoad/02c48d.wgsl.expected.ir.fxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureLoad
+..\..\src\tint\utils\containers\slice.h:216 internal compiler error: TINT_ASSERT(i < Length())
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/literal/textureLoad/02ef1f.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/textureLoad/02ef1f.wgsl.expected.ir.dxc.hlsl
index fd28383..334e6e8e 100644
--- a/test/tint/builtins/gen/literal/textureLoad/02ef1f.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureLoad/02ef1f.wgsl.expected.ir.dxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureLoad
+..\..\src\tint\utils\containers\slice.h:216 internal compiler error: TINT_ASSERT(i < Length())
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/literal/textureLoad/02ef1f.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/textureLoad/02ef1f.wgsl.expected.ir.fxc.hlsl
index fd28383..334e6e8e 100644
--- a/test/tint/builtins/gen/literal/textureLoad/02ef1f.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureLoad/02ef1f.wgsl.expected.ir.fxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureLoad
+..\..\src\tint\utils\containers\slice.h:216 internal compiler error: TINT_ASSERT(i < Length())
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/literal/textureLoad/03e03e.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/textureLoad/03e03e.wgsl.expected.ir.dxc.hlsl
index fd28383..334e6e8e 100644
--- a/test/tint/builtins/gen/literal/textureLoad/03e03e.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureLoad/03e03e.wgsl.expected.ir.dxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureLoad
+..\..\src\tint\utils\containers\slice.h:216 internal compiler error: TINT_ASSERT(i < Length())
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/literal/textureLoad/03e03e.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/textureLoad/03e03e.wgsl.expected.ir.fxc.hlsl
index fd28383..334e6e8e 100644
--- a/test/tint/builtins/gen/literal/textureLoad/03e03e.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureLoad/03e03e.wgsl.expected.ir.fxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureLoad
+..\..\src\tint\utils\containers\slice.h:216 internal compiler error: TINT_ASSERT(i < Length())
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/literal/textureLoad/045ec9.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/textureLoad/045ec9.wgsl.expected.ir.dxc.hlsl
index fd28383..334e6e8e 100644
--- a/test/tint/builtins/gen/literal/textureLoad/045ec9.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureLoad/045ec9.wgsl.expected.ir.dxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureLoad
+..\..\src\tint\utils\containers\slice.h:216 internal compiler error: TINT_ASSERT(i < Length())
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/literal/textureLoad/045ec9.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/textureLoad/045ec9.wgsl.expected.ir.fxc.hlsl
index fd28383..334e6e8e 100644
--- a/test/tint/builtins/gen/literal/textureLoad/045ec9.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureLoad/045ec9.wgsl.expected.ir.fxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureLoad
+..\..\src\tint\utils\containers\slice.h:216 internal compiler error: TINT_ASSERT(i < Length())
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/literal/textureLoad/04b911.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/textureLoad/04b911.wgsl.expected.ir.dxc.hlsl
index fd28383..6a21db3 100644
--- a/test/tint/builtins/gen/literal/textureLoad/04b911.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureLoad/04b911.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,46 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  float prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureLoad
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation float VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+Texture2DArray arg_0 : register(t0, space1);
+float textureLoad_04b911() {
+  Texture2DArray v = arg_0;
+  int2 v_1 = int2((1u).xx);
+  int v_2 = int(1);
+  float res = v.Load(int4(v_1, v_2, int(1u))).x;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store(0u, asuint(textureLoad_04b911()));
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store(0u, asuint(textureLoad_04b911()));
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = textureLoad_04b911();
+  VertexOutput v_3 = tint_symbol;
+  return v_3;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_4 = vertex_main_inner();
+  VertexOutput v_5 = v_4;
+  VertexOutput v_6 = v_4;
+  vertex_main_outputs v_7 = {v_6.prevent_dce, v_5.pos};
+  return v_7;
+}
+
diff --git a/test/tint/builtins/gen/literal/textureLoad/04b911.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/textureLoad/04b911.wgsl.expected.ir.fxc.hlsl
index fd28383..6a21db3 100644
--- a/test/tint/builtins/gen/literal/textureLoad/04b911.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureLoad/04b911.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,46 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  float prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureLoad
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation float VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+Texture2DArray arg_0 : register(t0, space1);
+float textureLoad_04b911() {
+  Texture2DArray v = arg_0;
+  int2 v_1 = int2((1u).xx);
+  int v_2 = int(1);
+  float res = v.Load(int4(v_1, v_2, int(1u))).x;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store(0u, asuint(textureLoad_04b911()));
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store(0u, asuint(textureLoad_04b911()));
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = textureLoad_04b911();
+  VertexOutput v_3 = tint_symbol;
+  return v_3;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_4 = vertex_main_inner();
+  VertexOutput v_5 = v_4;
+  VertexOutput v_6 = v_4;
+  vertex_main_outputs v_7 = {v_6.prevent_dce, v_5.pos};
+  return v_7;
+}
+
diff --git a/test/tint/builtins/gen/literal/textureLoad/050c33.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/textureLoad/050c33.wgsl.expected.ir.dxc.hlsl
index fd28383..334e6e8e 100644
--- a/test/tint/builtins/gen/literal/textureLoad/050c33.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureLoad/050c33.wgsl.expected.ir.dxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureLoad
+..\..\src\tint\utils\containers\slice.h:216 internal compiler error: TINT_ASSERT(i < Length())
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/literal/textureLoad/050c33.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/textureLoad/050c33.wgsl.expected.ir.fxc.hlsl
index fd28383..334e6e8e 100644
--- a/test/tint/builtins/gen/literal/textureLoad/050c33.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureLoad/050c33.wgsl.expected.ir.fxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureLoad
+..\..\src\tint\utils\containers\slice.h:216 internal compiler error: TINT_ASSERT(i < Length())
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/literal/textureLoad/054350.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/textureLoad/054350.wgsl.expected.ir.dxc.hlsl
index fd28383..334e6e8e 100644
--- a/test/tint/builtins/gen/literal/textureLoad/054350.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureLoad/054350.wgsl.expected.ir.dxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureLoad
+..\..\src\tint\utils\containers\slice.h:216 internal compiler error: TINT_ASSERT(i < Length())
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/literal/textureLoad/054350.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/textureLoad/054350.wgsl.expected.ir.fxc.hlsl
index fd28383..334e6e8e 100644
--- a/test/tint/builtins/gen/literal/textureLoad/054350.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureLoad/054350.wgsl.expected.ir.fxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureLoad
+..\..\src\tint\utils\containers\slice.h:216 internal compiler error: TINT_ASSERT(i < Length())
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/literal/textureLoad/0674b1.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/textureLoad/0674b1.wgsl.expected.ir.dxc.hlsl
index fd28383..334e6e8e 100644
--- a/test/tint/builtins/gen/literal/textureLoad/0674b1.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureLoad/0674b1.wgsl.expected.ir.dxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureLoad
+..\..\src\tint\utils\containers\slice.h:216 internal compiler error: TINT_ASSERT(i < Length())
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/literal/textureLoad/0674b1.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/textureLoad/0674b1.wgsl.expected.ir.fxc.hlsl
index fd28383..334e6e8e 100644
--- a/test/tint/builtins/gen/literal/textureLoad/0674b1.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureLoad/0674b1.wgsl.expected.ir.fxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureLoad
+..\..\src\tint\utils\containers\slice.h:216 internal compiler error: TINT_ASSERT(i < Length())
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/literal/textureLoad/06ac37.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/textureLoad/06ac37.wgsl.expected.ir.dxc.hlsl
index fd28383..334e6e8e 100644
--- a/test/tint/builtins/gen/literal/textureLoad/06ac37.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureLoad/06ac37.wgsl.expected.ir.dxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureLoad
+..\..\src\tint\utils\containers\slice.h:216 internal compiler error: TINT_ASSERT(i < Length())
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/literal/textureLoad/06ac37.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/textureLoad/06ac37.wgsl.expected.ir.fxc.hlsl
index fd28383..334e6e8e 100644
--- a/test/tint/builtins/gen/literal/textureLoad/06ac37.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureLoad/06ac37.wgsl.expected.ir.fxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureLoad
+..\..\src\tint\utils\containers\slice.h:216 internal compiler error: TINT_ASSERT(i < Length())
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/literal/textureLoad/072e26.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/textureLoad/072e26.wgsl.expected.ir.dxc.hlsl
index fd28383..334e6e8e 100644
--- a/test/tint/builtins/gen/literal/textureLoad/072e26.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureLoad/072e26.wgsl.expected.ir.dxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureLoad
+..\..\src\tint\utils\containers\slice.h:216 internal compiler error: TINT_ASSERT(i < Length())
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/literal/textureLoad/072e26.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/textureLoad/072e26.wgsl.expected.ir.fxc.hlsl
index fd28383..334e6e8e 100644
--- a/test/tint/builtins/gen/literal/textureLoad/072e26.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureLoad/072e26.wgsl.expected.ir.fxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureLoad
+..\..\src\tint\utils\containers\slice.h:216 internal compiler error: TINT_ASSERT(i < Length())
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/literal/textureLoad/078bc4.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/textureLoad/078bc4.wgsl.expected.ir.dxc.hlsl
index fd28383..334e6e8e 100644
--- a/test/tint/builtins/gen/literal/textureLoad/078bc4.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureLoad/078bc4.wgsl.expected.ir.dxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureLoad
+..\..\src\tint\utils\containers\slice.h:216 internal compiler error: TINT_ASSERT(i < Length())
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/literal/textureLoad/078bc4.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/textureLoad/078bc4.wgsl.expected.ir.fxc.hlsl
index fd28383..334e6e8e 100644
--- a/test/tint/builtins/gen/literal/textureLoad/078bc4.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureLoad/078bc4.wgsl.expected.ir.fxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureLoad
+..\..\src\tint\utils\containers\slice.h:216 internal compiler error: TINT_ASSERT(i < Length())
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/literal/textureLoad/0b515a.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/textureLoad/0b515a.wgsl.expected.ir.dxc.hlsl
index fd28383..334e6e8e 100644
--- a/test/tint/builtins/gen/literal/textureLoad/0b515a.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureLoad/0b515a.wgsl.expected.ir.dxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureLoad
+..\..\src\tint\utils\containers\slice.h:216 internal compiler error: TINT_ASSERT(i < Length())
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/literal/textureLoad/0b515a.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/textureLoad/0b515a.wgsl.expected.ir.fxc.hlsl
index fd28383..334e6e8e 100644
--- a/test/tint/builtins/gen/literal/textureLoad/0b515a.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureLoad/0b515a.wgsl.expected.ir.fxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureLoad
+..\..\src\tint\utils\containers\slice.h:216 internal compiler error: TINT_ASSERT(i < Length())
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/literal/textureLoad/0cb698.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/textureLoad/0cb698.wgsl.expected.ir.dxc.hlsl
index fd28383..24b63fe 100644
--- a/test/tint/builtins/gen/literal/textureLoad/0cb698.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureLoad/0cb698.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,45 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  int4 prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureLoad
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation int4 VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+Texture1D<int4> arg_0 : register(t0, space1);
+int4 textureLoad_0cb698() {
+  Texture1D<int4> v = arg_0;
+  int v_1 = int(1u);
+  int4 res = int4(v.Load(int2(v_1, int(1u))));
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store4(0u, asuint(textureLoad_0cb698()));
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store4(0u, asuint(textureLoad_0cb698()));
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = textureLoad_0cb698();
+  VertexOutput v_2 = tint_symbol;
+  return v_2;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_3 = vertex_main_inner();
+  VertexOutput v_4 = v_3;
+  VertexOutput v_5 = v_3;
+  vertex_main_outputs v_6 = {v_5.prevent_dce, v_4.pos};
+  return v_6;
+}
+
diff --git a/test/tint/builtins/gen/literal/textureLoad/0cb698.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/textureLoad/0cb698.wgsl.expected.ir.fxc.hlsl
index fd28383..24b63fe 100644
--- a/test/tint/builtins/gen/literal/textureLoad/0cb698.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureLoad/0cb698.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,45 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  int4 prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureLoad
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation int4 VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+Texture1D<int4> arg_0 : register(t0, space1);
+int4 textureLoad_0cb698() {
+  Texture1D<int4> v = arg_0;
+  int v_1 = int(1u);
+  int4 res = int4(v.Load(int2(v_1, int(1u))));
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store4(0u, asuint(textureLoad_0cb698()));
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store4(0u, asuint(textureLoad_0cb698()));
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = textureLoad_0cb698();
+  VertexOutput v_2 = tint_symbol;
+  return v_2;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_3 = vertex_main_inner();
+  VertexOutput v_4 = v_3;
+  VertexOutput v_5 = v_3;
+  vertex_main_outputs v_6 = {v_5.prevent_dce, v_4.pos};
+  return v_6;
+}
+
diff --git a/test/tint/builtins/gen/literal/textureLoad/10db82.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/textureLoad/10db82.wgsl.expected.ir.dxc.hlsl
index fd28383..334e6e8e 100644
--- a/test/tint/builtins/gen/literal/textureLoad/10db82.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureLoad/10db82.wgsl.expected.ir.dxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureLoad
+..\..\src\tint\utils\containers\slice.h:216 internal compiler error: TINT_ASSERT(i < Length())
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/literal/textureLoad/10db82.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/textureLoad/10db82.wgsl.expected.ir.fxc.hlsl
index fd28383..334e6e8e 100644
--- a/test/tint/builtins/gen/literal/textureLoad/10db82.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureLoad/10db82.wgsl.expected.ir.fxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureLoad
+..\..\src\tint\utils\containers\slice.h:216 internal compiler error: TINT_ASSERT(i < Length())
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/literal/textureLoad/126466.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/textureLoad/126466.wgsl.expected.ir.dxc.hlsl
index fd28383..334e6e8e 100644
--- a/test/tint/builtins/gen/literal/textureLoad/126466.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureLoad/126466.wgsl.expected.ir.dxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureLoad
+..\..\src\tint\utils\containers\slice.h:216 internal compiler error: TINT_ASSERT(i < Length())
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/literal/textureLoad/126466.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/textureLoad/126466.wgsl.expected.ir.fxc.hlsl
index fd28383..334e6e8e 100644
--- a/test/tint/builtins/gen/literal/textureLoad/126466.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureLoad/126466.wgsl.expected.ir.fxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureLoad
+..\..\src\tint\utils\containers\slice.h:216 internal compiler error: TINT_ASSERT(i < Length())
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/literal/textureLoad/127e12.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/textureLoad/127e12.wgsl.expected.ir.dxc.hlsl
index fd28383..334e6e8e 100644
--- a/test/tint/builtins/gen/literal/textureLoad/127e12.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureLoad/127e12.wgsl.expected.ir.dxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureLoad
+..\..\src\tint\utils\containers\slice.h:216 internal compiler error: TINT_ASSERT(i < Length())
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/literal/textureLoad/127e12.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/textureLoad/127e12.wgsl.expected.ir.fxc.hlsl
index fd28383..334e6e8e 100644
--- a/test/tint/builtins/gen/literal/textureLoad/127e12.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureLoad/127e12.wgsl.expected.ir.fxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureLoad
+..\..\src\tint\utils\containers\slice.h:216 internal compiler error: TINT_ASSERT(i < Length())
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/literal/textureLoad/1373dc.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/textureLoad/1373dc.wgsl.expected.ir.dxc.hlsl
index fd28383..e66f56d 100644
--- a/test/tint/builtins/gen/literal/textureLoad/1373dc.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureLoad/1373dc.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,45 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  float4 prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureLoad
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation float4 VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+Texture1D<float4> arg_0 : register(t0, space1);
+float4 textureLoad_1373dc() {
+  Texture1D<float4> v = arg_0;
+  int v_1 = int(1u);
+  float4 res = float4(v.Load(int2(v_1, int(1))));
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store4(0u, asuint(textureLoad_1373dc()));
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store4(0u, asuint(textureLoad_1373dc()));
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = textureLoad_1373dc();
+  VertexOutput v_2 = tint_symbol;
+  return v_2;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_3 = vertex_main_inner();
+  VertexOutput v_4 = v_3;
+  VertexOutput v_5 = v_3;
+  vertex_main_outputs v_6 = {v_5.prevent_dce, v_4.pos};
+  return v_6;
+}
+
diff --git a/test/tint/builtins/gen/literal/textureLoad/1373dc.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/textureLoad/1373dc.wgsl.expected.ir.fxc.hlsl
index fd28383..e66f56d 100644
--- a/test/tint/builtins/gen/literal/textureLoad/1373dc.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureLoad/1373dc.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,45 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  float4 prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureLoad
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation float4 VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+Texture1D<float4> arg_0 : register(t0, space1);
+float4 textureLoad_1373dc() {
+  Texture1D<float4> v = arg_0;
+  int v_1 = int(1u);
+  float4 res = float4(v.Load(int2(v_1, int(1))));
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store4(0u, asuint(textureLoad_1373dc()));
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store4(0u, asuint(textureLoad_1373dc()));
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = textureLoad_1373dc();
+  VertexOutput v_2 = tint_symbol;
+  return v_2;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_3 = vertex_main_inner();
+  VertexOutput v_4 = v_3;
+  VertexOutput v_5 = v_3;
+  vertex_main_outputs v_6 = {v_5.prevent_dce, v_4.pos};
+  return v_6;
+}
+
diff --git a/test/tint/builtins/gen/literal/textureLoad/13d539.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/textureLoad/13d539.wgsl.expected.ir.dxc.hlsl
index fd28383..334e6e8e 100644
--- a/test/tint/builtins/gen/literal/textureLoad/13d539.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureLoad/13d539.wgsl.expected.ir.dxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureLoad
+..\..\src\tint\utils\containers\slice.h:216 internal compiler error: TINT_ASSERT(i < Length())
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/literal/textureLoad/13d539.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/textureLoad/13d539.wgsl.expected.ir.fxc.hlsl
index fd28383..334e6e8e 100644
--- a/test/tint/builtins/gen/literal/textureLoad/13d539.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureLoad/13d539.wgsl.expected.ir.fxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureLoad
+..\..\src\tint\utils\containers\slice.h:216 internal compiler error: TINT_ASSERT(i < Length())
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/literal/textureLoad/13e90c.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/textureLoad/13e90c.wgsl.expected.ir.dxc.hlsl
index fd28383..334e6e8e 100644
--- a/test/tint/builtins/gen/literal/textureLoad/13e90c.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureLoad/13e90c.wgsl.expected.ir.dxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureLoad
+..\..\src\tint\utils\containers\slice.h:216 internal compiler error: TINT_ASSERT(i < Length())
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/literal/textureLoad/13e90c.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/textureLoad/13e90c.wgsl.expected.ir.fxc.hlsl
index fd28383..334e6e8e 100644
--- a/test/tint/builtins/gen/literal/textureLoad/13e90c.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureLoad/13e90c.wgsl.expected.ir.fxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureLoad
+..\..\src\tint\utils\containers\slice.h:216 internal compiler error: TINT_ASSERT(i < Length())
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/literal/textureLoad/143d84.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/textureLoad/143d84.wgsl.expected.ir.dxc.hlsl
index fd28383..334e6e8e 100644
--- a/test/tint/builtins/gen/literal/textureLoad/143d84.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureLoad/143d84.wgsl.expected.ir.dxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureLoad
+..\..\src\tint\utils\containers\slice.h:216 internal compiler error: TINT_ASSERT(i < Length())
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/literal/textureLoad/143d84.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/textureLoad/143d84.wgsl.expected.ir.fxc.hlsl
index fd28383..334e6e8e 100644
--- a/test/tint/builtins/gen/literal/textureLoad/143d84.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureLoad/143d84.wgsl.expected.ir.fxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureLoad
+..\..\src\tint\utils\containers\slice.h:216 internal compiler error: TINT_ASSERT(i < Length())
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/literal/textureLoad/1471b8.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/textureLoad/1471b8.wgsl.expected.ir.dxc.hlsl
index fd28383..334e6e8e 100644
--- a/test/tint/builtins/gen/literal/textureLoad/1471b8.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureLoad/1471b8.wgsl.expected.ir.dxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureLoad
+..\..\src\tint\utils\containers\slice.h:216 internal compiler error: TINT_ASSERT(i < Length())
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/literal/textureLoad/1471b8.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/textureLoad/1471b8.wgsl.expected.ir.fxc.hlsl
index fd28383..334e6e8e 100644
--- a/test/tint/builtins/gen/literal/textureLoad/1471b8.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureLoad/1471b8.wgsl.expected.ir.fxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureLoad
+..\..\src\tint\utils\containers\slice.h:216 internal compiler error: TINT_ASSERT(i < Length())
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/literal/textureLoad/14cc4c.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/textureLoad/14cc4c.wgsl.expected.ir.dxc.hlsl
index fd28383..334e6e8e 100644
--- a/test/tint/builtins/gen/literal/textureLoad/14cc4c.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureLoad/14cc4c.wgsl.expected.ir.dxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureLoad
+..\..\src\tint\utils\containers\slice.h:216 internal compiler error: TINT_ASSERT(i < Length())
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/literal/textureLoad/14cc4c.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/textureLoad/14cc4c.wgsl.expected.ir.fxc.hlsl
index fd28383..334e6e8e 100644
--- a/test/tint/builtins/gen/literal/textureLoad/14cc4c.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureLoad/14cc4c.wgsl.expected.ir.fxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureLoad
+..\..\src\tint\utils\containers\slice.h:216 internal compiler error: TINT_ASSERT(i < Length())
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/literal/textureLoad/1561a7.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/textureLoad/1561a7.wgsl.expected.ir.dxc.hlsl
index fd28383..334e6e8e 100644
--- a/test/tint/builtins/gen/literal/textureLoad/1561a7.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureLoad/1561a7.wgsl.expected.ir.dxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureLoad
+..\..\src\tint\utils\containers\slice.h:216 internal compiler error: TINT_ASSERT(i < Length())
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/literal/textureLoad/1561a7.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/textureLoad/1561a7.wgsl.expected.ir.fxc.hlsl
index fd28383..334e6e8e 100644
--- a/test/tint/builtins/gen/literal/textureLoad/1561a7.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureLoad/1561a7.wgsl.expected.ir.fxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureLoad
+..\..\src\tint\utils\containers\slice.h:216 internal compiler error: TINT_ASSERT(i < Length())
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/literal/textureLoad/15e675.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/textureLoad/15e675.wgsl.expected.ir.dxc.hlsl
index fd28383..334e6e8e 100644
--- a/test/tint/builtins/gen/literal/textureLoad/15e675.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureLoad/15e675.wgsl.expected.ir.dxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureLoad
+..\..\src\tint\utils\containers\slice.h:216 internal compiler error: TINT_ASSERT(i < Length())
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/literal/textureLoad/15e675.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/textureLoad/15e675.wgsl.expected.ir.fxc.hlsl
index fd28383..334e6e8e 100644
--- a/test/tint/builtins/gen/literal/textureLoad/15e675.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureLoad/15e675.wgsl.expected.ir.fxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureLoad
+..\..\src\tint\utils\containers\slice.h:216 internal compiler error: TINT_ASSERT(i < Length())
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/literal/textureLoad/1619bf.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/textureLoad/1619bf.wgsl.expected.ir.dxc.hlsl
index fd28383..334e6e8e 100644
--- a/test/tint/builtins/gen/literal/textureLoad/1619bf.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureLoad/1619bf.wgsl.expected.ir.dxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureLoad
+..\..\src\tint\utils\containers\slice.h:216 internal compiler error: TINT_ASSERT(i < Length())
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/literal/textureLoad/1619bf.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/textureLoad/1619bf.wgsl.expected.ir.fxc.hlsl
index fd28383..334e6e8e 100644
--- a/test/tint/builtins/gen/literal/textureLoad/1619bf.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureLoad/1619bf.wgsl.expected.ir.fxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureLoad
+..\..\src\tint\utils\containers\slice.h:216 internal compiler error: TINT_ASSERT(i < Length())
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/literal/textureLoad/168dc8.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/textureLoad/168dc8.wgsl.expected.ir.dxc.hlsl
index fd28383..2a08eaf 100644
--- a/test/tint/builtins/gen/literal/textureLoad/168dc8.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureLoad/168dc8.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,46 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  int4 prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureLoad
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation int4 VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+Texture2DArray<int4> arg_0 : register(t0, space1);
+int4 textureLoad_168dc8() {
+  Texture2DArray<int4> v = arg_0;
+  int2 v_1 = int2((1u).xx);
+  int v_2 = int(1);
+  int4 res = int4(v.Load(int4(v_1, v_2, int(1))));
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store4(0u, asuint(textureLoad_168dc8()));
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store4(0u, asuint(textureLoad_168dc8()));
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = textureLoad_168dc8();
+  VertexOutput v_3 = tint_symbol;
+  return v_3;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_4 = vertex_main_inner();
+  VertexOutput v_5 = v_4;
+  VertexOutput v_6 = v_4;
+  vertex_main_outputs v_7 = {v_6.prevent_dce, v_5.pos};
+  return v_7;
+}
+
diff --git a/test/tint/builtins/gen/literal/textureLoad/168dc8.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/textureLoad/168dc8.wgsl.expected.ir.fxc.hlsl
index fd28383..2a08eaf 100644
--- a/test/tint/builtins/gen/literal/textureLoad/168dc8.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureLoad/168dc8.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,46 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  int4 prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureLoad
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation int4 VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+Texture2DArray<int4> arg_0 : register(t0, space1);
+int4 textureLoad_168dc8() {
+  Texture2DArray<int4> v = arg_0;
+  int2 v_1 = int2((1u).xx);
+  int v_2 = int(1);
+  int4 res = int4(v.Load(int4(v_1, v_2, int(1))));
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store4(0u, asuint(textureLoad_168dc8()));
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store4(0u, asuint(textureLoad_168dc8()));
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = textureLoad_168dc8();
+  VertexOutput v_3 = tint_symbol;
+  return v_3;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_4 = vertex_main_inner();
+  VertexOutput v_5 = v_4;
+  VertexOutput v_6 = v_4;
+  vertex_main_outputs v_7 = {v_6.prevent_dce, v_5.pos};
+  return v_7;
+}
+
diff --git a/test/tint/builtins/gen/literal/textureLoad/170593.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/textureLoad/170593.wgsl.expected.ir.dxc.hlsl
index fd28383..334e6e8e 100644
--- a/test/tint/builtins/gen/literal/textureLoad/170593.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureLoad/170593.wgsl.expected.ir.dxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureLoad
+..\..\src\tint\utils\containers\slice.h:216 internal compiler error: TINT_ASSERT(i < Length())
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/literal/textureLoad/170593.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/textureLoad/170593.wgsl.expected.ir.fxc.hlsl
index fd28383..334e6e8e 100644
--- a/test/tint/builtins/gen/literal/textureLoad/170593.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureLoad/170593.wgsl.expected.ir.fxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureLoad
+..\..\src\tint\utils\containers\slice.h:216 internal compiler error: TINT_ASSERT(i < Length())
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/literal/textureLoad/17095b.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/textureLoad/17095b.wgsl.expected.ir.dxc.hlsl
index fd28383..334e6e8e 100644
--- a/test/tint/builtins/gen/literal/textureLoad/17095b.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureLoad/17095b.wgsl.expected.ir.dxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureLoad
+..\..\src\tint\utils\containers\slice.h:216 internal compiler error: TINT_ASSERT(i < Length())
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/literal/textureLoad/17095b.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/textureLoad/17095b.wgsl.expected.ir.fxc.hlsl
index fd28383..334e6e8e 100644
--- a/test/tint/builtins/gen/literal/textureLoad/17095b.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureLoad/17095b.wgsl.expected.ir.fxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureLoad
+..\..\src\tint\utils\containers\slice.h:216 internal compiler error: TINT_ASSERT(i < Length())
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/literal/textureLoad/18ac11.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/textureLoad/18ac11.wgsl.expected.ir.dxc.hlsl
index fd28383..334e6e8e 100644
--- a/test/tint/builtins/gen/literal/textureLoad/18ac11.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureLoad/18ac11.wgsl.expected.ir.dxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureLoad
+..\..\src\tint\utils\containers\slice.h:216 internal compiler error: TINT_ASSERT(i < Length())
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/literal/textureLoad/18ac11.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/textureLoad/18ac11.wgsl.expected.ir.fxc.hlsl
index fd28383..334e6e8e 100644
--- a/test/tint/builtins/gen/literal/textureLoad/18ac11.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureLoad/18ac11.wgsl.expected.ir.fxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureLoad
+..\..\src\tint\utils\containers\slice.h:216 internal compiler error: TINT_ASSERT(i < Length())
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/literal/textureLoad/19cf87.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/textureLoad/19cf87.wgsl.expected.ir.dxc.hlsl
index fd28383..6cdfcdc 100644
--- a/test/tint/builtins/gen/literal/textureLoad/19cf87.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureLoad/19cf87.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,45 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  float prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureLoad
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation float VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+Texture2D arg_0 : register(t0, space1);
+float textureLoad_19cf87() {
+  Texture2D v = arg_0;
+  int2 v_1 = int2((1).xx);
+  float res = v.Load(int3(v_1, int(1))).x;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store(0u, asuint(textureLoad_19cf87()));
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store(0u, asuint(textureLoad_19cf87()));
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = textureLoad_19cf87();
+  VertexOutput v_2 = tint_symbol;
+  return v_2;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_3 = vertex_main_inner();
+  VertexOutput v_4 = v_3;
+  VertexOutput v_5 = v_3;
+  vertex_main_outputs v_6 = {v_5.prevent_dce, v_4.pos};
+  return v_6;
+}
+
diff --git a/test/tint/builtins/gen/literal/textureLoad/19cf87.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/textureLoad/19cf87.wgsl.expected.ir.fxc.hlsl
index fd28383..6cdfcdc 100644
--- a/test/tint/builtins/gen/literal/textureLoad/19cf87.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureLoad/19cf87.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,45 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  float prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureLoad
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation float VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+Texture2D arg_0 : register(t0, space1);
+float textureLoad_19cf87() {
+  Texture2D v = arg_0;
+  int2 v_1 = int2((1).xx);
+  float res = v.Load(int3(v_1, int(1))).x;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store(0u, asuint(textureLoad_19cf87()));
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store(0u, asuint(textureLoad_19cf87()));
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = textureLoad_19cf87();
+  VertexOutput v_2 = tint_symbol;
+  return v_2;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_3 = vertex_main_inner();
+  VertexOutput v_4 = v_3;
+  VertexOutput v_5 = v_3;
+  vertex_main_outputs v_6 = {v_5.prevent_dce, v_4.pos};
+  return v_6;
+}
+
diff --git a/test/tint/builtins/gen/literal/textureLoad/19d6be.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/textureLoad/19d6be.wgsl.expected.ir.dxc.hlsl
index fd28383..334e6e8e 100644
--- a/test/tint/builtins/gen/literal/textureLoad/19d6be.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureLoad/19d6be.wgsl.expected.ir.dxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureLoad
+..\..\src\tint\utils\containers\slice.h:216 internal compiler error: TINT_ASSERT(i < Length())
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/literal/textureLoad/19d6be.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/textureLoad/19d6be.wgsl.expected.ir.fxc.hlsl
index fd28383..334e6e8e 100644
--- a/test/tint/builtins/gen/literal/textureLoad/19d6be.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureLoad/19d6be.wgsl.expected.ir.fxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureLoad
+..\..\src\tint\utils\containers\slice.h:216 internal compiler error: TINT_ASSERT(i < Length())
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/literal/textureLoad/19e5ca.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/textureLoad/19e5ca.wgsl.expected.ir.dxc.hlsl
index fd28383..334e6e8e 100644
--- a/test/tint/builtins/gen/literal/textureLoad/19e5ca.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureLoad/19e5ca.wgsl.expected.ir.dxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureLoad
+..\..\src\tint\utils\containers\slice.h:216 internal compiler error: TINT_ASSERT(i < Length())
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/literal/textureLoad/19e5ca.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/textureLoad/19e5ca.wgsl.expected.ir.fxc.hlsl
index fd28383..334e6e8e 100644
--- a/test/tint/builtins/gen/literal/textureLoad/19e5ca.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureLoad/19e5ca.wgsl.expected.ir.fxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureLoad
+..\..\src\tint\utils\containers\slice.h:216 internal compiler error: TINT_ASSERT(i < Length())
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/literal/textureLoad/1a062f.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/textureLoad/1a062f.wgsl.expected.ir.dxc.hlsl
index fd28383..334e6e8e 100644
--- a/test/tint/builtins/gen/literal/textureLoad/1a062f.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureLoad/1a062f.wgsl.expected.ir.dxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureLoad
+..\..\src\tint\utils\containers\slice.h:216 internal compiler error: TINT_ASSERT(i < Length())
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/literal/textureLoad/1a062f.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/textureLoad/1a062f.wgsl.expected.ir.fxc.hlsl
index fd28383..334e6e8e 100644
--- a/test/tint/builtins/gen/literal/textureLoad/1a062f.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureLoad/1a062f.wgsl.expected.ir.fxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureLoad
+..\..\src\tint\utils\containers\slice.h:216 internal compiler error: TINT_ASSERT(i < Length())
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/literal/textureLoad/1a8452.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/textureLoad/1a8452.wgsl.expected.ir.dxc.hlsl
index fd28383..334e6e8e 100644
--- a/test/tint/builtins/gen/literal/textureLoad/1a8452.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureLoad/1a8452.wgsl.expected.ir.dxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureLoad
+..\..\src\tint\utils\containers\slice.h:216 internal compiler error: TINT_ASSERT(i < Length())
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/literal/textureLoad/1a8452.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/textureLoad/1a8452.wgsl.expected.ir.fxc.hlsl
index fd28383..334e6e8e 100644
--- a/test/tint/builtins/gen/literal/textureLoad/1a8452.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureLoad/1a8452.wgsl.expected.ir.fxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureLoad
+..\..\src\tint\utils\containers\slice.h:216 internal compiler error: TINT_ASSERT(i < Length())
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/literal/textureLoad/1aa950.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/textureLoad/1aa950.wgsl.expected.ir.dxc.hlsl
index fd28383..334e6e8e 100644
--- a/test/tint/builtins/gen/literal/textureLoad/1aa950.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureLoad/1aa950.wgsl.expected.ir.dxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureLoad
+..\..\src\tint\utils\containers\slice.h:216 internal compiler error: TINT_ASSERT(i < Length())
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/literal/textureLoad/1aa950.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/textureLoad/1aa950.wgsl.expected.ir.fxc.hlsl
index fd28383..334e6e8e 100644
--- a/test/tint/builtins/gen/literal/textureLoad/1aa950.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureLoad/1aa950.wgsl.expected.ir.fxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureLoad
+..\..\src\tint\utils\containers\slice.h:216 internal compiler error: TINT_ASSERT(i < Length())
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/literal/textureLoad/1b051f.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/textureLoad/1b051f.wgsl.expected.ir.dxc.hlsl
index fd28383..d1ba1d9 100644
--- a/test/tint/builtins/gen/literal/textureLoad/1b051f.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureLoad/1b051f.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,46 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  uint4 prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureLoad
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation uint4 VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+Texture2DArray<uint4> arg_0 : register(t0, space1);
+uint4 textureLoad_1b051f() {
+  Texture2DArray<uint4> v = arg_0;
+  int2 v_1 = int2((1).xx);
+  int v_2 = int(1u);
+  uint4 res = uint4(v.Load(int4(v_1, v_2, int(1u))));
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store4(0u, textureLoad_1b051f());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store4(0u, textureLoad_1b051f());
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = textureLoad_1b051f();
+  VertexOutput v_3 = tint_symbol;
+  return v_3;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_4 = vertex_main_inner();
+  VertexOutput v_5 = v_4;
+  VertexOutput v_6 = v_4;
+  vertex_main_outputs v_7 = {v_6.prevent_dce, v_5.pos};
+  return v_7;
+}
+
diff --git a/test/tint/builtins/gen/literal/textureLoad/1b051f.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/textureLoad/1b051f.wgsl.expected.ir.fxc.hlsl
index fd28383..d1ba1d9 100644
--- a/test/tint/builtins/gen/literal/textureLoad/1b051f.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureLoad/1b051f.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,46 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  uint4 prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureLoad
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation uint4 VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+Texture2DArray<uint4> arg_0 : register(t0, space1);
+uint4 textureLoad_1b051f() {
+  Texture2DArray<uint4> v = arg_0;
+  int2 v_1 = int2((1).xx);
+  int v_2 = int(1u);
+  uint4 res = uint4(v.Load(int4(v_1, v_2, int(1u))));
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store4(0u, textureLoad_1b051f());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store4(0u, textureLoad_1b051f());
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = textureLoad_1b051f();
+  VertexOutput v_3 = tint_symbol;
+  return v_3;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_4 = vertex_main_inner();
+  VertexOutput v_5 = v_4;
+  VertexOutput v_6 = v_4;
+  vertex_main_outputs v_7 = {v_6.prevent_dce, v_5.pos};
+  return v_7;
+}
+
diff --git a/test/tint/builtins/gen/literal/textureLoad/1b4332.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/textureLoad/1b4332.wgsl.expected.ir.dxc.hlsl
index fd28383..334e6e8e 100644
--- a/test/tint/builtins/gen/literal/textureLoad/1b4332.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureLoad/1b4332.wgsl.expected.ir.dxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureLoad
+..\..\src\tint\utils\containers\slice.h:216 internal compiler error: TINT_ASSERT(i < Length())
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/literal/textureLoad/1b4332.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/textureLoad/1b4332.wgsl.expected.ir.fxc.hlsl
index fd28383..334e6e8e 100644
--- a/test/tint/builtins/gen/literal/textureLoad/1b4332.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureLoad/1b4332.wgsl.expected.ir.fxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureLoad
+..\..\src\tint\utils\containers\slice.h:216 internal compiler error: TINT_ASSERT(i < Length())
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/literal/textureLoad/1b8588.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/textureLoad/1b8588.wgsl.expected.ir.dxc.hlsl
index fd28383..aa3420a 100644
--- a/test/tint/builtins/gen/literal/textureLoad/1b8588.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureLoad/1b8588.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,45 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  uint4 prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureLoad
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation uint4 VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+Texture1D<uint4> arg_0 : register(t0, space1);
+uint4 textureLoad_1b8588() {
+  Texture1D<uint4> v = arg_0;
+  int v_1 = int(1);
+  uint4 res = uint4(v.Load(int2(v_1, int(1))));
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store4(0u, textureLoad_1b8588());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store4(0u, textureLoad_1b8588());
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = textureLoad_1b8588();
+  VertexOutput v_2 = tint_symbol;
+  return v_2;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_3 = vertex_main_inner();
+  VertexOutput v_4 = v_3;
+  VertexOutput v_5 = v_3;
+  vertex_main_outputs v_6 = {v_5.prevent_dce, v_4.pos};
+  return v_6;
+}
+
diff --git a/test/tint/builtins/gen/literal/textureLoad/1b8588.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/textureLoad/1b8588.wgsl.expected.ir.fxc.hlsl
index fd28383..aa3420a 100644
--- a/test/tint/builtins/gen/literal/textureLoad/1b8588.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureLoad/1b8588.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,45 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  uint4 prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureLoad
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation uint4 VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+Texture1D<uint4> arg_0 : register(t0, space1);
+uint4 textureLoad_1b8588() {
+  Texture1D<uint4> v = arg_0;
+  int v_1 = int(1);
+  uint4 res = uint4(v.Load(int2(v_1, int(1))));
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store4(0u, textureLoad_1b8588());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store4(0u, textureLoad_1b8588());
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = textureLoad_1b8588();
+  VertexOutput v_2 = tint_symbol;
+  return v_2;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_3 = vertex_main_inner();
+  VertexOutput v_4 = v_3;
+  VertexOutput v_5 = v_3;
+  vertex_main_outputs v_6 = {v_5.prevent_dce, v_4.pos};
+  return v_6;
+}
+
diff --git a/test/tint/builtins/gen/literal/textureLoad/1bc5ab.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/textureLoad/1bc5ab.wgsl.expected.ir.dxc.hlsl
index fd28383..334e6e8e 100644
--- a/test/tint/builtins/gen/literal/textureLoad/1bc5ab.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureLoad/1bc5ab.wgsl.expected.ir.dxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureLoad
+..\..\src\tint\utils\containers\slice.h:216 internal compiler error: TINT_ASSERT(i < Length())
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/literal/textureLoad/1bc5ab.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/textureLoad/1bc5ab.wgsl.expected.ir.fxc.hlsl
index fd28383..334e6e8e 100644
--- a/test/tint/builtins/gen/literal/textureLoad/1bc5ab.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureLoad/1bc5ab.wgsl.expected.ir.fxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureLoad
+..\..\src\tint\utils\containers\slice.h:216 internal compiler error: TINT_ASSERT(i < Length())
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/literal/textureLoad/1bfdfb.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/textureLoad/1bfdfb.wgsl.expected.ir.dxc.hlsl
index fd28383..418b1ab 100644
--- a/test/tint/builtins/gen/literal/textureLoad/1bfdfb.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureLoad/1bfdfb.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,178 @@
-SKIP: FAILED
+struct tint_GammaTransferParams {
+  float G;
+  float A;
+  float B;
+  float C;
+  float D;
+  float E;
+  float F;
+  uint padding;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureLoad
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct tint_ExternalTextureParams {
+  uint numPlanes;
+  uint doYuvToRgbConversionOnly;
+  float3x4 yuvToRgbConversionMatrix;
+  tint_GammaTransferParams gammaDecodeParams;
+  tint_GammaTransferParams gammaEncodeParams;
+  float3x3 gamutConversionMatrix;
+  float3x2 sampleTransform;
+  float3x2 loadTransform;
+  float2 samplePlane0RectMin;
+  float2 samplePlane0RectMax;
+  float2 samplePlane1RectMin;
+  float2 samplePlane1RectMax;
+  uint2 visibleSize;
+  float2 plane1CoordFactor;
+};
+
+struct VertexOutput {
+  float4 pos;
+  float4 prevent_dce;
+};
+
+struct vertex_main_outputs {
+  nointerpolation float4 VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+Texture2D<float4> arg_0_plane0 : register(t0, space1);
+Texture2D<float4> arg_0_plane1 : register(t1, space1);
+cbuffer cbuffer_arg_0_params : register(b2, space1) {
+  uint4 arg_0_params[17];
+};
+uint2 tint_v2f32_to_v2u32(float2 value) {
+  return (((value <= (4294967040.0f).xx)) ? ((((value >= (0.0f).xx)) ? (uint2(value)) : ((0u).xx))) : ((4294967295u).xx));
+}
+
+float3 tint_GammaCorrection(float3 v, tint_GammaTransferParams params) {
+  float3 v_1 = float3((params.G).xxx);
+  float3 v_2 = float3((params.D).xxx);
+  float3 v_3 = abs(v);
+  float3 v_4 = float3(sign(v));
+  return (((v_3 < v_2)) ? ((v_4 * ((params.C * v_3) + params.F))) : ((v_4 * (pow(((params.A * v_3) + params.B), v_1) + params.E))));
+}
+
+float4 tint_TextureLoadExternal(Texture2D<float4> plane_0, Texture2D<float4> plane_1, tint_ExternalTextureParams params, uint2 coords) {
+  float2 v_5 = round(mul(float3(float2(min(coords, params.visibleSize)), 1.0f), params.loadTransform));
+  uint2 v_6 = tint_v2f32_to_v2u32(v_5);
+  float3 v_7 = (0.0f).xxx;
+  float v_8 = 0.0f;
+  if ((params.numPlanes == 1u)) {
+    int2 v_9 = int2(v_6);
+    float4 v_10 = float4(plane_0.Load(int3(v_9, int(0u))));
+    v_7 = v_10.xyz;
+    v_8 = v_10[3u];
+  } else {
+    int2 v_11 = int2(v_6);
+    float v_12 = float4(plane_0.Load(int3(v_11, int(0u))))[0u];
+    int2 v_13 = int2(tint_v2f32_to_v2u32((v_5 * params.plane1CoordFactor)));
+    v_7 = mul(params.yuvToRgbConversionMatrix, float4(v_12, float4(plane_1.Load(int3(v_13, int(0u)))).xy, 1.0f));
+    v_8 = 1.0f;
+  }
+  float3 v_14 = v_7;
+  float3 v_15 = (0.0f).xxx;
+  if ((params.doYuvToRgbConversionOnly == 0u)) {
+    tint_GammaTransferParams v_16 = params.gammaDecodeParams;
+    tint_GammaTransferParams v_17 = params.gammaEncodeParams;
+    v_15 = tint_GammaCorrection(mul(tint_GammaCorrection(v_14, v_16), params.gamutConversionMatrix), v_17);
+  } else {
+    v_15 = v_14;
+  }
+  return float4(v_15, v_8);
+}
+
+float3x2 v_18(uint start_byte_offset) {
+  uint4 v_19 = arg_0_params[(start_byte_offset / 16u)];
+  float2 v_20 = asfloat((((((start_byte_offset % 16u) / 4u) == 2u)) ? (v_19.zw) : (v_19.xy)));
+  uint4 v_21 = arg_0_params[((8u + start_byte_offset) / 16u)];
+  float2 v_22 = asfloat(((((((8u + start_byte_offset) % 16u) / 4u) == 2u)) ? (v_21.zw) : (v_21.xy)));
+  uint4 v_23 = arg_0_params[((16u + start_byte_offset) / 16u)];
+  return float3x2(v_20, v_22, asfloat(((((((16u + start_byte_offset) % 16u) / 4u) == 2u)) ? (v_23.zw) : (v_23.xy))));
+}
+
+float3x3 v_24(uint start_byte_offset) {
+  float3 v_25 = asfloat(arg_0_params[(start_byte_offset / 16u)].xyz);
+  float3 v_26 = asfloat(arg_0_params[((16u + start_byte_offset) / 16u)].xyz);
+  return float3x3(v_25, v_26, asfloat(arg_0_params[((32u + start_byte_offset) / 16u)].xyz));
+}
+
+tint_GammaTransferParams v_27(uint start_byte_offset) {
+  float v_28 = asfloat(arg_0_params[(start_byte_offset / 16u)][((start_byte_offset % 16u) / 4u)]);
+  float v_29 = asfloat(arg_0_params[((4u + start_byte_offset) / 16u)][(((4u + start_byte_offset) % 16u) / 4u)]);
+  float v_30 = asfloat(arg_0_params[((8u + start_byte_offset) / 16u)][(((8u + start_byte_offset) % 16u) / 4u)]);
+  float v_31 = asfloat(arg_0_params[((12u + start_byte_offset) / 16u)][(((12u + start_byte_offset) % 16u) / 4u)]);
+  float v_32 = asfloat(arg_0_params[((16u + start_byte_offset) / 16u)][(((16u + start_byte_offset) % 16u) / 4u)]);
+  float v_33 = asfloat(arg_0_params[((20u + start_byte_offset) / 16u)][(((20u + start_byte_offset) % 16u) / 4u)]);
+  float v_34 = asfloat(arg_0_params[((24u + start_byte_offset) / 16u)][(((24u + start_byte_offset) % 16u) / 4u)]);
+  tint_GammaTransferParams v_35 = {v_28, v_29, v_30, v_31, v_32, v_33, v_34, arg_0_params[((28u + start_byte_offset) / 16u)][(((28u + start_byte_offset) % 16u) / 4u)]};
+  return v_35;
+}
+
+float3x4 v_36(uint start_byte_offset) {
+  float4 v_37 = asfloat(arg_0_params[(start_byte_offset / 16u)]);
+  float4 v_38 = asfloat(arg_0_params[((16u + start_byte_offset) / 16u)]);
+  return float3x4(v_37, v_38, asfloat(arg_0_params[((32u + start_byte_offset) / 16u)]));
+}
+
+tint_ExternalTextureParams v_39(uint start_byte_offset) {
+  uint v_40 = arg_0_params[(start_byte_offset / 16u)][((start_byte_offset % 16u) / 4u)];
+  uint v_41 = arg_0_params[((4u + start_byte_offset) / 16u)][(((4u + start_byte_offset) % 16u) / 4u)];
+  float3x4 v_42 = v_36((16u + start_byte_offset));
+  tint_GammaTransferParams v_43 = v_27((64u + start_byte_offset));
+  tint_GammaTransferParams v_44 = v_27((96u + start_byte_offset));
+  float3x3 v_45 = v_24((128u + start_byte_offset));
+  float3x2 v_46 = v_18((176u + start_byte_offset));
+  float3x2 v_47 = v_18((200u + start_byte_offset));
+  uint4 v_48 = arg_0_params[((224u + start_byte_offset) / 16u)];
+  float2 v_49 = asfloat(((((((224u + start_byte_offset) % 16u) / 4u) == 2u)) ? (v_48.zw) : (v_48.xy)));
+  uint4 v_50 = arg_0_params[((232u + start_byte_offset) / 16u)];
+  float2 v_51 = asfloat(((((((232u + start_byte_offset) % 16u) / 4u) == 2u)) ? (v_50.zw) : (v_50.xy)));
+  uint4 v_52 = arg_0_params[((240u + start_byte_offset) / 16u)];
+  float2 v_53 = asfloat(((((((240u + start_byte_offset) % 16u) / 4u) == 2u)) ? (v_52.zw) : (v_52.xy)));
+  uint4 v_54 = arg_0_params[((248u + start_byte_offset) / 16u)];
+  float2 v_55 = asfloat(((((((248u + start_byte_offset) % 16u) / 4u) == 2u)) ? (v_54.zw) : (v_54.xy)));
+  uint4 v_56 = arg_0_params[((256u + start_byte_offset) / 16u)];
+  uint2 v_57 = ((((((256u + start_byte_offset) % 16u) / 4u) == 2u)) ? (v_56.zw) : (v_56.xy));
+  uint4 v_58 = arg_0_params[((264u + start_byte_offset) / 16u)];
+  tint_GammaTransferParams v_59 = v_43;
+  tint_GammaTransferParams v_60 = v_44;
+  tint_ExternalTextureParams v_61 = {v_40, v_41, v_42, v_59, v_60, v_45, v_46, v_47, v_49, v_51, v_53, v_55, v_57, asfloat(((((((264u + start_byte_offset) % 16u) / 4u) == 2u)) ? (v_58.zw) : (v_58.xy)))};
+  return v_61;
+}
+
+float4 textureLoad_1bfdfb() {
+  Texture2D<float4> v_62 = arg_0_plane0;
+  Texture2D<float4> v_63 = arg_0_plane1;
+  tint_ExternalTextureParams v_64 = v_39(0u);
+  float4 res = tint_TextureLoadExternal(v_62, v_63, v_64, (1u).xx);
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store4(0u, asuint(textureLoad_1bfdfb()));
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store4(0u, asuint(textureLoad_1bfdfb()));
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = textureLoad_1bfdfb();
+  VertexOutput v_65 = tint_symbol;
+  return v_65;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_66 = vertex_main_inner();
+  VertexOutput v_67 = v_66;
+  VertexOutput v_68 = v_66;
+  vertex_main_outputs v_69 = {v_68.prevent_dce, v_67.pos};
+  return v_69;
+}
+
diff --git a/test/tint/builtins/gen/literal/textureLoad/1bfdfb.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/textureLoad/1bfdfb.wgsl.expected.ir.fxc.hlsl
index fd28383..418b1ab 100644
--- a/test/tint/builtins/gen/literal/textureLoad/1bfdfb.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureLoad/1bfdfb.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,178 @@
-SKIP: FAILED
+struct tint_GammaTransferParams {
+  float G;
+  float A;
+  float B;
+  float C;
+  float D;
+  float E;
+  float F;
+  uint padding;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureLoad
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct tint_ExternalTextureParams {
+  uint numPlanes;
+  uint doYuvToRgbConversionOnly;
+  float3x4 yuvToRgbConversionMatrix;
+  tint_GammaTransferParams gammaDecodeParams;
+  tint_GammaTransferParams gammaEncodeParams;
+  float3x3 gamutConversionMatrix;
+  float3x2 sampleTransform;
+  float3x2 loadTransform;
+  float2 samplePlane0RectMin;
+  float2 samplePlane0RectMax;
+  float2 samplePlane1RectMin;
+  float2 samplePlane1RectMax;
+  uint2 visibleSize;
+  float2 plane1CoordFactor;
+};
+
+struct VertexOutput {
+  float4 pos;
+  float4 prevent_dce;
+};
+
+struct vertex_main_outputs {
+  nointerpolation float4 VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+Texture2D<float4> arg_0_plane0 : register(t0, space1);
+Texture2D<float4> arg_0_plane1 : register(t1, space1);
+cbuffer cbuffer_arg_0_params : register(b2, space1) {
+  uint4 arg_0_params[17];
+};
+uint2 tint_v2f32_to_v2u32(float2 value) {
+  return (((value <= (4294967040.0f).xx)) ? ((((value >= (0.0f).xx)) ? (uint2(value)) : ((0u).xx))) : ((4294967295u).xx));
+}
+
+float3 tint_GammaCorrection(float3 v, tint_GammaTransferParams params) {
+  float3 v_1 = float3((params.G).xxx);
+  float3 v_2 = float3((params.D).xxx);
+  float3 v_3 = abs(v);
+  float3 v_4 = float3(sign(v));
+  return (((v_3 < v_2)) ? ((v_4 * ((params.C * v_3) + params.F))) : ((v_4 * (pow(((params.A * v_3) + params.B), v_1) + params.E))));
+}
+
+float4 tint_TextureLoadExternal(Texture2D<float4> plane_0, Texture2D<float4> plane_1, tint_ExternalTextureParams params, uint2 coords) {
+  float2 v_5 = round(mul(float3(float2(min(coords, params.visibleSize)), 1.0f), params.loadTransform));
+  uint2 v_6 = tint_v2f32_to_v2u32(v_5);
+  float3 v_7 = (0.0f).xxx;
+  float v_8 = 0.0f;
+  if ((params.numPlanes == 1u)) {
+    int2 v_9 = int2(v_6);
+    float4 v_10 = float4(plane_0.Load(int3(v_9, int(0u))));
+    v_7 = v_10.xyz;
+    v_8 = v_10[3u];
+  } else {
+    int2 v_11 = int2(v_6);
+    float v_12 = float4(plane_0.Load(int3(v_11, int(0u))))[0u];
+    int2 v_13 = int2(tint_v2f32_to_v2u32((v_5 * params.plane1CoordFactor)));
+    v_7 = mul(params.yuvToRgbConversionMatrix, float4(v_12, float4(plane_1.Load(int3(v_13, int(0u)))).xy, 1.0f));
+    v_8 = 1.0f;
+  }
+  float3 v_14 = v_7;
+  float3 v_15 = (0.0f).xxx;
+  if ((params.doYuvToRgbConversionOnly == 0u)) {
+    tint_GammaTransferParams v_16 = params.gammaDecodeParams;
+    tint_GammaTransferParams v_17 = params.gammaEncodeParams;
+    v_15 = tint_GammaCorrection(mul(tint_GammaCorrection(v_14, v_16), params.gamutConversionMatrix), v_17);
+  } else {
+    v_15 = v_14;
+  }
+  return float4(v_15, v_8);
+}
+
+float3x2 v_18(uint start_byte_offset) {
+  uint4 v_19 = arg_0_params[(start_byte_offset / 16u)];
+  float2 v_20 = asfloat((((((start_byte_offset % 16u) / 4u) == 2u)) ? (v_19.zw) : (v_19.xy)));
+  uint4 v_21 = arg_0_params[((8u + start_byte_offset) / 16u)];
+  float2 v_22 = asfloat(((((((8u + start_byte_offset) % 16u) / 4u) == 2u)) ? (v_21.zw) : (v_21.xy)));
+  uint4 v_23 = arg_0_params[((16u + start_byte_offset) / 16u)];
+  return float3x2(v_20, v_22, asfloat(((((((16u + start_byte_offset) % 16u) / 4u) == 2u)) ? (v_23.zw) : (v_23.xy))));
+}
+
+float3x3 v_24(uint start_byte_offset) {
+  float3 v_25 = asfloat(arg_0_params[(start_byte_offset / 16u)].xyz);
+  float3 v_26 = asfloat(arg_0_params[((16u + start_byte_offset) / 16u)].xyz);
+  return float3x3(v_25, v_26, asfloat(arg_0_params[((32u + start_byte_offset) / 16u)].xyz));
+}
+
+tint_GammaTransferParams v_27(uint start_byte_offset) {
+  float v_28 = asfloat(arg_0_params[(start_byte_offset / 16u)][((start_byte_offset % 16u) / 4u)]);
+  float v_29 = asfloat(arg_0_params[((4u + start_byte_offset) / 16u)][(((4u + start_byte_offset) % 16u) / 4u)]);
+  float v_30 = asfloat(arg_0_params[((8u + start_byte_offset) / 16u)][(((8u + start_byte_offset) % 16u) / 4u)]);
+  float v_31 = asfloat(arg_0_params[((12u + start_byte_offset) / 16u)][(((12u + start_byte_offset) % 16u) / 4u)]);
+  float v_32 = asfloat(arg_0_params[((16u + start_byte_offset) / 16u)][(((16u + start_byte_offset) % 16u) / 4u)]);
+  float v_33 = asfloat(arg_0_params[((20u + start_byte_offset) / 16u)][(((20u + start_byte_offset) % 16u) / 4u)]);
+  float v_34 = asfloat(arg_0_params[((24u + start_byte_offset) / 16u)][(((24u + start_byte_offset) % 16u) / 4u)]);
+  tint_GammaTransferParams v_35 = {v_28, v_29, v_30, v_31, v_32, v_33, v_34, arg_0_params[((28u + start_byte_offset) / 16u)][(((28u + start_byte_offset) % 16u) / 4u)]};
+  return v_35;
+}
+
+float3x4 v_36(uint start_byte_offset) {
+  float4 v_37 = asfloat(arg_0_params[(start_byte_offset / 16u)]);
+  float4 v_38 = asfloat(arg_0_params[((16u + start_byte_offset) / 16u)]);
+  return float3x4(v_37, v_38, asfloat(arg_0_params[((32u + start_byte_offset) / 16u)]));
+}
+
+tint_ExternalTextureParams v_39(uint start_byte_offset) {
+  uint v_40 = arg_0_params[(start_byte_offset / 16u)][((start_byte_offset % 16u) / 4u)];
+  uint v_41 = arg_0_params[((4u + start_byte_offset) / 16u)][(((4u + start_byte_offset) % 16u) / 4u)];
+  float3x4 v_42 = v_36((16u + start_byte_offset));
+  tint_GammaTransferParams v_43 = v_27((64u + start_byte_offset));
+  tint_GammaTransferParams v_44 = v_27((96u + start_byte_offset));
+  float3x3 v_45 = v_24((128u + start_byte_offset));
+  float3x2 v_46 = v_18((176u + start_byte_offset));
+  float3x2 v_47 = v_18((200u + start_byte_offset));
+  uint4 v_48 = arg_0_params[((224u + start_byte_offset) / 16u)];
+  float2 v_49 = asfloat(((((((224u + start_byte_offset) % 16u) / 4u) == 2u)) ? (v_48.zw) : (v_48.xy)));
+  uint4 v_50 = arg_0_params[((232u + start_byte_offset) / 16u)];
+  float2 v_51 = asfloat(((((((232u + start_byte_offset) % 16u) / 4u) == 2u)) ? (v_50.zw) : (v_50.xy)));
+  uint4 v_52 = arg_0_params[((240u + start_byte_offset) / 16u)];
+  float2 v_53 = asfloat(((((((240u + start_byte_offset) % 16u) / 4u) == 2u)) ? (v_52.zw) : (v_52.xy)));
+  uint4 v_54 = arg_0_params[((248u + start_byte_offset) / 16u)];
+  float2 v_55 = asfloat(((((((248u + start_byte_offset) % 16u) / 4u) == 2u)) ? (v_54.zw) : (v_54.xy)));
+  uint4 v_56 = arg_0_params[((256u + start_byte_offset) / 16u)];
+  uint2 v_57 = ((((((256u + start_byte_offset) % 16u) / 4u) == 2u)) ? (v_56.zw) : (v_56.xy));
+  uint4 v_58 = arg_0_params[((264u + start_byte_offset) / 16u)];
+  tint_GammaTransferParams v_59 = v_43;
+  tint_GammaTransferParams v_60 = v_44;
+  tint_ExternalTextureParams v_61 = {v_40, v_41, v_42, v_59, v_60, v_45, v_46, v_47, v_49, v_51, v_53, v_55, v_57, asfloat(((((((264u + start_byte_offset) % 16u) / 4u) == 2u)) ? (v_58.zw) : (v_58.xy)))};
+  return v_61;
+}
+
+float4 textureLoad_1bfdfb() {
+  Texture2D<float4> v_62 = arg_0_plane0;
+  Texture2D<float4> v_63 = arg_0_plane1;
+  tint_ExternalTextureParams v_64 = v_39(0u);
+  float4 res = tint_TextureLoadExternal(v_62, v_63, v_64, (1u).xx);
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store4(0u, asuint(textureLoad_1bfdfb()));
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store4(0u, asuint(textureLoad_1bfdfb()));
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = textureLoad_1bfdfb();
+  VertexOutput v_65 = tint_symbol;
+  return v_65;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_66 = vertex_main_inner();
+  VertexOutput v_67 = v_66;
+  VertexOutput v_68 = v_66;
+  vertex_main_outputs v_69 = {v_68.prevent_dce, v_67.pos};
+  return v_69;
+}
+
diff --git a/test/tint/builtins/gen/literal/textureLoad/1c562a.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/textureLoad/1c562a.wgsl.expected.ir.dxc.hlsl
index fd28383..c7fe21b 100644
--- a/test/tint/builtins/gen/literal/textureLoad/1c562a.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureLoad/1c562a.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,45 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  uint4 prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureLoad
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation uint4 VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+Texture3D<uint4> arg_0 : register(t0, space1);
+uint4 textureLoad_1c562a() {
+  Texture3D<uint4> v = arg_0;
+  int3 v_1 = int3((1u).xxx);
+  uint4 res = uint4(v.Load(int4(v_1, int(1u))));
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store4(0u, textureLoad_1c562a());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store4(0u, textureLoad_1c562a());
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = textureLoad_1c562a();
+  VertexOutput v_2 = tint_symbol;
+  return v_2;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_3 = vertex_main_inner();
+  VertexOutput v_4 = v_3;
+  VertexOutput v_5 = v_3;
+  vertex_main_outputs v_6 = {v_5.prevent_dce, v_4.pos};
+  return v_6;
+}
+
diff --git a/test/tint/builtins/gen/literal/textureLoad/1c562a.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/textureLoad/1c562a.wgsl.expected.ir.fxc.hlsl
index fd28383..c7fe21b 100644
--- a/test/tint/builtins/gen/literal/textureLoad/1c562a.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureLoad/1c562a.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,45 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  uint4 prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureLoad
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation uint4 VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+Texture3D<uint4> arg_0 : register(t0, space1);
+uint4 textureLoad_1c562a() {
+  Texture3D<uint4> v = arg_0;
+  int3 v_1 = int3((1u).xxx);
+  uint4 res = uint4(v.Load(int4(v_1, int(1u))));
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store4(0u, textureLoad_1c562a());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store4(0u, textureLoad_1c562a());
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = textureLoad_1c562a();
+  VertexOutput v_2 = tint_symbol;
+  return v_2;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_3 = vertex_main_inner();
+  VertexOutput v_4 = v_3;
+  VertexOutput v_5 = v_3;
+  vertex_main_outputs v_6 = {v_5.prevent_dce, v_4.pos};
+  return v_6;
+}
+
diff --git a/test/tint/builtins/gen/literal/textureLoad/1d43ae.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/textureLoad/1d43ae.wgsl.expected.ir.dxc.hlsl
index fd28383..334e6e8e 100644
--- a/test/tint/builtins/gen/literal/textureLoad/1d43ae.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureLoad/1d43ae.wgsl.expected.ir.dxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureLoad
+..\..\src\tint\utils\containers\slice.h:216 internal compiler error: TINT_ASSERT(i < Length())
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/literal/textureLoad/1d43ae.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/textureLoad/1d43ae.wgsl.expected.ir.fxc.hlsl
index fd28383..334e6e8e 100644
--- a/test/tint/builtins/gen/literal/textureLoad/1d43ae.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureLoad/1d43ae.wgsl.expected.ir.fxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureLoad
+..\..\src\tint\utils\containers\slice.h:216 internal compiler error: TINT_ASSERT(i < Length())
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/literal/textureLoad/1e6baa.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/textureLoad/1e6baa.wgsl.expected.ir.dxc.hlsl
index fd28383..334e6e8e 100644
--- a/test/tint/builtins/gen/literal/textureLoad/1e6baa.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureLoad/1e6baa.wgsl.expected.ir.dxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureLoad
+..\..\src\tint\utils\containers\slice.h:216 internal compiler error: TINT_ASSERT(i < Length())
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/literal/textureLoad/1e6baa.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/textureLoad/1e6baa.wgsl.expected.ir.fxc.hlsl
index fd28383..334e6e8e 100644
--- a/test/tint/builtins/gen/literal/textureLoad/1e6baa.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureLoad/1e6baa.wgsl.expected.ir.fxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureLoad
+..\..\src\tint\utils\containers\slice.h:216 internal compiler error: TINT_ASSERT(i < Length())
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/literal/textureLoad/1eb93f.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/textureLoad/1eb93f.wgsl.expected.ir.dxc.hlsl
index fd28383..334e6e8e 100644
--- a/test/tint/builtins/gen/literal/textureLoad/1eb93f.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureLoad/1eb93f.wgsl.expected.ir.dxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureLoad
+..\..\src\tint\utils\containers\slice.h:216 internal compiler error: TINT_ASSERT(i < Length())
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/literal/textureLoad/1eb93f.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/textureLoad/1eb93f.wgsl.expected.ir.fxc.hlsl
index fd28383..334e6e8e 100644
--- a/test/tint/builtins/gen/literal/textureLoad/1eb93f.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureLoad/1eb93f.wgsl.expected.ir.fxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureLoad
+..\..\src\tint\utils\containers\slice.h:216 internal compiler error: TINT_ASSERT(i < Length())
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/literal/textureLoad/1f2016.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/textureLoad/1f2016.wgsl.expected.ir.dxc.hlsl
index fd28383..6535915 100644
--- a/test/tint/builtins/gen/literal/textureLoad/1f2016.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureLoad/1f2016.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,45 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  float4 prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureLoad
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation float4 VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+Texture3D<float4> arg_0 : register(t0, space1);
+float4 textureLoad_1f2016() {
+  Texture3D<float4> v = arg_0;
+  int3 v_1 = int3((1).xxx);
+  float4 res = float4(v.Load(int4(v_1, int(1))));
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store4(0u, asuint(textureLoad_1f2016()));
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store4(0u, asuint(textureLoad_1f2016()));
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = textureLoad_1f2016();
+  VertexOutput v_2 = tint_symbol;
+  return v_2;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_3 = vertex_main_inner();
+  VertexOutput v_4 = v_3;
+  VertexOutput v_5 = v_3;
+  vertex_main_outputs v_6 = {v_5.prevent_dce, v_4.pos};
+  return v_6;
+}
+
diff --git a/test/tint/builtins/gen/literal/textureLoad/1f2016.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/textureLoad/1f2016.wgsl.expected.ir.fxc.hlsl
index fd28383..6535915 100644
--- a/test/tint/builtins/gen/literal/textureLoad/1f2016.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureLoad/1f2016.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,45 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  float4 prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureLoad
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation float4 VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+Texture3D<float4> arg_0 : register(t0, space1);
+float4 textureLoad_1f2016() {
+  Texture3D<float4> v = arg_0;
+  int3 v_1 = int3((1).xxx);
+  float4 res = float4(v.Load(int4(v_1, int(1))));
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store4(0u, asuint(textureLoad_1f2016()));
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store4(0u, asuint(textureLoad_1f2016()));
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = textureLoad_1f2016();
+  VertexOutput v_2 = tint_symbol;
+  return v_2;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_3 = vertex_main_inner();
+  VertexOutput v_4 = v_3;
+  VertexOutput v_5 = v_3;
+  vertex_main_outputs v_6 = {v_5.prevent_dce, v_4.pos};
+  return v_6;
+}
+
diff --git a/test/tint/builtins/gen/literal/textureLoad/1fde63.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/textureLoad/1fde63.wgsl.expected.ir.dxc.hlsl
index fd28383..334e6e8e 100644
--- a/test/tint/builtins/gen/literal/textureLoad/1fde63.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureLoad/1fde63.wgsl.expected.ir.dxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureLoad
+..\..\src\tint\utils\containers\slice.h:216 internal compiler error: TINT_ASSERT(i < Length())
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/literal/textureLoad/1fde63.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/textureLoad/1fde63.wgsl.expected.ir.fxc.hlsl
index fd28383..334e6e8e 100644
--- a/test/tint/builtins/gen/literal/textureLoad/1fde63.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureLoad/1fde63.wgsl.expected.ir.fxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureLoad
+..\..\src\tint\utils\containers\slice.h:216 internal compiler error: TINT_ASSERT(i < Length())
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/literal/textureLoad/206a08.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/textureLoad/206a08.wgsl.expected.ir.dxc.hlsl
index fd28383..334e6e8e 100644
--- a/test/tint/builtins/gen/literal/textureLoad/206a08.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureLoad/206a08.wgsl.expected.ir.dxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureLoad
+..\..\src\tint\utils\containers\slice.h:216 internal compiler error: TINT_ASSERT(i < Length())
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/literal/textureLoad/206a08.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/textureLoad/206a08.wgsl.expected.ir.fxc.hlsl
index fd28383..334e6e8e 100644
--- a/test/tint/builtins/gen/literal/textureLoad/206a08.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureLoad/206a08.wgsl.expected.ir.fxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureLoad
+..\..\src\tint\utils\containers\slice.h:216 internal compiler error: TINT_ASSERT(i < Length())
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/literal/textureLoad/20fa2f.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/textureLoad/20fa2f.wgsl.expected.ir.dxc.hlsl
index fd28383..334e6e8e 100644
--- a/test/tint/builtins/gen/literal/textureLoad/20fa2f.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureLoad/20fa2f.wgsl.expected.ir.dxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureLoad
+..\..\src\tint\utils\containers\slice.h:216 internal compiler error: TINT_ASSERT(i < Length())
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/literal/textureLoad/20fa2f.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/textureLoad/20fa2f.wgsl.expected.ir.fxc.hlsl
index fd28383..334e6e8e 100644
--- a/test/tint/builtins/gen/literal/textureLoad/20fa2f.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureLoad/20fa2f.wgsl.expected.ir.fxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureLoad
+..\..\src\tint\utils\containers\slice.h:216 internal compiler error: TINT_ASSERT(i < Length())
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/literal/textureLoad/216c37.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/textureLoad/216c37.wgsl.expected.ir.dxc.hlsl
index fd28383..6ce81f6 100644
--- a/test/tint/builtins/gen/literal/textureLoad/216c37.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureLoad/216c37.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,45 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  uint4 prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureLoad
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation uint4 VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+Texture1D<uint4> arg_0 : register(t0, space1);
+uint4 textureLoad_216c37() {
+  Texture1D<uint4> v = arg_0;
+  int v_1 = int(1u);
+  uint4 res = uint4(v.Load(int2(v_1, int(1))));
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store4(0u, textureLoad_216c37());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store4(0u, textureLoad_216c37());
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = textureLoad_216c37();
+  VertexOutput v_2 = tint_symbol;
+  return v_2;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_3 = vertex_main_inner();
+  VertexOutput v_4 = v_3;
+  VertexOutput v_5 = v_3;
+  vertex_main_outputs v_6 = {v_5.prevent_dce, v_4.pos};
+  return v_6;
+}
+
diff --git a/test/tint/builtins/gen/literal/textureLoad/216c37.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/textureLoad/216c37.wgsl.expected.ir.fxc.hlsl
index fd28383..6ce81f6 100644
--- a/test/tint/builtins/gen/literal/textureLoad/216c37.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureLoad/216c37.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,45 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  uint4 prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureLoad
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation uint4 VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+Texture1D<uint4> arg_0 : register(t0, space1);
+uint4 textureLoad_216c37() {
+  Texture1D<uint4> v = arg_0;
+  int v_1 = int(1u);
+  uint4 res = uint4(v.Load(int2(v_1, int(1))));
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store4(0u, textureLoad_216c37());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store4(0u, textureLoad_216c37());
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = textureLoad_216c37();
+  VertexOutput v_2 = tint_symbol;
+  return v_2;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_3 = vertex_main_inner();
+  VertexOutput v_4 = v_3;
+  VertexOutput v_5 = v_3;
+  vertex_main_outputs v_6 = {v_5.prevent_dce, v_4.pos};
+  return v_6;
+}
+
diff --git a/test/tint/builtins/gen/literal/textureLoad/21d1c4.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/textureLoad/21d1c4.wgsl.expected.ir.dxc.hlsl
index fd28383..88778c0 100644
--- a/test/tint/builtins/gen/literal/textureLoad/21d1c4.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureLoad/21d1c4.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,45 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  float4 prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureLoad
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation float4 VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+Texture3D<float4> arg_0 : register(t0, space1);
+float4 textureLoad_21d1c4() {
+  Texture3D<float4> v = arg_0;
+  int3 v_1 = int3((1u).xxx);
+  float4 res = float4(v.Load(int4(v_1, int(1u))));
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store4(0u, asuint(textureLoad_21d1c4()));
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store4(0u, asuint(textureLoad_21d1c4()));
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = textureLoad_21d1c4();
+  VertexOutput v_2 = tint_symbol;
+  return v_2;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_3 = vertex_main_inner();
+  VertexOutput v_4 = v_3;
+  VertexOutput v_5 = v_3;
+  vertex_main_outputs v_6 = {v_5.prevent_dce, v_4.pos};
+  return v_6;
+}
+
diff --git a/test/tint/builtins/gen/literal/textureLoad/21d1c4.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/textureLoad/21d1c4.wgsl.expected.ir.fxc.hlsl
index fd28383..88778c0 100644
--- a/test/tint/builtins/gen/literal/textureLoad/21d1c4.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureLoad/21d1c4.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,45 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  float4 prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureLoad
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation float4 VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+Texture3D<float4> arg_0 : register(t0, space1);
+float4 textureLoad_21d1c4() {
+  Texture3D<float4> v = arg_0;
+  int3 v_1 = int3((1u).xxx);
+  float4 res = float4(v.Load(int4(v_1, int(1u))));
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store4(0u, asuint(textureLoad_21d1c4()));
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store4(0u, asuint(textureLoad_21d1c4()));
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = textureLoad_21d1c4();
+  VertexOutput v_2 = tint_symbol;
+  return v_2;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_3 = vertex_main_inner();
+  VertexOutput v_4 = v_3;
+  VertexOutput v_5 = v_3;
+  vertex_main_outputs v_6 = {v_5.prevent_dce, v_4.pos};
+  return v_6;
+}
+
diff --git a/test/tint/builtins/gen/literal/textureLoad/223246.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/textureLoad/223246.wgsl.expected.ir.dxc.hlsl
index fd28383..3329c65 100644
--- a/test/tint/builtins/gen/literal/textureLoad/223246.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureLoad/223246.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,45 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  int4 prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureLoad
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation int4 VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+Texture3D<int4> arg_0 : register(t0, space1);
+int4 textureLoad_223246() {
+  Texture3D<int4> v = arg_0;
+  int3 v_1 = int3((1u).xxx);
+  int4 res = int4(v.Load(int4(v_1, int(1))));
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store4(0u, asuint(textureLoad_223246()));
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store4(0u, asuint(textureLoad_223246()));
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = textureLoad_223246();
+  VertexOutput v_2 = tint_symbol;
+  return v_2;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_3 = vertex_main_inner();
+  VertexOutput v_4 = v_3;
+  VertexOutput v_5 = v_3;
+  vertex_main_outputs v_6 = {v_5.prevent_dce, v_4.pos};
+  return v_6;
+}
+
diff --git a/test/tint/builtins/gen/literal/textureLoad/223246.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/textureLoad/223246.wgsl.expected.ir.fxc.hlsl
index fd28383..3329c65 100644
--- a/test/tint/builtins/gen/literal/textureLoad/223246.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureLoad/223246.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,45 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  int4 prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureLoad
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation int4 VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+Texture3D<int4> arg_0 : register(t0, space1);
+int4 textureLoad_223246() {
+  Texture3D<int4> v = arg_0;
+  int3 v_1 = int3((1u).xxx);
+  int4 res = int4(v.Load(int4(v_1, int(1))));
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store4(0u, asuint(textureLoad_223246()));
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store4(0u, asuint(textureLoad_223246()));
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = textureLoad_223246();
+  VertexOutput v_2 = tint_symbol;
+  return v_2;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_3 = vertex_main_inner();
+  VertexOutput v_4 = v_3;
+  VertexOutput v_5 = v_3;
+  vertex_main_outputs v_6 = {v_5.prevent_dce, v_4.pos};
+  return v_6;
+}
+
diff --git a/test/tint/builtins/gen/literal/textureLoad/22e963.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/textureLoad/22e963.wgsl.expected.ir.dxc.hlsl
index fd28383..334e6e8e 100644
--- a/test/tint/builtins/gen/literal/textureLoad/22e963.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureLoad/22e963.wgsl.expected.ir.dxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureLoad
+..\..\src\tint\utils\containers\slice.h:216 internal compiler error: TINT_ASSERT(i < Length())
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/literal/textureLoad/22e963.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/textureLoad/22e963.wgsl.expected.ir.fxc.hlsl
index fd28383..334e6e8e 100644
--- a/test/tint/builtins/gen/literal/textureLoad/22e963.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureLoad/22e963.wgsl.expected.ir.fxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureLoad
+..\..\src\tint\utils\containers\slice.h:216 internal compiler error: TINT_ASSERT(i < Length())
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/literal/textureLoad/23007a.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/textureLoad/23007a.wgsl.expected.ir.dxc.hlsl
index fd28383..334e6e8e 100644
--- a/test/tint/builtins/gen/literal/textureLoad/23007a.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureLoad/23007a.wgsl.expected.ir.dxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureLoad
+..\..\src\tint\utils\containers\slice.h:216 internal compiler error: TINT_ASSERT(i < Length())
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/literal/textureLoad/23007a.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/textureLoad/23007a.wgsl.expected.ir.fxc.hlsl
index fd28383..334e6e8e 100644
--- a/test/tint/builtins/gen/literal/textureLoad/23007a.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureLoad/23007a.wgsl.expected.ir.fxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureLoad
+..\..\src\tint\utils\containers\slice.h:216 internal compiler error: TINT_ASSERT(i < Length())
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/literal/textureLoad/2363be.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/textureLoad/2363be.wgsl.expected.ir.dxc.hlsl
index fd28383..0f9cede 100644
--- a/test/tint/builtins/gen/literal/textureLoad/2363be.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureLoad/2363be.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,46 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  int4 prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureLoad
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation int4 VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+Texture2DArray<int4> arg_0 : register(t0, space1);
+int4 textureLoad_2363be() {
+  Texture2DArray<int4> v = arg_0;
+  int2 v_1 = int2((1u).xx);
+  int v_2 = int(1);
+  int4 res = int4(v.Load(int4(v_1, v_2, int(1u))));
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store4(0u, asuint(textureLoad_2363be()));
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store4(0u, asuint(textureLoad_2363be()));
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = textureLoad_2363be();
+  VertexOutput v_3 = tint_symbol;
+  return v_3;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_4 = vertex_main_inner();
+  VertexOutput v_5 = v_4;
+  VertexOutput v_6 = v_4;
+  vertex_main_outputs v_7 = {v_6.prevent_dce, v_5.pos};
+  return v_7;
+}
+
diff --git a/test/tint/builtins/gen/literal/textureLoad/2363be.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/textureLoad/2363be.wgsl.expected.ir.fxc.hlsl
index fd28383..0f9cede 100644
--- a/test/tint/builtins/gen/literal/textureLoad/2363be.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureLoad/2363be.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,46 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  int4 prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureLoad
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation int4 VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+Texture2DArray<int4> arg_0 : register(t0, space1);
+int4 textureLoad_2363be() {
+  Texture2DArray<int4> v = arg_0;
+  int2 v_1 = int2((1u).xx);
+  int v_2 = int(1);
+  int4 res = int4(v.Load(int4(v_1, v_2, int(1u))));
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store4(0u, asuint(textureLoad_2363be()));
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store4(0u, asuint(textureLoad_2363be()));
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = textureLoad_2363be();
+  VertexOutput v_3 = tint_symbol;
+  return v_3;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_4 = vertex_main_inner();
+  VertexOutput v_5 = v_4;
+  VertexOutput v_6 = v_4;
+  vertex_main_outputs v_7 = {v_6.prevent_dce, v_5.pos};
+  return v_7;
+}
+
diff --git a/test/tint/builtins/gen/literal/textureLoad/23ff89.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/textureLoad/23ff89.wgsl.expected.ir.dxc.hlsl
index fd28383..334e6e8e 100644
--- a/test/tint/builtins/gen/literal/textureLoad/23ff89.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureLoad/23ff89.wgsl.expected.ir.dxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureLoad
+..\..\src\tint\utils\containers\slice.h:216 internal compiler error: TINT_ASSERT(i < Length())
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/literal/textureLoad/23ff89.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/textureLoad/23ff89.wgsl.expected.ir.fxc.hlsl
index fd28383..334e6e8e 100644
--- a/test/tint/builtins/gen/literal/textureLoad/23ff89.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureLoad/23ff89.wgsl.expected.ir.fxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureLoad
+..\..\src\tint\utils\containers\slice.h:216 internal compiler error: TINT_ASSERT(i < Length())
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/literal/textureLoad/25b67f.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/textureLoad/25b67f.wgsl.expected.ir.dxc.hlsl
index fd28383..334e6e8e 100644
--- a/test/tint/builtins/gen/literal/textureLoad/25b67f.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureLoad/25b67f.wgsl.expected.ir.dxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureLoad
+..\..\src\tint\utils\containers\slice.h:216 internal compiler error: TINT_ASSERT(i < Length())
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/literal/textureLoad/25b67f.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/textureLoad/25b67f.wgsl.expected.ir.fxc.hlsl
index fd28383..334e6e8e 100644
--- a/test/tint/builtins/gen/literal/textureLoad/25b67f.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureLoad/25b67f.wgsl.expected.ir.fxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureLoad
+..\..\src\tint\utils\containers\slice.h:216 internal compiler error: TINT_ASSERT(i < Length())
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/literal/textureLoad/26b8f6.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/textureLoad/26b8f6.wgsl.expected.ir.dxc.hlsl
index fd28383..334e6e8e 100644
--- a/test/tint/builtins/gen/literal/textureLoad/26b8f6.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureLoad/26b8f6.wgsl.expected.ir.dxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureLoad
+..\..\src\tint\utils\containers\slice.h:216 internal compiler error: TINT_ASSERT(i < Length())
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/literal/textureLoad/26b8f6.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/textureLoad/26b8f6.wgsl.expected.ir.fxc.hlsl
index fd28383..334e6e8e 100644
--- a/test/tint/builtins/gen/literal/textureLoad/26b8f6.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureLoad/26b8f6.wgsl.expected.ir.fxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureLoad
+..\..\src\tint\utils\containers\slice.h:216 internal compiler error: TINT_ASSERT(i < Length())
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/literal/textureLoad/26c4f8.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/textureLoad/26c4f8.wgsl.expected.ir.dxc.hlsl
index fd28383..334e6e8e 100644
--- a/test/tint/builtins/gen/literal/textureLoad/26c4f8.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureLoad/26c4f8.wgsl.expected.ir.dxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureLoad
+..\..\src\tint\utils\containers\slice.h:216 internal compiler error: TINT_ASSERT(i < Length())
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/literal/textureLoad/26c4f8.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/textureLoad/26c4f8.wgsl.expected.ir.fxc.hlsl
index fd28383..334e6e8e 100644
--- a/test/tint/builtins/gen/literal/textureLoad/26c4f8.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureLoad/26c4f8.wgsl.expected.ir.fxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureLoad
+..\..\src\tint\utils\containers\slice.h:216 internal compiler error: TINT_ASSERT(i < Length())
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/literal/textureLoad/26d7f1.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/textureLoad/26d7f1.wgsl.expected.ir.dxc.hlsl
index fd28383..334e6e8e 100644
--- a/test/tint/builtins/gen/literal/textureLoad/26d7f1.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureLoad/26d7f1.wgsl.expected.ir.dxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureLoad
+..\..\src\tint\utils\containers\slice.h:216 internal compiler error: TINT_ASSERT(i < Length())
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/literal/textureLoad/26d7f1.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/textureLoad/26d7f1.wgsl.expected.ir.fxc.hlsl
index fd28383..334e6e8e 100644
--- a/test/tint/builtins/gen/literal/textureLoad/26d7f1.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureLoad/26d7f1.wgsl.expected.ir.fxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureLoad
+..\..\src\tint\utils\containers\slice.h:216 internal compiler error: TINT_ASSERT(i < Length())
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/literal/textureLoad/272e7a.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/textureLoad/272e7a.wgsl.expected.ir.dxc.hlsl
index fd28383..334e6e8e 100644
--- a/test/tint/builtins/gen/literal/textureLoad/272e7a.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureLoad/272e7a.wgsl.expected.ir.dxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureLoad
+..\..\src\tint\utils\containers\slice.h:216 internal compiler error: TINT_ASSERT(i < Length())
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/literal/textureLoad/272e7a.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/textureLoad/272e7a.wgsl.expected.ir.fxc.hlsl
index fd28383..334e6e8e 100644
--- a/test/tint/builtins/gen/literal/textureLoad/272e7a.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureLoad/272e7a.wgsl.expected.ir.fxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureLoad
+..\..\src\tint\utils\containers\slice.h:216 internal compiler error: TINT_ASSERT(i < Length())
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/literal/textureLoad/276643.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/textureLoad/276643.wgsl.expected.ir.dxc.hlsl
index fd28383..334e6e8e 100644
--- a/test/tint/builtins/gen/literal/textureLoad/276643.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureLoad/276643.wgsl.expected.ir.dxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureLoad
+..\..\src\tint\utils\containers\slice.h:216 internal compiler error: TINT_ASSERT(i < Length())
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/literal/textureLoad/276643.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/textureLoad/276643.wgsl.expected.ir.fxc.hlsl
index fd28383..334e6e8e 100644
--- a/test/tint/builtins/gen/literal/textureLoad/276643.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureLoad/276643.wgsl.expected.ir.fxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureLoad
+..\..\src\tint\utils\containers\slice.h:216 internal compiler error: TINT_ASSERT(i < Length())
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/literal/textureLoad/276a2c.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/textureLoad/276a2c.wgsl.expected.ir.dxc.hlsl
index fd28383..334e6e8e 100644
--- a/test/tint/builtins/gen/literal/textureLoad/276a2c.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureLoad/276a2c.wgsl.expected.ir.dxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureLoad
+..\..\src\tint\utils\containers\slice.h:216 internal compiler error: TINT_ASSERT(i < Length())
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/literal/textureLoad/276a2c.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/textureLoad/276a2c.wgsl.expected.ir.fxc.hlsl
index fd28383..334e6e8e 100644
--- a/test/tint/builtins/gen/literal/textureLoad/276a2c.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureLoad/276a2c.wgsl.expected.ir.fxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureLoad
+..\..\src\tint\utils\containers\slice.h:216 internal compiler error: TINT_ASSERT(i < Length())
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/literal/textureLoad/2887d7.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/textureLoad/2887d7.wgsl.expected.ir.dxc.hlsl
index fd28383..334e6e8e 100644
--- a/test/tint/builtins/gen/literal/textureLoad/2887d7.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureLoad/2887d7.wgsl.expected.ir.dxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureLoad
+..\..\src\tint\utils\containers\slice.h:216 internal compiler error: TINT_ASSERT(i < Length())
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/literal/textureLoad/2887d7.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/textureLoad/2887d7.wgsl.expected.ir.fxc.hlsl
index fd28383..334e6e8e 100644
--- a/test/tint/builtins/gen/literal/textureLoad/2887d7.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureLoad/2887d7.wgsl.expected.ir.fxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureLoad
+..\..\src\tint\utils\containers\slice.h:216 internal compiler error: TINT_ASSERT(i < Length())
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/literal/textureLoad/2a82d9.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/textureLoad/2a82d9.wgsl.expected.ir.dxc.hlsl
index fd28383..334e6e8e 100644
--- a/test/tint/builtins/gen/literal/textureLoad/2a82d9.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureLoad/2a82d9.wgsl.expected.ir.dxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureLoad
+..\..\src\tint\utils\containers\slice.h:216 internal compiler error: TINT_ASSERT(i < Length())
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/literal/textureLoad/2a82d9.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/textureLoad/2a82d9.wgsl.expected.ir.fxc.hlsl
index fd28383..334e6e8e 100644
--- a/test/tint/builtins/gen/literal/textureLoad/2a82d9.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureLoad/2a82d9.wgsl.expected.ir.fxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureLoad
+..\..\src\tint\utils\containers\slice.h:216 internal compiler error: TINT_ASSERT(i < Length())
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/literal/textureLoad/2ae485.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/textureLoad/2ae485.wgsl.expected.ir.dxc.hlsl
index fd28383..334e6e8e 100644
--- a/test/tint/builtins/gen/literal/textureLoad/2ae485.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureLoad/2ae485.wgsl.expected.ir.dxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureLoad
+..\..\src\tint\utils\containers\slice.h:216 internal compiler error: TINT_ASSERT(i < Length())
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/literal/textureLoad/2ae485.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/textureLoad/2ae485.wgsl.expected.ir.fxc.hlsl
index fd28383..334e6e8e 100644
--- a/test/tint/builtins/gen/literal/textureLoad/2ae485.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureLoad/2ae485.wgsl.expected.ir.fxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureLoad
+..\..\src\tint\utils\containers\slice.h:216 internal compiler error: TINT_ASSERT(i < Length())
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/literal/textureLoad/2c72ae.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/textureLoad/2c72ae.wgsl.expected.ir.dxc.hlsl
index fd28383..334e6e8e 100644
--- a/test/tint/builtins/gen/literal/textureLoad/2c72ae.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureLoad/2c72ae.wgsl.expected.ir.dxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureLoad
+..\..\src\tint\utils\containers\slice.h:216 internal compiler error: TINT_ASSERT(i < Length())
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/literal/textureLoad/2c72ae.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/textureLoad/2c72ae.wgsl.expected.ir.fxc.hlsl
index fd28383..334e6e8e 100644
--- a/test/tint/builtins/gen/literal/textureLoad/2c72ae.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureLoad/2c72ae.wgsl.expected.ir.fxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureLoad
+..\..\src\tint\utils\containers\slice.h:216 internal compiler error: TINT_ASSERT(i < Length())
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/literal/textureLoad/2cee30.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/textureLoad/2cee30.wgsl.expected.ir.dxc.hlsl
index fd28383..334e6e8e 100644
--- a/test/tint/builtins/gen/literal/textureLoad/2cee30.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureLoad/2cee30.wgsl.expected.ir.dxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureLoad
+..\..\src\tint\utils\containers\slice.h:216 internal compiler error: TINT_ASSERT(i < Length())
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/literal/textureLoad/2cee30.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/textureLoad/2cee30.wgsl.expected.ir.fxc.hlsl
index fd28383..334e6e8e 100644
--- a/test/tint/builtins/gen/literal/textureLoad/2cee30.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureLoad/2cee30.wgsl.expected.ir.fxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureLoad
+..\..\src\tint\utils\containers\slice.h:216 internal compiler error: TINT_ASSERT(i < Length())
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/literal/textureLoad/2d479c.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/textureLoad/2d479c.wgsl.expected.ir.dxc.hlsl
index fd28383..cd8845a 100644
--- a/test/tint/builtins/gen/literal/textureLoad/2d479c.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureLoad/2d479c.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,45 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  float4 prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureLoad
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation float4 VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+Texture2D<float4> arg_0 : register(t0, space1);
+float4 textureLoad_2d479c() {
+  Texture2D<float4> v = arg_0;
+  int2 v_1 = int2((1).xx);
+  float4 res = float4(v.Load(int3(v_1, int(1u))));
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store4(0u, asuint(textureLoad_2d479c()));
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store4(0u, asuint(textureLoad_2d479c()));
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = textureLoad_2d479c();
+  VertexOutput v_2 = tint_symbol;
+  return v_2;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_3 = vertex_main_inner();
+  VertexOutput v_4 = v_3;
+  VertexOutput v_5 = v_3;
+  vertex_main_outputs v_6 = {v_5.prevent_dce, v_4.pos};
+  return v_6;
+}
+
diff --git a/test/tint/builtins/gen/literal/textureLoad/2d479c.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/textureLoad/2d479c.wgsl.expected.ir.fxc.hlsl
index fd28383..cd8845a 100644
--- a/test/tint/builtins/gen/literal/textureLoad/2d479c.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureLoad/2d479c.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,45 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  float4 prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureLoad
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation float4 VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+Texture2D<float4> arg_0 : register(t0, space1);
+float4 textureLoad_2d479c() {
+  Texture2D<float4> v = arg_0;
+  int2 v_1 = int2((1).xx);
+  float4 res = float4(v.Load(int3(v_1, int(1u))));
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store4(0u, asuint(textureLoad_2d479c()));
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store4(0u, asuint(textureLoad_2d479c()));
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = textureLoad_2d479c();
+  VertexOutput v_2 = tint_symbol;
+  return v_2;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_3 = vertex_main_inner();
+  VertexOutput v_4 = v_3;
+  VertexOutput v_5 = v_3;
+  vertex_main_outputs v_6 = {v_5.prevent_dce, v_4.pos};
+  return v_6;
+}
+
diff --git a/test/tint/builtins/gen/literal/textureLoad/2d6cf7.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/textureLoad/2d6cf7.wgsl.expected.ir.dxc.hlsl
index fd28383..334e6e8e 100644
--- a/test/tint/builtins/gen/literal/textureLoad/2d6cf7.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureLoad/2d6cf7.wgsl.expected.ir.dxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureLoad
+..\..\src\tint\utils\containers\slice.h:216 internal compiler error: TINT_ASSERT(i < Length())
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/literal/textureLoad/2d6cf7.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/textureLoad/2d6cf7.wgsl.expected.ir.fxc.hlsl
index fd28383..334e6e8e 100644
--- a/test/tint/builtins/gen/literal/textureLoad/2d6cf7.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureLoad/2d6cf7.wgsl.expected.ir.fxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureLoad
+..\..\src\tint\utils\containers\slice.h:216 internal compiler error: TINT_ASSERT(i < Length())
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/literal/textureLoad/2dbfc2.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/textureLoad/2dbfc2.wgsl.expected.ir.dxc.hlsl
index fd28383..334e6e8e 100644
--- a/test/tint/builtins/gen/literal/textureLoad/2dbfc2.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureLoad/2dbfc2.wgsl.expected.ir.dxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureLoad
+..\..\src\tint\utils\containers\slice.h:216 internal compiler error: TINT_ASSERT(i < Length())
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/literal/textureLoad/2dbfc2.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/textureLoad/2dbfc2.wgsl.expected.ir.fxc.hlsl
index fd28383..334e6e8e 100644
--- a/test/tint/builtins/gen/literal/textureLoad/2dbfc2.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureLoad/2dbfc2.wgsl.expected.ir.fxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureLoad
+..\..\src\tint\utils\containers\slice.h:216 internal compiler error: TINT_ASSERT(i < Length())
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/literal/textureLoad/2e09aa.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/textureLoad/2e09aa.wgsl.expected.ir.dxc.hlsl
index fd28383..780c661 100644
--- a/test/tint/builtins/gen/literal/textureLoad/2e09aa.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureLoad/2e09aa.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,45 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  float4 prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureLoad
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation float4 VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+Texture2DMS<float4> arg_0 : register(t0, space1);
+float4 textureLoad_2e09aa() {
+  Texture2DMS<float4> v = arg_0;
+  int2 v_1 = int2((1u).xx);
+  float4 res = float4(v.Load(v_1, int(1u)));
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store4(0u, asuint(textureLoad_2e09aa()));
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store4(0u, asuint(textureLoad_2e09aa()));
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = textureLoad_2e09aa();
+  VertexOutput v_2 = tint_symbol;
+  return v_2;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_3 = vertex_main_inner();
+  VertexOutput v_4 = v_3;
+  VertexOutput v_5 = v_3;
+  vertex_main_outputs v_6 = {v_5.prevent_dce, v_4.pos};
+  return v_6;
+}
+
diff --git a/test/tint/builtins/gen/literal/textureLoad/2e09aa.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/textureLoad/2e09aa.wgsl.expected.ir.fxc.hlsl
index fd28383..780c661 100644
--- a/test/tint/builtins/gen/literal/textureLoad/2e09aa.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureLoad/2e09aa.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,45 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  float4 prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureLoad
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation float4 VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+Texture2DMS<float4> arg_0 : register(t0, space1);
+float4 textureLoad_2e09aa() {
+  Texture2DMS<float4> v = arg_0;
+  int2 v_1 = int2((1u).xx);
+  float4 res = float4(v.Load(v_1, int(1u)));
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store4(0u, asuint(textureLoad_2e09aa()));
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store4(0u, asuint(textureLoad_2e09aa()));
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = textureLoad_2e09aa();
+  VertexOutput v_2 = tint_symbol;
+  return v_2;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_3 = vertex_main_inner();
+  VertexOutput v_4 = v_3;
+  VertexOutput v_5 = v_3;
+  vertex_main_outputs v_6 = {v_5.prevent_dce, v_4.pos};
+  return v_6;
+}
+
diff --git a/test/tint/builtins/gen/literal/textureLoad/2e3552.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/textureLoad/2e3552.wgsl.expected.ir.dxc.hlsl
index fd28383..334e6e8e 100644
--- a/test/tint/builtins/gen/literal/textureLoad/2e3552.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureLoad/2e3552.wgsl.expected.ir.dxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureLoad
+..\..\src\tint\utils\containers\slice.h:216 internal compiler error: TINT_ASSERT(i < Length())
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/literal/textureLoad/2e3552.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/textureLoad/2e3552.wgsl.expected.ir.fxc.hlsl
index fd28383..334e6e8e 100644
--- a/test/tint/builtins/gen/literal/textureLoad/2e3552.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureLoad/2e3552.wgsl.expected.ir.fxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureLoad
+..\..\src\tint\utils\containers\slice.h:216 internal compiler error: TINT_ASSERT(i < Length())
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/literal/textureLoad/2eaf31.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/textureLoad/2eaf31.wgsl.expected.ir.dxc.hlsl
index fd28383..334e6e8e 100644
--- a/test/tint/builtins/gen/literal/textureLoad/2eaf31.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureLoad/2eaf31.wgsl.expected.ir.dxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureLoad
+..\..\src\tint\utils\containers\slice.h:216 internal compiler error: TINT_ASSERT(i < Length())
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/literal/textureLoad/2eaf31.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/textureLoad/2eaf31.wgsl.expected.ir.fxc.hlsl
index fd28383..334e6e8e 100644
--- a/test/tint/builtins/gen/literal/textureLoad/2eaf31.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureLoad/2eaf31.wgsl.expected.ir.fxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureLoad
+..\..\src\tint\utils\containers\slice.h:216 internal compiler error: TINT_ASSERT(i < Length())
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/literal/textureLoad/313c73.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/textureLoad/313c73.wgsl.expected.ir.dxc.hlsl
index fd28383..334e6e8e 100644
--- a/test/tint/builtins/gen/literal/textureLoad/313c73.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureLoad/313c73.wgsl.expected.ir.dxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureLoad
+..\..\src\tint\utils\containers\slice.h:216 internal compiler error: TINT_ASSERT(i < Length())
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/literal/textureLoad/313c73.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/textureLoad/313c73.wgsl.expected.ir.fxc.hlsl
index fd28383..334e6e8e 100644
--- a/test/tint/builtins/gen/literal/textureLoad/313c73.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureLoad/313c73.wgsl.expected.ir.fxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureLoad
+..\..\src\tint\utils\containers\slice.h:216 internal compiler error: TINT_ASSERT(i < Length())
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/literal/textureLoad/31db4b.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/textureLoad/31db4b.wgsl.expected.ir.dxc.hlsl
index fd28383..334e6e8e 100644
--- a/test/tint/builtins/gen/literal/textureLoad/31db4b.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureLoad/31db4b.wgsl.expected.ir.dxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureLoad
+..\..\src\tint\utils\containers\slice.h:216 internal compiler error: TINT_ASSERT(i < Length())
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/literal/textureLoad/31db4b.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/textureLoad/31db4b.wgsl.expected.ir.fxc.hlsl
index fd28383..334e6e8e 100644
--- a/test/tint/builtins/gen/literal/textureLoad/31db4b.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureLoad/31db4b.wgsl.expected.ir.fxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureLoad
+..\..\src\tint\utils\containers\slice.h:216 internal compiler error: TINT_ASSERT(i < Length())
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/literal/textureLoad/321210.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/textureLoad/321210.wgsl.expected.ir.dxc.hlsl
index fd28383..334e6e8e 100644
--- a/test/tint/builtins/gen/literal/textureLoad/321210.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureLoad/321210.wgsl.expected.ir.dxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureLoad
+..\..\src\tint\utils\containers\slice.h:216 internal compiler error: TINT_ASSERT(i < Length())
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/literal/textureLoad/321210.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/textureLoad/321210.wgsl.expected.ir.fxc.hlsl
index fd28383..334e6e8e 100644
--- a/test/tint/builtins/gen/literal/textureLoad/321210.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureLoad/321210.wgsl.expected.ir.fxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureLoad
+..\..\src\tint\utils\containers\slice.h:216 internal compiler error: TINT_ASSERT(i < Length())
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/literal/textureLoad/32a7b8.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/textureLoad/32a7b8.wgsl.expected.ir.dxc.hlsl
index fd28383..334e6e8e 100644
--- a/test/tint/builtins/gen/literal/textureLoad/32a7b8.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureLoad/32a7b8.wgsl.expected.ir.dxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureLoad
+..\..\src\tint\utils\containers\slice.h:216 internal compiler error: TINT_ASSERT(i < Length())
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/literal/textureLoad/32a7b8.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/textureLoad/32a7b8.wgsl.expected.ir.fxc.hlsl
index fd28383..334e6e8e 100644
--- a/test/tint/builtins/gen/literal/textureLoad/32a7b8.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureLoad/32a7b8.wgsl.expected.ir.fxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureLoad
+..\..\src\tint\utils\containers\slice.h:216 internal compiler error: TINT_ASSERT(i < Length())
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/literal/textureLoad/33d3aa.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/textureLoad/33d3aa.wgsl.expected.ir.dxc.hlsl
index fd28383..334e6e8e 100644
--- a/test/tint/builtins/gen/literal/textureLoad/33d3aa.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureLoad/33d3aa.wgsl.expected.ir.dxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureLoad
+..\..\src\tint\utils\containers\slice.h:216 internal compiler error: TINT_ASSERT(i < Length())
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/literal/textureLoad/33d3aa.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/textureLoad/33d3aa.wgsl.expected.ir.fxc.hlsl
index fd28383..334e6e8e 100644
--- a/test/tint/builtins/gen/literal/textureLoad/33d3aa.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureLoad/33d3aa.wgsl.expected.ir.fxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureLoad
+..\..\src\tint\utils\containers\slice.h:216 internal compiler error: TINT_ASSERT(i < Length())
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/literal/textureLoad/348827.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/textureLoad/348827.wgsl.expected.ir.dxc.hlsl
index fd28383..334e6e8e 100644
--- a/test/tint/builtins/gen/literal/textureLoad/348827.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureLoad/348827.wgsl.expected.ir.dxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureLoad
+..\..\src\tint\utils\containers\slice.h:216 internal compiler error: TINT_ASSERT(i < Length())
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/literal/textureLoad/348827.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/textureLoad/348827.wgsl.expected.ir.fxc.hlsl
index fd28383..334e6e8e 100644
--- a/test/tint/builtins/gen/literal/textureLoad/348827.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureLoad/348827.wgsl.expected.ir.fxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureLoad
+..\..\src\tint\utils\containers\slice.h:216 internal compiler error: TINT_ASSERT(i < Length())
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/literal/textureLoad/34d97c.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/textureLoad/34d97c.wgsl.expected.ir.dxc.hlsl
index fd28383..334e6e8e 100644
--- a/test/tint/builtins/gen/literal/textureLoad/34d97c.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureLoad/34d97c.wgsl.expected.ir.dxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureLoad
+..\..\src\tint\utils\containers\slice.h:216 internal compiler error: TINT_ASSERT(i < Length())
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/literal/textureLoad/34d97c.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/textureLoad/34d97c.wgsl.expected.ir.fxc.hlsl
index fd28383..334e6e8e 100644
--- a/test/tint/builtins/gen/literal/textureLoad/34d97c.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureLoad/34d97c.wgsl.expected.ir.fxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureLoad
+..\..\src\tint\utils\containers\slice.h:216 internal compiler error: TINT_ASSERT(i < Length())
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/literal/textureLoad/35a5e2.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/textureLoad/35a5e2.wgsl.expected.ir.dxc.hlsl
index fd28383..334e6e8e 100644
--- a/test/tint/builtins/gen/literal/textureLoad/35a5e2.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureLoad/35a5e2.wgsl.expected.ir.dxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureLoad
+..\..\src\tint\utils\containers\slice.h:216 internal compiler error: TINT_ASSERT(i < Length())
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/literal/textureLoad/35a5e2.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/textureLoad/35a5e2.wgsl.expected.ir.fxc.hlsl
index fd28383..334e6e8e 100644
--- a/test/tint/builtins/gen/literal/textureLoad/35a5e2.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureLoad/35a5e2.wgsl.expected.ir.fxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureLoad
+..\..\src\tint\utils\containers\slice.h:216 internal compiler error: TINT_ASSERT(i < Length())
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/literal/textureLoad/35d464.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/textureLoad/35d464.wgsl.expected.ir.dxc.hlsl
index fd28383..334e6e8e 100644
--- a/test/tint/builtins/gen/literal/textureLoad/35d464.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureLoad/35d464.wgsl.expected.ir.dxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureLoad
+..\..\src\tint\utils\containers\slice.h:216 internal compiler error: TINT_ASSERT(i < Length())
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/literal/textureLoad/35d464.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/textureLoad/35d464.wgsl.expected.ir.fxc.hlsl
index fd28383..334e6e8e 100644
--- a/test/tint/builtins/gen/literal/textureLoad/35d464.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureLoad/35d464.wgsl.expected.ir.fxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureLoad
+..\..\src\tint\utils\containers\slice.h:216 internal compiler error: TINT_ASSERT(i < Length())
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/literal/textureLoad/374351.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/textureLoad/374351.wgsl.expected.ir.dxc.hlsl
index fd28383..334e6e8e 100644
--- a/test/tint/builtins/gen/literal/textureLoad/374351.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureLoad/374351.wgsl.expected.ir.dxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureLoad
+..\..\src\tint\utils\containers\slice.h:216 internal compiler error: TINT_ASSERT(i < Length())
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/literal/textureLoad/374351.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/textureLoad/374351.wgsl.expected.ir.fxc.hlsl
index fd28383..334e6e8e 100644
--- a/test/tint/builtins/gen/literal/textureLoad/374351.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureLoad/374351.wgsl.expected.ir.fxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureLoad
+..\..\src\tint\utils\containers\slice.h:216 internal compiler error: TINT_ASSERT(i < Length())
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/literal/textureLoad/388688.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/textureLoad/388688.wgsl.expected.ir.dxc.hlsl
index fd28383..334e6e8e 100644
--- a/test/tint/builtins/gen/literal/textureLoad/388688.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureLoad/388688.wgsl.expected.ir.dxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureLoad
+..\..\src\tint\utils\containers\slice.h:216 internal compiler error: TINT_ASSERT(i < Length())
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/literal/textureLoad/388688.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/textureLoad/388688.wgsl.expected.ir.fxc.hlsl
index fd28383..334e6e8e 100644
--- a/test/tint/builtins/gen/literal/textureLoad/388688.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureLoad/388688.wgsl.expected.ir.fxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureLoad
+..\..\src\tint\utils\containers\slice.h:216 internal compiler error: TINT_ASSERT(i < Length())
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/literal/textureLoad/38f8ab.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/textureLoad/38f8ab.wgsl.expected.ir.dxc.hlsl
index fd28383..50d1271 100644
--- a/test/tint/builtins/gen/literal/textureLoad/38f8ab.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureLoad/38f8ab.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,45 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  int4 prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureLoad
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation int4 VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+Texture2DMS<int4> arg_0 : register(t0, space1);
+int4 textureLoad_38f8ab() {
+  Texture2DMS<int4> v = arg_0;
+  int2 v_1 = int2((1).xx);
+  int4 res = int4(v.Load(v_1, int(1u)));
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store4(0u, asuint(textureLoad_38f8ab()));
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store4(0u, asuint(textureLoad_38f8ab()));
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = textureLoad_38f8ab();
+  VertexOutput v_2 = tint_symbol;
+  return v_2;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_3 = vertex_main_inner();
+  VertexOutput v_4 = v_3;
+  VertexOutput v_5 = v_3;
+  vertex_main_outputs v_6 = {v_5.prevent_dce, v_4.pos};
+  return v_6;
+}
+
diff --git a/test/tint/builtins/gen/literal/textureLoad/38f8ab.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/textureLoad/38f8ab.wgsl.expected.ir.fxc.hlsl
index fd28383..50d1271 100644
--- a/test/tint/builtins/gen/literal/textureLoad/38f8ab.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureLoad/38f8ab.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,45 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  int4 prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureLoad
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation int4 VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+Texture2DMS<int4> arg_0 : register(t0, space1);
+int4 textureLoad_38f8ab() {
+  Texture2DMS<int4> v = arg_0;
+  int2 v_1 = int2((1).xx);
+  int4 res = int4(v.Load(v_1, int(1u)));
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store4(0u, asuint(textureLoad_38f8ab()));
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store4(0u, asuint(textureLoad_38f8ab()));
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = textureLoad_38f8ab();
+  VertexOutput v_2 = tint_symbol;
+  return v_2;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_3 = vertex_main_inner();
+  VertexOutput v_4 = v_3;
+  VertexOutput v_5 = v_3;
+  vertex_main_outputs v_6 = {v_5.prevent_dce, v_4.pos};
+  return v_6;
+}
+
diff --git a/test/tint/builtins/gen/literal/textureLoad/39016c.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/textureLoad/39016c.wgsl.expected.ir.dxc.hlsl
index fd28383..334e6e8e 100644
--- a/test/tint/builtins/gen/literal/textureLoad/39016c.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureLoad/39016c.wgsl.expected.ir.dxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureLoad
+..\..\src\tint\utils\containers\slice.h:216 internal compiler error: TINT_ASSERT(i < Length())
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/literal/textureLoad/39016c.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/textureLoad/39016c.wgsl.expected.ir.fxc.hlsl
index fd28383..334e6e8e 100644
--- a/test/tint/builtins/gen/literal/textureLoad/39016c.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureLoad/39016c.wgsl.expected.ir.fxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureLoad
+..\..\src\tint\utils\containers\slice.h:216 internal compiler error: TINT_ASSERT(i < Length())
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/literal/textureLoad/395447.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/textureLoad/395447.wgsl.expected.ir.dxc.hlsl
index fd28383..334e6e8e 100644
--- a/test/tint/builtins/gen/literal/textureLoad/395447.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureLoad/395447.wgsl.expected.ir.dxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureLoad
+..\..\src\tint\utils\containers\slice.h:216 internal compiler error: TINT_ASSERT(i < Length())
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/literal/textureLoad/395447.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/textureLoad/395447.wgsl.expected.ir.fxc.hlsl
index fd28383..334e6e8e 100644
--- a/test/tint/builtins/gen/literal/textureLoad/395447.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureLoad/395447.wgsl.expected.ir.fxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureLoad
+..\..\src\tint\utils\containers\slice.h:216 internal compiler error: TINT_ASSERT(i < Length())
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/literal/textureLoad/39ef40.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/textureLoad/39ef40.wgsl.expected.ir.dxc.hlsl
index fd28383..334e6e8e 100644
--- a/test/tint/builtins/gen/literal/textureLoad/39ef40.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureLoad/39ef40.wgsl.expected.ir.dxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureLoad
+..\..\src\tint\utils\containers\slice.h:216 internal compiler error: TINT_ASSERT(i < Length())
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/literal/textureLoad/39ef40.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/textureLoad/39ef40.wgsl.expected.ir.fxc.hlsl
index fd28383..334e6e8e 100644
--- a/test/tint/builtins/gen/literal/textureLoad/39ef40.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureLoad/39ef40.wgsl.expected.ir.fxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureLoad
+..\..\src\tint\utils\containers\slice.h:216 internal compiler error: TINT_ASSERT(i < Length())
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/literal/textureLoad/3a2350.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/textureLoad/3a2350.wgsl.expected.ir.dxc.hlsl
index fd28383..334e6e8e 100644
--- a/test/tint/builtins/gen/literal/textureLoad/3a2350.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureLoad/3a2350.wgsl.expected.ir.dxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureLoad
+..\..\src\tint\utils\containers\slice.h:216 internal compiler error: TINT_ASSERT(i < Length())
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/literal/textureLoad/3a2350.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/textureLoad/3a2350.wgsl.expected.ir.fxc.hlsl
index fd28383..334e6e8e 100644
--- a/test/tint/builtins/gen/literal/textureLoad/3a2350.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureLoad/3a2350.wgsl.expected.ir.fxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureLoad
+..\..\src\tint\utils\containers\slice.h:216 internal compiler error: TINT_ASSERT(i < Length())
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/literal/textureLoad/3aea13.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/textureLoad/3aea13.wgsl.expected.ir.dxc.hlsl
index fd28383..334e6e8e 100644
--- a/test/tint/builtins/gen/literal/textureLoad/3aea13.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureLoad/3aea13.wgsl.expected.ir.dxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureLoad
+..\..\src\tint\utils\containers\slice.h:216 internal compiler error: TINT_ASSERT(i < Length())
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/literal/textureLoad/3aea13.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/textureLoad/3aea13.wgsl.expected.ir.fxc.hlsl
index fd28383..334e6e8e 100644
--- a/test/tint/builtins/gen/literal/textureLoad/3aea13.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureLoad/3aea13.wgsl.expected.ir.fxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureLoad
+..\..\src\tint\utils\containers\slice.h:216 internal compiler error: TINT_ASSERT(i < Length())
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/literal/textureLoad/3bbc2b.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/textureLoad/3bbc2b.wgsl.expected.ir.dxc.hlsl
index fd28383..334e6e8e 100644
--- a/test/tint/builtins/gen/literal/textureLoad/3bbc2b.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureLoad/3bbc2b.wgsl.expected.ir.dxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureLoad
+..\..\src\tint\utils\containers\slice.h:216 internal compiler error: TINT_ASSERT(i < Length())
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/literal/textureLoad/3bbc2b.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/textureLoad/3bbc2b.wgsl.expected.ir.fxc.hlsl
index fd28383..334e6e8e 100644
--- a/test/tint/builtins/gen/literal/textureLoad/3bbc2b.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureLoad/3bbc2b.wgsl.expected.ir.fxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureLoad
+..\..\src\tint\utils\containers\slice.h:216 internal compiler error: TINT_ASSERT(i < Length())
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/literal/textureLoad/3c0d9e.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/textureLoad/3c0d9e.wgsl.expected.ir.dxc.hlsl
index fd28383..334e6e8e 100644
--- a/test/tint/builtins/gen/literal/textureLoad/3c0d9e.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureLoad/3c0d9e.wgsl.expected.ir.dxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureLoad
+..\..\src\tint\utils\containers\slice.h:216 internal compiler error: TINT_ASSERT(i < Length())
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/literal/textureLoad/3c0d9e.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/textureLoad/3c0d9e.wgsl.expected.ir.fxc.hlsl
index fd28383..334e6e8e 100644
--- a/test/tint/builtins/gen/literal/textureLoad/3c0d9e.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureLoad/3c0d9e.wgsl.expected.ir.fxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureLoad
+..\..\src\tint\utils\containers\slice.h:216 internal compiler error: TINT_ASSERT(i < Length())
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/literal/textureLoad/3c9587.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/textureLoad/3c9587.wgsl.expected.ir.dxc.hlsl
index fd28383..334e6e8e 100644
--- a/test/tint/builtins/gen/literal/textureLoad/3c9587.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureLoad/3c9587.wgsl.expected.ir.dxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureLoad
+..\..\src\tint\utils\containers\slice.h:216 internal compiler error: TINT_ASSERT(i < Length())
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/literal/textureLoad/3c9587.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/textureLoad/3c9587.wgsl.expected.ir.fxc.hlsl
index fd28383..334e6e8e 100644
--- a/test/tint/builtins/gen/literal/textureLoad/3c9587.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureLoad/3c9587.wgsl.expected.ir.fxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureLoad
+..\..\src\tint\utils\containers\slice.h:216 internal compiler error: TINT_ASSERT(i < Length())
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/literal/textureLoad/3c96e8.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/textureLoad/3c96e8.wgsl.expected.ir.dxc.hlsl
index fd28383..8aafbd7 100644
--- a/test/tint/builtins/gen/literal/textureLoad/3c96e8.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureLoad/3c96e8.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,46 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  float4 prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureLoad
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation float4 VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+Texture2DArray<float4> arg_0 : register(t0, space1);
+float4 textureLoad_3c96e8() {
+  Texture2DArray<float4> v = arg_0;
+  int2 v_1 = int2((1).xx);
+  int v_2 = int(1u);
+  float4 res = float4(v.Load(int4(v_1, v_2, int(1u))));
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store4(0u, asuint(textureLoad_3c96e8()));
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store4(0u, asuint(textureLoad_3c96e8()));
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = textureLoad_3c96e8();
+  VertexOutput v_3 = tint_symbol;
+  return v_3;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_4 = vertex_main_inner();
+  VertexOutput v_5 = v_4;
+  VertexOutput v_6 = v_4;
+  vertex_main_outputs v_7 = {v_6.prevent_dce, v_5.pos};
+  return v_7;
+}
+
diff --git a/test/tint/builtins/gen/literal/textureLoad/3c96e8.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/textureLoad/3c96e8.wgsl.expected.ir.fxc.hlsl
index fd28383..8aafbd7 100644
--- a/test/tint/builtins/gen/literal/textureLoad/3c96e8.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureLoad/3c96e8.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,46 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  float4 prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureLoad
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation float4 VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+Texture2DArray<float4> arg_0 : register(t0, space1);
+float4 textureLoad_3c96e8() {
+  Texture2DArray<float4> v = arg_0;
+  int2 v_1 = int2((1).xx);
+  int v_2 = int(1u);
+  float4 res = float4(v.Load(int4(v_1, v_2, int(1u))));
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store4(0u, asuint(textureLoad_3c96e8()));
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store4(0u, asuint(textureLoad_3c96e8()));
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = textureLoad_3c96e8();
+  VertexOutput v_3 = tint_symbol;
+  return v_3;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_4 = vertex_main_inner();
+  VertexOutput v_5 = v_4;
+  VertexOutput v_6 = v_4;
+  vertex_main_outputs v_7 = {v_6.prevent_dce, v_5.pos};
+  return v_7;
+}
+
diff --git a/test/tint/builtins/gen/literal/textureLoad/3cfb9c.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/textureLoad/3cfb9c.wgsl.expected.ir.dxc.hlsl
index fd28383..334e6e8e 100644
--- a/test/tint/builtins/gen/literal/textureLoad/3cfb9c.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureLoad/3cfb9c.wgsl.expected.ir.dxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureLoad
+..\..\src\tint\utils\containers\slice.h:216 internal compiler error: TINT_ASSERT(i < Length())
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/literal/textureLoad/3cfb9c.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/textureLoad/3cfb9c.wgsl.expected.ir.fxc.hlsl
index fd28383..334e6e8e 100644
--- a/test/tint/builtins/gen/literal/textureLoad/3cfb9c.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureLoad/3cfb9c.wgsl.expected.ir.fxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureLoad
+..\..\src\tint\utils\containers\slice.h:216 internal compiler error: TINT_ASSERT(i < Length())
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/literal/textureLoad/3d001b.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/textureLoad/3d001b.wgsl.expected.ir.dxc.hlsl
index fd28383..334e6e8e 100644
--- a/test/tint/builtins/gen/literal/textureLoad/3d001b.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureLoad/3d001b.wgsl.expected.ir.dxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureLoad
+..\..\src\tint\utils\containers\slice.h:216 internal compiler error: TINT_ASSERT(i < Length())
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/literal/textureLoad/3d001b.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/textureLoad/3d001b.wgsl.expected.ir.fxc.hlsl
index fd28383..334e6e8e 100644
--- a/test/tint/builtins/gen/literal/textureLoad/3d001b.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureLoad/3d001b.wgsl.expected.ir.fxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureLoad
+..\..\src\tint\utils\containers\slice.h:216 internal compiler error: TINT_ASSERT(i < Length())
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/literal/textureLoad/3d3fd1.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/textureLoad/3d3fd1.wgsl.expected.ir.dxc.hlsl
index fd28383..d121e38 100644
--- a/test/tint/builtins/gen/literal/textureLoad/3d3fd1.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureLoad/3d3fd1.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,46 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  int4 prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureLoad
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation int4 VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+Texture2DArray<int4> arg_0 : register(t0, space1);
+int4 textureLoad_3d3fd1() {
+  Texture2DArray<int4> v = arg_0;
+  int2 v_1 = int2((1u).xx);
+  int v_2 = int(1u);
+  int4 res = int4(v.Load(int4(v_1, v_2, int(1))));
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store4(0u, asuint(textureLoad_3d3fd1()));
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store4(0u, asuint(textureLoad_3d3fd1()));
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = textureLoad_3d3fd1();
+  VertexOutput v_3 = tint_symbol;
+  return v_3;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_4 = vertex_main_inner();
+  VertexOutput v_5 = v_4;
+  VertexOutput v_6 = v_4;
+  vertex_main_outputs v_7 = {v_6.prevent_dce, v_5.pos};
+  return v_7;
+}
+
diff --git a/test/tint/builtins/gen/literal/textureLoad/3d3fd1.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/textureLoad/3d3fd1.wgsl.expected.ir.fxc.hlsl
index fd28383..d121e38 100644
--- a/test/tint/builtins/gen/literal/textureLoad/3d3fd1.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureLoad/3d3fd1.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,46 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  int4 prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureLoad
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation int4 VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+Texture2DArray<int4> arg_0 : register(t0, space1);
+int4 textureLoad_3d3fd1() {
+  Texture2DArray<int4> v = arg_0;
+  int2 v_1 = int2((1u).xx);
+  int v_2 = int(1u);
+  int4 res = int4(v.Load(int4(v_1, v_2, int(1))));
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store4(0u, asuint(textureLoad_3d3fd1()));
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store4(0u, asuint(textureLoad_3d3fd1()));
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = textureLoad_3d3fd1();
+  VertexOutput v_3 = tint_symbol;
+  return v_3;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_4 = vertex_main_inner();
+  VertexOutput v_5 = v_4;
+  VertexOutput v_6 = v_4;
+  vertex_main_outputs v_7 = {v_6.prevent_dce, v_5.pos};
+  return v_7;
+}
+
diff --git a/test/tint/builtins/gen/literal/textureLoad/3d9c90.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/textureLoad/3d9c90.wgsl.expected.ir.dxc.hlsl
index fd28383..334e6e8e 100644
--- a/test/tint/builtins/gen/literal/textureLoad/3d9c90.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureLoad/3d9c90.wgsl.expected.ir.dxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureLoad
+..\..\src\tint\utils\containers\slice.h:216 internal compiler error: TINT_ASSERT(i < Length())
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/literal/textureLoad/3d9c90.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/textureLoad/3d9c90.wgsl.expected.ir.fxc.hlsl
index fd28383..334e6e8e 100644
--- a/test/tint/builtins/gen/literal/textureLoad/3d9c90.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureLoad/3d9c90.wgsl.expected.ir.fxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureLoad
+..\..\src\tint\utils\containers\slice.h:216 internal compiler error: TINT_ASSERT(i < Length())
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/literal/textureLoad/3da3ed.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/textureLoad/3da3ed.wgsl.expected.ir.dxc.hlsl
index fd28383..662bbe9 100644
--- a/test/tint/builtins/gen/literal/textureLoad/3da3ed.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureLoad/3da3ed.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,45 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  float4 prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureLoad
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation float4 VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+Texture1D<float4> arg_0 : register(t0, space1);
+float4 textureLoad_3da3ed() {
+  Texture1D<float4> v = arg_0;
+  int v_1 = int(1);
+  float4 res = float4(v.Load(int2(v_1, int(1u))));
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store4(0u, asuint(textureLoad_3da3ed()));
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store4(0u, asuint(textureLoad_3da3ed()));
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = textureLoad_3da3ed();
+  VertexOutput v_2 = tint_symbol;
+  return v_2;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_3 = vertex_main_inner();
+  VertexOutput v_4 = v_3;
+  VertexOutput v_5 = v_3;
+  vertex_main_outputs v_6 = {v_5.prevent_dce, v_4.pos};
+  return v_6;
+}
+
diff --git a/test/tint/builtins/gen/literal/textureLoad/3da3ed.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/textureLoad/3da3ed.wgsl.expected.ir.fxc.hlsl
index fd28383..662bbe9 100644
--- a/test/tint/builtins/gen/literal/textureLoad/3da3ed.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureLoad/3da3ed.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,45 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  float4 prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureLoad
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation float4 VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+Texture1D<float4> arg_0 : register(t0, space1);
+float4 textureLoad_3da3ed() {
+  Texture1D<float4> v = arg_0;
+  int v_1 = int(1);
+  float4 res = float4(v.Load(int2(v_1, int(1u))));
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store4(0u, asuint(textureLoad_3da3ed()));
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store4(0u, asuint(textureLoad_3da3ed()));
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = textureLoad_3da3ed();
+  VertexOutput v_2 = tint_symbol;
+  return v_2;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_3 = vertex_main_inner();
+  VertexOutput v_4 = v_3;
+  VertexOutput v_5 = v_3;
+  vertex_main_outputs v_6 = {v_5.prevent_dce, v_4.pos};
+  return v_6;
+}
+
diff --git a/test/tint/builtins/gen/literal/textureLoad/3e16a8.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/textureLoad/3e16a8.wgsl.expected.ir.dxc.hlsl
index fd28383..334e6e8e 100644
--- a/test/tint/builtins/gen/literal/textureLoad/3e16a8.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureLoad/3e16a8.wgsl.expected.ir.dxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureLoad
+..\..\src\tint\utils\containers\slice.h:216 internal compiler error: TINT_ASSERT(i < Length())
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/literal/textureLoad/3e16a8.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/textureLoad/3e16a8.wgsl.expected.ir.fxc.hlsl
index fd28383..334e6e8e 100644
--- a/test/tint/builtins/gen/literal/textureLoad/3e16a8.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureLoad/3e16a8.wgsl.expected.ir.fxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureLoad
+..\..\src\tint\utils\containers\slice.h:216 internal compiler error: TINT_ASSERT(i < Length())
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/literal/textureLoad/3e5f6a.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/textureLoad/3e5f6a.wgsl.expected.ir.dxc.hlsl
index fd28383..334e6e8e 100644
--- a/test/tint/builtins/gen/literal/textureLoad/3e5f6a.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureLoad/3e5f6a.wgsl.expected.ir.dxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureLoad
+..\..\src\tint\utils\containers\slice.h:216 internal compiler error: TINT_ASSERT(i < Length())
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/literal/textureLoad/3e5f6a.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/textureLoad/3e5f6a.wgsl.expected.ir.fxc.hlsl
index fd28383..334e6e8e 100644
--- a/test/tint/builtins/gen/literal/textureLoad/3e5f6a.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureLoad/3e5f6a.wgsl.expected.ir.fxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureLoad
+..\..\src\tint\utils\containers\slice.h:216 internal compiler error: TINT_ASSERT(i < Length())
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/literal/textureLoad/40ee8b.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/textureLoad/40ee8b.wgsl.expected.ir.dxc.hlsl
index fd28383..334e6e8e 100644
--- a/test/tint/builtins/gen/literal/textureLoad/40ee8b.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureLoad/40ee8b.wgsl.expected.ir.dxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureLoad
+..\..\src\tint\utils\containers\slice.h:216 internal compiler error: TINT_ASSERT(i < Length())
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/literal/textureLoad/40ee8b.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/textureLoad/40ee8b.wgsl.expected.ir.fxc.hlsl
index fd28383..334e6e8e 100644
--- a/test/tint/builtins/gen/literal/textureLoad/40ee8b.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureLoad/40ee8b.wgsl.expected.ir.fxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureLoad
+..\..\src\tint\utils\containers\slice.h:216 internal compiler error: TINT_ASSERT(i < Length())
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/literal/textureLoad/4212a1.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/textureLoad/4212a1.wgsl.expected.ir.dxc.hlsl
index fd28383..334e6e8e 100644
--- a/test/tint/builtins/gen/literal/textureLoad/4212a1.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureLoad/4212a1.wgsl.expected.ir.dxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureLoad
+..\..\src\tint\utils\containers\slice.h:216 internal compiler error: TINT_ASSERT(i < Length())
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/literal/textureLoad/4212a1.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/textureLoad/4212a1.wgsl.expected.ir.fxc.hlsl
index fd28383..334e6e8e 100644
--- a/test/tint/builtins/gen/literal/textureLoad/4212a1.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureLoad/4212a1.wgsl.expected.ir.fxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureLoad
+..\..\src\tint\utils\containers\slice.h:216 internal compiler error: TINT_ASSERT(i < Length())
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/literal/textureLoad/424afd.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/textureLoad/424afd.wgsl.expected.ir.dxc.hlsl
index fd28383..334e6e8e 100644
--- a/test/tint/builtins/gen/literal/textureLoad/424afd.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureLoad/424afd.wgsl.expected.ir.dxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureLoad
+..\..\src\tint\utils\containers\slice.h:216 internal compiler error: TINT_ASSERT(i < Length())
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/literal/textureLoad/424afd.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/textureLoad/424afd.wgsl.expected.ir.fxc.hlsl
index fd28383..334e6e8e 100644
--- a/test/tint/builtins/gen/literal/textureLoad/424afd.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureLoad/424afd.wgsl.expected.ir.fxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureLoad
+..\..\src\tint\utils\containers\slice.h:216 internal compiler error: TINT_ASSERT(i < Length())
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/literal/textureLoad/42a631.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/textureLoad/42a631.wgsl.expected.ir.dxc.hlsl
index fd28383..334e6e8e 100644
--- a/test/tint/builtins/gen/literal/textureLoad/42a631.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureLoad/42a631.wgsl.expected.ir.dxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureLoad
+..\..\src\tint\utils\containers\slice.h:216 internal compiler error: TINT_ASSERT(i < Length())
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/literal/textureLoad/42a631.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/textureLoad/42a631.wgsl.expected.ir.fxc.hlsl
index fd28383..334e6e8e 100644
--- a/test/tint/builtins/gen/literal/textureLoad/42a631.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureLoad/42a631.wgsl.expected.ir.fxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureLoad
+..\..\src\tint\utils\containers\slice.h:216 internal compiler error: TINT_ASSERT(i < Length())
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/literal/textureLoad/43484a.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/textureLoad/43484a.wgsl.expected.ir.dxc.hlsl
index fd28383..334e6e8e 100644
--- a/test/tint/builtins/gen/literal/textureLoad/43484a.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureLoad/43484a.wgsl.expected.ir.dxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureLoad
+..\..\src\tint\utils\containers\slice.h:216 internal compiler error: TINT_ASSERT(i < Length())
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/literal/textureLoad/43484a.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/textureLoad/43484a.wgsl.expected.ir.fxc.hlsl
index fd28383..334e6e8e 100644
--- a/test/tint/builtins/gen/literal/textureLoad/43484a.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureLoad/43484a.wgsl.expected.ir.fxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureLoad
+..\..\src\tint\utils\containers\slice.h:216 internal compiler error: TINT_ASSERT(i < Length())
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/literal/textureLoad/439e2a.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/textureLoad/439e2a.wgsl.expected.ir.dxc.hlsl
index fd28383..0d212b9 100644
--- a/test/tint/builtins/gen/literal/textureLoad/439e2a.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureLoad/439e2a.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,45 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  float4 prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureLoad
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation float4 VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+Texture2D<float4> arg_0 : register(t0, space1);
+float4 textureLoad_439e2a() {
+  Texture2D<float4> v = arg_0;
+  int2 v_1 = int2((1u).xx);
+  float4 res = float4(v.Load(int3(v_1, int(1))));
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store4(0u, asuint(textureLoad_439e2a()));
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store4(0u, asuint(textureLoad_439e2a()));
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = textureLoad_439e2a();
+  VertexOutput v_2 = tint_symbol;
+  return v_2;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_3 = vertex_main_inner();
+  VertexOutput v_4 = v_3;
+  VertexOutput v_5 = v_3;
+  vertex_main_outputs v_6 = {v_5.prevent_dce, v_4.pos};
+  return v_6;
+}
+
diff --git a/test/tint/builtins/gen/literal/textureLoad/439e2a.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/textureLoad/439e2a.wgsl.expected.ir.fxc.hlsl
index fd28383..0d212b9 100644
--- a/test/tint/builtins/gen/literal/textureLoad/439e2a.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureLoad/439e2a.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,45 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  float4 prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureLoad
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation float4 VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+Texture2D<float4> arg_0 : register(t0, space1);
+float4 textureLoad_439e2a() {
+  Texture2D<float4> v = arg_0;
+  int2 v_1 = int2((1u).xx);
+  float4 res = float4(v.Load(int3(v_1, int(1))));
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store4(0u, asuint(textureLoad_439e2a()));
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store4(0u, asuint(textureLoad_439e2a()));
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = textureLoad_439e2a();
+  VertexOutput v_2 = tint_symbol;
+  return v_2;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_3 = vertex_main_inner();
+  VertexOutput v_4 = v_3;
+  VertexOutput v_5 = v_3;
+  vertex_main_outputs v_6 = {v_5.prevent_dce, v_4.pos};
+  return v_6;
+}
+
diff --git a/test/tint/builtins/gen/literal/textureLoad/43cd86.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/textureLoad/43cd86.wgsl.expected.ir.dxc.hlsl
index fd28383..334e6e8e 100644
--- a/test/tint/builtins/gen/literal/textureLoad/43cd86.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureLoad/43cd86.wgsl.expected.ir.dxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureLoad
+..\..\src\tint\utils\containers\slice.h:216 internal compiler error: TINT_ASSERT(i < Length())
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/literal/textureLoad/43cd86.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/textureLoad/43cd86.wgsl.expected.ir.fxc.hlsl
index fd28383..334e6e8e 100644
--- a/test/tint/builtins/gen/literal/textureLoad/43cd86.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureLoad/43cd86.wgsl.expected.ir.fxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureLoad
+..\..\src\tint\utils\containers\slice.h:216 internal compiler error: TINT_ASSERT(i < Length())
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/literal/textureLoad/44c826.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/textureLoad/44c826.wgsl.expected.ir.dxc.hlsl
index fd28383..334e6e8e 100644
--- a/test/tint/builtins/gen/literal/textureLoad/44c826.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureLoad/44c826.wgsl.expected.ir.dxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureLoad
+..\..\src\tint\utils\containers\slice.h:216 internal compiler error: TINT_ASSERT(i < Length())
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/literal/textureLoad/44c826.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/textureLoad/44c826.wgsl.expected.ir.fxc.hlsl
index fd28383..334e6e8e 100644
--- a/test/tint/builtins/gen/literal/textureLoad/44c826.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureLoad/44c826.wgsl.expected.ir.fxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureLoad
+..\..\src\tint\utils\containers\slice.h:216 internal compiler error: TINT_ASSERT(i < Length())
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/literal/textureLoad/4542ae.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/textureLoad/4542ae.wgsl.expected.ir.dxc.hlsl
index fd28383..334e6e8e 100644
--- a/test/tint/builtins/gen/literal/textureLoad/4542ae.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureLoad/4542ae.wgsl.expected.ir.dxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureLoad
+..\..\src\tint\utils\containers\slice.h:216 internal compiler error: TINT_ASSERT(i < Length())
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/literal/textureLoad/4542ae.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/textureLoad/4542ae.wgsl.expected.ir.fxc.hlsl
index fd28383..334e6e8e 100644
--- a/test/tint/builtins/gen/literal/textureLoad/4542ae.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureLoad/4542ae.wgsl.expected.ir.fxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureLoad
+..\..\src\tint\utils\containers\slice.h:216 internal compiler error: TINT_ASSERT(i < Length())
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/literal/textureLoad/454347.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/textureLoad/454347.wgsl.expected.ir.dxc.hlsl
index fd28383..334e6e8e 100644
--- a/test/tint/builtins/gen/literal/textureLoad/454347.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureLoad/454347.wgsl.expected.ir.dxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureLoad
+..\..\src\tint\utils\containers\slice.h:216 internal compiler error: TINT_ASSERT(i < Length())
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/literal/textureLoad/454347.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/textureLoad/454347.wgsl.expected.ir.fxc.hlsl
index fd28383..334e6e8e 100644
--- a/test/tint/builtins/gen/literal/textureLoad/454347.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureLoad/454347.wgsl.expected.ir.fxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureLoad
+..\..\src\tint\utils\containers\slice.h:216 internal compiler error: TINT_ASSERT(i < Length())
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/literal/textureLoad/4638a0.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/textureLoad/4638a0.wgsl.expected.ir.dxc.hlsl
index fd28383..334e6e8e 100644
--- a/test/tint/builtins/gen/literal/textureLoad/4638a0.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureLoad/4638a0.wgsl.expected.ir.dxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureLoad
+..\..\src\tint\utils\containers\slice.h:216 internal compiler error: TINT_ASSERT(i < Length())
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/literal/textureLoad/4638a0.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/textureLoad/4638a0.wgsl.expected.ir.fxc.hlsl
index fd28383..334e6e8e 100644
--- a/test/tint/builtins/gen/literal/textureLoad/4638a0.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureLoad/4638a0.wgsl.expected.ir.fxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureLoad
+..\..\src\tint\utils\containers\slice.h:216 internal compiler error: TINT_ASSERT(i < Length())
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/literal/textureLoad/469912.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/textureLoad/469912.wgsl.expected.ir.dxc.hlsl
index fd28383..334e6e8e 100644
--- a/test/tint/builtins/gen/literal/textureLoad/469912.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureLoad/469912.wgsl.expected.ir.dxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureLoad
+..\..\src\tint\utils\containers\slice.h:216 internal compiler error: TINT_ASSERT(i < Length())
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/literal/textureLoad/469912.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/textureLoad/469912.wgsl.expected.ir.fxc.hlsl
index fd28383..334e6e8e 100644
--- a/test/tint/builtins/gen/literal/textureLoad/469912.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureLoad/469912.wgsl.expected.ir.fxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureLoad
+..\..\src\tint\utils\containers\slice.h:216 internal compiler error: TINT_ASSERT(i < Length())
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/literal/textureLoad/46a93f.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/textureLoad/46a93f.wgsl.expected.ir.dxc.hlsl
index fd28383..15b0e72 100644
--- a/test/tint/builtins/gen/literal/textureLoad/46a93f.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureLoad/46a93f.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,46 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  float4 prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureLoad
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation float4 VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+Texture2DArray<float4> arg_0 : register(t0, space1);
+float4 textureLoad_46a93f() {
+  Texture2DArray<float4> v = arg_0;
+  int2 v_1 = int2((1u).xx);
+  int v_2 = int(1);
+  float4 res = float4(v.Load(int4(v_1, v_2, int(1u))));
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store4(0u, asuint(textureLoad_46a93f()));
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store4(0u, asuint(textureLoad_46a93f()));
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = textureLoad_46a93f();
+  VertexOutput v_3 = tint_symbol;
+  return v_3;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_4 = vertex_main_inner();
+  VertexOutput v_5 = v_4;
+  VertexOutput v_6 = v_4;
+  vertex_main_outputs v_7 = {v_6.prevent_dce, v_5.pos};
+  return v_7;
+}
+
diff --git a/test/tint/builtins/gen/literal/textureLoad/46a93f.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/textureLoad/46a93f.wgsl.expected.ir.fxc.hlsl
index fd28383..15b0e72 100644
--- a/test/tint/builtins/gen/literal/textureLoad/46a93f.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureLoad/46a93f.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,46 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  float4 prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureLoad
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation float4 VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+Texture2DArray<float4> arg_0 : register(t0, space1);
+float4 textureLoad_46a93f() {
+  Texture2DArray<float4> v = arg_0;
+  int2 v_1 = int2((1u).xx);
+  int v_2 = int(1);
+  float4 res = float4(v.Load(int4(v_1, v_2, int(1u))));
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store4(0u, asuint(textureLoad_46a93f()));
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store4(0u, asuint(textureLoad_46a93f()));
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = textureLoad_46a93f();
+  VertexOutput v_3 = tint_symbol;
+  return v_3;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_4 = vertex_main_inner();
+  VertexOutput v_5 = v_4;
+  VertexOutput v_6 = v_4;
+  vertex_main_outputs v_7 = {v_6.prevent_dce, v_5.pos};
+  return v_7;
+}
+
diff --git a/test/tint/builtins/gen/literal/textureLoad/46dbf5.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/textureLoad/46dbf5.wgsl.expected.ir.dxc.hlsl
index fd28383..334e6e8e 100644
--- a/test/tint/builtins/gen/literal/textureLoad/46dbf5.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureLoad/46dbf5.wgsl.expected.ir.dxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureLoad
+..\..\src\tint\utils\containers\slice.h:216 internal compiler error: TINT_ASSERT(i < Length())
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/literal/textureLoad/46dbf5.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/textureLoad/46dbf5.wgsl.expected.ir.fxc.hlsl
index fd28383..334e6e8e 100644
--- a/test/tint/builtins/gen/literal/textureLoad/46dbf5.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureLoad/46dbf5.wgsl.expected.ir.fxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureLoad
+..\..\src\tint\utils\containers\slice.h:216 internal compiler error: TINT_ASSERT(i < Length())
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/literal/textureLoad/473d3e.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/textureLoad/473d3e.wgsl.expected.ir.dxc.hlsl
index fd28383..334e6e8e 100644
--- a/test/tint/builtins/gen/literal/textureLoad/473d3e.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureLoad/473d3e.wgsl.expected.ir.dxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureLoad
+..\..\src\tint\utils\containers\slice.h:216 internal compiler error: TINT_ASSERT(i < Length())
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/literal/textureLoad/473d3e.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/textureLoad/473d3e.wgsl.expected.ir.fxc.hlsl
index fd28383..334e6e8e 100644
--- a/test/tint/builtins/gen/literal/textureLoad/473d3e.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureLoad/473d3e.wgsl.expected.ir.fxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureLoad
+..\..\src\tint\utils\containers\slice.h:216 internal compiler error: TINT_ASSERT(i < Length())
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/literal/textureLoad/47e818.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/textureLoad/47e818.wgsl.expected.ir.dxc.hlsl
index fd28383..9f6b2d4 100644
--- a/test/tint/builtins/gen/literal/textureLoad/47e818.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureLoad/47e818.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,45 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  int4 prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureLoad
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation int4 VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+Texture3D<int4> arg_0 : register(t0, space1);
+int4 textureLoad_47e818() {
+  Texture3D<int4> v = arg_0;
+  int3 v_1 = int3((1u).xxx);
+  int4 res = int4(v.Load(int4(v_1, int(1u))));
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store4(0u, asuint(textureLoad_47e818()));
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store4(0u, asuint(textureLoad_47e818()));
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = textureLoad_47e818();
+  VertexOutput v_2 = tint_symbol;
+  return v_2;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_3 = vertex_main_inner();
+  VertexOutput v_4 = v_3;
+  VertexOutput v_5 = v_3;
+  vertex_main_outputs v_6 = {v_5.prevent_dce, v_4.pos};
+  return v_6;
+}
+
diff --git a/test/tint/builtins/gen/literal/textureLoad/47e818.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/textureLoad/47e818.wgsl.expected.ir.fxc.hlsl
index fd28383..9f6b2d4 100644
--- a/test/tint/builtins/gen/literal/textureLoad/47e818.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureLoad/47e818.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,45 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  int4 prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureLoad
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation int4 VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+Texture3D<int4> arg_0 : register(t0, space1);
+int4 textureLoad_47e818() {
+  Texture3D<int4> v = arg_0;
+  int3 v_1 = int3((1u).xxx);
+  int4 res = int4(v.Load(int4(v_1, int(1u))));
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store4(0u, asuint(textureLoad_47e818()));
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store4(0u, asuint(textureLoad_47e818()));
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = textureLoad_47e818();
+  VertexOutput v_2 = tint_symbol;
+  return v_2;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_3 = vertex_main_inner();
+  VertexOutput v_4 = v_3;
+  VertexOutput v_5 = v_3;
+  vertex_main_outputs v_6 = {v_5.prevent_dce, v_4.pos};
+  return v_6;
+}
+
diff --git a/test/tint/builtins/gen/literal/textureLoad/482627.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/textureLoad/482627.wgsl.expected.ir.dxc.hlsl
index fd28383..334e6e8e 100644
--- a/test/tint/builtins/gen/literal/textureLoad/482627.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureLoad/482627.wgsl.expected.ir.dxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureLoad
+..\..\src\tint\utils\containers\slice.h:216 internal compiler error: TINT_ASSERT(i < Length())
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/literal/textureLoad/482627.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/textureLoad/482627.wgsl.expected.ir.fxc.hlsl
index fd28383..334e6e8e 100644
--- a/test/tint/builtins/gen/literal/textureLoad/482627.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureLoad/482627.wgsl.expected.ir.fxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureLoad
+..\..\src\tint\utils\containers\slice.h:216 internal compiler error: TINT_ASSERT(i < Length())
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/literal/textureLoad/484344.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/textureLoad/484344.wgsl.expected.ir.dxc.hlsl
index fd28383..6abc363 100644
--- a/test/tint/builtins/gen/literal/textureLoad/484344.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureLoad/484344.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,45 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  float4 prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureLoad
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation float4 VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+Texture2D<float4> arg_0 : register(t0, space1);
+float4 textureLoad_484344() {
+  Texture2D<float4> v = arg_0;
+  int2 v_1 = int2((1).xx);
+  float4 res = float4(v.Load(int3(v_1, int(1))));
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store4(0u, asuint(textureLoad_484344()));
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store4(0u, asuint(textureLoad_484344()));
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = textureLoad_484344();
+  VertexOutput v_2 = tint_symbol;
+  return v_2;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_3 = vertex_main_inner();
+  VertexOutput v_4 = v_3;
+  VertexOutput v_5 = v_3;
+  vertex_main_outputs v_6 = {v_5.prevent_dce, v_4.pos};
+  return v_6;
+}
+
diff --git a/test/tint/builtins/gen/literal/textureLoad/484344.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/textureLoad/484344.wgsl.expected.ir.fxc.hlsl
index fd28383..6abc363 100644
--- a/test/tint/builtins/gen/literal/textureLoad/484344.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureLoad/484344.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,45 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  float4 prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureLoad
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation float4 VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+Texture2D<float4> arg_0 : register(t0, space1);
+float4 textureLoad_484344() {
+  Texture2D<float4> v = arg_0;
+  int2 v_1 = int2((1).xx);
+  float4 res = float4(v.Load(int3(v_1, int(1))));
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store4(0u, asuint(textureLoad_484344()));
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store4(0u, asuint(textureLoad_484344()));
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = textureLoad_484344();
+  VertexOutput v_2 = tint_symbol;
+  return v_2;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_3 = vertex_main_inner();
+  VertexOutput v_4 = v_3;
+  VertexOutput v_5 = v_3;
+  vertex_main_outputs v_6 = {v_5.prevent_dce, v_4.pos};
+  return v_6;
+}
+
diff --git a/test/tint/builtins/gen/literal/textureLoad/4951bb.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/textureLoad/4951bb.wgsl.expected.ir.dxc.hlsl
index fd28383..334e6e8e 100644
--- a/test/tint/builtins/gen/literal/textureLoad/4951bb.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureLoad/4951bb.wgsl.expected.ir.dxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureLoad
+..\..\src\tint\utils\containers\slice.h:216 internal compiler error: TINT_ASSERT(i < Length())
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/literal/textureLoad/4951bb.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/textureLoad/4951bb.wgsl.expected.ir.fxc.hlsl
index fd28383..334e6e8e 100644
--- a/test/tint/builtins/gen/literal/textureLoad/4951bb.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureLoad/4951bb.wgsl.expected.ir.fxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureLoad
+..\..\src\tint\utils\containers\slice.h:216 internal compiler error: TINT_ASSERT(i < Length())
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/literal/textureLoad/49f76f.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/textureLoad/49f76f.wgsl.expected.ir.dxc.hlsl
index fd28383..0cace65 100644
--- a/test/tint/builtins/gen/literal/textureLoad/49f76f.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureLoad/49f76f.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,45 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  uint4 prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureLoad
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation uint4 VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+Texture2DMS<uint4> arg_0 : register(t0, space1);
+uint4 textureLoad_49f76f() {
+  Texture2DMS<uint4> v = arg_0;
+  int2 v_1 = int2((1u).xx);
+  uint4 res = uint4(v.Load(v_1, int(1u)));
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store4(0u, textureLoad_49f76f());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store4(0u, textureLoad_49f76f());
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = textureLoad_49f76f();
+  VertexOutput v_2 = tint_symbol;
+  return v_2;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_3 = vertex_main_inner();
+  VertexOutput v_4 = v_3;
+  VertexOutput v_5 = v_3;
+  vertex_main_outputs v_6 = {v_5.prevent_dce, v_4.pos};
+  return v_6;
+}
+
diff --git a/test/tint/builtins/gen/literal/textureLoad/49f76f.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/textureLoad/49f76f.wgsl.expected.ir.fxc.hlsl
index fd28383..0cace65 100644
--- a/test/tint/builtins/gen/literal/textureLoad/49f76f.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureLoad/49f76f.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,45 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  uint4 prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureLoad
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation uint4 VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+Texture2DMS<uint4> arg_0 : register(t0, space1);
+uint4 textureLoad_49f76f() {
+  Texture2DMS<uint4> v = arg_0;
+  int2 v_1 = int2((1u).xx);
+  uint4 res = uint4(v.Load(v_1, int(1u)));
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store4(0u, textureLoad_49f76f());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store4(0u, textureLoad_49f76f());
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = textureLoad_49f76f();
+  VertexOutput v_2 = tint_symbol;
+  return v_2;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_3 = vertex_main_inner();
+  VertexOutput v_4 = v_3;
+  VertexOutput v_5 = v_3;
+  vertex_main_outputs v_6 = {v_5.prevent_dce, v_4.pos};
+  return v_6;
+}
+
diff --git a/test/tint/builtins/gen/literal/textureLoad/4a5c55.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/textureLoad/4a5c55.wgsl.expected.ir.dxc.hlsl
index fd28383..334e6e8e 100644
--- a/test/tint/builtins/gen/literal/textureLoad/4a5c55.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureLoad/4a5c55.wgsl.expected.ir.dxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureLoad
+..\..\src\tint\utils\containers\slice.h:216 internal compiler error: TINT_ASSERT(i < Length())
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/literal/textureLoad/4a5c55.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/textureLoad/4a5c55.wgsl.expected.ir.fxc.hlsl
index fd28383..334e6e8e 100644
--- a/test/tint/builtins/gen/literal/textureLoad/4a5c55.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureLoad/4a5c55.wgsl.expected.ir.fxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureLoad
+..\..\src\tint\utils\containers\slice.h:216 internal compiler error: TINT_ASSERT(i < Length())
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/literal/textureLoad/4acb64.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/textureLoad/4acb64.wgsl.expected.ir.dxc.hlsl
index fd28383..3523486 100644
--- a/test/tint/builtins/gen/literal/textureLoad/4acb64.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureLoad/4acb64.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,46 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  float4 prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureLoad
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation float4 VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+Texture2DArray<float4> arg_0 : register(t0, space1);
+float4 textureLoad_4acb64() {
+  Texture2DArray<float4> v = arg_0;
+  int2 v_1 = int2((1).xx);
+  int v_2 = int(1u);
+  float4 res = float4(v.Load(int4(v_1, v_2, int(1))));
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store4(0u, asuint(textureLoad_4acb64()));
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store4(0u, asuint(textureLoad_4acb64()));
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = textureLoad_4acb64();
+  VertexOutput v_3 = tint_symbol;
+  return v_3;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_4 = vertex_main_inner();
+  VertexOutput v_5 = v_4;
+  VertexOutput v_6 = v_4;
+  vertex_main_outputs v_7 = {v_6.prevent_dce, v_5.pos};
+  return v_7;
+}
+
diff --git a/test/tint/builtins/gen/literal/textureLoad/4acb64.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/textureLoad/4acb64.wgsl.expected.ir.fxc.hlsl
index fd28383..3523486 100644
--- a/test/tint/builtins/gen/literal/textureLoad/4acb64.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureLoad/4acb64.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,46 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  float4 prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureLoad
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation float4 VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+Texture2DArray<float4> arg_0 : register(t0, space1);
+float4 textureLoad_4acb64() {
+  Texture2DArray<float4> v = arg_0;
+  int2 v_1 = int2((1).xx);
+  int v_2 = int(1u);
+  float4 res = float4(v.Load(int4(v_1, v_2, int(1))));
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store4(0u, asuint(textureLoad_4acb64()));
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store4(0u, asuint(textureLoad_4acb64()));
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = textureLoad_4acb64();
+  VertexOutput v_3 = tint_symbol;
+  return v_3;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_4 = vertex_main_inner();
+  VertexOutput v_5 = v_4;
+  VertexOutput v_6 = v_4;
+  vertex_main_outputs v_7 = {v_6.prevent_dce, v_5.pos};
+  return v_7;
+}
+
diff --git a/test/tint/builtins/gen/literal/textureLoad/4c15b2.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/textureLoad/4c15b2.wgsl.expected.ir.dxc.hlsl
index fd28383..334e6e8e 100644
--- a/test/tint/builtins/gen/literal/textureLoad/4c15b2.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureLoad/4c15b2.wgsl.expected.ir.dxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureLoad
+..\..\src\tint\utils\containers\slice.h:216 internal compiler error: TINT_ASSERT(i < Length())
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/literal/textureLoad/4c15b2.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/textureLoad/4c15b2.wgsl.expected.ir.fxc.hlsl
index fd28383..334e6e8e 100644
--- a/test/tint/builtins/gen/literal/textureLoad/4c15b2.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureLoad/4c15b2.wgsl.expected.ir.fxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureLoad
+..\..\src\tint\utils\containers\slice.h:216 internal compiler error: TINT_ASSERT(i < Length())
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/literal/textureLoad/4c1a1e.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/textureLoad/4c1a1e.wgsl.expected.ir.dxc.hlsl
index fd28383..334e6e8e 100644
--- a/test/tint/builtins/gen/literal/textureLoad/4c1a1e.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureLoad/4c1a1e.wgsl.expected.ir.dxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureLoad
+..\..\src\tint\utils\containers\slice.h:216 internal compiler error: TINT_ASSERT(i < Length())
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/literal/textureLoad/4c1a1e.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/textureLoad/4c1a1e.wgsl.expected.ir.fxc.hlsl
index fd28383..334e6e8e 100644
--- a/test/tint/builtins/gen/literal/textureLoad/4c1a1e.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureLoad/4c1a1e.wgsl.expected.ir.fxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureLoad
+..\..\src\tint\utils\containers\slice.h:216 internal compiler error: TINT_ASSERT(i < Length())
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/literal/textureLoad/4c423f.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/textureLoad/4c423f.wgsl.expected.ir.dxc.hlsl
index fd28383..0f0f2a4 100644
--- a/test/tint/builtins/gen/literal/textureLoad/4c423f.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureLoad/4c423f.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,45 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  int4 prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureLoad
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation int4 VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+Texture1D<int4> arg_0 : register(t0, space1);
+int4 textureLoad_4c423f() {
+  Texture1D<int4> v = arg_0;
+  int v_1 = int(1u);
+  int4 res = int4(v.Load(int2(v_1, int(1))));
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store4(0u, asuint(textureLoad_4c423f()));
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store4(0u, asuint(textureLoad_4c423f()));
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = textureLoad_4c423f();
+  VertexOutput v_2 = tint_symbol;
+  return v_2;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_3 = vertex_main_inner();
+  VertexOutput v_4 = v_3;
+  VertexOutput v_5 = v_3;
+  vertex_main_outputs v_6 = {v_5.prevent_dce, v_4.pos};
+  return v_6;
+}
+
diff --git a/test/tint/builtins/gen/literal/textureLoad/4c423f.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/textureLoad/4c423f.wgsl.expected.ir.fxc.hlsl
index fd28383..0f0f2a4 100644
--- a/test/tint/builtins/gen/literal/textureLoad/4c423f.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureLoad/4c423f.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,45 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  int4 prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureLoad
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation int4 VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+Texture1D<int4> arg_0 : register(t0, space1);
+int4 textureLoad_4c423f() {
+  Texture1D<int4> v = arg_0;
+  int v_1 = int(1u);
+  int4 res = int4(v.Load(int2(v_1, int(1))));
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store4(0u, asuint(textureLoad_4c423f()));
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store4(0u, asuint(textureLoad_4c423f()));
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = textureLoad_4c423f();
+  VertexOutput v_2 = tint_symbol;
+  return v_2;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_3 = vertex_main_inner();
+  VertexOutput v_4 = v_3;
+  VertexOutput v_5 = v_3;
+  vertex_main_outputs v_6 = {v_5.prevent_dce, v_4.pos};
+  return v_6;
+}
+
diff --git a/test/tint/builtins/gen/literal/textureLoad/4c67be.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/textureLoad/4c67be.wgsl.expected.ir.dxc.hlsl
index fd28383..334e6e8e 100644
--- a/test/tint/builtins/gen/literal/textureLoad/4c67be.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureLoad/4c67be.wgsl.expected.ir.dxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureLoad
+..\..\src\tint\utils\containers\slice.h:216 internal compiler error: TINT_ASSERT(i < Length())
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/literal/textureLoad/4c67be.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/textureLoad/4c67be.wgsl.expected.ir.fxc.hlsl
index fd28383..334e6e8e 100644
--- a/test/tint/builtins/gen/literal/textureLoad/4c67be.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureLoad/4c67be.wgsl.expected.ir.fxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureLoad
+..\..\src\tint\utils\containers\slice.h:216 internal compiler error: TINT_ASSERT(i < Length())
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/literal/textureLoad/4ccf9a.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/textureLoad/4ccf9a.wgsl.expected.ir.dxc.hlsl
index fd28383..334e6e8e 100644
--- a/test/tint/builtins/gen/literal/textureLoad/4ccf9a.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureLoad/4ccf9a.wgsl.expected.ir.dxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureLoad
+..\..\src\tint\utils\containers\slice.h:216 internal compiler error: TINT_ASSERT(i < Length())
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/literal/textureLoad/4ccf9a.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/textureLoad/4ccf9a.wgsl.expected.ir.fxc.hlsl
index fd28383..334e6e8e 100644
--- a/test/tint/builtins/gen/literal/textureLoad/4ccf9a.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureLoad/4ccf9a.wgsl.expected.ir.fxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureLoad
+..\..\src\tint\utils\containers\slice.h:216 internal compiler error: TINT_ASSERT(i < Length())
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/literal/textureLoad/4cdca5.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/textureLoad/4cdca5.wgsl.expected.ir.dxc.hlsl
index fd28383..334e6e8e 100644
--- a/test/tint/builtins/gen/literal/textureLoad/4cdca5.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureLoad/4cdca5.wgsl.expected.ir.dxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureLoad
+..\..\src\tint\utils\containers\slice.h:216 internal compiler error: TINT_ASSERT(i < Length())
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/literal/textureLoad/4cdca5.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/textureLoad/4cdca5.wgsl.expected.ir.fxc.hlsl
index fd28383..334e6e8e 100644
--- a/test/tint/builtins/gen/literal/textureLoad/4cdca5.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureLoad/4cdca5.wgsl.expected.ir.fxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureLoad
+..\..\src\tint\utils\containers\slice.h:216 internal compiler error: TINT_ASSERT(i < Length())
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/literal/textureLoad/4db25c.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/textureLoad/4db25c.wgsl.expected.ir.dxc.hlsl
index fd28383..92ca15b 100644
--- a/test/tint/builtins/gen/literal/textureLoad/4db25c.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureLoad/4db25c.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,45 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  float prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureLoad
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation float VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+Texture2DMS<float4> arg_0 : register(t0, space1);
+float textureLoad_4db25c() {
+  Texture2DMS<float4> v = arg_0;
+  int2 v_1 = int2((1u).xx);
+  float res = v.Load(v_1, int(1u)).x;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store(0u, asuint(textureLoad_4db25c()));
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store(0u, asuint(textureLoad_4db25c()));
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = textureLoad_4db25c();
+  VertexOutput v_2 = tint_symbol;
+  return v_2;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_3 = vertex_main_inner();
+  VertexOutput v_4 = v_3;
+  VertexOutput v_5 = v_3;
+  vertex_main_outputs v_6 = {v_5.prevent_dce, v_4.pos};
+  return v_6;
+}
+
diff --git a/test/tint/builtins/gen/literal/textureLoad/4db25c.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/textureLoad/4db25c.wgsl.expected.ir.fxc.hlsl
index fd28383..92ca15b 100644
--- a/test/tint/builtins/gen/literal/textureLoad/4db25c.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureLoad/4db25c.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,45 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  float prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureLoad
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation float VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+Texture2DMS<float4> arg_0 : register(t0, space1);
+float textureLoad_4db25c() {
+  Texture2DMS<float4> v = arg_0;
+  int2 v_1 = int2((1u).xx);
+  float res = v.Load(v_1, int(1u)).x;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store(0u, asuint(textureLoad_4db25c()));
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store(0u, asuint(textureLoad_4db25c()));
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = textureLoad_4db25c();
+  VertexOutput v_2 = tint_symbol;
+  return v_2;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_3 = vertex_main_inner();
+  VertexOutput v_4 = v_3;
+  VertexOutput v_5 = v_3;
+  vertex_main_outputs v_6 = {v_5.prevent_dce, v_4.pos};
+  return v_6;
+}
+
diff --git a/test/tint/builtins/gen/literal/textureLoad/4e2c5c.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/textureLoad/4e2c5c.wgsl.expected.ir.dxc.hlsl
index fd28383..334e6e8e 100644
--- a/test/tint/builtins/gen/literal/textureLoad/4e2c5c.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureLoad/4e2c5c.wgsl.expected.ir.dxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureLoad
+..\..\src\tint\utils\containers\slice.h:216 internal compiler error: TINT_ASSERT(i < Length())
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/literal/textureLoad/4e2c5c.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/textureLoad/4e2c5c.wgsl.expected.ir.fxc.hlsl
index fd28383..334e6e8e 100644
--- a/test/tint/builtins/gen/literal/textureLoad/4e2c5c.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureLoad/4e2c5c.wgsl.expected.ir.fxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureLoad
+..\..\src\tint\utils\containers\slice.h:216 internal compiler error: TINT_ASSERT(i < Length())
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/literal/textureLoad/4f5496.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/textureLoad/4f5496.wgsl.expected.ir.dxc.hlsl
index fd28383..334e6e8e 100644
--- a/test/tint/builtins/gen/literal/textureLoad/4f5496.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureLoad/4f5496.wgsl.expected.ir.dxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureLoad
+..\..\src\tint\utils\containers\slice.h:216 internal compiler error: TINT_ASSERT(i < Length())
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/literal/textureLoad/4f5496.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/textureLoad/4f5496.wgsl.expected.ir.fxc.hlsl
index fd28383..334e6e8e 100644
--- a/test/tint/builtins/gen/literal/textureLoad/4f5496.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureLoad/4f5496.wgsl.expected.ir.fxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureLoad
+..\..\src\tint\utils\containers\slice.h:216 internal compiler error: TINT_ASSERT(i < Length())
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/literal/textureLoad/4f90bb.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/textureLoad/4f90bb.wgsl.expected.ir.dxc.hlsl
index fd28383..334e6e8e 100644
--- a/test/tint/builtins/gen/literal/textureLoad/4f90bb.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureLoad/4f90bb.wgsl.expected.ir.dxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureLoad
+..\..\src\tint\utils\containers\slice.h:216 internal compiler error: TINT_ASSERT(i < Length())
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/literal/textureLoad/4f90bb.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/textureLoad/4f90bb.wgsl.expected.ir.fxc.hlsl
index fd28383..334e6e8e 100644
--- a/test/tint/builtins/gen/literal/textureLoad/4f90bb.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureLoad/4f90bb.wgsl.expected.ir.fxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureLoad
+..\..\src\tint\utils\containers\slice.h:216 internal compiler error: TINT_ASSERT(i < Length())
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/literal/textureLoad/4fa6ae.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/textureLoad/4fa6ae.wgsl.expected.ir.dxc.hlsl
index fd28383..334e6e8e 100644
--- a/test/tint/builtins/gen/literal/textureLoad/4fa6ae.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureLoad/4fa6ae.wgsl.expected.ir.dxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureLoad
+..\..\src\tint\utils\containers\slice.h:216 internal compiler error: TINT_ASSERT(i < Length())
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/literal/textureLoad/4fa6ae.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/textureLoad/4fa6ae.wgsl.expected.ir.fxc.hlsl
index fd28383..334e6e8e 100644
--- a/test/tint/builtins/gen/literal/textureLoad/4fa6ae.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureLoad/4fa6ae.wgsl.expected.ir.fxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureLoad
+..\..\src\tint\utils\containers\slice.h:216 internal compiler error: TINT_ASSERT(i < Length())
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/literal/textureLoad/4fd803.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/textureLoad/4fd803.wgsl.expected.ir.dxc.hlsl
index fd28383..2124c88 100644
--- a/test/tint/builtins/gen/literal/textureLoad/4fd803.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureLoad/4fd803.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,45 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  int4 prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureLoad
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation int4 VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+Texture3D<int4> arg_0 : register(t0, space1);
+int4 textureLoad_4fd803() {
+  Texture3D<int4> v = arg_0;
+  int3 v_1 = int3((1).xxx);
+  int4 res = int4(v.Load(int4(v_1, int(1))));
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store4(0u, asuint(textureLoad_4fd803()));
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store4(0u, asuint(textureLoad_4fd803()));
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = textureLoad_4fd803();
+  VertexOutput v_2 = tint_symbol;
+  return v_2;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_3 = vertex_main_inner();
+  VertexOutput v_4 = v_3;
+  VertexOutput v_5 = v_3;
+  vertex_main_outputs v_6 = {v_5.prevent_dce, v_4.pos};
+  return v_6;
+}
+
diff --git a/test/tint/builtins/gen/literal/textureLoad/4fd803.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/textureLoad/4fd803.wgsl.expected.ir.fxc.hlsl
index fd28383..2124c88 100644
--- a/test/tint/builtins/gen/literal/textureLoad/4fd803.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureLoad/4fd803.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,45 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  int4 prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureLoad
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation int4 VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+Texture3D<int4> arg_0 : register(t0, space1);
+int4 textureLoad_4fd803() {
+  Texture3D<int4> v = arg_0;
+  int3 v_1 = int3((1).xxx);
+  int4 res = int4(v.Load(int4(v_1, int(1))));
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store4(0u, asuint(textureLoad_4fd803()));
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store4(0u, asuint(textureLoad_4fd803()));
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = textureLoad_4fd803();
+  VertexOutput v_2 = tint_symbol;
+  return v_2;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_3 = vertex_main_inner();
+  VertexOutput v_4 = v_3;
+  VertexOutput v_5 = v_3;
+  vertex_main_outputs v_6 = {v_5.prevent_dce, v_4.pos};
+  return v_6;
+}
+
diff --git a/test/tint/builtins/gen/literal/textureLoad/505aa2.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/textureLoad/505aa2.wgsl.expected.ir.dxc.hlsl
index fd28383..334e6e8e 100644
--- a/test/tint/builtins/gen/literal/textureLoad/505aa2.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureLoad/505aa2.wgsl.expected.ir.dxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureLoad
+..\..\src\tint\utils\containers\slice.h:216 internal compiler error: TINT_ASSERT(i < Length())
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/literal/textureLoad/505aa2.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/textureLoad/505aa2.wgsl.expected.ir.fxc.hlsl
index fd28383..334e6e8e 100644
--- a/test/tint/builtins/gen/literal/textureLoad/505aa2.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureLoad/505aa2.wgsl.expected.ir.fxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureLoad
+..\..\src\tint\utils\containers\slice.h:216 internal compiler error: TINT_ASSERT(i < Length())
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/literal/textureLoad/50915c.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/textureLoad/50915c.wgsl.expected.ir.dxc.hlsl
index fd28383..334e6e8e 100644
--- a/test/tint/builtins/gen/literal/textureLoad/50915c.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureLoad/50915c.wgsl.expected.ir.dxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureLoad
+..\..\src\tint\utils\containers\slice.h:216 internal compiler error: TINT_ASSERT(i < Length())
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/literal/textureLoad/50915c.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/textureLoad/50915c.wgsl.expected.ir.fxc.hlsl
index fd28383..334e6e8e 100644
--- a/test/tint/builtins/gen/literal/textureLoad/50915c.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureLoad/50915c.wgsl.expected.ir.fxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureLoad
+..\..\src\tint\utils\containers\slice.h:216 internal compiler error: TINT_ASSERT(i < Length())
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/literal/textureLoad/5154e1.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/textureLoad/5154e1.wgsl.expected.ir.dxc.hlsl
index fd28383..334e6e8e 100644
--- a/test/tint/builtins/gen/literal/textureLoad/5154e1.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureLoad/5154e1.wgsl.expected.ir.dxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureLoad
+..\..\src\tint\utils\containers\slice.h:216 internal compiler error: TINT_ASSERT(i < Length())
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/literal/textureLoad/5154e1.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/textureLoad/5154e1.wgsl.expected.ir.fxc.hlsl
index fd28383..334e6e8e 100644
--- a/test/tint/builtins/gen/literal/textureLoad/5154e1.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureLoad/5154e1.wgsl.expected.ir.fxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureLoad
+..\..\src\tint\utils\containers\slice.h:216 internal compiler error: TINT_ASSERT(i < Length())
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/literal/textureLoad/519ab5.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/textureLoad/519ab5.wgsl.expected.ir.dxc.hlsl
index fd28383..334e6e8e 100644
--- a/test/tint/builtins/gen/literal/textureLoad/519ab5.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureLoad/519ab5.wgsl.expected.ir.dxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureLoad
+..\..\src\tint\utils\containers\slice.h:216 internal compiler error: TINT_ASSERT(i < Length())
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/literal/textureLoad/519ab5.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/textureLoad/519ab5.wgsl.expected.ir.fxc.hlsl
index fd28383..334e6e8e 100644
--- a/test/tint/builtins/gen/literal/textureLoad/519ab5.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureLoad/519ab5.wgsl.expected.ir.fxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureLoad
+..\..\src\tint\utils\containers\slice.h:216 internal compiler error: TINT_ASSERT(i < Length())
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/literal/textureLoad/53378a.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/textureLoad/53378a.wgsl.expected.ir.dxc.hlsl
index fd28383..334e6e8e 100644
--- a/test/tint/builtins/gen/literal/textureLoad/53378a.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureLoad/53378a.wgsl.expected.ir.dxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureLoad
+..\..\src\tint\utils\containers\slice.h:216 internal compiler error: TINT_ASSERT(i < Length())
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/literal/textureLoad/53378a.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/textureLoad/53378a.wgsl.expected.ir.fxc.hlsl
index fd28383..334e6e8e 100644
--- a/test/tint/builtins/gen/literal/textureLoad/53378a.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureLoad/53378a.wgsl.expected.ir.fxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureLoad
+..\..\src\tint\utils\containers\slice.h:216 internal compiler error: TINT_ASSERT(i < Length())
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/literal/textureLoad/53941c.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/textureLoad/53941c.wgsl.expected.ir.dxc.hlsl
index fd28383..334e6e8e 100644
--- a/test/tint/builtins/gen/literal/textureLoad/53941c.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureLoad/53941c.wgsl.expected.ir.dxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureLoad
+..\..\src\tint\utils\containers\slice.h:216 internal compiler error: TINT_ASSERT(i < Length())
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/literal/textureLoad/53941c.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/textureLoad/53941c.wgsl.expected.ir.fxc.hlsl
index fd28383..334e6e8e 100644
--- a/test/tint/builtins/gen/literal/textureLoad/53941c.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureLoad/53941c.wgsl.expected.ir.fxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureLoad
+..\..\src\tint\utils\containers\slice.h:216 internal compiler error: TINT_ASSERT(i < Length())
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/literal/textureLoad/53e142.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/textureLoad/53e142.wgsl.expected.ir.dxc.hlsl
index fd28383..a9b7fb9 100644
--- a/test/tint/builtins/gen/literal/textureLoad/53e142.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureLoad/53e142.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,46 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  uint4 prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureLoad
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation uint4 VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+Texture2DArray<uint4> arg_0 : register(t0, space1);
+uint4 textureLoad_53e142() {
+  Texture2DArray<uint4> v = arg_0;
+  int2 v_1 = int2((1u).xx);
+  int v_2 = int(1);
+  uint4 res = uint4(v.Load(int4(v_1, v_2, int(1))));
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store4(0u, textureLoad_53e142());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store4(0u, textureLoad_53e142());
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = textureLoad_53e142();
+  VertexOutput v_3 = tint_symbol;
+  return v_3;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_4 = vertex_main_inner();
+  VertexOutput v_5 = v_4;
+  VertexOutput v_6 = v_4;
+  vertex_main_outputs v_7 = {v_6.prevent_dce, v_5.pos};
+  return v_7;
+}
+
diff --git a/test/tint/builtins/gen/literal/textureLoad/53e142.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/textureLoad/53e142.wgsl.expected.ir.fxc.hlsl
index fd28383..a9b7fb9 100644
--- a/test/tint/builtins/gen/literal/textureLoad/53e142.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureLoad/53e142.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,46 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  uint4 prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureLoad
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation uint4 VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+Texture2DArray<uint4> arg_0 : register(t0, space1);
+uint4 textureLoad_53e142() {
+  Texture2DArray<uint4> v = arg_0;
+  int2 v_1 = int2((1u).xx);
+  int v_2 = int(1);
+  uint4 res = uint4(v.Load(int4(v_1, v_2, int(1))));
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store4(0u, textureLoad_53e142());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store4(0u, textureLoad_53e142());
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = textureLoad_53e142();
+  VertexOutput v_3 = tint_symbol;
+  return v_3;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_4 = vertex_main_inner();
+  VertexOutput v_5 = v_4;
+  VertexOutput v_6 = v_4;
+  vertex_main_outputs v_7 = {v_6.prevent_dce, v_5.pos};
+  return v_7;
+}
+
diff --git a/test/tint/builtins/gen/literal/textureLoad/54a59b.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/textureLoad/54a59b.wgsl.expected.ir.dxc.hlsl
index fd28383..92c05d5 100644
--- a/test/tint/builtins/gen/literal/textureLoad/54a59b.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureLoad/54a59b.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,46 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  float4 prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureLoad
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation float4 VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+Texture2DArray<float4> arg_0 : register(t0, space1);
+float4 textureLoad_54a59b() {
+  Texture2DArray<float4> v = arg_0;
+  int2 v_1 = int2((1u).xx);
+  int v_2 = int(1);
+  float4 res = float4(v.Load(int4(v_1, v_2, int(1))));
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store4(0u, asuint(textureLoad_54a59b()));
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store4(0u, asuint(textureLoad_54a59b()));
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = textureLoad_54a59b();
+  VertexOutput v_3 = tint_symbol;
+  return v_3;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_4 = vertex_main_inner();
+  VertexOutput v_5 = v_4;
+  VertexOutput v_6 = v_4;
+  vertex_main_outputs v_7 = {v_6.prevent_dce, v_5.pos};
+  return v_7;
+}
+
diff --git a/test/tint/builtins/gen/literal/textureLoad/54a59b.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/textureLoad/54a59b.wgsl.expected.ir.fxc.hlsl
index fd28383..92c05d5 100644
--- a/test/tint/builtins/gen/literal/textureLoad/54a59b.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureLoad/54a59b.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,46 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  float4 prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureLoad
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation float4 VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+Texture2DArray<float4> arg_0 : register(t0, space1);
+float4 textureLoad_54a59b() {
+  Texture2DArray<float4> v = arg_0;
+  int2 v_1 = int2((1u).xx);
+  int v_2 = int(1);
+  float4 res = float4(v.Load(int4(v_1, v_2, int(1))));
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store4(0u, asuint(textureLoad_54a59b()));
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store4(0u, asuint(textureLoad_54a59b()));
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = textureLoad_54a59b();
+  VertexOutput v_3 = tint_symbol;
+  return v_3;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_4 = vertex_main_inner();
+  VertexOutput v_5 = v_4;
+  VertexOutput v_6 = v_4;
+  vertex_main_outputs v_7 = {v_6.prevent_dce, v_5.pos};
+  return v_7;
+}
+
diff --git a/test/tint/builtins/gen/literal/textureLoad/54e0ce.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/textureLoad/54e0ce.wgsl.expected.ir.dxc.hlsl
index fd28383..334e6e8e 100644
--- a/test/tint/builtins/gen/literal/textureLoad/54e0ce.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureLoad/54e0ce.wgsl.expected.ir.dxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureLoad
+..\..\src\tint\utils\containers\slice.h:216 internal compiler error: TINT_ASSERT(i < Length())
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/literal/textureLoad/54e0ce.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/textureLoad/54e0ce.wgsl.expected.ir.fxc.hlsl
index fd28383..334e6e8e 100644
--- a/test/tint/builtins/gen/literal/textureLoad/54e0ce.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureLoad/54e0ce.wgsl.expected.ir.fxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureLoad
+..\..\src\tint\utils\containers\slice.h:216 internal compiler error: TINT_ASSERT(i < Length())
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/literal/textureLoad/54fb38.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/textureLoad/54fb38.wgsl.expected.ir.dxc.hlsl
index fd28383..334e6e8e 100644
--- a/test/tint/builtins/gen/literal/textureLoad/54fb38.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureLoad/54fb38.wgsl.expected.ir.dxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureLoad
+..\..\src\tint\utils\containers\slice.h:216 internal compiler error: TINT_ASSERT(i < Length())
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/literal/textureLoad/54fb38.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/textureLoad/54fb38.wgsl.expected.ir.fxc.hlsl
index fd28383..334e6e8e 100644
--- a/test/tint/builtins/gen/literal/textureLoad/54fb38.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureLoad/54fb38.wgsl.expected.ir.fxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureLoad
+..\..\src\tint\utils\containers\slice.h:216 internal compiler error: TINT_ASSERT(i < Length())
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/literal/textureLoad/55e745.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/textureLoad/55e745.wgsl.expected.ir.dxc.hlsl
index fd28383..334e6e8e 100644
--- a/test/tint/builtins/gen/literal/textureLoad/55e745.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureLoad/55e745.wgsl.expected.ir.dxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureLoad
+..\..\src\tint\utils\containers\slice.h:216 internal compiler error: TINT_ASSERT(i < Length())
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/literal/textureLoad/55e745.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/textureLoad/55e745.wgsl.expected.ir.fxc.hlsl
index fd28383..334e6e8e 100644
--- a/test/tint/builtins/gen/literal/textureLoad/55e745.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureLoad/55e745.wgsl.expected.ir.fxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureLoad
+..\..\src\tint\utils\containers\slice.h:216 internal compiler error: TINT_ASSERT(i < Length())
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/literal/textureLoad/560573.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/textureLoad/560573.wgsl.expected.ir.dxc.hlsl
index fd28383..334e6e8e 100644
--- a/test/tint/builtins/gen/literal/textureLoad/560573.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureLoad/560573.wgsl.expected.ir.dxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureLoad
+..\..\src\tint\utils\containers\slice.h:216 internal compiler error: TINT_ASSERT(i < Length())
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/literal/textureLoad/560573.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/textureLoad/560573.wgsl.expected.ir.fxc.hlsl
index fd28383..334e6e8e 100644
--- a/test/tint/builtins/gen/literal/textureLoad/560573.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureLoad/560573.wgsl.expected.ir.fxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureLoad
+..\..\src\tint\utils\containers\slice.h:216 internal compiler error: TINT_ASSERT(i < Length())
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/literal/textureLoad/56a000.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/textureLoad/56a000.wgsl.expected.ir.dxc.hlsl
index fd28383..334e6e8e 100644
--- a/test/tint/builtins/gen/literal/textureLoad/56a000.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureLoad/56a000.wgsl.expected.ir.dxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureLoad
+..\..\src\tint\utils\containers\slice.h:216 internal compiler error: TINT_ASSERT(i < Length())
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/literal/textureLoad/56a000.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/textureLoad/56a000.wgsl.expected.ir.fxc.hlsl
index fd28383..334e6e8e 100644
--- a/test/tint/builtins/gen/literal/textureLoad/56a000.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureLoad/56a000.wgsl.expected.ir.fxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureLoad
+..\..\src\tint\utils\containers\slice.h:216 internal compiler error: TINT_ASSERT(i < Length())
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/literal/textureLoad/582015.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/textureLoad/582015.wgsl.expected.ir.dxc.hlsl
index fd28383..334e6e8e 100644
--- a/test/tint/builtins/gen/literal/textureLoad/582015.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureLoad/582015.wgsl.expected.ir.dxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureLoad
+..\..\src\tint\utils\containers\slice.h:216 internal compiler error: TINT_ASSERT(i < Length())
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/literal/textureLoad/582015.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/textureLoad/582015.wgsl.expected.ir.fxc.hlsl
index fd28383..334e6e8e 100644
--- a/test/tint/builtins/gen/literal/textureLoad/582015.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureLoad/582015.wgsl.expected.ir.fxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureLoad
+..\..\src\tint\utils\containers\slice.h:216 internal compiler error: TINT_ASSERT(i < Length())
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/literal/textureLoad/589eaa.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/textureLoad/589eaa.wgsl.expected.ir.dxc.hlsl
index fd28383..334e6e8e 100644
--- a/test/tint/builtins/gen/literal/textureLoad/589eaa.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureLoad/589eaa.wgsl.expected.ir.dxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureLoad
+..\..\src\tint\utils\containers\slice.h:216 internal compiler error: TINT_ASSERT(i < Length())
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/literal/textureLoad/589eaa.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/textureLoad/589eaa.wgsl.expected.ir.fxc.hlsl
index fd28383..334e6e8e 100644
--- a/test/tint/builtins/gen/literal/textureLoad/589eaa.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureLoad/589eaa.wgsl.expected.ir.fxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureLoad
+..\..\src\tint\utils\containers\slice.h:216 internal compiler error: TINT_ASSERT(i < Length())
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/literal/textureLoad/5a2f9d.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/textureLoad/5a2f9d.wgsl.expected.ir.dxc.hlsl
index fd28383..49b44b6 100644
--- a/test/tint/builtins/gen/literal/textureLoad/5a2f9d.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureLoad/5a2f9d.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,45 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  int4 prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureLoad
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation int4 VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+Texture1D<int4> arg_0 : register(t0, space1);
+int4 textureLoad_5a2f9d() {
+  Texture1D<int4> v = arg_0;
+  int v_1 = int(1);
+  int4 res = int4(v.Load(int2(v_1, int(1))));
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store4(0u, asuint(textureLoad_5a2f9d()));
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store4(0u, asuint(textureLoad_5a2f9d()));
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = textureLoad_5a2f9d();
+  VertexOutput v_2 = tint_symbol;
+  return v_2;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_3 = vertex_main_inner();
+  VertexOutput v_4 = v_3;
+  VertexOutput v_5 = v_3;
+  vertex_main_outputs v_6 = {v_5.prevent_dce, v_4.pos};
+  return v_6;
+}
+
diff --git a/test/tint/builtins/gen/literal/textureLoad/5a2f9d.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/textureLoad/5a2f9d.wgsl.expected.ir.fxc.hlsl
index fd28383..49b44b6 100644
--- a/test/tint/builtins/gen/literal/textureLoad/5a2f9d.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureLoad/5a2f9d.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,45 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  int4 prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureLoad
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation int4 VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+Texture1D<int4> arg_0 : register(t0, space1);
+int4 textureLoad_5a2f9d() {
+  Texture1D<int4> v = arg_0;
+  int v_1 = int(1);
+  int4 res = int4(v.Load(int2(v_1, int(1))));
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store4(0u, asuint(textureLoad_5a2f9d()));
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store4(0u, asuint(textureLoad_5a2f9d()));
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = textureLoad_5a2f9d();
+  VertexOutput v_2 = tint_symbol;
+  return v_2;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_3 = vertex_main_inner();
+  VertexOutput v_4 = v_3;
+  VertexOutput v_5 = v_3;
+  vertex_main_outputs v_6 = {v_5.prevent_dce, v_4.pos};
+  return v_6;
+}
+
diff --git a/test/tint/builtins/gen/literal/textureLoad/5abbf2.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/textureLoad/5abbf2.wgsl.expected.ir.dxc.hlsl
index fd28383..334e6e8e 100644
--- a/test/tint/builtins/gen/literal/textureLoad/5abbf2.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureLoad/5abbf2.wgsl.expected.ir.dxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureLoad
+..\..\src\tint\utils\containers\slice.h:216 internal compiler error: TINT_ASSERT(i < Length())
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/literal/textureLoad/5abbf2.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/textureLoad/5abbf2.wgsl.expected.ir.fxc.hlsl
index fd28383..334e6e8e 100644
--- a/test/tint/builtins/gen/literal/textureLoad/5abbf2.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureLoad/5abbf2.wgsl.expected.ir.fxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureLoad
+..\..\src\tint\utils\containers\slice.h:216 internal compiler error: TINT_ASSERT(i < Length())
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/literal/textureLoad/5b0f5b.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/textureLoad/5b0f5b.wgsl.expected.ir.dxc.hlsl
index fd28383..334e6e8e 100644
--- a/test/tint/builtins/gen/literal/textureLoad/5b0f5b.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureLoad/5b0f5b.wgsl.expected.ir.dxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureLoad
+..\..\src\tint\utils\containers\slice.h:216 internal compiler error: TINT_ASSERT(i < Length())
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/literal/textureLoad/5b0f5b.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/textureLoad/5b0f5b.wgsl.expected.ir.fxc.hlsl
index fd28383..334e6e8e 100644
--- a/test/tint/builtins/gen/literal/textureLoad/5b0f5b.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureLoad/5b0f5b.wgsl.expected.ir.fxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureLoad
+..\..\src\tint\utils\containers\slice.h:216 internal compiler error: TINT_ASSERT(i < Length())
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/literal/textureLoad/5b4947.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/textureLoad/5b4947.wgsl.expected.ir.dxc.hlsl
index fd28383..334e6e8e 100644
--- a/test/tint/builtins/gen/literal/textureLoad/5b4947.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureLoad/5b4947.wgsl.expected.ir.dxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureLoad
+..\..\src\tint\utils\containers\slice.h:216 internal compiler error: TINT_ASSERT(i < Length())
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/literal/textureLoad/5b4947.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/textureLoad/5b4947.wgsl.expected.ir.fxc.hlsl
index fd28383..334e6e8e 100644
--- a/test/tint/builtins/gen/literal/textureLoad/5b4947.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureLoad/5b4947.wgsl.expected.ir.fxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureLoad
+..\..\src\tint\utils\containers\slice.h:216 internal compiler error: TINT_ASSERT(i < Length())
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/literal/textureLoad/5bb7fb.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/textureLoad/5bb7fb.wgsl.expected.ir.dxc.hlsl
index fd28383..334e6e8e 100644
--- a/test/tint/builtins/gen/literal/textureLoad/5bb7fb.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureLoad/5bb7fb.wgsl.expected.ir.dxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureLoad
+..\..\src\tint\utils\containers\slice.h:216 internal compiler error: TINT_ASSERT(i < Length())
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/literal/textureLoad/5bb7fb.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/textureLoad/5bb7fb.wgsl.expected.ir.fxc.hlsl
index fd28383..334e6e8e 100644
--- a/test/tint/builtins/gen/literal/textureLoad/5bb7fb.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureLoad/5bb7fb.wgsl.expected.ir.fxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureLoad
+..\..\src\tint\utils\containers\slice.h:216 internal compiler error: TINT_ASSERT(i < Length())
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/literal/textureLoad/5c69f8.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/textureLoad/5c69f8.wgsl.expected.ir.dxc.hlsl
index fd28383..334e6e8e 100644
--- a/test/tint/builtins/gen/literal/textureLoad/5c69f8.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureLoad/5c69f8.wgsl.expected.ir.dxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureLoad
+..\..\src\tint\utils\containers\slice.h:216 internal compiler error: TINT_ASSERT(i < Length())
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/literal/textureLoad/5c69f8.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/textureLoad/5c69f8.wgsl.expected.ir.fxc.hlsl
index fd28383..334e6e8e 100644
--- a/test/tint/builtins/gen/literal/textureLoad/5c69f8.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureLoad/5c69f8.wgsl.expected.ir.fxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureLoad
+..\..\src\tint\utils\containers\slice.h:216 internal compiler error: TINT_ASSERT(i < Length())
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/literal/textureLoad/5cd3fc.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/textureLoad/5cd3fc.wgsl.expected.ir.dxc.hlsl
index fd28383..334e6e8e 100644
--- a/test/tint/builtins/gen/literal/textureLoad/5cd3fc.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureLoad/5cd3fc.wgsl.expected.ir.dxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureLoad
+..\..\src\tint\utils\containers\slice.h:216 internal compiler error: TINT_ASSERT(i < Length())
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/literal/textureLoad/5cd3fc.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/textureLoad/5cd3fc.wgsl.expected.ir.fxc.hlsl
index fd28383..334e6e8e 100644
--- a/test/tint/builtins/gen/literal/textureLoad/5cd3fc.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureLoad/5cd3fc.wgsl.expected.ir.fxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureLoad
+..\..\src\tint\utils\containers\slice.h:216 internal compiler error: TINT_ASSERT(i < Length())
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/literal/textureLoad/5cee3b.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/textureLoad/5cee3b.wgsl.expected.ir.dxc.hlsl
index fd28383..334e6e8e 100644
--- a/test/tint/builtins/gen/literal/textureLoad/5cee3b.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureLoad/5cee3b.wgsl.expected.ir.dxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureLoad
+..\..\src\tint\utils\containers\slice.h:216 internal compiler error: TINT_ASSERT(i < Length())
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/literal/textureLoad/5cee3b.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/textureLoad/5cee3b.wgsl.expected.ir.fxc.hlsl
index fd28383..334e6e8e 100644
--- a/test/tint/builtins/gen/literal/textureLoad/5cee3b.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureLoad/5cee3b.wgsl.expected.ir.fxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureLoad
+..\..\src\tint\utils\containers\slice.h:216 internal compiler error: TINT_ASSERT(i < Length())
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/literal/textureLoad/5d0a2f.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/textureLoad/5d0a2f.wgsl.expected.ir.dxc.hlsl
index fd28383..334e6e8e 100644
--- a/test/tint/builtins/gen/literal/textureLoad/5d0a2f.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureLoad/5d0a2f.wgsl.expected.ir.dxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureLoad
+..\..\src\tint\utils\containers\slice.h:216 internal compiler error: TINT_ASSERT(i < Length())
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/literal/textureLoad/5d0a2f.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/textureLoad/5d0a2f.wgsl.expected.ir.fxc.hlsl
index fd28383..334e6e8e 100644
--- a/test/tint/builtins/gen/literal/textureLoad/5d0a2f.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureLoad/5d0a2f.wgsl.expected.ir.fxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureLoad
+..\..\src\tint\utils\containers\slice.h:216 internal compiler error: TINT_ASSERT(i < Length())
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/literal/textureLoad/5d4042.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/textureLoad/5d4042.wgsl.expected.ir.dxc.hlsl
index fd28383..334e6e8e 100644
--- a/test/tint/builtins/gen/literal/textureLoad/5d4042.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureLoad/5d4042.wgsl.expected.ir.dxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureLoad
+..\..\src\tint\utils\containers\slice.h:216 internal compiler error: TINT_ASSERT(i < Length())
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/literal/textureLoad/5d4042.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/textureLoad/5d4042.wgsl.expected.ir.fxc.hlsl
index fd28383..334e6e8e 100644
--- a/test/tint/builtins/gen/literal/textureLoad/5d4042.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureLoad/5d4042.wgsl.expected.ir.fxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureLoad
+..\..\src\tint\utils\containers\slice.h:216 internal compiler error: TINT_ASSERT(i < Length())
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/literal/textureLoad/5dd4c7.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/textureLoad/5dd4c7.wgsl.expected.ir.dxc.hlsl
index fd28383..334e6e8e 100644
--- a/test/tint/builtins/gen/literal/textureLoad/5dd4c7.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureLoad/5dd4c7.wgsl.expected.ir.dxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureLoad
+..\..\src\tint\utils\containers\slice.h:216 internal compiler error: TINT_ASSERT(i < Length())
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/literal/textureLoad/5dd4c7.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/textureLoad/5dd4c7.wgsl.expected.ir.fxc.hlsl
index fd28383..334e6e8e 100644
--- a/test/tint/builtins/gen/literal/textureLoad/5dd4c7.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureLoad/5dd4c7.wgsl.expected.ir.fxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureLoad
+..\..\src\tint\utils\containers\slice.h:216 internal compiler error: TINT_ASSERT(i < Length())
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/literal/textureLoad/5e17a7.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/textureLoad/5e17a7.wgsl.expected.ir.dxc.hlsl
index fd28383..334e6e8e 100644
--- a/test/tint/builtins/gen/literal/textureLoad/5e17a7.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureLoad/5e17a7.wgsl.expected.ir.dxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureLoad
+..\..\src\tint\utils\containers\slice.h:216 internal compiler error: TINT_ASSERT(i < Length())
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/literal/textureLoad/5e17a7.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/textureLoad/5e17a7.wgsl.expected.ir.fxc.hlsl
index fd28383..334e6e8e 100644
--- a/test/tint/builtins/gen/literal/textureLoad/5e17a7.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureLoad/5e17a7.wgsl.expected.ir.fxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureLoad
+..\..\src\tint\utils\containers\slice.h:216 internal compiler error: TINT_ASSERT(i < Length())
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/literal/textureLoad/5e1843.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/textureLoad/5e1843.wgsl.expected.ir.dxc.hlsl
index fd28383..334e6e8e 100644
--- a/test/tint/builtins/gen/literal/textureLoad/5e1843.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureLoad/5e1843.wgsl.expected.ir.dxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureLoad
+..\..\src\tint\utils\containers\slice.h:216 internal compiler error: TINT_ASSERT(i < Length())
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/literal/textureLoad/5e1843.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/textureLoad/5e1843.wgsl.expected.ir.fxc.hlsl
index fd28383..334e6e8e 100644
--- a/test/tint/builtins/gen/literal/textureLoad/5e1843.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureLoad/5e1843.wgsl.expected.ir.fxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureLoad
+..\..\src\tint\utils\containers\slice.h:216 internal compiler error: TINT_ASSERT(i < Length())
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/literal/textureLoad/5e8d3f.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/textureLoad/5e8d3f.wgsl.expected.ir.dxc.hlsl
index fd28383..334e6e8e 100644
--- a/test/tint/builtins/gen/literal/textureLoad/5e8d3f.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureLoad/5e8d3f.wgsl.expected.ir.dxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureLoad
+..\..\src\tint\utils\containers\slice.h:216 internal compiler error: TINT_ASSERT(i < Length())
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/literal/textureLoad/5e8d3f.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/textureLoad/5e8d3f.wgsl.expected.ir.fxc.hlsl
index fd28383..334e6e8e 100644
--- a/test/tint/builtins/gen/literal/textureLoad/5e8d3f.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureLoad/5e8d3f.wgsl.expected.ir.fxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureLoad
+..\..\src\tint\utils\containers\slice.h:216 internal compiler error: TINT_ASSERT(i < Length())
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/literal/textureLoad/5ed6ad.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/textureLoad/5ed6ad.wgsl.expected.ir.dxc.hlsl
index fd28383..334e6e8e 100644
--- a/test/tint/builtins/gen/literal/textureLoad/5ed6ad.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureLoad/5ed6ad.wgsl.expected.ir.dxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureLoad
+..\..\src\tint\utils\containers\slice.h:216 internal compiler error: TINT_ASSERT(i < Length())
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/literal/textureLoad/5ed6ad.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/textureLoad/5ed6ad.wgsl.expected.ir.fxc.hlsl
index fd28383..334e6e8e 100644
--- a/test/tint/builtins/gen/literal/textureLoad/5ed6ad.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureLoad/5ed6ad.wgsl.expected.ir.fxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureLoad
+..\..\src\tint\utils\containers\slice.h:216 internal compiler error: TINT_ASSERT(i < Length())
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/literal/textureLoad/5f4473.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/textureLoad/5f4473.wgsl.expected.ir.dxc.hlsl
index fd28383..334e6e8e 100644
--- a/test/tint/builtins/gen/literal/textureLoad/5f4473.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureLoad/5f4473.wgsl.expected.ir.dxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureLoad
+..\..\src\tint\utils\containers\slice.h:216 internal compiler error: TINT_ASSERT(i < Length())
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/literal/textureLoad/5f4473.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/textureLoad/5f4473.wgsl.expected.ir.fxc.hlsl
index fd28383..334e6e8e 100644
--- a/test/tint/builtins/gen/literal/textureLoad/5f4473.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureLoad/5f4473.wgsl.expected.ir.fxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureLoad
+..\..\src\tint\utils\containers\slice.h:216 internal compiler error: TINT_ASSERT(i < Length())
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/literal/textureLoad/5feb4d.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/textureLoad/5feb4d.wgsl.expected.ir.dxc.hlsl
index fd28383..334e6e8e 100644
--- a/test/tint/builtins/gen/literal/textureLoad/5feb4d.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureLoad/5feb4d.wgsl.expected.ir.dxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureLoad
+..\..\src\tint\utils\containers\slice.h:216 internal compiler error: TINT_ASSERT(i < Length())
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/literal/textureLoad/5feb4d.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/textureLoad/5feb4d.wgsl.expected.ir.fxc.hlsl
index fd28383..334e6e8e 100644
--- a/test/tint/builtins/gen/literal/textureLoad/5feb4d.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureLoad/5feb4d.wgsl.expected.ir.fxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureLoad
+..\..\src\tint\utils\containers\slice.h:216 internal compiler error: TINT_ASSERT(i < Length())
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/literal/textureLoad/6154d4.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/textureLoad/6154d4.wgsl.expected.ir.dxc.hlsl
index fd28383..ca242d0 100644
--- a/test/tint/builtins/gen/literal/textureLoad/6154d4.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureLoad/6154d4.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,45 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  uint4 prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureLoad
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation uint4 VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+Texture2D<uint4> arg_0 : register(t0, space1);
+uint4 textureLoad_6154d4() {
+  Texture2D<uint4> v = arg_0;
+  int2 v_1 = int2((1).xx);
+  uint4 res = uint4(v.Load(int3(v_1, int(1))));
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store4(0u, textureLoad_6154d4());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store4(0u, textureLoad_6154d4());
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = textureLoad_6154d4();
+  VertexOutput v_2 = tint_symbol;
+  return v_2;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_3 = vertex_main_inner();
+  VertexOutput v_4 = v_3;
+  VertexOutput v_5 = v_3;
+  vertex_main_outputs v_6 = {v_5.prevent_dce, v_4.pos};
+  return v_6;
+}
+
diff --git a/test/tint/builtins/gen/literal/textureLoad/6154d4.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/textureLoad/6154d4.wgsl.expected.ir.fxc.hlsl
index fd28383..ca242d0 100644
--- a/test/tint/builtins/gen/literal/textureLoad/6154d4.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureLoad/6154d4.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,45 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  uint4 prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureLoad
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation uint4 VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+Texture2D<uint4> arg_0 : register(t0, space1);
+uint4 textureLoad_6154d4() {
+  Texture2D<uint4> v = arg_0;
+  int2 v_1 = int2((1).xx);
+  uint4 res = uint4(v.Load(int3(v_1, int(1))));
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store4(0u, textureLoad_6154d4());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store4(0u, textureLoad_6154d4());
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = textureLoad_6154d4();
+  VertexOutput v_2 = tint_symbol;
+  return v_2;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_3 = vertex_main_inner();
+  VertexOutput v_4 = v_3;
+  VertexOutput v_5 = v_3;
+  vertex_main_outputs v_6 = {v_5.prevent_dce, v_4.pos};
+  return v_6;
+}
+
diff --git a/test/tint/builtins/gen/literal/textureLoad/61e2e8.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/textureLoad/61e2e8.wgsl.expected.ir.dxc.hlsl
index fd28383..334e6e8e 100644
--- a/test/tint/builtins/gen/literal/textureLoad/61e2e8.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureLoad/61e2e8.wgsl.expected.ir.dxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureLoad
+..\..\src\tint\utils\containers\slice.h:216 internal compiler error: TINT_ASSERT(i < Length())
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/literal/textureLoad/61e2e8.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/textureLoad/61e2e8.wgsl.expected.ir.fxc.hlsl
index fd28383..334e6e8e 100644
--- a/test/tint/builtins/gen/literal/textureLoad/61e2e8.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureLoad/61e2e8.wgsl.expected.ir.fxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureLoad
+..\..\src\tint\utils\containers\slice.h:216 internal compiler error: TINT_ASSERT(i < Length())
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/literal/textureLoad/620caa.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/textureLoad/620caa.wgsl.expected.ir.dxc.hlsl
index fd28383..334e6e8e 100644
--- a/test/tint/builtins/gen/literal/textureLoad/620caa.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureLoad/620caa.wgsl.expected.ir.dxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureLoad
+..\..\src\tint\utils\containers\slice.h:216 internal compiler error: TINT_ASSERT(i < Length())
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/literal/textureLoad/620caa.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/textureLoad/620caa.wgsl.expected.ir.fxc.hlsl
index fd28383..334e6e8e 100644
--- a/test/tint/builtins/gen/literal/textureLoad/620caa.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureLoad/620caa.wgsl.expected.ir.fxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureLoad
+..\..\src\tint\utils\containers\slice.h:216 internal compiler error: TINT_ASSERT(i < Length())
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/literal/textureLoad/622278.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/textureLoad/622278.wgsl.expected.ir.dxc.hlsl
index fd28383..334e6e8e 100644
--- a/test/tint/builtins/gen/literal/textureLoad/622278.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureLoad/622278.wgsl.expected.ir.dxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureLoad
+..\..\src\tint\utils\containers\slice.h:216 internal compiler error: TINT_ASSERT(i < Length())
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/literal/textureLoad/622278.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/textureLoad/622278.wgsl.expected.ir.fxc.hlsl
index fd28383..334e6e8e 100644
--- a/test/tint/builtins/gen/literal/textureLoad/622278.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureLoad/622278.wgsl.expected.ir.fxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureLoad
+..\..\src\tint\utils\containers\slice.h:216 internal compiler error: TINT_ASSERT(i < Length())
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/literal/textureLoad/6273b1.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/textureLoad/6273b1.wgsl.expected.ir.dxc.hlsl
index fd28383..f162eb8 100644
--- a/test/tint/builtins/gen/literal/textureLoad/6273b1.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureLoad/6273b1.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,45 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  float prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureLoad
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation float VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+Texture2DMS<float4> arg_0 : register(t0, space1);
+float textureLoad_6273b1() {
+  Texture2DMS<float4> v = arg_0;
+  int2 v_1 = int2((1).xx);
+  float res = v.Load(v_1, int(1)).x;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store(0u, asuint(textureLoad_6273b1()));
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store(0u, asuint(textureLoad_6273b1()));
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = textureLoad_6273b1();
+  VertexOutput v_2 = tint_symbol;
+  return v_2;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_3 = vertex_main_inner();
+  VertexOutput v_4 = v_3;
+  VertexOutput v_5 = v_3;
+  vertex_main_outputs v_6 = {v_5.prevent_dce, v_4.pos};
+  return v_6;
+}
+
diff --git a/test/tint/builtins/gen/literal/textureLoad/6273b1.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/textureLoad/6273b1.wgsl.expected.ir.fxc.hlsl
index fd28383..f162eb8 100644
--- a/test/tint/builtins/gen/literal/textureLoad/6273b1.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureLoad/6273b1.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,45 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  float prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureLoad
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation float VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+Texture2DMS<float4> arg_0 : register(t0, space1);
+float textureLoad_6273b1() {
+  Texture2DMS<float4> v = arg_0;
+  int2 v_1 = int2((1).xx);
+  float res = v.Load(v_1, int(1)).x;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store(0u, asuint(textureLoad_6273b1()));
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store(0u, asuint(textureLoad_6273b1()));
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = textureLoad_6273b1();
+  VertexOutput v_2 = tint_symbol;
+  return v_2;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_3 = vertex_main_inner();
+  VertexOutput v_4 = v_3;
+  VertexOutput v_5 = v_3;
+  vertex_main_outputs v_6 = {v_5.prevent_dce, v_4.pos};
+  return v_6;
+}
+
diff --git a/test/tint/builtins/gen/literal/textureLoad/62d125.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/textureLoad/62d125.wgsl.expected.ir.dxc.hlsl
index fd28383..334e6e8e 100644
--- a/test/tint/builtins/gen/literal/textureLoad/62d125.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureLoad/62d125.wgsl.expected.ir.dxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureLoad
+..\..\src\tint\utils\containers\slice.h:216 internal compiler error: TINT_ASSERT(i < Length())
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/literal/textureLoad/62d125.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/textureLoad/62d125.wgsl.expected.ir.fxc.hlsl
index fd28383..334e6e8e 100644
--- a/test/tint/builtins/gen/literal/textureLoad/62d125.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureLoad/62d125.wgsl.expected.ir.fxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureLoad
+..\..\src\tint\utils\containers\slice.h:216 internal compiler error: TINT_ASSERT(i < Length())
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/literal/textureLoad/62d1de.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/textureLoad/62d1de.wgsl.expected.ir.dxc.hlsl
index fd28383..4deceb2 100644
--- a/test/tint/builtins/gen/literal/textureLoad/62d1de.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureLoad/62d1de.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,45 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  int4 prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureLoad
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation int4 VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+Texture1D<int4> arg_0 : register(t0, space1);
+int4 textureLoad_62d1de() {
+  Texture1D<int4> v = arg_0;
+  int v_1 = int(1);
+  int4 res = int4(v.Load(int2(v_1, int(1u))));
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store4(0u, asuint(textureLoad_62d1de()));
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store4(0u, asuint(textureLoad_62d1de()));
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = textureLoad_62d1de();
+  VertexOutput v_2 = tint_symbol;
+  return v_2;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_3 = vertex_main_inner();
+  VertexOutput v_4 = v_3;
+  VertexOutput v_5 = v_3;
+  vertex_main_outputs v_6 = {v_5.prevent_dce, v_4.pos};
+  return v_6;
+}
+
diff --git a/test/tint/builtins/gen/literal/textureLoad/62d1de.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/textureLoad/62d1de.wgsl.expected.ir.fxc.hlsl
index fd28383..4deceb2 100644
--- a/test/tint/builtins/gen/literal/textureLoad/62d1de.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureLoad/62d1de.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,45 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  int4 prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureLoad
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation int4 VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+Texture1D<int4> arg_0 : register(t0, space1);
+int4 textureLoad_62d1de() {
+  Texture1D<int4> v = arg_0;
+  int v_1 = int(1);
+  int4 res = int4(v.Load(int2(v_1, int(1u))));
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store4(0u, asuint(textureLoad_62d1de()));
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store4(0u, asuint(textureLoad_62d1de()));
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = textureLoad_62d1de();
+  VertexOutput v_2 = tint_symbol;
+  return v_2;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_3 = vertex_main_inner();
+  VertexOutput v_4 = v_3;
+  VertexOutput v_5 = v_3;
+  vertex_main_outputs v_6 = {v_5.prevent_dce, v_4.pos};
+  return v_6;
+}
+
diff --git a/test/tint/builtins/gen/literal/textureLoad/639962.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/textureLoad/639962.wgsl.expected.ir.dxc.hlsl
index fd28383..6b1335e 100644
--- a/test/tint/builtins/gen/literal/textureLoad/639962.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureLoad/639962.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,45 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  int4 prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureLoad
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation int4 VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+Texture2DMS<int4> arg_0 : register(t0, space1);
+int4 textureLoad_639962() {
+  Texture2DMS<int4> v = arg_0;
+  int2 v_1 = int2((1u).xx);
+  int4 res = int4(v.Load(v_1, int(1u)));
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store4(0u, asuint(textureLoad_639962()));
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store4(0u, asuint(textureLoad_639962()));
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = textureLoad_639962();
+  VertexOutput v_2 = tint_symbol;
+  return v_2;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_3 = vertex_main_inner();
+  VertexOutput v_4 = v_3;
+  VertexOutput v_5 = v_3;
+  vertex_main_outputs v_6 = {v_5.prevent_dce, v_4.pos};
+  return v_6;
+}
+
diff --git a/test/tint/builtins/gen/literal/textureLoad/639962.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/textureLoad/639962.wgsl.expected.ir.fxc.hlsl
index fd28383..6b1335e 100644
--- a/test/tint/builtins/gen/literal/textureLoad/639962.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureLoad/639962.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,45 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  int4 prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureLoad
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation int4 VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+Texture2DMS<int4> arg_0 : register(t0, space1);
+int4 textureLoad_639962() {
+  Texture2DMS<int4> v = arg_0;
+  int2 v_1 = int2((1u).xx);
+  int4 res = int4(v.Load(v_1, int(1u)));
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store4(0u, asuint(textureLoad_639962()));
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store4(0u, asuint(textureLoad_639962()));
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = textureLoad_639962();
+  VertexOutput v_2 = tint_symbol;
+  return v_2;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_3 = vertex_main_inner();
+  VertexOutput v_4 = v_3;
+  VertexOutput v_5 = v_3;
+  vertex_main_outputs v_6 = {v_5.prevent_dce, v_4.pos};
+  return v_6;
+}
+
diff --git a/test/tint/builtins/gen/literal/textureLoad/63be18.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/textureLoad/63be18.wgsl.expected.ir.dxc.hlsl
index fd28383..334e6e8e 100644
--- a/test/tint/builtins/gen/literal/textureLoad/63be18.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureLoad/63be18.wgsl.expected.ir.dxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureLoad
+..\..\src\tint\utils\containers\slice.h:216 internal compiler error: TINT_ASSERT(i < Length())
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/literal/textureLoad/63be18.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/textureLoad/63be18.wgsl.expected.ir.fxc.hlsl
index fd28383..334e6e8e 100644
--- a/test/tint/builtins/gen/literal/textureLoad/63be18.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureLoad/63be18.wgsl.expected.ir.fxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureLoad
+..\..\src\tint\utils\containers\slice.h:216 internal compiler error: TINT_ASSERT(i < Length())
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/literal/textureLoad/64c372.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/textureLoad/64c372.wgsl.expected.ir.dxc.hlsl
index fd28383..334e6e8e 100644
--- a/test/tint/builtins/gen/literal/textureLoad/64c372.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureLoad/64c372.wgsl.expected.ir.dxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureLoad
+..\..\src\tint\utils\containers\slice.h:216 internal compiler error: TINT_ASSERT(i < Length())
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/literal/textureLoad/64c372.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/textureLoad/64c372.wgsl.expected.ir.fxc.hlsl
index fd28383..334e6e8e 100644
--- a/test/tint/builtins/gen/literal/textureLoad/64c372.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureLoad/64c372.wgsl.expected.ir.fxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureLoad
+..\..\src\tint\utils\containers\slice.h:216 internal compiler error: TINT_ASSERT(i < Length())
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/literal/textureLoad/656d76.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/textureLoad/656d76.wgsl.expected.ir.dxc.hlsl
index fd28383..873c19a 100644
--- a/test/tint/builtins/gen/literal/textureLoad/656d76.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureLoad/656d76.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,46 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  uint4 prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureLoad
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation uint4 VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+Texture2DArray<uint4> arg_0 : register(t0, space1);
+uint4 textureLoad_656d76() {
+  Texture2DArray<uint4> v = arg_0;
+  int2 v_1 = int2((1).xx);
+  int v_2 = int(1);
+  uint4 res = uint4(v.Load(int4(v_1, v_2, int(1u))));
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store4(0u, textureLoad_656d76());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store4(0u, textureLoad_656d76());
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = textureLoad_656d76();
+  VertexOutput v_3 = tint_symbol;
+  return v_3;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_4 = vertex_main_inner();
+  VertexOutput v_5 = v_4;
+  VertexOutput v_6 = v_4;
+  vertex_main_outputs v_7 = {v_6.prevent_dce, v_5.pos};
+  return v_7;
+}
+
diff --git a/test/tint/builtins/gen/literal/textureLoad/656d76.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/textureLoad/656d76.wgsl.expected.ir.fxc.hlsl
index fd28383..873c19a 100644
--- a/test/tint/builtins/gen/literal/textureLoad/656d76.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureLoad/656d76.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,46 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  uint4 prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureLoad
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation uint4 VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+Texture2DArray<uint4> arg_0 : register(t0, space1);
+uint4 textureLoad_656d76() {
+  Texture2DArray<uint4> v = arg_0;
+  int2 v_1 = int2((1).xx);
+  int v_2 = int(1);
+  uint4 res = uint4(v.Load(int4(v_1, v_2, int(1u))));
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store4(0u, textureLoad_656d76());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store4(0u, textureLoad_656d76());
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = textureLoad_656d76();
+  VertexOutput v_3 = tint_symbol;
+  return v_3;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_4 = vertex_main_inner();
+  VertexOutput v_5 = v_4;
+  VertexOutput v_6 = v_4;
+  vertex_main_outputs v_7 = {v_6.prevent_dce, v_5.pos};
+  return v_7;
+}
+
diff --git a/test/tint/builtins/gen/literal/textureLoad/65a4d0.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/textureLoad/65a4d0.wgsl.expected.ir.dxc.hlsl
index fd28383..334e6e8e 100644
--- a/test/tint/builtins/gen/literal/textureLoad/65a4d0.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureLoad/65a4d0.wgsl.expected.ir.dxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureLoad
+..\..\src\tint\utils\containers\slice.h:216 internal compiler error: TINT_ASSERT(i < Length())
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/literal/textureLoad/65a4d0.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/textureLoad/65a4d0.wgsl.expected.ir.fxc.hlsl
index fd28383..334e6e8e 100644
--- a/test/tint/builtins/gen/literal/textureLoad/65a4d0.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureLoad/65a4d0.wgsl.expected.ir.fxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureLoad
+..\..\src\tint\utils\containers\slice.h:216 internal compiler error: TINT_ASSERT(i < Length())
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/literal/textureLoad/666010.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/textureLoad/666010.wgsl.expected.ir.dxc.hlsl
index fd28383..334e6e8e 100644
--- a/test/tint/builtins/gen/literal/textureLoad/666010.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureLoad/666010.wgsl.expected.ir.dxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureLoad
+..\..\src\tint\utils\containers\slice.h:216 internal compiler error: TINT_ASSERT(i < Length())
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/literal/textureLoad/666010.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/textureLoad/666010.wgsl.expected.ir.fxc.hlsl
index fd28383..334e6e8e 100644
--- a/test/tint/builtins/gen/literal/textureLoad/666010.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureLoad/666010.wgsl.expected.ir.fxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureLoad
+..\..\src\tint\utils\containers\slice.h:216 internal compiler error: TINT_ASSERT(i < Length())
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/literal/textureLoad/6678b6.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/textureLoad/6678b6.wgsl.expected.ir.dxc.hlsl
index fd28383..334e6e8e 100644
--- a/test/tint/builtins/gen/literal/textureLoad/6678b6.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureLoad/6678b6.wgsl.expected.ir.dxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureLoad
+..\..\src\tint\utils\containers\slice.h:216 internal compiler error: TINT_ASSERT(i < Length())
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/literal/textureLoad/6678b6.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/textureLoad/6678b6.wgsl.expected.ir.fxc.hlsl
index fd28383..334e6e8e 100644
--- a/test/tint/builtins/gen/literal/textureLoad/6678b6.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureLoad/6678b6.wgsl.expected.ir.fxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureLoad
+..\..\src\tint\utils\containers\slice.h:216 internal compiler error: TINT_ASSERT(i < Length())
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/literal/textureLoad/66be47.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/textureLoad/66be47.wgsl.expected.ir.dxc.hlsl
index fd28383..59636e2 100644
--- a/test/tint/builtins/gen/literal/textureLoad/66be47.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureLoad/66be47.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,46 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  float prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureLoad
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation float VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+Texture2DArray arg_0 : register(t0, space1);
+float textureLoad_66be47() {
+  Texture2DArray v = arg_0;
+  int2 v_1 = int2((1).xx);
+  int v_2 = int(1u);
+  float res = v.Load(int4(v_1, v_2, int(1u))).x;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store(0u, asuint(textureLoad_66be47()));
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store(0u, asuint(textureLoad_66be47()));
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = textureLoad_66be47();
+  VertexOutput v_3 = tint_symbol;
+  return v_3;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_4 = vertex_main_inner();
+  VertexOutput v_5 = v_4;
+  VertexOutput v_6 = v_4;
+  vertex_main_outputs v_7 = {v_6.prevent_dce, v_5.pos};
+  return v_7;
+}
+
diff --git a/test/tint/builtins/gen/literal/textureLoad/66be47.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/textureLoad/66be47.wgsl.expected.ir.fxc.hlsl
index fd28383..59636e2 100644
--- a/test/tint/builtins/gen/literal/textureLoad/66be47.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureLoad/66be47.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,46 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  float prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureLoad
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation float VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+Texture2DArray arg_0 : register(t0, space1);
+float textureLoad_66be47() {
+  Texture2DArray v = arg_0;
+  int2 v_1 = int2((1).xx);
+  int v_2 = int(1u);
+  float res = v.Load(int4(v_1, v_2, int(1u))).x;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store(0u, asuint(textureLoad_66be47()));
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store(0u, asuint(textureLoad_66be47()));
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = textureLoad_66be47();
+  VertexOutput v_3 = tint_symbol;
+  return v_3;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_4 = vertex_main_inner();
+  VertexOutput v_5 = v_4;
+  VertexOutput v_6 = v_4;
+  vertex_main_outputs v_7 = {v_6.prevent_dce, v_5.pos};
+  return v_7;
+}
+
diff --git a/test/tint/builtins/gen/literal/textureLoad/67d826.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/textureLoad/67d826.wgsl.expected.ir.dxc.hlsl
index fd28383..334e6e8e 100644
--- a/test/tint/builtins/gen/literal/textureLoad/67d826.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureLoad/67d826.wgsl.expected.ir.dxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureLoad
+..\..\src\tint\utils\containers\slice.h:216 internal compiler error: TINT_ASSERT(i < Length())
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/literal/textureLoad/67d826.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/textureLoad/67d826.wgsl.expected.ir.fxc.hlsl
index fd28383..334e6e8e 100644
--- a/test/tint/builtins/gen/literal/textureLoad/67d826.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureLoad/67d826.wgsl.expected.ir.fxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureLoad
+..\..\src\tint\utils\containers\slice.h:216 internal compiler error: TINT_ASSERT(i < Length())
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/literal/textureLoad/67edca.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/textureLoad/67edca.wgsl.expected.ir.dxc.hlsl
index fd28383..334e6e8e 100644
--- a/test/tint/builtins/gen/literal/textureLoad/67edca.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureLoad/67edca.wgsl.expected.ir.dxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureLoad
+..\..\src\tint\utils\containers\slice.h:216 internal compiler error: TINT_ASSERT(i < Length())
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/literal/textureLoad/67edca.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/textureLoad/67edca.wgsl.expected.ir.fxc.hlsl
index fd28383..334e6e8e 100644
--- a/test/tint/builtins/gen/literal/textureLoad/67edca.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureLoad/67edca.wgsl.expected.ir.fxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureLoad
+..\..\src\tint\utils\containers\slice.h:216 internal compiler error: TINT_ASSERT(i < Length())
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/literal/textureLoad/68d273.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/textureLoad/68d273.wgsl.expected.ir.dxc.hlsl
index fd28383..334e6e8e 100644
--- a/test/tint/builtins/gen/literal/textureLoad/68d273.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureLoad/68d273.wgsl.expected.ir.dxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureLoad
+..\..\src\tint\utils\containers\slice.h:216 internal compiler error: TINT_ASSERT(i < Length())
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/literal/textureLoad/68d273.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/textureLoad/68d273.wgsl.expected.ir.fxc.hlsl
index fd28383..334e6e8e 100644
--- a/test/tint/builtins/gen/literal/textureLoad/68d273.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureLoad/68d273.wgsl.expected.ir.fxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureLoad
+..\..\src\tint\utils\containers\slice.h:216 internal compiler error: TINT_ASSERT(i < Length())
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/literal/textureLoad/6925bc.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/textureLoad/6925bc.wgsl.expected.ir.dxc.hlsl
index fd28383..17b36b4 100644
--- a/test/tint/builtins/gen/literal/textureLoad/6925bc.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureLoad/6925bc.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,45 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  float prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureLoad
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation float VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+Texture2DMS<float4> arg_0 : register(t0, space1);
+float textureLoad_6925bc() {
+  Texture2DMS<float4> v = arg_0;
+  int2 v_1 = int2((1).xx);
+  float res = v.Load(v_1, int(1u)).x;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store(0u, asuint(textureLoad_6925bc()));
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store(0u, asuint(textureLoad_6925bc()));
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = textureLoad_6925bc();
+  VertexOutput v_2 = tint_symbol;
+  return v_2;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_3 = vertex_main_inner();
+  VertexOutput v_4 = v_3;
+  VertexOutput v_5 = v_3;
+  vertex_main_outputs v_6 = {v_5.prevent_dce, v_4.pos};
+  return v_6;
+}
+
diff --git a/test/tint/builtins/gen/literal/textureLoad/6925bc.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/textureLoad/6925bc.wgsl.expected.ir.fxc.hlsl
index fd28383..17b36b4 100644
--- a/test/tint/builtins/gen/literal/textureLoad/6925bc.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureLoad/6925bc.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,45 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  float prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureLoad
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation float VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+Texture2DMS<float4> arg_0 : register(t0, space1);
+float textureLoad_6925bc() {
+  Texture2DMS<float4> v = arg_0;
+  int2 v_1 = int2((1).xx);
+  float res = v.Load(v_1, int(1u)).x;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store(0u, asuint(textureLoad_6925bc()));
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store(0u, asuint(textureLoad_6925bc()));
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = textureLoad_6925bc();
+  VertexOutput v_2 = tint_symbol;
+  return v_2;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_3 = vertex_main_inner();
+  VertexOutput v_4 = v_3;
+  VertexOutput v_5 = v_3;
+  vertex_main_outputs v_6 = {v_5.prevent_dce, v_4.pos};
+  return v_6;
+}
+
diff --git a/test/tint/builtins/gen/literal/textureLoad/69fee5.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/textureLoad/69fee5.wgsl.expected.ir.dxc.hlsl
index fd28383..334e6e8e 100644
--- a/test/tint/builtins/gen/literal/textureLoad/69fee5.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureLoad/69fee5.wgsl.expected.ir.dxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureLoad
+..\..\src\tint\utils\containers\slice.h:216 internal compiler error: TINT_ASSERT(i < Length())
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/literal/textureLoad/69fee5.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/textureLoad/69fee5.wgsl.expected.ir.fxc.hlsl
index fd28383..334e6e8e 100644
--- a/test/tint/builtins/gen/literal/textureLoad/69fee5.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureLoad/69fee5.wgsl.expected.ir.fxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureLoad
+..\..\src\tint\utils\containers\slice.h:216 internal compiler error: TINT_ASSERT(i < Length())
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/literal/textureLoad/6a6871.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/textureLoad/6a6871.wgsl.expected.ir.dxc.hlsl
index fd28383..334e6e8e 100644
--- a/test/tint/builtins/gen/literal/textureLoad/6a6871.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureLoad/6a6871.wgsl.expected.ir.dxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureLoad
+..\..\src\tint\utils\containers\slice.h:216 internal compiler error: TINT_ASSERT(i < Length())
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/literal/textureLoad/6a6871.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/textureLoad/6a6871.wgsl.expected.ir.fxc.hlsl
index fd28383..334e6e8e 100644
--- a/test/tint/builtins/gen/literal/textureLoad/6a6871.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureLoad/6a6871.wgsl.expected.ir.fxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureLoad
+..\..\src\tint\utils\containers\slice.h:216 internal compiler error: TINT_ASSERT(i < Length())
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/literal/textureLoad/6b77d4.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/textureLoad/6b77d4.wgsl.expected.ir.dxc.hlsl
index fd28383..71d8d8c 100644
--- a/test/tint/builtins/gen/literal/textureLoad/6b77d4.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureLoad/6b77d4.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,45 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  uint4 prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureLoad
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation uint4 VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+Texture1D<uint4> arg_0 : register(t0, space1);
+uint4 textureLoad_6b77d4() {
+  Texture1D<uint4> v = arg_0;
+  int v_1 = int(1);
+  uint4 res = uint4(v.Load(int2(v_1, int(1u))));
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store4(0u, textureLoad_6b77d4());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store4(0u, textureLoad_6b77d4());
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = textureLoad_6b77d4();
+  VertexOutput v_2 = tint_symbol;
+  return v_2;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_3 = vertex_main_inner();
+  VertexOutput v_4 = v_3;
+  VertexOutput v_5 = v_3;
+  vertex_main_outputs v_6 = {v_5.prevent_dce, v_4.pos};
+  return v_6;
+}
+
diff --git a/test/tint/builtins/gen/literal/textureLoad/6b77d4.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/textureLoad/6b77d4.wgsl.expected.ir.fxc.hlsl
index fd28383..71d8d8c 100644
--- a/test/tint/builtins/gen/literal/textureLoad/6b77d4.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureLoad/6b77d4.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,45 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  uint4 prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureLoad
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation uint4 VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+Texture1D<uint4> arg_0 : register(t0, space1);
+uint4 textureLoad_6b77d4() {
+  Texture1D<uint4> v = arg_0;
+  int v_1 = int(1);
+  uint4 res = uint4(v.Load(int2(v_1, int(1u))));
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store4(0u, textureLoad_6b77d4());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store4(0u, textureLoad_6b77d4());
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = textureLoad_6b77d4();
+  VertexOutput v_2 = tint_symbol;
+  return v_2;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_3 = vertex_main_inner();
+  VertexOutput v_4 = v_3;
+  VertexOutput v_5 = v_3;
+  vertex_main_outputs v_6 = {v_5.prevent_dce, v_4.pos};
+  return v_6;
+}
+
diff --git a/test/tint/builtins/gen/literal/textureLoad/6b8ba6.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/textureLoad/6b8ba6.wgsl.expected.ir.dxc.hlsl
index fd28383..334e6e8e 100644
--- a/test/tint/builtins/gen/literal/textureLoad/6b8ba6.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureLoad/6b8ba6.wgsl.expected.ir.dxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureLoad
+..\..\src\tint\utils\containers\slice.h:216 internal compiler error: TINT_ASSERT(i < Length())
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/literal/textureLoad/6b8ba6.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/textureLoad/6b8ba6.wgsl.expected.ir.fxc.hlsl
index fd28383..334e6e8e 100644
--- a/test/tint/builtins/gen/literal/textureLoad/6b8ba6.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureLoad/6b8ba6.wgsl.expected.ir.fxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureLoad
+..\..\src\tint\utils\containers\slice.h:216 internal compiler error: TINT_ASSERT(i < Length())
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/literal/textureLoad/6ba9ab.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/textureLoad/6ba9ab.wgsl.expected.ir.dxc.hlsl
index fd28383..334e6e8e 100644
--- a/test/tint/builtins/gen/literal/textureLoad/6ba9ab.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureLoad/6ba9ab.wgsl.expected.ir.dxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureLoad
+..\..\src\tint\utils\containers\slice.h:216 internal compiler error: TINT_ASSERT(i < Length())
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/literal/textureLoad/6ba9ab.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/textureLoad/6ba9ab.wgsl.expected.ir.fxc.hlsl
index fd28383..334e6e8e 100644
--- a/test/tint/builtins/gen/literal/textureLoad/6ba9ab.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureLoad/6ba9ab.wgsl.expected.ir.fxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureLoad
+..\..\src\tint\utils\containers\slice.h:216 internal compiler error: TINT_ASSERT(i < Length())
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/literal/textureLoad/6bf3e2.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/textureLoad/6bf3e2.wgsl.expected.ir.dxc.hlsl
index fd28383..334e6e8e 100644
--- a/test/tint/builtins/gen/literal/textureLoad/6bf3e2.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureLoad/6bf3e2.wgsl.expected.ir.dxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureLoad
+..\..\src\tint\utils\containers\slice.h:216 internal compiler error: TINT_ASSERT(i < Length())
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/literal/textureLoad/6bf3e2.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/textureLoad/6bf3e2.wgsl.expected.ir.fxc.hlsl
index fd28383..334e6e8e 100644
--- a/test/tint/builtins/gen/literal/textureLoad/6bf3e2.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureLoad/6bf3e2.wgsl.expected.ir.fxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureLoad
+..\..\src\tint\utils\containers\slice.h:216 internal compiler error: TINT_ASSERT(i < Length())
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/literal/textureLoad/6bf4b7.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/textureLoad/6bf4b7.wgsl.expected.ir.dxc.hlsl
index fd28383..6658571 100644
--- a/test/tint/builtins/gen/literal/textureLoad/6bf4b7.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureLoad/6bf4b7.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,45 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  uint4 prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureLoad
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation uint4 VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+Texture3D<uint4> arg_0 : register(t0, space1);
+uint4 textureLoad_6bf4b7() {
+  Texture3D<uint4> v = arg_0;
+  int3 v_1 = int3((1).xxx);
+  uint4 res = uint4(v.Load(int4(v_1, int(1u))));
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store4(0u, textureLoad_6bf4b7());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store4(0u, textureLoad_6bf4b7());
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = textureLoad_6bf4b7();
+  VertexOutput v_2 = tint_symbol;
+  return v_2;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_3 = vertex_main_inner();
+  VertexOutput v_4 = v_3;
+  VertexOutput v_5 = v_3;
+  vertex_main_outputs v_6 = {v_5.prevent_dce, v_4.pos};
+  return v_6;
+}
+
diff --git a/test/tint/builtins/gen/literal/textureLoad/6bf4b7.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/textureLoad/6bf4b7.wgsl.expected.ir.fxc.hlsl
index fd28383..6658571 100644
--- a/test/tint/builtins/gen/literal/textureLoad/6bf4b7.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureLoad/6bf4b7.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,45 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  uint4 prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureLoad
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation uint4 VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+Texture3D<uint4> arg_0 : register(t0, space1);
+uint4 textureLoad_6bf4b7() {
+  Texture3D<uint4> v = arg_0;
+  int3 v_1 = int3((1).xxx);
+  uint4 res = uint4(v.Load(int4(v_1, int(1u))));
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store4(0u, textureLoad_6bf4b7());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store4(0u, textureLoad_6bf4b7());
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = textureLoad_6bf4b7();
+  VertexOutput v_2 = tint_symbol;
+  return v_2;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_3 = vertex_main_inner();
+  VertexOutput v_4 = v_3;
+  VertexOutput v_5 = v_3;
+  vertex_main_outputs v_6 = {v_5.prevent_dce, v_4.pos};
+  return v_6;
+}
+
diff --git a/test/tint/builtins/gen/literal/textureLoad/6d1fb4.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/textureLoad/6d1fb4.wgsl.expected.ir.dxc.hlsl
index fd28383..334e6e8e 100644
--- a/test/tint/builtins/gen/literal/textureLoad/6d1fb4.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureLoad/6d1fb4.wgsl.expected.ir.dxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureLoad
+..\..\src\tint\utils\containers\slice.h:216 internal compiler error: TINT_ASSERT(i < Length())
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/literal/textureLoad/6d1fb4.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/textureLoad/6d1fb4.wgsl.expected.ir.fxc.hlsl
index fd28383..334e6e8e 100644
--- a/test/tint/builtins/gen/literal/textureLoad/6d1fb4.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureLoad/6d1fb4.wgsl.expected.ir.fxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureLoad
+..\..\src\tint\utils\containers\slice.h:216 internal compiler error: TINT_ASSERT(i < Length())
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/literal/textureLoad/6d376a.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/textureLoad/6d376a.wgsl.expected.ir.dxc.hlsl
index fd28383..7f79abb 100644
--- a/test/tint/builtins/gen/literal/textureLoad/6d376a.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureLoad/6d376a.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,45 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  float4 prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureLoad
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation float4 VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+Texture1D<float4> arg_0 : register(t0, space1);
+float4 textureLoad_6d376a() {
+  Texture1D<float4> v = arg_0;
+  int v_1 = int(1u);
+  float4 res = float4(v.Load(int2(v_1, int(1u))));
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store4(0u, asuint(textureLoad_6d376a()));
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store4(0u, asuint(textureLoad_6d376a()));
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = textureLoad_6d376a();
+  VertexOutput v_2 = tint_symbol;
+  return v_2;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_3 = vertex_main_inner();
+  VertexOutput v_4 = v_3;
+  VertexOutput v_5 = v_3;
+  vertex_main_outputs v_6 = {v_5.prevent_dce, v_4.pos};
+  return v_6;
+}
+
diff --git a/test/tint/builtins/gen/literal/textureLoad/6d376a.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/textureLoad/6d376a.wgsl.expected.ir.fxc.hlsl
index fd28383..7f79abb 100644
--- a/test/tint/builtins/gen/literal/textureLoad/6d376a.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureLoad/6d376a.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,45 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  float4 prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureLoad
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation float4 VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+Texture1D<float4> arg_0 : register(t0, space1);
+float4 textureLoad_6d376a() {
+  Texture1D<float4> v = arg_0;
+  int v_1 = int(1u);
+  float4 res = float4(v.Load(int2(v_1, int(1u))));
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store4(0u, asuint(textureLoad_6d376a()));
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store4(0u, asuint(textureLoad_6d376a()));
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = textureLoad_6d376a();
+  VertexOutput v_2 = tint_symbol;
+  return v_2;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_3 = vertex_main_inner();
+  VertexOutput v_4 = v_3;
+  VertexOutput v_5 = v_3;
+  vertex_main_outputs v_6 = {v_5.prevent_dce, v_4.pos};
+  return v_6;
+}
+
diff --git a/test/tint/builtins/gen/literal/textureLoad/6d7bb5.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/textureLoad/6d7bb5.wgsl.expected.ir.dxc.hlsl
index fd28383..334e6e8e 100644
--- a/test/tint/builtins/gen/literal/textureLoad/6d7bb5.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureLoad/6d7bb5.wgsl.expected.ir.dxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureLoad
+..\..\src\tint\utils\containers\slice.h:216 internal compiler error: TINT_ASSERT(i < Length())
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/literal/textureLoad/6d7bb5.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/textureLoad/6d7bb5.wgsl.expected.ir.fxc.hlsl
index fd28383..334e6e8e 100644
--- a/test/tint/builtins/gen/literal/textureLoad/6d7bb5.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureLoad/6d7bb5.wgsl.expected.ir.fxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureLoad
+..\..\src\tint\utils\containers\slice.h:216 internal compiler error: TINT_ASSERT(i < Length())
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/literal/textureLoad/6e903f.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/textureLoad/6e903f.wgsl.expected.ir.dxc.hlsl
index fd28383..334e6e8e 100644
--- a/test/tint/builtins/gen/literal/textureLoad/6e903f.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureLoad/6e903f.wgsl.expected.ir.dxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureLoad
+..\..\src\tint\utils\containers\slice.h:216 internal compiler error: TINT_ASSERT(i < Length())
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/literal/textureLoad/6e903f.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/textureLoad/6e903f.wgsl.expected.ir.fxc.hlsl
index fd28383..334e6e8e 100644
--- a/test/tint/builtins/gen/literal/textureLoad/6e903f.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureLoad/6e903f.wgsl.expected.ir.fxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureLoad
+..\..\src\tint\utils\containers\slice.h:216 internal compiler error: TINT_ASSERT(i < Length())
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/literal/textureLoad/6f0370.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/textureLoad/6f0370.wgsl.expected.ir.dxc.hlsl
index fd28383..334e6e8e 100644
--- a/test/tint/builtins/gen/literal/textureLoad/6f0370.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureLoad/6f0370.wgsl.expected.ir.dxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureLoad
+..\..\src\tint\utils\containers\slice.h:216 internal compiler error: TINT_ASSERT(i < Length())
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/literal/textureLoad/6f0370.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/textureLoad/6f0370.wgsl.expected.ir.fxc.hlsl
index fd28383..334e6e8e 100644
--- a/test/tint/builtins/gen/literal/textureLoad/6f0370.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureLoad/6f0370.wgsl.expected.ir.fxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureLoad
+..\..\src\tint\utils\containers\slice.h:216 internal compiler error: TINT_ASSERT(i < Length())
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/literal/textureLoad/6f0ea8.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/textureLoad/6f0ea8.wgsl.expected.ir.dxc.hlsl
index fd28383..334e6e8e 100644
--- a/test/tint/builtins/gen/literal/textureLoad/6f0ea8.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureLoad/6f0ea8.wgsl.expected.ir.dxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureLoad
+..\..\src\tint\utils\containers\slice.h:216 internal compiler error: TINT_ASSERT(i < Length())
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/literal/textureLoad/6f0ea8.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/textureLoad/6f0ea8.wgsl.expected.ir.fxc.hlsl
index fd28383..334e6e8e 100644
--- a/test/tint/builtins/gen/literal/textureLoad/6f0ea8.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureLoad/6f0ea8.wgsl.expected.ir.fxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureLoad
+..\..\src\tint\utils\containers\slice.h:216 internal compiler error: TINT_ASSERT(i < Length())
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/literal/textureLoad/6f1750.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/textureLoad/6f1750.wgsl.expected.ir.dxc.hlsl
index fd28383..334e6e8e 100644
--- a/test/tint/builtins/gen/literal/textureLoad/6f1750.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureLoad/6f1750.wgsl.expected.ir.dxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureLoad
+..\..\src\tint\utils\containers\slice.h:216 internal compiler error: TINT_ASSERT(i < Length())
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/literal/textureLoad/6f1750.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/textureLoad/6f1750.wgsl.expected.ir.fxc.hlsl
index fd28383..334e6e8e 100644
--- a/test/tint/builtins/gen/literal/textureLoad/6f1750.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureLoad/6f1750.wgsl.expected.ir.fxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureLoad
+..\..\src\tint\utils\containers\slice.h:216 internal compiler error: TINT_ASSERT(i < Length())
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/literal/textureLoad/6f8927.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/textureLoad/6f8927.wgsl.expected.ir.dxc.hlsl
index fd28383..334e6e8e 100644
--- a/test/tint/builtins/gen/literal/textureLoad/6f8927.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureLoad/6f8927.wgsl.expected.ir.dxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureLoad
+..\..\src\tint\utils\containers\slice.h:216 internal compiler error: TINT_ASSERT(i < Length())
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/literal/textureLoad/6f8927.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/textureLoad/6f8927.wgsl.expected.ir.fxc.hlsl
index fd28383..334e6e8e 100644
--- a/test/tint/builtins/gen/literal/textureLoad/6f8927.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureLoad/6f8927.wgsl.expected.ir.fxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureLoad
+..\..\src\tint\utils\containers\slice.h:216 internal compiler error: TINT_ASSERT(i < Length())
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/literal/textureLoad/714471.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/textureLoad/714471.wgsl.expected.ir.dxc.hlsl
index fd28383..c243c3a 100644
--- a/test/tint/builtins/gen/literal/textureLoad/714471.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureLoad/714471.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,45 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  int4 prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureLoad
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation int4 VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+Texture2D<int4> arg_0 : register(t0, space1);
+int4 textureLoad_714471() {
+  Texture2D<int4> v = arg_0;
+  int2 v_1 = int2((1u).xx);
+  int4 res = int4(v.Load(int3(v_1, int(1u))));
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store4(0u, asuint(textureLoad_714471()));
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store4(0u, asuint(textureLoad_714471()));
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = textureLoad_714471();
+  VertexOutput v_2 = tint_symbol;
+  return v_2;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_3 = vertex_main_inner();
+  VertexOutput v_4 = v_3;
+  VertexOutput v_5 = v_3;
+  vertex_main_outputs v_6 = {v_5.prevent_dce, v_4.pos};
+  return v_6;
+}
+
diff --git a/test/tint/builtins/gen/literal/textureLoad/714471.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/textureLoad/714471.wgsl.expected.ir.fxc.hlsl
index fd28383..c243c3a 100644
--- a/test/tint/builtins/gen/literal/textureLoad/714471.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureLoad/714471.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,45 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  int4 prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureLoad
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation int4 VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+Texture2D<int4> arg_0 : register(t0, space1);
+int4 textureLoad_714471() {
+  Texture2D<int4> v = arg_0;
+  int2 v_1 = int2((1u).xx);
+  int4 res = int4(v.Load(int3(v_1, int(1u))));
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store4(0u, asuint(textureLoad_714471()));
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store4(0u, asuint(textureLoad_714471()));
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = textureLoad_714471();
+  VertexOutput v_2 = tint_symbol;
+  return v_2;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_3 = vertex_main_inner();
+  VertexOutput v_4 = v_3;
+  VertexOutput v_5 = v_3;
+  vertex_main_outputs v_6 = {v_5.prevent_dce, v_4.pos};
+  return v_6;
+}
+
diff --git a/test/tint/builtins/gen/literal/textureLoad/72bb3c.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/textureLoad/72bb3c.wgsl.expected.ir.dxc.hlsl
index fd28383..334e6e8e 100644
--- a/test/tint/builtins/gen/literal/textureLoad/72bb3c.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureLoad/72bb3c.wgsl.expected.ir.dxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureLoad
+..\..\src\tint\utils\containers\slice.h:216 internal compiler error: TINT_ASSERT(i < Length())
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/literal/textureLoad/72bb3c.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/textureLoad/72bb3c.wgsl.expected.ir.fxc.hlsl
index fd28383..334e6e8e 100644
--- a/test/tint/builtins/gen/literal/textureLoad/72bb3c.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureLoad/72bb3c.wgsl.expected.ir.fxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureLoad
+..\..\src\tint\utils\containers\slice.h:216 internal compiler error: TINT_ASSERT(i < Length())
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/literal/textureLoad/72c9c3.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/textureLoad/72c9c3.wgsl.expected.ir.dxc.hlsl
index fd28383..334e6e8e 100644
--- a/test/tint/builtins/gen/literal/textureLoad/72c9c3.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureLoad/72c9c3.wgsl.expected.ir.dxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureLoad
+..\..\src\tint\utils\containers\slice.h:216 internal compiler error: TINT_ASSERT(i < Length())
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/literal/textureLoad/72c9c3.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/textureLoad/72c9c3.wgsl.expected.ir.fxc.hlsl
index fd28383..334e6e8e 100644
--- a/test/tint/builtins/gen/literal/textureLoad/72c9c3.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureLoad/72c9c3.wgsl.expected.ir.fxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureLoad
+..\..\src\tint\utils\containers\slice.h:216 internal compiler error: TINT_ASSERT(i < Length())
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/literal/textureLoad/742f1b.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/textureLoad/742f1b.wgsl.expected.ir.dxc.hlsl
index fd28383..334e6e8e 100644
--- a/test/tint/builtins/gen/literal/textureLoad/742f1b.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureLoad/742f1b.wgsl.expected.ir.dxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureLoad
+..\..\src\tint\utils\containers\slice.h:216 internal compiler error: TINT_ASSERT(i < Length())
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/literal/textureLoad/742f1b.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/textureLoad/742f1b.wgsl.expected.ir.fxc.hlsl
index fd28383..334e6e8e 100644
--- a/test/tint/builtins/gen/literal/textureLoad/742f1b.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureLoad/742f1b.wgsl.expected.ir.fxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureLoad
+..\..\src\tint\utils\containers\slice.h:216 internal compiler error: TINT_ASSERT(i < Length())
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/literal/textureLoad/749704.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/textureLoad/749704.wgsl.expected.ir.dxc.hlsl
index fd28383..334e6e8e 100644
--- a/test/tint/builtins/gen/literal/textureLoad/749704.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureLoad/749704.wgsl.expected.ir.dxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureLoad
+..\..\src\tint\utils\containers\slice.h:216 internal compiler error: TINT_ASSERT(i < Length())
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/literal/textureLoad/749704.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/textureLoad/749704.wgsl.expected.ir.fxc.hlsl
index fd28383..334e6e8e 100644
--- a/test/tint/builtins/gen/literal/textureLoad/749704.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureLoad/749704.wgsl.expected.ir.fxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureLoad
+..\..\src\tint\utils\containers\slice.h:216 internal compiler error: TINT_ASSERT(i < Length())
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/literal/textureLoad/74a387.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/textureLoad/74a387.wgsl.expected.ir.dxc.hlsl
index fd28383..334e6e8e 100644
--- a/test/tint/builtins/gen/literal/textureLoad/74a387.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureLoad/74a387.wgsl.expected.ir.dxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureLoad
+..\..\src\tint\utils\containers\slice.h:216 internal compiler error: TINT_ASSERT(i < Length())
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/literal/textureLoad/74a387.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/textureLoad/74a387.wgsl.expected.ir.fxc.hlsl
index fd28383..334e6e8e 100644
--- a/test/tint/builtins/gen/literal/textureLoad/74a387.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureLoad/74a387.wgsl.expected.ir.fxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureLoad
+..\..\src\tint\utils\containers\slice.h:216 internal compiler error: TINT_ASSERT(i < Length())
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/literal/textureLoad/773c46.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/textureLoad/773c46.wgsl.expected.ir.dxc.hlsl
index fd28383..334e6e8e 100644
--- a/test/tint/builtins/gen/literal/textureLoad/773c46.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureLoad/773c46.wgsl.expected.ir.dxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureLoad
+..\..\src\tint\utils\containers\slice.h:216 internal compiler error: TINT_ASSERT(i < Length())
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/literal/textureLoad/773c46.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/textureLoad/773c46.wgsl.expected.ir.fxc.hlsl
index fd28383..334e6e8e 100644
--- a/test/tint/builtins/gen/literal/textureLoad/773c46.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureLoad/773c46.wgsl.expected.ir.fxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureLoad
+..\..\src\tint\utils\containers\slice.h:216 internal compiler error: TINT_ASSERT(i < Length())
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/literal/textureLoad/789045.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/textureLoad/789045.wgsl.expected.ir.dxc.hlsl
index fd28383..fff52c5 100644
--- a/test/tint/builtins/gen/literal/textureLoad/789045.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureLoad/789045.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,46 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  float4 prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureLoad
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation float4 VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+Texture2DArray<float4> arg_0 : register(t0, space1);
+float4 textureLoad_789045() {
+  Texture2DArray<float4> v = arg_0;
+  int2 v_1 = int2((1).xx);
+  int v_2 = int(1);
+  float4 res = float4(v.Load(int4(v_1, v_2, int(1u))));
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store4(0u, asuint(textureLoad_789045()));
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store4(0u, asuint(textureLoad_789045()));
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = textureLoad_789045();
+  VertexOutput v_3 = tint_symbol;
+  return v_3;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_4 = vertex_main_inner();
+  VertexOutput v_5 = v_4;
+  VertexOutput v_6 = v_4;
+  vertex_main_outputs v_7 = {v_6.prevent_dce, v_5.pos};
+  return v_7;
+}
+
diff --git a/test/tint/builtins/gen/literal/textureLoad/789045.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/textureLoad/789045.wgsl.expected.ir.fxc.hlsl
index fd28383..fff52c5 100644
--- a/test/tint/builtins/gen/literal/textureLoad/789045.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureLoad/789045.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,46 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  float4 prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureLoad
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation float4 VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+Texture2DArray<float4> arg_0 : register(t0, space1);
+float4 textureLoad_789045() {
+  Texture2DArray<float4> v = arg_0;
+  int2 v_1 = int2((1).xx);
+  int v_2 = int(1);
+  float4 res = float4(v.Load(int4(v_1, v_2, int(1u))));
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store4(0u, asuint(textureLoad_789045()));
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store4(0u, asuint(textureLoad_789045()));
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = textureLoad_789045();
+  VertexOutput v_3 = tint_symbol;
+  return v_3;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_4 = vertex_main_inner();
+  VertexOutput v_5 = v_4;
+  VertexOutput v_6 = v_4;
+  vertex_main_outputs v_7 = {v_6.prevent_dce, v_5.pos};
+  return v_7;
+}
+
diff --git a/test/tint/builtins/gen/literal/textureLoad/79e697.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/textureLoad/79e697.wgsl.expected.ir.dxc.hlsl
index fd28383..437af08 100644
--- a/test/tint/builtins/gen/literal/textureLoad/79e697.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureLoad/79e697.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,46 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  int4 prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureLoad
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation int4 VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+Texture2DArray<int4> arg_0 : register(t0, space1);
+int4 textureLoad_79e697() {
+  Texture2DArray<int4> v = arg_0;
+  int2 v_1 = int2((1).xx);
+  int v_2 = int(1);
+  int4 res = int4(v.Load(int4(v_1, v_2, int(1))));
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store4(0u, asuint(textureLoad_79e697()));
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store4(0u, asuint(textureLoad_79e697()));
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = textureLoad_79e697();
+  VertexOutput v_3 = tint_symbol;
+  return v_3;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_4 = vertex_main_inner();
+  VertexOutput v_5 = v_4;
+  VertexOutput v_6 = v_4;
+  vertex_main_outputs v_7 = {v_6.prevent_dce, v_5.pos};
+  return v_7;
+}
+
diff --git a/test/tint/builtins/gen/literal/textureLoad/79e697.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/textureLoad/79e697.wgsl.expected.ir.fxc.hlsl
index fd28383..437af08 100644
--- a/test/tint/builtins/gen/literal/textureLoad/79e697.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureLoad/79e697.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,46 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  int4 prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureLoad
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation int4 VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+Texture2DArray<int4> arg_0 : register(t0, space1);
+int4 textureLoad_79e697() {
+  Texture2DArray<int4> v = arg_0;
+  int2 v_1 = int2((1).xx);
+  int v_2 = int(1);
+  int4 res = int4(v.Load(int4(v_1, v_2, int(1))));
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store4(0u, asuint(textureLoad_79e697()));
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store4(0u, asuint(textureLoad_79e697()));
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = textureLoad_79e697();
+  VertexOutput v_3 = tint_symbol;
+  return v_3;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_4 = vertex_main_inner();
+  VertexOutput v_5 = v_4;
+  VertexOutput v_6 = v_4;
+  vertex_main_outputs v_7 = {v_6.prevent_dce, v_5.pos};
+  return v_7;
+}
+
diff --git a/test/tint/builtins/gen/literal/textureLoad/7ab4df.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/textureLoad/7ab4df.wgsl.expected.ir.dxc.hlsl
index fd28383..5682e91 100644
--- a/test/tint/builtins/gen/literal/textureLoad/7ab4df.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureLoad/7ab4df.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,46 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  uint4 prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureLoad
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation uint4 VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+Texture2DArray<uint4> arg_0 : register(t0, space1);
+uint4 textureLoad_7ab4df() {
+  Texture2DArray<uint4> v = arg_0;
+  int2 v_1 = int2((1).xx);
+  int v_2 = int(1u);
+  uint4 res = uint4(v.Load(int4(v_1, v_2, int(1))));
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store4(0u, textureLoad_7ab4df());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store4(0u, textureLoad_7ab4df());
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = textureLoad_7ab4df();
+  VertexOutput v_3 = tint_symbol;
+  return v_3;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_4 = vertex_main_inner();
+  VertexOutput v_5 = v_4;
+  VertexOutput v_6 = v_4;
+  vertex_main_outputs v_7 = {v_6.prevent_dce, v_5.pos};
+  return v_7;
+}
+
diff --git a/test/tint/builtins/gen/literal/textureLoad/7ab4df.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/textureLoad/7ab4df.wgsl.expected.ir.fxc.hlsl
index fd28383..5682e91 100644
--- a/test/tint/builtins/gen/literal/textureLoad/7ab4df.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureLoad/7ab4df.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,46 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  uint4 prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureLoad
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation uint4 VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+Texture2DArray<uint4> arg_0 : register(t0, space1);
+uint4 textureLoad_7ab4df() {
+  Texture2DArray<uint4> v = arg_0;
+  int2 v_1 = int2((1).xx);
+  int v_2 = int(1u);
+  uint4 res = uint4(v.Load(int4(v_1, v_2, int(1))));
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store4(0u, textureLoad_7ab4df());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store4(0u, textureLoad_7ab4df());
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = textureLoad_7ab4df();
+  VertexOutput v_3 = tint_symbol;
+  return v_3;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_4 = vertex_main_inner();
+  VertexOutput v_5 = v_4;
+  VertexOutput v_6 = v_4;
+  vertex_main_outputs v_7 = {v_6.prevent_dce, v_5.pos};
+  return v_7;
+}
+
diff --git a/test/tint/builtins/gen/literal/textureLoad/7b63e0.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/textureLoad/7b63e0.wgsl.expected.ir.dxc.hlsl
index fd28383..9275238 100644
--- a/test/tint/builtins/gen/literal/textureLoad/7b63e0.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureLoad/7b63e0.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,46 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  float prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureLoad
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation float VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+Texture2DArray arg_0 : register(t0, space1);
+float textureLoad_7b63e0() {
+  Texture2DArray v = arg_0;
+  int2 v_1 = int2((1u).xx);
+  int v_2 = int(1u);
+  float res = v.Load(int4(v_1, v_2, int(1u))).x;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store(0u, asuint(textureLoad_7b63e0()));
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store(0u, asuint(textureLoad_7b63e0()));
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = textureLoad_7b63e0();
+  VertexOutput v_3 = tint_symbol;
+  return v_3;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_4 = vertex_main_inner();
+  VertexOutput v_5 = v_4;
+  VertexOutput v_6 = v_4;
+  vertex_main_outputs v_7 = {v_6.prevent_dce, v_5.pos};
+  return v_7;
+}
+
diff --git a/test/tint/builtins/gen/literal/textureLoad/7b63e0.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/textureLoad/7b63e0.wgsl.expected.ir.fxc.hlsl
index fd28383..9275238 100644
--- a/test/tint/builtins/gen/literal/textureLoad/7b63e0.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureLoad/7b63e0.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,46 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  float prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureLoad
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation float VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+Texture2DArray arg_0 : register(t0, space1);
+float textureLoad_7b63e0() {
+  Texture2DArray v = arg_0;
+  int2 v_1 = int2((1u).xx);
+  int v_2 = int(1u);
+  float res = v.Load(int4(v_1, v_2, int(1u))).x;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store(0u, asuint(textureLoad_7b63e0()));
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store(0u, asuint(textureLoad_7b63e0()));
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = textureLoad_7b63e0();
+  VertexOutput v_3 = tint_symbol;
+  return v_3;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_4 = vertex_main_inner();
+  VertexOutput v_5 = v_4;
+  VertexOutput v_6 = v_4;
+  vertex_main_outputs v_7 = {v_6.prevent_dce, v_5.pos};
+  return v_7;
+}
+
diff --git a/test/tint/builtins/gen/literal/textureLoad/7bee94.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/textureLoad/7bee94.wgsl.expected.ir.dxc.hlsl
index fd28383..933747a 100644
--- a/test/tint/builtins/gen/literal/textureLoad/7bee94.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureLoad/7bee94.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,45 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  int4 prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureLoad
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation int4 VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+Texture2DMS<int4> arg_0 : register(t0, space1);
+int4 textureLoad_7bee94() {
+  Texture2DMS<int4> v = arg_0;
+  int2 v_1 = int2((1u).xx);
+  int4 res = int4(v.Load(v_1, int(1)));
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store4(0u, asuint(textureLoad_7bee94()));
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store4(0u, asuint(textureLoad_7bee94()));
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = textureLoad_7bee94();
+  VertexOutput v_2 = tint_symbol;
+  return v_2;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_3 = vertex_main_inner();
+  VertexOutput v_4 = v_3;
+  VertexOutput v_5 = v_3;
+  vertex_main_outputs v_6 = {v_5.prevent_dce, v_4.pos};
+  return v_6;
+}
+
diff --git a/test/tint/builtins/gen/literal/textureLoad/7bee94.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/textureLoad/7bee94.wgsl.expected.ir.fxc.hlsl
index fd28383..933747a 100644
--- a/test/tint/builtins/gen/literal/textureLoad/7bee94.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureLoad/7bee94.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,45 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  int4 prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureLoad
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation int4 VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+Texture2DMS<int4> arg_0 : register(t0, space1);
+int4 textureLoad_7bee94() {
+  Texture2DMS<int4> v = arg_0;
+  int2 v_1 = int2((1u).xx);
+  int4 res = int4(v.Load(v_1, int(1)));
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store4(0u, asuint(textureLoad_7bee94()));
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store4(0u, asuint(textureLoad_7bee94()));
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = textureLoad_7bee94();
+  VertexOutput v_2 = tint_symbol;
+  return v_2;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_3 = vertex_main_inner();
+  VertexOutput v_4 = v_3;
+  VertexOutput v_5 = v_3;
+  vertex_main_outputs v_6 = {v_5.prevent_dce, v_4.pos};
+  return v_6;
+}
+
diff --git a/test/tint/builtins/gen/literal/textureLoad/7c90e5.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/textureLoad/7c90e5.wgsl.expected.ir.dxc.hlsl
index fd28383..63f2b7a 100644
--- a/test/tint/builtins/gen/literal/textureLoad/7c90e5.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureLoad/7c90e5.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,46 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  uint4 prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureLoad
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation uint4 VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+Texture2DArray<uint4> arg_0 : register(t0, space1);
+uint4 textureLoad_7c90e5() {
+  Texture2DArray<uint4> v = arg_0;
+  int2 v_1 = int2((1).xx);
+  int v_2 = int(1);
+  uint4 res = uint4(v.Load(int4(v_1, v_2, int(1))));
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store4(0u, textureLoad_7c90e5());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store4(0u, textureLoad_7c90e5());
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = textureLoad_7c90e5();
+  VertexOutput v_3 = tint_symbol;
+  return v_3;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_4 = vertex_main_inner();
+  VertexOutput v_5 = v_4;
+  VertexOutput v_6 = v_4;
+  vertex_main_outputs v_7 = {v_6.prevent_dce, v_5.pos};
+  return v_7;
+}
+
diff --git a/test/tint/builtins/gen/literal/textureLoad/7c90e5.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/textureLoad/7c90e5.wgsl.expected.ir.fxc.hlsl
index fd28383..63f2b7a 100644
--- a/test/tint/builtins/gen/literal/textureLoad/7c90e5.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureLoad/7c90e5.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,46 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  uint4 prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureLoad
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation uint4 VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+Texture2DArray<uint4> arg_0 : register(t0, space1);
+uint4 textureLoad_7c90e5() {
+  Texture2DArray<uint4> v = arg_0;
+  int2 v_1 = int2((1).xx);
+  int v_2 = int(1);
+  uint4 res = uint4(v.Load(int4(v_1, v_2, int(1))));
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store4(0u, textureLoad_7c90e5());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store4(0u, textureLoad_7c90e5());
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = textureLoad_7c90e5();
+  VertexOutput v_3 = tint_symbol;
+  return v_3;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_4 = vertex_main_inner();
+  VertexOutput v_5 = v_4;
+  VertexOutput v_6 = v_4;
+  vertex_main_outputs v_7 = {v_6.prevent_dce, v_5.pos};
+  return v_7;
+}
+
diff --git a/test/tint/builtins/gen/literal/textureLoad/7dab57.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/textureLoad/7dab57.wgsl.expected.ir.dxc.hlsl
index fd28383..334e6e8e 100644
--- a/test/tint/builtins/gen/literal/textureLoad/7dab57.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureLoad/7dab57.wgsl.expected.ir.dxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureLoad
+..\..\src\tint\utils\containers\slice.h:216 internal compiler error: TINT_ASSERT(i < Length())
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/literal/textureLoad/7dab57.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/textureLoad/7dab57.wgsl.expected.ir.fxc.hlsl
index fd28383..334e6e8e 100644
--- a/test/tint/builtins/gen/literal/textureLoad/7dab57.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureLoad/7dab57.wgsl.expected.ir.fxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureLoad
+..\..\src\tint\utils\containers\slice.h:216 internal compiler error: TINT_ASSERT(i < Length())
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/literal/textureLoad/7dd3d5.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/textureLoad/7dd3d5.wgsl.expected.ir.dxc.hlsl
index fd28383..334e6e8e 100644
--- a/test/tint/builtins/gen/literal/textureLoad/7dd3d5.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureLoad/7dd3d5.wgsl.expected.ir.dxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureLoad
+..\..\src\tint\utils\containers\slice.h:216 internal compiler error: TINT_ASSERT(i < Length())
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/literal/textureLoad/7dd3d5.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/textureLoad/7dd3d5.wgsl.expected.ir.fxc.hlsl
index fd28383..334e6e8e 100644
--- a/test/tint/builtins/gen/literal/textureLoad/7dd3d5.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureLoad/7dd3d5.wgsl.expected.ir.fxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureLoad
+..\..\src\tint\utils\containers\slice.h:216 internal compiler error: TINT_ASSERT(i < Length())
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/literal/textureLoad/7e5cbc.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/textureLoad/7e5cbc.wgsl.expected.ir.dxc.hlsl
index fd28383..334e6e8e 100644
--- a/test/tint/builtins/gen/literal/textureLoad/7e5cbc.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureLoad/7e5cbc.wgsl.expected.ir.dxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureLoad
+..\..\src\tint\utils\containers\slice.h:216 internal compiler error: TINT_ASSERT(i < Length())
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/literal/textureLoad/7e5cbc.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/textureLoad/7e5cbc.wgsl.expected.ir.fxc.hlsl
index fd28383..334e6e8e 100644
--- a/test/tint/builtins/gen/literal/textureLoad/7e5cbc.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureLoad/7e5cbc.wgsl.expected.ir.fxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureLoad
+..\..\src\tint\utils\containers\slice.h:216 internal compiler error: TINT_ASSERT(i < Length())
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/literal/textureLoad/7fd822.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/textureLoad/7fd822.wgsl.expected.ir.dxc.hlsl
index fd28383..d824ada 100644
--- a/test/tint/builtins/gen/literal/textureLoad/7fd822.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureLoad/7fd822.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,45 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  float prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureLoad
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation float VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+Texture2D arg_0 : register(t0, space1);
+float textureLoad_7fd822() {
+  Texture2D v = arg_0;
+  int2 v_1 = int2((1u).xx);
+  float res = v.Load(int3(v_1, int(1))).x;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store(0u, asuint(textureLoad_7fd822()));
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store(0u, asuint(textureLoad_7fd822()));
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = textureLoad_7fd822();
+  VertexOutput v_2 = tint_symbol;
+  return v_2;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_3 = vertex_main_inner();
+  VertexOutput v_4 = v_3;
+  VertexOutput v_5 = v_3;
+  vertex_main_outputs v_6 = {v_5.prevent_dce, v_4.pos};
+  return v_6;
+}
+
diff --git a/test/tint/builtins/gen/literal/textureLoad/7fd822.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/textureLoad/7fd822.wgsl.expected.ir.fxc.hlsl
index fd28383..d824ada 100644
--- a/test/tint/builtins/gen/literal/textureLoad/7fd822.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureLoad/7fd822.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,45 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  float prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureLoad
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation float VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+Texture2D arg_0 : register(t0, space1);
+float textureLoad_7fd822() {
+  Texture2D v = arg_0;
+  int2 v_1 = int2((1u).xx);
+  float res = v.Load(int3(v_1, int(1))).x;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store(0u, asuint(textureLoad_7fd822()));
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store(0u, asuint(textureLoad_7fd822()));
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = textureLoad_7fd822();
+  VertexOutput v_2 = tint_symbol;
+  return v_2;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_3 = vertex_main_inner();
+  VertexOutput v_4 = v_3;
+  VertexOutput v_5 = v_3;
+  vertex_main_outputs v_6 = {v_5.prevent_dce, v_4.pos};
+  return v_6;
+}
+
diff --git a/test/tint/builtins/gen/literal/textureLoad/80dae1.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/textureLoad/80dae1.wgsl.expected.ir.dxc.hlsl
index fd28383..334e6e8e 100644
--- a/test/tint/builtins/gen/literal/textureLoad/80dae1.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureLoad/80dae1.wgsl.expected.ir.dxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureLoad
+..\..\src\tint\utils\containers\slice.h:216 internal compiler error: TINT_ASSERT(i < Length())
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/literal/textureLoad/80dae1.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/textureLoad/80dae1.wgsl.expected.ir.fxc.hlsl
index fd28383..334e6e8e 100644
--- a/test/tint/builtins/gen/literal/textureLoad/80dae1.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureLoad/80dae1.wgsl.expected.ir.fxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureLoad
+..\..\src\tint\utils\containers\slice.h:216 internal compiler error: TINT_ASSERT(i < Length())
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/literal/textureLoad/81c381.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/textureLoad/81c381.wgsl.expected.ir.dxc.hlsl
index fd28383..4a4f172 100644
--- a/test/tint/builtins/gen/literal/textureLoad/81c381.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureLoad/81c381.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,45 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  float4 prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureLoad
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation float4 VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+Texture1D<float4> arg_0 : register(t0, space1);
+float4 textureLoad_81c381() {
+  Texture1D<float4> v = arg_0;
+  int v_1 = int(1);
+  float4 res = float4(v.Load(int2(v_1, int(1))));
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store4(0u, asuint(textureLoad_81c381()));
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store4(0u, asuint(textureLoad_81c381()));
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = textureLoad_81c381();
+  VertexOutput v_2 = tint_symbol;
+  return v_2;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_3 = vertex_main_inner();
+  VertexOutput v_4 = v_3;
+  VertexOutput v_5 = v_3;
+  vertex_main_outputs v_6 = {v_5.prevent_dce, v_4.pos};
+  return v_6;
+}
+
diff --git a/test/tint/builtins/gen/literal/textureLoad/81c381.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/textureLoad/81c381.wgsl.expected.ir.fxc.hlsl
index fd28383..4a4f172 100644
--- a/test/tint/builtins/gen/literal/textureLoad/81c381.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureLoad/81c381.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,45 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  float4 prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureLoad
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation float4 VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+Texture1D<float4> arg_0 : register(t0, space1);
+float4 textureLoad_81c381() {
+  Texture1D<float4> v = arg_0;
+  int v_1 = int(1);
+  float4 res = float4(v.Load(int2(v_1, int(1))));
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store4(0u, asuint(textureLoad_81c381()));
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store4(0u, asuint(textureLoad_81c381()));
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = textureLoad_81c381();
+  VertexOutput v_2 = tint_symbol;
+  return v_2;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_3 = vertex_main_inner();
+  VertexOutput v_4 = v_3;
+  VertexOutput v_5 = v_3;
+  vertex_main_outputs v_6 = {v_5.prevent_dce, v_4.pos};
+  return v_6;
+}
+
diff --git a/test/tint/builtins/gen/literal/textureLoad/83162f.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/textureLoad/83162f.wgsl.expected.ir.dxc.hlsl
index fd28383..334e6e8e 100644
--- a/test/tint/builtins/gen/literal/textureLoad/83162f.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureLoad/83162f.wgsl.expected.ir.dxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureLoad
+..\..\src\tint\utils\containers\slice.h:216 internal compiler error: TINT_ASSERT(i < Length())
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/literal/textureLoad/83162f.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/textureLoad/83162f.wgsl.expected.ir.fxc.hlsl
index fd28383..334e6e8e 100644
--- a/test/tint/builtins/gen/literal/textureLoad/83162f.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureLoad/83162f.wgsl.expected.ir.fxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureLoad
+..\..\src\tint\utils\containers\slice.h:216 internal compiler error: TINT_ASSERT(i < Length())
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/literal/textureLoad/83cea4.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/textureLoad/83cea4.wgsl.expected.ir.dxc.hlsl
index fd28383..334e6e8e 100644
--- a/test/tint/builtins/gen/literal/textureLoad/83cea4.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureLoad/83cea4.wgsl.expected.ir.dxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureLoad
+..\..\src\tint\utils\containers\slice.h:216 internal compiler error: TINT_ASSERT(i < Length())
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/literal/textureLoad/83cea4.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/textureLoad/83cea4.wgsl.expected.ir.fxc.hlsl
index fd28383..334e6e8e 100644
--- a/test/tint/builtins/gen/literal/textureLoad/83cea4.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureLoad/83cea4.wgsl.expected.ir.fxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureLoad
+..\..\src\tint\utils\containers\slice.h:216 internal compiler error: TINT_ASSERT(i < Length())
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/literal/textureLoad/83d6e3.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/textureLoad/83d6e3.wgsl.expected.ir.dxc.hlsl
index fd28383..334e6e8e 100644
--- a/test/tint/builtins/gen/literal/textureLoad/83d6e3.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureLoad/83d6e3.wgsl.expected.ir.dxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureLoad
+..\..\src\tint\utils\containers\slice.h:216 internal compiler error: TINT_ASSERT(i < Length())
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/literal/textureLoad/83d6e3.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/textureLoad/83d6e3.wgsl.expected.ir.fxc.hlsl
index fd28383..334e6e8e 100644
--- a/test/tint/builtins/gen/literal/textureLoad/83d6e3.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureLoad/83d6e3.wgsl.expected.ir.fxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureLoad
+..\..\src\tint\utils\containers\slice.h:216 internal compiler error: TINT_ASSERT(i < Length())
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/literal/textureLoad/848d85.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/textureLoad/848d85.wgsl.expected.ir.dxc.hlsl
index fd28383..334e6e8e 100644
--- a/test/tint/builtins/gen/literal/textureLoad/848d85.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureLoad/848d85.wgsl.expected.ir.dxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureLoad
+..\..\src\tint\utils\containers\slice.h:216 internal compiler error: TINT_ASSERT(i < Length())
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/literal/textureLoad/848d85.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/textureLoad/848d85.wgsl.expected.ir.fxc.hlsl
index fd28383..334e6e8e 100644
--- a/test/tint/builtins/gen/literal/textureLoad/848d85.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureLoad/848d85.wgsl.expected.ir.fxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureLoad
+..\..\src\tint\utils\containers\slice.h:216 internal compiler error: TINT_ASSERT(i < Length())
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/literal/textureLoad/84a438.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/textureLoad/84a438.wgsl.expected.ir.dxc.hlsl
index fd28383..334e6e8e 100644
--- a/test/tint/builtins/gen/literal/textureLoad/84a438.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureLoad/84a438.wgsl.expected.ir.dxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureLoad
+..\..\src\tint\utils\containers\slice.h:216 internal compiler error: TINT_ASSERT(i < Length())
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/literal/textureLoad/84a438.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/textureLoad/84a438.wgsl.expected.ir.fxc.hlsl
index fd28383..334e6e8e 100644
--- a/test/tint/builtins/gen/literal/textureLoad/84a438.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureLoad/84a438.wgsl.expected.ir.fxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureLoad
+..\..\src\tint\utils\containers\slice.h:216 internal compiler error: TINT_ASSERT(i < Length())
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/literal/textureLoad/84c728.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/textureLoad/84c728.wgsl.expected.ir.dxc.hlsl
index fd28383..334e6e8e 100644
--- a/test/tint/builtins/gen/literal/textureLoad/84c728.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureLoad/84c728.wgsl.expected.ir.dxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureLoad
+..\..\src\tint\utils\containers\slice.h:216 internal compiler error: TINT_ASSERT(i < Length())
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/literal/textureLoad/84c728.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/textureLoad/84c728.wgsl.expected.ir.fxc.hlsl
index fd28383..334e6e8e 100644
--- a/test/tint/builtins/gen/literal/textureLoad/84c728.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureLoad/84c728.wgsl.expected.ir.fxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureLoad
+..\..\src\tint\utils\containers\slice.h:216 internal compiler error: TINT_ASSERT(i < Length())
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/literal/textureLoad/84dee1.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/textureLoad/84dee1.wgsl.expected.ir.dxc.hlsl
index fd28383..ae47a69 100644
--- a/test/tint/builtins/gen/literal/textureLoad/84dee1.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureLoad/84dee1.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,45 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  float4 prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureLoad
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation float4 VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+Texture2D<float4> arg_0 : register(t0, space1);
+float4 textureLoad_84dee1() {
+  Texture2D<float4> v = arg_0;
+  int2 v_1 = int2((1u).xx);
+  float4 res = float4(v.Load(int3(v_1, int(1u))));
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store4(0u, asuint(textureLoad_84dee1()));
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store4(0u, asuint(textureLoad_84dee1()));
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = textureLoad_84dee1();
+  VertexOutput v_2 = tint_symbol;
+  return v_2;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_3 = vertex_main_inner();
+  VertexOutput v_4 = v_3;
+  VertexOutput v_5 = v_3;
+  vertex_main_outputs v_6 = {v_5.prevent_dce, v_4.pos};
+  return v_6;
+}
+
diff --git a/test/tint/builtins/gen/literal/textureLoad/84dee1.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/textureLoad/84dee1.wgsl.expected.ir.fxc.hlsl
index fd28383..ae47a69 100644
--- a/test/tint/builtins/gen/literal/textureLoad/84dee1.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureLoad/84dee1.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,45 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  float4 prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureLoad
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation float4 VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+Texture2D<float4> arg_0 : register(t0, space1);
+float4 textureLoad_84dee1() {
+  Texture2D<float4> v = arg_0;
+  int2 v_1 = int2((1u).xx);
+  float4 res = float4(v.Load(int3(v_1, int(1u))));
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store4(0u, asuint(textureLoad_84dee1()));
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store4(0u, asuint(textureLoad_84dee1()));
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = textureLoad_84dee1();
+  VertexOutput v_2 = tint_symbol;
+  return v_2;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_3 = vertex_main_inner();
+  VertexOutput v_4 = v_3;
+  VertexOutput v_5 = v_3;
+  vertex_main_outputs v_6 = {v_5.prevent_dce, v_4.pos};
+  return v_6;
+}
+
diff --git a/test/tint/builtins/gen/literal/textureLoad/8527b1.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/textureLoad/8527b1.wgsl.expected.ir.dxc.hlsl
index fd28383..04fc0d4 100644
--- a/test/tint/builtins/gen/literal/textureLoad/8527b1.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureLoad/8527b1.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,46 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  uint4 prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureLoad
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation uint4 VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+Texture2DArray<uint4> arg_0 : register(t0, space1);
+uint4 textureLoad_8527b1() {
+  Texture2DArray<uint4> v = arg_0;
+  int2 v_1 = int2((1u).xx);
+  int v_2 = int(1u);
+  uint4 res = uint4(v.Load(int4(v_1, v_2, int(1u))));
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store4(0u, textureLoad_8527b1());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store4(0u, textureLoad_8527b1());
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = textureLoad_8527b1();
+  VertexOutput v_3 = tint_symbol;
+  return v_3;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_4 = vertex_main_inner();
+  VertexOutput v_5 = v_4;
+  VertexOutput v_6 = v_4;
+  vertex_main_outputs v_7 = {v_6.prevent_dce, v_5.pos};
+  return v_7;
+}
+
diff --git a/test/tint/builtins/gen/literal/textureLoad/8527b1.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/textureLoad/8527b1.wgsl.expected.ir.fxc.hlsl
index fd28383..04fc0d4 100644
--- a/test/tint/builtins/gen/literal/textureLoad/8527b1.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureLoad/8527b1.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,46 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  uint4 prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureLoad
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation uint4 VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+Texture2DArray<uint4> arg_0 : register(t0, space1);
+uint4 textureLoad_8527b1() {
+  Texture2DArray<uint4> v = arg_0;
+  int2 v_1 = int2((1u).xx);
+  int v_2 = int(1u);
+  uint4 res = uint4(v.Load(int4(v_1, v_2, int(1u))));
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store4(0u, textureLoad_8527b1());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store4(0u, textureLoad_8527b1());
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = textureLoad_8527b1();
+  VertexOutput v_3 = tint_symbol;
+  return v_3;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_4 = vertex_main_inner();
+  VertexOutput v_5 = v_4;
+  VertexOutput v_6 = v_4;
+  vertex_main_outputs v_7 = {v_6.prevent_dce, v_5.pos};
+  return v_7;
+}
+
diff --git a/test/tint/builtins/gen/literal/textureLoad/862833.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/textureLoad/862833.wgsl.expected.ir.dxc.hlsl
index fd28383..334e6e8e 100644
--- a/test/tint/builtins/gen/literal/textureLoad/862833.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureLoad/862833.wgsl.expected.ir.dxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureLoad
+..\..\src\tint\utils\containers\slice.h:216 internal compiler error: TINT_ASSERT(i < Length())
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/literal/textureLoad/862833.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/textureLoad/862833.wgsl.expected.ir.fxc.hlsl
index fd28383..334e6e8e 100644
--- a/test/tint/builtins/gen/literal/textureLoad/862833.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureLoad/862833.wgsl.expected.ir.fxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureLoad
+..\..\src\tint\utils\containers\slice.h:216 internal compiler error: TINT_ASSERT(i < Length())
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/literal/textureLoad/878e24.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/textureLoad/878e24.wgsl.expected.ir.dxc.hlsl
index fd28383..334e6e8e 100644
--- a/test/tint/builtins/gen/literal/textureLoad/878e24.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureLoad/878e24.wgsl.expected.ir.dxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureLoad
+..\..\src\tint\utils\containers\slice.h:216 internal compiler error: TINT_ASSERT(i < Length())
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/literal/textureLoad/878e24.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/textureLoad/878e24.wgsl.expected.ir.fxc.hlsl
index fd28383..334e6e8e 100644
--- a/test/tint/builtins/gen/literal/textureLoad/878e24.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureLoad/878e24.wgsl.expected.ir.fxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureLoad
+..\..\src\tint\utils\containers\slice.h:216 internal compiler error: TINT_ASSERT(i < Length())
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/literal/textureLoad/87be85.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/textureLoad/87be85.wgsl.expected.ir.dxc.hlsl
index fd28383..1578f8a 100644
--- a/test/tint/builtins/gen/literal/textureLoad/87be85.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureLoad/87be85.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,46 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  float4 prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureLoad
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation float4 VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+Texture2DArray<float4> arg_0 : register(t0, space1);
+float4 textureLoad_87be85() {
+  Texture2DArray<float4> v = arg_0;
+  int2 v_1 = int2((1).xx);
+  int v_2 = int(1);
+  float4 res = float4(v.Load(int4(v_1, v_2, int(1))));
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store4(0u, asuint(textureLoad_87be85()));
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store4(0u, asuint(textureLoad_87be85()));
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = textureLoad_87be85();
+  VertexOutput v_3 = tint_symbol;
+  return v_3;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_4 = vertex_main_inner();
+  VertexOutput v_5 = v_4;
+  VertexOutput v_6 = v_4;
+  vertex_main_outputs v_7 = {v_6.prevent_dce, v_5.pos};
+  return v_7;
+}
+
diff --git a/test/tint/builtins/gen/literal/textureLoad/87be85.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/textureLoad/87be85.wgsl.expected.ir.fxc.hlsl
index fd28383..1578f8a 100644
--- a/test/tint/builtins/gen/literal/textureLoad/87be85.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureLoad/87be85.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,46 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  float4 prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureLoad
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation float4 VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+Texture2DArray<float4> arg_0 : register(t0, space1);
+float4 textureLoad_87be85() {
+  Texture2DArray<float4> v = arg_0;
+  int2 v_1 = int2((1).xx);
+  int v_2 = int(1);
+  float4 res = float4(v.Load(int4(v_1, v_2, int(1))));
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store4(0u, asuint(textureLoad_87be85()));
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store4(0u, asuint(textureLoad_87be85()));
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = textureLoad_87be85();
+  VertexOutput v_3 = tint_symbol;
+  return v_3;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_4 = vertex_main_inner();
+  VertexOutput v_5 = v_4;
+  VertexOutput v_6 = v_4;
+  vertex_main_outputs v_7 = {v_6.prevent_dce, v_5.pos};
+  return v_7;
+}
+
diff --git a/test/tint/builtins/gen/literal/textureLoad/87f0a6.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/textureLoad/87f0a6.wgsl.expected.ir.dxc.hlsl
index fd28383..334e6e8e 100644
--- a/test/tint/builtins/gen/literal/textureLoad/87f0a6.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureLoad/87f0a6.wgsl.expected.ir.dxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureLoad
+..\..\src\tint\utils\containers\slice.h:216 internal compiler error: TINT_ASSERT(i < Length())
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/literal/textureLoad/87f0a6.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/textureLoad/87f0a6.wgsl.expected.ir.fxc.hlsl
index fd28383..334e6e8e 100644
--- a/test/tint/builtins/gen/literal/textureLoad/87f0a6.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureLoad/87f0a6.wgsl.expected.ir.fxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureLoad
+..\..\src\tint\utils\containers\slice.h:216 internal compiler error: TINT_ASSERT(i < Length())
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/literal/textureLoad/881349.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/textureLoad/881349.wgsl.expected.ir.dxc.hlsl
index fd28383..334e6e8e 100644
--- a/test/tint/builtins/gen/literal/textureLoad/881349.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureLoad/881349.wgsl.expected.ir.dxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureLoad
+..\..\src\tint\utils\containers\slice.h:216 internal compiler error: TINT_ASSERT(i < Length())
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/literal/textureLoad/881349.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/textureLoad/881349.wgsl.expected.ir.fxc.hlsl
index fd28383..334e6e8e 100644
--- a/test/tint/builtins/gen/literal/textureLoad/881349.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureLoad/881349.wgsl.expected.ir.fxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureLoad
+..\..\src\tint\utils\containers\slice.h:216 internal compiler error: TINT_ASSERT(i < Length())
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/literal/textureLoad/89620b.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/textureLoad/89620b.wgsl.expected.ir.dxc.hlsl
index fd28383..334e6e8e 100644
--- a/test/tint/builtins/gen/literal/textureLoad/89620b.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureLoad/89620b.wgsl.expected.ir.dxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureLoad
+..\..\src\tint\utils\containers\slice.h:216 internal compiler error: TINT_ASSERT(i < Length())
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/literal/textureLoad/89620b.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/textureLoad/89620b.wgsl.expected.ir.fxc.hlsl
index fd28383..334e6e8e 100644
--- a/test/tint/builtins/gen/literal/textureLoad/89620b.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureLoad/89620b.wgsl.expected.ir.fxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureLoad
+..\..\src\tint\utils\containers\slice.h:216 internal compiler error: TINT_ASSERT(i < Length())
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/literal/textureLoad/897cf3.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/textureLoad/897cf3.wgsl.expected.ir.dxc.hlsl
index fd28383..4340d33 100644
--- a/test/tint/builtins/gen/literal/textureLoad/897cf3.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureLoad/897cf3.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,45 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  uint4 prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureLoad
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation uint4 VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+Texture2D<uint4> arg_0 : register(t0, space1);
+uint4 textureLoad_897cf3() {
+  Texture2D<uint4> v = arg_0;
+  int2 v_1 = int2((1u).xx);
+  uint4 res = uint4(v.Load(int3(v_1, int(1u))));
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store4(0u, textureLoad_897cf3());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store4(0u, textureLoad_897cf3());
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = textureLoad_897cf3();
+  VertexOutput v_2 = tint_symbol;
+  return v_2;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_3 = vertex_main_inner();
+  VertexOutput v_4 = v_3;
+  VertexOutput v_5 = v_3;
+  vertex_main_outputs v_6 = {v_5.prevent_dce, v_4.pos};
+  return v_6;
+}
+
diff --git a/test/tint/builtins/gen/literal/textureLoad/897cf3.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/textureLoad/897cf3.wgsl.expected.ir.fxc.hlsl
index fd28383..4340d33 100644
--- a/test/tint/builtins/gen/literal/textureLoad/897cf3.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureLoad/897cf3.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,45 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  uint4 prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureLoad
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation uint4 VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+Texture2D<uint4> arg_0 : register(t0, space1);
+uint4 textureLoad_897cf3() {
+  Texture2D<uint4> v = arg_0;
+  int2 v_1 = int2((1u).xx);
+  uint4 res = uint4(v.Load(int3(v_1, int(1u))));
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store4(0u, textureLoad_897cf3());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store4(0u, textureLoad_897cf3());
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = textureLoad_897cf3();
+  VertexOutput v_2 = tint_symbol;
+  return v_2;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_3 = vertex_main_inner();
+  VertexOutput v_4 = v_3;
+  VertexOutput v_5 = v_3;
+  vertex_main_outputs v_6 = {v_5.prevent_dce, v_4.pos};
+  return v_6;
+}
+
diff --git a/test/tint/builtins/gen/literal/textureLoad/8a291b.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/textureLoad/8a291b.wgsl.expected.ir.dxc.hlsl
index fd28383..334e6e8e 100644
--- a/test/tint/builtins/gen/literal/textureLoad/8a291b.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureLoad/8a291b.wgsl.expected.ir.dxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureLoad
+..\..\src\tint\utils\containers\slice.h:216 internal compiler error: TINT_ASSERT(i < Length())
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/literal/textureLoad/8a291b.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/textureLoad/8a291b.wgsl.expected.ir.fxc.hlsl
index fd28383..334e6e8e 100644
--- a/test/tint/builtins/gen/literal/textureLoad/8a291b.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureLoad/8a291b.wgsl.expected.ir.fxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureLoad
+..\..\src\tint\utils\containers\slice.h:216 internal compiler error: TINT_ASSERT(i < Length())
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/literal/textureLoad/8a9988.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/textureLoad/8a9988.wgsl.expected.ir.dxc.hlsl
index fd28383..334e6e8e 100644
--- a/test/tint/builtins/gen/literal/textureLoad/8a9988.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureLoad/8a9988.wgsl.expected.ir.dxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureLoad
+..\..\src\tint\utils\containers\slice.h:216 internal compiler error: TINT_ASSERT(i < Length())
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/literal/textureLoad/8a9988.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/textureLoad/8a9988.wgsl.expected.ir.fxc.hlsl
index fd28383..334e6e8e 100644
--- a/test/tint/builtins/gen/literal/textureLoad/8a9988.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureLoad/8a9988.wgsl.expected.ir.fxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureLoad
+..\..\src\tint\utils\containers\slice.h:216 internal compiler error: TINT_ASSERT(i < Length())
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/literal/textureLoad/8acf41.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/textureLoad/8acf41.wgsl.expected.ir.dxc.hlsl
index fd28383..4689133 100644
--- a/test/tint/builtins/gen/literal/textureLoad/8acf41.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureLoad/8acf41.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,179 @@
-SKIP: FAILED
+struct tint_GammaTransferParams {
+  float G;
+  float A;
+  float B;
+  float C;
+  float D;
+  float E;
+  float F;
+  uint padding;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureLoad
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct tint_ExternalTextureParams {
+  uint numPlanes;
+  uint doYuvToRgbConversionOnly;
+  float3x4 yuvToRgbConversionMatrix;
+  tint_GammaTransferParams gammaDecodeParams;
+  tint_GammaTransferParams gammaEncodeParams;
+  float3x3 gamutConversionMatrix;
+  float3x2 sampleTransform;
+  float3x2 loadTransform;
+  float2 samplePlane0RectMin;
+  float2 samplePlane0RectMax;
+  float2 samplePlane1RectMin;
+  float2 samplePlane1RectMax;
+  uint2 visibleSize;
+  float2 plane1CoordFactor;
+};
+
+struct VertexOutput {
+  float4 pos;
+  float4 prevent_dce;
+};
+
+struct vertex_main_outputs {
+  nointerpolation float4 VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+Texture2D<float4> arg_0_plane0 : register(t0, space1);
+Texture2D<float4> arg_0_plane1 : register(t1, space1);
+cbuffer cbuffer_arg_0_params : register(b2, space1) {
+  uint4 arg_0_params[17];
+};
+uint2 tint_v2f32_to_v2u32(float2 value) {
+  return (((value <= (4294967040.0f).xx)) ? ((((value >= (0.0f).xx)) ? (uint2(value)) : ((0u).xx))) : ((4294967295u).xx));
+}
+
+float3 tint_GammaCorrection(float3 v, tint_GammaTransferParams params) {
+  float3 v_1 = float3((params.G).xxx);
+  float3 v_2 = float3((params.D).xxx);
+  float3 v_3 = abs(v);
+  float3 v_4 = float3(sign(v));
+  return (((v_3 < v_2)) ? ((v_4 * ((params.C * v_3) + params.F))) : ((v_4 * (pow(((params.A * v_3) + params.B), v_1) + params.E))));
+}
+
+float4 tint_TextureLoadExternal(Texture2D<float4> plane_0, Texture2D<float4> plane_1, tint_ExternalTextureParams params, uint2 coords) {
+  float2 v_5 = round(mul(float3(float2(min(coords, params.visibleSize)), 1.0f), params.loadTransform));
+  uint2 v_6 = tint_v2f32_to_v2u32(v_5);
+  float3 v_7 = (0.0f).xxx;
+  float v_8 = 0.0f;
+  if ((params.numPlanes == 1u)) {
+    int2 v_9 = int2(v_6);
+    float4 v_10 = float4(plane_0.Load(int3(v_9, int(0u))));
+    v_7 = v_10.xyz;
+    v_8 = v_10[3u];
+  } else {
+    int2 v_11 = int2(v_6);
+    float v_12 = float4(plane_0.Load(int3(v_11, int(0u))))[0u];
+    int2 v_13 = int2(tint_v2f32_to_v2u32((v_5 * params.plane1CoordFactor)));
+    v_7 = mul(params.yuvToRgbConversionMatrix, float4(v_12, float4(plane_1.Load(int3(v_13, int(0u)))).xy, 1.0f));
+    v_8 = 1.0f;
+  }
+  float3 v_14 = v_7;
+  float3 v_15 = (0.0f).xxx;
+  if ((params.doYuvToRgbConversionOnly == 0u)) {
+    tint_GammaTransferParams v_16 = params.gammaDecodeParams;
+    tint_GammaTransferParams v_17 = params.gammaEncodeParams;
+    v_15 = tint_GammaCorrection(mul(tint_GammaCorrection(v_14, v_16), params.gamutConversionMatrix), v_17);
+  } else {
+    v_15 = v_14;
+  }
+  return float4(v_15, v_8);
+}
+
+float3x2 v_18(uint start_byte_offset) {
+  uint4 v_19 = arg_0_params[(start_byte_offset / 16u)];
+  float2 v_20 = asfloat((((((start_byte_offset % 16u) / 4u) == 2u)) ? (v_19.zw) : (v_19.xy)));
+  uint4 v_21 = arg_0_params[((8u + start_byte_offset) / 16u)];
+  float2 v_22 = asfloat(((((((8u + start_byte_offset) % 16u) / 4u) == 2u)) ? (v_21.zw) : (v_21.xy)));
+  uint4 v_23 = arg_0_params[((16u + start_byte_offset) / 16u)];
+  return float3x2(v_20, v_22, asfloat(((((((16u + start_byte_offset) % 16u) / 4u) == 2u)) ? (v_23.zw) : (v_23.xy))));
+}
+
+float3x3 v_24(uint start_byte_offset) {
+  float3 v_25 = asfloat(arg_0_params[(start_byte_offset / 16u)].xyz);
+  float3 v_26 = asfloat(arg_0_params[((16u + start_byte_offset) / 16u)].xyz);
+  return float3x3(v_25, v_26, asfloat(arg_0_params[((32u + start_byte_offset) / 16u)].xyz));
+}
+
+tint_GammaTransferParams v_27(uint start_byte_offset) {
+  float v_28 = asfloat(arg_0_params[(start_byte_offset / 16u)][((start_byte_offset % 16u) / 4u)]);
+  float v_29 = asfloat(arg_0_params[((4u + start_byte_offset) / 16u)][(((4u + start_byte_offset) % 16u) / 4u)]);
+  float v_30 = asfloat(arg_0_params[((8u + start_byte_offset) / 16u)][(((8u + start_byte_offset) % 16u) / 4u)]);
+  float v_31 = asfloat(arg_0_params[((12u + start_byte_offset) / 16u)][(((12u + start_byte_offset) % 16u) / 4u)]);
+  float v_32 = asfloat(arg_0_params[((16u + start_byte_offset) / 16u)][(((16u + start_byte_offset) % 16u) / 4u)]);
+  float v_33 = asfloat(arg_0_params[((20u + start_byte_offset) / 16u)][(((20u + start_byte_offset) % 16u) / 4u)]);
+  float v_34 = asfloat(arg_0_params[((24u + start_byte_offset) / 16u)][(((24u + start_byte_offset) % 16u) / 4u)]);
+  tint_GammaTransferParams v_35 = {v_28, v_29, v_30, v_31, v_32, v_33, v_34, arg_0_params[((28u + start_byte_offset) / 16u)][(((28u + start_byte_offset) % 16u) / 4u)]};
+  return v_35;
+}
+
+float3x4 v_36(uint start_byte_offset) {
+  float4 v_37 = asfloat(arg_0_params[(start_byte_offset / 16u)]);
+  float4 v_38 = asfloat(arg_0_params[((16u + start_byte_offset) / 16u)]);
+  return float3x4(v_37, v_38, asfloat(arg_0_params[((32u + start_byte_offset) / 16u)]));
+}
+
+tint_ExternalTextureParams v_39(uint start_byte_offset) {
+  uint v_40 = arg_0_params[(start_byte_offset / 16u)][((start_byte_offset % 16u) / 4u)];
+  uint v_41 = arg_0_params[((4u + start_byte_offset) / 16u)][(((4u + start_byte_offset) % 16u) / 4u)];
+  float3x4 v_42 = v_36((16u + start_byte_offset));
+  tint_GammaTransferParams v_43 = v_27((64u + start_byte_offset));
+  tint_GammaTransferParams v_44 = v_27((96u + start_byte_offset));
+  float3x3 v_45 = v_24((128u + start_byte_offset));
+  float3x2 v_46 = v_18((176u + start_byte_offset));
+  float3x2 v_47 = v_18((200u + start_byte_offset));
+  uint4 v_48 = arg_0_params[((224u + start_byte_offset) / 16u)];
+  float2 v_49 = asfloat(((((((224u + start_byte_offset) % 16u) / 4u) == 2u)) ? (v_48.zw) : (v_48.xy)));
+  uint4 v_50 = arg_0_params[((232u + start_byte_offset) / 16u)];
+  float2 v_51 = asfloat(((((((232u + start_byte_offset) % 16u) / 4u) == 2u)) ? (v_50.zw) : (v_50.xy)));
+  uint4 v_52 = arg_0_params[((240u + start_byte_offset) / 16u)];
+  float2 v_53 = asfloat(((((((240u + start_byte_offset) % 16u) / 4u) == 2u)) ? (v_52.zw) : (v_52.xy)));
+  uint4 v_54 = arg_0_params[((248u + start_byte_offset) / 16u)];
+  float2 v_55 = asfloat(((((((248u + start_byte_offset) % 16u) / 4u) == 2u)) ? (v_54.zw) : (v_54.xy)));
+  uint4 v_56 = arg_0_params[((256u + start_byte_offset) / 16u)];
+  uint2 v_57 = ((((((256u + start_byte_offset) % 16u) / 4u) == 2u)) ? (v_56.zw) : (v_56.xy));
+  uint4 v_58 = arg_0_params[((264u + start_byte_offset) / 16u)];
+  tint_GammaTransferParams v_59 = v_43;
+  tint_GammaTransferParams v_60 = v_44;
+  tint_ExternalTextureParams v_61 = {v_40, v_41, v_42, v_59, v_60, v_45, v_46, v_47, v_49, v_51, v_53, v_55, v_57, asfloat(((((((264u + start_byte_offset) % 16u) / 4u) == 2u)) ? (v_58.zw) : (v_58.xy)))};
+  return v_61;
+}
+
+float4 textureLoad_8acf41() {
+  Texture2D<float4> v_62 = arg_0_plane0;
+  Texture2D<float4> v_63 = arg_0_plane1;
+  tint_ExternalTextureParams v_64 = v_39(0u);
+  tint_ExternalTextureParams v_65 = v_64;
+  float4 res = tint_TextureLoadExternal(v_62, v_63, v_65, uint2((1).xx));
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store4(0u, asuint(textureLoad_8acf41()));
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store4(0u, asuint(textureLoad_8acf41()));
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = textureLoad_8acf41();
+  VertexOutput v_66 = tint_symbol;
+  return v_66;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_67 = vertex_main_inner();
+  VertexOutput v_68 = v_67;
+  VertexOutput v_69 = v_67;
+  vertex_main_outputs v_70 = {v_69.prevent_dce, v_68.pos};
+  return v_70;
+}
+
diff --git a/test/tint/builtins/gen/literal/textureLoad/8acf41.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/textureLoad/8acf41.wgsl.expected.ir.fxc.hlsl
index fd28383..4689133 100644
--- a/test/tint/builtins/gen/literal/textureLoad/8acf41.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureLoad/8acf41.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,179 @@
-SKIP: FAILED
+struct tint_GammaTransferParams {
+  float G;
+  float A;
+  float B;
+  float C;
+  float D;
+  float E;
+  float F;
+  uint padding;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureLoad
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct tint_ExternalTextureParams {
+  uint numPlanes;
+  uint doYuvToRgbConversionOnly;
+  float3x4 yuvToRgbConversionMatrix;
+  tint_GammaTransferParams gammaDecodeParams;
+  tint_GammaTransferParams gammaEncodeParams;
+  float3x3 gamutConversionMatrix;
+  float3x2 sampleTransform;
+  float3x2 loadTransform;
+  float2 samplePlane0RectMin;
+  float2 samplePlane0RectMax;
+  float2 samplePlane1RectMin;
+  float2 samplePlane1RectMax;
+  uint2 visibleSize;
+  float2 plane1CoordFactor;
+};
+
+struct VertexOutput {
+  float4 pos;
+  float4 prevent_dce;
+};
+
+struct vertex_main_outputs {
+  nointerpolation float4 VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+Texture2D<float4> arg_0_plane0 : register(t0, space1);
+Texture2D<float4> arg_0_plane1 : register(t1, space1);
+cbuffer cbuffer_arg_0_params : register(b2, space1) {
+  uint4 arg_0_params[17];
+};
+uint2 tint_v2f32_to_v2u32(float2 value) {
+  return (((value <= (4294967040.0f).xx)) ? ((((value >= (0.0f).xx)) ? (uint2(value)) : ((0u).xx))) : ((4294967295u).xx));
+}
+
+float3 tint_GammaCorrection(float3 v, tint_GammaTransferParams params) {
+  float3 v_1 = float3((params.G).xxx);
+  float3 v_2 = float3((params.D).xxx);
+  float3 v_3 = abs(v);
+  float3 v_4 = float3(sign(v));
+  return (((v_3 < v_2)) ? ((v_4 * ((params.C * v_3) + params.F))) : ((v_4 * (pow(((params.A * v_3) + params.B), v_1) + params.E))));
+}
+
+float4 tint_TextureLoadExternal(Texture2D<float4> plane_0, Texture2D<float4> plane_1, tint_ExternalTextureParams params, uint2 coords) {
+  float2 v_5 = round(mul(float3(float2(min(coords, params.visibleSize)), 1.0f), params.loadTransform));
+  uint2 v_6 = tint_v2f32_to_v2u32(v_5);
+  float3 v_7 = (0.0f).xxx;
+  float v_8 = 0.0f;
+  if ((params.numPlanes == 1u)) {
+    int2 v_9 = int2(v_6);
+    float4 v_10 = float4(plane_0.Load(int3(v_9, int(0u))));
+    v_7 = v_10.xyz;
+    v_8 = v_10[3u];
+  } else {
+    int2 v_11 = int2(v_6);
+    float v_12 = float4(plane_0.Load(int3(v_11, int(0u))))[0u];
+    int2 v_13 = int2(tint_v2f32_to_v2u32((v_5 * params.plane1CoordFactor)));
+    v_7 = mul(params.yuvToRgbConversionMatrix, float4(v_12, float4(plane_1.Load(int3(v_13, int(0u)))).xy, 1.0f));
+    v_8 = 1.0f;
+  }
+  float3 v_14 = v_7;
+  float3 v_15 = (0.0f).xxx;
+  if ((params.doYuvToRgbConversionOnly == 0u)) {
+    tint_GammaTransferParams v_16 = params.gammaDecodeParams;
+    tint_GammaTransferParams v_17 = params.gammaEncodeParams;
+    v_15 = tint_GammaCorrection(mul(tint_GammaCorrection(v_14, v_16), params.gamutConversionMatrix), v_17);
+  } else {
+    v_15 = v_14;
+  }
+  return float4(v_15, v_8);
+}
+
+float3x2 v_18(uint start_byte_offset) {
+  uint4 v_19 = arg_0_params[(start_byte_offset / 16u)];
+  float2 v_20 = asfloat((((((start_byte_offset % 16u) / 4u) == 2u)) ? (v_19.zw) : (v_19.xy)));
+  uint4 v_21 = arg_0_params[((8u + start_byte_offset) / 16u)];
+  float2 v_22 = asfloat(((((((8u + start_byte_offset) % 16u) / 4u) == 2u)) ? (v_21.zw) : (v_21.xy)));
+  uint4 v_23 = arg_0_params[((16u + start_byte_offset) / 16u)];
+  return float3x2(v_20, v_22, asfloat(((((((16u + start_byte_offset) % 16u) / 4u) == 2u)) ? (v_23.zw) : (v_23.xy))));
+}
+
+float3x3 v_24(uint start_byte_offset) {
+  float3 v_25 = asfloat(arg_0_params[(start_byte_offset / 16u)].xyz);
+  float3 v_26 = asfloat(arg_0_params[((16u + start_byte_offset) / 16u)].xyz);
+  return float3x3(v_25, v_26, asfloat(arg_0_params[((32u + start_byte_offset) / 16u)].xyz));
+}
+
+tint_GammaTransferParams v_27(uint start_byte_offset) {
+  float v_28 = asfloat(arg_0_params[(start_byte_offset / 16u)][((start_byte_offset % 16u) / 4u)]);
+  float v_29 = asfloat(arg_0_params[((4u + start_byte_offset) / 16u)][(((4u + start_byte_offset) % 16u) / 4u)]);
+  float v_30 = asfloat(arg_0_params[((8u + start_byte_offset) / 16u)][(((8u + start_byte_offset) % 16u) / 4u)]);
+  float v_31 = asfloat(arg_0_params[((12u + start_byte_offset) / 16u)][(((12u + start_byte_offset) % 16u) / 4u)]);
+  float v_32 = asfloat(arg_0_params[((16u + start_byte_offset) / 16u)][(((16u + start_byte_offset) % 16u) / 4u)]);
+  float v_33 = asfloat(arg_0_params[((20u + start_byte_offset) / 16u)][(((20u + start_byte_offset) % 16u) / 4u)]);
+  float v_34 = asfloat(arg_0_params[((24u + start_byte_offset) / 16u)][(((24u + start_byte_offset) % 16u) / 4u)]);
+  tint_GammaTransferParams v_35 = {v_28, v_29, v_30, v_31, v_32, v_33, v_34, arg_0_params[((28u + start_byte_offset) / 16u)][(((28u + start_byte_offset) % 16u) / 4u)]};
+  return v_35;
+}
+
+float3x4 v_36(uint start_byte_offset) {
+  float4 v_37 = asfloat(arg_0_params[(start_byte_offset / 16u)]);
+  float4 v_38 = asfloat(arg_0_params[((16u + start_byte_offset) / 16u)]);
+  return float3x4(v_37, v_38, asfloat(arg_0_params[((32u + start_byte_offset) / 16u)]));
+}
+
+tint_ExternalTextureParams v_39(uint start_byte_offset) {
+  uint v_40 = arg_0_params[(start_byte_offset / 16u)][((start_byte_offset % 16u) / 4u)];
+  uint v_41 = arg_0_params[((4u + start_byte_offset) / 16u)][(((4u + start_byte_offset) % 16u) / 4u)];
+  float3x4 v_42 = v_36((16u + start_byte_offset));
+  tint_GammaTransferParams v_43 = v_27((64u + start_byte_offset));
+  tint_GammaTransferParams v_44 = v_27((96u + start_byte_offset));
+  float3x3 v_45 = v_24((128u + start_byte_offset));
+  float3x2 v_46 = v_18((176u + start_byte_offset));
+  float3x2 v_47 = v_18((200u + start_byte_offset));
+  uint4 v_48 = arg_0_params[((224u + start_byte_offset) / 16u)];
+  float2 v_49 = asfloat(((((((224u + start_byte_offset) % 16u) / 4u) == 2u)) ? (v_48.zw) : (v_48.xy)));
+  uint4 v_50 = arg_0_params[((232u + start_byte_offset) / 16u)];
+  float2 v_51 = asfloat(((((((232u + start_byte_offset) % 16u) / 4u) == 2u)) ? (v_50.zw) : (v_50.xy)));
+  uint4 v_52 = arg_0_params[((240u + start_byte_offset) / 16u)];
+  float2 v_53 = asfloat(((((((240u + start_byte_offset) % 16u) / 4u) == 2u)) ? (v_52.zw) : (v_52.xy)));
+  uint4 v_54 = arg_0_params[((248u + start_byte_offset) / 16u)];
+  float2 v_55 = asfloat(((((((248u + start_byte_offset) % 16u) / 4u) == 2u)) ? (v_54.zw) : (v_54.xy)));
+  uint4 v_56 = arg_0_params[((256u + start_byte_offset) / 16u)];
+  uint2 v_57 = ((((((256u + start_byte_offset) % 16u) / 4u) == 2u)) ? (v_56.zw) : (v_56.xy));
+  uint4 v_58 = arg_0_params[((264u + start_byte_offset) / 16u)];
+  tint_GammaTransferParams v_59 = v_43;
+  tint_GammaTransferParams v_60 = v_44;
+  tint_ExternalTextureParams v_61 = {v_40, v_41, v_42, v_59, v_60, v_45, v_46, v_47, v_49, v_51, v_53, v_55, v_57, asfloat(((((((264u + start_byte_offset) % 16u) / 4u) == 2u)) ? (v_58.zw) : (v_58.xy)))};
+  return v_61;
+}
+
+float4 textureLoad_8acf41() {
+  Texture2D<float4> v_62 = arg_0_plane0;
+  Texture2D<float4> v_63 = arg_0_plane1;
+  tint_ExternalTextureParams v_64 = v_39(0u);
+  tint_ExternalTextureParams v_65 = v_64;
+  float4 res = tint_TextureLoadExternal(v_62, v_63, v_65, uint2((1).xx));
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store4(0u, asuint(textureLoad_8acf41()));
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store4(0u, asuint(textureLoad_8acf41()));
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = textureLoad_8acf41();
+  VertexOutput v_66 = tint_symbol;
+  return v_66;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_67 = vertex_main_inner();
+  VertexOutput v_68 = v_67;
+  VertexOutput v_69 = v_67;
+  vertex_main_outputs v_70 = {v_69.prevent_dce, v_68.pos};
+  return v_70;
+}
+
diff --git a/test/tint/builtins/gen/literal/textureLoad/8b62fb.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/textureLoad/8b62fb.wgsl.expected.ir.dxc.hlsl
index fd28383..334e6e8e 100644
--- a/test/tint/builtins/gen/literal/textureLoad/8b62fb.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureLoad/8b62fb.wgsl.expected.ir.dxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureLoad
+..\..\src\tint\utils\containers\slice.h:216 internal compiler error: TINT_ASSERT(i < Length())
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/literal/textureLoad/8b62fb.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/textureLoad/8b62fb.wgsl.expected.ir.fxc.hlsl
index fd28383..334e6e8e 100644
--- a/test/tint/builtins/gen/literal/textureLoad/8b62fb.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureLoad/8b62fb.wgsl.expected.ir.fxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureLoad
+..\..\src\tint\utils\containers\slice.h:216 internal compiler error: TINT_ASSERT(i < Length())
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/literal/textureLoad/8bf8c2.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/textureLoad/8bf8c2.wgsl.expected.ir.dxc.hlsl
index fd28383..334e6e8e 100644
--- a/test/tint/builtins/gen/literal/textureLoad/8bf8c2.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureLoad/8bf8c2.wgsl.expected.ir.dxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureLoad
+..\..\src\tint\utils\containers\slice.h:216 internal compiler error: TINT_ASSERT(i < Length())
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/literal/textureLoad/8bf8c2.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/textureLoad/8bf8c2.wgsl.expected.ir.fxc.hlsl
index fd28383..334e6e8e 100644
--- a/test/tint/builtins/gen/literal/textureLoad/8bf8c2.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureLoad/8bf8c2.wgsl.expected.ir.fxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureLoad
+..\..\src\tint\utils\containers\slice.h:216 internal compiler error: TINT_ASSERT(i < Length())
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/literal/textureLoad/8c6176.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/textureLoad/8c6176.wgsl.expected.ir.dxc.hlsl
index fd28383..334e6e8e 100644
--- a/test/tint/builtins/gen/literal/textureLoad/8c6176.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureLoad/8c6176.wgsl.expected.ir.dxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureLoad
+..\..\src\tint\utils\containers\slice.h:216 internal compiler error: TINT_ASSERT(i < Length())
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/literal/textureLoad/8c6176.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/textureLoad/8c6176.wgsl.expected.ir.fxc.hlsl
index fd28383..334e6e8e 100644
--- a/test/tint/builtins/gen/literal/textureLoad/8c6176.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureLoad/8c6176.wgsl.expected.ir.fxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureLoad
+..\..\src\tint\utils\containers\slice.h:216 internal compiler error: TINT_ASSERT(i < Length())
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/literal/textureLoad/8ccbe3.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/textureLoad/8ccbe3.wgsl.expected.ir.dxc.hlsl
index fd28383..9f32b1e 100644
--- a/test/tint/builtins/gen/literal/textureLoad/8ccbe3.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureLoad/8ccbe3.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,45 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  float prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureLoad
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation float VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+Texture2D arg_0 : register(t0, space1);
+float textureLoad_8ccbe3() {
+  Texture2D v = arg_0;
+  int2 v_1 = int2((1).xx);
+  float res = v.Load(int3(v_1, int(1u))).x;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store(0u, asuint(textureLoad_8ccbe3()));
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store(0u, asuint(textureLoad_8ccbe3()));
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = textureLoad_8ccbe3();
+  VertexOutput v_2 = tint_symbol;
+  return v_2;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_3 = vertex_main_inner();
+  VertexOutput v_4 = v_3;
+  VertexOutput v_5 = v_3;
+  vertex_main_outputs v_6 = {v_5.prevent_dce, v_4.pos};
+  return v_6;
+}
+
diff --git a/test/tint/builtins/gen/literal/textureLoad/8ccbe3.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/textureLoad/8ccbe3.wgsl.expected.ir.fxc.hlsl
index fd28383..9f32b1e 100644
--- a/test/tint/builtins/gen/literal/textureLoad/8ccbe3.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureLoad/8ccbe3.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,45 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  float prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureLoad
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation float VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+Texture2D arg_0 : register(t0, space1);
+float textureLoad_8ccbe3() {
+  Texture2D v = arg_0;
+  int2 v_1 = int2((1).xx);
+  float res = v.Load(int3(v_1, int(1u))).x;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store(0u, asuint(textureLoad_8ccbe3()));
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store(0u, asuint(textureLoad_8ccbe3()));
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = textureLoad_8ccbe3();
+  VertexOutput v_2 = tint_symbol;
+  return v_2;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_3 = vertex_main_inner();
+  VertexOutput v_4 = v_3;
+  VertexOutput v_5 = v_3;
+  vertex_main_outputs v_6 = {v_5.prevent_dce, v_4.pos};
+  return v_6;
+}
+
diff --git a/test/tint/builtins/gen/literal/textureLoad/8d64c3.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/textureLoad/8d64c3.wgsl.expected.ir.dxc.hlsl
index fd28383..334e6e8e 100644
--- a/test/tint/builtins/gen/literal/textureLoad/8d64c3.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureLoad/8d64c3.wgsl.expected.ir.dxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureLoad
+..\..\src\tint\utils\containers\slice.h:216 internal compiler error: TINT_ASSERT(i < Length())
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/literal/textureLoad/8d64c3.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/textureLoad/8d64c3.wgsl.expected.ir.fxc.hlsl
index fd28383..334e6e8e 100644
--- a/test/tint/builtins/gen/literal/textureLoad/8d64c3.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureLoad/8d64c3.wgsl.expected.ir.fxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureLoad
+..\..\src\tint\utils\containers\slice.h:216 internal compiler error: TINT_ASSERT(i < Length())
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/literal/textureLoad/8db0ce.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/textureLoad/8db0ce.wgsl.expected.ir.dxc.hlsl
index fd28383..334e6e8e 100644
--- a/test/tint/builtins/gen/literal/textureLoad/8db0ce.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureLoad/8db0ce.wgsl.expected.ir.dxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureLoad
+..\..\src\tint\utils\containers\slice.h:216 internal compiler error: TINT_ASSERT(i < Length())
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/literal/textureLoad/8db0ce.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/textureLoad/8db0ce.wgsl.expected.ir.fxc.hlsl
index fd28383..334e6e8e 100644
--- a/test/tint/builtins/gen/literal/textureLoad/8db0ce.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureLoad/8db0ce.wgsl.expected.ir.fxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureLoad
+..\..\src\tint\utils\containers\slice.h:216 internal compiler error: TINT_ASSERT(i < Length())
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/literal/textureLoad/8e5032.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/textureLoad/8e5032.wgsl.expected.ir.dxc.hlsl
index fd28383..334e6e8e 100644
--- a/test/tint/builtins/gen/literal/textureLoad/8e5032.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureLoad/8e5032.wgsl.expected.ir.dxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureLoad
+..\..\src\tint\utils\containers\slice.h:216 internal compiler error: TINT_ASSERT(i < Length())
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/literal/textureLoad/8e5032.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/textureLoad/8e5032.wgsl.expected.ir.fxc.hlsl
index fd28383..334e6e8e 100644
--- a/test/tint/builtins/gen/literal/textureLoad/8e5032.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureLoad/8e5032.wgsl.expected.ir.fxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureLoad
+..\..\src\tint\utils\containers\slice.h:216 internal compiler error: TINT_ASSERT(i < Length())
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/literal/textureLoad/8e68c9.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/textureLoad/8e68c9.wgsl.expected.ir.dxc.hlsl
index fd28383..334e6e8e 100644
--- a/test/tint/builtins/gen/literal/textureLoad/8e68c9.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureLoad/8e68c9.wgsl.expected.ir.dxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureLoad
+..\..\src\tint\utils\containers\slice.h:216 internal compiler error: TINT_ASSERT(i < Length())
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/literal/textureLoad/8e68c9.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/textureLoad/8e68c9.wgsl.expected.ir.fxc.hlsl
index fd28383..334e6e8e 100644
--- a/test/tint/builtins/gen/literal/textureLoad/8e68c9.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureLoad/8e68c9.wgsl.expected.ir.fxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureLoad
+..\..\src\tint\utils\containers\slice.h:216 internal compiler error: TINT_ASSERT(i < Length())
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/literal/textureLoad/8fc29b.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/textureLoad/8fc29b.wgsl.expected.ir.dxc.hlsl
index fd28383..334e6e8e 100644
--- a/test/tint/builtins/gen/literal/textureLoad/8fc29b.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureLoad/8fc29b.wgsl.expected.ir.dxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureLoad
+..\..\src\tint\utils\containers\slice.h:216 internal compiler error: TINT_ASSERT(i < Length())
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/literal/textureLoad/8fc29b.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/textureLoad/8fc29b.wgsl.expected.ir.fxc.hlsl
index fd28383..334e6e8e 100644
--- a/test/tint/builtins/gen/literal/textureLoad/8fc29b.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureLoad/8fc29b.wgsl.expected.ir.fxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureLoad
+..\..\src\tint\utils\containers\slice.h:216 internal compiler error: TINT_ASSERT(i < Length())
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/literal/textureLoad/8ff033.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/textureLoad/8ff033.wgsl.expected.ir.dxc.hlsl
index fd28383..334e6e8e 100644
--- a/test/tint/builtins/gen/literal/textureLoad/8ff033.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureLoad/8ff033.wgsl.expected.ir.dxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureLoad
+..\..\src\tint\utils\containers\slice.h:216 internal compiler error: TINT_ASSERT(i < Length())
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/literal/textureLoad/8ff033.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/textureLoad/8ff033.wgsl.expected.ir.fxc.hlsl
index fd28383..334e6e8e 100644
--- a/test/tint/builtins/gen/literal/textureLoad/8ff033.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureLoad/8ff033.wgsl.expected.ir.fxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureLoad
+..\..\src\tint\utils\containers\slice.h:216 internal compiler error: TINT_ASSERT(i < Length())
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/literal/textureLoad/91ede5.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/textureLoad/91ede5.wgsl.expected.ir.dxc.hlsl
index fd28383..334e6e8e 100644
--- a/test/tint/builtins/gen/literal/textureLoad/91ede5.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureLoad/91ede5.wgsl.expected.ir.dxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureLoad
+..\..\src\tint\utils\containers\slice.h:216 internal compiler error: TINT_ASSERT(i < Length())
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/literal/textureLoad/91ede5.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/textureLoad/91ede5.wgsl.expected.ir.fxc.hlsl
index fd28383..334e6e8e 100644
--- a/test/tint/builtins/gen/literal/textureLoad/91ede5.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureLoad/91ede5.wgsl.expected.ir.fxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureLoad
+..\..\src\tint\utils\containers\slice.h:216 internal compiler error: TINT_ASSERT(i < Length())
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/literal/textureLoad/9242e7.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/textureLoad/9242e7.wgsl.expected.ir.dxc.hlsl
index fd28383..334e6e8e 100644
--- a/test/tint/builtins/gen/literal/textureLoad/9242e7.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureLoad/9242e7.wgsl.expected.ir.dxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureLoad
+..\..\src\tint\utils\containers\slice.h:216 internal compiler error: TINT_ASSERT(i < Length())
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/literal/textureLoad/9242e7.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/textureLoad/9242e7.wgsl.expected.ir.fxc.hlsl
index fd28383..334e6e8e 100644
--- a/test/tint/builtins/gen/literal/textureLoad/9242e7.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureLoad/9242e7.wgsl.expected.ir.fxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureLoad
+..\..\src\tint\utils\containers\slice.h:216 internal compiler error: TINT_ASSERT(i < Length())
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/literal/textureLoad/92dd61.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/textureLoad/92dd61.wgsl.expected.ir.dxc.hlsl
index fd28383..334e6e8e 100644
--- a/test/tint/builtins/gen/literal/textureLoad/92dd61.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureLoad/92dd61.wgsl.expected.ir.dxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureLoad
+..\..\src\tint\utils\containers\slice.h:216 internal compiler error: TINT_ASSERT(i < Length())
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/literal/textureLoad/92dd61.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/textureLoad/92dd61.wgsl.expected.ir.fxc.hlsl
index fd28383..334e6e8e 100644
--- a/test/tint/builtins/gen/literal/textureLoad/92dd61.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureLoad/92dd61.wgsl.expected.ir.fxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureLoad
+..\..\src\tint\utils\containers\slice.h:216 internal compiler error: TINT_ASSERT(i < Length())
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/literal/textureLoad/92eb1f.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/textureLoad/92eb1f.wgsl.expected.ir.dxc.hlsl
index fd28383..02b188f 100644
--- a/test/tint/builtins/gen/literal/textureLoad/92eb1f.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureLoad/92eb1f.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,45 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  uint4 prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureLoad
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation uint4 VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+Texture3D<uint4> arg_0 : register(t0, space1);
+uint4 textureLoad_92eb1f() {
+  Texture3D<uint4> v = arg_0;
+  int3 v_1 = int3((1u).xxx);
+  uint4 res = uint4(v.Load(int4(v_1, int(1))));
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store4(0u, textureLoad_92eb1f());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store4(0u, textureLoad_92eb1f());
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = textureLoad_92eb1f();
+  VertexOutput v_2 = tint_symbol;
+  return v_2;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_3 = vertex_main_inner();
+  VertexOutput v_4 = v_3;
+  VertexOutput v_5 = v_3;
+  vertex_main_outputs v_6 = {v_5.prevent_dce, v_4.pos};
+  return v_6;
+}
+
diff --git a/test/tint/builtins/gen/literal/textureLoad/92eb1f.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/textureLoad/92eb1f.wgsl.expected.ir.fxc.hlsl
index fd28383..02b188f 100644
--- a/test/tint/builtins/gen/literal/textureLoad/92eb1f.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureLoad/92eb1f.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,45 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  uint4 prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureLoad
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation uint4 VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+Texture3D<uint4> arg_0 : register(t0, space1);
+uint4 textureLoad_92eb1f() {
+  Texture3D<uint4> v = arg_0;
+  int3 v_1 = int3((1u).xxx);
+  uint4 res = uint4(v.Load(int4(v_1, int(1))));
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store4(0u, textureLoad_92eb1f());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store4(0u, textureLoad_92eb1f());
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = textureLoad_92eb1f();
+  VertexOutput v_2 = tint_symbol;
+  return v_2;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_3 = vertex_main_inner();
+  VertexOutput v_4 = v_3;
+  VertexOutput v_5 = v_3;
+  vertex_main_outputs v_6 = {v_5.prevent_dce, v_4.pos};
+  return v_6;
+}
+
diff --git a/test/tint/builtins/gen/literal/textureLoad/936952.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/textureLoad/936952.wgsl.expected.ir.dxc.hlsl
index fd28383..334e6e8e 100644
--- a/test/tint/builtins/gen/literal/textureLoad/936952.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureLoad/936952.wgsl.expected.ir.dxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureLoad
+..\..\src\tint\utils\containers\slice.h:216 internal compiler error: TINT_ASSERT(i < Length())
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/literal/textureLoad/936952.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/textureLoad/936952.wgsl.expected.ir.fxc.hlsl
index fd28383..334e6e8e 100644
--- a/test/tint/builtins/gen/literal/textureLoad/936952.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureLoad/936952.wgsl.expected.ir.fxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureLoad
+..\..\src\tint\utils\containers\slice.h:216 internal compiler error: TINT_ASSERT(i < Length())
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/literal/textureLoad/93f23e.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/textureLoad/93f23e.wgsl.expected.ir.dxc.hlsl
index fd28383..334e6e8e 100644
--- a/test/tint/builtins/gen/literal/textureLoad/93f23e.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureLoad/93f23e.wgsl.expected.ir.dxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureLoad
+..\..\src\tint\utils\containers\slice.h:216 internal compiler error: TINT_ASSERT(i < Length())
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/literal/textureLoad/93f23e.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/textureLoad/93f23e.wgsl.expected.ir.fxc.hlsl
index fd28383..334e6e8e 100644
--- a/test/tint/builtins/gen/literal/textureLoad/93f23e.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureLoad/93f23e.wgsl.expected.ir.fxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureLoad
+..\..\src\tint\utils\containers\slice.h:216 internal compiler error: TINT_ASSERT(i < Length())
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/literal/textureLoad/947107.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/textureLoad/947107.wgsl.expected.ir.dxc.hlsl
index fd28383..334e6e8e 100644
--- a/test/tint/builtins/gen/literal/textureLoad/947107.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureLoad/947107.wgsl.expected.ir.dxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureLoad
+..\..\src\tint\utils\containers\slice.h:216 internal compiler error: TINT_ASSERT(i < Length())
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/literal/textureLoad/947107.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/textureLoad/947107.wgsl.expected.ir.fxc.hlsl
index fd28383..334e6e8e 100644
--- a/test/tint/builtins/gen/literal/textureLoad/947107.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureLoad/947107.wgsl.expected.ir.fxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureLoad
+..\..\src\tint\utils\containers\slice.h:216 internal compiler error: TINT_ASSERT(i < Length())
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/literal/textureLoad/96efd5.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/textureLoad/96efd5.wgsl.expected.ir.dxc.hlsl
index fd28383..06c8012 100644
--- a/test/tint/builtins/gen/literal/textureLoad/96efd5.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureLoad/96efd5.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,46 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  float4 prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureLoad
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation float4 VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+Texture2DArray<float4> arg_0 : register(t0, space1);
+float4 textureLoad_96efd5() {
+  Texture2DArray<float4> v = arg_0;
+  int2 v_1 = int2((1u).xx);
+  int v_2 = int(1u);
+  float4 res = float4(v.Load(int4(v_1, v_2, int(1u))));
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store4(0u, asuint(textureLoad_96efd5()));
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store4(0u, asuint(textureLoad_96efd5()));
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = textureLoad_96efd5();
+  VertexOutput v_3 = tint_symbol;
+  return v_3;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_4 = vertex_main_inner();
+  VertexOutput v_5 = v_4;
+  VertexOutput v_6 = v_4;
+  vertex_main_outputs v_7 = {v_6.prevent_dce, v_5.pos};
+  return v_7;
+}
+
diff --git a/test/tint/builtins/gen/literal/textureLoad/96efd5.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/textureLoad/96efd5.wgsl.expected.ir.fxc.hlsl
index fd28383..06c8012 100644
--- a/test/tint/builtins/gen/literal/textureLoad/96efd5.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureLoad/96efd5.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,46 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  float4 prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureLoad
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation float4 VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+Texture2DArray<float4> arg_0 : register(t0, space1);
+float4 textureLoad_96efd5() {
+  Texture2DArray<float4> v = arg_0;
+  int2 v_1 = int2((1u).xx);
+  int v_2 = int(1u);
+  float4 res = float4(v.Load(int4(v_1, v_2, int(1u))));
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store4(0u, asuint(textureLoad_96efd5()));
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store4(0u, asuint(textureLoad_96efd5()));
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = textureLoad_96efd5();
+  VertexOutput v_3 = tint_symbol;
+  return v_3;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_4 = vertex_main_inner();
+  VertexOutput v_5 = v_4;
+  VertexOutput v_6 = v_4;
+  vertex_main_outputs v_7 = {v_6.prevent_dce, v_5.pos};
+  return v_7;
+}
+
diff --git a/test/tint/builtins/gen/literal/textureLoad/970308.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/textureLoad/970308.wgsl.expected.ir.dxc.hlsl
index fd28383..334e6e8e 100644
--- a/test/tint/builtins/gen/literal/textureLoad/970308.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureLoad/970308.wgsl.expected.ir.dxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureLoad
+..\..\src\tint\utils\containers\slice.h:216 internal compiler error: TINT_ASSERT(i < Length())
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/literal/textureLoad/970308.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/textureLoad/970308.wgsl.expected.ir.fxc.hlsl
index fd28383..334e6e8e 100644
--- a/test/tint/builtins/gen/literal/textureLoad/970308.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureLoad/970308.wgsl.expected.ir.fxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureLoad
+..\..\src\tint\utils\containers\slice.h:216 internal compiler error: TINT_ASSERT(i < Length())
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/literal/textureLoad/9885b0.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/textureLoad/9885b0.wgsl.expected.ir.dxc.hlsl
index fd28383..0193abe 100644
--- a/test/tint/builtins/gen/literal/textureLoad/9885b0.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureLoad/9885b0.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,46 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  int4 prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureLoad
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation int4 VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+Texture2DArray<int4> arg_0 : register(t0, space1);
+int4 textureLoad_9885b0() {
+  Texture2DArray<int4> v = arg_0;
+  int2 v_1 = int2((1u).xx);
+  int v_2 = int(1u);
+  int4 res = int4(v.Load(int4(v_1, v_2, int(1u))));
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store4(0u, asuint(textureLoad_9885b0()));
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store4(0u, asuint(textureLoad_9885b0()));
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = textureLoad_9885b0();
+  VertexOutput v_3 = tint_symbol;
+  return v_3;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_4 = vertex_main_inner();
+  VertexOutput v_5 = v_4;
+  VertexOutput v_6 = v_4;
+  vertex_main_outputs v_7 = {v_6.prevent_dce, v_5.pos};
+  return v_7;
+}
+
diff --git a/test/tint/builtins/gen/literal/textureLoad/9885b0.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/textureLoad/9885b0.wgsl.expected.ir.fxc.hlsl
index fd28383..0193abe 100644
--- a/test/tint/builtins/gen/literal/textureLoad/9885b0.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureLoad/9885b0.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,46 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  int4 prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureLoad
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation int4 VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+Texture2DArray<int4> arg_0 : register(t0, space1);
+int4 textureLoad_9885b0() {
+  Texture2DArray<int4> v = arg_0;
+  int2 v_1 = int2((1u).xx);
+  int v_2 = int(1u);
+  int4 res = int4(v.Load(int4(v_1, v_2, int(1u))));
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store4(0u, asuint(textureLoad_9885b0()));
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store4(0u, asuint(textureLoad_9885b0()));
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = textureLoad_9885b0();
+  VertexOutput v_3 = tint_symbol;
+  return v_3;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_4 = vertex_main_inner();
+  VertexOutput v_5 = v_4;
+  VertexOutput v_6 = v_4;
+  vertex_main_outputs v_7 = {v_6.prevent_dce, v_5.pos};
+  return v_7;
+}
+
diff --git a/test/tint/builtins/gen/literal/textureLoad/99d8fa.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/textureLoad/99d8fa.wgsl.expected.ir.dxc.hlsl
index fd28383..334e6e8e 100644
--- a/test/tint/builtins/gen/literal/textureLoad/99d8fa.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureLoad/99d8fa.wgsl.expected.ir.dxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureLoad
+..\..\src\tint\utils\containers\slice.h:216 internal compiler error: TINT_ASSERT(i < Length())
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/literal/textureLoad/99d8fa.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/textureLoad/99d8fa.wgsl.expected.ir.fxc.hlsl
index fd28383..334e6e8e 100644
--- a/test/tint/builtins/gen/literal/textureLoad/99d8fa.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureLoad/99d8fa.wgsl.expected.ir.fxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureLoad
+..\..\src\tint\utils\containers\slice.h:216 internal compiler error: TINT_ASSERT(i < Length())
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/literal/textureLoad/9a7c90.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/textureLoad/9a7c90.wgsl.expected.ir.dxc.hlsl
index fd28383..334e6e8e 100644
--- a/test/tint/builtins/gen/literal/textureLoad/9a7c90.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureLoad/9a7c90.wgsl.expected.ir.dxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureLoad
+..\..\src\tint\utils\containers\slice.h:216 internal compiler error: TINT_ASSERT(i < Length())
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/literal/textureLoad/9a7c90.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/textureLoad/9a7c90.wgsl.expected.ir.fxc.hlsl
index fd28383..334e6e8e 100644
--- a/test/tint/builtins/gen/literal/textureLoad/9a7c90.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureLoad/9a7c90.wgsl.expected.ir.fxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureLoad
+..\..\src\tint\utils\containers\slice.h:216 internal compiler error: TINT_ASSERT(i < Length())
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/literal/textureLoad/9a8c1e.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/textureLoad/9a8c1e.wgsl.expected.ir.dxc.hlsl
index fd28383..334e6e8e 100644
--- a/test/tint/builtins/gen/literal/textureLoad/9a8c1e.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureLoad/9a8c1e.wgsl.expected.ir.dxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureLoad
+..\..\src\tint\utils\containers\slice.h:216 internal compiler error: TINT_ASSERT(i < Length())
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/literal/textureLoad/9a8c1e.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/textureLoad/9a8c1e.wgsl.expected.ir.fxc.hlsl
index fd28383..334e6e8e 100644
--- a/test/tint/builtins/gen/literal/textureLoad/9a8c1e.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureLoad/9a8c1e.wgsl.expected.ir.fxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureLoad
+..\..\src\tint\utils\containers\slice.h:216 internal compiler error: TINT_ASSERT(i < Length())
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/literal/textureLoad/9aa733.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/textureLoad/9aa733.wgsl.expected.ir.dxc.hlsl
index fd28383..0aab270 100644
--- a/test/tint/builtins/gen/literal/textureLoad/9aa733.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureLoad/9aa733.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,45 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  int4 prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureLoad
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation int4 VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+Texture2D<int4> arg_0 : register(t0, space1);
+int4 textureLoad_9aa733() {
+  Texture2D<int4> v = arg_0;
+  int2 v_1 = int2((1u).xx);
+  int4 res = int4(v.Load(int3(v_1, int(1))));
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store4(0u, asuint(textureLoad_9aa733()));
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store4(0u, asuint(textureLoad_9aa733()));
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = textureLoad_9aa733();
+  VertexOutput v_2 = tint_symbol;
+  return v_2;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_3 = vertex_main_inner();
+  VertexOutput v_4 = v_3;
+  VertexOutput v_5 = v_3;
+  vertex_main_outputs v_6 = {v_5.prevent_dce, v_4.pos};
+  return v_6;
+}
+
diff --git a/test/tint/builtins/gen/literal/textureLoad/9aa733.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/textureLoad/9aa733.wgsl.expected.ir.fxc.hlsl
index fd28383..0aab270 100644
--- a/test/tint/builtins/gen/literal/textureLoad/9aa733.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureLoad/9aa733.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,45 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  int4 prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureLoad
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation int4 VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+Texture2D<int4> arg_0 : register(t0, space1);
+int4 textureLoad_9aa733() {
+  Texture2D<int4> v = arg_0;
+  int2 v_1 = int2((1u).xx);
+  int4 res = int4(v.Load(int3(v_1, int(1))));
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store4(0u, asuint(textureLoad_9aa733()));
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store4(0u, asuint(textureLoad_9aa733()));
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = textureLoad_9aa733();
+  VertexOutput v_2 = tint_symbol;
+  return v_2;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_3 = vertex_main_inner();
+  VertexOutput v_4 = v_3;
+  VertexOutput v_5 = v_3;
+  vertex_main_outputs v_6 = {v_5.prevent_dce, v_4.pos};
+  return v_6;
+}
+
diff --git a/test/tint/builtins/gen/literal/textureLoad/9b2667.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/textureLoad/9b2667.wgsl.expected.ir.dxc.hlsl
index fd28383..ffb91ba 100644
--- a/test/tint/builtins/gen/literal/textureLoad/9b2667.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureLoad/9b2667.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,46 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  float prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureLoad
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation float VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+Texture2DArray arg_0 : register(t0, space1);
+float textureLoad_9b2667() {
+  Texture2DArray v = arg_0;
+  int2 v_1 = int2((1).xx);
+  int v_2 = int(1);
+  float res = v.Load(int4(v_1, v_2, int(1))).x;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store(0u, asuint(textureLoad_9b2667()));
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store(0u, asuint(textureLoad_9b2667()));
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = textureLoad_9b2667();
+  VertexOutput v_3 = tint_symbol;
+  return v_3;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_4 = vertex_main_inner();
+  VertexOutput v_5 = v_4;
+  VertexOutput v_6 = v_4;
+  vertex_main_outputs v_7 = {v_6.prevent_dce, v_5.pos};
+  return v_7;
+}
+
diff --git a/test/tint/builtins/gen/literal/textureLoad/9b2667.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/textureLoad/9b2667.wgsl.expected.ir.fxc.hlsl
index fd28383..ffb91ba 100644
--- a/test/tint/builtins/gen/literal/textureLoad/9b2667.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureLoad/9b2667.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,46 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  float prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureLoad
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation float VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+Texture2DArray arg_0 : register(t0, space1);
+float textureLoad_9b2667() {
+  Texture2DArray v = arg_0;
+  int2 v_1 = int2((1).xx);
+  int v_2 = int(1);
+  float res = v.Load(int4(v_1, v_2, int(1))).x;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store(0u, asuint(textureLoad_9b2667()));
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store(0u, asuint(textureLoad_9b2667()));
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = textureLoad_9b2667();
+  VertexOutput v_3 = tint_symbol;
+  return v_3;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_4 = vertex_main_inner();
+  VertexOutput v_5 = v_4;
+  VertexOutput v_6 = v_4;
+  vertex_main_outputs v_7 = {v_6.prevent_dce, v_5.pos};
+  return v_7;
+}
+
diff --git a/test/tint/builtins/gen/literal/textureLoad/9b5343.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/textureLoad/9b5343.wgsl.expected.ir.dxc.hlsl
index fd28383..334e6e8e 100644
--- a/test/tint/builtins/gen/literal/textureLoad/9b5343.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureLoad/9b5343.wgsl.expected.ir.dxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureLoad
+..\..\src\tint\utils\containers\slice.h:216 internal compiler error: TINT_ASSERT(i < Length())
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/literal/textureLoad/9b5343.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/textureLoad/9b5343.wgsl.expected.ir.fxc.hlsl
index fd28383..334e6e8e 100644
--- a/test/tint/builtins/gen/literal/textureLoad/9b5343.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureLoad/9b5343.wgsl.expected.ir.fxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureLoad
+..\..\src\tint\utils\containers\slice.h:216 internal compiler error: TINT_ASSERT(i < Length())
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/literal/textureLoad/9c2376.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/textureLoad/9c2376.wgsl.expected.ir.dxc.hlsl
index fd28383..334e6e8e 100644
--- a/test/tint/builtins/gen/literal/textureLoad/9c2376.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureLoad/9c2376.wgsl.expected.ir.dxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureLoad
+..\..\src\tint\utils\containers\slice.h:216 internal compiler error: TINT_ASSERT(i < Length())
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/literal/textureLoad/9c2376.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/textureLoad/9c2376.wgsl.expected.ir.fxc.hlsl
index fd28383..334e6e8e 100644
--- a/test/tint/builtins/gen/literal/textureLoad/9c2376.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureLoad/9c2376.wgsl.expected.ir.fxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureLoad
+..\..\src\tint\utils\containers\slice.h:216 internal compiler error: TINT_ASSERT(i < Length())
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/literal/textureLoad/9c2a14.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/textureLoad/9c2a14.wgsl.expected.ir.dxc.hlsl
index fd28383..334e6e8e 100644
--- a/test/tint/builtins/gen/literal/textureLoad/9c2a14.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureLoad/9c2a14.wgsl.expected.ir.dxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureLoad
+..\..\src\tint\utils\containers\slice.h:216 internal compiler error: TINT_ASSERT(i < Length())
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/literal/textureLoad/9c2a14.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/textureLoad/9c2a14.wgsl.expected.ir.fxc.hlsl
index fd28383..334e6e8e 100644
--- a/test/tint/builtins/gen/literal/textureLoad/9c2a14.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureLoad/9c2a14.wgsl.expected.ir.fxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureLoad
+..\..\src\tint\utils\containers\slice.h:216 internal compiler error: TINT_ASSERT(i < Length())
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/literal/textureLoad/9cf7df.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/textureLoad/9cf7df.wgsl.expected.ir.dxc.hlsl
index fd28383..334e6e8e 100644
--- a/test/tint/builtins/gen/literal/textureLoad/9cf7df.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureLoad/9cf7df.wgsl.expected.ir.dxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureLoad
+..\..\src\tint\utils\containers\slice.h:216 internal compiler error: TINT_ASSERT(i < Length())
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/literal/textureLoad/9cf7df.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/textureLoad/9cf7df.wgsl.expected.ir.fxc.hlsl
index fd28383..334e6e8e 100644
--- a/test/tint/builtins/gen/literal/textureLoad/9cf7df.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureLoad/9cf7df.wgsl.expected.ir.fxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureLoad
+..\..\src\tint\utils\containers\slice.h:216 internal compiler error: TINT_ASSERT(i < Length())
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/literal/textureLoad/9d70e9.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/textureLoad/9d70e9.wgsl.expected.ir.dxc.hlsl
index fd28383..66cabf9 100644
--- a/test/tint/builtins/gen/literal/textureLoad/9d70e9.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureLoad/9d70e9.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,46 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  int4 prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureLoad
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation int4 VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+Texture2DArray<int4> arg_0 : register(t0, space1);
+int4 textureLoad_9d70e9() {
+  Texture2DArray<int4> v = arg_0;
+  int2 v_1 = int2((1).xx);
+  int v_2 = int(1);
+  int4 res = int4(v.Load(int4(v_1, v_2, int(1u))));
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store4(0u, asuint(textureLoad_9d70e9()));
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store4(0u, asuint(textureLoad_9d70e9()));
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = textureLoad_9d70e9();
+  VertexOutput v_3 = tint_symbol;
+  return v_3;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_4 = vertex_main_inner();
+  VertexOutput v_5 = v_4;
+  VertexOutput v_6 = v_4;
+  vertex_main_outputs v_7 = {v_6.prevent_dce, v_5.pos};
+  return v_7;
+}
+
diff --git a/test/tint/builtins/gen/literal/textureLoad/9d70e9.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/textureLoad/9d70e9.wgsl.expected.ir.fxc.hlsl
index fd28383..66cabf9 100644
--- a/test/tint/builtins/gen/literal/textureLoad/9d70e9.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureLoad/9d70e9.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,46 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  int4 prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureLoad
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation int4 VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+Texture2DArray<int4> arg_0 : register(t0, space1);
+int4 textureLoad_9d70e9() {
+  Texture2DArray<int4> v = arg_0;
+  int2 v_1 = int2((1).xx);
+  int v_2 = int(1);
+  int4 res = int4(v.Load(int4(v_1, v_2, int(1u))));
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store4(0u, asuint(textureLoad_9d70e9()));
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store4(0u, asuint(textureLoad_9d70e9()));
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = textureLoad_9d70e9();
+  VertexOutput v_3 = tint_symbol;
+  return v_3;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_4 = vertex_main_inner();
+  VertexOutput v_5 = v_4;
+  VertexOutput v_6 = v_4;
+  vertex_main_outputs v_7 = {v_6.prevent_dce, v_5.pos};
+  return v_7;
+}
+
diff --git a/test/tint/builtins/gen/literal/textureLoad/9de6f5.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/textureLoad/9de6f5.wgsl.expected.ir.dxc.hlsl
index fd28383..334e6e8e 100644
--- a/test/tint/builtins/gen/literal/textureLoad/9de6f5.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureLoad/9de6f5.wgsl.expected.ir.dxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureLoad
+..\..\src\tint\utils\containers\slice.h:216 internal compiler error: TINT_ASSERT(i < Length())
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/literal/textureLoad/9de6f5.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/textureLoad/9de6f5.wgsl.expected.ir.fxc.hlsl
index fd28383..334e6e8e 100644
--- a/test/tint/builtins/gen/literal/textureLoad/9de6f5.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureLoad/9de6f5.wgsl.expected.ir.fxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureLoad
+..\..\src\tint\utils\containers\slice.h:216 internal compiler error: TINT_ASSERT(i < Length())
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/literal/textureLoad/9ed19e.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/textureLoad/9ed19e.wgsl.expected.ir.dxc.hlsl
index fd28383..687178c 100644
--- a/test/tint/builtins/gen/literal/textureLoad/9ed19e.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureLoad/9ed19e.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,45 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  float prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureLoad
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation float VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+Texture2D arg_0 : register(t0, space1);
+float textureLoad_9ed19e() {
+  Texture2D v = arg_0;
+  int2 v_1 = int2((1u).xx);
+  float res = v.Load(int3(v_1, int(1u))).x;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store(0u, asuint(textureLoad_9ed19e()));
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store(0u, asuint(textureLoad_9ed19e()));
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = textureLoad_9ed19e();
+  VertexOutput v_2 = tint_symbol;
+  return v_2;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_3 = vertex_main_inner();
+  VertexOutput v_4 = v_3;
+  VertexOutput v_5 = v_3;
+  vertex_main_outputs v_6 = {v_5.prevent_dce, v_4.pos};
+  return v_6;
+}
+
diff --git a/test/tint/builtins/gen/literal/textureLoad/9ed19e.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/textureLoad/9ed19e.wgsl.expected.ir.fxc.hlsl
index fd28383..687178c 100644
--- a/test/tint/builtins/gen/literal/textureLoad/9ed19e.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureLoad/9ed19e.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,45 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  float prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureLoad
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation float VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+Texture2D arg_0 : register(t0, space1);
+float textureLoad_9ed19e() {
+  Texture2D v = arg_0;
+  int2 v_1 = int2((1u).xx);
+  float res = v.Load(int3(v_1, int(1u))).x;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store(0u, asuint(textureLoad_9ed19e()));
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store(0u, asuint(textureLoad_9ed19e()));
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = textureLoad_9ed19e();
+  VertexOutput v_2 = tint_symbol;
+  return v_2;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_3 = vertex_main_inner();
+  VertexOutput v_4 = v_3;
+  VertexOutput v_5 = v_3;
+  vertex_main_outputs v_6 = {v_5.prevent_dce, v_4.pos};
+  return v_6;
+}
+
diff --git a/test/tint/builtins/gen/literal/textureLoad/9fa9fd.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/textureLoad/9fa9fd.wgsl.expected.ir.dxc.hlsl
index fd28383..334e6e8e 100644
--- a/test/tint/builtins/gen/literal/textureLoad/9fa9fd.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureLoad/9fa9fd.wgsl.expected.ir.dxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureLoad
+..\..\src\tint\utils\containers\slice.h:216 internal compiler error: TINT_ASSERT(i < Length())
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/literal/textureLoad/9fa9fd.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/textureLoad/9fa9fd.wgsl.expected.ir.fxc.hlsl
index fd28383..334e6e8e 100644
--- a/test/tint/builtins/gen/literal/textureLoad/9fa9fd.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureLoad/9fa9fd.wgsl.expected.ir.fxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureLoad
+..\..\src\tint\utils\containers\slice.h:216 internal compiler error: TINT_ASSERT(i < Length())
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/literal/textureLoad/9fbfd9.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/textureLoad/9fbfd9.wgsl.expected.ir.dxc.hlsl
index fd28383..f730797 100644
--- a/test/tint/builtins/gen/literal/textureLoad/9fbfd9.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureLoad/9fbfd9.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,46 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  int4 prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureLoad
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation int4 VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+Texture2DArray<int4> arg_0 : register(t0, space1);
+int4 textureLoad_9fbfd9() {
+  Texture2DArray<int4> v = arg_0;
+  int2 v_1 = int2((1).xx);
+  int v_2 = int(1u);
+  int4 res = int4(v.Load(int4(v_1, v_2, int(1u))));
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store4(0u, asuint(textureLoad_9fbfd9()));
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store4(0u, asuint(textureLoad_9fbfd9()));
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = textureLoad_9fbfd9();
+  VertexOutput v_3 = tint_symbol;
+  return v_3;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_4 = vertex_main_inner();
+  VertexOutput v_5 = v_4;
+  VertexOutput v_6 = v_4;
+  vertex_main_outputs v_7 = {v_6.prevent_dce, v_5.pos};
+  return v_7;
+}
+
diff --git a/test/tint/builtins/gen/literal/textureLoad/9fbfd9.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/textureLoad/9fbfd9.wgsl.expected.ir.fxc.hlsl
index fd28383..f730797 100644
--- a/test/tint/builtins/gen/literal/textureLoad/9fbfd9.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureLoad/9fbfd9.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,46 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  int4 prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureLoad
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation int4 VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+Texture2DArray<int4> arg_0 : register(t0, space1);
+int4 textureLoad_9fbfd9() {
+  Texture2DArray<int4> v = arg_0;
+  int2 v_1 = int2((1).xx);
+  int v_2 = int(1u);
+  int4 res = int4(v.Load(int4(v_1, v_2, int(1u))));
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store4(0u, asuint(textureLoad_9fbfd9()));
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store4(0u, asuint(textureLoad_9fbfd9()));
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = textureLoad_9fbfd9();
+  VertexOutput v_3 = tint_symbol;
+  return v_3;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_4 = vertex_main_inner();
+  VertexOutput v_5 = v_4;
+  VertexOutput v_6 = v_4;
+  vertex_main_outputs v_7 = {v_6.prevent_dce, v_5.pos};
+  return v_7;
+}
+
diff --git a/test/tint/builtins/gen/literal/textureLoad/9fd7be.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/textureLoad/9fd7be.wgsl.expected.ir.dxc.hlsl
index fd28383..334e6e8e 100644
--- a/test/tint/builtins/gen/literal/textureLoad/9fd7be.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureLoad/9fd7be.wgsl.expected.ir.dxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureLoad
+..\..\src\tint\utils\containers\slice.h:216 internal compiler error: TINT_ASSERT(i < Length())
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/literal/textureLoad/9fd7be.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/textureLoad/9fd7be.wgsl.expected.ir.fxc.hlsl
index fd28383..334e6e8e 100644
--- a/test/tint/builtins/gen/literal/textureLoad/9fd7be.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureLoad/9fd7be.wgsl.expected.ir.fxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureLoad
+..\..\src\tint\utils\containers\slice.h:216 internal compiler error: TINT_ASSERT(i < Length())
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/literal/textureLoad/a03af1.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/textureLoad/a03af1.wgsl.expected.ir.dxc.hlsl
index fd28383..334e6e8e 100644
--- a/test/tint/builtins/gen/literal/textureLoad/a03af1.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureLoad/a03af1.wgsl.expected.ir.dxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureLoad
+..\..\src\tint\utils\containers\slice.h:216 internal compiler error: TINT_ASSERT(i < Length())
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/literal/textureLoad/a03af1.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/textureLoad/a03af1.wgsl.expected.ir.fxc.hlsl
index fd28383..334e6e8e 100644
--- a/test/tint/builtins/gen/literal/textureLoad/a03af1.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureLoad/a03af1.wgsl.expected.ir.fxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureLoad
+..\..\src\tint\utils\containers\slice.h:216 internal compiler error: TINT_ASSERT(i < Length())
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/literal/textureLoad/a24be1.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/textureLoad/a24be1.wgsl.expected.ir.dxc.hlsl
index fd28383..fbe8794 100644
--- a/test/tint/builtins/gen/literal/textureLoad/a24be1.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureLoad/a24be1.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,46 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  uint4 prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureLoad
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation uint4 VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+Texture2DArray<uint4> arg_0 : register(t0, space1);
+uint4 textureLoad_a24be1() {
+  Texture2DArray<uint4> v = arg_0;
+  int2 v_1 = int2((1u).xx);
+  int v_2 = int(1);
+  uint4 res = uint4(v.Load(int4(v_1, v_2, int(1u))));
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store4(0u, textureLoad_a24be1());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store4(0u, textureLoad_a24be1());
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = textureLoad_a24be1();
+  VertexOutput v_3 = tint_symbol;
+  return v_3;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_4 = vertex_main_inner();
+  VertexOutput v_5 = v_4;
+  VertexOutput v_6 = v_4;
+  vertex_main_outputs v_7 = {v_6.prevent_dce, v_5.pos};
+  return v_7;
+}
+
diff --git a/test/tint/builtins/gen/literal/textureLoad/a24be1.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/textureLoad/a24be1.wgsl.expected.ir.fxc.hlsl
index fd28383..fbe8794 100644
--- a/test/tint/builtins/gen/literal/textureLoad/a24be1.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureLoad/a24be1.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,46 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  uint4 prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureLoad
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation uint4 VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+Texture2DArray<uint4> arg_0 : register(t0, space1);
+uint4 textureLoad_a24be1() {
+  Texture2DArray<uint4> v = arg_0;
+  int2 v_1 = int2((1u).xx);
+  int v_2 = int(1);
+  uint4 res = uint4(v.Load(int4(v_1, v_2, int(1u))));
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store4(0u, textureLoad_a24be1());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store4(0u, textureLoad_a24be1());
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = textureLoad_a24be1();
+  VertexOutput v_3 = tint_symbol;
+  return v_3;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_4 = vertex_main_inner();
+  VertexOutput v_5 = v_4;
+  VertexOutput v_6 = v_4;
+  vertex_main_outputs v_7 = {v_6.prevent_dce, v_5.pos};
+  return v_7;
+}
+
diff --git a/test/tint/builtins/gen/literal/textureLoad/a2b3f4.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/textureLoad/a2b3f4.wgsl.expected.ir.dxc.hlsl
index fd28383..334e6e8e 100644
--- a/test/tint/builtins/gen/literal/textureLoad/a2b3f4.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureLoad/a2b3f4.wgsl.expected.ir.dxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureLoad
+..\..\src\tint\utils\containers\slice.h:216 internal compiler error: TINT_ASSERT(i < Length())
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/literal/textureLoad/a2b3f4.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/textureLoad/a2b3f4.wgsl.expected.ir.fxc.hlsl
index fd28383..334e6e8e 100644
--- a/test/tint/builtins/gen/literal/textureLoad/a2b3f4.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureLoad/a2b3f4.wgsl.expected.ir.fxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureLoad
+..\..\src\tint\utils\containers\slice.h:216 internal compiler error: TINT_ASSERT(i < Length())
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/literal/textureLoad/a3733f.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/textureLoad/a3733f.wgsl.expected.ir.dxc.hlsl
index fd28383..334e6e8e 100644
--- a/test/tint/builtins/gen/literal/textureLoad/a3733f.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureLoad/a3733f.wgsl.expected.ir.dxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureLoad
+..\..\src\tint\utils\containers\slice.h:216 internal compiler error: TINT_ASSERT(i < Length())
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/literal/textureLoad/a3733f.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/textureLoad/a3733f.wgsl.expected.ir.fxc.hlsl
index fd28383..334e6e8e 100644
--- a/test/tint/builtins/gen/literal/textureLoad/a3733f.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureLoad/a3733f.wgsl.expected.ir.fxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureLoad
+..\..\src\tint\utils\containers\slice.h:216 internal compiler error: TINT_ASSERT(i < Length())
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/literal/textureLoad/a3f122.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/textureLoad/a3f122.wgsl.expected.ir.dxc.hlsl
index fd28383..334e6e8e 100644
--- a/test/tint/builtins/gen/literal/textureLoad/a3f122.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureLoad/a3f122.wgsl.expected.ir.dxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureLoad
+..\..\src\tint\utils\containers\slice.h:216 internal compiler error: TINT_ASSERT(i < Length())
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/literal/textureLoad/a3f122.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/textureLoad/a3f122.wgsl.expected.ir.fxc.hlsl
index fd28383..334e6e8e 100644
--- a/test/tint/builtins/gen/literal/textureLoad/a3f122.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureLoad/a3f122.wgsl.expected.ir.fxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureLoad
+..\..\src\tint\utils\containers\slice.h:216 internal compiler error: TINT_ASSERT(i < Length())
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/literal/textureLoad/a548a8.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/textureLoad/a548a8.wgsl.expected.ir.dxc.hlsl
index fd28383..334e6e8e 100644
--- a/test/tint/builtins/gen/literal/textureLoad/a548a8.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureLoad/a548a8.wgsl.expected.ir.dxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureLoad
+..\..\src\tint\utils\containers\slice.h:216 internal compiler error: TINT_ASSERT(i < Length())
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/literal/textureLoad/a548a8.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/textureLoad/a548a8.wgsl.expected.ir.fxc.hlsl
index fd28383..334e6e8e 100644
--- a/test/tint/builtins/gen/literal/textureLoad/a548a8.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureLoad/a548a8.wgsl.expected.ir.fxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureLoad
+..\..\src\tint\utils\containers\slice.h:216 internal compiler error: TINT_ASSERT(i < Length())
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/literal/textureLoad/a54e11.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/textureLoad/a54e11.wgsl.expected.ir.dxc.hlsl
index fd28383..334e6e8e 100644
--- a/test/tint/builtins/gen/literal/textureLoad/a54e11.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureLoad/a54e11.wgsl.expected.ir.dxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureLoad
+..\..\src\tint\utils\containers\slice.h:216 internal compiler error: TINT_ASSERT(i < Length())
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/literal/textureLoad/a54e11.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/textureLoad/a54e11.wgsl.expected.ir.fxc.hlsl
index fd28383..334e6e8e 100644
--- a/test/tint/builtins/gen/literal/textureLoad/a54e11.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureLoad/a54e11.wgsl.expected.ir.fxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureLoad
+..\..\src\tint\utils\containers\slice.h:216 internal compiler error: TINT_ASSERT(i < Length())
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/literal/textureLoad/a583c9.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/textureLoad/a583c9.wgsl.expected.ir.dxc.hlsl
index fd28383..9852dc6 100644
--- a/test/tint/builtins/gen/literal/textureLoad/a583c9.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureLoad/a583c9.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,45 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  float4 prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureLoad
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation float4 VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+Texture2DMS<float4> arg_0 : register(t0, space1);
+float4 textureLoad_a583c9() {
+  Texture2DMS<float4> v = arg_0;
+  int2 v_1 = int2((1).xx);
+  float4 res = float4(v.Load(v_1, int(1)));
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store4(0u, asuint(textureLoad_a583c9()));
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store4(0u, asuint(textureLoad_a583c9()));
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = textureLoad_a583c9();
+  VertexOutput v_2 = tint_symbol;
+  return v_2;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_3 = vertex_main_inner();
+  VertexOutput v_4 = v_3;
+  VertexOutput v_5 = v_3;
+  vertex_main_outputs v_6 = {v_5.prevent_dce, v_4.pos};
+  return v_6;
+}
+
diff --git a/test/tint/builtins/gen/literal/textureLoad/a583c9.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/textureLoad/a583c9.wgsl.expected.ir.fxc.hlsl
index fd28383..9852dc6 100644
--- a/test/tint/builtins/gen/literal/textureLoad/a583c9.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureLoad/a583c9.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,45 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  float4 prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureLoad
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation float4 VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+Texture2DMS<float4> arg_0 : register(t0, space1);
+float4 textureLoad_a583c9() {
+  Texture2DMS<float4> v = arg_0;
+  int2 v_1 = int2((1).xx);
+  float4 res = float4(v.Load(v_1, int(1)));
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store4(0u, asuint(textureLoad_a583c9()));
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store4(0u, asuint(textureLoad_a583c9()));
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = textureLoad_a583c9();
+  VertexOutput v_2 = tint_symbol;
+  return v_2;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_3 = vertex_main_inner();
+  VertexOutput v_4 = v_3;
+  VertexOutput v_5 = v_3;
+  vertex_main_outputs v_6 = {v_5.prevent_dce, v_4.pos};
+  return v_6;
+}
+
diff --git a/test/tint/builtins/gen/literal/textureLoad/a5c4e2.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/textureLoad/a5c4e2.wgsl.expected.ir.dxc.hlsl
index fd28383..334e6e8e 100644
--- a/test/tint/builtins/gen/literal/textureLoad/a5c4e2.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureLoad/a5c4e2.wgsl.expected.ir.dxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureLoad
+..\..\src\tint\utils\containers\slice.h:216 internal compiler error: TINT_ASSERT(i < Length())
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/literal/textureLoad/a5c4e2.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/textureLoad/a5c4e2.wgsl.expected.ir.fxc.hlsl
index fd28383..334e6e8e 100644
--- a/test/tint/builtins/gen/literal/textureLoad/a5c4e2.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureLoad/a5c4e2.wgsl.expected.ir.fxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureLoad
+..\..\src\tint\utils\containers\slice.h:216 internal compiler error: TINT_ASSERT(i < Length())
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/literal/textureLoad/a5e0a5.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/textureLoad/a5e0a5.wgsl.expected.ir.dxc.hlsl
index fd28383..334e6e8e 100644
--- a/test/tint/builtins/gen/literal/textureLoad/a5e0a5.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureLoad/a5e0a5.wgsl.expected.ir.dxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureLoad
+..\..\src\tint\utils\containers\slice.h:216 internal compiler error: TINT_ASSERT(i < Length())
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/literal/textureLoad/a5e0a5.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/textureLoad/a5e0a5.wgsl.expected.ir.fxc.hlsl
index fd28383..334e6e8e 100644
--- a/test/tint/builtins/gen/literal/textureLoad/a5e0a5.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureLoad/a5e0a5.wgsl.expected.ir.fxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureLoad
+..\..\src\tint\utils\containers\slice.h:216 internal compiler error: TINT_ASSERT(i < Length())
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/literal/textureLoad/a64b1d.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/textureLoad/a64b1d.wgsl.expected.ir.dxc.hlsl
index fd28383..334e6e8e 100644
--- a/test/tint/builtins/gen/literal/textureLoad/a64b1d.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureLoad/a64b1d.wgsl.expected.ir.dxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureLoad
+..\..\src\tint\utils\containers\slice.h:216 internal compiler error: TINT_ASSERT(i < Length())
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/literal/textureLoad/a64b1d.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/textureLoad/a64b1d.wgsl.expected.ir.fxc.hlsl
index fd28383..334e6e8e 100644
--- a/test/tint/builtins/gen/literal/textureLoad/a64b1d.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureLoad/a64b1d.wgsl.expected.ir.fxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureLoad
+..\..\src\tint\utils\containers\slice.h:216 internal compiler error: TINT_ASSERT(i < Length())
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/literal/textureLoad/a6a85a.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/textureLoad/a6a85a.wgsl.expected.ir.dxc.hlsl
index fd28383..334e6e8e 100644
--- a/test/tint/builtins/gen/literal/textureLoad/a6a85a.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureLoad/a6a85a.wgsl.expected.ir.dxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureLoad
+..\..\src\tint\utils\containers\slice.h:216 internal compiler error: TINT_ASSERT(i < Length())
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/literal/textureLoad/a6a85a.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/textureLoad/a6a85a.wgsl.expected.ir.fxc.hlsl
index fd28383..334e6e8e 100644
--- a/test/tint/builtins/gen/literal/textureLoad/a6a85a.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureLoad/a6a85a.wgsl.expected.ir.fxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureLoad
+..\..\src\tint\utils\containers\slice.h:216 internal compiler error: TINT_ASSERT(i < Length())
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/literal/textureLoad/a6b61d.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/textureLoad/a6b61d.wgsl.expected.ir.dxc.hlsl
index fd28383..334e6e8e 100644
--- a/test/tint/builtins/gen/literal/textureLoad/a6b61d.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureLoad/a6b61d.wgsl.expected.ir.dxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureLoad
+..\..\src\tint\utils\containers\slice.h:216 internal compiler error: TINT_ASSERT(i < Length())
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/literal/textureLoad/a6b61d.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/textureLoad/a6b61d.wgsl.expected.ir.fxc.hlsl
index fd28383..334e6e8e 100644
--- a/test/tint/builtins/gen/literal/textureLoad/a6b61d.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureLoad/a6b61d.wgsl.expected.ir.fxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureLoad
+..\..\src\tint\utils\containers\slice.h:216 internal compiler error: TINT_ASSERT(i < Length())
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/literal/textureLoad/a7444c.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/textureLoad/a7444c.wgsl.expected.ir.dxc.hlsl
index fd28383..334e6e8e 100644
--- a/test/tint/builtins/gen/literal/textureLoad/a7444c.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureLoad/a7444c.wgsl.expected.ir.dxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureLoad
+..\..\src\tint\utils\containers\slice.h:216 internal compiler error: TINT_ASSERT(i < Length())
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/literal/textureLoad/a7444c.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/textureLoad/a7444c.wgsl.expected.ir.fxc.hlsl
index fd28383..334e6e8e 100644
--- a/test/tint/builtins/gen/literal/textureLoad/a7444c.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureLoad/a7444c.wgsl.expected.ir.fxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureLoad
+..\..\src\tint\utils\containers\slice.h:216 internal compiler error: TINT_ASSERT(i < Length())
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/literal/textureLoad/a7a3c3.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/textureLoad/a7a3c3.wgsl.expected.ir.dxc.hlsl
index fd28383..334e6e8e 100644
--- a/test/tint/builtins/gen/literal/textureLoad/a7a3c3.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureLoad/a7a3c3.wgsl.expected.ir.dxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureLoad
+..\..\src\tint\utils\containers\slice.h:216 internal compiler error: TINT_ASSERT(i < Length())
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/literal/textureLoad/a7a3c3.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/textureLoad/a7a3c3.wgsl.expected.ir.fxc.hlsl
index fd28383..334e6e8e 100644
--- a/test/tint/builtins/gen/literal/textureLoad/a7a3c3.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureLoad/a7a3c3.wgsl.expected.ir.fxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureLoad
+..\..\src\tint\utils\containers\slice.h:216 internal compiler error: TINT_ASSERT(i < Length())
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/literal/textureLoad/a7bcb4.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/textureLoad/a7bcb4.wgsl.expected.ir.dxc.hlsl
index fd28383..334e6e8e 100644
--- a/test/tint/builtins/gen/literal/textureLoad/a7bcb4.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureLoad/a7bcb4.wgsl.expected.ir.dxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureLoad
+..\..\src\tint\utils\containers\slice.h:216 internal compiler error: TINT_ASSERT(i < Length())
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/literal/textureLoad/a7bcb4.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/textureLoad/a7bcb4.wgsl.expected.ir.fxc.hlsl
index fd28383..334e6e8e 100644
--- a/test/tint/builtins/gen/literal/textureLoad/a7bcb4.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureLoad/a7bcb4.wgsl.expected.ir.fxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureLoad
+..\..\src\tint\utils\containers\slice.h:216 internal compiler error: TINT_ASSERT(i < Length())
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/literal/textureLoad/a7c171.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/textureLoad/a7c171.wgsl.expected.ir.dxc.hlsl
index fd28383..334e6e8e 100644
--- a/test/tint/builtins/gen/literal/textureLoad/a7c171.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureLoad/a7c171.wgsl.expected.ir.dxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureLoad
+..\..\src\tint\utils\containers\slice.h:216 internal compiler error: TINT_ASSERT(i < Length())
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/literal/textureLoad/a7c171.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/textureLoad/a7c171.wgsl.expected.ir.fxc.hlsl
index fd28383..334e6e8e 100644
--- a/test/tint/builtins/gen/literal/textureLoad/a7c171.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureLoad/a7c171.wgsl.expected.ir.fxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureLoad
+..\..\src\tint\utils\containers\slice.h:216 internal compiler error: TINT_ASSERT(i < Length())
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/literal/textureLoad/a8549b.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/textureLoad/a8549b.wgsl.expected.ir.dxc.hlsl
index fd28383..334e6e8e 100644
--- a/test/tint/builtins/gen/literal/textureLoad/a8549b.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureLoad/a8549b.wgsl.expected.ir.dxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureLoad
+..\..\src\tint\utils\containers\slice.h:216 internal compiler error: TINT_ASSERT(i < Length())
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/literal/textureLoad/a8549b.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/textureLoad/a8549b.wgsl.expected.ir.fxc.hlsl
index fd28383..334e6e8e 100644
--- a/test/tint/builtins/gen/literal/textureLoad/a8549b.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureLoad/a8549b.wgsl.expected.ir.fxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureLoad
+..\..\src\tint\utils\containers\slice.h:216 internal compiler error: TINT_ASSERT(i < Length())
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/literal/textureLoad/a92b18.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/textureLoad/a92b18.wgsl.expected.ir.dxc.hlsl
index fd28383..334e6e8e 100644
--- a/test/tint/builtins/gen/literal/textureLoad/a92b18.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureLoad/a92b18.wgsl.expected.ir.dxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureLoad
+..\..\src\tint\utils\containers\slice.h:216 internal compiler error: TINT_ASSERT(i < Length())
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/literal/textureLoad/a92b18.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/textureLoad/a92b18.wgsl.expected.ir.fxc.hlsl
index fd28383..334e6e8e 100644
--- a/test/tint/builtins/gen/literal/textureLoad/a92b18.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureLoad/a92b18.wgsl.expected.ir.fxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureLoad
+..\..\src\tint\utils\containers\slice.h:216 internal compiler error: TINT_ASSERT(i < Length())
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/literal/textureLoad/a9a9f5.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/textureLoad/a9a9f5.wgsl.expected.ir.dxc.hlsl
index fd28383..5e6f92d 100644
--- a/test/tint/builtins/gen/literal/textureLoad/a9a9f5.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureLoad/a9a9f5.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,45 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  uint4 prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureLoad
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation uint4 VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+Texture3D<uint4> arg_0 : register(t0, space1);
+uint4 textureLoad_a9a9f5() {
+  Texture3D<uint4> v = arg_0;
+  int3 v_1 = int3((1).xxx);
+  uint4 res = uint4(v.Load(int4(v_1, int(1))));
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store4(0u, textureLoad_a9a9f5());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store4(0u, textureLoad_a9a9f5());
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = textureLoad_a9a9f5();
+  VertexOutput v_2 = tint_symbol;
+  return v_2;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_3 = vertex_main_inner();
+  VertexOutput v_4 = v_3;
+  VertexOutput v_5 = v_3;
+  vertex_main_outputs v_6 = {v_5.prevent_dce, v_4.pos};
+  return v_6;
+}
+
diff --git a/test/tint/builtins/gen/literal/textureLoad/a9a9f5.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/textureLoad/a9a9f5.wgsl.expected.ir.fxc.hlsl
index fd28383..5e6f92d 100644
--- a/test/tint/builtins/gen/literal/textureLoad/a9a9f5.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureLoad/a9a9f5.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,45 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  uint4 prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureLoad
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation uint4 VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+Texture3D<uint4> arg_0 : register(t0, space1);
+uint4 textureLoad_a9a9f5() {
+  Texture3D<uint4> v = arg_0;
+  int3 v_1 = int3((1).xxx);
+  uint4 res = uint4(v.Load(int4(v_1, int(1))));
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store4(0u, textureLoad_a9a9f5());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store4(0u, textureLoad_a9a9f5());
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = textureLoad_a9a9f5();
+  VertexOutput v_2 = tint_symbol;
+  return v_2;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_3 = vertex_main_inner();
+  VertexOutput v_4 = v_3;
+  VertexOutput v_5 = v_3;
+  vertex_main_outputs v_6 = {v_5.prevent_dce, v_4.pos};
+  return v_6;
+}
+
diff --git a/test/tint/builtins/gen/literal/textureLoad/aa2579.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/textureLoad/aa2579.wgsl.expected.ir.dxc.hlsl
index fd28383..334e6e8e 100644
--- a/test/tint/builtins/gen/literal/textureLoad/aa2579.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureLoad/aa2579.wgsl.expected.ir.dxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureLoad
+..\..\src\tint\utils\containers\slice.h:216 internal compiler error: TINT_ASSERT(i < Length())
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/literal/textureLoad/aa2579.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/textureLoad/aa2579.wgsl.expected.ir.fxc.hlsl
index fd28383..334e6e8e 100644
--- a/test/tint/builtins/gen/literal/textureLoad/aa2579.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureLoad/aa2579.wgsl.expected.ir.fxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureLoad
+..\..\src\tint\utils\containers\slice.h:216 internal compiler error: TINT_ASSERT(i < Length())
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/literal/textureLoad/aa6130.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/textureLoad/aa6130.wgsl.expected.ir.dxc.hlsl
index fd28383..334e6e8e 100644
--- a/test/tint/builtins/gen/literal/textureLoad/aa6130.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureLoad/aa6130.wgsl.expected.ir.dxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureLoad
+..\..\src\tint\utils\containers\slice.h:216 internal compiler error: TINT_ASSERT(i < Length())
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/literal/textureLoad/aa6130.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/textureLoad/aa6130.wgsl.expected.ir.fxc.hlsl
index fd28383..334e6e8e 100644
--- a/test/tint/builtins/gen/literal/textureLoad/aa6130.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureLoad/aa6130.wgsl.expected.ir.fxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureLoad
+..\..\src\tint\utils\containers\slice.h:216 internal compiler error: TINT_ASSERT(i < Length())
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/literal/textureLoad/aa8a0d.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/textureLoad/aa8a0d.wgsl.expected.ir.dxc.hlsl
index fd28383..334e6e8e 100644
--- a/test/tint/builtins/gen/literal/textureLoad/aa8a0d.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureLoad/aa8a0d.wgsl.expected.ir.dxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureLoad
+..\..\src\tint\utils\containers\slice.h:216 internal compiler error: TINT_ASSERT(i < Length())
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/literal/textureLoad/aa8a0d.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/textureLoad/aa8a0d.wgsl.expected.ir.fxc.hlsl
index fd28383..334e6e8e 100644
--- a/test/tint/builtins/gen/literal/textureLoad/aa8a0d.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureLoad/aa8a0d.wgsl.expected.ir.fxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureLoad
+..\..\src\tint\utils\containers\slice.h:216 internal compiler error: TINT_ASSERT(i < Length())
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/literal/textureLoad/aae7f6.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/textureLoad/aae7f6.wgsl.expected.ir.dxc.hlsl
index fd28383..334e6e8e 100644
--- a/test/tint/builtins/gen/literal/textureLoad/aae7f6.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureLoad/aae7f6.wgsl.expected.ir.dxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureLoad
+..\..\src\tint\utils\containers\slice.h:216 internal compiler error: TINT_ASSERT(i < Length())
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/literal/textureLoad/aae7f6.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/textureLoad/aae7f6.wgsl.expected.ir.fxc.hlsl
index fd28383..334e6e8e 100644
--- a/test/tint/builtins/gen/literal/textureLoad/aae7f6.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureLoad/aae7f6.wgsl.expected.ir.fxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureLoad
+..\..\src\tint\utils\containers\slice.h:216 internal compiler error: TINT_ASSERT(i < Length())
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/literal/textureLoad/aae9c3.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/textureLoad/aae9c3.wgsl.expected.ir.dxc.hlsl
index fd28383..334e6e8e 100644
--- a/test/tint/builtins/gen/literal/textureLoad/aae9c3.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureLoad/aae9c3.wgsl.expected.ir.dxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureLoad
+..\..\src\tint\utils\containers\slice.h:216 internal compiler error: TINT_ASSERT(i < Length())
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/literal/textureLoad/aae9c3.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/textureLoad/aae9c3.wgsl.expected.ir.fxc.hlsl
index fd28383..334e6e8e 100644
--- a/test/tint/builtins/gen/literal/textureLoad/aae9c3.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureLoad/aae9c3.wgsl.expected.ir.fxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureLoad
+..\..\src\tint\utils\containers\slice.h:216 internal compiler error: TINT_ASSERT(i < Length())
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/literal/textureLoad/ac64f7.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/textureLoad/ac64f7.wgsl.expected.ir.dxc.hlsl
index fd28383..334e6e8e 100644
--- a/test/tint/builtins/gen/literal/textureLoad/ac64f7.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureLoad/ac64f7.wgsl.expected.ir.dxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureLoad
+..\..\src\tint\utils\containers\slice.h:216 internal compiler error: TINT_ASSERT(i < Length())
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/literal/textureLoad/ac64f7.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/textureLoad/ac64f7.wgsl.expected.ir.fxc.hlsl
index fd28383..334e6e8e 100644
--- a/test/tint/builtins/gen/literal/textureLoad/ac64f7.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureLoad/ac64f7.wgsl.expected.ir.fxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureLoad
+..\..\src\tint\utils\containers\slice.h:216 internal compiler error: TINT_ASSERT(i < Length())
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/literal/textureLoad/acf22f.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/textureLoad/acf22f.wgsl.expected.ir.dxc.hlsl
index fd28383..334e6e8e 100644
--- a/test/tint/builtins/gen/literal/textureLoad/acf22f.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureLoad/acf22f.wgsl.expected.ir.dxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureLoad
+..\..\src\tint\utils\containers\slice.h:216 internal compiler error: TINT_ASSERT(i < Length())
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/literal/textureLoad/acf22f.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/textureLoad/acf22f.wgsl.expected.ir.fxc.hlsl
index fd28383..334e6e8e 100644
--- a/test/tint/builtins/gen/literal/textureLoad/acf22f.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureLoad/acf22f.wgsl.expected.ir.fxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureLoad
+..\..\src\tint\utils\containers\slice.h:216 internal compiler error: TINT_ASSERT(i < Length())
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/literal/textureLoad/ad551e.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/textureLoad/ad551e.wgsl.expected.ir.dxc.hlsl
index fd28383..334e6e8e 100644
--- a/test/tint/builtins/gen/literal/textureLoad/ad551e.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureLoad/ad551e.wgsl.expected.ir.dxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureLoad
+..\..\src\tint\utils\containers\slice.h:216 internal compiler error: TINT_ASSERT(i < Length())
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/literal/textureLoad/ad551e.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/textureLoad/ad551e.wgsl.expected.ir.fxc.hlsl
index fd28383..334e6e8e 100644
--- a/test/tint/builtins/gen/literal/textureLoad/ad551e.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureLoad/ad551e.wgsl.expected.ir.fxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureLoad
+..\..\src\tint\utils\containers\slice.h:216 internal compiler error: TINT_ASSERT(i < Length())
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/literal/textureLoad/aeae73.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/textureLoad/aeae73.wgsl.expected.ir.dxc.hlsl
index fd28383..334e6e8e 100644
--- a/test/tint/builtins/gen/literal/textureLoad/aeae73.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureLoad/aeae73.wgsl.expected.ir.dxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureLoad
+..\..\src\tint\utils\containers\slice.h:216 internal compiler error: TINT_ASSERT(i < Length())
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/literal/textureLoad/aeae73.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/textureLoad/aeae73.wgsl.expected.ir.fxc.hlsl
index fd28383..334e6e8e 100644
--- a/test/tint/builtins/gen/literal/textureLoad/aeae73.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureLoad/aeae73.wgsl.expected.ir.fxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureLoad
+..\..\src\tint\utils\containers\slice.h:216 internal compiler error: TINT_ASSERT(i < Length())
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/literal/textureLoad/aebc09.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/textureLoad/aebc09.wgsl.expected.ir.dxc.hlsl
index fd28383..334e6e8e 100644
--- a/test/tint/builtins/gen/literal/textureLoad/aebc09.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureLoad/aebc09.wgsl.expected.ir.dxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureLoad
+..\..\src\tint\utils\containers\slice.h:216 internal compiler error: TINT_ASSERT(i < Length())
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/literal/textureLoad/aebc09.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/textureLoad/aebc09.wgsl.expected.ir.fxc.hlsl
index fd28383..334e6e8e 100644
--- a/test/tint/builtins/gen/literal/textureLoad/aebc09.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureLoad/aebc09.wgsl.expected.ir.fxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureLoad
+..\..\src\tint\utils\containers\slice.h:216 internal compiler error: TINT_ASSERT(i < Length())
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/literal/textureLoad/af0507.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/textureLoad/af0507.wgsl.expected.ir.dxc.hlsl
index fd28383..334e6e8e 100644
--- a/test/tint/builtins/gen/literal/textureLoad/af0507.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureLoad/af0507.wgsl.expected.ir.dxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureLoad
+..\..\src\tint\utils\containers\slice.h:216 internal compiler error: TINT_ASSERT(i < Length())
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/literal/textureLoad/af0507.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/textureLoad/af0507.wgsl.expected.ir.fxc.hlsl
index fd28383..334e6e8e 100644
--- a/test/tint/builtins/gen/literal/textureLoad/af0507.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureLoad/af0507.wgsl.expected.ir.fxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureLoad
+..\..\src\tint\utils\containers\slice.h:216 internal compiler error: TINT_ASSERT(i < Length())
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/literal/textureLoad/b1bf79.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/textureLoad/b1bf79.wgsl.expected.ir.dxc.hlsl
index fd28383..334e6e8e 100644
--- a/test/tint/builtins/gen/literal/textureLoad/b1bf79.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureLoad/b1bf79.wgsl.expected.ir.dxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureLoad
+..\..\src\tint\utils\containers\slice.h:216 internal compiler error: TINT_ASSERT(i < Length())
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/literal/textureLoad/b1bf79.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/textureLoad/b1bf79.wgsl.expected.ir.fxc.hlsl
index fd28383..334e6e8e 100644
--- a/test/tint/builtins/gen/literal/textureLoad/b1bf79.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureLoad/b1bf79.wgsl.expected.ir.fxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureLoad
+..\..\src\tint\utils\containers\slice.h:216 internal compiler error: TINT_ASSERT(i < Length())
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/literal/textureLoad/b1ca35.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/textureLoad/b1ca35.wgsl.expected.ir.dxc.hlsl
index fd28383..334e6e8e 100644
--- a/test/tint/builtins/gen/literal/textureLoad/b1ca35.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureLoad/b1ca35.wgsl.expected.ir.dxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureLoad
+..\..\src\tint\utils\containers\slice.h:216 internal compiler error: TINT_ASSERT(i < Length())
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/literal/textureLoad/b1ca35.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/textureLoad/b1ca35.wgsl.expected.ir.fxc.hlsl
index fd28383..334e6e8e 100644
--- a/test/tint/builtins/gen/literal/textureLoad/b1ca35.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureLoad/b1ca35.wgsl.expected.ir.fxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureLoad
+..\..\src\tint\utils\containers\slice.h:216 internal compiler error: TINT_ASSERT(i < Length())
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/literal/textureLoad/b24d27.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/textureLoad/b24d27.wgsl.expected.ir.dxc.hlsl
index fd28383..334e6e8e 100644
--- a/test/tint/builtins/gen/literal/textureLoad/b24d27.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureLoad/b24d27.wgsl.expected.ir.dxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureLoad
+..\..\src\tint\utils\containers\slice.h:216 internal compiler error: TINT_ASSERT(i < Length())
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/literal/textureLoad/b24d27.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/textureLoad/b24d27.wgsl.expected.ir.fxc.hlsl
index fd28383..334e6e8e 100644
--- a/test/tint/builtins/gen/literal/textureLoad/b24d27.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureLoad/b24d27.wgsl.expected.ir.fxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureLoad
+..\..\src\tint\utils\containers\slice.h:216 internal compiler error: TINT_ASSERT(i < Length())
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/literal/textureLoad/b25644.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/textureLoad/b25644.wgsl.expected.ir.dxc.hlsl
index fd28383..334e6e8e 100644
--- a/test/tint/builtins/gen/literal/textureLoad/b25644.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureLoad/b25644.wgsl.expected.ir.dxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureLoad
+..\..\src\tint\utils\containers\slice.h:216 internal compiler error: TINT_ASSERT(i < Length())
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/literal/textureLoad/b25644.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/textureLoad/b25644.wgsl.expected.ir.fxc.hlsl
index fd28383..334e6e8e 100644
--- a/test/tint/builtins/gen/literal/textureLoad/b25644.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureLoad/b25644.wgsl.expected.ir.fxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureLoad
+..\..\src\tint\utils\containers\slice.h:216 internal compiler error: TINT_ASSERT(i < Length())
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/literal/textureLoad/b27c33.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/textureLoad/b27c33.wgsl.expected.ir.dxc.hlsl
index fd28383..334e6e8e 100644
--- a/test/tint/builtins/gen/literal/textureLoad/b27c33.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureLoad/b27c33.wgsl.expected.ir.dxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureLoad
+..\..\src\tint\utils\containers\slice.h:216 internal compiler error: TINT_ASSERT(i < Length())
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/literal/textureLoad/b27c33.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/textureLoad/b27c33.wgsl.expected.ir.fxc.hlsl
index fd28383..334e6e8e 100644
--- a/test/tint/builtins/gen/literal/textureLoad/b27c33.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureLoad/b27c33.wgsl.expected.ir.fxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureLoad
+..\..\src\tint\utils\containers\slice.h:216 internal compiler error: TINT_ASSERT(i < Length())
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/literal/textureLoad/b29f71.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/textureLoad/b29f71.wgsl.expected.ir.dxc.hlsl
index fd28383..774def6 100644
--- a/test/tint/builtins/gen/literal/textureLoad/b29f71.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureLoad/b29f71.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,46 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  int4 prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureLoad
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation int4 VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+Texture2DArray<int4> arg_0 : register(t0, space1);
+int4 textureLoad_b29f71() {
+  Texture2DArray<int4> v = arg_0;
+  int2 v_1 = int2((1).xx);
+  int v_2 = int(1u);
+  int4 res = int4(v.Load(int4(v_1, v_2, int(1))));
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store4(0u, asuint(textureLoad_b29f71()));
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store4(0u, asuint(textureLoad_b29f71()));
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = textureLoad_b29f71();
+  VertexOutput v_3 = tint_symbol;
+  return v_3;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_4 = vertex_main_inner();
+  VertexOutput v_5 = v_4;
+  VertexOutput v_6 = v_4;
+  vertex_main_outputs v_7 = {v_6.prevent_dce, v_5.pos};
+  return v_7;
+}
+
diff --git a/test/tint/builtins/gen/literal/textureLoad/b29f71.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/textureLoad/b29f71.wgsl.expected.ir.fxc.hlsl
index fd28383..774def6 100644
--- a/test/tint/builtins/gen/literal/textureLoad/b29f71.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureLoad/b29f71.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,46 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  int4 prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureLoad
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation int4 VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+Texture2DArray<int4> arg_0 : register(t0, space1);
+int4 textureLoad_b29f71() {
+  Texture2DArray<int4> v = arg_0;
+  int2 v_1 = int2((1).xx);
+  int v_2 = int(1u);
+  int4 res = int4(v.Load(int4(v_1, v_2, int(1))));
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store4(0u, asuint(textureLoad_b29f71()));
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store4(0u, asuint(textureLoad_b29f71()));
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = textureLoad_b29f71();
+  VertexOutput v_3 = tint_symbol;
+  return v_3;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_4 = vertex_main_inner();
+  VertexOutput v_5 = v_4;
+  VertexOutput v_6 = v_4;
+  vertex_main_outputs v_7 = {v_6.prevent_dce, v_5.pos};
+  return v_7;
+}
+
diff --git a/test/tint/builtins/gen/literal/textureLoad/b4d6c4.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/textureLoad/b4d6c4.wgsl.expected.ir.dxc.hlsl
index fd28383..334e6e8e 100644
--- a/test/tint/builtins/gen/literal/textureLoad/b4d6c4.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureLoad/b4d6c4.wgsl.expected.ir.dxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureLoad
+..\..\src\tint\utils\containers\slice.h:216 internal compiler error: TINT_ASSERT(i < Length())
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/literal/textureLoad/b4d6c4.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/textureLoad/b4d6c4.wgsl.expected.ir.fxc.hlsl
index fd28383..334e6e8e 100644
--- a/test/tint/builtins/gen/literal/textureLoad/b4d6c4.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureLoad/b4d6c4.wgsl.expected.ir.fxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureLoad
+..\..\src\tint\utils\containers\slice.h:216 internal compiler error: TINT_ASSERT(i < Length())
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/literal/textureLoad/b58c6d.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/textureLoad/b58c6d.wgsl.expected.ir.dxc.hlsl
index fd28383..334e6e8e 100644
--- a/test/tint/builtins/gen/literal/textureLoad/b58c6d.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureLoad/b58c6d.wgsl.expected.ir.dxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureLoad
+..\..\src\tint\utils\containers\slice.h:216 internal compiler error: TINT_ASSERT(i < Length())
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/literal/textureLoad/b58c6d.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/textureLoad/b58c6d.wgsl.expected.ir.fxc.hlsl
index fd28383..334e6e8e 100644
--- a/test/tint/builtins/gen/literal/textureLoad/b58c6d.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureLoad/b58c6d.wgsl.expected.ir.fxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureLoad
+..\..\src\tint\utils\containers\slice.h:216 internal compiler error: TINT_ASSERT(i < Length())
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/literal/textureLoad/b60a86.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/textureLoad/b60a86.wgsl.expected.ir.dxc.hlsl
index fd28383..334e6e8e 100644
--- a/test/tint/builtins/gen/literal/textureLoad/b60a86.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureLoad/b60a86.wgsl.expected.ir.dxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureLoad
+..\..\src\tint\utils\containers\slice.h:216 internal compiler error: TINT_ASSERT(i < Length())
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/literal/textureLoad/b60a86.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/textureLoad/b60a86.wgsl.expected.ir.fxc.hlsl
index fd28383..334e6e8e 100644
--- a/test/tint/builtins/gen/literal/textureLoad/b60a86.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureLoad/b60a86.wgsl.expected.ir.fxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureLoad
+..\..\src\tint\utils\containers\slice.h:216 internal compiler error: TINT_ASSERT(i < Length())
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/literal/textureLoad/b60db7.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/textureLoad/b60db7.wgsl.expected.ir.dxc.hlsl
index fd28383..334e6e8e 100644
--- a/test/tint/builtins/gen/literal/textureLoad/b60db7.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureLoad/b60db7.wgsl.expected.ir.dxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureLoad
+..\..\src\tint\utils\containers\slice.h:216 internal compiler error: TINT_ASSERT(i < Length())
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/literal/textureLoad/b60db7.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/textureLoad/b60db7.wgsl.expected.ir.fxc.hlsl
index fd28383..334e6e8e 100644
--- a/test/tint/builtins/gen/literal/textureLoad/b60db7.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureLoad/b60db7.wgsl.expected.ir.fxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureLoad
+..\..\src\tint\utils\containers\slice.h:216 internal compiler error: TINT_ASSERT(i < Length())
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/literal/textureLoad/b6ba5d.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/textureLoad/b6ba5d.wgsl.expected.ir.dxc.hlsl
index fd28383..b48d5d0 100644
--- a/test/tint/builtins/gen/literal/textureLoad/b6ba5d.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureLoad/b6ba5d.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,46 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  float prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureLoad
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation float VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+Texture2DArray arg_0 : register(t0, space1);
+float textureLoad_b6ba5d() {
+  Texture2DArray v = arg_0;
+  int2 v_1 = int2((1u).xx);
+  int v_2 = int(1);
+  float res = v.Load(int4(v_1, v_2, int(1))).x;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store(0u, asuint(textureLoad_b6ba5d()));
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store(0u, asuint(textureLoad_b6ba5d()));
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = textureLoad_b6ba5d();
+  VertexOutput v_3 = tint_symbol;
+  return v_3;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_4 = vertex_main_inner();
+  VertexOutput v_5 = v_4;
+  VertexOutput v_6 = v_4;
+  vertex_main_outputs v_7 = {v_6.prevent_dce, v_5.pos};
+  return v_7;
+}
+
diff --git a/test/tint/builtins/gen/literal/textureLoad/b6ba5d.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/textureLoad/b6ba5d.wgsl.expected.ir.fxc.hlsl
index fd28383..b48d5d0 100644
--- a/test/tint/builtins/gen/literal/textureLoad/b6ba5d.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureLoad/b6ba5d.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,46 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  float prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureLoad
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation float VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+Texture2DArray arg_0 : register(t0, space1);
+float textureLoad_b6ba5d() {
+  Texture2DArray v = arg_0;
+  int2 v_1 = int2((1u).xx);
+  int v_2 = int(1);
+  float res = v.Load(int4(v_1, v_2, int(1))).x;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store(0u, asuint(textureLoad_b6ba5d()));
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store(0u, asuint(textureLoad_b6ba5d()));
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = textureLoad_b6ba5d();
+  VertexOutput v_3 = tint_symbol;
+  return v_3;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_4 = vertex_main_inner();
+  VertexOutput v_5 = v_4;
+  VertexOutput v_6 = v_4;
+  vertex_main_outputs v_7 = {v_6.prevent_dce, v_5.pos};
+  return v_7;
+}
+
diff --git a/test/tint/builtins/gen/literal/textureLoad/b6c458.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/textureLoad/b6c458.wgsl.expected.ir.dxc.hlsl
index fd28383..334e6e8e 100644
--- a/test/tint/builtins/gen/literal/textureLoad/b6c458.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureLoad/b6c458.wgsl.expected.ir.dxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureLoad
+..\..\src\tint\utils\containers\slice.h:216 internal compiler error: TINT_ASSERT(i < Length())
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/literal/textureLoad/b6c458.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/textureLoad/b6c458.wgsl.expected.ir.fxc.hlsl
index fd28383..334e6e8e 100644
--- a/test/tint/builtins/gen/literal/textureLoad/b6c458.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureLoad/b6c458.wgsl.expected.ir.fxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureLoad
+..\..\src\tint\utils\containers\slice.h:216 internal compiler error: TINT_ASSERT(i < Length())
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/literal/textureLoad/b73f6b.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/textureLoad/b73f6b.wgsl.expected.ir.dxc.hlsl
index fd28383..84fa102 100644
--- a/test/tint/builtins/gen/literal/textureLoad/b73f6b.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureLoad/b73f6b.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,45 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  uint4 prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureLoad
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation uint4 VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+Texture2D<uint4> arg_0 : register(t0, space1);
+uint4 textureLoad_b73f6b() {
+  Texture2D<uint4> v = arg_0;
+  int2 v_1 = int2((1u).xx);
+  uint4 res = uint4(v.Load(int3(v_1, int(1))));
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store4(0u, textureLoad_b73f6b());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store4(0u, textureLoad_b73f6b());
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = textureLoad_b73f6b();
+  VertexOutput v_2 = tint_symbol;
+  return v_2;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_3 = vertex_main_inner();
+  VertexOutput v_4 = v_3;
+  VertexOutput v_5 = v_3;
+  vertex_main_outputs v_6 = {v_5.prevent_dce, v_4.pos};
+  return v_6;
+}
+
diff --git a/test/tint/builtins/gen/literal/textureLoad/b73f6b.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/textureLoad/b73f6b.wgsl.expected.ir.fxc.hlsl
index fd28383..84fa102 100644
--- a/test/tint/builtins/gen/literal/textureLoad/b73f6b.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureLoad/b73f6b.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,45 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  uint4 prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureLoad
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation uint4 VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+Texture2D<uint4> arg_0 : register(t0, space1);
+uint4 textureLoad_b73f6b() {
+  Texture2D<uint4> v = arg_0;
+  int2 v_1 = int2((1u).xx);
+  uint4 res = uint4(v.Load(int3(v_1, int(1))));
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store4(0u, textureLoad_b73f6b());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store4(0u, textureLoad_b73f6b());
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = textureLoad_b73f6b();
+  VertexOutput v_2 = tint_symbol;
+  return v_2;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_3 = vertex_main_inner();
+  VertexOutput v_4 = v_3;
+  VertexOutput v_5 = v_3;
+  vertex_main_outputs v_6 = {v_5.prevent_dce, v_4.pos};
+  return v_6;
+}
+
diff --git a/test/tint/builtins/gen/literal/textureLoad/b75c8f.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/textureLoad/b75c8f.wgsl.expected.ir.dxc.hlsl
index fd28383..334e6e8e 100644
--- a/test/tint/builtins/gen/literal/textureLoad/b75c8f.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureLoad/b75c8f.wgsl.expected.ir.dxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureLoad
+..\..\src\tint\utils\containers\slice.h:216 internal compiler error: TINT_ASSERT(i < Length())
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/literal/textureLoad/b75c8f.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/textureLoad/b75c8f.wgsl.expected.ir.fxc.hlsl
index fd28383..334e6e8e 100644
--- a/test/tint/builtins/gen/literal/textureLoad/b75c8f.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureLoad/b75c8f.wgsl.expected.ir.fxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureLoad
+..\..\src\tint\utils\containers\slice.h:216 internal compiler error: TINT_ASSERT(i < Length())
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/literal/textureLoad/b75d4a.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/textureLoad/b75d4a.wgsl.expected.ir.dxc.hlsl
index fd28383..ccd3f8c 100644
--- a/test/tint/builtins/gen/literal/textureLoad/b75d4a.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureLoad/b75d4a.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,45 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  float4 prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureLoad
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation float4 VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+Texture2DMS<float4> arg_0 : register(t0, space1);
+float4 textureLoad_b75d4a() {
+  Texture2DMS<float4> v = arg_0;
+  int2 v_1 = int2((1).xx);
+  float4 res = float4(v.Load(v_1, int(1u)));
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store4(0u, asuint(textureLoad_b75d4a()));
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store4(0u, asuint(textureLoad_b75d4a()));
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = textureLoad_b75d4a();
+  VertexOutput v_2 = tint_symbol;
+  return v_2;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_3 = vertex_main_inner();
+  VertexOutput v_4 = v_3;
+  VertexOutput v_5 = v_3;
+  vertex_main_outputs v_6 = {v_5.prevent_dce, v_4.pos};
+  return v_6;
+}
+
diff --git a/test/tint/builtins/gen/literal/textureLoad/b75d4a.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/textureLoad/b75d4a.wgsl.expected.ir.fxc.hlsl
index fd28383..ccd3f8c 100644
--- a/test/tint/builtins/gen/literal/textureLoad/b75d4a.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureLoad/b75d4a.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,45 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  float4 prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureLoad
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation float4 VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+Texture2DMS<float4> arg_0 : register(t0, space1);
+float4 textureLoad_b75d4a() {
+  Texture2DMS<float4> v = arg_0;
+  int2 v_1 = int2((1).xx);
+  float4 res = float4(v.Load(v_1, int(1u)));
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store4(0u, asuint(textureLoad_b75d4a()));
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store4(0u, asuint(textureLoad_b75d4a()));
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = textureLoad_b75d4a();
+  VertexOutput v_2 = tint_symbol;
+  return v_2;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_3 = vertex_main_inner();
+  VertexOutput v_4 = v_3;
+  VertexOutput v_5 = v_3;
+  vertex_main_outputs v_6 = {v_5.prevent_dce, v_4.pos};
+  return v_6;
+}
+
diff --git a/test/tint/builtins/gen/literal/textureLoad/b7f74f.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/textureLoad/b7f74f.wgsl.expected.ir.dxc.hlsl
index fd28383..334e6e8e 100644
--- a/test/tint/builtins/gen/literal/textureLoad/b7f74f.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureLoad/b7f74f.wgsl.expected.ir.dxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureLoad
+..\..\src\tint\utils\containers\slice.h:216 internal compiler error: TINT_ASSERT(i < Length())
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/literal/textureLoad/b7f74f.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/textureLoad/b7f74f.wgsl.expected.ir.fxc.hlsl
index fd28383..334e6e8e 100644
--- a/test/tint/builtins/gen/literal/textureLoad/b7f74f.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureLoad/b7f74f.wgsl.expected.ir.fxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureLoad
+..\..\src\tint\utils\containers\slice.h:216 internal compiler error: TINT_ASSERT(i < Length())
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/literal/textureLoad/b80e7e.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/textureLoad/b80e7e.wgsl.expected.ir.dxc.hlsl
index fd28383..334e6e8e 100644
--- a/test/tint/builtins/gen/literal/textureLoad/b80e7e.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureLoad/b80e7e.wgsl.expected.ir.dxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureLoad
+..\..\src\tint\utils\containers\slice.h:216 internal compiler error: TINT_ASSERT(i < Length())
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/literal/textureLoad/b80e7e.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/textureLoad/b80e7e.wgsl.expected.ir.fxc.hlsl
index fd28383..334e6e8e 100644
--- a/test/tint/builtins/gen/literal/textureLoad/b80e7e.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureLoad/b80e7e.wgsl.expected.ir.fxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureLoad
+..\..\src\tint\utils\containers\slice.h:216 internal compiler error: TINT_ASSERT(i < Length())
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/literal/textureLoad/b94d15.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/textureLoad/b94d15.wgsl.expected.ir.dxc.hlsl
index fd28383..334e6e8e 100644
--- a/test/tint/builtins/gen/literal/textureLoad/b94d15.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureLoad/b94d15.wgsl.expected.ir.dxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureLoad
+..\..\src\tint\utils\containers\slice.h:216 internal compiler error: TINT_ASSERT(i < Length())
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/literal/textureLoad/b94d15.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/textureLoad/b94d15.wgsl.expected.ir.fxc.hlsl
index fd28383..334e6e8e 100644
--- a/test/tint/builtins/gen/literal/textureLoad/b94d15.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureLoad/b94d15.wgsl.expected.ir.fxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureLoad
+..\..\src\tint\utils\containers\slice.h:216 internal compiler error: TINT_ASSERT(i < Length())
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/literal/textureLoad/ba023a.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/textureLoad/ba023a.wgsl.expected.ir.dxc.hlsl
index fd28383..334e6e8e 100644
--- a/test/tint/builtins/gen/literal/textureLoad/ba023a.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureLoad/ba023a.wgsl.expected.ir.dxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureLoad
+..\..\src\tint\utils\containers\slice.h:216 internal compiler error: TINT_ASSERT(i < Length())
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/literal/textureLoad/ba023a.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/textureLoad/ba023a.wgsl.expected.ir.fxc.hlsl
index fd28383..334e6e8e 100644
--- a/test/tint/builtins/gen/literal/textureLoad/ba023a.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureLoad/ba023a.wgsl.expected.ir.fxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureLoad
+..\..\src\tint\utils\containers\slice.h:216 internal compiler error: TINT_ASSERT(i < Length())
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/literal/textureLoad/ba74b2.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/textureLoad/ba74b2.wgsl.expected.ir.dxc.hlsl
index fd28383..334e6e8e 100644
--- a/test/tint/builtins/gen/literal/textureLoad/ba74b2.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureLoad/ba74b2.wgsl.expected.ir.dxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureLoad
+..\..\src\tint\utils\containers\slice.h:216 internal compiler error: TINT_ASSERT(i < Length())
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/literal/textureLoad/ba74b2.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/textureLoad/ba74b2.wgsl.expected.ir.fxc.hlsl
index fd28383..334e6e8e 100644
--- a/test/tint/builtins/gen/literal/textureLoad/ba74b2.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureLoad/ba74b2.wgsl.expected.ir.fxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureLoad
+..\..\src\tint\utils\containers\slice.h:216 internal compiler error: TINT_ASSERT(i < Length())
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/literal/textureLoad/babdf3.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/textureLoad/babdf3.wgsl.expected.ir.dxc.hlsl
index fd28383..334e6e8e 100644
--- a/test/tint/builtins/gen/literal/textureLoad/babdf3.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureLoad/babdf3.wgsl.expected.ir.dxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureLoad
+..\..\src\tint\utils\containers\slice.h:216 internal compiler error: TINT_ASSERT(i < Length())
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/literal/textureLoad/babdf3.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/textureLoad/babdf3.wgsl.expected.ir.fxc.hlsl
index fd28383..334e6e8e 100644
--- a/test/tint/builtins/gen/literal/textureLoad/babdf3.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureLoad/babdf3.wgsl.expected.ir.fxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureLoad
+..\..\src\tint\utils\containers\slice.h:216 internal compiler error: TINT_ASSERT(i < Length())
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/literal/textureLoad/bba04a.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/textureLoad/bba04a.wgsl.expected.ir.dxc.hlsl
index fd28383..334e6e8e 100644
--- a/test/tint/builtins/gen/literal/textureLoad/bba04a.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureLoad/bba04a.wgsl.expected.ir.dxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureLoad
+..\..\src\tint\utils\containers\slice.h:216 internal compiler error: TINT_ASSERT(i < Length())
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/literal/textureLoad/bba04a.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/textureLoad/bba04a.wgsl.expected.ir.fxc.hlsl
index fd28383..334e6e8e 100644
--- a/test/tint/builtins/gen/literal/textureLoad/bba04a.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureLoad/bba04a.wgsl.expected.ir.fxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureLoad
+..\..\src\tint\utils\containers\slice.h:216 internal compiler error: TINT_ASSERT(i < Length())
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/literal/textureLoad/bbb762.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/textureLoad/bbb762.wgsl.expected.ir.dxc.hlsl
index fd28383..334e6e8e 100644
--- a/test/tint/builtins/gen/literal/textureLoad/bbb762.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureLoad/bbb762.wgsl.expected.ir.dxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureLoad
+..\..\src\tint\utils\containers\slice.h:216 internal compiler error: TINT_ASSERT(i < Length())
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/literal/textureLoad/bbb762.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/textureLoad/bbb762.wgsl.expected.ir.fxc.hlsl
index fd28383..334e6e8e 100644
--- a/test/tint/builtins/gen/literal/textureLoad/bbb762.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureLoad/bbb762.wgsl.expected.ir.fxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureLoad
+..\..\src\tint\utils\containers\slice.h:216 internal compiler error: TINT_ASSERT(i < Length())
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/literal/textureLoad/bc3201.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/textureLoad/bc3201.wgsl.expected.ir.dxc.hlsl
index fd28383..499d962 100644
--- a/test/tint/builtins/gen/literal/textureLoad/bc3201.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureLoad/bc3201.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,45 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  uint4 prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureLoad
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation uint4 VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+Texture1D<uint4> arg_0 : register(t0, space1);
+uint4 textureLoad_bc3201() {
+  Texture1D<uint4> v = arg_0;
+  int v_1 = int(1u);
+  uint4 res = uint4(v.Load(int2(v_1, int(1u))));
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store4(0u, textureLoad_bc3201());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store4(0u, textureLoad_bc3201());
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = textureLoad_bc3201();
+  VertexOutput v_2 = tint_symbol;
+  return v_2;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_3 = vertex_main_inner();
+  VertexOutput v_4 = v_3;
+  VertexOutput v_5 = v_3;
+  vertex_main_outputs v_6 = {v_5.prevent_dce, v_4.pos};
+  return v_6;
+}
+
diff --git a/test/tint/builtins/gen/literal/textureLoad/bc3201.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/textureLoad/bc3201.wgsl.expected.ir.fxc.hlsl
index fd28383..499d962 100644
--- a/test/tint/builtins/gen/literal/textureLoad/bc3201.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureLoad/bc3201.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,45 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  uint4 prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureLoad
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation uint4 VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+Texture1D<uint4> arg_0 : register(t0, space1);
+uint4 textureLoad_bc3201() {
+  Texture1D<uint4> v = arg_0;
+  int v_1 = int(1u);
+  uint4 res = uint4(v.Load(int2(v_1, int(1u))));
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store4(0u, textureLoad_bc3201());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store4(0u, textureLoad_bc3201());
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = textureLoad_bc3201();
+  VertexOutput v_2 = tint_symbol;
+  return v_2;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_3 = vertex_main_inner();
+  VertexOutput v_4 = v_3;
+  VertexOutput v_5 = v_3;
+  vertex_main_outputs v_6 = {v_5.prevent_dce, v_4.pos};
+  return v_6;
+}
+
diff --git a/test/tint/builtins/gen/literal/textureLoad/bc882d.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/textureLoad/bc882d.wgsl.expected.ir.dxc.hlsl
index fd28383..334e6e8e 100644
--- a/test/tint/builtins/gen/literal/textureLoad/bc882d.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureLoad/bc882d.wgsl.expected.ir.dxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureLoad
+..\..\src\tint\utils\containers\slice.h:216 internal compiler error: TINT_ASSERT(i < Length())
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/literal/textureLoad/bc882d.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/textureLoad/bc882d.wgsl.expected.ir.fxc.hlsl
index fd28383..334e6e8e 100644
--- a/test/tint/builtins/gen/literal/textureLoad/bc882d.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureLoad/bc882d.wgsl.expected.ir.fxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureLoad
+..\..\src\tint\utils\containers\slice.h:216 internal compiler error: TINT_ASSERT(i < Length())
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/literal/textureLoad/bcbb3c.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/textureLoad/bcbb3c.wgsl.expected.ir.dxc.hlsl
index fd28383..bea35d7 100644
--- a/test/tint/builtins/gen/literal/textureLoad/bcbb3c.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureLoad/bcbb3c.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,45 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  float4 prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureLoad
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation float4 VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+Texture3D<float4> arg_0 : register(t0, space1);
+float4 textureLoad_bcbb3c() {
+  Texture3D<float4> v = arg_0;
+  int3 v_1 = int3((1u).xxx);
+  float4 res = float4(v.Load(int4(v_1, int(1))));
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store4(0u, asuint(textureLoad_bcbb3c()));
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store4(0u, asuint(textureLoad_bcbb3c()));
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = textureLoad_bcbb3c();
+  VertexOutput v_2 = tint_symbol;
+  return v_2;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_3 = vertex_main_inner();
+  VertexOutput v_4 = v_3;
+  VertexOutput v_5 = v_3;
+  vertex_main_outputs v_6 = {v_5.prevent_dce, v_4.pos};
+  return v_6;
+}
+
diff --git a/test/tint/builtins/gen/literal/textureLoad/bcbb3c.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/textureLoad/bcbb3c.wgsl.expected.ir.fxc.hlsl
index fd28383..bea35d7 100644
--- a/test/tint/builtins/gen/literal/textureLoad/bcbb3c.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureLoad/bcbb3c.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,45 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  float4 prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureLoad
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation float4 VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+Texture3D<float4> arg_0 : register(t0, space1);
+float4 textureLoad_bcbb3c() {
+  Texture3D<float4> v = arg_0;
+  int3 v_1 = int3((1u).xxx);
+  float4 res = float4(v.Load(int4(v_1, int(1))));
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store4(0u, asuint(textureLoad_bcbb3c()));
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store4(0u, asuint(textureLoad_bcbb3c()));
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = textureLoad_bcbb3c();
+  VertexOutput v_2 = tint_symbol;
+  return v_2;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_3 = vertex_main_inner();
+  VertexOutput v_4 = v_3;
+  VertexOutput v_5 = v_3;
+  vertex_main_outputs v_6 = {v_5.prevent_dce, v_4.pos};
+  return v_6;
+}
+
diff --git a/test/tint/builtins/gen/literal/textureLoad/bd990a.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/textureLoad/bd990a.wgsl.expected.ir.dxc.hlsl
index fd28383..334e6e8e 100644
--- a/test/tint/builtins/gen/literal/textureLoad/bd990a.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureLoad/bd990a.wgsl.expected.ir.dxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureLoad
+..\..\src\tint\utils\containers\slice.h:216 internal compiler error: TINT_ASSERT(i < Length())
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/literal/textureLoad/bd990a.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/textureLoad/bd990a.wgsl.expected.ir.fxc.hlsl
index fd28383..334e6e8e 100644
--- a/test/tint/builtins/gen/literal/textureLoad/bd990a.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureLoad/bd990a.wgsl.expected.ir.fxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureLoad
+..\..\src\tint\utils\containers\slice.h:216 internal compiler error: TINT_ASSERT(i < Length())
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/literal/textureLoad/bdc67a.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/textureLoad/bdc67a.wgsl.expected.ir.dxc.hlsl
index fd28383..334e6e8e 100644
--- a/test/tint/builtins/gen/literal/textureLoad/bdc67a.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureLoad/bdc67a.wgsl.expected.ir.dxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureLoad
+..\..\src\tint\utils\containers\slice.h:216 internal compiler error: TINT_ASSERT(i < Length())
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/literal/textureLoad/bdc67a.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/textureLoad/bdc67a.wgsl.expected.ir.fxc.hlsl
index fd28383..334e6e8e 100644
--- a/test/tint/builtins/gen/literal/textureLoad/bdc67a.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureLoad/bdc67a.wgsl.expected.ir.fxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureLoad
+..\..\src\tint\utils\containers\slice.h:216 internal compiler error: TINT_ASSERT(i < Length())
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/literal/textureLoad/bfd154.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/textureLoad/bfd154.wgsl.expected.ir.dxc.hlsl
index fd28383..334e6e8e 100644
--- a/test/tint/builtins/gen/literal/textureLoad/bfd154.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureLoad/bfd154.wgsl.expected.ir.dxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureLoad
+..\..\src\tint\utils\containers\slice.h:216 internal compiler error: TINT_ASSERT(i < Length())
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/literal/textureLoad/bfd154.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/textureLoad/bfd154.wgsl.expected.ir.fxc.hlsl
index fd28383..334e6e8e 100644
--- a/test/tint/builtins/gen/literal/textureLoad/bfd154.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureLoad/bfd154.wgsl.expected.ir.fxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureLoad
+..\..\src\tint\utils\containers\slice.h:216 internal compiler error: TINT_ASSERT(i < Length())
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/literal/textureLoad/c02b74.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/textureLoad/c02b74.wgsl.expected.ir.dxc.hlsl
index fd28383..334e6e8e 100644
--- a/test/tint/builtins/gen/literal/textureLoad/c02b74.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureLoad/c02b74.wgsl.expected.ir.dxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureLoad
+..\..\src\tint\utils\containers\slice.h:216 internal compiler error: TINT_ASSERT(i < Length())
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/literal/textureLoad/c02b74.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/textureLoad/c02b74.wgsl.expected.ir.fxc.hlsl
index fd28383..334e6e8e 100644
--- a/test/tint/builtins/gen/literal/textureLoad/c02b74.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureLoad/c02b74.wgsl.expected.ir.fxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureLoad
+..\..\src\tint\utils\containers\slice.h:216 internal compiler error: TINT_ASSERT(i < Length())
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/literal/textureLoad/c07013.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/textureLoad/c07013.wgsl.expected.ir.dxc.hlsl
index fd28383..334e6e8e 100644
--- a/test/tint/builtins/gen/literal/textureLoad/c07013.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureLoad/c07013.wgsl.expected.ir.dxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureLoad
+..\..\src\tint\utils\containers\slice.h:216 internal compiler error: TINT_ASSERT(i < Length())
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/literal/textureLoad/c07013.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/textureLoad/c07013.wgsl.expected.ir.fxc.hlsl
index fd28383..334e6e8e 100644
--- a/test/tint/builtins/gen/literal/textureLoad/c07013.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureLoad/c07013.wgsl.expected.ir.fxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureLoad
+..\..\src\tint\utils\containers\slice.h:216 internal compiler error: TINT_ASSERT(i < Length())
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/literal/textureLoad/c16e00.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/textureLoad/c16e00.wgsl.expected.ir.dxc.hlsl
index fd28383..4e43ccb 100644
--- a/test/tint/builtins/gen/literal/textureLoad/c16e00.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureLoad/c16e00.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,46 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  float prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureLoad
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation float VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+Texture2DArray arg_0 : register(t0, space1);
+float textureLoad_c16e00() {
+  Texture2DArray v = arg_0;
+  int2 v_1 = int2((1).xx);
+  int v_2 = int(1u);
+  float res = v.Load(int4(v_1, v_2, int(1))).x;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store(0u, asuint(textureLoad_c16e00()));
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store(0u, asuint(textureLoad_c16e00()));
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = textureLoad_c16e00();
+  VertexOutput v_3 = tint_symbol;
+  return v_3;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_4 = vertex_main_inner();
+  VertexOutput v_5 = v_4;
+  VertexOutput v_6 = v_4;
+  vertex_main_outputs v_7 = {v_6.prevent_dce, v_5.pos};
+  return v_7;
+}
+
diff --git a/test/tint/builtins/gen/literal/textureLoad/c16e00.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/textureLoad/c16e00.wgsl.expected.ir.fxc.hlsl
index fd28383..4e43ccb 100644
--- a/test/tint/builtins/gen/literal/textureLoad/c16e00.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureLoad/c16e00.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,46 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  float prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureLoad
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation float VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+Texture2DArray arg_0 : register(t0, space1);
+float textureLoad_c16e00() {
+  Texture2DArray v = arg_0;
+  int2 v_1 = int2((1).xx);
+  int v_2 = int(1u);
+  float res = v.Load(int4(v_1, v_2, int(1))).x;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store(0u, asuint(textureLoad_c16e00()));
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store(0u, asuint(textureLoad_c16e00()));
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = textureLoad_c16e00();
+  VertexOutput v_3 = tint_symbol;
+  return v_3;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_4 = vertex_main_inner();
+  VertexOutput v_5 = v_4;
+  VertexOutput v_6 = v_4;
+  vertex_main_outputs v_7 = {v_6.prevent_dce, v_5.pos};
+  return v_7;
+}
+
diff --git a/test/tint/builtins/gen/literal/textureLoad/c21b33.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/textureLoad/c21b33.wgsl.expected.ir.dxc.hlsl
index fd28383..334e6e8e 100644
--- a/test/tint/builtins/gen/literal/textureLoad/c21b33.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureLoad/c21b33.wgsl.expected.ir.dxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureLoad
+..\..\src\tint\utils\containers\slice.h:216 internal compiler error: TINT_ASSERT(i < Length())
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/literal/textureLoad/c21b33.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/textureLoad/c21b33.wgsl.expected.ir.fxc.hlsl
index fd28383..334e6e8e 100644
--- a/test/tint/builtins/gen/literal/textureLoad/c21b33.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureLoad/c21b33.wgsl.expected.ir.fxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureLoad
+..\..\src\tint\utils\containers\slice.h:216 internal compiler error: TINT_ASSERT(i < Length())
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/literal/textureLoad/c2a480.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/textureLoad/c2a480.wgsl.expected.ir.dxc.hlsl
index fd28383..6939e18 100644
--- a/test/tint/builtins/gen/literal/textureLoad/c2a480.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureLoad/c2a480.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,45 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  int4 prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureLoad
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation int4 VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+Texture2D<int4> arg_0 : register(t0, space1);
+int4 textureLoad_c2a480() {
+  Texture2D<int4> v = arg_0;
+  int2 v_1 = int2((1).xx);
+  int4 res = int4(v.Load(int3(v_1, int(1))));
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store4(0u, asuint(textureLoad_c2a480()));
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store4(0u, asuint(textureLoad_c2a480()));
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = textureLoad_c2a480();
+  VertexOutput v_2 = tint_symbol;
+  return v_2;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_3 = vertex_main_inner();
+  VertexOutput v_4 = v_3;
+  VertexOutput v_5 = v_3;
+  vertex_main_outputs v_6 = {v_5.prevent_dce, v_4.pos};
+  return v_6;
+}
+
diff --git a/test/tint/builtins/gen/literal/textureLoad/c2a480.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/textureLoad/c2a480.wgsl.expected.ir.fxc.hlsl
index fd28383..6939e18 100644
--- a/test/tint/builtins/gen/literal/textureLoad/c2a480.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureLoad/c2a480.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,45 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  int4 prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureLoad
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation int4 VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+Texture2D<int4> arg_0 : register(t0, space1);
+int4 textureLoad_c2a480() {
+  Texture2D<int4> v = arg_0;
+  int2 v_1 = int2((1).xx);
+  int4 res = int4(v.Load(int3(v_1, int(1))));
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store4(0u, asuint(textureLoad_c2a480()));
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store4(0u, asuint(textureLoad_c2a480()));
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = textureLoad_c2a480();
+  VertexOutput v_2 = tint_symbol;
+  return v_2;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_3 = vertex_main_inner();
+  VertexOutput v_4 = v_3;
+  VertexOutput v_5 = v_3;
+  vertex_main_outputs v_6 = {v_5.prevent_dce, v_4.pos};
+  return v_6;
+}
+
diff --git a/test/tint/builtins/gen/literal/textureLoad/c2d09a.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/textureLoad/c2d09a.wgsl.expected.ir.dxc.hlsl
index fd28383..334e6e8e 100644
--- a/test/tint/builtins/gen/literal/textureLoad/c2d09a.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureLoad/c2d09a.wgsl.expected.ir.dxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureLoad
+..\..\src\tint\utils\containers\slice.h:216 internal compiler error: TINT_ASSERT(i < Length())
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/literal/textureLoad/c2d09a.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/textureLoad/c2d09a.wgsl.expected.ir.fxc.hlsl
index fd28383..334e6e8e 100644
--- a/test/tint/builtins/gen/literal/textureLoad/c2d09a.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureLoad/c2d09a.wgsl.expected.ir.fxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureLoad
+..\..\src\tint\utils\containers\slice.h:216 internal compiler error: TINT_ASSERT(i < Length())
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/literal/textureLoad/c378ee.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/textureLoad/c378ee.wgsl.expected.ir.dxc.hlsl
index fd28383..a82519d 100644
--- a/test/tint/builtins/gen/literal/textureLoad/c378ee.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureLoad/c378ee.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,45 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  uint4 prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureLoad
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation uint4 VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+Texture2DMS<uint4> arg_0 : register(t0, space1);
+uint4 textureLoad_c378ee() {
+  Texture2DMS<uint4> v = arg_0;
+  int2 v_1 = int2((1).xx);
+  uint4 res = uint4(v.Load(v_1, int(1)));
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store4(0u, textureLoad_c378ee());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store4(0u, textureLoad_c378ee());
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = textureLoad_c378ee();
+  VertexOutput v_2 = tint_symbol;
+  return v_2;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_3 = vertex_main_inner();
+  VertexOutput v_4 = v_3;
+  VertexOutput v_5 = v_3;
+  vertex_main_outputs v_6 = {v_5.prevent_dce, v_4.pos};
+  return v_6;
+}
+
diff --git a/test/tint/builtins/gen/literal/textureLoad/c378ee.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/textureLoad/c378ee.wgsl.expected.ir.fxc.hlsl
index fd28383..a82519d 100644
--- a/test/tint/builtins/gen/literal/textureLoad/c378ee.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureLoad/c378ee.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,45 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  uint4 prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureLoad
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation uint4 VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+Texture2DMS<uint4> arg_0 : register(t0, space1);
+uint4 textureLoad_c378ee() {
+  Texture2DMS<uint4> v = arg_0;
+  int2 v_1 = int2((1).xx);
+  uint4 res = uint4(v.Load(v_1, int(1)));
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store4(0u, textureLoad_c378ee());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store4(0u, textureLoad_c378ee());
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = textureLoad_c378ee();
+  VertexOutput v_2 = tint_symbol;
+  return v_2;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_3 = vertex_main_inner();
+  VertexOutput v_4 = v_3;
+  VertexOutput v_5 = v_3;
+  vertex_main_outputs v_6 = {v_5.prevent_dce, v_4.pos};
+  return v_6;
+}
+
diff --git a/test/tint/builtins/gen/literal/textureLoad/c40dcb.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/textureLoad/c40dcb.wgsl.expected.ir.dxc.hlsl
index fd28383..334e6e8e 100644
--- a/test/tint/builtins/gen/literal/textureLoad/c40dcb.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureLoad/c40dcb.wgsl.expected.ir.dxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureLoad
+..\..\src\tint\utils\containers\slice.h:216 internal compiler error: TINT_ASSERT(i < Length())
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/literal/textureLoad/c40dcb.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/textureLoad/c40dcb.wgsl.expected.ir.fxc.hlsl
index fd28383..334e6e8e 100644
--- a/test/tint/builtins/gen/literal/textureLoad/c40dcb.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureLoad/c40dcb.wgsl.expected.ir.fxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureLoad
+..\..\src\tint\utils\containers\slice.h:216 internal compiler error: TINT_ASSERT(i < Length())
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/literal/textureLoad/c456bc.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/textureLoad/c456bc.wgsl.expected.ir.dxc.hlsl
index fd28383..334e6e8e 100644
--- a/test/tint/builtins/gen/literal/textureLoad/c456bc.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureLoad/c456bc.wgsl.expected.ir.dxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureLoad
+..\..\src\tint\utils\containers\slice.h:216 internal compiler error: TINT_ASSERT(i < Length())
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/literal/textureLoad/c456bc.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/textureLoad/c456bc.wgsl.expected.ir.fxc.hlsl
index fd28383..334e6e8e 100644
--- a/test/tint/builtins/gen/literal/textureLoad/c456bc.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureLoad/c456bc.wgsl.expected.ir.fxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureLoad
+..\..\src\tint\utils\containers\slice.h:216 internal compiler error: TINT_ASSERT(i < Length())
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/literal/textureLoad/c5791b.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/textureLoad/c5791b.wgsl.expected.ir.dxc.hlsl
index fd28383..334e6e8e 100644
--- a/test/tint/builtins/gen/literal/textureLoad/c5791b.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureLoad/c5791b.wgsl.expected.ir.dxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureLoad
+..\..\src\tint\utils\containers\slice.h:216 internal compiler error: TINT_ASSERT(i < Length())
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/literal/textureLoad/c5791b.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/textureLoad/c5791b.wgsl.expected.ir.fxc.hlsl
index fd28383..334e6e8e 100644
--- a/test/tint/builtins/gen/literal/textureLoad/c5791b.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureLoad/c5791b.wgsl.expected.ir.fxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureLoad
+..\..\src\tint\utils\containers\slice.h:216 internal compiler error: TINT_ASSERT(i < Length())
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/literal/textureLoad/c5c86d.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/textureLoad/c5c86d.wgsl.expected.ir.dxc.hlsl
index fd28383..334e6e8e 100644
--- a/test/tint/builtins/gen/literal/textureLoad/c5c86d.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureLoad/c5c86d.wgsl.expected.ir.dxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureLoad
+..\..\src\tint\utils\containers\slice.h:216 internal compiler error: TINT_ASSERT(i < Length())
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/literal/textureLoad/c5c86d.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/textureLoad/c5c86d.wgsl.expected.ir.fxc.hlsl
index fd28383..334e6e8e 100644
--- a/test/tint/builtins/gen/literal/textureLoad/c5c86d.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureLoad/c5c86d.wgsl.expected.ir.fxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureLoad
+..\..\src\tint\utils\containers\slice.h:216 internal compiler error: TINT_ASSERT(i < Length())
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/literal/textureLoad/c66b20.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/textureLoad/c66b20.wgsl.expected.ir.dxc.hlsl
index fd28383..334e6e8e 100644
--- a/test/tint/builtins/gen/literal/textureLoad/c66b20.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureLoad/c66b20.wgsl.expected.ir.dxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureLoad
+..\..\src\tint\utils\containers\slice.h:216 internal compiler error: TINT_ASSERT(i < Length())
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/literal/textureLoad/c66b20.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/textureLoad/c66b20.wgsl.expected.ir.fxc.hlsl
index fd28383..334e6e8e 100644
--- a/test/tint/builtins/gen/literal/textureLoad/c66b20.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureLoad/c66b20.wgsl.expected.ir.fxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureLoad
+..\..\src\tint\utils\containers\slice.h:216 internal compiler error: TINT_ASSERT(i < Length())
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/literal/textureLoad/c7cbed.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/textureLoad/c7cbed.wgsl.expected.ir.dxc.hlsl
index fd28383..334e6e8e 100644
--- a/test/tint/builtins/gen/literal/textureLoad/c7cbed.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureLoad/c7cbed.wgsl.expected.ir.dxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureLoad
+..\..\src\tint\utils\containers\slice.h:216 internal compiler error: TINT_ASSERT(i < Length())
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/literal/textureLoad/c7cbed.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/textureLoad/c7cbed.wgsl.expected.ir.fxc.hlsl
index fd28383..334e6e8e 100644
--- a/test/tint/builtins/gen/literal/textureLoad/c7cbed.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureLoad/c7cbed.wgsl.expected.ir.fxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureLoad
+..\..\src\tint\utils\containers\slice.h:216 internal compiler error: TINT_ASSERT(i < Length())
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/literal/textureLoad/c7e313.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/textureLoad/c7e313.wgsl.expected.ir.dxc.hlsl
index fd28383..334e6e8e 100644
--- a/test/tint/builtins/gen/literal/textureLoad/c7e313.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureLoad/c7e313.wgsl.expected.ir.dxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureLoad
+..\..\src\tint\utils\containers\slice.h:216 internal compiler error: TINT_ASSERT(i < Length())
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/literal/textureLoad/c7e313.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/textureLoad/c7e313.wgsl.expected.ir.fxc.hlsl
index fd28383..334e6e8e 100644
--- a/test/tint/builtins/gen/literal/textureLoad/c7e313.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureLoad/c7e313.wgsl.expected.ir.fxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureLoad
+..\..\src\tint\utils\containers\slice.h:216 internal compiler error: TINT_ASSERT(i < Length())
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/literal/textureLoad/c80691.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/textureLoad/c80691.wgsl.expected.ir.dxc.hlsl
index fd28383..334e6e8e 100644
--- a/test/tint/builtins/gen/literal/textureLoad/c80691.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureLoad/c80691.wgsl.expected.ir.dxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureLoad
+..\..\src\tint\utils\containers\slice.h:216 internal compiler error: TINT_ASSERT(i < Length())
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/literal/textureLoad/c80691.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/textureLoad/c80691.wgsl.expected.ir.fxc.hlsl
index fd28383..334e6e8e 100644
--- a/test/tint/builtins/gen/literal/textureLoad/c80691.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureLoad/c80691.wgsl.expected.ir.fxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureLoad
+..\..\src\tint\utils\containers\slice.h:216 internal compiler error: TINT_ASSERT(i < Length())
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/literal/textureLoad/c8ed19.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/textureLoad/c8ed19.wgsl.expected.ir.dxc.hlsl
index fd28383..334e6e8e 100644
--- a/test/tint/builtins/gen/literal/textureLoad/c8ed19.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureLoad/c8ed19.wgsl.expected.ir.dxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureLoad
+..\..\src\tint\utils\containers\slice.h:216 internal compiler error: TINT_ASSERT(i < Length())
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/literal/textureLoad/c8ed19.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/textureLoad/c8ed19.wgsl.expected.ir.fxc.hlsl
index fd28383..334e6e8e 100644
--- a/test/tint/builtins/gen/literal/textureLoad/c8ed19.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureLoad/c8ed19.wgsl.expected.ir.fxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureLoad
+..\..\src\tint\utils\containers\slice.h:216 internal compiler error: TINT_ASSERT(i < Length())
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/literal/textureLoad/c98bf4.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/textureLoad/c98bf4.wgsl.expected.ir.dxc.hlsl
index fd28383..334e6e8e 100644
--- a/test/tint/builtins/gen/literal/textureLoad/c98bf4.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureLoad/c98bf4.wgsl.expected.ir.dxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureLoad
+..\..\src\tint\utils\containers\slice.h:216 internal compiler error: TINT_ASSERT(i < Length())
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/literal/textureLoad/c98bf4.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/textureLoad/c98bf4.wgsl.expected.ir.fxc.hlsl
index fd28383..334e6e8e 100644
--- a/test/tint/builtins/gen/literal/textureLoad/c98bf4.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureLoad/c98bf4.wgsl.expected.ir.fxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureLoad
+..\..\src\tint\utils\containers\slice.h:216 internal compiler error: TINT_ASSERT(i < Length())
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/literal/textureLoad/c9b083.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/textureLoad/c9b083.wgsl.expected.ir.dxc.hlsl
index fd28383..334e6e8e 100644
--- a/test/tint/builtins/gen/literal/textureLoad/c9b083.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureLoad/c9b083.wgsl.expected.ir.dxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureLoad
+..\..\src\tint\utils\containers\slice.h:216 internal compiler error: TINT_ASSERT(i < Length())
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/literal/textureLoad/c9b083.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/textureLoad/c9b083.wgsl.expected.ir.fxc.hlsl
index fd28383..334e6e8e 100644
--- a/test/tint/builtins/gen/literal/textureLoad/c9b083.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureLoad/c9b083.wgsl.expected.ir.fxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureLoad
+..\..\src\tint\utils\containers\slice.h:216 internal compiler error: TINT_ASSERT(i < Length())
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/literal/textureLoad/c9cc40.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/textureLoad/c9cc40.wgsl.expected.ir.dxc.hlsl
index fd28383..334e6e8e 100644
--- a/test/tint/builtins/gen/literal/textureLoad/c9cc40.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureLoad/c9cc40.wgsl.expected.ir.dxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureLoad
+..\..\src\tint\utils\containers\slice.h:216 internal compiler error: TINT_ASSERT(i < Length())
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/literal/textureLoad/c9cc40.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/textureLoad/c9cc40.wgsl.expected.ir.fxc.hlsl
index fd28383..334e6e8e 100644
--- a/test/tint/builtins/gen/literal/textureLoad/c9cc40.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureLoad/c9cc40.wgsl.expected.ir.fxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureLoad
+..\..\src\tint\utils\containers\slice.h:216 internal compiler error: TINT_ASSERT(i < Length())
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/literal/textureLoad/c9f310.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/textureLoad/c9f310.wgsl.expected.ir.dxc.hlsl
index fd28383..334e6e8e 100644
--- a/test/tint/builtins/gen/literal/textureLoad/c9f310.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureLoad/c9f310.wgsl.expected.ir.dxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureLoad
+..\..\src\tint\utils\containers\slice.h:216 internal compiler error: TINT_ASSERT(i < Length())
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/literal/textureLoad/c9f310.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/textureLoad/c9f310.wgsl.expected.ir.fxc.hlsl
index fd28383..334e6e8e 100644
--- a/test/tint/builtins/gen/literal/textureLoad/c9f310.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureLoad/c9f310.wgsl.expected.ir.fxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureLoad
+..\..\src\tint\utils\containers\slice.h:216 internal compiler error: TINT_ASSERT(i < Length())
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/literal/textureLoad/cac876.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/textureLoad/cac876.wgsl.expected.ir.dxc.hlsl
index fd28383..334e6e8e 100644
--- a/test/tint/builtins/gen/literal/textureLoad/cac876.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureLoad/cac876.wgsl.expected.ir.dxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureLoad
+..\..\src\tint\utils\containers\slice.h:216 internal compiler error: TINT_ASSERT(i < Length())
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/literal/textureLoad/cac876.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/textureLoad/cac876.wgsl.expected.ir.fxc.hlsl
index fd28383..334e6e8e 100644
--- a/test/tint/builtins/gen/literal/textureLoad/cac876.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureLoad/cac876.wgsl.expected.ir.fxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureLoad
+..\..\src\tint\utils\containers\slice.h:216 internal compiler error: TINT_ASSERT(i < Length())
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/literal/textureLoad/cad5f2.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/textureLoad/cad5f2.wgsl.expected.ir.dxc.hlsl
index fd28383..3c39ed4 100644
--- a/test/tint/builtins/gen/literal/textureLoad/cad5f2.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureLoad/cad5f2.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,45 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  uint4 prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureLoad
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation uint4 VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+Texture2DMS<uint4> arg_0 : register(t0, space1);
+uint4 textureLoad_cad5f2() {
+  Texture2DMS<uint4> v = arg_0;
+  int2 v_1 = int2((1).xx);
+  uint4 res = uint4(v.Load(v_1, int(1u)));
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store4(0u, textureLoad_cad5f2());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store4(0u, textureLoad_cad5f2());
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = textureLoad_cad5f2();
+  VertexOutput v_2 = tint_symbol;
+  return v_2;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_3 = vertex_main_inner();
+  VertexOutput v_4 = v_3;
+  VertexOutput v_5 = v_3;
+  vertex_main_outputs v_6 = {v_5.prevent_dce, v_4.pos};
+  return v_6;
+}
+
diff --git a/test/tint/builtins/gen/literal/textureLoad/cad5f2.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/textureLoad/cad5f2.wgsl.expected.ir.fxc.hlsl
index fd28383..3c39ed4 100644
--- a/test/tint/builtins/gen/literal/textureLoad/cad5f2.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureLoad/cad5f2.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,45 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  uint4 prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureLoad
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation uint4 VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+Texture2DMS<uint4> arg_0 : register(t0, space1);
+uint4 textureLoad_cad5f2() {
+  Texture2DMS<uint4> v = arg_0;
+  int2 v_1 = int2((1).xx);
+  uint4 res = uint4(v.Load(v_1, int(1u)));
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store4(0u, textureLoad_cad5f2());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store4(0u, textureLoad_cad5f2());
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = textureLoad_cad5f2();
+  VertexOutput v_2 = tint_symbol;
+  return v_2;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_3 = vertex_main_inner();
+  VertexOutput v_4 = v_3;
+  VertexOutput v_5 = v_3;
+  vertex_main_outputs v_6 = {v_5.prevent_dce, v_4.pos};
+  return v_6;
+}
+
diff --git a/test/tint/builtins/gen/literal/textureLoad/cb57c2.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/textureLoad/cb57c2.wgsl.expected.ir.dxc.hlsl
index fd28383..f2c635f 100644
--- a/test/tint/builtins/gen/literal/textureLoad/cb57c2.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureLoad/cb57c2.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,46 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  float prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureLoad
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation float VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+Texture2DArray arg_0 : register(t0, space1);
+float textureLoad_cb57c2() {
+  Texture2DArray v = arg_0;
+  int2 v_1 = int2((1u).xx);
+  int v_2 = int(1u);
+  float res = v.Load(int4(v_1, v_2, int(1))).x;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store(0u, asuint(textureLoad_cb57c2()));
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store(0u, asuint(textureLoad_cb57c2()));
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = textureLoad_cb57c2();
+  VertexOutput v_3 = tint_symbol;
+  return v_3;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_4 = vertex_main_inner();
+  VertexOutput v_5 = v_4;
+  VertexOutput v_6 = v_4;
+  vertex_main_outputs v_7 = {v_6.prevent_dce, v_5.pos};
+  return v_7;
+}
+
diff --git a/test/tint/builtins/gen/literal/textureLoad/cb57c2.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/textureLoad/cb57c2.wgsl.expected.ir.fxc.hlsl
index fd28383..f2c635f 100644
--- a/test/tint/builtins/gen/literal/textureLoad/cb57c2.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureLoad/cb57c2.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,46 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  float prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureLoad
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation float VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+Texture2DArray arg_0 : register(t0, space1);
+float textureLoad_cb57c2() {
+  Texture2DArray v = arg_0;
+  int2 v_1 = int2((1u).xx);
+  int v_2 = int(1u);
+  float res = v.Load(int4(v_1, v_2, int(1))).x;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store(0u, asuint(textureLoad_cb57c2()));
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store(0u, asuint(textureLoad_cb57c2()));
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = textureLoad_cb57c2();
+  VertexOutput v_3 = tint_symbol;
+  return v_3;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_4 = vertex_main_inner();
+  VertexOutput v_5 = v_4;
+  VertexOutput v_6 = v_4;
+  vertex_main_outputs v_7 = {v_6.prevent_dce, v_5.pos};
+  return v_7;
+}
+
diff --git a/test/tint/builtins/gen/literal/textureLoad/cdbcf6.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/textureLoad/cdbcf6.wgsl.expected.ir.dxc.hlsl
index fd28383..334e6e8e 100644
--- a/test/tint/builtins/gen/literal/textureLoad/cdbcf6.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureLoad/cdbcf6.wgsl.expected.ir.dxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureLoad
+..\..\src\tint\utils\containers\slice.h:216 internal compiler error: TINT_ASSERT(i < Length())
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/literal/textureLoad/cdbcf6.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/textureLoad/cdbcf6.wgsl.expected.ir.fxc.hlsl
index fd28383..334e6e8e 100644
--- a/test/tint/builtins/gen/literal/textureLoad/cdbcf6.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureLoad/cdbcf6.wgsl.expected.ir.fxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureLoad
+..\..\src\tint\utils\containers\slice.h:216 internal compiler error: TINT_ASSERT(i < Length())
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/literal/textureLoad/cdccd2.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/textureLoad/cdccd2.wgsl.expected.ir.dxc.hlsl
index fd28383..334e6e8e 100644
--- a/test/tint/builtins/gen/literal/textureLoad/cdccd2.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureLoad/cdccd2.wgsl.expected.ir.dxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureLoad
+..\..\src\tint\utils\containers\slice.h:216 internal compiler error: TINT_ASSERT(i < Length())
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/literal/textureLoad/cdccd2.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/textureLoad/cdccd2.wgsl.expected.ir.fxc.hlsl
index fd28383..334e6e8e 100644
--- a/test/tint/builtins/gen/literal/textureLoad/cdccd2.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureLoad/cdccd2.wgsl.expected.ir.fxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureLoad
+..\..\src\tint\utils\containers\slice.h:216 internal compiler error: TINT_ASSERT(i < Length())
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/literal/textureLoad/cdd343.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/textureLoad/cdd343.wgsl.expected.ir.dxc.hlsl
index fd28383..334e6e8e 100644
--- a/test/tint/builtins/gen/literal/textureLoad/cdd343.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureLoad/cdd343.wgsl.expected.ir.dxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureLoad
+..\..\src\tint\utils\containers\slice.h:216 internal compiler error: TINT_ASSERT(i < Length())
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/literal/textureLoad/cdd343.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/textureLoad/cdd343.wgsl.expected.ir.fxc.hlsl
index fd28383..334e6e8e 100644
--- a/test/tint/builtins/gen/literal/textureLoad/cdd343.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureLoad/cdd343.wgsl.expected.ir.fxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureLoad
+..\..\src\tint\utils\containers\slice.h:216 internal compiler error: TINT_ASSERT(i < Length())
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/literal/textureLoad/cddf6b.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/textureLoad/cddf6b.wgsl.expected.ir.dxc.hlsl
index fd28383..334e6e8e 100644
--- a/test/tint/builtins/gen/literal/textureLoad/cddf6b.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureLoad/cddf6b.wgsl.expected.ir.dxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureLoad
+..\..\src\tint\utils\containers\slice.h:216 internal compiler error: TINT_ASSERT(i < Length())
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/literal/textureLoad/cddf6b.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/textureLoad/cddf6b.wgsl.expected.ir.fxc.hlsl
index fd28383..334e6e8e 100644
--- a/test/tint/builtins/gen/literal/textureLoad/cddf6b.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureLoad/cddf6b.wgsl.expected.ir.fxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureLoad
+..\..\src\tint\utils\containers\slice.h:216 internal compiler error: TINT_ASSERT(i < Length())
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/literal/textureLoad/cec477.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/textureLoad/cec477.wgsl.expected.ir.dxc.hlsl
index fd28383..334e6e8e 100644
--- a/test/tint/builtins/gen/literal/textureLoad/cec477.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureLoad/cec477.wgsl.expected.ir.dxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureLoad
+..\..\src\tint\utils\containers\slice.h:216 internal compiler error: TINT_ASSERT(i < Length())
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/literal/textureLoad/cec477.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/textureLoad/cec477.wgsl.expected.ir.fxc.hlsl
index fd28383..334e6e8e 100644
--- a/test/tint/builtins/gen/literal/textureLoad/cec477.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureLoad/cec477.wgsl.expected.ir.fxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureLoad
+..\..\src\tint\utils\containers\slice.h:216 internal compiler error: TINT_ASSERT(i < Length())
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/literal/textureLoad/cece6c.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/textureLoad/cece6c.wgsl.expected.ir.dxc.hlsl
index fd28383..334e6e8e 100644
--- a/test/tint/builtins/gen/literal/textureLoad/cece6c.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureLoad/cece6c.wgsl.expected.ir.dxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureLoad
+..\..\src\tint\utils\containers\slice.h:216 internal compiler error: TINT_ASSERT(i < Length())
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/literal/textureLoad/cece6c.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/textureLoad/cece6c.wgsl.expected.ir.fxc.hlsl
index fd28383..334e6e8e 100644
--- a/test/tint/builtins/gen/literal/textureLoad/cece6c.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureLoad/cece6c.wgsl.expected.ir.fxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureLoad
+..\..\src\tint\utils\containers\slice.h:216 internal compiler error: TINT_ASSERT(i < Length())
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/literal/textureLoad/d02afc.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/textureLoad/d02afc.wgsl.expected.ir.dxc.hlsl
index fd28383..334e6e8e 100644
--- a/test/tint/builtins/gen/literal/textureLoad/d02afc.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureLoad/d02afc.wgsl.expected.ir.dxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureLoad
+..\..\src\tint\utils\containers\slice.h:216 internal compiler error: TINT_ASSERT(i < Length())
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/literal/textureLoad/d02afc.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/textureLoad/d02afc.wgsl.expected.ir.fxc.hlsl
index fd28383..334e6e8e 100644
--- a/test/tint/builtins/gen/literal/textureLoad/d02afc.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureLoad/d02afc.wgsl.expected.ir.fxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureLoad
+..\..\src\tint\utils\containers\slice.h:216 internal compiler error: TINT_ASSERT(i < Length())
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/literal/textureLoad/d0e351.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/textureLoad/d0e351.wgsl.expected.ir.dxc.hlsl
index fd28383..334e6e8e 100644
--- a/test/tint/builtins/gen/literal/textureLoad/d0e351.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureLoad/d0e351.wgsl.expected.ir.dxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureLoad
+..\..\src\tint\utils\containers\slice.h:216 internal compiler error: TINT_ASSERT(i < Length())
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/literal/textureLoad/d0e351.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/textureLoad/d0e351.wgsl.expected.ir.fxc.hlsl
index fd28383..334e6e8e 100644
--- a/test/tint/builtins/gen/literal/textureLoad/d0e351.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureLoad/d0e351.wgsl.expected.ir.fxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureLoad
+..\..\src\tint\utils\containers\slice.h:216 internal compiler error: TINT_ASSERT(i < Length())
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/literal/textureLoad/d357bb.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/textureLoad/d357bb.wgsl.expected.ir.dxc.hlsl
index fd28383..334e6e8e 100644
--- a/test/tint/builtins/gen/literal/textureLoad/d357bb.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureLoad/d357bb.wgsl.expected.ir.dxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureLoad
+..\..\src\tint\utils\containers\slice.h:216 internal compiler error: TINT_ASSERT(i < Length())
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/literal/textureLoad/d357bb.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/textureLoad/d357bb.wgsl.expected.ir.fxc.hlsl
index fd28383..334e6e8e 100644
--- a/test/tint/builtins/gen/literal/textureLoad/d357bb.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureLoad/d357bb.wgsl.expected.ir.fxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureLoad
+..\..\src\tint\utils\containers\slice.h:216 internal compiler error: TINT_ASSERT(i < Length())
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/literal/textureLoad/d37a08.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/textureLoad/d37a08.wgsl.expected.ir.dxc.hlsl
index fd28383..334e6e8e 100644
--- a/test/tint/builtins/gen/literal/textureLoad/d37a08.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureLoad/d37a08.wgsl.expected.ir.dxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureLoad
+..\..\src\tint\utils\containers\slice.h:216 internal compiler error: TINT_ASSERT(i < Length())
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/literal/textureLoad/d37a08.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/textureLoad/d37a08.wgsl.expected.ir.fxc.hlsl
index fd28383..334e6e8e 100644
--- a/test/tint/builtins/gen/literal/textureLoad/d37a08.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureLoad/d37a08.wgsl.expected.ir.fxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureLoad
+..\..\src\tint\utils\containers\slice.h:216 internal compiler error: TINT_ASSERT(i < Length())
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/literal/textureLoad/d3d8fc.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/textureLoad/d3d8fc.wgsl.expected.ir.dxc.hlsl
index fd28383..334e6e8e 100644
--- a/test/tint/builtins/gen/literal/textureLoad/d3d8fc.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureLoad/d3d8fc.wgsl.expected.ir.dxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureLoad
+..\..\src\tint\utils\containers\slice.h:216 internal compiler error: TINT_ASSERT(i < Length())
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/literal/textureLoad/d3d8fc.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/textureLoad/d3d8fc.wgsl.expected.ir.fxc.hlsl
index fd28383..334e6e8e 100644
--- a/test/tint/builtins/gen/literal/textureLoad/d3d8fc.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureLoad/d3d8fc.wgsl.expected.ir.fxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureLoad
+..\..\src\tint\utils\containers\slice.h:216 internal compiler error: TINT_ASSERT(i < Length())
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/literal/textureLoad/d41c72.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/textureLoad/d41c72.wgsl.expected.ir.dxc.hlsl
index fd28383..334e6e8e 100644
--- a/test/tint/builtins/gen/literal/textureLoad/d41c72.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureLoad/d41c72.wgsl.expected.ir.dxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureLoad
+..\..\src\tint\utils\containers\slice.h:216 internal compiler error: TINT_ASSERT(i < Length())
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/literal/textureLoad/d41c72.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/textureLoad/d41c72.wgsl.expected.ir.fxc.hlsl
index fd28383..334e6e8e 100644
--- a/test/tint/builtins/gen/literal/textureLoad/d41c72.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureLoad/d41c72.wgsl.expected.ir.fxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureLoad
+..\..\src\tint\utils\containers\slice.h:216 internal compiler error: TINT_ASSERT(i < Length())
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/literal/textureLoad/d4df19.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/textureLoad/d4df19.wgsl.expected.ir.dxc.hlsl
index fd28383..334e6e8e 100644
--- a/test/tint/builtins/gen/literal/textureLoad/d4df19.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureLoad/d4df19.wgsl.expected.ir.dxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureLoad
+..\..\src\tint\utils\containers\slice.h:216 internal compiler error: TINT_ASSERT(i < Length())
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/literal/textureLoad/d4df19.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/textureLoad/d4df19.wgsl.expected.ir.fxc.hlsl
index fd28383..334e6e8e 100644
--- a/test/tint/builtins/gen/literal/textureLoad/d4df19.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureLoad/d4df19.wgsl.expected.ir.fxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureLoad
+..\..\src\tint\utils\containers\slice.h:216 internal compiler error: TINT_ASSERT(i < Length())
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/literal/textureLoad/d5c48d.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/textureLoad/d5c48d.wgsl.expected.ir.dxc.hlsl
index fd28383..334e6e8e 100644
--- a/test/tint/builtins/gen/literal/textureLoad/d5c48d.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureLoad/d5c48d.wgsl.expected.ir.dxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureLoad
+..\..\src\tint\utils\containers\slice.h:216 internal compiler error: TINT_ASSERT(i < Length())
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/literal/textureLoad/d5c48d.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/textureLoad/d5c48d.wgsl.expected.ir.fxc.hlsl
index fd28383..334e6e8e 100644
--- a/test/tint/builtins/gen/literal/textureLoad/d5c48d.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureLoad/d5c48d.wgsl.expected.ir.fxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureLoad
+..\..\src\tint\utils\containers\slice.h:216 internal compiler error: TINT_ASSERT(i < Length())
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/literal/textureLoad/d72de9.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/textureLoad/d72de9.wgsl.expected.ir.dxc.hlsl
index fd28383..334e6e8e 100644
--- a/test/tint/builtins/gen/literal/textureLoad/d72de9.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureLoad/d72de9.wgsl.expected.ir.dxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureLoad
+..\..\src\tint\utils\containers\slice.h:216 internal compiler error: TINT_ASSERT(i < Length())
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/literal/textureLoad/d72de9.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/textureLoad/d72de9.wgsl.expected.ir.fxc.hlsl
index fd28383..334e6e8e 100644
--- a/test/tint/builtins/gen/literal/textureLoad/d72de9.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureLoad/d72de9.wgsl.expected.ir.fxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureLoad
+..\..\src\tint\utils\containers\slice.h:216 internal compiler error: TINT_ASSERT(i < Length())
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/literal/textureLoad/d7996a.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/textureLoad/d7996a.wgsl.expected.ir.dxc.hlsl
index fd28383..334e6e8e 100644
--- a/test/tint/builtins/gen/literal/textureLoad/d7996a.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureLoad/d7996a.wgsl.expected.ir.dxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureLoad
+..\..\src\tint\utils\containers\slice.h:216 internal compiler error: TINT_ASSERT(i < Length())
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/literal/textureLoad/d7996a.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/textureLoad/d7996a.wgsl.expected.ir.fxc.hlsl
index fd28383..334e6e8e 100644
--- a/test/tint/builtins/gen/literal/textureLoad/d7996a.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureLoad/d7996a.wgsl.expected.ir.fxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureLoad
+..\..\src\tint\utils\containers\slice.h:216 internal compiler error: TINT_ASSERT(i < Length())
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/literal/textureLoad/d79c5c.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/textureLoad/d79c5c.wgsl.expected.ir.dxc.hlsl
index fd28383..334e6e8e 100644
--- a/test/tint/builtins/gen/literal/textureLoad/d79c5c.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureLoad/d79c5c.wgsl.expected.ir.dxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureLoad
+..\..\src\tint\utils\containers\slice.h:216 internal compiler error: TINT_ASSERT(i < Length())
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/literal/textureLoad/d79c5c.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/textureLoad/d79c5c.wgsl.expected.ir.fxc.hlsl
index fd28383..334e6e8e 100644
--- a/test/tint/builtins/gen/literal/textureLoad/d79c5c.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureLoad/d79c5c.wgsl.expected.ir.fxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureLoad
+..\..\src\tint\utils\containers\slice.h:216 internal compiler error: TINT_ASSERT(i < Length())
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/literal/textureLoad/d80ff3.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/textureLoad/d80ff3.wgsl.expected.ir.dxc.hlsl
index fd28383..334e6e8e 100644
--- a/test/tint/builtins/gen/literal/textureLoad/d80ff3.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureLoad/d80ff3.wgsl.expected.ir.dxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureLoad
+..\..\src\tint\utils\containers\slice.h:216 internal compiler error: TINT_ASSERT(i < Length())
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/literal/textureLoad/d80ff3.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/textureLoad/d80ff3.wgsl.expected.ir.fxc.hlsl
index fd28383..334e6e8e 100644
--- a/test/tint/builtins/gen/literal/textureLoad/d80ff3.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureLoad/d80ff3.wgsl.expected.ir.fxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureLoad
+..\..\src\tint\utils\containers\slice.h:216 internal compiler error: TINT_ASSERT(i < Length())
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/literal/textureLoad/d81c57.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/textureLoad/d81c57.wgsl.expected.ir.dxc.hlsl
index fd28383..334e6e8e 100644
--- a/test/tint/builtins/gen/literal/textureLoad/d81c57.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureLoad/d81c57.wgsl.expected.ir.dxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureLoad
+..\..\src\tint\utils\containers\slice.h:216 internal compiler error: TINT_ASSERT(i < Length())
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/literal/textureLoad/d81c57.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/textureLoad/d81c57.wgsl.expected.ir.fxc.hlsl
index fd28383..334e6e8e 100644
--- a/test/tint/builtins/gen/literal/textureLoad/d81c57.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureLoad/d81c57.wgsl.expected.ir.fxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureLoad
+..\..\src\tint\utils\containers\slice.h:216 internal compiler error: TINT_ASSERT(i < Length())
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/literal/textureLoad/d85d61.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/textureLoad/d85d61.wgsl.expected.ir.dxc.hlsl
index fd28383..334e6e8e 100644
--- a/test/tint/builtins/gen/literal/textureLoad/d85d61.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureLoad/d85d61.wgsl.expected.ir.dxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureLoad
+..\..\src\tint\utils\containers\slice.h:216 internal compiler error: TINT_ASSERT(i < Length())
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/literal/textureLoad/d85d61.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/textureLoad/d85d61.wgsl.expected.ir.fxc.hlsl
index fd28383..334e6e8e 100644
--- a/test/tint/builtins/gen/literal/textureLoad/d85d61.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureLoad/d85d61.wgsl.expected.ir.fxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureLoad
+..\..\src\tint\utils\containers\slice.h:216 internal compiler error: TINT_ASSERT(i < Length())
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/literal/textureLoad/d8617f.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/textureLoad/d8617f.wgsl.expected.ir.dxc.hlsl
index fd28383..334e6e8e 100644
--- a/test/tint/builtins/gen/literal/textureLoad/d8617f.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureLoad/d8617f.wgsl.expected.ir.dxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureLoad
+..\..\src\tint\utils\containers\slice.h:216 internal compiler error: TINT_ASSERT(i < Length())
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/literal/textureLoad/d8617f.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/textureLoad/d8617f.wgsl.expected.ir.fxc.hlsl
index fd28383..334e6e8e 100644
--- a/test/tint/builtins/gen/literal/textureLoad/d8617f.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureLoad/d8617f.wgsl.expected.ir.fxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureLoad
+..\..\src\tint\utils\containers\slice.h:216 internal compiler error: TINT_ASSERT(i < Length())
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/literal/textureLoad/d8be5a.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/textureLoad/d8be5a.wgsl.expected.ir.dxc.hlsl
index fd28383..334e6e8e 100644
--- a/test/tint/builtins/gen/literal/textureLoad/d8be5a.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureLoad/d8be5a.wgsl.expected.ir.dxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureLoad
+..\..\src\tint\utils\containers\slice.h:216 internal compiler error: TINT_ASSERT(i < Length())
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/literal/textureLoad/d8be5a.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/textureLoad/d8be5a.wgsl.expected.ir.fxc.hlsl
index fd28383..334e6e8e 100644
--- a/test/tint/builtins/gen/literal/textureLoad/d8be5a.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureLoad/d8be5a.wgsl.expected.ir.fxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureLoad
+..\..\src\tint\utils\containers\slice.h:216 internal compiler error: TINT_ASSERT(i < Length())
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/literal/textureLoad/d91f37.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/textureLoad/d91f37.wgsl.expected.ir.dxc.hlsl
index fd28383..334e6e8e 100644
--- a/test/tint/builtins/gen/literal/textureLoad/d91f37.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureLoad/d91f37.wgsl.expected.ir.dxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureLoad
+..\..\src\tint\utils\containers\slice.h:216 internal compiler error: TINT_ASSERT(i < Length())
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/literal/textureLoad/d91f37.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/textureLoad/d91f37.wgsl.expected.ir.fxc.hlsl
index fd28383..334e6e8e 100644
--- a/test/tint/builtins/gen/literal/textureLoad/d91f37.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureLoad/d91f37.wgsl.expected.ir.fxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureLoad
+..\..\src\tint\utils\containers\slice.h:216 internal compiler error: TINT_ASSERT(i < Length())
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/literal/textureLoad/dab04f.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/textureLoad/dab04f.wgsl.expected.ir.dxc.hlsl
index fd28383..334e6e8e 100644
--- a/test/tint/builtins/gen/literal/textureLoad/dab04f.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureLoad/dab04f.wgsl.expected.ir.dxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureLoad
+..\..\src\tint\utils\containers\slice.h:216 internal compiler error: TINT_ASSERT(i < Length())
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/literal/textureLoad/dab04f.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/textureLoad/dab04f.wgsl.expected.ir.fxc.hlsl
index fd28383..334e6e8e 100644
--- a/test/tint/builtins/gen/literal/textureLoad/dab04f.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureLoad/dab04f.wgsl.expected.ir.fxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureLoad
+..\..\src\tint\utils\containers\slice.h:216 internal compiler error: TINT_ASSERT(i < Length())
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/literal/textureLoad/dbd554.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/textureLoad/dbd554.wgsl.expected.ir.dxc.hlsl
index fd28383..334e6e8e 100644
--- a/test/tint/builtins/gen/literal/textureLoad/dbd554.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureLoad/dbd554.wgsl.expected.ir.dxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureLoad
+..\..\src\tint\utils\containers\slice.h:216 internal compiler error: TINT_ASSERT(i < Length())
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/literal/textureLoad/dbd554.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/textureLoad/dbd554.wgsl.expected.ir.fxc.hlsl
index fd28383..334e6e8e 100644
--- a/test/tint/builtins/gen/literal/textureLoad/dbd554.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureLoad/dbd554.wgsl.expected.ir.fxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureLoad
+..\..\src\tint\utils\containers\slice.h:216 internal compiler error: TINT_ASSERT(i < Length())
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/literal/textureLoad/dd5859.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/textureLoad/dd5859.wgsl.expected.ir.dxc.hlsl
index fd28383..334e6e8e 100644
--- a/test/tint/builtins/gen/literal/textureLoad/dd5859.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureLoad/dd5859.wgsl.expected.ir.dxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureLoad
+..\..\src\tint\utils\containers\slice.h:216 internal compiler error: TINT_ASSERT(i < Length())
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/literal/textureLoad/dd5859.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/textureLoad/dd5859.wgsl.expected.ir.fxc.hlsl
index fd28383..334e6e8e 100644
--- a/test/tint/builtins/gen/literal/textureLoad/dd5859.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureLoad/dd5859.wgsl.expected.ir.fxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureLoad
+..\..\src\tint\utils\containers\slice.h:216 internal compiler error: TINT_ASSERT(i < Length())
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/literal/textureLoad/dd8776.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/textureLoad/dd8776.wgsl.expected.ir.dxc.hlsl
index fd28383..334e6e8e 100644
--- a/test/tint/builtins/gen/literal/textureLoad/dd8776.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureLoad/dd8776.wgsl.expected.ir.dxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureLoad
+..\..\src\tint\utils\containers\slice.h:216 internal compiler error: TINT_ASSERT(i < Length())
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/literal/textureLoad/dd8776.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/textureLoad/dd8776.wgsl.expected.ir.fxc.hlsl
index fd28383..334e6e8e 100644
--- a/test/tint/builtins/gen/literal/textureLoad/dd8776.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureLoad/dd8776.wgsl.expected.ir.fxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureLoad
+..\..\src\tint\utils\containers\slice.h:216 internal compiler error: TINT_ASSERT(i < Length())
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/literal/textureLoad/ddeed3.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/textureLoad/ddeed3.wgsl.expected.ir.dxc.hlsl
index fd28383..334e6e8e 100644
--- a/test/tint/builtins/gen/literal/textureLoad/ddeed3.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureLoad/ddeed3.wgsl.expected.ir.dxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureLoad
+..\..\src\tint\utils\containers\slice.h:216 internal compiler error: TINT_ASSERT(i < Length())
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/literal/textureLoad/ddeed3.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/textureLoad/ddeed3.wgsl.expected.ir.fxc.hlsl
index fd28383..334e6e8e 100644
--- a/test/tint/builtins/gen/literal/textureLoad/ddeed3.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureLoad/ddeed3.wgsl.expected.ir.fxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureLoad
+..\..\src\tint\utils\containers\slice.h:216 internal compiler error: TINT_ASSERT(i < Length())
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/literal/textureLoad/de5a0e.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/textureLoad/de5a0e.wgsl.expected.ir.dxc.hlsl
index fd28383..334e6e8e 100644
--- a/test/tint/builtins/gen/literal/textureLoad/de5a0e.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureLoad/de5a0e.wgsl.expected.ir.dxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureLoad
+..\..\src\tint\utils\containers\slice.h:216 internal compiler error: TINT_ASSERT(i < Length())
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/literal/textureLoad/de5a0e.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/textureLoad/de5a0e.wgsl.expected.ir.fxc.hlsl
index fd28383..334e6e8e 100644
--- a/test/tint/builtins/gen/literal/textureLoad/de5a0e.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureLoad/de5a0e.wgsl.expected.ir.fxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureLoad
+..\..\src\tint\utils\containers\slice.h:216 internal compiler error: TINT_ASSERT(i < Length())
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/literal/textureLoad/dee8e7.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/textureLoad/dee8e7.wgsl.expected.ir.dxc.hlsl
index fd28383..334e6e8e 100644
--- a/test/tint/builtins/gen/literal/textureLoad/dee8e7.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureLoad/dee8e7.wgsl.expected.ir.dxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureLoad
+..\..\src\tint\utils\containers\slice.h:216 internal compiler error: TINT_ASSERT(i < Length())
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/literal/textureLoad/dee8e7.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/textureLoad/dee8e7.wgsl.expected.ir.fxc.hlsl
index fd28383..334e6e8e 100644
--- a/test/tint/builtins/gen/literal/textureLoad/dee8e7.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureLoad/dee8e7.wgsl.expected.ir.fxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureLoad
+..\..\src\tint\utils\containers\slice.h:216 internal compiler error: TINT_ASSERT(i < Length())
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/literal/textureLoad/defd9a.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/textureLoad/defd9a.wgsl.expected.ir.dxc.hlsl
index fd28383..334e6e8e 100644
--- a/test/tint/builtins/gen/literal/textureLoad/defd9a.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureLoad/defd9a.wgsl.expected.ir.dxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureLoad
+..\..\src\tint\utils\containers\slice.h:216 internal compiler error: TINT_ASSERT(i < Length())
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/literal/textureLoad/defd9a.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/textureLoad/defd9a.wgsl.expected.ir.fxc.hlsl
index fd28383..334e6e8e 100644
--- a/test/tint/builtins/gen/literal/textureLoad/defd9a.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureLoad/defd9a.wgsl.expected.ir.fxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureLoad
+..\..\src\tint\utils\containers\slice.h:216 internal compiler error: TINT_ASSERT(i < Length())
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/literal/textureLoad/dfdf3b.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/textureLoad/dfdf3b.wgsl.expected.ir.dxc.hlsl
index fd28383..334e6e8e 100644
--- a/test/tint/builtins/gen/literal/textureLoad/dfdf3b.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureLoad/dfdf3b.wgsl.expected.ir.dxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureLoad
+..\..\src\tint\utils\containers\slice.h:216 internal compiler error: TINT_ASSERT(i < Length())
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/literal/textureLoad/dfdf3b.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/textureLoad/dfdf3b.wgsl.expected.ir.fxc.hlsl
index fd28383..334e6e8e 100644
--- a/test/tint/builtins/gen/literal/textureLoad/dfdf3b.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureLoad/dfdf3b.wgsl.expected.ir.fxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureLoad
+..\..\src\tint\utils\containers\slice.h:216 internal compiler error: TINT_ASSERT(i < Length())
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/literal/textureLoad/e1c3cf.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/textureLoad/e1c3cf.wgsl.expected.ir.dxc.hlsl
index fd28383..334e6e8e 100644
--- a/test/tint/builtins/gen/literal/textureLoad/e1c3cf.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureLoad/e1c3cf.wgsl.expected.ir.dxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureLoad
+..\..\src\tint\utils\containers\slice.h:216 internal compiler error: TINT_ASSERT(i < Length())
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/literal/textureLoad/e1c3cf.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/textureLoad/e1c3cf.wgsl.expected.ir.fxc.hlsl
index fd28383..334e6e8e 100644
--- a/test/tint/builtins/gen/literal/textureLoad/e1c3cf.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureLoad/e1c3cf.wgsl.expected.ir.fxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureLoad
+..\..\src\tint\utils\containers\slice.h:216 internal compiler error: TINT_ASSERT(i < Length())
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/literal/textureLoad/e2292f.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/textureLoad/e2292f.wgsl.expected.ir.dxc.hlsl
index fd28383..334e6e8e 100644
--- a/test/tint/builtins/gen/literal/textureLoad/e2292f.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureLoad/e2292f.wgsl.expected.ir.dxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureLoad
+..\..\src\tint\utils\containers\slice.h:216 internal compiler error: TINT_ASSERT(i < Length())
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/literal/textureLoad/e2292f.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/textureLoad/e2292f.wgsl.expected.ir.fxc.hlsl
index fd28383..334e6e8e 100644
--- a/test/tint/builtins/gen/literal/textureLoad/e2292f.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureLoad/e2292f.wgsl.expected.ir.fxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureLoad
+..\..\src\tint\utils\containers\slice.h:216 internal compiler error: TINT_ASSERT(i < Length())
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/literal/textureLoad/e2b3a1.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/textureLoad/e2b3a1.wgsl.expected.ir.dxc.hlsl
index fd28383..334e6e8e 100644
--- a/test/tint/builtins/gen/literal/textureLoad/e2b3a1.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureLoad/e2b3a1.wgsl.expected.ir.dxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureLoad
+..\..\src\tint\utils\containers\slice.h:216 internal compiler error: TINT_ASSERT(i < Length())
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/literal/textureLoad/e2b3a1.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/textureLoad/e2b3a1.wgsl.expected.ir.fxc.hlsl
index fd28383..334e6e8e 100644
--- a/test/tint/builtins/gen/literal/textureLoad/e2b3a1.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureLoad/e2b3a1.wgsl.expected.ir.fxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureLoad
+..\..\src\tint\utils\containers\slice.h:216 internal compiler error: TINT_ASSERT(i < Length())
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/literal/textureLoad/e2d7da.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/textureLoad/e2d7da.wgsl.expected.ir.dxc.hlsl
index fd28383..334e6e8e 100644
--- a/test/tint/builtins/gen/literal/textureLoad/e2d7da.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureLoad/e2d7da.wgsl.expected.ir.dxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureLoad
+..\..\src\tint\utils\containers\slice.h:216 internal compiler error: TINT_ASSERT(i < Length())
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/literal/textureLoad/e2d7da.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/textureLoad/e2d7da.wgsl.expected.ir.fxc.hlsl
index fd28383..334e6e8e 100644
--- a/test/tint/builtins/gen/literal/textureLoad/e2d7da.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureLoad/e2d7da.wgsl.expected.ir.fxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureLoad
+..\..\src\tint\utils\containers\slice.h:216 internal compiler error: TINT_ASSERT(i < Length())
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/literal/textureLoad/e33285.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/textureLoad/e33285.wgsl.expected.ir.dxc.hlsl
index fd28383..334e6e8e 100644
--- a/test/tint/builtins/gen/literal/textureLoad/e33285.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureLoad/e33285.wgsl.expected.ir.dxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureLoad
+..\..\src\tint\utils\containers\slice.h:216 internal compiler error: TINT_ASSERT(i < Length())
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/literal/textureLoad/e33285.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/textureLoad/e33285.wgsl.expected.ir.fxc.hlsl
index fd28383..334e6e8e 100644
--- a/test/tint/builtins/gen/literal/textureLoad/e33285.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureLoad/e33285.wgsl.expected.ir.fxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureLoad
+..\..\src\tint\utils\containers\slice.h:216 internal compiler error: TINT_ASSERT(i < Length())
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/literal/textureLoad/e35f72.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/textureLoad/e35f72.wgsl.expected.ir.dxc.hlsl
index fd28383..624435c 100644
--- a/test/tint/builtins/gen/literal/textureLoad/e35f72.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureLoad/e35f72.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,45 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  int4 prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureLoad
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation int4 VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+Texture3D<int4> arg_0 : register(t0, space1);
+int4 textureLoad_e35f72() {
+  Texture3D<int4> v = arg_0;
+  int3 v_1 = int3((1).xxx);
+  int4 res = int4(v.Load(int4(v_1, int(1u))));
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store4(0u, asuint(textureLoad_e35f72()));
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store4(0u, asuint(textureLoad_e35f72()));
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = textureLoad_e35f72();
+  VertexOutput v_2 = tint_symbol;
+  return v_2;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_3 = vertex_main_inner();
+  VertexOutput v_4 = v_3;
+  VertexOutput v_5 = v_3;
+  vertex_main_outputs v_6 = {v_5.prevent_dce, v_4.pos};
+  return v_6;
+}
+
diff --git a/test/tint/builtins/gen/literal/textureLoad/e35f72.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/textureLoad/e35f72.wgsl.expected.ir.fxc.hlsl
index fd28383..624435c 100644
--- a/test/tint/builtins/gen/literal/textureLoad/e35f72.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureLoad/e35f72.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,45 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  int4 prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureLoad
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation int4 VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+Texture3D<int4> arg_0 : register(t0, space1);
+int4 textureLoad_e35f72() {
+  Texture3D<int4> v = arg_0;
+  int3 v_1 = int3((1).xxx);
+  int4 res = int4(v.Load(int4(v_1, int(1u))));
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store4(0u, asuint(textureLoad_e35f72()));
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store4(0u, asuint(textureLoad_e35f72()));
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = textureLoad_e35f72();
+  VertexOutput v_2 = tint_symbol;
+  return v_2;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_3 = vertex_main_inner();
+  VertexOutput v_4 = v_3;
+  VertexOutput v_5 = v_3;
+  vertex_main_outputs v_6 = {v_5.prevent_dce, v_4.pos};
+  return v_6;
+}
+
diff --git a/test/tint/builtins/gen/literal/textureLoad/e3b08b.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/textureLoad/e3b08b.wgsl.expected.ir.dxc.hlsl
index fd28383..334e6e8e 100644
--- a/test/tint/builtins/gen/literal/textureLoad/e3b08b.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureLoad/e3b08b.wgsl.expected.ir.dxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureLoad
+..\..\src\tint\utils\containers\slice.h:216 internal compiler error: TINT_ASSERT(i < Length())
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/literal/textureLoad/e3b08b.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/textureLoad/e3b08b.wgsl.expected.ir.fxc.hlsl
index fd28383..334e6e8e 100644
--- a/test/tint/builtins/gen/literal/textureLoad/e3b08b.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureLoad/e3b08b.wgsl.expected.ir.fxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureLoad
+..\..\src\tint\utils\containers\slice.h:216 internal compiler error: TINT_ASSERT(i < Length())
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/literal/textureLoad/e3d2cc.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/textureLoad/e3d2cc.wgsl.expected.ir.dxc.hlsl
index fd28383..931fd23 100644
--- a/test/tint/builtins/gen/literal/textureLoad/e3d2cc.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureLoad/e3d2cc.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,45 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  int4 prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureLoad
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation int4 VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+Texture2DMS<int4> arg_0 : register(t0, space1);
+int4 textureLoad_e3d2cc() {
+  Texture2DMS<int4> v = arg_0;
+  int2 v_1 = int2((1).xx);
+  int4 res = int4(v.Load(v_1, int(1)));
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store4(0u, asuint(textureLoad_e3d2cc()));
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store4(0u, asuint(textureLoad_e3d2cc()));
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = textureLoad_e3d2cc();
+  VertexOutput v_2 = tint_symbol;
+  return v_2;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_3 = vertex_main_inner();
+  VertexOutput v_4 = v_3;
+  VertexOutput v_5 = v_3;
+  vertex_main_outputs v_6 = {v_5.prevent_dce, v_4.pos};
+  return v_6;
+}
+
diff --git a/test/tint/builtins/gen/literal/textureLoad/e3d2cc.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/textureLoad/e3d2cc.wgsl.expected.ir.fxc.hlsl
index fd28383..931fd23 100644
--- a/test/tint/builtins/gen/literal/textureLoad/e3d2cc.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureLoad/e3d2cc.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,45 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  int4 prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureLoad
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation int4 VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+Texture2DMS<int4> arg_0 : register(t0, space1);
+int4 textureLoad_e3d2cc() {
+  Texture2DMS<int4> v = arg_0;
+  int2 v_1 = int2((1).xx);
+  int4 res = int4(v.Load(v_1, int(1)));
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store4(0u, asuint(textureLoad_e3d2cc()));
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store4(0u, asuint(textureLoad_e3d2cc()));
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = textureLoad_e3d2cc();
+  VertexOutput v_2 = tint_symbol;
+  return v_2;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_3 = vertex_main_inner();
+  VertexOutput v_4 = v_3;
+  VertexOutput v_5 = v_3;
+  vertex_main_outputs v_6 = {v_5.prevent_dce, v_4.pos};
+  return v_6;
+}
+
diff --git a/test/tint/builtins/gen/literal/textureLoad/e4051a.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/textureLoad/e4051a.wgsl.expected.ir.dxc.hlsl
index fd28383..334e6e8e 100644
--- a/test/tint/builtins/gen/literal/textureLoad/e4051a.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureLoad/e4051a.wgsl.expected.ir.dxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureLoad
+..\..\src\tint\utils\containers\slice.h:216 internal compiler error: TINT_ASSERT(i < Length())
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/literal/textureLoad/e4051a.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/textureLoad/e4051a.wgsl.expected.ir.fxc.hlsl
index fd28383..334e6e8e 100644
--- a/test/tint/builtins/gen/literal/textureLoad/e4051a.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureLoad/e4051a.wgsl.expected.ir.fxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureLoad
+..\..\src\tint\utils\containers\slice.h:216 internal compiler error: TINT_ASSERT(i < Length())
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/literal/textureLoad/e57e92.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/textureLoad/e57e92.wgsl.expected.ir.dxc.hlsl
index fd28383..334e6e8e 100644
--- a/test/tint/builtins/gen/literal/textureLoad/e57e92.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureLoad/e57e92.wgsl.expected.ir.dxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureLoad
+..\..\src\tint\utils\containers\slice.h:216 internal compiler error: TINT_ASSERT(i < Length())
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/literal/textureLoad/e57e92.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/textureLoad/e57e92.wgsl.expected.ir.fxc.hlsl
index fd28383..334e6e8e 100644
--- a/test/tint/builtins/gen/literal/textureLoad/e57e92.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureLoad/e57e92.wgsl.expected.ir.fxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureLoad
+..\..\src\tint\utils\containers\slice.h:216 internal compiler error: TINT_ASSERT(i < Length())
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/literal/textureLoad/e59fdf.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/textureLoad/e59fdf.wgsl.expected.ir.dxc.hlsl
index fd28383..334e6e8e 100644
--- a/test/tint/builtins/gen/literal/textureLoad/e59fdf.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureLoad/e59fdf.wgsl.expected.ir.dxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureLoad
+..\..\src\tint\utils\containers\slice.h:216 internal compiler error: TINT_ASSERT(i < Length())
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/literal/textureLoad/e59fdf.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/textureLoad/e59fdf.wgsl.expected.ir.fxc.hlsl
index fd28383..334e6e8e 100644
--- a/test/tint/builtins/gen/literal/textureLoad/e59fdf.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureLoad/e59fdf.wgsl.expected.ir.fxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureLoad
+..\..\src\tint\utils\containers\slice.h:216 internal compiler error: TINT_ASSERT(i < Length())
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/literal/textureLoad/e65916.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/textureLoad/e65916.wgsl.expected.ir.dxc.hlsl
index fd28383..334e6e8e 100644
--- a/test/tint/builtins/gen/literal/textureLoad/e65916.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureLoad/e65916.wgsl.expected.ir.dxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureLoad
+..\..\src\tint\utils\containers\slice.h:216 internal compiler error: TINT_ASSERT(i < Length())
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/literal/textureLoad/e65916.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/textureLoad/e65916.wgsl.expected.ir.fxc.hlsl
index fd28383..334e6e8e 100644
--- a/test/tint/builtins/gen/literal/textureLoad/e65916.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureLoad/e65916.wgsl.expected.ir.fxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureLoad
+..\..\src\tint\utils\containers\slice.h:216 internal compiler error: TINT_ASSERT(i < Length())
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/literal/textureLoad/e893d7.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/textureLoad/e893d7.wgsl.expected.ir.dxc.hlsl
index fd28383..334e6e8e 100644
--- a/test/tint/builtins/gen/literal/textureLoad/e893d7.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureLoad/e893d7.wgsl.expected.ir.dxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureLoad
+..\..\src\tint\utils\containers\slice.h:216 internal compiler error: TINT_ASSERT(i < Length())
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/literal/textureLoad/e893d7.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/textureLoad/e893d7.wgsl.expected.ir.fxc.hlsl
index fd28383..334e6e8e 100644
--- a/test/tint/builtins/gen/literal/textureLoad/e893d7.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureLoad/e893d7.wgsl.expected.ir.fxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureLoad
+..\..\src\tint\utils\containers\slice.h:216 internal compiler error: TINT_ASSERT(i < Length())
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/literal/textureLoad/e92dd0.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/textureLoad/e92dd0.wgsl.expected.ir.dxc.hlsl
index fd28383..334e6e8e 100644
--- a/test/tint/builtins/gen/literal/textureLoad/e92dd0.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureLoad/e92dd0.wgsl.expected.ir.dxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureLoad
+..\..\src\tint\utils\containers\slice.h:216 internal compiler error: TINT_ASSERT(i < Length())
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/literal/textureLoad/e92dd0.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/textureLoad/e92dd0.wgsl.expected.ir.fxc.hlsl
index fd28383..334e6e8e 100644
--- a/test/tint/builtins/gen/literal/textureLoad/e92dd0.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureLoad/e92dd0.wgsl.expected.ir.fxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureLoad
+..\..\src\tint\utils\containers\slice.h:216 internal compiler error: TINT_ASSERT(i < Length())
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/literal/textureLoad/e9eb65.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/textureLoad/e9eb65.wgsl.expected.ir.dxc.hlsl
index fd28383..334e6e8e 100644
--- a/test/tint/builtins/gen/literal/textureLoad/e9eb65.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureLoad/e9eb65.wgsl.expected.ir.dxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureLoad
+..\..\src\tint\utils\containers\slice.h:216 internal compiler error: TINT_ASSERT(i < Length())
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/literal/textureLoad/e9eb65.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/textureLoad/e9eb65.wgsl.expected.ir.fxc.hlsl
index fd28383..334e6e8e 100644
--- a/test/tint/builtins/gen/literal/textureLoad/e9eb65.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureLoad/e9eb65.wgsl.expected.ir.fxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureLoad
+..\..\src\tint\utils\containers\slice.h:216 internal compiler error: TINT_ASSERT(i < Length())
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/literal/textureLoad/ea2abd.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/textureLoad/ea2abd.wgsl.expected.ir.dxc.hlsl
index fd28383..334e6e8e 100644
--- a/test/tint/builtins/gen/literal/textureLoad/ea2abd.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureLoad/ea2abd.wgsl.expected.ir.dxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureLoad
+..\..\src\tint\utils\containers\slice.h:216 internal compiler error: TINT_ASSERT(i < Length())
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/literal/textureLoad/ea2abd.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/textureLoad/ea2abd.wgsl.expected.ir.fxc.hlsl
index fd28383..334e6e8e 100644
--- a/test/tint/builtins/gen/literal/textureLoad/ea2abd.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureLoad/ea2abd.wgsl.expected.ir.fxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureLoad
+..\..\src\tint\utils\containers\slice.h:216 internal compiler error: TINT_ASSERT(i < Length())
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/literal/textureLoad/eb573b.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/textureLoad/eb573b.wgsl.expected.ir.dxc.hlsl
index fd28383..334e6e8e 100644
--- a/test/tint/builtins/gen/literal/textureLoad/eb573b.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureLoad/eb573b.wgsl.expected.ir.dxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureLoad
+..\..\src\tint\utils\containers\slice.h:216 internal compiler error: TINT_ASSERT(i < Length())
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/literal/textureLoad/eb573b.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/textureLoad/eb573b.wgsl.expected.ir.fxc.hlsl
index fd28383..334e6e8e 100644
--- a/test/tint/builtins/gen/literal/textureLoad/eb573b.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureLoad/eb573b.wgsl.expected.ir.fxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureLoad
+..\..\src\tint\utils\containers\slice.h:216 internal compiler error: TINT_ASSERT(i < Length())
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/literal/textureLoad/ebfb92.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/textureLoad/ebfb92.wgsl.expected.ir.dxc.hlsl
index fd28383..ee4bad4 100644
--- a/test/tint/builtins/gen/literal/textureLoad/ebfb92.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureLoad/ebfb92.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,45 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  uint4 prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureLoad
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation uint4 VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+Texture2D<uint4> arg_0 : register(t0, space1);
+uint4 textureLoad_ebfb92() {
+  Texture2D<uint4> v = arg_0;
+  int2 v_1 = int2((1).xx);
+  uint4 res = uint4(v.Load(int3(v_1, int(1u))));
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store4(0u, textureLoad_ebfb92());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store4(0u, textureLoad_ebfb92());
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = textureLoad_ebfb92();
+  VertexOutput v_2 = tint_symbol;
+  return v_2;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_3 = vertex_main_inner();
+  VertexOutput v_4 = v_3;
+  VertexOutput v_5 = v_3;
+  vertex_main_outputs v_6 = {v_5.prevent_dce, v_4.pos};
+  return v_6;
+}
+
diff --git a/test/tint/builtins/gen/literal/textureLoad/ebfb92.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/textureLoad/ebfb92.wgsl.expected.ir.fxc.hlsl
index fd28383..ee4bad4 100644
--- a/test/tint/builtins/gen/literal/textureLoad/ebfb92.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureLoad/ebfb92.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,45 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  uint4 prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureLoad
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation uint4 VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+Texture2D<uint4> arg_0 : register(t0, space1);
+uint4 textureLoad_ebfb92() {
+  Texture2D<uint4> v = arg_0;
+  int2 v_1 = int2((1).xx);
+  uint4 res = uint4(v.Load(int3(v_1, int(1u))));
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store4(0u, textureLoad_ebfb92());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store4(0u, textureLoad_ebfb92());
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = textureLoad_ebfb92();
+  VertexOutput v_2 = tint_symbol;
+  return v_2;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_3 = vertex_main_inner();
+  VertexOutput v_4 = v_3;
+  VertexOutput v_5 = v_3;
+  vertex_main_outputs v_6 = {v_5.prevent_dce, v_4.pos};
+  return v_6;
+}
+
diff --git a/test/tint/builtins/gen/literal/textureLoad/ecc823.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/textureLoad/ecc823.wgsl.expected.ir.dxc.hlsl
index fd28383..334e6e8e 100644
--- a/test/tint/builtins/gen/literal/textureLoad/ecc823.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureLoad/ecc823.wgsl.expected.ir.dxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureLoad
+..\..\src\tint\utils\containers\slice.h:216 internal compiler error: TINT_ASSERT(i < Length())
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/literal/textureLoad/ecc823.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/textureLoad/ecc823.wgsl.expected.ir.fxc.hlsl
index fd28383..334e6e8e 100644
--- a/test/tint/builtins/gen/literal/textureLoad/ecc823.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureLoad/ecc823.wgsl.expected.ir.fxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureLoad
+..\..\src\tint\utils\containers\slice.h:216 internal compiler error: TINT_ASSERT(i < Length())
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/literal/textureLoad/ed55a8.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/textureLoad/ed55a8.wgsl.expected.ir.dxc.hlsl
index fd28383..334e6e8e 100644
--- a/test/tint/builtins/gen/literal/textureLoad/ed55a8.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureLoad/ed55a8.wgsl.expected.ir.dxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureLoad
+..\..\src\tint\utils\containers\slice.h:216 internal compiler error: TINT_ASSERT(i < Length())
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/literal/textureLoad/ed55a8.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/textureLoad/ed55a8.wgsl.expected.ir.fxc.hlsl
index fd28383..334e6e8e 100644
--- a/test/tint/builtins/gen/literal/textureLoad/ed55a8.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureLoad/ed55a8.wgsl.expected.ir.fxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureLoad
+..\..\src\tint\utils\containers\slice.h:216 internal compiler error: TINT_ASSERT(i < Length())
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/literal/textureLoad/ee33c5.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/textureLoad/ee33c5.wgsl.expected.ir.dxc.hlsl
index fd28383..334e6e8e 100644
--- a/test/tint/builtins/gen/literal/textureLoad/ee33c5.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureLoad/ee33c5.wgsl.expected.ir.dxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureLoad
+..\..\src\tint\utils\containers\slice.h:216 internal compiler error: TINT_ASSERT(i < Length())
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/literal/textureLoad/ee33c5.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/textureLoad/ee33c5.wgsl.expected.ir.fxc.hlsl
index fd28383..334e6e8e 100644
--- a/test/tint/builtins/gen/literal/textureLoad/ee33c5.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureLoad/ee33c5.wgsl.expected.ir.fxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureLoad
+..\..\src\tint\utils\containers\slice.h:216 internal compiler error: TINT_ASSERT(i < Length())
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/literal/textureLoad/eecf7d.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/textureLoad/eecf7d.wgsl.expected.ir.dxc.hlsl
index fd28383..334e6e8e 100644
--- a/test/tint/builtins/gen/literal/textureLoad/eecf7d.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureLoad/eecf7d.wgsl.expected.ir.dxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureLoad
+..\..\src\tint\utils\containers\slice.h:216 internal compiler error: TINT_ASSERT(i < Length())
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/literal/textureLoad/eecf7d.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/textureLoad/eecf7d.wgsl.expected.ir.fxc.hlsl
index fd28383..334e6e8e 100644
--- a/test/tint/builtins/gen/literal/textureLoad/eecf7d.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureLoad/eecf7d.wgsl.expected.ir.fxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureLoad
+..\..\src\tint\utils\containers\slice.h:216 internal compiler error: TINT_ASSERT(i < Length())
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/literal/textureLoad/ef2ec3.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/textureLoad/ef2ec3.wgsl.expected.ir.dxc.hlsl
index fd28383..334e6e8e 100644
--- a/test/tint/builtins/gen/literal/textureLoad/ef2ec3.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureLoad/ef2ec3.wgsl.expected.ir.dxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureLoad
+..\..\src\tint\utils\containers\slice.h:216 internal compiler error: TINT_ASSERT(i < Length())
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/literal/textureLoad/ef2ec3.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/textureLoad/ef2ec3.wgsl.expected.ir.fxc.hlsl
index fd28383..334e6e8e 100644
--- a/test/tint/builtins/gen/literal/textureLoad/ef2ec3.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureLoad/ef2ec3.wgsl.expected.ir.fxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureLoad
+..\..\src\tint\utils\containers\slice.h:216 internal compiler error: TINT_ASSERT(i < Length())
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/literal/textureLoad/ef5405.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/textureLoad/ef5405.wgsl.expected.ir.dxc.hlsl
index fd28383..334e6e8e 100644
--- a/test/tint/builtins/gen/literal/textureLoad/ef5405.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureLoad/ef5405.wgsl.expected.ir.dxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureLoad
+..\..\src\tint\utils\containers\slice.h:216 internal compiler error: TINT_ASSERT(i < Length())
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/literal/textureLoad/ef5405.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/textureLoad/ef5405.wgsl.expected.ir.fxc.hlsl
index fd28383..334e6e8e 100644
--- a/test/tint/builtins/gen/literal/textureLoad/ef5405.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureLoad/ef5405.wgsl.expected.ir.fxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureLoad
+..\..\src\tint\utils\containers\slice.h:216 internal compiler error: TINT_ASSERT(i < Length())
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/literal/textureLoad/efa787.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/textureLoad/efa787.wgsl.expected.ir.dxc.hlsl
index fd28383..334e6e8e 100644
--- a/test/tint/builtins/gen/literal/textureLoad/efa787.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureLoad/efa787.wgsl.expected.ir.dxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureLoad
+..\..\src\tint\utils\containers\slice.h:216 internal compiler error: TINT_ASSERT(i < Length())
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/literal/textureLoad/efa787.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/textureLoad/efa787.wgsl.expected.ir.fxc.hlsl
index fd28383..334e6e8e 100644
--- a/test/tint/builtins/gen/literal/textureLoad/efa787.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureLoad/efa787.wgsl.expected.ir.fxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureLoad
+..\..\src\tint\utils\containers\slice.h:216 internal compiler error: TINT_ASSERT(i < Length())
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/literal/textureLoad/f0514a.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/textureLoad/f0514a.wgsl.expected.ir.dxc.hlsl
index fd28383..334e6e8e 100644
--- a/test/tint/builtins/gen/literal/textureLoad/f0514a.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureLoad/f0514a.wgsl.expected.ir.dxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureLoad
+..\..\src\tint\utils\containers\slice.h:216 internal compiler error: TINT_ASSERT(i < Length())
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/literal/textureLoad/f0514a.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/textureLoad/f0514a.wgsl.expected.ir.fxc.hlsl
index fd28383..334e6e8e 100644
--- a/test/tint/builtins/gen/literal/textureLoad/f0514a.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureLoad/f0514a.wgsl.expected.ir.fxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureLoad
+..\..\src\tint\utils\containers\slice.h:216 internal compiler error: TINT_ASSERT(i < Length())
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/literal/textureLoad/f06b69.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/textureLoad/f06b69.wgsl.expected.ir.dxc.hlsl
index fd28383..334e6e8e 100644
--- a/test/tint/builtins/gen/literal/textureLoad/f06b69.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureLoad/f06b69.wgsl.expected.ir.dxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureLoad
+..\..\src\tint\utils\containers\slice.h:216 internal compiler error: TINT_ASSERT(i < Length())
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/literal/textureLoad/f06b69.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/textureLoad/f06b69.wgsl.expected.ir.fxc.hlsl
index fd28383..334e6e8e 100644
--- a/test/tint/builtins/gen/literal/textureLoad/f06b69.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureLoad/f06b69.wgsl.expected.ir.fxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureLoad
+..\..\src\tint\utils\containers\slice.h:216 internal compiler error: TINT_ASSERT(i < Length())
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/literal/textureLoad/f0abad.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/textureLoad/f0abad.wgsl.expected.ir.dxc.hlsl
index fd28383..6571ab5 100644
--- a/test/tint/builtins/gen/literal/textureLoad/f0abad.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureLoad/f0abad.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,45 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  float4 prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureLoad
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation float4 VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+Texture2DMS<float4> arg_0 : register(t0, space1);
+float4 textureLoad_f0abad() {
+  Texture2DMS<float4> v = arg_0;
+  int2 v_1 = int2((1u).xx);
+  float4 res = float4(v.Load(v_1, int(1)));
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store4(0u, asuint(textureLoad_f0abad()));
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store4(0u, asuint(textureLoad_f0abad()));
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = textureLoad_f0abad();
+  VertexOutput v_2 = tint_symbol;
+  return v_2;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_3 = vertex_main_inner();
+  VertexOutput v_4 = v_3;
+  VertexOutput v_5 = v_3;
+  vertex_main_outputs v_6 = {v_5.prevent_dce, v_4.pos};
+  return v_6;
+}
+
diff --git a/test/tint/builtins/gen/literal/textureLoad/f0abad.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/textureLoad/f0abad.wgsl.expected.ir.fxc.hlsl
index fd28383..6571ab5 100644
--- a/test/tint/builtins/gen/literal/textureLoad/f0abad.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureLoad/f0abad.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,45 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  float4 prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureLoad
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation float4 VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+Texture2DMS<float4> arg_0 : register(t0, space1);
+float4 textureLoad_f0abad() {
+  Texture2DMS<float4> v = arg_0;
+  int2 v_1 = int2((1u).xx);
+  float4 res = float4(v.Load(v_1, int(1)));
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store4(0u, asuint(textureLoad_f0abad()));
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store4(0u, asuint(textureLoad_f0abad()));
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = textureLoad_f0abad();
+  VertexOutput v_2 = tint_symbol;
+  return v_2;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_3 = vertex_main_inner();
+  VertexOutput v_4 = v_3;
+  VertexOutput v_5 = v_3;
+  vertex_main_outputs v_6 = {v_5.prevent_dce, v_4.pos};
+  return v_6;
+}
+
diff --git a/test/tint/builtins/gen/literal/textureLoad/f1c549.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/textureLoad/f1c549.wgsl.expected.ir.dxc.hlsl
index fd28383..334e6e8e 100644
--- a/test/tint/builtins/gen/literal/textureLoad/f1c549.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureLoad/f1c549.wgsl.expected.ir.dxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureLoad
+..\..\src\tint\utils\containers\slice.h:216 internal compiler error: TINT_ASSERT(i < Length())
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/literal/textureLoad/f1c549.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/textureLoad/f1c549.wgsl.expected.ir.fxc.hlsl
index fd28383..334e6e8e 100644
--- a/test/tint/builtins/gen/literal/textureLoad/f1c549.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureLoad/f1c549.wgsl.expected.ir.fxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureLoad
+..\..\src\tint\utils\containers\slice.h:216 internal compiler error: TINT_ASSERT(i < Length())
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/literal/textureLoad/f2a7ff.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/textureLoad/f2a7ff.wgsl.expected.ir.dxc.hlsl
index fd28383..334e6e8e 100644
--- a/test/tint/builtins/gen/literal/textureLoad/f2a7ff.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureLoad/f2a7ff.wgsl.expected.ir.dxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureLoad
+..\..\src\tint\utils\containers\slice.h:216 internal compiler error: TINT_ASSERT(i < Length())
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/literal/textureLoad/f2a7ff.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/textureLoad/f2a7ff.wgsl.expected.ir.fxc.hlsl
index fd28383..334e6e8e 100644
--- a/test/tint/builtins/gen/literal/textureLoad/f2a7ff.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureLoad/f2a7ff.wgsl.expected.ir.fxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureLoad
+..\..\src\tint\utils\containers\slice.h:216 internal compiler error: TINT_ASSERT(i < Length())
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/literal/textureLoad/f2bdd4.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/textureLoad/f2bdd4.wgsl.expected.ir.dxc.hlsl
index fd28383..334e6e8e 100644
--- a/test/tint/builtins/gen/literal/textureLoad/f2bdd4.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureLoad/f2bdd4.wgsl.expected.ir.dxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureLoad
+..\..\src\tint\utils\containers\slice.h:216 internal compiler error: TINT_ASSERT(i < Length())
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/literal/textureLoad/f2bdd4.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/textureLoad/f2bdd4.wgsl.expected.ir.fxc.hlsl
index fd28383..334e6e8e 100644
--- a/test/tint/builtins/gen/literal/textureLoad/f2bdd4.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureLoad/f2bdd4.wgsl.expected.ir.fxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureLoad
+..\..\src\tint\utils\containers\slice.h:216 internal compiler error: TINT_ASSERT(i < Length())
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/literal/textureLoad/f2c311.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/textureLoad/f2c311.wgsl.expected.ir.dxc.hlsl
index fd28383..334e6e8e 100644
--- a/test/tint/builtins/gen/literal/textureLoad/f2c311.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureLoad/f2c311.wgsl.expected.ir.dxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureLoad
+..\..\src\tint\utils\containers\slice.h:216 internal compiler error: TINT_ASSERT(i < Length())
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/literal/textureLoad/f2c311.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/textureLoad/f2c311.wgsl.expected.ir.fxc.hlsl
index fd28383..334e6e8e 100644
--- a/test/tint/builtins/gen/literal/textureLoad/f2c311.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureLoad/f2c311.wgsl.expected.ir.fxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureLoad
+..\..\src\tint\utils\containers\slice.h:216 internal compiler error: TINT_ASSERT(i < Length())
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/literal/textureLoad/f348d9.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/textureLoad/f348d9.wgsl.expected.ir.dxc.hlsl
index fd28383..0ebb416 100644
--- a/test/tint/builtins/gen/literal/textureLoad/f348d9.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureLoad/f348d9.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,46 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  float4 prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureLoad
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation float4 VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+Texture2DArray<float4> arg_0 : register(t0, space1);
+float4 textureLoad_f348d9() {
+  Texture2DArray<float4> v = arg_0;
+  int2 v_1 = int2((1u).xx);
+  int v_2 = int(1u);
+  float4 res = float4(v.Load(int4(v_1, v_2, int(1))));
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store4(0u, asuint(textureLoad_f348d9()));
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store4(0u, asuint(textureLoad_f348d9()));
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = textureLoad_f348d9();
+  VertexOutput v_3 = tint_symbol;
+  return v_3;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_4 = vertex_main_inner();
+  VertexOutput v_5 = v_4;
+  VertexOutput v_6 = v_4;
+  vertex_main_outputs v_7 = {v_6.prevent_dce, v_5.pos};
+  return v_7;
+}
+
diff --git a/test/tint/builtins/gen/literal/textureLoad/f348d9.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/textureLoad/f348d9.wgsl.expected.ir.fxc.hlsl
index fd28383..0ebb416 100644
--- a/test/tint/builtins/gen/literal/textureLoad/f348d9.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureLoad/f348d9.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,46 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  float4 prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureLoad
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation float4 VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+Texture2DArray<float4> arg_0 : register(t0, space1);
+float4 textureLoad_f348d9() {
+  Texture2DArray<float4> v = arg_0;
+  int2 v_1 = int2((1u).xx);
+  int v_2 = int(1u);
+  float4 res = float4(v.Load(int4(v_1, v_2, int(1))));
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store4(0u, asuint(textureLoad_f348d9()));
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store4(0u, asuint(textureLoad_f348d9()));
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = textureLoad_f348d9();
+  VertexOutput v_3 = tint_symbol;
+  return v_3;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_4 = vertex_main_inner();
+  VertexOutput v_5 = v_4;
+  VertexOutput v_6 = v_4;
+  vertex_main_outputs v_7 = {v_6.prevent_dce, v_5.pos};
+  return v_7;
+}
+
diff --git a/test/tint/builtins/gen/literal/textureLoad/f35ac7.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/textureLoad/f35ac7.wgsl.expected.ir.dxc.hlsl
index fd28383..334e6e8e 100644
--- a/test/tint/builtins/gen/literal/textureLoad/f35ac7.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureLoad/f35ac7.wgsl.expected.ir.dxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureLoad
+..\..\src\tint\utils\containers\slice.h:216 internal compiler error: TINT_ASSERT(i < Length())
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/literal/textureLoad/f35ac7.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/textureLoad/f35ac7.wgsl.expected.ir.fxc.hlsl
index fd28383..334e6e8e 100644
--- a/test/tint/builtins/gen/literal/textureLoad/f35ac7.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureLoad/f35ac7.wgsl.expected.ir.fxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureLoad
+..\..\src\tint\utils\containers\slice.h:216 internal compiler error: TINT_ASSERT(i < Length())
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/literal/textureLoad/f379e2.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/textureLoad/f379e2.wgsl.expected.ir.dxc.hlsl
index fd28383..334e6e8e 100644
--- a/test/tint/builtins/gen/literal/textureLoad/f379e2.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureLoad/f379e2.wgsl.expected.ir.dxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureLoad
+..\..\src\tint\utils\containers\slice.h:216 internal compiler error: TINT_ASSERT(i < Length())
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/literal/textureLoad/f379e2.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/textureLoad/f379e2.wgsl.expected.ir.fxc.hlsl
index fd28383..334e6e8e 100644
--- a/test/tint/builtins/gen/literal/textureLoad/f379e2.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureLoad/f379e2.wgsl.expected.ir.fxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureLoad
+..\..\src\tint\utils\containers\slice.h:216 internal compiler error: TINT_ASSERT(i < Length())
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/literal/textureLoad/f56e6f.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/textureLoad/f56e6f.wgsl.expected.ir.dxc.hlsl
index fd28383..334e6e8e 100644
--- a/test/tint/builtins/gen/literal/textureLoad/f56e6f.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureLoad/f56e6f.wgsl.expected.ir.dxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureLoad
+..\..\src\tint\utils\containers\slice.h:216 internal compiler error: TINT_ASSERT(i < Length())
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/literal/textureLoad/f56e6f.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/textureLoad/f56e6f.wgsl.expected.ir.fxc.hlsl
index fd28383..334e6e8e 100644
--- a/test/tint/builtins/gen/literal/textureLoad/f56e6f.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureLoad/f56e6f.wgsl.expected.ir.fxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureLoad
+..\..\src\tint\utils\containers\slice.h:216 internal compiler error: TINT_ASSERT(i < Length())
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/literal/textureLoad/f5aee2.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/textureLoad/f5aee2.wgsl.expected.ir.dxc.hlsl
index fd28383..334e6e8e 100644
--- a/test/tint/builtins/gen/literal/textureLoad/f5aee2.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureLoad/f5aee2.wgsl.expected.ir.dxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureLoad
+..\..\src\tint\utils\containers\slice.h:216 internal compiler error: TINT_ASSERT(i < Length())
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/literal/textureLoad/f5aee2.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/textureLoad/f5aee2.wgsl.expected.ir.fxc.hlsl
index fd28383..334e6e8e 100644
--- a/test/tint/builtins/gen/literal/textureLoad/f5aee2.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureLoad/f5aee2.wgsl.expected.ir.fxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureLoad
+..\..\src\tint\utils\containers\slice.h:216 internal compiler error: TINT_ASSERT(i < Length())
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/literal/textureLoad/f5fbc6.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/textureLoad/f5fbc6.wgsl.expected.ir.dxc.hlsl
index fd28383..334e6e8e 100644
--- a/test/tint/builtins/gen/literal/textureLoad/f5fbc6.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureLoad/f5fbc6.wgsl.expected.ir.dxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureLoad
+..\..\src\tint\utils\containers\slice.h:216 internal compiler error: TINT_ASSERT(i < Length())
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/literal/textureLoad/f5fbc6.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/textureLoad/f5fbc6.wgsl.expected.ir.fxc.hlsl
index fd28383..334e6e8e 100644
--- a/test/tint/builtins/gen/literal/textureLoad/f5fbc6.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureLoad/f5fbc6.wgsl.expected.ir.fxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureLoad
+..\..\src\tint\utils\containers\slice.h:216 internal compiler error: TINT_ASSERT(i < Length())
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/literal/textureLoad/f74bd8.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/textureLoad/f74bd8.wgsl.expected.ir.dxc.hlsl
index fd28383..334e6e8e 100644
--- a/test/tint/builtins/gen/literal/textureLoad/f74bd8.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureLoad/f74bd8.wgsl.expected.ir.dxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureLoad
+..\..\src\tint\utils\containers\slice.h:216 internal compiler error: TINT_ASSERT(i < Length())
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/literal/textureLoad/f74bd8.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/textureLoad/f74bd8.wgsl.expected.ir.fxc.hlsl
index fd28383..334e6e8e 100644
--- a/test/tint/builtins/gen/literal/textureLoad/f74bd8.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureLoad/f74bd8.wgsl.expected.ir.fxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureLoad
+..\..\src\tint\utils\containers\slice.h:216 internal compiler error: TINT_ASSERT(i < Length())
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/literal/textureLoad/f7f3bc.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/textureLoad/f7f3bc.wgsl.expected.ir.dxc.hlsl
index fd28383..334e6e8e 100644
--- a/test/tint/builtins/gen/literal/textureLoad/f7f3bc.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureLoad/f7f3bc.wgsl.expected.ir.dxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureLoad
+..\..\src\tint\utils\containers\slice.h:216 internal compiler error: TINT_ASSERT(i < Length())
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/literal/textureLoad/f7f3bc.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/textureLoad/f7f3bc.wgsl.expected.ir.fxc.hlsl
index fd28383..334e6e8e 100644
--- a/test/tint/builtins/gen/literal/textureLoad/f7f3bc.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureLoad/f7f3bc.wgsl.expected.ir.fxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureLoad
+..\..\src\tint\utils\containers\slice.h:216 internal compiler error: TINT_ASSERT(i < Length())
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/literal/textureLoad/f7f936.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/textureLoad/f7f936.wgsl.expected.ir.dxc.hlsl
index fd28383..334e6e8e 100644
--- a/test/tint/builtins/gen/literal/textureLoad/f7f936.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureLoad/f7f936.wgsl.expected.ir.dxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureLoad
+..\..\src\tint\utils\containers\slice.h:216 internal compiler error: TINT_ASSERT(i < Length())
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/literal/textureLoad/f7f936.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/textureLoad/f7f936.wgsl.expected.ir.fxc.hlsl
index fd28383..334e6e8e 100644
--- a/test/tint/builtins/gen/literal/textureLoad/f7f936.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureLoad/f7f936.wgsl.expected.ir.fxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureLoad
+..\..\src\tint\utils\containers\slice.h:216 internal compiler error: TINT_ASSERT(i < Length())
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/literal/textureLoad/f81792.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/textureLoad/f81792.wgsl.expected.ir.dxc.hlsl
index fd28383..334e6e8e 100644
--- a/test/tint/builtins/gen/literal/textureLoad/f81792.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureLoad/f81792.wgsl.expected.ir.dxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureLoad
+..\..\src\tint\utils\containers\slice.h:216 internal compiler error: TINT_ASSERT(i < Length())
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/literal/textureLoad/f81792.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/textureLoad/f81792.wgsl.expected.ir.fxc.hlsl
index fd28383..334e6e8e 100644
--- a/test/tint/builtins/gen/literal/textureLoad/f81792.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureLoad/f81792.wgsl.expected.ir.fxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureLoad
+..\..\src\tint\utils\containers\slice.h:216 internal compiler error: TINT_ASSERT(i < Length())
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/literal/textureLoad/f82eb2.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/textureLoad/f82eb2.wgsl.expected.ir.dxc.hlsl
index fd28383..334e6e8e 100644
--- a/test/tint/builtins/gen/literal/textureLoad/f82eb2.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureLoad/f82eb2.wgsl.expected.ir.dxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureLoad
+..\..\src\tint\utils\containers\slice.h:216 internal compiler error: TINT_ASSERT(i < Length())
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/literal/textureLoad/f82eb2.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/textureLoad/f82eb2.wgsl.expected.ir.fxc.hlsl
index fd28383..334e6e8e 100644
--- a/test/tint/builtins/gen/literal/textureLoad/f82eb2.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureLoad/f82eb2.wgsl.expected.ir.fxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureLoad
+..\..\src\tint\utils\containers\slice.h:216 internal compiler error: TINT_ASSERT(i < Length())
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/literal/textureLoad/f85291.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/textureLoad/f85291.wgsl.expected.ir.dxc.hlsl
index fd28383..cca58ea 100644
--- a/test/tint/builtins/gen/literal/textureLoad/f85291.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureLoad/f85291.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,45 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  int4 prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureLoad
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation int4 VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+Texture2D<int4> arg_0 : register(t0, space1);
+int4 textureLoad_f85291() {
+  Texture2D<int4> v = arg_0;
+  int2 v_1 = int2((1).xx);
+  int4 res = int4(v.Load(int3(v_1, int(1u))));
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store4(0u, asuint(textureLoad_f85291()));
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store4(0u, asuint(textureLoad_f85291()));
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = textureLoad_f85291();
+  VertexOutput v_2 = tint_symbol;
+  return v_2;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_3 = vertex_main_inner();
+  VertexOutput v_4 = v_3;
+  VertexOutput v_5 = v_3;
+  vertex_main_outputs v_6 = {v_5.prevent_dce, v_4.pos};
+  return v_6;
+}
+
diff --git a/test/tint/builtins/gen/literal/textureLoad/f85291.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/textureLoad/f85291.wgsl.expected.ir.fxc.hlsl
index fd28383..cca58ea 100644
--- a/test/tint/builtins/gen/literal/textureLoad/f85291.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureLoad/f85291.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,45 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  int4 prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureLoad
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation int4 VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+Texture2D<int4> arg_0 : register(t0, space1);
+int4 textureLoad_f85291() {
+  Texture2D<int4> v = arg_0;
+  int2 v_1 = int2((1).xx);
+  int4 res = int4(v.Load(int3(v_1, int(1u))));
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store4(0u, asuint(textureLoad_f85291()));
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store4(0u, asuint(textureLoad_f85291()));
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = textureLoad_f85291();
+  VertexOutput v_2 = tint_symbol;
+  return v_2;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_3 = vertex_main_inner();
+  VertexOutput v_4 = v_3;
+  VertexOutput v_5 = v_3;
+  vertex_main_outputs v_6 = {v_5.prevent_dce, v_4.pos};
+  return v_6;
+}
+
diff --git a/test/tint/builtins/gen/literal/textureLoad/f8a2e8.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/textureLoad/f8a2e8.wgsl.expected.ir.dxc.hlsl
index fd28383..334e6e8e 100644
--- a/test/tint/builtins/gen/literal/textureLoad/f8a2e8.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureLoad/f8a2e8.wgsl.expected.ir.dxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureLoad
+..\..\src\tint\utils\containers\slice.h:216 internal compiler error: TINT_ASSERT(i < Length())
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/literal/textureLoad/f8a2e8.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/textureLoad/f8a2e8.wgsl.expected.ir.fxc.hlsl
index fd28383..334e6e8e 100644
--- a/test/tint/builtins/gen/literal/textureLoad/f8a2e8.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureLoad/f8a2e8.wgsl.expected.ir.fxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureLoad
+..\..\src\tint\utils\containers\slice.h:216 internal compiler error: TINT_ASSERT(i < Length())
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/literal/textureLoad/f92c2d.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/textureLoad/f92c2d.wgsl.expected.ir.dxc.hlsl
index fd28383..334e6e8e 100644
--- a/test/tint/builtins/gen/literal/textureLoad/f92c2d.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureLoad/f92c2d.wgsl.expected.ir.dxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureLoad
+..\..\src\tint\utils\containers\slice.h:216 internal compiler error: TINT_ASSERT(i < Length())
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/literal/textureLoad/f92c2d.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/textureLoad/f92c2d.wgsl.expected.ir.fxc.hlsl
index fd28383..334e6e8e 100644
--- a/test/tint/builtins/gen/literal/textureLoad/f92c2d.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureLoad/f92c2d.wgsl.expected.ir.fxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureLoad
+..\..\src\tint\utils\containers\slice.h:216 internal compiler error: TINT_ASSERT(i < Length())
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/literal/textureLoad/f9eaaf.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/textureLoad/f9eaaf.wgsl.expected.ir.dxc.hlsl
index fd28383..334e6e8e 100644
--- a/test/tint/builtins/gen/literal/textureLoad/f9eaaf.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureLoad/f9eaaf.wgsl.expected.ir.dxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureLoad
+..\..\src\tint\utils\containers\slice.h:216 internal compiler error: TINT_ASSERT(i < Length())
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/literal/textureLoad/f9eaaf.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/textureLoad/f9eaaf.wgsl.expected.ir.fxc.hlsl
index fd28383..334e6e8e 100644
--- a/test/tint/builtins/gen/literal/textureLoad/f9eaaf.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureLoad/f9eaaf.wgsl.expected.ir.fxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureLoad
+..\..\src\tint\utils\containers\slice.h:216 internal compiler error: TINT_ASSERT(i < Length())
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/literal/textureLoad/fc47ff.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/textureLoad/fc47ff.wgsl.expected.ir.dxc.hlsl
index fd28383..334e6e8e 100644
--- a/test/tint/builtins/gen/literal/textureLoad/fc47ff.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureLoad/fc47ff.wgsl.expected.ir.dxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureLoad
+..\..\src\tint\utils\containers\slice.h:216 internal compiler error: TINT_ASSERT(i < Length())
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/literal/textureLoad/fc47ff.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/textureLoad/fc47ff.wgsl.expected.ir.fxc.hlsl
index fd28383..334e6e8e 100644
--- a/test/tint/builtins/gen/literal/textureLoad/fc47ff.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureLoad/fc47ff.wgsl.expected.ir.fxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureLoad
+..\..\src\tint\utils\containers\slice.h:216 internal compiler error: TINT_ASSERT(i < Length())
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/literal/textureLoad/fc6d36.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/textureLoad/fc6d36.wgsl.expected.ir.dxc.hlsl
index fd28383..334e6e8e 100644
--- a/test/tint/builtins/gen/literal/textureLoad/fc6d36.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureLoad/fc6d36.wgsl.expected.ir.dxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureLoad
+..\..\src\tint\utils\containers\slice.h:216 internal compiler error: TINT_ASSERT(i < Length())
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/literal/textureLoad/fc6d36.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/textureLoad/fc6d36.wgsl.expected.ir.fxc.hlsl
index fd28383..334e6e8e 100644
--- a/test/tint/builtins/gen/literal/textureLoad/fc6d36.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureLoad/fc6d36.wgsl.expected.ir.fxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureLoad
+..\..\src\tint\utils\containers\slice.h:216 internal compiler error: TINT_ASSERT(i < Length())
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/literal/textureLoad/fcd23d.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/textureLoad/fcd23d.wgsl.expected.ir.dxc.hlsl
index fd28383..f018080 100644
--- a/test/tint/builtins/gen/literal/textureLoad/fcd23d.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureLoad/fcd23d.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,45 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  float prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureLoad
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation float VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+Texture2DMS<float4> arg_0 : register(t0, space1);
+float textureLoad_fcd23d() {
+  Texture2DMS<float4> v = arg_0;
+  int2 v_1 = int2((1u).xx);
+  float res = v.Load(v_1, int(1)).x;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store(0u, asuint(textureLoad_fcd23d()));
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store(0u, asuint(textureLoad_fcd23d()));
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = textureLoad_fcd23d();
+  VertexOutput v_2 = tint_symbol;
+  return v_2;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_3 = vertex_main_inner();
+  VertexOutput v_4 = v_3;
+  VertexOutput v_5 = v_3;
+  vertex_main_outputs v_6 = {v_5.prevent_dce, v_4.pos};
+  return v_6;
+}
+
diff --git a/test/tint/builtins/gen/literal/textureLoad/fcd23d.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/textureLoad/fcd23d.wgsl.expected.ir.fxc.hlsl
index fd28383..f018080 100644
--- a/test/tint/builtins/gen/literal/textureLoad/fcd23d.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureLoad/fcd23d.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,45 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  float prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureLoad
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation float VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+Texture2DMS<float4> arg_0 : register(t0, space1);
+float textureLoad_fcd23d() {
+  Texture2DMS<float4> v = arg_0;
+  int2 v_1 = int2((1u).xx);
+  float res = v.Load(v_1, int(1)).x;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store(0u, asuint(textureLoad_fcd23d()));
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store(0u, asuint(textureLoad_fcd23d()));
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = textureLoad_fcd23d();
+  VertexOutput v_2 = tint_symbol;
+  return v_2;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_3 = vertex_main_inner();
+  VertexOutput v_4 = v_3;
+  VertexOutput v_5 = v_3;
+  vertex_main_outputs v_6 = {v_5.prevent_dce, v_4.pos};
+  return v_6;
+}
+
diff --git a/test/tint/builtins/gen/literal/textureLoad/fd6442.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/textureLoad/fd6442.wgsl.expected.ir.dxc.hlsl
index fd28383..334e6e8e 100644
--- a/test/tint/builtins/gen/literal/textureLoad/fd6442.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureLoad/fd6442.wgsl.expected.ir.dxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureLoad
+..\..\src\tint\utils\containers\slice.h:216 internal compiler error: TINT_ASSERT(i < Length())
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/literal/textureLoad/fd6442.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/textureLoad/fd6442.wgsl.expected.ir.fxc.hlsl
index fd28383..334e6e8e 100644
--- a/test/tint/builtins/gen/literal/textureLoad/fd6442.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureLoad/fd6442.wgsl.expected.ir.fxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureLoad
+..\..\src\tint\utils\containers\slice.h:216 internal compiler error: TINT_ASSERT(i < Length())
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/literal/textureLoad/fd9606.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/textureLoad/fd9606.wgsl.expected.ir.dxc.hlsl
index fd28383..334e6e8e 100644
--- a/test/tint/builtins/gen/literal/textureLoad/fd9606.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureLoad/fd9606.wgsl.expected.ir.dxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureLoad
+..\..\src\tint\utils\containers\slice.h:216 internal compiler error: TINT_ASSERT(i < Length())
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/literal/textureLoad/fd9606.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/textureLoad/fd9606.wgsl.expected.ir.fxc.hlsl
index fd28383..334e6e8e 100644
--- a/test/tint/builtins/gen/literal/textureLoad/fd9606.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureLoad/fd9606.wgsl.expected.ir.fxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureLoad
+..\..\src\tint\utils\containers\slice.h:216 internal compiler error: TINT_ASSERT(i < Length())
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/literal/textureLoad/fdebd0.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/textureLoad/fdebd0.wgsl.expected.ir.dxc.hlsl
index fd28383..334e6e8e 100644
--- a/test/tint/builtins/gen/literal/textureLoad/fdebd0.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureLoad/fdebd0.wgsl.expected.ir.dxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureLoad
+..\..\src\tint\utils\containers\slice.h:216 internal compiler error: TINT_ASSERT(i < Length())
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/literal/textureLoad/fdebd0.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/textureLoad/fdebd0.wgsl.expected.ir.fxc.hlsl
index fd28383..334e6e8e 100644
--- a/test/tint/builtins/gen/literal/textureLoad/fdebd0.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureLoad/fdebd0.wgsl.expected.ir.fxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureLoad
+..\..\src\tint\utils\containers\slice.h:216 internal compiler error: TINT_ASSERT(i < Length())
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/literal/textureLoad/fe0565.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/textureLoad/fe0565.wgsl.expected.ir.dxc.hlsl
index fd28383..d8a106b 100644
--- a/test/tint/builtins/gen/literal/textureLoad/fe0565.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureLoad/fe0565.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,45 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  uint4 prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureLoad
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation uint4 VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+Texture2DMS<uint4> arg_0 : register(t0, space1);
+uint4 textureLoad_fe0565() {
+  Texture2DMS<uint4> v = arg_0;
+  int2 v_1 = int2((1u).xx);
+  uint4 res = uint4(v.Load(v_1, int(1)));
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store4(0u, textureLoad_fe0565());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store4(0u, textureLoad_fe0565());
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = textureLoad_fe0565();
+  VertexOutput v_2 = tint_symbol;
+  return v_2;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_3 = vertex_main_inner();
+  VertexOutput v_4 = v_3;
+  VertexOutput v_5 = v_3;
+  vertex_main_outputs v_6 = {v_5.prevent_dce, v_4.pos};
+  return v_6;
+}
+
diff --git a/test/tint/builtins/gen/literal/textureLoad/fe0565.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/textureLoad/fe0565.wgsl.expected.ir.fxc.hlsl
index fd28383..d8a106b 100644
--- a/test/tint/builtins/gen/literal/textureLoad/fe0565.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureLoad/fe0565.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,45 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  uint4 prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureLoad
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation uint4 VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+Texture2DMS<uint4> arg_0 : register(t0, space1);
+uint4 textureLoad_fe0565() {
+  Texture2DMS<uint4> v = arg_0;
+  int2 v_1 = int2((1u).xx);
+  uint4 res = uint4(v.Load(v_1, int(1)));
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store4(0u, textureLoad_fe0565());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store4(0u, textureLoad_fe0565());
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = textureLoad_fe0565();
+  VertexOutput v_2 = tint_symbol;
+  return v_2;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_3 = vertex_main_inner();
+  VertexOutput v_4 = v_3;
+  VertexOutput v_5 = v_3;
+  vertex_main_outputs v_6 = {v_5.prevent_dce, v_4.pos};
+  return v_6;
+}
+
diff --git a/test/tint/builtins/gen/literal/textureLoad/fe222a.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/textureLoad/fe222a.wgsl.expected.ir.dxc.hlsl
index fd28383..334e6e8e 100644
--- a/test/tint/builtins/gen/literal/textureLoad/fe222a.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureLoad/fe222a.wgsl.expected.ir.dxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureLoad
+..\..\src\tint\utils\containers\slice.h:216 internal compiler error: TINT_ASSERT(i < Length())
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/literal/textureLoad/fe222a.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/textureLoad/fe222a.wgsl.expected.ir.fxc.hlsl
index fd28383..334e6e8e 100644
--- a/test/tint/builtins/gen/literal/textureLoad/fe222a.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureLoad/fe222a.wgsl.expected.ir.fxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureLoad
+..\..\src\tint\utils\containers\slice.h:216 internal compiler error: TINT_ASSERT(i < Length())
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/literal/textureLoad/fe2c1b.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/textureLoad/fe2c1b.wgsl.expected.ir.dxc.hlsl
index fd28383..334e6e8e 100644
--- a/test/tint/builtins/gen/literal/textureLoad/fe2c1b.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureLoad/fe2c1b.wgsl.expected.ir.dxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureLoad
+..\..\src\tint\utils\containers\slice.h:216 internal compiler error: TINT_ASSERT(i < Length())
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/literal/textureLoad/fe2c1b.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/textureLoad/fe2c1b.wgsl.expected.ir.fxc.hlsl
index fd28383..334e6e8e 100644
--- a/test/tint/builtins/gen/literal/textureLoad/fe2c1b.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureLoad/fe2c1b.wgsl.expected.ir.fxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureLoad
+..\..\src\tint\utils\containers\slice.h:216 internal compiler error: TINT_ASSERT(i < Length())
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/literal/textureLoad/feab99.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/textureLoad/feab99.wgsl.expected.ir.dxc.hlsl
index fd28383..334e6e8e 100644
--- a/test/tint/builtins/gen/literal/textureLoad/feab99.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureLoad/feab99.wgsl.expected.ir.dxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureLoad
+..\..\src\tint\utils\containers\slice.h:216 internal compiler error: TINT_ASSERT(i < Length())
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/literal/textureLoad/feab99.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/textureLoad/feab99.wgsl.expected.ir.fxc.hlsl
index fd28383..334e6e8e 100644
--- a/test/tint/builtins/gen/literal/textureLoad/feab99.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureLoad/feab99.wgsl.expected.ir.fxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureLoad
+..\..\src\tint\utils\containers\slice.h:216 internal compiler error: TINT_ASSERT(i < Length())
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/literal/textureLoad/ff1119.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/textureLoad/ff1119.wgsl.expected.ir.dxc.hlsl
index fd28383..b9694b1 100644
--- a/test/tint/builtins/gen/literal/textureLoad/ff1119.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureLoad/ff1119.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,46 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  float prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureLoad
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation float VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+Texture2DArray arg_0 : register(t0, space1);
+float textureLoad_ff1119() {
+  Texture2DArray v = arg_0;
+  int2 v_1 = int2((1).xx);
+  int v_2 = int(1);
+  float res = v.Load(int4(v_1, v_2, int(1u))).x;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store(0u, asuint(textureLoad_ff1119()));
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store(0u, asuint(textureLoad_ff1119()));
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = textureLoad_ff1119();
+  VertexOutput v_3 = tint_symbol;
+  return v_3;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_4 = vertex_main_inner();
+  VertexOutput v_5 = v_4;
+  VertexOutput v_6 = v_4;
+  vertex_main_outputs v_7 = {v_6.prevent_dce, v_5.pos};
+  return v_7;
+}
+
diff --git a/test/tint/builtins/gen/literal/textureLoad/ff1119.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/textureLoad/ff1119.wgsl.expected.ir.fxc.hlsl
index fd28383..b9694b1 100644
--- a/test/tint/builtins/gen/literal/textureLoad/ff1119.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureLoad/ff1119.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,46 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  float prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureLoad
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation float VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+Texture2DArray arg_0 : register(t0, space1);
+float textureLoad_ff1119() {
+  Texture2DArray v = arg_0;
+  int2 v_1 = int2((1).xx);
+  int v_2 = int(1);
+  float res = v.Load(int4(v_1, v_2, int(1u))).x;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store(0u, asuint(textureLoad_ff1119()));
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store(0u, asuint(textureLoad_ff1119()));
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = textureLoad_ff1119();
+  VertexOutput v_3 = tint_symbol;
+  return v_3;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_4 = vertex_main_inner();
+  VertexOutput v_5 = v_4;
+  VertexOutput v_6 = v_4;
+  vertex_main_outputs v_7 = {v_6.prevent_dce, v_5.pos};
+  return v_7;
+}
+
diff --git a/test/tint/builtins/gen/literal/textureNumLayers/014a3b.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/textureNumLayers/014a3b.wgsl.expected.ir.dxc.hlsl
index c3bb13b..2356182 100644
--- a/test/tint/builtins/gen/literal/textureNumLayers/014a3b.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureNumLayers/014a3b.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,19 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureNumLayers
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWByteAddressBuffer prevent_dce : register(u0);
+RWTexture2DArray<uint4> arg_0 : register(u0, space1);
+uint textureNumLayers_014a3b() {
+  uint3 v = (0u).xxx;
+  arg_0.GetDimensions(v[0u], v[1u], v[2u]);
+  uint res = v.z;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store(0u, textureNumLayers_014a3b());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store(0u, textureNumLayers_014a3b());
+}
+
diff --git a/test/tint/builtins/gen/literal/textureNumLayers/014a3b.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/textureNumLayers/014a3b.wgsl.expected.ir.fxc.hlsl
index c3bb13b..2356182 100644
--- a/test/tint/builtins/gen/literal/textureNumLayers/014a3b.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureNumLayers/014a3b.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,19 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureNumLayers
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWByteAddressBuffer prevent_dce : register(u0);
+RWTexture2DArray<uint4> arg_0 : register(u0, space1);
+uint textureNumLayers_014a3b() {
+  uint3 v = (0u).xxx;
+  arg_0.GetDimensions(v[0u], v[1u], v[2u]);
+  uint res = v.z;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store(0u, textureNumLayers_014a3b());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store(0u, textureNumLayers_014a3b());
+}
+
diff --git a/test/tint/builtins/gen/literal/textureNumLayers/071ebc.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/textureNumLayers/071ebc.wgsl.expected.ir.dxc.hlsl
index c3bb13b..fd30d92 100644
--- a/test/tint/builtins/gen/literal/textureNumLayers/071ebc.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureNumLayers/071ebc.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,19 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureNumLayers
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWByteAddressBuffer prevent_dce : register(u0);
+RWTexture2DArray<uint4> arg_0 : register(u0, space1);
+uint textureNumLayers_071ebc() {
+  uint3 v = (0u).xxx;
+  arg_0.GetDimensions(v[0u], v[1u], v[2u]);
+  uint res = v.z;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store(0u, textureNumLayers_071ebc());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store(0u, textureNumLayers_071ebc());
+}
+
diff --git a/test/tint/builtins/gen/literal/textureNumLayers/071ebc.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/textureNumLayers/071ebc.wgsl.expected.ir.fxc.hlsl
index c3bb13b..fd30d92 100644
--- a/test/tint/builtins/gen/literal/textureNumLayers/071ebc.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureNumLayers/071ebc.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,19 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureNumLayers
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWByteAddressBuffer prevent_dce : register(u0);
+RWTexture2DArray<uint4> arg_0 : register(u0, space1);
+uint textureNumLayers_071ebc() {
+  uint3 v = (0u).xxx;
+  arg_0.GetDimensions(v[0u], v[1u], v[2u]);
+  uint res = v.z;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store(0u, textureNumLayers_071ebc());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store(0u, textureNumLayers_071ebc());
+}
+
diff --git a/test/tint/builtins/gen/literal/textureNumLayers/0856ae.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/textureNumLayers/0856ae.wgsl.expected.ir.dxc.hlsl
index c3bb13b..35f29e8 100644
--- a/test/tint/builtins/gen/literal/textureNumLayers/0856ae.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureNumLayers/0856ae.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,19 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureNumLayers
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWByteAddressBuffer prevent_dce : register(u0);
+RWTexture2DArray<float4> arg_0 : register(u0, space1);
+uint textureNumLayers_0856ae() {
+  uint3 v = (0u).xxx;
+  arg_0.GetDimensions(v[0u], v[1u], v[2u]);
+  uint res = v.z;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store(0u, textureNumLayers_0856ae());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store(0u, textureNumLayers_0856ae());
+}
+
diff --git a/test/tint/builtins/gen/literal/textureNumLayers/0856ae.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/textureNumLayers/0856ae.wgsl.expected.ir.fxc.hlsl
index c3bb13b..35f29e8 100644
--- a/test/tint/builtins/gen/literal/textureNumLayers/0856ae.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureNumLayers/0856ae.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,19 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureNumLayers
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWByteAddressBuffer prevent_dce : register(u0);
+RWTexture2DArray<float4> arg_0 : register(u0, space1);
+uint textureNumLayers_0856ae() {
+  uint3 v = (0u).xxx;
+  arg_0.GetDimensions(v[0u], v[1u], v[2u]);
+  uint res = v.z;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store(0u, textureNumLayers_0856ae());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store(0u, textureNumLayers_0856ae());
+}
+
diff --git a/test/tint/builtins/gen/literal/textureNumLayers/0ec222.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/textureNumLayers/0ec222.wgsl.expected.ir.dxc.hlsl
index c3bb13b..10e200f 100644
--- a/test/tint/builtins/gen/literal/textureNumLayers/0ec222.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureNumLayers/0ec222.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,45 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  uint prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureNumLayers
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation uint VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+Texture2DArray<float4> arg_0 : register(t0, space1);
+uint textureNumLayers_0ec222() {
+  uint3 v = (0u).xxx;
+  arg_0.GetDimensions(v[0u], v[1u], v[2u]);
+  uint res = v.z;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store(0u, textureNumLayers_0ec222());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store(0u, textureNumLayers_0ec222());
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = textureNumLayers_0ec222();
+  VertexOutput v_1 = tint_symbol;
+  return v_1;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_2 = vertex_main_inner();
+  VertexOutput v_3 = v_2;
+  VertexOutput v_4 = v_2;
+  vertex_main_outputs v_5 = {v_4.prevent_dce, v_3.pos};
+  return v_5;
+}
+
diff --git a/test/tint/builtins/gen/literal/textureNumLayers/0ec222.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/textureNumLayers/0ec222.wgsl.expected.ir.fxc.hlsl
index c3bb13b..10e200f 100644
--- a/test/tint/builtins/gen/literal/textureNumLayers/0ec222.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureNumLayers/0ec222.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,45 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  uint prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureNumLayers
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation uint VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+Texture2DArray<float4> arg_0 : register(t0, space1);
+uint textureNumLayers_0ec222() {
+  uint3 v = (0u).xxx;
+  arg_0.GetDimensions(v[0u], v[1u], v[2u]);
+  uint res = v.z;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store(0u, textureNumLayers_0ec222());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store(0u, textureNumLayers_0ec222());
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = textureNumLayers_0ec222();
+  VertexOutput v_1 = tint_symbol;
+  return v_1;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_2 = vertex_main_inner();
+  VertexOutput v_3 = v_2;
+  VertexOutput v_4 = v_2;
+  vertex_main_outputs v_5 = {v_4.prevent_dce, v_3.pos};
+  return v_5;
+}
+
diff --git a/test/tint/builtins/gen/literal/textureNumLayers/0fe8dc.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/textureNumLayers/0fe8dc.wgsl.expected.ir.dxc.hlsl
index c3bb13b..8b349e1 100644
--- a/test/tint/builtins/gen/literal/textureNumLayers/0fe8dc.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureNumLayers/0fe8dc.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,45 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  uint prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureNumLayers
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation uint VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+Texture2DArray<float4> arg_0 : register(t0, space1);
+uint textureNumLayers_0fe8dc() {
+  uint3 v = (0u).xxx;
+  arg_0.GetDimensions(v[0u], v[1u], v[2u]);
+  uint res = v.z;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store(0u, textureNumLayers_0fe8dc());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store(0u, textureNumLayers_0fe8dc());
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = textureNumLayers_0fe8dc();
+  VertexOutput v_1 = tint_symbol;
+  return v_1;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_2 = vertex_main_inner();
+  VertexOutput v_3 = v_2;
+  VertexOutput v_4 = v_2;
+  vertex_main_outputs v_5 = {v_4.prevent_dce, v_3.pos};
+  return v_5;
+}
+
diff --git a/test/tint/builtins/gen/literal/textureNumLayers/0fe8dc.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/textureNumLayers/0fe8dc.wgsl.expected.ir.fxc.hlsl
index c3bb13b..8b349e1 100644
--- a/test/tint/builtins/gen/literal/textureNumLayers/0fe8dc.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureNumLayers/0fe8dc.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,45 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  uint prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureNumLayers
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation uint VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+Texture2DArray<float4> arg_0 : register(t0, space1);
+uint textureNumLayers_0fe8dc() {
+  uint3 v = (0u).xxx;
+  arg_0.GetDimensions(v[0u], v[1u], v[2u]);
+  uint res = v.z;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store(0u, textureNumLayers_0fe8dc());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store(0u, textureNumLayers_0fe8dc());
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = textureNumLayers_0fe8dc();
+  VertexOutput v_1 = tint_symbol;
+  return v_1;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_2 = vertex_main_inner();
+  VertexOutput v_3 = v_2;
+  VertexOutput v_4 = v_2;
+  vertex_main_outputs v_5 = {v_4.prevent_dce, v_3.pos};
+  return v_5;
+}
+
diff --git a/test/tint/builtins/gen/literal/textureNumLayers/17ccad.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/textureNumLayers/17ccad.wgsl.expected.ir.dxc.hlsl
index c3bb13b..bde263c 100644
--- a/test/tint/builtins/gen/literal/textureNumLayers/17ccad.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureNumLayers/17ccad.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,19 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureNumLayers
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWByteAddressBuffer prevent_dce : register(u0);
+RWTexture2DArray<float4> arg_0 : register(u0, space1);
+uint textureNumLayers_17ccad() {
+  uint3 v = (0u).xxx;
+  arg_0.GetDimensions(v[0u], v[1u], v[2u]);
+  uint res = v.z;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store(0u, textureNumLayers_17ccad());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store(0u, textureNumLayers_17ccad());
+}
+
diff --git a/test/tint/builtins/gen/literal/textureNumLayers/17ccad.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/textureNumLayers/17ccad.wgsl.expected.ir.fxc.hlsl
index c3bb13b..bde263c 100644
--- a/test/tint/builtins/gen/literal/textureNumLayers/17ccad.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureNumLayers/17ccad.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,19 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureNumLayers
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWByteAddressBuffer prevent_dce : register(u0);
+RWTexture2DArray<float4> arg_0 : register(u0, space1);
+uint textureNumLayers_17ccad() {
+  uint3 v = (0u).xxx;
+  arg_0.GetDimensions(v[0u], v[1u], v[2u]);
+  uint res = v.z;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store(0u, textureNumLayers_17ccad());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store(0u, textureNumLayers_17ccad());
+}
+
diff --git a/test/tint/builtins/gen/literal/textureNumLayers/1f858a.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/textureNumLayers/1f858a.wgsl.expected.ir.dxc.hlsl
index c3bb13b..dc0f0b0 100644
--- a/test/tint/builtins/gen/literal/textureNumLayers/1f858a.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureNumLayers/1f858a.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,19 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureNumLayers
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWByteAddressBuffer prevent_dce : register(u0);
+RWTexture2DArray<float4> arg_0 : register(u0, space1);
+uint textureNumLayers_1f858a() {
+  uint3 v = (0u).xxx;
+  arg_0.GetDimensions(v[0u], v[1u], v[2u]);
+  uint res = v.z;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store(0u, textureNumLayers_1f858a());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store(0u, textureNumLayers_1f858a());
+}
+
diff --git a/test/tint/builtins/gen/literal/textureNumLayers/1f858a.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/textureNumLayers/1f858a.wgsl.expected.ir.fxc.hlsl
index c3bb13b..dc0f0b0 100644
--- a/test/tint/builtins/gen/literal/textureNumLayers/1f858a.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureNumLayers/1f858a.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,19 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureNumLayers
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWByteAddressBuffer prevent_dce : register(u0);
+RWTexture2DArray<float4> arg_0 : register(u0, space1);
+uint textureNumLayers_1f858a() {
+  uint3 v = (0u).xxx;
+  arg_0.GetDimensions(v[0u], v[1u], v[2u]);
+  uint res = v.z;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store(0u, textureNumLayers_1f858a());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store(0u, textureNumLayers_1f858a());
+}
+
diff --git a/test/tint/builtins/gen/literal/textureNumLayers/24d572.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/textureNumLayers/24d572.wgsl.expected.ir.dxc.hlsl
index c3bb13b..220c2e9 100644
--- a/test/tint/builtins/gen/literal/textureNumLayers/24d572.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureNumLayers/24d572.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,19 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureNumLayers
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWByteAddressBuffer prevent_dce : register(u0);
+RWTexture2DArray<uint4> arg_0 : register(u0, space1);
+uint textureNumLayers_24d572() {
+  uint3 v = (0u).xxx;
+  arg_0.GetDimensions(v[0u], v[1u], v[2u]);
+  uint res = v.z;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store(0u, textureNumLayers_24d572());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store(0u, textureNumLayers_24d572());
+}
+
diff --git a/test/tint/builtins/gen/literal/textureNumLayers/24d572.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/textureNumLayers/24d572.wgsl.expected.ir.fxc.hlsl
index c3bb13b..220c2e9 100644
--- a/test/tint/builtins/gen/literal/textureNumLayers/24d572.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureNumLayers/24d572.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,19 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureNumLayers
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWByteAddressBuffer prevent_dce : register(u0);
+RWTexture2DArray<uint4> arg_0 : register(u0, space1);
+uint textureNumLayers_24d572() {
+  uint3 v = (0u).xxx;
+  arg_0.GetDimensions(v[0u], v[1u], v[2u]);
+  uint res = v.z;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store(0u, textureNumLayers_24d572());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store(0u, textureNumLayers_24d572());
+}
+
diff --git a/test/tint/builtins/gen/literal/textureNumLayers/26c9f9.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/textureNumLayers/26c9f9.wgsl.expected.ir.dxc.hlsl
index c3bb13b..db03b59 100644
--- a/test/tint/builtins/gen/literal/textureNumLayers/26c9f9.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureNumLayers/26c9f9.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,45 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  uint prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureNumLayers
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation uint VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+Texture2DArray<int4> arg_0 : register(t0, space1);
+uint textureNumLayers_26c9f9() {
+  uint3 v = (0u).xxx;
+  arg_0.GetDimensions(v[0u], v[1u], v[2u]);
+  uint res = v.z;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store(0u, textureNumLayers_26c9f9());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store(0u, textureNumLayers_26c9f9());
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = textureNumLayers_26c9f9();
+  VertexOutput v_1 = tint_symbol;
+  return v_1;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_2 = vertex_main_inner();
+  VertexOutput v_3 = v_2;
+  VertexOutput v_4 = v_2;
+  vertex_main_outputs v_5 = {v_4.prevent_dce, v_3.pos};
+  return v_5;
+}
+
diff --git a/test/tint/builtins/gen/literal/textureNumLayers/26c9f9.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/textureNumLayers/26c9f9.wgsl.expected.ir.fxc.hlsl
index c3bb13b..db03b59 100644
--- a/test/tint/builtins/gen/literal/textureNumLayers/26c9f9.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureNumLayers/26c9f9.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,45 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  uint prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureNumLayers
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation uint VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+Texture2DArray<int4> arg_0 : register(t0, space1);
+uint textureNumLayers_26c9f9() {
+  uint3 v = (0u).xxx;
+  arg_0.GetDimensions(v[0u], v[1u], v[2u]);
+  uint res = v.z;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store(0u, textureNumLayers_26c9f9());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store(0u, textureNumLayers_26c9f9());
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = textureNumLayers_26c9f9();
+  VertexOutput v_1 = tint_symbol;
+  return v_1;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_2 = vertex_main_inner();
+  VertexOutput v_3 = v_2;
+  VertexOutput v_4 = v_2;
+  vertex_main_outputs v_5 = {v_4.prevent_dce, v_3.pos};
+  return v_5;
+}
+
diff --git a/test/tint/builtins/gen/literal/textureNumLayers/2a48dc.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/textureNumLayers/2a48dc.wgsl.expected.ir.dxc.hlsl
index c3bb13b..fc5fbc8 100644
--- a/test/tint/builtins/gen/literal/textureNumLayers/2a48dc.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureNumLayers/2a48dc.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,19 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureNumLayers
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWByteAddressBuffer prevent_dce : register(u0);
+RWTexture2DArray<uint4> arg_0 : register(u0, space1);
+uint textureNumLayers_2a48dc() {
+  uint3 v = (0u).xxx;
+  arg_0.GetDimensions(v[0u], v[1u], v[2u]);
+  uint res = v.z;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store(0u, textureNumLayers_2a48dc());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store(0u, textureNumLayers_2a48dc());
+}
+
diff --git a/test/tint/builtins/gen/literal/textureNumLayers/2a48dc.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/textureNumLayers/2a48dc.wgsl.expected.ir.fxc.hlsl
index c3bb13b..fc5fbc8 100644
--- a/test/tint/builtins/gen/literal/textureNumLayers/2a48dc.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureNumLayers/2a48dc.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,19 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureNumLayers
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWByteAddressBuffer prevent_dce : register(u0);
+RWTexture2DArray<uint4> arg_0 : register(u0, space1);
+uint textureNumLayers_2a48dc() {
+  uint3 v = (0u).xxx;
+  arg_0.GetDimensions(v[0u], v[1u], v[2u]);
+  uint res = v.z;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store(0u, textureNumLayers_2a48dc());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store(0u, textureNumLayers_2a48dc());
+}
+
diff --git a/test/tint/builtins/gen/literal/textureNumLayers/2d95ea.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/textureNumLayers/2d95ea.wgsl.expected.ir.dxc.hlsl
index c3bb13b..1561059 100644
--- a/test/tint/builtins/gen/literal/textureNumLayers/2d95ea.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureNumLayers/2d95ea.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,45 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  uint prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureNumLayers
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation uint VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+Texture2DArray<uint4> arg_0 : register(t0, space1);
+uint textureNumLayers_2d95ea() {
+  uint3 v = (0u).xxx;
+  arg_0.GetDimensions(v[0u], v[1u], v[2u]);
+  uint res = v.z;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store(0u, textureNumLayers_2d95ea());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store(0u, textureNumLayers_2d95ea());
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = textureNumLayers_2d95ea();
+  VertexOutput v_1 = tint_symbol;
+  return v_1;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_2 = vertex_main_inner();
+  VertexOutput v_3 = v_2;
+  VertexOutput v_4 = v_2;
+  vertex_main_outputs v_5 = {v_4.prevent_dce, v_3.pos};
+  return v_5;
+}
+
diff --git a/test/tint/builtins/gen/literal/textureNumLayers/2d95ea.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/textureNumLayers/2d95ea.wgsl.expected.ir.fxc.hlsl
index c3bb13b..1561059 100644
--- a/test/tint/builtins/gen/literal/textureNumLayers/2d95ea.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureNumLayers/2d95ea.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,45 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  uint prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureNumLayers
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation uint VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+Texture2DArray<uint4> arg_0 : register(t0, space1);
+uint textureNumLayers_2d95ea() {
+  uint3 v = (0u).xxx;
+  arg_0.GetDimensions(v[0u], v[1u], v[2u]);
+  uint res = v.z;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store(0u, textureNumLayers_2d95ea());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store(0u, textureNumLayers_2d95ea());
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = textureNumLayers_2d95ea();
+  VertexOutput v_1 = tint_symbol;
+  return v_1;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_2 = vertex_main_inner();
+  VertexOutput v_3 = v_2;
+  VertexOutput v_4 = v_2;
+  vertex_main_outputs v_5 = {v_4.prevent_dce, v_3.pos};
+  return v_5;
+}
+
diff --git a/test/tint/builtins/gen/literal/textureNumLayers/327d70.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/textureNumLayers/327d70.wgsl.expected.ir.dxc.hlsl
index c3bb13b..1e8fd28 100644
--- a/test/tint/builtins/gen/literal/textureNumLayers/327d70.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureNumLayers/327d70.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,19 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureNumLayers
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWByteAddressBuffer prevent_dce : register(u0);
+RWTexture2DArray<uint4> arg_0 : register(u0, space1);
+uint textureNumLayers_327d70() {
+  uint3 v = (0u).xxx;
+  arg_0.GetDimensions(v[0u], v[1u], v[2u]);
+  uint res = v.z;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store(0u, textureNumLayers_327d70());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store(0u, textureNumLayers_327d70());
+}
+
diff --git a/test/tint/builtins/gen/literal/textureNumLayers/327d70.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/textureNumLayers/327d70.wgsl.expected.ir.fxc.hlsl
index c3bb13b..1e8fd28 100644
--- a/test/tint/builtins/gen/literal/textureNumLayers/327d70.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureNumLayers/327d70.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,19 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureNumLayers
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWByteAddressBuffer prevent_dce : register(u0);
+RWTexture2DArray<uint4> arg_0 : register(u0, space1);
+uint textureNumLayers_327d70() {
+  uint3 v = (0u).xxx;
+  arg_0.GetDimensions(v[0u], v[1u], v[2u]);
+  uint res = v.z;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store(0u, textureNumLayers_327d70());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store(0u, textureNumLayers_327d70());
+}
+
diff --git a/test/tint/builtins/gen/literal/textureNumLayers/32ca10.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/textureNumLayers/32ca10.wgsl.expected.ir.dxc.hlsl
index c3bb13b..acd79a9 100644
--- a/test/tint/builtins/gen/literal/textureNumLayers/32ca10.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureNumLayers/32ca10.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,19 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureNumLayers
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWByteAddressBuffer prevent_dce : register(u0);
+RWTexture2DArray<uint4> arg_0 : register(u0, space1);
+uint textureNumLayers_32ca10() {
+  uint3 v = (0u).xxx;
+  arg_0.GetDimensions(v[0u], v[1u], v[2u]);
+  uint res = v.z;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store(0u, textureNumLayers_32ca10());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store(0u, textureNumLayers_32ca10());
+}
+
diff --git a/test/tint/builtins/gen/literal/textureNumLayers/32ca10.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/textureNumLayers/32ca10.wgsl.expected.ir.fxc.hlsl
index c3bb13b..acd79a9 100644
--- a/test/tint/builtins/gen/literal/textureNumLayers/32ca10.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureNumLayers/32ca10.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,19 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureNumLayers
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWByteAddressBuffer prevent_dce : register(u0);
+RWTexture2DArray<uint4> arg_0 : register(u0, space1);
+uint textureNumLayers_32ca10() {
+  uint3 v = (0u).xxx;
+  arg_0.GetDimensions(v[0u], v[1u], v[2u]);
+  uint res = v.z;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store(0u, textureNumLayers_32ca10());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store(0u, textureNumLayers_32ca10());
+}
+
diff --git a/test/tint/builtins/gen/literal/textureNumLayers/3465ec.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/textureNumLayers/3465ec.wgsl.expected.ir.dxc.hlsl
index c3bb13b..781c4de 100644
--- a/test/tint/builtins/gen/literal/textureNumLayers/3465ec.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureNumLayers/3465ec.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,19 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureNumLayers
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWByteAddressBuffer prevent_dce : register(u0);
+RWTexture2DArray<float4> arg_0 : register(u0, space1);
+uint textureNumLayers_3465ec() {
+  uint3 v = (0u).xxx;
+  arg_0.GetDimensions(v[0u], v[1u], v[2u]);
+  uint res = v.z;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store(0u, textureNumLayers_3465ec());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store(0u, textureNumLayers_3465ec());
+}
+
diff --git a/test/tint/builtins/gen/literal/textureNumLayers/3465ec.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/textureNumLayers/3465ec.wgsl.expected.ir.fxc.hlsl
index c3bb13b..781c4de 100644
--- a/test/tint/builtins/gen/literal/textureNumLayers/3465ec.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureNumLayers/3465ec.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,19 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureNumLayers
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWByteAddressBuffer prevent_dce : register(u0);
+RWTexture2DArray<float4> arg_0 : register(u0, space1);
+uint textureNumLayers_3465ec() {
+  uint3 v = (0u).xxx;
+  arg_0.GetDimensions(v[0u], v[1u], v[2u]);
+  uint res = v.z;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store(0u, textureNumLayers_3465ec());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store(0u, textureNumLayers_3465ec());
+}
+
diff --git a/test/tint/builtins/gen/literal/textureNumLayers/34cefa.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/textureNumLayers/34cefa.wgsl.expected.ir.dxc.hlsl
index c3bb13b..75acae1 100644
--- a/test/tint/builtins/gen/literal/textureNumLayers/34cefa.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureNumLayers/34cefa.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,45 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  uint prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureNumLayers
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation uint VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+TextureCubeArray<float4> arg_0 : register(t0, space1);
+uint textureNumLayers_34cefa() {
+  uint3 v = (0u).xxx;
+  arg_0.GetDimensions(v[0u], v[1u], v[2u]);
+  uint res = v.z;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store(0u, textureNumLayers_34cefa());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store(0u, textureNumLayers_34cefa());
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = textureNumLayers_34cefa();
+  VertexOutput v_1 = tint_symbol;
+  return v_1;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_2 = vertex_main_inner();
+  VertexOutput v_3 = v_2;
+  VertexOutput v_4 = v_2;
+  vertex_main_outputs v_5 = {v_4.prevent_dce, v_3.pos};
+  return v_5;
+}
+
diff --git a/test/tint/builtins/gen/literal/textureNumLayers/34cefa.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/textureNumLayers/34cefa.wgsl.expected.ir.fxc.hlsl
index c3bb13b..75acae1 100644
--- a/test/tint/builtins/gen/literal/textureNumLayers/34cefa.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureNumLayers/34cefa.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,45 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  uint prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureNumLayers
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation uint VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+TextureCubeArray<float4> arg_0 : register(t0, space1);
+uint textureNumLayers_34cefa() {
+  uint3 v = (0u).xxx;
+  arg_0.GetDimensions(v[0u], v[1u], v[2u]);
+  uint res = v.z;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store(0u, textureNumLayers_34cefa());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store(0u, textureNumLayers_34cefa());
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = textureNumLayers_34cefa();
+  VertexOutput v_1 = tint_symbol;
+  return v_1;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_2 = vertex_main_inner();
+  VertexOutput v_3 = v_2;
+  VertexOutput v_4 = v_2;
+  vertex_main_outputs v_5 = {v_4.prevent_dce, v_3.pos};
+  return v_5;
+}
+
diff --git a/test/tint/builtins/gen/literal/textureNumLayers/3580ab.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/textureNumLayers/3580ab.wgsl.expected.ir.dxc.hlsl
index c3bb13b..b98557b 100644
--- a/test/tint/builtins/gen/literal/textureNumLayers/3580ab.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureNumLayers/3580ab.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,19 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureNumLayers
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWByteAddressBuffer prevent_dce : register(u0);
+RWTexture2DArray<int4> arg_0 : register(u0, space1);
+uint textureNumLayers_3580ab() {
+  uint3 v = (0u).xxx;
+  arg_0.GetDimensions(v[0u], v[1u], v[2u]);
+  uint res = v.z;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store(0u, textureNumLayers_3580ab());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store(0u, textureNumLayers_3580ab());
+}
+
diff --git a/test/tint/builtins/gen/literal/textureNumLayers/3580ab.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/textureNumLayers/3580ab.wgsl.expected.ir.fxc.hlsl
index c3bb13b..b98557b 100644
--- a/test/tint/builtins/gen/literal/textureNumLayers/3580ab.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureNumLayers/3580ab.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,19 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureNumLayers
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWByteAddressBuffer prevent_dce : register(u0);
+RWTexture2DArray<int4> arg_0 : register(u0, space1);
+uint textureNumLayers_3580ab() {
+  uint3 v = (0u).xxx;
+  arg_0.GetDimensions(v[0u], v[1u], v[2u]);
+  uint res = v.z;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store(0u, textureNumLayers_3580ab());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store(0u, textureNumLayers_3580ab());
+}
+
diff --git a/test/tint/builtins/gen/literal/textureNumLayers/379cc5.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/textureNumLayers/379cc5.wgsl.expected.ir.dxc.hlsl
index c3bb13b..02a0eea 100644
--- a/test/tint/builtins/gen/literal/textureNumLayers/379cc5.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureNumLayers/379cc5.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,45 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  uint prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureNumLayers
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation uint VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+Texture2DArray<float4> arg_0 : register(t0, space1);
+uint textureNumLayers_379cc5() {
+  uint3 v = (0u).xxx;
+  arg_0.GetDimensions(v[0u], v[1u], v[2u]);
+  uint res = v.z;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store(0u, textureNumLayers_379cc5());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store(0u, textureNumLayers_379cc5());
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = textureNumLayers_379cc5();
+  VertexOutput v_1 = tint_symbol;
+  return v_1;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_2 = vertex_main_inner();
+  VertexOutput v_3 = v_2;
+  VertexOutput v_4 = v_2;
+  vertex_main_outputs v_5 = {v_4.prevent_dce, v_3.pos};
+  return v_5;
+}
+
diff --git a/test/tint/builtins/gen/literal/textureNumLayers/379cc5.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/textureNumLayers/379cc5.wgsl.expected.ir.fxc.hlsl
index c3bb13b..02a0eea 100644
--- a/test/tint/builtins/gen/literal/textureNumLayers/379cc5.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureNumLayers/379cc5.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,45 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  uint prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureNumLayers
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation uint VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+Texture2DArray<float4> arg_0 : register(t0, space1);
+uint textureNumLayers_379cc5() {
+  uint3 v = (0u).xxx;
+  arg_0.GetDimensions(v[0u], v[1u], v[2u]);
+  uint res = v.z;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store(0u, textureNumLayers_379cc5());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store(0u, textureNumLayers_379cc5());
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = textureNumLayers_379cc5();
+  VertexOutput v_1 = tint_symbol;
+  return v_1;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_2 = vertex_main_inner();
+  VertexOutput v_3 = v_2;
+  VertexOutput v_4 = v_2;
+  vertex_main_outputs v_5 = {v_4.prevent_dce, v_3.pos};
+  return v_5;
+}
+
diff --git a/test/tint/builtins/gen/literal/textureNumLayers/37bc8a.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/textureNumLayers/37bc8a.wgsl.expected.ir.dxc.hlsl
index c3bb13b..9ffe6fe 100644
--- a/test/tint/builtins/gen/literal/textureNumLayers/37bc8a.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureNumLayers/37bc8a.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,19 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureNumLayers
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWByteAddressBuffer prevent_dce : register(u0);
+RWTexture2DArray<float4> arg_0 : register(u0, space1);
+uint textureNumLayers_37bc8a() {
+  uint3 v = (0u).xxx;
+  arg_0.GetDimensions(v[0u], v[1u], v[2u]);
+  uint res = v.z;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store(0u, textureNumLayers_37bc8a());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store(0u, textureNumLayers_37bc8a());
+}
+
diff --git a/test/tint/builtins/gen/literal/textureNumLayers/37bc8a.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/textureNumLayers/37bc8a.wgsl.expected.ir.fxc.hlsl
index c3bb13b..9ffe6fe 100644
--- a/test/tint/builtins/gen/literal/textureNumLayers/37bc8a.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureNumLayers/37bc8a.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,19 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureNumLayers
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWByteAddressBuffer prevent_dce : register(u0);
+RWTexture2DArray<float4> arg_0 : register(u0, space1);
+uint textureNumLayers_37bc8a() {
+  uint3 v = (0u).xxx;
+  arg_0.GetDimensions(v[0u], v[1u], v[2u]);
+  uint res = v.z;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store(0u, textureNumLayers_37bc8a());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store(0u, textureNumLayers_37bc8a());
+}
+
diff --git a/test/tint/builtins/gen/literal/textureNumLayers/380a60.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/textureNumLayers/380a60.wgsl.expected.ir.dxc.hlsl
index c3bb13b..a8577b6 100644
--- a/test/tint/builtins/gen/literal/textureNumLayers/380a60.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureNumLayers/380a60.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,19 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureNumLayers
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWByteAddressBuffer prevent_dce : register(u0);
+RWTexture2DArray<int4> arg_0 : register(u0, space1);
+uint textureNumLayers_380a60() {
+  uint3 v = (0u).xxx;
+  arg_0.GetDimensions(v[0u], v[1u], v[2u]);
+  uint res = v.z;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store(0u, textureNumLayers_380a60());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store(0u, textureNumLayers_380a60());
+}
+
diff --git a/test/tint/builtins/gen/literal/textureNumLayers/380a60.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/textureNumLayers/380a60.wgsl.expected.ir.fxc.hlsl
index c3bb13b..a8577b6 100644
--- a/test/tint/builtins/gen/literal/textureNumLayers/380a60.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureNumLayers/380a60.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,19 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureNumLayers
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWByteAddressBuffer prevent_dce : register(u0);
+RWTexture2DArray<int4> arg_0 : register(u0, space1);
+uint textureNumLayers_380a60() {
+  uint3 v = (0u).xxx;
+  arg_0.GetDimensions(v[0u], v[1u], v[2u]);
+  uint res = v.z;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store(0u, textureNumLayers_380a60());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store(0u, textureNumLayers_380a60());
+}
+
diff --git a/test/tint/builtins/gen/literal/textureNumLayers/3ad143.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/textureNumLayers/3ad143.wgsl.expected.ir.dxc.hlsl
index c3bb13b..7f5b1a3 100644
--- a/test/tint/builtins/gen/literal/textureNumLayers/3ad143.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureNumLayers/3ad143.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,45 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  uint prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureNumLayers
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation uint VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+Texture2DArray<int4> arg_0 : register(t0, space1);
+uint textureNumLayers_3ad143() {
+  uint3 v = (0u).xxx;
+  arg_0.GetDimensions(v[0u], v[1u], v[2u]);
+  uint res = v.z;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store(0u, textureNumLayers_3ad143());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store(0u, textureNumLayers_3ad143());
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = textureNumLayers_3ad143();
+  VertexOutput v_1 = tint_symbol;
+  return v_1;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_2 = vertex_main_inner();
+  VertexOutput v_3 = v_2;
+  VertexOutput v_4 = v_2;
+  vertex_main_outputs v_5 = {v_4.prevent_dce, v_3.pos};
+  return v_5;
+}
+
diff --git a/test/tint/builtins/gen/literal/textureNumLayers/3ad143.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/textureNumLayers/3ad143.wgsl.expected.ir.fxc.hlsl
index c3bb13b..7f5b1a3 100644
--- a/test/tint/builtins/gen/literal/textureNumLayers/3ad143.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureNumLayers/3ad143.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,45 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  uint prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureNumLayers
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation uint VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+Texture2DArray<int4> arg_0 : register(t0, space1);
+uint textureNumLayers_3ad143() {
+  uint3 v = (0u).xxx;
+  arg_0.GetDimensions(v[0u], v[1u], v[2u]);
+  uint res = v.z;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store(0u, textureNumLayers_3ad143());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store(0u, textureNumLayers_3ad143());
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = textureNumLayers_3ad143();
+  VertexOutput v_1 = tint_symbol;
+  return v_1;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_2 = vertex_main_inner();
+  VertexOutput v_3 = v_2;
+  VertexOutput v_4 = v_2;
+  vertex_main_outputs v_5 = {v_4.prevent_dce, v_3.pos};
+  return v_5;
+}
+
diff --git a/test/tint/builtins/gen/literal/textureNumLayers/3eff89.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/textureNumLayers/3eff89.wgsl.expected.ir.dxc.hlsl
index c3bb13b..1a1fcec 100644
--- a/test/tint/builtins/gen/literal/textureNumLayers/3eff89.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureNumLayers/3eff89.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,45 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  uint prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureNumLayers
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation uint VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+Texture2DArray<float4> arg_0 : register(t0, space1);
+uint textureNumLayers_3eff89() {
+  uint3 v = (0u).xxx;
+  arg_0.GetDimensions(v[0u], v[1u], v[2u]);
+  uint res = v.z;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store(0u, textureNumLayers_3eff89());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store(0u, textureNumLayers_3eff89());
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = textureNumLayers_3eff89();
+  VertexOutput v_1 = tint_symbol;
+  return v_1;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_2 = vertex_main_inner();
+  VertexOutput v_3 = v_2;
+  VertexOutput v_4 = v_2;
+  vertex_main_outputs v_5 = {v_4.prevent_dce, v_3.pos};
+  return v_5;
+}
+
diff --git a/test/tint/builtins/gen/literal/textureNumLayers/3eff89.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/textureNumLayers/3eff89.wgsl.expected.ir.fxc.hlsl
index c3bb13b..1a1fcec 100644
--- a/test/tint/builtins/gen/literal/textureNumLayers/3eff89.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureNumLayers/3eff89.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,45 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  uint prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureNumLayers
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation uint VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+Texture2DArray<float4> arg_0 : register(t0, space1);
+uint textureNumLayers_3eff89() {
+  uint3 v = (0u).xxx;
+  arg_0.GetDimensions(v[0u], v[1u], v[2u]);
+  uint res = v.z;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store(0u, textureNumLayers_3eff89());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store(0u, textureNumLayers_3eff89());
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = textureNumLayers_3eff89();
+  VertexOutput v_1 = tint_symbol;
+  return v_1;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_2 = vertex_main_inner();
+  VertexOutput v_3 = v_2;
+  VertexOutput v_4 = v_2;
+  vertex_main_outputs v_5 = {v_4.prevent_dce, v_3.pos};
+  return v_5;
+}
+
diff --git a/test/tint/builtins/gen/literal/textureNumLayers/485774.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/textureNumLayers/485774.wgsl.expected.ir.dxc.hlsl
index c3bb13b..aa558f4 100644
--- a/test/tint/builtins/gen/literal/textureNumLayers/485774.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureNumLayers/485774.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,45 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  uint prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureNumLayers
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation uint VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+Texture2DArray<float4> arg_0 : register(t0, space1);
+uint textureNumLayers_485774() {
+  uint3 v = (0u).xxx;
+  arg_0.GetDimensions(v[0u], v[1u], v[2u]);
+  uint res = v.z;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store(0u, textureNumLayers_485774());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store(0u, textureNumLayers_485774());
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = textureNumLayers_485774();
+  VertexOutput v_1 = tint_symbol;
+  return v_1;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_2 = vertex_main_inner();
+  VertexOutput v_3 = v_2;
+  VertexOutput v_4 = v_2;
+  vertex_main_outputs v_5 = {v_4.prevent_dce, v_3.pos};
+  return v_5;
+}
+
diff --git a/test/tint/builtins/gen/literal/textureNumLayers/485774.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/textureNumLayers/485774.wgsl.expected.ir.fxc.hlsl
index c3bb13b..aa558f4 100644
--- a/test/tint/builtins/gen/literal/textureNumLayers/485774.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureNumLayers/485774.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,45 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  uint prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureNumLayers
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation uint VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+Texture2DArray<float4> arg_0 : register(t0, space1);
+uint textureNumLayers_485774() {
+  uint3 v = (0u).xxx;
+  arg_0.GetDimensions(v[0u], v[1u], v[2u]);
+  uint res = v.z;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store(0u, textureNumLayers_485774());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store(0u, textureNumLayers_485774());
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = textureNumLayers_485774();
+  VertexOutput v_1 = tint_symbol;
+  return v_1;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_2 = vertex_main_inner();
+  VertexOutput v_3 = v_2;
+  VertexOutput v_4 = v_2;
+  vertex_main_outputs v_5 = {v_4.prevent_dce, v_3.pos};
+  return v_5;
+}
+
diff --git a/test/tint/builtins/gen/literal/textureNumLayers/48ef47.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/textureNumLayers/48ef47.wgsl.expected.ir.dxc.hlsl
index c3bb13b..a9c9e62 100644
--- a/test/tint/builtins/gen/literal/textureNumLayers/48ef47.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureNumLayers/48ef47.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,45 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  uint prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureNumLayers
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation uint VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+TextureCubeArray arg_0 : register(t0, space1);
+uint textureNumLayers_48ef47() {
+  uint3 v = (0u).xxx;
+  arg_0.GetDimensions(v[0u], v[1u], v[2u]);
+  uint res = v.z;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store(0u, textureNumLayers_48ef47());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store(0u, textureNumLayers_48ef47());
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = textureNumLayers_48ef47();
+  VertexOutput v_1 = tint_symbol;
+  return v_1;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_2 = vertex_main_inner();
+  VertexOutput v_3 = v_2;
+  VertexOutput v_4 = v_2;
+  vertex_main_outputs v_5 = {v_4.prevent_dce, v_3.pos};
+  return v_5;
+}
+
diff --git a/test/tint/builtins/gen/literal/textureNumLayers/48ef47.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/textureNumLayers/48ef47.wgsl.expected.ir.fxc.hlsl
index c3bb13b..a9c9e62 100644
--- a/test/tint/builtins/gen/literal/textureNumLayers/48ef47.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureNumLayers/48ef47.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,45 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  uint prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureNumLayers
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation uint VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+TextureCubeArray arg_0 : register(t0, space1);
+uint textureNumLayers_48ef47() {
+  uint3 v = (0u).xxx;
+  arg_0.GetDimensions(v[0u], v[1u], v[2u]);
+  uint res = v.z;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store(0u, textureNumLayers_48ef47());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store(0u, textureNumLayers_48ef47());
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = textureNumLayers_48ef47();
+  VertexOutput v_1 = tint_symbol;
+  return v_1;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_2 = vertex_main_inner();
+  VertexOutput v_3 = v_2;
+  VertexOutput v_4 = v_2;
+  vertex_main_outputs v_5 = {v_4.prevent_dce, v_3.pos};
+  return v_5;
+}
+
diff --git a/test/tint/builtins/gen/literal/textureNumLayers/4adaad.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/textureNumLayers/4adaad.wgsl.expected.ir.dxc.hlsl
index c3bb13b..4098e0d 100644
--- a/test/tint/builtins/gen/literal/textureNumLayers/4adaad.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureNumLayers/4adaad.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,45 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  uint prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureNumLayers
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation uint VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+Texture2DArray<int4> arg_0 : register(t0, space1);
+uint textureNumLayers_4adaad() {
+  uint3 v = (0u).xxx;
+  arg_0.GetDimensions(v[0u], v[1u], v[2u]);
+  uint res = v.z;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store(0u, textureNumLayers_4adaad());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store(0u, textureNumLayers_4adaad());
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = textureNumLayers_4adaad();
+  VertexOutput v_1 = tint_symbol;
+  return v_1;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_2 = vertex_main_inner();
+  VertexOutput v_3 = v_2;
+  VertexOutput v_4 = v_2;
+  vertex_main_outputs v_5 = {v_4.prevent_dce, v_3.pos};
+  return v_5;
+}
+
diff --git a/test/tint/builtins/gen/literal/textureNumLayers/4adaad.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/textureNumLayers/4adaad.wgsl.expected.ir.fxc.hlsl
index c3bb13b..4098e0d 100644
--- a/test/tint/builtins/gen/literal/textureNumLayers/4adaad.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureNumLayers/4adaad.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,45 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  uint prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureNumLayers
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation uint VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+Texture2DArray<int4> arg_0 : register(t0, space1);
+uint textureNumLayers_4adaad() {
+  uint3 v = (0u).xxx;
+  arg_0.GetDimensions(v[0u], v[1u], v[2u]);
+  uint res = v.z;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store(0u, textureNumLayers_4adaad());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store(0u, textureNumLayers_4adaad());
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = textureNumLayers_4adaad();
+  VertexOutput v_1 = tint_symbol;
+  return v_1;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_2 = vertex_main_inner();
+  VertexOutput v_3 = v_2;
+  VertexOutput v_4 = v_2;
+  vertex_main_outputs v_5 = {v_4.prevent_dce, v_3.pos};
+  return v_5;
+}
+
diff --git a/test/tint/builtins/gen/literal/textureNumLayers/4c4333.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/textureNumLayers/4c4333.wgsl.expected.ir.dxc.hlsl
index c3bb13b..4d02aac 100644
--- a/test/tint/builtins/gen/literal/textureNumLayers/4c4333.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureNumLayers/4c4333.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,19 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureNumLayers
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWByteAddressBuffer prevent_dce : register(u0);
+RWTexture2DArray<float4> arg_0 : register(u0, space1);
+uint textureNumLayers_4c4333() {
+  uint3 v = (0u).xxx;
+  arg_0.GetDimensions(v[0u], v[1u], v[2u]);
+  uint res = v.z;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store(0u, textureNumLayers_4c4333());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store(0u, textureNumLayers_4c4333());
+}
+
diff --git a/test/tint/builtins/gen/literal/textureNumLayers/4c4333.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/textureNumLayers/4c4333.wgsl.expected.ir.fxc.hlsl
index c3bb13b..4d02aac 100644
--- a/test/tint/builtins/gen/literal/textureNumLayers/4c4333.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureNumLayers/4c4333.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,19 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureNumLayers
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWByteAddressBuffer prevent_dce : register(u0);
+RWTexture2DArray<float4> arg_0 : register(u0, space1);
+uint textureNumLayers_4c4333() {
+  uint3 v = (0u).xxx;
+  arg_0.GetDimensions(v[0u], v[1u], v[2u]);
+  uint res = v.z;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store(0u, textureNumLayers_4c4333());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store(0u, textureNumLayers_4c4333());
+}
+
diff --git a/test/tint/builtins/gen/literal/textureNumLayers/520086.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/textureNumLayers/520086.wgsl.expected.ir.dxc.hlsl
index c3bb13b..dac4710 100644
--- a/test/tint/builtins/gen/literal/textureNumLayers/520086.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureNumLayers/520086.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,19 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureNumLayers
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWByteAddressBuffer prevent_dce : register(u0);
+RWTexture2DArray<uint4> arg_0 : register(u0, space1);
+uint textureNumLayers_520086() {
+  uint3 v = (0u).xxx;
+  arg_0.GetDimensions(v[0u], v[1u], v[2u]);
+  uint res = v.z;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store(0u, textureNumLayers_520086());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store(0u, textureNumLayers_520086());
+}
+
diff --git a/test/tint/builtins/gen/literal/textureNumLayers/520086.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/textureNumLayers/520086.wgsl.expected.ir.fxc.hlsl
index c3bb13b..dac4710 100644
--- a/test/tint/builtins/gen/literal/textureNumLayers/520086.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureNumLayers/520086.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,19 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureNumLayers
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWByteAddressBuffer prevent_dce : register(u0);
+RWTexture2DArray<uint4> arg_0 : register(u0, space1);
+uint textureNumLayers_520086() {
+  uint3 v = (0u).xxx;
+  arg_0.GetDimensions(v[0u], v[1u], v[2u]);
+  uint res = v.z;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store(0u, textureNumLayers_520086());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store(0u, textureNumLayers_520086());
+}
+
diff --git a/test/tint/builtins/gen/literal/textureNumLayers/52dfc5.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/textureNumLayers/52dfc5.wgsl.expected.ir.dxc.hlsl
index c3bb13b..8ca6026 100644
--- a/test/tint/builtins/gen/literal/textureNumLayers/52dfc5.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureNumLayers/52dfc5.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,45 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  uint prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureNumLayers
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation uint VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+Texture2DArray<int4> arg_0 : register(t0, space1);
+uint textureNumLayers_52dfc5() {
+  uint3 v = (0u).xxx;
+  arg_0.GetDimensions(v[0u], v[1u], v[2u]);
+  uint res = v.z;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store(0u, textureNumLayers_52dfc5());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store(0u, textureNumLayers_52dfc5());
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = textureNumLayers_52dfc5();
+  VertexOutput v_1 = tint_symbol;
+  return v_1;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_2 = vertex_main_inner();
+  VertexOutput v_3 = v_2;
+  VertexOutput v_4 = v_2;
+  vertex_main_outputs v_5 = {v_4.prevent_dce, v_3.pos};
+  return v_5;
+}
+
diff --git a/test/tint/builtins/gen/literal/textureNumLayers/52dfc5.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/textureNumLayers/52dfc5.wgsl.expected.ir.fxc.hlsl
index c3bb13b..8ca6026 100644
--- a/test/tint/builtins/gen/literal/textureNumLayers/52dfc5.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureNumLayers/52dfc5.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,45 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  uint prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureNumLayers
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation uint VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+Texture2DArray<int4> arg_0 : register(t0, space1);
+uint textureNumLayers_52dfc5() {
+  uint3 v = (0u).xxx;
+  arg_0.GetDimensions(v[0u], v[1u], v[2u]);
+  uint res = v.z;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store(0u, textureNumLayers_52dfc5());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store(0u, textureNumLayers_52dfc5());
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = textureNumLayers_52dfc5();
+  VertexOutput v_1 = tint_symbol;
+  return v_1;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_2 = vertex_main_inner();
+  VertexOutput v_3 = v_2;
+  VertexOutput v_4 = v_2;
+  vertex_main_outputs v_5 = {v_4.prevent_dce, v_3.pos};
+  return v_5;
+}
+
diff --git a/test/tint/builtins/gen/literal/textureNumLayers/54a654.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/textureNumLayers/54a654.wgsl.expected.ir.dxc.hlsl
index c3bb13b..549760b 100644
--- a/test/tint/builtins/gen/literal/textureNumLayers/54a654.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureNumLayers/54a654.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,19 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureNumLayers
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWByteAddressBuffer prevent_dce : register(u0);
+RWTexture2DArray<int4> arg_0 : register(u0, space1);
+uint textureNumLayers_54a654() {
+  uint3 v = (0u).xxx;
+  arg_0.GetDimensions(v[0u], v[1u], v[2u]);
+  uint res = v.z;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store(0u, textureNumLayers_54a654());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store(0u, textureNumLayers_54a654());
+}
+
diff --git a/test/tint/builtins/gen/literal/textureNumLayers/54a654.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/textureNumLayers/54a654.wgsl.expected.ir.fxc.hlsl
index c3bb13b..549760b 100644
--- a/test/tint/builtins/gen/literal/textureNumLayers/54a654.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureNumLayers/54a654.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,19 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureNumLayers
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWByteAddressBuffer prevent_dce : register(u0);
+RWTexture2DArray<int4> arg_0 : register(u0, space1);
+uint textureNumLayers_54a654() {
+  uint3 v = (0u).xxx;
+  arg_0.GetDimensions(v[0u], v[1u], v[2u]);
+  uint res = v.z;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store(0u, textureNumLayers_54a654());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store(0u, textureNumLayers_54a654());
+}
+
diff --git a/test/tint/builtins/gen/literal/textureNumLayers/555f67.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/textureNumLayers/555f67.wgsl.expected.ir.dxc.hlsl
index c3bb13b..b067afd 100644
--- a/test/tint/builtins/gen/literal/textureNumLayers/555f67.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureNumLayers/555f67.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,45 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  uint prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureNumLayers
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation uint VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+Texture2DArray<uint4> arg_0 : register(t0, space1);
+uint textureNumLayers_555f67() {
+  uint3 v = (0u).xxx;
+  arg_0.GetDimensions(v[0u], v[1u], v[2u]);
+  uint res = v.z;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store(0u, textureNumLayers_555f67());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store(0u, textureNumLayers_555f67());
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = textureNumLayers_555f67();
+  VertexOutput v_1 = tint_symbol;
+  return v_1;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_2 = vertex_main_inner();
+  VertexOutput v_3 = v_2;
+  VertexOutput v_4 = v_2;
+  vertex_main_outputs v_5 = {v_4.prevent_dce, v_3.pos};
+  return v_5;
+}
+
diff --git a/test/tint/builtins/gen/literal/textureNumLayers/555f67.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/textureNumLayers/555f67.wgsl.expected.ir.fxc.hlsl
index c3bb13b..b067afd 100644
--- a/test/tint/builtins/gen/literal/textureNumLayers/555f67.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureNumLayers/555f67.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,45 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  uint prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureNumLayers
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation uint VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+Texture2DArray<uint4> arg_0 : register(t0, space1);
+uint textureNumLayers_555f67() {
+  uint3 v = (0u).xxx;
+  arg_0.GetDimensions(v[0u], v[1u], v[2u]);
+  uint res = v.z;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store(0u, textureNumLayers_555f67());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store(0u, textureNumLayers_555f67());
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = textureNumLayers_555f67();
+  VertexOutput v_1 = tint_symbol;
+  return v_1;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_2 = vertex_main_inner();
+  VertexOutput v_3 = v_2;
+  VertexOutput v_4 = v_2;
+  vertex_main_outputs v_5 = {v_4.prevent_dce, v_3.pos};
+  return v_5;
+}
+
diff --git a/test/tint/builtins/gen/literal/textureNumLayers/59cc27.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/textureNumLayers/59cc27.wgsl.expected.ir.dxc.hlsl
index c3bb13b..fb7144a 100644
--- a/test/tint/builtins/gen/literal/textureNumLayers/59cc27.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureNumLayers/59cc27.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,45 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  uint prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureNumLayers
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation uint VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+Texture2DArray<float4> arg_0 : register(t0, space1);
+uint textureNumLayers_59cc27() {
+  uint3 v = (0u).xxx;
+  arg_0.GetDimensions(v[0u], v[1u], v[2u]);
+  uint res = v.z;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store(0u, textureNumLayers_59cc27());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store(0u, textureNumLayers_59cc27());
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = textureNumLayers_59cc27();
+  VertexOutput v_1 = tint_symbol;
+  return v_1;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_2 = vertex_main_inner();
+  VertexOutput v_3 = v_2;
+  VertexOutput v_4 = v_2;
+  vertex_main_outputs v_5 = {v_4.prevent_dce, v_3.pos};
+  return v_5;
+}
+
diff --git a/test/tint/builtins/gen/literal/textureNumLayers/59cc27.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/textureNumLayers/59cc27.wgsl.expected.ir.fxc.hlsl
index c3bb13b..fb7144a 100644
--- a/test/tint/builtins/gen/literal/textureNumLayers/59cc27.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureNumLayers/59cc27.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,45 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  uint prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureNumLayers
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation uint VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+Texture2DArray<float4> arg_0 : register(t0, space1);
+uint textureNumLayers_59cc27() {
+  uint3 v = (0u).xxx;
+  arg_0.GetDimensions(v[0u], v[1u], v[2u]);
+  uint res = v.z;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store(0u, textureNumLayers_59cc27());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store(0u, textureNumLayers_59cc27());
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = textureNumLayers_59cc27();
+  VertexOutput v_1 = tint_symbol;
+  return v_1;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_2 = vertex_main_inner();
+  VertexOutput v_3 = v_2;
+  VertexOutput v_4 = v_2;
+  vertex_main_outputs v_5 = {v_4.prevent_dce, v_3.pos};
+  return v_5;
+}
+
diff --git a/test/tint/builtins/gen/literal/textureNumLayers/59eb57.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/textureNumLayers/59eb57.wgsl.expected.ir.dxc.hlsl
index c3bb13b..dbebc8d 100644
--- a/test/tint/builtins/gen/literal/textureNumLayers/59eb57.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureNumLayers/59eb57.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,19 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureNumLayers
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWByteAddressBuffer prevent_dce : register(u0);
+RWTexture2DArray<int4> arg_0 : register(u0, space1);
+uint textureNumLayers_59eb57() {
+  uint3 v = (0u).xxx;
+  arg_0.GetDimensions(v[0u], v[1u], v[2u]);
+  uint res = v.z;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store(0u, textureNumLayers_59eb57());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store(0u, textureNumLayers_59eb57());
+}
+
diff --git a/test/tint/builtins/gen/literal/textureNumLayers/59eb57.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/textureNumLayers/59eb57.wgsl.expected.ir.fxc.hlsl
index c3bb13b..dbebc8d 100644
--- a/test/tint/builtins/gen/literal/textureNumLayers/59eb57.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureNumLayers/59eb57.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,19 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureNumLayers
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWByteAddressBuffer prevent_dce : register(u0);
+RWTexture2DArray<int4> arg_0 : register(u0, space1);
+uint textureNumLayers_59eb57() {
+  uint3 v = (0u).xxx;
+  arg_0.GetDimensions(v[0u], v[1u], v[2u]);
+  uint res = v.z;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store(0u, textureNumLayers_59eb57());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store(0u, textureNumLayers_59eb57());
+}
+
diff --git a/test/tint/builtins/gen/literal/textureNumLayers/5ee8f2.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/textureNumLayers/5ee8f2.wgsl.expected.ir.dxc.hlsl
index c3bb13b..b2881ed 100644
--- a/test/tint/builtins/gen/literal/textureNumLayers/5ee8f2.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureNumLayers/5ee8f2.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,19 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureNumLayers
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWByteAddressBuffer prevent_dce : register(u0);
+RWTexture2DArray<float4> arg_0 : register(u0, space1);
+uint textureNumLayers_5ee8f2() {
+  uint3 v = (0u).xxx;
+  arg_0.GetDimensions(v[0u], v[1u], v[2u]);
+  uint res = v.z;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store(0u, textureNumLayers_5ee8f2());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store(0u, textureNumLayers_5ee8f2());
+}
+
diff --git a/test/tint/builtins/gen/literal/textureNumLayers/5ee8f2.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/textureNumLayers/5ee8f2.wgsl.expected.ir.fxc.hlsl
index c3bb13b..b2881ed 100644
--- a/test/tint/builtins/gen/literal/textureNumLayers/5ee8f2.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureNumLayers/5ee8f2.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,19 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureNumLayers
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWByteAddressBuffer prevent_dce : register(u0);
+RWTexture2DArray<float4> arg_0 : register(u0, space1);
+uint textureNumLayers_5ee8f2() {
+  uint3 v = (0u).xxx;
+  arg_0.GetDimensions(v[0u], v[1u], v[2u]);
+  uint res = v.z;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store(0u, textureNumLayers_5ee8f2());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store(0u, textureNumLayers_5ee8f2());
+}
+
diff --git a/test/tint/builtins/gen/literal/textureNumLayers/5f20d1.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/textureNumLayers/5f20d1.wgsl.expected.ir.dxc.hlsl
index c3bb13b..1f4e7b4 100644
--- a/test/tint/builtins/gen/literal/textureNumLayers/5f20d1.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureNumLayers/5f20d1.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,45 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  uint prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureNumLayers
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation uint VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+Texture2DArray<uint4> arg_0 : register(t0, space1);
+uint textureNumLayers_5f20d1() {
+  uint3 v = (0u).xxx;
+  arg_0.GetDimensions(v[0u], v[1u], v[2u]);
+  uint res = v.z;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store(0u, textureNumLayers_5f20d1());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store(0u, textureNumLayers_5f20d1());
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = textureNumLayers_5f20d1();
+  VertexOutput v_1 = tint_symbol;
+  return v_1;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_2 = vertex_main_inner();
+  VertexOutput v_3 = v_2;
+  VertexOutput v_4 = v_2;
+  vertex_main_outputs v_5 = {v_4.prevent_dce, v_3.pos};
+  return v_5;
+}
+
diff --git a/test/tint/builtins/gen/literal/textureNumLayers/5f20d1.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/textureNumLayers/5f20d1.wgsl.expected.ir.fxc.hlsl
index c3bb13b..1f4e7b4 100644
--- a/test/tint/builtins/gen/literal/textureNumLayers/5f20d1.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureNumLayers/5f20d1.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,45 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  uint prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureNumLayers
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation uint VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+Texture2DArray<uint4> arg_0 : register(t0, space1);
+uint textureNumLayers_5f20d1() {
+  uint3 v = (0u).xxx;
+  arg_0.GetDimensions(v[0u], v[1u], v[2u]);
+  uint res = v.z;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store(0u, textureNumLayers_5f20d1());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store(0u, textureNumLayers_5f20d1());
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = textureNumLayers_5f20d1();
+  VertexOutput v_1 = tint_symbol;
+  return v_1;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_2 = vertex_main_inner();
+  VertexOutput v_3 = v_2;
+  VertexOutput v_4 = v_2;
+  vertex_main_outputs v_5 = {v_4.prevent_dce, v_3.pos};
+  return v_5;
+}
+
diff --git a/test/tint/builtins/gen/literal/textureNumLayers/61bd23.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/textureNumLayers/61bd23.wgsl.expected.ir.dxc.hlsl
index c3bb13b..2785da7 100644
--- a/test/tint/builtins/gen/literal/textureNumLayers/61bd23.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureNumLayers/61bd23.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,19 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureNumLayers
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWByteAddressBuffer prevent_dce : register(u0);
+RWTexture2DArray<uint4> arg_0 : register(u0, space1);
+uint textureNumLayers_61bd23() {
+  uint3 v = (0u).xxx;
+  arg_0.GetDimensions(v[0u], v[1u], v[2u]);
+  uint res = v.z;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store(0u, textureNumLayers_61bd23());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store(0u, textureNumLayers_61bd23());
+}
+
diff --git a/test/tint/builtins/gen/literal/textureNumLayers/61bd23.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/textureNumLayers/61bd23.wgsl.expected.ir.fxc.hlsl
index c3bb13b..2785da7 100644
--- a/test/tint/builtins/gen/literal/textureNumLayers/61bd23.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureNumLayers/61bd23.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,19 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureNumLayers
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWByteAddressBuffer prevent_dce : register(u0);
+RWTexture2DArray<uint4> arg_0 : register(u0, space1);
+uint textureNumLayers_61bd23() {
+  uint3 v = (0u).xxx;
+  arg_0.GetDimensions(v[0u], v[1u], v[2u]);
+  uint res = v.z;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store(0u, textureNumLayers_61bd23());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store(0u, textureNumLayers_61bd23());
+}
+
diff --git a/test/tint/builtins/gen/literal/textureNumLayers/622aa2.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/textureNumLayers/622aa2.wgsl.expected.ir.dxc.hlsl
index c3bb13b..428efd2 100644
--- a/test/tint/builtins/gen/literal/textureNumLayers/622aa2.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureNumLayers/622aa2.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,19 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureNumLayers
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWByteAddressBuffer prevent_dce : register(u0);
+RWTexture2DArray<int4> arg_0 : register(u0, space1);
+uint textureNumLayers_622aa2() {
+  uint3 v = (0u).xxx;
+  arg_0.GetDimensions(v[0u], v[1u], v[2u]);
+  uint res = v.z;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store(0u, textureNumLayers_622aa2());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store(0u, textureNumLayers_622aa2());
+}
+
diff --git a/test/tint/builtins/gen/literal/textureNumLayers/622aa2.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/textureNumLayers/622aa2.wgsl.expected.ir.fxc.hlsl
index c3bb13b..428efd2 100644
--- a/test/tint/builtins/gen/literal/textureNumLayers/622aa2.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureNumLayers/622aa2.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,19 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureNumLayers
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWByteAddressBuffer prevent_dce : register(u0);
+RWTexture2DArray<int4> arg_0 : register(u0, space1);
+uint textureNumLayers_622aa2() {
+  uint3 v = (0u).xxx;
+  arg_0.GetDimensions(v[0u], v[1u], v[2u]);
+  uint res = v.z;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store(0u, textureNumLayers_622aa2());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store(0u, textureNumLayers_622aa2());
+}
+
diff --git a/test/tint/builtins/gen/literal/textureNumLayers/6b4321.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/textureNumLayers/6b4321.wgsl.expected.ir.dxc.hlsl
index c3bb13b..335d98d 100644
--- a/test/tint/builtins/gen/literal/textureNumLayers/6b4321.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureNumLayers/6b4321.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,45 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  uint prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureNumLayers
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation uint VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+TextureCubeArray<int4> arg_0 : register(t0, space1);
+uint textureNumLayers_6b4321() {
+  uint3 v = (0u).xxx;
+  arg_0.GetDimensions(v[0u], v[1u], v[2u]);
+  uint res = v.z;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store(0u, textureNumLayers_6b4321());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store(0u, textureNumLayers_6b4321());
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = textureNumLayers_6b4321();
+  VertexOutput v_1 = tint_symbol;
+  return v_1;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_2 = vertex_main_inner();
+  VertexOutput v_3 = v_2;
+  VertexOutput v_4 = v_2;
+  vertex_main_outputs v_5 = {v_4.prevent_dce, v_3.pos};
+  return v_5;
+}
+
diff --git a/test/tint/builtins/gen/literal/textureNumLayers/6b4321.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/textureNumLayers/6b4321.wgsl.expected.ir.fxc.hlsl
index c3bb13b..335d98d 100644
--- a/test/tint/builtins/gen/literal/textureNumLayers/6b4321.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureNumLayers/6b4321.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,45 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  uint prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureNumLayers
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation uint VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+TextureCubeArray<int4> arg_0 : register(t0, space1);
+uint textureNumLayers_6b4321() {
+  uint3 v = (0u).xxx;
+  arg_0.GetDimensions(v[0u], v[1u], v[2u]);
+  uint res = v.z;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store(0u, textureNumLayers_6b4321());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store(0u, textureNumLayers_6b4321());
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = textureNumLayers_6b4321();
+  VertexOutput v_1 = tint_symbol;
+  return v_1;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_2 = vertex_main_inner();
+  VertexOutput v_3 = v_2;
+  VertexOutput v_4 = v_2;
+  vertex_main_outputs v_5 = {v_4.prevent_dce, v_3.pos};
+  return v_5;
+}
+
diff --git a/test/tint/builtins/gen/literal/textureNumLayers/6da0eb.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/textureNumLayers/6da0eb.wgsl.expected.ir.dxc.hlsl
index c3bb13b..a48cab6 100644
--- a/test/tint/builtins/gen/literal/textureNumLayers/6da0eb.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureNumLayers/6da0eb.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,19 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureNumLayers
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWByteAddressBuffer prevent_dce : register(u0);
+RWTexture2DArray<float4> arg_0 : register(u0, space1);
+uint textureNumLayers_6da0eb() {
+  uint3 v = (0u).xxx;
+  arg_0.GetDimensions(v[0u], v[1u], v[2u]);
+  uint res = v.z;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store(0u, textureNumLayers_6da0eb());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store(0u, textureNumLayers_6da0eb());
+}
+
diff --git a/test/tint/builtins/gen/literal/textureNumLayers/6da0eb.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/textureNumLayers/6da0eb.wgsl.expected.ir.fxc.hlsl
index c3bb13b..a48cab6 100644
--- a/test/tint/builtins/gen/literal/textureNumLayers/6da0eb.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureNumLayers/6da0eb.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,19 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureNumLayers
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWByteAddressBuffer prevent_dce : register(u0);
+RWTexture2DArray<float4> arg_0 : register(u0, space1);
+uint textureNumLayers_6da0eb() {
+  uint3 v = (0u).xxx;
+  arg_0.GetDimensions(v[0u], v[1u], v[2u]);
+  uint res = v.z;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store(0u, textureNumLayers_6da0eb());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store(0u, textureNumLayers_6da0eb());
+}
+
diff --git a/test/tint/builtins/gen/literal/textureNumLayers/77be7b.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/textureNumLayers/77be7b.wgsl.expected.ir.dxc.hlsl
index c3bb13b..467bf2a 100644
--- a/test/tint/builtins/gen/literal/textureNumLayers/77be7b.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureNumLayers/77be7b.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,45 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  uint prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureNumLayers
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation uint VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+Texture2DArray<int4> arg_0 : register(t0, space1);
+uint textureNumLayers_77be7b() {
+  uint3 v = (0u).xxx;
+  arg_0.GetDimensions(v[0u], v[1u], v[2u]);
+  uint res = v.z;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store(0u, textureNumLayers_77be7b());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store(0u, textureNumLayers_77be7b());
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = textureNumLayers_77be7b();
+  VertexOutput v_1 = tint_symbol;
+  return v_1;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_2 = vertex_main_inner();
+  VertexOutput v_3 = v_2;
+  VertexOutput v_4 = v_2;
+  vertex_main_outputs v_5 = {v_4.prevent_dce, v_3.pos};
+  return v_5;
+}
+
diff --git a/test/tint/builtins/gen/literal/textureNumLayers/77be7b.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/textureNumLayers/77be7b.wgsl.expected.ir.fxc.hlsl
index c3bb13b..467bf2a 100644
--- a/test/tint/builtins/gen/literal/textureNumLayers/77be7b.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureNumLayers/77be7b.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,45 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  uint prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureNumLayers
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation uint VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+Texture2DArray<int4> arg_0 : register(t0, space1);
+uint textureNumLayers_77be7b() {
+  uint3 v = (0u).xxx;
+  arg_0.GetDimensions(v[0u], v[1u], v[2u]);
+  uint res = v.z;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store(0u, textureNumLayers_77be7b());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store(0u, textureNumLayers_77be7b());
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = textureNumLayers_77be7b();
+  VertexOutput v_1 = tint_symbol;
+  return v_1;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_2 = vertex_main_inner();
+  VertexOutput v_3 = v_2;
+  VertexOutput v_4 = v_2;
+  vertex_main_outputs v_5 = {v_4.prevent_dce, v_3.pos};
+  return v_5;
+}
+
diff --git a/test/tint/builtins/gen/literal/textureNumLayers/7895f4.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/textureNumLayers/7895f4.wgsl.expected.ir.dxc.hlsl
index c3bb13b..2a8959e 100644
--- a/test/tint/builtins/gen/literal/textureNumLayers/7895f4.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureNumLayers/7895f4.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,45 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  uint prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureNumLayers
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation uint VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+Texture2DArray<float4> arg_0 : register(t0, space1);
+uint textureNumLayers_7895f4() {
+  uint3 v = (0u).xxx;
+  arg_0.GetDimensions(v[0u], v[1u], v[2u]);
+  uint res = v.z;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store(0u, textureNumLayers_7895f4());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store(0u, textureNumLayers_7895f4());
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = textureNumLayers_7895f4();
+  VertexOutput v_1 = tint_symbol;
+  return v_1;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_2 = vertex_main_inner();
+  VertexOutput v_3 = v_2;
+  VertexOutput v_4 = v_2;
+  vertex_main_outputs v_5 = {v_4.prevent_dce, v_3.pos};
+  return v_5;
+}
+
diff --git a/test/tint/builtins/gen/literal/textureNumLayers/7895f4.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/textureNumLayers/7895f4.wgsl.expected.ir.fxc.hlsl
index c3bb13b..2a8959e 100644
--- a/test/tint/builtins/gen/literal/textureNumLayers/7895f4.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureNumLayers/7895f4.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,45 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  uint prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureNumLayers
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation uint VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+Texture2DArray<float4> arg_0 : register(t0, space1);
+uint textureNumLayers_7895f4() {
+  uint3 v = (0u).xxx;
+  arg_0.GetDimensions(v[0u], v[1u], v[2u]);
+  uint res = v.z;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store(0u, textureNumLayers_7895f4());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store(0u, textureNumLayers_7895f4());
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = textureNumLayers_7895f4();
+  VertexOutput v_1 = tint_symbol;
+  return v_1;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_2 = vertex_main_inner();
+  VertexOutput v_3 = v_2;
+  VertexOutput v_4 = v_2;
+  vertex_main_outputs v_5 = {v_4.prevent_dce, v_3.pos};
+  return v_5;
+}
+
diff --git a/test/tint/builtins/gen/literal/textureNumLayers/7f28cf.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/textureNumLayers/7f28cf.wgsl.expected.ir.dxc.hlsl
index c3bb13b..f845036 100644
--- a/test/tint/builtins/gen/literal/textureNumLayers/7f28cf.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureNumLayers/7f28cf.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,19 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureNumLayers
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWByteAddressBuffer prevent_dce : register(u0);
+RWTexture2DArray<float4> arg_0 : register(u0, space1);
+uint textureNumLayers_7f28cf() {
+  uint3 v = (0u).xxx;
+  arg_0.GetDimensions(v[0u], v[1u], v[2u]);
+  uint res = v.z;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store(0u, textureNumLayers_7f28cf());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store(0u, textureNumLayers_7f28cf());
+}
+
diff --git a/test/tint/builtins/gen/literal/textureNumLayers/7f28cf.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/textureNumLayers/7f28cf.wgsl.expected.ir.fxc.hlsl
index c3bb13b..f845036 100644
--- a/test/tint/builtins/gen/literal/textureNumLayers/7f28cf.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureNumLayers/7f28cf.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,19 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureNumLayers
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWByteAddressBuffer prevent_dce : register(u0);
+RWTexture2DArray<float4> arg_0 : register(u0, space1);
+uint textureNumLayers_7f28cf() {
+  uint3 v = (0u).xxx;
+  arg_0.GetDimensions(v[0u], v[1u], v[2u]);
+  uint res = v.z;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store(0u, textureNumLayers_7f28cf());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store(0u, textureNumLayers_7f28cf());
+}
+
diff --git a/test/tint/builtins/gen/literal/textureNumLayers/8356f7.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/textureNumLayers/8356f7.wgsl.expected.ir.dxc.hlsl
index c3bb13b..8e83757 100644
--- a/test/tint/builtins/gen/literal/textureNumLayers/8356f7.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureNumLayers/8356f7.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,19 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureNumLayers
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWByteAddressBuffer prevent_dce : register(u0);
+RWTexture2DArray<float4> arg_0 : register(u0, space1);
+uint textureNumLayers_8356f7() {
+  uint3 v = (0u).xxx;
+  arg_0.GetDimensions(v[0u], v[1u], v[2u]);
+  uint res = v.z;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store(0u, textureNumLayers_8356f7());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store(0u, textureNumLayers_8356f7());
+}
+
diff --git a/test/tint/builtins/gen/literal/textureNumLayers/8356f7.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/textureNumLayers/8356f7.wgsl.expected.ir.fxc.hlsl
index c3bb13b..8e83757 100644
--- a/test/tint/builtins/gen/literal/textureNumLayers/8356f7.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureNumLayers/8356f7.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,19 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureNumLayers
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWByteAddressBuffer prevent_dce : register(u0);
+RWTexture2DArray<float4> arg_0 : register(u0, space1);
+uint textureNumLayers_8356f7() {
+  uint3 v = (0u).xxx;
+  arg_0.GetDimensions(v[0u], v[1u], v[2u]);
+  uint res = v.z;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store(0u, textureNumLayers_8356f7());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store(0u, textureNumLayers_8356f7());
+}
+
diff --git a/test/tint/builtins/gen/literal/textureNumLayers/878dea.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/textureNumLayers/878dea.wgsl.expected.ir.dxc.hlsl
index c3bb13b..0fe5d6d 100644
--- a/test/tint/builtins/gen/literal/textureNumLayers/878dea.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureNumLayers/878dea.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,19 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureNumLayers
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWByteAddressBuffer prevent_dce : register(u0);
+RWTexture2DArray<int4> arg_0 : register(u0, space1);
+uint textureNumLayers_878dea() {
+  uint3 v = (0u).xxx;
+  arg_0.GetDimensions(v[0u], v[1u], v[2u]);
+  uint res = v.z;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store(0u, textureNumLayers_878dea());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store(0u, textureNumLayers_878dea());
+}
+
diff --git a/test/tint/builtins/gen/literal/textureNumLayers/878dea.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/textureNumLayers/878dea.wgsl.expected.ir.fxc.hlsl
index c3bb13b..0fe5d6d 100644
--- a/test/tint/builtins/gen/literal/textureNumLayers/878dea.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureNumLayers/878dea.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,19 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureNumLayers
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWByteAddressBuffer prevent_dce : register(u0);
+RWTexture2DArray<int4> arg_0 : register(u0, space1);
+uint textureNumLayers_878dea() {
+  uint3 v = (0u).xxx;
+  arg_0.GetDimensions(v[0u], v[1u], v[2u]);
+  uint res = v.z;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store(0u, textureNumLayers_878dea());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store(0u, textureNumLayers_878dea());
+}
+
diff --git a/test/tint/builtins/gen/literal/textureNumLayers/87faad.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/textureNumLayers/87faad.wgsl.expected.ir.dxc.hlsl
index c3bb13b..036e9d5 100644
--- a/test/tint/builtins/gen/literal/textureNumLayers/87faad.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureNumLayers/87faad.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,19 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureNumLayers
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWByteAddressBuffer prevent_dce : register(u0);
+RWTexture2DArray<uint4> arg_0 : register(u0, space1);
+uint textureNumLayers_87faad() {
+  uint3 v = (0u).xxx;
+  arg_0.GetDimensions(v[0u], v[1u], v[2u]);
+  uint res = v.z;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store(0u, textureNumLayers_87faad());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store(0u, textureNumLayers_87faad());
+}
+
diff --git a/test/tint/builtins/gen/literal/textureNumLayers/87faad.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/textureNumLayers/87faad.wgsl.expected.ir.fxc.hlsl
index c3bb13b..036e9d5 100644
--- a/test/tint/builtins/gen/literal/textureNumLayers/87faad.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureNumLayers/87faad.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,19 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureNumLayers
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWByteAddressBuffer prevent_dce : register(u0);
+RWTexture2DArray<uint4> arg_0 : register(u0, space1);
+uint textureNumLayers_87faad() {
+  uint3 v = (0u).xxx;
+  arg_0.GetDimensions(v[0u], v[1u], v[2u]);
+  uint res = v.z;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store(0u, textureNumLayers_87faad());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store(0u, textureNumLayers_87faad());
+}
+
diff --git a/test/tint/builtins/gen/literal/textureNumLayers/8ac32a.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/textureNumLayers/8ac32a.wgsl.expected.ir.dxc.hlsl
index c3bb13b..55e891f8 100644
--- a/test/tint/builtins/gen/literal/textureNumLayers/8ac32a.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureNumLayers/8ac32a.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,45 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  uint prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureNumLayers
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation uint VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+Texture2DArray<uint4> arg_0 : register(t0, space1);
+uint textureNumLayers_8ac32a() {
+  uint3 v = (0u).xxx;
+  arg_0.GetDimensions(v[0u], v[1u], v[2u]);
+  uint res = v.z;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store(0u, textureNumLayers_8ac32a());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store(0u, textureNumLayers_8ac32a());
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = textureNumLayers_8ac32a();
+  VertexOutput v_1 = tint_symbol;
+  return v_1;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_2 = vertex_main_inner();
+  VertexOutput v_3 = v_2;
+  VertexOutput v_4 = v_2;
+  vertex_main_outputs v_5 = {v_4.prevent_dce, v_3.pos};
+  return v_5;
+}
+
diff --git a/test/tint/builtins/gen/literal/textureNumLayers/8ac32a.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/textureNumLayers/8ac32a.wgsl.expected.ir.fxc.hlsl
index c3bb13b..55e891f8 100644
--- a/test/tint/builtins/gen/literal/textureNumLayers/8ac32a.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureNumLayers/8ac32a.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,45 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  uint prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureNumLayers
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation uint VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+Texture2DArray<uint4> arg_0 : register(t0, space1);
+uint textureNumLayers_8ac32a() {
+  uint3 v = (0u).xxx;
+  arg_0.GetDimensions(v[0u], v[1u], v[2u]);
+  uint res = v.z;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store(0u, textureNumLayers_8ac32a());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store(0u, textureNumLayers_8ac32a());
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = textureNumLayers_8ac32a();
+  VertexOutput v_1 = tint_symbol;
+  return v_1;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_2 = vertex_main_inner();
+  VertexOutput v_3 = v_2;
+  VertexOutput v_4 = v_2;
+  vertex_main_outputs v_5 = {v_4.prevent_dce, v_3.pos};
+  return v_5;
+}
+
diff --git a/test/tint/builtins/gen/literal/textureNumLayers/8bd987.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/textureNumLayers/8bd987.wgsl.expected.ir.dxc.hlsl
index c3bb13b..33006f3 100644
--- a/test/tint/builtins/gen/literal/textureNumLayers/8bd987.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureNumLayers/8bd987.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,19 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureNumLayers
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWByteAddressBuffer prevent_dce : register(u0);
+RWTexture2DArray<int4> arg_0 : register(u0, space1);
+uint textureNumLayers_8bd987() {
+  uint3 v = (0u).xxx;
+  arg_0.GetDimensions(v[0u], v[1u], v[2u]);
+  uint res = v.z;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store(0u, textureNumLayers_8bd987());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store(0u, textureNumLayers_8bd987());
+}
+
diff --git a/test/tint/builtins/gen/literal/textureNumLayers/8bd987.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/textureNumLayers/8bd987.wgsl.expected.ir.fxc.hlsl
index c3bb13b..33006f3 100644
--- a/test/tint/builtins/gen/literal/textureNumLayers/8bd987.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureNumLayers/8bd987.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,19 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureNumLayers
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWByteAddressBuffer prevent_dce : register(u0);
+RWTexture2DArray<int4> arg_0 : register(u0, space1);
+uint textureNumLayers_8bd987() {
+  uint3 v = (0u).xxx;
+  arg_0.GetDimensions(v[0u], v[1u], v[2u]);
+  uint res = v.z;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store(0u, textureNumLayers_8bd987());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store(0u, textureNumLayers_8bd987());
+}
+
diff --git a/test/tint/builtins/gen/literal/textureNumLayers/8dbf23.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/textureNumLayers/8dbf23.wgsl.expected.ir.dxc.hlsl
index c3bb13b..8c7f6b1 100644
--- a/test/tint/builtins/gen/literal/textureNumLayers/8dbf23.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureNumLayers/8dbf23.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,19 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureNumLayers
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWByteAddressBuffer prevent_dce : register(u0);
+RWTexture2DArray<float4> arg_0 : register(u0, space1);
+uint textureNumLayers_8dbf23() {
+  uint3 v = (0u).xxx;
+  arg_0.GetDimensions(v[0u], v[1u], v[2u]);
+  uint res = v.z;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store(0u, textureNumLayers_8dbf23());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store(0u, textureNumLayers_8dbf23());
+}
+
diff --git a/test/tint/builtins/gen/literal/textureNumLayers/8dbf23.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/textureNumLayers/8dbf23.wgsl.expected.ir.fxc.hlsl
index c3bb13b..8c7f6b1 100644
--- a/test/tint/builtins/gen/literal/textureNumLayers/8dbf23.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureNumLayers/8dbf23.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,19 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureNumLayers
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWByteAddressBuffer prevent_dce : register(u0);
+RWTexture2DArray<float4> arg_0 : register(u0, space1);
+uint textureNumLayers_8dbf23() {
+  uint3 v = (0u).xxx;
+  arg_0.GetDimensions(v[0u], v[1u], v[2u]);
+  uint res = v.z;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store(0u, textureNumLayers_8dbf23());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store(0u, textureNumLayers_8dbf23());
+}
+
diff --git a/test/tint/builtins/gen/literal/textureNumLayers/8e1bd0.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/textureNumLayers/8e1bd0.wgsl.expected.ir.dxc.hlsl
index c3bb13b..8cfa2e6 100644
--- a/test/tint/builtins/gen/literal/textureNumLayers/8e1bd0.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureNumLayers/8e1bd0.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,19 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureNumLayers
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWByteAddressBuffer prevent_dce : register(u0);
+RWTexture2DArray<int4> arg_0 : register(u0, space1);
+uint textureNumLayers_8e1bd0() {
+  uint3 v = (0u).xxx;
+  arg_0.GetDimensions(v[0u], v[1u], v[2u]);
+  uint res = v.z;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store(0u, textureNumLayers_8e1bd0());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store(0u, textureNumLayers_8e1bd0());
+}
+
diff --git a/test/tint/builtins/gen/literal/textureNumLayers/8e1bd0.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/textureNumLayers/8e1bd0.wgsl.expected.ir.fxc.hlsl
index c3bb13b..8cfa2e6 100644
--- a/test/tint/builtins/gen/literal/textureNumLayers/8e1bd0.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureNumLayers/8e1bd0.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,19 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureNumLayers
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWByteAddressBuffer prevent_dce : register(u0);
+RWTexture2DArray<int4> arg_0 : register(u0, space1);
+uint textureNumLayers_8e1bd0() {
+  uint3 v = (0u).xxx;
+  arg_0.GetDimensions(v[0u], v[1u], v[2u]);
+  uint res = v.z;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store(0u, textureNumLayers_8e1bd0());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store(0u, textureNumLayers_8e1bd0());
+}
+
diff --git a/test/tint/builtins/gen/literal/textureNumLayers/90b8cc.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/textureNumLayers/90b8cc.wgsl.expected.ir.dxc.hlsl
index c3bb13b..9bd35eb 100644
--- a/test/tint/builtins/gen/literal/textureNumLayers/90b8cc.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureNumLayers/90b8cc.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,45 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  uint prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureNumLayers
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation uint VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+Texture2DArray<float4> arg_0 : register(t0, space1);
+uint textureNumLayers_90b8cc() {
+  uint3 v = (0u).xxx;
+  arg_0.GetDimensions(v[0u], v[1u], v[2u]);
+  uint res = v.z;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store(0u, textureNumLayers_90b8cc());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store(0u, textureNumLayers_90b8cc());
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = textureNumLayers_90b8cc();
+  VertexOutput v_1 = tint_symbol;
+  return v_1;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_2 = vertex_main_inner();
+  VertexOutput v_3 = v_2;
+  VertexOutput v_4 = v_2;
+  vertex_main_outputs v_5 = {v_4.prevent_dce, v_3.pos};
+  return v_5;
+}
+
diff --git a/test/tint/builtins/gen/literal/textureNumLayers/90b8cc.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/textureNumLayers/90b8cc.wgsl.expected.ir.fxc.hlsl
index c3bb13b..9bd35eb 100644
--- a/test/tint/builtins/gen/literal/textureNumLayers/90b8cc.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureNumLayers/90b8cc.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,45 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  uint prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureNumLayers
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation uint VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+Texture2DArray<float4> arg_0 : register(t0, space1);
+uint textureNumLayers_90b8cc() {
+  uint3 v = (0u).xxx;
+  arg_0.GetDimensions(v[0u], v[1u], v[2u]);
+  uint res = v.z;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store(0u, textureNumLayers_90b8cc());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store(0u, textureNumLayers_90b8cc());
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = textureNumLayers_90b8cc();
+  VertexOutput v_1 = tint_symbol;
+  return v_1;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_2 = vertex_main_inner();
+  VertexOutput v_3 = v_2;
+  VertexOutput v_4 = v_2;
+  vertex_main_outputs v_5 = {v_4.prevent_dce, v_3.pos};
+  return v_5;
+}
+
diff --git a/test/tint/builtins/gen/literal/textureNumLayers/9695c6.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/textureNumLayers/9695c6.wgsl.expected.ir.dxc.hlsl
index c3bb13b..6f529a9 100644
--- a/test/tint/builtins/gen/literal/textureNumLayers/9695c6.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureNumLayers/9695c6.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,19 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureNumLayers
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWByteAddressBuffer prevent_dce : register(u0);
+RWTexture2DArray<uint4> arg_0 : register(u0, space1);
+uint textureNumLayers_9695c6() {
+  uint3 v = (0u).xxx;
+  arg_0.GetDimensions(v[0u], v[1u], v[2u]);
+  uint res = v.z;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store(0u, textureNumLayers_9695c6());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store(0u, textureNumLayers_9695c6());
+}
+
diff --git a/test/tint/builtins/gen/literal/textureNumLayers/9695c6.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/textureNumLayers/9695c6.wgsl.expected.ir.fxc.hlsl
index c3bb13b..6f529a9 100644
--- a/test/tint/builtins/gen/literal/textureNumLayers/9695c6.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureNumLayers/9695c6.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,19 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureNumLayers
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWByteAddressBuffer prevent_dce : register(u0);
+RWTexture2DArray<uint4> arg_0 : register(u0, space1);
+uint textureNumLayers_9695c6() {
+  uint3 v = (0u).xxx;
+  arg_0.GetDimensions(v[0u], v[1u], v[2u]);
+  uint res = v.z;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store(0u, textureNumLayers_9695c6());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store(0u, textureNumLayers_9695c6());
+}
+
diff --git a/test/tint/builtins/gen/literal/textureNumLayers/98a9cf.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/textureNumLayers/98a9cf.wgsl.expected.ir.dxc.hlsl
index c3bb13b..878814a 100644
--- a/test/tint/builtins/gen/literal/textureNumLayers/98a9cf.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureNumLayers/98a9cf.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,19 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureNumLayers
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWByteAddressBuffer prevent_dce : register(u0);
+RWTexture2DArray<float4> arg_0 : register(u0, space1);
+uint textureNumLayers_98a9cf() {
+  uint3 v = (0u).xxx;
+  arg_0.GetDimensions(v[0u], v[1u], v[2u]);
+  uint res = v.z;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store(0u, textureNumLayers_98a9cf());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store(0u, textureNumLayers_98a9cf());
+}
+
diff --git a/test/tint/builtins/gen/literal/textureNumLayers/98a9cf.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/textureNumLayers/98a9cf.wgsl.expected.ir.fxc.hlsl
index c3bb13b..878814a 100644
--- a/test/tint/builtins/gen/literal/textureNumLayers/98a9cf.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureNumLayers/98a9cf.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,19 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureNumLayers
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWByteAddressBuffer prevent_dce : register(u0);
+RWTexture2DArray<float4> arg_0 : register(u0, space1);
+uint textureNumLayers_98a9cf() {
+  uint3 v = (0u).xxx;
+  arg_0.GetDimensions(v[0u], v[1u], v[2u]);
+  uint res = v.z;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store(0u, textureNumLayers_98a9cf());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store(0u, textureNumLayers_98a9cf());
+}
+
diff --git a/test/tint/builtins/gen/literal/textureNumLayers/9c60e3.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/textureNumLayers/9c60e3.wgsl.expected.ir.dxc.hlsl
index c3bb13b..9559388 100644
--- a/test/tint/builtins/gen/literal/textureNumLayers/9c60e3.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureNumLayers/9c60e3.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,45 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  uint prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureNumLayers
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation uint VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+Texture2DArray<uint4> arg_0 : register(t0, space1);
+uint textureNumLayers_9c60e3() {
+  uint3 v = (0u).xxx;
+  arg_0.GetDimensions(v[0u], v[1u], v[2u]);
+  uint res = v.z;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store(0u, textureNumLayers_9c60e3());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store(0u, textureNumLayers_9c60e3());
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = textureNumLayers_9c60e3();
+  VertexOutput v_1 = tint_symbol;
+  return v_1;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_2 = vertex_main_inner();
+  VertexOutput v_3 = v_2;
+  VertexOutput v_4 = v_2;
+  vertex_main_outputs v_5 = {v_4.prevent_dce, v_3.pos};
+  return v_5;
+}
+
diff --git a/test/tint/builtins/gen/literal/textureNumLayers/9c60e3.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/textureNumLayers/9c60e3.wgsl.expected.ir.fxc.hlsl
index c3bb13b..9559388 100644
--- a/test/tint/builtins/gen/literal/textureNumLayers/9c60e3.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureNumLayers/9c60e3.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,45 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  uint prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureNumLayers
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation uint VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+Texture2DArray<uint4> arg_0 : register(t0, space1);
+uint textureNumLayers_9c60e3() {
+  uint3 v = (0u).xxx;
+  arg_0.GetDimensions(v[0u], v[1u], v[2u]);
+  uint res = v.z;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store(0u, textureNumLayers_9c60e3());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store(0u, textureNumLayers_9c60e3());
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = textureNumLayers_9c60e3();
+  VertexOutput v_1 = tint_symbol;
+  return v_1;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_2 = vertex_main_inner();
+  VertexOutput v_3 = v_2;
+  VertexOutput v_4 = v_2;
+  vertex_main_outputs v_5 = {v_4.prevent_dce, v_3.pos};
+  return v_5;
+}
+
diff --git a/test/tint/builtins/gen/literal/textureNumLayers/a54655.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/textureNumLayers/a54655.wgsl.expected.ir.dxc.hlsl
index c3bb13b..ac4dba6 100644
--- a/test/tint/builtins/gen/literal/textureNumLayers/a54655.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureNumLayers/a54655.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,19 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureNumLayers
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWByteAddressBuffer prevent_dce : register(u0);
+RWTexture2DArray<float4> arg_0 : register(u0, space1);
+uint textureNumLayers_a54655() {
+  uint3 v = (0u).xxx;
+  arg_0.GetDimensions(v[0u], v[1u], v[2u]);
+  uint res = v.z;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store(0u, textureNumLayers_a54655());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store(0u, textureNumLayers_a54655());
+}
+
diff --git a/test/tint/builtins/gen/literal/textureNumLayers/a54655.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/textureNumLayers/a54655.wgsl.expected.ir.fxc.hlsl
index c3bb13b..ac4dba6 100644
--- a/test/tint/builtins/gen/literal/textureNumLayers/a54655.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureNumLayers/a54655.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,19 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureNumLayers
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWByteAddressBuffer prevent_dce : register(u0);
+RWTexture2DArray<float4> arg_0 : register(u0, space1);
+uint textureNumLayers_a54655() {
+  uint3 v = (0u).xxx;
+  arg_0.GetDimensions(v[0u], v[1u], v[2u]);
+  uint res = v.z;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store(0u, textureNumLayers_a54655());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store(0u, textureNumLayers_a54655());
+}
+
diff --git a/test/tint/builtins/gen/literal/textureNumLayers/a9d3f5.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/textureNumLayers/a9d3f5.wgsl.expected.ir.dxc.hlsl
index c3bb13b..72b43ea 100644
--- a/test/tint/builtins/gen/literal/textureNumLayers/a9d3f5.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureNumLayers/a9d3f5.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,45 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  uint prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureNumLayers
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation uint VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+Texture2DArray arg_0 : register(t0, space1);
+uint textureNumLayers_a9d3f5() {
+  uint3 v = (0u).xxx;
+  arg_0.GetDimensions(v[0u], v[1u], v[2u]);
+  uint res = v.z;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store(0u, textureNumLayers_a9d3f5());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store(0u, textureNumLayers_a9d3f5());
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = textureNumLayers_a9d3f5();
+  VertexOutput v_1 = tint_symbol;
+  return v_1;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_2 = vertex_main_inner();
+  VertexOutput v_3 = v_2;
+  VertexOutput v_4 = v_2;
+  vertex_main_outputs v_5 = {v_4.prevent_dce, v_3.pos};
+  return v_5;
+}
+
diff --git a/test/tint/builtins/gen/literal/textureNumLayers/a9d3f5.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/textureNumLayers/a9d3f5.wgsl.expected.ir.fxc.hlsl
index c3bb13b..72b43ea 100644
--- a/test/tint/builtins/gen/literal/textureNumLayers/a9d3f5.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureNumLayers/a9d3f5.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,45 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  uint prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureNumLayers
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation uint VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+Texture2DArray arg_0 : register(t0, space1);
+uint textureNumLayers_a9d3f5() {
+  uint3 v = (0u).xxx;
+  arg_0.GetDimensions(v[0u], v[1u], v[2u]);
+  uint res = v.z;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store(0u, textureNumLayers_a9d3f5());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store(0u, textureNumLayers_a9d3f5());
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = textureNumLayers_a9d3f5();
+  VertexOutput v_1 = tint_symbol;
+  return v_1;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_2 = vertex_main_inner();
+  VertexOutput v_3 = v_2;
+  VertexOutput v_4 = v_2;
+  vertex_main_outputs v_5 = {v_4.prevent_dce, v_3.pos};
+  return v_5;
+}
+
diff --git a/test/tint/builtins/gen/literal/textureNumLayers/aac630.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/textureNumLayers/aac630.wgsl.expected.ir.dxc.hlsl
index c3bb13b..a172d3f 100644
--- a/test/tint/builtins/gen/literal/textureNumLayers/aac630.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureNumLayers/aac630.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,19 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureNumLayers
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWByteAddressBuffer prevent_dce : register(u0);
+RWTexture2DArray<float4> arg_0 : register(u0, space1);
+uint textureNumLayers_aac630() {
+  uint3 v = (0u).xxx;
+  arg_0.GetDimensions(v[0u], v[1u], v[2u]);
+  uint res = v.z;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store(0u, textureNumLayers_aac630());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store(0u, textureNumLayers_aac630());
+}
+
diff --git a/test/tint/builtins/gen/literal/textureNumLayers/aac630.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/textureNumLayers/aac630.wgsl.expected.ir.fxc.hlsl
index c3bb13b..a172d3f 100644
--- a/test/tint/builtins/gen/literal/textureNumLayers/aac630.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureNumLayers/aac630.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,19 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureNumLayers
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWByteAddressBuffer prevent_dce : register(u0);
+RWTexture2DArray<float4> arg_0 : register(u0, space1);
+uint textureNumLayers_aac630() {
+  uint3 v = (0u).xxx;
+  arg_0.GetDimensions(v[0u], v[1u], v[2u]);
+  uint res = v.z;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store(0u, textureNumLayers_aac630());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store(0u, textureNumLayers_aac630());
+}
+
diff --git a/test/tint/builtins/gen/literal/textureNumLayers/bf2f76.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/textureNumLayers/bf2f76.wgsl.expected.ir.dxc.hlsl
index c3bb13b..86a35e5 100644
--- a/test/tint/builtins/gen/literal/textureNumLayers/bf2f76.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureNumLayers/bf2f76.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,45 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  uint prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureNumLayers
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation uint VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+Texture2DArray<int4> arg_0 : register(t0, space1);
+uint textureNumLayers_bf2f76() {
+  uint3 v = (0u).xxx;
+  arg_0.GetDimensions(v[0u], v[1u], v[2u]);
+  uint res = v.z;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store(0u, textureNumLayers_bf2f76());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store(0u, textureNumLayers_bf2f76());
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = textureNumLayers_bf2f76();
+  VertexOutput v_1 = tint_symbol;
+  return v_1;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_2 = vertex_main_inner();
+  VertexOutput v_3 = v_2;
+  VertexOutput v_4 = v_2;
+  vertex_main_outputs v_5 = {v_4.prevent_dce, v_3.pos};
+  return v_5;
+}
+
diff --git a/test/tint/builtins/gen/literal/textureNumLayers/bf2f76.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/textureNumLayers/bf2f76.wgsl.expected.ir.fxc.hlsl
index c3bb13b..86a35e5 100644
--- a/test/tint/builtins/gen/literal/textureNumLayers/bf2f76.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureNumLayers/bf2f76.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,45 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  uint prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureNumLayers
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation uint VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+Texture2DArray<int4> arg_0 : register(t0, space1);
+uint textureNumLayers_bf2f76() {
+  uint3 v = (0u).xxx;
+  arg_0.GetDimensions(v[0u], v[1u], v[2u]);
+  uint res = v.z;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store(0u, textureNumLayers_bf2f76());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store(0u, textureNumLayers_bf2f76());
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = textureNumLayers_bf2f76();
+  VertexOutput v_1 = tint_symbol;
+  return v_1;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_2 = vertex_main_inner();
+  VertexOutput v_3 = v_2;
+  VertexOutput v_4 = v_2;
+  vertex_main_outputs v_5 = {v_4.prevent_dce, v_3.pos};
+  return v_5;
+}
+
diff --git a/test/tint/builtins/gen/literal/textureNumLayers/c1eca9.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/textureNumLayers/c1eca9.wgsl.expected.ir.dxc.hlsl
index c3bb13b..28894e1 100644
--- a/test/tint/builtins/gen/literal/textureNumLayers/c1eca9.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureNumLayers/c1eca9.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,45 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  uint prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureNumLayers
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation uint VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+TextureCubeArray<uint4> arg_0 : register(t0, space1);
+uint textureNumLayers_c1eca9() {
+  uint3 v = (0u).xxx;
+  arg_0.GetDimensions(v[0u], v[1u], v[2u]);
+  uint res = v.z;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store(0u, textureNumLayers_c1eca9());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store(0u, textureNumLayers_c1eca9());
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = textureNumLayers_c1eca9();
+  VertexOutput v_1 = tint_symbol;
+  return v_1;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_2 = vertex_main_inner();
+  VertexOutput v_3 = v_2;
+  VertexOutput v_4 = v_2;
+  vertex_main_outputs v_5 = {v_4.prevent_dce, v_3.pos};
+  return v_5;
+}
+
diff --git a/test/tint/builtins/gen/literal/textureNumLayers/c1eca9.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/textureNumLayers/c1eca9.wgsl.expected.ir.fxc.hlsl
index c3bb13b..28894e1 100644
--- a/test/tint/builtins/gen/literal/textureNumLayers/c1eca9.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureNumLayers/c1eca9.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,45 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  uint prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureNumLayers
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation uint VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+TextureCubeArray<uint4> arg_0 : register(t0, space1);
+uint textureNumLayers_c1eca9() {
+  uint3 v = (0u).xxx;
+  arg_0.GetDimensions(v[0u], v[1u], v[2u]);
+  uint res = v.z;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store(0u, textureNumLayers_c1eca9());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store(0u, textureNumLayers_c1eca9());
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = textureNumLayers_c1eca9();
+  VertexOutput v_1 = tint_symbol;
+  return v_1;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_2 = vertex_main_inner();
+  VertexOutput v_3 = v_2;
+  VertexOutput v_4 = v_2;
+  vertex_main_outputs v_5 = {v_4.prevent_dce, v_3.pos};
+  return v_5;
+}
+
diff --git a/test/tint/builtins/gen/literal/textureNumLayers/d3e21f.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/textureNumLayers/d3e21f.wgsl.expected.ir.dxc.hlsl
index c3bb13b..ccdf1e3 100644
--- a/test/tint/builtins/gen/literal/textureNumLayers/d3e21f.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureNumLayers/d3e21f.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,45 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  uint prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureNumLayers
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation uint VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+Texture2DArray<uint4> arg_0 : register(t0, space1);
+uint textureNumLayers_d3e21f() {
+  uint3 v = (0u).xxx;
+  arg_0.GetDimensions(v[0u], v[1u], v[2u]);
+  uint res = v.z;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store(0u, textureNumLayers_d3e21f());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store(0u, textureNumLayers_d3e21f());
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = textureNumLayers_d3e21f();
+  VertexOutput v_1 = tint_symbol;
+  return v_1;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_2 = vertex_main_inner();
+  VertexOutput v_3 = v_2;
+  VertexOutput v_4 = v_2;
+  vertex_main_outputs v_5 = {v_4.prevent_dce, v_3.pos};
+  return v_5;
+}
+
diff --git a/test/tint/builtins/gen/literal/textureNumLayers/d3e21f.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/textureNumLayers/d3e21f.wgsl.expected.ir.fxc.hlsl
index c3bb13b..ccdf1e3 100644
--- a/test/tint/builtins/gen/literal/textureNumLayers/d3e21f.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureNumLayers/d3e21f.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,45 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  uint prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureNumLayers
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation uint VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+Texture2DArray<uint4> arg_0 : register(t0, space1);
+uint textureNumLayers_d3e21f() {
+  uint3 v = (0u).xxx;
+  arg_0.GetDimensions(v[0u], v[1u], v[2u]);
+  uint res = v.z;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store(0u, textureNumLayers_d3e21f());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store(0u, textureNumLayers_d3e21f());
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = textureNumLayers_d3e21f();
+  VertexOutput v_1 = tint_symbol;
+  return v_1;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_2 = vertex_main_inner();
+  VertexOutput v_3 = v_2;
+  VertexOutput v_4 = v_2;
+  vertex_main_outputs v_5 = {v_4.prevent_dce, v_3.pos};
+  return v_5;
+}
+
diff --git a/test/tint/builtins/gen/literal/textureNumLayers/d3f655.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/textureNumLayers/d3f655.wgsl.expected.ir.dxc.hlsl
index c3bb13b..442aa59 100644
--- a/test/tint/builtins/gen/literal/textureNumLayers/d3f655.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureNumLayers/d3f655.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,19 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureNumLayers
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWByteAddressBuffer prevent_dce : register(u0);
+RWTexture2DArray<int4> arg_0 : register(u0, space1);
+uint textureNumLayers_d3f655() {
+  uint3 v = (0u).xxx;
+  arg_0.GetDimensions(v[0u], v[1u], v[2u]);
+  uint res = v.z;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store(0u, textureNumLayers_d3f655());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store(0u, textureNumLayers_d3f655());
+}
+
diff --git a/test/tint/builtins/gen/literal/textureNumLayers/d3f655.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/textureNumLayers/d3f655.wgsl.expected.ir.fxc.hlsl
index c3bb13b..442aa59 100644
--- a/test/tint/builtins/gen/literal/textureNumLayers/d3f655.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureNumLayers/d3f655.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,19 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureNumLayers
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWByteAddressBuffer prevent_dce : register(u0);
+RWTexture2DArray<int4> arg_0 : register(u0, space1);
+uint textureNumLayers_d3f655() {
+  uint3 v = (0u).xxx;
+  arg_0.GetDimensions(v[0u], v[1u], v[2u]);
+  uint res = v.z;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store(0u, textureNumLayers_d3f655());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store(0u, textureNumLayers_d3f655());
+}
+
diff --git a/test/tint/builtins/gen/literal/textureNumLayers/d75a0b.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/textureNumLayers/d75a0b.wgsl.expected.ir.dxc.hlsl
index c3bb13b..09b778a 100644
--- a/test/tint/builtins/gen/literal/textureNumLayers/d75a0b.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureNumLayers/d75a0b.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,19 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureNumLayers
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWByteAddressBuffer prevent_dce : register(u0);
+RWTexture2DArray<float4> arg_0 : register(u0, space1);
+uint textureNumLayers_d75a0b() {
+  uint3 v = (0u).xxx;
+  arg_0.GetDimensions(v[0u], v[1u], v[2u]);
+  uint res = v.z;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store(0u, textureNumLayers_d75a0b());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store(0u, textureNumLayers_d75a0b());
+}
+
diff --git a/test/tint/builtins/gen/literal/textureNumLayers/d75a0b.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/textureNumLayers/d75a0b.wgsl.expected.ir.fxc.hlsl
index c3bb13b..09b778a 100644
--- a/test/tint/builtins/gen/literal/textureNumLayers/d75a0b.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureNumLayers/d75a0b.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,19 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureNumLayers
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWByteAddressBuffer prevent_dce : register(u0);
+RWTexture2DArray<float4> arg_0 : register(u0, space1);
+uint textureNumLayers_d75a0b() {
+  uint3 v = (0u).xxx;
+  arg_0.GetDimensions(v[0u], v[1u], v[2u]);
+  uint res = v.z;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store(0u, textureNumLayers_d75a0b());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store(0u, textureNumLayers_d75a0b());
+}
+
diff --git a/test/tint/builtins/gen/literal/textureNumLayers/de8087.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/textureNumLayers/de8087.wgsl.expected.ir.dxc.hlsl
index c3bb13b..4b98062 100644
--- a/test/tint/builtins/gen/literal/textureNumLayers/de8087.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureNumLayers/de8087.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,19 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureNumLayers
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWByteAddressBuffer prevent_dce : register(u0);
+RWTexture2DArray<int4> arg_0 : register(u0, space1);
+uint textureNumLayers_de8087() {
+  uint3 v = (0u).xxx;
+  arg_0.GetDimensions(v[0u], v[1u], v[2u]);
+  uint res = v.z;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store(0u, textureNumLayers_de8087());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store(0u, textureNumLayers_de8087());
+}
+
diff --git a/test/tint/builtins/gen/literal/textureNumLayers/de8087.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/textureNumLayers/de8087.wgsl.expected.ir.fxc.hlsl
index c3bb13b..4b98062 100644
--- a/test/tint/builtins/gen/literal/textureNumLayers/de8087.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureNumLayers/de8087.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,19 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureNumLayers
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWByteAddressBuffer prevent_dce : register(u0);
+RWTexture2DArray<int4> arg_0 : register(u0, space1);
+uint textureNumLayers_de8087() {
+  uint3 v = (0u).xxx;
+  arg_0.GetDimensions(v[0u], v[1u], v[2u]);
+  uint res = v.z;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store(0u, textureNumLayers_de8087());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store(0u, textureNumLayers_de8087());
+}
+
diff --git a/test/tint/builtins/gen/literal/textureNumLayers/e47aac.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/textureNumLayers/e47aac.wgsl.expected.ir.dxc.hlsl
index c3bb13b..0cbee1e 100644
--- a/test/tint/builtins/gen/literal/textureNumLayers/e47aac.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureNumLayers/e47aac.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,19 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureNumLayers
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWByteAddressBuffer prevent_dce : register(u0);
+RWTexture2DArray<float4> arg_0 : register(u0, space1);
+uint textureNumLayers_e47aac() {
+  uint3 v = (0u).xxx;
+  arg_0.GetDimensions(v[0u], v[1u], v[2u]);
+  uint res = v.z;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store(0u, textureNumLayers_e47aac());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store(0u, textureNumLayers_e47aac());
+}
+
diff --git a/test/tint/builtins/gen/literal/textureNumLayers/e47aac.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/textureNumLayers/e47aac.wgsl.expected.ir.fxc.hlsl
index c3bb13b..0cbee1e 100644
--- a/test/tint/builtins/gen/literal/textureNumLayers/e47aac.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureNumLayers/e47aac.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,19 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureNumLayers
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWByteAddressBuffer prevent_dce : register(u0);
+RWTexture2DArray<float4> arg_0 : register(u0, space1);
+uint textureNumLayers_e47aac() {
+  uint3 v = (0u).xxx;
+  arg_0.GetDimensions(v[0u], v[1u], v[2u]);
+  uint res = v.z;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store(0u, textureNumLayers_e47aac());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store(0u, textureNumLayers_e47aac());
+}
+
diff --git a/test/tint/builtins/gen/literal/textureNumLayers/f1783f.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/textureNumLayers/f1783f.wgsl.expected.ir.dxc.hlsl
index c3bb13b..f35e47e 100644
--- a/test/tint/builtins/gen/literal/textureNumLayers/f1783f.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureNumLayers/f1783f.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,45 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  uint prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureNumLayers
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation uint VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+Texture2DArray<float4> arg_0 : register(t0, space1);
+uint textureNumLayers_f1783f() {
+  uint3 v = (0u).xxx;
+  arg_0.GetDimensions(v[0u], v[1u], v[2u]);
+  uint res = v.z;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store(0u, textureNumLayers_f1783f());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store(0u, textureNumLayers_f1783f());
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = textureNumLayers_f1783f();
+  VertexOutput v_1 = tint_symbol;
+  return v_1;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_2 = vertex_main_inner();
+  VertexOutput v_3 = v_2;
+  VertexOutput v_4 = v_2;
+  vertex_main_outputs v_5 = {v_4.prevent_dce, v_3.pos};
+  return v_5;
+}
+
diff --git a/test/tint/builtins/gen/literal/textureNumLayers/f1783f.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/textureNumLayers/f1783f.wgsl.expected.ir.fxc.hlsl
index c3bb13b..f35e47e 100644
--- a/test/tint/builtins/gen/literal/textureNumLayers/f1783f.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureNumLayers/f1783f.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,45 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  uint prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureNumLayers
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation uint VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+Texture2DArray<float4> arg_0 : register(t0, space1);
+uint textureNumLayers_f1783f() {
+  uint3 v = (0u).xxx;
+  arg_0.GetDimensions(v[0u], v[1u], v[2u]);
+  uint res = v.z;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store(0u, textureNumLayers_f1783f());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store(0u, textureNumLayers_f1783f());
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = textureNumLayers_f1783f();
+  VertexOutput v_1 = tint_symbol;
+  return v_1;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_2 = vertex_main_inner();
+  VertexOutput v_3 = v_2;
+  VertexOutput v_4 = v_2;
+  vertex_main_outputs v_5 = {v_4.prevent_dce, v_3.pos};
+  return v_5;
+}
+
diff --git a/test/tint/builtins/gen/literal/textureNumLevels/181090.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/textureNumLevels/181090.wgsl.expected.ir.dxc.hlsl
index c5f3f6e..b055046 100644
--- a/test/tint/builtins/gen/literal/textureNumLevels/181090.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureNumLevels/181090.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,45 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  uint prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureNumLevels
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation uint VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+Texture2DArray<uint4> arg_0 : register(t0, space1);
+uint textureNumLevels_181090() {
+  uint4 v = (0u).xxxx;
+  arg_0.GetDimensions(0u, v[0u], v[1u], v[2u], v[3u]);
+  uint res = v.w;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store(0u, textureNumLevels_181090());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store(0u, textureNumLevels_181090());
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = textureNumLevels_181090();
+  VertexOutput v_1 = tint_symbol;
+  return v_1;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_2 = vertex_main_inner();
+  VertexOutput v_3 = v_2;
+  VertexOutput v_4 = v_2;
+  vertex_main_outputs v_5 = {v_4.prevent_dce, v_3.pos};
+  return v_5;
+}
+
diff --git a/test/tint/builtins/gen/literal/textureNumLevels/181090.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/textureNumLevels/181090.wgsl.expected.ir.fxc.hlsl
index c5f3f6e..b055046 100644
--- a/test/tint/builtins/gen/literal/textureNumLevels/181090.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureNumLevels/181090.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,45 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  uint prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureNumLevels
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation uint VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+Texture2DArray<uint4> arg_0 : register(t0, space1);
+uint textureNumLevels_181090() {
+  uint4 v = (0u).xxxx;
+  arg_0.GetDimensions(0u, v[0u], v[1u], v[2u], v[3u]);
+  uint res = v.w;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store(0u, textureNumLevels_181090());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store(0u, textureNumLevels_181090());
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = textureNumLevels_181090();
+  VertexOutput v_1 = tint_symbol;
+  return v_1;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_2 = vertex_main_inner();
+  VertexOutput v_3 = v_2;
+  VertexOutput v_4 = v_2;
+  vertex_main_outputs v_5 = {v_4.prevent_dce, v_3.pos};
+  return v_5;
+}
+
diff --git a/test/tint/builtins/gen/literal/textureNumLevels/1a3fa9.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/textureNumLevels/1a3fa9.wgsl.expected.ir.dxc.hlsl
index c5f3f6e..3b269a4 100644
--- a/test/tint/builtins/gen/literal/textureNumLevels/1a3fa9.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureNumLevels/1a3fa9.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,45 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  uint prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureNumLevels
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation uint VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+Texture2D<int4> arg_0 : register(t0, space1);
+uint textureNumLevels_1a3fa9() {
+  uint3 v = (0u).xxx;
+  arg_0.GetDimensions(0u, v[0u], v[1u], v[2u]);
+  uint res = v.z;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store(0u, textureNumLevels_1a3fa9());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store(0u, textureNumLevels_1a3fa9());
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = textureNumLevels_1a3fa9();
+  VertexOutput v_1 = tint_symbol;
+  return v_1;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_2 = vertex_main_inner();
+  VertexOutput v_3 = v_2;
+  VertexOutput v_4 = v_2;
+  vertex_main_outputs v_5 = {v_4.prevent_dce, v_3.pos};
+  return v_5;
+}
+
diff --git a/test/tint/builtins/gen/literal/textureNumLevels/1a3fa9.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/textureNumLevels/1a3fa9.wgsl.expected.ir.fxc.hlsl
index c5f3f6e..3b269a4 100644
--- a/test/tint/builtins/gen/literal/textureNumLevels/1a3fa9.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureNumLevels/1a3fa9.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,45 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  uint prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureNumLevels
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation uint VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+Texture2D<int4> arg_0 : register(t0, space1);
+uint textureNumLevels_1a3fa9() {
+  uint3 v = (0u).xxx;
+  arg_0.GetDimensions(0u, v[0u], v[1u], v[2u]);
+  uint res = v.z;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store(0u, textureNumLevels_1a3fa9());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store(0u, textureNumLevels_1a3fa9());
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = textureNumLevels_1a3fa9();
+  VertexOutput v_1 = tint_symbol;
+  return v_1;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_2 = vertex_main_inner();
+  VertexOutput v_3 = v_2;
+  VertexOutput v_4 = v_2;
+  vertex_main_outputs v_5 = {v_4.prevent_dce, v_3.pos};
+  return v_5;
+}
+
diff --git a/test/tint/builtins/gen/literal/textureNumLevels/1a7fc3.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/textureNumLevels/1a7fc3.wgsl.expected.ir.dxc.hlsl
index c5f3f6e..3c99f63 100644
--- a/test/tint/builtins/gen/literal/textureNumLevels/1a7fc3.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureNumLevels/1a7fc3.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,45 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  uint prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureNumLevels
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation uint VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+Texture1D<uint4> arg_0 : register(t0, space1);
+uint textureNumLevels_1a7fc3() {
+  uint2 v = (0u).xx;
+  arg_0.GetDimensions(0u, v[0u], v[1u]);
+  uint res = v.y;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store(0u, textureNumLevels_1a7fc3());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store(0u, textureNumLevels_1a7fc3());
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = textureNumLevels_1a7fc3();
+  VertexOutput v_1 = tint_symbol;
+  return v_1;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_2 = vertex_main_inner();
+  VertexOutput v_3 = v_2;
+  VertexOutput v_4 = v_2;
+  vertex_main_outputs v_5 = {v_4.prevent_dce, v_3.pos};
+  return v_5;
+}
+
diff --git a/test/tint/builtins/gen/literal/textureNumLevels/1a7fc3.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/textureNumLevels/1a7fc3.wgsl.expected.ir.fxc.hlsl
index c5f3f6e..3c99f63 100644
--- a/test/tint/builtins/gen/literal/textureNumLevels/1a7fc3.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureNumLevels/1a7fc3.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,45 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  uint prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureNumLevels
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation uint VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+Texture1D<uint4> arg_0 : register(t0, space1);
+uint textureNumLevels_1a7fc3() {
+  uint2 v = (0u).xx;
+  arg_0.GetDimensions(0u, v[0u], v[1u]);
+  uint res = v.y;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store(0u, textureNumLevels_1a7fc3());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store(0u, textureNumLevels_1a7fc3());
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = textureNumLevels_1a7fc3();
+  VertexOutput v_1 = tint_symbol;
+  return v_1;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_2 = vertex_main_inner();
+  VertexOutput v_3 = v_2;
+  VertexOutput v_4 = v_2;
+  vertex_main_outputs v_5 = {v_4.prevent_dce, v_3.pos};
+  return v_5;
+}
+
diff --git a/test/tint/builtins/gen/literal/textureNumLevels/2267d8.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/textureNumLevels/2267d8.wgsl.expected.ir.dxc.hlsl
index c5f3f6e..882dc92 100644
--- a/test/tint/builtins/gen/literal/textureNumLevels/2267d8.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureNumLevels/2267d8.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,45 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  uint prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureNumLevels
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation uint VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+TextureCube<int4> arg_0 : register(t0, space1);
+uint textureNumLevels_2267d8() {
+  uint3 v = (0u).xxx;
+  arg_0.GetDimensions(0u, v[0u], v[1u], v[2u]);
+  uint res = v.z;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store(0u, textureNumLevels_2267d8());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store(0u, textureNumLevels_2267d8());
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = textureNumLevels_2267d8();
+  VertexOutput v_1 = tint_symbol;
+  return v_1;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_2 = vertex_main_inner();
+  VertexOutput v_3 = v_2;
+  VertexOutput v_4 = v_2;
+  vertex_main_outputs v_5 = {v_4.prevent_dce, v_3.pos};
+  return v_5;
+}
+
diff --git a/test/tint/builtins/gen/literal/textureNumLevels/2267d8.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/textureNumLevels/2267d8.wgsl.expected.ir.fxc.hlsl
index c5f3f6e..882dc92 100644
--- a/test/tint/builtins/gen/literal/textureNumLevels/2267d8.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureNumLevels/2267d8.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,45 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  uint prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureNumLevels
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation uint VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+TextureCube<int4> arg_0 : register(t0, space1);
+uint textureNumLevels_2267d8() {
+  uint3 v = (0u).xxx;
+  arg_0.GetDimensions(0u, v[0u], v[1u], v[2u]);
+  uint res = v.z;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store(0u, textureNumLevels_2267d8());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store(0u, textureNumLevels_2267d8());
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = textureNumLevels_2267d8();
+  VertexOutput v_1 = tint_symbol;
+  return v_1;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_2 = vertex_main_inner();
+  VertexOutput v_3 = v_2;
+  VertexOutput v_4 = v_2;
+  vertex_main_outputs v_5 = {v_4.prevent_dce, v_3.pos};
+  return v_5;
+}
+
diff --git a/test/tint/builtins/gen/literal/textureNumLevels/24b2c6.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/textureNumLevels/24b2c6.wgsl.expected.ir.dxc.hlsl
index c5f3f6e..ac900b7 100644
--- a/test/tint/builtins/gen/literal/textureNumLevels/24b2c6.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureNumLevels/24b2c6.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,45 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  uint prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureNumLevels
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation uint VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+Texture2D<float4> arg_0 : register(t0, space1);
+uint textureNumLevels_24b2c6() {
+  uint3 v = (0u).xxx;
+  arg_0.GetDimensions(0u, v[0u], v[1u], v[2u]);
+  uint res = v.z;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store(0u, textureNumLevels_24b2c6());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store(0u, textureNumLevels_24b2c6());
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = textureNumLevels_24b2c6();
+  VertexOutput v_1 = tint_symbol;
+  return v_1;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_2 = vertex_main_inner();
+  VertexOutput v_3 = v_2;
+  VertexOutput v_4 = v_2;
+  vertex_main_outputs v_5 = {v_4.prevent_dce, v_3.pos};
+  return v_5;
+}
+
diff --git a/test/tint/builtins/gen/literal/textureNumLevels/24b2c6.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/textureNumLevels/24b2c6.wgsl.expected.ir.fxc.hlsl
index c5f3f6e..ac900b7 100644
--- a/test/tint/builtins/gen/literal/textureNumLevels/24b2c6.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureNumLevels/24b2c6.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,45 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  uint prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureNumLevels
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation uint VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+Texture2D<float4> arg_0 : register(t0, space1);
+uint textureNumLevels_24b2c6() {
+  uint3 v = (0u).xxx;
+  arg_0.GetDimensions(0u, v[0u], v[1u], v[2u]);
+  uint res = v.z;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store(0u, textureNumLevels_24b2c6());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store(0u, textureNumLevels_24b2c6());
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = textureNumLevels_24b2c6();
+  VertexOutput v_1 = tint_symbol;
+  return v_1;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_2 = vertex_main_inner();
+  VertexOutput v_3 = v_2;
+  VertexOutput v_4 = v_2;
+  vertex_main_outputs v_5 = {v_4.prevent_dce, v_3.pos};
+  return v_5;
+}
+
diff --git a/test/tint/builtins/gen/literal/textureNumLevels/2bea6c.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/textureNumLevels/2bea6c.wgsl.expected.ir.dxc.hlsl
index c5f3f6e..25438287 100644
--- a/test/tint/builtins/gen/literal/textureNumLevels/2bea6c.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureNumLevels/2bea6c.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,45 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  uint prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureNumLevels
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation uint VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+TextureCubeArray arg_0 : register(t0, space1);
+uint textureNumLevels_2bea6c() {
+  uint4 v = (0u).xxxx;
+  arg_0.GetDimensions(0u, v[0u], v[1u], v[2u], v[3u]);
+  uint res = v.w;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store(0u, textureNumLevels_2bea6c());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store(0u, textureNumLevels_2bea6c());
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = textureNumLevels_2bea6c();
+  VertexOutput v_1 = tint_symbol;
+  return v_1;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_2 = vertex_main_inner();
+  VertexOutput v_3 = v_2;
+  VertexOutput v_4 = v_2;
+  vertex_main_outputs v_5 = {v_4.prevent_dce, v_3.pos};
+  return v_5;
+}
+
diff --git a/test/tint/builtins/gen/literal/textureNumLevels/2bea6c.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/textureNumLevels/2bea6c.wgsl.expected.ir.fxc.hlsl
index c5f3f6e..25438287 100644
--- a/test/tint/builtins/gen/literal/textureNumLevels/2bea6c.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureNumLevels/2bea6c.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,45 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  uint prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureNumLevels
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation uint VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+TextureCubeArray arg_0 : register(t0, space1);
+uint textureNumLevels_2bea6c() {
+  uint4 v = (0u).xxxx;
+  arg_0.GetDimensions(0u, v[0u], v[1u], v[2u], v[3u]);
+  uint res = v.w;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store(0u, textureNumLevels_2bea6c());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store(0u, textureNumLevels_2bea6c());
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = textureNumLevels_2bea6c();
+  VertexOutput v_1 = tint_symbol;
+  return v_1;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_2 = vertex_main_inner();
+  VertexOutput v_3 = v_2;
+  VertexOutput v_4 = v_2;
+  vertex_main_outputs v_5 = {v_4.prevent_dce, v_3.pos};
+  return v_5;
+}
+
diff --git a/test/tint/builtins/gen/literal/textureNumLevels/2df1ab.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/textureNumLevels/2df1ab.wgsl.expected.ir.dxc.hlsl
index c5f3f6e..3eb9bf6 100644
--- a/test/tint/builtins/gen/literal/textureNumLevels/2df1ab.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureNumLevels/2df1ab.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,45 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  uint prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureNumLevels
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation uint VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+TextureCube<float4> arg_0 : register(t0, space1);
+uint textureNumLevels_2df1ab() {
+  uint3 v = (0u).xxx;
+  arg_0.GetDimensions(0u, v[0u], v[1u], v[2u]);
+  uint res = v.z;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store(0u, textureNumLevels_2df1ab());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store(0u, textureNumLevels_2df1ab());
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = textureNumLevels_2df1ab();
+  VertexOutput v_1 = tint_symbol;
+  return v_1;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_2 = vertex_main_inner();
+  VertexOutput v_3 = v_2;
+  VertexOutput v_4 = v_2;
+  vertex_main_outputs v_5 = {v_4.prevent_dce, v_3.pos};
+  return v_5;
+}
+
diff --git a/test/tint/builtins/gen/literal/textureNumLevels/2df1ab.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/textureNumLevels/2df1ab.wgsl.expected.ir.fxc.hlsl
index c5f3f6e..3eb9bf6 100644
--- a/test/tint/builtins/gen/literal/textureNumLevels/2df1ab.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureNumLevels/2df1ab.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,45 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  uint prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureNumLevels
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation uint VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+TextureCube<float4> arg_0 : register(t0, space1);
+uint textureNumLevels_2df1ab() {
+  uint3 v = (0u).xxx;
+  arg_0.GetDimensions(0u, v[0u], v[1u], v[2u]);
+  uint res = v.z;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store(0u, textureNumLevels_2df1ab());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store(0u, textureNumLevels_2df1ab());
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = textureNumLevels_2df1ab();
+  VertexOutput v_1 = tint_symbol;
+  return v_1;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_2 = vertex_main_inner();
+  VertexOutput v_3 = v_2;
+  VertexOutput v_4 = v_2;
+  vertex_main_outputs v_5 = {v_4.prevent_dce, v_3.pos};
+  return v_5;
+}
+
diff --git a/test/tint/builtins/gen/literal/textureNumLevels/46dbd8.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/textureNumLevels/46dbd8.wgsl.expected.ir.dxc.hlsl
index c5f3f6e..511dd54 100644
--- a/test/tint/builtins/gen/literal/textureNumLevels/46dbd8.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureNumLevels/46dbd8.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,45 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  uint prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureNumLevels
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation uint VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+Texture2DArray<float4> arg_0 : register(t0, space1);
+uint textureNumLevels_46dbd8() {
+  uint4 v = (0u).xxxx;
+  arg_0.GetDimensions(0u, v[0u], v[1u], v[2u], v[3u]);
+  uint res = v.w;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store(0u, textureNumLevels_46dbd8());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store(0u, textureNumLevels_46dbd8());
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = textureNumLevels_46dbd8();
+  VertexOutput v_1 = tint_symbol;
+  return v_1;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_2 = vertex_main_inner();
+  VertexOutput v_3 = v_2;
+  VertexOutput v_4 = v_2;
+  vertex_main_outputs v_5 = {v_4.prevent_dce, v_3.pos};
+  return v_5;
+}
+
diff --git a/test/tint/builtins/gen/literal/textureNumLevels/46dbd8.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/textureNumLevels/46dbd8.wgsl.expected.ir.fxc.hlsl
index c5f3f6e..511dd54 100644
--- a/test/tint/builtins/gen/literal/textureNumLevels/46dbd8.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureNumLevels/46dbd8.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,45 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  uint prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureNumLevels
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation uint VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+Texture2DArray<float4> arg_0 : register(t0, space1);
+uint textureNumLevels_46dbd8() {
+  uint4 v = (0u).xxxx;
+  arg_0.GetDimensions(0u, v[0u], v[1u], v[2u], v[3u]);
+  uint res = v.w;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store(0u, textureNumLevels_46dbd8());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store(0u, textureNumLevels_46dbd8());
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = textureNumLevels_46dbd8();
+  VertexOutput v_1 = tint_symbol;
+  return v_1;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_2 = vertex_main_inner();
+  VertexOutput v_3 = v_2;
+  VertexOutput v_4 = v_2;
+  vertex_main_outputs v_5 = {v_4.prevent_dce, v_3.pos};
+  return v_5;
+}
+
diff --git a/test/tint/builtins/gen/literal/textureNumLevels/60d9b8.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/textureNumLevels/60d9b8.wgsl.expected.ir.dxc.hlsl
index c5f3f6e..6d443ff 100644
--- a/test/tint/builtins/gen/literal/textureNumLevels/60d9b8.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureNumLevels/60d9b8.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,45 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  uint prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureNumLevels
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation uint VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+Texture3D<uint4> arg_0 : register(t0, space1);
+uint textureNumLevels_60d9b8() {
+  uint4 v = (0u).xxxx;
+  arg_0.GetDimensions(0u, v[0u], v[1u], v[2u], v[3u]);
+  uint res = v.w;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store(0u, textureNumLevels_60d9b8());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store(0u, textureNumLevels_60d9b8());
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = textureNumLevels_60d9b8();
+  VertexOutput v_1 = tint_symbol;
+  return v_1;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_2 = vertex_main_inner();
+  VertexOutput v_3 = v_2;
+  VertexOutput v_4 = v_2;
+  vertex_main_outputs v_5 = {v_4.prevent_dce, v_3.pos};
+  return v_5;
+}
+
diff --git a/test/tint/builtins/gen/literal/textureNumLevels/60d9b8.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/textureNumLevels/60d9b8.wgsl.expected.ir.fxc.hlsl
index c5f3f6e..6d443ff 100644
--- a/test/tint/builtins/gen/literal/textureNumLevels/60d9b8.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureNumLevels/60d9b8.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,45 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  uint prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureNumLevels
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation uint VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+Texture3D<uint4> arg_0 : register(t0, space1);
+uint textureNumLevels_60d9b8() {
+  uint4 v = (0u).xxxx;
+  arg_0.GetDimensions(0u, v[0u], v[1u], v[2u], v[3u]);
+  uint res = v.w;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store(0u, textureNumLevels_60d9b8());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store(0u, textureNumLevels_60d9b8());
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = textureNumLevels_60d9b8();
+  VertexOutput v_1 = tint_symbol;
+  return v_1;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_2 = vertex_main_inner();
+  VertexOutput v_3 = v_2;
+  VertexOutput v_4 = v_2;
+  vertex_main_outputs v_5 = {v_4.prevent_dce, v_3.pos};
+  return v_5;
+}
+
diff --git a/test/tint/builtins/gen/literal/textureNumLevels/903920.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/textureNumLevels/903920.wgsl.expected.ir.dxc.hlsl
index c5f3f6e..a53836b 100644
--- a/test/tint/builtins/gen/literal/textureNumLevels/903920.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureNumLevels/903920.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,45 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  uint prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureNumLevels
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation uint VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+TextureCubeArray<int4> arg_0 : register(t0, space1);
+uint textureNumLevels_903920() {
+  uint4 v = (0u).xxxx;
+  arg_0.GetDimensions(0u, v[0u], v[1u], v[2u], v[3u]);
+  uint res = v.w;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store(0u, textureNumLevels_903920());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store(0u, textureNumLevels_903920());
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = textureNumLevels_903920();
+  VertexOutput v_1 = tint_symbol;
+  return v_1;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_2 = vertex_main_inner();
+  VertexOutput v_3 = v_2;
+  VertexOutput v_4 = v_2;
+  vertex_main_outputs v_5 = {v_4.prevent_dce, v_3.pos};
+  return v_5;
+}
+
diff --git a/test/tint/builtins/gen/literal/textureNumLevels/903920.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/textureNumLevels/903920.wgsl.expected.ir.fxc.hlsl
index c5f3f6e..a53836b 100644
--- a/test/tint/builtins/gen/literal/textureNumLevels/903920.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureNumLevels/903920.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,45 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  uint prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureNumLevels
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation uint VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+TextureCubeArray<int4> arg_0 : register(t0, space1);
+uint textureNumLevels_903920() {
+  uint4 v = (0u).xxxx;
+  arg_0.GetDimensions(0u, v[0u], v[1u], v[2u], v[3u]);
+  uint res = v.w;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store(0u, textureNumLevels_903920());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store(0u, textureNumLevels_903920());
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = textureNumLevels_903920();
+  VertexOutput v_1 = tint_symbol;
+  return v_1;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_2 = vertex_main_inner();
+  VertexOutput v_3 = v_2;
+  VertexOutput v_4 = v_2;
+  vertex_main_outputs v_5 = {v_4.prevent_dce, v_3.pos};
+  return v_5;
+}
+
diff --git a/test/tint/builtins/gen/literal/textureNumLevels/9a1a65.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/textureNumLevels/9a1a65.wgsl.expected.ir.dxc.hlsl
index c5f3f6e..f2a91d6 100644
--- a/test/tint/builtins/gen/literal/textureNumLevels/9a1a65.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureNumLevels/9a1a65.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,45 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  uint prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureNumLevels
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation uint VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+Texture3D<int4> arg_0 : register(t0, space1);
+uint textureNumLevels_9a1a65() {
+  uint4 v = (0u).xxxx;
+  arg_0.GetDimensions(0u, v[0u], v[1u], v[2u], v[3u]);
+  uint res = v.w;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store(0u, textureNumLevels_9a1a65());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store(0u, textureNumLevels_9a1a65());
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = textureNumLevels_9a1a65();
+  VertexOutput v_1 = tint_symbol;
+  return v_1;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_2 = vertex_main_inner();
+  VertexOutput v_3 = v_2;
+  VertexOutput v_4 = v_2;
+  vertex_main_outputs v_5 = {v_4.prevent_dce, v_3.pos};
+  return v_5;
+}
+
diff --git a/test/tint/builtins/gen/literal/textureNumLevels/9a1a65.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/textureNumLevels/9a1a65.wgsl.expected.ir.fxc.hlsl
index c5f3f6e..f2a91d6 100644
--- a/test/tint/builtins/gen/literal/textureNumLevels/9a1a65.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureNumLevels/9a1a65.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,45 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  uint prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureNumLevels
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation uint VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+Texture3D<int4> arg_0 : register(t0, space1);
+uint textureNumLevels_9a1a65() {
+  uint4 v = (0u).xxxx;
+  arg_0.GetDimensions(0u, v[0u], v[1u], v[2u], v[3u]);
+  uint res = v.w;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store(0u, textureNumLevels_9a1a65());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store(0u, textureNumLevels_9a1a65());
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = textureNumLevels_9a1a65();
+  VertexOutput v_1 = tint_symbol;
+  return v_1;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_2 = vertex_main_inner();
+  VertexOutput v_3 = v_2;
+  VertexOutput v_4 = v_2;
+  vertex_main_outputs v_5 = {v_4.prevent_dce, v_3.pos};
+  return v_5;
+}
+
diff --git a/test/tint/builtins/gen/literal/textureNumLevels/adc783.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/textureNumLevels/adc783.wgsl.expected.ir.dxc.hlsl
index c5f3f6e..f1fd968 100644
--- a/test/tint/builtins/gen/literal/textureNumLevels/adc783.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureNumLevels/adc783.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,45 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  uint prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureNumLevels
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation uint VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+Texture2DArray<int4> arg_0 : register(t0, space1);
+uint textureNumLevels_adc783() {
+  uint4 v = (0u).xxxx;
+  arg_0.GetDimensions(0u, v[0u], v[1u], v[2u], v[3u]);
+  uint res = v.w;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store(0u, textureNumLevels_adc783());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store(0u, textureNumLevels_adc783());
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = textureNumLevels_adc783();
+  VertexOutput v_1 = tint_symbol;
+  return v_1;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_2 = vertex_main_inner();
+  VertexOutput v_3 = v_2;
+  VertexOutput v_4 = v_2;
+  vertex_main_outputs v_5 = {v_4.prevent_dce, v_3.pos};
+  return v_5;
+}
+
diff --git a/test/tint/builtins/gen/literal/textureNumLevels/adc783.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/textureNumLevels/adc783.wgsl.expected.ir.fxc.hlsl
index c5f3f6e..f1fd968 100644
--- a/test/tint/builtins/gen/literal/textureNumLevels/adc783.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureNumLevels/adc783.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,45 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  uint prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureNumLevels
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation uint VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+Texture2DArray<int4> arg_0 : register(t0, space1);
+uint textureNumLevels_adc783() {
+  uint4 v = (0u).xxxx;
+  arg_0.GetDimensions(0u, v[0u], v[1u], v[2u], v[3u]);
+  uint res = v.w;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store(0u, textureNumLevels_adc783());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store(0u, textureNumLevels_adc783());
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = textureNumLevels_adc783();
+  VertexOutput v_1 = tint_symbol;
+  return v_1;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_2 = vertex_main_inner();
+  VertexOutput v_3 = v_2;
+  VertexOutput v_4 = v_2;
+  vertex_main_outputs v_5 = {v_4.prevent_dce, v_3.pos};
+  return v_5;
+}
+
diff --git a/test/tint/builtins/gen/literal/textureNumLevels/ae911c.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/textureNumLevels/ae911c.wgsl.expected.ir.dxc.hlsl
index c5f3f6e..d77d459 100644
--- a/test/tint/builtins/gen/literal/textureNumLevels/ae911c.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureNumLevels/ae911c.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,45 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  uint prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureNumLevels
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation uint VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+Texture2DArray arg_0 : register(t0, space1);
+uint textureNumLevels_ae911c() {
+  uint4 v = (0u).xxxx;
+  arg_0.GetDimensions(0u, v[0u], v[1u], v[2u], v[3u]);
+  uint res = v.w;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store(0u, textureNumLevels_ae911c());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store(0u, textureNumLevels_ae911c());
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = textureNumLevels_ae911c();
+  VertexOutput v_1 = tint_symbol;
+  return v_1;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_2 = vertex_main_inner();
+  VertexOutput v_3 = v_2;
+  VertexOutput v_4 = v_2;
+  vertex_main_outputs v_5 = {v_4.prevent_dce, v_3.pos};
+  return v_5;
+}
+
diff --git a/test/tint/builtins/gen/literal/textureNumLevels/ae911c.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/textureNumLevels/ae911c.wgsl.expected.ir.fxc.hlsl
index c5f3f6e..d77d459 100644
--- a/test/tint/builtins/gen/literal/textureNumLevels/ae911c.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureNumLevels/ae911c.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,45 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  uint prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureNumLevels
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation uint VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+Texture2DArray arg_0 : register(t0, space1);
+uint textureNumLevels_ae911c() {
+  uint4 v = (0u).xxxx;
+  arg_0.GetDimensions(0u, v[0u], v[1u], v[2u], v[3u]);
+  uint res = v.w;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store(0u, textureNumLevels_ae911c());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store(0u, textureNumLevels_ae911c());
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = textureNumLevels_ae911c();
+  VertexOutput v_1 = tint_symbol;
+  return v_1;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_2 = vertex_main_inner();
+  VertexOutput v_3 = v_2;
+  VertexOutput v_4 = v_2;
+  vertex_main_outputs v_5 = {v_4.prevent_dce, v_3.pos};
+  return v_5;
+}
+
diff --git a/test/tint/builtins/gen/literal/textureNumLevels/c386c8.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/textureNumLevels/c386c8.wgsl.expected.ir.dxc.hlsl
index c5f3f6e..e88660b 100644
--- a/test/tint/builtins/gen/literal/textureNumLevels/c386c8.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureNumLevels/c386c8.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,45 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  uint prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureNumLevels
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation uint VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+TextureCube<uint4> arg_0 : register(t0, space1);
+uint textureNumLevels_c386c8() {
+  uint3 v = (0u).xxx;
+  arg_0.GetDimensions(0u, v[0u], v[1u], v[2u]);
+  uint res = v.z;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store(0u, textureNumLevels_c386c8());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store(0u, textureNumLevels_c386c8());
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = textureNumLevels_c386c8();
+  VertexOutput v_1 = tint_symbol;
+  return v_1;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_2 = vertex_main_inner();
+  VertexOutput v_3 = v_2;
+  VertexOutput v_4 = v_2;
+  vertex_main_outputs v_5 = {v_4.prevent_dce, v_3.pos};
+  return v_5;
+}
+
diff --git a/test/tint/builtins/gen/literal/textureNumLevels/c386c8.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/textureNumLevels/c386c8.wgsl.expected.ir.fxc.hlsl
index c5f3f6e..e88660b 100644
--- a/test/tint/builtins/gen/literal/textureNumLevels/c386c8.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureNumLevels/c386c8.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,45 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  uint prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureNumLevels
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation uint VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+TextureCube<uint4> arg_0 : register(t0, space1);
+uint textureNumLevels_c386c8() {
+  uint3 v = (0u).xxx;
+  arg_0.GetDimensions(0u, v[0u], v[1u], v[2u]);
+  uint res = v.z;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store(0u, textureNumLevels_c386c8());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store(0u, textureNumLevels_c386c8());
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = textureNumLevels_c386c8();
+  VertexOutput v_1 = tint_symbol;
+  return v_1;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_2 = vertex_main_inner();
+  VertexOutput v_3 = v_2;
+  VertexOutput v_4 = v_2;
+  vertex_main_outputs v_5 = {v_4.prevent_dce, v_3.pos};
+  return v_5;
+}
+
diff --git a/test/tint/builtins/gen/literal/textureNumLevels/c399f9.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/textureNumLevels/c399f9.wgsl.expected.ir.dxc.hlsl
index c5f3f6e..ba7a8ab 100644
--- a/test/tint/builtins/gen/literal/textureNumLevels/c399f9.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureNumLevels/c399f9.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,45 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  uint prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureNumLevels
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation uint VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+Texture1D<float4> arg_0 : register(t0, space1);
+uint textureNumLevels_c399f9() {
+  uint2 v = (0u).xx;
+  arg_0.GetDimensions(0u, v[0u], v[1u]);
+  uint res = v.y;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store(0u, textureNumLevels_c399f9());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store(0u, textureNumLevels_c399f9());
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = textureNumLevels_c399f9();
+  VertexOutput v_1 = tint_symbol;
+  return v_1;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_2 = vertex_main_inner();
+  VertexOutput v_3 = v_2;
+  VertexOutput v_4 = v_2;
+  vertex_main_outputs v_5 = {v_4.prevent_dce, v_3.pos};
+  return v_5;
+}
+
diff --git a/test/tint/builtins/gen/literal/textureNumLevels/c399f9.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/textureNumLevels/c399f9.wgsl.expected.ir.fxc.hlsl
index c5f3f6e..ba7a8ab 100644
--- a/test/tint/builtins/gen/literal/textureNumLevels/c399f9.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureNumLevels/c399f9.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,45 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  uint prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureNumLevels
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation uint VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+Texture1D<float4> arg_0 : register(t0, space1);
+uint textureNumLevels_c399f9() {
+  uint2 v = (0u).xx;
+  arg_0.GetDimensions(0u, v[0u], v[1u]);
+  uint res = v.y;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store(0u, textureNumLevels_c399f9());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store(0u, textureNumLevels_c399f9());
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = textureNumLevels_c399f9();
+  VertexOutput v_1 = tint_symbol;
+  return v_1;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_2 = vertex_main_inner();
+  VertexOutput v_3 = v_2;
+  VertexOutput v_4 = v_2;
+  vertex_main_outputs v_5 = {v_4.prevent_dce, v_3.pos};
+  return v_5;
+}
+
diff --git a/test/tint/builtins/gen/literal/textureNumLevels/c8c25c.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/textureNumLevels/c8c25c.wgsl.expected.ir.dxc.hlsl
index c5f3f6e..d4f9b97 100644
--- a/test/tint/builtins/gen/literal/textureNumLevels/c8c25c.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureNumLevels/c8c25c.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,45 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  uint prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureNumLevels
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation uint VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+TextureCube arg_0 : register(t0, space1);
+uint textureNumLevels_c8c25c() {
+  uint3 v = (0u).xxx;
+  arg_0.GetDimensions(0u, v[0u], v[1u], v[2u]);
+  uint res = v.z;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store(0u, textureNumLevels_c8c25c());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store(0u, textureNumLevels_c8c25c());
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = textureNumLevels_c8c25c();
+  VertexOutput v_1 = tint_symbol;
+  return v_1;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_2 = vertex_main_inner();
+  VertexOutput v_3 = v_2;
+  VertexOutput v_4 = v_2;
+  vertex_main_outputs v_5 = {v_4.prevent_dce, v_3.pos};
+  return v_5;
+}
+
diff --git a/test/tint/builtins/gen/literal/textureNumLevels/c8c25c.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/textureNumLevels/c8c25c.wgsl.expected.ir.fxc.hlsl
index c5f3f6e..d4f9b97 100644
--- a/test/tint/builtins/gen/literal/textureNumLevels/c8c25c.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureNumLevels/c8c25c.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,45 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  uint prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureNumLevels
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation uint VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+TextureCube arg_0 : register(t0, space1);
+uint textureNumLevels_c8c25c() {
+  uint3 v = (0u).xxx;
+  arg_0.GetDimensions(0u, v[0u], v[1u], v[2u]);
+  uint res = v.z;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store(0u, textureNumLevels_c8c25c());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store(0u, textureNumLevels_c8c25c());
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = textureNumLevels_c8c25c();
+  VertexOutput v_1 = tint_symbol;
+  return v_1;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_2 = vertex_main_inner();
+  VertexOutput v_3 = v_2;
+  VertexOutput v_4 = v_2;
+  vertex_main_outputs v_5 = {v_4.prevent_dce, v_3.pos};
+  return v_5;
+}
+
diff --git a/test/tint/builtins/gen/literal/textureNumLevels/d63126.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/textureNumLevels/d63126.wgsl.expected.ir.dxc.hlsl
index c5f3f6e..8133520 100644
--- a/test/tint/builtins/gen/literal/textureNumLevels/d63126.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureNumLevels/d63126.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,45 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  uint prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureNumLevels
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation uint VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+Texture2D arg_0 : register(t0, space1);
+uint textureNumLevels_d63126() {
+  uint3 v = (0u).xxx;
+  arg_0.GetDimensions(0u, v[0u], v[1u], v[2u]);
+  uint res = v.z;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store(0u, textureNumLevels_d63126());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store(0u, textureNumLevels_d63126());
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = textureNumLevels_d63126();
+  VertexOutput v_1 = tint_symbol;
+  return v_1;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_2 = vertex_main_inner();
+  VertexOutput v_3 = v_2;
+  VertexOutput v_4 = v_2;
+  vertex_main_outputs v_5 = {v_4.prevent_dce, v_3.pos};
+  return v_5;
+}
+
diff --git a/test/tint/builtins/gen/literal/textureNumLevels/d63126.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/textureNumLevels/d63126.wgsl.expected.ir.fxc.hlsl
index c5f3f6e..8133520 100644
--- a/test/tint/builtins/gen/literal/textureNumLevels/d63126.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureNumLevels/d63126.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,45 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  uint prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureNumLevels
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation uint VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+Texture2D arg_0 : register(t0, space1);
+uint textureNumLevels_d63126() {
+  uint3 v = (0u).xxx;
+  arg_0.GetDimensions(0u, v[0u], v[1u], v[2u]);
+  uint res = v.z;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store(0u, textureNumLevels_d63126());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store(0u, textureNumLevels_d63126());
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = textureNumLevels_d63126();
+  VertexOutput v_1 = tint_symbol;
+  return v_1;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_2 = vertex_main_inner();
+  VertexOutput v_3 = v_2;
+  VertexOutput v_4 = v_2;
+  vertex_main_outputs v_5 = {v_4.prevent_dce, v_3.pos};
+  return v_5;
+}
+
diff --git a/test/tint/builtins/gen/literal/textureNumLevels/d8f73b.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/textureNumLevels/d8f73b.wgsl.expected.ir.dxc.hlsl
index c5f3f6e..4d4e493 100644
--- a/test/tint/builtins/gen/literal/textureNumLevels/d8f73b.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureNumLevels/d8f73b.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,45 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  uint prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureNumLevels
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation uint VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+TextureCubeArray<float4> arg_0 : register(t0, space1);
+uint textureNumLevels_d8f73b() {
+  uint4 v = (0u).xxxx;
+  arg_0.GetDimensions(0u, v[0u], v[1u], v[2u], v[3u]);
+  uint res = v.w;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store(0u, textureNumLevels_d8f73b());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store(0u, textureNumLevels_d8f73b());
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = textureNumLevels_d8f73b();
+  VertexOutput v_1 = tint_symbol;
+  return v_1;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_2 = vertex_main_inner();
+  VertexOutput v_3 = v_2;
+  VertexOutput v_4 = v_2;
+  vertex_main_outputs v_5 = {v_4.prevent_dce, v_3.pos};
+  return v_5;
+}
+
diff --git a/test/tint/builtins/gen/literal/textureNumLevels/d8f73b.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/textureNumLevels/d8f73b.wgsl.expected.ir.fxc.hlsl
index c5f3f6e..4d4e493 100644
--- a/test/tint/builtins/gen/literal/textureNumLevels/d8f73b.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureNumLevels/d8f73b.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,45 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  uint prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureNumLevels
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation uint VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+TextureCubeArray<float4> arg_0 : register(t0, space1);
+uint textureNumLevels_d8f73b() {
+  uint4 v = (0u).xxxx;
+  arg_0.GetDimensions(0u, v[0u], v[1u], v[2u], v[3u]);
+  uint res = v.w;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store(0u, textureNumLevels_d8f73b());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store(0u, textureNumLevels_d8f73b());
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = textureNumLevels_d8f73b();
+  VertexOutput v_1 = tint_symbol;
+  return v_1;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_2 = vertex_main_inner();
+  VertexOutput v_3 = v_2;
+  VertexOutput v_4 = v_2;
+  vertex_main_outputs v_5 = {v_4.prevent_dce, v_3.pos};
+  return v_5;
+}
+
diff --git a/test/tint/builtins/gen/literal/textureNumLevels/ef7944.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/textureNumLevels/ef7944.wgsl.expected.ir.dxc.hlsl
index c5f3f6e..cd93bef 100644
--- a/test/tint/builtins/gen/literal/textureNumLevels/ef7944.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureNumLevels/ef7944.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,45 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  uint prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureNumLevels
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation uint VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+Texture3D<float4> arg_0 : register(t0, space1);
+uint textureNumLevels_ef7944() {
+  uint4 v = (0u).xxxx;
+  arg_0.GetDimensions(0u, v[0u], v[1u], v[2u], v[3u]);
+  uint res = v.w;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store(0u, textureNumLevels_ef7944());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store(0u, textureNumLevels_ef7944());
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = textureNumLevels_ef7944();
+  VertexOutput v_1 = tint_symbol;
+  return v_1;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_2 = vertex_main_inner();
+  VertexOutput v_3 = v_2;
+  VertexOutput v_4 = v_2;
+  vertex_main_outputs v_5 = {v_4.prevent_dce, v_3.pos};
+  return v_5;
+}
+
diff --git a/test/tint/builtins/gen/literal/textureNumLevels/ef7944.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/textureNumLevels/ef7944.wgsl.expected.ir.fxc.hlsl
index c5f3f6e..cd93bef 100644
--- a/test/tint/builtins/gen/literal/textureNumLevels/ef7944.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureNumLevels/ef7944.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,45 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  uint prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureNumLevels
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation uint VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+Texture3D<float4> arg_0 : register(t0, space1);
+uint textureNumLevels_ef7944() {
+  uint4 v = (0u).xxxx;
+  arg_0.GetDimensions(0u, v[0u], v[1u], v[2u], v[3u]);
+  uint res = v.w;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store(0u, textureNumLevels_ef7944());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store(0u, textureNumLevels_ef7944());
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = textureNumLevels_ef7944();
+  VertexOutput v_1 = tint_symbol;
+  return v_1;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_2 = vertex_main_inner();
+  VertexOutput v_3 = v_2;
+  VertexOutput v_4 = v_2;
+  vertex_main_outputs v_5 = {v_4.prevent_dce, v_3.pos};
+  return v_5;
+}
+
diff --git a/test/tint/builtins/gen/literal/textureNumLevels/efd6df.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/textureNumLevels/efd6df.wgsl.expected.ir.dxc.hlsl
index c5f3f6e..df680e3 100644
--- a/test/tint/builtins/gen/literal/textureNumLevels/efd6df.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureNumLevels/efd6df.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,45 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  uint prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureNumLevels
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation uint VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+Texture2D<uint4> arg_0 : register(t0, space1);
+uint textureNumLevels_efd6df() {
+  uint3 v = (0u).xxx;
+  arg_0.GetDimensions(0u, v[0u], v[1u], v[2u]);
+  uint res = v.z;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store(0u, textureNumLevels_efd6df());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store(0u, textureNumLevels_efd6df());
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = textureNumLevels_efd6df();
+  VertexOutput v_1 = tint_symbol;
+  return v_1;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_2 = vertex_main_inner();
+  VertexOutput v_3 = v_2;
+  VertexOutput v_4 = v_2;
+  vertex_main_outputs v_5 = {v_4.prevent_dce, v_3.pos};
+  return v_5;
+}
+
diff --git a/test/tint/builtins/gen/literal/textureNumLevels/efd6df.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/textureNumLevels/efd6df.wgsl.expected.ir.fxc.hlsl
index c5f3f6e..df680e3 100644
--- a/test/tint/builtins/gen/literal/textureNumLevels/efd6df.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureNumLevels/efd6df.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,45 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  uint prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureNumLevels
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation uint VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+Texture2D<uint4> arg_0 : register(t0, space1);
+uint textureNumLevels_efd6df() {
+  uint3 v = (0u).xxx;
+  arg_0.GetDimensions(0u, v[0u], v[1u], v[2u]);
+  uint res = v.z;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store(0u, textureNumLevels_efd6df());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store(0u, textureNumLevels_efd6df());
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = textureNumLevels_efd6df();
+  VertexOutput v_1 = tint_symbol;
+  return v_1;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_2 = vertex_main_inner();
+  VertexOutput v_3 = v_2;
+  VertexOutput v_4 = v_2;
+  vertex_main_outputs v_5 = {v_4.prevent_dce, v_3.pos};
+  return v_5;
+}
+
diff --git a/test/tint/builtins/gen/literal/textureNumLevels/f742c0.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/textureNumLevels/f742c0.wgsl.expected.ir.dxc.hlsl
index c5f3f6e..6318299 100644
--- a/test/tint/builtins/gen/literal/textureNumLevels/f742c0.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureNumLevels/f742c0.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,45 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  uint prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureNumLevels
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation uint VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+Texture1D<int4> arg_0 : register(t0, space1);
+uint textureNumLevels_f742c0() {
+  uint2 v = (0u).xx;
+  arg_0.GetDimensions(0u, v[0u], v[1u]);
+  uint res = v.y;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store(0u, textureNumLevels_f742c0());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store(0u, textureNumLevels_f742c0());
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = textureNumLevels_f742c0();
+  VertexOutput v_1 = tint_symbol;
+  return v_1;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_2 = vertex_main_inner();
+  VertexOutput v_3 = v_2;
+  VertexOutput v_4 = v_2;
+  vertex_main_outputs v_5 = {v_4.prevent_dce, v_3.pos};
+  return v_5;
+}
+
diff --git a/test/tint/builtins/gen/literal/textureNumLevels/f742c0.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/textureNumLevels/f742c0.wgsl.expected.ir.fxc.hlsl
index c5f3f6e..6318299 100644
--- a/test/tint/builtins/gen/literal/textureNumLevels/f742c0.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureNumLevels/f742c0.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,45 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  uint prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureNumLevels
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation uint VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+Texture1D<int4> arg_0 : register(t0, space1);
+uint textureNumLevels_f742c0() {
+  uint2 v = (0u).xx;
+  arg_0.GetDimensions(0u, v[0u], v[1u]);
+  uint res = v.y;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store(0u, textureNumLevels_f742c0());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store(0u, textureNumLevels_f742c0());
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = textureNumLevels_f742c0();
+  VertexOutput v_1 = tint_symbol;
+  return v_1;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_2 = vertex_main_inner();
+  VertexOutput v_3 = v_2;
+  VertexOutput v_4 = v_2;
+  vertex_main_outputs v_5 = {v_4.prevent_dce, v_3.pos};
+  return v_5;
+}
+
diff --git a/test/tint/builtins/gen/literal/textureNumLevels/fe2171.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/textureNumLevels/fe2171.wgsl.expected.ir.dxc.hlsl
index c5f3f6e..685d445 100644
--- a/test/tint/builtins/gen/literal/textureNumLevels/fe2171.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureNumLevels/fe2171.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,45 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  uint prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureNumLevels
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation uint VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+TextureCubeArray<uint4> arg_0 : register(t0, space1);
+uint textureNumLevels_fe2171() {
+  uint4 v = (0u).xxxx;
+  arg_0.GetDimensions(0u, v[0u], v[1u], v[2u], v[3u]);
+  uint res = v.w;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store(0u, textureNumLevels_fe2171());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store(0u, textureNumLevels_fe2171());
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = textureNumLevels_fe2171();
+  VertexOutput v_1 = tint_symbol;
+  return v_1;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_2 = vertex_main_inner();
+  VertexOutput v_3 = v_2;
+  VertexOutput v_4 = v_2;
+  vertex_main_outputs v_5 = {v_4.prevent_dce, v_3.pos};
+  return v_5;
+}
+
diff --git a/test/tint/builtins/gen/literal/textureNumLevels/fe2171.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/textureNumLevels/fe2171.wgsl.expected.ir.fxc.hlsl
index c5f3f6e..685d445 100644
--- a/test/tint/builtins/gen/literal/textureNumLevels/fe2171.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureNumLevels/fe2171.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,45 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  uint prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureNumLevels
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation uint VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+TextureCubeArray<uint4> arg_0 : register(t0, space1);
+uint textureNumLevels_fe2171() {
+  uint4 v = (0u).xxxx;
+  arg_0.GetDimensions(0u, v[0u], v[1u], v[2u], v[3u]);
+  uint res = v.w;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store(0u, textureNumLevels_fe2171());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store(0u, textureNumLevels_fe2171());
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = textureNumLevels_fe2171();
+  VertexOutput v_1 = tint_symbol;
+  return v_1;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_2 = vertex_main_inner();
+  VertexOutput v_3 = v_2;
+  VertexOutput v_4 = v_2;
+  vertex_main_outputs v_5 = {v_4.prevent_dce, v_3.pos};
+  return v_5;
+}
+
diff --git a/test/tint/builtins/gen/literal/textureNumSamples/50f399.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/textureNumSamples/50f399.wgsl.expected.ir.dxc.hlsl
index f9d5143..1d42e28 100644
--- a/test/tint/builtins/gen/literal/textureNumSamples/50f399.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureNumSamples/50f399.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,45 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  uint prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureNumSamples
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation uint VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+Texture2DMS<uint4> arg_0 : register(t0, space1);
+uint textureNumSamples_50f399() {
+  uint3 v = (0u).xxx;
+  arg_0.GetDimensions(v[0u], v[1u], v[2u]);
+  uint res = v.z;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store(0u, textureNumSamples_50f399());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store(0u, textureNumSamples_50f399());
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = textureNumSamples_50f399();
+  VertexOutput v_1 = tint_symbol;
+  return v_1;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_2 = vertex_main_inner();
+  VertexOutput v_3 = v_2;
+  VertexOutput v_4 = v_2;
+  vertex_main_outputs v_5 = {v_4.prevent_dce, v_3.pos};
+  return v_5;
+}
+
diff --git a/test/tint/builtins/gen/literal/textureNumSamples/50f399.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/textureNumSamples/50f399.wgsl.expected.ir.fxc.hlsl
index f9d5143..1d42e28 100644
--- a/test/tint/builtins/gen/literal/textureNumSamples/50f399.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureNumSamples/50f399.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,45 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  uint prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureNumSamples
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation uint VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+Texture2DMS<uint4> arg_0 : register(t0, space1);
+uint textureNumSamples_50f399() {
+  uint3 v = (0u).xxx;
+  arg_0.GetDimensions(v[0u], v[1u], v[2u]);
+  uint res = v.z;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store(0u, textureNumSamples_50f399());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store(0u, textureNumSamples_50f399());
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = textureNumSamples_50f399();
+  VertexOutput v_1 = tint_symbol;
+  return v_1;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_2 = vertex_main_inner();
+  VertexOutput v_3 = v_2;
+  VertexOutput v_4 = v_2;
+  vertex_main_outputs v_5 = {v_4.prevent_dce, v_3.pos};
+  return v_5;
+}
+
diff --git a/test/tint/builtins/gen/literal/textureNumSamples/c1a777.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/textureNumSamples/c1a777.wgsl.expected.ir.dxc.hlsl
index f9d5143..82364d4 100644
--- a/test/tint/builtins/gen/literal/textureNumSamples/c1a777.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureNumSamples/c1a777.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,45 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  uint prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureNumSamples
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation uint VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+Texture2DMS<int4> arg_0 : register(t0, space1);
+uint textureNumSamples_c1a777() {
+  uint3 v = (0u).xxx;
+  arg_0.GetDimensions(v[0u], v[1u], v[2u]);
+  uint res = v.z;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store(0u, textureNumSamples_c1a777());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store(0u, textureNumSamples_c1a777());
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = textureNumSamples_c1a777();
+  VertexOutput v_1 = tint_symbol;
+  return v_1;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_2 = vertex_main_inner();
+  VertexOutput v_3 = v_2;
+  VertexOutput v_4 = v_2;
+  vertex_main_outputs v_5 = {v_4.prevent_dce, v_3.pos};
+  return v_5;
+}
+
diff --git a/test/tint/builtins/gen/literal/textureNumSamples/c1a777.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/textureNumSamples/c1a777.wgsl.expected.ir.fxc.hlsl
index f9d5143..82364d4 100644
--- a/test/tint/builtins/gen/literal/textureNumSamples/c1a777.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureNumSamples/c1a777.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,45 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  uint prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureNumSamples
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation uint VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+Texture2DMS<int4> arg_0 : register(t0, space1);
+uint textureNumSamples_c1a777() {
+  uint3 v = (0u).xxx;
+  arg_0.GetDimensions(v[0u], v[1u], v[2u]);
+  uint res = v.z;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store(0u, textureNumSamples_c1a777());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store(0u, textureNumSamples_c1a777());
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = textureNumSamples_c1a777();
+  VertexOutput v_1 = tint_symbol;
+  return v_1;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_2 = vertex_main_inner();
+  VertexOutput v_3 = v_2;
+  VertexOutput v_4 = v_2;
+  vertex_main_outputs v_5 = {v_4.prevent_dce, v_3.pos};
+  return v_5;
+}
+
diff --git a/test/tint/builtins/gen/literal/textureNumSamples/dbb799.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/textureNumSamples/dbb799.wgsl.expected.ir.dxc.hlsl
index f9d5143..a76b531 100644
--- a/test/tint/builtins/gen/literal/textureNumSamples/dbb799.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureNumSamples/dbb799.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,45 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  uint prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureNumSamples
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation uint VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+Texture2DMS<float4> arg_0 : register(t0, space1);
+uint textureNumSamples_dbb799() {
+  uint3 v = (0u).xxx;
+  arg_0.GetDimensions(v[0u], v[1u], v[2u]);
+  uint res = v.z;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store(0u, textureNumSamples_dbb799());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store(0u, textureNumSamples_dbb799());
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = textureNumSamples_dbb799();
+  VertexOutput v_1 = tint_symbol;
+  return v_1;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_2 = vertex_main_inner();
+  VertexOutput v_3 = v_2;
+  VertexOutput v_4 = v_2;
+  vertex_main_outputs v_5 = {v_4.prevent_dce, v_3.pos};
+  return v_5;
+}
+
diff --git a/test/tint/builtins/gen/literal/textureNumSamples/dbb799.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/textureNumSamples/dbb799.wgsl.expected.ir.fxc.hlsl
index f9d5143..a76b531 100644
--- a/test/tint/builtins/gen/literal/textureNumSamples/dbb799.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureNumSamples/dbb799.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,45 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  uint prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureNumSamples
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation uint VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+Texture2DMS<float4> arg_0 : register(t0, space1);
+uint textureNumSamples_dbb799() {
+  uint3 v = (0u).xxx;
+  arg_0.GetDimensions(v[0u], v[1u], v[2u]);
+  uint res = v.z;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store(0u, textureNumSamples_dbb799());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store(0u, textureNumSamples_dbb799());
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = textureNumSamples_dbb799();
+  VertexOutput v_1 = tint_symbol;
+  return v_1;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_2 = vertex_main_inner();
+  VertexOutput v_3 = v_2;
+  VertexOutput v_4 = v_2;
+  vertex_main_outputs v_5 = {v_4.prevent_dce, v_3.pos};
+  return v_5;
+}
+
diff --git a/test/tint/builtins/gen/literal/textureNumSamples/ecd321.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/textureNumSamples/ecd321.wgsl.expected.ir.dxc.hlsl
index f9d5143..f634921 100644
--- a/test/tint/builtins/gen/literal/textureNumSamples/ecd321.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureNumSamples/ecd321.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,45 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  uint prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureNumSamples
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation uint VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+Texture2DMS<float4> arg_0 : register(t0, space1);
+uint textureNumSamples_ecd321() {
+  uint3 v = (0u).xxx;
+  arg_0.GetDimensions(v[0u], v[1u], v[2u]);
+  uint res = v.z;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store(0u, textureNumSamples_ecd321());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store(0u, textureNumSamples_ecd321());
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = textureNumSamples_ecd321();
+  VertexOutput v_1 = tint_symbol;
+  return v_1;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_2 = vertex_main_inner();
+  VertexOutput v_3 = v_2;
+  VertexOutput v_4 = v_2;
+  vertex_main_outputs v_5 = {v_4.prevent_dce, v_3.pos};
+  return v_5;
+}
+
diff --git a/test/tint/builtins/gen/literal/textureNumSamples/ecd321.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/textureNumSamples/ecd321.wgsl.expected.ir.fxc.hlsl
index f9d5143..f634921 100644
--- a/test/tint/builtins/gen/literal/textureNumSamples/ecd321.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureNumSamples/ecd321.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,45 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  uint prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureNumSamples
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation uint VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+Texture2DMS<float4> arg_0 : register(t0, space1);
+uint textureNumSamples_ecd321() {
+  uint3 v = (0u).xxx;
+  arg_0.GetDimensions(v[0u], v[1u], v[2u]);
+  uint res = v.z;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store(0u, textureNumSamples_ecd321());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store(0u, textureNumSamples_ecd321());
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = textureNumSamples_ecd321();
+  VertexOutput v_1 = tint_symbol;
+  return v_1;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_2 = vertex_main_inner();
+  VertexOutput v_3 = v_2;
+  VertexOutput v_4 = v_2;
+  vertex_main_outputs v_5 = {v_4.prevent_dce, v_3.pos};
+  return v_5;
+}
+
diff --git a/test/tint/builtins/gen/literal/textureSample/0dff6c.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/textureSample/0dff6c.wgsl.expected.ir.dxc.hlsl
index 6739938..58230f6 100644
--- a/test/tint/builtins/gen/literal/textureSample/0dff6c.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureSample/0dff6c.wgsl.expected.ir.dxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureSample
+..\..\src\tint\lang\hlsl\writer\printer\printer.cc:1010 internal compiler error: TINT_UNREACHABLE unhandled: textureSample
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/literal/textureSample/0dff6c.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/textureSample/0dff6c.wgsl.expected.ir.fxc.hlsl
index 6739938..58230f6 100644
--- a/test/tint/builtins/gen/literal/textureSample/0dff6c.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureSample/0dff6c.wgsl.expected.ir.fxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureSample
+..\..\src\tint\lang\hlsl\writer\printer\printer.cc:1010 internal compiler error: TINT_UNREACHABLE unhandled: textureSample
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/literal/textureSample/17e988.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/textureSample/17e988.wgsl.expected.ir.dxc.hlsl
index 6739938..58230f6 100644
--- a/test/tint/builtins/gen/literal/textureSample/17e988.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureSample/17e988.wgsl.expected.ir.dxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureSample
+..\..\src\tint\lang\hlsl\writer\printer\printer.cc:1010 internal compiler error: TINT_UNREACHABLE unhandled: textureSample
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/literal/textureSample/17e988.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/textureSample/17e988.wgsl.expected.ir.fxc.hlsl
index 6739938..58230f6 100644
--- a/test/tint/builtins/gen/literal/textureSample/17e988.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureSample/17e988.wgsl.expected.ir.fxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureSample
+..\..\src\tint\lang\hlsl\writer\printer\printer.cc:1010 internal compiler error: TINT_UNREACHABLE unhandled: textureSample
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/literal/textureSample/193203.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/textureSample/193203.wgsl.expected.ir.dxc.hlsl
index 6739938..58230f6 100644
--- a/test/tint/builtins/gen/literal/textureSample/193203.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureSample/193203.wgsl.expected.ir.dxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureSample
+..\..\src\tint\lang\hlsl\writer\printer\printer.cc:1010 internal compiler error: TINT_UNREACHABLE unhandled: textureSample
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/literal/textureSample/193203.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/textureSample/193203.wgsl.expected.ir.fxc.hlsl
index 6739938..58230f6 100644
--- a/test/tint/builtins/gen/literal/textureSample/193203.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureSample/193203.wgsl.expected.ir.fxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureSample
+..\..\src\tint\lang\hlsl\writer\printer\printer.cc:1010 internal compiler error: TINT_UNREACHABLE unhandled: textureSample
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/literal/textureSample/1a4e1b.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/textureSample/1a4e1b.wgsl.expected.ir.dxc.hlsl
index 6739938..58230f6 100644
--- a/test/tint/builtins/gen/literal/textureSample/1a4e1b.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureSample/1a4e1b.wgsl.expected.ir.dxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureSample
+..\..\src\tint\lang\hlsl\writer\printer\printer.cc:1010 internal compiler error: TINT_UNREACHABLE unhandled: textureSample
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/literal/textureSample/1a4e1b.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/textureSample/1a4e1b.wgsl.expected.ir.fxc.hlsl
index 6739938..58230f6 100644
--- a/test/tint/builtins/gen/literal/textureSample/1a4e1b.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureSample/1a4e1b.wgsl.expected.ir.fxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureSample
+..\..\src\tint\lang\hlsl\writer\printer\printer.cc:1010 internal compiler error: TINT_UNREACHABLE unhandled: textureSample
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/literal/textureSample/2149ec.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/textureSample/2149ec.wgsl.expected.ir.dxc.hlsl
index 6739938..58230f6 100644
--- a/test/tint/builtins/gen/literal/textureSample/2149ec.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureSample/2149ec.wgsl.expected.ir.dxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureSample
+..\..\src\tint\lang\hlsl\writer\printer\printer.cc:1010 internal compiler error: TINT_UNREACHABLE unhandled: textureSample
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/literal/textureSample/2149ec.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/textureSample/2149ec.wgsl.expected.ir.fxc.hlsl
index 6739938..58230f6 100644
--- a/test/tint/builtins/gen/literal/textureSample/2149ec.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureSample/2149ec.wgsl.expected.ir.fxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureSample
+..\..\src\tint\lang\hlsl\writer\printer\printer.cc:1010 internal compiler error: TINT_UNREACHABLE unhandled: textureSample
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/literal/textureSample/38bbb9.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/textureSample/38bbb9.wgsl.expected.ir.dxc.hlsl
index 6739938..58230f6 100644
--- a/test/tint/builtins/gen/literal/textureSample/38bbb9.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureSample/38bbb9.wgsl.expected.ir.dxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureSample
+..\..\src\tint\lang\hlsl\writer\printer\printer.cc:1010 internal compiler error: TINT_UNREACHABLE unhandled: textureSample
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/literal/textureSample/38bbb9.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/textureSample/38bbb9.wgsl.expected.ir.fxc.hlsl
index 6739938..58230f6 100644
--- a/test/tint/builtins/gen/literal/textureSample/38bbb9.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureSample/38bbb9.wgsl.expected.ir.fxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureSample
+..\..\src\tint\lang\hlsl\writer\printer\printer.cc:1010 internal compiler error: TINT_UNREACHABLE unhandled: textureSample
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/literal/textureSample/3b50bd.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/textureSample/3b50bd.wgsl.expected.ir.dxc.hlsl
index 6739938..58230f6 100644
--- a/test/tint/builtins/gen/literal/textureSample/3b50bd.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureSample/3b50bd.wgsl.expected.ir.dxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureSample
+..\..\src\tint\lang\hlsl\writer\printer\printer.cc:1010 internal compiler error: TINT_UNREACHABLE unhandled: textureSample
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/literal/textureSample/3b50bd.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/textureSample/3b50bd.wgsl.expected.ir.fxc.hlsl
index 6739938..58230f6 100644
--- a/test/tint/builtins/gen/literal/textureSample/3b50bd.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureSample/3b50bd.wgsl.expected.ir.fxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureSample
+..\..\src\tint\lang\hlsl\writer\printer\printer.cc:1010 internal compiler error: TINT_UNREACHABLE unhandled: textureSample
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/literal/textureSample/4703d0.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/textureSample/4703d0.wgsl.expected.ir.dxc.hlsl
index 6739938..58230f6 100644
--- a/test/tint/builtins/gen/literal/textureSample/4703d0.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureSample/4703d0.wgsl.expected.ir.dxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureSample
+..\..\src\tint\lang\hlsl\writer\printer\printer.cc:1010 internal compiler error: TINT_UNREACHABLE unhandled: textureSample
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/literal/textureSample/4703d0.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/textureSample/4703d0.wgsl.expected.ir.fxc.hlsl
index 6739938..58230f6 100644
--- a/test/tint/builtins/gen/literal/textureSample/4703d0.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureSample/4703d0.wgsl.expected.ir.fxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureSample
+..\..\src\tint\lang\hlsl\writer\printer\printer.cc:1010 internal compiler error: TINT_UNREACHABLE unhandled: textureSample
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/literal/textureSample/4dd1bf.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/textureSample/4dd1bf.wgsl.expected.ir.dxc.hlsl
index 6739938..58230f6 100644
--- a/test/tint/builtins/gen/literal/textureSample/4dd1bf.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureSample/4dd1bf.wgsl.expected.ir.dxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureSample
+..\..\src\tint\lang\hlsl\writer\printer\printer.cc:1010 internal compiler error: TINT_UNREACHABLE unhandled: textureSample
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/literal/textureSample/4dd1bf.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/textureSample/4dd1bf.wgsl.expected.ir.fxc.hlsl
index 6739938..58230f6 100644
--- a/test/tint/builtins/gen/literal/textureSample/4dd1bf.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureSample/4dd1bf.wgsl.expected.ir.fxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureSample
+..\..\src\tint\lang\hlsl\writer\printer\printer.cc:1010 internal compiler error: TINT_UNREACHABLE unhandled: textureSample
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/literal/textureSample/51b514.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/textureSample/51b514.wgsl.expected.ir.dxc.hlsl
index 6739938..58230f6 100644
--- a/test/tint/builtins/gen/literal/textureSample/51b514.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureSample/51b514.wgsl.expected.ir.dxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureSample
+..\..\src\tint\lang\hlsl\writer\printer\printer.cc:1010 internal compiler error: TINT_UNREACHABLE unhandled: textureSample
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/literal/textureSample/51b514.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/textureSample/51b514.wgsl.expected.ir.fxc.hlsl
index 6739938..58230f6 100644
--- a/test/tint/builtins/gen/literal/textureSample/51b514.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureSample/51b514.wgsl.expected.ir.fxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureSample
+..\..\src\tint\lang\hlsl\writer\printer\printer.cc:1010 internal compiler error: TINT_UNREACHABLE unhandled: textureSample
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/literal/textureSample/60bf45.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/textureSample/60bf45.wgsl.expected.ir.dxc.hlsl
index 6739938..58230f6 100644
--- a/test/tint/builtins/gen/literal/textureSample/60bf45.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureSample/60bf45.wgsl.expected.ir.dxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureSample
+..\..\src\tint\lang\hlsl\writer\printer\printer.cc:1010 internal compiler error: TINT_UNREACHABLE unhandled: textureSample
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/literal/textureSample/60bf45.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/textureSample/60bf45.wgsl.expected.ir.fxc.hlsl
index 6739938..58230f6 100644
--- a/test/tint/builtins/gen/literal/textureSample/60bf45.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureSample/60bf45.wgsl.expected.ir.fxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureSample
+..\..\src\tint\lang\hlsl\writer\printer\printer.cc:1010 internal compiler error: TINT_UNREACHABLE unhandled: textureSample
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/literal/textureSample/6717ca.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/textureSample/6717ca.wgsl.expected.ir.dxc.hlsl
index 6739938..58230f6 100644
--- a/test/tint/builtins/gen/literal/textureSample/6717ca.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureSample/6717ca.wgsl.expected.ir.dxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureSample
+..\..\src\tint\lang\hlsl\writer\printer\printer.cc:1010 internal compiler error: TINT_UNREACHABLE unhandled: textureSample
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/literal/textureSample/6717ca.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/textureSample/6717ca.wgsl.expected.ir.fxc.hlsl
index 6739938..58230f6 100644
--- a/test/tint/builtins/gen/literal/textureSample/6717ca.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureSample/6717ca.wgsl.expected.ir.fxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureSample
+..\..\src\tint\lang\hlsl\writer\printer\printer.cc:1010 internal compiler error: TINT_UNREACHABLE unhandled: textureSample
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/literal/textureSample/6e64fb.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/textureSample/6e64fb.wgsl.expected.ir.dxc.hlsl
index 6739938..58230f6 100644
--- a/test/tint/builtins/gen/literal/textureSample/6e64fb.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureSample/6e64fb.wgsl.expected.ir.dxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureSample
+..\..\src\tint\lang\hlsl\writer\printer\printer.cc:1010 internal compiler error: TINT_UNREACHABLE unhandled: textureSample
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/literal/textureSample/6e64fb.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/textureSample/6e64fb.wgsl.expected.ir.fxc.hlsl
index 6739938..58230f6 100644
--- a/test/tint/builtins/gen/literal/textureSample/6e64fb.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureSample/6e64fb.wgsl.expected.ir.fxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureSample
+..\..\src\tint\lang\hlsl\writer\printer\printer.cc:1010 internal compiler error: TINT_UNREACHABLE unhandled: textureSample
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/literal/textureSample/7e9ffd.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/textureSample/7e9ffd.wgsl.expected.ir.dxc.hlsl
index 6739938..58230f6 100644
--- a/test/tint/builtins/gen/literal/textureSample/7e9ffd.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureSample/7e9ffd.wgsl.expected.ir.dxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureSample
+..\..\src\tint\lang\hlsl\writer\printer\printer.cc:1010 internal compiler error: TINT_UNREACHABLE unhandled: textureSample
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/literal/textureSample/7e9ffd.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/textureSample/7e9ffd.wgsl.expected.ir.fxc.hlsl
index 6739938..58230f6 100644
--- a/test/tint/builtins/gen/literal/textureSample/7e9ffd.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureSample/7e9ffd.wgsl.expected.ir.fxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureSample
+..\..\src\tint\lang\hlsl\writer\printer\printer.cc:1010 internal compiler error: TINT_UNREACHABLE unhandled: textureSample
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/literal/textureSample/7fd8cb.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/textureSample/7fd8cb.wgsl.expected.ir.dxc.hlsl
index 6739938..58230f6 100644
--- a/test/tint/builtins/gen/literal/textureSample/7fd8cb.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureSample/7fd8cb.wgsl.expected.ir.dxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureSample
+..\..\src\tint\lang\hlsl\writer\printer\printer.cc:1010 internal compiler error: TINT_UNREACHABLE unhandled: textureSample
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/literal/textureSample/7fd8cb.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/textureSample/7fd8cb.wgsl.expected.ir.fxc.hlsl
index 6739938..58230f6 100644
--- a/test/tint/builtins/gen/literal/textureSample/7fd8cb.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureSample/7fd8cb.wgsl.expected.ir.fxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureSample
+..\..\src\tint\lang\hlsl\writer\printer\printer.cc:1010 internal compiler error: TINT_UNREACHABLE unhandled: textureSample
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/literal/textureSample/85c4ba.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/textureSample/85c4ba.wgsl.expected.ir.dxc.hlsl
index 6739938..58230f6 100644
--- a/test/tint/builtins/gen/literal/textureSample/85c4ba.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureSample/85c4ba.wgsl.expected.ir.dxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureSample
+..\..\src\tint\lang\hlsl\writer\printer\printer.cc:1010 internal compiler error: TINT_UNREACHABLE unhandled: textureSample
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/literal/textureSample/85c4ba.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/textureSample/85c4ba.wgsl.expected.ir.fxc.hlsl
index 6739938..58230f6 100644
--- a/test/tint/builtins/gen/literal/textureSample/85c4ba.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureSample/85c4ba.wgsl.expected.ir.fxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureSample
+..\..\src\tint\lang\hlsl\writer\printer\printer.cc:1010 internal compiler error: TINT_UNREACHABLE unhandled: textureSample
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/literal/textureSample/bc7477.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/textureSample/bc7477.wgsl.expected.ir.dxc.hlsl
index 6739938..58230f6 100644
--- a/test/tint/builtins/gen/literal/textureSample/bc7477.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureSample/bc7477.wgsl.expected.ir.dxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureSample
+..\..\src\tint\lang\hlsl\writer\printer\printer.cc:1010 internal compiler error: TINT_UNREACHABLE unhandled: textureSample
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/literal/textureSample/bc7477.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/textureSample/bc7477.wgsl.expected.ir.fxc.hlsl
index 6739938..58230f6 100644
--- a/test/tint/builtins/gen/literal/textureSample/bc7477.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureSample/bc7477.wgsl.expected.ir.fxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureSample
+..\..\src\tint\lang\hlsl\writer\printer\printer.cc:1010 internal compiler error: TINT_UNREACHABLE unhandled: textureSample
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/literal/textureSample/c2f4e8.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/textureSample/c2f4e8.wgsl.expected.ir.dxc.hlsl
index 6739938..58230f6 100644
--- a/test/tint/builtins/gen/literal/textureSample/c2f4e8.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureSample/c2f4e8.wgsl.expected.ir.dxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureSample
+..\..\src\tint\lang\hlsl\writer\printer\printer.cc:1010 internal compiler error: TINT_UNREACHABLE unhandled: textureSample
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/literal/textureSample/c2f4e8.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/textureSample/c2f4e8.wgsl.expected.ir.fxc.hlsl
index 6739938..58230f6 100644
--- a/test/tint/builtins/gen/literal/textureSample/c2f4e8.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureSample/c2f4e8.wgsl.expected.ir.fxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureSample
+..\..\src\tint\lang\hlsl\writer\printer\printer.cc:1010 internal compiler error: TINT_UNREACHABLE unhandled: textureSample
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/literal/textureSample/d6b281.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/textureSample/d6b281.wgsl.expected.ir.dxc.hlsl
index 6739938..58230f6 100644
--- a/test/tint/builtins/gen/literal/textureSample/d6b281.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureSample/d6b281.wgsl.expected.ir.dxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureSample
+..\..\src\tint\lang\hlsl\writer\printer\printer.cc:1010 internal compiler error: TINT_UNREACHABLE unhandled: textureSample
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/literal/textureSample/d6b281.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/textureSample/d6b281.wgsl.expected.ir.fxc.hlsl
index 6739938..58230f6 100644
--- a/test/tint/builtins/gen/literal/textureSample/d6b281.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureSample/d6b281.wgsl.expected.ir.fxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureSample
+..\..\src\tint\lang\hlsl\writer\printer\printer.cc:1010 internal compiler error: TINT_UNREACHABLE unhandled: textureSample
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/literal/textureSample/e53267.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/textureSample/e53267.wgsl.expected.ir.dxc.hlsl
index 6739938..58230f6 100644
--- a/test/tint/builtins/gen/literal/textureSample/e53267.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureSample/e53267.wgsl.expected.ir.dxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureSample
+..\..\src\tint\lang\hlsl\writer\printer\printer.cc:1010 internal compiler error: TINT_UNREACHABLE unhandled: textureSample
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/literal/textureSample/e53267.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/textureSample/e53267.wgsl.expected.ir.fxc.hlsl
index 6739938..58230f6 100644
--- a/test/tint/builtins/gen/literal/textureSample/e53267.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureSample/e53267.wgsl.expected.ir.fxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureSample
+..\..\src\tint\lang\hlsl\writer\printer\printer.cc:1010 internal compiler error: TINT_UNREACHABLE unhandled: textureSample
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/literal/textureSample/ea7030.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/textureSample/ea7030.wgsl.expected.ir.dxc.hlsl
index 6739938..58230f6 100644
--- a/test/tint/builtins/gen/literal/textureSample/ea7030.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureSample/ea7030.wgsl.expected.ir.dxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureSample
+..\..\src\tint\lang\hlsl\writer\printer\printer.cc:1010 internal compiler error: TINT_UNREACHABLE unhandled: textureSample
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/literal/textureSample/ea7030.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/textureSample/ea7030.wgsl.expected.ir.fxc.hlsl
index 6739938..58230f6 100644
--- a/test/tint/builtins/gen/literal/textureSample/ea7030.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureSample/ea7030.wgsl.expected.ir.fxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureSample
+..\..\src\tint\lang\hlsl\writer\printer\printer.cc:1010 internal compiler error: TINT_UNREACHABLE unhandled: textureSample
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/literal/textureSampleBaseClampToEdge/7c04e6.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/textureSampleBaseClampToEdge/7c04e6.wgsl.expected.ir.dxc.hlsl
index 2bded89..cf26da3 100644
--- a/test/tint/builtins/gen/literal/textureSampleBaseClampToEdge/7c04e6.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureSampleBaseClampToEdge/7c04e6.wgsl.expected.ir.dxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureSampleBaseClampToEdge
+..\..\src\tint\lang\hlsl\writer\printer\printer.cc:1010 internal compiler error: TINT_UNREACHABLE unhandled: textureSampleLevel
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/literal/textureSampleBaseClampToEdge/7c04e6.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/textureSampleBaseClampToEdge/7c04e6.wgsl.expected.ir.fxc.hlsl
index 2bded89..cf26da3 100644
--- a/test/tint/builtins/gen/literal/textureSampleBaseClampToEdge/7c04e6.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureSampleBaseClampToEdge/7c04e6.wgsl.expected.ir.fxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureSampleBaseClampToEdge
+..\..\src\tint\lang\hlsl\writer\printer\printer.cc:1010 internal compiler error: TINT_UNREACHABLE unhandled: textureSampleLevel
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/literal/textureSampleBaseClampToEdge/9ca02c.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/textureSampleBaseClampToEdge/9ca02c.wgsl.expected.ir.dxc.hlsl
index 2bded89..cf26da3 100644
--- a/test/tint/builtins/gen/literal/textureSampleBaseClampToEdge/9ca02c.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureSampleBaseClampToEdge/9ca02c.wgsl.expected.ir.dxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureSampleBaseClampToEdge
+..\..\src\tint\lang\hlsl\writer\printer\printer.cc:1010 internal compiler error: TINT_UNREACHABLE unhandled: textureSampleLevel
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/literal/textureSampleBaseClampToEdge/9ca02c.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/textureSampleBaseClampToEdge/9ca02c.wgsl.expected.ir.fxc.hlsl
index 2bded89..cf26da3 100644
--- a/test/tint/builtins/gen/literal/textureSampleBaseClampToEdge/9ca02c.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureSampleBaseClampToEdge/9ca02c.wgsl.expected.ir.fxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureSampleBaseClampToEdge
+..\..\src\tint\lang\hlsl\writer\printer\printer.cc:1010 internal compiler error: TINT_UNREACHABLE unhandled: textureSampleLevel
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/literal/textureSampleBias/1c707e.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/textureSampleBias/1c707e.wgsl.expected.ir.dxc.hlsl
index 1639ef2..49d2f50 100644
--- a/test/tint/builtins/gen/literal/textureSampleBias/1c707e.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureSampleBias/1c707e.wgsl.expected.ir.dxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureSampleBias
+..\..\src\tint\lang\hlsl\writer\printer\printer.cc:1010 internal compiler error: TINT_UNREACHABLE unhandled: textureSampleBias
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/literal/textureSampleBias/1c707e.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/textureSampleBias/1c707e.wgsl.expected.ir.fxc.hlsl
index 1639ef2..49d2f50 100644
--- a/test/tint/builtins/gen/literal/textureSampleBias/1c707e.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureSampleBias/1c707e.wgsl.expected.ir.fxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureSampleBias
+..\..\src\tint\lang\hlsl\writer\printer\printer.cc:1010 internal compiler error: TINT_UNREACHABLE unhandled: textureSampleBias
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/literal/textureSampleBias/53b9f7.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/textureSampleBias/53b9f7.wgsl.expected.ir.dxc.hlsl
index 1639ef2..49d2f50 100644
--- a/test/tint/builtins/gen/literal/textureSampleBias/53b9f7.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureSampleBias/53b9f7.wgsl.expected.ir.dxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureSampleBias
+..\..\src\tint\lang\hlsl\writer\printer\printer.cc:1010 internal compiler error: TINT_UNREACHABLE unhandled: textureSampleBias
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/literal/textureSampleBias/53b9f7.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/textureSampleBias/53b9f7.wgsl.expected.ir.fxc.hlsl
index 1639ef2..49d2f50 100644
--- a/test/tint/builtins/gen/literal/textureSampleBias/53b9f7.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureSampleBias/53b9f7.wgsl.expected.ir.fxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureSampleBias
+..\..\src\tint\lang\hlsl\writer\printer\printer.cc:1010 internal compiler error: TINT_UNREACHABLE unhandled: textureSampleBias
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/literal/textureSampleBias/594824.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/textureSampleBias/594824.wgsl.expected.ir.dxc.hlsl
index 1639ef2..49d2f50 100644
--- a/test/tint/builtins/gen/literal/textureSampleBias/594824.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureSampleBias/594824.wgsl.expected.ir.dxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureSampleBias
+..\..\src\tint\lang\hlsl\writer\printer\printer.cc:1010 internal compiler error: TINT_UNREACHABLE unhandled: textureSampleBias
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/literal/textureSampleBias/594824.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/textureSampleBias/594824.wgsl.expected.ir.fxc.hlsl
index 1639ef2..49d2f50 100644
--- a/test/tint/builtins/gen/literal/textureSampleBias/594824.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureSampleBias/594824.wgsl.expected.ir.fxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureSampleBias
+..\..\src\tint\lang\hlsl\writer\printer\printer.cc:1010 internal compiler error: TINT_UNREACHABLE unhandled: textureSampleBias
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/literal/textureSampleBias/6a9113.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/textureSampleBias/6a9113.wgsl.expected.ir.dxc.hlsl
index 1639ef2..49d2f50 100644
--- a/test/tint/builtins/gen/literal/textureSampleBias/6a9113.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureSampleBias/6a9113.wgsl.expected.ir.dxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureSampleBias
+..\..\src\tint\lang\hlsl\writer\printer\printer.cc:1010 internal compiler error: TINT_UNREACHABLE unhandled: textureSampleBias
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/literal/textureSampleBias/6a9113.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/textureSampleBias/6a9113.wgsl.expected.ir.fxc.hlsl
index 1639ef2..49d2f50 100644
--- a/test/tint/builtins/gen/literal/textureSampleBias/6a9113.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureSampleBias/6a9113.wgsl.expected.ir.fxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureSampleBias
+..\..\src\tint\lang\hlsl\writer\printer\printer.cc:1010 internal compiler error: TINT_UNREACHABLE unhandled: textureSampleBias
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/literal/textureSampleBias/80e579.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/textureSampleBias/80e579.wgsl.expected.ir.dxc.hlsl
index 1639ef2..49d2f50 100644
--- a/test/tint/builtins/gen/literal/textureSampleBias/80e579.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureSampleBias/80e579.wgsl.expected.ir.dxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureSampleBias
+..\..\src\tint\lang\hlsl\writer\printer\printer.cc:1010 internal compiler error: TINT_UNREACHABLE unhandled: textureSampleBias
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/literal/textureSampleBias/80e579.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/textureSampleBias/80e579.wgsl.expected.ir.fxc.hlsl
index 1639ef2..49d2f50 100644
--- a/test/tint/builtins/gen/literal/textureSampleBias/80e579.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureSampleBias/80e579.wgsl.expected.ir.fxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureSampleBias
+..\..\src\tint\lang\hlsl\writer\printer\printer.cc:1010 internal compiler error: TINT_UNREACHABLE unhandled: textureSampleBias
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/literal/textureSampleBias/87915c.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/textureSampleBias/87915c.wgsl.expected.ir.dxc.hlsl
index 1639ef2..49d2f50 100644
--- a/test/tint/builtins/gen/literal/textureSampleBias/87915c.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureSampleBias/87915c.wgsl.expected.ir.dxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureSampleBias
+..\..\src\tint\lang\hlsl\writer\printer\printer.cc:1010 internal compiler error: TINT_UNREACHABLE unhandled: textureSampleBias
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/literal/textureSampleBias/87915c.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/textureSampleBias/87915c.wgsl.expected.ir.fxc.hlsl
index 1639ef2..49d2f50 100644
--- a/test/tint/builtins/gen/literal/textureSampleBias/87915c.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureSampleBias/87915c.wgsl.expected.ir.fxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureSampleBias
+..\..\src\tint\lang\hlsl\writer\printer\printer.cc:1010 internal compiler error: TINT_UNREACHABLE unhandled: textureSampleBias
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/literal/textureSampleBias/9dbb51.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/textureSampleBias/9dbb51.wgsl.expected.ir.dxc.hlsl
index 1639ef2..49d2f50 100644
--- a/test/tint/builtins/gen/literal/textureSampleBias/9dbb51.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureSampleBias/9dbb51.wgsl.expected.ir.dxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureSampleBias
+..\..\src\tint\lang\hlsl\writer\printer\printer.cc:1010 internal compiler error: TINT_UNREACHABLE unhandled: textureSampleBias
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/literal/textureSampleBias/9dbb51.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/textureSampleBias/9dbb51.wgsl.expected.ir.fxc.hlsl
index 1639ef2..49d2f50 100644
--- a/test/tint/builtins/gen/literal/textureSampleBias/9dbb51.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureSampleBias/9dbb51.wgsl.expected.ir.fxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureSampleBias
+..\..\src\tint\lang\hlsl\writer\printer\printer.cc:1010 internal compiler error: TINT_UNREACHABLE unhandled: textureSampleBias
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/literal/textureSampleBias/a161cf.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/textureSampleBias/a161cf.wgsl.expected.ir.dxc.hlsl
index 1639ef2..49d2f50 100644
--- a/test/tint/builtins/gen/literal/textureSampleBias/a161cf.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureSampleBias/a161cf.wgsl.expected.ir.dxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureSampleBias
+..\..\src\tint\lang\hlsl\writer\printer\printer.cc:1010 internal compiler error: TINT_UNREACHABLE unhandled: textureSampleBias
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/literal/textureSampleBias/a161cf.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/textureSampleBias/a161cf.wgsl.expected.ir.fxc.hlsl
index 1639ef2..49d2f50 100644
--- a/test/tint/builtins/gen/literal/textureSampleBias/a161cf.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureSampleBias/a161cf.wgsl.expected.ir.fxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureSampleBias
+..\..\src\tint\lang\hlsl\writer\printer\printer.cc:1010 internal compiler error: TINT_UNREACHABLE unhandled: textureSampleBias
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/literal/textureSampleBias/c6953d.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/textureSampleBias/c6953d.wgsl.expected.ir.dxc.hlsl
index 1639ef2..49d2f50 100644
--- a/test/tint/builtins/gen/literal/textureSampleBias/c6953d.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureSampleBias/c6953d.wgsl.expected.ir.dxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureSampleBias
+..\..\src\tint\lang\hlsl\writer\printer\printer.cc:1010 internal compiler error: TINT_UNREACHABLE unhandled: textureSampleBias
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/literal/textureSampleBias/c6953d.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/textureSampleBias/c6953d.wgsl.expected.ir.fxc.hlsl
index 1639ef2..49d2f50 100644
--- a/test/tint/builtins/gen/literal/textureSampleBias/c6953d.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureSampleBias/c6953d.wgsl.expected.ir.fxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureSampleBias
+..\..\src\tint\lang\hlsl\writer\printer\printer.cc:1010 internal compiler error: TINT_UNREACHABLE unhandled: textureSampleBias
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/literal/textureSampleBias/d3fa1b.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/textureSampleBias/d3fa1b.wgsl.expected.ir.dxc.hlsl
index 1639ef2..49d2f50 100644
--- a/test/tint/builtins/gen/literal/textureSampleBias/d3fa1b.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureSampleBias/d3fa1b.wgsl.expected.ir.dxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureSampleBias
+..\..\src\tint\lang\hlsl\writer\printer\printer.cc:1010 internal compiler error: TINT_UNREACHABLE unhandled: textureSampleBias
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/literal/textureSampleBias/d3fa1b.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/textureSampleBias/d3fa1b.wgsl.expected.ir.fxc.hlsl
index 1639ef2..49d2f50 100644
--- a/test/tint/builtins/gen/literal/textureSampleBias/d3fa1b.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureSampleBias/d3fa1b.wgsl.expected.ir.fxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureSampleBias
+..\..\src\tint\lang\hlsl\writer\printer\printer.cc:1010 internal compiler error: TINT_UNREACHABLE unhandled: textureSampleBias
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/literal/textureSampleBias/eed7c4.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/textureSampleBias/eed7c4.wgsl.expected.ir.dxc.hlsl
index 1639ef2..49d2f50 100644
--- a/test/tint/builtins/gen/literal/textureSampleBias/eed7c4.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureSampleBias/eed7c4.wgsl.expected.ir.dxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureSampleBias
+..\..\src\tint\lang\hlsl\writer\printer\printer.cc:1010 internal compiler error: TINT_UNREACHABLE unhandled: textureSampleBias
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/literal/textureSampleBias/eed7c4.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/textureSampleBias/eed7c4.wgsl.expected.ir.fxc.hlsl
index 1639ef2..49d2f50 100644
--- a/test/tint/builtins/gen/literal/textureSampleBias/eed7c4.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureSampleBias/eed7c4.wgsl.expected.ir.fxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureSampleBias
+..\..\src\tint\lang\hlsl\writer\printer\printer.cc:1010 internal compiler error: TINT_UNREACHABLE unhandled: textureSampleBias
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/literal/textureSampleCompare/1912e5.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/textureSampleCompare/1912e5.wgsl.expected.ir.dxc.hlsl
index 16966cd..b7acf20 100644
--- a/test/tint/builtins/gen/literal/textureSampleCompare/1912e5.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureSampleCompare/1912e5.wgsl.expected.ir.dxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureSampleCompare
+..\..\src\tint\lang\hlsl\writer\printer\printer.cc:1010 internal compiler error: TINT_UNREACHABLE unhandled: textureSampleCompare
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/literal/textureSampleCompare/1912e5.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/textureSampleCompare/1912e5.wgsl.expected.ir.fxc.hlsl
index 16966cd..b7acf20 100644
--- a/test/tint/builtins/gen/literal/textureSampleCompare/1912e5.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureSampleCompare/1912e5.wgsl.expected.ir.fxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureSampleCompare
+..\..\src\tint\lang\hlsl\writer\printer\printer.cc:1010 internal compiler error: TINT_UNREACHABLE unhandled: textureSampleCompare
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/literal/textureSampleCompare/3a5923.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/textureSampleCompare/3a5923.wgsl.expected.ir.dxc.hlsl
index 16966cd..b7acf20 100644
--- a/test/tint/builtins/gen/literal/textureSampleCompare/3a5923.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureSampleCompare/3a5923.wgsl.expected.ir.dxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureSampleCompare
+..\..\src\tint\lang\hlsl\writer\printer\printer.cc:1010 internal compiler error: TINT_UNREACHABLE unhandled: textureSampleCompare
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/literal/textureSampleCompare/3a5923.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/textureSampleCompare/3a5923.wgsl.expected.ir.fxc.hlsl
index 16966cd..b7acf20 100644
--- a/test/tint/builtins/gen/literal/textureSampleCompare/3a5923.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureSampleCompare/3a5923.wgsl.expected.ir.fxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureSampleCompare
+..\..\src\tint\lang\hlsl\writer\printer\printer.cc:1010 internal compiler error: TINT_UNREACHABLE unhandled: textureSampleCompare
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/literal/textureSampleCompare/63fb83.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/textureSampleCompare/63fb83.wgsl.expected.ir.dxc.hlsl
index 16966cd..b7acf20 100644
--- a/test/tint/builtins/gen/literal/textureSampleCompare/63fb83.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureSampleCompare/63fb83.wgsl.expected.ir.dxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureSampleCompare
+..\..\src\tint\lang\hlsl\writer\printer\printer.cc:1010 internal compiler error: TINT_UNREACHABLE unhandled: textureSampleCompare
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/literal/textureSampleCompare/63fb83.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/textureSampleCompare/63fb83.wgsl.expected.ir.fxc.hlsl
index 16966cd..b7acf20 100644
--- a/test/tint/builtins/gen/literal/textureSampleCompare/63fb83.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureSampleCompare/63fb83.wgsl.expected.ir.fxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureSampleCompare
+..\..\src\tint\lang\hlsl\writer\printer\printer.cc:1010 internal compiler error: TINT_UNREACHABLE unhandled: textureSampleCompare
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/literal/textureSampleCompare/7b5025.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/textureSampleCompare/7b5025.wgsl.expected.ir.dxc.hlsl
index 16966cd..b7acf20 100644
--- a/test/tint/builtins/gen/literal/textureSampleCompare/7b5025.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureSampleCompare/7b5025.wgsl.expected.ir.dxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureSampleCompare
+..\..\src\tint\lang\hlsl\writer\printer\printer.cc:1010 internal compiler error: TINT_UNREACHABLE unhandled: textureSampleCompare
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/literal/textureSampleCompare/7b5025.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/textureSampleCompare/7b5025.wgsl.expected.ir.fxc.hlsl
index 16966cd..b7acf20 100644
--- a/test/tint/builtins/gen/literal/textureSampleCompare/7b5025.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureSampleCompare/7b5025.wgsl.expected.ir.fxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureSampleCompare
+..\..\src\tint\lang\hlsl\writer\printer\printer.cc:1010 internal compiler error: TINT_UNREACHABLE unhandled: textureSampleCompare
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/literal/textureSampleCompare/90ae56.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/textureSampleCompare/90ae56.wgsl.expected.ir.dxc.hlsl
index 16966cd..b7acf20 100644
--- a/test/tint/builtins/gen/literal/textureSampleCompare/90ae56.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureSampleCompare/90ae56.wgsl.expected.ir.dxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureSampleCompare
+..\..\src\tint\lang\hlsl\writer\printer\printer.cc:1010 internal compiler error: TINT_UNREACHABLE unhandled: textureSampleCompare
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/literal/textureSampleCompare/90ae56.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/textureSampleCompare/90ae56.wgsl.expected.ir.fxc.hlsl
index 16966cd..b7acf20 100644
--- a/test/tint/builtins/gen/literal/textureSampleCompare/90ae56.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureSampleCompare/90ae56.wgsl.expected.ir.fxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureSampleCompare
+..\..\src\tint\lang\hlsl\writer\printer\printer.cc:1010 internal compiler error: TINT_UNREACHABLE unhandled: textureSampleCompare
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/literal/textureSampleCompare/a3ca7e.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/textureSampleCompare/a3ca7e.wgsl.expected.ir.dxc.hlsl
index 16966cd..b7acf20 100644
--- a/test/tint/builtins/gen/literal/textureSampleCompare/a3ca7e.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureSampleCompare/a3ca7e.wgsl.expected.ir.dxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureSampleCompare
+..\..\src\tint\lang\hlsl\writer\printer\printer.cc:1010 internal compiler error: TINT_UNREACHABLE unhandled: textureSampleCompare
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/literal/textureSampleCompare/a3ca7e.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/textureSampleCompare/a3ca7e.wgsl.expected.ir.fxc.hlsl
index 16966cd..b7acf20 100644
--- a/test/tint/builtins/gen/literal/textureSampleCompare/a3ca7e.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureSampleCompare/a3ca7e.wgsl.expected.ir.fxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureSampleCompare
+..\..\src\tint\lang\hlsl\writer\printer\printer.cc:1010 internal compiler error: TINT_UNREACHABLE unhandled: textureSampleCompare
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/literal/textureSampleCompare/af1051.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/textureSampleCompare/af1051.wgsl.expected.ir.dxc.hlsl
index 16966cd..b7acf20 100644
--- a/test/tint/builtins/gen/literal/textureSampleCompare/af1051.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureSampleCompare/af1051.wgsl.expected.ir.dxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureSampleCompare
+..\..\src\tint\lang\hlsl\writer\printer\printer.cc:1010 internal compiler error: TINT_UNREACHABLE unhandled: textureSampleCompare
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/literal/textureSampleCompare/af1051.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/textureSampleCompare/af1051.wgsl.expected.ir.fxc.hlsl
index 16966cd..b7acf20 100644
--- a/test/tint/builtins/gen/literal/textureSampleCompare/af1051.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureSampleCompare/af1051.wgsl.expected.ir.fxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureSampleCompare
+..\..\src\tint\lang\hlsl\writer\printer\printer.cc:1010 internal compiler error: TINT_UNREACHABLE unhandled: textureSampleCompare
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/literal/textureSampleCompare/dd431d.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/textureSampleCompare/dd431d.wgsl.expected.ir.dxc.hlsl
index 16966cd..b7acf20 100644
--- a/test/tint/builtins/gen/literal/textureSampleCompare/dd431d.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureSampleCompare/dd431d.wgsl.expected.ir.dxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureSampleCompare
+..\..\src\tint\lang\hlsl\writer\printer\printer.cc:1010 internal compiler error: TINT_UNREACHABLE unhandled: textureSampleCompare
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/literal/textureSampleCompare/dd431d.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/textureSampleCompare/dd431d.wgsl.expected.ir.fxc.hlsl
index 16966cd..b7acf20 100644
--- a/test/tint/builtins/gen/literal/textureSampleCompare/dd431d.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureSampleCompare/dd431d.wgsl.expected.ir.fxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureSampleCompare
+..\..\src\tint\lang\hlsl\writer\printer\printer.cc:1010 internal compiler error: TINT_UNREACHABLE unhandled: textureSampleCompare
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/literal/textureSampleCompare/dec064.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/textureSampleCompare/dec064.wgsl.expected.ir.dxc.hlsl
index 16966cd..b7acf20 100644
--- a/test/tint/builtins/gen/literal/textureSampleCompare/dec064.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureSampleCompare/dec064.wgsl.expected.ir.dxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureSampleCompare
+..\..\src\tint\lang\hlsl\writer\printer\printer.cc:1010 internal compiler error: TINT_UNREACHABLE unhandled: textureSampleCompare
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/literal/textureSampleCompare/dec064.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/textureSampleCompare/dec064.wgsl.expected.ir.fxc.hlsl
index 16966cd..b7acf20 100644
--- a/test/tint/builtins/gen/literal/textureSampleCompare/dec064.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureSampleCompare/dec064.wgsl.expected.ir.fxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureSampleCompare
+..\..\src\tint\lang\hlsl\writer\printer\printer.cc:1010 internal compiler error: TINT_UNREACHABLE unhandled: textureSampleCompare
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/literal/textureSampleCompareLevel/1116ed.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/textureSampleCompareLevel/1116ed.wgsl.expected.ir.dxc.hlsl
index 09571e5..f8e283a 100644
--- a/test/tint/builtins/gen/literal/textureSampleCompareLevel/1116ed.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureSampleCompareLevel/1116ed.wgsl.expected.ir.dxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureSampleCompareLevel
+..\..\src\tint\lang\hlsl\writer\printer\printer.cc:1010 internal compiler error: TINT_UNREACHABLE unhandled: textureSampleCompareLevel
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/literal/textureSampleCompareLevel/1116ed.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/textureSampleCompareLevel/1116ed.wgsl.expected.ir.fxc.hlsl
index 09571e5..f8e283a 100644
--- a/test/tint/builtins/gen/literal/textureSampleCompareLevel/1116ed.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureSampleCompareLevel/1116ed.wgsl.expected.ir.fxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureSampleCompareLevel
+..\..\src\tint\lang\hlsl\writer\printer\printer.cc:1010 internal compiler error: TINT_UNREACHABLE unhandled: textureSampleCompareLevel
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/literal/textureSampleCompareLevel/1568e3.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/textureSampleCompareLevel/1568e3.wgsl.expected.ir.dxc.hlsl
index 09571e5..f8e283a 100644
--- a/test/tint/builtins/gen/literal/textureSampleCompareLevel/1568e3.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureSampleCompareLevel/1568e3.wgsl.expected.ir.dxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureSampleCompareLevel
+..\..\src\tint\lang\hlsl\writer\printer\printer.cc:1010 internal compiler error: TINT_UNREACHABLE unhandled: textureSampleCompareLevel
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/literal/textureSampleCompareLevel/1568e3.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/textureSampleCompareLevel/1568e3.wgsl.expected.ir.fxc.hlsl
index 09571e5..f8e283a 100644
--- a/test/tint/builtins/gen/literal/textureSampleCompareLevel/1568e3.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureSampleCompareLevel/1568e3.wgsl.expected.ir.fxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureSampleCompareLevel
+..\..\src\tint\lang\hlsl\writer\printer\printer.cc:1010 internal compiler error: TINT_UNREACHABLE unhandled: textureSampleCompareLevel
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/literal/textureSampleCompareLevel/2ad2b1.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/textureSampleCompareLevel/2ad2b1.wgsl.expected.ir.dxc.hlsl
index 09571e5..f8e283a 100644
--- a/test/tint/builtins/gen/literal/textureSampleCompareLevel/2ad2b1.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureSampleCompareLevel/2ad2b1.wgsl.expected.ir.dxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureSampleCompareLevel
+..\..\src\tint\lang\hlsl\writer\printer\printer.cc:1010 internal compiler error: TINT_UNREACHABLE unhandled: textureSampleCompareLevel
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/literal/textureSampleCompareLevel/2ad2b1.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/textureSampleCompareLevel/2ad2b1.wgsl.expected.ir.fxc.hlsl
index 09571e5..f8e283a 100644
--- a/test/tint/builtins/gen/literal/textureSampleCompareLevel/2ad2b1.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureSampleCompareLevel/2ad2b1.wgsl.expected.ir.fxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureSampleCompareLevel
+..\..\src\tint\lang\hlsl\writer\printer\printer.cc:1010 internal compiler error: TINT_UNREACHABLE unhandled: textureSampleCompareLevel
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/literal/textureSampleCompareLevel/4cf3a2.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/textureSampleCompareLevel/4cf3a2.wgsl.expected.ir.dxc.hlsl
index 09571e5..f8e283a 100644
--- a/test/tint/builtins/gen/literal/textureSampleCompareLevel/4cf3a2.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureSampleCompareLevel/4cf3a2.wgsl.expected.ir.dxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureSampleCompareLevel
+..\..\src\tint\lang\hlsl\writer\printer\printer.cc:1010 internal compiler error: TINT_UNREACHABLE unhandled: textureSampleCompareLevel
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/literal/textureSampleCompareLevel/4cf3a2.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/textureSampleCompareLevel/4cf3a2.wgsl.expected.ir.fxc.hlsl
index 09571e5..f8e283a 100644
--- a/test/tint/builtins/gen/literal/textureSampleCompareLevel/4cf3a2.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureSampleCompareLevel/4cf3a2.wgsl.expected.ir.fxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureSampleCompareLevel
+..\..\src\tint\lang\hlsl\writer\printer\printer.cc:1010 internal compiler error: TINT_UNREACHABLE unhandled: textureSampleCompareLevel
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/literal/textureSampleCompareLevel/7dc3c0.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/textureSampleCompareLevel/7dc3c0.wgsl.expected.ir.dxc.hlsl
index 09571e5..f8e283a 100644
--- a/test/tint/builtins/gen/literal/textureSampleCompareLevel/7dc3c0.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureSampleCompareLevel/7dc3c0.wgsl.expected.ir.dxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureSampleCompareLevel
+..\..\src\tint\lang\hlsl\writer\printer\printer.cc:1010 internal compiler error: TINT_UNREACHABLE unhandled: textureSampleCompareLevel
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/literal/textureSampleCompareLevel/7dc3c0.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/textureSampleCompareLevel/7dc3c0.wgsl.expected.ir.fxc.hlsl
index 09571e5..f8e283a 100644
--- a/test/tint/builtins/gen/literal/textureSampleCompareLevel/7dc3c0.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureSampleCompareLevel/7dc3c0.wgsl.expected.ir.fxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureSampleCompareLevel
+..\..\src\tint\lang\hlsl\writer\printer\printer.cc:1010 internal compiler error: TINT_UNREACHABLE unhandled: textureSampleCompareLevel
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/literal/textureSampleCompareLevel/7f2b9a.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/textureSampleCompareLevel/7f2b9a.wgsl.expected.ir.dxc.hlsl
index 09571e5..f8e283a 100644
--- a/test/tint/builtins/gen/literal/textureSampleCompareLevel/7f2b9a.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureSampleCompareLevel/7f2b9a.wgsl.expected.ir.dxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureSampleCompareLevel
+..\..\src\tint\lang\hlsl\writer\printer\printer.cc:1010 internal compiler error: TINT_UNREACHABLE unhandled: textureSampleCompareLevel
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/literal/textureSampleCompareLevel/7f2b9a.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/textureSampleCompareLevel/7f2b9a.wgsl.expected.ir.fxc.hlsl
index 09571e5..f8e283a 100644
--- a/test/tint/builtins/gen/literal/textureSampleCompareLevel/7f2b9a.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureSampleCompareLevel/7f2b9a.wgsl.expected.ir.fxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureSampleCompareLevel
+..\..\src\tint\lang\hlsl\writer\printer\printer.cc:1010 internal compiler error: TINT_UNREACHABLE unhandled: textureSampleCompareLevel
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/literal/textureSampleCompareLevel/958c87.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/textureSampleCompareLevel/958c87.wgsl.expected.ir.dxc.hlsl
index 09571e5..f8e283a 100644
--- a/test/tint/builtins/gen/literal/textureSampleCompareLevel/958c87.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureSampleCompareLevel/958c87.wgsl.expected.ir.dxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureSampleCompareLevel
+..\..\src\tint\lang\hlsl\writer\printer\printer.cc:1010 internal compiler error: TINT_UNREACHABLE unhandled: textureSampleCompareLevel
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/literal/textureSampleCompareLevel/958c87.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/textureSampleCompareLevel/958c87.wgsl.expected.ir.fxc.hlsl
index 09571e5..f8e283a 100644
--- a/test/tint/builtins/gen/literal/textureSampleCompareLevel/958c87.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureSampleCompareLevel/958c87.wgsl.expected.ir.fxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureSampleCompareLevel
+..\..\src\tint\lang\hlsl\writer\printer\printer.cc:1010 internal compiler error: TINT_UNREACHABLE unhandled: textureSampleCompareLevel
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/literal/textureSampleCompareLevel/b6e47c.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/textureSampleCompareLevel/b6e47c.wgsl.expected.ir.dxc.hlsl
index 09571e5..f8e283a 100644
--- a/test/tint/builtins/gen/literal/textureSampleCompareLevel/b6e47c.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureSampleCompareLevel/b6e47c.wgsl.expected.ir.dxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureSampleCompareLevel
+..\..\src\tint\lang\hlsl\writer\printer\printer.cc:1010 internal compiler error: TINT_UNREACHABLE unhandled: textureSampleCompareLevel
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/literal/textureSampleCompareLevel/b6e47c.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/textureSampleCompareLevel/b6e47c.wgsl.expected.ir.fxc.hlsl
index 09571e5..f8e283a 100644
--- a/test/tint/builtins/gen/literal/textureSampleCompareLevel/b6e47c.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureSampleCompareLevel/b6e47c.wgsl.expected.ir.fxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureSampleCompareLevel
+..\..\src\tint\lang\hlsl\writer\printer\printer.cc:1010 internal compiler error: TINT_UNREACHABLE unhandled: textureSampleCompareLevel
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/literal/textureSampleCompareLevel/bcb3dd.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/textureSampleCompareLevel/bcb3dd.wgsl.expected.ir.dxc.hlsl
index 09571e5..f8e283a 100644
--- a/test/tint/builtins/gen/literal/textureSampleCompareLevel/bcb3dd.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureSampleCompareLevel/bcb3dd.wgsl.expected.ir.dxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureSampleCompareLevel
+..\..\src\tint\lang\hlsl\writer\printer\printer.cc:1010 internal compiler error: TINT_UNREACHABLE unhandled: textureSampleCompareLevel
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/literal/textureSampleCompareLevel/bcb3dd.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/textureSampleCompareLevel/bcb3dd.wgsl.expected.ir.fxc.hlsl
index 09571e5..f8e283a 100644
--- a/test/tint/builtins/gen/literal/textureSampleCompareLevel/bcb3dd.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureSampleCompareLevel/bcb3dd.wgsl.expected.ir.fxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureSampleCompareLevel
+..\..\src\tint\lang\hlsl\writer\printer\printer.cc:1010 internal compiler error: TINT_UNREACHABLE unhandled: textureSampleCompareLevel
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/literal/textureSampleGrad/21402b.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/textureSampleGrad/21402b.wgsl.expected.ir.dxc.hlsl
index 1dd1a58..2729ab6 100644
--- a/test/tint/builtins/gen/literal/textureSampleGrad/21402b.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureSampleGrad/21402b.wgsl.expected.ir.dxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureSampleGrad
+..\..\src\tint\lang\hlsl\writer\printer\printer.cc:1010 internal compiler error: TINT_UNREACHABLE unhandled: textureSampleGrad
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/literal/textureSampleGrad/21402b.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/textureSampleGrad/21402b.wgsl.expected.ir.fxc.hlsl
index 1dd1a58..2729ab6 100644
--- a/test/tint/builtins/gen/literal/textureSampleGrad/21402b.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureSampleGrad/21402b.wgsl.expected.ir.fxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureSampleGrad
+..\..\src\tint\lang\hlsl\writer\printer\printer.cc:1010 internal compiler error: TINT_UNREACHABLE unhandled: textureSampleGrad
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/literal/textureSampleGrad/2ecd8f.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/textureSampleGrad/2ecd8f.wgsl.expected.ir.dxc.hlsl
index 1dd1a58..2729ab6 100644
--- a/test/tint/builtins/gen/literal/textureSampleGrad/2ecd8f.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureSampleGrad/2ecd8f.wgsl.expected.ir.dxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureSampleGrad
+..\..\src\tint\lang\hlsl\writer\printer\printer.cc:1010 internal compiler error: TINT_UNREACHABLE unhandled: textureSampleGrad
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/literal/textureSampleGrad/2ecd8f.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/textureSampleGrad/2ecd8f.wgsl.expected.ir.fxc.hlsl
index 1dd1a58..2729ab6 100644
--- a/test/tint/builtins/gen/literal/textureSampleGrad/2ecd8f.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureSampleGrad/2ecd8f.wgsl.expected.ir.fxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureSampleGrad
+..\..\src\tint\lang\hlsl\writer\printer\printer.cc:1010 internal compiler error: TINT_UNREACHABLE unhandled: textureSampleGrad
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/literal/textureSampleGrad/521263.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/textureSampleGrad/521263.wgsl.expected.ir.dxc.hlsl
index 1dd1a58..2729ab6 100644
--- a/test/tint/builtins/gen/literal/textureSampleGrad/521263.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureSampleGrad/521263.wgsl.expected.ir.dxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureSampleGrad
+..\..\src\tint\lang\hlsl\writer\printer\printer.cc:1010 internal compiler error: TINT_UNREACHABLE unhandled: textureSampleGrad
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/literal/textureSampleGrad/521263.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/textureSampleGrad/521263.wgsl.expected.ir.fxc.hlsl
index 1dd1a58..2729ab6 100644
--- a/test/tint/builtins/gen/literal/textureSampleGrad/521263.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureSampleGrad/521263.wgsl.expected.ir.fxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureSampleGrad
+..\..\src\tint\lang\hlsl\writer\printer\printer.cc:1010 internal compiler error: TINT_UNREACHABLE unhandled: textureSampleGrad
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/literal/textureSampleGrad/5312f4.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/textureSampleGrad/5312f4.wgsl.expected.ir.dxc.hlsl
index 1dd1a58..2729ab6 100644
--- a/test/tint/builtins/gen/literal/textureSampleGrad/5312f4.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureSampleGrad/5312f4.wgsl.expected.ir.dxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureSampleGrad
+..\..\src\tint\lang\hlsl\writer\printer\printer.cc:1010 internal compiler error: TINT_UNREACHABLE unhandled: textureSampleGrad
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/literal/textureSampleGrad/5312f4.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/textureSampleGrad/5312f4.wgsl.expected.ir.fxc.hlsl
index 1dd1a58..2729ab6 100644
--- a/test/tint/builtins/gen/literal/textureSampleGrad/5312f4.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureSampleGrad/5312f4.wgsl.expected.ir.fxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureSampleGrad
+..\..\src\tint\lang\hlsl\writer\printer\printer.cc:1010 internal compiler error: TINT_UNREACHABLE unhandled: textureSampleGrad
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/literal/textureSampleGrad/5884dd.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/textureSampleGrad/5884dd.wgsl.expected.ir.dxc.hlsl
index 1dd1a58..2729ab6 100644
--- a/test/tint/builtins/gen/literal/textureSampleGrad/5884dd.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureSampleGrad/5884dd.wgsl.expected.ir.dxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureSampleGrad
+..\..\src\tint\lang\hlsl\writer\printer\printer.cc:1010 internal compiler error: TINT_UNREACHABLE unhandled: textureSampleGrad
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/literal/textureSampleGrad/5884dd.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/textureSampleGrad/5884dd.wgsl.expected.ir.fxc.hlsl
index 1dd1a58..2729ab6 100644
--- a/test/tint/builtins/gen/literal/textureSampleGrad/5884dd.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureSampleGrad/5884dd.wgsl.expected.ir.fxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureSampleGrad
+..\..\src\tint\lang\hlsl\writer\printer\printer.cc:1010 internal compiler error: TINT_UNREACHABLE unhandled: textureSampleGrad
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/literal/textureSampleGrad/7cd6de.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/textureSampleGrad/7cd6de.wgsl.expected.ir.dxc.hlsl
index 1dd1a58..2729ab6 100644
--- a/test/tint/builtins/gen/literal/textureSampleGrad/7cd6de.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureSampleGrad/7cd6de.wgsl.expected.ir.dxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureSampleGrad
+..\..\src\tint\lang\hlsl\writer\printer\printer.cc:1010 internal compiler error: TINT_UNREACHABLE unhandled: textureSampleGrad
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/literal/textureSampleGrad/7cd6de.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/textureSampleGrad/7cd6de.wgsl.expected.ir.fxc.hlsl
index 1dd1a58..2729ab6 100644
--- a/test/tint/builtins/gen/literal/textureSampleGrad/7cd6de.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureSampleGrad/7cd6de.wgsl.expected.ir.fxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureSampleGrad
+..\..\src\tint\lang\hlsl\writer\printer\printer.cc:1010 internal compiler error: TINT_UNREACHABLE unhandled: textureSampleGrad
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/literal/textureSampleGrad/a09131.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/textureSampleGrad/a09131.wgsl.expected.ir.dxc.hlsl
index 1dd1a58..2729ab6 100644
--- a/test/tint/builtins/gen/literal/textureSampleGrad/a09131.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureSampleGrad/a09131.wgsl.expected.ir.dxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureSampleGrad
+..\..\src\tint\lang\hlsl\writer\printer\printer.cc:1010 internal compiler error: TINT_UNREACHABLE unhandled: textureSampleGrad
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/literal/textureSampleGrad/a09131.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/textureSampleGrad/a09131.wgsl.expected.ir.fxc.hlsl
index 1dd1a58..2729ab6 100644
--- a/test/tint/builtins/gen/literal/textureSampleGrad/a09131.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureSampleGrad/a09131.wgsl.expected.ir.fxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureSampleGrad
+..\..\src\tint\lang\hlsl\writer\printer\printer.cc:1010 internal compiler error: TINT_UNREACHABLE unhandled: textureSampleGrad
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/literal/textureSampleGrad/bbb58f.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/textureSampleGrad/bbb58f.wgsl.expected.ir.dxc.hlsl
index 1dd1a58..2729ab6 100644
--- a/test/tint/builtins/gen/literal/textureSampleGrad/bbb58f.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureSampleGrad/bbb58f.wgsl.expected.ir.dxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureSampleGrad
+..\..\src\tint\lang\hlsl\writer\printer\printer.cc:1010 internal compiler error: TINT_UNREACHABLE unhandled: textureSampleGrad
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/literal/textureSampleGrad/bbb58f.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/textureSampleGrad/bbb58f.wgsl.expected.ir.fxc.hlsl
index 1dd1a58..2729ab6 100644
--- a/test/tint/builtins/gen/literal/textureSampleGrad/bbb58f.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureSampleGrad/bbb58f.wgsl.expected.ir.fxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureSampleGrad
+..\..\src\tint\lang\hlsl\writer\printer\printer.cc:1010 internal compiler error: TINT_UNREACHABLE unhandled: textureSampleGrad
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/literal/textureSampleGrad/d4e3c5.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/textureSampleGrad/d4e3c5.wgsl.expected.ir.dxc.hlsl
index 1dd1a58..2729ab6 100644
--- a/test/tint/builtins/gen/literal/textureSampleGrad/d4e3c5.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureSampleGrad/d4e3c5.wgsl.expected.ir.dxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureSampleGrad
+..\..\src\tint\lang\hlsl\writer\printer\printer.cc:1010 internal compiler error: TINT_UNREACHABLE unhandled: textureSampleGrad
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/literal/textureSampleGrad/d4e3c5.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/textureSampleGrad/d4e3c5.wgsl.expected.ir.fxc.hlsl
index 1dd1a58..2729ab6 100644
--- a/test/tint/builtins/gen/literal/textureSampleGrad/d4e3c5.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureSampleGrad/d4e3c5.wgsl.expected.ir.fxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureSampleGrad
+..\..\src\tint\lang\hlsl\writer\printer\printer.cc:1010 internal compiler error: TINT_UNREACHABLE unhandled: textureSampleGrad
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/literal/textureSampleGrad/d65515.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/textureSampleGrad/d65515.wgsl.expected.ir.dxc.hlsl
index 1dd1a58..2729ab6 100644
--- a/test/tint/builtins/gen/literal/textureSampleGrad/d65515.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureSampleGrad/d65515.wgsl.expected.ir.dxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureSampleGrad
+..\..\src\tint\lang\hlsl\writer\printer\printer.cc:1010 internal compiler error: TINT_UNREACHABLE unhandled: textureSampleGrad
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/literal/textureSampleGrad/d65515.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/textureSampleGrad/d65515.wgsl.expected.ir.fxc.hlsl
index 1dd1a58..2729ab6 100644
--- a/test/tint/builtins/gen/literal/textureSampleGrad/d65515.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureSampleGrad/d65515.wgsl.expected.ir.fxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureSampleGrad
+..\..\src\tint\lang\hlsl\writer\printer\printer.cc:1010 internal compiler error: TINT_UNREACHABLE unhandled: textureSampleGrad
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/literal/textureSampleGrad/e383db.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/textureSampleGrad/e383db.wgsl.expected.ir.dxc.hlsl
index 1dd1a58..2729ab6 100644
--- a/test/tint/builtins/gen/literal/textureSampleGrad/e383db.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureSampleGrad/e383db.wgsl.expected.ir.dxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureSampleGrad
+..\..\src\tint\lang\hlsl\writer\printer\printer.cc:1010 internal compiler error: TINT_UNREACHABLE unhandled: textureSampleGrad
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/literal/textureSampleGrad/e383db.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/textureSampleGrad/e383db.wgsl.expected.ir.fxc.hlsl
index 1dd1a58..2729ab6 100644
--- a/test/tint/builtins/gen/literal/textureSampleGrad/e383db.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureSampleGrad/e383db.wgsl.expected.ir.fxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureSampleGrad
+..\..\src\tint\lang\hlsl\writer\printer\printer.cc:1010 internal compiler error: TINT_UNREACHABLE unhandled: textureSampleGrad
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/literal/textureSampleLevel/02be59.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/textureSampleLevel/02be59.wgsl.expected.ir.dxc.hlsl
index b903e3f..cf26da3 100644
--- a/test/tint/builtins/gen/literal/textureSampleLevel/02be59.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureSampleLevel/02be59.wgsl.expected.ir.dxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureSampleLevel
+..\..\src\tint\lang\hlsl\writer\printer\printer.cc:1010 internal compiler error: TINT_UNREACHABLE unhandled: textureSampleLevel
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/literal/textureSampleLevel/02be59.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/textureSampleLevel/02be59.wgsl.expected.ir.fxc.hlsl
index b903e3f..cf26da3 100644
--- a/test/tint/builtins/gen/literal/textureSampleLevel/02be59.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureSampleLevel/02be59.wgsl.expected.ir.fxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureSampleLevel
+..\..\src\tint\lang\hlsl\writer\printer\printer.cc:1010 internal compiler error: TINT_UNREACHABLE unhandled: textureSampleLevel
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/literal/textureSampleLevel/0b0a1b.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/textureSampleLevel/0b0a1b.wgsl.expected.ir.dxc.hlsl
index b903e3f..cf26da3 100644
--- a/test/tint/builtins/gen/literal/textureSampleLevel/0b0a1b.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureSampleLevel/0b0a1b.wgsl.expected.ir.dxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureSampleLevel
+..\..\src\tint\lang\hlsl\writer\printer\printer.cc:1010 internal compiler error: TINT_UNREACHABLE unhandled: textureSampleLevel
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/literal/textureSampleLevel/0b0a1b.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/textureSampleLevel/0b0a1b.wgsl.expected.ir.fxc.hlsl
index b903e3f..cf26da3 100644
--- a/test/tint/builtins/gen/literal/textureSampleLevel/0b0a1b.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureSampleLevel/0b0a1b.wgsl.expected.ir.fxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureSampleLevel
+..\..\src\tint\lang\hlsl\writer\printer\printer.cc:1010 internal compiler error: TINT_UNREACHABLE unhandled: textureSampleLevel
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/literal/textureSampleLevel/0bdd9a.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/textureSampleLevel/0bdd9a.wgsl.expected.ir.dxc.hlsl
index b903e3f..cf26da3 100644
--- a/test/tint/builtins/gen/literal/textureSampleLevel/0bdd9a.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureSampleLevel/0bdd9a.wgsl.expected.ir.dxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureSampleLevel
+..\..\src\tint\lang\hlsl\writer\printer\printer.cc:1010 internal compiler error: TINT_UNREACHABLE unhandled: textureSampleLevel
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/literal/textureSampleLevel/0bdd9a.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/textureSampleLevel/0bdd9a.wgsl.expected.ir.fxc.hlsl
index b903e3f..cf26da3 100644
--- a/test/tint/builtins/gen/literal/textureSampleLevel/0bdd9a.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureSampleLevel/0bdd9a.wgsl.expected.ir.fxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureSampleLevel
+..\..\src\tint\lang\hlsl\writer\printer\printer.cc:1010 internal compiler error: TINT_UNREACHABLE unhandled: textureSampleLevel
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/literal/textureSampleLevel/1b0291.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/textureSampleLevel/1b0291.wgsl.expected.ir.dxc.hlsl
index b903e3f..cf26da3 100644
--- a/test/tint/builtins/gen/literal/textureSampleLevel/1b0291.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureSampleLevel/1b0291.wgsl.expected.ir.dxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureSampleLevel
+..\..\src\tint\lang\hlsl\writer\printer\printer.cc:1010 internal compiler error: TINT_UNREACHABLE unhandled: textureSampleLevel
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/literal/textureSampleLevel/1b0291.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/textureSampleLevel/1b0291.wgsl.expected.ir.fxc.hlsl
index b903e3f..cf26da3 100644
--- a/test/tint/builtins/gen/literal/textureSampleLevel/1b0291.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureSampleLevel/1b0291.wgsl.expected.ir.fxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureSampleLevel
+..\..\src\tint\lang\hlsl\writer\printer\printer.cc:1010 internal compiler error: TINT_UNREACHABLE unhandled: textureSampleLevel
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/literal/textureSampleLevel/1bf73e.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/textureSampleLevel/1bf73e.wgsl.expected.ir.dxc.hlsl
index b903e3f..cf26da3 100644
--- a/test/tint/builtins/gen/literal/textureSampleLevel/1bf73e.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureSampleLevel/1bf73e.wgsl.expected.ir.dxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureSampleLevel
+..\..\src\tint\lang\hlsl\writer\printer\printer.cc:1010 internal compiler error: TINT_UNREACHABLE unhandled: textureSampleLevel
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/literal/textureSampleLevel/1bf73e.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/textureSampleLevel/1bf73e.wgsl.expected.ir.fxc.hlsl
index b903e3f..cf26da3 100644
--- a/test/tint/builtins/gen/literal/textureSampleLevel/1bf73e.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureSampleLevel/1bf73e.wgsl.expected.ir.fxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureSampleLevel
+..\..\src\tint\lang\hlsl\writer\printer\printer.cc:1010 internal compiler error: TINT_UNREACHABLE unhandled: textureSampleLevel
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/literal/textureSampleLevel/265cc7.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/textureSampleLevel/265cc7.wgsl.expected.ir.dxc.hlsl
index b903e3f..cf26da3 100644
--- a/test/tint/builtins/gen/literal/textureSampleLevel/265cc7.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureSampleLevel/265cc7.wgsl.expected.ir.dxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureSampleLevel
+..\..\src\tint\lang\hlsl\writer\printer\printer.cc:1010 internal compiler error: TINT_UNREACHABLE unhandled: textureSampleLevel
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/literal/textureSampleLevel/265cc7.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/textureSampleLevel/265cc7.wgsl.expected.ir.fxc.hlsl
index b903e3f..cf26da3 100644
--- a/test/tint/builtins/gen/literal/textureSampleLevel/265cc7.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureSampleLevel/265cc7.wgsl.expected.ir.fxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureSampleLevel
+..\..\src\tint\lang\hlsl\writer\printer\printer.cc:1010 internal compiler error: TINT_UNREACHABLE unhandled: textureSampleLevel
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/literal/textureSampleLevel/2974eb.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/textureSampleLevel/2974eb.wgsl.expected.ir.dxc.hlsl
index b903e3f..cf26da3 100644
--- a/test/tint/builtins/gen/literal/textureSampleLevel/2974eb.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureSampleLevel/2974eb.wgsl.expected.ir.dxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureSampleLevel
+..\..\src\tint\lang\hlsl\writer\printer\printer.cc:1010 internal compiler error: TINT_UNREACHABLE unhandled: textureSampleLevel
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/literal/textureSampleLevel/2974eb.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/textureSampleLevel/2974eb.wgsl.expected.ir.fxc.hlsl
index b903e3f..cf26da3 100644
--- a/test/tint/builtins/gen/literal/textureSampleLevel/2974eb.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureSampleLevel/2974eb.wgsl.expected.ir.fxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureSampleLevel
+..\..\src\tint\lang\hlsl\writer\printer\printer.cc:1010 internal compiler error: TINT_UNREACHABLE unhandled: textureSampleLevel
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/literal/textureSampleLevel/302be4.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/textureSampleLevel/302be4.wgsl.expected.ir.dxc.hlsl
index b903e3f..cf26da3 100644
--- a/test/tint/builtins/gen/literal/textureSampleLevel/302be4.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureSampleLevel/302be4.wgsl.expected.ir.dxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureSampleLevel
+..\..\src\tint\lang\hlsl\writer\printer\printer.cc:1010 internal compiler error: TINT_UNREACHABLE unhandled: textureSampleLevel
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/literal/textureSampleLevel/302be4.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/textureSampleLevel/302be4.wgsl.expected.ir.fxc.hlsl
index b903e3f..cf26da3 100644
--- a/test/tint/builtins/gen/literal/textureSampleLevel/302be4.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureSampleLevel/302be4.wgsl.expected.ir.fxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureSampleLevel
+..\..\src\tint\lang\hlsl\writer\printer\printer.cc:1010 internal compiler error: TINT_UNREACHABLE unhandled: textureSampleLevel
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/literal/textureSampleLevel/36780e.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/textureSampleLevel/36780e.wgsl.expected.ir.dxc.hlsl
index b903e3f..cf26da3 100644
--- a/test/tint/builtins/gen/literal/textureSampleLevel/36780e.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureSampleLevel/36780e.wgsl.expected.ir.dxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureSampleLevel
+..\..\src\tint\lang\hlsl\writer\printer\printer.cc:1010 internal compiler error: TINT_UNREACHABLE unhandled: textureSampleLevel
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/literal/textureSampleLevel/36780e.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/textureSampleLevel/36780e.wgsl.expected.ir.fxc.hlsl
index b903e3f..cf26da3 100644
--- a/test/tint/builtins/gen/literal/textureSampleLevel/36780e.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureSampleLevel/36780e.wgsl.expected.ir.fxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureSampleLevel
+..\..\src\tint\lang\hlsl\writer\printer\printer.cc:1010 internal compiler error: TINT_UNREACHABLE unhandled: textureSampleLevel
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/literal/textureSampleLevel/36f0d3.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/textureSampleLevel/36f0d3.wgsl.expected.ir.dxc.hlsl
index b903e3f..cf26da3 100644
--- a/test/tint/builtins/gen/literal/textureSampleLevel/36f0d3.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureSampleLevel/36f0d3.wgsl.expected.ir.dxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureSampleLevel
+..\..\src\tint\lang\hlsl\writer\printer\printer.cc:1010 internal compiler error: TINT_UNREACHABLE unhandled: textureSampleLevel
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/literal/textureSampleLevel/36f0d3.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/textureSampleLevel/36f0d3.wgsl.expected.ir.fxc.hlsl
index b903e3f..cf26da3 100644
--- a/test/tint/builtins/gen/literal/textureSampleLevel/36f0d3.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureSampleLevel/36f0d3.wgsl.expected.ir.fxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureSampleLevel
+..\..\src\tint\lang\hlsl\writer\printer\printer.cc:1010 internal compiler error: TINT_UNREACHABLE unhandled: textureSampleLevel
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/literal/textureSampleLevel/3c3442.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/textureSampleLevel/3c3442.wgsl.expected.ir.dxc.hlsl
index b903e3f..cf26da3 100644
--- a/test/tint/builtins/gen/literal/textureSampleLevel/3c3442.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureSampleLevel/3c3442.wgsl.expected.ir.dxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureSampleLevel
+..\..\src\tint\lang\hlsl\writer\printer\printer.cc:1010 internal compiler error: TINT_UNREACHABLE unhandled: textureSampleLevel
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/literal/textureSampleLevel/3c3442.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/textureSampleLevel/3c3442.wgsl.expected.ir.fxc.hlsl
index b903e3f..cf26da3 100644
--- a/test/tint/builtins/gen/literal/textureSampleLevel/3c3442.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureSampleLevel/3c3442.wgsl.expected.ir.fxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureSampleLevel
+..\..\src\tint\lang\hlsl\writer\printer\printer.cc:1010 internal compiler error: TINT_UNREACHABLE unhandled: textureSampleLevel
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/literal/textureSampleLevel/615583.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/textureSampleLevel/615583.wgsl.expected.ir.dxc.hlsl
index b903e3f..cf26da3 100644
--- a/test/tint/builtins/gen/literal/textureSampleLevel/615583.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureSampleLevel/615583.wgsl.expected.ir.dxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureSampleLevel
+..\..\src\tint\lang\hlsl\writer\printer\printer.cc:1010 internal compiler error: TINT_UNREACHABLE unhandled: textureSampleLevel
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/literal/textureSampleLevel/615583.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/textureSampleLevel/615583.wgsl.expected.ir.fxc.hlsl
index b903e3f..cf26da3 100644
--- a/test/tint/builtins/gen/literal/textureSampleLevel/615583.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureSampleLevel/615583.wgsl.expected.ir.fxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureSampleLevel
+..\..\src\tint\lang\hlsl\writer\printer\printer.cc:1010 internal compiler error: TINT_UNREACHABLE unhandled: textureSampleLevel
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/literal/textureSampleLevel/73e892.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/textureSampleLevel/73e892.wgsl.expected.ir.dxc.hlsl
index b903e3f..cf26da3 100644
--- a/test/tint/builtins/gen/literal/textureSampleLevel/73e892.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureSampleLevel/73e892.wgsl.expected.ir.dxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureSampleLevel
+..\..\src\tint\lang\hlsl\writer\printer\printer.cc:1010 internal compiler error: TINT_UNREACHABLE unhandled: textureSampleLevel
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/literal/textureSampleLevel/73e892.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/textureSampleLevel/73e892.wgsl.expected.ir.fxc.hlsl
index b903e3f..cf26da3 100644
--- a/test/tint/builtins/gen/literal/textureSampleLevel/73e892.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureSampleLevel/73e892.wgsl.expected.ir.fxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureSampleLevel
+..\..\src\tint\lang\hlsl\writer\printer\printer.cc:1010 internal compiler error: TINT_UNREACHABLE unhandled: textureSampleLevel
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/literal/textureSampleLevel/749baf.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/textureSampleLevel/749baf.wgsl.expected.ir.dxc.hlsl
index b903e3f..cf26da3 100644
--- a/test/tint/builtins/gen/literal/textureSampleLevel/749baf.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureSampleLevel/749baf.wgsl.expected.ir.dxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureSampleLevel
+..\..\src\tint\lang\hlsl\writer\printer\printer.cc:1010 internal compiler error: TINT_UNREACHABLE unhandled: textureSampleLevel
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/literal/textureSampleLevel/749baf.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/textureSampleLevel/749baf.wgsl.expected.ir.fxc.hlsl
index b903e3f..cf26da3 100644
--- a/test/tint/builtins/gen/literal/textureSampleLevel/749baf.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureSampleLevel/749baf.wgsl.expected.ir.fxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureSampleLevel
+..\..\src\tint\lang\hlsl\writer\printer\printer.cc:1010 internal compiler error: TINT_UNREACHABLE unhandled: textureSampleLevel
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/literal/textureSampleLevel/941a53.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/textureSampleLevel/941a53.wgsl.expected.ir.dxc.hlsl
index b903e3f..cf26da3 100644
--- a/test/tint/builtins/gen/literal/textureSampleLevel/941a53.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureSampleLevel/941a53.wgsl.expected.ir.dxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureSampleLevel
+..\..\src\tint\lang\hlsl\writer\printer\printer.cc:1010 internal compiler error: TINT_UNREACHABLE unhandled: textureSampleLevel
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/literal/textureSampleLevel/941a53.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/textureSampleLevel/941a53.wgsl.expected.ir.fxc.hlsl
index b903e3f..cf26da3 100644
--- a/test/tint/builtins/gen/literal/textureSampleLevel/941a53.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureSampleLevel/941a53.wgsl.expected.ir.fxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureSampleLevel
+..\..\src\tint\lang\hlsl\writer\printer\printer.cc:1010 internal compiler error: TINT_UNREACHABLE unhandled: textureSampleLevel
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/literal/textureSampleLevel/a12142.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/textureSampleLevel/a12142.wgsl.expected.ir.dxc.hlsl
index b903e3f..cf26da3 100644
--- a/test/tint/builtins/gen/literal/textureSampleLevel/a12142.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureSampleLevel/a12142.wgsl.expected.ir.dxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureSampleLevel
+..\..\src\tint\lang\hlsl\writer\printer\printer.cc:1010 internal compiler error: TINT_UNREACHABLE unhandled: textureSampleLevel
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/literal/textureSampleLevel/a12142.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/textureSampleLevel/a12142.wgsl.expected.ir.fxc.hlsl
index b903e3f..cf26da3 100644
--- a/test/tint/builtins/gen/literal/textureSampleLevel/a12142.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureSampleLevel/a12142.wgsl.expected.ir.fxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureSampleLevel
+..\..\src\tint\lang\hlsl\writer\printer\printer.cc:1010 internal compiler error: TINT_UNREACHABLE unhandled: textureSampleLevel
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/literal/textureSampleLevel/aab3b9.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/textureSampleLevel/aab3b9.wgsl.expected.ir.dxc.hlsl
index b903e3f..cf26da3 100644
--- a/test/tint/builtins/gen/literal/textureSampleLevel/aab3b9.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureSampleLevel/aab3b9.wgsl.expected.ir.dxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureSampleLevel
+..\..\src\tint\lang\hlsl\writer\printer\printer.cc:1010 internal compiler error: TINT_UNREACHABLE unhandled: textureSampleLevel
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/literal/textureSampleLevel/aab3b9.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/textureSampleLevel/aab3b9.wgsl.expected.ir.fxc.hlsl
index b903e3f..cf26da3 100644
--- a/test/tint/builtins/gen/literal/textureSampleLevel/aab3b9.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureSampleLevel/aab3b9.wgsl.expected.ir.fxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureSampleLevel
+..\..\src\tint\lang\hlsl\writer\printer\printer.cc:1010 internal compiler error: TINT_UNREACHABLE unhandled: textureSampleLevel
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/literal/textureSampleLevel/abfcc0.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/textureSampleLevel/abfcc0.wgsl.expected.ir.dxc.hlsl
index b903e3f..cf26da3 100644
--- a/test/tint/builtins/gen/literal/textureSampleLevel/abfcc0.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureSampleLevel/abfcc0.wgsl.expected.ir.dxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureSampleLevel
+..\..\src\tint\lang\hlsl\writer\printer\printer.cc:1010 internal compiler error: TINT_UNREACHABLE unhandled: textureSampleLevel
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/literal/textureSampleLevel/abfcc0.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/textureSampleLevel/abfcc0.wgsl.expected.ir.fxc.hlsl
index b903e3f..cf26da3 100644
--- a/test/tint/builtins/gen/literal/textureSampleLevel/abfcc0.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureSampleLevel/abfcc0.wgsl.expected.ir.fxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureSampleLevel
+..\..\src\tint\lang\hlsl\writer\printer\printer.cc:1010 internal compiler error: TINT_UNREACHABLE unhandled: textureSampleLevel
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/literal/textureSampleLevel/ae5e39.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/textureSampleLevel/ae5e39.wgsl.expected.ir.dxc.hlsl
index b903e3f..cf26da3 100644
--- a/test/tint/builtins/gen/literal/textureSampleLevel/ae5e39.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureSampleLevel/ae5e39.wgsl.expected.ir.dxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureSampleLevel
+..\..\src\tint\lang\hlsl\writer\printer\printer.cc:1010 internal compiler error: TINT_UNREACHABLE unhandled: textureSampleLevel
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/literal/textureSampleLevel/ae5e39.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/textureSampleLevel/ae5e39.wgsl.expected.ir.fxc.hlsl
index b903e3f..cf26da3 100644
--- a/test/tint/builtins/gen/literal/textureSampleLevel/ae5e39.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureSampleLevel/ae5e39.wgsl.expected.ir.fxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureSampleLevel
+..\..\src\tint\lang\hlsl\writer\printer\printer.cc:1010 internal compiler error: TINT_UNREACHABLE unhandled: textureSampleLevel
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/literal/textureSampleLevel/ae92a2.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/textureSampleLevel/ae92a2.wgsl.expected.ir.dxc.hlsl
index b903e3f..cf26da3 100644
--- a/test/tint/builtins/gen/literal/textureSampleLevel/ae92a2.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureSampleLevel/ae92a2.wgsl.expected.ir.dxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureSampleLevel
+..\..\src\tint\lang\hlsl\writer\printer\printer.cc:1010 internal compiler error: TINT_UNREACHABLE unhandled: textureSampleLevel
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/literal/textureSampleLevel/ae92a2.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/textureSampleLevel/ae92a2.wgsl.expected.ir.fxc.hlsl
index b903e3f..cf26da3 100644
--- a/test/tint/builtins/gen/literal/textureSampleLevel/ae92a2.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureSampleLevel/ae92a2.wgsl.expected.ir.fxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureSampleLevel
+..\..\src\tint\lang\hlsl\writer\printer\printer.cc:1010 internal compiler error: TINT_UNREACHABLE unhandled: textureSampleLevel
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/literal/textureSampleLevel/b7c55c.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/textureSampleLevel/b7c55c.wgsl.expected.ir.dxc.hlsl
index b903e3f..cf26da3 100644
--- a/test/tint/builtins/gen/literal/textureSampleLevel/b7c55c.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureSampleLevel/b7c55c.wgsl.expected.ir.dxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureSampleLevel
+..\..\src\tint\lang\hlsl\writer\printer\printer.cc:1010 internal compiler error: TINT_UNREACHABLE unhandled: textureSampleLevel
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/literal/textureSampleLevel/b7c55c.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/textureSampleLevel/b7c55c.wgsl.expected.ir.fxc.hlsl
index b903e3f..cf26da3 100644
--- a/test/tint/builtins/gen/literal/textureSampleLevel/b7c55c.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureSampleLevel/b7c55c.wgsl.expected.ir.fxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureSampleLevel
+..\..\src\tint\lang\hlsl\writer\printer\printer.cc:1010 internal compiler error: TINT_UNREACHABLE unhandled: textureSampleLevel
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/literal/textureSampleLevel/c32df7.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/textureSampleLevel/c32df7.wgsl.expected.ir.dxc.hlsl
index b903e3f..cf26da3 100644
--- a/test/tint/builtins/gen/literal/textureSampleLevel/c32df7.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureSampleLevel/c32df7.wgsl.expected.ir.dxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureSampleLevel
+..\..\src\tint\lang\hlsl\writer\printer\printer.cc:1010 internal compiler error: TINT_UNREACHABLE unhandled: textureSampleLevel
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/literal/textureSampleLevel/c32df7.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/textureSampleLevel/c32df7.wgsl.expected.ir.fxc.hlsl
index b903e3f..cf26da3 100644
--- a/test/tint/builtins/gen/literal/textureSampleLevel/c32df7.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureSampleLevel/c32df7.wgsl.expected.ir.fxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureSampleLevel
+..\..\src\tint\lang\hlsl\writer\printer\printer.cc:1010 internal compiler error: TINT_UNREACHABLE unhandled: textureSampleLevel
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/literal/textureSampleLevel/c6aca6.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/textureSampleLevel/c6aca6.wgsl.expected.ir.dxc.hlsl
index b903e3f..cf26da3 100644
--- a/test/tint/builtins/gen/literal/textureSampleLevel/c6aca6.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureSampleLevel/c6aca6.wgsl.expected.ir.dxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureSampleLevel
+..\..\src\tint\lang\hlsl\writer\printer\printer.cc:1010 internal compiler error: TINT_UNREACHABLE unhandled: textureSampleLevel
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/literal/textureSampleLevel/c6aca6.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/textureSampleLevel/c6aca6.wgsl.expected.ir.fxc.hlsl
index b903e3f..cf26da3 100644
--- a/test/tint/builtins/gen/literal/textureSampleLevel/c6aca6.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureSampleLevel/c6aca6.wgsl.expected.ir.fxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureSampleLevel
+..\..\src\tint\lang\hlsl\writer\printer\printer.cc:1010 internal compiler error: TINT_UNREACHABLE unhandled: textureSampleLevel
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/literal/textureSampleLevel/cdfe0f.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/textureSampleLevel/cdfe0f.wgsl.expected.ir.dxc.hlsl
index b903e3f..cf26da3 100644
--- a/test/tint/builtins/gen/literal/textureSampleLevel/cdfe0f.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureSampleLevel/cdfe0f.wgsl.expected.ir.dxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureSampleLevel
+..\..\src\tint\lang\hlsl\writer\printer\printer.cc:1010 internal compiler error: TINT_UNREACHABLE unhandled: textureSampleLevel
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/literal/textureSampleLevel/cdfe0f.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/textureSampleLevel/cdfe0f.wgsl.expected.ir.fxc.hlsl
index b903e3f..cf26da3 100644
--- a/test/tint/builtins/gen/literal/textureSampleLevel/cdfe0f.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureSampleLevel/cdfe0f.wgsl.expected.ir.fxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureSampleLevel
+..\..\src\tint\lang\hlsl\writer\printer\printer.cc:1010 internal compiler error: TINT_UNREACHABLE unhandled: textureSampleLevel
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/literal/textureSampleLevel/dcbecb.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/textureSampleLevel/dcbecb.wgsl.expected.ir.dxc.hlsl
index b903e3f..cf26da3 100644
--- a/test/tint/builtins/gen/literal/textureSampleLevel/dcbecb.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureSampleLevel/dcbecb.wgsl.expected.ir.dxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureSampleLevel
+..\..\src\tint\lang\hlsl\writer\printer\printer.cc:1010 internal compiler error: TINT_UNREACHABLE unhandled: textureSampleLevel
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/literal/textureSampleLevel/dcbecb.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/textureSampleLevel/dcbecb.wgsl.expected.ir.fxc.hlsl
index b903e3f..cf26da3 100644
--- a/test/tint/builtins/gen/literal/textureSampleLevel/dcbecb.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureSampleLevel/dcbecb.wgsl.expected.ir.fxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureSampleLevel
+..\..\src\tint\lang\hlsl\writer\printer\printer.cc:1010 internal compiler error: TINT_UNREACHABLE unhandled: textureSampleLevel
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/literal/textureSampleLevel/e6ce9e.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/textureSampleLevel/e6ce9e.wgsl.expected.ir.dxc.hlsl
index b903e3f..cf26da3 100644
--- a/test/tint/builtins/gen/literal/textureSampleLevel/e6ce9e.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureSampleLevel/e6ce9e.wgsl.expected.ir.dxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureSampleLevel
+..\..\src\tint\lang\hlsl\writer\printer\printer.cc:1010 internal compiler error: TINT_UNREACHABLE unhandled: textureSampleLevel
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/literal/textureSampleLevel/e6ce9e.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/textureSampleLevel/e6ce9e.wgsl.expected.ir.fxc.hlsl
index b903e3f..cf26da3 100644
--- a/test/tint/builtins/gen/literal/textureSampleLevel/e6ce9e.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureSampleLevel/e6ce9e.wgsl.expected.ir.fxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureSampleLevel
+..\..\src\tint\lang\hlsl\writer\printer\printer.cc:1010 internal compiler error: TINT_UNREACHABLE unhandled: textureSampleLevel
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/literal/textureSampleLevel/f3b2c8.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/textureSampleLevel/f3b2c8.wgsl.expected.ir.dxc.hlsl
index b903e3f..cf26da3 100644
--- a/test/tint/builtins/gen/literal/textureSampleLevel/f3b2c8.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureSampleLevel/f3b2c8.wgsl.expected.ir.dxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureSampleLevel
+..\..\src\tint\lang\hlsl\writer\printer\printer.cc:1010 internal compiler error: TINT_UNREACHABLE unhandled: textureSampleLevel
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/literal/textureSampleLevel/f3b2c8.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/textureSampleLevel/f3b2c8.wgsl.expected.ir.fxc.hlsl
index b903e3f..cf26da3 100644
--- a/test/tint/builtins/gen/literal/textureSampleLevel/f3b2c8.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureSampleLevel/f3b2c8.wgsl.expected.ir.fxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureSampleLevel
+..\..\src\tint\lang\hlsl\writer\printer\printer.cc:1010 internal compiler error: TINT_UNREACHABLE unhandled: textureSampleLevel
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/literal/textureSampleLevel/faa6d7.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/textureSampleLevel/faa6d7.wgsl.expected.ir.dxc.hlsl
index b903e3f..cf26da3 100644
--- a/test/tint/builtins/gen/literal/textureSampleLevel/faa6d7.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureSampleLevel/faa6d7.wgsl.expected.ir.dxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureSampleLevel
+..\..\src\tint\lang\hlsl\writer\printer\printer.cc:1010 internal compiler error: TINT_UNREACHABLE unhandled: textureSampleLevel
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/literal/textureSampleLevel/faa6d7.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/textureSampleLevel/faa6d7.wgsl.expected.ir.fxc.hlsl
index b903e3f..cf26da3 100644
--- a/test/tint/builtins/gen/literal/textureSampleLevel/faa6d7.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureSampleLevel/faa6d7.wgsl.expected.ir.fxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureSampleLevel
+..\..\src\tint\lang\hlsl\writer\printer\printer.cc:1010 internal compiler error: TINT_UNREACHABLE unhandled: textureSampleLevel
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/literal/textureSampleLevel/ff11bc.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/textureSampleLevel/ff11bc.wgsl.expected.ir.dxc.hlsl
index b903e3f..cf26da3 100644
--- a/test/tint/builtins/gen/literal/textureSampleLevel/ff11bc.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureSampleLevel/ff11bc.wgsl.expected.ir.dxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureSampleLevel
+..\..\src\tint\lang\hlsl\writer\printer\printer.cc:1010 internal compiler error: TINT_UNREACHABLE unhandled: textureSampleLevel
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/literal/textureSampleLevel/ff11bc.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/textureSampleLevel/ff11bc.wgsl.expected.ir.fxc.hlsl
index b903e3f..cf26da3 100644
--- a/test/tint/builtins/gen/literal/textureSampleLevel/ff11bc.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureSampleLevel/ff11bc.wgsl.expected.ir.fxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureSampleLevel
+..\..\src\tint\lang\hlsl\writer\printer\printer.cc:1010 internal compiler error: TINT_UNREACHABLE unhandled: textureSampleLevel
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/literal/textureStore/00ca64.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/textureStore/00ca64.wgsl.expected.ir.dxc.hlsl
index 685a9ee..77a2160 100644
--- a/test/tint/builtins/gen/literal/textureStore/00ca64.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureStore/00ca64.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,16 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWTexture2DArray<uint4> arg_0 : register(u0, space1);
+void textureStore_00ca64() {
+  RWTexture2DArray<uint4> v = arg_0;
+  v[int3((1).xx, int(1u))] = (1u).xxxx;
+}
+
+void fragment_main() {
+  textureStore_00ca64();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  textureStore_00ca64();
+}
+
diff --git a/test/tint/builtins/gen/literal/textureStore/00ca64.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/textureStore/00ca64.wgsl.expected.ir.fxc.hlsl
index 685a9ee..77a2160 100644
--- a/test/tint/builtins/gen/literal/textureStore/00ca64.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureStore/00ca64.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,16 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWTexture2DArray<uint4> arg_0 : register(u0, space1);
+void textureStore_00ca64() {
+  RWTexture2DArray<uint4> v = arg_0;
+  v[int3((1).xx, int(1u))] = (1u).xxxx;
+}
+
+void fragment_main() {
+  textureStore_00ca64();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  textureStore_00ca64();
+}
+
diff --git a/test/tint/builtins/gen/literal/textureStore/0148bd.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/textureStore/0148bd.wgsl.expected.ir.dxc.hlsl
index 685a9ee..0f03481 100644
--- a/test/tint/builtins/gen/literal/textureStore/0148bd.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureStore/0148bd.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,16 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWTexture2DArray<int4> arg_0 : register(u0, space1);
+void textureStore_0148bd() {
+  RWTexture2DArray<int4> v = arg_0;
+  v[uint3((1u).xx, uint(1))] = (1).xxxx;
+}
+
+void fragment_main() {
+  textureStore_0148bd();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  textureStore_0148bd();
+}
+
diff --git a/test/tint/builtins/gen/literal/textureStore/0148bd.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/textureStore/0148bd.wgsl.expected.ir.fxc.hlsl
index 685a9ee..0f03481 100644
--- a/test/tint/builtins/gen/literal/textureStore/0148bd.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureStore/0148bd.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,16 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWTexture2DArray<int4> arg_0 : register(u0, space1);
+void textureStore_0148bd() {
+  RWTexture2DArray<int4> v = arg_0;
+  v[uint3((1u).xx, uint(1))] = (1).xxxx;
+}
+
+void fragment_main() {
+  textureStore_0148bd();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  textureStore_0148bd();
+}
+
diff --git a/test/tint/builtins/gen/literal/textureStore/031506.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/textureStore/031506.wgsl.expected.ir.dxc.hlsl
index 685a9ee..900080d 100644
--- a/test/tint/builtins/gen/literal/textureStore/031506.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureStore/031506.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,15 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWTexture2D<float4> arg_0 : register(u0, space1);
+void textureStore_031506() {
+  arg_0[(1).xx] = (1.0f).xxxx;
+}
+
+void fragment_main() {
+  textureStore_031506();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  textureStore_031506();
+}
+
diff --git a/test/tint/builtins/gen/literal/textureStore/031506.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/textureStore/031506.wgsl.expected.ir.fxc.hlsl
index 685a9ee..900080d 100644
--- a/test/tint/builtins/gen/literal/textureStore/031506.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureStore/031506.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,15 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWTexture2D<float4> arg_0 : register(u0, space1);
+void textureStore_031506() {
+  arg_0[(1).xx] = (1.0f).xxxx;
+}
+
+void fragment_main() {
+  textureStore_031506();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  textureStore_031506();
+}
+
diff --git a/test/tint/builtins/gen/literal/textureStore/036d0e.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/textureStore/036d0e.wgsl.expected.ir.dxc.hlsl
index 685a9ee..9e5f73b 100644
--- a/test/tint/builtins/gen/literal/textureStore/036d0e.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureStore/036d0e.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,15 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWTexture3D<float4> arg_0 : register(u0, space1);
+void textureStore_036d0e() {
+  arg_0[(1).xxx] = (1.0f).xxxx;
+}
+
+void fragment_main() {
+  textureStore_036d0e();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  textureStore_036d0e();
+}
+
diff --git a/test/tint/builtins/gen/literal/textureStore/036d0e.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/textureStore/036d0e.wgsl.expected.ir.fxc.hlsl
index 685a9ee..9e5f73b 100644
--- a/test/tint/builtins/gen/literal/textureStore/036d0e.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureStore/036d0e.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,15 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWTexture3D<float4> arg_0 : register(u0, space1);
+void textureStore_036d0e() {
+  arg_0[(1).xxx] = (1.0f).xxxx;
+}
+
+void fragment_main() {
+  textureStore_036d0e();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  textureStore_036d0e();
+}
+
diff --git a/test/tint/builtins/gen/literal/textureStore/03e7a0.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/textureStore/03e7a0.wgsl.expected.ir.dxc.hlsl
index 685a9ee..330dbcc 100644
--- a/test/tint/builtins/gen/literal/textureStore/03e7a0.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureStore/03e7a0.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,15 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWTexture2D<uint4> arg_0 : register(u0, space1);
+void textureStore_03e7a0() {
+  arg_0[(1).xx] = (1u).xxxx;
+}
+
+void fragment_main() {
+  textureStore_03e7a0();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  textureStore_03e7a0();
+}
+
diff --git a/test/tint/builtins/gen/literal/textureStore/03e7a0.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/textureStore/03e7a0.wgsl.expected.ir.fxc.hlsl
index 685a9ee..330dbcc 100644
--- a/test/tint/builtins/gen/literal/textureStore/03e7a0.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureStore/03e7a0.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,15 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWTexture2D<uint4> arg_0 : register(u0, space1);
+void textureStore_03e7a0() {
+  arg_0[(1).xx] = (1u).xxxx;
+}
+
+void fragment_main() {
+  textureStore_03e7a0();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  textureStore_03e7a0();
+}
+
diff --git a/test/tint/builtins/gen/literal/textureStore/042b06.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/textureStore/042b06.wgsl.expected.ir.dxc.hlsl
index 685a9ee..1e2b440 100644
--- a/test/tint/builtins/gen/literal/textureStore/042b06.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureStore/042b06.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,16 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWTexture2DArray<float4> arg_0 : register(u0, space1);
+void textureStore_042b06() {
+  RWTexture2DArray<float4> v = arg_0;
+  v[uint3((1u).xx, uint(1u))] = (1.0f).xxxx;
+}
+
+void fragment_main() {
+  textureStore_042b06();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  textureStore_042b06();
+}
+
diff --git a/test/tint/builtins/gen/literal/textureStore/042b06.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/textureStore/042b06.wgsl.expected.ir.fxc.hlsl
index 685a9ee..1e2b440 100644
--- a/test/tint/builtins/gen/literal/textureStore/042b06.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureStore/042b06.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,16 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWTexture2DArray<float4> arg_0 : register(u0, space1);
+void textureStore_042b06() {
+  RWTexture2DArray<float4> v = arg_0;
+  v[uint3((1u).xx, uint(1u))] = (1.0f).xxxx;
+}
+
+void fragment_main() {
+  textureStore_042b06();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  textureStore_042b06();
+}
+
diff --git a/test/tint/builtins/gen/literal/textureStore/052a4e.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/textureStore/052a4e.wgsl.expected.ir.dxc.hlsl
index 685a9ee..95ecd35 100644
--- a/test/tint/builtins/gen/literal/textureStore/052a4e.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureStore/052a4e.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,15 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWTexture1D<float4> arg_0 : register(u0, space1);
+void textureStore_052a4e() {
+  arg_0[1u] = (1.0f).xxxx;
+}
+
+void fragment_main() {
+  textureStore_052a4e();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  textureStore_052a4e();
+}
+
diff --git a/test/tint/builtins/gen/literal/textureStore/052a4e.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/textureStore/052a4e.wgsl.expected.ir.fxc.hlsl
index 685a9ee..95ecd35 100644
--- a/test/tint/builtins/gen/literal/textureStore/052a4e.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureStore/052a4e.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,15 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWTexture1D<float4> arg_0 : register(u0, space1);
+void textureStore_052a4e() {
+  arg_0[1u] = (1.0f).xxxx;
+}
+
+void fragment_main() {
+  textureStore_052a4e();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  textureStore_052a4e();
+}
+
diff --git a/test/tint/builtins/gen/literal/textureStore/053664.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/textureStore/053664.wgsl.expected.ir.dxc.hlsl
index 685a9ee..e50cbe7 100644
--- a/test/tint/builtins/gen/literal/textureStore/053664.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureStore/053664.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,16 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWTexture2DArray<float4> arg_0 : register(u0, space1);
+void textureStore_053664() {
+  RWTexture2DArray<float4> v = arg_0;
+  v[int3((1).xx, int(1))] = (1.0f).xxxx;
+}
+
+void fragment_main() {
+  textureStore_053664();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  textureStore_053664();
+}
+
diff --git a/test/tint/builtins/gen/literal/textureStore/053664.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/textureStore/053664.wgsl.expected.ir.fxc.hlsl
index 685a9ee..e50cbe7 100644
--- a/test/tint/builtins/gen/literal/textureStore/053664.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureStore/053664.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,16 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWTexture2DArray<float4> arg_0 : register(u0, space1);
+void textureStore_053664() {
+  RWTexture2DArray<float4> v = arg_0;
+  v[int3((1).xx, int(1))] = (1.0f).xxxx;
+}
+
+void fragment_main() {
+  textureStore_053664();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  textureStore_053664();
+}
+
diff --git a/test/tint/builtins/gen/literal/textureStore/05ce15.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/textureStore/05ce15.wgsl.expected.ir.dxc.hlsl
index 685a9ee..1597a1b 100644
--- a/test/tint/builtins/gen/literal/textureStore/05ce15.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureStore/05ce15.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,15 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWTexture2D<float4> arg_0 : register(u0, space1);
+void textureStore_05ce15() {
+  arg_0[(1).xx] = (1.0f).xxxx;
+}
+
+void fragment_main() {
+  textureStore_05ce15();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  textureStore_05ce15();
+}
+
diff --git a/test/tint/builtins/gen/literal/textureStore/05ce15.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/textureStore/05ce15.wgsl.expected.ir.fxc.hlsl
index 685a9ee..1597a1b 100644
--- a/test/tint/builtins/gen/literal/textureStore/05ce15.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureStore/05ce15.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,15 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWTexture2D<float4> arg_0 : register(u0, space1);
+void textureStore_05ce15() {
+  arg_0[(1).xx] = (1.0f).xxxx;
+}
+
+void fragment_main() {
+  textureStore_05ce15();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  textureStore_05ce15();
+}
+
diff --git a/test/tint/builtins/gen/literal/textureStore/064c7f.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/textureStore/064c7f.wgsl.expected.ir.dxc.hlsl
index 685a9ee..69a6aef 100644
--- a/test/tint/builtins/gen/literal/textureStore/064c7f.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureStore/064c7f.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,15 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWTexture2D<float4> arg_0 : register(u0, space1);
+void textureStore_064c7f() {
+  arg_0[(1).xx] = (1.0f).xxxx;
+}
+
+void fragment_main() {
+  textureStore_064c7f();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  textureStore_064c7f();
+}
+
diff --git a/test/tint/builtins/gen/literal/textureStore/064c7f.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/textureStore/064c7f.wgsl.expected.ir.fxc.hlsl
index 685a9ee..69a6aef 100644
--- a/test/tint/builtins/gen/literal/textureStore/064c7f.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureStore/064c7f.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,15 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWTexture2D<float4> arg_0 : register(u0, space1);
+void textureStore_064c7f() {
+  arg_0[(1).xx] = (1.0f).xxxx;
+}
+
+void fragment_main() {
+  textureStore_064c7f();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  textureStore_064c7f();
+}
+
diff --git a/test/tint/builtins/gen/literal/textureStore/068641.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/textureStore/068641.wgsl.expected.ir.dxc.hlsl
index 685a9ee..b07d7b7 100644
--- a/test/tint/builtins/gen/literal/textureStore/068641.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureStore/068641.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,15 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWTexture3D<uint4> arg_0 : register(u0, space1);
+void textureStore_068641() {
+  arg_0[(1).xxx] = (1u).xxxx;
+}
+
+void fragment_main() {
+  textureStore_068641();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  textureStore_068641();
+}
+
diff --git a/test/tint/builtins/gen/literal/textureStore/068641.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/textureStore/068641.wgsl.expected.ir.fxc.hlsl
index 685a9ee..b07d7b7 100644
--- a/test/tint/builtins/gen/literal/textureStore/068641.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureStore/068641.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,15 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWTexture3D<uint4> arg_0 : register(u0, space1);
+void textureStore_068641() {
+  arg_0[(1).xxx] = (1u).xxxx;
+}
+
+void fragment_main() {
+  textureStore_068641();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  textureStore_068641();
+}
+
diff --git a/test/tint/builtins/gen/literal/textureStore/06e49c.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/textureStore/06e49c.wgsl.expected.ir.dxc.hlsl
index 685a9ee..6db73a9 100644
--- a/test/tint/builtins/gen/literal/textureStore/06e49c.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureStore/06e49c.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,16 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWTexture2DArray<float4> arg_0 : register(u0, space1);
+void textureStore_06e49c() {
+  RWTexture2DArray<float4> v = arg_0;
+  v[int3((1).xx, int(1u))] = (1.0f).xxxx;
+}
+
+void fragment_main() {
+  textureStore_06e49c();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  textureStore_06e49c();
+}
+
diff --git a/test/tint/builtins/gen/literal/textureStore/06e49c.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/textureStore/06e49c.wgsl.expected.ir.fxc.hlsl
index 685a9ee..6db73a9 100644
--- a/test/tint/builtins/gen/literal/textureStore/06e49c.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureStore/06e49c.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,16 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWTexture2DArray<float4> arg_0 : register(u0, space1);
+void textureStore_06e49c() {
+  RWTexture2DArray<float4> v = arg_0;
+  v[int3((1).xx, int(1u))] = (1.0f).xxxx;
+}
+
+void fragment_main() {
+  textureStore_06e49c();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  textureStore_06e49c();
+}
+
diff --git a/test/tint/builtins/gen/literal/textureStore/07548b.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/textureStore/07548b.wgsl.expected.ir.dxc.hlsl
index 685a9ee..6822ebd 100644
--- a/test/tint/builtins/gen/literal/textureStore/07548b.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureStore/07548b.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,15 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWTexture3D<int4> arg_0 : register(u0, space1);
+void textureStore_07548b() {
+  arg_0[(1u).xxx] = (1).xxxx;
+}
+
+void fragment_main() {
+  textureStore_07548b();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  textureStore_07548b();
+}
+
diff --git a/test/tint/builtins/gen/literal/textureStore/07548b.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/textureStore/07548b.wgsl.expected.ir.fxc.hlsl
index 685a9ee..6822ebd 100644
--- a/test/tint/builtins/gen/literal/textureStore/07548b.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureStore/07548b.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,15 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWTexture3D<int4> arg_0 : register(u0, space1);
+void textureStore_07548b() {
+  arg_0[(1u).xxx] = (1).xxxx;
+}
+
+void fragment_main() {
+  textureStore_07548b();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  textureStore_07548b();
+}
+
diff --git a/test/tint/builtins/gen/literal/textureStore/09e4d5.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/textureStore/09e4d5.wgsl.expected.ir.dxc.hlsl
index 685a9ee..b82f57c 100644
--- a/test/tint/builtins/gen/literal/textureStore/09e4d5.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureStore/09e4d5.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,15 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWTexture1D<float4> arg_0 : register(u0, space1);
+void textureStore_09e4d5() {
+  arg_0[1u] = (1.0f).xxxx;
+}
+
+void fragment_main() {
+  textureStore_09e4d5();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  textureStore_09e4d5();
+}
+
diff --git a/test/tint/builtins/gen/literal/textureStore/09e4d5.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/textureStore/09e4d5.wgsl.expected.ir.fxc.hlsl
index 685a9ee..b82f57c 100644
--- a/test/tint/builtins/gen/literal/textureStore/09e4d5.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureStore/09e4d5.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,15 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWTexture1D<float4> arg_0 : register(u0, space1);
+void textureStore_09e4d5() {
+  arg_0[1u] = (1.0f).xxxx;
+}
+
+void fragment_main() {
+  textureStore_09e4d5();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  textureStore_09e4d5();
+}
+
diff --git a/test/tint/builtins/gen/literal/textureStore/0a1a79.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/textureStore/0a1a79.wgsl.expected.ir.dxc.hlsl
index 685a9ee..fb78e8c 100644
--- a/test/tint/builtins/gen/literal/textureStore/0a1a79.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureStore/0a1a79.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,16 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWTexture2DArray<uint4> arg_0 : register(u0, space1);
+void textureStore_0a1a79() {
+  RWTexture2DArray<uint4> v = arg_0;
+  v[uint3((1u).xx, uint(1))] = (1u).xxxx;
+}
+
+void fragment_main() {
+  textureStore_0a1a79();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  textureStore_0a1a79();
+}
+
diff --git a/test/tint/builtins/gen/literal/textureStore/0a1a79.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/textureStore/0a1a79.wgsl.expected.ir.fxc.hlsl
index 685a9ee..fb78e8c 100644
--- a/test/tint/builtins/gen/literal/textureStore/0a1a79.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureStore/0a1a79.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,16 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWTexture2DArray<uint4> arg_0 : register(u0, space1);
+void textureStore_0a1a79() {
+  RWTexture2DArray<uint4> v = arg_0;
+  v[uint3((1u).xx, uint(1))] = (1u).xxxx;
+}
+
+void fragment_main() {
+  textureStore_0a1a79();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  textureStore_0a1a79();
+}
+
diff --git a/test/tint/builtins/gen/literal/textureStore/0ad124.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/textureStore/0ad124.wgsl.expected.ir.dxc.hlsl
index 685a9ee..13e1a9a 100644
--- a/test/tint/builtins/gen/literal/textureStore/0ad124.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureStore/0ad124.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,15 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWTexture1D<float4> arg_0 : register(u0, space1);
+void textureStore_0ad124() {
+  arg_0[1] = (1.0f).xxxx;
+}
+
+void fragment_main() {
+  textureStore_0ad124();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  textureStore_0ad124();
+}
+
diff --git a/test/tint/builtins/gen/literal/textureStore/0ad124.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/textureStore/0ad124.wgsl.expected.ir.fxc.hlsl
index 685a9ee..13e1a9a 100644
--- a/test/tint/builtins/gen/literal/textureStore/0ad124.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureStore/0ad124.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,15 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWTexture1D<float4> arg_0 : register(u0, space1);
+void textureStore_0ad124() {
+  arg_0[1] = (1.0f).xxxx;
+}
+
+void fragment_main() {
+  textureStore_0ad124();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  textureStore_0ad124();
+}
+
diff --git a/test/tint/builtins/gen/literal/textureStore/0ade9a.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/textureStore/0ade9a.wgsl.expected.ir.dxc.hlsl
index 685a9ee..ac3aec2 100644
--- a/test/tint/builtins/gen/literal/textureStore/0ade9a.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureStore/0ade9a.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,16 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWTexture2DArray<uint4> arg_0 : register(u0, space1);
+void textureStore_0ade9a() {
+  RWTexture2DArray<uint4> v = arg_0;
+  v[uint3((1u).xx, uint(1u))] = (1u).xxxx;
+}
+
+void fragment_main() {
+  textureStore_0ade9a();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  textureStore_0ade9a();
+}
+
diff --git a/test/tint/builtins/gen/literal/textureStore/0ade9a.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/textureStore/0ade9a.wgsl.expected.ir.fxc.hlsl
index 685a9ee..ac3aec2 100644
--- a/test/tint/builtins/gen/literal/textureStore/0ade9a.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureStore/0ade9a.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,16 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWTexture2DArray<uint4> arg_0 : register(u0, space1);
+void textureStore_0ade9a() {
+  RWTexture2DArray<uint4> v = arg_0;
+  v[uint3((1u).xx, uint(1u))] = (1u).xxxx;
+}
+
+void fragment_main() {
+  textureStore_0ade9a();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  textureStore_0ade9a();
+}
+
diff --git a/test/tint/builtins/gen/literal/textureStore/0af6b5.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/textureStore/0af6b5.wgsl.expected.ir.dxc.hlsl
index 685a9ee..9d612f9 100644
--- a/test/tint/builtins/gen/literal/textureStore/0af6b5.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureStore/0af6b5.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,15 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWTexture2D<float4> arg_0 : register(u0, space1);
+void textureStore_0af6b5() {
+  arg_0[(1).xx] = (1.0f).xxxx;
+}
+
+void fragment_main() {
+  textureStore_0af6b5();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  textureStore_0af6b5();
+}
+
diff --git a/test/tint/builtins/gen/literal/textureStore/0af6b5.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/textureStore/0af6b5.wgsl.expected.ir.fxc.hlsl
index 685a9ee..9d612f9 100644
--- a/test/tint/builtins/gen/literal/textureStore/0af6b5.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureStore/0af6b5.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,15 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWTexture2D<float4> arg_0 : register(u0, space1);
+void textureStore_0af6b5() {
+  arg_0[(1).xx] = (1.0f).xxxx;
+}
+
+void fragment_main() {
+  textureStore_0af6b5();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  textureStore_0af6b5();
+}
+
diff --git a/test/tint/builtins/gen/literal/textureStore/0c3dff.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/textureStore/0c3dff.wgsl.expected.ir.dxc.hlsl
index 685a9ee..fd88393 100644
--- a/test/tint/builtins/gen/literal/textureStore/0c3dff.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureStore/0c3dff.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,15 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWTexture2D<uint4> arg_0 : register(u0, space1);
+void textureStore_0c3dff() {
+  arg_0[(1).xx] = (1u).xxxx;
+}
+
+void fragment_main() {
+  textureStore_0c3dff();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  textureStore_0c3dff();
+}
+
diff --git a/test/tint/builtins/gen/literal/textureStore/0c3dff.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/textureStore/0c3dff.wgsl.expected.ir.fxc.hlsl
index 685a9ee..fd88393 100644
--- a/test/tint/builtins/gen/literal/textureStore/0c3dff.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureStore/0c3dff.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,15 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWTexture2D<uint4> arg_0 : register(u0, space1);
+void textureStore_0c3dff() {
+  arg_0[(1).xx] = (1u).xxxx;
+}
+
+void fragment_main() {
+  textureStore_0c3dff();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  textureStore_0c3dff();
+}
+
diff --git a/test/tint/builtins/gen/literal/textureStore/0cc825.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/textureStore/0cc825.wgsl.expected.ir.dxc.hlsl
index 685a9ee..bbfbbb0 100644
--- a/test/tint/builtins/gen/literal/textureStore/0cc825.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureStore/0cc825.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,16 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWTexture2DArray<int4> arg_0 : register(u0, space1);
+void textureStore_0cc825() {
+  RWTexture2DArray<int4> v = arg_0;
+  v[uint3((1u).xx, uint(1))] = (1).xxxx;
+}
+
+void fragment_main() {
+  textureStore_0cc825();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  textureStore_0cc825();
+}
+
diff --git a/test/tint/builtins/gen/literal/textureStore/0cc825.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/textureStore/0cc825.wgsl.expected.ir.fxc.hlsl
index 685a9ee..bbfbbb0 100644
--- a/test/tint/builtins/gen/literal/textureStore/0cc825.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureStore/0cc825.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,16 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWTexture2DArray<int4> arg_0 : register(u0, space1);
+void textureStore_0cc825() {
+  RWTexture2DArray<int4> v = arg_0;
+  v[uint3((1u).xx, uint(1))] = (1).xxxx;
+}
+
+void fragment_main() {
+  textureStore_0cc825();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  textureStore_0cc825();
+}
+
diff --git a/test/tint/builtins/gen/literal/textureStore/0ff97a.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/textureStore/0ff97a.wgsl.expected.ir.dxc.hlsl
index 685a9ee..219824c 100644
--- a/test/tint/builtins/gen/literal/textureStore/0ff97a.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureStore/0ff97a.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,16 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWTexture2DArray<float4> arg_0 : register(u0, space1);
+void textureStore_0ff97a() {
+  RWTexture2DArray<float4> v = arg_0;
+  v[uint3((1u).xx, uint(1u))] = (1.0f).xxxx;
+}
+
+void fragment_main() {
+  textureStore_0ff97a();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  textureStore_0ff97a();
+}
+
diff --git a/test/tint/builtins/gen/literal/textureStore/0ff97a.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/textureStore/0ff97a.wgsl.expected.ir.fxc.hlsl
index 685a9ee..219824c 100644
--- a/test/tint/builtins/gen/literal/textureStore/0ff97a.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureStore/0ff97a.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,16 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWTexture2DArray<float4> arg_0 : register(u0, space1);
+void textureStore_0ff97a() {
+  RWTexture2DArray<float4> v = arg_0;
+  v[uint3((1u).xx, uint(1u))] = (1.0f).xxxx;
+}
+
+void fragment_main() {
+  textureStore_0ff97a();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  textureStore_0ff97a();
+}
+
diff --git a/test/tint/builtins/gen/literal/textureStore/101325.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/textureStore/101325.wgsl.expected.ir.dxc.hlsl
index 685a9ee..c59f534 100644
--- a/test/tint/builtins/gen/literal/textureStore/101325.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureStore/101325.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,15 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWTexture3D<uint4> arg_0 : register(u0, space1);
+void textureStore_101325() {
+  arg_0[(1u).xxx] = (1u).xxxx;
+}
+
+void fragment_main() {
+  textureStore_101325();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  textureStore_101325();
+}
+
diff --git a/test/tint/builtins/gen/literal/textureStore/101325.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/textureStore/101325.wgsl.expected.ir.fxc.hlsl
index 685a9ee..c59f534 100644
--- a/test/tint/builtins/gen/literal/textureStore/101325.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureStore/101325.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,15 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWTexture3D<uint4> arg_0 : register(u0, space1);
+void textureStore_101325() {
+  arg_0[(1u).xxx] = (1u).xxxx;
+}
+
+void fragment_main() {
+  textureStore_101325();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  textureStore_101325();
+}
+
diff --git a/test/tint/builtins/gen/literal/textureStore/102722.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/textureStore/102722.wgsl.expected.ir.dxc.hlsl
index 685a9ee..41060d8 100644
--- a/test/tint/builtins/gen/literal/textureStore/102722.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureStore/102722.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,15 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWTexture1D<uint4> arg_0 : register(u0, space1);
+void textureStore_102722() {
+  arg_0[1] = (1u).xxxx;
+}
+
+void fragment_main() {
+  textureStore_102722();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  textureStore_102722();
+}
+
diff --git a/test/tint/builtins/gen/literal/textureStore/102722.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/textureStore/102722.wgsl.expected.ir.fxc.hlsl
index 685a9ee..41060d8 100644
--- a/test/tint/builtins/gen/literal/textureStore/102722.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureStore/102722.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,15 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWTexture1D<uint4> arg_0 : register(u0, space1);
+void textureStore_102722() {
+  arg_0[1] = (1u).xxxx;
+}
+
+void fragment_main() {
+  textureStore_102722();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  textureStore_102722();
+}
+
diff --git a/test/tint/builtins/gen/literal/textureStore/145061.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/textureStore/145061.wgsl.expected.ir.dxc.hlsl
index 685a9ee..4285f55 100644
--- a/test/tint/builtins/gen/literal/textureStore/145061.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureStore/145061.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,15 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWTexture2D<uint4> arg_0 : register(u0, space1);
+void textureStore_145061() {
+  arg_0[(1u).xx] = (1u).xxxx;
+}
+
+void fragment_main() {
+  textureStore_145061();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  textureStore_145061();
+}
+
diff --git a/test/tint/builtins/gen/literal/textureStore/145061.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/textureStore/145061.wgsl.expected.ir.fxc.hlsl
index 685a9ee..4285f55 100644
--- a/test/tint/builtins/gen/literal/textureStore/145061.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureStore/145061.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,15 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWTexture2D<uint4> arg_0 : register(u0, space1);
+void textureStore_145061() {
+  arg_0[(1u).xx] = (1u).xxxx;
+}
+
+void fragment_main() {
+  textureStore_145061();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  textureStore_145061();
+}
+
diff --git a/test/tint/builtins/gen/literal/textureStore/158cf0.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/textureStore/158cf0.wgsl.expected.ir.dxc.hlsl
index 685a9ee..2505a41 100644
--- a/test/tint/builtins/gen/literal/textureStore/158cf0.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureStore/158cf0.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,16 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWTexture2DArray<uint4> arg_0 : register(u0, space1);
+void textureStore_158cf0() {
+  RWTexture2DArray<uint4> v = arg_0;
+  v[uint3((1u).xx, uint(1u))] = (1u).xxxx;
+}
+
+void fragment_main() {
+  textureStore_158cf0();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  textureStore_158cf0();
+}
+
diff --git a/test/tint/builtins/gen/literal/textureStore/158cf0.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/textureStore/158cf0.wgsl.expected.ir.fxc.hlsl
index 685a9ee..2505a41 100644
--- a/test/tint/builtins/gen/literal/textureStore/158cf0.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureStore/158cf0.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,16 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWTexture2DArray<uint4> arg_0 : register(u0, space1);
+void textureStore_158cf0() {
+  RWTexture2DArray<uint4> v = arg_0;
+  v[uint3((1u).xx, uint(1u))] = (1u).xxxx;
+}
+
+void fragment_main() {
+  textureStore_158cf0();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  textureStore_158cf0();
+}
+
diff --git a/test/tint/builtins/gen/literal/textureStore/178e69.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/textureStore/178e69.wgsl.expected.ir.dxc.hlsl
index 685a9ee..6f10a02 100644
--- a/test/tint/builtins/gen/literal/textureStore/178e69.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureStore/178e69.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,15 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWTexture1D<float4> arg_0 : register(u0, space1);
+void textureStore_178e69() {
+  arg_0[1] = (1.0f).xxxx;
+}
+
+void fragment_main() {
+  textureStore_178e69();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  textureStore_178e69();
+}
+
diff --git a/test/tint/builtins/gen/literal/textureStore/178e69.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/textureStore/178e69.wgsl.expected.ir.fxc.hlsl
index 685a9ee..6f10a02 100644
--- a/test/tint/builtins/gen/literal/textureStore/178e69.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureStore/178e69.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,15 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWTexture1D<float4> arg_0 : register(u0, space1);
+void textureStore_178e69() {
+  arg_0[1] = (1.0f).xxxx;
+}
+
+void fragment_main() {
+  textureStore_178e69();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  textureStore_178e69();
+}
+
diff --git a/test/tint/builtins/gen/literal/textureStore/1839f2.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/textureStore/1839f2.wgsl.expected.ir.dxc.hlsl
index 685a9ee..65ad43a 100644
--- a/test/tint/builtins/gen/literal/textureStore/1839f2.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureStore/1839f2.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,15 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWTexture2D<int4> arg_0 : register(u0, space1);
+void textureStore_1839f2() {
+  arg_0[(1u).xx] = (1).xxxx;
+}
+
+void fragment_main() {
+  textureStore_1839f2();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  textureStore_1839f2();
+}
+
diff --git a/test/tint/builtins/gen/literal/textureStore/1839f2.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/textureStore/1839f2.wgsl.expected.ir.fxc.hlsl
index 685a9ee..65ad43a 100644
--- a/test/tint/builtins/gen/literal/textureStore/1839f2.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureStore/1839f2.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,15 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWTexture2D<int4> arg_0 : register(u0, space1);
+void textureStore_1839f2() {
+  arg_0[(1u).xx] = (1).xxxx;
+}
+
+void fragment_main() {
+  textureStore_1839f2();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  textureStore_1839f2();
+}
+
diff --git a/test/tint/builtins/gen/literal/textureStore/195d1b.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/textureStore/195d1b.wgsl.expected.ir.dxc.hlsl
index 685a9ee..d51641c 100644
--- a/test/tint/builtins/gen/literal/textureStore/195d1b.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureStore/195d1b.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,15 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWTexture3D<float4> arg_0 : register(u0, space1);
+void textureStore_195d1b() {
+  arg_0[(1u).xxx] = (1.0f).xxxx;
+}
+
+void fragment_main() {
+  textureStore_195d1b();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  textureStore_195d1b();
+}
+
diff --git a/test/tint/builtins/gen/literal/textureStore/195d1b.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/textureStore/195d1b.wgsl.expected.ir.fxc.hlsl
index 685a9ee..d51641c 100644
--- a/test/tint/builtins/gen/literal/textureStore/195d1b.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureStore/195d1b.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,15 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWTexture3D<float4> arg_0 : register(u0, space1);
+void textureStore_195d1b() {
+  arg_0[(1u).xxx] = (1.0f).xxxx;
+}
+
+void fragment_main() {
+  textureStore_195d1b();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  textureStore_195d1b();
+}
+
diff --git a/test/tint/builtins/gen/literal/textureStore/197637.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/textureStore/197637.wgsl.expected.ir.dxc.hlsl
index 685a9ee..3b0c747 100644
--- a/test/tint/builtins/gen/literal/textureStore/197637.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureStore/197637.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,15 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWTexture1D<float4> arg_0 : register(u0, space1);
+void textureStore_197637() {
+  arg_0[1] = (1.0f).xxxx;
+}
+
+void fragment_main() {
+  textureStore_197637();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  textureStore_197637();
+}
+
diff --git a/test/tint/builtins/gen/literal/textureStore/197637.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/textureStore/197637.wgsl.expected.ir.fxc.hlsl
index 685a9ee..3b0c747 100644
--- a/test/tint/builtins/gen/literal/textureStore/197637.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureStore/197637.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,15 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWTexture1D<float4> arg_0 : register(u0, space1);
+void textureStore_197637() {
+  arg_0[1] = (1.0f).xxxx;
+}
+
+void fragment_main() {
+  textureStore_197637();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  textureStore_197637();
+}
+
diff --git a/test/tint/builtins/gen/literal/textureStore/1a264d.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/textureStore/1a264d.wgsl.expected.ir.dxc.hlsl
index 685a9ee..a3b363a 100644
--- a/test/tint/builtins/gen/literal/textureStore/1a264d.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureStore/1a264d.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,15 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWTexture3D<float4> arg_0 : register(u0, space1);
+void textureStore_1a264d() {
+  arg_0[(1).xxx] = (1.0f).xxxx;
+}
+
+void fragment_main() {
+  textureStore_1a264d();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  textureStore_1a264d();
+}
+
diff --git a/test/tint/builtins/gen/literal/textureStore/1a264d.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/textureStore/1a264d.wgsl.expected.ir.fxc.hlsl
index 685a9ee..a3b363a 100644
--- a/test/tint/builtins/gen/literal/textureStore/1a264d.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureStore/1a264d.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,15 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWTexture3D<float4> arg_0 : register(u0, space1);
+void textureStore_1a264d() {
+  arg_0[(1).xxx] = (1.0f).xxxx;
+}
+
+void fragment_main() {
+  textureStore_1a264d();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  textureStore_1a264d();
+}
+
diff --git a/test/tint/builtins/gen/literal/textureStore/1a6c0b.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/textureStore/1a6c0b.wgsl.expected.ir.dxc.hlsl
index 685a9ee..a03e786 100644
--- a/test/tint/builtins/gen/literal/textureStore/1a6c0b.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureStore/1a6c0b.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,16 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWTexture2DArray<int4> arg_0 : register(u0, space1);
+void textureStore_1a6c0b() {
+  RWTexture2DArray<int4> v = arg_0;
+  v[uint3((1u).xx, uint(1u))] = (1).xxxx;
+}
+
+void fragment_main() {
+  textureStore_1a6c0b();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  textureStore_1a6c0b();
+}
+
diff --git a/test/tint/builtins/gen/literal/textureStore/1a6c0b.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/textureStore/1a6c0b.wgsl.expected.ir.fxc.hlsl
index 685a9ee..a03e786 100644
--- a/test/tint/builtins/gen/literal/textureStore/1a6c0b.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureStore/1a6c0b.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,16 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWTexture2DArray<int4> arg_0 : register(u0, space1);
+void textureStore_1a6c0b() {
+  RWTexture2DArray<int4> v = arg_0;
+  v[uint3((1u).xx, uint(1u))] = (1).xxxx;
+}
+
+void fragment_main() {
+  textureStore_1a6c0b();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  textureStore_1a6c0b();
+}
+
diff --git a/test/tint/builtins/gen/literal/textureStore/1a7d35.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/textureStore/1a7d35.wgsl.expected.ir.dxc.hlsl
index 685a9ee..081657a 100644
--- a/test/tint/builtins/gen/literal/textureStore/1a7d35.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureStore/1a7d35.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,16 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWTexture2DArray<int4> arg_0 : register(u0, space1);
+void textureStore_1a7d35() {
+  RWTexture2DArray<int4> v = arg_0;
+  v[uint3((1u).xx, uint(1u))] = (1).xxxx;
+}
+
+void fragment_main() {
+  textureStore_1a7d35();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  textureStore_1a7d35();
+}
+
diff --git a/test/tint/builtins/gen/literal/textureStore/1a7d35.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/textureStore/1a7d35.wgsl.expected.ir.fxc.hlsl
index 685a9ee..081657a 100644
--- a/test/tint/builtins/gen/literal/textureStore/1a7d35.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureStore/1a7d35.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,16 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWTexture2DArray<int4> arg_0 : register(u0, space1);
+void textureStore_1a7d35() {
+  RWTexture2DArray<int4> v = arg_0;
+  v[uint3((1u).xx, uint(1u))] = (1).xxxx;
+}
+
+void fragment_main() {
+  textureStore_1a7d35();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  textureStore_1a7d35();
+}
+
diff --git a/test/tint/builtins/gen/literal/textureStore/1af236.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/textureStore/1af236.wgsl.expected.ir.dxc.hlsl
index 685a9ee..9a11e3c 100644
--- a/test/tint/builtins/gen/literal/textureStore/1af236.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureStore/1af236.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,16 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWTexture2DArray<float4> arg_0 : register(u0, space1);
+void textureStore_1af236() {
+  RWTexture2DArray<float4> v = arg_0;
+  v[int3((1).xx, int(1))] = (1.0f).xxxx;
+}
+
+void fragment_main() {
+  textureStore_1af236();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  textureStore_1af236();
+}
+
diff --git a/test/tint/builtins/gen/literal/textureStore/1af236.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/textureStore/1af236.wgsl.expected.ir.fxc.hlsl
index 685a9ee..9a11e3c 100644
--- a/test/tint/builtins/gen/literal/textureStore/1af236.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureStore/1af236.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,16 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWTexture2DArray<float4> arg_0 : register(u0, space1);
+void textureStore_1af236() {
+  RWTexture2DArray<float4> v = arg_0;
+  v[int3((1).xx, int(1))] = (1.0f).xxxx;
+}
+
+void fragment_main() {
+  textureStore_1af236();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  textureStore_1af236();
+}
+
diff --git a/test/tint/builtins/gen/literal/textureStore/1bbd08.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/textureStore/1bbd08.wgsl.expected.ir.dxc.hlsl
index 685a9ee..2e20e10 100644
--- a/test/tint/builtins/gen/literal/textureStore/1bbd08.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureStore/1bbd08.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,15 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWTexture3D<float4> arg_0 : register(u0, space1);
+void textureStore_1bbd08() {
+  arg_0[(1).xxx] = (1.0f).xxxx;
+}
+
+void fragment_main() {
+  textureStore_1bbd08();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  textureStore_1bbd08();
+}
+
diff --git a/test/tint/builtins/gen/literal/textureStore/1bbd08.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/textureStore/1bbd08.wgsl.expected.ir.fxc.hlsl
index 685a9ee..2e20e10 100644
--- a/test/tint/builtins/gen/literal/textureStore/1bbd08.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureStore/1bbd08.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,15 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWTexture3D<float4> arg_0 : register(u0, space1);
+void textureStore_1bbd08() {
+  arg_0[(1).xxx] = (1.0f).xxxx;
+}
+
+void fragment_main() {
+  textureStore_1bbd08();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  textureStore_1bbd08();
+}
+
diff --git a/test/tint/builtins/gen/literal/textureStore/1c02e7.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/textureStore/1c02e7.wgsl.expected.ir.dxc.hlsl
index 685a9ee..1775d14 100644
--- a/test/tint/builtins/gen/literal/textureStore/1c02e7.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureStore/1c02e7.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,16 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWTexture2DArray<int4> arg_0 : register(u0, space1);
+void textureStore_1c02e7() {
+  RWTexture2DArray<int4> v = arg_0;
+  v[int3((1).xx, int(1))] = (1).xxxx;
+}
+
+void fragment_main() {
+  textureStore_1c02e7();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  textureStore_1c02e7();
+}
+
diff --git a/test/tint/builtins/gen/literal/textureStore/1c02e7.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/textureStore/1c02e7.wgsl.expected.ir.fxc.hlsl
index 685a9ee..1775d14 100644
--- a/test/tint/builtins/gen/literal/textureStore/1c02e7.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureStore/1c02e7.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,16 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWTexture2DArray<int4> arg_0 : register(u0, space1);
+void textureStore_1c02e7() {
+  RWTexture2DArray<int4> v = arg_0;
+  v[int3((1).xx, int(1))] = (1).xxxx;
+}
+
+void fragment_main() {
+  textureStore_1c02e7();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  textureStore_1c02e7();
+}
+
diff --git a/test/tint/builtins/gen/literal/textureStore/1dc954.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/textureStore/1dc954.wgsl.expected.ir.dxc.hlsl
index 685a9ee..9cfa896 100644
--- a/test/tint/builtins/gen/literal/textureStore/1dc954.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureStore/1dc954.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,15 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWTexture1D<int4> arg_0 : register(u0, space1);
+void textureStore_1dc954() {
+  arg_0[1u] = (1).xxxx;
+}
+
+void fragment_main() {
+  textureStore_1dc954();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  textureStore_1dc954();
+}
+
diff --git a/test/tint/builtins/gen/literal/textureStore/1dc954.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/textureStore/1dc954.wgsl.expected.ir.fxc.hlsl
index 685a9ee..9cfa896 100644
--- a/test/tint/builtins/gen/literal/textureStore/1dc954.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureStore/1dc954.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,15 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWTexture1D<int4> arg_0 : register(u0, space1);
+void textureStore_1dc954() {
+  arg_0[1u] = (1).xxxx;
+}
+
+void fragment_main() {
+  textureStore_1dc954();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  textureStore_1dc954();
+}
+
diff --git a/test/tint/builtins/gen/literal/textureStore/1e20f2.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/textureStore/1e20f2.wgsl.expected.ir.dxc.hlsl
index 685a9ee..3960fa0 100644
--- a/test/tint/builtins/gen/literal/textureStore/1e20f2.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureStore/1e20f2.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,15 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWTexture2D<float4> arg_0 : register(u0, space1);
+void textureStore_1e20f2() {
+  arg_0[(1u).xx] = (1.0f).xxxx;
+}
+
+void fragment_main() {
+  textureStore_1e20f2();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  textureStore_1e20f2();
+}
+
diff --git a/test/tint/builtins/gen/literal/textureStore/1e20f2.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/textureStore/1e20f2.wgsl.expected.ir.fxc.hlsl
index 685a9ee..3960fa0 100644
--- a/test/tint/builtins/gen/literal/textureStore/1e20f2.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureStore/1e20f2.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,15 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWTexture2D<float4> arg_0 : register(u0, space1);
+void textureStore_1e20f2() {
+  arg_0[(1u).xx] = (1.0f).xxxx;
+}
+
+void fragment_main() {
+  textureStore_1e20f2();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  textureStore_1e20f2();
+}
+
diff --git a/test/tint/builtins/gen/literal/textureStore/1e79f0.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/textureStore/1e79f0.wgsl.expected.ir.dxc.hlsl
index 685a9ee..c694793 100644
--- a/test/tint/builtins/gen/literal/textureStore/1e79f0.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureStore/1e79f0.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,16 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWTexture2DArray<float4> arg_0 : register(u0, space1);
+void textureStore_1e79f0() {
+  RWTexture2DArray<float4> v = arg_0;
+  v[int3((1).xx, int(1))] = (1.0f).xxxx;
+}
+
+void fragment_main() {
+  textureStore_1e79f0();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  textureStore_1e79f0();
+}
+
diff --git a/test/tint/builtins/gen/literal/textureStore/1e79f0.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/textureStore/1e79f0.wgsl.expected.ir.fxc.hlsl
index 685a9ee..c694793 100644
--- a/test/tint/builtins/gen/literal/textureStore/1e79f0.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureStore/1e79f0.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,16 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWTexture2DArray<float4> arg_0 : register(u0, space1);
+void textureStore_1e79f0() {
+  RWTexture2DArray<float4> v = arg_0;
+  v[int3((1).xx, int(1))] = (1.0f).xxxx;
+}
+
+void fragment_main() {
+  textureStore_1e79f0();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  textureStore_1e79f0();
+}
+
diff --git a/test/tint/builtins/gen/literal/textureStore/1e9fbd.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/textureStore/1e9fbd.wgsl.expected.ir.dxc.hlsl
index 685a9ee..ea2732b 100644
--- a/test/tint/builtins/gen/literal/textureStore/1e9fbd.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureStore/1e9fbd.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,16 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWTexture2DArray<int4> arg_0 : register(u0, space1);
+void textureStore_1e9fbd() {
+  RWTexture2DArray<int4> v = arg_0;
+  v[uint3((1u).xx, uint(1))] = (1).xxxx;
+}
+
+void fragment_main() {
+  textureStore_1e9fbd();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  textureStore_1e9fbd();
+}
+
diff --git a/test/tint/builtins/gen/literal/textureStore/1e9fbd.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/textureStore/1e9fbd.wgsl.expected.ir.fxc.hlsl
index 685a9ee..ea2732b 100644
--- a/test/tint/builtins/gen/literal/textureStore/1e9fbd.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureStore/1e9fbd.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,16 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWTexture2DArray<int4> arg_0 : register(u0, space1);
+void textureStore_1e9fbd() {
+  RWTexture2DArray<int4> v = arg_0;
+  v[uint3((1u).xx, uint(1))] = (1).xxxx;
+}
+
+void fragment_main() {
+  textureStore_1e9fbd();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  textureStore_1e9fbd();
+}
+
diff --git a/test/tint/builtins/gen/literal/textureStore/1efc36.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/textureStore/1efc36.wgsl.expected.ir.dxc.hlsl
index 685a9ee..ec6dec9 100644
--- a/test/tint/builtins/gen/literal/textureStore/1efc36.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureStore/1efc36.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,15 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWTexture3D<uint4> arg_0 : register(u0, space1);
+void textureStore_1efc36() {
+  arg_0[(1u).xxx] = (1u).xxxx;
+}
+
+void fragment_main() {
+  textureStore_1efc36();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  textureStore_1efc36();
+}
+
diff --git a/test/tint/builtins/gen/literal/textureStore/1efc36.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/textureStore/1efc36.wgsl.expected.ir.fxc.hlsl
index 685a9ee..ec6dec9 100644
--- a/test/tint/builtins/gen/literal/textureStore/1efc36.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureStore/1efc36.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,15 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWTexture3D<uint4> arg_0 : register(u0, space1);
+void textureStore_1efc36() {
+  arg_0[(1u).xxx] = (1u).xxxx;
+}
+
+void fragment_main() {
+  textureStore_1efc36();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  textureStore_1efc36();
+}
+
diff --git a/test/tint/builtins/gen/literal/textureStore/1f1ef8.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/textureStore/1f1ef8.wgsl.expected.ir.dxc.hlsl
index 685a9ee..21d762c 100644
--- a/test/tint/builtins/gen/literal/textureStore/1f1ef8.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureStore/1f1ef8.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,16 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWTexture2DArray<int4> arg_0 : register(u0, space1);
+void textureStore_1f1ef8() {
+  RWTexture2DArray<int4> v = arg_0;
+  v[int3((1).xx, int(1u))] = (1).xxxx;
+}
+
+void fragment_main() {
+  textureStore_1f1ef8();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  textureStore_1f1ef8();
+}
+
diff --git a/test/tint/builtins/gen/literal/textureStore/1f1ef8.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/textureStore/1f1ef8.wgsl.expected.ir.fxc.hlsl
index 685a9ee..21d762c 100644
--- a/test/tint/builtins/gen/literal/textureStore/1f1ef8.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureStore/1f1ef8.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,16 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWTexture2DArray<int4> arg_0 : register(u0, space1);
+void textureStore_1f1ef8() {
+  RWTexture2DArray<int4> v = arg_0;
+  v[int3((1).xx, int(1u))] = (1).xxxx;
+}
+
+void fragment_main() {
+  textureStore_1f1ef8();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  textureStore_1f1ef8();
+}
+
diff --git a/test/tint/builtins/gen/literal/textureStore/1fef04.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/textureStore/1fef04.wgsl.expected.ir.dxc.hlsl
index 685a9ee..2d02ccd 100644
--- a/test/tint/builtins/gen/literal/textureStore/1fef04.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureStore/1fef04.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,15 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWTexture1D<int4> arg_0 : register(u0, space1);
+void textureStore_1fef04() {
+  arg_0[1u] = (1).xxxx;
+}
+
+void fragment_main() {
+  textureStore_1fef04();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  textureStore_1fef04();
+}
+
diff --git a/test/tint/builtins/gen/literal/textureStore/1fef04.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/textureStore/1fef04.wgsl.expected.ir.fxc.hlsl
index 685a9ee..2d02ccd 100644
--- a/test/tint/builtins/gen/literal/textureStore/1fef04.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureStore/1fef04.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,15 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWTexture1D<int4> arg_0 : register(u0, space1);
+void textureStore_1fef04() {
+  arg_0[1u] = (1).xxxx;
+}
+
+void fragment_main() {
+  textureStore_1fef04();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  textureStore_1fef04();
+}
+
diff --git a/test/tint/builtins/gen/literal/textureStore/2046db.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/textureStore/2046db.wgsl.expected.ir.dxc.hlsl
index 685a9ee..037b9d9 100644
--- a/test/tint/builtins/gen/literal/textureStore/2046db.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureStore/2046db.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,16 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWTexture2DArray<float4> arg_0 : register(u0, space1);
+void textureStore_2046db() {
+  RWTexture2DArray<float4> v = arg_0;
+  v[uint3((1u).xx, uint(1))] = (1.0f).xxxx;
+}
+
+void fragment_main() {
+  textureStore_2046db();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  textureStore_2046db();
+}
+
diff --git a/test/tint/builtins/gen/literal/textureStore/2046db.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/textureStore/2046db.wgsl.expected.ir.fxc.hlsl
index 685a9ee..037b9d9 100644
--- a/test/tint/builtins/gen/literal/textureStore/2046db.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureStore/2046db.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,16 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWTexture2DArray<float4> arg_0 : register(u0, space1);
+void textureStore_2046db() {
+  RWTexture2DArray<float4> v = arg_0;
+  v[uint3((1u).xx, uint(1))] = (1.0f).xxxx;
+}
+
+void fragment_main() {
+  textureStore_2046db();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  textureStore_2046db();
+}
+
diff --git a/test/tint/builtins/gen/literal/textureStore/207fdd.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/textureStore/207fdd.wgsl.expected.ir.dxc.hlsl
index 685a9ee..8d58f49 100644
--- a/test/tint/builtins/gen/literal/textureStore/207fdd.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureStore/207fdd.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,15 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWTexture3D<float4> arg_0 : register(u0, space1);
+void textureStore_207fdd() {
+  arg_0[(1u).xxx] = (1.0f).xxxx;
+}
+
+void fragment_main() {
+  textureStore_207fdd();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  textureStore_207fdd();
+}
+
diff --git a/test/tint/builtins/gen/literal/textureStore/207fdd.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/textureStore/207fdd.wgsl.expected.ir.fxc.hlsl
index 685a9ee..8d58f49 100644
--- a/test/tint/builtins/gen/literal/textureStore/207fdd.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureStore/207fdd.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,15 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWTexture3D<float4> arg_0 : register(u0, space1);
+void textureStore_207fdd() {
+  arg_0[(1u).xxx] = (1.0f).xxxx;
+}
+
+void fragment_main() {
+  textureStore_207fdd();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  textureStore_207fdd();
+}
+
diff --git a/test/tint/builtins/gen/literal/textureStore/2173fd.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/textureStore/2173fd.wgsl.expected.ir.dxc.hlsl
index 685a9ee..550689b 100644
--- a/test/tint/builtins/gen/literal/textureStore/2173fd.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureStore/2173fd.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,15 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWTexture1D<uint4> arg_0 : register(u0, space1);
+void textureStore_2173fd() {
+  arg_0[1u] = (1u).xxxx;
+}
+
+void fragment_main() {
+  textureStore_2173fd();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  textureStore_2173fd();
+}
+
diff --git a/test/tint/builtins/gen/literal/textureStore/2173fd.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/textureStore/2173fd.wgsl.expected.ir.fxc.hlsl
index 685a9ee..550689b 100644
--- a/test/tint/builtins/gen/literal/textureStore/2173fd.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureStore/2173fd.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,15 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWTexture1D<uint4> arg_0 : register(u0, space1);
+void textureStore_2173fd() {
+  arg_0[1u] = (1u).xxxx;
+}
+
+void fragment_main() {
+  textureStore_2173fd();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  textureStore_2173fd();
+}
+
diff --git a/test/tint/builtins/gen/literal/textureStore/22d955.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/textureStore/22d955.wgsl.expected.ir.dxc.hlsl
index 685a9ee..48d037c 100644
--- a/test/tint/builtins/gen/literal/textureStore/22d955.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureStore/22d955.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,16 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWTexture2DArray<uint4> arg_0 : register(u0, space1);
+void textureStore_22d955() {
+  RWTexture2DArray<uint4> v = arg_0;
+  v[int3((1).xx, int(1))] = (1u).xxxx;
+}
+
+void fragment_main() {
+  textureStore_22d955();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  textureStore_22d955();
+}
+
diff --git a/test/tint/builtins/gen/literal/textureStore/22d955.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/textureStore/22d955.wgsl.expected.ir.fxc.hlsl
index 685a9ee..48d037c 100644
--- a/test/tint/builtins/gen/literal/textureStore/22d955.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureStore/22d955.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,16 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWTexture2DArray<uint4> arg_0 : register(u0, space1);
+void textureStore_22d955() {
+  RWTexture2DArray<uint4> v = arg_0;
+  v[int3((1).xx, int(1))] = (1u).xxxx;
+}
+
+void fragment_main() {
+  textureStore_22d955();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  textureStore_22d955();
+}
+
diff --git a/test/tint/builtins/gen/literal/textureStore/22f045.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/textureStore/22f045.wgsl.expected.ir.dxc.hlsl
index 685a9ee..8cacb06 100644
--- a/test/tint/builtins/gen/literal/textureStore/22f045.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureStore/22f045.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,16 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWTexture2DArray<float4> arg_0 : register(u0, space1);
+void textureStore_22f045() {
+  RWTexture2DArray<float4> v = arg_0;
+  v[int3((1).xx, int(1u))] = (1.0f).xxxx;
+}
+
+void fragment_main() {
+  textureStore_22f045();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  textureStore_22f045();
+}
+
diff --git a/test/tint/builtins/gen/literal/textureStore/22f045.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/textureStore/22f045.wgsl.expected.ir.fxc.hlsl
index 685a9ee..8cacb06 100644
--- a/test/tint/builtins/gen/literal/textureStore/22f045.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureStore/22f045.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,16 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWTexture2DArray<float4> arg_0 : register(u0, space1);
+void textureStore_22f045() {
+  RWTexture2DArray<float4> v = arg_0;
+  v[int3((1).xx, int(1u))] = (1.0f).xxxx;
+}
+
+void fragment_main() {
+  textureStore_22f045();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  textureStore_22f045();
+}
+
diff --git a/test/tint/builtins/gen/literal/textureStore/2383fc.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/textureStore/2383fc.wgsl.expected.ir.dxc.hlsl
index 685a9ee..349b325 100644
--- a/test/tint/builtins/gen/literal/textureStore/2383fc.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureStore/2383fc.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,16 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWTexture2DArray<uint4> arg_0 : register(u0, space1);
+void textureStore_2383fc() {
+  RWTexture2DArray<uint4> v = arg_0;
+  v[uint3((1u).xx, uint(1))] = (1u).xxxx;
+}
+
+void fragment_main() {
+  textureStore_2383fc();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  textureStore_2383fc();
+}
+
diff --git a/test/tint/builtins/gen/literal/textureStore/2383fc.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/textureStore/2383fc.wgsl.expected.ir.fxc.hlsl
index 685a9ee..349b325 100644
--- a/test/tint/builtins/gen/literal/textureStore/2383fc.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureStore/2383fc.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,16 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWTexture2DArray<uint4> arg_0 : register(u0, space1);
+void textureStore_2383fc() {
+  RWTexture2DArray<uint4> v = arg_0;
+  v[uint3((1u).xx, uint(1))] = (1u).xxxx;
+}
+
+void fragment_main() {
+  textureStore_2383fc();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  textureStore_2383fc();
+}
+
diff --git a/test/tint/builtins/gen/literal/textureStore/24e6b7.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/textureStore/24e6b7.wgsl.expected.ir.dxc.hlsl
index 685a9ee..ccd04ff 100644
--- a/test/tint/builtins/gen/literal/textureStore/24e6b7.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureStore/24e6b7.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,15 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWTexture3D<int4> arg_0 : register(u0, space1);
+void textureStore_24e6b7() {
+  arg_0[(1).xxx] = (1).xxxx;
+}
+
+void fragment_main() {
+  textureStore_24e6b7();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  textureStore_24e6b7();
+}
+
diff --git a/test/tint/builtins/gen/literal/textureStore/24e6b7.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/textureStore/24e6b7.wgsl.expected.ir.fxc.hlsl
index 685a9ee..ccd04ff 100644
--- a/test/tint/builtins/gen/literal/textureStore/24e6b7.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureStore/24e6b7.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,15 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWTexture3D<int4> arg_0 : register(u0, space1);
+void textureStore_24e6b7() {
+  arg_0[(1).xxx] = (1).xxxx;
+}
+
+void fragment_main() {
+  textureStore_24e6b7();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  textureStore_24e6b7();
+}
+
diff --git a/test/tint/builtins/gen/literal/textureStore/258ab0.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/textureStore/258ab0.wgsl.expected.ir.dxc.hlsl
index 685a9ee..4a8a92f 100644
--- a/test/tint/builtins/gen/literal/textureStore/258ab0.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureStore/258ab0.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,16 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWTexture2DArray<float4> arg_0 : register(u0, space1);
+void textureStore_258ab0() {
+  RWTexture2DArray<float4> v = arg_0;
+  v[uint3((1u).xx, uint(1))] = (1.0f).xxxx;
+}
+
+void fragment_main() {
+  textureStore_258ab0();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  textureStore_258ab0();
+}
+
diff --git a/test/tint/builtins/gen/literal/textureStore/258ab0.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/textureStore/258ab0.wgsl.expected.ir.fxc.hlsl
index 685a9ee..4a8a92f 100644
--- a/test/tint/builtins/gen/literal/textureStore/258ab0.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureStore/258ab0.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,16 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWTexture2DArray<float4> arg_0 : register(u0, space1);
+void textureStore_258ab0() {
+  RWTexture2DArray<float4> v = arg_0;
+  v[uint3((1u).xx, uint(1))] = (1.0f).xxxx;
+}
+
+void fragment_main() {
+  textureStore_258ab0();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  textureStore_258ab0();
+}
+
diff --git a/test/tint/builtins/gen/literal/textureStore/26a26d.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/textureStore/26a26d.wgsl.expected.ir.dxc.hlsl
index 685a9ee..16b1234 100644
--- a/test/tint/builtins/gen/literal/textureStore/26a26d.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureStore/26a26d.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,15 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWTexture1D<float4> arg_0 : register(u0, space1);
+void textureStore_26a26d() {
+  arg_0[1u] = (1.0f).xxxx;
+}
+
+void fragment_main() {
+  textureStore_26a26d();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  textureStore_26a26d();
+}
+
diff --git a/test/tint/builtins/gen/literal/textureStore/26a26d.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/textureStore/26a26d.wgsl.expected.ir.fxc.hlsl
index 685a9ee..16b1234 100644
--- a/test/tint/builtins/gen/literal/textureStore/26a26d.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureStore/26a26d.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,15 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWTexture1D<float4> arg_0 : register(u0, space1);
+void textureStore_26a26d() {
+  arg_0[1u] = (1.0f).xxxx;
+}
+
+void fragment_main() {
+  textureStore_26a26d();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  textureStore_26a26d();
+}
+
diff --git a/test/tint/builtins/gen/literal/textureStore/26bf70.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/textureStore/26bf70.wgsl.expected.ir.dxc.hlsl
index 685a9ee..2b731d5 100644
--- a/test/tint/builtins/gen/literal/textureStore/26bf70.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureStore/26bf70.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,15 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWTexture2D<uint4> arg_0 : register(u0, space1);
+void textureStore_26bf70() {
+  arg_0[(1).xx] = (1u).xxxx;
+}
+
+void fragment_main() {
+  textureStore_26bf70();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  textureStore_26bf70();
+}
+
diff --git a/test/tint/builtins/gen/literal/textureStore/26bf70.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/textureStore/26bf70.wgsl.expected.ir.fxc.hlsl
index 685a9ee..2b731d5 100644
--- a/test/tint/builtins/gen/literal/textureStore/26bf70.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureStore/26bf70.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,15 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWTexture2D<uint4> arg_0 : register(u0, space1);
+void textureStore_26bf70() {
+  arg_0[(1).xx] = (1u).xxxx;
+}
+
+void fragment_main() {
+  textureStore_26bf70();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  textureStore_26bf70();
+}
+
diff --git a/test/tint/builtins/gen/literal/textureStore/27063a.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/textureStore/27063a.wgsl.expected.ir.dxc.hlsl
index 685a9ee..7f4e630 100644
--- a/test/tint/builtins/gen/literal/textureStore/27063a.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureStore/27063a.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,16 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWTexture2DArray<float4> arg_0 : register(u0, space1);
+void textureStore_27063a() {
+  RWTexture2DArray<float4> v = arg_0;
+  v[uint3((1u).xx, uint(1))] = (1.0f).xxxx;
+}
+
+void fragment_main() {
+  textureStore_27063a();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  textureStore_27063a();
+}
+
diff --git a/test/tint/builtins/gen/literal/textureStore/27063a.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/textureStore/27063a.wgsl.expected.ir.fxc.hlsl
index 685a9ee..7f4e630 100644
--- a/test/tint/builtins/gen/literal/textureStore/27063a.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureStore/27063a.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,16 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWTexture2DArray<float4> arg_0 : register(u0, space1);
+void textureStore_27063a() {
+  RWTexture2DArray<float4> v = arg_0;
+  v[uint3((1u).xx, uint(1))] = (1.0f).xxxx;
+}
+
+void fragment_main() {
+  textureStore_27063a();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  textureStore_27063a();
+}
+
diff --git a/test/tint/builtins/gen/literal/textureStore/272f5a.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/textureStore/272f5a.wgsl.expected.ir.dxc.hlsl
index 685a9ee..6238d51 100644
--- a/test/tint/builtins/gen/literal/textureStore/272f5a.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureStore/272f5a.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,16 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWTexture2DArray<float4> arg_0 : register(u0, space1);
+void textureStore_272f5a() {
+  RWTexture2DArray<float4> v = arg_0;
+  v[int3((1).xx, int(1u))] = (1.0f).xxxx;
+}
+
+void fragment_main() {
+  textureStore_272f5a();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  textureStore_272f5a();
+}
+
diff --git a/test/tint/builtins/gen/literal/textureStore/272f5a.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/textureStore/272f5a.wgsl.expected.ir.fxc.hlsl
index 685a9ee..6238d51 100644
--- a/test/tint/builtins/gen/literal/textureStore/272f5a.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureStore/272f5a.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,16 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWTexture2DArray<float4> arg_0 : register(u0, space1);
+void textureStore_272f5a() {
+  RWTexture2DArray<float4> v = arg_0;
+  v[int3((1).xx, int(1u))] = (1.0f).xxxx;
+}
+
+void fragment_main() {
+  textureStore_272f5a();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  textureStore_272f5a();
+}
+
diff --git a/test/tint/builtins/gen/literal/textureStore/2796b4.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/textureStore/2796b4.wgsl.expected.ir.dxc.hlsl
index 685a9ee..6f155f2 100644
--- a/test/tint/builtins/gen/literal/textureStore/2796b4.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureStore/2796b4.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,15 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWTexture3D<int4> arg_0 : register(u0, space1);
+void textureStore_2796b4() {
+  arg_0[(1).xxx] = (1).xxxx;
+}
+
+void fragment_main() {
+  textureStore_2796b4();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  textureStore_2796b4();
+}
+
diff --git a/test/tint/builtins/gen/literal/textureStore/2796b4.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/textureStore/2796b4.wgsl.expected.ir.fxc.hlsl
index 685a9ee..6f155f2 100644
--- a/test/tint/builtins/gen/literal/textureStore/2796b4.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureStore/2796b4.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,15 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWTexture3D<int4> arg_0 : register(u0, space1);
+void textureStore_2796b4() {
+  arg_0[(1).xxx] = (1).xxxx;
+}
+
+void fragment_main() {
+  textureStore_2796b4();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  textureStore_2796b4();
+}
+
diff --git a/test/tint/builtins/gen/literal/textureStore/285218.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/textureStore/285218.wgsl.expected.ir.dxc.hlsl
index 685a9ee..df7c529 100644
--- a/test/tint/builtins/gen/literal/textureStore/285218.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureStore/285218.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,15 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWTexture1D<float4> arg_0 : register(u0, space1);
+void textureStore_285218() {
+  arg_0[1u] = (1.0f).xxxx;
+}
+
+void fragment_main() {
+  textureStore_285218();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  textureStore_285218();
+}
+
diff --git a/test/tint/builtins/gen/literal/textureStore/285218.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/textureStore/285218.wgsl.expected.ir.fxc.hlsl
index 685a9ee..df7c529 100644
--- a/test/tint/builtins/gen/literal/textureStore/285218.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureStore/285218.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,15 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWTexture1D<float4> arg_0 : register(u0, space1);
+void textureStore_285218() {
+  arg_0[1u] = (1.0f).xxxx;
+}
+
+void fragment_main() {
+  textureStore_285218();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  textureStore_285218();
+}
+
diff --git a/test/tint/builtins/gen/literal/textureStore/28a7ec.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/textureStore/28a7ec.wgsl.expected.ir.dxc.hlsl
index 685a9ee..c03cd43 100644
--- a/test/tint/builtins/gen/literal/textureStore/28a7ec.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureStore/28a7ec.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,16 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWTexture2DArray<int4> arg_0 : register(u0, space1);
+void textureStore_28a7ec() {
+  RWTexture2DArray<int4> v = arg_0;
+  v[uint3((1u).xx, uint(1))] = (1).xxxx;
+}
+
+void fragment_main() {
+  textureStore_28a7ec();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  textureStore_28a7ec();
+}
+
diff --git a/test/tint/builtins/gen/literal/textureStore/28a7ec.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/textureStore/28a7ec.wgsl.expected.ir.fxc.hlsl
index 685a9ee..c03cd43 100644
--- a/test/tint/builtins/gen/literal/textureStore/28a7ec.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureStore/28a7ec.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,16 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWTexture2DArray<int4> arg_0 : register(u0, space1);
+void textureStore_28a7ec() {
+  RWTexture2DArray<int4> v = arg_0;
+  v[uint3((1u).xx, uint(1))] = (1).xxxx;
+}
+
+void fragment_main() {
+  textureStore_28a7ec();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  textureStore_28a7ec();
+}
+
diff --git a/test/tint/builtins/gen/literal/textureStore/28e109.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/textureStore/28e109.wgsl.expected.ir.dxc.hlsl
index 685a9ee..c3a6e2c 100644
--- a/test/tint/builtins/gen/literal/textureStore/28e109.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureStore/28e109.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,15 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWTexture2D<int4> arg_0 : register(u0, space1);
+void textureStore_28e109() {
+  arg_0[(1).xx] = (1).xxxx;
+}
+
+void fragment_main() {
+  textureStore_28e109();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  textureStore_28e109();
+}
+
diff --git a/test/tint/builtins/gen/literal/textureStore/28e109.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/textureStore/28e109.wgsl.expected.ir.fxc.hlsl
index 685a9ee..c3a6e2c 100644
--- a/test/tint/builtins/gen/literal/textureStore/28e109.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureStore/28e109.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,15 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWTexture2D<int4> arg_0 : register(u0, space1);
+void textureStore_28e109() {
+  arg_0[(1).xx] = (1).xxxx;
+}
+
+void fragment_main() {
+  textureStore_28e109();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  textureStore_28e109();
+}
+
diff --git a/test/tint/builtins/gen/literal/textureStore/2a60c9.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/textureStore/2a60c9.wgsl.expected.ir.dxc.hlsl
index 685a9ee..44f9599 100644
--- a/test/tint/builtins/gen/literal/textureStore/2a60c9.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureStore/2a60c9.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,16 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWTexture2DArray<int4> arg_0 : register(u0, space1);
+void textureStore_2a60c9() {
+  RWTexture2DArray<int4> v = arg_0;
+  v[uint3((1u).xx, uint(1u))] = (1).xxxx;
+}
+
+void fragment_main() {
+  textureStore_2a60c9();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  textureStore_2a60c9();
+}
+
diff --git a/test/tint/builtins/gen/literal/textureStore/2a60c9.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/textureStore/2a60c9.wgsl.expected.ir.fxc.hlsl
index 685a9ee..44f9599 100644
--- a/test/tint/builtins/gen/literal/textureStore/2a60c9.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureStore/2a60c9.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,16 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWTexture2DArray<int4> arg_0 : register(u0, space1);
+void textureStore_2a60c9() {
+  RWTexture2DArray<int4> v = arg_0;
+  v[uint3((1u).xx, uint(1u))] = (1).xxxx;
+}
+
+void fragment_main() {
+  textureStore_2a60c9();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  textureStore_2a60c9();
+}
+
diff --git a/test/tint/builtins/gen/literal/textureStore/2ac6c7.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/textureStore/2ac6c7.wgsl.expected.ir.dxc.hlsl
index 685a9ee..7b39824 100644
--- a/test/tint/builtins/gen/literal/textureStore/2ac6c7.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureStore/2ac6c7.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,15 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWTexture1D<float4> arg_0 : register(u0, space1);
+void textureStore_2ac6c7() {
+  arg_0[1] = (1.0f).xxxx;
+}
+
+void fragment_main() {
+  textureStore_2ac6c7();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  textureStore_2ac6c7();
+}
+
diff --git a/test/tint/builtins/gen/literal/textureStore/2ac6c7.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/textureStore/2ac6c7.wgsl.expected.ir.fxc.hlsl
index 685a9ee..7b39824 100644
--- a/test/tint/builtins/gen/literal/textureStore/2ac6c7.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureStore/2ac6c7.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,15 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWTexture1D<float4> arg_0 : register(u0, space1);
+void textureStore_2ac6c7() {
+  arg_0[1] = (1.0f).xxxx;
+}
+
+void fragment_main() {
+  textureStore_2ac6c7();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  textureStore_2ac6c7();
+}
+
diff --git a/test/tint/builtins/gen/literal/textureStore/2addd6.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/textureStore/2addd6.wgsl.expected.ir.dxc.hlsl
index 685a9ee..c84cc54 100644
--- a/test/tint/builtins/gen/literal/textureStore/2addd6.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureStore/2addd6.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,16 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWTexture2DArray<uint4> arg_0 : register(u0, space1);
+void textureStore_2addd6() {
+  RWTexture2DArray<uint4> v = arg_0;
+  v[uint3((1u).xx, uint(1u))] = (1u).xxxx;
+}
+
+void fragment_main() {
+  textureStore_2addd6();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  textureStore_2addd6();
+}
+
diff --git a/test/tint/builtins/gen/literal/textureStore/2addd6.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/textureStore/2addd6.wgsl.expected.ir.fxc.hlsl
index 685a9ee..c84cc54 100644
--- a/test/tint/builtins/gen/literal/textureStore/2addd6.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureStore/2addd6.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,16 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWTexture2DArray<uint4> arg_0 : register(u0, space1);
+void textureStore_2addd6() {
+  RWTexture2DArray<uint4> v = arg_0;
+  v[uint3((1u).xx, uint(1u))] = (1u).xxxx;
+}
+
+void fragment_main() {
+  textureStore_2addd6();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  textureStore_2addd6();
+}
+
diff --git a/test/tint/builtins/gen/literal/textureStore/2c76db.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/textureStore/2c76db.wgsl.expected.ir.dxc.hlsl
index 685a9ee..dc7399e 100644
--- a/test/tint/builtins/gen/literal/textureStore/2c76db.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureStore/2c76db.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,15 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWTexture2D<float4> arg_0 : register(u0, space1);
+void textureStore_2c76db() {
+  arg_0[(1u).xx] = (1.0f).xxxx;
+}
+
+void fragment_main() {
+  textureStore_2c76db();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  textureStore_2c76db();
+}
+
diff --git a/test/tint/builtins/gen/literal/textureStore/2c76db.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/textureStore/2c76db.wgsl.expected.ir.fxc.hlsl
index 685a9ee..dc7399e 100644
--- a/test/tint/builtins/gen/literal/textureStore/2c76db.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureStore/2c76db.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,15 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWTexture2D<float4> arg_0 : register(u0, space1);
+void textureStore_2c76db() {
+  arg_0[(1u).xx] = (1.0f).xxxx;
+}
+
+void fragment_main() {
+  textureStore_2c76db();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  textureStore_2c76db();
+}
+
diff --git a/test/tint/builtins/gen/literal/textureStore/2d2835.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/textureStore/2d2835.wgsl.expected.ir.dxc.hlsl
index 685a9ee..2b1533c 100644
--- a/test/tint/builtins/gen/literal/textureStore/2d2835.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureStore/2d2835.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,16 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWTexture2DArray<float4> arg_0 : register(u0, space1);
+void textureStore_2d2835() {
+  RWTexture2DArray<float4> v = arg_0;
+  v[uint3((1u).xx, uint(1u))] = (1.0f).xxxx;
+}
+
+void fragment_main() {
+  textureStore_2d2835();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  textureStore_2d2835();
+}
+
diff --git a/test/tint/builtins/gen/literal/textureStore/2d2835.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/textureStore/2d2835.wgsl.expected.ir.fxc.hlsl
index 685a9ee..2b1533c 100644
--- a/test/tint/builtins/gen/literal/textureStore/2d2835.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureStore/2d2835.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,16 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWTexture2DArray<float4> arg_0 : register(u0, space1);
+void textureStore_2d2835() {
+  RWTexture2DArray<float4> v = arg_0;
+  v[uint3((1u).xx, uint(1u))] = (1.0f).xxxx;
+}
+
+void fragment_main() {
+  textureStore_2d2835();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  textureStore_2d2835();
+}
+
diff --git a/test/tint/builtins/gen/literal/textureStore/2e4245.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/textureStore/2e4245.wgsl.expected.ir.dxc.hlsl
index 685a9ee..032e38c 100644
--- a/test/tint/builtins/gen/literal/textureStore/2e4245.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureStore/2e4245.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,15 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWTexture2D<float4> arg_0 : register(u0, space1);
+void textureStore_2e4245() {
+  arg_0[(1).xx] = (1.0f).xxxx;
+}
+
+void fragment_main() {
+  textureStore_2e4245();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  textureStore_2e4245();
+}
+
diff --git a/test/tint/builtins/gen/literal/textureStore/2e4245.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/textureStore/2e4245.wgsl.expected.ir.fxc.hlsl
index 685a9ee..032e38c 100644
--- a/test/tint/builtins/gen/literal/textureStore/2e4245.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureStore/2e4245.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,15 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWTexture2D<float4> arg_0 : register(u0, space1);
+void textureStore_2e4245() {
+  arg_0[(1).xx] = (1.0f).xxxx;
+}
+
+void fragment_main() {
+  textureStore_2e4245();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  textureStore_2e4245();
+}
+
diff --git a/test/tint/builtins/gen/literal/textureStore/2e512f.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/textureStore/2e512f.wgsl.expected.ir.dxc.hlsl
index 685a9ee..c8ac6b9 100644
--- a/test/tint/builtins/gen/literal/textureStore/2e512f.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureStore/2e512f.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,15 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWTexture2D<float4> arg_0 : register(u0, space1);
+void textureStore_2e512f() {
+  arg_0[(1u).xx] = (1.0f).xxxx;
+}
+
+void fragment_main() {
+  textureStore_2e512f();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  textureStore_2e512f();
+}
+
diff --git a/test/tint/builtins/gen/literal/textureStore/2e512f.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/textureStore/2e512f.wgsl.expected.ir.fxc.hlsl
index 685a9ee..c8ac6b9 100644
--- a/test/tint/builtins/gen/literal/textureStore/2e512f.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureStore/2e512f.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,15 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWTexture2D<float4> arg_0 : register(u0, space1);
+void textureStore_2e512f() {
+  arg_0[(1u).xx] = (1.0f).xxxx;
+}
+
+void fragment_main() {
+  textureStore_2e512f();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  textureStore_2e512f();
+}
+
diff --git a/test/tint/builtins/gen/literal/textureStore/2e6102.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/textureStore/2e6102.wgsl.expected.ir.dxc.hlsl
index 685a9ee..db626b5 100644
--- a/test/tint/builtins/gen/literal/textureStore/2e6102.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureStore/2e6102.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,15 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWTexture2D<float4> arg_0 : register(u0, space1);
+void textureStore_2e6102() {
+  arg_0[(1u).xx] = (1.0f).xxxx;
+}
+
+void fragment_main() {
+  textureStore_2e6102();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  textureStore_2e6102();
+}
+
diff --git a/test/tint/builtins/gen/literal/textureStore/2e6102.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/textureStore/2e6102.wgsl.expected.ir.fxc.hlsl
index 685a9ee..db626b5 100644
--- a/test/tint/builtins/gen/literal/textureStore/2e6102.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureStore/2e6102.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,15 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWTexture2D<float4> arg_0 : register(u0, space1);
+void textureStore_2e6102() {
+  arg_0[(1u).xx] = (1.0f).xxxx;
+}
+
+void fragment_main() {
+  textureStore_2e6102();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  textureStore_2e6102();
+}
+
diff --git a/test/tint/builtins/gen/literal/textureStore/2eb2a4.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/textureStore/2eb2a4.wgsl.expected.ir.dxc.hlsl
index 685a9ee..0841c2d 100644
--- a/test/tint/builtins/gen/literal/textureStore/2eb2a4.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureStore/2eb2a4.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,15 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWTexture1D<uint4> arg_0 : register(u0, space1);
+void textureStore_2eb2a4() {
+  arg_0[1] = (1u).xxxx;
+}
+
+void fragment_main() {
+  textureStore_2eb2a4();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  textureStore_2eb2a4();
+}
+
diff --git a/test/tint/builtins/gen/literal/textureStore/2eb2a4.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/textureStore/2eb2a4.wgsl.expected.ir.fxc.hlsl
index 685a9ee..0841c2d 100644
--- a/test/tint/builtins/gen/literal/textureStore/2eb2a4.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureStore/2eb2a4.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,15 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWTexture1D<uint4> arg_0 : register(u0, space1);
+void textureStore_2eb2a4() {
+  arg_0[1] = (1u).xxxx;
+}
+
+void fragment_main() {
+  textureStore_2eb2a4();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  textureStore_2eb2a4();
+}
+
diff --git a/test/tint/builtins/gen/literal/textureStore/2ed2a3.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/textureStore/2ed2a3.wgsl.expected.ir.dxc.hlsl
index 685a9ee..982452b 100644
--- a/test/tint/builtins/gen/literal/textureStore/2ed2a3.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureStore/2ed2a3.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,15 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWTexture1D<float4> arg_0 : register(u0, space1);
+void textureStore_2ed2a3() {
+  arg_0[1] = (1.0f).xxxx;
+}
+
+void fragment_main() {
+  textureStore_2ed2a3();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  textureStore_2ed2a3();
+}
+
diff --git a/test/tint/builtins/gen/literal/textureStore/2ed2a3.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/textureStore/2ed2a3.wgsl.expected.ir.fxc.hlsl
index 685a9ee..982452b 100644
--- a/test/tint/builtins/gen/literal/textureStore/2ed2a3.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureStore/2ed2a3.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,15 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWTexture1D<float4> arg_0 : register(u0, space1);
+void textureStore_2ed2a3() {
+  arg_0[1] = (1.0f).xxxx;
+}
+
+void fragment_main() {
+  textureStore_2ed2a3();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  textureStore_2ed2a3();
+}
+
diff --git a/test/tint/builtins/gen/literal/textureStore/2f29ea.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/textureStore/2f29ea.wgsl.expected.ir.dxc.hlsl
index 685a9ee..9738470 100644
--- a/test/tint/builtins/gen/literal/textureStore/2f29ea.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureStore/2f29ea.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,15 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWTexture2D<int4> arg_0 : register(u0, space1);
+void textureStore_2f29ea() {
+  arg_0[(1).xx] = (1).xxxx;
+}
+
+void fragment_main() {
+  textureStore_2f29ea();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  textureStore_2f29ea();
+}
+
diff --git a/test/tint/builtins/gen/literal/textureStore/2f29ea.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/textureStore/2f29ea.wgsl.expected.ir.fxc.hlsl
index 685a9ee..9738470 100644
--- a/test/tint/builtins/gen/literal/textureStore/2f29ea.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureStore/2f29ea.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,15 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWTexture2D<int4> arg_0 : register(u0, space1);
+void textureStore_2f29ea() {
+  arg_0[(1).xx] = (1).xxxx;
+}
+
+void fragment_main() {
+  textureStore_2f29ea();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  textureStore_2f29ea();
+}
+
diff --git a/test/tint/builtins/gen/literal/textureStore/30b0b0.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/textureStore/30b0b0.wgsl.expected.ir.dxc.hlsl
index 685a9ee..f0235c8 100644
--- a/test/tint/builtins/gen/literal/textureStore/30b0b0.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureStore/30b0b0.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,16 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWTexture2DArray<int4> arg_0 : register(u0, space1);
+void textureStore_30b0b0() {
+  RWTexture2DArray<int4> v = arg_0;
+  v[int3((1).xx, int(1u))] = (1).xxxx;
+}
+
+void fragment_main() {
+  textureStore_30b0b0();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  textureStore_30b0b0();
+}
+
diff --git a/test/tint/builtins/gen/literal/textureStore/30b0b0.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/textureStore/30b0b0.wgsl.expected.ir.fxc.hlsl
index 685a9ee..f0235c8 100644
--- a/test/tint/builtins/gen/literal/textureStore/30b0b0.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureStore/30b0b0.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,16 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWTexture2DArray<int4> arg_0 : register(u0, space1);
+void textureStore_30b0b0() {
+  RWTexture2DArray<int4> v = arg_0;
+  v[int3((1).xx, int(1u))] = (1).xxxx;
+}
+
+void fragment_main() {
+  textureStore_30b0b0();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  textureStore_30b0b0();
+}
+
diff --git a/test/tint/builtins/gen/literal/textureStore/312f27.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/textureStore/312f27.wgsl.expected.ir.dxc.hlsl
index 685a9ee..da01d04 100644
--- a/test/tint/builtins/gen/literal/textureStore/312f27.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureStore/312f27.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,16 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWTexture2DArray<float4> arg_0 : register(u0, space1);
+void textureStore_312f27() {
+  RWTexture2DArray<float4> v = arg_0;
+  v[int3((1).xx, int(1u))] = (1.0f).xxxx;
+}
+
+void fragment_main() {
+  textureStore_312f27();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  textureStore_312f27();
+}
+
diff --git a/test/tint/builtins/gen/literal/textureStore/312f27.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/textureStore/312f27.wgsl.expected.ir.fxc.hlsl
index 685a9ee..da01d04 100644
--- a/test/tint/builtins/gen/literal/textureStore/312f27.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureStore/312f27.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,16 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWTexture2DArray<float4> arg_0 : register(u0, space1);
+void textureStore_312f27() {
+  RWTexture2DArray<float4> v = arg_0;
+  v[int3((1).xx, int(1u))] = (1.0f).xxxx;
+}
+
+void fragment_main() {
+  textureStore_312f27();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  textureStore_312f27();
+}
+
diff --git a/test/tint/builtins/gen/literal/textureStore/31745b.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/textureStore/31745b.wgsl.expected.ir.dxc.hlsl
index 685a9ee..7101be6 100644
--- a/test/tint/builtins/gen/literal/textureStore/31745b.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureStore/31745b.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,15 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWTexture2D<int4> arg_0 : register(u0, space1);
+void textureStore_31745b() {
+  arg_0[(1).xx] = (1).xxxx;
+}
+
+void fragment_main() {
+  textureStore_31745b();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  textureStore_31745b();
+}
+
diff --git a/test/tint/builtins/gen/literal/textureStore/31745b.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/textureStore/31745b.wgsl.expected.ir.fxc.hlsl
index 685a9ee..7101be6 100644
--- a/test/tint/builtins/gen/literal/textureStore/31745b.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureStore/31745b.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,15 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWTexture2D<int4> arg_0 : register(u0, space1);
+void textureStore_31745b() {
+  arg_0[(1).xx] = (1).xxxx;
+}
+
+void fragment_main() {
+  textureStore_31745b();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  textureStore_31745b();
+}
+
diff --git a/test/tint/builtins/gen/literal/textureStore/319029.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/textureStore/319029.wgsl.expected.ir.dxc.hlsl
index 685a9ee..aa4ee81 100644
--- a/test/tint/builtins/gen/literal/textureStore/319029.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureStore/319029.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,16 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWTexture2DArray<float4> arg_0 : register(u0, space1);
+void textureStore_319029() {
+  RWTexture2DArray<float4> v = arg_0;
+  v[int3((1).xx, int(1))] = (1.0f).xxxx;
+}
+
+void fragment_main() {
+  textureStore_319029();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  textureStore_319029();
+}
+
diff --git a/test/tint/builtins/gen/literal/textureStore/319029.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/textureStore/319029.wgsl.expected.ir.fxc.hlsl
index 685a9ee..aa4ee81 100644
--- a/test/tint/builtins/gen/literal/textureStore/319029.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureStore/319029.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,16 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWTexture2DArray<float4> arg_0 : register(u0, space1);
+void textureStore_319029() {
+  RWTexture2DArray<float4> v = arg_0;
+  v[int3((1).xx, int(1))] = (1.0f).xxxx;
+}
+
+void fragment_main() {
+  textureStore_319029();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  textureStore_319029();
+}
+
diff --git a/test/tint/builtins/gen/literal/textureStore/32d3d6.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/textureStore/32d3d6.wgsl.expected.ir.dxc.hlsl
index 685a9ee..8d56ddb 100644
--- a/test/tint/builtins/gen/literal/textureStore/32d3d6.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureStore/32d3d6.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,15 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWTexture1D<uint4> arg_0 : register(u0, space1);
+void textureStore_32d3d6() {
+  arg_0[1u] = (1u).xxxx;
+}
+
+void fragment_main() {
+  textureStore_32d3d6();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  textureStore_32d3d6();
+}
+
diff --git a/test/tint/builtins/gen/literal/textureStore/32d3d6.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/textureStore/32d3d6.wgsl.expected.ir.fxc.hlsl
index 685a9ee..8d56ddb 100644
--- a/test/tint/builtins/gen/literal/textureStore/32d3d6.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureStore/32d3d6.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,15 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWTexture1D<uint4> arg_0 : register(u0, space1);
+void textureStore_32d3d6() {
+  arg_0[1u] = (1u).xxxx;
+}
+
+void fragment_main() {
+  textureStore_32d3d6();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  textureStore_32d3d6();
+}
+
diff --git a/test/tint/builtins/gen/literal/textureStore/32f368.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/textureStore/32f368.wgsl.expected.ir.dxc.hlsl
index 685a9ee..3c0dbd1 100644
--- a/test/tint/builtins/gen/literal/textureStore/32f368.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureStore/32f368.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,16 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWTexture2DArray<float4> arg_0 : register(u0, space1);
+void textureStore_32f368() {
+  RWTexture2DArray<float4> v = arg_0;
+  v[int3((1).xx, int(1))] = (1.0f).xxxx;
+}
+
+void fragment_main() {
+  textureStore_32f368();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  textureStore_32f368();
+}
+
diff --git a/test/tint/builtins/gen/literal/textureStore/32f368.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/textureStore/32f368.wgsl.expected.ir.fxc.hlsl
index 685a9ee..3c0dbd1 100644
--- a/test/tint/builtins/gen/literal/textureStore/32f368.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureStore/32f368.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,16 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWTexture2DArray<float4> arg_0 : register(u0, space1);
+void textureStore_32f368() {
+  RWTexture2DArray<float4> v = arg_0;
+  v[int3((1).xx, int(1))] = (1.0f).xxxx;
+}
+
+void fragment_main() {
+  textureStore_32f368();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  textureStore_32f368();
+}
+
diff --git a/test/tint/builtins/gen/literal/textureStore/330b7c.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/textureStore/330b7c.wgsl.expected.ir.dxc.hlsl
index 685a9ee..83b020a 100644
--- a/test/tint/builtins/gen/literal/textureStore/330b7c.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureStore/330b7c.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,16 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWTexture2DArray<float4> arg_0 : register(u0, space1);
+void textureStore_330b7c() {
+  RWTexture2DArray<float4> v = arg_0;
+  v[uint3((1u).xx, uint(1u))] = (1.0f).xxxx;
+}
+
+void fragment_main() {
+  textureStore_330b7c();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  textureStore_330b7c();
+}
+
diff --git a/test/tint/builtins/gen/literal/textureStore/330b7c.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/textureStore/330b7c.wgsl.expected.ir.fxc.hlsl
index 685a9ee..83b020a 100644
--- a/test/tint/builtins/gen/literal/textureStore/330b7c.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureStore/330b7c.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,16 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWTexture2DArray<float4> arg_0 : register(u0, space1);
+void textureStore_330b7c() {
+  RWTexture2DArray<float4> v = arg_0;
+  v[uint3((1u).xx, uint(1u))] = (1.0f).xxxx;
+}
+
+void fragment_main() {
+  textureStore_330b7c();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  textureStore_330b7c();
+}
+
diff --git a/test/tint/builtins/gen/literal/textureStore/3310d3.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/textureStore/3310d3.wgsl.expected.ir.dxc.hlsl
index 685a9ee..dc58d17 100644
--- a/test/tint/builtins/gen/literal/textureStore/3310d3.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureStore/3310d3.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,16 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWTexture2DArray<float4> arg_0 : register(u0, space1);
+void textureStore_3310d3() {
+  RWTexture2DArray<float4> v = arg_0;
+  v[int3((1).xx, int(1))] = (1.0f).xxxx;
+}
+
+void fragment_main() {
+  textureStore_3310d3();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  textureStore_3310d3();
+}
+
diff --git a/test/tint/builtins/gen/literal/textureStore/3310d3.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/textureStore/3310d3.wgsl.expected.ir.fxc.hlsl
index 685a9ee..dc58d17 100644
--- a/test/tint/builtins/gen/literal/textureStore/3310d3.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureStore/3310d3.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,16 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWTexture2DArray<float4> arg_0 : register(u0, space1);
+void textureStore_3310d3() {
+  RWTexture2DArray<float4> v = arg_0;
+  v[int3((1).xx, int(1))] = (1.0f).xxxx;
+}
+
+void fragment_main() {
+  textureStore_3310d3();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  textureStore_3310d3();
+}
+
diff --git a/test/tint/builtins/gen/literal/textureStore/331aee.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/textureStore/331aee.wgsl.expected.ir.dxc.hlsl
index 685a9ee..0c6e7e9 100644
--- a/test/tint/builtins/gen/literal/textureStore/331aee.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureStore/331aee.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,15 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWTexture3D<float4> arg_0 : register(u0, space1);
+void textureStore_331aee() {
+  arg_0[(1).xxx] = (1.0f).xxxx;
+}
+
+void fragment_main() {
+  textureStore_331aee();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  textureStore_331aee();
+}
+
diff --git a/test/tint/builtins/gen/literal/textureStore/331aee.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/textureStore/331aee.wgsl.expected.ir.fxc.hlsl
index 685a9ee..0c6e7e9 100644
--- a/test/tint/builtins/gen/literal/textureStore/331aee.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureStore/331aee.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,15 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWTexture3D<float4> arg_0 : register(u0, space1);
+void textureStore_331aee() {
+  arg_0[(1).xxx] = (1.0f).xxxx;
+}
+
+void fragment_main() {
+  textureStore_331aee();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  textureStore_331aee();
+}
+
diff --git a/test/tint/builtins/gen/literal/textureStore/33cec0.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/textureStore/33cec0.wgsl.expected.ir.dxc.hlsl
index 685a9ee..8405224 100644
--- a/test/tint/builtins/gen/literal/textureStore/33cec0.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureStore/33cec0.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,16 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWTexture2DArray<uint4> arg_0 : register(u0, space1);
+void textureStore_33cec0() {
+  RWTexture2DArray<uint4> v = arg_0;
+  v[uint3((1u).xx, uint(1))] = (1u).xxxx;
+}
+
+void fragment_main() {
+  textureStore_33cec0();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  textureStore_33cec0();
+}
+
diff --git a/test/tint/builtins/gen/literal/textureStore/33cec0.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/textureStore/33cec0.wgsl.expected.ir.fxc.hlsl
index 685a9ee..8405224 100644
--- a/test/tint/builtins/gen/literal/textureStore/33cec0.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureStore/33cec0.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,16 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWTexture2DArray<uint4> arg_0 : register(u0, space1);
+void textureStore_33cec0() {
+  RWTexture2DArray<uint4> v = arg_0;
+  v[uint3((1u).xx, uint(1))] = (1u).xxxx;
+}
+
+void fragment_main() {
+  textureStore_33cec0();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  textureStore_33cec0();
+}
+
diff --git a/test/tint/builtins/gen/literal/textureStore/345332.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/textureStore/345332.wgsl.expected.ir.dxc.hlsl
index 685a9ee..e556bb9 100644
--- a/test/tint/builtins/gen/literal/textureStore/345332.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureStore/345332.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,15 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWTexture2D<uint4> arg_0 : register(u0, space1);
+void textureStore_345332() {
+  arg_0[(1u).xx] = (1u).xxxx;
+}
+
+void fragment_main() {
+  textureStore_345332();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  textureStore_345332();
+}
+
diff --git a/test/tint/builtins/gen/literal/textureStore/345332.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/textureStore/345332.wgsl.expected.ir.fxc.hlsl
index 685a9ee..e556bb9 100644
--- a/test/tint/builtins/gen/literal/textureStore/345332.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureStore/345332.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,15 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWTexture2D<uint4> arg_0 : register(u0, space1);
+void textureStore_345332() {
+  arg_0[(1u).xx] = (1u).xxxx;
+}
+
+void fragment_main() {
+  textureStore_345332();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  textureStore_345332();
+}
+
diff --git a/test/tint/builtins/gen/literal/textureStore/37eeef.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/textureStore/37eeef.wgsl.expected.ir.dxc.hlsl
index 685a9ee..a1f5df2 100644
--- a/test/tint/builtins/gen/literal/textureStore/37eeef.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureStore/37eeef.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,16 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWTexture2DArray<float4> arg_0 : register(u0, space1);
+void textureStore_37eeef() {
+  RWTexture2DArray<float4> v = arg_0;
+  v[int3((1).xx, int(1u))] = (1.0f).xxxx;
+}
+
+void fragment_main() {
+  textureStore_37eeef();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  textureStore_37eeef();
+}
+
diff --git a/test/tint/builtins/gen/literal/textureStore/37eeef.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/textureStore/37eeef.wgsl.expected.ir.fxc.hlsl
index 685a9ee..a1f5df2 100644
--- a/test/tint/builtins/gen/literal/textureStore/37eeef.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureStore/37eeef.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,16 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWTexture2DArray<float4> arg_0 : register(u0, space1);
+void textureStore_37eeef() {
+  RWTexture2DArray<float4> v = arg_0;
+  v[int3((1).xx, int(1u))] = (1.0f).xxxx;
+}
+
+void fragment_main() {
+  textureStore_37eeef();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  textureStore_37eeef();
+}
+
diff --git a/test/tint/builtins/gen/literal/textureStore/37ffd4.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/textureStore/37ffd4.wgsl.expected.ir.dxc.hlsl
index 685a9ee..9ad81e8 100644
--- a/test/tint/builtins/gen/literal/textureStore/37ffd4.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureStore/37ffd4.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,16 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWTexture2DArray<float4> arg_0 : register(u0, space1);
+void textureStore_37ffd4() {
+  RWTexture2DArray<float4> v = arg_0;
+  v[uint3((1u).xx, uint(1))] = (1.0f).xxxx;
+}
+
+void fragment_main() {
+  textureStore_37ffd4();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  textureStore_37ffd4();
+}
+
diff --git a/test/tint/builtins/gen/literal/textureStore/37ffd4.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/textureStore/37ffd4.wgsl.expected.ir.fxc.hlsl
index 685a9ee..9ad81e8 100644
--- a/test/tint/builtins/gen/literal/textureStore/37ffd4.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureStore/37ffd4.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,16 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWTexture2DArray<float4> arg_0 : register(u0, space1);
+void textureStore_37ffd4() {
+  RWTexture2DArray<float4> v = arg_0;
+  v[uint3((1u).xx, uint(1))] = (1.0f).xxxx;
+}
+
+void fragment_main() {
+  textureStore_37ffd4();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  textureStore_37ffd4();
+}
+
diff --git a/test/tint/builtins/gen/literal/textureStore/38e8d7.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/textureStore/38e8d7.wgsl.expected.ir.dxc.hlsl
index 685a9ee..00c0b87 100644
--- a/test/tint/builtins/gen/literal/textureStore/38e8d7.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureStore/38e8d7.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,16 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWTexture2DArray<uint4> arg_0 : register(u0, space1);
+void textureStore_38e8d7() {
+  RWTexture2DArray<uint4> v = arg_0;
+  v[int3((1).xx, int(1))] = (1u).xxxx;
+}
+
+void fragment_main() {
+  textureStore_38e8d7();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  textureStore_38e8d7();
+}
+
diff --git a/test/tint/builtins/gen/literal/textureStore/38e8d7.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/textureStore/38e8d7.wgsl.expected.ir.fxc.hlsl
index 685a9ee..00c0b87 100644
--- a/test/tint/builtins/gen/literal/textureStore/38e8d7.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureStore/38e8d7.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,16 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWTexture2DArray<uint4> arg_0 : register(u0, space1);
+void textureStore_38e8d7() {
+  RWTexture2DArray<uint4> v = arg_0;
+  v[int3((1).xx, int(1))] = (1u).xxxx;
+}
+
+void fragment_main() {
+  textureStore_38e8d7();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  textureStore_38e8d7();
+}
+
diff --git a/test/tint/builtins/gen/literal/textureStore/3a52ac.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/textureStore/3a52ac.wgsl.expected.ir.dxc.hlsl
index 685a9ee..9999851 100644
--- a/test/tint/builtins/gen/literal/textureStore/3a52ac.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureStore/3a52ac.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,16 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWTexture2DArray<int4> arg_0 : register(u0, space1);
+void textureStore_3a52ac() {
+  RWTexture2DArray<int4> v = arg_0;
+  v[int3((1).xx, int(1))] = (1).xxxx;
+}
+
+void fragment_main() {
+  textureStore_3a52ac();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  textureStore_3a52ac();
+}
+
diff --git a/test/tint/builtins/gen/literal/textureStore/3a52ac.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/textureStore/3a52ac.wgsl.expected.ir.fxc.hlsl
index 685a9ee..9999851 100644
--- a/test/tint/builtins/gen/literal/textureStore/3a52ac.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureStore/3a52ac.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,16 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWTexture2DArray<int4> arg_0 : register(u0, space1);
+void textureStore_3a52ac() {
+  RWTexture2DArray<int4> v = arg_0;
+  v[int3((1).xx, int(1))] = (1).xxxx;
+}
+
+void fragment_main() {
+  textureStore_3a52ac();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  textureStore_3a52ac();
+}
+
diff --git a/test/tint/builtins/gen/literal/textureStore/3bb7a1.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/textureStore/3bb7a1.wgsl.expected.ir.dxc.hlsl
index 685a9ee..880e357 100644
--- a/test/tint/builtins/gen/literal/textureStore/3bb7a1.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureStore/3bb7a1.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,16 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWTexture2DArray<float4> arg_0 : register(u0, space1);
+void textureStore_3bb7a1() {
+  RWTexture2DArray<float4> v = arg_0;
+  v[int3((1).xx, int(1))] = (1.0f).xxxx;
+}
+
+void fragment_main() {
+  textureStore_3bb7a1();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  textureStore_3bb7a1();
+}
+
diff --git a/test/tint/builtins/gen/literal/textureStore/3bb7a1.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/textureStore/3bb7a1.wgsl.expected.ir.fxc.hlsl
index 685a9ee..880e357 100644
--- a/test/tint/builtins/gen/literal/textureStore/3bb7a1.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureStore/3bb7a1.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,16 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWTexture2DArray<float4> arg_0 : register(u0, space1);
+void textureStore_3bb7a1() {
+  RWTexture2DArray<float4> v = arg_0;
+  v[int3((1).xx, int(1))] = (1.0f).xxxx;
+}
+
+void fragment_main() {
+  textureStore_3bb7a1();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  textureStore_3bb7a1();
+}
+
diff --git a/test/tint/builtins/gen/literal/textureStore/3bec15.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/textureStore/3bec15.wgsl.expected.ir.dxc.hlsl
index 685a9ee..4965fae 100644
--- a/test/tint/builtins/gen/literal/textureStore/3bec15.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureStore/3bec15.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,15 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWTexture1D<uint4> arg_0 : register(u0, space1);
+void textureStore_3bec15() {
+  arg_0[1] = (1u).xxxx;
+}
+
+void fragment_main() {
+  textureStore_3bec15();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  textureStore_3bec15();
+}
+
diff --git a/test/tint/builtins/gen/literal/textureStore/3bec15.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/textureStore/3bec15.wgsl.expected.ir.fxc.hlsl
index 685a9ee..4965fae 100644
--- a/test/tint/builtins/gen/literal/textureStore/3bec15.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureStore/3bec15.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,15 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWTexture1D<uint4> arg_0 : register(u0, space1);
+void textureStore_3bec15() {
+  arg_0[1] = (1u).xxxx;
+}
+
+void fragment_main() {
+  textureStore_3bec15();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  textureStore_3bec15();
+}
+
diff --git a/test/tint/builtins/gen/literal/textureStore/3c1937.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/textureStore/3c1937.wgsl.expected.ir.dxc.hlsl
index 685a9ee..ffb4b4d 100644
--- a/test/tint/builtins/gen/literal/textureStore/3c1937.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureStore/3c1937.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,15 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWTexture1D<uint4> arg_0 : register(u0, space1);
+void textureStore_3c1937() {
+  arg_0[1u] = (1u).xxxx;
+}
+
+void fragment_main() {
+  textureStore_3c1937();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  textureStore_3c1937();
+}
+
diff --git a/test/tint/builtins/gen/literal/textureStore/3c1937.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/textureStore/3c1937.wgsl.expected.ir.fxc.hlsl
index 685a9ee..ffb4b4d 100644
--- a/test/tint/builtins/gen/literal/textureStore/3c1937.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureStore/3c1937.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,15 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWTexture1D<uint4> arg_0 : register(u0, space1);
+void textureStore_3c1937() {
+  arg_0[1u] = (1u).xxxx;
+}
+
+void fragment_main() {
+  textureStore_3c1937();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  textureStore_3c1937();
+}
+
diff --git a/test/tint/builtins/gen/literal/textureStore/3d1ebe.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/textureStore/3d1ebe.wgsl.expected.ir.dxc.hlsl
index 685a9ee..b038cb0 100644
--- a/test/tint/builtins/gen/literal/textureStore/3d1ebe.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureStore/3d1ebe.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,15 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWTexture2D<float4> arg_0 : register(u0, space1);
+void textureStore_3d1ebe() {
+  arg_0[(1u).xx] = (1.0f).xxxx;
+}
+
+void fragment_main() {
+  textureStore_3d1ebe();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  textureStore_3d1ebe();
+}
+
diff --git a/test/tint/builtins/gen/literal/textureStore/3d1ebe.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/textureStore/3d1ebe.wgsl.expected.ir.fxc.hlsl
index 685a9ee..b038cb0 100644
--- a/test/tint/builtins/gen/literal/textureStore/3d1ebe.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureStore/3d1ebe.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,15 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWTexture2D<float4> arg_0 : register(u0, space1);
+void textureStore_3d1ebe() {
+  arg_0[(1u).xx] = (1.0f).xxxx;
+}
+
+void fragment_main() {
+  textureStore_3d1ebe();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  textureStore_3d1ebe();
+}
+
diff --git a/test/tint/builtins/gen/literal/textureStore/3d6f01.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/textureStore/3d6f01.wgsl.expected.ir.dxc.hlsl
index 685a9ee..cee8bea 100644
--- a/test/tint/builtins/gen/literal/textureStore/3d6f01.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureStore/3d6f01.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,15 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWTexture1D<int4> arg_0 : register(u0, space1);
+void textureStore_3d6f01() {
+  arg_0[1u] = (1).xxxx;
+}
+
+void fragment_main() {
+  textureStore_3d6f01();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  textureStore_3d6f01();
+}
+
diff --git a/test/tint/builtins/gen/literal/textureStore/3d6f01.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/textureStore/3d6f01.wgsl.expected.ir.fxc.hlsl
index 685a9ee..cee8bea 100644
--- a/test/tint/builtins/gen/literal/textureStore/3d6f01.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureStore/3d6f01.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,15 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWTexture1D<int4> arg_0 : register(u0, space1);
+void textureStore_3d6f01() {
+  arg_0[1u] = (1).xxxx;
+}
+
+void fragment_main() {
+  textureStore_3d6f01();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  textureStore_3d6f01();
+}
+
diff --git a/test/tint/builtins/gen/literal/textureStore/3d96a4.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/textureStore/3d96a4.wgsl.expected.ir.dxc.hlsl
index 685a9ee..c304fe2 100644
--- a/test/tint/builtins/gen/literal/textureStore/3d96a4.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureStore/3d96a4.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,15 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWTexture3D<int4> arg_0 : register(u0, space1);
+void textureStore_3d96a4() {
+  arg_0[(1u).xxx] = (1).xxxx;
+}
+
+void fragment_main() {
+  textureStore_3d96a4();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  textureStore_3d96a4();
+}
+
diff --git a/test/tint/builtins/gen/literal/textureStore/3d96a4.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/textureStore/3d96a4.wgsl.expected.ir.fxc.hlsl
index 685a9ee..c304fe2 100644
--- a/test/tint/builtins/gen/literal/textureStore/3d96a4.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureStore/3d96a4.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,15 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWTexture3D<int4> arg_0 : register(u0, space1);
+void textureStore_3d96a4() {
+  arg_0[(1u).xxx] = (1).xxxx;
+}
+
+void fragment_main() {
+  textureStore_3d96a4();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  textureStore_3d96a4();
+}
+
diff --git a/test/tint/builtins/gen/literal/textureStore/3e0dc4.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/textureStore/3e0dc4.wgsl.expected.ir.dxc.hlsl
index 685a9ee..bc822e4 100644
--- a/test/tint/builtins/gen/literal/textureStore/3e0dc4.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureStore/3e0dc4.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,16 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWTexture2DArray<float4> arg_0 : register(u0, space1);
+void textureStore_3e0dc4() {
+  RWTexture2DArray<float4> v = arg_0;
+  v[int3((1).xx, int(1u))] = (1.0f).xxxx;
+}
+
+void fragment_main() {
+  textureStore_3e0dc4();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  textureStore_3e0dc4();
+}
+
diff --git a/test/tint/builtins/gen/literal/textureStore/3e0dc4.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/textureStore/3e0dc4.wgsl.expected.ir.fxc.hlsl
index 685a9ee..bc822e4 100644
--- a/test/tint/builtins/gen/literal/textureStore/3e0dc4.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureStore/3e0dc4.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,16 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWTexture2DArray<float4> arg_0 : register(u0, space1);
+void textureStore_3e0dc4() {
+  RWTexture2DArray<float4> v = arg_0;
+  v[int3((1).xx, int(1u))] = (1.0f).xxxx;
+}
+
+void fragment_main() {
+  textureStore_3e0dc4();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  textureStore_3e0dc4();
+}
+
diff --git a/test/tint/builtins/gen/literal/textureStore/3f61ca.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/textureStore/3f61ca.wgsl.expected.ir.dxc.hlsl
index 685a9ee..cc19a57 100644
--- a/test/tint/builtins/gen/literal/textureStore/3f61ca.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureStore/3f61ca.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,15 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWTexture3D<float4> arg_0 : register(u0, space1);
+void textureStore_3f61ca() {
+  arg_0[(1).xxx] = (1.0f).xxxx;
+}
+
+void fragment_main() {
+  textureStore_3f61ca();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  textureStore_3f61ca();
+}
+
diff --git a/test/tint/builtins/gen/literal/textureStore/3f61ca.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/textureStore/3f61ca.wgsl.expected.ir.fxc.hlsl
index 685a9ee..cc19a57 100644
--- a/test/tint/builtins/gen/literal/textureStore/3f61ca.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureStore/3f61ca.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,15 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWTexture3D<float4> arg_0 : register(u0, space1);
+void textureStore_3f61ca() {
+  arg_0[(1).xxx] = (1.0f).xxxx;
+}
+
+void fragment_main() {
+  textureStore_3f61ca();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  textureStore_3f61ca();
+}
+
diff --git a/test/tint/builtins/gen/literal/textureStore/3fb31f.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/textureStore/3fb31f.wgsl.expected.ir.dxc.hlsl
index 685a9ee..fb86c10 100644
--- a/test/tint/builtins/gen/literal/textureStore/3fb31f.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureStore/3fb31f.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,15 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWTexture3D<uint4> arg_0 : register(u0, space1);
+void textureStore_3fb31f() {
+  arg_0[(1u).xxx] = (1u).xxxx;
+}
+
+void fragment_main() {
+  textureStore_3fb31f();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  textureStore_3fb31f();
+}
+
diff --git a/test/tint/builtins/gen/literal/textureStore/3fb31f.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/textureStore/3fb31f.wgsl.expected.ir.fxc.hlsl
index 685a9ee..fb86c10 100644
--- a/test/tint/builtins/gen/literal/textureStore/3fb31f.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureStore/3fb31f.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,15 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWTexture3D<uint4> arg_0 : register(u0, space1);
+void textureStore_3fb31f() {
+  arg_0[(1u).xxx] = (1u).xxxx;
+}
+
+void fragment_main() {
+  textureStore_3fb31f();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  textureStore_3fb31f();
+}
+
diff --git a/test/tint/builtins/gen/literal/textureStore/40c455.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/textureStore/40c455.wgsl.expected.ir.dxc.hlsl
index 685a9ee..0e61f84 100644
--- a/test/tint/builtins/gen/literal/textureStore/40c455.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureStore/40c455.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,15 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWTexture2D<float4> arg_0 : register(u0, space1);
+void textureStore_40c455() {
+  arg_0[(1u).xx] = (1.0f).xxxx;
+}
+
+void fragment_main() {
+  textureStore_40c455();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  textureStore_40c455();
+}
+
diff --git a/test/tint/builtins/gen/literal/textureStore/40c455.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/textureStore/40c455.wgsl.expected.ir.fxc.hlsl
index 685a9ee..0e61f84 100644
--- a/test/tint/builtins/gen/literal/textureStore/40c455.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureStore/40c455.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,15 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWTexture2D<float4> arg_0 : register(u0, space1);
+void textureStore_40c455() {
+  arg_0[(1u).xx] = (1.0f).xxxx;
+}
+
+void fragment_main() {
+  textureStore_40c455();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  textureStore_40c455();
+}
+
diff --git a/test/tint/builtins/gen/literal/textureStore/4288fc.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/textureStore/4288fc.wgsl.expected.ir.dxc.hlsl
index 685a9ee..b274c51 100644
--- a/test/tint/builtins/gen/literal/textureStore/4288fc.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureStore/4288fc.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,15 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWTexture3D<float4> arg_0 : register(u0, space1);
+void textureStore_4288fc() {
+  arg_0[(1u).xxx] = (1.0f).xxxx;
+}
+
+void fragment_main() {
+  textureStore_4288fc();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  textureStore_4288fc();
+}
+
diff --git a/test/tint/builtins/gen/literal/textureStore/4288fc.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/textureStore/4288fc.wgsl.expected.ir.fxc.hlsl
index 685a9ee..b274c51 100644
--- a/test/tint/builtins/gen/literal/textureStore/4288fc.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureStore/4288fc.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,15 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWTexture3D<float4> arg_0 : register(u0, space1);
+void textureStore_4288fc() {
+  arg_0[(1u).xxx] = (1.0f).xxxx;
+}
+
+void fragment_main() {
+  textureStore_4288fc();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  textureStore_4288fc();
+}
+
diff --git a/test/tint/builtins/gen/literal/textureStore/43d1df.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/textureStore/43d1df.wgsl.expected.ir.dxc.hlsl
index 685a9ee..70a3892 100644
--- a/test/tint/builtins/gen/literal/textureStore/43d1df.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureStore/43d1df.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,16 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWTexture2DArray<float4> arg_0 : register(u0, space1);
+void textureStore_43d1df() {
+  RWTexture2DArray<float4> v = arg_0;
+  v[int3((1).xx, int(1))] = (1.0f).xxxx;
+}
+
+void fragment_main() {
+  textureStore_43d1df();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  textureStore_43d1df();
+}
+
diff --git a/test/tint/builtins/gen/literal/textureStore/43d1df.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/textureStore/43d1df.wgsl.expected.ir.fxc.hlsl
index 685a9ee..70a3892 100644
--- a/test/tint/builtins/gen/literal/textureStore/43d1df.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureStore/43d1df.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,16 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWTexture2DArray<float4> arg_0 : register(u0, space1);
+void textureStore_43d1df() {
+  RWTexture2DArray<float4> v = arg_0;
+  v[int3((1).xx, int(1))] = (1.0f).xxxx;
+}
+
+void fragment_main() {
+  textureStore_43d1df();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  textureStore_43d1df();
+}
+
diff --git a/test/tint/builtins/gen/literal/textureStore/441222.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/textureStore/441222.wgsl.expected.ir.dxc.hlsl
index 685a9ee..c69a4c1 100644
--- a/test/tint/builtins/gen/literal/textureStore/441222.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureStore/441222.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,15 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWTexture2D<int4> arg_0 : register(u0, space1);
+void textureStore_441222() {
+  arg_0[(1u).xx] = (1).xxxx;
+}
+
+void fragment_main() {
+  textureStore_441222();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  textureStore_441222();
+}
+
diff --git a/test/tint/builtins/gen/literal/textureStore/441222.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/textureStore/441222.wgsl.expected.ir.fxc.hlsl
index 685a9ee..c69a4c1 100644
--- a/test/tint/builtins/gen/literal/textureStore/441222.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureStore/441222.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,15 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWTexture2D<int4> arg_0 : register(u0, space1);
+void textureStore_441222() {
+  arg_0[(1u).xx] = (1).xxxx;
+}
+
+void fragment_main() {
+  textureStore_441222();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  textureStore_441222();
+}
+
diff --git a/test/tint/builtins/gen/literal/textureStore/441ba8.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/textureStore/441ba8.wgsl.expected.ir.dxc.hlsl
index 685a9ee..7cf6e18 100644
--- a/test/tint/builtins/gen/literal/textureStore/441ba8.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureStore/441ba8.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,15 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWTexture3D<uint4> arg_0 : register(u0, space1);
+void textureStore_441ba8() {
+  arg_0[(1).xxx] = (1u).xxxx;
+}
+
+void fragment_main() {
+  textureStore_441ba8();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  textureStore_441ba8();
+}
+
diff --git a/test/tint/builtins/gen/literal/textureStore/441ba8.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/textureStore/441ba8.wgsl.expected.ir.fxc.hlsl
index 685a9ee..7cf6e18 100644
--- a/test/tint/builtins/gen/literal/textureStore/441ba8.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureStore/441ba8.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,15 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWTexture3D<uint4> arg_0 : register(u0, space1);
+void textureStore_441ba8() {
+  arg_0[(1).xxx] = (1u).xxxx;
+}
+
+void fragment_main() {
+  textureStore_441ba8();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  textureStore_441ba8();
+}
+
diff --git a/test/tint/builtins/gen/literal/textureStore/4483e7.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/textureStore/4483e7.wgsl.expected.ir.dxc.hlsl
index 685a9ee..00dadf1 100644
--- a/test/tint/builtins/gen/literal/textureStore/4483e7.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureStore/4483e7.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,15 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWTexture1D<int4> arg_0 : register(u0, space1);
+void textureStore_4483e7() {
+  arg_0[1u] = (1).xxxx;
+}
+
+void fragment_main() {
+  textureStore_4483e7();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  textureStore_4483e7();
+}
+
diff --git a/test/tint/builtins/gen/literal/textureStore/4483e7.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/textureStore/4483e7.wgsl.expected.ir.fxc.hlsl
index 685a9ee..00dadf1 100644
--- a/test/tint/builtins/gen/literal/textureStore/4483e7.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureStore/4483e7.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,15 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWTexture1D<int4> arg_0 : register(u0, space1);
+void textureStore_4483e7() {
+  arg_0[1u] = (1).xxxx;
+}
+
+void fragment_main() {
+  textureStore_4483e7();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  textureStore_4483e7();
+}
+
diff --git a/test/tint/builtins/gen/literal/textureStore/44b372.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/textureStore/44b372.wgsl.expected.ir.dxc.hlsl
index 685a9ee..2530f8c 100644
--- a/test/tint/builtins/gen/literal/textureStore/44b372.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureStore/44b372.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,15 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWTexture2D<int4> arg_0 : register(u0, space1);
+void textureStore_44b372() {
+  arg_0[(1).xx] = (1).xxxx;
+}
+
+void fragment_main() {
+  textureStore_44b372();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  textureStore_44b372();
+}
+
diff --git a/test/tint/builtins/gen/literal/textureStore/44b372.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/textureStore/44b372.wgsl.expected.ir.fxc.hlsl
index 685a9ee..2530f8c 100644
--- a/test/tint/builtins/gen/literal/textureStore/44b372.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureStore/44b372.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,15 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWTexture2D<int4> arg_0 : register(u0, space1);
+void textureStore_44b372() {
+  arg_0[(1).xx] = (1).xxxx;
+}
+
+void fragment_main() {
+  textureStore_44b372();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  textureStore_44b372();
+}
+
diff --git a/test/tint/builtins/gen/literal/textureStore/44daa7.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/textureStore/44daa7.wgsl.expected.ir.dxc.hlsl
index 685a9ee..b36e7c9 100644
--- a/test/tint/builtins/gen/literal/textureStore/44daa7.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureStore/44daa7.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,16 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWTexture2DArray<float4> arg_0 : register(u0, space1);
+void textureStore_44daa7() {
+  RWTexture2DArray<float4> v = arg_0;
+  v[int3((1).xx, int(1u))] = (1.0f).xxxx;
+}
+
+void fragment_main() {
+  textureStore_44daa7();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  textureStore_44daa7();
+}
+
diff --git a/test/tint/builtins/gen/literal/textureStore/44daa7.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/textureStore/44daa7.wgsl.expected.ir.fxc.hlsl
index 685a9ee..b36e7c9 100644
--- a/test/tint/builtins/gen/literal/textureStore/44daa7.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureStore/44daa7.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,16 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWTexture2DArray<float4> arg_0 : register(u0, space1);
+void textureStore_44daa7() {
+  RWTexture2DArray<float4> v = arg_0;
+  v[int3((1).xx, int(1u))] = (1.0f).xxxx;
+}
+
+void fragment_main() {
+  textureStore_44daa7();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  textureStore_44daa7();
+}
+
diff --git a/test/tint/builtins/gen/literal/textureStore/473ead.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/textureStore/473ead.wgsl.expected.ir.dxc.hlsl
index 685a9ee..c5d3cd8 100644
--- a/test/tint/builtins/gen/literal/textureStore/473ead.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureStore/473ead.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,15 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWTexture3D<uint4> arg_0 : register(u0, space1);
+void textureStore_473ead() {
+  arg_0[(1u).xxx] = (1u).xxxx;
+}
+
+void fragment_main() {
+  textureStore_473ead();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  textureStore_473ead();
+}
+
diff --git a/test/tint/builtins/gen/literal/textureStore/473ead.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/textureStore/473ead.wgsl.expected.ir.fxc.hlsl
index 685a9ee..c5d3cd8 100644
--- a/test/tint/builtins/gen/literal/textureStore/473ead.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureStore/473ead.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,15 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWTexture3D<uint4> arg_0 : register(u0, space1);
+void textureStore_473ead() {
+  arg_0[(1u).xxx] = (1u).xxxx;
+}
+
+void fragment_main() {
+  textureStore_473ead();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  textureStore_473ead();
+}
+
diff --git a/test/tint/builtins/gen/literal/textureStore/47bd70.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/textureStore/47bd70.wgsl.expected.ir.dxc.hlsl
index 685a9ee..f035425 100644
--- a/test/tint/builtins/gen/literal/textureStore/47bd70.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureStore/47bd70.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,15 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWTexture2D<float4> arg_0 : register(u0, space1);
+void textureStore_47bd70() {
+  arg_0[(1u).xx] = (1.0f).xxxx;
+}
+
+void fragment_main() {
+  textureStore_47bd70();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  textureStore_47bd70();
+}
+
diff --git a/test/tint/builtins/gen/literal/textureStore/47bd70.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/textureStore/47bd70.wgsl.expected.ir.fxc.hlsl
index 685a9ee..f035425 100644
--- a/test/tint/builtins/gen/literal/textureStore/47bd70.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureStore/47bd70.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,15 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWTexture2D<float4> arg_0 : register(u0, space1);
+void textureStore_47bd70() {
+  arg_0[(1u).xx] = (1.0f).xxxx;
+}
+
+void fragment_main() {
+  textureStore_47bd70();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  textureStore_47bd70();
+}
+
diff --git a/test/tint/builtins/gen/literal/textureStore/486500.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/textureStore/486500.wgsl.expected.ir.dxc.hlsl
index 685a9ee..1965296 100644
--- a/test/tint/builtins/gen/literal/textureStore/486500.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureStore/486500.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,15 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWTexture3D<int4> arg_0 : register(u0, space1);
+void textureStore_486500() {
+  arg_0[(1u).xxx] = (1).xxxx;
+}
+
+void fragment_main() {
+  textureStore_486500();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  textureStore_486500();
+}
+
diff --git a/test/tint/builtins/gen/literal/textureStore/486500.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/textureStore/486500.wgsl.expected.ir.fxc.hlsl
index 685a9ee..1965296 100644
--- a/test/tint/builtins/gen/literal/textureStore/486500.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureStore/486500.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,15 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWTexture3D<int4> arg_0 : register(u0, space1);
+void textureStore_486500() {
+  arg_0[(1u).xxx] = (1).xxxx;
+}
+
+void fragment_main() {
+  textureStore_486500();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  textureStore_486500();
+}
+
diff --git a/test/tint/builtins/gen/literal/textureStore/48cb56.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/textureStore/48cb56.wgsl.expected.ir.dxc.hlsl
index 685a9ee..df104ed 100644
--- a/test/tint/builtins/gen/literal/textureStore/48cb56.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureStore/48cb56.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,16 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWTexture2DArray<int4> arg_0 : register(u0, space1);
+void textureStore_48cb56() {
+  RWTexture2DArray<int4> v = arg_0;
+  v[uint3((1u).xx, uint(1u))] = (1).xxxx;
+}
+
+void fragment_main() {
+  textureStore_48cb56();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  textureStore_48cb56();
+}
+
diff --git a/test/tint/builtins/gen/literal/textureStore/48cb56.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/textureStore/48cb56.wgsl.expected.ir.fxc.hlsl
index 685a9ee..df104ed 100644
--- a/test/tint/builtins/gen/literal/textureStore/48cb56.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureStore/48cb56.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,16 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWTexture2DArray<int4> arg_0 : register(u0, space1);
+void textureStore_48cb56() {
+  RWTexture2DArray<int4> v = arg_0;
+  v[uint3((1u).xx, uint(1u))] = (1).xxxx;
+}
+
+void fragment_main() {
+  textureStore_48cb56();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  textureStore_48cb56();
+}
+
diff --git a/test/tint/builtins/gen/literal/textureStore/48eae1.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/textureStore/48eae1.wgsl.expected.ir.dxc.hlsl
index 685a9ee..f122b33 100644
--- a/test/tint/builtins/gen/literal/textureStore/48eae1.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureStore/48eae1.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,15 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWTexture2D<float4> arg_0 : register(u0, space1);
+void textureStore_48eae1() {
+  arg_0[(1).xx] = (1.0f).xxxx;
+}
+
+void fragment_main() {
+  textureStore_48eae1();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  textureStore_48eae1();
+}
+
diff --git a/test/tint/builtins/gen/literal/textureStore/48eae1.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/textureStore/48eae1.wgsl.expected.ir.fxc.hlsl
index 685a9ee..f122b33 100644
--- a/test/tint/builtins/gen/literal/textureStore/48eae1.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureStore/48eae1.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,15 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWTexture2D<float4> arg_0 : register(u0, space1);
+void textureStore_48eae1() {
+  arg_0[(1).xx] = (1.0f).xxxx;
+}
+
+void fragment_main() {
+  textureStore_48eae1();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  textureStore_48eae1();
+}
+
diff --git a/test/tint/builtins/gen/literal/textureStore/4bf1fd.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/textureStore/4bf1fd.wgsl.expected.ir.dxc.hlsl
index 685a9ee..568c07c 100644
--- a/test/tint/builtins/gen/literal/textureStore/4bf1fd.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureStore/4bf1fd.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,15 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWTexture2D<uint4> arg_0 : register(u0, space1);
+void textureStore_4bf1fd() {
+  arg_0[(1u).xx] = (1u).xxxx;
+}
+
+void fragment_main() {
+  textureStore_4bf1fd();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  textureStore_4bf1fd();
+}
+
diff --git a/test/tint/builtins/gen/literal/textureStore/4bf1fd.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/textureStore/4bf1fd.wgsl.expected.ir.fxc.hlsl
index 685a9ee..568c07c 100644
--- a/test/tint/builtins/gen/literal/textureStore/4bf1fd.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureStore/4bf1fd.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,15 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWTexture2D<uint4> arg_0 : register(u0, space1);
+void textureStore_4bf1fd() {
+  arg_0[(1u).xx] = (1u).xxxx;
+}
+
+void fragment_main() {
+  textureStore_4bf1fd();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  textureStore_4bf1fd();
+}
+
diff --git a/test/tint/builtins/gen/literal/textureStore/4c454f.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/textureStore/4c454f.wgsl.expected.ir.dxc.hlsl
index 685a9ee..d4cf2d9 100644
--- a/test/tint/builtins/gen/literal/textureStore/4c454f.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureStore/4c454f.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,16 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWTexture2DArray<int4> arg_0 : register(u0, space1);
+void textureStore_4c454f() {
+  RWTexture2DArray<int4> v = arg_0;
+  v[uint3((1u).xx, uint(1u))] = (1).xxxx;
+}
+
+void fragment_main() {
+  textureStore_4c454f();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  textureStore_4c454f();
+}
+
diff --git a/test/tint/builtins/gen/literal/textureStore/4c454f.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/textureStore/4c454f.wgsl.expected.ir.fxc.hlsl
index 685a9ee..d4cf2d9 100644
--- a/test/tint/builtins/gen/literal/textureStore/4c454f.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureStore/4c454f.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,16 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWTexture2DArray<int4> arg_0 : register(u0, space1);
+void textureStore_4c454f() {
+  RWTexture2DArray<int4> v = arg_0;
+  v[uint3((1u).xx, uint(1u))] = (1).xxxx;
+}
+
+void fragment_main() {
+  textureStore_4c454f();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  textureStore_4c454f();
+}
+
diff --git a/test/tint/builtins/gen/literal/textureStore/4c76b7.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/textureStore/4c76b7.wgsl.expected.ir.dxc.hlsl
index 685a9ee..4cd143d 100644
--- a/test/tint/builtins/gen/literal/textureStore/4c76b7.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureStore/4c76b7.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,16 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWTexture2DArray<float4> arg_0 : register(u0, space1);
+void textureStore_4c76b7() {
+  RWTexture2DArray<float4> v = arg_0;
+  v[uint3((1u).xx, uint(1))] = (1.0f).xxxx;
+}
+
+void fragment_main() {
+  textureStore_4c76b7();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  textureStore_4c76b7();
+}
+
diff --git a/test/tint/builtins/gen/literal/textureStore/4c76b7.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/textureStore/4c76b7.wgsl.expected.ir.fxc.hlsl
index 685a9ee..4cd143d 100644
--- a/test/tint/builtins/gen/literal/textureStore/4c76b7.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureStore/4c76b7.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,16 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWTexture2DArray<float4> arg_0 : register(u0, space1);
+void textureStore_4c76b7() {
+  RWTexture2DArray<float4> v = arg_0;
+  v[uint3((1u).xx, uint(1))] = (1.0f).xxxx;
+}
+
+void fragment_main() {
+  textureStore_4c76b7();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  textureStore_4c76b7();
+}
+
diff --git a/test/tint/builtins/gen/literal/textureStore/4cce74.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/textureStore/4cce74.wgsl.expected.ir.dxc.hlsl
index 685a9ee..257e31a 100644
--- a/test/tint/builtins/gen/literal/textureStore/4cce74.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureStore/4cce74.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,15 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWTexture1D<uint4> arg_0 : register(u0, space1);
+void textureStore_4cce74() {
+  arg_0[1] = (1u).xxxx;
+}
+
+void fragment_main() {
+  textureStore_4cce74();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  textureStore_4cce74();
+}
+
diff --git a/test/tint/builtins/gen/literal/textureStore/4cce74.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/textureStore/4cce74.wgsl.expected.ir.fxc.hlsl
index 685a9ee..257e31a 100644
--- a/test/tint/builtins/gen/literal/textureStore/4cce74.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureStore/4cce74.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,15 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWTexture1D<uint4> arg_0 : register(u0, space1);
+void textureStore_4cce74() {
+  arg_0[1] = (1u).xxxx;
+}
+
+void fragment_main() {
+  textureStore_4cce74();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  textureStore_4cce74();
+}
+
diff --git a/test/tint/builtins/gen/literal/textureStore/4d359d.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/textureStore/4d359d.wgsl.expected.ir.dxc.hlsl
index 685a9ee..04ed119 100644
--- a/test/tint/builtins/gen/literal/textureStore/4d359d.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureStore/4d359d.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,16 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWTexture2DArray<uint4> arg_0 : register(u0, space1);
+void textureStore_4d359d() {
+  RWTexture2DArray<uint4> v = arg_0;
+  v[uint3((1u).xx, uint(1))] = (1u).xxxx;
+}
+
+void fragment_main() {
+  textureStore_4d359d();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  textureStore_4d359d();
+}
+
diff --git a/test/tint/builtins/gen/literal/textureStore/4d359d.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/textureStore/4d359d.wgsl.expected.ir.fxc.hlsl
index 685a9ee..04ed119 100644
--- a/test/tint/builtins/gen/literal/textureStore/4d359d.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureStore/4d359d.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,16 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWTexture2DArray<uint4> arg_0 : register(u0, space1);
+void textureStore_4d359d() {
+  RWTexture2DArray<uint4> v = arg_0;
+  v[uint3((1u).xx, uint(1))] = (1u).xxxx;
+}
+
+void fragment_main() {
+  textureStore_4d359d();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  textureStore_4d359d();
+}
+
diff --git a/test/tint/builtins/gen/literal/textureStore/4ddf52.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/textureStore/4ddf52.wgsl.expected.ir.dxc.hlsl
index 685a9ee..0fc4787 100644
--- a/test/tint/builtins/gen/literal/textureStore/4ddf52.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureStore/4ddf52.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,15 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWTexture2D<int4> arg_0 : register(u0, space1);
+void textureStore_4ddf52() {
+  arg_0[(1u).xx] = (1).xxxx;
+}
+
+void fragment_main() {
+  textureStore_4ddf52();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  textureStore_4ddf52();
+}
+
diff --git a/test/tint/builtins/gen/literal/textureStore/4ddf52.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/textureStore/4ddf52.wgsl.expected.ir.fxc.hlsl
index 685a9ee..0fc4787 100644
--- a/test/tint/builtins/gen/literal/textureStore/4ddf52.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureStore/4ddf52.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,15 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWTexture2D<int4> arg_0 : register(u0, space1);
+void textureStore_4ddf52() {
+  arg_0[(1u).xx] = (1).xxxx;
+}
+
+void fragment_main() {
+  textureStore_4ddf52();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  textureStore_4ddf52();
+}
+
diff --git a/test/tint/builtins/gen/literal/textureStore/4e2b3a.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/textureStore/4e2b3a.wgsl.expected.ir.dxc.hlsl
index 685a9ee..7fac303 100644
--- a/test/tint/builtins/gen/literal/textureStore/4e2b3a.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureStore/4e2b3a.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,16 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWTexture2DArray<float4> arg_0 : register(u0, space1);
+void textureStore_4e2b3a() {
+  RWTexture2DArray<float4> v = arg_0;
+  v[int3((1).xx, int(1))] = (1.0f).xxxx;
+}
+
+void fragment_main() {
+  textureStore_4e2b3a();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  textureStore_4e2b3a();
+}
+
diff --git a/test/tint/builtins/gen/literal/textureStore/4e2b3a.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/textureStore/4e2b3a.wgsl.expected.ir.fxc.hlsl
index 685a9ee..7fac303 100644
--- a/test/tint/builtins/gen/literal/textureStore/4e2b3a.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureStore/4e2b3a.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,16 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWTexture2DArray<float4> arg_0 : register(u0, space1);
+void textureStore_4e2b3a() {
+  RWTexture2DArray<float4> v = arg_0;
+  v[int3((1).xx, int(1))] = (1.0f).xxxx;
+}
+
+void fragment_main() {
+  textureStore_4e2b3a();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  textureStore_4e2b3a();
+}
+
diff --git a/test/tint/builtins/gen/literal/textureStore/4fc057.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/textureStore/4fc057.wgsl.expected.ir.dxc.hlsl
index 685a9ee..0ffe549 100644
--- a/test/tint/builtins/gen/literal/textureStore/4fc057.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureStore/4fc057.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,16 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWTexture2DArray<float4> arg_0 : register(u0, space1);
+void textureStore_4fc057() {
+  RWTexture2DArray<float4> v = arg_0;
+  v[int3((1).xx, int(1))] = (1.0f).xxxx;
+}
+
+void fragment_main() {
+  textureStore_4fc057();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  textureStore_4fc057();
+}
+
diff --git a/test/tint/builtins/gen/literal/textureStore/4fc057.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/textureStore/4fc057.wgsl.expected.ir.fxc.hlsl
index 685a9ee..0ffe549 100644
--- a/test/tint/builtins/gen/literal/textureStore/4fc057.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureStore/4fc057.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,16 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWTexture2DArray<float4> arg_0 : register(u0, space1);
+void textureStore_4fc057() {
+  RWTexture2DArray<float4> v = arg_0;
+  v[int3((1).xx, int(1))] = (1.0f).xxxx;
+}
+
+void fragment_main() {
+  textureStore_4fc057();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  textureStore_4fc057();
+}
+
diff --git a/test/tint/builtins/gen/literal/textureStore/5030f5.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/textureStore/5030f5.wgsl.expected.ir.dxc.hlsl
index 685a9ee..8cbc42d 100644
--- a/test/tint/builtins/gen/literal/textureStore/5030f5.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureStore/5030f5.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,16 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWTexture2DArray<float4> arg_0 : register(u0, space1);
+void textureStore_5030f5() {
+  RWTexture2DArray<float4> v = arg_0;
+  v[uint3((1u).xx, uint(1u))] = (1.0f).xxxx;
+}
+
+void fragment_main() {
+  textureStore_5030f5();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  textureStore_5030f5();
+}
+
diff --git a/test/tint/builtins/gen/literal/textureStore/5030f5.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/textureStore/5030f5.wgsl.expected.ir.fxc.hlsl
index 685a9ee..8cbc42d 100644
--- a/test/tint/builtins/gen/literal/textureStore/5030f5.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureStore/5030f5.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,16 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWTexture2DArray<float4> arg_0 : register(u0, space1);
+void textureStore_5030f5() {
+  RWTexture2DArray<float4> v = arg_0;
+  v[uint3((1u).xx, uint(1u))] = (1.0f).xxxx;
+}
+
+void fragment_main() {
+  textureStore_5030f5();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  textureStore_5030f5();
+}
+
diff --git a/test/tint/builtins/gen/literal/textureStore/506a71.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/textureStore/506a71.wgsl.expected.ir.dxc.hlsl
index 685a9ee..95bddb5 100644
--- a/test/tint/builtins/gen/literal/textureStore/506a71.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureStore/506a71.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,15 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWTexture2D<uint4> arg_0 : register(u0, space1);
+void textureStore_506a71() {
+  arg_0[(1u).xx] = (1u).xxxx;
+}
+
+void fragment_main() {
+  textureStore_506a71();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  textureStore_506a71();
+}
+
diff --git a/test/tint/builtins/gen/literal/textureStore/506a71.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/textureStore/506a71.wgsl.expected.ir.fxc.hlsl
index 685a9ee..95bddb5 100644
--- a/test/tint/builtins/gen/literal/textureStore/506a71.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureStore/506a71.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,15 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWTexture2D<uint4> arg_0 : register(u0, space1);
+void textureStore_506a71() {
+  arg_0[(1u).xx] = (1u).xxxx;
+}
+
+void fragment_main() {
+  textureStore_506a71();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  textureStore_506a71();
+}
+
diff --git a/test/tint/builtins/gen/literal/textureStore/51ec82.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/textureStore/51ec82.wgsl.expected.ir.dxc.hlsl
index 685a9ee..00aed66 100644
--- a/test/tint/builtins/gen/literal/textureStore/51ec82.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureStore/51ec82.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,15 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWTexture1D<float4> arg_0 : register(u0, space1);
+void textureStore_51ec82() {
+  arg_0[1] = (1.0f).xxxx;
+}
+
+void fragment_main() {
+  textureStore_51ec82();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  textureStore_51ec82();
+}
+
diff --git a/test/tint/builtins/gen/literal/textureStore/51ec82.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/textureStore/51ec82.wgsl.expected.ir.fxc.hlsl
index 685a9ee..00aed66 100644
--- a/test/tint/builtins/gen/literal/textureStore/51ec82.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureStore/51ec82.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,15 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWTexture1D<float4> arg_0 : register(u0, space1);
+void textureStore_51ec82() {
+  arg_0[1] = (1.0f).xxxx;
+}
+
+void fragment_main() {
+  textureStore_51ec82();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  textureStore_51ec82();
+}
+
diff --git a/test/tint/builtins/gen/literal/textureStore/5246b4.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/textureStore/5246b4.wgsl.expected.ir.dxc.hlsl
index 685a9ee..740f459 100644
--- a/test/tint/builtins/gen/literal/textureStore/5246b4.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureStore/5246b4.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,15 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWTexture3D<uint4> arg_0 : register(u0, space1);
+void textureStore_5246b4() {
+  arg_0[(1u).xxx] = (1u).xxxx;
+}
+
+void fragment_main() {
+  textureStore_5246b4();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  textureStore_5246b4();
+}
+
diff --git a/test/tint/builtins/gen/literal/textureStore/5246b4.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/textureStore/5246b4.wgsl.expected.ir.fxc.hlsl
index 685a9ee..740f459 100644
--- a/test/tint/builtins/gen/literal/textureStore/5246b4.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureStore/5246b4.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,15 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWTexture3D<uint4> arg_0 : register(u0, space1);
+void textureStore_5246b4() {
+  arg_0[(1u).xxx] = (1u).xxxx;
+}
+
+void fragment_main() {
+  textureStore_5246b4();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  textureStore_5246b4();
+}
+
diff --git a/test/tint/builtins/gen/literal/textureStore/52f503.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/textureStore/52f503.wgsl.expected.ir.dxc.hlsl
index 685a9ee..bff3dbb 100644
--- a/test/tint/builtins/gen/literal/textureStore/52f503.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureStore/52f503.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,15 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWTexture2D<int4> arg_0 : register(u0, space1);
+void textureStore_52f503() {
+  arg_0[(1u).xx] = (1).xxxx;
+}
+
+void fragment_main() {
+  textureStore_52f503();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  textureStore_52f503();
+}
+
diff --git a/test/tint/builtins/gen/literal/textureStore/52f503.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/textureStore/52f503.wgsl.expected.ir.fxc.hlsl
index 685a9ee..bff3dbb 100644
--- a/test/tint/builtins/gen/literal/textureStore/52f503.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureStore/52f503.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,15 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWTexture2D<int4> arg_0 : register(u0, space1);
+void textureStore_52f503() {
+  arg_0[(1u).xx] = (1).xxxx;
+}
+
+void fragment_main() {
+  textureStore_52f503();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  textureStore_52f503();
+}
+
diff --git a/test/tint/builtins/gen/literal/textureStore/53a68b.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/textureStore/53a68b.wgsl.expected.ir.dxc.hlsl
index 685a9ee..a03e848 100644
--- a/test/tint/builtins/gen/literal/textureStore/53a68b.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureStore/53a68b.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,15 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWTexture3D<uint4> arg_0 : register(u0, space1);
+void textureStore_53a68b() {
+  arg_0[(1).xxx] = (1u).xxxx;
+}
+
+void fragment_main() {
+  textureStore_53a68b();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  textureStore_53a68b();
+}
+
diff --git a/test/tint/builtins/gen/literal/textureStore/53a68b.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/textureStore/53a68b.wgsl.expected.ir.fxc.hlsl
index 685a9ee..a03e848 100644
--- a/test/tint/builtins/gen/literal/textureStore/53a68b.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureStore/53a68b.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,15 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWTexture3D<uint4> arg_0 : register(u0, space1);
+void textureStore_53a68b() {
+  arg_0[(1).xxx] = (1u).xxxx;
+}
+
+void fragment_main() {
+  textureStore_53a68b();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  textureStore_53a68b();
+}
+
diff --git a/test/tint/builtins/gen/literal/textureStore/5425ab.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/textureStore/5425ab.wgsl.expected.ir.dxc.hlsl
index 685a9ee..0349c4b 100644
--- a/test/tint/builtins/gen/literal/textureStore/5425ab.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureStore/5425ab.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,15 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWTexture2D<uint4> arg_0 : register(u0, space1);
+void textureStore_5425ab() {
+  arg_0[(1).xx] = (1u).xxxx;
+}
+
+void fragment_main() {
+  textureStore_5425ab();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  textureStore_5425ab();
+}
+
diff --git a/test/tint/builtins/gen/literal/textureStore/5425ab.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/textureStore/5425ab.wgsl.expected.ir.fxc.hlsl
index 685a9ee..0349c4b 100644
--- a/test/tint/builtins/gen/literal/textureStore/5425ab.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureStore/5425ab.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,15 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWTexture2D<uint4> arg_0 : register(u0, space1);
+void textureStore_5425ab() {
+  arg_0[(1).xx] = (1u).xxxx;
+}
+
+void fragment_main() {
+  textureStore_5425ab();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  textureStore_5425ab();
+}
+
diff --git a/test/tint/builtins/gen/literal/textureStore/544f06.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/textureStore/544f06.wgsl.expected.ir.dxc.hlsl
index 685a9ee..1025f6a 100644
--- a/test/tint/builtins/gen/literal/textureStore/544f06.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureStore/544f06.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,15 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWTexture2D<float4> arg_0 : register(u0, space1);
+void textureStore_544f06() {
+  arg_0[(1).xx] = (1.0f).xxxx;
+}
+
+void fragment_main() {
+  textureStore_544f06();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  textureStore_544f06();
+}
+
diff --git a/test/tint/builtins/gen/literal/textureStore/544f06.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/textureStore/544f06.wgsl.expected.ir.fxc.hlsl
index 685a9ee..1025f6a 100644
--- a/test/tint/builtins/gen/literal/textureStore/544f06.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureStore/544f06.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,15 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWTexture2D<float4> arg_0 : register(u0, space1);
+void textureStore_544f06() {
+  arg_0[(1).xx] = (1.0f).xxxx;
+}
+
+void fragment_main() {
+  textureStore_544f06();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  textureStore_544f06();
+}
+
diff --git a/test/tint/builtins/gen/literal/textureStore/55f9dc.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/textureStore/55f9dc.wgsl.expected.ir.dxc.hlsl
index 685a9ee..649a93a 100644
--- a/test/tint/builtins/gen/literal/textureStore/55f9dc.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureStore/55f9dc.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,16 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWTexture2DArray<float4> arg_0 : register(u0, space1);
+void textureStore_55f9dc() {
+  RWTexture2DArray<float4> v = arg_0;
+  v[uint3((1u).xx, uint(1u))] = (1.0f).xxxx;
+}
+
+void fragment_main() {
+  textureStore_55f9dc();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  textureStore_55f9dc();
+}
+
diff --git a/test/tint/builtins/gen/literal/textureStore/55f9dc.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/textureStore/55f9dc.wgsl.expected.ir.fxc.hlsl
index 685a9ee..649a93a 100644
--- a/test/tint/builtins/gen/literal/textureStore/55f9dc.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureStore/55f9dc.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,16 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWTexture2DArray<float4> arg_0 : register(u0, space1);
+void textureStore_55f9dc() {
+  RWTexture2DArray<float4> v = arg_0;
+  v[uint3((1u).xx, uint(1u))] = (1.0f).xxxx;
+}
+
+void fragment_main() {
+  textureStore_55f9dc();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  textureStore_55f9dc();
+}
+
diff --git a/test/tint/builtins/gen/literal/textureStore/574a31.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/textureStore/574a31.wgsl.expected.ir.dxc.hlsl
index 685a9ee..dbc5eb5 100644
--- a/test/tint/builtins/gen/literal/textureStore/574a31.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureStore/574a31.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,15 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWTexture1D<int4> arg_0 : register(u0, space1);
+void textureStore_574a31() {
+  arg_0[1u] = (1).xxxx;
+}
+
+void fragment_main() {
+  textureStore_574a31();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  textureStore_574a31();
+}
+
diff --git a/test/tint/builtins/gen/literal/textureStore/574a31.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/textureStore/574a31.wgsl.expected.ir.fxc.hlsl
index 685a9ee..dbc5eb5 100644
--- a/test/tint/builtins/gen/literal/textureStore/574a31.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureStore/574a31.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,15 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWTexture1D<int4> arg_0 : register(u0, space1);
+void textureStore_574a31() {
+  arg_0[1u] = (1).xxxx;
+}
+
+void fragment_main() {
+  textureStore_574a31();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  textureStore_574a31();
+}
+
diff --git a/test/tint/builtins/gen/literal/textureStore/579b93.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/textureStore/579b93.wgsl.expected.ir.dxc.hlsl
index 685a9ee..bc00383 100644
--- a/test/tint/builtins/gen/literal/textureStore/579b93.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureStore/579b93.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,15 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWTexture2D<uint4> arg_0 : register(u0, space1);
+void textureStore_579b93() {
+  arg_0[(1).xx] = (1u).xxxx;
+}
+
+void fragment_main() {
+  textureStore_579b93();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  textureStore_579b93();
+}
+
diff --git a/test/tint/builtins/gen/literal/textureStore/579b93.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/textureStore/579b93.wgsl.expected.ir.fxc.hlsl
index 685a9ee..bc00383 100644
--- a/test/tint/builtins/gen/literal/textureStore/579b93.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureStore/579b93.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,15 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWTexture2D<uint4> arg_0 : register(u0, space1);
+void textureStore_579b93() {
+  arg_0[(1).xx] = (1u).xxxx;
+}
+
+void fragment_main() {
+  textureStore_579b93();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  textureStore_579b93();
+}
+
diff --git a/test/tint/builtins/gen/literal/textureStore/5841f8.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/textureStore/5841f8.wgsl.expected.ir.dxc.hlsl
index 685a9ee..2a14cd6 100644
--- a/test/tint/builtins/gen/literal/textureStore/5841f8.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureStore/5841f8.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,16 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWTexture2DArray<float4> arg_0 : register(u0, space1);
+void textureStore_5841f8() {
+  RWTexture2DArray<float4> v = arg_0;
+  v[uint3((1u).xx, uint(1u))] = (1.0f).xxxx;
+}
+
+void fragment_main() {
+  textureStore_5841f8();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  textureStore_5841f8();
+}
+
diff --git a/test/tint/builtins/gen/literal/textureStore/5841f8.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/textureStore/5841f8.wgsl.expected.ir.fxc.hlsl
index 685a9ee..2a14cd6 100644
--- a/test/tint/builtins/gen/literal/textureStore/5841f8.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureStore/5841f8.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,16 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWTexture2DArray<float4> arg_0 : register(u0, space1);
+void textureStore_5841f8() {
+  RWTexture2DArray<float4> v = arg_0;
+  v[uint3((1u).xx, uint(1u))] = (1.0f).xxxx;
+}
+
+void fragment_main() {
+  textureStore_5841f8();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  textureStore_5841f8();
+}
+
diff --git a/test/tint/builtins/gen/literal/textureStore/58fc35.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/textureStore/58fc35.wgsl.expected.ir.dxc.hlsl
index 685a9ee..f31f723 100644
--- a/test/tint/builtins/gen/literal/textureStore/58fc35.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureStore/58fc35.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,15 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWTexture1D<float4> arg_0 : register(u0, space1);
+void textureStore_58fc35() {
+  arg_0[1u] = (1.0f).xxxx;
+}
+
+void fragment_main() {
+  textureStore_58fc35();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  textureStore_58fc35();
+}
+
diff --git a/test/tint/builtins/gen/literal/textureStore/58fc35.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/textureStore/58fc35.wgsl.expected.ir.fxc.hlsl
index 685a9ee..f31f723 100644
--- a/test/tint/builtins/gen/literal/textureStore/58fc35.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureStore/58fc35.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,15 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWTexture1D<float4> arg_0 : register(u0, space1);
+void textureStore_58fc35() {
+  arg_0[1u] = (1.0f).xxxx;
+}
+
+void fragment_main() {
+  textureStore_58fc35();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  textureStore_58fc35();
+}
+
diff --git a/test/tint/builtins/gen/literal/textureStore/59a0ab.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/textureStore/59a0ab.wgsl.expected.ir.dxc.hlsl
index 685a9ee..8e1da67 100644
--- a/test/tint/builtins/gen/literal/textureStore/59a0ab.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureStore/59a0ab.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,16 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWTexture2DArray<float4> arg_0 : register(u0, space1);
+void textureStore_59a0ab() {
+  RWTexture2DArray<float4> v = arg_0;
+  v[uint3((1u).xx, uint(1))] = (1.0f).xxxx;
+}
+
+void fragment_main() {
+  textureStore_59a0ab();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  textureStore_59a0ab();
+}
+
diff --git a/test/tint/builtins/gen/literal/textureStore/59a0ab.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/textureStore/59a0ab.wgsl.expected.ir.fxc.hlsl
index 685a9ee..8e1da67 100644
--- a/test/tint/builtins/gen/literal/textureStore/59a0ab.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureStore/59a0ab.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,16 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWTexture2DArray<float4> arg_0 : register(u0, space1);
+void textureStore_59a0ab() {
+  RWTexture2DArray<float4> v = arg_0;
+  v[uint3((1u).xx, uint(1))] = (1.0f).xxxx;
+}
+
+void fragment_main() {
+  textureStore_59a0ab();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  textureStore_59a0ab();
+}
+
diff --git a/test/tint/builtins/gen/literal/textureStore/5a2f8f.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/textureStore/5a2f8f.wgsl.expected.ir.dxc.hlsl
index 685a9ee..23a14ab 100644
--- a/test/tint/builtins/gen/literal/textureStore/5a2f8f.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureStore/5a2f8f.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,15 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWTexture1D<int4> arg_0 : register(u0, space1);
+void textureStore_5a2f8f() {
+  arg_0[1] = (1).xxxx;
+}
+
+void fragment_main() {
+  textureStore_5a2f8f();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  textureStore_5a2f8f();
+}
+
diff --git a/test/tint/builtins/gen/literal/textureStore/5a2f8f.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/textureStore/5a2f8f.wgsl.expected.ir.fxc.hlsl
index 685a9ee..23a14ab 100644
--- a/test/tint/builtins/gen/literal/textureStore/5a2f8f.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureStore/5a2f8f.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,15 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWTexture1D<int4> arg_0 : register(u0, space1);
+void textureStore_5a2f8f() {
+  arg_0[1] = (1).xxxx;
+}
+
+void fragment_main() {
+  textureStore_5a2f8f();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  textureStore_5a2f8f();
+}
+
diff --git a/test/tint/builtins/gen/literal/textureStore/5a8b41.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/textureStore/5a8b41.wgsl.expected.ir.dxc.hlsl
index 685a9ee..a004634 100644
--- a/test/tint/builtins/gen/literal/textureStore/5a8b41.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureStore/5a8b41.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,16 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWTexture2DArray<float4> arg_0 : register(u0, space1);
+void textureStore_5a8b41() {
+  RWTexture2DArray<float4> v = arg_0;
+  v[uint3((1u).xx, uint(1))] = (1.0f).xxxx;
+}
+
+void fragment_main() {
+  textureStore_5a8b41();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  textureStore_5a8b41();
+}
+
diff --git a/test/tint/builtins/gen/literal/textureStore/5a8b41.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/textureStore/5a8b41.wgsl.expected.ir.fxc.hlsl
index 685a9ee..a004634 100644
--- a/test/tint/builtins/gen/literal/textureStore/5a8b41.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureStore/5a8b41.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,16 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWTexture2DArray<float4> arg_0 : register(u0, space1);
+void textureStore_5a8b41() {
+  RWTexture2DArray<float4> v = arg_0;
+  v[uint3((1u).xx, uint(1))] = (1.0f).xxxx;
+}
+
+void fragment_main() {
+  textureStore_5a8b41();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  textureStore_5a8b41();
+}
+
diff --git a/test/tint/builtins/gen/literal/textureStore/5b17eb.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/textureStore/5b17eb.wgsl.expected.ir.dxc.hlsl
index 685a9ee..075a4d2 100644
--- a/test/tint/builtins/gen/literal/textureStore/5b17eb.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureStore/5b17eb.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,15 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWTexture2D<float4> arg_0 : register(u0, space1);
+void textureStore_5b17eb() {
+  arg_0[(1u).xx] = (1.0f).xxxx;
+}
+
+void fragment_main() {
+  textureStore_5b17eb();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  textureStore_5b17eb();
+}
+
diff --git a/test/tint/builtins/gen/literal/textureStore/5b17eb.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/textureStore/5b17eb.wgsl.expected.ir.fxc.hlsl
index 685a9ee..075a4d2 100644
--- a/test/tint/builtins/gen/literal/textureStore/5b17eb.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureStore/5b17eb.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,15 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWTexture2D<float4> arg_0 : register(u0, space1);
+void textureStore_5b17eb() {
+  arg_0[(1u).xx] = (1.0f).xxxx;
+}
+
+void fragment_main() {
+  textureStore_5b17eb();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  textureStore_5b17eb();
+}
+
diff --git a/test/tint/builtins/gen/literal/textureStore/5b4522.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/textureStore/5b4522.wgsl.expected.ir.dxc.hlsl
index 685a9ee..04f4d5e 100644
--- a/test/tint/builtins/gen/literal/textureStore/5b4522.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureStore/5b4522.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,15 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWTexture1D<uint4> arg_0 : register(u0, space1);
+void textureStore_5b4522() {
+  arg_0[1u] = (1u).xxxx;
+}
+
+void fragment_main() {
+  textureStore_5b4522();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  textureStore_5b4522();
+}
+
diff --git a/test/tint/builtins/gen/literal/textureStore/5b4522.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/textureStore/5b4522.wgsl.expected.ir.fxc.hlsl
index 685a9ee..04f4d5e 100644
--- a/test/tint/builtins/gen/literal/textureStore/5b4522.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureStore/5b4522.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,15 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWTexture1D<uint4> arg_0 : register(u0, space1);
+void textureStore_5b4522() {
+  arg_0[1u] = (1u).xxxx;
+}
+
+void fragment_main() {
+  textureStore_5b4522();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  textureStore_5b4522();
+}
+
diff --git a/test/tint/builtins/gen/literal/textureStore/5bc4f3.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/textureStore/5bc4f3.wgsl.expected.ir.dxc.hlsl
index 685a9ee..8f48a82 100644
--- a/test/tint/builtins/gen/literal/textureStore/5bc4f3.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureStore/5bc4f3.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,16 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWTexture2DArray<uint4> arg_0 : register(u0, space1);
+void textureStore_5bc4f3() {
+  RWTexture2DArray<uint4> v = arg_0;
+  v[uint3((1u).xx, uint(1u))] = (1u).xxxx;
+}
+
+void fragment_main() {
+  textureStore_5bc4f3();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  textureStore_5bc4f3();
+}
+
diff --git a/test/tint/builtins/gen/literal/textureStore/5bc4f3.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/textureStore/5bc4f3.wgsl.expected.ir.fxc.hlsl
index 685a9ee..8f48a82 100644
--- a/test/tint/builtins/gen/literal/textureStore/5bc4f3.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureStore/5bc4f3.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,16 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWTexture2DArray<uint4> arg_0 : register(u0, space1);
+void textureStore_5bc4f3() {
+  RWTexture2DArray<uint4> v = arg_0;
+  v[uint3((1u).xx, uint(1u))] = (1u).xxxx;
+}
+
+void fragment_main() {
+  textureStore_5bc4f3();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  textureStore_5bc4f3();
+}
+
diff --git a/test/tint/builtins/gen/literal/textureStore/5ddc61.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/textureStore/5ddc61.wgsl.expected.ir.dxc.hlsl
index 685a9ee..7761119 100644
--- a/test/tint/builtins/gen/literal/textureStore/5ddc61.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureStore/5ddc61.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,16 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWTexture2DArray<int4> arg_0 : register(u0, space1);
+void textureStore_5ddc61() {
+  RWTexture2DArray<int4> v = arg_0;
+  v[int3((1).xx, int(1u))] = (1).xxxx;
+}
+
+void fragment_main() {
+  textureStore_5ddc61();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  textureStore_5ddc61();
+}
+
diff --git a/test/tint/builtins/gen/literal/textureStore/5ddc61.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/textureStore/5ddc61.wgsl.expected.ir.fxc.hlsl
index 685a9ee..7761119 100644
--- a/test/tint/builtins/gen/literal/textureStore/5ddc61.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureStore/5ddc61.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,16 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWTexture2DArray<int4> arg_0 : register(u0, space1);
+void textureStore_5ddc61() {
+  RWTexture2DArray<int4> v = arg_0;
+  v[int3((1).xx, int(1u))] = (1).xxxx;
+}
+
+void fragment_main() {
+  textureStore_5ddc61();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  textureStore_5ddc61();
+}
+
diff --git a/test/tint/builtins/gen/literal/textureStore/5ec6b2.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/textureStore/5ec6b2.wgsl.expected.ir.dxc.hlsl
index 685a9ee..61efd2d 100644
--- a/test/tint/builtins/gen/literal/textureStore/5ec6b2.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureStore/5ec6b2.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,15 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWTexture3D<float4> arg_0 : register(u0, space1);
+void textureStore_5ec6b2() {
+  arg_0[(1u).xxx] = (1.0f).xxxx;
+}
+
+void fragment_main() {
+  textureStore_5ec6b2();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  textureStore_5ec6b2();
+}
+
diff --git a/test/tint/builtins/gen/literal/textureStore/5ec6b2.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/textureStore/5ec6b2.wgsl.expected.ir.fxc.hlsl
index 685a9ee..61efd2d 100644
--- a/test/tint/builtins/gen/literal/textureStore/5ec6b2.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureStore/5ec6b2.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,15 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWTexture3D<float4> arg_0 : register(u0, space1);
+void textureStore_5ec6b2() {
+  arg_0[(1u).xxx] = (1.0f).xxxx;
+}
+
+void fragment_main() {
+  textureStore_5ec6b2();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  textureStore_5ec6b2();
+}
+
diff --git a/test/tint/builtins/gen/literal/textureStore/5ee194.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/textureStore/5ee194.wgsl.expected.ir.dxc.hlsl
index 685a9ee..1d8dd2a 100644
--- a/test/tint/builtins/gen/literal/textureStore/5ee194.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureStore/5ee194.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,16 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWTexture2DArray<float4> arg_0 : register(u0, space1);
+void textureStore_5ee194() {
+  RWTexture2DArray<float4> v = arg_0;
+  v[uint3((1u).xx, uint(1u))] = (1.0f).xxxx;
+}
+
+void fragment_main() {
+  textureStore_5ee194();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  textureStore_5ee194();
+}
+
diff --git a/test/tint/builtins/gen/literal/textureStore/5ee194.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/textureStore/5ee194.wgsl.expected.ir.fxc.hlsl
index 685a9ee..1d8dd2a 100644
--- a/test/tint/builtins/gen/literal/textureStore/5ee194.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureStore/5ee194.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,16 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWTexture2DArray<float4> arg_0 : register(u0, space1);
+void textureStore_5ee194() {
+  RWTexture2DArray<float4> v = arg_0;
+  v[uint3((1u).xx, uint(1u))] = (1.0f).xxxx;
+}
+
+void fragment_main() {
+  textureStore_5ee194();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  textureStore_5ee194();
+}
+
diff --git a/test/tint/builtins/gen/literal/textureStore/5f9a49.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/textureStore/5f9a49.wgsl.expected.ir.dxc.hlsl
index 685a9ee..51ef83d 100644
--- a/test/tint/builtins/gen/literal/textureStore/5f9a49.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureStore/5f9a49.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,16 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWTexture2DArray<float4> arg_0 : register(u0, space1);
+void textureStore_5f9a49() {
+  RWTexture2DArray<float4> v = arg_0;
+  v[uint3((1u).xx, uint(1u))] = (1.0f).xxxx;
+}
+
+void fragment_main() {
+  textureStore_5f9a49();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  textureStore_5f9a49();
+}
+
diff --git a/test/tint/builtins/gen/literal/textureStore/5f9a49.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/textureStore/5f9a49.wgsl.expected.ir.fxc.hlsl
index 685a9ee..51ef83d 100644
--- a/test/tint/builtins/gen/literal/textureStore/5f9a49.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureStore/5f9a49.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,16 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWTexture2DArray<float4> arg_0 : register(u0, space1);
+void textureStore_5f9a49() {
+  RWTexture2DArray<float4> v = arg_0;
+  v[uint3((1u).xx, uint(1u))] = (1.0f).xxxx;
+}
+
+void fragment_main() {
+  textureStore_5f9a49();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  textureStore_5f9a49();
+}
+
diff --git a/test/tint/builtins/gen/literal/textureStore/602b5a.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/textureStore/602b5a.wgsl.expected.ir.dxc.hlsl
index 685a9ee..e87be17 100644
--- a/test/tint/builtins/gen/literal/textureStore/602b5a.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureStore/602b5a.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,15 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWTexture1D<float4> arg_0 : register(u0, space1);
+void textureStore_602b5a() {
+  arg_0[1u] = (1.0f).xxxx;
+}
+
+void fragment_main() {
+  textureStore_602b5a();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  textureStore_602b5a();
+}
+
diff --git a/test/tint/builtins/gen/literal/textureStore/602b5a.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/textureStore/602b5a.wgsl.expected.ir.fxc.hlsl
index 685a9ee..e87be17 100644
--- a/test/tint/builtins/gen/literal/textureStore/602b5a.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureStore/602b5a.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,15 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWTexture1D<float4> arg_0 : register(u0, space1);
+void textureStore_602b5a() {
+  arg_0[1u] = (1.0f).xxxx;
+}
+
+void fragment_main() {
+  textureStore_602b5a();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  textureStore_602b5a();
+}
+
diff --git a/test/tint/builtins/gen/literal/textureStore/60975f.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/textureStore/60975f.wgsl.expected.ir.dxc.hlsl
index 685a9ee..95f29a2 100644
--- a/test/tint/builtins/gen/literal/textureStore/60975f.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureStore/60975f.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,16 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWTexture2DArray<float4> arg_0 : register(u0, space1);
+void textureStore_60975f() {
+  RWTexture2DArray<float4> v = arg_0;
+  v[int3((1).xx, int(1))] = (1.0f).xxxx;
+}
+
+void fragment_main() {
+  textureStore_60975f();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  textureStore_60975f();
+}
+
diff --git a/test/tint/builtins/gen/literal/textureStore/60975f.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/textureStore/60975f.wgsl.expected.ir.fxc.hlsl
index 685a9ee..95f29a2 100644
--- a/test/tint/builtins/gen/literal/textureStore/60975f.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureStore/60975f.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,16 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWTexture2DArray<float4> arg_0 : register(u0, space1);
+void textureStore_60975f() {
+  RWTexture2DArray<float4> v = arg_0;
+  v[int3((1).xx, int(1))] = (1.0f).xxxx;
+}
+
+void fragment_main() {
+  textureStore_60975f();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  textureStore_60975f();
+}
+
diff --git a/test/tint/builtins/gen/literal/textureStore/614b58.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/textureStore/614b58.wgsl.expected.ir.dxc.hlsl
index 685a9ee..67da6e3 100644
--- a/test/tint/builtins/gen/literal/textureStore/614b58.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureStore/614b58.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,16 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWTexture2DArray<int4> arg_0 : register(u0, space1);
+void textureStore_614b58() {
+  RWTexture2DArray<int4> v = arg_0;
+  v[int3((1).xx, int(1u))] = (1).xxxx;
+}
+
+void fragment_main() {
+  textureStore_614b58();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  textureStore_614b58();
+}
+
diff --git a/test/tint/builtins/gen/literal/textureStore/614b58.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/textureStore/614b58.wgsl.expected.ir.fxc.hlsl
index 685a9ee..67da6e3 100644
--- a/test/tint/builtins/gen/literal/textureStore/614b58.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureStore/614b58.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,16 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWTexture2DArray<int4> arg_0 : register(u0, space1);
+void textureStore_614b58() {
+  RWTexture2DArray<int4> v = arg_0;
+  v[int3((1).xx, int(1u))] = (1).xxxx;
+}
+
+void fragment_main() {
+  textureStore_614b58();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  textureStore_614b58();
+}
+
diff --git a/test/tint/builtins/gen/literal/textureStore/635584.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/textureStore/635584.wgsl.expected.ir.dxc.hlsl
index 685a9ee..b14397b 100644
--- a/test/tint/builtins/gen/literal/textureStore/635584.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureStore/635584.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,15 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWTexture1D<float4> arg_0 : register(u0, space1);
+void textureStore_635584() {
+  arg_0[1u] = (1.0f).xxxx;
+}
+
+void fragment_main() {
+  textureStore_635584();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  textureStore_635584();
+}
+
diff --git a/test/tint/builtins/gen/literal/textureStore/635584.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/textureStore/635584.wgsl.expected.ir.fxc.hlsl
index 685a9ee..b14397b 100644
--- a/test/tint/builtins/gen/literal/textureStore/635584.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureStore/635584.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,15 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWTexture1D<float4> arg_0 : register(u0, space1);
+void textureStore_635584() {
+  arg_0[1u] = (1.0f).xxxx;
+}
+
+void fragment_main() {
+  textureStore_635584();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  textureStore_635584();
+}
+
diff --git a/test/tint/builtins/gen/literal/textureStore/63f34a.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/textureStore/63f34a.wgsl.expected.ir.dxc.hlsl
index 685a9ee..7e9f325 100644
--- a/test/tint/builtins/gen/literal/textureStore/63f34a.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureStore/63f34a.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,15 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWTexture2D<int4> arg_0 : register(u0, space1);
+void textureStore_63f34a() {
+  arg_0[(1u).xx] = (1).xxxx;
+}
+
+void fragment_main() {
+  textureStore_63f34a();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  textureStore_63f34a();
+}
+
diff --git a/test/tint/builtins/gen/literal/textureStore/63f34a.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/textureStore/63f34a.wgsl.expected.ir.fxc.hlsl
index 685a9ee..7e9f325 100644
--- a/test/tint/builtins/gen/literal/textureStore/63f34a.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureStore/63f34a.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,15 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWTexture2D<int4> arg_0 : register(u0, space1);
+void textureStore_63f34a() {
+  arg_0[(1u).xx] = (1).xxxx;
+}
+
+void fragment_main() {
+  textureStore_63f34a();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  textureStore_63f34a();
+}
+
diff --git a/test/tint/builtins/gen/literal/textureStore/646dbc.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/textureStore/646dbc.wgsl.expected.ir.dxc.hlsl
index 685a9ee..a743ff4 100644
--- a/test/tint/builtins/gen/literal/textureStore/646dbc.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureStore/646dbc.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,15 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWTexture3D<int4> arg_0 : register(u0, space1);
+void textureStore_646dbc() {
+  arg_0[(1).xxx] = (1).xxxx;
+}
+
+void fragment_main() {
+  textureStore_646dbc();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  textureStore_646dbc();
+}
+
diff --git a/test/tint/builtins/gen/literal/textureStore/646dbc.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/textureStore/646dbc.wgsl.expected.ir.fxc.hlsl
index 685a9ee..a743ff4 100644
--- a/test/tint/builtins/gen/literal/textureStore/646dbc.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureStore/646dbc.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,15 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWTexture3D<int4> arg_0 : register(u0, space1);
+void textureStore_646dbc() {
+  arg_0[(1).xxx] = (1).xxxx;
+}
+
+void fragment_main() {
+  textureStore_646dbc();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  textureStore_646dbc();
+}
+
diff --git a/test/tint/builtins/gen/literal/textureStore/658a74.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/textureStore/658a74.wgsl.expected.ir.dxc.hlsl
index 685a9ee..e80172d 100644
--- a/test/tint/builtins/gen/literal/textureStore/658a74.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureStore/658a74.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,16 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWTexture2DArray<float4> arg_0 : register(u0, space1);
+void textureStore_658a74() {
+  RWTexture2DArray<float4> v = arg_0;
+  v[int3((1).xx, int(1u))] = (1.0f).xxxx;
+}
+
+void fragment_main() {
+  textureStore_658a74();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  textureStore_658a74();
+}
+
diff --git a/test/tint/builtins/gen/literal/textureStore/658a74.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/textureStore/658a74.wgsl.expected.ir.fxc.hlsl
index 685a9ee..e80172d 100644
--- a/test/tint/builtins/gen/literal/textureStore/658a74.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureStore/658a74.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,16 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWTexture2DArray<float4> arg_0 : register(u0, space1);
+void textureStore_658a74() {
+  RWTexture2DArray<float4> v = arg_0;
+  v[int3((1).xx, int(1u))] = (1.0f).xxxx;
+}
+
+void fragment_main() {
+  textureStore_658a74();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  textureStore_658a74();
+}
+
diff --git a/test/tint/builtins/gen/literal/textureStore/65b6aa.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/textureStore/65b6aa.wgsl.expected.ir.dxc.hlsl
index 685a9ee..b757e0d 100644
--- a/test/tint/builtins/gen/literal/textureStore/65b6aa.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureStore/65b6aa.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,15 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWTexture1D<int4> arg_0 : register(u0, space1);
+void textureStore_65b6aa() {
+  arg_0[1] = (1).xxxx;
+}
+
+void fragment_main() {
+  textureStore_65b6aa();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  textureStore_65b6aa();
+}
+
diff --git a/test/tint/builtins/gen/literal/textureStore/65b6aa.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/textureStore/65b6aa.wgsl.expected.ir.fxc.hlsl
index 685a9ee..b757e0d 100644
--- a/test/tint/builtins/gen/literal/textureStore/65b6aa.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureStore/65b6aa.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,15 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWTexture1D<int4> arg_0 : register(u0, space1);
+void textureStore_65b6aa() {
+  arg_0[1] = (1).xxxx;
+}
+
+void fragment_main() {
+  textureStore_65b6aa();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  textureStore_65b6aa();
+}
+
diff --git a/test/tint/builtins/gen/literal/textureStore/65ba8b.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/textureStore/65ba8b.wgsl.expected.ir.dxc.hlsl
index 685a9ee..b47e188 100644
--- a/test/tint/builtins/gen/literal/textureStore/65ba8b.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureStore/65ba8b.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,15 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWTexture2D<float4> arg_0 : register(u0, space1);
+void textureStore_65ba8b() {
+  arg_0[(1).xx] = (1.0f).xxxx;
+}
+
+void fragment_main() {
+  textureStore_65ba8b();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  textureStore_65ba8b();
+}
+
diff --git a/test/tint/builtins/gen/literal/textureStore/65ba8b.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/textureStore/65ba8b.wgsl.expected.ir.fxc.hlsl
index 685a9ee..b47e188 100644
--- a/test/tint/builtins/gen/literal/textureStore/65ba8b.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureStore/65ba8b.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,15 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWTexture2D<float4> arg_0 : register(u0, space1);
+void textureStore_65ba8b() {
+  arg_0[(1).xx] = (1.0f).xxxx;
+}
+
+void fragment_main() {
+  textureStore_65ba8b();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  textureStore_65ba8b();
+}
+
diff --git a/test/tint/builtins/gen/literal/textureStore/682fd6.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/textureStore/682fd6.wgsl.expected.ir.dxc.hlsl
index 685a9ee..8c307d7 100644
--- a/test/tint/builtins/gen/literal/textureStore/682fd6.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureStore/682fd6.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,15 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWTexture2D<uint4> arg_0 : register(u0, space1);
+void textureStore_682fd6() {
+  arg_0[(1).xx] = (1u).xxxx;
+}
+
+void fragment_main() {
+  textureStore_682fd6();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  textureStore_682fd6();
+}
+
diff --git a/test/tint/builtins/gen/literal/textureStore/682fd6.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/textureStore/682fd6.wgsl.expected.ir.fxc.hlsl
index 685a9ee..8c307d7 100644
--- a/test/tint/builtins/gen/literal/textureStore/682fd6.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureStore/682fd6.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,15 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWTexture2D<uint4> arg_0 : register(u0, space1);
+void textureStore_682fd6() {
+  arg_0[(1).xx] = (1u).xxxx;
+}
+
+void fragment_main() {
+  textureStore_682fd6();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  textureStore_682fd6();
+}
+
diff --git a/test/tint/builtins/gen/literal/textureStore/699a1b.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/textureStore/699a1b.wgsl.expected.ir.dxc.hlsl
index 685a9ee..cab8785 100644
--- a/test/tint/builtins/gen/literal/textureStore/699a1b.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureStore/699a1b.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,16 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWTexture2DArray<float4> arg_0 : register(u0, space1);
+void textureStore_699a1b() {
+  RWTexture2DArray<float4> v = arg_0;
+  v[uint3((1u).xx, uint(1u))] = (1.0f).xxxx;
+}
+
+void fragment_main() {
+  textureStore_699a1b();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  textureStore_699a1b();
+}
+
diff --git a/test/tint/builtins/gen/literal/textureStore/699a1b.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/textureStore/699a1b.wgsl.expected.ir.fxc.hlsl
index 685a9ee..cab8785 100644
--- a/test/tint/builtins/gen/literal/textureStore/699a1b.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureStore/699a1b.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,16 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWTexture2DArray<float4> arg_0 : register(u0, space1);
+void textureStore_699a1b() {
+  RWTexture2DArray<float4> v = arg_0;
+  v[uint3((1u).xx, uint(1u))] = (1.0f).xxxx;
+}
+
+void fragment_main() {
+  textureStore_699a1b();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  textureStore_699a1b();
+}
+
diff --git a/test/tint/builtins/gen/literal/textureStore/6b75c3.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/textureStore/6b75c3.wgsl.expected.ir.dxc.hlsl
index 685a9ee..9535aac 100644
--- a/test/tint/builtins/gen/literal/textureStore/6b75c3.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureStore/6b75c3.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,15 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWTexture1D<float4> arg_0 : register(u0, space1);
+void textureStore_6b75c3() {
+  arg_0[1] = (1.0f).xxxx;
+}
+
+void fragment_main() {
+  textureStore_6b75c3();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  textureStore_6b75c3();
+}
+
diff --git a/test/tint/builtins/gen/literal/textureStore/6b75c3.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/textureStore/6b75c3.wgsl.expected.ir.fxc.hlsl
index 685a9ee..9535aac 100644
--- a/test/tint/builtins/gen/literal/textureStore/6b75c3.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureStore/6b75c3.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,15 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWTexture1D<float4> arg_0 : register(u0, space1);
+void textureStore_6b75c3() {
+  arg_0[1] = (1.0f).xxxx;
+}
+
+void fragment_main() {
+  textureStore_6b75c3();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  textureStore_6b75c3();
+}
+
diff --git a/test/tint/builtins/gen/literal/textureStore/6b80d2.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/textureStore/6b80d2.wgsl.expected.ir.dxc.hlsl
index 685a9ee..08abce1 100644
--- a/test/tint/builtins/gen/literal/textureStore/6b80d2.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureStore/6b80d2.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,15 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWTexture1D<int4> arg_0 : register(u0, space1);
+void textureStore_6b80d2() {
+  arg_0[1] = (1).xxxx;
+}
+
+void fragment_main() {
+  textureStore_6b80d2();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  textureStore_6b80d2();
+}
+
diff --git a/test/tint/builtins/gen/literal/textureStore/6b80d2.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/textureStore/6b80d2.wgsl.expected.ir.fxc.hlsl
index 685a9ee..08abce1 100644
--- a/test/tint/builtins/gen/literal/textureStore/6b80d2.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureStore/6b80d2.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,15 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWTexture1D<int4> arg_0 : register(u0, space1);
+void textureStore_6b80d2() {
+  arg_0[1] = (1).xxxx;
+}
+
+void fragment_main() {
+  textureStore_6b80d2();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  textureStore_6b80d2();
+}
+
diff --git a/test/tint/builtins/gen/literal/textureStore/6be9e0.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/textureStore/6be9e0.wgsl.expected.ir.dxc.hlsl
index 685a9ee..f25ce5e 100644
--- a/test/tint/builtins/gen/literal/textureStore/6be9e0.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureStore/6be9e0.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,15 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWTexture3D<float4> arg_0 : register(u0, space1);
+void textureStore_6be9e0() {
+  arg_0[(1).xxx] = (1.0f).xxxx;
+}
+
+void fragment_main() {
+  textureStore_6be9e0();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  textureStore_6be9e0();
+}
+
diff --git a/test/tint/builtins/gen/literal/textureStore/6be9e0.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/textureStore/6be9e0.wgsl.expected.ir.fxc.hlsl
index 685a9ee..f25ce5e 100644
--- a/test/tint/builtins/gen/literal/textureStore/6be9e0.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureStore/6be9e0.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,15 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWTexture3D<float4> arg_0 : register(u0, space1);
+void textureStore_6be9e0() {
+  arg_0[(1).xxx] = (1.0f).xxxx;
+}
+
+void fragment_main() {
+  textureStore_6be9e0();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  textureStore_6be9e0();
+}
+
diff --git a/test/tint/builtins/gen/literal/textureStore/6c4a70.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/textureStore/6c4a70.wgsl.expected.ir.dxc.hlsl
index 685a9ee..01e54e7 100644
--- a/test/tint/builtins/gen/literal/textureStore/6c4a70.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureStore/6c4a70.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,15 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWTexture2D<int4> arg_0 : register(u0, space1);
+void textureStore_6c4a70() {
+  arg_0[(1u).xx] = (1).xxxx;
+}
+
+void fragment_main() {
+  textureStore_6c4a70();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  textureStore_6c4a70();
+}
+
diff --git a/test/tint/builtins/gen/literal/textureStore/6c4a70.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/textureStore/6c4a70.wgsl.expected.ir.fxc.hlsl
index 685a9ee..01e54e7 100644
--- a/test/tint/builtins/gen/literal/textureStore/6c4a70.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureStore/6c4a70.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,15 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWTexture2D<int4> arg_0 : register(u0, space1);
+void textureStore_6c4a70() {
+  arg_0[(1u).xx] = (1).xxxx;
+}
+
+void fragment_main() {
+  textureStore_6c4a70();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  textureStore_6c4a70();
+}
+
diff --git a/test/tint/builtins/gen/literal/textureStore/6cff2e.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/textureStore/6cff2e.wgsl.expected.ir.dxc.hlsl
index 685a9ee..93000b9 100644
--- a/test/tint/builtins/gen/literal/textureStore/6cff2e.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureStore/6cff2e.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,15 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWTexture2D<uint4> arg_0 : register(u0, space1);
+void textureStore_6cff2e() {
+  arg_0[(1).xx] = (1u).xxxx;
+}
+
+void fragment_main() {
+  textureStore_6cff2e();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  textureStore_6cff2e();
+}
+
diff --git a/test/tint/builtins/gen/literal/textureStore/6cff2e.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/textureStore/6cff2e.wgsl.expected.ir.fxc.hlsl
index 685a9ee..93000b9 100644
--- a/test/tint/builtins/gen/literal/textureStore/6cff2e.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureStore/6cff2e.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,15 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWTexture2D<uint4> arg_0 : register(u0, space1);
+void textureStore_6cff2e() {
+  arg_0[(1).xx] = (1u).xxxx;
+}
+
+void fragment_main() {
+  textureStore_6cff2e();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  textureStore_6cff2e();
+}
+
diff --git a/test/tint/builtins/gen/literal/textureStore/6d1809.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/textureStore/6d1809.wgsl.expected.ir.dxc.hlsl
index 685a9ee..0be2005 100644
--- a/test/tint/builtins/gen/literal/textureStore/6d1809.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureStore/6d1809.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,16 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWTexture2DArray<float4> arg_0 : register(u0, space1);
+void textureStore_6d1809() {
+  RWTexture2DArray<float4> v = arg_0;
+  v[uint3((1u).xx, uint(1u))] = (1.0f).xxxx;
+}
+
+void fragment_main() {
+  textureStore_6d1809();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  textureStore_6d1809();
+}
+
diff --git a/test/tint/builtins/gen/literal/textureStore/6d1809.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/textureStore/6d1809.wgsl.expected.ir.fxc.hlsl
index 685a9ee..0be2005 100644
--- a/test/tint/builtins/gen/literal/textureStore/6d1809.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureStore/6d1809.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,16 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWTexture2DArray<float4> arg_0 : register(u0, space1);
+void textureStore_6d1809() {
+  RWTexture2DArray<float4> v = arg_0;
+  v[uint3((1u).xx, uint(1u))] = (1.0f).xxxx;
+}
+
+void fragment_main() {
+  textureStore_6d1809();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  textureStore_6d1809();
+}
+
diff --git a/test/tint/builtins/gen/literal/textureStore/6d259f.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/textureStore/6d259f.wgsl.expected.ir.dxc.hlsl
index 685a9ee..dd6e584 100644
--- a/test/tint/builtins/gen/literal/textureStore/6d259f.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureStore/6d259f.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,15 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWTexture2D<uint4> arg_0 : register(u0, space1);
+void textureStore_6d259f() {
+  arg_0[(1).xx] = (1u).xxxx;
+}
+
+void fragment_main() {
+  textureStore_6d259f();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  textureStore_6d259f();
+}
+
diff --git a/test/tint/builtins/gen/literal/textureStore/6d259f.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/textureStore/6d259f.wgsl.expected.ir.fxc.hlsl
index 685a9ee..dd6e584 100644
--- a/test/tint/builtins/gen/literal/textureStore/6d259f.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureStore/6d259f.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,15 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWTexture2D<uint4> arg_0 : register(u0, space1);
+void textureStore_6d259f() {
+  arg_0[(1).xx] = (1u).xxxx;
+}
+
+void fragment_main() {
+  textureStore_6d259f();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  textureStore_6d259f();
+}
+
diff --git a/test/tint/builtins/gen/literal/textureStore/6da692.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/textureStore/6da692.wgsl.expected.ir.dxc.hlsl
index 685a9ee..75d3bd2 100644
--- a/test/tint/builtins/gen/literal/textureStore/6da692.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureStore/6da692.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,16 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWTexture2DArray<uint4> arg_0 : register(u0, space1);
+void textureStore_6da692() {
+  RWTexture2DArray<uint4> v = arg_0;
+  v[int3((1).xx, int(1))] = (1u).xxxx;
+}
+
+void fragment_main() {
+  textureStore_6da692();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  textureStore_6da692();
+}
+
diff --git a/test/tint/builtins/gen/literal/textureStore/6da692.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/textureStore/6da692.wgsl.expected.ir.fxc.hlsl
index 685a9ee..75d3bd2 100644
--- a/test/tint/builtins/gen/literal/textureStore/6da692.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureStore/6da692.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,16 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWTexture2DArray<uint4> arg_0 : register(u0, space1);
+void textureStore_6da692() {
+  RWTexture2DArray<uint4> v = arg_0;
+  v[int3((1).xx, int(1))] = (1u).xxxx;
+}
+
+void fragment_main() {
+  textureStore_6da692();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  textureStore_6da692();
+}
+
diff --git a/test/tint/builtins/gen/literal/textureStore/6e6cc0.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/textureStore/6e6cc0.wgsl.expected.ir.dxc.hlsl
index 685a9ee..809819e 100644
--- a/test/tint/builtins/gen/literal/textureStore/6e6cc0.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureStore/6e6cc0.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,15 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWTexture1D<float4> arg_0 : register(u0, space1);
+void textureStore_6e6cc0() {
+  arg_0[1] = (1.0f).xxxx;
+}
+
+void fragment_main() {
+  textureStore_6e6cc0();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  textureStore_6e6cc0();
+}
+
diff --git a/test/tint/builtins/gen/literal/textureStore/6e6cc0.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/textureStore/6e6cc0.wgsl.expected.ir.fxc.hlsl
index 685a9ee..809819e 100644
--- a/test/tint/builtins/gen/literal/textureStore/6e6cc0.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureStore/6e6cc0.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,15 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWTexture1D<float4> arg_0 : register(u0, space1);
+void textureStore_6e6cc0() {
+  arg_0[1] = (1.0f).xxxx;
+}
+
+void fragment_main() {
+  textureStore_6e6cc0();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  textureStore_6e6cc0();
+}
+
diff --git a/test/tint/builtins/gen/literal/textureStore/6f0c92.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/textureStore/6f0c92.wgsl.expected.ir.dxc.hlsl
index 685a9ee..2d52939 100644
--- a/test/tint/builtins/gen/literal/textureStore/6f0c92.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureStore/6f0c92.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,16 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWTexture2DArray<float4> arg_0 : register(u0, space1);
+void textureStore_6f0c92() {
+  RWTexture2DArray<float4> v = arg_0;
+  v[uint3((1u).xx, uint(1))] = (1.0f).xxxx;
+}
+
+void fragment_main() {
+  textureStore_6f0c92();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  textureStore_6f0c92();
+}
+
diff --git a/test/tint/builtins/gen/literal/textureStore/6f0c92.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/textureStore/6f0c92.wgsl.expected.ir.fxc.hlsl
index 685a9ee..2d52939 100644
--- a/test/tint/builtins/gen/literal/textureStore/6f0c92.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureStore/6f0c92.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,16 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWTexture2DArray<float4> arg_0 : register(u0, space1);
+void textureStore_6f0c92() {
+  RWTexture2DArray<float4> v = arg_0;
+  v[uint3((1u).xx, uint(1))] = (1.0f).xxxx;
+}
+
+void fragment_main() {
+  textureStore_6f0c92();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  textureStore_6f0c92();
+}
+
diff --git a/test/tint/builtins/gen/literal/textureStore/6f3542.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/textureStore/6f3542.wgsl.expected.ir.dxc.hlsl
index 685a9ee..7b90826 100644
--- a/test/tint/builtins/gen/literal/textureStore/6f3542.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureStore/6f3542.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,15 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWTexture3D<uint4> arg_0 : register(u0, space1);
+void textureStore_6f3542() {
+  arg_0[(1).xxx] = (1u).xxxx;
+}
+
+void fragment_main() {
+  textureStore_6f3542();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  textureStore_6f3542();
+}
+
diff --git a/test/tint/builtins/gen/literal/textureStore/6f3542.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/textureStore/6f3542.wgsl.expected.ir.fxc.hlsl
index 685a9ee..7b90826 100644
--- a/test/tint/builtins/gen/literal/textureStore/6f3542.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureStore/6f3542.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,15 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWTexture3D<uint4> arg_0 : register(u0, space1);
+void textureStore_6f3542() {
+  arg_0[(1).xxx] = (1u).xxxx;
+}
+
+void fragment_main() {
+  textureStore_6f3542();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  textureStore_6f3542();
+}
+
diff --git a/test/tint/builtins/gen/literal/textureStore/6f8642.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/textureStore/6f8642.wgsl.expected.ir.dxc.hlsl
index 685a9ee..b9c27e0 100644
--- a/test/tint/builtins/gen/literal/textureStore/6f8642.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureStore/6f8642.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,16 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWTexture2DArray<uint4> arg_0 : register(u0, space1);
+void textureStore_6f8642() {
+  RWTexture2DArray<uint4> v = arg_0;
+  v[uint3((1u).xx, uint(1))] = (1u).xxxx;
+}
+
+void fragment_main() {
+  textureStore_6f8642();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  textureStore_6f8642();
+}
+
diff --git a/test/tint/builtins/gen/literal/textureStore/6f8642.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/textureStore/6f8642.wgsl.expected.ir.fxc.hlsl
index 685a9ee..b9c27e0 100644
--- a/test/tint/builtins/gen/literal/textureStore/6f8642.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureStore/6f8642.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,16 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWTexture2DArray<uint4> arg_0 : register(u0, space1);
+void textureStore_6f8642() {
+  RWTexture2DArray<uint4> v = arg_0;
+  v[uint3((1u).xx, uint(1))] = (1u).xxxx;
+}
+
+void fragment_main() {
+  textureStore_6f8642();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  textureStore_6f8642();
+}
+
diff --git a/test/tint/builtins/gen/literal/textureStore/6fb99b.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/textureStore/6fb99b.wgsl.expected.ir.dxc.hlsl
index 685a9ee..6926191 100644
--- a/test/tint/builtins/gen/literal/textureStore/6fb99b.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureStore/6fb99b.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,15 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWTexture3D<float4> arg_0 : register(u0, space1);
+void textureStore_6fb99b() {
+  arg_0[(1).xxx] = (1.0f).xxxx;
+}
+
+void fragment_main() {
+  textureStore_6fb99b();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  textureStore_6fb99b();
+}
+
diff --git a/test/tint/builtins/gen/literal/textureStore/6fb99b.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/textureStore/6fb99b.wgsl.expected.ir.fxc.hlsl
index 685a9ee..6926191 100644
--- a/test/tint/builtins/gen/literal/textureStore/6fb99b.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureStore/6fb99b.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,15 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWTexture3D<float4> arg_0 : register(u0, space1);
+void textureStore_6fb99b() {
+  arg_0[(1).xxx] = (1.0f).xxxx;
+}
+
+void fragment_main() {
+  textureStore_6fb99b();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  textureStore_6fb99b();
+}
+
diff --git a/test/tint/builtins/gen/literal/textureStore/6fd2b1.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/textureStore/6fd2b1.wgsl.expected.ir.dxc.hlsl
index 685a9ee..e7258c1 100644
--- a/test/tint/builtins/gen/literal/textureStore/6fd2b1.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureStore/6fd2b1.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,15 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWTexture1D<float4> arg_0 : register(u0, space1);
+void textureStore_6fd2b1() {
+  arg_0[1u] = (1.0f).xxxx;
+}
+
+void fragment_main() {
+  textureStore_6fd2b1();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  textureStore_6fd2b1();
+}
+
diff --git a/test/tint/builtins/gen/literal/textureStore/6fd2b1.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/textureStore/6fd2b1.wgsl.expected.ir.fxc.hlsl
index 685a9ee..e7258c1 100644
--- a/test/tint/builtins/gen/literal/textureStore/6fd2b1.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureStore/6fd2b1.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,15 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWTexture1D<float4> arg_0 : register(u0, space1);
+void textureStore_6fd2b1() {
+  arg_0[1u] = (1.0f).xxxx;
+}
+
+void fragment_main() {
+  textureStore_6fd2b1();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  textureStore_6fd2b1();
+}
+
diff --git a/test/tint/builtins/gen/literal/textureStore/704e1f.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/textureStore/704e1f.wgsl.expected.ir.dxc.hlsl
index 685a9ee..6e085e7 100644
--- a/test/tint/builtins/gen/literal/textureStore/704e1f.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureStore/704e1f.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,16 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWTexture2DArray<float4> arg_0 : register(u0, space1);
+void textureStore_704e1f() {
+  RWTexture2DArray<float4> v = arg_0;
+  v[int3((1).xx, int(1))] = (1.0f).xxxx;
+}
+
+void fragment_main() {
+  textureStore_704e1f();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  textureStore_704e1f();
+}
+
diff --git a/test/tint/builtins/gen/literal/textureStore/704e1f.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/textureStore/704e1f.wgsl.expected.ir.fxc.hlsl
index 685a9ee..6e085e7 100644
--- a/test/tint/builtins/gen/literal/textureStore/704e1f.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureStore/704e1f.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,16 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWTexture2DArray<float4> arg_0 : register(u0, space1);
+void textureStore_704e1f() {
+  RWTexture2DArray<float4> v = arg_0;
+  v[int3((1).xx, int(1))] = (1.0f).xxxx;
+}
+
+void fragment_main() {
+  textureStore_704e1f();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  textureStore_704e1f();
+}
+
diff --git a/test/tint/builtins/gen/literal/textureStore/706236.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/textureStore/706236.wgsl.expected.ir.dxc.hlsl
index 685a9ee..4b8d974 100644
--- a/test/tint/builtins/gen/literal/textureStore/706236.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureStore/706236.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,15 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWTexture1D<float4> arg_0 : register(u0, space1);
+void textureStore_706236() {
+  arg_0[1] = (1.0f).xxxx;
+}
+
+void fragment_main() {
+  textureStore_706236();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  textureStore_706236();
+}
+
diff --git a/test/tint/builtins/gen/literal/textureStore/706236.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/textureStore/706236.wgsl.expected.ir.fxc.hlsl
index 685a9ee..4b8d974 100644
--- a/test/tint/builtins/gen/literal/textureStore/706236.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureStore/706236.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,15 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWTexture1D<float4> arg_0 : register(u0, space1);
+void textureStore_706236() {
+  arg_0[1] = (1.0f).xxxx;
+}
+
+void fragment_main() {
+  textureStore_706236();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  textureStore_706236();
+}
+
diff --git a/test/tint/builtins/gen/literal/textureStore/706560.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/textureStore/706560.wgsl.expected.ir.dxc.hlsl
index 685a9ee..20e2f1f 100644
--- a/test/tint/builtins/gen/literal/textureStore/706560.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureStore/706560.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,16 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWTexture2DArray<uint4> arg_0 : register(u0, space1);
+void textureStore_706560() {
+  RWTexture2DArray<uint4> v = arg_0;
+  v[int3((1).xx, int(1u))] = (1u).xxxx;
+}
+
+void fragment_main() {
+  textureStore_706560();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  textureStore_706560();
+}
+
diff --git a/test/tint/builtins/gen/literal/textureStore/706560.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/textureStore/706560.wgsl.expected.ir.fxc.hlsl
index 685a9ee..20e2f1f 100644
--- a/test/tint/builtins/gen/literal/textureStore/706560.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureStore/706560.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,16 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWTexture2DArray<uint4> arg_0 : register(u0, space1);
+void textureStore_706560() {
+  RWTexture2DArray<uint4> v = arg_0;
+  v[int3((1).xx, int(1u))] = (1u).xxxx;
+}
+
+void fragment_main() {
+  textureStore_706560();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  textureStore_706560();
+}
+
diff --git a/test/tint/builtins/gen/literal/textureStore/726472.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/textureStore/726472.wgsl.expected.ir.dxc.hlsl
index 685a9ee..8704e05 100644
--- a/test/tint/builtins/gen/literal/textureStore/726472.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureStore/726472.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,15 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWTexture2D<float4> arg_0 : register(u0, space1);
+void textureStore_726472() {
+  arg_0[(1u).xx] = (1.0f).xxxx;
+}
+
+void fragment_main() {
+  textureStore_726472();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  textureStore_726472();
+}
+
diff --git a/test/tint/builtins/gen/literal/textureStore/726472.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/textureStore/726472.wgsl.expected.ir.fxc.hlsl
index 685a9ee..8704e05 100644
--- a/test/tint/builtins/gen/literal/textureStore/726472.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureStore/726472.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,15 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWTexture2D<float4> arg_0 : register(u0, space1);
+void textureStore_726472() {
+  arg_0[(1u).xx] = (1.0f).xxxx;
+}
+
+void fragment_main() {
+  textureStore_726472();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  textureStore_726472();
+}
+
diff --git a/test/tint/builtins/gen/literal/textureStore/726d6d.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/textureStore/726d6d.wgsl.expected.ir.dxc.hlsl
index 685a9ee..fc3d71e 100644
--- a/test/tint/builtins/gen/literal/textureStore/726d6d.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureStore/726d6d.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,15 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWTexture2D<float4> arg_0 : register(u0, space1);
+void textureStore_726d6d() {
+  arg_0[(1u).xx] = (1.0f).xxxx;
+}
+
+void fragment_main() {
+  textureStore_726d6d();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  textureStore_726d6d();
+}
+
diff --git a/test/tint/builtins/gen/literal/textureStore/726d6d.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/textureStore/726d6d.wgsl.expected.ir.fxc.hlsl
index 685a9ee..fc3d71e 100644
--- a/test/tint/builtins/gen/literal/textureStore/726d6d.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureStore/726d6d.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,15 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWTexture2D<float4> arg_0 : register(u0, space1);
+void textureStore_726d6d() {
+  arg_0[(1u).xx] = (1.0f).xxxx;
+}
+
+void fragment_main() {
+  textureStore_726d6d();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  textureStore_726d6d();
+}
+
diff --git a/test/tint/builtins/gen/literal/textureStore/72fa64.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/textureStore/72fa64.wgsl.expected.ir.dxc.hlsl
index 685a9ee..9d4efc4 100644
--- a/test/tint/builtins/gen/literal/textureStore/72fa64.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureStore/72fa64.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,16 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWTexture2DArray<int4> arg_0 : register(u0, space1);
+void textureStore_72fa64() {
+  RWTexture2DArray<int4> v = arg_0;
+  v[uint3((1u).xx, uint(1))] = (1).xxxx;
+}
+
+void fragment_main() {
+  textureStore_72fa64();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  textureStore_72fa64();
+}
+
diff --git a/test/tint/builtins/gen/literal/textureStore/72fa64.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/textureStore/72fa64.wgsl.expected.ir.fxc.hlsl
index 685a9ee..9d4efc4 100644
--- a/test/tint/builtins/gen/literal/textureStore/72fa64.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureStore/72fa64.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,16 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWTexture2DArray<int4> arg_0 : register(u0, space1);
+void textureStore_72fa64() {
+  RWTexture2DArray<int4> v = arg_0;
+  v[uint3((1u).xx, uint(1))] = (1).xxxx;
+}
+
+void fragment_main() {
+  textureStore_72fa64();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  textureStore_72fa64();
+}
+
diff --git a/test/tint/builtins/gen/literal/textureStore/731349.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/textureStore/731349.wgsl.expected.ir.dxc.hlsl
index 685a9ee..1ac1904 100644
--- a/test/tint/builtins/gen/literal/textureStore/731349.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureStore/731349.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,15 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWTexture2D<float4> arg_0 : register(u0, space1);
+void textureStore_731349() {
+  arg_0[(1).xx] = (1.0f).xxxx;
+}
+
+void fragment_main() {
+  textureStore_731349();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  textureStore_731349();
+}
+
diff --git a/test/tint/builtins/gen/literal/textureStore/731349.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/textureStore/731349.wgsl.expected.ir.fxc.hlsl
index 685a9ee..1ac1904 100644
--- a/test/tint/builtins/gen/literal/textureStore/731349.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureStore/731349.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,15 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWTexture2D<float4> arg_0 : register(u0, space1);
+void textureStore_731349() {
+  arg_0[(1).xx] = (1.0f).xxxx;
+}
+
+void fragment_main() {
+  textureStore_731349();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  textureStore_731349();
+}
+
diff --git a/test/tint/builtins/gen/literal/textureStore/73a735.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/textureStore/73a735.wgsl.expected.ir.dxc.hlsl
index 685a9ee..cb91155 100644
--- a/test/tint/builtins/gen/literal/textureStore/73a735.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureStore/73a735.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,16 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWTexture2DArray<int4> arg_0 : register(u0, space1);
+void textureStore_73a735() {
+  RWTexture2DArray<int4> v = arg_0;
+  v[uint3((1u).xx, uint(1))] = (1).xxxx;
+}
+
+void fragment_main() {
+  textureStore_73a735();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  textureStore_73a735();
+}
+
diff --git a/test/tint/builtins/gen/literal/textureStore/73a735.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/textureStore/73a735.wgsl.expected.ir.fxc.hlsl
index 685a9ee..cb91155 100644
--- a/test/tint/builtins/gen/literal/textureStore/73a735.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureStore/73a735.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,16 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWTexture2DArray<int4> arg_0 : register(u0, space1);
+void textureStore_73a735() {
+  RWTexture2DArray<int4> v = arg_0;
+  v[uint3((1u).xx, uint(1))] = (1).xxxx;
+}
+
+void fragment_main() {
+  textureStore_73a735();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  textureStore_73a735();
+}
+
diff --git a/test/tint/builtins/gen/literal/textureStore/73bbbc.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/textureStore/73bbbc.wgsl.expected.ir.dxc.hlsl
index 685a9ee..5fe9bdf 100644
--- a/test/tint/builtins/gen/literal/textureStore/73bbbc.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureStore/73bbbc.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,15 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWTexture2D<float4> arg_0 : register(u0, space1);
+void textureStore_73bbbc() {
+  arg_0[(1u).xx] = (1.0f).xxxx;
+}
+
+void fragment_main() {
+  textureStore_73bbbc();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  textureStore_73bbbc();
+}
+
diff --git a/test/tint/builtins/gen/literal/textureStore/73bbbc.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/textureStore/73bbbc.wgsl.expected.ir.fxc.hlsl
index 685a9ee..5fe9bdf 100644
--- a/test/tint/builtins/gen/literal/textureStore/73bbbc.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureStore/73bbbc.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,15 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWTexture2D<float4> arg_0 : register(u0, space1);
+void textureStore_73bbbc() {
+  arg_0[(1u).xx] = (1.0f).xxxx;
+}
+
+void fragment_main() {
+  textureStore_73bbbc();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  textureStore_73bbbc();
+}
+
diff --git a/test/tint/builtins/gen/literal/textureStore/74886f.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/textureStore/74886f.wgsl.expected.ir.dxc.hlsl
index 685a9ee..c2d13d6d 100644
--- a/test/tint/builtins/gen/literal/textureStore/74886f.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureStore/74886f.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,15 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWTexture1D<float4> arg_0 : register(u0, space1);
+void textureStore_74886f() {
+  arg_0[1] = (1.0f).xxxx;
+}
+
+void fragment_main() {
+  textureStore_74886f();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  textureStore_74886f();
+}
+
diff --git a/test/tint/builtins/gen/literal/textureStore/74886f.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/textureStore/74886f.wgsl.expected.ir.fxc.hlsl
index 685a9ee..c2d13d6d 100644
--- a/test/tint/builtins/gen/literal/textureStore/74886f.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureStore/74886f.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,15 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWTexture1D<float4> arg_0 : register(u0, space1);
+void textureStore_74886f() {
+  arg_0[1] = (1.0f).xxxx;
+}
+
+void fragment_main() {
+  textureStore_74886f();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  textureStore_74886f();
+}
+
diff --git a/test/tint/builtins/gen/literal/textureStore/751256.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/textureStore/751256.wgsl.expected.ir.dxc.hlsl
index 685a9ee..e19b185 100644
--- a/test/tint/builtins/gen/literal/textureStore/751256.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureStore/751256.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,15 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWTexture1D<uint4> arg_0 : register(u0, space1);
+void textureStore_751256() {
+  arg_0[1] = (1u).xxxx;
+}
+
+void fragment_main() {
+  textureStore_751256();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  textureStore_751256();
+}
+
diff --git a/test/tint/builtins/gen/literal/textureStore/751256.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/textureStore/751256.wgsl.expected.ir.fxc.hlsl
index 685a9ee..e19b185 100644
--- a/test/tint/builtins/gen/literal/textureStore/751256.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureStore/751256.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,15 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWTexture1D<uint4> arg_0 : register(u0, space1);
+void textureStore_751256() {
+  arg_0[1] = (1u).xxxx;
+}
+
+void fragment_main() {
+  textureStore_751256();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  textureStore_751256();
+}
+
diff --git a/test/tint/builtins/gen/literal/textureStore/752da6.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/textureStore/752da6.wgsl.expected.ir.dxc.hlsl
index 685a9ee..8c7161e 100644
--- a/test/tint/builtins/gen/literal/textureStore/752da6.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureStore/752da6.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,15 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWTexture2D<int4> arg_0 : register(u0, space1);
+void textureStore_752da6() {
+  arg_0[(1).xx] = (1).xxxx;
+}
+
+void fragment_main() {
+  textureStore_752da6();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  textureStore_752da6();
+}
+
diff --git a/test/tint/builtins/gen/literal/textureStore/752da6.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/textureStore/752da6.wgsl.expected.ir.fxc.hlsl
index 685a9ee..8c7161e 100644
--- a/test/tint/builtins/gen/literal/textureStore/752da6.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureStore/752da6.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,15 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWTexture2D<int4> arg_0 : register(u0, space1);
+void textureStore_752da6() {
+  arg_0[(1).xx] = (1).xxxx;
+}
+
+void fragment_main() {
+  textureStore_752da6();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  textureStore_752da6();
+}
+
diff --git a/test/tint/builtins/gen/literal/textureStore/75bbd5.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/textureStore/75bbd5.wgsl.expected.ir.dxc.hlsl
index 685a9ee..517930d 100644
--- a/test/tint/builtins/gen/literal/textureStore/75bbd5.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureStore/75bbd5.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,16 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWTexture2DArray<uint4> arg_0 : register(u0, space1);
+void textureStore_75bbd5() {
+  RWTexture2DArray<uint4> v = arg_0;
+  v[int3((1).xx, int(1u))] = (1u).xxxx;
+}
+
+void fragment_main() {
+  textureStore_75bbd5();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  textureStore_75bbd5();
+}
+
diff --git a/test/tint/builtins/gen/literal/textureStore/75bbd5.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/textureStore/75bbd5.wgsl.expected.ir.fxc.hlsl
index 685a9ee..517930d 100644
--- a/test/tint/builtins/gen/literal/textureStore/75bbd5.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureStore/75bbd5.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,16 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWTexture2DArray<uint4> arg_0 : register(u0, space1);
+void textureStore_75bbd5() {
+  RWTexture2DArray<uint4> v = arg_0;
+  v[int3((1).xx, int(1u))] = (1u).xxxx;
+}
+
+void fragment_main() {
+  textureStore_75bbd5();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  textureStore_75bbd5();
+}
+
diff --git a/test/tint/builtins/gen/literal/textureStore/76affd.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/textureStore/76affd.wgsl.expected.ir.dxc.hlsl
index 685a9ee..46d5d8c 100644
--- a/test/tint/builtins/gen/literal/textureStore/76affd.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureStore/76affd.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,16 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWTexture2DArray<float4> arg_0 : register(u0, space1);
+void textureStore_76affd() {
+  RWTexture2DArray<float4> v = arg_0;
+  v[int3((1).xx, int(1u))] = (1.0f).xxxx;
+}
+
+void fragment_main() {
+  textureStore_76affd();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  textureStore_76affd();
+}
+
diff --git a/test/tint/builtins/gen/literal/textureStore/76affd.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/textureStore/76affd.wgsl.expected.ir.fxc.hlsl
index 685a9ee..46d5d8c 100644
--- a/test/tint/builtins/gen/literal/textureStore/76affd.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureStore/76affd.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,16 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWTexture2DArray<float4> arg_0 : register(u0, space1);
+void textureStore_76affd() {
+  RWTexture2DArray<float4> v = arg_0;
+  v[int3((1).xx, int(1u))] = (1.0f).xxxx;
+}
+
+void fragment_main() {
+  textureStore_76affd();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  textureStore_76affd();
+}
+
diff --git a/test/tint/builtins/gen/literal/textureStore/7792fa.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/textureStore/7792fa.wgsl.expected.ir.dxc.hlsl
index 685a9ee..076b99b 100644
--- a/test/tint/builtins/gen/literal/textureStore/7792fa.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureStore/7792fa.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,15 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWTexture3D<int4> arg_0 : register(u0, space1);
+void textureStore_7792fa() {
+  arg_0[(1u).xxx] = (1).xxxx;
+}
+
+void fragment_main() {
+  textureStore_7792fa();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  textureStore_7792fa();
+}
+
diff --git a/test/tint/builtins/gen/literal/textureStore/7792fa.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/textureStore/7792fa.wgsl.expected.ir.fxc.hlsl
index 685a9ee..076b99b 100644
--- a/test/tint/builtins/gen/literal/textureStore/7792fa.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureStore/7792fa.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,15 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWTexture3D<int4> arg_0 : register(u0, space1);
+void textureStore_7792fa() {
+  arg_0[(1u).xxx] = (1).xxxx;
+}
+
+void fragment_main() {
+  textureStore_7792fa();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  textureStore_7792fa();
+}
+
diff --git a/test/tint/builtins/gen/literal/textureStore/779d14.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/textureStore/779d14.wgsl.expected.ir.dxc.hlsl
index 685a9ee..1e30062 100644
--- a/test/tint/builtins/gen/literal/textureStore/779d14.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureStore/779d14.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,16 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWTexture2DArray<uint4> arg_0 : register(u0, space1);
+void textureStore_779d14() {
+  RWTexture2DArray<uint4> v = arg_0;
+  v[uint3((1u).xx, uint(1u))] = (1u).xxxx;
+}
+
+void fragment_main() {
+  textureStore_779d14();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  textureStore_779d14();
+}
+
diff --git a/test/tint/builtins/gen/literal/textureStore/779d14.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/textureStore/779d14.wgsl.expected.ir.fxc.hlsl
index 685a9ee..1e30062 100644
--- a/test/tint/builtins/gen/literal/textureStore/779d14.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureStore/779d14.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,16 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWTexture2DArray<uint4> arg_0 : register(u0, space1);
+void textureStore_779d14() {
+  RWTexture2DArray<uint4> v = arg_0;
+  v[uint3((1u).xx, uint(1u))] = (1u).xxxx;
+}
+
+void fragment_main() {
+  textureStore_779d14();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  textureStore_779d14();
+}
+
diff --git a/test/tint/builtins/gen/literal/textureStore/77c0ae.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/textureStore/77c0ae.wgsl.expected.ir.dxc.hlsl
index 685a9ee..b579607 100644
--- a/test/tint/builtins/gen/literal/textureStore/77c0ae.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureStore/77c0ae.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,15 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWTexture2D<uint4> arg_0 : register(u0, space1);
+void textureStore_77c0ae() {
+  arg_0[(1).xx] = (1u).xxxx;
+}
+
+void fragment_main() {
+  textureStore_77c0ae();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  textureStore_77c0ae();
+}
+
diff --git a/test/tint/builtins/gen/literal/textureStore/77c0ae.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/textureStore/77c0ae.wgsl.expected.ir.fxc.hlsl
index 685a9ee..b579607 100644
--- a/test/tint/builtins/gen/literal/textureStore/77c0ae.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureStore/77c0ae.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,15 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWTexture2D<uint4> arg_0 : register(u0, space1);
+void textureStore_77c0ae() {
+  arg_0[(1).xx] = (1u).xxxx;
+}
+
+void fragment_main() {
+  textureStore_77c0ae();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  textureStore_77c0ae();
+}
+
diff --git a/test/tint/builtins/gen/literal/textureStore/7b8f86.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/textureStore/7b8f86.wgsl.expected.ir.dxc.hlsl
index 685a9ee..9478c92 100644
--- a/test/tint/builtins/gen/literal/textureStore/7b8f86.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureStore/7b8f86.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,15 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWTexture3D<float4> arg_0 : register(u0, space1);
+void textureStore_7b8f86() {
+  arg_0[(1u).xxx] = (1.0f).xxxx;
+}
+
+void fragment_main() {
+  textureStore_7b8f86();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  textureStore_7b8f86();
+}
+
diff --git a/test/tint/builtins/gen/literal/textureStore/7b8f86.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/textureStore/7b8f86.wgsl.expected.ir.fxc.hlsl
index 685a9ee..9478c92 100644
--- a/test/tint/builtins/gen/literal/textureStore/7b8f86.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureStore/7b8f86.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,15 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWTexture3D<float4> arg_0 : register(u0, space1);
+void textureStore_7b8f86() {
+  arg_0[(1u).xxx] = (1.0f).xxxx;
+}
+
+void fragment_main() {
+  textureStore_7b8f86();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  textureStore_7b8f86();
+}
+
diff --git a/test/tint/builtins/gen/literal/textureStore/7bb211.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/textureStore/7bb211.wgsl.expected.ir.dxc.hlsl
index 685a9ee..4086948 100644
--- a/test/tint/builtins/gen/literal/textureStore/7bb211.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureStore/7bb211.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,16 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWTexture2DArray<int4> arg_0 : register(u0, space1);
+void textureStore_7bb211() {
+  RWTexture2DArray<int4> v = arg_0;
+  v[int3((1).xx, int(1u))] = (1).xxxx;
+}
+
+void fragment_main() {
+  textureStore_7bb211();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  textureStore_7bb211();
+}
+
diff --git a/test/tint/builtins/gen/literal/textureStore/7bb211.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/textureStore/7bb211.wgsl.expected.ir.fxc.hlsl
index 685a9ee..4086948 100644
--- a/test/tint/builtins/gen/literal/textureStore/7bb211.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureStore/7bb211.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,16 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWTexture2DArray<int4> arg_0 : register(u0, space1);
+void textureStore_7bb211() {
+  RWTexture2DArray<int4> v = arg_0;
+  v[int3((1).xx, int(1u))] = (1).xxxx;
+}
+
+void fragment_main() {
+  textureStore_7bb211();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  textureStore_7bb211();
+}
+
diff --git a/test/tint/builtins/gen/literal/textureStore/7cec8d.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/textureStore/7cec8d.wgsl.expected.ir.dxc.hlsl
index 685a9ee..a090acb 100644
--- a/test/tint/builtins/gen/literal/textureStore/7cec8d.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureStore/7cec8d.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,16 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWTexture2DArray<int4> arg_0 : register(u0, space1);
+void textureStore_7cec8d() {
+  RWTexture2DArray<int4> v = arg_0;
+  v[int3((1).xx, int(1))] = (1).xxxx;
+}
+
+void fragment_main() {
+  textureStore_7cec8d();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  textureStore_7cec8d();
+}
+
diff --git a/test/tint/builtins/gen/literal/textureStore/7cec8d.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/textureStore/7cec8d.wgsl.expected.ir.fxc.hlsl
index 685a9ee..a090acb 100644
--- a/test/tint/builtins/gen/literal/textureStore/7cec8d.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureStore/7cec8d.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,16 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWTexture2DArray<int4> arg_0 : register(u0, space1);
+void textureStore_7cec8d() {
+  RWTexture2DArray<int4> v = arg_0;
+  v[int3((1).xx, int(1))] = (1).xxxx;
+}
+
+void fragment_main() {
+  textureStore_7cec8d();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  textureStore_7cec8d();
+}
+
diff --git a/test/tint/builtins/gen/literal/textureStore/7cf6e7.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/textureStore/7cf6e7.wgsl.expected.ir.dxc.hlsl
index 685a9ee..bcfd4b6 100644
--- a/test/tint/builtins/gen/literal/textureStore/7cf6e7.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureStore/7cf6e7.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,15 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWTexture2D<float4> arg_0 : register(u0, space1);
+void textureStore_7cf6e7() {
+  arg_0[(1u).xx] = (1.0f).xxxx;
+}
+
+void fragment_main() {
+  textureStore_7cf6e7();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  textureStore_7cf6e7();
+}
+
diff --git a/test/tint/builtins/gen/literal/textureStore/7cf6e7.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/textureStore/7cf6e7.wgsl.expected.ir.fxc.hlsl
index 685a9ee..bcfd4b6 100644
--- a/test/tint/builtins/gen/literal/textureStore/7cf6e7.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureStore/7cf6e7.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,15 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWTexture2D<float4> arg_0 : register(u0, space1);
+void textureStore_7cf6e7() {
+  arg_0[(1u).xx] = (1.0f).xxxx;
+}
+
+void fragment_main() {
+  textureStore_7cf6e7();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  textureStore_7cf6e7();
+}
+
diff --git a/test/tint/builtins/gen/literal/textureStore/7d10e0.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/textureStore/7d10e0.wgsl.expected.ir.dxc.hlsl
index 685a9ee..b87e1a6 100644
--- a/test/tint/builtins/gen/literal/textureStore/7d10e0.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureStore/7d10e0.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,15 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWTexture1D<float4> arg_0 : register(u0, space1);
+void textureStore_7d10e0() {
+  arg_0[1u] = (1.0f).xxxx;
+}
+
+void fragment_main() {
+  textureStore_7d10e0();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  textureStore_7d10e0();
+}
+
diff --git a/test/tint/builtins/gen/literal/textureStore/7d10e0.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/textureStore/7d10e0.wgsl.expected.ir.fxc.hlsl
index 685a9ee..b87e1a6 100644
--- a/test/tint/builtins/gen/literal/textureStore/7d10e0.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureStore/7d10e0.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,15 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWTexture1D<float4> arg_0 : register(u0, space1);
+void textureStore_7d10e0() {
+  arg_0[1u] = (1.0f).xxxx;
+}
+
+void fragment_main() {
+  textureStore_7d10e0();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  textureStore_7d10e0();
+}
+
diff --git a/test/tint/builtins/gen/literal/textureStore/7dd042.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/textureStore/7dd042.wgsl.expected.ir.dxc.hlsl
index 685a9ee..6028c87 100644
--- a/test/tint/builtins/gen/literal/textureStore/7dd042.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureStore/7dd042.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,16 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWTexture2DArray<int4> arg_0 : register(u0, space1);
+void textureStore_7dd042() {
+  RWTexture2DArray<int4> v = arg_0;
+  v[int3((1).xx, int(1))] = (1).xxxx;
+}
+
+void fragment_main() {
+  textureStore_7dd042();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  textureStore_7dd042();
+}
+
diff --git a/test/tint/builtins/gen/literal/textureStore/7dd042.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/textureStore/7dd042.wgsl.expected.ir.fxc.hlsl
index 685a9ee..6028c87 100644
--- a/test/tint/builtins/gen/literal/textureStore/7dd042.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureStore/7dd042.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,16 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWTexture2DArray<int4> arg_0 : register(u0, space1);
+void textureStore_7dd042() {
+  RWTexture2DArray<int4> v = arg_0;
+  v[int3((1).xx, int(1))] = (1).xxxx;
+}
+
+void fragment_main() {
+  textureStore_7dd042();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  textureStore_7dd042();
+}
+
diff --git a/test/tint/builtins/gen/literal/textureStore/7e787a.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/textureStore/7e787a.wgsl.expected.ir.dxc.hlsl
index 685a9ee..98af2e8 100644
--- a/test/tint/builtins/gen/literal/textureStore/7e787a.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureStore/7e787a.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,15 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWTexture3D<float4> arg_0 : register(u0, space1);
+void textureStore_7e787a() {
+  arg_0[(1).xxx] = (1.0f).xxxx;
+}
+
+void fragment_main() {
+  textureStore_7e787a();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  textureStore_7e787a();
+}
+
diff --git a/test/tint/builtins/gen/literal/textureStore/7e787a.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/textureStore/7e787a.wgsl.expected.ir.fxc.hlsl
index 685a9ee..98af2e8 100644
--- a/test/tint/builtins/gen/literal/textureStore/7e787a.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureStore/7e787a.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,15 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWTexture3D<float4> arg_0 : register(u0, space1);
+void textureStore_7e787a() {
+  arg_0[(1).xxx] = (1.0f).xxxx;
+}
+
+void fragment_main() {
+  textureStore_7e787a();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  textureStore_7e787a();
+}
+
diff --git a/test/tint/builtins/gen/literal/textureStore/7f7fae.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/textureStore/7f7fae.wgsl.expected.ir.dxc.hlsl
index 685a9ee..2d8004d 100644
--- a/test/tint/builtins/gen/literal/textureStore/7f7fae.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureStore/7f7fae.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,15 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWTexture1D<float4> arg_0 : register(u0, space1);
+void textureStore_7f7fae() {
+  arg_0[1] = (1.0f).xxxx;
+}
+
+void fragment_main() {
+  textureStore_7f7fae();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  textureStore_7f7fae();
+}
+
diff --git a/test/tint/builtins/gen/literal/textureStore/7f7fae.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/textureStore/7f7fae.wgsl.expected.ir.fxc.hlsl
index 685a9ee..2d8004d 100644
--- a/test/tint/builtins/gen/literal/textureStore/7f7fae.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureStore/7f7fae.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,15 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWTexture1D<float4> arg_0 : register(u0, space1);
+void textureStore_7f7fae() {
+  arg_0[1] = (1.0f).xxxx;
+}
+
+void fragment_main() {
+  textureStore_7f7fae();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  textureStore_7f7fae();
+}
+
diff --git a/test/tint/builtins/gen/literal/textureStore/803a10.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/textureStore/803a10.wgsl.expected.ir.dxc.hlsl
index 685a9ee..a08fa70 100644
--- a/test/tint/builtins/gen/literal/textureStore/803a10.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureStore/803a10.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,15 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWTexture3D<float4> arg_0 : register(u0, space1);
+void textureStore_803a10() {
+  arg_0[(1u).xxx] = (1.0f).xxxx;
+}
+
+void fragment_main() {
+  textureStore_803a10();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  textureStore_803a10();
+}
+
diff --git a/test/tint/builtins/gen/literal/textureStore/803a10.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/textureStore/803a10.wgsl.expected.ir.fxc.hlsl
index 685a9ee..a08fa70 100644
--- a/test/tint/builtins/gen/literal/textureStore/803a10.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureStore/803a10.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,15 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWTexture3D<float4> arg_0 : register(u0, space1);
+void textureStore_803a10() {
+  arg_0[(1u).xxx] = (1.0f).xxxx;
+}
+
+void fragment_main() {
+  textureStore_803a10();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  textureStore_803a10();
+}
+
diff --git a/test/tint/builtins/gen/literal/textureStore/804942.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/textureStore/804942.wgsl.expected.ir.dxc.hlsl
index 685a9ee..024ccda8 100644
--- a/test/tint/builtins/gen/literal/textureStore/804942.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureStore/804942.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,15 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWTexture2D<int4> arg_0 : register(u0, space1);
+void textureStore_804942() {
+  arg_0[(1).xx] = (1).xxxx;
+}
+
+void fragment_main() {
+  textureStore_804942();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  textureStore_804942();
+}
+
diff --git a/test/tint/builtins/gen/literal/textureStore/804942.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/textureStore/804942.wgsl.expected.ir.fxc.hlsl
index 685a9ee..024ccda8 100644
--- a/test/tint/builtins/gen/literal/textureStore/804942.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureStore/804942.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,15 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWTexture2D<int4> arg_0 : register(u0, space1);
+void textureStore_804942() {
+  arg_0[(1).xx] = (1).xxxx;
+}
+
+void fragment_main() {
+  textureStore_804942();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  textureStore_804942();
+}
+
diff --git a/test/tint/builtins/gen/literal/textureStore/805dae.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/textureStore/805dae.wgsl.expected.ir.dxc.hlsl
index 685a9ee..1986f1d 100644
--- a/test/tint/builtins/gen/literal/textureStore/805dae.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureStore/805dae.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,15 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWTexture2D<float4> arg_0 : register(u0, space1);
+void textureStore_805dae() {
+  arg_0[(1).xx] = (1.0f).xxxx;
+}
+
+void fragment_main() {
+  textureStore_805dae();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  textureStore_805dae();
+}
+
diff --git a/test/tint/builtins/gen/literal/textureStore/805dae.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/textureStore/805dae.wgsl.expected.ir.fxc.hlsl
index 685a9ee..1986f1d 100644
--- a/test/tint/builtins/gen/literal/textureStore/805dae.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureStore/805dae.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,15 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWTexture2D<float4> arg_0 : register(u0, space1);
+void textureStore_805dae() {
+  arg_0[(1).xx] = (1.0f).xxxx;
+}
+
+void fragment_main() {
+  textureStore_805dae();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  textureStore_805dae();
+}
+
diff --git a/test/tint/builtins/gen/literal/textureStore/80bf1d.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/textureStore/80bf1d.wgsl.expected.ir.dxc.hlsl
index 685a9ee..96dfff1 100644
--- a/test/tint/builtins/gen/literal/textureStore/80bf1d.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureStore/80bf1d.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,15 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWTexture2D<int4> arg_0 : register(u0, space1);
+void textureStore_80bf1d() {
+  arg_0[(1).xx] = (1).xxxx;
+}
+
+void fragment_main() {
+  textureStore_80bf1d();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  textureStore_80bf1d();
+}
+
diff --git a/test/tint/builtins/gen/literal/textureStore/80bf1d.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/textureStore/80bf1d.wgsl.expected.ir.fxc.hlsl
index 685a9ee..96dfff1 100644
--- a/test/tint/builtins/gen/literal/textureStore/80bf1d.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureStore/80bf1d.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,15 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWTexture2D<int4> arg_0 : register(u0, space1);
+void textureStore_80bf1d() {
+  arg_0[(1).xx] = (1).xxxx;
+}
+
+void fragment_main() {
+  textureStore_80bf1d();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  textureStore_80bf1d();
+}
+
diff --git a/test/tint/builtins/gen/literal/textureStore/818df6.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/textureStore/818df6.wgsl.expected.ir.dxc.hlsl
index 685a9ee..8840a5e 100644
--- a/test/tint/builtins/gen/literal/textureStore/818df6.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureStore/818df6.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,15 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWTexture3D<float4> arg_0 : register(u0, space1);
+void textureStore_818df6() {
+  arg_0[(1u).xxx] = (1.0f).xxxx;
+}
+
+void fragment_main() {
+  textureStore_818df6();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  textureStore_818df6();
+}
+
diff --git a/test/tint/builtins/gen/literal/textureStore/818df6.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/textureStore/818df6.wgsl.expected.ir.fxc.hlsl
index 685a9ee..8840a5e 100644
--- a/test/tint/builtins/gen/literal/textureStore/818df6.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureStore/818df6.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,15 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWTexture3D<float4> arg_0 : register(u0, space1);
+void textureStore_818df6() {
+  arg_0[(1u).xxx] = (1.0f).xxxx;
+}
+
+void fragment_main() {
+  textureStore_818df6();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  textureStore_818df6();
+}
+
diff --git a/test/tint/builtins/gen/literal/textureStore/81ae31.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/textureStore/81ae31.wgsl.expected.ir.dxc.hlsl
index 685a9ee..72b4d57 100644
--- a/test/tint/builtins/gen/literal/textureStore/81ae31.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureStore/81ae31.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,16 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWTexture2DArray<float4> arg_0 : register(u0, space1);
+void textureStore_81ae31() {
+  RWTexture2DArray<float4> v = arg_0;
+  v[int3((1).xx, int(1))] = (1.0f).xxxx;
+}
+
+void fragment_main() {
+  textureStore_81ae31();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  textureStore_81ae31();
+}
+
diff --git a/test/tint/builtins/gen/literal/textureStore/81ae31.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/textureStore/81ae31.wgsl.expected.ir.fxc.hlsl
index 685a9ee..72b4d57 100644
--- a/test/tint/builtins/gen/literal/textureStore/81ae31.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureStore/81ae31.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,16 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWTexture2DArray<float4> arg_0 : register(u0, space1);
+void textureStore_81ae31() {
+  RWTexture2DArray<float4> v = arg_0;
+  v[int3((1).xx, int(1))] = (1.0f).xxxx;
+}
+
+void fragment_main() {
+  textureStore_81ae31();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  textureStore_81ae31();
+}
+
diff --git a/test/tint/builtins/gen/literal/textureStore/820272.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/textureStore/820272.wgsl.expected.ir.dxc.hlsl
index 685a9ee..609e398 100644
--- a/test/tint/builtins/gen/literal/textureStore/820272.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureStore/820272.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,16 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWTexture2DArray<int4> arg_0 : register(u0, space1);
+void textureStore_820272() {
+  RWTexture2DArray<int4> v = arg_0;
+  v[int3((1).xx, int(1u))] = (1).xxxx;
+}
+
+void fragment_main() {
+  textureStore_820272();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  textureStore_820272();
+}
+
diff --git a/test/tint/builtins/gen/literal/textureStore/820272.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/textureStore/820272.wgsl.expected.ir.fxc.hlsl
index 685a9ee..609e398 100644
--- a/test/tint/builtins/gen/literal/textureStore/820272.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureStore/820272.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,16 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWTexture2DArray<int4> arg_0 : register(u0, space1);
+void textureStore_820272() {
+  RWTexture2DArray<int4> v = arg_0;
+  v[int3((1).xx, int(1u))] = (1).xxxx;
+}
+
+void fragment_main() {
+  textureStore_820272();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  textureStore_820272();
+}
+
diff --git a/test/tint/builtins/gen/literal/textureStore/83bcc1.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/textureStore/83bcc1.wgsl.expected.ir.dxc.hlsl
index 685a9ee..cf93ff5 100644
--- a/test/tint/builtins/gen/literal/textureStore/83bcc1.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureStore/83bcc1.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,15 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWTexture1D<uint4> arg_0 : register(u0, space1);
+void textureStore_83bcc1() {
+  arg_0[1] = (1u).xxxx;
+}
+
+void fragment_main() {
+  textureStore_83bcc1();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  textureStore_83bcc1();
+}
+
diff --git a/test/tint/builtins/gen/literal/textureStore/83bcc1.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/textureStore/83bcc1.wgsl.expected.ir.fxc.hlsl
index 685a9ee..cf93ff5 100644
--- a/test/tint/builtins/gen/literal/textureStore/83bcc1.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureStore/83bcc1.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,15 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWTexture1D<uint4> arg_0 : register(u0, space1);
+void textureStore_83bcc1() {
+  arg_0[1] = (1u).xxxx;
+}
+
+void fragment_main() {
+  textureStore_83bcc1();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  textureStore_83bcc1();
+}
+
diff --git a/test/tint/builtins/gen/literal/textureStore/84d435.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/textureStore/84d435.wgsl.expected.ir.dxc.hlsl
index 685a9ee..fd3ba09 100644
--- a/test/tint/builtins/gen/literal/textureStore/84d435.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureStore/84d435.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,16 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWTexture2DArray<int4> arg_0 : register(u0, space1);
+void textureStore_84d435() {
+  RWTexture2DArray<int4> v = arg_0;
+  v[int3((1).xx, int(1))] = (1).xxxx;
+}
+
+void fragment_main() {
+  textureStore_84d435();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  textureStore_84d435();
+}
+
diff --git a/test/tint/builtins/gen/literal/textureStore/84d435.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/textureStore/84d435.wgsl.expected.ir.fxc.hlsl
index 685a9ee..fd3ba09 100644
--- a/test/tint/builtins/gen/literal/textureStore/84d435.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureStore/84d435.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,16 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWTexture2DArray<int4> arg_0 : register(u0, space1);
+void textureStore_84d435() {
+  RWTexture2DArray<int4> v = arg_0;
+  v[int3((1).xx, int(1))] = (1).xxxx;
+}
+
+void fragment_main() {
+  textureStore_84d435();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  textureStore_84d435();
+}
+
diff --git a/test/tint/builtins/gen/literal/textureStore/84f4f4.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/textureStore/84f4f4.wgsl.expected.ir.dxc.hlsl
index 685a9ee..04ee70b 100644
--- a/test/tint/builtins/gen/literal/textureStore/84f4f4.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureStore/84f4f4.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,16 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWTexture2DArray<int4> arg_0 : register(u0, space1);
+void textureStore_84f4f4() {
+  RWTexture2DArray<int4> v = arg_0;
+  v[uint3((1u).xx, uint(1))] = (1).xxxx;
+}
+
+void fragment_main() {
+  textureStore_84f4f4();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  textureStore_84f4f4();
+}
+
diff --git a/test/tint/builtins/gen/literal/textureStore/84f4f4.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/textureStore/84f4f4.wgsl.expected.ir.fxc.hlsl
index 685a9ee..04ee70b 100644
--- a/test/tint/builtins/gen/literal/textureStore/84f4f4.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureStore/84f4f4.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,16 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWTexture2DArray<int4> arg_0 : register(u0, space1);
+void textureStore_84f4f4() {
+  RWTexture2DArray<int4> v = arg_0;
+  v[uint3((1u).xx, uint(1))] = (1).xxxx;
+}
+
+void fragment_main() {
+  textureStore_84f4f4();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  textureStore_84f4f4();
+}
+
diff --git a/test/tint/builtins/gen/literal/textureStore/8676c9.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/textureStore/8676c9.wgsl.expected.ir.dxc.hlsl
index 685a9ee..91b65dc 100644
--- a/test/tint/builtins/gen/literal/textureStore/8676c9.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureStore/8676c9.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,15 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWTexture1D<uint4> arg_0 : register(u0, space1);
+void textureStore_8676c9() {
+  arg_0[1] = (1u).xxxx;
+}
+
+void fragment_main() {
+  textureStore_8676c9();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  textureStore_8676c9();
+}
+
diff --git a/test/tint/builtins/gen/literal/textureStore/8676c9.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/textureStore/8676c9.wgsl.expected.ir.fxc.hlsl
index 685a9ee..91b65dc 100644
--- a/test/tint/builtins/gen/literal/textureStore/8676c9.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureStore/8676c9.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,15 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWTexture1D<uint4> arg_0 : register(u0, space1);
+void textureStore_8676c9() {
+  arg_0[1] = (1u).xxxx;
+}
+
+void fragment_main() {
+  textureStore_8676c9();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  textureStore_8676c9();
+}
+
diff --git a/test/tint/builtins/gen/literal/textureStore/86f713.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/textureStore/86f713.wgsl.expected.ir.dxc.hlsl
index 685a9ee..fb8d73b 100644
--- a/test/tint/builtins/gen/literal/textureStore/86f713.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureStore/86f713.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,15 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWTexture3D<int4> arg_0 : register(u0, space1);
+void textureStore_86f713() {
+  arg_0[(1).xxx] = (1).xxxx;
+}
+
+void fragment_main() {
+  textureStore_86f713();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  textureStore_86f713();
+}
+
diff --git a/test/tint/builtins/gen/literal/textureStore/86f713.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/textureStore/86f713.wgsl.expected.ir.fxc.hlsl
index 685a9ee..fb8d73b 100644
--- a/test/tint/builtins/gen/literal/textureStore/86f713.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureStore/86f713.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,15 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWTexture3D<int4> arg_0 : register(u0, space1);
+void textureStore_86f713() {
+  arg_0[(1).xxx] = (1).xxxx;
+}
+
+void fragment_main() {
+  textureStore_86f713();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  textureStore_86f713();
+}
+
diff --git a/test/tint/builtins/gen/literal/textureStore/872747.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/textureStore/872747.wgsl.expected.ir.dxc.hlsl
index 685a9ee..8b4cd6e 100644
--- a/test/tint/builtins/gen/literal/textureStore/872747.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureStore/872747.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,15 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWTexture1D<float4> arg_0 : register(u0, space1);
+void textureStore_872747() {
+  arg_0[1] = (1.0f).xxxx;
+}
+
+void fragment_main() {
+  textureStore_872747();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  textureStore_872747();
+}
+
diff --git a/test/tint/builtins/gen/literal/textureStore/872747.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/textureStore/872747.wgsl.expected.ir.fxc.hlsl
index 685a9ee..8b4cd6e 100644
--- a/test/tint/builtins/gen/literal/textureStore/872747.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureStore/872747.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,15 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWTexture1D<float4> arg_0 : register(u0, space1);
+void textureStore_872747() {
+  arg_0[1] = (1.0f).xxxx;
+}
+
+void fragment_main() {
+  textureStore_872747();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  textureStore_872747();
+}
+
diff --git a/test/tint/builtins/gen/literal/textureStore/877c92.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/textureStore/877c92.wgsl.expected.ir.dxc.hlsl
index 685a9ee..42dd584 100644
--- a/test/tint/builtins/gen/literal/textureStore/877c92.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureStore/877c92.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,15 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWTexture1D<float4> arg_0 : register(u0, space1);
+void textureStore_877c92() {
+  arg_0[1] = (1.0f).xxxx;
+}
+
+void fragment_main() {
+  textureStore_877c92();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  textureStore_877c92();
+}
+
diff --git a/test/tint/builtins/gen/literal/textureStore/877c92.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/textureStore/877c92.wgsl.expected.ir.fxc.hlsl
index 685a9ee..42dd584 100644
--- a/test/tint/builtins/gen/literal/textureStore/877c92.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureStore/877c92.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,15 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWTexture1D<float4> arg_0 : register(u0, space1);
+void textureStore_877c92() {
+  arg_0[1] = (1.0f).xxxx;
+}
+
+void fragment_main() {
+  textureStore_877c92();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  textureStore_877c92();
+}
+
diff --git a/test/tint/builtins/gen/literal/textureStore/8815b1.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/textureStore/8815b1.wgsl.expected.ir.dxc.hlsl
index 685a9ee..717e032 100644
--- a/test/tint/builtins/gen/literal/textureStore/8815b1.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureStore/8815b1.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,16 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWTexture2DArray<int4> arg_0 : register(u0, space1);
+void textureStore_8815b1() {
+  RWTexture2DArray<int4> v = arg_0;
+  v[int3((1).xx, int(1u))] = (1).xxxx;
+}
+
+void fragment_main() {
+  textureStore_8815b1();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  textureStore_8815b1();
+}
+
diff --git a/test/tint/builtins/gen/literal/textureStore/8815b1.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/textureStore/8815b1.wgsl.expected.ir.fxc.hlsl
index 685a9ee..717e032 100644
--- a/test/tint/builtins/gen/literal/textureStore/8815b1.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureStore/8815b1.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,16 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWTexture2DArray<int4> arg_0 : register(u0, space1);
+void textureStore_8815b1() {
+  RWTexture2DArray<int4> v = arg_0;
+  v[int3((1).xx, int(1u))] = (1).xxxx;
+}
+
+void fragment_main() {
+  textureStore_8815b1();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  textureStore_8815b1();
+}
+
diff --git a/test/tint/builtins/gen/literal/textureStore/885921.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/textureStore/885921.wgsl.expected.ir.dxc.hlsl
index 685a9ee..9fd5b9b 100644
--- a/test/tint/builtins/gen/literal/textureStore/885921.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureStore/885921.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,15 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWTexture3D<float4> arg_0 : register(u0, space1);
+void textureStore_885921() {
+  arg_0[(1u).xxx] = (1.0f).xxxx;
+}
+
+void fragment_main() {
+  textureStore_885921();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  textureStore_885921();
+}
+
diff --git a/test/tint/builtins/gen/literal/textureStore/885921.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/textureStore/885921.wgsl.expected.ir.fxc.hlsl
index 685a9ee..9fd5b9b 100644
--- a/test/tint/builtins/gen/literal/textureStore/885921.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureStore/885921.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,15 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWTexture3D<float4> arg_0 : register(u0, space1);
+void textureStore_885921() {
+  arg_0[(1u).xxx] = (1.0f).xxxx;
+}
+
+void fragment_main() {
+  textureStore_885921();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  textureStore_885921();
+}
+
diff --git a/test/tint/builtins/gen/literal/textureStore/88ce7e.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/textureStore/88ce7e.wgsl.expected.ir.dxc.hlsl
index 685a9ee..e9fc851 100644
--- a/test/tint/builtins/gen/literal/textureStore/88ce7e.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureStore/88ce7e.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,15 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWTexture3D<int4> arg_0 : register(u0, space1);
+void textureStore_88ce7e() {
+  arg_0[(1).xxx] = (1).xxxx;
+}
+
+void fragment_main() {
+  textureStore_88ce7e();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  textureStore_88ce7e();
+}
+
diff --git a/test/tint/builtins/gen/literal/textureStore/88ce7e.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/textureStore/88ce7e.wgsl.expected.ir.fxc.hlsl
index 685a9ee..e9fc851 100644
--- a/test/tint/builtins/gen/literal/textureStore/88ce7e.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureStore/88ce7e.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,15 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWTexture3D<int4> arg_0 : register(u0, space1);
+void textureStore_88ce7e() {
+  arg_0[(1).xxx] = (1).xxxx;
+}
+
+void fragment_main() {
+  textureStore_88ce7e();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  textureStore_88ce7e();
+}
+
diff --git a/test/tint/builtins/gen/literal/textureStore/8a16b0.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/textureStore/8a16b0.wgsl.expected.ir.dxc.hlsl
index 685a9ee..b5c3583 100644
--- a/test/tint/builtins/gen/literal/textureStore/8a16b0.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureStore/8a16b0.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,16 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWTexture2DArray<uint4> arg_0 : register(u0, space1);
+void textureStore_8a16b0() {
+  RWTexture2DArray<uint4> v = arg_0;
+  v[int3((1).xx, int(1))] = (1u).xxxx;
+}
+
+void fragment_main() {
+  textureStore_8a16b0();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  textureStore_8a16b0();
+}
+
diff --git a/test/tint/builtins/gen/literal/textureStore/8a16b0.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/textureStore/8a16b0.wgsl.expected.ir.fxc.hlsl
index 685a9ee..b5c3583 100644
--- a/test/tint/builtins/gen/literal/textureStore/8a16b0.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureStore/8a16b0.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,16 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWTexture2DArray<uint4> arg_0 : register(u0, space1);
+void textureStore_8a16b0() {
+  RWTexture2DArray<uint4> v = arg_0;
+  v[int3((1).xx, int(1))] = (1u).xxxx;
+}
+
+void fragment_main() {
+  textureStore_8a16b0();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  textureStore_8a16b0();
+}
+
diff --git a/test/tint/builtins/gen/literal/textureStore/8a46ff.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/textureStore/8a46ff.wgsl.expected.ir.dxc.hlsl
index 685a9ee..c82576d 100644
--- a/test/tint/builtins/gen/literal/textureStore/8a46ff.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureStore/8a46ff.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,15 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWTexture2D<float4> arg_0 : register(u0, space1);
+void textureStore_8a46ff() {
+  arg_0[(1).xx] = (1.0f).xxxx;
+}
+
+void fragment_main() {
+  textureStore_8a46ff();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  textureStore_8a46ff();
+}
+
diff --git a/test/tint/builtins/gen/literal/textureStore/8a46ff.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/textureStore/8a46ff.wgsl.expected.ir.fxc.hlsl
index 685a9ee..c82576d 100644
--- a/test/tint/builtins/gen/literal/textureStore/8a46ff.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureStore/8a46ff.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,15 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWTexture2D<float4> arg_0 : register(u0, space1);
+void textureStore_8a46ff() {
+  arg_0[(1).xx] = (1.0f).xxxx;
+}
+
+void fragment_main() {
+  textureStore_8a46ff();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  textureStore_8a46ff();
+}
+
diff --git a/test/tint/builtins/gen/literal/textureStore/8a85b9.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/textureStore/8a85b9.wgsl.expected.ir.dxc.hlsl
index 685a9ee..3b46ea6 100644
--- a/test/tint/builtins/gen/literal/textureStore/8a85b9.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureStore/8a85b9.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,16 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWTexture2DArray<int4> arg_0 : register(u0, space1);
+void textureStore_8a85b9() {
+  RWTexture2DArray<int4> v = arg_0;
+  v[int3((1).xx, int(1))] = (1).xxxx;
+}
+
+void fragment_main() {
+  textureStore_8a85b9();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  textureStore_8a85b9();
+}
+
diff --git a/test/tint/builtins/gen/literal/textureStore/8a85b9.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/textureStore/8a85b9.wgsl.expected.ir.fxc.hlsl
index 685a9ee..3b46ea6 100644
--- a/test/tint/builtins/gen/literal/textureStore/8a85b9.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureStore/8a85b9.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,16 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWTexture2DArray<int4> arg_0 : register(u0, space1);
+void textureStore_8a85b9() {
+  RWTexture2DArray<int4> v = arg_0;
+  v[int3((1).xx, int(1))] = (1).xxxx;
+}
+
+void fragment_main() {
+  textureStore_8a85b9();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  textureStore_8a85b9();
+}
+
diff --git a/test/tint/builtins/gen/literal/textureStore/8a8681.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/textureStore/8a8681.wgsl.expected.ir.dxc.hlsl
index 685a9ee..0ca748a 100644
--- a/test/tint/builtins/gen/literal/textureStore/8a8681.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureStore/8a8681.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,15 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWTexture2D<uint4> arg_0 : register(u0, space1);
+void textureStore_8a8681() {
+  arg_0[(1u).xx] = (1u).xxxx;
+}
+
+void fragment_main() {
+  textureStore_8a8681();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  textureStore_8a8681();
+}
+
diff --git a/test/tint/builtins/gen/literal/textureStore/8a8681.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/textureStore/8a8681.wgsl.expected.ir.fxc.hlsl
index 685a9ee..0ca748a 100644
--- a/test/tint/builtins/gen/literal/textureStore/8a8681.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureStore/8a8681.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,15 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWTexture2D<uint4> arg_0 : register(u0, space1);
+void textureStore_8a8681() {
+  arg_0[(1u).xx] = (1u).xxxx;
+}
+
+void fragment_main() {
+  textureStore_8a8681();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  textureStore_8a8681();
+}
+
diff --git a/test/tint/builtins/gen/literal/textureStore/8ae0bc.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/textureStore/8ae0bc.wgsl.expected.ir.dxc.hlsl
index 685a9ee..50c53cd 100644
--- a/test/tint/builtins/gen/literal/textureStore/8ae0bc.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureStore/8ae0bc.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,16 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWTexture2DArray<float4> arg_0 : register(u0, space1);
+void textureStore_8ae0bc() {
+  RWTexture2DArray<float4> v = arg_0;
+  v[int3((1).xx, int(1u))] = (1.0f).xxxx;
+}
+
+void fragment_main() {
+  textureStore_8ae0bc();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  textureStore_8ae0bc();
+}
+
diff --git a/test/tint/builtins/gen/literal/textureStore/8ae0bc.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/textureStore/8ae0bc.wgsl.expected.ir.fxc.hlsl
index 685a9ee..50c53cd 100644
--- a/test/tint/builtins/gen/literal/textureStore/8ae0bc.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureStore/8ae0bc.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,16 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWTexture2DArray<float4> arg_0 : register(u0, space1);
+void textureStore_8ae0bc() {
+  RWTexture2DArray<float4> v = arg_0;
+  v[int3((1).xx, int(1u))] = (1.0f).xxxx;
+}
+
+void fragment_main() {
+  textureStore_8ae0bc();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  textureStore_8ae0bc();
+}
+
diff --git a/test/tint/builtins/gen/literal/textureStore/8b9310.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/textureStore/8b9310.wgsl.expected.ir.dxc.hlsl
index 685a9ee..88b3edb 100644
--- a/test/tint/builtins/gen/literal/textureStore/8b9310.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureStore/8b9310.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,15 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWTexture3D<float4> arg_0 : register(u0, space1);
+void textureStore_8b9310() {
+  arg_0[(1u).xxx] = (1.0f).xxxx;
+}
+
+void fragment_main() {
+  textureStore_8b9310();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  textureStore_8b9310();
+}
+
diff --git a/test/tint/builtins/gen/literal/textureStore/8b9310.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/textureStore/8b9310.wgsl.expected.ir.fxc.hlsl
index 685a9ee..88b3edb 100644
--- a/test/tint/builtins/gen/literal/textureStore/8b9310.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureStore/8b9310.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,15 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWTexture3D<float4> arg_0 : register(u0, space1);
+void textureStore_8b9310() {
+  arg_0[(1u).xxx] = (1.0f).xxxx;
+}
+
+void fragment_main() {
+  textureStore_8b9310();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  textureStore_8b9310();
+}
+
diff --git a/test/tint/builtins/gen/literal/textureStore/8bb287.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/textureStore/8bb287.wgsl.expected.ir.dxc.hlsl
index 685a9ee..dbc527f 100644
--- a/test/tint/builtins/gen/literal/textureStore/8bb287.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureStore/8bb287.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,16 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWTexture2DArray<int4> arg_0 : register(u0, space1);
+void textureStore_8bb287() {
+  RWTexture2DArray<int4> v = arg_0;
+  v[uint3((1u).xx, uint(1u))] = (1).xxxx;
+}
+
+void fragment_main() {
+  textureStore_8bb287();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  textureStore_8bb287();
+}
+
diff --git a/test/tint/builtins/gen/literal/textureStore/8bb287.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/textureStore/8bb287.wgsl.expected.ir.fxc.hlsl
index 685a9ee..dbc527f 100644
--- a/test/tint/builtins/gen/literal/textureStore/8bb287.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureStore/8bb287.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,16 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWTexture2DArray<int4> arg_0 : register(u0, space1);
+void textureStore_8bb287() {
+  RWTexture2DArray<int4> v = arg_0;
+  v[uint3((1u).xx, uint(1u))] = (1).xxxx;
+}
+
+void fragment_main() {
+  textureStore_8bb287();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  textureStore_8bb287();
+}
+
diff --git a/test/tint/builtins/gen/literal/textureStore/8c76e9.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/textureStore/8c76e9.wgsl.expected.ir.dxc.hlsl
index 685a9ee..c068135 100644
--- a/test/tint/builtins/gen/literal/textureStore/8c76e9.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureStore/8c76e9.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,15 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWTexture1D<int4> arg_0 : register(u0, space1);
+void textureStore_8c76e9() {
+  arg_0[1u] = (1).xxxx;
+}
+
+void fragment_main() {
+  textureStore_8c76e9();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  textureStore_8c76e9();
+}
+
diff --git a/test/tint/builtins/gen/literal/textureStore/8c76e9.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/textureStore/8c76e9.wgsl.expected.ir.fxc.hlsl
index 685a9ee..c068135 100644
--- a/test/tint/builtins/gen/literal/textureStore/8c76e9.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureStore/8c76e9.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,15 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWTexture1D<int4> arg_0 : register(u0, space1);
+void textureStore_8c76e9() {
+  arg_0[1u] = (1).xxxx;
+}
+
+void fragment_main() {
+  textureStore_8c76e9();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  textureStore_8c76e9();
+}
+
diff --git a/test/tint/builtins/gen/literal/textureStore/8cd611.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/textureStore/8cd611.wgsl.expected.ir.dxc.hlsl
index 685a9ee..cd60eaf 100644
--- a/test/tint/builtins/gen/literal/textureStore/8cd611.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureStore/8cd611.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,15 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWTexture3D<float4> arg_0 : register(u0, space1);
+void textureStore_8cd611() {
+  arg_0[(1u).xxx] = (1.0f).xxxx;
+}
+
+void fragment_main() {
+  textureStore_8cd611();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  textureStore_8cd611();
+}
+
diff --git a/test/tint/builtins/gen/literal/textureStore/8cd611.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/textureStore/8cd611.wgsl.expected.ir.fxc.hlsl
index 685a9ee..cd60eaf 100644
--- a/test/tint/builtins/gen/literal/textureStore/8cd611.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureStore/8cd611.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,15 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWTexture3D<float4> arg_0 : register(u0, space1);
+void textureStore_8cd611() {
+  arg_0[(1u).xxx] = (1.0f).xxxx;
+}
+
+void fragment_main() {
+  textureStore_8cd611();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  textureStore_8cd611();
+}
+
diff --git a/test/tint/builtins/gen/literal/textureStore/8cd841.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/textureStore/8cd841.wgsl.expected.ir.dxc.hlsl
index 685a9ee..9ded979 100644
--- a/test/tint/builtins/gen/literal/textureStore/8cd841.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureStore/8cd841.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,16 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWTexture2DArray<uint4> arg_0 : register(u0, space1);
+void textureStore_8cd841() {
+  RWTexture2DArray<uint4> v = arg_0;
+  v[int3((1).xx, int(1u))] = (1u).xxxx;
+}
+
+void fragment_main() {
+  textureStore_8cd841();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  textureStore_8cd841();
+}
+
diff --git a/test/tint/builtins/gen/literal/textureStore/8cd841.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/textureStore/8cd841.wgsl.expected.ir.fxc.hlsl
index 685a9ee..9ded979 100644
--- a/test/tint/builtins/gen/literal/textureStore/8cd841.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureStore/8cd841.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,16 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWTexture2DArray<uint4> arg_0 : register(u0, space1);
+void textureStore_8cd841() {
+  RWTexture2DArray<uint4> v = arg_0;
+  v[int3((1).xx, int(1u))] = (1u).xxxx;
+}
+
+void fragment_main() {
+  textureStore_8cd841();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  textureStore_8cd841();
+}
+
diff --git a/test/tint/builtins/gen/literal/textureStore/8dc54f.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/textureStore/8dc54f.wgsl.expected.ir.dxc.hlsl
index 685a9ee..56f528f 100644
--- a/test/tint/builtins/gen/literal/textureStore/8dc54f.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureStore/8dc54f.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,15 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWTexture2D<uint4> arg_0 : register(u0, space1);
+void textureStore_8dc54f() {
+  arg_0[(1u).xx] = (1u).xxxx;
+}
+
+void fragment_main() {
+  textureStore_8dc54f();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  textureStore_8dc54f();
+}
+
diff --git a/test/tint/builtins/gen/literal/textureStore/8dc54f.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/textureStore/8dc54f.wgsl.expected.ir.fxc.hlsl
index 685a9ee..56f528f 100644
--- a/test/tint/builtins/gen/literal/textureStore/8dc54f.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureStore/8dc54f.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,15 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWTexture2D<uint4> arg_0 : register(u0, space1);
+void textureStore_8dc54f() {
+  arg_0[(1u).xx] = (1u).xxxx;
+}
+
+void fragment_main() {
+  textureStore_8dc54f();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  textureStore_8dc54f();
+}
+
diff --git a/test/tint/builtins/gen/literal/textureStore/8e0479.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/textureStore/8e0479.wgsl.expected.ir.dxc.hlsl
index 685a9ee..5e25046 100644
--- a/test/tint/builtins/gen/literal/textureStore/8e0479.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureStore/8e0479.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,16 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWTexture2DArray<uint4> arg_0 : register(u0, space1);
+void textureStore_8e0479() {
+  RWTexture2DArray<uint4> v = arg_0;
+  v[int3((1).xx, int(1))] = (1u).xxxx;
+}
+
+void fragment_main() {
+  textureStore_8e0479();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  textureStore_8e0479();
+}
+
diff --git a/test/tint/builtins/gen/literal/textureStore/8e0479.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/textureStore/8e0479.wgsl.expected.ir.fxc.hlsl
index 685a9ee..5e25046 100644
--- a/test/tint/builtins/gen/literal/textureStore/8e0479.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureStore/8e0479.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,16 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWTexture2DArray<uint4> arg_0 : register(u0, space1);
+void textureStore_8e0479() {
+  RWTexture2DArray<uint4> v = arg_0;
+  v[int3((1).xx, int(1))] = (1u).xxxx;
+}
+
+void fragment_main() {
+  textureStore_8e0479();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  textureStore_8e0479();
+}
+
diff --git a/test/tint/builtins/gen/literal/textureStore/8ebdc9.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/textureStore/8ebdc9.wgsl.expected.ir.dxc.hlsl
index 685a9ee..4012184 100644
--- a/test/tint/builtins/gen/literal/textureStore/8ebdc9.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureStore/8ebdc9.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,16 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWTexture2DArray<float4> arg_0 : register(u0, space1);
+void textureStore_8ebdc9() {
+  RWTexture2DArray<float4> v = arg_0;
+  v[uint3((1u).xx, uint(1u))] = (1.0f).xxxx;
+}
+
+void fragment_main() {
+  textureStore_8ebdc9();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  textureStore_8ebdc9();
+}
+
diff --git a/test/tint/builtins/gen/literal/textureStore/8ebdc9.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/textureStore/8ebdc9.wgsl.expected.ir.fxc.hlsl
index 685a9ee..4012184 100644
--- a/test/tint/builtins/gen/literal/textureStore/8ebdc9.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureStore/8ebdc9.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,16 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWTexture2DArray<float4> arg_0 : register(u0, space1);
+void textureStore_8ebdc9() {
+  RWTexture2DArray<float4> v = arg_0;
+  v[uint3((1u).xx, uint(1u))] = (1.0f).xxxx;
+}
+
+void fragment_main() {
+  textureStore_8ebdc9();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  textureStore_8ebdc9();
+}
+
diff --git a/test/tint/builtins/gen/literal/textureStore/8ed9f8.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/textureStore/8ed9f8.wgsl.expected.ir.dxc.hlsl
index 685a9ee..ad847f3 100644
--- a/test/tint/builtins/gen/literal/textureStore/8ed9f8.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureStore/8ed9f8.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,15 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWTexture3D<float4> arg_0 : register(u0, space1);
+void textureStore_8ed9f8() {
+  arg_0[(1u).xxx] = (1.0f).xxxx;
+}
+
+void fragment_main() {
+  textureStore_8ed9f8();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  textureStore_8ed9f8();
+}
+
diff --git a/test/tint/builtins/gen/literal/textureStore/8ed9f8.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/textureStore/8ed9f8.wgsl.expected.ir.fxc.hlsl
index 685a9ee..ad847f3 100644
--- a/test/tint/builtins/gen/literal/textureStore/8ed9f8.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureStore/8ed9f8.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,15 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWTexture3D<float4> arg_0 : register(u0, space1);
+void textureStore_8ed9f8() {
+  arg_0[(1u).xxx] = (1.0f).xxxx;
+}
+
+void fragment_main() {
+  textureStore_8ed9f8();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  textureStore_8ed9f8();
+}
+
diff --git a/test/tint/builtins/gen/literal/textureStore/8f71a1.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/textureStore/8f71a1.wgsl.expected.ir.dxc.hlsl
index 685a9ee..d76b690 100644
--- a/test/tint/builtins/gen/literal/textureStore/8f71a1.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureStore/8f71a1.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,15 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWTexture3D<int4> arg_0 : register(u0, space1);
+void textureStore_8f71a1() {
+  arg_0[(1).xxx] = (1).xxxx;
+}
+
+void fragment_main() {
+  textureStore_8f71a1();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  textureStore_8f71a1();
+}
+
diff --git a/test/tint/builtins/gen/literal/textureStore/8f71a1.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/textureStore/8f71a1.wgsl.expected.ir.fxc.hlsl
index 685a9ee..d76b690 100644
--- a/test/tint/builtins/gen/literal/textureStore/8f71a1.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureStore/8f71a1.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,15 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWTexture3D<int4> arg_0 : register(u0, space1);
+void textureStore_8f71a1() {
+  arg_0[(1).xxx] = (1).xxxx;
+}
+
+void fragment_main() {
+  textureStore_8f71a1();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  textureStore_8f71a1();
+}
+
diff --git a/test/tint/builtins/gen/literal/textureStore/8ff674.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/textureStore/8ff674.wgsl.expected.ir.dxc.hlsl
index 685a9ee..01781b7 100644
--- a/test/tint/builtins/gen/literal/textureStore/8ff674.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureStore/8ff674.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,16 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWTexture2DArray<uint4> arg_0 : register(u0, space1);
+void textureStore_8ff674() {
+  RWTexture2DArray<uint4> v = arg_0;
+  v[int3((1).xx, int(1u))] = (1u).xxxx;
+}
+
+void fragment_main() {
+  textureStore_8ff674();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  textureStore_8ff674();
+}
+
diff --git a/test/tint/builtins/gen/literal/textureStore/8ff674.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/textureStore/8ff674.wgsl.expected.ir.fxc.hlsl
index 685a9ee..01781b7 100644
--- a/test/tint/builtins/gen/literal/textureStore/8ff674.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureStore/8ff674.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,16 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWTexture2DArray<uint4> arg_0 : register(u0, space1);
+void textureStore_8ff674() {
+  RWTexture2DArray<uint4> v = arg_0;
+  v[int3((1).xx, int(1u))] = (1u).xxxx;
+}
+
+void fragment_main() {
+  textureStore_8ff674();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  textureStore_8ff674();
+}
+
diff --git a/test/tint/builtins/gen/literal/textureStore/90960e.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/textureStore/90960e.wgsl.expected.ir.dxc.hlsl
index 685a9ee..0205218 100644
--- a/test/tint/builtins/gen/literal/textureStore/90960e.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureStore/90960e.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,15 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWTexture1D<float4> arg_0 : register(u0, space1);
+void textureStore_90960e() {
+  arg_0[1] = (1.0f).xxxx;
+}
+
+void fragment_main() {
+  textureStore_90960e();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  textureStore_90960e();
+}
+
diff --git a/test/tint/builtins/gen/literal/textureStore/90960e.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/textureStore/90960e.wgsl.expected.ir.fxc.hlsl
index 685a9ee..0205218 100644
--- a/test/tint/builtins/gen/literal/textureStore/90960e.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureStore/90960e.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,15 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWTexture1D<float4> arg_0 : register(u0, space1);
+void textureStore_90960e() {
+  arg_0[1] = (1.0f).xxxx;
+}
+
+void fragment_main() {
+  textureStore_90960e();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  textureStore_90960e();
+}
+
diff --git a/test/tint/builtins/gen/literal/textureStore/90a553.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/textureStore/90a553.wgsl.expected.ir.dxc.hlsl
index 685a9ee..c0bca08 100644
--- a/test/tint/builtins/gen/literal/textureStore/90a553.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureStore/90a553.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,16 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWTexture2DArray<int4> arg_0 : register(u0, space1);
+void textureStore_90a553() {
+  RWTexture2DArray<int4> v = arg_0;
+  v[int3((1).xx, int(1u))] = (1).xxxx;
+}
+
+void fragment_main() {
+  textureStore_90a553();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  textureStore_90a553();
+}
+
diff --git a/test/tint/builtins/gen/literal/textureStore/90a553.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/textureStore/90a553.wgsl.expected.ir.fxc.hlsl
index 685a9ee..c0bca08 100644
--- a/test/tint/builtins/gen/literal/textureStore/90a553.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureStore/90a553.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,16 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWTexture2DArray<int4> arg_0 : register(u0, space1);
+void textureStore_90a553() {
+  RWTexture2DArray<int4> v = arg_0;
+  v[int3((1).xx, int(1u))] = (1).xxxx;
+}
+
+void fragment_main() {
+  textureStore_90a553();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  textureStore_90a553();
+}
+
diff --git a/test/tint/builtins/gen/literal/textureStore/958353.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/textureStore/958353.wgsl.expected.ir.dxc.hlsl
index 685a9ee..955ccaa 100644
--- a/test/tint/builtins/gen/literal/textureStore/958353.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureStore/958353.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,15 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWTexture1D<int4> arg_0 : register(u0, space1);
+void textureStore_958353() {
+  arg_0[1u] = (1).xxxx;
+}
+
+void fragment_main() {
+  textureStore_958353();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  textureStore_958353();
+}
+
diff --git a/test/tint/builtins/gen/literal/textureStore/958353.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/textureStore/958353.wgsl.expected.ir.fxc.hlsl
index 685a9ee..955ccaa 100644
--- a/test/tint/builtins/gen/literal/textureStore/958353.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureStore/958353.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,15 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWTexture1D<int4> arg_0 : register(u0, space1);
+void textureStore_958353() {
+  arg_0[1u] = (1).xxxx;
+}
+
+void fragment_main() {
+  textureStore_958353();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  textureStore_958353();
+}
+
diff --git a/test/tint/builtins/gen/literal/textureStore/959d94.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/textureStore/959d94.wgsl.expected.ir.dxc.hlsl
index 685a9ee..211d29e 100644
--- a/test/tint/builtins/gen/literal/textureStore/959d94.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureStore/959d94.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,15 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWTexture1D<float4> arg_0 : register(u0, space1);
+void textureStore_959d94() {
+  arg_0[1u] = (1.0f).xxxx;
+}
+
+void fragment_main() {
+  textureStore_959d94();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  textureStore_959d94();
+}
+
diff --git a/test/tint/builtins/gen/literal/textureStore/959d94.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/textureStore/959d94.wgsl.expected.ir.fxc.hlsl
index 685a9ee..211d29e 100644
--- a/test/tint/builtins/gen/literal/textureStore/959d94.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureStore/959d94.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,15 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWTexture1D<float4> arg_0 : register(u0, space1);
+void textureStore_959d94() {
+  arg_0[1u] = (1.0f).xxxx;
+}
+
+void fragment_main() {
+  textureStore_959d94();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  textureStore_959d94();
+}
+
diff --git a/test/tint/builtins/gen/literal/textureStore/95e452.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/textureStore/95e452.wgsl.expected.ir.dxc.hlsl
index 685a9ee..250be08 100644
--- a/test/tint/builtins/gen/literal/textureStore/95e452.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureStore/95e452.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,15 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWTexture2D<int4> arg_0 : register(u0, space1);
+void textureStore_95e452() {
+  arg_0[(1u).xx] = (1).xxxx;
+}
+
+void fragment_main() {
+  textureStore_95e452();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  textureStore_95e452();
+}
+
diff --git a/test/tint/builtins/gen/literal/textureStore/95e452.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/textureStore/95e452.wgsl.expected.ir.fxc.hlsl
index 685a9ee..250be08 100644
--- a/test/tint/builtins/gen/literal/textureStore/95e452.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureStore/95e452.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,15 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWTexture2D<int4> arg_0 : register(u0, space1);
+void textureStore_95e452() {
+  arg_0[(1u).xx] = (1).xxxx;
+}
+
+void fragment_main() {
+  textureStore_95e452();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  textureStore_95e452();
+}
+
diff --git a/test/tint/builtins/gen/literal/textureStore/969534.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/textureStore/969534.wgsl.expected.ir.dxc.hlsl
index 685a9ee..d36c544 100644
--- a/test/tint/builtins/gen/literal/textureStore/969534.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureStore/969534.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,15 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWTexture1D<int4> arg_0 : register(u0, space1);
+void textureStore_969534() {
+  arg_0[1] = (1).xxxx;
+}
+
+void fragment_main() {
+  textureStore_969534();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  textureStore_969534();
+}
+
diff --git a/test/tint/builtins/gen/literal/textureStore/969534.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/textureStore/969534.wgsl.expected.ir.fxc.hlsl
index 685a9ee..d36c544 100644
--- a/test/tint/builtins/gen/literal/textureStore/969534.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureStore/969534.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,15 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWTexture1D<int4> arg_0 : register(u0, space1);
+void textureStore_969534() {
+  arg_0[1] = (1).xxxx;
+}
+
+void fragment_main() {
+  textureStore_969534();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  textureStore_969534();
+}
+
diff --git a/test/tint/builtins/gen/literal/textureStore/976636.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/textureStore/976636.wgsl.expected.ir.dxc.hlsl
index 685a9ee..c90af06 100644
--- a/test/tint/builtins/gen/literal/textureStore/976636.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureStore/976636.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,15 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWTexture1D<int4> arg_0 : register(u0, space1);
+void textureStore_976636() {
+  arg_0[1u] = (1).xxxx;
+}
+
+void fragment_main() {
+  textureStore_976636();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  textureStore_976636();
+}
+
diff --git a/test/tint/builtins/gen/literal/textureStore/976636.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/textureStore/976636.wgsl.expected.ir.fxc.hlsl
index 685a9ee..c90af06 100644
--- a/test/tint/builtins/gen/literal/textureStore/976636.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureStore/976636.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,15 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWTexture1D<int4> arg_0 : register(u0, space1);
+void textureStore_976636() {
+  arg_0[1u] = (1).xxxx;
+}
+
+void fragment_main() {
+  textureStore_976636();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  textureStore_976636();
+}
+
diff --git a/test/tint/builtins/gen/literal/textureStore/9938b7.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/textureStore/9938b7.wgsl.expected.ir.dxc.hlsl
index 685a9ee..b2f94c6 100644
--- a/test/tint/builtins/gen/literal/textureStore/9938b7.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureStore/9938b7.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,16 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWTexture2DArray<int4> arg_0 : register(u0, space1);
+void textureStore_9938b7() {
+  RWTexture2DArray<int4> v = arg_0;
+  v[int3((1).xx, int(1u))] = (1).xxxx;
+}
+
+void fragment_main() {
+  textureStore_9938b7();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  textureStore_9938b7();
+}
+
diff --git a/test/tint/builtins/gen/literal/textureStore/9938b7.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/textureStore/9938b7.wgsl.expected.ir.fxc.hlsl
index 685a9ee..b2f94c6 100644
--- a/test/tint/builtins/gen/literal/textureStore/9938b7.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureStore/9938b7.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,16 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWTexture2DArray<int4> arg_0 : register(u0, space1);
+void textureStore_9938b7() {
+  RWTexture2DArray<int4> v = arg_0;
+  v[int3((1).xx, int(1u))] = (1).xxxx;
+}
+
+void fragment_main() {
+  textureStore_9938b7();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  textureStore_9938b7();
+}
+
diff --git a/test/tint/builtins/gen/literal/textureStore/9a3ecc.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/textureStore/9a3ecc.wgsl.expected.ir.dxc.hlsl
index 685a9ee..875cde3 100644
--- a/test/tint/builtins/gen/literal/textureStore/9a3ecc.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureStore/9a3ecc.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,15 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWTexture3D<int4> arg_0 : register(u0, space1);
+void textureStore_9a3ecc() {
+  arg_0[(1).xxx] = (1).xxxx;
+}
+
+void fragment_main() {
+  textureStore_9a3ecc();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  textureStore_9a3ecc();
+}
+
diff --git a/test/tint/builtins/gen/literal/textureStore/9a3ecc.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/textureStore/9a3ecc.wgsl.expected.ir.fxc.hlsl
index 685a9ee..875cde3 100644
--- a/test/tint/builtins/gen/literal/textureStore/9a3ecc.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureStore/9a3ecc.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,15 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWTexture3D<int4> arg_0 : register(u0, space1);
+void textureStore_9a3ecc() {
+  arg_0[(1).xxx] = (1).xxxx;
+}
+
+void fragment_main() {
+  textureStore_9a3ecc();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  textureStore_9a3ecc();
+}
+
diff --git a/test/tint/builtins/gen/literal/textureStore/9aedd3.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/textureStore/9aedd3.wgsl.expected.ir.dxc.hlsl
index 685a9ee..3353274 100644
--- a/test/tint/builtins/gen/literal/textureStore/9aedd3.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureStore/9aedd3.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,15 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWTexture3D<float4> arg_0 : register(u0, space1);
+void textureStore_9aedd3() {
+  arg_0[(1u).xxx] = (1.0f).xxxx;
+}
+
+void fragment_main() {
+  textureStore_9aedd3();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  textureStore_9aedd3();
+}
+
diff --git a/test/tint/builtins/gen/literal/textureStore/9aedd3.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/textureStore/9aedd3.wgsl.expected.ir.fxc.hlsl
index 685a9ee..3353274 100644
--- a/test/tint/builtins/gen/literal/textureStore/9aedd3.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureStore/9aedd3.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,15 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWTexture3D<float4> arg_0 : register(u0, space1);
+void textureStore_9aedd3() {
+  arg_0[(1u).xxx] = (1.0f).xxxx;
+}
+
+void fragment_main() {
+  textureStore_9aedd3();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  textureStore_9aedd3();
+}
+
diff --git a/test/tint/builtins/gen/literal/textureStore/9ba5c1.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/textureStore/9ba5c1.wgsl.expected.ir.dxc.hlsl
index 685a9ee..e7ca285 100644
--- a/test/tint/builtins/gen/literal/textureStore/9ba5c1.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureStore/9ba5c1.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,15 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWTexture1D<uint4> arg_0 : register(u0, space1);
+void textureStore_9ba5c1() {
+  arg_0[1u] = (1u).xxxx;
+}
+
+void fragment_main() {
+  textureStore_9ba5c1();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  textureStore_9ba5c1();
+}
+
diff --git a/test/tint/builtins/gen/literal/textureStore/9ba5c1.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/textureStore/9ba5c1.wgsl.expected.ir.fxc.hlsl
index 685a9ee..e7ca285 100644
--- a/test/tint/builtins/gen/literal/textureStore/9ba5c1.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureStore/9ba5c1.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,15 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWTexture1D<uint4> arg_0 : register(u0, space1);
+void textureStore_9ba5c1() {
+  arg_0[1u] = (1u).xxxx;
+}
+
+void fragment_main() {
+  textureStore_9ba5c1();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  textureStore_9ba5c1();
+}
+
diff --git a/test/tint/builtins/gen/literal/textureStore/9cea9e.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/textureStore/9cea9e.wgsl.expected.ir.dxc.hlsl
index 685a9ee..45c9674 100644
--- a/test/tint/builtins/gen/literal/textureStore/9cea9e.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureStore/9cea9e.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,16 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWTexture2DArray<uint4> arg_0 : register(u0, space1);
+void textureStore_9cea9e() {
+  RWTexture2DArray<uint4> v = arg_0;
+  v[int3((1).xx, int(1u))] = (1u).xxxx;
+}
+
+void fragment_main() {
+  textureStore_9cea9e();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  textureStore_9cea9e();
+}
+
diff --git a/test/tint/builtins/gen/literal/textureStore/9cea9e.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/textureStore/9cea9e.wgsl.expected.ir.fxc.hlsl
index 685a9ee..45c9674 100644
--- a/test/tint/builtins/gen/literal/textureStore/9cea9e.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureStore/9cea9e.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,16 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWTexture2DArray<uint4> arg_0 : register(u0, space1);
+void textureStore_9cea9e() {
+  RWTexture2DArray<uint4> v = arg_0;
+  v[int3((1).xx, int(1u))] = (1u).xxxx;
+}
+
+void fragment_main() {
+  textureStore_9cea9e();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  textureStore_9cea9e();
+}
+
diff --git a/test/tint/builtins/gen/literal/textureStore/9d7c62.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/textureStore/9d7c62.wgsl.expected.ir.dxc.hlsl
index 685a9ee..4bf4994 100644
--- a/test/tint/builtins/gen/literal/textureStore/9d7c62.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureStore/9d7c62.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,15 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWTexture1D<uint4> arg_0 : register(u0, space1);
+void textureStore_9d7c62() {
+  arg_0[1] = (1u).xxxx;
+}
+
+void fragment_main() {
+  textureStore_9d7c62();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  textureStore_9d7c62();
+}
+
diff --git a/test/tint/builtins/gen/literal/textureStore/9d7c62.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/textureStore/9d7c62.wgsl.expected.ir.fxc.hlsl
index 685a9ee..4bf4994 100644
--- a/test/tint/builtins/gen/literal/textureStore/9d7c62.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureStore/9d7c62.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,15 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWTexture1D<uint4> arg_0 : register(u0, space1);
+void textureStore_9d7c62() {
+  arg_0[1] = (1u).xxxx;
+}
+
+void fragment_main() {
+  textureStore_9d7c62();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  textureStore_9d7c62();
+}
+
diff --git a/test/tint/builtins/gen/literal/textureStore/9d8668.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/textureStore/9d8668.wgsl.expected.ir.dxc.hlsl
index 685a9ee..16f9198 100644
--- a/test/tint/builtins/gen/literal/textureStore/9d8668.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureStore/9d8668.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,16 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWTexture2DArray<float4> arg_0 : register(u0, space1);
+void textureStore_9d8668() {
+  RWTexture2DArray<float4> v = arg_0;
+  v[int3((1).xx, int(1u))] = (1.0f).xxxx;
+}
+
+void fragment_main() {
+  textureStore_9d8668();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  textureStore_9d8668();
+}
+
diff --git a/test/tint/builtins/gen/literal/textureStore/9d8668.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/textureStore/9d8668.wgsl.expected.ir.fxc.hlsl
index 685a9ee..16f9198 100644
--- a/test/tint/builtins/gen/literal/textureStore/9d8668.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureStore/9d8668.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,16 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWTexture2DArray<float4> arg_0 : register(u0, space1);
+void textureStore_9d8668() {
+  RWTexture2DArray<float4> v = arg_0;
+  v[int3((1).xx, int(1u))] = (1.0f).xxxx;
+}
+
+void fragment_main() {
+  textureStore_9d8668();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  textureStore_9d8668();
+}
+
diff --git a/test/tint/builtins/gen/literal/textureStore/9d9cd5.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/textureStore/9d9cd5.wgsl.expected.ir.dxc.hlsl
index 685a9ee..d8c4b90 100644
--- a/test/tint/builtins/gen/literal/textureStore/9d9cd5.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureStore/9d9cd5.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,16 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWTexture2DArray<float4> arg_0 : register(u0, space1);
+void textureStore_9d9cd5() {
+  RWTexture2DArray<float4> v = arg_0;
+  v[int3((1).xx, int(1))] = (1.0f).xxxx;
+}
+
+void fragment_main() {
+  textureStore_9d9cd5();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  textureStore_9d9cd5();
+}
+
diff --git a/test/tint/builtins/gen/literal/textureStore/9d9cd5.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/textureStore/9d9cd5.wgsl.expected.ir.fxc.hlsl
index 685a9ee..d8c4b90 100644
--- a/test/tint/builtins/gen/literal/textureStore/9d9cd5.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureStore/9d9cd5.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,16 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWTexture2DArray<float4> arg_0 : register(u0, space1);
+void textureStore_9d9cd5() {
+  RWTexture2DArray<float4> v = arg_0;
+  v[int3((1).xx, int(1))] = (1.0f).xxxx;
+}
+
+void fragment_main() {
+  textureStore_9d9cd5();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  textureStore_9d9cd5();
+}
+
diff --git a/test/tint/builtins/gen/literal/textureStore/9e3ec5.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/textureStore/9e3ec5.wgsl.expected.ir.dxc.hlsl
index 685a9ee..470b190 100644
--- a/test/tint/builtins/gen/literal/textureStore/9e3ec5.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureStore/9e3ec5.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,15 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWTexture2D<int4> arg_0 : register(u0, space1);
+void textureStore_9e3ec5() {
+  arg_0[(1).xx] = (1).xxxx;
+}
+
+void fragment_main() {
+  textureStore_9e3ec5();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  textureStore_9e3ec5();
+}
+
diff --git a/test/tint/builtins/gen/literal/textureStore/9e3ec5.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/textureStore/9e3ec5.wgsl.expected.ir.fxc.hlsl
index 685a9ee..470b190 100644
--- a/test/tint/builtins/gen/literal/textureStore/9e3ec5.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureStore/9e3ec5.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,15 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWTexture2D<int4> arg_0 : register(u0, space1);
+void textureStore_9e3ec5() {
+  arg_0[(1).xx] = (1).xxxx;
+}
+
+void fragment_main() {
+  textureStore_9e3ec5();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  textureStore_9e3ec5();
+}
+
diff --git a/test/tint/builtins/gen/literal/textureStore/9e5bc2.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/textureStore/9e5bc2.wgsl.expected.ir.dxc.hlsl
index 685a9ee..9bab208 100644
--- a/test/tint/builtins/gen/literal/textureStore/9e5bc2.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureStore/9e5bc2.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,15 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWTexture2D<float4> arg_0 : register(u0, space1);
+void textureStore_9e5bc2() {
+  arg_0[(1u).xx] = (1.0f).xxxx;
+}
+
+void fragment_main() {
+  textureStore_9e5bc2();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  textureStore_9e5bc2();
+}
+
diff --git a/test/tint/builtins/gen/literal/textureStore/9e5bc2.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/textureStore/9e5bc2.wgsl.expected.ir.fxc.hlsl
index 685a9ee..9bab208 100644
--- a/test/tint/builtins/gen/literal/textureStore/9e5bc2.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureStore/9e5bc2.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,15 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWTexture2D<float4> arg_0 : register(u0, space1);
+void textureStore_9e5bc2() {
+  arg_0[(1u).xx] = (1.0f).xxxx;
+}
+
+void fragment_main() {
+  textureStore_9e5bc2();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  textureStore_9e5bc2();
+}
+
diff --git a/test/tint/builtins/gen/literal/textureStore/9f5318.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/textureStore/9f5318.wgsl.expected.ir.dxc.hlsl
index 685a9ee..ed630c7 100644
--- a/test/tint/builtins/gen/literal/textureStore/9f5318.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureStore/9f5318.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,15 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWTexture2D<int4> arg_0 : register(u0, space1);
+void textureStore_9f5318() {
+  arg_0[(1u).xx] = (1).xxxx;
+}
+
+void fragment_main() {
+  textureStore_9f5318();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  textureStore_9f5318();
+}
+
diff --git a/test/tint/builtins/gen/literal/textureStore/9f5318.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/textureStore/9f5318.wgsl.expected.ir.fxc.hlsl
index 685a9ee..ed630c7 100644
--- a/test/tint/builtins/gen/literal/textureStore/9f5318.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureStore/9f5318.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,15 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWTexture2D<int4> arg_0 : register(u0, space1);
+void textureStore_9f5318() {
+  arg_0[(1u).xx] = (1).xxxx;
+}
+
+void fragment_main() {
+  textureStore_9f5318();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  textureStore_9f5318();
+}
+
diff --git a/test/tint/builtins/gen/literal/textureStore/9f7cea.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/textureStore/9f7cea.wgsl.expected.ir.dxc.hlsl
index 685a9ee..5f66eff 100644
--- a/test/tint/builtins/gen/literal/textureStore/9f7cea.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureStore/9f7cea.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,16 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWTexture2DArray<uint4> arg_0 : register(u0, space1);
+void textureStore_9f7cea() {
+  RWTexture2DArray<uint4> v = arg_0;
+  v[int3((1).xx, int(1u))] = (1u).xxxx;
+}
+
+void fragment_main() {
+  textureStore_9f7cea();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  textureStore_9f7cea();
+}
+
diff --git a/test/tint/builtins/gen/literal/textureStore/9f7cea.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/textureStore/9f7cea.wgsl.expected.ir.fxc.hlsl
index 685a9ee..5f66eff 100644
--- a/test/tint/builtins/gen/literal/textureStore/9f7cea.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureStore/9f7cea.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,16 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWTexture2DArray<uint4> arg_0 : register(u0, space1);
+void textureStore_9f7cea() {
+  RWTexture2DArray<uint4> v = arg_0;
+  v[int3((1).xx, int(1u))] = (1u).xxxx;
+}
+
+void fragment_main() {
+  textureStore_9f7cea();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  textureStore_9f7cea();
+}
+
diff --git a/test/tint/builtins/gen/literal/textureStore/a0022f.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/textureStore/a0022f.wgsl.expected.ir.dxc.hlsl
index 685a9ee..873187d 100644
--- a/test/tint/builtins/gen/literal/textureStore/a0022f.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureStore/a0022f.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,16 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWTexture2DArray<int4> arg_0 : register(u0, space1);
+void textureStore_a0022f() {
+  RWTexture2DArray<int4> v = arg_0;
+  v[int3((1).xx, int(1))] = (1).xxxx;
+}
+
+void fragment_main() {
+  textureStore_a0022f();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  textureStore_a0022f();
+}
+
diff --git a/test/tint/builtins/gen/literal/textureStore/a0022f.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/textureStore/a0022f.wgsl.expected.ir.fxc.hlsl
index 685a9ee..873187d 100644
--- a/test/tint/builtins/gen/literal/textureStore/a0022f.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureStore/a0022f.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,16 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWTexture2DArray<int4> arg_0 : register(u0, space1);
+void textureStore_a0022f() {
+  RWTexture2DArray<int4> v = arg_0;
+  v[int3((1).xx, int(1))] = (1).xxxx;
+}
+
+void fragment_main() {
+  textureStore_a0022f();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  textureStore_a0022f();
+}
+
diff --git a/test/tint/builtins/gen/literal/textureStore/a0f96e.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/textureStore/a0f96e.wgsl.expected.ir.dxc.hlsl
index 685a9ee..1f33ab3 100644
--- a/test/tint/builtins/gen/literal/textureStore/a0f96e.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureStore/a0f96e.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,16 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWTexture2DArray<float4> arg_0 : register(u0, space1);
+void textureStore_a0f96e() {
+  RWTexture2DArray<float4> v = arg_0;
+  v[uint3((1u).xx, uint(1u))] = (1.0f).xxxx;
+}
+
+void fragment_main() {
+  textureStore_a0f96e();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  textureStore_a0f96e();
+}
+
diff --git a/test/tint/builtins/gen/literal/textureStore/a0f96e.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/textureStore/a0f96e.wgsl.expected.ir.fxc.hlsl
index 685a9ee..1f33ab3 100644
--- a/test/tint/builtins/gen/literal/textureStore/a0f96e.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureStore/a0f96e.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,16 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWTexture2DArray<float4> arg_0 : register(u0, space1);
+void textureStore_a0f96e() {
+  RWTexture2DArray<float4> v = arg_0;
+  v[uint3((1u).xx, uint(1u))] = (1.0f).xxxx;
+}
+
+void fragment_main() {
+  textureStore_a0f96e();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  textureStore_a0f96e();
+}
+
diff --git a/test/tint/builtins/gen/literal/textureStore/a1352c.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/textureStore/a1352c.wgsl.expected.ir.dxc.hlsl
index 685a9ee..669a9d1 100644
--- a/test/tint/builtins/gen/literal/textureStore/a1352c.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureStore/a1352c.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,16 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWTexture2DArray<int4> arg_0 : register(u0, space1);
+void textureStore_a1352c() {
+  RWTexture2DArray<int4> v = arg_0;
+  v[uint3((1u).xx, uint(1u))] = (1).xxxx;
+}
+
+void fragment_main() {
+  textureStore_a1352c();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  textureStore_a1352c();
+}
+
diff --git a/test/tint/builtins/gen/literal/textureStore/a1352c.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/textureStore/a1352c.wgsl.expected.ir.fxc.hlsl
index 685a9ee..669a9d1 100644
--- a/test/tint/builtins/gen/literal/textureStore/a1352c.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureStore/a1352c.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,16 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWTexture2DArray<int4> arg_0 : register(u0, space1);
+void textureStore_a1352c() {
+  RWTexture2DArray<int4> v = arg_0;
+  v[uint3((1u).xx, uint(1u))] = (1).xxxx;
+}
+
+void fragment_main() {
+  textureStore_a1352c();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  textureStore_a1352c();
+}
+
diff --git a/test/tint/builtins/gen/literal/textureStore/a14041.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/textureStore/a14041.wgsl.expected.ir.dxc.hlsl
index 685a9ee..695812d 100644
--- a/test/tint/builtins/gen/literal/textureStore/a14041.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureStore/a14041.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,15 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWTexture1D<int4> arg_0 : register(u0, space1);
+void textureStore_a14041() {
+  arg_0[1] = (1).xxxx;
+}
+
+void fragment_main() {
+  textureStore_a14041();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  textureStore_a14041();
+}
+
diff --git a/test/tint/builtins/gen/literal/textureStore/a14041.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/textureStore/a14041.wgsl.expected.ir.fxc.hlsl
index 685a9ee..695812d 100644
--- a/test/tint/builtins/gen/literal/textureStore/a14041.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureStore/a14041.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,15 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWTexture1D<int4> arg_0 : register(u0, space1);
+void textureStore_a14041() {
+  arg_0[1] = (1).xxxx;
+}
+
+void fragment_main() {
+  textureStore_a14041();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  textureStore_a14041();
+}
+
diff --git a/test/tint/builtins/gen/literal/textureStore/a165b8.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/textureStore/a165b8.wgsl.expected.ir.dxc.hlsl
index 685a9ee..75d1089 100644
--- a/test/tint/builtins/gen/literal/textureStore/a165b8.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureStore/a165b8.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,15 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWTexture2D<float4> arg_0 : register(u0, space1);
+void textureStore_a165b8() {
+  arg_0[(1u).xx] = (1.0f).xxxx;
+}
+
+void fragment_main() {
+  textureStore_a165b8();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  textureStore_a165b8();
+}
+
diff --git a/test/tint/builtins/gen/literal/textureStore/a165b8.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/textureStore/a165b8.wgsl.expected.ir.fxc.hlsl
index 685a9ee..75d1089 100644
--- a/test/tint/builtins/gen/literal/textureStore/a165b8.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureStore/a165b8.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,15 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWTexture2D<float4> arg_0 : register(u0, space1);
+void textureStore_a165b8() {
+  arg_0[(1u).xx] = (1.0f).xxxx;
+}
+
+void fragment_main() {
+  textureStore_a165b8();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  textureStore_a165b8();
+}
+
diff --git a/test/tint/builtins/gen/literal/textureStore/a19a12.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/textureStore/a19a12.wgsl.expected.ir.dxc.hlsl
index 685a9ee..4fd5ffd 100644
--- a/test/tint/builtins/gen/literal/textureStore/a19a12.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureStore/a19a12.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,15 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWTexture3D<uint4> arg_0 : register(u0, space1);
+void textureStore_a19a12() {
+  arg_0[(1).xxx] = (1u).xxxx;
+}
+
+void fragment_main() {
+  textureStore_a19a12();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  textureStore_a19a12();
+}
+
diff --git a/test/tint/builtins/gen/literal/textureStore/a19a12.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/textureStore/a19a12.wgsl.expected.ir.fxc.hlsl
index 685a9ee..4fd5ffd 100644
--- a/test/tint/builtins/gen/literal/textureStore/a19a12.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureStore/a19a12.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,15 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWTexture3D<uint4> arg_0 : register(u0, space1);
+void textureStore_a19a12() {
+  arg_0[(1).xxx] = (1u).xxxx;
+}
+
+void fragment_main() {
+  textureStore_a19a12();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  textureStore_a19a12();
+}
+
diff --git a/test/tint/builtins/gen/literal/textureStore/a24491.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/textureStore/a24491.wgsl.expected.ir.dxc.hlsl
index 685a9ee..b7f6551 100644
--- a/test/tint/builtins/gen/literal/textureStore/a24491.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureStore/a24491.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,15 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWTexture2D<uint4> arg_0 : register(u0, space1);
+void textureStore_a24491() {
+  arg_0[(1u).xx] = (1u).xxxx;
+}
+
+void fragment_main() {
+  textureStore_a24491();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  textureStore_a24491();
+}
+
diff --git a/test/tint/builtins/gen/literal/textureStore/a24491.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/textureStore/a24491.wgsl.expected.ir.fxc.hlsl
index 685a9ee..b7f6551 100644
--- a/test/tint/builtins/gen/literal/textureStore/a24491.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureStore/a24491.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,15 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWTexture2D<uint4> arg_0 : register(u0, space1);
+void textureStore_a24491() {
+  arg_0[(1u).xx] = (1u).xxxx;
+}
+
+void fragment_main() {
+  textureStore_a24491();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  textureStore_a24491();
+}
+
diff --git a/test/tint/builtins/gen/literal/textureStore/a4c338.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/textureStore/a4c338.wgsl.expected.ir.dxc.hlsl
index 685a9ee..15ea403 100644
--- a/test/tint/builtins/gen/literal/textureStore/a4c338.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureStore/a4c338.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,15 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWTexture1D<float4> arg_0 : register(u0, space1);
+void textureStore_a4c338() {
+  arg_0[1u] = (1.0f).xxxx;
+}
+
+void fragment_main() {
+  textureStore_a4c338();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  textureStore_a4c338();
+}
+
diff --git a/test/tint/builtins/gen/literal/textureStore/a4c338.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/textureStore/a4c338.wgsl.expected.ir.fxc.hlsl
index 685a9ee..15ea403 100644
--- a/test/tint/builtins/gen/literal/textureStore/a4c338.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureStore/a4c338.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,15 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWTexture1D<float4> arg_0 : register(u0, space1);
+void textureStore_a4c338() {
+  arg_0[1u] = (1.0f).xxxx;
+}
+
+void fragment_main() {
+  textureStore_a4c338();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  textureStore_a4c338();
+}
+
diff --git a/test/tint/builtins/gen/literal/textureStore/a5b88e.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/textureStore/a5b88e.wgsl.expected.ir.dxc.hlsl
index 685a9ee..2343438 100644
--- a/test/tint/builtins/gen/literal/textureStore/a5b88e.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureStore/a5b88e.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,15 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWTexture3D<int4> arg_0 : register(u0, space1);
+void textureStore_a5b88e() {
+  arg_0[(1u).xxx] = (1).xxxx;
+}
+
+void fragment_main() {
+  textureStore_a5b88e();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  textureStore_a5b88e();
+}
+
diff --git a/test/tint/builtins/gen/literal/textureStore/a5b88e.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/textureStore/a5b88e.wgsl.expected.ir.fxc.hlsl
index 685a9ee..2343438 100644
--- a/test/tint/builtins/gen/literal/textureStore/a5b88e.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureStore/a5b88e.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,15 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWTexture3D<int4> arg_0 : register(u0, space1);
+void textureStore_a5b88e() {
+  arg_0[(1u).xxx] = (1).xxxx;
+}
+
+void fragment_main() {
+  textureStore_a5b88e();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  textureStore_a5b88e();
+}
+
diff --git a/test/tint/builtins/gen/literal/textureStore/a5c925.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/textureStore/a5c925.wgsl.expected.ir.dxc.hlsl
index 685a9ee..71844e3 100644
--- a/test/tint/builtins/gen/literal/textureStore/a5c925.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureStore/a5c925.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,15 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWTexture3D<int4> arg_0 : register(u0, space1);
+void textureStore_a5c925() {
+  arg_0[(1u).xxx] = (1).xxxx;
+}
+
+void fragment_main() {
+  textureStore_a5c925();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  textureStore_a5c925();
+}
+
diff --git a/test/tint/builtins/gen/literal/textureStore/a5c925.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/textureStore/a5c925.wgsl.expected.ir.fxc.hlsl
index 685a9ee..71844e3 100644
--- a/test/tint/builtins/gen/literal/textureStore/a5c925.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureStore/a5c925.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,15 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWTexture3D<int4> arg_0 : register(u0, space1);
+void textureStore_a5c925() {
+  arg_0[(1u).xxx] = (1).xxxx;
+}
+
+void fragment_main() {
+  textureStore_a5c925();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  textureStore_a5c925();
+}
+
diff --git a/test/tint/builtins/gen/literal/textureStore/a5e80d.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/textureStore/a5e80d.wgsl.expected.ir.dxc.hlsl
index 685a9ee..dfeced6 100644
--- a/test/tint/builtins/gen/literal/textureStore/a5e80d.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureStore/a5e80d.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,15 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWTexture3D<float4> arg_0 : register(u0, space1);
+void textureStore_a5e80d() {
+  arg_0[(1u).xxx] = (1.0f).xxxx;
+}
+
+void fragment_main() {
+  textureStore_a5e80d();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  textureStore_a5e80d();
+}
+
diff --git a/test/tint/builtins/gen/literal/textureStore/a5e80d.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/textureStore/a5e80d.wgsl.expected.ir.fxc.hlsl
index 685a9ee..dfeced6 100644
--- a/test/tint/builtins/gen/literal/textureStore/a5e80d.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureStore/a5e80d.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,15 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWTexture3D<float4> arg_0 : register(u0, space1);
+void textureStore_a5e80d() {
+  arg_0[(1u).xxx] = (1.0f).xxxx;
+}
+
+void fragment_main() {
+  textureStore_a5e80d();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  textureStore_a5e80d();
+}
+
diff --git a/test/tint/builtins/gen/literal/textureStore/a66ca4.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/textureStore/a66ca4.wgsl.expected.ir.dxc.hlsl
index 685a9ee..dc8f92d 100644
--- a/test/tint/builtins/gen/literal/textureStore/a66ca4.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureStore/a66ca4.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,15 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWTexture3D<float4> arg_0 : register(u0, space1);
+void textureStore_a66ca4() {
+  arg_0[(1).xxx] = (1.0f).xxxx;
+}
+
+void fragment_main() {
+  textureStore_a66ca4();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  textureStore_a66ca4();
+}
+
diff --git a/test/tint/builtins/gen/literal/textureStore/a66ca4.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/textureStore/a66ca4.wgsl.expected.ir.fxc.hlsl
index 685a9ee..dc8f92d 100644
--- a/test/tint/builtins/gen/literal/textureStore/a66ca4.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureStore/a66ca4.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,15 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWTexture3D<float4> arg_0 : register(u0, space1);
+void textureStore_a66ca4() {
+  arg_0[(1).xxx] = (1.0f).xxxx;
+}
+
+void fragment_main() {
+  textureStore_a66ca4();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  textureStore_a66ca4();
+}
+
diff --git a/test/tint/builtins/gen/literal/textureStore/a6a986.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/textureStore/a6a986.wgsl.expected.ir.dxc.hlsl
index 685a9ee..154d0cf 100644
--- a/test/tint/builtins/gen/literal/textureStore/a6a986.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureStore/a6a986.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,16 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWTexture2DArray<float4> arg_0 : register(u0, space1);
+void textureStore_a6a986() {
+  RWTexture2DArray<float4> v = arg_0;
+  v[uint3((1u).xx, uint(1))] = (1.0f).xxxx;
+}
+
+void fragment_main() {
+  textureStore_a6a986();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  textureStore_a6a986();
+}
+
diff --git a/test/tint/builtins/gen/literal/textureStore/a6a986.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/textureStore/a6a986.wgsl.expected.ir.fxc.hlsl
index 685a9ee..154d0cf 100644
--- a/test/tint/builtins/gen/literal/textureStore/a6a986.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureStore/a6a986.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,16 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWTexture2DArray<float4> arg_0 : register(u0, space1);
+void textureStore_a6a986() {
+  RWTexture2DArray<float4> v = arg_0;
+  v[uint3((1u).xx, uint(1))] = (1.0f).xxxx;
+}
+
+void fragment_main() {
+  textureStore_a6a986();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  textureStore_a6a986();
+}
+
diff --git a/test/tint/builtins/gen/literal/textureStore/a6e78f.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/textureStore/a6e78f.wgsl.expected.ir.dxc.hlsl
index 685a9ee..7d1a636 100644
--- a/test/tint/builtins/gen/literal/textureStore/a6e78f.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureStore/a6e78f.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,15 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWTexture1D<uint4> arg_0 : register(u0, space1);
+void textureStore_a6e78f() {
+  arg_0[1u] = (1u).xxxx;
+}
+
+void fragment_main() {
+  textureStore_a6e78f();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  textureStore_a6e78f();
+}
+
diff --git a/test/tint/builtins/gen/literal/textureStore/a6e78f.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/textureStore/a6e78f.wgsl.expected.ir.fxc.hlsl
index 685a9ee..7d1a636 100644
--- a/test/tint/builtins/gen/literal/textureStore/a6e78f.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureStore/a6e78f.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,15 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWTexture1D<uint4> arg_0 : register(u0, space1);
+void textureStore_a6e78f() {
+  arg_0[1u] = (1u).xxxx;
+}
+
+void fragment_main() {
+  textureStore_a6e78f();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  textureStore_a6e78f();
+}
+
diff --git a/test/tint/builtins/gen/literal/textureStore/a702b6.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/textureStore/a702b6.wgsl.expected.ir.dxc.hlsl
index 685a9ee..bb70c71 100644
--- a/test/tint/builtins/gen/literal/textureStore/a702b6.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureStore/a702b6.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,16 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWTexture2DArray<uint4> arg_0 : register(u0, space1);
+void textureStore_a702b6() {
+  RWTexture2DArray<uint4> v = arg_0;
+  v[int3((1).xx, int(1))] = (1u).xxxx;
+}
+
+void fragment_main() {
+  textureStore_a702b6();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  textureStore_a702b6();
+}
+
diff --git a/test/tint/builtins/gen/literal/textureStore/a702b6.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/textureStore/a702b6.wgsl.expected.ir.fxc.hlsl
index 685a9ee..bb70c71 100644
--- a/test/tint/builtins/gen/literal/textureStore/a702b6.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureStore/a702b6.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,16 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWTexture2DArray<uint4> arg_0 : register(u0, space1);
+void textureStore_a702b6() {
+  RWTexture2DArray<uint4> v = arg_0;
+  v[int3((1).xx, int(1))] = (1u).xxxx;
+}
+
+void fragment_main() {
+  textureStore_a702b6();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  textureStore_a702b6();
+}
+
diff --git a/test/tint/builtins/gen/literal/textureStore/a7fc47.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/textureStore/a7fc47.wgsl.expected.ir.dxc.hlsl
index 685a9ee..c243af7 100644
--- a/test/tint/builtins/gen/literal/textureStore/a7fc47.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureStore/a7fc47.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,15 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWTexture1D<float4> arg_0 : register(u0, space1);
+void textureStore_a7fc47() {
+  arg_0[1u] = (1.0f).xxxx;
+}
+
+void fragment_main() {
+  textureStore_a7fc47();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  textureStore_a7fc47();
+}
+
diff --git a/test/tint/builtins/gen/literal/textureStore/a7fc47.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/textureStore/a7fc47.wgsl.expected.ir.fxc.hlsl
index 685a9ee..c243af7 100644
--- a/test/tint/builtins/gen/literal/textureStore/a7fc47.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureStore/a7fc47.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,15 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWTexture1D<float4> arg_0 : register(u0, space1);
+void textureStore_a7fc47() {
+  arg_0[1u] = (1.0f).xxxx;
+}
+
+void fragment_main() {
+  textureStore_a7fc47();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  textureStore_a7fc47();
+}
+
diff --git a/test/tint/builtins/gen/literal/textureStore/a9298c.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/textureStore/a9298c.wgsl.expected.ir.dxc.hlsl
index 685a9ee..11662a8 100644
--- a/test/tint/builtins/gen/literal/textureStore/a9298c.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureStore/a9298c.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,15 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWTexture1D<uint4> arg_0 : register(u0, space1);
+void textureStore_a9298c() {
+  arg_0[1u] = (1u).xxxx;
+}
+
+void fragment_main() {
+  textureStore_a9298c();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  textureStore_a9298c();
+}
+
diff --git a/test/tint/builtins/gen/literal/textureStore/a9298c.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/textureStore/a9298c.wgsl.expected.ir.fxc.hlsl
index 685a9ee..11662a8 100644
--- a/test/tint/builtins/gen/literal/textureStore/a9298c.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureStore/a9298c.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,15 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWTexture1D<uint4> arg_0 : register(u0, space1);
+void textureStore_a9298c() {
+  arg_0[1u] = (1u).xxxx;
+}
+
+void fragment_main() {
+  textureStore_a9298c();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  textureStore_a9298c();
+}
+
diff --git a/test/tint/builtins/gen/literal/textureStore/a9426c.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/textureStore/a9426c.wgsl.expected.ir.dxc.hlsl
index 685a9ee..482ed1c 100644
--- a/test/tint/builtins/gen/literal/textureStore/a9426c.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureStore/a9426c.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,16 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWTexture2DArray<uint4> arg_0 : register(u0, space1);
+void textureStore_a9426c() {
+  RWTexture2DArray<uint4> v = arg_0;
+  v[uint3((1u).xx, uint(1u))] = (1u).xxxx;
+}
+
+void fragment_main() {
+  textureStore_a9426c();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  textureStore_a9426c();
+}
+
diff --git a/test/tint/builtins/gen/literal/textureStore/a9426c.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/textureStore/a9426c.wgsl.expected.ir.fxc.hlsl
index 685a9ee..482ed1c 100644
--- a/test/tint/builtins/gen/literal/textureStore/a9426c.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureStore/a9426c.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,16 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWTexture2DArray<uint4> arg_0 : register(u0, space1);
+void textureStore_a9426c() {
+  RWTexture2DArray<uint4> v = arg_0;
+  v[uint3((1u).xx, uint(1u))] = (1u).xxxx;
+}
+
+void fragment_main() {
+  textureStore_a9426c();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  textureStore_a9426c();
+}
+
diff --git a/test/tint/builtins/gen/literal/textureStore/ab03b6.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/textureStore/ab03b6.wgsl.expected.ir.dxc.hlsl
index 685a9ee..74b2fd9 100644
--- a/test/tint/builtins/gen/literal/textureStore/ab03b6.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureStore/ab03b6.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,15 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWTexture3D<uint4> arg_0 : register(u0, space1);
+void textureStore_ab03b6() {
+  arg_0[(1).xxx] = (1u).xxxx;
+}
+
+void fragment_main() {
+  textureStore_ab03b6();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  textureStore_ab03b6();
+}
+
diff --git a/test/tint/builtins/gen/literal/textureStore/ab03b6.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/textureStore/ab03b6.wgsl.expected.ir.fxc.hlsl
index 685a9ee..74b2fd9 100644
--- a/test/tint/builtins/gen/literal/textureStore/ab03b6.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureStore/ab03b6.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,15 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWTexture3D<uint4> arg_0 : register(u0, space1);
+void textureStore_ab03b6() {
+  arg_0[(1).xxx] = (1u).xxxx;
+}
+
+void fragment_main() {
+  textureStore_ab03b6();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  textureStore_ab03b6();
+}
+
diff --git a/test/tint/builtins/gen/literal/textureStore/ab788e.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/textureStore/ab788e.wgsl.expected.ir.dxc.hlsl
index 685a9ee..f170f13 100644
--- a/test/tint/builtins/gen/literal/textureStore/ab788e.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureStore/ab788e.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,15 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWTexture2D<float4> arg_0 : register(u0, space1);
+void textureStore_ab788e() {
+  arg_0[(1).xx] = (1.0f).xxxx;
+}
+
+void fragment_main() {
+  textureStore_ab788e();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  textureStore_ab788e();
+}
+
diff --git a/test/tint/builtins/gen/literal/textureStore/ab788e.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/textureStore/ab788e.wgsl.expected.ir.fxc.hlsl
index 685a9ee..f170f13 100644
--- a/test/tint/builtins/gen/literal/textureStore/ab788e.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureStore/ab788e.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,15 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWTexture2D<float4> arg_0 : register(u0, space1);
+void textureStore_ab788e() {
+  arg_0[(1).xx] = (1.0f).xxxx;
+}
+
+void fragment_main() {
+  textureStore_ab788e();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  textureStore_ab788e();
+}
+
diff --git a/test/tint/builtins/gen/literal/textureStore/abdd21.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/textureStore/abdd21.wgsl.expected.ir.dxc.hlsl
index 685a9ee..3ae3213 100644
--- a/test/tint/builtins/gen/literal/textureStore/abdd21.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureStore/abdd21.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,16 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWTexture2DArray<uint4> arg_0 : register(u0, space1);
+void textureStore_abdd21() {
+  RWTexture2DArray<uint4> v = arg_0;
+  v[uint3((1u).xx, uint(1u))] = (1u).xxxx;
+}
+
+void fragment_main() {
+  textureStore_abdd21();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  textureStore_abdd21();
+}
+
diff --git a/test/tint/builtins/gen/literal/textureStore/abdd21.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/textureStore/abdd21.wgsl.expected.ir.fxc.hlsl
index 685a9ee..3ae3213 100644
--- a/test/tint/builtins/gen/literal/textureStore/abdd21.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureStore/abdd21.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,16 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWTexture2DArray<uint4> arg_0 : register(u0, space1);
+void textureStore_abdd21() {
+  RWTexture2DArray<uint4> v = arg_0;
+  v[uint3((1u).xx, uint(1u))] = (1u).xxxx;
+}
+
+void fragment_main() {
+  textureStore_abdd21();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  textureStore_abdd21();
+}
+
diff --git a/test/tint/builtins/gen/literal/textureStore/ac0a55.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/textureStore/ac0a55.wgsl.expected.ir.dxc.hlsl
index 685a9ee..be053f0 100644
--- a/test/tint/builtins/gen/literal/textureStore/ac0a55.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureStore/ac0a55.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,16 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWTexture2DArray<uint4> arg_0 : register(u0, space1);
+void textureStore_ac0a55() {
+  RWTexture2DArray<uint4> v = arg_0;
+  v[uint3((1u).xx, uint(1u))] = (1u).xxxx;
+}
+
+void fragment_main() {
+  textureStore_ac0a55();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  textureStore_ac0a55();
+}
+
diff --git a/test/tint/builtins/gen/literal/textureStore/ac0a55.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/textureStore/ac0a55.wgsl.expected.ir.fxc.hlsl
index 685a9ee..be053f0 100644
--- a/test/tint/builtins/gen/literal/textureStore/ac0a55.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureStore/ac0a55.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,16 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWTexture2DArray<uint4> arg_0 : register(u0, space1);
+void textureStore_ac0a55() {
+  RWTexture2DArray<uint4> v = arg_0;
+  v[uint3((1u).xx, uint(1u))] = (1u).xxxx;
+}
+
+void fragment_main() {
+  textureStore_ac0a55();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  textureStore_ac0a55();
+}
+
diff --git a/test/tint/builtins/gen/literal/textureStore/ac67aa.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/textureStore/ac67aa.wgsl.expected.ir.dxc.hlsl
index 685a9ee..dfa5721 100644
--- a/test/tint/builtins/gen/literal/textureStore/ac67aa.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureStore/ac67aa.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,15 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWTexture3D<uint4> arg_0 : register(u0, space1);
+void textureStore_ac67aa() {
+  arg_0[(1).xxx] = (1u).xxxx;
+}
+
+void fragment_main() {
+  textureStore_ac67aa();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  textureStore_ac67aa();
+}
+
diff --git a/test/tint/builtins/gen/literal/textureStore/ac67aa.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/textureStore/ac67aa.wgsl.expected.ir.fxc.hlsl
index 685a9ee..dfa5721 100644
--- a/test/tint/builtins/gen/literal/textureStore/ac67aa.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureStore/ac67aa.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,15 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWTexture3D<uint4> arg_0 : register(u0, space1);
+void textureStore_ac67aa() {
+  arg_0[(1).xxx] = (1u).xxxx;
+}
+
+void fragment_main() {
+  textureStore_ac67aa();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  textureStore_ac67aa();
+}
+
diff --git a/test/tint/builtins/gen/literal/textureStore/ae6a2a.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/textureStore/ae6a2a.wgsl.expected.ir.dxc.hlsl
index 685a9ee..fe2a23d 100644
--- a/test/tint/builtins/gen/literal/textureStore/ae6a2a.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureStore/ae6a2a.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,16 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWTexture2DArray<float4> arg_0 : register(u0, space1);
+void textureStore_ae6a2a() {
+  RWTexture2DArray<float4> v = arg_0;
+  v[uint3((1u).xx, uint(1u))] = (1.0f).xxxx;
+}
+
+void fragment_main() {
+  textureStore_ae6a2a();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  textureStore_ae6a2a();
+}
+
diff --git a/test/tint/builtins/gen/literal/textureStore/ae6a2a.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/textureStore/ae6a2a.wgsl.expected.ir.fxc.hlsl
index 685a9ee..fe2a23d 100644
--- a/test/tint/builtins/gen/literal/textureStore/ae6a2a.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureStore/ae6a2a.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,16 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWTexture2DArray<float4> arg_0 : register(u0, space1);
+void textureStore_ae6a2a() {
+  RWTexture2DArray<float4> v = arg_0;
+  v[uint3((1u).xx, uint(1u))] = (1.0f).xxxx;
+}
+
+void fragment_main() {
+  textureStore_ae6a2a();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  textureStore_ae6a2a();
+}
+
diff --git a/test/tint/builtins/gen/literal/textureStore/aeb38a.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/textureStore/aeb38a.wgsl.expected.ir.dxc.hlsl
index 685a9ee..8ef441b 100644
--- a/test/tint/builtins/gen/literal/textureStore/aeb38a.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureStore/aeb38a.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,15 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWTexture2D<uint4> arg_0 : register(u0, space1);
+void textureStore_aeb38a() {
+  arg_0[(1u).xx] = (1u).xxxx;
+}
+
+void fragment_main() {
+  textureStore_aeb38a();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  textureStore_aeb38a();
+}
+
diff --git a/test/tint/builtins/gen/literal/textureStore/aeb38a.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/textureStore/aeb38a.wgsl.expected.ir.fxc.hlsl
index 685a9ee..8ef441b 100644
--- a/test/tint/builtins/gen/literal/textureStore/aeb38a.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureStore/aeb38a.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,15 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWTexture2D<uint4> arg_0 : register(u0, space1);
+void textureStore_aeb38a() {
+  arg_0[(1u).xx] = (1u).xxxx;
+}
+
+void fragment_main() {
+  textureStore_aeb38a();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  textureStore_aeb38a();
+}
+
diff --git a/test/tint/builtins/gen/literal/textureStore/aedea3.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/textureStore/aedea3.wgsl.expected.ir.dxc.hlsl
index 685a9ee..60be8e5 100644
--- a/test/tint/builtins/gen/literal/textureStore/aedea3.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureStore/aedea3.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,16 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWTexture2DArray<uint4> arg_0 : register(u0, space1);
+void textureStore_aedea3() {
+  RWTexture2DArray<uint4> v = arg_0;
+  v[uint3((1u).xx, uint(1))] = (1u).xxxx;
+}
+
+void fragment_main() {
+  textureStore_aedea3();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  textureStore_aedea3();
+}
+
diff --git a/test/tint/builtins/gen/literal/textureStore/aedea3.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/textureStore/aedea3.wgsl.expected.ir.fxc.hlsl
index 685a9ee..60be8e5 100644
--- a/test/tint/builtins/gen/literal/textureStore/aedea3.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureStore/aedea3.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,16 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWTexture2DArray<uint4> arg_0 : register(u0, space1);
+void textureStore_aedea3() {
+  RWTexture2DArray<uint4> v = arg_0;
+  v[uint3((1u).xx, uint(1))] = (1u).xxxx;
+}
+
+void fragment_main() {
+  textureStore_aedea3();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  textureStore_aedea3();
+}
+
diff --git a/test/tint/builtins/gen/literal/textureStore/b16110.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/textureStore/b16110.wgsl.expected.ir.dxc.hlsl
index 685a9ee..bec8c99 100644
--- a/test/tint/builtins/gen/literal/textureStore/b16110.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureStore/b16110.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,16 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWTexture2DArray<int4> arg_0 : register(u0, space1);
+void textureStore_b16110() {
+  RWTexture2DArray<int4> v = arg_0;
+  v[uint3((1u).xx, uint(1u))] = (1).xxxx;
+}
+
+void fragment_main() {
+  textureStore_b16110();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  textureStore_b16110();
+}
+
diff --git a/test/tint/builtins/gen/literal/textureStore/b16110.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/textureStore/b16110.wgsl.expected.ir.fxc.hlsl
index 685a9ee..bec8c99 100644
--- a/test/tint/builtins/gen/literal/textureStore/b16110.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureStore/b16110.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,16 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWTexture2DArray<int4> arg_0 : register(u0, space1);
+void textureStore_b16110() {
+  RWTexture2DArray<int4> v = arg_0;
+  v[uint3((1u).xx, uint(1u))] = (1).xxxx;
+}
+
+void fragment_main() {
+  textureStore_b16110();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  textureStore_b16110();
+}
+
diff --git a/test/tint/builtins/gen/literal/textureStore/b286b4.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/textureStore/b286b4.wgsl.expected.ir.dxc.hlsl
index 685a9ee..b6b65fd 100644
--- a/test/tint/builtins/gen/literal/textureStore/b286b4.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureStore/b286b4.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,16 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWTexture2DArray<uint4> arg_0 : register(u0, space1);
+void textureStore_b286b4() {
+  RWTexture2DArray<uint4> v = arg_0;
+  v[int3((1).xx, int(1))] = (1u).xxxx;
+}
+
+void fragment_main() {
+  textureStore_b286b4();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  textureStore_b286b4();
+}
+
diff --git a/test/tint/builtins/gen/literal/textureStore/b286b4.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/textureStore/b286b4.wgsl.expected.ir.fxc.hlsl
index 685a9ee..b6b65fd 100644
--- a/test/tint/builtins/gen/literal/textureStore/b286b4.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureStore/b286b4.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,16 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWTexture2DArray<uint4> arg_0 : register(u0, space1);
+void textureStore_b286b4() {
+  RWTexture2DArray<uint4> v = arg_0;
+  v[int3((1).xx, int(1))] = (1u).xxxx;
+}
+
+void fragment_main() {
+  textureStore_b286b4();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  textureStore_b286b4();
+}
+
diff --git a/test/tint/builtins/gen/literal/textureStore/b36bc1.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/textureStore/b36bc1.wgsl.expected.ir.dxc.hlsl
index 685a9ee..7e9dabc 100644
--- a/test/tint/builtins/gen/literal/textureStore/b36bc1.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureStore/b36bc1.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,15 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWTexture3D<uint4> arg_0 : register(u0, space1);
+void textureStore_b36bc1() {
+  arg_0[(1u).xxx] = (1u).xxxx;
+}
+
+void fragment_main() {
+  textureStore_b36bc1();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  textureStore_b36bc1();
+}
+
diff --git a/test/tint/builtins/gen/literal/textureStore/b36bc1.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/textureStore/b36bc1.wgsl.expected.ir.fxc.hlsl
index 685a9ee..7e9dabc 100644
--- a/test/tint/builtins/gen/literal/textureStore/b36bc1.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureStore/b36bc1.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,15 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWTexture3D<uint4> arg_0 : register(u0, space1);
+void textureStore_b36bc1() {
+  arg_0[(1u).xxx] = (1u).xxxx;
+}
+
+void fragment_main() {
+  textureStore_b36bc1();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  textureStore_b36bc1();
+}
+
diff --git a/test/tint/builtins/gen/literal/textureStore/b42fd3.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/textureStore/b42fd3.wgsl.expected.ir.dxc.hlsl
index 685a9ee..29ec2d1 100644
--- a/test/tint/builtins/gen/literal/textureStore/b42fd3.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureStore/b42fd3.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,16 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWTexture2DArray<uint4> arg_0 : register(u0, space1);
+void textureStore_b42fd3() {
+  RWTexture2DArray<uint4> v = arg_0;
+  v[uint3((1u).xx, uint(1u))] = (1u).xxxx;
+}
+
+void fragment_main() {
+  textureStore_b42fd3();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  textureStore_b42fd3();
+}
+
diff --git a/test/tint/builtins/gen/literal/textureStore/b42fd3.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/textureStore/b42fd3.wgsl.expected.ir.fxc.hlsl
index 685a9ee..29ec2d1 100644
--- a/test/tint/builtins/gen/literal/textureStore/b42fd3.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureStore/b42fd3.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,16 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWTexture2DArray<uint4> arg_0 : register(u0, space1);
+void textureStore_b42fd3() {
+  RWTexture2DArray<uint4> v = arg_0;
+  v[uint3((1u).xx, uint(1u))] = (1u).xxxx;
+}
+
+void fragment_main() {
+  textureStore_b42fd3();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  textureStore_b42fd3();
+}
+
diff --git a/test/tint/builtins/gen/literal/textureStore/b4389e.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/textureStore/b4389e.wgsl.expected.ir.dxc.hlsl
index 685a9ee..4f4aadb 100644
--- a/test/tint/builtins/gen/literal/textureStore/b4389e.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureStore/b4389e.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,15 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWTexture3D<float4> arg_0 : register(u0, space1);
+void textureStore_b4389e() {
+  arg_0[(1u).xxx] = (1.0f).xxxx;
+}
+
+void fragment_main() {
+  textureStore_b4389e();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  textureStore_b4389e();
+}
+
diff --git a/test/tint/builtins/gen/literal/textureStore/b4389e.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/textureStore/b4389e.wgsl.expected.ir.fxc.hlsl
index 685a9ee..4f4aadb 100644
--- a/test/tint/builtins/gen/literal/textureStore/b4389e.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureStore/b4389e.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,15 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWTexture3D<float4> arg_0 : register(u0, space1);
+void textureStore_b4389e() {
+  arg_0[(1u).xxx] = (1.0f).xxxx;
+}
+
+void fragment_main() {
+  textureStore_b4389e();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  textureStore_b4389e();
+}
+
diff --git a/test/tint/builtins/gen/literal/textureStore/b706b1.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/textureStore/b706b1.wgsl.expected.ir.dxc.hlsl
index 685a9ee..d952af3 100644
--- a/test/tint/builtins/gen/literal/textureStore/b706b1.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureStore/b706b1.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,15 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWTexture3D<int4> arg_0 : register(u0, space1);
+void textureStore_b706b1() {
+  arg_0[(1).xxx] = (1).xxxx;
+}
+
+void fragment_main() {
+  textureStore_b706b1();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  textureStore_b706b1();
+}
+
diff --git a/test/tint/builtins/gen/literal/textureStore/b706b1.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/textureStore/b706b1.wgsl.expected.ir.fxc.hlsl
index 685a9ee..d952af3 100644
--- a/test/tint/builtins/gen/literal/textureStore/b706b1.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureStore/b706b1.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,15 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWTexture3D<int4> arg_0 : register(u0, space1);
+void textureStore_b706b1() {
+  arg_0[(1).xxx] = (1).xxxx;
+}
+
+void fragment_main() {
+  textureStore_b706b1();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  textureStore_b706b1();
+}
+
diff --git a/test/tint/builtins/gen/literal/textureStore/b70ded.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/textureStore/b70ded.wgsl.expected.ir.dxc.hlsl
index 685a9ee..86d4b7b 100644
--- a/test/tint/builtins/gen/literal/textureStore/b70ded.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureStore/b70ded.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,15 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWTexture1D<uint4> arg_0 : register(u0, space1);
+void textureStore_b70ded() {
+  arg_0[1u] = (1u).xxxx;
+}
+
+void fragment_main() {
+  textureStore_b70ded();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  textureStore_b70ded();
+}
+
diff --git a/test/tint/builtins/gen/literal/textureStore/b70ded.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/textureStore/b70ded.wgsl.expected.ir.fxc.hlsl
index 685a9ee..86d4b7b 100644
--- a/test/tint/builtins/gen/literal/textureStore/b70ded.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureStore/b70ded.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,15 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWTexture1D<uint4> arg_0 : register(u0, space1);
+void textureStore_b70ded() {
+  arg_0[1u] = (1u).xxxx;
+}
+
+void fragment_main() {
+  textureStore_b70ded();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  textureStore_b70ded();
+}
+
diff --git a/test/tint/builtins/gen/literal/textureStore/b71c13.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/textureStore/b71c13.wgsl.expected.ir.dxc.hlsl
index 685a9ee..5957bb1 100644
--- a/test/tint/builtins/gen/literal/textureStore/b71c13.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureStore/b71c13.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,16 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWTexture2DArray<float4> arg_0 : register(u0, space1);
+void textureStore_b71c13() {
+  RWTexture2DArray<float4> v = arg_0;
+  v[uint3((1u).xx, uint(1))] = (1.0f).xxxx;
+}
+
+void fragment_main() {
+  textureStore_b71c13();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  textureStore_b71c13();
+}
+
diff --git a/test/tint/builtins/gen/literal/textureStore/b71c13.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/textureStore/b71c13.wgsl.expected.ir.fxc.hlsl
index 685a9ee..5957bb1 100644
--- a/test/tint/builtins/gen/literal/textureStore/b71c13.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureStore/b71c13.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,16 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWTexture2DArray<float4> arg_0 : register(u0, space1);
+void textureStore_b71c13() {
+  RWTexture2DArray<float4> v = arg_0;
+  v[uint3((1u).xx, uint(1))] = (1.0f).xxxx;
+}
+
+void fragment_main() {
+  textureStore_b71c13();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  textureStore_b71c13();
+}
+
diff --git a/test/tint/builtins/gen/literal/textureStore/b7232c.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/textureStore/b7232c.wgsl.expected.ir.dxc.hlsl
index 685a9ee..d5127bd 100644
--- a/test/tint/builtins/gen/literal/textureStore/b7232c.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureStore/b7232c.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,15 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWTexture1D<float4> arg_0 : register(u0, space1);
+void textureStore_b7232c() {
+  arg_0[1u] = (1.0f).xxxx;
+}
+
+void fragment_main() {
+  textureStore_b7232c();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  textureStore_b7232c();
+}
+
diff --git a/test/tint/builtins/gen/literal/textureStore/b7232c.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/textureStore/b7232c.wgsl.expected.ir.fxc.hlsl
index 685a9ee..d5127bd 100644
--- a/test/tint/builtins/gen/literal/textureStore/b7232c.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureStore/b7232c.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,15 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWTexture1D<float4> arg_0 : register(u0, space1);
+void textureStore_b7232c() {
+  arg_0[1u] = (1.0f).xxxx;
+}
+
+void fragment_main() {
+  textureStore_b7232c();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  textureStore_b7232c();
+}
+
diff --git a/test/tint/builtins/gen/literal/textureStore/b76ff3.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/textureStore/b76ff3.wgsl.expected.ir.dxc.hlsl
index 685a9ee..98a8610 100644
--- a/test/tint/builtins/gen/literal/textureStore/b76ff3.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureStore/b76ff3.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,15 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWTexture2D<int4> arg_0 : register(u0, space1);
+void textureStore_b76ff3() {
+  arg_0[(1u).xx] = (1).xxxx;
+}
+
+void fragment_main() {
+  textureStore_b76ff3();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  textureStore_b76ff3();
+}
+
diff --git a/test/tint/builtins/gen/literal/textureStore/b76ff3.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/textureStore/b76ff3.wgsl.expected.ir.fxc.hlsl
index 685a9ee..98a8610 100644
--- a/test/tint/builtins/gen/literal/textureStore/b76ff3.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureStore/b76ff3.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,15 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWTexture2D<int4> arg_0 : register(u0, space1);
+void textureStore_b76ff3() {
+  arg_0[(1u).xx] = (1).xxxx;
+}
+
+void fragment_main() {
+  textureStore_b76ff3();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  textureStore_b76ff3();
+}
+
diff --git a/test/tint/builtins/gen/literal/textureStore/b77161.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/textureStore/b77161.wgsl.expected.ir.dxc.hlsl
index 685a9ee..0999bce 100644
--- a/test/tint/builtins/gen/literal/textureStore/b77161.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureStore/b77161.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,15 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWTexture1D<uint4> arg_0 : register(u0, space1);
+void textureStore_b77161() {
+  arg_0[1u] = (1u).xxxx;
+}
+
+void fragment_main() {
+  textureStore_b77161();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  textureStore_b77161();
+}
+
diff --git a/test/tint/builtins/gen/literal/textureStore/b77161.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/textureStore/b77161.wgsl.expected.ir.fxc.hlsl
index 685a9ee..0999bce 100644
--- a/test/tint/builtins/gen/literal/textureStore/b77161.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureStore/b77161.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,15 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWTexture1D<uint4> arg_0 : register(u0, space1);
+void textureStore_b77161() {
+  arg_0[1u] = (1u).xxxx;
+}
+
+void fragment_main() {
+  textureStore_b77161();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  textureStore_b77161();
+}
+
diff --git a/test/tint/builtins/gen/literal/textureStore/b89ffb.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/textureStore/b89ffb.wgsl.expected.ir.dxc.hlsl
index 685a9ee..b3f0328 100644
--- a/test/tint/builtins/gen/literal/textureStore/b89ffb.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureStore/b89ffb.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,16 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWTexture2DArray<float4> arg_0 : register(u0, space1);
+void textureStore_b89ffb() {
+  RWTexture2DArray<float4> v = arg_0;
+  v[int3((1).xx, int(1u))] = (1.0f).xxxx;
+}
+
+void fragment_main() {
+  textureStore_b89ffb();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  textureStore_b89ffb();
+}
+
diff --git a/test/tint/builtins/gen/literal/textureStore/b89ffb.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/textureStore/b89ffb.wgsl.expected.ir.fxc.hlsl
index 685a9ee..b3f0328 100644
--- a/test/tint/builtins/gen/literal/textureStore/b89ffb.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureStore/b89ffb.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,16 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWTexture2DArray<float4> arg_0 : register(u0, space1);
+void textureStore_b89ffb() {
+  RWTexture2DArray<float4> v = arg_0;
+  v[int3((1).xx, int(1u))] = (1.0f).xxxx;
+}
+
+void fragment_main() {
+  textureStore_b89ffb();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  textureStore_b89ffb();
+}
+
diff --git a/test/tint/builtins/gen/literal/textureStore/b91b86.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/textureStore/b91b86.wgsl.expected.ir.dxc.hlsl
index 685a9ee..54a1404 100644
--- a/test/tint/builtins/gen/literal/textureStore/b91b86.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureStore/b91b86.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,16 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWTexture2DArray<float4> arg_0 : register(u0, space1);
+void textureStore_b91b86() {
+  RWTexture2DArray<float4> v = arg_0;
+  v[uint3((1u).xx, uint(1))] = (1.0f).xxxx;
+}
+
+void fragment_main() {
+  textureStore_b91b86();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  textureStore_b91b86();
+}
+
diff --git a/test/tint/builtins/gen/literal/textureStore/b91b86.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/textureStore/b91b86.wgsl.expected.ir.fxc.hlsl
index 685a9ee..54a1404 100644
--- a/test/tint/builtins/gen/literal/textureStore/b91b86.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureStore/b91b86.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,16 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWTexture2DArray<float4> arg_0 : register(u0, space1);
+void textureStore_b91b86() {
+  RWTexture2DArray<float4> v = arg_0;
+  v[uint3((1u).xx, uint(1))] = (1.0f).xxxx;
+}
+
+void fragment_main() {
+  textureStore_b91b86();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  textureStore_b91b86();
+}
+
diff --git a/test/tint/builtins/gen/literal/textureStore/b9c81a.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/textureStore/b9c81a.wgsl.expected.ir.dxc.hlsl
index 685a9ee..ec2cc65 100644
--- a/test/tint/builtins/gen/literal/textureStore/b9c81a.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureStore/b9c81a.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,15 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWTexture3D<uint4> arg_0 : register(u0, space1);
+void textureStore_b9c81a() {
+  arg_0[(1).xxx] = (1u).xxxx;
+}
+
+void fragment_main() {
+  textureStore_b9c81a();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  textureStore_b9c81a();
+}
+
diff --git a/test/tint/builtins/gen/literal/textureStore/b9c81a.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/textureStore/b9c81a.wgsl.expected.ir.fxc.hlsl
index 685a9ee..ec2cc65 100644
--- a/test/tint/builtins/gen/literal/textureStore/b9c81a.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureStore/b9c81a.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,15 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWTexture3D<uint4> arg_0 : register(u0, space1);
+void textureStore_b9c81a() {
+  arg_0[(1).xxx] = (1u).xxxx;
+}
+
+void fragment_main() {
+  textureStore_b9c81a();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  textureStore_b9c81a();
+}
+
diff --git a/test/tint/builtins/gen/literal/textureStore/b9d863.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/textureStore/b9d863.wgsl.expected.ir.dxc.hlsl
index 685a9ee..4305944 100644
--- a/test/tint/builtins/gen/literal/textureStore/b9d863.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureStore/b9d863.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,16 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWTexture2DArray<uint4> arg_0 : register(u0, space1);
+void textureStore_b9d863() {
+  RWTexture2DArray<uint4> v = arg_0;
+  v[int3((1).xx, int(1))] = (1u).xxxx;
+}
+
+void fragment_main() {
+  textureStore_b9d863();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  textureStore_b9d863();
+}
+
diff --git a/test/tint/builtins/gen/literal/textureStore/b9d863.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/textureStore/b9d863.wgsl.expected.ir.fxc.hlsl
index 685a9ee..4305944 100644
--- a/test/tint/builtins/gen/literal/textureStore/b9d863.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureStore/b9d863.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,16 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWTexture2DArray<uint4> arg_0 : register(u0, space1);
+void textureStore_b9d863() {
+  RWTexture2DArray<uint4> v = arg_0;
+  v[int3((1).xx, int(1))] = (1u).xxxx;
+}
+
+void fragment_main() {
+  textureStore_b9d863();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  textureStore_b9d863();
+}
+
diff --git a/test/tint/builtins/gen/literal/textureStore/bbcb7f.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/textureStore/bbcb7f.wgsl.expected.ir.dxc.hlsl
index 685a9ee..27a7d17 100644
--- a/test/tint/builtins/gen/literal/textureStore/bbcb7f.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureStore/bbcb7f.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,15 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWTexture2D<int4> arg_0 : register(u0, space1);
+void textureStore_bbcb7f() {
+  arg_0[(1).xx] = (1).xxxx;
+}
+
+void fragment_main() {
+  textureStore_bbcb7f();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  textureStore_bbcb7f();
+}
+
diff --git a/test/tint/builtins/gen/literal/textureStore/bbcb7f.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/textureStore/bbcb7f.wgsl.expected.ir.fxc.hlsl
index 685a9ee..27a7d17 100644
--- a/test/tint/builtins/gen/literal/textureStore/bbcb7f.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureStore/bbcb7f.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,15 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWTexture2D<int4> arg_0 : register(u0, space1);
+void textureStore_bbcb7f() {
+  arg_0[(1).xx] = (1).xxxx;
+}
+
+void fragment_main() {
+  textureStore_bbcb7f();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  textureStore_bbcb7f();
+}
+
diff --git a/test/tint/builtins/gen/literal/textureStore/bc1423.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/textureStore/bc1423.wgsl.expected.ir.dxc.hlsl
index 685a9ee..2c50031 100644
--- a/test/tint/builtins/gen/literal/textureStore/bc1423.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureStore/bc1423.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,16 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWTexture2DArray<uint4> arg_0 : register(u0, space1);
+void textureStore_bc1423() {
+  RWTexture2DArray<uint4> v = arg_0;
+  v[uint3((1u).xx, uint(1))] = (1u).xxxx;
+}
+
+void fragment_main() {
+  textureStore_bc1423();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  textureStore_bc1423();
+}
+
diff --git a/test/tint/builtins/gen/literal/textureStore/bc1423.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/textureStore/bc1423.wgsl.expected.ir.fxc.hlsl
index 685a9ee..2c50031 100644
--- a/test/tint/builtins/gen/literal/textureStore/bc1423.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureStore/bc1423.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,16 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWTexture2DArray<uint4> arg_0 : register(u0, space1);
+void textureStore_bc1423() {
+  RWTexture2DArray<uint4> v = arg_0;
+  v[uint3((1u).xx, uint(1))] = (1u).xxxx;
+}
+
+void fragment_main() {
+  textureStore_bc1423();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  textureStore_bc1423();
+}
+
diff --git a/test/tint/builtins/gen/literal/textureStore/bcc97a.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/textureStore/bcc97a.wgsl.expected.ir.dxc.hlsl
index 685a9ee..58a85ab 100644
--- a/test/tint/builtins/gen/literal/textureStore/bcc97a.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureStore/bcc97a.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,15 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWTexture2D<int4> arg_0 : register(u0, space1);
+void textureStore_bcc97a() {
+  arg_0[(1).xx] = (1).xxxx;
+}
+
+void fragment_main() {
+  textureStore_bcc97a();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  textureStore_bcc97a();
+}
+
diff --git a/test/tint/builtins/gen/literal/textureStore/bcc97a.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/textureStore/bcc97a.wgsl.expected.ir.fxc.hlsl
index 685a9ee..58a85ab 100644
--- a/test/tint/builtins/gen/literal/textureStore/bcc97a.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureStore/bcc97a.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,15 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWTexture2D<int4> arg_0 : register(u0, space1);
+void textureStore_bcc97a() {
+  arg_0[(1).xx] = (1).xxxx;
+}
+
+void fragment_main() {
+  textureStore_bcc97a();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  textureStore_bcc97a();
+}
+
diff --git a/test/tint/builtins/gen/literal/textureStore/bd6602.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/textureStore/bd6602.wgsl.expected.ir.dxc.hlsl
index 685a9ee..350f353 100644
--- a/test/tint/builtins/gen/literal/textureStore/bd6602.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureStore/bd6602.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,16 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWTexture2DArray<uint4> arg_0 : register(u0, space1);
+void textureStore_bd6602() {
+  RWTexture2DArray<uint4> v = arg_0;
+  v[uint3((1u).xx, uint(1))] = (1u).xxxx;
+}
+
+void fragment_main() {
+  textureStore_bd6602();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  textureStore_bd6602();
+}
+
diff --git a/test/tint/builtins/gen/literal/textureStore/bd6602.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/textureStore/bd6602.wgsl.expected.ir.fxc.hlsl
index 685a9ee..350f353 100644
--- a/test/tint/builtins/gen/literal/textureStore/bd6602.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureStore/bd6602.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,16 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWTexture2DArray<uint4> arg_0 : register(u0, space1);
+void textureStore_bd6602() {
+  RWTexture2DArray<uint4> v = arg_0;
+  v[uint3((1u).xx, uint(1))] = (1u).xxxx;
+}
+
+void fragment_main() {
+  textureStore_bd6602();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  textureStore_bd6602();
+}
+
diff --git a/test/tint/builtins/gen/literal/textureStore/be6e30.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/textureStore/be6e30.wgsl.expected.ir.dxc.hlsl
index 685a9ee..27065a2 100644
--- a/test/tint/builtins/gen/literal/textureStore/be6e30.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureStore/be6e30.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,15 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWTexture2D<float4> arg_0 : register(u0, space1);
+void textureStore_be6e30() {
+  arg_0[(1).xx] = (1.0f).xxxx;
+}
+
+void fragment_main() {
+  textureStore_be6e30();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  textureStore_be6e30();
+}
+
diff --git a/test/tint/builtins/gen/literal/textureStore/be6e30.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/textureStore/be6e30.wgsl.expected.ir.fxc.hlsl
index 685a9ee..27065a2 100644
--- a/test/tint/builtins/gen/literal/textureStore/be6e30.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureStore/be6e30.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,15 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWTexture2D<float4> arg_0 : register(u0, space1);
+void textureStore_be6e30() {
+  arg_0[(1).xx] = (1.0f).xxxx;
+}
+
+void fragment_main() {
+  textureStore_be6e30();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  textureStore_be6e30();
+}
+
diff --git a/test/tint/builtins/gen/literal/textureStore/bedbfc.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/textureStore/bedbfc.wgsl.expected.ir.dxc.hlsl
index 685a9ee..36f55c3 100644
--- a/test/tint/builtins/gen/literal/textureStore/bedbfc.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureStore/bedbfc.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,15 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWTexture3D<float4> arg_0 : register(u0, space1);
+void textureStore_bedbfc() {
+  arg_0[(1).xxx] = (1.0f).xxxx;
+}
+
+void fragment_main() {
+  textureStore_bedbfc();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  textureStore_bedbfc();
+}
+
diff --git a/test/tint/builtins/gen/literal/textureStore/bedbfc.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/textureStore/bedbfc.wgsl.expected.ir.fxc.hlsl
index 685a9ee..36f55c3 100644
--- a/test/tint/builtins/gen/literal/textureStore/bedbfc.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureStore/bedbfc.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,15 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWTexture3D<float4> arg_0 : register(u0, space1);
+void textureStore_bedbfc() {
+  arg_0[(1).xxx] = (1.0f).xxxx;
+}
+
+void fragment_main() {
+  textureStore_bedbfc();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  textureStore_bedbfc();
+}
+
diff --git a/test/tint/builtins/gen/literal/textureStore/bf775c.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/textureStore/bf775c.wgsl.expected.ir.dxc.hlsl
index 685a9ee..d1fe54b 100644
--- a/test/tint/builtins/gen/literal/textureStore/bf775c.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureStore/bf775c.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,15 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWTexture1D<int4> arg_0 : register(u0, space1);
+void textureStore_bf775c() {
+  arg_0[1] = (1).xxxx;
+}
+
+void fragment_main() {
+  textureStore_bf775c();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  textureStore_bf775c();
+}
+
diff --git a/test/tint/builtins/gen/literal/textureStore/bf775c.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/textureStore/bf775c.wgsl.expected.ir.fxc.hlsl
index 685a9ee..d1fe54b 100644
--- a/test/tint/builtins/gen/literal/textureStore/bf775c.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureStore/bf775c.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,15 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWTexture1D<int4> arg_0 : register(u0, space1);
+void textureStore_bf775c() {
+  arg_0[1] = (1).xxxx;
+}
+
+void fragment_main() {
+  textureStore_bf775c();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  textureStore_bf775c();
+}
+
diff --git a/test/tint/builtins/gen/literal/textureStore/c06463.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/textureStore/c06463.wgsl.expected.ir.dxc.hlsl
index 685a9ee..a7b8016 100644
--- a/test/tint/builtins/gen/literal/textureStore/c06463.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureStore/c06463.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,16 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWTexture2DArray<float4> arg_0 : register(u0, space1);
+void textureStore_c06463() {
+  RWTexture2DArray<float4> v = arg_0;
+  v[int3((1).xx, int(1))] = (1.0f).xxxx;
+}
+
+void fragment_main() {
+  textureStore_c06463();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  textureStore_c06463();
+}
+
diff --git a/test/tint/builtins/gen/literal/textureStore/c06463.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/textureStore/c06463.wgsl.expected.ir.fxc.hlsl
index 685a9ee..a7b8016 100644
--- a/test/tint/builtins/gen/literal/textureStore/c06463.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureStore/c06463.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,16 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWTexture2DArray<float4> arg_0 : register(u0, space1);
+void textureStore_c06463() {
+  RWTexture2DArray<float4> v = arg_0;
+  v[int3((1).xx, int(1))] = (1.0f).xxxx;
+}
+
+void fragment_main() {
+  textureStore_c06463();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  textureStore_c06463();
+}
+
diff --git a/test/tint/builtins/gen/literal/textureStore/c1c664.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/textureStore/c1c664.wgsl.expected.ir.dxc.hlsl
index 685a9ee..f902a55 100644
--- a/test/tint/builtins/gen/literal/textureStore/c1c664.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureStore/c1c664.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,15 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWTexture2D<float4> arg_0 : register(u0, space1);
+void textureStore_c1c664() {
+  arg_0[(1).xx] = (1.0f).xxxx;
+}
+
+void fragment_main() {
+  textureStore_c1c664();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  textureStore_c1c664();
+}
+
diff --git a/test/tint/builtins/gen/literal/textureStore/c1c664.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/textureStore/c1c664.wgsl.expected.ir.fxc.hlsl
index 685a9ee..f902a55 100644
--- a/test/tint/builtins/gen/literal/textureStore/c1c664.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureStore/c1c664.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,15 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWTexture2D<float4> arg_0 : register(u0, space1);
+void textureStore_c1c664() {
+  arg_0[(1).xx] = (1.0f).xxxx;
+}
+
+void fragment_main() {
+  textureStore_c1c664();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  textureStore_c1c664();
+}
+
diff --git a/test/tint/builtins/gen/literal/textureStore/c1f29e.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/textureStore/c1f29e.wgsl.expected.ir.dxc.hlsl
index 685a9ee..07df181 100644
--- a/test/tint/builtins/gen/literal/textureStore/c1f29e.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureStore/c1f29e.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,15 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWTexture1D<float4> arg_0 : register(u0, space1);
+void textureStore_c1f29e() {
+  arg_0[1u] = (1.0f).xxxx;
+}
+
+void fragment_main() {
+  textureStore_c1f29e();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  textureStore_c1f29e();
+}
+
diff --git a/test/tint/builtins/gen/literal/textureStore/c1f29e.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/textureStore/c1f29e.wgsl.expected.ir.fxc.hlsl
index 685a9ee..07df181 100644
--- a/test/tint/builtins/gen/literal/textureStore/c1f29e.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureStore/c1f29e.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,15 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWTexture1D<float4> arg_0 : register(u0, space1);
+void textureStore_c1f29e() {
+  arg_0[1u] = (1.0f).xxxx;
+}
+
+void fragment_main() {
+  textureStore_c1f29e();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  textureStore_c1f29e();
+}
+
diff --git a/test/tint/builtins/gen/literal/textureStore/c1f760.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/textureStore/c1f760.wgsl.expected.ir.dxc.hlsl
index 685a9ee..dc4c471 100644
--- a/test/tint/builtins/gen/literal/textureStore/c1f760.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureStore/c1f760.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,16 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWTexture2DArray<uint4> arg_0 : register(u0, space1);
+void textureStore_c1f760() {
+  RWTexture2DArray<uint4> v = arg_0;
+  v[uint3((1u).xx, uint(1u))] = (1u).xxxx;
+}
+
+void fragment_main() {
+  textureStore_c1f760();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  textureStore_c1f760();
+}
+
diff --git a/test/tint/builtins/gen/literal/textureStore/c1f760.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/textureStore/c1f760.wgsl.expected.ir.fxc.hlsl
index 685a9ee..dc4c471 100644
--- a/test/tint/builtins/gen/literal/textureStore/c1f760.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureStore/c1f760.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,16 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWTexture2DArray<uint4> arg_0 : register(u0, space1);
+void textureStore_c1f760() {
+  RWTexture2DArray<uint4> v = arg_0;
+  v[uint3((1u).xx, uint(1u))] = (1u).xxxx;
+}
+
+void fragment_main() {
+  textureStore_c1f760();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  textureStore_c1f760();
+}
+
diff --git a/test/tint/builtins/gen/literal/textureStore/c2ca46.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/textureStore/c2ca46.wgsl.expected.ir.dxc.hlsl
index 685a9ee..00394a8 100644
--- a/test/tint/builtins/gen/literal/textureStore/c2ca46.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureStore/c2ca46.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,16 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWTexture2DArray<int4> arg_0 : register(u0, space1);
+void textureStore_c2ca46() {
+  RWTexture2DArray<int4> v = arg_0;
+  v[uint3((1u).xx, uint(1u))] = (1).xxxx;
+}
+
+void fragment_main() {
+  textureStore_c2ca46();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  textureStore_c2ca46();
+}
+
diff --git a/test/tint/builtins/gen/literal/textureStore/c2ca46.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/textureStore/c2ca46.wgsl.expected.ir.fxc.hlsl
index 685a9ee..00394a8 100644
--- a/test/tint/builtins/gen/literal/textureStore/c2ca46.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureStore/c2ca46.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,16 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWTexture2DArray<int4> arg_0 : register(u0, space1);
+void textureStore_c2ca46() {
+  RWTexture2DArray<int4> v = arg_0;
+  v[uint3((1u).xx, uint(1u))] = (1).xxxx;
+}
+
+void fragment_main() {
+  textureStore_c2ca46();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  textureStore_c2ca46();
+}
+
diff --git a/test/tint/builtins/gen/literal/textureStore/c32905.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/textureStore/c32905.wgsl.expected.ir.dxc.hlsl
index 685a9ee..1d63c7c 100644
--- a/test/tint/builtins/gen/literal/textureStore/c32905.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureStore/c32905.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,16 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWTexture2DArray<int4> arg_0 : register(u0, space1);
+void textureStore_c32905() {
+  RWTexture2DArray<int4> v = arg_0;
+  v[uint3((1u).xx, uint(1))] = (1).xxxx;
+}
+
+void fragment_main() {
+  textureStore_c32905();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  textureStore_c32905();
+}
+
diff --git a/test/tint/builtins/gen/literal/textureStore/c32905.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/textureStore/c32905.wgsl.expected.ir.fxc.hlsl
index 685a9ee..1d63c7c 100644
--- a/test/tint/builtins/gen/literal/textureStore/c32905.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureStore/c32905.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,16 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWTexture2DArray<int4> arg_0 : register(u0, space1);
+void textureStore_c32905() {
+  RWTexture2DArray<int4> v = arg_0;
+  v[uint3((1u).xx, uint(1))] = (1).xxxx;
+}
+
+void fragment_main() {
+  textureStore_c32905();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  textureStore_c32905();
+}
+
diff --git a/test/tint/builtins/gen/literal/textureStore/c33478.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/textureStore/c33478.wgsl.expected.ir.dxc.hlsl
index 685a9ee..4e7b05a 100644
--- a/test/tint/builtins/gen/literal/textureStore/c33478.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureStore/c33478.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,15 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWTexture3D<float4> arg_0 : register(u0, space1);
+void textureStore_c33478() {
+  arg_0[(1).xxx] = (1.0f).xxxx;
+}
+
+void fragment_main() {
+  textureStore_c33478();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  textureStore_c33478();
+}
+
diff --git a/test/tint/builtins/gen/literal/textureStore/c33478.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/textureStore/c33478.wgsl.expected.ir.fxc.hlsl
index 685a9ee..4e7b05a 100644
--- a/test/tint/builtins/gen/literal/textureStore/c33478.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureStore/c33478.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,15 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWTexture3D<float4> arg_0 : register(u0, space1);
+void textureStore_c33478() {
+  arg_0[(1).xxx] = (1.0f).xxxx;
+}
+
+void fragment_main() {
+  textureStore_c33478();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  textureStore_c33478();
+}
+
diff --git a/test/tint/builtins/gen/literal/textureStore/c35268.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/textureStore/c35268.wgsl.expected.ir.dxc.hlsl
index 685a9ee..88f71e6 100644
--- a/test/tint/builtins/gen/literal/textureStore/c35268.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureStore/c35268.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,16 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWTexture2DArray<uint4> arg_0 : register(u0, space1);
+void textureStore_c35268() {
+  RWTexture2DArray<uint4> v = arg_0;
+  v[uint3((1u).xx, uint(1))] = (1u).xxxx;
+}
+
+void fragment_main() {
+  textureStore_c35268();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  textureStore_c35268();
+}
+
diff --git a/test/tint/builtins/gen/literal/textureStore/c35268.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/textureStore/c35268.wgsl.expected.ir.fxc.hlsl
index 685a9ee..88f71e6 100644
--- a/test/tint/builtins/gen/literal/textureStore/c35268.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureStore/c35268.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,16 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWTexture2DArray<uint4> arg_0 : register(u0, space1);
+void textureStore_c35268() {
+  RWTexture2DArray<uint4> v = arg_0;
+  v[uint3((1u).xx, uint(1))] = (1u).xxxx;
+}
+
+void fragment_main() {
+  textureStore_c35268();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  textureStore_c35268();
+}
+
diff --git a/test/tint/builtins/gen/literal/textureStore/c5af1e.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/textureStore/c5af1e.wgsl.expected.ir.dxc.hlsl
index 685a9ee..0a218e7 100644
--- a/test/tint/builtins/gen/literal/textureStore/c5af1e.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureStore/c5af1e.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,15 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWTexture3D<float4> arg_0 : register(u0, space1);
+void textureStore_c5af1e() {
+  arg_0[(1).xxx] = (1.0f).xxxx;
+}
+
+void fragment_main() {
+  textureStore_c5af1e();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  textureStore_c5af1e();
+}
+
diff --git a/test/tint/builtins/gen/literal/textureStore/c5af1e.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/textureStore/c5af1e.wgsl.expected.ir.fxc.hlsl
index 685a9ee..0a218e7 100644
--- a/test/tint/builtins/gen/literal/textureStore/c5af1e.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureStore/c5af1e.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,15 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWTexture3D<float4> arg_0 : register(u0, space1);
+void textureStore_c5af1e() {
+  arg_0[(1).xxx] = (1.0f).xxxx;
+}
+
+void fragment_main() {
+  textureStore_c5af1e();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  textureStore_c5af1e();
+}
+
diff --git a/test/tint/builtins/gen/literal/textureStore/c63f05.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/textureStore/c63f05.wgsl.expected.ir.dxc.hlsl
index 685a9ee..9e8eb76 100644
--- a/test/tint/builtins/gen/literal/textureStore/c63f05.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureStore/c63f05.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,16 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWTexture2DArray<int4> arg_0 : register(u0, space1);
+void textureStore_c63f05() {
+  RWTexture2DArray<int4> v = arg_0;
+  v[uint3((1u).xx, uint(1))] = (1).xxxx;
+}
+
+void fragment_main() {
+  textureStore_c63f05();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  textureStore_c63f05();
+}
+
diff --git a/test/tint/builtins/gen/literal/textureStore/c63f05.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/textureStore/c63f05.wgsl.expected.ir.fxc.hlsl
index 685a9ee..9e8eb76 100644
--- a/test/tint/builtins/gen/literal/textureStore/c63f05.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureStore/c63f05.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,16 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWTexture2DArray<int4> arg_0 : register(u0, space1);
+void textureStore_c63f05() {
+  RWTexture2DArray<int4> v = arg_0;
+  v[uint3((1u).xx, uint(1))] = (1).xxxx;
+}
+
+void fragment_main() {
+  textureStore_c63f05();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  textureStore_c63f05();
+}
+
diff --git a/test/tint/builtins/gen/literal/textureStore/c79451.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/textureStore/c79451.wgsl.expected.ir.dxc.hlsl
index 685a9ee..8b5df47 100644
--- a/test/tint/builtins/gen/literal/textureStore/c79451.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureStore/c79451.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,15 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWTexture1D<int4> arg_0 : register(u0, space1);
+void textureStore_c79451() {
+  arg_0[1u] = (1).xxxx;
+}
+
+void fragment_main() {
+  textureStore_c79451();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  textureStore_c79451();
+}
+
diff --git a/test/tint/builtins/gen/literal/textureStore/c79451.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/textureStore/c79451.wgsl.expected.ir.fxc.hlsl
index 685a9ee..8b5df47 100644
--- a/test/tint/builtins/gen/literal/textureStore/c79451.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureStore/c79451.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,15 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWTexture1D<int4> arg_0 : register(u0, space1);
+void textureStore_c79451() {
+  arg_0[1u] = (1).xxxx;
+}
+
+void fragment_main() {
+  textureStore_c79451();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  textureStore_c79451();
+}
+
diff --git a/test/tint/builtins/gen/literal/textureStore/c863be.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/textureStore/c863be.wgsl.expected.ir.dxc.hlsl
index 685a9ee..79986f6 100644
--- a/test/tint/builtins/gen/literal/textureStore/c863be.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureStore/c863be.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,16 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWTexture2DArray<float4> arg_0 : register(u0, space1);
+void textureStore_c863be() {
+  RWTexture2DArray<float4> v = arg_0;
+  v[int3((1).xx, int(1))] = (1.0f).xxxx;
+}
+
+void fragment_main() {
+  textureStore_c863be();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  textureStore_c863be();
+}
+
diff --git a/test/tint/builtins/gen/literal/textureStore/c863be.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/textureStore/c863be.wgsl.expected.ir.fxc.hlsl
index 685a9ee..79986f6 100644
--- a/test/tint/builtins/gen/literal/textureStore/c863be.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureStore/c863be.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,16 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWTexture2DArray<float4> arg_0 : register(u0, space1);
+void textureStore_c863be() {
+  RWTexture2DArray<float4> v = arg_0;
+  v[int3((1).xx, int(1))] = (1.0f).xxxx;
+}
+
+void fragment_main() {
+  textureStore_c863be();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  textureStore_c863be();
+}
+
diff --git a/test/tint/builtins/gen/literal/textureStore/c9d780.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/textureStore/c9d780.wgsl.expected.ir.dxc.hlsl
index 685a9ee..3884679 100644
--- a/test/tint/builtins/gen/literal/textureStore/c9d780.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureStore/c9d780.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,15 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWTexture1D<float4> arg_0 : register(u0, space1);
+void textureStore_c9d780() {
+  arg_0[1u] = (1.0f).xxxx;
+}
+
+void fragment_main() {
+  textureStore_c9d780();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  textureStore_c9d780();
+}
+
diff --git a/test/tint/builtins/gen/literal/textureStore/c9d780.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/textureStore/c9d780.wgsl.expected.ir.fxc.hlsl
index 685a9ee..3884679 100644
--- a/test/tint/builtins/gen/literal/textureStore/c9d780.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureStore/c9d780.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,15 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWTexture1D<float4> arg_0 : register(u0, space1);
+void textureStore_c9d780() {
+  arg_0[1u] = (1.0f).xxxx;
+}
+
+void fragment_main() {
+  textureStore_c9d780();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  textureStore_c9d780();
+}
+
diff --git a/test/tint/builtins/gen/literal/textureStore/cb3b0b.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/textureStore/cb3b0b.wgsl.expected.ir.dxc.hlsl
index 685a9ee..7b09c33 100644
--- a/test/tint/builtins/gen/literal/textureStore/cb3b0b.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureStore/cb3b0b.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,15 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWTexture3D<int4> arg_0 : register(u0, space1);
+void textureStore_cb3b0b() {
+  arg_0[(1u).xxx] = (1).xxxx;
+}
+
+void fragment_main() {
+  textureStore_cb3b0b();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  textureStore_cb3b0b();
+}
+
diff --git a/test/tint/builtins/gen/literal/textureStore/cb3b0b.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/textureStore/cb3b0b.wgsl.expected.ir.fxc.hlsl
index 685a9ee..7b09c33 100644
--- a/test/tint/builtins/gen/literal/textureStore/cb3b0b.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureStore/cb3b0b.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,15 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWTexture3D<int4> arg_0 : register(u0, space1);
+void textureStore_cb3b0b() {
+  arg_0[(1u).xxx] = (1).xxxx;
+}
+
+void fragment_main() {
+  textureStore_cb3b0b();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  textureStore_cb3b0b();
+}
+
diff --git a/test/tint/builtins/gen/literal/textureStore/ccac20.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/textureStore/ccac20.wgsl.expected.ir.dxc.hlsl
index 685a9ee..eab5828 100644
--- a/test/tint/builtins/gen/literal/textureStore/ccac20.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureStore/ccac20.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,15 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWTexture2D<float4> arg_0 : register(u0, space1);
+void textureStore_ccac20() {
+  arg_0[(1u).xx] = (1.0f).xxxx;
+}
+
+void fragment_main() {
+  textureStore_ccac20();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  textureStore_ccac20();
+}
+
diff --git a/test/tint/builtins/gen/literal/textureStore/ccac20.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/textureStore/ccac20.wgsl.expected.ir.fxc.hlsl
index 685a9ee..eab5828 100644
--- a/test/tint/builtins/gen/literal/textureStore/ccac20.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureStore/ccac20.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,15 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWTexture2D<float4> arg_0 : register(u0, space1);
+void textureStore_ccac20() {
+  arg_0[(1u).xx] = (1.0f).xxxx;
+}
+
+void fragment_main() {
+  textureStore_ccac20();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  textureStore_ccac20();
+}
+
diff --git a/test/tint/builtins/gen/literal/textureStore/cd6755.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/textureStore/cd6755.wgsl.expected.ir.dxc.hlsl
index 685a9ee..152fdd8 100644
--- a/test/tint/builtins/gen/literal/textureStore/cd6755.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureStore/cd6755.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,15 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWTexture3D<uint4> arg_0 : register(u0, space1);
+void textureStore_cd6755() {
+  arg_0[(1u).xxx] = (1u).xxxx;
+}
+
+void fragment_main() {
+  textureStore_cd6755();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  textureStore_cd6755();
+}
+
diff --git a/test/tint/builtins/gen/literal/textureStore/cd6755.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/textureStore/cd6755.wgsl.expected.ir.fxc.hlsl
index 685a9ee..152fdd8 100644
--- a/test/tint/builtins/gen/literal/textureStore/cd6755.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureStore/cd6755.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,15 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWTexture3D<uint4> arg_0 : register(u0, space1);
+void textureStore_cd6755() {
+  arg_0[(1u).xxx] = (1u).xxxx;
+}
+
+void fragment_main() {
+  textureStore_cd6755();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  textureStore_cd6755();
+}
+
diff --git a/test/tint/builtins/gen/literal/textureStore/ceb832.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/textureStore/ceb832.wgsl.expected.ir.dxc.hlsl
index 685a9ee..22b37f9 100644
--- a/test/tint/builtins/gen/literal/textureStore/ceb832.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureStore/ceb832.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,16 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWTexture2DArray<int4> arg_0 : register(u0, space1);
+void textureStore_ceb832() {
+  RWTexture2DArray<int4> v = arg_0;
+  v[uint3((1u).xx, uint(1u))] = (1).xxxx;
+}
+
+void fragment_main() {
+  textureStore_ceb832();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  textureStore_ceb832();
+}
+
diff --git a/test/tint/builtins/gen/literal/textureStore/ceb832.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/textureStore/ceb832.wgsl.expected.ir.fxc.hlsl
index 685a9ee..22b37f9 100644
--- a/test/tint/builtins/gen/literal/textureStore/ceb832.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureStore/ceb832.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,16 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWTexture2DArray<int4> arg_0 : register(u0, space1);
+void textureStore_ceb832() {
+  RWTexture2DArray<int4> v = arg_0;
+  v[uint3((1u).xx, uint(1u))] = (1).xxxx;
+}
+
+void fragment_main() {
+  textureStore_ceb832();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  textureStore_ceb832();
+}
+
diff --git a/test/tint/builtins/gen/literal/textureStore/d0d62c.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/textureStore/d0d62c.wgsl.expected.ir.dxc.hlsl
index 685a9ee..c9e8f93 100644
--- a/test/tint/builtins/gen/literal/textureStore/d0d62c.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureStore/d0d62c.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,15 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWTexture2D<uint4> arg_0 : register(u0, space1);
+void textureStore_d0d62c() {
+  arg_0[(1).xx] = (1u).xxxx;
+}
+
+void fragment_main() {
+  textureStore_d0d62c();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  textureStore_d0d62c();
+}
+
diff --git a/test/tint/builtins/gen/literal/textureStore/d0d62c.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/textureStore/d0d62c.wgsl.expected.ir.fxc.hlsl
index 685a9ee..c9e8f93 100644
--- a/test/tint/builtins/gen/literal/textureStore/d0d62c.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureStore/d0d62c.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,15 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWTexture2D<uint4> arg_0 : register(u0, space1);
+void textureStore_d0d62c() {
+  arg_0[(1).xx] = (1u).xxxx;
+}
+
+void fragment_main() {
+  textureStore_d0d62c();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  textureStore_d0d62c();
+}
+
diff --git a/test/tint/builtins/gen/literal/textureStore/d0fadc.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/textureStore/d0fadc.wgsl.expected.ir.dxc.hlsl
index 685a9ee..c44f22f 100644
--- a/test/tint/builtins/gen/literal/textureStore/d0fadc.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureStore/d0fadc.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,16 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWTexture2DArray<float4> arg_0 : register(u0, space1);
+void textureStore_d0fadc() {
+  RWTexture2DArray<float4> v = arg_0;
+  v[int3((1).xx, int(1u))] = (1.0f).xxxx;
+}
+
+void fragment_main() {
+  textureStore_d0fadc();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  textureStore_d0fadc();
+}
+
diff --git a/test/tint/builtins/gen/literal/textureStore/d0fadc.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/textureStore/d0fadc.wgsl.expected.ir.fxc.hlsl
index 685a9ee..c44f22f 100644
--- a/test/tint/builtins/gen/literal/textureStore/d0fadc.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureStore/d0fadc.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,16 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWTexture2DArray<float4> arg_0 : register(u0, space1);
+void textureStore_d0fadc() {
+  RWTexture2DArray<float4> v = arg_0;
+  v[int3((1).xx, int(1u))] = (1.0f).xxxx;
+}
+
+void fragment_main() {
+  textureStore_d0fadc();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  textureStore_d0fadc();
+}
+
diff --git a/test/tint/builtins/gen/literal/textureStore/d19db4.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/textureStore/d19db4.wgsl.expected.ir.dxc.hlsl
index 685a9ee..1921721 100644
--- a/test/tint/builtins/gen/literal/textureStore/d19db4.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureStore/d19db4.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,15 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWTexture3D<int4> arg_0 : register(u0, space1);
+void textureStore_d19db4() {
+  arg_0[(1).xxx] = (1).xxxx;
+}
+
+void fragment_main() {
+  textureStore_d19db4();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  textureStore_d19db4();
+}
+
diff --git a/test/tint/builtins/gen/literal/textureStore/d19db4.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/textureStore/d19db4.wgsl.expected.ir.fxc.hlsl
index 685a9ee..1921721 100644
--- a/test/tint/builtins/gen/literal/textureStore/d19db4.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureStore/d19db4.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,15 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWTexture3D<int4> arg_0 : register(u0, space1);
+void textureStore_d19db4() {
+  arg_0[(1).xxx] = (1).xxxx;
+}
+
+void fragment_main() {
+  textureStore_d19db4();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  textureStore_d19db4();
+}
+
diff --git a/test/tint/builtins/gen/literal/textureStore/d1ab82.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/textureStore/d1ab82.wgsl.expected.ir.dxc.hlsl
index 685a9ee..000f110 100644
--- a/test/tint/builtins/gen/literal/textureStore/d1ab82.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureStore/d1ab82.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,15 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWTexture2D<float4> arg_0 : register(u0, space1);
+void textureStore_d1ab82() {
+  arg_0[(1).xx] = (1.0f).xxxx;
+}
+
+void fragment_main() {
+  textureStore_d1ab82();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  textureStore_d1ab82();
+}
+
diff --git a/test/tint/builtins/gen/literal/textureStore/d1ab82.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/textureStore/d1ab82.wgsl.expected.ir.fxc.hlsl
index 685a9ee..000f110 100644
--- a/test/tint/builtins/gen/literal/textureStore/d1ab82.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureStore/d1ab82.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,15 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWTexture2D<float4> arg_0 : register(u0, space1);
+void textureStore_d1ab82() {
+  arg_0[(1).xx] = (1.0f).xxxx;
+}
+
+void fragment_main() {
+  textureStore_d1ab82();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  textureStore_d1ab82();
+}
+
diff --git a/test/tint/builtins/gen/literal/textureStore/d26166.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/textureStore/d26166.wgsl.expected.ir.dxc.hlsl
index 685a9ee..831a009 100644
--- a/test/tint/builtins/gen/literal/textureStore/d26166.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureStore/d26166.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,15 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWTexture1D<uint4> arg_0 : register(u0, space1);
+void textureStore_d26166() {
+  arg_0[1u] = (1u).xxxx;
+}
+
+void fragment_main() {
+  textureStore_d26166();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  textureStore_d26166();
+}
+
diff --git a/test/tint/builtins/gen/literal/textureStore/d26166.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/textureStore/d26166.wgsl.expected.ir.fxc.hlsl
index 685a9ee..831a009 100644
--- a/test/tint/builtins/gen/literal/textureStore/d26166.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureStore/d26166.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,15 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWTexture1D<uint4> arg_0 : register(u0, space1);
+void textureStore_d26166() {
+  arg_0[1u] = (1u).xxxx;
+}
+
+void fragment_main() {
+  textureStore_d26166();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  textureStore_d26166();
+}
+
diff --git a/test/tint/builtins/gen/literal/textureStore/d2b565.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/textureStore/d2b565.wgsl.expected.ir.dxc.hlsl
index 685a9ee..57c8ed2 100644
--- a/test/tint/builtins/gen/literal/textureStore/d2b565.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureStore/d2b565.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,15 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWTexture3D<uint4> arg_0 : register(u0, space1);
+void textureStore_d2b565() {
+  arg_0[(1u).xxx] = (1u).xxxx;
+}
+
+void fragment_main() {
+  textureStore_d2b565();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  textureStore_d2b565();
+}
+
diff --git a/test/tint/builtins/gen/literal/textureStore/d2b565.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/textureStore/d2b565.wgsl.expected.ir.fxc.hlsl
index 685a9ee..57c8ed2 100644
--- a/test/tint/builtins/gen/literal/textureStore/d2b565.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureStore/d2b565.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,15 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWTexture3D<uint4> arg_0 : register(u0, space1);
+void textureStore_d2b565() {
+  arg_0[(1u).xxx] = (1u).xxxx;
+}
+
+void fragment_main() {
+  textureStore_d2b565();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  textureStore_d2b565();
+}
+
diff --git a/test/tint/builtins/gen/literal/textureStore/d3a22b.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/textureStore/d3a22b.wgsl.expected.ir.dxc.hlsl
index 685a9ee..f14e7ee 100644
--- a/test/tint/builtins/gen/literal/textureStore/d3a22b.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureStore/d3a22b.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,15 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWTexture3D<uint4> arg_0 : register(u0, space1);
+void textureStore_d3a22b() {
+  arg_0[(1u).xxx] = (1u).xxxx;
+}
+
+void fragment_main() {
+  textureStore_d3a22b();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  textureStore_d3a22b();
+}
+
diff --git a/test/tint/builtins/gen/literal/textureStore/d3a22b.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/textureStore/d3a22b.wgsl.expected.ir.fxc.hlsl
index 685a9ee..f14e7ee 100644
--- a/test/tint/builtins/gen/literal/textureStore/d3a22b.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureStore/d3a22b.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,15 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWTexture3D<uint4> arg_0 : register(u0, space1);
+void textureStore_d3a22b() {
+  arg_0[(1u).xxx] = (1u).xxxx;
+}
+
+void fragment_main() {
+  textureStore_d3a22b();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  textureStore_d3a22b();
+}
+
diff --git a/test/tint/builtins/gen/literal/textureStore/d4aa95.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/textureStore/d4aa95.wgsl.expected.ir.dxc.hlsl
index 685a9ee..e4bd6d0 100644
--- a/test/tint/builtins/gen/literal/textureStore/d4aa95.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureStore/d4aa95.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,15 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWTexture3D<uint4> arg_0 : register(u0, space1);
+void textureStore_d4aa95() {
+  arg_0[(1u).xxx] = (1u).xxxx;
+}
+
+void fragment_main() {
+  textureStore_d4aa95();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  textureStore_d4aa95();
+}
+
diff --git a/test/tint/builtins/gen/literal/textureStore/d4aa95.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/textureStore/d4aa95.wgsl.expected.ir.fxc.hlsl
index 685a9ee..e4bd6d0 100644
--- a/test/tint/builtins/gen/literal/textureStore/d4aa95.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureStore/d4aa95.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,15 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWTexture3D<uint4> arg_0 : register(u0, space1);
+void textureStore_d4aa95() {
+  arg_0[(1u).xxx] = (1u).xxxx;
+}
+
+void fragment_main() {
+  textureStore_d4aa95();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  textureStore_d4aa95();
+}
+
diff --git a/test/tint/builtins/gen/literal/textureStore/d55e65.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/textureStore/d55e65.wgsl.expected.ir.dxc.hlsl
index 685a9ee..e6ee6ee 100644
--- a/test/tint/builtins/gen/literal/textureStore/d55e65.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureStore/d55e65.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,16 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWTexture2DArray<float4> arg_0 : register(u0, space1);
+void textureStore_d55e65() {
+  RWTexture2DArray<float4> v = arg_0;
+  v[uint3((1u).xx, uint(1))] = (1.0f).xxxx;
+}
+
+void fragment_main() {
+  textureStore_d55e65();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  textureStore_d55e65();
+}
+
diff --git a/test/tint/builtins/gen/literal/textureStore/d55e65.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/textureStore/d55e65.wgsl.expected.ir.fxc.hlsl
index 685a9ee..e6ee6ee 100644
--- a/test/tint/builtins/gen/literal/textureStore/d55e65.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureStore/d55e65.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,16 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWTexture2DArray<float4> arg_0 : register(u0, space1);
+void textureStore_d55e65() {
+  RWTexture2DArray<float4> v = arg_0;
+  v[uint3((1u).xx, uint(1))] = (1.0f).xxxx;
+}
+
+void fragment_main() {
+  textureStore_d55e65();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  textureStore_d55e65();
+}
+
diff --git a/test/tint/builtins/gen/literal/textureStore/d73b5c.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/textureStore/d73b5c.wgsl.expected.ir.dxc.hlsl
index 685a9ee..1b66b14 100644
--- a/test/tint/builtins/gen/literal/textureStore/d73b5c.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureStore/d73b5c.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,15 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWTexture1D<int4> arg_0 : register(u0, space1);
+void textureStore_d73b5c() {
+  arg_0[1] = (1).xxxx;
+}
+
+void fragment_main() {
+  textureStore_d73b5c();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  textureStore_d73b5c();
+}
+
diff --git a/test/tint/builtins/gen/literal/textureStore/d73b5c.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/textureStore/d73b5c.wgsl.expected.ir.fxc.hlsl
index 685a9ee..1b66b14 100644
--- a/test/tint/builtins/gen/literal/textureStore/d73b5c.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureStore/d73b5c.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,15 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWTexture1D<int4> arg_0 : register(u0, space1);
+void textureStore_d73b5c() {
+  arg_0[1] = (1).xxxx;
+}
+
+void fragment_main() {
+  textureStore_d73b5c();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  textureStore_d73b5c();
+}
+
diff --git a/test/tint/builtins/gen/literal/textureStore/d82b0a.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/textureStore/d82b0a.wgsl.expected.ir.dxc.hlsl
index 685a9ee..1688bb3 100644
--- a/test/tint/builtins/gen/literal/textureStore/d82b0a.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureStore/d82b0a.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,15 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWTexture3D<int4> arg_0 : register(u0, space1);
+void textureStore_d82b0a() {
+  arg_0[(1u).xxx] = (1).xxxx;
+}
+
+void fragment_main() {
+  textureStore_d82b0a();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  textureStore_d82b0a();
+}
+
diff --git a/test/tint/builtins/gen/literal/textureStore/d82b0a.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/textureStore/d82b0a.wgsl.expected.ir.fxc.hlsl
index 685a9ee..1688bb3 100644
--- a/test/tint/builtins/gen/literal/textureStore/d82b0a.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureStore/d82b0a.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,15 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWTexture3D<int4> arg_0 : register(u0, space1);
+void textureStore_d82b0a() {
+  arg_0[(1u).xxx] = (1).xxxx;
+}
+
+void fragment_main() {
+  textureStore_d82b0a();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  textureStore_d82b0a();
+}
+
diff --git a/test/tint/builtins/gen/literal/textureStore/d86d33.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/textureStore/d86d33.wgsl.expected.ir.dxc.hlsl
index 685a9ee..313b29f 100644
--- a/test/tint/builtins/gen/literal/textureStore/d86d33.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureStore/d86d33.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,16 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWTexture2DArray<float4> arg_0 : register(u0, space1);
+void textureStore_d86d33() {
+  RWTexture2DArray<float4> v = arg_0;
+  v[uint3((1u).xx, uint(1))] = (1.0f).xxxx;
+}
+
+void fragment_main() {
+  textureStore_d86d33();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  textureStore_d86d33();
+}
+
diff --git a/test/tint/builtins/gen/literal/textureStore/d86d33.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/textureStore/d86d33.wgsl.expected.ir.fxc.hlsl
index 685a9ee..313b29f 100644
--- a/test/tint/builtins/gen/literal/textureStore/d86d33.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureStore/d86d33.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,16 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWTexture2DArray<float4> arg_0 : register(u0, space1);
+void textureStore_d86d33() {
+  RWTexture2DArray<float4> v = arg_0;
+  v[uint3((1u).xx, uint(1))] = (1.0f).xxxx;
+}
+
+void fragment_main() {
+  textureStore_d86d33();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  textureStore_d86d33();
+}
+
diff --git a/test/tint/builtins/gen/literal/textureStore/da530c.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/textureStore/da530c.wgsl.expected.ir.dxc.hlsl
index 685a9ee..0a04766 100644
--- a/test/tint/builtins/gen/literal/textureStore/da530c.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureStore/da530c.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,15 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWTexture2D<int4> arg_0 : register(u0, space1);
+void textureStore_da530c() {
+  arg_0[(1u).xx] = (1).xxxx;
+}
+
+void fragment_main() {
+  textureStore_da530c();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  textureStore_da530c();
+}
+
diff --git a/test/tint/builtins/gen/literal/textureStore/da530c.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/textureStore/da530c.wgsl.expected.ir.fxc.hlsl
index 685a9ee..0a04766 100644
--- a/test/tint/builtins/gen/literal/textureStore/da530c.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureStore/da530c.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,15 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWTexture2D<int4> arg_0 : register(u0, space1);
+void textureStore_da530c() {
+  arg_0[(1u).xx] = (1).xxxx;
+}
+
+void fragment_main() {
+  textureStore_da530c();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  textureStore_da530c();
+}
+
diff --git a/test/tint/builtins/gen/literal/textureStore/db5128.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/textureStore/db5128.wgsl.expected.ir.dxc.hlsl
index 685a9ee..59b117a 100644
--- a/test/tint/builtins/gen/literal/textureStore/db5128.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureStore/db5128.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,16 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWTexture2DArray<uint4> arg_0 : register(u0, space1);
+void textureStore_db5128() {
+  RWTexture2DArray<uint4> v = arg_0;
+  v[int3((1).xx, int(1u))] = (1u).xxxx;
+}
+
+void fragment_main() {
+  textureStore_db5128();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  textureStore_db5128();
+}
+
diff --git a/test/tint/builtins/gen/literal/textureStore/db5128.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/textureStore/db5128.wgsl.expected.ir.fxc.hlsl
index 685a9ee..59b117a 100644
--- a/test/tint/builtins/gen/literal/textureStore/db5128.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureStore/db5128.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,16 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWTexture2DArray<uint4> arg_0 : register(u0, space1);
+void textureStore_db5128() {
+  RWTexture2DArray<uint4> v = arg_0;
+  v[int3((1).xx, int(1u))] = (1u).xxxx;
+}
+
+void fragment_main() {
+  textureStore_db5128();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  textureStore_db5128();
+}
+
diff --git a/test/tint/builtins/gen/literal/textureStore/db92a2.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/textureStore/db92a2.wgsl.expected.ir.dxc.hlsl
index 685a9ee..cdb58f8 100644
--- a/test/tint/builtins/gen/literal/textureStore/db92a2.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureStore/db92a2.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,15 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWTexture2D<uint4> arg_0 : register(u0, space1);
+void textureStore_db92a2() {
+  arg_0[(1u).xx] = (1u).xxxx;
+}
+
+void fragment_main() {
+  textureStore_db92a2();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  textureStore_db92a2();
+}
+
diff --git a/test/tint/builtins/gen/literal/textureStore/db92a2.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/textureStore/db92a2.wgsl.expected.ir.fxc.hlsl
index 685a9ee..cdb58f8 100644
--- a/test/tint/builtins/gen/literal/textureStore/db92a2.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureStore/db92a2.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,15 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWTexture2D<uint4> arg_0 : register(u0, space1);
+void textureStore_db92a2() {
+  arg_0[(1u).xx] = (1u).xxxx;
+}
+
+void fragment_main() {
+  textureStore_db92a2();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  textureStore_db92a2();
+}
+
diff --git a/test/tint/builtins/gen/literal/textureStore/dce0e2.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/textureStore/dce0e2.wgsl.expected.ir.dxc.hlsl
index 685a9ee..7cf6a45 100644
--- a/test/tint/builtins/gen/literal/textureStore/dce0e2.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureStore/dce0e2.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,16 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWTexture2DArray<float4> arg_0 : register(u0, space1);
+void textureStore_dce0e2() {
+  RWTexture2DArray<float4> v = arg_0;
+  v[uint3((1u).xx, uint(1))] = (1.0f).xxxx;
+}
+
+void fragment_main() {
+  textureStore_dce0e2();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  textureStore_dce0e2();
+}
+
diff --git a/test/tint/builtins/gen/literal/textureStore/dce0e2.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/textureStore/dce0e2.wgsl.expected.ir.fxc.hlsl
index 685a9ee..7cf6a45 100644
--- a/test/tint/builtins/gen/literal/textureStore/dce0e2.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureStore/dce0e2.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,16 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWTexture2DArray<float4> arg_0 : register(u0, space1);
+void textureStore_dce0e2() {
+  RWTexture2DArray<float4> v = arg_0;
+  v[uint3((1u).xx, uint(1))] = (1.0f).xxxx;
+}
+
+void fragment_main() {
+  textureStore_dce0e2();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  textureStore_dce0e2();
+}
+
diff --git a/test/tint/builtins/gen/literal/textureStore/dd7d81.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/textureStore/dd7d81.wgsl.expected.ir.dxc.hlsl
index 685a9ee..b4f8680 100644
--- a/test/tint/builtins/gen/literal/textureStore/dd7d81.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureStore/dd7d81.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,15 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWTexture3D<float4> arg_0 : register(u0, space1);
+void textureStore_dd7d81() {
+  arg_0[(1).xxx] = (1.0f).xxxx;
+}
+
+void fragment_main() {
+  textureStore_dd7d81();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  textureStore_dd7d81();
+}
+
diff --git a/test/tint/builtins/gen/literal/textureStore/dd7d81.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/textureStore/dd7d81.wgsl.expected.ir.fxc.hlsl
index 685a9ee..b4f8680 100644
--- a/test/tint/builtins/gen/literal/textureStore/dd7d81.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureStore/dd7d81.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,15 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWTexture3D<float4> arg_0 : register(u0, space1);
+void textureStore_dd7d81() {
+  arg_0[(1).xxx] = (1.0f).xxxx;
+}
+
+void fragment_main() {
+  textureStore_dd7d81();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  textureStore_dd7d81();
+}
+
diff --git a/test/tint/builtins/gen/literal/textureStore/dd8b29.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/textureStore/dd8b29.wgsl.expected.ir.dxc.hlsl
index 685a9ee..e214189 100644
--- a/test/tint/builtins/gen/literal/textureStore/dd8b29.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureStore/dd8b29.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,16 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWTexture2DArray<uint4> arg_0 : register(u0, space1);
+void textureStore_dd8b29() {
+  RWTexture2DArray<uint4> v = arg_0;
+  v[int3((1).xx, int(1))] = (1u).xxxx;
+}
+
+void fragment_main() {
+  textureStore_dd8b29();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  textureStore_dd8b29();
+}
+
diff --git a/test/tint/builtins/gen/literal/textureStore/dd8b29.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/textureStore/dd8b29.wgsl.expected.ir.fxc.hlsl
index 685a9ee..e214189 100644
--- a/test/tint/builtins/gen/literal/textureStore/dd8b29.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureStore/dd8b29.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,16 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWTexture2DArray<uint4> arg_0 : register(u0, space1);
+void textureStore_dd8b29() {
+  RWTexture2DArray<uint4> v = arg_0;
+  v[int3((1).xx, int(1))] = (1u).xxxx;
+}
+
+void fragment_main() {
+  textureStore_dd8b29();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  textureStore_dd8b29();
+}
+
diff --git a/test/tint/builtins/gen/literal/textureStore/dde364.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/textureStore/dde364.wgsl.expected.ir.dxc.hlsl
index 685a9ee..9815ccd 100644
--- a/test/tint/builtins/gen/literal/textureStore/dde364.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureStore/dde364.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,16 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWTexture2DArray<uint4> arg_0 : register(u0, space1);
+void textureStore_dde364() {
+  RWTexture2DArray<uint4> v = arg_0;
+  v[int3((1).xx, int(1))] = (1u).xxxx;
+}
+
+void fragment_main() {
+  textureStore_dde364();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  textureStore_dde364();
+}
+
diff --git a/test/tint/builtins/gen/literal/textureStore/dde364.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/textureStore/dde364.wgsl.expected.ir.fxc.hlsl
index 685a9ee..9815ccd 100644
--- a/test/tint/builtins/gen/literal/textureStore/dde364.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureStore/dde364.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,16 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWTexture2DArray<uint4> arg_0 : register(u0, space1);
+void textureStore_dde364() {
+  RWTexture2DArray<uint4> v = arg_0;
+  v[int3((1).xx, int(1))] = (1u).xxxx;
+}
+
+void fragment_main() {
+  textureStore_dde364();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  textureStore_dde364();
+}
+
diff --git a/test/tint/builtins/gen/literal/textureStore/de38e5.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/textureStore/de38e5.wgsl.expected.ir.dxc.hlsl
index 685a9ee..839ce7f 100644
--- a/test/tint/builtins/gen/literal/textureStore/de38e5.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureStore/de38e5.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,15 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWTexture3D<float4> arg_0 : register(u0, space1);
+void textureStore_de38e5() {
+  arg_0[(1u).xxx] = (1.0f).xxxx;
+}
+
+void fragment_main() {
+  textureStore_de38e5();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  textureStore_de38e5();
+}
+
diff --git a/test/tint/builtins/gen/literal/textureStore/de38e5.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/textureStore/de38e5.wgsl.expected.ir.fxc.hlsl
index 685a9ee..839ce7f 100644
--- a/test/tint/builtins/gen/literal/textureStore/de38e5.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureStore/de38e5.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,15 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWTexture3D<float4> arg_0 : register(u0, space1);
+void textureStore_de38e5() {
+  arg_0[(1u).xxx] = (1.0f).xxxx;
+}
+
+void fragment_main() {
+  textureStore_de38e5();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  textureStore_de38e5();
+}
+
diff --git a/test/tint/builtins/gen/literal/textureStore/de4b94.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/textureStore/de4b94.wgsl.expected.ir.dxc.hlsl
index 685a9ee..481f983 100644
--- a/test/tint/builtins/gen/literal/textureStore/de4b94.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureStore/de4b94.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,15 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWTexture1D<int4> arg_0 : register(u0, space1);
+void textureStore_de4b94() {
+  arg_0[1u] = (1).xxxx;
+}
+
+void fragment_main() {
+  textureStore_de4b94();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  textureStore_de4b94();
+}
+
diff --git a/test/tint/builtins/gen/literal/textureStore/de4b94.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/textureStore/de4b94.wgsl.expected.ir.fxc.hlsl
index 685a9ee..481f983 100644
--- a/test/tint/builtins/gen/literal/textureStore/de4b94.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureStore/de4b94.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,15 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWTexture1D<int4> arg_0 : register(u0, space1);
+void textureStore_de4b94() {
+  arg_0[1u] = (1).xxxx;
+}
+
+void fragment_main() {
+  textureStore_de4b94();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  textureStore_de4b94();
+}
+
diff --git a/test/tint/builtins/gen/literal/textureStore/df0c51.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/textureStore/df0c51.wgsl.expected.ir.dxc.hlsl
index 685a9ee..b1d377e 100644
--- a/test/tint/builtins/gen/literal/textureStore/df0c51.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureStore/df0c51.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,15 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWTexture3D<int4> arg_0 : register(u0, space1);
+void textureStore_df0c51() {
+  arg_0[(1u).xxx] = (1).xxxx;
+}
+
+void fragment_main() {
+  textureStore_df0c51();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  textureStore_df0c51();
+}
+
diff --git a/test/tint/builtins/gen/literal/textureStore/df0c51.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/textureStore/df0c51.wgsl.expected.ir.fxc.hlsl
index 685a9ee..b1d377e 100644
--- a/test/tint/builtins/gen/literal/textureStore/df0c51.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureStore/df0c51.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,15 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWTexture3D<int4> arg_0 : register(u0, space1);
+void textureStore_df0c51() {
+  arg_0[(1u).xxx] = (1).xxxx;
+}
+
+void fragment_main() {
+  textureStore_df0c51();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  textureStore_df0c51();
+}
+
diff --git a/test/tint/builtins/gen/literal/textureStore/df2ca4.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/textureStore/df2ca4.wgsl.expected.ir.dxc.hlsl
index 685a9ee..3579718 100644
--- a/test/tint/builtins/gen/literal/textureStore/df2ca4.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureStore/df2ca4.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,16 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWTexture2DArray<float4> arg_0 : register(u0, space1);
+void textureStore_df2ca4() {
+  RWTexture2DArray<float4> v = arg_0;
+  v[int3((1).xx, int(1u))] = (1.0f).xxxx;
+}
+
+void fragment_main() {
+  textureStore_df2ca4();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  textureStore_df2ca4();
+}
+
diff --git a/test/tint/builtins/gen/literal/textureStore/df2ca4.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/textureStore/df2ca4.wgsl.expected.ir.fxc.hlsl
index 685a9ee..3579718 100644
--- a/test/tint/builtins/gen/literal/textureStore/df2ca4.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureStore/df2ca4.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,16 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWTexture2DArray<float4> arg_0 : register(u0, space1);
+void textureStore_df2ca4() {
+  RWTexture2DArray<float4> v = arg_0;
+  v[int3((1).xx, int(1u))] = (1.0f).xxxx;
+}
+
+void fragment_main() {
+  textureStore_df2ca4();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  textureStore_df2ca4();
+}
+
diff --git a/test/tint/builtins/gen/literal/textureStore/dfa9a1.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/textureStore/dfa9a1.wgsl.expected.ir.dxc.hlsl
index 685a9ee..e5500a0 100644
--- a/test/tint/builtins/gen/literal/textureStore/dfa9a1.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureStore/dfa9a1.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,16 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWTexture2DArray<float4> arg_0 : register(u0, space1);
+void textureStore_dfa9a1() {
+  RWTexture2DArray<float4> v = arg_0;
+  v[uint3((1u).xx, uint(1))] = (1.0f).xxxx;
+}
+
+void fragment_main() {
+  textureStore_dfa9a1();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  textureStore_dfa9a1();
+}
+
diff --git a/test/tint/builtins/gen/literal/textureStore/dfa9a1.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/textureStore/dfa9a1.wgsl.expected.ir.fxc.hlsl
index 685a9ee..e5500a0 100644
--- a/test/tint/builtins/gen/literal/textureStore/dfa9a1.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureStore/dfa9a1.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,16 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWTexture2DArray<float4> arg_0 : register(u0, space1);
+void textureStore_dfa9a1() {
+  RWTexture2DArray<float4> v = arg_0;
+  v[uint3((1u).xx, uint(1))] = (1.0f).xxxx;
+}
+
+void fragment_main() {
+  textureStore_dfa9a1();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  textureStore_dfa9a1();
+}
+
diff --git a/test/tint/builtins/gen/literal/textureStore/dffb13.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/textureStore/dffb13.wgsl.expected.ir.dxc.hlsl
index 685a9ee..00e2e15 100644
--- a/test/tint/builtins/gen/literal/textureStore/dffb13.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureStore/dffb13.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,16 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWTexture2DArray<uint4> arg_0 : register(u0, space1);
+void textureStore_dffb13() {
+  RWTexture2DArray<uint4> v = arg_0;
+  v[int3((1).xx, int(1u))] = (1u).xxxx;
+}
+
+void fragment_main() {
+  textureStore_dffb13();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  textureStore_dffb13();
+}
+
diff --git a/test/tint/builtins/gen/literal/textureStore/dffb13.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/textureStore/dffb13.wgsl.expected.ir.fxc.hlsl
index 685a9ee..00e2e15 100644
--- a/test/tint/builtins/gen/literal/textureStore/dffb13.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureStore/dffb13.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,16 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWTexture2DArray<uint4> arg_0 : register(u0, space1);
+void textureStore_dffb13() {
+  RWTexture2DArray<uint4> v = arg_0;
+  v[int3((1).xx, int(1u))] = (1u).xxxx;
+}
+
+void fragment_main() {
+  textureStore_dffb13();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  textureStore_dffb13();
+}
+
diff --git a/test/tint/builtins/gen/literal/textureStore/e077e7.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/textureStore/e077e7.wgsl.expected.ir.dxc.hlsl
index 685a9ee..5f3151f 100644
--- a/test/tint/builtins/gen/literal/textureStore/e077e7.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureStore/e077e7.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,15 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWTexture1D<int4> arg_0 : register(u0, space1);
+void textureStore_e077e7() {
+  arg_0[1] = (1).xxxx;
+}
+
+void fragment_main() {
+  textureStore_e077e7();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  textureStore_e077e7();
+}
+
diff --git a/test/tint/builtins/gen/literal/textureStore/e077e7.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/textureStore/e077e7.wgsl.expected.ir.fxc.hlsl
index 685a9ee..5f3151f 100644
--- a/test/tint/builtins/gen/literal/textureStore/e077e7.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureStore/e077e7.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,15 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWTexture1D<int4> arg_0 : register(u0, space1);
+void textureStore_e077e7() {
+  arg_0[1] = (1).xxxx;
+}
+
+void fragment_main() {
+  textureStore_e077e7();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  textureStore_e077e7();
+}
+
diff --git a/test/tint/builtins/gen/literal/textureStore/e0b666.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/textureStore/e0b666.wgsl.expected.ir.dxc.hlsl
index 685a9ee..401887d 100644
--- a/test/tint/builtins/gen/literal/textureStore/e0b666.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureStore/e0b666.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,15 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWTexture1D<float4> arg_0 : register(u0, space1);
+void textureStore_e0b666() {
+  arg_0[1] = (1.0f).xxxx;
+}
+
+void fragment_main() {
+  textureStore_e0b666();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  textureStore_e0b666();
+}
+
diff --git a/test/tint/builtins/gen/literal/textureStore/e0b666.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/textureStore/e0b666.wgsl.expected.ir.fxc.hlsl
index 685a9ee..401887d 100644
--- a/test/tint/builtins/gen/literal/textureStore/e0b666.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureStore/e0b666.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,15 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWTexture1D<float4> arg_0 : register(u0, space1);
+void textureStore_e0b666() {
+  arg_0[1] = (1.0f).xxxx;
+}
+
+void fragment_main() {
+  textureStore_e0b666();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  textureStore_e0b666();
+}
+
diff --git a/test/tint/builtins/gen/literal/textureStore/e1784d.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/textureStore/e1784d.wgsl.expected.ir.dxc.hlsl
index 685a9ee..f318080 100644
--- a/test/tint/builtins/gen/literal/textureStore/e1784d.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureStore/e1784d.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,16 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWTexture2DArray<float4> arg_0 : register(u0, space1);
+void textureStore_e1784d() {
+  RWTexture2DArray<float4> v = arg_0;
+  v[int3((1).xx, int(1u))] = (1.0f).xxxx;
+}
+
+void fragment_main() {
+  textureStore_e1784d();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  textureStore_e1784d();
+}
+
diff --git a/test/tint/builtins/gen/literal/textureStore/e1784d.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/textureStore/e1784d.wgsl.expected.ir.fxc.hlsl
index 685a9ee..f318080 100644
--- a/test/tint/builtins/gen/literal/textureStore/e1784d.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureStore/e1784d.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,16 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWTexture2DArray<float4> arg_0 : register(u0, space1);
+void textureStore_e1784d() {
+  RWTexture2DArray<float4> v = arg_0;
+  v[int3((1).xx, int(1u))] = (1.0f).xxxx;
+}
+
+void fragment_main() {
+  textureStore_e1784d();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  textureStore_e1784d();
+}
+
diff --git a/test/tint/builtins/gen/literal/textureStore/e38281.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/textureStore/e38281.wgsl.expected.ir.dxc.hlsl
index 685a9ee..6ac5250 100644
--- a/test/tint/builtins/gen/literal/textureStore/e38281.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureStore/e38281.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,16 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWTexture2DArray<float4> arg_0 : register(u0, space1);
+void textureStore_e38281() {
+  RWTexture2DArray<float4> v = arg_0;
+  v[uint3((1u).xx, uint(1u))] = (1.0f).xxxx;
+}
+
+void fragment_main() {
+  textureStore_e38281();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  textureStore_e38281();
+}
+
diff --git a/test/tint/builtins/gen/literal/textureStore/e38281.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/textureStore/e38281.wgsl.expected.ir.fxc.hlsl
index 685a9ee..6ac5250 100644
--- a/test/tint/builtins/gen/literal/textureStore/e38281.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureStore/e38281.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,16 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWTexture2DArray<float4> arg_0 : register(u0, space1);
+void textureStore_e38281() {
+  RWTexture2DArray<float4> v = arg_0;
+  v[uint3((1u).xx, uint(1u))] = (1.0f).xxxx;
+}
+
+void fragment_main() {
+  textureStore_e38281();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  textureStore_e38281();
+}
+
diff --git a/test/tint/builtins/gen/literal/textureStore/e46fd8.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/textureStore/e46fd8.wgsl.expected.ir.dxc.hlsl
index 685a9ee..fd21e0a 100644
--- a/test/tint/builtins/gen/literal/textureStore/e46fd8.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureStore/e46fd8.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,15 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWTexture2D<float4> arg_0 : register(u0, space1);
+void textureStore_e46fd8() {
+  arg_0[(1u).xx] = (1.0f).xxxx;
+}
+
+void fragment_main() {
+  textureStore_e46fd8();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  textureStore_e46fd8();
+}
+
diff --git a/test/tint/builtins/gen/literal/textureStore/e46fd8.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/textureStore/e46fd8.wgsl.expected.ir.fxc.hlsl
index 685a9ee..fd21e0a 100644
--- a/test/tint/builtins/gen/literal/textureStore/e46fd8.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureStore/e46fd8.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,15 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWTexture2D<float4> arg_0 : register(u0, space1);
+void textureStore_e46fd8() {
+  arg_0[(1u).xx] = (1.0f).xxxx;
+}
+
+void fragment_main() {
+  textureStore_e46fd8();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  textureStore_e46fd8();
+}
+
diff --git a/test/tint/builtins/gen/literal/textureStore/e72bdc.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/textureStore/e72bdc.wgsl.expected.ir.dxc.hlsl
index 685a9ee..e79959a 100644
--- a/test/tint/builtins/gen/literal/textureStore/e72bdc.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureStore/e72bdc.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,16 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWTexture2DArray<float4> arg_0 : register(u0, space1);
+void textureStore_e72bdc() {
+  RWTexture2DArray<float4> v = arg_0;
+  v[int3((1).xx, int(1u))] = (1.0f).xxxx;
+}
+
+void fragment_main() {
+  textureStore_e72bdc();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  textureStore_e72bdc();
+}
+
diff --git a/test/tint/builtins/gen/literal/textureStore/e72bdc.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/textureStore/e72bdc.wgsl.expected.ir.fxc.hlsl
index 685a9ee..e79959a 100644
--- a/test/tint/builtins/gen/literal/textureStore/e72bdc.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureStore/e72bdc.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,16 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWTexture2DArray<float4> arg_0 : register(u0, space1);
+void textureStore_e72bdc() {
+  RWTexture2DArray<float4> v = arg_0;
+  v[int3((1).xx, int(1u))] = (1.0f).xxxx;
+}
+
+void fragment_main() {
+  textureStore_e72bdc();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  textureStore_e72bdc();
+}
+
diff --git a/test/tint/builtins/gen/literal/textureStore/e7c6d8.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/textureStore/e7c6d8.wgsl.expected.ir.dxc.hlsl
index 685a9ee..6653f3f 100644
--- a/test/tint/builtins/gen/literal/textureStore/e7c6d8.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureStore/e7c6d8.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,15 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWTexture1D<float4> arg_0 : register(u0, space1);
+void textureStore_e7c6d8() {
+  arg_0[1u] = (1.0f).xxxx;
+}
+
+void fragment_main() {
+  textureStore_e7c6d8();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  textureStore_e7c6d8();
+}
+
diff --git a/test/tint/builtins/gen/literal/textureStore/e7c6d8.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/textureStore/e7c6d8.wgsl.expected.ir.fxc.hlsl
index 685a9ee..6653f3f 100644
--- a/test/tint/builtins/gen/literal/textureStore/e7c6d8.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureStore/e7c6d8.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,15 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWTexture1D<float4> arg_0 : register(u0, space1);
+void textureStore_e7c6d8() {
+  arg_0[1u] = (1.0f).xxxx;
+}
+
+void fragment_main() {
+  textureStore_e7c6d8();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  textureStore_e7c6d8();
+}
+
diff --git a/test/tint/builtins/gen/literal/textureStore/e87f6e.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/textureStore/e87f6e.wgsl.expected.ir.dxc.hlsl
index 685a9ee..0831cae 100644
--- a/test/tint/builtins/gen/literal/textureStore/e87f6e.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureStore/e87f6e.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,15 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWTexture1D<int4> arg_0 : register(u0, space1);
+void textureStore_e87f6e() {
+  arg_0[1] = (1).xxxx;
+}
+
+void fragment_main() {
+  textureStore_e87f6e();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  textureStore_e87f6e();
+}
+
diff --git a/test/tint/builtins/gen/literal/textureStore/e87f6e.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/textureStore/e87f6e.wgsl.expected.ir.fxc.hlsl
index 685a9ee..0831cae 100644
--- a/test/tint/builtins/gen/literal/textureStore/e87f6e.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureStore/e87f6e.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,15 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWTexture1D<int4> arg_0 : register(u0, space1);
+void textureStore_e87f6e() {
+  arg_0[1] = (1).xxxx;
+}
+
+void fragment_main() {
+  textureStore_e87f6e();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  textureStore_e87f6e();
+}
+
diff --git a/test/tint/builtins/gen/literal/textureStore/e885e8.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/textureStore/e885e8.wgsl.expected.ir.dxc.hlsl
index 685a9ee..1d70b35 100644
--- a/test/tint/builtins/gen/literal/textureStore/e885e8.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureStore/e885e8.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,15 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWTexture1D<float4> arg_0 : register(u0, space1);
+void textureStore_e885e8() {
+  arg_0[1] = (1.0f).xxxx;
+}
+
+void fragment_main() {
+  textureStore_e885e8();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  textureStore_e885e8();
+}
+
diff --git a/test/tint/builtins/gen/literal/textureStore/e885e8.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/textureStore/e885e8.wgsl.expected.ir.fxc.hlsl
index 685a9ee..1d70b35 100644
--- a/test/tint/builtins/gen/literal/textureStore/e885e8.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureStore/e885e8.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,15 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWTexture1D<float4> arg_0 : register(u0, space1);
+void textureStore_e885e8() {
+  arg_0[1] = (1.0f).xxxx;
+}
+
+void fragment_main() {
+  textureStore_e885e8();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  textureStore_e885e8();
+}
+
diff --git a/test/tint/builtins/gen/literal/textureStore/e8cbf7.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/textureStore/e8cbf7.wgsl.expected.ir.dxc.hlsl
index 685a9ee..8cce5a5 100644
--- a/test/tint/builtins/gen/literal/textureStore/e8cbf7.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureStore/e8cbf7.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,15 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWTexture2D<uint4> arg_0 : register(u0, space1);
+void textureStore_e8cbf7() {
+  arg_0[(1u).xx] = (1u).xxxx;
+}
+
+void fragment_main() {
+  textureStore_e8cbf7();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  textureStore_e8cbf7();
+}
+
diff --git a/test/tint/builtins/gen/literal/textureStore/e8cbf7.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/textureStore/e8cbf7.wgsl.expected.ir.fxc.hlsl
index 685a9ee..8cce5a5 100644
--- a/test/tint/builtins/gen/literal/textureStore/e8cbf7.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureStore/e8cbf7.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,15 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWTexture2D<uint4> arg_0 : register(u0, space1);
+void textureStore_e8cbf7() {
+  arg_0[(1u).xx] = (1u).xxxx;
+}
+
+void fragment_main() {
+  textureStore_e8cbf7();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  textureStore_e8cbf7();
+}
+
diff --git a/test/tint/builtins/gen/literal/textureStore/ea30d2.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/textureStore/ea30d2.wgsl.expected.ir.dxc.hlsl
index 685a9ee..d11d9ba 100644
--- a/test/tint/builtins/gen/literal/textureStore/ea30d2.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureStore/ea30d2.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,16 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWTexture2DArray<int4> arg_0 : register(u0, space1);
+void textureStore_ea30d2() {
+  RWTexture2DArray<int4> v = arg_0;
+  v[uint3((1u).xx, uint(1))] = (1).xxxx;
+}
+
+void fragment_main() {
+  textureStore_ea30d2();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  textureStore_ea30d2();
+}
+
diff --git a/test/tint/builtins/gen/literal/textureStore/ea30d2.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/textureStore/ea30d2.wgsl.expected.ir.fxc.hlsl
index 685a9ee..d11d9ba 100644
--- a/test/tint/builtins/gen/literal/textureStore/ea30d2.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureStore/ea30d2.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,16 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWTexture2DArray<int4> arg_0 : register(u0, space1);
+void textureStore_ea30d2() {
+  RWTexture2DArray<int4> v = arg_0;
+  v[uint3((1u).xx, uint(1))] = (1).xxxx;
+}
+
+void fragment_main() {
+  textureStore_ea30d2();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  textureStore_ea30d2();
+}
+
diff --git a/test/tint/builtins/gen/literal/textureStore/eb702f.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/textureStore/eb702f.wgsl.expected.ir.dxc.hlsl
index 685a9ee..c25ceee 100644
--- a/test/tint/builtins/gen/literal/textureStore/eb702f.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureStore/eb702f.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,15 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWTexture3D<float4> arg_0 : register(u0, space1);
+void textureStore_eb702f() {
+  arg_0[(1).xxx] = (1.0f).xxxx;
+}
+
+void fragment_main() {
+  textureStore_eb702f();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  textureStore_eb702f();
+}
+
diff --git a/test/tint/builtins/gen/literal/textureStore/eb702f.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/textureStore/eb702f.wgsl.expected.ir.fxc.hlsl
index 685a9ee..c25ceee 100644
--- a/test/tint/builtins/gen/literal/textureStore/eb702f.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureStore/eb702f.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,15 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWTexture3D<float4> arg_0 : register(u0, space1);
+void textureStore_eb702f() {
+  arg_0[(1).xxx] = (1.0f).xxxx;
+}
+
+void fragment_main() {
+  textureStore_eb702f();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  textureStore_eb702f();
+}
+
diff --git a/test/tint/builtins/gen/literal/textureStore/eb78b9.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/textureStore/eb78b9.wgsl.expected.ir.dxc.hlsl
index 685a9ee..c33a57f 100644
--- a/test/tint/builtins/gen/literal/textureStore/eb78b9.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureStore/eb78b9.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,15 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWTexture3D<int4> arg_0 : register(u0, space1);
+void textureStore_eb78b9() {
+  arg_0[(1).xxx] = (1).xxxx;
+}
+
+void fragment_main() {
+  textureStore_eb78b9();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  textureStore_eb78b9();
+}
+
diff --git a/test/tint/builtins/gen/literal/textureStore/eb78b9.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/textureStore/eb78b9.wgsl.expected.ir.fxc.hlsl
index 685a9ee..c33a57f 100644
--- a/test/tint/builtins/gen/literal/textureStore/eb78b9.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureStore/eb78b9.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,15 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWTexture3D<int4> arg_0 : register(u0, space1);
+void textureStore_eb78b9() {
+  arg_0[(1).xxx] = (1).xxxx;
+}
+
+void fragment_main() {
+  textureStore_eb78b9();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  textureStore_eb78b9();
+}
+
diff --git a/test/tint/builtins/gen/literal/textureStore/ed6198.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/textureStore/ed6198.wgsl.expected.ir.dxc.hlsl
index 685a9ee..29b44c7 100644
--- a/test/tint/builtins/gen/literal/textureStore/ed6198.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureStore/ed6198.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,15 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWTexture3D<float4> arg_0 : register(u0, space1);
+void textureStore_ed6198() {
+  arg_0[(1).xxx] = (1.0f).xxxx;
+}
+
+void fragment_main() {
+  textureStore_ed6198();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  textureStore_ed6198();
+}
+
diff --git a/test/tint/builtins/gen/literal/textureStore/ed6198.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/textureStore/ed6198.wgsl.expected.ir.fxc.hlsl
index 685a9ee..29b44c7 100644
--- a/test/tint/builtins/gen/literal/textureStore/ed6198.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureStore/ed6198.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,15 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWTexture3D<float4> arg_0 : register(u0, space1);
+void textureStore_ed6198() {
+  arg_0[(1).xxx] = (1.0f).xxxx;
+}
+
+void fragment_main() {
+  textureStore_ed6198();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  textureStore_ed6198();
+}
+
diff --git a/test/tint/builtins/gen/literal/textureStore/ee6acc.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/textureStore/ee6acc.wgsl.expected.ir.dxc.hlsl
index 685a9ee..52287c3 100644
--- a/test/tint/builtins/gen/literal/textureStore/ee6acc.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureStore/ee6acc.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,15 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWTexture3D<float4> arg_0 : register(u0, space1);
+void textureStore_ee6acc() {
+  arg_0[(1).xxx] = (1.0f).xxxx;
+}
+
+void fragment_main() {
+  textureStore_ee6acc();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  textureStore_ee6acc();
+}
+
diff --git a/test/tint/builtins/gen/literal/textureStore/ee6acc.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/textureStore/ee6acc.wgsl.expected.ir.fxc.hlsl
index 685a9ee..52287c3 100644
--- a/test/tint/builtins/gen/literal/textureStore/ee6acc.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureStore/ee6acc.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,15 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWTexture3D<float4> arg_0 : register(u0, space1);
+void textureStore_ee6acc() {
+  arg_0[(1).xxx] = (1.0f).xxxx;
+}
+
+void fragment_main() {
+  textureStore_ee6acc();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  textureStore_ee6acc();
+}
+
diff --git a/test/tint/builtins/gen/literal/textureStore/ef9f2f.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/textureStore/ef9f2f.wgsl.expected.ir.dxc.hlsl
index 685a9ee..1c9efbf 100644
--- a/test/tint/builtins/gen/literal/textureStore/ef9f2f.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureStore/ef9f2f.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,15 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWTexture3D<uint4> arg_0 : register(u0, space1);
+void textureStore_ef9f2f() {
+  arg_0[(1).xxx] = (1u).xxxx;
+}
+
+void fragment_main() {
+  textureStore_ef9f2f();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  textureStore_ef9f2f();
+}
+
diff --git a/test/tint/builtins/gen/literal/textureStore/ef9f2f.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/textureStore/ef9f2f.wgsl.expected.ir.fxc.hlsl
index 685a9ee..1c9efbf 100644
--- a/test/tint/builtins/gen/literal/textureStore/ef9f2f.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureStore/ef9f2f.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,15 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWTexture3D<uint4> arg_0 : register(u0, space1);
+void textureStore_ef9f2f() {
+  arg_0[(1).xxx] = (1u).xxxx;
+}
+
+void fragment_main() {
+  textureStore_ef9f2f();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  textureStore_ef9f2f();
+}
+
diff --git a/test/tint/builtins/gen/literal/textureStore/f05928.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/textureStore/f05928.wgsl.expected.ir.dxc.hlsl
index 685a9ee..1b012c8 100644
--- a/test/tint/builtins/gen/literal/textureStore/f05928.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureStore/f05928.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,16 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWTexture2DArray<int4> arg_0 : register(u0, space1);
+void textureStore_f05928() {
+  RWTexture2DArray<int4> v = arg_0;
+  v[int3((1).xx, int(1u))] = (1).xxxx;
+}
+
+void fragment_main() {
+  textureStore_f05928();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  textureStore_f05928();
+}
+
diff --git a/test/tint/builtins/gen/literal/textureStore/f05928.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/textureStore/f05928.wgsl.expected.ir.fxc.hlsl
index 685a9ee..1b012c8 100644
--- a/test/tint/builtins/gen/literal/textureStore/f05928.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureStore/f05928.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,16 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWTexture2DArray<int4> arg_0 : register(u0, space1);
+void textureStore_f05928() {
+  RWTexture2DArray<int4> v = arg_0;
+  v[int3((1).xx, int(1u))] = (1).xxxx;
+}
+
+void fragment_main() {
+  textureStore_f05928();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  textureStore_f05928();
+}
+
diff --git a/test/tint/builtins/gen/literal/textureStore/f1e6d3.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/textureStore/f1e6d3.wgsl.expected.ir.dxc.hlsl
index 685a9ee..0b5425a 100644
--- a/test/tint/builtins/gen/literal/textureStore/f1e6d3.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureStore/f1e6d3.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,15 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWTexture3D<int4> arg_0 : register(u0, space1);
+void textureStore_f1e6d3() {
+  arg_0[(1u).xxx] = (1).xxxx;
+}
+
+void fragment_main() {
+  textureStore_f1e6d3();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  textureStore_f1e6d3();
+}
+
diff --git a/test/tint/builtins/gen/literal/textureStore/f1e6d3.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/textureStore/f1e6d3.wgsl.expected.ir.fxc.hlsl
index 685a9ee..0b5425a 100644
--- a/test/tint/builtins/gen/literal/textureStore/f1e6d3.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureStore/f1e6d3.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,15 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWTexture3D<int4> arg_0 : register(u0, space1);
+void textureStore_f1e6d3() {
+  arg_0[(1u).xxx] = (1).xxxx;
+}
+
+void fragment_main() {
+  textureStore_f1e6d3();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  textureStore_f1e6d3();
+}
+
diff --git a/test/tint/builtins/gen/literal/textureStore/f64d69.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/textureStore/f64d69.wgsl.expected.ir.dxc.hlsl
index 685a9ee..85f8392 100644
--- a/test/tint/builtins/gen/literal/textureStore/f64d69.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureStore/f64d69.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,15 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWTexture1D<int4> arg_0 : register(u0, space1);
+void textureStore_f64d69() {
+  arg_0[1] = (1).xxxx;
+}
+
+void fragment_main() {
+  textureStore_f64d69();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  textureStore_f64d69();
+}
+
diff --git a/test/tint/builtins/gen/literal/textureStore/f64d69.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/textureStore/f64d69.wgsl.expected.ir.fxc.hlsl
index 685a9ee..85f8392 100644
--- a/test/tint/builtins/gen/literal/textureStore/f64d69.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureStore/f64d69.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,15 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWTexture1D<int4> arg_0 : register(u0, space1);
+void textureStore_f64d69() {
+  arg_0[1] = (1).xxxx;
+}
+
+void fragment_main() {
+  textureStore_f64d69();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  textureStore_f64d69();
+}
+
diff --git a/test/tint/builtins/gen/literal/textureStore/f6f392.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/textureStore/f6f392.wgsl.expected.ir.dxc.hlsl
index 685a9ee..364766f 100644
--- a/test/tint/builtins/gen/literal/textureStore/f6f392.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureStore/f6f392.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,16 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWTexture2DArray<float4> arg_0 : register(u0, space1);
+void textureStore_f6f392() {
+  RWTexture2DArray<float4> v = arg_0;
+  v[uint3((1u).xx, uint(1))] = (1.0f).xxxx;
+}
+
+void fragment_main() {
+  textureStore_f6f392();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  textureStore_f6f392();
+}
+
diff --git a/test/tint/builtins/gen/literal/textureStore/f6f392.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/textureStore/f6f392.wgsl.expected.ir.fxc.hlsl
index 685a9ee..364766f 100644
--- a/test/tint/builtins/gen/literal/textureStore/f6f392.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureStore/f6f392.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,16 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWTexture2DArray<float4> arg_0 : register(u0, space1);
+void textureStore_f6f392() {
+  RWTexture2DArray<float4> v = arg_0;
+  v[uint3((1u).xx, uint(1))] = (1.0f).xxxx;
+}
+
+void fragment_main() {
+  textureStore_f6f392();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  textureStore_f6f392();
+}
+
diff --git a/test/tint/builtins/gen/literal/textureStore/f7b0ab.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/textureStore/f7b0ab.wgsl.expected.ir.dxc.hlsl
index 685a9ee..5c3093d 100644
--- a/test/tint/builtins/gen/literal/textureStore/f7b0ab.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureStore/f7b0ab.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,16 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWTexture2DArray<float4> arg_0 : register(u0, space1);
+void textureStore_f7b0ab() {
+  RWTexture2DArray<float4> v = arg_0;
+  v[uint3((1u).xx, uint(1u))] = (1.0f).xxxx;
+}
+
+void fragment_main() {
+  textureStore_f7b0ab();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  textureStore_f7b0ab();
+}
+
diff --git a/test/tint/builtins/gen/literal/textureStore/f7b0ab.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/textureStore/f7b0ab.wgsl.expected.ir.fxc.hlsl
index 685a9ee..5c3093d 100644
--- a/test/tint/builtins/gen/literal/textureStore/f7b0ab.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureStore/f7b0ab.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,16 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWTexture2DArray<float4> arg_0 : register(u0, space1);
+void textureStore_f7b0ab() {
+  RWTexture2DArray<float4> v = arg_0;
+  v[uint3((1u).xx, uint(1u))] = (1.0f).xxxx;
+}
+
+void fragment_main() {
+  textureStore_f7b0ab();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  textureStore_f7b0ab();
+}
+
diff --git a/test/tint/builtins/gen/literal/textureStore/f8aaf9.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/textureStore/f8aaf9.wgsl.expected.ir.dxc.hlsl
index 685a9ee..728d430 100644
--- a/test/tint/builtins/gen/literal/textureStore/f8aaf9.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureStore/f8aaf9.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,16 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWTexture2DArray<int4> arg_0 : register(u0, space1);
+void textureStore_f8aaf9() {
+  RWTexture2DArray<int4> v = arg_0;
+  v[int3((1).xx, int(1))] = (1).xxxx;
+}
+
+void fragment_main() {
+  textureStore_f8aaf9();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  textureStore_f8aaf9();
+}
+
diff --git a/test/tint/builtins/gen/literal/textureStore/f8aaf9.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/textureStore/f8aaf9.wgsl.expected.ir.fxc.hlsl
index 685a9ee..728d430 100644
--- a/test/tint/builtins/gen/literal/textureStore/f8aaf9.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureStore/f8aaf9.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,16 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWTexture2DArray<int4> arg_0 : register(u0, space1);
+void textureStore_f8aaf9() {
+  RWTexture2DArray<int4> v = arg_0;
+  v[int3((1).xx, int(1))] = (1).xxxx;
+}
+
+void fragment_main() {
+  textureStore_f8aaf9();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  textureStore_f8aaf9();
+}
+
diff --git a/test/tint/builtins/gen/literal/textureStore/f8dead.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/textureStore/f8dead.wgsl.expected.ir.dxc.hlsl
index 685a9ee..4a7794f 100644
--- a/test/tint/builtins/gen/literal/textureStore/f8dead.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureStore/f8dead.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,15 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWTexture3D<uint4> arg_0 : register(u0, space1);
+void textureStore_f8dead() {
+  arg_0[(1).xxx] = (1u).xxxx;
+}
+
+void fragment_main() {
+  textureStore_f8dead();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  textureStore_f8dead();
+}
+
diff --git a/test/tint/builtins/gen/literal/textureStore/f8dead.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/textureStore/f8dead.wgsl.expected.ir.fxc.hlsl
index 685a9ee..4a7794f 100644
--- a/test/tint/builtins/gen/literal/textureStore/f8dead.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureStore/f8dead.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,15 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWTexture3D<uint4> arg_0 : register(u0, space1);
+void textureStore_f8dead() {
+  arg_0[(1).xxx] = (1u).xxxx;
+}
+
+void fragment_main() {
+  textureStore_f8dead();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  textureStore_f8dead();
+}
+
diff --git a/test/tint/builtins/gen/literal/textureStore/f975a0.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/textureStore/f975a0.wgsl.expected.ir.dxc.hlsl
index 685a9ee..f6c9a99 100644
--- a/test/tint/builtins/gen/literal/textureStore/f975a0.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureStore/f975a0.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,15 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWTexture2D<float4> arg_0 : register(u0, space1);
+void textureStore_f975a0() {
+  arg_0[(1).xx] = (1.0f).xxxx;
+}
+
+void fragment_main() {
+  textureStore_f975a0();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  textureStore_f975a0();
+}
+
diff --git a/test/tint/builtins/gen/literal/textureStore/f975a0.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/textureStore/f975a0.wgsl.expected.ir.fxc.hlsl
index 685a9ee..f6c9a99 100644
--- a/test/tint/builtins/gen/literal/textureStore/f975a0.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureStore/f975a0.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,15 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWTexture2D<float4> arg_0 : register(u0, space1);
+void textureStore_f975a0() {
+  arg_0[(1).xx] = (1.0f).xxxx;
+}
+
+void fragment_main() {
+  textureStore_f975a0();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  textureStore_f975a0();
+}
+
diff --git a/test/tint/builtins/gen/literal/textureStore/f9be83.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/textureStore/f9be83.wgsl.expected.ir.dxc.hlsl
index 685a9ee..6c832ca 100644
--- a/test/tint/builtins/gen/literal/textureStore/f9be83.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureStore/f9be83.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,16 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWTexture2DArray<int4> arg_0 : register(u0, space1);
+void textureStore_f9be83() {
+  RWTexture2DArray<int4> v = arg_0;
+  v[int3((1).xx, int(1))] = (1).xxxx;
+}
+
+void fragment_main() {
+  textureStore_f9be83();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  textureStore_f9be83();
+}
+
diff --git a/test/tint/builtins/gen/literal/textureStore/f9be83.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/textureStore/f9be83.wgsl.expected.ir.fxc.hlsl
index 685a9ee..6c832ca 100644
--- a/test/tint/builtins/gen/literal/textureStore/f9be83.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureStore/f9be83.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,16 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWTexture2DArray<int4> arg_0 : register(u0, space1);
+void textureStore_f9be83() {
+  RWTexture2DArray<int4> v = arg_0;
+  v[int3((1).xx, int(1))] = (1).xxxx;
+}
+
+void fragment_main() {
+  textureStore_f9be83();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  textureStore_f9be83();
+}
+
diff --git a/test/tint/builtins/gen/literal/textureStore/fb9a8f.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/textureStore/fb9a8f.wgsl.expected.ir.dxc.hlsl
index 685a9ee..2583b23 100644
--- a/test/tint/builtins/gen/literal/textureStore/fb9a8f.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureStore/fb9a8f.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,15 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWTexture1D<uint4> arg_0 : register(u0, space1);
+void textureStore_fb9a8f() {
+  arg_0[1] = (1u).xxxx;
+}
+
+void fragment_main() {
+  textureStore_fb9a8f();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  textureStore_fb9a8f();
+}
+
diff --git a/test/tint/builtins/gen/literal/textureStore/fb9a8f.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/textureStore/fb9a8f.wgsl.expected.ir.fxc.hlsl
index 685a9ee..2583b23 100644
--- a/test/tint/builtins/gen/literal/textureStore/fb9a8f.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureStore/fb9a8f.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,15 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWTexture1D<uint4> arg_0 : register(u0, space1);
+void textureStore_fb9a8f() {
+  arg_0[1] = (1u).xxxx;
+}
+
+void fragment_main() {
+  textureStore_fb9a8f();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  textureStore_fb9a8f();
+}
+
diff --git a/test/tint/builtins/gen/literal/textureStore/fbf53f.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/textureStore/fbf53f.wgsl.expected.ir.dxc.hlsl
index 685a9ee..04a4663 100644
--- a/test/tint/builtins/gen/literal/textureStore/fbf53f.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureStore/fbf53f.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,16 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWTexture2DArray<int4> arg_0 : register(u0, space1);
+void textureStore_fbf53f() {
+  RWTexture2DArray<int4> v = arg_0;
+  v[int3((1).xx, int(1))] = (1).xxxx;
+}
+
+void fragment_main() {
+  textureStore_fbf53f();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  textureStore_fbf53f();
+}
+
diff --git a/test/tint/builtins/gen/literal/textureStore/fbf53f.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/textureStore/fbf53f.wgsl.expected.ir.fxc.hlsl
index 685a9ee..04a4663 100644
--- a/test/tint/builtins/gen/literal/textureStore/fbf53f.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureStore/fbf53f.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,16 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWTexture2DArray<int4> arg_0 : register(u0, space1);
+void textureStore_fbf53f() {
+  RWTexture2DArray<int4> v = arg_0;
+  v[int3((1).xx, int(1))] = (1).xxxx;
+}
+
+void fragment_main() {
+  textureStore_fbf53f();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  textureStore_fbf53f();
+}
+
diff --git a/test/tint/builtins/gen/literal/textureStore/fc916e.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/textureStore/fc916e.wgsl.expected.ir.dxc.hlsl
index 685a9ee..07296e5 100644
--- a/test/tint/builtins/gen/literal/textureStore/fc916e.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureStore/fc916e.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,16 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWTexture2DArray<uint4> arg_0 : register(u0, space1);
+void textureStore_fc916e() {
+  RWTexture2DArray<uint4> v = arg_0;
+  v[uint3((1u).xx, uint(1))] = (1u).xxxx;
+}
+
+void fragment_main() {
+  textureStore_fc916e();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  textureStore_fc916e();
+}
+
diff --git a/test/tint/builtins/gen/literal/textureStore/fc916e.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/textureStore/fc916e.wgsl.expected.ir.fxc.hlsl
index 685a9ee..07296e5 100644
--- a/test/tint/builtins/gen/literal/textureStore/fc916e.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureStore/fc916e.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,16 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWTexture2DArray<uint4> arg_0 : register(u0, space1);
+void textureStore_fc916e() {
+  RWTexture2DArray<uint4> v = arg_0;
+  v[uint3((1u).xx, uint(1))] = (1u).xxxx;
+}
+
+void fragment_main() {
+  textureStore_fc916e();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  textureStore_fc916e();
+}
+
diff --git a/test/tint/builtins/gen/literal/textureStore/fcbe66.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/textureStore/fcbe66.wgsl.expected.ir.dxc.hlsl
index 685a9ee..b5430dc 100644
--- a/test/tint/builtins/gen/literal/textureStore/fcbe66.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureStore/fcbe66.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,15 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWTexture3D<float4> arg_0 : register(u0, space1);
+void textureStore_fcbe66() {
+  arg_0[(1u).xxx] = (1.0f).xxxx;
+}
+
+void fragment_main() {
+  textureStore_fcbe66();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  textureStore_fcbe66();
+}
+
diff --git a/test/tint/builtins/gen/literal/textureStore/fcbe66.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/textureStore/fcbe66.wgsl.expected.ir.fxc.hlsl
index 685a9ee..b5430dc 100644
--- a/test/tint/builtins/gen/literal/textureStore/fcbe66.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureStore/fcbe66.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,15 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWTexture3D<float4> arg_0 : register(u0, space1);
+void textureStore_fcbe66() {
+  arg_0[(1u).xxx] = (1.0f).xxxx;
+}
+
+void fragment_main() {
+  textureStore_fcbe66();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  textureStore_fcbe66();
+}
+
diff --git a/test/tint/builtins/gen/literal/textureStore/fd350c.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/textureStore/fd350c.wgsl.expected.ir.dxc.hlsl
index 685a9ee..4363523 100644
--- a/test/tint/builtins/gen/literal/textureStore/fd350c.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureStore/fd350c.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,16 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWTexture2DArray<uint4> arg_0 : register(u0, space1);
+void textureStore_fd350c() {
+  RWTexture2DArray<uint4> v = arg_0;
+  v[int3((1).xx, int(1u))] = (1u).xxxx;
+}
+
+void fragment_main() {
+  textureStore_fd350c();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  textureStore_fd350c();
+}
+
diff --git a/test/tint/builtins/gen/literal/textureStore/fd350c.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/textureStore/fd350c.wgsl.expected.ir.fxc.hlsl
index 685a9ee..4363523 100644
--- a/test/tint/builtins/gen/literal/textureStore/fd350c.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureStore/fd350c.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,16 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWTexture2DArray<uint4> arg_0 : register(u0, space1);
+void textureStore_fd350c() {
+  RWTexture2DArray<uint4> v = arg_0;
+  v[int3((1).xx, int(1u))] = (1u).xxxx;
+}
+
+void fragment_main() {
+  textureStore_fd350c();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  textureStore_fd350c();
+}
+
diff --git a/test/tint/builtins/gen/literal/textureStore/ff23b3.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/textureStore/ff23b3.wgsl.expected.ir.dxc.hlsl
index 685a9ee..d445e464 100644
--- a/test/tint/builtins/gen/literal/textureStore/ff23b3.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureStore/ff23b3.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,15 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWTexture1D<uint4> arg_0 : register(u0, space1);
+void textureStore_ff23b3() {
+  arg_0[1] = (1u).xxxx;
+}
+
+void fragment_main() {
+  textureStore_ff23b3();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  textureStore_ff23b3();
+}
+
diff --git a/test/tint/builtins/gen/literal/textureStore/ff23b3.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/textureStore/ff23b3.wgsl.expected.ir.fxc.hlsl
index 685a9ee..d445e464 100644
--- a/test/tint/builtins/gen/literal/textureStore/ff23b3.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureStore/ff23b3.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,15 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWTexture1D<uint4> arg_0 : register(u0, space1);
+void textureStore_ff23b3() {
+  arg_0[1] = (1u).xxxx;
+}
+
+void fragment_main() {
+  textureStore_ff23b3();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  textureStore_ff23b3();
+}
+
diff --git a/test/tint/builtins/gen/literal/transpose/06794e.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/transpose/06794e.wgsl.expected.ir.dxc.hlsl
index ddf0424..4b137ad 100644
--- a/test/tint/builtins/gen/literal/transpose/06794e.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/transpose/06794e.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,42 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  int prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: select
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation int VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+int transpose_06794e() {
+  matrix<float16_t, 3, 3> res = matrix<float16_t, 3, 3>((float16_t(1.0h)).xxx, (float16_t(1.0h)).xxx, (float16_t(1.0h)).xxx);
+  return (((res[0].x == float16_t(0.0h))) ? (1) : (0));
+}
+
+void fragment_main() {
+  prevent_dce.Store(0u, asuint(transpose_06794e()));
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store(0u, asuint(transpose_06794e()));
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = transpose_06794e();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
diff --git a/test/tint/builtins/gen/literal/transpose/06794e.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/transpose/06794e.wgsl.expected.ir.fxc.hlsl
index ddf0424..b903c5e 100644
--- a/test/tint/builtins/gen/literal/transpose/06794e.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/transpose/06794e.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,48 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: select
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct VertexOutput {
+  float4 pos;
+  int prevent_dce;
+};
+
+struct vertex_main_outputs {
+  nointerpolation int VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+int transpose_06794e() {
+  matrix<float16_t, 3, 3> res = matrix<float16_t, 3, 3>((float16_t(1.0h)).xxx, (float16_t(1.0h)).xxx, (float16_t(1.0h)).xxx);
+  return (((res[0].x == float16_t(0.0h))) ? (1) : (0));
+}
+
+void fragment_main() {
+  prevent_dce.Store(0u, asuint(transpose_06794e()));
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store(0u, asuint(transpose_06794e()));
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = transpose_06794e();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
+FXC validation failure:
+c:\src\dawn\Shader@0x0000028D61BF2E40(14,10-18): error X3000: syntax error: unexpected token 'float16_t'
+c:\src\dawn\Shader@0x0000028D61BF2E40(15,13-15): error X3004: undeclared identifier 'res'
+
diff --git a/test/tint/builtins/gen/literal/transpose/2585cd.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/transpose/2585cd.wgsl.expected.ir.dxc.hlsl
index ddf0424..06aba7c 100644
--- a/test/tint/builtins/gen/literal/transpose/2585cd.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/transpose/2585cd.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,42 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  int prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: select
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation int VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+int transpose_2585cd() {
+  float3x4 res = float3x4((1.0f).xxxx, (1.0f).xxxx, (1.0f).xxxx);
+  return (((res[0].x == 0.0f)) ? (1) : (0));
+}
+
+void fragment_main() {
+  prevent_dce.Store(0u, asuint(transpose_2585cd()));
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store(0u, asuint(transpose_2585cd()));
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = transpose_2585cd();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
diff --git a/test/tint/builtins/gen/literal/transpose/2585cd.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/transpose/2585cd.wgsl.expected.ir.fxc.hlsl
index ddf0424..06aba7c 100644
--- a/test/tint/builtins/gen/literal/transpose/2585cd.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/transpose/2585cd.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,42 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  int prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: select
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation int VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+int transpose_2585cd() {
+  float3x4 res = float3x4((1.0f).xxxx, (1.0f).xxxx, (1.0f).xxxx);
+  return (((res[0].x == 0.0f)) ? (1) : (0));
+}
+
+void fragment_main() {
+  prevent_dce.Store(0u, asuint(transpose_2585cd()));
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store(0u, asuint(transpose_2585cd()));
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = transpose_2585cd();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
diff --git a/test/tint/builtins/gen/literal/transpose/31d679.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/transpose/31d679.wgsl.expected.ir.dxc.hlsl
index ddf0424..624f2ab 100644
--- a/test/tint/builtins/gen/literal/transpose/31d679.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/transpose/31d679.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,42 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  int prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: select
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation int VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+int transpose_31d679() {
+  float2x2 res = float2x2((1.0f).xx, (1.0f).xx);
+  return (((res[0].x == 0.0f)) ? (1) : (0));
+}
+
+void fragment_main() {
+  prevent_dce.Store(0u, asuint(transpose_31d679()));
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store(0u, asuint(transpose_31d679()));
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = transpose_31d679();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
diff --git a/test/tint/builtins/gen/literal/transpose/31d679.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/transpose/31d679.wgsl.expected.ir.fxc.hlsl
index ddf0424..624f2ab 100644
--- a/test/tint/builtins/gen/literal/transpose/31d679.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/transpose/31d679.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,42 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  int prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: select
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation int VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+int transpose_31d679() {
+  float2x2 res = float2x2((1.0f).xx, (1.0f).xx);
+  return (((res[0].x == 0.0f)) ? (1) : (0));
+}
+
+void fragment_main() {
+  prevent_dce.Store(0u, asuint(transpose_31d679()));
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store(0u, asuint(transpose_31d679()));
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = transpose_31d679();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
diff --git a/test/tint/builtins/gen/literal/transpose/31e37e.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/transpose/31e37e.wgsl.expected.ir.dxc.hlsl
index ddf0424..3002e98 100644
--- a/test/tint/builtins/gen/literal/transpose/31e37e.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/transpose/31e37e.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,42 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  int prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: select
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation int VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+int transpose_31e37e() {
+  float2x4 res = float2x4((1.0f).xxxx, (1.0f).xxxx);
+  return (((res[0].x == 0.0f)) ? (1) : (0));
+}
+
+void fragment_main() {
+  prevent_dce.Store(0u, asuint(transpose_31e37e()));
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store(0u, asuint(transpose_31e37e()));
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = transpose_31e37e();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
diff --git a/test/tint/builtins/gen/literal/transpose/31e37e.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/transpose/31e37e.wgsl.expected.ir.fxc.hlsl
index ddf0424..3002e98 100644
--- a/test/tint/builtins/gen/literal/transpose/31e37e.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/transpose/31e37e.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,42 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  int prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: select
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation int VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+int transpose_31e37e() {
+  float2x4 res = float2x4((1.0f).xxxx, (1.0f).xxxx);
+  return (((res[0].x == 0.0f)) ? (1) : (0));
+}
+
+void fragment_main() {
+  prevent_dce.Store(0u, asuint(transpose_31e37e()));
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store(0u, asuint(transpose_31e37e()));
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = transpose_31e37e();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
diff --git a/test/tint/builtins/gen/literal/transpose/32dd64.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/transpose/32dd64.wgsl.expected.ir.dxc.hlsl
index 0ba40c6..0f08735 100644
--- a/test/tint/builtins/gen/literal/transpose/32dd64.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/transpose/32dd64.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,36 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+void transpose_32dd64() {
+  float4x3 res = float4x3((1.0f).xxx, (1.0f).xxx, (1.0f).xxx, (1.0f).xxx);
+}
+
+void fragment_main() {
+  transpose_32dd64();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  transpose_32dd64();
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  transpose_32dd64();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  vertex_main_outputs v_2 = {v_1.pos};
+  return v_2;
+}
+
diff --git a/test/tint/builtins/gen/literal/transpose/32dd64.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/transpose/32dd64.wgsl.expected.ir.fxc.hlsl
index 0ba40c6..0f08735 100644
--- a/test/tint/builtins/gen/literal/transpose/32dd64.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/transpose/32dd64.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,36 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+void transpose_32dd64() {
+  float4x3 res = float4x3((1.0f).xxx, (1.0f).xxx, (1.0f).xxx, (1.0f).xxx);
+}
+
+void fragment_main() {
+  transpose_32dd64();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  transpose_32dd64();
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  transpose_32dd64();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  vertex_main_outputs v_2 = {v_1.pos};
+  return v_2;
+}
+
diff --git a/test/tint/builtins/gen/literal/transpose/4ce359.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/transpose/4ce359.wgsl.expected.ir.dxc.hlsl
index ddf0424..5e77653 100644
--- a/test/tint/builtins/gen/literal/transpose/4ce359.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/transpose/4ce359.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,42 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  int prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: select
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation int VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+int transpose_4ce359() {
+  float4x2 res = float4x2((1.0f).xx, (1.0f).xx, (1.0f).xx, (1.0f).xx);
+  return (((res[0].x == 0.0f)) ? (1) : (0));
+}
+
+void fragment_main() {
+  prevent_dce.Store(0u, asuint(transpose_4ce359()));
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store(0u, asuint(transpose_4ce359()));
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = transpose_4ce359();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
diff --git a/test/tint/builtins/gen/literal/transpose/4ce359.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/transpose/4ce359.wgsl.expected.ir.fxc.hlsl
index ddf0424..5e77653 100644
--- a/test/tint/builtins/gen/literal/transpose/4ce359.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/transpose/4ce359.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,42 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  int prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: select
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation int VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+int transpose_4ce359() {
+  float4x2 res = float4x2((1.0f).xx, (1.0f).xx, (1.0f).xx, (1.0f).xx);
+  return (((res[0].x == 0.0f)) ? (1) : (0));
+}
+
+void fragment_main() {
+  prevent_dce.Store(0u, asuint(transpose_4ce359()));
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store(0u, asuint(transpose_4ce359()));
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = transpose_4ce359();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
diff --git a/test/tint/builtins/gen/literal/transpose/4dc9a1.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/transpose/4dc9a1.wgsl.expected.ir.dxc.hlsl
index ddf0424..d28df04 100644
--- a/test/tint/builtins/gen/literal/transpose/4dc9a1.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/transpose/4dc9a1.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,42 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  int prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: select
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation int VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+int transpose_4dc9a1() {
+  float3x2 res = float3x2((1.0f).xx, (1.0f).xx, (1.0f).xx);
+  return (((res[0].x == 0.0f)) ? (1) : (0));
+}
+
+void fragment_main() {
+  prevent_dce.Store(0u, asuint(transpose_4dc9a1()));
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store(0u, asuint(transpose_4dc9a1()));
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = transpose_4dc9a1();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
diff --git a/test/tint/builtins/gen/literal/transpose/4dc9a1.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/transpose/4dc9a1.wgsl.expected.ir.fxc.hlsl
index ddf0424..d28df04 100644
--- a/test/tint/builtins/gen/literal/transpose/4dc9a1.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/transpose/4dc9a1.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,42 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  int prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: select
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation int VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+int transpose_4dc9a1() {
+  float3x2 res = float3x2((1.0f).xx, (1.0f).xx, (1.0f).xx);
+  return (((res[0].x == 0.0f)) ? (1) : (0));
+}
+
+void fragment_main() {
+  prevent_dce.Store(0u, asuint(transpose_4dc9a1()));
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store(0u, asuint(transpose_4dc9a1()));
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = transpose_4dc9a1();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
diff --git a/test/tint/builtins/gen/literal/transpose/553e90.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/transpose/553e90.wgsl.expected.ir.dxc.hlsl
index 0ba40c6..d9cf2ac 100644
--- a/test/tint/builtins/gen/literal/transpose/553e90.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/transpose/553e90.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,36 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+void transpose_553e90() {
+  float2x4 res = float2x4((1.0f).xxxx, (1.0f).xxxx);
+}
+
+void fragment_main() {
+  transpose_553e90();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  transpose_553e90();
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  transpose_553e90();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  vertex_main_outputs v_2 = {v_1.pos};
+  return v_2;
+}
+
diff --git a/test/tint/builtins/gen/literal/transpose/553e90.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/transpose/553e90.wgsl.expected.ir.fxc.hlsl
index 0ba40c6..d9cf2ac 100644
--- a/test/tint/builtins/gen/literal/transpose/553e90.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/transpose/553e90.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,36 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+void transpose_553e90() {
+  float2x4 res = float2x4((1.0f).xxxx, (1.0f).xxxx);
+}
+
+void fragment_main() {
+  transpose_553e90();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  transpose_553e90();
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  transpose_553e90();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  vertex_main_outputs v_2 = {v_1.pos};
+  return v_2;
+}
+
diff --git a/test/tint/builtins/gen/literal/transpose/5c133c.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/transpose/5c133c.wgsl.expected.ir.dxc.hlsl
index 0ba40c6..3a33122 100644
--- a/test/tint/builtins/gen/literal/transpose/5c133c.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/transpose/5c133c.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,36 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+void transpose_5c133c() {
+  float3x4 res = float3x4((1.0f).xxxx, (1.0f).xxxx, (1.0f).xxxx);
+}
+
+void fragment_main() {
+  transpose_5c133c();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  transpose_5c133c();
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  transpose_5c133c();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  vertex_main_outputs v_2 = {v_1.pos};
+  return v_2;
+}
+
diff --git a/test/tint/builtins/gen/literal/transpose/5c133c.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/transpose/5c133c.wgsl.expected.ir.fxc.hlsl
index 0ba40c6..3a33122 100644
--- a/test/tint/builtins/gen/literal/transpose/5c133c.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/transpose/5c133c.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,36 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+void transpose_5c133c() {
+  float3x4 res = float3x4((1.0f).xxxx, (1.0f).xxxx, (1.0f).xxxx);
+}
+
+void fragment_main() {
+  transpose_5c133c();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  transpose_5c133c();
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  transpose_5c133c();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  vertex_main_outputs v_2 = {v_1.pos};
+  return v_2;
+}
+
diff --git a/test/tint/builtins/gen/literal/transpose/5edd96.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/transpose/5edd96.wgsl.expected.ir.dxc.hlsl
index ddf0424..0967719 100644
--- a/test/tint/builtins/gen/literal/transpose/5edd96.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/transpose/5edd96.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,42 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  int prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: select
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation int VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+int transpose_5edd96() {
+  matrix<float16_t, 2, 4> res = matrix<float16_t, 2, 4>((float16_t(1.0h)).xxxx, (float16_t(1.0h)).xxxx);
+  return (((res[0].x == float16_t(0.0h))) ? (1) : (0));
+}
+
+void fragment_main() {
+  prevent_dce.Store(0u, asuint(transpose_5edd96()));
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store(0u, asuint(transpose_5edd96()));
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = transpose_5edd96();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
diff --git a/test/tint/builtins/gen/literal/transpose/5edd96.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/transpose/5edd96.wgsl.expected.ir.fxc.hlsl
index ddf0424..a2822e3 100644
--- a/test/tint/builtins/gen/literal/transpose/5edd96.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/transpose/5edd96.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,48 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: select
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct VertexOutput {
+  float4 pos;
+  int prevent_dce;
+};
+
+struct vertex_main_outputs {
+  nointerpolation int VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+int transpose_5edd96() {
+  matrix<float16_t, 2, 4> res = matrix<float16_t, 2, 4>((float16_t(1.0h)).xxxx, (float16_t(1.0h)).xxxx);
+  return (((res[0].x == float16_t(0.0h))) ? (1) : (0));
+}
+
+void fragment_main() {
+  prevent_dce.Store(0u, asuint(transpose_5edd96()));
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store(0u, asuint(transpose_5edd96()));
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = transpose_5edd96();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
+FXC validation failure:
+c:\src\dawn\Shader@0x000001D588217480(14,10-18): error X3000: syntax error: unexpected token 'float16_t'
+c:\src\dawn\Shader@0x000001D588217480(15,13-15): error X3004: undeclared identifier 'res'
+
diff --git a/test/tint/builtins/gen/literal/transpose/5f36bf.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/transpose/5f36bf.wgsl.expected.ir.dxc.hlsl
index ddf0424..ed298c3 100644
--- a/test/tint/builtins/gen/literal/transpose/5f36bf.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/transpose/5f36bf.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,42 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  int prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: select
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation int VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+int transpose_5f36bf() {
+  matrix<float16_t, 3, 4> res = matrix<float16_t, 3, 4>((float16_t(1.0h)).xxxx, (float16_t(1.0h)).xxxx, (float16_t(1.0h)).xxxx);
+  return (((res[0].x == float16_t(0.0h))) ? (1) : (0));
+}
+
+void fragment_main() {
+  prevent_dce.Store(0u, asuint(transpose_5f36bf()));
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store(0u, asuint(transpose_5f36bf()));
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = transpose_5f36bf();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
diff --git a/test/tint/builtins/gen/literal/transpose/5f36bf.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/transpose/5f36bf.wgsl.expected.ir.fxc.hlsl
index ddf0424..f59b0e6 100644
--- a/test/tint/builtins/gen/literal/transpose/5f36bf.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/transpose/5f36bf.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,48 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: select
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct VertexOutput {
+  float4 pos;
+  int prevent_dce;
+};
+
+struct vertex_main_outputs {
+  nointerpolation int VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+int transpose_5f36bf() {
+  matrix<float16_t, 3, 4> res = matrix<float16_t, 3, 4>((float16_t(1.0h)).xxxx, (float16_t(1.0h)).xxxx, (float16_t(1.0h)).xxxx);
+  return (((res[0].x == float16_t(0.0h))) ? (1) : (0));
+}
+
+void fragment_main() {
+  prevent_dce.Store(0u, asuint(transpose_5f36bf()));
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store(0u, asuint(transpose_5f36bf()));
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = transpose_5f36bf();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
+FXC validation failure:
+c:\src\dawn\Shader@0x00000145413AF6B0(14,10-18): error X3000: syntax error: unexpected token 'float16_t'
+c:\src\dawn\Shader@0x00000145413AF6B0(15,13-15): error X3004: undeclared identifier 'res'
+
diff --git a/test/tint/builtins/gen/literal/transpose/66fce8.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/transpose/66fce8.wgsl.expected.ir.dxc.hlsl
index 0ba40c6..cf0eb69 100644
--- a/test/tint/builtins/gen/literal/transpose/66fce8.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/transpose/66fce8.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,36 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+void transpose_66fce8() {
+  float3x3 res = float3x3((1.0f).xxx, (1.0f).xxx, (1.0f).xxx);
+}
+
+void fragment_main() {
+  transpose_66fce8();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  transpose_66fce8();
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  transpose_66fce8();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  vertex_main_outputs v_2 = {v_1.pos};
+  return v_2;
+}
+
diff --git a/test/tint/builtins/gen/literal/transpose/66fce8.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/transpose/66fce8.wgsl.expected.ir.fxc.hlsl
index 0ba40c6..cf0eb69 100644
--- a/test/tint/builtins/gen/literal/transpose/66fce8.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/transpose/66fce8.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,36 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+void transpose_66fce8() {
+  float3x3 res = float3x3((1.0f).xxx, (1.0f).xxx, (1.0f).xxx);
+}
+
+void fragment_main() {
+  transpose_66fce8();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  transpose_66fce8();
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  transpose_66fce8();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  vertex_main_outputs v_2 = {v_1.pos};
+  return v_2;
+}
+
diff --git a/test/tint/builtins/gen/literal/transpose/70ca11.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/transpose/70ca11.wgsl.expected.ir.dxc.hlsl
index 0ba40c6..8e48c54 100644
--- a/test/tint/builtins/gen/literal/transpose/70ca11.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/transpose/70ca11.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,36 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+void transpose_70ca11() {
+  float3x2 res = float3x2((1.0f).xx, (1.0f).xx, (1.0f).xx);
+}
+
+void fragment_main() {
+  transpose_70ca11();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  transpose_70ca11();
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  transpose_70ca11();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  vertex_main_outputs v_2 = {v_1.pos};
+  return v_2;
+}
+
diff --git a/test/tint/builtins/gen/literal/transpose/70ca11.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/transpose/70ca11.wgsl.expected.ir.fxc.hlsl
index 0ba40c6..8e48c54 100644
--- a/test/tint/builtins/gen/literal/transpose/70ca11.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/transpose/70ca11.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,36 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+void transpose_70ca11() {
+  float3x2 res = float3x2((1.0f).xx, (1.0f).xx, (1.0f).xx);
+}
+
+void fragment_main() {
+  transpose_70ca11();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  transpose_70ca11();
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  transpose_70ca11();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  vertex_main_outputs v_2 = {v_1.pos};
+  return v_2;
+}
+
diff --git a/test/tint/builtins/gen/literal/transpose/7be8b2.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/transpose/7be8b2.wgsl.expected.ir.dxc.hlsl
index ddf0424..951452c 100644
--- a/test/tint/builtins/gen/literal/transpose/7be8b2.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/transpose/7be8b2.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,42 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  int prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: select
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation int VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+int transpose_7be8b2() {
+  matrix<float16_t, 2, 2> res = matrix<float16_t, 2, 2>((float16_t(1.0h)).xx, (float16_t(1.0h)).xx);
+  return (((res[0].x == float16_t(0.0h))) ? (1) : (0));
+}
+
+void fragment_main() {
+  prevent_dce.Store(0u, asuint(transpose_7be8b2()));
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store(0u, asuint(transpose_7be8b2()));
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = transpose_7be8b2();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
diff --git a/test/tint/builtins/gen/literal/transpose/7be8b2.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/transpose/7be8b2.wgsl.expected.ir.fxc.hlsl
index ddf0424..fa1c1a8d 100644
--- a/test/tint/builtins/gen/literal/transpose/7be8b2.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/transpose/7be8b2.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,48 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: select
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct VertexOutput {
+  float4 pos;
+  int prevent_dce;
+};
+
+struct vertex_main_outputs {
+  nointerpolation int VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+int transpose_7be8b2() {
+  matrix<float16_t, 2, 2> res = matrix<float16_t, 2, 2>((float16_t(1.0h)).xx, (float16_t(1.0h)).xx);
+  return (((res[0].x == float16_t(0.0h))) ? (1) : (0));
+}
+
+void fragment_main() {
+  prevent_dce.Store(0u, asuint(transpose_7be8b2()));
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store(0u, asuint(transpose_7be8b2()));
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = transpose_7be8b2();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
+FXC validation failure:
+c:\src\dawn\Shader@0x000001DF79DFDDA0(14,10-18): error X3000: syntax error: unexpected token 'float16_t'
+c:\src\dawn\Shader@0x000001DF79DFDDA0(15,13-15): error X3004: undeclared identifier 'res'
+
diff --git a/test/tint/builtins/gen/literal/transpose/7eb2c5.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/transpose/7eb2c5.wgsl.expected.ir.dxc.hlsl
index 0ba40c6..1ce6cb1 100644
--- a/test/tint/builtins/gen/literal/transpose/7eb2c5.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/transpose/7eb2c5.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,36 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+void transpose_7eb2c5() {
+  float2x2 res = float2x2((1.0f).xx, (1.0f).xx);
+}
+
+void fragment_main() {
+  transpose_7eb2c5();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  transpose_7eb2c5();
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  transpose_7eb2c5();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  vertex_main_outputs v_2 = {v_1.pos};
+  return v_2;
+}
+
diff --git a/test/tint/builtins/gen/literal/transpose/7eb2c5.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/transpose/7eb2c5.wgsl.expected.ir.fxc.hlsl
index 0ba40c6..1ce6cb1 100644
--- a/test/tint/builtins/gen/literal/transpose/7eb2c5.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/transpose/7eb2c5.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,36 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+void transpose_7eb2c5() {
+  float2x2 res = float2x2((1.0f).xx, (1.0f).xx);
+}
+
+void fragment_main() {
+  transpose_7eb2c5();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  transpose_7eb2c5();
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  transpose_7eb2c5();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  vertex_main_outputs v_2 = {v_1.pos};
+  return v_2;
+}
+
diff --git a/test/tint/builtins/gen/literal/transpose/844869.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/transpose/844869.wgsl.expected.ir.dxc.hlsl
index ddf0424..b177329 100644
--- a/test/tint/builtins/gen/literal/transpose/844869.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/transpose/844869.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,42 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  int prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: select
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation int VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+int transpose_844869() {
+  matrix<float16_t, 4, 4> res = matrix<float16_t, 4, 4>((float16_t(1.0h)).xxxx, (float16_t(1.0h)).xxxx, (float16_t(1.0h)).xxxx, (float16_t(1.0h)).xxxx);
+  return (((res[0].x == float16_t(0.0h))) ? (1) : (0));
+}
+
+void fragment_main() {
+  prevent_dce.Store(0u, asuint(transpose_844869()));
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store(0u, asuint(transpose_844869()));
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = transpose_844869();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
diff --git a/test/tint/builtins/gen/literal/transpose/844869.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/transpose/844869.wgsl.expected.ir.fxc.hlsl
index ddf0424..d07d2ad 100644
--- a/test/tint/builtins/gen/literal/transpose/844869.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/transpose/844869.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,48 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: select
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct VertexOutput {
+  float4 pos;
+  int prevent_dce;
+};
+
+struct vertex_main_outputs {
+  nointerpolation int VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+int transpose_844869() {
+  matrix<float16_t, 4, 4> res = matrix<float16_t, 4, 4>((float16_t(1.0h)).xxxx, (float16_t(1.0h)).xxxx, (float16_t(1.0h)).xxxx, (float16_t(1.0h)).xxxx);
+  return (((res[0].x == float16_t(0.0h))) ? (1) : (0));
+}
+
+void fragment_main() {
+  prevent_dce.Store(0u, asuint(transpose_844869()));
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store(0u, asuint(transpose_844869()));
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = transpose_844869();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
+FXC validation failure:
+c:\src\dawn\Shader@0x000001D37D600310(14,10-18): error X3000: syntax error: unexpected token 'float16_t'
+c:\src\dawn\Shader@0x000001D37D600310(15,13-15): error X3004: undeclared identifier 'res'
+
diff --git a/test/tint/builtins/gen/literal/transpose/84a763.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/transpose/84a763.wgsl.expected.ir.dxc.hlsl
index 0ba40c6..d90b05a 100644
--- a/test/tint/builtins/gen/literal/transpose/84a763.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/transpose/84a763.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,36 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+void transpose_84a763() {
+  float4x2 res = float4x2((1.0f).xx, (1.0f).xx, (1.0f).xx, (1.0f).xx);
+}
+
+void fragment_main() {
+  transpose_84a763();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  transpose_84a763();
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  transpose_84a763();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  vertex_main_outputs v_2 = {v_1.pos};
+  return v_2;
+}
+
diff --git a/test/tint/builtins/gen/literal/transpose/84a763.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/transpose/84a763.wgsl.expected.ir.fxc.hlsl
index 0ba40c6..d90b05a 100644
--- a/test/tint/builtins/gen/literal/transpose/84a763.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/transpose/84a763.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,36 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+void transpose_84a763() {
+  float4x2 res = float4x2((1.0f).xx, (1.0f).xx, (1.0f).xx, (1.0f).xx);
+}
+
+void fragment_main() {
+  transpose_84a763();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  transpose_84a763();
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  transpose_84a763();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  vertex_main_outputs v_2 = {v_1.pos};
+  return v_2;
+}
+
diff --git a/test/tint/builtins/gen/literal/transpose/854336.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/transpose/854336.wgsl.expected.ir.dxc.hlsl
index ddf0424..8139eff 100644
--- a/test/tint/builtins/gen/literal/transpose/854336.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/transpose/854336.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,42 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  int prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: select
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation int VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+int transpose_854336() {
+  float3x3 res = float3x3((1.0f).xxx, (1.0f).xxx, (1.0f).xxx);
+  return (((res[0].x == 0.0f)) ? (1) : (0));
+}
+
+void fragment_main() {
+  prevent_dce.Store(0u, asuint(transpose_854336()));
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store(0u, asuint(transpose_854336()));
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = transpose_854336();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
diff --git a/test/tint/builtins/gen/literal/transpose/854336.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/transpose/854336.wgsl.expected.ir.fxc.hlsl
index ddf0424..8139eff 100644
--- a/test/tint/builtins/gen/literal/transpose/854336.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/transpose/854336.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,42 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  int prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: select
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation int VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+int transpose_854336() {
+  float3x3 res = float3x3((1.0f).xxx, (1.0f).xxx, (1.0f).xxx);
+  return (((res[0].x == 0.0f)) ? (1) : (0));
+}
+
+void fragment_main() {
+  prevent_dce.Store(0u, asuint(transpose_854336()));
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store(0u, asuint(transpose_854336()));
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = transpose_854336();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
diff --git a/test/tint/builtins/gen/literal/transpose/8c06ce.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/transpose/8c06ce.wgsl.expected.ir.dxc.hlsl
index ddf0424..de266d1 100644
--- a/test/tint/builtins/gen/literal/transpose/8c06ce.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/transpose/8c06ce.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,42 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  int prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: select
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation int VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+int transpose_8c06ce() {
+  matrix<float16_t, 4, 3> res = matrix<float16_t, 4, 3>((float16_t(1.0h)).xxx, (float16_t(1.0h)).xxx, (float16_t(1.0h)).xxx, (float16_t(1.0h)).xxx);
+  return (((res[0].x == float16_t(0.0h))) ? (1) : (0));
+}
+
+void fragment_main() {
+  prevent_dce.Store(0u, asuint(transpose_8c06ce()));
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store(0u, asuint(transpose_8c06ce()));
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = transpose_8c06ce();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
diff --git a/test/tint/builtins/gen/literal/transpose/8c06ce.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/transpose/8c06ce.wgsl.expected.ir.fxc.hlsl
index ddf0424..b25711a 100644
--- a/test/tint/builtins/gen/literal/transpose/8c06ce.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/transpose/8c06ce.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,48 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: select
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct VertexOutput {
+  float4 pos;
+  int prevent_dce;
+};
+
+struct vertex_main_outputs {
+  nointerpolation int VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+int transpose_8c06ce() {
+  matrix<float16_t, 4, 3> res = matrix<float16_t, 4, 3>((float16_t(1.0h)).xxx, (float16_t(1.0h)).xxx, (float16_t(1.0h)).xxx, (float16_t(1.0h)).xxx);
+  return (((res[0].x == float16_t(0.0h))) ? (1) : (0));
+}
+
+void fragment_main() {
+  prevent_dce.Store(0u, asuint(transpose_8c06ce()));
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store(0u, asuint(transpose_8c06ce()));
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = transpose_8c06ce();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
+FXC validation failure:
+c:\src\dawn\Shader@0x0000021A64F05C40(14,10-18): error X3000: syntax error: unexpected token 'float16_t'
+c:\src\dawn\Shader@0x0000021A64F05C40(15,13-15): error X3004: undeclared identifier 'res'
+
diff --git a/test/tint/builtins/gen/literal/transpose/ace596.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/transpose/ace596.wgsl.expected.ir.dxc.hlsl
index 0ba40c6..6be5218 100644
--- a/test/tint/builtins/gen/literal/transpose/ace596.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/transpose/ace596.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,36 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+void transpose_ace596() {
+  float2x3 res = float2x3((1.0f).xxx, (1.0f).xxx);
+}
+
+void fragment_main() {
+  transpose_ace596();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  transpose_ace596();
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  transpose_ace596();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  vertex_main_outputs v_2 = {v_1.pos};
+  return v_2;
+}
+
diff --git a/test/tint/builtins/gen/literal/transpose/ace596.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/transpose/ace596.wgsl.expected.ir.fxc.hlsl
index 0ba40c6..6be5218 100644
--- a/test/tint/builtins/gen/literal/transpose/ace596.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/transpose/ace596.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,36 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+void transpose_ace596() {
+  float2x3 res = float2x3((1.0f).xxx, (1.0f).xxx);
+}
+
+void fragment_main() {
+  transpose_ace596();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  transpose_ace596();
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  transpose_ace596();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  vertex_main_outputs v_2 = {v_1.pos};
+  return v_2;
+}
+
diff --git a/test/tint/builtins/gen/literal/transpose/b9ad1f.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/transpose/b9ad1f.wgsl.expected.ir.dxc.hlsl
index ddf0424..4cdbc68 100644
--- a/test/tint/builtins/gen/literal/transpose/b9ad1f.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/transpose/b9ad1f.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,42 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  int prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: select
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation int VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+int transpose_b9ad1f() {
+  matrix<float16_t, 2, 3> res = matrix<float16_t, 2, 3>((float16_t(1.0h)).xxx, (float16_t(1.0h)).xxx);
+  return (((res[0].x == float16_t(0.0h))) ? (1) : (0));
+}
+
+void fragment_main() {
+  prevent_dce.Store(0u, asuint(transpose_b9ad1f()));
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store(0u, asuint(transpose_b9ad1f()));
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = transpose_b9ad1f();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
diff --git a/test/tint/builtins/gen/literal/transpose/b9ad1f.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/transpose/b9ad1f.wgsl.expected.ir.fxc.hlsl
index ddf0424..3769297 100644
--- a/test/tint/builtins/gen/literal/transpose/b9ad1f.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/transpose/b9ad1f.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,48 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: select
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct VertexOutput {
+  float4 pos;
+  int prevent_dce;
+};
+
+struct vertex_main_outputs {
+  nointerpolation int VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+int transpose_b9ad1f() {
+  matrix<float16_t, 2, 3> res = matrix<float16_t, 2, 3>((float16_t(1.0h)).xxx, (float16_t(1.0h)).xxx);
+  return (((res[0].x == float16_t(0.0h))) ? (1) : (0));
+}
+
+void fragment_main() {
+  prevent_dce.Store(0u, asuint(transpose_b9ad1f()));
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store(0u, asuint(transpose_b9ad1f()));
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = transpose_b9ad1f();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
+FXC validation failure:
+c:\src\dawn\Shader@0x000001C00A592000(14,10-18): error X3000: syntax error: unexpected token 'float16_t'
+c:\src\dawn\Shader@0x000001C00A592000(15,13-15): error X3004: undeclared identifier 'res'
+
diff --git a/test/tint/builtins/gen/literal/transpose/c1b600.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/transpose/c1b600.wgsl.expected.ir.dxc.hlsl
index ddf0424..8d1bb15 100644
--- a/test/tint/builtins/gen/literal/transpose/c1b600.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/transpose/c1b600.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,42 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  int prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: select
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation int VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+int transpose_c1b600() {
+  float4x4 res = float4x4((1.0f).xxxx, (1.0f).xxxx, (1.0f).xxxx, (1.0f).xxxx);
+  return (((res[0].x == 0.0f)) ? (1) : (0));
+}
+
+void fragment_main() {
+  prevent_dce.Store(0u, asuint(transpose_c1b600()));
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store(0u, asuint(transpose_c1b600()));
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = transpose_c1b600();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
diff --git a/test/tint/builtins/gen/literal/transpose/c1b600.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/transpose/c1b600.wgsl.expected.ir.fxc.hlsl
index ddf0424..8d1bb15 100644
--- a/test/tint/builtins/gen/literal/transpose/c1b600.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/transpose/c1b600.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,42 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  int prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: select
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation int VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+int transpose_c1b600() {
+  float4x4 res = float4x4((1.0f).xxxx, (1.0f).xxxx, (1.0f).xxxx, (1.0f).xxxx);
+  return (((res[0].x == 0.0f)) ? (1) : (0));
+}
+
+void fragment_main() {
+  prevent_dce.Store(0u, asuint(transpose_c1b600()));
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store(0u, asuint(transpose_c1b600()));
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = transpose_c1b600();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
diff --git a/test/tint/builtins/gen/literal/transpose/d6faec.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/transpose/d6faec.wgsl.expected.ir.dxc.hlsl
index ddf0424..9d4a7f2 100644
--- a/test/tint/builtins/gen/literal/transpose/d6faec.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/transpose/d6faec.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,42 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  int prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: select
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation int VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+int transpose_d6faec() {
+  matrix<float16_t, 3, 2> res = matrix<float16_t, 3, 2>((float16_t(1.0h)).xx, (float16_t(1.0h)).xx, (float16_t(1.0h)).xx);
+  return (((res[0].x == float16_t(0.0h))) ? (1) : (0));
+}
+
+void fragment_main() {
+  prevent_dce.Store(0u, asuint(transpose_d6faec()));
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store(0u, asuint(transpose_d6faec()));
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = transpose_d6faec();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
diff --git a/test/tint/builtins/gen/literal/transpose/d6faec.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/transpose/d6faec.wgsl.expected.ir.fxc.hlsl
index ddf0424..fc40cab 100644
--- a/test/tint/builtins/gen/literal/transpose/d6faec.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/transpose/d6faec.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,48 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: select
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct VertexOutput {
+  float4 pos;
+  int prevent_dce;
+};
+
+struct vertex_main_outputs {
+  nointerpolation int VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+int transpose_d6faec() {
+  matrix<float16_t, 3, 2> res = matrix<float16_t, 3, 2>((float16_t(1.0h)).xx, (float16_t(1.0h)).xx, (float16_t(1.0h)).xx);
+  return (((res[0].x == float16_t(0.0h))) ? (1) : (0));
+}
+
+void fragment_main() {
+  prevent_dce.Store(0u, asuint(transpose_d6faec()));
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store(0u, asuint(transpose_d6faec()));
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = transpose_d6faec();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
+FXC validation failure:
+c:\src\dawn\Shader@0x000002A1005D4CD0(14,10-18): error X3000: syntax error: unexpected token 'float16_t'
+c:\src\dawn\Shader@0x000002A1005D4CD0(15,13-15): error X3004: undeclared identifier 'res'
+
diff --git a/test/tint/builtins/gen/literal/transpose/d8f8ba.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/transpose/d8f8ba.wgsl.expected.ir.dxc.hlsl
index ddf0424..56e5452 100644
--- a/test/tint/builtins/gen/literal/transpose/d8f8ba.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/transpose/d8f8ba.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,42 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  int prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: select
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation int VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+int transpose_d8f8ba() {
+  float4x3 res = float4x3((1.0f).xxx, (1.0f).xxx, (1.0f).xxx, (1.0f).xxx);
+  return (((res[0].x == 0.0f)) ? (1) : (0));
+}
+
+void fragment_main() {
+  prevent_dce.Store(0u, asuint(transpose_d8f8ba()));
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store(0u, asuint(transpose_d8f8ba()));
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = transpose_d8f8ba();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
diff --git a/test/tint/builtins/gen/literal/transpose/d8f8ba.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/transpose/d8f8ba.wgsl.expected.ir.fxc.hlsl
index ddf0424..56e5452 100644
--- a/test/tint/builtins/gen/literal/transpose/d8f8ba.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/transpose/d8f8ba.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,42 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  int prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: select
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation int VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+int transpose_d8f8ba() {
+  float4x3 res = float4x3((1.0f).xxx, (1.0f).xxx, (1.0f).xxx, (1.0f).xxx);
+  return (((res[0].x == 0.0f)) ? (1) : (0));
+}
+
+void fragment_main() {
+  prevent_dce.Store(0u, asuint(transpose_d8f8ba()));
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store(0u, asuint(transpose_d8f8ba()));
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = transpose_d8f8ba();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
diff --git a/test/tint/builtins/gen/literal/transpose/dc671a.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/transpose/dc671a.wgsl.expected.ir.dxc.hlsl
index 0ba40c6..a2ab1c3 100644
--- a/test/tint/builtins/gen/literal/transpose/dc671a.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/transpose/dc671a.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,36 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+void transpose_dc671a() {
+  float4x4 res = float4x4((1.0f).xxxx, (1.0f).xxxx, (1.0f).xxxx, (1.0f).xxxx);
+}
+
+void fragment_main() {
+  transpose_dc671a();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  transpose_dc671a();
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  transpose_dc671a();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  vertex_main_outputs v_2 = {v_1.pos};
+  return v_2;
+}
+
diff --git a/test/tint/builtins/gen/literal/transpose/dc671a.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/transpose/dc671a.wgsl.expected.ir.fxc.hlsl
index 0ba40c6..a2ab1c3 100644
--- a/test/tint/builtins/gen/literal/transpose/dc671a.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/transpose/dc671a.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,36 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+void transpose_dc671a() {
+  float4x4 res = float4x4((1.0f).xxxx, (1.0f).xxxx, (1.0f).xxxx, (1.0f).xxxx);
+}
+
+void fragment_main() {
+  transpose_dc671a();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  transpose_dc671a();
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  transpose_dc671a();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  vertex_main_outputs v_2 = {v_1.pos};
+  return v_2;
+}
+
diff --git a/test/tint/builtins/gen/literal/transpose/ed4bdc.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/transpose/ed4bdc.wgsl.expected.ir.dxc.hlsl
index ddf0424..f8baec9 100644
--- a/test/tint/builtins/gen/literal/transpose/ed4bdc.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/transpose/ed4bdc.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,42 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  int prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: select
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation int VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+int transpose_ed4bdc() {
+  float2x3 res = float2x3((1.0f).xxx, (1.0f).xxx);
+  return (((res[0].x == 0.0f)) ? (1) : (0));
+}
+
+void fragment_main() {
+  prevent_dce.Store(0u, asuint(transpose_ed4bdc()));
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store(0u, asuint(transpose_ed4bdc()));
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = transpose_ed4bdc();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
diff --git a/test/tint/builtins/gen/literal/transpose/ed4bdc.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/transpose/ed4bdc.wgsl.expected.ir.fxc.hlsl
index ddf0424..f8baec9 100644
--- a/test/tint/builtins/gen/literal/transpose/ed4bdc.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/transpose/ed4bdc.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,42 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  int prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: select
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation int VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+int transpose_ed4bdc() {
+  float2x3 res = float2x3((1.0f).xxx, (1.0f).xxx);
+  return (((res[0].x == 0.0f)) ? (1) : (0));
+}
+
+void fragment_main() {
+  prevent_dce.Store(0u, asuint(transpose_ed4bdc()));
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store(0u, asuint(transpose_ed4bdc()));
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = transpose_ed4bdc();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
diff --git a/test/tint/builtins/gen/literal/transpose/faeb05.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/transpose/faeb05.wgsl.expected.ir.dxc.hlsl
index ddf0424..349a13d 100644
--- a/test/tint/builtins/gen/literal/transpose/faeb05.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/transpose/faeb05.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,42 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  int prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: select
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation int VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+int transpose_faeb05() {
+  matrix<float16_t, 4, 2> res = matrix<float16_t, 4, 2>((float16_t(1.0h)).xx, (float16_t(1.0h)).xx, (float16_t(1.0h)).xx, (float16_t(1.0h)).xx);
+  return (((res[0].x == float16_t(0.0h))) ? (1) : (0));
+}
+
+void fragment_main() {
+  prevent_dce.Store(0u, asuint(transpose_faeb05()));
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store(0u, asuint(transpose_faeb05()));
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = transpose_faeb05();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
diff --git a/test/tint/builtins/gen/literal/transpose/faeb05.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/transpose/faeb05.wgsl.expected.ir.fxc.hlsl
index ddf0424..011fa62 100644
--- a/test/tint/builtins/gen/literal/transpose/faeb05.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/transpose/faeb05.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,48 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: select
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct VertexOutput {
+  float4 pos;
+  int prevent_dce;
+};
+
+struct vertex_main_outputs {
+  nointerpolation int VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+int transpose_faeb05() {
+  matrix<float16_t, 4, 2> res = matrix<float16_t, 4, 2>((float16_t(1.0h)).xx, (float16_t(1.0h)).xx, (float16_t(1.0h)).xx, (float16_t(1.0h)).xx);
+  return (((res[0].x == float16_t(0.0h))) ? (1) : (0));
+}
+
+void fragment_main() {
+  prevent_dce.Store(0u, asuint(transpose_faeb05()));
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store(0u, asuint(transpose_faeb05()));
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = transpose_faeb05();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
+FXC validation failure:
+c:\src\dawn\Shader@0x000001BE31D96880(14,10-18): error X3000: syntax error: unexpected token 'float16_t'
+c:\src\dawn\Shader@0x000001BE31D96880(15,13-15): error X3004: undeclared identifier 'res'
+
diff --git a/test/tint/builtins/gen/literal/trunc/103ab8.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/trunc/103ab8.wgsl.expected.ir.dxc.hlsl
index 0ba40c6..241146e 100644
--- a/test/tint/builtins/gen/literal/trunc/103ab8.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/trunc/103ab8.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,42 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  vector<float16_t, 3> prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation vector<float16_t, 3> VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+vector<float16_t, 3> trunc_103ab8() {
+  vector<float16_t, 3> res = (float16_t(1.0h)).xxx;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store<vector<float16_t, 3> >(0u, trunc_103ab8());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store<vector<float16_t, 3> >(0u, trunc_103ab8());
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = trunc_103ab8();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
diff --git a/test/tint/builtins/gen/literal/trunc/103ab8.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/trunc/103ab8.wgsl.expected.ir.fxc.hlsl
index 0ba40c6..441255f 100644
--- a/test/tint/builtins/gen/literal/trunc/103ab8.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/trunc/103ab8.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,47 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct VertexOutput {
+  float4 pos;
+  vector<float16_t, 3> prevent_dce;
+};
+
+struct vertex_main_outputs {
+  nointerpolation vector<float16_t, 3> VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+vector<float16_t, 3> trunc_103ab8() {
+  vector<float16_t, 3> res = (float16_t(1.0h)).xxx;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store<vector<float16_t, 3> >(0u, trunc_103ab8());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store<vector<float16_t, 3> >(0u, trunc_103ab8());
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = trunc_103ab8();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
+FXC validation failure:
+c:\src\dawn\Shader@0x00000264D5D309E0(3,10-18): error X3000: syntax error: unexpected token 'float16_t'
+
diff --git a/test/tint/builtins/gen/literal/trunc/117396.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/trunc/117396.wgsl.expected.ir.dxc.hlsl
index 0ba40c6..84222b5 100644
--- a/test/tint/builtins/gen/literal/trunc/117396.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/trunc/117396.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,36 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+void trunc_117396() {
+  float3 res = (1.0f).xxx;
+}
+
+void fragment_main() {
+  trunc_117396();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  trunc_117396();
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  trunc_117396();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  vertex_main_outputs v_2 = {v_1.pos};
+  return v_2;
+}
+
diff --git a/test/tint/builtins/gen/literal/trunc/117396.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/trunc/117396.wgsl.expected.ir.fxc.hlsl
index 0ba40c6..84222b5 100644
--- a/test/tint/builtins/gen/literal/trunc/117396.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/trunc/117396.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,36 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+void trunc_117396() {
+  float3 res = (1.0f).xxx;
+}
+
+void fragment_main() {
+  trunc_117396();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  trunc_117396();
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  trunc_117396();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  vertex_main_outputs v_2 = {v_1.pos};
+  return v_2;
+}
+
diff --git a/test/tint/builtins/gen/literal/trunc/562d05.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/trunc/562d05.wgsl.expected.ir.dxc.hlsl
index 0ba40c6..23596a3 100644
--- a/test/tint/builtins/gen/literal/trunc/562d05.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/trunc/562d05.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,42 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  float3 prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation float3 VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+float3 trunc_562d05() {
+  float3 res = (1.0f).xxx;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store3(0u, asuint(trunc_562d05()));
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store3(0u, asuint(trunc_562d05()));
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = trunc_562d05();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
diff --git a/test/tint/builtins/gen/literal/trunc/562d05.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/trunc/562d05.wgsl.expected.ir.fxc.hlsl
index 0ba40c6..23596a3 100644
--- a/test/tint/builtins/gen/literal/trunc/562d05.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/trunc/562d05.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,42 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  float3 prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation float3 VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+float3 trunc_562d05() {
+  float3 res = (1.0f).xxx;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store3(0u, asuint(trunc_562d05()));
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store3(0u, asuint(trunc_562d05()));
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = trunc_562d05();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
diff --git a/test/tint/builtins/gen/literal/trunc/7d6ded.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/trunc/7d6ded.wgsl.expected.ir.dxc.hlsl
index 0ba40c6..4f31d5b 100644
--- a/test/tint/builtins/gen/literal/trunc/7d6ded.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/trunc/7d6ded.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,36 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+void trunc_7d6ded() {
+  float res = 1.0f;
+}
+
+void fragment_main() {
+  trunc_7d6ded();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  trunc_7d6ded();
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  trunc_7d6ded();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  vertex_main_outputs v_2 = {v_1.pos};
+  return v_2;
+}
+
diff --git a/test/tint/builtins/gen/literal/trunc/7d6ded.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/trunc/7d6ded.wgsl.expected.ir.fxc.hlsl
index 0ba40c6..4f31d5b 100644
--- a/test/tint/builtins/gen/literal/trunc/7d6ded.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/trunc/7d6ded.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,36 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+void trunc_7d6ded() {
+  float res = 1.0f;
+}
+
+void fragment_main() {
+  trunc_7d6ded();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  trunc_7d6ded();
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  trunc_7d6ded();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  vertex_main_outputs v_2 = {v_1.pos};
+  return v_2;
+}
+
diff --git a/test/tint/builtins/gen/literal/trunc/a56109.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/trunc/a56109.wgsl.expected.ir.dxc.hlsl
index 0ba40c6..59d770a 100644
--- a/test/tint/builtins/gen/literal/trunc/a56109.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/trunc/a56109.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,42 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  vector<float16_t, 2> prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation vector<float16_t, 2> VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+vector<float16_t, 2> trunc_a56109() {
+  vector<float16_t, 2> res = (float16_t(1.0h)).xx;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store<vector<float16_t, 2> >(0u, trunc_a56109());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store<vector<float16_t, 2> >(0u, trunc_a56109());
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = trunc_a56109();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
diff --git a/test/tint/builtins/gen/literal/trunc/a56109.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/trunc/a56109.wgsl.expected.ir.fxc.hlsl
index 0ba40c6..967a30a 100644
--- a/test/tint/builtins/gen/literal/trunc/a56109.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/trunc/a56109.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,47 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct VertexOutput {
+  float4 pos;
+  vector<float16_t, 2> prevent_dce;
+};
+
+struct vertex_main_outputs {
+  nointerpolation vector<float16_t, 2> VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+vector<float16_t, 2> trunc_a56109() {
+  vector<float16_t, 2> res = (float16_t(1.0h)).xx;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store<vector<float16_t, 2> >(0u, trunc_a56109());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store<vector<float16_t, 2> >(0u, trunc_a56109());
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = trunc_a56109();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
+FXC validation failure:
+c:\src\dawn\Shader@0x000001E89860F440(3,10-18): error X3000: syntax error: unexpected token 'float16_t'
+
diff --git a/test/tint/builtins/gen/literal/trunc/c12555.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/trunc/c12555.wgsl.expected.ir.dxc.hlsl
index 0ba40c6..468c9a5 100644
--- a/test/tint/builtins/gen/literal/trunc/c12555.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/trunc/c12555.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,36 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+void trunc_c12555() {
+  float2 res = (1.0f).xx;
+}
+
+void fragment_main() {
+  trunc_c12555();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  trunc_c12555();
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  trunc_c12555();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  vertex_main_outputs v_2 = {v_1.pos};
+  return v_2;
+}
+
diff --git a/test/tint/builtins/gen/literal/trunc/c12555.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/trunc/c12555.wgsl.expected.ir.fxc.hlsl
index 0ba40c6..468c9a5 100644
--- a/test/tint/builtins/gen/literal/trunc/c12555.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/trunc/c12555.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,36 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+void trunc_c12555() {
+  float2 res = (1.0f).xx;
+}
+
+void fragment_main() {
+  trunc_c12555();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  trunc_c12555();
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  trunc_c12555();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  vertex_main_outputs v_2 = {v_1.pos};
+  return v_2;
+}
+
diff --git a/test/tint/builtins/gen/literal/trunc/cc2b0d.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/trunc/cc2b0d.wgsl.expected.ir.dxc.hlsl
index 0ba40c6..b1aa89b 100644
--- a/test/tint/builtins/gen/literal/trunc/cc2b0d.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/trunc/cc2b0d.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,42 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  float16_t prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation float16_t VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+float16_t trunc_cc2b0d() {
+  float16_t res = float16_t(1.0h);
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store<float16_t>(0u, trunc_cc2b0d());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store<float16_t>(0u, trunc_cc2b0d());
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = trunc_cc2b0d();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
diff --git a/test/tint/builtins/gen/literal/trunc/cc2b0d.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/trunc/cc2b0d.wgsl.expected.ir.fxc.hlsl
index 0ba40c6..6f9c4cb 100644
--- a/test/tint/builtins/gen/literal/trunc/cc2b0d.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/trunc/cc2b0d.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,47 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct VertexOutput {
+  float4 pos;
+  float16_t prevent_dce;
+};
+
+struct vertex_main_outputs {
+  nointerpolation float16_t VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+float16_t trunc_cc2b0d() {
+  float16_t res = float16_t(1.0h);
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store<float16_t>(0u, trunc_cc2b0d());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store<float16_t>(0u, trunc_cc2b0d());
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = trunc_cc2b0d();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
+FXC validation failure:
+c:\src\dawn\Shader@0x0000027808A345D0(3,3-11): error X3000: unrecognized identifier 'float16_t'
+
diff --git a/test/tint/builtins/gen/literal/trunc/ce7c17.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/trunc/ce7c17.wgsl.expected.ir.dxc.hlsl
index 0ba40c6..8c9e4db 100644
--- a/test/tint/builtins/gen/literal/trunc/ce7c17.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/trunc/ce7c17.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,42 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  vector<float16_t, 4> prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation vector<float16_t, 4> VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+vector<float16_t, 4> trunc_ce7c17() {
+  vector<float16_t, 4> res = (float16_t(1.0h)).xxxx;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store<vector<float16_t, 4> >(0u, trunc_ce7c17());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store<vector<float16_t, 4> >(0u, trunc_ce7c17());
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = trunc_ce7c17();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
diff --git a/test/tint/builtins/gen/literal/trunc/ce7c17.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/trunc/ce7c17.wgsl.expected.ir.fxc.hlsl
index 0ba40c6..b556f8f 100644
--- a/test/tint/builtins/gen/literal/trunc/ce7c17.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/trunc/ce7c17.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,47 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct VertexOutput {
+  float4 pos;
+  vector<float16_t, 4> prevent_dce;
+};
+
+struct vertex_main_outputs {
+  nointerpolation vector<float16_t, 4> VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+vector<float16_t, 4> trunc_ce7c17() {
+  vector<float16_t, 4> res = (float16_t(1.0h)).xxxx;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store<vector<float16_t, 4> >(0u, trunc_ce7c17());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store<vector<float16_t, 4> >(0u, trunc_ce7c17());
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = trunc_ce7c17();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
+FXC validation failure:
+c:\src\dawn\Shader@0x00000151EBCCCDE0(3,10-18): error X3000: syntax error: unexpected token 'float16_t'
+
diff --git a/test/tint/builtins/gen/literal/trunc/e183aa.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/trunc/e183aa.wgsl.expected.ir.dxc.hlsl
index 0ba40c6..205c5d0 100644
--- a/test/tint/builtins/gen/literal/trunc/e183aa.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/trunc/e183aa.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,42 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  float4 prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation float4 VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+float4 trunc_e183aa() {
+  float4 res = (1.0f).xxxx;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store4(0u, asuint(trunc_e183aa()));
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store4(0u, asuint(trunc_e183aa()));
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = trunc_e183aa();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
diff --git a/test/tint/builtins/gen/literal/trunc/e183aa.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/trunc/e183aa.wgsl.expected.ir.fxc.hlsl
index 0ba40c6..205c5d0 100644
--- a/test/tint/builtins/gen/literal/trunc/e183aa.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/trunc/e183aa.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,42 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  float4 prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation float4 VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+float4 trunc_e183aa() {
+  float4 res = (1.0f).xxxx;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store4(0u, asuint(trunc_e183aa()));
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store4(0u, asuint(trunc_e183aa()));
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = trunc_e183aa();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
diff --git a/test/tint/builtins/gen/literal/trunc/eb83df.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/trunc/eb83df.wgsl.expected.ir.dxc.hlsl
index 0ba40c6..7f36d55 100644
--- a/test/tint/builtins/gen/literal/trunc/eb83df.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/trunc/eb83df.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,42 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  float prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation float VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+float trunc_eb83df() {
+  float res = 1.0f;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store(0u, asuint(trunc_eb83df()));
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store(0u, asuint(trunc_eb83df()));
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = trunc_eb83df();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
diff --git a/test/tint/builtins/gen/literal/trunc/eb83df.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/trunc/eb83df.wgsl.expected.ir.fxc.hlsl
index 0ba40c6..7f36d55 100644
--- a/test/tint/builtins/gen/literal/trunc/eb83df.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/trunc/eb83df.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,42 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  float prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation float VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+float trunc_eb83df() {
+  float res = 1.0f;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store(0u, asuint(trunc_eb83df()));
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store(0u, asuint(trunc_eb83df()));
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = trunc_eb83df();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
diff --git a/test/tint/builtins/gen/literal/trunc/f0f1a1.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/trunc/f0f1a1.wgsl.expected.ir.dxc.hlsl
index 0ba40c6..fa4a22e 100644
--- a/test/tint/builtins/gen/literal/trunc/f0f1a1.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/trunc/f0f1a1.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,36 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+void trunc_f0f1a1() {
+  float4 res = (1.0f).xxxx;
+}
+
+void fragment_main() {
+  trunc_f0f1a1();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  trunc_f0f1a1();
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  trunc_f0f1a1();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  vertex_main_outputs v_2 = {v_1.pos};
+  return v_2;
+}
+
diff --git a/test/tint/builtins/gen/literal/trunc/f0f1a1.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/trunc/f0f1a1.wgsl.expected.ir.fxc.hlsl
index 0ba40c6..fa4a22e 100644
--- a/test/tint/builtins/gen/literal/trunc/f0f1a1.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/trunc/f0f1a1.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,36 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+void trunc_f0f1a1() {
+  float4 res = (1.0f).xxxx;
+}
+
+void fragment_main() {
+  trunc_f0f1a1();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  trunc_f0f1a1();
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  trunc_f0f1a1();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  vertex_main_outputs v_2 = {v_1.pos};
+  return v_2;
+}
+
diff --git a/test/tint/builtins/gen/literal/trunc/f370d3.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/trunc/f370d3.wgsl.expected.ir.dxc.hlsl
index 0ba40c6..9b91bf3 100644
--- a/test/tint/builtins/gen/literal/trunc/f370d3.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/trunc/f370d3.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,42 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  float2 prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation float2 VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+float2 trunc_f370d3() {
+  float2 res = (1.0f).xx;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store2(0u, asuint(trunc_f370d3()));
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store2(0u, asuint(trunc_f370d3()));
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = trunc_f370d3();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
diff --git a/test/tint/builtins/gen/literal/trunc/f370d3.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/trunc/f370d3.wgsl.expected.ir.fxc.hlsl
index 0ba40c6..9b91bf3 100644
--- a/test/tint/builtins/gen/literal/trunc/f370d3.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/trunc/f370d3.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,42 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  float2 prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation float2 VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+float2 trunc_f370d3() {
+  float2 res = (1.0f).xx;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store2(0u, asuint(trunc_f370d3()));
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store2(0u, asuint(trunc_f370d3()));
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = trunc_f370d3();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
diff --git a/test/tint/builtins/gen/literal/unpack2x16float/32a5cf.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/unpack2x16float/32a5cf.wgsl.expected.ir.dxc.hlsl
index 0ba40c6..bb5dfa4 100644
--- a/test/tint/builtins/gen/literal/unpack2x16float/32a5cf.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/unpack2x16float/32a5cf.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,42 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  float2 prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation float2 VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+float2 unpack2x16float_32a5cf() {
+  float2 res = float2(0.00000005960464477539f, 0.0f);
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store2(0u, asuint(unpack2x16float_32a5cf()));
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store2(0u, asuint(unpack2x16float_32a5cf()));
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = unpack2x16float_32a5cf();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
diff --git a/test/tint/builtins/gen/literal/unpack2x16float/32a5cf.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/unpack2x16float/32a5cf.wgsl.expected.ir.fxc.hlsl
index 0ba40c6..bb5dfa4 100644
--- a/test/tint/builtins/gen/literal/unpack2x16float/32a5cf.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/unpack2x16float/32a5cf.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,42 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  float2 prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation float2 VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+float2 unpack2x16float_32a5cf() {
+  float2 res = float2(0.00000005960464477539f, 0.0f);
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store2(0u, asuint(unpack2x16float_32a5cf()));
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store2(0u, asuint(unpack2x16float_32a5cf()));
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = unpack2x16float_32a5cf();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
diff --git a/test/tint/builtins/gen/literal/unpack2x16snorm/b4aea6.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/unpack2x16snorm/b4aea6.wgsl.expected.ir.dxc.hlsl
index 0ba40c6..bd831a2 100644
--- a/test/tint/builtins/gen/literal/unpack2x16snorm/b4aea6.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/unpack2x16snorm/b4aea6.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,42 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  float2 prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation float2 VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+float2 unpack2x16snorm_b4aea6() {
+  float2 res = float2(0.00003051850944757462f, 0.0f);
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store2(0u, asuint(unpack2x16snorm_b4aea6()));
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store2(0u, asuint(unpack2x16snorm_b4aea6()));
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = unpack2x16snorm_b4aea6();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
diff --git a/test/tint/builtins/gen/literal/unpack2x16snorm/b4aea6.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/unpack2x16snorm/b4aea6.wgsl.expected.ir.fxc.hlsl
index 0ba40c6..bd831a2 100644
--- a/test/tint/builtins/gen/literal/unpack2x16snorm/b4aea6.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/unpack2x16snorm/b4aea6.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,42 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  float2 prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation float2 VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+float2 unpack2x16snorm_b4aea6() {
+  float2 res = float2(0.00003051850944757462f, 0.0f);
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store2(0u, asuint(unpack2x16snorm_b4aea6()));
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store2(0u, asuint(unpack2x16snorm_b4aea6()));
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = unpack2x16snorm_b4aea6();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
diff --git a/test/tint/builtins/gen/literal/unpack2x16unorm/7699c0.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/unpack2x16unorm/7699c0.wgsl.expected.ir.dxc.hlsl
index 0ba40c6..cf9fb18 100644
--- a/test/tint/builtins/gen/literal/unpack2x16unorm/7699c0.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/unpack2x16unorm/7699c0.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,42 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  float2 prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation float2 VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+float2 unpack2x16unorm_7699c0() {
+  float2 res = float2(0.00001525902189314365f, 0.0f);
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store2(0u, asuint(unpack2x16unorm_7699c0()));
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store2(0u, asuint(unpack2x16unorm_7699c0()));
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = unpack2x16unorm_7699c0();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
diff --git a/test/tint/builtins/gen/literal/unpack2x16unorm/7699c0.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/unpack2x16unorm/7699c0.wgsl.expected.ir.fxc.hlsl
index 0ba40c6..cf9fb18 100644
--- a/test/tint/builtins/gen/literal/unpack2x16unorm/7699c0.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/unpack2x16unorm/7699c0.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,42 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  float2 prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation float2 VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+float2 unpack2x16unorm_7699c0() {
+  float2 res = float2(0.00001525902189314365f, 0.0f);
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store2(0u, asuint(unpack2x16unorm_7699c0()));
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store2(0u, asuint(unpack2x16unorm_7699c0()));
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = unpack2x16unorm_7699c0();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
diff --git a/test/tint/builtins/gen/literal/unpack4x8snorm/523fb3.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/unpack4x8snorm/523fb3.wgsl.expected.ir.dxc.hlsl
index 0ba40c6..5ba3c68 100644
--- a/test/tint/builtins/gen/literal/unpack4x8snorm/523fb3.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/unpack4x8snorm/523fb3.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,42 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  float4 prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation float4 VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+float4 unpack4x8snorm_523fb3() {
+  float4 res = float4(0.00787401571869850159f, 0.0f, 0.0f, 0.0f);
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store4(0u, asuint(unpack4x8snorm_523fb3()));
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store4(0u, asuint(unpack4x8snorm_523fb3()));
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = unpack4x8snorm_523fb3();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
diff --git a/test/tint/builtins/gen/literal/unpack4x8snorm/523fb3.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/unpack4x8snorm/523fb3.wgsl.expected.ir.fxc.hlsl
index 0ba40c6..5ba3c68 100644
--- a/test/tint/builtins/gen/literal/unpack4x8snorm/523fb3.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/unpack4x8snorm/523fb3.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,42 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  float4 prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation float4 VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+float4 unpack4x8snorm_523fb3() {
+  float4 res = float4(0.00787401571869850159f, 0.0f, 0.0f, 0.0f);
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store4(0u, asuint(unpack4x8snorm_523fb3()));
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store4(0u, asuint(unpack4x8snorm_523fb3()));
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = unpack4x8snorm_523fb3();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
diff --git a/test/tint/builtins/gen/literal/unpack4x8unorm/750c74.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/unpack4x8unorm/750c74.wgsl.expected.ir.dxc.hlsl
index 0ba40c6..5e9bc5d 100644
--- a/test/tint/builtins/gen/literal/unpack4x8unorm/750c74.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/unpack4x8unorm/750c74.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,42 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  float4 prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation float4 VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+float4 unpack4x8unorm_750c74() {
+  float4 res = float4(0.0039215688593685627f, 0.0f, 0.0f, 0.0f);
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store4(0u, asuint(unpack4x8unorm_750c74()));
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store4(0u, asuint(unpack4x8unorm_750c74()));
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = unpack4x8unorm_750c74();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
diff --git a/test/tint/builtins/gen/literal/unpack4x8unorm/750c74.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/unpack4x8unorm/750c74.wgsl.expected.ir.fxc.hlsl
index 0ba40c6..5e9bc5d 100644
--- a/test/tint/builtins/gen/literal/unpack4x8unorm/750c74.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/unpack4x8unorm/750c74.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,42 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  float4 prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation float4 VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+float4 unpack4x8unorm_750c74() {
+  float4 res = float4(0.0039215688593685627f, 0.0f, 0.0f, 0.0f);
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store4(0u, asuint(unpack4x8unorm_750c74()));
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store4(0u, asuint(unpack4x8unorm_750c74()));
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = unpack4x8unorm_750c74();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
diff --git a/test/tint/builtins/gen/literal/unpack4xI8/830900.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/unpack4xI8/830900.wgsl.expected.ir.dxc.hlsl
index 0ba40c6..4b20489 100644
--- a/test/tint/builtins/gen/literal/unpack4xI8/830900.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/unpack4xI8/830900.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,42 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  int4 prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation int4 VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+int4 unpack4xI8_830900() {
+  int4 res = int4(1, 0, 0, 0);
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store4(0u, asuint(unpack4xI8_830900()));
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store4(0u, asuint(unpack4xI8_830900()));
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = unpack4xI8_830900();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
diff --git a/test/tint/builtins/gen/literal/unpack4xI8/830900.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/unpack4xI8/830900.wgsl.expected.ir.fxc.hlsl
index 0ba40c6..4b20489 100644
--- a/test/tint/builtins/gen/literal/unpack4xI8/830900.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/unpack4xI8/830900.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,42 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  int4 prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation int4 VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+int4 unpack4xI8_830900() {
+  int4 res = int4(1, 0, 0, 0);
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store4(0u, asuint(unpack4xI8_830900()));
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store4(0u, asuint(unpack4xI8_830900()));
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = unpack4xI8_830900();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
diff --git a/test/tint/builtins/gen/literal/unpack4xU8/a5ea55.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/unpack4xU8/a5ea55.wgsl.expected.ir.dxc.hlsl
index 0ba40c6..87dad82 100644
--- a/test/tint/builtins/gen/literal/unpack4xU8/a5ea55.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/unpack4xU8/a5ea55.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,42 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  uint4 prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation uint4 VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+uint4 unpack4xU8_a5ea55() {
+  uint4 res = uint4(1u, 0u, 0u, 0u);
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store4(0u, unpack4xU8_a5ea55());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store4(0u, unpack4xU8_a5ea55());
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = unpack4xU8_a5ea55();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
diff --git a/test/tint/builtins/gen/literal/unpack4xU8/a5ea55.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/unpack4xU8/a5ea55.wgsl.expected.ir.fxc.hlsl
index 0ba40c6..87dad82 100644
--- a/test/tint/builtins/gen/literal/unpack4xU8/a5ea55.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/unpack4xU8/a5ea55.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,42 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  uint4 prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation uint4 VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+uint4 unpack4xU8_a5ea55() {
+  uint4 res = uint4(1u, 0u, 0u, 0u);
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store4(0u, unpack4xU8_a5ea55());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store4(0u, unpack4xU8_a5ea55());
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = unpack4xU8_a5ea55();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
diff --git a/test/tint/builtins/gen/literal/workgroupBarrier/a17f7f.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/workgroupBarrier/a17f7f.wgsl.expected.ir.dxc.hlsl
index 479ffbc..c588872 100644
--- a/test/tint/builtins/gen/literal/workgroupBarrier/a17f7f.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/workgroupBarrier/a17f7f.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,10 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: workgroupBarrier
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+void workgroupBarrier_a17f7f() {
+  GroupMemoryBarrierWithGroupSync();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  workgroupBarrier_a17f7f();
+}
+
diff --git a/test/tint/builtins/gen/literal/workgroupBarrier/a17f7f.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/workgroupBarrier/a17f7f.wgsl.expected.ir.fxc.hlsl
index 479ffbc..c588872 100644
--- a/test/tint/builtins/gen/literal/workgroupBarrier/a17f7f.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/workgroupBarrier/a17f7f.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,10 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: workgroupBarrier
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+void workgroupBarrier_a17f7f() {
+  GroupMemoryBarrierWithGroupSync();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  workgroupBarrier_a17f7f();
+}
+
diff --git a/test/tint/builtins/gen/literal/workgroupUniformLoad/37307c.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/workgroupUniformLoad/37307c.wgsl.expected.ir.dxc.hlsl
index 479ffbc..61bb6ba 100644
--- a/test/tint/builtins/gen/literal/workgroupUniformLoad/37307c.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/workgroupUniformLoad/37307c.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,28 @@
-SKIP: FAILED
+struct compute_main_inputs {
+  uint tint_local_index : SV_GroupIndex;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: workgroupBarrier
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+
+RWByteAddressBuffer prevent_dce : register(u0);
+groupshared uint arg_0;
+uint workgroupUniformLoad_37307c() {
+  GroupMemoryBarrierWithGroupSync();
+  uint v = arg_0;
+  GroupMemoryBarrierWithGroupSync();
+  uint res = v;
+  return res;
+}
+
+void compute_main_inner(uint tint_local_index) {
+  if ((tint_local_index == 0u)) {
+    arg_0 = 0u;
+  }
+  GroupMemoryBarrierWithGroupSync();
+  prevent_dce.Store(0u, workgroupUniformLoad_37307c());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main(compute_main_inputs inputs) {
+  compute_main_inner(inputs.tint_local_index);
+}
+
diff --git a/test/tint/builtins/gen/literal/workgroupUniformLoad/37307c.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/workgroupUniformLoad/37307c.wgsl.expected.ir.fxc.hlsl
index 479ffbc..61bb6ba 100644
--- a/test/tint/builtins/gen/literal/workgroupUniformLoad/37307c.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/workgroupUniformLoad/37307c.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,28 @@
-SKIP: FAILED
+struct compute_main_inputs {
+  uint tint_local_index : SV_GroupIndex;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: workgroupBarrier
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+
+RWByteAddressBuffer prevent_dce : register(u0);
+groupshared uint arg_0;
+uint workgroupUniformLoad_37307c() {
+  GroupMemoryBarrierWithGroupSync();
+  uint v = arg_0;
+  GroupMemoryBarrierWithGroupSync();
+  uint res = v;
+  return res;
+}
+
+void compute_main_inner(uint tint_local_index) {
+  if ((tint_local_index == 0u)) {
+    arg_0 = 0u;
+  }
+  GroupMemoryBarrierWithGroupSync();
+  prevent_dce.Store(0u, workgroupUniformLoad_37307c());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main(compute_main_inputs inputs) {
+  compute_main_inner(inputs.tint_local_index);
+}
+
diff --git a/test/tint/builtins/gen/literal/workgroupUniformLoad/7a857c.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/workgroupUniformLoad/7a857c.wgsl.expected.ir.dxc.hlsl
index 479ffbc..7e99cbc 100644
--- a/test/tint/builtins/gen/literal/workgroupUniformLoad/7a857c.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/workgroupUniformLoad/7a857c.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,28 @@
-SKIP: FAILED
+struct compute_main_inputs {
+  uint tint_local_index : SV_GroupIndex;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: workgroupBarrier
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+
+RWByteAddressBuffer prevent_dce : register(u0);
+groupshared float arg_0;
+float workgroupUniformLoad_7a857c() {
+  GroupMemoryBarrierWithGroupSync();
+  float v = arg_0;
+  GroupMemoryBarrierWithGroupSync();
+  float res = v;
+  return res;
+}
+
+void compute_main_inner(uint tint_local_index) {
+  if ((tint_local_index == 0u)) {
+    arg_0 = 0.0f;
+  }
+  GroupMemoryBarrierWithGroupSync();
+  prevent_dce.Store(0u, asuint(workgroupUniformLoad_7a857c()));
+}
+
+[numthreads(1, 1, 1)]
+void compute_main(compute_main_inputs inputs) {
+  compute_main_inner(inputs.tint_local_index);
+}
+
diff --git a/test/tint/builtins/gen/literal/workgroupUniformLoad/7a857c.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/workgroupUniformLoad/7a857c.wgsl.expected.ir.fxc.hlsl
index 479ffbc..7e99cbc 100644
--- a/test/tint/builtins/gen/literal/workgroupUniformLoad/7a857c.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/workgroupUniformLoad/7a857c.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,28 @@
-SKIP: FAILED
+struct compute_main_inputs {
+  uint tint_local_index : SV_GroupIndex;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: workgroupBarrier
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+
+RWByteAddressBuffer prevent_dce : register(u0);
+groupshared float arg_0;
+float workgroupUniformLoad_7a857c() {
+  GroupMemoryBarrierWithGroupSync();
+  float v = arg_0;
+  GroupMemoryBarrierWithGroupSync();
+  float res = v;
+  return res;
+}
+
+void compute_main_inner(uint tint_local_index) {
+  if ((tint_local_index == 0u)) {
+    arg_0 = 0.0f;
+  }
+  GroupMemoryBarrierWithGroupSync();
+  prevent_dce.Store(0u, asuint(workgroupUniformLoad_7a857c()));
+}
+
+[numthreads(1, 1, 1)]
+void compute_main(compute_main_inputs inputs) {
+  compute_main_inner(inputs.tint_local_index);
+}
+
diff --git a/test/tint/builtins/gen/literal/workgroupUniformLoad/9d33de.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/workgroupUniformLoad/9d33de.wgsl.expected.ir.dxc.hlsl
index 479ffbc..8a6c6aa 100644
--- a/test/tint/builtins/gen/literal/workgroupUniformLoad/9d33de.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/workgroupUniformLoad/9d33de.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,28 @@
-SKIP: FAILED
+struct compute_main_inputs {
+  uint tint_local_index : SV_GroupIndex;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: workgroupBarrier
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+
+RWByteAddressBuffer prevent_dce : register(u0);
+groupshared int arg_0;
+int workgroupUniformLoad_9d33de() {
+  GroupMemoryBarrierWithGroupSync();
+  int v = arg_0;
+  GroupMemoryBarrierWithGroupSync();
+  int res = v;
+  return res;
+}
+
+void compute_main_inner(uint tint_local_index) {
+  if ((tint_local_index == 0u)) {
+    arg_0 = 0;
+  }
+  GroupMemoryBarrierWithGroupSync();
+  prevent_dce.Store(0u, asuint(workgroupUniformLoad_9d33de()));
+}
+
+[numthreads(1, 1, 1)]
+void compute_main(compute_main_inputs inputs) {
+  compute_main_inner(inputs.tint_local_index);
+}
+
diff --git a/test/tint/builtins/gen/literal/workgroupUniformLoad/9d33de.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/workgroupUniformLoad/9d33de.wgsl.expected.ir.fxc.hlsl
index 479ffbc..8a6c6aa 100644
--- a/test/tint/builtins/gen/literal/workgroupUniformLoad/9d33de.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/workgroupUniformLoad/9d33de.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,28 @@
-SKIP: FAILED
+struct compute_main_inputs {
+  uint tint_local_index : SV_GroupIndex;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: workgroupBarrier
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+
+RWByteAddressBuffer prevent_dce : register(u0);
+groupshared int arg_0;
+int workgroupUniformLoad_9d33de() {
+  GroupMemoryBarrierWithGroupSync();
+  int v = arg_0;
+  GroupMemoryBarrierWithGroupSync();
+  int res = v;
+  return res;
+}
+
+void compute_main_inner(uint tint_local_index) {
+  if ((tint_local_index == 0u)) {
+    arg_0 = 0;
+  }
+  GroupMemoryBarrierWithGroupSync();
+  prevent_dce.Store(0u, asuint(workgroupUniformLoad_9d33de()));
+}
+
+[numthreads(1, 1, 1)]
+void compute_main(compute_main_inputs inputs) {
+  compute_main_inner(inputs.tint_local_index);
+}
+
diff --git a/test/tint/builtins/gen/literal/workgroupUniformLoad/e07d08.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/workgroupUniformLoad/e07d08.wgsl.expected.ir.dxc.hlsl
index 479ffbc..5bc798a 100644
--- a/test/tint/builtins/gen/literal/workgroupUniformLoad/e07d08.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/workgroupUniformLoad/e07d08.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,28 @@
-SKIP: FAILED
+struct compute_main_inputs {
+  uint tint_local_index : SV_GroupIndex;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: workgroupBarrier
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+
+RWByteAddressBuffer prevent_dce : register(u0);
+groupshared float16_t arg_0;
+float16_t workgroupUniformLoad_e07d08() {
+  GroupMemoryBarrierWithGroupSync();
+  float16_t v = arg_0;
+  GroupMemoryBarrierWithGroupSync();
+  float16_t res = v;
+  return res;
+}
+
+void compute_main_inner(uint tint_local_index) {
+  if ((tint_local_index == 0u)) {
+    arg_0 = float16_t(0.0h);
+  }
+  GroupMemoryBarrierWithGroupSync();
+  prevent_dce.Store<float16_t>(0u, workgroupUniformLoad_e07d08());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main(compute_main_inputs inputs) {
+  compute_main_inner(inputs.tint_local_index);
+}
+
diff --git a/test/tint/builtins/gen/literal/workgroupUniformLoad/e07d08.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/workgroupUniformLoad/e07d08.wgsl.expected.ir.fxc.hlsl
index 479ffbc..25af6df 100644
--- a/test/tint/builtins/gen/literal/workgroupUniformLoad/e07d08.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/workgroupUniformLoad/e07d08.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,33 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: workgroupBarrier
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct compute_main_inputs {
+  uint tint_local_index : SV_GroupIndex;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+groupshared float16_t arg_0;
+float16_t workgroupUniformLoad_e07d08() {
+  GroupMemoryBarrierWithGroupSync();
+  float16_t v = arg_0;
+  GroupMemoryBarrierWithGroupSync();
+  float16_t res = v;
+  return res;
+}
+
+void compute_main_inner(uint tint_local_index) {
+  if ((tint_local_index == 0u)) {
+    arg_0 = float16_t(0.0h);
+  }
+  GroupMemoryBarrierWithGroupSync();
+  prevent_dce.Store<float16_t>(0u, workgroupUniformLoad_e07d08());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main(compute_main_inputs inputs) {
+  compute_main_inner(inputs.tint_local_index);
+}
+
+FXC validation failure:
+c:\src\dawn\Shader@0x0000028D83F440E0(7,13-21): error X3000: unrecognized identifier 'float16_t'
+
diff --git a/test/tint/builtins/gen/var/abs/002533.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/abs/002533.wgsl.expected.ir.dxc.hlsl
index 0ba40c6..042acc6 100644
--- a/test/tint/builtins/gen/var/abs/002533.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/abs/002533.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,43 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  float4 prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation float4 VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+float4 abs_002533() {
+  float4 arg_0 = (1.0f).xxxx;
+  float4 res = abs(arg_0);
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store4(0u, asuint(abs_002533()));
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store4(0u, asuint(abs_002533()));
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = abs_002533();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
diff --git a/test/tint/builtins/gen/var/abs/002533.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/abs/002533.wgsl.expected.ir.fxc.hlsl
index 0ba40c6..042acc6 100644
--- a/test/tint/builtins/gen/var/abs/002533.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/abs/002533.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,43 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  float4 prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation float4 VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+float4 abs_002533() {
+  float4 arg_0 = (1.0f).xxxx;
+  float4 res = abs(arg_0);
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store4(0u, asuint(abs_002533()));
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store4(0u, asuint(abs_002533()));
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = abs_002533();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
diff --git a/test/tint/builtins/gen/var/abs/005174.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/abs/005174.wgsl.expected.ir.dxc.hlsl
index 0ba40c6..323fe91 100644
--- a/test/tint/builtins/gen/var/abs/005174.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/abs/005174.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,43 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  float3 prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation float3 VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+float3 abs_005174() {
+  float3 arg_0 = (1.0f).xxx;
+  float3 res = abs(arg_0);
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store3(0u, asuint(abs_005174()));
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store3(0u, asuint(abs_005174()));
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = abs_005174();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
diff --git a/test/tint/builtins/gen/var/abs/005174.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/abs/005174.wgsl.expected.ir.fxc.hlsl
index 0ba40c6..323fe91 100644
--- a/test/tint/builtins/gen/var/abs/005174.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/abs/005174.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,43 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  float3 prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation float3 VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+float3 abs_005174() {
+  float3 arg_0 = (1.0f).xxx;
+  float3 res = abs(arg_0);
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store3(0u, asuint(abs_005174()));
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store3(0u, asuint(abs_005174()));
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = abs_005174();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
diff --git a/test/tint/builtins/gen/var/abs/1ce782.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/abs/1ce782.wgsl.expected.ir.dxc.hlsl
index 0ba40c6..2abd220 100644
--- a/test/tint/builtins/gen/var/abs/1ce782.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/abs/1ce782.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,43 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  uint4 prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation uint4 VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+uint4 abs_1ce782() {
+  uint4 arg_0 = (1u).xxxx;
+  uint4 res = abs(arg_0);
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store4(0u, abs_1ce782());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store4(0u, abs_1ce782());
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = abs_1ce782();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
diff --git a/test/tint/builtins/gen/var/abs/1ce782.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/abs/1ce782.wgsl.expected.ir.fxc.hlsl
index 0ba40c6..2abd220 100644
--- a/test/tint/builtins/gen/var/abs/1ce782.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/abs/1ce782.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,43 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  uint4 prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation uint4 VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+uint4 abs_1ce782() {
+  uint4 arg_0 = (1u).xxxx;
+  uint4 res = abs(arg_0);
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store4(0u, abs_1ce782());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store4(0u, abs_1ce782());
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = abs_1ce782();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
diff --git a/test/tint/builtins/gen/var/abs/1e9d53.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/abs/1e9d53.wgsl.expected.ir.dxc.hlsl
index 0ba40c6..3b532a9 100644
--- a/test/tint/builtins/gen/var/abs/1e9d53.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/abs/1e9d53.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,43 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  float2 prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation float2 VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+float2 abs_1e9d53() {
+  float2 arg_0 = (1.0f).xx;
+  float2 res = abs(arg_0);
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store2(0u, asuint(abs_1e9d53()));
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store2(0u, asuint(abs_1e9d53()));
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = abs_1e9d53();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
diff --git a/test/tint/builtins/gen/var/abs/1e9d53.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/abs/1e9d53.wgsl.expected.ir.fxc.hlsl
index 0ba40c6..3b532a9 100644
--- a/test/tint/builtins/gen/var/abs/1e9d53.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/abs/1e9d53.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,43 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  float2 prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation float2 VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+float2 abs_1e9d53() {
+  float2 arg_0 = (1.0f).xx;
+  float2 res = abs(arg_0);
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store2(0u, asuint(abs_1e9d53()));
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store2(0u, asuint(abs_1e9d53()));
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = abs_1e9d53();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
diff --git a/test/tint/builtins/gen/var/abs/2f861b.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/abs/2f861b.wgsl.expected.ir.dxc.hlsl
index 0ba40c6..9b8e3fb 100644
--- a/test/tint/builtins/gen/var/abs/2f861b.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/abs/2f861b.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,36 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+void abs_2f861b() {
+  float3 res = (1.0f).xxx;
+}
+
+void fragment_main() {
+  abs_2f861b();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  abs_2f861b();
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  abs_2f861b();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  vertex_main_outputs v_2 = {v_1.pos};
+  return v_2;
+}
+
diff --git a/test/tint/builtins/gen/var/abs/2f861b.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/abs/2f861b.wgsl.expected.ir.fxc.hlsl
index 0ba40c6..9b8e3fb 100644
--- a/test/tint/builtins/gen/var/abs/2f861b.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/abs/2f861b.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,36 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+void abs_2f861b() {
+  float3 res = (1.0f).xxx;
+}
+
+void fragment_main() {
+  abs_2f861b();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  abs_2f861b();
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  abs_2f861b();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  vertex_main_outputs v_2 = {v_1.pos};
+  return v_2;
+}
+
diff --git a/test/tint/builtins/gen/var/abs/421ca3.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/abs/421ca3.wgsl.expected.ir.dxc.hlsl
index 0ba40c6..4df06ef 100644
--- a/test/tint/builtins/gen/var/abs/421ca3.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/abs/421ca3.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,43 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  vector<float16_t, 3> prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation vector<float16_t, 3> VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+vector<float16_t, 3> abs_421ca3() {
+  vector<float16_t, 3> arg_0 = (float16_t(1.0h)).xxx;
+  vector<float16_t, 3> res = abs(arg_0);
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store<vector<float16_t, 3> >(0u, abs_421ca3());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store<vector<float16_t, 3> >(0u, abs_421ca3());
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = abs_421ca3();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
diff --git a/test/tint/builtins/gen/var/abs/421ca3.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/abs/421ca3.wgsl.expected.ir.fxc.hlsl
index 0ba40c6..5294a94 100644
--- a/test/tint/builtins/gen/var/abs/421ca3.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/abs/421ca3.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,48 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct VertexOutput {
+  float4 pos;
+  vector<float16_t, 3> prevent_dce;
+};
+
+struct vertex_main_outputs {
+  nointerpolation vector<float16_t, 3> VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+vector<float16_t, 3> abs_421ca3() {
+  vector<float16_t, 3> arg_0 = (float16_t(1.0h)).xxx;
+  vector<float16_t, 3> res = abs(arg_0);
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store<vector<float16_t, 3> >(0u, abs_421ca3());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store<vector<float16_t, 3> >(0u, abs_421ca3());
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = abs_421ca3();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
+FXC validation failure:
+c:\src\dawn\Shader@0x000002150E2E42D0(3,10-18): error X3000: syntax error: unexpected token 'float16_t'
+
diff --git a/test/tint/builtins/gen/var/abs/467cd1.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/abs/467cd1.wgsl.expected.ir.dxc.hlsl
index 0ba40c6..96f762b 100644
--- a/test/tint/builtins/gen/var/abs/467cd1.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/abs/467cd1.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,43 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  uint prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation uint VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+uint abs_467cd1() {
+  uint arg_0 = 1u;
+  uint res = abs(arg_0);
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store(0u, abs_467cd1());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store(0u, abs_467cd1());
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = abs_467cd1();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
diff --git a/test/tint/builtins/gen/var/abs/467cd1.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/abs/467cd1.wgsl.expected.ir.fxc.hlsl
index 0ba40c6..96f762b 100644
--- a/test/tint/builtins/gen/var/abs/467cd1.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/abs/467cd1.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,43 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  uint prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation uint VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+uint abs_467cd1() {
+  uint arg_0 = 1u;
+  uint res = abs(arg_0);
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store(0u, abs_467cd1());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store(0u, abs_467cd1());
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = abs_467cd1();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
diff --git a/test/tint/builtins/gen/var/abs/4ad288.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/abs/4ad288.wgsl.expected.ir.dxc.hlsl
index 0ba40c6..edb7a72 100644
--- a/test/tint/builtins/gen/var/abs/4ad288.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/abs/4ad288.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,43 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  int prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation int VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+int abs_4ad288() {
+  int arg_0 = 1;
+  int res = abs(arg_0);
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store(0u, asuint(abs_4ad288()));
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store(0u, asuint(abs_4ad288()));
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = abs_4ad288();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
diff --git a/test/tint/builtins/gen/var/abs/4ad288.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/abs/4ad288.wgsl.expected.ir.fxc.hlsl
index 0ba40c6..edb7a72 100644
--- a/test/tint/builtins/gen/var/abs/4ad288.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/abs/4ad288.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,43 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  int prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation int VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+int abs_4ad288() {
+  int arg_0 = 1;
+  int res = abs(arg_0);
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store(0u, asuint(abs_4ad288()));
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store(0u, asuint(abs_4ad288()));
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = abs_4ad288();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
diff --git a/test/tint/builtins/gen/var/abs/538d29.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/abs/538d29.wgsl.expected.ir.dxc.hlsl
index 0ba40c6..5c1b746 100644
--- a/test/tint/builtins/gen/var/abs/538d29.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/abs/538d29.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,43 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  vector<float16_t, 4> prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation vector<float16_t, 4> VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+vector<float16_t, 4> abs_538d29() {
+  vector<float16_t, 4> arg_0 = (float16_t(1.0h)).xxxx;
+  vector<float16_t, 4> res = abs(arg_0);
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store<vector<float16_t, 4> >(0u, abs_538d29());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store<vector<float16_t, 4> >(0u, abs_538d29());
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = abs_538d29();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
diff --git a/test/tint/builtins/gen/var/abs/538d29.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/abs/538d29.wgsl.expected.ir.fxc.hlsl
index 0ba40c6..83ab93f 100644
--- a/test/tint/builtins/gen/var/abs/538d29.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/abs/538d29.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,48 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct VertexOutput {
+  float4 pos;
+  vector<float16_t, 4> prevent_dce;
+};
+
+struct vertex_main_outputs {
+  nointerpolation vector<float16_t, 4> VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+vector<float16_t, 4> abs_538d29() {
+  vector<float16_t, 4> arg_0 = (float16_t(1.0h)).xxxx;
+  vector<float16_t, 4> res = abs(arg_0);
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store<vector<float16_t, 4> >(0u, abs_538d29());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store<vector<float16_t, 4> >(0u, abs_538d29());
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = abs_538d29();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
+FXC validation failure:
+c:\src\dawn\Shader@0x000001693C041050(3,10-18): error X3000: syntax error: unexpected token 'float16_t'
+
diff --git a/test/tint/builtins/gen/var/abs/577d6e.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/abs/577d6e.wgsl.expected.ir.dxc.hlsl
index 0ba40c6..4c2f55a 100644
--- a/test/tint/builtins/gen/var/abs/577d6e.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/abs/577d6e.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,36 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+void abs_577d6e() {
+  int2 res = (1).xx;
+}
+
+void fragment_main() {
+  abs_577d6e();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  abs_577d6e();
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  abs_577d6e();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  vertex_main_outputs v_2 = {v_1.pos};
+  return v_2;
+}
+
diff --git a/test/tint/builtins/gen/var/abs/577d6e.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/abs/577d6e.wgsl.expected.ir.fxc.hlsl
index 0ba40c6..4c2f55a 100644
--- a/test/tint/builtins/gen/var/abs/577d6e.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/abs/577d6e.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,36 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+void abs_577d6e() {
+  int2 res = (1).xx;
+}
+
+void fragment_main() {
+  abs_577d6e();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  abs_577d6e();
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  abs_577d6e();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  vertex_main_outputs v_2 = {v_1.pos};
+  return v_2;
+}
+
diff --git a/test/tint/builtins/gen/var/abs/5a8af1.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/abs/5a8af1.wgsl.expected.ir.dxc.hlsl
index 0ba40c6..f78047e 100644
--- a/test/tint/builtins/gen/var/abs/5a8af1.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/abs/5a8af1.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,36 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+void abs_5a8af1() {
+  int res = 1;
+}
+
+void fragment_main() {
+  abs_5a8af1();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  abs_5a8af1();
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  abs_5a8af1();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  vertex_main_outputs v_2 = {v_1.pos};
+  return v_2;
+}
+
diff --git a/test/tint/builtins/gen/var/abs/5a8af1.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/abs/5a8af1.wgsl.expected.ir.fxc.hlsl
index 0ba40c6..f78047e 100644
--- a/test/tint/builtins/gen/var/abs/5a8af1.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/abs/5a8af1.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,36 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+void abs_5a8af1() {
+  int res = 1;
+}
+
+void fragment_main() {
+  abs_5a8af1();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  abs_5a8af1();
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  abs_5a8af1();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  vertex_main_outputs v_2 = {v_1.pos};
+  return v_2;
+}
+
diff --git a/test/tint/builtins/gen/var/abs/5ad50a.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/abs/5ad50a.wgsl.expected.ir.dxc.hlsl
index 0ba40c6..bf8baf3 100644
--- a/test/tint/builtins/gen/var/abs/5ad50a.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/abs/5ad50a.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,43 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  int3 prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation int3 VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+int3 abs_5ad50a() {
+  int3 arg_0 = (1).xxx;
+  int3 res = abs(arg_0);
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store3(0u, asuint(abs_5ad50a()));
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store3(0u, asuint(abs_5ad50a()));
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = abs_5ad50a();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
diff --git a/test/tint/builtins/gen/var/abs/5ad50a.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/abs/5ad50a.wgsl.expected.ir.fxc.hlsl
index 0ba40c6..bf8baf3 100644
--- a/test/tint/builtins/gen/var/abs/5ad50a.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/abs/5ad50a.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,43 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  int3 prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation int3 VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+int3 abs_5ad50a() {
+  int3 arg_0 = (1).xxx;
+  int3 res = abs(arg_0);
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store3(0u, asuint(abs_5ad50a()));
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store3(0u, asuint(abs_5ad50a()));
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = abs_5ad50a();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
diff --git a/test/tint/builtins/gen/var/abs/5ae4fe.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/abs/5ae4fe.wgsl.expected.ir.dxc.hlsl
index 0ba40c6..2528b41 100644
--- a/test/tint/builtins/gen/var/abs/5ae4fe.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/abs/5ae4fe.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,43 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  vector<float16_t, 2> prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation vector<float16_t, 2> VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+vector<float16_t, 2> abs_5ae4fe() {
+  vector<float16_t, 2> arg_0 = (float16_t(1.0h)).xx;
+  vector<float16_t, 2> res = abs(arg_0);
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store<vector<float16_t, 2> >(0u, abs_5ae4fe());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store<vector<float16_t, 2> >(0u, abs_5ae4fe());
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = abs_5ae4fe();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
diff --git a/test/tint/builtins/gen/var/abs/5ae4fe.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/abs/5ae4fe.wgsl.expected.ir.fxc.hlsl
index 0ba40c6..8dd6da7 100644
--- a/test/tint/builtins/gen/var/abs/5ae4fe.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/abs/5ae4fe.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,48 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct VertexOutput {
+  float4 pos;
+  vector<float16_t, 2> prevent_dce;
+};
+
+struct vertex_main_outputs {
+  nointerpolation vector<float16_t, 2> VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+vector<float16_t, 2> abs_5ae4fe() {
+  vector<float16_t, 2> arg_0 = (float16_t(1.0h)).xx;
+  vector<float16_t, 2> res = abs(arg_0);
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store<vector<float16_t, 2> >(0u, abs_5ae4fe());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store<vector<float16_t, 2> >(0u, abs_5ae4fe());
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = abs_5ae4fe();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
+FXC validation failure:
+c:\src\dawn\Shader@0x000002BA9D5AF770(3,10-18): error X3000: syntax error: unexpected token 'float16_t'
+
diff --git a/test/tint/builtins/gen/var/abs/7326de.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/abs/7326de.wgsl.expected.ir.dxc.hlsl
index 0ba40c6..2688588 100644
--- a/test/tint/builtins/gen/var/abs/7326de.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/abs/7326de.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,43 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  uint3 prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation uint3 VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+uint3 abs_7326de() {
+  uint3 arg_0 = (1u).xxx;
+  uint3 res = abs(arg_0);
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store3(0u, abs_7326de());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store3(0u, abs_7326de());
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = abs_7326de();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
diff --git a/test/tint/builtins/gen/var/abs/7326de.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/abs/7326de.wgsl.expected.ir.fxc.hlsl
index 0ba40c6..2688588 100644
--- a/test/tint/builtins/gen/var/abs/7326de.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/abs/7326de.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,43 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  uint3 prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation uint3 VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+uint3 abs_7326de() {
+  uint3 arg_0 = (1u).xxx;
+  uint3 res = abs(arg_0);
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store3(0u, abs_7326de());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store3(0u, abs_7326de());
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = abs_7326de();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
diff --git a/test/tint/builtins/gen/var/abs/7f28e6.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/abs/7f28e6.wgsl.expected.ir.dxc.hlsl
index 0ba40c6..d7b4448 100644
--- a/test/tint/builtins/gen/var/abs/7f28e6.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/abs/7f28e6.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,43 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  uint2 prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation uint2 VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+uint2 abs_7f28e6() {
+  uint2 arg_0 = (1u).xx;
+  uint2 res = abs(arg_0);
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store2(0u, abs_7f28e6());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store2(0u, abs_7f28e6());
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = abs_7f28e6();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
diff --git a/test/tint/builtins/gen/var/abs/7f28e6.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/abs/7f28e6.wgsl.expected.ir.fxc.hlsl
index 0ba40c6..d7b4448 100644
--- a/test/tint/builtins/gen/var/abs/7f28e6.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/abs/7f28e6.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,43 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  uint2 prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation uint2 VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+uint2 abs_7f28e6() {
+  uint2 arg_0 = (1u).xx;
+  uint2 res = abs(arg_0);
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store2(0u, abs_7f28e6());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store2(0u, abs_7f28e6());
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = abs_7f28e6();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
diff --git a/test/tint/builtins/gen/var/abs/7faa9e.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/abs/7faa9e.wgsl.expected.ir.dxc.hlsl
index 0ba40c6..02b6dd3 100644
--- a/test/tint/builtins/gen/var/abs/7faa9e.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/abs/7faa9e.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,43 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  int2 prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation int2 VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+int2 abs_7faa9e() {
+  int2 arg_0 = (1).xx;
+  int2 res = abs(arg_0);
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store2(0u, asuint(abs_7faa9e()));
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store2(0u, asuint(abs_7faa9e()));
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = abs_7faa9e();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
diff --git a/test/tint/builtins/gen/var/abs/7faa9e.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/abs/7faa9e.wgsl.expected.ir.fxc.hlsl
index 0ba40c6..02b6dd3 100644
--- a/test/tint/builtins/gen/var/abs/7faa9e.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/abs/7faa9e.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,43 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  int2 prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation int2 VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+int2 abs_7faa9e() {
+  int2 arg_0 = (1).xx;
+  int2 res = abs(arg_0);
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store2(0u, asuint(abs_7faa9e()));
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store2(0u, asuint(abs_7faa9e()));
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = abs_7faa9e();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
diff --git a/test/tint/builtins/gen/var/abs/82ff9d.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/abs/82ff9d.wgsl.expected.ir.dxc.hlsl
index 0ba40c6..8db3621 100644
--- a/test/tint/builtins/gen/var/abs/82ff9d.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/abs/82ff9d.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,36 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+void abs_82ff9d() {
+  float2 res = (1.0f).xx;
+}
+
+void fragment_main() {
+  abs_82ff9d();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  abs_82ff9d();
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  abs_82ff9d();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  vertex_main_outputs v_2 = {v_1.pos};
+  return v_2;
+}
+
diff --git a/test/tint/builtins/gen/var/abs/82ff9d.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/abs/82ff9d.wgsl.expected.ir.fxc.hlsl
index 0ba40c6..8db3621 100644
--- a/test/tint/builtins/gen/var/abs/82ff9d.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/abs/82ff9d.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,36 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+void abs_82ff9d() {
+  float2 res = (1.0f).xx;
+}
+
+void fragment_main() {
+  abs_82ff9d();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  abs_82ff9d();
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  abs_82ff9d();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  vertex_main_outputs v_2 = {v_1.pos};
+  return v_2;
+}
+
diff --git a/test/tint/builtins/gen/var/abs/8ca9b1.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/abs/8ca9b1.wgsl.expected.ir.dxc.hlsl
index 0ba40c6..d97b1df 100644
--- a/test/tint/builtins/gen/var/abs/8ca9b1.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/abs/8ca9b1.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,36 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+void abs_8ca9b1() {
+  int4 res = (1).xxxx;
+}
+
+void fragment_main() {
+  abs_8ca9b1();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  abs_8ca9b1();
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  abs_8ca9b1();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  vertex_main_outputs v_2 = {v_1.pos};
+  return v_2;
+}
+
diff --git a/test/tint/builtins/gen/var/abs/8ca9b1.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/abs/8ca9b1.wgsl.expected.ir.fxc.hlsl
index 0ba40c6..d97b1df 100644
--- a/test/tint/builtins/gen/var/abs/8ca9b1.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/abs/8ca9b1.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,36 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+void abs_8ca9b1() {
+  int4 res = (1).xxxx;
+}
+
+void fragment_main() {
+  abs_8ca9b1();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  abs_8ca9b1();
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  abs_8ca9b1();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  vertex_main_outputs v_2 = {v_1.pos};
+  return v_2;
+}
+
diff --git a/test/tint/builtins/gen/var/abs/9c80a6.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/abs/9c80a6.wgsl.expected.ir.dxc.hlsl
index 0ba40c6..1d867f0 100644
--- a/test/tint/builtins/gen/var/abs/9c80a6.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/abs/9c80a6.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,43 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  int4 prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation int4 VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+int4 abs_9c80a6() {
+  int4 arg_0 = (1).xxxx;
+  int4 res = abs(arg_0);
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store4(0u, asuint(abs_9c80a6()));
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store4(0u, asuint(abs_9c80a6()));
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = abs_9c80a6();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
diff --git a/test/tint/builtins/gen/var/abs/9c80a6.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/abs/9c80a6.wgsl.expected.ir.fxc.hlsl
index 0ba40c6..1d867f0 100644
--- a/test/tint/builtins/gen/var/abs/9c80a6.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/abs/9c80a6.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,43 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  int4 prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation int4 VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+int4 abs_9c80a6() {
+  int4 arg_0 = (1).xxxx;
+  int4 res = abs(arg_0);
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store4(0u, asuint(abs_9c80a6()));
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store4(0u, asuint(abs_9c80a6()));
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = abs_9c80a6();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
diff --git a/test/tint/builtins/gen/var/abs/aedb6d.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/abs/aedb6d.wgsl.expected.ir.dxc.hlsl
index 0ba40c6..0cfd8e2 100644
--- a/test/tint/builtins/gen/var/abs/aedb6d.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/abs/aedb6d.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,36 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+void abs_aedb6d() {
+  float res = 1.0f;
+}
+
+void fragment_main() {
+  abs_aedb6d();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  abs_aedb6d();
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  abs_aedb6d();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  vertex_main_outputs v_2 = {v_1.pos};
+  return v_2;
+}
+
diff --git a/test/tint/builtins/gen/var/abs/aedb6d.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/abs/aedb6d.wgsl.expected.ir.fxc.hlsl
index 0ba40c6..0cfd8e2 100644
--- a/test/tint/builtins/gen/var/abs/aedb6d.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/abs/aedb6d.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,36 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+void abs_aedb6d() {
+  float res = 1.0f;
+}
+
+void fragment_main() {
+  abs_aedb6d();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  abs_aedb6d();
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  abs_aedb6d();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  vertex_main_outputs v_2 = {v_1.pos};
+  return v_2;
+}
+
diff --git a/test/tint/builtins/gen/var/abs/b96037.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/abs/b96037.wgsl.expected.ir.dxc.hlsl
index 0ba40c6..17049a8 100644
--- a/test/tint/builtins/gen/var/abs/b96037.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/abs/b96037.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,43 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  float prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation float VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+float abs_b96037() {
+  float arg_0 = 1.0f;
+  float res = abs(arg_0);
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store(0u, asuint(abs_b96037()));
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store(0u, asuint(abs_b96037()));
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = abs_b96037();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
diff --git a/test/tint/builtins/gen/var/abs/b96037.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/abs/b96037.wgsl.expected.ir.fxc.hlsl
index 0ba40c6..17049a8 100644
--- a/test/tint/builtins/gen/var/abs/b96037.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/abs/b96037.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,43 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  float prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation float VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+float abs_b96037() {
+  float arg_0 = 1.0f;
+  float res = abs(arg_0);
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store(0u, asuint(abs_b96037()));
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store(0u, asuint(abs_b96037()));
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = abs_b96037();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
diff --git a/test/tint/builtins/gen/var/abs/c3321c.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/abs/c3321c.wgsl.expected.ir.dxc.hlsl
index 0ba40c6..3b3b07b 100644
--- a/test/tint/builtins/gen/var/abs/c3321c.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/abs/c3321c.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,36 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+void abs_c3321c() {
+  int3 res = (1).xxx;
+}
+
+void fragment_main() {
+  abs_c3321c();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  abs_c3321c();
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  abs_c3321c();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  vertex_main_outputs v_2 = {v_1.pos};
+  return v_2;
+}
+
diff --git a/test/tint/builtins/gen/var/abs/c3321c.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/abs/c3321c.wgsl.expected.ir.fxc.hlsl
index 0ba40c6..3b3b07b 100644
--- a/test/tint/builtins/gen/var/abs/c3321c.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/abs/c3321c.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,36 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+void abs_c3321c() {
+  int3 res = (1).xxx;
+}
+
+void fragment_main() {
+  abs_c3321c();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  abs_c3321c();
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  abs_c3321c();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  vertex_main_outputs v_2 = {v_1.pos};
+  return v_2;
+}
+
diff --git a/test/tint/builtins/gen/var/abs/e28785.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/abs/e28785.wgsl.expected.ir.dxc.hlsl
index 0ba40c6..a834ff1 100644
--- a/test/tint/builtins/gen/var/abs/e28785.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/abs/e28785.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,36 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+void abs_e28785() {
+  float4 res = (1.0f).xxxx;
+}
+
+void fragment_main() {
+  abs_e28785();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  abs_e28785();
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  abs_e28785();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  vertex_main_outputs v_2 = {v_1.pos};
+  return v_2;
+}
+
diff --git a/test/tint/builtins/gen/var/abs/e28785.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/abs/e28785.wgsl.expected.ir.fxc.hlsl
index 0ba40c6..a834ff1 100644
--- a/test/tint/builtins/gen/var/abs/e28785.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/abs/e28785.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,36 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+void abs_e28785() {
+  float4 res = (1.0f).xxxx;
+}
+
+void fragment_main() {
+  abs_e28785();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  abs_e28785();
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  abs_e28785();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  vertex_main_outputs v_2 = {v_1.pos};
+  return v_2;
+}
+
diff --git a/test/tint/builtins/gen/var/abs/fd247f.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/abs/fd247f.wgsl.expected.ir.dxc.hlsl
index 0ba40c6..f60e820 100644
--- a/test/tint/builtins/gen/var/abs/fd247f.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/abs/fd247f.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,43 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  float16_t prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation float16_t VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+float16_t abs_fd247f() {
+  float16_t arg_0 = float16_t(1.0h);
+  float16_t res = abs(arg_0);
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store<float16_t>(0u, abs_fd247f());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store<float16_t>(0u, abs_fd247f());
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = abs_fd247f();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
diff --git a/test/tint/builtins/gen/var/abs/fd247f.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/abs/fd247f.wgsl.expected.ir.fxc.hlsl
index 0ba40c6..fa4011e 100644
--- a/test/tint/builtins/gen/var/abs/fd247f.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/abs/fd247f.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,48 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct VertexOutput {
+  float4 pos;
+  float16_t prevent_dce;
+};
+
+struct vertex_main_outputs {
+  nointerpolation float16_t VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+float16_t abs_fd247f() {
+  float16_t arg_0 = float16_t(1.0h);
+  float16_t res = abs(arg_0);
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store<float16_t>(0u, abs_fd247f());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store<float16_t>(0u, abs_fd247f());
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = abs_fd247f();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
+FXC validation failure:
+c:\src\dawn\Shader@0x0000014E75614AF0(3,3-11): error X3000: unrecognized identifier 'float16_t'
+
diff --git a/test/tint/builtins/gen/var/acos/004aff.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/acos/004aff.wgsl.expected.ir.dxc.hlsl
index 0ba40c6..c69aeae 100644
--- a/test/tint/builtins/gen/var/acos/004aff.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/acos/004aff.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,43 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  vector<float16_t, 2> prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation vector<float16_t, 2> VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+vector<float16_t, 2> acos_004aff() {
+  vector<float16_t, 2> arg_0 = (float16_t(0.96875h)).xx;
+  vector<float16_t, 2> res = acos(arg_0);
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store<vector<float16_t, 2> >(0u, acos_004aff());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store<vector<float16_t, 2> >(0u, acos_004aff());
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = acos_004aff();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
diff --git a/test/tint/builtins/gen/var/acos/004aff.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/acos/004aff.wgsl.expected.ir.fxc.hlsl
index 0ba40c6..2e3cb76 100644
--- a/test/tint/builtins/gen/var/acos/004aff.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/acos/004aff.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,48 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct VertexOutput {
+  float4 pos;
+  vector<float16_t, 2> prevent_dce;
+};
+
+struct vertex_main_outputs {
+  nointerpolation vector<float16_t, 2> VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+vector<float16_t, 2> acos_004aff() {
+  vector<float16_t, 2> arg_0 = (float16_t(0.96875h)).xx;
+  vector<float16_t, 2> res = acos(arg_0);
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store<vector<float16_t, 2> >(0u, acos_004aff());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store<vector<float16_t, 2> >(0u, acos_004aff());
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = acos_004aff();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
+FXC validation failure:
+c:\src\dawn\Shader@0x000001B88CED3CD0(3,10-18): error X3000: syntax error: unexpected token 'float16_t'
+
diff --git a/test/tint/builtins/gen/var/acos/069188.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/acos/069188.wgsl.expected.ir.dxc.hlsl
index 0ba40c6..7eaceee 100644
--- a/test/tint/builtins/gen/var/acos/069188.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/acos/069188.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,36 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+void acos_069188() {
+  float3 res = (0.25f).xxx;
+}
+
+void fragment_main() {
+  acos_069188();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  acos_069188();
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  acos_069188();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  vertex_main_outputs v_2 = {v_1.pos};
+  return v_2;
+}
+
diff --git a/test/tint/builtins/gen/var/acos/069188.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/acos/069188.wgsl.expected.ir.fxc.hlsl
index 0ba40c6..7eaceee 100644
--- a/test/tint/builtins/gen/var/acos/069188.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/acos/069188.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,36 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+void acos_069188() {
+  float3 res = (0.25f).xxx;
+}
+
+void fragment_main() {
+  acos_069188();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  acos_069188();
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  acos_069188();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  vertex_main_outputs v_2 = {v_1.pos};
+  return v_2;
+}
+
diff --git a/test/tint/builtins/gen/var/acos/15d35b.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/acos/15d35b.wgsl.expected.ir.dxc.hlsl
index 0ba40c6..c30c4aa 100644
--- a/test/tint/builtins/gen/var/acos/15d35b.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/acos/15d35b.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,36 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+void acos_15d35b() {
+  float2 res = (0.25f).xx;
+}
+
+void fragment_main() {
+  acos_15d35b();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  acos_15d35b();
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  acos_15d35b();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  vertex_main_outputs v_2 = {v_1.pos};
+  return v_2;
+}
+
diff --git a/test/tint/builtins/gen/var/acos/15d35b.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/acos/15d35b.wgsl.expected.ir.fxc.hlsl
index 0ba40c6..c30c4aa 100644
--- a/test/tint/builtins/gen/var/acos/15d35b.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/acos/15d35b.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,36 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+void acos_15d35b() {
+  float2 res = (0.25f).xx;
+}
+
+void fragment_main() {
+  acos_15d35b();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  acos_15d35b();
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  acos_15d35b();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  vertex_main_outputs v_2 = {v_1.pos};
+  return v_2;
+}
+
diff --git a/test/tint/builtins/gen/var/acos/203628.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/acos/203628.wgsl.expected.ir.dxc.hlsl
index 0ba40c6..6c047d9 100644
--- a/test/tint/builtins/gen/var/acos/203628.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/acos/203628.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,43 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  vector<float16_t, 4> prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation vector<float16_t, 4> VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+vector<float16_t, 4> acos_203628() {
+  vector<float16_t, 4> arg_0 = (float16_t(0.96875h)).xxxx;
+  vector<float16_t, 4> res = acos(arg_0);
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store<vector<float16_t, 4> >(0u, acos_203628());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store<vector<float16_t, 4> >(0u, acos_203628());
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = acos_203628();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
diff --git a/test/tint/builtins/gen/var/acos/203628.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/acos/203628.wgsl.expected.ir.fxc.hlsl
index 0ba40c6..cf0cd85 100644
--- a/test/tint/builtins/gen/var/acos/203628.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/acos/203628.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,48 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct VertexOutput {
+  float4 pos;
+  vector<float16_t, 4> prevent_dce;
+};
+
+struct vertex_main_outputs {
+  nointerpolation vector<float16_t, 4> VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+vector<float16_t, 4> acos_203628() {
+  vector<float16_t, 4> arg_0 = (float16_t(0.96875h)).xxxx;
+  vector<float16_t, 4> res = acos(arg_0);
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store<vector<float16_t, 4> >(0u, acos_203628());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store<vector<float16_t, 4> >(0u, acos_203628());
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = acos_203628();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
+FXC validation failure:
+c:\src\dawn\Shader@0x000001B703E80250(3,10-18): error X3000: syntax error: unexpected token 'float16_t'
+
diff --git a/test/tint/builtins/gen/var/acos/303e3d.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/acos/303e3d.wgsl.expected.ir.dxc.hlsl
index 0ba40c6..25128f5 100644
--- a/test/tint/builtins/gen/var/acos/303e3d.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/acos/303e3d.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,43 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  float16_t prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation float16_t VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+float16_t acos_303e3d() {
+  float16_t arg_0 = float16_t(0.96875h);
+  float16_t res = acos(arg_0);
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store<float16_t>(0u, acos_303e3d());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store<float16_t>(0u, acos_303e3d());
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = acos_303e3d();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
diff --git a/test/tint/builtins/gen/var/acos/303e3d.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/acos/303e3d.wgsl.expected.ir.fxc.hlsl
index 0ba40c6..3cfd204 100644
--- a/test/tint/builtins/gen/var/acos/303e3d.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/acos/303e3d.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,48 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct VertexOutput {
+  float4 pos;
+  float16_t prevent_dce;
+};
+
+struct vertex_main_outputs {
+  nointerpolation float16_t VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+float16_t acos_303e3d() {
+  float16_t arg_0 = float16_t(0.96875h);
+  float16_t res = acos(arg_0);
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store<float16_t>(0u, acos_303e3d());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store<float16_t>(0u, acos_303e3d());
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = acos_303e3d();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
+FXC validation failure:
+c:\src\dawn\Shader@0x000001CD0DFA0FA0(3,3-11): error X3000: unrecognized identifier 'float16_t'
+
diff --git a/test/tint/builtins/gen/var/acos/489247.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/acos/489247.wgsl.expected.ir.dxc.hlsl
index 0ba40c6..21f56b0 100644
--- a/test/tint/builtins/gen/var/acos/489247.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/acos/489247.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,43 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  float prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation float VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+float acos_489247() {
+  float arg_0 = 0.96891242265701293945f;
+  float res = acos(arg_0);
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store(0u, asuint(acos_489247()));
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store(0u, asuint(acos_489247()));
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = acos_489247();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
diff --git a/test/tint/builtins/gen/var/acos/489247.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/acos/489247.wgsl.expected.ir.fxc.hlsl
index 0ba40c6..21f56b0 100644
--- a/test/tint/builtins/gen/var/acos/489247.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/acos/489247.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,43 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  float prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation float VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+float acos_489247() {
+  float arg_0 = 0.96891242265701293945f;
+  float res = acos(arg_0);
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store(0u, asuint(acos_489247()));
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store(0u, asuint(acos_489247()));
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = acos_489247();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
diff --git a/test/tint/builtins/gen/var/acos/4dac75.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/acos/4dac75.wgsl.expected.ir.dxc.hlsl
index 0ba40c6..068eb0d 100644
--- a/test/tint/builtins/gen/var/acos/4dac75.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/acos/4dac75.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,36 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+void acos_4dac75() {
+  float4 res = (0.25f).xxxx;
+}
+
+void fragment_main() {
+  acos_4dac75();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  acos_4dac75();
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  acos_4dac75();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  vertex_main_outputs v_2 = {v_1.pos};
+  return v_2;
+}
+
diff --git a/test/tint/builtins/gen/var/acos/4dac75.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/acos/4dac75.wgsl.expected.ir.fxc.hlsl
index 0ba40c6..068eb0d 100644
--- a/test/tint/builtins/gen/var/acos/4dac75.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/acos/4dac75.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,36 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+void acos_4dac75() {
+  float4 res = (0.25f).xxxx;
+}
+
+void fragment_main() {
+  acos_4dac75();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  acos_4dac75();
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  acos_4dac75();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  vertex_main_outputs v_2 = {v_1.pos};
+  return v_2;
+}
+
diff --git a/test/tint/builtins/gen/var/acos/5e9ad2.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/acos/5e9ad2.wgsl.expected.ir.dxc.hlsl
index 0ba40c6..83d20e7 100644
--- a/test/tint/builtins/gen/var/acos/5e9ad2.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/acos/5e9ad2.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,36 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+void acos_5e9ad2() {
+  float res = 0.25f;
+}
+
+void fragment_main() {
+  acos_5e9ad2();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  acos_5e9ad2();
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  acos_5e9ad2();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  vertex_main_outputs v_2 = {v_1.pos};
+  return v_2;
+}
+
diff --git a/test/tint/builtins/gen/var/acos/5e9ad2.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/acos/5e9ad2.wgsl.expected.ir.fxc.hlsl
index 0ba40c6..83d20e7 100644
--- a/test/tint/builtins/gen/var/acos/5e9ad2.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/acos/5e9ad2.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,36 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+void acos_5e9ad2() {
+  float res = 0.25f;
+}
+
+void fragment_main() {
+  acos_5e9ad2();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  acos_5e9ad2();
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  acos_5e9ad2();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  vertex_main_outputs v_2 = {v_1.pos};
+  return v_2;
+}
+
diff --git a/test/tint/builtins/gen/var/acos/8e2acf.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/acos/8e2acf.wgsl.expected.ir.dxc.hlsl
index 0ba40c6..e79ab35 100644
--- a/test/tint/builtins/gen/var/acos/8e2acf.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/acos/8e2acf.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,43 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  float4 prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation float4 VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+float4 acos_8e2acf() {
+  float4 arg_0 = (0.96891242265701293945f).xxxx;
+  float4 res = acos(arg_0);
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store4(0u, asuint(acos_8e2acf()));
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store4(0u, asuint(acos_8e2acf()));
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = acos_8e2acf();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
diff --git a/test/tint/builtins/gen/var/acos/8e2acf.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/acos/8e2acf.wgsl.expected.ir.fxc.hlsl
index 0ba40c6..e79ab35 100644
--- a/test/tint/builtins/gen/var/acos/8e2acf.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/acos/8e2acf.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,43 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  float4 prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation float4 VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+float4 acos_8e2acf() {
+  float4 arg_0 = (0.96891242265701293945f).xxxx;
+  float4 res = acos(arg_0);
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store4(0u, asuint(acos_8e2acf()));
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store4(0u, asuint(acos_8e2acf()));
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = acos_8e2acf();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
diff --git a/test/tint/builtins/gen/var/acos/a610c4.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/acos/a610c4.wgsl.expected.ir.dxc.hlsl
index 0ba40c6..40657b4 100644
--- a/test/tint/builtins/gen/var/acos/a610c4.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/acos/a610c4.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,43 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  float3 prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation float3 VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+float3 acos_a610c4() {
+  float3 arg_0 = (0.96891242265701293945f).xxx;
+  float3 res = acos(arg_0);
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store3(0u, asuint(acos_a610c4()));
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store3(0u, asuint(acos_a610c4()));
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = acos_a610c4();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
diff --git a/test/tint/builtins/gen/var/acos/a610c4.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/acos/a610c4.wgsl.expected.ir.fxc.hlsl
index 0ba40c6..40657b4 100644
--- a/test/tint/builtins/gen/var/acos/a610c4.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/acos/a610c4.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,43 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  float3 prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation float3 VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+float3 acos_a610c4() {
+  float3 arg_0 = (0.96891242265701293945f).xxx;
+  float3 res = acos(arg_0);
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store3(0u, asuint(acos_a610c4()));
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store3(0u, asuint(acos_a610c4()));
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = acos_a610c4();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
diff --git a/test/tint/builtins/gen/var/acos/dfc915.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/acos/dfc915.wgsl.expected.ir.dxc.hlsl
index 0ba40c6..10de86c 100644
--- a/test/tint/builtins/gen/var/acos/dfc915.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/acos/dfc915.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,43 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  float2 prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation float2 VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+float2 acos_dfc915() {
+  float2 arg_0 = (0.96891242265701293945f).xx;
+  float2 res = acos(arg_0);
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store2(0u, asuint(acos_dfc915()));
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store2(0u, asuint(acos_dfc915()));
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = acos_dfc915();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
diff --git a/test/tint/builtins/gen/var/acos/dfc915.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/acos/dfc915.wgsl.expected.ir.fxc.hlsl
index 0ba40c6..10de86c 100644
--- a/test/tint/builtins/gen/var/acos/dfc915.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/acos/dfc915.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,43 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  float2 prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation float2 VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+float2 acos_dfc915() {
+  float2 arg_0 = (0.96891242265701293945f).xx;
+  float2 res = acos(arg_0);
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store2(0u, asuint(acos_dfc915()));
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store2(0u, asuint(acos_dfc915()));
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = acos_dfc915();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
diff --git a/test/tint/builtins/gen/var/acos/f47057.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/acos/f47057.wgsl.expected.ir.dxc.hlsl
index 0ba40c6..6cf027a 100644
--- a/test/tint/builtins/gen/var/acos/f47057.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/acos/f47057.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,43 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  vector<float16_t, 3> prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation vector<float16_t, 3> VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+vector<float16_t, 3> acos_f47057() {
+  vector<float16_t, 3> arg_0 = (float16_t(0.96875h)).xxx;
+  vector<float16_t, 3> res = acos(arg_0);
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store<vector<float16_t, 3> >(0u, acos_f47057());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store<vector<float16_t, 3> >(0u, acos_f47057());
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = acos_f47057();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
diff --git a/test/tint/builtins/gen/var/acos/f47057.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/acos/f47057.wgsl.expected.ir.fxc.hlsl
index 0ba40c6..6af8fae 100644
--- a/test/tint/builtins/gen/var/acos/f47057.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/acos/f47057.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,48 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct VertexOutput {
+  float4 pos;
+  vector<float16_t, 3> prevent_dce;
+};
+
+struct vertex_main_outputs {
+  nointerpolation vector<float16_t, 3> VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+vector<float16_t, 3> acos_f47057() {
+  vector<float16_t, 3> arg_0 = (float16_t(0.96875h)).xxx;
+  vector<float16_t, 3> res = acos(arg_0);
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store<vector<float16_t, 3> >(0u, acos_f47057());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store<vector<float16_t, 3> >(0u, acos_f47057());
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = acos_f47057();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
+FXC validation failure:
+c:\src\dawn\Shader@0x000001808DF1A1F0(3,10-18): error X3000: syntax error: unexpected token 'float16_t'
+
diff --git a/test/tint/builtins/gen/var/acosh/17260e.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/acosh/17260e.wgsl.expected.ir.dxc.hlsl
index 0ba40c6..2bc851d 100644
--- a/test/tint/builtins/gen/var/acosh/17260e.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/acosh/17260e.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,36 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+void acosh_17260e() {
+  float2 res = (1.0f).xx;
+}
+
+void fragment_main() {
+  acosh_17260e();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  acosh_17260e();
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  acosh_17260e();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  vertex_main_outputs v_2 = {v_1.pos};
+  return v_2;
+}
+
diff --git a/test/tint/builtins/gen/var/acosh/17260e.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/acosh/17260e.wgsl.expected.ir.fxc.hlsl
index 0ba40c6..2bc851d 100644
--- a/test/tint/builtins/gen/var/acosh/17260e.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/acosh/17260e.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,36 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+void acosh_17260e() {
+  float2 res = (1.0f).xx;
+}
+
+void fragment_main() {
+  acosh_17260e();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  acosh_17260e();
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  acosh_17260e();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  vertex_main_outputs v_2 = {v_1.pos};
+  return v_2;
+}
+
diff --git a/test/tint/builtins/gen/var/acosh/3433e8.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/acosh/3433e8.wgsl.expected.ir.dxc.hlsl
index 0ba40c6..769245d 100644
--- a/test/tint/builtins/gen/var/acosh/3433e8.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/acosh/3433e8.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,36 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+void acosh_3433e8() {
+  float res = 1.0f;
+}
+
+void fragment_main() {
+  acosh_3433e8();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  acosh_3433e8();
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  acosh_3433e8();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  vertex_main_outputs v_2 = {v_1.pos};
+  return v_2;
+}
+
diff --git a/test/tint/builtins/gen/var/acosh/3433e8.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/acosh/3433e8.wgsl.expected.ir.fxc.hlsl
index 0ba40c6..769245d 100644
--- a/test/tint/builtins/gen/var/acosh/3433e8.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/acosh/3433e8.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,36 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+void acosh_3433e8() {
+  float res = 1.0f;
+}
+
+void fragment_main() {
+  acosh_3433e8();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  acosh_3433e8();
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  acosh_3433e8();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  vertex_main_outputs v_2 = {v_1.pos};
+  return v_2;
+}
+
diff --git a/test/tint/builtins/gen/var/acosh/490aae.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/acosh/490aae.wgsl.expected.ir.dxc.hlsl
index 0ba40c6..fb0adf2 100644
--- a/test/tint/builtins/gen/var/acosh/490aae.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/acosh/490aae.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,36 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+void acosh_490aae() {
+  float4 res = (1.0f).xxxx;
+}
+
+void fragment_main() {
+  acosh_490aae();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  acosh_490aae();
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  acosh_490aae();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  vertex_main_outputs v_2 = {v_1.pos};
+  return v_2;
+}
+
diff --git a/test/tint/builtins/gen/var/acosh/490aae.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/acosh/490aae.wgsl.expected.ir.fxc.hlsl
index 0ba40c6..fb0adf2 100644
--- a/test/tint/builtins/gen/var/acosh/490aae.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/acosh/490aae.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,36 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+void acosh_490aae() {
+  float4 res = (1.0f).xxxx;
+}
+
+void fragment_main() {
+  acosh_490aae();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  acosh_490aae();
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  acosh_490aae();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  vertex_main_outputs v_2 = {v_1.pos};
+  return v_2;
+}
+
diff --git a/test/tint/builtins/gen/var/acosh/5f49d8.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/acosh/5f49d8.wgsl.expected.ir.dxc.hlsl
index 7f21496..7308e03 100644
--- a/test/tint/builtins/gen/var/acosh/5f49d8.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/acosh/5f49d8.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,44 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  vector<float16_t, 2> prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: acosh
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation vector<float16_t, 2> VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+vector<float16_t, 2> acosh_5f49d8() {
+  vector<float16_t, 2> arg_0 = (float16_t(1.54296875h)).xx;
+  vector<float16_t, 2> v = arg_0;
+  vector<float16_t, 2> res = log((v + sqrt(((v * v) - (float16_t(1.0h)).xx))));
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store<vector<float16_t, 2> >(0u, acosh_5f49d8());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store<vector<float16_t, 2> >(0u, acosh_5f49d8());
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = acosh_5f49d8();
+  VertexOutput v_1 = tint_symbol;
+  return v_1;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_2 = vertex_main_inner();
+  VertexOutput v_3 = v_2;
+  VertexOutput v_4 = v_2;
+  vertex_main_outputs v_5 = {v_4.prevent_dce, v_3.pos};
+  return v_5;
+}
+
diff --git a/test/tint/builtins/gen/var/acosh/5f49d8.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/acosh/5f49d8.wgsl.expected.ir.fxc.hlsl
index 7f21496..31a1a79 100644
--- a/test/tint/builtins/gen/var/acosh/5f49d8.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/acosh/5f49d8.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,49 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: acosh
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct VertexOutput {
+  float4 pos;
+  vector<float16_t, 2> prevent_dce;
+};
+
+struct vertex_main_outputs {
+  nointerpolation vector<float16_t, 2> VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+vector<float16_t, 2> acosh_5f49d8() {
+  vector<float16_t, 2> arg_0 = (float16_t(1.54296875h)).xx;
+  vector<float16_t, 2> v = arg_0;
+  vector<float16_t, 2> res = log((v + sqrt(((v * v) - (float16_t(1.0h)).xx))));
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store<vector<float16_t, 2> >(0u, acosh_5f49d8());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store<vector<float16_t, 2> >(0u, acosh_5f49d8());
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = acosh_5f49d8();
+  VertexOutput v_1 = tint_symbol;
+  return v_1;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_2 = vertex_main_inner();
+  VertexOutput v_3 = v_2;
+  VertexOutput v_4 = v_2;
+  vertex_main_outputs v_5 = {v_4.prevent_dce, v_3.pos};
+  return v_5;
+}
+
+FXC validation failure:
+c:\src\dawn\Shader@0x000002056C16F5E0(3,10-18): error X3000: syntax error: unexpected token 'float16_t'
+
diff --git a/test/tint/builtins/gen/var/acosh/640883.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/acosh/640883.wgsl.expected.ir.dxc.hlsl
index 7f21496..4a41a05 100644
--- a/test/tint/builtins/gen/var/acosh/640883.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/acosh/640883.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,44 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  float2 prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: acosh
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation float2 VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+float2 acosh_640883() {
+  float2 arg_0 = (1.54308068752288818359f).xx;
+  float2 v = arg_0;
+  float2 res = log((v + sqrt(((v * v) - (1.0f).xx))));
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store2(0u, asuint(acosh_640883()));
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store2(0u, asuint(acosh_640883()));
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = acosh_640883();
+  VertexOutput v_1 = tint_symbol;
+  return v_1;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_2 = vertex_main_inner();
+  VertexOutput v_3 = v_2;
+  VertexOutput v_4 = v_2;
+  vertex_main_outputs v_5 = {v_4.prevent_dce, v_3.pos};
+  return v_5;
+}
+
diff --git a/test/tint/builtins/gen/var/acosh/640883.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/acosh/640883.wgsl.expected.ir.fxc.hlsl
index 7f21496..4a41a05 100644
--- a/test/tint/builtins/gen/var/acosh/640883.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/acosh/640883.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,44 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  float2 prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: acosh
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation float2 VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+float2 acosh_640883() {
+  float2 arg_0 = (1.54308068752288818359f).xx;
+  float2 v = arg_0;
+  float2 res = log((v + sqrt(((v * v) - (1.0f).xx))));
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store2(0u, asuint(acosh_640883()));
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store2(0u, asuint(acosh_640883()));
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = acosh_640883();
+  VertexOutput v_1 = tint_symbol;
+  return v_1;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_2 = vertex_main_inner();
+  VertexOutput v_3 = v_2;
+  VertexOutput v_4 = v_2;
+  vertex_main_outputs v_5 = {v_4.prevent_dce, v_3.pos};
+  return v_5;
+}
+
diff --git a/test/tint/builtins/gen/var/acosh/9f213e.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/acosh/9f213e.wgsl.expected.ir.dxc.hlsl
index 0ba40c6..53923a1 100644
--- a/test/tint/builtins/gen/var/acosh/9f213e.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/acosh/9f213e.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,36 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+void acosh_9f213e() {
+  float3 res = (1.0f).xxx;
+}
+
+void fragment_main() {
+  acosh_9f213e();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  acosh_9f213e();
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  acosh_9f213e();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  vertex_main_outputs v_2 = {v_1.pos};
+  return v_2;
+}
+
diff --git a/test/tint/builtins/gen/var/acosh/9f213e.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/acosh/9f213e.wgsl.expected.ir.fxc.hlsl
index 0ba40c6..53923a1 100644
--- a/test/tint/builtins/gen/var/acosh/9f213e.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/acosh/9f213e.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,36 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+void acosh_9f213e() {
+  float3 res = (1.0f).xxx;
+}
+
+void fragment_main() {
+  acosh_9f213e();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  acosh_9f213e();
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  acosh_9f213e();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  vertex_main_outputs v_2 = {v_1.pos};
+  return v_2;
+}
+
diff --git a/test/tint/builtins/gen/var/acosh/a37dfe.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/acosh/a37dfe.wgsl.expected.ir.dxc.hlsl
index 7f21496..d3628c0 100644
--- a/test/tint/builtins/gen/var/acosh/a37dfe.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/acosh/a37dfe.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,44 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  float16_t prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: acosh
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation float16_t VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+float16_t acosh_a37dfe() {
+  float16_t arg_0 = float16_t(1.54296875h);
+  float16_t v = arg_0;
+  float16_t res = log((v + sqrt(((v * v) - float16_t(1.0h)))));
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store<float16_t>(0u, acosh_a37dfe());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store<float16_t>(0u, acosh_a37dfe());
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = acosh_a37dfe();
+  VertexOutput v_1 = tint_symbol;
+  return v_1;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_2 = vertex_main_inner();
+  VertexOutput v_3 = v_2;
+  VertexOutput v_4 = v_2;
+  vertex_main_outputs v_5 = {v_4.prevent_dce, v_3.pos};
+  return v_5;
+}
+
diff --git a/test/tint/builtins/gen/var/acosh/a37dfe.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/acosh/a37dfe.wgsl.expected.ir.fxc.hlsl
index 7f21496..7911dc7 100644
--- a/test/tint/builtins/gen/var/acosh/a37dfe.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/acosh/a37dfe.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,49 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: acosh
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct VertexOutput {
+  float4 pos;
+  float16_t prevent_dce;
+};
+
+struct vertex_main_outputs {
+  nointerpolation float16_t VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+float16_t acosh_a37dfe() {
+  float16_t arg_0 = float16_t(1.54296875h);
+  float16_t v = arg_0;
+  float16_t res = log((v + sqrt(((v * v) - float16_t(1.0h)))));
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store<float16_t>(0u, acosh_a37dfe());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store<float16_t>(0u, acosh_a37dfe());
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = acosh_a37dfe();
+  VertexOutput v_1 = tint_symbol;
+  return v_1;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_2 = vertex_main_inner();
+  VertexOutput v_3 = v_2;
+  VertexOutput v_4 = v_2;
+  vertex_main_outputs v_5 = {v_4.prevent_dce, v_3.pos};
+  return v_5;
+}
+
+FXC validation failure:
+c:\src\dawn\Shader@0x00000250CFA6CE80(3,3-11): error X3000: unrecognized identifier 'float16_t'
+
diff --git a/test/tint/builtins/gen/var/acosh/d51ccb.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/acosh/d51ccb.wgsl.expected.ir.dxc.hlsl
index 7f21496..8aa5518 100644
--- a/test/tint/builtins/gen/var/acosh/d51ccb.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/acosh/d51ccb.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,44 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  float4 prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: acosh
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation float4 VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+float4 acosh_d51ccb() {
+  float4 arg_0 = (1.54308068752288818359f).xxxx;
+  float4 v = arg_0;
+  float4 res = log((v + sqrt(((v * v) - (1.0f).xxxx))));
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store4(0u, asuint(acosh_d51ccb()));
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store4(0u, asuint(acosh_d51ccb()));
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = acosh_d51ccb();
+  VertexOutput v_1 = tint_symbol;
+  return v_1;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_2 = vertex_main_inner();
+  VertexOutput v_3 = v_2;
+  VertexOutput v_4 = v_2;
+  vertex_main_outputs v_5 = {v_4.prevent_dce, v_3.pos};
+  return v_5;
+}
+
diff --git a/test/tint/builtins/gen/var/acosh/d51ccb.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/acosh/d51ccb.wgsl.expected.ir.fxc.hlsl
index 7f21496..8aa5518 100644
--- a/test/tint/builtins/gen/var/acosh/d51ccb.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/acosh/d51ccb.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,44 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  float4 prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: acosh
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation float4 VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+float4 acosh_d51ccb() {
+  float4 arg_0 = (1.54308068752288818359f).xxxx;
+  float4 v = arg_0;
+  float4 res = log((v + sqrt(((v * v) - (1.0f).xxxx))));
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store4(0u, asuint(acosh_d51ccb()));
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store4(0u, asuint(acosh_d51ccb()));
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = acosh_d51ccb();
+  VertexOutput v_1 = tint_symbol;
+  return v_1;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_2 = vertex_main_inner();
+  VertexOutput v_3 = v_2;
+  VertexOutput v_4 = v_2;
+  vertex_main_outputs v_5 = {v_4.prevent_dce, v_3.pos};
+  return v_5;
+}
+
diff --git a/test/tint/builtins/gen/var/acosh/de60d8.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/acosh/de60d8.wgsl.expected.ir.dxc.hlsl
index 7f21496..0265c36 100644
--- a/test/tint/builtins/gen/var/acosh/de60d8.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/acosh/de60d8.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,44 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  vector<float16_t, 4> prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: acosh
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation vector<float16_t, 4> VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+vector<float16_t, 4> acosh_de60d8() {
+  vector<float16_t, 4> arg_0 = (float16_t(1.54296875h)).xxxx;
+  vector<float16_t, 4> v = arg_0;
+  vector<float16_t, 4> res = log((v + sqrt(((v * v) - (float16_t(1.0h)).xxxx))));
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store<vector<float16_t, 4> >(0u, acosh_de60d8());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store<vector<float16_t, 4> >(0u, acosh_de60d8());
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = acosh_de60d8();
+  VertexOutput v_1 = tint_symbol;
+  return v_1;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_2 = vertex_main_inner();
+  VertexOutput v_3 = v_2;
+  VertexOutput v_4 = v_2;
+  vertex_main_outputs v_5 = {v_4.prevent_dce, v_3.pos};
+  return v_5;
+}
+
diff --git a/test/tint/builtins/gen/var/acosh/de60d8.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/acosh/de60d8.wgsl.expected.ir.fxc.hlsl
index 7f21496..db18a91 100644
--- a/test/tint/builtins/gen/var/acosh/de60d8.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/acosh/de60d8.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,49 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: acosh
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct VertexOutput {
+  float4 pos;
+  vector<float16_t, 4> prevent_dce;
+};
+
+struct vertex_main_outputs {
+  nointerpolation vector<float16_t, 4> VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+vector<float16_t, 4> acosh_de60d8() {
+  vector<float16_t, 4> arg_0 = (float16_t(1.54296875h)).xxxx;
+  vector<float16_t, 4> v = arg_0;
+  vector<float16_t, 4> res = log((v + sqrt(((v * v) - (float16_t(1.0h)).xxxx))));
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store<vector<float16_t, 4> >(0u, acosh_de60d8());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store<vector<float16_t, 4> >(0u, acosh_de60d8());
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = acosh_de60d8();
+  VertexOutput v_1 = tint_symbol;
+  return v_1;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_2 = vertex_main_inner();
+  VertexOutput v_3 = v_2;
+  VertexOutput v_4 = v_2;
+  vertex_main_outputs v_5 = {v_4.prevent_dce, v_3.pos};
+  return v_5;
+}
+
+FXC validation failure:
+c:\src\dawn\Shader@0x00000208C2F42E00(3,10-18): error X3000: syntax error: unexpected token 'float16_t'
+
diff --git a/test/tint/builtins/gen/var/acosh/e38f5c.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/acosh/e38f5c.wgsl.expected.ir.dxc.hlsl
index 7f21496..6eff761 100644
--- a/test/tint/builtins/gen/var/acosh/e38f5c.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/acosh/e38f5c.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,44 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  float3 prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: acosh
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation float3 VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+float3 acosh_e38f5c() {
+  float3 arg_0 = (1.54308068752288818359f).xxx;
+  float3 v = arg_0;
+  float3 res = log((v + sqrt(((v * v) - (1.0f).xxx))));
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store3(0u, asuint(acosh_e38f5c()));
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store3(0u, asuint(acosh_e38f5c()));
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = acosh_e38f5c();
+  VertexOutput v_1 = tint_symbol;
+  return v_1;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_2 = vertex_main_inner();
+  VertexOutput v_3 = v_2;
+  VertexOutput v_4 = v_2;
+  vertex_main_outputs v_5 = {v_4.prevent_dce, v_3.pos};
+  return v_5;
+}
+
diff --git a/test/tint/builtins/gen/var/acosh/e38f5c.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/acosh/e38f5c.wgsl.expected.ir.fxc.hlsl
index 7f21496..6eff761 100644
--- a/test/tint/builtins/gen/var/acosh/e38f5c.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/acosh/e38f5c.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,44 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  float3 prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: acosh
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation float3 VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+float3 acosh_e38f5c() {
+  float3 arg_0 = (1.54308068752288818359f).xxx;
+  float3 v = arg_0;
+  float3 res = log((v + sqrt(((v * v) - (1.0f).xxx))));
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store3(0u, asuint(acosh_e38f5c()));
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store3(0u, asuint(acosh_e38f5c()));
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = acosh_e38f5c();
+  VertexOutput v_1 = tint_symbol;
+  return v_1;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_2 = vertex_main_inner();
+  VertexOutput v_3 = v_2;
+  VertexOutput v_4 = v_2;
+  vertex_main_outputs v_5 = {v_4.prevent_dce, v_3.pos};
+  return v_5;
+}
+
diff --git a/test/tint/builtins/gen/var/acosh/ecf2d1.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/acosh/ecf2d1.wgsl.expected.ir.dxc.hlsl
index 7f21496..191c0ca 100644
--- a/test/tint/builtins/gen/var/acosh/ecf2d1.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/acosh/ecf2d1.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,44 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  float prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: acosh
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation float VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+float acosh_ecf2d1() {
+  float arg_0 = 1.54308068752288818359f;
+  float v = arg_0;
+  float res = log((v + sqrt(((v * v) - 1.0f))));
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store(0u, asuint(acosh_ecf2d1()));
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store(0u, asuint(acosh_ecf2d1()));
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = acosh_ecf2d1();
+  VertexOutput v_1 = tint_symbol;
+  return v_1;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_2 = vertex_main_inner();
+  VertexOutput v_3 = v_2;
+  VertexOutput v_4 = v_2;
+  vertex_main_outputs v_5 = {v_4.prevent_dce, v_3.pos};
+  return v_5;
+}
+
diff --git a/test/tint/builtins/gen/var/acosh/ecf2d1.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/acosh/ecf2d1.wgsl.expected.ir.fxc.hlsl
index 7f21496..191c0ca 100644
--- a/test/tint/builtins/gen/var/acosh/ecf2d1.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/acosh/ecf2d1.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,44 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  float prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: acosh
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation float VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+float acosh_ecf2d1() {
+  float arg_0 = 1.54308068752288818359f;
+  float v = arg_0;
+  float res = log((v + sqrt(((v * v) - 1.0f))));
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store(0u, asuint(acosh_ecf2d1()));
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store(0u, asuint(acosh_ecf2d1()));
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = acosh_ecf2d1();
+  VertexOutput v_1 = tint_symbol;
+  return v_1;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_2 = vertex_main_inner();
+  VertexOutput v_3 = v_2;
+  VertexOutput v_4 = v_2;
+  vertex_main_outputs v_5 = {v_4.prevent_dce, v_3.pos};
+  return v_5;
+}
+
diff --git a/test/tint/builtins/gen/var/acosh/f56574.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/acosh/f56574.wgsl.expected.ir.dxc.hlsl
index 7f21496..92899a9 100644
--- a/test/tint/builtins/gen/var/acosh/f56574.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/acosh/f56574.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,44 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  vector<float16_t, 3> prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: acosh
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation vector<float16_t, 3> VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+vector<float16_t, 3> acosh_f56574() {
+  vector<float16_t, 3> arg_0 = (float16_t(1.54296875h)).xxx;
+  vector<float16_t, 3> v = arg_0;
+  vector<float16_t, 3> res = log((v + sqrt(((v * v) - (float16_t(1.0h)).xxx))));
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store<vector<float16_t, 3> >(0u, acosh_f56574());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store<vector<float16_t, 3> >(0u, acosh_f56574());
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = acosh_f56574();
+  VertexOutput v_1 = tint_symbol;
+  return v_1;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_2 = vertex_main_inner();
+  VertexOutput v_3 = v_2;
+  VertexOutput v_4 = v_2;
+  vertex_main_outputs v_5 = {v_4.prevent_dce, v_3.pos};
+  return v_5;
+}
+
diff --git a/test/tint/builtins/gen/var/acosh/f56574.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/acosh/f56574.wgsl.expected.ir.fxc.hlsl
index 7f21496..0c3c215 100644
--- a/test/tint/builtins/gen/var/acosh/f56574.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/acosh/f56574.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,49 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: acosh
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct VertexOutput {
+  float4 pos;
+  vector<float16_t, 3> prevent_dce;
+};
+
+struct vertex_main_outputs {
+  nointerpolation vector<float16_t, 3> VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+vector<float16_t, 3> acosh_f56574() {
+  vector<float16_t, 3> arg_0 = (float16_t(1.54296875h)).xxx;
+  vector<float16_t, 3> v = arg_0;
+  vector<float16_t, 3> res = log((v + sqrt(((v * v) - (float16_t(1.0h)).xxx))));
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store<vector<float16_t, 3> >(0u, acosh_f56574());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store<vector<float16_t, 3> >(0u, acosh_f56574());
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = acosh_f56574();
+  VertexOutput v_1 = tint_symbol;
+  return v_1;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_2 = vertex_main_inner();
+  VertexOutput v_3 = v_2;
+  VertexOutput v_4 = v_2;
+  vertex_main_outputs v_5 = {v_4.prevent_dce, v_3.pos};
+  return v_5;
+}
+
+FXC validation failure:
+c:\src\dawn\Shader@0x00000254C5310E90(3,10-18): error X3000: syntax error: unexpected token 'float16_t'
+
diff --git a/test/tint/builtins/gen/var/all/353d6a.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/all/353d6a.wgsl.expected.ir.dxc.hlsl
index ddf0424..679e298 100644
--- a/test/tint/builtins/gen/var/all/353d6a.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/all/353d6a.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,43 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  int prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: select
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation int VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+int all_353d6a() {
+  bool arg_0 = true;
+  bool res = all(arg_0);
+  return ((all((res == false))) ? (1) : (0));
+}
+
+void fragment_main() {
+  prevent_dce.Store(0u, asuint(all_353d6a()));
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store(0u, asuint(all_353d6a()));
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = all_353d6a();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
diff --git a/test/tint/builtins/gen/var/all/353d6a.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/all/353d6a.wgsl.expected.ir.fxc.hlsl
index ddf0424..679e298 100644
--- a/test/tint/builtins/gen/var/all/353d6a.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/all/353d6a.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,43 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  int prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: select
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation int VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+int all_353d6a() {
+  bool arg_0 = true;
+  bool res = all(arg_0);
+  return ((all((res == false))) ? (1) : (0));
+}
+
+void fragment_main() {
+  prevent_dce.Store(0u, asuint(all_353d6a()));
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store(0u, asuint(all_353d6a()));
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = all_353d6a();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
diff --git a/test/tint/builtins/gen/var/all/986c7b.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/all/986c7b.wgsl.expected.ir.dxc.hlsl
index ddf0424..1f607fe 100644
--- a/test/tint/builtins/gen/var/all/986c7b.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/all/986c7b.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,43 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  int prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: select
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation int VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+int all_986c7b() {
+  bool4 arg_0 = (true).xxxx;
+  bool res = all(arg_0);
+  return ((all((res == false))) ? (1) : (0));
+}
+
+void fragment_main() {
+  prevent_dce.Store(0u, asuint(all_986c7b()));
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store(0u, asuint(all_986c7b()));
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = all_986c7b();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
diff --git a/test/tint/builtins/gen/var/all/986c7b.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/all/986c7b.wgsl.expected.ir.fxc.hlsl
index ddf0424..1f607fe 100644
--- a/test/tint/builtins/gen/var/all/986c7b.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/all/986c7b.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,43 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  int prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: select
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation int VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+int all_986c7b() {
+  bool4 arg_0 = (true).xxxx;
+  bool res = all(arg_0);
+  return ((all((res == false))) ? (1) : (0));
+}
+
+void fragment_main() {
+  prevent_dce.Store(0u, asuint(all_986c7b()));
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store(0u, asuint(all_986c7b()));
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = all_986c7b();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
diff --git a/test/tint/builtins/gen/var/all/bd2dba.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/all/bd2dba.wgsl.expected.ir.dxc.hlsl
index ddf0424..350bbca 100644
--- a/test/tint/builtins/gen/var/all/bd2dba.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/all/bd2dba.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,43 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  int prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: select
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation int VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+int all_bd2dba() {
+  bool3 arg_0 = (true).xxx;
+  bool res = all(arg_0);
+  return ((all((res == false))) ? (1) : (0));
+}
+
+void fragment_main() {
+  prevent_dce.Store(0u, asuint(all_bd2dba()));
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store(0u, asuint(all_bd2dba()));
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = all_bd2dba();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
diff --git a/test/tint/builtins/gen/var/all/bd2dba.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/all/bd2dba.wgsl.expected.ir.fxc.hlsl
index ddf0424..350bbca 100644
--- a/test/tint/builtins/gen/var/all/bd2dba.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/all/bd2dba.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,43 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  int prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: select
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation int VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+int all_bd2dba() {
+  bool3 arg_0 = (true).xxx;
+  bool res = all(arg_0);
+  return ((all((res == false))) ? (1) : (0));
+}
+
+void fragment_main() {
+  prevent_dce.Store(0u, asuint(all_bd2dba()));
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store(0u, asuint(all_bd2dba()));
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = all_bd2dba();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
diff --git a/test/tint/builtins/gen/var/all/f46790.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/all/f46790.wgsl.expected.ir.dxc.hlsl
index ddf0424..588dc84 100644
--- a/test/tint/builtins/gen/var/all/f46790.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/all/f46790.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,43 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  int prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: select
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation int VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+int all_f46790() {
+  bool2 arg_0 = (true).xx;
+  bool res = all(arg_0);
+  return ((all((res == false))) ? (1) : (0));
+}
+
+void fragment_main() {
+  prevent_dce.Store(0u, asuint(all_f46790()));
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store(0u, asuint(all_f46790()));
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = all_f46790();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
diff --git a/test/tint/builtins/gen/var/all/f46790.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/all/f46790.wgsl.expected.ir.fxc.hlsl
index ddf0424..588dc84 100644
--- a/test/tint/builtins/gen/var/all/f46790.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/all/f46790.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,43 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  int prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: select
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation int VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+int all_f46790() {
+  bool2 arg_0 = (true).xx;
+  bool res = all(arg_0);
+  return ((all((res == false))) ? (1) : (0));
+}
+
+void fragment_main() {
+  prevent_dce.Store(0u, asuint(all_f46790()));
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store(0u, asuint(all_f46790()));
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = all_f46790();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
diff --git a/test/tint/builtins/gen/var/any/083428.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/any/083428.wgsl.expected.ir.dxc.hlsl
index ddf0424..ced375f 100644
--- a/test/tint/builtins/gen/var/any/083428.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/any/083428.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,43 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  int prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: select
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation int VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+int any_083428() {
+  bool4 arg_0 = (true).xxxx;
+  bool res = any(arg_0);
+  return ((all((res == false))) ? (1) : (0));
+}
+
+void fragment_main() {
+  prevent_dce.Store(0u, asuint(any_083428()));
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store(0u, asuint(any_083428()));
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = any_083428();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
diff --git a/test/tint/builtins/gen/var/any/083428.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/any/083428.wgsl.expected.ir.fxc.hlsl
index ddf0424..ced375f 100644
--- a/test/tint/builtins/gen/var/any/083428.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/any/083428.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,43 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  int prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: select
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation int VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+int any_083428() {
+  bool4 arg_0 = (true).xxxx;
+  bool res = any(arg_0);
+  return ((all((res == false))) ? (1) : (0));
+}
+
+void fragment_main() {
+  prevent_dce.Store(0u, asuint(any_083428()));
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store(0u, asuint(any_083428()));
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = any_083428();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
diff --git a/test/tint/builtins/gen/var/any/0e3e58.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/any/0e3e58.wgsl.expected.ir.dxc.hlsl
index ddf0424..2953b87 100644
--- a/test/tint/builtins/gen/var/any/0e3e58.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/any/0e3e58.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,43 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  int prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: select
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation int VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+int any_0e3e58() {
+  bool2 arg_0 = (true).xx;
+  bool res = any(arg_0);
+  return ((all((res == false))) ? (1) : (0));
+}
+
+void fragment_main() {
+  prevent_dce.Store(0u, asuint(any_0e3e58()));
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store(0u, asuint(any_0e3e58()));
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = any_0e3e58();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
diff --git a/test/tint/builtins/gen/var/any/0e3e58.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/any/0e3e58.wgsl.expected.ir.fxc.hlsl
index ddf0424..2953b87 100644
--- a/test/tint/builtins/gen/var/any/0e3e58.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/any/0e3e58.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,43 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  int prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: select
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation int VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+int any_0e3e58() {
+  bool2 arg_0 = (true).xx;
+  bool res = any(arg_0);
+  return ((all((res == false))) ? (1) : (0));
+}
+
+void fragment_main() {
+  prevent_dce.Store(0u, asuint(any_0e3e58()));
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store(0u, asuint(any_0e3e58()));
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = any_0e3e58();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
diff --git a/test/tint/builtins/gen/var/any/2ab91a.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/any/2ab91a.wgsl.expected.ir.dxc.hlsl
index ddf0424..4be50d4 100644
--- a/test/tint/builtins/gen/var/any/2ab91a.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/any/2ab91a.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,43 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  int prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: select
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation int VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+int any_2ab91a() {
+  bool arg_0 = true;
+  bool res = any(arg_0);
+  return ((all((res == false))) ? (1) : (0));
+}
+
+void fragment_main() {
+  prevent_dce.Store(0u, asuint(any_2ab91a()));
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store(0u, asuint(any_2ab91a()));
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = any_2ab91a();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
diff --git a/test/tint/builtins/gen/var/any/2ab91a.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/any/2ab91a.wgsl.expected.ir.fxc.hlsl
index ddf0424..4be50d4 100644
--- a/test/tint/builtins/gen/var/any/2ab91a.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/any/2ab91a.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,43 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  int prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: select
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation int VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+int any_2ab91a() {
+  bool arg_0 = true;
+  bool res = any(arg_0);
+  return ((all((res == false))) ? (1) : (0));
+}
+
+void fragment_main() {
+  prevent_dce.Store(0u, asuint(any_2ab91a()));
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store(0u, asuint(any_2ab91a()));
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = any_2ab91a();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
diff --git a/test/tint/builtins/gen/var/any/e755c1.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/any/e755c1.wgsl.expected.ir.dxc.hlsl
index ddf0424..65ac735 100644
--- a/test/tint/builtins/gen/var/any/e755c1.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/any/e755c1.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,43 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  int prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: select
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation int VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+int any_e755c1() {
+  bool3 arg_0 = (true).xxx;
+  bool res = any(arg_0);
+  return ((all((res == false))) ? (1) : (0));
+}
+
+void fragment_main() {
+  prevent_dce.Store(0u, asuint(any_e755c1()));
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store(0u, asuint(any_e755c1()));
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = any_e755c1();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
diff --git a/test/tint/builtins/gen/var/any/e755c1.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/any/e755c1.wgsl.expected.ir.fxc.hlsl
index ddf0424..65ac735 100644
--- a/test/tint/builtins/gen/var/any/e755c1.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/any/e755c1.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,43 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  int prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: select
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation int VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+int any_e755c1() {
+  bool3 arg_0 = (true).xxx;
+  bool res = any(arg_0);
+  return ((all((res == false))) ? (1) : (0));
+}
+
+void fragment_main() {
+  prevent_dce.Store(0u, asuint(any_e755c1()));
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store(0u, asuint(any_e755c1()));
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = any_e755c1();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
diff --git a/test/tint/builtins/gen/var/arrayLength/1588cd.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/arrayLength/1588cd.wgsl.expected.ir.dxc.hlsl
index 7492c3a..5024042 100644
--- a/test/tint/builtins/gen/var/arrayLength/1588cd.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/arrayLength/1588cd.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,45 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  uint prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: arrayLength
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation uint VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+ByteAddressBuffer sb_ro : register(t1);
+uint arrayLength_1588cd() {
+  uint v = 0u;
+  sb_ro.GetDimensions(v);
+  uint res = (v / 4u);
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store(0u, arrayLength_1588cd());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store(0u, arrayLength_1588cd());
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = arrayLength_1588cd();
+  VertexOutput v_1 = tint_symbol;
+  return v_1;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_2 = vertex_main_inner();
+  VertexOutput v_3 = v_2;
+  VertexOutput v_4 = v_2;
+  vertex_main_outputs v_5 = {v_4.prevent_dce, v_3.pos};
+  return v_5;
+}
+
diff --git a/test/tint/builtins/gen/var/arrayLength/1588cd.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/arrayLength/1588cd.wgsl.expected.ir.fxc.hlsl
index 7492c3a..5024042 100644
--- a/test/tint/builtins/gen/var/arrayLength/1588cd.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/arrayLength/1588cd.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,45 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  uint prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: arrayLength
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation uint VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+ByteAddressBuffer sb_ro : register(t1);
+uint arrayLength_1588cd() {
+  uint v = 0u;
+  sb_ro.GetDimensions(v);
+  uint res = (v / 4u);
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store(0u, arrayLength_1588cd());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store(0u, arrayLength_1588cd());
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = arrayLength_1588cd();
+  VertexOutput v_1 = tint_symbol;
+  return v_1;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_2 = vertex_main_inner();
+  VertexOutput v_3 = v_2;
+  VertexOutput v_4 = v_2;
+  vertex_main_outputs v_5 = {v_4.prevent_dce, v_3.pos};
+  return v_5;
+}
+
diff --git a/test/tint/builtins/gen/var/arrayLength/61b1c7.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/arrayLength/61b1c7.wgsl.expected.ir.dxc.hlsl
index 7492c3a..85162e28 100644
--- a/test/tint/builtins/gen/var/arrayLength/61b1c7.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/arrayLength/61b1c7.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,19 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: arrayLength
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWByteAddressBuffer prevent_dce : register(u0);
+RWByteAddressBuffer sb_rw : register(u1);
+uint arrayLength_61b1c7() {
+  uint v = 0u;
+  sb_rw.GetDimensions(v);
+  uint res = (v / 4u);
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store(0u, arrayLength_61b1c7());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store(0u, arrayLength_61b1c7());
+}
+
diff --git a/test/tint/builtins/gen/var/arrayLength/61b1c7.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/arrayLength/61b1c7.wgsl.expected.ir.fxc.hlsl
index 7492c3a..85162e28 100644
--- a/test/tint/builtins/gen/var/arrayLength/61b1c7.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/arrayLength/61b1c7.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,19 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: arrayLength
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWByteAddressBuffer prevent_dce : register(u0);
+RWByteAddressBuffer sb_rw : register(u1);
+uint arrayLength_61b1c7() {
+  uint v = 0u;
+  sb_rw.GetDimensions(v);
+  uint res = (v / 4u);
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store(0u, arrayLength_61b1c7());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store(0u, arrayLength_61b1c7());
+}
+
diff --git a/test/tint/builtins/gen/var/arrayLength/8421b9.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/arrayLength/8421b9.wgsl.expected.ir.dxc.hlsl
index 7492c3a..ca33830 100644
--- a/test/tint/builtins/gen/var/arrayLength/8421b9.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/arrayLength/8421b9.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,45 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  uint prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: arrayLength
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation uint VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+ByteAddressBuffer sb_ro : register(t1);
+uint arrayLength_8421b9() {
+  uint v = 0u;
+  sb_ro.GetDimensions(v);
+  uint res = (v / 2u);
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store(0u, arrayLength_8421b9());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store(0u, arrayLength_8421b9());
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = arrayLength_8421b9();
+  VertexOutput v_1 = tint_symbol;
+  return v_1;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_2 = vertex_main_inner();
+  VertexOutput v_3 = v_2;
+  VertexOutput v_4 = v_2;
+  vertex_main_outputs v_5 = {v_4.prevent_dce, v_3.pos};
+  return v_5;
+}
+
diff --git a/test/tint/builtins/gen/var/arrayLength/8421b9.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/arrayLength/8421b9.wgsl.expected.ir.fxc.hlsl
index 7492c3a..ca33830 100644
--- a/test/tint/builtins/gen/var/arrayLength/8421b9.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/arrayLength/8421b9.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,45 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  uint prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: arrayLength
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation uint VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+ByteAddressBuffer sb_ro : register(t1);
+uint arrayLength_8421b9() {
+  uint v = 0u;
+  sb_ro.GetDimensions(v);
+  uint res = (v / 2u);
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store(0u, arrayLength_8421b9());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store(0u, arrayLength_8421b9());
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = arrayLength_8421b9();
+  VertexOutput v_1 = tint_symbol;
+  return v_1;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_2 = vertex_main_inner();
+  VertexOutput v_3 = v_2;
+  VertexOutput v_4 = v_2;
+  vertex_main_outputs v_5 = {v_4.prevent_dce, v_3.pos};
+  return v_5;
+}
+
diff --git a/test/tint/builtins/gen/var/arrayLength/a0f5ca.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/arrayLength/a0f5ca.wgsl.expected.ir.dxc.hlsl
index 7492c3a..ae827d0 100644
--- a/test/tint/builtins/gen/var/arrayLength/a0f5ca.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/arrayLength/a0f5ca.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,45 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  uint prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: arrayLength
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation uint VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+ByteAddressBuffer sb_ro : register(t1);
+uint arrayLength_a0f5ca() {
+  uint v = 0u;
+  sb_ro.GetDimensions(v);
+  uint res = (v / 4u);
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store(0u, arrayLength_a0f5ca());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store(0u, arrayLength_a0f5ca());
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = arrayLength_a0f5ca();
+  VertexOutput v_1 = tint_symbol;
+  return v_1;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_2 = vertex_main_inner();
+  VertexOutput v_3 = v_2;
+  VertexOutput v_4 = v_2;
+  vertex_main_outputs v_5 = {v_4.prevent_dce, v_3.pos};
+  return v_5;
+}
+
diff --git a/test/tint/builtins/gen/var/arrayLength/a0f5ca.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/arrayLength/a0f5ca.wgsl.expected.ir.fxc.hlsl
index 7492c3a..ae827d0 100644
--- a/test/tint/builtins/gen/var/arrayLength/a0f5ca.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/arrayLength/a0f5ca.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,45 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  uint prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: arrayLength
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation uint VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+ByteAddressBuffer sb_ro : register(t1);
+uint arrayLength_a0f5ca() {
+  uint v = 0u;
+  sb_ro.GetDimensions(v);
+  uint res = (v / 4u);
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store(0u, arrayLength_a0f5ca());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store(0u, arrayLength_a0f5ca());
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = arrayLength_a0f5ca();
+  VertexOutput v_1 = tint_symbol;
+  return v_1;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_2 = vertex_main_inner();
+  VertexOutput v_3 = v_2;
+  VertexOutput v_4 = v_2;
+  vertex_main_outputs v_5 = {v_4.prevent_dce, v_3.pos};
+  return v_5;
+}
+
diff --git a/test/tint/builtins/gen/var/arrayLength/cbd6b5.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/arrayLength/cbd6b5.wgsl.expected.ir.dxc.hlsl
index 7492c3a..d1febe3 100644
--- a/test/tint/builtins/gen/var/arrayLength/cbd6b5.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/arrayLength/cbd6b5.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,19 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: arrayLength
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWByteAddressBuffer prevent_dce : register(u0);
+RWByteAddressBuffer sb_rw : register(u1);
+uint arrayLength_cbd6b5() {
+  uint v = 0u;
+  sb_rw.GetDimensions(v);
+  uint res = (v / 2u);
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store(0u, arrayLength_cbd6b5());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store(0u, arrayLength_cbd6b5());
+}
+
diff --git a/test/tint/builtins/gen/var/arrayLength/cbd6b5.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/arrayLength/cbd6b5.wgsl.expected.ir.fxc.hlsl
index 7492c3a..d1febe3 100644
--- a/test/tint/builtins/gen/var/arrayLength/cbd6b5.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/arrayLength/cbd6b5.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,19 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: arrayLength
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWByteAddressBuffer prevent_dce : register(u0);
+RWByteAddressBuffer sb_rw : register(u1);
+uint arrayLength_cbd6b5() {
+  uint v = 0u;
+  sb_rw.GetDimensions(v);
+  uint res = (v / 2u);
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store(0u, arrayLength_cbd6b5());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store(0u, arrayLength_cbd6b5());
+}
+
diff --git a/test/tint/builtins/gen/var/arrayLength/cdd123.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/arrayLength/cdd123.wgsl.expected.ir.dxc.hlsl
index 7492c3a..0498460 100644
--- a/test/tint/builtins/gen/var/arrayLength/cdd123.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/arrayLength/cdd123.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,19 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: arrayLength
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWByteAddressBuffer prevent_dce : register(u0);
+RWByteAddressBuffer sb_rw : register(u1);
+uint arrayLength_cdd123() {
+  uint v = 0u;
+  sb_rw.GetDimensions(v);
+  uint res = (v / 4u);
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store(0u, arrayLength_cdd123());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store(0u, arrayLength_cdd123());
+}
+
diff --git a/test/tint/builtins/gen/var/arrayLength/cdd123.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/arrayLength/cdd123.wgsl.expected.ir.fxc.hlsl
index 7492c3a..0498460 100644
--- a/test/tint/builtins/gen/var/arrayLength/cdd123.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/arrayLength/cdd123.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,19 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: arrayLength
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWByteAddressBuffer prevent_dce : register(u0);
+RWByteAddressBuffer sb_rw : register(u1);
+uint arrayLength_cdd123() {
+  uint v = 0u;
+  sb_rw.GetDimensions(v);
+  uint res = (v / 4u);
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store(0u, arrayLength_cdd123());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store(0u, arrayLength_cdd123());
+}
+
diff --git a/test/tint/builtins/gen/var/arrayLength/cfca0a.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/arrayLength/cfca0a.wgsl.expected.ir.dxc.hlsl
index 7492c3a..1305438 100644
--- a/test/tint/builtins/gen/var/arrayLength/cfca0a.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/arrayLength/cfca0a.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,45 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  uint prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: arrayLength
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation uint VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+ByteAddressBuffer sb_ro : register(t1);
+uint arrayLength_cfca0a() {
+  uint v = 0u;
+  sb_ro.GetDimensions(v);
+  uint res = (v / 4u);
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store(0u, arrayLength_cfca0a());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store(0u, arrayLength_cfca0a());
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = arrayLength_cfca0a();
+  VertexOutput v_1 = tint_symbol;
+  return v_1;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_2 = vertex_main_inner();
+  VertexOutput v_3 = v_2;
+  VertexOutput v_4 = v_2;
+  vertex_main_outputs v_5 = {v_4.prevent_dce, v_3.pos};
+  return v_5;
+}
+
diff --git a/test/tint/builtins/gen/var/arrayLength/cfca0a.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/arrayLength/cfca0a.wgsl.expected.ir.fxc.hlsl
index 7492c3a..1305438 100644
--- a/test/tint/builtins/gen/var/arrayLength/cfca0a.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/arrayLength/cfca0a.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,45 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  uint prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: arrayLength
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation uint VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+ByteAddressBuffer sb_ro : register(t1);
+uint arrayLength_cfca0a() {
+  uint v = 0u;
+  sb_ro.GetDimensions(v);
+  uint res = (v / 4u);
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store(0u, arrayLength_cfca0a());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store(0u, arrayLength_cfca0a());
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = arrayLength_cfca0a();
+  VertexOutput v_1 = tint_symbol;
+  return v_1;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_2 = vertex_main_inner();
+  VertexOutput v_3 = v_2;
+  VertexOutput v_4 = v_2;
+  vertex_main_outputs v_5 = {v_4.prevent_dce, v_3.pos};
+  return v_5;
+}
+
diff --git a/test/tint/builtins/gen/var/arrayLength/eb510f.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/arrayLength/eb510f.wgsl.expected.ir.dxc.hlsl
index 7492c3a..ff90302 100644
--- a/test/tint/builtins/gen/var/arrayLength/eb510f.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/arrayLength/eb510f.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,19 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: arrayLength
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWByteAddressBuffer prevent_dce : register(u0);
+RWByteAddressBuffer sb_rw : register(u1);
+uint arrayLength_eb510f() {
+  uint v = 0u;
+  sb_rw.GetDimensions(v);
+  uint res = (v / 4u);
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store(0u, arrayLength_eb510f());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store(0u, arrayLength_eb510f());
+}
+
diff --git a/test/tint/builtins/gen/var/arrayLength/eb510f.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/arrayLength/eb510f.wgsl.expected.ir.fxc.hlsl
index 7492c3a..ff90302 100644
--- a/test/tint/builtins/gen/var/arrayLength/eb510f.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/arrayLength/eb510f.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,19 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: arrayLength
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWByteAddressBuffer prevent_dce : register(u0);
+RWByteAddressBuffer sb_rw : register(u1);
+uint arrayLength_eb510f() {
+  uint v = 0u;
+  sb_rw.GetDimensions(v);
+  uint res = (v / 4u);
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store(0u, arrayLength_eb510f());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store(0u, arrayLength_eb510f());
+}
+
diff --git a/test/tint/builtins/gen/var/asin/064953.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/asin/064953.wgsl.expected.ir.dxc.hlsl
index 0ba40c6..0620dca 100644
--- a/test/tint/builtins/gen/var/asin/064953.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/asin/064953.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,43 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  float4 prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation float4 VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+float4 asin_064953() {
+  float4 arg_0 = (0.47942554950714111328f).xxxx;
+  float4 res = asin(arg_0);
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store4(0u, asuint(asin_064953()));
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store4(0u, asuint(asin_064953()));
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = asin_064953();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
diff --git a/test/tint/builtins/gen/var/asin/064953.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/asin/064953.wgsl.expected.ir.fxc.hlsl
index 0ba40c6..0620dca 100644
--- a/test/tint/builtins/gen/var/asin/064953.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/asin/064953.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,43 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  float4 prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation float4 VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+float4 asin_064953() {
+  float4 arg_0 = (0.47942554950714111328f).xxxx;
+  float4 res = asin(arg_0);
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store4(0u, asuint(asin_064953()));
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store4(0u, asuint(asin_064953()));
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = asin_064953();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
diff --git a/test/tint/builtins/gen/var/asin/0bac07.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/asin/0bac07.wgsl.expected.ir.dxc.hlsl
index 0ba40c6..49e5914 100644
--- a/test/tint/builtins/gen/var/asin/0bac07.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/asin/0bac07.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,36 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+void asin_0bac07() {
+  float3 res = (0.5f).xxx;
+}
+
+void fragment_main() {
+  asin_0bac07();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  asin_0bac07();
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  asin_0bac07();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  vertex_main_outputs v_2 = {v_1.pos};
+  return v_2;
+}
+
diff --git a/test/tint/builtins/gen/var/asin/0bac07.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/asin/0bac07.wgsl.expected.ir.fxc.hlsl
index 0ba40c6..49e5914 100644
--- a/test/tint/builtins/gen/var/asin/0bac07.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/asin/0bac07.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,36 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+void asin_0bac07() {
+  float3 res = (0.5f).xxx;
+}
+
+void fragment_main() {
+  asin_0bac07();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  asin_0bac07();
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  asin_0bac07();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  vertex_main_outputs v_2 = {v_1.pos};
+  return v_2;
+}
+
diff --git a/test/tint/builtins/gen/var/asin/11dfda.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/asin/11dfda.wgsl.expected.ir.dxc.hlsl
index 0ba40c6..7e7d39f 100644
--- a/test/tint/builtins/gen/var/asin/11dfda.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/asin/11dfda.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,43 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  float16_t prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation float16_t VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+float16_t asin_11dfda() {
+  float16_t arg_0 = float16_t(0.479248046875h);
+  float16_t res = asin(arg_0);
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store<float16_t>(0u, asin_11dfda());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store<float16_t>(0u, asin_11dfda());
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = asin_11dfda();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
diff --git a/test/tint/builtins/gen/var/asin/11dfda.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/asin/11dfda.wgsl.expected.ir.fxc.hlsl
index 0ba40c6..60aec00 100644
--- a/test/tint/builtins/gen/var/asin/11dfda.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/asin/11dfda.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,48 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct VertexOutput {
+  float4 pos;
+  float16_t prevent_dce;
+};
+
+struct vertex_main_outputs {
+  nointerpolation float16_t VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+float16_t asin_11dfda() {
+  float16_t arg_0 = float16_t(0.479248046875h);
+  float16_t res = asin(arg_0);
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store<float16_t>(0u, asin_11dfda());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store<float16_t>(0u, asin_11dfda());
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = asin_11dfda();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
+FXC validation failure:
+c:\src\dawn\Shader@0x0000028613617C50(3,3-11): error X3000: unrecognized identifier 'float16_t'
+
diff --git a/test/tint/builtins/gen/var/asin/2d8e29.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/asin/2d8e29.wgsl.expected.ir.dxc.hlsl
index 0ba40c6..a62d4c1 100644
--- a/test/tint/builtins/gen/var/asin/2d8e29.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/asin/2d8e29.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,43 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  vector<float16_t, 3> prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation vector<float16_t, 3> VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+vector<float16_t, 3> asin_2d8e29() {
+  vector<float16_t, 3> arg_0 = (float16_t(0.479248046875h)).xxx;
+  vector<float16_t, 3> res = asin(arg_0);
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store<vector<float16_t, 3> >(0u, asin_2d8e29());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store<vector<float16_t, 3> >(0u, asin_2d8e29());
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = asin_2d8e29();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
diff --git a/test/tint/builtins/gen/var/asin/2d8e29.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/asin/2d8e29.wgsl.expected.ir.fxc.hlsl
index 0ba40c6..4433dbc 100644
--- a/test/tint/builtins/gen/var/asin/2d8e29.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/asin/2d8e29.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,48 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct VertexOutput {
+  float4 pos;
+  vector<float16_t, 3> prevent_dce;
+};
+
+struct vertex_main_outputs {
+  nointerpolation vector<float16_t, 3> VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+vector<float16_t, 3> asin_2d8e29() {
+  vector<float16_t, 3> arg_0 = (float16_t(0.479248046875h)).xxx;
+  vector<float16_t, 3> res = asin(arg_0);
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store<vector<float16_t, 3> >(0u, asin_2d8e29());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store<vector<float16_t, 3> >(0u, asin_2d8e29());
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = asin_2d8e29();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
+FXC validation failure:
+c:\src\dawn\Shader@0x000002B278F80000(3,10-18): error X3000: syntax error: unexpected token 'float16_t'
+
diff --git a/test/tint/builtins/gen/var/asin/3cfbd4.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/asin/3cfbd4.wgsl.expected.ir.dxc.hlsl
index 0ba40c6..74ed43d 100644
--- a/test/tint/builtins/gen/var/asin/3cfbd4.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/asin/3cfbd4.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,43 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  vector<float16_t, 4> prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation vector<float16_t, 4> VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+vector<float16_t, 4> asin_3cfbd4() {
+  vector<float16_t, 4> arg_0 = (float16_t(0.479248046875h)).xxxx;
+  vector<float16_t, 4> res = asin(arg_0);
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store<vector<float16_t, 4> >(0u, asin_3cfbd4());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store<vector<float16_t, 4> >(0u, asin_3cfbd4());
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = asin_3cfbd4();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
diff --git a/test/tint/builtins/gen/var/asin/3cfbd4.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/asin/3cfbd4.wgsl.expected.ir.fxc.hlsl
index 0ba40c6..17cc4d4 100644
--- a/test/tint/builtins/gen/var/asin/3cfbd4.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/asin/3cfbd4.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,48 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct VertexOutput {
+  float4 pos;
+  vector<float16_t, 4> prevent_dce;
+};
+
+struct vertex_main_outputs {
+  nointerpolation vector<float16_t, 4> VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+vector<float16_t, 4> asin_3cfbd4() {
+  vector<float16_t, 4> arg_0 = (float16_t(0.479248046875h)).xxxx;
+  vector<float16_t, 4> res = asin(arg_0);
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store<vector<float16_t, 4> >(0u, asin_3cfbd4());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store<vector<float16_t, 4> >(0u, asin_3cfbd4());
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = asin_3cfbd4();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
+FXC validation failure:
+c:\src\dawn\Shader@0x000001449070DDA0(3,10-18): error X3000: syntax error: unexpected token 'float16_t'
+
diff --git a/test/tint/builtins/gen/var/asin/64bb1f.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/asin/64bb1f.wgsl.expected.ir.dxc.hlsl
index 0ba40c6..9a3b93f 100644
--- a/test/tint/builtins/gen/var/asin/64bb1f.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/asin/64bb1f.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,36 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+void asin_64bb1f() {
+  float4 res = (0.5f).xxxx;
+}
+
+void fragment_main() {
+  asin_64bb1f();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  asin_64bb1f();
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  asin_64bb1f();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  vertex_main_outputs v_2 = {v_1.pos};
+  return v_2;
+}
+
diff --git a/test/tint/builtins/gen/var/asin/64bb1f.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/asin/64bb1f.wgsl.expected.ir.fxc.hlsl
index 0ba40c6..9a3b93f 100644
--- a/test/tint/builtins/gen/var/asin/64bb1f.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/asin/64bb1f.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,36 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+void asin_64bb1f() {
+  float4 res = (0.5f).xxxx;
+}
+
+void fragment_main() {
+  asin_64bb1f();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  asin_64bb1f();
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  asin_64bb1f();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  vertex_main_outputs v_2 = {v_1.pos};
+  return v_2;
+}
+
diff --git a/test/tint/builtins/gen/var/asin/7b6a44.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/asin/7b6a44.wgsl.expected.ir.dxc.hlsl
index 0ba40c6..5f68abb 100644
--- a/test/tint/builtins/gen/var/asin/7b6a44.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/asin/7b6a44.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,43 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  float2 prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation float2 VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+float2 asin_7b6a44() {
+  float2 arg_0 = (0.47942554950714111328f).xx;
+  float2 res = asin(arg_0);
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store2(0u, asuint(asin_7b6a44()));
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store2(0u, asuint(asin_7b6a44()));
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = asin_7b6a44();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
diff --git a/test/tint/builtins/gen/var/asin/7b6a44.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/asin/7b6a44.wgsl.expected.ir.fxc.hlsl
index 0ba40c6..5f68abb 100644
--- a/test/tint/builtins/gen/var/asin/7b6a44.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/asin/7b6a44.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,43 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  float2 prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation float2 VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+float2 asin_7b6a44() {
+  float2 arg_0 = (0.47942554950714111328f).xx;
+  float2 res = asin(arg_0);
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store2(0u, asuint(asin_7b6a44()));
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store2(0u, asuint(asin_7b6a44()));
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = asin_7b6a44();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
diff --git a/test/tint/builtins/gen/var/asin/8cd9c9.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/asin/8cd9c9.wgsl.expected.ir.dxc.hlsl
index 0ba40c6..abb43f5 100644
--- a/test/tint/builtins/gen/var/asin/8cd9c9.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/asin/8cd9c9.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,43 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  float3 prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation float3 VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+float3 asin_8cd9c9() {
+  float3 arg_0 = (0.47942554950714111328f).xxx;
+  float3 res = asin(arg_0);
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store3(0u, asuint(asin_8cd9c9()));
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store3(0u, asuint(asin_8cd9c9()));
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = asin_8cd9c9();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
diff --git a/test/tint/builtins/gen/var/asin/8cd9c9.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/asin/8cd9c9.wgsl.expected.ir.fxc.hlsl
index 0ba40c6..abb43f5 100644
--- a/test/tint/builtins/gen/var/asin/8cd9c9.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/asin/8cd9c9.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,43 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  float3 prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation float3 VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+float3 asin_8cd9c9() {
+  float3 arg_0 = (0.47942554950714111328f).xxx;
+  float3 res = asin(arg_0);
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store3(0u, asuint(asin_8cd9c9()));
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store3(0u, asuint(asin_8cd9c9()));
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = asin_8cd9c9();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
diff --git a/test/tint/builtins/gen/var/asin/a5dd88.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/asin/a5dd88.wgsl.expected.ir.dxc.hlsl
index 0ba40c6..9e9f405 100644
--- a/test/tint/builtins/gen/var/asin/a5dd88.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/asin/a5dd88.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,36 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+void asin_a5dd88() {
+  float2 res = (0.5f).xx;
+}
+
+void fragment_main() {
+  asin_a5dd88();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  asin_a5dd88();
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  asin_a5dd88();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  vertex_main_outputs v_2 = {v_1.pos};
+  return v_2;
+}
+
diff --git a/test/tint/builtins/gen/var/asin/a5dd88.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/asin/a5dd88.wgsl.expected.ir.fxc.hlsl
index 0ba40c6..9e9f405 100644
--- a/test/tint/builtins/gen/var/asin/a5dd88.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/asin/a5dd88.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,36 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+void asin_a5dd88() {
+  float2 res = (0.5f).xx;
+}
+
+void fragment_main() {
+  asin_a5dd88();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  asin_a5dd88();
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  asin_a5dd88();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  vertex_main_outputs v_2 = {v_1.pos};
+  return v_2;
+}
+
diff --git a/test/tint/builtins/gen/var/asin/a6d73a.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/asin/a6d73a.wgsl.expected.ir.dxc.hlsl
index 0ba40c6..cb67ad8 100644
--- a/test/tint/builtins/gen/var/asin/a6d73a.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/asin/a6d73a.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,36 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+void asin_a6d73a() {
+  float res = 0.5f;
+}
+
+void fragment_main() {
+  asin_a6d73a();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  asin_a6d73a();
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  asin_a6d73a();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  vertex_main_outputs v_2 = {v_1.pos};
+  return v_2;
+}
+
diff --git a/test/tint/builtins/gen/var/asin/a6d73a.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/asin/a6d73a.wgsl.expected.ir.fxc.hlsl
index 0ba40c6..cb67ad8 100644
--- a/test/tint/builtins/gen/var/asin/a6d73a.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/asin/a6d73a.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,36 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+void asin_a6d73a() {
+  float res = 0.5f;
+}
+
+void fragment_main() {
+  asin_a6d73a();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  asin_a6d73a();
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  asin_a6d73a();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  vertex_main_outputs v_2 = {v_1.pos};
+  return v_2;
+}
+
diff --git a/test/tint/builtins/gen/var/asin/b4aced.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/asin/b4aced.wgsl.expected.ir.dxc.hlsl
index 0ba40c6..f589852 100644
--- a/test/tint/builtins/gen/var/asin/b4aced.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/asin/b4aced.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,43 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  vector<float16_t, 2> prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation vector<float16_t, 2> VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+vector<float16_t, 2> asin_b4aced() {
+  vector<float16_t, 2> arg_0 = (float16_t(0.479248046875h)).xx;
+  vector<float16_t, 2> res = asin(arg_0);
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store<vector<float16_t, 2> >(0u, asin_b4aced());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store<vector<float16_t, 2> >(0u, asin_b4aced());
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = asin_b4aced();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
diff --git a/test/tint/builtins/gen/var/asin/b4aced.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/asin/b4aced.wgsl.expected.ir.fxc.hlsl
index 0ba40c6..d35fc9f 100644
--- a/test/tint/builtins/gen/var/asin/b4aced.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/asin/b4aced.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,48 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct VertexOutput {
+  float4 pos;
+  vector<float16_t, 2> prevent_dce;
+};
+
+struct vertex_main_outputs {
+  nointerpolation vector<float16_t, 2> VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+vector<float16_t, 2> asin_b4aced() {
+  vector<float16_t, 2> arg_0 = (float16_t(0.479248046875h)).xx;
+  vector<float16_t, 2> res = asin(arg_0);
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store<vector<float16_t, 2> >(0u, asin_b4aced());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store<vector<float16_t, 2> >(0u, asin_b4aced());
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = asin_b4aced();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
+FXC validation failure:
+c:\src\dawn\Shader@0x000001CBF7A12810(3,10-18): error X3000: syntax error: unexpected token 'float16_t'
+
diff --git a/test/tint/builtins/gen/var/asin/c0c272.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/asin/c0c272.wgsl.expected.ir.dxc.hlsl
index 0ba40c6..3cf425a 100644
--- a/test/tint/builtins/gen/var/asin/c0c272.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/asin/c0c272.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,43 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  float prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation float VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+float asin_c0c272() {
+  float arg_0 = 0.47942554950714111328f;
+  float res = asin(arg_0);
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store(0u, asuint(asin_c0c272()));
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store(0u, asuint(asin_c0c272()));
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = asin_c0c272();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
diff --git a/test/tint/builtins/gen/var/asin/c0c272.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/asin/c0c272.wgsl.expected.ir.fxc.hlsl
index 0ba40c6..3cf425a 100644
--- a/test/tint/builtins/gen/var/asin/c0c272.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/asin/c0c272.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,43 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  float prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation float VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+float asin_c0c272() {
+  float arg_0 = 0.47942554950714111328f;
+  float res = asin(arg_0);
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store(0u, asuint(asin_c0c272()));
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store(0u, asuint(asin_c0c272()));
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = asin_c0c272();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
diff --git a/test/tint/builtins/gen/var/asinh/157447.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/asinh/157447.wgsl.expected.ir.dxc.hlsl
index 9cff948..8faa60b 100644
--- a/test/tint/builtins/gen/var/asinh/157447.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/asinh/157447.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,44 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  float prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: asinh
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation float VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+float asinh_157447() {
+  float arg_0 = 1.0f;
+  float v = arg_0;
+  float res = log((v + sqrt(((v * v) + 1.0f))));
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store(0u, asuint(asinh_157447()));
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store(0u, asuint(asinh_157447()));
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = asinh_157447();
+  VertexOutput v_1 = tint_symbol;
+  return v_1;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_2 = vertex_main_inner();
+  VertexOutput v_3 = v_2;
+  VertexOutput v_4 = v_2;
+  vertex_main_outputs v_5 = {v_4.prevent_dce, v_3.pos};
+  return v_5;
+}
+
diff --git a/test/tint/builtins/gen/var/asinh/157447.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/asinh/157447.wgsl.expected.ir.fxc.hlsl
index 9cff948..8faa60b 100644
--- a/test/tint/builtins/gen/var/asinh/157447.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/asinh/157447.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,44 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  float prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: asinh
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation float VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+float asinh_157447() {
+  float arg_0 = 1.0f;
+  float v = arg_0;
+  float res = log((v + sqrt(((v * v) + 1.0f))));
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store(0u, asuint(asinh_157447()));
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store(0u, asuint(asinh_157447()));
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = asinh_157447();
+  VertexOutput v_1 = tint_symbol;
+  return v_1;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_2 = vertex_main_inner();
+  VertexOutput v_3 = v_2;
+  VertexOutput v_4 = v_2;
+  vertex_main_outputs v_5 = {v_4.prevent_dce, v_3.pos};
+  return v_5;
+}
+
diff --git a/test/tint/builtins/gen/var/asinh/16b543.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/asinh/16b543.wgsl.expected.ir.dxc.hlsl
index 0ba40c6..078f44f 100644
--- a/test/tint/builtins/gen/var/asinh/16b543.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/asinh/16b543.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,36 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+void asinh_16b543() {
+  float2 res = (0.88137358427047729492f).xx;
+}
+
+void fragment_main() {
+  asinh_16b543();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  asinh_16b543();
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  asinh_16b543();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  vertex_main_outputs v_2 = {v_1.pos};
+  return v_2;
+}
+
diff --git a/test/tint/builtins/gen/var/asinh/16b543.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/asinh/16b543.wgsl.expected.ir.fxc.hlsl
index 0ba40c6..078f44f 100644
--- a/test/tint/builtins/gen/var/asinh/16b543.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/asinh/16b543.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,36 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+void asinh_16b543() {
+  float2 res = (0.88137358427047729492f).xx;
+}
+
+void fragment_main() {
+  asinh_16b543();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  asinh_16b543();
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  asinh_16b543();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  vertex_main_outputs v_2 = {v_1.pos};
+  return v_2;
+}
+
diff --git a/test/tint/builtins/gen/var/asinh/180015.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/asinh/180015.wgsl.expected.ir.dxc.hlsl
index 0ba40c6..a76710d 100644
--- a/test/tint/builtins/gen/var/asinh/180015.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/asinh/180015.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,36 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+void asinh_180015() {
+  float res = 0.88137358427047729492f;
+}
+
+void fragment_main() {
+  asinh_180015();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  asinh_180015();
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  asinh_180015();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  vertex_main_outputs v_2 = {v_1.pos};
+  return v_2;
+}
+
diff --git a/test/tint/builtins/gen/var/asinh/180015.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/asinh/180015.wgsl.expected.ir.fxc.hlsl
index 0ba40c6..a76710d 100644
--- a/test/tint/builtins/gen/var/asinh/180015.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/asinh/180015.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,36 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+void asinh_180015() {
+  float res = 0.88137358427047729492f;
+}
+
+void fragment_main() {
+  asinh_180015();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  asinh_180015();
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  asinh_180015();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  vertex_main_outputs v_2 = {v_1.pos};
+  return v_2;
+}
+
diff --git a/test/tint/builtins/gen/var/asinh/2265ee.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/asinh/2265ee.wgsl.expected.ir.dxc.hlsl
index 9cff948..2003a1d 100644
--- a/test/tint/builtins/gen/var/asinh/2265ee.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/asinh/2265ee.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,44 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  float3 prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: asinh
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation float3 VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+float3 asinh_2265ee() {
+  float3 arg_0 = (1.0f).xxx;
+  float3 v = arg_0;
+  float3 res = log((v + sqrt(((v * v) + (1.0f).xxx))));
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store3(0u, asuint(asinh_2265ee()));
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store3(0u, asuint(asinh_2265ee()));
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = asinh_2265ee();
+  VertexOutput v_1 = tint_symbol;
+  return v_1;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_2 = vertex_main_inner();
+  VertexOutput v_3 = v_2;
+  VertexOutput v_4 = v_2;
+  vertex_main_outputs v_5 = {v_4.prevent_dce, v_3.pos};
+  return v_5;
+}
+
diff --git a/test/tint/builtins/gen/var/asinh/2265ee.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/asinh/2265ee.wgsl.expected.ir.fxc.hlsl
index 9cff948..2003a1d 100644
--- a/test/tint/builtins/gen/var/asinh/2265ee.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/asinh/2265ee.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,44 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  float3 prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: asinh
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation float3 VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+float3 asinh_2265ee() {
+  float3 arg_0 = (1.0f).xxx;
+  float3 v = arg_0;
+  float3 res = log((v + sqrt(((v * v) + (1.0f).xxx))));
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store3(0u, asuint(asinh_2265ee()));
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store3(0u, asuint(asinh_2265ee()));
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = asinh_2265ee();
+  VertexOutput v_1 = tint_symbol;
+  return v_1;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_2 = vertex_main_inner();
+  VertexOutput v_3 = v_2;
+  VertexOutput v_4 = v_2;
+  vertex_main_outputs v_5 = {v_4.prevent_dce, v_3.pos};
+  return v_5;
+}
+
diff --git a/test/tint/builtins/gen/var/asinh/468a48.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/asinh/468a48.wgsl.expected.ir.dxc.hlsl
index 9cff948..786ece7 100644
--- a/test/tint/builtins/gen/var/asinh/468a48.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/asinh/468a48.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,44 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  float16_t prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: asinh
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation float16_t VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+float16_t asinh_468a48() {
+  float16_t arg_0 = float16_t(1.0h);
+  float16_t v = arg_0;
+  float16_t res = log((v + sqrt(((v * v) + float16_t(1.0h)))));
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store<float16_t>(0u, asinh_468a48());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store<float16_t>(0u, asinh_468a48());
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = asinh_468a48();
+  VertexOutput v_1 = tint_symbol;
+  return v_1;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_2 = vertex_main_inner();
+  VertexOutput v_3 = v_2;
+  VertexOutput v_4 = v_2;
+  vertex_main_outputs v_5 = {v_4.prevent_dce, v_3.pos};
+  return v_5;
+}
+
diff --git a/test/tint/builtins/gen/var/asinh/468a48.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/asinh/468a48.wgsl.expected.ir.fxc.hlsl
index 9cff948..f5f610c 100644
--- a/test/tint/builtins/gen/var/asinh/468a48.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/asinh/468a48.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,49 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: asinh
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct VertexOutput {
+  float4 pos;
+  float16_t prevent_dce;
+};
+
+struct vertex_main_outputs {
+  nointerpolation float16_t VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+float16_t asinh_468a48() {
+  float16_t arg_0 = float16_t(1.0h);
+  float16_t v = arg_0;
+  float16_t res = log((v + sqrt(((v * v) + float16_t(1.0h)))));
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store<float16_t>(0u, asinh_468a48());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store<float16_t>(0u, asinh_468a48());
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = asinh_468a48();
+  VertexOutput v_1 = tint_symbol;
+  return v_1;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_2 = vertex_main_inner();
+  VertexOutput v_3 = v_2;
+  VertexOutput v_4 = v_2;
+  vertex_main_outputs v_5 = {v_4.prevent_dce, v_3.pos};
+  return v_5;
+}
+
+FXC validation failure:
+c:\src\dawn\Shader@0x000002975A230440(3,3-11): error X3000: unrecognized identifier 'float16_t'
+
diff --git a/test/tint/builtins/gen/var/asinh/4a2226.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/asinh/4a2226.wgsl.expected.ir.dxc.hlsl
index 9cff948..a743439 100644
--- a/test/tint/builtins/gen/var/asinh/4a2226.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/asinh/4a2226.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,44 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  float2 prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: asinh
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation float2 VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+float2 asinh_4a2226() {
+  float2 arg_0 = (1.0f).xx;
+  float2 v = arg_0;
+  float2 res = log((v + sqrt(((v * v) + (1.0f).xx))));
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store2(0u, asuint(asinh_4a2226()));
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store2(0u, asuint(asinh_4a2226()));
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = asinh_4a2226();
+  VertexOutput v_1 = tint_symbol;
+  return v_1;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_2 = vertex_main_inner();
+  VertexOutput v_3 = v_2;
+  VertexOutput v_4 = v_2;
+  vertex_main_outputs v_5 = {v_4.prevent_dce, v_3.pos};
+  return v_5;
+}
+
diff --git a/test/tint/builtins/gen/var/asinh/4a2226.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/asinh/4a2226.wgsl.expected.ir.fxc.hlsl
index 9cff948..a743439 100644
--- a/test/tint/builtins/gen/var/asinh/4a2226.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/asinh/4a2226.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,44 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  float2 prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: asinh
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation float2 VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+float2 asinh_4a2226() {
+  float2 arg_0 = (1.0f).xx;
+  float2 v = arg_0;
+  float2 res = log((v + sqrt(((v * v) + (1.0f).xx))));
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store2(0u, asuint(asinh_4a2226()));
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store2(0u, asuint(asinh_4a2226()));
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = asinh_4a2226();
+  VertexOutput v_1 = tint_symbol;
+  return v_1;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_2 = vertex_main_inner();
+  VertexOutput v_3 = v_2;
+  VertexOutput v_4 = v_2;
+  vertex_main_outputs v_5 = {v_4.prevent_dce, v_3.pos};
+  return v_5;
+}
+
diff --git a/test/tint/builtins/gen/var/asinh/51079e.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/asinh/51079e.wgsl.expected.ir.dxc.hlsl
index 0ba40c6..c68e00d 100644
--- a/test/tint/builtins/gen/var/asinh/51079e.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/asinh/51079e.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,36 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+void asinh_51079e() {
+  float3 res = (0.88137358427047729492f).xxx;
+}
+
+void fragment_main() {
+  asinh_51079e();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  asinh_51079e();
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  asinh_51079e();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  vertex_main_outputs v_2 = {v_1.pos};
+  return v_2;
+}
+
diff --git a/test/tint/builtins/gen/var/asinh/51079e.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/asinh/51079e.wgsl.expected.ir.fxc.hlsl
index 0ba40c6..c68e00d 100644
--- a/test/tint/builtins/gen/var/asinh/51079e.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/asinh/51079e.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,36 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+void asinh_51079e() {
+  float3 res = (0.88137358427047729492f).xxx;
+}
+
+void fragment_main() {
+  asinh_51079e();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  asinh_51079e();
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  asinh_51079e();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  vertex_main_outputs v_2 = {v_1.pos};
+  return v_2;
+}
+
diff --git a/test/tint/builtins/gen/var/asinh/8d2e51.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/asinh/8d2e51.wgsl.expected.ir.dxc.hlsl
index 9cff948..a4630ac 100644
--- a/test/tint/builtins/gen/var/asinh/8d2e51.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/asinh/8d2e51.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,44 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  float4 prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: asinh
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation float4 VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+float4 asinh_8d2e51() {
+  float4 arg_0 = (1.0f).xxxx;
+  float4 v = arg_0;
+  float4 res = log((v + sqrt(((v * v) + (1.0f).xxxx))));
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store4(0u, asuint(asinh_8d2e51()));
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store4(0u, asuint(asinh_8d2e51()));
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = asinh_8d2e51();
+  VertexOutput v_1 = tint_symbol;
+  return v_1;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_2 = vertex_main_inner();
+  VertexOutput v_3 = v_2;
+  VertexOutput v_4 = v_2;
+  vertex_main_outputs v_5 = {v_4.prevent_dce, v_3.pos};
+  return v_5;
+}
+
diff --git a/test/tint/builtins/gen/var/asinh/8d2e51.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/asinh/8d2e51.wgsl.expected.ir.fxc.hlsl
index 9cff948..a4630ac 100644
--- a/test/tint/builtins/gen/var/asinh/8d2e51.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/asinh/8d2e51.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,44 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  float4 prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: asinh
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation float4 VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+float4 asinh_8d2e51() {
+  float4 arg_0 = (1.0f).xxxx;
+  float4 v = arg_0;
+  float4 res = log((v + sqrt(((v * v) + (1.0f).xxxx))));
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store4(0u, asuint(asinh_8d2e51()));
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store4(0u, asuint(asinh_8d2e51()));
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = asinh_8d2e51();
+  VertexOutput v_1 = tint_symbol;
+  return v_1;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_2 = vertex_main_inner();
+  VertexOutput v_3 = v_2;
+  VertexOutput v_4 = v_2;
+  vertex_main_outputs v_5 = {v_4.prevent_dce, v_3.pos};
+  return v_5;
+}
+
diff --git a/test/tint/builtins/gen/var/asinh/95ab2b.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/asinh/95ab2b.wgsl.expected.ir.dxc.hlsl
index 9cff948..aa947dd 100644
--- a/test/tint/builtins/gen/var/asinh/95ab2b.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/asinh/95ab2b.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,44 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  vector<float16_t, 4> prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: asinh
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation vector<float16_t, 4> VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+vector<float16_t, 4> asinh_95ab2b() {
+  vector<float16_t, 4> arg_0 = (float16_t(1.0h)).xxxx;
+  vector<float16_t, 4> v = arg_0;
+  vector<float16_t, 4> res = log((v + sqrt(((v * v) + (float16_t(1.0h)).xxxx))));
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store<vector<float16_t, 4> >(0u, asinh_95ab2b());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store<vector<float16_t, 4> >(0u, asinh_95ab2b());
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = asinh_95ab2b();
+  VertexOutput v_1 = tint_symbol;
+  return v_1;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_2 = vertex_main_inner();
+  VertexOutput v_3 = v_2;
+  VertexOutput v_4 = v_2;
+  vertex_main_outputs v_5 = {v_4.prevent_dce, v_3.pos};
+  return v_5;
+}
+
diff --git a/test/tint/builtins/gen/var/asinh/95ab2b.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/asinh/95ab2b.wgsl.expected.ir.fxc.hlsl
index 9cff948..884fb89 100644
--- a/test/tint/builtins/gen/var/asinh/95ab2b.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/asinh/95ab2b.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,49 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: asinh
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct VertexOutput {
+  float4 pos;
+  vector<float16_t, 4> prevent_dce;
+};
+
+struct vertex_main_outputs {
+  nointerpolation vector<float16_t, 4> VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+vector<float16_t, 4> asinh_95ab2b() {
+  vector<float16_t, 4> arg_0 = (float16_t(1.0h)).xxxx;
+  vector<float16_t, 4> v = arg_0;
+  vector<float16_t, 4> res = log((v + sqrt(((v * v) + (float16_t(1.0h)).xxxx))));
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store<vector<float16_t, 4> >(0u, asinh_95ab2b());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store<vector<float16_t, 4> >(0u, asinh_95ab2b());
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = asinh_95ab2b();
+  VertexOutput v_1 = tint_symbol;
+  return v_1;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_2 = vertex_main_inner();
+  VertexOutput v_3 = v_2;
+  VertexOutput v_4 = v_2;
+  vertex_main_outputs v_5 = {v_4.prevent_dce, v_3.pos};
+  return v_5;
+}
+
+FXC validation failure:
+c:\src\dawn\Shader@0x000001C810E8F4C0(3,10-18): error X3000: syntax error: unexpected token 'float16_t'
+
diff --git a/test/tint/builtins/gen/var/asinh/ad8f8b.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/asinh/ad8f8b.wgsl.expected.ir.dxc.hlsl
index 9cff948..fa59e50 100644
--- a/test/tint/builtins/gen/var/asinh/ad8f8b.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/asinh/ad8f8b.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,44 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  vector<float16_t, 2> prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: asinh
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation vector<float16_t, 2> VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+vector<float16_t, 2> asinh_ad8f8b() {
+  vector<float16_t, 2> arg_0 = (float16_t(1.0h)).xx;
+  vector<float16_t, 2> v = arg_0;
+  vector<float16_t, 2> res = log((v + sqrt(((v * v) + (float16_t(1.0h)).xx))));
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store<vector<float16_t, 2> >(0u, asinh_ad8f8b());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store<vector<float16_t, 2> >(0u, asinh_ad8f8b());
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = asinh_ad8f8b();
+  VertexOutput v_1 = tint_symbol;
+  return v_1;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_2 = vertex_main_inner();
+  VertexOutput v_3 = v_2;
+  VertexOutput v_4 = v_2;
+  vertex_main_outputs v_5 = {v_4.prevent_dce, v_3.pos};
+  return v_5;
+}
+
diff --git a/test/tint/builtins/gen/var/asinh/ad8f8b.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/asinh/ad8f8b.wgsl.expected.ir.fxc.hlsl
index 9cff948..18c48cb 100644
--- a/test/tint/builtins/gen/var/asinh/ad8f8b.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/asinh/ad8f8b.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,49 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: asinh
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct VertexOutput {
+  float4 pos;
+  vector<float16_t, 2> prevent_dce;
+};
+
+struct vertex_main_outputs {
+  nointerpolation vector<float16_t, 2> VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+vector<float16_t, 2> asinh_ad8f8b() {
+  vector<float16_t, 2> arg_0 = (float16_t(1.0h)).xx;
+  vector<float16_t, 2> v = arg_0;
+  vector<float16_t, 2> res = log((v + sqrt(((v * v) + (float16_t(1.0h)).xx))));
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store<vector<float16_t, 2> >(0u, asinh_ad8f8b());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store<vector<float16_t, 2> >(0u, asinh_ad8f8b());
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = asinh_ad8f8b();
+  VertexOutput v_1 = tint_symbol;
+  return v_1;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_2 = vertex_main_inner();
+  VertexOutput v_3 = v_2;
+  VertexOutput v_4 = v_2;
+  vertex_main_outputs v_5 = {v_4.prevent_dce, v_3.pos};
+  return v_5;
+}
+
+FXC validation failure:
+c:\src\dawn\Shader@0x000001DFB9BECF00(3,10-18): error X3000: syntax error: unexpected token 'float16_t'
+
diff --git a/test/tint/builtins/gen/var/asinh/cf8603.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/asinh/cf8603.wgsl.expected.ir.dxc.hlsl
index 0ba40c6..f84f8e1 100644
--- a/test/tint/builtins/gen/var/asinh/cf8603.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/asinh/cf8603.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,36 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+void asinh_cf8603() {
+  float4 res = (0.88137358427047729492f).xxxx;
+}
+
+void fragment_main() {
+  asinh_cf8603();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  asinh_cf8603();
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  asinh_cf8603();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  vertex_main_outputs v_2 = {v_1.pos};
+  return v_2;
+}
+
diff --git a/test/tint/builtins/gen/var/asinh/cf8603.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/asinh/cf8603.wgsl.expected.ir.fxc.hlsl
index 0ba40c6..f84f8e1 100644
--- a/test/tint/builtins/gen/var/asinh/cf8603.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/asinh/cf8603.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,36 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+void asinh_cf8603() {
+  float4 res = (0.88137358427047729492f).xxxx;
+}
+
+void fragment_main() {
+  asinh_cf8603();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  asinh_cf8603();
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  asinh_cf8603();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  vertex_main_outputs v_2 = {v_1.pos};
+  return v_2;
+}
+
diff --git a/test/tint/builtins/gen/var/asinh/fb5e8c.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/asinh/fb5e8c.wgsl.expected.ir.dxc.hlsl
index 9cff948..dc3b6d2 100644
--- a/test/tint/builtins/gen/var/asinh/fb5e8c.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/asinh/fb5e8c.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,44 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  vector<float16_t, 3> prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: asinh
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation vector<float16_t, 3> VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+vector<float16_t, 3> asinh_fb5e8c() {
+  vector<float16_t, 3> arg_0 = (float16_t(1.0h)).xxx;
+  vector<float16_t, 3> v = arg_0;
+  vector<float16_t, 3> res = log((v + sqrt(((v * v) + (float16_t(1.0h)).xxx))));
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store<vector<float16_t, 3> >(0u, asinh_fb5e8c());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store<vector<float16_t, 3> >(0u, asinh_fb5e8c());
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = asinh_fb5e8c();
+  VertexOutput v_1 = tint_symbol;
+  return v_1;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_2 = vertex_main_inner();
+  VertexOutput v_3 = v_2;
+  VertexOutput v_4 = v_2;
+  vertex_main_outputs v_5 = {v_4.prevent_dce, v_3.pos};
+  return v_5;
+}
+
diff --git a/test/tint/builtins/gen/var/asinh/fb5e8c.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/asinh/fb5e8c.wgsl.expected.ir.fxc.hlsl
index 9cff948..5a81003 100644
--- a/test/tint/builtins/gen/var/asinh/fb5e8c.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/asinh/fb5e8c.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,49 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: asinh
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct VertexOutput {
+  float4 pos;
+  vector<float16_t, 3> prevent_dce;
+};
+
+struct vertex_main_outputs {
+  nointerpolation vector<float16_t, 3> VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+vector<float16_t, 3> asinh_fb5e8c() {
+  vector<float16_t, 3> arg_0 = (float16_t(1.0h)).xxx;
+  vector<float16_t, 3> v = arg_0;
+  vector<float16_t, 3> res = log((v + sqrt(((v * v) + (float16_t(1.0h)).xxx))));
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store<vector<float16_t, 3> >(0u, asinh_fb5e8c());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store<vector<float16_t, 3> >(0u, asinh_fb5e8c());
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = asinh_fb5e8c();
+  VertexOutput v_1 = tint_symbol;
+  return v_1;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_2 = vertex_main_inner();
+  VertexOutput v_3 = v_2;
+  VertexOutput v_4 = v_2;
+  vertex_main_outputs v_5 = {v_4.prevent_dce, v_3.pos};
+  return v_5;
+}
+
+FXC validation failure:
+c:\src\dawn\Shader@0x000001EEF0AE0880(3,10-18): error X3000: syntax error: unexpected token 'float16_t'
+
diff --git a/test/tint/builtins/gen/var/atan/02979a.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/atan/02979a.wgsl.expected.ir.dxc.hlsl
index 0ba40c6..6cb664d 100644
--- a/test/tint/builtins/gen/var/atan/02979a.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/atan/02979a.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,43 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  float prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation float VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+float atan_02979a() {
+  float arg_0 = 1.0f;
+  float res = atan(arg_0);
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store(0u, asuint(atan_02979a()));
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store(0u, asuint(atan_02979a()));
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = atan_02979a();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
diff --git a/test/tint/builtins/gen/var/atan/02979a.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/atan/02979a.wgsl.expected.ir.fxc.hlsl
index 0ba40c6..6cb664d 100644
--- a/test/tint/builtins/gen/var/atan/02979a.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/atan/02979a.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,43 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  float prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation float VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+float atan_02979a() {
+  float arg_0 = 1.0f;
+  float res = atan(arg_0);
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store(0u, asuint(atan_02979a()));
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store(0u, asuint(atan_02979a()));
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = atan_02979a();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
diff --git a/test/tint/builtins/gen/var/atan/19faea.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/atan/19faea.wgsl.expected.ir.dxc.hlsl
index 0ba40c6..8b365bd 100644
--- a/test/tint/builtins/gen/var/atan/19faea.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/atan/19faea.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,43 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  vector<float16_t, 4> prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation vector<float16_t, 4> VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+vector<float16_t, 4> atan_19faea() {
+  vector<float16_t, 4> arg_0 = (float16_t(1.0h)).xxxx;
+  vector<float16_t, 4> res = atan(arg_0);
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store<vector<float16_t, 4> >(0u, atan_19faea());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store<vector<float16_t, 4> >(0u, atan_19faea());
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = atan_19faea();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
diff --git a/test/tint/builtins/gen/var/atan/19faea.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/atan/19faea.wgsl.expected.ir.fxc.hlsl
index 0ba40c6..8008606 100644
--- a/test/tint/builtins/gen/var/atan/19faea.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/atan/19faea.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,48 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct VertexOutput {
+  float4 pos;
+  vector<float16_t, 4> prevent_dce;
+};
+
+struct vertex_main_outputs {
+  nointerpolation vector<float16_t, 4> VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+vector<float16_t, 4> atan_19faea() {
+  vector<float16_t, 4> arg_0 = (float16_t(1.0h)).xxxx;
+  vector<float16_t, 4> res = atan(arg_0);
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store<vector<float16_t, 4> >(0u, atan_19faea());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store<vector<float16_t, 4> >(0u, atan_19faea());
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = atan_19faea();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
+FXC validation failure:
+c:\src\dawn\Shader@0x000002313DA1D2E0(3,10-18): error X3000: syntax error: unexpected token 'float16_t'
+
diff --git a/test/tint/builtins/gen/var/atan/1e1764.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/atan/1e1764.wgsl.expected.ir.dxc.hlsl
index 0ba40c6..3ccc0fa 100644
--- a/test/tint/builtins/gen/var/atan/1e1764.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/atan/1e1764.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,43 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  vector<float16_t, 2> prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation vector<float16_t, 2> VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+vector<float16_t, 2> atan_1e1764() {
+  vector<float16_t, 2> arg_0 = (float16_t(1.0h)).xx;
+  vector<float16_t, 2> res = atan(arg_0);
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store<vector<float16_t, 2> >(0u, atan_1e1764());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store<vector<float16_t, 2> >(0u, atan_1e1764());
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = atan_1e1764();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
diff --git a/test/tint/builtins/gen/var/atan/1e1764.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/atan/1e1764.wgsl.expected.ir.fxc.hlsl
index 0ba40c6..1e0cbd0 100644
--- a/test/tint/builtins/gen/var/atan/1e1764.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/atan/1e1764.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,48 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct VertexOutput {
+  float4 pos;
+  vector<float16_t, 2> prevent_dce;
+};
+
+struct vertex_main_outputs {
+  nointerpolation vector<float16_t, 2> VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+vector<float16_t, 2> atan_1e1764() {
+  vector<float16_t, 2> arg_0 = (float16_t(1.0h)).xx;
+  vector<float16_t, 2> res = atan(arg_0);
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store<vector<float16_t, 2> >(0u, atan_1e1764());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store<vector<float16_t, 2> >(0u, atan_1e1764());
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = atan_1e1764();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
+FXC validation failure:
+c:\src\dawn\Shader@0x000001C554643D70(3,10-18): error X3000: syntax error: unexpected token 'float16_t'
+
diff --git a/test/tint/builtins/gen/var/atan/331e6d.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/atan/331e6d.wgsl.expected.ir.dxc.hlsl
index 0ba40c6..4b85792 100644
--- a/test/tint/builtins/gen/var/atan/331e6d.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/atan/331e6d.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,43 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  float3 prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation float3 VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+float3 atan_331e6d() {
+  float3 arg_0 = (1.0f).xxx;
+  float3 res = atan(arg_0);
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store3(0u, asuint(atan_331e6d()));
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store3(0u, asuint(atan_331e6d()));
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = atan_331e6d();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
diff --git a/test/tint/builtins/gen/var/atan/331e6d.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/atan/331e6d.wgsl.expected.ir.fxc.hlsl
index 0ba40c6..4b85792 100644
--- a/test/tint/builtins/gen/var/atan/331e6d.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/atan/331e6d.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,43 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  float3 prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation float3 VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+float3 atan_331e6d() {
+  float3 arg_0 = (1.0f).xxx;
+  float3 res = atan(arg_0);
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store3(0u, asuint(atan_331e6d()));
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store3(0u, asuint(atan_331e6d()));
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = atan_331e6d();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
diff --git a/test/tint/builtins/gen/var/atan/5ca7b8.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/atan/5ca7b8.wgsl.expected.ir.dxc.hlsl
index 0ba40c6..e517c0e 100644
--- a/test/tint/builtins/gen/var/atan/5ca7b8.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/atan/5ca7b8.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,36 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+void atan_5ca7b8() {
+  float2 res = (0.78539818525314331055f).xx;
+}
+
+void fragment_main() {
+  atan_5ca7b8();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  atan_5ca7b8();
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  atan_5ca7b8();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  vertex_main_outputs v_2 = {v_1.pos};
+  return v_2;
+}
+
diff --git a/test/tint/builtins/gen/var/atan/5ca7b8.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/atan/5ca7b8.wgsl.expected.ir.fxc.hlsl
index 0ba40c6..e517c0e 100644
--- a/test/tint/builtins/gen/var/atan/5ca7b8.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/atan/5ca7b8.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,36 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+void atan_5ca7b8() {
+  float2 res = (0.78539818525314331055f).xx;
+}
+
+void fragment_main() {
+  atan_5ca7b8();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  atan_5ca7b8();
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  atan_5ca7b8();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  vertex_main_outputs v_2 = {v_1.pos};
+  return v_2;
+}
+
diff --git a/test/tint/builtins/gen/var/atan/749e1b.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/atan/749e1b.wgsl.expected.ir.dxc.hlsl
index 0ba40c6..ba07f2c 100644
--- a/test/tint/builtins/gen/var/atan/749e1b.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/atan/749e1b.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,36 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+void atan_749e1b() {
+  float3 res = (0.78539818525314331055f).xxx;
+}
+
+void fragment_main() {
+  atan_749e1b();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  atan_749e1b();
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  atan_749e1b();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  vertex_main_outputs v_2 = {v_1.pos};
+  return v_2;
+}
+
diff --git a/test/tint/builtins/gen/var/atan/749e1b.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/atan/749e1b.wgsl.expected.ir.fxc.hlsl
index 0ba40c6..ba07f2c 100644
--- a/test/tint/builtins/gen/var/atan/749e1b.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/atan/749e1b.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,36 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+void atan_749e1b() {
+  float3 res = (0.78539818525314331055f).xxx;
+}
+
+void fragment_main() {
+  atan_749e1b();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  atan_749e1b();
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  atan_749e1b();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  vertex_main_outputs v_2 = {v_1.pos};
+  return v_2;
+}
+
diff --git a/test/tint/builtins/gen/var/atan/7a2a75.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/atan/7a2a75.wgsl.expected.ir.dxc.hlsl
index 0ba40c6..2db59a7 100644
--- a/test/tint/builtins/gen/var/atan/7a2a75.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/atan/7a2a75.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,36 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+void atan_7a2a75() {
+  float res = 0.78539818525314331055f;
+}
+
+void fragment_main() {
+  atan_7a2a75();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  atan_7a2a75();
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  atan_7a2a75();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  vertex_main_outputs v_2 = {v_1.pos};
+  return v_2;
+}
+
diff --git a/test/tint/builtins/gen/var/atan/7a2a75.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/atan/7a2a75.wgsl.expected.ir.fxc.hlsl
index 0ba40c6..2db59a7 100644
--- a/test/tint/builtins/gen/var/atan/7a2a75.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/atan/7a2a75.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,36 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+void atan_7a2a75() {
+  float res = 0.78539818525314331055f;
+}
+
+void fragment_main() {
+  atan_7a2a75();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  atan_7a2a75();
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  atan_7a2a75();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  vertex_main_outputs v_2 = {v_1.pos};
+  return v_2;
+}
+
diff --git a/test/tint/builtins/gen/var/atan/a5f421.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/atan/a5f421.wgsl.expected.ir.dxc.hlsl
index 0ba40c6..09d32e6 100644
--- a/test/tint/builtins/gen/var/atan/a5f421.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/atan/a5f421.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,43 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  vector<float16_t, 3> prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation vector<float16_t, 3> VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+vector<float16_t, 3> atan_a5f421() {
+  vector<float16_t, 3> arg_0 = (float16_t(1.0h)).xxx;
+  vector<float16_t, 3> res = atan(arg_0);
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store<vector<float16_t, 3> >(0u, atan_a5f421());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store<vector<float16_t, 3> >(0u, atan_a5f421());
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = atan_a5f421();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
diff --git a/test/tint/builtins/gen/var/atan/a5f421.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/atan/a5f421.wgsl.expected.ir.fxc.hlsl
index 0ba40c6..7584782 100644
--- a/test/tint/builtins/gen/var/atan/a5f421.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/atan/a5f421.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,48 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct VertexOutput {
+  float4 pos;
+  vector<float16_t, 3> prevent_dce;
+};
+
+struct vertex_main_outputs {
+  nointerpolation vector<float16_t, 3> VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+vector<float16_t, 3> atan_a5f421() {
+  vector<float16_t, 3> arg_0 = (float16_t(1.0h)).xxx;
+  vector<float16_t, 3> res = atan(arg_0);
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store<vector<float16_t, 3> >(0u, atan_a5f421());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store<vector<float16_t, 3> >(0u, atan_a5f421());
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = atan_a5f421();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
+FXC validation failure:
+c:\src\dawn\Shader@0x000001C311013310(3,10-18): error X3000: syntax error: unexpected token 'float16_t'
+
diff --git a/test/tint/builtins/gen/var/atan/a7ba61.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/atan/a7ba61.wgsl.expected.ir.dxc.hlsl
index 0ba40c6..1a86c4e 100644
--- a/test/tint/builtins/gen/var/atan/a7ba61.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/atan/a7ba61.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,43 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  float16_t prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation float16_t VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+float16_t atan_a7ba61() {
+  float16_t arg_0 = float16_t(1.0h);
+  float16_t res = atan(arg_0);
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store<float16_t>(0u, atan_a7ba61());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store<float16_t>(0u, atan_a7ba61());
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = atan_a7ba61();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
diff --git a/test/tint/builtins/gen/var/atan/a7ba61.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/atan/a7ba61.wgsl.expected.ir.fxc.hlsl
index 0ba40c6..ab19676 100644
--- a/test/tint/builtins/gen/var/atan/a7ba61.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/atan/a7ba61.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,48 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct VertexOutput {
+  float4 pos;
+  float16_t prevent_dce;
+};
+
+struct vertex_main_outputs {
+  nointerpolation float16_t VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+float16_t atan_a7ba61() {
+  float16_t arg_0 = float16_t(1.0h);
+  float16_t res = atan(arg_0);
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store<float16_t>(0u, atan_a7ba61());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store<float16_t>(0u, atan_a7ba61());
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = atan_a7ba61();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
+FXC validation failure:
+c:\src\dawn\Shader@0x0000021058C409E0(3,3-11): error X3000: unrecognized identifier 'float16_t'
+
diff --git a/test/tint/builtins/gen/var/atan/a8b696.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/atan/a8b696.wgsl.expected.ir.dxc.hlsl
index 0ba40c6..f5ce8c4 100644
--- a/test/tint/builtins/gen/var/atan/a8b696.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/atan/a8b696.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,43 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  float4 prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation float4 VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+float4 atan_a8b696() {
+  float4 arg_0 = (1.0f).xxxx;
+  float4 res = atan(arg_0);
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store4(0u, asuint(atan_a8b696()));
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store4(0u, asuint(atan_a8b696()));
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = atan_a8b696();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
diff --git a/test/tint/builtins/gen/var/atan/a8b696.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/atan/a8b696.wgsl.expected.ir.fxc.hlsl
index 0ba40c6..f5ce8c4 100644
--- a/test/tint/builtins/gen/var/atan/a8b696.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/atan/a8b696.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,43 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  float4 prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation float4 VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+float4 atan_a8b696() {
+  float4 arg_0 = (1.0f).xxxx;
+  float4 res = atan(arg_0);
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store4(0u, asuint(atan_a8b696()));
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store4(0u, asuint(atan_a8b696()));
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = atan_a8b696();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
diff --git a/test/tint/builtins/gen/var/atan/ad96e4.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/atan/ad96e4.wgsl.expected.ir.dxc.hlsl
index 0ba40c6..d6bd73f 100644
--- a/test/tint/builtins/gen/var/atan/ad96e4.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/atan/ad96e4.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,43 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  float2 prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation float2 VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+float2 atan_ad96e4() {
+  float2 arg_0 = (1.0f).xx;
+  float2 res = atan(arg_0);
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store2(0u, asuint(atan_ad96e4()));
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store2(0u, asuint(atan_ad96e4()));
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = atan_ad96e4();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
diff --git a/test/tint/builtins/gen/var/atan/ad96e4.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/atan/ad96e4.wgsl.expected.ir.fxc.hlsl
index 0ba40c6..d6bd73f 100644
--- a/test/tint/builtins/gen/var/atan/ad96e4.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/atan/ad96e4.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,43 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  float2 prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation float2 VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+float2 atan_ad96e4() {
+  float2 arg_0 = (1.0f).xx;
+  float2 res = atan(arg_0);
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store2(0u, asuint(atan_ad96e4()));
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store2(0u, asuint(atan_ad96e4()));
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = atan_ad96e4();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
diff --git a/test/tint/builtins/gen/var/atan/d17fb2.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/atan/d17fb2.wgsl.expected.ir.dxc.hlsl
index 0ba40c6..49867d0 100644
--- a/test/tint/builtins/gen/var/atan/d17fb2.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/atan/d17fb2.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,36 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+void atan_d17fb2() {
+  float4 res = (0.78539818525314331055f).xxxx;
+}
+
+void fragment_main() {
+  atan_d17fb2();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  atan_d17fb2();
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  atan_d17fb2();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  vertex_main_outputs v_2 = {v_1.pos};
+  return v_2;
+}
+
diff --git a/test/tint/builtins/gen/var/atan/d17fb2.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/atan/d17fb2.wgsl.expected.ir.fxc.hlsl
index 0ba40c6..49867d0 100644
--- a/test/tint/builtins/gen/var/atan/d17fb2.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/atan/d17fb2.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,36 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+void atan_d17fb2() {
+  float4 res = (0.78539818525314331055f).xxxx;
+}
+
+void fragment_main() {
+  atan_d17fb2();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  atan_d17fb2();
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  atan_d17fb2();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  vertex_main_outputs v_2 = {v_1.pos};
+  return v_2;
+}
+
diff --git a/test/tint/builtins/gen/var/atan2/034ace.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/atan2/034ace.wgsl.expected.ir.dxc.hlsl
index 0ba40c6..d89ae29 100644
--- a/test/tint/builtins/gen/var/atan2/034ace.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/atan2/034ace.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,36 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+void atan2_034ace() {
+  float res = 0.78539818525314331055f;
+}
+
+void fragment_main() {
+  atan2_034ace();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  atan2_034ace();
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  atan2_034ace();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  vertex_main_outputs v_2 = {v_1.pos};
+  return v_2;
+}
+
diff --git a/test/tint/builtins/gen/var/atan2/034ace.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/atan2/034ace.wgsl.expected.ir.fxc.hlsl
index 0ba40c6..d89ae29 100644
--- a/test/tint/builtins/gen/var/atan2/034ace.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/atan2/034ace.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,36 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+void atan2_034ace() {
+  float res = 0.78539818525314331055f;
+}
+
+void fragment_main() {
+  atan2_034ace();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  atan2_034ace();
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  atan2_034ace();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  vertex_main_outputs v_2 = {v_1.pos};
+  return v_2;
+}
+
diff --git a/test/tint/builtins/gen/var/atan2/21dfea.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/atan2/21dfea.wgsl.expected.ir.dxc.hlsl
index 0ba40c6..1825258 100644
--- a/test/tint/builtins/gen/var/atan2/21dfea.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/atan2/21dfea.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,44 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  vector<float16_t, 3> prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation vector<float16_t, 3> VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+vector<float16_t, 3> atan2_21dfea() {
+  vector<float16_t, 3> arg_0 = (float16_t(1.0h)).xxx;
+  vector<float16_t, 3> arg_1 = (float16_t(1.0h)).xxx;
+  vector<float16_t, 3> res = atan2(arg_0, arg_1);
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store<vector<float16_t, 3> >(0u, atan2_21dfea());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store<vector<float16_t, 3> >(0u, atan2_21dfea());
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = atan2_21dfea();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
diff --git a/test/tint/builtins/gen/var/atan2/21dfea.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/atan2/21dfea.wgsl.expected.ir.fxc.hlsl
index 0ba40c6..2ec8df9 100644
--- a/test/tint/builtins/gen/var/atan2/21dfea.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/atan2/21dfea.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,49 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct VertexOutput {
+  float4 pos;
+  vector<float16_t, 3> prevent_dce;
+};
+
+struct vertex_main_outputs {
+  nointerpolation vector<float16_t, 3> VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+vector<float16_t, 3> atan2_21dfea() {
+  vector<float16_t, 3> arg_0 = (float16_t(1.0h)).xxx;
+  vector<float16_t, 3> arg_1 = (float16_t(1.0h)).xxx;
+  vector<float16_t, 3> res = atan2(arg_0, arg_1);
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store<vector<float16_t, 3> >(0u, atan2_21dfea());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store<vector<float16_t, 3> >(0u, atan2_21dfea());
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = atan2_21dfea();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
+FXC validation failure:
+c:\src\dawn\Shader@0x00000255AADB5420(3,10-18): error X3000: syntax error: unexpected token 'float16_t'
+
diff --git a/test/tint/builtins/gen/var/atan2/3c2865.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/atan2/3c2865.wgsl.expected.ir.dxc.hlsl
index 0ba40c6..836b6b2 100644
--- a/test/tint/builtins/gen/var/atan2/3c2865.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/atan2/3c2865.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,36 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+void atan2_3c2865() {
+  float3 res = (0.78539818525314331055f).xxx;
+}
+
+void fragment_main() {
+  atan2_3c2865();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  atan2_3c2865();
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  atan2_3c2865();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  vertex_main_outputs v_2 = {v_1.pos};
+  return v_2;
+}
+
diff --git a/test/tint/builtins/gen/var/atan2/3c2865.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/atan2/3c2865.wgsl.expected.ir.fxc.hlsl
index 0ba40c6..836b6b2 100644
--- a/test/tint/builtins/gen/var/atan2/3c2865.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/atan2/3c2865.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,36 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+void atan2_3c2865() {
+  float3 res = (0.78539818525314331055f).xxx;
+}
+
+void fragment_main() {
+  atan2_3c2865();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  atan2_3c2865();
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  atan2_3c2865();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  vertex_main_outputs v_2 = {v_1.pos};
+  return v_2;
+}
+
diff --git a/test/tint/builtins/gen/var/atan2/57fb13.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/atan2/57fb13.wgsl.expected.ir.dxc.hlsl
index 0ba40c6..3311511 100644
--- a/test/tint/builtins/gen/var/atan2/57fb13.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/atan2/57fb13.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,44 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  float2 prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation float2 VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+float2 atan2_57fb13() {
+  float2 arg_0 = (1.0f).xx;
+  float2 arg_1 = (1.0f).xx;
+  float2 res = atan2(arg_0, arg_1);
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store2(0u, asuint(atan2_57fb13()));
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store2(0u, asuint(atan2_57fb13()));
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = atan2_57fb13();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
diff --git a/test/tint/builtins/gen/var/atan2/57fb13.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/atan2/57fb13.wgsl.expected.ir.fxc.hlsl
index 0ba40c6..3311511 100644
--- a/test/tint/builtins/gen/var/atan2/57fb13.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/atan2/57fb13.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,44 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  float2 prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation float2 VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+float2 atan2_57fb13() {
+  float2 arg_0 = (1.0f).xx;
+  float2 arg_1 = (1.0f).xx;
+  float2 res = atan2(arg_0, arg_1);
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store2(0u, asuint(atan2_57fb13()));
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store2(0u, asuint(atan2_57fb13()));
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = atan2_57fb13();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
diff --git a/test/tint/builtins/gen/var/atan2/93febc.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/atan2/93febc.wgsl.expected.ir.dxc.hlsl
index 0ba40c6..e67138b 100644
--- a/test/tint/builtins/gen/var/atan2/93febc.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/atan2/93febc.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,44 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  vector<float16_t, 2> prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation vector<float16_t, 2> VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+vector<float16_t, 2> atan2_93febc() {
+  vector<float16_t, 2> arg_0 = (float16_t(1.0h)).xx;
+  vector<float16_t, 2> arg_1 = (float16_t(1.0h)).xx;
+  vector<float16_t, 2> res = atan2(arg_0, arg_1);
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store<vector<float16_t, 2> >(0u, atan2_93febc());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store<vector<float16_t, 2> >(0u, atan2_93febc());
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = atan2_93febc();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
diff --git a/test/tint/builtins/gen/var/atan2/93febc.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/atan2/93febc.wgsl.expected.ir.fxc.hlsl
index 0ba40c6..1de564d 100644
--- a/test/tint/builtins/gen/var/atan2/93febc.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/atan2/93febc.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,49 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct VertexOutput {
+  float4 pos;
+  vector<float16_t, 2> prevent_dce;
+};
+
+struct vertex_main_outputs {
+  nointerpolation vector<float16_t, 2> VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+vector<float16_t, 2> atan2_93febc() {
+  vector<float16_t, 2> arg_0 = (float16_t(1.0h)).xx;
+  vector<float16_t, 2> arg_1 = (float16_t(1.0h)).xx;
+  vector<float16_t, 2> res = atan2(arg_0, arg_1);
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store<vector<float16_t, 2> >(0u, atan2_93febc());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store<vector<float16_t, 2> >(0u, atan2_93febc());
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = atan2_93febc();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
+FXC validation failure:
+c:\src\dawn\Shader@0x000002366789DB60(3,10-18): error X3000: syntax error: unexpected token 'float16_t'
+
diff --git a/test/tint/builtins/gen/var/atan2/96057c.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/atan2/96057c.wgsl.expected.ir.dxc.hlsl
index 0ba40c6..8fbc2fc 100644
--- a/test/tint/builtins/gen/var/atan2/96057c.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/atan2/96057c.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,44 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  float prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation float VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+float atan2_96057c() {
+  float arg_0 = 1.0f;
+  float arg_1 = 1.0f;
+  float res = atan2(arg_0, arg_1);
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store(0u, asuint(atan2_96057c()));
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store(0u, asuint(atan2_96057c()));
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = atan2_96057c();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
diff --git a/test/tint/builtins/gen/var/atan2/96057c.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/atan2/96057c.wgsl.expected.ir.fxc.hlsl
index 0ba40c6..8fbc2fc 100644
--- a/test/tint/builtins/gen/var/atan2/96057c.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/atan2/96057c.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,44 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  float prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation float VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+float atan2_96057c() {
+  float arg_0 = 1.0f;
+  float arg_1 = 1.0f;
+  float res = atan2(arg_0, arg_1);
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store(0u, asuint(atan2_96057c()));
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store(0u, asuint(atan2_96057c()));
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = atan2_96057c();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
diff --git a/test/tint/builtins/gen/var/atan2/a70d0d.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/atan2/a70d0d.wgsl.expected.ir.dxc.hlsl
index 0ba40c6..61022cd 100644
--- a/test/tint/builtins/gen/var/atan2/a70d0d.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/atan2/a70d0d.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,44 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  float3 prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation float3 VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+float3 atan2_a70d0d() {
+  float3 arg_0 = (1.0f).xxx;
+  float3 arg_1 = (1.0f).xxx;
+  float3 res = atan2(arg_0, arg_1);
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store3(0u, asuint(atan2_a70d0d()));
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store3(0u, asuint(atan2_a70d0d()));
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = atan2_a70d0d();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
diff --git a/test/tint/builtins/gen/var/atan2/a70d0d.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/atan2/a70d0d.wgsl.expected.ir.fxc.hlsl
index 0ba40c6..61022cd 100644
--- a/test/tint/builtins/gen/var/atan2/a70d0d.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/atan2/a70d0d.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,44 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  float3 prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation float3 VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+float3 atan2_a70d0d() {
+  float3 arg_0 = (1.0f).xxx;
+  float3 arg_1 = (1.0f).xxx;
+  float3 res = atan2(arg_0, arg_1);
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store3(0u, asuint(atan2_a70d0d()));
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store3(0u, asuint(atan2_a70d0d()));
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = atan2_a70d0d();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
diff --git a/test/tint/builtins/gen/var/atan2/ae713e.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/atan2/ae713e.wgsl.expected.ir.dxc.hlsl
index 0ba40c6..3565d7f 100644
--- a/test/tint/builtins/gen/var/atan2/ae713e.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/atan2/ae713e.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,44 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  float4 prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation float4 VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+float4 atan2_ae713e() {
+  float4 arg_0 = (1.0f).xxxx;
+  float4 arg_1 = (1.0f).xxxx;
+  float4 res = atan2(arg_0, arg_1);
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store4(0u, asuint(atan2_ae713e()));
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store4(0u, asuint(atan2_ae713e()));
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = atan2_ae713e();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
diff --git a/test/tint/builtins/gen/var/atan2/ae713e.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/atan2/ae713e.wgsl.expected.ir.fxc.hlsl
index 0ba40c6..3565d7f 100644
--- a/test/tint/builtins/gen/var/atan2/ae713e.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/atan2/ae713e.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,44 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  float4 prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation float4 VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+float4 atan2_ae713e() {
+  float4 arg_0 = (1.0f).xxxx;
+  float4 arg_1 = (1.0f).xxxx;
+  float4 res = atan2(arg_0, arg_1);
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store4(0u, asuint(atan2_ae713e()));
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store4(0u, asuint(atan2_ae713e()));
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = atan2_ae713e();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
diff --git a/test/tint/builtins/gen/var/atan2/c19683.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/atan2/c19683.wgsl.expected.ir.dxc.hlsl
index 0ba40c6..3398912 100644
--- a/test/tint/builtins/gen/var/atan2/c19683.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/atan2/c19683.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,36 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+void atan2_c19683() {
+  float2 res = (0.78539818525314331055f).xx;
+}
+
+void fragment_main() {
+  atan2_c19683();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  atan2_c19683();
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  atan2_c19683();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  vertex_main_outputs v_2 = {v_1.pos};
+  return v_2;
+}
+
diff --git a/test/tint/builtins/gen/var/atan2/c19683.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/atan2/c19683.wgsl.expected.ir.fxc.hlsl
index 0ba40c6..3398912 100644
--- a/test/tint/builtins/gen/var/atan2/c19683.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/atan2/c19683.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,36 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+void atan2_c19683() {
+  float2 res = (0.78539818525314331055f).xx;
+}
+
+void fragment_main() {
+  atan2_c19683();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  atan2_c19683();
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  atan2_c19683();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  vertex_main_outputs v_2 = {v_1.pos};
+  return v_2;
+}
+
diff --git a/test/tint/builtins/gen/var/atan2/c4be45.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/atan2/c4be45.wgsl.expected.ir.dxc.hlsl
index 0ba40c6..9500ef0 100644
--- a/test/tint/builtins/gen/var/atan2/c4be45.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/atan2/c4be45.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,36 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+void atan2_c4be45() {
+  float4 res = (0.78539818525314331055f).xxxx;
+}
+
+void fragment_main() {
+  atan2_c4be45();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  atan2_c4be45();
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  atan2_c4be45();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  vertex_main_outputs v_2 = {v_1.pos};
+  return v_2;
+}
+
diff --git a/test/tint/builtins/gen/var/atan2/c4be45.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/atan2/c4be45.wgsl.expected.ir.fxc.hlsl
index 0ba40c6..9500ef0 100644
--- a/test/tint/builtins/gen/var/atan2/c4be45.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/atan2/c4be45.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,36 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+void atan2_c4be45() {
+  float4 res = (0.78539818525314331055f).xxxx;
+}
+
+void fragment_main() {
+  atan2_c4be45();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  atan2_c4be45();
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  atan2_c4be45();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  vertex_main_outputs v_2 = {v_1.pos};
+  return v_2;
+}
+
diff --git a/test/tint/builtins/gen/var/atan2/ca698e.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/atan2/ca698e.wgsl.expected.ir.dxc.hlsl
index 0ba40c6..939e222 100644
--- a/test/tint/builtins/gen/var/atan2/ca698e.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/atan2/ca698e.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,44 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  float16_t prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation float16_t VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+float16_t atan2_ca698e() {
+  float16_t arg_0 = float16_t(1.0h);
+  float16_t arg_1 = float16_t(1.0h);
+  float16_t res = atan2(arg_0, arg_1);
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store<float16_t>(0u, atan2_ca698e());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store<float16_t>(0u, atan2_ca698e());
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = atan2_ca698e();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
diff --git a/test/tint/builtins/gen/var/atan2/ca698e.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/atan2/ca698e.wgsl.expected.ir.fxc.hlsl
index 0ba40c6..90255ff 100644
--- a/test/tint/builtins/gen/var/atan2/ca698e.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/atan2/ca698e.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,49 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct VertexOutput {
+  float4 pos;
+  float16_t prevent_dce;
+};
+
+struct vertex_main_outputs {
+  nointerpolation float16_t VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+float16_t atan2_ca698e() {
+  float16_t arg_0 = float16_t(1.0h);
+  float16_t arg_1 = float16_t(1.0h);
+  float16_t res = atan2(arg_0, arg_1);
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store<float16_t>(0u, atan2_ca698e());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store<float16_t>(0u, atan2_ca698e());
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = atan2_ca698e();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
+FXC validation failure:
+c:\src\dawn\Shader@0x0000021BD0E16B70(3,3-11): error X3000: unrecognized identifier 'float16_t'
+
diff --git a/test/tint/builtins/gen/var/atan2/d983ab.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/atan2/d983ab.wgsl.expected.ir.dxc.hlsl
index 0ba40c6..d279966 100644
--- a/test/tint/builtins/gen/var/atan2/d983ab.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/atan2/d983ab.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,44 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  vector<float16_t, 4> prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation vector<float16_t, 4> VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+vector<float16_t, 4> atan2_d983ab() {
+  vector<float16_t, 4> arg_0 = (float16_t(1.0h)).xxxx;
+  vector<float16_t, 4> arg_1 = (float16_t(1.0h)).xxxx;
+  vector<float16_t, 4> res = atan2(arg_0, arg_1);
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store<vector<float16_t, 4> >(0u, atan2_d983ab());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store<vector<float16_t, 4> >(0u, atan2_d983ab());
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = atan2_d983ab();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
diff --git a/test/tint/builtins/gen/var/atan2/d983ab.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/atan2/d983ab.wgsl.expected.ir.fxc.hlsl
index 0ba40c6..78282f9 100644
--- a/test/tint/builtins/gen/var/atan2/d983ab.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/atan2/d983ab.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,49 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct VertexOutput {
+  float4 pos;
+  vector<float16_t, 4> prevent_dce;
+};
+
+struct vertex_main_outputs {
+  nointerpolation vector<float16_t, 4> VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+vector<float16_t, 4> atan2_d983ab() {
+  vector<float16_t, 4> arg_0 = (float16_t(1.0h)).xxxx;
+  vector<float16_t, 4> arg_1 = (float16_t(1.0h)).xxxx;
+  vector<float16_t, 4> res = atan2(arg_0, arg_1);
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store<vector<float16_t, 4> >(0u, atan2_d983ab());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store<vector<float16_t, 4> >(0u, atan2_d983ab());
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = atan2_d983ab();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
+FXC validation failure:
+c:\src\dawn\Shader@0x000002534807C740(3,10-18): error X3000: syntax error: unexpected token 'float16_t'
+
diff --git a/test/tint/builtins/gen/var/atanh/440cca.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/atanh/440cca.wgsl.expected.ir.dxc.hlsl
index b4570ed..d2f0d31 100644
--- a/test/tint/builtins/gen/var/atanh/440cca.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/atanh/440cca.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,44 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  float3 prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: atanh
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation float3 VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+float3 atanh_440cca() {
+  float3 arg_0 = (0.5f).xxx;
+  float3 v = arg_0;
+  float3 res = (log((((1.0f).xxx + v) / ((1.0f).xxx - v))) * (0.5f).xxx);
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store3(0u, asuint(atanh_440cca()));
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store3(0u, asuint(atanh_440cca()));
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = atanh_440cca();
+  VertexOutput v_1 = tint_symbol;
+  return v_1;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_2 = vertex_main_inner();
+  VertexOutput v_3 = v_2;
+  VertexOutput v_4 = v_2;
+  vertex_main_outputs v_5 = {v_4.prevent_dce, v_3.pos};
+  return v_5;
+}
+
diff --git a/test/tint/builtins/gen/var/atanh/440cca.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/atanh/440cca.wgsl.expected.ir.fxc.hlsl
index b4570ed..d2f0d31 100644
--- a/test/tint/builtins/gen/var/atanh/440cca.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/atanh/440cca.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,44 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  float3 prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: atanh
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation float3 VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+float3 atanh_440cca() {
+  float3 arg_0 = (0.5f).xxx;
+  float3 v = arg_0;
+  float3 res = (log((((1.0f).xxx + v) / ((1.0f).xxx - v))) * (0.5f).xxx);
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store3(0u, asuint(atanh_440cca()));
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store3(0u, asuint(atanh_440cca()));
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = atanh_440cca();
+  VertexOutput v_1 = tint_symbol;
+  return v_1;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_2 = vertex_main_inner();
+  VertexOutput v_3 = v_2;
+  VertexOutput v_4 = v_2;
+  vertex_main_outputs v_5 = {v_4.prevent_dce, v_3.pos};
+  return v_5;
+}
+
diff --git a/test/tint/builtins/gen/var/atanh/5bf88d.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/atanh/5bf88d.wgsl.expected.ir.dxc.hlsl
index b4570ed..1b3c674 100644
--- a/test/tint/builtins/gen/var/atanh/5bf88d.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/atanh/5bf88d.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,44 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  vector<float16_t, 2> prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: atanh
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation vector<float16_t, 2> VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+vector<float16_t, 2> atanh_5bf88d() {
+  vector<float16_t, 2> arg_0 = (float16_t(0.5h)).xx;
+  vector<float16_t, 2> v = arg_0;
+  vector<float16_t, 2> res = (log((((float16_t(1.0h)).xx + v) / ((float16_t(1.0h)).xx - v))) * (float16_t(0.5h)).xx);
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store<vector<float16_t, 2> >(0u, atanh_5bf88d());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store<vector<float16_t, 2> >(0u, atanh_5bf88d());
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = atanh_5bf88d();
+  VertexOutput v_1 = tint_symbol;
+  return v_1;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_2 = vertex_main_inner();
+  VertexOutput v_3 = v_2;
+  VertexOutput v_4 = v_2;
+  vertex_main_outputs v_5 = {v_4.prevent_dce, v_3.pos};
+  return v_5;
+}
+
diff --git a/test/tint/builtins/gen/var/atanh/5bf88d.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/atanh/5bf88d.wgsl.expected.ir.fxc.hlsl
index b4570ed..cfbeaa2 100644
--- a/test/tint/builtins/gen/var/atanh/5bf88d.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/atanh/5bf88d.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,49 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: atanh
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct VertexOutput {
+  float4 pos;
+  vector<float16_t, 2> prevent_dce;
+};
+
+struct vertex_main_outputs {
+  nointerpolation vector<float16_t, 2> VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+vector<float16_t, 2> atanh_5bf88d() {
+  vector<float16_t, 2> arg_0 = (float16_t(0.5h)).xx;
+  vector<float16_t, 2> v = arg_0;
+  vector<float16_t, 2> res = (log((((float16_t(1.0h)).xx + v) / ((float16_t(1.0h)).xx - v))) * (float16_t(0.5h)).xx);
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store<vector<float16_t, 2> >(0u, atanh_5bf88d());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store<vector<float16_t, 2> >(0u, atanh_5bf88d());
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = atanh_5bf88d();
+  VertexOutput v_1 = tint_symbol;
+  return v_1;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_2 = vertex_main_inner();
+  VertexOutput v_3 = v_2;
+  VertexOutput v_4 = v_2;
+  vertex_main_outputs v_5 = {v_4.prevent_dce, v_3.pos};
+  return v_5;
+}
+
+FXC validation failure:
+c:\src\dawn\Shader@0x0000015297C4F5E0(3,10-18): error X3000: syntax error: unexpected token 'float16_t'
+
diff --git a/test/tint/builtins/gen/var/atanh/70d5bd.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/atanh/70d5bd.wgsl.expected.ir.dxc.hlsl
index 0ba40c6..28766a6 100644
--- a/test/tint/builtins/gen/var/atanh/70d5bd.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/atanh/70d5bd.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,36 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+void atanh_70d5bd() {
+  float2 res = (0.54930615425109863281f).xx;
+}
+
+void fragment_main() {
+  atanh_70d5bd();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  atanh_70d5bd();
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  atanh_70d5bd();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  vertex_main_outputs v_2 = {v_1.pos};
+  return v_2;
+}
+
diff --git a/test/tint/builtins/gen/var/atanh/70d5bd.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/atanh/70d5bd.wgsl.expected.ir.fxc.hlsl
index 0ba40c6..28766a6 100644
--- a/test/tint/builtins/gen/var/atanh/70d5bd.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/atanh/70d5bd.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,36 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+void atanh_70d5bd() {
+  float2 res = (0.54930615425109863281f).xx;
+}
+
+void fragment_main() {
+  atanh_70d5bd();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  atanh_70d5bd();
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  atanh_70d5bd();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  vertex_main_outputs v_2 = {v_1.pos};
+  return v_2;
+}
+
diff --git a/test/tint/builtins/gen/var/atanh/7997d8.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/atanh/7997d8.wgsl.expected.ir.dxc.hlsl
index b4570ed..7204e97 100644
--- a/test/tint/builtins/gen/var/atanh/7997d8.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/atanh/7997d8.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,44 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  float prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: atanh
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation float VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+float atanh_7997d8() {
+  float arg_0 = 0.5f;
+  float v = arg_0;
+  float res = (log(((1.0f + v) / (1.0f - v))) * 0.5f);
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store(0u, asuint(atanh_7997d8()));
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store(0u, asuint(atanh_7997d8()));
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = atanh_7997d8();
+  VertexOutput v_1 = tint_symbol;
+  return v_1;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_2 = vertex_main_inner();
+  VertexOutput v_3 = v_2;
+  VertexOutput v_4 = v_2;
+  vertex_main_outputs v_5 = {v_4.prevent_dce, v_3.pos};
+  return v_5;
+}
+
diff --git a/test/tint/builtins/gen/var/atanh/7997d8.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/atanh/7997d8.wgsl.expected.ir.fxc.hlsl
index b4570ed..7204e97 100644
--- a/test/tint/builtins/gen/var/atanh/7997d8.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/atanh/7997d8.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,44 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  float prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: atanh
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation float VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+float atanh_7997d8() {
+  float arg_0 = 0.5f;
+  float v = arg_0;
+  float res = (log(((1.0f + v) / (1.0f - v))) * 0.5f);
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store(0u, asuint(atanh_7997d8()));
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store(0u, asuint(atanh_7997d8()));
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = atanh_7997d8();
+  VertexOutput v_1 = tint_symbol;
+  return v_1;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_2 = vertex_main_inner();
+  VertexOutput v_3 = v_2;
+  VertexOutput v_4 = v_2;
+  vertex_main_outputs v_5 = {v_4.prevent_dce, v_3.pos};
+  return v_5;
+}
+
diff --git a/test/tint/builtins/gen/var/atanh/7f2874.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/atanh/7f2874.wgsl.expected.ir.dxc.hlsl
index 0ba40c6..dcd788d 100644
--- a/test/tint/builtins/gen/var/atanh/7f2874.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/atanh/7f2874.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,36 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+void atanh_7f2874() {
+  float3 res = (0.54930615425109863281f).xxx;
+}
+
+void fragment_main() {
+  atanh_7f2874();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  atanh_7f2874();
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  atanh_7f2874();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  vertex_main_outputs v_2 = {v_1.pos};
+  return v_2;
+}
+
diff --git a/test/tint/builtins/gen/var/atanh/7f2874.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/atanh/7f2874.wgsl.expected.ir.fxc.hlsl
index 0ba40c6..dcd788d 100644
--- a/test/tint/builtins/gen/var/atanh/7f2874.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/atanh/7f2874.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,36 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+void atanh_7f2874() {
+  float3 res = (0.54930615425109863281f).xxx;
+}
+
+void fragment_main() {
+  atanh_7f2874();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  atanh_7f2874();
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  atanh_7f2874();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  vertex_main_outputs v_2 = {v_1.pos};
+  return v_2;
+}
+
diff --git a/test/tint/builtins/gen/var/atanh/c0e634.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/atanh/c0e634.wgsl.expected.ir.dxc.hlsl
index b4570ed..0986349 100644
--- a/test/tint/builtins/gen/var/atanh/c0e634.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/atanh/c0e634.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,44 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  float2 prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: atanh
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation float2 VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+float2 atanh_c0e634() {
+  float2 arg_0 = (0.5f).xx;
+  float2 v = arg_0;
+  float2 res = (log((((1.0f).xx + v) / ((1.0f).xx - v))) * (0.5f).xx);
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store2(0u, asuint(atanh_c0e634()));
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store2(0u, asuint(atanh_c0e634()));
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = atanh_c0e634();
+  VertexOutput v_1 = tint_symbol;
+  return v_1;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_2 = vertex_main_inner();
+  VertexOutput v_3 = v_2;
+  VertexOutput v_4 = v_2;
+  vertex_main_outputs v_5 = {v_4.prevent_dce, v_3.pos};
+  return v_5;
+}
+
diff --git a/test/tint/builtins/gen/var/atanh/c0e634.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/atanh/c0e634.wgsl.expected.ir.fxc.hlsl
index b4570ed..0986349 100644
--- a/test/tint/builtins/gen/var/atanh/c0e634.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/atanh/c0e634.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,44 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  float2 prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: atanh
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation float2 VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+float2 atanh_c0e634() {
+  float2 arg_0 = (0.5f).xx;
+  float2 v = arg_0;
+  float2 res = (log((((1.0f).xx + v) / ((1.0f).xx - v))) * (0.5f).xx);
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store2(0u, asuint(atanh_c0e634()));
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store2(0u, asuint(atanh_c0e634()));
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = atanh_c0e634();
+  VertexOutput v_1 = tint_symbol;
+  return v_1;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_2 = vertex_main_inner();
+  VertexOutput v_3 = v_2;
+  VertexOutput v_4 = v_2;
+  vertex_main_outputs v_5 = {v_4.prevent_dce, v_3.pos};
+  return v_5;
+}
+
diff --git a/test/tint/builtins/gen/var/atanh/c5dc32.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/atanh/c5dc32.wgsl.expected.ir.dxc.hlsl
index 0ba40c6..72434d6e 100644
--- a/test/tint/builtins/gen/var/atanh/c5dc32.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/atanh/c5dc32.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,36 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+void atanh_c5dc32() {
+  float res = 0.54930615425109863281f;
+}
+
+void fragment_main() {
+  atanh_c5dc32();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  atanh_c5dc32();
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  atanh_c5dc32();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  vertex_main_outputs v_2 = {v_1.pos};
+  return v_2;
+}
+
diff --git a/test/tint/builtins/gen/var/atanh/c5dc32.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/atanh/c5dc32.wgsl.expected.ir.fxc.hlsl
index 0ba40c6..72434d6e 100644
--- a/test/tint/builtins/gen/var/atanh/c5dc32.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/atanh/c5dc32.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,36 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+void atanh_c5dc32() {
+  float res = 0.54930615425109863281f;
+}
+
+void fragment_main() {
+  atanh_c5dc32();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  atanh_c5dc32();
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  atanh_c5dc32();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  vertex_main_outputs v_2 = {v_1.pos};
+  return v_2;
+}
+
diff --git a/test/tint/builtins/gen/var/atanh/d2d8cd.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/atanh/d2d8cd.wgsl.expected.ir.dxc.hlsl
index b4570ed..cd5332f 100644
--- a/test/tint/builtins/gen/var/atanh/d2d8cd.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/atanh/d2d8cd.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,44 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  float16_t prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: atanh
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation float16_t VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+float16_t atanh_d2d8cd() {
+  float16_t arg_0 = float16_t(0.5h);
+  float16_t v = arg_0;
+  float16_t res = (log(((float16_t(1.0h) + v) / (float16_t(1.0h) - v))) * float16_t(0.5h));
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store<float16_t>(0u, atanh_d2d8cd());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store<float16_t>(0u, atanh_d2d8cd());
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = atanh_d2d8cd();
+  VertexOutput v_1 = tint_symbol;
+  return v_1;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_2 = vertex_main_inner();
+  VertexOutput v_3 = v_2;
+  VertexOutput v_4 = v_2;
+  vertex_main_outputs v_5 = {v_4.prevent_dce, v_3.pos};
+  return v_5;
+}
+
diff --git a/test/tint/builtins/gen/var/atanh/d2d8cd.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/atanh/d2d8cd.wgsl.expected.ir.fxc.hlsl
index b4570ed..e21eb41 100644
--- a/test/tint/builtins/gen/var/atanh/d2d8cd.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/atanh/d2d8cd.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,49 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: atanh
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct VertexOutput {
+  float4 pos;
+  float16_t prevent_dce;
+};
+
+struct vertex_main_outputs {
+  nointerpolation float16_t VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+float16_t atanh_d2d8cd() {
+  float16_t arg_0 = float16_t(0.5h);
+  float16_t v = arg_0;
+  float16_t res = (log(((float16_t(1.0h) + v) / (float16_t(1.0h) - v))) * float16_t(0.5h));
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store<float16_t>(0u, atanh_d2d8cd());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store<float16_t>(0u, atanh_d2d8cd());
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = atanh_d2d8cd();
+  VertexOutput v_1 = tint_symbol;
+  return v_1;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_2 = vertex_main_inner();
+  VertexOutput v_3 = v_2;
+  VertexOutput v_4 = v_2;
+  vertex_main_outputs v_5 = {v_4.prevent_dce, v_3.pos};
+  return v_5;
+}
+
+FXC validation failure:
+c:\src\dawn\Shader@0x0000018910D088A0(3,3-11): error X3000: unrecognized identifier 'float16_t'
+
diff --git a/test/tint/builtins/gen/var/atanh/e3b450.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/atanh/e3b450.wgsl.expected.ir.dxc.hlsl
index b4570ed..77218a2 100644
--- a/test/tint/builtins/gen/var/atanh/e3b450.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/atanh/e3b450.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,44 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  vector<float16_t, 4> prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: atanh
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation vector<float16_t, 4> VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+vector<float16_t, 4> atanh_e3b450() {
+  vector<float16_t, 4> arg_0 = (float16_t(0.5h)).xxxx;
+  vector<float16_t, 4> v = arg_0;
+  vector<float16_t, 4> res = (log((((float16_t(1.0h)).xxxx + v) / ((float16_t(1.0h)).xxxx - v))) * (float16_t(0.5h)).xxxx);
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store<vector<float16_t, 4> >(0u, atanh_e3b450());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store<vector<float16_t, 4> >(0u, atanh_e3b450());
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = atanh_e3b450();
+  VertexOutput v_1 = tint_symbol;
+  return v_1;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_2 = vertex_main_inner();
+  VertexOutput v_3 = v_2;
+  VertexOutput v_4 = v_2;
+  vertex_main_outputs v_5 = {v_4.prevent_dce, v_3.pos};
+  return v_5;
+}
+
diff --git a/test/tint/builtins/gen/var/atanh/e3b450.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/atanh/e3b450.wgsl.expected.ir.fxc.hlsl
index b4570ed..b8712a7 100644
--- a/test/tint/builtins/gen/var/atanh/e3b450.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/atanh/e3b450.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,49 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: atanh
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct VertexOutput {
+  float4 pos;
+  vector<float16_t, 4> prevent_dce;
+};
+
+struct vertex_main_outputs {
+  nointerpolation vector<float16_t, 4> VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+vector<float16_t, 4> atanh_e3b450() {
+  vector<float16_t, 4> arg_0 = (float16_t(0.5h)).xxxx;
+  vector<float16_t, 4> v = arg_0;
+  vector<float16_t, 4> res = (log((((float16_t(1.0h)).xxxx + v) / ((float16_t(1.0h)).xxxx - v))) * (float16_t(0.5h)).xxxx);
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store<vector<float16_t, 4> >(0u, atanh_e3b450());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store<vector<float16_t, 4> >(0u, atanh_e3b450());
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = atanh_e3b450();
+  VertexOutput v_1 = tint_symbol;
+  return v_1;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_2 = vertex_main_inner();
+  VertexOutput v_3 = v_2;
+  VertexOutput v_4 = v_2;
+  vertex_main_outputs v_5 = {v_4.prevent_dce, v_3.pos};
+  return v_5;
+}
+
+FXC validation failure:
+c:\src\dawn\Shader@0x000001FFB1C60490(3,10-18): error X3000: syntax error: unexpected token 'float16_t'
+
diff --git a/test/tint/builtins/gen/var/atanh/e431bb.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/atanh/e431bb.wgsl.expected.ir.dxc.hlsl
index 0ba40c6..8dd6731 100644
--- a/test/tint/builtins/gen/var/atanh/e431bb.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/atanh/e431bb.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,36 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+void atanh_e431bb() {
+  float4 res = (0.54930615425109863281f).xxxx;
+}
+
+void fragment_main() {
+  atanh_e431bb();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  atanh_e431bb();
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  atanh_e431bb();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  vertex_main_outputs v_2 = {v_1.pos};
+  return v_2;
+}
+
diff --git a/test/tint/builtins/gen/var/atanh/e431bb.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/atanh/e431bb.wgsl.expected.ir.fxc.hlsl
index 0ba40c6..8dd6731 100644
--- a/test/tint/builtins/gen/var/atanh/e431bb.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/atanh/e431bb.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,36 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+void atanh_e431bb() {
+  float4 res = (0.54930615425109863281f).xxxx;
+}
+
+void fragment_main() {
+  atanh_e431bb();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  atanh_e431bb();
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  atanh_e431bb();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  vertex_main_outputs v_2 = {v_1.pos};
+  return v_2;
+}
+
diff --git a/test/tint/builtins/gen/var/atanh/ec4b06.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/atanh/ec4b06.wgsl.expected.ir.dxc.hlsl
index b4570ed..fb82962 100644
--- a/test/tint/builtins/gen/var/atanh/ec4b06.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/atanh/ec4b06.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,44 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  vector<float16_t, 3> prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: atanh
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation vector<float16_t, 3> VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+vector<float16_t, 3> atanh_ec4b06() {
+  vector<float16_t, 3> arg_0 = (float16_t(0.5h)).xxx;
+  vector<float16_t, 3> v = arg_0;
+  vector<float16_t, 3> res = (log((((float16_t(1.0h)).xxx + v) / ((float16_t(1.0h)).xxx - v))) * (float16_t(0.5h)).xxx);
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store<vector<float16_t, 3> >(0u, atanh_ec4b06());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store<vector<float16_t, 3> >(0u, atanh_ec4b06());
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = atanh_ec4b06();
+  VertexOutput v_1 = tint_symbol;
+  return v_1;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_2 = vertex_main_inner();
+  VertexOutput v_3 = v_2;
+  VertexOutput v_4 = v_2;
+  vertex_main_outputs v_5 = {v_4.prevent_dce, v_3.pos};
+  return v_5;
+}
+
diff --git a/test/tint/builtins/gen/var/atanh/ec4b06.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/atanh/ec4b06.wgsl.expected.ir.fxc.hlsl
index b4570ed..e4b415e 100644
--- a/test/tint/builtins/gen/var/atanh/ec4b06.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/atanh/ec4b06.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,49 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: atanh
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct VertexOutput {
+  float4 pos;
+  vector<float16_t, 3> prevent_dce;
+};
+
+struct vertex_main_outputs {
+  nointerpolation vector<float16_t, 3> VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+vector<float16_t, 3> atanh_ec4b06() {
+  vector<float16_t, 3> arg_0 = (float16_t(0.5h)).xxx;
+  vector<float16_t, 3> v = arg_0;
+  vector<float16_t, 3> res = (log((((float16_t(1.0h)).xxx + v) / ((float16_t(1.0h)).xxx - v))) * (float16_t(0.5h)).xxx);
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store<vector<float16_t, 3> >(0u, atanh_ec4b06());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store<vector<float16_t, 3> >(0u, atanh_ec4b06());
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = atanh_ec4b06();
+  VertexOutput v_1 = tint_symbol;
+  return v_1;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_2 = vertex_main_inner();
+  VertexOutput v_3 = v_2;
+  VertexOutput v_4 = v_2;
+  vertex_main_outputs v_5 = {v_4.prevent_dce, v_3.pos};
+  return v_5;
+}
+
+FXC validation failure:
+c:\src\dawn\Shader@0x000001A88561AB50(3,10-18): error X3000: syntax error: unexpected token 'float16_t'
+
diff --git a/test/tint/builtins/gen/var/atanh/f3e01b.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/atanh/f3e01b.wgsl.expected.ir.dxc.hlsl
index b4570ed..43c13c4 100644
--- a/test/tint/builtins/gen/var/atanh/f3e01b.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/atanh/f3e01b.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,44 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  float4 prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: atanh
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation float4 VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+float4 atanh_f3e01b() {
+  float4 arg_0 = (0.5f).xxxx;
+  float4 v = arg_0;
+  float4 res = (log((((1.0f).xxxx + v) / ((1.0f).xxxx - v))) * (0.5f).xxxx);
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store4(0u, asuint(atanh_f3e01b()));
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store4(0u, asuint(atanh_f3e01b()));
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = atanh_f3e01b();
+  VertexOutput v_1 = tint_symbol;
+  return v_1;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_2 = vertex_main_inner();
+  VertexOutput v_3 = v_2;
+  VertexOutput v_4 = v_2;
+  vertex_main_outputs v_5 = {v_4.prevent_dce, v_3.pos};
+  return v_5;
+}
+
diff --git a/test/tint/builtins/gen/var/atanh/f3e01b.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/atanh/f3e01b.wgsl.expected.ir.fxc.hlsl
index b4570ed..43c13c4 100644
--- a/test/tint/builtins/gen/var/atanh/f3e01b.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/atanh/f3e01b.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,44 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  float4 prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: atanh
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation float4 VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+float4 atanh_f3e01b() {
+  float4 arg_0 = (0.5f).xxxx;
+  float4 v = arg_0;
+  float4 res = (log((((1.0f).xxxx + v) / ((1.0f).xxxx - v))) * (0.5f).xxxx);
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store4(0u, asuint(atanh_f3e01b()));
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store4(0u, asuint(atanh_f3e01b()));
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = atanh_f3e01b();
+  VertexOutput v_1 = tint_symbol;
+  return v_1;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_2 = vertex_main_inner();
+  VertexOutput v_3 = v_2;
+  VertexOutput v_4 = v_2;
+  vertex_main_outputs v_5 = {v_4.prevent_dce, v_3.pos};
+  return v_5;
+}
+
diff --git a/test/tint/builtins/gen/var/atomicAdd/794055.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/atomicAdd/794055.wgsl.expected.ir.dxc.hlsl
index b786ae2..99fbdfc 100644
--- a/test/tint/builtins/gen/var/atomicAdd/794055.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/atomicAdd/794055.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,29 @@
-SKIP: FAILED
+struct compute_main_inputs {
+  uint tint_local_index : SV_GroupIndex;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: atomicAdd
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+
+RWByteAddressBuffer prevent_dce : register(u0);
+groupshared int arg_0;
+int atomicAdd_794055() {
+  int arg_1 = 1;
+  int v = 0;
+  InterlockedAdd(arg_0, arg_1, v);
+  int res = v;
+  return res;
+}
+
+void compute_main_inner(uint tint_local_index) {
+  if ((tint_local_index == 0u)) {
+    int v_1 = 0;
+    InterlockedExchange(arg_0, 0, v_1);
+  }
+  GroupMemoryBarrierWithGroupSync();
+  prevent_dce.Store(0u, asuint(atomicAdd_794055()));
+}
+
+[numthreads(1, 1, 1)]
+void compute_main(compute_main_inputs inputs) {
+  compute_main_inner(inputs.tint_local_index);
+}
+
diff --git a/test/tint/builtins/gen/var/atomicAdd/794055.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/atomicAdd/794055.wgsl.expected.ir.fxc.hlsl
index b786ae2..99fbdfc 100644
--- a/test/tint/builtins/gen/var/atomicAdd/794055.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/atomicAdd/794055.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,29 @@
-SKIP: FAILED
+struct compute_main_inputs {
+  uint tint_local_index : SV_GroupIndex;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: atomicAdd
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+
+RWByteAddressBuffer prevent_dce : register(u0);
+groupshared int arg_0;
+int atomicAdd_794055() {
+  int arg_1 = 1;
+  int v = 0;
+  InterlockedAdd(arg_0, arg_1, v);
+  int res = v;
+  return res;
+}
+
+void compute_main_inner(uint tint_local_index) {
+  if ((tint_local_index == 0u)) {
+    int v_1 = 0;
+    InterlockedExchange(arg_0, 0, v_1);
+  }
+  GroupMemoryBarrierWithGroupSync();
+  prevent_dce.Store(0u, asuint(atomicAdd_794055()));
+}
+
+[numthreads(1, 1, 1)]
+void compute_main(compute_main_inputs inputs) {
+  compute_main_inner(inputs.tint_local_index);
+}
+
diff --git a/test/tint/builtins/gen/var/atomicAdd/8a199a.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/atomicAdd/8a199a.wgsl.expected.ir.dxc.hlsl
index b786ae2..5596b8a 100644
--- a/test/tint/builtins/gen/var/atomicAdd/8a199a.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/atomicAdd/8a199a.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,21 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: atomicAdd
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWByteAddressBuffer prevent_dce : register(u0);
+RWByteAddressBuffer sb_rw : register(u1);
+uint atomicAdd_8a199a() {
+  uint arg_1 = 1u;
+  uint v = arg_1;
+  uint v_1 = 0u;
+  sb_rw.InterlockedAdd(uint(0u), v, v_1);
+  uint res = v_1;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store(0u, atomicAdd_8a199a());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store(0u, atomicAdd_8a199a());
+}
+
diff --git a/test/tint/builtins/gen/var/atomicAdd/8a199a.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/atomicAdd/8a199a.wgsl.expected.ir.fxc.hlsl
index b786ae2..5596b8a 100644
--- a/test/tint/builtins/gen/var/atomicAdd/8a199a.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/atomicAdd/8a199a.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,21 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: atomicAdd
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWByteAddressBuffer prevent_dce : register(u0);
+RWByteAddressBuffer sb_rw : register(u1);
+uint atomicAdd_8a199a() {
+  uint arg_1 = 1u;
+  uint v = arg_1;
+  uint v_1 = 0u;
+  sb_rw.InterlockedAdd(uint(0u), v, v_1);
+  uint res = v_1;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store(0u, atomicAdd_8a199a());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store(0u, atomicAdd_8a199a());
+}
+
diff --git a/test/tint/builtins/gen/var/atomicAdd/d32fe4.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/atomicAdd/d32fe4.wgsl.expected.ir.dxc.hlsl
index b786ae2..f456b5a 100644
--- a/test/tint/builtins/gen/var/atomicAdd/d32fe4.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/atomicAdd/d32fe4.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,21 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: atomicAdd
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWByteAddressBuffer prevent_dce : register(u0);
+RWByteAddressBuffer sb_rw : register(u1);
+int atomicAdd_d32fe4() {
+  int arg_1 = 1;
+  int v = arg_1;
+  int v_1 = 0;
+  sb_rw.InterlockedAdd(int(0u), v, v_1);
+  int res = v_1;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store(0u, asuint(atomicAdd_d32fe4()));
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store(0u, asuint(atomicAdd_d32fe4()));
+}
+
diff --git a/test/tint/builtins/gen/var/atomicAdd/d32fe4.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/atomicAdd/d32fe4.wgsl.expected.ir.fxc.hlsl
index b786ae2..f456b5a 100644
--- a/test/tint/builtins/gen/var/atomicAdd/d32fe4.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/atomicAdd/d32fe4.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,21 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: atomicAdd
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWByteAddressBuffer prevent_dce : register(u0);
+RWByteAddressBuffer sb_rw : register(u1);
+int atomicAdd_d32fe4() {
+  int arg_1 = 1;
+  int v = arg_1;
+  int v_1 = 0;
+  sb_rw.InterlockedAdd(int(0u), v, v_1);
+  int res = v_1;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store(0u, asuint(atomicAdd_d32fe4()));
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store(0u, asuint(atomicAdd_d32fe4()));
+}
+
diff --git a/test/tint/builtins/gen/var/atomicAdd/d5db1d.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/atomicAdd/d5db1d.wgsl.expected.ir.dxc.hlsl
index b786ae2..b1f4b3c 100644
--- a/test/tint/builtins/gen/var/atomicAdd/d5db1d.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/atomicAdd/d5db1d.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,29 @@
-SKIP: FAILED
+struct compute_main_inputs {
+  uint tint_local_index : SV_GroupIndex;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: atomicAdd
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+
+RWByteAddressBuffer prevent_dce : register(u0);
+groupshared uint arg_0;
+uint atomicAdd_d5db1d() {
+  uint arg_1 = 1u;
+  uint v = 0u;
+  InterlockedAdd(arg_0, arg_1, v);
+  uint res = v;
+  return res;
+}
+
+void compute_main_inner(uint tint_local_index) {
+  if ((tint_local_index == 0u)) {
+    uint v_1 = 0u;
+    InterlockedExchange(arg_0, 0u, v_1);
+  }
+  GroupMemoryBarrierWithGroupSync();
+  prevent_dce.Store(0u, atomicAdd_d5db1d());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main(compute_main_inputs inputs) {
+  compute_main_inner(inputs.tint_local_index);
+}
+
diff --git a/test/tint/builtins/gen/var/atomicAdd/d5db1d.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/atomicAdd/d5db1d.wgsl.expected.ir.fxc.hlsl
index b786ae2..b1f4b3c 100644
--- a/test/tint/builtins/gen/var/atomicAdd/d5db1d.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/atomicAdd/d5db1d.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,29 @@
-SKIP: FAILED
+struct compute_main_inputs {
+  uint tint_local_index : SV_GroupIndex;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: atomicAdd
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+
+RWByteAddressBuffer prevent_dce : register(u0);
+groupshared uint arg_0;
+uint atomicAdd_d5db1d() {
+  uint arg_1 = 1u;
+  uint v = 0u;
+  InterlockedAdd(arg_0, arg_1, v);
+  uint res = v;
+  return res;
+}
+
+void compute_main_inner(uint tint_local_index) {
+  if ((tint_local_index == 0u)) {
+    uint v_1 = 0u;
+    InterlockedExchange(arg_0, 0u, v_1);
+  }
+  GroupMemoryBarrierWithGroupSync();
+  prevent_dce.Store(0u, atomicAdd_d5db1d());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main(compute_main_inputs inputs) {
+  compute_main_inner(inputs.tint_local_index);
+}
+
diff --git a/test/tint/builtins/gen/var/atomicAnd/152966.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/atomicAnd/152966.wgsl.expected.ir.dxc.hlsl
index 084941d..7409c84 100644
--- a/test/tint/builtins/gen/var/atomicAnd/152966.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/atomicAnd/152966.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,21 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: atomicAnd
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWByteAddressBuffer prevent_dce : register(u0);
+RWByteAddressBuffer sb_rw : register(u1);
+int atomicAnd_152966() {
+  int arg_1 = 1;
+  int v = arg_1;
+  int v_1 = 0;
+  sb_rw.InterlockedAnd(int(0u), v, v_1);
+  int res = v_1;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store(0u, asuint(atomicAnd_152966()));
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store(0u, asuint(atomicAnd_152966()));
+}
+
diff --git a/test/tint/builtins/gen/var/atomicAnd/152966.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/atomicAnd/152966.wgsl.expected.ir.fxc.hlsl
index 084941d..7409c84 100644
--- a/test/tint/builtins/gen/var/atomicAnd/152966.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/atomicAnd/152966.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,21 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: atomicAnd
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWByteAddressBuffer prevent_dce : register(u0);
+RWByteAddressBuffer sb_rw : register(u1);
+int atomicAnd_152966() {
+  int arg_1 = 1;
+  int v = arg_1;
+  int v_1 = 0;
+  sb_rw.InterlockedAnd(int(0u), v, v_1);
+  int res = v_1;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store(0u, asuint(atomicAnd_152966()));
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store(0u, asuint(atomicAnd_152966()));
+}
+
diff --git a/test/tint/builtins/gen/var/atomicAnd/34edd3.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/atomicAnd/34edd3.wgsl.expected.ir.dxc.hlsl
index 084941d..80cd620 100644
--- a/test/tint/builtins/gen/var/atomicAnd/34edd3.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/atomicAnd/34edd3.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,29 @@
-SKIP: FAILED
+struct compute_main_inputs {
+  uint tint_local_index : SV_GroupIndex;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: atomicAnd
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+
+RWByteAddressBuffer prevent_dce : register(u0);
+groupshared uint arg_0;
+uint atomicAnd_34edd3() {
+  uint arg_1 = 1u;
+  uint v = 0u;
+  InterlockedAnd(arg_0, arg_1, v);
+  uint res = v;
+  return res;
+}
+
+void compute_main_inner(uint tint_local_index) {
+  if ((tint_local_index == 0u)) {
+    uint v_1 = 0u;
+    InterlockedExchange(arg_0, 0u, v_1);
+  }
+  GroupMemoryBarrierWithGroupSync();
+  prevent_dce.Store(0u, atomicAnd_34edd3());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main(compute_main_inputs inputs) {
+  compute_main_inner(inputs.tint_local_index);
+}
+
diff --git a/test/tint/builtins/gen/var/atomicAnd/34edd3.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/atomicAnd/34edd3.wgsl.expected.ir.fxc.hlsl
index 084941d..80cd620 100644
--- a/test/tint/builtins/gen/var/atomicAnd/34edd3.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/atomicAnd/34edd3.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,29 @@
-SKIP: FAILED
+struct compute_main_inputs {
+  uint tint_local_index : SV_GroupIndex;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: atomicAnd
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+
+RWByteAddressBuffer prevent_dce : register(u0);
+groupshared uint arg_0;
+uint atomicAnd_34edd3() {
+  uint arg_1 = 1u;
+  uint v = 0u;
+  InterlockedAnd(arg_0, arg_1, v);
+  uint res = v;
+  return res;
+}
+
+void compute_main_inner(uint tint_local_index) {
+  if ((tint_local_index == 0u)) {
+    uint v_1 = 0u;
+    InterlockedExchange(arg_0, 0u, v_1);
+  }
+  GroupMemoryBarrierWithGroupSync();
+  prevent_dce.Store(0u, atomicAnd_34edd3());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main(compute_main_inputs inputs) {
+  compute_main_inner(inputs.tint_local_index);
+}
+
diff --git a/test/tint/builtins/gen/var/atomicAnd/45a819.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/atomicAnd/45a819.wgsl.expected.ir.dxc.hlsl
index 084941d..949f74a 100644
--- a/test/tint/builtins/gen/var/atomicAnd/45a819.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/atomicAnd/45a819.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,29 @@
-SKIP: FAILED
+struct compute_main_inputs {
+  uint tint_local_index : SV_GroupIndex;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: atomicAnd
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+
+RWByteAddressBuffer prevent_dce : register(u0);
+groupshared int arg_0;
+int atomicAnd_45a819() {
+  int arg_1 = 1;
+  int v = 0;
+  InterlockedAnd(arg_0, arg_1, v);
+  int res = v;
+  return res;
+}
+
+void compute_main_inner(uint tint_local_index) {
+  if ((tint_local_index == 0u)) {
+    int v_1 = 0;
+    InterlockedExchange(arg_0, 0, v_1);
+  }
+  GroupMemoryBarrierWithGroupSync();
+  prevent_dce.Store(0u, asuint(atomicAnd_45a819()));
+}
+
+[numthreads(1, 1, 1)]
+void compute_main(compute_main_inputs inputs) {
+  compute_main_inner(inputs.tint_local_index);
+}
+
diff --git a/test/tint/builtins/gen/var/atomicAnd/45a819.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/atomicAnd/45a819.wgsl.expected.ir.fxc.hlsl
index 084941d..949f74a 100644
--- a/test/tint/builtins/gen/var/atomicAnd/45a819.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/atomicAnd/45a819.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,29 @@
-SKIP: FAILED
+struct compute_main_inputs {
+  uint tint_local_index : SV_GroupIndex;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: atomicAnd
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+
+RWByteAddressBuffer prevent_dce : register(u0);
+groupshared int arg_0;
+int atomicAnd_45a819() {
+  int arg_1 = 1;
+  int v = 0;
+  InterlockedAnd(arg_0, arg_1, v);
+  int res = v;
+  return res;
+}
+
+void compute_main_inner(uint tint_local_index) {
+  if ((tint_local_index == 0u)) {
+    int v_1 = 0;
+    InterlockedExchange(arg_0, 0, v_1);
+  }
+  GroupMemoryBarrierWithGroupSync();
+  prevent_dce.Store(0u, asuint(atomicAnd_45a819()));
+}
+
+[numthreads(1, 1, 1)]
+void compute_main(compute_main_inputs inputs) {
+  compute_main_inner(inputs.tint_local_index);
+}
+
diff --git a/test/tint/builtins/gen/var/atomicAnd/85a8d9.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/atomicAnd/85a8d9.wgsl.expected.ir.dxc.hlsl
index 084941d..2617048 100644
--- a/test/tint/builtins/gen/var/atomicAnd/85a8d9.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/atomicAnd/85a8d9.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,21 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: atomicAnd
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWByteAddressBuffer prevent_dce : register(u0);
+RWByteAddressBuffer sb_rw : register(u1);
+uint atomicAnd_85a8d9() {
+  uint arg_1 = 1u;
+  uint v = arg_1;
+  uint v_1 = 0u;
+  sb_rw.InterlockedAnd(uint(0u), v, v_1);
+  uint res = v_1;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store(0u, atomicAnd_85a8d9());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store(0u, atomicAnd_85a8d9());
+}
+
diff --git a/test/tint/builtins/gen/var/atomicAnd/85a8d9.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/atomicAnd/85a8d9.wgsl.expected.ir.fxc.hlsl
index 084941d..2617048 100644
--- a/test/tint/builtins/gen/var/atomicAnd/85a8d9.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/atomicAnd/85a8d9.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,21 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: atomicAnd
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWByteAddressBuffer prevent_dce : register(u0);
+RWByteAddressBuffer sb_rw : register(u1);
+uint atomicAnd_85a8d9() {
+  uint arg_1 = 1u;
+  uint v = arg_1;
+  uint v_1 = 0u;
+  sb_rw.InterlockedAnd(uint(0u), v, v_1);
+  uint res = v_1;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store(0u, atomicAnd_85a8d9());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store(0u, atomicAnd_85a8d9());
+}
+
diff --git a/test/tint/builtins/gen/var/atomicCompareExchangeWeak/1bd40a.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/atomicCompareExchangeWeak/1bd40a.wgsl.expected.ir.dxc.hlsl
index 374b349..cf25739 100644
--- a/test/tint/builtins/gen/var/atomicCompareExchangeWeak/1bd40a.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/atomicCompareExchangeWeak/1bd40a.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,27 @@
-SKIP: FAILED
+struct atomic_compare_exchange_result_i32 {
+  int old_value;
+  bool exchanged;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: atomicCompareExchangeWeak
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+
+RWByteAddressBuffer sb_rw : register(u0);
+void atomicCompareExchangeWeak_1bd40a() {
+  int arg_1 = 1;
+  int arg_2 = 1;
+  int v = arg_1;
+  int v_1 = arg_2;
+  int v_2 = 0;
+  sb_rw.InterlockedCompareExchange(int(0u), v, v_1, v_2);
+  int v_3 = v_2;
+  atomic_compare_exchange_result_i32 res = {v_3, (v_3 == v)};
+}
+
+void fragment_main() {
+  atomicCompareExchangeWeak_1bd40a();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  atomicCompareExchangeWeak_1bd40a();
+}
+
diff --git a/test/tint/builtins/gen/var/atomicCompareExchangeWeak/1bd40a.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/atomicCompareExchangeWeak/1bd40a.wgsl.expected.ir.fxc.hlsl
index 374b349..cf25739 100644
--- a/test/tint/builtins/gen/var/atomicCompareExchangeWeak/1bd40a.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/atomicCompareExchangeWeak/1bd40a.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,27 @@
-SKIP: FAILED
+struct atomic_compare_exchange_result_i32 {
+  int old_value;
+  bool exchanged;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: atomicCompareExchangeWeak
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+
+RWByteAddressBuffer sb_rw : register(u0);
+void atomicCompareExchangeWeak_1bd40a() {
+  int arg_1 = 1;
+  int arg_2 = 1;
+  int v = arg_1;
+  int v_1 = arg_2;
+  int v_2 = 0;
+  sb_rw.InterlockedCompareExchange(int(0u), v, v_1, v_2);
+  int v_3 = v_2;
+  atomic_compare_exchange_result_i32 res = {v_3, (v_3 == v)};
+}
+
+void fragment_main() {
+  atomicCompareExchangeWeak_1bd40a();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  atomicCompareExchangeWeak_1bd40a();
+}
+
diff --git a/test/tint/builtins/gen/var/atomicCompareExchangeWeak/63d8e6.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/atomicCompareExchangeWeak/63d8e6.wgsl.expected.ir.dxc.hlsl
index 374b349..8c9d687 100644
--- a/test/tint/builtins/gen/var/atomicCompareExchangeWeak/63d8e6.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/atomicCompareExchangeWeak/63d8e6.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,27 @@
-SKIP: FAILED
+struct atomic_compare_exchange_result_u32 {
+  uint old_value;
+  bool exchanged;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: atomicCompareExchangeWeak
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+
+RWByteAddressBuffer sb_rw : register(u0);
+void atomicCompareExchangeWeak_63d8e6() {
+  uint arg_1 = 1u;
+  uint arg_2 = 1u;
+  uint v = arg_1;
+  uint v_1 = arg_2;
+  uint v_2 = 0u;
+  sb_rw.InterlockedCompareExchange(uint(0u), v, v_1, v_2);
+  uint v_3 = v_2;
+  atomic_compare_exchange_result_u32 res = {v_3, (v_3 == v)};
+}
+
+void fragment_main() {
+  atomicCompareExchangeWeak_63d8e6();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  atomicCompareExchangeWeak_63d8e6();
+}
+
diff --git a/test/tint/builtins/gen/var/atomicCompareExchangeWeak/63d8e6.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/atomicCompareExchangeWeak/63d8e6.wgsl.expected.ir.fxc.hlsl
index 374b349..8c9d687 100644
--- a/test/tint/builtins/gen/var/atomicCompareExchangeWeak/63d8e6.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/atomicCompareExchangeWeak/63d8e6.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,27 @@
-SKIP: FAILED
+struct atomic_compare_exchange_result_u32 {
+  uint old_value;
+  bool exchanged;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: atomicCompareExchangeWeak
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+
+RWByteAddressBuffer sb_rw : register(u0);
+void atomicCompareExchangeWeak_63d8e6() {
+  uint arg_1 = 1u;
+  uint arg_2 = 1u;
+  uint v = arg_1;
+  uint v_1 = arg_2;
+  uint v_2 = 0u;
+  sb_rw.InterlockedCompareExchange(uint(0u), v, v_1, v_2);
+  uint v_3 = v_2;
+  atomic_compare_exchange_result_u32 res = {v_3, (v_3 == v)};
+}
+
+void fragment_main() {
+  atomicCompareExchangeWeak_63d8e6();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  atomicCompareExchangeWeak_63d8e6();
+}
+
diff --git a/test/tint/builtins/gen/var/atomicCompareExchangeWeak/83580d.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/atomicCompareExchangeWeak/83580d.wgsl.expected.ir.dxc.hlsl
index 374b349..2b8963b 100644
--- a/test/tint/builtins/gen/var/atomicCompareExchangeWeak/83580d.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/atomicCompareExchangeWeak/83580d.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,35 @@
-SKIP: FAILED
+struct atomic_compare_exchange_result_u32 {
+  uint old_value;
+  bool exchanged;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: atomicCompareExchangeWeak
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct compute_main_inputs {
+  uint tint_local_index : SV_GroupIndex;
+};
+
+
+groupshared uint arg_0;
+void atomicCompareExchangeWeak_83580d() {
+  uint arg_1 = 1u;
+  uint arg_2 = 1u;
+  uint v = arg_1;
+  uint v_1 = 0u;
+  InterlockedCompareExchange(arg_0, v, arg_2, v_1);
+  uint v_2 = v_1;
+  atomic_compare_exchange_result_u32 res = {v_2, (v_2 == v)};
+}
+
+void compute_main_inner(uint tint_local_index) {
+  if ((tint_local_index == 0u)) {
+    uint v_3 = 0u;
+    InterlockedExchange(arg_0, 0u, v_3);
+  }
+  GroupMemoryBarrierWithGroupSync();
+  atomicCompareExchangeWeak_83580d();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main(compute_main_inputs inputs) {
+  compute_main_inner(inputs.tint_local_index);
+}
+
diff --git a/test/tint/builtins/gen/var/atomicCompareExchangeWeak/83580d.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/atomicCompareExchangeWeak/83580d.wgsl.expected.ir.fxc.hlsl
index 374b349..2b8963b 100644
--- a/test/tint/builtins/gen/var/atomicCompareExchangeWeak/83580d.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/atomicCompareExchangeWeak/83580d.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,35 @@
-SKIP: FAILED
+struct atomic_compare_exchange_result_u32 {
+  uint old_value;
+  bool exchanged;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: atomicCompareExchangeWeak
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct compute_main_inputs {
+  uint tint_local_index : SV_GroupIndex;
+};
+
+
+groupshared uint arg_0;
+void atomicCompareExchangeWeak_83580d() {
+  uint arg_1 = 1u;
+  uint arg_2 = 1u;
+  uint v = arg_1;
+  uint v_1 = 0u;
+  InterlockedCompareExchange(arg_0, v, arg_2, v_1);
+  uint v_2 = v_1;
+  atomic_compare_exchange_result_u32 res = {v_2, (v_2 == v)};
+}
+
+void compute_main_inner(uint tint_local_index) {
+  if ((tint_local_index == 0u)) {
+    uint v_3 = 0u;
+    InterlockedExchange(arg_0, 0u, v_3);
+  }
+  GroupMemoryBarrierWithGroupSync();
+  atomicCompareExchangeWeak_83580d();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main(compute_main_inputs inputs) {
+  compute_main_inner(inputs.tint_local_index);
+}
+
diff --git a/test/tint/builtins/gen/var/atomicCompareExchangeWeak/e88938.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/atomicCompareExchangeWeak/e88938.wgsl.expected.ir.dxc.hlsl
index 374b349..465e2a3 100644
--- a/test/tint/builtins/gen/var/atomicCompareExchangeWeak/e88938.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/atomicCompareExchangeWeak/e88938.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,35 @@
-SKIP: FAILED
+struct atomic_compare_exchange_result_i32 {
+  int old_value;
+  bool exchanged;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: atomicCompareExchangeWeak
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct compute_main_inputs {
+  uint tint_local_index : SV_GroupIndex;
+};
+
+
+groupshared int arg_0;
+void atomicCompareExchangeWeak_e88938() {
+  int arg_1 = 1;
+  int arg_2 = 1;
+  int v = arg_1;
+  int v_1 = 0;
+  InterlockedCompareExchange(arg_0, v, arg_2, v_1);
+  int v_2 = v_1;
+  atomic_compare_exchange_result_i32 res = {v_2, (v_2 == v)};
+}
+
+void compute_main_inner(uint tint_local_index) {
+  if ((tint_local_index == 0u)) {
+    int v_3 = 0;
+    InterlockedExchange(arg_0, 0, v_3);
+  }
+  GroupMemoryBarrierWithGroupSync();
+  atomicCompareExchangeWeak_e88938();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main(compute_main_inputs inputs) {
+  compute_main_inner(inputs.tint_local_index);
+}
+
diff --git a/test/tint/builtins/gen/var/atomicCompareExchangeWeak/e88938.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/atomicCompareExchangeWeak/e88938.wgsl.expected.ir.fxc.hlsl
index 374b349..465e2a3 100644
--- a/test/tint/builtins/gen/var/atomicCompareExchangeWeak/e88938.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/atomicCompareExchangeWeak/e88938.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,35 @@
-SKIP: FAILED
+struct atomic_compare_exchange_result_i32 {
+  int old_value;
+  bool exchanged;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: atomicCompareExchangeWeak
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct compute_main_inputs {
+  uint tint_local_index : SV_GroupIndex;
+};
+
+
+groupshared int arg_0;
+void atomicCompareExchangeWeak_e88938() {
+  int arg_1 = 1;
+  int arg_2 = 1;
+  int v = arg_1;
+  int v_1 = 0;
+  InterlockedCompareExchange(arg_0, v, arg_2, v_1);
+  int v_2 = v_1;
+  atomic_compare_exchange_result_i32 res = {v_2, (v_2 == v)};
+}
+
+void compute_main_inner(uint tint_local_index) {
+  if ((tint_local_index == 0u)) {
+    int v_3 = 0;
+    InterlockedExchange(arg_0, 0, v_3);
+  }
+  GroupMemoryBarrierWithGroupSync();
+  atomicCompareExchangeWeak_e88938();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main(compute_main_inputs inputs) {
+  compute_main_inner(inputs.tint_local_index);
+}
+
diff --git a/test/tint/builtins/gen/var/atomicExchange/0a5dca.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/atomicExchange/0a5dca.wgsl.expected.ir.dxc.hlsl
index 165fea9..fb56047 100644
--- a/test/tint/builtins/gen/var/atomicExchange/0a5dca.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/atomicExchange/0a5dca.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,29 @@
-SKIP: FAILED
+struct compute_main_inputs {
+  uint tint_local_index : SV_GroupIndex;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: atomicExchange
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+
+RWByteAddressBuffer prevent_dce : register(u0);
+groupshared uint arg_0;
+uint atomicExchange_0a5dca() {
+  uint arg_1 = 1u;
+  uint v = 0u;
+  InterlockedExchange(arg_0, arg_1, v);
+  uint res = v;
+  return res;
+}
+
+void compute_main_inner(uint tint_local_index) {
+  if ((tint_local_index == 0u)) {
+    uint v_1 = 0u;
+    InterlockedExchange(arg_0, 0u, v_1);
+  }
+  GroupMemoryBarrierWithGroupSync();
+  prevent_dce.Store(0u, atomicExchange_0a5dca());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main(compute_main_inputs inputs) {
+  compute_main_inner(inputs.tint_local_index);
+}
+
diff --git a/test/tint/builtins/gen/var/atomicExchange/0a5dca.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/atomicExchange/0a5dca.wgsl.expected.ir.fxc.hlsl
index 165fea9..fb56047 100644
--- a/test/tint/builtins/gen/var/atomicExchange/0a5dca.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/atomicExchange/0a5dca.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,29 @@
-SKIP: FAILED
+struct compute_main_inputs {
+  uint tint_local_index : SV_GroupIndex;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: atomicExchange
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+
+RWByteAddressBuffer prevent_dce : register(u0);
+groupshared uint arg_0;
+uint atomicExchange_0a5dca() {
+  uint arg_1 = 1u;
+  uint v = 0u;
+  InterlockedExchange(arg_0, arg_1, v);
+  uint res = v;
+  return res;
+}
+
+void compute_main_inner(uint tint_local_index) {
+  if ((tint_local_index == 0u)) {
+    uint v_1 = 0u;
+    InterlockedExchange(arg_0, 0u, v_1);
+  }
+  GroupMemoryBarrierWithGroupSync();
+  prevent_dce.Store(0u, atomicExchange_0a5dca());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main(compute_main_inputs inputs) {
+  compute_main_inner(inputs.tint_local_index);
+}
+
diff --git a/test/tint/builtins/gen/var/atomicExchange/d59712.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/atomicExchange/d59712.wgsl.expected.ir.dxc.hlsl
index 165fea9..b142b76 100644
--- a/test/tint/builtins/gen/var/atomicExchange/d59712.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/atomicExchange/d59712.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,21 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: atomicExchange
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWByteAddressBuffer prevent_dce : register(u0);
+RWByteAddressBuffer sb_rw : register(u1);
+uint atomicExchange_d59712() {
+  uint arg_1 = 1u;
+  uint v = arg_1;
+  uint v_1 = 0u;
+  sb_rw.InterlockedExchange(uint(0u), v, v_1);
+  uint res = v_1;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store(0u, atomicExchange_d59712());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store(0u, atomicExchange_d59712());
+}
+
diff --git a/test/tint/builtins/gen/var/atomicExchange/d59712.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/atomicExchange/d59712.wgsl.expected.ir.fxc.hlsl
index 165fea9..b142b76 100644
--- a/test/tint/builtins/gen/var/atomicExchange/d59712.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/atomicExchange/d59712.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,21 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: atomicExchange
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWByteAddressBuffer prevent_dce : register(u0);
+RWByteAddressBuffer sb_rw : register(u1);
+uint atomicExchange_d59712() {
+  uint arg_1 = 1u;
+  uint v = arg_1;
+  uint v_1 = 0u;
+  sb_rw.InterlockedExchange(uint(0u), v, v_1);
+  uint res = v_1;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store(0u, atomicExchange_d59712());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store(0u, atomicExchange_d59712());
+}
+
diff --git a/test/tint/builtins/gen/var/atomicExchange/e114ba.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/atomicExchange/e114ba.wgsl.expected.ir.dxc.hlsl
index 165fea9..14dd875 100644
--- a/test/tint/builtins/gen/var/atomicExchange/e114ba.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/atomicExchange/e114ba.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,29 @@
-SKIP: FAILED
+struct compute_main_inputs {
+  uint tint_local_index : SV_GroupIndex;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: atomicExchange
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+
+RWByteAddressBuffer prevent_dce : register(u0);
+groupshared int arg_0;
+int atomicExchange_e114ba() {
+  int arg_1 = 1;
+  int v = 0;
+  InterlockedExchange(arg_0, arg_1, v);
+  int res = v;
+  return res;
+}
+
+void compute_main_inner(uint tint_local_index) {
+  if ((tint_local_index == 0u)) {
+    int v_1 = 0;
+    InterlockedExchange(arg_0, 0, v_1);
+  }
+  GroupMemoryBarrierWithGroupSync();
+  prevent_dce.Store(0u, asuint(atomicExchange_e114ba()));
+}
+
+[numthreads(1, 1, 1)]
+void compute_main(compute_main_inputs inputs) {
+  compute_main_inner(inputs.tint_local_index);
+}
+
diff --git a/test/tint/builtins/gen/var/atomicExchange/e114ba.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/atomicExchange/e114ba.wgsl.expected.ir.fxc.hlsl
index 165fea9..14dd875 100644
--- a/test/tint/builtins/gen/var/atomicExchange/e114ba.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/atomicExchange/e114ba.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,29 @@
-SKIP: FAILED
+struct compute_main_inputs {
+  uint tint_local_index : SV_GroupIndex;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: atomicExchange
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+
+RWByteAddressBuffer prevent_dce : register(u0);
+groupshared int arg_0;
+int atomicExchange_e114ba() {
+  int arg_1 = 1;
+  int v = 0;
+  InterlockedExchange(arg_0, arg_1, v);
+  int res = v;
+  return res;
+}
+
+void compute_main_inner(uint tint_local_index) {
+  if ((tint_local_index == 0u)) {
+    int v_1 = 0;
+    InterlockedExchange(arg_0, 0, v_1);
+  }
+  GroupMemoryBarrierWithGroupSync();
+  prevent_dce.Store(0u, asuint(atomicExchange_e114ba()));
+}
+
+[numthreads(1, 1, 1)]
+void compute_main(compute_main_inputs inputs) {
+  compute_main_inner(inputs.tint_local_index);
+}
+
diff --git a/test/tint/builtins/gen/var/atomicExchange/f2e22f.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/atomicExchange/f2e22f.wgsl.expected.ir.dxc.hlsl
index 165fea9..374328e 100644
--- a/test/tint/builtins/gen/var/atomicExchange/f2e22f.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/atomicExchange/f2e22f.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,21 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: atomicExchange
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWByteAddressBuffer prevent_dce : register(u0);
+RWByteAddressBuffer sb_rw : register(u1);
+int atomicExchange_f2e22f() {
+  int arg_1 = 1;
+  int v = arg_1;
+  int v_1 = 0;
+  sb_rw.InterlockedExchange(int(0u), v, v_1);
+  int res = v_1;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store(0u, asuint(atomicExchange_f2e22f()));
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store(0u, asuint(atomicExchange_f2e22f()));
+}
+
diff --git a/test/tint/builtins/gen/var/atomicExchange/f2e22f.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/atomicExchange/f2e22f.wgsl.expected.ir.fxc.hlsl
index 165fea9..374328e 100644
--- a/test/tint/builtins/gen/var/atomicExchange/f2e22f.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/atomicExchange/f2e22f.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,21 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: atomicExchange
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWByteAddressBuffer prevent_dce : register(u0);
+RWByteAddressBuffer sb_rw : register(u1);
+int atomicExchange_f2e22f() {
+  int arg_1 = 1;
+  int v = arg_1;
+  int v_1 = 0;
+  sb_rw.InterlockedExchange(int(0u), v, v_1);
+  int res = v_1;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store(0u, asuint(atomicExchange_f2e22f()));
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store(0u, asuint(atomicExchange_f2e22f()));
+}
+
diff --git a/test/tint/builtins/gen/var/atomicLoad/0806ad.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/atomicLoad/0806ad.wgsl.expected.ir.dxc.hlsl
index 11d7ec0..c0fef6a 100644
--- a/test/tint/builtins/gen/var/atomicLoad/0806ad.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/atomicLoad/0806ad.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,19 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: atomicLoad
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWByteAddressBuffer prevent_dce : register(u0);
+RWByteAddressBuffer sb_rw : register(u1);
+int atomicLoad_0806ad() {
+  int v = 0;
+  sb_rw.InterlockedOr(int(0u), 0, v);
+  int res = v;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store(0u, asuint(atomicLoad_0806ad()));
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store(0u, asuint(atomicLoad_0806ad()));
+}
+
diff --git a/test/tint/builtins/gen/var/atomicLoad/0806ad.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/atomicLoad/0806ad.wgsl.expected.ir.fxc.hlsl
index 11d7ec0..c0fef6a 100644
--- a/test/tint/builtins/gen/var/atomicLoad/0806ad.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/atomicLoad/0806ad.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,19 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: atomicLoad
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWByteAddressBuffer prevent_dce : register(u0);
+RWByteAddressBuffer sb_rw : register(u1);
+int atomicLoad_0806ad() {
+  int v = 0;
+  sb_rw.InterlockedOr(int(0u), 0, v);
+  int res = v;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store(0u, asuint(atomicLoad_0806ad()));
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store(0u, asuint(atomicLoad_0806ad()));
+}
+
diff --git a/test/tint/builtins/gen/var/atomicLoad/361bf1.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/atomicLoad/361bf1.wgsl.expected.ir.dxc.hlsl
index 11d7ec0..8b9224d 100644
--- a/test/tint/builtins/gen/var/atomicLoad/361bf1.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/atomicLoad/361bf1.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,28 @@
-SKIP: FAILED
+struct compute_main_inputs {
+  uint tint_local_index : SV_GroupIndex;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: atomicLoad
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+
+RWByteAddressBuffer prevent_dce : register(u0);
+groupshared uint arg_0;
+uint atomicLoad_361bf1() {
+  uint v = 0u;
+  InterlockedOr(arg_0, 0u, v);
+  uint res = v;
+  return res;
+}
+
+void compute_main_inner(uint tint_local_index) {
+  if ((tint_local_index == 0u)) {
+    uint v_1 = 0u;
+    InterlockedExchange(arg_0, 0u, v_1);
+  }
+  GroupMemoryBarrierWithGroupSync();
+  prevent_dce.Store(0u, atomicLoad_361bf1());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main(compute_main_inputs inputs) {
+  compute_main_inner(inputs.tint_local_index);
+}
+
diff --git a/test/tint/builtins/gen/var/atomicLoad/361bf1.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/atomicLoad/361bf1.wgsl.expected.ir.fxc.hlsl
index 11d7ec0..8b9224d 100644
--- a/test/tint/builtins/gen/var/atomicLoad/361bf1.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/atomicLoad/361bf1.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,28 @@
-SKIP: FAILED
+struct compute_main_inputs {
+  uint tint_local_index : SV_GroupIndex;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: atomicLoad
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+
+RWByteAddressBuffer prevent_dce : register(u0);
+groupshared uint arg_0;
+uint atomicLoad_361bf1() {
+  uint v = 0u;
+  InterlockedOr(arg_0, 0u, v);
+  uint res = v;
+  return res;
+}
+
+void compute_main_inner(uint tint_local_index) {
+  if ((tint_local_index == 0u)) {
+    uint v_1 = 0u;
+    InterlockedExchange(arg_0, 0u, v_1);
+  }
+  GroupMemoryBarrierWithGroupSync();
+  prevent_dce.Store(0u, atomicLoad_361bf1());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main(compute_main_inputs inputs) {
+  compute_main_inner(inputs.tint_local_index);
+}
+
diff --git a/test/tint/builtins/gen/var/atomicLoad/afcc03.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/atomicLoad/afcc03.wgsl.expected.ir.dxc.hlsl
index 11d7ec0..4511f12 100644
--- a/test/tint/builtins/gen/var/atomicLoad/afcc03.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/atomicLoad/afcc03.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,28 @@
-SKIP: FAILED
+struct compute_main_inputs {
+  uint tint_local_index : SV_GroupIndex;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: atomicLoad
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+
+RWByteAddressBuffer prevent_dce : register(u0);
+groupshared int arg_0;
+int atomicLoad_afcc03() {
+  int v = 0;
+  InterlockedOr(arg_0, 0, v);
+  int res = v;
+  return res;
+}
+
+void compute_main_inner(uint tint_local_index) {
+  if ((tint_local_index == 0u)) {
+    int v_1 = 0;
+    InterlockedExchange(arg_0, 0, v_1);
+  }
+  GroupMemoryBarrierWithGroupSync();
+  prevent_dce.Store(0u, asuint(atomicLoad_afcc03()));
+}
+
+[numthreads(1, 1, 1)]
+void compute_main(compute_main_inputs inputs) {
+  compute_main_inner(inputs.tint_local_index);
+}
+
diff --git a/test/tint/builtins/gen/var/atomicLoad/afcc03.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/atomicLoad/afcc03.wgsl.expected.ir.fxc.hlsl
index 11d7ec0..4511f12 100644
--- a/test/tint/builtins/gen/var/atomicLoad/afcc03.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/atomicLoad/afcc03.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,28 @@
-SKIP: FAILED
+struct compute_main_inputs {
+  uint tint_local_index : SV_GroupIndex;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: atomicLoad
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+
+RWByteAddressBuffer prevent_dce : register(u0);
+groupshared int arg_0;
+int atomicLoad_afcc03() {
+  int v = 0;
+  InterlockedOr(arg_0, 0, v);
+  int res = v;
+  return res;
+}
+
+void compute_main_inner(uint tint_local_index) {
+  if ((tint_local_index == 0u)) {
+    int v_1 = 0;
+    InterlockedExchange(arg_0, 0, v_1);
+  }
+  GroupMemoryBarrierWithGroupSync();
+  prevent_dce.Store(0u, asuint(atomicLoad_afcc03()));
+}
+
+[numthreads(1, 1, 1)]
+void compute_main(compute_main_inputs inputs) {
+  compute_main_inner(inputs.tint_local_index);
+}
+
diff --git a/test/tint/builtins/gen/var/atomicLoad/fe6cc3.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/atomicLoad/fe6cc3.wgsl.expected.ir.dxc.hlsl
index 11d7ec0..a8eefbd 100644
--- a/test/tint/builtins/gen/var/atomicLoad/fe6cc3.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/atomicLoad/fe6cc3.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,19 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: atomicLoad
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWByteAddressBuffer prevent_dce : register(u0);
+RWByteAddressBuffer sb_rw : register(u1);
+uint atomicLoad_fe6cc3() {
+  uint v = 0u;
+  sb_rw.InterlockedOr(uint(0u), 0u, v);
+  uint res = v;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store(0u, atomicLoad_fe6cc3());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store(0u, atomicLoad_fe6cc3());
+}
+
diff --git a/test/tint/builtins/gen/var/atomicLoad/fe6cc3.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/atomicLoad/fe6cc3.wgsl.expected.ir.fxc.hlsl
index 11d7ec0..a8eefbd 100644
--- a/test/tint/builtins/gen/var/atomicLoad/fe6cc3.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/atomicLoad/fe6cc3.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,19 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: atomicLoad
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWByteAddressBuffer prevent_dce : register(u0);
+RWByteAddressBuffer sb_rw : register(u1);
+uint atomicLoad_fe6cc3() {
+  uint v = 0u;
+  sb_rw.InterlockedOr(uint(0u), 0u, v);
+  uint res = v;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store(0u, atomicLoad_fe6cc3());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store(0u, atomicLoad_fe6cc3());
+}
+
diff --git a/test/tint/builtins/gen/var/atomicMax/51b9be.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/atomicMax/51b9be.wgsl.expected.ir.dxc.hlsl
index d14c326..49973cb 100644
--- a/test/tint/builtins/gen/var/atomicMax/51b9be.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/atomicMax/51b9be.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,21 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: atomicMax
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWByteAddressBuffer prevent_dce : register(u0);
+RWByteAddressBuffer sb_rw : register(u1);
+uint atomicMax_51b9be() {
+  uint arg_1 = 1u;
+  uint v = arg_1;
+  uint v_1 = 0u;
+  sb_rw.InterlockedMax(uint(0u), v, v_1);
+  uint res = v_1;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store(0u, atomicMax_51b9be());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store(0u, atomicMax_51b9be());
+}
+
diff --git a/test/tint/builtins/gen/var/atomicMax/51b9be.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/atomicMax/51b9be.wgsl.expected.ir.fxc.hlsl
index d14c326..49973cb 100644
--- a/test/tint/builtins/gen/var/atomicMax/51b9be.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/atomicMax/51b9be.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,21 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: atomicMax
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWByteAddressBuffer prevent_dce : register(u0);
+RWByteAddressBuffer sb_rw : register(u1);
+uint atomicMax_51b9be() {
+  uint arg_1 = 1u;
+  uint v = arg_1;
+  uint v_1 = 0u;
+  sb_rw.InterlockedMax(uint(0u), v, v_1);
+  uint res = v_1;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store(0u, atomicMax_51b9be());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store(0u, atomicMax_51b9be());
+}
+
diff --git a/test/tint/builtins/gen/var/atomicMax/92aa72.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/atomicMax/92aa72.wgsl.expected.ir.dxc.hlsl
index d14c326..8092b32 100644
--- a/test/tint/builtins/gen/var/atomicMax/92aa72.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/atomicMax/92aa72.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,21 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: atomicMax
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWByteAddressBuffer prevent_dce : register(u0);
+RWByteAddressBuffer sb_rw : register(u1);
+int atomicMax_92aa72() {
+  int arg_1 = 1;
+  int v = arg_1;
+  int v_1 = 0;
+  sb_rw.InterlockedMax(int(0u), v, v_1);
+  int res = v_1;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store(0u, asuint(atomicMax_92aa72()));
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store(0u, asuint(atomicMax_92aa72()));
+}
+
diff --git a/test/tint/builtins/gen/var/atomicMax/92aa72.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/atomicMax/92aa72.wgsl.expected.ir.fxc.hlsl
index d14c326..8092b32 100644
--- a/test/tint/builtins/gen/var/atomicMax/92aa72.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/atomicMax/92aa72.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,21 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: atomicMax
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWByteAddressBuffer prevent_dce : register(u0);
+RWByteAddressBuffer sb_rw : register(u1);
+int atomicMax_92aa72() {
+  int arg_1 = 1;
+  int v = arg_1;
+  int v_1 = 0;
+  sb_rw.InterlockedMax(int(0u), v, v_1);
+  int res = v_1;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store(0u, asuint(atomicMax_92aa72()));
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store(0u, asuint(atomicMax_92aa72()));
+}
+
diff --git a/test/tint/builtins/gen/var/atomicMax/a89cc3.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/atomicMax/a89cc3.wgsl.expected.ir.dxc.hlsl
index d14c326..1cb36c9 100644
--- a/test/tint/builtins/gen/var/atomicMax/a89cc3.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/atomicMax/a89cc3.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,29 @@
-SKIP: FAILED
+struct compute_main_inputs {
+  uint tint_local_index : SV_GroupIndex;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: atomicMax
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+
+RWByteAddressBuffer prevent_dce : register(u0);
+groupshared int arg_0;
+int atomicMax_a89cc3() {
+  int arg_1 = 1;
+  int v = 0;
+  InterlockedMax(arg_0, arg_1, v);
+  int res = v;
+  return res;
+}
+
+void compute_main_inner(uint tint_local_index) {
+  if ((tint_local_index == 0u)) {
+    int v_1 = 0;
+    InterlockedExchange(arg_0, 0, v_1);
+  }
+  GroupMemoryBarrierWithGroupSync();
+  prevent_dce.Store(0u, asuint(atomicMax_a89cc3()));
+}
+
+[numthreads(1, 1, 1)]
+void compute_main(compute_main_inputs inputs) {
+  compute_main_inner(inputs.tint_local_index);
+}
+
diff --git a/test/tint/builtins/gen/var/atomicMax/a89cc3.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/atomicMax/a89cc3.wgsl.expected.ir.fxc.hlsl
index d14c326..1cb36c9 100644
--- a/test/tint/builtins/gen/var/atomicMax/a89cc3.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/atomicMax/a89cc3.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,29 @@
-SKIP: FAILED
+struct compute_main_inputs {
+  uint tint_local_index : SV_GroupIndex;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: atomicMax
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+
+RWByteAddressBuffer prevent_dce : register(u0);
+groupshared int arg_0;
+int atomicMax_a89cc3() {
+  int arg_1 = 1;
+  int v = 0;
+  InterlockedMax(arg_0, arg_1, v);
+  int res = v;
+  return res;
+}
+
+void compute_main_inner(uint tint_local_index) {
+  if ((tint_local_index == 0u)) {
+    int v_1 = 0;
+    InterlockedExchange(arg_0, 0, v_1);
+  }
+  GroupMemoryBarrierWithGroupSync();
+  prevent_dce.Store(0u, asuint(atomicMax_a89cc3()));
+}
+
+[numthreads(1, 1, 1)]
+void compute_main(compute_main_inputs inputs) {
+  compute_main_inner(inputs.tint_local_index);
+}
+
diff --git a/test/tint/builtins/gen/var/atomicMax/beccfc.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/atomicMax/beccfc.wgsl.expected.ir.dxc.hlsl
index d14c326..52782b4 100644
--- a/test/tint/builtins/gen/var/atomicMax/beccfc.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/atomicMax/beccfc.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,29 @@
-SKIP: FAILED
+struct compute_main_inputs {
+  uint tint_local_index : SV_GroupIndex;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: atomicMax
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+
+RWByteAddressBuffer prevent_dce : register(u0);
+groupshared uint arg_0;
+uint atomicMax_beccfc() {
+  uint arg_1 = 1u;
+  uint v = 0u;
+  InterlockedMax(arg_0, arg_1, v);
+  uint res = v;
+  return res;
+}
+
+void compute_main_inner(uint tint_local_index) {
+  if ((tint_local_index == 0u)) {
+    uint v_1 = 0u;
+    InterlockedExchange(arg_0, 0u, v_1);
+  }
+  GroupMemoryBarrierWithGroupSync();
+  prevent_dce.Store(0u, atomicMax_beccfc());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main(compute_main_inputs inputs) {
+  compute_main_inner(inputs.tint_local_index);
+}
+
diff --git a/test/tint/builtins/gen/var/atomicMax/beccfc.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/atomicMax/beccfc.wgsl.expected.ir.fxc.hlsl
index d14c326..52782b4 100644
--- a/test/tint/builtins/gen/var/atomicMax/beccfc.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/atomicMax/beccfc.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,29 @@
-SKIP: FAILED
+struct compute_main_inputs {
+  uint tint_local_index : SV_GroupIndex;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: atomicMax
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+
+RWByteAddressBuffer prevent_dce : register(u0);
+groupshared uint arg_0;
+uint atomicMax_beccfc() {
+  uint arg_1 = 1u;
+  uint v = 0u;
+  InterlockedMax(arg_0, arg_1, v);
+  uint res = v;
+  return res;
+}
+
+void compute_main_inner(uint tint_local_index) {
+  if ((tint_local_index == 0u)) {
+    uint v_1 = 0u;
+    InterlockedExchange(arg_0, 0u, v_1);
+  }
+  GroupMemoryBarrierWithGroupSync();
+  prevent_dce.Store(0u, atomicMax_beccfc());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main(compute_main_inputs inputs) {
+  compute_main_inner(inputs.tint_local_index);
+}
+
diff --git a/test/tint/builtins/gen/var/atomicMin/278235.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/atomicMin/278235.wgsl.expected.ir.dxc.hlsl
index 34addfe..45d142b 100644
--- a/test/tint/builtins/gen/var/atomicMin/278235.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/atomicMin/278235.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,29 @@
-SKIP: FAILED
+struct compute_main_inputs {
+  uint tint_local_index : SV_GroupIndex;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: atomicMin
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+
+RWByteAddressBuffer prevent_dce : register(u0);
+groupshared int arg_0;
+int atomicMin_278235() {
+  int arg_1 = 1;
+  int v = 0;
+  InterlockedMin(arg_0, arg_1, v);
+  int res = v;
+  return res;
+}
+
+void compute_main_inner(uint tint_local_index) {
+  if ((tint_local_index == 0u)) {
+    int v_1 = 0;
+    InterlockedExchange(arg_0, 0, v_1);
+  }
+  GroupMemoryBarrierWithGroupSync();
+  prevent_dce.Store(0u, asuint(atomicMin_278235()));
+}
+
+[numthreads(1, 1, 1)]
+void compute_main(compute_main_inputs inputs) {
+  compute_main_inner(inputs.tint_local_index);
+}
+
diff --git a/test/tint/builtins/gen/var/atomicMin/278235.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/atomicMin/278235.wgsl.expected.ir.fxc.hlsl
index 34addfe..45d142b 100644
--- a/test/tint/builtins/gen/var/atomicMin/278235.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/atomicMin/278235.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,29 @@
-SKIP: FAILED
+struct compute_main_inputs {
+  uint tint_local_index : SV_GroupIndex;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: atomicMin
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+
+RWByteAddressBuffer prevent_dce : register(u0);
+groupshared int arg_0;
+int atomicMin_278235() {
+  int arg_1 = 1;
+  int v = 0;
+  InterlockedMin(arg_0, arg_1, v);
+  int res = v;
+  return res;
+}
+
+void compute_main_inner(uint tint_local_index) {
+  if ((tint_local_index == 0u)) {
+    int v_1 = 0;
+    InterlockedExchange(arg_0, 0, v_1);
+  }
+  GroupMemoryBarrierWithGroupSync();
+  prevent_dce.Store(0u, asuint(atomicMin_278235()));
+}
+
+[numthreads(1, 1, 1)]
+void compute_main(compute_main_inputs inputs) {
+  compute_main_inner(inputs.tint_local_index);
+}
+
diff --git a/test/tint/builtins/gen/var/atomicMin/69d383.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/atomicMin/69d383.wgsl.expected.ir.dxc.hlsl
index 34addfe..f890076 100644
--- a/test/tint/builtins/gen/var/atomicMin/69d383.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/atomicMin/69d383.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,29 @@
-SKIP: FAILED
+struct compute_main_inputs {
+  uint tint_local_index : SV_GroupIndex;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: atomicMin
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+
+RWByteAddressBuffer prevent_dce : register(u0);
+groupshared uint arg_0;
+uint atomicMin_69d383() {
+  uint arg_1 = 1u;
+  uint v = 0u;
+  InterlockedMin(arg_0, arg_1, v);
+  uint res = v;
+  return res;
+}
+
+void compute_main_inner(uint tint_local_index) {
+  if ((tint_local_index == 0u)) {
+    uint v_1 = 0u;
+    InterlockedExchange(arg_0, 0u, v_1);
+  }
+  GroupMemoryBarrierWithGroupSync();
+  prevent_dce.Store(0u, atomicMin_69d383());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main(compute_main_inputs inputs) {
+  compute_main_inner(inputs.tint_local_index);
+}
+
diff --git a/test/tint/builtins/gen/var/atomicMin/69d383.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/atomicMin/69d383.wgsl.expected.ir.fxc.hlsl
index 34addfe..f890076 100644
--- a/test/tint/builtins/gen/var/atomicMin/69d383.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/atomicMin/69d383.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,29 @@
-SKIP: FAILED
+struct compute_main_inputs {
+  uint tint_local_index : SV_GroupIndex;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: atomicMin
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+
+RWByteAddressBuffer prevent_dce : register(u0);
+groupshared uint arg_0;
+uint atomicMin_69d383() {
+  uint arg_1 = 1u;
+  uint v = 0u;
+  InterlockedMin(arg_0, arg_1, v);
+  uint res = v;
+  return res;
+}
+
+void compute_main_inner(uint tint_local_index) {
+  if ((tint_local_index == 0u)) {
+    uint v_1 = 0u;
+    InterlockedExchange(arg_0, 0u, v_1);
+  }
+  GroupMemoryBarrierWithGroupSync();
+  prevent_dce.Store(0u, atomicMin_69d383());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main(compute_main_inputs inputs) {
+  compute_main_inner(inputs.tint_local_index);
+}
+
diff --git a/test/tint/builtins/gen/var/atomicMin/8e38dc.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/atomicMin/8e38dc.wgsl.expected.ir.dxc.hlsl
index 34addfe..e80eabe 100644
--- a/test/tint/builtins/gen/var/atomicMin/8e38dc.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/atomicMin/8e38dc.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,21 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: atomicMin
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWByteAddressBuffer prevent_dce : register(u0);
+RWByteAddressBuffer sb_rw : register(u1);
+int atomicMin_8e38dc() {
+  int arg_1 = 1;
+  int v = arg_1;
+  int v_1 = 0;
+  sb_rw.InterlockedMin(int(0u), v, v_1);
+  int res = v_1;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store(0u, asuint(atomicMin_8e38dc()));
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store(0u, asuint(atomicMin_8e38dc()));
+}
+
diff --git a/test/tint/builtins/gen/var/atomicMin/8e38dc.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/atomicMin/8e38dc.wgsl.expected.ir.fxc.hlsl
index 34addfe..e80eabe 100644
--- a/test/tint/builtins/gen/var/atomicMin/8e38dc.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/atomicMin/8e38dc.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,21 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: atomicMin
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWByteAddressBuffer prevent_dce : register(u0);
+RWByteAddressBuffer sb_rw : register(u1);
+int atomicMin_8e38dc() {
+  int arg_1 = 1;
+  int v = arg_1;
+  int v_1 = 0;
+  sb_rw.InterlockedMin(int(0u), v, v_1);
+  int res = v_1;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store(0u, asuint(atomicMin_8e38dc()));
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store(0u, asuint(atomicMin_8e38dc()));
+}
+
diff --git a/test/tint/builtins/gen/var/atomicMin/c67a74.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/atomicMin/c67a74.wgsl.expected.ir.dxc.hlsl
index 34addfe..aa529d2 100644
--- a/test/tint/builtins/gen/var/atomicMin/c67a74.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/atomicMin/c67a74.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,21 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: atomicMin
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWByteAddressBuffer prevent_dce : register(u0);
+RWByteAddressBuffer sb_rw : register(u1);
+uint atomicMin_c67a74() {
+  uint arg_1 = 1u;
+  uint v = arg_1;
+  uint v_1 = 0u;
+  sb_rw.InterlockedMin(uint(0u), v, v_1);
+  uint res = v_1;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store(0u, atomicMin_c67a74());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store(0u, atomicMin_c67a74());
+}
+
diff --git a/test/tint/builtins/gen/var/atomicMin/c67a74.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/atomicMin/c67a74.wgsl.expected.ir.fxc.hlsl
index 34addfe..aa529d2 100644
--- a/test/tint/builtins/gen/var/atomicMin/c67a74.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/atomicMin/c67a74.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,21 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: atomicMin
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWByteAddressBuffer prevent_dce : register(u0);
+RWByteAddressBuffer sb_rw : register(u1);
+uint atomicMin_c67a74() {
+  uint arg_1 = 1u;
+  uint v = arg_1;
+  uint v_1 = 0u;
+  sb_rw.InterlockedMin(uint(0u), v, v_1);
+  uint res = v_1;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store(0u, atomicMin_c67a74());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store(0u, atomicMin_c67a74());
+}
+
diff --git a/test/tint/builtins/gen/var/atomicOr/5e3d61.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/atomicOr/5e3d61.wgsl.expected.ir.dxc.hlsl
index af0604b..a99a5a4 100644
--- a/test/tint/builtins/gen/var/atomicOr/5e3d61.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/atomicOr/5e3d61.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,29 @@
-SKIP: FAILED
+struct compute_main_inputs {
+  uint tint_local_index : SV_GroupIndex;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: atomicOr
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+
+RWByteAddressBuffer prevent_dce : register(u0);
+groupshared uint arg_0;
+uint atomicOr_5e3d61() {
+  uint arg_1 = 1u;
+  uint v = 0u;
+  InterlockedOr(arg_0, arg_1, v);
+  uint res = v;
+  return res;
+}
+
+void compute_main_inner(uint tint_local_index) {
+  if ((tint_local_index == 0u)) {
+    uint v_1 = 0u;
+    InterlockedExchange(arg_0, 0u, v_1);
+  }
+  GroupMemoryBarrierWithGroupSync();
+  prevent_dce.Store(0u, atomicOr_5e3d61());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main(compute_main_inputs inputs) {
+  compute_main_inner(inputs.tint_local_index);
+}
+
diff --git a/test/tint/builtins/gen/var/atomicOr/5e3d61.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/atomicOr/5e3d61.wgsl.expected.ir.fxc.hlsl
index af0604b..a99a5a4 100644
--- a/test/tint/builtins/gen/var/atomicOr/5e3d61.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/atomicOr/5e3d61.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,29 @@
-SKIP: FAILED
+struct compute_main_inputs {
+  uint tint_local_index : SV_GroupIndex;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: atomicOr
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+
+RWByteAddressBuffer prevent_dce : register(u0);
+groupshared uint arg_0;
+uint atomicOr_5e3d61() {
+  uint arg_1 = 1u;
+  uint v = 0u;
+  InterlockedOr(arg_0, arg_1, v);
+  uint res = v;
+  return res;
+}
+
+void compute_main_inner(uint tint_local_index) {
+  if ((tint_local_index == 0u)) {
+    uint v_1 = 0u;
+    InterlockedExchange(arg_0, 0u, v_1);
+  }
+  GroupMemoryBarrierWithGroupSync();
+  prevent_dce.Store(0u, atomicOr_5e3d61());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main(compute_main_inputs inputs) {
+  compute_main_inner(inputs.tint_local_index);
+}
+
diff --git a/test/tint/builtins/gen/var/atomicOr/5e95d4.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/atomicOr/5e95d4.wgsl.expected.ir.dxc.hlsl
index af0604b..1d13049 100644
--- a/test/tint/builtins/gen/var/atomicOr/5e95d4.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/atomicOr/5e95d4.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,21 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: atomicOr
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWByteAddressBuffer prevent_dce : register(u0);
+RWByteAddressBuffer sb_rw : register(u1);
+uint atomicOr_5e95d4() {
+  uint arg_1 = 1u;
+  uint v = arg_1;
+  uint v_1 = 0u;
+  sb_rw.InterlockedOr(uint(0u), v, v_1);
+  uint res = v_1;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store(0u, atomicOr_5e95d4());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store(0u, atomicOr_5e95d4());
+}
+
diff --git a/test/tint/builtins/gen/var/atomicOr/5e95d4.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/atomicOr/5e95d4.wgsl.expected.ir.fxc.hlsl
index af0604b..1d13049 100644
--- a/test/tint/builtins/gen/var/atomicOr/5e95d4.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/atomicOr/5e95d4.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,21 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: atomicOr
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWByteAddressBuffer prevent_dce : register(u0);
+RWByteAddressBuffer sb_rw : register(u1);
+uint atomicOr_5e95d4() {
+  uint arg_1 = 1u;
+  uint v = arg_1;
+  uint v_1 = 0u;
+  sb_rw.InterlockedOr(uint(0u), v, v_1);
+  uint res = v_1;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store(0u, atomicOr_5e95d4());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store(0u, atomicOr_5e95d4());
+}
+
diff --git a/test/tint/builtins/gen/var/atomicOr/8d96a0.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/atomicOr/8d96a0.wgsl.expected.ir.dxc.hlsl
index af0604b..b29fe9d 100644
--- a/test/tint/builtins/gen/var/atomicOr/8d96a0.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/atomicOr/8d96a0.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,21 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: atomicOr
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWByteAddressBuffer prevent_dce : register(u0);
+RWByteAddressBuffer sb_rw : register(u1);
+int atomicOr_8d96a0() {
+  int arg_1 = 1;
+  int v = arg_1;
+  int v_1 = 0;
+  sb_rw.InterlockedOr(int(0u), v, v_1);
+  int res = v_1;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store(0u, asuint(atomicOr_8d96a0()));
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store(0u, asuint(atomicOr_8d96a0()));
+}
+
diff --git a/test/tint/builtins/gen/var/atomicOr/8d96a0.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/atomicOr/8d96a0.wgsl.expected.ir.fxc.hlsl
index af0604b..b29fe9d 100644
--- a/test/tint/builtins/gen/var/atomicOr/8d96a0.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/atomicOr/8d96a0.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,21 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: atomicOr
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWByteAddressBuffer prevent_dce : register(u0);
+RWByteAddressBuffer sb_rw : register(u1);
+int atomicOr_8d96a0() {
+  int arg_1 = 1;
+  int v = arg_1;
+  int v_1 = 0;
+  sb_rw.InterlockedOr(int(0u), v, v_1);
+  int res = v_1;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store(0u, asuint(atomicOr_8d96a0()));
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store(0u, asuint(atomicOr_8d96a0()));
+}
+
diff --git a/test/tint/builtins/gen/var/atomicOr/d09248.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/atomicOr/d09248.wgsl.expected.ir.dxc.hlsl
index af0604b..7da2a47 100644
--- a/test/tint/builtins/gen/var/atomicOr/d09248.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/atomicOr/d09248.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,29 @@
-SKIP: FAILED
+struct compute_main_inputs {
+  uint tint_local_index : SV_GroupIndex;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: atomicOr
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+
+RWByteAddressBuffer prevent_dce : register(u0);
+groupshared int arg_0;
+int atomicOr_d09248() {
+  int arg_1 = 1;
+  int v = 0;
+  InterlockedOr(arg_0, arg_1, v);
+  int res = v;
+  return res;
+}
+
+void compute_main_inner(uint tint_local_index) {
+  if ((tint_local_index == 0u)) {
+    int v_1 = 0;
+    InterlockedExchange(arg_0, 0, v_1);
+  }
+  GroupMemoryBarrierWithGroupSync();
+  prevent_dce.Store(0u, asuint(atomicOr_d09248()));
+}
+
+[numthreads(1, 1, 1)]
+void compute_main(compute_main_inputs inputs) {
+  compute_main_inner(inputs.tint_local_index);
+}
+
diff --git a/test/tint/builtins/gen/var/atomicOr/d09248.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/atomicOr/d09248.wgsl.expected.ir.fxc.hlsl
index af0604b..7da2a47 100644
--- a/test/tint/builtins/gen/var/atomicOr/d09248.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/atomicOr/d09248.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,29 @@
-SKIP: FAILED
+struct compute_main_inputs {
+  uint tint_local_index : SV_GroupIndex;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: atomicOr
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+
+RWByteAddressBuffer prevent_dce : register(u0);
+groupshared int arg_0;
+int atomicOr_d09248() {
+  int arg_1 = 1;
+  int v = 0;
+  InterlockedOr(arg_0, arg_1, v);
+  int res = v;
+  return res;
+}
+
+void compute_main_inner(uint tint_local_index) {
+  if ((tint_local_index == 0u)) {
+    int v_1 = 0;
+    InterlockedExchange(arg_0, 0, v_1);
+  }
+  GroupMemoryBarrierWithGroupSync();
+  prevent_dce.Store(0u, asuint(atomicOr_d09248()));
+}
+
+[numthreads(1, 1, 1)]
+void compute_main(compute_main_inputs inputs) {
+  compute_main_inner(inputs.tint_local_index);
+}
+
diff --git a/test/tint/builtins/gen/var/atomicStore/726882.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/atomicStore/726882.wgsl.expected.ir.dxc.hlsl
index 9aa6a33..8311dfb 100644
--- a/test/tint/builtins/gen/var/atomicStore/726882.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/atomicStore/726882.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,26 @@
-SKIP: FAILED
+struct compute_main_inputs {
+  uint tint_local_index : SV_GroupIndex;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: atomicStore
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+
+groupshared uint arg_0;
+void atomicStore_726882() {
+  uint arg_1 = 1u;
+  uint v = 0u;
+  InterlockedExchange(arg_0, arg_1, v);
+}
+
+void compute_main_inner(uint tint_local_index) {
+  if ((tint_local_index == 0u)) {
+    uint v_1 = 0u;
+    InterlockedExchange(arg_0, 0u, v_1);
+  }
+  GroupMemoryBarrierWithGroupSync();
+  atomicStore_726882();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main(compute_main_inputs inputs) {
+  compute_main_inner(inputs.tint_local_index);
+}
+
diff --git a/test/tint/builtins/gen/var/atomicStore/726882.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/atomicStore/726882.wgsl.expected.ir.fxc.hlsl
index 9aa6a33..8311dfb 100644
--- a/test/tint/builtins/gen/var/atomicStore/726882.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/atomicStore/726882.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,26 @@
-SKIP: FAILED
+struct compute_main_inputs {
+  uint tint_local_index : SV_GroupIndex;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: atomicStore
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+
+groupshared uint arg_0;
+void atomicStore_726882() {
+  uint arg_1 = 1u;
+  uint v = 0u;
+  InterlockedExchange(arg_0, arg_1, v);
+}
+
+void compute_main_inner(uint tint_local_index) {
+  if ((tint_local_index == 0u)) {
+    uint v_1 = 0u;
+    InterlockedExchange(arg_0, 0u, v_1);
+  }
+  GroupMemoryBarrierWithGroupSync();
+  atomicStore_726882();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main(compute_main_inputs inputs) {
+  compute_main_inner(inputs.tint_local_index);
+}
+
diff --git a/test/tint/builtins/gen/var/atomicStore/8bea94.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/atomicStore/8bea94.wgsl.expected.ir.dxc.hlsl
index 9aa6a33..93fa8af 100644
--- a/test/tint/builtins/gen/var/atomicStore/8bea94.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/atomicStore/8bea94.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,26 @@
-SKIP: FAILED
+struct compute_main_inputs {
+  uint tint_local_index : SV_GroupIndex;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: atomicStore
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+
+groupshared int arg_0;
+void atomicStore_8bea94() {
+  int arg_1 = 1;
+  int v = 0;
+  InterlockedExchange(arg_0, arg_1, v);
+}
+
+void compute_main_inner(uint tint_local_index) {
+  if ((tint_local_index == 0u)) {
+    int v_1 = 0;
+    InterlockedExchange(arg_0, 0, v_1);
+  }
+  GroupMemoryBarrierWithGroupSync();
+  atomicStore_8bea94();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main(compute_main_inputs inputs) {
+  compute_main_inner(inputs.tint_local_index);
+}
+
diff --git a/test/tint/builtins/gen/var/atomicStore/8bea94.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/atomicStore/8bea94.wgsl.expected.ir.fxc.hlsl
index 9aa6a33..93fa8af 100644
--- a/test/tint/builtins/gen/var/atomicStore/8bea94.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/atomicStore/8bea94.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,26 @@
-SKIP: FAILED
+struct compute_main_inputs {
+  uint tint_local_index : SV_GroupIndex;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: atomicStore
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+
+groupshared int arg_0;
+void atomicStore_8bea94() {
+  int arg_1 = 1;
+  int v = 0;
+  InterlockedExchange(arg_0, arg_1, v);
+}
+
+void compute_main_inner(uint tint_local_index) {
+  if ((tint_local_index == 0u)) {
+    int v_1 = 0;
+    InterlockedExchange(arg_0, 0, v_1);
+  }
+  GroupMemoryBarrierWithGroupSync();
+  atomicStore_8bea94();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main(compute_main_inputs inputs) {
+  compute_main_inner(inputs.tint_local_index);
+}
+
diff --git a/test/tint/builtins/gen/var/atomicStore/cdc29e.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/atomicStore/cdc29e.wgsl.expected.ir.dxc.hlsl
index 9aa6a33..a9be753 100644
--- a/test/tint/builtins/gen/var/atomicStore/cdc29e.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/atomicStore/cdc29e.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,18 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: atomicStore
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWByteAddressBuffer sb_rw : register(u0);
+void atomicStore_cdc29e() {
+  uint arg_1 = 1u;
+  uint v = arg_1;
+  uint v_1 = 0u;
+  sb_rw.InterlockedExchange(uint(0u), v, v_1);
+}
+
+void fragment_main() {
+  atomicStore_cdc29e();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  atomicStore_cdc29e();
+}
+
diff --git a/test/tint/builtins/gen/var/atomicStore/cdc29e.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/atomicStore/cdc29e.wgsl.expected.ir.fxc.hlsl
index 9aa6a33..a9be753 100644
--- a/test/tint/builtins/gen/var/atomicStore/cdc29e.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/atomicStore/cdc29e.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,18 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: atomicStore
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWByteAddressBuffer sb_rw : register(u0);
+void atomicStore_cdc29e() {
+  uint arg_1 = 1u;
+  uint v = arg_1;
+  uint v_1 = 0u;
+  sb_rw.InterlockedExchange(uint(0u), v, v_1);
+}
+
+void fragment_main() {
+  atomicStore_cdc29e();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  atomicStore_cdc29e();
+}
+
diff --git a/test/tint/builtins/gen/var/atomicStore/d1e9a6.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/atomicStore/d1e9a6.wgsl.expected.ir.dxc.hlsl
index 9aa6a33..88f4985 100644
--- a/test/tint/builtins/gen/var/atomicStore/d1e9a6.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/atomicStore/d1e9a6.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,18 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: atomicStore
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWByteAddressBuffer sb_rw : register(u0);
+void atomicStore_d1e9a6() {
+  int arg_1 = 1;
+  int v = arg_1;
+  int v_1 = 0;
+  sb_rw.InterlockedExchange(int(0u), v, v_1);
+}
+
+void fragment_main() {
+  atomicStore_d1e9a6();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  atomicStore_d1e9a6();
+}
+
diff --git a/test/tint/builtins/gen/var/atomicStore/d1e9a6.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/atomicStore/d1e9a6.wgsl.expected.ir.fxc.hlsl
index 9aa6a33..88f4985 100644
--- a/test/tint/builtins/gen/var/atomicStore/d1e9a6.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/atomicStore/d1e9a6.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,18 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: atomicStore
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWByteAddressBuffer sb_rw : register(u0);
+void atomicStore_d1e9a6() {
+  int arg_1 = 1;
+  int v = arg_1;
+  int v_1 = 0;
+  sb_rw.InterlockedExchange(int(0u), v, v_1);
+}
+
+void fragment_main() {
+  atomicStore_d1e9a6();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  atomicStore_d1e9a6();
+}
+
diff --git a/test/tint/builtins/gen/var/atomicSub/051100.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/atomicSub/051100.wgsl.expected.ir.dxc.hlsl
index 7a4d08e..a4edf0e 100644
--- a/test/tint/builtins/gen/var/atomicSub/051100.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/atomicSub/051100.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,21 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: atomicSub
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWByteAddressBuffer prevent_dce : register(u0);
+RWByteAddressBuffer sb_rw : register(u1);
+int atomicSub_051100() {
+  int arg_1 = 1;
+  int v = 0;
+  int v_1 = -(arg_1);
+  sb_rw.InterlockedAdd(int(0u), v_1, v);
+  int res = v;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store(0u, asuint(atomicSub_051100()));
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store(0u, asuint(atomicSub_051100()));
+}
+
diff --git a/test/tint/builtins/gen/var/atomicSub/051100.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/atomicSub/051100.wgsl.expected.ir.fxc.hlsl
index 7a4d08e..a4edf0e 100644
--- a/test/tint/builtins/gen/var/atomicSub/051100.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/atomicSub/051100.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,21 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: atomicSub
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWByteAddressBuffer prevent_dce : register(u0);
+RWByteAddressBuffer sb_rw : register(u1);
+int atomicSub_051100() {
+  int arg_1 = 1;
+  int v = 0;
+  int v_1 = -(arg_1);
+  sb_rw.InterlockedAdd(int(0u), v_1, v);
+  int res = v;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store(0u, asuint(atomicSub_051100()));
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store(0u, asuint(atomicSub_051100()));
+}
+
diff --git a/test/tint/builtins/gen/var/atomicSub/0d26c2.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/atomicSub/0d26c2.wgsl.expected.ir.dxc.hlsl
index 7a4d08e..f7a6ce6 100644
--- a/test/tint/builtins/gen/var/atomicSub/0d26c2.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/atomicSub/0d26c2.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,80 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: atomicSub
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : u32;
+
+var<workgroup> arg_0 : atomic<u32>;
+
+fn atomicSub_0d26c2() -> u32 {
+  var arg_1 = 1u;
+  var res : u32 = atomicSub(&(arg_0), arg_1);
+  return res;
+}
+
+@compute @workgroup_size(1)
+fn compute_main() {
+  prevent_dce = atomicSub_0d26c2();
+}
+
+Failed to generate: :15:5 error: unary: no matching overload for 'operator - (u32)'
+
+2 candidate operators:
+ • 'operator - (T  ✗ ) -> T' where:
+      ✗  'T' is 'f32', 'i32' or 'f16'
+ • 'operator - (vecN<T>  ✗ ) -> vecN<T>' where:
+      ✗  'T' is 'f32', 'i32' or 'f16'
+
+    %7:u32 = negation %5
+    ^^^^^^^^^^^^^^^^^^^^
+
+:11:3 note: in block
+  $B2: {
+  ^^^
+
+note: # Disassembly
+compute_main_inputs = struct @align(4) {
+  tint_local_index:u32 @offset(0), @builtin(local_invocation_index)
+}
+
+$B1: {  # root
+  %prevent_dce:hlsl.byte_address_buffer<read_write> = var @binding_point(0, 0)
+  %arg_0:ptr<workgroup, atomic<u32>, read_write> = var
+}
+
+%atomicSub_0d26c2 = func():u32 {
+  $B2: {
+    %arg_1:ptr<function, u32, read_write> = var, 1u
+    %5:u32 = load %arg_1
+    %6:ptr<function, u32, read_write> = var, 0u
+    %7:u32 = negation %5
+    %8:void = hlsl.InterlockedAdd %arg_0, %7, %6
+    %9:u32 = load %6
+    %res:ptr<function, u32, read_write> = var, %9
+    %11:u32 = load %res
+    ret %11
+  }
+}
+%compute_main_inner = func(%tint_local_index:u32):void {
+  $B3: {
+    %14:bool = eq %tint_local_index, 0u
+    if %14 [t: $B4] {  # if_1
+      $B4: {  # true
+        %15:ptr<function, u32, read_write> = var, 0u
+        %16:void = hlsl.InterlockedExchange %arg_0, 0u, %15
+        exit_if  # if_1
+      }
+    }
+    %17:void = workgroupBarrier
+    %18:u32 = call %atomicSub_0d26c2
+    %19:void = %prevent_dce.Store 0u, %18
+    ret
+  }
+}
+%compute_main = @compute @workgroup_size(1, 1, 1) func(%inputs:compute_main_inputs):void {
+  $B5: {
+    %22:u32 = access %inputs, 0u
+    %23:void = call %compute_main_inner, %22
+    ret
+  }
+}
+
diff --git a/test/tint/builtins/gen/var/atomicSub/0d26c2.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/atomicSub/0d26c2.wgsl.expected.ir.fxc.hlsl
index 7a4d08e..f7a6ce6 100644
--- a/test/tint/builtins/gen/var/atomicSub/0d26c2.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/atomicSub/0d26c2.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,80 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: atomicSub
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : u32;
+
+var<workgroup> arg_0 : atomic<u32>;
+
+fn atomicSub_0d26c2() -> u32 {
+  var arg_1 = 1u;
+  var res : u32 = atomicSub(&(arg_0), arg_1);
+  return res;
+}
+
+@compute @workgroup_size(1)
+fn compute_main() {
+  prevent_dce = atomicSub_0d26c2();
+}
+
+Failed to generate: :15:5 error: unary: no matching overload for 'operator - (u32)'
+
+2 candidate operators:
+ • 'operator - (T  ✗ ) -> T' where:
+      ✗  'T' is 'f32', 'i32' or 'f16'
+ • 'operator - (vecN<T>  ✗ ) -> vecN<T>' where:
+      ✗  'T' is 'f32', 'i32' or 'f16'
+
+    %7:u32 = negation %5
+    ^^^^^^^^^^^^^^^^^^^^
+
+:11:3 note: in block
+  $B2: {
+  ^^^
+
+note: # Disassembly
+compute_main_inputs = struct @align(4) {
+  tint_local_index:u32 @offset(0), @builtin(local_invocation_index)
+}
+
+$B1: {  # root
+  %prevent_dce:hlsl.byte_address_buffer<read_write> = var @binding_point(0, 0)
+  %arg_0:ptr<workgroup, atomic<u32>, read_write> = var
+}
+
+%atomicSub_0d26c2 = func():u32 {
+  $B2: {
+    %arg_1:ptr<function, u32, read_write> = var, 1u
+    %5:u32 = load %arg_1
+    %6:ptr<function, u32, read_write> = var, 0u
+    %7:u32 = negation %5
+    %8:void = hlsl.InterlockedAdd %arg_0, %7, %6
+    %9:u32 = load %6
+    %res:ptr<function, u32, read_write> = var, %9
+    %11:u32 = load %res
+    ret %11
+  }
+}
+%compute_main_inner = func(%tint_local_index:u32):void {
+  $B3: {
+    %14:bool = eq %tint_local_index, 0u
+    if %14 [t: $B4] {  # if_1
+      $B4: {  # true
+        %15:ptr<function, u32, read_write> = var, 0u
+        %16:void = hlsl.InterlockedExchange %arg_0, 0u, %15
+        exit_if  # if_1
+      }
+    }
+    %17:void = workgroupBarrier
+    %18:u32 = call %atomicSub_0d26c2
+    %19:void = %prevent_dce.Store 0u, %18
+    ret
+  }
+}
+%compute_main = @compute @workgroup_size(1, 1, 1) func(%inputs:compute_main_inputs):void {
+  $B5: {
+    %22:u32 = access %inputs, 0u
+    %23:void = call %compute_main_inner, %22
+    ret
+  }
+}
+
diff --git a/test/tint/builtins/gen/var/atomicSub/15bfc9.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/atomicSub/15bfc9.wgsl.expected.ir.dxc.hlsl
index 7a4d08e..3a42851 100644
--- a/test/tint/builtins/gen/var/atomicSub/15bfc9.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/atomicSub/15bfc9.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,83 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: atomicSub
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : u32;
+
+struct SB_RW {
+  arg_0 : atomic<u32>,
+}
+
+@group(0) @binding(1) var<storage, read_write> sb_rw : SB_RW;
+
+fn atomicSub_15bfc9() -> u32 {
+  var arg_1 = 1u;
+  var res : u32 = atomicSub(&(sb_rw.arg_0), arg_1);
+  return res;
+}
+
+@fragment
+fn fragment_main() {
+  prevent_dce = atomicSub_15bfc9();
+}
+
+@compute @workgroup_size(1)
+fn compute_main() {
+  prevent_dce = atomicSub_15bfc9();
+}
+
+Failed to generate: :15:5 error: unary: no matching overload for 'operator - (u32)'
+
+2 candidate operators:
+ • 'operator - (T  ✗ ) -> T' where:
+      ✗  'T' is 'f32', 'i32' or 'f16'
+ • 'operator - (vecN<T>  ✗ ) -> vecN<T>' where:
+      ✗  'T' is 'f32', 'i32' or 'f16'
+
+    %7:u32 = negation %5
+    ^^^^^^^^^^^^^^^^^^^^
+
+:11:3 note: in block
+  $B2: {
+  ^^^
+
+note: # Disassembly
+SB_RW = struct @align(4) {
+  arg_0:atomic<u32> @offset(0)
+}
+
+$B1: {  # root
+  %prevent_dce:hlsl.byte_address_buffer<read_write> = var @binding_point(0, 0)
+  %sb_rw:hlsl.byte_address_buffer<read_write> = var @binding_point(0, 1)
+}
+
+%atomicSub_15bfc9 = func():u32 {
+  $B2: {
+    %arg_1:ptr<function, u32, read_write> = var, 1u
+    %5:u32 = load %arg_1
+    %6:ptr<function, u32, read_write> = var, 0u
+    %7:u32 = negation %5
+    %8:u32 = convert 0u
+    %9:void = %sb_rw.InterlockedAdd %8, %7, %6
+    %10:u32 = load %6
+    %res:ptr<function, u32, read_write> = var, %10
+    %12:u32 = load %res
+    ret %12
+  }
+}
+%fragment_main = @fragment func():void {
+  $B3: {
+    %14:u32 = call %atomicSub_15bfc9
+    %15:u32 = bitcast %14
+    %16:void = %prevent_dce.Store 0u, %15
+    ret
+  }
+}
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B4: {
+    %18:u32 = call %atomicSub_15bfc9
+    %19:u32 = bitcast %18
+    %20:void = %prevent_dce.Store 0u, %19
+    ret
+  }
+}
+
diff --git a/test/tint/builtins/gen/var/atomicSub/15bfc9.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/atomicSub/15bfc9.wgsl.expected.ir.fxc.hlsl
index 7a4d08e..3a42851 100644
--- a/test/tint/builtins/gen/var/atomicSub/15bfc9.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/atomicSub/15bfc9.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,83 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: atomicSub
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : u32;
+
+struct SB_RW {
+  arg_0 : atomic<u32>,
+}
+
+@group(0) @binding(1) var<storage, read_write> sb_rw : SB_RW;
+
+fn atomicSub_15bfc9() -> u32 {
+  var arg_1 = 1u;
+  var res : u32 = atomicSub(&(sb_rw.arg_0), arg_1);
+  return res;
+}
+
+@fragment
+fn fragment_main() {
+  prevent_dce = atomicSub_15bfc9();
+}
+
+@compute @workgroup_size(1)
+fn compute_main() {
+  prevent_dce = atomicSub_15bfc9();
+}
+
+Failed to generate: :15:5 error: unary: no matching overload for 'operator - (u32)'
+
+2 candidate operators:
+ • 'operator - (T  ✗ ) -> T' where:
+      ✗  'T' is 'f32', 'i32' or 'f16'
+ • 'operator - (vecN<T>  ✗ ) -> vecN<T>' where:
+      ✗  'T' is 'f32', 'i32' or 'f16'
+
+    %7:u32 = negation %5
+    ^^^^^^^^^^^^^^^^^^^^
+
+:11:3 note: in block
+  $B2: {
+  ^^^
+
+note: # Disassembly
+SB_RW = struct @align(4) {
+  arg_0:atomic<u32> @offset(0)
+}
+
+$B1: {  # root
+  %prevent_dce:hlsl.byte_address_buffer<read_write> = var @binding_point(0, 0)
+  %sb_rw:hlsl.byte_address_buffer<read_write> = var @binding_point(0, 1)
+}
+
+%atomicSub_15bfc9 = func():u32 {
+  $B2: {
+    %arg_1:ptr<function, u32, read_write> = var, 1u
+    %5:u32 = load %arg_1
+    %6:ptr<function, u32, read_write> = var, 0u
+    %7:u32 = negation %5
+    %8:u32 = convert 0u
+    %9:void = %sb_rw.InterlockedAdd %8, %7, %6
+    %10:u32 = load %6
+    %res:ptr<function, u32, read_write> = var, %10
+    %12:u32 = load %res
+    ret %12
+  }
+}
+%fragment_main = @fragment func():void {
+  $B3: {
+    %14:u32 = call %atomicSub_15bfc9
+    %15:u32 = bitcast %14
+    %16:void = %prevent_dce.Store 0u, %15
+    ret
+  }
+}
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B4: {
+    %18:u32 = call %atomicSub_15bfc9
+    %19:u32 = bitcast %18
+    %20:void = %prevent_dce.Store 0u, %19
+    ret
+  }
+}
+
diff --git a/test/tint/builtins/gen/var/atomicSub/77883a.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/atomicSub/77883a.wgsl.expected.ir.dxc.hlsl
index 7a4d08e..f3df1cd 100644
--- a/test/tint/builtins/gen/var/atomicSub/77883a.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/atomicSub/77883a.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,29 @@
-SKIP: FAILED
+struct compute_main_inputs {
+  uint tint_local_index : SV_GroupIndex;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: atomicSub
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+
+RWByteAddressBuffer prevent_dce : register(u0);
+groupshared int arg_0;
+int atomicSub_77883a() {
+  int arg_1 = 1;
+  int v = 0;
+  InterlockedAdd(arg_0, -(arg_1), v);
+  int res = v;
+  return res;
+}
+
+void compute_main_inner(uint tint_local_index) {
+  if ((tint_local_index == 0u)) {
+    int v_1 = 0;
+    InterlockedExchange(arg_0, 0, v_1);
+  }
+  GroupMemoryBarrierWithGroupSync();
+  prevent_dce.Store(0u, asuint(atomicSub_77883a()));
+}
+
+[numthreads(1, 1, 1)]
+void compute_main(compute_main_inputs inputs) {
+  compute_main_inner(inputs.tint_local_index);
+}
+
diff --git a/test/tint/builtins/gen/var/atomicSub/77883a.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/atomicSub/77883a.wgsl.expected.ir.fxc.hlsl
index 7a4d08e..f3df1cd 100644
--- a/test/tint/builtins/gen/var/atomicSub/77883a.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/atomicSub/77883a.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,29 @@
-SKIP: FAILED
+struct compute_main_inputs {
+  uint tint_local_index : SV_GroupIndex;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: atomicSub
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+
+RWByteAddressBuffer prevent_dce : register(u0);
+groupshared int arg_0;
+int atomicSub_77883a() {
+  int arg_1 = 1;
+  int v = 0;
+  InterlockedAdd(arg_0, -(arg_1), v);
+  int res = v;
+  return res;
+}
+
+void compute_main_inner(uint tint_local_index) {
+  if ((tint_local_index == 0u)) {
+    int v_1 = 0;
+    InterlockedExchange(arg_0, 0, v_1);
+  }
+  GroupMemoryBarrierWithGroupSync();
+  prevent_dce.Store(0u, asuint(atomicSub_77883a()));
+}
+
+[numthreads(1, 1, 1)]
+void compute_main(compute_main_inputs inputs) {
+  compute_main_inner(inputs.tint_local_index);
+}
+
diff --git a/test/tint/builtins/gen/var/atomicXor/54510e.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/atomicXor/54510e.wgsl.expected.ir.dxc.hlsl
index 30cc037..54fa50b 100644
--- a/test/tint/builtins/gen/var/atomicXor/54510e.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/atomicXor/54510e.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,21 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: atomicXor
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWByteAddressBuffer prevent_dce : register(u0);
+RWByteAddressBuffer sb_rw : register(u1);
+uint atomicXor_54510e() {
+  uint arg_1 = 1u;
+  uint v = arg_1;
+  uint v_1 = 0u;
+  sb_rw.InterlockedXor(uint(0u), v, v_1);
+  uint res = v_1;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store(0u, atomicXor_54510e());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store(0u, atomicXor_54510e());
+}
+
diff --git a/test/tint/builtins/gen/var/atomicXor/54510e.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/atomicXor/54510e.wgsl.expected.ir.fxc.hlsl
index 30cc037..54fa50b 100644
--- a/test/tint/builtins/gen/var/atomicXor/54510e.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/atomicXor/54510e.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,21 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: atomicXor
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWByteAddressBuffer prevent_dce : register(u0);
+RWByteAddressBuffer sb_rw : register(u1);
+uint atomicXor_54510e() {
+  uint arg_1 = 1u;
+  uint v = arg_1;
+  uint v_1 = 0u;
+  sb_rw.InterlockedXor(uint(0u), v, v_1);
+  uint res = v_1;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store(0u, atomicXor_54510e());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store(0u, atomicXor_54510e());
+}
+
diff --git a/test/tint/builtins/gen/var/atomicXor/75dc95.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/atomicXor/75dc95.wgsl.expected.ir.dxc.hlsl
index 30cc037..ffa470a 100644
--- a/test/tint/builtins/gen/var/atomicXor/75dc95.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/atomicXor/75dc95.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,29 @@
-SKIP: FAILED
+struct compute_main_inputs {
+  uint tint_local_index : SV_GroupIndex;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: atomicXor
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+
+RWByteAddressBuffer prevent_dce : register(u0);
+groupshared int arg_0;
+int atomicXor_75dc95() {
+  int arg_1 = 1;
+  int v = 0;
+  InterlockedXor(arg_0, arg_1, v);
+  int res = v;
+  return res;
+}
+
+void compute_main_inner(uint tint_local_index) {
+  if ((tint_local_index == 0u)) {
+    int v_1 = 0;
+    InterlockedExchange(arg_0, 0, v_1);
+  }
+  GroupMemoryBarrierWithGroupSync();
+  prevent_dce.Store(0u, asuint(atomicXor_75dc95()));
+}
+
+[numthreads(1, 1, 1)]
+void compute_main(compute_main_inputs inputs) {
+  compute_main_inner(inputs.tint_local_index);
+}
+
diff --git a/test/tint/builtins/gen/var/atomicXor/75dc95.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/atomicXor/75dc95.wgsl.expected.ir.fxc.hlsl
index 30cc037..ffa470a 100644
--- a/test/tint/builtins/gen/var/atomicXor/75dc95.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/atomicXor/75dc95.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,29 @@
-SKIP: FAILED
+struct compute_main_inputs {
+  uint tint_local_index : SV_GroupIndex;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: atomicXor
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+
+RWByteAddressBuffer prevent_dce : register(u0);
+groupshared int arg_0;
+int atomicXor_75dc95() {
+  int arg_1 = 1;
+  int v = 0;
+  InterlockedXor(arg_0, arg_1, v);
+  int res = v;
+  return res;
+}
+
+void compute_main_inner(uint tint_local_index) {
+  if ((tint_local_index == 0u)) {
+    int v_1 = 0;
+    InterlockedExchange(arg_0, 0, v_1);
+  }
+  GroupMemoryBarrierWithGroupSync();
+  prevent_dce.Store(0u, asuint(atomicXor_75dc95()));
+}
+
+[numthreads(1, 1, 1)]
+void compute_main(compute_main_inputs inputs) {
+  compute_main_inner(inputs.tint_local_index);
+}
+
diff --git a/test/tint/builtins/gen/var/atomicXor/c1b78c.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/atomicXor/c1b78c.wgsl.expected.ir.dxc.hlsl
index 30cc037..e9f80f8 100644
--- a/test/tint/builtins/gen/var/atomicXor/c1b78c.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/atomicXor/c1b78c.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,21 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: atomicXor
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWByteAddressBuffer prevent_dce : register(u0);
+RWByteAddressBuffer sb_rw : register(u1);
+int atomicXor_c1b78c() {
+  int arg_1 = 1;
+  int v = arg_1;
+  int v_1 = 0;
+  sb_rw.InterlockedXor(int(0u), v, v_1);
+  int res = v_1;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store(0u, asuint(atomicXor_c1b78c()));
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store(0u, asuint(atomicXor_c1b78c()));
+}
+
diff --git a/test/tint/builtins/gen/var/atomicXor/c1b78c.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/atomicXor/c1b78c.wgsl.expected.ir.fxc.hlsl
index 30cc037..e9f80f8 100644
--- a/test/tint/builtins/gen/var/atomicXor/c1b78c.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/atomicXor/c1b78c.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,21 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: atomicXor
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWByteAddressBuffer prevent_dce : register(u0);
+RWByteAddressBuffer sb_rw : register(u1);
+int atomicXor_c1b78c() {
+  int arg_1 = 1;
+  int v = arg_1;
+  int v_1 = 0;
+  sb_rw.InterlockedXor(int(0u), v, v_1);
+  int res = v_1;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store(0u, asuint(atomicXor_c1b78c()));
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store(0u, asuint(atomicXor_c1b78c()));
+}
+
diff --git a/test/tint/builtins/gen/var/atomicXor/c8e6be.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/atomicXor/c8e6be.wgsl.expected.ir.dxc.hlsl
index 30cc037..b1878d6 100644
--- a/test/tint/builtins/gen/var/atomicXor/c8e6be.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/atomicXor/c8e6be.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,29 @@
-SKIP: FAILED
+struct compute_main_inputs {
+  uint tint_local_index : SV_GroupIndex;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: atomicXor
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+
+RWByteAddressBuffer prevent_dce : register(u0);
+groupshared uint arg_0;
+uint atomicXor_c8e6be() {
+  uint arg_1 = 1u;
+  uint v = 0u;
+  InterlockedXor(arg_0, arg_1, v);
+  uint res = v;
+  return res;
+}
+
+void compute_main_inner(uint tint_local_index) {
+  if ((tint_local_index == 0u)) {
+    uint v_1 = 0u;
+    InterlockedExchange(arg_0, 0u, v_1);
+  }
+  GroupMemoryBarrierWithGroupSync();
+  prevent_dce.Store(0u, atomicXor_c8e6be());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main(compute_main_inputs inputs) {
+  compute_main_inner(inputs.tint_local_index);
+}
+
diff --git a/test/tint/builtins/gen/var/atomicXor/c8e6be.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/atomicXor/c8e6be.wgsl.expected.ir.fxc.hlsl
index 30cc037..b1878d6 100644
--- a/test/tint/builtins/gen/var/atomicXor/c8e6be.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/atomicXor/c8e6be.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,29 @@
-SKIP: FAILED
+struct compute_main_inputs {
+  uint tint_local_index : SV_GroupIndex;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: atomicXor
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+
+RWByteAddressBuffer prevent_dce : register(u0);
+groupshared uint arg_0;
+uint atomicXor_c8e6be() {
+  uint arg_1 = 1u;
+  uint v = 0u;
+  InterlockedXor(arg_0, arg_1, v);
+  uint res = v;
+  return res;
+}
+
+void compute_main_inner(uint tint_local_index) {
+  if ((tint_local_index == 0u)) {
+    uint v_1 = 0u;
+    InterlockedExchange(arg_0, 0u, v_1);
+  }
+  GroupMemoryBarrierWithGroupSync();
+  prevent_dce.Store(0u, atomicXor_c8e6be());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main(compute_main_inputs inputs) {
+  compute_main_inner(inputs.tint_local_index);
+}
+
diff --git a/test/tint/builtins/gen/var/bitcast/0fe0c9.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/bitcast/0fe0c9.wgsl.expected.ir.dxc.hlsl
index a249798..d4a4870 100644
--- a/test/tint/builtins/gen/var/bitcast/0fe0c9.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/bitcast/0fe0c9.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,43 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  float3 prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Bitcast
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation float3 VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+float3 bitcast_0fe0c9() {
+  uint3 arg_0 = (1u).xxx;
+  float3 res = asfloat(arg_0);
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store3(0u, asuint(bitcast_0fe0c9()));
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store3(0u, asuint(bitcast_0fe0c9()));
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = bitcast_0fe0c9();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
diff --git a/test/tint/builtins/gen/var/bitcast/0fe0c9.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/bitcast/0fe0c9.wgsl.expected.ir.fxc.hlsl
index a249798..d4a4870 100644
--- a/test/tint/builtins/gen/var/bitcast/0fe0c9.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/bitcast/0fe0c9.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,43 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  float3 prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Bitcast
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation float3 VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+float3 bitcast_0fe0c9() {
+  uint3 arg_0 = (1u).xxx;
+  float3 res = asfloat(arg_0);
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store3(0u, asuint(bitcast_0fe0c9()));
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store3(0u, asuint(bitcast_0fe0c9()));
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = bitcast_0fe0c9();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
diff --git a/test/tint/builtins/gen/var/bitcast/160c09.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/bitcast/160c09.wgsl.expected.ir.dxc.hlsl
index 0ba40c6..cdccf0f 100644
--- a/test/tint/builtins/gen/var/bitcast/160c09.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/bitcast/160c09.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,42 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  uint4 prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation uint4 VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+uint4 bitcast_160c09() {
+  uint4 res = (1u).xxxx;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store4(0u, bitcast_160c09());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store4(0u, bitcast_160c09());
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = bitcast_160c09();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
diff --git a/test/tint/builtins/gen/var/bitcast/160c09.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/bitcast/160c09.wgsl.expected.ir.fxc.hlsl
index 0ba40c6..cdccf0f 100644
--- a/test/tint/builtins/gen/var/bitcast/160c09.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/bitcast/160c09.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,42 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  uint4 prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation uint4 VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+uint4 bitcast_160c09() {
+  uint4 res = (1u).xxxx;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store4(0u, bitcast_160c09());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store4(0u, bitcast_160c09());
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = bitcast_160c09();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
diff --git a/test/tint/builtins/gen/var/bitcast/16cba4.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/bitcast/16cba4.wgsl.expected.ir.dxc.hlsl
index a249798..5ba8a52 100644
--- a/test/tint/builtins/gen/var/bitcast/16cba4.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/bitcast/16cba4.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,43 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  int prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Bitcast
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation int VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+int bitcast_16cba4() {
+  float arg_0 = 1.0f;
+  int res = asint(arg_0);
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store(0u, asuint(bitcast_16cba4()));
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store(0u, asuint(bitcast_16cba4()));
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = bitcast_16cba4();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
diff --git a/test/tint/builtins/gen/var/bitcast/16cba4.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/bitcast/16cba4.wgsl.expected.ir.fxc.hlsl
index a249798..5ba8a52 100644
--- a/test/tint/builtins/gen/var/bitcast/16cba4.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/bitcast/16cba4.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,43 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  int prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Bitcast
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation int VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+int bitcast_16cba4() {
+  float arg_0 = 1.0f;
+  int res = asint(arg_0);
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store(0u, asuint(bitcast_16cba4()));
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store(0u, asuint(bitcast_16cba4()));
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = bitcast_16cba4();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
diff --git a/test/tint/builtins/gen/var/bitcast/1c3b31.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/bitcast/1c3b31.wgsl.expected.ir.dxc.hlsl
index a249798..e327b0c 100644
--- a/test/tint/builtins/gen/var/bitcast/1c3b31.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/bitcast/1c3b31.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,43 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  uint2 prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Bitcast
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation uint2 VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+uint2 bitcast_1c3b31() {
+  int2 arg_0 = (1).xx;
+  uint2 res = asuint(arg_0);
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store2(0u, bitcast_1c3b31());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store2(0u, bitcast_1c3b31());
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = bitcast_1c3b31();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
diff --git a/test/tint/builtins/gen/var/bitcast/1c3b31.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/bitcast/1c3b31.wgsl.expected.ir.fxc.hlsl
index a249798..e327b0c 100644
--- a/test/tint/builtins/gen/var/bitcast/1c3b31.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/bitcast/1c3b31.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,43 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  uint2 prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Bitcast
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation uint2 VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+uint2 bitcast_1c3b31() {
+  int2 arg_0 = (1).xx;
+  uint2 res = asuint(arg_0);
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store2(0u, bitcast_1c3b31());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store2(0u, bitcast_1c3b31());
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = bitcast_1c3b31();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
diff --git a/test/tint/builtins/gen/var/bitcast/1df11f.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/bitcast/1df11f.wgsl.expected.ir.dxc.hlsl
index a249798..7cea902 100644
--- a/test/tint/builtins/gen/var/bitcast/1df11f.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/bitcast/1df11f.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,43 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  vector<float16_t, 2> prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Bitcast
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation vector<float16_t, 2> VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+vector<float16_t, 2> bitcast_1df11f() {
+  vector<float16_t, 2> arg_0 = (float16_t(1.0h)).xx;
+  vector<float16_t, 2> res = arg_0;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store<vector<float16_t, 2> >(0u, bitcast_1df11f());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store<vector<float16_t, 2> >(0u, bitcast_1df11f());
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = bitcast_1df11f();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
diff --git a/test/tint/builtins/gen/var/bitcast/1df11f.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/bitcast/1df11f.wgsl.expected.ir.fxc.hlsl
index a249798..a36f49e 100644
--- a/test/tint/builtins/gen/var/bitcast/1df11f.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/bitcast/1df11f.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,48 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Bitcast
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct VertexOutput {
+  float4 pos;
+  vector<float16_t, 2> prevent_dce;
+};
+
+struct vertex_main_outputs {
+  nointerpolation vector<float16_t, 2> VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+vector<float16_t, 2> bitcast_1df11f() {
+  vector<float16_t, 2> arg_0 = (float16_t(1.0h)).xx;
+  vector<float16_t, 2> res = arg_0;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store<vector<float16_t, 2> >(0u, bitcast_1df11f());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store<vector<float16_t, 2> >(0u, bitcast_1df11f());
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = bitcast_1df11f();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
+FXC validation failure:
+c:\src\dawn\Shader@0x0000020D147239B0(3,10-18): error X3000: syntax error: unexpected token 'float16_t'
+
diff --git a/test/tint/builtins/gen/var/bitcast/214f23.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/bitcast/214f23.wgsl.expected.ir.dxc.hlsl
index a249798..ebfcc0c 100644
--- a/test/tint/builtins/gen/var/bitcast/214f23.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/bitcast/214f23.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,48 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  int2 prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Bitcast
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation int2 VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+int2 tint_bitcast_from_f16(vector<float16_t, 4> src) {
+  uint4 r = f32tof16(float4(src));
+  return asint(uint2(((r.x & 65535u) | ((r.y & 65535u) << 16u)), ((r.z & 65535u) | ((r.w & 65535u) << 16u))));
+}
+
+int2 bitcast_214f23() {
+  vector<float16_t, 4> arg_0 = (float16_t(1.0h)).xxxx;
+  int2 res = tint_bitcast_from_f16(arg_0);
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store2(0u, asuint(bitcast_214f23()));
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store2(0u, asuint(bitcast_214f23()));
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = bitcast_214f23();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
diff --git a/test/tint/builtins/gen/var/bitcast/214f23.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/bitcast/214f23.wgsl.expected.ir.fxc.hlsl
index a249798..72e1031 100644
--- a/test/tint/builtins/gen/var/bitcast/214f23.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/bitcast/214f23.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,55 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Bitcast
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct VertexOutput {
+  float4 pos;
+  int2 prevent_dce;
+};
+
+struct vertex_main_outputs {
+  nointerpolation int2 VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+int2 tint_bitcast_from_f16(vector<float16_t, 4> src) {
+  uint4 r = f32tof16(float4(src));
+  return asint(uint2(((r.x & 65535u) | ((r.y & 65535u) << 16u)), ((r.z & 65535u) | ((r.w & 65535u) << 16u))));
+}
+
+int2 bitcast_214f23() {
+  vector<float16_t, 4> arg_0 = (float16_t(1.0h)).xxxx;
+  int2 res = tint_bitcast_from_f16(arg_0);
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store2(0u, asuint(bitcast_214f23()));
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store2(0u, asuint(bitcast_214f23()));
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = bitcast_214f23();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
+FXC validation failure:
+c:\src\dawn\Shader@0x000002B555B21D00(13,35-43): error X3000: syntax error: unexpected token 'float16_t'
+c:\src\dawn\Shader@0x000002B555B21D00(14,29-31): error X3004: undeclared identifier 'src'
+c:\src\dawn\Shader@0x000002B555B21D00(14,22-32): error X3014: incorrect number of arguments to numeric-type constructor
+
diff --git a/test/tint/builtins/gen/var/bitcast/23c8bd.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/bitcast/23c8bd.wgsl.expected.ir.dxc.hlsl
index a249798..7cb2210 100644
--- a/test/tint/builtins/gen/var/bitcast/23c8bd.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/bitcast/23c8bd.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,48 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  float prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Bitcast
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation float VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+float tint_bitcast_from_f16(vector<float16_t, 2> src) {
+  uint2 r = f32tof16(float2(src));
+  return asfloat(((r.x & 65535u) | ((r.y & 65535u) << 16u)));
+}
+
+float bitcast_23c8bd() {
+  vector<float16_t, 2> arg_0 = (float16_t(1.0h)).xx;
+  float res = tint_bitcast_from_f16(arg_0);
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store(0u, asuint(bitcast_23c8bd()));
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store(0u, asuint(bitcast_23c8bd()));
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = bitcast_23c8bd();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
diff --git a/test/tint/builtins/gen/var/bitcast/23c8bd.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/bitcast/23c8bd.wgsl.expected.ir.fxc.hlsl
index a249798..2172b8b 100644
--- a/test/tint/builtins/gen/var/bitcast/23c8bd.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/bitcast/23c8bd.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,55 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Bitcast
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct VertexOutput {
+  float4 pos;
+  float prevent_dce;
+};
+
+struct vertex_main_outputs {
+  nointerpolation float VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+float tint_bitcast_from_f16(vector<float16_t, 2> src) {
+  uint2 r = f32tof16(float2(src));
+  return asfloat(((r.x & 65535u) | ((r.y & 65535u) << 16u)));
+}
+
+float bitcast_23c8bd() {
+  vector<float16_t, 2> arg_0 = (float16_t(1.0h)).xx;
+  float res = tint_bitcast_from_f16(arg_0);
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store(0u, asuint(bitcast_23c8bd()));
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store(0u, asuint(bitcast_23c8bd()));
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = bitcast_23c8bd();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
+FXC validation failure:
+c:\src\dawn\Shader@0x0000027ECD3642F0(13,36-44): error X3000: syntax error: unexpected token 'float16_t'
+c:\src\dawn\Shader@0x0000027ECD3642F0(14,29-31): error X3004: undeclared identifier 'src'
+c:\src\dawn\Shader@0x0000027ECD3642F0(14,22-32): error X3014: incorrect number of arguments to numeric-type constructor
+
diff --git a/test/tint/builtins/gen/var/bitcast/2421c8.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/bitcast/2421c8.wgsl.expected.ir.dxc.hlsl
index a249798..ae06308 100644
--- a/test/tint/builtins/gen/var/bitcast/2421c8.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/bitcast/2421c8.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,43 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  float2 prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Bitcast
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation float2 VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+float2 bitcast_2421c8() {
+  uint2 arg_0 = (1u).xx;
+  float2 res = asfloat(arg_0);
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store2(0u, asuint(bitcast_2421c8()));
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store2(0u, asuint(bitcast_2421c8()));
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = bitcast_2421c8();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
diff --git a/test/tint/builtins/gen/var/bitcast/2421c8.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/bitcast/2421c8.wgsl.expected.ir.fxc.hlsl
index a249798..ae06308 100644
--- a/test/tint/builtins/gen/var/bitcast/2421c8.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/bitcast/2421c8.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,43 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  float2 prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Bitcast
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation float2 VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+float2 bitcast_2421c8() {
+  uint2 arg_0 = (1u).xx;
+  float2 res = asfloat(arg_0);
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store2(0u, asuint(bitcast_2421c8()));
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store2(0u, asuint(bitcast_2421c8()));
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = bitcast_2421c8();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
diff --git a/test/tint/builtins/gen/var/bitcast/287bdf.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/bitcast/287bdf.wgsl.expected.ir.dxc.hlsl
index a249798..62ca172 100644
--- a/test/tint/builtins/gen/var/bitcast/287bdf.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/bitcast/287bdf.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,43 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  uint3 prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Bitcast
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation uint3 VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+uint3 bitcast_287bdf() {
+  int3 arg_0 = (1).xxx;
+  uint3 res = asuint(arg_0);
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store3(0u, bitcast_287bdf());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store3(0u, bitcast_287bdf());
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = bitcast_287bdf();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
diff --git a/test/tint/builtins/gen/var/bitcast/287bdf.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/bitcast/287bdf.wgsl.expected.ir.fxc.hlsl
index a249798..62ca172 100644
--- a/test/tint/builtins/gen/var/bitcast/287bdf.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/bitcast/287bdf.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,43 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  uint3 prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Bitcast
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation uint3 VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+uint3 bitcast_287bdf() {
+  int3 arg_0 = (1).xxx;
+  uint3 res = asuint(arg_0);
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store3(0u, bitcast_287bdf());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store3(0u, bitcast_287bdf());
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = bitcast_287bdf();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
diff --git a/test/tint/builtins/gen/var/bitcast/2a6e58.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/bitcast/2a6e58.wgsl.expected.ir.dxc.hlsl
index a249798..4b265d5 100644
--- a/test/tint/builtins/gen/var/bitcast/2a6e58.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/bitcast/2a6e58.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,48 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  float2 prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Bitcast
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation float2 VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+float2 tint_bitcast_from_f16(vector<float16_t, 4> src) {
+  uint4 r = f32tof16(float4(src));
+  return asfloat(uint2(((r.x & 65535u) | ((r.y & 65535u) << 16u)), ((r.z & 65535u) | ((r.w & 65535u) << 16u))));
+}
+
+float2 bitcast_2a6e58() {
+  vector<float16_t, 4> arg_0 = (float16_t(1.0h)).xxxx;
+  float2 res = tint_bitcast_from_f16(arg_0);
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store2(0u, asuint(bitcast_2a6e58()));
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store2(0u, asuint(bitcast_2a6e58()));
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = bitcast_2a6e58();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
diff --git a/test/tint/builtins/gen/var/bitcast/2a6e58.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/bitcast/2a6e58.wgsl.expected.ir.fxc.hlsl
index a249798..cccc6e8 100644
--- a/test/tint/builtins/gen/var/bitcast/2a6e58.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/bitcast/2a6e58.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,55 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Bitcast
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct VertexOutput {
+  float4 pos;
+  float2 prevent_dce;
+};
+
+struct vertex_main_outputs {
+  nointerpolation float2 VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+float2 tint_bitcast_from_f16(vector<float16_t, 4> src) {
+  uint4 r = f32tof16(float4(src));
+  return asfloat(uint2(((r.x & 65535u) | ((r.y & 65535u) << 16u)), ((r.z & 65535u) | ((r.w & 65535u) << 16u))));
+}
+
+float2 bitcast_2a6e58() {
+  vector<float16_t, 4> arg_0 = (float16_t(1.0h)).xxxx;
+  float2 res = tint_bitcast_from_f16(arg_0);
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store2(0u, asuint(bitcast_2a6e58()));
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store2(0u, asuint(bitcast_2a6e58()));
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = bitcast_2a6e58();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
+FXC validation failure:
+c:\src\dawn\Shader@0x0000024E94222FF0(13,37-45): error X3000: syntax error: unexpected token 'float16_t'
+c:\src\dawn\Shader@0x0000024E94222FF0(14,29-31): error X3004: undeclared identifier 'src'
+c:\src\dawn\Shader@0x0000024E94222FF0(14,22-32): error X3014: incorrect number of arguments to numeric-type constructor
+
diff --git a/test/tint/builtins/gen/var/bitcast/2b05b3.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/bitcast/2b05b3.wgsl.expected.ir.dxc.hlsl
index a249798..cc4b808 100644
--- a/test/tint/builtins/gen/var/bitcast/2b05b3.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/bitcast/2b05b3.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,43 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  float3 prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Bitcast
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation float3 VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+float3 bitcast_2b05b3() {
+  float3 arg_0 = (1.0f).xxx;
+  float3 res = arg_0;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store3(0u, asuint(bitcast_2b05b3()));
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store3(0u, asuint(bitcast_2b05b3()));
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = bitcast_2b05b3();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
diff --git a/test/tint/builtins/gen/var/bitcast/2b05b3.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/bitcast/2b05b3.wgsl.expected.ir.fxc.hlsl
index a249798..cc4b808 100644
--- a/test/tint/builtins/gen/var/bitcast/2b05b3.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/bitcast/2b05b3.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,43 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  float3 prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Bitcast
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation float3 VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+float3 bitcast_2b05b3() {
+  float3 arg_0 = (1.0f).xxx;
+  float3 res = arg_0;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store3(0u, asuint(bitcast_2b05b3()));
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store3(0u, asuint(bitcast_2b05b3()));
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = bitcast_2b05b3();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
diff --git a/test/tint/builtins/gen/var/bitcast/2b2738.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/bitcast/2b2738.wgsl.expected.ir.dxc.hlsl
index a249798..ae08683 100644
--- a/test/tint/builtins/gen/var/bitcast/2b2738.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/bitcast/2b2738.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,43 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  uint2 prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Bitcast
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation uint2 VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+uint2 bitcast_2b2738() {
+  float2 arg_0 = (1.0f).xx;
+  uint2 res = asuint(arg_0);
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store2(0u, bitcast_2b2738());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store2(0u, bitcast_2b2738());
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = bitcast_2b2738();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
diff --git a/test/tint/builtins/gen/var/bitcast/2b2738.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/bitcast/2b2738.wgsl.expected.ir.fxc.hlsl
index a249798..ae08683 100644
--- a/test/tint/builtins/gen/var/bitcast/2b2738.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/bitcast/2b2738.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,43 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  uint2 prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Bitcast
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation uint2 VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+uint2 bitcast_2b2738() {
+  float2 arg_0 = (1.0f).xx;
+  uint2 res = asuint(arg_0);
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store2(0u, bitcast_2b2738());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store2(0u, bitcast_2b2738());
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = bitcast_2b2738();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
diff --git a/test/tint/builtins/gen/var/bitcast/31c080.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/bitcast/31c080.wgsl.expected.ir.dxc.hlsl
index a249798..b035315 100644
--- a/test/tint/builtins/gen/var/bitcast/31c080.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/bitcast/31c080.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,43 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  uint prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Bitcast
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation uint VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+uint bitcast_31c080() {
+  uint arg_0 = 1u;
+  uint res = arg_0;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store(0u, bitcast_31c080());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store(0u, bitcast_31c080());
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = bitcast_31c080();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
diff --git a/test/tint/builtins/gen/var/bitcast/31c080.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/bitcast/31c080.wgsl.expected.ir.fxc.hlsl
index a249798..b035315 100644
--- a/test/tint/builtins/gen/var/bitcast/31c080.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/bitcast/31c080.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,43 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  uint prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Bitcast
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation uint VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+uint bitcast_31c080() {
+  uint arg_0 = 1u;
+  uint res = arg_0;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store(0u, bitcast_31c080());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store(0u, bitcast_31c080());
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = bitcast_31c080();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
diff --git a/test/tint/builtins/gen/var/bitcast/332f78.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/bitcast/332f78.wgsl.expected.ir.dxc.hlsl
index a249798..248ca7b 100644
--- a/test/tint/builtins/gen/var/bitcast/332f78.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/bitcast/332f78.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,43 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  float3 prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Bitcast
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation float3 VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+float3 bitcast_332f78() {
+  int3 arg_0 = (1).xxx;
+  float3 res = asfloat(arg_0);
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store3(0u, asuint(bitcast_332f78()));
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store3(0u, asuint(bitcast_332f78()));
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = bitcast_332f78();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
diff --git a/test/tint/builtins/gen/var/bitcast/332f78.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/bitcast/332f78.wgsl.expected.ir.fxc.hlsl
index a249798..248ca7b 100644
--- a/test/tint/builtins/gen/var/bitcast/332f78.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/bitcast/332f78.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,43 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  float3 prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Bitcast
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation float3 VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+float3 bitcast_332f78() {
+  int3 arg_0 = (1).xxx;
+  float3 res = asfloat(arg_0);
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store3(0u, asuint(bitcast_332f78()));
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store3(0u, asuint(bitcast_332f78()));
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = bitcast_332f78();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
diff --git a/test/tint/builtins/gen/var/bitcast/3e7b47.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/bitcast/3e7b47.wgsl.expected.ir.dxc.hlsl
index a249798..2f473b6 100644
--- a/test/tint/builtins/gen/var/bitcast/3e7b47.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/bitcast/3e7b47.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,43 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  vector<float16_t, 4> prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Bitcast
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation vector<float16_t, 4> VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+vector<float16_t, 4> bitcast_3e7b47() {
+  vector<float16_t, 4> arg_0 = (float16_t(1.0h)).xxxx;
+  vector<float16_t, 4> res = arg_0;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store<vector<float16_t, 4> >(0u, bitcast_3e7b47());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store<vector<float16_t, 4> >(0u, bitcast_3e7b47());
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = bitcast_3e7b47();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
diff --git a/test/tint/builtins/gen/var/bitcast/3e7b47.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/bitcast/3e7b47.wgsl.expected.ir.fxc.hlsl
index a249798..59bec1b 100644
--- a/test/tint/builtins/gen/var/bitcast/3e7b47.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/bitcast/3e7b47.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,48 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Bitcast
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct VertexOutput {
+  float4 pos;
+  vector<float16_t, 4> prevent_dce;
+};
+
+struct vertex_main_outputs {
+  nointerpolation vector<float16_t, 4> VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+vector<float16_t, 4> bitcast_3e7b47() {
+  vector<float16_t, 4> arg_0 = (float16_t(1.0h)).xxxx;
+  vector<float16_t, 4> res = arg_0;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store<vector<float16_t, 4> >(0u, bitcast_3e7b47());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store<vector<float16_t, 4> >(0u, bitcast_3e7b47());
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = bitcast_3e7b47();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
+FXC validation failure:
+c:\src\dawn\Shader@0x000001BD365D4930(3,10-18): error X3000: syntax error: unexpected token 'float16_t'
+
diff --git a/test/tint/builtins/gen/var/bitcast/3f7437.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/bitcast/3f7437.wgsl.expected.ir.dxc.hlsl
index a249798..74b8dcf 100644
--- a/test/tint/builtins/gen/var/bitcast/3f7437.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/bitcast/3f7437.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,43 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  int4 prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Bitcast
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation int4 VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+int4 bitcast_3f7437() {
+  int4 arg_0 = (1).xxxx;
+  int4 res = arg_0;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store4(0u, asuint(bitcast_3f7437()));
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store4(0u, asuint(bitcast_3f7437()));
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = bitcast_3f7437();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
diff --git a/test/tint/builtins/gen/var/bitcast/3f7437.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/bitcast/3f7437.wgsl.expected.ir.fxc.hlsl
index a249798..74b8dcf 100644
--- a/test/tint/builtins/gen/var/bitcast/3f7437.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/bitcast/3f7437.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,43 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  int4 prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Bitcast
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation int4 VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+int4 bitcast_3f7437() {
+  int4 arg_0 = (1).xxxx;
+  int4 res = arg_0;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store4(0u, asuint(bitcast_3f7437()));
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store4(0u, asuint(bitcast_3f7437()));
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = bitcast_3f7437();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
diff --git a/test/tint/builtins/gen/var/bitcast/3fdacd.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/bitcast/3fdacd.wgsl.expected.ir.dxc.hlsl
index a249798..abf533b 100644
--- a/test/tint/builtins/gen/var/bitcast/3fdacd.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/bitcast/3fdacd.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,43 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  float4 prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Bitcast
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation float4 VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+float4 bitcast_3fdacd() {
+  int4 arg_0 = (1).xxxx;
+  float4 res = asfloat(arg_0);
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store4(0u, asuint(bitcast_3fdacd()));
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store4(0u, asuint(bitcast_3fdacd()));
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = bitcast_3fdacd();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
diff --git a/test/tint/builtins/gen/var/bitcast/3fdacd.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/bitcast/3fdacd.wgsl.expected.ir.fxc.hlsl
index a249798..abf533b 100644
--- a/test/tint/builtins/gen/var/bitcast/3fdacd.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/bitcast/3fdacd.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,43 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  float4 prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Bitcast
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation float4 VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+float4 bitcast_3fdacd() {
+  int4 arg_0 = (1).xxxx;
+  float4 res = asfloat(arg_0);
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store4(0u, asuint(bitcast_3fdacd()));
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store4(0u, asuint(bitcast_3fdacd()));
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = bitcast_3fdacd();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
diff --git a/test/tint/builtins/gen/var/bitcast/429d64.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/bitcast/429d64.wgsl.expected.ir.dxc.hlsl
index a249798..82b3501 100644
--- a/test/tint/builtins/gen/var/bitcast/429d64.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/bitcast/429d64.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,55 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  vector<float16_t, 4> prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Bitcast
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation vector<float16_t, 4> VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+vector<float16_t, 4> tint_bitcast_to_f16(float2 src) {
+  uint2 v = asuint(src);
+  uint2 mask = (65535u).xx;
+  uint2 shift = (16u).xx;
+  float2 t_low = f16tof32((v & mask));
+  float2 t_high = f16tof32(((v >> shift) & mask));
+  float16_t v_1 = float16_t(t_low.x);
+  float16_t v_2 = float16_t(t_high.x);
+  float16_t v_3 = float16_t(t_low.y);
+  return vector<float16_t, 4>(v_1, v_2, v_3, float16_t(t_high.y));
+}
+
+vector<float16_t, 4> bitcast_429d64() {
+  float2 arg_0 = (1.0f).xx;
+  vector<float16_t, 4> res = tint_bitcast_to_f16(arg_0);
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store<vector<float16_t, 4> >(0u, bitcast_429d64());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store<vector<float16_t, 4> >(0u, bitcast_429d64());
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = bitcast_429d64();
+  VertexOutput v_4 = tint_symbol;
+  return v_4;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_5 = vertex_main_inner();
+  VertexOutput v_6 = v_5;
+  VertexOutput v_7 = v_5;
+  vertex_main_outputs v_8 = {v_7.prevent_dce, v_6.pos};
+  return v_8;
+}
+
diff --git a/test/tint/builtins/gen/var/bitcast/429d64.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/bitcast/429d64.wgsl.expected.ir.fxc.hlsl
index a249798..1baf00e 100644
--- a/test/tint/builtins/gen/var/bitcast/429d64.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/bitcast/429d64.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,60 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Bitcast
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct VertexOutput {
+  float4 pos;
+  vector<float16_t, 4> prevent_dce;
+};
+
+struct vertex_main_outputs {
+  nointerpolation vector<float16_t, 4> VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+vector<float16_t, 4> tint_bitcast_to_f16(float2 src) {
+  uint2 v = asuint(src);
+  uint2 mask = (65535u).xx;
+  uint2 shift = (16u).xx;
+  float2 t_low = f16tof32((v & mask));
+  float2 t_high = f16tof32(((v >> shift) & mask));
+  float16_t v_1 = float16_t(t_low.x);
+  float16_t v_2 = float16_t(t_high.x);
+  float16_t v_3 = float16_t(t_low.y);
+  return vector<float16_t, 4>(v_1, v_2, v_3, float16_t(t_high.y));
+}
+
+vector<float16_t, 4> bitcast_429d64() {
+  float2 arg_0 = (1.0f).xx;
+  vector<float16_t, 4> res = tint_bitcast_to_f16(arg_0);
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store<vector<float16_t, 4> >(0u, bitcast_429d64());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store<vector<float16_t, 4> >(0u, bitcast_429d64());
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = bitcast_429d64();
+  VertexOutput v_4 = tint_symbol;
+  return v_4;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_5 = vertex_main_inner();
+  VertexOutput v_6 = v_5;
+  VertexOutput v_7 = v_5;
+  vertex_main_outputs v_8 = {v_7.prevent_dce, v_6.pos};
+  return v_8;
+}
+
+FXC validation failure:
+c:\src\dawn\Shader@0x00000229FFD2F360(3,10-18): error X3000: syntax error: unexpected token 'float16_t'
+
diff --git a/test/tint/builtins/gen/var/bitcast/436211.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/bitcast/436211.wgsl.expected.ir.dxc.hlsl
index a249798..b8f9bb3 100644
--- a/test/tint/builtins/gen/var/bitcast/436211.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/bitcast/436211.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,43 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  float16_t prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Bitcast
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation float16_t VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+float16_t bitcast_436211() {
+  float16_t arg_0 = float16_t(1.0h);
+  float16_t res = arg_0;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store<float16_t>(0u, bitcast_436211());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store<float16_t>(0u, bitcast_436211());
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = bitcast_436211();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
diff --git a/test/tint/builtins/gen/var/bitcast/436211.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/bitcast/436211.wgsl.expected.ir.fxc.hlsl
index a249798..73c13c0 100644
--- a/test/tint/builtins/gen/var/bitcast/436211.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/bitcast/436211.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,48 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Bitcast
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct VertexOutput {
+  float4 pos;
+  float16_t prevent_dce;
+};
+
+struct vertex_main_outputs {
+  nointerpolation float16_t VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+float16_t bitcast_436211() {
+  float16_t arg_0 = float16_t(1.0h);
+  float16_t res = arg_0;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store<float16_t>(0u, bitcast_436211());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store<float16_t>(0u, bitcast_436211());
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = bitcast_436211();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
+FXC validation failure:
+c:\src\dawn\Shader@0x000001835084D160(3,3-11): error X3000: unrecognized identifier 'float16_t'
+
diff --git a/test/tint/builtins/gen/var/bitcast/5081ed.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/bitcast/5081ed.wgsl.expected.ir.dxc.hlsl
index a249798..d4896a5 100644
--- a/test/tint/builtins/gen/var/bitcast/5081ed.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/bitcast/5081ed.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,43 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  vector<float16_t, 3> prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Bitcast
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation vector<float16_t, 3> VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+vector<float16_t, 3> bitcast_5081ed() {
+  vector<float16_t, 3> arg_0 = (float16_t(1.0h)).xxx;
+  vector<float16_t, 3> res = arg_0;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store<vector<float16_t, 3> >(0u, bitcast_5081ed());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store<vector<float16_t, 3> >(0u, bitcast_5081ed());
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = bitcast_5081ed();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
diff --git a/test/tint/builtins/gen/var/bitcast/5081ed.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/bitcast/5081ed.wgsl.expected.ir.fxc.hlsl
index a249798..2189073 100644
--- a/test/tint/builtins/gen/var/bitcast/5081ed.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/bitcast/5081ed.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,48 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Bitcast
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct VertexOutput {
+  float4 pos;
+  vector<float16_t, 3> prevent_dce;
+};
+
+struct vertex_main_outputs {
+  nointerpolation vector<float16_t, 3> VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+vector<float16_t, 3> bitcast_5081ed() {
+  vector<float16_t, 3> arg_0 = (float16_t(1.0h)).xxx;
+  vector<float16_t, 3> res = arg_0;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store<vector<float16_t, 3> >(0u, bitcast_5081ed());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store<vector<float16_t, 3> >(0u, bitcast_5081ed());
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = bitcast_5081ed();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
+FXC validation failure:
+c:\src\dawn\Shader@0x000001B48C3D5DE0(3,10-18): error X3000: syntax error: unexpected token 'float16_t'
+
diff --git a/test/tint/builtins/gen/var/bitcast/56266e.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/bitcast/56266e.wgsl.expected.ir.dxc.hlsl
index a249798..78af50f 100644
--- a/test/tint/builtins/gen/var/bitcast/56266e.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/bitcast/56266e.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,43 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  uint3 prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Bitcast
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation uint3 VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+uint3 bitcast_56266e() {
+  float3 arg_0 = (1.0f).xxx;
+  uint3 res = asuint(arg_0);
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store3(0u, bitcast_56266e());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store3(0u, bitcast_56266e());
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = bitcast_56266e();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
diff --git a/test/tint/builtins/gen/var/bitcast/56266e.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/bitcast/56266e.wgsl.expected.ir.fxc.hlsl
index a249798..78af50f 100644
--- a/test/tint/builtins/gen/var/bitcast/56266e.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/bitcast/56266e.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,43 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  uint3 prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Bitcast
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation uint3 VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+uint3 bitcast_56266e() {
+  float3 arg_0 = (1.0f).xxx;
+  uint3 res = asuint(arg_0);
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store3(0u, bitcast_56266e());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store3(0u, bitcast_56266e());
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = bitcast_56266e();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
diff --git a/test/tint/builtins/gen/var/bitcast/66e93d.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/bitcast/66e93d.wgsl.expected.ir.dxc.hlsl
index a249798..034511f 100644
--- a/test/tint/builtins/gen/var/bitcast/66e93d.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/bitcast/66e93d.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,51 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  vector<float16_t, 2> prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Bitcast
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation vector<float16_t, 2> VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+vector<float16_t, 2> tint_bitcast_to_f16(uint src) {
+  uint v = src;
+  float t_low = f16tof32((v & 65535u));
+  float t_high = f16tof32(((v >> 16u) & 65535u));
+  float16_t v_1 = float16_t(t_low);
+  return vector<float16_t, 2>(v_1, float16_t(t_high));
+}
+
+vector<float16_t, 2> bitcast_66e93d() {
+  uint arg_0 = 1u;
+  vector<float16_t, 2> res = tint_bitcast_to_f16(arg_0);
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store<vector<float16_t, 2> >(0u, bitcast_66e93d());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store<vector<float16_t, 2> >(0u, bitcast_66e93d());
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = bitcast_66e93d();
+  VertexOutput v_2 = tint_symbol;
+  return v_2;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_3 = vertex_main_inner();
+  VertexOutput v_4 = v_3;
+  VertexOutput v_5 = v_3;
+  vertex_main_outputs v_6 = {v_5.prevent_dce, v_4.pos};
+  return v_6;
+}
+
diff --git a/test/tint/builtins/gen/var/bitcast/66e93d.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/bitcast/66e93d.wgsl.expected.ir.fxc.hlsl
index a249798..05e5ff1 100644
--- a/test/tint/builtins/gen/var/bitcast/66e93d.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/bitcast/66e93d.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,56 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Bitcast
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct VertexOutput {
+  float4 pos;
+  vector<float16_t, 2> prevent_dce;
+};
+
+struct vertex_main_outputs {
+  nointerpolation vector<float16_t, 2> VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+vector<float16_t, 2> tint_bitcast_to_f16(uint src) {
+  uint v = src;
+  float t_low = f16tof32((v & 65535u));
+  float t_high = f16tof32(((v >> 16u) & 65535u));
+  float16_t v_1 = float16_t(t_low);
+  return vector<float16_t, 2>(v_1, float16_t(t_high));
+}
+
+vector<float16_t, 2> bitcast_66e93d() {
+  uint arg_0 = 1u;
+  vector<float16_t, 2> res = tint_bitcast_to_f16(arg_0);
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store<vector<float16_t, 2> >(0u, bitcast_66e93d());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store<vector<float16_t, 2> >(0u, bitcast_66e93d());
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = bitcast_66e93d();
+  VertexOutput v_2 = tint_symbol;
+  return v_2;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_3 = vertex_main_inner();
+  VertexOutput v_4 = v_3;
+  VertexOutput v_5 = v_3;
+  vertex_main_outputs v_6 = {v_5.prevent_dce, v_4.pos};
+  return v_6;
+}
+
+FXC validation failure:
+c:\src\dawn\Shader@0x0000027EAD83CE40(3,10-18): error X3000: syntax error: unexpected token 'float16_t'
+
diff --git a/test/tint/builtins/gen/var/bitcast/674557.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/bitcast/674557.wgsl.expected.ir.dxc.hlsl
index a249798..a8ffe1c 100644
--- a/test/tint/builtins/gen/var/bitcast/674557.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/bitcast/674557.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,51 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  vector<float16_t, 2> prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Bitcast
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation vector<float16_t, 2> VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+vector<float16_t, 2> tint_bitcast_to_f16(int src) {
+  uint v = asuint(src);
+  float t_low = f16tof32((v & 65535u));
+  float t_high = f16tof32(((v >> 16u) & 65535u));
+  float16_t v_1 = float16_t(t_low);
+  return vector<float16_t, 2>(v_1, float16_t(t_high));
+}
+
+vector<float16_t, 2> bitcast_674557() {
+  int arg_0 = 1;
+  vector<float16_t, 2> res = tint_bitcast_to_f16(arg_0);
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store<vector<float16_t, 2> >(0u, bitcast_674557());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store<vector<float16_t, 2> >(0u, bitcast_674557());
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = bitcast_674557();
+  VertexOutput v_2 = tint_symbol;
+  return v_2;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_3 = vertex_main_inner();
+  VertexOutput v_4 = v_3;
+  VertexOutput v_5 = v_3;
+  vertex_main_outputs v_6 = {v_5.prevent_dce, v_4.pos};
+  return v_6;
+}
+
diff --git a/test/tint/builtins/gen/var/bitcast/674557.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/bitcast/674557.wgsl.expected.ir.fxc.hlsl
index a249798..64afe66 100644
--- a/test/tint/builtins/gen/var/bitcast/674557.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/bitcast/674557.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,56 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Bitcast
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct VertexOutput {
+  float4 pos;
+  vector<float16_t, 2> prevent_dce;
+};
+
+struct vertex_main_outputs {
+  nointerpolation vector<float16_t, 2> VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+vector<float16_t, 2> tint_bitcast_to_f16(int src) {
+  uint v = asuint(src);
+  float t_low = f16tof32((v & 65535u));
+  float t_high = f16tof32(((v >> 16u) & 65535u));
+  float16_t v_1 = float16_t(t_low);
+  return vector<float16_t, 2>(v_1, float16_t(t_high));
+}
+
+vector<float16_t, 2> bitcast_674557() {
+  int arg_0 = 1;
+  vector<float16_t, 2> res = tint_bitcast_to_f16(arg_0);
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store<vector<float16_t, 2> >(0u, bitcast_674557());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store<vector<float16_t, 2> >(0u, bitcast_674557());
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = bitcast_674557();
+  VertexOutput v_2 = tint_symbol;
+  return v_2;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_3 = vertex_main_inner();
+  VertexOutput v_4 = v_3;
+  VertexOutput v_5 = v_3;
+  vertex_main_outputs v_6 = {v_5.prevent_dce, v_4.pos};
+  return v_6;
+}
+
+FXC validation failure:
+c:\src\dawn\Shader@0x0000022452823CF0(3,10-18): error X3000: syntax error: unexpected token 'float16_t'
+
diff --git a/test/tint/builtins/gen/var/bitcast/6ac6f9.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/bitcast/6ac6f9.wgsl.expected.ir.dxc.hlsl
index a249798..dde3274 100644
--- a/test/tint/builtins/gen/var/bitcast/6ac6f9.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/bitcast/6ac6f9.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,48 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  int prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Bitcast
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation int VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+int tint_bitcast_from_f16(vector<float16_t, 2> src) {
+  uint2 r = f32tof16(float2(src));
+  return asint(((r.x & 65535u) | ((r.y & 65535u) << 16u)));
+}
+
+int bitcast_6ac6f9() {
+  vector<float16_t, 2> arg_0 = (float16_t(1.0h)).xx;
+  int res = tint_bitcast_from_f16(arg_0);
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store(0u, asuint(bitcast_6ac6f9()));
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store(0u, asuint(bitcast_6ac6f9()));
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = bitcast_6ac6f9();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
diff --git a/test/tint/builtins/gen/var/bitcast/6ac6f9.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/bitcast/6ac6f9.wgsl.expected.ir.fxc.hlsl
index a249798..2eb883d 100644
--- a/test/tint/builtins/gen/var/bitcast/6ac6f9.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/bitcast/6ac6f9.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,55 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Bitcast
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct VertexOutput {
+  float4 pos;
+  int prevent_dce;
+};
+
+struct vertex_main_outputs {
+  nointerpolation int VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+int tint_bitcast_from_f16(vector<float16_t, 2> src) {
+  uint2 r = f32tof16(float2(src));
+  return asint(((r.x & 65535u) | ((r.y & 65535u) << 16u)));
+}
+
+int bitcast_6ac6f9() {
+  vector<float16_t, 2> arg_0 = (float16_t(1.0h)).xx;
+  int res = tint_bitcast_from_f16(arg_0);
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store(0u, asuint(bitcast_6ac6f9()));
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store(0u, asuint(bitcast_6ac6f9()));
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = bitcast_6ac6f9();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
+FXC validation failure:
+c:\src\dawn\Shader@0x00000208E85F5240(13,34-42): error X3000: syntax error: unexpected token 'float16_t'
+c:\src\dawn\Shader@0x00000208E85F5240(14,29-31): error X3004: undeclared identifier 'src'
+c:\src\dawn\Shader@0x00000208E85F5240(14,22-32): error X3014: incorrect number of arguments to numeric-type constructor
+
diff --git a/test/tint/builtins/gen/var/bitcast/6de2bd.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/bitcast/6de2bd.wgsl.expected.ir.dxc.hlsl
index a249798..1dce2a9 100644
--- a/test/tint/builtins/gen/var/bitcast/6de2bd.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/bitcast/6de2bd.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,43 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  int4 prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Bitcast
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation int4 VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+int4 bitcast_6de2bd() {
+  float4 arg_0 = (1.0f).xxxx;
+  int4 res = asint(arg_0);
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store4(0u, asuint(bitcast_6de2bd()));
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store4(0u, asuint(bitcast_6de2bd()));
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = bitcast_6de2bd();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
diff --git a/test/tint/builtins/gen/var/bitcast/6de2bd.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/bitcast/6de2bd.wgsl.expected.ir.fxc.hlsl
index a249798..1dce2a9 100644
--- a/test/tint/builtins/gen/var/bitcast/6de2bd.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/bitcast/6de2bd.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,43 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  int4 prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Bitcast
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation int4 VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+int4 bitcast_6de2bd() {
+  float4 arg_0 = (1.0f).xxxx;
+  int4 res = asint(arg_0);
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store4(0u, asuint(bitcast_6de2bd()));
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store4(0u, asuint(bitcast_6de2bd()));
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = bitcast_6de2bd();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
diff --git a/test/tint/builtins/gen/var/bitcast/70b121.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/bitcast/70b121.wgsl.expected.ir.dxc.hlsl
index 0ba40c6..62adb0b 100644
--- a/test/tint/builtins/gen/var/bitcast/70b121.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/bitcast/70b121.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,42 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  uint2 prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation uint2 VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+uint2 bitcast_70b121() {
+  uint2 res = (1u).xx;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store2(0u, bitcast_70b121());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store2(0u, bitcast_70b121());
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = bitcast_70b121();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
diff --git a/test/tint/builtins/gen/var/bitcast/70b121.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/bitcast/70b121.wgsl.expected.ir.fxc.hlsl
index 0ba40c6..62adb0b 100644
--- a/test/tint/builtins/gen/var/bitcast/70b121.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/bitcast/70b121.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,42 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  uint2 prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation uint2 VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+uint2 bitcast_70b121() {
+  uint2 res = (1u).xx;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store2(0u, bitcast_70b121());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store2(0u, bitcast_70b121());
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = bitcast_70b121();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
diff --git a/test/tint/builtins/gen/var/bitcast/71c92a.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/bitcast/71c92a.wgsl.expected.ir.dxc.hlsl
index a249798..12d10d4 100644
--- a/test/tint/builtins/gen/var/bitcast/71c92a.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/bitcast/71c92a.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,55 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  vector<float16_t, 4> prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Bitcast
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation vector<float16_t, 4> VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+vector<float16_t, 4> tint_bitcast_to_f16(int2 src) {
+  uint2 v = asuint(src);
+  uint2 mask = (65535u).xx;
+  uint2 shift = (16u).xx;
+  float2 t_low = f16tof32((v & mask));
+  float2 t_high = f16tof32(((v >> shift) & mask));
+  float16_t v_1 = float16_t(t_low.x);
+  float16_t v_2 = float16_t(t_high.x);
+  float16_t v_3 = float16_t(t_low.y);
+  return vector<float16_t, 4>(v_1, v_2, v_3, float16_t(t_high.y));
+}
+
+vector<float16_t, 4> bitcast_71c92a() {
+  int2 arg_0 = (1).xx;
+  vector<float16_t, 4> res = tint_bitcast_to_f16(arg_0);
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store<vector<float16_t, 4> >(0u, bitcast_71c92a());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store<vector<float16_t, 4> >(0u, bitcast_71c92a());
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = bitcast_71c92a();
+  VertexOutput v_4 = tint_symbol;
+  return v_4;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_5 = vertex_main_inner();
+  VertexOutput v_6 = v_5;
+  VertexOutput v_7 = v_5;
+  vertex_main_outputs v_8 = {v_7.prevent_dce, v_6.pos};
+  return v_8;
+}
+
diff --git a/test/tint/builtins/gen/var/bitcast/71c92a.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/bitcast/71c92a.wgsl.expected.ir.fxc.hlsl
index a249798..353a61b 100644
--- a/test/tint/builtins/gen/var/bitcast/71c92a.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/bitcast/71c92a.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,60 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Bitcast
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct VertexOutput {
+  float4 pos;
+  vector<float16_t, 4> prevent_dce;
+};
+
+struct vertex_main_outputs {
+  nointerpolation vector<float16_t, 4> VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+vector<float16_t, 4> tint_bitcast_to_f16(int2 src) {
+  uint2 v = asuint(src);
+  uint2 mask = (65535u).xx;
+  uint2 shift = (16u).xx;
+  float2 t_low = f16tof32((v & mask));
+  float2 t_high = f16tof32(((v >> shift) & mask));
+  float16_t v_1 = float16_t(t_low.x);
+  float16_t v_2 = float16_t(t_high.x);
+  float16_t v_3 = float16_t(t_low.y);
+  return vector<float16_t, 4>(v_1, v_2, v_3, float16_t(t_high.y));
+}
+
+vector<float16_t, 4> bitcast_71c92a() {
+  int2 arg_0 = (1).xx;
+  vector<float16_t, 4> res = tint_bitcast_to_f16(arg_0);
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store<vector<float16_t, 4> >(0u, bitcast_71c92a());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store<vector<float16_t, 4> >(0u, bitcast_71c92a());
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = bitcast_71c92a();
+  VertexOutput v_4 = tint_symbol;
+  return v_4;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_5 = vertex_main_inner();
+  VertexOutput v_6 = v_5;
+  VertexOutput v_7 = v_5;
+  vertex_main_outputs v_8 = {v_7.prevent_dce, v_6.pos};
+  return v_8;
+}
+
+FXC validation failure:
+c:\src\dawn\Shader@0x0000028BD9C8F9A0(3,10-18): error X3000: syntax error: unexpected token 'float16_t'
+
diff --git a/test/tint/builtins/gen/var/bitcast/745b27.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/bitcast/745b27.wgsl.expected.ir.dxc.hlsl
index a249798..8c59d10 100644
--- a/test/tint/builtins/gen/var/bitcast/745b27.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/bitcast/745b27.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,43 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  float4 prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Bitcast
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation float4 VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+float4 bitcast_745b27() {
+  float4 arg_0 = (1.0f).xxxx;
+  float4 res = arg_0;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store4(0u, asuint(bitcast_745b27()));
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store4(0u, asuint(bitcast_745b27()));
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = bitcast_745b27();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
diff --git a/test/tint/builtins/gen/var/bitcast/745b27.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/bitcast/745b27.wgsl.expected.ir.fxc.hlsl
index a249798..8c59d10 100644
--- a/test/tint/builtins/gen/var/bitcast/745b27.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/bitcast/745b27.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,43 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  float4 prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Bitcast
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation float4 VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+float4 bitcast_745b27() {
+  float4 arg_0 = (1.0f).xxxx;
+  float4 res = arg_0;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store4(0u, asuint(bitcast_745b27()));
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store4(0u, asuint(bitcast_745b27()));
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = bitcast_745b27();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
diff --git a/test/tint/builtins/gen/var/bitcast/7e67cc.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/bitcast/7e67cc.wgsl.expected.ir.dxc.hlsl
index a249798..8a87d8f 100644
--- a/test/tint/builtins/gen/var/bitcast/7e67cc.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/bitcast/7e67cc.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,43 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  int prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Bitcast
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation int VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+int bitcast_7e67cc() {
+  int arg_0 = 1;
+  int res = arg_0;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store(0u, asuint(bitcast_7e67cc()));
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store(0u, asuint(bitcast_7e67cc()));
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = bitcast_7e67cc();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
diff --git a/test/tint/builtins/gen/var/bitcast/7e67cc.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/bitcast/7e67cc.wgsl.expected.ir.fxc.hlsl
index a249798..8a87d8f 100644
--- a/test/tint/builtins/gen/var/bitcast/7e67cc.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/bitcast/7e67cc.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,43 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  int prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Bitcast
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation int VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+int bitcast_7e67cc() {
+  int arg_0 = 1;
+  int res = arg_0;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store(0u, asuint(bitcast_7e67cc()));
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store(0u, asuint(bitcast_7e67cc()));
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = bitcast_7e67cc();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
diff --git a/test/tint/builtins/gen/var/bitcast/7ffa9c.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/bitcast/7ffa9c.wgsl.expected.ir.dxc.hlsl
index a249798..6c25c7d 100644
--- a/test/tint/builtins/gen/var/bitcast/7ffa9c.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/bitcast/7ffa9c.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,43 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  uint4 prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Bitcast
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation uint4 VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+uint4 bitcast_7ffa9c() {
+  uint4 arg_0 = (1u).xxxx;
+  uint4 res = arg_0;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store4(0u, bitcast_7ffa9c());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store4(0u, bitcast_7ffa9c());
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = bitcast_7ffa9c();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
diff --git a/test/tint/builtins/gen/var/bitcast/7ffa9c.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/bitcast/7ffa9c.wgsl.expected.ir.fxc.hlsl
index a249798..6c25c7d 100644
--- a/test/tint/builtins/gen/var/bitcast/7ffa9c.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/bitcast/7ffa9c.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,43 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  uint4 prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Bitcast
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation uint4 VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+uint4 bitcast_7ffa9c() {
+  uint4 arg_0 = (1u).xxxx;
+  uint4 res = arg_0;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store4(0u, bitcast_7ffa9c());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store4(0u, bitcast_7ffa9c());
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = bitcast_7ffa9c();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
diff --git a/test/tint/builtins/gen/var/bitcast/81c5f5.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/bitcast/81c5f5.wgsl.expected.ir.dxc.hlsl
index a249798..b0eed02 100644
--- a/test/tint/builtins/gen/var/bitcast/81c5f5.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/bitcast/81c5f5.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,48 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  uint2 prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Bitcast
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation uint2 VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+uint2 tint_bitcast_from_f16(vector<float16_t, 4> src) {
+  uint4 r = f32tof16(float4(src));
+  return uint2(((r.x & 65535u) | ((r.y & 65535u) << 16u)), ((r.z & 65535u) | ((r.w & 65535u) << 16u)));
+}
+
+uint2 bitcast_81c5f5() {
+  vector<float16_t, 4> arg_0 = (float16_t(1.0h)).xxxx;
+  uint2 res = tint_bitcast_from_f16(arg_0);
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store2(0u, bitcast_81c5f5());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store2(0u, bitcast_81c5f5());
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = bitcast_81c5f5();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
diff --git a/test/tint/builtins/gen/var/bitcast/81c5f5.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/bitcast/81c5f5.wgsl.expected.ir.fxc.hlsl
index a249798..2a3b071 100644
--- a/test/tint/builtins/gen/var/bitcast/81c5f5.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/bitcast/81c5f5.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,55 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Bitcast
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct VertexOutput {
+  float4 pos;
+  uint2 prevent_dce;
+};
+
+struct vertex_main_outputs {
+  nointerpolation uint2 VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+uint2 tint_bitcast_from_f16(vector<float16_t, 4> src) {
+  uint4 r = f32tof16(float4(src));
+  return uint2(((r.x & 65535u) | ((r.y & 65535u) << 16u)), ((r.z & 65535u) | ((r.w & 65535u) << 16u)));
+}
+
+uint2 bitcast_81c5f5() {
+  vector<float16_t, 4> arg_0 = (float16_t(1.0h)).xxxx;
+  uint2 res = tint_bitcast_from_f16(arg_0);
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store2(0u, bitcast_81c5f5());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store2(0u, bitcast_81c5f5());
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = bitcast_81c5f5();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
+FXC validation failure:
+c:\src\dawn\Shader@0x0000018D181B0BC0(13,36-44): error X3000: syntax error: unexpected token 'float16_t'
+c:\src\dawn\Shader@0x0000018D181B0BC0(14,29-31): error X3004: undeclared identifier 'src'
+c:\src\dawn\Shader@0x0000018D181B0BC0(14,22-32): error X3014: incorrect number of arguments to numeric-type constructor
+
diff --git a/test/tint/builtins/gen/var/bitcast/8318a8.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/bitcast/8318a8.wgsl.expected.ir.dxc.hlsl
index a249798..385468b 100644
--- a/test/tint/builtins/gen/var/bitcast/8318a8.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/bitcast/8318a8.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,43 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  uint3 prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Bitcast
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation uint3 VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+uint3 bitcast_8318a8() {
+  uint3 arg_0 = (1u).xxx;
+  uint3 res = arg_0;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store3(0u, bitcast_8318a8());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store3(0u, bitcast_8318a8());
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = bitcast_8318a8();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
diff --git a/test/tint/builtins/gen/var/bitcast/8318a8.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/bitcast/8318a8.wgsl.expected.ir.fxc.hlsl
index a249798..385468b 100644
--- a/test/tint/builtins/gen/var/bitcast/8318a8.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/bitcast/8318a8.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,43 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  uint3 prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Bitcast
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation uint3 VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+uint3 bitcast_8318a8() {
+  uint3 arg_0 = (1u).xxx;
+  uint3 res = arg_0;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store3(0u, bitcast_8318a8());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store3(0u, bitcast_8318a8());
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = bitcast_8318a8();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
diff --git a/test/tint/builtins/gen/var/bitcast/879dc9.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/bitcast/879dc9.wgsl.expected.ir.dxc.hlsl
index 0ba40c6..53dce82 100644
--- a/test/tint/builtins/gen/var/bitcast/879dc9.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/bitcast/879dc9.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,42 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  uint prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation uint VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+uint bitcast_879dc9() {
+  uint res = 1u;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store(0u, bitcast_879dc9());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store(0u, bitcast_879dc9());
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = bitcast_879dc9();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
diff --git a/test/tint/builtins/gen/var/bitcast/879dc9.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/bitcast/879dc9.wgsl.expected.ir.fxc.hlsl
index 0ba40c6..53dce82 100644
--- a/test/tint/builtins/gen/var/bitcast/879dc9.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/bitcast/879dc9.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,42 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  uint prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation uint VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+uint bitcast_879dc9() {
+  uint res = 1u;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store(0u, bitcast_879dc9());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store(0u, bitcast_879dc9());
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = bitcast_879dc9();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
diff --git a/test/tint/builtins/gen/var/bitcast/899e50.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/bitcast/899e50.wgsl.expected.ir.dxc.hlsl
index a249798..e7cfdc9 100644
--- a/test/tint/builtins/gen/var/bitcast/899e50.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/bitcast/899e50.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,43 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  int2 prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Bitcast
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation int2 VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+int2 bitcast_899e50() {
+  float2 arg_0 = (1.0f).xx;
+  int2 res = asint(arg_0);
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store2(0u, asuint(bitcast_899e50()));
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store2(0u, asuint(bitcast_899e50()));
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = bitcast_899e50();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
diff --git a/test/tint/builtins/gen/var/bitcast/899e50.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/bitcast/899e50.wgsl.expected.ir.fxc.hlsl
index a249798..e7cfdc9 100644
--- a/test/tint/builtins/gen/var/bitcast/899e50.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/bitcast/899e50.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,43 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  int2 prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Bitcast
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation int2 VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+int2 bitcast_899e50() {
+  float2 arg_0 = (1.0f).xx;
+  int2 res = asint(arg_0);
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store2(0u, asuint(bitcast_899e50()));
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store2(0u, asuint(bitcast_899e50()));
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = bitcast_899e50();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
diff --git a/test/tint/builtins/gen/var/bitcast/8d184c.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/bitcast/8d184c.wgsl.expected.ir.dxc.hlsl
index a249798..d5134c3 100644
--- a/test/tint/builtins/gen/var/bitcast/8d184c.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/bitcast/8d184c.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,43 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  uint4 prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Bitcast
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation uint4 VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+uint4 bitcast_8d184c() {
+  float4 arg_0 = (1.0f).xxxx;
+  uint4 res = asuint(arg_0);
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store4(0u, bitcast_8d184c());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store4(0u, bitcast_8d184c());
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = bitcast_8d184c();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
diff --git a/test/tint/builtins/gen/var/bitcast/8d184c.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/bitcast/8d184c.wgsl.expected.ir.fxc.hlsl
index a249798..d5134c3 100644
--- a/test/tint/builtins/gen/var/bitcast/8d184c.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/bitcast/8d184c.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,43 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  uint4 prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Bitcast
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation uint4 VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+uint4 bitcast_8d184c() {
+  float4 arg_0 = (1.0f).xxxx;
+  uint4 res = asuint(arg_0);
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store4(0u, bitcast_8d184c());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store4(0u, bitcast_8d184c());
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = bitcast_8d184c();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
diff --git a/test/tint/builtins/gen/var/bitcast/9bcf71.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/bitcast/9bcf71.wgsl.expected.ir.dxc.hlsl
index a249798..3280dff 100644
--- a/test/tint/builtins/gen/var/bitcast/9bcf71.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/bitcast/9bcf71.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,43 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  float2 prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Bitcast
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation float2 VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+float2 bitcast_9bcf71() {
+  float2 arg_0 = (1.0f).xx;
+  float2 res = arg_0;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store2(0u, asuint(bitcast_9bcf71()));
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store2(0u, asuint(bitcast_9bcf71()));
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = bitcast_9bcf71();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
diff --git a/test/tint/builtins/gen/var/bitcast/9bcf71.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/bitcast/9bcf71.wgsl.expected.ir.fxc.hlsl
index a249798..3280dff 100644
--- a/test/tint/builtins/gen/var/bitcast/9bcf71.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/bitcast/9bcf71.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,43 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  float2 prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Bitcast
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation float2 VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+float2 bitcast_9bcf71() {
+  float2 arg_0 = (1.0f).xx;
+  float2 res = arg_0;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store2(0u, asuint(bitcast_9bcf71()));
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store2(0u, asuint(bitcast_9bcf71()));
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = bitcast_9bcf71();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
diff --git a/test/tint/builtins/gen/var/bitcast/9ca42c.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/bitcast/9ca42c.wgsl.expected.ir.dxc.hlsl
index a249798..7dbab50 100644
--- a/test/tint/builtins/gen/var/bitcast/9ca42c.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/bitcast/9ca42c.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,51 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  vector<float16_t, 2> prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Bitcast
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation vector<float16_t, 2> VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+vector<float16_t, 2> tint_bitcast_to_f16(float src) {
+  uint v = asuint(src);
+  float t_low = f16tof32((v & 65535u));
+  float t_high = f16tof32(((v >> 16u) & 65535u));
+  float16_t v_1 = float16_t(t_low);
+  return vector<float16_t, 2>(v_1, float16_t(t_high));
+}
+
+vector<float16_t, 2> bitcast_9ca42c() {
+  float arg_0 = 1.0f;
+  vector<float16_t, 2> res = tint_bitcast_to_f16(arg_0);
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store<vector<float16_t, 2> >(0u, bitcast_9ca42c());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store<vector<float16_t, 2> >(0u, bitcast_9ca42c());
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = bitcast_9ca42c();
+  VertexOutput v_2 = tint_symbol;
+  return v_2;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_3 = vertex_main_inner();
+  VertexOutput v_4 = v_3;
+  VertexOutput v_5 = v_3;
+  vertex_main_outputs v_6 = {v_5.prevent_dce, v_4.pos};
+  return v_6;
+}
+
diff --git a/test/tint/builtins/gen/var/bitcast/9ca42c.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/bitcast/9ca42c.wgsl.expected.ir.fxc.hlsl
index a249798..2ec0ae3 100644
--- a/test/tint/builtins/gen/var/bitcast/9ca42c.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/bitcast/9ca42c.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,56 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Bitcast
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct VertexOutput {
+  float4 pos;
+  vector<float16_t, 2> prevent_dce;
+};
+
+struct vertex_main_outputs {
+  nointerpolation vector<float16_t, 2> VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+vector<float16_t, 2> tint_bitcast_to_f16(float src) {
+  uint v = asuint(src);
+  float t_low = f16tof32((v & 65535u));
+  float t_high = f16tof32(((v >> 16u) & 65535u));
+  float16_t v_1 = float16_t(t_low);
+  return vector<float16_t, 2>(v_1, float16_t(t_high));
+}
+
+vector<float16_t, 2> bitcast_9ca42c() {
+  float arg_0 = 1.0f;
+  vector<float16_t, 2> res = tint_bitcast_to_f16(arg_0);
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store<vector<float16_t, 2> >(0u, bitcast_9ca42c());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store<vector<float16_t, 2> >(0u, bitcast_9ca42c());
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = bitcast_9ca42c();
+  VertexOutput v_2 = tint_symbol;
+  return v_2;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_3 = vertex_main_inner();
+  VertexOutput v_4 = v_3;
+  VertexOutput v_5 = v_3;
+  vertex_main_outputs v_6 = {v_5.prevent_dce, v_4.pos};
+  return v_6;
+}
+
+FXC validation failure:
+c:\src\dawn\Shader@0x00000207343C31B0(3,10-18): error X3000: syntax error: unexpected token 'float16_t'
+
diff --git a/test/tint/builtins/gen/var/bitcast/9eee21.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/bitcast/9eee21.wgsl.expected.ir.dxc.hlsl
index a249798..9db62c5 100644
--- a/test/tint/builtins/gen/var/bitcast/9eee21.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/bitcast/9eee21.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,43 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  int3 prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Bitcast
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation int3 VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+int3 bitcast_9eee21() {
+  int3 arg_0 = (1).xxx;
+  int3 res = arg_0;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store3(0u, asuint(bitcast_9eee21()));
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store3(0u, asuint(bitcast_9eee21()));
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = bitcast_9eee21();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
diff --git a/test/tint/builtins/gen/var/bitcast/9eee21.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/bitcast/9eee21.wgsl.expected.ir.fxc.hlsl
index a249798..9db62c5 100644
--- a/test/tint/builtins/gen/var/bitcast/9eee21.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/bitcast/9eee21.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,43 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  int3 prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Bitcast
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation int3 VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+int3 bitcast_9eee21() {
+  int3 arg_0 = (1).xxx;
+  int3 res = arg_0;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store3(0u, asuint(bitcast_9eee21()));
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store3(0u, asuint(bitcast_9eee21()));
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = bitcast_9eee21();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
diff --git a/test/tint/builtins/gen/var/bitcast/a4b290.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/bitcast/a4b290.wgsl.expected.ir.dxc.hlsl
index a249798..f2077ba 100644
--- a/test/tint/builtins/gen/var/bitcast/a4b290.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/bitcast/a4b290.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,43 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  float4 prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Bitcast
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation float4 VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+float4 bitcast_a4b290() {
+  uint4 arg_0 = (1u).xxxx;
+  float4 res = asfloat(arg_0);
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store4(0u, asuint(bitcast_a4b290()));
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store4(0u, asuint(bitcast_a4b290()));
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = bitcast_a4b290();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
diff --git a/test/tint/builtins/gen/var/bitcast/a4b290.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/bitcast/a4b290.wgsl.expected.ir.fxc.hlsl
index a249798..f2077ba 100644
--- a/test/tint/builtins/gen/var/bitcast/a4b290.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/bitcast/a4b290.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,43 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  float4 prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Bitcast
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation float4 VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+float4 bitcast_a4b290() {
+  uint4 arg_0 = (1u).xxxx;
+  float4 res = asfloat(arg_0);
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store4(0u, asuint(bitcast_a4b290()));
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store4(0u, asuint(bitcast_a4b290()));
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = bitcast_a4b290();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
diff --git a/test/tint/builtins/gen/var/bitcast/a58b50.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/bitcast/a58b50.wgsl.expected.ir.dxc.hlsl
index a249798..2a8ce3d 100644
--- a/test/tint/builtins/gen/var/bitcast/a58b50.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/bitcast/a58b50.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,48 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  uint prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Bitcast
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation uint VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+uint tint_bitcast_from_f16(vector<float16_t, 2> src) {
+  uint2 r = f32tof16(float2(src));
+  return ((r.x & 65535u) | ((r.y & 65535u) << 16u));
+}
+
+uint bitcast_a58b50() {
+  vector<float16_t, 2> arg_0 = (float16_t(1.0h)).xx;
+  uint res = tint_bitcast_from_f16(arg_0);
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store(0u, bitcast_a58b50());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store(0u, bitcast_a58b50());
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = bitcast_a58b50();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
diff --git a/test/tint/builtins/gen/var/bitcast/a58b50.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/bitcast/a58b50.wgsl.expected.ir.fxc.hlsl
index a249798..adc4e25 100644
--- a/test/tint/builtins/gen/var/bitcast/a58b50.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/bitcast/a58b50.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,55 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Bitcast
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct VertexOutput {
+  float4 pos;
+  uint prevent_dce;
+};
+
+struct vertex_main_outputs {
+  nointerpolation uint VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+uint tint_bitcast_from_f16(vector<float16_t, 2> src) {
+  uint2 r = f32tof16(float2(src));
+  return ((r.x & 65535u) | ((r.y & 65535u) << 16u));
+}
+
+uint bitcast_a58b50() {
+  vector<float16_t, 2> arg_0 = (float16_t(1.0h)).xx;
+  uint res = tint_bitcast_from_f16(arg_0);
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store(0u, bitcast_a58b50());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store(0u, bitcast_a58b50());
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = bitcast_a58b50();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
+FXC validation failure:
+c:\src\dawn\Shader@0x000002A48EE4F480(13,35-43): error X3000: syntax error: unexpected token 'float16_t'
+c:\src\dawn\Shader@0x000002A48EE4F480(14,29-31): error X3004: undeclared identifier 'src'
+c:\src\dawn\Shader@0x000002A48EE4F480(14,22-32): error X3014: incorrect number of arguments to numeric-type constructor
+
diff --git a/test/tint/builtins/gen/var/bitcast/a5c539.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/bitcast/a5c539.wgsl.expected.ir.dxc.hlsl
index a249798..c1c3dcd 100644
--- a/test/tint/builtins/gen/var/bitcast/a5c539.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/bitcast/a5c539.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,43 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  int4 prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Bitcast
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation int4 VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+int4 bitcast_a5c539() {
+  uint4 arg_0 = (1u).xxxx;
+  int4 res = asint(arg_0);
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store4(0u, asuint(bitcast_a5c539()));
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store4(0u, asuint(bitcast_a5c539()));
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = bitcast_a5c539();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
diff --git a/test/tint/builtins/gen/var/bitcast/a5c539.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/bitcast/a5c539.wgsl.expected.ir.fxc.hlsl
index a249798..c1c3dcd 100644
--- a/test/tint/builtins/gen/var/bitcast/a5c539.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/bitcast/a5c539.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,43 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  int4 prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Bitcast
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation int4 VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+int4 bitcast_a5c539() {
+  uint4 arg_0 = (1u).xxxx;
+  int4 res = asint(arg_0);
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store4(0u, asuint(bitcast_a5c539()));
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store4(0u, asuint(bitcast_a5c539()));
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = bitcast_a5c539();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
diff --git a/test/tint/builtins/gen/var/bitcast/a8c93f.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/bitcast/a8c93f.wgsl.expected.ir.dxc.hlsl
index a249798..f8be1ae 100644
--- a/test/tint/builtins/gen/var/bitcast/a8c93f.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/bitcast/a8c93f.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,43 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  uint4 prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Bitcast
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation uint4 VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+uint4 bitcast_a8c93f() {
+  int4 arg_0 = (1).xxxx;
+  uint4 res = asuint(arg_0);
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store4(0u, bitcast_a8c93f());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store4(0u, bitcast_a8c93f());
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = bitcast_a8c93f();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
diff --git a/test/tint/builtins/gen/var/bitcast/a8c93f.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/bitcast/a8c93f.wgsl.expected.ir.fxc.hlsl
index a249798..f8be1ae 100644
--- a/test/tint/builtins/gen/var/bitcast/a8c93f.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/bitcast/a8c93f.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,43 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  uint4 prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Bitcast
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation uint4 VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+uint4 bitcast_a8c93f() {
+  int4 arg_0 = (1).xxxx;
+  uint4 res = asuint(arg_0);
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store4(0u, bitcast_a8c93f());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store4(0u, bitcast_a8c93f());
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = bitcast_a8c93f();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
diff --git a/test/tint/builtins/gen/var/bitcast/a8ea1b.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/bitcast/a8ea1b.wgsl.expected.ir.dxc.hlsl
index a249798..0b3423c 100644
--- a/test/tint/builtins/gen/var/bitcast/a8ea1b.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/bitcast/a8ea1b.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,43 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  int3 prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Bitcast
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation int3 VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+int3 bitcast_a8ea1b() {
+  uint3 arg_0 = (1u).xxx;
+  int3 res = asint(arg_0);
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store3(0u, asuint(bitcast_a8ea1b()));
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store3(0u, asuint(bitcast_a8ea1b()));
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = bitcast_a8ea1b();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
diff --git a/test/tint/builtins/gen/var/bitcast/a8ea1b.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/bitcast/a8ea1b.wgsl.expected.ir.fxc.hlsl
index a249798..0b3423c 100644
--- a/test/tint/builtins/gen/var/bitcast/a8ea1b.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/bitcast/a8ea1b.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,43 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  int3 prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Bitcast
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation int3 VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+int3 bitcast_a8ea1b() {
+  uint3 arg_0 = (1u).xxx;
+  int3 res = asint(arg_0);
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store3(0u, asuint(bitcast_a8ea1b()));
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store3(0u, asuint(bitcast_a8ea1b()));
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = bitcast_a8ea1b();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
diff --git a/test/tint/builtins/gen/var/bitcast/ac09d0.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/bitcast/ac09d0.wgsl.expected.ir.dxc.hlsl
index a249798..4fddaf2 100644
--- a/test/tint/builtins/gen/var/bitcast/ac09d0.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/bitcast/ac09d0.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,43 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  float prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Bitcast
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation float VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+float bitcast_ac09d0() {
+  float arg_0 = 1.0f;
+  float res = arg_0;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store(0u, asuint(bitcast_ac09d0()));
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store(0u, asuint(bitcast_ac09d0()));
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = bitcast_ac09d0();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
diff --git a/test/tint/builtins/gen/var/bitcast/ac09d0.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/bitcast/ac09d0.wgsl.expected.ir.fxc.hlsl
index a249798..4fddaf2 100644
--- a/test/tint/builtins/gen/var/bitcast/ac09d0.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/bitcast/ac09d0.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,43 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  float prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Bitcast
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation float VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+float bitcast_ac09d0() {
+  float arg_0 = 1.0f;
+  float res = arg_0;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store(0u, asuint(bitcast_ac09d0()));
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store(0u, asuint(bitcast_ac09d0()));
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = bitcast_ac09d0();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
diff --git a/test/tint/builtins/gen/var/bitcast/ad4b05.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/bitcast/ad4b05.wgsl.expected.ir.dxc.hlsl
index a249798..967d050 100644
--- a/test/tint/builtins/gen/var/bitcast/ad4b05.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/bitcast/ad4b05.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,43 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  float prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Bitcast
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation float VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+float bitcast_ad4b05() {
+  uint arg_0 = 1u;
+  float res = asfloat(arg_0);
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store(0u, asuint(bitcast_ad4b05()));
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store(0u, asuint(bitcast_ad4b05()));
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = bitcast_ad4b05();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
diff --git a/test/tint/builtins/gen/var/bitcast/ad4b05.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/bitcast/ad4b05.wgsl.expected.ir.fxc.hlsl
index a249798..967d050 100644
--- a/test/tint/builtins/gen/var/bitcast/ad4b05.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/bitcast/ad4b05.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,43 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  float prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Bitcast
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation float VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+float bitcast_ad4b05() {
+  uint arg_0 = 1u;
+  float res = asfloat(arg_0);
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store(0u, asuint(bitcast_ad4b05()));
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store(0u, asuint(bitcast_ad4b05()));
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = bitcast_ad4b05();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
diff --git a/test/tint/builtins/gen/var/bitcast/b28cbd.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/bitcast/b28cbd.wgsl.expected.ir.dxc.hlsl
index a249798..af5655e 100644
--- a/test/tint/builtins/gen/var/bitcast/b28cbd.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/bitcast/b28cbd.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,43 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  int3 prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Bitcast
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation int3 VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+int3 bitcast_b28cbd() {
+  float3 arg_0 = (1.0f).xxx;
+  int3 res = asint(arg_0);
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store3(0u, asuint(bitcast_b28cbd()));
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store3(0u, asuint(bitcast_b28cbd()));
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = bitcast_b28cbd();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
diff --git a/test/tint/builtins/gen/var/bitcast/b28cbd.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/bitcast/b28cbd.wgsl.expected.ir.fxc.hlsl
index a249798..af5655e 100644
--- a/test/tint/builtins/gen/var/bitcast/b28cbd.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/bitcast/b28cbd.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,43 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  int3 prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Bitcast
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation int3 VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+int3 bitcast_b28cbd() {
+  float3 arg_0 = (1.0f).xxx;
+  int3 res = asint(arg_0);
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store3(0u, asuint(bitcast_b28cbd()));
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store3(0u, asuint(bitcast_b28cbd()));
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = bitcast_b28cbd();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
diff --git a/test/tint/builtins/gen/var/bitcast/b77573.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/bitcast/b77573.wgsl.expected.ir.dxc.hlsl
index a249798..d93bbe0 100644
--- a/test/tint/builtins/gen/var/bitcast/b77573.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/bitcast/b77573.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,43 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  float2 prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Bitcast
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation float2 VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+float2 bitcast_b77573() {
+  int2 arg_0 = (1).xx;
+  float2 res = asfloat(arg_0);
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store2(0u, asuint(bitcast_b77573()));
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store2(0u, asuint(bitcast_b77573()));
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = bitcast_b77573();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
diff --git a/test/tint/builtins/gen/var/bitcast/b77573.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/bitcast/b77573.wgsl.expected.ir.fxc.hlsl
index a249798..d93bbe0 100644
--- a/test/tint/builtins/gen/var/bitcast/b77573.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/bitcast/b77573.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,43 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  float2 prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Bitcast
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation float2 VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+float2 bitcast_b77573() {
+  int2 arg_0 = (1).xx;
+  float2 res = asfloat(arg_0);
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store2(0u, asuint(bitcast_b77573()));
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store2(0u, asuint(bitcast_b77573()));
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = bitcast_b77573();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
diff --git a/test/tint/builtins/gen/var/bitcast/bc3994.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/bitcast/bc3994.wgsl.expected.ir.dxc.hlsl
index a249798..ccf19fa 100644
--- a/test/tint/builtins/gen/var/bitcast/bc3994.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/bitcast/bc3994.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,55 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  vector<float16_t, 4> prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Bitcast
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation vector<float16_t, 4> VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+vector<float16_t, 4> tint_bitcast_to_f16(uint2 src) {
+  uint2 v = src;
+  uint2 mask = (65535u).xx;
+  uint2 shift = (16u).xx;
+  float2 t_low = f16tof32((v & mask));
+  float2 t_high = f16tof32(((v >> shift) & mask));
+  float16_t v_1 = float16_t(t_low.x);
+  float16_t v_2 = float16_t(t_high.x);
+  float16_t v_3 = float16_t(t_low.y);
+  return vector<float16_t, 4>(v_1, v_2, v_3, float16_t(t_high.y));
+}
+
+vector<float16_t, 4> bitcast_bc3994() {
+  uint2 arg_0 = (1u).xx;
+  vector<float16_t, 4> res = tint_bitcast_to_f16(arg_0);
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store<vector<float16_t, 4> >(0u, bitcast_bc3994());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store<vector<float16_t, 4> >(0u, bitcast_bc3994());
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = bitcast_bc3994();
+  VertexOutput v_4 = tint_symbol;
+  return v_4;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_5 = vertex_main_inner();
+  VertexOutput v_6 = v_5;
+  VertexOutput v_7 = v_5;
+  vertex_main_outputs v_8 = {v_7.prevent_dce, v_6.pos};
+  return v_8;
+}
+
diff --git a/test/tint/builtins/gen/var/bitcast/bc3994.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/bitcast/bc3994.wgsl.expected.ir.fxc.hlsl
index a249798..a922dc1 100644
--- a/test/tint/builtins/gen/var/bitcast/bc3994.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/bitcast/bc3994.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,60 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Bitcast
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct VertexOutput {
+  float4 pos;
+  vector<float16_t, 4> prevent_dce;
+};
+
+struct vertex_main_outputs {
+  nointerpolation vector<float16_t, 4> VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+vector<float16_t, 4> tint_bitcast_to_f16(uint2 src) {
+  uint2 v = src;
+  uint2 mask = (65535u).xx;
+  uint2 shift = (16u).xx;
+  float2 t_low = f16tof32((v & mask));
+  float2 t_high = f16tof32(((v >> shift) & mask));
+  float16_t v_1 = float16_t(t_low.x);
+  float16_t v_2 = float16_t(t_high.x);
+  float16_t v_3 = float16_t(t_low.y);
+  return vector<float16_t, 4>(v_1, v_2, v_3, float16_t(t_high.y));
+}
+
+vector<float16_t, 4> bitcast_bc3994() {
+  uint2 arg_0 = (1u).xx;
+  vector<float16_t, 4> res = tint_bitcast_to_f16(arg_0);
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store<vector<float16_t, 4> >(0u, bitcast_bc3994());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store<vector<float16_t, 4> >(0u, bitcast_bc3994());
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = bitcast_bc3994();
+  VertexOutput v_4 = tint_symbol;
+  return v_4;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_5 = vertex_main_inner();
+  VertexOutput v_6 = v_5;
+  VertexOutput v_7 = v_5;
+  vertex_main_outputs v_8 = {v_7.prevent_dce, v_6.pos};
+  return v_8;
+}
+
+FXC validation failure:
+c:\src\dawn\Shader@0x0000011B1EA6CB50(3,10-18): error X3000: syntax error: unexpected token 'float16_t'
+
diff --git a/test/tint/builtins/gen/var/bitcast/c69aaf.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/bitcast/c69aaf.wgsl.expected.ir.dxc.hlsl
index a249798..1aed3c0 100644
--- a/test/tint/builtins/gen/var/bitcast/c69aaf.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/bitcast/c69aaf.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,43 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  int2 prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Bitcast
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation int2 VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+int2 bitcast_c69aaf() {
+  uint2 arg_0 = (1u).xx;
+  int2 res = asint(arg_0);
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store2(0u, asuint(bitcast_c69aaf()));
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store2(0u, asuint(bitcast_c69aaf()));
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = bitcast_c69aaf();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
diff --git a/test/tint/builtins/gen/var/bitcast/c69aaf.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/bitcast/c69aaf.wgsl.expected.ir.fxc.hlsl
index a249798..1aed3c0 100644
--- a/test/tint/builtins/gen/var/bitcast/c69aaf.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/bitcast/c69aaf.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,43 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  int2 prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Bitcast
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation int2 VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+int2 bitcast_c69aaf() {
+  uint2 arg_0 = (1u).xx;
+  int2 res = asint(arg_0);
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store2(0u, asuint(bitcast_c69aaf()));
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store2(0u, asuint(bitcast_c69aaf()));
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = bitcast_c69aaf();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
diff --git a/test/tint/builtins/gen/var/bitcast/ca5c3f.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/bitcast/ca5c3f.wgsl.expected.ir.dxc.hlsl
index a249798..ae0eeaf 100644
--- a/test/tint/builtins/gen/var/bitcast/ca5c3f.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/bitcast/ca5c3f.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,43 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  float prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Bitcast
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation float VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+float bitcast_ca5c3f() {
+  int arg_0 = 1;
+  float res = asfloat(arg_0);
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store(0u, asuint(bitcast_ca5c3f()));
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store(0u, asuint(bitcast_ca5c3f()));
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = bitcast_ca5c3f();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
diff --git a/test/tint/builtins/gen/var/bitcast/ca5c3f.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/bitcast/ca5c3f.wgsl.expected.ir.fxc.hlsl
index a249798..ae0eeaf 100644
--- a/test/tint/builtins/gen/var/bitcast/ca5c3f.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/bitcast/ca5c3f.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,43 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  float prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Bitcast
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation float VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+float bitcast_ca5c3f() {
+  int arg_0 = 1;
+  float res = asfloat(arg_0);
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store(0u, asuint(bitcast_ca5c3f()));
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store(0u, asuint(bitcast_ca5c3f()));
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = bitcast_ca5c3f();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
diff --git a/test/tint/builtins/gen/var/bitcast/cc7aa7.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/bitcast/cc7aa7.wgsl.expected.ir.dxc.hlsl
index a249798..8cd45b0 100644
--- a/test/tint/builtins/gen/var/bitcast/cc7aa7.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/bitcast/cc7aa7.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,43 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  int2 prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Bitcast
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation int2 VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+int2 bitcast_cc7aa7() {
+  int2 arg_0 = (1).xx;
+  int2 res = arg_0;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store2(0u, asuint(bitcast_cc7aa7()));
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store2(0u, asuint(bitcast_cc7aa7()));
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = bitcast_cc7aa7();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
diff --git a/test/tint/builtins/gen/var/bitcast/cc7aa7.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/bitcast/cc7aa7.wgsl.expected.ir.fxc.hlsl
index a249798..8cd45b0 100644
--- a/test/tint/builtins/gen/var/bitcast/cc7aa7.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/bitcast/cc7aa7.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,43 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  int2 prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Bitcast
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation int2 VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+int2 bitcast_cc7aa7() {
+  int2 arg_0 = (1).xx;
+  int2 res = arg_0;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store2(0u, asuint(bitcast_cc7aa7()));
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store2(0u, asuint(bitcast_cc7aa7()));
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = bitcast_cc7aa7();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
diff --git a/test/tint/builtins/gen/var/bitcast/d29765.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/bitcast/d29765.wgsl.expected.ir.dxc.hlsl
index a249798..56544ce 100644
--- a/test/tint/builtins/gen/var/bitcast/d29765.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/bitcast/d29765.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,43 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  uint2 prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Bitcast
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation uint2 VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+uint2 bitcast_d29765() {
+  uint2 arg_0 = (1u).xx;
+  uint2 res = arg_0;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store2(0u, bitcast_d29765());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store2(0u, bitcast_d29765());
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = bitcast_d29765();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
diff --git a/test/tint/builtins/gen/var/bitcast/d29765.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/bitcast/d29765.wgsl.expected.ir.fxc.hlsl
index a249798..56544ce 100644
--- a/test/tint/builtins/gen/var/bitcast/d29765.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/bitcast/d29765.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,43 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  uint2 prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Bitcast
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation uint2 VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+uint2 bitcast_d29765() {
+  uint2 arg_0 = (1u).xx;
+  uint2 res = arg_0;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store2(0u, bitcast_d29765());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store2(0u, bitcast_d29765());
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = bitcast_d29765();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
diff --git a/test/tint/builtins/gen/var/bitcast/dce842.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/bitcast/dce842.wgsl.expected.ir.dxc.hlsl
index a249798..0ec09b5 100644
--- a/test/tint/builtins/gen/var/bitcast/dce842.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/bitcast/dce842.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,43 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  uint prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Bitcast
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation uint VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+uint bitcast_dce842() {
+  int arg_0 = 1;
+  uint res = asuint(arg_0);
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store(0u, bitcast_dce842());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store(0u, bitcast_dce842());
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = bitcast_dce842();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
diff --git a/test/tint/builtins/gen/var/bitcast/dce842.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/bitcast/dce842.wgsl.expected.ir.fxc.hlsl
index a249798..0ec09b5 100644
--- a/test/tint/builtins/gen/var/bitcast/dce842.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/bitcast/dce842.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,43 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  uint prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Bitcast
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation uint VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+uint bitcast_dce842() {
+  int arg_0 = 1;
+  uint res = asuint(arg_0);
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store(0u, bitcast_dce842());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store(0u, bitcast_dce842());
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = bitcast_dce842();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
diff --git a/test/tint/builtins/gen/var/bitcast/e61c57.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/bitcast/e61c57.wgsl.expected.ir.dxc.hlsl
index a249798..992490d5 100644
--- a/test/tint/builtins/gen/var/bitcast/e61c57.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/bitcast/e61c57.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,43 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  int prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Bitcast
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation int VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+int bitcast_e61c57() {
+  uint arg_0 = 1u;
+  int res = asint(arg_0);
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store(0u, asuint(bitcast_e61c57()));
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store(0u, asuint(bitcast_e61c57()));
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = bitcast_e61c57();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
diff --git a/test/tint/builtins/gen/var/bitcast/e61c57.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/bitcast/e61c57.wgsl.expected.ir.fxc.hlsl
index a249798..992490d5 100644
--- a/test/tint/builtins/gen/var/bitcast/e61c57.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/bitcast/e61c57.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,43 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  int prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Bitcast
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation int VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+int bitcast_e61c57() {
+  uint arg_0 = 1u;
+  int res = asint(arg_0);
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store(0u, asuint(bitcast_e61c57()));
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store(0u, asuint(bitcast_e61c57()));
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = bitcast_e61c57();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
diff --git a/test/tint/builtins/gen/var/bitcast/e6c18f.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/bitcast/e6c18f.wgsl.expected.ir.dxc.hlsl
index a249798..627a4fb 100644
--- a/test/tint/builtins/gen/var/bitcast/e6c18f.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/bitcast/e6c18f.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,43 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  uint prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Bitcast
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation uint VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+uint bitcast_e6c18f() {
+  float arg_0 = 1.0f;
+  uint res = asuint(arg_0);
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store(0u, bitcast_e6c18f());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store(0u, bitcast_e6c18f());
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = bitcast_e6c18f();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
diff --git a/test/tint/builtins/gen/var/bitcast/e6c18f.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/bitcast/e6c18f.wgsl.expected.ir.fxc.hlsl
index a249798..627a4fb 100644
--- a/test/tint/builtins/gen/var/bitcast/e6c18f.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/bitcast/e6c18f.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,43 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  uint prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Bitcast
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation uint VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+uint bitcast_e6c18f() {
+  float arg_0 = 1.0f;
+  uint res = asuint(arg_0);
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store(0u, bitcast_e6c18f());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store(0u, bitcast_e6c18f());
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = bitcast_e6c18f();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
diff --git a/test/tint/builtins/gen/var/bitcast/f756cd.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/bitcast/f756cd.wgsl.expected.ir.dxc.hlsl
index 0ba40c6..d703438 100644
--- a/test/tint/builtins/gen/var/bitcast/f756cd.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/bitcast/f756cd.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,42 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  uint3 prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation uint3 VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+uint3 bitcast_f756cd() {
+  uint3 res = (1u).xxx;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store3(0u, bitcast_f756cd());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store3(0u, bitcast_f756cd());
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = bitcast_f756cd();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
diff --git a/test/tint/builtins/gen/var/bitcast/f756cd.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/bitcast/f756cd.wgsl.expected.ir.fxc.hlsl
index 0ba40c6..d703438 100644
--- a/test/tint/builtins/gen/var/bitcast/f756cd.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/bitcast/f756cd.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,42 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  uint3 prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation uint3 VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+uint3 bitcast_f756cd() {
+  uint3 res = (1u).xxx;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store3(0u, bitcast_f756cd());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store3(0u, bitcast_f756cd());
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = bitcast_f756cd();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
diff --git a/test/tint/builtins/gen/var/ceil/09bf52.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/ceil/09bf52.wgsl.expected.ir.dxc.hlsl
index 0ba40c6..0ab1992 100644
--- a/test/tint/builtins/gen/var/ceil/09bf52.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/ceil/09bf52.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,43 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  vector<float16_t, 3> prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation vector<float16_t, 3> VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+vector<float16_t, 3> ceil_09bf52() {
+  vector<float16_t, 3> arg_0 = (float16_t(1.5h)).xxx;
+  vector<float16_t, 3> res = ceil(arg_0);
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store<vector<float16_t, 3> >(0u, ceil_09bf52());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store<vector<float16_t, 3> >(0u, ceil_09bf52());
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = ceil_09bf52();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
diff --git a/test/tint/builtins/gen/var/ceil/09bf52.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/ceil/09bf52.wgsl.expected.ir.fxc.hlsl
index 0ba40c6..bb4c6c3 100644
--- a/test/tint/builtins/gen/var/ceil/09bf52.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/ceil/09bf52.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,48 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct VertexOutput {
+  float4 pos;
+  vector<float16_t, 3> prevent_dce;
+};
+
+struct vertex_main_outputs {
+  nointerpolation vector<float16_t, 3> VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+vector<float16_t, 3> ceil_09bf52() {
+  vector<float16_t, 3> arg_0 = (float16_t(1.5h)).xxx;
+  vector<float16_t, 3> res = ceil(arg_0);
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store<vector<float16_t, 3> >(0u, ceil_09bf52());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store<vector<float16_t, 3> >(0u, ceil_09bf52());
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = ceil_09bf52();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
+FXC validation failure:
+c:\src\dawn\Shader@0x0000019DBC7B0E90(3,10-18): error X3000: syntax error: unexpected token 'float16_t'
+
diff --git a/test/tint/builtins/gen/var/ceil/11b1dc.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/ceil/11b1dc.wgsl.expected.ir.dxc.hlsl
index 0ba40c6..681119d 100644
--- a/test/tint/builtins/gen/var/ceil/11b1dc.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/ceil/11b1dc.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,36 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+void ceil_11b1dc() {
+  float4 res = (2.0f).xxxx;
+}
+
+void fragment_main() {
+  ceil_11b1dc();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  ceil_11b1dc();
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  ceil_11b1dc();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  vertex_main_outputs v_2 = {v_1.pos};
+  return v_2;
+}
+
diff --git a/test/tint/builtins/gen/var/ceil/11b1dc.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/ceil/11b1dc.wgsl.expected.ir.fxc.hlsl
index 0ba40c6..681119d 100644
--- a/test/tint/builtins/gen/var/ceil/11b1dc.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/ceil/11b1dc.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,36 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+void ceil_11b1dc() {
+  float4 res = (2.0f).xxxx;
+}
+
+void fragment_main() {
+  ceil_11b1dc();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  ceil_11b1dc();
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  ceil_11b1dc();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  vertex_main_outputs v_2 = {v_1.pos};
+  return v_2;
+}
+
diff --git a/test/tint/builtins/gen/var/ceil/18c240.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/ceil/18c240.wgsl.expected.ir.dxc.hlsl
index 0ba40c6..2f86b05 100644
--- a/test/tint/builtins/gen/var/ceil/18c240.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/ceil/18c240.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,43 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  vector<float16_t, 2> prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation vector<float16_t, 2> VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+vector<float16_t, 2> ceil_18c240() {
+  vector<float16_t, 2> arg_0 = (float16_t(1.5h)).xx;
+  vector<float16_t, 2> res = ceil(arg_0);
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store<vector<float16_t, 2> >(0u, ceil_18c240());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store<vector<float16_t, 2> >(0u, ceil_18c240());
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = ceil_18c240();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
diff --git a/test/tint/builtins/gen/var/ceil/18c240.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/ceil/18c240.wgsl.expected.ir.fxc.hlsl
index 0ba40c6..3e5f301 100644
--- a/test/tint/builtins/gen/var/ceil/18c240.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/ceil/18c240.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,48 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct VertexOutput {
+  float4 pos;
+  vector<float16_t, 2> prevent_dce;
+};
+
+struct vertex_main_outputs {
+  nointerpolation vector<float16_t, 2> VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+vector<float16_t, 2> ceil_18c240() {
+  vector<float16_t, 2> arg_0 = (float16_t(1.5h)).xx;
+  vector<float16_t, 2> res = ceil(arg_0);
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store<vector<float16_t, 2> >(0u, ceil_18c240());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store<vector<float16_t, 2> >(0u, ceil_18c240());
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = ceil_18c240();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
+FXC validation failure:
+c:\src\dawn\Shader@0x000001E9E91CEE70(3,10-18): error X3000: syntax error: unexpected token 'float16_t'
+
diff --git a/test/tint/builtins/gen/var/ceil/32c946.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/ceil/32c946.wgsl.expected.ir.dxc.hlsl
index 0ba40c6..e68c809 100644
--- a/test/tint/builtins/gen/var/ceil/32c946.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/ceil/32c946.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,36 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+void ceil_32c946() {
+  float3 res = (2.0f).xxx;
+}
+
+void fragment_main() {
+  ceil_32c946();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  ceil_32c946();
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  ceil_32c946();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  vertex_main_outputs v_2 = {v_1.pos};
+  return v_2;
+}
+
diff --git a/test/tint/builtins/gen/var/ceil/32c946.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/ceil/32c946.wgsl.expected.ir.fxc.hlsl
index 0ba40c6..e68c809 100644
--- a/test/tint/builtins/gen/var/ceil/32c946.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/ceil/32c946.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,36 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+void ceil_32c946() {
+  float3 res = (2.0f).xxx;
+}
+
+void fragment_main() {
+  ceil_32c946();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  ceil_32c946();
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  ceil_32c946();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  vertex_main_outputs v_2 = {v_1.pos};
+  return v_2;
+}
+
diff --git a/test/tint/builtins/gen/var/ceil/34064b.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/ceil/34064b.wgsl.expected.ir.dxc.hlsl
index 0ba40c6..4dc91b3 100644
--- a/test/tint/builtins/gen/var/ceil/34064b.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/ceil/34064b.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,43 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  float3 prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation float3 VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+float3 ceil_34064b() {
+  float3 arg_0 = (1.5f).xxx;
+  float3 res = ceil(arg_0);
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store3(0u, asuint(ceil_34064b()));
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store3(0u, asuint(ceil_34064b()));
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = ceil_34064b();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
diff --git a/test/tint/builtins/gen/var/ceil/34064b.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/ceil/34064b.wgsl.expected.ir.fxc.hlsl
index 0ba40c6..4dc91b3 100644
--- a/test/tint/builtins/gen/var/ceil/34064b.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/ceil/34064b.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,43 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  float3 prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation float3 VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+float3 ceil_34064b() {
+  float3 arg_0 = (1.5f).xxx;
+  float3 res = ceil(arg_0);
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store3(0u, asuint(ceil_34064b()));
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store3(0u, asuint(ceil_34064b()));
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = ceil_34064b();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
diff --git a/test/tint/builtins/gen/var/ceil/4bca2a.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/ceil/4bca2a.wgsl.expected.ir.dxc.hlsl
index 0ba40c6..d1253e9 100644
--- a/test/tint/builtins/gen/var/ceil/4bca2a.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/ceil/4bca2a.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,43 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  vector<float16_t, 4> prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation vector<float16_t, 4> VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+vector<float16_t, 4> ceil_4bca2a() {
+  vector<float16_t, 4> arg_0 = (float16_t(1.5h)).xxxx;
+  vector<float16_t, 4> res = ceil(arg_0);
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store<vector<float16_t, 4> >(0u, ceil_4bca2a());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store<vector<float16_t, 4> >(0u, ceil_4bca2a());
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = ceil_4bca2a();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
diff --git a/test/tint/builtins/gen/var/ceil/4bca2a.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/ceil/4bca2a.wgsl.expected.ir.fxc.hlsl
index 0ba40c6..b04b17c 100644
--- a/test/tint/builtins/gen/var/ceil/4bca2a.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/ceil/4bca2a.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,48 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct VertexOutput {
+  float4 pos;
+  vector<float16_t, 4> prevent_dce;
+};
+
+struct vertex_main_outputs {
+  nointerpolation vector<float16_t, 4> VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+vector<float16_t, 4> ceil_4bca2a() {
+  vector<float16_t, 4> arg_0 = (float16_t(1.5h)).xxxx;
+  vector<float16_t, 4> res = ceil(arg_0);
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store<vector<float16_t, 4> >(0u, ceil_4bca2a());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store<vector<float16_t, 4> >(0u, ceil_4bca2a());
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = ceil_4bca2a();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
+FXC validation failure:
+c:\src\dawn\Shader@0x000001FB9F1C23D0(3,10-18): error X3000: syntax error: unexpected token 'float16_t'
+
diff --git a/test/tint/builtins/gen/var/ceil/678655.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/ceil/678655.wgsl.expected.ir.dxc.hlsl
index 0ba40c6..8615622 100644
--- a/test/tint/builtins/gen/var/ceil/678655.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/ceil/678655.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,43 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  float prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation float VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+float ceil_678655() {
+  float arg_0 = 1.5f;
+  float res = ceil(arg_0);
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store(0u, asuint(ceil_678655()));
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store(0u, asuint(ceil_678655()));
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = ceil_678655();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
diff --git a/test/tint/builtins/gen/var/ceil/678655.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/ceil/678655.wgsl.expected.ir.fxc.hlsl
index 0ba40c6..8615622 100644
--- a/test/tint/builtins/gen/var/ceil/678655.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/ceil/678655.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,43 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  float prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation float VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+float ceil_678655() {
+  float arg_0 = 1.5f;
+  float res = ceil(arg_0);
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store(0u, asuint(ceil_678655()));
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store(0u, asuint(ceil_678655()));
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = ceil_678655();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
diff --git a/test/tint/builtins/gen/var/ceil/96f597.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/ceil/96f597.wgsl.expected.ir.dxc.hlsl
index 0ba40c6..5c52452 100644
--- a/test/tint/builtins/gen/var/ceil/96f597.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/ceil/96f597.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,43 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  float2 prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation float2 VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+float2 ceil_96f597() {
+  float2 arg_0 = (1.5f).xx;
+  float2 res = ceil(arg_0);
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store2(0u, asuint(ceil_96f597()));
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store2(0u, asuint(ceil_96f597()));
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = ceil_96f597();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
diff --git a/test/tint/builtins/gen/var/ceil/96f597.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/ceil/96f597.wgsl.expected.ir.fxc.hlsl
index 0ba40c6..5c52452 100644
--- a/test/tint/builtins/gen/var/ceil/96f597.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/ceil/96f597.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,43 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  float2 prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation float2 VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+float2 ceil_96f597() {
+  float2 arg_0 = (1.5f).xx;
+  float2 res = ceil(arg_0);
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store2(0u, asuint(ceil_96f597()));
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store2(0u, asuint(ceil_96f597()));
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = ceil_96f597();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
diff --git a/test/tint/builtins/gen/var/ceil/b74c16.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/ceil/b74c16.wgsl.expected.ir.dxc.hlsl
index 0ba40c6..4376abd 100644
--- a/test/tint/builtins/gen/var/ceil/b74c16.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/ceil/b74c16.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,43 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  float4 prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation float4 VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+float4 ceil_b74c16() {
+  float4 arg_0 = (1.5f).xxxx;
+  float4 res = ceil(arg_0);
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store4(0u, asuint(ceil_b74c16()));
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store4(0u, asuint(ceil_b74c16()));
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = ceil_b74c16();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
diff --git a/test/tint/builtins/gen/var/ceil/b74c16.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/ceil/b74c16.wgsl.expected.ir.fxc.hlsl
index 0ba40c6..4376abd 100644
--- a/test/tint/builtins/gen/var/ceil/b74c16.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/ceil/b74c16.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,43 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  float4 prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation float4 VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+float4 ceil_b74c16() {
+  float4 arg_0 = (1.5f).xxxx;
+  float4 res = ceil(arg_0);
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store4(0u, asuint(ceil_b74c16()));
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store4(0u, asuint(ceil_b74c16()));
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = ceil_b74c16();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
diff --git a/test/tint/builtins/gen/var/ceil/bb2ca2.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/ceil/bb2ca2.wgsl.expected.ir.dxc.hlsl
index 0ba40c6..af2b421 100644
--- a/test/tint/builtins/gen/var/ceil/bb2ca2.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/ceil/bb2ca2.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,36 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+void ceil_bb2ca2() {
+  float2 res = (2.0f).xx;
+}
+
+void fragment_main() {
+  ceil_bb2ca2();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  ceil_bb2ca2();
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  ceil_bb2ca2();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  vertex_main_outputs v_2 = {v_1.pos};
+  return v_2;
+}
+
diff --git a/test/tint/builtins/gen/var/ceil/bb2ca2.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/ceil/bb2ca2.wgsl.expected.ir.fxc.hlsl
index 0ba40c6..af2b421 100644
--- a/test/tint/builtins/gen/var/ceil/bb2ca2.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/ceil/bb2ca2.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,36 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+void ceil_bb2ca2() {
+  float2 res = (2.0f).xx;
+}
+
+void fragment_main() {
+  ceil_bb2ca2();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  ceil_bb2ca2();
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  ceil_bb2ca2();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  vertex_main_outputs v_2 = {v_1.pos};
+  return v_2;
+}
+
diff --git a/test/tint/builtins/gen/var/ceil/e0b70a.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/ceil/e0b70a.wgsl.expected.ir.dxc.hlsl
index 0ba40c6..5ca0be6 100644
--- a/test/tint/builtins/gen/var/ceil/e0b70a.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/ceil/e0b70a.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,36 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+void ceil_e0b70a() {
+  float res = 2.0f;
+}
+
+void fragment_main() {
+  ceil_e0b70a();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  ceil_e0b70a();
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  ceil_e0b70a();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  vertex_main_outputs v_2 = {v_1.pos};
+  return v_2;
+}
+
diff --git a/test/tint/builtins/gen/var/ceil/e0b70a.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/ceil/e0b70a.wgsl.expected.ir.fxc.hlsl
index 0ba40c6..5ca0be6 100644
--- a/test/tint/builtins/gen/var/ceil/e0b70a.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/ceil/e0b70a.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,36 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+void ceil_e0b70a() {
+  float res = 2.0f;
+}
+
+void fragment_main() {
+  ceil_e0b70a();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  ceil_e0b70a();
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  ceil_e0b70a();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  vertex_main_outputs v_2 = {v_1.pos};
+  return v_2;
+}
+
diff --git a/test/tint/builtins/gen/var/ceil/f3f889.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/ceil/f3f889.wgsl.expected.ir.dxc.hlsl
index 0ba40c6..40b55c5 100644
--- a/test/tint/builtins/gen/var/ceil/f3f889.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/ceil/f3f889.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,43 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  float16_t prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation float16_t VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+float16_t ceil_f3f889() {
+  float16_t arg_0 = float16_t(1.5h);
+  float16_t res = ceil(arg_0);
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store<float16_t>(0u, ceil_f3f889());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store<float16_t>(0u, ceil_f3f889());
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = ceil_f3f889();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
diff --git a/test/tint/builtins/gen/var/ceil/f3f889.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/ceil/f3f889.wgsl.expected.ir.fxc.hlsl
index 0ba40c6..2592197 100644
--- a/test/tint/builtins/gen/var/ceil/f3f889.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/ceil/f3f889.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,48 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct VertexOutput {
+  float4 pos;
+  float16_t prevent_dce;
+};
+
+struct vertex_main_outputs {
+  nointerpolation float16_t VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+float16_t ceil_f3f889() {
+  float16_t arg_0 = float16_t(1.5h);
+  float16_t res = ceil(arg_0);
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store<float16_t>(0u, ceil_f3f889());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store<float16_t>(0u, ceil_f3f889());
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = ceil_f3f889();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
+FXC validation failure:
+c:\src\dawn\Shader@0x000001509D9F3AF0(3,3-11): error X3000: unrecognized identifier 'float16_t'
+
diff --git a/test/tint/builtins/gen/var/clamp/0acf8f.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/clamp/0acf8f.wgsl.expected.ir.dxc.hlsl
index 0ba40c6..4ecc169 100644
--- a/test/tint/builtins/gen/var/clamp/0acf8f.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/clamp/0acf8f.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,45 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  float2 prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation float2 VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+float2 clamp_0acf8f() {
+  float2 arg_0 = (1.0f).xx;
+  float2 arg_1 = (1.0f).xx;
+  float2 arg_2 = (1.0f).xx;
+  float2 res = clamp(arg_0, arg_1, arg_2);
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store2(0u, asuint(clamp_0acf8f()));
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store2(0u, asuint(clamp_0acf8f()));
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = clamp_0acf8f();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
diff --git a/test/tint/builtins/gen/var/clamp/0acf8f.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/clamp/0acf8f.wgsl.expected.ir.fxc.hlsl
index 0ba40c6..4ecc169 100644
--- a/test/tint/builtins/gen/var/clamp/0acf8f.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/clamp/0acf8f.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,45 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  float2 prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation float2 VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+float2 clamp_0acf8f() {
+  float2 arg_0 = (1.0f).xx;
+  float2 arg_1 = (1.0f).xx;
+  float2 arg_2 = (1.0f).xx;
+  float2 res = clamp(arg_0, arg_1, arg_2);
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store2(0u, asuint(clamp_0acf8f()));
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store2(0u, asuint(clamp_0acf8f()));
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = clamp_0acf8f();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
diff --git a/test/tint/builtins/gen/var/clamp/177548.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/clamp/177548.wgsl.expected.ir.dxc.hlsl
index 0ba40c6..f81854d 100644
--- a/test/tint/builtins/gen/var/clamp/177548.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/clamp/177548.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,36 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+void clamp_177548() {
+  int2 res = (1).xx;
+}
+
+void fragment_main() {
+  clamp_177548();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  clamp_177548();
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  clamp_177548();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  vertex_main_outputs v_2 = {v_1.pos};
+  return v_2;
+}
+
diff --git a/test/tint/builtins/gen/var/clamp/177548.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/clamp/177548.wgsl.expected.ir.fxc.hlsl
index 0ba40c6..f81854d 100644
--- a/test/tint/builtins/gen/var/clamp/177548.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/clamp/177548.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,36 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+void clamp_177548() {
+  int2 res = (1).xx;
+}
+
+void fragment_main() {
+  clamp_177548();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  clamp_177548();
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  clamp_177548();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  vertex_main_outputs v_2 = {v_1.pos};
+  return v_2;
+}
+
diff --git a/test/tint/builtins/gen/var/clamp/1a32e3.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/clamp/1a32e3.wgsl.expected.ir.dxc.hlsl
index 0ba40c6..573b460 100644
--- a/test/tint/builtins/gen/var/clamp/1a32e3.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/clamp/1a32e3.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,46 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  int4 prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation int4 VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+int4 clamp_1a32e3() {
+  int4 arg_0 = (1).xxxx;
+  int4 arg_1 = (1).xxxx;
+  int4 arg_2 = (1).xxxx;
+  int4 v = arg_2;
+  int4 res = min(max(arg_0, arg_1), v);
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store4(0u, asuint(clamp_1a32e3()));
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store4(0u, asuint(clamp_1a32e3()));
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = clamp_1a32e3();
+  VertexOutput v_1 = tint_symbol;
+  return v_1;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_2 = vertex_main_inner();
+  VertexOutput v_3 = v_2;
+  VertexOutput v_4 = v_2;
+  vertex_main_outputs v_5 = {v_4.prevent_dce, v_3.pos};
+  return v_5;
+}
+
diff --git a/test/tint/builtins/gen/var/clamp/1a32e3.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/clamp/1a32e3.wgsl.expected.ir.fxc.hlsl
index 0ba40c6..573b460 100644
--- a/test/tint/builtins/gen/var/clamp/1a32e3.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/clamp/1a32e3.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,46 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  int4 prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation int4 VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+int4 clamp_1a32e3() {
+  int4 arg_0 = (1).xxxx;
+  int4 arg_1 = (1).xxxx;
+  int4 arg_2 = (1).xxxx;
+  int4 v = arg_2;
+  int4 res = min(max(arg_0, arg_1), v);
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store4(0u, asuint(clamp_1a32e3()));
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store4(0u, asuint(clamp_1a32e3()));
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = clamp_1a32e3();
+  VertexOutput v_1 = tint_symbol;
+  return v_1;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_2 = vertex_main_inner();
+  VertexOutput v_3 = v_2;
+  VertexOutput v_4 = v_2;
+  vertex_main_outputs v_5 = {v_4.prevent_dce, v_3.pos};
+  return v_5;
+}
+
diff --git a/test/tint/builtins/gen/var/clamp/235b29.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/clamp/235b29.wgsl.expected.ir.dxc.hlsl
index 0ba40c6..38c0841 100644
--- a/test/tint/builtins/gen/var/clamp/235b29.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/clamp/235b29.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,45 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  vector<float16_t, 2> prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation vector<float16_t, 2> VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+vector<float16_t, 2> clamp_235b29() {
+  vector<float16_t, 2> arg_0 = (float16_t(1.0h)).xx;
+  vector<float16_t, 2> arg_1 = (float16_t(1.0h)).xx;
+  vector<float16_t, 2> arg_2 = (float16_t(1.0h)).xx;
+  vector<float16_t, 2> res = clamp(arg_0, arg_1, arg_2);
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store<vector<float16_t, 2> >(0u, clamp_235b29());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store<vector<float16_t, 2> >(0u, clamp_235b29());
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = clamp_235b29();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
diff --git a/test/tint/builtins/gen/var/clamp/235b29.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/clamp/235b29.wgsl.expected.ir.fxc.hlsl
index 0ba40c6..670961d 100644
--- a/test/tint/builtins/gen/var/clamp/235b29.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/clamp/235b29.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,50 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct VertexOutput {
+  float4 pos;
+  vector<float16_t, 2> prevent_dce;
+};
+
+struct vertex_main_outputs {
+  nointerpolation vector<float16_t, 2> VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+vector<float16_t, 2> clamp_235b29() {
+  vector<float16_t, 2> arg_0 = (float16_t(1.0h)).xx;
+  vector<float16_t, 2> arg_1 = (float16_t(1.0h)).xx;
+  vector<float16_t, 2> arg_2 = (float16_t(1.0h)).xx;
+  vector<float16_t, 2> res = clamp(arg_0, arg_1, arg_2);
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store<vector<float16_t, 2> >(0u, clamp_235b29());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store<vector<float16_t, 2> >(0u, clamp_235b29());
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = clamp_235b29();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
+FXC validation failure:
+c:\src\dawn\Shader@0x00000184D2DEA750(3,10-18): error X3000: syntax error: unexpected token 'float16_t'
+
diff --git a/test/tint/builtins/gen/var/clamp/23aa4f.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/clamp/23aa4f.wgsl.expected.ir.dxc.hlsl
index 0ba40c6..3e88e7b 100644
--- a/test/tint/builtins/gen/var/clamp/23aa4f.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/clamp/23aa4f.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,36 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+void clamp_23aa4f() {
+  float res = 1.0f;
+}
+
+void fragment_main() {
+  clamp_23aa4f();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  clamp_23aa4f();
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  clamp_23aa4f();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  vertex_main_outputs v_2 = {v_1.pos};
+  return v_2;
+}
+
diff --git a/test/tint/builtins/gen/var/clamp/23aa4f.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/clamp/23aa4f.wgsl.expected.ir.fxc.hlsl
index 0ba40c6..3e88e7b 100644
--- a/test/tint/builtins/gen/var/clamp/23aa4f.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/clamp/23aa4f.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,36 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+void clamp_23aa4f() {
+  float res = 1.0f;
+}
+
+void fragment_main() {
+  clamp_23aa4f();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  clamp_23aa4f();
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  clamp_23aa4f();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  vertex_main_outputs v_2 = {v_1.pos};
+  return v_2;
+}
+
diff --git a/test/tint/builtins/gen/var/clamp/2bd567.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/clamp/2bd567.wgsl.expected.ir.dxc.hlsl
index 0ba40c6..e9f4d36 100644
--- a/test/tint/builtins/gen/var/clamp/2bd567.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/clamp/2bd567.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,45 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  float prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation float VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+float clamp_2bd567() {
+  float arg_0 = 1.0f;
+  float arg_1 = 1.0f;
+  float arg_2 = 1.0f;
+  float res = clamp(arg_0, arg_1, arg_2);
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store(0u, asuint(clamp_2bd567()));
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store(0u, asuint(clamp_2bd567()));
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = clamp_2bd567();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
diff --git a/test/tint/builtins/gen/var/clamp/2bd567.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/clamp/2bd567.wgsl.expected.ir.fxc.hlsl
index 0ba40c6..e9f4d36 100644
--- a/test/tint/builtins/gen/var/clamp/2bd567.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/clamp/2bd567.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,45 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  float prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation float VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+float clamp_2bd567() {
+  float arg_0 = 1.0f;
+  float arg_1 = 1.0f;
+  float arg_2 = 1.0f;
+  float res = clamp(arg_0, arg_1, arg_2);
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store(0u, asuint(clamp_2bd567()));
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store(0u, asuint(clamp_2bd567()));
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = clamp_2bd567();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
diff --git a/test/tint/builtins/gen/var/clamp/2bde41.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/clamp/2bde41.wgsl.expected.ir.dxc.hlsl
index 0ba40c6..75fbfa2 100644
--- a/test/tint/builtins/gen/var/clamp/2bde41.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/clamp/2bde41.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,45 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  float4 prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation float4 VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+float4 clamp_2bde41() {
+  float4 arg_0 = (1.0f).xxxx;
+  float4 arg_1 = (1.0f).xxxx;
+  float4 arg_2 = (1.0f).xxxx;
+  float4 res = clamp(arg_0, arg_1, arg_2);
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store4(0u, asuint(clamp_2bde41()));
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store4(0u, asuint(clamp_2bde41()));
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = clamp_2bde41();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
diff --git a/test/tint/builtins/gen/var/clamp/2bde41.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/clamp/2bde41.wgsl.expected.ir.fxc.hlsl
index 0ba40c6..75fbfa2 100644
--- a/test/tint/builtins/gen/var/clamp/2bde41.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/clamp/2bde41.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,45 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  float4 prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation float4 VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+float4 clamp_2bde41() {
+  float4 arg_0 = (1.0f).xxxx;
+  float4 arg_1 = (1.0f).xxxx;
+  float4 arg_2 = (1.0f).xxxx;
+  float4 res = clamp(arg_0, arg_1, arg_2);
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store4(0u, asuint(clamp_2bde41()));
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store4(0u, asuint(clamp_2bde41()));
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = clamp_2bde41();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
diff --git a/test/tint/builtins/gen/var/clamp/2c251b.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/clamp/2c251b.wgsl.expected.ir.dxc.hlsl
index 0ba40c6..6f63af0 100644
--- a/test/tint/builtins/gen/var/clamp/2c251b.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/clamp/2c251b.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,45 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  vector<float16_t, 4> prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation vector<float16_t, 4> VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+vector<float16_t, 4> clamp_2c251b() {
+  vector<float16_t, 4> arg_0 = (float16_t(1.0h)).xxxx;
+  vector<float16_t, 4> arg_1 = (float16_t(1.0h)).xxxx;
+  vector<float16_t, 4> arg_2 = (float16_t(1.0h)).xxxx;
+  vector<float16_t, 4> res = clamp(arg_0, arg_1, arg_2);
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store<vector<float16_t, 4> >(0u, clamp_2c251b());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store<vector<float16_t, 4> >(0u, clamp_2c251b());
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = clamp_2c251b();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
diff --git a/test/tint/builtins/gen/var/clamp/2c251b.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/clamp/2c251b.wgsl.expected.ir.fxc.hlsl
index 0ba40c6..aa7322c 100644
--- a/test/tint/builtins/gen/var/clamp/2c251b.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/clamp/2c251b.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,50 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct VertexOutput {
+  float4 pos;
+  vector<float16_t, 4> prevent_dce;
+};
+
+struct vertex_main_outputs {
+  nointerpolation vector<float16_t, 4> VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+vector<float16_t, 4> clamp_2c251b() {
+  vector<float16_t, 4> arg_0 = (float16_t(1.0h)).xxxx;
+  vector<float16_t, 4> arg_1 = (float16_t(1.0h)).xxxx;
+  vector<float16_t, 4> arg_2 = (float16_t(1.0h)).xxxx;
+  vector<float16_t, 4> res = clamp(arg_0, arg_1, arg_2);
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store<vector<float16_t, 4> >(0u, clamp_2c251b());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store<vector<float16_t, 4> >(0u, clamp_2c251b());
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = clamp_2c251b();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
+FXC validation failure:
+c:\src\dawn\Shader@0x000001EC81E87CC0(3,10-18): error X3000: syntax error: unexpected token 'float16_t'
+
diff --git a/test/tint/builtins/gen/var/clamp/548fc7.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/clamp/548fc7.wgsl.expected.ir.dxc.hlsl
index 0ba40c6..209b475 100644
--- a/test/tint/builtins/gen/var/clamp/548fc7.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/clamp/548fc7.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,46 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  uint3 prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation uint3 VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+uint3 clamp_548fc7() {
+  uint3 arg_0 = (1u).xxx;
+  uint3 arg_1 = (1u).xxx;
+  uint3 arg_2 = (1u).xxx;
+  uint3 v = arg_2;
+  uint3 res = min(max(arg_0, arg_1), v);
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store3(0u, clamp_548fc7());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store3(0u, clamp_548fc7());
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = clamp_548fc7();
+  VertexOutput v_1 = tint_symbol;
+  return v_1;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_2 = vertex_main_inner();
+  VertexOutput v_3 = v_2;
+  VertexOutput v_4 = v_2;
+  vertex_main_outputs v_5 = {v_4.prevent_dce, v_3.pos};
+  return v_5;
+}
+
diff --git a/test/tint/builtins/gen/var/clamp/548fc7.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/clamp/548fc7.wgsl.expected.ir.fxc.hlsl
index 0ba40c6..209b475 100644
--- a/test/tint/builtins/gen/var/clamp/548fc7.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/clamp/548fc7.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,46 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  uint3 prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation uint3 VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+uint3 clamp_548fc7() {
+  uint3 arg_0 = (1u).xxx;
+  uint3 arg_1 = (1u).xxx;
+  uint3 arg_2 = (1u).xxx;
+  uint3 v = arg_2;
+  uint3 res = min(max(arg_0, arg_1), v);
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store3(0u, clamp_548fc7());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store3(0u, clamp_548fc7());
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = clamp_548fc7();
+  VertexOutput v_1 = tint_symbol;
+  return v_1;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_2 = vertex_main_inner();
+  VertexOutput v_3 = v_2;
+  VertexOutput v_4 = v_2;
+  vertex_main_outputs v_5 = {v_4.prevent_dce, v_3.pos};
+  return v_5;
+}
+
diff --git a/test/tint/builtins/gen/var/clamp/553ffb.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/clamp/553ffb.wgsl.expected.ir.dxc.hlsl
index 0ba40c6..56132e8 100644
--- a/test/tint/builtins/gen/var/clamp/553ffb.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/clamp/553ffb.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,45 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  float16_t prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation float16_t VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+float16_t clamp_553ffb() {
+  float16_t arg_0 = float16_t(1.0h);
+  float16_t arg_1 = float16_t(1.0h);
+  float16_t arg_2 = float16_t(1.0h);
+  float16_t res = clamp(arg_0, arg_1, arg_2);
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store<float16_t>(0u, clamp_553ffb());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store<float16_t>(0u, clamp_553ffb());
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = clamp_553ffb();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
diff --git a/test/tint/builtins/gen/var/clamp/553ffb.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/clamp/553ffb.wgsl.expected.ir.fxc.hlsl
index 0ba40c6..0d28730 100644
--- a/test/tint/builtins/gen/var/clamp/553ffb.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/clamp/553ffb.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,50 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct VertexOutput {
+  float4 pos;
+  float16_t prevent_dce;
+};
+
+struct vertex_main_outputs {
+  nointerpolation float16_t VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+float16_t clamp_553ffb() {
+  float16_t arg_0 = float16_t(1.0h);
+  float16_t arg_1 = float16_t(1.0h);
+  float16_t arg_2 = float16_t(1.0h);
+  float16_t res = clamp(arg_0, arg_1, arg_2);
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store<float16_t>(0u, clamp_553ffb());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store<float16_t>(0u, clamp_553ffb());
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = clamp_553ffb();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
+FXC validation failure:
+c:\src\dawn\Shader@0x000002D8F3860560(3,3-11): error X3000: unrecognized identifier 'float16_t'
+
diff --git a/test/tint/builtins/gen/var/clamp/5cf700.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/clamp/5cf700.wgsl.expected.ir.dxc.hlsl
index 0ba40c6..6d01ec3 100644
--- a/test/tint/builtins/gen/var/clamp/5cf700.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/clamp/5cf700.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,36 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+void clamp_5cf700() {
+  float3 res = (1.0f).xxx;
+}
+
+void fragment_main() {
+  clamp_5cf700();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  clamp_5cf700();
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  clamp_5cf700();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  vertex_main_outputs v_2 = {v_1.pos};
+  return v_2;
+}
+
diff --git a/test/tint/builtins/gen/var/clamp/5cf700.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/clamp/5cf700.wgsl.expected.ir.fxc.hlsl
index 0ba40c6..6d01ec3 100644
--- a/test/tint/builtins/gen/var/clamp/5cf700.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/clamp/5cf700.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,36 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+void clamp_5cf700() {
+  float3 res = (1.0f).xxx;
+}
+
+void fragment_main() {
+  clamp_5cf700();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  clamp_5cf700();
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  clamp_5cf700();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  vertex_main_outputs v_2 = {v_1.pos};
+  return v_2;
+}
+
diff --git a/test/tint/builtins/gen/var/clamp/5f0819.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/clamp/5f0819.wgsl.expected.ir.dxc.hlsl
index 0ba40c6..c45581a 100644
--- a/test/tint/builtins/gen/var/clamp/5f0819.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/clamp/5f0819.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,46 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  int3 prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation int3 VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+int3 clamp_5f0819() {
+  int3 arg_0 = (1).xxx;
+  int3 arg_1 = (1).xxx;
+  int3 arg_2 = (1).xxx;
+  int3 v = arg_2;
+  int3 res = min(max(arg_0, arg_1), v);
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store3(0u, asuint(clamp_5f0819()));
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store3(0u, asuint(clamp_5f0819()));
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = clamp_5f0819();
+  VertexOutput v_1 = tint_symbol;
+  return v_1;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_2 = vertex_main_inner();
+  VertexOutput v_3 = v_2;
+  VertexOutput v_4 = v_2;
+  vertex_main_outputs v_5 = {v_4.prevent_dce, v_3.pos};
+  return v_5;
+}
+
diff --git a/test/tint/builtins/gen/var/clamp/5f0819.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/clamp/5f0819.wgsl.expected.ir.fxc.hlsl
index 0ba40c6..c45581a 100644
--- a/test/tint/builtins/gen/var/clamp/5f0819.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/clamp/5f0819.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,46 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  int3 prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation int3 VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+int3 clamp_5f0819() {
+  int3 arg_0 = (1).xxx;
+  int3 arg_1 = (1).xxx;
+  int3 arg_2 = (1).xxx;
+  int3 v = arg_2;
+  int3 res = min(max(arg_0, arg_1), v);
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store3(0u, asuint(clamp_5f0819()));
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store3(0u, asuint(clamp_5f0819()));
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = clamp_5f0819();
+  VertexOutput v_1 = tint_symbol;
+  return v_1;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_2 = vertex_main_inner();
+  VertexOutput v_3 = v_2;
+  VertexOutput v_4 = v_2;
+  vertex_main_outputs v_5 = {v_4.prevent_dce, v_3.pos};
+  return v_5;
+}
+
diff --git a/test/tint/builtins/gen/var/clamp/6c1749.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/clamp/6c1749.wgsl.expected.ir.dxc.hlsl
index 0ba40c6..3cfaba5 100644
--- a/test/tint/builtins/gen/var/clamp/6c1749.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/clamp/6c1749.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,46 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  int2 prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation int2 VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+int2 clamp_6c1749() {
+  int2 arg_0 = (1).xx;
+  int2 arg_1 = (1).xx;
+  int2 arg_2 = (1).xx;
+  int2 v = arg_2;
+  int2 res = min(max(arg_0, arg_1), v);
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store2(0u, asuint(clamp_6c1749()));
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store2(0u, asuint(clamp_6c1749()));
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = clamp_6c1749();
+  VertexOutput v_1 = tint_symbol;
+  return v_1;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_2 = vertex_main_inner();
+  VertexOutput v_3 = v_2;
+  VertexOutput v_4 = v_2;
+  vertex_main_outputs v_5 = {v_4.prevent_dce, v_3.pos};
+  return v_5;
+}
+
diff --git a/test/tint/builtins/gen/var/clamp/6c1749.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/clamp/6c1749.wgsl.expected.ir.fxc.hlsl
index 0ba40c6..3cfaba5 100644
--- a/test/tint/builtins/gen/var/clamp/6c1749.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/clamp/6c1749.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,46 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  int2 prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation int2 VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+int2 clamp_6c1749() {
+  int2 arg_0 = (1).xx;
+  int2 arg_1 = (1).xx;
+  int2 arg_2 = (1).xx;
+  int2 v = arg_2;
+  int2 res = min(max(arg_0, arg_1), v);
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store2(0u, asuint(clamp_6c1749()));
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store2(0u, asuint(clamp_6c1749()));
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = clamp_6c1749();
+  VertexOutput v_1 = tint_symbol;
+  return v_1;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_2 = vertex_main_inner();
+  VertexOutput v_3 = v_2;
+  VertexOutput v_4 = v_2;
+  vertex_main_outputs v_5 = {v_4.prevent_dce, v_3.pos};
+  return v_5;
+}
+
diff --git a/test/tint/builtins/gen/var/clamp/7706d7.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/clamp/7706d7.wgsl.expected.ir.dxc.hlsl
index 0ba40c6..672a4d4 100644
--- a/test/tint/builtins/gen/var/clamp/7706d7.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/clamp/7706d7.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,46 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  uint2 prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation uint2 VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+uint2 clamp_7706d7() {
+  uint2 arg_0 = (1u).xx;
+  uint2 arg_1 = (1u).xx;
+  uint2 arg_2 = (1u).xx;
+  uint2 v = arg_2;
+  uint2 res = min(max(arg_0, arg_1), v);
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store2(0u, clamp_7706d7());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store2(0u, clamp_7706d7());
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = clamp_7706d7();
+  VertexOutput v_1 = tint_symbol;
+  return v_1;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_2 = vertex_main_inner();
+  VertexOutput v_3 = v_2;
+  VertexOutput v_4 = v_2;
+  vertex_main_outputs v_5 = {v_4.prevent_dce, v_3.pos};
+  return v_5;
+}
+
diff --git a/test/tint/builtins/gen/var/clamp/7706d7.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/clamp/7706d7.wgsl.expected.ir.fxc.hlsl
index 0ba40c6..672a4d4 100644
--- a/test/tint/builtins/gen/var/clamp/7706d7.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/clamp/7706d7.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,46 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  uint2 prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation uint2 VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+uint2 clamp_7706d7() {
+  uint2 arg_0 = (1u).xx;
+  uint2 arg_1 = (1u).xx;
+  uint2 arg_2 = (1u).xx;
+  uint2 v = arg_2;
+  uint2 res = min(max(arg_0, arg_1), v);
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store2(0u, clamp_7706d7());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store2(0u, clamp_7706d7());
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = clamp_7706d7();
+  VertexOutput v_1 = tint_symbol;
+  return v_1;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_2 = vertex_main_inner();
+  VertexOutput v_3 = v_2;
+  VertexOutput v_4 = v_2;
+  vertex_main_outputs v_5 = {v_4.prevent_dce, v_3.pos};
+  return v_5;
+}
+
diff --git a/test/tint/builtins/gen/var/clamp/867397.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/clamp/867397.wgsl.expected.ir.dxc.hlsl
index 0ba40c6..dd283c3 100644
--- a/test/tint/builtins/gen/var/clamp/867397.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/clamp/867397.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,45 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  float3 prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation float3 VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+float3 clamp_867397() {
+  float3 arg_0 = (1.0f).xxx;
+  float3 arg_1 = (1.0f).xxx;
+  float3 arg_2 = (1.0f).xxx;
+  float3 res = clamp(arg_0, arg_1, arg_2);
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store3(0u, asuint(clamp_867397()));
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store3(0u, asuint(clamp_867397()));
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = clamp_867397();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
diff --git a/test/tint/builtins/gen/var/clamp/867397.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/clamp/867397.wgsl.expected.ir.fxc.hlsl
index 0ba40c6..dd283c3 100644
--- a/test/tint/builtins/gen/var/clamp/867397.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/clamp/867397.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,45 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  float3 prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation float3 VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+float3 clamp_867397() {
+  float3 arg_0 = (1.0f).xxx;
+  float3 arg_1 = (1.0f).xxx;
+  float3 arg_2 = (1.0f).xxx;
+  float3 res = clamp(arg_0, arg_1, arg_2);
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store3(0u, asuint(clamp_867397()));
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store3(0u, asuint(clamp_867397()));
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = clamp_867397();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
diff --git a/test/tint/builtins/gen/var/clamp/87df46.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/clamp/87df46.wgsl.expected.ir.dxc.hlsl
index 0ba40c6..1808a9b 100644
--- a/test/tint/builtins/gen/var/clamp/87df46.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/clamp/87df46.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,36 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+void clamp_87df46() {
+  float4 res = (1.0f).xxxx;
+}
+
+void fragment_main() {
+  clamp_87df46();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  clamp_87df46();
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  clamp_87df46();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  vertex_main_outputs v_2 = {v_1.pos};
+  return v_2;
+}
+
diff --git a/test/tint/builtins/gen/var/clamp/87df46.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/clamp/87df46.wgsl.expected.ir.fxc.hlsl
index 0ba40c6..1808a9b 100644
--- a/test/tint/builtins/gen/var/clamp/87df46.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/clamp/87df46.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,36 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+void clamp_87df46() {
+  float4 res = (1.0f).xxxx;
+}
+
+void fragment_main() {
+  clamp_87df46();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  clamp_87df46();
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  clamp_87df46();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  vertex_main_outputs v_2 = {v_1.pos};
+  return v_2;
+}
+
diff --git a/test/tint/builtins/gen/var/clamp/8b1eaa.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/clamp/8b1eaa.wgsl.expected.ir.dxc.hlsl
index 0ba40c6..6a14317 100644
--- a/test/tint/builtins/gen/var/clamp/8b1eaa.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/clamp/8b1eaa.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,36 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+void clamp_8b1eaa() {
+  int3 res = (1).xxx;
+}
+
+void fragment_main() {
+  clamp_8b1eaa();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  clamp_8b1eaa();
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  clamp_8b1eaa();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  vertex_main_outputs v_2 = {v_1.pos};
+  return v_2;
+}
+
diff --git a/test/tint/builtins/gen/var/clamp/8b1eaa.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/clamp/8b1eaa.wgsl.expected.ir.fxc.hlsl
index 0ba40c6..6a14317 100644
--- a/test/tint/builtins/gen/var/clamp/8b1eaa.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/clamp/8b1eaa.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,36 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+void clamp_8b1eaa() {
+  int3 res = (1).xxx;
+}
+
+void fragment_main() {
+  clamp_8b1eaa();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  clamp_8b1eaa();
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  clamp_8b1eaa();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  vertex_main_outputs v_2 = {v_1.pos};
+  return v_2;
+}
+
diff --git a/test/tint/builtins/gen/var/clamp/96e56a.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/clamp/96e56a.wgsl.expected.ir.dxc.hlsl
index 0ba40c6..df85b5d 100644
--- a/test/tint/builtins/gen/var/clamp/96e56a.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/clamp/96e56a.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,36 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+void clamp_96e56a() {
+  int res = 1;
+}
+
+void fragment_main() {
+  clamp_96e56a();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  clamp_96e56a();
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  clamp_96e56a();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  vertex_main_outputs v_2 = {v_1.pos};
+  return v_2;
+}
+
diff --git a/test/tint/builtins/gen/var/clamp/96e56a.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/clamp/96e56a.wgsl.expected.ir.fxc.hlsl
index 0ba40c6..df85b5d 100644
--- a/test/tint/builtins/gen/var/clamp/96e56a.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/clamp/96e56a.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,36 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+void clamp_96e56a() {
+  int res = 1;
+}
+
+void fragment_main() {
+  clamp_96e56a();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  clamp_96e56a();
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  clamp_96e56a();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  vertex_main_outputs v_2 = {v_1.pos};
+  return v_2;
+}
+
diff --git a/test/tint/builtins/gen/var/clamp/9d731c.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/clamp/9d731c.wgsl.expected.ir.dxc.hlsl
index 0ba40c6..cc55cef 100644
--- a/test/tint/builtins/gen/var/clamp/9d731c.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/clamp/9d731c.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,36 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+void clamp_9d731c() {
+  float2 res = (1.0f).xx;
+}
+
+void fragment_main() {
+  clamp_9d731c();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  clamp_9d731c();
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  clamp_9d731c();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  vertex_main_outputs v_2 = {v_1.pos};
+  return v_2;
+}
+
diff --git a/test/tint/builtins/gen/var/clamp/9d731c.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/clamp/9d731c.wgsl.expected.ir.fxc.hlsl
index 0ba40c6..cc55cef 100644
--- a/test/tint/builtins/gen/var/clamp/9d731c.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/clamp/9d731c.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,36 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+void clamp_9d731c() {
+  float2 res = (1.0f).xx;
+}
+
+void fragment_main() {
+  clamp_9d731c();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  clamp_9d731c();
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  clamp_9d731c();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  vertex_main_outputs v_2 = {v_1.pos};
+  return v_2;
+}
+
diff --git a/test/tint/builtins/gen/var/clamp/a2de25.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/clamp/a2de25.wgsl.expected.ir.dxc.hlsl
index 0ba40c6..ce1e133 100644
--- a/test/tint/builtins/gen/var/clamp/a2de25.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/clamp/a2de25.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,46 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  uint prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation uint VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+uint clamp_a2de25() {
+  uint arg_0 = 1u;
+  uint arg_1 = 1u;
+  uint arg_2 = 1u;
+  uint v = arg_2;
+  uint res = min(max(arg_0, arg_1), v);
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store(0u, clamp_a2de25());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store(0u, clamp_a2de25());
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = clamp_a2de25();
+  VertexOutput v_1 = tint_symbol;
+  return v_1;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_2 = vertex_main_inner();
+  VertexOutput v_3 = v_2;
+  VertexOutput v_4 = v_2;
+  vertex_main_outputs v_5 = {v_4.prevent_dce, v_3.pos};
+  return v_5;
+}
+
diff --git a/test/tint/builtins/gen/var/clamp/a2de25.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/clamp/a2de25.wgsl.expected.ir.fxc.hlsl
index 0ba40c6..ce1e133 100644
--- a/test/tint/builtins/gen/var/clamp/a2de25.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/clamp/a2de25.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,46 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  uint prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation uint VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+uint clamp_a2de25() {
+  uint arg_0 = 1u;
+  uint arg_1 = 1u;
+  uint arg_2 = 1u;
+  uint v = arg_2;
+  uint res = min(max(arg_0, arg_1), v);
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store(0u, clamp_a2de25());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store(0u, clamp_a2de25());
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = clamp_a2de25();
+  VertexOutput v_1 = tint_symbol;
+  return v_1;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_2 = vertex_main_inner();
+  VertexOutput v_3 = v_2;
+  VertexOutput v_4 = v_2;
+  vertex_main_outputs v_5 = {v_4.prevent_dce, v_3.pos};
+  return v_5;
+}
+
diff --git a/test/tint/builtins/gen/var/clamp/b07c65.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/clamp/b07c65.wgsl.expected.ir.dxc.hlsl
index 0ba40c6..1aae217 100644
--- a/test/tint/builtins/gen/var/clamp/b07c65.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/clamp/b07c65.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,46 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  int prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation int VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+int clamp_b07c65() {
+  int arg_0 = 1;
+  int arg_1 = 1;
+  int arg_2 = 1;
+  int v = arg_2;
+  int res = min(max(arg_0, arg_1), v);
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store(0u, asuint(clamp_b07c65()));
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store(0u, asuint(clamp_b07c65()));
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = clamp_b07c65();
+  VertexOutput v_1 = tint_symbol;
+  return v_1;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_2 = vertex_main_inner();
+  VertexOutput v_3 = v_2;
+  VertexOutput v_4 = v_2;
+  vertex_main_outputs v_5 = {v_4.prevent_dce, v_3.pos};
+  return v_5;
+}
+
diff --git a/test/tint/builtins/gen/var/clamp/b07c65.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/clamp/b07c65.wgsl.expected.ir.fxc.hlsl
index 0ba40c6..1aae217 100644
--- a/test/tint/builtins/gen/var/clamp/b07c65.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/clamp/b07c65.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,46 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  int prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation int VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+int clamp_b07c65() {
+  int arg_0 = 1;
+  int arg_1 = 1;
+  int arg_2 = 1;
+  int v = arg_2;
+  int res = min(max(arg_0, arg_1), v);
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store(0u, asuint(clamp_b07c65()));
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store(0u, asuint(clamp_b07c65()));
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = clamp_b07c65();
+  VertexOutput v_1 = tint_symbol;
+  return v_1;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_2 = vertex_main_inner();
+  VertexOutput v_3 = v_2;
+  VertexOutput v_4 = v_2;
+  vertex_main_outputs v_5 = {v_4.prevent_dce, v_3.pos};
+  return v_5;
+}
+
diff --git a/test/tint/builtins/gen/var/clamp/b195eb.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/clamp/b195eb.wgsl.expected.ir.dxc.hlsl
index 0ba40c6..4dba11b 100644
--- a/test/tint/builtins/gen/var/clamp/b195eb.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/clamp/b195eb.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,45 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  vector<float16_t, 3> prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation vector<float16_t, 3> VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+vector<float16_t, 3> clamp_b195eb() {
+  vector<float16_t, 3> arg_0 = (float16_t(1.0h)).xxx;
+  vector<float16_t, 3> arg_1 = (float16_t(1.0h)).xxx;
+  vector<float16_t, 3> arg_2 = (float16_t(1.0h)).xxx;
+  vector<float16_t, 3> res = clamp(arg_0, arg_1, arg_2);
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store<vector<float16_t, 3> >(0u, clamp_b195eb());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store<vector<float16_t, 3> >(0u, clamp_b195eb());
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = clamp_b195eb();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
diff --git a/test/tint/builtins/gen/var/clamp/b195eb.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/clamp/b195eb.wgsl.expected.ir.fxc.hlsl
index 0ba40c6..fd95398 100644
--- a/test/tint/builtins/gen/var/clamp/b195eb.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/clamp/b195eb.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,50 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct VertexOutput {
+  float4 pos;
+  vector<float16_t, 3> prevent_dce;
+};
+
+struct vertex_main_outputs {
+  nointerpolation vector<float16_t, 3> VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+vector<float16_t, 3> clamp_b195eb() {
+  vector<float16_t, 3> arg_0 = (float16_t(1.0h)).xxx;
+  vector<float16_t, 3> arg_1 = (float16_t(1.0h)).xxx;
+  vector<float16_t, 3> arg_2 = (float16_t(1.0h)).xxx;
+  vector<float16_t, 3> res = clamp(arg_0, arg_1, arg_2);
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store<vector<float16_t, 3> >(0u, clamp_b195eb());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store<vector<float16_t, 3> >(0u, clamp_b195eb());
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = clamp_b195eb();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
+FXC validation failure:
+c:\src\dawn\Shader@0x0000021884BF1860(3,10-18): error X3000: syntax error: unexpected token 'float16_t'
+
diff --git a/test/tint/builtins/gen/var/clamp/bd43ce.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/clamp/bd43ce.wgsl.expected.ir.dxc.hlsl
index 0ba40c6..13f3318 100644
--- a/test/tint/builtins/gen/var/clamp/bd43ce.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/clamp/bd43ce.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,46 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  uint4 prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation uint4 VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+uint4 clamp_bd43ce() {
+  uint4 arg_0 = (1u).xxxx;
+  uint4 arg_1 = (1u).xxxx;
+  uint4 arg_2 = (1u).xxxx;
+  uint4 v = arg_2;
+  uint4 res = min(max(arg_0, arg_1), v);
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store4(0u, clamp_bd43ce());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store4(0u, clamp_bd43ce());
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = clamp_bd43ce();
+  VertexOutput v_1 = tint_symbol;
+  return v_1;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_2 = vertex_main_inner();
+  VertexOutput v_3 = v_2;
+  VertexOutput v_4 = v_2;
+  vertex_main_outputs v_5 = {v_4.prevent_dce, v_3.pos};
+  return v_5;
+}
+
diff --git a/test/tint/builtins/gen/var/clamp/bd43ce.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/clamp/bd43ce.wgsl.expected.ir.fxc.hlsl
index 0ba40c6..13f3318 100644
--- a/test/tint/builtins/gen/var/clamp/bd43ce.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/clamp/bd43ce.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,46 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  uint4 prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation uint4 VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+uint4 clamp_bd43ce() {
+  uint4 arg_0 = (1u).xxxx;
+  uint4 arg_1 = (1u).xxxx;
+  uint4 arg_2 = (1u).xxxx;
+  uint4 v = arg_2;
+  uint4 res = min(max(arg_0, arg_1), v);
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store4(0u, clamp_bd43ce());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store4(0u, clamp_bd43ce());
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = clamp_bd43ce();
+  VertexOutput v_1 = tint_symbol;
+  return v_1;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_2 = vertex_main_inner();
+  VertexOutput v_3 = v_2;
+  VertexOutput v_4 = v_2;
+  vertex_main_outputs v_5 = {v_4.prevent_dce, v_3.pos};
+  return v_5;
+}
+
diff --git a/test/tint/builtins/gen/var/clamp/d396af.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/clamp/d396af.wgsl.expected.ir.dxc.hlsl
index 0ba40c6..00dfc9b 100644
--- a/test/tint/builtins/gen/var/clamp/d396af.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/clamp/d396af.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,36 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+void clamp_d396af() {
+  int4 res = (1).xxxx;
+}
+
+void fragment_main() {
+  clamp_d396af();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  clamp_d396af();
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  clamp_d396af();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  vertex_main_outputs v_2 = {v_1.pos};
+  return v_2;
+}
+
diff --git a/test/tint/builtins/gen/var/clamp/d396af.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/clamp/d396af.wgsl.expected.ir.fxc.hlsl
index 0ba40c6..00dfc9b 100644
--- a/test/tint/builtins/gen/var/clamp/d396af.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/clamp/d396af.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,36 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+void clamp_d396af() {
+  int4 res = (1).xxxx;
+}
+
+void fragment_main() {
+  clamp_d396af();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  clamp_d396af();
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  clamp_d396af();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  vertex_main_outputs v_2 = {v_1.pos};
+  return v_2;
+}
+
diff --git a/test/tint/builtins/gen/var/cos/0835a8.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/cos/0835a8.wgsl.expected.ir.dxc.hlsl
index 0ba40c6..dd33799 100644
--- a/test/tint/builtins/gen/var/cos/0835a8.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/cos/0835a8.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,43 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  vector<float16_t, 3> prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation vector<float16_t, 3> VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+vector<float16_t, 3> cos_0835a8() {
+  vector<float16_t, 3> arg_0 = (float16_t(0.0h)).xxx;
+  vector<float16_t, 3> res = cos(arg_0);
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store<vector<float16_t, 3> >(0u, cos_0835a8());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store<vector<float16_t, 3> >(0u, cos_0835a8());
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = cos_0835a8();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
diff --git a/test/tint/builtins/gen/var/cos/0835a8.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/cos/0835a8.wgsl.expected.ir.fxc.hlsl
index 0ba40c6..31d743c 100644
--- a/test/tint/builtins/gen/var/cos/0835a8.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/cos/0835a8.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,48 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct VertexOutput {
+  float4 pos;
+  vector<float16_t, 3> prevent_dce;
+};
+
+struct vertex_main_outputs {
+  nointerpolation vector<float16_t, 3> VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+vector<float16_t, 3> cos_0835a8() {
+  vector<float16_t, 3> arg_0 = (float16_t(0.0h)).xxx;
+  vector<float16_t, 3> res = cos(arg_0);
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store<vector<float16_t, 3> >(0u, cos_0835a8());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store<vector<float16_t, 3> >(0u, cos_0835a8());
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = cos_0835a8();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
+FXC validation failure:
+c:\src\dawn\Shader@0x0000029871423230(3,10-18): error X3000: syntax error: unexpected token 'float16_t'
+
diff --git a/test/tint/builtins/gen/var/cos/0a89f7.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/cos/0a89f7.wgsl.expected.ir.dxc.hlsl
index 0ba40c6..f65654f 100644
--- a/test/tint/builtins/gen/var/cos/0a89f7.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/cos/0a89f7.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,43 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  vector<float16_t, 4> prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation vector<float16_t, 4> VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+vector<float16_t, 4> cos_0a89f7() {
+  vector<float16_t, 4> arg_0 = (float16_t(0.0h)).xxxx;
+  vector<float16_t, 4> res = cos(arg_0);
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store<vector<float16_t, 4> >(0u, cos_0a89f7());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store<vector<float16_t, 4> >(0u, cos_0a89f7());
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = cos_0a89f7();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
diff --git a/test/tint/builtins/gen/var/cos/0a89f7.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/cos/0a89f7.wgsl.expected.ir.fxc.hlsl
index 0ba40c6..336c065 100644
--- a/test/tint/builtins/gen/var/cos/0a89f7.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/cos/0a89f7.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,48 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct VertexOutput {
+  float4 pos;
+  vector<float16_t, 4> prevent_dce;
+};
+
+struct vertex_main_outputs {
+  nointerpolation vector<float16_t, 4> VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+vector<float16_t, 4> cos_0a89f7() {
+  vector<float16_t, 4> arg_0 = (float16_t(0.0h)).xxxx;
+  vector<float16_t, 4> res = cos(arg_0);
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store<vector<float16_t, 4> >(0u, cos_0a89f7());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store<vector<float16_t, 4> >(0u, cos_0a89f7());
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = cos_0a89f7();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
+FXC validation failure:
+c:\src\dawn\Shader@0x000001C175A0F280(3,10-18): error X3000: syntax error: unexpected token 'float16_t'
+
diff --git a/test/tint/builtins/gen/var/cos/16dc15.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/cos/16dc15.wgsl.expected.ir.dxc.hlsl
index 0ba40c6..e3a5f8a 100644
--- a/test/tint/builtins/gen/var/cos/16dc15.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/cos/16dc15.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,43 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  float3 prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation float3 VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+float3 cos_16dc15() {
+  float3 arg_0 = (0.0f).xxx;
+  float3 res = cos(arg_0);
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store3(0u, asuint(cos_16dc15()));
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store3(0u, asuint(cos_16dc15()));
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = cos_16dc15();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
diff --git a/test/tint/builtins/gen/var/cos/16dc15.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/cos/16dc15.wgsl.expected.ir.fxc.hlsl
index 0ba40c6..e3a5f8a 100644
--- a/test/tint/builtins/gen/var/cos/16dc15.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/cos/16dc15.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,43 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  float3 prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation float3 VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+float3 cos_16dc15() {
+  float3 arg_0 = (0.0f).xxx;
+  float3 res = cos(arg_0);
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store3(0u, asuint(cos_16dc15()));
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store3(0u, asuint(cos_16dc15()));
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = cos_16dc15();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
diff --git a/test/tint/builtins/gen/var/cos/29d66d.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/cos/29d66d.wgsl.expected.ir.dxc.hlsl
index 0ba40c6..866d77f 100644
--- a/test/tint/builtins/gen/var/cos/29d66d.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/cos/29d66d.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,43 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  float4 prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation float4 VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+float4 cos_29d66d() {
+  float4 arg_0 = (0.0f).xxxx;
+  float4 res = cos(arg_0);
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store4(0u, asuint(cos_29d66d()));
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store4(0u, asuint(cos_29d66d()));
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = cos_29d66d();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
diff --git a/test/tint/builtins/gen/var/cos/29d66d.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/cos/29d66d.wgsl.expected.ir.fxc.hlsl
index 0ba40c6..866d77f 100644
--- a/test/tint/builtins/gen/var/cos/29d66d.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/cos/29d66d.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,43 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  float4 prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation float4 VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+float4 cos_29d66d() {
+  float4 arg_0 = (0.0f).xxxx;
+  float4 res = cos(arg_0);
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store4(0u, asuint(cos_29d66d()));
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store4(0u, asuint(cos_29d66d()));
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = cos_29d66d();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
diff --git a/test/tint/builtins/gen/var/cos/47d768.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/cos/47d768.wgsl.expected.ir.dxc.hlsl
index 0ba40c6..9a9445a 100644
--- a/test/tint/builtins/gen/var/cos/47d768.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/cos/47d768.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,36 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+void cos_47d768() {
+  float4 res = (1.0f).xxxx;
+}
+
+void fragment_main() {
+  cos_47d768();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  cos_47d768();
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  cos_47d768();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  vertex_main_outputs v_2 = {v_1.pos};
+  return v_2;
+}
+
diff --git a/test/tint/builtins/gen/var/cos/47d768.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/cos/47d768.wgsl.expected.ir.fxc.hlsl
index 0ba40c6..9a9445a 100644
--- a/test/tint/builtins/gen/var/cos/47d768.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/cos/47d768.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,36 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+void cos_47d768() {
+  float4 res = (1.0f).xxxx;
+}
+
+void fragment_main() {
+  cos_47d768();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  cos_47d768();
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  cos_47d768();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  vertex_main_outputs v_2 = {v_1.pos};
+  return v_2;
+}
+
diff --git a/test/tint/builtins/gen/var/cos/5bc2c6.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/cos/5bc2c6.wgsl.expected.ir.dxc.hlsl
index 0ba40c6..8269980 100644
--- a/test/tint/builtins/gen/var/cos/5bc2c6.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/cos/5bc2c6.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,43 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  vector<float16_t, 2> prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation vector<float16_t, 2> VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+vector<float16_t, 2> cos_5bc2c6() {
+  vector<float16_t, 2> arg_0 = (float16_t(0.0h)).xx;
+  vector<float16_t, 2> res = cos(arg_0);
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store<vector<float16_t, 2> >(0u, cos_5bc2c6());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store<vector<float16_t, 2> >(0u, cos_5bc2c6());
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = cos_5bc2c6();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
diff --git a/test/tint/builtins/gen/var/cos/5bc2c6.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/cos/5bc2c6.wgsl.expected.ir.fxc.hlsl
index 0ba40c6..f86ffa0 100644
--- a/test/tint/builtins/gen/var/cos/5bc2c6.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/cos/5bc2c6.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,48 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct VertexOutput {
+  float4 pos;
+  vector<float16_t, 2> prevent_dce;
+};
+
+struct vertex_main_outputs {
+  nointerpolation vector<float16_t, 2> VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+vector<float16_t, 2> cos_5bc2c6() {
+  vector<float16_t, 2> arg_0 = (float16_t(0.0h)).xx;
+  vector<float16_t, 2> res = cos(arg_0);
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store<vector<float16_t, 2> >(0u, cos_5bc2c6());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store<vector<float16_t, 2> >(0u, cos_5bc2c6());
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = cos_5bc2c6();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
+FXC validation failure:
+c:\src\dawn\Shader@0x00000151292C5810(3,10-18): error X3000: syntax error: unexpected token 'float16_t'
+
diff --git a/test/tint/builtins/gen/var/cos/6b1fdf.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/cos/6b1fdf.wgsl.expected.ir.dxc.hlsl
index 0ba40c6..23f5b62 100644
--- a/test/tint/builtins/gen/var/cos/6b1fdf.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/cos/6b1fdf.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,36 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+void cos_6b1fdf() {
+  float3 res = (1.0f).xxx;
+}
+
+void fragment_main() {
+  cos_6b1fdf();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  cos_6b1fdf();
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  cos_6b1fdf();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  vertex_main_outputs v_2 = {v_1.pos};
+  return v_2;
+}
+
diff --git a/test/tint/builtins/gen/var/cos/6b1fdf.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/cos/6b1fdf.wgsl.expected.ir.fxc.hlsl
index 0ba40c6..23f5b62 100644
--- a/test/tint/builtins/gen/var/cos/6b1fdf.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/cos/6b1fdf.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,36 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+void cos_6b1fdf() {
+  float3 res = (1.0f).xxx;
+}
+
+void fragment_main() {
+  cos_6b1fdf();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  cos_6b1fdf();
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  cos_6b1fdf();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  vertex_main_outputs v_2 = {v_1.pos};
+  return v_2;
+}
+
diff --git a/test/tint/builtins/gen/var/cos/a297d4.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/cos/a297d4.wgsl.expected.ir.dxc.hlsl
index 0ba40c6..5cb983c 100644
--- a/test/tint/builtins/gen/var/cos/a297d4.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/cos/a297d4.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,36 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+void cos_a297d4() {
+  float res = 1.0f;
+}
+
+void fragment_main() {
+  cos_a297d4();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  cos_a297d4();
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  cos_a297d4();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  vertex_main_outputs v_2 = {v_1.pos};
+  return v_2;
+}
+
diff --git a/test/tint/builtins/gen/var/cos/a297d4.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/cos/a297d4.wgsl.expected.ir.fxc.hlsl
index 0ba40c6..5cb983c 100644
--- a/test/tint/builtins/gen/var/cos/a297d4.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/cos/a297d4.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,36 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+void cos_a297d4() {
+  float res = 1.0f;
+}
+
+void fragment_main() {
+  cos_a297d4();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  cos_a297d4();
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  cos_a297d4();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  vertex_main_outputs v_2 = {v_1.pos};
+  return v_2;
+}
+
diff --git a/test/tint/builtins/gen/var/cos/af7447.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/cos/af7447.wgsl.expected.ir.dxc.hlsl
index 0ba40c6..d2ff793 100644
--- a/test/tint/builtins/gen/var/cos/af7447.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/cos/af7447.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,36 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+void cos_af7447() {
+  float2 res = (1.0f).xx;
+}
+
+void fragment_main() {
+  cos_af7447();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  cos_af7447();
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  cos_af7447();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  vertex_main_outputs v_2 = {v_1.pos};
+  return v_2;
+}
+
diff --git a/test/tint/builtins/gen/var/cos/af7447.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/cos/af7447.wgsl.expected.ir.fxc.hlsl
index 0ba40c6..d2ff793 100644
--- a/test/tint/builtins/gen/var/cos/af7447.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/cos/af7447.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,36 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+void cos_af7447() {
+  float2 res = (1.0f).xx;
+}
+
+void fragment_main() {
+  cos_af7447();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  cos_af7447();
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  cos_af7447();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  vertex_main_outputs v_2 = {v_1.pos};
+  return v_2;
+}
+
diff --git a/test/tint/builtins/gen/var/cos/c3b486.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/cos/c3b486.wgsl.expected.ir.dxc.hlsl
index 0ba40c6..239e4ca 100644
--- a/test/tint/builtins/gen/var/cos/c3b486.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/cos/c3b486.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,43 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  float2 prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation float2 VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+float2 cos_c3b486() {
+  float2 arg_0 = (0.0f).xx;
+  float2 res = cos(arg_0);
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store2(0u, asuint(cos_c3b486()));
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store2(0u, asuint(cos_c3b486()));
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = cos_c3b486();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
diff --git a/test/tint/builtins/gen/var/cos/c3b486.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/cos/c3b486.wgsl.expected.ir.fxc.hlsl
index 0ba40c6..239e4ca 100644
--- a/test/tint/builtins/gen/var/cos/c3b486.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/cos/c3b486.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,43 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  float2 prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation float2 VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+float2 cos_c3b486() {
+  float2 arg_0 = (0.0f).xx;
+  float2 res = cos(arg_0);
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store2(0u, asuint(cos_c3b486()));
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store2(0u, asuint(cos_c3b486()));
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = cos_c3b486();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
diff --git a/test/tint/builtins/gen/var/cos/c5c28e.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/cos/c5c28e.wgsl.expected.ir.dxc.hlsl
index 0ba40c6..6d4487f 100644
--- a/test/tint/builtins/gen/var/cos/c5c28e.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/cos/c5c28e.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,43 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  float prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation float VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+float cos_c5c28e() {
+  float arg_0 = 0.0f;
+  float res = cos(arg_0);
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store(0u, asuint(cos_c5c28e()));
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store(0u, asuint(cos_c5c28e()));
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = cos_c5c28e();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
diff --git a/test/tint/builtins/gen/var/cos/c5c28e.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/cos/c5c28e.wgsl.expected.ir.fxc.hlsl
index 0ba40c6..6d4487f 100644
--- a/test/tint/builtins/gen/var/cos/c5c28e.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/cos/c5c28e.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,43 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  float prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation float VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+float cos_c5c28e() {
+  float arg_0 = 0.0f;
+  float res = cos(arg_0);
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store(0u, asuint(cos_c5c28e()));
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store(0u, asuint(cos_c5c28e()));
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = cos_c5c28e();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
diff --git a/test/tint/builtins/gen/var/cos/fc047d.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/cos/fc047d.wgsl.expected.ir.dxc.hlsl
index 0ba40c6..a2ebfc1 100644
--- a/test/tint/builtins/gen/var/cos/fc047d.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/cos/fc047d.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,43 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  float16_t prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation float16_t VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+float16_t cos_fc047d() {
+  float16_t arg_0 = float16_t(0.0h);
+  float16_t res = cos(arg_0);
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store<float16_t>(0u, cos_fc047d());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store<float16_t>(0u, cos_fc047d());
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = cos_fc047d();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
diff --git a/test/tint/builtins/gen/var/cos/fc047d.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/cos/fc047d.wgsl.expected.ir.fxc.hlsl
index 0ba40c6..14ad1f7 100644
--- a/test/tint/builtins/gen/var/cos/fc047d.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/cos/fc047d.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,48 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct VertexOutput {
+  float4 pos;
+  float16_t prevent_dce;
+};
+
+struct vertex_main_outputs {
+  nointerpolation float16_t VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+float16_t cos_fc047d() {
+  float16_t arg_0 = float16_t(0.0h);
+  float16_t res = cos(arg_0);
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store<float16_t>(0u, cos_fc047d());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store<float16_t>(0u, cos_fc047d());
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = cos_fc047d();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
+FXC validation failure:
+c:\src\dawn\Shader@0x00000293FF3B02E0(3,3-11): error X3000: unrecognized identifier 'float16_t'
+
diff --git a/test/tint/builtins/gen/var/cosh/2ed778.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/cosh/2ed778.wgsl.expected.ir.dxc.hlsl
index 0ba40c6..e061288 100644
--- a/test/tint/builtins/gen/var/cosh/2ed778.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/cosh/2ed778.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,43 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  float16_t prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation float16_t VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+float16_t cosh_2ed778() {
+  float16_t arg_0 = float16_t(0.0h);
+  float16_t res = cosh(arg_0);
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store<float16_t>(0u, cosh_2ed778());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store<float16_t>(0u, cosh_2ed778());
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = cosh_2ed778();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
diff --git a/test/tint/builtins/gen/var/cosh/2ed778.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/cosh/2ed778.wgsl.expected.ir.fxc.hlsl
index 0ba40c6..0bfd107 100644
--- a/test/tint/builtins/gen/var/cosh/2ed778.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/cosh/2ed778.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,48 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct VertexOutput {
+  float4 pos;
+  float16_t prevent_dce;
+};
+
+struct vertex_main_outputs {
+  nointerpolation float16_t VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+float16_t cosh_2ed778() {
+  float16_t arg_0 = float16_t(0.0h);
+  float16_t res = cosh(arg_0);
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store<float16_t>(0u, cosh_2ed778());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store<float16_t>(0u, cosh_2ed778());
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = cosh_2ed778();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
+FXC validation failure:
+c:\src\dawn\Shader@0x0000024377395540(3,3-11): error X3000: unrecognized identifier 'float16_t'
+
diff --git a/test/tint/builtins/gen/var/cosh/377652.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/cosh/377652.wgsl.expected.ir.dxc.hlsl
index 0ba40c6..b975fe0 100644
--- a/test/tint/builtins/gen/var/cosh/377652.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/cosh/377652.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,43 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  float3 prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation float3 VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+float3 cosh_377652() {
+  float3 arg_0 = (0.0f).xxx;
+  float3 res = cosh(arg_0);
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store3(0u, asuint(cosh_377652()));
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store3(0u, asuint(cosh_377652()));
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = cosh_377652();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
diff --git a/test/tint/builtins/gen/var/cosh/377652.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/cosh/377652.wgsl.expected.ir.fxc.hlsl
index 0ba40c6..b975fe0 100644
--- a/test/tint/builtins/gen/var/cosh/377652.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/cosh/377652.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,43 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  float3 prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation float3 VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+float3 cosh_377652() {
+  float3 arg_0 = (0.0f).xxx;
+  float3 res = cosh(arg_0);
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store3(0u, asuint(cosh_377652()));
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store3(0u, asuint(cosh_377652()));
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = cosh_377652();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
diff --git a/test/tint/builtins/gen/var/cosh/3b7bbf.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/cosh/3b7bbf.wgsl.expected.ir.dxc.hlsl
index 0ba40c6..d8b8bd9 100644
--- a/test/tint/builtins/gen/var/cosh/3b7bbf.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/cosh/3b7bbf.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,43 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  vector<float16_t, 4> prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation vector<float16_t, 4> VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+vector<float16_t, 4> cosh_3b7bbf() {
+  vector<float16_t, 4> arg_0 = (float16_t(0.0h)).xxxx;
+  vector<float16_t, 4> res = cosh(arg_0);
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store<vector<float16_t, 4> >(0u, cosh_3b7bbf());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store<vector<float16_t, 4> >(0u, cosh_3b7bbf());
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = cosh_3b7bbf();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
diff --git a/test/tint/builtins/gen/var/cosh/3b7bbf.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/cosh/3b7bbf.wgsl.expected.ir.fxc.hlsl
index 0ba40c6..e3145c7 100644
--- a/test/tint/builtins/gen/var/cosh/3b7bbf.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/cosh/3b7bbf.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,48 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct VertexOutput {
+  float4 pos;
+  vector<float16_t, 4> prevent_dce;
+};
+
+struct vertex_main_outputs {
+  nointerpolation vector<float16_t, 4> VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+vector<float16_t, 4> cosh_3b7bbf() {
+  vector<float16_t, 4> arg_0 = (float16_t(0.0h)).xxxx;
+  vector<float16_t, 4> res = cosh(arg_0);
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store<vector<float16_t, 4> >(0u, cosh_3b7bbf());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store<vector<float16_t, 4> >(0u, cosh_3b7bbf());
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = cosh_3b7bbf();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
+FXC validation failure:
+c:\src\dawn\Shader@0x000001DFEE0FF930(3,10-18): error X3000: syntax error: unexpected token 'float16_t'
+
diff --git a/test/tint/builtins/gen/var/cosh/432645.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/cosh/432645.wgsl.expected.ir.dxc.hlsl
index 0ba40c6..9a731e1 100644
--- a/test/tint/builtins/gen/var/cosh/432645.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/cosh/432645.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,36 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+void cosh_432645() {
+  float2 res = (1.0f).xx;
+}
+
+void fragment_main() {
+  cosh_432645();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  cosh_432645();
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  cosh_432645();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  vertex_main_outputs v_2 = {v_1.pos};
+  return v_2;
+}
+
diff --git a/test/tint/builtins/gen/var/cosh/432645.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/cosh/432645.wgsl.expected.ir.fxc.hlsl
index 0ba40c6..9a731e1 100644
--- a/test/tint/builtins/gen/var/cosh/432645.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/cosh/432645.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,36 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+void cosh_432645() {
+  float2 res = (1.0f).xx;
+}
+
+void fragment_main() {
+  cosh_432645();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  cosh_432645();
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  cosh_432645();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  vertex_main_outputs v_2 = {v_1.pos};
+  return v_2;
+}
+
diff --git a/test/tint/builtins/gen/var/cosh/43b672.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/cosh/43b672.wgsl.expected.ir.dxc.hlsl
index 0ba40c6..b1c1727 100644
--- a/test/tint/builtins/gen/var/cosh/43b672.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/cosh/43b672.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,43 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  vector<float16_t, 2> prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation vector<float16_t, 2> VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+vector<float16_t, 2> cosh_43b672() {
+  vector<float16_t, 2> arg_0 = (float16_t(0.0h)).xx;
+  vector<float16_t, 2> res = cosh(arg_0);
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store<vector<float16_t, 2> >(0u, cosh_43b672());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store<vector<float16_t, 2> >(0u, cosh_43b672());
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = cosh_43b672();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
diff --git a/test/tint/builtins/gen/var/cosh/43b672.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/cosh/43b672.wgsl.expected.ir.fxc.hlsl
index 0ba40c6..09678cd 100644
--- a/test/tint/builtins/gen/var/cosh/43b672.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/cosh/43b672.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,48 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct VertexOutput {
+  float4 pos;
+  vector<float16_t, 2> prevent_dce;
+};
+
+struct vertex_main_outputs {
+  nointerpolation vector<float16_t, 2> VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+vector<float16_t, 2> cosh_43b672() {
+  vector<float16_t, 2> arg_0 = (float16_t(0.0h)).xx;
+  vector<float16_t, 2> res = cosh(arg_0);
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store<vector<float16_t, 2> >(0u, cosh_43b672());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store<vector<float16_t, 2> >(0u, cosh_43b672());
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = cosh_43b672();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
+FXC validation failure:
+c:\src\dawn\Shader@0x0000024E6D33CBA0(3,10-18): error X3000: syntax error: unexpected token 'float16_t'
+
diff --git a/test/tint/builtins/gen/var/cosh/b1b8a0.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/cosh/b1b8a0.wgsl.expected.ir.dxc.hlsl
index 0ba40c6..d187ff3 100644
--- a/test/tint/builtins/gen/var/cosh/b1b8a0.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/cosh/b1b8a0.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,43 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  vector<float16_t, 3> prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation vector<float16_t, 3> VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+vector<float16_t, 3> cosh_b1b8a0() {
+  vector<float16_t, 3> arg_0 = (float16_t(0.0h)).xxx;
+  vector<float16_t, 3> res = cosh(arg_0);
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store<vector<float16_t, 3> >(0u, cosh_b1b8a0());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store<vector<float16_t, 3> >(0u, cosh_b1b8a0());
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = cosh_b1b8a0();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
diff --git a/test/tint/builtins/gen/var/cosh/b1b8a0.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/cosh/b1b8a0.wgsl.expected.ir.fxc.hlsl
index 0ba40c6..496eef3 100644
--- a/test/tint/builtins/gen/var/cosh/b1b8a0.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/cosh/b1b8a0.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,48 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct VertexOutput {
+  float4 pos;
+  vector<float16_t, 3> prevent_dce;
+};
+
+struct vertex_main_outputs {
+  nointerpolation vector<float16_t, 3> VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+vector<float16_t, 3> cosh_b1b8a0() {
+  vector<float16_t, 3> arg_0 = (float16_t(0.0h)).xxx;
+  vector<float16_t, 3> res = cosh(arg_0);
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store<vector<float16_t, 3> >(0u, cosh_b1b8a0());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store<vector<float16_t, 3> >(0u, cosh_b1b8a0());
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = cosh_b1b8a0();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
+FXC validation failure:
+c:\src\dawn\Shader@0x000001E0AA5A55D0(3,10-18): error X3000: syntax error: unexpected token 'float16_t'
+
diff --git a/test/tint/builtins/gen/var/cosh/c13756.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/cosh/c13756.wgsl.expected.ir.dxc.hlsl
index 0ba40c6..365b7b1 100644
--- a/test/tint/builtins/gen/var/cosh/c13756.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/cosh/c13756.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,43 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  float2 prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation float2 VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+float2 cosh_c13756() {
+  float2 arg_0 = (0.0f).xx;
+  float2 res = cosh(arg_0);
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store2(0u, asuint(cosh_c13756()));
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store2(0u, asuint(cosh_c13756()));
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = cosh_c13756();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
diff --git a/test/tint/builtins/gen/var/cosh/c13756.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/cosh/c13756.wgsl.expected.ir.fxc.hlsl
index 0ba40c6..365b7b1 100644
--- a/test/tint/builtins/gen/var/cosh/c13756.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/cosh/c13756.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,43 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  float2 prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation float2 VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+float2 cosh_c13756() {
+  float2 arg_0 = (0.0f).xx;
+  float2 res = cosh(arg_0);
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store2(0u, asuint(cosh_c13756()));
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store2(0u, asuint(cosh_c13756()));
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = cosh_c13756();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
diff --git a/test/tint/builtins/gen/var/cosh/c892bb.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/cosh/c892bb.wgsl.expected.ir.dxc.hlsl
index 0ba40c6..ff5e4ba 100644
--- a/test/tint/builtins/gen/var/cosh/c892bb.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/cosh/c892bb.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,36 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+void cosh_c892bb() {
+  float res = 1.0f;
+}
+
+void fragment_main() {
+  cosh_c892bb();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  cosh_c892bb();
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  cosh_c892bb();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  vertex_main_outputs v_2 = {v_1.pos};
+  return v_2;
+}
+
diff --git a/test/tint/builtins/gen/var/cosh/c892bb.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/cosh/c892bb.wgsl.expected.ir.fxc.hlsl
index 0ba40c6..ff5e4ba 100644
--- a/test/tint/builtins/gen/var/cosh/c892bb.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/cosh/c892bb.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,36 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+void cosh_c892bb() {
+  float res = 1.0f;
+}
+
+void fragment_main() {
+  cosh_c892bb();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  cosh_c892bb();
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  cosh_c892bb();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  vertex_main_outputs v_2 = {v_1.pos};
+  return v_2;
+}
+
diff --git a/test/tint/builtins/gen/var/cosh/d8dee7.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/cosh/d8dee7.wgsl.expected.ir.dxc.hlsl
index 0ba40c6..07ebb76 100644
--- a/test/tint/builtins/gen/var/cosh/d8dee7.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/cosh/d8dee7.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,36 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+void cosh_d8dee7() {
+  float4 res = (1.0f).xxxx;
+}
+
+void fragment_main() {
+  cosh_d8dee7();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  cosh_d8dee7();
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  cosh_d8dee7();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  vertex_main_outputs v_2 = {v_1.pos};
+  return v_2;
+}
+
diff --git a/test/tint/builtins/gen/var/cosh/d8dee7.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/cosh/d8dee7.wgsl.expected.ir.fxc.hlsl
index 0ba40c6..07ebb76 100644
--- a/test/tint/builtins/gen/var/cosh/d8dee7.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/cosh/d8dee7.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,36 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+void cosh_d8dee7() {
+  float4 res = (1.0f).xxxx;
+}
+
+void fragment_main() {
+  cosh_d8dee7();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  cosh_d8dee7();
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  cosh_d8dee7();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  vertex_main_outputs v_2 = {v_1.pos};
+  return v_2;
+}
+
diff --git a/test/tint/builtins/gen/var/cosh/da92dd.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/cosh/da92dd.wgsl.expected.ir.dxc.hlsl
index 0ba40c6..ee38aeb 100644
--- a/test/tint/builtins/gen/var/cosh/da92dd.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/cosh/da92dd.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,43 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  float prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation float VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+float cosh_da92dd() {
+  float arg_0 = 0.0f;
+  float res = cosh(arg_0);
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store(0u, asuint(cosh_da92dd()));
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store(0u, asuint(cosh_da92dd()));
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = cosh_da92dd();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
diff --git a/test/tint/builtins/gen/var/cosh/da92dd.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/cosh/da92dd.wgsl.expected.ir.fxc.hlsl
index 0ba40c6..ee38aeb 100644
--- a/test/tint/builtins/gen/var/cosh/da92dd.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/cosh/da92dd.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,43 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  float prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation float VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+float cosh_da92dd() {
+  float arg_0 = 0.0f;
+  float res = cosh(arg_0);
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store(0u, asuint(cosh_da92dd()));
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store(0u, asuint(cosh_da92dd()));
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = cosh_da92dd();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
diff --git a/test/tint/builtins/gen/var/cosh/e0c1de.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/cosh/e0c1de.wgsl.expected.ir.dxc.hlsl
index 0ba40c6..923d852 100644
--- a/test/tint/builtins/gen/var/cosh/e0c1de.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/cosh/e0c1de.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,43 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  float4 prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation float4 VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+float4 cosh_e0c1de() {
+  float4 arg_0 = (0.0f).xxxx;
+  float4 res = cosh(arg_0);
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store4(0u, asuint(cosh_e0c1de()));
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store4(0u, asuint(cosh_e0c1de()));
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = cosh_e0c1de();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
diff --git a/test/tint/builtins/gen/var/cosh/e0c1de.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/cosh/e0c1de.wgsl.expected.ir.fxc.hlsl
index 0ba40c6..923d852 100644
--- a/test/tint/builtins/gen/var/cosh/e0c1de.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/cosh/e0c1de.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,43 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  float4 prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation float4 VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+float4 cosh_e0c1de() {
+  float4 arg_0 = (0.0f).xxxx;
+  float4 res = cosh(arg_0);
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store4(0u, asuint(cosh_e0c1de()));
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store4(0u, asuint(cosh_e0c1de()));
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = cosh_e0c1de();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
diff --git a/test/tint/builtins/gen/var/cosh/f67ff1.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/cosh/f67ff1.wgsl.expected.ir.dxc.hlsl
index 0ba40c6..9f6e9c1 100644
--- a/test/tint/builtins/gen/var/cosh/f67ff1.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/cosh/f67ff1.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,36 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+void cosh_f67ff1() {
+  float3 res = (1.0f).xxx;
+}
+
+void fragment_main() {
+  cosh_f67ff1();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  cosh_f67ff1();
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  cosh_f67ff1();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  vertex_main_outputs v_2 = {v_1.pos};
+  return v_2;
+}
+
diff --git a/test/tint/builtins/gen/var/cosh/f67ff1.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/cosh/f67ff1.wgsl.expected.ir.fxc.hlsl
index 0ba40c6..9f6e9c1 100644
--- a/test/tint/builtins/gen/var/cosh/f67ff1.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/cosh/f67ff1.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,36 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+void cosh_f67ff1() {
+  float3 res = (1.0f).xxx;
+}
+
+void fragment_main() {
+  cosh_f67ff1();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  cosh_f67ff1();
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  cosh_f67ff1();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  vertex_main_outputs v_2 = {v_1.pos};
+  return v_2;
+}
+
diff --git a/test/tint/builtins/gen/var/countLeadingZeros/208d46.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/countLeadingZeros/208d46.wgsl.expected.ir.dxc.hlsl
index f58c115..5cd95f6 100644
--- a/test/tint/builtins/gen/var/countLeadingZeros/208d46.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/countLeadingZeros/208d46.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,50 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  uint prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: countLeadingZeros
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation uint VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+uint countLeadingZeros_208d46() {
+  uint arg_0 = 1u;
+  uint v = arg_0;
+  uint v_1 = (((v <= 65535u)) ? (16u) : (0u));
+  uint v_2 = ((((v << v_1) <= 16777215u)) ? (8u) : (0u));
+  uint v_3 = (((((v << v_1) << v_2) <= 268435455u)) ? (4u) : (0u));
+  uint v_4 = ((((((v << v_1) << v_2) << v_3) <= 1073741823u)) ? (2u) : (0u));
+  uint v_5 = (((((((v << v_1) << v_2) << v_3) << v_4) <= 2147483647u)) ? (1u) : (0u));
+  uint v_6 = (((((((v << v_1) << v_2) << v_3) << v_4) == 0u)) ? (1u) : (0u));
+  uint res = ((v_1 | (v_2 | (v_3 | (v_4 | (v_5 | v_6))))) + v_6);
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store(0u, countLeadingZeros_208d46());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store(0u, countLeadingZeros_208d46());
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = countLeadingZeros_208d46();
+  VertexOutput v_7 = tint_symbol;
+  return v_7;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_8 = vertex_main_inner();
+  VertexOutput v_9 = v_8;
+  VertexOutput v_10 = v_8;
+  vertex_main_outputs v_11 = {v_10.prevent_dce, v_9.pos};
+  return v_11;
+}
+
diff --git a/test/tint/builtins/gen/var/countLeadingZeros/208d46.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/countLeadingZeros/208d46.wgsl.expected.ir.fxc.hlsl
index f58c115..5cd95f6 100644
--- a/test/tint/builtins/gen/var/countLeadingZeros/208d46.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/countLeadingZeros/208d46.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,50 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  uint prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: countLeadingZeros
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation uint VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+uint countLeadingZeros_208d46() {
+  uint arg_0 = 1u;
+  uint v = arg_0;
+  uint v_1 = (((v <= 65535u)) ? (16u) : (0u));
+  uint v_2 = ((((v << v_1) <= 16777215u)) ? (8u) : (0u));
+  uint v_3 = (((((v << v_1) << v_2) <= 268435455u)) ? (4u) : (0u));
+  uint v_4 = ((((((v << v_1) << v_2) << v_3) <= 1073741823u)) ? (2u) : (0u));
+  uint v_5 = (((((((v << v_1) << v_2) << v_3) << v_4) <= 2147483647u)) ? (1u) : (0u));
+  uint v_6 = (((((((v << v_1) << v_2) << v_3) << v_4) == 0u)) ? (1u) : (0u));
+  uint res = ((v_1 | (v_2 | (v_3 | (v_4 | (v_5 | v_6))))) + v_6);
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store(0u, countLeadingZeros_208d46());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store(0u, countLeadingZeros_208d46());
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = countLeadingZeros_208d46();
+  VertexOutput v_7 = tint_symbol;
+  return v_7;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_8 = vertex_main_inner();
+  VertexOutput v_9 = v_8;
+  VertexOutput v_10 = v_8;
+  vertex_main_outputs v_11 = {v_10.prevent_dce, v_9.pos};
+  return v_11;
+}
+
diff --git a/test/tint/builtins/gen/var/countLeadingZeros/6d4656.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/countLeadingZeros/6d4656.wgsl.expected.ir.dxc.hlsl
index f58c115..5225bb5 100644
--- a/test/tint/builtins/gen/var/countLeadingZeros/6d4656.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/countLeadingZeros/6d4656.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,50 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  int prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: countLeadingZeros
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation int VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+int countLeadingZeros_6d4656() {
+  int arg_0 = 1;
+  uint v = asuint(arg_0);
+  uint v_1 = (((v <= 65535u)) ? (16u) : (0u));
+  uint v_2 = ((((v << v_1) <= 16777215u)) ? (8u) : (0u));
+  uint v_3 = (((((v << v_1) << v_2) <= 268435455u)) ? (4u) : (0u));
+  uint v_4 = ((((((v << v_1) << v_2) << v_3) <= 1073741823u)) ? (2u) : (0u));
+  uint v_5 = (((((((v << v_1) << v_2) << v_3) << v_4) <= 2147483647u)) ? (1u) : (0u));
+  uint v_6 = (((((((v << v_1) << v_2) << v_3) << v_4) == 0u)) ? (1u) : (0u));
+  int res = asint(((v_1 | (v_2 | (v_3 | (v_4 | (v_5 | v_6))))) + v_6));
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store(0u, asuint(countLeadingZeros_6d4656()));
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store(0u, asuint(countLeadingZeros_6d4656()));
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = countLeadingZeros_6d4656();
+  VertexOutput v_7 = tint_symbol;
+  return v_7;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_8 = vertex_main_inner();
+  VertexOutput v_9 = v_8;
+  VertexOutput v_10 = v_8;
+  vertex_main_outputs v_11 = {v_10.prevent_dce, v_9.pos};
+  return v_11;
+}
+
diff --git a/test/tint/builtins/gen/var/countLeadingZeros/6d4656.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/countLeadingZeros/6d4656.wgsl.expected.ir.fxc.hlsl
index f58c115..5225bb5 100644
--- a/test/tint/builtins/gen/var/countLeadingZeros/6d4656.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/countLeadingZeros/6d4656.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,50 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  int prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: countLeadingZeros
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation int VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+int countLeadingZeros_6d4656() {
+  int arg_0 = 1;
+  uint v = asuint(arg_0);
+  uint v_1 = (((v <= 65535u)) ? (16u) : (0u));
+  uint v_2 = ((((v << v_1) <= 16777215u)) ? (8u) : (0u));
+  uint v_3 = (((((v << v_1) << v_2) <= 268435455u)) ? (4u) : (0u));
+  uint v_4 = ((((((v << v_1) << v_2) << v_3) <= 1073741823u)) ? (2u) : (0u));
+  uint v_5 = (((((((v << v_1) << v_2) << v_3) << v_4) <= 2147483647u)) ? (1u) : (0u));
+  uint v_6 = (((((((v << v_1) << v_2) << v_3) << v_4) == 0u)) ? (1u) : (0u));
+  int res = asint(((v_1 | (v_2 | (v_3 | (v_4 | (v_5 | v_6))))) + v_6));
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store(0u, asuint(countLeadingZeros_6d4656()));
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store(0u, asuint(countLeadingZeros_6d4656()));
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = countLeadingZeros_6d4656();
+  VertexOutput v_7 = tint_symbol;
+  return v_7;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_8 = vertex_main_inner();
+  VertexOutput v_9 = v_8;
+  VertexOutput v_10 = v_8;
+  vertex_main_outputs v_11 = {v_10.prevent_dce, v_9.pos};
+  return v_11;
+}
+
diff --git a/test/tint/builtins/gen/var/countLeadingZeros/70783f.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/countLeadingZeros/70783f.wgsl.expected.ir.dxc.hlsl
index f58c115..3451657 100644
--- a/test/tint/builtins/gen/var/countLeadingZeros/70783f.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/countLeadingZeros/70783f.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,50 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  uint2 prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: countLeadingZeros
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation uint2 VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+uint2 countLeadingZeros_70783f() {
+  uint2 arg_0 = (1u).xx;
+  uint2 v = arg_0;
+  uint2 v_1 = (((v <= (65535u).xx)) ? ((16u).xx) : ((0u).xx));
+  uint2 v_2 = ((((v << v_1) <= (16777215u).xx)) ? ((8u).xx) : ((0u).xx));
+  uint2 v_3 = (((((v << v_1) << v_2) <= (268435455u).xx)) ? ((4u).xx) : ((0u).xx));
+  uint2 v_4 = ((((((v << v_1) << v_2) << v_3) <= (1073741823u).xx)) ? ((2u).xx) : ((0u).xx));
+  uint2 v_5 = (((((((v << v_1) << v_2) << v_3) << v_4) <= (2147483647u).xx)) ? ((1u).xx) : ((0u).xx));
+  uint2 v_6 = (((((((v << v_1) << v_2) << v_3) << v_4) == (0u).xx)) ? ((1u).xx) : ((0u).xx));
+  uint2 res = ((v_1 | (v_2 | (v_3 | (v_4 | (v_5 | v_6))))) + v_6);
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store2(0u, countLeadingZeros_70783f());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store2(0u, countLeadingZeros_70783f());
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = countLeadingZeros_70783f();
+  VertexOutput v_7 = tint_symbol;
+  return v_7;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_8 = vertex_main_inner();
+  VertexOutput v_9 = v_8;
+  VertexOutput v_10 = v_8;
+  vertex_main_outputs v_11 = {v_10.prevent_dce, v_9.pos};
+  return v_11;
+}
+
diff --git a/test/tint/builtins/gen/var/countLeadingZeros/70783f.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/countLeadingZeros/70783f.wgsl.expected.ir.fxc.hlsl
index f58c115..3451657 100644
--- a/test/tint/builtins/gen/var/countLeadingZeros/70783f.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/countLeadingZeros/70783f.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,50 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  uint2 prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: countLeadingZeros
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation uint2 VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+uint2 countLeadingZeros_70783f() {
+  uint2 arg_0 = (1u).xx;
+  uint2 v = arg_0;
+  uint2 v_1 = (((v <= (65535u).xx)) ? ((16u).xx) : ((0u).xx));
+  uint2 v_2 = ((((v << v_1) <= (16777215u).xx)) ? ((8u).xx) : ((0u).xx));
+  uint2 v_3 = (((((v << v_1) << v_2) <= (268435455u).xx)) ? ((4u).xx) : ((0u).xx));
+  uint2 v_4 = ((((((v << v_1) << v_2) << v_3) <= (1073741823u).xx)) ? ((2u).xx) : ((0u).xx));
+  uint2 v_5 = (((((((v << v_1) << v_2) << v_3) << v_4) <= (2147483647u).xx)) ? ((1u).xx) : ((0u).xx));
+  uint2 v_6 = (((((((v << v_1) << v_2) << v_3) << v_4) == (0u).xx)) ? ((1u).xx) : ((0u).xx));
+  uint2 res = ((v_1 | (v_2 | (v_3 | (v_4 | (v_5 | v_6))))) + v_6);
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store2(0u, countLeadingZeros_70783f());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store2(0u, countLeadingZeros_70783f());
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = countLeadingZeros_70783f();
+  VertexOutput v_7 = tint_symbol;
+  return v_7;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_8 = vertex_main_inner();
+  VertexOutput v_9 = v_8;
+  VertexOutput v_10 = v_8;
+  vertex_main_outputs v_11 = {v_10.prevent_dce, v_9.pos};
+  return v_11;
+}
+
diff --git a/test/tint/builtins/gen/var/countLeadingZeros/7c38a6.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/countLeadingZeros/7c38a6.wgsl.expected.ir.dxc.hlsl
index f58c115..8be1414 100644
--- a/test/tint/builtins/gen/var/countLeadingZeros/7c38a6.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/countLeadingZeros/7c38a6.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,50 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  int3 prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: countLeadingZeros
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation int3 VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+int3 countLeadingZeros_7c38a6() {
+  int3 arg_0 = (1).xxx;
+  uint3 v = asuint(arg_0);
+  uint3 v_1 = (((v <= (65535u).xxx)) ? ((16u).xxx) : ((0u).xxx));
+  uint3 v_2 = ((((v << v_1) <= (16777215u).xxx)) ? ((8u).xxx) : ((0u).xxx));
+  uint3 v_3 = (((((v << v_1) << v_2) <= (268435455u).xxx)) ? ((4u).xxx) : ((0u).xxx));
+  uint3 v_4 = ((((((v << v_1) << v_2) << v_3) <= (1073741823u).xxx)) ? ((2u).xxx) : ((0u).xxx));
+  uint3 v_5 = (((((((v << v_1) << v_2) << v_3) << v_4) <= (2147483647u).xxx)) ? ((1u).xxx) : ((0u).xxx));
+  uint3 v_6 = (((((((v << v_1) << v_2) << v_3) << v_4) == (0u).xxx)) ? ((1u).xxx) : ((0u).xxx));
+  int3 res = asint(((v_1 | (v_2 | (v_3 | (v_4 | (v_5 | v_6))))) + v_6));
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store3(0u, asuint(countLeadingZeros_7c38a6()));
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store3(0u, asuint(countLeadingZeros_7c38a6()));
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = countLeadingZeros_7c38a6();
+  VertexOutput v_7 = tint_symbol;
+  return v_7;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_8 = vertex_main_inner();
+  VertexOutput v_9 = v_8;
+  VertexOutput v_10 = v_8;
+  vertex_main_outputs v_11 = {v_10.prevent_dce, v_9.pos};
+  return v_11;
+}
+
diff --git a/test/tint/builtins/gen/var/countLeadingZeros/7c38a6.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/countLeadingZeros/7c38a6.wgsl.expected.ir.fxc.hlsl
index f58c115..8be1414 100644
--- a/test/tint/builtins/gen/var/countLeadingZeros/7c38a6.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/countLeadingZeros/7c38a6.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,50 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  int3 prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: countLeadingZeros
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation int3 VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+int3 countLeadingZeros_7c38a6() {
+  int3 arg_0 = (1).xxx;
+  uint3 v = asuint(arg_0);
+  uint3 v_1 = (((v <= (65535u).xxx)) ? ((16u).xxx) : ((0u).xxx));
+  uint3 v_2 = ((((v << v_1) <= (16777215u).xxx)) ? ((8u).xxx) : ((0u).xxx));
+  uint3 v_3 = (((((v << v_1) << v_2) <= (268435455u).xxx)) ? ((4u).xxx) : ((0u).xxx));
+  uint3 v_4 = ((((((v << v_1) << v_2) << v_3) <= (1073741823u).xxx)) ? ((2u).xxx) : ((0u).xxx));
+  uint3 v_5 = (((((((v << v_1) << v_2) << v_3) << v_4) <= (2147483647u).xxx)) ? ((1u).xxx) : ((0u).xxx));
+  uint3 v_6 = (((((((v << v_1) << v_2) << v_3) << v_4) == (0u).xxx)) ? ((1u).xxx) : ((0u).xxx));
+  int3 res = asint(((v_1 | (v_2 | (v_3 | (v_4 | (v_5 | v_6))))) + v_6));
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store3(0u, asuint(countLeadingZeros_7c38a6()));
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store3(0u, asuint(countLeadingZeros_7c38a6()));
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = countLeadingZeros_7c38a6();
+  VertexOutput v_7 = tint_symbol;
+  return v_7;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_8 = vertex_main_inner();
+  VertexOutput v_9 = v_8;
+  VertexOutput v_10 = v_8;
+  vertex_main_outputs v_11 = {v_10.prevent_dce, v_9.pos};
+  return v_11;
+}
+
diff --git a/test/tint/builtins/gen/var/countLeadingZeros/858d40.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/countLeadingZeros/858d40.wgsl.expected.ir.dxc.hlsl
index f58c115..b2a8f87 100644
--- a/test/tint/builtins/gen/var/countLeadingZeros/858d40.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/countLeadingZeros/858d40.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,50 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  int2 prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: countLeadingZeros
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation int2 VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+int2 countLeadingZeros_858d40() {
+  int2 arg_0 = (1).xx;
+  uint2 v = asuint(arg_0);
+  uint2 v_1 = (((v <= (65535u).xx)) ? ((16u).xx) : ((0u).xx));
+  uint2 v_2 = ((((v << v_1) <= (16777215u).xx)) ? ((8u).xx) : ((0u).xx));
+  uint2 v_3 = (((((v << v_1) << v_2) <= (268435455u).xx)) ? ((4u).xx) : ((0u).xx));
+  uint2 v_4 = ((((((v << v_1) << v_2) << v_3) <= (1073741823u).xx)) ? ((2u).xx) : ((0u).xx));
+  uint2 v_5 = (((((((v << v_1) << v_2) << v_3) << v_4) <= (2147483647u).xx)) ? ((1u).xx) : ((0u).xx));
+  uint2 v_6 = (((((((v << v_1) << v_2) << v_3) << v_4) == (0u).xx)) ? ((1u).xx) : ((0u).xx));
+  int2 res = asint(((v_1 | (v_2 | (v_3 | (v_4 | (v_5 | v_6))))) + v_6));
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store2(0u, asuint(countLeadingZeros_858d40()));
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store2(0u, asuint(countLeadingZeros_858d40()));
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = countLeadingZeros_858d40();
+  VertexOutput v_7 = tint_symbol;
+  return v_7;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_8 = vertex_main_inner();
+  VertexOutput v_9 = v_8;
+  VertexOutput v_10 = v_8;
+  vertex_main_outputs v_11 = {v_10.prevent_dce, v_9.pos};
+  return v_11;
+}
+
diff --git a/test/tint/builtins/gen/var/countLeadingZeros/858d40.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/countLeadingZeros/858d40.wgsl.expected.ir.fxc.hlsl
index f58c115..b2a8f87 100644
--- a/test/tint/builtins/gen/var/countLeadingZeros/858d40.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/countLeadingZeros/858d40.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,50 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  int2 prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: countLeadingZeros
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation int2 VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+int2 countLeadingZeros_858d40() {
+  int2 arg_0 = (1).xx;
+  uint2 v = asuint(arg_0);
+  uint2 v_1 = (((v <= (65535u).xx)) ? ((16u).xx) : ((0u).xx));
+  uint2 v_2 = ((((v << v_1) <= (16777215u).xx)) ? ((8u).xx) : ((0u).xx));
+  uint2 v_3 = (((((v << v_1) << v_2) <= (268435455u).xx)) ? ((4u).xx) : ((0u).xx));
+  uint2 v_4 = ((((((v << v_1) << v_2) << v_3) <= (1073741823u).xx)) ? ((2u).xx) : ((0u).xx));
+  uint2 v_5 = (((((((v << v_1) << v_2) << v_3) << v_4) <= (2147483647u).xx)) ? ((1u).xx) : ((0u).xx));
+  uint2 v_6 = (((((((v << v_1) << v_2) << v_3) << v_4) == (0u).xx)) ? ((1u).xx) : ((0u).xx));
+  int2 res = asint(((v_1 | (v_2 | (v_3 | (v_4 | (v_5 | v_6))))) + v_6));
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store2(0u, asuint(countLeadingZeros_858d40()));
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store2(0u, asuint(countLeadingZeros_858d40()));
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = countLeadingZeros_858d40();
+  VertexOutput v_7 = tint_symbol;
+  return v_7;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_8 = vertex_main_inner();
+  VertexOutput v_9 = v_8;
+  VertexOutput v_10 = v_8;
+  vertex_main_outputs v_11 = {v_10.prevent_dce, v_9.pos};
+  return v_11;
+}
+
diff --git a/test/tint/builtins/gen/var/countLeadingZeros/ab6345.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/countLeadingZeros/ab6345.wgsl.expected.ir.dxc.hlsl
index f58c115..6deadf7 100644
--- a/test/tint/builtins/gen/var/countLeadingZeros/ab6345.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/countLeadingZeros/ab6345.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,50 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  uint3 prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: countLeadingZeros
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation uint3 VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+uint3 countLeadingZeros_ab6345() {
+  uint3 arg_0 = (1u).xxx;
+  uint3 v = arg_0;
+  uint3 v_1 = (((v <= (65535u).xxx)) ? ((16u).xxx) : ((0u).xxx));
+  uint3 v_2 = ((((v << v_1) <= (16777215u).xxx)) ? ((8u).xxx) : ((0u).xxx));
+  uint3 v_3 = (((((v << v_1) << v_2) <= (268435455u).xxx)) ? ((4u).xxx) : ((0u).xxx));
+  uint3 v_4 = ((((((v << v_1) << v_2) << v_3) <= (1073741823u).xxx)) ? ((2u).xxx) : ((0u).xxx));
+  uint3 v_5 = (((((((v << v_1) << v_2) << v_3) << v_4) <= (2147483647u).xxx)) ? ((1u).xxx) : ((0u).xxx));
+  uint3 v_6 = (((((((v << v_1) << v_2) << v_3) << v_4) == (0u).xxx)) ? ((1u).xxx) : ((0u).xxx));
+  uint3 res = ((v_1 | (v_2 | (v_3 | (v_4 | (v_5 | v_6))))) + v_6);
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store3(0u, countLeadingZeros_ab6345());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store3(0u, countLeadingZeros_ab6345());
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = countLeadingZeros_ab6345();
+  VertexOutput v_7 = tint_symbol;
+  return v_7;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_8 = vertex_main_inner();
+  VertexOutput v_9 = v_8;
+  VertexOutput v_10 = v_8;
+  vertex_main_outputs v_11 = {v_10.prevent_dce, v_9.pos};
+  return v_11;
+}
+
diff --git a/test/tint/builtins/gen/var/countLeadingZeros/ab6345.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/countLeadingZeros/ab6345.wgsl.expected.ir.fxc.hlsl
index f58c115..6deadf7 100644
--- a/test/tint/builtins/gen/var/countLeadingZeros/ab6345.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/countLeadingZeros/ab6345.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,50 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  uint3 prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: countLeadingZeros
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation uint3 VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+uint3 countLeadingZeros_ab6345() {
+  uint3 arg_0 = (1u).xxx;
+  uint3 v = arg_0;
+  uint3 v_1 = (((v <= (65535u).xxx)) ? ((16u).xxx) : ((0u).xxx));
+  uint3 v_2 = ((((v << v_1) <= (16777215u).xxx)) ? ((8u).xxx) : ((0u).xxx));
+  uint3 v_3 = (((((v << v_1) << v_2) <= (268435455u).xxx)) ? ((4u).xxx) : ((0u).xxx));
+  uint3 v_4 = ((((((v << v_1) << v_2) << v_3) <= (1073741823u).xxx)) ? ((2u).xxx) : ((0u).xxx));
+  uint3 v_5 = (((((((v << v_1) << v_2) << v_3) << v_4) <= (2147483647u).xxx)) ? ((1u).xxx) : ((0u).xxx));
+  uint3 v_6 = (((((((v << v_1) << v_2) << v_3) << v_4) == (0u).xxx)) ? ((1u).xxx) : ((0u).xxx));
+  uint3 res = ((v_1 | (v_2 | (v_3 | (v_4 | (v_5 | v_6))))) + v_6);
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store3(0u, countLeadingZeros_ab6345());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store3(0u, countLeadingZeros_ab6345());
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = countLeadingZeros_ab6345();
+  VertexOutput v_7 = tint_symbol;
+  return v_7;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_8 = vertex_main_inner();
+  VertexOutput v_9 = v_8;
+  VertexOutput v_10 = v_8;
+  vertex_main_outputs v_11 = {v_10.prevent_dce, v_9.pos};
+  return v_11;
+}
+
diff --git a/test/tint/builtins/gen/var/countLeadingZeros/eab32b.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/countLeadingZeros/eab32b.wgsl.expected.ir.dxc.hlsl
index f58c115..ff6a10f 100644
--- a/test/tint/builtins/gen/var/countLeadingZeros/eab32b.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/countLeadingZeros/eab32b.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,50 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  int4 prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: countLeadingZeros
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation int4 VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+int4 countLeadingZeros_eab32b() {
+  int4 arg_0 = (1).xxxx;
+  uint4 v = asuint(arg_0);
+  uint4 v_1 = (((v <= (65535u).xxxx)) ? ((16u).xxxx) : ((0u).xxxx));
+  uint4 v_2 = ((((v << v_1) <= (16777215u).xxxx)) ? ((8u).xxxx) : ((0u).xxxx));
+  uint4 v_3 = (((((v << v_1) << v_2) <= (268435455u).xxxx)) ? ((4u).xxxx) : ((0u).xxxx));
+  uint4 v_4 = ((((((v << v_1) << v_2) << v_3) <= (1073741823u).xxxx)) ? ((2u).xxxx) : ((0u).xxxx));
+  uint4 v_5 = (((((((v << v_1) << v_2) << v_3) << v_4) <= (2147483647u).xxxx)) ? ((1u).xxxx) : ((0u).xxxx));
+  uint4 v_6 = (((((((v << v_1) << v_2) << v_3) << v_4) == (0u).xxxx)) ? ((1u).xxxx) : ((0u).xxxx));
+  int4 res = asint(((v_1 | (v_2 | (v_3 | (v_4 | (v_5 | v_6))))) + v_6));
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store4(0u, asuint(countLeadingZeros_eab32b()));
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store4(0u, asuint(countLeadingZeros_eab32b()));
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = countLeadingZeros_eab32b();
+  VertexOutput v_7 = tint_symbol;
+  return v_7;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_8 = vertex_main_inner();
+  VertexOutput v_9 = v_8;
+  VertexOutput v_10 = v_8;
+  vertex_main_outputs v_11 = {v_10.prevent_dce, v_9.pos};
+  return v_11;
+}
+
diff --git a/test/tint/builtins/gen/var/countLeadingZeros/eab32b.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/countLeadingZeros/eab32b.wgsl.expected.ir.fxc.hlsl
index f58c115..ff6a10f 100644
--- a/test/tint/builtins/gen/var/countLeadingZeros/eab32b.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/countLeadingZeros/eab32b.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,50 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  int4 prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: countLeadingZeros
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation int4 VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+int4 countLeadingZeros_eab32b() {
+  int4 arg_0 = (1).xxxx;
+  uint4 v = asuint(arg_0);
+  uint4 v_1 = (((v <= (65535u).xxxx)) ? ((16u).xxxx) : ((0u).xxxx));
+  uint4 v_2 = ((((v << v_1) <= (16777215u).xxxx)) ? ((8u).xxxx) : ((0u).xxxx));
+  uint4 v_3 = (((((v << v_1) << v_2) <= (268435455u).xxxx)) ? ((4u).xxxx) : ((0u).xxxx));
+  uint4 v_4 = ((((((v << v_1) << v_2) << v_3) <= (1073741823u).xxxx)) ? ((2u).xxxx) : ((0u).xxxx));
+  uint4 v_5 = (((((((v << v_1) << v_2) << v_3) << v_4) <= (2147483647u).xxxx)) ? ((1u).xxxx) : ((0u).xxxx));
+  uint4 v_6 = (((((((v << v_1) << v_2) << v_3) << v_4) == (0u).xxxx)) ? ((1u).xxxx) : ((0u).xxxx));
+  int4 res = asint(((v_1 | (v_2 | (v_3 | (v_4 | (v_5 | v_6))))) + v_6));
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store4(0u, asuint(countLeadingZeros_eab32b()));
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store4(0u, asuint(countLeadingZeros_eab32b()));
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = countLeadingZeros_eab32b();
+  VertexOutput v_7 = tint_symbol;
+  return v_7;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_8 = vertex_main_inner();
+  VertexOutput v_9 = v_8;
+  VertexOutput v_10 = v_8;
+  vertex_main_outputs v_11 = {v_10.prevent_dce, v_9.pos};
+  return v_11;
+}
+
diff --git a/test/tint/builtins/gen/var/countLeadingZeros/f70103.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/countLeadingZeros/f70103.wgsl.expected.ir.dxc.hlsl
index f58c115..145e256 100644
--- a/test/tint/builtins/gen/var/countLeadingZeros/f70103.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/countLeadingZeros/f70103.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,50 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  uint4 prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: countLeadingZeros
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation uint4 VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+uint4 countLeadingZeros_f70103() {
+  uint4 arg_0 = (1u).xxxx;
+  uint4 v = arg_0;
+  uint4 v_1 = (((v <= (65535u).xxxx)) ? ((16u).xxxx) : ((0u).xxxx));
+  uint4 v_2 = ((((v << v_1) <= (16777215u).xxxx)) ? ((8u).xxxx) : ((0u).xxxx));
+  uint4 v_3 = (((((v << v_1) << v_2) <= (268435455u).xxxx)) ? ((4u).xxxx) : ((0u).xxxx));
+  uint4 v_4 = ((((((v << v_1) << v_2) << v_3) <= (1073741823u).xxxx)) ? ((2u).xxxx) : ((0u).xxxx));
+  uint4 v_5 = (((((((v << v_1) << v_2) << v_3) << v_4) <= (2147483647u).xxxx)) ? ((1u).xxxx) : ((0u).xxxx));
+  uint4 v_6 = (((((((v << v_1) << v_2) << v_3) << v_4) == (0u).xxxx)) ? ((1u).xxxx) : ((0u).xxxx));
+  uint4 res = ((v_1 | (v_2 | (v_3 | (v_4 | (v_5 | v_6))))) + v_6);
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store4(0u, countLeadingZeros_f70103());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store4(0u, countLeadingZeros_f70103());
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = countLeadingZeros_f70103();
+  VertexOutput v_7 = tint_symbol;
+  return v_7;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_8 = vertex_main_inner();
+  VertexOutput v_9 = v_8;
+  VertexOutput v_10 = v_8;
+  vertex_main_outputs v_11 = {v_10.prevent_dce, v_9.pos};
+  return v_11;
+}
+
diff --git a/test/tint/builtins/gen/var/countLeadingZeros/f70103.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/countLeadingZeros/f70103.wgsl.expected.ir.fxc.hlsl
index f58c115..145e256 100644
--- a/test/tint/builtins/gen/var/countLeadingZeros/f70103.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/countLeadingZeros/f70103.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,50 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  uint4 prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: countLeadingZeros
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation uint4 VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+uint4 countLeadingZeros_f70103() {
+  uint4 arg_0 = (1u).xxxx;
+  uint4 v = arg_0;
+  uint4 v_1 = (((v <= (65535u).xxxx)) ? ((16u).xxxx) : ((0u).xxxx));
+  uint4 v_2 = ((((v << v_1) <= (16777215u).xxxx)) ? ((8u).xxxx) : ((0u).xxxx));
+  uint4 v_3 = (((((v << v_1) << v_2) <= (268435455u).xxxx)) ? ((4u).xxxx) : ((0u).xxxx));
+  uint4 v_4 = ((((((v << v_1) << v_2) << v_3) <= (1073741823u).xxxx)) ? ((2u).xxxx) : ((0u).xxxx));
+  uint4 v_5 = (((((((v << v_1) << v_2) << v_3) << v_4) <= (2147483647u).xxxx)) ? ((1u).xxxx) : ((0u).xxxx));
+  uint4 v_6 = (((((((v << v_1) << v_2) << v_3) << v_4) == (0u).xxxx)) ? ((1u).xxxx) : ((0u).xxxx));
+  uint4 res = ((v_1 | (v_2 | (v_3 | (v_4 | (v_5 | v_6))))) + v_6);
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store4(0u, countLeadingZeros_f70103());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store4(0u, countLeadingZeros_f70103());
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = countLeadingZeros_f70103();
+  VertexOutput v_7 = tint_symbol;
+  return v_7;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_8 = vertex_main_inner();
+  VertexOutput v_9 = v_8;
+  VertexOutput v_10 = v_8;
+  vertex_main_outputs v_11 = {v_10.prevent_dce, v_9.pos};
+  return v_11;
+}
+
diff --git a/test/tint/builtins/gen/var/countOneBits/0d0e46.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/countOneBits/0d0e46.wgsl.expected.ir.dxc.hlsl
index 0ba40c6..75ecdcf 100644
--- a/test/tint/builtins/gen/var/countOneBits/0d0e46.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/countOneBits/0d0e46.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,43 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  uint4 prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation uint4 VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+uint4 countOneBits_0d0e46() {
+  uint4 arg_0 = (1u).xxxx;
+  uint4 res = countbits(arg_0);
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store4(0u, countOneBits_0d0e46());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store4(0u, countOneBits_0d0e46());
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = countOneBits_0d0e46();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
diff --git a/test/tint/builtins/gen/var/countOneBits/0d0e46.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/countOneBits/0d0e46.wgsl.expected.ir.fxc.hlsl
index 0ba40c6..75ecdcf 100644
--- a/test/tint/builtins/gen/var/countOneBits/0d0e46.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/countOneBits/0d0e46.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,43 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  uint4 prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation uint4 VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+uint4 countOneBits_0d0e46() {
+  uint4 arg_0 = (1u).xxxx;
+  uint4 res = countbits(arg_0);
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store4(0u, countOneBits_0d0e46());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store4(0u, countOneBits_0d0e46());
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = countOneBits_0d0e46();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
diff --git a/test/tint/builtins/gen/var/countOneBits/0f7980.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/countOneBits/0f7980.wgsl.expected.ir.dxc.hlsl
index 0ba40c6..16b0cd2 100644
--- a/test/tint/builtins/gen/var/countOneBits/0f7980.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/countOneBits/0f7980.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,43 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  int4 prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation int4 VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+int4 countOneBits_0f7980() {
+  int4 arg_0 = (1).xxxx;
+  int4 res = countbits(arg_0);
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store4(0u, asuint(countOneBits_0f7980()));
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store4(0u, asuint(countOneBits_0f7980()));
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = countOneBits_0f7980();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
diff --git a/test/tint/builtins/gen/var/countOneBits/0f7980.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/countOneBits/0f7980.wgsl.expected.ir.fxc.hlsl
index 0ba40c6..16b0cd2 100644
--- a/test/tint/builtins/gen/var/countOneBits/0f7980.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/countOneBits/0f7980.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,43 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  int4 prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation int4 VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+int4 countOneBits_0f7980() {
+  int4 arg_0 = (1).xxxx;
+  int4 res = countbits(arg_0);
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store4(0u, asuint(countOneBits_0f7980()));
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store4(0u, asuint(countOneBits_0f7980()));
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = countOneBits_0f7980();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
diff --git a/test/tint/builtins/gen/var/countOneBits/65d2ae.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/countOneBits/65d2ae.wgsl.expected.ir.dxc.hlsl
index 0ba40c6..559116d 100644
--- a/test/tint/builtins/gen/var/countOneBits/65d2ae.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/countOneBits/65d2ae.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,43 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  int3 prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation int3 VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+int3 countOneBits_65d2ae() {
+  int3 arg_0 = (1).xxx;
+  int3 res = countbits(arg_0);
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store3(0u, asuint(countOneBits_65d2ae()));
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store3(0u, asuint(countOneBits_65d2ae()));
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = countOneBits_65d2ae();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
diff --git a/test/tint/builtins/gen/var/countOneBits/65d2ae.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/countOneBits/65d2ae.wgsl.expected.ir.fxc.hlsl
index 0ba40c6..559116d 100644
--- a/test/tint/builtins/gen/var/countOneBits/65d2ae.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/countOneBits/65d2ae.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,43 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  int3 prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation int3 VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+int3 countOneBits_65d2ae() {
+  int3 arg_0 = (1).xxx;
+  int3 res = countbits(arg_0);
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store3(0u, asuint(countOneBits_65d2ae()));
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store3(0u, asuint(countOneBits_65d2ae()));
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = countOneBits_65d2ae();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
diff --git a/test/tint/builtins/gen/var/countOneBits/690cfc.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/countOneBits/690cfc.wgsl.expected.ir.dxc.hlsl
index 0ba40c6..6924c49 100644
--- a/test/tint/builtins/gen/var/countOneBits/690cfc.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/countOneBits/690cfc.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,43 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  uint3 prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation uint3 VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+uint3 countOneBits_690cfc() {
+  uint3 arg_0 = (1u).xxx;
+  uint3 res = countbits(arg_0);
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store3(0u, countOneBits_690cfc());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store3(0u, countOneBits_690cfc());
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = countOneBits_690cfc();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
diff --git a/test/tint/builtins/gen/var/countOneBits/690cfc.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/countOneBits/690cfc.wgsl.expected.ir.fxc.hlsl
index 0ba40c6..6924c49 100644
--- a/test/tint/builtins/gen/var/countOneBits/690cfc.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/countOneBits/690cfc.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,43 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  uint3 prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation uint3 VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+uint3 countOneBits_690cfc() {
+  uint3 arg_0 = (1u).xxx;
+  uint3 res = countbits(arg_0);
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store3(0u, countOneBits_690cfc());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store3(0u, countOneBits_690cfc());
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = countOneBits_690cfc();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
diff --git a/test/tint/builtins/gen/var/countOneBits/94fd81.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/countOneBits/94fd81.wgsl.expected.ir.dxc.hlsl
index 0ba40c6..bd0283b 100644
--- a/test/tint/builtins/gen/var/countOneBits/94fd81.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/countOneBits/94fd81.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,43 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  uint2 prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation uint2 VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+uint2 countOneBits_94fd81() {
+  uint2 arg_0 = (1u).xx;
+  uint2 res = countbits(arg_0);
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store2(0u, countOneBits_94fd81());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store2(0u, countOneBits_94fd81());
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = countOneBits_94fd81();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
diff --git a/test/tint/builtins/gen/var/countOneBits/94fd81.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/countOneBits/94fd81.wgsl.expected.ir.fxc.hlsl
index 0ba40c6..bd0283b 100644
--- a/test/tint/builtins/gen/var/countOneBits/94fd81.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/countOneBits/94fd81.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,43 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  uint2 prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation uint2 VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+uint2 countOneBits_94fd81() {
+  uint2 arg_0 = (1u).xx;
+  uint2 res = countbits(arg_0);
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store2(0u, countOneBits_94fd81());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store2(0u, countOneBits_94fd81());
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = countOneBits_94fd81();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
diff --git a/test/tint/builtins/gen/var/countOneBits/ae44f9.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/countOneBits/ae44f9.wgsl.expected.ir.dxc.hlsl
index 0ba40c6..c2154c1 100644
--- a/test/tint/builtins/gen/var/countOneBits/ae44f9.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/countOneBits/ae44f9.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,43 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  uint prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation uint VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+uint countOneBits_ae44f9() {
+  uint arg_0 = 1u;
+  uint res = countbits(arg_0);
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store(0u, countOneBits_ae44f9());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store(0u, countOneBits_ae44f9());
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = countOneBits_ae44f9();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
diff --git a/test/tint/builtins/gen/var/countOneBits/ae44f9.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/countOneBits/ae44f9.wgsl.expected.ir.fxc.hlsl
index 0ba40c6..c2154c1 100644
--- a/test/tint/builtins/gen/var/countOneBits/ae44f9.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/countOneBits/ae44f9.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,43 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  uint prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation uint VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+uint countOneBits_ae44f9() {
+  uint arg_0 = 1u;
+  uint res = countbits(arg_0);
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store(0u, countOneBits_ae44f9());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store(0u, countOneBits_ae44f9());
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = countOneBits_ae44f9();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
diff --git a/test/tint/builtins/gen/var/countOneBits/af90e2.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/countOneBits/af90e2.wgsl.expected.ir.dxc.hlsl
index 0ba40c6..8a9829f 100644
--- a/test/tint/builtins/gen/var/countOneBits/af90e2.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/countOneBits/af90e2.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,43 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  int2 prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation int2 VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+int2 countOneBits_af90e2() {
+  int2 arg_0 = (1).xx;
+  int2 res = countbits(arg_0);
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store2(0u, asuint(countOneBits_af90e2()));
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store2(0u, asuint(countOneBits_af90e2()));
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = countOneBits_af90e2();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
diff --git a/test/tint/builtins/gen/var/countOneBits/af90e2.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/countOneBits/af90e2.wgsl.expected.ir.fxc.hlsl
index 0ba40c6..8a9829f 100644
--- a/test/tint/builtins/gen/var/countOneBits/af90e2.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/countOneBits/af90e2.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,43 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  int2 prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation int2 VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+int2 countOneBits_af90e2() {
+  int2 arg_0 = (1).xx;
+  int2 res = countbits(arg_0);
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store2(0u, asuint(countOneBits_af90e2()));
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store2(0u, asuint(countOneBits_af90e2()));
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = countOneBits_af90e2();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
diff --git a/test/tint/builtins/gen/var/countOneBits/fd88b2.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/countOneBits/fd88b2.wgsl.expected.ir.dxc.hlsl
index 0ba40c6..430cf12 100644
--- a/test/tint/builtins/gen/var/countOneBits/fd88b2.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/countOneBits/fd88b2.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,43 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  int prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation int VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+int countOneBits_fd88b2() {
+  int arg_0 = 1;
+  int res = countbits(arg_0);
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store(0u, asuint(countOneBits_fd88b2()));
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store(0u, asuint(countOneBits_fd88b2()));
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = countOneBits_fd88b2();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
diff --git a/test/tint/builtins/gen/var/countOneBits/fd88b2.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/countOneBits/fd88b2.wgsl.expected.ir.fxc.hlsl
index 0ba40c6..430cf12 100644
--- a/test/tint/builtins/gen/var/countOneBits/fd88b2.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/countOneBits/fd88b2.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,43 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  int prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation int VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+int countOneBits_fd88b2() {
+  int arg_0 = 1;
+  int res = countbits(arg_0);
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store(0u, asuint(countOneBits_fd88b2()));
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store(0u, asuint(countOneBits_fd88b2()));
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = countOneBits_fd88b2();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
diff --git a/test/tint/builtins/gen/var/countTrailingZeros/1ad138.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/countTrailingZeros/1ad138.wgsl.expected.ir.dxc.hlsl
index 09fea77..8252a29 100644
--- a/test/tint/builtins/gen/var/countTrailingZeros/1ad138.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/countTrailingZeros/1ad138.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,49 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  uint2 prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: countTrailingZeros
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation uint2 VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+uint2 countTrailingZeros_1ad138() {
+  uint2 arg_0 = (1u).xx;
+  uint2 v = arg_0;
+  uint2 v_1 = ((((v & (65535u).xx) == (0u).xx)) ? ((16u).xx) : ((0u).xx));
+  uint2 v_2 = (((((v >> v_1) & (255u).xx) == (0u).xx)) ? ((8u).xx) : ((0u).xx));
+  uint2 v_3 = ((((((v >> v_1) >> v_2) & (15u).xx) == (0u).xx)) ? ((4u).xx) : ((0u).xx));
+  uint2 v_4 = (((((((v >> v_1) >> v_2) >> v_3) & (3u).xx) == (0u).xx)) ? ((2u).xx) : ((0u).xx));
+  uint2 v_5 = ((((((((v >> v_1) >> v_2) >> v_3) >> v_4) & (1u).xx) == (0u).xx)) ? ((1u).xx) : ((0u).xx));
+  uint2 res = ((v_1 | (v_2 | (v_3 | (v_4 | v_5)))) + (((((((v >> v_1) >> v_2) >> v_3) >> v_4) == (0u).xx)) ? ((1u).xx) : ((0u).xx)));
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store2(0u, countTrailingZeros_1ad138());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store2(0u, countTrailingZeros_1ad138());
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = countTrailingZeros_1ad138();
+  VertexOutput v_6 = tint_symbol;
+  return v_6;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_7 = vertex_main_inner();
+  VertexOutput v_8 = v_7;
+  VertexOutput v_9 = v_7;
+  vertex_main_outputs v_10 = {v_9.prevent_dce, v_8.pos};
+  return v_10;
+}
+
diff --git a/test/tint/builtins/gen/var/countTrailingZeros/1ad138.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/countTrailingZeros/1ad138.wgsl.expected.ir.fxc.hlsl
index 09fea77..8252a29 100644
--- a/test/tint/builtins/gen/var/countTrailingZeros/1ad138.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/countTrailingZeros/1ad138.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,49 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  uint2 prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: countTrailingZeros
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation uint2 VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+uint2 countTrailingZeros_1ad138() {
+  uint2 arg_0 = (1u).xx;
+  uint2 v = arg_0;
+  uint2 v_1 = ((((v & (65535u).xx) == (0u).xx)) ? ((16u).xx) : ((0u).xx));
+  uint2 v_2 = (((((v >> v_1) & (255u).xx) == (0u).xx)) ? ((8u).xx) : ((0u).xx));
+  uint2 v_3 = ((((((v >> v_1) >> v_2) & (15u).xx) == (0u).xx)) ? ((4u).xx) : ((0u).xx));
+  uint2 v_4 = (((((((v >> v_1) >> v_2) >> v_3) & (3u).xx) == (0u).xx)) ? ((2u).xx) : ((0u).xx));
+  uint2 v_5 = ((((((((v >> v_1) >> v_2) >> v_3) >> v_4) & (1u).xx) == (0u).xx)) ? ((1u).xx) : ((0u).xx));
+  uint2 res = ((v_1 | (v_2 | (v_3 | (v_4 | v_5)))) + (((((((v >> v_1) >> v_2) >> v_3) >> v_4) == (0u).xx)) ? ((1u).xx) : ((0u).xx)));
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store2(0u, countTrailingZeros_1ad138());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store2(0u, countTrailingZeros_1ad138());
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = countTrailingZeros_1ad138();
+  VertexOutput v_6 = tint_symbol;
+  return v_6;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_7 = vertex_main_inner();
+  VertexOutput v_8 = v_7;
+  VertexOutput v_9 = v_7;
+  vertex_main_outputs v_10 = {v_9.prevent_dce, v_8.pos};
+  return v_10;
+}
+
diff --git a/test/tint/builtins/gen/var/countTrailingZeros/1dc84a.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/countTrailingZeros/1dc84a.wgsl.expected.ir.dxc.hlsl
index 09fea77..23cd72c 100644
--- a/test/tint/builtins/gen/var/countTrailingZeros/1dc84a.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/countTrailingZeros/1dc84a.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,49 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  int4 prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: countTrailingZeros
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation int4 VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+int4 countTrailingZeros_1dc84a() {
+  int4 arg_0 = (1).xxxx;
+  uint4 v = asuint(arg_0);
+  uint4 v_1 = ((((v & (65535u).xxxx) == (0u).xxxx)) ? ((16u).xxxx) : ((0u).xxxx));
+  uint4 v_2 = (((((v >> v_1) & (255u).xxxx) == (0u).xxxx)) ? ((8u).xxxx) : ((0u).xxxx));
+  uint4 v_3 = ((((((v >> v_1) >> v_2) & (15u).xxxx) == (0u).xxxx)) ? ((4u).xxxx) : ((0u).xxxx));
+  uint4 v_4 = (((((((v >> v_1) >> v_2) >> v_3) & (3u).xxxx) == (0u).xxxx)) ? ((2u).xxxx) : ((0u).xxxx));
+  uint4 v_5 = ((((((((v >> v_1) >> v_2) >> v_3) >> v_4) & (1u).xxxx) == (0u).xxxx)) ? ((1u).xxxx) : ((0u).xxxx));
+  int4 res = asint(((v_1 | (v_2 | (v_3 | (v_4 | v_5)))) + (((((((v >> v_1) >> v_2) >> v_3) >> v_4) == (0u).xxxx)) ? ((1u).xxxx) : ((0u).xxxx))));
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store4(0u, asuint(countTrailingZeros_1dc84a()));
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store4(0u, asuint(countTrailingZeros_1dc84a()));
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = countTrailingZeros_1dc84a();
+  VertexOutput v_6 = tint_symbol;
+  return v_6;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_7 = vertex_main_inner();
+  VertexOutput v_8 = v_7;
+  VertexOutput v_9 = v_7;
+  vertex_main_outputs v_10 = {v_9.prevent_dce, v_8.pos};
+  return v_10;
+}
+
diff --git a/test/tint/builtins/gen/var/countTrailingZeros/1dc84a.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/countTrailingZeros/1dc84a.wgsl.expected.ir.fxc.hlsl
index 09fea77..23cd72c 100644
--- a/test/tint/builtins/gen/var/countTrailingZeros/1dc84a.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/countTrailingZeros/1dc84a.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,49 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  int4 prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: countTrailingZeros
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation int4 VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+int4 countTrailingZeros_1dc84a() {
+  int4 arg_0 = (1).xxxx;
+  uint4 v = asuint(arg_0);
+  uint4 v_1 = ((((v & (65535u).xxxx) == (0u).xxxx)) ? ((16u).xxxx) : ((0u).xxxx));
+  uint4 v_2 = (((((v >> v_1) & (255u).xxxx) == (0u).xxxx)) ? ((8u).xxxx) : ((0u).xxxx));
+  uint4 v_3 = ((((((v >> v_1) >> v_2) & (15u).xxxx) == (0u).xxxx)) ? ((4u).xxxx) : ((0u).xxxx));
+  uint4 v_4 = (((((((v >> v_1) >> v_2) >> v_3) & (3u).xxxx) == (0u).xxxx)) ? ((2u).xxxx) : ((0u).xxxx));
+  uint4 v_5 = ((((((((v >> v_1) >> v_2) >> v_3) >> v_4) & (1u).xxxx) == (0u).xxxx)) ? ((1u).xxxx) : ((0u).xxxx));
+  int4 res = asint(((v_1 | (v_2 | (v_3 | (v_4 | v_5)))) + (((((((v >> v_1) >> v_2) >> v_3) >> v_4) == (0u).xxxx)) ? ((1u).xxxx) : ((0u).xxxx))));
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store4(0u, asuint(countTrailingZeros_1dc84a()));
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store4(0u, asuint(countTrailingZeros_1dc84a()));
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = countTrailingZeros_1dc84a();
+  VertexOutput v_6 = tint_symbol;
+  return v_6;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_7 = vertex_main_inner();
+  VertexOutput v_8 = v_7;
+  VertexOutput v_9 = v_7;
+  vertex_main_outputs v_10 = {v_9.prevent_dce, v_8.pos};
+  return v_10;
+}
+
diff --git a/test/tint/builtins/gen/var/countTrailingZeros/21e394.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/countTrailingZeros/21e394.wgsl.expected.ir.dxc.hlsl
index 09fea77..49ebfc8 100644
--- a/test/tint/builtins/gen/var/countTrailingZeros/21e394.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/countTrailingZeros/21e394.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,49 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  uint prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: countTrailingZeros
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation uint VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+uint countTrailingZeros_21e394() {
+  uint arg_0 = 1u;
+  uint v = arg_0;
+  uint v_1 = ((((v & 65535u) == 0u)) ? (16u) : (0u));
+  uint v_2 = (((((v >> v_1) & 255u) == 0u)) ? (8u) : (0u));
+  uint v_3 = ((((((v >> v_1) >> v_2) & 15u) == 0u)) ? (4u) : (0u));
+  uint v_4 = (((((((v >> v_1) >> v_2) >> v_3) & 3u) == 0u)) ? (2u) : (0u));
+  uint v_5 = ((((((((v >> v_1) >> v_2) >> v_3) >> v_4) & 1u) == 0u)) ? (1u) : (0u));
+  uint res = ((v_1 | (v_2 | (v_3 | (v_4 | v_5)))) + (((((((v >> v_1) >> v_2) >> v_3) >> v_4) == 0u)) ? (1u) : (0u)));
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store(0u, countTrailingZeros_21e394());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store(0u, countTrailingZeros_21e394());
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = countTrailingZeros_21e394();
+  VertexOutput v_6 = tint_symbol;
+  return v_6;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_7 = vertex_main_inner();
+  VertexOutput v_8 = v_7;
+  VertexOutput v_9 = v_7;
+  vertex_main_outputs v_10 = {v_9.prevent_dce, v_8.pos};
+  return v_10;
+}
+
diff --git a/test/tint/builtins/gen/var/countTrailingZeros/21e394.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/countTrailingZeros/21e394.wgsl.expected.ir.fxc.hlsl
index 09fea77..49ebfc8 100644
--- a/test/tint/builtins/gen/var/countTrailingZeros/21e394.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/countTrailingZeros/21e394.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,49 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  uint prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: countTrailingZeros
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation uint VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+uint countTrailingZeros_21e394() {
+  uint arg_0 = 1u;
+  uint v = arg_0;
+  uint v_1 = ((((v & 65535u) == 0u)) ? (16u) : (0u));
+  uint v_2 = (((((v >> v_1) & 255u) == 0u)) ? (8u) : (0u));
+  uint v_3 = ((((((v >> v_1) >> v_2) & 15u) == 0u)) ? (4u) : (0u));
+  uint v_4 = (((((((v >> v_1) >> v_2) >> v_3) & 3u) == 0u)) ? (2u) : (0u));
+  uint v_5 = ((((((((v >> v_1) >> v_2) >> v_3) >> v_4) & 1u) == 0u)) ? (1u) : (0u));
+  uint res = ((v_1 | (v_2 | (v_3 | (v_4 | v_5)))) + (((((((v >> v_1) >> v_2) >> v_3) >> v_4) == 0u)) ? (1u) : (0u)));
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store(0u, countTrailingZeros_21e394());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store(0u, countTrailingZeros_21e394());
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = countTrailingZeros_21e394();
+  VertexOutput v_6 = tint_symbol;
+  return v_6;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_7 = vertex_main_inner();
+  VertexOutput v_8 = v_7;
+  VertexOutput v_9 = v_7;
+  vertex_main_outputs v_10 = {v_9.prevent_dce, v_8.pos};
+  return v_10;
+}
+
diff --git a/test/tint/builtins/gen/var/countTrailingZeros/327c37.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/countTrailingZeros/327c37.wgsl.expected.ir.dxc.hlsl
index 09fea77..4e5fe3c 100644
--- a/test/tint/builtins/gen/var/countTrailingZeros/327c37.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/countTrailingZeros/327c37.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,49 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  int2 prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: countTrailingZeros
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation int2 VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+int2 countTrailingZeros_327c37() {
+  int2 arg_0 = (1).xx;
+  uint2 v = asuint(arg_0);
+  uint2 v_1 = ((((v & (65535u).xx) == (0u).xx)) ? ((16u).xx) : ((0u).xx));
+  uint2 v_2 = (((((v >> v_1) & (255u).xx) == (0u).xx)) ? ((8u).xx) : ((0u).xx));
+  uint2 v_3 = ((((((v >> v_1) >> v_2) & (15u).xx) == (0u).xx)) ? ((4u).xx) : ((0u).xx));
+  uint2 v_4 = (((((((v >> v_1) >> v_2) >> v_3) & (3u).xx) == (0u).xx)) ? ((2u).xx) : ((0u).xx));
+  uint2 v_5 = ((((((((v >> v_1) >> v_2) >> v_3) >> v_4) & (1u).xx) == (0u).xx)) ? ((1u).xx) : ((0u).xx));
+  int2 res = asint(((v_1 | (v_2 | (v_3 | (v_4 | v_5)))) + (((((((v >> v_1) >> v_2) >> v_3) >> v_4) == (0u).xx)) ? ((1u).xx) : ((0u).xx))));
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store2(0u, asuint(countTrailingZeros_327c37()));
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store2(0u, asuint(countTrailingZeros_327c37()));
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = countTrailingZeros_327c37();
+  VertexOutput v_6 = tint_symbol;
+  return v_6;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_7 = vertex_main_inner();
+  VertexOutput v_8 = v_7;
+  VertexOutput v_9 = v_7;
+  vertex_main_outputs v_10 = {v_9.prevent_dce, v_8.pos};
+  return v_10;
+}
+
diff --git a/test/tint/builtins/gen/var/countTrailingZeros/327c37.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/countTrailingZeros/327c37.wgsl.expected.ir.fxc.hlsl
index 09fea77..4e5fe3c 100644
--- a/test/tint/builtins/gen/var/countTrailingZeros/327c37.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/countTrailingZeros/327c37.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,49 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  int2 prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: countTrailingZeros
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation int2 VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+int2 countTrailingZeros_327c37() {
+  int2 arg_0 = (1).xx;
+  uint2 v = asuint(arg_0);
+  uint2 v_1 = ((((v & (65535u).xx) == (0u).xx)) ? ((16u).xx) : ((0u).xx));
+  uint2 v_2 = (((((v >> v_1) & (255u).xx) == (0u).xx)) ? ((8u).xx) : ((0u).xx));
+  uint2 v_3 = ((((((v >> v_1) >> v_2) & (15u).xx) == (0u).xx)) ? ((4u).xx) : ((0u).xx));
+  uint2 v_4 = (((((((v >> v_1) >> v_2) >> v_3) & (3u).xx) == (0u).xx)) ? ((2u).xx) : ((0u).xx));
+  uint2 v_5 = ((((((((v >> v_1) >> v_2) >> v_3) >> v_4) & (1u).xx) == (0u).xx)) ? ((1u).xx) : ((0u).xx));
+  int2 res = asint(((v_1 | (v_2 | (v_3 | (v_4 | v_5)))) + (((((((v >> v_1) >> v_2) >> v_3) >> v_4) == (0u).xx)) ? ((1u).xx) : ((0u).xx))));
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store2(0u, asuint(countTrailingZeros_327c37()));
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store2(0u, asuint(countTrailingZeros_327c37()));
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = countTrailingZeros_327c37();
+  VertexOutput v_6 = tint_symbol;
+  return v_6;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_7 = vertex_main_inner();
+  VertexOutput v_8 = v_7;
+  VertexOutput v_9 = v_7;
+  vertex_main_outputs v_10 = {v_9.prevent_dce, v_8.pos};
+  return v_10;
+}
+
diff --git a/test/tint/builtins/gen/var/countTrailingZeros/42fed6.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/countTrailingZeros/42fed6.wgsl.expected.ir.dxc.hlsl
index 09fea77..2b2f62f 100644
--- a/test/tint/builtins/gen/var/countTrailingZeros/42fed6.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/countTrailingZeros/42fed6.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,49 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  int prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: countTrailingZeros
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation int VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+int countTrailingZeros_42fed6() {
+  int arg_0 = 1;
+  uint v = asuint(arg_0);
+  uint v_1 = ((((v & 65535u) == 0u)) ? (16u) : (0u));
+  uint v_2 = (((((v >> v_1) & 255u) == 0u)) ? (8u) : (0u));
+  uint v_3 = ((((((v >> v_1) >> v_2) & 15u) == 0u)) ? (4u) : (0u));
+  uint v_4 = (((((((v >> v_1) >> v_2) >> v_3) & 3u) == 0u)) ? (2u) : (0u));
+  uint v_5 = ((((((((v >> v_1) >> v_2) >> v_3) >> v_4) & 1u) == 0u)) ? (1u) : (0u));
+  int res = asint(((v_1 | (v_2 | (v_3 | (v_4 | v_5)))) + (((((((v >> v_1) >> v_2) >> v_3) >> v_4) == 0u)) ? (1u) : (0u))));
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store(0u, asuint(countTrailingZeros_42fed6()));
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store(0u, asuint(countTrailingZeros_42fed6()));
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = countTrailingZeros_42fed6();
+  VertexOutput v_6 = tint_symbol;
+  return v_6;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_7 = vertex_main_inner();
+  VertexOutput v_8 = v_7;
+  VertexOutput v_9 = v_7;
+  vertex_main_outputs v_10 = {v_9.prevent_dce, v_8.pos};
+  return v_10;
+}
+
diff --git a/test/tint/builtins/gen/var/countTrailingZeros/42fed6.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/countTrailingZeros/42fed6.wgsl.expected.ir.fxc.hlsl
index 09fea77..2b2f62f 100644
--- a/test/tint/builtins/gen/var/countTrailingZeros/42fed6.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/countTrailingZeros/42fed6.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,49 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  int prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: countTrailingZeros
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation int VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+int countTrailingZeros_42fed6() {
+  int arg_0 = 1;
+  uint v = asuint(arg_0);
+  uint v_1 = ((((v & 65535u) == 0u)) ? (16u) : (0u));
+  uint v_2 = (((((v >> v_1) & 255u) == 0u)) ? (8u) : (0u));
+  uint v_3 = ((((((v >> v_1) >> v_2) & 15u) == 0u)) ? (4u) : (0u));
+  uint v_4 = (((((((v >> v_1) >> v_2) >> v_3) & 3u) == 0u)) ? (2u) : (0u));
+  uint v_5 = ((((((((v >> v_1) >> v_2) >> v_3) >> v_4) & 1u) == 0u)) ? (1u) : (0u));
+  int res = asint(((v_1 | (v_2 | (v_3 | (v_4 | v_5)))) + (((((((v >> v_1) >> v_2) >> v_3) >> v_4) == 0u)) ? (1u) : (0u))));
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store(0u, asuint(countTrailingZeros_42fed6()));
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store(0u, asuint(countTrailingZeros_42fed6()));
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = countTrailingZeros_42fed6();
+  VertexOutput v_6 = tint_symbol;
+  return v_6;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_7 = vertex_main_inner();
+  VertexOutput v_8 = v_7;
+  VertexOutput v_9 = v_7;
+  vertex_main_outputs v_10 = {v_9.prevent_dce, v_8.pos};
+  return v_10;
+}
+
diff --git a/test/tint/builtins/gen/var/countTrailingZeros/8ed26f.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/countTrailingZeros/8ed26f.wgsl.expected.ir.dxc.hlsl
index 09fea77..26438fd 100644
--- a/test/tint/builtins/gen/var/countTrailingZeros/8ed26f.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/countTrailingZeros/8ed26f.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,49 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  uint3 prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: countTrailingZeros
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation uint3 VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+uint3 countTrailingZeros_8ed26f() {
+  uint3 arg_0 = (1u).xxx;
+  uint3 v = arg_0;
+  uint3 v_1 = ((((v & (65535u).xxx) == (0u).xxx)) ? ((16u).xxx) : ((0u).xxx));
+  uint3 v_2 = (((((v >> v_1) & (255u).xxx) == (0u).xxx)) ? ((8u).xxx) : ((0u).xxx));
+  uint3 v_3 = ((((((v >> v_1) >> v_2) & (15u).xxx) == (0u).xxx)) ? ((4u).xxx) : ((0u).xxx));
+  uint3 v_4 = (((((((v >> v_1) >> v_2) >> v_3) & (3u).xxx) == (0u).xxx)) ? ((2u).xxx) : ((0u).xxx));
+  uint3 v_5 = ((((((((v >> v_1) >> v_2) >> v_3) >> v_4) & (1u).xxx) == (0u).xxx)) ? ((1u).xxx) : ((0u).xxx));
+  uint3 res = ((v_1 | (v_2 | (v_3 | (v_4 | v_5)))) + (((((((v >> v_1) >> v_2) >> v_3) >> v_4) == (0u).xxx)) ? ((1u).xxx) : ((0u).xxx)));
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store3(0u, countTrailingZeros_8ed26f());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store3(0u, countTrailingZeros_8ed26f());
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = countTrailingZeros_8ed26f();
+  VertexOutput v_6 = tint_symbol;
+  return v_6;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_7 = vertex_main_inner();
+  VertexOutput v_8 = v_7;
+  VertexOutput v_9 = v_7;
+  vertex_main_outputs v_10 = {v_9.prevent_dce, v_8.pos};
+  return v_10;
+}
+
diff --git a/test/tint/builtins/gen/var/countTrailingZeros/8ed26f.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/countTrailingZeros/8ed26f.wgsl.expected.ir.fxc.hlsl
index 09fea77..26438fd 100644
--- a/test/tint/builtins/gen/var/countTrailingZeros/8ed26f.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/countTrailingZeros/8ed26f.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,49 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  uint3 prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: countTrailingZeros
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation uint3 VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+uint3 countTrailingZeros_8ed26f() {
+  uint3 arg_0 = (1u).xxx;
+  uint3 v = arg_0;
+  uint3 v_1 = ((((v & (65535u).xxx) == (0u).xxx)) ? ((16u).xxx) : ((0u).xxx));
+  uint3 v_2 = (((((v >> v_1) & (255u).xxx) == (0u).xxx)) ? ((8u).xxx) : ((0u).xxx));
+  uint3 v_3 = ((((((v >> v_1) >> v_2) & (15u).xxx) == (0u).xxx)) ? ((4u).xxx) : ((0u).xxx));
+  uint3 v_4 = (((((((v >> v_1) >> v_2) >> v_3) & (3u).xxx) == (0u).xxx)) ? ((2u).xxx) : ((0u).xxx));
+  uint3 v_5 = ((((((((v >> v_1) >> v_2) >> v_3) >> v_4) & (1u).xxx) == (0u).xxx)) ? ((1u).xxx) : ((0u).xxx));
+  uint3 res = ((v_1 | (v_2 | (v_3 | (v_4 | v_5)))) + (((((((v >> v_1) >> v_2) >> v_3) >> v_4) == (0u).xxx)) ? ((1u).xxx) : ((0u).xxx)));
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store3(0u, countTrailingZeros_8ed26f());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store3(0u, countTrailingZeros_8ed26f());
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = countTrailingZeros_8ed26f();
+  VertexOutput v_6 = tint_symbol;
+  return v_6;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_7 = vertex_main_inner();
+  VertexOutput v_8 = v_7;
+  VertexOutput v_9 = v_7;
+  vertex_main_outputs v_10 = {v_9.prevent_dce, v_8.pos};
+  return v_10;
+}
+
diff --git a/test/tint/builtins/gen/var/countTrailingZeros/acfacb.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/countTrailingZeros/acfacb.wgsl.expected.ir.dxc.hlsl
index 09fea77..897fc3c 100644
--- a/test/tint/builtins/gen/var/countTrailingZeros/acfacb.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/countTrailingZeros/acfacb.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,49 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  int3 prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: countTrailingZeros
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation int3 VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+int3 countTrailingZeros_acfacb() {
+  int3 arg_0 = (1).xxx;
+  uint3 v = asuint(arg_0);
+  uint3 v_1 = ((((v & (65535u).xxx) == (0u).xxx)) ? ((16u).xxx) : ((0u).xxx));
+  uint3 v_2 = (((((v >> v_1) & (255u).xxx) == (0u).xxx)) ? ((8u).xxx) : ((0u).xxx));
+  uint3 v_3 = ((((((v >> v_1) >> v_2) & (15u).xxx) == (0u).xxx)) ? ((4u).xxx) : ((0u).xxx));
+  uint3 v_4 = (((((((v >> v_1) >> v_2) >> v_3) & (3u).xxx) == (0u).xxx)) ? ((2u).xxx) : ((0u).xxx));
+  uint3 v_5 = ((((((((v >> v_1) >> v_2) >> v_3) >> v_4) & (1u).xxx) == (0u).xxx)) ? ((1u).xxx) : ((0u).xxx));
+  int3 res = asint(((v_1 | (v_2 | (v_3 | (v_4 | v_5)))) + (((((((v >> v_1) >> v_2) >> v_3) >> v_4) == (0u).xxx)) ? ((1u).xxx) : ((0u).xxx))));
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store3(0u, asuint(countTrailingZeros_acfacb()));
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store3(0u, asuint(countTrailingZeros_acfacb()));
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = countTrailingZeros_acfacb();
+  VertexOutput v_6 = tint_symbol;
+  return v_6;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_7 = vertex_main_inner();
+  VertexOutput v_8 = v_7;
+  VertexOutput v_9 = v_7;
+  vertex_main_outputs v_10 = {v_9.prevent_dce, v_8.pos};
+  return v_10;
+}
+
diff --git a/test/tint/builtins/gen/var/countTrailingZeros/acfacb.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/countTrailingZeros/acfacb.wgsl.expected.ir.fxc.hlsl
index 09fea77..897fc3c 100644
--- a/test/tint/builtins/gen/var/countTrailingZeros/acfacb.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/countTrailingZeros/acfacb.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,49 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  int3 prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: countTrailingZeros
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation int3 VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+int3 countTrailingZeros_acfacb() {
+  int3 arg_0 = (1).xxx;
+  uint3 v = asuint(arg_0);
+  uint3 v_1 = ((((v & (65535u).xxx) == (0u).xxx)) ? ((16u).xxx) : ((0u).xxx));
+  uint3 v_2 = (((((v >> v_1) & (255u).xxx) == (0u).xxx)) ? ((8u).xxx) : ((0u).xxx));
+  uint3 v_3 = ((((((v >> v_1) >> v_2) & (15u).xxx) == (0u).xxx)) ? ((4u).xxx) : ((0u).xxx));
+  uint3 v_4 = (((((((v >> v_1) >> v_2) >> v_3) & (3u).xxx) == (0u).xxx)) ? ((2u).xxx) : ((0u).xxx));
+  uint3 v_5 = ((((((((v >> v_1) >> v_2) >> v_3) >> v_4) & (1u).xxx) == (0u).xxx)) ? ((1u).xxx) : ((0u).xxx));
+  int3 res = asint(((v_1 | (v_2 | (v_3 | (v_4 | v_5)))) + (((((((v >> v_1) >> v_2) >> v_3) >> v_4) == (0u).xxx)) ? ((1u).xxx) : ((0u).xxx))));
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store3(0u, asuint(countTrailingZeros_acfacb()));
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store3(0u, asuint(countTrailingZeros_acfacb()));
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = countTrailingZeros_acfacb();
+  VertexOutput v_6 = tint_symbol;
+  return v_6;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_7 = vertex_main_inner();
+  VertexOutput v_8 = v_7;
+  VertexOutput v_9 = v_7;
+  vertex_main_outputs v_10 = {v_9.prevent_dce, v_8.pos};
+  return v_10;
+}
+
diff --git a/test/tint/builtins/gen/var/countTrailingZeros/d2b4a0.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/countTrailingZeros/d2b4a0.wgsl.expected.ir.dxc.hlsl
index 09fea77..673bd6b 100644
--- a/test/tint/builtins/gen/var/countTrailingZeros/d2b4a0.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/countTrailingZeros/d2b4a0.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,49 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  uint4 prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: countTrailingZeros
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation uint4 VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+uint4 countTrailingZeros_d2b4a0() {
+  uint4 arg_0 = (1u).xxxx;
+  uint4 v = arg_0;
+  uint4 v_1 = ((((v & (65535u).xxxx) == (0u).xxxx)) ? ((16u).xxxx) : ((0u).xxxx));
+  uint4 v_2 = (((((v >> v_1) & (255u).xxxx) == (0u).xxxx)) ? ((8u).xxxx) : ((0u).xxxx));
+  uint4 v_3 = ((((((v >> v_1) >> v_2) & (15u).xxxx) == (0u).xxxx)) ? ((4u).xxxx) : ((0u).xxxx));
+  uint4 v_4 = (((((((v >> v_1) >> v_2) >> v_3) & (3u).xxxx) == (0u).xxxx)) ? ((2u).xxxx) : ((0u).xxxx));
+  uint4 v_5 = ((((((((v >> v_1) >> v_2) >> v_3) >> v_4) & (1u).xxxx) == (0u).xxxx)) ? ((1u).xxxx) : ((0u).xxxx));
+  uint4 res = ((v_1 | (v_2 | (v_3 | (v_4 | v_5)))) + (((((((v >> v_1) >> v_2) >> v_3) >> v_4) == (0u).xxxx)) ? ((1u).xxxx) : ((0u).xxxx)));
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store4(0u, countTrailingZeros_d2b4a0());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store4(0u, countTrailingZeros_d2b4a0());
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = countTrailingZeros_d2b4a0();
+  VertexOutput v_6 = tint_symbol;
+  return v_6;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_7 = vertex_main_inner();
+  VertexOutput v_8 = v_7;
+  VertexOutput v_9 = v_7;
+  vertex_main_outputs v_10 = {v_9.prevent_dce, v_8.pos};
+  return v_10;
+}
+
diff --git a/test/tint/builtins/gen/var/countTrailingZeros/d2b4a0.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/countTrailingZeros/d2b4a0.wgsl.expected.ir.fxc.hlsl
index 09fea77..673bd6b 100644
--- a/test/tint/builtins/gen/var/countTrailingZeros/d2b4a0.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/countTrailingZeros/d2b4a0.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,49 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  uint4 prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: countTrailingZeros
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation uint4 VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+uint4 countTrailingZeros_d2b4a0() {
+  uint4 arg_0 = (1u).xxxx;
+  uint4 v = arg_0;
+  uint4 v_1 = ((((v & (65535u).xxxx) == (0u).xxxx)) ? ((16u).xxxx) : ((0u).xxxx));
+  uint4 v_2 = (((((v >> v_1) & (255u).xxxx) == (0u).xxxx)) ? ((8u).xxxx) : ((0u).xxxx));
+  uint4 v_3 = ((((((v >> v_1) >> v_2) & (15u).xxxx) == (0u).xxxx)) ? ((4u).xxxx) : ((0u).xxxx));
+  uint4 v_4 = (((((((v >> v_1) >> v_2) >> v_3) & (3u).xxxx) == (0u).xxxx)) ? ((2u).xxxx) : ((0u).xxxx));
+  uint4 v_5 = ((((((((v >> v_1) >> v_2) >> v_3) >> v_4) & (1u).xxxx) == (0u).xxxx)) ? ((1u).xxxx) : ((0u).xxxx));
+  uint4 res = ((v_1 | (v_2 | (v_3 | (v_4 | v_5)))) + (((((((v >> v_1) >> v_2) >> v_3) >> v_4) == (0u).xxxx)) ? ((1u).xxxx) : ((0u).xxxx)));
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store4(0u, countTrailingZeros_d2b4a0());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store4(0u, countTrailingZeros_d2b4a0());
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = countTrailingZeros_d2b4a0();
+  VertexOutput v_6 = tint_symbol;
+  return v_6;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_7 = vertex_main_inner();
+  VertexOutput v_8 = v_7;
+  VertexOutput v_9 = v_7;
+  vertex_main_outputs v_10 = {v_9.prevent_dce, v_8.pos};
+  return v_10;
+}
+
diff --git a/test/tint/builtins/gen/var/cross/041cb0.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/cross/041cb0.wgsl.expected.ir.dxc.hlsl
index 0ba40c6..a1a04c4 100644
--- a/test/tint/builtins/gen/var/cross/041cb0.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/cross/041cb0.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,44 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  float3 prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation float3 VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+float3 cross_041cb0() {
+  float3 arg_0 = (1.0f).xxx;
+  float3 arg_1 = (1.0f).xxx;
+  float3 res = cross(arg_0, arg_1);
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store3(0u, asuint(cross_041cb0()));
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store3(0u, asuint(cross_041cb0()));
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = cross_041cb0();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
diff --git a/test/tint/builtins/gen/var/cross/041cb0.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/cross/041cb0.wgsl.expected.ir.fxc.hlsl
index 0ba40c6..a1a04c4 100644
--- a/test/tint/builtins/gen/var/cross/041cb0.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/cross/041cb0.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,44 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  float3 prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation float3 VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+float3 cross_041cb0() {
+  float3 arg_0 = (1.0f).xxx;
+  float3 arg_1 = (1.0f).xxx;
+  float3 res = cross(arg_0, arg_1);
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store3(0u, asuint(cross_041cb0()));
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store3(0u, asuint(cross_041cb0()));
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = cross_041cb0();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
diff --git a/test/tint/builtins/gen/var/cross/1d7933.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/cross/1d7933.wgsl.expected.ir.dxc.hlsl
index 0ba40c6..d7f50f2 100644
--- a/test/tint/builtins/gen/var/cross/1d7933.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/cross/1d7933.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,36 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+void cross_1d7933() {
+  float3 res = (0.0f).xxx;
+}
+
+void fragment_main() {
+  cross_1d7933();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  cross_1d7933();
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  cross_1d7933();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  vertex_main_outputs v_2 = {v_1.pos};
+  return v_2;
+}
+
diff --git a/test/tint/builtins/gen/var/cross/1d7933.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/cross/1d7933.wgsl.expected.ir.fxc.hlsl
index 0ba40c6..d7f50f2 100644
--- a/test/tint/builtins/gen/var/cross/1d7933.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/cross/1d7933.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,36 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+void cross_1d7933() {
+  float3 res = (0.0f).xxx;
+}
+
+void fragment_main() {
+  cross_1d7933();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  cross_1d7933();
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  cross_1d7933();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  vertex_main_outputs v_2 = {v_1.pos};
+  return v_2;
+}
+
diff --git a/test/tint/builtins/gen/var/cross/9857cb.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/cross/9857cb.wgsl.expected.ir.dxc.hlsl
index 0ba40c6..a5baf96 100644
--- a/test/tint/builtins/gen/var/cross/9857cb.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/cross/9857cb.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,44 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  vector<float16_t, 3> prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation vector<float16_t, 3> VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+vector<float16_t, 3> cross_9857cb() {
+  vector<float16_t, 3> arg_0 = (float16_t(1.0h)).xxx;
+  vector<float16_t, 3> arg_1 = (float16_t(1.0h)).xxx;
+  vector<float16_t, 3> res = cross(arg_0, arg_1);
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store<vector<float16_t, 3> >(0u, cross_9857cb());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store<vector<float16_t, 3> >(0u, cross_9857cb());
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = cross_9857cb();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
diff --git a/test/tint/builtins/gen/var/cross/9857cb.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/cross/9857cb.wgsl.expected.ir.fxc.hlsl
index 0ba40c6..250cd14 100644
--- a/test/tint/builtins/gen/var/cross/9857cb.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/cross/9857cb.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,49 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct VertexOutput {
+  float4 pos;
+  vector<float16_t, 3> prevent_dce;
+};
+
+struct vertex_main_outputs {
+  nointerpolation vector<float16_t, 3> VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+vector<float16_t, 3> cross_9857cb() {
+  vector<float16_t, 3> arg_0 = (float16_t(1.0h)).xxx;
+  vector<float16_t, 3> arg_1 = (float16_t(1.0h)).xxx;
+  vector<float16_t, 3> res = cross(arg_0, arg_1);
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store<vector<float16_t, 3> >(0u, cross_9857cb());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store<vector<float16_t, 3> >(0u, cross_9857cb());
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = cross_9857cb();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
+FXC validation failure:
+c:\src\dawn\Shader@0x0000016465C12FD0(3,10-18): error X3000: syntax error: unexpected token 'float16_t'
+
diff --git a/test/tint/builtins/gen/var/degrees/0d170c.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/degrees/0d170c.wgsl.expected.ir.dxc.hlsl
index 33bc9a7..d5d4bac 100644
--- a/test/tint/builtins/gen/var/degrees/0d170c.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/degrees/0d170c.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,43 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  float4 prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: degrees
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation float4 VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+float4 degrees_0d170c() {
+  float4 arg_0 = (1.0f).xxxx;
+  float4 res = (arg_0 * 57.295780181884765625f);
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store4(0u, asuint(degrees_0d170c()));
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store4(0u, asuint(degrees_0d170c()));
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = degrees_0d170c();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
diff --git a/test/tint/builtins/gen/var/degrees/0d170c.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/degrees/0d170c.wgsl.expected.ir.fxc.hlsl
index 33bc9a7..d5d4bac 100644
--- a/test/tint/builtins/gen/var/degrees/0d170c.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/degrees/0d170c.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,43 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  float4 prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: degrees
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation float4 VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+float4 degrees_0d170c() {
+  float4 arg_0 = (1.0f).xxxx;
+  float4 res = (arg_0 * 57.295780181884765625f);
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store4(0u, asuint(degrees_0d170c()));
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store4(0u, asuint(degrees_0d170c()));
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = degrees_0d170c();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
diff --git a/test/tint/builtins/gen/var/degrees/1ad5df.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/degrees/1ad5df.wgsl.expected.ir.dxc.hlsl
index 33bc9a7..b7d5c93 100644
--- a/test/tint/builtins/gen/var/degrees/1ad5df.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/degrees/1ad5df.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,43 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  float2 prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: degrees
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation float2 VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+float2 degrees_1ad5df() {
+  float2 arg_0 = (1.0f).xx;
+  float2 res = (arg_0 * 57.295780181884765625f);
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store2(0u, asuint(degrees_1ad5df()));
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store2(0u, asuint(degrees_1ad5df()));
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = degrees_1ad5df();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
diff --git a/test/tint/builtins/gen/var/degrees/1ad5df.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/degrees/1ad5df.wgsl.expected.ir.fxc.hlsl
index 33bc9a7..b7d5c93 100644
--- a/test/tint/builtins/gen/var/degrees/1ad5df.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/degrees/1ad5df.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,43 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  float2 prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: degrees
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation float2 VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+float2 degrees_1ad5df() {
+  float2 arg_0 = (1.0f).xx;
+  float2 res = (arg_0 * 57.295780181884765625f);
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store2(0u, asuint(degrees_1ad5df()));
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store2(0u, asuint(degrees_1ad5df()));
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = degrees_1ad5df();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
diff --git a/test/tint/builtins/gen/var/degrees/2af623.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/degrees/2af623.wgsl.expected.ir.dxc.hlsl
index 33bc9a7..f005e48 100644
--- a/test/tint/builtins/gen/var/degrees/2af623.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/degrees/2af623.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,43 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  float3 prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: degrees
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation float3 VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+float3 degrees_2af623() {
+  float3 arg_0 = (1.0f).xxx;
+  float3 res = (arg_0 * 57.295780181884765625f);
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store3(0u, asuint(degrees_2af623()));
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store3(0u, asuint(degrees_2af623()));
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = degrees_2af623();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
diff --git a/test/tint/builtins/gen/var/degrees/2af623.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/degrees/2af623.wgsl.expected.ir.fxc.hlsl
index 33bc9a7..f005e48 100644
--- a/test/tint/builtins/gen/var/degrees/2af623.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/degrees/2af623.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,43 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  float3 prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: degrees
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation float3 VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+float3 degrees_2af623() {
+  float3 arg_0 = (1.0f).xxx;
+  float3 res = (arg_0 * 57.295780181884765625f);
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store3(0u, asuint(degrees_2af623()));
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store3(0u, asuint(degrees_2af623()));
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = degrees_2af623();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
diff --git a/test/tint/builtins/gen/var/degrees/3055d3.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/degrees/3055d3.wgsl.expected.ir.dxc.hlsl
index 33bc9a7..36eb48f 100644
--- a/test/tint/builtins/gen/var/degrees/3055d3.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/degrees/3055d3.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,43 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  vector<float16_t, 4> prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: degrees
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation vector<float16_t, 4> VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+vector<float16_t, 4> degrees_3055d3() {
+  vector<float16_t, 4> arg_0 = (float16_t(1.0h)).xxxx;
+  vector<float16_t, 4> res = (arg_0 * float16_t(57.28125h));
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store<vector<float16_t, 4> >(0u, degrees_3055d3());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store<vector<float16_t, 4> >(0u, degrees_3055d3());
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = degrees_3055d3();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
diff --git a/test/tint/builtins/gen/var/degrees/3055d3.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/degrees/3055d3.wgsl.expected.ir.fxc.hlsl
index 33bc9a7..4515947 100644
--- a/test/tint/builtins/gen/var/degrees/3055d3.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/degrees/3055d3.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,48 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: degrees
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct VertexOutput {
+  float4 pos;
+  vector<float16_t, 4> prevent_dce;
+};
+
+struct vertex_main_outputs {
+  nointerpolation vector<float16_t, 4> VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+vector<float16_t, 4> degrees_3055d3() {
+  vector<float16_t, 4> arg_0 = (float16_t(1.0h)).xxxx;
+  vector<float16_t, 4> res = (arg_0 * float16_t(57.28125h));
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store<vector<float16_t, 4> >(0u, degrees_3055d3());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store<vector<float16_t, 4> >(0u, degrees_3055d3());
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = degrees_3055d3();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
+FXC validation failure:
+c:\src\dawn\Shader@0x0000023F9E0ACAF0(3,10-18): error X3000: syntax error: unexpected token 'float16_t'
+
diff --git a/test/tint/builtins/gen/var/degrees/51f705.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/degrees/51f705.wgsl.expected.ir.dxc.hlsl
index 33bc9a7..42de6d5 100644
--- a/test/tint/builtins/gen/var/degrees/51f705.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/degrees/51f705.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,43 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  float prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: degrees
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation float VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+float degrees_51f705() {
+  float arg_0 = 1.0f;
+  float res = (arg_0 * 57.295780181884765625f);
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store(0u, asuint(degrees_51f705()));
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store(0u, asuint(degrees_51f705()));
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = degrees_51f705();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
diff --git a/test/tint/builtins/gen/var/degrees/51f705.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/degrees/51f705.wgsl.expected.ir.fxc.hlsl
index 33bc9a7..42de6d5 100644
--- a/test/tint/builtins/gen/var/degrees/51f705.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/degrees/51f705.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,43 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  float prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: degrees
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation float VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+float degrees_51f705() {
+  float arg_0 = 1.0f;
+  float res = (arg_0 * 57.295780181884765625f);
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store(0u, asuint(degrees_51f705()));
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store(0u, asuint(degrees_51f705()));
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = degrees_51f705();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
diff --git a/test/tint/builtins/gen/var/degrees/5e9805.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/degrees/5e9805.wgsl.expected.ir.dxc.hlsl
index 33bc9a7..724b0b2 100644
--- a/test/tint/builtins/gen/var/degrees/5e9805.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/degrees/5e9805.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,43 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  float16_t prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: degrees
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation float16_t VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+float16_t degrees_5e9805() {
+  float16_t arg_0 = float16_t(1.0h);
+  float16_t res = (arg_0 * float16_t(57.28125h));
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store<float16_t>(0u, degrees_5e9805());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store<float16_t>(0u, degrees_5e9805());
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = degrees_5e9805();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
diff --git a/test/tint/builtins/gen/var/degrees/5e9805.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/degrees/5e9805.wgsl.expected.ir.fxc.hlsl
index 33bc9a7..04c4c42 100644
--- a/test/tint/builtins/gen/var/degrees/5e9805.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/degrees/5e9805.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,48 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: degrees
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct VertexOutput {
+  float4 pos;
+  float16_t prevent_dce;
+};
+
+struct vertex_main_outputs {
+  nointerpolation float16_t VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+float16_t degrees_5e9805() {
+  float16_t arg_0 = float16_t(1.0h);
+  float16_t res = (arg_0 * float16_t(57.28125h));
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store<float16_t>(0u, degrees_5e9805());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store<float16_t>(0u, degrees_5e9805());
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = degrees_5e9805();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
+FXC validation failure:
+c:\src\dawn\Shader@0x00000240B30671C0(3,3-11): error X3000: unrecognized identifier 'float16_t'
+
diff --git a/test/tint/builtins/gen/var/degrees/810467.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/degrees/810467.wgsl.expected.ir.dxc.hlsl
index 0ba40c6..560d187 100644
--- a/test/tint/builtins/gen/var/degrees/810467.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/degrees/810467.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,36 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+void degrees_810467() {
+  float2 res = (57.295780181884765625f).xx;
+}
+
+void fragment_main() {
+  degrees_810467();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  degrees_810467();
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  degrees_810467();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  vertex_main_outputs v_2 = {v_1.pos};
+  return v_2;
+}
+
diff --git a/test/tint/builtins/gen/var/degrees/810467.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/degrees/810467.wgsl.expected.ir.fxc.hlsl
index 0ba40c6..560d187 100644
--- a/test/tint/builtins/gen/var/degrees/810467.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/degrees/810467.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,36 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+void degrees_810467() {
+  float2 res = (57.295780181884765625f).xx;
+}
+
+void fragment_main() {
+  degrees_810467();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  degrees_810467();
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  degrees_810467();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  vertex_main_outputs v_2 = {v_1.pos};
+  return v_2;
+}
+
diff --git a/test/tint/builtins/gen/var/degrees/c0880c.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/degrees/c0880c.wgsl.expected.ir.dxc.hlsl
index 0ba40c6..7054cba 100644
--- a/test/tint/builtins/gen/var/degrees/c0880c.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/degrees/c0880c.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,36 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+void degrees_c0880c() {
+  float3 res = (57.295780181884765625f).xxx;
+}
+
+void fragment_main() {
+  degrees_c0880c();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  degrees_c0880c();
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  degrees_c0880c();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  vertex_main_outputs v_2 = {v_1.pos};
+  return v_2;
+}
+
diff --git a/test/tint/builtins/gen/var/degrees/c0880c.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/degrees/c0880c.wgsl.expected.ir.fxc.hlsl
index 0ba40c6..7054cba 100644
--- a/test/tint/builtins/gen/var/degrees/c0880c.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/degrees/c0880c.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,36 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+void degrees_c0880c() {
+  float3 res = (57.295780181884765625f).xxx;
+}
+
+void fragment_main() {
+  degrees_c0880c();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  degrees_c0880c();
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  degrees_c0880c();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  vertex_main_outputs v_2 = {v_1.pos};
+  return v_2;
+}
+
diff --git a/test/tint/builtins/gen/var/degrees/d43a49.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/degrees/d43a49.wgsl.expected.ir.dxc.hlsl
index 0ba40c6..96e6d10 100644
--- a/test/tint/builtins/gen/var/degrees/d43a49.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/degrees/d43a49.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,36 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+void degrees_d43a49() {
+  float4 res = (57.295780181884765625f).xxxx;
+}
+
+void fragment_main() {
+  degrees_d43a49();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  degrees_d43a49();
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  degrees_d43a49();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  vertex_main_outputs v_2 = {v_1.pos};
+  return v_2;
+}
+
diff --git a/test/tint/builtins/gen/var/degrees/d43a49.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/degrees/d43a49.wgsl.expected.ir.fxc.hlsl
index 0ba40c6..96e6d10 100644
--- a/test/tint/builtins/gen/var/degrees/d43a49.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/degrees/d43a49.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,36 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+void degrees_d43a49() {
+  float4 res = (57.295780181884765625f).xxxx;
+}
+
+void fragment_main() {
+  degrees_d43a49();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  degrees_d43a49();
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  degrees_d43a49();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  vertex_main_outputs v_2 = {v_1.pos};
+  return v_2;
+}
+
diff --git a/test/tint/builtins/gen/var/degrees/dfe8f4.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/degrees/dfe8f4.wgsl.expected.ir.dxc.hlsl
index 33bc9a7..91cb994 100644
--- a/test/tint/builtins/gen/var/degrees/dfe8f4.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/degrees/dfe8f4.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,43 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  vector<float16_t, 3> prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: degrees
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation vector<float16_t, 3> VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+vector<float16_t, 3> degrees_dfe8f4() {
+  vector<float16_t, 3> arg_0 = (float16_t(1.0h)).xxx;
+  vector<float16_t, 3> res = (arg_0 * float16_t(57.28125h));
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store<vector<float16_t, 3> >(0u, degrees_dfe8f4());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store<vector<float16_t, 3> >(0u, degrees_dfe8f4());
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = degrees_dfe8f4();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
diff --git a/test/tint/builtins/gen/var/degrees/dfe8f4.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/degrees/dfe8f4.wgsl.expected.ir.fxc.hlsl
index 33bc9a7..06d478b 100644
--- a/test/tint/builtins/gen/var/degrees/dfe8f4.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/degrees/dfe8f4.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,48 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: degrees
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct VertexOutput {
+  float4 pos;
+  vector<float16_t, 3> prevent_dce;
+};
+
+struct vertex_main_outputs {
+  nointerpolation vector<float16_t, 3> VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+vector<float16_t, 3> degrees_dfe8f4() {
+  vector<float16_t, 3> arg_0 = (float16_t(1.0h)).xxx;
+  vector<float16_t, 3> res = (arg_0 * float16_t(57.28125h));
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store<vector<float16_t, 3> >(0u, degrees_dfe8f4());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store<vector<float16_t, 3> >(0u, degrees_dfe8f4());
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = degrees_dfe8f4();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
+FXC validation failure:
+c:\src\dawn\Shader@0x000001D45B3008C0(3,10-18): error X3000: syntax error: unexpected token 'float16_t'
+
diff --git a/test/tint/builtins/gen/var/degrees/f59715.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/degrees/f59715.wgsl.expected.ir.dxc.hlsl
index 33bc9a7..c8dffd0 100644
--- a/test/tint/builtins/gen/var/degrees/f59715.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/degrees/f59715.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,43 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  vector<float16_t, 2> prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: degrees
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation vector<float16_t, 2> VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+vector<float16_t, 2> degrees_f59715() {
+  vector<float16_t, 2> arg_0 = (float16_t(1.0h)).xx;
+  vector<float16_t, 2> res = (arg_0 * float16_t(57.28125h));
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store<vector<float16_t, 2> >(0u, degrees_f59715());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store<vector<float16_t, 2> >(0u, degrees_f59715());
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = degrees_f59715();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
diff --git a/test/tint/builtins/gen/var/degrees/f59715.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/degrees/f59715.wgsl.expected.ir.fxc.hlsl
index 33bc9a7..3b17df9 100644
--- a/test/tint/builtins/gen/var/degrees/f59715.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/degrees/f59715.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,48 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: degrees
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct VertexOutput {
+  float4 pos;
+  vector<float16_t, 2> prevent_dce;
+};
+
+struct vertex_main_outputs {
+  nointerpolation vector<float16_t, 2> VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+vector<float16_t, 2> degrees_f59715() {
+  vector<float16_t, 2> arg_0 = (float16_t(1.0h)).xx;
+  vector<float16_t, 2> res = (arg_0 * float16_t(57.28125h));
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store<vector<float16_t, 2> >(0u, degrees_f59715());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store<vector<float16_t, 2> >(0u, degrees_f59715());
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = degrees_f59715();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
+FXC validation failure:
+c:\src\dawn\Shader@0x000001F0B662FBC0(3,10-18): error X3000: syntax error: unexpected token 'float16_t'
+
diff --git a/test/tint/builtins/gen/var/degrees/fafa7e.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/degrees/fafa7e.wgsl.expected.ir.dxc.hlsl
index 0ba40c6..b7d3e94 100644
--- a/test/tint/builtins/gen/var/degrees/fafa7e.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/degrees/fafa7e.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,36 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+void degrees_fafa7e() {
+  float res = 57.295780181884765625f;
+}
+
+void fragment_main() {
+  degrees_fafa7e();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  degrees_fafa7e();
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  degrees_fafa7e();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  vertex_main_outputs v_2 = {v_1.pos};
+  return v_2;
+}
+
diff --git a/test/tint/builtins/gen/var/degrees/fafa7e.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/degrees/fafa7e.wgsl.expected.ir.fxc.hlsl
index 0ba40c6..b7d3e94 100644
--- a/test/tint/builtins/gen/var/degrees/fafa7e.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/degrees/fafa7e.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,36 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+void degrees_fafa7e() {
+  float res = 57.295780181884765625f;
+}
+
+void fragment_main() {
+  degrees_fafa7e();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  degrees_fafa7e();
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  degrees_fafa7e();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  vertex_main_outputs v_2 = {v_1.pos};
+  return v_2;
+}
+
diff --git a/test/tint/builtins/gen/var/determinant/1bf6e7.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/determinant/1bf6e7.wgsl.expected.ir.dxc.hlsl
index 0ba40c6..d6cdb04 100644
--- a/test/tint/builtins/gen/var/determinant/1bf6e7.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/determinant/1bf6e7.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,36 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+void determinant_1bf6e7() {
+  float res = 0.0f;
+}
+
+void fragment_main() {
+  determinant_1bf6e7();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  determinant_1bf6e7();
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  determinant_1bf6e7();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  vertex_main_outputs v_2 = {v_1.pos};
+  return v_2;
+}
+
diff --git a/test/tint/builtins/gen/var/determinant/1bf6e7.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/determinant/1bf6e7.wgsl.expected.ir.fxc.hlsl
index 0ba40c6..d6cdb04 100644
--- a/test/tint/builtins/gen/var/determinant/1bf6e7.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/determinant/1bf6e7.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,36 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+void determinant_1bf6e7() {
+  float res = 0.0f;
+}
+
+void fragment_main() {
+  determinant_1bf6e7();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  determinant_1bf6e7();
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  determinant_1bf6e7();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  vertex_main_outputs v_2 = {v_1.pos};
+  return v_2;
+}
+
diff --git a/test/tint/builtins/gen/var/determinant/2b62ba.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/determinant/2b62ba.wgsl.expected.ir.dxc.hlsl
index 0ba40c6..8986e73 100644
--- a/test/tint/builtins/gen/var/determinant/2b62ba.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/determinant/2b62ba.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,43 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  float prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation float VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+float determinant_2b62ba() {
+  float3x3 arg_0 = float3x3((1.0f).xxx, (1.0f).xxx, (1.0f).xxx);
+  float res = determinant(arg_0);
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store(0u, asuint(determinant_2b62ba()));
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store(0u, asuint(determinant_2b62ba()));
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = determinant_2b62ba();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
diff --git a/test/tint/builtins/gen/var/determinant/2b62ba.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/determinant/2b62ba.wgsl.expected.ir.fxc.hlsl
index 0ba40c6..8986e73 100644
--- a/test/tint/builtins/gen/var/determinant/2b62ba.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/determinant/2b62ba.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,43 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  float prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation float VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+float determinant_2b62ba() {
+  float3x3 arg_0 = float3x3((1.0f).xxx, (1.0f).xxx, (1.0f).xxx);
+  float res = determinant(arg_0);
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store(0u, asuint(determinant_2b62ba()));
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store(0u, asuint(determinant_2b62ba()));
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = determinant_2b62ba();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
diff --git a/test/tint/builtins/gen/var/determinant/32bfde.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/determinant/32bfde.wgsl.expected.ir.dxc.hlsl
index 0ba40c6..8df0037 100644
--- a/test/tint/builtins/gen/var/determinant/32bfde.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/determinant/32bfde.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,43 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  float16_t prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation float16_t VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+float16_t determinant_32bfde() {
+  matrix<float16_t, 4, 4> arg_0 = matrix<float16_t, 4, 4>((float16_t(1.0h)).xxxx, (float16_t(1.0h)).xxxx, (float16_t(1.0h)).xxxx, (float16_t(1.0h)).xxxx);
+  float16_t res = determinant(arg_0);
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store<float16_t>(0u, determinant_32bfde());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store<float16_t>(0u, determinant_32bfde());
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = determinant_32bfde();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
diff --git a/test/tint/builtins/gen/var/determinant/32bfde.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/determinant/32bfde.wgsl.expected.ir.fxc.hlsl
index 0ba40c6..634052d 100644
--- a/test/tint/builtins/gen/var/determinant/32bfde.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/determinant/32bfde.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,48 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct VertexOutput {
+  float4 pos;
+  float16_t prevent_dce;
+};
+
+struct vertex_main_outputs {
+  nointerpolation float16_t VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+float16_t determinant_32bfde() {
+  matrix<float16_t, 4, 4> arg_0 = matrix<float16_t, 4, 4>((float16_t(1.0h)).xxxx, (float16_t(1.0h)).xxxx, (float16_t(1.0h)).xxxx, (float16_t(1.0h)).xxxx);
+  float16_t res = determinant(arg_0);
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store<float16_t>(0u, determinant_32bfde());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store<float16_t>(0u, determinant_32bfde());
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = determinant_32bfde();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
+FXC validation failure:
+c:\src\dawn\Shader@0x0000024BDBD1E460(3,3-11): error X3000: unrecognized identifier 'float16_t'
+
diff --git a/test/tint/builtins/gen/var/determinant/a0a87c.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/determinant/a0a87c.wgsl.expected.ir.dxc.hlsl
index 0ba40c6..a83599e 100644
--- a/test/tint/builtins/gen/var/determinant/a0a87c.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/determinant/a0a87c.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,43 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  float prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation float VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+float determinant_a0a87c() {
+  float4x4 arg_0 = float4x4((1.0f).xxxx, (1.0f).xxxx, (1.0f).xxxx, (1.0f).xxxx);
+  float res = determinant(arg_0);
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store(0u, asuint(determinant_a0a87c()));
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store(0u, asuint(determinant_a0a87c()));
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = determinant_a0a87c();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
diff --git a/test/tint/builtins/gen/var/determinant/a0a87c.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/determinant/a0a87c.wgsl.expected.ir.fxc.hlsl
index 0ba40c6..a83599e 100644
--- a/test/tint/builtins/gen/var/determinant/a0a87c.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/determinant/a0a87c.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,43 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  float prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation float VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+float determinant_a0a87c() {
+  float4x4 arg_0 = float4x4((1.0f).xxxx, (1.0f).xxxx, (1.0f).xxxx, (1.0f).xxxx);
+  float res = determinant(arg_0);
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store(0u, asuint(determinant_a0a87c()));
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store(0u, asuint(determinant_a0a87c()));
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = determinant_a0a87c();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
diff --git a/test/tint/builtins/gen/var/determinant/c8251d.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/determinant/c8251d.wgsl.expected.ir.dxc.hlsl
index 0ba40c6..33318b2 100644
--- a/test/tint/builtins/gen/var/determinant/c8251d.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/determinant/c8251d.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,36 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+void determinant_c8251d() {
+  float res = 0.0f;
+}
+
+void fragment_main() {
+  determinant_c8251d();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  determinant_c8251d();
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  determinant_c8251d();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  vertex_main_outputs v_2 = {v_1.pos};
+  return v_2;
+}
+
diff --git a/test/tint/builtins/gen/var/determinant/c8251d.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/determinant/c8251d.wgsl.expected.ir.fxc.hlsl
index 0ba40c6..33318b2 100644
--- a/test/tint/builtins/gen/var/determinant/c8251d.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/determinant/c8251d.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,36 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+void determinant_c8251d() {
+  float res = 0.0f;
+}
+
+void fragment_main() {
+  determinant_c8251d();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  determinant_c8251d();
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  determinant_c8251d();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  vertex_main_outputs v_2 = {v_1.pos};
+  return v_2;
+}
+
diff --git a/test/tint/builtins/gen/var/determinant/cefdf3.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/determinant/cefdf3.wgsl.expected.ir.dxc.hlsl
index 0ba40c6..93b26e9 100644
--- a/test/tint/builtins/gen/var/determinant/cefdf3.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/determinant/cefdf3.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,36 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+void determinant_cefdf3() {
+  float res = 0.0f;
+}
+
+void fragment_main() {
+  determinant_cefdf3();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  determinant_cefdf3();
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  determinant_cefdf3();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  vertex_main_outputs v_2 = {v_1.pos};
+  return v_2;
+}
+
diff --git a/test/tint/builtins/gen/var/determinant/cefdf3.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/determinant/cefdf3.wgsl.expected.ir.fxc.hlsl
index 0ba40c6..93b26e9 100644
--- a/test/tint/builtins/gen/var/determinant/cefdf3.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/determinant/cefdf3.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,36 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+void determinant_cefdf3() {
+  float res = 0.0f;
+}
+
+void fragment_main() {
+  determinant_cefdf3();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  determinant_cefdf3();
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  determinant_cefdf3();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  vertex_main_outputs v_2 = {v_1.pos};
+  return v_2;
+}
+
diff --git a/test/tint/builtins/gen/var/determinant/d7c86f.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/determinant/d7c86f.wgsl.expected.ir.dxc.hlsl
index 0ba40c6..cb0bebf 100644
--- a/test/tint/builtins/gen/var/determinant/d7c86f.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/determinant/d7c86f.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,43 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  float16_t prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation float16_t VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+float16_t determinant_d7c86f() {
+  matrix<float16_t, 3, 3> arg_0 = matrix<float16_t, 3, 3>((float16_t(1.0h)).xxx, (float16_t(1.0h)).xxx, (float16_t(1.0h)).xxx);
+  float16_t res = determinant(arg_0);
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store<float16_t>(0u, determinant_d7c86f());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store<float16_t>(0u, determinant_d7c86f());
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = determinant_d7c86f();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
diff --git a/test/tint/builtins/gen/var/determinant/d7c86f.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/determinant/d7c86f.wgsl.expected.ir.fxc.hlsl
index 0ba40c6..f7a996d 100644
--- a/test/tint/builtins/gen/var/determinant/d7c86f.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/determinant/d7c86f.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,48 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct VertexOutput {
+  float4 pos;
+  float16_t prevent_dce;
+};
+
+struct vertex_main_outputs {
+  nointerpolation float16_t VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+float16_t determinant_d7c86f() {
+  matrix<float16_t, 3, 3> arg_0 = matrix<float16_t, 3, 3>((float16_t(1.0h)).xxx, (float16_t(1.0h)).xxx, (float16_t(1.0h)).xxx);
+  float16_t res = determinant(arg_0);
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store<float16_t>(0u, determinant_d7c86f());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store<float16_t>(0u, determinant_d7c86f());
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = determinant_d7c86f();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
+FXC validation failure:
+c:\src\dawn\Shader@0x0000025E74C15700(3,3-11): error X3000: unrecognized identifier 'float16_t'
+
diff --git a/test/tint/builtins/gen/var/determinant/e19305.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/determinant/e19305.wgsl.expected.ir.dxc.hlsl
index 0ba40c6..c4006f6 100644
--- a/test/tint/builtins/gen/var/determinant/e19305.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/determinant/e19305.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,43 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  float prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation float VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+float determinant_e19305() {
+  float2x2 arg_0 = float2x2((1.0f).xx, (1.0f).xx);
+  float res = determinant(arg_0);
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store(0u, asuint(determinant_e19305()));
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store(0u, asuint(determinant_e19305()));
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = determinant_e19305();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
diff --git a/test/tint/builtins/gen/var/determinant/e19305.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/determinant/e19305.wgsl.expected.ir.fxc.hlsl
index 0ba40c6..c4006f6 100644
--- a/test/tint/builtins/gen/var/determinant/e19305.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/determinant/e19305.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,43 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  float prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation float VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+float determinant_e19305() {
+  float2x2 arg_0 = float2x2((1.0f).xx, (1.0f).xx);
+  float res = determinant(arg_0);
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store(0u, asuint(determinant_e19305()));
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store(0u, asuint(determinant_e19305()));
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = determinant_e19305();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
diff --git a/test/tint/builtins/gen/var/determinant/fc12a5.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/determinant/fc12a5.wgsl.expected.ir.dxc.hlsl
index 0ba40c6..0ce22d6 100644
--- a/test/tint/builtins/gen/var/determinant/fc12a5.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/determinant/fc12a5.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,43 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  float16_t prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation float16_t VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+float16_t determinant_fc12a5() {
+  matrix<float16_t, 2, 2> arg_0 = matrix<float16_t, 2, 2>((float16_t(1.0h)).xx, (float16_t(1.0h)).xx);
+  float16_t res = determinant(arg_0);
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store<float16_t>(0u, determinant_fc12a5());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store<float16_t>(0u, determinant_fc12a5());
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = determinant_fc12a5();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
diff --git a/test/tint/builtins/gen/var/determinant/fc12a5.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/determinant/fc12a5.wgsl.expected.ir.fxc.hlsl
index 0ba40c6..52eaca7 100644
--- a/test/tint/builtins/gen/var/determinant/fc12a5.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/determinant/fc12a5.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,48 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct VertexOutput {
+  float4 pos;
+  float16_t prevent_dce;
+};
+
+struct vertex_main_outputs {
+  nointerpolation float16_t VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+float16_t determinant_fc12a5() {
+  matrix<float16_t, 2, 2> arg_0 = matrix<float16_t, 2, 2>((float16_t(1.0h)).xx, (float16_t(1.0h)).xx);
+  float16_t res = determinant(arg_0);
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store<float16_t>(0u, determinant_fc12a5());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store<float16_t>(0u, determinant_fc12a5());
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = determinant_fc12a5();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
+FXC validation failure:
+c:\src\dawn\Shader@0x00000287AE7BCE10(3,3-11): error X3000: unrecognized identifier 'float16_t'
+
diff --git a/test/tint/builtins/gen/var/distance/0657d4.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/distance/0657d4.wgsl.expected.ir.dxc.hlsl
index 0ba40c6..19df5d0 100644
--- a/test/tint/builtins/gen/var/distance/0657d4.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/distance/0657d4.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,44 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  float prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation float VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+float distance_0657d4() {
+  float3 arg_0 = (1.0f).xxx;
+  float3 arg_1 = (1.0f).xxx;
+  float res = distance(arg_0, arg_1);
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store(0u, asuint(distance_0657d4()));
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store(0u, asuint(distance_0657d4()));
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = distance_0657d4();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
diff --git a/test/tint/builtins/gen/var/distance/0657d4.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/distance/0657d4.wgsl.expected.ir.fxc.hlsl
index 0ba40c6..19df5d0 100644
--- a/test/tint/builtins/gen/var/distance/0657d4.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/distance/0657d4.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,44 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  float prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation float VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+float distance_0657d4() {
+  float3 arg_0 = (1.0f).xxx;
+  float3 arg_1 = (1.0f).xxx;
+  float res = distance(arg_0, arg_1);
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store(0u, asuint(distance_0657d4()));
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store(0u, asuint(distance_0657d4()));
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = distance_0657d4();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
diff --git a/test/tint/builtins/gen/var/distance/3a175a.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/distance/3a175a.wgsl.expected.ir.dxc.hlsl
index 0ba40c6..73022af 100644
--- a/test/tint/builtins/gen/var/distance/3a175a.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/distance/3a175a.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,36 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+void distance_3a175a() {
+  float res = 0.0f;
+}
+
+void fragment_main() {
+  distance_3a175a();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  distance_3a175a();
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  distance_3a175a();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  vertex_main_outputs v_2 = {v_1.pos};
+  return v_2;
+}
+
diff --git a/test/tint/builtins/gen/var/distance/3a175a.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/distance/3a175a.wgsl.expected.ir.fxc.hlsl
index 0ba40c6..73022af 100644
--- a/test/tint/builtins/gen/var/distance/3a175a.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/distance/3a175a.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,36 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+void distance_3a175a() {
+  float res = 0.0f;
+}
+
+void fragment_main() {
+  distance_3a175a();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  distance_3a175a();
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  distance_3a175a();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  vertex_main_outputs v_2 = {v_1.pos};
+  return v_2;
+}
+
diff --git a/test/tint/builtins/gen/var/distance/7272f3.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/distance/7272f3.wgsl.expected.ir.dxc.hlsl
index 0ba40c6..282b186 100644
--- a/test/tint/builtins/gen/var/distance/7272f3.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/distance/7272f3.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,44 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  float16_t prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation float16_t VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+float16_t distance_7272f3() {
+  vector<float16_t, 4> arg_0 = (float16_t(1.0h)).xxxx;
+  vector<float16_t, 4> arg_1 = (float16_t(1.0h)).xxxx;
+  float16_t res = distance(arg_0, arg_1);
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store<float16_t>(0u, distance_7272f3());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store<float16_t>(0u, distance_7272f3());
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = distance_7272f3();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
diff --git a/test/tint/builtins/gen/var/distance/7272f3.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/distance/7272f3.wgsl.expected.ir.fxc.hlsl
index 0ba40c6..b119783 100644
--- a/test/tint/builtins/gen/var/distance/7272f3.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/distance/7272f3.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,49 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct VertexOutput {
+  float4 pos;
+  float16_t prevent_dce;
+};
+
+struct vertex_main_outputs {
+  nointerpolation float16_t VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+float16_t distance_7272f3() {
+  vector<float16_t, 4> arg_0 = (float16_t(1.0h)).xxxx;
+  vector<float16_t, 4> arg_1 = (float16_t(1.0h)).xxxx;
+  float16_t res = distance(arg_0, arg_1);
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store<float16_t>(0u, distance_7272f3());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store<float16_t>(0u, distance_7272f3());
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = distance_7272f3();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
+FXC validation failure:
+c:\src\dawn\Shader@0x000001FECACA4050(3,3-11): error X3000: unrecognized identifier 'float16_t'
+
diff --git a/test/tint/builtins/gen/var/distance/7d201f.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/distance/7d201f.wgsl.expected.ir.dxc.hlsl
index 0ba40c6..0ba14be 100644
--- a/test/tint/builtins/gen/var/distance/7d201f.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/distance/7d201f.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,44 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  float16_t prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation float16_t VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+float16_t distance_7d201f() {
+  float16_t arg_0 = float16_t(1.0h);
+  float16_t arg_1 = float16_t(1.0h);
+  float16_t res = distance(arg_0, arg_1);
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store<float16_t>(0u, distance_7d201f());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store<float16_t>(0u, distance_7d201f());
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = distance_7d201f();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
diff --git a/test/tint/builtins/gen/var/distance/7d201f.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/distance/7d201f.wgsl.expected.ir.fxc.hlsl
index 0ba40c6..1b0f8b3 100644
--- a/test/tint/builtins/gen/var/distance/7d201f.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/distance/7d201f.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,49 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct VertexOutput {
+  float4 pos;
+  float16_t prevent_dce;
+};
+
+struct vertex_main_outputs {
+  nointerpolation float16_t VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+float16_t distance_7d201f() {
+  float16_t arg_0 = float16_t(1.0h);
+  float16_t arg_1 = float16_t(1.0h);
+  float16_t res = distance(arg_0, arg_1);
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store<float16_t>(0u, distance_7d201f());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store<float16_t>(0u, distance_7d201f());
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = distance_7d201f();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
+FXC validation failure:
+c:\src\dawn\Shader@0x00000195C1D143A0(3,3-11): error X3000: unrecognized identifier 'float16_t'
+
diff --git a/test/tint/builtins/gen/var/distance/83911f.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/distance/83911f.wgsl.expected.ir.dxc.hlsl
index 0ba40c6..dde0059 100644
--- a/test/tint/builtins/gen/var/distance/83911f.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/distance/83911f.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,36 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+void distance_83911f() {
+  float res = 0.0f;
+}
+
+void fragment_main() {
+  distance_83911f();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  distance_83911f();
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  distance_83911f();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  vertex_main_outputs v_2 = {v_1.pos};
+  return v_2;
+}
+
diff --git a/test/tint/builtins/gen/var/distance/83911f.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/distance/83911f.wgsl.expected.ir.fxc.hlsl
index 0ba40c6..dde0059 100644
--- a/test/tint/builtins/gen/var/distance/83911f.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/distance/83911f.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,36 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+void distance_83911f() {
+  float res = 0.0f;
+}
+
+void fragment_main() {
+  distance_83911f();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  distance_83911f();
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  distance_83911f();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  vertex_main_outputs v_2 = {v_1.pos};
+  return v_2;
+}
+
diff --git a/test/tint/builtins/gen/var/distance/892a5d.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/distance/892a5d.wgsl.expected.ir.dxc.hlsl
index 0ba40c6..c337f2b 100644
--- a/test/tint/builtins/gen/var/distance/892a5d.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/distance/892a5d.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,44 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  float16_t prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation float16_t VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+float16_t distance_892a5d() {
+  vector<float16_t, 2> arg_0 = (float16_t(1.0h)).xx;
+  vector<float16_t, 2> arg_1 = (float16_t(1.0h)).xx;
+  float16_t res = distance(arg_0, arg_1);
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store<float16_t>(0u, distance_892a5d());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store<float16_t>(0u, distance_892a5d());
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = distance_892a5d();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
diff --git a/test/tint/builtins/gen/var/distance/892a5d.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/distance/892a5d.wgsl.expected.ir.fxc.hlsl
index 0ba40c6..4438064 100644
--- a/test/tint/builtins/gen/var/distance/892a5d.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/distance/892a5d.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,49 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct VertexOutput {
+  float4 pos;
+  float16_t prevent_dce;
+};
+
+struct vertex_main_outputs {
+  nointerpolation float16_t VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+float16_t distance_892a5d() {
+  vector<float16_t, 2> arg_0 = (float16_t(1.0h)).xx;
+  vector<float16_t, 2> arg_1 = (float16_t(1.0h)).xx;
+  float16_t res = distance(arg_0, arg_1);
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store<float16_t>(0u, distance_892a5d());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store<float16_t>(0u, distance_892a5d());
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = distance_892a5d();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
+FXC validation failure:
+c:\src\dawn\Shader@0x000001EF7E636690(3,3-11): error X3000: unrecognized identifier 'float16_t'
+
diff --git a/test/tint/builtins/gen/var/distance/928fa0.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/distance/928fa0.wgsl.expected.ir.dxc.hlsl
index 0ba40c6..d0abd25 100644
--- a/test/tint/builtins/gen/var/distance/928fa0.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/distance/928fa0.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,44 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  float16_t prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation float16_t VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+float16_t distance_928fa0() {
+  vector<float16_t, 3> arg_0 = (float16_t(1.0h)).xxx;
+  vector<float16_t, 3> arg_1 = (float16_t(1.0h)).xxx;
+  float16_t res = distance(arg_0, arg_1);
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store<float16_t>(0u, distance_928fa0());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store<float16_t>(0u, distance_928fa0());
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = distance_928fa0();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
diff --git a/test/tint/builtins/gen/var/distance/928fa0.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/distance/928fa0.wgsl.expected.ir.fxc.hlsl
index 0ba40c6..e4f5616 100644
--- a/test/tint/builtins/gen/var/distance/928fa0.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/distance/928fa0.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,49 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct VertexOutput {
+  float4 pos;
+  float16_t prevent_dce;
+};
+
+struct vertex_main_outputs {
+  nointerpolation float16_t VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+float16_t distance_928fa0() {
+  vector<float16_t, 3> arg_0 = (float16_t(1.0h)).xxx;
+  vector<float16_t, 3> arg_1 = (float16_t(1.0h)).xxx;
+  float16_t res = distance(arg_0, arg_1);
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store<float16_t>(0u, distance_928fa0());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store<float16_t>(0u, distance_928fa0());
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = distance_928fa0();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
+FXC validation failure:
+c:\src\dawn\Shader@0x0000011BD232C460(3,3-11): error X3000: unrecognized identifier 'float16_t'
+
diff --git a/test/tint/builtins/gen/var/distance/9646ea.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/distance/9646ea.wgsl.expected.ir.dxc.hlsl
index 0ba40c6..855dfc6 100644
--- a/test/tint/builtins/gen/var/distance/9646ea.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/distance/9646ea.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,44 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  float prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation float VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+float distance_9646ea() {
+  float4 arg_0 = (1.0f).xxxx;
+  float4 arg_1 = (1.0f).xxxx;
+  float res = distance(arg_0, arg_1);
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store(0u, asuint(distance_9646ea()));
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store(0u, asuint(distance_9646ea()));
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = distance_9646ea();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
diff --git a/test/tint/builtins/gen/var/distance/9646ea.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/distance/9646ea.wgsl.expected.ir.fxc.hlsl
index 0ba40c6..855dfc6 100644
--- a/test/tint/builtins/gen/var/distance/9646ea.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/distance/9646ea.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,44 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  float prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation float VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+float distance_9646ea() {
+  float4 arg_0 = (1.0f).xxxx;
+  float4 arg_1 = (1.0f).xxxx;
+  float res = distance(arg_0, arg_1);
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store(0u, asuint(distance_9646ea()));
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store(0u, asuint(distance_9646ea()));
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = distance_9646ea();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
diff --git a/test/tint/builtins/gen/var/distance/aa4055.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/distance/aa4055.wgsl.expected.ir.dxc.hlsl
index 0ba40c6..6ab2659 100644
--- a/test/tint/builtins/gen/var/distance/aa4055.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/distance/aa4055.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,44 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  float prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation float VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+float distance_aa4055() {
+  float2 arg_0 = (1.0f).xx;
+  float2 arg_1 = (1.0f).xx;
+  float res = distance(arg_0, arg_1);
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store(0u, asuint(distance_aa4055()));
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store(0u, asuint(distance_aa4055()));
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = distance_aa4055();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
diff --git a/test/tint/builtins/gen/var/distance/aa4055.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/distance/aa4055.wgsl.expected.ir.fxc.hlsl
index 0ba40c6..6ab2659 100644
--- a/test/tint/builtins/gen/var/distance/aa4055.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/distance/aa4055.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,44 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  float prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation float VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+float distance_aa4055() {
+  float2 arg_0 = (1.0f).xx;
+  float2 arg_1 = (1.0f).xx;
+  float res = distance(arg_0, arg_1);
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store(0u, asuint(distance_aa4055()));
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store(0u, asuint(distance_aa4055()));
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = distance_aa4055();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
diff --git a/test/tint/builtins/gen/var/distance/ac5535.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/distance/ac5535.wgsl.expected.ir.dxc.hlsl
index 0ba40c6..bd9b437 100644
--- a/test/tint/builtins/gen/var/distance/ac5535.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/distance/ac5535.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,36 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+void distance_ac5535() {
+  float res = 0.0f;
+}
+
+void fragment_main() {
+  distance_ac5535();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  distance_ac5535();
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  distance_ac5535();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  vertex_main_outputs v_2 = {v_1.pos};
+  return v_2;
+}
+
diff --git a/test/tint/builtins/gen/var/distance/ac5535.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/distance/ac5535.wgsl.expected.ir.fxc.hlsl
index 0ba40c6..bd9b437 100644
--- a/test/tint/builtins/gen/var/distance/ac5535.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/distance/ac5535.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,36 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+void distance_ac5535() {
+  float res = 0.0f;
+}
+
+void fragment_main() {
+  distance_ac5535();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  distance_ac5535();
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  distance_ac5535();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  vertex_main_outputs v_2 = {v_1.pos};
+  return v_2;
+}
+
diff --git a/test/tint/builtins/gen/var/distance/cfed73.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/distance/cfed73.wgsl.expected.ir.dxc.hlsl
index 0ba40c6..8e6893f 100644
--- a/test/tint/builtins/gen/var/distance/cfed73.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/distance/cfed73.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,44 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  float prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation float VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+float distance_cfed73() {
+  float arg_0 = 1.0f;
+  float arg_1 = 1.0f;
+  float res = distance(arg_0, arg_1);
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store(0u, asuint(distance_cfed73()));
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store(0u, asuint(distance_cfed73()));
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = distance_cfed73();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
diff --git a/test/tint/builtins/gen/var/distance/cfed73.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/distance/cfed73.wgsl.expected.ir.fxc.hlsl
index 0ba40c6..8e6893f 100644
--- a/test/tint/builtins/gen/var/distance/cfed73.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/distance/cfed73.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,44 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  float prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation float VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+float distance_cfed73() {
+  float arg_0 = 1.0f;
+  float arg_1 = 1.0f;
+  float res = distance(arg_0, arg_1);
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store(0u, asuint(distance_cfed73()));
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store(0u, asuint(distance_cfed73()));
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = distance_cfed73();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
diff --git a/test/tint/builtins/gen/var/distance/f9c9ee.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/distance/f9c9ee.wgsl.expected.ir.dxc.hlsl
index 0ba40c6..8775b12 100644
--- a/test/tint/builtins/gen/var/distance/f9c9ee.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/distance/f9c9ee.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,36 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+void distance_f9c9ee() {
+  float res = 0.0f;
+}
+
+void fragment_main() {
+  distance_f9c9ee();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  distance_f9c9ee();
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  distance_f9c9ee();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  vertex_main_outputs v_2 = {v_1.pos};
+  return v_2;
+}
+
diff --git a/test/tint/builtins/gen/var/distance/f9c9ee.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/distance/f9c9ee.wgsl.expected.ir.fxc.hlsl
index 0ba40c6..8775b12 100644
--- a/test/tint/builtins/gen/var/distance/f9c9ee.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/distance/f9c9ee.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,36 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+void distance_f9c9ee() {
+  float res = 0.0f;
+}
+
+void fragment_main() {
+  distance_f9c9ee();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  distance_f9c9ee();
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  distance_f9c9ee();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  vertex_main_outputs v_2 = {v_1.pos};
+  return v_2;
+}
+
diff --git a/test/tint/builtins/gen/var/dot/08eb56.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/dot/08eb56.wgsl.expected.ir.dxc.hlsl
index 0ba40c6..3cba7fa 100644
--- a/test/tint/builtins/gen/var/dot/08eb56.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/dot/08eb56.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,36 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+void dot_08eb56() {
+  float res = 4.0f;
+}
+
+void fragment_main() {
+  dot_08eb56();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  dot_08eb56();
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  dot_08eb56();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  vertex_main_outputs v_2 = {v_1.pos};
+  return v_2;
+}
+
diff --git a/test/tint/builtins/gen/var/dot/08eb56.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/dot/08eb56.wgsl.expected.ir.fxc.hlsl
index 0ba40c6..3cba7fa 100644
--- a/test/tint/builtins/gen/var/dot/08eb56.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/dot/08eb56.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,36 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+void dot_08eb56() {
+  float res = 4.0f;
+}
+
+void fragment_main() {
+  dot_08eb56();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  dot_08eb56();
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  dot_08eb56();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  vertex_main_outputs v_2 = {v_1.pos};
+  return v_2;
+}
+
diff --git a/test/tint/builtins/gen/var/dot/0c577b.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/dot/0c577b.wgsl.expected.ir.dxc.hlsl
index 0ba40c6..d5cf97f 100644
--- a/test/tint/builtins/gen/var/dot/0c577b.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/dot/0c577b.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,44 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  float prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation float VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+float dot_0c577b() {
+  float4 arg_0 = (1.0f).xxxx;
+  float4 arg_1 = (1.0f).xxxx;
+  float res = dot(arg_0, arg_1);
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store(0u, asuint(dot_0c577b()));
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store(0u, asuint(dot_0c577b()));
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = dot_0c577b();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
diff --git a/test/tint/builtins/gen/var/dot/0c577b.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/dot/0c577b.wgsl.expected.ir.fxc.hlsl
index 0ba40c6..d5cf97f 100644
--- a/test/tint/builtins/gen/var/dot/0c577b.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/dot/0c577b.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,44 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  float prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation float VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+float dot_0c577b() {
+  float4 arg_0 = (1.0f).xxxx;
+  float4 arg_1 = (1.0f).xxxx;
+  float res = dot(arg_0, arg_1);
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store(0u, asuint(dot_0c577b()));
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store(0u, asuint(dot_0c577b()));
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = dot_0c577b();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
diff --git a/test/tint/builtins/gen/var/dot/0d2c2e.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/dot/0d2c2e.wgsl.expected.ir.dxc.hlsl
index 0ba40c6..efe07ca 100644
--- a/test/tint/builtins/gen/var/dot/0d2c2e.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/dot/0d2c2e.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,36 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+void dot_0d2c2e() {
+  float res = 2.0f;
+}
+
+void fragment_main() {
+  dot_0d2c2e();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  dot_0d2c2e();
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  dot_0d2c2e();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  vertex_main_outputs v_2 = {v_1.pos};
+  return v_2;
+}
+
diff --git a/test/tint/builtins/gen/var/dot/0d2c2e.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/dot/0d2c2e.wgsl.expected.ir.fxc.hlsl
index 0ba40c6..efe07ca 100644
--- a/test/tint/builtins/gen/var/dot/0d2c2e.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/dot/0d2c2e.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,36 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+void dot_0d2c2e() {
+  float res = 2.0f;
+}
+
+void fragment_main() {
+  dot_0d2c2e();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  dot_0d2c2e();
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  dot_0d2c2e();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  vertex_main_outputs v_2 = {v_1.pos};
+  return v_2;
+}
+
diff --git a/test/tint/builtins/gen/var/dot/14bc63.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/dot/14bc63.wgsl.expected.ir.dxc.hlsl
index 0ba40c6..cc49197 100644
--- a/test/tint/builtins/gen/var/dot/14bc63.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/dot/14bc63.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,36 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+void dot_14bc63() {
+  int res = 2;
+}
+
+void fragment_main() {
+  dot_14bc63();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  dot_14bc63();
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  dot_14bc63();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  vertex_main_outputs v_2 = {v_1.pos};
+  return v_2;
+}
+
diff --git a/test/tint/builtins/gen/var/dot/14bc63.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/dot/14bc63.wgsl.expected.ir.fxc.hlsl
index 0ba40c6..cc49197 100644
--- a/test/tint/builtins/gen/var/dot/14bc63.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/dot/14bc63.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,36 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+void dot_14bc63() {
+  int res = 2;
+}
+
+void fragment_main() {
+  dot_14bc63();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  dot_14bc63();
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  dot_14bc63();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  vertex_main_outputs v_2 = {v_1.pos};
+  return v_2;
+}
+
diff --git a/test/tint/builtins/gen/var/dot/5a4c8f.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/dot/5a4c8f.wgsl.expected.ir.dxc.hlsl
index 0ba40c6..1fc135f 100644
--- a/test/tint/builtins/gen/var/dot/5a4c8f.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/dot/5a4c8f.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,36 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+void dot_5a4c8f() {
+  float res = 3.0f;
+}
+
+void fragment_main() {
+  dot_5a4c8f();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  dot_5a4c8f();
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  dot_5a4c8f();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  vertex_main_outputs v_2 = {v_1.pos};
+  return v_2;
+}
+
diff --git a/test/tint/builtins/gen/var/dot/5a4c8f.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/dot/5a4c8f.wgsl.expected.ir.fxc.hlsl
index 0ba40c6..1fc135f 100644
--- a/test/tint/builtins/gen/var/dot/5a4c8f.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/dot/5a4c8f.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,36 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+void dot_5a4c8f() {
+  float res = 3.0f;
+}
+
+void fragment_main() {
+  dot_5a4c8f();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  dot_5a4c8f();
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  dot_5a4c8f();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  vertex_main_outputs v_2 = {v_1.pos};
+  return v_2;
+}
+
diff --git a/test/tint/builtins/gen/var/dot/7548a0.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/dot/7548a0.wgsl.expected.ir.dxc.hlsl
index 0ba40c6..cd0c391 100644
--- a/test/tint/builtins/gen/var/dot/7548a0.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/dot/7548a0.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,44 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  uint prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation uint VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+uint dot_7548a0() {
+  uint3 arg_0 = (1u).xxx;
+  uint3 arg_1 = (1u).xxx;
+  uint res = dot(arg_0, arg_1);
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store(0u, dot_7548a0());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store(0u, dot_7548a0());
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = dot_7548a0();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
diff --git a/test/tint/builtins/gen/var/dot/7548a0.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/dot/7548a0.wgsl.expected.ir.fxc.hlsl
index 0ba40c6..cd0c391 100644
--- a/test/tint/builtins/gen/var/dot/7548a0.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/dot/7548a0.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,44 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  uint prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation uint VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+uint dot_7548a0() {
+  uint3 arg_0 = (1u).xxx;
+  uint3 arg_1 = (1u).xxx;
+  uint res = dot(arg_0, arg_1);
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store(0u, dot_7548a0());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store(0u, dot_7548a0());
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = dot_7548a0();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
diff --git a/test/tint/builtins/gen/var/dot/883f0e.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/dot/883f0e.wgsl.expected.ir.dxc.hlsl
index 0ba40c6..ef66b5e 100644
--- a/test/tint/builtins/gen/var/dot/883f0e.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/dot/883f0e.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,44 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  float prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation float VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+float dot_883f0e() {
+  float2 arg_0 = (1.0f).xx;
+  float2 arg_1 = (1.0f).xx;
+  float res = dot(arg_0, arg_1);
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store(0u, asuint(dot_883f0e()));
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store(0u, asuint(dot_883f0e()));
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = dot_883f0e();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
diff --git a/test/tint/builtins/gen/var/dot/883f0e.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/dot/883f0e.wgsl.expected.ir.fxc.hlsl
index 0ba40c6..ef66b5e 100644
--- a/test/tint/builtins/gen/var/dot/883f0e.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/dot/883f0e.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,44 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  float prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation float VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+float dot_883f0e() {
+  float2 arg_0 = (1.0f).xx;
+  float2 arg_1 = (1.0f).xx;
+  float res = dot(arg_0, arg_1);
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store(0u, asuint(dot_883f0e()));
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store(0u, asuint(dot_883f0e()));
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = dot_883f0e();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
diff --git a/test/tint/builtins/gen/var/dot/8e40f1.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/dot/8e40f1.wgsl.expected.ir.dxc.hlsl
index 0ba40c6..15091d0 100644
--- a/test/tint/builtins/gen/var/dot/8e40f1.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/dot/8e40f1.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,44 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  float16_t prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation float16_t VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+float16_t dot_8e40f1() {
+  vector<float16_t, 3> arg_0 = (float16_t(1.0h)).xxx;
+  vector<float16_t, 3> arg_1 = (float16_t(1.0h)).xxx;
+  float16_t res = dot(arg_0, arg_1);
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store<float16_t>(0u, dot_8e40f1());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store<float16_t>(0u, dot_8e40f1());
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = dot_8e40f1();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
diff --git a/test/tint/builtins/gen/var/dot/8e40f1.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/dot/8e40f1.wgsl.expected.ir.fxc.hlsl
index 0ba40c6..84b8908 100644
--- a/test/tint/builtins/gen/var/dot/8e40f1.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/dot/8e40f1.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,49 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct VertexOutput {
+  float4 pos;
+  float16_t prevent_dce;
+};
+
+struct vertex_main_outputs {
+  nointerpolation float16_t VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+float16_t dot_8e40f1() {
+  vector<float16_t, 3> arg_0 = (float16_t(1.0h)).xxx;
+  vector<float16_t, 3> arg_1 = (float16_t(1.0h)).xxx;
+  float16_t res = dot(arg_0, arg_1);
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store<float16_t>(0u, dot_8e40f1());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store<float16_t>(0u, dot_8e40f1());
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = dot_8e40f1();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
+FXC validation failure:
+c:\src\dawn\Shader@0x000002029CD917F0(3,3-11): error X3000: unrecognized identifier 'float16_t'
+
diff --git a/test/tint/builtins/gen/var/dot/97c7ee.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/dot/97c7ee.wgsl.expected.ir.dxc.hlsl
index 0ba40c6..020649c 100644
--- a/test/tint/builtins/gen/var/dot/97c7ee.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/dot/97c7ee.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,44 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  uint prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation uint VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+uint dot_97c7ee() {
+  uint2 arg_0 = (1u).xx;
+  uint2 arg_1 = (1u).xx;
+  uint res = dot(arg_0, arg_1);
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store(0u, dot_97c7ee());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store(0u, dot_97c7ee());
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = dot_97c7ee();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
diff --git a/test/tint/builtins/gen/var/dot/97c7ee.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/dot/97c7ee.wgsl.expected.ir.fxc.hlsl
index 0ba40c6..020649c 100644
--- a/test/tint/builtins/gen/var/dot/97c7ee.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/dot/97c7ee.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,44 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  uint prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation uint VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+uint dot_97c7ee() {
+  uint2 arg_0 = (1u).xx;
+  uint2 arg_1 = (1u).xx;
+  uint res = dot(arg_0, arg_1);
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store(0u, dot_97c7ee());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store(0u, dot_97c7ee());
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = dot_97c7ee();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
diff --git a/test/tint/builtins/gen/var/dot/ba4246.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/dot/ba4246.wgsl.expected.ir.dxc.hlsl
index 0ba40c6..96b73c8 100644
--- a/test/tint/builtins/gen/var/dot/ba4246.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/dot/ba4246.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,44 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  float prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation float VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+float dot_ba4246() {
+  float3 arg_0 = (1.0f).xxx;
+  float3 arg_1 = (1.0f).xxx;
+  float res = dot(arg_0, arg_1);
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store(0u, asuint(dot_ba4246()));
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store(0u, asuint(dot_ba4246()));
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = dot_ba4246();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
diff --git a/test/tint/builtins/gen/var/dot/ba4246.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/dot/ba4246.wgsl.expected.ir.fxc.hlsl
index 0ba40c6..96b73c8 100644
--- a/test/tint/builtins/gen/var/dot/ba4246.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/dot/ba4246.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,44 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  float prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation float VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+float dot_ba4246() {
+  float3 arg_0 = (1.0f).xxx;
+  float3 arg_1 = (1.0f).xxx;
+  float res = dot(arg_0, arg_1);
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store(0u, asuint(dot_ba4246()));
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store(0u, asuint(dot_ba4246()));
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = dot_ba4246();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
diff --git a/test/tint/builtins/gen/var/dot/c11efe.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/dot/c11efe.wgsl.expected.ir.dxc.hlsl
index 0ba40c6..4ff25cb 100644
--- a/test/tint/builtins/gen/var/dot/c11efe.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/dot/c11efe.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,36 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+void dot_c11efe() {
+  int res = 3;
+}
+
+void fragment_main() {
+  dot_c11efe();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  dot_c11efe();
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  dot_c11efe();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  vertex_main_outputs v_2 = {v_1.pos};
+  return v_2;
+}
+
diff --git a/test/tint/builtins/gen/var/dot/c11efe.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/dot/c11efe.wgsl.expected.ir.fxc.hlsl
index 0ba40c6..4ff25cb 100644
--- a/test/tint/builtins/gen/var/dot/c11efe.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/dot/c11efe.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,36 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+void dot_c11efe() {
+  int res = 3;
+}
+
+void fragment_main() {
+  dot_c11efe();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  dot_c11efe();
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  dot_c11efe();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  vertex_main_outputs v_2 = {v_1.pos};
+  return v_2;
+}
+
diff --git a/test/tint/builtins/gen/var/dot/cd5a04.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/dot/cd5a04.wgsl.expected.ir.dxc.hlsl
index 0ba40c6..92f42c7 100644
--- a/test/tint/builtins/gen/var/dot/cd5a04.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/dot/cd5a04.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,44 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  float16_t prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation float16_t VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+float16_t dot_cd5a04() {
+  vector<float16_t, 2> arg_0 = (float16_t(1.0h)).xx;
+  vector<float16_t, 2> arg_1 = (float16_t(1.0h)).xx;
+  float16_t res = dot(arg_0, arg_1);
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store<float16_t>(0u, dot_cd5a04());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store<float16_t>(0u, dot_cd5a04());
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = dot_cd5a04();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
diff --git a/test/tint/builtins/gen/var/dot/cd5a04.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/dot/cd5a04.wgsl.expected.ir.fxc.hlsl
index 0ba40c6..431a313 100644
--- a/test/tint/builtins/gen/var/dot/cd5a04.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/dot/cd5a04.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,49 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct VertexOutput {
+  float4 pos;
+  float16_t prevent_dce;
+};
+
+struct vertex_main_outputs {
+  nointerpolation float16_t VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+float16_t dot_cd5a04() {
+  vector<float16_t, 2> arg_0 = (float16_t(1.0h)).xx;
+  vector<float16_t, 2> arg_1 = (float16_t(1.0h)).xx;
+  float16_t res = dot(arg_0, arg_1);
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store<float16_t>(0u, dot_cd5a04());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store<float16_t>(0u, dot_cd5a04());
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = dot_cd5a04();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
+FXC validation failure:
+c:\src\dawn\Shader@0x000001EF4B443B60(3,3-11): error X3000: unrecognized identifier 'float16_t'
+
diff --git a/test/tint/builtins/gen/var/dot/d0d179.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/dot/d0d179.wgsl.expected.ir.dxc.hlsl
index 0ba40c6..c4f6054 100644
--- a/test/tint/builtins/gen/var/dot/d0d179.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/dot/d0d179.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,44 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  float16_t prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation float16_t VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+float16_t dot_d0d179() {
+  vector<float16_t, 4> arg_0 = (float16_t(1.0h)).xxxx;
+  vector<float16_t, 4> arg_1 = (float16_t(1.0h)).xxxx;
+  float16_t res = dot(arg_0, arg_1);
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store<float16_t>(0u, dot_d0d179());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store<float16_t>(0u, dot_d0d179());
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = dot_d0d179();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
diff --git a/test/tint/builtins/gen/var/dot/d0d179.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/dot/d0d179.wgsl.expected.ir.fxc.hlsl
index 0ba40c6..799b26c 100644
--- a/test/tint/builtins/gen/var/dot/d0d179.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/dot/d0d179.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,49 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct VertexOutput {
+  float4 pos;
+  float16_t prevent_dce;
+};
+
+struct vertex_main_outputs {
+  nointerpolation float16_t VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+float16_t dot_d0d179() {
+  vector<float16_t, 4> arg_0 = (float16_t(1.0h)).xxxx;
+  vector<float16_t, 4> arg_1 = (float16_t(1.0h)).xxxx;
+  float16_t res = dot(arg_0, arg_1);
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store<float16_t>(0u, dot_d0d179());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store<float16_t>(0u, dot_d0d179());
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = dot_d0d179();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
+FXC validation failure:
+c:\src\dawn\Shader@0x000001C3BECFF2C0(3,3-11): error X3000: unrecognized identifier 'float16_t'
+
diff --git a/test/tint/builtins/gen/var/dot/e994c7.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/dot/e994c7.wgsl.expected.ir.dxc.hlsl
index 0ba40c6..d73f8f5 100644
--- a/test/tint/builtins/gen/var/dot/e994c7.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/dot/e994c7.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,44 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  uint prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation uint VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+uint dot_e994c7() {
+  uint4 arg_0 = (1u).xxxx;
+  uint4 arg_1 = (1u).xxxx;
+  uint res = dot(arg_0, arg_1);
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store(0u, dot_e994c7());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store(0u, dot_e994c7());
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = dot_e994c7();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
diff --git a/test/tint/builtins/gen/var/dot/e994c7.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/dot/e994c7.wgsl.expected.ir.fxc.hlsl
index 0ba40c6..d73f8f5 100644
--- a/test/tint/builtins/gen/var/dot/e994c7.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/dot/e994c7.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,44 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  uint prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation uint VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+uint dot_e994c7() {
+  uint4 arg_0 = (1u).xxxx;
+  uint4 arg_1 = (1u).xxxx;
+  uint res = dot(arg_0, arg_1);
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store(0u, dot_e994c7());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store(0u, dot_e994c7());
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = dot_e994c7();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
diff --git a/test/tint/builtins/gen/var/dot/eb9fbf.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/dot/eb9fbf.wgsl.expected.ir.dxc.hlsl
index 0ba40c6..3666031 100644
--- a/test/tint/builtins/gen/var/dot/eb9fbf.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/dot/eb9fbf.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,36 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+void dot_eb9fbf() {
+  int res = 4;
+}
+
+void fragment_main() {
+  dot_eb9fbf();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  dot_eb9fbf();
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  dot_eb9fbf();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  vertex_main_outputs v_2 = {v_1.pos};
+  return v_2;
+}
+
diff --git a/test/tint/builtins/gen/var/dot/eb9fbf.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/dot/eb9fbf.wgsl.expected.ir.fxc.hlsl
index 0ba40c6..3666031 100644
--- a/test/tint/builtins/gen/var/dot/eb9fbf.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/dot/eb9fbf.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,36 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+void dot_eb9fbf() {
+  int res = 4;
+}
+
+void fragment_main() {
+  dot_eb9fbf();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  dot_eb9fbf();
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  dot_eb9fbf();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  vertex_main_outputs v_2 = {v_1.pos};
+  return v_2;
+}
+
diff --git a/test/tint/builtins/gen/var/dot/ef6b1d.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/dot/ef6b1d.wgsl.expected.ir.dxc.hlsl
index 0ba40c6..dad935c 100644
--- a/test/tint/builtins/gen/var/dot/ef6b1d.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/dot/ef6b1d.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,44 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  int prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation int VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+int dot_ef6b1d() {
+  int4 arg_0 = (1).xxxx;
+  int4 arg_1 = (1).xxxx;
+  int res = dot(arg_0, arg_1);
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store(0u, asuint(dot_ef6b1d()));
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store(0u, asuint(dot_ef6b1d()));
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = dot_ef6b1d();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
diff --git a/test/tint/builtins/gen/var/dot/ef6b1d.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/dot/ef6b1d.wgsl.expected.ir.fxc.hlsl
index 0ba40c6..dad935c 100644
--- a/test/tint/builtins/gen/var/dot/ef6b1d.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/dot/ef6b1d.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,44 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  int prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation int VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+int dot_ef6b1d() {
+  int4 arg_0 = (1).xxxx;
+  int4 arg_1 = (1).xxxx;
+  int res = dot(arg_0, arg_1);
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store(0u, asuint(dot_ef6b1d()));
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store(0u, asuint(dot_ef6b1d()));
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = dot_ef6b1d();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
diff --git a/test/tint/builtins/gen/var/dot/f1312c.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/dot/f1312c.wgsl.expected.ir.dxc.hlsl
index 0ba40c6..25232ac 100644
--- a/test/tint/builtins/gen/var/dot/f1312c.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/dot/f1312c.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,44 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  int prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation int VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+int dot_f1312c() {
+  int3 arg_0 = (1).xxx;
+  int3 arg_1 = (1).xxx;
+  int res = dot(arg_0, arg_1);
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store(0u, asuint(dot_f1312c()));
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store(0u, asuint(dot_f1312c()));
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = dot_f1312c();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
diff --git a/test/tint/builtins/gen/var/dot/f1312c.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/dot/f1312c.wgsl.expected.ir.fxc.hlsl
index 0ba40c6..25232ac 100644
--- a/test/tint/builtins/gen/var/dot/f1312c.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/dot/f1312c.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,44 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  int prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation int VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+int dot_f1312c() {
+  int3 arg_0 = (1).xxx;
+  int3 arg_1 = (1).xxx;
+  int res = dot(arg_0, arg_1);
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store(0u, asuint(dot_f1312c()));
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store(0u, asuint(dot_f1312c()));
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = dot_f1312c();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
diff --git a/test/tint/builtins/gen/var/dot/fc5f7c.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/dot/fc5f7c.wgsl.expected.ir.dxc.hlsl
index 0ba40c6..d38e2bc 100644
--- a/test/tint/builtins/gen/var/dot/fc5f7c.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/dot/fc5f7c.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,44 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  int prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation int VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+int dot_fc5f7c() {
+  int2 arg_0 = (1).xx;
+  int2 arg_1 = (1).xx;
+  int res = dot(arg_0, arg_1);
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store(0u, asuint(dot_fc5f7c()));
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store(0u, asuint(dot_fc5f7c()));
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = dot_fc5f7c();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
diff --git a/test/tint/builtins/gen/var/dot/fc5f7c.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/dot/fc5f7c.wgsl.expected.ir.fxc.hlsl
index 0ba40c6..d38e2bc 100644
--- a/test/tint/builtins/gen/var/dot/fc5f7c.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/dot/fc5f7c.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,44 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  int prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation int VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+int dot_fc5f7c() {
+  int2 arg_0 = (1).xx;
+  int2 arg_1 = (1).xx;
+  int res = dot(arg_0, arg_1);
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store(0u, asuint(dot_fc5f7c()));
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store(0u, asuint(dot_fc5f7c()));
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = dot_fc5f7c();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
diff --git a/test/tint/builtins/gen/var/dot4I8Packed/881e62.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/dot4I8Packed/881e62.wgsl.expected.ir.dxc.hlsl
index 1cbfe5d..02d9170 100644
--- a/test/tint/builtins/gen/var/dot4I8Packed/881e62.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/dot4I8Packed/881e62.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,45 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  int prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: dot4I8Packed
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation int VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+int dot4I8Packed_881e62() {
+  uint arg_0 = 1u;
+  uint arg_1 = 1u;
+  int accumulator = 0;
+  int res = dot4add_i8packed(arg_0, arg_1, accumulator);
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store(0u, asuint(dot4I8Packed_881e62()));
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store(0u, asuint(dot4I8Packed_881e62()));
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = dot4I8Packed_881e62();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
diff --git a/test/tint/builtins/gen/var/dot4I8Packed/881e62.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/dot4I8Packed/881e62.wgsl.expected.ir.fxc.hlsl
index 1cbfe5d..4f4dc6e 100644
--- a/test/tint/builtins/gen/var/dot4I8Packed/881e62.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/dot4I8Packed/881e62.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,51 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  int prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: dot4I8Packed
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation int VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+int dot4I8Packed_881e62() {
+  uint arg_0 = 1u;
+  uint arg_1 = 1u;
+  uint v = arg_0;
+  uint v_1 = arg_1;
+  uint4 v_2 = uint4(24u, 16u, 8u, 0u);
+  int4 v_3 = asint((uint4((v).xxxx) << v_2));
+  int4 v_4 = (v_3 >> uint4((24u).xxxx));
+  uint4 v_5 = uint4(24u, 16u, 8u, 0u);
+  int4 v_6 = asint((uint4((v_1).xxxx) << v_5));
+  int res = dot(v_4, (v_6 >> uint4((24u).xxxx)));
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store(0u, asuint(dot4I8Packed_881e62()));
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store(0u, asuint(dot4I8Packed_881e62()));
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = dot4I8Packed_881e62();
+  VertexOutput v_7 = tint_symbol;
+  return v_7;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_8 = vertex_main_inner();
+  VertexOutput v_9 = v_8;
+  VertexOutput v_10 = v_8;
+  vertex_main_outputs v_11 = {v_10.prevent_dce, v_9.pos};
+  return v_11;
+}
+
diff --git a/test/tint/builtins/gen/var/dot4U8Packed/fbed7b.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/dot4U8Packed/fbed7b.wgsl.expected.ir.dxc.hlsl
index aa9b5cc..f79517f 100644
--- a/test/tint/builtins/gen/var/dot4U8Packed/fbed7b.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/dot4U8Packed/fbed7b.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,45 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  uint prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: dot4U8Packed
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation uint VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+uint dot4U8Packed_fbed7b() {
+  uint arg_0 = 1u;
+  uint arg_1 = 1u;
+  uint accumulator = 0u;
+  uint res = dot4add_u8packed(arg_0, arg_1, accumulator);
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store(0u, dot4U8Packed_fbed7b());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store(0u, dot4U8Packed_fbed7b());
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = dot4U8Packed_fbed7b();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
diff --git a/test/tint/builtins/gen/var/dot4U8Packed/fbed7b.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/dot4U8Packed/fbed7b.wgsl.expected.ir.fxc.hlsl
index aa9b5cc..bccc7c9 100644
--- a/test/tint/builtins/gen/var/dot4U8Packed/fbed7b.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/dot4U8Packed/fbed7b.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,51 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  uint prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: dot4U8Packed
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation uint VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+uint dot4U8Packed_fbed7b() {
+  uint arg_0 = 1u;
+  uint arg_1 = 1u;
+  uint v = arg_0;
+  uint v_1 = arg_1;
+  uint4 v_2 = uint4(0u, 8u, 16u, 24u);
+  uint4 v_3 = (uint4((v).xxxx) >> v_2);
+  uint4 v_4 = (v_3 & uint4((255u).xxxx));
+  uint4 v_5 = uint4(0u, 8u, 16u, 24u);
+  uint4 v_6 = (uint4((v_1).xxxx) >> v_5);
+  uint res = dot(v_4, (v_6 & uint4((255u).xxxx)));
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store(0u, dot4U8Packed_fbed7b());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store(0u, dot4U8Packed_fbed7b());
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = dot4U8Packed_fbed7b();
+  VertexOutput v_7 = tint_symbol;
+  return v_7;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_8 = vertex_main_inner();
+  VertexOutput v_9 = v_8;
+  VertexOutput v_10 = v_8;
+  vertex_main_outputs v_11 = {v_10.prevent_dce, v_9.pos};
+  return v_11;
+}
+
diff --git a/test/tint/builtins/gen/var/dpdx/0763f7.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/dpdx/0763f7.wgsl.expected.ir.dxc.hlsl
index 9283bfd..30807fd 100644
--- a/test/tint/builtins/gen/var/dpdx/0763f7.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/dpdx/0763f7.wgsl.expected.ir.dxc.hlsl
@@ -1,5 +1,5 @@
-SKIP: FAILED
 
+RWByteAddressBuffer prevent_dce : register(u0);
 float3 dpdx_0763f7() {
   float3 arg_0 = (1.0f).xxx;
   float3 res = ddx(arg_0);
@@ -7,11 +7,6 @@
 }
 
 void fragment_main() {
-  prevent_dce = dpdx_0763f7();
+  prevent_dce.Store3(0u, asuint(dpdx_0763f7()));
 }
 
-DXC validation failure:
-hlsl.hlsl:8:3: error: use of undeclared identifier 'prevent_dce'
-  prevent_dce = dpdx_0763f7();
-  ^
-
diff --git a/test/tint/builtins/gen/var/dpdx/0763f7.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/dpdx/0763f7.wgsl.expected.ir.fxc.hlsl
index 392e0bf..30807fd 100644
--- a/test/tint/builtins/gen/var/dpdx/0763f7.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/dpdx/0763f7.wgsl.expected.ir.fxc.hlsl
@@ -1,5 +1,5 @@
-SKIP: FAILED
 
+RWByteAddressBuffer prevent_dce : register(u0);
 float3 dpdx_0763f7() {
   float3 arg_0 = (1.0f).xxx;
   float3 res = ddx(arg_0);
@@ -7,6 +7,6 @@
 }
 
 void fragment_main() {
-  prevent_dce = dpdx_0763f7();
+  prevent_dce.Store3(0u, asuint(dpdx_0763f7()));
 }
 
diff --git a/test/tint/builtins/gen/var/dpdx/99edb1.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/dpdx/99edb1.wgsl.expected.ir.dxc.hlsl
index a13e2d7..1cf06a0 100644
--- a/test/tint/builtins/gen/var/dpdx/99edb1.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/dpdx/99edb1.wgsl.expected.ir.dxc.hlsl
@@ -1,5 +1,5 @@
-SKIP: FAILED
 
+RWByteAddressBuffer prevent_dce : register(u0);
 float2 dpdx_99edb1() {
   float2 arg_0 = (1.0f).xx;
   float2 res = ddx(arg_0);
@@ -7,11 +7,6 @@
 }
 
 void fragment_main() {
-  prevent_dce = dpdx_99edb1();
+  prevent_dce.Store2(0u, asuint(dpdx_99edb1()));
 }
 
-DXC validation failure:
-hlsl.hlsl:8:3: error: use of undeclared identifier 'prevent_dce'
-  prevent_dce = dpdx_99edb1();
-  ^
-
diff --git a/test/tint/builtins/gen/var/dpdx/99edb1.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/dpdx/99edb1.wgsl.expected.ir.fxc.hlsl
index 0fa9ba5..1cf06a0 100644
--- a/test/tint/builtins/gen/var/dpdx/99edb1.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/dpdx/99edb1.wgsl.expected.ir.fxc.hlsl
@@ -1,5 +1,5 @@
-SKIP: FAILED
 
+RWByteAddressBuffer prevent_dce : register(u0);
 float2 dpdx_99edb1() {
   float2 arg_0 = (1.0f).xx;
   float2 res = ddx(arg_0);
@@ -7,6 +7,6 @@
 }
 
 void fragment_main() {
-  prevent_dce = dpdx_99edb1();
+  prevent_dce.Store2(0u, asuint(dpdx_99edb1()));
 }
 
diff --git a/test/tint/builtins/gen/var/dpdx/c487fa.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/dpdx/c487fa.wgsl.expected.ir.dxc.hlsl
index b0a17f7..2b30fdf 100644
--- a/test/tint/builtins/gen/var/dpdx/c487fa.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/dpdx/c487fa.wgsl.expected.ir.dxc.hlsl
@@ -1,5 +1,5 @@
-SKIP: FAILED
 
+RWByteAddressBuffer prevent_dce : register(u0);
 float4 dpdx_c487fa() {
   float4 arg_0 = (1.0f).xxxx;
   float4 res = ddx(arg_0);
@@ -7,11 +7,6 @@
 }
 
 void fragment_main() {
-  prevent_dce = dpdx_c487fa();
+  prevent_dce.Store4(0u, asuint(dpdx_c487fa()));
 }
 
-DXC validation failure:
-hlsl.hlsl:8:3: error: use of undeclared identifier 'prevent_dce'
-  prevent_dce = dpdx_c487fa();
-  ^
-
diff --git a/test/tint/builtins/gen/var/dpdx/c487fa.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/dpdx/c487fa.wgsl.expected.ir.fxc.hlsl
index fccb1a8..2b30fdf 100644
--- a/test/tint/builtins/gen/var/dpdx/c487fa.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/dpdx/c487fa.wgsl.expected.ir.fxc.hlsl
@@ -1,5 +1,5 @@
-SKIP: FAILED
 
+RWByteAddressBuffer prevent_dce : register(u0);
 float4 dpdx_c487fa() {
   float4 arg_0 = (1.0f).xxxx;
   float4 res = ddx(arg_0);
@@ -7,6 +7,6 @@
 }
 
 void fragment_main() {
-  prevent_dce = dpdx_c487fa();
+  prevent_dce.Store4(0u, asuint(dpdx_c487fa()));
 }
 
diff --git a/test/tint/builtins/gen/var/dpdx/e263de.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/dpdx/e263de.wgsl.expected.ir.dxc.hlsl
index 8913f00..b733501 100644
--- a/test/tint/builtins/gen/var/dpdx/e263de.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/dpdx/e263de.wgsl.expected.ir.dxc.hlsl
@@ -1,5 +1,5 @@
-SKIP: FAILED
 
+RWByteAddressBuffer prevent_dce : register(u0);
 float dpdx_e263de() {
   float arg_0 = 1.0f;
   float res = ddx(arg_0);
@@ -7,11 +7,6 @@
 }
 
 void fragment_main() {
-  prevent_dce = dpdx_e263de();
+  prevent_dce.Store(0u, asuint(dpdx_e263de()));
 }
 
-DXC validation failure:
-hlsl.hlsl:8:3: error: use of undeclared identifier 'prevent_dce'
-  prevent_dce = dpdx_e263de();
-  ^
-
diff --git a/test/tint/builtins/gen/var/dpdx/e263de.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/dpdx/e263de.wgsl.expected.ir.fxc.hlsl
index 8de3cce..b733501 100644
--- a/test/tint/builtins/gen/var/dpdx/e263de.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/dpdx/e263de.wgsl.expected.ir.fxc.hlsl
@@ -1,5 +1,5 @@
-SKIP: FAILED
 
+RWByteAddressBuffer prevent_dce : register(u0);
 float dpdx_e263de() {
   float arg_0 = 1.0f;
   float res = ddx(arg_0);
@@ -7,6 +7,6 @@
 }
 
 void fragment_main() {
-  prevent_dce = dpdx_e263de();
+  prevent_dce.Store(0u, asuint(dpdx_e263de()));
 }
 
diff --git a/test/tint/builtins/gen/var/dpdxCoarse/029152.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/dpdxCoarse/029152.wgsl.expected.ir.dxc.hlsl
index 57c65ad..491e13b 100644
--- a/test/tint/builtins/gen/var/dpdxCoarse/029152.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/dpdxCoarse/029152.wgsl.expected.ir.dxc.hlsl
@@ -1,5 +1,5 @@
-SKIP: FAILED
 
+RWByteAddressBuffer prevent_dce : register(u0);
 float dpdxCoarse_029152() {
   float arg_0 = 1.0f;
   float res = ddx_coarse(arg_0);
@@ -7,11 +7,6 @@
 }
 
 void fragment_main() {
-  prevent_dce = dpdxCoarse_029152();
+  prevent_dce.Store(0u, asuint(dpdxCoarse_029152()));
 }
 
-DXC validation failure:
-hlsl.hlsl:8:3: error: use of undeclared identifier 'prevent_dce'
-  prevent_dce = dpdxCoarse_029152();
-  ^
-
diff --git a/test/tint/builtins/gen/var/dpdxCoarse/029152.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/dpdxCoarse/029152.wgsl.expected.ir.fxc.hlsl
index bea7774..491e13b 100644
--- a/test/tint/builtins/gen/var/dpdxCoarse/029152.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/dpdxCoarse/029152.wgsl.expected.ir.fxc.hlsl
@@ -1,5 +1,5 @@
-SKIP: FAILED
 
+RWByteAddressBuffer prevent_dce : register(u0);
 float dpdxCoarse_029152() {
   float arg_0 = 1.0f;
   float res = ddx_coarse(arg_0);
@@ -7,6 +7,6 @@
 }
 
 void fragment_main() {
-  prevent_dce = dpdxCoarse_029152();
+  prevent_dce.Store(0u, asuint(dpdxCoarse_029152()));
 }
 
diff --git a/test/tint/builtins/gen/var/dpdxCoarse/9581cf.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/dpdxCoarse/9581cf.wgsl.expected.ir.dxc.hlsl
index d5c0ff6..a60111a 100644
--- a/test/tint/builtins/gen/var/dpdxCoarse/9581cf.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/dpdxCoarse/9581cf.wgsl.expected.ir.dxc.hlsl
@@ -1,5 +1,5 @@
-SKIP: FAILED
 
+RWByteAddressBuffer prevent_dce : register(u0);
 float2 dpdxCoarse_9581cf() {
   float2 arg_0 = (1.0f).xx;
   float2 res = ddx_coarse(arg_0);
@@ -7,11 +7,6 @@
 }
 
 void fragment_main() {
-  prevent_dce = dpdxCoarse_9581cf();
+  prevent_dce.Store2(0u, asuint(dpdxCoarse_9581cf()));
 }
 
-DXC validation failure:
-hlsl.hlsl:8:3: error: use of undeclared identifier 'prevent_dce'
-  prevent_dce = dpdxCoarse_9581cf();
-  ^
-
diff --git a/test/tint/builtins/gen/var/dpdxCoarse/9581cf.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/dpdxCoarse/9581cf.wgsl.expected.ir.fxc.hlsl
index 3cb3908..a60111a 100644
--- a/test/tint/builtins/gen/var/dpdxCoarse/9581cf.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/dpdxCoarse/9581cf.wgsl.expected.ir.fxc.hlsl
@@ -1,5 +1,5 @@
-SKIP: FAILED
 
+RWByteAddressBuffer prevent_dce : register(u0);
 float2 dpdxCoarse_9581cf() {
   float2 arg_0 = (1.0f).xx;
   float2 res = ddx_coarse(arg_0);
@@ -7,6 +7,6 @@
 }
 
 void fragment_main() {
-  prevent_dce = dpdxCoarse_9581cf();
+  prevent_dce.Store2(0u, asuint(dpdxCoarse_9581cf()));
 }
 
diff --git a/test/tint/builtins/gen/var/dpdxCoarse/c28641.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/dpdxCoarse/c28641.wgsl.expected.ir.dxc.hlsl
index 94ccaad..69db48e 100644
--- a/test/tint/builtins/gen/var/dpdxCoarse/c28641.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/dpdxCoarse/c28641.wgsl.expected.ir.dxc.hlsl
@@ -1,5 +1,5 @@
-SKIP: FAILED
 
+RWByteAddressBuffer prevent_dce : register(u0);
 float4 dpdxCoarse_c28641() {
   float4 arg_0 = (1.0f).xxxx;
   float4 res = ddx_coarse(arg_0);
@@ -7,11 +7,6 @@
 }
 
 void fragment_main() {
-  prevent_dce = dpdxCoarse_c28641();
+  prevent_dce.Store4(0u, asuint(dpdxCoarse_c28641()));
 }
 
-DXC validation failure:
-hlsl.hlsl:8:3: error: use of undeclared identifier 'prevent_dce'
-  prevent_dce = dpdxCoarse_c28641();
-  ^
-
diff --git a/test/tint/builtins/gen/var/dpdxCoarse/c28641.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/dpdxCoarse/c28641.wgsl.expected.ir.fxc.hlsl
index 9be40cd..69db48e 100644
--- a/test/tint/builtins/gen/var/dpdxCoarse/c28641.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/dpdxCoarse/c28641.wgsl.expected.ir.fxc.hlsl
@@ -1,5 +1,5 @@
-SKIP: FAILED
 
+RWByteAddressBuffer prevent_dce : register(u0);
 float4 dpdxCoarse_c28641() {
   float4 arg_0 = (1.0f).xxxx;
   float4 res = ddx_coarse(arg_0);
@@ -7,6 +7,6 @@
 }
 
 void fragment_main() {
-  prevent_dce = dpdxCoarse_c28641();
+  prevent_dce.Store4(0u, asuint(dpdxCoarse_c28641()));
 }
 
diff --git a/test/tint/builtins/gen/var/dpdxCoarse/f64d7b.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/dpdxCoarse/f64d7b.wgsl.expected.ir.dxc.hlsl
index 8879efd..4829524 100644
--- a/test/tint/builtins/gen/var/dpdxCoarse/f64d7b.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/dpdxCoarse/f64d7b.wgsl.expected.ir.dxc.hlsl
@@ -1,5 +1,5 @@
-SKIP: FAILED
 
+RWByteAddressBuffer prevent_dce : register(u0);
 float3 dpdxCoarse_f64d7b() {
   float3 arg_0 = (1.0f).xxx;
   float3 res = ddx_coarse(arg_0);
@@ -7,11 +7,6 @@
 }
 
 void fragment_main() {
-  prevent_dce = dpdxCoarse_f64d7b();
+  prevent_dce.Store3(0u, asuint(dpdxCoarse_f64d7b()));
 }
 
-DXC validation failure:
-hlsl.hlsl:8:3: error: use of undeclared identifier 'prevent_dce'
-  prevent_dce = dpdxCoarse_f64d7b();
-  ^
-
diff --git a/test/tint/builtins/gen/var/dpdxCoarse/f64d7b.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/dpdxCoarse/f64d7b.wgsl.expected.ir.fxc.hlsl
index 58491cf..4829524 100644
--- a/test/tint/builtins/gen/var/dpdxCoarse/f64d7b.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/dpdxCoarse/f64d7b.wgsl.expected.ir.fxc.hlsl
@@ -1,5 +1,5 @@
-SKIP: FAILED
 
+RWByteAddressBuffer prevent_dce : register(u0);
 float3 dpdxCoarse_f64d7b() {
   float3 arg_0 = (1.0f).xxx;
   float3 res = ddx_coarse(arg_0);
@@ -7,6 +7,6 @@
 }
 
 void fragment_main() {
-  prevent_dce = dpdxCoarse_f64d7b();
+  prevent_dce.Store3(0u, asuint(dpdxCoarse_f64d7b()));
 }
 
diff --git a/test/tint/builtins/gen/var/dpdxFine/8c5069.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/dpdxFine/8c5069.wgsl.expected.ir.dxc.hlsl
index 08b4f60..0dd457c 100644
--- a/test/tint/builtins/gen/var/dpdxFine/8c5069.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/dpdxFine/8c5069.wgsl.expected.ir.dxc.hlsl
@@ -1,5 +1,5 @@
-SKIP: FAILED
 
+RWByteAddressBuffer prevent_dce : register(u0);
 float4 dpdxFine_8c5069() {
   float4 arg_0 = (1.0f).xxxx;
   float4 res = ddx_fine(arg_0);
@@ -7,11 +7,6 @@
 }
 
 void fragment_main() {
-  prevent_dce = dpdxFine_8c5069();
+  prevent_dce.Store4(0u, asuint(dpdxFine_8c5069()));
 }
 
-DXC validation failure:
-hlsl.hlsl:8:3: error: use of undeclared identifier 'prevent_dce'
-  prevent_dce = dpdxFine_8c5069();
-  ^
-
diff --git a/test/tint/builtins/gen/var/dpdxFine/8c5069.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/dpdxFine/8c5069.wgsl.expected.ir.fxc.hlsl
index 21400d0..0dd457c 100644
--- a/test/tint/builtins/gen/var/dpdxFine/8c5069.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/dpdxFine/8c5069.wgsl.expected.ir.fxc.hlsl
@@ -1,5 +1,5 @@
-SKIP: FAILED
 
+RWByteAddressBuffer prevent_dce : register(u0);
 float4 dpdxFine_8c5069() {
   float4 arg_0 = (1.0f).xxxx;
   float4 res = ddx_fine(arg_0);
@@ -7,6 +7,6 @@
 }
 
 void fragment_main() {
-  prevent_dce = dpdxFine_8c5069();
+  prevent_dce.Store4(0u, asuint(dpdxFine_8c5069()));
 }
 
diff --git a/test/tint/builtins/gen/var/dpdxFine/9631de.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/dpdxFine/9631de.wgsl.expected.ir.dxc.hlsl
index 98e46ab..58edbcb 100644
--- a/test/tint/builtins/gen/var/dpdxFine/9631de.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/dpdxFine/9631de.wgsl.expected.ir.dxc.hlsl
@@ -1,5 +1,5 @@
-SKIP: FAILED
 
+RWByteAddressBuffer prevent_dce : register(u0);
 float2 dpdxFine_9631de() {
   float2 arg_0 = (1.0f).xx;
   float2 res = ddx_fine(arg_0);
@@ -7,11 +7,6 @@
 }
 
 void fragment_main() {
-  prevent_dce = dpdxFine_9631de();
+  prevent_dce.Store2(0u, asuint(dpdxFine_9631de()));
 }
 
-DXC validation failure:
-hlsl.hlsl:8:3: error: use of undeclared identifier 'prevent_dce'
-  prevent_dce = dpdxFine_9631de();
-  ^
-
diff --git a/test/tint/builtins/gen/var/dpdxFine/9631de.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/dpdxFine/9631de.wgsl.expected.ir.fxc.hlsl
index b01442d..58edbcb 100644
--- a/test/tint/builtins/gen/var/dpdxFine/9631de.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/dpdxFine/9631de.wgsl.expected.ir.fxc.hlsl
@@ -1,5 +1,5 @@
-SKIP: FAILED
 
+RWByteAddressBuffer prevent_dce : register(u0);
 float2 dpdxFine_9631de() {
   float2 arg_0 = (1.0f).xx;
   float2 res = ddx_fine(arg_0);
@@ -7,6 +7,6 @@
 }
 
 void fragment_main() {
-  prevent_dce = dpdxFine_9631de();
+  prevent_dce.Store2(0u, asuint(dpdxFine_9631de()));
 }
 
diff --git a/test/tint/builtins/gen/var/dpdxFine/f401a2.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/dpdxFine/f401a2.wgsl.expected.ir.dxc.hlsl
index 6fd2a4b..739bd23 100644
--- a/test/tint/builtins/gen/var/dpdxFine/f401a2.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/dpdxFine/f401a2.wgsl.expected.ir.dxc.hlsl
@@ -1,5 +1,5 @@
-SKIP: FAILED
 
+RWByteAddressBuffer prevent_dce : register(u0);
 float dpdxFine_f401a2() {
   float arg_0 = 1.0f;
   float res = ddx_fine(arg_0);
@@ -7,11 +7,6 @@
 }
 
 void fragment_main() {
-  prevent_dce = dpdxFine_f401a2();
+  prevent_dce.Store(0u, asuint(dpdxFine_f401a2()));
 }
 
-DXC validation failure:
-hlsl.hlsl:8:3: error: use of undeclared identifier 'prevent_dce'
-  prevent_dce = dpdxFine_f401a2();
-  ^
-
diff --git a/test/tint/builtins/gen/var/dpdxFine/f401a2.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/dpdxFine/f401a2.wgsl.expected.ir.fxc.hlsl
index 1dabce0..739bd23 100644
--- a/test/tint/builtins/gen/var/dpdxFine/f401a2.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/dpdxFine/f401a2.wgsl.expected.ir.fxc.hlsl
@@ -1,5 +1,5 @@
-SKIP: FAILED
 
+RWByteAddressBuffer prevent_dce : register(u0);
 float dpdxFine_f401a2() {
   float arg_0 = 1.0f;
   float res = ddx_fine(arg_0);
@@ -7,6 +7,6 @@
 }
 
 void fragment_main() {
-  prevent_dce = dpdxFine_f401a2();
+  prevent_dce.Store(0u, asuint(dpdxFine_f401a2()));
 }
 
diff --git a/test/tint/builtins/gen/var/dpdxFine/f92fb6.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/dpdxFine/f92fb6.wgsl.expected.ir.dxc.hlsl
index a3d2b20..42d3ff5 100644
--- a/test/tint/builtins/gen/var/dpdxFine/f92fb6.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/dpdxFine/f92fb6.wgsl.expected.ir.dxc.hlsl
@@ -1,5 +1,5 @@
-SKIP: FAILED
 
+RWByteAddressBuffer prevent_dce : register(u0);
 float3 dpdxFine_f92fb6() {
   float3 arg_0 = (1.0f).xxx;
   float3 res = ddx_fine(arg_0);
@@ -7,11 +7,6 @@
 }
 
 void fragment_main() {
-  prevent_dce = dpdxFine_f92fb6();
+  prevent_dce.Store3(0u, asuint(dpdxFine_f92fb6()));
 }
 
-DXC validation failure:
-hlsl.hlsl:8:3: error: use of undeclared identifier 'prevent_dce'
-  prevent_dce = dpdxFine_f92fb6();
-  ^
-
diff --git a/test/tint/builtins/gen/var/dpdxFine/f92fb6.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/dpdxFine/f92fb6.wgsl.expected.ir.fxc.hlsl
index 25f608d..42d3ff5 100644
--- a/test/tint/builtins/gen/var/dpdxFine/f92fb6.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/dpdxFine/f92fb6.wgsl.expected.ir.fxc.hlsl
@@ -1,5 +1,5 @@
-SKIP: FAILED
 
+RWByteAddressBuffer prevent_dce : register(u0);
 float3 dpdxFine_f92fb6() {
   float3 arg_0 = (1.0f).xxx;
   float3 res = ddx_fine(arg_0);
@@ -7,6 +7,6 @@
 }
 
 void fragment_main() {
-  prevent_dce = dpdxFine_f92fb6();
+  prevent_dce.Store3(0u, asuint(dpdxFine_f92fb6()));
 }
 
diff --git a/test/tint/builtins/gen/var/dpdy/699a05.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/dpdy/699a05.wgsl.expected.ir.dxc.hlsl
index 9261b68..eab71e1 100644
--- a/test/tint/builtins/gen/var/dpdy/699a05.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/dpdy/699a05.wgsl.expected.ir.dxc.hlsl
@@ -1,5 +1,5 @@
-SKIP: FAILED
 
+RWByteAddressBuffer prevent_dce : register(u0);
 float4 dpdy_699a05() {
   float4 arg_0 = (1.0f).xxxx;
   float4 res = ddy(arg_0);
@@ -7,11 +7,6 @@
 }
 
 void fragment_main() {
-  prevent_dce = dpdy_699a05();
+  prevent_dce.Store4(0u, asuint(dpdy_699a05()));
 }
 
-DXC validation failure:
-hlsl.hlsl:8:3: error: use of undeclared identifier 'prevent_dce'
-  prevent_dce = dpdy_699a05();
-  ^
-
diff --git a/test/tint/builtins/gen/var/dpdy/699a05.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/dpdy/699a05.wgsl.expected.ir.fxc.hlsl
index 2750a0b..eab71e1 100644
--- a/test/tint/builtins/gen/var/dpdy/699a05.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/dpdy/699a05.wgsl.expected.ir.fxc.hlsl
@@ -1,5 +1,5 @@
-SKIP: FAILED
 
+RWByteAddressBuffer prevent_dce : register(u0);
 float4 dpdy_699a05() {
   float4 arg_0 = (1.0f).xxxx;
   float4 res = ddy(arg_0);
@@ -7,6 +7,6 @@
 }
 
 void fragment_main() {
-  prevent_dce = dpdy_699a05();
+  prevent_dce.Store4(0u, asuint(dpdy_699a05()));
 }
 
diff --git a/test/tint/builtins/gen/var/dpdy/7f8d84.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/dpdy/7f8d84.wgsl.expected.ir.dxc.hlsl
index 53b79d3..c2a1650 100644
--- a/test/tint/builtins/gen/var/dpdy/7f8d84.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/dpdy/7f8d84.wgsl.expected.ir.dxc.hlsl
@@ -1,5 +1,5 @@
-SKIP: FAILED
 
+RWByteAddressBuffer prevent_dce : register(u0);
 float dpdy_7f8d84() {
   float arg_0 = 1.0f;
   float res = ddy(arg_0);
@@ -7,11 +7,6 @@
 }
 
 void fragment_main() {
-  prevent_dce = dpdy_7f8d84();
+  prevent_dce.Store(0u, asuint(dpdy_7f8d84()));
 }
 
-DXC validation failure:
-hlsl.hlsl:8:3: error: use of undeclared identifier 'prevent_dce'
-  prevent_dce = dpdy_7f8d84();
-  ^
-
diff --git a/test/tint/builtins/gen/var/dpdy/7f8d84.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/dpdy/7f8d84.wgsl.expected.ir.fxc.hlsl
index 2c8f236..c2a1650 100644
--- a/test/tint/builtins/gen/var/dpdy/7f8d84.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/dpdy/7f8d84.wgsl.expected.ir.fxc.hlsl
@@ -1,5 +1,5 @@
-SKIP: FAILED
 
+RWByteAddressBuffer prevent_dce : register(u0);
 float dpdy_7f8d84() {
   float arg_0 = 1.0f;
   float res = ddy(arg_0);
@@ -7,6 +7,6 @@
 }
 
 void fragment_main() {
-  prevent_dce = dpdy_7f8d84();
+  prevent_dce.Store(0u, asuint(dpdy_7f8d84()));
 }
 
diff --git a/test/tint/builtins/gen/var/dpdy/a8b56e.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/dpdy/a8b56e.wgsl.expected.ir.dxc.hlsl
index 92e46bc..46552d1 100644
--- a/test/tint/builtins/gen/var/dpdy/a8b56e.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/dpdy/a8b56e.wgsl.expected.ir.dxc.hlsl
@@ -1,5 +1,5 @@
-SKIP: FAILED
 
+RWByteAddressBuffer prevent_dce : register(u0);
 float2 dpdy_a8b56e() {
   float2 arg_0 = (1.0f).xx;
   float2 res = ddy(arg_0);
@@ -7,11 +7,6 @@
 }
 
 void fragment_main() {
-  prevent_dce = dpdy_a8b56e();
+  prevent_dce.Store2(0u, asuint(dpdy_a8b56e()));
 }
 
-DXC validation failure:
-hlsl.hlsl:8:3: error: use of undeclared identifier 'prevent_dce'
-  prevent_dce = dpdy_a8b56e();
-  ^
-
diff --git a/test/tint/builtins/gen/var/dpdy/a8b56e.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/dpdy/a8b56e.wgsl.expected.ir.fxc.hlsl
index d73fd11..46552d1 100644
--- a/test/tint/builtins/gen/var/dpdy/a8b56e.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/dpdy/a8b56e.wgsl.expected.ir.fxc.hlsl
@@ -1,5 +1,5 @@
-SKIP: FAILED
 
+RWByteAddressBuffer prevent_dce : register(u0);
 float2 dpdy_a8b56e() {
   float2 arg_0 = (1.0f).xx;
   float2 res = ddy(arg_0);
@@ -7,6 +7,6 @@
 }
 
 void fragment_main() {
-  prevent_dce = dpdy_a8b56e();
+  prevent_dce.Store2(0u, asuint(dpdy_a8b56e()));
 }
 
diff --git a/test/tint/builtins/gen/var/dpdy/feb40f.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/dpdy/feb40f.wgsl.expected.ir.dxc.hlsl
index 350fe0a..c5a5e5f 100644
--- a/test/tint/builtins/gen/var/dpdy/feb40f.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/dpdy/feb40f.wgsl.expected.ir.dxc.hlsl
@@ -1,5 +1,5 @@
-SKIP: FAILED
 
+RWByteAddressBuffer prevent_dce : register(u0);
 float3 dpdy_feb40f() {
   float3 arg_0 = (1.0f).xxx;
   float3 res = ddy(arg_0);
@@ -7,11 +7,6 @@
 }
 
 void fragment_main() {
-  prevent_dce = dpdy_feb40f();
+  prevent_dce.Store3(0u, asuint(dpdy_feb40f()));
 }
 
-DXC validation failure:
-hlsl.hlsl:8:3: error: use of undeclared identifier 'prevent_dce'
-  prevent_dce = dpdy_feb40f();
-  ^
-
diff --git a/test/tint/builtins/gen/var/dpdy/feb40f.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/dpdy/feb40f.wgsl.expected.ir.fxc.hlsl
index f83c213..c5a5e5f 100644
--- a/test/tint/builtins/gen/var/dpdy/feb40f.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/dpdy/feb40f.wgsl.expected.ir.fxc.hlsl
@@ -1,5 +1,5 @@
-SKIP: FAILED
 
+RWByteAddressBuffer prevent_dce : register(u0);
 float3 dpdy_feb40f() {
   float3 arg_0 = (1.0f).xxx;
   float3 res = ddy(arg_0);
@@ -7,6 +7,6 @@
 }
 
 void fragment_main() {
-  prevent_dce = dpdy_feb40f();
+  prevent_dce.Store3(0u, asuint(dpdy_feb40f()));
 }
 
diff --git a/test/tint/builtins/gen/var/dpdyCoarse/3e1ab4.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/dpdyCoarse/3e1ab4.wgsl.expected.ir.dxc.hlsl
index e357d34..394251c9 100644
--- a/test/tint/builtins/gen/var/dpdyCoarse/3e1ab4.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/dpdyCoarse/3e1ab4.wgsl.expected.ir.dxc.hlsl
@@ -1,5 +1,5 @@
-SKIP: FAILED
 
+RWByteAddressBuffer prevent_dce : register(u0);
 float2 dpdyCoarse_3e1ab4() {
   float2 arg_0 = (1.0f).xx;
   float2 res = ddy_coarse(arg_0);
@@ -7,11 +7,6 @@
 }
 
 void fragment_main() {
-  prevent_dce = dpdyCoarse_3e1ab4();
+  prevent_dce.Store2(0u, asuint(dpdyCoarse_3e1ab4()));
 }
 
-DXC validation failure:
-hlsl.hlsl:8:3: error: use of undeclared identifier 'prevent_dce'
-  prevent_dce = dpdyCoarse_3e1ab4();
-  ^
-
diff --git a/test/tint/builtins/gen/var/dpdyCoarse/3e1ab4.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/dpdyCoarse/3e1ab4.wgsl.expected.ir.fxc.hlsl
index f76d295..394251c9 100644
--- a/test/tint/builtins/gen/var/dpdyCoarse/3e1ab4.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/dpdyCoarse/3e1ab4.wgsl.expected.ir.fxc.hlsl
@@ -1,5 +1,5 @@
-SKIP: FAILED
 
+RWByteAddressBuffer prevent_dce : register(u0);
 float2 dpdyCoarse_3e1ab4() {
   float2 arg_0 = (1.0f).xx;
   float2 res = ddy_coarse(arg_0);
@@ -7,6 +7,6 @@
 }
 
 void fragment_main() {
-  prevent_dce = dpdyCoarse_3e1ab4();
+  prevent_dce.Store2(0u, asuint(dpdyCoarse_3e1ab4()));
 }
 
diff --git a/test/tint/builtins/gen/var/dpdyCoarse/445d24.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/dpdyCoarse/445d24.wgsl.expected.ir.dxc.hlsl
index 5f94642..eebd111 100644
--- a/test/tint/builtins/gen/var/dpdyCoarse/445d24.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/dpdyCoarse/445d24.wgsl.expected.ir.dxc.hlsl
@@ -1,5 +1,5 @@
-SKIP: FAILED
 
+RWByteAddressBuffer prevent_dce : register(u0);
 float4 dpdyCoarse_445d24() {
   float4 arg_0 = (1.0f).xxxx;
   float4 res = ddy_coarse(arg_0);
@@ -7,11 +7,6 @@
 }
 
 void fragment_main() {
-  prevent_dce = dpdyCoarse_445d24();
+  prevent_dce.Store4(0u, asuint(dpdyCoarse_445d24()));
 }
 
-DXC validation failure:
-hlsl.hlsl:8:3: error: use of undeclared identifier 'prevent_dce'
-  prevent_dce = dpdyCoarse_445d24();
-  ^
-
diff --git a/test/tint/builtins/gen/var/dpdyCoarse/445d24.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/dpdyCoarse/445d24.wgsl.expected.ir.fxc.hlsl
index 90ba5a8..eebd111 100644
--- a/test/tint/builtins/gen/var/dpdyCoarse/445d24.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/dpdyCoarse/445d24.wgsl.expected.ir.fxc.hlsl
@@ -1,5 +1,5 @@
-SKIP: FAILED
 
+RWByteAddressBuffer prevent_dce : register(u0);
 float4 dpdyCoarse_445d24() {
   float4 arg_0 = (1.0f).xxxx;
   float4 res = ddy_coarse(arg_0);
@@ -7,6 +7,6 @@
 }
 
 void fragment_main() {
-  prevent_dce = dpdyCoarse_445d24();
+  prevent_dce.Store4(0u, asuint(dpdyCoarse_445d24()));
 }
 
diff --git a/test/tint/builtins/gen/var/dpdyCoarse/870a7e.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/dpdyCoarse/870a7e.wgsl.expected.ir.dxc.hlsl
index 615df98..3dacf49 100644
--- a/test/tint/builtins/gen/var/dpdyCoarse/870a7e.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/dpdyCoarse/870a7e.wgsl.expected.ir.dxc.hlsl
@@ -1,5 +1,5 @@
-SKIP: FAILED
 
+RWByteAddressBuffer prevent_dce : register(u0);
 float dpdyCoarse_870a7e() {
   float arg_0 = 1.0f;
   float res = ddy_coarse(arg_0);
@@ -7,11 +7,6 @@
 }
 
 void fragment_main() {
-  prevent_dce = dpdyCoarse_870a7e();
+  prevent_dce.Store(0u, asuint(dpdyCoarse_870a7e()));
 }
 
-DXC validation failure:
-hlsl.hlsl:8:3: error: use of undeclared identifier 'prevent_dce'
-  prevent_dce = dpdyCoarse_870a7e();
-  ^
-
diff --git a/test/tint/builtins/gen/var/dpdyCoarse/870a7e.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/dpdyCoarse/870a7e.wgsl.expected.ir.fxc.hlsl
index 202a5a5..3dacf49 100644
--- a/test/tint/builtins/gen/var/dpdyCoarse/870a7e.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/dpdyCoarse/870a7e.wgsl.expected.ir.fxc.hlsl
@@ -1,5 +1,5 @@
-SKIP: FAILED
 
+RWByteAddressBuffer prevent_dce : register(u0);
 float dpdyCoarse_870a7e() {
   float arg_0 = 1.0f;
   float res = ddy_coarse(arg_0);
@@ -7,6 +7,6 @@
 }
 
 void fragment_main() {
-  prevent_dce = dpdyCoarse_870a7e();
+  prevent_dce.Store(0u, asuint(dpdyCoarse_870a7e()));
 }
 
diff --git a/test/tint/builtins/gen/var/dpdyCoarse/ae1873.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/dpdyCoarse/ae1873.wgsl.expected.ir.dxc.hlsl
index 0f3e35d..dcd8ea1 100644
--- a/test/tint/builtins/gen/var/dpdyCoarse/ae1873.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/dpdyCoarse/ae1873.wgsl.expected.ir.dxc.hlsl
@@ -1,5 +1,5 @@
-SKIP: FAILED
 
+RWByteAddressBuffer prevent_dce : register(u0);
 float3 dpdyCoarse_ae1873() {
   float3 arg_0 = (1.0f).xxx;
   float3 res = ddy_coarse(arg_0);
@@ -7,11 +7,6 @@
 }
 
 void fragment_main() {
-  prevent_dce = dpdyCoarse_ae1873();
+  prevent_dce.Store3(0u, asuint(dpdyCoarse_ae1873()));
 }
 
-DXC validation failure:
-hlsl.hlsl:8:3: error: use of undeclared identifier 'prevent_dce'
-  prevent_dce = dpdyCoarse_ae1873();
-  ^
-
diff --git a/test/tint/builtins/gen/var/dpdyCoarse/ae1873.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/dpdyCoarse/ae1873.wgsl.expected.ir.fxc.hlsl
index 197ce51..dcd8ea1 100644
--- a/test/tint/builtins/gen/var/dpdyCoarse/ae1873.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/dpdyCoarse/ae1873.wgsl.expected.ir.fxc.hlsl
@@ -1,5 +1,5 @@
-SKIP: FAILED
 
+RWByteAddressBuffer prevent_dce : register(u0);
 float3 dpdyCoarse_ae1873() {
   float3 arg_0 = (1.0f).xxx;
   float3 res = ddy_coarse(arg_0);
@@ -7,6 +7,6 @@
 }
 
 void fragment_main() {
-  prevent_dce = dpdyCoarse_ae1873();
+  prevent_dce.Store3(0u, asuint(dpdyCoarse_ae1873()));
 }
 
diff --git a/test/tint/builtins/gen/var/dpdyFine/1fb7ab.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/dpdyFine/1fb7ab.wgsl.expected.ir.dxc.hlsl
index 9aa0a61..6d085c9 100644
--- a/test/tint/builtins/gen/var/dpdyFine/1fb7ab.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/dpdyFine/1fb7ab.wgsl.expected.ir.dxc.hlsl
@@ -1,5 +1,5 @@
-SKIP: FAILED
 
+RWByteAddressBuffer prevent_dce : register(u0);
 float3 dpdyFine_1fb7ab() {
   float3 arg_0 = (1.0f).xxx;
   float3 res = ddy_fine(arg_0);
@@ -7,11 +7,6 @@
 }
 
 void fragment_main() {
-  prevent_dce = dpdyFine_1fb7ab();
+  prevent_dce.Store3(0u, asuint(dpdyFine_1fb7ab()));
 }
 
-DXC validation failure:
-hlsl.hlsl:8:3: error: use of undeclared identifier 'prevent_dce'
-  prevent_dce = dpdyFine_1fb7ab();
-  ^
-
diff --git a/test/tint/builtins/gen/var/dpdyFine/1fb7ab.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/dpdyFine/1fb7ab.wgsl.expected.ir.fxc.hlsl
index 120365e..6d085c9 100644
--- a/test/tint/builtins/gen/var/dpdyFine/1fb7ab.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/dpdyFine/1fb7ab.wgsl.expected.ir.fxc.hlsl
@@ -1,5 +1,5 @@
-SKIP: FAILED
 
+RWByteAddressBuffer prevent_dce : register(u0);
 float3 dpdyFine_1fb7ab() {
   float3 arg_0 = (1.0f).xxx;
   float3 res = ddy_fine(arg_0);
@@ -7,6 +7,6 @@
 }
 
 void fragment_main() {
-  prevent_dce = dpdyFine_1fb7ab();
+  prevent_dce.Store3(0u, asuint(dpdyFine_1fb7ab()));
 }
 
diff --git a/test/tint/builtins/gen/var/dpdyFine/6eb673.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/dpdyFine/6eb673.wgsl.expected.ir.dxc.hlsl
index 1d7ece7..f222ed0 100644
--- a/test/tint/builtins/gen/var/dpdyFine/6eb673.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/dpdyFine/6eb673.wgsl.expected.ir.dxc.hlsl
@@ -1,5 +1,5 @@
-SKIP: FAILED
 
+RWByteAddressBuffer prevent_dce : register(u0);
 float dpdyFine_6eb673() {
   float arg_0 = 1.0f;
   float res = ddy_fine(arg_0);
@@ -7,11 +7,6 @@
 }
 
 void fragment_main() {
-  prevent_dce = dpdyFine_6eb673();
+  prevent_dce.Store(0u, asuint(dpdyFine_6eb673()));
 }
 
-DXC validation failure:
-hlsl.hlsl:8:3: error: use of undeclared identifier 'prevent_dce'
-  prevent_dce = dpdyFine_6eb673();
-  ^
-
diff --git a/test/tint/builtins/gen/var/dpdyFine/6eb673.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/dpdyFine/6eb673.wgsl.expected.ir.fxc.hlsl
index 017db8b..f222ed0 100644
--- a/test/tint/builtins/gen/var/dpdyFine/6eb673.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/dpdyFine/6eb673.wgsl.expected.ir.fxc.hlsl
@@ -1,5 +1,5 @@
-SKIP: FAILED
 
+RWByteAddressBuffer prevent_dce : register(u0);
 float dpdyFine_6eb673() {
   float arg_0 = 1.0f;
   float res = ddy_fine(arg_0);
@@ -7,6 +7,6 @@
 }
 
 void fragment_main() {
-  prevent_dce = dpdyFine_6eb673();
+  prevent_dce.Store(0u, asuint(dpdyFine_6eb673()));
 }
 
diff --git a/test/tint/builtins/gen/var/dpdyFine/d0a648.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/dpdyFine/d0a648.wgsl.expected.ir.dxc.hlsl
index 880948d..d818881 100644
--- a/test/tint/builtins/gen/var/dpdyFine/d0a648.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/dpdyFine/d0a648.wgsl.expected.ir.dxc.hlsl
@@ -1,5 +1,5 @@
-SKIP: FAILED
 
+RWByteAddressBuffer prevent_dce : register(u0);
 float4 dpdyFine_d0a648() {
   float4 arg_0 = (1.0f).xxxx;
   float4 res = ddy_fine(arg_0);
@@ -7,11 +7,6 @@
 }
 
 void fragment_main() {
-  prevent_dce = dpdyFine_d0a648();
+  prevent_dce.Store4(0u, asuint(dpdyFine_d0a648()));
 }
 
-DXC validation failure:
-hlsl.hlsl:8:3: error: use of undeclared identifier 'prevent_dce'
-  prevent_dce = dpdyFine_d0a648();
-  ^
-
diff --git a/test/tint/builtins/gen/var/dpdyFine/d0a648.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/dpdyFine/d0a648.wgsl.expected.ir.fxc.hlsl
index d115348..d818881 100644
--- a/test/tint/builtins/gen/var/dpdyFine/d0a648.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/dpdyFine/d0a648.wgsl.expected.ir.fxc.hlsl
@@ -1,5 +1,5 @@
-SKIP: FAILED
 
+RWByteAddressBuffer prevent_dce : register(u0);
 float4 dpdyFine_d0a648() {
   float4 arg_0 = (1.0f).xxxx;
   float4 res = ddy_fine(arg_0);
@@ -7,6 +7,6 @@
 }
 
 void fragment_main() {
-  prevent_dce = dpdyFine_d0a648();
+  prevent_dce.Store4(0u, asuint(dpdyFine_d0a648()));
 }
 
diff --git a/test/tint/builtins/gen/var/dpdyFine/df33aa.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/dpdyFine/df33aa.wgsl.expected.ir.dxc.hlsl
index 480e6b6..796c611 100644
--- a/test/tint/builtins/gen/var/dpdyFine/df33aa.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/dpdyFine/df33aa.wgsl.expected.ir.dxc.hlsl
@@ -1,5 +1,5 @@
-SKIP: FAILED
 
+RWByteAddressBuffer prevent_dce : register(u0);
 float2 dpdyFine_df33aa() {
   float2 arg_0 = (1.0f).xx;
   float2 res = ddy_fine(arg_0);
@@ -7,11 +7,6 @@
 }
 
 void fragment_main() {
-  prevent_dce = dpdyFine_df33aa();
+  prevent_dce.Store2(0u, asuint(dpdyFine_df33aa()));
 }
 
-DXC validation failure:
-hlsl.hlsl:8:3: error: use of undeclared identifier 'prevent_dce'
-  prevent_dce = dpdyFine_df33aa();
-  ^
-
diff --git a/test/tint/builtins/gen/var/dpdyFine/df33aa.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/dpdyFine/df33aa.wgsl.expected.ir.fxc.hlsl
index 693d917..796c611 100644
--- a/test/tint/builtins/gen/var/dpdyFine/df33aa.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/dpdyFine/df33aa.wgsl.expected.ir.fxc.hlsl
@@ -1,5 +1,5 @@
-SKIP: FAILED
 
+RWByteAddressBuffer prevent_dce : register(u0);
 float2 dpdyFine_df33aa() {
   float2 arg_0 = (1.0f).xx;
   float2 res = ddy_fine(arg_0);
@@ -7,6 +7,6 @@
 }
 
 void fragment_main() {
-  prevent_dce = dpdyFine_df33aa();
+  prevent_dce.Store2(0u, asuint(dpdyFine_df33aa()));
 }
 
diff --git a/test/tint/builtins/gen/var/exp/0f70eb.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/exp/0f70eb.wgsl.expected.ir.dxc.hlsl
index 0ba40c6..f16b5f9 100644
--- a/test/tint/builtins/gen/var/exp/0f70eb.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/exp/0f70eb.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,43 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  float4 prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation float4 VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+float4 exp_0f70eb() {
+  float4 arg_0 = (1.0f).xxxx;
+  float4 res = exp(arg_0);
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store4(0u, asuint(exp_0f70eb()));
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store4(0u, asuint(exp_0f70eb()));
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = exp_0f70eb();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
diff --git a/test/tint/builtins/gen/var/exp/0f70eb.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/exp/0f70eb.wgsl.expected.ir.fxc.hlsl
index 0ba40c6..f16b5f9 100644
--- a/test/tint/builtins/gen/var/exp/0f70eb.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/exp/0f70eb.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,43 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  float4 prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation float4 VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+float4 exp_0f70eb() {
+  float4 arg_0 = (1.0f).xxxx;
+  float4 res = exp(arg_0);
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store4(0u, asuint(exp_0f70eb()));
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store4(0u, asuint(exp_0f70eb()));
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = exp_0f70eb();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
diff --git a/test/tint/builtins/gen/var/exp/13806d.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/exp/13806d.wgsl.expected.ir.dxc.hlsl
index 0ba40c6..5158555 100644
--- a/test/tint/builtins/gen/var/exp/13806d.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/exp/13806d.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,43 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  vector<float16_t, 3> prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation vector<float16_t, 3> VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+vector<float16_t, 3> exp_13806d() {
+  vector<float16_t, 3> arg_0 = (float16_t(1.0h)).xxx;
+  vector<float16_t, 3> res = exp(arg_0);
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store<vector<float16_t, 3> >(0u, exp_13806d());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store<vector<float16_t, 3> >(0u, exp_13806d());
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = exp_13806d();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
diff --git a/test/tint/builtins/gen/var/exp/13806d.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/exp/13806d.wgsl.expected.ir.fxc.hlsl
index 0ba40c6..8a036f4 100644
--- a/test/tint/builtins/gen/var/exp/13806d.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/exp/13806d.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,48 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct VertexOutput {
+  float4 pos;
+  vector<float16_t, 3> prevent_dce;
+};
+
+struct vertex_main_outputs {
+  nointerpolation vector<float16_t, 3> VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+vector<float16_t, 3> exp_13806d() {
+  vector<float16_t, 3> arg_0 = (float16_t(1.0h)).xxx;
+  vector<float16_t, 3> res = exp(arg_0);
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store<vector<float16_t, 3> >(0u, exp_13806d());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store<vector<float16_t, 3> >(0u, exp_13806d());
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = exp_13806d();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
+FXC validation failure:
+c:\src\dawn\Shader@0x000002194B90F730(3,10-18): error X3000: syntax error: unexpected token 'float16_t'
+
diff --git a/test/tint/builtins/gen/var/exp/1951e7.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/exp/1951e7.wgsl.expected.ir.dxc.hlsl
index 0ba40c6..a4f2685 100644
--- a/test/tint/builtins/gen/var/exp/1951e7.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/exp/1951e7.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,43 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  float2 prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation float2 VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+float2 exp_1951e7() {
+  float2 arg_0 = (1.0f).xx;
+  float2 res = exp(arg_0);
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store2(0u, asuint(exp_1951e7()));
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store2(0u, asuint(exp_1951e7()));
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = exp_1951e7();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
diff --git a/test/tint/builtins/gen/var/exp/1951e7.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/exp/1951e7.wgsl.expected.ir.fxc.hlsl
index 0ba40c6..a4f2685 100644
--- a/test/tint/builtins/gen/var/exp/1951e7.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/exp/1951e7.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,43 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  float2 prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation float2 VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+float2 exp_1951e7() {
+  float2 arg_0 = (1.0f).xx;
+  float2 res = exp(arg_0);
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store2(0u, asuint(exp_1951e7()));
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store2(0u, asuint(exp_1951e7()));
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = exp_1951e7();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
diff --git a/test/tint/builtins/gen/var/exp/2e08e2.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/exp/2e08e2.wgsl.expected.ir.dxc.hlsl
index 0ba40c6..c2fecad 100644
--- a/test/tint/builtins/gen/var/exp/2e08e2.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/exp/2e08e2.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,43 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  vector<float16_t, 2> prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation vector<float16_t, 2> VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+vector<float16_t, 2> exp_2e08e2() {
+  vector<float16_t, 2> arg_0 = (float16_t(1.0h)).xx;
+  vector<float16_t, 2> res = exp(arg_0);
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store<vector<float16_t, 2> >(0u, exp_2e08e2());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store<vector<float16_t, 2> >(0u, exp_2e08e2());
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = exp_2e08e2();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
diff --git a/test/tint/builtins/gen/var/exp/2e08e2.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/exp/2e08e2.wgsl.expected.ir.fxc.hlsl
index 0ba40c6..fc96b2d 100644
--- a/test/tint/builtins/gen/var/exp/2e08e2.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/exp/2e08e2.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,48 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct VertexOutput {
+  float4 pos;
+  vector<float16_t, 2> prevent_dce;
+};
+
+struct vertex_main_outputs {
+  nointerpolation vector<float16_t, 2> VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+vector<float16_t, 2> exp_2e08e2() {
+  vector<float16_t, 2> arg_0 = (float16_t(1.0h)).xx;
+  vector<float16_t, 2> res = exp(arg_0);
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store<vector<float16_t, 2> >(0u, exp_2e08e2());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store<vector<float16_t, 2> >(0u, exp_2e08e2());
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = exp_2e08e2();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
+FXC validation failure:
+c:\src\dawn\Shader@0x0000021F4EE65DE0(3,10-18): error X3000: syntax error: unexpected token 'float16_t'
+
diff --git a/test/tint/builtins/gen/var/exp/49e4c5.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/exp/49e4c5.wgsl.expected.ir.dxc.hlsl
index 0ba40c6..32207e7 100644
--- a/test/tint/builtins/gen/var/exp/49e4c5.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/exp/49e4c5.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,36 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+void exp_49e4c5() {
+  float res = 2.71828174591064453125f;
+}
+
+void fragment_main() {
+  exp_49e4c5();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  exp_49e4c5();
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  exp_49e4c5();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  vertex_main_outputs v_2 = {v_1.pos};
+  return v_2;
+}
+
diff --git a/test/tint/builtins/gen/var/exp/49e4c5.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/exp/49e4c5.wgsl.expected.ir.fxc.hlsl
index 0ba40c6..32207e7 100644
--- a/test/tint/builtins/gen/var/exp/49e4c5.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/exp/49e4c5.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,36 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+void exp_49e4c5() {
+  float res = 2.71828174591064453125f;
+}
+
+void fragment_main() {
+  exp_49e4c5();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  exp_49e4c5();
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  exp_49e4c5();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  vertex_main_outputs v_2 = {v_1.pos};
+  return v_2;
+}
+
diff --git a/test/tint/builtins/gen/var/exp/611a87.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/exp/611a87.wgsl.expected.ir.dxc.hlsl
index 0ba40c6..6051412 100644
--- a/test/tint/builtins/gen/var/exp/611a87.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/exp/611a87.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,43 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  vector<float16_t, 4> prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation vector<float16_t, 4> VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+vector<float16_t, 4> exp_611a87() {
+  vector<float16_t, 4> arg_0 = (float16_t(1.0h)).xxxx;
+  vector<float16_t, 4> res = exp(arg_0);
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store<vector<float16_t, 4> >(0u, exp_611a87());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store<vector<float16_t, 4> >(0u, exp_611a87());
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = exp_611a87();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
diff --git a/test/tint/builtins/gen/var/exp/611a87.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/exp/611a87.wgsl.expected.ir.fxc.hlsl
index 0ba40c6..9aeb8ab 100644
--- a/test/tint/builtins/gen/var/exp/611a87.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/exp/611a87.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,48 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct VertexOutput {
+  float4 pos;
+  vector<float16_t, 4> prevent_dce;
+};
+
+struct vertex_main_outputs {
+  nointerpolation vector<float16_t, 4> VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+vector<float16_t, 4> exp_611a87() {
+  vector<float16_t, 4> arg_0 = (float16_t(1.0h)).xxxx;
+  vector<float16_t, 4> res = exp(arg_0);
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store<vector<float16_t, 4> >(0u, exp_611a87());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store<vector<float16_t, 4> >(0u, exp_611a87());
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = exp_611a87();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
+FXC validation failure:
+c:\src\dawn\Shader@0x0000022BD5236C00(3,10-18): error X3000: syntax error: unexpected token 'float16_t'
+
diff --git a/test/tint/builtins/gen/var/exp/699629.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/exp/699629.wgsl.expected.ir.dxc.hlsl
index 0ba40c6..87271e5 100644
--- a/test/tint/builtins/gen/var/exp/699629.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/exp/699629.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,36 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+void exp_699629() {
+  float2 res = (2.71828174591064453125f).xx;
+}
+
+void fragment_main() {
+  exp_699629();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  exp_699629();
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  exp_699629();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  vertex_main_outputs v_2 = {v_1.pos};
+  return v_2;
+}
+
diff --git a/test/tint/builtins/gen/var/exp/699629.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/exp/699629.wgsl.expected.ir.fxc.hlsl
index 0ba40c6..87271e5 100644
--- a/test/tint/builtins/gen/var/exp/699629.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/exp/699629.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,36 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+void exp_699629() {
+  float2 res = (2.71828174591064453125f).xx;
+}
+
+void fragment_main() {
+  exp_699629();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  exp_699629();
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  exp_699629();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  vertex_main_outputs v_2 = {v_1.pos};
+  return v_2;
+}
+
diff --git a/test/tint/builtins/gen/var/exp/771fd2.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/exp/771fd2.wgsl.expected.ir.dxc.hlsl
index 0ba40c6..21ac9a6 100644
--- a/test/tint/builtins/gen/var/exp/771fd2.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/exp/771fd2.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,43 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  float prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation float VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+float exp_771fd2() {
+  float arg_0 = 1.0f;
+  float res = exp(arg_0);
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store(0u, asuint(exp_771fd2()));
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store(0u, asuint(exp_771fd2()));
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = exp_771fd2();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
diff --git a/test/tint/builtins/gen/var/exp/771fd2.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/exp/771fd2.wgsl.expected.ir.fxc.hlsl
index 0ba40c6..21ac9a6 100644
--- a/test/tint/builtins/gen/var/exp/771fd2.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/exp/771fd2.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,43 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  float prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation float VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+float exp_771fd2() {
+  float arg_0 = 1.0f;
+  float res = exp(arg_0);
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store(0u, asuint(exp_771fd2()));
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store(0u, asuint(exp_771fd2()));
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = exp_771fd2();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
diff --git a/test/tint/builtins/gen/var/exp/bda5bb.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/exp/bda5bb.wgsl.expected.ir.dxc.hlsl
index 0ba40c6..c7804f0 100644
--- a/test/tint/builtins/gen/var/exp/bda5bb.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/exp/bda5bb.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,36 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+void exp_bda5bb() {
+  float3 res = (2.71828174591064453125f).xxx;
+}
+
+void fragment_main() {
+  exp_bda5bb();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  exp_bda5bb();
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  exp_bda5bb();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  vertex_main_outputs v_2 = {v_1.pos};
+  return v_2;
+}
+
diff --git a/test/tint/builtins/gen/var/exp/bda5bb.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/exp/bda5bb.wgsl.expected.ir.fxc.hlsl
index 0ba40c6..c7804f0 100644
--- a/test/tint/builtins/gen/var/exp/bda5bb.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/exp/bda5bb.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,36 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+void exp_bda5bb() {
+  float3 res = (2.71828174591064453125f).xxx;
+}
+
+void fragment_main() {
+  exp_bda5bb();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  exp_bda5bb();
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  exp_bda5bb();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  vertex_main_outputs v_2 = {v_1.pos};
+  return v_2;
+}
+
diff --git a/test/tint/builtins/gen/var/exp/c18fe9.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/exp/c18fe9.wgsl.expected.ir.dxc.hlsl
index 0ba40c6..4ea7b48 100644
--- a/test/tint/builtins/gen/var/exp/c18fe9.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/exp/c18fe9.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,43 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  float16_t prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation float16_t VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+float16_t exp_c18fe9() {
+  float16_t arg_0 = float16_t(1.0h);
+  float16_t res = exp(arg_0);
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store<float16_t>(0u, exp_c18fe9());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store<float16_t>(0u, exp_c18fe9());
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = exp_c18fe9();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
diff --git a/test/tint/builtins/gen/var/exp/c18fe9.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/exp/c18fe9.wgsl.expected.ir.fxc.hlsl
index 0ba40c6..4439901 100644
--- a/test/tint/builtins/gen/var/exp/c18fe9.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/exp/c18fe9.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,48 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct VertexOutput {
+  float4 pos;
+  float16_t prevent_dce;
+};
+
+struct vertex_main_outputs {
+  nointerpolation float16_t VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+float16_t exp_c18fe9() {
+  float16_t arg_0 = float16_t(1.0h);
+  float16_t res = exp(arg_0);
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store<float16_t>(0u, exp_c18fe9());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store<float16_t>(0u, exp_c18fe9());
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = exp_c18fe9();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
+FXC validation failure:
+c:\src\dawn\Shader@0x0000024BAAD37960(3,3-11): error X3000: unrecognized identifier 'float16_t'
+
diff --git a/test/tint/builtins/gen/var/exp/d98450.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/exp/d98450.wgsl.expected.ir.dxc.hlsl
index 0ba40c6..ed16460 100644
--- a/test/tint/builtins/gen/var/exp/d98450.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/exp/d98450.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,43 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  float3 prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation float3 VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+float3 exp_d98450() {
+  float3 arg_0 = (1.0f).xxx;
+  float3 res = exp(arg_0);
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store3(0u, asuint(exp_d98450()));
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store3(0u, asuint(exp_d98450()));
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = exp_d98450();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
diff --git a/test/tint/builtins/gen/var/exp/d98450.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/exp/d98450.wgsl.expected.ir.fxc.hlsl
index 0ba40c6..ed16460 100644
--- a/test/tint/builtins/gen/var/exp/d98450.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/exp/d98450.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,43 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  float3 prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation float3 VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+float3 exp_d98450() {
+  float3 arg_0 = (1.0f).xxx;
+  float3 res = exp(arg_0);
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store3(0u, asuint(exp_d98450()));
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store3(0u, asuint(exp_d98450()));
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = exp_d98450();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
diff --git a/test/tint/builtins/gen/var/exp/dad791.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/exp/dad791.wgsl.expected.ir.dxc.hlsl
index 0ba40c6..fc2d9be 100644
--- a/test/tint/builtins/gen/var/exp/dad791.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/exp/dad791.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,36 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+void exp_dad791() {
+  float4 res = (2.71828174591064453125f).xxxx;
+}
+
+void fragment_main() {
+  exp_dad791();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  exp_dad791();
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  exp_dad791();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  vertex_main_outputs v_2 = {v_1.pos};
+  return v_2;
+}
+
diff --git a/test/tint/builtins/gen/var/exp/dad791.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/exp/dad791.wgsl.expected.ir.fxc.hlsl
index 0ba40c6..fc2d9be 100644
--- a/test/tint/builtins/gen/var/exp/dad791.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/exp/dad791.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,36 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+void exp_dad791() {
+  float4 res = (2.71828174591064453125f).xxxx;
+}
+
+void fragment_main() {
+  exp_dad791();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  exp_dad791();
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  exp_dad791();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  vertex_main_outputs v_2 = {v_1.pos};
+  return v_2;
+}
+
diff --git a/test/tint/builtins/gen/var/exp2/151a4c.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/exp2/151a4c.wgsl.expected.ir.dxc.hlsl
index 0ba40c6..fa00e66 100644
--- a/test/tint/builtins/gen/var/exp2/151a4c.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/exp2/151a4c.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,43 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  vector<float16_t, 2> prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation vector<float16_t, 2> VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+vector<float16_t, 2> exp2_151a4c() {
+  vector<float16_t, 2> arg_0 = (float16_t(1.0h)).xx;
+  vector<float16_t, 2> res = exp2(arg_0);
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store<vector<float16_t, 2> >(0u, exp2_151a4c());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store<vector<float16_t, 2> >(0u, exp2_151a4c());
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = exp2_151a4c();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
diff --git a/test/tint/builtins/gen/var/exp2/151a4c.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/exp2/151a4c.wgsl.expected.ir.fxc.hlsl
index 0ba40c6..c5d21e9 100644
--- a/test/tint/builtins/gen/var/exp2/151a4c.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/exp2/151a4c.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,48 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct VertexOutput {
+  float4 pos;
+  vector<float16_t, 2> prevent_dce;
+};
+
+struct vertex_main_outputs {
+  nointerpolation vector<float16_t, 2> VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+vector<float16_t, 2> exp2_151a4c() {
+  vector<float16_t, 2> arg_0 = (float16_t(1.0h)).xx;
+  vector<float16_t, 2> res = exp2(arg_0);
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store<vector<float16_t, 2> >(0u, exp2_151a4c());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store<vector<float16_t, 2> >(0u, exp2_151a4c());
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = exp2_151a4c();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
+FXC validation failure:
+c:\src\dawn\Shader@0x0000028E09FD0610(3,10-18): error X3000: syntax error: unexpected token 'float16_t'
+
diff --git a/test/tint/builtins/gen/var/exp2/18aa76.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/exp2/18aa76.wgsl.expected.ir.dxc.hlsl
index 0ba40c6..8e32a72 100644
--- a/test/tint/builtins/gen/var/exp2/18aa76.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/exp2/18aa76.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,36 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+void exp2_18aa76() {
+  float2 res = (2.0f).xx;
+}
+
+void fragment_main() {
+  exp2_18aa76();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  exp2_18aa76();
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  exp2_18aa76();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  vertex_main_outputs v_2 = {v_1.pos};
+  return v_2;
+}
+
diff --git a/test/tint/builtins/gen/var/exp2/18aa76.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/exp2/18aa76.wgsl.expected.ir.fxc.hlsl
index 0ba40c6..8e32a72 100644
--- a/test/tint/builtins/gen/var/exp2/18aa76.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/exp2/18aa76.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,36 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+void exp2_18aa76() {
+  float2 res = (2.0f).xx;
+}
+
+void fragment_main() {
+  exp2_18aa76();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  exp2_18aa76();
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  exp2_18aa76();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  vertex_main_outputs v_2 = {v_1.pos};
+  return v_2;
+}
+
diff --git a/test/tint/builtins/gen/var/exp2/1f8680.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/exp2/1f8680.wgsl.expected.ir.dxc.hlsl
index 0ba40c6..699af20 100644
--- a/test/tint/builtins/gen/var/exp2/1f8680.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/exp2/1f8680.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,43 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  float3 prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation float3 VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+float3 exp2_1f8680() {
+  float3 arg_0 = (1.0f).xxx;
+  float3 res = exp2(arg_0);
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store3(0u, asuint(exp2_1f8680()));
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store3(0u, asuint(exp2_1f8680()));
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = exp2_1f8680();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
diff --git a/test/tint/builtins/gen/var/exp2/1f8680.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/exp2/1f8680.wgsl.expected.ir.fxc.hlsl
index 0ba40c6..699af20 100644
--- a/test/tint/builtins/gen/var/exp2/1f8680.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/exp2/1f8680.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,43 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  float3 prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation float3 VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+float3 exp2_1f8680() {
+  float3 arg_0 = (1.0f).xxx;
+  float3 res = exp2(arg_0);
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store3(0u, asuint(exp2_1f8680()));
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store3(0u, asuint(exp2_1f8680()));
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = exp2_1f8680();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
diff --git a/test/tint/builtins/gen/var/exp2/303753.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/exp2/303753.wgsl.expected.ir.dxc.hlsl
index 0ba40c6..4b6eca9 100644
--- a/test/tint/builtins/gen/var/exp2/303753.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/exp2/303753.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,36 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+void exp2_303753() {
+  float3 res = (2.0f).xxx;
+}
+
+void fragment_main() {
+  exp2_303753();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  exp2_303753();
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  exp2_303753();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  vertex_main_outputs v_2 = {v_1.pos};
+  return v_2;
+}
+
diff --git a/test/tint/builtins/gen/var/exp2/303753.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/exp2/303753.wgsl.expected.ir.fxc.hlsl
index 0ba40c6..4b6eca9 100644
--- a/test/tint/builtins/gen/var/exp2/303753.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/exp2/303753.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,36 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+void exp2_303753() {
+  float3 res = (2.0f).xxx;
+}
+
+void fragment_main() {
+  exp2_303753();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  exp2_303753();
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  exp2_303753();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  vertex_main_outputs v_2 = {v_1.pos};
+  return v_2;
+}
+
diff --git a/test/tint/builtins/gen/var/exp2/751377.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/exp2/751377.wgsl.expected.ir.dxc.hlsl
index 0ba40c6..d80548b 100644
--- a/test/tint/builtins/gen/var/exp2/751377.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/exp2/751377.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,43 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  vector<float16_t, 3> prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation vector<float16_t, 3> VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+vector<float16_t, 3> exp2_751377() {
+  vector<float16_t, 3> arg_0 = (float16_t(1.0h)).xxx;
+  vector<float16_t, 3> res = exp2(arg_0);
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store<vector<float16_t, 3> >(0u, exp2_751377());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store<vector<float16_t, 3> >(0u, exp2_751377());
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = exp2_751377();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
diff --git a/test/tint/builtins/gen/var/exp2/751377.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/exp2/751377.wgsl.expected.ir.fxc.hlsl
index 0ba40c6..ccedc9c 100644
--- a/test/tint/builtins/gen/var/exp2/751377.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/exp2/751377.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,48 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct VertexOutput {
+  float4 pos;
+  vector<float16_t, 3> prevent_dce;
+};
+
+struct vertex_main_outputs {
+  nointerpolation vector<float16_t, 3> VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+vector<float16_t, 3> exp2_751377() {
+  vector<float16_t, 3> arg_0 = (float16_t(1.0h)).xxx;
+  vector<float16_t, 3> res = exp2(arg_0);
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store<vector<float16_t, 3> >(0u, exp2_751377());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store<vector<float16_t, 3> >(0u, exp2_751377());
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = exp2_751377();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
+FXC validation failure:
+c:\src\dawn\Shader@0x00000273CB7F6DB0(3,10-18): error X3000: syntax error: unexpected token 'float16_t'
+
diff --git a/test/tint/builtins/gen/var/exp2/8bd72d.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/exp2/8bd72d.wgsl.expected.ir.dxc.hlsl
index 0ba40c6..624ea41 100644
--- a/test/tint/builtins/gen/var/exp2/8bd72d.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/exp2/8bd72d.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,36 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+void exp2_8bd72d() {
+  float4 res = (2.0f).xxxx;
+}
+
+void fragment_main() {
+  exp2_8bd72d();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  exp2_8bd72d();
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  exp2_8bd72d();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  vertex_main_outputs v_2 = {v_1.pos};
+  return v_2;
+}
+
diff --git a/test/tint/builtins/gen/var/exp2/8bd72d.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/exp2/8bd72d.wgsl.expected.ir.fxc.hlsl
index 0ba40c6..624ea41 100644
--- a/test/tint/builtins/gen/var/exp2/8bd72d.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/exp2/8bd72d.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,36 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+void exp2_8bd72d() {
+  float4 res = (2.0f).xxxx;
+}
+
+void fragment_main() {
+  exp2_8bd72d();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  exp2_8bd72d();
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  exp2_8bd72d();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  vertex_main_outputs v_2 = {v_1.pos};
+  return v_2;
+}
+
diff --git a/test/tint/builtins/gen/var/exp2/a9d0a7.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/exp2/a9d0a7.wgsl.expected.ir.dxc.hlsl
index 0ba40c6..b46bee8 100644
--- a/test/tint/builtins/gen/var/exp2/a9d0a7.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/exp2/a9d0a7.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,43 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  float4 prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation float4 VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+float4 exp2_a9d0a7() {
+  float4 arg_0 = (1.0f).xxxx;
+  float4 res = exp2(arg_0);
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store4(0u, asuint(exp2_a9d0a7()));
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store4(0u, asuint(exp2_a9d0a7()));
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = exp2_a9d0a7();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
diff --git a/test/tint/builtins/gen/var/exp2/a9d0a7.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/exp2/a9d0a7.wgsl.expected.ir.fxc.hlsl
index 0ba40c6..b46bee8 100644
--- a/test/tint/builtins/gen/var/exp2/a9d0a7.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/exp2/a9d0a7.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,43 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  float4 prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation float4 VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+float4 exp2_a9d0a7() {
+  float4 arg_0 = (1.0f).xxxx;
+  float4 res = exp2(arg_0);
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store4(0u, asuint(exp2_a9d0a7()));
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store4(0u, asuint(exp2_a9d0a7()));
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = exp2_a9d0a7();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
diff --git a/test/tint/builtins/gen/var/exp2/b408e4.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/exp2/b408e4.wgsl.expected.ir.dxc.hlsl
index 0ba40c6..0227906 100644
--- a/test/tint/builtins/gen/var/exp2/b408e4.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/exp2/b408e4.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,43 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  float16_t prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation float16_t VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+float16_t exp2_b408e4() {
+  float16_t arg_0 = float16_t(1.0h);
+  float16_t res = exp2(arg_0);
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store<float16_t>(0u, exp2_b408e4());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store<float16_t>(0u, exp2_b408e4());
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = exp2_b408e4();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
diff --git a/test/tint/builtins/gen/var/exp2/b408e4.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/exp2/b408e4.wgsl.expected.ir.fxc.hlsl
index 0ba40c6..0f17d87 100644
--- a/test/tint/builtins/gen/var/exp2/b408e4.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/exp2/b408e4.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,48 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct VertexOutput {
+  float4 pos;
+  float16_t prevent_dce;
+};
+
+struct vertex_main_outputs {
+  nointerpolation float16_t VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+float16_t exp2_b408e4() {
+  float16_t arg_0 = float16_t(1.0h);
+  float16_t res = exp2(arg_0);
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store<float16_t>(0u, exp2_b408e4());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store<float16_t>(0u, exp2_b408e4());
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = exp2_b408e4();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
+FXC validation failure:
+c:\src\dawn\Shader@0x000001A78D8709D0(3,3-11): error X3000: unrecognized identifier 'float16_t'
+
diff --git a/test/tint/builtins/gen/var/exp2/d6777c.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/exp2/d6777c.wgsl.expected.ir.dxc.hlsl
index 0ba40c6..2ac75ce 100644
--- a/test/tint/builtins/gen/var/exp2/d6777c.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/exp2/d6777c.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,43 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  float2 prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation float2 VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+float2 exp2_d6777c() {
+  float2 arg_0 = (1.0f).xx;
+  float2 res = exp2(arg_0);
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store2(0u, asuint(exp2_d6777c()));
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store2(0u, asuint(exp2_d6777c()));
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = exp2_d6777c();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
diff --git a/test/tint/builtins/gen/var/exp2/d6777c.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/exp2/d6777c.wgsl.expected.ir.fxc.hlsl
index 0ba40c6..2ac75ce 100644
--- a/test/tint/builtins/gen/var/exp2/d6777c.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/exp2/d6777c.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,43 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  float2 prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation float2 VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+float2 exp2_d6777c() {
+  float2 arg_0 = (1.0f).xx;
+  float2 res = exp2(arg_0);
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store2(0u, asuint(exp2_d6777c()));
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store2(0u, asuint(exp2_d6777c()));
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = exp2_d6777c();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
diff --git a/test/tint/builtins/gen/var/exp2/dea523.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/exp2/dea523.wgsl.expected.ir.dxc.hlsl
index 0ba40c6..74db774 100644
--- a/test/tint/builtins/gen/var/exp2/dea523.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/exp2/dea523.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,43 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  float prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation float VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+float exp2_dea523() {
+  float arg_0 = 1.0f;
+  float res = exp2(arg_0);
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store(0u, asuint(exp2_dea523()));
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store(0u, asuint(exp2_dea523()));
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = exp2_dea523();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
diff --git a/test/tint/builtins/gen/var/exp2/dea523.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/exp2/dea523.wgsl.expected.ir.fxc.hlsl
index 0ba40c6..74db774 100644
--- a/test/tint/builtins/gen/var/exp2/dea523.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/exp2/dea523.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,43 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  float prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation float VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+float exp2_dea523() {
+  float arg_0 = 1.0f;
+  float res = exp2(arg_0);
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store(0u, asuint(exp2_dea523()));
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store(0u, asuint(exp2_dea523()));
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = exp2_dea523();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
diff --git a/test/tint/builtins/gen/var/exp2/f4f0f1.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/exp2/f4f0f1.wgsl.expected.ir.dxc.hlsl
index 0ba40c6..7dec754 100644
--- a/test/tint/builtins/gen/var/exp2/f4f0f1.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/exp2/f4f0f1.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,36 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+void exp2_f4f0f1() {
+  float res = 2.0f;
+}
+
+void fragment_main() {
+  exp2_f4f0f1();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  exp2_f4f0f1();
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  exp2_f4f0f1();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  vertex_main_outputs v_2 = {v_1.pos};
+  return v_2;
+}
+
diff --git a/test/tint/builtins/gen/var/exp2/f4f0f1.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/exp2/f4f0f1.wgsl.expected.ir.fxc.hlsl
index 0ba40c6..7dec754 100644
--- a/test/tint/builtins/gen/var/exp2/f4f0f1.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/exp2/f4f0f1.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,36 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+void exp2_f4f0f1() {
+  float res = 2.0f;
+}
+
+void fragment_main() {
+  exp2_f4f0f1();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  exp2_f4f0f1();
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  exp2_f4f0f1();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  vertex_main_outputs v_2 = {v_1.pos};
+  return v_2;
+}
+
diff --git a/test/tint/builtins/gen/var/exp2/ffa827.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/exp2/ffa827.wgsl.expected.ir.dxc.hlsl
index 0ba40c6..b51de46 100644
--- a/test/tint/builtins/gen/var/exp2/ffa827.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/exp2/ffa827.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,43 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  vector<float16_t, 4> prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation vector<float16_t, 4> VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+vector<float16_t, 4> exp2_ffa827() {
+  vector<float16_t, 4> arg_0 = (float16_t(1.0h)).xxxx;
+  vector<float16_t, 4> res = exp2(arg_0);
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store<vector<float16_t, 4> >(0u, exp2_ffa827());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store<vector<float16_t, 4> >(0u, exp2_ffa827());
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = exp2_ffa827();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
diff --git a/test/tint/builtins/gen/var/exp2/ffa827.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/exp2/ffa827.wgsl.expected.ir.fxc.hlsl
index 0ba40c6..4fa743a 100644
--- a/test/tint/builtins/gen/var/exp2/ffa827.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/exp2/ffa827.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,48 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct VertexOutput {
+  float4 pos;
+  vector<float16_t, 4> prevent_dce;
+};
+
+struct vertex_main_outputs {
+  nointerpolation vector<float16_t, 4> VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+vector<float16_t, 4> exp2_ffa827() {
+  vector<float16_t, 4> arg_0 = (float16_t(1.0h)).xxxx;
+  vector<float16_t, 4> res = exp2(arg_0);
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store<vector<float16_t, 4> >(0u, exp2_ffa827());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store<vector<float16_t, 4> >(0u, exp2_ffa827());
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = exp2_ffa827();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
+FXC validation failure:
+c:\src\dawn\Shader@0x00000214252DD8C0(3,10-18): error X3000: syntax error: unexpected token 'float16_t'
+
diff --git a/test/tint/builtins/gen/var/extractBits/12b197.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/extractBits/12b197.wgsl.expected.ir.dxc.hlsl
index 75027f4..c6d92c5 100644
--- a/test/tint/builtins/gen/var/extractBits/12b197.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/extractBits/12b197.wgsl.expected.ir.dxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: extractBits
+..\..\src\tint\lang\core\ir\transform\builtin_polyfill.cc:407 internal compiler error: TINT_UNIMPLEMENTED extractBits polyfill level
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/var/extractBits/12b197.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/extractBits/12b197.wgsl.expected.ir.fxc.hlsl
index 75027f4..c6d92c5 100644
--- a/test/tint/builtins/gen/var/extractBits/12b197.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/extractBits/12b197.wgsl.expected.ir.fxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: extractBits
+..\..\src\tint\lang\core\ir\transform\builtin_polyfill.cc:407 internal compiler error: TINT_UNIMPLEMENTED extractBits polyfill level
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/var/extractBits/249874.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/extractBits/249874.wgsl.expected.ir.dxc.hlsl
index 75027f4..c6d92c5 100644
--- a/test/tint/builtins/gen/var/extractBits/249874.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/extractBits/249874.wgsl.expected.ir.dxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: extractBits
+..\..\src\tint\lang\core\ir\transform\builtin_polyfill.cc:407 internal compiler error: TINT_UNIMPLEMENTED extractBits polyfill level
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/var/extractBits/249874.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/extractBits/249874.wgsl.expected.ir.fxc.hlsl
index 75027f4..c6d92c5 100644
--- a/test/tint/builtins/gen/var/extractBits/249874.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/extractBits/249874.wgsl.expected.ir.fxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: extractBits
+..\..\src\tint\lang\core\ir\transform\builtin_polyfill.cc:407 internal compiler error: TINT_UNIMPLEMENTED extractBits polyfill level
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/var/extractBits/631377.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/extractBits/631377.wgsl.expected.ir.dxc.hlsl
index 75027f4..c6d92c5 100644
--- a/test/tint/builtins/gen/var/extractBits/631377.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/extractBits/631377.wgsl.expected.ir.dxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: extractBits
+..\..\src\tint\lang\core\ir\transform\builtin_polyfill.cc:407 internal compiler error: TINT_UNIMPLEMENTED extractBits polyfill level
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/var/extractBits/631377.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/extractBits/631377.wgsl.expected.ir.fxc.hlsl
index 75027f4..c6d92c5 100644
--- a/test/tint/builtins/gen/var/extractBits/631377.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/extractBits/631377.wgsl.expected.ir.fxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: extractBits
+..\..\src\tint\lang\core\ir\transform\builtin_polyfill.cc:407 internal compiler error: TINT_UNIMPLEMENTED extractBits polyfill level
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/var/extractBits/a99a8d.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/extractBits/a99a8d.wgsl.expected.ir.dxc.hlsl
index 75027f4..c6d92c5 100644
--- a/test/tint/builtins/gen/var/extractBits/a99a8d.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/extractBits/a99a8d.wgsl.expected.ir.dxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: extractBits
+..\..\src\tint\lang\core\ir\transform\builtin_polyfill.cc:407 internal compiler error: TINT_UNIMPLEMENTED extractBits polyfill level
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/var/extractBits/a99a8d.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/extractBits/a99a8d.wgsl.expected.ir.fxc.hlsl
index 75027f4..c6d92c5 100644
--- a/test/tint/builtins/gen/var/extractBits/a99a8d.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/extractBits/a99a8d.wgsl.expected.ir.fxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: extractBits
+..\..\src\tint\lang\core\ir\transform\builtin_polyfill.cc:407 internal compiler error: TINT_UNIMPLEMENTED extractBits polyfill level
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/var/extractBits/ce81f8.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/extractBits/ce81f8.wgsl.expected.ir.dxc.hlsl
index 75027f4..c6d92c5 100644
--- a/test/tint/builtins/gen/var/extractBits/ce81f8.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/extractBits/ce81f8.wgsl.expected.ir.dxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: extractBits
+..\..\src\tint\lang\core\ir\transform\builtin_polyfill.cc:407 internal compiler error: TINT_UNIMPLEMENTED extractBits polyfill level
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/var/extractBits/ce81f8.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/extractBits/ce81f8.wgsl.expected.ir.fxc.hlsl
index 75027f4..c6d92c5 100644
--- a/test/tint/builtins/gen/var/extractBits/ce81f8.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/extractBits/ce81f8.wgsl.expected.ir.fxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: extractBits
+..\..\src\tint\lang\core\ir\transform\builtin_polyfill.cc:407 internal compiler error: TINT_UNIMPLEMENTED extractBits polyfill level
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/var/extractBits/e04f5d.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/extractBits/e04f5d.wgsl.expected.ir.dxc.hlsl
index 75027f4..c6d92c5 100644
--- a/test/tint/builtins/gen/var/extractBits/e04f5d.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/extractBits/e04f5d.wgsl.expected.ir.dxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: extractBits
+..\..\src\tint\lang\core\ir\transform\builtin_polyfill.cc:407 internal compiler error: TINT_UNIMPLEMENTED extractBits polyfill level
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/var/extractBits/e04f5d.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/extractBits/e04f5d.wgsl.expected.ir.fxc.hlsl
index 75027f4..c6d92c5 100644
--- a/test/tint/builtins/gen/var/extractBits/e04f5d.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/extractBits/e04f5d.wgsl.expected.ir.fxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: extractBits
+..\..\src\tint\lang\core\ir\transform\builtin_polyfill.cc:407 internal compiler error: TINT_UNIMPLEMENTED extractBits polyfill level
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/var/extractBits/f28f69.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/extractBits/f28f69.wgsl.expected.ir.dxc.hlsl
index 75027f4..c6d92c5 100644
--- a/test/tint/builtins/gen/var/extractBits/f28f69.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/extractBits/f28f69.wgsl.expected.ir.dxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: extractBits
+..\..\src\tint\lang\core\ir\transform\builtin_polyfill.cc:407 internal compiler error: TINT_UNIMPLEMENTED extractBits polyfill level
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/var/extractBits/f28f69.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/extractBits/f28f69.wgsl.expected.ir.fxc.hlsl
index 75027f4..c6d92c5 100644
--- a/test/tint/builtins/gen/var/extractBits/f28f69.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/extractBits/f28f69.wgsl.expected.ir.fxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: extractBits
+..\..\src\tint\lang\core\ir\transform\builtin_polyfill.cc:407 internal compiler error: TINT_UNIMPLEMENTED extractBits polyfill level
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/var/extractBits/fb850f.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/extractBits/fb850f.wgsl.expected.ir.dxc.hlsl
index 75027f4..c6d92c5 100644
--- a/test/tint/builtins/gen/var/extractBits/fb850f.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/extractBits/fb850f.wgsl.expected.ir.dxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: extractBits
+..\..\src\tint\lang\core\ir\transform\builtin_polyfill.cc:407 internal compiler error: TINT_UNIMPLEMENTED extractBits polyfill level
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/var/extractBits/fb850f.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/extractBits/fb850f.wgsl.expected.ir.fxc.hlsl
index 75027f4..c6d92c5 100644
--- a/test/tint/builtins/gen/var/extractBits/fb850f.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/extractBits/fb850f.wgsl.expected.ir.fxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: extractBits
+..\..\src\tint\lang\core\ir\transform\builtin_polyfill.cc:407 internal compiler error: TINT_UNIMPLEMENTED extractBits polyfill level
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/var/faceForward/2c4d14.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/faceForward/2c4d14.wgsl.expected.ir.dxc.hlsl
index 0ba40c6..c16b051 100644
--- a/test/tint/builtins/gen/var/faceForward/2c4d14.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/faceForward/2c4d14.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,36 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+void faceForward_2c4d14() {
+  float4 res = (-1.0f).xxxx;
+}
+
+void fragment_main() {
+  faceForward_2c4d14();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  faceForward_2c4d14();
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  faceForward_2c4d14();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  vertex_main_outputs v_2 = {v_1.pos};
+  return v_2;
+}
+
diff --git a/test/tint/builtins/gen/var/faceForward/2c4d14.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/faceForward/2c4d14.wgsl.expected.ir.fxc.hlsl
index 0ba40c6..c16b051 100644
--- a/test/tint/builtins/gen/var/faceForward/2c4d14.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/faceForward/2c4d14.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,36 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+void faceForward_2c4d14() {
+  float4 res = (-1.0f).xxxx;
+}
+
+void fragment_main() {
+  faceForward_2c4d14();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  faceForward_2c4d14();
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  faceForward_2c4d14();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  vertex_main_outputs v_2 = {v_1.pos};
+  return v_2;
+}
+
diff --git a/test/tint/builtins/gen/var/faceForward/524986.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/faceForward/524986.wgsl.expected.ir.dxc.hlsl
index 0ba40c6..6f9c003 100644
--- a/test/tint/builtins/gen/var/faceForward/524986.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/faceForward/524986.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,45 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  vector<float16_t, 3> prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation vector<float16_t, 3> VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+vector<float16_t, 3> faceForward_524986() {
+  vector<float16_t, 3> arg_0 = (float16_t(1.0h)).xxx;
+  vector<float16_t, 3> arg_1 = (float16_t(1.0h)).xxx;
+  vector<float16_t, 3> arg_2 = (float16_t(1.0h)).xxx;
+  vector<float16_t, 3> res = faceforward(arg_0, arg_1, arg_2);
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store<vector<float16_t, 3> >(0u, faceForward_524986());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store<vector<float16_t, 3> >(0u, faceForward_524986());
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = faceForward_524986();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
diff --git a/test/tint/builtins/gen/var/faceForward/524986.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/faceForward/524986.wgsl.expected.ir.fxc.hlsl
index 0ba40c6..66de060 100644
--- a/test/tint/builtins/gen/var/faceForward/524986.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/faceForward/524986.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,50 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct VertexOutput {
+  float4 pos;
+  vector<float16_t, 3> prevent_dce;
+};
+
+struct vertex_main_outputs {
+  nointerpolation vector<float16_t, 3> VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+vector<float16_t, 3> faceForward_524986() {
+  vector<float16_t, 3> arg_0 = (float16_t(1.0h)).xxx;
+  vector<float16_t, 3> arg_1 = (float16_t(1.0h)).xxx;
+  vector<float16_t, 3> arg_2 = (float16_t(1.0h)).xxx;
+  vector<float16_t, 3> res = faceforward(arg_0, arg_1, arg_2);
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store<vector<float16_t, 3> >(0u, faceForward_524986());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store<vector<float16_t, 3> >(0u, faceForward_524986());
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = faceForward_524986();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
+FXC validation failure:
+c:\src\dawn\Shader@0x00000241836D3AA0(3,10-18): error X3000: syntax error: unexpected token 'float16_t'
+
diff --git a/test/tint/builtins/gen/var/faceForward/5afbd5.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/faceForward/5afbd5.wgsl.expected.ir.dxc.hlsl
index 0ba40c6..c607a95 100644
--- a/test/tint/builtins/gen/var/faceForward/5afbd5.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/faceForward/5afbd5.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,45 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  float3 prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation float3 VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+float3 faceForward_5afbd5() {
+  float3 arg_0 = (1.0f).xxx;
+  float3 arg_1 = (1.0f).xxx;
+  float3 arg_2 = (1.0f).xxx;
+  float3 res = faceforward(arg_0, arg_1, arg_2);
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store3(0u, asuint(faceForward_5afbd5()));
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store3(0u, asuint(faceForward_5afbd5()));
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = faceForward_5afbd5();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
diff --git a/test/tint/builtins/gen/var/faceForward/5afbd5.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/faceForward/5afbd5.wgsl.expected.ir.fxc.hlsl
index 0ba40c6..c607a95 100644
--- a/test/tint/builtins/gen/var/faceForward/5afbd5.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/faceForward/5afbd5.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,45 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  float3 prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation float3 VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+float3 faceForward_5afbd5() {
+  float3 arg_0 = (1.0f).xxx;
+  float3 arg_1 = (1.0f).xxx;
+  float3 arg_2 = (1.0f).xxx;
+  float3 res = faceforward(arg_0, arg_1, arg_2);
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store3(0u, asuint(faceForward_5afbd5()));
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store3(0u, asuint(faceForward_5afbd5()));
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = faceForward_5afbd5();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
diff --git a/test/tint/builtins/gen/var/faceForward/b316e5.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/faceForward/b316e5.wgsl.expected.ir.dxc.hlsl
index 0ba40c6..68950c7 100644
--- a/test/tint/builtins/gen/var/faceForward/b316e5.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/faceForward/b316e5.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,45 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  float4 prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation float4 VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+float4 faceForward_b316e5() {
+  float4 arg_0 = (1.0f).xxxx;
+  float4 arg_1 = (1.0f).xxxx;
+  float4 arg_2 = (1.0f).xxxx;
+  float4 res = faceforward(arg_0, arg_1, arg_2);
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store4(0u, asuint(faceForward_b316e5()));
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store4(0u, asuint(faceForward_b316e5()));
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = faceForward_b316e5();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
diff --git a/test/tint/builtins/gen/var/faceForward/b316e5.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/faceForward/b316e5.wgsl.expected.ir.fxc.hlsl
index 0ba40c6..68950c7 100644
--- a/test/tint/builtins/gen/var/faceForward/b316e5.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/faceForward/b316e5.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,45 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  float4 prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation float4 VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+float4 faceForward_b316e5() {
+  float4 arg_0 = (1.0f).xxxx;
+  float4 arg_1 = (1.0f).xxxx;
+  float4 arg_2 = (1.0f).xxxx;
+  float4 res = faceforward(arg_0, arg_1, arg_2);
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store4(0u, asuint(faceForward_b316e5()));
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store4(0u, asuint(faceForward_b316e5()));
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = faceForward_b316e5();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
diff --git a/test/tint/builtins/gen/var/faceForward/b42ef3.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/faceForward/b42ef3.wgsl.expected.ir.dxc.hlsl
index 0ba40c6..a1aa623 100644
--- a/test/tint/builtins/gen/var/faceForward/b42ef3.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/faceForward/b42ef3.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,36 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+void faceForward_b42ef3() {
+  float2 res = (-1.0f).xx;
+}
+
+void fragment_main() {
+  faceForward_b42ef3();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  faceForward_b42ef3();
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  faceForward_b42ef3();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  vertex_main_outputs v_2 = {v_1.pos};
+  return v_2;
+}
+
diff --git a/test/tint/builtins/gen/var/faceForward/b42ef3.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/faceForward/b42ef3.wgsl.expected.ir.fxc.hlsl
index 0ba40c6..a1aa623 100644
--- a/test/tint/builtins/gen/var/faceForward/b42ef3.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/faceForward/b42ef3.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,36 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+void faceForward_b42ef3() {
+  float2 res = (-1.0f).xx;
+}
+
+void fragment_main() {
+  faceForward_b42ef3();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  faceForward_b42ef3();
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  faceForward_b42ef3();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  vertex_main_outputs v_2 = {v_1.pos};
+  return v_2;
+}
+
diff --git a/test/tint/builtins/gen/var/faceForward/cc63dc.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/faceForward/cc63dc.wgsl.expected.ir.dxc.hlsl
index 0ba40c6..b79df40 100644
--- a/test/tint/builtins/gen/var/faceForward/cc63dc.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/faceForward/cc63dc.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,45 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  vector<float16_t, 4> prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation vector<float16_t, 4> VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+vector<float16_t, 4> faceForward_cc63dc() {
+  vector<float16_t, 4> arg_0 = (float16_t(1.0h)).xxxx;
+  vector<float16_t, 4> arg_1 = (float16_t(1.0h)).xxxx;
+  vector<float16_t, 4> arg_2 = (float16_t(1.0h)).xxxx;
+  vector<float16_t, 4> res = faceforward(arg_0, arg_1, arg_2);
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store<vector<float16_t, 4> >(0u, faceForward_cc63dc());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store<vector<float16_t, 4> >(0u, faceForward_cc63dc());
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = faceForward_cc63dc();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
diff --git a/test/tint/builtins/gen/var/faceForward/cc63dc.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/faceForward/cc63dc.wgsl.expected.ir.fxc.hlsl
index 0ba40c6..4b6db24 100644
--- a/test/tint/builtins/gen/var/faceForward/cc63dc.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/faceForward/cc63dc.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,50 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct VertexOutput {
+  float4 pos;
+  vector<float16_t, 4> prevent_dce;
+};
+
+struct vertex_main_outputs {
+  nointerpolation vector<float16_t, 4> VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+vector<float16_t, 4> faceForward_cc63dc() {
+  vector<float16_t, 4> arg_0 = (float16_t(1.0h)).xxxx;
+  vector<float16_t, 4> arg_1 = (float16_t(1.0h)).xxxx;
+  vector<float16_t, 4> arg_2 = (float16_t(1.0h)).xxxx;
+  vector<float16_t, 4> res = faceforward(arg_0, arg_1, arg_2);
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store<vector<float16_t, 4> >(0u, faceForward_cc63dc());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store<vector<float16_t, 4> >(0u, faceForward_cc63dc());
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = faceForward_cc63dc();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
+FXC validation failure:
+c:\src\dawn\Shader@0x00000189C3AED290(3,10-18): error X3000: syntax error: unexpected token 'float16_t'
+
diff --git a/test/tint/builtins/gen/var/faceForward/e6908b.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/faceForward/e6908b.wgsl.expected.ir.dxc.hlsl
index 0ba40c6..2ac343f 100644
--- a/test/tint/builtins/gen/var/faceForward/e6908b.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/faceForward/e6908b.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,45 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  float2 prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation float2 VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+float2 faceForward_e6908b() {
+  float2 arg_0 = (1.0f).xx;
+  float2 arg_1 = (1.0f).xx;
+  float2 arg_2 = (1.0f).xx;
+  float2 res = faceforward(arg_0, arg_1, arg_2);
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store2(0u, asuint(faceForward_e6908b()));
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store2(0u, asuint(faceForward_e6908b()));
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = faceForward_e6908b();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
diff --git a/test/tint/builtins/gen/var/faceForward/e6908b.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/faceForward/e6908b.wgsl.expected.ir.fxc.hlsl
index 0ba40c6..2ac343f 100644
--- a/test/tint/builtins/gen/var/faceForward/e6908b.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/faceForward/e6908b.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,45 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  float2 prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation float2 VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+float2 faceForward_e6908b() {
+  float2 arg_0 = (1.0f).xx;
+  float2 arg_1 = (1.0f).xx;
+  float2 arg_2 = (1.0f).xx;
+  float2 res = faceforward(arg_0, arg_1, arg_2);
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store2(0u, asuint(faceForward_e6908b()));
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store2(0u, asuint(faceForward_e6908b()));
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = faceForward_e6908b();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
diff --git a/test/tint/builtins/gen/var/faceForward/fb0f2e.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/faceForward/fb0f2e.wgsl.expected.ir.dxc.hlsl
index 0ba40c6..b3e8a20 100644
--- a/test/tint/builtins/gen/var/faceForward/fb0f2e.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/faceForward/fb0f2e.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,45 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  vector<float16_t, 2> prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation vector<float16_t, 2> VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+vector<float16_t, 2> faceForward_fb0f2e() {
+  vector<float16_t, 2> arg_0 = (float16_t(1.0h)).xx;
+  vector<float16_t, 2> arg_1 = (float16_t(1.0h)).xx;
+  vector<float16_t, 2> arg_2 = (float16_t(1.0h)).xx;
+  vector<float16_t, 2> res = faceforward(arg_0, arg_1, arg_2);
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store<vector<float16_t, 2> >(0u, faceForward_fb0f2e());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store<vector<float16_t, 2> >(0u, faceForward_fb0f2e());
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = faceForward_fb0f2e();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
diff --git a/test/tint/builtins/gen/var/faceForward/fb0f2e.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/faceForward/fb0f2e.wgsl.expected.ir.fxc.hlsl
index 0ba40c6..4cb07c4 100644
--- a/test/tint/builtins/gen/var/faceForward/fb0f2e.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/faceForward/fb0f2e.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,50 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct VertexOutput {
+  float4 pos;
+  vector<float16_t, 2> prevent_dce;
+};
+
+struct vertex_main_outputs {
+  nointerpolation vector<float16_t, 2> VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+vector<float16_t, 2> faceForward_fb0f2e() {
+  vector<float16_t, 2> arg_0 = (float16_t(1.0h)).xx;
+  vector<float16_t, 2> arg_1 = (float16_t(1.0h)).xx;
+  vector<float16_t, 2> arg_2 = (float16_t(1.0h)).xx;
+  vector<float16_t, 2> res = faceforward(arg_0, arg_1, arg_2);
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store<vector<float16_t, 2> >(0u, faceForward_fb0f2e());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store<vector<float16_t, 2> >(0u, faceForward_fb0f2e());
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = faceForward_fb0f2e();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
+FXC validation failure:
+c:\src\dawn\Shader@0x0000013267A27DF0(3,10-18): error X3000: syntax error: unexpected token 'float16_t'
+
diff --git a/test/tint/builtins/gen/var/faceForward/fe522b.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/faceForward/fe522b.wgsl.expected.ir.dxc.hlsl
index 0ba40c6..aaac946 100644
--- a/test/tint/builtins/gen/var/faceForward/fe522b.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/faceForward/fe522b.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,36 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+void faceForward_fe522b() {
+  float3 res = (-1.0f).xxx;
+}
+
+void fragment_main() {
+  faceForward_fe522b();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  faceForward_fe522b();
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  faceForward_fe522b();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  vertex_main_outputs v_2 = {v_1.pos};
+  return v_2;
+}
+
diff --git a/test/tint/builtins/gen/var/faceForward/fe522b.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/faceForward/fe522b.wgsl.expected.ir.fxc.hlsl
index 0ba40c6..aaac946 100644
--- a/test/tint/builtins/gen/var/faceForward/fe522b.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/faceForward/fe522b.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,36 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+void faceForward_fe522b() {
+  float3 res = (-1.0f).xxx;
+}
+
+void fragment_main() {
+  faceForward_fe522b();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  faceForward_fe522b();
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  faceForward_fe522b();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  vertex_main_outputs v_2 = {v_1.pos};
+  return v_2;
+}
+
diff --git a/test/tint/builtins/gen/var/firstLeadingBit/000ff3.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/firstLeadingBit/000ff3.wgsl.expected.ir.dxc.hlsl
index b8ab4cd..6c41644 100644
--- a/test/tint/builtins/gen/var/firstLeadingBit/000ff3.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/firstLeadingBit/000ff3.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,48 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  uint4 prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: firstLeadingBit
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation uint4 VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+uint4 firstLeadingBit_000ff3() {
+  uint4 arg_0 = (1u).xxxx;
+  uint4 v = arg_0;
+  uint4 v_1 = ((((v & (4294901760u).xxxx) == (0u).xxxx)) ? ((0u).xxxx) : ((16u).xxxx));
+  uint4 v_2 = (((((v >> v_1) & (65280u).xxxx) == (0u).xxxx)) ? ((0u).xxxx) : ((8u).xxxx));
+  uint4 v_3 = ((((((v >> v_1) >> v_2) & (240u).xxxx) == (0u).xxxx)) ? ((0u).xxxx) : ((4u).xxxx));
+  uint4 v_4 = (((((((v >> v_1) >> v_2) >> v_3) & (12u).xxxx) == (0u).xxxx)) ? ((0u).xxxx) : ((2u).xxxx));
+  uint4 res = (((((((v >> v_1) >> v_2) >> v_3) >> v_4) == (0u).xxxx)) ? ((4294967295u).xxxx) : ((v_1 | (v_2 | (v_3 | (v_4 | ((((((((v >> v_1) >> v_2) >> v_3) >> v_4) & (2u).xxxx) == (0u).xxxx)) ? ((0u).xxxx) : ((1u).xxxx))))))));
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store4(0u, firstLeadingBit_000ff3());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store4(0u, firstLeadingBit_000ff3());
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = firstLeadingBit_000ff3();
+  VertexOutput v_5 = tint_symbol;
+  return v_5;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_6 = vertex_main_inner();
+  VertexOutput v_7 = v_6;
+  VertexOutput v_8 = v_6;
+  vertex_main_outputs v_9 = {v_8.prevent_dce, v_7.pos};
+  return v_9;
+}
+
diff --git a/test/tint/builtins/gen/var/firstLeadingBit/000ff3.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/firstLeadingBit/000ff3.wgsl.expected.ir.fxc.hlsl
index b8ab4cd..6c41644 100644
--- a/test/tint/builtins/gen/var/firstLeadingBit/000ff3.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/firstLeadingBit/000ff3.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,48 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  uint4 prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: firstLeadingBit
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation uint4 VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+uint4 firstLeadingBit_000ff3() {
+  uint4 arg_0 = (1u).xxxx;
+  uint4 v = arg_0;
+  uint4 v_1 = ((((v & (4294901760u).xxxx) == (0u).xxxx)) ? ((0u).xxxx) : ((16u).xxxx));
+  uint4 v_2 = (((((v >> v_1) & (65280u).xxxx) == (0u).xxxx)) ? ((0u).xxxx) : ((8u).xxxx));
+  uint4 v_3 = ((((((v >> v_1) >> v_2) & (240u).xxxx) == (0u).xxxx)) ? ((0u).xxxx) : ((4u).xxxx));
+  uint4 v_4 = (((((((v >> v_1) >> v_2) >> v_3) & (12u).xxxx) == (0u).xxxx)) ? ((0u).xxxx) : ((2u).xxxx));
+  uint4 res = (((((((v >> v_1) >> v_2) >> v_3) >> v_4) == (0u).xxxx)) ? ((4294967295u).xxxx) : ((v_1 | (v_2 | (v_3 | (v_4 | ((((((((v >> v_1) >> v_2) >> v_3) >> v_4) & (2u).xxxx) == (0u).xxxx)) ? ((0u).xxxx) : ((1u).xxxx))))))));
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store4(0u, firstLeadingBit_000ff3());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store4(0u, firstLeadingBit_000ff3());
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = firstLeadingBit_000ff3();
+  VertexOutput v_5 = tint_symbol;
+  return v_5;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_6 = vertex_main_inner();
+  VertexOutput v_7 = v_6;
+  VertexOutput v_8 = v_6;
+  vertex_main_outputs v_9 = {v_8.prevent_dce, v_7.pos};
+  return v_9;
+}
+
diff --git a/test/tint/builtins/gen/var/firstLeadingBit/35053e.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/firstLeadingBit/35053e.wgsl.expected.ir.dxc.hlsl
index b8ab4cd..020540d 100644
--- a/test/tint/builtins/gen/var/firstLeadingBit/35053e.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/firstLeadingBit/35053e.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,49 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  int3 prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: firstLeadingBit
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation int3 VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+int3 firstLeadingBit_35053e() {
+  int3 arg_0 = (1).xxx;
+  uint3 v = asuint(arg_0);
+  uint3 v_1 = (((v < (2147483648u).xxx)) ? (v) : (~(v)));
+  uint3 v_2 = ((((v_1 & (4294901760u).xxx) == (0u).xxx)) ? ((0u).xxx) : ((16u).xxx));
+  uint3 v_3 = (((((v_1 >> v_2) & (65280u).xxx) == (0u).xxx)) ? ((0u).xxx) : ((8u).xxx));
+  uint3 v_4 = ((((((v_1 >> v_2) >> v_3) & (240u).xxx) == (0u).xxx)) ? ((0u).xxx) : ((4u).xxx));
+  uint3 v_5 = (((((((v_1 >> v_2) >> v_3) >> v_4) & (12u).xxx) == (0u).xxx)) ? ((0u).xxx) : ((2u).xxx));
+  int3 res = asint((((((((v_1 >> v_2) >> v_3) >> v_4) >> v_5) == (0u).xxx)) ? ((4294967295u).xxx) : ((v_2 | (v_3 | (v_4 | (v_5 | ((((((((v_1 >> v_2) >> v_3) >> v_4) >> v_5) & (2u).xxx) == (0u).xxx)) ? ((0u).xxx) : ((1u).xxx)))))))));
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store3(0u, asuint(firstLeadingBit_35053e()));
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store3(0u, asuint(firstLeadingBit_35053e()));
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = firstLeadingBit_35053e();
+  VertexOutput v_6 = tint_symbol;
+  return v_6;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_7 = vertex_main_inner();
+  VertexOutput v_8 = v_7;
+  VertexOutput v_9 = v_7;
+  vertex_main_outputs v_10 = {v_9.prevent_dce, v_8.pos};
+  return v_10;
+}
+
diff --git a/test/tint/builtins/gen/var/firstLeadingBit/35053e.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/firstLeadingBit/35053e.wgsl.expected.ir.fxc.hlsl
index b8ab4cd..020540d 100644
--- a/test/tint/builtins/gen/var/firstLeadingBit/35053e.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/firstLeadingBit/35053e.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,49 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  int3 prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: firstLeadingBit
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation int3 VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+int3 firstLeadingBit_35053e() {
+  int3 arg_0 = (1).xxx;
+  uint3 v = asuint(arg_0);
+  uint3 v_1 = (((v < (2147483648u).xxx)) ? (v) : (~(v)));
+  uint3 v_2 = ((((v_1 & (4294901760u).xxx) == (0u).xxx)) ? ((0u).xxx) : ((16u).xxx));
+  uint3 v_3 = (((((v_1 >> v_2) & (65280u).xxx) == (0u).xxx)) ? ((0u).xxx) : ((8u).xxx));
+  uint3 v_4 = ((((((v_1 >> v_2) >> v_3) & (240u).xxx) == (0u).xxx)) ? ((0u).xxx) : ((4u).xxx));
+  uint3 v_5 = (((((((v_1 >> v_2) >> v_3) >> v_4) & (12u).xxx) == (0u).xxx)) ? ((0u).xxx) : ((2u).xxx));
+  int3 res = asint((((((((v_1 >> v_2) >> v_3) >> v_4) >> v_5) == (0u).xxx)) ? ((4294967295u).xxx) : ((v_2 | (v_3 | (v_4 | (v_5 | ((((((((v_1 >> v_2) >> v_3) >> v_4) >> v_5) & (2u).xxx) == (0u).xxx)) ? ((0u).xxx) : ((1u).xxx)))))))));
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store3(0u, asuint(firstLeadingBit_35053e()));
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store3(0u, asuint(firstLeadingBit_35053e()));
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = firstLeadingBit_35053e();
+  VertexOutput v_6 = tint_symbol;
+  return v_6;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_7 = vertex_main_inner();
+  VertexOutput v_8 = v_7;
+  VertexOutput v_9 = v_7;
+  vertex_main_outputs v_10 = {v_9.prevent_dce, v_8.pos};
+  return v_10;
+}
+
diff --git a/test/tint/builtins/gen/var/firstLeadingBit/3fd7d0.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/firstLeadingBit/3fd7d0.wgsl.expected.ir.dxc.hlsl
index b8ab4cd..499860f 100644
--- a/test/tint/builtins/gen/var/firstLeadingBit/3fd7d0.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/firstLeadingBit/3fd7d0.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,48 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  uint3 prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: firstLeadingBit
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation uint3 VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+uint3 firstLeadingBit_3fd7d0() {
+  uint3 arg_0 = (1u).xxx;
+  uint3 v = arg_0;
+  uint3 v_1 = ((((v & (4294901760u).xxx) == (0u).xxx)) ? ((0u).xxx) : ((16u).xxx));
+  uint3 v_2 = (((((v >> v_1) & (65280u).xxx) == (0u).xxx)) ? ((0u).xxx) : ((8u).xxx));
+  uint3 v_3 = ((((((v >> v_1) >> v_2) & (240u).xxx) == (0u).xxx)) ? ((0u).xxx) : ((4u).xxx));
+  uint3 v_4 = (((((((v >> v_1) >> v_2) >> v_3) & (12u).xxx) == (0u).xxx)) ? ((0u).xxx) : ((2u).xxx));
+  uint3 res = (((((((v >> v_1) >> v_2) >> v_3) >> v_4) == (0u).xxx)) ? ((4294967295u).xxx) : ((v_1 | (v_2 | (v_3 | (v_4 | ((((((((v >> v_1) >> v_2) >> v_3) >> v_4) & (2u).xxx) == (0u).xxx)) ? ((0u).xxx) : ((1u).xxx))))))));
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store3(0u, firstLeadingBit_3fd7d0());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store3(0u, firstLeadingBit_3fd7d0());
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = firstLeadingBit_3fd7d0();
+  VertexOutput v_5 = tint_symbol;
+  return v_5;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_6 = vertex_main_inner();
+  VertexOutput v_7 = v_6;
+  VertexOutput v_8 = v_6;
+  vertex_main_outputs v_9 = {v_8.prevent_dce, v_7.pos};
+  return v_9;
+}
+
diff --git a/test/tint/builtins/gen/var/firstLeadingBit/3fd7d0.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/firstLeadingBit/3fd7d0.wgsl.expected.ir.fxc.hlsl
index b8ab4cd..499860f 100644
--- a/test/tint/builtins/gen/var/firstLeadingBit/3fd7d0.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/firstLeadingBit/3fd7d0.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,48 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  uint3 prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: firstLeadingBit
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation uint3 VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+uint3 firstLeadingBit_3fd7d0() {
+  uint3 arg_0 = (1u).xxx;
+  uint3 v = arg_0;
+  uint3 v_1 = ((((v & (4294901760u).xxx) == (0u).xxx)) ? ((0u).xxx) : ((16u).xxx));
+  uint3 v_2 = (((((v >> v_1) & (65280u).xxx) == (0u).xxx)) ? ((0u).xxx) : ((8u).xxx));
+  uint3 v_3 = ((((((v >> v_1) >> v_2) & (240u).xxx) == (0u).xxx)) ? ((0u).xxx) : ((4u).xxx));
+  uint3 v_4 = (((((((v >> v_1) >> v_2) >> v_3) & (12u).xxx) == (0u).xxx)) ? ((0u).xxx) : ((2u).xxx));
+  uint3 res = (((((((v >> v_1) >> v_2) >> v_3) >> v_4) == (0u).xxx)) ? ((4294967295u).xxx) : ((v_1 | (v_2 | (v_3 | (v_4 | ((((((((v >> v_1) >> v_2) >> v_3) >> v_4) & (2u).xxx) == (0u).xxx)) ? ((0u).xxx) : ((1u).xxx))))))));
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store3(0u, firstLeadingBit_3fd7d0());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store3(0u, firstLeadingBit_3fd7d0());
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = firstLeadingBit_3fd7d0();
+  VertexOutput v_5 = tint_symbol;
+  return v_5;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_6 = vertex_main_inner();
+  VertexOutput v_7 = v_6;
+  VertexOutput v_8 = v_6;
+  vertex_main_outputs v_9 = {v_8.prevent_dce, v_7.pos};
+  return v_9;
+}
+
diff --git a/test/tint/builtins/gen/var/firstLeadingBit/57a1a3.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/firstLeadingBit/57a1a3.wgsl.expected.ir.dxc.hlsl
index b8ab4cd..47e9e15 100644
--- a/test/tint/builtins/gen/var/firstLeadingBit/57a1a3.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/firstLeadingBit/57a1a3.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,49 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  int prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: firstLeadingBit
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation int VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+int firstLeadingBit_57a1a3() {
+  int arg_0 = 1;
+  uint v = asuint(arg_0);
+  uint v_1 = (((v < 2147483648u)) ? (v) : (~(v)));
+  uint v_2 = ((((v_1 & 4294901760u) == 0u)) ? (0u) : (16u));
+  uint v_3 = (((((v_1 >> v_2) & 65280u) == 0u)) ? (0u) : (8u));
+  uint v_4 = ((((((v_1 >> v_2) >> v_3) & 240u) == 0u)) ? (0u) : (4u));
+  uint v_5 = (((((((v_1 >> v_2) >> v_3) >> v_4) & 12u) == 0u)) ? (0u) : (2u));
+  int res = asint((((((((v_1 >> v_2) >> v_3) >> v_4) >> v_5) == 0u)) ? (4294967295u) : ((v_2 | (v_3 | (v_4 | (v_5 | ((((((((v_1 >> v_2) >> v_3) >> v_4) >> v_5) & 2u) == 0u)) ? (0u) : (1u)))))))));
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store(0u, asuint(firstLeadingBit_57a1a3()));
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store(0u, asuint(firstLeadingBit_57a1a3()));
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = firstLeadingBit_57a1a3();
+  VertexOutput v_6 = tint_symbol;
+  return v_6;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_7 = vertex_main_inner();
+  VertexOutput v_8 = v_7;
+  VertexOutput v_9 = v_7;
+  vertex_main_outputs v_10 = {v_9.prevent_dce, v_8.pos};
+  return v_10;
+}
+
diff --git a/test/tint/builtins/gen/var/firstLeadingBit/57a1a3.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/firstLeadingBit/57a1a3.wgsl.expected.ir.fxc.hlsl
index b8ab4cd..47e9e15 100644
--- a/test/tint/builtins/gen/var/firstLeadingBit/57a1a3.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/firstLeadingBit/57a1a3.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,49 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  int prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: firstLeadingBit
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation int VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+int firstLeadingBit_57a1a3() {
+  int arg_0 = 1;
+  uint v = asuint(arg_0);
+  uint v_1 = (((v < 2147483648u)) ? (v) : (~(v)));
+  uint v_2 = ((((v_1 & 4294901760u) == 0u)) ? (0u) : (16u));
+  uint v_3 = (((((v_1 >> v_2) & 65280u) == 0u)) ? (0u) : (8u));
+  uint v_4 = ((((((v_1 >> v_2) >> v_3) & 240u) == 0u)) ? (0u) : (4u));
+  uint v_5 = (((((((v_1 >> v_2) >> v_3) >> v_4) & 12u) == 0u)) ? (0u) : (2u));
+  int res = asint((((((((v_1 >> v_2) >> v_3) >> v_4) >> v_5) == 0u)) ? (4294967295u) : ((v_2 | (v_3 | (v_4 | (v_5 | ((((((((v_1 >> v_2) >> v_3) >> v_4) >> v_5) & 2u) == 0u)) ? (0u) : (1u)))))))));
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store(0u, asuint(firstLeadingBit_57a1a3()));
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store(0u, asuint(firstLeadingBit_57a1a3()));
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = firstLeadingBit_57a1a3();
+  VertexOutput v_6 = tint_symbol;
+  return v_6;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_7 = vertex_main_inner();
+  VertexOutput v_8 = v_7;
+  VertexOutput v_9 = v_7;
+  vertex_main_outputs v_10 = {v_9.prevent_dce, v_8.pos};
+  return v_10;
+}
+
diff --git a/test/tint/builtins/gen/var/firstLeadingBit/6fe804.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/firstLeadingBit/6fe804.wgsl.expected.ir.dxc.hlsl
index b8ab4cd..5f58715 100644
--- a/test/tint/builtins/gen/var/firstLeadingBit/6fe804.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/firstLeadingBit/6fe804.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,48 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  uint2 prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: firstLeadingBit
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation uint2 VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+uint2 firstLeadingBit_6fe804() {
+  uint2 arg_0 = (1u).xx;
+  uint2 v = arg_0;
+  uint2 v_1 = ((((v & (4294901760u).xx) == (0u).xx)) ? ((0u).xx) : ((16u).xx));
+  uint2 v_2 = (((((v >> v_1) & (65280u).xx) == (0u).xx)) ? ((0u).xx) : ((8u).xx));
+  uint2 v_3 = ((((((v >> v_1) >> v_2) & (240u).xx) == (0u).xx)) ? ((0u).xx) : ((4u).xx));
+  uint2 v_4 = (((((((v >> v_1) >> v_2) >> v_3) & (12u).xx) == (0u).xx)) ? ((0u).xx) : ((2u).xx));
+  uint2 res = (((((((v >> v_1) >> v_2) >> v_3) >> v_4) == (0u).xx)) ? ((4294967295u).xx) : ((v_1 | (v_2 | (v_3 | (v_4 | ((((((((v >> v_1) >> v_2) >> v_3) >> v_4) & (2u).xx) == (0u).xx)) ? ((0u).xx) : ((1u).xx))))))));
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store2(0u, firstLeadingBit_6fe804());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store2(0u, firstLeadingBit_6fe804());
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = firstLeadingBit_6fe804();
+  VertexOutput v_5 = tint_symbol;
+  return v_5;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_6 = vertex_main_inner();
+  VertexOutput v_7 = v_6;
+  VertexOutput v_8 = v_6;
+  vertex_main_outputs v_9 = {v_8.prevent_dce, v_7.pos};
+  return v_9;
+}
+
diff --git a/test/tint/builtins/gen/var/firstLeadingBit/6fe804.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/firstLeadingBit/6fe804.wgsl.expected.ir.fxc.hlsl
index b8ab4cd..5f58715 100644
--- a/test/tint/builtins/gen/var/firstLeadingBit/6fe804.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/firstLeadingBit/6fe804.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,48 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  uint2 prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: firstLeadingBit
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation uint2 VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+uint2 firstLeadingBit_6fe804() {
+  uint2 arg_0 = (1u).xx;
+  uint2 v = arg_0;
+  uint2 v_1 = ((((v & (4294901760u).xx) == (0u).xx)) ? ((0u).xx) : ((16u).xx));
+  uint2 v_2 = (((((v >> v_1) & (65280u).xx) == (0u).xx)) ? ((0u).xx) : ((8u).xx));
+  uint2 v_3 = ((((((v >> v_1) >> v_2) & (240u).xx) == (0u).xx)) ? ((0u).xx) : ((4u).xx));
+  uint2 v_4 = (((((((v >> v_1) >> v_2) >> v_3) & (12u).xx) == (0u).xx)) ? ((0u).xx) : ((2u).xx));
+  uint2 res = (((((((v >> v_1) >> v_2) >> v_3) >> v_4) == (0u).xx)) ? ((4294967295u).xx) : ((v_1 | (v_2 | (v_3 | (v_4 | ((((((((v >> v_1) >> v_2) >> v_3) >> v_4) & (2u).xx) == (0u).xx)) ? ((0u).xx) : ((1u).xx))))))));
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store2(0u, firstLeadingBit_6fe804());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store2(0u, firstLeadingBit_6fe804());
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = firstLeadingBit_6fe804();
+  VertexOutput v_5 = tint_symbol;
+  return v_5;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_6 = vertex_main_inner();
+  VertexOutput v_7 = v_6;
+  VertexOutput v_8 = v_6;
+  vertex_main_outputs v_9 = {v_8.prevent_dce, v_7.pos};
+  return v_9;
+}
+
diff --git a/test/tint/builtins/gen/var/firstLeadingBit/a622c2.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/firstLeadingBit/a622c2.wgsl.expected.ir.dxc.hlsl
index b8ab4cd..d98a77e 100644
--- a/test/tint/builtins/gen/var/firstLeadingBit/a622c2.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/firstLeadingBit/a622c2.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,49 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  int2 prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: firstLeadingBit
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation int2 VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+int2 firstLeadingBit_a622c2() {
+  int2 arg_0 = (1).xx;
+  uint2 v = asuint(arg_0);
+  uint2 v_1 = (((v < (2147483648u).xx)) ? (v) : (~(v)));
+  uint2 v_2 = ((((v_1 & (4294901760u).xx) == (0u).xx)) ? ((0u).xx) : ((16u).xx));
+  uint2 v_3 = (((((v_1 >> v_2) & (65280u).xx) == (0u).xx)) ? ((0u).xx) : ((8u).xx));
+  uint2 v_4 = ((((((v_1 >> v_2) >> v_3) & (240u).xx) == (0u).xx)) ? ((0u).xx) : ((4u).xx));
+  uint2 v_5 = (((((((v_1 >> v_2) >> v_3) >> v_4) & (12u).xx) == (0u).xx)) ? ((0u).xx) : ((2u).xx));
+  int2 res = asint((((((((v_1 >> v_2) >> v_3) >> v_4) >> v_5) == (0u).xx)) ? ((4294967295u).xx) : ((v_2 | (v_3 | (v_4 | (v_5 | ((((((((v_1 >> v_2) >> v_3) >> v_4) >> v_5) & (2u).xx) == (0u).xx)) ? ((0u).xx) : ((1u).xx)))))))));
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store2(0u, asuint(firstLeadingBit_a622c2()));
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store2(0u, asuint(firstLeadingBit_a622c2()));
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = firstLeadingBit_a622c2();
+  VertexOutput v_6 = tint_symbol;
+  return v_6;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_7 = vertex_main_inner();
+  VertexOutput v_8 = v_7;
+  VertexOutput v_9 = v_7;
+  vertex_main_outputs v_10 = {v_9.prevent_dce, v_8.pos};
+  return v_10;
+}
+
diff --git a/test/tint/builtins/gen/var/firstLeadingBit/a622c2.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/firstLeadingBit/a622c2.wgsl.expected.ir.fxc.hlsl
index b8ab4cd..d98a77e 100644
--- a/test/tint/builtins/gen/var/firstLeadingBit/a622c2.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/firstLeadingBit/a622c2.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,49 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  int2 prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: firstLeadingBit
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation int2 VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+int2 firstLeadingBit_a622c2() {
+  int2 arg_0 = (1).xx;
+  uint2 v = asuint(arg_0);
+  uint2 v_1 = (((v < (2147483648u).xx)) ? (v) : (~(v)));
+  uint2 v_2 = ((((v_1 & (4294901760u).xx) == (0u).xx)) ? ((0u).xx) : ((16u).xx));
+  uint2 v_3 = (((((v_1 >> v_2) & (65280u).xx) == (0u).xx)) ? ((0u).xx) : ((8u).xx));
+  uint2 v_4 = ((((((v_1 >> v_2) >> v_3) & (240u).xx) == (0u).xx)) ? ((0u).xx) : ((4u).xx));
+  uint2 v_5 = (((((((v_1 >> v_2) >> v_3) >> v_4) & (12u).xx) == (0u).xx)) ? ((0u).xx) : ((2u).xx));
+  int2 res = asint((((((((v_1 >> v_2) >> v_3) >> v_4) >> v_5) == (0u).xx)) ? ((4294967295u).xx) : ((v_2 | (v_3 | (v_4 | (v_5 | ((((((((v_1 >> v_2) >> v_3) >> v_4) >> v_5) & (2u).xx) == (0u).xx)) ? ((0u).xx) : ((1u).xx)))))))));
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store2(0u, asuint(firstLeadingBit_a622c2()));
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store2(0u, asuint(firstLeadingBit_a622c2()));
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = firstLeadingBit_a622c2();
+  VertexOutput v_6 = tint_symbol;
+  return v_6;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_7 = vertex_main_inner();
+  VertexOutput v_8 = v_7;
+  VertexOutput v_9 = v_7;
+  vertex_main_outputs v_10 = {v_9.prevent_dce, v_8.pos};
+  return v_10;
+}
+
diff --git a/test/tint/builtins/gen/var/firstLeadingBit/c1f940.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/firstLeadingBit/c1f940.wgsl.expected.ir.dxc.hlsl
index b8ab4cd..fde5c26 100644
--- a/test/tint/builtins/gen/var/firstLeadingBit/c1f940.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/firstLeadingBit/c1f940.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,49 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  int4 prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: firstLeadingBit
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation int4 VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+int4 firstLeadingBit_c1f940() {
+  int4 arg_0 = (1).xxxx;
+  uint4 v = asuint(arg_0);
+  uint4 v_1 = (((v < (2147483648u).xxxx)) ? (v) : (~(v)));
+  uint4 v_2 = ((((v_1 & (4294901760u).xxxx) == (0u).xxxx)) ? ((0u).xxxx) : ((16u).xxxx));
+  uint4 v_3 = (((((v_1 >> v_2) & (65280u).xxxx) == (0u).xxxx)) ? ((0u).xxxx) : ((8u).xxxx));
+  uint4 v_4 = ((((((v_1 >> v_2) >> v_3) & (240u).xxxx) == (0u).xxxx)) ? ((0u).xxxx) : ((4u).xxxx));
+  uint4 v_5 = (((((((v_1 >> v_2) >> v_3) >> v_4) & (12u).xxxx) == (0u).xxxx)) ? ((0u).xxxx) : ((2u).xxxx));
+  int4 res = asint((((((((v_1 >> v_2) >> v_3) >> v_4) >> v_5) == (0u).xxxx)) ? ((4294967295u).xxxx) : ((v_2 | (v_3 | (v_4 | (v_5 | ((((((((v_1 >> v_2) >> v_3) >> v_4) >> v_5) & (2u).xxxx) == (0u).xxxx)) ? ((0u).xxxx) : ((1u).xxxx)))))))));
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store4(0u, asuint(firstLeadingBit_c1f940()));
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store4(0u, asuint(firstLeadingBit_c1f940()));
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = firstLeadingBit_c1f940();
+  VertexOutput v_6 = tint_symbol;
+  return v_6;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_7 = vertex_main_inner();
+  VertexOutput v_8 = v_7;
+  VertexOutput v_9 = v_7;
+  vertex_main_outputs v_10 = {v_9.prevent_dce, v_8.pos};
+  return v_10;
+}
+
diff --git a/test/tint/builtins/gen/var/firstLeadingBit/c1f940.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/firstLeadingBit/c1f940.wgsl.expected.ir.fxc.hlsl
index b8ab4cd..fde5c26 100644
--- a/test/tint/builtins/gen/var/firstLeadingBit/c1f940.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/firstLeadingBit/c1f940.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,49 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  int4 prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: firstLeadingBit
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation int4 VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+int4 firstLeadingBit_c1f940() {
+  int4 arg_0 = (1).xxxx;
+  uint4 v = asuint(arg_0);
+  uint4 v_1 = (((v < (2147483648u).xxxx)) ? (v) : (~(v)));
+  uint4 v_2 = ((((v_1 & (4294901760u).xxxx) == (0u).xxxx)) ? ((0u).xxxx) : ((16u).xxxx));
+  uint4 v_3 = (((((v_1 >> v_2) & (65280u).xxxx) == (0u).xxxx)) ? ((0u).xxxx) : ((8u).xxxx));
+  uint4 v_4 = ((((((v_1 >> v_2) >> v_3) & (240u).xxxx) == (0u).xxxx)) ? ((0u).xxxx) : ((4u).xxxx));
+  uint4 v_5 = (((((((v_1 >> v_2) >> v_3) >> v_4) & (12u).xxxx) == (0u).xxxx)) ? ((0u).xxxx) : ((2u).xxxx));
+  int4 res = asint((((((((v_1 >> v_2) >> v_3) >> v_4) >> v_5) == (0u).xxxx)) ? ((4294967295u).xxxx) : ((v_2 | (v_3 | (v_4 | (v_5 | ((((((((v_1 >> v_2) >> v_3) >> v_4) >> v_5) & (2u).xxxx) == (0u).xxxx)) ? ((0u).xxxx) : ((1u).xxxx)))))))));
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store4(0u, asuint(firstLeadingBit_c1f940()));
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store4(0u, asuint(firstLeadingBit_c1f940()));
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = firstLeadingBit_c1f940();
+  VertexOutput v_6 = tint_symbol;
+  return v_6;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_7 = vertex_main_inner();
+  VertexOutput v_8 = v_7;
+  VertexOutput v_9 = v_7;
+  vertex_main_outputs v_10 = {v_9.prevent_dce, v_8.pos};
+  return v_10;
+}
+
diff --git a/test/tint/builtins/gen/var/firstLeadingBit/f0779d.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/firstLeadingBit/f0779d.wgsl.expected.ir.dxc.hlsl
index b8ab4cd..cb8c36f 100644
--- a/test/tint/builtins/gen/var/firstLeadingBit/f0779d.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/firstLeadingBit/f0779d.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,48 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  uint prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: firstLeadingBit
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation uint VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+uint firstLeadingBit_f0779d() {
+  uint arg_0 = 1u;
+  uint v = arg_0;
+  uint v_1 = ((((v & 4294901760u) == 0u)) ? (0u) : (16u));
+  uint v_2 = (((((v >> v_1) & 65280u) == 0u)) ? (0u) : (8u));
+  uint v_3 = ((((((v >> v_1) >> v_2) & 240u) == 0u)) ? (0u) : (4u));
+  uint v_4 = (((((((v >> v_1) >> v_2) >> v_3) & 12u) == 0u)) ? (0u) : (2u));
+  uint res = (((((((v >> v_1) >> v_2) >> v_3) >> v_4) == 0u)) ? (4294967295u) : ((v_1 | (v_2 | (v_3 | (v_4 | ((((((((v >> v_1) >> v_2) >> v_3) >> v_4) & 2u) == 0u)) ? (0u) : (1u))))))));
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store(0u, firstLeadingBit_f0779d());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store(0u, firstLeadingBit_f0779d());
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = firstLeadingBit_f0779d();
+  VertexOutput v_5 = tint_symbol;
+  return v_5;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_6 = vertex_main_inner();
+  VertexOutput v_7 = v_6;
+  VertexOutput v_8 = v_6;
+  vertex_main_outputs v_9 = {v_8.prevent_dce, v_7.pos};
+  return v_9;
+}
+
diff --git a/test/tint/builtins/gen/var/firstLeadingBit/f0779d.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/firstLeadingBit/f0779d.wgsl.expected.ir.fxc.hlsl
index b8ab4cd..cb8c36f 100644
--- a/test/tint/builtins/gen/var/firstLeadingBit/f0779d.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/firstLeadingBit/f0779d.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,48 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  uint prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: firstLeadingBit
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation uint VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+uint firstLeadingBit_f0779d() {
+  uint arg_0 = 1u;
+  uint v = arg_0;
+  uint v_1 = ((((v & 4294901760u) == 0u)) ? (0u) : (16u));
+  uint v_2 = (((((v >> v_1) & 65280u) == 0u)) ? (0u) : (8u));
+  uint v_3 = ((((((v >> v_1) >> v_2) & 240u) == 0u)) ? (0u) : (4u));
+  uint v_4 = (((((((v >> v_1) >> v_2) >> v_3) & 12u) == 0u)) ? (0u) : (2u));
+  uint res = (((((((v >> v_1) >> v_2) >> v_3) >> v_4) == 0u)) ? (4294967295u) : ((v_1 | (v_2 | (v_3 | (v_4 | ((((((((v >> v_1) >> v_2) >> v_3) >> v_4) & 2u) == 0u)) ? (0u) : (1u))))))));
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store(0u, firstLeadingBit_f0779d());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store(0u, firstLeadingBit_f0779d());
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = firstLeadingBit_f0779d();
+  VertexOutput v_5 = tint_symbol;
+  return v_5;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_6 = vertex_main_inner();
+  VertexOutput v_7 = v_6;
+  VertexOutput v_8 = v_6;
+  vertex_main_outputs v_9 = {v_8.prevent_dce, v_7.pos};
+  return v_9;
+}
+
diff --git a/test/tint/builtins/gen/var/firstTrailingBit/110f2c.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/firstTrailingBit/110f2c.wgsl.expected.ir.dxc.hlsl
index 7d9b5a7..ac70d11 100644
--- a/test/tint/builtins/gen/var/firstTrailingBit/110f2c.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/firstTrailingBit/110f2c.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,48 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  uint4 prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: firstTrailingBit
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation uint4 VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+uint4 firstTrailingBit_110f2c() {
+  uint4 arg_0 = (1u).xxxx;
+  uint4 v = arg_0;
+  uint4 v_1 = ((((v & (65535u).xxxx) == (0u).xxxx)) ? ((16u).xxxx) : ((0u).xxxx));
+  uint4 v_2 = (((((v >> v_1) & (255u).xxxx) == (0u).xxxx)) ? ((8u).xxxx) : ((0u).xxxx));
+  uint4 v_3 = ((((((v >> v_1) >> v_2) & (15u).xxxx) == (0u).xxxx)) ? ((4u).xxxx) : ((0u).xxxx));
+  uint4 v_4 = (((((((v >> v_1) >> v_2) >> v_3) & (3u).xxxx) == (0u).xxxx)) ? ((2u).xxxx) : ((0u).xxxx));
+  uint4 res = (((((((v >> v_1) >> v_2) >> v_3) >> v_4) == (0u).xxxx)) ? ((4294967295u).xxxx) : ((v_1 | (v_2 | (v_3 | (v_4 | ((((((((v >> v_1) >> v_2) >> v_3) >> v_4) & (1u).xxxx) == (0u).xxxx)) ? ((1u).xxxx) : ((0u).xxxx))))))));
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store4(0u, firstTrailingBit_110f2c());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store4(0u, firstTrailingBit_110f2c());
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = firstTrailingBit_110f2c();
+  VertexOutput v_5 = tint_symbol;
+  return v_5;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_6 = vertex_main_inner();
+  VertexOutput v_7 = v_6;
+  VertexOutput v_8 = v_6;
+  vertex_main_outputs v_9 = {v_8.prevent_dce, v_7.pos};
+  return v_9;
+}
+
diff --git a/test/tint/builtins/gen/var/firstTrailingBit/110f2c.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/firstTrailingBit/110f2c.wgsl.expected.ir.fxc.hlsl
index 7d9b5a7..ac70d11 100644
--- a/test/tint/builtins/gen/var/firstTrailingBit/110f2c.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/firstTrailingBit/110f2c.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,48 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  uint4 prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: firstTrailingBit
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation uint4 VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+uint4 firstTrailingBit_110f2c() {
+  uint4 arg_0 = (1u).xxxx;
+  uint4 v = arg_0;
+  uint4 v_1 = ((((v & (65535u).xxxx) == (0u).xxxx)) ? ((16u).xxxx) : ((0u).xxxx));
+  uint4 v_2 = (((((v >> v_1) & (255u).xxxx) == (0u).xxxx)) ? ((8u).xxxx) : ((0u).xxxx));
+  uint4 v_3 = ((((((v >> v_1) >> v_2) & (15u).xxxx) == (0u).xxxx)) ? ((4u).xxxx) : ((0u).xxxx));
+  uint4 v_4 = (((((((v >> v_1) >> v_2) >> v_3) & (3u).xxxx) == (0u).xxxx)) ? ((2u).xxxx) : ((0u).xxxx));
+  uint4 res = (((((((v >> v_1) >> v_2) >> v_3) >> v_4) == (0u).xxxx)) ? ((4294967295u).xxxx) : ((v_1 | (v_2 | (v_3 | (v_4 | ((((((((v >> v_1) >> v_2) >> v_3) >> v_4) & (1u).xxxx) == (0u).xxxx)) ? ((1u).xxxx) : ((0u).xxxx))))))));
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store4(0u, firstTrailingBit_110f2c());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store4(0u, firstTrailingBit_110f2c());
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = firstTrailingBit_110f2c();
+  VertexOutput v_5 = tint_symbol;
+  return v_5;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_6 = vertex_main_inner();
+  VertexOutput v_7 = v_6;
+  VertexOutput v_8 = v_6;
+  vertex_main_outputs v_9 = {v_8.prevent_dce, v_7.pos};
+  return v_9;
+}
+
diff --git a/test/tint/builtins/gen/var/firstTrailingBit/3a2acc.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/firstTrailingBit/3a2acc.wgsl.expected.ir.dxc.hlsl
index 7d9b5a7..4e52c5a 100644
--- a/test/tint/builtins/gen/var/firstTrailingBit/3a2acc.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/firstTrailingBit/3a2acc.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,48 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  int prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: firstTrailingBit
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation int VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+int firstTrailingBit_3a2acc() {
+  int arg_0 = 1;
+  uint v = asuint(arg_0);
+  uint v_1 = ((((v & 65535u) == 0u)) ? (16u) : (0u));
+  uint v_2 = (((((v >> v_1) & 255u) == 0u)) ? (8u) : (0u));
+  uint v_3 = ((((((v >> v_1) >> v_2) & 15u) == 0u)) ? (4u) : (0u));
+  uint v_4 = (((((((v >> v_1) >> v_2) >> v_3) & 3u) == 0u)) ? (2u) : (0u));
+  int res = asint((((((((v >> v_1) >> v_2) >> v_3) >> v_4) == 0u)) ? (4294967295u) : ((v_1 | (v_2 | (v_3 | (v_4 | ((((((((v >> v_1) >> v_2) >> v_3) >> v_4) & 1u) == 0u)) ? (1u) : (0u)))))))));
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store(0u, asuint(firstTrailingBit_3a2acc()));
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store(0u, asuint(firstTrailingBit_3a2acc()));
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = firstTrailingBit_3a2acc();
+  VertexOutput v_5 = tint_symbol;
+  return v_5;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_6 = vertex_main_inner();
+  VertexOutput v_7 = v_6;
+  VertexOutput v_8 = v_6;
+  vertex_main_outputs v_9 = {v_8.prevent_dce, v_7.pos};
+  return v_9;
+}
+
diff --git a/test/tint/builtins/gen/var/firstTrailingBit/3a2acc.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/firstTrailingBit/3a2acc.wgsl.expected.ir.fxc.hlsl
index 7d9b5a7..4e52c5a 100644
--- a/test/tint/builtins/gen/var/firstTrailingBit/3a2acc.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/firstTrailingBit/3a2acc.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,48 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  int prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: firstTrailingBit
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation int VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+int firstTrailingBit_3a2acc() {
+  int arg_0 = 1;
+  uint v = asuint(arg_0);
+  uint v_1 = ((((v & 65535u) == 0u)) ? (16u) : (0u));
+  uint v_2 = (((((v >> v_1) & 255u) == 0u)) ? (8u) : (0u));
+  uint v_3 = ((((((v >> v_1) >> v_2) & 15u) == 0u)) ? (4u) : (0u));
+  uint v_4 = (((((((v >> v_1) >> v_2) >> v_3) & 3u) == 0u)) ? (2u) : (0u));
+  int res = asint((((((((v >> v_1) >> v_2) >> v_3) >> v_4) == 0u)) ? (4294967295u) : ((v_1 | (v_2 | (v_3 | (v_4 | ((((((((v >> v_1) >> v_2) >> v_3) >> v_4) & 1u) == 0u)) ? (1u) : (0u)))))))));
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store(0u, asuint(firstTrailingBit_3a2acc()));
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store(0u, asuint(firstTrailingBit_3a2acc()));
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = firstTrailingBit_3a2acc();
+  VertexOutput v_5 = tint_symbol;
+  return v_5;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_6 = vertex_main_inner();
+  VertexOutput v_7 = v_6;
+  VertexOutput v_8 = v_6;
+  vertex_main_outputs v_9 = {v_8.prevent_dce, v_7.pos};
+  return v_9;
+}
+
diff --git a/test/tint/builtins/gen/var/firstTrailingBit/45eb10.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/firstTrailingBit/45eb10.wgsl.expected.ir.dxc.hlsl
index 7d9b5a7..07297f6 100644
--- a/test/tint/builtins/gen/var/firstTrailingBit/45eb10.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/firstTrailingBit/45eb10.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,48 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  uint2 prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: firstTrailingBit
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation uint2 VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+uint2 firstTrailingBit_45eb10() {
+  uint2 arg_0 = (1u).xx;
+  uint2 v = arg_0;
+  uint2 v_1 = ((((v & (65535u).xx) == (0u).xx)) ? ((16u).xx) : ((0u).xx));
+  uint2 v_2 = (((((v >> v_1) & (255u).xx) == (0u).xx)) ? ((8u).xx) : ((0u).xx));
+  uint2 v_3 = ((((((v >> v_1) >> v_2) & (15u).xx) == (0u).xx)) ? ((4u).xx) : ((0u).xx));
+  uint2 v_4 = (((((((v >> v_1) >> v_2) >> v_3) & (3u).xx) == (0u).xx)) ? ((2u).xx) : ((0u).xx));
+  uint2 res = (((((((v >> v_1) >> v_2) >> v_3) >> v_4) == (0u).xx)) ? ((4294967295u).xx) : ((v_1 | (v_2 | (v_3 | (v_4 | ((((((((v >> v_1) >> v_2) >> v_3) >> v_4) & (1u).xx) == (0u).xx)) ? ((1u).xx) : ((0u).xx))))))));
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store2(0u, firstTrailingBit_45eb10());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store2(0u, firstTrailingBit_45eb10());
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = firstTrailingBit_45eb10();
+  VertexOutput v_5 = tint_symbol;
+  return v_5;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_6 = vertex_main_inner();
+  VertexOutput v_7 = v_6;
+  VertexOutput v_8 = v_6;
+  vertex_main_outputs v_9 = {v_8.prevent_dce, v_7.pos};
+  return v_9;
+}
+
diff --git a/test/tint/builtins/gen/var/firstTrailingBit/45eb10.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/firstTrailingBit/45eb10.wgsl.expected.ir.fxc.hlsl
index 7d9b5a7..07297f6 100644
--- a/test/tint/builtins/gen/var/firstTrailingBit/45eb10.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/firstTrailingBit/45eb10.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,48 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  uint2 prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: firstTrailingBit
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation uint2 VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+uint2 firstTrailingBit_45eb10() {
+  uint2 arg_0 = (1u).xx;
+  uint2 v = arg_0;
+  uint2 v_1 = ((((v & (65535u).xx) == (0u).xx)) ? ((16u).xx) : ((0u).xx));
+  uint2 v_2 = (((((v >> v_1) & (255u).xx) == (0u).xx)) ? ((8u).xx) : ((0u).xx));
+  uint2 v_3 = ((((((v >> v_1) >> v_2) & (15u).xx) == (0u).xx)) ? ((4u).xx) : ((0u).xx));
+  uint2 v_4 = (((((((v >> v_1) >> v_2) >> v_3) & (3u).xx) == (0u).xx)) ? ((2u).xx) : ((0u).xx));
+  uint2 res = (((((((v >> v_1) >> v_2) >> v_3) >> v_4) == (0u).xx)) ? ((4294967295u).xx) : ((v_1 | (v_2 | (v_3 | (v_4 | ((((((((v >> v_1) >> v_2) >> v_3) >> v_4) & (1u).xx) == (0u).xx)) ? ((1u).xx) : ((0u).xx))))))));
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store2(0u, firstTrailingBit_45eb10());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store2(0u, firstTrailingBit_45eb10());
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = firstTrailingBit_45eb10();
+  VertexOutput v_5 = tint_symbol;
+  return v_5;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_6 = vertex_main_inner();
+  VertexOutput v_7 = v_6;
+  VertexOutput v_8 = v_6;
+  vertex_main_outputs v_9 = {v_8.prevent_dce, v_7.pos};
+  return v_9;
+}
+
diff --git a/test/tint/builtins/gen/var/firstTrailingBit/47d475.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/firstTrailingBit/47d475.wgsl.expected.ir.dxc.hlsl
index 7d9b5a7..0cc2999 100644
--- a/test/tint/builtins/gen/var/firstTrailingBit/47d475.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/firstTrailingBit/47d475.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,48 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  uint prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: firstTrailingBit
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation uint VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+uint firstTrailingBit_47d475() {
+  uint arg_0 = 1u;
+  uint v = arg_0;
+  uint v_1 = ((((v & 65535u) == 0u)) ? (16u) : (0u));
+  uint v_2 = (((((v >> v_1) & 255u) == 0u)) ? (8u) : (0u));
+  uint v_3 = ((((((v >> v_1) >> v_2) & 15u) == 0u)) ? (4u) : (0u));
+  uint v_4 = (((((((v >> v_1) >> v_2) >> v_3) & 3u) == 0u)) ? (2u) : (0u));
+  uint res = (((((((v >> v_1) >> v_2) >> v_3) >> v_4) == 0u)) ? (4294967295u) : ((v_1 | (v_2 | (v_3 | (v_4 | ((((((((v >> v_1) >> v_2) >> v_3) >> v_4) & 1u) == 0u)) ? (1u) : (0u))))))));
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store(0u, firstTrailingBit_47d475());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store(0u, firstTrailingBit_47d475());
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = firstTrailingBit_47d475();
+  VertexOutput v_5 = tint_symbol;
+  return v_5;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_6 = vertex_main_inner();
+  VertexOutput v_7 = v_6;
+  VertexOutput v_8 = v_6;
+  vertex_main_outputs v_9 = {v_8.prevent_dce, v_7.pos};
+  return v_9;
+}
+
diff --git a/test/tint/builtins/gen/var/firstTrailingBit/47d475.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/firstTrailingBit/47d475.wgsl.expected.ir.fxc.hlsl
index 7d9b5a7..0cc2999 100644
--- a/test/tint/builtins/gen/var/firstTrailingBit/47d475.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/firstTrailingBit/47d475.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,48 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  uint prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: firstTrailingBit
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation uint VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+uint firstTrailingBit_47d475() {
+  uint arg_0 = 1u;
+  uint v = arg_0;
+  uint v_1 = ((((v & 65535u) == 0u)) ? (16u) : (0u));
+  uint v_2 = (((((v >> v_1) & 255u) == 0u)) ? (8u) : (0u));
+  uint v_3 = ((((((v >> v_1) >> v_2) & 15u) == 0u)) ? (4u) : (0u));
+  uint v_4 = (((((((v >> v_1) >> v_2) >> v_3) & 3u) == 0u)) ? (2u) : (0u));
+  uint res = (((((((v >> v_1) >> v_2) >> v_3) >> v_4) == 0u)) ? (4294967295u) : ((v_1 | (v_2 | (v_3 | (v_4 | ((((((((v >> v_1) >> v_2) >> v_3) >> v_4) & 1u) == 0u)) ? (1u) : (0u))))))));
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store(0u, firstTrailingBit_47d475());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store(0u, firstTrailingBit_47d475());
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = firstTrailingBit_47d475();
+  VertexOutput v_5 = tint_symbol;
+  return v_5;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_6 = vertex_main_inner();
+  VertexOutput v_7 = v_6;
+  VertexOutput v_8 = v_6;
+  vertex_main_outputs v_9 = {v_8.prevent_dce, v_7.pos};
+  return v_9;
+}
+
diff --git a/test/tint/builtins/gen/var/firstTrailingBit/50c072.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/firstTrailingBit/50c072.wgsl.expected.ir.dxc.hlsl
index 7d9b5a7..5a5a9c6 100644
--- a/test/tint/builtins/gen/var/firstTrailingBit/50c072.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/firstTrailingBit/50c072.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,48 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  int2 prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: firstTrailingBit
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation int2 VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+int2 firstTrailingBit_50c072() {
+  int2 arg_0 = (1).xx;
+  uint2 v = asuint(arg_0);
+  uint2 v_1 = ((((v & (65535u).xx) == (0u).xx)) ? ((16u).xx) : ((0u).xx));
+  uint2 v_2 = (((((v >> v_1) & (255u).xx) == (0u).xx)) ? ((8u).xx) : ((0u).xx));
+  uint2 v_3 = ((((((v >> v_1) >> v_2) & (15u).xx) == (0u).xx)) ? ((4u).xx) : ((0u).xx));
+  uint2 v_4 = (((((((v >> v_1) >> v_2) >> v_3) & (3u).xx) == (0u).xx)) ? ((2u).xx) : ((0u).xx));
+  int2 res = asint((((((((v >> v_1) >> v_2) >> v_3) >> v_4) == (0u).xx)) ? ((4294967295u).xx) : ((v_1 | (v_2 | (v_3 | (v_4 | ((((((((v >> v_1) >> v_2) >> v_3) >> v_4) & (1u).xx) == (0u).xx)) ? ((1u).xx) : ((0u).xx)))))))));
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store2(0u, asuint(firstTrailingBit_50c072()));
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store2(0u, asuint(firstTrailingBit_50c072()));
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = firstTrailingBit_50c072();
+  VertexOutput v_5 = tint_symbol;
+  return v_5;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_6 = vertex_main_inner();
+  VertexOutput v_7 = v_6;
+  VertexOutput v_8 = v_6;
+  vertex_main_outputs v_9 = {v_8.prevent_dce, v_7.pos};
+  return v_9;
+}
+
diff --git a/test/tint/builtins/gen/var/firstTrailingBit/50c072.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/firstTrailingBit/50c072.wgsl.expected.ir.fxc.hlsl
index 7d9b5a7..5a5a9c6 100644
--- a/test/tint/builtins/gen/var/firstTrailingBit/50c072.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/firstTrailingBit/50c072.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,48 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  int2 prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: firstTrailingBit
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation int2 VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+int2 firstTrailingBit_50c072() {
+  int2 arg_0 = (1).xx;
+  uint2 v = asuint(arg_0);
+  uint2 v_1 = ((((v & (65535u).xx) == (0u).xx)) ? ((16u).xx) : ((0u).xx));
+  uint2 v_2 = (((((v >> v_1) & (255u).xx) == (0u).xx)) ? ((8u).xx) : ((0u).xx));
+  uint2 v_3 = ((((((v >> v_1) >> v_2) & (15u).xx) == (0u).xx)) ? ((4u).xx) : ((0u).xx));
+  uint2 v_4 = (((((((v >> v_1) >> v_2) >> v_3) & (3u).xx) == (0u).xx)) ? ((2u).xx) : ((0u).xx));
+  int2 res = asint((((((((v >> v_1) >> v_2) >> v_3) >> v_4) == (0u).xx)) ? ((4294967295u).xx) : ((v_1 | (v_2 | (v_3 | (v_4 | ((((((((v >> v_1) >> v_2) >> v_3) >> v_4) & (1u).xx) == (0u).xx)) ? ((1u).xx) : ((0u).xx)))))))));
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store2(0u, asuint(firstTrailingBit_50c072()));
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store2(0u, asuint(firstTrailingBit_50c072()));
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = firstTrailingBit_50c072();
+  VertexOutput v_5 = tint_symbol;
+  return v_5;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_6 = vertex_main_inner();
+  VertexOutput v_7 = v_6;
+  VertexOutput v_8 = v_6;
+  vertex_main_outputs v_9 = {v_8.prevent_dce, v_7.pos};
+  return v_9;
+}
+
diff --git a/test/tint/builtins/gen/var/firstTrailingBit/7496d6.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/firstTrailingBit/7496d6.wgsl.expected.ir.dxc.hlsl
index 7d9b5a7..d690997 100644
--- a/test/tint/builtins/gen/var/firstTrailingBit/7496d6.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/firstTrailingBit/7496d6.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,48 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  int3 prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: firstTrailingBit
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation int3 VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+int3 firstTrailingBit_7496d6() {
+  int3 arg_0 = (1).xxx;
+  uint3 v = asuint(arg_0);
+  uint3 v_1 = ((((v & (65535u).xxx) == (0u).xxx)) ? ((16u).xxx) : ((0u).xxx));
+  uint3 v_2 = (((((v >> v_1) & (255u).xxx) == (0u).xxx)) ? ((8u).xxx) : ((0u).xxx));
+  uint3 v_3 = ((((((v >> v_1) >> v_2) & (15u).xxx) == (0u).xxx)) ? ((4u).xxx) : ((0u).xxx));
+  uint3 v_4 = (((((((v >> v_1) >> v_2) >> v_3) & (3u).xxx) == (0u).xxx)) ? ((2u).xxx) : ((0u).xxx));
+  int3 res = asint((((((((v >> v_1) >> v_2) >> v_3) >> v_4) == (0u).xxx)) ? ((4294967295u).xxx) : ((v_1 | (v_2 | (v_3 | (v_4 | ((((((((v >> v_1) >> v_2) >> v_3) >> v_4) & (1u).xxx) == (0u).xxx)) ? ((1u).xxx) : ((0u).xxx)))))))));
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store3(0u, asuint(firstTrailingBit_7496d6()));
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store3(0u, asuint(firstTrailingBit_7496d6()));
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = firstTrailingBit_7496d6();
+  VertexOutput v_5 = tint_symbol;
+  return v_5;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_6 = vertex_main_inner();
+  VertexOutput v_7 = v_6;
+  VertexOutput v_8 = v_6;
+  vertex_main_outputs v_9 = {v_8.prevent_dce, v_7.pos};
+  return v_9;
+}
+
diff --git a/test/tint/builtins/gen/var/firstTrailingBit/7496d6.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/firstTrailingBit/7496d6.wgsl.expected.ir.fxc.hlsl
index 7d9b5a7..d690997 100644
--- a/test/tint/builtins/gen/var/firstTrailingBit/7496d6.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/firstTrailingBit/7496d6.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,48 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  int3 prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: firstTrailingBit
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation int3 VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+int3 firstTrailingBit_7496d6() {
+  int3 arg_0 = (1).xxx;
+  uint3 v = asuint(arg_0);
+  uint3 v_1 = ((((v & (65535u).xxx) == (0u).xxx)) ? ((16u).xxx) : ((0u).xxx));
+  uint3 v_2 = (((((v >> v_1) & (255u).xxx) == (0u).xxx)) ? ((8u).xxx) : ((0u).xxx));
+  uint3 v_3 = ((((((v >> v_1) >> v_2) & (15u).xxx) == (0u).xxx)) ? ((4u).xxx) : ((0u).xxx));
+  uint3 v_4 = (((((((v >> v_1) >> v_2) >> v_3) & (3u).xxx) == (0u).xxx)) ? ((2u).xxx) : ((0u).xxx));
+  int3 res = asint((((((((v >> v_1) >> v_2) >> v_3) >> v_4) == (0u).xxx)) ? ((4294967295u).xxx) : ((v_1 | (v_2 | (v_3 | (v_4 | ((((((((v >> v_1) >> v_2) >> v_3) >> v_4) & (1u).xxx) == (0u).xxx)) ? ((1u).xxx) : ((0u).xxx)))))))));
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store3(0u, asuint(firstTrailingBit_7496d6()));
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store3(0u, asuint(firstTrailingBit_7496d6()));
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = firstTrailingBit_7496d6();
+  VertexOutput v_5 = tint_symbol;
+  return v_5;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_6 = vertex_main_inner();
+  VertexOutput v_7 = v_6;
+  VertexOutput v_8 = v_6;
+  vertex_main_outputs v_9 = {v_8.prevent_dce, v_7.pos};
+  return v_9;
+}
+
diff --git a/test/tint/builtins/gen/var/firstTrailingBit/86551b.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/firstTrailingBit/86551b.wgsl.expected.ir.dxc.hlsl
index 7d9b5a7..495b1d1 100644
--- a/test/tint/builtins/gen/var/firstTrailingBit/86551b.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/firstTrailingBit/86551b.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,48 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  int4 prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: firstTrailingBit
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation int4 VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+int4 firstTrailingBit_86551b() {
+  int4 arg_0 = (1).xxxx;
+  uint4 v = asuint(arg_0);
+  uint4 v_1 = ((((v & (65535u).xxxx) == (0u).xxxx)) ? ((16u).xxxx) : ((0u).xxxx));
+  uint4 v_2 = (((((v >> v_1) & (255u).xxxx) == (0u).xxxx)) ? ((8u).xxxx) : ((0u).xxxx));
+  uint4 v_3 = ((((((v >> v_1) >> v_2) & (15u).xxxx) == (0u).xxxx)) ? ((4u).xxxx) : ((0u).xxxx));
+  uint4 v_4 = (((((((v >> v_1) >> v_2) >> v_3) & (3u).xxxx) == (0u).xxxx)) ? ((2u).xxxx) : ((0u).xxxx));
+  int4 res = asint((((((((v >> v_1) >> v_2) >> v_3) >> v_4) == (0u).xxxx)) ? ((4294967295u).xxxx) : ((v_1 | (v_2 | (v_3 | (v_4 | ((((((((v >> v_1) >> v_2) >> v_3) >> v_4) & (1u).xxxx) == (0u).xxxx)) ? ((1u).xxxx) : ((0u).xxxx)))))))));
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store4(0u, asuint(firstTrailingBit_86551b()));
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store4(0u, asuint(firstTrailingBit_86551b()));
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = firstTrailingBit_86551b();
+  VertexOutput v_5 = tint_symbol;
+  return v_5;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_6 = vertex_main_inner();
+  VertexOutput v_7 = v_6;
+  VertexOutput v_8 = v_6;
+  vertex_main_outputs v_9 = {v_8.prevent_dce, v_7.pos};
+  return v_9;
+}
+
diff --git a/test/tint/builtins/gen/var/firstTrailingBit/86551b.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/firstTrailingBit/86551b.wgsl.expected.ir.fxc.hlsl
index 7d9b5a7..495b1d1 100644
--- a/test/tint/builtins/gen/var/firstTrailingBit/86551b.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/firstTrailingBit/86551b.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,48 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  int4 prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: firstTrailingBit
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation int4 VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+int4 firstTrailingBit_86551b() {
+  int4 arg_0 = (1).xxxx;
+  uint4 v = asuint(arg_0);
+  uint4 v_1 = ((((v & (65535u).xxxx) == (0u).xxxx)) ? ((16u).xxxx) : ((0u).xxxx));
+  uint4 v_2 = (((((v >> v_1) & (255u).xxxx) == (0u).xxxx)) ? ((8u).xxxx) : ((0u).xxxx));
+  uint4 v_3 = ((((((v >> v_1) >> v_2) & (15u).xxxx) == (0u).xxxx)) ? ((4u).xxxx) : ((0u).xxxx));
+  uint4 v_4 = (((((((v >> v_1) >> v_2) >> v_3) & (3u).xxxx) == (0u).xxxx)) ? ((2u).xxxx) : ((0u).xxxx));
+  int4 res = asint((((((((v >> v_1) >> v_2) >> v_3) >> v_4) == (0u).xxxx)) ? ((4294967295u).xxxx) : ((v_1 | (v_2 | (v_3 | (v_4 | ((((((((v >> v_1) >> v_2) >> v_3) >> v_4) & (1u).xxxx) == (0u).xxxx)) ? ((1u).xxxx) : ((0u).xxxx)))))))));
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store4(0u, asuint(firstTrailingBit_86551b()));
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store4(0u, asuint(firstTrailingBit_86551b()));
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = firstTrailingBit_86551b();
+  VertexOutput v_5 = tint_symbol;
+  return v_5;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_6 = vertex_main_inner();
+  VertexOutput v_7 = v_6;
+  VertexOutput v_8 = v_6;
+  vertex_main_outputs v_9 = {v_8.prevent_dce, v_7.pos};
+  return v_9;
+}
+
diff --git a/test/tint/builtins/gen/var/firstTrailingBit/cb51ce.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/firstTrailingBit/cb51ce.wgsl.expected.ir.dxc.hlsl
index 7d9b5a7..538d55d 100644
--- a/test/tint/builtins/gen/var/firstTrailingBit/cb51ce.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/firstTrailingBit/cb51ce.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,48 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  uint3 prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: firstTrailingBit
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation uint3 VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+uint3 firstTrailingBit_cb51ce() {
+  uint3 arg_0 = (1u).xxx;
+  uint3 v = arg_0;
+  uint3 v_1 = ((((v & (65535u).xxx) == (0u).xxx)) ? ((16u).xxx) : ((0u).xxx));
+  uint3 v_2 = (((((v >> v_1) & (255u).xxx) == (0u).xxx)) ? ((8u).xxx) : ((0u).xxx));
+  uint3 v_3 = ((((((v >> v_1) >> v_2) & (15u).xxx) == (0u).xxx)) ? ((4u).xxx) : ((0u).xxx));
+  uint3 v_4 = (((((((v >> v_1) >> v_2) >> v_3) & (3u).xxx) == (0u).xxx)) ? ((2u).xxx) : ((0u).xxx));
+  uint3 res = (((((((v >> v_1) >> v_2) >> v_3) >> v_4) == (0u).xxx)) ? ((4294967295u).xxx) : ((v_1 | (v_2 | (v_3 | (v_4 | ((((((((v >> v_1) >> v_2) >> v_3) >> v_4) & (1u).xxx) == (0u).xxx)) ? ((1u).xxx) : ((0u).xxx))))))));
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store3(0u, firstTrailingBit_cb51ce());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store3(0u, firstTrailingBit_cb51ce());
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = firstTrailingBit_cb51ce();
+  VertexOutput v_5 = tint_symbol;
+  return v_5;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_6 = vertex_main_inner();
+  VertexOutput v_7 = v_6;
+  VertexOutput v_8 = v_6;
+  vertex_main_outputs v_9 = {v_8.prevent_dce, v_7.pos};
+  return v_9;
+}
+
diff --git a/test/tint/builtins/gen/var/firstTrailingBit/cb51ce.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/firstTrailingBit/cb51ce.wgsl.expected.ir.fxc.hlsl
index 7d9b5a7..538d55d 100644
--- a/test/tint/builtins/gen/var/firstTrailingBit/cb51ce.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/firstTrailingBit/cb51ce.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,48 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  uint3 prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: firstTrailingBit
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation uint3 VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+uint3 firstTrailingBit_cb51ce() {
+  uint3 arg_0 = (1u).xxx;
+  uint3 v = arg_0;
+  uint3 v_1 = ((((v & (65535u).xxx) == (0u).xxx)) ? ((16u).xxx) : ((0u).xxx));
+  uint3 v_2 = (((((v >> v_1) & (255u).xxx) == (0u).xxx)) ? ((8u).xxx) : ((0u).xxx));
+  uint3 v_3 = ((((((v >> v_1) >> v_2) & (15u).xxx) == (0u).xxx)) ? ((4u).xxx) : ((0u).xxx));
+  uint3 v_4 = (((((((v >> v_1) >> v_2) >> v_3) & (3u).xxx) == (0u).xxx)) ? ((2u).xxx) : ((0u).xxx));
+  uint3 res = (((((((v >> v_1) >> v_2) >> v_3) >> v_4) == (0u).xxx)) ? ((4294967295u).xxx) : ((v_1 | (v_2 | (v_3 | (v_4 | ((((((((v >> v_1) >> v_2) >> v_3) >> v_4) & (1u).xxx) == (0u).xxx)) ? ((1u).xxx) : ((0u).xxx))))))));
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store3(0u, firstTrailingBit_cb51ce());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store3(0u, firstTrailingBit_cb51ce());
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = firstTrailingBit_cb51ce();
+  VertexOutput v_5 = tint_symbol;
+  return v_5;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_6 = vertex_main_inner();
+  VertexOutput v_7 = v_6;
+  VertexOutput v_8 = v_6;
+  vertex_main_outputs v_9 = {v_8.prevent_dce, v_7.pos};
+  return v_9;
+}
+
diff --git a/test/tint/builtins/gen/var/floor/218952.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/floor/218952.wgsl.expected.ir.dxc.hlsl
index 0ba40c6..15e77d6 100644
--- a/test/tint/builtins/gen/var/floor/218952.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/floor/218952.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,36 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+void floor_218952() {
+  float4 res = (1.0f).xxxx;
+}
+
+void fragment_main() {
+  floor_218952();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  floor_218952();
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  floor_218952();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  vertex_main_outputs v_2 = {v_1.pos};
+  return v_2;
+}
+
diff --git a/test/tint/builtins/gen/var/floor/218952.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/floor/218952.wgsl.expected.ir.fxc.hlsl
index 0ba40c6..15e77d6 100644
--- a/test/tint/builtins/gen/var/floor/218952.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/floor/218952.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,36 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+void floor_218952() {
+  float4 res = (1.0f).xxxx;
+}
+
+void fragment_main() {
+  floor_218952();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  floor_218952();
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  floor_218952();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  vertex_main_outputs v_2 = {v_1.pos};
+  return v_2;
+}
+
diff --git a/test/tint/builtins/gen/var/floor/3802c0.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/floor/3802c0.wgsl.expected.ir.dxc.hlsl
index 0ba40c6..1a3606e 100644
--- a/test/tint/builtins/gen/var/floor/3802c0.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/floor/3802c0.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,43 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  vector<float16_t, 3> prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation vector<float16_t, 3> VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+vector<float16_t, 3> floor_3802c0() {
+  vector<float16_t, 3> arg_0 = (float16_t(1.5h)).xxx;
+  vector<float16_t, 3> res = floor(arg_0);
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store<vector<float16_t, 3> >(0u, floor_3802c0());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store<vector<float16_t, 3> >(0u, floor_3802c0());
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = floor_3802c0();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
diff --git a/test/tint/builtins/gen/var/floor/3802c0.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/floor/3802c0.wgsl.expected.ir.fxc.hlsl
index 0ba40c6..76ee70f 100644
--- a/test/tint/builtins/gen/var/floor/3802c0.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/floor/3802c0.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,48 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct VertexOutput {
+  float4 pos;
+  vector<float16_t, 3> prevent_dce;
+};
+
+struct vertex_main_outputs {
+  nointerpolation vector<float16_t, 3> VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+vector<float16_t, 3> floor_3802c0() {
+  vector<float16_t, 3> arg_0 = (float16_t(1.5h)).xxx;
+  vector<float16_t, 3> res = floor(arg_0);
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store<vector<float16_t, 3> >(0u, floor_3802c0());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store<vector<float16_t, 3> >(0u, floor_3802c0());
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = floor_3802c0();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
+FXC validation failure:
+c:\src\dawn\Shader@0x00000251224F6CF0(3,10-18): error X3000: syntax error: unexpected token 'float16_t'
+
diff --git a/test/tint/builtins/gen/var/floor/3bccc4.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/floor/3bccc4.wgsl.expected.ir.dxc.hlsl
index 0ba40c6..f44a3ac 100644
--- a/test/tint/builtins/gen/var/floor/3bccc4.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/floor/3bccc4.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,43 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  float4 prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation float4 VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+float4 floor_3bccc4() {
+  float4 arg_0 = (1.5f).xxxx;
+  float4 res = floor(arg_0);
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store4(0u, asuint(floor_3bccc4()));
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store4(0u, asuint(floor_3bccc4()));
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = floor_3bccc4();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
diff --git a/test/tint/builtins/gen/var/floor/3bccc4.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/floor/3bccc4.wgsl.expected.ir.fxc.hlsl
index 0ba40c6..f44a3ac 100644
--- a/test/tint/builtins/gen/var/floor/3bccc4.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/floor/3bccc4.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,43 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  float4 prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation float4 VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+float4 floor_3bccc4() {
+  float4 arg_0 = (1.5f).xxxx;
+  float4 res = floor(arg_0);
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store4(0u, asuint(floor_3bccc4()));
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store4(0u, asuint(floor_3bccc4()));
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = floor_3bccc4();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
diff --git a/test/tint/builtins/gen/var/floor/5fc9ac.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/floor/5fc9ac.wgsl.expected.ir.dxc.hlsl
index 0ba40c6..746789f 100644
--- a/test/tint/builtins/gen/var/floor/5fc9ac.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/floor/5fc9ac.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,43 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  float2 prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation float2 VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+float2 floor_5fc9ac() {
+  float2 arg_0 = (1.5f).xx;
+  float2 res = floor(arg_0);
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store2(0u, asuint(floor_5fc9ac()));
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store2(0u, asuint(floor_5fc9ac()));
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = floor_5fc9ac();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
diff --git a/test/tint/builtins/gen/var/floor/5fc9ac.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/floor/5fc9ac.wgsl.expected.ir.fxc.hlsl
index 0ba40c6..746789f 100644
--- a/test/tint/builtins/gen/var/floor/5fc9ac.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/floor/5fc9ac.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,43 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  float2 prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation float2 VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+float2 floor_5fc9ac() {
+  float2 arg_0 = (1.5f).xx;
+  float2 res = floor(arg_0);
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store2(0u, asuint(floor_5fc9ac()));
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store2(0u, asuint(floor_5fc9ac()));
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = floor_5fc9ac();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
diff --git a/test/tint/builtins/gen/var/floor/60d7ea.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/floor/60d7ea.wgsl.expected.ir.dxc.hlsl
index 0ba40c6..17c8f12 100644
--- a/test/tint/builtins/gen/var/floor/60d7ea.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/floor/60d7ea.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,43 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  float3 prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation float3 VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+float3 floor_60d7ea() {
+  float3 arg_0 = (1.5f).xxx;
+  float3 res = floor(arg_0);
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store3(0u, asuint(floor_60d7ea()));
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store3(0u, asuint(floor_60d7ea()));
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = floor_60d7ea();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
diff --git a/test/tint/builtins/gen/var/floor/60d7ea.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/floor/60d7ea.wgsl.expected.ir.fxc.hlsl
index 0ba40c6..17c8f12 100644
--- a/test/tint/builtins/gen/var/floor/60d7ea.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/floor/60d7ea.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,43 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  float3 prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation float3 VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+float3 floor_60d7ea() {
+  float3 arg_0 = (1.5f).xxx;
+  float3 res = floor(arg_0);
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store3(0u, asuint(floor_60d7ea()));
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store3(0u, asuint(floor_60d7ea()));
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = floor_60d7ea();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
diff --git a/test/tint/builtins/gen/var/floor/66f154.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/floor/66f154.wgsl.expected.ir.dxc.hlsl
index 0ba40c6..18aa245 100644
--- a/test/tint/builtins/gen/var/floor/66f154.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/floor/66f154.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,43 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  float prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation float VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+float floor_66f154() {
+  float arg_0 = 1.5f;
+  float res = floor(arg_0);
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store(0u, asuint(floor_66f154()));
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store(0u, asuint(floor_66f154()));
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = floor_66f154();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
diff --git a/test/tint/builtins/gen/var/floor/66f154.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/floor/66f154.wgsl.expected.ir.fxc.hlsl
index 0ba40c6..18aa245 100644
--- a/test/tint/builtins/gen/var/floor/66f154.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/floor/66f154.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,43 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  float prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation float VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+float floor_66f154() {
+  float arg_0 = 1.5f;
+  float res = floor(arg_0);
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store(0u, asuint(floor_66f154()));
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store(0u, asuint(floor_66f154()));
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = floor_66f154();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
diff --git a/test/tint/builtins/gen/var/floor/84658c.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/floor/84658c.wgsl.expected.ir.dxc.hlsl
index 0ba40c6..88f1258 100644
--- a/test/tint/builtins/gen/var/floor/84658c.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/floor/84658c.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,43 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  vector<float16_t, 2> prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation vector<float16_t, 2> VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+vector<float16_t, 2> floor_84658c() {
+  vector<float16_t, 2> arg_0 = (float16_t(1.5h)).xx;
+  vector<float16_t, 2> res = floor(arg_0);
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store<vector<float16_t, 2> >(0u, floor_84658c());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store<vector<float16_t, 2> >(0u, floor_84658c());
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = floor_84658c();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
diff --git a/test/tint/builtins/gen/var/floor/84658c.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/floor/84658c.wgsl.expected.ir.fxc.hlsl
index 0ba40c6..88246f2 100644
--- a/test/tint/builtins/gen/var/floor/84658c.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/floor/84658c.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,48 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct VertexOutput {
+  float4 pos;
+  vector<float16_t, 2> prevent_dce;
+};
+
+struct vertex_main_outputs {
+  nointerpolation vector<float16_t, 2> VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+vector<float16_t, 2> floor_84658c() {
+  vector<float16_t, 2> arg_0 = (float16_t(1.5h)).xx;
+  vector<float16_t, 2> res = floor(arg_0);
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store<vector<float16_t, 2> >(0u, floor_84658c());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store<vector<float16_t, 2> >(0u, floor_84658c());
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = floor_84658c();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
+FXC validation failure:
+c:\src\dawn\Shader@0x00000142E239C410(3,10-18): error X3000: syntax error: unexpected token 'float16_t'
+
diff --git a/test/tint/builtins/gen/var/floor/953774.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/floor/953774.wgsl.expected.ir.dxc.hlsl
index 0ba40c6..399eeb4 100644
--- a/test/tint/builtins/gen/var/floor/953774.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/floor/953774.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,36 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+void floor_953774() {
+  float3 res = (1.0f).xxx;
+}
+
+void fragment_main() {
+  floor_953774();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  floor_953774();
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  floor_953774();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  vertex_main_outputs v_2 = {v_1.pos};
+  return v_2;
+}
+
diff --git a/test/tint/builtins/gen/var/floor/953774.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/floor/953774.wgsl.expected.ir.fxc.hlsl
index 0ba40c6..399eeb4 100644
--- a/test/tint/builtins/gen/var/floor/953774.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/floor/953774.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,36 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+void floor_953774() {
+  float3 res = (1.0f).xxx;
+}
+
+void fragment_main() {
+  floor_953774();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  floor_953774();
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  floor_953774();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  vertex_main_outputs v_2 = {v_1.pos};
+  return v_2;
+}
+
diff --git a/test/tint/builtins/gen/var/floor/a2d31b.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/floor/a2d31b.wgsl.expected.ir.dxc.hlsl
index 0ba40c6..be8c1c7 100644
--- a/test/tint/builtins/gen/var/floor/a2d31b.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/floor/a2d31b.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,43 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  vector<float16_t, 4> prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation vector<float16_t, 4> VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+vector<float16_t, 4> floor_a2d31b() {
+  vector<float16_t, 4> arg_0 = (float16_t(1.5h)).xxxx;
+  vector<float16_t, 4> res = floor(arg_0);
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store<vector<float16_t, 4> >(0u, floor_a2d31b());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store<vector<float16_t, 4> >(0u, floor_a2d31b());
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = floor_a2d31b();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
diff --git a/test/tint/builtins/gen/var/floor/a2d31b.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/floor/a2d31b.wgsl.expected.ir.fxc.hlsl
index 0ba40c6..931e1d3 100644
--- a/test/tint/builtins/gen/var/floor/a2d31b.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/floor/a2d31b.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,48 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct VertexOutput {
+  float4 pos;
+  vector<float16_t, 4> prevent_dce;
+};
+
+struct vertex_main_outputs {
+  nointerpolation vector<float16_t, 4> VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+vector<float16_t, 4> floor_a2d31b() {
+  vector<float16_t, 4> arg_0 = (float16_t(1.5h)).xxxx;
+  vector<float16_t, 4> res = floor(arg_0);
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store<vector<float16_t, 4> >(0u, floor_a2d31b());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store<vector<float16_t, 4> >(0u, floor_a2d31b());
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = floor_a2d31b();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
+FXC validation failure:
+c:\src\dawn\Shader@0x0000014F181E04C0(3,10-18): error X3000: syntax error: unexpected token 'float16_t'
+
diff --git a/test/tint/builtins/gen/var/floor/b6e09c.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/floor/b6e09c.wgsl.expected.ir.dxc.hlsl
index 0ba40c6..7e861f1 100644
--- a/test/tint/builtins/gen/var/floor/b6e09c.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/floor/b6e09c.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,43 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  float16_t prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation float16_t VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+float16_t floor_b6e09c() {
+  float16_t arg_0 = float16_t(1.5h);
+  float16_t res = floor(arg_0);
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store<float16_t>(0u, floor_b6e09c());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store<float16_t>(0u, floor_b6e09c());
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = floor_b6e09c();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
diff --git a/test/tint/builtins/gen/var/floor/b6e09c.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/floor/b6e09c.wgsl.expected.ir.fxc.hlsl
index 0ba40c6..c9ac2a8 100644
--- a/test/tint/builtins/gen/var/floor/b6e09c.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/floor/b6e09c.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,48 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct VertexOutput {
+  float4 pos;
+  float16_t prevent_dce;
+};
+
+struct vertex_main_outputs {
+  nointerpolation float16_t VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+float16_t floor_b6e09c() {
+  float16_t arg_0 = float16_t(1.5h);
+  float16_t res = floor(arg_0);
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store<float16_t>(0u, floor_b6e09c());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store<float16_t>(0u, floor_b6e09c());
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = floor_b6e09c();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
+FXC validation failure:
+c:\src\dawn\Shader@0x00000164B535D7A0(3,3-11): error X3000: unrecognized identifier 'float16_t'
+
diff --git a/test/tint/builtins/gen/var/floor/dcd5a2.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/floor/dcd5a2.wgsl.expected.ir.dxc.hlsl
index 0ba40c6..84a0997 100644
--- a/test/tint/builtins/gen/var/floor/dcd5a2.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/floor/dcd5a2.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,36 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+void floor_dcd5a2() {
+  float res = 1.0f;
+}
+
+void fragment_main() {
+  floor_dcd5a2();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  floor_dcd5a2();
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  floor_dcd5a2();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  vertex_main_outputs v_2 = {v_1.pos};
+  return v_2;
+}
+
diff --git a/test/tint/builtins/gen/var/floor/dcd5a2.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/floor/dcd5a2.wgsl.expected.ir.fxc.hlsl
index 0ba40c6..84a0997 100644
--- a/test/tint/builtins/gen/var/floor/dcd5a2.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/floor/dcd5a2.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,36 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+void floor_dcd5a2() {
+  float res = 1.0f;
+}
+
+void fragment_main() {
+  floor_dcd5a2();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  floor_dcd5a2();
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  floor_dcd5a2();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  vertex_main_outputs v_2 = {v_1.pos};
+  return v_2;
+}
+
diff --git a/test/tint/builtins/gen/var/floor/e585ef.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/floor/e585ef.wgsl.expected.ir.dxc.hlsl
index 0ba40c6..1aeefba 100644
--- a/test/tint/builtins/gen/var/floor/e585ef.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/floor/e585ef.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,36 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+void floor_e585ef() {
+  float2 res = (1.0f).xx;
+}
+
+void fragment_main() {
+  floor_e585ef();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  floor_e585ef();
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  floor_e585ef();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  vertex_main_outputs v_2 = {v_1.pos};
+  return v_2;
+}
+
diff --git a/test/tint/builtins/gen/var/floor/e585ef.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/floor/e585ef.wgsl.expected.ir.fxc.hlsl
index 0ba40c6..1aeefba 100644
--- a/test/tint/builtins/gen/var/floor/e585ef.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/floor/e585ef.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,36 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+void floor_e585ef() {
+  float2 res = (1.0f).xx;
+}
+
+void fragment_main() {
+  floor_e585ef();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  floor_e585ef();
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  floor_e585ef();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  vertex_main_outputs v_2 = {v_1.pos};
+  return v_2;
+}
+
diff --git a/test/tint/builtins/gen/var/fma/143d5d.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/fma/143d5d.wgsl.expected.ir.dxc.hlsl
index 0ba40c6..6c2ed69 100644
--- a/test/tint/builtins/gen/var/fma/143d5d.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/fma/143d5d.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,36 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+void fma_143d5d() {
+  float4 res = (2.0f).xxxx;
+}
+
+void fragment_main() {
+  fma_143d5d();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  fma_143d5d();
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  fma_143d5d();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  vertex_main_outputs v_2 = {v_1.pos};
+  return v_2;
+}
+
diff --git a/test/tint/builtins/gen/var/fma/143d5d.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/fma/143d5d.wgsl.expected.ir.fxc.hlsl
index 0ba40c6..6c2ed69 100644
--- a/test/tint/builtins/gen/var/fma/143d5d.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/fma/143d5d.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,36 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+void fma_143d5d() {
+  float4 res = (2.0f).xxxx;
+}
+
+void fragment_main() {
+  fma_143d5d();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  fma_143d5d();
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  fma_143d5d();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  vertex_main_outputs v_2 = {v_1.pos};
+  return v_2;
+}
+
diff --git a/test/tint/builtins/gen/var/fma/1f5084.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/fma/1f5084.wgsl.expected.ir.dxc.hlsl
index 0ba40c6..a998c9e 100644
--- a/test/tint/builtins/gen/var/fma/1f5084.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/fma/1f5084.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,36 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+void fma_1f5084() {
+  float2 res = (2.0f).xx;
+}
+
+void fragment_main() {
+  fma_1f5084();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  fma_1f5084();
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  fma_1f5084();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  vertex_main_outputs v_2 = {v_1.pos};
+  return v_2;
+}
+
diff --git a/test/tint/builtins/gen/var/fma/1f5084.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/fma/1f5084.wgsl.expected.ir.fxc.hlsl
index 0ba40c6..a998c9e 100644
--- a/test/tint/builtins/gen/var/fma/1f5084.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/fma/1f5084.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,36 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+void fma_1f5084() {
+  float2 res = (2.0f).xx;
+}
+
+void fragment_main() {
+  fma_1f5084();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  fma_1f5084();
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  fma_1f5084();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  vertex_main_outputs v_2 = {v_1.pos};
+  return v_2;
+}
+
diff --git a/test/tint/builtins/gen/var/fma/26a7a9.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/fma/26a7a9.wgsl.expected.ir.dxc.hlsl
index 0ba40c6..0dd92b6 100644
--- a/test/tint/builtins/gen/var/fma/26a7a9.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/fma/26a7a9.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,45 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  float2 prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation float2 VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+float2 fma_26a7a9() {
+  float2 arg_0 = (1.0f).xx;
+  float2 arg_1 = (1.0f).xx;
+  float2 arg_2 = (1.0f).xx;
+  float2 res = mad(arg_0, arg_1, arg_2);
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store2(0u, asuint(fma_26a7a9()));
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store2(0u, asuint(fma_26a7a9()));
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = fma_26a7a9();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
diff --git a/test/tint/builtins/gen/var/fma/26a7a9.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/fma/26a7a9.wgsl.expected.ir.fxc.hlsl
index 0ba40c6..0dd92b6 100644
--- a/test/tint/builtins/gen/var/fma/26a7a9.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/fma/26a7a9.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,45 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  float2 prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation float2 VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+float2 fma_26a7a9() {
+  float2 arg_0 = (1.0f).xx;
+  float2 arg_1 = (1.0f).xx;
+  float2 arg_2 = (1.0f).xx;
+  float2 res = mad(arg_0, arg_1, arg_2);
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store2(0u, asuint(fma_26a7a9()));
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store2(0u, asuint(fma_26a7a9()));
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = fma_26a7a9();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
diff --git a/test/tint/builtins/gen/var/fma/466442.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/fma/466442.wgsl.expected.ir.dxc.hlsl
index 0ba40c6..3e717a1 100644
--- a/test/tint/builtins/gen/var/fma/466442.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/fma/466442.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,36 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+void fma_466442() {
+  float res = 2.0f;
+}
+
+void fragment_main() {
+  fma_466442();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  fma_466442();
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  fma_466442();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  vertex_main_outputs v_2 = {v_1.pos};
+  return v_2;
+}
+
diff --git a/test/tint/builtins/gen/var/fma/466442.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/fma/466442.wgsl.expected.ir.fxc.hlsl
index 0ba40c6..3e717a1 100644
--- a/test/tint/builtins/gen/var/fma/466442.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/fma/466442.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,36 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+void fma_466442() {
+  float res = 2.0f;
+}
+
+void fragment_main() {
+  fma_466442();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  fma_466442();
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  fma_466442();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  vertex_main_outputs v_2 = {v_1.pos};
+  return v_2;
+}
+
diff --git a/test/tint/builtins/gen/var/fma/6a3283.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/fma/6a3283.wgsl.expected.ir.dxc.hlsl
index 0ba40c6..03c2f99 100644
--- a/test/tint/builtins/gen/var/fma/6a3283.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/fma/6a3283.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,45 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  float4 prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation float4 VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+float4 fma_6a3283() {
+  float4 arg_0 = (1.0f).xxxx;
+  float4 arg_1 = (1.0f).xxxx;
+  float4 arg_2 = (1.0f).xxxx;
+  float4 res = mad(arg_0, arg_1, arg_2);
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store4(0u, asuint(fma_6a3283()));
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store4(0u, asuint(fma_6a3283()));
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = fma_6a3283();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
diff --git a/test/tint/builtins/gen/var/fma/6a3283.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/fma/6a3283.wgsl.expected.ir.fxc.hlsl
index 0ba40c6..03c2f99 100644
--- a/test/tint/builtins/gen/var/fma/6a3283.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/fma/6a3283.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,45 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  float4 prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation float4 VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+float4 fma_6a3283() {
+  float4 arg_0 = (1.0f).xxxx;
+  float4 arg_1 = (1.0f).xxxx;
+  float4 arg_2 = (1.0f).xxxx;
+  float4 res = mad(arg_0, arg_1, arg_2);
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store4(0u, asuint(fma_6a3283()));
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store4(0u, asuint(fma_6a3283()));
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = fma_6a3283();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
diff --git a/test/tint/builtins/gen/var/fma/ab7818.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/fma/ab7818.wgsl.expected.ir.dxc.hlsl
index 0ba40c6..c5d5e4f 100644
--- a/test/tint/builtins/gen/var/fma/ab7818.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/fma/ab7818.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,45 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  vector<float16_t, 4> prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation vector<float16_t, 4> VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+vector<float16_t, 4> fma_ab7818() {
+  vector<float16_t, 4> arg_0 = (float16_t(1.0h)).xxxx;
+  vector<float16_t, 4> arg_1 = (float16_t(1.0h)).xxxx;
+  vector<float16_t, 4> arg_2 = (float16_t(1.0h)).xxxx;
+  vector<float16_t, 4> res = mad(arg_0, arg_1, arg_2);
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store<vector<float16_t, 4> >(0u, fma_ab7818());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store<vector<float16_t, 4> >(0u, fma_ab7818());
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = fma_ab7818();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
diff --git a/test/tint/builtins/gen/var/fma/ab7818.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/fma/ab7818.wgsl.expected.ir.fxc.hlsl
index 0ba40c6..6015bec 100644
--- a/test/tint/builtins/gen/var/fma/ab7818.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/fma/ab7818.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,50 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct VertexOutput {
+  float4 pos;
+  vector<float16_t, 4> prevent_dce;
+};
+
+struct vertex_main_outputs {
+  nointerpolation vector<float16_t, 4> VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+vector<float16_t, 4> fma_ab7818() {
+  vector<float16_t, 4> arg_0 = (float16_t(1.0h)).xxxx;
+  vector<float16_t, 4> arg_1 = (float16_t(1.0h)).xxxx;
+  vector<float16_t, 4> arg_2 = (float16_t(1.0h)).xxxx;
+  vector<float16_t, 4> res = mad(arg_0, arg_1, arg_2);
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store<vector<float16_t, 4> >(0u, fma_ab7818());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store<vector<float16_t, 4> >(0u, fma_ab7818());
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = fma_ab7818();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
+FXC validation failure:
+c:\src\dawn\Shader@0x000001244CF3D130(3,10-18): error X3000: syntax error: unexpected token 'float16_t'
+
diff --git a/test/tint/builtins/gen/var/fma/bf21b6.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/fma/bf21b6.wgsl.expected.ir.dxc.hlsl
index 0ba40c6..55984d7 100644
--- a/test/tint/builtins/gen/var/fma/bf21b6.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/fma/bf21b6.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,45 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  vector<float16_t, 2> prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation vector<float16_t, 2> VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+vector<float16_t, 2> fma_bf21b6() {
+  vector<float16_t, 2> arg_0 = (float16_t(1.0h)).xx;
+  vector<float16_t, 2> arg_1 = (float16_t(1.0h)).xx;
+  vector<float16_t, 2> arg_2 = (float16_t(1.0h)).xx;
+  vector<float16_t, 2> res = mad(arg_0, arg_1, arg_2);
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store<vector<float16_t, 2> >(0u, fma_bf21b6());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store<vector<float16_t, 2> >(0u, fma_bf21b6());
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = fma_bf21b6();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
diff --git a/test/tint/builtins/gen/var/fma/bf21b6.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/fma/bf21b6.wgsl.expected.ir.fxc.hlsl
index 0ba40c6..15fd67d 100644
--- a/test/tint/builtins/gen/var/fma/bf21b6.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/fma/bf21b6.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,50 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct VertexOutput {
+  float4 pos;
+  vector<float16_t, 2> prevent_dce;
+};
+
+struct vertex_main_outputs {
+  nointerpolation vector<float16_t, 2> VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+vector<float16_t, 2> fma_bf21b6() {
+  vector<float16_t, 2> arg_0 = (float16_t(1.0h)).xx;
+  vector<float16_t, 2> arg_1 = (float16_t(1.0h)).xx;
+  vector<float16_t, 2> arg_2 = (float16_t(1.0h)).xx;
+  vector<float16_t, 2> res = mad(arg_0, arg_1, arg_2);
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store<vector<float16_t, 2> >(0u, fma_bf21b6());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store<vector<float16_t, 2> >(0u, fma_bf21b6());
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = fma_bf21b6();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
+FXC validation failure:
+c:\src\dawn\Shader@0x000001B85D40D330(3,10-18): error X3000: syntax error: unexpected token 'float16_t'
+
diff --git a/test/tint/builtins/gen/var/fma/c10ba3.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/fma/c10ba3.wgsl.expected.ir.dxc.hlsl
index 0ba40c6..fc44c3d 100644
--- a/test/tint/builtins/gen/var/fma/c10ba3.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/fma/c10ba3.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,45 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  float prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation float VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+float fma_c10ba3() {
+  float arg_0 = 1.0f;
+  float arg_1 = 1.0f;
+  float arg_2 = 1.0f;
+  float res = mad(arg_0, arg_1, arg_2);
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store(0u, asuint(fma_c10ba3()));
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store(0u, asuint(fma_c10ba3()));
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = fma_c10ba3();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
diff --git a/test/tint/builtins/gen/var/fma/c10ba3.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/fma/c10ba3.wgsl.expected.ir.fxc.hlsl
index 0ba40c6..fc44c3d 100644
--- a/test/tint/builtins/gen/var/fma/c10ba3.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/fma/c10ba3.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,45 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  float prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation float VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+float fma_c10ba3() {
+  float arg_0 = 1.0f;
+  float arg_1 = 1.0f;
+  float arg_2 = 1.0f;
+  float res = mad(arg_0, arg_1, arg_2);
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store(0u, asuint(fma_c10ba3()));
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store(0u, asuint(fma_c10ba3()));
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = fma_c10ba3();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
diff --git a/test/tint/builtins/gen/var/fma/c8abb3.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/fma/c8abb3.wgsl.expected.ir.dxc.hlsl
index 0ba40c6..df252d3 100644
--- a/test/tint/builtins/gen/var/fma/c8abb3.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/fma/c8abb3.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,45 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  float16_t prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation float16_t VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+float16_t fma_c8abb3() {
+  float16_t arg_0 = float16_t(1.0h);
+  float16_t arg_1 = float16_t(1.0h);
+  float16_t arg_2 = float16_t(1.0h);
+  float16_t res = mad(arg_0, arg_1, arg_2);
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store<float16_t>(0u, fma_c8abb3());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store<float16_t>(0u, fma_c8abb3());
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = fma_c8abb3();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
diff --git a/test/tint/builtins/gen/var/fma/c8abb3.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/fma/c8abb3.wgsl.expected.ir.fxc.hlsl
index 0ba40c6..738e7c5 100644
--- a/test/tint/builtins/gen/var/fma/c8abb3.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/fma/c8abb3.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,50 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct VertexOutput {
+  float4 pos;
+  float16_t prevent_dce;
+};
+
+struct vertex_main_outputs {
+  nointerpolation float16_t VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+float16_t fma_c8abb3() {
+  float16_t arg_0 = float16_t(1.0h);
+  float16_t arg_1 = float16_t(1.0h);
+  float16_t arg_2 = float16_t(1.0h);
+  float16_t res = mad(arg_0, arg_1, arg_2);
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store<float16_t>(0u, fma_c8abb3());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store<float16_t>(0u, fma_c8abb3());
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = fma_c8abb3();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
+FXC validation failure:
+c:\src\dawn\Shader@0x00000297BE12DC10(3,3-11): error X3000: unrecognized identifier 'float16_t'
+
diff --git a/test/tint/builtins/gen/var/fma/e17c5c.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/fma/e17c5c.wgsl.expected.ir.dxc.hlsl
index 0ba40c6..729822a 100644
--- a/test/tint/builtins/gen/var/fma/e17c5c.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/fma/e17c5c.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,45 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  float3 prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation float3 VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+float3 fma_e17c5c() {
+  float3 arg_0 = (1.0f).xxx;
+  float3 arg_1 = (1.0f).xxx;
+  float3 arg_2 = (1.0f).xxx;
+  float3 res = mad(arg_0, arg_1, arg_2);
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store3(0u, asuint(fma_e17c5c()));
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store3(0u, asuint(fma_e17c5c()));
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = fma_e17c5c();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
diff --git a/test/tint/builtins/gen/var/fma/e17c5c.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/fma/e17c5c.wgsl.expected.ir.fxc.hlsl
index 0ba40c6..729822a 100644
--- a/test/tint/builtins/gen/var/fma/e17c5c.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/fma/e17c5c.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,45 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  float3 prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation float3 VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+float3 fma_e17c5c() {
+  float3 arg_0 = (1.0f).xxx;
+  float3 arg_1 = (1.0f).xxx;
+  float3 arg_2 = (1.0f).xxx;
+  float3 res = mad(arg_0, arg_1, arg_2);
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store3(0u, asuint(fma_e17c5c()));
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store3(0u, asuint(fma_e17c5c()));
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = fma_e17c5c();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
diff --git a/test/tint/builtins/gen/var/fma/e7abdc.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/fma/e7abdc.wgsl.expected.ir.dxc.hlsl
index 0ba40c6..14dd8ac 100644
--- a/test/tint/builtins/gen/var/fma/e7abdc.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/fma/e7abdc.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,45 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  vector<float16_t, 3> prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation vector<float16_t, 3> VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+vector<float16_t, 3> fma_e7abdc() {
+  vector<float16_t, 3> arg_0 = (float16_t(1.0h)).xxx;
+  vector<float16_t, 3> arg_1 = (float16_t(1.0h)).xxx;
+  vector<float16_t, 3> arg_2 = (float16_t(1.0h)).xxx;
+  vector<float16_t, 3> res = mad(arg_0, arg_1, arg_2);
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store<vector<float16_t, 3> >(0u, fma_e7abdc());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store<vector<float16_t, 3> >(0u, fma_e7abdc());
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = fma_e7abdc();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
diff --git a/test/tint/builtins/gen/var/fma/e7abdc.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/fma/e7abdc.wgsl.expected.ir.fxc.hlsl
index 0ba40c6..ca5ead9 100644
--- a/test/tint/builtins/gen/var/fma/e7abdc.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/fma/e7abdc.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,50 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct VertexOutput {
+  float4 pos;
+  vector<float16_t, 3> prevent_dce;
+};
+
+struct vertex_main_outputs {
+  nointerpolation vector<float16_t, 3> VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+vector<float16_t, 3> fma_e7abdc() {
+  vector<float16_t, 3> arg_0 = (float16_t(1.0h)).xxx;
+  vector<float16_t, 3> arg_1 = (float16_t(1.0h)).xxx;
+  vector<float16_t, 3> arg_2 = (float16_t(1.0h)).xxx;
+  vector<float16_t, 3> res = mad(arg_0, arg_1, arg_2);
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store<vector<float16_t, 3> >(0u, fma_e7abdc());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store<vector<float16_t, 3> >(0u, fma_e7abdc());
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = fma_e7abdc();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
+FXC validation failure:
+c:\src\dawn\Shader@0x00000198E49273C0(3,10-18): error X3000: syntax error: unexpected token 'float16_t'
+
diff --git a/test/tint/builtins/gen/var/fma/eb25d7.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/fma/eb25d7.wgsl.expected.ir.dxc.hlsl
index 0ba40c6..637bf0b5 100644
--- a/test/tint/builtins/gen/var/fma/eb25d7.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/fma/eb25d7.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,36 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+void fma_eb25d7() {
+  float3 res = (2.0f).xxx;
+}
+
+void fragment_main() {
+  fma_eb25d7();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  fma_eb25d7();
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  fma_eb25d7();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  vertex_main_outputs v_2 = {v_1.pos};
+  return v_2;
+}
+
diff --git a/test/tint/builtins/gen/var/fma/eb25d7.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/fma/eb25d7.wgsl.expected.ir.fxc.hlsl
index 0ba40c6..637bf0b5 100644
--- a/test/tint/builtins/gen/var/fma/eb25d7.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/fma/eb25d7.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,36 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+void fma_eb25d7() {
+  float3 res = (2.0f).xxx;
+}
+
+void fragment_main() {
+  fma_eb25d7();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  fma_eb25d7();
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  fma_eb25d7();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  vertex_main_outputs v_2 = {v_1.pos};
+  return v_2;
+}
+
diff --git a/test/tint/builtins/gen/var/fract/181aa9.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/fract/181aa9.wgsl.expected.ir.dxc.hlsl
index 0ba40c6..3c2d657 100644
--- a/test/tint/builtins/gen/var/fract/181aa9.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/fract/181aa9.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,43 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  vector<float16_t, 2> prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation vector<float16_t, 2> VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+vector<float16_t, 2> fract_181aa9() {
+  vector<float16_t, 2> arg_0 = (float16_t(1.25h)).xx;
+  vector<float16_t, 2> res = frac(arg_0);
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store<vector<float16_t, 2> >(0u, fract_181aa9());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store<vector<float16_t, 2> >(0u, fract_181aa9());
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = fract_181aa9();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
diff --git a/test/tint/builtins/gen/var/fract/181aa9.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/fract/181aa9.wgsl.expected.ir.fxc.hlsl
index 0ba40c6..fd3d358 100644
--- a/test/tint/builtins/gen/var/fract/181aa9.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/fract/181aa9.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,48 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct VertexOutput {
+  float4 pos;
+  vector<float16_t, 2> prevent_dce;
+};
+
+struct vertex_main_outputs {
+  nointerpolation vector<float16_t, 2> VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+vector<float16_t, 2> fract_181aa9() {
+  vector<float16_t, 2> arg_0 = (float16_t(1.25h)).xx;
+  vector<float16_t, 2> res = frac(arg_0);
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store<vector<float16_t, 2> >(0u, fract_181aa9());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store<vector<float16_t, 2> >(0u, fract_181aa9());
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = fract_181aa9();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
+FXC validation failure:
+c:\src\dawn\Shader@0x000001E3CC123230(3,10-18): error X3000: syntax error: unexpected token 'float16_t'
+
diff --git a/test/tint/builtins/gen/var/fract/2eddfe.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/fract/2eddfe.wgsl.expected.ir.dxc.hlsl
index 0ba40c6..1bd30c0 100644
--- a/test/tint/builtins/gen/var/fract/2eddfe.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/fract/2eddfe.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,36 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+void fract_2eddfe() {
+  float res = 0.25f;
+}
+
+void fragment_main() {
+  fract_2eddfe();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  fract_2eddfe();
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  fract_2eddfe();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  vertex_main_outputs v_2 = {v_1.pos};
+  return v_2;
+}
+
diff --git a/test/tint/builtins/gen/var/fract/2eddfe.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/fract/2eddfe.wgsl.expected.ir.fxc.hlsl
index 0ba40c6..1bd30c0 100644
--- a/test/tint/builtins/gen/var/fract/2eddfe.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/fract/2eddfe.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,36 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+void fract_2eddfe() {
+  float res = 0.25f;
+}
+
+void fragment_main() {
+  fract_2eddfe();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  fract_2eddfe();
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  fract_2eddfe();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  vertex_main_outputs v_2 = {v_1.pos};
+  return v_2;
+}
+
diff --git a/test/tint/builtins/gen/var/fract/498c77.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/fract/498c77.wgsl.expected.ir.dxc.hlsl
index 0ba40c6..7e9b01b 100644
--- a/test/tint/builtins/gen/var/fract/498c77.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/fract/498c77.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,43 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  vector<float16_t, 4> prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation vector<float16_t, 4> VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+vector<float16_t, 4> fract_498c77() {
+  vector<float16_t, 4> arg_0 = (float16_t(1.25h)).xxxx;
+  vector<float16_t, 4> res = frac(arg_0);
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store<vector<float16_t, 4> >(0u, fract_498c77());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store<vector<float16_t, 4> >(0u, fract_498c77());
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = fract_498c77();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
diff --git a/test/tint/builtins/gen/var/fract/498c77.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/fract/498c77.wgsl.expected.ir.fxc.hlsl
index 0ba40c6..0c14169 100644
--- a/test/tint/builtins/gen/var/fract/498c77.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/fract/498c77.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,48 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct VertexOutput {
+  float4 pos;
+  vector<float16_t, 4> prevent_dce;
+};
+
+struct vertex_main_outputs {
+  nointerpolation vector<float16_t, 4> VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+vector<float16_t, 4> fract_498c77() {
+  vector<float16_t, 4> arg_0 = (float16_t(1.25h)).xxxx;
+  vector<float16_t, 4> res = frac(arg_0);
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store<vector<float16_t, 4> >(0u, fract_498c77());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store<vector<float16_t, 4> >(0u, fract_498c77());
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = fract_498c77();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
+FXC validation failure:
+c:\src\dawn\Shader@0x000001E6AB15FBF0(3,10-18): error X3000: syntax error: unexpected token 'float16_t'
+
diff --git a/test/tint/builtins/gen/var/fract/7e3f2d.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/fract/7e3f2d.wgsl.expected.ir.dxc.hlsl
index 0ba40c6..8c6e312 100644
--- a/test/tint/builtins/gen/var/fract/7e3f2d.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/fract/7e3f2d.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,36 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+void fract_7e3f2d() {
+  float4 res = (0.25f).xxxx;
+}
+
+void fragment_main() {
+  fract_7e3f2d();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  fract_7e3f2d();
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  fract_7e3f2d();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  vertex_main_outputs v_2 = {v_1.pos};
+  return v_2;
+}
+
diff --git a/test/tint/builtins/gen/var/fract/7e3f2d.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/fract/7e3f2d.wgsl.expected.ir.fxc.hlsl
index 0ba40c6..8c6e312 100644
--- a/test/tint/builtins/gen/var/fract/7e3f2d.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/fract/7e3f2d.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,36 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+void fract_7e3f2d() {
+  float4 res = (0.25f).xxxx;
+}
+
+void fragment_main() {
+  fract_7e3f2d();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  fract_7e3f2d();
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  fract_7e3f2d();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  vertex_main_outputs v_2 = {v_1.pos};
+  return v_2;
+}
+
diff --git a/test/tint/builtins/gen/var/fract/8bc1e9.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/fract/8bc1e9.wgsl.expected.ir.dxc.hlsl
index 0ba40c6..863e359 100644
--- a/test/tint/builtins/gen/var/fract/8bc1e9.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/fract/8bc1e9.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,43 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  float4 prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation float4 VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+float4 fract_8bc1e9() {
+  float4 arg_0 = (1.25f).xxxx;
+  float4 res = frac(arg_0);
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store4(0u, asuint(fract_8bc1e9()));
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store4(0u, asuint(fract_8bc1e9()));
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = fract_8bc1e9();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
diff --git a/test/tint/builtins/gen/var/fract/8bc1e9.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/fract/8bc1e9.wgsl.expected.ir.fxc.hlsl
index 0ba40c6..863e359 100644
--- a/test/tint/builtins/gen/var/fract/8bc1e9.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/fract/8bc1e9.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,43 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  float4 prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation float4 VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+float4 fract_8bc1e9() {
+  float4 arg_0 = (1.25f).xxxx;
+  float4 res = frac(arg_0);
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store4(0u, asuint(fract_8bc1e9()));
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store4(0u, asuint(fract_8bc1e9()));
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = fract_8bc1e9();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
diff --git a/test/tint/builtins/gen/var/fract/943cb1.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/fract/943cb1.wgsl.expected.ir.dxc.hlsl
index 0ba40c6..fc3be00 100644
--- a/test/tint/builtins/gen/var/fract/943cb1.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/fract/943cb1.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,43 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  float2 prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation float2 VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+float2 fract_943cb1() {
+  float2 arg_0 = (1.25f).xx;
+  float2 res = frac(arg_0);
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store2(0u, asuint(fract_943cb1()));
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store2(0u, asuint(fract_943cb1()));
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = fract_943cb1();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
diff --git a/test/tint/builtins/gen/var/fract/943cb1.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/fract/943cb1.wgsl.expected.ir.fxc.hlsl
index 0ba40c6..fc3be00 100644
--- a/test/tint/builtins/gen/var/fract/943cb1.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/fract/943cb1.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,43 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  float2 prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation float2 VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+float2 fract_943cb1() {
+  float2 arg_0 = (1.25f).xx;
+  float2 res = frac(arg_0);
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store2(0u, asuint(fract_943cb1()));
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store2(0u, asuint(fract_943cb1()));
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = fract_943cb1();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
diff --git a/test/tint/builtins/gen/var/fract/958a1d.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/fract/958a1d.wgsl.expected.ir.dxc.hlsl
index 0ba40c6..a16fa89 100644
--- a/test/tint/builtins/gen/var/fract/958a1d.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/fract/958a1d.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,43 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  vector<float16_t, 3> prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation vector<float16_t, 3> VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+vector<float16_t, 3> fract_958a1d() {
+  vector<float16_t, 3> arg_0 = (float16_t(1.25h)).xxx;
+  vector<float16_t, 3> res = frac(arg_0);
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store<vector<float16_t, 3> >(0u, fract_958a1d());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store<vector<float16_t, 3> >(0u, fract_958a1d());
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = fract_958a1d();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
diff --git a/test/tint/builtins/gen/var/fract/958a1d.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/fract/958a1d.wgsl.expected.ir.fxc.hlsl
index 0ba40c6..5e479cd 100644
--- a/test/tint/builtins/gen/var/fract/958a1d.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/fract/958a1d.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,48 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct VertexOutput {
+  float4 pos;
+  vector<float16_t, 3> prevent_dce;
+};
+
+struct vertex_main_outputs {
+  nointerpolation vector<float16_t, 3> VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+vector<float16_t, 3> fract_958a1d() {
+  vector<float16_t, 3> arg_0 = (float16_t(1.25h)).xxx;
+  vector<float16_t, 3> res = frac(arg_0);
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store<vector<float16_t, 3> >(0u, fract_958a1d());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store<vector<float16_t, 3> >(0u, fract_958a1d());
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = fract_958a1d();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
+FXC validation failure:
+c:\src\dawn\Shader@0x0000020A5BC00E80(3,10-18): error X3000: syntax error: unexpected token 'float16_t'
+
diff --git a/test/tint/builtins/gen/var/fract/a49758.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/fract/a49758.wgsl.expected.ir.dxc.hlsl
index 0ba40c6..0632b9b 100644
--- a/test/tint/builtins/gen/var/fract/a49758.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/fract/a49758.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,43 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  float3 prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation float3 VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+float3 fract_a49758() {
+  float3 arg_0 = (1.25f).xxx;
+  float3 res = frac(arg_0);
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store3(0u, asuint(fract_a49758()));
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store3(0u, asuint(fract_a49758()));
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = fract_a49758();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
diff --git a/test/tint/builtins/gen/var/fract/a49758.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/fract/a49758.wgsl.expected.ir.fxc.hlsl
index 0ba40c6..0632b9b 100644
--- a/test/tint/builtins/gen/var/fract/a49758.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/fract/a49758.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,43 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  float3 prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation float3 VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+float3 fract_a49758() {
+  float3 arg_0 = (1.25f).xxx;
+  float3 res = frac(arg_0);
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store3(0u, asuint(fract_a49758()));
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store3(0u, asuint(fract_a49758()));
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = fract_a49758();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
diff --git a/test/tint/builtins/gen/var/fract/eb38ce.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/fract/eb38ce.wgsl.expected.ir.dxc.hlsl
index 0ba40c6..56dc31a 100644
--- a/test/tint/builtins/gen/var/fract/eb38ce.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/fract/eb38ce.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,43 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  float16_t prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation float16_t VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+float16_t fract_eb38ce() {
+  float16_t arg_0 = float16_t(1.25h);
+  float16_t res = frac(arg_0);
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store<float16_t>(0u, fract_eb38ce());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store<float16_t>(0u, fract_eb38ce());
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = fract_eb38ce();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
diff --git a/test/tint/builtins/gen/var/fract/eb38ce.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/fract/eb38ce.wgsl.expected.ir.fxc.hlsl
index 0ba40c6..96107f6 100644
--- a/test/tint/builtins/gen/var/fract/eb38ce.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/fract/eb38ce.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,48 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct VertexOutput {
+  float4 pos;
+  float16_t prevent_dce;
+};
+
+struct vertex_main_outputs {
+  nointerpolation float16_t VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+float16_t fract_eb38ce() {
+  float16_t arg_0 = float16_t(1.25h);
+  float16_t res = frac(arg_0);
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store<float16_t>(0u, fract_eb38ce());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store<float16_t>(0u, fract_eb38ce());
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = fract_eb38ce();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
+FXC validation failure:
+c:\src\dawn\Shader@0x000001EB54D14540(3,3-11): error X3000: unrecognized identifier 'float16_t'
+
diff --git a/test/tint/builtins/gen/var/fract/ed00ca.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/fract/ed00ca.wgsl.expected.ir.dxc.hlsl
index 0ba40c6..30a3256 100644
--- a/test/tint/builtins/gen/var/fract/ed00ca.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/fract/ed00ca.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,36 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+void fract_ed00ca() {
+  float2 res = (0.25f).xx;
+}
+
+void fragment_main() {
+  fract_ed00ca();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  fract_ed00ca();
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  fract_ed00ca();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  vertex_main_outputs v_2 = {v_1.pos};
+  return v_2;
+}
+
diff --git a/test/tint/builtins/gen/var/fract/ed00ca.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/fract/ed00ca.wgsl.expected.ir.fxc.hlsl
index 0ba40c6..30a3256 100644
--- a/test/tint/builtins/gen/var/fract/ed00ca.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/fract/ed00ca.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,36 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+void fract_ed00ca() {
+  float2 res = (0.25f).xx;
+}
+
+void fragment_main() {
+  fract_ed00ca();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  fract_ed00ca();
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  fract_ed00ca();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  vertex_main_outputs v_2 = {v_1.pos};
+  return v_2;
+}
+
diff --git a/test/tint/builtins/gen/var/fract/ed2f79.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/fract/ed2f79.wgsl.expected.ir.dxc.hlsl
index 0ba40c6..a85cac6 100644
--- a/test/tint/builtins/gen/var/fract/ed2f79.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/fract/ed2f79.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,36 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+void fract_ed2f79() {
+  float3 res = (0.25f).xxx;
+}
+
+void fragment_main() {
+  fract_ed2f79();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  fract_ed2f79();
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  fract_ed2f79();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  vertex_main_outputs v_2 = {v_1.pos};
+  return v_2;
+}
+
diff --git a/test/tint/builtins/gen/var/fract/ed2f79.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/fract/ed2f79.wgsl.expected.ir.fxc.hlsl
index 0ba40c6..a85cac6 100644
--- a/test/tint/builtins/gen/var/fract/ed2f79.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/fract/ed2f79.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,36 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+void fract_ed2f79() {
+  float3 res = (0.25f).xxx;
+}
+
+void fragment_main() {
+  fract_ed2f79();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  fract_ed2f79();
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  fract_ed2f79();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  vertex_main_outputs v_2 = {v_1.pos};
+  return v_2;
+}
+
diff --git a/test/tint/builtins/gen/var/fract/fa5c71.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/fract/fa5c71.wgsl.expected.ir.dxc.hlsl
index 0ba40c6..8e37935 100644
--- a/test/tint/builtins/gen/var/fract/fa5c71.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/fract/fa5c71.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,43 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  float prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation float VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+float fract_fa5c71() {
+  float arg_0 = 1.25f;
+  float res = frac(arg_0);
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store(0u, asuint(fract_fa5c71()));
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store(0u, asuint(fract_fa5c71()));
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = fract_fa5c71();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
diff --git a/test/tint/builtins/gen/var/fract/fa5c71.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/fract/fa5c71.wgsl.expected.ir.fxc.hlsl
index 0ba40c6..8e37935 100644
--- a/test/tint/builtins/gen/var/fract/fa5c71.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/fract/fa5c71.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,43 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  float prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation float VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+float fract_fa5c71() {
+  float arg_0 = 1.25f;
+  float res = frac(arg_0);
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store(0u, asuint(fract_fa5c71()));
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store(0u, asuint(fract_fa5c71()));
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = fract_fa5c71();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
diff --git a/test/tint/builtins/gen/var/frexp/34bbfb.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/frexp/34bbfb.wgsl.expected.ir.dxc.hlsl
index 0ba40c6..ca3d771 100644
--- a/test/tint/builtins/gen/var/frexp/34bbfb.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/frexp/34bbfb.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,41 @@
-SKIP: FAILED
+struct frexp_result_vec4_f32 {
+  float4 fract;
+  int4 exp;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct VertexOutput {
+  float4 pos;
+};
+
+struct vertex_main_outputs {
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+void frexp_34bbfb() {
+  frexp_result_vec4_f32 res = {(0.5f).xxxx, (1).xxxx};
+}
+
+void fragment_main() {
+  frexp_34bbfb();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  frexp_34bbfb();
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  frexp_34bbfb();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  vertex_main_outputs v_2 = {v_1.pos};
+  return v_2;
+}
+
diff --git a/test/tint/builtins/gen/var/frexp/34bbfb.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/frexp/34bbfb.wgsl.expected.ir.fxc.hlsl
index 0ba40c6..ca3d771 100644
--- a/test/tint/builtins/gen/var/frexp/34bbfb.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/frexp/34bbfb.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,41 @@
-SKIP: FAILED
+struct frexp_result_vec4_f32 {
+  float4 fract;
+  int4 exp;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct VertexOutput {
+  float4 pos;
+};
+
+struct vertex_main_outputs {
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+void frexp_34bbfb() {
+  frexp_result_vec4_f32 res = {(0.5f).xxxx, (1).xxxx};
+}
+
+void fragment_main() {
+  frexp_34bbfb();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  frexp_34bbfb();
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  frexp_34bbfb();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  vertex_main_outputs v_2 = {v_1.pos};
+  return v_2;
+}
+
diff --git a/test/tint/builtins/gen/var/frexp/3dd21e.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/frexp/3dd21e.wgsl.expected.ir.dxc.hlsl
index 0ba40c6..4711abb 100644
--- a/test/tint/builtins/gen/var/frexp/3dd21e.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/frexp/3dd21e.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,49 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct frexp_result_vec4_f16 {
+  vector<float16_t, 4> fract;
+  int4 exp;
+};
+
+struct VertexOutput {
+  float4 pos;
+};
+
+struct vertex_main_outputs {
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+void frexp_3dd21e() {
+  vector<float16_t, 4> arg_0 = (float16_t(1.0h)).xxxx;
+  frexp_result_vec4_f16 res = frexp(arg_0);
+}
+
+void fragment_main() {
+  frexp_3dd21e();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  frexp_3dd21e();
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  frexp_3dd21e();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  vertex_main_outputs v_2 = {v_1.pos};
+  return v_2;
+}
+
+DXC validation failure:
+hlsl.hlsl:17:31: error: use of undeclared identifier 'frexp'
+  frexp_result_vec4_f16 res = frexp(arg_0);
+                              ^
+
diff --git a/test/tint/builtins/gen/var/frexp/3dd21e.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/frexp/3dd21e.wgsl.expected.ir.fxc.hlsl
index 0ba40c6..0ed98cb 100644
--- a/test/tint/builtins/gen/var/frexp/3dd21e.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/frexp/3dd21e.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,47 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct frexp_result_vec4_f16 {
+  vector<float16_t, 4> fract;
+  int4 exp;
+};
+
+struct VertexOutput {
+  float4 pos;
+};
+
+struct vertex_main_outputs {
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+void frexp_3dd21e() {
+  vector<float16_t, 4> arg_0 = (float16_t(1.0h)).xxxx;
+  frexp_result_vec4_f16 res = frexp(arg_0);
+}
+
+void fragment_main() {
+  frexp_3dd21e();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  frexp_3dd21e();
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  frexp_3dd21e();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  vertex_main_outputs v_2 = {v_1.pos};
+  return v_2;
+}
+
+FXC validation failure:
+c:\src\dawn\Shader@0x0000029E926E4B70(2,10-18): error X3000: syntax error: unexpected token 'float16_t'
+
diff --git a/test/tint/builtins/gen/var/frexp/4b2200.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/frexp/4b2200.wgsl.expected.ir.dxc.hlsl
index 0ba40c6..d0845f1 100644
--- a/test/tint/builtins/gen/var/frexp/4b2200.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/frexp/4b2200.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,49 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct frexp_result_f32 {
+  float fract;
+  int exp;
+};
+
+struct VertexOutput {
+  float4 pos;
+};
+
+struct vertex_main_outputs {
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+void frexp_4b2200() {
+  float arg_0 = 1.0f;
+  frexp_result_f32 res = frexp(arg_0);
+}
+
+void fragment_main() {
+  frexp_4b2200();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  frexp_4b2200();
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  frexp_4b2200();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  vertex_main_outputs v_2 = {v_1.pos};
+  return v_2;
+}
+
+DXC validation failure:
+hlsl.hlsl:17:26: error: use of undeclared identifier 'frexp'
+  frexp_result_f32 res = frexp(arg_0);
+                         ^
+
diff --git a/test/tint/builtins/gen/var/frexp/4b2200.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/frexp/4b2200.wgsl.expected.ir.fxc.hlsl
index 0ba40c6..71f9cfa 100644
--- a/test/tint/builtins/gen/var/frexp/4b2200.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/frexp/4b2200.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,49 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct frexp_result_f32 {
+  float fract;
+  int exp;
+};
+
+struct VertexOutput {
+  float4 pos;
+};
+
+struct vertex_main_outputs {
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+void frexp_4b2200() {
+  float arg_0 = 1.0f;
+  frexp_result_f32 res = frexp(arg_0);
+}
+
+void fragment_main() {
+  frexp_4b2200();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  frexp_4b2200();
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  frexp_4b2200();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  vertex_main_outputs v_2 = {v_1.pos};
+  return v_2;
+}
+
+FXC validation failure:
+c:\src\dawn\Shader@0x000001F4A74DF890(17,26-37): error X3013: 'frexp': no matching 1 parameter intrinsic function
+c:\src\dawn\Shader@0x000001F4A74DF890(17,26-37): error X3013: Possible intrinsic functions are:
+c:\src\dawn\Shader@0x000001F4A74DF890(17,26-37): error X3013:     frexp(float|half, out float|half exp)
+
diff --git a/test/tint/builtins/gen/var/frexp/5257dd.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/frexp/5257dd.wgsl.expected.ir.dxc.hlsl
index 0ba40c6..092a0c6 100644
--- a/test/tint/builtins/gen/var/frexp/5257dd.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/frexp/5257dd.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,49 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct frexp_result_f16 {
+  float16_t fract;
+  int exp;
+};
+
+struct VertexOutput {
+  float4 pos;
+};
+
+struct vertex_main_outputs {
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+void frexp_5257dd() {
+  float16_t arg_0 = float16_t(1.0h);
+  frexp_result_f16 res = frexp(arg_0);
+}
+
+void fragment_main() {
+  frexp_5257dd();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  frexp_5257dd();
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  frexp_5257dd();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  vertex_main_outputs v_2 = {v_1.pos};
+  return v_2;
+}
+
+DXC validation failure:
+hlsl.hlsl:17:26: error: use of undeclared identifier 'frexp'
+  frexp_result_f16 res = frexp(arg_0);
+                         ^
+
diff --git a/test/tint/builtins/gen/var/frexp/5257dd.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/frexp/5257dd.wgsl.expected.ir.fxc.hlsl
index 0ba40c6..2b0625d 100644
--- a/test/tint/builtins/gen/var/frexp/5257dd.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/frexp/5257dd.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,47 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct frexp_result_f16 {
+  float16_t fract;
+  int exp;
+};
+
+struct VertexOutput {
+  float4 pos;
+};
+
+struct vertex_main_outputs {
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+void frexp_5257dd() {
+  float16_t arg_0 = float16_t(1.0h);
+  frexp_result_f16 res = frexp(arg_0);
+}
+
+void fragment_main() {
+  frexp_5257dd();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  frexp_5257dd();
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  frexp_5257dd();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  vertex_main_outputs v_2 = {v_1.pos};
+  return v_2;
+}
+
+FXC validation failure:
+c:\src\dawn\Shader@0x0000022A48B06950(2,3-11): error X3000: unrecognized identifier 'float16_t'
+
diff --git a/test/tint/builtins/gen/var/frexp/5f47bf.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/frexp/5f47bf.wgsl.expected.ir.dxc.hlsl
index 0ba40c6..ed26c56 100644
--- a/test/tint/builtins/gen/var/frexp/5f47bf.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/frexp/5f47bf.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,49 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct frexp_result_vec2_f16 {
+  vector<float16_t, 2> fract;
+  int2 exp;
+};
+
+struct VertexOutput {
+  float4 pos;
+};
+
+struct vertex_main_outputs {
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+void frexp_5f47bf() {
+  vector<float16_t, 2> arg_0 = (float16_t(1.0h)).xx;
+  frexp_result_vec2_f16 res = frexp(arg_0);
+}
+
+void fragment_main() {
+  frexp_5f47bf();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  frexp_5f47bf();
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  frexp_5f47bf();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  vertex_main_outputs v_2 = {v_1.pos};
+  return v_2;
+}
+
+DXC validation failure:
+hlsl.hlsl:17:31: error: use of undeclared identifier 'frexp'
+  frexp_result_vec2_f16 res = frexp(arg_0);
+                              ^
+
diff --git a/test/tint/builtins/gen/var/frexp/5f47bf.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/frexp/5f47bf.wgsl.expected.ir.fxc.hlsl
index 0ba40c6..ae10bdb 100644
--- a/test/tint/builtins/gen/var/frexp/5f47bf.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/frexp/5f47bf.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,47 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct frexp_result_vec2_f16 {
+  vector<float16_t, 2> fract;
+  int2 exp;
+};
+
+struct VertexOutput {
+  float4 pos;
+};
+
+struct vertex_main_outputs {
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+void frexp_5f47bf() {
+  vector<float16_t, 2> arg_0 = (float16_t(1.0h)).xx;
+  frexp_result_vec2_f16 res = frexp(arg_0);
+}
+
+void fragment_main() {
+  frexp_5f47bf();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  frexp_5f47bf();
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  frexp_5f47bf();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  vertex_main_outputs v_2 = {v_1.pos};
+  return v_2;
+}
+
+FXC validation failure:
+c:\src\dawn\Shader@0x0000023B5579C3B0(2,10-18): error X3000: syntax error: unexpected token 'float16_t'
+
diff --git a/test/tint/builtins/gen/var/frexp/6fb3ad.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/frexp/6fb3ad.wgsl.expected.ir.dxc.hlsl
index 0ba40c6..d213c3f 100644
--- a/test/tint/builtins/gen/var/frexp/6fb3ad.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/frexp/6fb3ad.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,41 @@
-SKIP: FAILED
+struct frexp_result_vec2_f32 {
+  float2 fract;
+  int2 exp;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct VertexOutput {
+  float4 pos;
+};
+
+struct vertex_main_outputs {
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+void frexp_6fb3ad() {
+  frexp_result_vec2_f32 res = {(0.5f).xx, (1).xx};
+}
+
+void fragment_main() {
+  frexp_6fb3ad();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  frexp_6fb3ad();
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  frexp_6fb3ad();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  vertex_main_outputs v_2 = {v_1.pos};
+  return v_2;
+}
+
diff --git a/test/tint/builtins/gen/var/frexp/6fb3ad.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/frexp/6fb3ad.wgsl.expected.ir.fxc.hlsl
index 0ba40c6..d213c3f 100644
--- a/test/tint/builtins/gen/var/frexp/6fb3ad.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/frexp/6fb3ad.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,41 @@
-SKIP: FAILED
+struct frexp_result_vec2_f32 {
+  float2 fract;
+  int2 exp;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct VertexOutput {
+  float4 pos;
+};
+
+struct vertex_main_outputs {
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+void frexp_6fb3ad() {
+  frexp_result_vec2_f32 res = {(0.5f).xx, (1).xx};
+}
+
+void fragment_main() {
+  frexp_6fb3ad();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  frexp_6fb3ad();
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  frexp_6fb3ad();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  vertex_main_outputs v_2 = {v_1.pos};
+  return v_2;
+}
+
diff --git a/test/tint/builtins/gen/var/frexp/77af93.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/frexp/77af93.wgsl.expected.ir.dxc.hlsl
index 0ba40c6..e983e83 100644
--- a/test/tint/builtins/gen/var/frexp/77af93.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/frexp/77af93.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,49 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct frexp_result_vec4_f32 {
+  float4 fract;
+  int4 exp;
+};
+
+struct VertexOutput {
+  float4 pos;
+};
+
+struct vertex_main_outputs {
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+void frexp_77af93() {
+  float4 arg_0 = (1.0f).xxxx;
+  frexp_result_vec4_f32 res = frexp(arg_0);
+}
+
+void fragment_main() {
+  frexp_77af93();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  frexp_77af93();
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  frexp_77af93();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  vertex_main_outputs v_2 = {v_1.pos};
+  return v_2;
+}
+
+DXC validation failure:
+hlsl.hlsl:17:31: error: use of undeclared identifier 'frexp'
+  frexp_result_vec4_f32 res = frexp(arg_0);
+                              ^
+
diff --git a/test/tint/builtins/gen/var/frexp/77af93.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/frexp/77af93.wgsl.expected.ir.fxc.hlsl
index 0ba40c6..a5fd434 100644
--- a/test/tint/builtins/gen/var/frexp/77af93.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/frexp/77af93.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,49 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct frexp_result_vec4_f32 {
+  float4 fract;
+  int4 exp;
+};
+
+struct VertexOutput {
+  float4 pos;
+};
+
+struct vertex_main_outputs {
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+void frexp_77af93() {
+  float4 arg_0 = (1.0f).xxxx;
+  frexp_result_vec4_f32 res = frexp(arg_0);
+}
+
+void fragment_main() {
+  frexp_77af93();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  frexp_77af93();
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  frexp_77af93();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  vertex_main_outputs v_2 = {v_1.pos};
+  return v_2;
+}
+
+FXC validation failure:
+c:\src\dawn\Shader@0x000001F2623DF410(17,31-42): error X3013: 'frexp': no matching 1 parameter intrinsic function
+c:\src\dawn\Shader@0x000001F2623DF410(17,31-42): error X3013: Possible intrinsic functions are:
+c:\src\dawn\Shader@0x000001F2623DF410(17,31-42): error X3013:     frexp(float|half, out float|half exp)
+
diff --git a/test/tint/builtins/gen/var/frexp/979800.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/frexp/979800.wgsl.expected.ir.dxc.hlsl
index 0ba40c6..8e63994 100644
--- a/test/tint/builtins/gen/var/frexp/979800.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/frexp/979800.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,49 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct frexp_result_vec3_f32 {
+  float3 fract;
+  int3 exp;
+};
+
+struct VertexOutput {
+  float4 pos;
+};
+
+struct vertex_main_outputs {
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+void frexp_979800() {
+  float3 arg_0 = (1.0f).xxx;
+  frexp_result_vec3_f32 res = frexp(arg_0);
+}
+
+void fragment_main() {
+  frexp_979800();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  frexp_979800();
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  frexp_979800();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  vertex_main_outputs v_2 = {v_1.pos};
+  return v_2;
+}
+
+DXC validation failure:
+hlsl.hlsl:17:31: error: use of undeclared identifier 'frexp'
+  frexp_result_vec3_f32 res = frexp(arg_0);
+                              ^
+
diff --git a/test/tint/builtins/gen/var/frexp/979800.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/frexp/979800.wgsl.expected.ir.fxc.hlsl
index 0ba40c6..b31df25 100644
--- a/test/tint/builtins/gen/var/frexp/979800.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/frexp/979800.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,49 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct frexp_result_vec3_f32 {
+  float3 fract;
+  int3 exp;
+};
+
+struct VertexOutput {
+  float4 pos;
+};
+
+struct vertex_main_outputs {
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+void frexp_979800() {
+  float3 arg_0 = (1.0f).xxx;
+  frexp_result_vec3_f32 res = frexp(arg_0);
+}
+
+void fragment_main() {
+  frexp_979800();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  frexp_979800();
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  frexp_979800();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  vertex_main_outputs v_2 = {v_1.pos};
+  return v_2;
+}
+
+FXC validation failure:
+c:\src\dawn\Shader@0x00000261775EBBF0(17,31-42): error X3013: 'frexp': no matching 1 parameter intrinsic function
+c:\src\dawn\Shader@0x00000261775EBBF0(17,31-42): error X3013: Possible intrinsic functions are:
+c:\src\dawn\Shader@0x00000261775EBBF0(17,31-42): error X3013:     frexp(float|half, out float|half exp)
+
diff --git a/test/tint/builtins/gen/var/frexp/ae4a66.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/frexp/ae4a66.wgsl.expected.ir.dxc.hlsl
index 0ba40c6..3a04c68 100644
--- a/test/tint/builtins/gen/var/frexp/ae4a66.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/frexp/ae4a66.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,49 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct frexp_result_vec3_f16 {
+  vector<float16_t, 3> fract;
+  int3 exp;
+};
+
+struct VertexOutput {
+  float4 pos;
+};
+
+struct vertex_main_outputs {
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+void frexp_ae4a66() {
+  vector<float16_t, 3> arg_0 = (float16_t(1.0h)).xxx;
+  frexp_result_vec3_f16 res = frexp(arg_0);
+}
+
+void fragment_main() {
+  frexp_ae4a66();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  frexp_ae4a66();
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  frexp_ae4a66();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  vertex_main_outputs v_2 = {v_1.pos};
+  return v_2;
+}
+
+DXC validation failure:
+hlsl.hlsl:17:31: error: use of undeclared identifier 'frexp'
+  frexp_result_vec3_f16 res = frexp(arg_0);
+                              ^
+
diff --git a/test/tint/builtins/gen/var/frexp/ae4a66.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/frexp/ae4a66.wgsl.expected.ir.fxc.hlsl
index 0ba40c6..215d3c0 100644
--- a/test/tint/builtins/gen/var/frexp/ae4a66.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/frexp/ae4a66.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,47 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct frexp_result_vec3_f16 {
+  vector<float16_t, 3> fract;
+  int3 exp;
+};
+
+struct VertexOutput {
+  float4 pos;
+};
+
+struct vertex_main_outputs {
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+void frexp_ae4a66() {
+  vector<float16_t, 3> arg_0 = (float16_t(1.0h)).xxx;
+  frexp_result_vec3_f16 res = frexp(arg_0);
+}
+
+void fragment_main() {
+  frexp_ae4a66();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  frexp_ae4a66();
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  frexp_ae4a66();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  vertex_main_outputs v_2 = {v_1.pos};
+  return v_2;
+}
+
+FXC validation failure:
+c:\src\dawn\Shader@0x000001EE353B1090(2,10-18): error X3000: syntax error: unexpected token 'float16_t'
+
diff --git a/test/tint/builtins/gen/var/frexp/bee870.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/frexp/bee870.wgsl.expected.ir.dxc.hlsl
index 0ba40c6..98bf7ab 100644
--- a/test/tint/builtins/gen/var/frexp/bee870.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/frexp/bee870.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,41 @@
-SKIP: FAILED
+struct frexp_result_f32 {
+  float fract;
+  int exp;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct VertexOutput {
+  float4 pos;
+};
+
+struct vertex_main_outputs {
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+void frexp_bee870() {
+  frexp_result_f32 res = {0.5f, 1};
+}
+
+void fragment_main() {
+  frexp_bee870();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  frexp_bee870();
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  frexp_bee870();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  vertex_main_outputs v_2 = {v_1.pos};
+  return v_2;
+}
+
diff --git a/test/tint/builtins/gen/var/frexp/bee870.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/frexp/bee870.wgsl.expected.ir.fxc.hlsl
index 0ba40c6..98bf7ab 100644
--- a/test/tint/builtins/gen/var/frexp/bee870.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/frexp/bee870.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,41 @@
-SKIP: FAILED
+struct frexp_result_f32 {
+  float fract;
+  int exp;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct VertexOutput {
+  float4 pos;
+};
+
+struct vertex_main_outputs {
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+void frexp_bee870() {
+  frexp_result_f32 res = {0.5f, 1};
+}
+
+void fragment_main() {
+  frexp_bee870();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  frexp_bee870();
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  frexp_bee870();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  vertex_main_outputs v_2 = {v_1.pos};
+  return v_2;
+}
+
diff --git a/test/tint/builtins/gen/var/frexp/bf45ae.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/frexp/bf45ae.wgsl.expected.ir.dxc.hlsl
index 0ba40c6..9ffeb43 100644
--- a/test/tint/builtins/gen/var/frexp/bf45ae.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/frexp/bf45ae.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,41 @@
-SKIP: FAILED
+struct frexp_result_vec3_f32 {
+  float3 fract;
+  int3 exp;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct VertexOutput {
+  float4 pos;
+};
+
+struct vertex_main_outputs {
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+void frexp_bf45ae() {
+  frexp_result_vec3_f32 res = {(0.5f).xxx, (1).xxx};
+}
+
+void fragment_main() {
+  frexp_bf45ae();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  frexp_bf45ae();
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  frexp_bf45ae();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  vertex_main_outputs v_2 = {v_1.pos};
+  return v_2;
+}
+
diff --git a/test/tint/builtins/gen/var/frexp/bf45ae.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/frexp/bf45ae.wgsl.expected.ir.fxc.hlsl
index 0ba40c6..9ffeb43 100644
--- a/test/tint/builtins/gen/var/frexp/bf45ae.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/frexp/bf45ae.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,41 @@
-SKIP: FAILED
+struct frexp_result_vec3_f32 {
+  float3 fract;
+  int3 exp;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct VertexOutput {
+  float4 pos;
+};
+
+struct vertex_main_outputs {
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+void frexp_bf45ae() {
+  frexp_result_vec3_f32 res = {(0.5f).xxx, (1).xxx};
+}
+
+void fragment_main() {
+  frexp_bf45ae();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  frexp_bf45ae();
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  frexp_bf45ae();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  vertex_main_outputs v_2 = {v_1.pos};
+  return v_2;
+}
+
diff --git a/test/tint/builtins/gen/var/frexp/eb2421.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/frexp/eb2421.wgsl.expected.ir.dxc.hlsl
index 0ba40c6..ded9530 100644
--- a/test/tint/builtins/gen/var/frexp/eb2421.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/frexp/eb2421.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,49 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct frexp_result_vec2_f32 {
+  float2 fract;
+  int2 exp;
+};
+
+struct VertexOutput {
+  float4 pos;
+};
+
+struct vertex_main_outputs {
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+void frexp_eb2421() {
+  float2 arg_0 = (1.0f).xx;
+  frexp_result_vec2_f32 res = frexp(arg_0);
+}
+
+void fragment_main() {
+  frexp_eb2421();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  frexp_eb2421();
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  frexp_eb2421();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  vertex_main_outputs v_2 = {v_1.pos};
+  return v_2;
+}
+
+DXC validation failure:
+hlsl.hlsl:17:31: error: use of undeclared identifier 'frexp'
+  frexp_result_vec2_f32 res = frexp(arg_0);
+                              ^
+
diff --git a/test/tint/builtins/gen/var/frexp/eb2421.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/frexp/eb2421.wgsl.expected.ir.fxc.hlsl
index 0ba40c6..672547c 100644
--- a/test/tint/builtins/gen/var/frexp/eb2421.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/frexp/eb2421.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,49 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct frexp_result_vec2_f32 {
+  float2 fract;
+  int2 exp;
+};
+
+struct VertexOutput {
+  float4 pos;
+};
+
+struct vertex_main_outputs {
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+void frexp_eb2421() {
+  float2 arg_0 = (1.0f).xx;
+  frexp_result_vec2_f32 res = frexp(arg_0);
+}
+
+void fragment_main() {
+  frexp_eb2421();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  frexp_eb2421();
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  frexp_eb2421();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  vertex_main_outputs v_2 = {v_1.pos};
+  return v_2;
+}
+
+FXC validation failure:
+c:\src\dawn\Shader@0x000001B352D63640(17,31-42): error X3013: 'frexp': no matching 1 parameter intrinsic function
+c:\src\dawn\Shader@0x000001B352D63640(17,31-42): error X3013: Possible intrinsic functions are:
+c:\src\dawn\Shader@0x000001B352D63640(17,31-42): error X3013:     frexp(float|half, out float|half exp)
+
diff --git a/test/tint/builtins/gen/var/fwidth/5d1b39.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/fwidth/5d1b39.wgsl.expected.ir.dxc.hlsl
index ea59dfc..a8111b0 100644
--- a/test/tint/builtins/gen/var/fwidth/5d1b39.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/fwidth/5d1b39.wgsl.expected.ir.dxc.hlsl
@@ -1,5 +1,5 @@
-SKIP: FAILED
 
+RWByteAddressBuffer prevent_dce : register(u0);
 float3 fwidth_5d1b39() {
   float3 arg_0 = (1.0f).xxx;
   float3 res = fwidth(arg_0);
@@ -7,11 +7,6 @@
 }
 
 void fragment_main() {
-  prevent_dce = fwidth_5d1b39();
+  prevent_dce.Store3(0u, asuint(fwidth_5d1b39()));
 }
 
-DXC validation failure:
-hlsl.hlsl:8:3: error: use of undeclared identifier 'prevent_dce'
-  prevent_dce = fwidth_5d1b39();
-  ^
-
diff --git a/test/tint/builtins/gen/var/fwidth/5d1b39.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/fwidth/5d1b39.wgsl.expected.ir.fxc.hlsl
index fb3ea8e..a8111b0 100644
--- a/test/tint/builtins/gen/var/fwidth/5d1b39.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/fwidth/5d1b39.wgsl.expected.ir.fxc.hlsl
@@ -1,5 +1,5 @@
-SKIP: FAILED
 
+RWByteAddressBuffer prevent_dce : register(u0);
 float3 fwidth_5d1b39() {
   float3 arg_0 = (1.0f).xxx;
   float3 res = fwidth(arg_0);
@@ -7,6 +7,6 @@
 }
 
 void fragment_main() {
-  prevent_dce = fwidth_5d1b39();
+  prevent_dce.Store3(0u, asuint(fwidth_5d1b39()));
 }
 
diff --git a/test/tint/builtins/gen/var/fwidth/b83ebb.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/fwidth/b83ebb.wgsl.expected.ir.dxc.hlsl
index eed10cd..19d6144 100644
--- a/test/tint/builtins/gen/var/fwidth/b83ebb.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/fwidth/b83ebb.wgsl.expected.ir.dxc.hlsl
@@ -1,5 +1,5 @@
-SKIP: FAILED
 
+RWByteAddressBuffer prevent_dce : register(u0);
 float2 fwidth_b83ebb() {
   float2 arg_0 = (1.0f).xx;
   float2 res = fwidth(arg_0);
@@ -7,11 +7,6 @@
 }
 
 void fragment_main() {
-  prevent_dce = fwidth_b83ebb();
+  prevent_dce.Store2(0u, asuint(fwidth_b83ebb()));
 }
 
-DXC validation failure:
-hlsl.hlsl:8:3: error: use of undeclared identifier 'prevent_dce'
-  prevent_dce = fwidth_b83ebb();
-  ^
-
diff --git a/test/tint/builtins/gen/var/fwidth/b83ebb.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/fwidth/b83ebb.wgsl.expected.ir.fxc.hlsl
index 8cb2e1f..19d6144 100644
--- a/test/tint/builtins/gen/var/fwidth/b83ebb.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/fwidth/b83ebb.wgsl.expected.ir.fxc.hlsl
@@ -1,5 +1,5 @@
-SKIP: FAILED
 
+RWByteAddressBuffer prevent_dce : register(u0);
 float2 fwidth_b83ebb() {
   float2 arg_0 = (1.0f).xx;
   float2 res = fwidth(arg_0);
@@ -7,6 +7,6 @@
 }
 
 void fragment_main() {
-  prevent_dce = fwidth_b83ebb();
+  prevent_dce.Store2(0u, asuint(fwidth_b83ebb()));
 }
 
diff --git a/test/tint/builtins/gen/var/fwidth/d2ab9a.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/fwidth/d2ab9a.wgsl.expected.ir.dxc.hlsl
index 7144c9f..3fe9176 100644
--- a/test/tint/builtins/gen/var/fwidth/d2ab9a.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/fwidth/d2ab9a.wgsl.expected.ir.dxc.hlsl
@@ -1,5 +1,5 @@
-SKIP: FAILED
 
+RWByteAddressBuffer prevent_dce : register(u0);
 float4 fwidth_d2ab9a() {
   float4 arg_0 = (1.0f).xxxx;
   float4 res = fwidth(arg_0);
@@ -7,11 +7,6 @@
 }
 
 void fragment_main() {
-  prevent_dce = fwidth_d2ab9a();
+  prevent_dce.Store4(0u, asuint(fwidth_d2ab9a()));
 }
 
-DXC validation failure:
-hlsl.hlsl:8:3: error: use of undeclared identifier 'prevent_dce'
-  prevent_dce = fwidth_d2ab9a();
-  ^
-
diff --git a/test/tint/builtins/gen/var/fwidth/d2ab9a.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/fwidth/d2ab9a.wgsl.expected.ir.fxc.hlsl
index 1144b2e..3fe9176 100644
--- a/test/tint/builtins/gen/var/fwidth/d2ab9a.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/fwidth/d2ab9a.wgsl.expected.ir.fxc.hlsl
@@ -1,5 +1,5 @@
-SKIP: FAILED
 
+RWByteAddressBuffer prevent_dce : register(u0);
 float4 fwidth_d2ab9a() {
   float4 arg_0 = (1.0f).xxxx;
   float4 res = fwidth(arg_0);
@@ -7,6 +7,6 @@
 }
 
 void fragment_main() {
-  prevent_dce = fwidth_d2ab9a();
+  prevent_dce.Store4(0u, asuint(fwidth_d2ab9a()));
 }
 
diff --git a/test/tint/builtins/gen/var/fwidth/df38ef.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/fwidth/df38ef.wgsl.expected.ir.dxc.hlsl
index 3a25ed8..6521777 100644
--- a/test/tint/builtins/gen/var/fwidth/df38ef.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/fwidth/df38ef.wgsl.expected.ir.dxc.hlsl
@@ -1,5 +1,5 @@
-SKIP: FAILED
 
+RWByteAddressBuffer prevent_dce : register(u0);
 float fwidth_df38ef() {
   float arg_0 = 1.0f;
   float res = fwidth(arg_0);
@@ -7,11 +7,6 @@
 }
 
 void fragment_main() {
-  prevent_dce = fwidth_df38ef();
+  prevent_dce.Store(0u, asuint(fwidth_df38ef()));
 }
 
-DXC validation failure:
-hlsl.hlsl:8:3: error: use of undeclared identifier 'prevent_dce'
-  prevent_dce = fwidth_df38ef();
-  ^
-
diff --git a/test/tint/builtins/gen/var/fwidth/df38ef.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/fwidth/df38ef.wgsl.expected.ir.fxc.hlsl
index 3f226bb..6521777 100644
--- a/test/tint/builtins/gen/var/fwidth/df38ef.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/fwidth/df38ef.wgsl.expected.ir.fxc.hlsl
@@ -1,5 +1,5 @@
-SKIP: FAILED
 
+RWByteAddressBuffer prevent_dce : register(u0);
 float fwidth_df38ef() {
   float arg_0 = 1.0f;
   float res = fwidth(arg_0);
@@ -7,6 +7,6 @@
 }
 
 void fragment_main() {
-  prevent_dce = fwidth_df38ef();
+  prevent_dce.Store(0u, asuint(fwidth_df38ef()));
 }
 
diff --git a/test/tint/builtins/gen/var/fwidthCoarse/159c8a.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/fwidthCoarse/159c8a.wgsl.expected.ir.dxc.hlsl
index b7470d3..1f65429 100644
--- a/test/tint/builtins/gen/var/fwidthCoarse/159c8a.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/fwidthCoarse/159c8a.wgsl.expected.ir.dxc.hlsl
@@ -1,5 +1,5 @@
-SKIP: FAILED
 
+RWByteAddressBuffer prevent_dce : register(u0);
 float fwidthCoarse_159c8a() {
   float arg_0 = 1.0f;
   float res = fwidth(arg_0);
@@ -7,11 +7,6 @@
 }
 
 void fragment_main() {
-  prevent_dce = fwidthCoarse_159c8a();
+  prevent_dce.Store(0u, asuint(fwidthCoarse_159c8a()));
 }
 
-DXC validation failure:
-hlsl.hlsl:8:3: error: use of undeclared identifier 'prevent_dce'
-  prevent_dce = fwidthCoarse_159c8a();
-  ^
-
diff --git a/test/tint/builtins/gen/var/fwidthCoarse/159c8a.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/fwidthCoarse/159c8a.wgsl.expected.ir.fxc.hlsl
index c60f176..1f65429 100644
--- a/test/tint/builtins/gen/var/fwidthCoarse/159c8a.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/fwidthCoarse/159c8a.wgsl.expected.ir.fxc.hlsl
@@ -1,5 +1,5 @@
-SKIP: FAILED
 
+RWByteAddressBuffer prevent_dce : register(u0);
 float fwidthCoarse_159c8a() {
   float arg_0 = 1.0f;
   float res = fwidth(arg_0);
@@ -7,6 +7,6 @@
 }
 
 void fragment_main() {
-  prevent_dce = fwidthCoarse_159c8a();
+  prevent_dce.Store(0u, asuint(fwidthCoarse_159c8a()));
 }
 
diff --git a/test/tint/builtins/gen/var/fwidthCoarse/1e59d9.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/fwidthCoarse/1e59d9.wgsl.expected.ir.dxc.hlsl
index 03a5d9d..4b12392 100644
--- a/test/tint/builtins/gen/var/fwidthCoarse/1e59d9.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/fwidthCoarse/1e59d9.wgsl.expected.ir.dxc.hlsl
@@ -1,5 +1,5 @@
-SKIP: FAILED
 
+RWByteAddressBuffer prevent_dce : register(u0);
 float3 fwidthCoarse_1e59d9() {
   float3 arg_0 = (1.0f).xxx;
   float3 res = fwidth(arg_0);
@@ -7,11 +7,6 @@
 }
 
 void fragment_main() {
-  prevent_dce = fwidthCoarse_1e59d9();
+  prevent_dce.Store3(0u, asuint(fwidthCoarse_1e59d9()));
 }
 
-DXC validation failure:
-hlsl.hlsl:8:3: error: use of undeclared identifier 'prevent_dce'
-  prevent_dce = fwidthCoarse_1e59d9();
-  ^
-
diff --git a/test/tint/builtins/gen/var/fwidthCoarse/1e59d9.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/fwidthCoarse/1e59d9.wgsl.expected.ir.fxc.hlsl
index fec3e97..4b12392 100644
--- a/test/tint/builtins/gen/var/fwidthCoarse/1e59d9.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/fwidthCoarse/1e59d9.wgsl.expected.ir.fxc.hlsl
@@ -1,5 +1,5 @@
-SKIP: FAILED
 
+RWByteAddressBuffer prevent_dce : register(u0);
 float3 fwidthCoarse_1e59d9() {
   float3 arg_0 = (1.0f).xxx;
   float3 res = fwidth(arg_0);
@@ -7,6 +7,6 @@
 }
 
 void fragment_main() {
-  prevent_dce = fwidthCoarse_1e59d9();
+  prevent_dce.Store3(0u, asuint(fwidthCoarse_1e59d9()));
 }
 
diff --git a/test/tint/builtins/gen/var/fwidthCoarse/4e4fc4.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/fwidthCoarse/4e4fc4.wgsl.expected.ir.dxc.hlsl
index d2d8f2a..720fb36 100644
--- a/test/tint/builtins/gen/var/fwidthCoarse/4e4fc4.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/fwidthCoarse/4e4fc4.wgsl.expected.ir.dxc.hlsl
@@ -1,5 +1,5 @@
-SKIP: FAILED
 
+RWByteAddressBuffer prevent_dce : register(u0);
 float4 fwidthCoarse_4e4fc4() {
   float4 arg_0 = (1.0f).xxxx;
   float4 res = fwidth(arg_0);
@@ -7,11 +7,6 @@
 }
 
 void fragment_main() {
-  prevent_dce = fwidthCoarse_4e4fc4();
+  prevent_dce.Store4(0u, asuint(fwidthCoarse_4e4fc4()));
 }
 
-DXC validation failure:
-hlsl.hlsl:8:3: error: use of undeclared identifier 'prevent_dce'
-  prevent_dce = fwidthCoarse_4e4fc4();
-  ^
-
diff --git a/test/tint/builtins/gen/var/fwidthCoarse/4e4fc4.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/fwidthCoarse/4e4fc4.wgsl.expected.ir.fxc.hlsl
index ca0a3fa..720fb36 100644
--- a/test/tint/builtins/gen/var/fwidthCoarse/4e4fc4.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/fwidthCoarse/4e4fc4.wgsl.expected.ir.fxc.hlsl
@@ -1,5 +1,5 @@
-SKIP: FAILED
 
+RWByteAddressBuffer prevent_dce : register(u0);
 float4 fwidthCoarse_4e4fc4() {
   float4 arg_0 = (1.0f).xxxx;
   float4 res = fwidth(arg_0);
@@ -7,6 +7,6 @@
 }
 
 void fragment_main() {
-  prevent_dce = fwidthCoarse_4e4fc4();
+  prevent_dce.Store4(0u, asuint(fwidthCoarse_4e4fc4()));
 }
 
diff --git a/test/tint/builtins/gen/var/fwidthCoarse/e653f7.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/fwidthCoarse/e653f7.wgsl.expected.ir.dxc.hlsl
index 6f9fdd9..1945e3c 100644
--- a/test/tint/builtins/gen/var/fwidthCoarse/e653f7.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/fwidthCoarse/e653f7.wgsl.expected.ir.dxc.hlsl
@@ -1,5 +1,5 @@
-SKIP: FAILED
 
+RWByteAddressBuffer prevent_dce : register(u0);
 float2 fwidthCoarse_e653f7() {
   float2 arg_0 = (1.0f).xx;
   float2 res = fwidth(arg_0);
@@ -7,11 +7,6 @@
 }
 
 void fragment_main() {
-  prevent_dce = fwidthCoarse_e653f7();
+  prevent_dce.Store2(0u, asuint(fwidthCoarse_e653f7()));
 }
 
-DXC validation failure:
-hlsl.hlsl:8:3: error: use of undeclared identifier 'prevent_dce'
-  prevent_dce = fwidthCoarse_e653f7();
-  ^
-
diff --git a/test/tint/builtins/gen/var/fwidthCoarse/e653f7.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/fwidthCoarse/e653f7.wgsl.expected.ir.fxc.hlsl
index 2020f50..1945e3c 100644
--- a/test/tint/builtins/gen/var/fwidthCoarse/e653f7.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/fwidthCoarse/e653f7.wgsl.expected.ir.fxc.hlsl
@@ -1,5 +1,5 @@
-SKIP: FAILED
 
+RWByteAddressBuffer prevent_dce : register(u0);
 float2 fwidthCoarse_e653f7() {
   float2 arg_0 = (1.0f).xx;
   float2 res = fwidth(arg_0);
@@ -7,6 +7,6 @@
 }
 
 void fragment_main() {
-  prevent_dce = fwidthCoarse_e653f7();
+  prevent_dce.Store2(0u, asuint(fwidthCoarse_e653f7()));
 }
 
diff --git a/test/tint/builtins/gen/var/fwidthFine/523fdc.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/fwidthFine/523fdc.wgsl.expected.ir.dxc.hlsl
index 4e85455..0056092 100644
--- a/test/tint/builtins/gen/var/fwidthFine/523fdc.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/fwidthFine/523fdc.wgsl.expected.ir.dxc.hlsl
@@ -1,5 +1,5 @@
-SKIP: FAILED
 
+RWByteAddressBuffer prevent_dce : register(u0);
 float3 fwidthFine_523fdc() {
   float3 arg_0 = (1.0f).xxx;
   float3 res = fwidth(arg_0);
@@ -7,11 +7,6 @@
 }
 
 void fragment_main() {
-  prevent_dce = fwidthFine_523fdc();
+  prevent_dce.Store3(0u, asuint(fwidthFine_523fdc()));
 }
 
-DXC validation failure:
-hlsl.hlsl:8:3: error: use of undeclared identifier 'prevent_dce'
-  prevent_dce = fwidthFine_523fdc();
-  ^
-
diff --git a/test/tint/builtins/gen/var/fwidthFine/523fdc.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/fwidthFine/523fdc.wgsl.expected.ir.fxc.hlsl
index b5efadc..0056092 100644
--- a/test/tint/builtins/gen/var/fwidthFine/523fdc.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/fwidthFine/523fdc.wgsl.expected.ir.fxc.hlsl
@@ -1,5 +1,5 @@
-SKIP: FAILED
 
+RWByteAddressBuffer prevent_dce : register(u0);
 float3 fwidthFine_523fdc() {
   float3 arg_0 = (1.0f).xxx;
   float3 res = fwidth(arg_0);
@@ -7,6 +7,6 @@
 }
 
 void fragment_main() {
-  prevent_dce = fwidthFine_523fdc();
+  prevent_dce.Store3(0u, asuint(fwidthFine_523fdc()));
 }
 
diff --git a/test/tint/builtins/gen/var/fwidthFine/68f4ef.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/fwidthFine/68f4ef.wgsl.expected.ir.dxc.hlsl
index 8a19fe7..bdb7b53 100644
--- a/test/tint/builtins/gen/var/fwidthFine/68f4ef.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/fwidthFine/68f4ef.wgsl.expected.ir.dxc.hlsl
@@ -1,5 +1,5 @@
-SKIP: FAILED
 
+RWByteAddressBuffer prevent_dce : register(u0);
 float4 fwidthFine_68f4ef() {
   float4 arg_0 = (1.0f).xxxx;
   float4 res = fwidth(arg_0);
@@ -7,11 +7,6 @@
 }
 
 void fragment_main() {
-  prevent_dce = fwidthFine_68f4ef();
+  prevent_dce.Store4(0u, asuint(fwidthFine_68f4ef()));
 }
 
-DXC validation failure:
-hlsl.hlsl:8:3: error: use of undeclared identifier 'prevent_dce'
-  prevent_dce = fwidthFine_68f4ef();
-  ^
-
diff --git a/test/tint/builtins/gen/var/fwidthFine/68f4ef.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/fwidthFine/68f4ef.wgsl.expected.ir.fxc.hlsl
index a2c4c54..bdb7b53 100644
--- a/test/tint/builtins/gen/var/fwidthFine/68f4ef.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/fwidthFine/68f4ef.wgsl.expected.ir.fxc.hlsl
@@ -1,5 +1,5 @@
-SKIP: FAILED
 
+RWByteAddressBuffer prevent_dce : register(u0);
 float4 fwidthFine_68f4ef() {
   float4 arg_0 = (1.0f).xxxx;
   float4 res = fwidth(arg_0);
@@ -7,6 +7,6 @@
 }
 
 void fragment_main() {
-  prevent_dce = fwidthFine_68f4ef();
+  prevent_dce.Store4(0u, asuint(fwidthFine_68f4ef()));
 }
 
diff --git a/test/tint/builtins/gen/var/fwidthFine/f1742d.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/fwidthFine/f1742d.wgsl.expected.ir.dxc.hlsl
index 3b53258..f040953 100644
--- a/test/tint/builtins/gen/var/fwidthFine/f1742d.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/fwidthFine/f1742d.wgsl.expected.ir.dxc.hlsl
@@ -1,5 +1,5 @@
-SKIP: FAILED
 
+RWByteAddressBuffer prevent_dce : register(u0);
 float fwidthFine_f1742d() {
   float arg_0 = 1.0f;
   float res = fwidth(arg_0);
@@ -7,11 +7,6 @@
 }
 
 void fragment_main() {
-  prevent_dce = fwidthFine_f1742d();
+  prevent_dce.Store(0u, asuint(fwidthFine_f1742d()));
 }
 
-DXC validation failure:
-hlsl.hlsl:8:3: error: use of undeclared identifier 'prevent_dce'
-  prevent_dce = fwidthFine_f1742d();
-  ^
-
diff --git a/test/tint/builtins/gen/var/fwidthFine/f1742d.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/fwidthFine/f1742d.wgsl.expected.ir.fxc.hlsl
index de134ca..f040953 100644
--- a/test/tint/builtins/gen/var/fwidthFine/f1742d.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/fwidthFine/f1742d.wgsl.expected.ir.fxc.hlsl
@@ -1,5 +1,5 @@
-SKIP: FAILED
 
+RWByteAddressBuffer prevent_dce : register(u0);
 float fwidthFine_f1742d() {
   float arg_0 = 1.0f;
   float res = fwidth(arg_0);
@@ -7,6 +7,6 @@
 }
 
 void fragment_main() {
-  prevent_dce = fwidthFine_f1742d();
+  prevent_dce.Store(0u, asuint(fwidthFine_f1742d()));
 }
 
diff --git a/test/tint/builtins/gen/var/fwidthFine/ff6aa0.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/fwidthFine/ff6aa0.wgsl.expected.ir.dxc.hlsl
index 5cc54ff..f22832c 100644
--- a/test/tint/builtins/gen/var/fwidthFine/ff6aa0.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/fwidthFine/ff6aa0.wgsl.expected.ir.dxc.hlsl
@@ -1,5 +1,5 @@
-SKIP: FAILED
 
+RWByteAddressBuffer prevent_dce : register(u0);
 float2 fwidthFine_ff6aa0() {
   float2 arg_0 = (1.0f).xx;
   float2 res = fwidth(arg_0);
@@ -7,11 +7,6 @@
 }
 
 void fragment_main() {
-  prevent_dce = fwidthFine_ff6aa0();
+  prevent_dce.Store2(0u, asuint(fwidthFine_ff6aa0()));
 }
 
-DXC validation failure:
-hlsl.hlsl:8:3: error: use of undeclared identifier 'prevent_dce'
-  prevent_dce = fwidthFine_ff6aa0();
-  ^
-
diff --git a/test/tint/builtins/gen/var/fwidthFine/ff6aa0.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/fwidthFine/ff6aa0.wgsl.expected.ir.fxc.hlsl
index c879622..f22832c 100644
--- a/test/tint/builtins/gen/var/fwidthFine/ff6aa0.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/fwidthFine/ff6aa0.wgsl.expected.ir.fxc.hlsl
@@ -1,5 +1,5 @@
-SKIP: FAILED
 
+RWByteAddressBuffer prevent_dce : register(u0);
 float2 fwidthFine_ff6aa0() {
   float2 arg_0 = (1.0f).xx;
   float2 res = fwidth(arg_0);
@@ -7,6 +7,6 @@
 }
 
 void fragment_main() {
-  prevent_dce = fwidthFine_ff6aa0();
+  prevent_dce.Store2(0u, asuint(fwidthFine_ff6aa0()));
 }
 
diff --git a/test/tint/builtins/gen/var/inputAttachmentLoad/315bf5.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/inputAttachmentLoad/315bf5.wgsl.expected.ir.dxc.hlsl
index 48aa57a..502b482 100644
--- a/test/tint/builtins/gen/var/inputAttachmentLoad/315bf5.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/inputAttachmentLoad/315bf5.wgsl.expected.ir.dxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: inputAttachmentLoad
+..\..\src\tint\lang\hlsl\writer\printer\printer.cc:1010 internal compiler error: TINT_UNREACHABLE unhandled: inputAttachmentLoad
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/var/inputAttachmentLoad/315bf5.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/inputAttachmentLoad/315bf5.wgsl.expected.ir.fxc.hlsl
index 48aa57a..502b482 100644
--- a/test/tint/builtins/gen/var/inputAttachmentLoad/315bf5.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/inputAttachmentLoad/315bf5.wgsl.expected.ir.fxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: inputAttachmentLoad
+..\..\src\tint\lang\hlsl\writer\printer\printer.cc:1010 internal compiler error: TINT_UNREACHABLE unhandled: inputAttachmentLoad
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/var/inputAttachmentLoad/c38b2f.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/inputAttachmentLoad/c38b2f.wgsl.expected.ir.dxc.hlsl
index 48aa57a..502b482 100644
--- a/test/tint/builtins/gen/var/inputAttachmentLoad/c38b2f.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/inputAttachmentLoad/c38b2f.wgsl.expected.ir.dxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: inputAttachmentLoad
+..\..\src\tint\lang\hlsl\writer\printer\printer.cc:1010 internal compiler error: TINT_UNREACHABLE unhandled: inputAttachmentLoad
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/var/inputAttachmentLoad/c38b2f.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/inputAttachmentLoad/c38b2f.wgsl.expected.ir.fxc.hlsl
index 48aa57a..502b482 100644
--- a/test/tint/builtins/gen/var/inputAttachmentLoad/c38b2f.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/inputAttachmentLoad/c38b2f.wgsl.expected.ir.fxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: inputAttachmentLoad
+..\..\src\tint\lang\hlsl\writer\printer\printer.cc:1010 internal compiler error: TINT_UNREACHABLE unhandled: inputAttachmentLoad
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/var/inputAttachmentLoad/fc4d97.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/inputAttachmentLoad/fc4d97.wgsl.expected.ir.dxc.hlsl
index 48aa57a..502b482 100644
--- a/test/tint/builtins/gen/var/inputAttachmentLoad/fc4d97.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/inputAttachmentLoad/fc4d97.wgsl.expected.ir.dxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: inputAttachmentLoad
+..\..\src\tint\lang\hlsl\writer\printer\printer.cc:1010 internal compiler error: TINT_UNREACHABLE unhandled: inputAttachmentLoad
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/var/inputAttachmentLoad/fc4d97.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/inputAttachmentLoad/fc4d97.wgsl.expected.ir.fxc.hlsl
index 48aa57a..502b482 100644
--- a/test/tint/builtins/gen/var/inputAttachmentLoad/fc4d97.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/inputAttachmentLoad/fc4d97.wgsl.expected.ir.fxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: inputAttachmentLoad
+..\..\src\tint\lang\hlsl\writer\printer\printer.cc:1010 internal compiler error: TINT_UNREACHABLE unhandled: inputAttachmentLoad
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/var/insertBits/3c7ba5.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/insertBits/3c7ba5.wgsl.expected.ir.dxc.hlsl
index 34730a7..5f4433c 100644
--- a/test/tint/builtins/gen/var/insertBits/3c7ba5.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/insertBits/3c7ba5.wgsl.expected.ir.dxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: insertBits
+..\..\src\tint\lang\core\ir\transform\builtin_polyfill.cc:555 internal compiler error: TINT_UNIMPLEMENTED insertBits polyfill level
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/var/insertBits/3c7ba5.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/insertBits/3c7ba5.wgsl.expected.ir.fxc.hlsl
index 34730a7..5f4433c 100644
--- a/test/tint/builtins/gen/var/insertBits/3c7ba5.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/insertBits/3c7ba5.wgsl.expected.ir.fxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: insertBits
+..\..\src\tint\lang\core\ir\transform\builtin_polyfill.cc:555 internal compiler error: TINT_UNIMPLEMENTED insertBits polyfill level
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/var/insertBits/428b0b.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/insertBits/428b0b.wgsl.expected.ir.dxc.hlsl
index 34730a7..5f4433c 100644
--- a/test/tint/builtins/gen/var/insertBits/428b0b.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/insertBits/428b0b.wgsl.expected.ir.dxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: insertBits
+..\..\src\tint\lang\core\ir\transform\builtin_polyfill.cc:555 internal compiler error: TINT_UNIMPLEMENTED insertBits polyfill level
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/var/insertBits/428b0b.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/insertBits/428b0b.wgsl.expected.ir.fxc.hlsl
index 34730a7..5f4433c 100644
--- a/test/tint/builtins/gen/var/insertBits/428b0b.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/insertBits/428b0b.wgsl.expected.ir.fxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: insertBits
+..\..\src\tint\lang\core\ir\transform\builtin_polyfill.cc:555 internal compiler error: TINT_UNIMPLEMENTED insertBits polyfill level
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/var/insertBits/51ede1.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/insertBits/51ede1.wgsl.expected.ir.dxc.hlsl
index 34730a7..5f4433c 100644
--- a/test/tint/builtins/gen/var/insertBits/51ede1.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/insertBits/51ede1.wgsl.expected.ir.dxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: insertBits
+..\..\src\tint\lang\core\ir\transform\builtin_polyfill.cc:555 internal compiler error: TINT_UNIMPLEMENTED insertBits polyfill level
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/var/insertBits/51ede1.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/insertBits/51ede1.wgsl.expected.ir.fxc.hlsl
index 34730a7..5f4433c 100644
--- a/test/tint/builtins/gen/var/insertBits/51ede1.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/insertBits/51ede1.wgsl.expected.ir.fxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: insertBits
+..\..\src\tint\lang\core\ir\transform\builtin_polyfill.cc:555 internal compiler error: TINT_UNIMPLEMENTED insertBits polyfill level
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/var/insertBits/65468b.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/insertBits/65468b.wgsl.expected.ir.dxc.hlsl
index 34730a7..5f4433c 100644
--- a/test/tint/builtins/gen/var/insertBits/65468b.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/insertBits/65468b.wgsl.expected.ir.dxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: insertBits
+..\..\src\tint\lang\core\ir\transform\builtin_polyfill.cc:555 internal compiler error: TINT_UNIMPLEMENTED insertBits polyfill level
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/var/insertBits/65468b.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/insertBits/65468b.wgsl.expected.ir.fxc.hlsl
index 34730a7..5f4433c 100644
--- a/test/tint/builtins/gen/var/insertBits/65468b.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/insertBits/65468b.wgsl.expected.ir.fxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: insertBits
+..\..\src\tint\lang\core\ir\transform\builtin_polyfill.cc:555 internal compiler error: TINT_UNIMPLEMENTED insertBits polyfill level
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/var/insertBits/87826b.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/insertBits/87826b.wgsl.expected.ir.dxc.hlsl
index 34730a7..5f4433c 100644
--- a/test/tint/builtins/gen/var/insertBits/87826b.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/insertBits/87826b.wgsl.expected.ir.dxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: insertBits
+..\..\src\tint\lang\core\ir\transform\builtin_polyfill.cc:555 internal compiler error: TINT_UNIMPLEMENTED insertBits polyfill level
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/var/insertBits/87826b.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/insertBits/87826b.wgsl.expected.ir.fxc.hlsl
index 34730a7..5f4433c 100644
--- a/test/tint/builtins/gen/var/insertBits/87826b.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/insertBits/87826b.wgsl.expected.ir.fxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: insertBits
+..\..\src\tint\lang\core\ir\transform\builtin_polyfill.cc:555 internal compiler error: TINT_UNIMPLEMENTED insertBits polyfill level
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/var/insertBits/d86978.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/insertBits/d86978.wgsl.expected.ir.dxc.hlsl
index 34730a7..5f4433c 100644
--- a/test/tint/builtins/gen/var/insertBits/d86978.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/insertBits/d86978.wgsl.expected.ir.dxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: insertBits
+..\..\src\tint\lang\core\ir\transform\builtin_polyfill.cc:555 internal compiler error: TINT_UNIMPLEMENTED insertBits polyfill level
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/var/insertBits/d86978.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/insertBits/d86978.wgsl.expected.ir.fxc.hlsl
index 34730a7..5f4433c 100644
--- a/test/tint/builtins/gen/var/insertBits/d86978.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/insertBits/d86978.wgsl.expected.ir.fxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: insertBits
+..\..\src\tint\lang\core\ir\transform\builtin_polyfill.cc:555 internal compiler error: TINT_UNIMPLEMENTED insertBits polyfill level
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/var/insertBits/e3e3a2.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/insertBits/e3e3a2.wgsl.expected.ir.dxc.hlsl
index 34730a7..5f4433c 100644
--- a/test/tint/builtins/gen/var/insertBits/e3e3a2.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/insertBits/e3e3a2.wgsl.expected.ir.dxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: insertBits
+..\..\src\tint\lang\core\ir\transform\builtin_polyfill.cc:555 internal compiler error: TINT_UNIMPLEMENTED insertBits polyfill level
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/var/insertBits/e3e3a2.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/insertBits/e3e3a2.wgsl.expected.ir.fxc.hlsl
index 34730a7..5f4433c 100644
--- a/test/tint/builtins/gen/var/insertBits/e3e3a2.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/insertBits/e3e3a2.wgsl.expected.ir.fxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: insertBits
+..\..\src\tint\lang\core\ir\transform\builtin_polyfill.cc:555 internal compiler error: TINT_UNIMPLEMENTED insertBits polyfill level
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/var/insertBits/fe6ba6.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/insertBits/fe6ba6.wgsl.expected.ir.dxc.hlsl
index 34730a7..5f4433c 100644
--- a/test/tint/builtins/gen/var/insertBits/fe6ba6.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/insertBits/fe6ba6.wgsl.expected.ir.dxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: insertBits
+..\..\src\tint\lang\core\ir\transform\builtin_polyfill.cc:555 internal compiler error: TINT_UNIMPLEMENTED insertBits polyfill level
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/var/insertBits/fe6ba6.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/insertBits/fe6ba6.wgsl.expected.ir.fxc.hlsl
index 34730a7..5f4433c 100644
--- a/test/tint/builtins/gen/var/insertBits/fe6ba6.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/insertBits/fe6ba6.wgsl.expected.ir.fxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: insertBits
+..\..\src\tint\lang\core\ir\transform\builtin_polyfill.cc:555 internal compiler error: TINT_UNIMPLEMENTED insertBits polyfill level
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/var/inverseSqrt/07a6fe.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/inverseSqrt/07a6fe.wgsl.expected.ir.dxc.hlsl
index 0ba40c6..9c5aa2a 100644
--- a/test/tint/builtins/gen/var/inverseSqrt/07a6fe.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/inverseSqrt/07a6fe.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,36 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+void inverseSqrt_07a6fe() {
+  float4 res = (1.0f).xxxx;
+}
+
+void fragment_main() {
+  inverseSqrt_07a6fe();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  inverseSqrt_07a6fe();
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  inverseSqrt_07a6fe();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  vertex_main_outputs v_2 = {v_1.pos};
+  return v_2;
+}
+
diff --git a/test/tint/builtins/gen/var/inverseSqrt/07a6fe.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/inverseSqrt/07a6fe.wgsl.expected.ir.fxc.hlsl
index 0ba40c6..9c5aa2a 100644
--- a/test/tint/builtins/gen/var/inverseSqrt/07a6fe.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/inverseSqrt/07a6fe.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,36 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+void inverseSqrt_07a6fe() {
+  float4 res = (1.0f).xxxx;
+}
+
+void fragment_main() {
+  inverseSqrt_07a6fe();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  inverseSqrt_07a6fe();
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  inverseSqrt_07a6fe();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  vertex_main_outputs v_2 = {v_1.pos};
+  return v_2;
+}
+
diff --git a/test/tint/builtins/gen/var/inverseSqrt/440300.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/inverseSqrt/440300.wgsl.expected.ir.dxc.hlsl
index 0ba40c6..03cc286 100644
--- a/test/tint/builtins/gen/var/inverseSqrt/440300.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/inverseSqrt/440300.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,43 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  float16_t prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation float16_t VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+float16_t inverseSqrt_440300() {
+  float16_t arg_0 = float16_t(1.0h);
+  float16_t res = rsqrt(arg_0);
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store<float16_t>(0u, inverseSqrt_440300());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store<float16_t>(0u, inverseSqrt_440300());
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = inverseSqrt_440300();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
diff --git a/test/tint/builtins/gen/var/inverseSqrt/440300.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/inverseSqrt/440300.wgsl.expected.ir.fxc.hlsl
index 0ba40c6..9b978ca 100644
--- a/test/tint/builtins/gen/var/inverseSqrt/440300.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/inverseSqrt/440300.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,48 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct VertexOutput {
+  float4 pos;
+  float16_t prevent_dce;
+};
+
+struct vertex_main_outputs {
+  nointerpolation float16_t VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+float16_t inverseSqrt_440300() {
+  float16_t arg_0 = float16_t(1.0h);
+  float16_t res = rsqrt(arg_0);
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store<float16_t>(0u, inverseSqrt_440300());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store<float16_t>(0u, inverseSqrt_440300());
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = inverseSqrt_440300();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
+FXC validation failure:
+c:\src\dawn\Shader@0x000001B078776A10(3,3-11): error X3000: unrecognized identifier 'float16_t'
+
diff --git a/test/tint/builtins/gen/var/inverseSqrt/4ca6d6.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/inverseSqrt/4ca6d6.wgsl.expected.ir.dxc.hlsl
index 0ba40c6..58ded91 100644
--- a/test/tint/builtins/gen/var/inverseSqrt/4ca6d6.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/inverseSqrt/4ca6d6.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,36 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+void inverseSqrt_4ca6d6() {
+  float res = 1.0f;
+}
+
+void fragment_main() {
+  inverseSqrt_4ca6d6();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  inverseSqrt_4ca6d6();
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  inverseSqrt_4ca6d6();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  vertex_main_outputs v_2 = {v_1.pos};
+  return v_2;
+}
+
diff --git a/test/tint/builtins/gen/var/inverseSqrt/4ca6d6.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/inverseSqrt/4ca6d6.wgsl.expected.ir.fxc.hlsl
index 0ba40c6..58ded91 100644
--- a/test/tint/builtins/gen/var/inverseSqrt/4ca6d6.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/inverseSqrt/4ca6d6.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,36 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+void inverseSqrt_4ca6d6() {
+  float res = 1.0f;
+}
+
+void fragment_main() {
+  inverseSqrt_4ca6d6();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  inverseSqrt_4ca6d6();
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  inverseSqrt_4ca6d6();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  vertex_main_outputs v_2 = {v_1.pos};
+  return v_2;
+}
+
diff --git a/test/tint/builtins/gen/var/inverseSqrt/5f51f8.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/inverseSqrt/5f51f8.wgsl.expected.ir.dxc.hlsl
index 0ba40c6..6d4c4fd 100644
--- a/test/tint/builtins/gen/var/inverseSqrt/5f51f8.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/inverseSqrt/5f51f8.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,43 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  vector<float16_t, 2> prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation vector<float16_t, 2> VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+vector<float16_t, 2> inverseSqrt_5f51f8() {
+  vector<float16_t, 2> arg_0 = (float16_t(1.0h)).xx;
+  vector<float16_t, 2> res = rsqrt(arg_0);
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store<vector<float16_t, 2> >(0u, inverseSqrt_5f51f8());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store<vector<float16_t, 2> >(0u, inverseSqrt_5f51f8());
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = inverseSqrt_5f51f8();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
diff --git a/test/tint/builtins/gen/var/inverseSqrt/5f51f8.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/inverseSqrt/5f51f8.wgsl.expected.ir.fxc.hlsl
index 0ba40c6..af422b3 100644
--- a/test/tint/builtins/gen/var/inverseSqrt/5f51f8.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/inverseSqrt/5f51f8.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,48 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct VertexOutput {
+  float4 pos;
+  vector<float16_t, 2> prevent_dce;
+};
+
+struct vertex_main_outputs {
+  nointerpolation vector<float16_t, 2> VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+vector<float16_t, 2> inverseSqrt_5f51f8() {
+  vector<float16_t, 2> arg_0 = (float16_t(1.0h)).xx;
+  vector<float16_t, 2> res = rsqrt(arg_0);
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store<vector<float16_t, 2> >(0u, inverseSqrt_5f51f8());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store<vector<float16_t, 2> >(0u, inverseSqrt_5f51f8());
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = inverseSqrt_5f51f8();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
+FXC validation failure:
+c:\src\dawn\Shader@0x0000018C31C2FF80(3,10-18): error X3000: syntax error: unexpected token 'float16_t'
+
diff --git a/test/tint/builtins/gen/var/inverseSqrt/6d0783.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/inverseSqrt/6d0783.wgsl.expected.ir.dxc.hlsl
index 0ba40c6..4b864f9 100644
--- a/test/tint/builtins/gen/var/inverseSqrt/6d0783.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/inverseSqrt/6d0783.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,36 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+void inverseSqrt_6d0783() {
+  float3 res = (1.0f).xxx;
+}
+
+void fragment_main() {
+  inverseSqrt_6d0783();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  inverseSqrt_6d0783();
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  inverseSqrt_6d0783();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  vertex_main_outputs v_2 = {v_1.pos};
+  return v_2;
+}
+
diff --git a/test/tint/builtins/gen/var/inverseSqrt/6d0783.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/inverseSqrt/6d0783.wgsl.expected.ir.fxc.hlsl
index 0ba40c6..4b864f9 100644
--- a/test/tint/builtins/gen/var/inverseSqrt/6d0783.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/inverseSqrt/6d0783.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,36 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+void inverseSqrt_6d0783() {
+  float3 res = (1.0f).xxx;
+}
+
+void fragment_main() {
+  inverseSqrt_6d0783();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  inverseSqrt_6d0783();
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  inverseSqrt_6d0783();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  vertex_main_outputs v_2 = {v_1.pos};
+  return v_2;
+}
+
diff --git a/test/tint/builtins/gen/var/inverseSqrt/84407e.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/inverseSqrt/84407e.wgsl.expected.ir.dxc.hlsl
index 0ba40c6..7640500 100644
--- a/test/tint/builtins/gen/var/inverseSqrt/84407e.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/inverseSqrt/84407e.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,43 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  float prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation float VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+float inverseSqrt_84407e() {
+  float arg_0 = 1.0f;
+  float res = rsqrt(arg_0);
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store(0u, asuint(inverseSqrt_84407e()));
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store(0u, asuint(inverseSqrt_84407e()));
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = inverseSqrt_84407e();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
diff --git a/test/tint/builtins/gen/var/inverseSqrt/84407e.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/inverseSqrt/84407e.wgsl.expected.ir.fxc.hlsl
index 0ba40c6..7640500 100644
--- a/test/tint/builtins/gen/var/inverseSqrt/84407e.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/inverseSqrt/84407e.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,43 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  float prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation float VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+float inverseSqrt_84407e() {
+  float arg_0 = 1.0f;
+  float res = rsqrt(arg_0);
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store(0u, asuint(inverseSqrt_84407e()));
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store(0u, asuint(inverseSqrt_84407e()));
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = inverseSqrt_84407e();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
diff --git a/test/tint/builtins/gen/var/inverseSqrt/8f2bd2.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/inverseSqrt/8f2bd2.wgsl.expected.ir.dxc.hlsl
index 0ba40c6..924fade 100644
--- a/test/tint/builtins/gen/var/inverseSqrt/8f2bd2.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/inverseSqrt/8f2bd2.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,43 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  float2 prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation float2 VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+float2 inverseSqrt_8f2bd2() {
+  float2 arg_0 = (1.0f).xx;
+  float2 res = rsqrt(arg_0);
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store2(0u, asuint(inverseSqrt_8f2bd2()));
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store2(0u, asuint(inverseSqrt_8f2bd2()));
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = inverseSqrt_8f2bd2();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
diff --git a/test/tint/builtins/gen/var/inverseSqrt/8f2bd2.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/inverseSqrt/8f2bd2.wgsl.expected.ir.fxc.hlsl
index 0ba40c6..924fade 100644
--- a/test/tint/builtins/gen/var/inverseSqrt/8f2bd2.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/inverseSqrt/8f2bd2.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,43 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  float2 prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation float2 VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+float2 inverseSqrt_8f2bd2() {
+  float2 arg_0 = (1.0f).xx;
+  float2 res = rsqrt(arg_0);
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store2(0u, asuint(inverseSqrt_8f2bd2()));
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store2(0u, asuint(inverseSqrt_8f2bd2()));
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = inverseSqrt_8f2bd2();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
diff --git a/test/tint/builtins/gen/var/inverseSqrt/b197b1.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/inverseSqrt/b197b1.wgsl.expected.ir.dxc.hlsl
index 0ba40c6..30a5ca9 100644
--- a/test/tint/builtins/gen/var/inverseSqrt/b197b1.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/inverseSqrt/b197b1.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,43 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  float3 prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation float3 VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+float3 inverseSqrt_b197b1() {
+  float3 arg_0 = (1.0f).xxx;
+  float3 res = rsqrt(arg_0);
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store3(0u, asuint(inverseSqrt_b197b1()));
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store3(0u, asuint(inverseSqrt_b197b1()));
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = inverseSqrt_b197b1();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
diff --git a/test/tint/builtins/gen/var/inverseSqrt/b197b1.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/inverseSqrt/b197b1.wgsl.expected.ir.fxc.hlsl
index 0ba40c6..30a5ca9 100644
--- a/test/tint/builtins/gen/var/inverseSqrt/b197b1.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/inverseSqrt/b197b1.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,43 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  float3 prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation float3 VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+float3 inverseSqrt_b197b1() {
+  float3 arg_0 = (1.0f).xxx;
+  float3 res = rsqrt(arg_0);
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store3(0u, asuint(inverseSqrt_b197b1()));
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store3(0u, asuint(inverseSqrt_b197b1()));
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = inverseSqrt_b197b1();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
diff --git a/test/tint/builtins/gen/var/inverseSqrt/b85ebd.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/inverseSqrt/b85ebd.wgsl.expected.ir.dxc.hlsl
index 0ba40c6..d3124a9 100644
--- a/test/tint/builtins/gen/var/inverseSqrt/b85ebd.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/inverseSqrt/b85ebd.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,43 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  vector<float16_t, 3> prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation vector<float16_t, 3> VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+vector<float16_t, 3> inverseSqrt_b85ebd() {
+  vector<float16_t, 3> arg_0 = (float16_t(1.0h)).xxx;
+  vector<float16_t, 3> res = rsqrt(arg_0);
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store<vector<float16_t, 3> >(0u, inverseSqrt_b85ebd());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store<vector<float16_t, 3> >(0u, inverseSqrt_b85ebd());
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = inverseSqrt_b85ebd();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
diff --git a/test/tint/builtins/gen/var/inverseSqrt/b85ebd.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/inverseSqrt/b85ebd.wgsl.expected.ir.fxc.hlsl
index 0ba40c6..1c8ad3f 100644
--- a/test/tint/builtins/gen/var/inverseSqrt/b85ebd.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/inverseSqrt/b85ebd.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,48 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct VertexOutput {
+  float4 pos;
+  vector<float16_t, 3> prevent_dce;
+};
+
+struct vertex_main_outputs {
+  nointerpolation vector<float16_t, 3> VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+vector<float16_t, 3> inverseSqrt_b85ebd() {
+  vector<float16_t, 3> arg_0 = (float16_t(1.0h)).xxx;
+  vector<float16_t, 3> res = rsqrt(arg_0);
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store<vector<float16_t, 3> >(0u, inverseSqrt_b85ebd());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store<vector<float16_t, 3> >(0u, inverseSqrt_b85ebd());
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = inverseSqrt_b85ebd();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
+FXC validation failure:
+c:\src\dawn\Shader@0x000001FE32824F30(3,10-18): error X3000: syntax error: unexpected token 'float16_t'
+
diff --git a/test/tint/builtins/gen/var/inverseSqrt/c22347.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/inverseSqrt/c22347.wgsl.expected.ir.dxc.hlsl
index 0ba40c6..9334256 100644
--- a/test/tint/builtins/gen/var/inverseSqrt/c22347.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/inverseSqrt/c22347.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,43 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  float4 prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation float4 VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+float4 inverseSqrt_c22347() {
+  float4 arg_0 = (1.0f).xxxx;
+  float4 res = rsqrt(arg_0);
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store4(0u, asuint(inverseSqrt_c22347()));
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store4(0u, asuint(inverseSqrt_c22347()));
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = inverseSqrt_c22347();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
diff --git a/test/tint/builtins/gen/var/inverseSqrt/c22347.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/inverseSqrt/c22347.wgsl.expected.ir.fxc.hlsl
index 0ba40c6..9334256 100644
--- a/test/tint/builtins/gen/var/inverseSqrt/c22347.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/inverseSqrt/c22347.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,43 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  float4 prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation float4 VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+float4 inverseSqrt_c22347() {
+  float4 arg_0 = (1.0f).xxxx;
+  float4 res = rsqrt(arg_0);
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store4(0u, asuint(inverseSqrt_c22347()));
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store4(0u, asuint(inverseSqrt_c22347()));
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = inverseSqrt_c22347();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
diff --git a/test/tint/builtins/gen/var/inverseSqrt/cbdc70.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/inverseSqrt/cbdc70.wgsl.expected.ir.dxc.hlsl
index 0ba40c6..15758d1 100644
--- a/test/tint/builtins/gen/var/inverseSqrt/cbdc70.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/inverseSqrt/cbdc70.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,43 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  vector<float16_t, 4> prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation vector<float16_t, 4> VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+vector<float16_t, 4> inverseSqrt_cbdc70() {
+  vector<float16_t, 4> arg_0 = (float16_t(1.0h)).xxxx;
+  vector<float16_t, 4> res = rsqrt(arg_0);
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store<vector<float16_t, 4> >(0u, inverseSqrt_cbdc70());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store<vector<float16_t, 4> >(0u, inverseSqrt_cbdc70());
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = inverseSqrt_cbdc70();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
diff --git a/test/tint/builtins/gen/var/inverseSqrt/cbdc70.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/inverseSqrt/cbdc70.wgsl.expected.ir.fxc.hlsl
index 0ba40c6..257e48c 100644
--- a/test/tint/builtins/gen/var/inverseSqrt/cbdc70.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/inverseSqrt/cbdc70.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,48 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct VertexOutput {
+  float4 pos;
+  vector<float16_t, 4> prevent_dce;
+};
+
+struct vertex_main_outputs {
+  nointerpolation vector<float16_t, 4> VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+vector<float16_t, 4> inverseSqrt_cbdc70() {
+  vector<float16_t, 4> arg_0 = (float16_t(1.0h)).xxxx;
+  vector<float16_t, 4> res = rsqrt(arg_0);
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store<vector<float16_t, 4> >(0u, inverseSqrt_cbdc70());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store<vector<float16_t, 4> >(0u, inverseSqrt_cbdc70());
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = inverseSqrt_cbdc70();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
+FXC validation failure:
+c:\src\dawn\Shader@0x000001AE9FF9C480(3,10-18): error X3000: syntax error: unexpected token 'float16_t'
+
diff --git a/test/tint/builtins/gen/var/inverseSqrt/f60c1c.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/inverseSqrt/f60c1c.wgsl.expected.ir.dxc.hlsl
index 0ba40c6..6cefdf6 100644
--- a/test/tint/builtins/gen/var/inverseSqrt/f60c1c.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/inverseSqrt/f60c1c.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,36 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+void inverseSqrt_f60c1c() {
+  float2 res = (1.0f).xx;
+}
+
+void fragment_main() {
+  inverseSqrt_f60c1c();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  inverseSqrt_f60c1c();
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  inverseSqrt_f60c1c();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  vertex_main_outputs v_2 = {v_1.pos};
+  return v_2;
+}
+
diff --git a/test/tint/builtins/gen/var/inverseSqrt/f60c1c.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/inverseSqrt/f60c1c.wgsl.expected.ir.fxc.hlsl
index 0ba40c6..6cefdf6 100644
--- a/test/tint/builtins/gen/var/inverseSqrt/f60c1c.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/inverseSqrt/f60c1c.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,36 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+void inverseSqrt_f60c1c() {
+  float2 res = (1.0f).xx;
+}
+
+void fragment_main() {
+  inverseSqrt_f60c1c();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  inverseSqrt_f60c1c();
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  inverseSqrt_f60c1c();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  vertex_main_outputs v_2 = {v_1.pos};
+  return v_2;
+}
+
diff --git a/test/tint/builtins/gen/var/ldexp/082c1f.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/ldexp/082c1f.wgsl.expected.ir.dxc.hlsl
index 0ba40c6..40fa976 100644
--- a/test/tint/builtins/gen/var/ldexp/082c1f.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/ldexp/082c1f.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,43 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  float16_t prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation float16_t VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+float16_t ldexp_082c1f() {
+  float16_t arg_0 = float16_t(1.0h);
+  float16_t res = ldexp(arg_0, 1);
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store<float16_t>(0u, ldexp_082c1f());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store<float16_t>(0u, ldexp_082c1f());
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = ldexp_082c1f();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
diff --git a/test/tint/builtins/gen/var/ldexp/082c1f.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/ldexp/082c1f.wgsl.expected.ir.fxc.hlsl
index 0ba40c6..75236f8 100644
--- a/test/tint/builtins/gen/var/ldexp/082c1f.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/ldexp/082c1f.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,48 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct VertexOutput {
+  float4 pos;
+  float16_t prevent_dce;
+};
+
+struct vertex_main_outputs {
+  nointerpolation float16_t VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+float16_t ldexp_082c1f() {
+  float16_t arg_0 = float16_t(1.0h);
+  float16_t res = ldexp(arg_0, 1);
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store<float16_t>(0u, ldexp_082c1f());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store<float16_t>(0u, ldexp_082c1f());
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = ldexp_082c1f();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
+FXC validation failure:
+c:\src\dawn\Shader@0x000001B1C318DF90(3,3-11): error X3000: unrecognized identifier 'float16_t'
+
diff --git a/test/tint/builtins/gen/var/ldexp/217a31.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/ldexp/217a31.wgsl.expected.ir.dxc.hlsl
index 0ba40c6..3e6c4e9 100644
--- a/test/tint/builtins/gen/var/ldexp/217a31.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/ldexp/217a31.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,43 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  vector<float16_t, 2> prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation vector<float16_t, 2> VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+vector<float16_t, 2> ldexp_217a31() {
+  vector<float16_t, 2> arg_0 = (float16_t(1.0h)).xx;
+  vector<float16_t, 2> res = ldexp(arg_0, (1).xx);
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store<vector<float16_t, 2> >(0u, ldexp_217a31());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store<vector<float16_t, 2> >(0u, ldexp_217a31());
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = ldexp_217a31();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
diff --git a/test/tint/builtins/gen/var/ldexp/217a31.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/ldexp/217a31.wgsl.expected.ir.fxc.hlsl
index 0ba40c6..45e7bbb 100644
--- a/test/tint/builtins/gen/var/ldexp/217a31.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/ldexp/217a31.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,48 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct VertexOutput {
+  float4 pos;
+  vector<float16_t, 2> prevent_dce;
+};
+
+struct vertex_main_outputs {
+  nointerpolation vector<float16_t, 2> VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+vector<float16_t, 2> ldexp_217a31() {
+  vector<float16_t, 2> arg_0 = (float16_t(1.0h)).xx;
+  vector<float16_t, 2> res = ldexp(arg_0, (1).xx);
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store<vector<float16_t, 2> >(0u, ldexp_217a31());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store<vector<float16_t, 2> >(0u, ldexp_217a31());
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = ldexp_217a31();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
+FXC validation failure:
+c:\src\dawn\Shader@0x0000022CFCE10810(3,10-18): error X3000: syntax error: unexpected token 'float16_t'
+
diff --git a/test/tint/builtins/gen/var/ldexp/2bfc68.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/ldexp/2bfc68.wgsl.expected.ir.dxc.hlsl
index 0ba40c6..7cb3917 100644
--- a/test/tint/builtins/gen/var/ldexp/2bfc68.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/ldexp/2bfc68.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,37 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+void ldexp_2bfc68() {
+  int2 arg_1 = (1).xx;
+  float2 res = ldexp((1.0f).xx, arg_1);
+}
+
+void fragment_main() {
+  ldexp_2bfc68();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  ldexp_2bfc68();
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  ldexp_2bfc68();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  vertex_main_outputs v_2 = {v_1.pos};
+  return v_2;
+}
+
diff --git a/test/tint/builtins/gen/var/ldexp/2bfc68.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/ldexp/2bfc68.wgsl.expected.ir.fxc.hlsl
index 0ba40c6..7cb3917 100644
--- a/test/tint/builtins/gen/var/ldexp/2bfc68.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/ldexp/2bfc68.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,37 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+void ldexp_2bfc68() {
+  int2 arg_1 = (1).xx;
+  float2 res = ldexp((1.0f).xx, arg_1);
+}
+
+void fragment_main() {
+  ldexp_2bfc68();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  ldexp_2bfc68();
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  ldexp_2bfc68();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  vertex_main_outputs v_2 = {v_1.pos};
+  return v_2;
+}
+
diff --git a/test/tint/builtins/gen/var/ldexp/2c6370.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/ldexp/2c6370.wgsl.expected.ir.dxc.hlsl
index 0ba40c6..f1a4936 100644
--- a/test/tint/builtins/gen/var/ldexp/2c6370.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/ldexp/2c6370.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,36 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+void ldexp_2c6370() {
+  float2 res = (2.0f).xx;
+}
+
+void fragment_main() {
+  ldexp_2c6370();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  ldexp_2c6370();
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  ldexp_2c6370();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  vertex_main_outputs v_2 = {v_1.pos};
+  return v_2;
+}
+
diff --git a/test/tint/builtins/gen/var/ldexp/2c6370.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/ldexp/2c6370.wgsl.expected.ir.fxc.hlsl
index 0ba40c6..f1a4936 100644
--- a/test/tint/builtins/gen/var/ldexp/2c6370.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/ldexp/2c6370.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,36 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+void ldexp_2c6370() {
+  float2 res = (2.0f).xx;
+}
+
+void fragment_main() {
+  ldexp_2c6370();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  ldexp_2c6370();
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  ldexp_2c6370();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  vertex_main_outputs v_2 = {v_1.pos};
+  return v_2;
+}
+
diff --git a/test/tint/builtins/gen/var/ldexp/376938.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/ldexp/376938.wgsl.expected.ir.dxc.hlsl
index 0ba40c6..1beb115 100644
--- a/test/tint/builtins/gen/var/ldexp/376938.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/ldexp/376938.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,37 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+void ldexp_376938() {
+  int4 arg_1 = (1).xxxx;
+  float4 res = ldexp((1.0f).xxxx, arg_1);
+}
+
+void fragment_main() {
+  ldexp_376938();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  ldexp_376938();
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  ldexp_376938();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  vertex_main_outputs v_2 = {v_1.pos};
+  return v_2;
+}
+
diff --git a/test/tint/builtins/gen/var/ldexp/376938.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/ldexp/376938.wgsl.expected.ir.fxc.hlsl
index 0ba40c6..1beb115 100644
--- a/test/tint/builtins/gen/var/ldexp/376938.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/ldexp/376938.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,37 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+void ldexp_376938() {
+  int4 arg_1 = (1).xxxx;
+  float4 res = ldexp((1.0f).xxxx, arg_1);
+}
+
+void fragment_main() {
+  ldexp_376938();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  ldexp_376938();
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  ldexp_376938();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  vertex_main_outputs v_2 = {v_1.pos};
+  return v_2;
+}
+
diff --git a/test/tint/builtins/gen/var/ldexp/3d90b4.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/ldexp/3d90b4.wgsl.expected.ir.dxc.hlsl
index 0ba40c6..f2e8087 100644
--- a/test/tint/builtins/gen/var/ldexp/3d90b4.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/ldexp/3d90b4.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,44 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  vector<float16_t, 2> prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation vector<float16_t, 2> VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+vector<float16_t, 2> ldexp_3d90b4() {
+  vector<float16_t, 2> arg_0 = (float16_t(1.0h)).xx;
+  int2 arg_1 = (1).xx;
+  vector<float16_t, 2> res = ldexp(arg_0, arg_1);
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store<vector<float16_t, 2> >(0u, ldexp_3d90b4());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store<vector<float16_t, 2> >(0u, ldexp_3d90b4());
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = ldexp_3d90b4();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
diff --git a/test/tint/builtins/gen/var/ldexp/3d90b4.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/ldexp/3d90b4.wgsl.expected.ir.fxc.hlsl
index 0ba40c6..e4f2133 100644
--- a/test/tint/builtins/gen/var/ldexp/3d90b4.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/ldexp/3d90b4.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,49 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct VertexOutput {
+  float4 pos;
+  vector<float16_t, 2> prevent_dce;
+};
+
+struct vertex_main_outputs {
+  nointerpolation vector<float16_t, 2> VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+vector<float16_t, 2> ldexp_3d90b4() {
+  vector<float16_t, 2> arg_0 = (float16_t(1.0h)).xx;
+  int2 arg_1 = (1).xx;
+  vector<float16_t, 2> res = ldexp(arg_0, arg_1);
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store<vector<float16_t, 2> >(0u, ldexp_3d90b4());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store<vector<float16_t, 2> >(0u, ldexp_3d90b4());
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = ldexp_3d90b4();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
+FXC validation failure:
+c:\src\dawn\Shader@0x00000213F8015460(3,10-18): error X3000: syntax error: unexpected token 'float16_t'
+
diff --git a/test/tint/builtins/gen/var/ldexp/4a3ad9.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/ldexp/4a3ad9.wgsl.expected.ir.dxc.hlsl
index 0ba40c6..e21ab0e 100644
--- a/test/tint/builtins/gen/var/ldexp/4a3ad9.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/ldexp/4a3ad9.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,36 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+void ldexp_4a3ad9() {
+  float3 res = (2.0f).xxx;
+}
+
+void fragment_main() {
+  ldexp_4a3ad9();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  ldexp_4a3ad9();
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  ldexp_4a3ad9();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  vertex_main_outputs v_2 = {v_1.pos};
+  return v_2;
+}
+
diff --git a/test/tint/builtins/gen/var/ldexp/4a3ad9.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/ldexp/4a3ad9.wgsl.expected.ir.fxc.hlsl
index 0ba40c6..e21ab0e 100644
--- a/test/tint/builtins/gen/var/ldexp/4a3ad9.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/ldexp/4a3ad9.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,36 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+void ldexp_4a3ad9() {
+  float3 res = (2.0f).xxx;
+}
+
+void fragment_main() {
+  ldexp_4a3ad9();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  ldexp_4a3ad9();
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  ldexp_4a3ad9();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  vertex_main_outputs v_2 = {v_1.pos};
+  return v_2;
+}
+
diff --git a/test/tint/builtins/gen/var/ldexp/593ff3.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/ldexp/593ff3.wgsl.expected.ir.dxc.hlsl
index 0ba40c6..e1f0931 100644
--- a/test/tint/builtins/gen/var/ldexp/593ff3.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/ldexp/593ff3.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,43 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  float3 prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation float3 VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+float3 ldexp_593ff3() {
+  float3 arg_0 = (1.0f).xxx;
+  float3 res = ldexp(arg_0, (1).xxx);
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store3(0u, asuint(ldexp_593ff3()));
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store3(0u, asuint(ldexp_593ff3()));
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = ldexp_593ff3();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
diff --git a/test/tint/builtins/gen/var/ldexp/593ff3.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/ldexp/593ff3.wgsl.expected.ir.fxc.hlsl
index 0ba40c6..e1f0931 100644
--- a/test/tint/builtins/gen/var/ldexp/593ff3.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/ldexp/593ff3.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,43 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  float3 prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation float3 VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+float3 ldexp_593ff3() {
+  float3 arg_0 = (1.0f).xxx;
+  float3 res = ldexp(arg_0, (1).xxx);
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store3(0u, asuint(ldexp_593ff3()));
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store3(0u, asuint(ldexp_593ff3()));
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = ldexp_593ff3();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
diff --git a/test/tint/builtins/gen/var/ldexp/624e0c.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/ldexp/624e0c.wgsl.expected.ir.dxc.hlsl
index 0ba40c6..3f34ccd 100644
--- a/test/tint/builtins/gen/var/ldexp/624e0c.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/ldexp/624e0c.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,44 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  float16_t prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation float16_t VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+float16_t ldexp_624e0c() {
+  float16_t arg_0 = float16_t(1.0h);
+  int arg_1 = 1;
+  float16_t res = ldexp(arg_0, arg_1);
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store<float16_t>(0u, ldexp_624e0c());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store<float16_t>(0u, ldexp_624e0c());
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = ldexp_624e0c();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
diff --git a/test/tint/builtins/gen/var/ldexp/624e0c.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/ldexp/624e0c.wgsl.expected.ir.fxc.hlsl
index 0ba40c6..d4f0ed4 100644
--- a/test/tint/builtins/gen/var/ldexp/624e0c.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/ldexp/624e0c.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,49 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct VertexOutput {
+  float4 pos;
+  float16_t prevent_dce;
+};
+
+struct vertex_main_outputs {
+  nointerpolation float16_t VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+float16_t ldexp_624e0c() {
+  float16_t arg_0 = float16_t(1.0h);
+  int arg_1 = 1;
+  float16_t res = ldexp(arg_0, arg_1);
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store<float16_t>(0u, ldexp_624e0c());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store<float16_t>(0u, ldexp_624e0c());
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = ldexp_624e0c();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
+FXC validation failure:
+c:\src\dawn\Shader@0x00000209E77A0840(3,3-11): error X3000: unrecognized identifier 'float16_t'
+
diff --git a/test/tint/builtins/gen/var/ldexp/65a7bd.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/ldexp/65a7bd.wgsl.expected.ir.dxc.hlsl
index 0ba40c6..c1be2bc 100644
--- a/test/tint/builtins/gen/var/ldexp/65a7bd.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/ldexp/65a7bd.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,43 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  float4 prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation float4 VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+float4 ldexp_65a7bd() {
+  float4 arg_0 = (1.0f).xxxx;
+  float4 res = ldexp(arg_0, (1).xxxx);
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store4(0u, asuint(ldexp_65a7bd()));
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store4(0u, asuint(ldexp_65a7bd()));
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = ldexp_65a7bd();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
diff --git a/test/tint/builtins/gen/var/ldexp/65a7bd.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/ldexp/65a7bd.wgsl.expected.ir.fxc.hlsl
index 0ba40c6..c1be2bc 100644
--- a/test/tint/builtins/gen/var/ldexp/65a7bd.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/ldexp/65a7bd.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,43 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  float4 prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation float4 VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+float4 ldexp_65a7bd() {
+  float4 arg_0 = (1.0f).xxxx;
+  float4 res = ldexp(arg_0, (1).xxxx);
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store4(0u, asuint(ldexp_65a7bd()));
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store4(0u, asuint(ldexp_65a7bd()));
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = ldexp_65a7bd();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
diff --git a/test/tint/builtins/gen/var/ldexp/71ebe3.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/ldexp/71ebe3.wgsl.expected.ir.dxc.hlsl
index 0ba40c6..08731fc 100644
--- a/test/tint/builtins/gen/var/ldexp/71ebe3.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/ldexp/71ebe3.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,37 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+void ldexp_71ebe3() {
+  int arg_1 = 1;
+  float res = ldexp(1.0f, arg_1);
+}
+
+void fragment_main() {
+  ldexp_71ebe3();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  ldexp_71ebe3();
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  ldexp_71ebe3();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  vertex_main_outputs v_2 = {v_1.pos};
+  return v_2;
+}
+
diff --git a/test/tint/builtins/gen/var/ldexp/71ebe3.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/ldexp/71ebe3.wgsl.expected.ir.fxc.hlsl
index 0ba40c6..08731fc 100644
--- a/test/tint/builtins/gen/var/ldexp/71ebe3.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/ldexp/71ebe3.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,37 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+void ldexp_71ebe3() {
+  int arg_1 = 1;
+  float res = ldexp(1.0f, arg_1);
+}
+
+void fragment_main() {
+  ldexp_71ebe3();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  ldexp_71ebe3();
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  ldexp_71ebe3();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  vertex_main_outputs v_2 = {v_1.pos};
+  return v_2;
+}
+
diff --git a/test/tint/builtins/gen/var/ldexp/7485ce.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/ldexp/7485ce.wgsl.expected.ir.dxc.hlsl
index 0ba40c6..07b455d 100644
--- a/test/tint/builtins/gen/var/ldexp/7485ce.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/ldexp/7485ce.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,44 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  vector<float16_t, 3> prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation vector<float16_t, 3> VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+vector<float16_t, 3> ldexp_7485ce() {
+  vector<float16_t, 3> arg_0 = (float16_t(1.0h)).xxx;
+  int3 arg_1 = (1).xxx;
+  vector<float16_t, 3> res = ldexp(arg_0, arg_1);
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store<vector<float16_t, 3> >(0u, ldexp_7485ce());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store<vector<float16_t, 3> >(0u, ldexp_7485ce());
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = ldexp_7485ce();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
diff --git a/test/tint/builtins/gen/var/ldexp/7485ce.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/ldexp/7485ce.wgsl.expected.ir.fxc.hlsl
index 0ba40c6..f8c3d4e 100644
--- a/test/tint/builtins/gen/var/ldexp/7485ce.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/ldexp/7485ce.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,49 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct VertexOutput {
+  float4 pos;
+  vector<float16_t, 3> prevent_dce;
+};
+
+struct vertex_main_outputs {
+  nointerpolation vector<float16_t, 3> VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+vector<float16_t, 3> ldexp_7485ce() {
+  vector<float16_t, 3> arg_0 = (float16_t(1.0h)).xxx;
+  int3 arg_1 = (1).xxx;
+  vector<float16_t, 3> res = ldexp(arg_0, arg_1);
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store<vector<float16_t, 3> >(0u, ldexp_7485ce());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store<vector<float16_t, 3> >(0u, ldexp_7485ce());
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = ldexp_7485ce();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
+FXC validation failure:
+c:\src\dawn\Shader@0x00000151CBEE0840(3,10-18): error X3000: syntax error: unexpected token 'float16_t'
+
diff --git a/test/tint/builtins/gen/var/ldexp/7fa13c.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/ldexp/7fa13c.wgsl.expected.ir.dxc.hlsl
index 0ba40c6..7ff32fa 100644
--- a/test/tint/builtins/gen/var/ldexp/7fa13c.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/ldexp/7fa13c.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,44 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  vector<float16_t, 4> prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation vector<float16_t, 4> VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+vector<float16_t, 4> ldexp_7fa13c() {
+  vector<float16_t, 4> arg_0 = (float16_t(1.0h)).xxxx;
+  int4 arg_1 = (1).xxxx;
+  vector<float16_t, 4> res = ldexp(arg_0, arg_1);
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store<vector<float16_t, 4> >(0u, ldexp_7fa13c());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store<vector<float16_t, 4> >(0u, ldexp_7fa13c());
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = ldexp_7fa13c();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
diff --git a/test/tint/builtins/gen/var/ldexp/7fa13c.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/ldexp/7fa13c.wgsl.expected.ir.fxc.hlsl
index 0ba40c6..76c2006 100644
--- a/test/tint/builtins/gen/var/ldexp/7fa13c.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/ldexp/7fa13c.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,49 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct VertexOutput {
+  float4 pos;
+  vector<float16_t, 4> prevent_dce;
+};
+
+struct vertex_main_outputs {
+  nointerpolation vector<float16_t, 4> VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+vector<float16_t, 4> ldexp_7fa13c() {
+  vector<float16_t, 4> arg_0 = (float16_t(1.0h)).xxxx;
+  int4 arg_1 = (1).xxxx;
+  vector<float16_t, 4> res = ldexp(arg_0, arg_1);
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store<vector<float16_t, 4> >(0u, ldexp_7fa13c());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store<vector<float16_t, 4> >(0u, ldexp_7fa13c());
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = ldexp_7fa13c();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
+FXC validation failure:
+c:\src\dawn\Shader@0x00000256C3D88D90(3,10-18): error X3000: syntax error: unexpected token 'float16_t'
+
diff --git a/test/tint/builtins/gen/var/ldexp/8a0c2f.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/ldexp/8a0c2f.wgsl.expected.ir.dxc.hlsl
index 0ba40c6..7472215 100644
--- a/test/tint/builtins/gen/var/ldexp/8a0c2f.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/ldexp/8a0c2f.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,43 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  vector<float16_t, 4> prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation vector<float16_t, 4> VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+vector<float16_t, 4> ldexp_8a0c2f() {
+  vector<float16_t, 4> arg_0 = (float16_t(1.0h)).xxxx;
+  vector<float16_t, 4> res = ldexp(arg_0, (1).xxxx);
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store<vector<float16_t, 4> >(0u, ldexp_8a0c2f());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store<vector<float16_t, 4> >(0u, ldexp_8a0c2f());
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = ldexp_8a0c2f();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
diff --git a/test/tint/builtins/gen/var/ldexp/8a0c2f.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/ldexp/8a0c2f.wgsl.expected.ir.fxc.hlsl
index 0ba40c6..8c79fff 100644
--- a/test/tint/builtins/gen/var/ldexp/8a0c2f.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/ldexp/8a0c2f.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,48 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct VertexOutput {
+  float4 pos;
+  vector<float16_t, 4> prevent_dce;
+};
+
+struct vertex_main_outputs {
+  nointerpolation vector<float16_t, 4> VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+vector<float16_t, 4> ldexp_8a0c2f() {
+  vector<float16_t, 4> arg_0 = (float16_t(1.0h)).xxxx;
+  vector<float16_t, 4> res = ldexp(arg_0, (1).xxxx);
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store<vector<float16_t, 4> >(0u, ldexp_8a0c2f());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store<vector<float16_t, 4> >(0u, ldexp_8a0c2f());
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = ldexp_8a0c2f();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
+FXC validation failure:
+c:\src\dawn\Shader@0x0000028E6742C460(3,10-18): error X3000: syntax error: unexpected token 'float16_t'
+
diff --git a/test/tint/builtins/gen/var/ldexp/8e43e9.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/ldexp/8e43e9.wgsl.expected.ir.dxc.hlsl
index 0ba40c6..923994f 100644
--- a/test/tint/builtins/gen/var/ldexp/8e43e9.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/ldexp/8e43e9.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,43 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  vector<float16_t, 3> prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation vector<float16_t, 3> VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+vector<float16_t, 3> ldexp_8e43e9() {
+  vector<float16_t, 3> arg_0 = (float16_t(1.0h)).xxx;
+  vector<float16_t, 3> res = ldexp(arg_0, (1).xxx);
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store<vector<float16_t, 3> >(0u, ldexp_8e43e9());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store<vector<float16_t, 3> >(0u, ldexp_8e43e9());
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = ldexp_8e43e9();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
diff --git a/test/tint/builtins/gen/var/ldexp/8e43e9.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/ldexp/8e43e9.wgsl.expected.ir.fxc.hlsl
index 0ba40c6..694673b 100644
--- a/test/tint/builtins/gen/var/ldexp/8e43e9.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/ldexp/8e43e9.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,48 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct VertexOutput {
+  float4 pos;
+  vector<float16_t, 3> prevent_dce;
+};
+
+struct vertex_main_outputs {
+  nointerpolation vector<float16_t, 3> VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+vector<float16_t, 3> ldexp_8e43e9() {
+  vector<float16_t, 3> arg_0 = (float16_t(1.0h)).xxx;
+  vector<float16_t, 3> res = ldexp(arg_0, (1).xxx);
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store<vector<float16_t, 3> >(0u, ldexp_8e43e9());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store<vector<float16_t, 3> >(0u, ldexp_8e43e9());
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = ldexp_8e43e9();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
+FXC validation failure:
+c:\src\dawn\Shader@0x00000113601DCD80(3,10-18): error X3000: syntax error: unexpected token 'float16_t'
+
diff --git a/test/tint/builtins/gen/var/ldexp/a22679.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/ldexp/a22679.wgsl.expected.ir.dxc.hlsl
index 0ba40c6..8dd7d3f 100644
--- a/test/tint/builtins/gen/var/ldexp/a22679.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/ldexp/a22679.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,43 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  float2 prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation float2 VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+float2 ldexp_a22679() {
+  float2 arg_0 = (1.0f).xx;
+  float2 res = ldexp(arg_0, (1).xx);
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store2(0u, asuint(ldexp_a22679()));
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store2(0u, asuint(ldexp_a22679()));
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = ldexp_a22679();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
diff --git a/test/tint/builtins/gen/var/ldexp/a22679.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/ldexp/a22679.wgsl.expected.ir.fxc.hlsl
index 0ba40c6..8dd7d3f 100644
--- a/test/tint/builtins/gen/var/ldexp/a22679.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/ldexp/a22679.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,43 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  float2 prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation float2 VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+float2 ldexp_a22679() {
+  float2 arg_0 = (1.0f).xx;
+  float2 res = ldexp(arg_0, (1).xx);
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store2(0u, asuint(ldexp_a22679()));
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store2(0u, asuint(ldexp_a22679()));
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = ldexp_a22679();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
diff --git a/test/tint/builtins/gen/var/ldexp/a31cdc.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/ldexp/a31cdc.wgsl.expected.ir.dxc.hlsl
index 0ba40c6..5205d61 100644
--- a/test/tint/builtins/gen/var/ldexp/a31cdc.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/ldexp/a31cdc.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,44 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  float3 prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation float3 VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+float3 ldexp_a31cdc() {
+  float3 arg_0 = (1.0f).xxx;
+  int3 arg_1 = (1).xxx;
+  float3 res = ldexp(arg_0, arg_1);
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store3(0u, asuint(ldexp_a31cdc()));
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store3(0u, asuint(ldexp_a31cdc()));
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = ldexp_a31cdc();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
diff --git a/test/tint/builtins/gen/var/ldexp/a31cdc.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/ldexp/a31cdc.wgsl.expected.ir.fxc.hlsl
index 0ba40c6..5205d61 100644
--- a/test/tint/builtins/gen/var/ldexp/a31cdc.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/ldexp/a31cdc.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,44 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  float3 prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation float3 VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+float3 ldexp_a31cdc() {
+  float3 arg_0 = (1.0f).xxx;
+  int3 arg_1 = (1).xxx;
+  float3 res = ldexp(arg_0, arg_1);
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store3(0u, asuint(ldexp_a31cdc()));
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store3(0u, asuint(ldexp_a31cdc()));
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = ldexp_a31cdc();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
diff --git a/test/tint/builtins/gen/var/ldexp/a6126e.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/ldexp/a6126e.wgsl.expected.ir.dxc.hlsl
index 0ba40c6..edd9ce7 100644
--- a/test/tint/builtins/gen/var/ldexp/a6126e.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/ldexp/a6126e.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,37 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+void ldexp_a6126e() {
+  int3 arg_1 = (1).xxx;
+  float3 res = ldexp((1.0f).xxx, arg_1);
+}
+
+void fragment_main() {
+  ldexp_a6126e();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  ldexp_a6126e();
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  ldexp_a6126e();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  vertex_main_outputs v_2 = {v_1.pos};
+  return v_2;
+}
+
diff --git a/test/tint/builtins/gen/var/ldexp/a6126e.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/ldexp/a6126e.wgsl.expected.ir.fxc.hlsl
index 0ba40c6..edd9ce7 100644
--- a/test/tint/builtins/gen/var/ldexp/a6126e.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/ldexp/a6126e.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,37 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+void ldexp_a6126e() {
+  int3 arg_1 = (1).xxx;
+  float3 res = ldexp((1.0f).xxx, arg_1);
+}
+
+void fragment_main() {
+  ldexp_a6126e();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  ldexp_a6126e();
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  ldexp_a6126e();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  vertex_main_outputs v_2 = {v_1.pos};
+  return v_2;
+}
+
diff --git a/test/tint/builtins/gen/var/ldexp/abd718.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/ldexp/abd718.wgsl.expected.ir.dxc.hlsl
index 0ba40c6..65b7ba6 100644
--- a/test/tint/builtins/gen/var/ldexp/abd718.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/ldexp/abd718.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,44 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  float2 prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation float2 VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+float2 ldexp_abd718() {
+  float2 arg_0 = (1.0f).xx;
+  int2 arg_1 = (1).xx;
+  float2 res = ldexp(arg_0, arg_1);
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store2(0u, asuint(ldexp_abd718()));
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store2(0u, asuint(ldexp_abd718()));
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = ldexp_abd718();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
diff --git a/test/tint/builtins/gen/var/ldexp/abd718.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/ldexp/abd718.wgsl.expected.ir.fxc.hlsl
index 0ba40c6..65b7ba6 100644
--- a/test/tint/builtins/gen/var/ldexp/abd718.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/ldexp/abd718.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,44 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  float2 prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation float2 VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+float2 ldexp_abd718() {
+  float2 arg_0 = (1.0f).xx;
+  int2 arg_1 = (1).xx;
+  float2 res = ldexp(arg_0, arg_1);
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store2(0u, asuint(ldexp_abd718()));
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store2(0u, asuint(ldexp_abd718()));
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = ldexp_abd718();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
diff --git a/test/tint/builtins/gen/var/ldexp/c9d0b7.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/ldexp/c9d0b7.wgsl.expected.ir.dxc.hlsl
index 0ba40c6..09010aa 100644
--- a/test/tint/builtins/gen/var/ldexp/c9d0b7.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/ldexp/c9d0b7.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,43 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  float prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation float VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+float ldexp_c9d0b7() {
+  float arg_0 = 1.0f;
+  float res = ldexp(arg_0, 1);
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store(0u, asuint(ldexp_c9d0b7()));
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store(0u, asuint(ldexp_c9d0b7()));
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = ldexp_c9d0b7();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
diff --git a/test/tint/builtins/gen/var/ldexp/c9d0b7.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/ldexp/c9d0b7.wgsl.expected.ir.fxc.hlsl
index 0ba40c6..09010aa 100644
--- a/test/tint/builtins/gen/var/ldexp/c9d0b7.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/ldexp/c9d0b7.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,43 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  float prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation float VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+float ldexp_c9d0b7() {
+  float arg_0 = 1.0f;
+  float res = ldexp(arg_0, 1);
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store(0u, asuint(ldexp_c9d0b7()));
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store(0u, asuint(ldexp_c9d0b7()));
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = ldexp_c9d0b7();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
diff --git a/test/tint/builtins/gen/var/ldexp/cb0faf.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/ldexp/cb0faf.wgsl.expected.ir.dxc.hlsl
index 0ba40c6..39e1125 100644
--- a/test/tint/builtins/gen/var/ldexp/cb0faf.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/ldexp/cb0faf.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,36 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+void ldexp_cb0faf() {
+  float4 res = (2.0f).xxxx;
+}
+
+void fragment_main() {
+  ldexp_cb0faf();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  ldexp_cb0faf();
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  ldexp_cb0faf();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  vertex_main_outputs v_2 = {v_1.pos};
+  return v_2;
+}
+
diff --git a/test/tint/builtins/gen/var/ldexp/cb0faf.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/ldexp/cb0faf.wgsl.expected.ir.fxc.hlsl
index 0ba40c6..39e1125 100644
--- a/test/tint/builtins/gen/var/ldexp/cb0faf.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/ldexp/cb0faf.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,36 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+void ldexp_cb0faf() {
+  float4 res = (2.0f).xxxx;
+}
+
+void fragment_main() {
+  ldexp_cb0faf();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  ldexp_cb0faf();
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  ldexp_cb0faf();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  vertex_main_outputs v_2 = {v_1.pos};
+  return v_2;
+}
+
diff --git a/test/tint/builtins/gen/var/ldexp/cc9cde.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/ldexp/cc9cde.wgsl.expected.ir.dxc.hlsl
index 0ba40c6..f28b9a3 100644
--- a/test/tint/builtins/gen/var/ldexp/cc9cde.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/ldexp/cc9cde.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,44 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  float4 prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation float4 VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+float4 ldexp_cc9cde() {
+  float4 arg_0 = (1.0f).xxxx;
+  int4 arg_1 = (1).xxxx;
+  float4 res = ldexp(arg_0, arg_1);
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store4(0u, asuint(ldexp_cc9cde()));
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store4(0u, asuint(ldexp_cc9cde()));
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = ldexp_cc9cde();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
diff --git a/test/tint/builtins/gen/var/ldexp/cc9cde.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/ldexp/cc9cde.wgsl.expected.ir.fxc.hlsl
index 0ba40c6..f28b9a3 100644
--- a/test/tint/builtins/gen/var/ldexp/cc9cde.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/ldexp/cc9cde.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,44 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  float4 prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation float4 VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+float4 ldexp_cc9cde() {
+  float4 arg_0 = (1.0f).xxxx;
+  int4 arg_1 = (1).xxxx;
+  float4 res = ldexp(arg_0, arg_1);
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store4(0u, asuint(ldexp_cc9cde()));
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store4(0u, asuint(ldexp_cc9cde()));
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = ldexp_cc9cde();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
diff --git a/test/tint/builtins/gen/var/ldexp/db8b49.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/ldexp/db8b49.wgsl.expected.ir.dxc.hlsl
index 0ba40c6..28417e0 100644
--- a/test/tint/builtins/gen/var/ldexp/db8b49.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/ldexp/db8b49.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,44 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  float prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation float VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+float ldexp_db8b49() {
+  float arg_0 = 1.0f;
+  int arg_1 = 1;
+  float res = ldexp(arg_0, arg_1);
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store(0u, asuint(ldexp_db8b49()));
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store(0u, asuint(ldexp_db8b49()));
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = ldexp_db8b49();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
diff --git a/test/tint/builtins/gen/var/ldexp/db8b49.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/ldexp/db8b49.wgsl.expected.ir.fxc.hlsl
index 0ba40c6..28417e0 100644
--- a/test/tint/builtins/gen/var/ldexp/db8b49.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/ldexp/db8b49.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,44 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  float prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation float VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+float ldexp_db8b49() {
+  float arg_0 = 1.0f;
+  int arg_1 = 1;
+  float res = ldexp(arg_0, arg_1);
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store(0u, asuint(ldexp_db8b49()));
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store(0u, asuint(ldexp_db8b49()));
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = ldexp_db8b49();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
diff --git a/test/tint/builtins/gen/var/ldexp/fdbc7b.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/ldexp/fdbc7b.wgsl.expected.ir.dxc.hlsl
index 0ba40c6..c14a81a 100644
--- a/test/tint/builtins/gen/var/ldexp/fdbc7b.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/ldexp/fdbc7b.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,36 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+void ldexp_fdbc7b() {
+  float res = 2.0f;
+}
+
+void fragment_main() {
+  ldexp_fdbc7b();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  ldexp_fdbc7b();
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  ldexp_fdbc7b();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  vertex_main_outputs v_2 = {v_1.pos};
+  return v_2;
+}
+
diff --git a/test/tint/builtins/gen/var/ldexp/fdbc7b.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/ldexp/fdbc7b.wgsl.expected.ir.fxc.hlsl
index 0ba40c6..c14a81a 100644
--- a/test/tint/builtins/gen/var/ldexp/fdbc7b.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/ldexp/fdbc7b.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,36 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+void ldexp_fdbc7b() {
+  float res = 2.0f;
+}
+
+void fragment_main() {
+  ldexp_fdbc7b();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  ldexp_fdbc7b();
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  ldexp_fdbc7b();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  vertex_main_outputs v_2 = {v_1.pos};
+  return v_2;
+}
+
diff --git a/test/tint/builtins/gen/var/length/056071.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/length/056071.wgsl.expected.ir.dxc.hlsl
index 0ba40c6..c935d85 100644
--- a/test/tint/builtins/gen/var/length/056071.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/length/056071.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,43 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  float prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation float VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+float length_056071() {
+  float3 arg_0 = (0.0f).xxx;
+  float res = length(arg_0);
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store(0u, asuint(length_056071()));
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store(0u, asuint(length_056071()));
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = length_056071();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
diff --git a/test/tint/builtins/gen/var/length/056071.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/length/056071.wgsl.expected.ir.fxc.hlsl
index 0ba40c6..c935d85 100644
--- a/test/tint/builtins/gen/var/length/056071.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/length/056071.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,43 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  float prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation float VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+float length_056071() {
+  float3 arg_0 = (0.0f).xxx;
+  float res = length(arg_0);
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store(0u, asuint(length_056071()));
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store(0u, asuint(length_056071()));
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = length_056071();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
diff --git a/test/tint/builtins/gen/var/length/3f0e13.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/length/3f0e13.wgsl.expected.ir.dxc.hlsl
index 0ba40c6..a568d18 100644
--- a/test/tint/builtins/gen/var/length/3f0e13.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/length/3f0e13.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,43 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  float16_t prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation float16_t VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+float16_t length_3f0e13() {
+  vector<float16_t, 2> arg_0 = (float16_t(0.0h)).xx;
+  float16_t res = length(arg_0);
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store<float16_t>(0u, length_3f0e13());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store<float16_t>(0u, length_3f0e13());
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = length_3f0e13();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
diff --git a/test/tint/builtins/gen/var/length/3f0e13.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/length/3f0e13.wgsl.expected.ir.fxc.hlsl
index 0ba40c6..96868d4 100644
--- a/test/tint/builtins/gen/var/length/3f0e13.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/length/3f0e13.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,48 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct VertexOutput {
+  float4 pos;
+  float16_t prevent_dce;
+};
+
+struct vertex_main_outputs {
+  nointerpolation float16_t VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+float16_t length_3f0e13() {
+  vector<float16_t, 2> arg_0 = (float16_t(0.0h)).xx;
+  float16_t res = length(arg_0);
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store<float16_t>(0u, length_3f0e13());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store<float16_t>(0u, length_3f0e13());
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = length_3f0e13();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
+FXC validation failure:
+c:\src\dawn\Shader@0x0000028A7208A4E0(3,3-11): error X3000: unrecognized identifier 'float16_t'
+
diff --git a/test/tint/builtins/gen/var/length/555aba.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/length/555aba.wgsl.expected.ir.dxc.hlsl
index 0ba40c6..6336200 100644
--- a/test/tint/builtins/gen/var/length/555aba.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/length/555aba.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,36 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+void length_555aba() {
+  float res = 0.0f;
+}
+
+void fragment_main() {
+  length_555aba();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  length_555aba();
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  length_555aba();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  vertex_main_outputs v_2 = {v_1.pos};
+  return v_2;
+}
+
diff --git a/test/tint/builtins/gen/var/length/555aba.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/length/555aba.wgsl.expected.ir.fxc.hlsl
index 0ba40c6..6336200 100644
--- a/test/tint/builtins/gen/var/length/555aba.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/length/555aba.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,36 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+void length_555aba() {
+  float res = 0.0f;
+}
+
+void fragment_main() {
+  length_555aba();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  length_555aba();
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  length_555aba();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  vertex_main_outputs v_2 = {v_1.pos};
+  return v_2;
+}
+
diff --git a/test/tint/builtins/gen/var/length/5b1a9b.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/length/5b1a9b.wgsl.expected.ir.dxc.hlsl
index 0ba40c6..848c881 100644
--- a/test/tint/builtins/gen/var/length/5b1a9b.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/length/5b1a9b.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,43 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  float16_t prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation float16_t VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+float16_t length_5b1a9b() {
+  vector<float16_t, 4> arg_0 = (float16_t(0.0h)).xxxx;
+  float16_t res = length(arg_0);
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store<float16_t>(0u, length_5b1a9b());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store<float16_t>(0u, length_5b1a9b());
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = length_5b1a9b();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
diff --git a/test/tint/builtins/gen/var/length/5b1a9b.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/length/5b1a9b.wgsl.expected.ir.fxc.hlsl
index 0ba40c6..d5c704f 100644
--- a/test/tint/builtins/gen/var/length/5b1a9b.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/length/5b1a9b.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,48 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct VertexOutput {
+  float4 pos;
+  float16_t prevent_dce;
+};
+
+struct vertex_main_outputs {
+  nointerpolation float16_t VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+float16_t length_5b1a9b() {
+  vector<float16_t, 4> arg_0 = (float16_t(0.0h)).xxxx;
+  float16_t res = length(arg_0);
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store<float16_t>(0u, length_5b1a9b());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store<float16_t>(0u, length_5b1a9b());
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = length_5b1a9b();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
+FXC validation failure:
+c:\src\dawn\Shader@0x000001E144B9FD50(3,3-11): error X3000: unrecognized identifier 'float16_t'
+
diff --git a/test/tint/builtins/gen/var/length/602a17.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/length/602a17.wgsl.expected.ir.dxc.hlsl
index 0ba40c6..3ede1e0 100644
--- a/test/tint/builtins/gen/var/length/602a17.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/length/602a17.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,43 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  float prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation float VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+float length_602a17() {
+  float arg_0 = 0.0f;
+  float res = length(arg_0);
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store(0u, asuint(length_602a17()));
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store(0u, asuint(length_602a17()));
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = length_602a17();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
diff --git a/test/tint/builtins/gen/var/length/602a17.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/length/602a17.wgsl.expected.ir.fxc.hlsl
index 0ba40c6..3ede1e0 100644
--- a/test/tint/builtins/gen/var/length/602a17.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/length/602a17.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,43 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  float prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation float VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+float length_602a17() {
+  float arg_0 = 0.0f;
+  float res = length(arg_0);
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store(0u, asuint(length_602a17()));
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store(0u, asuint(length_602a17()));
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = length_602a17();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
diff --git a/test/tint/builtins/gen/var/length/7b4741.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/length/7b4741.wgsl.expected.ir.dxc.hlsl
index 0ba40c6..62c0847 100644
--- a/test/tint/builtins/gen/var/length/7b4741.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/length/7b4741.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,36 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+void length_7b4741() {
+  float res = 0.0f;
+}
+
+void fragment_main() {
+  length_7b4741();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  length_7b4741();
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  length_7b4741();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  vertex_main_outputs v_2 = {v_1.pos};
+  return v_2;
+}
+
diff --git a/test/tint/builtins/gen/var/length/7b4741.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/length/7b4741.wgsl.expected.ir.fxc.hlsl
index 0ba40c6..62c0847 100644
--- a/test/tint/builtins/gen/var/length/7b4741.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/length/7b4741.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,36 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+void length_7b4741() {
+  float res = 0.0f;
+}
+
+void fragment_main() {
+  length_7b4741();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  length_7b4741();
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  length_7b4741();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  vertex_main_outputs v_2 = {v_1.pos};
+  return v_2;
+}
+
diff --git a/test/tint/builtins/gen/var/length/936ad5.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/length/936ad5.wgsl.expected.ir.dxc.hlsl
index 0ba40c6..ab18a7c 100644
--- a/test/tint/builtins/gen/var/length/936ad5.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/length/936ad5.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,36 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+void length_936ad5() {
+  float res = 0.0f;
+}
+
+void fragment_main() {
+  length_936ad5();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  length_936ad5();
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  length_936ad5();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  vertex_main_outputs v_2 = {v_1.pos};
+  return v_2;
+}
+
diff --git a/test/tint/builtins/gen/var/length/936ad5.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/length/936ad5.wgsl.expected.ir.fxc.hlsl
index 0ba40c6..ab18a7c 100644
--- a/test/tint/builtins/gen/var/length/936ad5.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/length/936ad5.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,36 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+void length_936ad5() {
+  float res = 0.0f;
+}
+
+void fragment_main() {
+  length_936ad5();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  length_936ad5();
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  length_936ad5();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  vertex_main_outputs v_2 = {v_1.pos};
+  return v_2;
+}
+
diff --git a/test/tint/builtins/gen/var/length/afde8b.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/length/afde8b.wgsl.expected.ir.dxc.hlsl
index 0ba40c6..bfb5a8a 100644
--- a/test/tint/builtins/gen/var/length/afde8b.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/length/afde8b.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,43 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  float prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation float VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+float length_afde8b() {
+  float2 arg_0 = (0.0f).xx;
+  float res = length(arg_0);
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store(0u, asuint(length_afde8b()));
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store(0u, asuint(length_afde8b()));
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = length_afde8b();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
diff --git a/test/tint/builtins/gen/var/length/afde8b.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/length/afde8b.wgsl.expected.ir.fxc.hlsl
index 0ba40c6..bfb5a8a 100644
--- a/test/tint/builtins/gen/var/length/afde8b.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/length/afde8b.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,43 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  float prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation float VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+float length_afde8b() {
+  float2 arg_0 = (0.0f).xx;
+  float res = length(arg_0);
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store(0u, asuint(length_afde8b()));
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store(0u, asuint(length_afde8b()));
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = length_afde8b();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
diff --git a/test/tint/builtins/gen/var/length/ba16d6.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/length/ba16d6.wgsl.expected.ir.dxc.hlsl
index 0ba40c6..821464b 100644
--- a/test/tint/builtins/gen/var/length/ba16d6.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/length/ba16d6.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,43 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  float16_t prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation float16_t VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+float16_t length_ba16d6() {
+  vector<float16_t, 3> arg_0 = (float16_t(0.0h)).xxx;
+  float16_t res = length(arg_0);
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store<float16_t>(0u, length_ba16d6());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store<float16_t>(0u, length_ba16d6());
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = length_ba16d6();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
diff --git a/test/tint/builtins/gen/var/length/ba16d6.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/length/ba16d6.wgsl.expected.ir.fxc.hlsl
index 0ba40c6..036dc49 100644
--- a/test/tint/builtins/gen/var/length/ba16d6.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/length/ba16d6.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,48 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct VertexOutput {
+  float4 pos;
+  float16_t prevent_dce;
+};
+
+struct vertex_main_outputs {
+  nointerpolation float16_t VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+float16_t length_ba16d6() {
+  vector<float16_t, 3> arg_0 = (float16_t(0.0h)).xxx;
+  float16_t res = length(arg_0);
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store<float16_t>(0u, length_ba16d6());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store<float16_t>(0u, length_ba16d6());
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = length_ba16d6();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
+FXC validation failure:
+c:\src\dawn\Shader@0x0000018D94C1D4F0(3,3-11): error X3000: unrecognized identifier 'float16_t'
+
diff --git a/test/tint/builtins/gen/var/length/becebf.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/length/becebf.wgsl.expected.ir.dxc.hlsl
index 0ba40c6..7640c2c 100644
--- a/test/tint/builtins/gen/var/length/becebf.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/length/becebf.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,43 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  float prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation float VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+float length_becebf() {
+  float4 arg_0 = (0.0f).xxxx;
+  float res = length(arg_0);
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store(0u, asuint(length_becebf()));
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store(0u, asuint(length_becebf()));
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = length_becebf();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
diff --git a/test/tint/builtins/gen/var/length/becebf.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/length/becebf.wgsl.expected.ir.fxc.hlsl
index 0ba40c6..7640c2c 100644
--- a/test/tint/builtins/gen/var/length/becebf.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/length/becebf.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,43 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  float prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation float VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+float length_becebf() {
+  float4 arg_0 = (0.0f).xxxx;
+  float res = length(arg_0);
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store(0u, asuint(length_becebf()));
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store(0u, asuint(length_becebf()));
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = length_becebf();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
diff --git a/test/tint/builtins/gen/var/length/c158da.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/length/c158da.wgsl.expected.ir.dxc.hlsl
index 0ba40c6..24d6fe8 100644
--- a/test/tint/builtins/gen/var/length/c158da.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/length/c158da.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,43 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  float16_t prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation float16_t VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+float16_t length_c158da() {
+  float16_t arg_0 = float16_t(0.0h);
+  float16_t res = length(arg_0);
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store<float16_t>(0u, length_c158da());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store<float16_t>(0u, length_c158da());
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = length_c158da();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
diff --git a/test/tint/builtins/gen/var/length/c158da.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/length/c158da.wgsl.expected.ir.fxc.hlsl
index 0ba40c6..3dacdef 100644
--- a/test/tint/builtins/gen/var/length/c158da.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/length/c158da.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,48 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct VertexOutput {
+  float4 pos;
+  float16_t prevent_dce;
+};
+
+struct vertex_main_outputs {
+  nointerpolation float16_t VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+float16_t length_c158da() {
+  float16_t arg_0 = float16_t(0.0h);
+  float16_t res = length(arg_0);
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store<float16_t>(0u, length_c158da());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store<float16_t>(0u, length_c158da());
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = length_c158da();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
+FXC validation failure:
+c:\src\dawn\Shader@0x0000020652D654E0(3,3-11): error X3000: unrecognized identifier 'float16_t'
+
diff --git a/test/tint/builtins/gen/var/length/c2c544.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/length/c2c544.wgsl.expected.ir.dxc.hlsl
index 0ba40c6..ed11e8a 100644
--- a/test/tint/builtins/gen/var/length/c2c544.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/length/c2c544.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,36 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+void length_c2c544() {
+  float res = 0.0f;
+}
+
+void fragment_main() {
+  length_c2c544();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  length_c2c544();
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  length_c2c544();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  vertex_main_outputs v_2 = {v_1.pos};
+  return v_2;
+}
+
diff --git a/test/tint/builtins/gen/var/length/c2c544.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/length/c2c544.wgsl.expected.ir.fxc.hlsl
index 0ba40c6..ed11e8a 100644
--- a/test/tint/builtins/gen/var/length/c2c544.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/length/c2c544.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,36 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+void length_c2c544() {
+  float res = 0.0f;
+}
+
+void fragment_main() {
+  length_c2c544();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  length_c2c544();
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  length_c2c544();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  vertex_main_outputs v_2 = {v_1.pos};
+  return v_2;
+}
+
diff --git a/test/tint/builtins/gen/var/log/3da25a.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/log/3da25a.wgsl.expected.ir.dxc.hlsl
index 0ba40c6..01a9206 100644
--- a/test/tint/builtins/gen/var/log/3da25a.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/log/3da25a.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,43 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  float4 prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation float4 VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+float4 log_3da25a() {
+  float4 arg_0 = (1.0f).xxxx;
+  float4 res = log(arg_0);
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store4(0u, asuint(log_3da25a()));
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store4(0u, asuint(log_3da25a()));
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = log_3da25a();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
diff --git a/test/tint/builtins/gen/var/log/3da25a.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/log/3da25a.wgsl.expected.ir.fxc.hlsl
index 0ba40c6..01a9206 100644
--- a/test/tint/builtins/gen/var/log/3da25a.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/log/3da25a.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,43 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  float4 prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation float4 VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+float4 log_3da25a() {
+  float4 arg_0 = (1.0f).xxxx;
+  float4 res = log(arg_0);
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store4(0u, asuint(log_3da25a()));
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store4(0u, asuint(log_3da25a()));
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = log_3da25a();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
diff --git a/test/tint/builtins/gen/var/log/655989.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/log/655989.wgsl.expected.ir.dxc.hlsl
index 0ba40c6..1ac53eb 100644
--- a/test/tint/builtins/gen/var/log/655989.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/log/655989.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,36 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+void log_655989() {
+  float res = 0.0f;
+}
+
+void fragment_main() {
+  log_655989();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  log_655989();
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  log_655989();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  vertex_main_outputs v_2 = {v_1.pos};
+  return v_2;
+}
+
diff --git a/test/tint/builtins/gen/var/log/655989.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/log/655989.wgsl.expected.ir.fxc.hlsl
index 0ba40c6..1ac53eb 100644
--- a/test/tint/builtins/gen/var/log/655989.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/log/655989.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,36 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+void log_655989() {
+  float res = 0.0f;
+}
+
+void fragment_main() {
+  log_655989();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  log_655989();
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  log_655989();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  vertex_main_outputs v_2 = {v_1.pos};
+  return v_2;
+}
+
diff --git a/test/tint/builtins/gen/var/log/697e1d.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/log/697e1d.wgsl.expected.ir.dxc.hlsl
index 0ba40c6..8d3db5e 100644
--- a/test/tint/builtins/gen/var/log/697e1d.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/log/697e1d.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,36 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+void log_697e1d() {
+  float4 res = (0.0f).xxxx;
+}
+
+void fragment_main() {
+  log_697e1d();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  log_697e1d();
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  log_697e1d();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  vertex_main_outputs v_2 = {v_1.pos};
+  return v_2;
+}
+
diff --git a/test/tint/builtins/gen/var/log/697e1d.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/log/697e1d.wgsl.expected.ir.fxc.hlsl
index 0ba40c6..8d3db5e 100644
--- a/test/tint/builtins/gen/var/log/697e1d.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/log/697e1d.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,36 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+void log_697e1d() {
+  float4 res = (0.0f).xxxx;
+}
+
+void fragment_main() {
+  log_697e1d();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  log_697e1d();
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  log_697e1d();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  vertex_main_outputs v_2 = {v_1.pos};
+  return v_2;
+}
+
diff --git a/test/tint/builtins/gen/var/log/6ff86f.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/log/6ff86f.wgsl.expected.ir.dxc.hlsl
index 0ba40c6..2f862a8 100644
--- a/test/tint/builtins/gen/var/log/6ff86f.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/log/6ff86f.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,43 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  vector<float16_t, 3> prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation vector<float16_t, 3> VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+vector<float16_t, 3> log_6ff86f() {
+  vector<float16_t, 3> arg_0 = (float16_t(1.0h)).xxx;
+  vector<float16_t, 3> res = log(arg_0);
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store<vector<float16_t, 3> >(0u, log_6ff86f());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store<vector<float16_t, 3> >(0u, log_6ff86f());
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = log_6ff86f();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
diff --git a/test/tint/builtins/gen/var/log/6ff86f.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/log/6ff86f.wgsl.expected.ir.fxc.hlsl
index 0ba40c6..fcfea12 100644
--- a/test/tint/builtins/gen/var/log/6ff86f.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/log/6ff86f.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,48 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct VertexOutput {
+  float4 pos;
+  vector<float16_t, 3> prevent_dce;
+};
+
+struct vertex_main_outputs {
+  nointerpolation vector<float16_t, 3> VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+vector<float16_t, 3> log_6ff86f() {
+  vector<float16_t, 3> arg_0 = (float16_t(1.0h)).xxx;
+  vector<float16_t, 3> res = log(arg_0);
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store<vector<float16_t, 3> >(0u, log_6ff86f());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store<vector<float16_t, 3> >(0u, log_6ff86f());
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = log_6ff86f();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
+FXC validation failure:
+c:\src\dawn\Shader@0x000001D603A40830(3,10-18): error X3000: syntax error: unexpected token 'float16_t'
+
diff --git a/test/tint/builtins/gen/var/log/7114a6.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/log/7114a6.wgsl.expected.ir.dxc.hlsl
index 0ba40c6..6873931 100644
--- a/test/tint/builtins/gen/var/log/7114a6.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/log/7114a6.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,43 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  float prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation float VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+float log_7114a6() {
+  float arg_0 = 1.0f;
+  float res = log(arg_0);
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store(0u, asuint(log_7114a6()));
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store(0u, asuint(log_7114a6()));
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = log_7114a6();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
diff --git a/test/tint/builtins/gen/var/log/7114a6.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/log/7114a6.wgsl.expected.ir.fxc.hlsl
index 0ba40c6..6873931 100644
--- a/test/tint/builtins/gen/var/log/7114a6.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/log/7114a6.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,43 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  float prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation float VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+float log_7114a6() {
+  float arg_0 = 1.0f;
+  float res = log(arg_0);
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store(0u, asuint(log_7114a6()));
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store(0u, asuint(log_7114a6()));
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = log_7114a6();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
diff --git a/test/tint/builtins/gen/var/log/8f0e32.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/log/8f0e32.wgsl.expected.ir.dxc.hlsl
index 0ba40c6..91622cc 100644
--- a/test/tint/builtins/gen/var/log/8f0e32.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/log/8f0e32.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,43 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  vector<float16_t, 2> prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation vector<float16_t, 2> VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+vector<float16_t, 2> log_8f0e32() {
+  vector<float16_t, 2> arg_0 = (float16_t(1.0h)).xx;
+  vector<float16_t, 2> res = log(arg_0);
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store<vector<float16_t, 2> >(0u, log_8f0e32());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store<vector<float16_t, 2> >(0u, log_8f0e32());
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = log_8f0e32();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
diff --git a/test/tint/builtins/gen/var/log/8f0e32.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/log/8f0e32.wgsl.expected.ir.fxc.hlsl
index 0ba40c6..b6eac59 100644
--- a/test/tint/builtins/gen/var/log/8f0e32.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/log/8f0e32.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,48 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct VertexOutput {
+  float4 pos;
+  vector<float16_t, 2> prevent_dce;
+};
+
+struct vertex_main_outputs {
+  nointerpolation vector<float16_t, 2> VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+vector<float16_t, 2> log_8f0e32() {
+  vector<float16_t, 2> arg_0 = (float16_t(1.0h)).xx;
+  vector<float16_t, 2> res = log(arg_0);
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store<vector<float16_t, 2> >(0u, log_8f0e32());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store<vector<float16_t, 2> >(0u, log_8f0e32());
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = log_8f0e32();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
+FXC validation failure:
+c:\src\dawn\Shader@0x0000026075B48170(3,10-18): error X3000: syntax error: unexpected token 'float16_t'
+
diff --git a/test/tint/builtins/gen/var/log/b2ce28.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/log/b2ce28.wgsl.expected.ir.dxc.hlsl
index 0ba40c6..e3b1de8 100644
--- a/test/tint/builtins/gen/var/log/b2ce28.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/log/b2ce28.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,43 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  float2 prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation float2 VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+float2 log_b2ce28() {
+  float2 arg_0 = (1.0f).xx;
+  float2 res = log(arg_0);
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store2(0u, asuint(log_b2ce28()));
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store2(0u, asuint(log_b2ce28()));
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = log_b2ce28();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
diff --git a/test/tint/builtins/gen/var/log/b2ce28.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/log/b2ce28.wgsl.expected.ir.fxc.hlsl
index 0ba40c6..e3b1de8 100644
--- a/test/tint/builtins/gen/var/log/b2ce28.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/log/b2ce28.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,43 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  float2 prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation float2 VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+float2 log_b2ce28() {
+  float2 arg_0 = (1.0f).xx;
+  float2 res = log(arg_0);
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store2(0u, asuint(log_b2ce28()));
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store2(0u, asuint(log_b2ce28()));
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = log_b2ce28();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
diff --git a/test/tint/builtins/gen/var/log/b8088d.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/log/b8088d.wgsl.expected.ir.dxc.hlsl
index 0ba40c6..3250637 100644
--- a/test/tint/builtins/gen/var/log/b8088d.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/log/b8088d.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,36 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+void log_b8088d() {
+  float3 res = (0.0f).xxx;
+}
+
+void fragment_main() {
+  log_b8088d();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  log_b8088d();
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  log_b8088d();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  vertex_main_outputs v_2 = {v_1.pos};
+  return v_2;
+}
+
diff --git a/test/tint/builtins/gen/var/log/b8088d.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/log/b8088d.wgsl.expected.ir.fxc.hlsl
index 0ba40c6..3250637 100644
--- a/test/tint/builtins/gen/var/log/b8088d.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/log/b8088d.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,36 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+void log_b8088d() {
+  float3 res = (0.0f).xxx;
+}
+
+void fragment_main() {
+  log_b8088d();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  log_b8088d();
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  log_b8088d();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  vertex_main_outputs v_2 = {v_1.pos};
+  return v_2;
+}
+
diff --git a/test/tint/builtins/gen/var/log/c9f489.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/log/c9f489.wgsl.expected.ir.dxc.hlsl
index 0ba40c6..3743eb0 100644
--- a/test/tint/builtins/gen/var/log/c9f489.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/log/c9f489.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,43 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  float16_t prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation float16_t VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+float16_t log_c9f489() {
+  float16_t arg_0 = float16_t(1.0h);
+  float16_t res = log(arg_0);
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store<float16_t>(0u, log_c9f489());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store<float16_t>(0u, log_c9f489());
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = log_c9f489();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
diff --git a/test/tint/builtins/gen/var/log/c9f489.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/log/c9f489.wgsl.expected.ir.fxc.hlsl
index 0ba40c6..dc90b5b 100644
--- a/test/tint/builtins/gen/var/log/c9f489.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/log/c9f489.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,48 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct VertexOutput {
+  float4 pos;
+  float16_t prevent_dce;
+};
+
+struct vertex_main_outputs {
+  nointerpolation float16_t VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+float16_t log_c9f489() {
+  float16_t arg_0 = float16_t(1.0h);
+  float16_t res = log(arg_0);
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store<float16_t>(0u, log_c9f489());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store<float16_t>(0u, log_c9f489());
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = log_c9f489();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
+FXC validation failure:
+c:\src\dawn\Shader@0x000002096A056E90(3,3-11): error X3000: unrecognized identifier 'float16_t'
+
diff --git a/test/tint/builtins/gen/var/log/cdbdc1.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/log/cdbdc1.wgsl.expected.ir.dxc.hlsl
index 0ba40c6..6f392e8 100644
--- a/test/tint/builtins/gen/var/log/cdbdc1.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/log/cdbdc1.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,43 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  vector<float16_t, 4> prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation vector<float16_t, 4> VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+vector<float16_t, 4> log_cdbdc1() {
+  vector<float16_t, 4> arg_0 = (float16_t(1.0h)).xxxx;
+  vector<float16_t, 4> res = log(arg_0);
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store<vector<float16_t, 4> >(0u, log_cdbdc1());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store<vector<float16_t, 4> >(0u, log_cdbdc1());
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = log_cdbdc1();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
diff --git a/test/tint/builtins/gen/var/log/cdbdc1.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/log/cdbdc1.wgsl.expected.ir.fxc.hlsl
index 0ba40c6..ca929be 100644
--- a/test/tint/builtins/gen/var/log/cdbdc1.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/log/cdbdc1.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,48 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct VertexOutput {
+  float4 pos;
+  vector<float16_t, 4> prevent_dce;
+};
+
+struct vertex_main_outputs {
+  nointerpolation vector<float16_t, 4> VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+vector<float16_t, 4> log_cdbdc1() {
+  vector<float16_t, 4> arg_0 = (float16_t(1.0h)).xxxx;
+  vector<float16_t, 4> res = log(arg_0);
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store<vector<float16_t, 4> >(0u, log_cdbdc1());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store<vector<float16_t, 4> >(0u, log_cdbdc1());
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = log_cdbdc1();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
+FXC validation failure:
+c:\src\dawn\Shader@0x00000208478C4DF0(3,10-18): error X3000: syntax error: unexpected token 'float16_t'
+
diff --git a/test/tint/builtins/gen/var/log/f4c570.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/log/f4c570.wgsl.expected.ir.dxc.hlsl
index 0ba40c6..9ab6b55 100644
--- a/test/tint/builtins/gen/var/log/f4c570.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/log/f4c570.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,43 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  float3 prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation float3 VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+float3 log_f4c570() {
+  float3 arg_0 = (1.0f).xxx;
+  float3 res = log(arg_0);
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store3(0u, asuint(log_f4c570()));
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store3(0u, asuint(log_f4c570()));
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = log_f4c570();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
diff --git a/test/tint/builtins/gen/var/log/f4c570.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/log/f4c570.wgsl.expected.ir.fxc.hlsl
index 0ba40c6..9ab6b55 100644
--- a/test/tint/builtins/gen/var/log/f4c570.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/log/f4c570.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,43 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  float3 prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation float3 VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+float3 log_f4c570() {
+  float3 arg_0 = (1.0f).xxx;
+  float3 res = log(arg_0);
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store3(0u, asuint(log_f4c570()));
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store3(0u, asuint(log_f4c570()));
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = log_f4c570();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
diff --git a/test/tint/builtins/gen/var/log/f60cc7.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/log/f60cc7.wgsl.expected.ir.dxc.hlsl
index 0ba40c6..00d0098 100644
--- a/test/tint/builtins/gen/var/log/f60cc7.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/log/f60cc7.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,36 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+void log_f60cc7() {
+  float2 res = (0.0f).xx;
+}
+
+void fragment_main() {
+  log_f60cc7();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  log_f60cc7();
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  log_f60cc7();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  vertex_main_outputs v_2 = {v_1.pos};
+  return v_2;
+}
+
diff --git a/test/tint/builtins/gen/var/log/f60cc7.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/log/f60cc7.wgsl.expected.ir.fxc.hlsl
index 0ba40c6..00d0098 100644
--- a/test/tint/builtins/gen/var/log/f60cc7.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/log/f60cc7.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,36 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+void log_f60cc7() {
+  float2 res = (0.0f).xx;
+}
+
+void fragment_main() {
+  log_f60cc7();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  log_f60cc7();
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  log_f60cc7();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  vertex_main_outputs v_2 = {v_1.pos};
+  return v_2;
+}
+
diff --git a/test/tint/builtins/gen/var/log2/0fbd39.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/log2/0fbd39.wgsl.expected.ir.dxc.hlsl
index 0ba40c6..7ef7b6f 100644
--- a/test/tint/builtins/gen/var/log2/0fbd39.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/log2/0fbd39.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,36 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+void log2_0fbd39() {
+  float3 res = (0.0f).xxx;
+}
+
+void fragment_main() {
+  log2_0fbd39();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  log2_0fbd39();
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  log2_0fbd39();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  vertex_main_outputs v_2 = {v_1.pos};
+  return v_2;
+}
+
diff --git a/test/tint/builtins/gen/var/log2/0fbd39.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/log2/0fbd39.wgsl.expected.ir.fxc.hlsl
index 0ba40c6..7ef7b6f 100644
--- a/test/tint/builtins/gen/var/log2/0fbd39.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/log2/0fbd39.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,36 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+void log2_0fbd39() {
+  float3 res = (0.0f).xxx;
+}
+
+void fragment_main() {
+  log2_0fbd39();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  log2_0fbd39();
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  log2_0fbd39();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  vertex_main_outputs v_2 = {v_1.pos};
+  return v_2;
+}
+
diff --git a/test/tint/builtins/gen/var/log2/38b478.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/log2/38b478.wgsl.expected.ir.dxc.hlsl
index 0ba40c6..67f0a5c 100644
--- a/test/tint/builtins/gen/var/log2/38b478.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/log2/38b478.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,43 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  vector<float16_t, 3> prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation vector<float16_t, 3> VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+vector<float16_t, 3> log2_38b478() {
+  vector<float16_t, 3> arg_0 = (float16_t(1.0h)).xxx;
+  vector<float16_t, 3> res = log2(arg_0);
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store<vector<float16_t, 3> >(0u, log2_38b478());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store<vector<float16_t, 3> >(0u, log2_38b478());
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = log2_38b478();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
diff --git a/test/tint/builtins/gen/var/log2/38b478.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/log2/38b478.wgsl.expected.ir.fxc.hlsl
index 0ba40c6..ca81365 100644
--- a/test/tint/builtins/gen/var/log2/38b478.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/log2/38b478.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,48 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct VertexOutput {
+  float4 pos;
+  vector<float16_t, 3> prevent_dce;
+};
+
+struct vertex_main_outputs {
+  nointerpolation vector<float16_t, 3> VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+vector<float16_t, 3> log2_38b478() {
+  vector<float16_t, 3> arg_0 = (float16_t(1.0h)).xxx;
+  vector<float16_t, 3> res = log2(arg_0);
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store<vector<float16_t, 3> >(0u, log2_38b478());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store<vector<float16_t, 3> >(0u, log2_38b478());
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = log2_38b478();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
+FXC validation failure:
+c:\src\dawn\Shader@0x0000025E08C36CA0(3,10-18): error X3000: syntax error: unexpected token 'float16_t'
+
diff --git a/test/tint/builtins/gen/var/log2/4036ed.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/log2/4036ed.wgsl.expected.ir.dxc.hlsl
index 0ba40c6..1c309e0 100644
--- a/test/tint/builtins/gen/var/log2/4036ed.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/log2/4036ed.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,43 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  float prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation float VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+float log2_4036ed() {
+  float arg_0 = 1.0f;
+  float res = log2(arg_0);
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store(0u, asuint(log2_4036ed()));
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store(0u, asuint(log2_4036ed()));
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = log2_4036ed();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
diff --git a/test/tint/builtins/gen/var/log2/4036ed.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/log2/4036ed.wgsl.expected.ir.fxc.hlsl
index 0ba40c6..1c309e0 100644
--- a/test/tint/builtins/gen/var/log2/4036ed.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/log2/4036ed.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,43 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  float prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation float VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+float log2_4036ed() {
+  float arg_0 = 1.0f;
+  float res = log2(arg_0);
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store(0u, asuint(log2_4036ed()));
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store(0u, asuint(log2_4036ed()));
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = log2_4036ed();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
diff --git a/test/tint/builtins/gen/var/log2/5b464b.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/log2/5b464b.wgsl.expected.ir.dxc.hlsl
index 0ba40c6..15f49a4 100644
--- a/test/tint/builtins/gen/var/log2/5b464b.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/log2/5b464b.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,36 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+void log2_5b464b() {
+  float res = 0.0f;
+}
+
+void fragment_main() {
+  log2_5b464b();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  log2_5b464b();
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  log2_5b464b();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  vertex_main_outputs v_2 = {v_1.pos};
+  return v_2;
+}
+
diff --git a/test/tint/builtins/gen/var/log2/5b464b.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/log2/5b464b.wgsl.expected.ir.fxc.hlsl
index 0ba40c6..15f49a4 100644
--- a/test/tint/builtins/gen/var/log2/5b464b.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/log2/5b464b.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,36 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+void log2_5b464b() {
+  float res = 0.0f;
+}
+
+void fragment_main() {
+  log2_5b464b();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  log2_5b464b();
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  log2_5b464b();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  vertex_main_outputs v_2 = {v_1.pos};
+  return v_2;
+}
+
diff --git a/test/tint/builtins/gen/var/log2/6b8954.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/log2/6b8954.wgsl.expected.ir.dxc.hlsl
index 0ba40c6..0401edd 100644
--- a/test/tint/builtins/gen/var/log2/6b8954.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/log2/6b8954.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,36 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+void log2_6b8954() {
+  float2 res = (0.0f).xx;
+}
+
+void fragment_main() {
+  log2_6b8954();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  log2_6b8954();
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  log2_6b8954();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  vertex_main_outputs v_2 = {v_1.pos};
+  return v_2;
+}
+
diff --git a/test/tint/builtins/gen/var/log2/6b8954.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/log2/6b8954.wgsl.expected.ir.fxc.hlsl
index 0ba40c6..0401edd 100644
--- a/test/tint/builtins/gen/var/log2/6b8954.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/log2/6b8954.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,36 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+void log2_6b8954() {
+  float2 res = (0.0f).xx;
+}
+
+void fragment_main() {
+  log2_6b8954();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  log2_6b8954();
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  log2_6b8954();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  vertex_main_outputs v_2 = {v_1.pos};
+  return v_2;
+}
+
diff --git a/test/tint/builtins/gen/var/log2/776088.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/log2/776088.wgsl.expected.ir.dxc.hlsl
index 0ba40c6..f93f834 100644
--- a/test/tint/builtins/gen/var/log2/776088.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/log2/776088.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,43 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  vector<float16_t, 4> prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation vector<float16_t, 4> VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+vector<float16_t, 4> log2_776088() {
+  vector<float16_t, 4> arg_0 = (float16_t(1.0h)).xxxx;
+  vector<float16_t, 4> res = log2(arg_0);
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store<vector<float16_t, 4> >(0u, log2_776088());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store<vector<float16_t, 4> >(0u, log2_776088());
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = log2_776088();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
diff --git a/test/tint/builtins/gen/var/log2/776088.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/log2/776088.wgsl.expected.ir.fxc.hlsl
index 0ba40c6..045256b 100644
--- a/test/tint/builtins/gen/var/log2/776088.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/log2/776088.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,48 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct VertexOutput {
+  float4 pos;
+  vector<float16_t, 4> prevent_dce;
+};
+
+struct vertex_main_outputs {
+  nointerpolation vector<float16_t, 4> VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+vector<float16_t, 4> log2_776088() {
+  vector<float16_t, 4> arg_0 = (float16_t(1.0h)).xxxx;
+  vector<float16_t, 4> res = log2(arg_0);
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store<vector<float16_t, 4> >(0u, log2_776088());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store<vector<float16_t, 4> >(0u, log2_776088());
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = log2_776088();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
+FXC validation failure:
+c:\src\dawn\Shader@0x00000236F5D2CD60(3,10-18): error X3000: syntax error: unexpected token 'float16_t'
+
diff --git a/test/tint/builtins/gen/var/log2/8c10b3.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/log2/8c10b3.wgsl.expected.ir.dxc.hlsl
index 0ba40c6..dd2927f 100644
--- a/test/tint/builtins/gen/var/log2/8c10b3.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/log2/8c10b3.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,43 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  float16_t prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation float16_t VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+float16_t log2_8c10b3() {
+  float16_t arg_0 = float16_t(1.0h);
+  float16_t res = log2(arg_0);
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store<float16_t>(0u, log2_8c10b3());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store<float16_t>(0u, log2_8c10b3());
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = log2_8c10b3();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
diff --git a/test/tint/builtins/gen/var/log2/8c10b3.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/log2/8c10b3.wgsl.expected.ir.fxc.hlsl
index 0ba40c6..50036b1 100644
--- a/test/tint/builtins/gen/var/log2/8c10b3.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/log2/8c10b3.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,48 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct VertexOutput {
+  float4 pos;
+  float16_t prevent_dce;
+};
+
+struct vertex_main_outputs {
+  nointerpolation float16_t VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+float16_t log2_8c10b3() {
+  float16_t arg_0 = float16_t(1.0h);
+  float16_t res = log2(arg_0);
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store<float16_t>(0u, log2_8c10b3());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store<float16_t>(0u, log2_8c10b3());
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = log2_8c10b3();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
+FXC validation failure:
+c:\src\dawn\Shader@0x0000021EE5E520A0(3,3-11): error X3000: unrecognized identifier 'float16_t'
+
diff --git a/test/tint/builtins/gen/var/log2/902988.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/log2/902988.wgsl.expected.ir.dxc.hlsl
index 0ba40c6..9b6d198 100644
--- a/test/tint/builtins/gen/var/log2/902988.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/log2/902988.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,43 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  float4 prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation float4 VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+float4 log2_902988() {
+  float4 arg_0 = (1.0f).xxxx;
+  float4 res = log2(arg_0);
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store4(0u, asuint(log2_902988()));
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store4(0u, asuint(log2_902988()));
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = log2_902988();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
diff --git a/test/tint/builtins/gen/var/log2/902988.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/log2/902988.wgsl.expected.ir.fxc.hlsl
index 0ba40c6..9b6d198 100644
--- a/test/tint/builtins/gen/var/log2/902988.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/log2/902988.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,43 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  float4 prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation float4 VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+float4 log2_902988() {
+  float4 arg_0 = (1.0f).xxxx;
+  float4 res = log2(arg_0);
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store4(0u, asuint(log2_902988()));
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store4(0u, asuint(log2_902988()));
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = log2_902988();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
diff --git a/test/tint/builtins/gen/var/log2/a52bbb.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/log2/a52bbb.wgsl.expected.ir.dxc.hlsl
index 0ba40c6..17c5fa6 100644
--- a/test/tint/builtins/gen/var/log2/a52bbb.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/log2/a52bbb.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,36 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+void log2_a52bbb() {
+  float4 res = (0.0f).xxxx;
+}
+
+void fragment_main() {
+  log2_a52bbb();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  log2_a52bbb();
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  log2_a52bbb();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  vertex_main_outputs v_2 = {v_1.pos};
+  return v_2;
+}
+
diff --git a/test/tint/builtins/gen/var/log2/a52bbb.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/log2/a52bbb.wgsl.expected.ir.fxc.hlsl
index 0ba40c6..17c5fa6 100644
--- a/test/tint/builtins/gen/var/log2/a52bbb.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/log2/a52bbb.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,36 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+void log2_a52bbb() {
+  float4 res = (0.0f).xxxx;
+}
+
+void fragment_main() {
+  log2_a52bbb();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  log2_a52bbb();
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  log2_a52bbb();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  vertex_main_outputs v_2 = {v_1.pos};
+  return v_2;
+}
+
diff --git a/test/tint/builtins/gen/var/log2/adb233.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/log2/adb233.wgsl.expected.ir.dxc.hlsl
index 0ba40c6..eeaea53 100644
--- a/test/tint/builtins/gen/var/log2/adb233.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/log2/adb233.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,43 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  float3 prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation float3 VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+float3 log2_adb233() {
+  float3 arg_0 = (1.0f).xxx;
+  float3 res = log2(arg_0);
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store3(0u, asuint(log2_adb233()));
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store3(0u, asuint(log2_adb233()));
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = log2_adb233();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
diff --git a/test/tint/builtins/gen/var/log2/adb233.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/log2/adb233.wgsl.expected.ir.fxc.hlsl
index 0ba40c6..eeaea53 100644
--- a/test/tint/builtins/gen/var/log2/adb233.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/log2/adb233.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,43 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  float3 prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation float3 VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+float3 log2_adb233() {
+  float3 arg_0 = (1.0f).xxx;
+  float3 res = log2(arg_0);
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store3(0u, asuint(log2_adb233()));
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store3(0u, asuint(log2_adb233()));
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = log2_adb233();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
diff --git a/test/tint/builtins/gen/var/log2/aea659.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/log2/aea659.wgsl.expected.ir.dxc.hlsl
index 0ba40c6..ba3b8bb 100644
--- a/test/tint/builtins/gen/var/log2/aea659.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/log2/aea659.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,43 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  float2 prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation float2 VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+float2 log2_aea659() {
+  float2 arg_0 = (1.0f).xx;
+  float2 res = log2(arg_0);
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store2(0u, asuint(log2_aea659()));
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store2(0u, asuint(log2_aea659()));
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = log2_aea659();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
diff --git a/test/tint/builtins/gen/var/log2/aea659.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/log2/aea659.wgsl.expected.ir.fxc.hlsl
index 0ba40c6..ba3b8bb 100644
--- a/test/tint/builtins/gen/var/log2/aea659.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/log2/aea659.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,43 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  float2 prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation float2 VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+float2 log2_aea659() {
+  float2 arg_0 = (1.0f).xx;
+  float2 res = log2(arg_0);
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store2(0u, asuint(log2_aea659()));
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store2(0u, asuint(log2_aea659()));
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = log2_aea659();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
diff --git a/test/tint/builtins/gen/var/log2/fb9f0b.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/log2/fb9f0b.wgsl.expected.ir.dxc.hlsl
index 0ba40c6..38c7e97 100644
--- a/test/tint/builtins/gen/var/log2/fb9f0b.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/log2/fb9f0b.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,43 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  vector<float16_t, 2> prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation vector<float16_t, 2> VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+vector<float16_t, 2> log2_fb9f0b() {
+  vector<float16_t, 2> arg_0 = (float16_t(1.0h)).xx;
+  vector<float16_t, 2> res = log2(arg_0);
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store<vector<float16_t, 2> >(0u, log2_fb9f0b());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store<vector<float16_t, 2> >(0u, log2_fb9f0b());
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = log2_fb9f0b();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
diff --git a/test/tint/builtins/gen/var/log2/fb9f0b.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/log2/fb9f0b.wgsl.expected.ir.fxc.hlsl
index 0ba40c6..383385f 100644
--- a/test/tint/builtins/gen/var/log2/fb9f0b.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/log2/fb9f0b.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,48 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct VertexOutput {
+  float4 pos;
+  vector<float16_t, 2> prevent_dce;
+};
+
+struct vertex_main_outputs {
+  nointerpolation vector<float16_t, 2> VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+vector<float16_t, 2> log2_fb9f0b() {
+  vector<float16_t, 2> arg_0 = (float16_t(1.0h)).xx;
+  vector<float16_t, 2> res = log2(arg_0);
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store<vector<float16_t, 2> >(0u, log2_fb9f0b());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store<vector<float16_t, 2> >(0u, log2_fb9f0b());
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = log2_fb9f0b();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
+FXC validation failure:
+c:\src\dawn\Shader@0x000002A0011003B0(3,10-18): error X3000: syntax error: unexpected token 'float16_t'
+
diff --git a/test/tint/builtins/gen/var/max/067f3a.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/max/067f3a.wgsl.expected.ir.dxc.hlsl
index 0ba40c6..fc38769 100644
--- a/test/tint/builtins/gen/var/max/067f3a.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/max/067f3a.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,36 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+void max_067f3a() {
+  int2 res = (1).xx;
+}
+
+void fragment_main() {
+  max_067f3a();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  max_067f3a();
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  max_067f3a();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  vertex_main_outputs v_2 = {v_1.pos};
+  return v_2;
+}
+
diff --git a/test/tint/builtins/gen/var/max/067f3a.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/max/067f3a.wgsl.expected.ir.fxc.hlsl
index 0ba40c6..fc38769 100644
--- a/test/tint/builtins/gen/var/max/067f3a.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/max/067f3a.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,36 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+void max_067f3a() {
+  int2 res = (1).xx;
+}
+
+void fragment_main() {
+  max_067f3a();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  max_067f3a();
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  max_067f3a();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  vertex_main_outputs v_2 = {v_1.pos};
+  return v_2;
+}
+
diff --git a/test/tint/builtins/gen/var/max/0c0aae.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/max/0c0aae.wgsl.expected.ir.dxc.hlsl
index 0ba40c6..578a031 100644
--- a/test/tint/builtins/gen/var/max/0c0aae.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/max/0c0aae.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,44 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  uint prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation uint VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+uint max_0c0aae() {
+  uint arg_0 = 1u;
+  uint arg_1 = 1u;
+  uint res = max(arg_0, arg_1);
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store(0u, max_0c0aae());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store(0u, max_0c0aae());
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = max_0c0aae();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
diff --git a/test/tint/builtins/gen/var/max/0c0aae.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/max/0c0aae.wgsl.expected.ir.fxc.hlsl
index 0ba40c6..578a031 100644
--- a/test/tint/builtins/gen/var/max/0c0aae.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/max/0c0aae.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,44 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  uint prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation uint VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+uint max_0c0aae() {
+  uint arg_0 = 1u;
+  uint arg_1 = 1u;
+  uint res = max(arg_0, arg_1);
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store(0u, max_0c0aae());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store(0u, max_0c0aae());
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = max_0c0aae();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
diff --git a/test/tint/builtins/gen/var/max/111ac0.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/max/111ac0.wgsl.expected.ir.dxc.hlsl
index 0ba40c6..a4671f1 100644
--- a/test/tint/builtins/gen/var/max/111ac0.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/max/111ac0.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,44 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  float16_t prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation float16_t VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+float16_t max_111ac0() {
+  float16_t arg_0 = float16_t(1.0h);
+  float16_t arg_1 = float16_t(1.0h);
+  float16_t res = max(arg_0, arg_1);
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store<float16_t>(0u, max_111ac0());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store<float16_t>(0u, max_111ac0());
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = max_111ac0();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
diff --git a/test/tint/builtins/gen/var/max/111ac0.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/max/111ac0.wgsl.expected.ir.fxc.hlsl
index 0ba40c6..27a17e4 100644
--- a/test/tint/builtins/gen/var/max/111ac0.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/max/111ac0.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,49 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct VertexOutput {
+  float4 pos;
+  float16_t prevent_dce;
+};
+
+struct vertex_main_outputs {
+  nointerpolation float16_t VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+float16_t max_111ac0() {
+  float16_t arg_0 = float16_t(1.0h);
+  float16_t arg_1 = float16_t(1.0h);
+  float16_t res = max(arg_0, arg_1);
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store<float16_t>(0u, max_111ac0());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store<float16_t>(0u, max_111ac0());
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = max_111ac0();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
+FXC validation failure:
+c:\src\dawn\Shader@0x000001B5C2C6C990(3,3-11): error X3000: unrecognized identifier 'float16_t'
+
diff --git a/test/tint/builtins/gen/var/max/19070a.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/max/19070a.wgsl.expected.ir.dxc.hlsl
index 0ba40c6..7c5a50e 100644
--- a/test/tint/builtins/gen/var/max/19070a.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/max/19070a.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,36 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+void max_19070a() {
+  int4 res = (1).xxxx;
+}
+
+void fragment_main() {
+  max_19070a();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  max_19070a();
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  max_19070a();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  vertex_main_outputs v_2 = {v_1.pos};
+  return v_2;
+}
+
diff --git a/test/tint/builtins/gen/var/max/19070a.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/max/19070a.wgsl.expected.ir.fxc.hlsl
index 0ba40c6..7c5a50e 100644
--- a/test/tint/builtins/gen/var/max/19070a.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/max/19070a.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,36 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+void max_19070a() {
+  int4 res = (1).xxxx;
+}
+
+void fragment_main() {
+  max_19070a();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  max_19070a();
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  max_19070a();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  vertex_main_outputs v_2 = {v_1.pos};
+  return v_2;
+}
+
diff --git a/test/tint/builtins/gen/var/max/25eafe.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/max/25eafe.wgsl.expected.ir.dxc.hlsl
index 0ba40c6..ff8b042 100644
--- a/test/tint/builtins/gen/var/max/25eafe.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/max/25eafe.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,44 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  int3 prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation int3 VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+int3 max_25eafe() {
+  int3 arg_0 = (1).xxx;
+  int3 arg_1 = (1).xxx;
+  int3 res = max(arg_0, arg_1);
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store3(0u, asuint(max_25eafe()));
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store3(0u, asuint(max_25eafe()));
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = max_25eafe();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
diff --git a/test/tint/builtins/gen/var/max/25eafe.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/max/25eafe.wgsl.expected.ir.fxc.hlsl
index 0ba40c6..ff8b042 100644
--- a/test/tint/builtins/gen/var/max/25eafe.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/max/25eafe.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,44 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  int3 prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation int3 VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+int3 max_25eafe() {
+  int3 arg_0 = (1).xxx;
+  int3 arg_1 = (1).xxx;
+  int3 res = max(arg_0, arg_1);
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store3(0u, asuint(max_25eafe()));
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store3(0u, asuint(max_25eafe()));
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = max_25eafe();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
diff --git a/test/tint/builtins/gen/var/max/320815.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/max/320815.wgsl.expected.ir.dxc.hlsl
index 0ba40c6..eb49238 100644
--- a/test/tint/builtins/gen/var/max/320815.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/max/320815.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,44 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  uint2 prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation uint2 VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+uint2 max_320815() {
+  uint2 arg_0 = (1u).xx;
+  uint2 arg_1 = (1u).xx;
+  uint2 res = max(arg_0, arg_1);
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store2(0u, max_320815());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store2(0u, max_320815());
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = max_320815();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
diff --git a/test/tint/builtins/gen/var/max/320815.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/max/320815.wgsl.expected.ir.fxc.hlsl
index 0ba40c6..eb49238 100644
--- a/test/tint/builtins/gen/var/max/320815.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/max/320815.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,44 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  uint2 prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation uint2 VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+uint2 max_320815() {
+  uint2 arg_0 = (1u).xx;
+  uint2 arg_1 = (1u).xx;
+  uint2 res = max(arg_0, arg_1);
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store2(0u, max_320815());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store2(0u, max_320815());
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = max_320815();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
diff --git a/test/tint/builtins/gen/var/max/34956e.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/max/34956e.wgsl.expected.ir.dxc.hlsl
index 0ba40c6..3cd9904 100644
--- a/test/tint/builtins/gen/var/max/34956e.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/max/34956e.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,44 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  vector<float16_t, 2> prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation vector<float16_t, 2> VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+vector<float16_t, 2> max_34956e() {
+  vector<float16_t, 2> arg_0 = (float16_t(1.0h)).xx;
+  vector<float16_t, 2> arg_1 = (float16_t(1.0h)).xx;
+  vector<float16_t, 2> res = max(arg_0, arg_1);
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store<vector<float16_t, 2> >(0u, max_34956e());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store<vector<float16_t, 2> >(0u, max_34956e());
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = max_34956e();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
diff --git a/test/tint/builtins/gen/var/max/34956e.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/max/34956e.wgsl.expected.ir.fxc.hlsl
index 0ba40c6..4f6f042 100644
--- a/test/tint/builtins/gen/var/max/34956e.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/max/34956e.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,49 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct VertexOutput {
+  float4 pos;
+  vector<float16_t, 2> prevent_dce;
+};
+
+struct vertex_main_outputs {
+  nointerpolation vector<float16_t, 2> VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+vector<float16_t, 2> max_34956e() {
+  vector<float16_t, 2> arg_0 = (float16_t(1.0h)).xx;
+  vector<float16_t, 2> arg_1 = (float16_t(1.0h)).xx;
+  vector<float16_t, 2> res = max(arg_0, arg_1);
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store<vector<float16_t, 2> >(0u, max_34956e());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store<vector<float16_t, 2> >(0u, max_34956e());
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = max_34956e();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
+FXC validation failure:
+c:\src\dawn\Shader@0x00000249E0D97910(3,10-18): error X3000: syntax error: unexpected token 'float16_t'
+
diff --git a/test/tint/builtins/gen/var/max/445169.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/max/445169.wgsl.expected.ir.dxc.hlsl
index 0ba40c6..ab1e678 100644
--- a/test/tint/builtins/gen/var/max/445169.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/max/445169.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,44 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  vector<float16_t, 3> prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation vector<float16_t, 3> VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+vector<float16_t, 3> max_445169() {
+  vector<float16_t, 3> arg_0 = (float16_t(1.0h)).xxx;
+  vector<float16_t, 3> arg_1 = (float16_t(1.0h)).xxx;
+  vector<float16_t, 3> res = max(arg_0, arg_1);
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store<vector<float16_t, 3> >(0u, max_445169());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store<vector<float16_t, 3> >(0u, max_445169());
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = max_445169();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
diff --git a/test/tint/builtins/gen/var/max/445169.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/max/445169.wgsl.expected.ir.fxc.hlsl
index 0ba40c6..c87eb85 100644
--- a/test/tint/builtins/gen/var/max/445169.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/max/445169.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,49 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct VertexOutput {
+  float4 pos;
+  vector<float16_t, 3> prevent_dce;
+};
+
+struct vertex_main_outputs {
+  nointerpolation vector<float16_t, 3> VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+vector<float16_t, 3> max_445169() {
+  vector<float16_t, 3> arg_0 = (float16_t(1.0h)).xxx;
+  vector<float16_t, 3> arg_1 = (float16_t(1.0h)).xxx;
+  vector<float16_t, 3> res = max(arg_0, arg_1);
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store<vector<float16_t, 3> >(0u, max_445169());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store<vector<float16_t, 3> >(0u, max_445169());
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = max_445169();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
+FXC validation failure:
+c:\src\dawn\Shader@0x00000268916B10A0(3,10-18): error X3000: syntax error: unexpected token 'float16_t'
+
diff --git a/test/tint/builtins/gen/var/max/44a39d.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/max/44a39d.wgsl.expected.ir.dxc.hlsl
index 0ba40c6..72785fc 100644
--- a/test/tint/builtins/gen/var/max/44a39d.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/max/44a39d.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,44 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  float prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation float VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+float max_44a39d() {
+  float arg_0 = 1.0f;
+  float arg_1 = 1.0f;
+  float res = max(arg_0, arg_1);
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store(0u, asuint(max_44a39d()));
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store(0u, asuint(max_44a39d()));
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = max_44a39d();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
diff --git a/test/tint/builtins/gen/var/max/44a39d.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/max/44a39d.wgsl.expected.ir.fxc.hlsl
index 0ba40c6..72785fc 100644
--- a/test/tint/builtins/gen/var/max/44a39d.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/max/44a39d.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,44 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  float prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation float VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+float max_44a39d() {
+  float arg_0 = 1.0f;
+  float arg_1 = 1.0f;
+  float res = max(arg_0, arg_1);
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store(0u, asuint(max_44a39d()));
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store(0u, asuint(max_44a39d()));
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = max_44a39d();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
diff --git a/test/tint/builtins/gen/var/max/453e04.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/max/453e04.wgsl.expected.ir.dxc.hlsl
index 0ba40c6..905ff9b 100644
--- a/test/tint/builtins/gen/var/max/453e04.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/max/453e04.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,44 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  uint4 prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation uint4 VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+uint4 max_453e04() {
+  uint4 arg_0 = (1u).xxxx;
+  uint4 arg_1 = (1u).xxxx;
+  uint4 res = max(arg_0, arg_1);
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store4(0u, max_453e04());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store4(0u, max_453e04());
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = max_453e04();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
diff --git a/test/tint/builtins/gen/var/max/453e04.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/max/453e04.wgsl.expected.ir.fxc.hlsl
index 0ba40c6..905ff9b 100644
--- a/test/tint/builtins/gen/var/max/453e04.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/max/453e04.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,44 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  uint4 prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation uint4 VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+uint4 max_453e04() {
+  uint4 arg_0 = (1u).xxxx;
+  uint4 arg_1 = (1u).xxxx;
+  uint4 res = max(arg_0, arg_1);
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store4(0u, max_453e04());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store4(0u, max_453e04());
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = max_453e04();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
diff --git a/test/tint/builtins/gen/var/max/462050.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/max/462050.wgsl.expected.ir.dxc.hlsl
index 0ba40c6..4ab8d52 100644
--- a/test/tint/builtins/gen/var/max/462050.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/max/462050.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,44 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  float2 prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation float2 VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+float2 max_462050() {
+  float2 arg_0 = (1.0f).xx;
+  float2 arg_1 = (1.0f).xx;
+  float2 res = max(arg_0, arg_1);
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store2(0u, asuint(max_462050()));
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store2(0u, asuint(max_462050()));
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = max_462050();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
diff --git a/test/tint/builtins/gen/var/max/462050.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/max/462050.wgsl.expected.ir.fxc.hlsl
index 0ba40c6..4ab8d52 100644
--- a/test/tint/builtins/gen/var/max/462050.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/max/462050.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,44 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  float2 prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation float2 VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+float2 max_462050() {
+  float2 arg_0 = (1.0f).xx;
+  float2 arg_1 = (1.0f).xx;
+  float2 res = max(arg_0, arg_1);
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store2(0u, asuint(max_462050()));
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store2(0u, asuint(max_462050()));
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = max_462050();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
diff --git a/test/tint/builtins/gen/var/max/482d23.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/max/482d23.wgsl.expected.ir.dxc.hlsl
index 0ba40c6..8e836d3 100644
--- a/test/tint/builtins/gen/var/max/482d23.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/max/482d23.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,36 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+void max_482d23() {
+  int3 res = (1).xxx;
+}
+
+void fragment_main() {
+  max_482d23();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  max_482d23();
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  max_482d23();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  vertex_main_outputs v_2 = {v_1.pos};
+  return v_2;
+}
+
diff --git a/test/tint/builtins/gen/var/max/482d23.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/max/482d23.wgsl.expected.ir.fxc.hlsl
index 0ba40c6..8e836d3 100644
--- a/test/tint/builtins/gen/var/max/482d23.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/max/482d23.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,36 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+void max_482d23() {
+  int3 res = (1).xxx;
+}
+
+void fragment_main() {
+  max_482d23();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  max_482d23();
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  max_482d23();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  vertex_main_outputs v_2 = {v_1.pos};
+  return v_2;
+}
+
diff --git a/test/tint/builtins/gen/var/max/4883ac.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/max/4883ac.wgsl.expected.ir.dxc.hlsl
index 0ba40c6..6c07883 100644
--- a/test/tint/builtins/gen/var/max/4883ac.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/max/4883ac.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,44 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  float3 prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation float3 VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+float3 max_4883ac() {
+  float3 arg_0 = (1.0f).xxx;
+  float3 arg_1 = (1.0f).xxx;
+  float3 res = max(arg_0, arg_1);
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store3(0u, asuint(max_4883ac()));
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store3(0u, asuint(max_4883ac()));
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = max_4883ac();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
diff --git a/test/tint/builtins/gen/var/max/4883ac.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/max/4883ac.wgsl.expected.ir.fxc.hlsl
index 0ba40c6..6c07883 100644
--- a/test/tint/builtins/gen/var/max/4883ac.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/max/4883ac.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,44 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  float3 prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation float3 VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+float3 max_4883ac() {
+  float3 arg_0 = (1.0f).xxx;
+  float3 arg_1 = (1.0f).xxx;
+  float3 res = max(arg_0, arg_1);
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store3(0u, asuint(max_4883ac()));
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store3(0u, asuint(max_4883ac()));
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = max_4883ac();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
diff --git a/test/tint/builtins/gen/var/max/4bbff2.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/max/4bbff2.wgsl.expected.ir.dxc.hlsl
index 0ba40c6..7d5299f 100644
--- a/test/tint/builtins/gen/var/max/4bbff2.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/max/4bbff2.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,36 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+void max_4bbff2() {
+  float4 res = (1.0f).xxxx;
+}
+
+void fragment_main() {
+  max_4bbff2();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  max_4bbff2();
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  max_4bbff2();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  vertex_main_outputs v_2 = {v_1.pos};
+  return v_2;
+}
+
diff --git a/test/tint/builtins/gen/var/max/4bbff2.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/max/4bbff2.wgsl.expected.ir.fxc.hlsl
index 0ba40c6..7d5299f 100644
--- a/test/tint/builtins/gen/var/max/4bbff2.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/max/4bbff2.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,36 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+void max_4bbff2() {
+  float4 res = (1.0f).xxxx;
+}
+
+void fragment_main() {
+  max_4bbff2();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  max_4bbff2();
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  max_4bbff2();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  vertex_main_outputs v_2 = {v_1.pos};
+  return v_2;
+}
+
diff --git a/test/tint/builtins/gen/var/max/85e6bc.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/max/85e6bc.wgsl.expected.ir.dxc.hlsl
index 0ba40c6..081039d 100644
--- a/test/tint/builtins/gen/var/max/85e6bc.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/max/85e6bc.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,44 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  int4 prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation int4 VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+int4 max_85e6bc() {
+  int4 arg_0 = (1).xxxx;
+  int4 arg_1 = (1).xxxx;
+  int4 res = max(arg_0, arg_1);
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store4(0u, asuint(max_85e6bc()));
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store4(0u, asuint(max_85e6bc()));
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = max_85e6bc();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
diff --git a/test/tint/builtins/gen/var/max/85e6bc.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/max/85e6bc.wgsl.expected.ir.fxc.hlsl
index 0ba40c6..081039d 100644
--- a/test/tint/builtins/gen/var/max/85e6bc.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/max/85e6bc.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,44 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  int4 prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation int4 VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+int4 max_85e6bc() {
+  int4 arg_0 = (1).xxxx;
+  int4 arg_1 = (1).xxxx;
+  int4 res = max(arg_0, arg_1);
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store4(0u, asuint(max_85e6bc()));
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store4(0u, asuint(max_85e6bc()));
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = max_85e6bc();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
diff --git a/test/tint/builtins/gen/var/max/a1b196.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/max/a1b196.wgsl.expected.ir.dxc.hlsl
index 0ba40c6..28027b2 100644
--- a/test/tint/builtins/gen/var/max/a1b196.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/max/a1b196.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,36 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+void max_a1b196() {
+  float3 res = (1.0f).xxx;
+}
+
+void fragment_main() {
+  max_a1b196();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  max_a1b196();
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  max_a1b196();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  vertex_main_outputs v_2 = {v_1.pos};
+  return v_2;
+}
+
diff --git a/test/tint/builtins/gen/var/max/a1b196.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/max/a1b196.wgsl.expected.ir.fxc.hlsl
index 0ba40c6..28027b2 100644
--- a/test/tint/builtins/gen/var/max/a1b196.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/max/a1b196.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,36 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+void max_a1b196() {
+  float3 res = (1.0f).xxx;
+}
+
+void fragment_main() {
+  max_a1b196();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  max_a1b196();
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  max_a1b196();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  vertex_main_outputs v_2 = {v_1.pos};
+  return v_2;
+}
+
diff --git a/test/tint/builtins/gen/var/max/a93419.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/max/a93419.wgsl.expected.ir.dxc.hlsl
index 0ba40c6..276c894 100644
--- a/test/tint/builtins/gen/var/max/a93419.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/max/a93419.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,44 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  float4 prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation float4 VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+float4 max_a93419() {
+  float4 arg_0 = (1.0f).xxxx;
+  float4 arg_1 = (1.0f).xxxx;
+  float4 res = max(arg_0, arg_1);
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store4(0u, asuint(max_a93419()));
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store4(0u, asuint(max_a93419()));
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = max_a93419();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
diff --git a/test/tint/builtins/gen/var/max/a93419.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/max/a93419.wgsl.expected.ir.fxc.hlsl
index 0ba40c6..276c894 100644
--- a/test/tint/builtins/gen/var/max/a93419.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/max/a93419.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,44 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  float4 prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation float4 VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+float4 max_a93419() {
+  float4 arg_0 = (1.0f).xxxx;
+  float4 arg_1 = (1.0f).xxxx;
+  float4 res = max(arg_0, arg_1);
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store4(0u, asuint(max_a93419()));
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store4(0u, asuint(max_a93419()));
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = max_a93419();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
diff --git a/test/tint/builtins/gen/var/max/b1b73a.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/max/b1b73a.wgsl.expected.ir.dxc.hlsl
index 0ba40c6..c0c0b1b 100644
--- a/test/tint/builtins/gen/var/max/b1b73a.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/max/b1b73a.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,44 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  uint3 prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation uint3 VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+uint3 max_b1b73a() {
+  uint3 arg_0 = (1u).xxx;
+  uint3 arg_1 = (1u).xxx;
+  uint3 res = max(arg_0, arg_1);
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store3(0u, max_b1b73a());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store3(0u, max_b1b73a());
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = max_b1b73a();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
diff --git a/test/tint/builtins/gen/var/max/b1b73a.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/max/b1b73a.wgsl.expected.ir.fxc.hlsl
index 0ba40c6..c0c0b1b 100644
--- a/test/tint/builtins/gen/var/max/b1b73a.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/max/b1b73a.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,44 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  uint3 prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation uint3 VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+uint3 max_b1b73a() {
+  uint3 arg_0 = (1u).xxx;
+  uint3 arg_1 = (1u).xxx;
+  uint3 res = max(arg_0, arg_1);
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store3(0u, max_b1b73a());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store3(0u, max_b1b73a());
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = max_b1b73a();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
diff --git a/test/tint/builtins/gen/var/max/c023dd.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/max/c023dd.wgsl.expected.ir.dxc.hlsl
index 0ba40c6..575425c 100644
--- a/test/tint/builtins/gen/var/max/c023dd.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/max/c023dd.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,36 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+void max_c023dd() {
+  float res = 1.0f;
+}
+
+void fragment_main() {
+  max_c023dd();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  max_c023dd();
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  max_c023dd();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  vertex_main_outputs v_2 = {v_1.pos};
+  return v_2;
+}
+
diff --git a/test/tint/builtins/gen/var/max/c023dd.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/max/c023dd.wgsl.expected.ir.fxc.hlsl
index 0ba40c6..575425c 100644
--- a/test/tint/builtins/gen/var/max/c023dd.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/max/c023dd.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,36 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+void max_c023dd() {
+  float res = 1.0f;
+}
+
+void fragment_main() {
+  max_c023dd();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  max_c023dd();
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  max_c023dd();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  vertex_main_outputs v_2 = {v_1.pos};
+  return v_2;
+}
+
diff --git a/test/tint/builtins/gen/var/max/caa3d7.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/max/caa3d7.wgsl.expected.ir.dxc.hlsl
index 0ba40c6..d4fea1f 100644
--- a/test/tint/builtins/gen/var/max/caa3d7.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/max/caa3d7.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,36 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+void max_caa3d7() {
+  int res = 1;
+}
+
+void fragment_main() {
+  max_caa3d7();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  max_caa3d7();
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  max_caa3d7();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  vertex_main_outputs v_2 = {v_1.pos};
+  return v_2;
+}
+
diff --git a/test/tint/builtins/gen/var/max/caa3d7.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/max/caa3d7.wgsl.expected.ir.fxc.hlsl
index 0ba40c6..d4fea1f 100644
--- a/test/tint/builtins/gen/var/max/caa3d7.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/max/caa3d7.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,36 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+void max_caa3d7() {
+  int res = 1;
+}
+
+void fragment_main() {
+  max_caa3d7();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  max_caa3d7();
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  max_caa3d7();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  vertex_main_outputs v_2 = {v_1.pos};
+  return v_2;
+}
+
diff --git a/test/tint/builtins/gen/var/max/ce7c30.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/max/ce7c30.wgsl.expected.ir.dxc.hlsl
index 0ba40c6..9054d65 100644
--- a/test/tint/builtins/gen/var/max/ce7c30.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/max/ce7c30.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,44 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  int prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation int VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+int max_ce7c30() {
+  int arg_0 = 1;
+  int arg_1 = 1;
+  int res = max(arg_0, arg_1);
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store(0u, asuint(max_ce7c30()));
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store(0u, asuint(max_ce7c30()));
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = max_ce7c30();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
diff --git a/test/tint/builtins/gen/var/max/ce7c30.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/max/ce7c30.wgsl.expected.ir.fxc.hlsl
index 0ba40c6..9054d65 100644
--- a/test/tint/builtins/gen/var/max/ce7c30.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/max/ce7c30.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,44 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  int prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation int VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+int max_ce7c30() {
+  int arg_0 = 1;
+  int arg_1 = 1;
+  int res = max(arg_0, arg_1);
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store(0u, asuint(max_ce7c30()));
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store(0u, asuint(max_ce7c30()));
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = max_ce7c30();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
diff --git a/test/tint/builtins/gen/var/max/de6b87.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/max/de6b87.wgsl.expected.ir.dxc.hlsl
index 0ba40c6..10f05770 100644
--- a/test/tint/builtins/gen/var/max/de6b87.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/max/de6b87.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,36 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+void max_de6b87() {
+  float2 res = (1.0f).xx;
+}
+
+void fragment_main() {
+  max_de6b87();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  max_de6b87();
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  max_de6b87();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  vertex_main_outputs v_2 = {v_1.pos};
+  return v_2;
+}
+
diff --git a/test/tint/builtins/gen/var/max/de6b87.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/max/de6b87.wgsl.expected.ir.fxc.hlsl
index 0ba40c6..10f05770 100644
--- a/test/tint/builtins/gen/var/max/de6b87.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/max/de6b87.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,36 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+void max_de6b87() {
+  float2 res = (1.0f).xx;
+}
+
+void fragment_main() {
+  max_de6b87();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  max_de6b87();
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  max_de6b87();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  vertex_main_outputs v_2 = {v_1.pos};
+  return v_2;
+}
+
diff --git a/test/tint/builtins/gen/var/max/e14f2b.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/max/e14f2b.wgsl.expected.ir.dxc.hlsl
index 0ba40c6..8bddc3f 100644
--- a/test/tint/builtins/gen/var/max/e14f2b.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/max/e14f2b.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,44 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  vector<float16_t, 4> prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation vector<float16_t, 4> VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+vector<float16_t, 4> max_e14f2b() {
+  vector<float16_t, 4> arg_0 = (float16_t(1.0h)).xxxx;
+  vector<float16_t, 4> arg_1 = (float16_t(1.0h)).xxxx;
+  vector<float16_t, 4> res = max(arg_0, arg_1);
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store<vector<float16_t, 4> >(0u, max_e14f2b());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store<vector<float16_t, 4> >(0u, max_e14f2b());
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = max_e14f2b();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
diff --git a/test/tint/builtins/gen/var/max/e14f2b.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/max/e14f2b.wgsl.expected.ir.fxc.hlsl
index 0ba40c6..a2ad2f1 100644
--- a/test/tint/builtins/gen/var/max/e14f2b.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/max/e14f2b.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,49 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct VertexOutput {
+  float4 pos;
+  vector<float16_t, 4> prevent_dce;
+};
+
+struct vertex_main_outputs {
+  nointerpolation vector<float16_t, 4> VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+vector<float16_t, 4> max_e14f2b() {
+  vector<float16_t, 4> arg_0 = (float16_t(1.0h)).xxxx;
+  vector<float16_t, 4> arg_1 = (float16_t(1.0h)).xxxx;
+  vector<float16_t, 4> res = max(arg_0, arg_1);
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store<vector<float16_t, 4> >(0u, max_e14f2b());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store<vector<float16_t, 4> >(0u, max_e14f2b());
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = max_e14f2b();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
+FXC validation failure:
+c:\src\dawn\Shader@0x0000013FADE04690(3,10-18): error X3000: syntax error: unexpected token 'float16_t'
+
diff --git a/test/tint/builtins/gen/var/max/e8192f.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/max/e8192f.wgsl.expected.ir.dxc.hlsl
index 0ba40c6..7f5622e 100644
--- a/test/tint/builtins/gen/var/max/e8192f.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/max/e8192f.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,44 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  int2 prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation int2 VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+int2 max_e8192f() {
+  int2 arg_0 = (1).xx;
+  int2 arg_1 = (1).xx;
+  int2 res = max(arg_0, arg_1);
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store2(0u, asuint(max_e8192f()));
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store2(0u, asuint(max_e8192f()));
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = max_e8192f();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
diff --git a/test/tint/builtins/gen/var/max/e8192f.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/max/e8192f.wgsl.expected.ir.fxc.hlsl
index 0ba40c6..7f5622e 100644
--- a/test/tint/builtins/gen/var/max/e8192f.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/max/e8192f.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,44 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  int2 prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation int2 VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+int2 max_e8192f() {
+  int2 arg_0 = (1).xx;
+  int2 arg_1 = (1).xx;
+  int2 res = max(arg_0, arg_1);
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store2(0u, asuint(max_e8192f()));
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store2(0u, asuint(max_e8192f()));
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = max_e8192f();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
diff --git a/test/tint/builtins/gen/var/min/03c7e3.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/min/03c7e3.wgsl.expected.ir.dxc.hlsl
index 0ba40c6..da5d39a 100644
--- a/test/tint/builtins/gen/var/min/03c7e3.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/min/03c7e3.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,44 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  int2 prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation int2 VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+int2 min_03c7e3() {
+  int2 arg_0 = (1).xx;
+  int2 arg_1 = (1).xx;
+  int2 res = min(arg_0, arg_1);
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store2(0u, asuint(min_03c7e3()));
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store2(0u, asuint(min_03c7e3()));
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = min_03c7e3();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
diff --git a/test/tint/builtins/gen/var/min/03c7e3.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/min/03c7e3.wgsl.expected.ir.fxc.hlsl
index 0ba40c6..da5d39a 100644
--- a/test/tint/builtins/gen/var/min/03c7e3.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/min/03c7e3.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,44 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  int2 prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation int2 VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+int2 min_03c7e3() {
+  int2 arg_0 = (1).xx;
+  int2 arg_1 = (1).xx;
+  int2 res = min(arg_0, arg_1);
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store2(0u, asuint(min_03c7e3()));
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store2(0u, asuint(min_03c7e3()));
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = min_03c7e3();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
diff --git a/test/tint/builtins/gen/var/min/0dc614.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/min/0dc614.wgsl.expected.ir.dxc.hlsl
index 0ba40c6..28dab5c 100644
--- a/test/tint/builtins/gen/var/min/0dc614.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/min/0dc614.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,44 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  uint4 prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation uint4 VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+uint4 min_0dc614() {
+  uint4 arg_0 = (1u).xxxx;
+  uint4 arg_1 = (1u).xxxx;
+  uint4 res = min(arg_0, arg_1);
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store4(0u, min_0dc614());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store4(0u, min_0dc614());
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = min_0dc614();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
diff --git a/test/tint/builtins/gen/var/min/0dc614.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/min/0dc614.wgsl.expected.ir.fxc.hlsl
index 0ba40c6..28dab5c 100644
--- a/test/tint/builtins/gen/var/min/0dc614.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/min/0dc614.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,44 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  uint4 prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation uint4 VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+uint4 min_0dc614() {
+  uint4 arg_0 = (1u).xxxx;
+  uint4 arg_1 = (1u).xxxx;
+  uint4 res = min(arg_0, arg_1);
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store4(0u, min_0dc614());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store4(0u, min_0dc614());
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = min_0dc614();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
diff --git a/test/tint/builtins/gen/var/min/364910.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/min/364910.wgsl.expected.ir.dxc.hlsl
index 0ba40c6..2743e96 100644
--- a/test/tint/builtins/gen/var/min/364910.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/min/364910.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,36 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+void min_364910() {
+  float3 res = (1.0f).xxx;
+}
+
+void fragment_main() {
+  min_364910();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  min_364910();
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  min_364910();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  vertex_main_outputs v_2 = {v_1.pos};
+  return v_2;
+}
+
diff --git a/test/tint/builtins/gen/var/min/364910.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/min/364910.wgsl.expected.ir.fxc.hlsl
index 0ba40c6..2743e96 100644
--- a/test/tint/builtins/gen/var/min/364910.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/min/364910.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,36 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+void min_364910() {
+  float3 res = (1.0f).xxx;
+}
+
+void fragment_main() {
+  min_364910();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  min_364910();
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  min_364910();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  vertex_main_outputs v_2 = {v_1.pos};
+  return v_2;
+}
+
diff --git a/test/tint/builtins/gen/var/min/371bd6.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/min/371bd6.wgsl.expected.ir.dxc.hlsl
index 0ba40c6..a31c957 100644
--- a/test/tint/builtins/gen/var/min/371bd6.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/min/371bd6.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,36 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+void min_371bd6() {
+  int3 res = (1).xxx;
+}
+
+void fragment_main() {
+  min_371bd6();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  min_371bd6();
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  min_371bd6();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  vertex_main_outputs v_2 = {v_1.pos};
+  return v_2;
+}
+
diff --git a/test/tint/builtins/gen/var/min/371bd6.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/min/371bd6.wgsl.expected.ir.fxc.hlsl
index 0ba40c6..a31c957 100644
--- a/test/tint/builtins/gen/var/min/371bd6.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/min/371bd6.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,36 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+void min_371bd6() {
+  int3 res = (1).xxx;
+}
+
+void fragment_main() {
+  min_371bd6();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  min_371bd6();
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  min_371bd6();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  vertex_main_outputs v_2 = {v_1.pos};
+  return v_2;
+}
+
diff --git a/test/tint/builtins/gen/var/min/3941e1.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/min/3941e1.wgsl.expected.ir.dxc.hlsl
index 0ba40c6..db81caf 100644
--- a/test/tint/builtins/gen/var/min/3941e1.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/min/3941e1.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,44 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  int4 prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation int4 VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+int4 min_3941e1() {
+  int4 arg_0 = (1).xxxx;
+  int4 arg_1 = (1).xxxx;
+  int4 res = min(arg_0, arg_1);
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store4(0u, asuint(min_3941e1()));
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store4(0u, asuint(min_3941e1()));
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = min_3941e1();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
diff --git a/test/tint/builtins/gen/var/min/3941e1.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/min/3941e1.wgsl.expected.ir.fxc.hlsl
index 0ba40c6..db81caf 100644
--- a/test/tint/builtins/gen/var/min/3941e1.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/min/3941e1.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,44 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  int4 prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation int4 VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+int4 min_3941e1() {
+  int4 arg_0 = (1).xxxx;
+  int4 arg_1 = (1).xxxx;
+  int4 res = min(arg_0, arg_1);
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store4(0u, asuint(min_3941e1()));
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store4(0u, asuint(min_3941e1()));
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = min_3941e1();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
diff --git a/test/tint/builtins/gen/var/min/46c5d3.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/min/46c5d3.wgsl.expected.ir.dxc.hlsl
index 0ba40c6..de5826f 100644
--- a/test/tint/builtins/gen/var/min/46c5d3.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/min/46c5d3.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,44 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  uint prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation uint VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+uint min_46c5d3() {
+  uint arg_0 = 1u;
+  uint arg_1 = 1u;
+  uint res = min(arg_0, arg_1);
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store(0u, min_46c5d3());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store(0u, min_46c5d3());
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = min_46c5d3();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
diff --git a/test/tint/builtins/gen/var/min/46c5d3.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/min/46c5d3.wgsl.expected.ir.fxc.hlsl
index 0ba40c6..de5826f 100644
--- a/test/tint/builtins/gen/var/min/46c5d3.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/min/46c5d3.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,44 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  uint prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation uint VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+uint min_46c5d3() {
+  uint arg_0 = 1u;
+  uint arg_1 = 1u;
+  uint res = min(arg_0, arg_1);
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store(0u, min_46c5d3());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store(0u, min_46c5d3());
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = min_46c5d3();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
diff --git a/test/tint/builtins/gen/var/min/527b79.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/min/527b79.wgsl.expected.ir.dxc.hlsl
index 0ba40c6..5f73bc0 100644
--- a/test/tint/builtins/gen/var/min/527b79.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/min/527b79.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,36 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+void min_527b79() {
+  int2 res = (1).xx;
+}
+
+void fragment_main() {
+  min_527b79();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  min_527b79();
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  min_527b79();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  vertex_main_outputs v_2 = {v_1.pos};
+  return v_2;
+}
+
diff --git a/test/tint/builtins/gen/var/min/527b79.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/min/527b79.wgsl.expected.ir.fxc.hlsl
index 0ba40c6..5f73bc0 100644
--- a/test/tint/builtins/gen/var/min/527b79.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/min/527b79.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,36 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+void min_527b79() {
+  int2 res = (1).xx;
+}
+
+void fragment_main() {
+  min_527b79();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  min_527b79();
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  min_527b79();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  vertex_main_outputs v_2 = {v_1.pos};
+  return v_2;
+}
+
diff --git a/test/tint/builtins/gen/var/min/717257.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/min/717257.wgsl.expected.ir.dxc.hlsl
index 0ba40c6..3b311e6 100644
--- a/test/tint/builtins/gen/var/min/717257.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/min/717257.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,36 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+void min_717257() {
+  float2 res = (1.0f).xx;
+}
+
+void fragment_main() {
+  min_717257();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  min_717257();
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  min_717257();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  vertex_main_outputs v_2 = {v_1.pos};
+  return v_2;
+}
+
diff --git a/test/tint/builtins/gen/var/min/717257.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/min/717257.wgsl.expected.ir.fxc.hlsl
index 0ba40c6..3b311e6 100644
--- a/test/tint/builtins/gen/var/min/717257.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/min/717257.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,36 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+void min_717257() {
+  float2 res = (1.0f).xx;
+}
+
+void fragment_main() {
+  min_717257();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  min_717257();
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  min_717257();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  vertex_main_outputs v_2 = {v_1.pos};
+  return v_2;
+}
+
diff --git a/test/tint/builtins/gen/var/min/794711.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/min/794711.wgsl.expected.ir.dxc.hlsl
index 0ba40c6..ffd1300 100644
--- a/test/tint/builtins/gen/var/min/794711.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/min/794711.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,36 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+void min_794711() {
+  float res = 1.0f;
+}
+
+void fragment_main() {
+  min_794711();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  min_794711();
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  min_794711();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  vertex_main_outputs v_2 = {v_1.pos};
+  return v_2;
+}
+
diff --git a/test/tint/builtins/gen/var/min/794711.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/min/794711.wgsl.expected.ir.fxc.hlsl
index 0ba40c6..ffd1300 100644
--- a/test/tint/builtins/gen/var/min/794711.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/min/794711.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,36 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+void min_794711() {
+  float res = 1.0f;
+}
+
+void fragment_main() {
+  min_794711();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  min_794711();
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  min_794711();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  vertex_main_outputs v_2 = {v_1.pos};
+  return v_2;
+}
+
diff --git a/test/tint/builtins/gen/var/min/7c710a.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/min/7c710a.wgsl.expected.ir.dxc.hlsl
index 0ba40c6..57d4287 100644
--- a/test/tint/builtins/gen/var/min/7c710a.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/min/7c710a.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,44 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  vector<float16_t, 4> prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation vector<float16_t, 4> VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+vector<float16_t, 4> min_7c710a() {
+  vector<float16_t, 4> arg_0 = (float16_t(1.0h)).xxxx;
+  vector<float16_t, 4> arg_1 = (float16_t(1.0h)).xxxx;
+  vector<float16_t, 4> res = min(arg_0, arg_1);
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store<vector<float16_t, 4> >(0u, min_7c710a());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store<vector<float16_t, 4> >(0u, min_7c710a());
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = min_7c710a();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
diff --git a/test/tint/builtins/gen/var/min/7c710a.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/min/7c710a.wgsl.expected.ir.fxc.hlsl
index 0ba40c6..104c154 100644
--- a/test/tint/builtins/gen/var/min/7c710a.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/min/7c710a.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,49 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct VertexOutput {
+  float4 pos;
+  vector<float16_t, 4> prevent_dce;
+};
+
+struct vertex_main_outputs {
+  nointerpolation vector<float16_t, 4> VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+vector<float16_t, 4> min_7c710a() {
+  vector<float16_t, 4> arg_0 = (float16_t(1.0h)).xxxx;
+  vector<float16_t, 4> arg_1 = (float16_t(1.0h)).xxxx;
+  vector<float16_t, 4> res = min(arg_0, arg_1);
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store<vector<float16_t, 4> >(0u, min_7c710a());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store<vector<float16_t, 4> >(0u, min_7c710a());
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = min_7c710a();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
+FXC validation failure:
+c:\src\dawn\Shader@0x000002257F45E140(3,10-18): error X3000: syntax error: unexpected token 'float16_t'
+
diff --git a/test/tint/builtins/gen/var/min/82b28f.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/min/82b28f.wgsl.expected.ir.dxc.hlsl
index 0ba40c6..7c747cc 100644
--- a/test/tint/builtins/gen/var/min/82b28f.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/min/82b28f.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,44 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  uint2 prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation uint2 VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+uint2 min_82b28f() {
+  uint2 arg_0 = (1u).xx;
+  uint2 arg_1 = (1u).xx;
+  uint2 res = min(arg_0, arg_1);
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store2(0u, min_82b28f());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store2(0u, min_82b28f());
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = min_82b28f();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
diff --git a/test/tint/builtins/gen/var/min/82b28f.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/min/82b28f.wgsl.expected.ir.fxc.hlsl
index 0ba40c6..7c747cc 100644
--- a/test/tint/builtins/gen/var/min/82b28f.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/min/82b28f.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,44 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  uint2 prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation uint2 VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+uint2 min_82b28f() {
+  uint2 arg_0 = (1u).xx;
+  uint2 arg_1 = (1u).xx;
+  uint2 res = min(arg_0, arg_1);
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store2(0u, min_82b28f());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store2(0u, min_82b28f());
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = min_82b28f();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
diff --git a/test/tint/builtins/gen/var/min/84c9fe.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/min/84c9fe.wgsl.expected.ir.dxc.hlsl
index 0ba40c6..a8a0940 100644
--- a/test/tint/builtins/gen/var/min/84c9fe.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/min/84c9fe.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,36 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+void min_84c9fe() {
+  int res = 1;
+}
+
+void fragment_main() {
+  min_84c9fe();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  min_84c9fe();
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  min_84c9fe();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  vertex_main_outputs v_2 = {v_1.pos};
+  return v_2;
+}
+
diff --git a/test/tint/builtins/gen/var/min/84c9fe.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/min/84c9fe.wgsl.expected.ir.fxc.hlsl
index 0ba40c6..a8a0940 100644
--- a/test/tint/builtins/gen/var/min/84c9fe.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/min/84c9fe.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,36 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+void min_84c9fe() {
+  int res = 1;
+}
+
+void fragment_main() {
+  min_84c9fe();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  min_84c9fe();
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  min_84c9fe();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  vertex_main_outputs v_2 = {v_1.pos};
+  return v_2;
+}
+
diff --git a/test/tint/builtins/gen/var/min/93cfc4.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/min/93cfc4.wgsl.expected.ir.dxc.hlsl
index 0ba40c6..e4552a8 100644
--- a/test/tint/builtins/gen/var/min/93cfc4.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/min/93cfc4.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,44 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  float3 prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation float3 VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+float3 min_93cfc4() {
+  float3 arg_0 = (1.0f).xxx;
+  float3 arg_1 = (1.0f).xxx;
+  float3 res = min(arg_0, arg_1);
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store3(0u, asuint(min_93cfc4()));
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store3(0u, asuint(min_93cfc4()));
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = min_93cfc4();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
diff --git a/test/tint/builtins/gen/var/min/93cfc4.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/min/93cfc4.wgsl.expected.ir.fxc.hlsl
index 0ba40c6..e4552a8 100644
--- a/test/tint/builtins/gen/var/min/93cfc4.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/min/93cfc4.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,44 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  float3 prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation float3 VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+float3 min_93cfc4() {
+  float3 arg_0 = (1.0f).xxx;
+  float3 arg_1 = (1.0f).xxx;
+  float3 res = min(arg_0, arg_1);
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store3(0u, asuint(min_93cfc4()));
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store3(0u, asuint(min_93cfc4()));
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = min_93cfc4();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
diff --git a/test/tint/builtins/gen/var/min/98e797.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/min/98e797.wgsl.expected.ir.dxc.hlsl
index 0ba40c6..83007db 100644
--- a/test/tint/builtins/gen/var/min/98e797.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/min/98e797.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,36 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+void min_98e797() {
+  float4 res = (1.0f).xxxx;
+}
+
+void fragment_main() {
+  min_98e797();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  min_98e797();
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  min_98e797();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  vertex_main_outputs v_2 = {v_1.pos};
+  return v_2;
+}
+
diff --git a/test/tint/builtins/gen/var/min/98e797.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/min/98e797.wgsl.expected.ir.fxc.hlsl
index 0ba40c6..83007db 100644
--- a/test/tint/builtins/gen/var/min/98e797.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/min/98e797.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,36 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+void min_98e797() {
+  float4 res = (1.0f).xxxx;
+}
+
+void fragment_main() {
+  min_98e797();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  min_98e797();
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  min_98e797();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  vertex_main_outputs v_2 = {v_1.pos};
+  return v_2;
+}
+
diff --git a/test/tint/builtins/gen/var/min/a45171.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/min/a45171.wgsl.expected.ir.dxc.hlsl
index 0ba40c6..a41c163 100644
--- a/test/tint/builtins/gen/var/min/a45171.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/min/a45171.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,44 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  int3 prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation int3 VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+int3 min_a45171() {
+  int3 arg_0 = (1).xxx;
+  int3 arg_1 = (1).xxx;
+  int3 res = min(arg_0, arg_1);
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store3(0u, asuint(min_a45171()));
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store3(0u, asuint(min_a45171()));
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = min_a45171();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
diff --git a/test/tint/builtins/gen/var/min/a45171.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/min/a45171.wgsl.expected.ir.fxc.hlsl
index 0ba40c6..a41c163 100644
--- a/test/tint/builtins/gen/var/min/a45171.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/min/a45171.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,44 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  int3 prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation int3 VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+int3 min_a45171() {
+  int3 arg_0 = (1).xxx;
+  int3 arg_1 = (1).xxx;
+  int3 res = min(arg_0, arg_1);
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store3(0u, asuint(min_a45171()));
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store3(0u, asuint(min_a45171()));
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = min_a45171();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
diff --git a/test/tint/builtins/gen/var/min/aa28ad.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/min/aa28ad.wgsl.expected.ir.dxc.hlsl
index 0ba40c6..6df454b 100644
--- a/test/tint/builtins/gen/var/min/aa28ad.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/min/aa28ad.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,44 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  float2 prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation float2 VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+float2 min_aa28ad() {
+  float2 arg_0 = (1.0f).xx;
+  float2 arg_1 = (1.0f).xx;
+  float2 res = min(arg_0, arg_1);
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store2(0u, asuint(min_aa28ad()));
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store2(0u, asuint(min_aa28ad()));
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = min_aa28ad();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
diff --git a/test/tint/builtins/gen/var/min/aa28ad.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/min/aa28ad.wgsl.expected.ir.fxc.hlsl
index 0ba40c6..6df454b 100644
--- a/test/tint/builtins/gen/var/min/aa28ad.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/min/aa28ad.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,44 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  float2 prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation float2 VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+float2 min_aa28ad() {
+  float2 arg_0 = (1.0f).xx;
+  float2 arg_1 = (1.0f).xx;
+  float2 res = min(arg_0, arg_1);
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store2(0u, asuint(min_aa28ad()));
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store2(0u, asuint(min_aa28ad()));
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = min_aa28ad();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
diff --git a/test/tint/builtins/gen/var/min/ab0acd.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/min/ab0acd.wgsl.expected.ir.dxc.hlsl
index 0ba40c6..02b40e1 100644
--- a/test/tint/builtins/gen/var/min/ab0acd.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/min/ab0acd.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,44 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  vector<float16_t, 3> prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation vector<float16_t, 3> VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+vector<float16_t, 3> min_ab0acd() {
+  vector<float16_t, 3> arg_0 = (float16_t(1.0h)).xxx;
+  vector<float16_t, 3> arg_1 = (float16_t(1.0h)).xxx;
+  vector<float16_t, 3> res = min(arg_0, arg_1);
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store<vector<float16_t, 3> >(0u, min_ab0acd());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store<vector<float16_t, 3> >(0u, min_ab0acd());
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = min_ab0acd();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
diff --git a/test/tint/builtins/gen/var/min/ab0acd.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/min/ab0acd.wgsl.expected.ir.fxc.hlsl
index 0ba40c6..a2cdaa9 100644
--- a/test/tint/builtins/gen/var/min/ab0acd.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/min/ab0acd.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,49 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct VertexOutput {
+  float4 pos;
+  vector<float16_t, 3> prevent_dce;
+};
+
+struct vertex_main_outputs {
+  nointerpolation vector<float16_t, 3> VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+vector<float16_t, 3> min_ab0acd() {
+  vector<float16_t, 3> arg_0 = (float16_t(1.0h)).xxx;
+  vector<float16_t, 3> arg_1 = (float16_t(1.0h)).xxx;
+  vector<float16_t, 3> res = min(arg_0, arg_1);
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store<vector<float16_t, 3> >(0u, min_ab0acd());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store<vector<float16_t, 3> >(0u, min_ab0acd());
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = min_ab0acd();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
+FXC validation failure:
+c:\src\dawn\Shader@0x000002766D5D09F0(3,10-18): error X3000: syntax error: unexpected token 'float16_t'
+
diff --git a/test/tint/builtins/gen/var/min/ac84d6.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/min/ac84d6.wgsl.expected.ir.dxc.hlsl
index 0ba40c6..4251aad 100644
--- a/test/tint/builtins/gen/var/min/ac84d6.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/min/ac84d6.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,44 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  float16_t prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation float16_t VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+float16_t min_ac84d6() {
+  float16_t arg_0 = float16_t(1.0h);
+  float16_t arg_1 = float16_t(1.0h);
+  float16_t res = min(arg_0, arg_1);
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store<float16_t>(0u, min_ac84d6());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store<float16_t>(0u, min_ac84d6());
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = min_ac84d6();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
diff --git a/test/tint/builtins/gen/var/min/ac84d6.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/min/ac84d6.wgsl.expected.ir.fxc.hlsl
index 0ba40c6..5294598 100644
--- a/test/tint/builtins/gen/var/min/ac84d6.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/min/ac84d6.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,49 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct VertexOutput {
+  float4 pos;
+  float16_t prevent_dce;
+};
+
+struct vertex_main_outputs {
+  nointerpolation float16_t VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+float16_t min_ac84d6() {
+  float16_t arg_0 = float16_t(1.0h);
+  float16_t arg_1 = float16_t(1.0h);
+  float16_t res = min(arg_0, arg_1);
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store<float16_t>(0u, min_ac84d6());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store<float16_t>(0u, min_ac84d6());
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = min_ac84d6();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
+FXC validation failure:
+c:\src\dawn\Shader@0x000001A26A7AC3C0(3,3-11): error X3000: unrecognized identifier 'float16_t'
+
diff --git a/test/tint/builtins/gen/var/min/af326d.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/min/af326d.wgsl.expected.ir.dxc.hlsl
index 0ba40c6..90eb15b 100644
--- a/test/tint/builtins/gen/var/min/af326d.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/min/af326d.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,44 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  float prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation float VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+float min_af326d() {
+  float arg_0 = 1.0f;
+  float arg_1 = 1.0f;
+  float res = min(arg_0, arg_1);
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store(0u, asuint(min_af326d()));
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store(0u, asuint(min_af326d()));
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = min_af326d();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
diff --git a/test/tint/builtins/gen/var/min/af326d.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/min/af326d.wgsl.expected.ir.fxc.hlsl
index 0ba40c6..90eb15b 100644
--- a/test/tint/builtins/gen/var/min/af326d.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/min/af326d.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,44 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  float prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation float VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+float min_af326d() {
+  float arg_0 = 1.0f;
+  float arg_1 = 1.0f;
+  float res = min(arg_0, arg_1);
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store(0u, asuint(min_af326d()));
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store(0u, asuint(min_af326d()));
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = min_af326d();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
diff --git a/test/tint/builtins/gen/var/min/af364e.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/min/af364e.wgsl.expected.ir.dxc.hlsl
index 0ba40c6..dd2bd82 100644
--- a/test/tint/builtins/gen/var/min/af364e.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/min/af364e.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,36 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+void min_af364e() {
+  int4 res = (1).xxxx;
+}
+
+void fragment_main() {
+  min_af364e();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  min_af364e();
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  min_af364e();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  vertex_main_outputs v_2 = {v_1.pos};
+  return v_2;
+}
+
diff --git a/test/tint/builtins/gen/var/min/af364e.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/min/af364e.wgsl.expected.ir.fxc.hlsl
index 0ba40c6..dd2bd82 100644
--- a/test/tint/builtins/gen/var/min/af364e.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/min/af364e.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,36 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+void min_af364e() {
+  int4 res = (1).xxxx;
+}
+
+void fragment_main() {
+  min_af364e();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  min_af364e();
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  min_af364e();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  vertex_main_outputs v_2 = {v_1.pos};
+  return v_2;
+}
+
diff --git a/test/tint/builtins/gen/var/min/c70bb7.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/min/c70bb7.wgsl.expected.ir.dxc.hlsl
index 0ba40c6..76a0847 100644
--- a/test/tint/builtins/gen/var/min/c70bb7.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/min/c70bb7.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,44 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  uint3 prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation uint3 VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+uint3 min_c70bb7() {
+  uint3 arg_0 = (1u).xxx;
+  uint3 arg_1 = (1u).xxx;
+  uint3 res = min(arg_0, arg_1);
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store3(0u, min_c70bb7());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store3(0u, min_c70bb7());
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = min_c70bb7();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
diff --git a/test/tint/builtins/gen/var/min/c70bb7.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/min/c70bb7.wgsl.expected.ir.fxc.hlsl
index 0ba40c6..76a0847 100644
--- a/test/tint/builtins/gen/var/min/c70bb7.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/min/c70bb7.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,44 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  uint3 prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation uint3 VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+uint3 min_c70bb7() {
+  uint3 arg_0 = (1u).xxx;
+  uint3 arg_1 = (1u).xxx;
+  uint3 res = min(arg_0, arg_1);
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store3(0u, min_c70bb7());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store3(0u, min_c70bb7());
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = min_c70bb7();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
diff --git a/test/tint/builtins/gen/var/min/c73147.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/min/c73147.wgsl.expected.ir.dxc.hlsl
index 0ba40c6..652f88c 100644
--- a/test/tint/builtins/gen/var/min/c73147.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/min/c73147.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,44 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  int prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation int VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+int min_c73147() {
+  int arg_0 = 1;
+  int arg_1 = 1;
+  int res = min(arg_0, arg_1);
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store(0u, asuint(min_c73147()));
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store(0u, asuint(min_c73147()));
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = min_c73147();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
diff --git a/test/tint/builtins/gen/var/min/c73147.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/min/c73147.wgsl.expected.ir.fxc.hlsl
index 0ba40c6..652f88c 100644
--- a/test/tint/builtins/gen/var/min/c73147.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/min/c73147.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,44 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  int prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation int VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+int min_c73147() {
+  int arg_0 = 1;
+  int arg_1 = 1;
+  int res = min(arg_0, arg_1);
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store(0u, asuint(min_c73147()));
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store(0u, asuint(min_c73147()));
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = min_c73147();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
diff --git a/test/tint/builtins/gen/var/min/c76fa6.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/min/c76fa6.wgsl.expected.ir.dxc.hlsl
index 0ba40c6..0c29e22 100644
--- a/test/tint/builtins/gen/var/min/c76fa6.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/min/c76fa6.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,44 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  float4 prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation float4 VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+float4 min_c76fa6() {
+  float4 arg_0 = (1.0f).xxxx;
+  float4 arg_1 = (1.0f).xxxx;
+  float4 res = min(arg_0, arg_1);
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store4(0u, asuint(min_c76fa6()));
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store4(0u, asuint(min_c76fa6()));
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = min_c76fa6();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
diff --git a/test/tint/builtins/gen/var/min/c76fa6.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/min/c76fa6.wgsl.expected.ir.fxc.hlsl
index 0ba40c6..0c29e22 100644
--- a/test/tint/builtins/gen/var/min/c76fa6.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/min/c76fa6.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,44 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  float4 prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation float4 VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+float4 min_c76fa6() {
+  float4 arg_0 = (1.0f).xxxx;
+  float4 arg_1 = (1.0f).xxxx;
+  float4 res = min(arg_0, arg_1);
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store4(0u, asuint(min_c76fa6()));
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store4(0u, asuint(min_c76fa6()));
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = min_c76fa6();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
diff --git a/test/tint/builtins/gen/var/min/e780f9.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/min/e780f9.wgsl.expected.ir.dxc.hlsl
index 0ba40c6..6ef552a 100644
--- a/test/tint/builtins/gen/var/min/e780f9.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/min/e780f9.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,44 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  vector<float16_t, 2> prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation vector<float16_t, 2> VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+vector<float16_t, 2> min_e780f9() {
+  vector<float16_t, 2> arg_0 = (float16_t(1.0h)).xx;
+  vector<float16_t, 2> arg_1 = (float16_t(1.0h)).xx;
+  vector<float16_t, 2> res = min(arg_0, arg_1);
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store<vector<float16_t, 2> >(0u, min_e780f9());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store<vector<float16_t, 2> >(0u, min_e780f9());
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = min_e780f9();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
diff --git a/test/tint/builtins/gen/var/min/e780f9.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/min/e780f9.wgsl.expected.ir.fxc.hlsl
index 0ba40c6..70eda34 100644
--- a/test/tint/builtins/gen/var/min/e780f9.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/min/e780f9.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,49 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct VertexOutput {
+  float4 pos;
+  vector<float16_t, 2> prevent_dce;
+};
+
+struct vertex_main_outputs {
+  nointerpolation vector<float16_t, 2> VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+vector<float16_t, 2> min_e780f9() {
+  vector<float16_t, 2> arg_0 = (float16_t(1.0h)).xx;
+  vector<float16_t, 2> arg_1 = (float16_t(1.0h)).xx;
+  vector<float16_t, 2> res = min(arg_0, arg_1);
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store<vector<float16_t, 2> >(0u, min_e780f9());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store<vector<float16_t, 2> >(0u, min_e780f9());
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = min_e780f9();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
+FXC validation failure:
+c:\src\dawn\Shader@0x00000232D669F490(3,10-18): error X3000: syntax error: unexpected token 'float16_t'
+
diff --git a/test/tint/builtins/gen/var/mix/0c8c33.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/mix/0c8c33.wgsl.expected.ir.dxc.hlsl
index 0ba40c6..fc45f6e 100644
--- a/test/tint/builtins/gen/var/mix/0c8c33.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/mix/0c8c33.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,45 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  float3 prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation float3 VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+float3 mix_0c8c33() {
+  float3 arg_0 = (1.0f).xxx;
+  float3 arg_1 = (1.0f).xxx;
+  float3 arg_2 = (1.0f).xxx;
+  float3 res = lerp(arg_0, arg_1, arg_2);
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store3(0u, asuint(mix_0c8c33()));
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store3(0u, asuint(mix_0c8c33()));
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = mix_0c8c33();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
diff --git a/test/tint/builtins/gen/var/mix/0c8c33.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/mix/0c8c33.wgsl.expected.ir.fxc.hlsl
index 0ba40c6..fc45f6e 100644
--- a/test/tint/builtins/gen/var/mix/0c8c33.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/mix/0c8c33.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,45 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  float3 prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation float3 VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+float3 mix_0c8c33() {
+  float3 arg_0 = (1.0f).xxx;
+  float3 arg_1 = (1.0f).xxx;
+  float3 arg_2 = (1.0f).xxx;
+  float3 res = lerp(arg_0, arg_1, arg_2);
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store3(0u, asuint(mix_0c8c33()));
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store3(0u, asuint(mix_0c8c33()));
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = mix_0c8c33();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
diff --git a/test/tint/builtins/gen/var/mix/1faeb1.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/mix/1faeb1.wgsl.expected.ir.dxc.hlsl
index 0ba40c6..72985ab 100644
--- a/test/tint/builtins/gen/var/mix/1faeb1.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/mix/1faeb1.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,45 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  float4 prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation float4 VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+float4 mix_1faeb1() {
+  float4 arg_0 = (1.0f).xxxx;
+  float4 arg_1 = (1.0f).xxxx;
+  float arg_2 = 1.0f;
+  float4 res = lerp(arg_0, arg_1, arg_2);
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store4(0u, asuint(mix_1faeb1()));
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store4(0u, asuint(mix_1faeb1()));
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = mix_1faeb1();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
diff --git a/test/tint/builtins/gen/var/mix/1faeb1.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/mix/1faeb1.wgsl.expected.ir.fxc.hlsl
index 0ba40c6..72985ab 100644
--- a/test/tint/builtins/gen/var/mix/1faeb1.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/mix/1faeb1.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,45 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  float4 prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation float4 VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+float4 mix_1faeb1() {
+  float4 arg_0 = (1.0f).xxxx;
+  float4 arg_1 = (1.0f).xxxx;
+  float arg_2 = 1.0f;
+  float4 res = lerp(arg_0, arg_1, arg_2);
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store4(0u, asuint(mix_1faeb1()));
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store4(0u, asuint(mix_1faeb1()));
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = mix_1faeb1();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
diff --git a/test/tint/builtins/gen/var/mix/275cac.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/mix/275cac.wgsl.expected.ir.dxc.hlsl
index 0ba40c6..7a56d7a 100644
--- a/test/tint/builtins/gen/var/mix/275cac.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/mix/275cac.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,36 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+void mix_275cac() {
+  float4 res = (1.0f).xxxx;
+}
+
+void fragment_main() {
+  mix_275cac();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  mix_275cac();
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  mix_275cac();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  vertex_main_outputs v_2 = {v_1.pos};
+  return v_2;
+}
+
diff --git a/test/tint/builtins/gen/var/mix/275cac.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/mix/275cac.wgsl.expected.ir.fxc.hlsl
index 0ba40c6..7a56d7a 100644
--- a/test/tint/builtins/gen/var/mix/275cac.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/mix/275cac.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,36 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+void mix_275cac() {
+  float4 res = (1.0f).xxxx;
+}
+
+void fragment_main() {
+  mix_275cac();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  mix_275cac();
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  mix_275cac();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  vertex_main_outputs v_2 = {v_1.pos};
+  return v_2;
+}
+
diff --git a/test/tint/builtins/gen/var/mix/2fadab.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/mix/2fadab.wgsl.expected.ir.dxc.hlsl
index 0ba40c6..7508fd5 100644
--- a/test/tint/builtins/gen/var/mix/2fadab.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/mix/2fadab.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,45 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  float2 prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation float2 VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+float2 mix_2fadab() {
+  float2 arg_0 = (1.0f).xx;
+  float2 arg_1 = (1.0f).xx;
+  float arg_2 = 1.0f;
+  float2 res = lerp(arg_0, arg_1, arg_2);
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store2(0u, asuint(mix_2fadab()));
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store2(0u, asuint(mix_2fadab()));
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = mix_2fadab();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
diff --git a/test/tint/builtins/gen/var/mix/2fadab.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/mix/2fadab.wgsl.expected.ir.fxc.hlsl
index 0ba40c6..7508fd5 100644
--- a/test/tint/builtins/gen/var/mix/2fadab.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/mix/2fadab.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,45 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  float2 prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation float2 VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+float2 mix_2fadab() {
+  float2 arg_0 = (1.0f).xx;
+  float2 arg_1 = (1.0f).xx;
+  float arg_2 = 1.0f;
+  float2 res = lerp(arg_0, arg_1, arg_2);
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store2(0u, asuint(mix_2fadab()));
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store2(0u, asuint(mix_2fadab()));
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = mix_2fadab();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
diff --git a/test/tint/builtins/gen/var/mix/30de36.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/mix/30de36.wgsl.expected.ir.dxc.hlsl
index 0ba40c6..90ddb5f 100644
--- a/test/tint/builtins/gen/var/mix/30de36.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/mix/30de36.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,36 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+void mix_30de36() {
+  float res = 1.0f;
+}
+
+void fragment_main() {
+  mix_30de36();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  mix_30de36();
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  mix_30de36();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  vertex_main_outputs v_2 = {v_1.pos};
+  return v_2;
+}
+
diff --git a/test/tint/builtins/gen/var/mix/30de36.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/mix/30de36.wgsl.expected.ir.fxc.hlsl
index 0ba40c6..90ddb5f 100644
--- a/test/tint/builtins/gen/var/mix/30de36.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/mix/30de36.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,36 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+void mix_30de36() {
+  float res = 1.0f;
+}
+
+void fragment_main() {
+  mix_30de36();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  mix_30de36();
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  mix_30de36();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  vertex_main_outputs v_2 = {v_1.pos};
+  return v_2;
+}
+
diff --git a/test/tint/builtins/gen/var/mix/315264.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/mix/315264.wgsl.expected.ir.dxc.hlsl
index 0ba40c6..5455d78 100644
--- a/test/tint/builtins/gen/var/mix/315264.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/mix/315264.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,45 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  float3 prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation float3 VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+float3 mix_315264() {
+  float3 arg_0 = (1.0f).xxx;
+  float3 arg_1 = (1.0f).xxx;
+  float arg_2 = 1.0f;
+  float3 res = lerp(arg_0, arg_1, arg_2);
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store3(0u, asuint(mix_315264()));
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store3(0u, asuint(mix_315264()));
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = mix_315264();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
diff --git a/test/tint/builtins/gen/var/mix/315264.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/mix/315264.wgsl.expected.ir.fxc.hlsl
index 0ba40c6..5455d78 100644
--- a/test/tint/builtins/gen/var/mix/315264.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/mix/315264.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,45 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  float3 prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation float3 VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+float3 mix_315264() {
+  float3 arg_0 = (1.0f).xxx;
+  float3 arg_1 = (1.0f).xxx;
+  float arg_2 = 1.0f;
+  float3 res = lerp(arg_0, arg_1, arg_2);
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store3(0u, asuint(mix_315264()));
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store3(0u, asuint(mix_315264()));
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = mix_315264();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
diff --git a/test/tint/builtins/gen/var/mix/343c49.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/mix/343c49.wgsl.expected.ir.dxc.hlsl
index 0ba40c6..a9afe37 100644
--- a/test/tint/builtins/gen/var/mix/343c49.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/mix/343c49.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,36 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+void mix_343c49() {
+  float3 res = (1.0f).xxx;
+}
+
+void fragment_main() {
+  mix_343c49();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  mix_343c49();
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  mix_343c49();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  vertex_main_outputs v_2 = {v_1.pos};
+  return v_2;
+}
+
diff --git a/test/tint/builtins/gen/var/mix/343c49.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/mix/343c49.wgsl.expected.ir.fxc.hlsl
index 0ba40c6..a9afe37 100644
--- a/test/tint/builtins/gen/var/mix/343c49.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/mix/343c49.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,36 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+void mix_343c49() {
+  float3 res = (1.0f).xxx;
+}
+
+void fragment_main() {
+  mix_343c49();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  mix_343c49();
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  mix_343c49();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  vertex_main_outputs v_2 = {v_1.pos};
+  return v_2;
+}
+
diff --git a/test/tint/builtins/gen/var/mix/38cbbb.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/mix/38cbbb.wgsl.expected.ir.dxc.hlsl
index 0ba40c6..0a01713 100644
--- a/test/tint/builtins/gen/var/mix/38cbbb.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/mix/38cbbb.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,45 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  float16_t prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation float16_t VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+float16_t mix_38cbbb() {
+  float16_t arg_0 = float16_t(1.0h);
+  float16_t arg_1 = float16_t(1.0h);
+  float16_t arg_2 = float16_t(1.0h);
+  float16_t res = lerp(arg_0, arg_1, arg_2);
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store<float16_t>(0u, mix_38cbbb());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store<float16_t>(0u, mix_38cbbb());
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = mix_38cbbb();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
diff --git a/test/tint/builtins/gen/var/mix/38cbbb.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/mix/38cbbb.wgsl.expected.ir.fxc.hlsl
index 0ba40c6..826d0b3 100644
--- a/test/tint/builtins/gen/var/mix/38cbbb.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/mix/38cbbb.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,50 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct VertexOutput {
+  float4 pos;
+  float16_t prevent_dce;
+};
+
+struct vertex_main_outputs {
+  nointerpolation float16_t VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+float16_t mix_38cbbb() {
+  float16_t arg_0 = float16_t(1.0h);
+  float16_t arg_1 = float16_t(1.0h);
+  float16_t arg_2 = float16_t(1.0h);
+  float16_t res = lerp(arg_0, arg_1, arg_2);
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store<float16_t>(0u, mix_38cbbb());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store<float16_t>(0u, mix_38cbbb());
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = mix_38cbbb();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
+FXC validation failure:
+c:\src\dawn\Shader@0x000002580A782CE0(3,3-11): error X3000: unrecognized identifier 'float16_t'
+
diff --git a/test/tint/builtins/gen/var/mix/42d11d.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/mix/42d11d.wgsl.expected.ir.dxc.hlsl
index 0ba40c6..f292e60 100644
--- a/test/tint/builtins/gen/var/mix/42d11d.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/mix/42d11d.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,36 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+void mix_42d11d() {
+  float2 res = (1.0f).xx;
+}
+
+void fragment_main() {
+  mix_42d11d();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  mix_42d11d();
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  mix_42d11d();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  vertex_main_outputs v_2 = {v_1.pos};
+  return v_2;
+}
+
diff --git a/test/tint/builtins/gen/var/mix/42d11d.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/mix/42d11d.wgsl.expected.ir.fxc.hlsl
index 0ba40c6..f292e60 100644
--- a/test/tint/builtins/gen/var/mix/42d11d.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/mix/42d11d.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,36 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+void mix_42d11d() {
+  float2 res = (1.0f).xx;
+}
+
+void fragment_main() {
+  mix_42d11d();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  mix_42d11d();
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  mix_42d11d();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  vertex_main_outputs v_2 = {v_1.pos};
+  return v_2;
+}
+
diff --git a/test/tint/builtins/gen/var/mix/4f0b5e.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/mix/4f0b5e.wgsl.expected.ir.dxc.hlsl
index 0ba40c6..9b4a0bc 100644
--- a/test/tint/builtins/gen/var/mix/4f0b5e.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/mix/4f0b5e.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,45 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  float prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation float VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+float mix_4f0b5e() {
+  float arg_0 = 1.0f;
+  float arg_1 = 1.0f;
+  float arg_2 = 1.0f;
+  float res = lerp(arg_0, arg_1, arg_2);
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store(0u, asuint(mix_4f0b5e()));
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store(0u, asuint(mix_4f0b5e()));
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = mix_4f0b5e();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
diff --git a/test/tint/builtins/gen/var/mix/4f0b5e.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/mix/4f0b5e.wgsl.expected.ir.fxc.hlsl
index 0ba40c6..9b4a0bc 100644
--- a/test/tint/builtins/gen/var/mix/4f0b5e.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/mix/4f0b5e.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,45 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  float prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation float VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+float mix_4f0b5e() {
+  float arg_0 = 1.0f;
+  float arg_1 = 1.0f;
+  float arg_2 = 1.0f;
+  float res = lerp(arg_0, arg_1, arg_2);
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store(0u, asuint(mix_4f0b5e()));
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store(0u, asuint(mix_4f0b5e()));
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = mix_4f0b5e();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
diff --git a/test/tint/builtins/gen/var/mix/63f2fd.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/mix/63f2fd.wgsl.expected.ir.dxc.hlsl
index 0ba40c6..79ea033 100644
--- a/test/tint/builtins/gen/var/mix/63f2fd.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/mix/63f2fd.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,45 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  vector<float16_t, 3> prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation vector<float16_t, 3> VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+vector<float16_t, 3> mix_63f2fd() {
+  vector<float16_t, 3> arg_0 = (float16_t(1.0h)).xxx;
+  vector<float16_t, 3> arg_1 = (float16_t(1.0h)).xxx;
+  vector<float16_t, 3> arg_2 = (float16_t(1.0h)).xxx;
+  vector<float16_t, 3> res = lerp(arg_0, arg_1, arg_2);
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store<vector<float16_t, 3> >(0u, mix_63f2fd());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store<vector<float16_t, 3> >(0u, mix_63f2fd());
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = mix_63f2fd();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
diff --git a/test/tint/builtins/gen/var/mix/63f2fd.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/mix/63f2fd.wgsl.expected.ir.fxc.hlsl
index 0ba40c6..236c1df 100644
--- a/test/tint/builtins/gen/var/mix/63f2fd.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/mix/63f2fd.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,50 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct VertexOutput {
+  float4 pos;
+  vector<float16_t, 3> prevent_dce;
+};
+
+struct vertex_main_outputs {
+  nointerpolation vector<float16_t, 3> VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+vector<float16_t, 3> mix_63f2fd() {
+  vector<float16_t, 3> arg_0 = (float16_t(1.0h)).xxx;
+  vector<float16_t, 3> arg_1 = (float16_t(1.0h)).xxx;
+  vector<float16_t, 3> arg_2 = (float16_t(1.0h)).xxx;
+  vector<float16_t, 3> res = lerp(arg_0, arg_1, arg_2);
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store<vector<float16_t, 3> >(0u, mix_63f2fd());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store<vector<float16_t, 3> >(0u, mix_63f2fd());
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = mix_63f2fd();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
+FXC validation failure:
+c:\src\dawn\Shader@0x00000289EE5AC2A0(3,10-18): error X3000: syntax error: unexpected token 'float16_t'
+
diff --git a/test/tint/builtins/gen/var/mix/6f8adc.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/mix/6f8adc.wgsl.expected.ir.dxc.hlsl
index 0ba40c6..163ac4a 100644
--- a/test/tint/builtins/gen/var/mix/6f8adc.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/mix/6f8adc.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,45 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  float2 prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation float2 VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+float2 mix_6f8adc() {
+  float2 arg_0 = (1.0f).xx;
+  float2 arg_1 = (1.0f).xx;
+  float2 arg_2 = (1.0f).xx;
+  float2 res = lerp(arg_0, arg_1, arg_2);
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store2(0u, asuint(mix_6f8adc()));
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store2(0u, asuint(mix_6f8adc()));
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = mix_6f8adc();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
diff --git a/test/tint/builtins/gen/var/mix/6f8adc.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/mix/6f8adc.wgsl.expected.ir.fxc.hlsl
index 0ba40c6..163ac4a 100644
--- a/test/tint/builtins/gen/var/mix/6f8adc.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/mix/6f8adc.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,45 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  float2 prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation float2 VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+float2 mix_6f8adc() {
+  float2 arg_0 = (1.0f).xx;
+  float2 arg_1 = (1.0f).xx;
+  float2 arg_2 = (1.0f).xx;
+  float2 res = lerp(arg_0, arg_1, arg_2);
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store2(0u, asuint(mix_6f8adc()));
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store2(0u, asuint(mix_6f8adc()));
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = mix_6f8adc();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
diff --git a/test/tint/builtins/gen/var/mix/98007a.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/mix/98007a.wgsl.expected.ir.dxc.hlsl
index 0ba40c6..a5c1150 100644
--- a/test/tint/builtins/gen/var/mix/98007a.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/mix/98007a.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,36 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+void mix_98007a() {
+  float4 res = (1.0f).xxxx;
+}
+
+void fragment_main() {
+  mix_98007a();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  mix_98007a();
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  mix_98007a();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  vertex_main_outputs v_2 = {v_1.pos};
+  return v_2;
+}
+
diff --git a/test/tint/builtins/gen/var/mix/98007a.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/mix/98007a.wgsl.expected.ir.fxc.hlsl
index 0ba40c6..a5c1150 100644
--- a/test/tint/builtins/gen/var/mix/98007a.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/mix/98007a.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,36 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+void mix_98007a() {
+  float4 res = (1.0f).xxxx;
+}
+
+void fragment_main() {
+  mix_98007a();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  mix_98007a();
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  mix_98007a();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  vertex_main_outputs v_2 = {v_1.pos};
+  return v_2;
+}
+
diff --git a/test/tint/builtins/gen/var/mix/98ee3e.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/mix/98ee3e.wgsl.expected.ir.dxc.hlsl
index 0ba40c6..3a8ba32 100644
--- a/test/tint/builtins/gen/var/mix/98ee3e.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/mix/98ee3e.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,45 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  vector<float16_t, 2> prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation vector<float16_t, 2> VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+vector<float16_t, 2> mix_98ee3e() {
+  vector<float16_t, 2> arg_0 = (float16_t(1.0h)).xx;
+  vector<float16_t, 2> arg_1 = (float16_t(1.0h)).xx;
+  vector<float16_t, 2> arg_2 = (float16_t(1.0h)).xx;
+  vector<float16_t, 2> res = lerp(arg_0, arg_1, arg_2);
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store<vector<float16_t, 2> >(0u, mix_98ee3e());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store<vector<float16_t, 2> >(0u, mix_98ee3e());
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = mix_98ee3e();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
diff --git a/test/tint/builtins/gen/var/mix/98ee3e.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/mix/98ee3e.wgsl.expected.ir.fxc.hlsl
index 0ba40c6..641f367 100644
--- a/test/tint/builtins/gen/var/mix/98ee3e.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/mix/98ee3e.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,50 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct VertexOutput {
+  float4 pos;
+  vector<float16_t, 2> prevent_dce;
+};
+
+struct vertex_main_outputs {
+  nointerpolation vector<float16_t, 2> VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+vector<float16_t, 2> mix_98ee3e() {
+  vector<float16_t, 2> arg_0 = (float16_t(1.0h)).xx;
+  vector<float16_t, 2> arg_1 = (float16_t(1.0h)).xx;
+  vector<float16_t, 2> arg_2 = (float16_t(1.0h)).xx;
+  vector<float16_t, 2> res = lerp(arg_0, arg_1, arg_2);
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store<vector<float16_t, 2> >(0u, mix_98ee3e());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store<vector<float16_t, 2> >(0u, mix_98ee3e());
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = mix_98ee3e();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
+FXC validation failure:
+c:\src\dawn\Shader@0x0000026D7EE8D0F0(3,10-18): error X3000: syntax error: unexpected token 'float16_t'
+
diff --git a/test/tint/builtins/gen/var/mix/9c2681.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/mix/9c2681.wgsl.expected.ir.dxc.hlsl
index 0ba40c6..933c602 100644
--- a/test/tint/builtins/gen/var/mix/9c2681.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/mix/9c2681.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,36 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+void mix_9c2681() {
+  float3 res = (1.0f).xxx;
+}
+
+void fragment_main() {
+  mix_9c2681();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  mix_9c2681();
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  mix_9c2681();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  vertex_main_outputs v_2 = {v_1.pos};
+  return v_2;
+}
+
diff --git a/test/tint/builtins/gen/var/mix/9c2681.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/mix/9c2681.wgsl.expected.ir.fxc.hlsl
index 0ba40c6..933c602 100644
--- a/test/tint/builtins/gen/var/mix/9c2681.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/mix/9c2681.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,36 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+void mix_9c2681() {
+  float3 res = (1.0f).xxx;
+}
+
+void fragment_main() {
+  mix_9c2681();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  mix_9c2681();
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  mix_9c2681();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  vertex_main_outputs v_2 = {v_1.pos};
+  return v_2;
+}
+
diff --git a/test/tint/builtins/gen/var/mix/c1aec6.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/mix/c1aec6.wgsl.expected.ir.dxc.hlsl
index 0ba40c6..6f8da08 100644
--- a/test/tint/builtins/gen/var/mix/c1aec6.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/mix/c1aec6.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,45 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  vector<float16_t, 3> prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation vector<float16_t, 3> VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+vector<float16_t, 3> mix_c1aec6() {
+  vector<float16_t, 3> arg_0 = (float16_t(1.0h)).xxx;
+  vector<float16_t, 3> arg_1 = (float16_t(1.0h)).xxx;
+  float16_t arg_2 = float16_t(1.0h);
+  vector<float16_t, 3> res = lerp(arg_0, arg_1, arg_2);
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store<vector<float16_t, 3> >(0u, mix_c1aec6());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store<vector<float16_t, 3> >(0u, mix_c1aec6());
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = mix_c1aec6();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
diff --git a/test/tint/builtins/gen/var/mix/c1aec6.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/mix/c1aec6.wgsl.expected.ir.fxc.hlsl
index 0ba40c6..c28a3fc 100644
--- a/test/tint/builtins/gen/var/mix/c1aec6.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/mix/c1aec6.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,50 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct VertexOutput {
+  float4 pos;
+  vector<float16_t, 3> prevent_dce;
+};
+
+struct vertex_main_outputs {
+  nointerpolation vector<float16_t, 3> VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+vector<float16_t, 3> mix_c1aec6() {
+  vector<float16_t, 3> arg_0 = (float16_t(1.0h)).xxx;
+  vector<float16_t, 3> arg_1 = (float16_t(1.0h)).xxx;
+  float16_t arg_2 = float16_t(1.0h);
+  vector<float16_t, 3> res = lerp(arg_0, arg_1, arg_2);
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store<vector<float16_t, 3> >(0u, mix_c1aec6());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store<vector<float16_t, 3> >(0u, mix_c1aec6());
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = mix_c1aec6();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
+FXC validation failure:
+c:\src\dawn\Shader@0x00000190AC9D5600(3,10-18): error X3000: syntax error: unexpected token 'float16_t'
+
diff --git a/test/tint/builtins/gen/var/mix/c37ede.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/mix/c37ede.wgsl.expected.ir.dxc.hlsl
index 0ba40c6..607499a 100644
--- a/test/tint/builtins/gen/var/mix/c37ede.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/mix/c37ede.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,45 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  float4 prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation float4 VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+float4 mix_c37ede() {
+  float4 arg_0 = (1.0f).xxxx;
+  float4 arg_1 = (1.0f).xxxx;
+  float4 arg_2 = (1.0f).xxxx;
+  float4 res = lerp(arg_0, arg_1, arg_2);
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store4(0u, asuint(mix_c37ede()));
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store4(0u, asuint(mix_c37ede()));
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = mix_c37ede();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
diff --git a/test/tint/builtins/gen/var/mix/c37ede.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/mix/c37ede.wgsl.expected.ir.fxc.hlsl
index 0ba40c6..607499a 100644
--- a/test/tint/builtins/gen/var/mix/c37ede.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/mix/c37ede.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,45 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  float4 prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation float4 VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+float4 mix_c37ede() {
+  float4 arg_0 = (1.0f).xxxx;
+  float4 arg_1 = (1.0f).xxxx;
+  float4 arg_2 = (1.0f).xxxx;
+  float4 res = lerp(arg_0, arg_1, arg_2);
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store4(0u, asuint(mix_c37ede()));
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store4(0u, asuint(mix_c37ede()));
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = mix_c37ede();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
diff --git a/test/tint/builtins/gen/var/mix/e46a83.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/mix/e46a83.wgsl.expected.ir.dxc.hlsl
index 0ba40c6..b726c7c 100644
--- a/test/tint/builtins/gen/var/mix/e46a83.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/mix/e46a83.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,45 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  vector<float16_t, 2> prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation vector<float16_t, 2> VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+vector<float16_t, 2> mix_e46a83() {
+  vector<float16_t, 2> arg_0 = (float16_t(1.0h)).xx;
+  vector<float16_t, 2> arg_1 = (float16_t(1.0h)).xx;
+  float16_t arg_2 = float16_t(1.0h);
+  vector<float16_t, 2> res = lerp(arg_0, arg_1, arg_2);
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store<vector<float16_t, 2> >(0u, mix_e46a83());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store<vector<float16_t, 2> >(0u, mix_e46a83());
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = mix_e46a83();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
diff --git a/test/tint/builtins/gen/var/mix/e46a83.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/mix/e46a83.wgsl.expected.ir.fxc.hlsl
index 0ba40c6..ceb75b8 100644
--- a/test/tint/builtins/gen/var/mix/e46a83.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/mix/e46a83.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,50 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct VertexOutput {
+  float4 pos;
+  vector<float16_t, 2> prevent_dce;
+};
+
+struct vertex_main_outputs {
+  nointerpolation vector<float16_t, 2> VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+vector<float16_t, 2> mix_e46a83() {
+  vector<float16_t, 2> arg_0 = (float16_t(1.0h)).xx;
+  vector<float16_t, 2> arg_1 = (float16_t(1.0h)).xx;
+  float16_t arg_2 = float16_t(1.0h);
+  vector<float16_t, 2> res = lerp(arg_0, arg_1, arg_2);
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store<vector<float16_t, 2> >(0u, mix_e46a83());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store<vector<float16_t, 2> >(0u, mix_e46a83());
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = mix_e46a83();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
+FXC validation failure:
+c:\src\dawn\Shader@0x000001B32F003FB0(3,10-18): error X3000: syntax error: unexpected token 'float16_t'
+
diff --git a/test/tint/builtins/gen/var/mix/ee2468.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/mix/ee2468.wgsl.expected.ir.dxc.hlsl
index 0ba40c6..0f9f160 100644
--- a/test/tint/builtins/gen/var/mix/ee2468.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/mix/ee2468.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,45 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  vector<float16_t, 4> prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation vector<float16_t, 4> VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+vector<float16_t, 4> mix_ee2468() {
+  vector<float16_t, 4> arg_0 = (float16_t(1.0h)).xxxx;
+  vector<float16_t, 4> arg_1 = (float16_t(1.0h)).xxxx;
+  vector<float16_t, 4> arg_2 = (float16_t(1.0h)).xxxx;
+  vector<float16_t, 4> res = lerp(arg_0, arg_1, arg_2);
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store<vector<float16_t, 4> >(0u, mix_ee2468());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store<vector<float16_t, 4> >(0u, mix_ee2468());
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = mix_ee2468();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
diff --git a/test/tint/builtins/gen/var/mix/ee2468.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/mix/ee2468.wgsl.expected.ir.fxc.hlsl
index 0ba40c6..3abac12 100644
--- a/test/tint/builtins/gen/var/mix/ee2468.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/mix/ee2468.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,50 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct VertexOutput {
+  float4 pos;
+  vector<float16_t, 4> prevent_dce;
+};
+
+struct vertex_main_outputs {
+  nointerpolation vector<float16_t, 4> VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+vector<float16_t, 4> mix_ee2468() {
+  vector<float16_t, 4> arg_0 = (float16_t(1.0h)).xxxx;
+  vector<float16_t, 4> arg_1 = (float16_t(1.0h)).xxxx;
+  vector<float16_t, 4> arg_2 = (float16_t(1.0h)).xxxx;
+  vector<float16_t, 4> res = lerp(arg_0, arg_1, arg_2);
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store<vector<float16_t, 4> >(0u, mix_ee2468());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store<vector<float16_t, 4> >(0u, mix_ee2468());
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = mix_ee2468();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
+FXC validation failure:
+c:\src\dawn\Shader@0x000002032C6F7E10(3,10-18): error X3000: syntax error: unexpected token 'float16_t'
+
diff --git a/test/tint/builtins/gen/var/mix/ef3575.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/mix/ef3575.wgsl.expected.ir.dxc.hlsl
index 0ba40c6..a82e086 100644
--- a/test/tint/builtins/gen/var/mix/ef3575.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/mix/ef3575.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,36 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+void mix_ef3575() {
+  float2 res = (1.0f).xx;
+}
+
+void fragment_main() {
+  mix_ef3575();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  mix_ef3575();
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  mix_ef3575();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  vertex_main_outputs v_2 = {v_1.pos};
+  return v_2;
+}
+
diff --git a/test/tint/builtins/gen/var/mix/ef3575.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/mix/ef3575.wgsl.expected.ir.fxc.hlsl
index 0ba40c6..a82e086 100644
--- a/test/tint/builtins/gen/var/mix/ef3575.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/mix/ef3575.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,36 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+void mix_ef3575() {
+  float2 res = (1.0f).xx;
+}
+
+void fragment_main() {
+  mix_ef3575();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  mix_ef3575();
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  mix_ef3575();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  vertex_main_outputs v_2 = {v_1.pos};
+  return v_2;
+}
+
diff --git a/test/tint/builtins/gen/var/mix/f1a543.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/mix/f1a543.wgsl.expected.ir.dxc.hlsl
index 0ba40c6..28874f9 100644
--- a/test/tint/builtins/gen/var/mix/f1a543.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/mix/f1a543.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,45 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  vector<float16_t, 4> prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation vector<float16_t, 4> VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+vector<float16_t, 4> mix_f1a543() {
+  vector<float16_t, 4> arg_0 = (float16_t(1.0h)).xxxx;
+  vector<float16_t, 4> arg_1 = (float16_t(1.0h)).xxxx;
+  float16_t arg_2 = float16_t(1.0h);
+  vector<float16_t, 4> res = lerp(arg_0, arg_1, arg_2);
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store<vector<float16_t, 4> >(0u, mix_f1a543());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store<vector<float16_t, 4> >(0u, mix_f1a543());
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = mix_f1a543();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
diff --git a/test/tint/builtins/gen/var/mix/f1a543.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/mix/f1a543.wgsl.expected.ir.fxc.hlsl
index 0ba40c6..e7a32ce 100644
--- a/test/tint/builtins/gen/var/mix/f1a543.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/mix/f1a543.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,50 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct VertexOutput {
+  float4 pos;
+  vector<float16_t, 4> prevent_dce;
+};
+
+struct vertex_main_outputs {
+  nointerpolation vector<float16_t, 4> VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+vector<float16_t, 4> mix_f1a543() {
+  vector<float16_t, 4> arg_0 = (float16_t(1.0h)).xxxx;
+  vector<float16_t, 4> arg_1 = (float16_t(1.0h)).xxxx;
+  float16_t arg_2 = float16_t(1.0h);
+  vector<float16_t, 4> res = lerp(arg_0, arg_1, arg_2);
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store<vector<float16_t, 4> >(0u, mix_f1a543());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store<vector<float16_t, 4> >(0u, mix_f1a543());
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = mix_f1a543();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
+FXC validation failure:
+c:\src\dawn\Shader@0x0000020C7F655450(3,10-18): error X3000: syntax error: unexpected token 'float16_t'
+
diff --git a/test/tint/builtins/gen/var/modf/2d50da.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/modf/2d50da.wgsl.expected.ir.dxc.hlsl
index 0ba40c6..d029cd1 100644
--- a/test/tint/builtins/gen/var/modf/2d50da.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/modf/2d50da.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,49 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct modf_result_vec2_f32 {
+  float2 fract;
+  float2 whole;
+};
+
+struct VertexOutput {
+  float4 pos;
+};
+
+struct vertex_main_outputs {
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+void modf_2d50da() {
+  float2 arg_0 = (-1.5f).xx;
+  modf_result_vec2_f32 res = modf(arg_0);
+}
+
+void fragment_main() {
+  modf_2d50da();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  modf_2d50da();
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  modf_2d50da();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  vertex_main_outputs v_2 = {v_1.pos};
+  return v_2;
+}
+
+DXC validation failure:
+hlsl.hlsl:17:30: error: use of undeclared identifier 'modf'
+  modf_result_vec2_f32 res = modf(arg_0);
+                             ^
+
diff --git a/test/tint/builtins/gen/var/modf/2d50da.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/modf/2d50da.wgsl.expected.ir.fxc.hlsl
index 0ba40c6..778374d 100644
--- a/test/tint/builtins/gen/var/modf/2d50da.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/modf/2d50da.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,49 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct modf_result_vec2_f32 {
+  float2 fract;
+  float2 whole;
+};
+
+struct VertexOutput {
+  float4 pos;
+};
+
+struct vertex_main_outputs {
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+void modf_2d50da() {
+  float2 arg_0 = (-1.5f).xx;
+  modf_result_vec2_f32 res = modf(arg_0);
+}
+
+void fragment_main() {
+  modf_2d50da();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  modf_2d50da();
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  modf_2d50da();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  vertex_main_outputs v_2 = {v_1.pos};
+  return v_2;
+}
+
+FXC validation failure:
+c:\src\dawn\Shader@0x000002559ED009A0(17,30-40): error X3013: 'modf': no matching 1 parameter intrinsic function
+c:\src\dawn\Shader@0x000002559ED009A0(17,30-40): error X3013: Possible intrinsic functions are:
+c:\src\dawn\Shader@0x000002559ED009A0(17,30-40): error X3013:     modf(float|half|min10float|min16float, out float|half|min10float|min16float ip)
+
diff --git a/test/tint/builtins/gen/var/modf/45005f.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/modf/45005f.wgsl.expected.ir.dxc.hlsl
index 0ba40c6..690d0da 100644
--- a/test/tint/builtins/gen/var/modf/45005f.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/modf/45005f.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,49 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct modf_result_vec3_f16 {
+  vector<float16_t, 3> fract;
+  vector<float16_t, 3> whole;
+};
+
+struct VertexOutput {
+  float4 pos;
+};
+
+struct vertex_main_outputs {
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+void modf_45005f() {
+  vector<float16_t, 3> arg_0 = (float16_t(-1.5h)).xxx;
+  modf_result_vec3_f16 res = modf(arg_0);
+}
+
+void fragment_main() {
+  modf_45005f();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  modf_45005f();
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  modf_45005f();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  vertex_main_outputs v_2 = {v_1.pos};
+  return v_2;
+}
+
+DXC validation failure:
+hlsl.hlsl:17:30: error: use of undeclared identifier 'modf'
+  modf_result_vec3_f16 res = modf(arg_0);
+                             ^
+
diff --git a/test/tint/builtins/gen/var/modf/45005f.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/modf/45005f.wgsl.expected.ir.fxc.hlsl
index 0ba40c6..c2cbde6 100644
--- a/test/tint/builtins/gen/var/modf/45005f.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/modf/45005f.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,47 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct modf_result_vec3_f16 {
+  vector<float16_t, 3> fract;
+  vector<float16_t, 3> whole;
+};
+
+struct VertexOutput {
+  float4 pos;
+};
+
+struct vertex_main_outputs {
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+void modf_45005f() {
+  vector<float16_t, 3> arg_0 = (float16_t(-1.5h)).xxx;
+  modf_result_vec3_f16 res = modf(arg_0);
+}
+
+void fragment_main() {
+  modf_45005f();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  modf_45005f();
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  modf_45005f();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  vertex_main_outputs v_2 = {v_1.pos};
+  return v_2;
+}
+
+FXC validation failure:
+c:\src\dawn\Shader@0x0000017719C57F70(2,10-18): error X3000: syntax error: unexpected token 'float16_t'
+
diff --git a/test/tint/builtins/gen/var/modf/4bfced.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/modf/4bfced.wgsl.expected.ir.dxc.hlsl
index 0ba40c6..c969311 100644
--- a/test/tint/builtins/gen/var/modf/4bfced.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/modf/4bfced.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,49 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct modf_result_vec4_f32 {
+  float4 fract;
+  float4 whole;
+};
+
+struct VertexOutput {
+  float4 pos;
+};
+
+struct vertex_main_outputs {
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+void modf_4bfced() {
+  float4 arg_0 = (-1.5f).xxxx;
+  modf_result_vec4_f32 res = modf(arg_0);
+}
+
+void fragment_main() {
+  modf_4bfced();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  modf_4bfced();
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  modf_4bfced();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  vertex_main_outputs v_2 = {v_1.pos};
+  return v_2;
+}
+
+DXC validation failure:
+hlsl.hlsl:17:30: error: use of undeclared identifier 'modf'
+  modf_result_vec4_f32 res = modf(arg_0);
+                             ^
+
diff --git a/test/tint/builtins/gen/var/modf/4bfced.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/modf/4bfced.wgsl.expected.ir.fxc.hlsl
index 0ba40c6..8f2216c 100644
--- a/test/tint/builtins/gen/var/modf/4bfced.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/modf/4bfced.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,49 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct modf_result_vec4_f32 {
+  float4 fract;
+  float4 whole;
+};
+
+struct VertexOutput {
+  float4 pos;
+};
+
+struct vertex_main_outputs {
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+void modf_4bfced() {
+  float4 arg_0 = (-1.5f).xxxx;
+  modf_result_vec4_f32 res = modf(arg_0);
+}
+
+void fragment_main() {
+  modf_4bfced();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  modf_4bfced();
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  modf_4bfced();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  vertex_main_outputs v_2 = {v_1.pos};
+  return v_2;
+}
+
+FXC validation failure:
+c:\src\dawn\Shader@0x00000271B99DF670(17,30-40): error X3013: 'modf': no matching 1 parameter intrinsic function
+c:\src\dawn\Shader@0x00000271B99DF670(17,30-40): error X3013: Possible intrinsic functions are:
+c:\src\dawn\Shader@0x00000271B99DF670(17,30-40): error X3013:     modf(float|half|min10float|min16float, out float|half|min10float|min16float ip)
+
diff --git a/test/tint/builtins/gen/var/modf/5ea256.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/modf/5ea256.wgsl.expected.ir.dxc.hlsl
index 0ba40c6..34170e8 100644
--- a/test/tint/builtins/gen/var/modf/5ea256.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/modf/5ea256.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,49 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct modf_result_vec3_f32 {
+  float3 fract;
+  float3 whole;
+};
+
+struct VertexOutput {
+  float4 pos;
+};
+
+struct vertex_main_outputs {
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+void modf_5ea256() {
+  float3 arg_0 = (-1.5f).xxx;
+  modf_result_vec3_f32 res = modf(arg_0);
+}
+
+void fragment_main() {
+  modf_5ea256();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  modf_5ea256();
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  modf_5ea256();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  vertex_main_outputs v_2 = {v_1.pos};
+  return v_2;
+}
+
+DXC validation failure:
+hlsl.hlsl:17:30: error: use of undeclared identifier 'modf'
+  modf_result_vec3_f32 res = modf(arg_0);
+                             ^
+
diff --git a/test/tint/builtins/gen/var/modf/5ea256.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/modf/5ea256.wgsl.expected.ir.fxc.hlsl
index 0ba40c6..03d0c03 100644
--- a/test/tint/builtins/gen/var/modf/5ea256.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/modf/5ea256.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,49 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct modf_result_vec3_f32 {
+  float3 fract;
+  float3 whole;
+};
+
+struct VertexOutput {
+  float4 pos;
+};
+
+struct vertex_main_outputs {
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+void modf_5ea256() {
+  float3 arg_0 = (-1.5f).xxx;
+  modf_result_vec3_f32 res = modf(arg_0);
+}
+
+void fragment_main() {
+  modf_5ea256();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  modf_5ea256();
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  modf_5ea256();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  vertex_main_outputs v_2 = {v_1.pos};
+  return v_2;
+}
+
+FXC validation failure:
+c:\src\dawn\Shader@0x000001EF90CB6690(17,30-40): error X3013: 'modf': no matching 1 parameter intrinsic function
+c:\src\dawn\Shader@0x000001EF90CB6690(17,30-40): error X3013: Possible intrinsic functions are:
+c:\src\dawn\Shader@0x000001EF90CB6690(17,30-40): error X3013:     modf(float|half|min10float|min16float, out float|half|min10float|min16float ip)
+
diff --git a/test/tint/builtins/gen/var/modf/68d8ee.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/modf/68d8ee.wgsl.expected.ir.dxc.hlsl
index 0ba40c6..d46d364 100644
--- a/test/tint/builtins/gen/var/modf/68d8ee.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/modf/68d8ee.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,41 @@
-SKIP: FAILED
+struct modf_result_vec3_f32 {
+  float3 fract;
+  float3 whole;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct VertexOutput {
+  float4 pos;
+};
+
+struct vertex_main_outputs {
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+void modf_68d8ee() {
+  modf_result_vec3_f32 res = {(-0.5f).xxx, (-1.0f).xxx};
+}
+
+void fragment_main() {
+  modf_68d8ee();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  modf_68d8ee();
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  modf_68d8ee();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  vertex_main_outputs v_2 = {v_1.pos};
+  return v_2;
+}
+
diff --git a/test/tint/builtins/gen/var/modf/68d8ee.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/modf/68d8ee.wgsl.expected.ir.fxc.hlsl
index 0ba40c6..d46d364 100644
--- a/test/tint/builtins/gen/var/modf/68d8ee.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/modf/68d8ee.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,41 @@
-SKIP: FAILED
+struct modf_result_vec3_f32 {
+  float3 fract;
+  float3 whole;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct VertexOutput {
+  float4 pos;
+};
+
+struct vertex_main_outputs {
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+void modf_68d8ee() {
+  modf_result_vec3_f32 res = {(-0.5f).xxx, (-1.0f).xxx};
+}
+
+void fragment_main() {
+  modf_68d8ee();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  modf_68d8ee();
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  modf_68d8ee();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  vertex_main_outputs v_2 = {v_1.pos};
+  return v_2;
+}
+
diff --git a/test/tint/builtins/gen/var/modf/732aa6.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/modf/732aa6.wgsl.expected.ir.dxc.hlsl
index 0ba40c6..4e9fcfc 100644
--- a/test/tint/builtins/gen/var/modf/732aa6.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/modf/732aa6.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,41 @@
-SKIP: FAILED
+struct modf_result_vec2_f32 {
+  float2 fract;
+  float2 whole;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct VertexOutput {
+  float4 pos;
+};
+
+struct vertex_main_outputs {
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+void modf_732aa6() {
+  modf_result_vec2_f32 res = {(-0.5f).xx, (-1.0f).xx};
+}
+
+void fragment_main() {
+  modf_732aa6();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  modf_732aa6();
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  modf_732aa6();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  vertex_main_outputs v_2 = {v_1.pos};
+  return v_2;
+}
+
diff --git a/test/tint/builtins/gen/var/modf/732aa6.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/modf/732aa6.wgsl.expected.ir.fxc.hlsl
index 0ba40c6..4e9fcfc 100644
--- a/test/tint/builtins/gen/var/modf/732aa6.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/modf/732aa6.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,41 @@
-SKIP: FAILED
+struct modf_result_vec2_f32 {
+  float2 fract;
+  float2 whole;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct VertexOutput {
+  float4 pos;
+};
+
+struct vertex_main_outputs {
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+void modf_732aa6() {
+  modf_result_vec2_f32 res = {(-0.5f).xx, (-1.0f).xx};
+}
+
+void fragment_main() {
+  modf_732aa6();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  modf_732aa6();
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  modf_732aa6();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  vertex_main_outputs v_2 = {v_1.pos};
+  return v_2;
+}
+
diff --git a/test/tint/builtins/gen/var/modf/8dbbbf.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/modf/8dbbbf.wgsl.expected.ir.dxc.hlsl
index 0ba40c6..24563c3 100644
--- a/test/tint/builtins/gen/var/modf/8dbbbf.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/modf/8dbbbf.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,49 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct modf_result_f16 {
+  float16_t fract;
+  float16_t whole;
+};
+
+struct VertexOutput {
+  float4 pos;
+};
+
+struct vertex_main_outputs {
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+void modf_8dbbbf() {
+  float16_t arg_0 = float16_t(-1.5h);
+  modf_result_f16 res = modf(arg_0);
+}
+
+void fragment_main() {
+  modf_8dbbbf();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  modf_8dbbbf();
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  modf_8dbbbf();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  vertex_main_outputs v_2 = {v_1.pos};
+  return v_2;
+}
+
+DXC validation failure:
+hlsl.hlsl:17:25: error: use of undeclared identifier 'modf'
+  modf_result_f16 res = modf(arg_0);
+                        ^
+
diff --git a/test/tint/builtins/gen/var/modf/8dbbbf.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/modf/8dbbbf.wgsl.expected.ir.fxc.hlsl
index 0ba40c6..cad24b4 100644
--- a/test/tint/builtins/gen/var/modf/8dbbbf.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/modf/8dbbbf.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,47 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct modf_result_f16 {
+  float16_t fract;
+  float16_t whole;
+};
+
+struct VertexOutput {
+  float4 pos;
+};
+
+struct vertex_main_outputs {
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+void modf_8dbbbf() {
+  float16_t arg_0 = float16_t(-1.5h);
+  modf_result_f16 res = modf(arg_0);
+}
+
+void fragment_main() {
+  modf_8dbbbf();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  modf_8dbbbf();
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  modf_8dbbbf();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  vertex_main_outputs v_2 = {v_1.pos};
+  return v_2;
+}
+
+FXC validation failure:
+c:\src\dawn\Shader@0x000001806DABCBE0(2,3-11): error X3000: unrecognized identifier 'float16_t'
+
diff --git a/test/tint/builtins/gen/var/modf/995934.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/modf/995934.wgsl.expected.ir.dxc.hlsl
index 0ba40c6..c729345 100644
--- a/test/tint/builtins/gen/var/modf/995934.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/modf/995934.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,49 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct modf_result_vec4_f16 {
+  vector<float16_t, 4> fract;
+  vector<float16_t, 4> whole;
+};
+
+struct VertexOutput {
+  float4 pos;
+};
+
+struct vertex_main_outputs {
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+void modf_995934() {
+  vector<float16_t, 4> arg_0 = (float16_t(-1.5h)).xxxx;
+  modf_result_vec4_f16 res = modf(arg_0);
+}
+
+void fragment_main() {
+  modf_995934();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  modf_995934();
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  modf_995934();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  vertex_main_outputs v_2 = {v_1.pos};
+  return v_2;
+}
+
+DXC validation failure:
+hlsl.hlsl:17:30: error: use of undeclared identifier 'modf'
+  modf_result_vec4_f16 res = modf(arg_0);
+                             ^
+
diff --git a/test/tint/builtins/gen/var/modf/995934.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/modf/995934.wgsl.expected.ir.fxc.hlsl
index 0ba40c6..e112916 100644
--- a/test/tint/builtins/gen/var/modf/995934.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/modf/995934.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,47 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct modf_result_vec4_f16 {
+  vector<float16_t, 4> fract;
+  vector<float16_t, 4> whole;
+};
+
+struct VertexOutput {
+  float4 pos;
+};
+
+struct vertex_main_outputs {
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+void modf_995934() {
+  vector<float16_t, 4> arg_0 = (float16_t(-1.5h)).xxxx;
+  modf_result_vec4_f16 res = modf(arg_0);
+}
+
+void fragment_main() {
+  modf_995934();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  modf_995934();
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  modf_995934();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  vertex_main_outputs v_2 = {v_1.pos};
+  return v_2;
+}
+
+FXC validation failure:
+c:\src\dawn\Shader@0x0000021758FEFA20(2,10-18): error X3000: syntax error: unexpected token 'float16_t'
+
diff --git a/test/tint/builtins/gen/var/modf/a545b9.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/modf/a545b9.wgsl.expected.ir.dxc.hlsl
index 0ba40c6..e33a9b3 100644
--- a/test/tint/builtins/gen/var/modf/a545b9.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/modf/a545b9.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,49 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct modf_result_vec2_f16 {
+  vector<float16_t, 2> fract;
+  vector<float16_t, 2> whole;
+};
+
+struct VertexOutput {
+  float4 pos;
+};
+
+struct vertex_main_outputs {
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+void modf_a545b9() {
+  vector<float16_t, 2> arg_0 = (float16_t(-1.5h)).xx;
+  modf_result_vec2_f16 res = modf(arg_0);
+}
+
+void fragment_main() {
+  modf_a545b9();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  modf_a545b9();
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  modf_a545b9();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  vertex_main_outputs v_2 = {v_1.pos};
+  return v_2;
+}
+
+DXC validation failure:
+hlsl.hlsl:17:30: error: use of undeclared identifier 'modf'
+  modf_result_vec2_f16 res = modf(arg_0);
+                             ^
+
diff --git a/test/tint/builtins/gen/var/modf/a545b9.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/modf/a545b9.wgsl.expected.ir.fxc.hlsl
index 0ba40c6..b0b5e38 100644
--- a/test/tint/builtins/gen/var/modf/a545b9.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/modf/a545b9.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,47 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct modf_result_vec2_f16 {
+  vector<float16_t, 2> fract;
+  vector<float16_t, 2> whole;
+};
+
+struct VertexOutput {
+  float4 pos;
+};
+
+struct vertex_main_outputs {
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+void modf_a545b9() {
+  vector<float16_t, 2> arg_0 = (float16_t(-1.5h)).xx;
+  modf_result_vec2_f16 res = modf(arg_0);
+}
+
+void fragment_main() {
+  modf_a545b9();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  modf_a545b9();
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  modf_a545b9();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  vertex_main_outputs v_2 = {v_1.pos};
+  return v_2;
+}
+
+FXC validation failure:
+c:\src\dawn\Shader@0x000001DED0A247C0(2,10-18): error X3000: syntax error: unexpected token 'float16_t'
+
diff --git a/test/tint/builtins/gen/var/modf/bbf7f7.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/modf/bbf7f7.wgsl.expected.ir.dxc.hlsl
index 0ba40c6..6b73368 100644
--- a/test/tint/builtins/gen/var/modf/bbf7f7.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/modf/bbf7f7.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,49 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct modf_result_f32 {
+  float fract;
+  float whole;
+};
+
+struct VertexOutput {
+  float4 pos;
+};
+
+struct vertex_main_outputs {
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+void modf_bbf7f7() {
+  float arg_0 = -1.5f;
+  modf_result_f32 res = modf(arg_0);
+}
+
+void fragment_main() {
+  modf_bbf7f7();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  modf_bbf7f7();
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  modf_bbf7f7();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  vertex_main_outputs v_2 = {v_1.pos};
+  return v_2;
+}
+
+DXC validation failure:
+hlsl.hlsl:17:25: error: use of undeclared identifier 'modf'
+  modf_result_f32 res = modf(arg_0);
+                        ^
+
diff --git a/test/tint/builtins/gen/var/modf/bbf7f7.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/modf/bbf7f7.wgsl.expected.ir.fxc.hlsl
index 0ba40c6..dca335f 100644
--- a/test/tint/builtins/gen/var/modf/bbf7f7.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/modf/bbf7f7.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,49 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct modf_result_f32 {
+  float fract;
+  float whole;
+};
+
+struct VertexOutput {
+  float4 pos;
+};
+
+struct vertex_main_outputs {
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+void modf_bbf7f7() {
+  float arg_0 = -1.5f;
+  modf_result_f32 res = modf(arg_0);
+}
+
+void fragment_main() {
+  modf_bbf7f7();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  modf_bbf7f7();
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  modf_bbf7f7();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  vertex_main_outputs v_2 = {v_1.pos};
+  return v_2;
+}
+
+FXC validation failure:
+c:\src\dawn\Shader@0x000001D2B124D2B0(17,25-35): error X3013: 'modf': no matching 1 parameter intrinsic function
+c:\src\dawn\Shader@0x000001D2B124D2B0(17,25-35): error X3013: Possible intrinsic functions are:
+c:\src\dawn\Shader@0x000001D2B124D2B0(17,25-35): error X3013:     modf(float|half|min10float|min16float, out float|half|min10float|min16float ip)
+
diff --git a/test/tint/builtins/gen/var/modf/c15f48.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/modf/c15f48.wgsl.expected.ir.dxc.hlsl
index 0ba40c6..a8638c5 100644
--- a/test/tint/builtins/gen/var/modf/c15f48.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/modf/c15f48.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,41 @@
-SKIP: FAILED
+struct modf_result_f32 {
+  float fract;
+  float whole;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct VertexOutput {
+  float4 pos;
+};
+
+struct vertex_main_outputs {
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+void modf_c15f48() {
+  modf_result_f32 res = {-0.5f, -1.0f};
+}
+
+void fragment_main() {
+  modf_c15f48();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  modf_c15f48();
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  modf_c15f48();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  vertex_main_outputs v_2 = {v_1.pos};
+  return v_2;
+}
+
diff --git a/test/tint/builtins/gen/var/modf/c15f48.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/modf/c15f48.wgsl.expected.ir.fxc.hlsl
index 0ba40c6..a8638c5 100644
--- a/test/tint/builtins/gen/var/modf/c15f48.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/modf/c15f48.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,41 @@
-SKIP: FAILED
+struct modf_result_f32 {
+  float fract;
+  float whole;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct VertexOutput {
+  float4 pos;
+};
+
+struct vertex_main_outputs {
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+void modf_c15f48() {
+  modf_result_f32 res = {-0.5f, -1.0f};
+}
+
+void fragment_main() {
+  modf_c15f48();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  modf_c15f48();
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  modf_c15f48();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  vertex_main_outputs v_2 = {v_1.pos};
+  return v_2;
+}
+
diff --git a/test/tint/builtins/gen/var/modf/f3d1f9.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/modf/f3d1f9.wgsl.expected.ir.dxc.hlsl
index 0ba40c6..4912cb0 100644
--- a/test/tint/builtins/gen/var/modf/f3d1f9.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/modf/f3d1f9.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,41 @@
-SKIP: FAILED
+struct modf_result_vec4_f32 {
+  float4 fract;
+  float4 whole;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct VertexOutput {
+  float4 pos;
+};
+
+struct vertex_main_outputs {
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+void modf_f3d1f9() {
+  modf_result_vec4_f32 res = {(-0.5f).xxxx, (-1.0f).xxxx};
+}
+
+void fragment_main() {
+  modf_f3d1f9();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  modf_f3d1f9();
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  modf_f3d1f9();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  vertex_main_outputs v_2 = {v_1.pos};
+  return v_2;
+}
+
diff --git a/test/tint/builtins/gen/var/modf/f3d1f9.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/modf/f3d1f9.wgsl.expected.ir.fxc.hlsl
index 0ba40c6..4912cb0 100644
--- a/test/tint/builtins/gen/var/modf/f3d1f9.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/modf/f3d1f9.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,41 @@
-SKIP: FAILED
+struct modf_result_vec4_f32 {
+  float4 fract;
+  float4 whole;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct VertexOutput {
+  float4 pos;
+};
+
+struct vertex_main_outputs {
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+void modf_f3d1f9() {
+  modf_result_vec4_f32 res = {(-0.5f).xxxx, (-1.0f).xxxx};
+}
+
+void fragment_main() {
+  modf_f3d1f9();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  modf_f3d1f9();
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  modf_f3d1f9();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  vertex_main_outputs v_2 = {v_1.pos};
+  return v_2;
+}
+
diff --git a/test/tint/builtins/gen/var/normalize/39d5ec.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/normalize/39d5ec.wgsl.expected.ir.dxc.hlsl
index 0ba40c6..fb7ea26 100644
--- a/test/tint/builtins/gen/var/normalize/39d5ec.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/normalize/39d5ec.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,43 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  vector<float16_t, 3> prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation vector<float16_t, 3> VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+vector<float16_t, 3> normalize_39d5ec() {
+  vector<float16_t, 3> arg_0 = (float16_t(1.0h)).xxx;
+  vector<float16_t, 3> res = normalize(arg_0);
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store<vector<float16_t, 3> >(0u, normalize_39d5ec());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store<vector<float16_t, 3> >(0u, normalize_39d5ec());
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = normalize_39d5ec();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
diff --git a/test/tint/builtins/gen/var/normalize/39d5ec.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/normalize/39d5ec.wgsl.expected.ir.fxc.hlsl
index 0ba40c6..73f215b 100644
--- a/test/tint/builtins/gen/var/normalize/39d5ec.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/normalize/39d5ec.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,48 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct VertexOutput {
+  float4 pos;
+  vector<float16_t, 3> prevent_dce;
+};
+
+struct vertex_main_outputs {
+  nointerpolation vector<float16_t, 3> VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+vector<float16_t, 3> normalize_39d5ec() {
+  vector<float16_t, 3> arg_0 = (float16_t(1.0h)).xxx;
+  vector<float16_t, 3> res = normalize(arg_0);
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store<vector<float16_t, 3> >(0u, normalize_39d5ec());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store<vector<float16_t, 3> >(0u, normalize_39d5ec());
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = normalize_39d5ec();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
+FXC validation failure:
+c:\src\dawn\Shader@0x000001B9B523CE40(3,10-18): error X3000: syntax error: unexpected token 'float16_t'
+
diff --git a/test/tint/builtins/gen/var/normalize/4eaf61.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/normalize/4eaf61.wgsl.expected.ir.dxc.hlsl
index 0ba40c6..493eee7 100644
--- a/test/tint/builtins/gen/var/normalize/4eaf61.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/normalize/4eaf61.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,36 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+void normalize_4eaf61() {
+  float4 res = (0.5f).xxxx;
+}
+
+void fragment_main() {
+  normalize_4eaf61();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  normalize_4eaf61();
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  normalize_4eaf61();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  vertex_main_outputs v_2 = {v_1.pos};
+  return v_2;
+}
+
diff --git a/test/tint/builtins/gen/var/normalize/4eaf61.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/normalize/4eaf61.wgsl.expected.ir.fxc.hlsl
index 0ba40c6..493eee7 100644
--- a/test/tint/builtins/gen/var/normalize/4eaf61.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/normalize/4eaf61.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,36 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+void normalize_4eaf61() {
+  float4 res = (0.5f).xxxx;
+}
+
+void fragment_main() {
+  normalize_4eaf61();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  normalize_4eaf61();
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  normalize_4eaf61();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  vertex_main_outputs v_2 = {v_1.pos};
+  return v_2;
+}
+
diff --git a/test/tint/builtins/gen/var/normalize/584e47.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/normalize/584e47.wgsl.expected.ir.dxc.hlsl
index 0ba40c6..4ede2fc 100644
--- a/test/tint/builtins/gen/var/normalize/584e47.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/normalize/584e47.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,36 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+void normalize_584e47() {
+  float2 res = (0.70710676908493041992f).xx;
+}
+
+void fragment_main() {
+  normalize_584e47();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  normalize_584e47();
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  normalize_584e47();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  vertex_main_outputs v_2 = {v_1.pos};
+  return v_2;
+}
+
diff --git a/test/tint/builtins/gen/var/normalize/584e47.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/normalize/584e47.wgsl.expected.ir.fxc.hlsl
index 0ba40c6..4ede2fc 100644
--- a/test/tint/builtins/gen/var/normalize/584e47.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/normalize/584e47.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,36 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+void normalize_584e47() {
+  float2 res = (0.70710676908493041992f).xx;
+}
+
+void fragment_main() {
+  normalize_584e47();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  normalize_584e47();
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  normalize_584e47();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  vertex_main_outputs v_2 = {v_1.pos};
+  return v_2;
+}
+
diff --git a/test/tint/builtins/gen/var/normalize/64d8c0.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/normalize/64d8c0.wgsl.expected.ir.dxc.hlsl
index 0ba40c6..5e43a27 100644
--- a/test/tint/builtins/gen/var/normalize/64d8c0.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/normalize/64d8c0.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,43 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  float3 prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation float3 VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+float3 normalize_64d8c0() {
+  float3 arg_0 = (1.0f).xxx;
+  float3 res = normalize(arg_0);
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store3(0u, asuint(normalize_64d8c0()));
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store3(0u, asuint(normalize_64d8c0()));
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = normalize_64d8c0();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
diff --git a/test/tint/builtins/gen/var/normalize/64d8c0.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/normalize/64d8c0.wgsl.expected.ir.fxc.hlsl
index 0ba40c6..5e43a27 100644
--- a/test/tint/builtins/gen/var/normalize/64d8c0.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/normalize/64d8c0.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,43 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  float3 prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation float3 VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+float3 normalize_64d8c0() {
+  float3 arg_0 = (1.0f).xxx;
+  float3 res = normalize(arg_0);
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store3(0u, asuint(normalize_64d8c0()));
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store3(0u, asuint(normalize_64d8c0()));
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = normalize_64d8c0();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
diff --git a/test/tint/builtins/gen/var/normalize/7990f3.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/normalize/7990f3.wgsl.expected.ir.dxc.hlsl
index 0ba40c6..3b502c8 100644
--- a/test/tint/builtins/gen/var/normalize/7990f3.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/normalize/7990f3.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,43 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  vector<float16_t, 2> prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation vector<float16_t, 2> VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+vector<float16_t, 2> normalize_7990f3() {
+  vector<float16_t, 2> arg_0 = (float16_t(1.0h)).xx;
+  vector<float16_t, 2> res = normalize(arg_0);
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store<vector<float16_t, 2> >(0u, normalize_7990f3());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store<vector<float16_t, 2> >(0u, normalize_7990f3());
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = normalize_7990f3();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
diff --git a/test/tint/builtins/gen/var/normalize/7990f3.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/normalize/7990f3.wgsl.expected.ir.fxc.hlsl
index 0ba40c6..a499600 100644
--- a/test/tint/builtins/gen/var/normalize/7990f3.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/normalize/7990f3.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,48 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct VertexOutput {
+  float4 pos;
+  vector<float16_t, 2> prevent_dce;
+};
+
+struct vertex_main_outputs {
+  nointerpolation vector<float16_t, 2> VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+vector<float16_t, 2> normalize_7990f3() {
+  vector<float16_t, 2> arg_0 = (float16_t(1.0h)).xx;
+  vector<float16_t, 2> res = normalize(arg_0);
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store<vector<float16_t, 2> >(0u, normalize_7990f3());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store<vector<float16_t, 2> >(0u, normalize_7990f3());
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = normalize_7990f3();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
+FXC validation failure:
+c:\src\dawn\Shader@0x000001FBAEA80D30(3,10-18): error X3000: syntax error: unexpected token 'float16_t'
+
diff --git a/test/tint/builtins/gen/var/normalize/9a0aab.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/normalize/9a0aab.wgsl.expected.ir.dxc.hlsl
index 0ba40c6..c6380fc 100644
--- a/test/tint/builtins/gen/var/normalize/9a0aab.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/normalize/9a0aab.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,43 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  float4 prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation float4 VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+float4 normalize_9a0aab() {
+  float4 arg_0 = (1.0f).xxxx;
+  float4 res = normalize(arg_0);
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store4(0u, asuint(normalize_9a0aab()));
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store4(0u, asuint(normalize_9a0aab()));
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = normalize_9a0aab();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
diff --git a/test/tint/builtins/gen/var/normalize/9a0aab.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/normalize/9a0aab.wgsl.expected.ir.fxc.hlsl
index 0ba40c6..c6380fc 100644
--- a/test/tint/builtins/gen/var/normalize/9a0aab.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/normalize/9a0aab.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,43 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  float4 prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation float4 VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+float4 normalize_9a0aab() {
+  float4 arg_0 = (1.0f).xxxx;
+  float4 res = normalize(arg_0);
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store4(0u, asuint(normalize_9a0aab()));
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store4(0u, asuint(normalize_9a0aab()));
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = normalize_9a0aab();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
diff --git a/test/tint/builtins/gen/var/normalize/b8cb8d.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/normalize/b8cb8d.wgsl.expected.ir.dxc.hlsl
index 0ba40c6..7a22704 100644
--- a/test/tint/builtins/gen/var/normalize/b8cb8d.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/normalize/b8cb8d.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,43 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  vector<float16_t, 4> prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation vector<float16_t, 4> VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+vector<float16_t, 4> normalize_b8cb8d() {
+  vector<float16_t, 4> arg_0 = (float16_t(1.0h)).xxxx;
+  vector<float16_t, 4> res = normalize(arg_0);
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store<vector<float16_t, 4> >(0u, normalize_b8cb8d());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store<vector<float16_t, 4> >(0u, normalize_b8cb8d());
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = normalize_b8cb8d();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
diff --git a/test/tint/builtins/gen/var/normalize/b8cb8d.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/normalize/b8cb8d.wgsl.expected.ir.fxc.hlsl
index 0ba40c6..ccfa664 100644
--- a/test/tint/builtins/gen/var/normalize/b8cb8d.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/normalize/b8cb8d.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,48 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct VertexOutput {
+  float4 pos;
+  vector<float16_t, 4> prevent_dce;
+};
+
+struct vertex_main_outputs {
+  nointerpolation vector<float16_t, 4> VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+vector<float16_t, 4> normalize_b8cb8d() {
+  vector<float16_t, 4> arg_0 = (float16_t(1.0h)).xxxx;
+  vector<float16_t, 4> res = normalize(arg_0);
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store<vector<float16_t, 4> >(0u, normalize_b8cb8d());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store<vector<float16_t, 4> >(0u, normalize_b8cb8d());
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = normalize_b8cb8d();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
+FXC validation failure:
+c:\src\dawn\Shader@0x0000012988F70920(3,10-18): error X3000: syntax error: unexpected token 'float16_t'
+
diff --git a/test/tint/builtins/gen/var/normalize/e7def8.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/normalize/e7def8.wgsl.expected.ir.dxc.hlsl
index 0ba40c6..fcb35c9 100644
--- a/test/tint/builtins/gen/var/normalize/e7def8.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/normalize/e7def8.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,36 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+void normalize_e7def8() {
+  float3 res = (0.57735025882720947266f).xxx;
+}
+
+void fragment_main() {
+  normalize_e7def8();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  normalize_e7def8();
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  normalize_e7def8();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  vertex_main_outputs v_2 = {v_1.pos};
+  return v_2;
+}
+
diff --git a/test/tint/builtins/gen/var/normalize/e7def8.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/normalize/e7def8.wgsl.expected.ir.fxc.hlsl
index 0ba40c6..fcb35c9 100644
--- a/test/tint/builtins/gen/var/normalize/e7def8.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/normalize/e7def8.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,36 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+void normalize_e7def8() {
+  float3 res = (0.57735025882720947266f).xxx;
+}
+
+void fragment_main() {
+  normalize_e7def8();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  normalize_e7def8();
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  normalize_e7def8();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  vertex_main_outputs v_2 = {v_1.pos};
+  return v_2;
+}
+
diff --git a/test/tint/builtins/gen/var/normalize/fc2ef1.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/normalize/fc2ef1.wgsl.expected.ir.dxc.hlsl
index 0ba40c6..fcab6ce 100644
--- a/test/tint/builtins/gen/var/normalize/fc2ef1.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/normalize/fc2ef1.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,43 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  float2 prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation float2 VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+float2 normalize_fc2ef1() {
+  float2 arg_0 = (1.0f).xx;
+  float2 res = normalize(arg_0);
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store2(0u, asuint(normalize_fc2ef1()));
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store2(0u, asuint(normalize_fc2ef1()));
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = normalize_fc2ef1();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
diff --git a/test/tint/builtins/gen/var/normalize/fc2ef1.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/normalize/fc2ef1.wgsl.expected.ir.fxc.hlsl
index 0ba40c6..fcab6ce 100644
--- a/test/tint/builtins/gen/var/normalize/fc2ef1.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/normalize/fc2ef1.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,43 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  float2 prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation float2 VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+float2 normalize_fc2ef1() {
+  float2 arg_0 = (1.0f).xx;
+  float2 res = normalize(arg_0);
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store2(0u, asuint(normalize_fc2ef1()));
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store2(0u, asuint(normalize_fc2ef1()));
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = normalize_fc2ef1();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
diff --git a/test/tint/builtins/gen/var/pack2x16float/0e97b3.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/pack2x16float/0e97b3.wgsl.expected.ir.dxc.hlsl
index b18d1f5..01c1faf 100644
--- a/test/tint/builtins/gen/var/pack2x16float/0e97b3.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/pack2x16float/0e97b3.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,44 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  uint prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: pack2x16float
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation uint VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+uint pack2x16float_0e97b3() {
+  float2 arg_0 = (1.0f).xx;
+  uint2 v = f32tof16(arg_0);
+  uint res = (v.x | (v.y << 16u));
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store(0u, pack2x16float_0e97b3());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store(0u, pack2x16float_0e97b3());
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = pack2x16float_0e97b3();
+  VertexOutput v_1 = tint_symbol;
+  return v_1;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_2 = vertex_main_inner();
+  VertexOutput v_3 = v_2;
+  VertexOutput v_4 = v_2;
+  vertex_main_outputs v_5 = {v_4.prevent_dce, v_3.pos};
+  return v_5;
+}
+
diff --git a/test/tint/builtins/gen/var/pack2x16float/0e97b3.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/pack2x16float/0e97b3.wgsl.expected.ir.fxc.hlsl
index b18d1f5..01c1faf 100644
--- a/test/tint/builtins/gen/var/pack2x16float/0e97b3.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/pack2x16float/0e97b3.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,44 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  uint prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: pack2x16float
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation uint VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+uint pack2x16float_0e97b3() {
+  float2 arg_0 = (1.0f).xx;
+  uint2 v = f32tof16(arg_0);
+  uint res = (v.x | (v.y << 16u));
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store(0u, pack2x16float_0e97b3());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store(0u, pack2x16float_0e97b3());
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = pack2x16float_0e97b3();
+  VertexOutput v_1 = tint_symbol;
+  return v_1;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_2 = vertex_main_inner();
+  VertexOutput v_3 = v_2;
+  VertexOutput v_4 = v_2;
+  vertex_main_outputs v_5 = {v_4.prevent_dce, v_3.pos};
+  return v_5;
+}
+
diff --git a/test/tint/builtins/gen/var/pack2x16snorm/6c169b.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/pack2x16snorm/6c169b.wgsl.expected.ir.dxc.hlsl
index 9c53957..bca4371 100644
--- a/test/tint/builtins/gen/var/pack2x16snorm/6c169b.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/pack2x16snorm/6c169b.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,44 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  uint prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: pack2x16snorm
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation uint VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+uint pack2x16snorm_6c169b() {
+  float2 arg_0 = (1.0f).xx;
+  int2 v = (int2(round((clamp(arg_0, (-1.0f).xx, (1.0f).xx) * 32767.0f))) & (65535).xx);
+  uint res = asuint((v.x | (v.y << 16u)));
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store(0u, pack2x16snorm_6c169b());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store(0u, pack2x16snorm_6c169b());
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = pack2x16snorm_6c169b();
+  VertexOutput v_1 = tint_symbol;
+  return v_1;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_2 = vertex_main_inner();
+  VertexOutput v_3 = v_2;
+  VertexOutput v_4 = v_2;
+  vertex_main_outputs v_5 = {v_4.prevent_dce, v_3.pos};
+  return v_5;
+}
+
diff --git a/test/tint/builtins/gen/var/pack2x16snorm/6c169b.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/pack2x16snorm/6c169b.wgsl.expected.ir.fxc.hlsl
index 9c53957..bca4371 100644
--- a/test/tint/builtins/gen/var/pack2x16snorm/6c169b.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/pack2x16snorm/6c169b.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,44 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  uint prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: pack2x16snorm
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation uint VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+uint pack2x16snorm_6c169b() {
+  float2 arg_0 = (1.0f).xx;
+  int2 v = (int2(round((clamp(arg_0, (-1.0f).xx, (1.0f).xx) * 32767.0f))) & (65535).xx);
+  uint res = asuint((v.x | (v.y << 16u)));
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store(0u, pack2x16snorm_6c169b());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store(0u, pack2x16snorm_6c169b());
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = pack2x16snorm_6c169b();
+  VertexOutput v_1 = tint_symbol;
+  return v_1;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_2 = vertex_main_inner();
+  VertexOutput v_3 = v_2;
+  VertexOutput v_4 = v_2;
+  vertex_main_outputs v_5 = {v_4.prevent_dce, v_3.pos};
+  return v_5;
+}
+
diff --git a/test/tint/builtins/gen/var/pack2x16unorm/0f08e4.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/pack2x16unorm/0f08e4.wgsl.expected.ir.dxc.hlsl
index 2722a4c..8ae49d1 100644
--- a/test/tint/builtins/gen/var/pack2x16unorm/0f08e4.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/pack2x16unorm/0f08e4.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,44 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  uint prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: pack2x16unorm
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation uint VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+uint pack2x16unorm_0f08e4() {
+  float2 arg_0 = (1.0f).xx;
+  uint2 v = uint2(round((clamp(arg_0, (0.0f).xx, (1.0f).xx) * 65535.0f)));
+  uint res = (v.x | (v.y << 16u));
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store(0u, pack2x16unorm_0f08e4());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store(0u, pack2x16unorm_0f08e4());
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = pack2x16unorm_0f08e4();
+  VertexOutput v_1 = tint_symbol;
+  return v_1;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_2 = vertex_main_inner();
+  VertexOutput v_3 = v_2;
+  VertexOutput v_4 = v_2;
+  vertex_main_outputs v_5 = {v_4.prevent_dce, v_3.pos};
+  return v_5;
+}
+
diff --git a/test/tint/builtins/gen/var/pack2x16unorm/0f08e4.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/pack2x16unorm/0f08e4.wgsl.expected.ir.fxc.hlsl
index 2722a4c..8ae49d1 100644
--- a/test/tint/builtins/gen/var/pack2x16unorm/0f08e4.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/pack2x16unorm/0f08e4.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,44 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  uint prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: pack2x16unorm
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation uint VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+uint pack2x16unorm_0f08e4() {
+  float2 arg_0 = (1.0f).xx;
+  uint2 v = uint2(round((clamp(arg_0, (0.0f).xx, (1.0f).xx) * 65535.0f)));
+  uint res = (v.x | (v.y << 16u));
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store(0u, pack2x16unorm_0f08e4());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store(0u, pack2x16unorm_0f08e4());
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = pack2x16unorm_0f08e4();
+  VertexOutput v_1 = tint_symbol;
+  return v_1;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_2 = vertex_main_inner();
+  VertexOutput v_3 = v_2;
+  VertexOutput v_4 = v_2;
+  vertex_main_outputs v_5 = {v_4.prevent_dce, v_3.pos};
+  return v_5;
+}
+
diff --git a/test/tint/builtins/gen/var/pack4x8snorm/4d22e7.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/pack4x8snorm/4d22e7.wgsl.expected.ir.dxc.hlsl
index 4834dab..1d246dc 100644
--- a/test/tint/builtins/gen/var/pack4x8snorm/4d22e7.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/pack4x8snorm/4d22e7.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,44 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  uint prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: pack4x8snorm
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation uint VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+uint pack4x8snorm_4d22e7() {
+  float4 arg_0 = (1.0f).xxxx;
+  int4 v = (int4(round((clamp(arg_0, (-1.0f).xxxx, (1.0f).xxxx) * 127.0f))) & (255).xxxx);
+  uint res = asuint((v.x | ((v.y << 8u) | ((v.z << 16u) | (v.w << 24u)))));
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store(0u, pack4x8snorm_4d22e7());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store(0u, pack4x8snorm_4d22e7());
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = pack4x8snorm_4d22e7();
+  VertexOutput v_1 = tint_symbol;
+  return v_1;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_2 = vertex_main_inner();
+  VertexOutput v_3 = v_2;
+  VertexOutput v_4 = v_2;
+  vertex_main_outputs v_5 = {v_4.prevent_dce, v_3.pos};
+  return v_5;
+}
+
diff --git a/test/tint/builtins/gen/var/pack4x8snorm/4d22e7.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/pack4x8snorm/4d22e7.wgsl.expected.ir.fxc.hlsl
index 4834dab..1d246dc 100644
--- a/test/tint/builtins/gen/var/pack4x8snorm/4d22e7.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/pack4x8snorm/4d22e7.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,44 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  uint prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: pack4x8snorm
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation uint VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+uint pack4x8snorm_4d22e7() {
+  float4 arg_0 = (1.0f).xxxx;
+  int4 v = (int4(round((clamp(arg_0, (-1.0f).xxxx, (1.0f).xxxx) * 127.0f))) & (255).xxxx);
+  uint res = asuint((v.x | ((v.y << 8u) | ((v.z << 16u) | (v.w << 24u)))));
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store(0u, pack4x8snorm_4d22e7());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store(0u, pack4x8snorm_4d22e7());
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = pack4x8snorm_4d22e7();
+  VertexOutput v_1 = tint_symbol;
+  return v_1;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_2 = vertex_main_inner();
+  VertexOutput v_3 = v_2;
+  VertexOutput v_4 = v_2;
+  vertex_main_outputs v_5 = {v_4.prevent_dce, v_3.pos};
+  return v_5;
+}
+
diff --git a/test/tint/builtins/gen/var/pack4x8unorm/95c456.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/pack4x8unorm/95c456.wgsl.expected.ir.dxc.hlsl
index f30932b..5b9f994 100644
--- a/test/tint/builtins/gen/var/pack4x8unorm/95c456.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/pack4x8unorm/95c456.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,44 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  uint prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: pack4x8unorm
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation uint VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+uint pack4x8unorm_95c456() {
+  float4 arg_0 = (1.0f).xxxx;
+  uint4 v = uint4(round((clamp(arg_0, (0.0f).xxxx, (1.0f).xxxx) * 255.0f)));
+  uint res = (v.x | ((v.y << 8u) | ((v.z << 16u) | (v.w << 24u))));
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store(0u, pack4x8unorm_95c456());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store(0u, pack4x8unorm_95c456());
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = pack4x8unorm_95c456();
+  VertexOutput v_1 = tint_symbol;
+  return v_1;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_2 = vertex_main_inner();
+  VertexOutput v_3 = v_2;
+  VertexOutput v_4 = v_2;
+  vertex_main_outputs v_5 = {v_4.prevent_dce, v_3.pos};
+  return v_5;
+}
+
diff --git a/test/tint/builtins/gen/var/pack4x8unorm/95c456.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/pack4x8unorm/95c456.wgsl.expected.ir.fxc.hlsl
index f30932b..5b9f994 100644
--- a/test/tint/builtins/gen/var/pack4x8unorm/95c456.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/pack4x8unorm/95c456.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,44 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  uint prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: pack4x8unorm
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation uint VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+uint pack4x8unorm_95c456() {
+  float4 arg_0 = (1.0f).xxxx;
+  uint4 v = uint4(round((clamp(arg_0, (0.0f).xxxx, (1.0f).xxxx) * 255.0f)));
+  uint res = (v.x | ((v.y << 8u) | ((v.z << 16u) | (v.w << 24u))));
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store(0u, pack4x8unorm_95c456());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store(0u, pack4x8unorm_95c456());
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = pack4x8unorm_95c456();
+  VertexOutput v_1 = tint_symbol;
+  return v_1;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_2 = vertex_main_inner();
+  VertexOutput v_3 = v_2;
+  VertexOutput v_4 = v_2;
+  vertex_main_outputs v_5 = {v_4.prevent_dce, v_3.pos};
+  return v_5;
+}
+
diff --git a/test/tint/builtins/gen/var/pack4xI8/bfce01.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/pack4xI8/bfce01.wgsl.expected.ir.dxc.hlsl
index f3c8b62..1ea5d7b 100644
--- a/test/tint/builtins/gen/var/pack4xI8/bfce01.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/pack4xI8/bfce01.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,43 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  uint prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: pack4xI8
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation uint VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+uint pack4xI8_bfce01() {
+  int4 arg_0 = (1).xxxx;
+  uint res = uint(pack_s8(arg_0));
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store(0u, pack4xI8_bfce01());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store(0u, pack4xI8_bfce01());
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = pack4xI8_bfce01();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
diff --git a/test/tint/builtins/gen/var/pack4xI8/bfce01.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/pack4xI8/bfce01.wgsl.expected.ir.fxc.hlsl
index f3c8b62..7406193 100644
--- a/test/tint/builtins/gen/var/pack4xI8/bfce01.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/pack4xI8/bfce01.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,47 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  uint prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: pack4xI8
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation uint VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+uint pack4xI8_bfce01() {
+  int4 arg_0 = (1).xxxx;
+  int4 v = arg_0;
+  uint4 v_1 = uint4(0u, 8u, 16u, 24u);
+  uint4 v_2 = asuint(v);
+  uint4 v_3 = ((v_2 & uint4((255u).xxxx)) << v_1);
+  uint res = dot(v_3, uint4((1u).xxxx));
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store(0u, pack4xI8_bfce01());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store(0u, pack4xI8_bfce01());
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = pack4xI8_bfce01();
+  VertexOutput v_4 = tint_symbol;
+  return v_4;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_5 = vertex_main_inner();
+  VertexOutput v_6 = v_5;
+  VertexOutput v_7 = v_5;
+  vertex_main_outputs v_8 = {v_7.prevent_dce, v_6.pos};
+  return v_8;
+}
+
diff --git a/test/tint/builtins/gen/var/pack4xI8Clamp/e42b2a.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/pack4xI8Clamp/e42b2a.wgsl.expected.ir.dxc.hlsl
index 5d56a3a..6623280 100644
--- a/test/tint/builtins/gen/var/pack4xI8Clamp/e42b2a.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/pack4xI8Clamp/e42b2a.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,43 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  uint prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: pack4xI8Clamp
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation uint VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+uint pack4xI8Clamp_e42b2a() {
+  int4 arg_0 = (1).xxxx;
+  uint res = uint(pack_clamp_s8(arg_0));
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store(0u, pack4xI8Clamp_e42b2a());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store(0u, pack4xI8Clamp_e42b2a());
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = pack4xI8Clamp_e42b2a();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
diff --git a/test/tint/builtins/gen/var/pack4xI8Clamp/e42b2a.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/pack4xI8Clamp/e42b2a.wgsl.expected.ir.fxc.hlsl
index 5d56a3a..2b0dce0 100644
--- a/test/tint/builtins/gen/var/pack4xI8Clamp/e42b2a.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/pack4xI8Clamp/e42b2a.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,48 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  uint prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: pack4xI8Clamp
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation uint VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+uint pack4xI8Clamp_e42b2a() {
+  int4 arg_0 = (1).xxxx;
+  int4 v = arg_0;
+  uint4 v_1 = uint4(0u, 8u, 16u, 24u);
+  int4 v_2 = int4((-128).xxxx);
+  uint4 v_3 = asuint(clamp(v, v_2, int4((127).xxxx)));
+  uint4 v_4 = ((v_3 & uint4((255u).xxxx)) << v_1);
+  uint res = dot(v_4, uint4((1u).xxxx));
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store(0u, pack4xI8Clamp_e42b2a());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store(0u, pack4xI8Clamp_e42b2a());
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = pack4xI8Clamp_e42b2a();
+  VertexOutput v_5 = tint_symbol;
+  return v_5;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_6 = vertex_main_inner();
+  VertexOutput v_7 = v_6;
+  VertexOutput v_8 = v_6;
+  vertex_main_outputs v_9 = {v_8.prevent_dce, v_7.pos};
+  return v_9;
+}
+
diff --git a/test/tint/builtins/gen/var/pack4xU8/b70b53.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/pack4xU8/b70b53.wgsl.expected.ir.dxc.hlsl
index 21ec570..c6613b2 100644
--- a/test/tint/builtins/gen/var/pack4xU8/b70b53.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/pack4xU8/b70b53.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,43 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  uint prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: pack4xU8
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation uint VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+uint pack4xU8_b70b53() {
+  uint4 arg_0 = (1u).xxxx;
+  uint res = uint(pack_u8(arg_0));
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store(0u, pack4xU8_b70b53());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store(0u, pack4xU8_b70b53());
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = pack4xU8_b70b53();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
diff --git a/test/tint/builtins/gen/var/pack4xU8/b70b53.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/pack4xU8/b70b53.wgsl.expected.ir.fxc.hlsl
index 21ec570..71dfa92 100644
--- a/test/tint/builtins/gen/var/pack4xU8/b70b53.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/pack4xU8/b70b53.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,46 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  uint prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: pack4xU8
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation uint VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+uint pack4xU8_b70b53() {
+  uint4 arg_0 = (1u).xxxx;
+  uint4 v = arg_0;
+  uint4 v_1 = uint4(0u, 8u, 16u, 24u);
+  uint4 v_2 = ((v & uint4((255u).xxxx)) << v_1);
+  uint res = dot(v_2, uint4((1u).xxxx));
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store(0u, pack4xU8_b70b53());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store(0u, pack4xU8_b70b53());
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = pack4xU8_b70b53();
+  VertexOutput v_3 = tint_symbol;
+  return v_3;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_4 = vertex_main_inner();
+  VertexOutput v_5 = v_4;
+  VertexOutput v_6 = v_4;
+  vertex_main_outputs v_7 = {v_6.prevent_dce, v_5.pos};
+  return v_7;
+}
+
diff --git a/test/tint/builtins/gen/var/pack4xU8Clamp/6b8c1b.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/pack4xU8Clamp/6b8c1b.wgsl.expected.ir.dxc.hlsl
index 824dc98..e264ff9 100644
--- a/test/tint/builtins/gen/var/pack4xU8Clamp/6b8c1b.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/pack4xU8Clamp/6b8c1b.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,47 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  uint prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: pack4xU8Clamp
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation uint VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+uint pack4xU8Clamp_6b8c1b() {
+  uint4 arg_0 = (1u).xxxx;
+  uint4 v = arg_0;
+  uint4 v_1 = uint4(0u, 8u, 16u, 24u);
+  uint4 v_2 = uint4((0u).xxxx);
+  uint4 v_3 = (clamp(v, v_2, uint4((255u).xxxx)) << v_1);
+  uint res = dot(v_3, uint4((1u).xxxx));
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store(0u, pack4xU8Clamp_6b8c1b());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store(0u, pack4xU8Clamp_6b8c1b());
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = pack4xU8Clamp_6b8c1b();
+  VertexOutput v_4 = tint_symbol;
+  return v_4;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_5 = vertex_main_inner();
+  VertexOutput v_6 = v_5;
+  VertexOutput v_7 = v_5;
+  vertex_main_outputs v_8 = {v_7.prevent_dce, v_6.pos};
+  return v_8;
+}
+
diff --git a/test/tint/builtins/gen/var/pack4xU8Clamp/6b8c1b.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/pack4xU8Clamp/6b8c1b.wgsl.expected.ir.fxc.hlsl
index 824dc98..e264ff9 100644
--- a/test/tint/builtins/gen/var/pack4xU8Clamp/6b8c1b.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/pack4xU8Clamp/6b8c1b.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,47 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  uint prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: pack4xU8Clamp
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation uint VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+uint pack4xU8Clamp_6b8c1b() {
+  uint4 arg_0 = (1u).xxxx;
+  uint4 v = arg_0;
+  uint4 v_1 = uint4(0u, 8u, 16u, 24u);
+  uint4 v_2 = uint4((0u).xxxx);
+  uint4 v_3 = (clamp(v, v_2, uint4((255u).xxxx)) << v_1);
+  uint res = dot(v_3, uint4((1u).xxxx));
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store(0u, pack4xU8Clamp_6b8c1b());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store(0u, pack4xU8Clamp_6b8c1b());
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = pack4xU8Clamp_6b8c1b();
+  VertexOutput v_4 = tint_symbol;
+  return v_4;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_5 = vertex_main_inner();
+  VertexOutput v_6 = v_5;
+  VertexOutput v_7 = v_5;
+  vertex_main_outputs v_8 = {v_7.prevent_dce, v_6.pos};
+  return v_8;
+}
+
diff --git a/test/tint/builtins/gen/var/pow/04a908.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/pow/04a908.wgsl.expected.ir.dxc.hlsl
index 0ba40c6..34c2734 100644
--- a/test/tint/builtins/gen/var/pow/04a908.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/pow/04a908.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,44 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  float4 prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation float4 VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+float4 pow_04a908() {
+  float4 arg_0 = (1.0f).xxxx;
+  float4 arg_1 = (1.0f).xxxx;
+  float4 res = pow(arg_0, arg_1);
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store4(0u, asuint(pow_04a908()));
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store4(0u, asuint(pow_04a908()));
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = pow_04a908();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
diff --git a/test/tint/builtins/gen/var/pow/04a908.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/pow/04a908.wgsl.expected.ir.fxc.hlsl
index 0ba40c6..34c2734 100644
--- a/test/tint/builtins/gen/var/pow/04a908.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/pow/04a908.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,44 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  float4 prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation float4 VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+float4 pow_04a908() {
+  float4 arg_0 = (1.0f).xxxx;
+  float4 arg_1 = (1.0f).xxxx;
+  float4 res = pow(arg_0, arg_1);
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store4(0u, asuint(pow_04a908()));
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store4(0u, asuint(pow_04a908()));
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = pow_04a908();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
diff --git a/test/tint/builtins/gen/var/pow/46e029.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/pow/46e029.wgsl.expected.ir.dxc.hlsl
index 0ba40c6..23f7276 100644
--- a/test/tint/builtins/gen/var/pow/46e029.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/pow/46e029.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,44 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  float prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation float VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+float pow_46e029() {
+  float arg_0 = 1.0f;
+  float arg_1 = 1.0f;
+  float res = pow(arg_0, arg_1);
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store(0u, asuint(pow_46e029()));
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store(0u, asuint(pow_46e029()));
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = pow_46e029();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
diff --git a/test/tint/builtins/gen/var/pow/46e029.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/pow/46e029.wgsl.expected.ir.fxc.hlsl
index 0ba40c6..23f7276 100644
--- a/test/tint/builtins/gen/var/pow/46e029.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/pow/46e029.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,44 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  float prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation float VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+float pow_46e029() {
+  float arg_0 = 1.0f;
+  float arg_1 = 1.0f;
+  float res = pow(arg_0, arg_1);
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store(0u, asuint(pow_46e029()));
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store(0u, asuint(pow_46e029()));
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = pow_46e029();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
diff --git a/test/tint/builtins/gen/var/pow/4a46c9.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/pow/4a46c9.wgsl.expected.ir.dxc.hlsl
index 0ba40c6..0d4ecab 100644
--- a/test/tint/builtins/gen/var/pow/4a46c9.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/pow/4a46c9.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,44 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  float3 prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation float3 VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+float3 pow_4a46c9() {
+  float3 arg_0 = (1.0f).xxx;
+  float3 arg_1 = (1.0f).xxx;
+  float3 res = pow(arg_0, arg_1);
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store3(0u, asuint(pow_4a46c9()));
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store3(0u, asuint(pow_4a46c9()));
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = pow_4a46c9();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
diff --git a/test/tint/builtins/gen/var/pow/4a46c9.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/pow/4a46c9.wgsl.expected.ir.fxc.hlsl
index 0ba40c6..0d4ecab 100644
--- a/test/tint/builtins/gen/var/pow/4a46c9.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/pow/4a46c9.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,44 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  float3 prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation float3 VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+float3 pow_4a46c9() {
+  float3 arg_0 = (1.0f).xxx;
+  float3 arg_1 = (1.0f).xxx;
+  float3 res = pow(arg_0, arg_1);
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store3(0u, asuint(pow_4a46c9()));
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store3(0u, asuint(pow_4a46c9()));
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = pow_4a46c9();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
diff --git a/test/tint/builtins/gen/var/pow/4f33b2.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/pow/4f33b2.wgsl.expected.ir.dxc.hlsl
index 0ba40c6..388a38f 100644
--- a/test/tint/builtins/gen/var/pow/4f33b2.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/pow/4f33b2.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,44 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  vector<float16_t, 4> prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation vector<float16_t, 4> VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+vector<float16_t, 4> pow_4f33b2() {
+  vector<float16_t, 4> arg_0 = (float16_t(1.0h)).xxxx;
+  vector<float16_t, 4> arg_1 = (float16_t(1.0h)).xxxx;
+  vector<float16_t, 4> res = pow(arg_0, arg_1);
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store<vector<float16_t, 4> >(0u, pow_4f33b2());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store<vector<float16_t, 4> >(0u, pow_4f33b2());
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = pow_4f33b2();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
diff --git a/test/tint/builtins/gen/var/pow/4f33b2.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/pow/4f33b2.wgsl.expected.ir.fxc.hlsl
index 0ba40c6..354b2a8 100644
--- a/test/tint/builtins/gen/var/pow/4f33b2.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/pow/4f33b2.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,49 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct VertexOutput {
+  float4 pos;
+  vector<float16_t, 4> prevent_dce;
+};
+
+struct vertex_main_outputs {
+  nointerpolation vector<float16_t, 4> VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+vector<float16_t, 4> pow_4f33b2() {
+  vector<float16_t, 4> arg_0 = (float16_t(1.0h)).xxxx;
+  vector<float16_t, 4> arg_1 = (float16_t(1.0h)).xxxx;
+  vector<float16_t, 4> res = pow(arg_0, arg_1);
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store<vector<float16_t, 4> >(0u, pow_4f33b2());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store<vector<float16_t, 4> >(0u, pow_4f33b2());
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = pow_4f33b2();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
+FXC validation failure:
+c:\src\dawn\Shader@0x000001C8B252CA20(3,10-18): error X3000: syntax error: unexpected token 'float16_t'
+
diff --git a/test/tint/builtins/gen/var/pow/749c42.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/pow/749c42.wgsl.expected.ir.dxc.hlsl
index 0ba40c6..0a3e3c5 100644
--- a/test/tint/builtins/gen/var/pow/749c42.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/pow/749c42.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,36 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+void pow_749c42() {
+  float res = 1.0f;
+}
+
+void fragment_main() {
+  pow_749c42();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  pow_749c42();
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  pow_749c42();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  vertex_main_outputs v_2 = {v_1.pos};
+  return v_2;
+}
+
diff --git a/test/tint/builtins/gen/var/pow/749c42.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/pow/749c42.wgsl.expected.ir.fxc.hlsl
index 0ba40c6..0a3e3c5 100644
--- a/test/tint/builtins/gen/var/pow/749c42.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/pow/749c42.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,36 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+void pow_749c42() {
+  float res = 1.0f;
+}
+
+void fragment_main() {
+  pow_749c42();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  pow_749c42();
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  pow_749c42();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  vertex_main_outputs v_2 = {v_1.pos};
+  return v_2;
+}
+
diff --git a/test/tint/builtins/gen/var/pow/a8f6b2.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/pow/a8f6b2.wgsl.expected.ir.dxc.hlsl
index 0ba40c6..251d327 100644
--- a/test/tint/builtins/gen/var/pow/a8f6b2.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/pow/a8f6b2.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,36 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+void pow_a8f6b2() {
+  float4 res = (1.0f).xxxx;
+}
+
+void fragment_main() {
+  pow_a8f6b2();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  pow_a8f6b2();
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  pow_a8f6b2();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  vertex_main_outputs v_2 = {v_1.pos};
+  return v_2;
+}
+
diff --git a/test/tint/builtins/gen/var/pow/a8f6b2.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/pow/a8f6b2.wgsl.expected.ir.fxc.hlsl
index 0ba40c6..251d327 100644
--- a/test/tint/builtins/gen/var/pow/a8f6b2.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/pow/a8f6b2.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,36 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+void pow_a8f6b2() {
+  float4 res = (1.0f).xxxx;
+}
+
+void fragment_main() {
+  pow_a8f6b2();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  pow_a8f6b2();
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  pow_a8f6b2();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  vertex_main_outputs v_2 = {v_1.pos};
+  return v_2;
+}
+
diff --git a/test/tint/builtins/gen/var/pow/bc91ed.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/pow/bc91ed.wgsl.expected.ir.dxc.hlsl
index 0ba40c6..af45acb 100644
--- a/test/tint/builtins/gen/var/pow/bc91ed.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/pow/bc91ed.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,36 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+void pow_bc91ed() {
+  float2 res = (1.0f).xx;
+}
+
+void fragment_main() {
+  pow_bc91ed();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  pow_bc91ed();
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  pow_bc91ed();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  vertex_main_outputs v_2 = {v_1.pos};
+  return v_2;
+}
+
diff --git a/test/tint/builtins/gen/var/pow/bc91ed.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/pow/bc91ed.wgsl.expected.ir.fxc.hlsl
index 0ba40c6..af45acb 100644
--- a/test/tint/builtins/gen/var/pow/bc91ed.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/pow/bc91ed.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,36 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+void pow_bc91ed() {
+  float2 res = (1.0f).xx;
+}
+
+void fragment_main() {
+  pow_bc91ed();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  pow_bc91ed();
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  pow_bc91ed();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  vertex_main_outputs v_2 = {v_1.pos};
+  return v_2;
+}
+
diff --git a/test/tint/builtins/gen/var/pow/ce9ef5.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/pow/ce9ef5.wgsl.expected.ir.dxc.hlsl
index 0ba40c6..2cd3c00 100644
--- a/test/tint/builtins/gen/var/pow/ce9ef5.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/pow/ce9ef5.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,44 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  float16_t prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation float16_t VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+float16_t pow_ce9ef5() {
+  float16_t arg_0 = float16_t(1.0h);
+  float16_t arg_1 = float16_t(1.0h);
+  float16_t res = pow(arg_0, arg_1);
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store<float16_t>(0u, pow_ce9ef5());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store<float16_t>(0u, pow_ce9ef5());
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = pow_ce9ef5();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
diff --git a/test/tint/builtins/gen/var/pow/ce9ef5.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/pow/ce9ef5.wgsl.expected.ir.fxc.hlsl
index 0ba40c6..d3ff856 100644
--- a/test/tint/builtins/gen/var/pow/ce9ef5.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/pow/ce9ef5.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,49 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct VertexOutput {
+  float4 pos;
+  float16_t prevent_dce;
+};
+
+struct vertex_main_outputs {
+  nointerpolation float16_t VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+float16_t pow_ce9ef5() {
+  float16_t arg_0 = float16_t(1.0h);
+  float16_t arg_1 = float16_t(1.0h);
+  float16_t res = pow(arg_0, arg_1);
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store<float16_t>(0u, pow_ce9ef5());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store<float16_t>(0u, pow_ce9ef5());
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = pow_ce9ef5();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
+FXC validation failure:
+c:\src\dawn\Shader@0x000001BB17701010(3,3-11): error X3000: unrecognized identifier 'float16_t'
+
diff --git a/test/tint/builtins/gen/var/pow/e42f20.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/pow/e42f20.wgsl.expected.ir.dxc.hlsl
index 0ba40c6..324c872 100644
--- a/test/tint/builtins/gen/var/pow/e42f20.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/pow/e42f20.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,36 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+void pow_e42f20() {
+  float3 res = (1.0f).xxx;
+}
+
+void fragment_main() {
+  pow_e42f20();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  pow_e42f20();
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  pow_e42f20();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  vertex_main_outputs v_2 = {v_1.pos};
+  return v_2;
+}
+
diff --git a/test/tint/builtins/gen/var/pow/e42f20.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/pow/e42f20.wgsl.expected.ir.fxc.hlsl
index 0ba40c6..324c872 100644
--- a/test/tint/builtins/gen/var/pow/e42f20.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/pow/e42f20.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,36 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+void pow_e42f20() {
+  float3 res = (1.0f).xxx;
+}
+
+void fragment_main() {
+  pow_e42f20();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  pow_e42f20();
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  pow_e42f20();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  vertex_main_outputs v_2 = {v_1.pos};
+  return v_2;
+}
+
diff --git a/test/tint/builtins/gen/var/pow/e60ea5.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/pow/e60ea5.wgsl.expected.ir.dxc.hlsl
index 0ba40c6..d2ea815 100644
--- a/test/tint/builtins/gen/var/pow/e60ea5.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/pow/e60ea5.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,44 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  float2 prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation float2 VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+float2 pow_e60ea5() {
+  float2 arg_0 = (1.0f).xx;
+  float2 arg_1 = (1.0f).xx;
+  float2 res = pow(arg_0, arg_1);
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store2(0u, asuint(pow_e60ea5()));
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store2(0u, asuint(pow_e60ea5()));
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = pow_e60ea5();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
diff --git a/test/tint/builtins/gen/var/pow/e60ea5.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/pow/e60ea5.wgsl.expected.ir.fxc.hlsl
index 0ba40c6..d2ea815 100644
--- a/test/tint/builtins/gen/var/pow/e60ea5.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/pow/e60ea5.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,44 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  float2 prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation float2 VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+float2 pow_e60ea5() {
+  float2 arg_0 = (1.0f).xx;
+  float2 arg_1 = (1.0f).xx;
+  float2 res = pow(arg_0, arg_1);
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store2(0u, asuint(pow_e60ea5()));
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store2(0u, asuint(pow_e60ea5()));
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = pow_e60ea5();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
diff --git a/test/tint/builtins/gen/var/pow/f37b25.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/pow/f37b25.wgsl.expected.ir.dxc.hlsl
index 0ba40c6..a8fa812 100644
--- a/test/tint/builtins/gen/var/pow/f37b25.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/pow/f37b25.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,44 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  vector<float16_t, 2> prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation vector<float16_t, 2> VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+vector<float16_t, 2> pow_f37b25() {
+  vector<float16_t, 2> arg_0 = (float16_t(1.0h)).xx;
+  vector<float16_t, 2> arg_1 = (float16_t(1.0h)).xx;
+  vector<float16_t, 2> res = pow(arg_0, arg_1);
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store<vector<float16_t, 2> >(0u, pow_f37b25());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store<vector<float16_t, 2> >(0u, pow_f37b25());
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = pow_f37b25();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
diff --git a/test/tint/builtins/gen/var/pow/f37b25.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/pow/f37b25.wgsl.expected.ir.fxc.hlsl
index 0ba40c6..82af763 100644
--- a/test/tint/builtins/gen/var/pow/f37b25.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/pow/f37b25.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,49 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct VertexOutput {
+  float4 pos;
+  vector<float16_t, 2> prevent_dce;
+};
+
+struct vertex_main_outputs {
+  nointerpolation vector<float16_t, 2> VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+vector<float16_t, 2> pow_f37b25() {
+  vector<float16_t, 2> arg_0 = (float16_t(1.0h)).xx;
+  vector<float16_t, 2> arg_1 = (float16_t(1.0h)).xx;
+  vector<float16_t, 2> res = pow(arg_0, arg_1);
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store<vector<float16_t, 2> >(0u, pow_f37b25());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store<vector<float16_t, 2> >(0u, pow_f37b25());
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = pow_f37b25();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
+FXC validation failure:
+c:\src\dawn\Shader@0x00000248DCB53DC0(3,10-18): error X3000: syntax error: unexpected token 'float16_t'
+
diff --git a/test/tint/builtins/gen/var/pow/fa5429.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/pow/fa5429.wgsl.expected.ir.dxc.hlsl
index 0ba40c6..b3d7864 100644
--- a/test/tint/builtins/gen/var/pow/fa5429.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/pow/fa5429.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,44 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  vector<float16_t, 3> prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation vector<float16_t, 3> VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+vector<float16_t, 3> pow_fa5429() {
+  vector<float16_t, 3> arg_0 = (float16_t(1.0h)).xxx;
+  vector<float16_t, 3> arg_1 = (float16_t(1.0h)).xxx;
+  vector<float16_t, 3> res = pow(arg_0, arg_1);
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store<vector<float16_t, 3> >(0u, pow_fa5429());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store<vector<float16_t, 3> >(0u, pow_fa5429());
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = pow_fa5429();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
diff --git a/test/tint/builtins/gen/var/pow/fa5429.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/pow/fa5429.wgsl.expected.ir.fxc.hlsl
index 0ba40c6..99a2c9c 100644
--- a/test/tint/builtins/gen/var/pow/fa5429.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/pow/fa5429.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,49 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct VertexOutput {
+  float4 pos;
+  vector<float16_t, 3> prevent_dce;
+};
+
+struct vertex_main_outputs {
+  nointerpolation vector<float16_t, 3> VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+vector<float16_t, 3> pow_fa5429() {
+  vector<float16_t, 3> arg_0 = (float16_t(1.0h)).xxx;
+  vector<float16_t, 3> arg_1 = (float16_t(1.0h)).xxx;
+  vector<float16_t, 3> res = pow(arg_0, arg_1);
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store<vector<float16_t, 3> >(0u, pow_fa5429());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store<vector<float16_t, 3> >(0u, pow_fa5429());
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = pow_fa5429();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
+FXC validation failure:
+c:\src\dawn\Shader@0x000001C02265F480(3,10-18): error X3000: syntax error: unexpected token 'float16_t'
+
diff --git a/test/tint/builtins/gen/var/quantizeToF16/12e50e.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/quantizeToF16/12e50e.wgsl.expected.ir.dxc.hlsl
index 0b25d13..d96300c 100644
--- a/test/tint/builtins/gen/var/quantizeToF16/12e50e.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/quantizeToF16/12e50e.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,43 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  float prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: quantizeToF16
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation float VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+float quantizeToF16_12e50e() {
+  float arg_0 = 1.0f;
+  float res = f16tof32(f32tof16(arg_0));
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store(0u, asuint(quantizeToF16_12e50e()));
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store(0u, asuint(quantizeToF16_12e50e()));
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = quantizeToF16_12e50e();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
diff --git a/test/tint/builtins/gen/var/quantizeToF16/12e50e.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/quantizeToF16/12e50e.wgsl.expected.ir.fxc.hlsl
index 0b25d13..d96300c 100644
--- a/test/tint/builtins/gen/var/quantizeToF16/12e50e.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/quantizeToF16/12e50e.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,43 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  float prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: quantizeToF16
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation float VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+float quantizeToF16_12e50e() {
+  float arg_0 = 1.0f;
+  float res = f16tof32(f32tof16(arg_0));
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store(0u, asuint(quantizeToF16_12e50e()));
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store(0u, asuint(quantizeToF16_12e50e()));
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = quantizeToF16_12e50e();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
diff --git a/test/tint/builtins/gen/var/quantizeToF16/2cddf3.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/quantizeToF16/2cddf3.wgsl.expected.ir.dxc.hlsl
index 0b25d13..10a87d4 100644
--- a/test/tint/builtins/gen/var/quantizeToF16/2cddf3.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/quantizeToF16/2cddf3.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,43 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  float2 prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: quantizeToF16
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation float2 VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+float2 quantizeToF16_2cddf3() {
+  float2 arg_0 = (1.0f).xx;
+  float2 res = f16tof32(f32tof16(arg_0));
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store2(0u, asuint(quantizeToF16_2cddf3()));
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store2(0u, asuint(quantizeToF16_2cddf3()));
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = quantizeToF16_2cddf3();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
diff --git a/test/tint/builtins/gen/var/quantizeToF16/2cddf3.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/quantizeToF16/2cddf3.wgsl.expected.ir.fxc.hlsl
index 0b25d13..10a87d4 100644
--- a/test/tint/builtins/gen/var/quantizeToF16/2cddf3.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/quantizeToF16/2cddf3.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,43 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  float2 prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: quantizeToF16
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation float2 VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+float2 quantizeToF16_2cddf3() {
+  float2 arg_0 = (1.0f).xx;
+  float2 res = f16tof32(f32tof16(arg_0));
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store2(0u, asuint(quantizeToF16_2cddf3()));
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store2(0u, asuint(quantizeToF16_2cddf3()));
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = quantizeToF16_2cddf3();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
diff --git a/test/tint/builtins/gen/var/quantizeToF16/cba294.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/quantizeToF16/cba294.wgsl.expected.ir.dxc.hlsl
index 0b25d13..a44ea4a 100644
--- a/test/tint/builtins/gen/var/quantizeToF16/cba294.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/quantizeToF16/cba294.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,43 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  float4 prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: quantizeToF16
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation float4 VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+float4 quantizeToF16_cba294() {
+  float4 arg_0 = (1.0f).xxxx;
+  float4 res = f16tof32(f32tof16(arg_0));
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store4(0u, asuint(quantizeToF16_cba294()));
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store4(0u, asuint(quantizeToF16_cba294()));
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = quantizeToF16_cba294();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
diff --git a/test/tint/builtins/gen/var/quantizeToF16/cba294.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/quantizeToF16/cba294.wgsl.expected.ir.fxc.hlsl
index 0b25d13..a44ea4a 100644
--- a/test/tint/builtins/gen/var/quantizeToF16/cba294.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/quantizeToF16/cba294.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,43 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  float4 prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: quantizeToF16
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation float4 VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+float4 quantizeToF16_cba294() {
+  float4 arg_0 = (1.0f).xxxx;
+  float4 res = f16tof32(f32tof16(arg_0));
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store4(0u, asuint(quantizeToF16_cba294()));
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store4(0u, asuint(quantizeToF16_cba294()));
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = quantizeToF16_cba294();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
diff --git a/test/tint/builtins/gen/var/quantizeToF16/e8fd14.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/quantizeToF16/e8fd14.wgsl.expected.ir.dxc.hlsl
index 0b25d13..aa6de8c 100644
--- a/test/tint/builtins/gen/var/quantizeToF16/e8fd14.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/quantizeToF16/e8fd14.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,43 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  float3 prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: quantizeToF16
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation float3 VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+float3 quantizeToF16_e8fd14() {
+  float3 arg_0 = (1.0f).xxx;
+  float3 res = f16tof32(f32tof16(arg_0));
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store3(0u, asuint(quantizeToF16_e8fd14()));
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store3(0u, asuint(quantizeToF16_e8fd14()));
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = quantizeToF16_e8fd14();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
diff --git a/test/tint/builtins/gen/var/quantizeToF16/e8fd14.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/quantizeToF16/e8fd14.wgsl.expected.ir.fxc.hlsl
index 0b25d13..aa6de8c 100644
--- a/test/tint/builtins/gen/var/quantizeToF16/e8fd14.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/quantizeToF16/e8fd14.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,43 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  float3 prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: quantizeToF16
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation float3 VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+float3 quantizeToF16_e8fd14() {
+  float3 arg_0 = (1.0f).xxx;
+  float3 res = f16tof32(f32tof16(arg_0));
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store3(0u, asuint(quantizeToF16_e8fd14()));
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store3(0u, asuint(quantizeToF16_e8fd14()));
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = quantizeToF16_e8fd14();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
diff --git a/test/tint/builtins/gen/var/radians/09b7fc.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/radians/09b7fc.wgsl.expected.ir.dxc.hlsl
index 494d794..52961ef 100644
--- a/test/tint/builtins/gen/var/radians/09b7fc.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/radians/09b7fc.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,43 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  float4 prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: radians
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation float4 VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+float4 radians_09b7fc() {
+  float4 arg_0 = (1.0f).xxxx;
+  float4 res = (arg_0 * 0.01745329238474369049f);
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store4(0u, asuint(radians_09b7fc()));
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store4(0u, asuint(radians_09b7fc()));
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = radians_09b7fc();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
diff --git a/test/tint/builtins/gen/var/radians/09b7fc.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/radians/09b7fc.wgsl.expected.ir.fxc.hlsl
index 494d794..52961ef 100644
--- a/test/tint/builtins/gen/var/radians/09b7fc.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/radians/09b7fc.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,43 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  float4 prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: radians
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation float4 VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+float4 radians_09b7fc() {
+  float4 arg_0 = (1.0f).xxxx;
+  float4 res = (arg_0 * 0.01745329238474369049f);
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store4(0u, asuint(radians_09b7fc()));
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store4(0u, asuint(radians_09b7fc()));
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = radians_09b7fc();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
diff --git a/test/tint/builtins/gen/var/radians/208fd9.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/radians/208fd9.wgsl.expected.ir.dxc.hlsl
index 494d794..1f9a012 100644
--- a/test/tint/builtins/gen/var/radians/208fd9.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/radians/208fd9.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,43 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  float16_t prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: radians
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation float16_t VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+float16_t radians_208fd9() {
+  float16_t arg_0 = float16_t(1.0h);
+  float16_t res = (arg_0 * float16_t(0.0174407958984375h));
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store<float16_t>(0u, radians_208fd9());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store<float16_t>(0u, radians_208fd9());
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = radians_208fd9();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
diff --git a/test/tint/builtins/gen/var/radians/208fd9.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/radians/208fd9.wgsl.expected.ir.fxc.hlsl
index 494d794..104a7b0 100644
--- a/test/tint/builtins/gen/var/radians/208fd9.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/radians/208fd9.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,48 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: radians
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct VertexOutput {
+  float4 pos;
+  float16_t prevent_dce;
+};
+
+struct vertex_main_outputs {
+  nointerpolation float16_t VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+float16_t radians_208fd9() {
+  float16_t arg_0 = float16_t(1.0h);
+  float16_t res = (arg_0 * float16_t(0.0174407958984375h));
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store<float16_t>(0u, radians_208fd9());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store<float16_t>(0u, radians_208fd9());
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = radians_208fd9();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
+FXC validation failure:
+c:\src\dawn\Shader@0x0000022F3E712CA0(3,3-11): error X3000: unrecognized identifier 'float16_t'
+
diff --git a/test/tint/builtins/gen/var/radians/379214.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/radians/379214.wgsl.expected.ir.dxc.hlsl
index 0ba40c6..c9363fe 100644
--- a/test/tint/builtins/gen/var/radians/379214.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/radians/379214.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,36 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+void radians_379214() {
+  float3 res = (0.01745329238474369049f).xxx;
+}
+
+void fragment_main() {
+  radians_379214();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  radians_379214();
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  radians_379214();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  vertex_main_outputs v_2 = {v_1.pos};
+  return v_2;
+}
+
diff --git a/test/tint/builtins/gen/var/radians/379214.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/radians/379214.wgsl.expected.ir.fxc.hlsl
index 0ba40c6..c9363fe 100644
--- a/test/tint/builtins/gen/var/radians/379214.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/radians/379214.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,36 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+void radians_379214() {
+  float3 res = (0.01745329238474369049f).xxx;
+}
+
+void fragment_main() {
+  radians_379214();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  radians_379214();
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  radians_379214();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  vertex_main_outputs v_2 = {v_1.pos};
+  return v_2;
+}
+
diff --git a/test/tint/builtins/gen/var/radians/44a9f8.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/radians/44a9f8.wgsl.expected.ir.dxc.hlsl
index 0ba40c6..1440cc5 100644
--- a/test/tint/builtins/gen/var/radians/44a9f8.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/radians/44a9f8.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,36 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+void radians_44a9f8() {
+  float2 res = (0.01745329238474369049f).xx;
+}
+
+void fragment_main() {
+  radians_44a9f8();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  radians_44a9f8();
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  radians_44a9f8();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  vertex_main_outputs v_2 = {v_1.pos};
+  return v_2;
+}
+
diff --git a/test/tint/builtins/gen/var/radians/44a9f8.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/radians/44a9f8.wgsl.expected.ir.fxc.hlsl
index 0ba40c6..1440cc5 100644
--- a/test/tint/builtins/gen/var/radians/44a9f8.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/radians/44a9f8.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,36 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+void radians_44a9f8() {
+  float2 res = (0.01745329238474369049f).xx;
+}
+
+void fragment_main() {
+  radians_44a9f8();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  radians_44a9f8();
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  radians_44a9f8();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  vertex_main_outputs v_2 = {v_1.pos};
+  return v_2;
+}
+
diff --git a/test/tint/builtins/gen/var/radians/44f20b.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/radians/44f20b.wgsl.expected.ir.dxc.hlsl
index 494d794..a9013f8 100644
--- a/test/tint/builtins/gen/var/radians/44f20b.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/radians/44f20b.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,43 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  vector<float16_t, 4> prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: radians
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation vector<float16_t, 4> VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+vector<float16_t, 4> radians_44f20b() {
+  vector<float16_t, 4> arg_0 = (float16_t(1.0h)).xxxx;
+  vector<float16_t, 4> res = (arg_0 * float16_t(0.0174407958984375h));
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store<vector<float16_t, 4> >(0u, radians_44f20b());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store<vector<float16_t, 4> >(0u, radians_44f20b());
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = radians_44f20b();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
diff --git a/test/tint/builtins/gen/var/radians/44f20b.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/radians/44f20b.wgsl.expected.ir.fxc.hlsl
index 494d794..10e4342 100644
--- a/test/tint/builtins/gen/var/radians/44f20b.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/radians/44f20b.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,48 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: radians
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct VertexOutput {
+  float4 pos;
+  vector<float16_t, 4> prevent_dce;
+};
+
+struct vertex_main_outputs {
+  nointerpolation vector<float16_t, 4> VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+vector<float16_t, 4> radians_44f20b() {
+  vector<float16_t, 4> arg_0 = (float16_t(1.0h)).xxxx;
+  vector<float16_t, 4> res = (arg_0 * float16_t(0.0174407958984375h));
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store<vector<float16_t, 4> >(0u, radians_44f20b());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store<vector<float16_t, 4> >(0u, radians_44f20b());
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = radians_44f20b();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
+FXC validation failure:
+c:\src\dawn\Shader@0x0000023F943756F0(3,10-18): error X3000: syntax error: unexpected token 'float16_t'
+
diff --git a/test/tint/builtins/gen/var/radians/524a91.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/radians/524a91.wgsl.expected.ir.dxc.hlsl
index 0ba40c6..60007f5 100644
--- a/test/tint/builtins/gen/var/radians/524a91.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/radians/524a91.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,36 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+void radians_524a91() {
+  float4 res = (0.01745329238474369049f).xxxx;
+}
+
+void fragment_main() {
+  radians_524a91();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  radians_524a91();
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  radians_524a91();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  vertex_main_outputs v_2 = {v_1.pos};
+  return v_2;
+}
+
diff --git a/test/tint/builtins/gen/var/radians/524a91.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/radians/524a91.wgsl.expected.ir.fxc.hlsl
index 0ba40c6..60007f5 100644
--- a/test/tint/builtins/gen/var/radians/524a91.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/radians/524a91.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,36 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+void radians_524a91() {
+  float4 res = (0.01745329238474369049f).xxxx;
+}
+
+void fragment_main() {
+  radians_524a91();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  radians_524a91();
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  radians_524a91();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  vertex_main_outputs v_2 = {v_1.pos};
+  return v_2;
+}
+
diff --git a/test/tint/builtins/gen/var/radians/61687a.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/radians/61687a.wgsl.expected.ir.dxc.hlsl
index 494d794..94d0b2a 100644
--- a/test/tint/builtins/gen/var/radians/61687a.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/radians/61687a.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,43 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  float2 prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: radians
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation float2 VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+float2 radians_61687a() {
+  float2 arg_0 = (1.0f).xx;
+  float2 res = (arg_0 * 0.01745329238474369049f);
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store2(0u, asuint(radians_61687a()));
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store2(0u, asuint(radians_61687a()));
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = radians_61687a();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
diff --git a/test/tint/builtins/gen/var/radians/61687a.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/radians/61687a.wgsl.expected.ir.fxc.hlsl
index 494d794..94d0b2a 100644
--- a/test/tint/builtins/gen/var/radians/61687a.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/radians/61687a.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,43 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  float2 prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: radians
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation float2 VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+float2 radians_61687a() {
+  float2 arg_0 = (1.0f).xx;
+  float2 res = (arg_0 * 0.01745329238474369049f);
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store2(0u, asuint(radians_61687a()));
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store2(0u, asuint(radians_61687a()));
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = radians_61687a();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
diff --git a/test/tint/builtins/gen/var/radians/6b0ff2.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/radians/6b0ff2.wgsl.expected.ir.dxc.hlsl
index 494d794..3079c60 100644
--- a/test/tint/builtins/gen/var/radians/6b0ff2.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/radians/6b0ff2.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,43 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  float prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: radians
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation float VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+float radians_6b0ff2() {
+  float arg_0 = 1.0f;
+  float res = (arg_0 * 0.01745329238474369049f);
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store(0u, asuint(radians_6b0ff2()));
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store(0u, asuint(radians_6b0ff2()));
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = radians_6b0ff2();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
diff --git a/test/tint/builtins/gen/var/radians/6b0ff2.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/radians/6b0ff2.wgsl.expected.ir.fxc.hlsl
index 494d794..3079c60 100644
--- a/test/tint/builtins/gen/var/radians/6b0ff2.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/radians/6b0ff2.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,43 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  float prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: radians
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation float VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+float radians_6b0ff2() {
+  float arg_0 = 1.0f;
+  float res = (arg_0 * 0.01745329238474369049f);
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store(0u, asuint(radians_6b0ff2()));
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store(0u, asuint(radians_6b0ff2()));
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = radians_6b0ff2();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
diff --git a/test/tint/builtins/gen/var/radians/7ea4c7.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/radians/7ea4c7.wgsl.expected.ir.dxc.hlsl
index 494d794..0272066 100644
--- a/test/tint/builtins/gen/var/radians/7ea4c7.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/radians/7ea4c7.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,43 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  vector<float16_t, 3> prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: radians
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation vector<float16_t, 3> VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+vector<float16_t, 3> radians_7ea4c7() {
+  vector<float16_t, 3> arg_0 = (float16_t(1.0h)).xxx;
+  vector<float16_t, 3> res = (arg_0 * float16_t(0.0174407958984375h));
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store<vector<float16_t, 3> >(0u, radians_7ea4c7());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store<vector<float16_t, 3> >(0u, radians_7ea4c7());
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = radians_7ea4c7();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
diff --git a/test/tint/builtins/gen/var/radians/7ea4c7.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/radians/7ea4c7.wgsl.expected.ir.fxc.hlsl
index 494d794..e440b98 100644
--- a/test/tint/builtins/gen/var/radians/7ea4c7.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/radians/7ea4c7.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,48 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: radians
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct VertexOutput {
+  float4 pos;
+  vector<float16_t, 3> prevent_dce;
+};
+
+struct vertex_main_outputs {
+  nointerpolation vector<float16_t, 3> VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+vector<float16_t, 3> radians_7ea4c7() {
+  vector<float16_t, 3> arg_0 = (float16_t(1.0h)).xxx;
+  vector<float16_t, 3> res = (arg_0 * float16_t(0.0174407958984375h));
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store<vector<float16_t, 3> >(0u, radians_7ea4c7());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store<vector<float16_t, 3> >(0u, radians_7ea4c7());
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = radians_7ea4c7();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
+FXC validation failure:
+c:\src\dawn\Shader@0x000002222B41C480(3,10-18): error X3000: syntax error: unexpected token 'float16_t'
+
diff --git a/test/tint/builtins/gen/var/radians/bff231.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/radians/bff231.wgsl.expected.ir.dxc.hlsl
index 0ba40c6..28c79cf 100644
--- a/test/tint/builtins/gen/var/radians/bff231.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/radians/bff231.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,36 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+void radians_bff231() {
+  float res = 0.01745329238474369049f;
+}
+
+void fragment_main() {
+  radians_bff231();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  radians_bff231();
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  radians_bff231();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  vertex_main_outputs v_2 = {v_1.pos};
+  return v_2;
+}
+
diff --git a/test/tint/builtins/gen/var/radians/bff231.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/radians/bff231.wgsl.expected.ir.fxc.hlsl
index 0ba40c6..28c79cf 100644
--- a/test/tint/builtins/gen/var/radians/bff231.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/radians/bff231.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,36 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+void radians_bff231() {
+  float res = 0.01745329238474369049f;
+}
+
+void fragment_main() {
+  radians_bff231();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  radians_bff231();
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  radians_bff231();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  vertex_main_outputs v_2 = {v_1.pos};
+  return v_2;
+}
+
diff --git a/test/tint/builtins/gen/var/radians/f96258.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/radians/f96258.wgsl.expected.ir.dxc.hlsl
index 494d794..97b6f12 100644
--- a/test/tint/builtins/gen/var/radians/f96258.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/radians/f96258.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,43 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  float3 prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: radians
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation float3 VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+float3 radians_f96258() {
+  float3 arg_0 = (1.0f).xxx;
+  float3 res = (arg_0 * 0.01745329238474369049f);
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store3(0u, asuint(radians_f96258()));
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store3(0u, asuint(radians_f96258()));
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = radians_f96258();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
diff --git a/test/tint/builtins/gen/var/radians/f96258.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/radians/f96258.wgsl.expected.ir.fxc.hlsl
index 494d794..97b6f12 100644
--- a/test/tint/builtins/gen/var/radians/f96258.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/radians/f96258.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,43 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  float3 prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: radians
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation float3 VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+float3 radians_f96258() {
+  float3 arg_0 = (1.0f).xxx;
+  float3 res = (arg_0 * 0.01745329238474369049f);
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store3(0u, asuint(radians_f96258()));
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store3(0u, asuint(radians_f96258()));
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = radians_f96258();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
diff --git a/test/tint/builtins/gen/var/radians/fbacf0.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/radians/fbacf0.wgsl.expected.ir.dxc.hlsl
index 494d794..31042c5 100644
--- a/test/tint/builtins/gen/var/radians/fbacf0.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/radians/fbacf0.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,43 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  vector<float16_t, 2> prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: radians
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation vector<float16_t, 2> VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+vector<float16_t, 2> radians_fbacf0() {
+  vector<float16_t, 2> arg_0 = (float16_t(1.0h)).xx;
+  vector<float16_t, 2> res = (arg_0 * float16_t(0.0174407958984375h));
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store<vector<float16_t, 2> >(0u, radians_fbacf0());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store<vector<float16_t, 2> >(0u, radians_fbacf0());
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = radians_fbacf0();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
diff --git a/test/tint/builtins/gen/var/radians/fbacf0.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/radians/fbacf0.wgsl.expected.ir.fxc.hlsl
index 494d794..ad31884 100644
--- a/test/tint/builtins/gen/var/radians/fbacf0.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/radians/fbacf0.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,48 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: radians
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct VertexOutput {
+  float4 pos;
+  vector<float16_t, 2> prevent_dce;
+};
+
+struct vertex_main_outputs {
+  nointerpolation vector<float16_t, 2> VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+vector<float16_t, 2> radians_fbacf0() {
+  vector<float16_t, 2> arg_0 = (float16_t(1.0h)).xx;
+  vector<float16_t, 2> res = (arg_0 * float16_t(0.0174407958984375h));
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store<vector<float16_t, 2> >(0u, radians_fbacf0());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store<vector<float16_t, 2> >(0u, radians_fbacf0());
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = radians_fbacf0();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
+FXC validation failure:
+c:\src\dawn\Shader@0x000001AA69067450(3,10-18): error X3000: syntax error: unexpected token 'float16_t'
+
diff --git a/test/tint/builtins/gen/var/reflect/05357e.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/reflect/05357e.wgsl.expected.ir.dxc.hlsl
index 0ba40c6..eda17b6 100644
--- a/test/tint/builtins/gen/var/reflect/05357e.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/reflect/05357e.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,44 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  float4 prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation float4 VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+float4 reflect_05357e() {
+  float4 arg_0 = (1.0f).xxxx;
+  float4 arg_1 = (1.0f).xxxx;
+  float4 res = reflect(arg_0, arg_1);
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store4(0u, asuint(reflect_05357e()));
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store4(0u, asuint(reflect_05357e()));
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = reflect_05357e();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
diff --git a/test/tint/builtins/gen/var/reflect/05357e.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/reflect/05357e.wgsl.expected.ir.fxc.hlsl
index 0ba40c6..eda17b6 100644
--- a/test/tint/builtins/gen/var/reflect/05357e.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/reflect/05357e.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,44 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  float4 prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation float4 VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+float4 reflect_05357e() {
+  float4 arg_0 = (1.0f).xxxx;
+  float4 arg_1 = (1.0f).xxxx;
+  float4 res = reflect(arg_0, arg_1);
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store4(0u, asuint(reflect_05357e()));
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store4(0u, asuint(reflect_05357e()));
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = reflect_05357e();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
diff --git a/test/tint/builtins/gen/var/reflect/310de5.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/reflect/310de5.wgsl.expected.ir.dxc.hlsl
index 0ba40c6..ba41afe 100644
--- a/test/tint/builtins/gen/var/reflect/310de5.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/reflect/310de5.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,44 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  vector<float16_t, 4> prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation vector<float16_t, 4> VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+vector<float16_t, 4> reflect_310de5() {
+  vector<float16_t, 4> arg_0 = (float16_t(1.0h)).xxxx;
+  vector<float16_t, 4> arg_1 = (float16_t(1.0h)).xxxx;
+  vector<float16_t, 4> res = reflect(arg_0, arg_1);
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store<vector<float16_t, 4> >(0u, reflect_310de5());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store<vector<float16_t, 4> >(0u, reflect_310de5());
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = reflect_310de5();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
diff --git a/test/tint/builtins/gen/var/reflect/310de5.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/reflect/310de5.wgsl.expected.ir.fxc.hlsl
index 0ba40c6..fa28f2b 100644
--- a/test/tint/builtins/gen/var/reflect/310de5.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/reflect/310de5.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,49 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct VertexOutput {
+  float4 pos;
+  vector<float16_t, 4> prevent_dce;
+};
+
+struct vertex_main_outputs {
+  nointerpolation vector<float16_t, 4> VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+vector<float16_t, 4> reflect_310de5() {
+  vector<float16_t, 4> arg_0 = (float16_t(1.0h)).xxxx;
+  vector<float16_t, 4> arg_1 = (float16_t(1.0h)).xxxx;
+  vector<float16_t, 4> res = reflect(arg_0, arg_1);
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store<vector<float16_t, 4> >(0u, reflect_310de5());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store<vector<float16_t, 4> >(0u, reflect_310de5());
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = reflect_310de5();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
+FXC validation failure:
+c:\src\dawn\Shader@0x0000026B5E560E30(3,10-18): error X3000: syntax error: unexpected token 'float16_t'
+
diff --git a/test/tint/builtins/gen/var/reflect/61ca21.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/reflect/61ca21.wgsl.expected.ir.dxc.hlsl
index 0ba40c6..a4714df 100644
--- a/test/tint/builtins/gen/var/reflect/61ca21.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/reflect/61ca21.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,44 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  vector<float16_t, 3> prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation vector<float16_t, 3> VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+vector<float16_t, 3> reflect_61ca21() {
+  vector<float16_t, 3> arg_0 = (float16_t(1.0h)).xxx;
+  vector<float16_t, 3> arg_1 = (float16_t(1.0h)).xxx;
+  vector<float16_t, 3> res = reflect(arg_0, arg_1);
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store<vector<float16_t, 3> >(0u, reflect_61ca21());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store<vector<float16_t, 3> >(0u, reflect_61ca21());
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = reflect_61ca21();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
diff --git a/test/tint/builtins/gen/var/reflect/61ca21.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/reflect/61ca21.wgsl.expected.ir.fxc.hlsl
index 0ba40c6..6c45d68 100644
--- a/test/tint/builtins/gen/var/reflect/61ca21.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/reflect/61ca21.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,49 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct VertexOutput {
+  float4 pos;
+  vector<float16_t, 3> prevent_dce;
+};
+
+struct vertex_main_outputs {
+  nointerpolation vector<float16_t, 3> VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+vector<float16_t, 3> reflect_61ca21() {
+  vector<float16_t, 3> arg_0 = (float16_t(1.0h)).xxx;
+  vector<float16_t, 3> arg_1 = (float16_t(1.0h)).xxx;
+  vector<float16_t, 3> res = reflect(arg_0, arg_1);
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store<vector<float16_t, 3> >(0u, reflect_61ca21());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store<vector<float16_t, 3> >(0u, reflect_61ca21());
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = reflect_61ca21();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
+FXC validation failure:
+c:\src\dawn\Shader@0x000001959DD87350(3,10-18): error X3000: syntax error: unexpected token 'float16_t'
+
diff --git a/test/tint/builtins/gen/var/reflect/a8baf2.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/reflect/a8baf2.wgsl.expected.ir.dxc.hlsl
index 0ba40c6..27ca310 100644
--- a/test/tint/builtins/gen/var/reflect/a8baf2.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/reflect/a8baf2.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,36 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+void reflect_a8baf2() {
+  float3 res = (-5.0f).xxx;
+}
+
+void fragment_main() {
+  reflect_a8baf2();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  reflect_a8baf2();
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  reflect_a8baf2();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  vertex_main_outputs v_2 = {v_1.pos};
+  return v_2;
+}
+
diff --git a/test/tint/builtins/gen/var/reflect/a8baf2.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/reflect/a8baf2.wgsl.expected.ir.fxc.hlsl
index 0ba40c6..27ca310 100644
--- a/test/tint/builtins/gen/var/reflect/a8baf2.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/reflect/a8baf2.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,36 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+void reflect_a8baf2() {
+  float3 res = (-5.0f).xxx;
+}
+
+void fragment_main() {
+  reflect_a8baf2();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  reflect_a8baf2();
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  reflect_a8baf2();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  vertex_main_outputs v_2 = {v_1.pos};
+  return v_2;
+}
+
diff --git a/test/tint/builtins/gen/var/reflect/b61e10.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/reflect/b61e10.wgsl.expected.ir.dxc.hlsl
index 0ba40c6..41ff112 100644
--- a/test/tint/builtins/gen/var/reflect/b61e10.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/reflect/b61e10.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,44 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  float2 prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation float2 VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+float2 reflect_b61e10() {
+  float2 arg_0 = (1.0f).xx;
+  float2 arg_1 = (1.0f).xx;
+  float2 res = reflect(arg_0, arg_1);
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store2(0u, asuint(reflect_b61e10()));
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store2(0u, asuint(reflect_b61e10()));
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = reflect_b61e10();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
diff --git a/test/tint/builtins/gen/var/reflect/b61e10.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/reflect/b61e10.wgsl.expected.ir.fxc.hlsl
index 0ba40c6..41ff112 100644
--- a/test/tint/builtins/gen/var/reflect/b61e10.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/reflect/b61e10.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,44 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  float2 prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation float2 VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+float2 reflect_b61e10() {
+  float2 arg_0 = (1.0f).xx;
+  float2 arg_1 = (1.0f).xx;
+  float2 res = reflect(arg_0, arg_1);
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store2(0u, asuint(reflect_b61e10()));
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store2(0u, asuint(reflect_b61e10()));
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = reflect_b61e10();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
diff --git a/test/tint/builtins/gen/var/reflect/bb15ac.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/reflect/bb15ac.wgsl.expected.ir.dxc.hlsl
index 0ba40c6..d651c4b 100644
--- a/test/tint/builtins/gen/var/reflect/bb15ac.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/reflect/bb15ac.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,44 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  vector<float16_t, 2> prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation vector<float16_t, 2> VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+vector<float16_t, 2> reflect_bb15ac() {
+  vector<float16_t, 2> arg_0 = (float16_t(1.0h)).xx;
+  vector<float16_t, 2> arg_1 = (float16_t(1.0h)).xx;
+  vector<float16_t, 2> res = reflect(arg_0, arg_1);
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store<vector<float16_t, 2> >(0u, reflect_bb15ac());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store<vector<float16_t, 2> >(0u, reflect_bb15ac());
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = reflect_bb15ac();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
diff --git a/test/tint/builtins/gen/var/reflect/bb15ac.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/reflect/bb15ac.wgsl.expected.ir.fxc.hlsl
index 0ba40c6..6f603a4 100644
--- a/test/tint/builtins/gen/var/reflect/bb15ac.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/reflect/bb15ac.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,49 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct VertexOutput {
+  float4 pos;
+  vector<float16_t, 2> prevent_dce;
+};
+
+struct vertex_main_outputs {
+  nointerpolation vector<float16_t, 2> VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+vector<float16_t, 2> reflect_bb15ac() {
+  vector<float16_t, 2> arg_0 = (float16_t(1.0h)).xx;
+  vector<float16_t, 2> arg_1 = (float16_t(1.0h)).xx;
+  vector<float16_t, 2> res = reflect(arg_0, arg_1);
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store<vector<float16_t, 2> >(0u, reflect_bb15ac());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store<vector<float16_t, 2> >(0u, reflect_bb15ac());
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = reflect_bb15ac();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
+FXC validation failure:
+c:\src\dawn\Shader@0x0000027366661EF0(3,10-18): error X3000: syntax error: unexpected token 'float16_t'
+
diff --git a/test/tint/builtins/gen/var/reflect/bba2d0.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/reflect/bba2d0.wgsl.expected.ir.dxc.hlsl
index 0ba40c6..9198cc3 100644
--- a/test/tint/builtins/gen/var/reflect/bba2d0.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/reflect/bba2d0.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,36 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+void reflect_bba2d0() {
+  float2 res = (-3.0f).xx;
+}
+
+void fragment_main() {
+  reflect_bba2d0();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  reflect_bba2d0();
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  reflect_bba2d0();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  vertex_main_outputs v_2 = {v_1.pos};
+  return v_2;
+}
+
diff --git a/test/tint/builtins/gen/var/reflect/bba2d0.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/reflect/bba2d0.wgsl.expected.ir.fxc.hlsl
index 0ba40c6..9198cc3 100644
--- a/test/tint/builtins/gen/var/reflect/bba2d0.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/reflect/bba2d0.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,36 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+void reflect_bba2d0() {
+  float2 res = (-3.0f).xx;
+}
+
+void fragment_main() {
+  reflect_bba2d0();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  reflect_bba2d0();
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  reflect_bba2d0();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  vertex_main_outputs v_2 = {v_1.pos};
+  return v_2;
+}
+
diff --git a/test/tint/builtins/gen/var/reflect/d7e210.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/reflect/d7e210.wgsl.expected.ir.dxc.hlsl
index 0ba40c6..17ba59f 100644
--- a/test/tint/builtins/gen/var/reflect/d7e210.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/reflect/d7e210.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,36 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+void reflect_d7e210() {
+  float4 res = (-7.0f).xxxx;
+}
+
+void fragment_main() {
+  reflect_d7e210();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  reflect_d7e210();
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  reflect_d7e210();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  vertex_main_outputs v_2 = {v_1.pos};
+  return v_2;
+}
+
diff --git a/test/tint/builtins/gen/var/reflect/d7e210.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/reflect/d7e210.wgsl.expected.ir.fxc.hlsl
index 0ba40c6..17ba59f 100644
--- a/test/tint/builtins/gen/var/reflect/d7e210.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/reflect/d7e210.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,36 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+void reflect_d7e210() {
+  float4 res = (-7.0f).xxxx;
+}
+
+void fragment_main() {
+  reflect_d7e210();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  reflect_d7e210();
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  reflect_d7e210();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  vertex_main_outputs v_2 = {v_1.pos};
+  return v_2;
+}
+
diff --git a/test/tint/builtins/gen/var/reflect/f47fdb.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/reflect/f47fdb.wgsl.expected.ir.dxc.hlsl
index 0ba40c6..c45dc99 100644
--- a/test/tint/builtins/gen/var/reflect/f47fdb.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/reflect/f47fdb.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,44 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  float3 prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation float3 VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+float3 reflect_f47fdb() {
+  float3 arg_0 = (1.0f).xxx;
+  float3 arg_1 = (1.0f).xxx;
+  float3 res = reflect(arg_0, arg_1);
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store3(0u, asuint(reflect_f47fdb()));
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store3(0u, asuint(reflect_f47fdb()));
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = reflect_f47fdb();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
diff --git a/test/tint/builtins/gen/var/reflect/f47fdb.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/reflect/f47fdb.wgsl.expected.ir.fxc.hlsl
index 0ba40c6..c45dc99 100644
--- a/test/tint/builtins/gen/var/reflect/f47fdb.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/reflect/f47fdb.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,44 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  float3 prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation float3 VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+float3 reflect_f47fdb() {
+  float3 arg_0 = (1.0f).xxx;
+  float3 arg_1 = (1.0f).xxx;
+  float3 res = reflect(arg_0, arg_1);
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store3(0u, asuint(reflect_f47fdb()));
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store3(0u, asuint(reflect_f47fdb()));
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = reflect_f47fdb();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
diff --git a/test/tint/builtins/gen/var/refract/0594ba.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/refract/0594ba.wgsl.expected.ir.dxc.hlsl
index 0ba40c6..dbdfa7b 100644
--- a/test/tint/builtins/gen/var/refract/0594ba.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/refract/0594ba.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,45 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  vector<float16_t, 4> prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation vector<float16_t, 4> VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+vector<float16_t, 4> refract_0594ba() {
+  vector<float16_t, 4> arg_0 = (float16_t(1.0h)).xxxx;
+  vector<float16_t, 4> arg_1 = (float16_t(1.0h)).xxxx;
+  float16_t arg_2 = float16_t(1.0h);
+  vector<float16_t, 4> res = refract(arg_0, arg_1, arg_2);
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store<vector<float16_t, 4> >(0u, refract_0594ba());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store<vector<float16_t, 4> >(0u, refract_0594ba());
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = refract_0594ba();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
diff --git a/test/tint/builtins/gen/var/refract/0594ba.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/refract/0594ba.wgsl.expected.ir.fxc.hlsl
index 0ba40c6..c5c9c35 100644
--- a/test/tint/builtins/gen/var/refract/0594ba.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/refract/0594ba.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,50 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct VertexOutput {
+  float4 pos;
+  vector<float16_t, 4> prevent_dce;
+};
+
+struct vertex_main_outputs {
+  nointerpolation vector<float16_t, 4> VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+vector<float16_t, 4> refract_0594ba() {
+  vector<float16_t, 4> arg_0 = (float16_t(1.0h)).xxxx;
+  vector<float16_t, 4> arg_1 = (float16_t(1.0h)).xxxx;
+  float16_t arg_2 = float16_t(1.0h);
+  vector<float16_t, 4> res = refract(arg_0, arg_1, arg_2);
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store<vector<float16_t, 4> >(0u, refract_0594ba());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store<vector<float16_t, 4> >(0u, refract_0594ba());
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = refract_0594ba();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
+FXC validation failure:
+c:\src\dawn\Shader@0x00000217CA2FD9E0(3,10-18): error X3000: syntax error: unexpected token 'float16_t'
+
diff --git a/test/tint/builtins/gen/var/refract/570cb3.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/refract/570cb3.wgsl.expected.ir.dxc.hlsl
index 0ba40c6..5bc6892 100644
--- a/test/tint/builtins/gen/var/refract/570cb3.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/refract/570cb3.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,45 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  vector<float16_t, 2> prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation vector<float16_t, 2> VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+vector<float16_t, 2> refract_570cb3() {
+  vector<float16_t, 2> arg_0 = (float16_t(1.0h)).xx;
+  vector<float16_t, 2> arg_1 = (float16_t(1.0h)).xx;
+  float16_t arg_2 = float16_t(1.0h);
+  vector<float16_t, 2> res = refract(arg_0, arg_1, arg_2);
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store<vector<float16_t, 2> >(0u, refract_570cb3());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store<vector<float16_t, 2> >(0u, refract_570cb3());
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = refract_570cb3();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
diff --git a/test/tint/builtins/gen/var/refract/570cb3.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/refract/570cb3.wgsl.expected.ir.fxc.hlsl
index 0ba40c6..f668f08 100644
--- a/test/tint/builtins/gen/var/refract/570cb3.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/refract/570cb3.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,50 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct VertexOutput {
+  float4 pos;
+  vector<float16_t, 2> prevent_dce;
+};
+
+struct vertex_main_outputs {
+  nointerpolation vector<float16_t, 2> VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+vector<float16_t, 2> refract_570cb3() {
+  vector<float16_t, 2> arg_0 = (float16_t(1.0h)).xx;
+  vector<float16_t, 2> arg_1 = (float16_t(1.0h)).xx;
+  float16_t arg_2 = float16_t(1.0h);
+  vector<float16_t, 2> res = refract(arg_0, arg_1, arg_2);
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store<vector<float16_t, 2> >(0u, refract_570cb3());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store<vector<float16_t, 2> >(0u, refract_570cb3());
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = refract_570cb3();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
+FXC validation failure:
+c:\src\dawn\Shader@0x0000022AB0CE2A00(3,10-18): error X3000: syntax error: unexpected token 'float16_t'
+
diff --git a/test/tint/builtins/gen/var/refract/7e02e6.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/refract/7e02e6.wgsl.expected.ir.dxc.hlsl
index 0ba40c6..b70645a 100644
--- a/test/tint/builtins/gen/var/refract/7e02e6.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/refract/7e02e6.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,45 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  float4 prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation float4 VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+float4 refract_7e02e6() {
+  float4 arg_0 = (1.0f).xxxx;
+  float4 arg_1 = (1.0f).xxxx;
+  float arg_2 = 1.0f;
+  float4 res = refract(arg_0, arg_1, arg_2);
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store4(0u, asuint(refract_7e02e6()));
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store4(0u, asuint(refract_7e02e6()));
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = refract_7e02e6();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
diff --git a/test/tint/builtins/gen/var/refract/7e02e6.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/refract/7e02e6.wgsl.expected.ir.fxc.hlsl
index 0ba40c6..b70645a 100644
--- a/test/tint/builtins/gen/var/refract/7e02e6.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/refract/7e02e6.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,45 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  float4 prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation float4 VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+float4 refract_7e02e6() {
+  float4 arg_0 = (1.0f).xxxx;
+  float4 arg_1 = (1.0f).xxxx;
+  float arg_2 = 1.0f;
+  float4 res = refract(arg_0, arg_1, arg_2);
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store4(0u, asuint(refract_7e02e6()));
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store4(0u, asuint(refract_7e02e6()));
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = refract_7e02e6();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
diff --git a/test/tint/builtins/gen/var/refract/8984af.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/refract/8984af.wgsl.expected.ir.dxc.hlsl
index 0ba40c6..7be4391 100644
--- a/test/tint/builtins/gen/var/refract/8984af.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/refract/8984af.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,45 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  vector<float16_t, 3> prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation vector<float16_t, 3> VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+vector<float16_t, 3> refract_8984af() {
+  vector<float16_t, 3> arg_0 = (float16_t(1.0h)).xxx;
+  vector<float16_t, 3> arg_1 = (float16_t(1.0h)).xxx;
+  float16_t arg_2 = float16_t(1.0h);
+  vector<float16_t, 3> res = refract(arg_0, arg_1, arg_2);
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store<vector<float16_t, 3> >(0u, refract_8984af());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store<vector<float16_t, 3> >(0u, refract_8984af());
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = refract_8984af();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
diff --git a/test/tint/builtins/gen/var/refract/8984af.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/refract/8984af.wgsl.expected.ir.fxc.hlsl
index 0ba40c6..84a8f27 100644
--- a/test/tint/builtins/gen/var/refract/8984af.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/refract/8984af.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,50 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct VertexOutput {
+  float4 pos;
+  vector<float16_t, 3> prevent_dce;
+};
+
+struct vertex_main_outputs {
+  nointerpolation vector<float16_t, 3> VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+vector<float16_t, 3> refract_8984af() {
+  vector<float16_t, 3> arg_0 = (float16_t(1.0h)).xxx;
+  vector<float16_t, 3> arg_1 = (float16_t(1.0h)).xxx;
+  float16_t arg_2 = float16_t(1.0h);
+  vector<float16_t, 3> res = refract(arg_0, arg_1, arg_2);
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store<vector<float16_t, 3> >(0u, refract_8984af());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store<vector<float16_t, 3> >(0u, refract_8984af());
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = refract_8984af();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
+FXC validation failure:
+c:\src\dawn\Shader@0x000001DEA49D3270(3,10-18): error X3000: syntax error: unexpected token 'float16_t'
+
diff --git a/test/tint/builtins/gen/var/refract/8c192a.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/refract/8c192a.wgsl.expected.ir.dxc.hlsl
index 0ba40c6..dacbbee 100644
--- a/test/tint/builtins/gen/var/refract/8c192a.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/refract/8c192a.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,36 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+void refract_8c192a() {
+  float4 res = (-7.0f).xxxx;
+}
+
+void fragment_main() {
+  refract_8c192a();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  refract_8c192a();
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  refract_8c192a();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  vertex_main_outputs v_2 = {v_1.pos};
+  return v_2;
+}
+
diff --git a/test/tint/builtins/gen/var/refract/8c192a.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/refract/8c192a.wgsl.expected.ir.fxc.hlsl
index 0ba40c6..dacbbee 100644
--- a/test/tint/builtins/gen/var/refract/8c192a.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/refract/8c192a.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,36 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+void refract_8c192a() {
+  float4 res = (-7.0f).xxxx;
+}
+
+void fragment_main() {
+  refract_8c192a();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  refract_8c192a();
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  refract_8c192a();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  vertex_main_outputs v_2 = {v_1.pos};
+  return v_2;
+}
+
diff --git a/test/tint/builtins/gen/var/refract/cbc1d2.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/refract/cbc1d2.wgsl.expected.ir.dxc.hlsl
index 0ba40c6..7f80f23 100644
--- a/test/tint/builtins/gen/var/refract/cbc1d2.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/refract/cbc1d2.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,45 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  float3 prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation float3 VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+float3 refract_cbc1d2() {
+  float3 arg_0 = (1.0f).xxx;
+  float3 arg_1 = (1.0f).xxx;
+  float arg_2 = 1.0f;
+  float3 res = refract(arg_0, arg_1, arg_2);
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store3(0u, asuint(refract_cbc1d2()));
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store3(0u, asuint(refract_cbc1d2()));
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = refract_cbc1d2();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
diff --git a/test/tint/builtins/gen/var/refract/cbc1d2.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/refract/cbc1d2.wgsl.expected.ir.fxc.hlsl
index 0ba40c6..7f80f23 100644
--- a/test/tint/builtins/gen/var/refract/cbc1d2.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/refract/cbc1d2.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,45 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  float3 prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation float3 VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+float3 refract_cbc1d2() {
+  float3 arg_0 = (1.0f).xxx;
+  float3 arg_1 = (1.0f).xxx;
+  float arg_2 = 1.0f;
+  float3 res = refract(arg_0, arg_1, arg_2);
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store3(0u, asuint(refract_cbc1d2()));
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store3(0u, asuint(refract_cbc1d2()));
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = refract_cbc1d2();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
diff --git a/test/tint/builtins/gen/var/refract/cd905f.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/refract/cd905f.wgsl.expected.ir.dxc.hlsl
index 0ba40c6..19a8c34 100644
--- a/test/tint/builtins/gen/var/refract/cd905f.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/refract/cd905f.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,45 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  float2 prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation float2 VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+float2 refract_cd905f() {
+  float2 arg_0 = (1.0f).xx;
+  float2 arg_1 = (1.0f).xx;
+  float arg_2 = 1.0f;
+  float2 res = refract(arg_0, arg_1, arg_2);
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store2(0u, asuint(refract_cd905f()));
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store2(0u, asuint(refract_cd905f()));
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = refract_cd905f();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
diff --git a/test/tint/builtins/gen/var/refract/cd905f.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/refract/cd905f.wgsl.expected.ir.fxc.hlsl
index 0ba40c6..19a8c34 100644
--- a/test/tint/builtins/gen/var/refract/cd905f.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/refract/cd905f.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,45 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  float2 prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation float2 VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+float2 refract_cd905f() {
+  float2 arg_0 = (1.0f).xx;
+  float2 arg_1 = (1.0f).xx;
+  float arg_2 = 1.0f;
+  float2 res = refract(arg_0, arg_1, arg_2);
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store2(0u, asuint(refract_cd905f()));
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store2(0u, asuint(refract_cd905f()));
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = refract_cd905f();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
diff --git a/test/tint/builtins/gen/var/refract/cf1629.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/refract/cf1629.wgsl.expected.ir.dxc.hlsl
index 0ba40c6..1f97c4d 100644
--- a/test/tint/builtins/gen/var/refract/cf1629.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/refract/cf1629.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,36 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+void refract_cf1629() {
+  float2 res = (-3.0f).xx;
+}
+
+void fragment_main() {
+  refract_cf1629();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  refract_cf1629();
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  refract_cf1629();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  vertex_main_outputs v_2 = {v_1.pos};
+  return v_2;
+}
+
diff --git a/test/tint/builtins/gen/var/refract/cf1629.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/refract/cf1629.wgsl.expected.ir.fxc.hlsl
index 0ba40c6..1f97c4d 100644
--- a/test/tint/builtins/gen/var/refract/cf1629.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/refract/cf1629.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,36 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+void refract_cf1629() {
+  float2 res = (-3.0f).xx;
+}
+
+void fragment_main() {
+  refract_cf1629();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  refract_cf1629();
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  refract_cf1629();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  vertex_main_outputs v_2 = {v_1.pos};
+  return v_2;
+}
+
diff --git a/test/tint/builtins/gen/var/refract/d7569b.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/refract/d7569b.wgsl.expected.ir.dxc.hlsl
index 0ba40c6..74581ca 100644
--- a/test/tint/builtins/gen/var/refract/d7569b.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/refract/d7569b.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,36 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+void refract_d7569b() {
+  float3 res = (-5.0f).xxx;
+}
+
+void fragment_main() {
+  refract_d7569b();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  refract_d7569b();
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  refract_d7569b();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  vertex_main_outputs v_2 = {v_1.pos};
+  return v_2;
+}
+
diff --git a/test/tint/builtins/gen/var/refract/d7569b.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/refract/d7569b.wgsl.expected.ir.fxc.hlsl
index 0ba40c6..74581ca 100644
--- a/test/tint/builtins/gen/var/refract/d7569b.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/refract/d7569b.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,36 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+void refract_d7569b() {
+  float3 res = (-5.0f).xxx;
+}
+
+void fragment_main() {
+  refract_d7569b();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  refract_d7569b();
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  refract_d7569b();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  vertex_main_outputs v_2 = {v_1.pos};
+  return v_2;
+}
+
diff --git a/test/tint/builtins/gen/var/reverseBits/222177.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/reverseBits/222177.wgsl.expected.ir.dxc.hlsl
index 0ba40c6..2206cab 100644
--- a/test/tint/builtins/gen/var/reverseBits/222177.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/reverseBits/222177.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,43 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  int2 prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation int2 VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+int2 reverseBits_222177() {
+  int2 arg_0 = (1).xx;
+  int2 res = reversebits(arg_0);
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store2(0u, asuint(reverseBits_222177()));
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store2(0u, asuint(reverseBits_222177()));
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = reverseBits_222177();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
diff --git a/test/tint/builtins/gen/var/reverseBits/222177.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/reverseBits/222177.wgsl.expected.ir.fxc.hlsl
index 0ba40c6..2206cab 100644
--- a/test/tint/builtins/gen/var/reverseBits/222177.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/reverseBits/222177.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,43 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  int2 prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation int2 VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+int2 reverseBits_222177() {
+  int2 arg_0 = (1).xx;
+  int2 res = reversebits(arg_0);
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store2(0u, asuint(reverseBits_222177()));
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store2(0u, asuint(reverseBits_222177()));
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = reverseBits_222177();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
diff --git a/test/tint/builtins/gen/var/reverseBits/35fea9.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/reverseBits/35fea9.wgsl.expected.ir.dxc.hlsl
index 0ba40c6..285351f 100644
--- a/test/tint/builtins/gen/var/reverseBits/35fea9.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/reverseBits/35fea9.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,43 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  uint4 prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation uint4 VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+uint4 reverseBits_35fea9() {
+  uint4 arg_0 = (1u).xxxx;
+  uint4 res = reversebits(arg_0);
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store4(0u, reverseBits_35fea9());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store4(0u, reverseBits_35fea9());
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = reverseBits_35fea9();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
diff --git a/test/tint/builtins/gen/var/reverseBits/35fea9.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/reverseBits/35fea9.wgsl.expected.ir.fxc.hlsl
index 0ba40c6..285351f 100644
--- a/test/tint/builtins/gen/var/reverseBits/35fea9.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/reverseBits/35fea9.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,43 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  uint4 prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation uint4 VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+uint4 reverseBits_35fea9() {
+  uint4 arg_0 = (1u).xxxx;
+  uint4 res = reversebits(arg_0);
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store4(0u, reverseBits_35fea9());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store4(0u, reverseBits_35fea9());
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = reverseBits_35fea9();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
diff --git a/test/tint/builtins/gen/var/reverseBits/4dbd6f.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/reverseBits/4dbd6f.wgsl.expected.ir.dxc.hlsl
index 0ba40c6..d313227 100644
--- a/test/tint/builtins/gen/var/reverseBits/4dbd6f.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/reverseBits/4dbd6f.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,43 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  int4 prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation int4 VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+int4 reverseBits_4dbd6f() {
+  int4 arg_0 = (1).xxxx;
+  int4 res = reversebits(arg_0);
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store4(0u, asuint(reverseBits_4dbd6f()));
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store4(0u, asuint(reverseBits_4dbd6f()));
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = reverseBits_4dbd6f();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
diff --git a/test/tint/builtins/gen/var/reverseBits/4dbd6f.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/reverseBits/4dbd6f.wgsl.expected.ir.fxc.hlsl
index 0ba40c6..d313227 100644
--- a/test/tint/builtins/gen/var/reverseBits/4dbd6f.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/reverseBits/4dbd6f.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,43 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  int4 prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation int4 VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+int4 reverseBits_4dbd6f() {
+  int4 arg_0 = (1).xxxx;
+  int4 res = reversebits(arg_0);
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store4(0u, asuint(reverseBits_4dbd6f()));
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store4(0u, asuint(reverseBits_4dbd6f()));
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = reverseBits_4dbd6f();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
diff --git a/test/tint/builtins/gen/var/reverseBits/7c4269.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/reverseBits/7c4269.wgsl.expected.ir.dxc.hlsl
index 0ba40c6..34f76a5 100644
--- a/test/tint/builtins/gen/var/reverseBits/7c4269.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/reverseBits/7c4269.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,43 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  int prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation int VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+int reverseBits_7c4269() {
+  int arg_0 = 1;
+  int res = reversebits(arg_0);
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store(0u, asuint(reverseBits_7c4269()));
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store(0u, asuint(reverseBits_7c4269()));
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = reverseBits_7c4269();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
diff --git a/test/tint/builtins/gen/var/reverseBits/7c4269.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/reverseBits/7c4269.wgsl.expected.ir.fxc.hlsl
index 0ba40c6..34f76a5 100644
--- a/test/tint/builtins/gen/var/reverseBits/7c4269.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/reverseBits/7c4269.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,43 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  int prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation int VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+int reverseBits_7c4269() {
+  int arg_0 = 1;
+  int res = reversebits(arg_0);
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store(0u, asuint(reverseBits_7c4269()));
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store(0u, asuint(reverseBits_7c4269()));
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = reverseBits_7c4269();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
diff --git a/test/tint/builtins/gen/var/reverseBits/a6ccd4.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/reverseBits/a6ccd4.wgsl.expected.ir.dxc.hlsl
index 0ba40c6..02e0f83 100644
--- a/test/tint/builtins/gen/var/reverseBits/a6ccd4.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/reverseBits/a6ccd4.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,43 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  uint3 prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation uint3 VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+uint3 reverseBits_a6ccd4() {
+  uint3 arg_0 = (1u).xxx;
+  uint3 res = reversebits(arg_0);
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store3(0u, reverseBits_a6ccd4());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store3(0u, reverseBits_a6ccd4());
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = reverseBits_a6ccd4();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
diff --git a/test/tint/builtins/gen/var/reverseBits/a6ccd4.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/reverseBits/a6ccd4.wgsl.expected.ir.fxc.hlsl
index 0ba40c6..02e0f83 100644
--- a/test/tint/builtins/gen/var/reverseBits/a6ccd4.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/reverseBits/a6ccd4.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,43 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  uint3 prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation uint3 VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+uint3 reverseBits_a6ccd4() {
+  uint3 arg_0 = (1u).xxx;
+  uint3 res = reversebits(arg_0);
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store3(0u, reverseBits_a6ccd4());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store3(0u, reverseBits_a6ccd4());
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = reverseBits_a6ccd4();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
diff --git a/test/tint/builtins/gen/var/reverseBits/c21bc1.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/reverseBits/c21bc1.wgsl.expected.ir.dxc.hlsl
index 0ba40c6..e6bc3e6 100644
--- a/test/tint/builtins/gen/var/reverseBits/c21bc1.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/reverseBits/c21bc1.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,43 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  int3 prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation int3 VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+int3 reverseBits_c21bc1() {
+  int3 arg_0 = (1).xxx;
+  int3 res = reversebits(arg_0);
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store3(0u, asuint(reverseBits_c21bc1()));
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store3(0u, asuint(reverseBits_c21bc1()));
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = reverseBits_c21bc1();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
diff --git a/test/tint/builtins/gen/var/reverseBits/c21bc1.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/reverseBits/c21bc1.wgsl.expected.ir.fxc.hlsl
index 0ba40c6..e6bc3e6 100644
--- a/test/tint/builtins/gen/var/reverseBits/c21bc1.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/reverseBits/c21bc1.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,43 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  int3 prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation int3 VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+int3 reverseBits_c21bc1() {
+  int3 arg_0 = (1).xxx;
+  int3 res = reversebits(arg_0);
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store3(0u, asuint(reverseBits_c21bc1()));
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store3(0u, asuint(reverseBits_c21bc1()));
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = reverseBits_c21bc1();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
diff --git a/test/tint/builtins/gen/var/reverseBits/e1f4c1.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/reverseBits/e1f4c1.wgsl.expected.ir.dxc.hlsl
index 0ba40c6..43e2f4a 100644
--- a/test/tint/builtins/gen/var/reverseBits/e1f4c1.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/reverseBits/e1f4c1.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,43 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  uint2 prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation uint2 VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+uint2 reverseBits_e1f4c1() {
+  uint2 arg_0 = (1u).xx;
+  uint2 res = reversebits(arg_0);
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store2(0u, reverseBits_e1f4c1());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store2(0u, reverseBits_e1f4c1());
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = reverseBits_e1f4c1();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
diff --git a/test/tint/builtins/gen/var/reverseBits/e1f4c1.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/reverseBits/e1f4c1.wgsl.expected.ir.fxc.hlsl
index 0ba40c6..43e2f4a 100644
--- a/test/tint/builtins/gen/var/reverseBits/e1f4c1.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/reverseBits/e1f4c1.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,43 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  uint2 prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation uint2 VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+uint2 reverseBits_e1f4c1() {
+  uint2 arg_0 = (1u).xx;
+  uint2 res = reversebits(arg_0);
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store2(0u, reverseBits_e1f4c1());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store2(0u, reverseBits_e1f4c1());
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = reverseBits_e1f4c1();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
diff --git a/test/tint/builtins/gen/var/reverseBits/e31adf.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/reverseBits/e31adf.wgsl.expected.ir.dxc.hlsl
index 0ba40c6..bbcc744 100644
--- a/test/tint/builtins/gen/var/reverseBits/e31adf.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/reverseBits/e31adf.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,43 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  uint prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation uint VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+uint reverseBits_e31adf() {
+  uint arg_0 = 1u;
+  uint res = reversebits(arg_0);
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store(0u, reverseBits_e31adf());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store(0u, reverseBits_e31adf());
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = reverseBits_e31adf();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
diff --git a/test/tint/builtins/gen/var/reverseBits/e31adf.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/reverseBits/e31adf.wgsl.expected.ir.fxc.hlsl
index 0ba40c6..bbcc744 100644
--- a/test/tint/builtins/gen/var/reverseBits/e31adf.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/reverseBits/e31adf.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,43 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  uint prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation uint VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+uint reverseBits_e31adf() {
+  uint arg_0 = 1u;
+  uint res = reversebits(arg_0);
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store(0u, reverseBits_e31adf());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store(0u, reverseBits_e31adf());
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = reverseBits_e31adf();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
diff --git a/test/tint/builtins/gen/var/round/106c0b.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/round/106c0b.wgsl.expected.ir.dxc.hlsl
index 0ba40c6..5804656 100644
--- a/test/tint/builtins/gen/var/round/106c0b.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/round/106c0b.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,43 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  float4 prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation float4 VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+float4 round_106c0b() {
+  float4 arg_0 = (3.5f).xxxx;
+  float4 res = round(arg_0);
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store4(0u, asuint(round_106c0b()));
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store4(0u, asuint(round_106c0b()));
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = round_106c0b();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
diff --git a/test/tint/builtins/gen/var/round/106c0b.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/round/106c0b.wgsl.expected.ir.fxc.hlsl
index 0ba40c6..5804656 100644
--- a/test/tint/builtins/gen/var/round/106c0b.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/round/106c0b.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,43 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  float4 prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation float4 VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+float4 round_106c0b() {
+  float4 arg_0 = (3.5f).xxxx;
+  float4 res = round(arg_0);
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store4(0u, asuint(round_106c0b()));
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store4(0u, asuint(round_106c0b()));
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = round_106c0b();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
diff --git a/test/tint/builtins/gen/var/round/184d5a.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/round/184d5a.wgsl.expected.ir.dxc.hlsl
index 0ba40c6..a883b41 100644
--- a/test/tint/builtins/gen/var/round/184d5a.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/round/184d5a.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,36 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+void round_184d5a() {
+  float4 res = (4.0f).xxxx;
+}
+
+void fragment_main() {
+  round_184d5a();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  round_184d5a();
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  round_184d5a();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  vertex_main_outputs v_2 = {v_1.pos};
+  return v_2;
+}
+
diff --git a/test/tint/builtins/gen/var/round/184d5a.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/round/184d5a.wgsl.expected.ir.fxc.hlsl
index 0ba40c6..a883b41 100644
--- a/test/tint/builtins/gen/var/round/184d5a.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/round/184d5a.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,36 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+void round_184d5a() {
+  float4 res = (4.0f).xxxx;
+}
+
+void fragment_main() {
+  round_184d5a();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  round_184d5a();
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  round_184d5a();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  vertex_main_outputs v_2 = {v_1.pos};
+  return v_2;
+}
+
diff --git a/test/tint/builtins/gen/var/round/1c7897.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/round/1c7897.wgsl.expected.ir.dxc.hlsl
index 0ba40c6..28386fb 100644
--- a/test/tint/builtins/gen/var/round/1c7897.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/round/1c7897.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,43 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  float3 prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation float3 VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+float3 round_1c7897() {
+  float3 arg_0 = (3.5f).xxx;
+  float3 res = round(arg_0);
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store3(0u, asuint(round_1c7897()));
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store3(0u, asuint(round_1c7897()));
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = round_1c7897();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
diff --git a/test/tint/builtins/gen/var/round/1c7897.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/round/1c7897.wgsl.expected.ir.fxc.hlsl
index 0ba40c6..28386fb 100644
--- a/test/tint/builtins/gen/var/round/1c7897.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/round/1c7897.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,43 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  float3 prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation float3 VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+float3 round_1c7897() {
+  float3 arg_0 = (3.5f).xxx;
+  float3 res = round(arg_0);
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store3(0u, asuint(round_1c7897()));
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store3(0u, asuint(round_1c7897()));
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = round_1c7897();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
diff --git a/test/tint/builtins/gen/var/round/52c84d.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/round/52c84d.wgsl.expected.ir.dxc.hlsl
index 0ba40c6..dc0d88f 100644
--- a/test/tint/builtins/gen/var/round/52c84d.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/round/52c84d.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,43 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  float2 prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation float2 VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+float2 round_52c84d() {
+  float2 arg_0 = (3.5f).xx;
+  float2 res = round(arg_0);
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store2(0u, asuint(round_52c84d()));
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store2(0u, asuint(round_52c84d()));
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = round_52c84d();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
diff --git a/test/tint/builtins/gen/var/round/52c84d.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/round/52c84d.wgsl.expected.ir.fxc.hlsl
index 0ba40c6..dc0d88f 100644
--- a/test/tint/builtins/gen/var/round/52c84d.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/round/52c84d.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,43 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  float2 prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation float2 VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+float2 round_52c84d() {
+  float2 arg_0 = (3.5f).xx;
+  float2 res = round(arg_0);
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store2(0u, asuint(round_52c84d()));
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store2(0u, asuint(round_52c84d()));
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = round_52c84d();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
diff --git a/test/tint/builtins/gen/var/round/773a8f.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/round/773a8f.wgsl.expected.ir.dxc.hlsl
index 0ba40c6..99a5540 100644
--- a/test/tint/builtins/gen/var/round/773a8f.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/round/773a8f.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,36 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+void round_773a8f() {
+  float res = 4.0f;
+}
+
+void fragment_main() {
+  round_773a8f();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  round_773a8f();
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  round_773a8f();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  vertex_main_outputs v_2 = {v_1.pos};
+  return v_2;
+}
+
diff --git a/test/tint/builtins/gen/var/round/773a8f.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/round/773a8f.wgsl.expected.ir.fxc.hlsl
index 0ba40c6..99a5540 100644
--- a/test/tint/builtins/gen/var/round/773a8f.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/round/773a8f.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,36 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+void round_773a8f() {
+  float res = 4.0f;
+}
+
+void fragment_main() {
+  round_773a8f();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  round_773a8f();
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  round_773a8f();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  vertex_main_outputs v_2 = {v_1.pos};
+  return v_2;
+}
+
diff --git a/test/tint/builtins/gen/var/round/8fdca3.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/round/8fdca3.wgsl.expected.ir.dxc.hlsl
index 0ba40c6..23c28d1 100644
--- a/test/tint/builtins/gen/var/round/8fdca3.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/round/8fdca3.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,36 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+void round_8fdca3() {
+  float2 res = (4.0f).xx;
+}
+
+void fragment_main() {
+  round_8fdca3();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  round_8fdca3();
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  round_8fdca3();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  vertex_main_outputs v_2 = {v_1.pos};
+  return v_2;
+}
+
diff --git a/test/tint/builtins/gen/var/round/8fdca3.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/round/8fdca3.wgsl.expected.ir.fxc.hlsl
index 0ba40c6..23c28d1 100644
--- a/test/tint/builtins/gen/var/round/8fdca3.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/round/8fdca3.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,36 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+void round_8fdca3() {
+  float2 res = (4.0f).xx;
+}
+
+void fragment_main() {
+  round_8fdca3();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  round_8fdca3();
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  round_8fdca3();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  vertex_main_outputs v_2 = {v_1.pos};
+  return v_2;
+}
+
diff --git a/test/tint/builtins/gen/var/round/9078ef.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/round/9078ef.wgsl.expected.ir.dxc.hlsl
index 0ba40c6..674f3a0 100644
--- a/test/tint/builtins/gen/var/round/9078ef.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/round/9078ef.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,43 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  float16_t prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation float16_t VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+float16_t round_9078ef() {
+  float16_t arg_0 = float16_t(3.5h);
+  float16_t res = round(arg_0);
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store<float16_t>(0u, round_9078ef());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store<float16_t>(0u, round_9078ef());
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = round_9078ef();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
diff --git a/test/tint/builtins/gen/var/round/9078ef.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/round/9078ef.wgsl.expected.ir.fxc.hlsl
index 0ba40c6..75ee53e 100644
--- a/test/tint/builtins/gen/var/round/9078ef.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/round/9078ef.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,48 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct VertexOutput {
+  float4 pos;
+  float16_t prevent_dce;
+};
+
+struct vertex_main_outputs {
+  nointerpolation float16_t VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+float16_t round_9078ef() {
+  float16_t arg_0 = float16_t(3.5h);
+  float16_t res = round(arg_0);
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store<float16_t>(0u, round_9078ef());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store<float16_t>(0u, round_9078ef());
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = round_9078ef();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
+FXC validation failure:
+c:\src\dawn\Shader@0x000002BC6D4619E0(3,3-11): error X3000: unrecognized identifier 'float16_t'
+
diff --git a/test/tint/builtins/gen/var/round/9edc38.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/round/9edc38.wgsl.expected.ir.dxc.hlsl
index 0ba40c6..d304160 100644
--- a/test/tint/builtins/gen/var/round/9edc38.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/round/9edc38.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,43 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  float prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation float VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+float round_9edc38() {
+  float arg_0 = 3.5f;
+  float res = round(arg_0);
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store(0u, asuint(round_9edc38()));
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store(0u, asuint(round_9edc38()));
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = round_9edc38();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
diff --git a/test/tint/builtins/gen/var/round/9edc38.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/round/9edc38.wgsl.expected.ir.fxc.hlsl
index 0ba40c6..d304160 100644
--- a/test/tint/builtins/gen/var/round/9edc38.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/round/9edc38.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,43 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  float prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation float VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+float round_9edc38() {
+  float arg_0 = 3.5f;
+  float res = round(arg_0);
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store(0u, asuint(round_9edc38()));
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store(0u, asuint(round_9edc38()));
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = round_9edc38();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
diff --git a/test/tint/builtins/gen/var/round/a1673d.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/round/a1673d.wgsl.expected.ir.dxc.hlsl
index 0ba40c6..dbc252c 100644
--- a/test/tint/builtins/gen/var/round/a1673d.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/round/a1673d.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,36 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+void round_a1673d() {
+  float3 res = (4.0f).xxx;
+}
+
+void fragment_main() {
+  round_a1673d();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  round_a1673d();
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  round_a1673d();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  vertex_main_outputs v_2 = {v_1.pos};
+  return v_2;
+}
+
diff --git a/test/tint/builtins/gen/var/round/a1673d.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/round/a1673d.wgsl.expected.ir.fxc.hlsl
index 0ba40c6..dbc252c 100644
--- a/test/tint/builtins/gen/var/round/a1673d.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/round/a1673d.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,36 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+void round_a1673d() {
+  float3 res = (4.0f).xxx;
+}
+
+void fragment_main() {
+  round_a1673d();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  round_a1673d();
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  round_a1673d();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  vertex_main_outputs v_2 = {v_1.pos};
+  return v_2;
+}
+
diff --git a/test/tint/builtins/gen/var/round/d87e84.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/round/d87e84.wgsl.expected.ir.dxc.hlsl
index 0ba40c6..5c3d431 100644
--- a/test/tint/builtins/gen/var/round/d87e84.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/round/d87e84.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,43 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  vector<float16_t, 2> prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation vector<float16_t, 2> VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+vector<float16_t, 2> round_d87e84() {
+  vector<float16_t, 2> arg_0 = (float16_t(3.5h)).xx;
+  vector<float16_t, 2> res = round(arg_0);
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store<vector<float16_t, 2> >(0u, round_d87e84());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store<vector<float16_t, 2> >(0u, round_d87e84());
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = round_d87e84();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
diff --git a/test/tint/builtins/gen/var/round/d87e84.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/round/d87e84.wgsl.expected.ir.fxc.hlsl
index 0ba40c6..602a998a 100644
--- a/test/tint/builtins/gen/var/round/d87e84.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/round/d87e84.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,48 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct VertexOutput {
+  float4 pos;
+  vector<float16_t, 2> prevent_dce;
+};
+
+struct vertex_main_outputs {
+  nointerpolation vector<float16_t, 2> VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+vector<float16_t, 2> round_d87e84() {
+  vector<float16_t, 2> arg_0 = (float16_t(3.5h)).xx;
+  vector<float16_t, 2> res = round(arg_0);
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store<vector<float16_t, 2> >(0u, round_d87e84());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store<vector<float16_t, 2> >(0u, round_d87e84());
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = round_d87e84();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
+FXC validation failure:
+c:\src\dawn\Shader@0x00000210658BA2B0(3,10-18): error X3000: syntax error: unexpected token 'float16_t'
+
diff --git a/test/tint/builtins/gen/var/round/e1bba2.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/round/e1bba2.wgsl.expected.ir.dxc.hlsl
index 0ba40c6..dc73338 100644
--- a/test/tint/builtins/gen/var/round/e1bba2.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/round/e1bba2.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,43 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  vector<float16_t, 3> prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation vector<float16_t, 3> VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+vector<float16_t, 3> round_e1bba2() {
+  vector<float16_t, 3> arg_0 = (float16_t(3.5h)).xxx;
+  vector<float16_t, 3> res = round(arg_0);
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store<vector<float16_t, 3> >(0u, round_e1bba2());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store<vector<float16_t, 3> >(0u, round_e1bba2());
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = round_e1bba2();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
diff --git a/test/tint/builtins/gen/var/round/e1bba2.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/round/e1bba2.wgsl.expected.ir.fxc.hlsl
index 0ba40c6..6bf32f3 100644
--- a/test/tint/builtins/gen/var/round/e1bba2.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/round/e1bba2.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,48 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct VertexOutput {
+  float4 pos;
+  vector<float16_t, 3> prevent_dce;
+};
+
+struct vertex_main_outputs {
+  nointerpolation vector<float16_t, 3> VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+vector<float16_t, 3> round_e1bba2() {
+  vector<float16_t, 3> arg_0 = (float16_t(3.5h)).xxx;
+  vector<float16_t, 3> res = round(arg_0);
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store<vector<float16_t, 3> >(0u, round_e1bba2());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store<vector<float16_t, 3> >(0u, round_e1bba2());
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = round_e1bba2();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
+FXC validation failure:
+c:\src\dawn\Shader@0x000001F21382C6E0(3,10-18): error X3000: syntax error: unexpected token 'float16_t'
+
diff --git a/test/tint/builtins/gen/var/round/f665b5.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/round/f665b5.wgsl.expected.ir.dxc.hlsl
index 0ba40c6..c85862e 100644
--- a/test/tint/builtins/gen/var/round/f665b5.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/round/f665b5.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,43 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  vector<float16_t, 4> prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation vector<float16_t, 4> VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+vector<float16_t, 4> round_f665b5() {
+  vector<float16_t, 4> arg_0 = (float16_t(3.5h)).xxxx;
+  vector<float16_t, 4> res = round(arg_0);
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store<vector<float16_t, 4> >(0u, round_f665b5());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store<vector<float16_t, 4> >(0u, round_f665b5());
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = round_f665b5();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
diff --git a/test/tint/builtins/gen/var/round/f665b5.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/round/f665b5.wgsl.expected.ir.fxc.hlsl
index 0ba40c6..807a0bb 100644
--- a/test/tint/builtins/gen/var/round/f665b5.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/round/f665b5.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,48 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct VertexOutput {
+  float4 pos;
+  vector<float16_t, 4> prevent_dce;
+};
+
+struct vertex_main_outputs {
+  nointerpolation vector<float16_t, 4> VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+vector<float16_t, 4> round_f665b5() {
+  vector<float16_t, 4> arg_0 = (float16_t(3.5h)).xxxx;
+  vector<float16_t, 4> res = round(arg_0);
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store<vector<float16_t, 4> >(0u, round_f665b5());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store<vector<float16_t, 4> >(0u, round_f665b5());
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = round_f665b5();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
+FXC validation failure:
+c:\src\dawn\Shader@0x000001E8B33C32F0(3,10-18): error X3000: syntax error: unexpected token 'float16_t'
+
diff --git a/test/tint/builtins/gen/var/saturate/270da5.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/saturate/270da5.wgsl.expected.ir.dxc.hlsl
index 0ba40c6..ab592a4 100644
--- a/test/tint/builtins/gen/var/saturate/270da5.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/saturate/270da5.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,43 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  float prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation float VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+float saturate_270da5() {
+  float arg_0 = 2.0f;
+  float res = saturate(arg_0);
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store(0u, asuint(saturate_270da5()));
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store(0u, asuint(saturate_270da5()));
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = saturate_270da5();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
diff --git a/test/tint/builtins/gen/var/saturate/270da5.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/saturate/270da5.wgsl.expected.ir.fxc.hlsl
index 0ba40c6..ab592a4 100644
--- a/test/tint/builtins/gen/var/saturate/270da5.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/saturate/270da5.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,43 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  float prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation float VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+float saturate_270da5() {
+  float arg_0 = 2.0f;
+  float res = saturate(arg_0);
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store(0u, asuint(saturate_270da5()));
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store(0u, asuint(saturate_270da5()));
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = saturate_270da5();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
diff --git a/test/tint/builtins/gen/var/saturate/462535.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/saturate/462535.wgsl.expected.ir.dxc.hlsl
index 0ba40c6..4fb6faa 100644
--- a/test/tint/builtins/gen/var/saturate/462535.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/saturate/462535.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,43 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  vector<float16_t, 3> prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation vector<float16_t, 3> VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+vector<float16_t, 3> saturate_462535() {
+  vector<float16_t, 3> arg_0 = (float16_t(2.0h)).xxx;
+  vector<float16_t, 3> res = saturate(arg_0);
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store<vector<float16_t, 3> >(0u, saturate_462535());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store<vector<float16_t, 3> >(0u, saturate_462535());
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = saturate_462535();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
diff --git a/test/tint/builtins/gen/var/saturate/462535.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/saturate/462535.wgsl.expected.ir.fxc.hlsl
index 0ba40c6..6cbdaff 100644
--- a/test/tint/builtins/gen/var/saturate/462535.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/saturate/462535.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,48 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct VertexOutput {
+  float4 pos;
+  vector<float16_t, 3> prevent_dce;
+};
+
+struct vertex_main_outputs {
+  nointerpolation vector<float16_t, 3> VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+vector<float16_t, 3> saturate_462535() {
+  vector<float16_t, 3> arg_0 = (float16_t(2.0h)).xxx;
+  vector<float16_t, 3> res = saturate(arg_0);
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store<vector<float16_t, 3> >(0u, saturate_462535());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store<vector<float16_t, 3> >(0u, saturate_462535());
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = saturate_462535();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
+FXC validation failure:
+c:\src\dawn\Shader@0x0000016F39270F20(3,10-18): error X3000: syntax error: unexpected token 'float16_t'
+
diff --git a/test/tint/builtins/gen/var/saturate/4ed8d7.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/saturate/4ed8d7.wgsl.expected.ir.dxc.hlsl
index 0ba40c6..3d004cb 100644
--- a/test/tint/builtins/gen/var/saturate/4ed8d7.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/saturate/4ed8d7.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,36 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+void saturate_4ed8d7() {
+  float4 res = (1.0f).xxxx;
+}
+
+void fragment_main() {
+  saturate_4ed8d7();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  saturate_4ed8d7();
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  saturate_4ed8d7();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  vertex_main_outputs v_2 = {v_1.pos};
+  return v_2;
+}
+
diff --git a/test/tint/builtins/gen/var/saturate/4ed8d7.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/saturate/4ed8d7.wgsl.expected.ir.fxc.hlsl
index 0ba40c6..3d004cb 100644
--- a/test/tint/builtins/gen/var/saturate/4ed8d7.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/saturate/4ed8d7.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,36 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+void saturate_4ed8d7() {
+  float4 res = (1.0f).xxxx;
+}
+
+void fragment_main() {
+  saturate_4ed8d7();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  saturate_4ed8d7();
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  saturate_4ed8d7();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  vertex_main_outputs v_2 = {v_1.pos};
+  return v_2;
+}
+
diff --git a/test/tint/builtins/gen/var/saturate/51567f.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/saturate/51567f.wgsl.expected.ir.dxc.hlsl
index 0ba40c6..daa35ed 100644
--- a/test/tint/builtins/gen/var/saturate/51567f.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/saturate/51567f.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,43 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  float2 prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation float2 VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+float2 saturate_51567f() {
+  float2 arg_0 = (2.0f).xx;
+  float2 res = saturate(arg_0);
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store2(0u, asuint(saturate_51567f()));
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store2(0u, asuint(saturate_51567f()));
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = saturate_51567f();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
diff --git a/test/tint/builtins/gen/var/saturate/51567f.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/saturate/51567f.wgsl.expected.ir.fxc.hlsl
index 0ba40c6..daa35ed 100644
--- a/test/tint/builtins/gen/var/saturate/51567f.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/saturate/51567f.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,43 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  float2 prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation float2 VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+float2 saturate_51567f() {
+  float2 arg_0 = (2.0f).xx;
+  float2 res = saturate(arg_0);
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store2(0u, asuint(saturate_51567f()));
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store2(0u, asuint(saturate_51567f()));
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = saturate_51567f();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
diff --git a/test/tint/builtins/gen/var/saturate/6bcddf.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/saturate/6bcddf.wgsl.expected.ir.dxc.hlsl
index 0ba40c6..bec9713 100644
--- a/test/tint/builtins/gen/var/saturate/6bcddf.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/saturate/6bcddf.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,43 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  float3 prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation float3 VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+float3 saturate_6bcddf() {
+  float3 arg_0 = (2.0f).xxx;
+  float3 res = saturate(arg_0);
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store3(0u, asuint(saturate_6bcddf()));
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store3(0u, asuint(saturate_6bcddf()));
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = saturate_6bcddf();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
diff --git a/test/tint/builtins/gen/var/saturate/6bcddf.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/saturate/6bcddf.wgsl.expected.ir.fxc.hlsl
index 0ba40c6..bec9713 100644
--- a/test/tint/builtins/gen/var/saturate/6bcddf.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/saturate/6bcddf.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,43 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  float3 prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation float3 VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+float3 saturate_6bcddf() {
+  float3 arg_0 = (2.0f).xxx;
+  float3 res = saturate(arg_0);
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store3(0u, asuint(saturate_6bcddf()));
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store3(0u, asuint(saturate_6bcddf()));
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = saturate_6bcddf();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
diff --git a/test/tint/builtins/gen/var/saturate/78b37c.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/saturate/78b37c.wgsl.expected.ir.dxc.hlsl
index 0ba40c6..ff26f70 100644
--- a/test/tint/builtins/gen/var/saturate/78b37c.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/saturate/78b37c.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,36 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+void saturate_78b37c() {
+  float res = 1.0f;
+}
+
+void fragment_main() {
+  saturate_78b37c();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  saturate_78b37c();
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  saturate_78b37c();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  vertex_main_outputs v_2 = {v_1.pos};
+  return v_2;
+}
+
diff --git a/test/tint/builtins/gen/var/saturate/78b37c.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/saturate/78b37c.wgsl.expected.ir.fxc.hlsl
index 0ba40c6..ff26f70 100644
--- a/test/tint/builtins/gen/var/saturate/78b37c.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/saturate/78b37c.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,36 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+void saturate_78b37c() {
+  float res = 1.0f;
+}
+
+void fragment_main() {
+  saturate_78b37c();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  saturate_78b37c();
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  saturate_78b37c();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  vertex_main_outputs v_2 = {v_1.pos};
+  return v_2;
+}
+
diff --git a/test/tint/builtins/gen/var/saturate/a5b571.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/saturate/a5b571.wgsl.expected.ir.dxc.hlsl
index 0ba40c6..3e8edd3 100644
--- a/test/tint/builtins/gen/var/saturate/a5b571.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/saturate/a5b571.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,43 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  float4 prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation float4 VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+float4 saturate_a5b571() {
+  float4 arg_0 = (2.0f).xxxx;
+  float4 res = saturate(arg_0);
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store4(0u, asuint(saturate_a5b571()));
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store4(0u, asuint(saturate_a5b571()));
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = saturate_a5b571();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
diff --git a/test/tint/builtins/gen/var/saturate/a5b571.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/saturate/a5b571.wgsl.expected.ir.fxc.hlsl
index 0ba40c6..3e8edd3 100644
--- a/test/tint/builtins/gen/var/saturate/a5b571.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/saturate/a5b571.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,43 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  float4 prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation float4 VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+float4 saturate_a5b571() {
+  float4 arg_0 = (2.0f).xxxx;
+  float4 res = saturate(arg_0);
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store4(0u, asuint(saturate_a5b571()));
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store4(0u, asuint(saturate_a5b571()));
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = saturate_a5b571();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
diff --git a/test/tint/builtins/gen/var/saturate/cd2028.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/saturate/cd2028.wgsl.expected.ir.dxc.hlsl
index 0ba40c6..6d672df 100644
--- a/test/tint/builtins/gen/var/saturate/cd2028.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/saturate/cd2028.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,43 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  vector<float16_t, 2> prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation vector<float16_t, 2> VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+vector<float16_t, 2> saturate_cd2028() {
+  vector<float16_t, 2> arg_0 = (float16_t(2.0h)).xx;
+  vector<float16_t, 2> res = saturate(arg_0);
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store<vector<float16_t, 2> >(0u, saturate_cd2028());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store<vector<float16_t, 2> >(0u, saturate_cd2028());
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = saturate_cd2028();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
diff --git a/test/tint/builtins/gen/var/saturate/cd2028.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/saturate/cd2028.wgsl.expected.ir.fxc.hlsl
index 0ba40c6..467f19f 100644
--- a/test/tint/builtins/gen/var/saturate/cd2028.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/saturate/cd2028.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,48 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct VertexOutput {
+  float4 pos;
+  vector<float16_t, 2> prevent_dce;
+};
+
+struct vertex_main_outputs {
+  nointerpolation vector<float16_t, 2> VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+vector<float16_t, 2> saturate_cd2028() {
+  vector<float16_t, 2> arg_0 = (float16_t(2.0h)).xx;
+  vector<float16_t, 2> res = saturate(arg_0);
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store<vector<float16_t, 2> >(0u, saturate_cd2028());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store<vector<float16_t, 2> >(0u, saturate_cd2028());
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = saturate_cd2028();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
+FXC validation failure:
+c:\src\dawn\Shader@0x000001D87A4F5D10(3,10-18): error X3000: syntax error: unexpected token 'float16_t'
+
diff --git a/test/tint/builtins/gen/var/saturate/d55822.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/saturate/d55822.wgsl.expected.ir.dxc.hlsl
index 0ba40c6..013776b 100644
--- a/test/tint/builtins/gen/var/saturate/d55822.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/saturate/d55822.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,36 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+void saturate_d55822() {
+  float3 res = (1.0f).xxx;
+}
+
+void fragment_main() {
+  saturate_d55822();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  saturate_d55822();
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  saturate_d55822();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  vertex_main_outputs v_2 = {v_1.pos};
+  return v_2;
+}
+
diff --git a/test/tint/builtins/gen/var/saturate/d55822.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/saturate/d55822.wgsl.expected.ir.fxc.hlsl
index 0ba40c6..013776b 100644
--- a/test/tint/builtins/gen/var/saturate/d55822.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/saturate/d55822.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,36 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+void saturate_d55822() {
+  float3 res = (1.0f).xxx;
+}
+
+void fragment_main() {
+  saturate_d55822();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  saturate_d55822();
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  saturate_d55822();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  vertex_main_outputs v_2 = {v_1.pos};
+  return v_2;
+}
+
diff --git a/test/tint/builtins/gen/var/saturate/dcde71.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/saturate/dcde71.wgsl.expected.ir.dxc.hlsl
index 0ba40c6..575556b 100644
--- a/test/tint/builtins/gen/var/saturate/dcde71.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/saturate/dcde71.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,43 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  vector<float16_t, 4> prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation vector<float16_t, 4> VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+vector<float16_t, 4> saturate_dcde71() {
+  vector<float16_t, 4> arg_0 = (float16_t(2.0h)).xxxx;
+  vector<float16_t, 4> res = saturate(arg_0);
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store<vector<float16_t, 4> >(0u, saturate_dcde71());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store<vector<float16_t, 4> >(0u, saturate_dcde71());
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = saturate_dcde71();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
diff --git a/test/tint/builtins/gen/var/saturate/dcde71.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/saturate/dcde71.wgsl.expected.ir.fxc.hlsl
index 0ba40c6..40e3bdd 100644
--- a/test/tint/builtins/gen/var/saturate/dcde71.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/saturate/dcde71.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,48 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct VertexOutput {
+  float4 pos;
+  vector<float16_t, 4> prevent_dce;
+};
+
+struct vertex_main_outputs {
+  nointerpolation vector<float16_t, 4> VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+vector<float16_t, 4> saturate_dcde71() {
+  vector<float16_t, 4> arg_0 = (float16_t(2.0h)).xxxx;
+  vector<float16_t, 4> res = saturate(arg_0);
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store<vector<float16_t, 4> >(0u, saturate_dcde71());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store<vector<float16_t, 4> >(0u, saturate_dcde71());
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = saturate_dcde71();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
+FXC validation failure:
+c:\src\dawn\Shader@0x0000013C97A0CAA0(3,10-18): error X3000: syntax error: unexpected token 'float16_t'
+
diff --git a/test/tint/builtins/gen/var/saturate/e40fb6.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/saturate/e40fb6.wgsl.expected.ir.dxc.hlsl
index 0ba40c6..38fb339 100644
--- a/test/tint/builtins/gen/var/saturate/e40fb6.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/saturate/e40fb6.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,36 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+void saturate_e40fb6() {
+  float2 res = (1.0f).xx;
+}
+
+void fragment_main() {
+  saturate_e40fb6();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  saturate_e40fb6();
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  saturate_e40fb6();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  vertex_main_outputs v_2 = {v_1.pos};
+  return v_2;
+}
+
diff --git a/test/tint/builtins/gen/var/saturate/e40fb6.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/saturate/e40fb6.wgsl.expected.ir.fxc.hlsl
index 0ba40c6..38fb339 100644
--- a/test/tint/builtins/gen/var/saturate/e40fb6.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/saturate/e40fb6.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,36 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+void saturate_e40fb6() {
+  float2 res = (1.0f).xx;
+}
+
+void fragment_main() {
+  saturate_e40fb6();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  saturate_e40fb6();
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  saturate_e40fb6();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  vertex_main_outputs v_2 = {v_1.pos};
+  return v_2;
+}
+
diff --git a/test/tint/builtins/gen/var/saturate/e8df56.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/saturate/e8df56.wgsl.expected.ir.dxc.hlsl
index 0ba40c6..4f4e6f6 100644
--- a/test/tint/builtins/gen/var/saturate/e8df56.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/saturate/e8df56.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,43 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  float16_t prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation float16_t VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+float16_t saturate_e8df56() {
+  float16_t arg_0 = float16_t(2.0h);
+  float16_t res = saturate(arg_0);
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store<float16_t>(0u, saturate_e8df56());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store<float16_t>(0u, saturate_e8df56());
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = saturate_e8df56();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
diff --git a/test/tint/builtins/gen/var/saturate/e8df56.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/saturate/e8df56.wgsl.expected.ir.fxc.hlsl
index 0ba40c6..b9f0cf1 100644
--- a/test/tint/builtins/gen/var/saturate/e8df56.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/saturate/e8df56.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,48 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct VertexOutput {
+  float4 pos;
+  float16_t prevent_dce;
+};
+
+struct vertex_main_outputs {
+  nointerpolation float16_t VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+float16_t saturate_e8df56() {
+  float16_t arg_0 = float16_t(2.0h);
+  float16_t res = saturate(arg_0);
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store<float16_t>(0u, saturate_e8df56());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store<float16_t>(0u, saturate_e8df56());
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = saturate_e8df56();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
+FXC validation failure:
+c:\src\dawn\Shader@0x000001F274F0E680(3,3-11): error X3000: unrecognized identifier 'float16_t'
+
diff --git a/test/tint/builtins/gen/var/select/00b848.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/select/00b848.wgsl.expected.ir.dxc.hlsl
index ddf0424..6e2a53a 100644
--- a/test/tint/builtins/gen/var/select/00b848.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/select/00b848.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,45 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  int2 prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: select
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation int2 VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+int2 select_00b848() {
+  int2 arg_0 = (1).xx;
+  int2 arg_1 = (1).xx;
+  bool2 arg_2 = (true).xx;
+  int2 res = ((arg_2) ? (arg_1) : (arg_0));
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store2(0u, asuint(select_00b848()));
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store2(0u, asuint(select_00b848()));
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = select_00b848();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
diff --git a/test/tint/builtins/gen/var/select/00b848.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/select/00b848.wgsl.expected.ir.fxc.hlsl
index ddf0424..6e2a53a 100644
--- a/test/tint/builtins/gen/var/select/00b848.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/select/00b848.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,45 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  int2 prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: select
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation int2 VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+int2 select_00b848() {
+  int2 arg_0 = (1).xx;
+  int2 arg_1 = (1).xx;
+  bool2 arg_2 = (true).xx;
+  int2 res = ((arg_2) ? (arg_1) : (arg_0));
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store2(0u, asuint(select_00b848()));
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store2(0u, asuint(select_00b848()));
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = select_00b848();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
diff --git a/test/tint/builtins/gen/var/select/01e2cd.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/select/01e2cd.wgsl.expected.ir.dxc.hlsl
index ddf0424..f688206 100644
--- a/test/tint/builtins/gen/var/select/01e2cd.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/select/01e2cd.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,45 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  int3 prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: select
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation int3 VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+int3 select_01e2cd() {
+  int3 arg_0 = (1).xxx;
+  int3 arg_1 = (1).xxx;
+  bool3 arg_2 = (true).xxx;
+  int3 res = ((arg_2) ? (arg_1) : (arg_0));
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store3(0u, asuint(select_01e2cd()));
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store3(0u, asuint(select_01e2cd()));
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = select_01e2cd();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
diff --git a/test/tint/builtins/gen/var/select/01e2cd.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/select/01e2cd.wgsl.expected.ir.fxc.hlsl
index ddf0424..f688206 100644
--- a/test/tint/builtins/gen/var/select/01e2cd.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/select/01e2cd.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,45 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  int3 prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: select
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation int3 VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+int3 select_01e2cd() {
+  int3 arg_0 = (1).xxx;
+  int3 arg_1 = (1).xxx;
+  bool3 arg_2 = (true).xxx;
+  int3 res = ((arg_2) ? (arg_1) : (arg_0));
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store3(0u, asuint(select_01e2cd()));
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store3(0u, asuint(select_01e2cd()));
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = select_01e2cd();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
diff --git a/test/tint/builtins/gen/var/select/087ea4.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/select/087ea4.wgsl.expected.ir.dxc.hlsl
index ddf0424..925365e 100644
--- a/test/tint/builtins/gen/var/select/087ea4.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/select/087ea4.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,45 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  uint4 prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: select
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation uint4 VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+uint4 select_087ea4() {
+  uint4 arg_0 = (1u).xxxx;
+  uint4 arg_1 = (1u).xxxx;
+  bool arg_2 = true;
+  uint4 res = ((arg_2) ? (arg_1) : (arg_0));
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store4(0u, select_087ea4());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store4(0u, select_087ea4());
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = select_087ea4();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
diff --git a/test/tint/builtins/gen/var/select/087ea4.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/select/087ea4.wgsl.expected.ir.fxc.hlsl
index ddf0424..925365e 100644
--- a/test/tint/builtins/gen/var/select/087ea4.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/select/087ea4.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,45 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  uint4 prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: select
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation uint4 VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+uint4 select_087ea4() {
+  uint4 arg_0 = (1u).xxxx;
+  uint4 arg_1 = (1u).xxxx;
+  bool arg_2 = true;
+  uint4 res = ((arg_2) ? (arg_1) : (arg_0));
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store4(0u, select_087ea4());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store4(0u, select_087ea4());
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = select_087ea4();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
diff --git a/test/tint/builtins/gen/var/select/089657.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/select/089657.wgsl.expected.ir.dxc.hlsl
index ddf0424..12613f8 100644
--- a/test/tint/builtins/gen/var/select/089657.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/select/089657.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,37 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: select
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+void select_089657() {
+  bool arg_2 = true;
+  float3 res = ((arg_2) ? ((1.0f).xxx) : ((1.0f).xxx));
+}
+
+void fragment_main() {
+  select_089657();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  select_089657();
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  select_089657();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  vertex_main_outputs v_2 = {v_1.pos};
+  return v_2;
+}
+
diff --git a/test/tint/builtins/gen/var/select/089657.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/select/089657.wgsl.expected.ir.fxc.hlsl
index ddf0424..12613f8 100644
--- a/test/tint/builtins/gen/var/select/089657.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/select/089657.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,37 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: select
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+void select_089657() {
+  bool arg_2 = true;
+  float3 res = ((arg_2) ? ((1.0f).xxx) : ((1.0f).xxx));
+}
+
+void fragment_main() {
+  select_089657();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  select_089657();
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  select_089657();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  vertex_main_outputs v_2 = {v_1.pos};
+  return v_2;
+}
+
diff --git a/test/tint/builtins/gen/var/select/10e73b.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/select/10e73b.wgsl.expected.ir.dxc.hlsl
index ddf0424..f2751c8 100644
--- a/test/tint/builtins/gen/var/select/10e73b.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/select/10e73b.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,45 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  float16_t prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: select
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation float16_t VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+float16_t select_10e73b() {
+  float16_t arg_0 = float16_t(1.0h);
+  float16_t arg_1 = float16_t(1.0h);
+  bool arg_2 = true;
+  float16_t res = ((arg_2) ? (arg_1) : (arg_0));
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store<float16_t>(0u, select_10e73b());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store<float16_t>(0u, select_10e73b());
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = select_10e73b();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
diff --git a/test/tint/builtins/gen/var/select/10e73b.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/select/10e73b.wgsl.expected.ir.fxc.hlsl
index ddf0424..0b413b4 100644
--- a/test/tint/builtins/gen/var/select/10e73b.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/select/10e73b.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,50 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: select
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct VertexOutput {
+  float4 pos;
+  float16_t prevent_dce;
+};
+
+struct vertex_main_outputs {
+  nointerpolation float16_t VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+float16_t select_10e73b() {
+  float16_t arg_0 = float16_t(1.0h);
+  float16_t arg_1 = float16_t(1.0h);
+  bool arg_2 = true;
+  float16_t res = ((arg_2) ? (arg_1) : (arg_0));
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store<float16_t>(0u, select_10e73b());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store<float16_t>(0u, select_10e73b());
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = select_10e73b();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
+FXC validation failure:
+c:\src\dawn\Shader@0x0000024EA038F390(3,3-11): error X3000: unrecognized identifier 'float16_t'
+
diff --git a/test/tint/builtins/gen/var/select/17441a.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/select/17441a.wgsl.expected.ir.dxc.hlsl
index ddf0424..0360074 100644
--- a/test/tint/builtins/gen/var/select/17441a.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/select/17441a.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,37 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: select
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+void select_17441a() {
+  bool arg_2 = true;
+  float4 res = ((arg_2) ? ((1.0f).xxxx) : ((1.0f).xxxx));
+}
+
+void fragment_main() {
+  select_17441a();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  select_17441a();
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  select_17441a();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  vertex_main_outputs v_2 = {v_1.pos};
+  return v_2;
+}
+
diff --git a/test/tint/builtins/gen/var/select/17441a.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/select/17441a.wgsl.expected.ir.fxc.hlsl
index ddf0424..0360074 100644
--- a/test/tint/builtins/gen/var/select/17441a.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/select/17441a.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,37 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: select
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+void select_17441a() {
+  bool arg_2 = true;
+  float4 res = ((arg_2) ? ((1.0f).xxxx) : ((1.0f).xxxx));
+}
+
+void fragment_main() {
+  select_17441a();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  select_17441a();
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  select_17441a();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  vertex_main_outputs v_2 = {v_1.pos};
+  return v_2;
+}
+
diff --git a/test/tint/builtins/gen/var/select/1ada2a.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/select/1ada2a.wgsl.expected.ir.dxc.hlsl
index ddf0424..9a00027 100644
--- a/test/tint/builtins/gen/var/select/1ada2a.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/select/1ada2a.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,45 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  vector<float16_t, 3> prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: select
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation vector<float16_t, 3> VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+vector<float16_t, 3> select_1ada2a() {
+  vector<float16_t, 3> arg_0 = (float16_t(1.0h)).xxx;
+  vector<float16_t, 3> arg_1 = (float16_t(1.0h)).xxx;
+  bool arg_2 = true;
+  vector<float16_t, 3> res = ((arg_2) ? (arg_1) : (arg_0));
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store<vector<float16_t, 3> >(0u, select_1ada2a());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store<vector<float16_t, 3> >(0u, select_1ada2a());
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = select_1ada2a();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
diff --git a/test/tint/builtins/gen/var/select/1ada2a.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/select/1ada2a.wgsl.expected.ir.fxc.hlsl
index ddf0424..72a39e1 100644
--- a/test/tint/builtins/gen/var/select/1ada2a.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/select/1ada2a.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,50 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: select
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct VertexOutput {
+  float4 pos;
+  vector<float16_t, 3> prevent_dce;
+};
+
+struct vertex_main_outputs {
+  nointerpolation vector<float16_t, 3> VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+vector<float16_t, 3> select_1ada2a() {
+  vector<float16_t, 3> arg_0 = (float16_t(1.0h)).xxx;
+  vector<float16_t, 3> arg_1 = (float16_t(1.0h)).xxx;
+  bool arg_2 = true;
+  vector<float16_t, 3> res = ((arg_2) ? (arg_1) : (arg_0));
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store<vector<float16_t, 3> >(0u, select_1ada2a());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store<vector<float16_t, 3> >(0u, select_1ada2a());
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = select_1ada2a();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
+FXC validation failure:
+c:\src\dawn\Shader@0x0000023AA6E207E0(3,10-18): error X3000: syntax error: unexpected token 'float16_t'
+
diff --git a/test/tint/builtins/gen/var/select/1e960b.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/select/1e960b.wgsl.expected.ir.dxc.hlsl
index ddf0424..ec38e33 100644
--- a/test/tint/builtins/gen/var/select/1e960b.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/select/1e960b.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,45 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  uint2 prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: select
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation uint2 VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+uint2 select_1e960b() {
+  uint2 arg_0 = (1u).xx;
+  uint2 arg_1 = (1u).xx;
+  bool2 arg_2 = (true).xx;
+  uint2 res = ((arg_2) ? (arg_1) : (arg_0));
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store2(0u, select_1e960b());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store2(0u, select_1e960b());
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = select_1e960b();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
diff --git a/test/tint/builtins/gen/var/select/1e960b.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/select/1e960b.wgsl.expected.ir.fxc.hlsl
index ddf0424..ec38e33 100644
--- a/test/tint/builtins/gen/var/select/1e960b.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/select/1e960b.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,45 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  uint2 prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: select
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation uint2 VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+uint2 select_1e960b() {
+  uint2 arg_0 = (1u).xx;
+  uint2 arg_1 = (1u).xx;
+  bool2 arg_2 = (true).xx;
+  uint2 res = ((arg_2) ? (arg_1) : (arg_0));
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store2(0u, select_1e960b());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store2(0u, select_1e960b());
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = select_1e960b();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
diff --git a/test/tint/builtins/gen/var/select/1f4d93.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/select/1f4d93.wgsl.expected.ir.dxc.hlsl
index ddf0424..7ffd96d 100644
--- a/test/tint/builtins/gen/var/select/1f4d93.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/select/1f4d93.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,37 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: select
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+void select_1f4d93() {
+  bool2 arg_2 = (true).xx;
+  float2 res = ((arg_2) ? ((1.0f).xx) : ((1.0f).xx));
+}
+
+void fragment_main() {
+  select_1f4d93();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  select_1f4d93();
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  select_1f4d93();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  vertex_main_outputs v_2 = {v_1.pos};
+  return v_2;
+}
+
diff --git a/test/tint/builtins/gen/var/select/1f4d93.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/select/1f4d93.wgsl.expected.ir.fxc.hlsl
index ddf0424..7ffd96d 100644
--- a/test/tint/builtins/gen/var/select/1f4d93.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/select/1f4d93.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,37 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: select
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+void select_1f4d93() {
+  bool2 arg_2 = (true).xx;
+  float2 res = ((arg_2) ? ((1.0f).xx) : ((1.0f).xx));
+}
+
+void fragment_main() {
+  select_1f4d93();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  select_1f4d93();
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  select_1f4d93();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  vertex_main_outputs v_2 = {v_1.pos};
+  return v_2;
+}
+
diff --git a/test/tint/builtins/gen/var/select/266aff.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/select/266aff.wgsl.expected.ir.dxc.hlsl
index ddf0424..472dbe5 100644
--- a/test/tint/builtins/gen/var/select/266aff.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/select/266aff.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,45 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  float2 prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: select
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation float2 VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+float2 select_266aff() {
+  float2 arg_0 = (1.0f).xx;
+  float2 arg_1 = (1.0f).xx;
+  bool2 arg_2 = (true).xx;
+  float2 res = ((arg_2) ? (arg_1) : (arg_0));
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store2(0u, asuint(select_266aff()));
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store2(0u, asuint(select_266aff()));
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = select_266aff();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
diff --git a/test/tint/builtins/gen/var/select/266aff.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/select/266aff.wgsl.expected.ir.fxc.hlsl
index ddf0424..472dbe5 100644
--- a/test/tint/builtins/gen/var/select/266aff.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/select/266aff.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,45 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  float2 prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: select
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation float2 VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+float2 select_266aff() {
+  float2 arg_0 = (1.0f).xx;
+  float2 arg_1 = (1.0f).xx;
+  bool2 arg_2 = (true).xx;
+  float2 res = ((arg_2) ? (arg_1) : (arg_0));
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store2(0u, asuint(select_266aff()));
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store2(0u, asuint(select_266aff()));
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = select_266aff();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
diff --git a/test/tint/builtins/gen/var/select/28a27e.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/select/28a27e.wgsl.expected.ir.dxc.hlsl
index ddf0424..789de07 100644
--- a/test/tint/builtins/gen/var/select/28a27e.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/select/28a27e.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,45 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  uint3 prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: select
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation uint3 VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+uint3 select_28a27e() {
+  uint3 arg_0 = (1u).xxx;
+  uint3 arg_1 = (1u).xxx;
+  bool3 arg_2 = (true).xxx;
+  uint3 res = ((arg_2) ? (arg_1) : (arg_0));
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store3(0u, select_28a27e());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store3(0u, select_28a27e());
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = select_28a27e();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
diff --git a/test/tint/builtins/gen/var/select/28a27e.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/select/28a27e.wgsl.expected.ir.fxc.hlsl
index ddf0424..789de07 100644
--- a/test/tint/builtins/gen/var/select/28a27e.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/select/28a27e.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,45 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  uint3 prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: select
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation uint3 VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+uint3 select_28a27e() {
+  uint3 arg_0 = (1u).xxx;
+  uint3 arg_1 = (1u).xxx;
+  bool3 arg_2 = (true).xxx;
+  uint3 res = ((arg_2) ? (arg_1) : (arg_0));
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store3(0u, select_28a27e());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store3(0u, select_28a27e());
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = select_28a27e();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
diff --git a/test/tint/builtins/gen/var/select/2c96d4.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/select/2c96d4.wgsl.expected.ir.dxc.hlsl
index ddf0424..7597004 100644
--- a/test/tint/builtins/gen/var/select/2c96d4.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/select/2c96d4.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,37 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: select
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+void select_2c96d4() {
+  bool3 arg_2 = (true).xxx;
+  float3 res = ((arg_2) ? ((1.0f).xxx) : ((1.0f).xxx));
+}
+
+void fragment_main() {
+  select_2c96d4();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  select_2c96d4();
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  select_2c96d4();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  vertex_main_outputs v_2 = {v_1.pos};
+  return v_2;
+}
+
diff --git a/test/tint/builtins/gen/var/select/2c96d4.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/select/2c96d4.wgsl.expected.ir.fxc.hlsl
index ddf0424..7597004 100644
--- a/test/tint/builtins/gen/var/select/2c96d4.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/select/2c96d4.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,37 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: select
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+void select_2c96d4() {
+  bool3 arg_2 = (true).xxx;
+  float3 res = ((arg_2) ? ((1.0f).xxx) : ((1.0f).xxx));
+}
+
+void fragment_main() {
+  select_2c96d4();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  select_2c96d4();
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  select_2c96d4();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  vertex_main_outputs v_2 = {v_1.pos};
+  return v_2;
+}
+
diff --git a/test/tint/builtins/gen/var/select/3a14be.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/select/3a14be.wgsl.expected.ir.dxc.hlsl
index ddf0424..41d36b7 100644
--- a/test/tint/builtins/gen/var/select/3a14be.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/select/3a14be.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,37 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: select
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+void select_3a14be() {
+  bool arg_2 = true;
+  int2 res = ((arg_2) ? ((1).xx) : ((1).xx));
+}
+
+void fragment_main() {
+  select_3a14be();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  select_3a14be();
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  select_3a14be();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  vertex_main_outputs v_2 = {v_1.pos};
+  return v_2;
+}
+
diff --git a/test/tint/builtins/gen/var/select/3a14be.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/select/3a14be.wgsl.expected.ir.fxc.hlsl
index ddf0424..41d36b7 100644
--- a/test/tint/builtins/gen/var/select/3a14be.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/select/3a14be.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,37 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: select
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+void select_3a14be() {
+  bool arg_2 = true;
+  int2 res = ((arg_2) ? ((1).xx) : ((1).xx));
+}
+
+void fragment_main() {
+  select_3a14be();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  select_3a14be();
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  select_3a14be();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  vertex_main_outputs v_2 = {v_1.pos};
+  return v_2;
+}
+
diff --git a/test/tint/builtins/gen/var/select/3c25ce.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/select/3c25ce.wgsl.expected.ir.dxc.hlsl
index ddf0424..0b05311 100644
--- a/test/tint/builtins/gen/var/select/3c25ce.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/select/3c25ce.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,45 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  int prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: select
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation int VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+int select_3c25ce() {
+  bool3 arg_0 = (true).xxx;
+  bool3 arg_1 = (true).xxx;
+  bool arg_2 = true;
+  bool3 res = ((arg_2) ? (arg_1) : (arg_0));
+  return ((all((res == (false).xxx))) ? (1) : (0));
+}
+
+void fragment_main() {
+  prevent_dce.Store(0u, asuint(select_3c25ce()));
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store(0u, asuint(select_3c25ce()));
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = select_3c25ce();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
diff --git a/test/tint/builtins/gen/var/select/3c25ce.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/select/3c25ce.wgsl.expected.ir.fxc.hlsl
index ddf0424..0b05311 100644
--- a/test/tint/builtins/gen/var/select/3c25ce.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/select/3c25ce.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,45 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  int prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: select
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation int VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+int select_3c25ce() {
+  bool3 arg_0 = (true).xxx;
+  bool3 arg_1 = (true).xxx;
+  bool arg_2 = true;
+  bool3 res = ((arg_2) ? (arg_1) : (arg_0));
+  return ((all((res == (false).xxx))) ? (1) : (0));
+}
+
+void fragment_main() {
+  prevent_dce.Store(0u, asuint(select_3c25ce()));
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store(0u, asuint(select_3c25ce()));
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = select_3c25ce();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
diff --git a/test/tint/builtins/gen/var/select/416e14.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/select/416e14.wgsl.expected.ir.dxc.hlsl
index ddf0424..f13f907 100644
--- a/test/tint/builtins/gen/var/select/416e14.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/select/416e14.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,45 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  float prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: select
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation float VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+float select_416e14() {
+  float arg_0 = 1.0f;
+  float arg_1 = 1.0f;
+  bool arg_2 = true;
+  float res = ((arg_2) ? (arg_1) : (arg_0));
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store(0u, asuint(select_416e14()));
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store(0u, asuint(select_416e14()));
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = select_416e14();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
diff --git a/test/tint/builtins/gen/var/select/416e14.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/select/416e14.wgsl.expected.ir.fxc.hlsl
index ddf0424..f13f907 100644
--- a/test/tint/builtins/gen/var/select/416e14.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/select/416e14.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,45 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  float prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: select
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation float VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+float select_416e14() {
+  float arg_0 = 1.0f;
+  float arg_1 = 1.0f;
+  bool arg_2 = true;
+  float res = ((arg_2) ? (arg_1) : (arg_0));
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store(0u, asuint(select_416e14()));
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store(0u, asuint(select_416e14()));
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = select_416e14();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
diff --git a/test/tint/builtins/gen/var/select/431dfb.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/select/431dfb.wgsl.expected.ir.dxc.hlsl
index ddf0424..2bc1d83 100644
--- a/test/tint/builtins/gen/var/select/431dfb.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/select/431dfb.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,37 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: select
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+void select_431dfb() {
+  bool2 arg_2 = (true).xx;
+  int2 res = ((arg_2) ? ((1).xx) : ((1).xx));
+}
+
+void fragment_main() {
+  select_431dfb();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  select_431dfb();
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  select_431dfb();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  vertex_main_outputs v_2 = {v_1.pos};
+  return v_2;
+}
+
diff --git a/test/tint/builtins/gen/var/select/431dfb.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/select/431dfb.wgsl.expected.ir.fxc.hlsl
index ddf0424..2bc1d83 100644
--- a/test/tint/builtins/gen/var/select/431dfb.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/select/431dfb.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,37 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: select
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+void select_431dfb() {
+  bool2 arg_2 = (true).xx;
+  int2 res = ((arg_2) ? ((1).xx) : ((1).xx));
+}
+
+void fragment_main() {
+  select_431dfb();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  select_431dfb();
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  select_431dfb();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  vertex_main_outputs v_2 = {v_1.pos};
+  return v_2;
+}
+
diff --git a/test/tint/builtins/gen/var/select/43741e.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/select/43741e.wgsl.expected.ir.dxc.hlsl
index ddf0424..02f64b0 100644
--- a/test/tint/builtins/gen/var/select/43741e.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/select/43741e.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,37 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: select
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+void select_43741e() {
+  bool4 arg_2 = (true).xxxx;
+  float4 res = ((arg_2) ? ((1.0f).xxxx) : ((1.0f).xxxx));
+}
+
+void fragment_main() {
+  select_43741e();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  select_43741e();
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  select_43741e();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  vertex_main_outputs v_2 = {v_1.pos};
+  return v_2;
+}
+
diff --git a/test/tint/builtins/gen/var/select/43741e.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/select/43741e.wgsl.expected.ir.fxc.hlsl
index ddf0424..02f64b0 100644
--- a/test/tint/builtins/gen/var/select/43741e.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/select/43741e.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,37 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: select
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+void select_43741e() {
+  bool4 arg_2 = (true).xxxx;
+  float4 res = ((arg_2) ? ((1.0f).xxxx) : ((1.0f).xxxx));
+}
+
+void fragment_main() {
+  select_43741e();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  select_43741e();
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  select_43741e();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  vertex_main_outputs v_2 = {v_1.pos};
+  return v_2;
+}
+
diff --git a/test/tint/builtins/gen/var/select/494051.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/select/494051.wgsl.expected.ir.dxc.hlsl
index ddf0424..2966132 100644
--- a/test/tint/builtins/gen/var/select/494051.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/select/494051.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,37 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: select
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+void select_494051() {
+  bool arg_2 = true;
+  float res = ((arg_2) ? (1.0f) : (1.0f));
+}
+
+void fragment_main() {
+  select_494051();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  select_494051();
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  select_494051();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  vertex_main_outputs v_2 = {v_1.pos};
+  return v_2;
+}
+
diff --git a/test/tint/builtins/gen/var/select/494051.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/select/494051.wgsl.expected.ir.fxc.hlsl
index ddf0424..2966132 100644
--- a/test/tint/builtins/gen/var/select/494051.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/select/494051.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,37 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: select
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+void select_494051() {
+  bool arg_2 = true;
+  float res = ((arg_2) ? (1.0f) : (1.0f));
+}
+
+void fragment_main() {
+  select_494051();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  select_494051();
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  select_494051();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  vertex_main_outputs v_2 = {v_1.pos};
+  return v_2;
+}
+
diff --git a/test/tint/builtins/gen/var/select/4c4738.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/select/4c4738.wgsl.expected.ir.dxc.hlsl
index ddf0424..022dda6 100644
--- a/test/tint/builtins/gen/var/select/4c4738.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/select/4c4738.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,37 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: select
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+void select_4c4738() {
+  bool4 arg_2 = (true).xxxx;
+  int4 res = ((arg_2) ? ((1).xxxx) : ((1).xxxx));
+}
+
+void fragment_main() {
+  select_4c4738();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  select_4c4738();
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  select_4c4738();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  vertex_main_outputs v_2 = {v_1.pos};
+  return v_2;
+}
+
diff --git a/test/tint/builtins/gen/var/select/4c4738.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/select/4c4738.wgsl.expected.ir.fxc.hlsl
index ddf0424..022dda6 100644
--- a/test/tint/builtins/gen/var/select/4c4738.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/select/4c4738.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,37 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: select
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+void select_4c4738() {
+  bool4 arg_2 = (true).xxxx;
+  int4 res = ((arg_2) ? ((1).xxxx) : ((1).xxxx));
+}
+
+void fragment_main() {
+  select_4c4738();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  select_4c4738();
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  select_4c4738();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  vertex_main_outputs v_2 = {v_1.pos};
+  return v_2;
+}
+
diff --git a/test/tint/builtins/gen/var/select/4e60da.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/select/4e60da.wgsl.expected.ir.dxc.hlsl
index ddf0424..bd3d72b 100644
--- a/test/tint/builtins/gen/var/select/4e60da.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/select/4e60da.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,37 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: select
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+void select_4e60da() {
+  bool arg_2 = true;
+  float2 res = ((arg_2) ? ((1.0f).xx) : ((1.0f).xx));
+}
+
+void fragment_main() {
+  select_4e60da();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  select_4e60da();
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  select_4e60da();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  vertex_main_outputs v_2 = {v_1.pos};
+  return v_2;
+}
+
diff --git a/test/tint/builtins/gen/var/select/4e60da.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/select/4e60da.wgsl.expected.ir.fxc.hlsl
index ddf0424..bd3d72b 100644
--- a/test/tint/builtins/gen/var/select/4e60da.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/select/4e60da.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,37 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: select
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+void select_4e60da() {
+  bool arg_2 = true;
+  float2 res = ((arg_2) ? ((1.0f).xx) : ((1.0f).xx));
+}
+
+void fragment_main() {
+  select_4e60da();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  select_4e60da();
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  select_4e60da();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  vertex_main_outputs v_2 = {v_1.pos};
+  return v_2;
+}
+
diff --git a/test/tint/builtins/gen/var/select/51b047.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/select/51b047.wgsl.expected.ir.dxc.hlsl
index ddf0424..e462f14 100644
--- a/test/tint/builtins/gen/var/select/51b047.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/select/51b047.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,45 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  uint2 prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: select
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation uint2 VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+uint2 select_51b047() {
+  uint2 arg_0 = (1u).xx;
+  uint2 arg_1 = (1u).xx;
+  bool arg_2 = true;
+  uint2 res = ((arg_2) ? (arg_1) : (arg_0));
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store2(0u, select_51b047());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store2(0u, select_51b047());
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = select_51b047();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
diff --git a/test/tint/builtins/gen/var/select/51b047.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/select/51b047.wgsl.expected.ir.fxc.hlsl
index ddf0424..e462f14 100644
--- a/test/tint/builtins/gen/var/select/51b047.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/select/51b047.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,45 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  uint2 prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: select
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation uint2 VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+uint2 select_51b047() {
+  uint2 arg_0 = (1u).xx;
+  uint2 arg_1 = (1u).xx;
+  bool arg_2 = true;
+  uint2 res = ((arg_2) ? (arg_1) : (arg_0));
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store2(0u, select_51b047());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store2(0u, select_51b047());
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = select_51b047();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
diff --git a/test/tint/builtins/gen/var/select/53d518.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/select/53d518.wgsl.expected.ir.dxc.hlsl
index ddf0424..f89fd17 100644
--- a/test/tint/builtins/gen/var/select/53d518.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/select/53d518.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,45 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  vector<float16_t, 3> prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: select
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation vector<float16_t, 3> VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+vector<float16_t, 3> select_53d518() {
+  vector<float16_t, 3> arg_0 = (float16_t(1.0h)).xxx;
+  vector<float16_t, 3> arg_1 = (float16_t(1.0h)).xxx;
+  bool3 arg_2 = (true).xxx;
+  vector<float16_t, 3> res = ((arg_2) ? (arg_1) : (arg_0));
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store<vector<float16_t, 3> >(0u, select_53d518());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store<vector<float16_t, 3> >(0u, select_53d518());
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = select_53d518();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
diff --git a/test/tint/builtins/gen/var/select/53d518.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/select/53d518.wgsl.expected.ir.fxc.hlsl
index ddf0424..725f12c 100644
--- a/test/tint/builtins/gen/var/select/53d518.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/select/53d518.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,50 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: select
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct VertexOutput {
+  float4 pos;
+  vector<float16_t, 3> prevent_dce;
+};
+
+struct vertex_main_outputs {
+  nointerpolation vector<float16_t, 3> VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+vector<float16_t, 3> select_53d518() {
+  vector<float16_t, 3> arg_0 = (float16_t(1.0h)).xxx;
+  vector<float16_t, 3> arg_1 = (float16_t(1.0h)).xxx;
+  bool3 arg_2 = (true).xxx;
+  vector<float16_t, 3> res = ((arg_2) ? (arg_1) : (arg_0));
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store<vector<float16_t, 3> >(0u, select_53d518());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store<vector<float16_t, 3> >(0u, select_53d518());
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = select_53d518();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
+FXC validation failure:
+c:\src\dawn\Shader@0x00000231CA3E1CD0(3,10-18): error X3000: syntax error: unexpected token 'float16_t'
+
diff --git a/test/tint/builtins/gen/var/select/713567.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/select/713567.wgsl.expected.ir.dxc.hlsl
index ddf0424..10fce56 100644
--- a/test/tint/builtins/gen/var/select/713567.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/select/713567.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,45 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  float4 prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: select
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation float4 VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+float4 select_713567() {
+  float4 arg_0 = (1.0f).xxxx;
+  float4 arg_1 = (1.0f).xxxx;
+  bool arg_2 = true;
+  float4 res = ((arg_2) ? (arg_1) : (arg_0));
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store4(0u, asuint(select_713567()));
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store4(0u, asuint(select_713567()));
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = select_713567();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
diff --git a/test/tint/builtins/gen/var/select/713567.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/select/713567.wgsl.expected.ir.fxc.hlsl
index ddf0424..10fce56 100644
--- a/test/tint/builtins/gen/var/select/713567.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/select/713567.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,45 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  float4 prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: select
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation float4 VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+float4 select_713567() {
+  float4 arg_0 = (1.0f).xxxx;
+  float4 arg_1 = (1.0f).xxxx;
+  bool arg_2 = true;
+  float4 res = ((arg_2) ? (arg_1) : (arg_0));
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store4(0u, asuint(select_713567()));
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store4(0u, asuint(select_713567()));
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = select_713567();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
diff --git a/test/tint/builtins/gen/var/select/78be5f.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/select/78be5f.wgsl.expected.ir.dxc.hlsl
index ddf0424..5afb8f9 100644
--- a/test/tint/builtins/gen/var/select/78be5f.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/select/78be5f.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,45 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  float3 prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: select
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation float3 VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+float3 select_78be5f() {
+  float3 arg_0 = (1.0f).xxx;
+  float3 arg_1 = (1.0f).xxx;
+  bool arg_2 = true;
+  float3 res = ((arg_2) ? (arg_1) : (arg_0));
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store3(0u, asuint(select_78be5f()));
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store3(0u, asuint(select_78be5f()));
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = select_78be5f();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
diff --git a/test/tint/builtins/gen/var/select/78be5f.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/select/78be5f.wgsl.expected.ir.fxc.hlsl
index ddf0424..5afb8f9 100644
--- a/test/tint/builtins/gen/var/select/78be5f.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/select/78be5f.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,45 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  float3 prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: select
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation float3 VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+float3 select_78be5f() {
+  float3 arg_0 = (1.0f).xxx;
+  float3 arg_1 = (1.0f).xxx;
+  bool arg_2 = true;
+  float3 res = ((arg_2) ? (arg_1) : (arg_0));
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store3(0u, asuint(select_78be5f()));
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store3(0u, asuint(select_78be5f()));
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = select_78be5f();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
diff --git a/test/tint/builtins/gen/var/select/80a9a9.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/select/80a9a9.wgsl.expected.ir.dxc.hlsl
index ddf0424..e400c1e 100644
--- a/test/tint/builtins/gen/var/select/80a9a9.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/select/80a9a9.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,45 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  int prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: select
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation int VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+int select_80a9a9() {
+  bool3 arg_0 = (true).xxx;
+  bool3 arg_1 = (true).xxx;
+  bool3 arg_2 = (true).xxx;
+  bool3 res = ((arg_2) ? (arg_1) : (arg_0));
+  return ((all((res == (false).xxx))) ? (1) : (0));
+}
+
+void fragment_main() {
+  prevent_dce.Store(0u, asuint(select_80a9a9()));
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store(0u, asuint(select_80a9a9()));
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = select_80a9a9();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
diff --git a/test/tint/builtins/gen/var/select/80a9a9.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/select/80a9a9.wgsl.expected.ir.fxc.hlsl
index ddf0424..e400c1e 100644
--- a/test/tint/builtins/gen/var/select/80a9a9.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/select/80a9a9.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,45 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  int prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: select
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation int VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+int select_80a9a9() {
+  bool3 arg_0 = (true).xxx;
+  bool3 arg_1 = (true).xxx;
+  bool3 arg_2 = (true).xxx;
+  bool3 res = ((arg_2) ? (arg_1) : (arg_0));
+  return ((all((res == (false).xxx))) ? (1) : (0));
+}
+
+void fragment_main() {
+  prevent_dce.Store(0u, asuint(select_80a9a9()));
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store(0u, asuint(select_80a9a9()));
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = select_80a9a9();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
diff --git a/test/tint/builtins/gen/var/select/830dd9.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/select/830dd9.wgsl.expected.ir.dxc.hlsl
index ddf0424..eb67046 100644
--- a/test/tint/builtins/gen/var/select/830dd9.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/select/830dd9.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,45 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  vector<float16_t, 4> prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: select
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation vector<float16_t, 4> VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+vector<float16_t, 4> select_830dd9() {
+  vector<float16_t, 4> arg_0 = (float16_t(1.0h)).xxxx;
+  vector<float16_t, 4> arg_1 = (float16_t(1.0h)).xxxx;
+  bool arg_2 = true;
+  vector<float16_t, 4> res = ((arg_2) ? (arg_1) : (arg_0));
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store<vector<float16_t, 4> >(0u, select_830dd9());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store<vector<float16_t, 4> >(0u, select_830dd9());
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = select_830dd9();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
diff --git a/test/tint/builtins/gen/var/select/830dd9.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/select/830dd9.wgsl.expected.ir.fxc.hlsl
index ddf0424..c8dfc6e 100644
--- a/test/tint/builtins/gen/var/select/830dd9.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/select/830dd9.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,50 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: select
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct VertexOutput {
+  float4 pos;
+  vector<float16_t, 4> prevent_dce;
+};
+
+struct vertex_main_outputs {
+  nointerpolation vector<float16_t, 4> VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+vector<float16_t, 4> select_830dd9() {
+  vector<float16_t, 4> arg_0 = (float16_t(1.0h)).xxxx;
+  vector<float16_t, 4> arg_1 = (float16_t(1.0h)).xxxx;
+  bool arg_2 = true;
+  vector<float16_t, 4> res = ((arg_2) ? (arg_1) : (arg_0));
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store<vector<float16_t, 4> >(0u, select_830dd9());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store<vector<float16_t, 4> >(0u, select_830dd9());
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = select_830dd9();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
+FXC validation failure:
+c:\src\dawn\Shader@0x0000022F9D163770(3,10-18): error X3000: syntax error: unexpected token 'float16_t'
+
diff --git a/test/tint/builtins/gen/var/select/86f9bd.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/select/86f9bd.wgsl.expected.ir.dxc.hlsl
index ddf0424..2a1578b 100644
--- a/test/tint/builtins/gen/var/select/86f9bd.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/select/86f9bd.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,45 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  vector<float16_t, 2> prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: select
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation vector<float16_t, 2> VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+vector<float16_t, 2> select_86f9bd() {
+  vector<float16_t, 2> arg_0 = (float16_t(1.0h)).xx;
+  vector<float16_t, 2> arg_1 = (float16_t(1.0h)).xx;
+  bool arg_2 = true;
+  vector<float16_t, 2> res = ((arg_2) ? (arg_1) : (arg_0));
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store<vector<float16_t, 2> >(0u, select_86f9bd());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store<vector<float16_t, 2> >(0u, select_86f9bd());
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = select_86f9bd();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
diff --git a/test/tint/builtins/gen/var/select/86f9bd.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/select/86f9bd.wgsl.expected.ir.fxc.hlsl
index ddf0424..9f7abca 100644
--- a/test/tint/builtins/gen/var/select/86f9bd.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/select/86f9bd.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,50 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: select
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct VertexOutput {
+  float4 pos;
+  vector<float16_t, 2> prevent_dce;
+};
+
+struct vertex_main_outputs {
+  nointerpolation vector<float16_t, 2> VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+vector<float16_t, 2> select_86f9bd() {
+  vector<float16_t, 2> arg_0 = (float16_t(1.0h)).xx;
+  vector<float16_t, 2> arg_1 = (float16_t(1.0h)).xx;
+  bool arg_2 = true;
+  vector<float16_t, 2> res = ((arg_2) ? (arg_1) : (arg_0));
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store<vector<float16_t, 2> >(0u, select_86f9bd());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store<vector<float16_t, 2> >(0u, select_86f9bd());
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = select_86f9bd();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
+FXC validation failure:
+c:\src\dawn\Shader@0x0000029360045550(3,10-18): error X3000: syntax error: unexpected token 'float16_t'
+
diff --git a/test/tint/builtins/gen/var/select/8fa62c.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/select/8fa62c.wgsl.expected.ir.dxc.hlsl
index ddf0424..0c49ac1 100644
--- a/test/tint/builtins/gen/var/select/8fa62c.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/select/8fa62c.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,45 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  int3 prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: select
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation int3 VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+int3 select_8fa62c() {
+  int3 arg_0 = (1).xxx;
+  int3 arg_1 = (1).xxx;
+  bool arg_2 = true;
+  int3 res = ((arg_2) ? (arg_1) : (arg_0));
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store3(0u, asuint(select_8fa62c()));
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store3(0u, asuint(select_8fa62c()));
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = select_8fa62c();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
diff --git a/test/tint/builtins/gen/var/select/8fa62c.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/select/8fa62c.wgsl.expected.ir.fxc.hlsl
index ddf0424..0c49ac1 100644
--- a/test/tint/builtins/gen/var/select/8fa62c.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/select/8fa62c.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,45 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  int3 prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: select
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation int3 VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+int3 select_8fa62c() {
+  int3 arg_0 = (1).xxx;
+  int3 arg_1 = (1).xxx;
+  bool arg_2 = true;
+  int3 res = ((arg_2) ? (arg_1) : (arg_0));
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store3(0u, asuint(select_8fa62c()));
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store3(0u, asuint(select_8fa62c()));
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = select_8fa62c();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
diff --git a/test/tint/builtins/gen/var/select/99f883.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/select/99f883.wgsl.expected.ir.dxc.hlsl
index ddf0424..ebdcaf8 100644
--- a/test/tint/builtins/gen/var/select/99f883.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/select/99f883.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,45 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  uint prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: select
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation uint VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+uint select_99f883() {
+  uint arg_0 = 1u;
+  uint arg_1 = 1u;
+  bool arg_2 = true;
+  uint res = ((arg_2) ? (arg_1) : (arg_0));
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store(0u, select_99f883());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store(0u, select_99f883());
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = select_99f883();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
diff --git a/test/tint/builtins/gen/var/select/99f883.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/select/99f883.wgsl.expected.ir.fxc.hlsl
index ddf0424..ebdcaf8 100644
--- a/test/tint/builtins/gen/var/select/99f883.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/select/99f883.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,45 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  uint prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: select
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation uint VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+uint select_99f883() {
+  uint arg_0 = 1u;
+  uint arg_1 = 1u;
+  bool arg_2 = true;
+  uint res = ((arg_2) ? (arg_1) : (arg_0));
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store(0u, select_99f883());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store(0u, select_99f883());
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = select_99f883();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
diff --git a/test/tint/builtins/gen/var/select/9b478d.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/select/9b478d.wgsl.expected.ir.dxc.hlsl
index ddf0424..f07d1eb 100644
--- a/test/tint/builtins/gen/var/select/9b478d.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/select/9b478d.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,37 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: select
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+void select_9b478d() {
+  bool arg_2 = true;
+  int res = ((arg_2) ? (1) : (1));
+}
+
+void fragment_main() {
+  select_9b478d();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  select_9b478d();
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  select_9b478d();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  vertex_main_outputs v_2 = {v_1.pos};
+  return v_2;
+}
+
diff --git a/test/tint/builtins/gen/var/select/9b478d.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/select/9b478d.wgsl.expected.ir.fxc.hlsl
index ddf0424..f07d1eb 100644
--- a/test/tint/builtins/gen/var/select/9b478d.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/select/9b478d.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,37 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: select
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+void select_9b478d() {
+  bool arg_2 = true;
+  int res = ((arg_2) ? (1) : (1));
+}
+
+void fragment_main() {
+  select_9b478d();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  select_9b478d();
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  select_9b478d();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  vertex_main_outputs v_2 = {v_1.pos};
+  return v_2;
+}
+
diff --git a/test/tint/builtins/gen/var/select/a081f1.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/select/a081f1.wgsl.expected.ir.dxc.hlsl
index ddf0424..d04af63 100644
--- a/test/tint/builtins/gen/var/select/a081f1.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/select/a081f1.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,45 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  vector<float16_t, 4> prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: select
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation vector<float16_t, 4> VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+vector<float16_t, 4> select_a081f1() {
+  vector<float16_t, 4> arg_0 = (float16_t(1.0h)).xxxx;
+  vector<float16_t, 4> arg_1 = (float16_t(1.0h)).xxxx;
+  bool4 arg_2 = (true).xxxx;
+  vector<float16_t, 4> res = ((arg_2) ? (arg_1) : (arg_0));
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store<vector<float16_t, 4> >(0u, select_a081f1());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store<vector<float16_t, 4> >(0u, select_a081f1());
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = select_a081f1();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
diff --git a/test/tint/builtins/gen/var/select/a081f1.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/select/a081f1.wgsl.expected.ir.fxc.hlsl
index ddf0424..850ff7e 100644
--- a/test/tint/builtins/gen/var/select/a081f1.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/select/a081f1.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,50 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: select
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct VertexOutput {
+  float4 pos;
+  vector<float16_t, 4> prevent_dce;
+};
+
+struct vertex_main_outputs {
+  nointerpolation vector<float16_t, 4> VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+vector<float16_t, 4> select_a081f1() {
+  vector<float16_t, 4> arg_0 = (float16_t(1.0h)).xxxx;
+  vector<float16_t, 4> arg_1 = (float16_t(1.0h)).xxxx;
+  bool4 arg_2 = (true).xxxx;
+  vector<float16_t, 4> res = ((arg_2) ? (arg_1) : (arg_0));
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store<vector<float16_t, 4> >(0u, select_a081f1());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store<vector<float16_t, 4> >(0u, select_a081f1());
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = select_a081f1();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
+FXC validation failure:
+c:\src\dawn\Shader@0x000001F8DF0E49F0(3,10-18): error X3000: syntax error: unexpected token 'float16_t'
+
diff --git a/test/tint/builtins/gen/var/select/a2860e.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/select/a2860e.wgsl.expected.ir.dxc.hlsl
index ddf0424..9d43197 100644
--- a/test/tint/builtins/gen/var/select/a2860e.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/select/a2860e.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,45 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  int4 prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: select
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation int4 VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+int4 select_a2860e() {
+  int4 arg_0 = (1).xxxx;
+  int4 arg_1 = (1).xxxx;
+  bool4 arg_2 = (true).xxxx;
+  int4 res = ((arg_2) ? (arg_1) : (arg_0));
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store4(0u, asuint(select_a2860e()));
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store4(0u, asuint(select_a2860e()));
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = select_a2860e();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
diff --git a/test/tint/builtins/gen/var/select/a2860e.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/select/a2860e.wgsl.expected.ir.fxc.hlsl
index ddf0424..9d43197 100644
--- a/test/tint/builtins/gen/var/select/a2860e.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/select/a2860e.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,45 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  int4 prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: select
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation int4 VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+int4 select_a2860e() {
+  int4 arg_0 = (1).xxxx;
+  int4 arg_1 = (1).xxxx;
+  bool4 arg_2 = (true).xxxx;
+  int4 res = ((arg_2) ? (arg_1) : (arg_0));
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store4(0u, asuint(select_a2860e()));
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store4(0u, asuint(select_a2860e()));
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = select_a2860e();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
diff --git a/test/tint/builtins/gen/var/select/ab069f.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/select/ab069f.wgsl.expected.ir.dxc.hlsl
index ddf0424..d84b4d6 100644
--- a/test/tint/builtins/gen/var/select/ab069f.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/select/ab069f.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,45 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  int4 prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: select
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation int4 VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+int4 select_ab069f() {
+  int4 arg_0 = (1).xxxx;
+  int4 arg_1 = (1).xxxx;
+  bool arg_2 = true;
+  int4 res = ((arg_2) ? (arg_1) : (arg_0));
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store4(0u, asuint(select_ab069f()));
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store4(0u, asuint(select_ab069f()));
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = select_ab069f();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
diff --git a/test/tint/builtins/gen/var/select/ab069f.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/select/ab069f.wgsl.expected.ir.fxc.hlsl
index ddf0424..d84b4d6 100644
--- a/test/tint/builtins/gen/var/select/ab069f.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/select/ab069f.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,45 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  int4 prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: select
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation int4 VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+int4 select_ab069f() {
+  int4 arg_0 = (1).xxxx;
+  int4 arg_1 = (1).xxxx;
+  bool arg_2 = true;
+  int4 res = ((arg_2) ? (arg_1) : (arg_0));
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store4(0u, asuint(select_ab069f()));
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store4(0u, asuint(select_ab069f()));
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = select_ab069f();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
diff --git a/test/tint/builtins/gen/var/select/b04721.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/select/b04721.wgsl.expected.ir.dxc.hlsl
index ddf0424..6d3c945 100644
--- a/test/tint/builtins/gen/var/select/b04721.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/select/b04721.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,45 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  uint3 prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: select
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation uint3 VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+uint3 select_b04721() {
+  uint3 arg_0 = (1u).xxx;
+  uint3 arg_1 = (1u).xxx;
+  bool arg_2 = true;
+  uint3 res = ((arg_2) ? (arg_1) : (arg_0));
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store3(0u, select_b04721());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store3(0u, select_b04721());
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = select_b04721();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
diff --git a/test/tint/builtins/gen/var/select/b04721.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/select/b04721.wgsl.expected.ir.fxc.hlsl
index ddf0424..6d3c945 100644
--- a/test/tint/builtins/gen/var/select/b04721.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/select/b04721.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,45 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  uint3 prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: select
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation uint3 VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+uint3 select_b04721() {
+  uint3 arg_0 = (1u).xxx;
+  uint3 arg_1 = (1u).xxx;
+  bool arg_2 = true;
+  uint3 res = ((arg_2) ? (arg_1) : (arg_0));
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store3(0u, select_b04721());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store3(0u, select_b04721());
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = select_b04721();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
diff --git a/test/tint/builtins/gen/var/select/b93806.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/select/b93806.wgsl.expected.ir.dxc.hlsl
index ddf0424..ccb928f 100644
--- a/test/tint/builtins/gen/var/select/b93806.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/select/b93806.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,37 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: select
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+void select_b93806() {
+  bool3 arg_2 = (true).xxx;
+  int3 res = ((arg_2) ? ((1).xxx) : ((1).xxx));
+}
+
+void fragment_main() {
+  select_b93806();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  select_b93806();
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  select_b93806();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  vertex_main_outputs v_2 = {v_1.pos};
+  return v_2;
+}
+
diff --git a/test/tint/builtins/gen/var/select/b93806.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/select/b93806.wgsl.expected.ir.fxc.hlsl
index ddf0424..ccb928f 100644
--- a/test/tint/builtins/gen/var/select/b93806.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/select/b93806.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,37 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: select
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+void select_b93806() {
+  bool3 arg_2 = (true).xxx;
+  int3 res = ((arg_2) ? ((1).xxx) : ((1).xxx));
+}
+
+void fragment_main() {
+  select_b93806();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  select_b93806();
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  select_b93806();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  vertex_main_outputs v_2 = {v_1.pos};
+  return v_2;
+}
+
diff --git a/test/tint/builtins/gen/var/select/bb447f.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/select/bb447f.wgsl.expected.ir.dxc.hlsl
index ddf0424..64e7fe2 100644
--- a/test/tint/builtins/gen/var/select/bb447f.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/select/bb447f.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,45 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  int2 prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: select
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation int2 VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+int2 select_bb447f() {
+  int2 arg_0 = (1).xx;
+  int2 arg_1 = (1).xx;
+  bool arg_2 = true;
+  int2 res = ((arg_2) ? (arg_1) : (arg_0));
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store2(0u, asuint(select_bb447f()));
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store2(0u, asuint(select_bb447f()));
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = select_bb447f();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
diff --git a/test/tint/builtins/gen/var/select/bb447f.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/select/bb447f.wgsl.expected.ir.fxc.hlsl
index ddf0424..64e7fe2 100644
--- a/test/tint/builtins/gen/var/select/bb447f.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/select/bb447f.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,45 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  int2 prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: select
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation int2 VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+int2 select_bb447f() {
+  int2 arg_0 = (1).xx;
+  int2 arg_1 = (1).xx;
+  bool arg_2 = true;
+  int2 res = ((arg_2) ? (arg_1) : (arg_0));
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store2(0u, asuint(select_bb447f()));
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store2(0u, asuint(select_bb447f()));
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = select_bb447f();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
diff --git a/test/tint/builtins/gen/var/select/bb8aae.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/select/bb8aae.wgsl.expected.ir.dxc.hlsl
index ddf0424..ce16e2b 100644
--- a/test/tint/builtins/gen/var/select/bb8aae.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/select/bb8aae.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,45 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  float4 prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: select
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation float4 VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+float4 select_bb8aae() {
+  float4 arg_0 = (1.0f).xxxx;
+  float4 arg_1 = (1.0f).xxxx;
+  bool4 arg_2 = (true).xxxx;
+  float4 res = ((arg_2) ? (arg_1) : (arg_0));
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store4(0u, asuint(select_bb8aae()));
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store4(0u, asuint(select_bb8aae()));
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = select_bb8aae();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
diff --git a/test/tint/builtins/gen/var/select/bb8aae.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/select/bb8aae.wgsl.expected.ir.fxc.hlsl
index ddf0424..ce16e2b 100644
--- a/test/tint/builtins/gen/var/select/bb8aae.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/select/bb8aae.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,45 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  float4 prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: select
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation float4 VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+float4 select_bb8aae() {
+  float4 arg_0 = (1.0f).xxxx;
+  float4 arg_1 = (1.0f).xxxx;
+  bool4 arg_2 = (true).xxxx;
+  float4 res = ((arg_2) ? (arg_1) : (arg_0));
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store4(0u, asuint(select_bb8aae()));
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store4(0u, asuint(select_bb8aae()));
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = select_bb8aae();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
diff --git a/test/tint/builtins/gen/var/select/bf3d29.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/select/bf3d29.wgsl.expected.ir.dxc.hlsl
index ddf0424..be2b101 100644
--- a/test/tint/builtins/gen/var/select/bf3d29.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/select/bf3d29.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,45 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  float2 prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: select
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation float2 VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+float2 select_bf3d29() {
+  float2 arg_0 = (1.0f).xx;
+  float2 arg_1 = (1.0f).xx;
+  bool arg_2 = true;
+  float2 res = ((arg_2) ? (arg_1) : (arg_0));
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store2(0u, asuint(select_bf3d29()));
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store2(0u, asuint(select_bf3d29()));
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = select_bf3d29();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
diff --git a/test/tint/builtins/gen/var/select/bf3d29.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/select/bf3d29.wgsl.expected.ir.fxc.hlsl
index ddf0424..be2b101 100644
--- a/test/tint/builtins/gen/var/select/bf3d29.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/select/bf3d29.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,45 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  float2 prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: select
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation float2 VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+float2 select_bf3d29() {
+  float2 arg_0 = (1.0f).xx;
+  float2 arg_1 = (1.0f).xx;
+  bool arg_2 = true;
+  float2 res = ((arg_2) ? (arg_1) : (arg_0));
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store2(0u, asuint(select_bf3d29()));
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store2(0u, asuint(select_bf3d29()));
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = select_bf3d29();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
diff --git a/test/tint/builtins/gen/var/select/c31f9e.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/select/c31f9e.wgsl.expected.ir.dxc.hlsl
index ddf0424..9e1f94f 100644
--- a/test/tint/builtins/gen/var/select/c31f9e.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/select/c31f9e.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,45 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  int prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: select
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation int VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+int select_c31f9e() {
+  bool arg_0 = true;
+  bool arg_1 = true;
+  bool arg_2 = true;
+  bool res = ((arg_2) ? (arg_1) : (arg_0));
+  return ((all((res == false))) ? (1) : (0));
+}
+
+void fragment_main() {
+  prevent_dce.Store(0u, asuint(select_c31f9e()));
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store(0u, asuint(select_c31f9e()));
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = select_c31f9e();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
diff --git a/test/tint/builtins/gen/var/select/c31f9e.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/select/c31f9e.wgsl.expected.ir.fxc.hlsl
index ddf0424..9e1f94f 100644
--- a/test/tint/builtins/gen/var/select/c31f9e.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/select/c31f9e.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,45 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  int prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: select
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation int VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+int select_c31f9e() {
+  bool arg_0 = true;
+  bool arg_1 = true;
+  bool arg_2 = true;
+  bool res = ((arg_2) ? (arg_1) : (arg_0));
+  return ((all((res == false))) ? (1) : (0));
+}
+
+void fragment_main() {
+  prevent_dce.Store(0u, asuint(select_c31f9e()));
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store(0u, asuint(select_c31f9e()));
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = select_c31f9e();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
diff --git a/test/tint/builtins/gen/var/select/c41bd1.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/select/c41bd1.wgsl.expected.ir.dxc.hlsl
index ddf0424..4255d55 100644
--- a/test/tint/builtins/gen/var/select/c41bd1.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/select/c41bd1.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,45 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  int prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: select
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation int VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+int select_c41bd1() {
+  bool4 arg_0 = (true).xxxx;
+  bool4 arg_1 = (true).xxxx;
+  bool arg_2 = true;
+  bool4 res = ((arg_2) ? (arg_1) : (arg_0));
+  return ((all((res == (false).xxxx))) ? (1) : (0));
+}
+
+void fragment_main() {
+  prevent_dce.Store(0u, asuint(select_c41bd1()));
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store(0u, asuint(select_c41bd1()));
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = select_c41bd1();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
diff --git a/test/tint/builtins/gen/var/select/c41bd1.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/select/c41bd1.wgsl.expected.ir.fxc.hlsl
index ddf0424..4255d55 100644
--- a/test/tint/builtins/gen/var/select/c41bd1.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/select/c41bd1.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,45 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  int prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: select
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation int VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+int select_c41bd1() {
+  bool4 arg_0 = (true).xxxx;
+  bool4 arg_1 = (true).xxxx;
+  bool arg_2 = true;
+  bool4 res = ((arg_2) ? (arg_1) : (arg_0));
+  return ((all((res == (false).xxxx))) ? (1) : (0));
+}
+
+void fragment_main() {
+  prevent_dce.Store(0u, asuint(select_c41bd1()));
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store(0u, asuint(select_c41bd1()));
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = select_c41bd1();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
diff --git a/test/tint/builtins/gen/var/select/c4a4ef.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/select/c4a4ef.wgsl.expected.ir.dxc.hlsl
index ddf0424..3f1dcdf 100644
--- a/test/tint/builtins/gen/var/select/c4a4ef.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/select/c4a4ef.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,45 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  uint4 prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: select
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation uint4 VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+uint4 select_c4a4ef() {
+  uint4 arg_0 = (1u).xxxx;
+  uint4 arg_1 = (1u).xxxx;
+  bool4 arg_2 = (true).xxxx;
+  uint4 res = ((arg_2) ? (arg_1) : (arg_0));
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store4(0u, select_c4a4ef());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store4(0u, select_c4a4ef());
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = select_c4a4ef();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
diff --git a/test/tint/builtins/gen/var/select/c4a4ef.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/select/c4a4ef.wgsl.expected.ir.fxc.hlsl
index ddf0424..3f1dcdf 100644
--- a/test/tint/builtins/gen/var/select/c4a4ef.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/select/c4a4ef.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,45 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  uint4 prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: select
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation uint4 VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+uint4 select_c4a4ef() {
+  uint4 arg_0 = (1u).xxxx;
+  uint4 arg_1 = (1u).xxxx;
+  bool4 arg_2 = (true).xxxx;
+  uint4 res = ((arg_2) ? (arg_1) : (arg_0));
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store4(0u, select_c4a4ef());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store4(0u, select_c4a4ef());
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = select_c4a4ef();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
diff --git a/test/tint/builtins/gen/var/select/cb9301.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/select/cb9301.wgsl.expected.ir.dxc.hlsl
index ddf0424..fa88a7f 100644
--- a/test/tint/builtins/gen/var/select/cb9301.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/select/cb9301.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,45 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  int prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: select
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation int VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+int select_cb9301() {
+  bool2 arg_0 = (true).xx;
+  bool2 arg_1 = (true).xx;
+  bool2 arg_2 = (true).xx;
+  bool2 res = ((arg_2) ? (arg_1) : (arg_0));
+  return ((all((res == (false).xx))) ? (1) : (0));
+}
+
+void fragment_main() {
+  prevent_dce.Store(0u, asuint(select_cb9301()));
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store(0u, asuint(select_cb9301()));
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = select_cb9301();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
diff --git a/test/tint/builtins/gen/var/select/cb9301.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/select/cb9301.wgsl.expected.ir.fxc.hlsl
index ddf0424..fa88a7f 100644
--- a/test/tint/builtins/gen/var/select/cb9301.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/select/cb9301.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,45 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  int prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: select
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation int VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+int select_cb9301() {
+  bool2 arg_0 = (true).xx;
+  bool2 arg_1 = (true).xx;
+  bool2 arg_2 = (true).xx;
+  bool2 res = ((arg_2) ? (arg_1) : (arg_0));
+  return ((all((res == (false).xx))) ? (1) : (0));
+}
+
+void fragment_main() {
+  prevent_dce.Store(0u, asuint(select_cb9301()));
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store(0u, asuint(select_cb9301()));
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = select_cb9301();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
diff --git a/test/tint/builtins/gen/var/select/dfab3b.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/select/dfab3b.wgsl.expected.ir.dxc.hlsl
index ddf0424..2c46436 100644
--- a/test/tint/builtins/gen/var/select/dfab3b.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/select/dfab3b.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,37 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: select
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+void select_dfab3b() {
+  bool arg_2 = true;
+  int3 res = ((arg_2) ? ((1).xxx) : ((1).xxx));
+}
+
+void fragment_main() {
+  select_dfab3b();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  select_dfab3b();
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  select_dfab3b();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  vertex_main_outputs v_2 = {v_1.pos};
+  return v_2;
+}
+
diff --git a/test/tint/builtins/gen/var/select/dfab3b.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/select/dfab3b.wgsl.expected.ir.fxc.hlsl
index ddf0424..2c46436 100644
--- a/test/tint/builtins/gen/var/select/dfab3b.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/select/dfab3b.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,37 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: select
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+void select_dfab3b() {
+  bool arg_2 = true;
+  int3 res = ((arg_2) ? ((1).xxx) : ((1).xxx));
+}
+
+void fragment_main() {
+  select_dfab3b();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  select_dfab3b();
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  select_dfab3b();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  vertex_main_outputs v_2 = {v_1.pos};
+  return v_2;
+}
+
diff --git a/test/tint/builtins/gen/var/select/e381c3.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/select/e381c3.wgsl.expected.ir.dxc.hlsl
index ddf0424..97f7c91 100644
--- a/test/tint/builtins/gen/var/select/e381c3.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/select/e381c3.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,37 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: select
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+void select_e381c3() {
+  bool arg_2 = true;
+  int4 res = ((arg_2) ? ((1).xxxx) : ((1).xxxx));
+}
+
+void fragment_main() {
+  select_e381c3();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  select_e381c3();
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  select_e381c3();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  vertex_main_outputs v_2 = {v_1.pos};
+  return v_2;
+}
+
diff --git a/test/tint/builtins/gen/var/select/e381c3.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/select/e381c3.wgsl.expected.ir.fxc.hlsl
index ddf0424..97f7c91 100644
--- a/test/tint/builtins/gen/var/select/e381c3.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/select/e381c3.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,37 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: select
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+void select_e381c3() {
+  bool arg_2 = true;
+  int4 res = ((arg_2) ? ((1).xxxx) : ((1).xxxx));
+}
+
+void fragment_main() {
+  select_e381c3();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  select_e381c3();
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  select_e381c3();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  vertex_main_outputs v_2 = {v_1.pos};
+  return v_2;
+}
+
diff --git a/test/tint/builtins/gen/var/select/e3e028.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/select/e3e028.wgsl.expected.ir.dxc.hlsl
index ddf0424..043ea06 100644
--- a/test/tint/builtins/gen/var/select/e3e028.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/select/e3e028.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,45 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  int prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: select
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation int VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+int select_e3e028() {
+  bool4 arg_0 = (true).xxxx;
+  bool4 arg_1 = (true).xxxx;
+  bool4 arg_2 = (true).xxxx;
+  bool4 res = ((arg_2) ? (arg_1) : (arg_0));
+  return ((all((res == (false).xxxx))) ? (1) : (0));
+}
+
+void fragment_main() {
+  prevent_dce.Store(0u, asuint(select_e3e028()));
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store(0u, asuint(select_e3e028()));
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = select_e3e028();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
diff --git a/test/tint/builtins/gen/var/select/e3e028.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/select/e3e028.wgsl.expected.ir.fxc.hlsl
index ddf0424..043ea06 100644
--- a/test/tint/builtins/gen/var/select/e3e028.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/select/e3e028.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,45 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  int prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: select
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation int VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+int select_e3e028() {
+  bool4 arg_0 = (true).xxxx;
+  bool4 arg_1 = (true).xxxx;
+  bool4 arg_2 = (true).xxxx;
+  bool4 res = ((arg_2) ? (arg_1) : (arg_0));
+  return ((all((res == (false).xxxx))) ? (1) : (0));
+}
+
+void fragment_main() {
+  prevent_dce.Store(0u, asuint(select_e3e028()));
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store(0u, asuint(select_e3e028()));
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = select_e3e028();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
diff --git a/test/tint/builtins/gen/var/select/ebfea2.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/select/ebfea2.wgsl.expected.ir.dxc.hlsl
index ddf0424..656cc8a 100644
--- a/test/tint/builtins/gen/var/select/ebfea2.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/select/ebfea2.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,45 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  float3 prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: select
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation float3 VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+float3 select_ebfea2() {
+  float3 arg_0 = (1.0f).xxx;
+  float3 arg_1 = (1.0f).xxx;
+  bool3 arg_2 = (true).xxx;
+  float3 res = ((arg_2) ? (arg_1) : (arg_0));
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store3(0u, asuint(select_ebfea2()));
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store3(0u, asuint(select_ebfea2()));
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = select_ebfea2();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
diff --git a/test/tint/builtins/gen/var/select/ebfea2.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/select/ebfea2.wgsl.expected.ir.fxc.hlsl
index ddf0424..656cc8a 100644
--- a/test/tint/builtins/gen/var/select/ebfea2.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/select/ebfea2.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,45 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  float3 prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: select
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation float3 VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+float3 select_ebfea2() {
+  float3 arg_0 = (1.0f).xxx;
+  float3 arg_1 = (1.0f).xxx;
+  bool3 arg_2 = (true).xxx;
+  float3 res = ((arg_2) ? (arg_1) : (arg_0));
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store3(0u, asuint(select_ebfea2()));
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store3(0u, asuint(select_ebfea2()));
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = select_ebfea2();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
diff --git a/test/tint/builtins/gen/var/select/ed7c13.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/select/ed7c13.wgsl.expected.ir.dxc.hlsl
index ddf0424..ab19e2a 100644
--- a/test/tint/builtins/gen/var/select/ed7c13.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/select/ed7c13.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,45 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  vector<float16_t, 2> prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: select
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation vector<float16_t, 2> VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+vector<float16_t, 2> select_ed7c13() {
+  vector<float16_t, 2> arg_0 = (float16_t(1.0h)).xx;
+  vector<float16_t, 2> arg_1 = (float16_t(1.0h)).xx;
+  bool2 arg_2 = (true).xx;
+  vector<float16_t, 2> res = ((arg_2) ? (arg_1) : (arg_0));
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store<vector<float16_t, 2> >(0u, select_ed7c13());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store<vector<float16_t, 2> >(0u, select_ed7c13());
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = select_ed7c13();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
diff --git a/test/tint/builtins/gen/var/select/ed7c13.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/select/ed7c13.wgsl.expected.ir.fxc.hlsl
index ddf0424..e381aaa 100644
--- a/test/tint/builtins/gen/var/select/ed7c13.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/select/ed7c13.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,50 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: select
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct VertexOutput {
+  float4 pos;
+  vector<float16_t, 2> prevent_dce;
+};
+
+struct vertex_main_outputs {
+  nointerpolation vector<float16_t, 2> VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+vector<float16_t, 2> select_ed7c13() {
+  vector<float16_t, 2> arg_0 = (float16_t(1.0h)).xx;
+  vector<float16_t, 2> arg_1 = (float16_t(1.0h)).xx;
+  bool2 arg_2 = (true).xx;
+  vector<float16_t, 2> res = ((arg_2) ? (arg_1) : (arg_0));
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store<vector<float16_t, 2> >(0u, select_ed7c13());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store<vector<float16_t, 2> >(0u, select_ed7c13());
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = select_ed7c13();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
+FXC validation failure:
+c:\src\dawn\Shader@0x00000155F9C754F0(3,10-18): error X3000: syntax error: unexpected token 'float16_t'
+
diff --git a/test/tint/builtins/gen/var/select/ed8a15.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/select/ed8a15.wgsl.expected.ir.dxc.hlsl
index ddf0424..d59eedd 100644
--- a/test/tint/builtins/gen/var/select/ed8a15.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/select/ed8a15.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,45 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  int prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: select
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation int VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+int select_ed8a15() {
+  int arg_0 = 1;
+  int arg_1 = 1;
+  bool arg_2 = true;
+  int res = ((arg_2) ? (arg_1) : (arg_0));
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store(0u, asuint(select_ed8a15()));
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store(0u, asuint(select_ed8a15()));
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = select_ed8a15();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
diff --git a/test/tint/builtins/gen/var/select/ed8a15.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/select/ed8a15.wgsl.expected.ir.fxc.hlsl
index ddf0424..d59eedd 100644
--- a/test/tint/builtins/gen/var/select/ed8a15.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/select/ed8a15.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,45 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  int prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: select
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation int VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+int select_ed8a15() {
+  int arg_0 = 1;
+  int arg_1 = 1;
+  bool arg_2 = true;
+  int res = ((arg_2) ? (arg_1) : (arg_0));
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store(0u, asuint(select_ed8a15()));
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store(0u, asuint(select_ed8a15()));
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = select_ed8a15();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
diff --git a/test/tint/builtins/gen/var/select/fb7e53.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/select/fb7e53.wgsl.expected.ir.dxc.hlsl
index ddf0424..672f783 100644
--- a/test/tint/builtins/gen/var/select/fb7e53.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/select/fb7e53.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,45 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  int prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: select
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation int VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+int select_fb7e53() {
+  bool2 arg_0 = (true).xx;
+  bool2 arg_1 = (true).xx;
+  bool arg_2 = true;
+  bool2 res = ((arg_2) ? (arg_1) : (arg_0));
+  return ((all((res == (false).xx))) ? (1) : (0));
+}
+
+void fragment_main() {
+  prevent_dce.Store(0u, asuint(select_fb7e53()));
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store(0u, asuint(select_fb7e53()));
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = select_fb7e53();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
diff --git a/test/tint/builtins/gen/var/select/fb7e53.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/select/fb7e53.wgsl.expected.ir.fxc.hlsl
index ddf0424..672f783 100644
--- a/test/tint/builtins/gen/var/select/fb7e53.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/select/fb7e53.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,45 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  int prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: select
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation int VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+int select_fb7e53() {
+  bool2 arg_0 = (true).xx;
+  bool2 arg_1 = (true).xx;
+  bool arg_2 = true;
+  bool2 res = ((arg_2) ? (arg_1) : (arg_0));
+  return ((all((res == (false).xx))) ? (1) : (0));
+}
+
+void fragment_main() {
+  prevent_dce.Store(0u, asuint(select_fb7e53()));
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store(0u, asuint(select_fb7e53()));
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = select_fb7e53();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
diff --git a/test/tint/builtins/gen/var/sign/0799fd.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/sign/0799fd.wgsl.expected.ir.dxc.hlsl
index 0ba40c6..98485b3 100644
--- a/test/tint/builtins/gen/var/sign/0799fd.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/sign/0799fd.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,36 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+void sign_0799fd() {
+  float2 res = (1.0f).xx;
+}
+
+void fragment_main() {
+  sign_0799fd();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  sign_0799fd();
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  sign_0799fd();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  vertex_main_outputs v_2 = {v_1.pos};
+  return v_2;
+}
+
diff --git a/test/tint/builtins/gen/var/sign/0799fd.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/sign/0799fd.wgsl.expected.ir.fxc.hlsl
index 0ba40c6..98485b3 100644
--- a/test/tint/builtins/gen/var/sign/0799fd.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/sign/0799fd.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,36 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+void sign_0799fd() {
+  float2 res = (1.0f).xx;
+}
+
+void fragment_main() {
+  sign_0799fd();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  sign_0799fd();
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  sign_0799fd();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  vertex_main_outputs v_2 = {v_1.pos};
+  return v_2;
+}
+
diff --git a/test/tint/builtins/gen/var/sign/159665.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/sign/159665.wgsl.expected.ir.dxc.hlsl
index b7ba330..7586b01 100644
--- a/test/tint/builtins/gen/var/sign/159665.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/sign/159665.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,43 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  float3 prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: sign
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation float3 VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+float3 sign_159665() {
+  float3 arg_0 = (1.0f).xxx;
+  float3 res = float3(sign(arg_0));
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store3(0u, asuint(sign_159665()));
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store3(0u, asuint(sign_159665()));
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = sign_159665();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
diff --git a/test/tint/builtins/gen/var/sign/159665.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/sign/159665.wgsl.expected.ir.fxc.hlsl
index b7ba330..7586b01 100644
--- a/test/tint/builtins/gen/var/sign/159665.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/sign/159665.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,43 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  float3 prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: sign
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation float3 VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+float3 sign_159665() {
+  float3 arg_0 = (1.0f).xxx;
+  float3 res = float3(sign(arg_0));
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store3(0u, asuint(sign_159665()));
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store3(0u, asuint(sign_159665()));
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = sign_159665();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
diff --git a/test/tint/builtins/gen/var/sign/160933.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/sign/160933.wgsl.expected.ir.dxc.hlsl
index b7ba330..7df0c99 100644
--- a/test/tint/builtins/gen/var/sign/160933.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/sign/160933.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,43 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  vector<float16_t, 4> prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: sign
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation vector<float16_t, 4> VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+vector<float16_t, 4> sign_160933() {
+  vector<float16_t, 4> arg_0 = (float16_t(1.0h)).xxxx;
+  vector<float16_t, 4> res = vector<float16_t, 4>(sign(arg_0));
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store<vector<float16_t, 4> >(0u, sign_160933());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store<vector<float16_t, 4> >(0u, sign_160933());
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = sign_160933();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
diff --git a/test/tint/builtins/gen/var/sign/160933.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/sign/160933.wgsl.expected.ir.fxc.hlsl
index b7ba330..d44bb33 100644
--- a/test/tint/builtins/gen/var/sign/160933.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/sign/160933.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,48 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: sign
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct VertexOutput {
+  float4 pos;
+  vector<float16_t, 4> prevent_dce;
+};
+
+struct vertex_main_outputs {
+  nointerpolation vector<float16_t, 4> VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+vector<float16_t, 4> sign_160933() {
+  vector<float16_t, 4> arg_0 = (float16_t(1.0h)).xxxx;
+  vector<float16_t, 4> res = vector<float16_t, 4>(sign(arg_0));
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store<vector<float16_t, 4> >(0u, sign_160933());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store<vector<float16_t, 4> >(0u, sign_160933());
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = sign_160933();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
+FXC validation failure:
+c:\src\dawn\Shader@0x0000018D659856D0(3,10-18): error X3000: syntax error: unexpected token 'float16_t'
+
diff --git a/test/tint/builtins/gen/var/sign/3233fa.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/sign/3233fa.wgsl.expected.ir.dxc.hlsl
index b7ba330..e8802ba 100644
--- a/test/tint/builtins/gen/var/sign/3233fa.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/sign/3233fa.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,43 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  int prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: sign
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation int VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+int sign_3233fa() {
+  int arg_0 = 1;
+  int res = int(sign(arg_0));
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store(0u, asuint(sign_3233fa()));
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store(0u, asuint(sign_3233fa()));
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = sign_3233fa();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
diff --git a/test/tint/builtins/gen/var/sign/3233fa.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/sign/3233fa.wgsl.expected.ir.fxc.hlsl
index b7ba330..e8802ba 100644
--- a/test/tint/builtins/gen/var/sign/3233fa.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/sign/3233fa.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,43 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  int prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: sign
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation int VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+int sign_3233fa() {
+  int arg_0 = 1;
+  int res = int(sign(arg_0));
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store(0u, asuint(sign_3233fa()));
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store(0u, asuint(sign_3233fa()));
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = sign_3233fa();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
diff --git a/test/tint/builtins/gen/var/sign/3a39ac.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/sign/3a39ac.wgsl.expected.ir.dxc.hlsl
index 0ba40c6..8ae4182 100644
--- a/test/tint/builtins/gen/var/sign/3a39ac.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/sign/3a39ac.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,36 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+void sign_3a39ac() {
+  int res = 1;
+}
+
+void fragment_main() {
+  sign_3a39ac();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  sign_3a39ac();
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  sign_3a39ac();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  vertex_main_outputs v_2 = {v_1.pos};
+  return v_2;
+}
+
diff --git a/test/tint/builtins/gen/var/sign/3a39ac.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/sign/3a39ac.wgsl.expected.ir.fxc.hlsl
index 0ba40c6..8ae4182 100644
--- a/test/tint/builtins/gen/var/sign/3a39ac.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/sign/3a39ac.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,36 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+void sign_3a39ac() {
+  int res = 1;
+}
+
+void fragment_main() {
+  sign_3a39ac();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  sign_3a39ac();
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  sign_3a39ac();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  vertex_main_outputs v_2 = {v_1.pos};
+  return v_2;
+}
+
diff --git a/test/tint/builtins/gen/var/sign/3bdab6.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/sign/3bdab6.wgsl.expected.ir.dxc.hlsl
index 0ba40c6..6061f62 100644
--- a/test/tint/builtins/gen/var/sign/3bdab6.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/sign/3bdab6.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,36 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+void sign_3bdab6() {
+  int4 res = (1).xxxx;
+}
+
+void fragment_main() {
+  sign_3bdab6();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  sign_3bdab6();
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  sign_3bdab6();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  vertex_main_outputs v_2 = {v_1.pos};
+  return v_2;
+}
+
diff --git a/test/tint/builtins/gen/var/sign/3bdab6.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/sign/3bdab6.wgsl.expected.ir.fxc.hlsl
index 0ba40c6..6061f62 100644
--- a/test/tint/builtins/gen/var/sign/3bdab6.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/sign/3bdab6.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,36 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+void sign_3bdab6() {
+  int4 res = (1).xxxx;
+}
+
+void fragment_main() {
+  sign_3bdab6();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  sign_3bdab6();
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  sign_3bdab6();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  vertex_main_outputs v_2 = {v_1.pos};
+  return v_2;
+}
+
diff --git a/test/tint/builtins/gen/var/sign/55339e.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/sign/55339e.wgsl.expected.ir.dxc.hlsl
index 0ba40c6..1a7628d 100644
--- a/test/tint/builtins/gen/var/sign/55339e.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/sign/55339e.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,36 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+void sign_55339e() {
+  int3 res = (1).xxx;
+}
+
+void fragment_main() {
+  sign_55339e();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  sign_55339e();
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  sign_55339e();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  vertex_main_outputs v_2 = {v_1.pos};
+  return v_2;
+}
+
diff --git a/test/tint/builtins/gen/var/sign/55339e.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/sign/55339e.wgsl.expected.ir.fxc.hlsl
index 0ba40c6..1a7628d 100644
--- a/test/tint/builtins/gen/var/sign/55339e.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/sign/55339e.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,36 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+void sign_55339e() {
+  int3 res = (1).xxx;
+}
+
+void fragment_main() {
+  sign_55339e();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  sign_55339e();
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  sign_55339e();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  vertex_main_outputs v_2 = {v_1.pos};
+  return v_2;
+}
+
diff --git a/test/tint/builtins/gen/var/sign/58d779.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/sign/58d779.wgsl.expected.ir.dxc.hlsl
index b7ba330..faefd8f 100644
--- a/test/tint/builtins/gen/var/sign/58d779.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/sign/58d779.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,43 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  int4 prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: sign
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation int4 VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+int4 sign_58d779() {
+  int4 arg_0 = (1).xxxx;
+  int4 res = int4(sign(arg_0));
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store4(0u, asuint(sign_58d779()));
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store4(0u, asuint(sign_58d779()));
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = sign_58d779();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
diff --git a/test/tint/builtins/gen/var/sign/58d779.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/sign/58d779.wgsl.expected.ir.fxc.hlsl
index b7ba330..faefd8f 100644
--- a/test/tint/builtins/gen/var/sign/58d779.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/sign/58d779.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,43 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  int4 prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: sign
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation int4 VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+int4 sign_58d779() {
+  int4 arg_0 = (1).xxxx;
+  int4 res = int4(sign(arg_0));
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store4(0u, asuint(sign_58d779()));
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store4(0u, asuint(sign_58d779()));
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = sign_58d779();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
diff --git a/test/tint/builtins/gen/var/sign/5d283a.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/sign/5d283a.wgsl.expected.ir.dxc.hlsl
index b7ba330..16c975c 100644
--- a/test/tint/builtins/gen/var/sign/5d283a.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/sign/5d283a.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,43 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  vector<float16_t, 3> prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: sign
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation vector<float16_t, 3> VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+vector<float16_t, 3> sign_5d283a() {
+  vector<float16_t, 3> arg_0 = (float16_t(1.0h)).xxx;
+  vector<float16_t, 3> res = vector<float16_t, 3>(sign(arg_0));
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store<vector<float16_t, 3> >(0u, sign_5d283a());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store<vector<float16_t, 3> >(0u, sign_5d283a());
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = sign_5d283a();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
diff --git a/test/tint/builtins/gen/var/sign/5d283a.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/sign/5d283a.wgsl.expected.ir.fxc.hlsl
index b7ba330..e29262b 100644
--- a/test/tint/builtins/gen/var/sign/5d283a.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/sign/5d283a.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,48 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: sign
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct VertexOutput {
+  float4 pos;
+  vector<float16_t, 3> prevent_dce;
+};
+
+struct vertex_main_outputs {
+  nointerpolation vector<float16_t, 3> VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+vector<float16_t, 3> sign_5d283a() {
+  vector<float16_t, 3> arg_0 = (float16_t(1.0h)).xxx;
+  vector<float16_t, 3> res = vector<float16_t, 3>(sign(arg_0));
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store<vector<float16_t, 3> >(0u, sign_5d283a());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store<vector<float16_t, 3> >(0u, sign_5d283a());
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = sign_5d283a();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
+FXC validation failure:
+c:\src\dawn\Shader@0x000001B1286E7BA0(3,10-18): error X3000: syntax error: unexpected token 'float16_t'
+
diff --git a/test/tint/builtins/gen/var/sign/7c85ea.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/sign/7c85ea.wgsl.expected.ir.dxc.hlsl
index b7ba330..1dc3d6c 100644
--- a/test/tint/builtins/gen/var/sign/7c85ea.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/sign/7c85ea.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,43 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  float16_t prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: sign
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation float16_t VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+float16_t sign_7c85ea() {
+  float16_t arg_0 = float16_t(1.0h);
+  float16_t res = float16_t(sign(arg_0));
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store<float16_t>(0u, sign_7c85ea());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store<float16_t>(0u, sign_7c85ea());
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = sign_7c85ea();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
diff --git a/test/tint/builtins/gen/var/sign/7c85ea.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/sign/7c85ea.wgsl.expected.ir.fxc.hlsl
index b7ba330..00ead7c 100644
--- a/test/tint/builtins/gen/var/sign/7c85ea.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/sign/7c85ea.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,48 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: sign
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct VertexOutput {
+  float4 pos;
+  float16_t prevent_dce;
+};
+
+struct vertex_main_outputs {
+  nointerpolation float16_t VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+float16_t sign_7c85ea() {
+  float16_t arg_0 = float16_t(1.0h);
+  float16_t res = float16_t(sign(arg_0));
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store<float16_t>(0u, sign_7c85ea());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store<float16_t>(0u, sign_7c85ea());
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = sign_7c85ea();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
+FXC validation failure:
+c:\src\dawn\Shader@0x000001DBE1C54AB0(3,3-11): error X3000: unrecognized identifier 'float16_t'
+
diff --git a/test/tint/builtins/gen/var/sign/926015.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/sign/926015.wgsl.expected.ir.dxc.hlsl
index b7ba330..54314d1d 100644
--- a/test/tint/builtins/gen/var/sign/926015.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/sign/926015.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,43 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  int2 prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: sign
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation int2 VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+int2 sign_926015() {
+  int2 arg_0 = (1).xx;
+  int2 res = int2(sign(arg_0));
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store2(0u, asuint(sign_926015()));
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store2(0u, asuint(sign_926015()));
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = sign_926015();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
diff --git a/test/tint/builtins/gen/var/sign/926015.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/sign/926015.wgsl.expected.ir.fxc.hlsl
index b7ba330..54314d1d 100644
--- a/test/tint/builtins/gen/var/sign/926015.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/sign/926015.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,43 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  int2 prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: sign
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation int2 VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+int2 sign_926015() {
+  int2 arg_0 = (1).xx;
+  int2 res = int2(sign(arg_0));
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store2(0u, asuint(sign_926015()));
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store2(0u, asuint(sign_926015()));
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = sign_926015();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
diff --git a/test/tint/builtins/gen/var/sign/943b2e.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/sign/943b2e.wgsl.expected.ir.dxc.hlsl
index 0ba40c6..220daa1 100644
--- a/test/tint/builtins/gen/var/sign/943b2e.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/sign/943b2e.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,36 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+void sign_943b2e() {
+  int2 res = (1).xx;
+}
+
+void fragment_main() {
+  sign_943b2e();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  sign_943b2e();
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  sign_943b2e();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  vertex_main_outputs v_2 = {v_1.pos};
+  return v_2;
+}
+
diff --git a/test/tint/builtins/gen/var/sign/943b2e.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/sign/943b2e.wgsl.expected.ir.fxc.hlsl
index 0ba40c6..220daa1 100644
--- a/test/tint/builtins/gen/var/sign/943b2e.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/sign/943b2e.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,36 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+void sign_943b2e() {
+  int2 res = (1).xx;
+}
+
+void fragment_main() {
+  sign_943b2e();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  sign_943b2e();
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  sign_943b2e();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  vertex_main_outputs v_2 = {v_1.pos};
+  return v_2;
+}
+
diff --git a/test/tint/builtins/gen/var/sign/9603b1.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/sign/9603b1.wgsl.expected.ir.dxc.hlsl
index b7ba330..f01180c 100644
--- a/test/tint/builtins/gen/var/sign/9603b1.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/sign/9603b1.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,43 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  int3 prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: sign
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation int3 VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+int3 sign_9603b1() {
+  int3 arg_0 = (1).xxx;
+  int3 res = int3(sign(arg_0));
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store3(0u, asuint(sign_9603b1()));
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store3(0u, asuint(sign_9603b1()));
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = sign_9603b1();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
diff --git a/test/tint/builtins/gen/var/sign/9603b1.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/sign/9603b1.wgsl.expected.ir.fxc.hlsl
index b7ba330..f01180c 100644
--- a/test/tint/builtins/gen/var/sign/9603b1.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/sign/9603b1.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,43 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  int3 prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: sign
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation int3 VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+int3 sign_9603b1() {
+  int3 arg_0 = (1).xxx;
+  int3 res = int3(sign(arg_0));
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store3(0u, asuint(sign_9603b1()));
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store3(0u, asuint(sign_9603b1()));
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = sign_9603b1();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
diff --git a/test/tint/builtins/gen/var/sign/ab6301.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/sign/ab6301.wgsl.expected.ir.dxc.hlsl
index 0ba40c6..e986454 100644
--- a/test/tint/builtins/gen/var/sign/ab6301.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/sign/ab6301.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,36 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+void sign_ab6301() {
+  float3 res = (1.0f).xxx;
+}
+
+void fragment_main() {
+  sign_ab6301();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  sign_ab6301();
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  sign_ab6301();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  vertex_main_outputs v_2 = {v_1.pos};
+  return v_2;
+}
+
diff --git a/test/tint/builtins/gen/var/sign/ab6301.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/sign/ab6301.wgsl.expected.ir.fxc.hlsl
index 0ba40c6..e986454 100644
--- a/test/tint/builtins/gen/var/sign/ab6301.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/sign/ab6301.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,36 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+void sign_ab6301() {
+  float3 res = (1.0f).xxx;
+}
+
+void fragment_main() {
+  sign_ab6301();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  sign_ab6301();
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  sign_ab6301();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  vertex_main_outputs v_2 = {v_1.pos};
+  return v_2;
+}
+
diff --git a/test/tint/builtins/gen/var/sign/b8f634.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/sign/b8f634.wgsl.expected.ir.dxc.hlsl
index b7ba330..961e9bf 100644
--- a/test/tint/builtins/gen/var/sign/b8f634.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/sign/b8f634.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,43 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  float4 prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: sign
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation float4 VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+float4 sign_b8f634() {
+  float4 arg_0 = (1.0f).xxxx;
+  float4 res = float4(sign(arg_0));
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store4(0u, asuint(sign_b8f634()));
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store4(0u, asuint(sign_b8f634()));
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = sign_b8f634();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
diff --git a/test/tint/builtins/gen/var/sign/b8f634.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/sign/b8f634.wgsl.expected.ir.fxc.hlsl
index b7ba330..961e9bf 100644
--- a/test/tint/builtins/gen/var/sign/b8f634.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/sign/b8f634.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,43 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  float4 prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: sign
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation float4 VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+float4 sign_b8f634() {
+  float4 arg_0 = (1.0f).xxxx;
+  float4 res = float4(sign(arg_0));
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store4(0u, asuint(sign_b8f634()));
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store4(0u, asuint(sign_b8f634()));
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = sign_b8f634();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
diff --git a/test/tint/builtins/gen/var/sign/c8289c.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/sign/c8289c.wgsl.expected.ir.dxc.hlsl
index 0ba40c6..ea3379c 100644
--- a/test/tint/builtins/gen/var/sign/c8289c.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/sign/c8289c.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,36 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+void sign_c8289c() {
+  float res = 1.0f;
+}
+
+void fragment_main() {
+  sign_c8289c();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  sign_c8289c();
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  sign_c8289c();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  vertex_main_outputs v_2 = {v_1.pos};
+  return v_2;
+}
+
diff --git a/test/tint/builtins/gen/var/sign/c8289c.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/sign/c8289c.wgsl.expected.ir.fxc.hlsl
index 0ba40c6..ea3379c 100644
--- a/test/tint/builtins/gen/var/sign/c8289c.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/sign/c8289c.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,36 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+void sign_c8289c() {
+  float res = 1.0f;
+}
+
+void fragment_main() {
+  sign_c8289c();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  sign_c8289c();
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  sign_c8289c();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  vertex_main_outputs v_2 = {v_1.pos};
+  return v_2;
+}
+
diff --git a/test/tint/builtins/gen/var/sign/ccdb3c.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/sign/ccdb3c.wgsl.expected.ir.dxc.hlsl
index b7ba330..50fdfa5 100644
--- a/test/tint/builtins/gen/var/sign/ccdb3c.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/sign/ccdb3c.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,43 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  vector<float16_t, 2> prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: sign
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation vector<float16_t, 2> VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+vector<float16_t, 2> sign_ccdb3c() {
+  vector<float16_t, 2> arg_0 = (float16_t(1.0h)).xx;
+  vector<float16_t, 2> res = vector<float16_t, 2>(sign(arg_0));
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store<vector<float16_t, 2> >(0u, sign_ccdb3c());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store<vector<float16_t, 2> >(0u, sign_ccdb3c());
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = sign_ccdb3c();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
diff --git a/test/tint/builtins/gen/var/sign/ccdb3c.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/sign/ccdb3c.wgsl.expected.ir.fxc.hlsl
index b7ba330..3bdd188 100644
--- a/test/tint/builtins/gen/var/sign/ccdb3c.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/sign/ccdb3c.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,48 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: sign
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct VertexOutput {
+  float4 pos;
+  vector<float16_t, 2> prevent_dce;
+};
+
+struct vertex_main_outputs {
+  nointerpolation vector<float16_t, 2> VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+vector<float16_t, 2> sign_ccdb3c() {
+  vector<float16_t, 2> arg_0 = (float16_t(1.0h)).xx;
+  vector<float16_t, 2> res = vector<float16_t, 2>(sign(arg_0));
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store<vector<float16_t, 2> >(0u, sign_ccdb3c());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store<vector<float16_t, 2> >(0u, sign_ccdb3c());
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = sign_ccdb3c();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
+FXC validation failure:
+c:\src\dawn\Shader@0x00000285A10A0BD0(3,10-18): error X3000: syntax error: unexpected token 'float16_t'
+
diff --git a/test/tint/builtins/gen/var/sign/d065d8.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/sign/d065d8.wgsl.expected.ir.dxc.hlsl
index b7ba330..a0e1b1f 100644
--- a/test/tint/builtins/gen/var/sign/d065d8.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/sign/d065d8.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,43 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  float2 prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: sign
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation float2 VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+float2 sign_d065d8() {
+  float2 arg_0 = (1.0f).xx;
+  float2 res = float2(sign(arg_0));
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store2(0u, asuint(sign_d065d8()));
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store2(0u, asuint(sign_d065d8()));
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = sign_d065d8();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
diff --git a/test/tint/builtins/gen/var/sign/d065d8.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/sign/d065d8.wgsl.expected.ir.fxc.hlsl
index b7ba330..a0e1b1f 100644
--- a/test/tint/builtins/gen/var/sign/d065d8.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/sign/d065d8.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,43 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  float2 prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: sign
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation float2 VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+float2 sign_d065d8() {
+  float2 arg_0 = (1.0f).xx;
+  float2 res = float2(sign(arg_0));
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store2(0u, asuint(sign_d065d8()));
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store2(0u, asuint(sign_d065d8()));
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = sign_d065d8();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
diff --git a/test/tint/builtins/gen/var/sign/dd790e.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/sign/dd790e.wgsl.expected.ir.dxc.hlsl
index b7ba330..4ee1a14 100644
--- a/test/tint/builtins/gen/var/sign/dd790e.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/sign/dd790e.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,43 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  float prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: sign
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation float VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+float sign_dd790e() {
+  float arg_0 = 1.0f;
+  float res = float(sign(arg_0));
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store(0u, asuint(sign_dd790e()));
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store(0u, asuint(sign_dd790e()));
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = sign_dd790e();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
diff --git a/test/tint/builtins/gen/var/sign/dd790e.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/sign/dd790e.wgsl.expected.ir.fxc.hlsl
index b7ba330..4ee1a14 100644
--- a/test/tint/builtins/gen/var/sign/dd790e.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/sign/dd790e.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,43 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  float prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: sign
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation float VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+float sign_dd790e() {
+  float arg_0 = 1.0f;
+  float res = float(sign(arg_0));
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store(0u, asuint(sign_dd790e()));
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store(0u, asuint(sign_dd790e()));
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = sign_dd790e();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
diff --git a/test/tint/builtins/gen/var/sign/f5da6a.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/sign/f5da6a.wgsl.expected.ir.dxc.hlsl
index 0ba40c6..ef9a321 100644
--- a/test/tint/builtins/gen/var/sign/f5da6a.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/sign/f5da6a.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,36 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+void sign_f5da6a() {
+  float4 res = (1.0f).xxxx;
+}
+
+void fragment_main() {
+  sign_f5da6a();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  sign_f5da6a();
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  sign_f5da6a();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  vertex_main_outputs v_2 = {v_1.pos};
+  return v_2;
+}
+
diff --git a/test/tint/builtins/gen/var/sign/f5da6a.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/sign/f5da6a.wgsl.expected.ir.fxc.hlsl
index 0ba40c6..ef9a321 100644
--- a/test/tint/builtins/gen/var/sign/f5da6a.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/sign/f5da6a.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,36 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+void sign_f5da6a() {
+  float4 res = (1.0f).xxxx;
+}
+
+void fragment_main() {
+  sign_f5da6a();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  sign_f5da6a();
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  sign_f5da6a();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  vertex_main_outputs v_2 = {v_1.pos};
+  return v_2;
+}
+
diff --git a/test/tint/builtins/gen/var/sin/01f241.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/sin/01f241.wgsl.expected.ir.dxc.hlsl
index 0ba40c6..ee53dea 100644
--- a/test/tint/builtins/gen/var/sin/01f241.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/sin/01f241.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,43 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  float3 prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation float3 VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+float3 sin_01f241() {
+  float3 arg_0 = (1.57079637050628662109f).xxx;
+  float3 res = sin(arg_0);
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store3(0u, asuint(sin_01f241()));
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store3(0u, asuint(sin_01f241()));
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = sin_01f241();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
diff --git a/test/tint/builtins/gen/var/sin/01f241.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/sin/01f241.wgsl.expected.ir.fxc.hlsl
index 0ba40c6..ee53dea 100644
--- a/test/tint/builtins/gen/var/sin/01f241.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/sin/01f241.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,43 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  float3 prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation float3 VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+float3 sin_01f241() {
+  float3 arg_0 = (1.57079637050628662109f).xxx;
+  float3 res = sin(arg_0);
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store3(0u, asuint(sin_01f241()));
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store3(0u, asuint(sin_01f241()));
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = sin_01f241();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
diff --git a/test/tint/builtins/gen/var/sin/15b2c6.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/sin/15b2c6.wgsl.expected.ir.dxc.hlsl
index 0ba40c6..4062d04 100644
--- a/test/tint/builtins/gen/var/sin/15b2c6.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/sin/15b2c6.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,36 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+void sin_15b2c6() {
+  float4 res = (1.0f).xxxx;
+}
+
+void fragment_main() {
+  sin_15b2c6();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  sin_15b2c6();
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  sin_15b2c6();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  vertex_main_outputs v_2 = {v_1.pos};
+  return v_2;
+}
+
diff --git a/test/tint/builtins/gen/var/sin/15b2c6.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/sin/15b2c6.wgsl.expected.ir.fxc.hlsl
index 0ba40c6..4062d04 100644
--- a/test/tint/builtins/gen/var/sin/15b2c6.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/sin/15b2c6.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,36 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+void sin_15b2c6() {
+  float4 res = (1.0f).xxxx;
+}
+
+void fragment_main() {
+  sin_15b2c6();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  sin_15b2c6();
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  sin_15b2c6();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  vertex_main_outputs v_2 = {v_1.pos};
+  return v_2;
+}
+
diff --git a/test/tint/builtins/gen/var/sin/2c903b.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/sin/2c903b.wgsl.expected.ir.dxc.hlsl
index 0ba40c6..98cc809 100644
--- a/test/tint/builtins/gen/var/sin/2c903b.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/sin/2c903b.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,43 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  vector<float16_t, 3> prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation vector<float16_t, 3> VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+vector<float16_t, 3> sin_2c903b() {
+  vector<float16_t, 3> arg_0 = (float16_t(1.5703125h)).xxx;
+  vector<float16_t, 3> res = sin(arg_0);
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store<vector<float16_t, 3> >(0u, sin_2c903b());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store<vector<float16_t, 3> >(0u, sin_2c903b());
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = sin_2c903b();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
diff --git a/test/tint/builtins/gen/var/sin/2c903b.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/sin/2c903b.wgsl.expected.ir.fxc.hlsl
index 0ba40c6..390470d 100644
--- a/test/tint/builtins/gen/var/sin/2c903b.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/sin/2c903b.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,48 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct VertexOutput {
+  float4 pos;
+  vector<float16_t, 3> prevent_dce;
+};
+
+struct vertex_main_outputs {
+  nointerpolation vector<float16_t, 3> VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+vector<float16_t, 3> sin_2c903b() {
+  vector<float16_t, 3> arg_0 = (float16_t(1.5703125h)).xxx;
+  vector<float16_t, 3> res = sin(arg_0);
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store<vector<float16_t, 3> >(0u, sin_2c903b());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store<vector<float16_t, 3> >(0u, sin_2c903b());
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = sin_2c903b();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
+FXC validation failure:
+c:\src\dawn\Shader@0x00000134DF34CE20(3,10-18): error X3000: syntax error: unexpected token 'float16_t'
+
diff --git a/test/tint/builtins/gen/var/sin/3cca11.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/sin/3cca11.wgsl.expected.ir.dxc.hlsl
index 0ba40c6..4572602 100644
--- a/test/tint/builtins/gen/var/sin/3cca11.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/sin/3cca11.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,43 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  vector<float16_t, 2> prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation vector<float16_t, 2> VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+vector<float16_t, 2> sin_3cca11() {
+  vector<float16_t, 2> arg_0 = (float16_t(1.5703125h)).xx;
+  vector<float16_t, 2> res = sin(arg_0);
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store<vector<float16_t, 2> >(0u, sin_3cca11());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store<vector<float16_t, 2> >(0u, sin_3cca11());
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = sin_3cca11();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
diff --git a/test/tint/builtins/gen/var/sin/3cca11.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/sin/3cca11.wgsl.expected.ir.fxc.hlsl
index 0ba40c6..f497e23 100644
--- a/test/tint/builtins/gen/var/sin/3cca11.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/sin/3cca11.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,48 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct VertexOutput {
+  float4 pos;
+  vector<float16_t, 2> prevent_dce;
+};
+
+struct vertex_main_outputs {
+  nointerpolation vector<float16_t, 2> VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+vector<float16_t, 2> sin_3cca11() {
+  vector<float16_t, 2> arg_0 = (float16_t(1.5703125h)).xx;
+  vector<float16_t, 2> res = sin(arg_0);
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store<vector<float16_t, 2> >(0u, sin_3cca11());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store<vector<float16_t, 2> >(0u, sin_3cca11());
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = sin_3cca11();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
+FXC validation failure:
+c:\src\dawn\Shader@0x0000024790D54D80(3,10-18): error X3000: syntax error: unexpected token 'float16_t'
+
diff --git a/test/tint/builtins/gen/var/sin/4e3979.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/sin/4e3979.wgsl.expected.ir.dxc.hlsl
index 0ba40c6..014edf0 100644
--- a/test/tint/builtins/gen/var/sin/4e3979.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/sin/4e3979.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,43 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  float4 prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation float4 VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+float4 sin_4e3979() {
+  float4 arg_0 = (1.57079637050628662109f).xxxx;
+  float4 res = sin(arg_0);
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store4(0u, asuint(sin_4e3979()));
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store4(0u, asuint(sin_4e3979()));
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = sin_4e3979();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
diff --git a/test/tint/builtins/gen/var/sin/4e3979.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/sin/4e3979.wgsl.expected.ir.fxc.hlsl
index 0ba40c6..014edf0 100644
--- a/test/tint/builtins/gen/var/sin/4e3979.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/sin/4e3979.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,43 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  float4 prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation float4 VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+float4 sin_4e3979() {
+  float4 arg_0 = (1.57079637050628662109f).xxxx;
+  float4 res = sin(arg_0);
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store4(0u, asuint(sin_4e3979()));
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store4(0u, asuint(sin_4e3979()));
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = sin_4e3979();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
diff --git a/test/tint/builtins/gen/var/sin/5c0712.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/sin/5c0712.wgsl.expected.ir.dxc.hlsl
index 0ba40c6..11aa6a4 100644
--- a/test/tint/builtins/gen/var/sin/5c0712.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/sin/5c0712.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,43 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  vector<float16_t, 4> prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation vector<float16_t, 4> VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+vector<float16_t, 4> sin_5c0712() {
+  vector<float16_t, 4> arg_0 = (float16_t(1.5703125h)).xxxx;
+  vector<float16_t, 4> res = sin(arg_0);
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store<vector<float16_t, 4> >(0u, sin_5c0712());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store<vector<float16_t, 4> >(0u, sin_5c0712());
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = sin_5c0712();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
diff --git a/test/tint/builtins/gen/var/sin/5c0712.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/sin/5c0712.wgsl.expected.ir.fxc.hlsl
index 0ba40c6..128d553 100644
--- a/test/tint/builtins/gen/var/sin/5c0712.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/sin/5c0712.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,48 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct VertexOutput {
+  float4 pos;
+  vector<float16_t, 4> prevent_dce;
+};
+
+struct vertex_main_outputs {
+  nointerpolation vector<float16_t, 4> VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+vector<float16_t, 4> sin_5c0712() {
+  vector<float16_t, 4> arg_0 = (float16_t(1.5703125h)).xxxx;
+  vector<float16_t, 4> res = sin(arg_0);
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store<vector<float16_t, 4> >(0u, sin_5c0712());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store<vector<float16_t, 4> >(0u, sin_5c0712());
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = sin_5c0712();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
+FXC validation failure:
+c:\src\dawn\Shader@0x000001D63D040EB0(3,10-18): error X3000: syntax error: unexpected token 'float16_t'
+
diff --git a/test/tint/builtins/gen/var/sin/66a59f.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/sin/66a59f.wgsl.expected.ir.dxc.hlsl
index 0ba40c6..e3d5b1a 100644
--- a/test/tint/builtins/gen/var/sin/66a59f.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/sin/66a59f.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,43 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  float16_t prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation float16_t VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+float16_t sin_66a59f() {
+  float16_t arg_0 = float16_t(1.5703125h);
+  float16_t res = sin(arg_0);
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store<float16_t>(0u, sin_66a59f());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store<float16_t>(0u, sin_66a59f());
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = sin_66a59f();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
diff --git a/test/tint/builtins/gen/var/sin/66a59f.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/sin/66a59f.wgsl.expected.ir.fxc.hlsl
index 0ba40c6..0f00973 100644
--- a/test/tint/builtins/gen/var/sin/66a59f.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/sin/66a59f.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,48 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct VertexOutput {
+  float4 pos;
+  float16_t prevent_dce;
+};
+
+struct vertex_main_outputs {
+  nointerpolation float16_t VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+float16_t sin_66a59f() {
+  float16_t arg_0 = float16_t(1.5703125h);
+  float16_t res = sin(arg_0);
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store<float16_t>(0u, sin_66a59f());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store<float16_t>(0u, sin_66a59f());
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = sin_66a59f();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
+FXC validation failure:
+c:\src\dawn\Shader@0x000002D051335110(3,3-11): error X3000: unrecognized identifier 'float16_t'
+
diff --git a/test/tint/builtins/gen/var/sin/67b03c.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/sin/67b03c.wgsl.expected.ir.dxc.hlsl
index 0ba40c6..c0883bd 100644
--- a/test/tint/builtins/gen/var/sin/67b03c.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/sin/67b03c.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,36 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+void sin_67b03c() {
+  float3 res = (1.0f).xxx;
+}
+
+void fragment_main() {
+  sin_67b03c();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  sin_67b03c();
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  sin_67b03c();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  vertex_main_outputs v_2 = {v_1.pos};
+  return v_2;
+}
+
diff --git a/test/tint/builtins/gen/var/sin/67b03c.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/sin/67b03c.wgsl.expected.ir.fxc.hlsl
index 0ba40c6..c0883bd 100644
--- a/test/tint/builtins/gen/var/sin/67b03c.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/sin/67b03c.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,36 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+void sin_67b03c() {
+  float3 res = (1.0f).xxx;
+}
+
+void fragment_main() {
+  sin_67b03c();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  sin_67b03c();
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  sin_67b03c();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  vertex_main_outputs v_2 = {v_1.pos};
+  return v_2;
+}
+
diff --git a/test/tint/builtins/gen/var/sin/68d3ab.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/sin/68d3ab.wgsl.expected.ir.dxc.hlsl
index 0ba40c6..d9bc781 100644
--- a/test/tint/builtins/gen/var/sin/68d3ab.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/sin/68d3ab.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,36 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+void sin_68d3ab() {
+  float2 res = (1.0f).xx;
+}
+
+void fragment_main() {
+  sin_68d3ab();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  sin_68d3ab();
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  sin_68d3ab();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  vertex_main_outputs v_2 = {v_1.pos};
+  return v_2;
+}
+
diff --git a/test/tint/builtins/gen/var/sin/68d3ab.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/sin/68d3ab.wgsl.expected.ir.fxc.hlsl
index 0ba40c6..d9bc781 100644
--- a/test/tint/builtins/gen/var/sin/68d3ab.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/sin/68d3ab.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,36 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+void sin_68d3ab() {
+  float2 res = (1.0f).xx;
+}
+
+void fragment_main() {
+  sin_68d3ab();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  sin_68d3ab();
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  sin_68d3ab();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  vertex_main_outputs v_2 = {v_1.pos};
+  return v_2;
+}
+
diff --git a/test/tint/builtins/gen/var/sin/a9ab19.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/sin/a9ab19.wgsl.expected.ir.dxc.hlsl
index 0ba40c6..07d2b13 100644
--- a/test/tint/builtins/gen/var/sin/a9ab19.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/sin/a9ab19.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,36 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+void sin_a9ab19() {
+  float res = 1.0f;
+}
+
+void fragment_main() {
+  sin_a9ab19();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  sin_a9ab19();
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  sin_a9ab19();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  vertex_main_outputs v_2 = {v_1.pos};
+  return v_2;
+}
+
diff --git a/test/tint/builtins/gen/var/sin/a9ab19.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/sin/a9ab19.wgsl.expected.ir.fxc.hlsl
index 0ba40c6..07d2b13 100644
--- a/test/tint/builtins/gen/var/sin/a9ab19.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/sin/a9ab19.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,36 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+void sin_a9ab19() {
+  float res = 1.0f;
+}
+
+void fragment_main() {
+  sin_a9ab19();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  sin_a9ab19();
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  sin_a9ab19();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  vertex_main_outputs v_2 = {v_1.pos};
+  return v_2;
+}
+
diff --git a/test/tint/builtins/gen/var/sin/b78c91.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/sin/b78c91.wgsl.expected.ir.dxc.hlsl
index 0ba40c6..3cf0d31 100644
--- a/test/tint/builtins/gen/var/sin/b78c91.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/sin/b78c91.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,43 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  float prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation float VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+float sin_b78c91() {
+  float arg_0 = 1.57079637050628662109f;
+  float res = sin(arg_0);
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store(0u, asuint(sin_b78c91()));
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store(0u, asuint(sin_b78c91()));
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = sin_b78c91();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
diff --git a/test/tint/builtins/gen/var/sin/b78c91.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/sin/b78c91.wgsl.expected.ir.fxc.hlsl
index 0ba40c6..3cf0d31 100644
--- a/test/tint/builtins/gen/var/sin/b78c91.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/sin/b78c91.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,43 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  float prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation float VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+float sin_b78c91() {
+  float arg_0 = 1.57079637050628662109f;
+  float res = sin(arg_0);
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store(0u, asuint(sin_b78c91()));
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store(0u, asuint(sin_b78c91()));
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = sin_b78c91();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
diff --git a/test/tint/builtins/gen/var/sin/fc8bc4.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/sin/fc8bc4.wgsl.expected.ir.dxc.hlsl
index 0ba40c6..f29e929 100644
--- a/test/tint/builtins/gen/var/sin/fc8bc4.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/sin/fc8bc4.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,43 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  float2 prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation float2 VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+float2 sin_fc8bc4() {
+  float2 arg_0 = (1.57079637050628662109f).xx;
+  float2 res = sin(arg_0);
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store2(0u, asuint(sin_fc8bc4()));
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store2(0u, asuint(sin_fc8bc4()));
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = sin_fc8bc4();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
diff --git a/test/tint/builtins/gen/var/sin/fc8bc4.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/sin/fc8bc4.wgsl.expected.ir.fxc.hlsl
index 0ba40c6..f29e929 100644
--- a/test/tint/builtins/gen/var/sin/fc8bc4.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/sin/fc8bc4.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,43 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  float2 prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation float2 VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+float2 sin_fc8bc4() {
+  float2 arg_0 = (1.57079637050628662109f).xx;
+  float2 res = sin(arg_0);
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store2(0u, asuint(sin_fc8bc4()));
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store2(0u, asuint(sin_fc8bc4()));
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = sin_fc8bc4();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
diff --git a/test/tint/builtins/gen/var/sinh/0908c1.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/sinh/0908c1.wgsl.expected.ir.dxc.hlsl
index 0ba40c6..1b93a77 100644
--- a/test/tint/builtins/gen/var/sinh/0908c1.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/sinh/0908c1.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,43 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  vector<float16_t, 3> prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation vector<float16_t, 3> VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+vector<float16_t, 3> sinh_0908c1() {
+  vector<float16_t, 3> arg_0 = (float16_t(1.0h)).xxx;
+  vector<float16_t, 3> res = sinh(arg_0);
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store<vector<float16_t, 3> >(0u, sinh_0908c1());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store<vector<float16_t, 3> >(0u, sinh_0908c1());
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = sinh_0908c1();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
diff --git a/test/tint/builtins/gen/var/sinh/0908c1.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/sinh/0908c1.wgsl.expected.ir.fxc.hlsl
index 0ba40c6..3ee70cf 100644
--- a/test/tint/builtins/gen/var/sinh/0908c1.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/sinh/0908c1.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,48 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct VertexOutput {
+  float4 pos;
+  vector<float16_t, 3> prevent_dce;
+};
+
+struct vertex_main_outputs {
+  nointerpolation vector<float16_t, 3> VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+vector<float16_t, 3> sinh_0908c1() {
+  vector<float16_t, 3> arg_0 = (float16_t(1.0h)).xxx;
+  vector<float16_t, 3> res = sinh(arg_0);
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store<vector<float16_t, 3> >(0u, sinh_0908c1());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store<vector<float16_t, 3> >(0u, sinh_0908c1());
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = sinh_0908c1();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
+FXC validation failure:
+c:\src\dawn\Shader@0x000001FEE15346A0(3,10-18): error X3000: syntax error: unexpected token 'float16_t'
+
diff --git a/test/tint/builtins/gen/var/sinh/445e33.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/sinh/445e33.wgsl.expected.ir.dxc.hlsl
index 0ba40c6..0c509c7 100644
--- a/test/tint/builtins/gen/var/sinh/445e33.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/sinh/445e33.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,43 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  float4 prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation float4 VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+float4 sinh_445e33() {
+  float4 arg_0 = (1.0f).xxxx;
+  float4 res = sinh(arg_0);
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store4(0u, asuint(sinh_445e33()));
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store4(0u, asuint(sinh_445e33()));
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = sinh_445e33();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
diff --git a/test/tint/builtins/gen/var/sinh/445e33.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/sinh/445e33.wgsl.expected.ir.fxc.hlsl
index 0ba40c6..0c509c7 100644
--- a/test/tint/builtins/gen/var/sinh/445e33.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/sinh/445e33.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,43 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  float4 prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation float4 VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+float4 sinh_445e33() {
+  float4 arg_0 = (1.0f).xxxx;
+  float4 res = sinh(arg_0);
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store4(0u, asuint(sinh_445e33()));
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store4(0u, asuint(sinh_445e33()));
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = sinh_445e33();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
diff --git a/test/tint/builtins/gen/var/sinh/69cce2.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/sinh/69cce2.wgsl.expected.ir.dxc.hlsl
index 0ba40c6..90a10c6 100644
--- a/test/tint/builtins/gen/var/sinh/69cce2.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/sinh/69cce2.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,43 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  float16_t prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation float16_t VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+float16_t sinh_69cce2() {
+  float16_t arg_0 = float16_t(1.0h);
+  float16_t res = sinh(arg_0);
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store<float16_t>(0u, sinh_69cce2());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store<float16_t>(0u, sinh_69cce2());
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = sinh_69cce2();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
diff --git a/test/tint/builtins/gen/var/sinh/69cce2.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/sinh/69cce2.wgsl.expected.ir.fxc.hlsl
index 0ba40c6..12f6037 100644
--- a/test/tint/builtins/gen/var/sinh/69cce2.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/sinh/69cce2.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,48 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct VertexOutput {
+  float4 pos;
+  float16_t prevent_dce;
+};
+
+struct vertex_main_outputs {
+  nointerpolation float16_t VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+float16_t sinh_69cce2() {
+  float16_t arg_0 = float16_t(1.0h);
+  float16_t res = sinh(arg_0);
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store<float16_t>(0u, sinh_69cce2());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store<float16_t>(0u, sinh_69cce2());
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = sinh_69cce2();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
+FXC validation failure:
+c:\src\dawn\Shader@0x0000026C08451020(3,3-11): error X3000: unrecognized identifier 'float16_t'
+
diff --git a/test/tint/builtins/gen/var/sinh/77a2a3.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/sinh/77a2a3.wgsl.expected.ir.dxc.hlsl
index 0ba40c6..0c18568 100644
--- a/test/tint/builtins/gen/var/sinh/77a2a3.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/sinh/77a2a3.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,36 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+void sinh_77a2a3() {
+  float3 res = (1.17520117759704589844f).xxx;
+}
+
+void fragment_main() {
+  sinh_77a2a3();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  sinh_77a2a3();
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  sinh_77a2a3();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  vertex_main_outputs v_2 = {v_1.pos};
+  return v_2;
+}
+
diff --git a/test/tint/builtins/gen/var/sinh/77a2a3.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/sinh/77a2a3.wgsl.expected.ir.fxc.hlsl
index 0ba40c6..0c18568 100644
--- a/test/tint/builtins/gen/var/sinh/77a2a3.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/sinh/77a2a3.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,36 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+void sinh_77a2a3() {
+  float3 res = (1.17520117759704589844f).xxx;
+}
+
+void fragment_main() {
+  sinh_77a2a3();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  sinh_77a2a3();
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  sinh_77a2a3();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  vertex_main_outputs v_2 = {v_1.pos};
+  return v_2;
+}
+
diff --git a/test/tint/builtins/gen/var/sinh/7bb598.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/sinh/7bb598.wgsl.expected.ir.dxc.hlsl
index 0ba40c6..df8b821 100644
--- a/test/tint/builtins/gen/var/sinh/7bb598.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/sinh/7bb598.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,43 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  float prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation float VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+float sinh_7bb598() {
+  float arg_0 = 1.0f;
+  float res = sinh(arg_0);
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store(0u, asuint(sinh_7bb598()));
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store(0u, asuint(sinh_7bb598()));
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = sinh_7bb598();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
diff --git a/test/tint/builtins/gen/var/sinh/7bb598.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/sinh/7bb598.wgsl.expected.ir.fxc.hlsl
index 0ba40c6..df8b821 100644
--- a/test/tint/builtins/gen/var/sinh/7bb598.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/sinh/7bb598.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,43 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  float prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation float VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+float sinh_7bb598() {
+  float arg_0 = 1.0f;
+  float res = sinh(arg_0);
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store(0u, asuint(sinh_7bb598()));
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store(0u, asuint(sinh_7bb598()));
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = sinh_7bb598();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
diff --git a/test/tint/builtins/gen/var/sinh/924f19.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/sinh/924f19.wgsl.expected.ir.dxc.hlsl
index 0ba40c6..b5c1295 100644
--- a/test/tint/builtins/gen/var/sinh/924f19.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/sinh/924f19.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,43 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  vector<float16_t, 2> prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation vector<float16_t, 2> VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+vector<float16_t, 2> sinh_924f19() {
+  vector<float16_t, 2> arg_0 = (float16_t(1.0h)).xx;
+  vector<float16_t, 2> res = sinh(arg_0);
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store<vector<float16_t, 2> >(0u, sinh_924f19());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store<vector<float16_t, 2> >(0u, sinh_924f19());
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = sinh_924f19();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
diff --git a/test/tint/builtins/gen/var/sinh/924f19.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/sinh/924f19.wgsl.expected.ir.fxc.hlsl
index 0ba40c6..c762481 100644
--- a/test/tint/builtins/gen/var/sinh/924f19.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/sinh/924f19.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,48 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct VertexOutput {
+  float4 pos;
+  vector<float16_t, 2> prevent_dce;
+};
+
+struct vertex_main_outputs {
+  nointerpolation vector<float16_t, 2> VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+vector<float16_t, 2> sinh_924f19() {
+  vector<float16_t, 2> arg_0 = (float16_t(1.0h)).xx;
+  vector<float16_t, 2> res = sinh(arg_0);
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store<vector<float16_t, 2> >(0u, sinh_924f19());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store<vector<float16_t, 2> >(0u, sinh_924f19());
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = sinh_924f19();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
+FXC validation failure:
+c:\src\dawn\Shader@0x0000018D03CD8210(3,10-18): error X3000: syntax error: unexpected token 'float16_t'
+
diff --git a/test/tint/builtins/gen/var/sinh/9c1092.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/sinh/9c1092.wgsl.expected.ir.dxc.hlsl
index 0ba40c6..aa4d15b 100644
--- a/test/tint/builtins/gen/var/sinh/9c1092.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/sinh/9c1092.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,36 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+void sinh_9c1092() {
+  float2 res = (1.17520117759704589844f).xx;
+}
+
+void fragment_main() {
+  sinh_9c1092();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  sinh_9c1092();
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  sinh_9c1092();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  vertex_main_outputs v_2 = {v_1.pos};
+  return v_2;
+}
+
diff --git a/test/tint/builtins/gen/var/sinh/9c1092.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/sinh/9c1092.wgsl.expected.ir.fxc.hlsl
index 0ba40c6..aa4d15b 100644
--- a/test/tint/builtins/gen/var/sinh/9c1092.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/sinh/9c1092.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,36 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+void sinh_9c1092() {
+  float2 res = (1.17520117759704589844f).xx;
+}
+
+void fragment_main() {
+  sinh_9c1092();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  sinh_9c1092();
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  sinh_9c1092();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  vertex_main_outputs v_2 = {v_1.pos};
+  return v_2;
+}
+
diff --git a/test/tint/builtins/gen/var/sinh/a3da7c.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/sinh/a3da7c.wgsl.expected.ir.dxc.hlsl
index 0ba40c6..31865ea 100644
--- a/test/tint/builtins/gen/var/sinh/a3da7c.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/sinh/a3da7c.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,36 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+void sinh_a3da7c() {
+  float4 res = (1.17520117759704589844f).xxxx;
+}
+
+void fragment_main() {
+  sinh_a3da7c();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  sinh_a3da7c();
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  sinh_a3da7c();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  vertex_main_outputs v_2 = {v_1.pos};
+  return v_2;
+}
+
diff --git a/test/tint/builtins/gen/var/sinh/a3da7c.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/sinh/a3da7c.wgsl.expected.ir.fxc.hlsl
index 0ba40c6..31865ea 100644
--- a/test/tint/builtins/gen/var/sinh/a3da7c.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/sinh/a3da7c.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,36 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+void sinh_a3da7c() {
+  float4 res = (1.17520117759704589844f).xxxx;
+}
+
+void fragment_main() {
+  sinh_a3da7c();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  sinh_a3da7c();
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  sinh_a3da7c();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  vertex_main_outputs v_2 = {v_1.pos};
+  return v_2;
+}
+
diff --git a/test/tint/builtins/gen/var/sinh/b9860e.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/sinh/b9860e.wgsl.expected.ir.dxc.hlsl
index 0ba40c6..c98380b 100644
--- a/test/tint/builtins/gen/var/sinh/b9860e.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/sinh/b9860e.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,43 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  float2 prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation float2 VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+float2 sinh_b9860e() {
+  float2 arg_0 = (1.0f).xx;
+  float2 res = sinh(arg_0);
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store2(0u, asuint(sinh_b9860e()));
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store2(0u, asuint(sinh_b9860e()));
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = sinh_b9860e();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
diff --git a/test/tint/builtins/gen/var/sinh/b9860e.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/sinh/b9860e.wgsl.expected.ir.fxc.hlsl
index 0ba40c6..c98380b 100644
--- a/test/tint/builtins/gen/var/sinh/b9860e.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/sinh/b9860e.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,43 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  float2 prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation float2 VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+float2 sinh_b9860e() {
+  float2 arg_0 = (1.0f).xx;
+  float2 res = sinh(arg_0);
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store2(0u, asuint(sinh_b9860e()));
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store2(0u, asuint(sinh_b9860e()));
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = sinh_b9860e();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
diff --git a/test/tint/builtins/gen/var/sinh/ba7e25.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/sinh/ba7e25.wgsl.expected.ir.dxc.hlsl
index 0ba40c6..8923914 100644
--- a/test/tint/builtins/gen/var/sinh/ba7e25.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/sinh/ba7e25.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,43 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  vector<float16_t, 4> prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation vector<float16_t, 4> VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+vector<float16_t, 4> sinh_ba7e25() {
+  vector<float16_t, 4> arg_0 = (float16_t(1.0h)).xxxx;
+  vector<float16_t, 4> res = sinh(arg_0);
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store<vector<float16_t, 4> >(0u, sinh_ba7e25());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store<vector<float16_t, 4> >(0u, sinh_ba7e25());
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = sinh_ba7e25();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
diff --git a/test/tint/builtins/gen/var/sinh/ba7e25.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/sinh/ba7e25.wgsl.expected.ir.fxc.hlsl
index 0ba40c6..1e5e110 100644
--- a/test/tint/builtins/gen/var/sinh/ba7e25.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/sinh/ba7e25.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,48 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct VertexOutput {
+  float4 pos;
+  vector<float16_t, 4> prevent_dce;
+};
+
+struct vertex_main_outputs {
+  nointerpolation vector<float16_t, 4> VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+vector<float16_t, 4> sinh_ba7e25() {
+  vector<float16_t, 4> arg_0 = (float16_t(1.0h)).xxxx;
+  vector<float16_t, 4> res = sinh(arg_0);
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store<vector<float16_t, 4> >(0u, sinh_ba7e25());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store<vector<float16_t, 4> >(0u, sinh_ba7e25());
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = sinh_ba7e25();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
+FXC validation failure:
+c:\src\dawn\Shader@0x00000250E85A1FA0(3,10-18): error X3000: syntax error: unexpected token 'float16_t'
+
diff --git a/test/tint/builtins/gen/var/sinh/c4df74.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/sinh/c4df74.wgsl.expected.ir.dxc.hlsl
index 0ba40c6..cf43a63 100644
--- a/test/tint/builtins/gen/var/sinh/c4df74.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/sinh/c4df74.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,36 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+void sinh_c4df74() {
+  float res = 1.17520117759704589844f;
+}
+
+void fragment_main() {
+  sinh_c4df74();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  sinh_c4df74();
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  sinh_c4df74();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  vertex_main_outputs v_2 = {v_1.pos};
+  return v_2;
+}
+
diff --git a/test/tint/builtins/gen/var/sinh/c4df74.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/sinh/c4df74.wgsl.expected.ir.fxc.hlsl
index 0ba40c6..cf43a63 100644
--- a/test/tint/builtins/gen/var/sinh/c4df74.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/sinh/c4df74.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,36 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+void sinh_c4df74() {
+  float res = 1.17520117759704589844f;
+}
+
+void fragment_main() {
+  sinh_c4df74();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  sinh_c4df74();
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  sinh_c4df74();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  vertex_main_outputs v_2 = {v_1.pos};
+  return v_2;
+}
+
diff --git a/test/tint/builtins/gen/var/sinh/c9a5eb.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/sinh/c9a5eb.wgsl.expected.ir.dxc.hlsl
index 0ba40c6..1658cf0 100644
--- a/test/tint/builtins/gen/var/sinh/c9a5eb.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/sinh/c9a5eb.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,43 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  float3 prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation float3 VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+float3 sinh_c9a5eb() {
+  float3 arg_0 = (1.0f).xxx;
+  float3 res = sinh(arg_0);
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store3(0u, asuint(sinh_c9a5eb()));
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store3(0u, asuint(sinh_c9a5eb()));
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = sinh_c9a5eb();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
diff --git a/test/tint/builtins/gen/var/sinh/c9a5eb.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/sinh/c9a5eb.wgsl.expected.ir.fxc.hlsl
index 0ba40c6..1658cf0 100644
--- a/test/tint/builtins/gen/var/sinh/c9a5eb.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/sinh/c9a5eb.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,43 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  float3 prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation float3 VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+float3 sinh_c9a5eb() {
+  float3 arg_0 = (1.0f).xxx;
+  float3 res = sinh(arg_0);
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store3(0u, asuint(sinh_c9a5eb()));
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store3(0u, asuint(sinh_c9a5eb()));
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = sinh_c9a5eb();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
diff --git a/test/tint/builtins/gen/var/smoothstep/0c481b.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/smoothstep/0c481b.wgsl.expected.ir.dxc.hlsl
index 0ba40c6..1e599ad 100644
--- a/test/tint/builtins/gen/var/smoothstep/0c481b.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/smoothstep/0c481b.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,36 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+void smoothstep_0c481b() {
+  float2 res = (0.5f).xx;
+}
+
+void fragment_main() {
+  smoothstep_0c481b();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  smoothstep_0c481b();
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  smoothstep_0c481b();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  vertex_main_outputs v_2 = {v_1.pos};
+  return v_2;
+}
+
diff --git a/test/tint/builtins/gen/var/smoothstep/0c481b.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/smoothstep/0c481b.wgsl.expected.ir.fxc.hlsl
index 0ba40c6..1e599ad 100644
--- a/test/tint/builtins/gen/var/smoothstep/0c481b.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/smoothstep/0c481b.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,36 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+void smoothstep_0c481b() {
+  float2 res = (0.5f).xx;
+}
+
+void fragment_main() {
+  smoothstep_0c481b();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  smoothstep_0c481b();
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  smoothstep_0c481b();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  vertex_main_outputs v_2 = {v_1.pos};
+  return v_2;
+}
+
diff --git a/test/tint/builtins/gen/var/smoothstep/0c4ffc.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/smoothstep/0c4ffc.wgsl.expected.ir.dxc.hlsl
index 0ba40c6..ec3c767 100644
--- a/test/tint/builtins/gen/var/smoothstep/0c4ffc.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/smoothstep/0c4ffc.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,36 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+void smoothstep_0c4ffc() {
+  float4 res = (0.5f).xxxx;
+}
+
+void fragment_main() {
+  smoothstep_0c4ffc();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  smoothstep_0c4ffc();
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  smoothstep_0c4ffc();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  vertex_main_outputs v_2 = {v_1.pos};
+  return v_2;
+}
+
diff --git a/test/tint/builtins/gen/var/smoothstep/0c4ffc.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/smoothstep/0c4ffc.wgsl.expected.ir.fxc.hlsl
index 0ba40c6..ec3c767 100644
--- a/test/tint/builtins/gen/var/smoothstep/0c4ffc.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/smoothstep/0c4ffc.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,36 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+void smoothstep_0c4ffc() {
+  float4 res = (0.5f).xxxx;
+}
+
+void fragment_main() {
+  smoothstep_0c4ffc();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  smoothstep_0c4ffc();
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  smoothstep_0c4ffc();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  vertex_main_outputs v_2 = {v_1.pos};
+  return v_2;
+}
+
diff --git a/test/tint/builtins/gen/var/smoothstep/12c031.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/smoothstep/12c031.wgsl.expected.ir.dxc.hlsl
index 0ba40c6..bd71762 100644
--- a/test/tint/builtins/gen/var/smoothstep/12c031.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/smoothstep/12c031.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,45 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  vector<float16_t, 2> prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation vector<float16_t, 2> VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+vector<float16_t, 2> smoothstep_12c031() {
+  vector<float16_t, 2> arg_0 = (float16_t(2.0h)).xx;
+  vector<float16_t, 2> arg_1 = (float16_t(4.0h)).xx;
+  vector<float16_t, 2> arg_2 = (float16_t(3.0h)).xx;
+  vector<float16_t, 2> res = smoothstep(arg_0, arg_1, arg_2);
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store<vector<float16_t, 2> >(0u, smoothstep_12c031());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store<vector<float16_t, 2> >(0u, smoothstep_12c031());
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = smoothstep_12c031();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
diff --git a/test/tint/builtins/gen/var/smoothstep/12c031.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/smoothstep/12c031.wgsl.expected.ir.fxc.hlsl
index 0ba40c6..6a1529a 100644
--- a/test/tint/builtins/gen/var/smoothstep/12c031.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/smoothstep/12c031.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,50 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct VertexOutput {
+  float4 pos;
+  vector<float16_t, 2> prevent_dce;
+};
+
+struct vertex_main_outputs {
+  nointerpolation vector<float16_t, 2> VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+vector<float16_t, 2> smoothstep_12c031() {
+  vector<float16_t, 2> arg_0 = (float16_t(2.0h)).xx;
+  vector<float16_t, 2> arg_1 = (float16_t(4.0h)).xx;
+  vector<float16_t, 2> arg_2 = (float16_t(3.0h)).xx;
+  vector<float16_t, 2> res = smoothstep(arg_0, arg_1, arg_2);
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store<vector<float16_t, 2> >(0u, smoothstep_12c031());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store<vector<float16_t, 2> >(0u, smoothstep_12c031());
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = smoothstep_12c031();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
+FXC validation failure:
+c:\src\dawn\Shader@0x000002991A805A30(3,10-18): error X3000: syntax error: unexpected token 'float16_t'
+
diff --git a/test/tint/builtins/gen/var/smoothstep/392c19.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/smoothstep/392c19.wgsl.expected.ir.dxc.hlsl
index 0ba40c6..d9ef736 100644
--- a/test/tint/builtins/gen/var/smoothstep/392c19.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/smoothstep/392c19.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,45 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  float2 prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation float2 VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+float2 smoothstep_392c19() {
+  float2 arg_0 = (2.0f).xx;
+  float2 arg_1 = (4.0f).xx;
+  float2 arg_2 = (3.0f).xx;
+  float2 res = smoothstep(arg_0, arg_1, arg_2);
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store2(0u, asuint(smoothstep_392c19()));
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store2(0u, asuint(smoothstep_392c19()));
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = smoothstep_392c19();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
diff --git a/test/tint/builtins/gen/var/smoothstep/392c19.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/smoothstep/392c19.wgsl.expected.ir.fxc.hlsl
index 0ba40c6..d9ef736 100644
--- a/test/tint/builtins/gen/var/smoothstep/392c19.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/smoothstep/392c19.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,45 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  float2 prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation float2 VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+float2 smoothstep_392c19() {
+  float2 arg_0 = (2.0f).xx;
+  float2 arg_1 = (4.0f).xx;
+  float2 arg_2 = (3.0f).xx;
+  float2 res = smoothstep(arg_0, arg_1, arg_2);
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store2(0u, asuint(smoothstep_392c19()));
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store2(0u, asuint(smoothstep_392c19()));
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = smoothstep_392c19();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
diff --git a/test/tint/builtins/gen/var/smoothstep/40864c.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/smoothstep/40864c.wgsl.expected.ir.dxc.hlsl
index 0ba40c6..3f4e78a 100644
--- a/test/tint/builtins/gen/var/smoothstep/40864c.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/smoothstep/40864c.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,45 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  float4 prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation float4 VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+float4 smoothstep_40864c() {
+  float4 arg_0 = (2.0f).xxxx;
+  float4 arg_1 = (4.0f).xxxx;
+  float4 arg_2 = (3.0f).xxxx;
+  float4 res = smoothstep(arg_0, arg_1, arg_2);
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store4(0u, asuint(smoothstep_40864c()));
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store4(0u, asuint(smoothstep_40864c()));
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = smoothstep_40864c();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
diff --git a/test/tint/builtins/gen/var/smoothstep/40864c.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/smoothstep/40864c.wgsl.expected.ir.fxc.hlsl
index 0ba40c6..3f4e78a 100644
--- a/test/tint/builtins/gen/var/smoothstep/40864c.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/smoothstep/40864c.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,45 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  float4 prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation float4 VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+float4 smoothstep_40864c() {
+  float4 arg_0 = (2.0f).xxxx;
+  float4 arg_1 = (4.0f).xxxx;
+  float4 arg_2 = (3.0f).xxxx;
+  float4 res = smoothstep(arg_0, arg_1, arg_2);
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store4(0u, asuint(smoothstep_40864c()));
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store4(0u, asuint(smoothstep_40864c()));
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = smoothstep_40864c();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
diff --git a/test/tint/builtins/gen/var/smoothstep/586e12.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/smoothstep/586e12.wgsl.expected.ir.dxc.hlsl
index 0ba40c6..3470364 100644
--- a/test/tint/builtins/gen/var/smoothstep/586e12.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/smoothstep/586e12.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,45 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  float16_t prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation float16_t VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+float16_t smoothstep_586e12() {
+  float16_t arg_0 = float16_t(2.0h);
+  float16_t arg_1 = float16_t(4.0h);
+  float16_t arg_2 = float16_t(3.0h);
+  float16_t res = smoothstep(arg_0, arg_1, arg_2);
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store<float16_t>(0u, smoothstep_586e12());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store<float16_t>(0u, smoothstep_586e12());
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = smoothstep_586e12();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
diff --git a/test/tint/builtins/gen/var/smoothstep/586e12.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/smoothstep/586e12.wgsl.expected.ir.fxc.hlsl
index 0ba40c6..7a68b4b 100644
--- a/test/tint/builtins/gen/var/smoothstep/586e12.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/smoothstep/586e12.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,50 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct VertexOutput {
+  float4 pos;
+  float16_t prevent_dce;
+};
+
+struct vertex_main_outputs {
+  nointerpolation float16_t VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+float16_t smoothstep_586e12() {
+  float16_t arg_0 = float16_t(2.0h);
+  float16_t arg_1 = float16_t(4.0h);
+  float16_t arg_2 = float16_t(3.0h);
+  float16_t res = smoothstep(arg_0, arg_1, arg_2);
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store<float16_t>(0u, smoothstep_586e12());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store<float16_t>(0u, smoothstep_586e12());
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = smoothstep_586e12();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
+FXC validation failure:
+c:\src\dawn\Shader@0x000002EB1967CB70(3,3-11): error X3000: unrecognized identifier 'float16_t'
+
diff --git a/test/tint/builtins/gen/var/smoothstep/66e4bd.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/smoothstep/66e4bd.wgsl.expected.ir.dxc.hlsl
index 0ba40c6..0e1e440 100644
--- a/test/tint/builtins/gen/var/smoothstep/66e4bd.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/smoothstep/66e4bd.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,36 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+void smoothstep_66e4bd() {
+  float3 res = (0.5f).xxx;
+}
+
+void fragment_main() {
+  smoothstep_66e4bd();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  smoothstep_66e4bd();
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  smoothstep_66e4bd();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  vertex_main_outputs v_2 = {v_1.pos};
+  return v_2;
+}
+
diff --git a/test/tint/builtins/gen/var/smoothstep/66e4bd.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/smoothstep/66e4bd.wgsl.expected.ir.fxc.hlsl
index 0ba40c6..0e1e440 100644
--- a/test/tint/builtins/gen/var/smoothstep/66e4bd.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/smoothstep/66e4bd.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,36 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+void smoothstep_66e4bd() {
+  float3 res = (0.5f).xxx;
+}
+
+void fragment_main() {
+  smoothstep_66e4bd();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  smoothstep_66e4bd();
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  smoothstep_66e4bd();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  vertex_main_outputs v_2 = {v_1.pos};
+  return v_2;
+}
+
diff --git a/test/tint/builtins/gen/var/smoothstep/6c4975.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/smoothstep/6c4975.wgsl.expected.ir.dxc.hlsl
index 0ba40c6..c94c88b 100644
--- a/test/tint/builtins/gen/var/smoothstep/6c4975.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/smoothstep/6c4975.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,45 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  float prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation float VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+float smoothstep_6c4975() {
+  float arg_0 = 2.0f;
+  float arg_1 = 4.0f;
+  float arg_2 = 3.0f;
+  float res = smoothstep(arg_0, arg_1, arg_2);
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store(0u, asuint(smoothstep_6c4975()));
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store(0u, asuint(smoothstep_6c4975()));
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = smoothstep_6c4975();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
diff --git a/test/tint/builtins/gen/var/smoothstep/6c4975.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/smoothstep/6c4975.wgsl.expected.ir.fxc.hlsl
index 0ba40c6..c94c88b 100644
--- a/test/tint/builtins/gen/var/smoothstep/6c4975.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/smoothstep/6c4975.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,45 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  float prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation float VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+float smoothstep_6c4975() {
+  float arg_0 = 2.0f;
+  float arg_1 = 4.0f;
+  float arg_2 = 3.0f;
+  float res = smoothstep(arg_0, arg_1, arg_2);
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store(0u, asuint(smoothstep_6c4975()));
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store(0u, asuint(smoothstep_6c4975()));
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = smoothstep_6c4975();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
diff --git a/test/tint/builtins/gen/var/smoothstep/6e7a74.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/smoothstep/6e7a74.wgsl.expected.ir.dxc.hlsl
index 0ba40c6..cab1ac7 100644
--- a/test/tint/builtins/gen/var/smoothstep/6e7a74.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/smoothstep/6e7a74.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,45 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  vector<float16_t, 3> prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation vector<float16_t, 3> VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+vector<float16_t, 3> smoothstep_6e7a74() {
+  vector<float16_t, 3> arg_0 = (float16_t(2.0h)).xxx;
+  vector<float16_t, 3> arg_1 = (float16_t(4.0h)).xxx;
+  vector<float16_t, 3> arg_2 = (float16_t(3.0h)).xxx;
+  vector<float16_t, 3> res = smoothstep(arg_0, arg_1, arg_2);
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store<vector<float16_t, 3> >(0u, smoothstep_6e7a74());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store<vector<float16_t, 3> >(0u, smoothstep_6e7a74());
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = smoothstep_6e7a74();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
diff --git a/test/tint/builtins/gen/var/smoothstep/6e7a74.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/smoothstep/6e7a74.wgsl.expected.ir.fxc.hlsl
index 0ba40c6..6bd12e3 100644
--- a/test/tint/builtins/gen/var/smoothstep/6e7a74.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/smoothstep/6e7a74.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,50 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct VertexOutput {
+  float4 pos;
+  vector<float16_t, 3> prevent_dce;
+};
+
+struct vertex_main_outputs {
+  nointerpolation vector<float16_t, 3> VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+vector<float16_t, 3> smoothstep_6e7a74() {
+  vector<float16_t, 3> arg_0 = (float16_t(2.0h)).xxx;
+  vector<float16_t, 3> arg_1 = (float16_t(4.0h)).xxx;
+  vector<float16_t, 3> arg_2 = (float16_t(3.0h)).xxx;
+  vector<float16_t, 3> res = smoothstep(arg_0, arg_1, arg_2);
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store<vector<float16_t, 3> >(0u, smoothstep_6e7a74());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store<vector<float16_t, 3> >(0u, smoothstep_6e7a74());
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = smoothstep_6e7a74();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
+FXC validation failure:
+c:\src\dawn\Shader@0x0000018CE01DC190(3,10-18): error X3000: syntax error: unexpected token 'float16_t'
+
diff --git a/test/tint/builtins/gen/var/smoothstep/a80fff.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/smoothstep/a80fff.wgsl.expected.ir.dxc.hlsl
index 0ba40c6..fb4c981 100644
--- a/test/tint/builtins/gen/var/smoothstep/a80fff.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/smoothstep/a80fff.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,36 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+void smoothstep_a80fff() {
+  float res = 0.5f;
+}
+
+void fragment_main() {
+  smoothstep_a80fff();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  smoothstep_a80fff();
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  smoothstep_a80fff();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  vertex_main_outputs v_2 = {v_1.pos};
+  return v_2;
+}
+
diff --git a/test/tint/builtins/gen/var/smoothstep/a80fff.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/smoothstep/a80fff.wgsl.expected.ir.fxc.hlsl
index 0ba40c6..fb4c981 100644
--- a/test/tint/builtins/gen/var/smoothstep/a80fff.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/smoothstep/a80fff.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,36 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+void smoothstep_a80fff() {
+  float res = 0.5f;
+}
+
+void fragment_main() {
+  smoothstep_a80fff();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  smoothstep_a80fff();
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  smoothstep_a80fff();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  vertex_main_outputs v_2 = {v_1.pos};
+  return v_2;
+}
+
diff --git a/test/tint/builtins/gen/var/smoothstep/aad1db.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/smoothstep/aad1db.wgsl.expected.ir.dxc.hlsl
index 0ba40c6..5124fb6 100644
--- a/test/tint/builtins/gen/var/smoothstep/aad1db.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/smoothstep/aad1db.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,45 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  float3 prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation float3 VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+float3 smoothstep_aad1db() {
+  float3 arg_0 = (2.0f).xxx;
+  float3 arg_1 = (4.0f).xxx;
+  float3 arg_2 = (3.0f).xxx;
+  float3 res = smoothstep(arg_0, arg_1, arg_2);
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store3(0u, asuint(smoothstep_aad1db()));
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store3(0u, asuint(smoothstep_aad1db()));
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = smoothstep_aad1db();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
diff --git a/test/tint/builtins/gen/var/smoothstep/aad1db.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/smoothstep/aad1db.wgsl.expected.ir.fxc.hlsl
index 0ba40c6..5124fb6 100644
--- a/test/tint/builtins/gen/var/smoothstep/aad1db.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/smoothstep/aad1db.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,45 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  float3 prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation float3 VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+float3 smoothstep_aad1db() {
+  float3 arg_0 = (2.0f).xxx;
+  float3 arg_1 = (4.0f).xxx;
+  float3 arg_2 = (3.0f).xxx;
+  float3 res = smoothstep(arg_0, arg_1, arg_2);
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store3(0u, asuint(smoothstep_aad1db()));
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store3(0u, asuint(smoothstep_aad1db()));
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = smoothstep_aad1db();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
diff --git a/test/tint/builtins/gen/var/smoothstep/c43ebd.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/smoothstep/c43ebd.wgsl.expected.ir.dxc.hlsl
index 0ba40c6..a469ca6 100644
--- a/test/tint/builtins/gen/var/smoothstep/c43ebd.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/smoothstep/c43ebd.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,45 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  vector<float16_t, 4> prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation vector<float16_t, 4> VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+vector<float16_t, 4> smoothstep_c43ebd() {
+  vector<float16_t, 4> arg_0 = (float16_t(2.0h)).xxxx;
+  vector<float16_t, 4> arg_1 = (float16_t(4.0h)).xxxx;
+  vector<float16_t, 4> arg_2 = (float16_t(3.0h)).xxxx;
+  vector<float16_t, 4> res = smoothstep(arg_0, arg_1, arg_2);
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store<vector<float16_t, 4> >(0u, smoothstep_c43ebd());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store<vector<float16_t, 4> >(0u, smoothstep_c43ebd());
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = smoothstep_c43ebd();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
diff --git a/test/tint/builtins/gen/var/smoothstep/c43ebd.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/smoothstep/c43ebd.wgsl.expected.ir.fxc.hlsl
index 0ba40c6..55b6750 100644
--- a/test/tint/builtins/gen/var/smoothstep/c43ebd.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/smoothstep/c43ebd.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,50 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct VertexOutput {
+  float4 pos;
+  vector<float16_t, 4> prevent_dce;
+};
+
+struct vertex_main_outputs {
+  nointerpolation vector<float16_t, 4> VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+vector<float16_t, 4> smoothstep_c43ebd() {
+  vector<float16_t, 4> arg_0 = (float16_t(2.0h)).xxxx;
+  vector<float16_t, 4> arg_1 = (float16_t(4.0h)).xxxx;
+  vector<float16_t, 4> arg_2 = (float16_t(3.0h)).xxxx;
+  vector<float16_t, 4> res = smoothstep(arg_0, arg_1, arg_2);
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store<vector<float16_t, 4> >(0u, smoothstep_c43ebd());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store<vector<float16_t, 4> >(0u, smoothstep_c43ebd());
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = smoothstep_c43ebd();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
+FXC validation failure:
+c:\src\dawn\Shader@0x0000023775867E20(3,10-18): error X3000: syntax error: unexpected token 'float16_t'
+
diff --git a/test/tint/builtins/gen/var/sqrt/072192.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/sqrt/072192.wgsl.expected.ir.dxc.hlsl
index 0ba40c6..d10b9ba 100644
--- a/test/tint/builtins/gen/var/sqrt/072192.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/sqrt/072192.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,36 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+void sqrt_072192() {
+  float3 res = (1.0f).xxx;
+}
+
+void fragment_main() {
+  sqrt_072192();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  sqrt_072192();
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  sqrt_072192();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  vertex_main_outputs v_2 = {v_1.pos};
+  return v_2;
+}
+
diff --git a/test/tint/builtins/gen/var/sqrt/072192.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/sqrt/072192.wgsl.expected.ir.fxc.hlsl
index 0ba40c6..d10b9ba 100644
--- a/test/tint/builtins/gen/var/sqrt/072192.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/sqrt/072192.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,36 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+void sqrt_072192() {
+  float3 res = (1.0f).xxx;
+}
+
+void fragment_main() {
+  sqrt_072192();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  sqrt_072192();
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  sqrt_072192();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  vertex_main_outputs v_2 = {v_1.pos};
+  return v_2;
+}
+
diff --git a/test/tint/builtins/gen/var/sqrt/20c74e.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/sqrt/20c74e.wgsl.expected.ir.dxc.hlsl
index 0ba40c6..98d3642 100644
--- a/test/tint/builtins/gen/var/sqrt/20c74e.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/sqrt/20c74e.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,43 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  float prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation float VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+float sqrt_20c74e() {
+  float arg_0 = 1.0f;
+  float res = sqrt(arg_0);
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store(0u, asuint(sqrt_20c74e()));
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store(0u, asuint(sqrt_20c74e()));
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = sqrt_20c74e();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
diff --git a/test/tint/builtins/gen/var/sqrt/20c74e.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/sqrt/20c74e.wgsl.expected.ir.fxc.hlsl
index 0ba40c6..98d3642 100644
--- a/test/tint/builtins/gen/var/sqrt/20c74e.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/sqrt/20c74e.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,43 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  float prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation float VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+float sqrt_20c74e() {
+  float arg_0 = 1.0f;
+  float res = sqrt(arg_0);
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store(0u, asuint(sqrt_20c74e()));
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store(0u, asuint(sqrt_20c74e()));
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = sqrt_20c74e();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
diff --git a/test/tint/builtins/gen/var/sqrt/4ac2c5.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/sqrt/4ac2c5.wgsl.expected.ir.dxc.hlsl
index 0ba40c6..44d1423 100644
--- a/test/tint/builtins/gen/var/sqrt/4ac2c5.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/sqrt/4ac2c5.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,36 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+void sqrt_4ac2c5() {
+  float4 res = (1.0f).xxxx;
+}
+
+void fragment_main() {
+  sqrt_4ac2c5();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  sqrt_4ac2c5();
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  sqrt_4ac2c5();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  vertex_main_outputs v_2 = {v_1.pos};
+  return v_2;
+}
+
diff --git a/test/tint/builtins/gen/var/sqrt/4ac2c5.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/sqrt/4ac2c5.wgsl.expected.ir.fxc.hlsl
index 0ba40c6..44d1423 100644
--- a/test/tint/builtins/gen/var/sqrt/4ac2c5.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/sqrt/4ac2c5.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,36 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+void sqrt_4ac2c5() {
+  float4 res = (1.0f).xxxx;
+}
+
+void fragment_main() {
+  sqrt_4ac2c5();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  sqrt_4ac2c5();
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  sqrt_4ac2c5();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  vertex_main_outputs v_2 = {v_1.pos};
+  return v_2;
+}
+
diff --git a/test/tint/builtins/gen/var/sqrt/803d1c.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/sqrt/803d1c.wgsl.expected.ir.dxc.hlsl
index 0ba40c6..8a8b2d7 100644
--- a/test/tint/builtins/gen/var/sqrt/803d1c.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/sqrt/803d1c.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,43 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  vector<float16_t, 4> prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation vector<float16_t, 4> VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+vector<float16_t, 4> sqrt_803d1c() {
+  vector<float16_t, 4> arg_0 = (float16_t(1.0h)).xxxx;
+  vector<float16_t, 4> res = sqrt(arg_0);
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store<vector<float16_t, 4> >(0u, sqrt_803d1c());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store<vector<float16_t, 4> >(0u, sqrt_803d1c());
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = sqrt_803d1c();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
diff --git a/test/tint/builtins/gen/var/sqrt/803d1c.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/sqrt/803d1c.wgsl.expected.ir.fxc.hlsl
index 0ba40c6..0feec79 100644
--- a/test/tint/builtins/gen/var/sqrt/803d1c.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/sqrt/803d1c.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,48 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct VertexOutput {
+  float4 pos;
+  vector<float16_t, 4> prevent_dce;
+};
+
+struct vertex_main_outputs {
+  nointerpolation vector<float16_t, 4> VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+vector<float16_t, 4> sqrt_803d1c() {
+  vector<float16_t, 4> arg_0 = (float16_t(1.0h)).xxxx;
+  vector<float16_t, 4> res = sqrt(arg_0);
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store<vector<float16_t, 4> >(0u, sqrt_803d1c());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store<vector<float16_t, 4> >(0u, sqrt_803d1c());
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = sqrt_803d1c();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
+FXC validation failure:
+c:\src\dawn\Shader@0x0000022ABDA78180(3,10-18): error X3000: syntax error: unexpected token 'float16_t'
+
diff --git a/test/tint/builtins/gen/var/sqrt/895a0c.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/sqrt/895a0c.wgsl.expected.ir.dxc.hlsl
index 0ba40c6..dcdc510 100644
--- a/test/tint/builtins/gen/var/sqrt/895a0c.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/sqrt/895a0c.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,43 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  vector<float16_t, 3> prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation vector<float16_t, 3> VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+vector<float16_t, 3> sqrt_895a0c() {
+  vector<float16_t, 3> arg_0 = (float16_t(1.0h)).xxx;
+  vector<float16_t, 3> res = sqrt(arg_0);
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store<vector<float16_t, 3> >(0u, sqrt_895a0c());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store<vector<float16_t, 3> >(0u, sqrt_895a0c());
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = sqrt_895a0c();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
diff --git a/test/tint/builtins/gen/var/sqrt/895a0c.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/sqrt/895a0c.wgsl.expected.ir.fxc.hlsl
index 0ba40c6..0ca4b04 100644
--- a/test/tint/builtins/gen/var/sqrt/895a0c.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/sqrt/895a0c.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,48 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct VertexOutput {
+  float4 pos;
+  vector<float16_t, 3> prevent_dce;
+};
+
+struct vertex_main_outputs {
+  nointerpolation vector<float16_t, 3> VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+vector<float16_t, 3> sqrt_895a0c() {
+  vector<float16_t, 3> arg_0 = (float16_t(1.0h)).xxx;
+  vector<float16_t, 3> res = sqrt(arg_0);
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store<vector<float16_t, 3> >(0u, sqrt_895a0c());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store<vector<float16_t, 3> >(0u, sqrt_895a0c());
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = sqrt_895a0c();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
+FXC validation failure:
+c:\src\dawn\Shader@0x000001AACA0F5DD0(3,10-18): error X3000: syntax error: unexpected token 'float16_t'
+
diff --git a/test/tint/builtins/gen/var/sqrt/8c7024.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/sqrt/8c7024.wgsl.expected.ir.dxc.hlsl
index 0ba40c6..98fae64 100644
--- a/test/tint/builtins/gen/var/sqrt/8c7024.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/sqrt/8c7024.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,43 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  float2 prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation float2 VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+float2 sqrt_8c7024() {
+  float2 arg_0 = (1.0f).xx;
+  float2 res = sqrt(arg_0);
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store2(0u, asuint(sqrt_8c7024()));
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store2(0u, asuint(sqrt_8c7024()));
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = sqrt_8c7024();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
diff --git a/test/tint/builtins/gen/var/sqrt/8c7024.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/sqrt/8c7024.wgsl.expected.ir.fxc.hlsl
index 0ba40c6..98fae64 100644
--- a/test/tint/builtins/gen/var/sqrt/8c7024.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/sqrt/8c7024.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,43 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  float2 prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation float2 VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+float2 sqrt_8c7024() {
+  float2 arg_0 = (1.0f).xx;
+  float2 res = sqrt(arg_0);
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store2(0u, asuint(sqrt_8c7024()));
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store2(0u, asuint(sqrt_8c7024()));
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = sqrt_8c7024();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
diff --git a/test/tint/builtins/gen/var/sqrt/8da177.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/sqrt/8da177.wgsl.expected.ir.dxc.hlsl
index 0ba40c6..8185719 100644
--- a/test/tint/builtins/gen/var/sqrt/8da177.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/sqrt/8da177.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,36 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+void sqrt_8da177() {
+  float res = 1.0f;
+}
+
+void fragment_main() {
+  sqrt_8da177();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  sqrt_8da177();
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  sqrt_8da177();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  vertex_main_outputs v_2 = {v_1.pos};
+  return v_2;
+}
+
diff --git a/test/tint/builtins/gen/var/sqrt/8da177.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/sqrt/8da177.wgsl.expected.ir.fxc.hlsl
index 0ba40c6..8185719 100644
--- a/test/tint/builtins/gen/var/sqrt/8da177.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/sqrt/8da177.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,36 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+void sqrt_8da177() {
+  float res = 1.0f;
+}
+
+void fragment_main() {
+  sqrt_8da177();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  sqrt_8da177();
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  sqrt_8da177();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  vertex_main_outputs v_2 = {v_1.pos};
+  return v_2;
+}
+
diff --git a/test/tint/builtins/gen/var/sqrt/9c5cbe.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/sqrt/9c5cbe.wgsl.expected.ir.dxc.hlsl
index 0ba40c6..43b28cc 100644
--- a/test/tint/builtins/gen/var/sqrt/9c5cbe.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/sqrt/9c5cbe.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,36 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+void sqrt_9c5cbe() {
+  float2 res = (1.0f).xx;
+}
+
+void fragment_main() {
+  sqrt_9c5cbe();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  sqrt_9c5cbe();
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  sqrt_9c5cbe();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  vertex_main_outputs v_2 = {v_1.pos};
+  return v_2;
+}
+
diff --git a/test/tint/builtins/gen/var/sqrt/9c5cbe.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/sqrt/9c5cbe.wgsl.expected.ir.fxc.hlsl
index 0ba40c6..43b28cc 100644
--- a/test/tint/builtins/gen/var/sqrt/9c5cbe.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/sqrt/9c5cbe.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,36 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+void sqrt_9c5cbe() {
+  float2 res = (1.0f).xx;
+}
+
+void fragment_main() {
+  sqrt_9c5cbe();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  sqrt_9c5cbe();
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  sqrt_9c5cbe();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  vertex_main_outputs v_2 = {v_1.pos};
+  return v_2;
+}
+
diff --git a/test/tint/builtins/gen/var/sqrt/aa0d7a.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/sqrt/aa0d7a.wgsl.expected.ir.dxc.hlsl
index 0ba40c6..769a804 100644
--- a/test/tint/builtins/gen/var/sqrt/aa0d7a.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/sqrt/aa0d7a.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,43 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  float4 prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation float4 VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+float4 sqrt_aa0d7a() {
+  float4 arg_0 = (1.0f).xxxx;
+  float4 res = sqrt(arg_0);
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store4(0u, asuint(sqrt_aa0d7a()));
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store4(0u, asuint(sqrt_aa0d7a()));
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = sqrt_aa0d7a();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
diff --git a/test/tint/builtins/gen/var/sqrt/aa0d7a.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/sqrt/aa0d7a.wgsl.expected.ir.fxc.hlsl
index 0ba40c6..769a804 100644
--- a/test/tint/builtins/gen/var/sqrt/aa0d7a.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/sqrt/aa0d7a.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,43 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  float4 prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation float4 VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+float4 sqrt_aa0d7a() {
+  float4 arg_0 = (1.0f).xxxx;
+  float4 res = sqrt(arg_0);
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store4(0u, asuint(sqrt_aa0d7a()));
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store4(0u, asuint(sqrt_aa0d7a()));
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = sqrt_aa0d7a();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
diff --git a/test/tint/builtins/gen/var/sqrt/d9ab4d.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/sqrt/d9ab4d.wgsl.expected.ir.dxc.hlsl
index 0ba40c6..5e345f1 100644
--- a/test/tint/builtins/gen/var/sqrt/d9ab4d.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/sqrt/d9ab4d.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,43 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  vector<float16_t, 2> prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation vector<float16_t, 2> VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+vector<float16_t, 2> sqrt_d9ab4d() {
+  vector<float16_t, 2> arg_0 = (float16_t(1.0h)).xx;
+  vector<float16_t, 2> res = sqrt(arg_0);
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store<vector<float16_t, 2> >(0u, sqrt_d9ab4d());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store<vector<float16_t, 2> >(0u, sqrt_d9ab4d());
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = sqrt_d9ab4d();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
diff --git a/test/tint/builtins/gen/var/sqrt/d9ab4d.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/sqrt/d9ab4d.wgsl.expected.ir.fxc.hlsl
index 0ba40c6..6dd656c 100644
--- a/test/tint/builtins/gen/var/sqrt/d9ab4d.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/sqrt/d9ab4d.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,48 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct VertexOutput {
+  float4 pos;
+  vector<float16_t, 2> prevent_dce;
+};
+
+struct vertex_main_outputs {
+  nointerpolation vector<float16_t, 2> VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+vector<float16_t, 2> sqrt_d9ab4d() {
+  vector<float16_t, 2> arg_0 = (float16_t(1.0h)).xx;
+  vector<float16_t, 2> res = sqrt(arg_0);
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store<vector<float16_t, 2> >(0u, sqrt_d9ab4d());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store<vector<float16_t, 2> >(0u, sqrt_d9ab4d());
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = sqrt_d9ab4d();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
+FXC validation failure:
+c:\src\dawn\Shader@0x000001A910EBC4B0(3,10-18): error X3000: syntax error: unexpected token 'float16_t'
+
diff --git a/test/tint/builtins/gen/var/sqrt/ec33e9.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/sqrt/ec33e9.wgsl.expected.ir.dxc.hlsl
index 0ba40c6..c01aa99 100644
--- a/test/tint/builtins/gen/var/sqrt/ec33e9.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/sqrt/ec33e9.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,43 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  float16_t prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation float16_t VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+float16_t sqrt_ec33e9() {
+  float16_t arg_0 = float16_t(1.0h);
+  float16_t res = sqrt(arg_0);
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store<float16_t>(0u, sqrt_ec33e9());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store<float16_t>(0u, sqrt_ec33e9());
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = sqrt_ec33e9();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
diff --git a/test/tint/builtins/gen/var/sqrt/ec33e9.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/sqrt/ec33e9.wgsl.expected.ir.fxc.hlsl
index 0ba40c6..24f9ddc 100644
--- a/test/tint/builtins/gen/var/sqrt/ec33e9.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/sqrt/ec33e9.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,48 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct VertexOutput {
+  float4 pos;
+  float16_t prevent_dce;
+};
+
+struct vertex_main_outputs {
+  nointerpolation float16_t VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+float16_t sqrt_ec33e9() {
+  float16_t arg_0 = float16_t(1.0h);
+  float16_t res = sqrt(arg_0);
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store<float16_t>(0u, sqrt_ec33e9());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store<float16_t>(0u, sqrt_ec33e9());
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = sqrt_ec33e9();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
+FXC validation failure:
+c:\src\dawn\Shader@0x0000021B107E1470(3,3-11): error X3000: unrecognized identifier 'float16_t'
+
diff --git a/test/tint/builtins/gen/var/sqrt/f8c59a.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/sqrt/f8c59a.wgsl.expected.ir.dxc.hlsl
index 0ba40c6..e6d8b46 100644
--- a/test/tint/builtins/gen/var/sqrt/f8c59a.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/sqrt/f8c59a.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,43 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  float3 prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation float3 VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+float3 sqrt_f8c59a() {
+  float3 arg_0 = (1.0f).xxx;
+  float3 res = sqrt(arg_0);
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store3(0u, asuint(sqrt_f8c59a()));
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store3(0u, asuint(sqrt_f8c59a()));
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = sqrt_f8c59a();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
diff --git a/test/tint/builtins/gen/var/sqrt/f8c59a.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/sqrt/f8c59a.wgsl.expected.ir.fxc.hlsl
index 0ba40c6..e6d8b46 100644
--- a/test/tint/builtins/gen/var/sqrt/f8c59a.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/sqrt/f8c59a.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,43 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  float3 prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation float3 VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+float3 sqrt_f8c59a() {
+  float3 arg_0 = (1.0f).xxx;
+  float3 res = sqrt(arg_0);
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store3(0u, asuint(sqrt_f8c59a()));
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store3(0u, asuint(sqrt_f8c59a()));
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = sqrt_f8c59a();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
diff --git a/test/tint/builtins/gen/var/step/07cb06.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/step/07cb06.wgsl.expected.ir.dxc.hlsl
index 0ba40c6..9f45da6 100644
--- a/test/tint/builtins/gen/var/step/07cb06.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/step/07cb06.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,44 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  vector<float16_t, 2> prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation vector<float16_t, 2> VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+vector<float16_t, 2> step_07cb06() {
+  vector<float16_t, 2> arg_0 = (float16_t(1.0h)).xx;
+  vector<float16_t, 2> arg_1 = (float16_t(1.0h)).xx;
+  vector<float16_t, 2> res = step(arg_0, arg_1);
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store<vector<float16_t, 2> >(0u, step_07cb06());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store<vector<float16_t, 2> >(0u, step_07cb06());
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = step_07cb06();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
diff --git a/test/tint/builtins/gen/var/step/07cb06.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/step/07cb06.wgsl.expected.ir.fxc.hlsl
index 0ba40c6..d612b9c 100644
--- a/test/tint/builtins/gen/var/step/07cb06.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/step/07cb06.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,49 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct VertexOutput {
+  float4 pos;
+  vector<float16_t, 2> prevent_dce;
+};
+
+struct vertex_main_outputs {
+  nointerpolation vector<float16_t, 2> VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+vector<float16_t, 2> step_07cb06() {
+  vector<float16_t, 2> arg_0 = (float16_t(1.0h)).xx;
+  vector<float16_t, 2> arg_1 = (float16_t(1.0h)).xx;
+  vector<float16_t, 2> res = step(arg_0, arg_1);
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store<vector<float16_t, 2> >(0u, step_07cb06());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store<vector<float16_t, 2> >(0u, step_07cb06());
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = step_07cb06();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
+FXC validation failure:
+c:\src\dawn\Shader@0x000001D2B25FDE20(3,10-18): error X3000: syntax error: unexpected token 'float16_t'
+
diff --git a/test/tint/builtins/gen/var/step/0b073b.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/step/0b073b.wgsl.expected.ir.dxc.hlsl
index 0ba40c6..50a8d7f 100644
--- a/test/tint/builtins/gen/var/step/0b073b.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/step/0b073b.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,44 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  float prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation float VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+float step_0b073b() {
+  float arg_0 = 1.0f;
+  float arg_1 = 1.0f;
+  float res = step(arg_0, arg_1);
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store(0u, asuint(step_0b073b()));
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store(0u, asuint(step_0b073b()));
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = step_0b073b();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
diff --git a/test/tint/builtins/gen/var/step/0b073b.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/step/0b073b.wgsl.expected.ir.fxc.hlsl
index 0ba40c6..50a8d7f 100644
--- a/test/tint/builtins/gen/var/step/0b073b.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/step/0b073b.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,44 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  float prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation float VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+float step_0b073b() {
+  float arg_0 = 1.0f;
+  float arg_1 = 1.0f;
+  float res = step(arg_0, arg_1);
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store(0u, asuint(step_0b073b()));
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store(0u, asuint(step_0b073b()));
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = step_0b073b();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
diff --git a/test/tint/builtins/gen/var/step/19accd.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/step/19accd.wgsl.expected.ir.dxc.hlsl
index 0ba40c6..8e2ad40 100644
--- a/test/tint/builtins/gen/var/step/19accd.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/step/19accd.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,44 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  float2 prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation float2 VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+float2 step_19accd() {
+  float2 arg_0 = (1.0f).xx;
+  float2 arg_1 = (1.0f).xx;
+  float2 res = step(arg_0, arg_1);
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store2(0u, asuint(step_19accd()));
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store2(0u, asuint(step_19accd()));
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = step_19accd();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
diff --git a/test/tint/builtins/gen/var/step/19accd.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/step/19accd.wgsl.expected.ir.fxc.hlsl
index 0ba40c6..8e2ad40 100644
--- a/test/tint/builtins/gen/var/step/19accd.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/step/19accd.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,44 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  float2 prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation float2 VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+float2 step_19accd() {
+  float2 arg_0 = (1.0f).xx;
+  float2 arg_1 = (1.0f).xx;
+  float2 res = step(arg_0, arg_1);
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store2(0u, asuint(step_19accd()));
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store2(0u, asuint(step_19accd()));
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = step_19accd();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
diff --git a/test/tint/builtins/gen/var/step/334303.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/step/334303.wgsl.expected.ir.dxc.hlsl
index 0ba40c6..346b843 100644
--- a/test/tint/builtins/gen/var/step/334303.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/step/334303.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,44 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  float3 prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation float3 VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+float3 step_334303() {
+  float3 arg_0 = (1.0f).xxx;
+  float3 arg_1 = (1.0f).xxx;
+  float3 res = step(arg_0, arg_1);
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store3(0u, asuint(step_334303()));
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store3(0u, asuint(step_334303()));
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = step_334303();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
diff --git a/test/tint/builtins/gen/var/step/334303.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/step/334303.wgsl.expected.ir.fxc.hlsl
index 0ba40c6..346b843 100644
--- a/test/tint/builtins/gen/var/step/334303.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/step/334303.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,44 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  float3 prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation float3 VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+float3 step_334303() {
+  float3 arg_0 = (1.0f).xxx;
+  float3 arg_1 = (1.0f).xxx;
+  float3 res = step(arg_0, arg_1);
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store3(0u, asuint(step_334303()));
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store3(0u, asuint(step_334303()));
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = step_334303();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
diff --git a/test/tint/builtins/gen/var/step/38cd79.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/step/38cd79.wgsl.expected.ir.dxc.hlsl
index 0ba40c6..5525039 100644
--- a/test/tint/builtins/gen/var/step/38cd79.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/step/38cd79.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,36 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+void step_38cd79() {
+  float4 res = (1.0f).xxxx;
+}
+
+void fragment_main() {
+  step_38cd79();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  step_38cd79();
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  step_38cd79();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  vertex_main_outputs v_2 = {v_1.pos};
+  return v_2;
+}
+
diff --git a/test/tint/builtins/gen/var/step/38cd79.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/step/38cd79.wgsl.expected.ir.fxc.hlsl
index 0ba40c6..5525039 100644
--- a/test/tint/builtins/gen/var/step/38cd79.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/step/38cd79.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,36 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+void step_38cd79() {
+  float4 res = (1.0f).xxxx;
+}
+
+void fragment_main() {
+  step_38cd79();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  step_38cd79();
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  step_38cd79();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  vertex_main_outputs v_2 = {v_1.pos};
+  return v_2;
+}
+
diff --git a/test/tint/builtins/gen/var/step/415879.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/step/415879.wgsl.expected.ir.dxc.hlsl
index 0ba40c6..21e97d0 100644
--- a/test/tint/builtins/gen/var/step/415879.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/step/415879.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,36 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+void step_415879() {
+  float3 res = (1.0f).xxx;
+}
+
+void fragment_main() {
+  step_415879();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  step_415879();
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  step_415879();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  vertex_main_outputs v_2 = {v_1.pos};
+  return v_2;
+}
+
diff --git a/test/tint/builtins/gen/var/step/415879.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/step/415879.wgsl.expected.ir.fxc.hlsl
index 0ba40c6..21e97d0 100644
--- a/test/tint/builtins/gen/var/step/415879.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/step/415879.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,36 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+void step_415879() {
+  float3 res = (1.0f).xxx;
+}
+
+void fragment_main() {
+  step_415879();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  step_415879();
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  step_415879();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  vertex_main_outputs v_2 = {v_1.pos};
+  return v_2;
+}
+
diff --git a/test/tint/builtins/gen/var/step/630d07.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/step/630d07.wgsl.expected.ir.dxc.hlsl
index 0ba40c6..7181339 100644
--- a/test/tint/builtins/gen/var/step/630d07.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/step/630d07.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,44 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  float16_t prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation float16_t VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+float16_t step_630d07() {
+  float16_t arg_0 = float16_t(1.0h);
+  float16_t arg_1 = float16_t(1.0h);
+  float16_t res = step(arg_0, arg_1);
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store<float16_t>(0u, step_630d07());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store<float16_t>(0u, step_630d07());
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = step_630d07();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
diff --git a/test/tint/builtins/gen/var/step/630d07.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/step/630d07.wgsl.expected.ir.fxc.hlsl
index 0ba40c6..ae93bcd 100644
--- a/test/tint/builtins/gen/var/step/630d07.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/step/630d07.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,49 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct VertexOutput {
+  float4 pos;
+  float16_t prevent_dce;
+};
+
+struct vertex_main_outputs {
+  nointerpolation float16_t VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+float16_t step_630d07() {
+  float16_t arg_0 = float16_t(1.0h);
+  float16_t arg_1 = float16_t(1.0h);
+  float16_t res = step(arg_0, arg_1);
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store<float16_t>(0u, step_630d07());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store<float16_t>(0u, step_630d07());
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = step_630d07();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
+FXC validation failure:
+c:\src\dawn\Shader@0x00000269C767C430(3,3-11): error X3000: unrecognized identifier 'float16_t'
+
diff --git a/test/tint/builtins/gen/var/step/7c7e5c.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/step/7c7e5c.wgsl.expected.ir.dxc.hlsl
index 0ba40c6..555d2bc 100644
--- a/test/tint/builtins/gen/var/step/7c7e5c.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/step/7c7e5c.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,36 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+void step_7c7e5c() {
+  float2 res = (1.0f).xx;
+}
+
+void fragment_main() {
+  step_7c7e5c();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  step_7c7e5c();
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  step_7c7e5c();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  vertex_main_outputs v_2 = {v_1.pos};
+  return v_2;
+}
+
diff --git a/test/tint/builtins/gen/var/step/7c7e5c.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/step/7c7e5c.wgsl.expected.ir.fxc.hlsl
index 0ba40c6..555d2bc 100644
--- a/test/tint/builtins/gen/var/step/7c7e5c.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/step/7c7e5c.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,36 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+void step_7c7e5c() {
+  float2 res = (1.0f).xx;
+}
+
+void fragment_main() {
+  step_7c7e5c();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  step_7c7e5c();
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  step_7c7e5c();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  vertex_main_outputs v_2 = {v_1.pos};
+  return v_2;
+}
+
diff --git a/test/tint/builtins/gen/var/step/baa320.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/step/baa320.wgsl.expected.ir.dxc.hlsl
index 0ba40c6..6cfb188 100644
--- a/test/tint/builtins/gen/var/step/baa320.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/step/baa320.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,44 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  vector<float16_t, 4> prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation vector<float16_t, 4> VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+vector<float16_t, 4> step_baa320() {
+  vector<float16_t, 4> arg_0 = (float16_t(1.0h)).xxxx;
+  vector<float16_t, 4> arg_1 = (float16_t(1.0h)).xxxx;
+  vector<float16_t, 4> res = step(arg_0, arg_1);
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store<vector<float16_t, 4> >(0u, step_baa320());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store<vector<float16_t, 4> >(0u, step_baa320());
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = step_baa320();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
diff --git a/test/tint/builtins/gen/var/step/baa320.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/step/baa320.wgsl.expected.ir.fxc.hlsl
index 0ba40c6..5db51e2 100644
--- a/test/tint/builtins/gen/var/step/baa320.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/step/baa320.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,49 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct VertexOutput {
+  float4 pos;
+  vector<float16_t, 4> prevent_dce;
+};
+
+struct vertex_main_outputs {
+  nointerpolation vector<float16_t, 4> VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+vector<float16_t, 4> step_baa320() {
+  vector<float16_t, 4> arg_0 = (float16_t(1.0h)).xxxx;
+  vector<float16_t, 4> arg_1 = (float16_t(1.0h)).xxxx;
+  vector<float16_t, 4> res = step(arg_0, arg_1);
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store<vector<float16_t, 4> >(0u, step_baa320());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store<vector<float16_t, 4> >(0u, step_baa320());
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = step_baa320();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
+FXC validation failure:
+c:\src\dawn\Shader@0x000001C1555519C0(3,10-18): error X3000: syntax error: unexpected token 'float16_t'
+
diff --git a/test/tint/builtins/gen/var/step/cc6b61.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/step/cc6b61.wgsl.expected.ir.dxc.hlsl
index 0ba40c6..e4f3e52 100644
--- a/test/tint/builtins/gen/var/step/cc6b61.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/step/cc6b61.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,44 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  vector<float16_t, 3> prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation vector<float16_t, 3> VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+vector<float16_t, 3> step_cc6b61() {
+  vector<float16_t, 3> arg_0 = (float16_t(1.0h)).xxx;
+  vector<float16_t, 3> arg_1 = (float16_t(1.0h)).xxx;
+  vector<float16_t, 3> res = step(arg_0, arg_1);
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store<vector<float16_t, 3> >(0u, step_cc6b61());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store<vector<float16_t, 3> >(0u, step_cc6b61());
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = step_cc6b61();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
diff --git a/test/tint/builtins/gen/var/step/cc6b61.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/step/cc6b61.wgsl.expected.ir.fxc.hlsl
index 0ba40c6..93e2b191 100644
--- a/test/tint/builtins/gen/var/step/cc6b61.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/step/cc6b61.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,49 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct VertexOutput {
+  float4 pos;
+  vector<float16_t, 3> prevent_dce;
+};
+
+struct vertex_main_outputs {
+  nointerpolation vector<float16_t, 3> VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+vector<float16_t, 3> step_cc6b61() {
+  vector<float16_t, 3> arg_0 = (float16_t(1.0h)).xxx;
+  vector<float16_t, 3> arg_1 = (float16_t(1.0h)).xxx;
+  vector<float16_t, 3> res = step(arg_0, arg_1);
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store<vector<float16_t, 3> >(0u, step_cc6b61());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store<vector<float16_t, 3> >(0u, step_cc6b61());
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = step_cc6b61();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
+FXC validation failure:
+c:\src\dawn\Shader@0x0000021715877840(3,10-18): error X3000: syntax error: unexpected token 'float16_t'
+
diff --git a/test/tint/builtins/gen/var/step/e2b337.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/step/e2b337.wgsl.expected.ir.dxc.hlsl
index 0ba40c6..26d8834 100644
--- a/test/tint/builtins/gen/var/step/e2b337.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/step/e2b337.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,44 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  float4 prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation float4 VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+float4 step_e2b337() {
+  float4 arg_0 = (1.0f).xxxx;
+  float4 arg_1 = (1.0f).xxxx;
+  float4 res = step(arg_0, arg_1);
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store4(0u, asuint(step_e2b337()));
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store4(0u, asuint(step_e2b337()));
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = step_e2b337();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
diff --git a/test/tint/builtins/gen/var/step/e2b337.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/step/e2b337.wgsl.expected.ir.fxc.hlsl
index 0ba40c6..26d8834 100644
--- a/test/tint/builtins/gen/var/step/e2b337.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/step/e2b337.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,44 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  float4 prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation float4 VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+float4 step_e2b337() {
+  float4 arg_0 = (1.0f).xxxx;
+  float4 arg_1 = (1.0f).xxxx;
+  float4 res = step(arg_0, arg_1);
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store4(0u, asuint(step_e2b337()));
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store4(0u, asuint(step_e2b337()));
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = step_e2b337();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
diff --git a/test/tint/builtins/gen/var/step/f9b70c.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/step/f9b70c.wgsl.expected.ir.dxc.hlsl
index 0ba40c6..2f03418 100644
--- a/test/tint/builtins/gen/var/step/f9b70c.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/step/f9b70c.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,36 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+void step_f9b70c() {
+  float res = 1.0f;
+}
+
+void fragment_main() {
+  step_f9b70c();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  step_f9b70c();
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  step_f9b70c();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  vertex_main_outputs v_2 = {v_1.pos};
+  return v_2;
+}
+
diff --git a/test/tint/builtins/gen/var/step/f9b70c.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/step/f9b70c.wgsl.expected.ir.fxc.hlsl
index 0ba40c6..2f03418 100644
--- a/test/tint/builtins/gen/var/step/f9b70c.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/step/f9b70c.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,36 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+void step_f9b70c() {
+  float res = 1.0f;
+}
+
+void fragment_main() {
+  step_f9b70c();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  step_f9b70c();
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  step_f9b70c();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  vertex_main_outputs v_2 = {v_1.pos};
+  return v_2;
+}
+
diff --git a/test/tint/builtins/gen/var/storageBarrier/d87211.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/storageBarrier/d87211.wgsl.expected.ir.dxc.hlsl
index 5ff4a1e..1cff48d 100644
--- a/test/tint/builtins/gen/var/storageBarrier/d87211.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/storageBarrier/d87211.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,10 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: storageBarrier
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+void storageBarrier_d87211() {
+  DeviceMemoryBarrierWithGroupSync();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  storageBarrier_d87211();
+}
+
diff --git a/test/tint/builtins/gen/var/storageBarrier/d87211.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/storageBarrier/d87211.wgsl.expected.ir.fxc.hlsl
index 5ff4a1e..1cff48d 100644
--- a/test/tint/builtins/gen/var/storageBarrier/d87211.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/storageBarrier/d87211.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,10 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: storageBarrier
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+void storageBarrier_d87211() {
+  DeviceMemoryBarrierWithGroupSync();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  storageBarrier_d87211();
+}
+
diff --git a/test/tint/builtins/gen/var/subgroupBallot/1a8251.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/subgroupBallot/1a8251.wgsl.expected.ir.dxc.hlsl
index 90369a2..993e0e9 100644
--- a/test/tint/builtins/gen/var/subgroupBallot/1a8251.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/subgroupBallot/1a8251.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,13 @@
-SKIP: FAILED
 
-../../src/tint/lang/hlsl/writer/printer/printer.cc:1002 internal compiler error: TINT_UNREACHABLE unhandled: subgroupBallot
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWByteAddressBuffer prevent_dce : register(u0);
+uint4 subgroupBallot_1a8251() {
+  bool arg_0 = true;
+  uint4 res = WaveActiveBallot(arg_0);
+  return res;
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store4(0u, subgroupBallot_1a8251());
+}
+
diff --git a/test/tint/builtins/gen/var/subgroupBallot/1a8251.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/subgroupBallot/1a8251.wgsl.expected.ir.fxc.hlsl
index 90369a2..b9a1fe0 100644
--- a/test/tint/builtins/gen/var/subgroupBallot/1a8251.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/subgroupBallot/1a8251.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,18 @@
 SKIP: FAILED
 
-../../src/tint/lang/hlsl/writer/printer/printer.cc:1002 internal compiler error: TINT_UNREACHABLE unhandled: subgroupBallot
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+
+RWByteAddressBuffer prevent_dce : register(u0);
+uint4 subgroupBallot_1a8251() {
+  bool arg_0 = true;
+  uint4 res = WaveActiveBallot(arg_0);
+  return res;
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store4(0u, subgroupBallot_1a8251());
+}
+
+FXC validation failure:
+c:\src\dawn\Shader@0x000001C24C591AB0(5,15-37): error X3004: undeclared identifier 'WaveActiveBallot'
+
diff --git a/test/tint/builtins/gen/var/subgroupBroadcast/07e2d8.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/subgroupBroadcast/07e2d8.wgsl.expected.ir.dxc.hlsl
index 197e8e9..22d01a8 100644
--- a/test/tint/builtins/gen/var/subgroupBroadcast/07e2d8.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/subgroupBroadcast/07e2d8.wgsl.expected.ir.dxc.hlsl
@@ -1,5 +1,5 @@
-SKIP: FAILED
 
+RWByteAddressBuffer prevent_dce : register(u0);
 float16_t subgroupBroadcast_07e2d8() {
   float16_t arg_0 = float16_t(1.0h);
   float16_t res = WaveReadLaneAt(arg_0, 1u);
@@ -8,11 +8,6 @@
 
 [numthreads(1, 1, 1)]
 void compute_main() {
-  prevent_dce = subgroupBroadcast_07e2d8();
+  prevent_dce.Store<float16_t>(0u, subgroupBroadcast_07e2d8());
 }
 
-DXC validation failure:
-hlsl.hlsl:9:3: error: use of undeclared identifier 'prevent_dce'
-  prevent_dce = subgroupBroadcast_07e2d8();
-  ^
-
diff --git a/test/tint/builtins/gen/var/subgroupBroadcast/07e2d8.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/subgroupBroadcast/07e2d8.wgsl.expected.ir.fxc.hlsl
index d0e4696..bbd0a2e 100644
--- a/test/tint/builtins/gen/var/subgroupBroadcast/07e2d8.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/subgroupBroadcast/07e2d8.wgsl.expected.ir.fxc.hlsl
@@ -1,5 +1,7 @@
 SKIP: FAILED
 
+
+RWByteAddressBuffer prevent_dce : register(u0);
 float16_t subgroupBroadcast_07e2d8() {
   float16_t arg_0 = float16_t(1.0h);
   float16_t res = WaveReadLaneAt(arg_0, 1u);
@@ -8,6 +10,9 @@
 
 [numthreads(1, 1, 1)]
 void compute_main() {
-  prevent_dce = subgroupBroadcast_07e2d8();
+  prevent_dce.Store<float16_t>(0u, subgroupBroadcast_07e2d8());
 }
 
+FXC validation failure:
+c:\src\dawn\Shader@0x000002B085CC0180(3,1-9): error X3000: unrecognized identifier 'float16_t'
+
diff --git a/test/tint/builtins/gen/var/subgroupBroadcast/08beca.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/subgroupBroadcast/08beca.wgsl.expected.ir.dxc.hlsl
index 2eaff99..347c80c 100644
--- a/test/tint/builtins/gen/var/subgroupBroadcast/08beca.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/subgroupBroadcast/08beca.wgsl.expected.ir.dxc.hlsl
@@ -1,5 +1,5 @@
-SKIP: FAILED
 
+RWByteAddressBuffer prevent_dce : register(u0);
 float subgroupBroadcast_08beca() {
   float arg_0 = 1.0f;
   float res = WaveReadLaneAt(arg_0, 1u);
@@ -8,11 +8,6 @@
 
 [numthreads(1, 1, 1)]
 void compute_main() {
-  prevent_dce = subgroupBroadcast_08beca();
+  prevent_dce.Store(0u, asuint(subgroupBroadcast_08beca()));
 }
 
-DXC validation failure:
-hlsl.hlsl:9:3: error: use of undeclared identifier 'prevent_dce'
-  prevent_dce = subgroupBroadcast_08beca();
-  ^
-
diff --git a/test/tint/builtins/gen/var/subgroupBroadcast/08beca.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/subgroupBroadcast/08beca.wgsl.expected.ir.fxc.hlsl
index caf0424..8db0e5f 100644
--- a/test/tint/builtins/gen/var/subgroupBroadcast/08beca.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/subgroupBroadcast/08beca.wgsl.expected.ir.fxc.hlsl
@@ -1,5 +1,7 @@
 SKIP: FAILED
 
+
+RWByteAddressBuffer prevent_dce : register(u0);
 float subgroupBroadcast_08beca() {
   float arg_0 = 1.0f;
   float res = WaveReadLaneAt(arg_0, 1u);
@@ -8,6 +10,9 @@
 
 [numthreads(1, 1, 1)]
 void compute_main() {
-  prevent_dce = subgroupBroadcast_08beca();
+  prevent_dce.Store(0u, asuint(subgroupBroadcast_08beca()));
 }
 
+FXC validation failure:
+c:\src\dawn\Shader@0x00000118CE016020(5,15-39): error X3004: undeclared identifier 'WaveReadLaneAt'
+
diff --git a/test/tint/builtins/gen/var/subgroupBroadcast/0f44e2.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/subgroupBroadcast/0f44e2.wgsl.expected.ir.dxc.hlsl
index 232719e..4584bbd 100644
--- a/test/tint/builtins/gen/var/subgroupBroadcast/0f44e2.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/subgroupBroadcast/0f44e2.wgsl.expected.ir.dxc.hlsl
@@ -1,5 +1,5 @@
-SKIP: FAILED
 
+RWByteAddressBuffer prevent_dce : register(u0);
 vector<float16_t, 4> subgroupBroadcast_0f44e2() {
   vector<float16_t, 4> arg_0 = (float16_t(1.0h)).xxxx;
   vector<float16_t, 4> res = WaveReadLaneAt(arg_0, 1u);
@@ -8,11 +8,6 @@
 
 [numthreads(1, 1, 1)]
 void compute_main() {
-  prevent_dce = subgroupBroadcast_0f44e2();
+  prevent_dce.Store<vector<float16_t, 4> >(0u, subgroupBroadcast_0f44e2());
 }
 
-DXC validation failure:
-hlsl.hlsl:9:3: error: use of undeclared identifier 'prevent_dce'
-  prevent_dce = subgroupBroadcast_0f44e2();
-  ^
-
diff --git a/test/tint/builtins/gen/var/subgroupBroadcast/0f44e2.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/subgroupBroadcast/0f44e2.wgsl.expected.ir.fxc.hlsl
index 365f99d..9376473 100644
--- a/test/tint/builtins/gen/var/subgroupBroadcast/0f44e2.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/subgroupBroadcast/0f44e2.wgsl.expected.ir.fxc.hlsl
@@ -1,5 +1,7 @@
 SKIP: FAILED
 
+
+RWByteAddressBuffer prevent_dce : register(u0);
 vector<float16_t, 4> subgroupBroadcast_0f44e2() {
   vector<float16_t, 4> arg_0 = (float16_t(1.0h)).xxxx;
   vector<float16_t, 4> res = WaveReadLaneAt(arg_0, 1u);
@@ -8,6 +10,9 @@
 
 [numthreads(1, 1, 1)]
 void compute_main() {
-  prevent_dce = subgroupBroadcast_0f44e2();
+  prevent_dce.Store<vector<float16_t, 4> >(0u, subgroupBroadcast_0f44e2());
 }
 
+FXC validation failure:
+c:\src\dawn\Shader@0x00000192978C4130(3,8-16): error X3000: syntax error: unexpected token 'float16_t'
+
diff --git a/test/tint/builtins/gen/var/subgroupBroadcast/13f36c.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/subgroupBroadcast/13f36c.wgsl.expected.ir.dxc.hlsl
index 4a2b44c..aea3235 100644
--- a/test/tint/builtins/gen/var/subgroupBroadcast/13f36c.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/subgroupBroadcast/13f36c.wgsl.expected.ir.dxc.hlsl
@@ -1,5 +1,5 @@
-SKIP: FAILED
 
+RWByteAddressBuffer prevent_dce : register(u0);
 vector<float16_t, 2> subgroupBroadcast_13f36c() {
   vector<float16_t, 2> arg_0 = (float16_t(1.0h)).xx;
   vector<float16_t, 2> res = WaveReadLaneAt(arg_0, 1u);
@@ -8,11 +8,6 @@
 
 [numthreads(1, 1, 1)]
 void compute_main() {
-  prevent_dce = subgroupBroadcast_13f36c();
+  prevent_dce.Store<vector<float16_t, 2> >(0u, subgroupBroadcast_13f36c());
 }
 
-DXC validation failure:
-hlsl.hlsl:9:3: error: use of undeclared identifier 'prevent_dce'
-  prevent_dce = subgroupBroadcast_13f36c();
-  ^
-
diff --git a/test/tint/builtins/gen/var/subgroupBroadcast/13f36c.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/subgroupBroadcast/13f36c.wgsl.expected.ir.fxc.hlsl
index 50823c0..55c94c2 100644
--- a/test/tint/builtins/gen/var/subgroupBroadcast/13f36c.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/subgroupBroadcast/13f36c.wgsl.expected.ir.fxc.hlsl
@@ -1,5 +1,7 @@
 SKIP: FAILED
 
+
+RWByteAddressBuffer prevent_dce : register(u0);
 vector<float16_t, 2> subgroupBroadcast_13f36c() {
   vector<float16_t, 2> arg_0 = (float16_t(1.0h)).xx;
   vector<float16_t, 2> res = WaveReadLaneAt(arg_0, 1u);
@@ -8,6 +10,9 @@
 
 [numthreads(1, 1, 1)]
 void compute_main() {
-  prevent_dce = subgroupBroadcast_13f36c();
+  prevent_dce.Store<vector<float16_t, 2> >(0u, subgroupBroadcast_13f36c());
 }
 
+FXC validation failure:
+c:\src\dawn\Shader@0x000001DA21AC5940(3,8-16): error X3000: syntax error: unexpected token 'float16_t'
+
diff --git a/test/tint/builtins/gen/var/subgroupBroadcast/1d79c7.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/subgroupBroadcast/1d79c7.wgsl.expected.ir.dxc.hlsl
index 77ab34f..5fab837 100644
--- a/test/tint/builtins/gen/var/subgroupBroadcast/1d79c7.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/subgroupBroadcast/1d79c7.wgsl.expected.ir.dxc.hlsl
@@ -1,5 +1,5 @@
-SKIP: FAILED
 
+RWByteAddressBuffer prevent_dce : register(u0);
 int subgroupBroadcast_1d79c7() {
   int arg_0 = 1;
   int res = WaveReadLaneAt(arg_0, 1u);
@@ -8,11 +8,6 @@
 
 [numthreads(1, 1, 1)]
 void compute_main() {
-  prevent_dce = subgroupBroadcast_1d79c7();
+  prevent_dce.Store(0u, asuint(subgroupBroadcast_1d79c7()));
 }
 
-DXC validation failure:
-hlsl.hlsl:9:3: error: use of undeclared identifier 'prevent_dce'
-  prevent_dce = subgroupBroadcast_1d79c7();
-  ^
-
diff --git a/test/tint/builtins/gen/var/subgroupBroadcast/1d79c7.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/subgroupBroadcast/1d79c7.wgsl.expected.ir.fxc.hlsl
index a2216c7..f49d8b0 100644
--- a/test/tint/builtins/gen/var/subgroupBroadcast/1d79c7.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/subgroupBroadcast/1d79c7.wgsl.expected.ir.fxc.hlsl
@@ -1,5 +1,7 @@
 SKIP: FAILED
 
+
+RWByteAddressBuffer prevent_dce : register(u0);
 int subgroupBroadcast_1d79c7() {
   int arg_0 = 1;
   int res = WaveReadLaneAt(arg_0, 1u);
@@ -8,6 +10,9 @@
 
 [numthreads(1, 1, 1)]
 void compute_main() {
-  prevent_dce = subgroupBroadcast_1d79c7();
+  prevent_dce.Store(0u, asuint(subgroupBroadcast_1d79c7()));
 }
 
+FXC validation failure:
+c:\src\dawn\Shader@0x0000027B6B42D0D0(5,13-37): error X3004: undeclared identifier 'WaveReadLaneAt'
+
diff --git a/test/tint/builtins/gen/var/subgroupBroadcast/279027.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/subgroupBroadcast/279027.wgsl.expected.ir.dxc.hlsl
index 2349a0b..cd78746 100644
--- a/test/tint/builtins/gen/var/subgroupBroadcast/279027.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/subgroupBroadcast/279027.wgsl.expected.ir.dxc.hlsl
@@ -1,5 +1,5 @@
-SKIP: FAILED
 
+RWByteAddressBuffer prevent_dce : register(u0);
 uint4 subgroupBroadcast_279027() {
   uint4 arg_0 = (1u).xxxx;
   uint4 res = WaveReadLaneAt(arg_0, 1u);
@@ -8,11 +8,6 @@
 
 [numthreads(1, 1, 1)]
 void compute_main() {
-  prevent_dce = subgroupBroadcast_279027();
+  prevent_dce.Store4(0u, subgroupBroadcast_279027());
 }
 
-DXC validation failure:
-hlsl.hlsl:9:3: error: use of undeclared identifier 'prevent_dce'
-  prevent_dce = subgroupBroadcast_279027();
-  ^
-
diff --git a/test/tint/builtins/gen/var/subgroupBroadcast/279027.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/subgroupBroadcast/279027.wgsl.expected.ir.fxc.hlsl
index 31537f1..0d1d0d7 100644
--- a/test/tint/builtins/gen/var/subgroupBroadcast/279027.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/subgroupBroadcast/279027.wgsl.expected.ir.fxc.hlsl
@@ -1,5 +1,7 @@
 SKIP: FAILED
 
+
+RWByteAddressBuffer prevent_dce : register(u0);
 uint4 subgroupBroadcast_279027() {
   uint4 arg_0 = (1u).xxxx;
   uint4 res = WaveReadLaneAt(arg_0, 1u);
@@ -8,6 +10,9 @@
 
 [numthreads(1, 1, 1)]
 void compute_main() {
-  prevent_dce = subgroupBroadcast_279027();
+  prevent_dce.Store4(0u, subgroupBroadcast_279027());
 }
 
+FXC validation failure:
+c:\src\dawn\Shader@0x0000020D7608C990(5,15-39): error X3004: undeclared identifier 'WaveReadLaneAt'
+
diff --git a/test/tint/builtins/gen/var/subgroupBroadcast/34fa3d.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/subgroupBroadcast/34fa3d.wgsl.expected.ir.dxc.hlsl
index 33c65a5..ec0bb6a 100644
--- a/test/tint/builtins/gen/var/subgroupBroadcast/34fa3d.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/subgroupBroadcast/34fa3d.wgsl.expected.ir.dxc.hlsl
@@ -1,5 +1,5 @@
-SKIP: FAILED
 
+RWByteAddressBuffer prevent_dce : register(u0);
 uint3 subgroupBroadcast_34fa3d() {
   uint3 arg_0 = (1u).xxx;
   uint3 res = WaveReadLaneAt(arg_0, 1u);
@@ -8,11 +8,6 @@
 
 [numthreads(1, 1, 1)]
 void compute_main() {
-  prevent_dce = subgroupBroadcast_34fa3d();
+  prevent_dce.Store3(0u, subgroupBroadcast_34fa3d());
 }
 
-DXC validation failure:
-hlsl.hlsl:9:3: error: use of undeclared identifier 'prevent_dce'
-  prevent_dce = subgroupBroadcast_34fa3d();
-  ^
-
diff --git a/test/tint/builtins/gen/var/subgroupBroadcast/34fa3d.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/subgroupBroadcast/34fa3d.wgsl.expected.ir.fxc.hlsl
index 721de60..9e5c4fe 100644
--- a/test/tint/builtins/gen/var/subgroupBroadcast/34fa3d.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/subgroupBroadcast/34fa3d.wgsl.expected.ir.fxc.hlsl
@@ -1,5 +1,7 @@
 SKIP: FAILED
 
+
+RWByteAddressBuffer prevent_dce : register(u0);
 uint3 subgroupBroadcast_34fa3d() {
   uint3 arg_0 = (1u).xxx;
   uint3 res = WaveReadLaneAt(arg_0, 1u);
@@ -8,6 +10,9 @@
 
 [numthreads(1, 1, 1)]
 void compute_main() {
-  prevent_dce = subgroupBroadcast_34fa3d();
+  prevent_dce.Store3(0u, subgroupBroadcast_34fa3d());
 }
 
+FXC validation failure:
+c:\src\dawn\Shader@0x000001573344BDC0(5,15-39): error X3004: undeclared identifier 'WaveReadLaneAt'
+
diff --git a/test/tint/builtins/gen/var/subgroupBroadcast/3e6879.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/subgroupBroadcast/3e6879.wgsl.expected.ir.dxc.hlsl
index 732a185..6342df4 100644
--- a/test/tint/builtins/gen/var/subgroupBroadcast/3e6879.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/subgroupBroadcast/3e6879.wgsl.expected.ir.dxc.hlsl
@@ -1,5 +1,5 @@
-SKIP: FAILED
 
+RWByteAddressBuffer prevent_dce : register(u0);
 int2 subgroupBroadcast_3e6879() {
   int2 arg_0 = (1).xx;
   int2 res = WaveReadLaneAt(arg_0, 1u);
@@ -8,11 +8,6 @@
 
 [numthreads(1, 1, 1)]
 void compute_main() {
-  prevent_dce = subgroupBroadcast_3e6879();
+  prevent_dce.Store2(0u, asuint(subgroupBroadcast_3e6879()));
 }
 
-DXC validation failure:
-hlsl.hlsl:9:3: error: use of undeclared identifier 'prevent_dce'
-  prevent_dce = subgroupBroadcast_3e6879();
-  ^
-
diff --git a/test/tint/builtins/gen/var/subgroupBroadcast/3e6879.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/subgroupBroadcast/3e6879.wgsl.expected.ir.fxc.hlsl
index d1ff2d9..718598d 100644
--- a/test/tint/builtins/gen/var/subgroupBroadcast/3e6879.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/subgroupBroadcast/3e6879.wgsl.expected.ir.fxc.hlsl
@@ -1,5 +1,7 @@
 SKIP: FAILED
 
+
+RWByteAddressBuffer prevent_dce : register(u0);
 int2 subgroupBroadcast_3e6879() {
   int2 arg_0 = (1).xx;
   int2 res = WaveReadLaneAt(arg_0, 1u);
@@ -8,6 +10,9 @@
 
 [numthreads(1, 1, 1)]
 void compute_main() {
-  prevent_dce = subgroupBroadcast_3e6879();
+  prevent_dce.Store2(0u, asuint(subgroupBroadcast_3e6879()));
 }
 
+FXC validation failure:
+c:\src\dawn\Shader@0x0000022D74BECB40(5,14-38): error X3004: undeclared identifier 'WaveReadLaneAt'
+
diff --git a/test/tint/builtins/gen/var/subgroupBroadcast/41e5d7.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/subgroupBroadcast/41e5d7.wgsl.expected.ir.dxc.hlsl
index 9f50d28..135d497 100644
--- a/test/tint/builtins/gen/var/subgroupBroadcast/41e5d7.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/subgroupBroadcast/41e5d7.wgsl.expected.ir.dxc.hlsl
@@ -1,5 +1,5 @@
-SKIP: FAILED
 
+RWByteAddressBuffer prevent_dce : register(u0);
 vector<float16_t, 3> subgroupBroadcast_41e5d7() {
   vector<float16_t, 3> arg_0 = (float16_t(1.0h)).xxx;
   vector<float16_t, 3> res = WaveReadLaneAt(arg_0, 1u);
@@ -8,11 +8,6 @@
 
 [numthreads(1, 1, 1)]
 void compute_main() {
-  prevent_dce = subgroupBroadcast_41e5d7();
+  prevent_dce.Store<vector<float16_t, 3> >(0u, subgroupBroadcast_41e5d7());
 }
 
-DXC validation failure:
-hlsl.hlsl:9:3: error: use of undeclared identifier 'prevent_dce'
-  prevent_dce = subgroupBroadcast_41e5d7();
-  ^
-
diff --git a/test/tint/builtins/gen/var/subgroupBroadcast/41e5d7.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/subgroupBroadcast/41e5d7.wgsl.expected.ir.fxc.hlsl
index 60f8112..fc11fd5 100644
--- a/test/tint/builtins/gen/var/subgroupBroadcast/41e5d7.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/subgroupBroadcast/41e5d7.wgsl.expected.ir.fxc.hlsl
@@ -1,5 +1,7 @@
 SKIP: FAILED
 
+
+RWByteAddressBuffer prevent_dce : register(u0);
 vector<float16_t, 3> subgroupBroadcast_41e5d7() {
   vector<float16_t, 3> arg_0 = (float16_t(1.0h)).xxx;
   vector<float16_t, 3> res = WaveReadLaneAt(arg_0, 1u);
@@ -8,6 +10,9 @@
 
 [numthreads(1, 1, 1)]
 void compute_main() {
-  prevent_dce = subgroupBroadcast_41e5d7();
+  prevent_dce.Store<vector<float16_t, 3> >(0u, subgroupBroadcast_41e5d7());
 }
 
+FXC validation failure:
+c:\src\dawn\Shader@0x0000020D6D604980(3,8-16): error X3000: syntax error: unexpected token 'float16_t'
+
diff --git a/test/tint/builtins/gen/var/subgroupBroadcast/4a4334.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/subgroupBroadcast/4a4334.wgsl.expected.ir.dxc.hlsl
index 4ed69c5..93183b4 100644
--- a/test/tint/builtins/gen/var/subgroupBroadcast/4a4334.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/subgroupBroadcast/4a4334.wgsl.expected.ir.dxc.hlsl
@@ -1,5 +1,5 @@
-SKIP: FAILED
 
+RWByteAddressBuffer prevent_dce : register(u0);
 uint2 subgroupBroadcast_4a4334() {
   uint2 arg_0 = (1u).xx;
   uint2 res = WaveReadLaneAt(arg_0, 1u);
@@ -8,11 +8,6 @@
 
 [numthreads(1, 1, 1)]
 void compute_main() {
-  prevent_dce = subgroupBroadcast_4a4334();
+  prevent_dce.Store2(0u, subgroupBroadcast_4a4334());
 }
 
-DXC validation failure:
-hlsl.hlsl:9:3: error: use of undeclared identifier 'prevent_dce'
-  prevent_dce = subgroupBroadcast_4a4334();
-  ^
-
diff --git a/test/tint/builtins/gen/var/subgroupBroadcast/4a4334.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/subgroupBroadcast/4a4334.wgsl.expected.ir.fxc.hlsl
index 8c10894..aaa554a 100644
--- a/test/tint/builtins/gen/var/subgroupBroadcast/4a4334.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/subgroupBroadcast/4a4334.wgsl.expected.ir.fxc.hlsl
@@ -1,5 +1,7 @@
 SKIP: FAILED
 
+
+RWByteAddressBuffer prevent_dce : register(u0);
 uint2 subgroupBroadcast_4a4334() {
   uint2 arg_0 = (1u).xx;
   uint2 res = WaveReadLaneAt(arg_0, 1u);
@@ -8,6 +10,9 @@
 
 [numthreads(1, 1, 1)]
 void compute_main() {
-  prevent_dce = subgroupBroadcast_4a4334();
+  prevent_dce.Store2(0u, subgroupBroadcast_4a4334());
 }
 
+FXC validation failure:
+c:\src\dawn\Shader@0x0000023ACB40D6F0(5,15-39): error X3004: undeclared identifier 'WaveReadLaneAt'
+
diff --git a/test/tint/builtins/gen/var/subgroupBroadcast/5196c8.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/subgroupBroadcast/5196c8.wgsl.expected.ir.dxc.hlsl
index 997c9d9..98f3022 100644
--- a/test/tint/builtins/gen/var/subgroupBroadcast/5196c8.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/subgroupBroadcast/5196c8.wgsl.expected.ir.dxc.hlsl
@@ -1,5 +1,5 @@
-SKIP: FAILED
 
+RWByteAddressBuffer prevent_dce : register(u0);
 float2 subgroupBroadcast_5196c8() {
   float2 arg_0 = (1.0f).xx;
   float2 res = WaveReadLaneAt(arg_0, 1u);
@@ -8,11 +8,6 @@
 
 [numthreads(1, 1, 1)]
 void compute_main() {
-  prevent_dce = subgroupBroadcast_5196c8();
+  prevent_dce.Store2(0u, asuint(subgroupBroadcast_5196c8()));
 }
 
-DXC validation failure:
-hlsl.hlsl:9:3: error: use of undeclared identifier 'prevent_dce'
-  prevent_dce = subgroupBroadcast_5196c8();
-  ^
-
diff --git a/test/tint/builtins/gen/var/subgroupBroadcast/5196c8.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/subgroupBroadcast/5196c8.wgsl.expected.ir.fxc.hlsl
index 89c722c..f04551c 100644
--- a/test/tint/builtins/gen/var/subgroupBroadcast/5196c8.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/subgroupBroadcast/5196c8.wgsl.expected.ir.fxc.hlsl
@@ -1,5 +1,7 @@
 SKIP: FAILED
 
+
+RWByteAddressBuffer prevent_dce : register(u0);
 float2 subgroupBroadcast_5196c8() {
   float2 arg_0 = (1.0f).xx;
   float2 res = WaveReadLaneAt(arg_0, 1u);
@@ -8,6 +10,9 @@
 
 [numthreads(1, 1, 1)]
 void compute_main() {
-  prevent_dce = subgroupBroadcast_5196c8();
+  prevent_dce.Store2(0u, asuint(subgroupBroadcast_5196c8()));
 }
 
+FXC validation failure:
+c:\src\dawn\Shader@0x0000016CCAC147D0(5,16-40): error X3004: undeclared identifier 'WaveReadLaneAt'
+
diff --git a/test/tint/builtins/gen/var/subgroupBroadcast/912ff5.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/subgroupBroadcast/912ff5.wgsl.expected.ir.dxc.hlsl
index e09ec7a..10dbeda 100644
--- a/test/tint/builtins/gen/var/subgroupBroadcast/912ff5.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/subgroupBroadcast/912ff5.wgsl.expected.ir.dxc.hlsl
@@ -1,5 +1,5 @@
-SKIP: FAILED
 
+RWByteAddressBuffer prevent_dce : register(u0);
 float3 subgroupBroadcast_912ff5() {
   float3 arg_0 = (1.0f).xxx;
   float3 res = WaveReadLaneAt(arg_0, 1u);
@@ -8,11 +8,6 @@
 
 [numthreads(1, 1, 1)]
 void compute_main() {
-  prevent_dce = subgroupBroadcast_912ff5();
+  prevent_dce.Store3(0u, asuint(subgroupBroadcast_912ff5()));
 }
 
-DXC validation failure:
-hlsl.hlsl:9:3: error: use of undeclared identifier 'prevent_dce'
-  prevent_dce = subgroupBroadcast_912ff5();
-  ^
-
diff --git a/test/tint/builtins/gen/var/subgroupBroadcast/912ff5.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/subgroupBroadcast/912ff5.wgsl.expected.ir.fxc.hlsl
index 553b536..7a246f6 100644
--- a/test/tint/builtins/gen/var/subgroupBroadcast/912ff5.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/subgroupBroadcast/912ff5.wgsl.expected.ir.fxc.hlsl
@@ -1,5 +1,7 @@
 SKIP: FAILED
 
+
+RWByteAddressBuffer prevent_dce : register(u0);
 float3 subgroupBroadcast_912ff5() {
   float3 arg_0 = (1.0f).xxx;
   float3 res = WaveReadLaneAt(arg_0, 1u);
@@ -8,6 +10,9 @@
 
 [numthreads(1, 1, 1)]
 void compute_main() {
-  prevent_dce = subgroupBroadcast_912ff5();
+  prevent_dce.Store3(0u, asuint(subgroupBroadcast_912ff5()));
 }
 
+FXC validation failure:
+c:\src\dawn\Shader@0x000001D37D637DD0(5,16-40): error X3004: undeclared identifier 'WaveReadLaneAt'
+
diff --git a/test/tint/builtins/gen/var/subgroupBroadcast/b7e93b.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/subgroupBroadcast/b7e93b.wgsl.expected.ir.dxc.hlsl
index 985a3a1..692042a 100644
--- a/test/tint/builtins/gen/var/subgroupBroadcast/b7e93b.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/subgroupBroadcast/b7e93b.wgsl.expected.ir.dxc.hlsl
@@ -1,5 +1,5 @@
-SKIP: FAILED
 
+RWByteAddressBuffer prevent_dce : register(u0);
 float4 subgroupBroadcast_b7e93b() {
   float4 arg_0 = (1.0f).xxxx;
   float4 res = WaveReadLaneAt(arg_0, 1u);
@@ -8,11 +8,6 @@
 
 [numthreads(1, 1, 1)]
 void compute_main() {
-  prevent_dce = subgroupBroadcast_b7e93b();
+  prevent_dce.Store4(0u, asuint(subgroupBroadcast_b7e93b()));
 }
 
-DXC validation failure:
-hlsl.hlsl:9:3: error: use of undeclared identifier 'prevent_dce'
-  prevent_dce = subgroupBroadcast_b7e93b();
-  ^
-
diff --git a/test/tint/builtins/gen/var/subgroupBroadcast/b7e93b.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/subgroupBroadcast/b7e93b.wgsl.expected.ir.fxc.hlsl
index 3b9df46..322c0e2 100644
--- a/test/tint/builtins/gen/var/subgroupBroadcast/b7e93b.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/subgroupBroadcast/b7e93b.wgsl.expected.ir.fxc.hlsl
@@ -1,5 +1,7 @@
 SKIP: FAILED
 
+
+RWByteAddressBuffer prevent_dce : register(u0);
 float4 subgroupBroadcast_b7e93b() {
   float4 arg_0 = (1.0f).xxxx;
   float4 res = WaveReadLaneAt(arg_0, 1u);
@@ -8,6 +10,9 @@
 
 [numthreads(1, 1, 1)]
 void compute_main() {
-  prevent_dce = subgroupBroadcast_b7e93b();
+  prevent_dce.Store4(0u, asuint(subgroupBroadcast_b7e93b()));
 }
 
+FXC validation failure:
+c:\src\dawn\Shader@0x00000219A7075400(5,16-40): error X3004: undeclared identifier 'WaveReadLaneAt'
+
diff --git a/test/tint/builtins/gen/var/subgroupBroadcast/c36fe1.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/subgroupBroadcast/c36fe1.wgsl.expected.ir.dxc.hlsl
index a29682e..c3dcbbc 100644
--- a/test/tint/builtins/gen/var/subgroupBroadcast/c36fe1.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/subgroupBroadcast/c36fe1.wgsl.expected.ir.dxc.hlsl
@@ -1,5 +1,5 @@
-SKIP: FAILED
 
+RWByteAddressBuffer prevent_dce : register(u0);
 uint subgroupBroadcast_c36fe1() {
   uint arg_0 = 1u;
   uint res = WaveReadLaneAt(arg_0, 1u);
@@ -8,11 +8,6 @@
 
 [numthreads(1, 1, 1)]
 void compute_main() {
-  prevent_dce = subgroupBroadcast_c36fe1();
+  prevent_dce.Store(0u, subgroupBroadcast_c36fe1());
 }
 
-DXC validation failure:
-hlsl.hlsl:9:3: error: use of undeclared identifier 'prevent_dce'
-  prevent_dce = subgroupBroadcast_c36fe1();
-  ^
-
diff --git a/test/tint/builtins/gen/var/subgroupBroadcast/c36fe1.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/subgroupBroadcast/c36fe1.wgsl.expected.ir.fxc.hlsl
index 9e299f4..dda73d3 100644
--- a/test/tint/builtins/gen/var/subgroupBroadcast/c36fe1.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/subgroupBroadcast/c36fe1.wgsl.expected.ir.fxc.hlsl
@@ -1,5 +1,7 @@
 SKIP: FAILED
 
+
+RWByteAddressBuffer prevent_dce : register(u0);
 uint subgroupBroadcast_c36fe1() {
   uint arg_0 = 1u;
   uint res = WaveReadLaneAt(arg_0, 1u);
@@ -8,6 +10,9 @@
 
 [numthreads(1, 1, 1)]
 void compute_main() {
-  prevent_dce = subgroupBroadcast_c36fe1();
+  prevent_dce.Store(0u, subgroupBroadcast_c36fe1());
 }
 
+FXC validation failure:
+c:\src\dawn\Shader@0x000001EF1B7F47F0(5,14-38): error X3004: undeclared identifier 'WaveReadLaneAt'
+
diff --git a/test/tint/builtins/gen/var/subgroupBroadcast/e275c8.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/subgroupBroadcast/e275c8.wgsl.expected.ir.dxc.hlsl
index 8521b28..e5a54a3 100644
--- a/test/tint/builtins/gen/var/subgroupBroadcast/e275c8.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/subgroupBroadcast/e275c8.wgsl.expected.ir.dxc.hlsl
@@ -1,5 +1,5 @@
-SKIP: FAILED
 
+RWByteAddressBuffer prevent_dce : register(u0);
 int3 subgroupBroadcast_e275c8() {
   int3 arg_0 = (1).xxx;
   int3 res = WaveReadLaneAt(arg_0, 1u);
@@ -8,11 +8,6 @@
 
 [numthreads(1, 1, 1)]
 void compute_main() {
-  prevent_dce = subgroupBroadcast_e275c8();
+  prevent_dce.Store3(0u, asuint(subgroupBroadcast_e275c8()));
 }
 
-DXC validation failure:
-hlsl.hlsl:9:3: error: use of undeclared identifier 'prevent_dce'
-  prevent_dce = subgroupBroadcast_e275c8();
-  ^
-
diff --git a/test/tint/builtins/gen/var/subgroupBroadcast/e275c8.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/subgroupBroadcast/e275c8.wgsl.expected.ir.fxc.hlsl
index a1fcffe..c52caff 100644
--- a/test/tint/builtins/gen/var/subgroupBroadcast/e275c8.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/subgroupBroadcast/e275c8.wgsl.expected.ir.fxc.hlsl
@@ -1,5 +1,7 @@
 SKIP: FAILED
 
+
+RWByteAddressBuffer prevent_dce : register(u0);
 int3 subgroupBroadcast_e275c8() {
   int3 arg_0 = (1).xxx;
   int3 res = WaveReadLaneAt(arg_0, 1u);
@@ -8,6 +10,9 @@
 
 [numthreads(1, 1, 1)]
 void compute_main() {
-  prevent_dce = subgroupBroadcast_e275c8();
+  prevent_dce.Store3(0u, asuint(subgroupBroadcast_e275c8()));
 }
 
+FXC validation failure:
+c:\src\dawn\Shader@0x000001BCE1E03F50(5,14-38): error X3004: undeclared identifier 'WaveReadLaneAt'
+
diff --git a/test/tint/builtins/gen/var/subgroupBroadcast/f637f9.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/subgroupBroadcast/f637f9.wgsl.expected.ir.dxc.hlsl
index 2799c35..5336faa 100644
--- a/test/tint/builtins/gen/var/subgroupBroadcast/f637f9.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/subgroupBroadcast/f637f9.wgsl.expected.ir.dxc.hlsl
@@ -1,5 +1,5 @@
-SKIP: FAILED
 
+RWByteAddressBuffer prevent_dce : register(u0);
 int4 subgroupBroadcast_f637f9() {
   int4 arg_0 = (1).xxxx;
   int4 res = WaveReadLaneAt(arg_0, 1u);
@@ -8,11 +8,6 @@
 
 [numthreads(1, 1, 1)]
 void compute_main() {
-  prevent_dce = subgroupBroadcast_f637f9();
+  prevent_dce.Store4(0u, asuint(subgroupBroadcast_f637f9()));
 }
 
-DXC validation failure:
-hlsl.hlsl:9:3: error: use of undeclared identifier 'prevent_dce'
-  prevent_dce = subgroupBroadcast_f637f9();
-  ^
-
diff --git a/test/tint/builtins/gen/var/subgroupBroadcast/f637f9.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/subgroupBroadcast/f637f9.wgsl.expected.ir.fxc.hlsl
index 99744b2..5a838f9 100644
--- a/test/tint/builtins/gen/var/subgroupBroadcast/f637f9.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/subgroupBroadcast/f637f9.wgsl.expected.ir.fxc.hlsl
@@ -1,5 +1,7 @@
 SKIP: FAILED
 
+
+RWByteAddressBuffer prevent_dce : register(u0);
 int4 subgroupBroadcast_f637f9() {
   int4 arg_0 = (1).xxxx;
   int4 res = WaveReadLaneAt(arg_0, 1u);
@@ -8,6 +10,9 @@
 
 [numthreads(1, 1, 1)]
 void compute_main() {
-  prevent_dce = subgroupBroadcast_f637f9();
+  prevent_dce.Store4(0u, asuint(subgroupBroadcast_f637f9()));
 }
 
+FXC validation failure:
+c:\src\dawn\Shader@0x000001F3B3FCD070(5,14-38): error X3004: undeclared identifier 'WaveReadLaneAt'
+
diff --git a/test/tint/builtins/gen/var/tan/244e2a.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/tan/244e2a.wgsl.expected.ir.dxc.hlsl
index 0ba40c6..2d85a60 100644
--- a/test/tint/builtins/gen/var/tan/244e2a.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/tan/244e2a.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,43 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  float4 prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation float4 VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+float4 tan_244e2a() {
+  float4 arg_0 = (1.0f).xxxx;
+  float4 res = tan(arg_0);
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store4(0u, asuint(tan_244e2a()));
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store4(0u, asuint(tan_244e2a()));
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = tan_244e2a();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
diff --git a/test/tint/builtins/gen/var/tan/244e2a.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/tan/244e2a.wgsl.expected.ir.fxc.hlsl
index 0ba40c6..2d85a60 100644
--- a/test/tint/builtins/gen/var/tan/244e2a.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/tan/244e2a.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,43 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  float4 prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation float4 VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+float4 tan_244e2a() {
+  float4 arg_0 = (1.0f).xxxx;
+  float4 res = tan(arg_0);
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store4(0u, asuint(tan_244e2a()));
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store4(0u, asuint(tan_244e2a()));
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = tan_244e2a();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
diff --git a/test/tint/builtins/gen/var/tan/2f030e.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/tan/2f030e.wgsl.expected.ir.dxc.hlsl
index 0ba40c6..54983d9 100644
--- a/test/tint/builtins/gen/var/tan/2f030e.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/tan/2f030e.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,43 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  float prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation float VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+float tan_2f030e() {
+  float arg_0 = 1.0f;
+  float res = tan(arg_0);
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store(0u, asuint(tan_2f030e()));
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store(0u, asuint(tan_2f030e()));
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = tan_2f030e();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
diff --git a/test/tint/builtins/gen/var/tan/2f030e.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/tan/2f030e.wgsl.expected.ir.fxc.hlsl
index 0ba40c6..54983d9 100644
--- a/test/tint/builtins/gen/var/tan/2f030e.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/tan/2f030e.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,43 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  float prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation float VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+float tan_2f030e() {
+  float arg_0 = 1.0f;
+  float res = tan(arg_0);
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store(0u, asuint(tan_2f030e()));
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store(0u, asuint(tan_2f030e()));
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = tan_2f030e();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
diff --git a/test/tint/builtins/gen/var/tan/311400.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/tan/311400.wgsl.expected.ir.dxc.hlsl
index 0ba40c6..ee5f8ce 100644
--- a/test/tint/builtins/gen/var/tan/311400.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/tan/311400.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,36 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+void tan_311400() {
+  float res = 1.55740773677825927734f;
+}
+
+void fragment_main() {
+  tan_311400();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  tan_311400();
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tan_311400();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  vertex_main_outputs v_2 = {v_1.pos};
+  return v_2;
+}
+
diff --git a/test/tint/builtins/gen/var/tan/311400.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/tan/311400.wgsl.expected.ir.fxc.hlsl
index 0ba40c6..ee5f8ce 100644
--- a/test/tint/builtins/gen/var/tan/311400.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/tan/311400.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,36 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+void tan_311400() {
+  float res = 1.55740773677825927734f;
+}
+
+void fragment_main() {
+  tan_311400();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  tan_311400();
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tan_311400();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  vertex_main_outputs v_2 = {v_1.pos};
+  return v_2;
+}
+
diff --git a/test/tint/builtins/gen/var/tan/539e54.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/tan/539e54.wgsl.expected.ir.dxc.hlsl
index 0ba40c6..e50adf8 100644
--- a/test/tint/builtins/gen/var/tan/539e54.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/tan/539e54.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,43 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  vector<float16_t, 4> prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation vector<float16_t, 4> VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+vector<float16_t, 4> tan_539e54() {
+  vector<float16_t, 4> arg_0 = (float16_t(1.0h)).xxxx;
+  vector<float16_t, 4> res = tan(arg_0);
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store<vector<float16_t, 4> >(0u, tan_539e54());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store<vector<float16_t, 4> >(0u, tan_539e54());
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = tan_539e54();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
diff --git a/test/tint/builtins/gen/var/tan/539e54.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/tan/539e54.wgsl.expected.ir.fxc.hlsl
index 0ba40c6..f4d4f80 100644
--- a/test/tint/builtins/gen/var/tan/539e54.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/tan/539e54.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,48 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct VertexOutput {
+  float4 pos;
+  vector<float16_t, 4> prevent_dce;
+};
+
+struct vertex_main_outputs {
+  nointerpolation vector<float16_t, 4> VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+vector<float16_t, 4> tan_539e54() {
+  vector<float16_t, 4> arg_0 = (float16_t(1.0h)).xxxx;
+  vector<float16_t, 4> res = tan(arg_0);
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store<vector<float16_t, 4> >(0u, tan_539e54());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store<vector<float16_t, 4> >(0u, tan_539e54());
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = tan_539e54();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
+FXC validation failure:
+c:\src\dawn\Shader@0x0000020532764CD0(3,10-18): error X3000: syntax error: unexpected token 'float16_t'
+
diff --git a/test/tint/builtins/gen/var/tan/7be368.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/tan/7be368.wgsl.expected.ir.dxc.hlsl
index 0ba40c6..7bcbc00 100644
--- a/test/tint/builtins/gen/var/tan/7be368.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/tan/7be368.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,36 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+void tan_7be368() {
+  float2 res = (1.55740773677825927734f).xx;
+}
+
+void fragment_main() {
+  tan_7be368();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  tan_7be368();
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tan_7be368();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  vertex_main_outputs v_2 = {v_1.pos};
+  return v_2;
+}
+
diff --git a/test/tint/builtins/gen/var/tan/7be368.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/tan/7be368.wgsl.expected.ir.fxc.hlsl
index 0ba40c6..7bcbc00 100644
--- a/test/tint/builtins/gen/var/tan/7be368.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/tan/7be368.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,36 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+void tan_7be368() {
+  float2 res = (1.55740773677825927734f).xx;
+}
+
+void fragment_main() {
+  tan_7be368();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  tan_7be368();
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tan_7be368();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  vertex_main_outputs v_2 = {v_1.pos};
+  return v_2;
+}
+
diff --git a/test/tint/builtins/gen/var/tan/7ea104.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/tan/7ea104.wgsl.expected.ir.dxc.hlsl
index 0ba40c6..3cdc414 100644
--- a/test/tint/builtins/gen/var/tan/7ea104.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/tan/7ea104.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,43 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  float3 prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation float3 VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+float3 tan_7ea104() {
+  float3 arg_0 = (1.0f).xxx;
+  float3 res = tan(arg_0);
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store3(0u, asuint(tan_7ea104()));
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store3(0u, asuint(tan_7ea104()));
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = tan_7ea104();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
diff --git a/test/tint/builtins/gen/var/tan/7ea104.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/tan/7ea104.wgsl.expected.ir.fxc.hlsl
index 0ba40c6..3cdc414 100644
--- a/test/tint/builtins/gen/var/tan/7ea104.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/tan/7ea104.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,43 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  float3 prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation float3 VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+float3 tan_7ea104() {
+  float3 arg_0 = (1.0f).xxx;
+  float3 res = tan(arg_0);
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store3(0u, asuint(tan_7ea104()));
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store3(0u, asuint(tan_7ea104()));
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = tan_7ea104();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
diff --git a/test/tint/builtins/gen/var/tan/8ce3e9.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/tan/8ce3e9.wgsl.expected.ir.dxc.hlsl
index 0ba40c6..dd79b09 100644
--- a/test/tint/builtins/gen/var/tan/8ce3e9.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/tan/8ce3e9.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,43 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  float2 prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation float2 VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+float2 tan_8ce3e9() {
+  float2 arg_0 = (1.0f).xx;
+  float2 res = tan(arg_0);
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store2(0u, asuint(tan_8ce3e9()));
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store2(0u, asuint(tan_8ce3e9()));
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = tan_8ce3e9();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
diff --git a/test/tint/builtins/gen/var/tan/8ce3e9.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/tan/8ce3e9.wgsl.expected.ir.fxc.hlsl
index 0ba40c6..dd79b09 100644
--- a/test/tint/builtins/gen/var/tan/8ce3e9.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/tan/8ce3e9.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,43 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  float2 prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation float2 VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+float2 tan_8ce3e9() {
+  float2 arg_0 = (1.0f).xx;
+  float2 res = tan(arg_0);
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store2(0u, asuint(tan_8ce3e9()));
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store2(0u, asuint(tan_8ce3e9()));
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = tan_8ce3e9();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
diff --git a/test/tint/builtins/gen/var/tan/9f7c9c.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/tan/9f7c9c.wgsl.expected.ir.dxc.hlsl
index 0ba40c6..ed1d884 100644
--- a/test/tint/builtins/gen/var/tan/9f7c9c.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/tan/9f7c9c.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,43 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  vector<float16_t, 2> prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation vector<float16_t, 2> VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+vector<float16_t, 2> tan_9f7c9c() {
+  vector<float16_t, 2> arg_0 = (float16_t(1.0h)).xx;
+  vector<float16_t, 2> res = tan(arg_0);
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store<vector<float16_t, 2> >(0u, tan_9f7c9c());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store<vector<float16_t, 2> >(0u, tan_9f7c9c());
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = tan_9f7c9c();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
diff --git a/test/tint/builtins/gen/var/tan/9f7c9c.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/tan/9f7c9c.wgsl.expected.ir.fxc.hlsl
index 0ba40c6..a65e0d3 100644
--- a/test/tint/builtins/gen/var/tan/9f7c9c.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/tan/9f7c9c.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,48 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct VertexOutput {
+  float4 pos;
+  vector<float16_t, 2> prevent_dce;
+};
+
+struct vertex_main_outputs {
+  nointerpolation vector<float16_t, 2> VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+vector<float16_t, 2> tan_9f7c9c() {
+  vector<float16_t, 2> arg_0 = (float16_t(1.0h)).xx;
+  vector<float16_t, 2> res = tan(arg_0);
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store<vector<float16_t, 2> >(0u, tan_9f7c9c());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store<vector<float16_t, 2> >(0u, tan_9f7c9c());
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = tan_9f7c9c();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
+FXC validation failure:
+c:\src\dawn\Shader@0x0000021C423573D0(3,10-18): error X3000: syntax error: unexpected token 'float16_t'
+
diff --git a/test/tint/builtins/gen/var/tan/a0966f.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/tan/a0966f.wgsl.expected.ir.dxc.hlsl
index 0ba40c6..20a77bd 100644
--- a/test/tint/builtins/gen/var/tan/a0966f.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/tan/a0966f.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,36 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+void tan_a0966f() {
+  float4 res = (1.55740773677825927734f).xxxx;
+}
+
+void fragment_main() {
+  tan_a0966f();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  tan_a0966f();
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tan_a0966f();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  vertex_main_outputs v_2 = {v_1.pos};
+  return v_2;
+}
+
diff --git a/test/tint/builtins/gen/var/tan/a0966f.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/tan/a0966f.wgsl.expected.ir.fxc.hlsl
index 0ba40c6..20a77bd 100644
--- a/test/tint/builtins/gen/var/tan/a0966f.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/tan/a0966f.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,36 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+void tan_a0966f() {
+  float4 res = (1.55740773677825927734f).xxxx;
+}
+
+void fragment_main() {
+  tan_a0966f();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  tan_a0966f();
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tan_a0966f();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  vertex_main_outputs v_2 = {v_1.pos};
+  return v_2;
+}
+
diff --git a/test/tint/builtins/gen/var/tan/ae26ae.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/tan/ae26ae.wgsl.expected.ir.dxc.hlsl
index 0ba40c6..fa99804 100644
--- a/test/tint/builtins/gen/var/tan/ae26ae.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/tan/ae26ae.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,36 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+void tan_ae26ae() {
+  float3 res = (1.55740773677825927734f).xxx;
+}
+
+void fragment_main() {
+  tan_ae26ae();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  tan_ae26ae();
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tan_ae26ae();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  vertex_main_outputs v_2 = {v_1.pos};
+  return v_2;
+}
+
diff --git a/test/tint/builtins/gen/var/tan/ae26ae.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/tan/ae26ae.wgsl.expected.ir.fxc.hlsl
index 0ba40c6..fa99804 100644
--- a/test/tint/builtins/gen/var/tan/ae26ae.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/tan/ae26ae.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,36 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+void tan_ae26ae() {
+  float3 res = (1.55740773677825927734f).xxx;
+}
+
+void fragment_main() {
+  tan_ae26ae();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  tan_ae26ae();
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tan_ae26ae();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  vertex_main_outputs v_2 = {v_1.pos};
+  return v_2;
+}
+
diff --git a/test/tint/builtins/gen/var/tan/d4d491.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/tan/d4d491.wgsl.expected.ir.dxc.hlsl
index 0ba40c6..c8fe74f 100644
--- a/test/tint/builtins/gen/var/tan/d4d491.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/tan/d4d491.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,43 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  float16_t prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation float16_t VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+float16_t tan_d4d491() {
+  float16_t arg_0 = float16_t(1.0h);
+  float16_t res = tan(arg_0);
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store<float16_t>(0u, tan_d4d491());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store<float16_t>(0u, tan_d4d491());
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = tan_d4d491();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
diff --git a/test/tint/builtins/gen/var/tan/d4d491.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/tan/d4d491.wgsl.expected.ir.fxc.hlsl
index 0ba40c6..f5ab596 100644
--- a/test/tint/builtins/gen/var/tan/d4d491.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/tan/d4d491.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,48 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct VertexOutput {
+  float4 pos;
+  float16_t prevent_dce;
+};
+
+struct vertex_main_outputs {
+  nointerpolation float16_t VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+float16_t tan_d4d491() {
+  float16_t arg_0 = float16_t(1.0h);
+  float16_t res = tan(arg_0);
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store<float16_t>(0u, tan_d4d491());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store<float16_t>(0u, tan_d4d491());
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = tan_d4d491();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
+FXC validation failure:
+c:\src\dawn\Shader@0x0000026314590640(3,3-11): error X3000: unrecognized identifier 'float16_t'
+
diff --git a/test/tint/builtins/gen/var/tan/db0456.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/tan/db0456.wgsl.expected.ir.dxc.hlsl
index 0ba40c6..80917ff 100644
--- a/test/tint/builtins/gen/var/tan/db0456.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/tan/db0456.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,43 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  vector<float16_t, 3> prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation vector<float16_t, 3> VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+vector<float16_t, 3> tan_db0456() {
+  vector<float16_t, 3> arg_0 = (float16_t(1.0h)).xxx;
+  vector<float16_t, 3> res = tan(arg_0);
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store<vector<float16_t, 3> >(0u, tan_db0456());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store<vector<float16_t, 3> >(0u, tan_db0456());
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = tan_db0456();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
diff --git a/test/tint/builtins/gen/var/tan/db0456.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/tan/db0456.wgsl.expected.ir.fxc.hlsl
index 0ba40c6..15eb619 100644
--- a/test/tint/builtins/gen/var/tan/db0456.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/tan/db0456.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,48 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct VertexOutput {
+  float4 pos;
+  vector<float16_t, 3> prevent_dce;
+};
+
+struct vertex_main_outputs {
+  nointerpolation vector<float16_t, 3> VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+vector<float16_t, 3> tan_db0456() {
+  vector<float16_t, 3> arg_0 = (float16_t(1.0h)).xxx;
+  vector<float16_t, 3> res = tan(arg_0);
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store<vector<float16_t, 3> >(0u, tan_db0456());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store<vector<float16_t, 3> >(0u, tan_db0456());
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = tan_db0456();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
+FXC validation failure:
+c:\src\dawn\Shader@0x0000024C1CAF0450(3,10-18): error X3000: syntax error: unexpected token 'float16_t'
+
diff --git a/test/tint/builtins/gen/var/tanh/06a4fe.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/tanh/06a4fe.wgsl.expected.ir.dxc.hlsl
index 0ba40c6..ed97ea4 100644
--- a/test/tint/builtins/gen/var/tanh/06a4fe.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/tanh/06a4fe.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,43 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  vector<float16_t, 3> prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation vector<float16_t, 3> VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+vector<float16_t, 3> tanh_06a4fe() {
+  vector<float16_t, 3> arg_0 = (float16_t(1.0h)).xxx;
+  vector<float16_t, 3> res = tanh(arg_0);
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store<vector<float16_t, 3> >(0u, tanh_06a4fe());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store<vector<float16_t, 3> >(0u, tanh_06a4fe());
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = tanh_06a4fe();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
diff --git a/test/tint/builtins/gen/var/tanh/06a4fe.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/tanh/06a4fe.wgsl.expected.ir.fxc.hlsl
index 0ba40c6..4a5a7e2 100644
--- a/test/tint/builtins/gen/var/tanh/06a4fe.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/tanh/06a4fe.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,48 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct VertexOutput {
+  float4 pos;
+  vector<float16_t, 3> prevent_dce;
+};
+
+struct vertex_main_outputs {
+  nointerpolation vector<float16_t, 3> VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+vector<float16_t, 3> tanh_06a4fe() {
+  vector<float16_t, 3> arg_0 = (float16_t(1.0h)).xxx;
+  vector<float16_t, 3> res = tanh(arg_0);
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store<vector<float16_t, 3> >(0u, tanh_06a4fe());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store<vector<float16_t, 3> >(0u, tanh_06a4fe());
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = tanh_06a4fe();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
+FXC validation failure:
+c:\src\dawn\Shader@0x0000020554693620(3,10-18): error X3000: syntax error: unexpected token 'float16_t'
+
diff --git a/test/tint/builtins/gen/var/tanh/313aa1.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/tanh/313aa1.wgsl.expected.ir.dxc.hlsl
index 0ba40c6..fc692ad 100644
--- a/test/tint/builtins/gen/var/tanh/313aa1.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/tanh/313aa1.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,36 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+void tanh_313aa1() {
+  float res = 0.76159417629241943359f;
+}
+
+void fragment_main() {
+  tanh_313aa1();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  tanh_313aa1();
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tanh_313aa1();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  vertex_main_outputs v_2 = {v_1.pos};
+  return v_2;
+}
+
diff --git a/test/tint/builtins/gen/var/tanh/313aa1.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/tanh/313aa1.wgsl.expected.ir.fxc.hlsl
index 0ba40c6..fc692ad 100644
--- a/test/tint/builtins/gen/var/tanh/313aa1.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/tanh/313aa1.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,36 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+void tanh_313aa1() {
+  float res = 0.76159417629241943359f;
+}
+
+void fragment_main() {
+  tanh_313aa1();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  tanh_313aa1();
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tanh_313aa1();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  vertex_main_outputs v_2 = {v_1.pos};
+  return v_2;
+}
+
diff --git a/test/tint/builtins/gen/var/tanh/5663c5.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/tanh/5663c5.wgsl.expected.ir.dxc.hlsl
index 0ba40c6..7286bca 100644
--- a/test/tint/builtins/gen/var/tanh/5663c5.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/tanh/5663c5.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,43 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  float4 prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation float4 VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+float4 tanh_5663c5() {
+  float4 arg_0 = (1.0f).xxxx;
+  float4 res = tanh(arg_0);
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store4(0u, asuint(tanh_5663c5()));
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store4(0u, asuint(tanh_5663c5()));
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = tanh_5663c5();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
diff --git a/test/tint/builtins/gen/var/tanh/5663c5.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/tanh/5663c5.wgsl.expected.ir.fxc.hlsl
index 0ba40c6..7286bca 100644
--- a/test/tint/builtins/gen/var/tanh/5663c5.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/tanh/5663c5.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,43 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  float4 prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation float4 VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+float4 tanh_5663c5() {
+  float4 arg_0 = (1.0f).xxxx;
+  float4 res = tanh(arg_0);
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store4(0u, asuint(tanh_5663c5()));
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store4(0u, asuint(tanh_5663c5()));
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = tanh_5663c5();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
diff --git a/test/tint/builtins/gen/var/tanh/5724b3.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/tanh/5724b3.wgsl.expected.ir.dxc.hlsl
index 0ba40c6..5d624b7 100644
--- a/test/tint/builtins/gen/var/tanh/5724b3.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/tanh/5724b3.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,43 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  float2 prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation float2 VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+float2 tanh_5724b3() {
+  float2 arg_0 = (1.0f).xx;
+  float2 res = tanh(arg_0);
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store2(0u, asuint(tanh_5724b3()));
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store2(0u, asuint(tanh_5724b3()));
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = tanh_5724b3();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
diff --git a/test/tint/builtins/gen/var/tanh/5724b3.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/tanh/5724b3.wgsl.expected.ir.fxc.hlsl
index 0ba40c6..5d624b7 100644
--- a/test/tint/builtins/gen/var/tanh/5724b3.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/tanh/5724b3.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,43 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  float2 prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation float2 VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+float2 tanh_5724b3() {
+  float2 arg_0 = (1.0f).xx;
+  float2 res = tanh(arg_0);
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store2(0u, asuint(tanh_5724b3()));
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store2(0u, asuint(tanh_5724b3()));
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = tanh_5724b3();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
diff --git a/test/tint/builtins/gen/var/tanh/5b19af.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/tanh/5b19af.wgsl.expected.ir.dxc.hlsl
index 0ba40c6..42397bb 100644
--- a/test/tint/builtins/gen/var/tanh/5b19af.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/tanh/5b19af.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,43 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  float16_t prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation float16_t VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+float16_t tanh_5b19af() {
+  float16_t arg_0 = float16_t(1.0h);
+  float16_t res = tanh(arg_0);
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store<float16_t>(0u, tanh_5b19af());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store<float16_t>(0u, tanh_5b19af());
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = tanh_5b19af();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
diff --git a/test/tint/builtins/gen/var/tanh/5b19af.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/tanh/5b19af.wgsl.expected.ir.fxc.hlsl
index 0ba40c6..82e8f04 100644
--- a/test/tint/builtins/gen/var/tanh/5b19af.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/tanh/5b19af.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,48 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct VertexOutput {
+  float4 pos;
+  float16_t prevent_dce;
+};
+
+struct vertex_main_outputs {
+  nointerpolation float16_t VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+float16_t tanh_5b19af() {
+  float16_t arg_0 = float16_t(1.0h);
+  float16_t res = tanh(arg_0);
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store<float16_t>(0u, tanh_5b19af());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store<float16_t>(0u, tanh_5b19af());
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = tanh_5b19af();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
+FXC validation failure:
+c:\src\dawn\Shader@0x0000029AB18653D0(3,3-11): error X3000: unrecognized identifier 'float16_t'
+
diff --git a/test/tint/builtins/gen/var/tanh/6289fd.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/tanh/6289fd.wgsl.expected.ir.dxc.hlsl
index 0ba40c6..5a6b0e4 100644
--- a/test/tint/builtins/gen/var/tanh/6289fd.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/tanh/6289fd.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,36 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+void tanh_6289fd() {
+  float3 res = (0.76159417629241943359f).xxx;
+}
+
+void fragment_main() {
+  tanh_6289fd();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  tanh_6289fd();
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tanh_6289fd();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  vertex_main_outputs v_2 = {v_1.pos};
+  return v_2;
+}
+
diff --git a/test/tint/builtins/gen/var/tanh/6289fd.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/tanh/6289fd.wgsl.expected.ir.fxc.hlsl
index 0ba40c6..5a6b0e4 100644
--- a/test/tint/builtins/gen/var/tanh/6289fd.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/tanh/6289fd.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,36 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+void tanh_6289fd() {
+  float3 res = (0.76159417629241943359f).xxx;
+}
+
+void fragment_main() {
+  tanh_6289fd();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  tanh_6289fd();
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tanh_6289fd();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  vertex_main_outputs v_2 = {v_1.pos};
+  return v_2;
+}
+
diff --git a/test/tint/builtins/gen/var/tanh/6d105a.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/tanh/6d105a.wgsl.expected.ir.dxc.hlsl
index 0ba40c6..256d580 100644
--- a/test/tint/builtins/gen/var/tanh/6d105a.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/tanh/6d105a.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,43 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  vector<float16_t, 2> prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation vector<float16_t, 2> VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+vector<float16_t, 2> tanh_6d105a() {
+  vector<float16_t, 2> arg_0 = (float16_t(1.0h)).xx;
+  vector<float16_t, 2> res = tanh(arg_0);
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store<vector<float16_t, 2> >(0u, tanh_6d105a());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store<vector<float16_t, 2> >(0u, tanh_6d105a());
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = tanh_6d105a();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
diff --git a/test/tint/builtins/gen/var/tanh/6d105a.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/tanh/6d105a.wgsl.expected.ir.fxc.hlsl
index 0ba40c6..78e303b 100644
--- a/test/tint/builtins/gen/var/tanh/6d105a.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/tanh/6d105a.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,48 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct VertexOutput {
+  float4 pos;
+  vector<float16_t, 2> prevent_dce;
+};
+
+struct vertex_main_outputs {
+  nointerpolation vector<float16_t, 2> VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+vector<float16_t, 2> tanh_6d105a() {
+  vector<float16_t, 2> arg_0 = (float16_t(1.0h)).xx;
+  vector<float16_t, 2> res = tanh(arg_0);
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store<vector<float16_t, 2> >(0u, tanh_6d105a());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store<vector<float16_t, 2> >(0u, tanh_6d105a());
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = tanh_6d105a();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
+FXC validation failure:
+c:\src\dawn\Shader@0x000001F1496CF320(3,10-18): error X3000: syntax error: unexpected token 'float16_t'
+
diff --git a/test/tint/builtins/gen/var/tanh/9f9fb9.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/tanh/9f9fb9.wgsl.expected.ir.dxc.hlsl
index 0ba40c6..6d8be891 100644
--- a/test/tint/builtins/gen/var/tanh/9f9fb9.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/tanh/9f9fb9.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,43 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  float3 prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation float3 VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+float3 tanh_9f9fb9() {
+  float3 arg_0 = (1.0f).xxx;
+  float3 res = tanh(arg_0);
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store3(0u, asuint(tanh_9f9fb9()));
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store3(0u, asuint(tanh_9f9fb9()));
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = tanh_9f9fb9();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
diff --git a/test/tint/builtins/gen/var/tanh/9f9fb9.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/tanh/9f9fb9.wgsl.expected.ir.fxc.hlsl
index 0ba40c6..6d8be891 100644
--- a/test/tint/builtins/gen/var/tanh/9f9fb9.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/tanh/9f9fb9.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,43 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  float3 prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation float3 VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+float3 tanh_9f9fb9() {
+  float3 arg_0 = (1.0f).xxx;
+  float3 res = tanh(arg_0);
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store3(0u, asuint(tanh_9f9fb9()));
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store3(0u, asuint(tanh_9f9fb9()));
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = tanh_9f9fb9();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
diff --git a/test/tint/builtins/gen/var/tanh/ac5d33.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/tanh/ac5d33.wgsl.expected.ir.dxc.hlsl
index 0ba40c6..e369725 100644
--- a/test/tint/builtins/gen/var/tanh/ac5d33.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/tanh/ac5d33.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,36 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+void tanh_ac5d33() {
+  float4 res = (0.76159417629241943359f).xxxx;
+}
+
+void fragment_main() {
+  tanh_ac5d33();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  tanh_ac5d33();
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tanh_ac5d33();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  vertex_main_outputs v_2 = {v_1.pos};
+  return v_2;
+}
+
diff --git a/test/tint/builtins/gen/var/tanh/ac5d33.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/tanh/ac5d33.wgsl.expected.ir.fxc.hlsl
index 0ba40c6..e369725 100644
--- a/test/tint/builtins/gen/var/tanh/ac5d33.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/tanh/ac5d33.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,36 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+void tanh_ac5d33() {
+  float4 res = (0.76159417629241943359f).xxxx;
+}
+
+void fragment_main() {
+  tanh_ac5d33();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  tanh_ac5d33();
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tanh_ac5d33();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  vertex_main_outputs v_2 = {v_1.pos};
+  return v_2;
+}
+
diff --git a/test/tint/builtins/gen/var/tanh/c15fdb.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/tanh/c15fdb.wgsl.expected.ir.dxc.hlsl
index 0ba40c6..0b77970 100644
--- a/test/tint/builtins/gen/var/tanh/c15fdb.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/tanh/c15fdb.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,43 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  float prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation float VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+float tanh_c15fdb() {
+  float arg_0 = 1.0f;
+  float res = tanh(arg_0);
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store(0u, asuint(tanh_c15fdb()));
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store(0u, asuint(tanh_c15fdb()));
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = tanh_c15fdb();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
diff --git a/test/tint/builtins/gen/var/tanh/c15fdb.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/tanh/c15fdb.wgsl.expected.ir.fxc.hlsl
index 0ba40c6..0b77970 100644
--- a/test/tint/builtins/gen/var/tanh/c15fdb.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/tanh/c15fdb.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,43 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  float prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation float VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+float tanh_c15fdb() {
+  float arg_0 = 1.0f;
+  float res = tanh(arg_0);
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store(0u, asuint(tanh_c15fdb()));
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store(0u, asuint(tanh_c15fdb()));
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = tanh_c15fdb();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
diff --git a/test/tint/builtins/gen/var/tanh/c48aa6.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/tanh/c48aa6.wgsl.expected.ir.dxc.hlsl
index 0ba40c6..bdef9ce 100644
--- a/test/tint/builtins/gen/var/tanh/c48aa6.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/tanh/c48aa6.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,36 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+void tanh_c48aa6() {
+  float2 res = (0.76159417629241943359f).xx;
+}
+
+void fragment_main() {
+  tanh_c48aa6();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  tanh_c48aa6();
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tanh_c48aa6();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  vertex_main_outputs v_2 = {v_1.pos};
+  return v_2;
+}
+
diff --git a/test/tint/builtins/gen/var/tanh/c48aa6.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/tanh/c48aa6.wgsl.expected.ir.fxc.hlsl
index 0ba40c6..bdef9ce 100644
--- a/test/tint/builtins/gen/var/tanh/c48aa6.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/tanh/c48aa6.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,36 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+void tanh_c48aa6() {
+  float2 res = (0.76159417629241943359f).xx;
+}
+
+void fragment_main() {
+  tanh_c48aa6();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  tanh_c48aa6();
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tanh_c48aa6();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  vertex_main_outputs v_2 = {v_1.pos};
+  return v_2;
+}
+
diff --git a/test/tint/builtins/gen/var/tanh/e8efb3.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/tanh/e8efb3.wgsl.expected.ir.dxc.hlsl
index 0ba40c6..a4a2fbb 100644
--- a/test/tint/builtins/gen/var/tanh/e8efb3.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/tanh/e8efb3.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,43 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  vector<float16_t, 4> prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation vector<float16_t, 4> VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+vector<float16_t, 4> tanh_e8efb3() {
+  vector<float16_t, 4> arg_0 = (float16_t(1.0h)).xxxx;
+  vector<float16_t, 4> res = tanh(arg_0);
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store<vector<float16_t, 4> >(0u, tanh_e8efb3());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store<vector<float16_t, 4> >(0u, tanh_e8efb3());
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = tanh_e8efb3();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
diff --git a/test/tint/builtins/gen/var/tanh/e8efb3.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/tanh/e8efb3.wgsl.expected.ir.fxc.hlsl
index 0ba40c6..64be2f4 100644
--- a/test/tint/builtins/gen/var/tanh/e8efb3.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/tanh/e8efb3.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,48 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct VertexOutput {
+  float4 pos;
+  vector<float16_t, 4> prevent_dce;
+};
+
+struct vertex_main_outputs {
+  nointerpolation vector<float16_t, 4> VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+vector<float16_t, 4> tanh_e8efb3() {
+  vector<float16_t, 4> arg_0 = (float16_t(1.0h)).xxxx;
+  vector<float16_t, 4> res = tanh(arg_0);
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store<vector<float16_t, 4> >(0u, tanh_e8efb3());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store<vector<float16_t, 4> >(0u, tanh_e8efb3());
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = tanh_e8efb3();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
+FXC validation failure:
+c:\src\dawn\Shader@0x000001D1C26A0720(3,10-18): error X3000: syntax error: unexpected token 'float16_t'
+
diff --git a/test/tint/builtins/gen/var/textureBarrier/3d0f7e.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/textureBarrier/3d0f7e.wgsl.expected.ir.dxc.hlsl
index c59972f..49b9011 100644
--- a/test/tint/builtins/gen/var/textureBarrier/3d0f7e.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureBarrier/3d0f7e.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,10 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureBarrier
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+void textureBarrier_3d0f7e() {
+  DeviceMemoryBarrierWithGroupSync();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  textureBarrier_3d0f7e();
+}
+
diff --git a/test/tint/builtins/gen/var/textureBarrier/3d0f7e.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/textureBarrier/3d0f7e.wgsl.expected.ir.fxc.hlsl
index c59972f..49b9011 100644
--- a/test/tint/builtins/gen/var/textureBarrier/3d0f7e.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureBarrier/3d0f7e.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,10 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureBarrier
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+void textureBarrier_3d0f7e() {
+  DeviceMemoryBarrierWithGroupSync();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  textureBarrier_3d0f7e();
+}
+
diff --git a/test/tint/builtins/gen/var/textureDimensions/00229f.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/textureDimensions/00229f.wgsl.expected.ir.dxc.hlsl
index 1fac62e..56a5e5e 100644
--- a/test/tint/builtins/gen/var/textureDimensions/00229f.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureDimensions/00229f.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,45 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  uint3 prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureDimensions
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation uint3 VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+Texture3D<float4> arg_0 : register(t0, space1);
+uint3 textureDimensions_00229f() {
+  uint3 v = (0u).xxx;
+  arg_0.GetDimensions(v[0u], v[1u], v[2u]);
+  uint3 res = v;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store3(0u, textureDimensions_00229f());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store3(0u, textureDimensions_00229f());
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = textureDimensions_00229f();
+  VertexOutput v_1 = tint_symbol;
+  return v_1;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_2 = vertex_main_inner();
+  VertexOutput v_3 = v_2;
+  VertexOutput v_4 = v_2;
+  vertex_main_outputs v_5 = {v_4.prevent_dce, v_3.pos};
+  return v_5;
+}
+
diff --git a/test/tint/builtins/gen/var/textureDimensions/00229f.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/textureDimensions/00229f.wgsl.expected.ir.fxc.hlsl
index 1fac62e..56a5e5e 100644
--- a/test/tint/builtins/gen/var/textureDimensions/00229f.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureDimensions/00229f.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,45 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  uint3 prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureDimensions
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation uint3 VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+Texture3D<float4> arg_0 : register(t0, space1);
+uint3 textureDimensions_00229f() {
+  uint3 v = (0u).xxx;
+  arg_0.GetDimensions(v[0u], v[1u], v[2u]);
+  uint3 res = v;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store3(0u, textureDimensions_00229f());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store3(0u, textureDimensions_00229f());
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = textureDimensions_00229f();
+  VertexOutput v_1 = tint_symbol;
+  return v_1;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_2 = vertex_main_inner();
+  VertexOutput v_3 = v_2;
+  VertexOutput v_4 = v_2;
+  vertex_main_outputs v_5 = {v_4.prevent_dce, v_3.pos};
+  return v_5;
+}
+
diff --git a/test/tint/builtins/gen/var/textureDimensions/00348c.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/textureDimensions/00348c.wgsl.expected.ir.dxc.hlsl
index 1fac62e..9410e35 100644
--- a/test/tint/builtins/gen/var/textureDimensions/00348c.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureDimensions/00348c.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,45 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  uint2 prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureDimensions
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation uint2 VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+Texture2DMS<int4> arg_0 : register(t0, space1);
+uint2 textureDimensions_00348c() {
+  uint3 v = (0u).xxx;
+  arg_0.GetDimensions(v[0u], v[1u], v[2u]);
+  uint2 res = v.xy;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store2(0u, textureDimensions_00348c());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store2(0u, textureDimensions_00348c());
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = textureDimensions_00348c();
+  VertexOutput v_1 = tint_symbol;
+  return v_1;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_2 = vertex_main_inner();
+  VertexOutput v_3 = v_2;
+  VertexOutput v_4 = v_2;
+  vertex_main_outputs v_5 = {v_4.prevent_dce, v_3.pos};
+  return v_5;
+}
+
diff --git a/test/tint/builtins/gen/var/textureDimensions/00348c.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/textureDimensions/00348c.wgsl.expected.ir.fxc.hlsl
index 1fac62e..9410e35 100644
--- a/test/tint/builtins/gen/var/textureDimensions/00348c.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureDimensions/00348c.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,45 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  uint2 prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureDimensions
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation uint2 VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+Texture2DMS<int4> arg_0 : register(t0, space1);
+uint2 textureDimensions_00348c() {
+  uint3 v = (0u).xxx;
+  arg_0.GetDimensions(v[0u], v[1u], v[2u]);
+  uint2 res = v.xy;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store2(0u, textureDimensions_00348c());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store2(0u, textureDimensions_00348c());
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = textureDimensions_00348c();
+  VertexOutput v_1 = tint_symbol;
+  return v_1;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_2 = vertex_main_inner();
+  VertexOutput v_3 = v_2;
+  VertexOutput v_4 = v_2;
+  vertex_main_outputs v_5 = {v_4.prevent_dce, v_3.pos};
+  return v_5;
+}
+
diff --git a/test/tint/builtins/gen/var/textureDimensions/01e21e.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/textureDimensions/01e21e.wgsl.expected.ir.dxc.hlsl
index 1fac62e..7b909bf 100644
--- a/test/tint/builtins/gen/var/textureDimensions/01e21e.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureDimensions/01e21e.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,19 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureDimensions
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWByteAddressBuffer prevent_dce : register(u0);
+RWTexture1D<uint4> arg_0 : register(u0, space1);
+uint textureDimensions_01e21e() {
+  uint v = 0u;
+  arg_0.GetDimensions(v);
+  uint res = v;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store(0u, textureDimensions_01e21e());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store(0u, textureDimensions_01e21e());
+}
+
diff --git a/test/tint/builtins/gen/var/textureDimensions/01e21e.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/textureDimensions/01e21e.wgsl.expected.ir.fxc.hlsl
index 1fac62e..7b909bf 100644
--- a/test/tint/builtins/gen/var/textureDimensions/01e21e.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureDimensions/01e21e.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,19 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureDimensions
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWByteAddressBuffer prevent_dce : register(u0);
+RWTexture1D<uint4> arg_0 : register(u0, space1);
+uint textureDimensions_01e21e() {
+  uint v = 0u;
+  arg_0.GetDimensions(v);
+  uint res = v;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store(0u, textureDimensions_01e21e());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store(0u, textureDimensions_01e21e());
+}
+
diff --git a/test/tint/builtins/gen/var/textureDimensions/01edb1.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/textureDimensions/01edb1.wgsl.expected.ir.dxc.hlsl
index 1fac62e..15bddb8 100644
--- a/test/tint/builtins/gen/var/textureDimensions/01edb1.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureDimensions/01edb1.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,19 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureDimensions
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWByteAddressBuffer prevent_dce : register(u0);
+RWTexture1D<uint4> arg_0 : register(u0, space1);
+uint textureDimensions_01edb1() {
+  uint v = 0u;
+  arg_0.GetDimensions(v);
+  uint res = v;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store(0u, textureDimensions_01edb1());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store(0u, textureDimensions_01edb1());
+}
+
diff --git a/test/tint/builtins/gen/var/textureDimensions/01edb1.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/textureDimensions/01edb1.wgsl.expected.ir.fxc.hlsl
index 1fac62e..15bddb8 100644
--- a/test/tint/builtins/gen/var/textureDimensions/01edb1.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureDimensions/01edb1.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,19 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureDimensions
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWByteAddressBuffer prevent_dce : register(u0);
+RWTexture1D<uint4> arg_0 : register(u0, space1);
+uint textureDimensions_01edb1() {
+  uint v = 0u;
+  arg_0.GetDimensions(v);
+  uint res = v;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store(0u, textureDimensions_01edb1());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store(0u, textureDimensions_01edb1());
+}
+
diff --git a/test/tint/builtins/gen/var/textureDimensions/022903.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/textureDimensions/022903.wgsl.expected.ir.dxc.hlsl
index 1fac62e..9a4102e 100644
--- a/test/tint/builtins/gen/var/textureDimensions/022903.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureDimensions/022903.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,115 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureDimensions
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : u32;
+
+@group(1) @binding(0) var arg_0 : texture_1d<i32>;
+
+fn textureDimensions_022903() -> u32 {
+  var arg_1 = 1u;
+  var res : u32 = textureDimensions(arg_0, arg_1);
+  return res;
+}
+
+@fragment
+fn fragment_main() {
+  prevent_dce = textureDimensions_022903();
+}
+
+@compute @workgroup_size(1)
+fn compute_main() {
+  prevent_dce = textureDimensions_022903();
+}
+
+struct VertexOutput {
+  @builtin(position)
+  pos : vec4<f32>,
+  @location(0) @interpolate(flat)
+  prevent_dce : u32,
+}
+
+@vertex
+fn vertex_main() -> VertexOutput {
+  var tint_symbol : VertexOutput;
+  tint_symbol.pos = vec4<f32>();
+  tint_symbol.prevent_dce = textureDimensions_022903();
+  return tint_symbol;
+}
+
+Failed to generate: :28:43 error: var: initializer type 'vec2<u32>' does not match store type 'u32'
+    %res:ptr<function, u32, read_write> = var, %13
+                                          ^^^
+
+:17:3 note: in block
+  $B2: {
+  ^^^
+
+note: # Disassembly
+VertexOutput = struct @align(16) {
+  pos:vec4<f32> @offset(0)
+  prevent_dce:u32 @offset(16)
+}
+
+vertex_main_outputs = struct @align(16) {
+  VertexOutput_prevent_dce:u32 @offset(0), @location(0), @interpolate(flat)
+  VertexOutput_pos:vec4<f32> @offset(16), @builtin(position)
+}
+
+$B1: {  # root
+  %prevent_dce:hlsl.byte_address_buffer<read_write> = var @binding_point(0, 0)
+  %arg_0:ptr<handle, texture_1d<i32>, read> = var @binding_point(1, 0)
+}
+
+%textureDimensions_022903 = func():u32 {
+  $B2: {
+    %arg_1:ptr<function, u32, read_write> = var, 1u
+    %5:texture_1d<i32> = load %arg_0
+    %6:u32 = load %arg_1
+    %7:u32 = convert %6
+    %8:ptr<function, vec2<u32>, read_write> = var
+    %9:ptr<function, u32, read_write> = access %8, 0u
+    %10:ptr<function, u32, read_write> = access %8, 1u
+    %11:void = %5.GetDimensions %7, %9, %10
+    %12:vec2<u32> = load %8
+    %13:vec2<u32> = swizzle %12, x
+    %res:ptr<function, u32, read_write> = var, %13
+    %15:u32 = load %res
+    ret %15
+  }
+}
+%fragment_main = @fragment func():void {
+  $B3: {
+    %17:u32 = call %textureDimensions_022903
+    %18:void = %prevent_dce.Store 0u, %17
+    ret
+  }
+}
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B4: {
+    %20:u32 = call %textureDimensions_022903
+    %21:void = %prevent_dce.Store 0u, %20
+    ret
+  }
+}
+%vertex_main_inner = func():VertexOutput {
+  $B5: {
+    %tint_symbol:ptr<function, VertexOutput, read_write> = var
+    %24:ptr<function, vec4<f32>, read_write> = access %tint_symbol, 0u
+    store %24, vec4<f32>(0.0f)
+    %25:ptr<function, u32, read_write> = access %tint_symbol, 1u
+    %26:u32 = call %textureDimensions_022903
+    store %25, %26
+    %27:VertexOutput = load %tint_symbol
+    ret %27
+  }
+}
+%vertex_main = @vertex func():vertex_main_outputs {
+  $B6: {
+    %29:VertexOutput = call %vertex_main_inner
+    %30:vec4<f32> = access %29, 0u
+    %31:u32 = access %29, 1u
+    %32:vertex_main_outputs = construct %31, %30
+    ret %32
+  }
+}
+
diff --git a/test/tint/builtins/gen/var/textureDimensions/022903.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/textureDimensions/022903.wgsl.expected.ir.fxc.hlsl
index 1fac62e..9a4102e 100644
--- a/test/tint/builtins/gen/var/textureDimensions/022903.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureDimensions/022903.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,115 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureDimensions
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : u32;
+
+@group(1) @binding(0) var arg_0 : texture_1d<i32>;
+
+fn textureDimensions_022903() -> u32 {
+  var arg_1 = 1u;
+  var res : u32 = textureDimensions(arg_0, arg_1);
+  return res;
+}
+
+@fragment
+fn fragment_main() {
+  prevent_dce = textureDimensions_022903();
+}
+
+@compute @workgroup_size(1)
+fn compute_main() {
+  prevent_dce = textureDimensions_022903();
+}
+
+struct VertexOutput {
+  @builtin(position)
+  pos : vec4<f32>,
+  @location(0) @interpolate(flat)
+  prevent_dce : u32,
+}
+
+@vertex
+fn vertex_main() -> VertexOutput {
+  var tint_symbol : VertexOutput;
+  tint_symbol.pos = vec4<f32>();
+  tint_symbol.prevent_dce = textureDimensions_022903();
+  return tint_symbol;
+}
+
+Failed to generate: :28:43 error: var: initializer type 'vec2<u32>' does not match store type 'u32'
+    %res:ptr<function, u32, read_write> = var, %13
+                                          ^^^
+
+:17:3 note: in block
+  $B2: {
+  ^^^
+
+note: # Disassembly
+VertexOutput = struct @align(16) {
+  pos:vec4<f32> @offset(0)
+  prevent_dce:u32 @offset(16)
+}
+
+vertex_main_outputs = struct @align(16) {
+  VertexOutput_prevent_dce:u32 @offset(0), @location(0), @interpolate(flat)
+  VertexOutput_pos:vec4<f32> @offset(16), @builtin(position)
+}
+
+$B1: {  # root
+  %prevent_dce:hlsl.byte_address_buffer<read_write> = var @binding_point(0, 0)
+  %arg_0:ptr<handle, texture_1d<i32>, read> = var @binding_point(1, 0)
+}
+
+%textureDimensions_022903 = func():u32 {
+  $B2: {
+    %arg_1:ptr<function, u32, read_write> = var, 1u
+    %5:texture_1d<i32> = load %arg_0
+    %6:u32 = load %arg_1
+    %7:u32 = convert %6
+    %8:ptr<function, vec2<u32>, read_write> = var
+    %9:ptr<function, u32, read_write> = access %8, 0u
+    %10:ptr<function, u32, read_write> = access %8, 1u
+    %11:void = %5.GetDimensions %7, %9, %10
+    %12:vec2<u32> = load %8
+    %13:vec2<u32> = swizzle %12, x
+    %res:ptr<function, u32, read_write> = var, %13
+    %15:u32 = load %res
+    ret %15
+  }
+}
+%fragment_main = @fragment func():void {
+  $B3: {
+    %17:u32 = call %textureDimensions_022903
+    %18:void = %prevent_dce.Store 0u, %17
+    ret
+  }
+}
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B4: {
+    %20:u32 = call %textureDimensions_022903
+    %21:void = %prevent_dce.Store 0u, %20
+    ret
+  }
+}
+%vertex_main_inner = func():VertexOutput {
+  $B5: {
+    %tint_symbol:ptr<function, VertexOutput, read_write> = var
+    %24:ptr<function, vec4<f32>, read_write> = access %tint_symbol, 0u
+    store %24, vec4<f32>(0.0f)
+    %25:ptr<function, u32, read_write> = access %tint_symbol, 1u
+    %26:u32 = call %textureDimensions_022903
+    store %25, %26
+    %27:VertexOutput = load %tint_symbol
+    ret %27
+  }
+}
+%vertex_main = @vertex func():vertex_main_outputs {
+  $B6: {
+    %29:VertexOutput = call %vertex_main_inner
+    %30:vec4<f32> = access %29, 0u
+    %31:u32 = access %29, 1u
+    %32:vertex_main_outputs = construct %31, %30
+    ret %32
+  }
+}
+
diff --git a/test/tint/builtins/gen/var/textureDimensions/0276ec.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/textureDimensions/0276ec.wgsl.expected.ir.dxc.hlsl
index 1fac62e..a2c3154 100644
--- a/test/tint/builtins/gen/var/textureDimensions/0276ec.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureDimensions/0276ec.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,19 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureDimensions
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWByteAddressBuffer prevent_dce : register(u0);
+RWTexture3D<uint4> arg_0 : register(u0, space1);
+uint3 textureDimensions_0276ec() {
+  uint3 v = (0u).xxx;
+  arg_0.GetDimensions(v[0u], v[1u], v[2u]);
+  uint3 res = v;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store3(0u, textureDimensions_0276ec());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store3(0u, textureDimensions_0276ec());
+}
+
diff --git a/test/tint/builtins/gen/var/textureDimensions/0276ec.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/textureDimensions/0276ec.wgsl.expected.ir.fxc.hlsl
index 1fac62e..a2c3154 100644
--- a/test/tint/builtins/gen/var/textureDimensions/0276ec.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureDimensions/0276ec.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,19 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureDimensions
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWByteAddressBuffer prevent_dce : register(u0);
+RWTexture3D<uint4> arg_0 : register(u0, space1);
+uint3 textureDimensions_0276ec() {
+  uint3 v = (0u).xxx;
+  arg_0.GetDimensions(v[0u], v[1u], v[2u]);
+  uint3 res = v;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store3(0u, textureDimensions_0276ec());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store3(0u, textureDimensions_0276ec());
+}
+
diff --git a/test/tint/builtins/gen/var/textureDimensions/029589.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/textureDimensions/029589.wgsl.expected.ir.dxc.hlsl
index 1fac62e..b37efd3 100644
--- a/test/tint/builtins/gen/var/textureDimensions/029589.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureDimensions/029589.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,19 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureDimensions
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWByteAddressBuffer prevent_dce : register(u0);
+RWTexture2DArray<float4> arg_0 : register(u0, space1);
+uint2 textureDimensions_029589() {
+  uint3 v = (0u).xxx;
+  arg_0.GetDimensions(v[0u], v[1u], v[2u]);
+  uint2 res = v.xy;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store2(0u, textureDimensions_029589());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store2(0u, textureDimensions_029589());
+}
+
diff --git a/test/tint/builtins/gen/var/textureDimensions/029589.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/textureDimensions/029589.wgsl.expected.ir.fxc.hlsl
index 1fac62e..b37efd3 100644
--- a/test/tint/builtins/gen/var/textureDimensions/029589.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureDimensions/029589.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,19 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureDimensions
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWByteAddressBuffer prevent_dce : register(u0);
+RWTexture2DArray<float4> arg_0 : register(u0, space1);
+uint2 textureDimensions_029589() {
+  uint3 v = (0u).xxx;
+  arg_0.GetDimensions(v[0u], v[1u], v[2u]);
+  uint2 res = v.xy;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store2(0u, textureDimensions_029589());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store2(0u, textureDimensions_029589());
+}
+
diff --git a/test/tint/builtins/gen/var/textureDimensions/0329b0.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/textureDimensions/0329b0.wgsl.expected.ir.dxc.hlsl
index 1fac62e..10335f4 100644
--- a/test/tint/builtins/gen/var/textureDimensions/0329b0.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureDimensions/0329b0.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,45 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  uint prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureDimensions
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation uint VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+Texture1D<int4> arg_0 : register(t0, space1);
+uint textureDimensions_0329b0() {
+  uint v = 0u;
+  arg_0.GetDimensions(v);
+  uint res = v;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store(0u, textureDimensions_0329b0());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store(0u, textureDimensions_0329b0());
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = textureDimensions_0329b0();
+  VertexOutput v_1 = tint_symbol;
+  return v_1;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_2 = vertex_main_inner();
+  VertexOutput v_3 = v_2;
+  VertexOutput v_4 = v_2;
+  vertex_main_outputs v_5 = {v_4.prevent_dce, v_3.pos};
+  return v_5;
+}
+
diff --git a/test/tint/builtins/gen/var/textureDimensions/0329b0.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/textureDimensions/0329b0.wgsl.expected.ir.fxc.hlsl
index 1fac62e..10335f4 100644
--- a/test/tint/builtins/gen/var/textureDimensions/0329b0.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureDimensions/0329b0.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,45 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  uint prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureDimensions
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation uint VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+Texture1D<int4> arg_0 : register(t0, space1);
+uint textureDimensions_0329b0() {
+  uint v = 0u;
+  arg_0.GetDimensions(v);
+  uint res = v;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store(0u, textureDimensions_0329b0());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store(0u, textureDimensions_0329b0());
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = textureDimensions_0329b0();
+  VertexOutput v_1 = tint_symbol;
+  return v_1;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_2 = vertex_main_inner();
+  VertexOutput v_3 = v_2;
+  VertexOutput v_4 = v_2;
+  vertex_main_outputs v_5 = {v_4.prevent_dce, v_3.pos};
+  return v_5;
+}
+
diff --git a/test/tint/builtins/gen/var/textureDimensions/033195.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/textureDimensions/033195.wgsl.expected.ir.dxc.hlsl
index 1fac62e..3818d3b 100644
--- a/test/tint/builtins/gen/var/textureDimensions/033195.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureDimensions/033195.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,19 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureDimensions
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWByteAddressBuffer prevent_dce : register(u0);
+RWTexture1D<float4> arg_0 : register(u0, space1);
+uint textureDimensions_033195() {
+  uint v = 0u;
+  arg_0.GetDimensions(v);
+  uint res = v;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store(0u, textureDimensions_033195());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store(0u, textureDimensions_033195());
+}
+
diff --git a/test/tint/builtins/gen/var/textureDimensions/033195.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/textureDimensions/033195.wgsl.expected.ir.fxc.hlsl
index 1fac62e..3818d3b 100644
--- a/test/tint/builtins/gen/var/textureDimensions/033195.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureDimensions/033195.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,19 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureDimensions
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWByteAddressBuffer prevent_dce : register(u0);
+RWTexture1D<float4> arg_0 : register(u0, space1);
+uint textureDimensions_033195() {
+  uint v = 0u;
+  arg_0.GetDimensions(v);
+  uint res = v;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store(0u, textureDimensions_033195());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store(0u, textureDimensions_033195());
+}
+
diff --git a/test/tint/builtins/gen/var/textureDimensions/033ea7.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/textureDimensions/033ea7.wgsl.expected.ir.dxc.hlsl
index 1fac62e..fdf04ac 100644
--- a/test/tint/builtins/gen/var/textureDimensions/033ea7.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureDimensions/033ea7.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,45 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  uint prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureDimensions
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation uint VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+Texture1D<float4> arg_0 : register(t0, space1);
+uint textureDimensions_033ea7() {
+  uint v = 0u;
+  arg_0.GetDimensions(v);
+  uint res = v;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store(0u, textureDimensions_033ea7());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store(0u, textureDimensions_033ea7());
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = textureDimensions_033ea7();
+  VertexOutput v_1 = tint_symbol;
+  return v_1;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_2 = vertex_main_inner();
+  VertexOutput v_3 = v_2;
+  VertexOutput v_4 = v_2;
+  vertex_main_outputs v_5 = {v_4.prevent_dce, v_3.pos};
+  return v_5;
+}
+
diff --git a/test/tint/builtins/gen/var/textureDimensions/033ea7.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/textureDimensions/033ea7.wgsl.expected.ir.fxc.hlsl
index 1fac62e..fdf04ac 100644
--- a/test/tint/builtins/gen/var/textureDimensions/033ea7.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureDimensions/033ea7.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,45 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  uint prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureDimensions
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation uint VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+Texture1D<float4> arg_0 : register(t0, space1);
+uint textureDimensions_033ea7() {
+  uint v = 0u;
+  arg_0.GetDimensions(v);
+  uint res = v;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store(0u, textureDimensions_033ea7());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store(0u, textureDimensions_033ea7());
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = textureDimensions_033ea7();
+  VertexOutput v_1 = tint_symbol;
+  return v_1;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_2 = vertex_main_inner();
+  VertexOutput v_3 = v_2;
+  VertexOutput v_4 = v_2;
+  vertex_main_outputs v_5 = {v_4.prevent_dce, v_3.pos};
+  return v_5;
+}
+
diff --git a/test/tint/builtins/gen/var/textureDimensions/038847.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/textureDimensions/038847.wgsl.expected.ir.dxc.hlsl
index 1fac62e..bb4c2da 100644
--- a/test/tint/builtins/gen/var/textureDimensions/038847.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureDimensions/038847.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,19 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureDimensions
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWByteAddressBuffer prevent_dce : register(u0);
+RWTexture1D<int4> arg_0 : register(u0, space1);
+uint textureDimensions_038847() {
+  uint v = 0u;
+  arg_0.GetDimensions(v);
+  uint res = v;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store(0u, textureDimensions_038847());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store(0u, textureDimensions_038847());
+}
+
diff --git a/test/tint/builtins/gen/var/textureDimensions/038847.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/textureDimensions/038847.wgsl.expected.ir.fxc.hlsl
index 1fac62e..bb4c2da 100644
--- a/test/tint/builtins/gen/var/textureDimensions/038847.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureDimensions/038847.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,19 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureDimensions
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWByteAddressBuffer prevent_dce : register(u0);
+RWTexture1D<int4> arg_0 : register(u0, space1);
+uint textureDimensions_038847() {
+  uint v = 0u;
+  arg_0.GetDimensions(v);
+  uint res = v;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store(0u, textureDimensions_038847());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store(0u, textureDimensions_038847());
+}
+
diff --git a/test/tint/builtins/gen/var/textureDimensions/03f81e.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/textureDimensions/03f81e.wgsl.expected.ir.dxc.hlsl
index 1fac62e..37817bf 100644
--- a/test/tint/builtins/gen/var/textureDimensions/03f81e.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureDimensions/03f81e.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,19 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureDimensions
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWByteAddressBuffer prevent_dce : register(u0);
+RWTexture2D<float4> arg_0 : register(u0, space1);
+uint2 textureDimensions_03f81e() {
+  uint2 v = (0u).xx;
+  arg_0.GetDimensions(v[0u], v[1u]);
+  uint2 res = v;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store2(0u, textureDimensions_03f81e());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store2(0u, textureDimensions_03f81e());
+}
+
diff --git a/test/tint/builtins/gen/var/textureDimensions/03f81e.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/textureDimensions/03f81e.wgsl.expected.ir.fxc.hlsl
index 1fac62e..37817bf 100644
--- a/test/tint/builtins/gen/var/textureDimensions/03f81e.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureDimensions/03f81e.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,19 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureDimensions
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWByteAddressBuffer prevent_dce : register(u0);
+RWTexture2D<float4> arg_0 : register(u0, space1);
+uint2 textureDimensions_03f81e() {
+  uint2 v = (0u).xx;
+  arg_0.GetDimensions(v[0u], v[1u]);
+  uint2 res = v;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store2(0u, textureDimensions_03f81e());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store2(0u, textureDimensions_03f81e());
+}
+
diff --git a/test/tint/builtins/gen/var/textureDimensions/07f1ba.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/textureDimensions/07f1ba.wgsl.expected.ir.dxc.hlsl
index 1fac62e..287079b 100644
--- a/test/tint/builtins/gen/var/textureDimensions/07f1ba.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureDimensions/07f1ba.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,45 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  uint2 prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureDimensions
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation uint2 VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+Texture2D<float4> arg_0 : register(t0, space1);
+uint2 textureDimensions_07f1ba() {
+  uint2 v = (0u).xx;
+  arg_0.GetDimensions(v[0u], v[1u]);
+  uint2 res = v;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store2(0u, textureDimensions_07f1ba());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store2(0u, textureDimensions_07f1ba());
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = textureDimensions_07f1ba();
+  VertexOutput v_1 = tint_symbol;
+  return v_1;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_2 = vertex_main_inner();
+  VertexOutput v_3 = v_2;
+  VertexOutput v_4 = v_2;
+  vertex_main_outputs v_5 = {v_4.prevent_dce, v_3.pos};
+  return v_5;
+}
+
diff --git a/test/tint/builtins/gen/var/textureDimensions/07f1ba.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/textureDimensions/07f1ba.wgsl.expected.ir.fxc.hlsl
index 1fac62e..287079b 100644
--- a/test/tint/builtins/gen/var/textureDimensions/07f1ba.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureDimensions/07f1ba.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,45 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  uint2 prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureDimensions
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation uint2 VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+Texture2D<float4> arg_0 : register(t0, space1);
+uint2 textureDimensions_07f1ba() {
+  uint2 v = (0u).xx;
+  arg_0.GetDimensions(v[0u], v[1u]);
+  uint2 res = v;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store2(0u, textureDimensions_07f1ba());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store2(0u, textureDimensions_07f1ba());
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = textureDimensions_07f1ba();
+  VertexOutput v_1 = tint_symbol;
+  return v_1;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_2 = vertex_main_inner();
+  VertexOutput v_3 = v_2;
+  VertexOutput v_4 = v_2;
+  vertex_main_outputs v_5 = {v_4.prevent_dce, v_3.pos};
+  return v_5;
+}
+
diff --git a/test/tint/builtins/gen/var/textureDimensions/088918.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/textureDimensions/088918.wgsl.expected.ir.dxc.hlsl
index 1fac62e..7f48f40 100644
--- a/test/tint/builtins/gen/var/textureDimensions/088918.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureDimensions/088918.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,45 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  uint2 prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureDimensions
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation uint2 VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+Texture2D<float4> arg_0 : register(t0, space1);
+uint2 textureDimensions_088918() {
+  uint2 v = (0u).xx;
+  arg_0.GetDimensions(v[0u], v[1u]);
+  uint2 res = v;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store2(0u, textureDimensions_088918());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store2(0u, textureDimensions_088918());
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = textureDimensions_088918();
+  VertexOutput v_1 = tint_symbol;
+  return v_1;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_2 = vertex_main_inner();
+  VertexOutput v_3 = v_2;
+  VertexOutput v_4 = v_2;
+  vertex_main_outputs v_5 = {v_4.prevent_dce, v_3.pos};
+  return v_5;
+}
+
diff --git a/test/tint/builtins/gen/var/textureDimensions/088918.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/textureDimensions/088918.wgsl.expected.ir.fxc.hlsl
index 1fac62e..7f48f40 100644
--- a/test/tint/builtins/gen/var/textureDimensions/088918.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureDimensions/088918.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,45 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  uint2 prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureDimensions
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation uint2 VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+Texture2D<float4> arg_0 : register(t0, space1);
+uint2 textureDimensions_088918() {
+  uint2 v = (0u).xx;
+  arg_0.GetDimensions(v[0u], v[1u]);
+  uint2 res = v;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store2(0u, textureDimensions_088918());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store2(0u, textureDimensions_088918());
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = textureDimensions_088918();
+  VertexOutput v_1 = tint_symbol;
+  return v_1;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_2 = vertex_main_inner();
+  VertexOutput v_3 = v_2;
+  VertexOutput v_4 = v_2;
+  vertex_main_outputs v_5 = {v_4.prevent_dce, v_3.pos};
+  return v_5;
+}
+
diff --git a/test/tint/builtins/gen/var/textureDimensions/0890c6.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/textureDimensions/0890c6.wgsl.expected.ir.dxc.hlsl
index 1fac62e..1af9761 100644
--- a/test/tint/builtins/gen/var/textureDimensions/0890c6.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureDimensions/0890c6.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,117 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureDimensions
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec3<u32>;
+
+@group(1) @binding(0) var arg_0 : texture_3d<f32>;
+
+fn textureDimensions_0890c6() -> vec3<u32> {
+  var arg_1 = 1u;
+  var res : vec3<u32> = textureDimensions(arg_0, arg_1);
+  return res;
+}
+
+@fragment
+fn fragment_main() {
+  prevent_dce = textureDimensions_0890c6();
+}
+
+@compute @workgroup_size(1)
+fn compute_main() {
+  prevent_dce = textureDimensions_0890c6();
+}
+
+struct VertexOutput {
+  @builtin(position)
+  pos : vec4<f32>,
+  @location(0) @interpolate(flat)
+  prevent_dce : vec3<u32>,
+}
+
+@vertex
+fn vertex_main() -> VertexOutput {
+  var tint_symbol : VertexOutput;
+  tint_symbol.pos = vec4<f32>();
+  tint_symbol.prevent_dce = textureDimensions_0890c6();
+  return tint_symbol;
+}
+
+Failed to generate: :30:49 error: var: initializer type 'vec2<u32>' does not match store type 'vec3<u32>'
+    %res:ptr<function, vec3<u32>, read_write> = var, %15
+                                                ^^^
+
+:17:3 note: in block
+  $B2: {
+  ^^^
+
+note: # Disassembly
+VertexOutput = struct @align(16) {
+  pos:vec4<f32> @offset(0)
+  prevent_dce:vec3<u32> @offset(16)
+}
+
+vertex_main_outputs = struct @align(16) {
+  VertexOutput_prevent_dce:vec3<u32> @offset(0), @location(0), @interpolate(flat)
+  VertexOutput_pos:vec4<f32> @offset(16), @builtin(position)
+}
+
+$B1: {  # root
+  %prevent_dce:hlsl.byte_address_buffer<read_write> = var @binding_point(0, 0)
+  %arg_0:ptr<handle, texture_3d<f32>, read> = var @binding_point(1, 0)
+}
+
+%textureDimensions_0890c6 = func():vec3<u32> {
+  $B2: {
+    %arg_1:ptr<function, u32, read_write> = var, 1u
+    %5:texture_3d<f32> = load %arg_0
+    %6:u32 = load %arg_1
+    %7:u32 = convert %6
+    %8:ptr<function, vec4<u32>, read_write> = var
+    %9:ptr<function, u32, read_write> = access %8, 0u
+    %10:ptr<function, u32, read_write> = access %8, 1u
+    %11:ptr<function, u32, read_write> = access %8, 2u
+    %12:ptr<function, u32, read_write> = access %8, 3u
+    %13:void = %5.GetDimensions %7, %9, %10, %11, %12
+    %14:vec4<u32> = load %8
+    %15:vec2<u32> = swizzle %14, xyz
+    %res:ptr<function, vec3<u32>, read_write> = var, %15
+    %17:vec3<u32> = load %res
+    ret %17
+  }
+}
+%fragment_main = @fragment func():void {
+  $B3: {
+    %19:vec3<u32> = call %textureDimensions_0890c6
+    %20:void = %prevent_dce.Store3 0u, %19
+    ret
+  }
+}
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B4: {
+    %22:vec3<u32> = call %textureDimensions_0890c6
+    %23:void = %prevent_dce.Store3 0u, %22
+    ret
+  }
+}
+%vertex_main_inner = func():VertexOutput {
+  $B5: {
+    %tint_symbol:ptr<function, VertexOutput, read_write> = var
+    %26:ptr<function, vec4<f32>, read_write> = access %tint_symbol, 0u
+    store %26, vec4<f32>(0.0f)
+    %27:ptr<function, vec3<u32>, read_write> = access %tint_symbol, 1u
+    %28:vec3<u32> = call %textureDimensions_0890c6
+    store %27, %28
+    %29:VertexOutput = load %tint_symbol
+    ret %29
+  }
+}
+%vertex_main = @vertex func():vertex_main_outputs {
+  $B6: {
+    %31:VertexOutput = call %vertex_main_inner
+    %32:vec4<f32> = access %31, 0u
+    %33:vec3<u32> = access %31, 1u
+    %34:vertex_main_outputs = construct %33, %32
+    ret %34
+  }
+}
+
diff --git a/test/tint/builtins/gen/var/textureDimensions/0890c6.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/textureDimensions/0890c6.wgsl.expected.ir.fxc.hlsl
index 1fac62e..1af9761 100644
--- a/test/tint/builtins/gen/var/textureDimensions/0890c6.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureDimensions/0890c6.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,117 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureDimensions
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec3<u32>;
+
+@group(1) @binding(0) var arg_0 : texture_3d<f32>;
+
+fn textureDimensions_0890c6() -> vec3<u32> {
+  var arg_1 = 1u;
+  var res : vec3<u32> = textureDimensions(arg_0, arg_1);
+  return res;
+}
+
+@fragment
+fn fragment_main() {
+  prevent_dce = textureDimensions_0890c6();
+}
+
+@compute @workgroup_size(1)
+fn compute_main() {
+  prevent_dce = textureDimensions_0890c6();
+}
+
+struct VertexOutput {
+  @builtin(position)
+  pos : vec4<f32>,
+  @location(0) @interpolate(flat)
+  prevent_dce : vec3<u32>,
+}
+
+@vertex
+fn vertex_main() -> VertexOutput {
+  var tint_symbol : VertexOutput;
+  tint_symbol.pos = vec4<f32>();
+  tint_symbol.prevent_dce = textureDimensions_0890c6();
+  return tint_symbol;
+}
+
+Failed to generate: :30:49 error: var: initializer type 'vec2<u32>' does not match store type 'vec3<u32>'
+    %res:ptr<function, vec3<u32>, read_write> = var, %15
+                                                ^^^
+
+:17:3 note: in block
+  $B2: {
+  ^^^
+
+note: # Disassembly
+VertexOutput = struct @align(16) {
+  pos:vec4<f32> @offset(0)
+  prevent_dce:vec3<u32> @offset(16)
+}
+
+vertex_main_outputs = struct @align(16) {
+  VertexOutput_prevent_dce:vec3<u32> @offset(0), @location(0), @interpolate(flat)
+  VertexOutput_pos:vec4<f32> @offset(16), @builtin(position)
+}
+
+$B1: {  # root
+  %prevent_dce:hlsl.byte_address_buffer<read_write> = var @binding_point(0, 0)
+  %arg_0:ptr<handle, texture_3d<f32>, read> = var @binding_point(1, 0)
+}
+
+%textureDimensions_0890c6 = func():vec3<u32> {
+  $B2: {
+    %arg_1:ptr<function, u32, read_write> = var, 1u
+    %5:texture_3d<f32> = load %arg_0
+    %6:u32 = load %arg_1
+    %7:u32 = convert %6
+    %8:ptr<function, vec4<u32>, read_write> = var
+    %9:ptr<function, u32, read_write> = access %8, 0u
+    %10:ptr<function, u32, read_write> = access %8, 1u
+    %11:ptr<function, u32, read_write> = access %8, 2u
+    %12:ptr<function, u32, read_write> = access %8, 3u
+    %13:void = %5.GetDimensions %7, %9, %10, %11, %12
+    %14:vec4<u32> = load %8
+    %15:vec2<u32> = swizzle %14, xyz
+    %res:ptr<function, vec3<u32>, read_write> = var, %15
+    %17:vec3<u32> = load %res
+    ret %17
+  }
+}
+%fragment_main = @fragment func():void {
+  $B3: {
+    %19:vec3<u32> = call %textureDimensions_0890c6
+    %20:void = %prevent_dce.Store3 0u, %19
+    ret
+  }
+}
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B4: {
+    %22:vec3<u32> = call %textureDimensions_0890c6
+    %23:void = %prevent_dce.Store3 0u, %22
+    ret
+  }
+}
+%vertex_main_inner = func():VertexOutput {
+  $B5: {
+    %tint_symbol:ptr<function, VertexOutput, read_write> = var
+    %26:ptr<function, vec4<f32>, read_write> = access %tint_symbol, 0u
+    store %26, vec4<f32>(0.0f)
+    %27:ptr<function, vec3<u32>, read_write> = access %tint_symbol, 1u
+    %28:vec3<u32> = call %textureDimensions_0890c6
+    store %27, %28
+    %29:VertexOutput = load %tint_symbol
+    ret %29
+  }
+}
+%vertex_main = @vertex func():vertex_main_outputs {
+  $B6: {
+    %31:VertexOutput = call %vertex_main_inner
+    %32:vec4<f32> = access %31, 0u
+    %33:vec3<u32> = access %31, 1u
+    %34:vertex_main_outputs = construct %33, %32
+    ret %34
+  }
+}
+
diff --git a/test/tint/builtins/gen/var/textureDimensions/08e371.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/textureDimensions/08e371.wgsl.expected.ir.dxc.hlsl
index 1fac62e..5bcac10 100644
--- a/test/tint/builtins/gen/var/textureDimensions/08e371.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureDimensions/08e371.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,45 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  uint2 prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureDimensions
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation uint2 VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+Texture2D<int4> arg_0 : register(t0, space1);
+uint2 textureDimensions_08e371() {
+  uint2 v = (0u).xx;
+  arg_0.GetDimensions(v[0u], v[1u]);
+  uint2 res = v;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store2(0u, textureDimensions_08e371());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store2(0u, textureDimensions_08e371());
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = textureDimensions_08e371();
+  VertexOutput v_1 = tint_symbol;
+  return v_1;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_2 = vertex_main_inner();
+  VertexOutput v_3 = v_2;
+  VertexOutput v_4 = v_2;
+  vertex_main_outputs v_5 = {v_4.prevent_dce, v_3.pos};
+  return v_5;
+}
+
diff --git a/test/tint/builtins/gen/var/textureDimensions/08e371.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/textureDimensions/08e371.wgsl.expected.ir.fxc.hlsl
index 1fac62e..5bcac10 100644
--- a/test/tint/builtins/gen/var/textureDimensions/08e371.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureDimensions/08e371.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,45 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  uint2 prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureDimensions
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation uint2 VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+Texture2D<int4> arg_0 : register(t0, space1);
+uint2 textureDimensions_08e371() {
+  uint2 v = (0u).xx;
+  arg_0.GetDimensions(v[0u], v[1u]);
+  uint2 res = v;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store2(0u, textureDimensions_08e371());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store2(0u, textureDimensions_08e371());
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = textureDimensions_08e371();
+  VertexOutput v_1 = tint_symbol;
+  return v_1;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_2 = vertex_main_inner();
+  VertexOutput v_3 = v_2;
+  VertexOutput v_4 = v_2;
+  vertex_main_outputs v_5 = {v_4.prevent_dce, v_3.pos};
+  return v_5;
+}
+
diff --git a/test/tint/builtins/gen/var/textureDimensions/09140b.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/textureDimensions/09140b.wgsl.expected.ir.dxc.hlsl
index 1fac62e..0f3bd36 100644
--- a/test/tint/builtins/gen/var/textureDimensions/09140b.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureDimensions/09140b.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,19 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureDimensions
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWByteAddressBuffer prevent_dce : register(u0);
+RWTexture1D<uint4> arg_0 : register(u0, space1);
+uint textureDimensions_09140b() {
+  uint v = 0u;
+  arg_0.GetDimensions(v);
+  uint res = v;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store(0u, textureDimensions_09140b());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store(0u, textureDimensions_09140b());
+}
+
diff --git a/test/tint/builtins/gen/var/textureDimensions/09140b.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/textureDimensions/09140b.wgsl.expected.ir.fxc.hlsl
index 1fac62e..0f3bd36 100644
--- a/test/tint/builtins/gen/var/textureDimensions/09140b.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureDimensions/09140b.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,19 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureDimensions
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWByteAddressBuffer prevent_dce : register(u0);
+RWTexture1D<uint4> arg_0 : register(u0, space1);
+uint textureDimensions_09140b() {
+  uint v = 0u;
+  arg_0.GetDimensions(v);
+  uint res = v;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store(0u, textureDimensions_09140b());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store(0u, textureDimensions_09140b());
+}
+
diff --git a/test/tint/builtins/gen/var/textureDimensions/0973c9.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/textureDimensions/0973c9.wgsl.expected.ir.dxc.hlsl
index 1fac62e..0e2dcd0 100644
--- a/test/tint/builtins/gen/var/textureDimensions/0973c9.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureDimensions/0973c9.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,19 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureDimensions
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWByteAddressBuffer prevent_dce : register(u0);
+RWTexture2D<uint4> arg_0 : register(u0, space1);
+uint2 textureDimensions_0973c9() {
+  uint2 v = (0u).xx;
+  arg_0.GetDimensions(v[0u], v[1u]);
+  uint2 res = v;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store2(0u, textureDimensions_0973c9());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store2(0u, textureDimensions_0973c9());
+}
+
diff --git a/test/tint/builtins/gen/var/textureDimensions/0973c9.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/textureDimensions/0973c9.wgsl.expected.ir.fxc.hlsl
index 1fac62e..0e2dcd0 100644
--- a/test/tint/builtins/gen/var/textureDimensions/0973c9.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureDimensions/0973c9.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,19 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureDimensions
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWByteAddressBuffer prevent_dce : register(u0);
+RWTexture2D<uint4> arg_0 : register(u0, space1);
+uint2 textureDimensions_0973c9() {
+  uint2 v = (0u).xx;
+  arg_0.GetDimensions(v[0u], v[1u]);
+  uint2 res = v;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store2(0u, textureDimensions_0973c9());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store2(0u, textureDimensions_0973c9());
+}
+
diff --git a/test/tint/builtins/gen/var/textureDimensions/0baa0d.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/textureDimensions/0baa0d.wgsl.expected.ir.dxc.hlsl
index 1fac62e..4c13e8e 100644
--- a/test/tint/builtins/gen/var/textureDimensions/0baa0d.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureDimensions/0baa0d.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,19 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureDimensions
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWByteAddressBuffer prevent_dce : register(u0);
+RWTexture2D<float4> arg_0 : register(u0, space1);
+uint2 textureDimensions_0baa0d() {
+  uint2 v = (0u).xx;
+  arg_0.GetDimensions(v[0u], v[1u]);
+  uint2 res = v;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store2(0u, textureDimensions_0baa0d());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store2(0u, textureDimensions_0baa0d());
+}
+
diff --git a/test/tint/builtins/gen/var/textureDimensions/0baa0d.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/textureDimensions/0baa0d.wgsl.expected.ir.fxc.hlsl
index 1fac62e..4c13e8e 100644
--- a/test/tint/builtins/gen/var/textureDimensions/0baa0d.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureDimensions/0baa0d.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,19 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureDimensions
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWByteAddressBuffer prevent_dce : register(u0);
+RWTexture2D<float4> arg_0 : register(u0, space1);
+uint2 textureDimensions_0baa0d() {
+  uint2 v = (0u).xx;
+  arg_0.GetDimensions(v[0u], v[1u]);
+  uint2 res = v;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store2(0u, textureDimensions_0baa0d());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store2(0u, textureDimensions_0baa0d());
+}
+
diff --git a/test/tint/builtins/gen/var/textureDimensions/0c0b0c.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/textureDimensions/0c0b0c.wgsl.expected.ir.dxc.hlsl
index 1fac62e..b026b54 100644
--- a/test/tint/builtins/gen/var/textureDimensions/0c0b0c.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureDimensions/0c0b0c.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,19 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureDimensions
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWByteAddressBuffer prevent_dce : register(u0);
+RWTexture1D<float4> arg_0 : register(u0, space1);
+uint textureDimensions_0c0b0c() {
+  uint v = 0u;
+  arg_0.GetDimensions(v);
+  uint res = v;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store(0u, textureDimensions_0c0b0c());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store(0u, textureDimensions_0c0b0c());
+}
+
diff --git a/test/tint/builtins/gen/var/textureDimensions/0c0b0c.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/textureDimensions/0c0b0c.wgsl.expected.ir.fxc.hlsl
index 1fac62e..b026b54 100644
--- a/test/tint/builtins/gen/var/textureDimensions/0c0b0c.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureDimensions/0c0b0c.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,19 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureDimensions
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWByteAddressBuffer prevent_dce : register(u0);
+RWTexture1D<float4> arg_0 : register(u0, space1);
+uint textureDimensions_0c0b0c() {
+  uint v = 0u;
+  arg_0.GetDimensions(v);
+  uint res = v;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store(0u, textureDimensions_0c0b0c());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store(0u, textureDimensions_0c0b0c());
+}
+
diff --git a/test/tint/builtins/gen/var/textureDimensions/0d4a7c.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/textureDimensions/0d4a7c.wgsl.expected.ir.dxc.hlsl
index 1fac62e..ba0f6e9 100644
--- a/test/tint/builtins/gen/var/textureDimensions/0d4a7c.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureDimensions/0d4a7c.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,45 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  uint2 prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureDimensions
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation uint2 VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+Texture2D<uint4> arg_0 : register(t0, space1);
+uint2 textureDimensions_0d4a7c() {
+  uint2 v = (0u).xx;
+  arg_0.GetDimensions(v[0u], v[1u]);
+  uint2 res = v;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store2(0u, textureDimensions_0d4a7c());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store2(0u, textureDimensions_0d4a7c());
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = textureDimensions_0d4a7c();
+  VertexOutput v_1 = tint_symbol;
+  return v_1;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_2 = vertex_main_inner();
+  VertexOutput v_3 = v_2;
+  VertexOutput v_4 = v_2;
+  vertex_main_outputs v_5 = {v_4.prevent_dce, v_3.pos};
+  return v_5;
+}
+
diff --git a/test/tint/builtins/gen/var/textureDimensions/0d4a7c.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/textureDimensions/0d4a7c.wgsl.expected.ir.fxc.hlsl
index 1fac62e..ba0f6e9 100644
--- a/test/tint/builtins/gen/var/textureDimensions/0d4a7c.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureDimensions/0d4a7c.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,45 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  uint2 prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureDimensions
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation uint2 VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+Texture2D<uint4> arg_0 : register(t0, space1);
+uint2 textureDimensions_0d4a7c() {
+  uint2 v = (0u).xx;
+  arg_0.GetDimensions(v[0u], v[1u]);
+  uint2 res = v;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store2(0u, textureDimensions_0d4a7c());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store2(0u, textureDimensions_0d4a7c());
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = textureDimensions_0d4a7c();
+  VertexOutput v_1 = tint_symbol;
+  return v_1;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_2 = vertex_main_inner();
+  VertexOutput v_3 = v_2;
+  VertexOutput v_4 = v_2;
+  vertex_main_outputs v_5 = {v_4.prevent_dce, v_3.pos};
+  return v_5;
+}
+
diff --git a/test/tint/builtins/gen/var/textureDimensions/0de70c.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/textureDimensions/0de70c.wgsl.expected.ir.dxc.hlsl
index 1fac62e..8f56acd 100644
--- a/test/tint/builtins/gen/var/textureDimensions/0de70c.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureDimensions/0de70c.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,19 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureDimensions
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWByteAddressBuffer prevent_dce : register(u0);
+RWTexture3D<float4> arg_0 : register(u0, space1);
+uint3 textureDimensions_0de70c() {
+  uint3 v = (0u).xxx;
+  arg_0.GetDimensions(v[0u], v[1u], v[2u]);
+  uint3 res = v;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store3(0u, textureDimensions_0de70c());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store3(0u, textureDimensions_0de70c());
+}
+
diff --git a/test/tint/builtins/gen/var/textureDimensions/0de70c.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/textureDimensions/0de70c.wgsl.expected.ir.fxc.hlsl
index 1fac62e..8f56acd 100644
--- a/test/tint/builtins/gen/var/textureDimensions/0de70c.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureDimensions/0de70c.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,19 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureDimensions
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWByteAddressBuffer prevent_dce : register(u0);
+RWTexture3D<float4> arg_0 : register(u0, space1);
+uint3 textureDimensions_0de70c() {
+  uint3 v = (0u).xxx;
+  arg_0.GetDimensions(v[0u], v[1u], v[2u]);
+  uint3 res = v;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store3(0u, textureDimensions_0de70c());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store3(0u, textureDimensions_0de70c());
+}
+
diff --git a/test/tint/builtins/gen/var/textureDimensions/0ff9a4.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/textureDimensions/0ff9a4.wgsl.expected.ir.dxc.hlsl
index 1fac62e..0d498f2 100644
--- a/test/tint/builtins/gen/var/textureDimensions/0ff9a4.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureDimensions/0ff9a4.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,47 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  uint2 prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureDimensions
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation uint2 VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+TextureCubeArray arg_0 : register(t0, space1);
+uint2 textureDimensions_0ff9a4() {
+  int arg_1 = 1;
+  TextureCubeArray v = arg_0;
+  uint4 v_1 = (0u).xxxx;
+  v.GetDimensions(uint(arg_1), v_1[0u], v_1[1u], v_1[2u], v_1[3u]);
+  uint2 res = v_1.xy;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store2(0u, textureDimensions_0ff9a4());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store2(0u, textureDimensions_0ff9a4());
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = textureDimensions_0ff9a4();
+  VertexOutput v_2 = tint_symbol;
+  return v_2;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_3 = vertex_main_inner();
+  VertexOutput v_4 = v_3;
+  VertexOutput v_5 = v_3;
+  vertex_main_outputs v_6 = {v_5.prevent_dce, v_4.pos};
+  return v_6;
+}
+
diff --git a/test/tint/builtins/gen/var/textureDimensions/0ff9a4.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/textureDimensions/0ff9a4.wgsl.expected.ir.fxc.hlsl
index 1fac62e..0d498f2 100644
--- a/test/tint/builtins/gen/var/textureDimensions/0ff9a4.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureDimensions/0ff9a4.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,47 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  uint2 prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureDimensions
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation uint2 VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+TextureCubeArray arg_0 : register(t0, space1);
+uint2 textureDimensions_0ff9a4() {
+  int arg_1 = 1;
+  TextureCubeArray v = arg_0;
+  uint4 v_1 = (0u).xxxx;
+  v.GetDimensions(uint(arg_1), v_1[0u], v_1[1u], v_1[2u], v_1[3u]);
+  uint2 res = v_1.xy;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store2(0u, textureDimensions_0ff9a4());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store2(0u, textureDimensions_0ff9a4());
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = textureDimensions_0ff9a4();
+  VertexOutput v_2 = tint_symbol;
+  return v_2;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_3 = vertex_main_inner();
+  VertexOutput v_4 = v_3;
+  VertexOutput v_5 = v_3;
+  vertex_main_outputs v_6 = {v_5.prevent_dce, v_4.pos};
+  return v_6;
+}
+
diff --git a/test/tint/builtins/gen/var/textureDimensions/135176.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/textureDimensions/135176.wgsl.expected.ir.dxc.hlsl
index 1fac62e..cba0aa0f 100644
--- a/test/tint/builtins/gen/var/textureDimensions/135176.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureDimensions/135176.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,45 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  uint2 prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureDimensions
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation uint2 VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+Texture2DArray<float4> arg_0 : register(t0, space1);
+uint2 textureDimensions_135176() {
+  uint3 v = (0u).xxx;
+  arg_0.GetDimensions(v[0u], v[1u], v[2u]);
+  uint2 res = v.xy;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store2(0u, textureDimensions_135176());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store2(0u, textureDimensions_135176());
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = textureDimensions_135176();
+  VertexOutput v_1 = tint_symbol;
+  return v_1;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_2 = vertex_main_inner();
+  VertexOutput v_3 = v_2;
+  VertexOutput v_4 = v_2;
+  vertex_main_outputs v_5 = {v_4.prevent_dce, v_3.pos};
+  return v_5;
+}
+
diff --git a/test/tint/builtins/gen/var/textureDimensions/135176.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/textureDimensions/135176.wgsl.expected.ir.fxc.hlsl
index 1fac62e..cba0aa0f 100644
--- a/test/tint/builtins/gen/var/textureDimensions/135176.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureDimensions/135176.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,45 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  uint2 prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureDimensions
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation uint2 VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+Texture2DArray<float4> arg_0 : register(t0, space1);
+uint2 textureDimensions_135176() {
+  uint3 v = (0u).xxx;
+  arg_0.GetDimensions(v[0u], v[1u], v[2u]);
+  uint2 res = v.xy;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store2(0u, textureDimensions_135176());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store2(0u, textureDimensions_135176());
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = textureDimensions_135176();
+  VertexOutput v_1 = tint_symbol;
+  return v_1;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_2 = vertex_main_inner();
+  VertexOutput v_3 = v_2;
+  VertexOutput v_4 = v_2;
+  vertex_main_outputs v_5 = {v_4.prevent_dce, v_3.pos};
+  return v_5;
+}
+
diff --git a/test/tint/builtins/gen/var/textureDimensions/13f8db.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/textureDimensions/13f8db.wgsl.expected.ir.dxc.hlsl
index 1fac62e..3381c10 100644
--- a/test/tint/builtins/gen/var/textureDimensions/13f8db.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureDimensions/13f8db.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,47 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  uint2 prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureDimensions
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation uint2 VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+Texture2D<float4> arg_0 : register(t0, space1);
+uint2 textureDimensions_13f8db() {
+  uint arg_1 = 1u;
+  Texture2D<float4> v = arg_0;
+  uint3 v_1 = (0u).xxx;
+  v.GetDimensions(uint(arg_1), v_1[0u], v_1[1u], v_1[2u]);
+  uint2 res = v_1.xy;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store2(0u, textureDimensions_13f8db());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store2(0u, textureDimensions_13f8db());
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = textureDimensions_13f8db();
+  VertexOutput v_2 = tint_symbol;
+  return v_2;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_3 = vertex_main_inner();
+  VertexOutput v_4 = v_3;
+  VertexOutput v_5 = v_3;
+  vertex_main_outputs v_6 = {v_5.prevent_dce, v_4.pos};
+  return v_6;
+}
+
diff --git a/test/tint/builtins/gen/var/textureDimensions/13f8db.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/textureDimensions/13f8db.wgsl.expected.ir.fxc.hlsl
index 1fac62e..3381c10 100644
--- a/test/tint/builtins/gen/var/textureDimensions/13f8db.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureDimensions/13f8db.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,47 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  uint2 prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureDimensions
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation uint2 VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+Texture2D<float4> arg_0 : register(t0, space1);
+uint2 textureDimensions_13f8db() {
+  uint arg_1 = 1u;
+  Texture2D<float4> v = arg_0;
+  uint3 v_1 = (0u).xxx;
+  v.GetDimensions(uint(arg_1), v_1[0u], v_1[1u], v_1[2u]);
+  uint2 res = v_1.xy;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store2(0u, textureDimensions_13f8db());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store2(0u, textureDimensions_13f8db());
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = textureDimensions_13f8db();
+  VertexOutput v_2 = tint_symbol;
+  return v_2;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_3 = vertex_main_inner();
+  VertexOutput v_4 = v_3;
+  VertexOutput v_5 = v_3;
+  vertex_main_outputs v_6 = {v_5.prevent_dce, v_4.pos};
+  return v_6;
+}
+
diff --git a/test/tint/builtins/gen/var/textureDimensions/1417dd.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/textureDimensions/1417dd.wgsl.expected.ir.dxc.hlsl
index 1fac62e..7c0396a 100644
--- a/test/tint/builtins/gen/var/textureDimensions/1417dd.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureDimensions/1417dd.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,19 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureDimensions
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWByteAddressBuffer prevent_dce : register(u0);
+RWTexture2D<int4> arg_0 : register(u0, space1);
+uint2 textureDimensions_1417dd() {
+  uint2 v = (0u).xx;
+  arg_0.GetDimensions(v[0u], v[1u]);
+  uint2 res = v;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store2(0u, textureDimensions_1417dd());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store2(0u, textureDimensions_1417dd());
+}
+
diff --git a/test/tint/builtins/gen/var/textureDimensions/1417dd.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/textureDimensions/1417dd.wgsl.expected.ir.fxc.hlsl
index 1fac62e..7c0396a 100644
--- a/test/tint/builtins/gen/var/textureDimensions/1417dd.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureDimensions/1417dd.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,19 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureDimensions
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWByteAddressBuffer prevent_dce : register(u0);
+RWTexture2D<int4> arg_0 : register(u0, space1);
+uint2 textureDimensions_1417dd() {
+  uint2 v = (0u).xx;
+  arg_0.GetDimensions(v[0u], v[1u]);
+  uint2 res = v;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store2(0u, textureDimensions_1417dd());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store2(0u, textureDimensions_1417dd());
+}
+
diff --git a/test/tint/builtins/gen/var/textureDimensions/15aa17.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/textureDimensions/15aa17.wgsl.expected.ir.dxc.hlsl
index 1fac62e..a9a72d4 100644
--- a/test/tint/builtins/gen/var/textureDimensions/15aa17.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureDimensions/15aa17.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,19 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureDimensions
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWByteAddressBuffer prevent_dce : register(u0);
+RWTexture3D<int4> arg_0 : register(u0, space1);
+uint3 textureDimensions_15aa17() {
+  uint3 v = (0u).xxx;
+  arg_0.GetDimensions(v[0u], v[1u], v[2u]);
+  uint3 res = v;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store3(0u, textureDimensions_15aa17());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store3(0u, textureDimensions_15aa17());
+}
+
diff --git a/test/tint/builtins/gen/var/textureDimensions/15aa17.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/textureDimensions/15aa17.wgsl.expected.ir.fxc.hlsl
index 1fac62e..a9a72d4 100644
--- a/test/tint/builtins/gen/var/textureDimensions/15aa17.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureDimensions/15aa17.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,19 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureDimensions
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWByteAddressBuffer prevent_dce : register(u0);
+RWTexture3D<int4> arg_0 : register(u0, space1);
+uint3 textureDimensions_15aa17() {
+  uint3 v = (0u).xxx;
+  arg_0.GetDimensions(v[0u], v[1u], v[2u]);
+  uint3 res = v;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store3(0u, textureDimensions_15aa17());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store3(0u, textureDimensions_15aa17());
+}
+
diff --git a/test/tint/builtins/gen/var/textureDimensions/15b577.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/textureDimensions/15b577.wgsl.expected.ir.dxc.hlsl
index 1fac62e..c45c26e 100644
--- a/test/tint/builtins/gen/var/textureDimensions/15b577.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureDimensions/15b577.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,47 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  uint2 prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureDimensions
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation uint2 VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+Texture2D<uint4> arg_0 : register(t0, space1);
+uint2 textureDimensions_15b577() {
+  int arg_1 = 1;
+  Texture2D<uint4> v = arg_0;
+  uint3 v_1 = (0u).xxx;
+  v.GetDimensions(uint(arg_1), v_1[0u], v_1[1u], v_1[2u]);
+  uint2 res = v_1.xy;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store2(0u, textureDimensions_15b577());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store2(0u, textureDimensions_15b577());
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = textureDimensions_15b577();
+  VertexOutput v_2 = tint_symbol;
+  return v_2;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_3 = vertex_main_inner();
+  VertexOutput v_4 = v_3;
+  VertexOutput v_5 = v_3;
+  vertex_main_outputs v_6 = {v_5.prevent_dce, v_4.pos};
+  return v_6;
+}
+
diff --git a/test/tint/builtins/gen/var/textureDimensions/15b577.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/textureDimensions/15b577.wgsl.expected.ir.fxc.hlsl
index 1fac62e..c45c26e 100644
--- a/test/tint/builtins/gen/var/textureDimensions/15b577.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureDimensions/15b577.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,47 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  uint2 prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureDimensions
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation uint2 VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+Texture2D<uint4> arg_0 : register(t0, space1);
+uint2 textureDimensions_15b577() {
+  int arg_1 = 1;
+  Texture2D<uint4> v = arg_0;
+  uint3 v_1 = (0u).xxx;
+  v.GetDimensions(uint(arg_1), v_1[0u], v_1[1u], v_1[2u]);
+  uint2 res = v_1.xy;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store2(0u, textureDimensions_15b577());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store2(0u, textureDimensions_15b577());
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = textureDimensions_15b577();
+  VertexOutput v_2 = tint_symbol;
+  return v_2;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_3 = vertex_main_inner();
+  VertexOutput v_4 = v_3;
+  VertexOutput v_5 = v_3;
+  vertex_main_outputs v_6 = {v_5.prevent_dce, v_4.pos};
+  return v_6;
+}
+
diff --git a/test/tint/builtins/gen/var/textureDimensions/18160d.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/textureDimensions/18160d.wgsl.expected.ir.dxc.hlsl
index 1fac62e..4f59075 100644
--- a/test/tint/builtins/gen/var/textureDimensions/18160d.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureDimensions/18160d.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,19 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureDimensions
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWByteAddressBuffer prevent_dce : register(u0);
+RWTexture2D<float4> arg_0 : register(u0, space1);
+uint2 textureDimensions_18160d() {
+  uint2 v = (0u).xx;
+  arg_0.GetDimensions(v[0u], v[1u]);
+  uint2 res = v;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store2(0u, textureDimensions_18160d());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store2(0u, textureDimensions_18160d());
+}
+
diff --git a/test/tint/builtins/gen/var/textureDimensions/18160d.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/textureDimensions/18160d.wgsl.expected.ir.fxc.hlsl
index 1fac62e..4f59075 100644
--- a/test/tint/builtins/gen/var/textureDimensions/18160d.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureDimensions/18160d.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,19 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureDimensions
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWByteAddressBuffer prevent_dce : register(u0);
+RWTexture2D<float4> arg_0 : register(u0, space1);
+uint2 textureDimensions_18160d() {
+  uint2 v = (0u).xx;
+  arg_0.GetDimensions(v[0u], v[1u]);
+  uint2 res = v;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store2(0u, textureDimensions_18160d());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store2(0u, textureDimensions_18160d());
+}
+
diff --git a/test/tint/builtins/gen/var/textureDimensions/18f19f.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/textureDimensions/18f19f.wgsl.expected.ir.dxc.hlsl
index 1fac62e..63589ae 100644
--- a/test/tint/builtins/gen/var/textureDimensions/18f19f.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureDimensions/18f19f.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,19 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureDimensions
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWByteAddressBuffer prevent_dce : register(u0);
+RWTexture2D<float4> arg_0 : register(u0, space1);
+uint2 textureDimensions_18f19f() {
+  uint2 v = (0u).xx;
+  arg_0.GetDimensions(v[0u], v[1u]);
+  uint2 res = v;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store2(0u, textureDimensions_18f19f());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store2(0u, textureDimensions_18f19f());
+}
+
diff --git a/test/tint/builtins/gen/var/textureDimensions/18f19f.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/textureDimensions/18f19f.wgsl.expected.ir.fxc.hlsl
index 1fac62e..63589ae 100644
--- a/test/tint/builtins/gen/var/textureDimensions/18f19f.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureDimensions/18f19f.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,19 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureDimensions
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWByteAddressBuffer prevent_dce : register(u0);
+RWTexture2D<float4> arg_0 : register(u0, space1);
+uint2 textureDimensions_18f19f() {
+  uint2 v = (0u).xx;
+  arg_0.GetDimensions(v[0u], v[1u]);
+  uint2 res = v;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store2(0u, textureDimensions_18f19f());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store2(0u, textureDimensions_18f19f());
+}
+
diff --git a/test/tint/builtins/gen/var/textureDimensions/1a2be7.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/textureDimensions/1a2be7.wgsl.expected.ir.dxc.hlsl
index 1fac62e..d078821 100644
--- a/test/tint/builtins/gen/var/textureDimensions/1a2be7.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureDimensions/1a2be7.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,45 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  uint3 prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureDimensions
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation uint3 VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+Texture3D<int4> arg_0 : register(t0, space1);
+uint3 textureDimensions_1a2be7() {
+  uint3 v = (0u).xxx;
+  arg_0.GetDimensions(v[0u], v[1u], v[2u]);
+  uint3 res = v;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store3(0u, textureDimensions_1a2be7());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store3(0u, textureDimensions_1a2be7());
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = textureDimensions_1a2be7();
+  VertexOutput v_1 = tint_symbol;
+  return v_1;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_2 = vertex_main_inner();
+  VertexOutput v_3 = v_2;
+  VertexOutput v_4 = v_2;
+  vertex_main_outputs v_5 = {v_4.prevent_dce, v_3.pos};
+  return v_5;
+}
+
diff --git a/test/tint/builtins/gen/var/textureDimensions/1a2be7.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/textureDimensions/1a2be7.wgsl.expected.ir.fxc.hlsl
index 1fac62e..d078821 100644
--- a/test/tint/builtins/gen/var/textureDimensions/1a2be7.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureDimensions/1a2be7.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,45 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  uint3 prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureDimensions
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation uint3 VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+Texture3D<int4> arg_0 : register(t0, space1);
+uint3 textureDimensions_1a2be7() {
+  uint3 v = (0u).xxx;
+  arg_0.GetDimensions(v[0u], v[1u], v[2u]);
+  uint3 res = v;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store3(0u, textureDimensions_1a2be7());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store3(0u, textureDimensions_1a2be7());
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = textureDimensions_1a2be7();
+  VertexOutput v_1 = tint_symbol;
+  return v_1;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_2 = vertex_main_inner();
+  VertexOutput v_3 = v_2;
+  VertexOutput v_4 = v_2;
+  vertex_main_outputs v_5 = {v_4.prevent_dce, v_3.pos};
+  return v_5;
+}
+
diff --git a/test/tint/builtins/gen/var/textureDimensions/1b720f.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/textureDimensions/1b720f.wgsl.expected.ir.dxc.hlsl
index 1fac62e..153bd32 100644
--- a/test/tint/builtins/gen/var/textureDimensions/1b720f.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureDimensions/1b720f.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,45 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  uint3 prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureDimensions
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation uint3 VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+Texture3D<int4> arg_0 : register(t0, space1);
+uint3 textureDimensions_1b720f() {
+  uint3 v = (0u).xxx;
+  arg_0.GetDimensions(v[0u], v[1u], v[2u]);
+  uint3 res = v;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store3(0u, textureDimensions_1b720f());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store3(0u, textureDimensions_1b720f());
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = textureDimensions_1b720f();
+  VertexOutput v_1 = tint_symbol;
+  return v_1;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_2 = vertex_main_inner();
+  VertexOutput v_3 = v_2;
+  VertexOutput v_4 = v_2;
+  vertex_main_outputs v_5 = {v_4.prevent_dce, v_3.pos};
+  return v_5;
+}
+
diff --git a/test/tint/builtins/gen/var/textureDimensions/1b720f.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/textureDimensions/1b720f.wgsl.expected.ir.fxc.hlsl
index 1fac62e..153bd32 100644
--- a/test/tint/builtins/gen/var/textureDimensions/1b720f.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureDimensions/1b720f.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,45 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  uint3 prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureDimensions
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation uint3 VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+Texture3D<int4> arg_0 : register(t0, space1);
+uint3 textureDimensions_1b720f() {
+  uint3 v = (0u).xxx;
+  arg_0.GetDimensions(v[0u], v[1u], v[2u]);
+  uint3 res = v;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store3(0u, textureDimensions_1b720f());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store3(0u, textureDimensions_1b720f());
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = textureDimensions_1b720f();
+  VertexOutput v_1 = tint_symbol;
+  return v_1;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_2 = vertex_main_inner();
+  VertexOutput v_3 = v_2;
+  VertexOutput v_4 = v_2;
+  vertex_main_outputs v_5 = {v_4.prevent_dce, v_3.pos};
+  return v_5;
+}
+
diff --git a/test/tint/builtins/gen/var/textureDimensions/1bc428.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/textureDimensions/1bc428.wgsl.expected.ir.dxc.hlsl
index 1fac62e..419c1fd 100644
--- a/test/tint/builtins/gen/var/textureDimensions/1bc428.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureDimensions/1bc428.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,117 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureDimensions
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec3<u32>;
+
+@group(1) @binding(0) var arg_0 : texture_3d<f32>;
+
+fn textureDimensions_1bc428() -> vec3<u32> {
+  var arg_1 = 1i;
+  var res : vec3<u32> = textureDimensions(arg_0, arg_1);
+  return res;
+}
+
+@fragment
+fn fragment_main() {
+  prevent_dce = textureDimensions_1bc428();
+}
+
+@compute @workgroup_size(1)
+fn compute_main() {
+  prevent_dce = textureDimensions_1bc428();
+}
+
+struct VertexOutput {
+  @builtin(position)
+  pos : vec4<f32>,
+  @location(0) @interpolate(flat)
+  prevent_dce : vec3<u32>,
+}
+
+@vertex
+fn vertex_main() -> VertexOutput {
+  var tint_symbol : VertexOutput;
+  tint_symbol.pos = vec4<f32>();
+  tint_symbol.prevent_dce = textureDimensions_1bc428();
+  return tint_symbol;
+}
+
+Failed to generate: :30:49 error: var: initializer type 'vec2<u32>' does not match store type 'vec3<u32>'
+    %res:ptr<function, vec3<u32>, read_write> = var, %15
+                                                ^^^
+
+:17:3 note: in block
+  $B2: {
+  ^^^
+
+note: # Disassembly
+VertexOutput = struct @align(16) {
+  pos:vec4<f32> @offset(0)
+  prevent_dce:vec3<u32> @offset(16)
+}
+
+vertex_main_outputs = struct @align(16) {
+  VertexOutput_prevent_dce:vec3<u32> @offset(0), @location(0), @interpolate(flat)
+  VertexOutput_pos:vec4<f32> @offset(16), @builtin(position)
+}
+
+$B1: {  # root
+  %prevent_dce:hlsl.byte_address_buffer<read_write> = var @binding_point(0, 0)
+  %arg_0:ptr<handle, texture_3d<f32>, read> = var @binding_point(1, 0)
+}
+
+%textureDimensions_1bc428 = func():vec3<u32> {
+  $B2: {
+    %arg_1:ptr<function, i32, read_write> = var, 1i
+    %5:texture_3d<f32> = load %arg_0
+    %6:i32 = load %arg_1
+    %7:u32 = convert %6
+    %8:ptr<function, vec4<u32>, read_write> = var
+    %9:ptr<function, u32, read_write> = access %8, 0u
+    %10:ptr<function, u32, read_write> = access %8, 1u
+    %11:ptr<function, u32, read_write> = access %8, 2u
+    %12:ptr<function, u32, read_write> = access %8, 3u
+    %13:void = %5.GetDimensions %7, %9, %10, %11, %12
+    %14:vec4<u32> = load %8
+    %15:vec2<u32> = swizzle %14, xyz
+    %res:ptr<function, vec3<u32>, read_write> = var, %15
+    %17:vec3<u32> = load %res
+    ret %17
+  }
+}
+%fragment_main = @fragment func():void {
+  $B3: {
+    %19:vec3<u32> = call %textureDimensions_1bc428
+    %20:void = %prevent_dce.Store3 0u, %19
+    ret
+  }
+}
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B4: {
+    %22:vec3<u32> = call %textureDimensions_1bc428
+    %23:void = %prevent_dce.Store3 0u, %22
+    ret
+  }
+}
+%vertex_main_inner = func():VertexOutput {
+  $B5: {
+    %tint_symbol:ptr<function, VertexOutput, read_write> = var
+    %26:ptr<function, vec4<f32>, read_write> = access %tint_symbol, 0u
+    store %26, vec4<f32>(0.0f)
+    %27:ptr<function, vec3<u32>, read_write> = access %tint_symbol, 1u
+    %28:vec3<u32> = call %textureDimensions_1bc428
+    store %27, %28
+    %29:VertexOutput = load %tint_symbol
+    ret %29
+  }
+}
+%vertex_main = @vertex func():vertex_main_outputs {
+  $B6: {
+    %31:VertexOutput = call %vertex_main_inner
+    %32:vec4<f32> = access %31, 0u
+    %33:vec3<u32> = access %31, 1u
+    %34:vertex_main_outputs = construct %33, %32
+    ret %34
+  }
+}
+
diff --git a/test/tint/builtins/gen/var/textureDimensions/1bc428.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/textureDimensions/1bc428.wgsl.expected.ir.fxc.hlsl
index 1fac62e..419c1fd 100644
--- a/test/tint/builtins/gen/var/textureDimensions/1bc428.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureDimensions/1bc428.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,117 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureDimensions
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec3<u32>;
+
+@group(1) @binding(0) var arg_0 : texture_3d<f32>;
+
+fn textureDimensions_1bc428() -> vec3<u32> {
+  var arg_1 = 1i;
+  var res : vec3<u32> = textureDimensions(arg_0, arg_1);
+  return res;
+}
+
+@fragment
+fn fragment_main() {
+  prevent_dce = textureDimensions_1bc428();
+}
+
+@compute @workgroup_size(1)
+fn compute_main() {
+  prevent_dce = textureDimensions_1bc428();
+}
+
+struct VertexOutput {
+  @builtin(position)
+  pos : vec4<f32>,
+  @location(0) @interpolate(flat)
+  prevent_dce : vec3<u32>,
+}
+
+@vertex
+fn vertex_main() -> VertexOutput {
+  var tint_symbol : VertexOutput;
+  tint_symbol.pos = vec4<f32>();
+  tint_symbol.prevent_dce = textureDimensions_1bc428();
+  return tint_symbol;
+}
+
+Failed to generate: :30:49 error: var: initializer type 'vec2<u32>' does not match store type 'vec3<u32>'
+    %res:ptr<function, vec3<u32>, read_write> = var, %15
+                                                ^^^
+
+:17:3 note: in block
+  $B2: {
+  ^^^
+
+note: # Disassembly
+VertexOutput = struct @align(16) {
+  pos:vec4<f32> @offset(0)
+  prevent_dce:vec3<u32> @offset(16)
+}
+
+vertex_main_outputs = struct @align(16) {
+  VertexOutput_prevent_dce:vec3<u32> @offset(0), @location(0), @interpolate(flat)
+  VertexOutput_pos:vec4<f32> @offset(16), @builtin(position)
+}
+
+$B1: {  # root
+  %prevent_dce:hlsl.byte_address_buffer<read_write> = var @binding_point(0, 0)
+  %arg_0:ptr<handle, texture_3d<f32>, read> = var @binding_point(1, 0)
+}
+
+%textureDimensions_1bc428 = func():vec3<u32> {
+  $B2: {
+    %arg_1:ptr<function, i32, read_write> = var, 1i
+    %5:texture_3d<f32> = load %arg_0
+    %6:i32 = load %arg_1
+    %7:u32 = convert %6
+    %8:ptr<function, vec4<u32>, read_write> = var
+    %9:ptr<function, u32, read_write> = access %8, 0u
+    %10:ptr<function, u32, read_write> = access %8, 1u
+    %11:ptr<function, u32, read_write> = access %8, 2u
+    %12:ptr<function, u32, read_write> = access %8, 3u
+    %13:void = %5.GetDimensions %7, %9, %10, %11, %12
+    %14:vec4<u32> = load %8
+    %15:vec2<u32> = swizzle %14, xyz
+    %res:ptr<function, vec3<u32>, read_write> = var, %15
+    %17:vec3<u32> = load %res
+    ret %17
+  }
+}
+%fragment_main = @fragment func():void {
+  $B3: {
+    %19:vec3<u32> = call %textureDimensions_1bc428
+    %20:void = %prevent_dce.Store3 0u, %19
+    ret
+  }
+}
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B4: {
+    %22:vec3<u32> = call %textureDimensions_1bc428
+    %23:void = %prevent_dce.Store3 0u, %22
+    ret
+  }
+}
+%vertex_main_inner = func():VertexOutput {
+  $B5: {
+    %tint_symbol:ptr<function, VertexOutput, read_write> = var
+    %26:ptr<function, vec4<f32>, read_write> = access %tint_symbol, 0u
+    store %26, vec4<f32>(0.0f)
+    %27:ptr<function, vec3<u32>, read_write> = access %tint_symbol, 1u
+    %28:vec3<u32> = call %textureDimensions_1bc428
+    store %27, %28
+    %29:VertexOutput = load %tint_symbol
+    ret %29
+  }
+}
+%vertex_main = @vertex func():vertex_main_outputs {
+  $B6: {
+    %31:VertexOutput = call %vertex_main_inner
+    %32:vec4<f32> = access %31, 0u
+    %33:vec3<u32> = access %31, 1u
+    %34:vertex_main_outputs = construct %33, %32
+    ret %34
+  }
+}
+
diff --git a/test/tint/builtins/gen/var/textureDimensions/1bd78c.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/textureDimensions/1bd78c.wgsl.expected.ir.dxc.hlsl
index 1fac62e..41690f5 100644
--- a/test/tint/builtins/gen/var/textureDimensions/1bd78c.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureDimensions/1bd78c.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,47 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  uint2 prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureDimensions
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation uint2 VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+Texture2D<float4> arg_0 : register(t0, space1);
+uint2 textureDimensions_1bd78c() {
+  int arg_1 = 1;
+  Texture2D<float4> v = arg_0;
+  uint3 v_1 = (0u).xxx;
+  v.GetDimensions(uint(arg_1), v_1[0u], v_1[1u], v_1[2u]);
+  uint2 res = v_1.xy;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store2(0u, textureDimensions_1bd78c());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store2(0u, textureDimensions_1bd78c());
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = textureDimensions_1bd78c();
+  VertexOutput v_2 = tint_symbol;
+  return v_2;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_3 = vertex_main_inner();
+  VertexOutput v_4 = v_3;
+  VertexOutput v_5 = v_3;
+  vertex_main_outputs v_6 = {v_5.prevent_dce, v_4.pos};
+  return v_6;
+}
+
diff --git a/test/tint/builtins/gen/var/textureDimensions/1bd78c.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/textureDimensions/1bd78c.wgsl.expected.ir.fxc.hlsl
index 1fac62e..41690f5 100644
--- a/test/tint/builtins/gen/var/textureDimensions/1bd78c.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureDimensions/1bd78c.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,47 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  uint2 prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureDimensions
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation uint2 VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+Texture2D<float4> arg_0 : register(t0, space1);
+uint2 textureDimensions_1bd78c() {
+  int arg_1 = 1;
+  Texture2D<float4> v = arg_0;
+  uint3 v_1 = (0u).xxx;
+  v.GetDimensions(uint(arg_1), v_1[0u], v_1[1u], v_1[2u]);
+  uint2 res = v_1.xy;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store2(0u, textureDimensions_1bd78c());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store2(0u, textureDimensions_1bd78c());
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = textureDimensions_1bd78c();
+  VertexOutput v_2 = tint_symbol;
+  return v_2;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_3 = vertex_main_inner();
+  VertexOutput v_4 = v_3;
+  VertexOutput v_5 = v_3;
+  vertex_main_outputs v_6 = {v_5.prevent_dce, v_4.pos};
+  return v_6;
+}
+
diff --git a/test/tint/builtins/gen/var/textureDimensions/1e4024.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/textureDimensions/1e4024.wgsl.expected.ir.dxc.hlsl
index 1fac62e..a632a46 100644
--- a/test/tint/builtins/gen/var/textureDimensions/1e4024.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureDimensions/1e4024.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,19 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureDimensions
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWByteAddressBuffer prevent_dce : register(u0);
+RWTexture2D<float4> arg_0 : register(u0, space1);
+uint2 textureDimensions_1e4024() {
+  uint2 v = (0u).xx;
+  arg_0.GetDimensions(v[0u], v[1u]);
+  uint2 res = v;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store2(0u, textureDimensions_1e4024());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store2(0u, textureDimensions_1e4024());
+}
+
diff --git a/test/tint/builtins/gen/var/textureDimensions/1e4024.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/textureDimensions/1e4024.wgsl.expected.ir.fxc.hlsl
index 1fac62e..a632a46 100644
--- a/test/tint/builtins/gen/var/textureDimensions/1e4024.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureDimensions/1e4024.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,19 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureDimensions
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWByteAddressBuffer prevent_dce : register(u0);
+RWTexture2D<float4> arg_0 : register(u0, space1);
+uint2 textureDimensions_1e4024() {
+  uint2 v = (0u).xx;
+  arg_0.GetDimensions(v[0u], v[1u]);
+  uint2 res = v;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store2(0u, textureDimensions_1e4024());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store2(0u, textureDimensions_1e4024());
+}
+
diff --git a/test/tint/builtins/gen/var/textureDimensions/20eaad.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/textureDimensions/20eaad.wgsl.expected.ir.dxc.hlsl
index 1fac62e..afcdd07 100644
--- a/test/tint/builtins/gen/var/textureDimensions/20eaad.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureDimensions/20eaad.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,19 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureDimensions
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWByteAddressBuffer prevent_dce : register(u0);
+RWTexture3D<int4> arg_0 : register(u0, space1);
+uint3 textureDimensions_20eaad() {
+  uint3 v = (0u).xxx;
+  arg_0.GetDimensions(v[0u], v[1u], v[2u]);
+  uint3 res = v;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store3(0u, textureDimensions_20eaad());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store3(0u, textureDimensions_20eaad());
+}
+
diff --git a/test/tint/builtins/gen/var/textureDimensions/20eaad.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/textureDimensions/20eaad.wgsl.expected.ir.fxc.hlsl
index 1fac62e..afcdd07 100644
--- a/test/tint/builtins/gen/var/textureDimensions/20eaad.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureDimensions/20eaad.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,19 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureDimensions
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWByteAddressBuffer prevent_dce : register(u0);
+RWTexture3D<int4> arg_0 : register(u0, space1);
+uint3 textureDimensions_20eaad() {
+  uint3 v = (0u).xxx;
+  arg_0.GetDimensions(v[0u], v[1u], v[2u]);
+  uint3 res = v;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store3(0u, textureDimensions_20eaad());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store3(0u, textureDimensions_20eaad());
+}
+
diff --git a/test/tint/builtins/gen/var/textureDimensions/20ecef.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/textureDimensions/20ecef.wgsl.expected.ir.dxc.hlsl
index 1fac62e..4c80986 100644
--- a/test/tint/builtins/gen/var/textureDimensions/20ecef.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureDimensions/20ecef.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,19 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureDimensions
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWByteAddressBuffer prevent_dce : register(u0);
+RWTexture1D<float4> arg_0 : register(u0, space1);
+uint textureDimensions_20ecef() {
+  uint v = 0u;
+  arg_0.GetDimensions(v);
+  uint res = v;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store(0u, textureDimensions_20ecef());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store(0u, textureDimensions_20ecef());
+}
+
diff --git a/test/tint/builtins/gen/var/textureDimensions/20ecef.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/textureDimensions/20ecef.wgsl.expected.ir.fxc.hlsl
index 1fac62e..4c80986 100644
--- a/test/tint/builtins/gen/var/textureDimensions/20ecef.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureDimensions/20ecef.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,19 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureDimensions
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWByteAddressBuffer prevent_dce : register(u0);
+RWTexture1D<float4> arg_0 : register(u0, space1);
+uint textureDimensions_20ecef() {
+  uint v = 0u;
+  arg_0.GetDimensions(v);
+  uint res = v;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store(0u, textureDimensions_20ecef());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store(0u, textureDimensions_20ecef());
+}
+
diff --git a/test/tint/builtins/gen/var/textureDimensions/212362.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/textureDimensions/212362.wgsl.expected.ir.dxc.hlsl
index 1fac62e..dc61b8c 100644
--- a/test/tint/builtins/gen/var/textureDimensions/212362.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureDimensions/212362.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,45 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  uint prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureDimensions
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation uint VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+Texture1D<float4> arg_0 : register(t0, space1);
+uint textureDimensions_212362() {
+  uint v = 0u;
+  arg_0.GetDimensions(v);
+  uint res = v;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store(0u, textureDimensions_212362());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store(0u, textureDimensions_212362());
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = textureDimensions_212362();
+  VertexOutput v_1 = tint_symbol;
+  return v_1;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_2 = vertex_main_inner();
+  VertexOutput v_3 = v_2;
+  VertexOutput v_4 = v_2;
+  vertex_main_outputs v_5 = {v_4.prevent_dce, v_3.pos};
+  return v_5;
+}
+
diff --git a/test/tint/builtins/gen/var/textureDimensions/212362.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/textureDimensions/212362.wgsl.expected.ir.fxc.hlsl
index 1fac62e..dc61b8c 100644
--- a/test/tint/builtins/gen/var/textureDimensions/212362.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureDimensions/212362.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,45 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  uint prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureDimensions
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation uint VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+Texture1D<float4> arg_0 : register(t0, space1);
+uint textureDimensions_212362() {
+  uint v = 0u;
+  arg_0.GetDimensions(v);
+  uint res = v;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store(0u, textureDimensions_212362());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store(0u, textureDimensions_212362());
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = textureDimensions_212362();
+  VertexOutput v_1 = tint_symbol;
+  return v_1;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_2 = vertex_main_inner();
+  VertexOutput v_3 = v_2;
+  VertexOutput v_4 = v_2;
+  vertex_main_outputs v_5 = {v_4.prevent_dce, v_3.pos};
+  return v_5;
+}
+
diff --git a/test/tint/builtins/gen/var/textureDimensions/224113.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/textureDimensions/224113.wgsl.expected.ir.dxc.hlsl
index 1fac62e..c96e386 100644
--- a/test/tint/builtins/gen/var/textureDimensions/224113.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureDimensions/224113.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,19 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureDimensions
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWByteAddressBuffer prevent_dce : register(u0);
+RWTexture2D<float4> arg_0 : register(u0, space1);
+uint2 textureDimensions_224113() {
+  uint2 v = (0u).xx;
+  arg_0.GetDimensions(v[0u], v[1u]);
+  uint2 res = v;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store2(0u, textureDimensions_224113());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store2(0u, textureDimensions_224113());
+}
+
diff --git a/test/tint/builtins/gen/var/textureDimensions/224113.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/textureDimensions/224113.wgsl.expected.ir.fxc.hlsl
index 1fac62e..c96e386 100644
--- a/test/tint/builtins/gen/var/textureDimensions/224113.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureDimensions/224113.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,19 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureDimensions
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWByteAddressBuffer prevent_dce : register(u0);
+RWTexture2D<float4> arg_0 : register(u0, space1);
+uint2 textureDimensions_224113() {
+  uint2 v = (0u).xx;
+  arg_0.GetDimensions(v[0u], v[1u]);
+  uint2 res = v;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store2(0u, textureDimensions_224113());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store2(0u, textureDimensions_224113());
+}
+
diff --git a/test/tint/builtins/gen/var/textureDimensions/22b5b6.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/textureDimensions/22b5b6.wgsl.expected.ir.dxc.hlsl
index 1fac62e..efb8a73 100644
--- a/test/tint/builtins/gen/var/textureDimensions/22b5b6.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureDimensions/22b5b6.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,47 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  uint2 prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureDimensions
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation uint2 VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+TextureCubeArray<uint4> arg_0 : register(t0, space1);
+uint2 textureDimensions_22b5b6() {
+  int arg_1 = 1;
+  TextureCubeArray<uint4> v = arg_0;
+  uint4 v_1 = (0u).xxxx;
+  v.GetDimensions(uint(arg_1), v_1[0u], v_1[1u], v_1[2u], v_1[3u]);
+  uint2 res = v_1.xy;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store2(0u, textureDimensions_22b5b6());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store2(0u, textureDimensions_22b5b6());
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = textureDimensions_22b5b6();
+  VertexOutput v_2 = tint_symbol;
+  return v_2;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_3 = vertex_main_inner();
+  VertexOutput v_4 = v_3;
+  VertexOutput v_5 = v_3;
+  vertex_main_outputs v_6 = {v_5.prevent_dce, v_4.pos};
+  return v_6;
+}
+
diff --git a/test/tint/builtins/gen/var/textureDimensions/22b5b6.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/textureDimensions/22b5b6.wgsl.expected.ir.fxc.hlsl
index 1fac62e..efb8a73 100644
--- a/test/tint/builtins/gen/var/textureDimensions/22b5b6.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureDimensions/22b5b6.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,47 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  uint2 prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureDimensions
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation uint2 VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+TextureCubeArray<uint4> arg_0 : register(t0, space1);
+uint2 textureDimensions_22b5b6() {
+  int arg_1 = 1;
+  TextureCubeArray<uint4> v = arg_0;
+  uint4 v_1 = (0u).xxxx;
+  v.GetDimensions(uint(arg_1), v_1[0u], v_1[1u], v_1[2u], v_1[3u]);
+  uint2 res = v_1.xy;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store2(0u, textureDimensions_22b5b6());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store2(0u, textureDimensions_22b5b6());
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = textureDimensions_22b5b6();
+  VertexOutput v_2 = tint_symbol;
+  return v_2;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_3 = vertex_main_inner();
+  VertexOutput v_4 = v_3;
+  VertexOutput v_5 = v_3;
+  vertex_main_outputs v_6 = {v_5.prevent_dce, v_4.pos};
+  return v_6;
+}
+
diff --git a/test/tint/builtins/gen/var/textureDimensions/24db07.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/textureDimensions/24db07.wgsl.expected.ir.dxc.hlsl
index 1fac62e..58cb761 100644
--- a/test/tint/builtins/gen/var/textureDimensions/24db07.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureDimensions/24db07.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,45 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  uint2 prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureDimensions
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation uint2 VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+Texture2D<float4> arg_0 : register(t0, space1);
+uint2 textureDimensions_24db07() {
+  uint2 v = (0u).xx;
+  arg_0.GetDimensions(v[0u], v[1u]);
+  uint2 res = v;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store2(0u, textureDimensions_24db07());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store2(0u, textureDimensions_24db07());
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = textureDimensions_24db07();
+  VertexOutput v_1 = tint_symbol;
+  return v_1;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_2 = vertex_main_inner();
+  VertexOutput v_3 = v_2;
+  VertexOutput v_4 = v_2;
+  vertex_main_outputs v_5 = {v_4.prevent_dce, v_3.pos};
+  return v_5;
+}
+
diff --git a/test/tint/builtins/gen/var/textureDimensions/24db07.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/textureDimensions/24db07.wgsl.expected.ir.fxc.hlsl
index 1fac62e..58cb761 100644
--- a/test/tint/builtins/gen/var/textureDimensions/24db07.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureDimensions/24db07.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,45 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  uint2 prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureDimensions
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation uint2 VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+Texture2D<float4> arg_0 : register(t0, space1);
+uint2 textureDimensions_24db07() {
+  uint2 v = (0u).xx;
+  arg_0.GetDimensions(v[0u], v[1u]);
+  uint2 res = v;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store2(0u, textureDimensions_24db07());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store2(0u, textureDimensions_24db07());
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = textureDimensions_24db07();
+  VertexOutput v_1 = tint_symbol;
+  return v_1;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_2 = vertex_main_inner();
+  VertexOutput v_3 = v_2;
+  VertexOutput v_4 = v_2;
+  vertex_main_outputs v_5 = {v_4.prevent_dce, v_3.pos};
+  return v_5;
+}
+
diff --git a/test/tint/builtins/gen/var/textureDimensions/25d284.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/textureDimensions/25d284.wgsl.expected.ir.dxc.hlsl
index 1fac62e..14f18ae 100644
--- a/test/tint/builtins/gen/var/textureDimensions/25d284.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureDimensions/25d284.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,19 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureDimensions
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWByteAddressBuffer prevent_dce : register(u0);
+RWTexture2DArray<float4> arg_0 : register(u0, space1);
+uint2 textureDimensions_25d284() {
+  uint3 v = (0u).xxx;
+  arg_0.GetDimensions(v[0u], v[1u], v[2u]);
+  uint2 res = v.xy;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store2(0u, textureDimensions_25d284());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store2(0u, textureDimensions_25d284());
+}
+
diff --git a/test/tint/builtins/gen/var/textureDimensions/25d284.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/textureDimensions/25d284.wgsl.expected.ir.fxc.hlsl
index 1fac62e..14f18ae 100644
--- a/test/tint/builtins/gen/var/textureDimensions/25d284.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureDimensions/25d284.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,19 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureDimensions
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWByteAddressBuffer prevent_dce : register(u0);
+RWTexture2DArray<float4> arg_0 : register(u0, space1);
+uint2 textureDimensions_25d284() {
+  uint3 v = (0u).xxx;
+  arg_0.GetDimensions(v[0u], v[1u], v[2u]);
+  uint2 res = v.xy;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store2(0u, textureDimensions_25d284());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store2(0u, textureDimensions_25d284());
+}
+
diff --git a/test/tint/builtins/gen/var/textureDimensions/2674d8.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/textureDimensions/2674d8.wgsl.expected.ir.dxc.hlsl
index 1fac62e..8e3df27 100644
--- a/test/tint/builtins/gen/var/textureDimensions/2674d8.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureDimensions/2674d8.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,19 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureDimensions
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWByteAddressBuffer prevent_dce : register(u0);
+RWTexture2DArray<uint4> arg_0 : register(u0, space1);
+uint2 textureDimensions_2674d8() {
+  uint3 v = (0u).xxx;
+  arg_0.GetDimensions(v[0u], v[1u], v[2u]);
+  uint2 res = v.xy;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store2(0u, textureDimensions_2674d8());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store2(0u, textureDimensions_2674d8());
+}
+
diff --git a/test/tint/builtins/gen/var/textureDimensions/2674d8.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/textureDimensions/2674d8.wgsl.expected.ir.fxc.hlsl
index 1fac62e..8e3df27 100644
--- a/test/tint/builtins/gen/var/textureDimensions/2674d8.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureDimensions/2674d8.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,19 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureDimensions
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWByteAddressBuffer prevent_dce : register(u0);
+RWTexture2DArray<uint4> arg_0 : register(u0, space1);
+uint2 textureDimensions_2674d8() {
+  uint3 v = (0u).xxx;
+  arg_0.GetDimensions(v[0u], v[1u], v[2u]);
+  uint2 res = v.xy;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store2(0u, textureDimensions_2674d8());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store2(0u, textureDimensions_2674d8());
+}
+
diff --git a/test/tint/builtins/gen/var/textureDimensions/268ddb.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/textureDimensions/268ddb.wgsl.expected.ir.dxc.hlsl
index 1fac62e..647e0f7 100644
--- a/test/tint/builtins/gen/var/textureDimensions/268ddb.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureDimensions/268ddb.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,45 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  uint3 prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureDimensions
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation uint3 VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+Texture3D<uint4> arg_0 : register(t0, space1);
+uint3 textureDimensions_268ddb() {
+  uint3 v = (0u).xxx;
+  arg_0.GetDimensions(v[0u], v[1u], v[2u]);
+  uint3 res = v;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store3(0u, textureDimensions_268ddb());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store3(0u, textureDimensions_268ddb());
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = textureDimensions_268ddb();
+  VertexOutput v_1 = tint_symbol;
+  return v_1;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_2 = vertex_main_inner();
+  VertexOutput v_3 = v_2;
+  VertexOutput v_4 = v_2;
+  vertex_main_outputs v_5 = {v_4.prevent_dce, v_3.pos};
+  return v_5;
+}
+
diff --git a/test/tint/builtins/gen/var/textureDimensions/268ddb.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/textureDimensions/268ddb.wgsl.expected.ir.fxc.hlsl
index 1fac62e..647e0f7 100644
--- a/test/tint/builtins/gen/var/textureDimensions/268ddb.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureDimensions/268ddb.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,45 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  uint3 prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureDimensions
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation uint3 VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+Texture3D<uint4> arg_0 : register(t0, space1);
+uint3 textureDimensions_268ddb() {
+  uint3 v = (0u).xxx;
+  arg_0.GetDimensions(v[0u], v[1u], v[2u]);
+  uint3 res = v;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store3(0u, textureDimensions_268ddb());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store3(0u, textureDimensions_268ddb());
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = textureDimensions_268ddb();
+  VertexOutput v_1 = tint_symbol;
+  return v_1;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_2 = vertex_main_inner();
+  VertexOutput v_3 = v_2;
+  VertexOutput v_4 = v_2;
+  vertex_main_outputs v_5 = {v_4.prevent_dce, v_3.pos};
+  return v_5;
+}
+
diff --git a/test/tint/builtins/gen/var/textureDimensions/26d6bf.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/textureDimensions/26d6bf.wgsl.expected.ir.dxc.hlsl
index 1fac62e..3a3ae84 100644
--- a/test/tint/builtins/gen/var/textureDimensions/26d6bf.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureDimensions/26d6bf.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,45 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  uint prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureDimensions
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation uint VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+Texture1D<float4> arg_0 : register(t0, space1);
+uint textureDimensions_26d6bf() {
+  uint v = 0u;
+  arg_0.GetDimensions(v);
+  uint res = v;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store(0u, textureDimensions_26d6bf());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store(0u, textureDimensions_26d6bf());
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = textureDimensions_26d6bf();
+  VertexOutput v_1 = tint_symbol;
+  return v_1;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_2 = vertex_main_inner();
+  VertexOutput v_3 = v_2;
+  VertexOutput v_4 = v_2;
+  vertex_main_outputs v_5 = {v_4.prevent_dce, v_3.pos};
+  return v_5;
+}
+
diff --git a/test/tint/builtins/gen/var/textureDimensions/26d6bf.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/textureDimensions/26d6bf.wgsl.expected.ir.fxc.hlsl
index 1fac62e..3a3ae84 100644
--- a/test/tint/builtins/gen/var/textureDimensions/26d6bf.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureDimensions/26d6bf.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,45 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  uint prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureDimensions
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation uint VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+Texture1D<float4> arg_0 : register(t0, space1);
+uint textureDimensions_26d6bf() {
+  uint v = 0u;
+  arg_0.GetDimensions(v);
+  uint res = v;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store(0u, textureDimensions_26d6bf());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store(0u, textureDimensions_26d6bf());
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = textureDimensions_26d6bf();
+  VertexOutput v_1 = tint_symbol;
+  return v_1;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_2 = vertex_main_inner();
+  VertexOutput v_3 = v_2;
+  VertexOutput v_4 = v_2;
+  vertex_main_outputs v_5 = {v_4.prevent_dce, v_3.pos};
+  return v_5;
+}
+
diff --git a/test/tint/builtins/gen/var/textureDimensions/282978.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/textureDimensions/282978.wgsl.expected.ir.dxc.hlsl
index 1fac62e..ced44ee 100644
--- a/test/tint/builtins/gen/var/textureDimensions/282978.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureDimensions/282978.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,19 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureDimensions
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWByteAddressBuffer prevent_dce : register(u0);
+RWTexture3D<float4> arg_0 : register(u0, space1);
+uint3 textureDimensions_282978() {
+  uint3 v = (0u).xxx;
+  arg_0.GetDimensions(v[0u], v[1u], v[2u]);
+  uint3 res = v;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store3(0u, textureDimensions_282978());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store3(0u, textureDimensions_282978());
+}
+
diff --git a/test/tint/builtins/gen/var/textureDimensions/282978.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/textureDimensions/282978.wgsl.expected.ir.fxc.hlsl
index 1fac62e..ced44ee 100644
--- a/test/tint/builtins/gen/var/textureDimensions/282978.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureDimensions/282978.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,19 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureDimensions
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWByteAddressBuffer prevent_dce : register(u0);
+RWTexture3D<float4> arg_0 : register(u0, space1);
+uint3 textureDimensions_282978() {
+  uint3 v = (0u).xxx;
+  arg_0.GetDimensions(v[0u], v[1u], v[2u]);
+  uint3 res = v;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store3(0u, textureDimensions_282978());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store3(0u, textureDimensions_282978());
+}
+
diff --git a/test/tint/builtins/gen/var/textureDimensions/283b58.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/textureDimensions/283b58.wgsl.expected.ir.dxc.hlsl
index 1fac62e..89a8e67 100644
--- a/test/tint/builtins/gen/var/textureDimensions/283b58.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureDimensions/283b58.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,19 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureDimensions
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWByteAddressBuffer prevent_dce : register(u0);
+RWTexture1D<float4> arg_0 : register(u0, space1);
+uint textureDimensions_283b58() {
+  uint v = 0u;
+  arg_0.GetDimensions(v);
+  uint res = v;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store(0u, textureDimensions_283b58());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store(0u, textureDimensions_283b58());
+}
+
diff --git a/test/tint/builtins/gen/var/textureDimensions/283b58.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/textureDimensions/283b58.wgsl.expected.ir.fxc.hlsl
index 1fac62e..89a8e67 100644
--- a/test/tint/builtins/gen/var/textureDimensions/283b58.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureDimensions/283b58.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,19 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureDimensions
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWByteAddressBuffer prevent_dce : register(u0);
+RWTexture1D<float4> arg_0 : register(u0, space1);
+uint textureDimensions_283b58() {
+  uint v = 0u;
+  arg_0.GetDimensions(v);
+  uint res = v;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store(0u, textureDimensions_283b58());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store(0u, textureDimensions_283b58());
+}
+
diff --git a/test/tint/builtins/gen/var/textureDimensions/284c27.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/textureDimensions/284c27.wgsl.expected.ir.dxc.hlsl
index 1fac62e..5731c47 100644
--- a/test/tint/builtins/gen/var/textureDimensions/284c27.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureDimensions/284c27.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,45 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  uint prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureDimensions
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation uint VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+Texture1D<float4> arg_0 : register(t0, space1);
+uint textureDimensions_284c27() {
+  uint v = 0u;
+  arg_0.GetDimensions(v);
+  uint res = v;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store(0u, textureDimensions_284c27());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store(0u, textureDimensions_284c27());
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = textureDimensions_284c27();
+  VertexOutput v_1 = tint_symbol;
+  return v_1;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_2 = vertex_main_inner();
+  VertexOutput v_3 = v_2;
+  VertexOutput v_4 = v_2;
+  vertex_main_outputs v_5 = {v_4.prevent_dce, v_3.pos};
+  return v_5;
+}
+
diff --git a/test/tint/builtins/gen/var/textureDimensions/284c27.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/textureDimensions/284c27.wgsl.expected.ir.fxc.hlsl
index 1fac62e..5731c47 100644
--- a/test/tint/builtins/gen/var/textureDimensions/284c27.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureDimensions/284c27.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,45 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  uint prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureDimensions
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation uint VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+Texture1D<float4> arg_0 : register(t0, space1);
+uint textureDimensions_284c27() {
+  uint v = 0u;
+  arg_0.GetDimensions(v);
+  uint res = v;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store(0u, textureDimensions_284c27());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store(0u, textureDimensions_284c27());
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = textureDimensions_284c27();
+  VertexOutput v_1 = tint_symbol;
+  return v_1;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_2 = vertex_main_inner();
+  VertexOutput v_3 = v_2;
+  VertexOutput v_4 = v_2;
+  vertex_main_outputs v_5 = {v_4.prevent_dce, v_3.pos};
+  return v_5;
+}
+
diff --git a/test/tint/builtins/gen/var/textureDimensions/2a58b7.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/textureDimensions/2a58b7.wgsl.expected.ir.dxc.hlsl
index 1fac62e..84e3d8e 100644
--- a/test/tint/builtins/gen/var/textureDimensions/2a58b7.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureDimensions/2a58b7.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,19 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureDimensions
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWByteAddressBuffer prevent_dce : register(u0);
+RWTexture2DArray<int4> arg_0 : register(u0, space1);
+uint2 textureDimensions_2a58b7() {
+  uint3 v = (0u).xxx;
+  arg_0.GetDimensions(v[0u], v[1u], v[2u]);
+  uint2 res = v.xy;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store2(0u, textureDimensions_2a58b7());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store2(0u, textureDimensions_2a58b7());
+}
+
diff --git a/test/tint/builtins/gen/var/textureDimensions/2a58b7.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/textureDimensions/2a58b7.wgsl.expected.ir.fxc.hlsl
index 1fac62e..84e3d8e 100644
--- a/test/tint/builtins/gen/var/textureDimensions/2a58b7.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureDimensions/2a58b7.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,19 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureDimensions
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWByteAddressBuffer prevent_dce : register(u0);
+RWTexture2DArray<int4> arg_0 : register(u0, space1);
+uint2 textureDimensions_2a58b7() {
+  uint3 v = (0u).xxx;
+  arg_0.GetDimensions(v[0u], v[1u], v[2u]);
+  uint2 res = v.xy;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store2(0u, textureDimensions_2a58b7());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store2(0u, textureDimensions_2a58b7());
+}
+
diff --git a/test/tint/builtins/gen/var/textureDimensions/2bafdf.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/textureDimensions/2bafdf.wgsl.expected.ir.dxc.hlsl
index 1fac62e..eff82d2 100644
--- a/test/tint/builtins/gen/var/textureDimensions/2bafdf.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureDimensions/2bafdf.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,45 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  uint prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureDimensions
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation uint VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+Texture1D<float4> arg_0 : register(t0, space1);
+uint textureDimensions_2bafdf() {
+  uint v = 0u;
+  arg_0.GetDimensions(v);
+  uint res = v;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store(0u, textureDimensions_2bafdf());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store(0u, textureDimensions_2bafdf());
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = textureDimensions_2bafdf();
+  VertexOutput v_1 = tint_symbol;
+  return v_1;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_2 = vertex_main_inner();
+  VertexOutput v_3 = v_2;
+  VertexOutput v_4 = v_2;
+  vertex_main_outputs v_5 = {v_4.prevent_dce, v_3.pos};
+  return v_5;
+}
+
diff --git a/test/tint/builtins/gen/var/textureDimensions/2bafdf.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/textureDimensions/2bafdf.wgsl.expected.ir.fxc.hlsl
index 1fac62e..eff82d2 100644
--- a/test/tint/builtins/gen/var/textureDimensions/2bafdf.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureDimensions/2bafdf.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,45 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  uint prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureDimensions
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation uint VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+Texture1D<float4> arg_0 : register(t0, space1);
+uint textureDimensions_2bafdf() {
+  uint v = 0u;
+  arg_0.GetDimensions(v);
+  uint res = v;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store(0u, textureDimensions_2bafdf());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store(0u, textureDimensions_2bafdf());
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = textureDimensions_2bafdf();
+  VertexOutput v_1 = tint_symbol;
+  return v_1;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_2 = vertex_main_inner();
+  VertexOutput v_3 = v_2;
+  VertexOutput v_4 = v_2;
+  vertex_main_outputs v_5 = {v_4.prevent_dce, v_3.pos};
+  return v_5;
+}
+
diff --git a/test/tint/builtins/gen/var/textureDimensions/2dc5c5.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/textureDimensions/2dc5c5.wgsl.expected.ir.dxc.hlsl
index 1fac62e..f02b526 100644
--- a/test/tint/builtins/gen/var/textureDimensions/2dc5c5.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureDimensions/2dc5c5.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,45 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  uint prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureDimensions
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation uint VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+Texture1D<uint4> arg_0 : register(t0, space1);
+uint textureDimensions_2dc5c5() {
+  uint v = 0u;
+  arg_0.GetDimensions(v);
+  uint res = v;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store(0u, textureDimensions_2dc5c5());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store(0u, textureDimensions_2dc5c5());
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = textureDimensions_2dc5c5();
+  VertexOutput v_1 = tint_symbol;
+  return v_1;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_2 = vertex_main_inner();
+  VertexOutput v_3 = v_2;
+  VertexOutput v_4 = v_2;
+  vertex_main_outputs v_5 = {v_4.prevent_dce, v_3.pos};
+  return v_5;
+}
+
diff --git a/test/tint/builtins/gen/var/textureDimensions/2dc5c5.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/textureDimensions/2dc5c5.wgsl.expected.ir.fxc.hlsl
index 1fac62e..f02b526 100644
--- a/test/tint/builtins/gen/var/textureDimensions/2dc5c5.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureDimensions/2dc5c5.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,45 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  uint prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureDimensions
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation uint VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+Texture1D<uint4> arg_0 : register(t0, space1);
+uint textureDimensions_2dc5c5() {
+  uint v = 0u;
+  arg_0.GetDimensions(v);
+  uint res = v;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store(0u, textureDimensions_2dc5c5());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store(0u, textureDimensions_2dc5c5());
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = textureDimensions_2dc5c5();
+  VertexOutput v_1 = tint_symbol;
+  return v_1;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_2 = vertex_main_inner();
+  VertexOutput v_3 = v_2;
+  VertexOutput v_4 = v_2;
+  vertex_main_outputs v_5 = {v_4.prevent_dce, v_3.pos};
+  return v_5;
+}
+
diff --git a/test/tint/builtins/gen/var/textureDimensions/2e443d.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/textureDimensions/2e443d.wgsl.expected.ir.dxc.hlsl
index 1fac62e..92f7839 100644
--- a/test/tint/builtins/gen/var/textureDimensions/2e443d.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureDimensions/2e443d.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,47 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  uint2 prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureDimensions
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation uint2 VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+Texture2D<int4> arg_0 : register(t0, space1);
+uint2 textureDimensions_2e443d() {
+  int arg_1 = 1;
+  Texture2D<int4> v = arg_0;
+  uint3 v_1 = (0u).xxx;
+  v.GetDimensions(uint(arg_1), v_1[0u], v_1[1u], v_1[2u]);
+  uint2 res = v_1.xy;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store2(0u, textureDimensions_2e443d());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store2(0u, textureDimensions_2e443d());
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = textureDimensions_2e443d();
+  VertexOutput v_2 = tint_symbol;
+  return v_2;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_3 = vertex_main_inner();
+  VertexOutput v_4 = v_3;
+  VertexOutput v_5 = v_3;
+  vertex_main_outputs v_6 = {v_5.prevent_dce, v_4.pos};
+  return v_6;
+}
+
diff --git a/test/tint/builtins/gen/var/textureDimensions/2e443d.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/textureDimensions/2e443d.wgsl.expected.ir.fxc.hlsl
index 1fac62e..92f7839 100644
--- a/test/tint/builtins/gen/var/textureDimensions/2e443d.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureDimensions/2e443d.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,47 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  uint2 prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureDimensions
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation uint2 VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+Texture2D<int4> arg_0 : register(t0, space1);
+uint2 textureDimensions_2e443d() {
+  int arg_1 = 1;
+  Texture2D<int4> v = arg_0;
+  uint3 v_1 = (0u).xxx;
+  v.GetDimensions(uint(arg_1), v_1[0u], v_1[1u], v_1[2u]);
+  uint2 res = v_1.xy;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store2(0u, textureDimensions_2e443d());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store2(0u, textureDimensions_2e443d());
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = textureDimensions_2e443d();
+  VertexOutput v_2 = tint_symbol;
+  return v_2;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_3 = vertex_main_inner();
+  VertexOutput v_4 = v_3;
+  VertexOutput v_5 = v_3;
+  vertex_main_outputs v_6 = {v_5.prevent_dce, v_4.pos};
+  return v_6;
+}
+
diff --git a/test/tint/builtins/gen/var/textureDimensions/2fd2a4.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/textureDimensions/2fd2a4.wgsl.expected.ir.dxc.hlsl
index 1fac62e..f8908d2 100644
--- a/test/tint/builtins/gen/var/textureDimensions/2fd2a4.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureDimensions/2fd2a4.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,47 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  uint2 prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureDimensions
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation uint2 VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+Texture2DArray<float4> arg_0 : register(t0, space1);
+uint2 textureDimensions_2fd2a4() {
+  int arg_1 = 1;
+  Texture2DArray<float4> v = arg_0;
+  uint4 v_1 = (0u).xxxx;
+  v.GetDimensions(uint(arg_1), v_1[0u], v_1[1u], v_1[2u], v_1[3u]);
+  uint2 res = v_1.xy;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store2(0u, textureDimensions_2fd2a4());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store2(0u, textureDimensions_2fd2a4());
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = textureDimensions_2fd2a4();
+  VertexOutput v_2 = tint_symbol;
+  return v_2;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_3 = vertex_main_inner();
+  VertexOutput v_4 = v_3;
+  VertexOutput v_5 = v_3;
+  vertex_main_outputs v_6 = {v_5.prevent_dce, v_4.pos};
+  return v_6;
+}
+
diff --git a/test/tint/builtins/gen/var/textureDimensions/2fd2a4.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/textureDimensions/2fd2a4.wgsl.expected.ir.fxc.hlsl
index 1fac62e..f8908d2 100644
--- a/test/tint/builtins/gen/var/textureDimensions/2fd2a4.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureDimensions/2fd2a4.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,47 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  uint2 prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureDimensions
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation uint2 VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+Texture2DArray<float4> arg_0 : register(t0, space1);
+uint2 textureDimensions_2fd2a4() {
+  int arg_1 = 1;
+  Texture2DArray<float4> v = arg_0;
+  uint4 v_1 = (0u).xxxx;
+  v.GetDimensions(uint(arg_1), v_1[0u], v_1[1u], v_1[2u], v_1[3u]);
+  uint2 res = v_1.xy;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store2(0u, textureDimensions_2fd2a4());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store2(0u, textureDimensions_2fd2a4());
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = textureDimensions_2fd2a4();
+  VertexOutput v_2 = tint_symbol;
+  return v_2;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_3 = vertex_main_inner();
+  VertexOutput v_4 = v_3;
+  VertexOutput v_5 = v_3;
+  vertex_main_outputs v_6 = {v_5.prevent_dce, v_4.pos};
+  return v_6;
+}
+
diff --git a/test/tint/builtins/gen/var/textureDimensions/2ff32a.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/textureDimensions/2ff32a.wgsl.expected.ir.dxc.hlsl
index 1fac62e..c82536d 100644
--- a/test/tint/builtins/gen/var/textureDimensions/2ff32a.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureDimensions/2ff32a.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,45 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  uint3 prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureDimensions
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation uint3 VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+Texture3D<float4> arg_0 : register(t0, space1);
+uint3 textureDimensions_2ff32a() {
+  uint3 v = (0u).xxx;
+  arg_0.GetDimensions(v[0u], v[1u], v[2u]);
+  uint3 res = v;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store3(0u, textureDimensions_2ff32a());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store3(0u, textureDimensions_2ff32a());
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = textureDimensions_2ff32a();
+  VertexOutput v_1 = tint_symbol;
+  return v_1;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_2 = vertex_main_inner();
+  VertexOutput v_3 = v_2;
+  VertexOutput v_4 = v_2;
+  vertex_main_outputs v_5 = {v_4.prevent_dce, v_3.pos};
+  return v_5;
+}
+
diff --git a/test/tint/builtins/gen/var/textureDimensions/2ff32a.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/textureDimensions/2ff32a.wgsl.expected.ir.fxc.hlsl
index 1fac62e..c82536d 100644
--- a/test/tint/builtins/gen/var/textureDimensions/2ff32a.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureDimensions/2ff32a.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,45 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  uint3 prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureDimensions
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation uint3 VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+Texture3D<float4> arg_0 : register(t0, space1);
+uint3 textureDimensions_2ff32a() {
+  uint3 v = (0u).xxx;
+  arg_0.GetDimensions(v[0u], v[1u], v[2u]);
+  uint3 res = v;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store3(0u, textureDimensions_2ff32a());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store3(0u, textureDimensions_2ff32a());
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = textureDimensions_2ff32a();
+  VertexOutput v_1 = tint_symbol;
+  return v_1;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_2 = vertex_main_inner();
+  VertexOutput v_3 = v_2;
+  VertexOutput v_4 = v_2;
+  vertex_main_outputs v_5 = {v_4.prevent_dce, v_3.pos};
+  return v_5;
+}
+
diff --git a/test/tint/builtins/gen/var/textureDimensions/305dd5.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/textureDimensions/305dd5.wgsl.expected.ir.dxc.hlsl
index 1fac62e..e5e76c5 100644
--- a/test/tint/builtins/gen/var/textureDimensions/305dd5.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureDimensions/305dd5.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,45 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  uint2 prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureDimensions
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation uint2 VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+Texture2DArray<uint4> arg_0 : register(t0, space1);
+uint2 textureDimensions_305dd5() {
+  uint3 v = (0u).xxx;
+  arg_0.GetDimensions(v[0u], v[1u], v[2u]);
+  uint2 res = v.xy;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store2(0u, textureDimensions_305dd5());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store2(0u, textureDimensions_305dd5());
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = textureDimensions_305dd5();
+  VertexOutput v_1 = tint_symbol;
+  return v_1;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_2 = vertex_main_inner();
+  VertexOutput v_3 = v_2;
+  VertexOutput v_4 = v_2;
+  vertex_main_outputs v_5 = {v_4.prevent_dce, v_3.pos};
+  return v_5;
+}
+
diff --git a/test/tint/builtins/gen/var/textureDimensions/305dd5.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/textureDimensions/305dd5.wgsl.expected.ir.fxc.hlsl
index 1fac62e..e5e76c5 100644
--- a/test/tint/builtins/gen/var/textureDimensions/305dd5.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureDimensions/305dd5.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,45 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  uint2 prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureDimensions
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation uint2 VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+Texture2DArray<uint4> arg_0 : register(t0, space1);
+uint2 textureDimensions_305dd5() {
+  uint3 v = (0u).xxx;
+  arg_0.GetDimensions(v[0u], v[1u], v[2u]);
+  uint2 res = v.xy;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store2(0u, textureDimensions_305dd5());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store2(0u, textureDimensions_305dd5());
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = textureDimensions_305dd5();
+  VertexOutput v_1 = tint_symbol;
+  return v_1;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_2 = vertex_main_inner();
+  VertexOutput v_3 = v_2;
+  VertexOutput v_4 = v_2;
+  vertex_main_outputs v_5 = {v_4.prevent_dce, v_3.pos};
+  return v_5;
+}
+
diff --git a/test/tint/builtins/gen/var/textureDimensions/31799c.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/textureDimensions/31799c.wgsl.expected.ir.dxc.hlsl
index 1fac62e..8a06b3f 100644
--- a/test/tint/builtins/gen/var/textureDimensions/31799c.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureDimensions/31799c.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,19 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureDimensions
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWByteAddressBuffer prevent_dce : register(u0);
+RWTexture3D<uint4> arg_0 : register(u0, space1);
+uint3 textureDimensions_31799c() {
+  uint3 v = (0u).xxx;
+  arg_0.GetDimensions(v[0u], v[1u], v[2u]);
+  uint3 res = v;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store3(0u, textureDimensions_31799c());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store3(0u, textureDimensions_31799c());
+}
+
diff --git a/test/tint/builtins/gen/var/textureDimensions/31799c.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/textureDimensions/31799c.wgsl.expected.ir.fxc.hlsl
index 1fac62e..8a06b3f 100644
--- a/test/tint/builtins/gen/var/textureDimensions/31799c.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureDimensions/31799c.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,19 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureDimensions
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWByteAddressBuffer prevent_dce : register(u0);
+RWTexture3D<uint4> arg_0 : register(u0, space1);
+uint3 textureDimensions_31799c() {
+  uint3 v = (0u).xxx;
+  arg_0.GetDimensions(v[0u], v[1u], v[2u]);
+  uint3 res = v;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store3(0u, textureDimensions_31799c());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store3(0u, textureDimensions_31799c());
+}
+
diff --git a/test/tint/builtins/gen/var/textureDimensions/31d00d.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/textureDimensions/31d00d.wgsl.expected.ir.dxc.hlsl
index 1fac62e..934473c 100644
--- a/test/tint/builtins/gen/var/textureDimensions/31d00d.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureDimensions/31d00d.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,19 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureDimensions
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWByteAddressBuffer prevent_dce : register(u0);
+RWTexture3D<uint4> arg_0 : register(u0, space1);
+uint3 textureDimensions_31d00d() {
+  uint3 v = (0u).xxx;
+  arg_0.GetDimensions(v[0u], v[1u], v[2u]);
+  uint3 res = v;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store3(0u, textureDimensions_31d00d());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store3(0u, textureDimensions_31d00d());
+}
+
diff --git a/test/tint/builtins/gen/var/textureDimensions/31d00d.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/textureDimensions/31d00d.wgsl.expected.ir.fxc.hlsl
index 1fac62e..934473c 100644
--- a/test/tint/builtins/gen/var/textureDimensions/31d00d.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureDimensions/31d00d.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,19 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureDimensions
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWByteAddressBuffer prevent_dce : register(u0);
+RWTexture3D<uint4> arg_0 : register(u0, space1);
+uint3 textureDimensions_31d00d() {
+  uint3 v = (0u).xxx;
+  arg_0.GetDimensions(v[0u], v[1u], v[2u]);
+  uint3 res = v;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store3(0u, textureDimensions_31d00d());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store3(0u, textureDimensions_31d00d());
+}
+
diff --git a/test/tint/builtins/gen/var/textureDimensions/325338.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/textureDimensions/325338.wgsl.expected.ir.dxc.hlsl
index 1fac62e..db08c89 100644
--- a/test/tint/builtins/gen/var/textureDimensions/325338.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureDimensions/325338.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,19 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureDimensions
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWByteAddressBuffer prevent_dce : register(u0);
+RWTexture2D<int4> arg_0 : register(u0, space1);
+uint2 textureDimensions_325338() {
+  uint2 v = (0u).xx;
+  arg_0.GetDimensions(v[0u], v[1u]);
+  uint2 res = v;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store2(0u, textureDimensions_325338());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store2(0u, textureDimensions_325338());
+}
+
diff --git a/test/tint/builtins/gen/var/textureDimensions/325338.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/textureDimensions/325338.wgsl.expected.ir.fxc.hlsl
index 1fac62e..db08c89 100644
--- a/test/tint/builtins/gen/var/textureDimensions/325338.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureDimensions/325338.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,19 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureDimensions
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWByteAddressBuffer prevent_dce : register(u0);
+RWTexture2D<int4> arg_0 : register(u0, space1);
+uint2 textureDimensions_325338() {
+  uint2 v = (0u).xx;
+  arg_0.GetDimensions(v[0u], v[1u]);
+  uint2 res = v;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store2(0u, textureDimensions_325338());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store2(0u, textureDimensions_325338());
+}
+
diff --git a/test/tint/builtins/gen/var/textureDimensions/346fee.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/textureDimensions/346fee.wgsl.expected.ir.dxc.hlsl
index 1fac62e..2b82c6b 100644
--- a/test/tint/builtins/gen/var/textureDimensions/346fee.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureDimensions/346fee.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,47 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  uint2 prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureDimensions
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation uint2 VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+TextureCubeArray<uint4> arg_0 : register(t0, space1);
+uint2 textureDimensions_346fee() {
+  uint arg_1 = 1u;
+  TextureCubeArray<uint4> v = arg_0;
+  uint4 v_1 = (0u).xxxx;
+  v.GetDimensions(uint(arg_1), v_1[0u], v_1[1u], v_1[2u], v_1[3u]);
+  uint2 res = v_1.xy;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store2(0u, textureDimensions_346fee());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store2(0u, textureDimensions_346fee());
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = textureDimensions_346fee();
+  VertexOutput v_2 = tint_symbol;
+  return v_2;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_3 = vertex_main_inner();
+  VertexOutput v_4 = v_3;
+  VertexOutput v_5 = v_3;
+  vertex_main_outputs v_6 = {v_5.prevent_dce, v_4.pos};
+  return v_6;
+}
+
diff --git a/test/tint/builtins/gen/var/textureDimensions/346fee.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/textureDimensions/346fee.wgsl.expected.ir.fxc.hlsl
index 1fac62e..2b82c6b 100644
--- a/test/tint/builtins/gen/var/textureDimensions/346fee.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureDimensions/346fee.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,47 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  uint2 prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureDimensions
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation uint2 VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+TextureCubeArray<uint4> arg_0 : register(t0, space1);
+uint2 textureDimensions_346fee() {
+  uint arg_1 = 1u;
+  TextureCubeArray<uint4> v = arg_0;
+  uint4 v_1 = (0u).xxxx;
+  v.GetDimensions(uint(arg_1), v_1[0u], v_1[1u], v_1[2u], v_1[3u]);
+  uint2 res = v_1.xy;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store2(0u, textureDimensions_346fee());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store2(0u, textureDimensions_346fee());
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = textureDimensions_346fee();
+  VertexOutput v_2 = tint_symbol;
+  return v_2;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_3 = vertex_main_inner();
+  VertexOutput v_4 = v_3;
+  VertexOutput v_5 = v_3;
+  vertex_main_outputs v_6 = {v_5.prevent_dce, v_4.pos};
+  return v_6;
+}
+
diff --git a/test/tint/builtins/gen/var/textureDimensions/35a7e5.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/textureDimensions/35a7e5.wgsl.expected.ir.dxc.hlsl
index 1fac62e..fcf5bd7 100644
--- a/test/tint/builtins/gen/var/textureDimensions/35a7e5.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureDimensions/35a7e5.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,19 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureDimensions
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWByteAddressBuffer prevent_dce : register(u0);
+RWTexture3D<uint4> arg_0 : register(u0, space1);
+uint3 textureDimensions_35a7e5() {
+  uint3 v = (0u).xxx;
+  arg_0.GetDimensions(v[0u], v[1u], v[2u]);
+  uint3 res = v;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store3(0u, textureDimensions_35a7e5());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store3(0u, textureDimensions_35a7e5());
+}
+
diff --git a/test/tint/builtins/gen/var/textureDimensions/35a7e5.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/textureDimensions/35a7e5.wgsl.expected.ir.fxc.hlsl
index 1fac62e..fcf5bd7 100644
--- a/test/tint/builtins/gen/var/textureDimensions/35a7e5.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureDimensions/35a7e5.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,19 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureDimensions
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWByteAddressBuffer prevent_dce : register(u0);
+RWTexture3D<uint4> arg_0 : register(u0, space1);
+uint3 textureDimensions_35a7e5() {
+  uint3 v = (0u).xxx;
+  arg_0.GetDimensions(v[0u], v[1u], v[2u]);
+  uint3 res = v;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store3(0u, textureDimensions_35a7e5());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store3(0u, textureDimensions_35a7e5());
+}
+
diff --git a/test/tint/builtins/gen/var/textureDimensions/35ee69.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/textureDimensions/35ee69.wgsl.expected.ir.dxc.hlsl
index 1fac62e..6e251f9 100644
--- a/test/tint/builtins/gen/var/textureDimensions/35ee69.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureDimensions/35ee69.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,19 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureDimensions
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWByteAddressBuffer prevent_dce : register(u0);
+RWTexture3D<uint4> arg_0 : register(u0, space1);
+uint3 textureDimensions_35ee69() {
+  uint3 v = (0u).xxx;
+  arg_0.GetDimensions(v[0u], v[1u], v[2u]);
+  uint3 res = v;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store3(0u, textureDimensions_35ee69());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store3(0u, textureDimensions_35ee69());
+}
+
diff --git a/test/tint/builtins/gen/var/textureDimensions/35ee69.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/textureDimensions/35ee69.wgsl.expected.ir.fxc.hlsl
index 1fac62e..6e251f9 100644
--- a/test/tint/builtins/gen/var/textureDimensions/35ee69.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureDimensions/35ee69.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,19 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureDimensions
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWByteAddressBuffer prevent_dce : register(u0);
+RWTexture3D<uint4> arg_0 : register(u0, space1);
+uint3 textureDimensions_35ee69() {
+  uint3 v = (0u).xxx;
+  arg_0.GetDimensions(v[0u], v[1u], v[2u]);
+  uint3 res = v;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store3(0u, textureDimensions_35ee69());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store3(0u, textureDimensions_35ee69());
+}
+
diff --git a/test/tint/builtins/gen/var/textureDimensions/36eeb7.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/textureDimensions/36eeb7.wgsl.expected.ir.dxc.hlsl
index 1fac62e..f8a095d 100644
--- a/test/tint/builtins/gen/var/textureDimensions/36eeb7.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureDimensions/36eeb7.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,19 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureDimensions
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWByteAddressBuffer prevent_dce : register(u0);
+RWTexture2DArray<uint4> arg_0 : register(u0, space1);
+uint2 textureDimensions_36eeb7() {
+  uint3 v = (0u).xxx;
+  arg_0.GetDimensions(v[0u], v[1u], v[2u]);
+  uint2 res = v.xy;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store2(0u, textureDimensions_36eeb7());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store2(0u, textureDimensions_36eeb7());
+}
+
diff --git a/test/tint/builtins/gen/var/textureDimensions/36eeb7.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/textureDimensions/36eeb7.wgsl.expected.ir.fxc.hlsl
index 1fac62e..f8a095d 100644
--- a/test/tint/builtins/gen/var/textureDimensions/36eeb7.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureDimensions/36eeb7.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,19 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureDimensions
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWByteAddressBuffer prevent_dce : register(u0);
+RWTexture2DArray<uint4> arg_0 : register(u0, space1);
+uint2 textureDimensions_36eeb7() {
+  uint3 v = (0u).xxx;
+  arg_0.GetDimensions(v[0u], v[1u], v[2u]);
+  uint2 res = v.xy;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store2(0u, textureDimensions_36eeb7());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store2(0u, textureDimensions_36eeb7());
+}
+
diff --git a/test/tint/builtins/gen/var/textureDimensions/378a65.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/textureDimensions/378a65.wgsl.expected.ir.dxc.hlsl
index 1fac62e..f691a73 100644
--- a/test/tint/builtins/gen/var/textureDimensions/378a65.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureDimensions/378a65.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,19 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureDimensions
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWByteAddressBuffer prevent_dce : register(u0);
+RWTexture2D<int4> arg_0 : register(u0, space1);
+uint2 textureDimensions_378a65() {
+  uint2 v = (0u).xx;
+  arg_0.GetDimensions(v[0u], v[1u]);
+  uint2 res = v;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store2(0u, textureDimensions_378a65());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store2(0u, textureDimensions_378a65());
+}
+
diff --git a/test/tint/builtins/gen/var/textureDimensions/378a65.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/textureDimensions/378a65.wgsl.expected.ir.fxc.hlsl
index 1fac62e..f691a73 100644
--- a/test/tint/builtins/gen/var/textureDimensions/378a65.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureDimensions/378a65.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,19 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureDimensions
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWByteAddressBuffer prevent_dce : register(u0);
+RWTexture2D<int4> arg_0 : register(u0, space1);
+uint2 textureDimensions_378a65() {
+  uint2 v = (0u).xx;
+  arg_0.GetDimensions(v[0u], v[1u]);
+  uint2 res = v;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store2(0u, textureDimensions_378a65());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store2(0u, textureDimensions_378a65());
+}
+
diff --git a/test/tint/builtins/gen/var/textureDimensions/382b16.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/textureDimensions/382b16.wgsl.expected.ir.dxc.hlsl
index 1fac62e..893cf58 100644
--- a/test/tint/builtins/gen/var/textureDimensions/382b16.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureDimensions/382b16.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,47 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  uint2 prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureDimensions
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation uint2 VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+TextureCube<float4> arg_0 : register(t0, space1);
+uint2 textureDimensions_382b16() {
+  uint arg_1 = 1u;
+  TextureCube<float4> v = arg_0;
+  uint3 v_1 = (0u).xxx;
+  v.GetDimensions(uint(arg_1), v_1[0u], v_1[1u], v_1[2u]);
+  uint2 res = v_1.xy;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store2(0u, textureDimensions_382b16());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store2(0u, textureDimensions_382b16());
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = textureDimensions_382b16();
+  VertexOutput v_2 = tint_symbol;
+  return v_2;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_3 = vertex_main_inner();
+  VertexOutput v_4 = v_3;
+  VertexOutput v_5 = v_3;
+  vertex_main_outputs v_6 = {v_5.prevent_dce, v_4.pos};
+  return v_6;
+}
+
diff --git a/test/tint/builtins/gen/var/textureDimensions/382b16.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/textureDimensions/382b16.wgsl.expected.ir.fxc.hlsl
index 1fac62e..893cf58 100644
--- a/test/tint/builtins/gen/var/textureDimensions/382b16.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureDimensions/382b16.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,47 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  uint2 prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureDimensions
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation uint2 VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+TextureCube<float4> arg_0 : register(t0, space1);
+uint2 textureDimensions_382b16() {
+  uint arg_1 = 1u;
+  TextureCube<float4> v = arg_0;
+  uint3 v_1 = (0u).xxx;
+  v.GetDimensions(uint(arg_1), v_1[0u], v_1[1u], v_1[2u]);
+  uint2 res = v_1.xy;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store2(0u, textureDimensions_382b16());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store2(0u, textureDimensions_382b16());
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = textureDimensions_382b16();
+  VertexOutput v_2 = tint_symbol;
+  return v_2;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_3 = vertex_main_inner();
+  VertexOutput v_4 = v_3;
+  VertexOutput v_5 = v_3;
+  vertex_main_outputs v_6 = {v_5.prevent_dce, v_4.pos};
+  return v_6;
+}
+
diff --git a/test/tint/builtins/gen/var/textureDimensions/3834f8.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/textureDimensions/3834f8.wgsl.expected.ir.dxc.hlsl
index 1fac62e..84ebd59 100644
--- a/test/tint/builtins/gen/var/textureDimensions/3834f8.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureDimensions/3834f8.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,19 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureDimensions
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWByteAddressBuffer prevent_dce : register(u0);
+RWTexture2DArray<int4> arg_0 : register(u0, space1);
+uint2 textureDimensions_3834f8() {
+  uint3 v = (0u).xxx;
+  arg_0.GetDimensions(v[0u], v[1u], v[2u]);
+  uint2 res = v.xy;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store2(0u, textureDimensions_3834f8());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store2(0u, textureDimensions_3834f8());
+}
+
diff --git a/test/tint/builtins/gen/var/textureDimensions/3834f8.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/textureDimensions/3834f8.wgsl.expected.ir.fxc.hlsl
index 1fac62e..84ebd59 100644
--- a/test/tint/builtins/gen/var/textureDimensions/3834f8.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureDimensions/3834f8.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,19 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureDimensions
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWByteAddressBuffer prevent_dce : register(u0);
+RWTexture2DArray<int4> arg_0 : register(u0, space1);
+uint2 textureDimensions_3834f8() {
+  uint3 v = (0u).xxx;
+  arg_0.GetDimensions(v[0u], v[1u], v[2u]);
+  uint2 res = v.xy;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store2(0u, textureDimensions_3834f8());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store2(0u, textureDimensions_3834f8());
+}
+
diff --git a/test/tint/builtins/gen/var/textureDimensions/38c9ca.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/textureDimensions/38c9ca.wgsl.expected.ir.dxc.hlsl
index 1fac62e..2af52f17 100644
--- a/test/tint/builtins/gen/var/textureDimensions/38c9ca.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureDimensions/38c9ca.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,19 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureDimensions
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWByteAddressBuffer prevent_dce : register(u0);
+RWTexture2DArray<float4> arg_0 : register(u0, space1);
+uint2 textureDimensions_38c9ca() {
+  uint3 v = (0u).xxx;
+  arg_0.GetDimensions(v[0u], v[1u], v[2u]);
+  uint2 res = v.xy;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store2(0u, textureDimensions_38c9ca());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store2(0u, textureDimensions_38c9ca());
+}
+
diff --git a/test/tint/builtins/gen/var/textureDimensions/38c9ca.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/textureDimensions/38c9ca.wgsl.expected.ir.fxc.hlsl
index 1fac62e..2af52f17 100644
--- a/test/tint/builtins/gen/var/textureDimensions/38c9ca.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureDimensions/38c9ca.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,19 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureDimensions
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWByteAddressBuffer prevent_dce : register(u0);
+RWTexture2DArray<float4> arg_0 : register(u0, space1);
+uint2 textureDimensions_38c9ca() {
+  uint3 v = (0u).xxx;
+  arg_0.GetDimensions(v[0u], v[1u], v[2u]);
+  uint2 res = v.xy;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store2(0u, textureDimensions_38c9ca());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store2(0u, textureDimensions_38c9ca());
+}
+
diff --git a/test/tint/builtins/gen/var/textureDimensions/3963d0.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/textureDimensions/3963d0.wgsl.expected.ir.dxc.hlsl
index 1fac62e..c7d37b3 100644
--- a/test/tint/builtins/gen/var/textureDimensions/3963d0.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureDimensions/3963d0.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,47 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  uint2 prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureDimensions
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation uint2 VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+TextureCubeArray<int4> arg_0 : register(t0, space1);
+uint2 textureDimensions_3963d0() {
+  uint arg_1 = 1u;
+  TextureCubeArray<int4> v = arg_0;
+  uint4 v_1 = (0u).xxxx;
+  v.GetDimensions(uint(arg_1), v_1[0u], v_1[1u], v_1[2u], v_1[3u]);
+  uint2 res = v_1.xy;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store2(0u, textureDimensions_3963d0());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store2(0u, textureDimensions_3963d0());
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = textureDimensions_3963d0();
+  VertexOutput v_2 = tint_symbol;
+  return v_2;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_3 = vertex_main_inner();
+  VertexOutput v_4 = v_3;
+  VertexOutput v_5 = v_3;
+  vertex_main_outputs v_6 = {v_5.prevent_dce, v_4.pos};
+  return v_6;
+}
+
diff --git a/test/tint/builtins/gen/var/textureDimensions/3963d0.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/textureDimensions/3963d0.wgsl.expected.ir.fxc.hlsl
index 1fac62e..c7d37b3 100644
--- a/test/tint/builtins/gen/var/textureDimensions/3963d0.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureDimensions/3963d0.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,47 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  uint2 prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureDimensions
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation uint2 VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+TextureCubeArray<int4> arg_0 : register(t0, space1);
+uint2 textureDimensions_3963d0() {
+  uint arg_1 = 1u;
+  TextureCubeArray<int4> v = arg_0;
+  uint4 v_1 = (0u).xxxx;
+  v.GetDimensions(uint(arg_1), v_1[0u], v_1[1u], v_1[2u], v_1[3u]);
+  uint2 res = v_1.xy;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store2(0u, textureDimensions_3963d0());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store2(0u, textureDimensions_3963d0());
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = textureDimensions_3963d0();
+  VertexOutput v_2 = tint_symbol;
+  return v_2;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_3 = vertex_main_inner();
+  VertexOutput v_4 = v_3;
+  VertexOutput v_5 = v_3;
+  vertex_main_outputs v_6 = {v_5.prevent_dce, v_4.pos};
+  return v_6;
+}
+
diff --git a/test/tint/builtins/gen/var/textureDimensions/397dab.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/textureDimensions/397dab.wgsl.expected.ir.dxc.hlsl
index 1fac62e..44157aa 100644
--- a/test/tint/builtins/gen/var/textureDimensions/397dab.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureDimensions/397dab.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,45 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  uint2 prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureDimensions
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation uint2 VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+Texture2DArray<uint4> arg_0 : register(t0, space1);
+uint2 textureDimensions_397dab() {
+  uint3 v = (0u).xxx;
+  arg_0.GetDimensions(v[0u], v[1u], v[2u]);
+  uint2 res = v.xy;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store2(0u, textureDimensions_397dab());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store2(0u, textureDimensions_397dab());
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = textureDimensions_397dab();
+  VertexOutput v_1 = tint_symbol;
+  return v_1;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_2 = vertex_main_inner();
+  VertexOutput v_3 = v_2;
+  VertexOutput v_4 = v_2;
+  vertex_main_outputs v_5 = {v_4.prevent_dce, v_3.pos};
+  return v_5;
+}
+
diff --git a/test/tint/builtins/gen/var/textureDimensions/397dab.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/textureDimensions/397dab.wgsl.expected.ir.fxc.hlsl
index 1fac62e..44157aa 100644
--- a/test/tint/builtins/gen/var/textureDimensions/397dab.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureDimensions/397dab.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,45 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  uint2 prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureDimensions
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation uint2 VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+Texture2DArray<uint4> arg_0 : register(t0, space1);
+uint2 textureDimensions_397dab() {
+  uint3 v = (0u).xxx;
+  arg_0.GetDimensions(v[0u], v[1u], v[2u]);
+  uint2 res = v.xy;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store2(0u, textureDimensions_397dab());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store2(0u, textureDimensions_397dab());
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = textureDimensions_397dab();
+  VertexOutput v_1 = tint_symbol;
+  return v_1;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_2 = vertex_main_inner();
+  VertexOutput v_3 = v_2;
+  VertexOutput v_4 = v_2;
+  vertex_main_outputs v_5 = {v_4.prevent_dce, v_3.pos};
+  return v_5;
+}
+
diff --git a/test/tint/builtins/gen/var/textureDimensions/3a5bb1.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/textureDimensions/3a5bb1.wgsl.expected.ir.dxc.hlsl
index 1fac62e..56fb43c 100644
--- a/test/tint/builtins/gen/var/textureDimensions/3a5bb1.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureDimensions/3a5bb1.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,19 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureDimensions
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWByteAddressBuffer prevent_dce : register(u0);
+RWTexture3D<float4> arg_0 : register(u0, space1);
+uint3 textureDimensions_3a5bb1() {
+  uint3 v = (0u).xxx;
+  arg_0.GetDimensions(v[0u], v[1u], v[2u]);
+  uint3 res = v;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store3(0u, textureDimensions_3a5bb1());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store3(0u, textureDimensions_3a5bb1());
+}
+
diff --git a/test/tint/builtins/gen/var/textureDimensions/3a5bb1.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/textureDimensions/3a5bb1.wgsl.expected.ir.fxc.hlsl
index 1fac62e..56fb43c 100644
--- a/test/tint/builtins/gen/var/textureDimensions/3a5bb1.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureDimensions/3a5bb1.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,19 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureDimensions
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWByteAddressBuffer prevent_dce : register(u0);
+RWTexture3D<float4> arg_0 : register(u0, space1);
+uint3 textureDimensions_3a5bb1() {
+  uint3 v = (0u).xxx;
+  arg_0.GetDimensions(v[0u], v[1u], v[2u]);
+  uint3 res = v;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store3(0u, textureDimensions_3a5bb1());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store3(0u, textureDimensions_3a5bb1());
+}
+
diff --git a/test/tint/builtins/gen/var/textureDimensions/3a7b69.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/textureDimensions/3a7b69.wgsl.expected.ir.dxc.hlsl
index 1fac62e..6ba7780 100644
--- a/test/tint/builtins/gen/var/textureDimensions/3a7b69.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureDimensions/3a7b69.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,19 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureDimensions
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWByteAddressBuffer prevent_dce : register(u0);
+RWTexture2DArray<float4> arg_0 : register(u0, space1);
+uint2 textureDimensions_3a7b69() {
+  uint3 v = (0u).xxx;
+  arg_0.GetDimensions(v[0u], v[1u], v[2u]);
+  uint2 res = v.xy;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store2(0u, textureDimensions_3a7b69());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store2(0u, textureDimensions_3a7b69());
+}
+
diff --git a/test/tint/builtins/gen/var/textureDimensions/3a7b69.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/textureDimensions/3a7b69.wgsl.expected.ir.fxc.hlsl
index 1fac62e..6ba7780 100644
--- a/test/tint/builtins/gen/var/textureDimensions/3a7b69.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureDimensions/3a7b69.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,19 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureDimensions
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWByteAddressBuffer prevent_dce : register(u0);
+RWTexture2DArray<float4> arg_0 : register(u0, space1);
+uint2 textureDimensions_3a7b69() {
+  uint3 v = (0u).xxx;
+  arg_0.GetDimensions(v[0u], v[1u], v[2u]);
+  uint2 res = v.xy;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store2(0u, textureDimensions_3a7b69());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store2(0u, textureDimensions_3a7b69());
+}
+
diff --git a/test/tint/builtins/gen/var/textureDimensions/3af3e7.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/textureDimensions/3af3e7.wgsl.expected.ir.dxc.hlsl
index 1fac62e..e58d22b 100644
--- a/test/tint/builtins/gen/var/textureDimensions/3af3e7.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureDimensions/3af3e7.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,19 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureDimensions
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWByteAddressBuffer prevent_dce : register(u0);
+RWTexture1D<float4> arg_0 : register(u0, space1);
+uint textureDimensions_3af3e7() {
+  uint v = 0u;
+  arg_0.GetDimensions(v);
+  uint res = v;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store(0u, textureDimensions_3af3e7());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store(0u, textureDimensions_3af3e7());
+}
+
diff --git a/test/tint/builtins/gen/var/textureDimensions/3af3e7.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/textureDimensions/3af3e7.wgsl.expected.ir.fxc.hlsl
index 1fac62e..e58d22b 100644
--- a/test/tint/builtins/gen/var/textureDimensions/3af3e7.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureDimensions/3af3e7.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,19 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureDimensions
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWByteAddressBuffer prevent_dce : register(u0);
+RWTexture1D<float4> arg_0 : register(u0, space1);
+uint textureDimensions_3af3e7() {
+  uint v = 0u;
+  arg_0.GetDimensions(v);
+  uint res = v;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store(0u, textureDimensions_3af3e7());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store(0u, textureDimensions_3af3e7());
+}
+
diff --git a/test/tint/builtins/gen/var/textureDimensions/3b38f6.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/textureDimensions/3b38f6.wgsl.expected.ir.dxc.hlsl
index 1fac62e..42d44f6 100644
--- a/test/tint/builtins/gen/var/textureDimensions/3b38f6.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureDimensions/3b38f6.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,45 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  uint2 prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureDimensions
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation uint2 VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+Texture2D arg_0 : register(t0, space1);
+uint2 textureDimensions_3b38f6() {
+  uint2 v = (0u).xx;
+  arg_0.GetDimensions(v[0u], v[1u]);
+  uint2 res = v;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store2(0u, textureDimensions_3b38f6());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store2(0u, textureDimensions_3b38f6());
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = textureDimensions_3b38f6();
+  VertexOutput v_1 = tint_symbol;
+  return v_1;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_2 = vertex_main_inner();
+  VertexOutput v_3 = v_2;
+  VertexOutput v_4 = v_2;
+  vertex_main_outputs v_5 = {v_4.prevent_dce, v_3.pos};
+  return v_5;
+}
+
diff --git a/test/tint/builtins/gen/var/textureDimensions/3b38f6.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/textureDimensions/3b38f6.wgsl.expected.ir.fxc.hlsl
index 1fac62e..42d44f6 100644
--- a/test/tint/builtins/gen/var/textureDimensions/3b38f6.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureDimensions/3b38f6.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,45 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  uint2 prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureDimensions
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation uint2 VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+Texture2D arg_0 : register(t0, space1);
+uint2 textureDimensions_3b38f6() {
+  uint2 v = (0u).xx;
+  arg_0.GetDimensions(v[0u], v[1u]);
+  uint2 res = v;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store2(0u, textureDimensions_3b38f6());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store2(0u, textureDimensions_3b38f6());
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = textureDimensions_3b38f6();
+  VertexOutput v_1 = tint_symbol;
+  return v_1;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_2 = vertex_main_inner();
+  VertexOutput v_3 = v_2;
+  VertexOutput v_4 = v_2;
+  vertex_main_outputs v_5 = {v_4.prevent_dce, v_3.pos};
+  return v_5;
+}
+
diff --git a/test/tint/builtins/gen/var/textureDimensions/3baab5.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/textureDimensions/3baab5.wgsl.expected.ir.dxc.hlsl
index 1fac62e..b5a2c6f 100644
--- a/test/tint/builtins/gen/var/textureDimensions/3baab5.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureDimensions/3baab5.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,19 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureDimensions
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWByteAddressBuffer prevent_dce : register(u0);
+RWTexture2DArray<uint4> arg_0 : register(u0, space1);
+uint2 textureDimensions_3baab5() {
+  uint3 v = (0u).xxx;
+  arg_0.GetDimensions(v[0u], v[1u], v[2u]);
+  uint2 res = v.xy;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store2(0u, textureDimensions_3baab5());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store2(0u, textureDimensions_3baab5());
+}
+
diff --git a/test/tint/builtins/gen/var/textureDimensions/3baab5.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/textureDimensions/3baab5.wgsl.expected.ir.fxc.hlsl
index 1fac62e..b5a2c6f 100644
--- a/test/tint/builtins/gen/var/textureDimensions/3baab5.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureDimensions/3baab5.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,19 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureDimensions
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWByteAddressBuffer prevent_dce : register(u0);
+RWTexture2DArray<uint4> arg_0 : register(u0, space1);
+uint2 textureDimensions_3baab5() {
+  uint3 v = (0u).xxx;
+  arg_0.GetDimensions(v[0u], v[1u], v[2u]);
+  uint2 res = v.xy;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store2(0u, textureDimensions_3baab5());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store2(0u, textureDimensions_3baab5());
+}
+
diff --git a/test/tint/builtins/gen/var/textureDimensions/3bf12a.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/textureDimensions/3bf12a.wgsl.expected.ir.dxc.hlsl
index 1fac62e..4359b2f 100644
--- a/test/tint/builtins/gen/var/textureDimensions/3bf12a.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureDimensions/3bf12a.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,19 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureDimensions
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWByteAddressBuffer prevent_dce : register(u0);
+RWTexture2DArray<float4> arg_0 : register(u0, space1);
+uint2 textureDimensions_3bf12a() {
+  uint3 v = (0u).xxx;
+  arg_0.GetDimensions(v[0u], v[1u], v[2u]);
+  uint2 res = v.xy;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store2(0u, textureDimensions_3bf12a());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store2(0u, textureDimensions_3bf12a());
+}
+
diff --git a/test/tint/builtins/gen/var/textureDimensions/3bf12a.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/textureDimensions/3bf12a.wgsl.expected.ir.fxc.hlsl
index 1fac62e..4359b2f 100644
--- a/test/tint/builtins/gen/var/textureDimensions/3bf12a.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureDimensions/3bf12a.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,19 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureDimensions
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWByteAddressBuffer prevent_dce : register(u0);
+RWTexture2DArray<float4> arg_0 : register(u0, space1);
+uint2 textureDimensions_3bf12a() {
+  uint3 v = (0u).xxx;
+  arg_0.GetDimensions(v[0u], v[1u], v[2u]);
+  uint2 res = v.xy;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store2(0u, textureDimensions_3bf12a());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store2(0u, textureDimensions_3bf12a());
+}
+
diff --git a/test/tint/builtins/gen/var/textureDimensions/3c66f0.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/textureDimensions/3c66f0.wgsl.expected.ir.dxc.hlsl
index 1fac62e..d74fdcf 100644
--- a/test/tint/builtins/gen/var/textureDimensions/3c66f0.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureDimensions/3c66f0.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,47 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  uint2 prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureDimensions
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation uint2 VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+TextureCubeArray<int4> arg_0 : register(t0, space1);
+uint2 textureDimensions_3c66f0() {
+  int arg_1 = 1;
+  TextureCubeArray<int4> v = arg_0;
+  uint4 v_1 = (0u).xxxx;
+  v.GetDimensions(uint(arg_1), v_1[0u], v_1[1u], v_1[2u], v_1[3u]);
+  uint2 res = v_1.xy;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store2(0u, textureDimensions_3c66f0());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store2(0u, textureDimensions_3c66f0());
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = textureDimensions_3c66f0();
+  VertexOutput v_2 = tint_symbol;
+  return v_2;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_3 = vertex_main_inner();
+  VertexOutput v_4 = v_3;
+  VertexOutput v_5 = v_3;
+  vertex_main_outputs v_6 = {v_5.prevent_dce, v_4.pos};
+  return v_6;
+}
+
diff --git a/test/tint/builtins/gen/var/textureDimensions/3c66f0.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/textureDimensions/3c66f0.wgsl.expected.ir.fxc.hlsl
index 1fac62e..d74fdcf 100644
--- a/test/tint/builtins/gen/var/textureDimensions/3c66f0.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureDimensions/3c66f0.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,47 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  uint2 prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureDimensions
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation uint2 VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+TextureCubeArray<int4> arg_0 : register(t0, space1);
+uint2 textureDimensions_3c66f0() {
+  int arg_1 = 1;
+  TextureCubeArray<int4> v = arg_0;
+  uint4 v_1 = (0u).xxxx;
+  v.GetDimensions(uint(arg_1), v_1[0u], v_1[1u], v_1[2u], v_1[3u]);
+  uint2 res = v_1.xy;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store2(0u, textureDimensions_3c66f0());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store2(0u, textureDimensions_3c66f0());
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = textureDimensions_3c66f0();
+  VertexOutput v_2 = tint_symbol;
+  return v_2;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_3 = vertex_main_inner();
+  VertexOutput v_4 = v_3;
+  VertexOutput v_5 = v_3;
+  vertex_main_outputs v_6 = {v_5.prevent_dce, v_4.pos};
+  return v_6;
+}
+
diff --git a/test/tint/builtins/gen/var/textureDimensions/3f3474.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/textureDimensions/3f3474.wgsl.expected.ir.dxc.hlsl
index 1fac62e..8c7234f 100644
--- a/test/tint/builtins/gen/var/textureDimensions/3f3474.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureDimensions/3f3474.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,45 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  uint2 prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureDimensions
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation uint2 VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+Texture2DMS<float4> arg_0 : register(t0, space1);
+uint2 textureDimensions_3f3474() {
+  uint3 v = (0u).xxx;
+  arg_0.GetDimensions(v[0u], v[1u], v[2u]);
+  uint2 res = v.xy;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store2(0u, textureDimensions_3f3474());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store2(0u, textureDimensions_3f3474());
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = textureDimensions_3f3474();
+  VertexOutput v_1 = tint_symbol;
+  return v_1;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_2 = vertex_main_inner();
+  VertexOutput v_3 = v_2;
+  VertexOutput v_4 = v_2;
+  vertex_main_outputs v_5 = {v_4.prevent_dce, v_3.pos};
+  return v_5;
+}
+
diff --git a/test/tint/builtins/gen/var/textureDimensions/3f3474.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/textureDimensions/3f3474.wgsl.expected.ir.fxc.hlsl
index 1fac62e..8c7234f 100644
--- a/test/tint/builtins/gen/var/textureDimensions/3f3474.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureDimensions/3f3474.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,45 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  uint2 prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureDimensions
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation uint2 VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+Texture2DMS<float4> arg_0 : register(t0, space1);
+uint2 textureDimensions_3f3474() {
+  uint3 v = (0u).xxx;
+  arg_0.GetDimensions(v[0u], v[1u], v[2u]);
+  uint2 res = v.xy;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store2(0u, textureDimensions_3f3474());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store2(0u, textureDimensions_3f3474());
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = textureDimensions_3f3474();
+  VertexOutput v_1 = tint_symbol;
+  return v_1;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_2 = vertex_main_inner();
+  VertexOutput v_3 = v_2;
+  VertexOutput v_4 = v_2;
+  vertex_main_outputs v_5 = {v_4.prevent_dce, v_3.pos};
+  return v_5;
+}
+
diff --git a/test/tint/builtins/gen/var/textureDimensions/3fc3dc.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/textureDimensions/3fc3dc.wgsl.expected.ir.dxc.hlsl
index 1fac62e..bef8a50 100644
--- a/test/tint/builtins/gen/var/textureDimensions/3fc3dc.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureDimensions/3fc3dc.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,47 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  uint2 prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureDimensions
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation uint2 VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+Texture2DArray<float4> arg_0 : register(t0, space1);
+uint2 textureDimensions_3fc3dc() {
+  uint arg_1 = 1u;
+  Texture2DArray<float4> v = arg_0;
+  uint4 v_1 = (0u).xxxx;
+  v.GetDimensions(uint(arg_1), v_1[0u], v_1[1u], v_1[2u], v_1[3u]);
+  uint2 res = v_1.xy;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store2(0u, textureDimensions_3fc3dc());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store2(0u, textureDimensions_3fc3dc());
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = textureDimensions_3fc3dc();
+  VertexOutput v_2 = tint_symbol;
+  return v_2;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_3 = vertex_main_inner();
+  VertexOutput v_4 = v_3;
+  VertexOutput v_5 = v_3;
+  vertex_main_outputs v_6 = {v_5.prevent_dce, v_4.pos};
+  return v_6;
+}
+
diff --git a/test/tint/builtins/gen/var/textureDimensions/3fc3dc.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/textureDimensions/3fc3dc.wgsl.expected.ir.fxc.hlsl
index 1fac62e..bef8a50 100644
--- a/test/tint/builtins/gen/var/textureDimensions/3fc3dc.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureDimensions/3fc3dc.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,47 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  uint2 prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureDimensions
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation uint2 VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+Texture2DArray<float4> arg_0 : register(t0, space1);
+uint2 textureDimensions_3fc3dc() {
+  uint arg_1 = 1u;
+  Texture2DArray<float4> v = arg_0;
+  uint4 v_1 = (0u).xxxx;
+  v.GetDimensions(uint(arg_1), v_1[0u], v_1[1u], v_1[2u], v_1[3u]);
+  uint2 res = v_1.xy;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store2(0u, textureDimensions_3fc3dc());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store2(0u, textureDimensions_3fc3dc());
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = textureDimensions_3fc3dc();
+  VertexOutput v_2 = tint_symbol;
+  return v_2;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_3 = vertex_main_inner();
+  VertexOutput v_4 = v_3;
+  VertexOutput v_5 = v_3;
+  vertex_main_outputs v_6 = {v_5.prevent_dce, v_4.pos};
+  return v_6;
+}
+
diff --git a/test/tint/builtins/gen/var/textureDimensions/3ff0a5.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/textureDimensions/3ff0a5.wgsl.expected.ir.dxc.hlsl
index 1fac62e..4fc5f2a 100644
--- a/test/tint/builtins/gen/var/textureDimensions/3ff0a5.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureDimensions/3ff0a5.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,45 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  uint2 prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureDimensions
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation uint2 VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+Texture2DArray<int4> arg_0 : register(t0, space1);
+uint2 textureDimensions_3ff0a5() {
+  uint3 v = (0u).xxx;
+  arg_0.GetDimensions(v[0u], v[1u], v[2u]);
+  uint2 res = v.xy;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store2(0u, textureDimensions_3ff0a5());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store2(0u, textureDimensions_3ff0a5());
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = textureDimensions_3ff0a5();
+  VertexOutput v_1 = tint_symbol;
+  return v_1;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_2 = vertex_main_inner();
+  VertexOutput v_3 = v_2;
+  VertexOutput v_4 = v_2;
+  vertex_main_outputs v_5 = {v_4.prevent_dce, v_3.pos};
+  return v_5;
+}
+
diff --git a/test/tint/builtins/gen/var/textureDimensions/3ff0a5.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/textureDimensions/3ff0a5.wgsl.expected.ir.fxc.hlsl
index 1fac62e..4fc5f2a 100644
--- a/test/tint/builtins/gen/var/textureDimensions/3ff0a5.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureDimensions/3ff0a5.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,45 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  uint2 prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureDimensions
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation uint2 VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+Texture2DArray<int4> arg_0 : register(t0, space1);
+uint2 textureDimensions_3ff0a5() {
+  uint3 v = (0u).xxx;
+  arg_0.GetDimensions(v[0u], v[1u], v[2u]);
+  uint2 res = v.xy;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store2(0u, textureDimensions_3ff0a5());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store2(0u, textureDimensions_3ff0a5());
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = textureDimensions_3ff0a5();
+  VertexOutput v_1 = tint_symbol;
+  return v_1;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_2 = vertex_main_inner();
+  VertexOutput v_3 = v_2;
+  VertexOutput v_4 = v_2;
+  vertex_main_outputs v_5 = {v_4.prevent_dce, v_3.pos};
+  return v_5;
+}
+
diff --git a/test/tint/builtins/gen/var/textureDimensions/40c671.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/textureDimensions/40c671.wgsl.expected.ir.dxc.hlsl
index 1fac62e..e01e975 100644
--- a/test/tint/builtins/gen/var/textureDimensions/40c671.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureDimensions/40c671.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,19 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureDimensions
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWByteAddressBuffer prevent_dce : register(u0);
+RWTexture3D<int4> arg_0 : register(u0, space1);
+uint3 textureDimensions_40c671() {
+  uint3 v = (0u).xxx;
+  arg_0.GetDimensions(v[0u], v[1u], v[2u]);
+  uint3 res = v;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store3(0u, textureDimensions_40c671());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store3(0u, textureDimensions_40c671());
+}
+
diff --git a/test/tint/builtins/gen/var/textureDimensions/40c671.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/textureDimensions/40c671.wgsl.expected.ir.fxc.hlsl
index 1fac62e..e01e975 100644
--- a/test/tint/builtins/gen/var/textureDimensions/40c671.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureDimensions/40c671.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,19 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureDimensions
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWByteAddressBuffer prevent_dce : register(u0);
+RWTexture3D<int4> arg_0 : register(u0, space1);
+uint3 textureDimensions_40c671() {
+  uint3 v = (0u).xxx;
+  arg_0.GetDimensions(v[0u], v[1u], v[2u]);
+  uint3 res = v;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store3(0u, textureDimensions_40c671());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store3(0u, textureDimensions_40c671());
+}
+
diff --git a/test/tint/builtins/gen/var/textureDimensions/40da20.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/textureDimensions/40da20.wgsl.expected.ir.dxc.hlsl
index 1fac62e..aef29b7 100644
--- a/test/tint/builtins/gen/var/textureDimensions/40da20.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureDimensions/40da20.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,45 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  uint2 prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureDimensions
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation uint2 VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+Texture2D<float4> arg_0 : register(t0, space1);
+uint2 textureDimensions_40da20() {
+  uint2 v = (0u).xx;
+  arg_0.GetDimensions(v[0u], v[1u]);
+  uint2 res = v;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store2(0u, textureDimensions_40da20());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store2(0u, textureDimensions_40da20());
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = textureDimensions_40da20();
+  VertexOutput v_1 = tint_symbol;
+  return v_1;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_2 = vertex_main_inner();
+  VertexOutput v_3 = v_2;
+  VertexOutput v_4 = v_2;
+  vertex_main_outputs v_5 = {v_4.prevent_dce, v_3.pos};
+  return v_5;
+}
+
diff --git a/test/tint/builtins/gen/var/textureDimensions/40da20.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/textureDimensions/40da20.wgsl.expected.ir.fxc.hlsl
index 1fac62e..aef29b7 100644
--- a/test/tint/builtins/gen/var/textureDimensions/40da20.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureDimensions/40da20.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,45 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  uint2 prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureDimensions
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation uint2 VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+Texture2D<float4> arg_0 : register(t0, space1);
+uint2 textureDimensions_40da20() {
+  uint2 v = (0u).xx;
+  arg_0.GetDimensions(v[0u], v[1u]);
+  uint2 res = v;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store2(0u, textureDimensions_40da20());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store2(0u, textureDimensions_40da20());
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = textureDimensions_40da20();
+  VertexOutput v_1 = tint_symbol;
+  return v_1;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_2 = vertex_main_inner();
+  VertexOutput v_3 = v_2;
+  VertexOutput v_4 = v_2;
+  vertex_main_outputs v_5 = {v_4.prevent_dce, v_3.pos};
+  return v_5;
+}
+
diff --git a/test/tint/builtins/gen/var/textureDimensions/40ecf4.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/textureDimensions/40ecf4.wgsl.expected.ir.dxc.hlsl
index 1fac62e..593cc12 100644
--- a/test/tint/builtins/gen/var/textureDimensions/40ecf4.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureDimensions/40ecf4.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,19 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureDimensions
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWByteAddressBuffer prevent_dce : register(u0);
+RWTexture2DArray<uint4> arg_0 : register(u0, space1);
+uint2 textureDimensions_40ecf4() {
+  uint3 v = (0u).xxx;
+  arg_0.GetDimensions(v[0u], v[1u], v[2u]);
+  uint2 res = v.xy;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store2(0u, textureDimensions_40ecf4());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store2(0u, textureDimensions_40ecf4());
+}
+
diff --git a/test/tint/builtins/gen/var/textureDimensions/40ecf4.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/textureDimensions/40ecf4.wgsl.expected.ir.fxc.hlsl
index 1fac62e..593cc12 100644
--- a/test/tint/builtins/gen/var/textureDimensions/40ecf4.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureDimensions/40ecf4.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,19 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureDimensions
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWByteAddressBuffer prevent_dce : register(u0);
+RWTexture2DArray<uint4> arg_0 : register(u0, space1);
+uint2 textureDimensions_40ecf4() {
+  uint3 v = (0u).xxx;
+  arg_0.GetDimensions(v[0u], v[1u], v[2u]);
+  uint2 res = v.xy;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store2(0u, textureDimensions_40ecf4());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store2(0u, textureDimensions_40ecf4());
+}
+
diff --git a/test/tint/builtins/gen/var/textureDimensions/41545f.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/textureDimensions/41545f.wgsl.expected.ir.dxc.hlsl
index 1fac62e..7c07958 100644
--- a/test/tint/builtins/gen/var/textureDimensions/41545f.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureDimensions/41545f.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,19 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureDimensions
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWByteAddressBuffer prevent_dce : register(u0);
+RWTexture2DArray<uint4> arg_0 : register(u0, space1);
+uint2 textureDimensions_41545f() {
+  uint3 v = (0u).xxx;
+  arg_0.GetDimensions(v[0u], v[1u], v[2u]);
+  uint2 res = v.xy;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store2(0u, textureDimensions_41545f());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store2(0u, textureDimensions_41545f());
+}
+
diff --git a/test/tint/builtins/gen/var/textureDimensions/41545f.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/textureDimensions/41545f.wgsl.expected.ir.fxc.hlsl
index 1fac62e..7c07958 100644
--- a/test/tint/builtins/gen/var/textureDimensions/41545f.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureDimensions/41545f.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,19 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureDimensions
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWByteAddressBuffer prevent_dce : register(u0);
+RWTexture2DArray<uint4> arg_0 : register(u0, space1);
+uint2 textureDimensions_41545f() {
+  uint3 v = (0u).xxx;
+  arg_0.GetDimensions(v[0u], v[1u], v[2u]);
+  uint2 res = v.xy;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store2(0u, textureDimensions_41545f());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store2(0u, textureDimensions_41545f());
+}
+
diff --git a/test/tint/builtins/gen/var/textureDimensions/423519.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/textureDimensions/423519.wgsl.expected.ir.dxc.hlsl
index 1fac62e..ab9e8ad 100644
--- a/test/tint/builtins/gen/var/textureDimensions/423519.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureDimensions/423519.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,45 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  uint3 prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureDimensions
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation uint3 VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+Texture3D<uint4> arg_0 : register(t0, space1);
+uint3 textureDimensions_423519() {
+  uint3 v = (0u).xxx;
+  arg_0.GetDimensions(v[0u], v[1u], v[2u]);
+  uint3 res = v;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store3(0u, textureDimensions_423519());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store3(0u, textureDimensions_423519());
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = textureDimensions_423519();
+  VertexOutput v_1 = tint_symbol;
+  return v_1;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_2 = vertex_main_inner();
+  VertexOutput v_3 = v_2;
+  VertexOutput v_4 = v_2;
+  vertex_main_outputs v_5 = {v_4.prevent_dce, v_3.pos};
+  return v_5;
+}
+
diff --git a/test/tint/builtins/gen/var/textureDimensions/423519.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/textureDimensions/423519.wgsl.expected.ir.fxc.hlsl
index 1fac62e..ab9e8ad 100644
--- a/test/tint/builtins/gen/var/textureDimensions/423519.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureDimensions/423519.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,45 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  uint3 prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureDimensions
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation uint3 VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+Texture3D<uint4> arg_0 : register(t0, space1);
+uint3 textureDimensions_423519() {
+  uint3 v = (0u).xxx;
+  arg_0.GetDimensions(v[0u], v[1u], v[2u]);
+  uint3 res = v;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store3(0u, textureDimensions_423519());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store3(0u, textureDimensions_423519());
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = textureDimensions_423519();
+  VertexOutput v_1 = tint_symbol;
+  return v_1;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_2 = vertex_main_inner();
+  VertexOutput v_3 = v_2;
+  VertexOutput v_4 = v_2;
+  vertex_main_outputs v_5 = {v_4.prevent_dce, v_3.pos};
+  return v_5;
+}
+
diff --git a/test/tint/builtins/gen/var/textureDimensions/427f92.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/textureDimensions/427f92.wgsl.expected.ir.dxc.hlsl
index 1fac62e..59baea6 100644
--- a/test/tint/builtins/gen/var/textureDimensions/427f92.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureDimensions/427f92.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,19 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureDimensions
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWByteAddressBuffer prevent_dce : register(u0);
+RWTexture2DArray<uint4> arg_0 : register(u0, space1);
+uint2 textureDimensions_427f92() {
+  uint3 v = (0u).xxx;
+  arg_0.GetDimensions(v[0u], v[1u], v[2u]);
+  uint2 res = v.xy;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store2(0u, textureDimensions_427f92());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store2(0u, textureDimensions_427f92());
+}
+
diff --git a/test/tint/builtins/gen/var/textureDimensions/427f92.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/textureDimensions/427f92.wgsl.expected.ir.fxc.hlsl
index 1fac62e..59baea6 100644
--- a/test/tint/builtins/gen/var/textureDimensions/427f92.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureDimensions/427f92.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,19 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureDimensions
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWByteAddressBuffer prevent_dce : register(u0);
+RWTexture2DArray<uint4> arg_0 : register(u0, space1);
+uint2 textureDimensions_427f92() {
+  uint3 v = (0u).xxx;
+  arg_0.GetDimensions(v[0u], v[1u], v[2u]);
+  uint2 res = v.xy;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store2(0u, textureDimensions_427f92());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store2(0u, textureDimensions_427f92());
+}
+
diff --git a/test/tint/builtins/gen/var/textureDimensions/439651.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/textureDimensions/439651.wgsl.expected.ir.dxc.hlsl
index 1fac62e..50a588d 100644
--- a/test/tint/builtins/gen/var/textureDimensions/439651.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureDimensions/439651.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,19 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureDimensions
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWByteAddressBuffer prevent_dce : register(u0);
+RWTexture2D<int4> arg_0 : register(u0, space1);
+uint2 textureDimensions_439651() {
+  uint2 v = (0u).xx;
+  arg_0.GetDimensions(v[0u], v[1u]);
+  uint2 res = v;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store2(0u, textureDimensions_439651());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store2(0u, textureDimensions_439651());
+}
+
diff --git a/test/tint/builtins/gen/var/textureDimensions/439651.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/textureDimensions/439651.wgsl.expected.ir.fxc.hlsl
index 1fac62e..50a588d 100644
--- a/test/tint/builtins/gen/var/textureDimensions/439651.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureDimensions/439651.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,19 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureDimensions
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWByteAddressBuffer prevent_dce : register(u0);
+RWTexture2D<int4> arg_0 : register(u0, space1);
+uint2 textureDimensions_439651() {
+  uint2 v = (0u).xx;
+  arg_0.GetDimensions(v[0u], v[1u]);
+  uint2 res = v;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store2(0u, textureDimensions_439651());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store2(0u, textureDimensions_439651());
+}
+
diff --git a/test/tint/builtins/gen/var/textureDimensions/445376.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/textureDimensions/445376.wgsl.expected.ir.dxc.hlsl
index 1fac62e..a5abe63 100644
--- a/test/tint/builtins/gen/var/textureDimensions/445376.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureDimensions/445376.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,45 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  uint2 prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureDimensions
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation uint2 VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+Texture2DArray<uint4> arg_0 : register(t0, space1);
+uint2 textureDimensions_445376() {
+  uint3 v = (0u).xxx;
+  arg_0.GetDimensions(v[0u], v[1u], v[2u]);
+  uint2 res = v.xy;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store2(0u, textureDimensions_445376());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store2(0u, textureDimensions_445376());
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = textureDimensions_445376();
+  VertexOutput v_1 = tint_symbol;
+  return v_1;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_2 = vertex_main_inner();
+  VertexOutput v_3 = v_2;
+  VertexOutput v_4 = v_2;
+  vertex_main_outputs v_5 = {v_4.prevent_dce, v_3.pos};
+  return v_5;
+}
+
diff --git a/test/tint/builtins/gen/var/textureDimensions/445376.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/textureDimensions/445376.wgsl.expected.ir.fxc.hlsl
index 1fac62e..a5abe63 100644
--- a/test/tint/builtins/gen/var/textureDimensions/445376.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureDimensions/445376.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,45 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  uint2 prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureDimensions
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation uint2 VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+Texture2DArray<uint4> arg_0 : register(t0, space1);
+uint2 textureDimensions_445376() {
+  uint3 v = (0u).xxx;
+  arg_0.GetDimensions(v[0u], v[1u], v[2u]);
+  uint2 res = v.xy;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store2(0u, textureDimensions_445376());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store2(0u, textureDimensions_445376());
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = textureDimensions_445376();
+  VertexOutput v_1 = tint_symbol;
+  return v_1;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_2 = vertex_main_inner();
+  VertexOutput v_3 = v_2;
+  VertexOutput v_4 = v_2;
+  vertex_main_outputs v_5 = {v_4.prevent_dce, v_3.pos};
+  return v_5;
+}
+
diff --git a/test/tint/builtins/gen/var/textureDimensions/44b358.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/textureDimensions/44b358.wgsl.expected.ir.dxc.hlsl
index 1fac62e..23d171b 100644
--- a/test/tint/builtins/gen/var/textureDimensions/44b358.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureDimensions/44b358.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,19 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureDimensions
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWByteAddressBuffer prevent_dce : register(u0);
+RWTexture3D<uint4> arg_0 : register(u0, space1);
+uint3 textureDimensions_44b358() {
+  uint3 v = (0u).xxx;
+  arg_0.GetDimensions(v[0u], v[1u], v[2u]);
+  uint3 res = v;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store3(0u, textureDimensions_44b358());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store3(0u, textureDimensions_44b358());
+}
+
diff --git a/test/tint/builtins/gen/var/textureDimensions/44b358.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/textureDimensions/44b358.wgsl.expected.ir.fxc.hlsl
index 1fac62e..23d171b 100644
--- a/test/tint/builtins/gen/var/textureDimensions/44b358.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureDimensions/44b358.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,19 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureDimensions
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWByteAddressBuffer prevent_dce : register(u0);
+RWTexture3D<uint4> arg_0 : register(u0, space1);
+uint3 textureDimensions_44b358() {
+  uint3 v = (0u).xxx;
+  arg_0.GetDimensions(v[0u], v[1u], v[2u]);
+  uint3 res = v;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store3(0u, textureDimensions_44b358());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store3(0u, textureDimensions_44b358());
+}
+
diff --git a/test/tint/builtins/gen/var/textureDimensions/452fc1.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/textureDimensions/452fc1.wgsl.expected.ir.dxc.hlsl
index 1fac62e..f54010c 100644
--- a/test/tint/builtins/gen/var/textureDimensions/452fc1.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureDimensions/452fc1.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,19 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureDimensions
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWByteAddressBuffer prevent_dce : register(u0);
+RWTexture2DArray<uint4> arg_0 : register(u0, space1);
+uint2 textureDimensions_452fc1() {
+  uint3 v = (0u).xxx;
+  arg_0.GetDimensions(v[0u], v[1u], v[2u]);
+  uint2 res = v.xy;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store2(0u, textureDimensions_452fc1());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store2(0u, textureDimensions_452fc1());
+}
+
diff --git a/test/tint/builtins/gen/var/textureDimensions/452fc1.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/textureDimensions/452fc1.wgsl.expected.ir.fxc.hlsl
index 1fac62e..f54010c 100644
--- a/test/tint/builtins/gen/var/textureDimensions/452fc1.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureDimensions/452fc1.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,19 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureDimensions
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWByteAddressBuffer prevent_dce : register(u0);
+RWTexture2DArray<uint4> arg_0 : register(u0, space1);
+uint2 textureDimensions_452fc1() {
+  uint3 v = (0u).xxx;
+  arg_0.GetDimensions(v[0u], v[1u], v[2u]);
+  uint2 res = v.xy;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store2(0u, textureDimensions_452fc1());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store2(0u, textureDimensions_452fc1());
+}
+
diff --git a/test/tint/builtins/gen/var/textureDimensions/46f0fc.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/textureDimensions/46f0fc.wgsl.expected.ir.dxc.hlsl
index 1fac62e..2a36393 100644
--- a/test/tint/builtins/gen/var/textureDimensions/46f0fc.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureDimensions/46f0fc.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,45 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  uint2 prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureDimensions
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation uint2 VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+Texture2DArray<float4> arg_0 : register(t0, space1);
+uint2 textureDimensions_46f0fc() {
+  uint3 v = (0u).xxx;
+  arg_0.GetDimensions(v[0u], v[1u], v[2u]);
+  uint2 res = v.xy;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store2(0u, textureDimensions_46f0fc());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store2(0u, textureDimensions_46f0fc());
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = textureDimensions_46f0fc();
+  VertexOutput v_1 = tint_symbol;
+  return v_1;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_2 = vertex_main_inner();
+  VertexOutput v_3 = v_2;
+  VertexOutput v_4 = v_2;
+  vertex_main_outputs v_5 = {v_4.prevent_dce, v_3.pos};
+  return v_5;
+}
+
diff --git a/test/tint/builtins/gen/var/textureDimensions/46f0fc.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/textureDimensions/46f0fc.wgsl.expected.ir.fxc.hlsl
index 1fac62e..2a36393 100644
--- a/test/tint/builtins/gen/var/textureDimensions/46f0fc.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureDimensions/46f0fc.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,45 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  uint2 prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureDimensions
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation uint2 VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+Texture2DArray<float4> arg_0 : register(t0, space1);
+uint2 textureDimensions_46f0fc() {
+  uint3 v = (0u).xxx;
+  arg_0.GetDimensions(v[0u], v[1u], v[2u]);
+  uint2 res = v.xy;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store2(0u, textureDimensions_46f0fc());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store2(0u, textureDimensions_46f0fc());
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = textureDimensions_46f0fc();
+  VertexOutput v_1 = tint_symbol;
+  return v_1;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_2 = vertex_main_inner();
+  VertexOutput v_3 = v_2;
+  VertexOutput v_4 = v_2;
+  vertex_main_outputs v_5 = {v_4.prevent_dce, v_3.pos};
+  return v_5;
+}
+
diff --git a/test/tint/builtins/gen/var/textureDimensions/4716a4.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/textureDimensions/4716a4.wgsl.expected.ir.dxc.hlsl
index 1fac62e..3abff45 100644
--- a/test/tint/builtins/gen/var/textureDimensions/4716a4.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureDimensions/4716a4.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,45 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  uint2 prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureDimensions
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation uint2 VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+Texture2DArray<int4> arg_0 : register(t0, space1);
+uint2 textureDimensions_4716a4() {
+  uint3 v = (0u).xxx;
+  arg_0.GetDimensions(v[0u], v[1u], v[2u]);
+  uint2 res = v.xy;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store2(0u, textureDimensions_4716a4());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store2(0u, textureDimensions_4716a4());
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = textureDimensions_4716a4();
+  VertexOutput v_1 = tint_symbol;
+  return v_1;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_2 = vertex_main_inner();
+  VertexOutput v_3 = v_2;
+  VertexOutput v_4 = v_2;
+  vertex_main_outputs v_5 = {v_4.prevent_dce, v_3.pos};
+  return v_5;
+}
+
diff --git a/test/tint/builtins/gen/var/textureDimensions/4716a4.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/textureDimensions/4716a4.wgsl.expected.ir.fxc.hlsl
index 1fac62e..3abff45 100644
--- a/test/tint/builtins/gen/var/textureDimensions/4716a4.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureDimensions/4716a4.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,45 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  uint2 prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureDimensions
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation uint2 VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+Texture2DArray<int4> arg_0 : register(t0, space1);
+uint2 textureDimensions_4716a4() {
+  uint3 v = (0u).xxx;
+  arg_0.GetDimensions(v[0u], v[1u], v[2u]);
+  uint2 res = v.xy;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store2(0u, textureDimensions_4716a4());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store2(0u, textureDimensions_4716a4());
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = textureDimensions_4716a4();
+  VertexOutput v_1 = tint_symbol;
+  return v_1;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_2 = vertex_main_inner();
+  VertexOutput v_3 = v_2;
+  VertexOutput v_4 = v_2;
+  vertex_main_outputs v_5 = {v_4.prevent_dce, v_3.pos};
+  return v_5;
+}
+
diff --git a/test/tint/builtins/gen/var/textureDimensions/475c10.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/textureDimensions/475c10.wgsl.expected.ir.dxc.hlsl
index 1fac62e..3713f8d 100644
--- a/test/tint/builtins/gen/var/textureDimensions/475c10.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureDimensions/475c10.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,45 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  uint3 prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureDimensions
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation uint3 VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+Texture3D<uint4> arg_0 : register(t0, space1);
+uint3 textureDimensions_475c10() {
+  uint3 v = (0u).xxx;
+  arg_0.GetDimensions(v[0u], v[1u], v[2u]);
+  uint3 res = v;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store3(0u, textureDimensions_475c10());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store3(0u, textureDimensions_475c10());
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = textureDimensions_475c10();
+  VertexOutput v_1 = tint_symbol;
+  return v_1;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_2 = vertex_main_inner();
+  VertexOutput v_3 = v_2;
+  VertexOutput v_4 = v_2;
+  vertex_main_outputs v_5 = {v_4.prevent_dce, v_3.pos};
+  return v_5;
+}
+
diff --git a/test/tint/builtins/gen/var/textureDimensions/475c10.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/textureDimensions/475c10.wgsl.expected.ir.fxc.hlsl
index 1fac62e..3713f8d 100644
--- a/test/tint/builtins/gen/var/textureDimensions/475c10.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureDimensions/475c10.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,45 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  uint3 prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureDimensions
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation uint3 VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+Texture3D<uint4> arg_0 : register(t0, space1);
+uint3 textureDimensions_475c10() {
+  uint3 v = (0u).xxx;
+  arg_0.GetDimensions(v[0u], v[1u], v[2u]);
+  uint3 res = v;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store3(0u, textureDimensions_475c10());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store3(0u, textureDimensions_475c10());
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = textureDimensions_475c10();
+  VertexOutput v_1 = tint_symbol;
+  return v_1;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_2 = vertex_main_inner();
+  VertexOutput v_3 = v_2;
+  VertexOutput v_4 = v_2;
+  vertex_main_outputs v_5 = {v_4.prevent_dce, v_3.pos};
+  return v_5;
+}
+
diff --git a/test/tint/builtins/gen/var/textureDimensions/49a067.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/textureDimensions/49a067.wgsl.expected.ir.dxc.hlsl
index 1fac62e..0b7d970 100644
--- a/test/tint/builtins/gen/var/textureDimensions/49a067.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureDimensions/49a067.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,47 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  uint2 prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureDimensions
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation uint2 VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+TextureCube<float4> arg_0 : register(t0, space1);
+uint2 textureDimensions_49a067() {
+  int arg_1 = 1;
+  TextureCube<float4> v = arg_0;
+  uint3 v_1 = (0u).xxx;
+  v.GetDimensions(uint(arg_1), v_1[0u], v_1[1u], v_1[2u]);
+  uint2 res = v_1.xy;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store2(0u, textureDimensions_49a067());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store2(0u, textureDimensions_49a067());
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = textureDimensions_49a067();
+  VertexOutput v_2 = tint_symbol;
+  return v_2;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_3 = vertex_main_inner();
+  VertexOutput v_4 = v_3;
+  VertexOutput v_5 = v_3;
+  vertex_main_outputs v_6 = {v_5.prevent_dce, v_4.pos};
+  return v_6;
+}
+
diff --git a/test/tint/builtins/gen/var/textureDimensions/49a067.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/textureDimensions/49a067.wgsl.expected.ir.fxc.hlsl
index 1fac62e..0b7d970 100644
--- a/test/tint/builtins/gen/var/textureDimensions/49a067.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureDimensions/49a067.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,47 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  uint2 prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureDimensions
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation uint2 VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+TextureCube<float4> arg_0 : register(t0, space1);
+uint2 textureDimensions_49a067() {
+  int arg_1 = 1;
+  TextureCube<float4> v = arg_0;
+  uint3 v_1 = (0u).xxx;
+  v.GetDimensions(uint(arg_1), v_1[0u], v_1[1u], v_1[2u]);
+  uint2 res = v_1.xy;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store2(0u, textureDimensions_49a067());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store2(0u, textureDimensions_49a067());
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = textureDimensions_49a067();
+  VertexOutput v_2 = tint_symbol;
+  return v_2;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_3 = vertex_main_inner();
+  VertexOutput v_4 = v_3;
+  VertexOutput v_5 = v_3;
+  vertex_main_outputs v_6 = {v_5.prevent_dce, v_4.pos};
+  return v_6;
+}
+
diff --git a/test/tint/builtins/gen/var/textureDimensions/4acec7.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/textureDimensions/4acec7.wgsl.expected.ir.dxc.hlsl
index 1fac62e..f0cd024 100644
--- a/test/tint/builtins/gen/var/textureDimensions/4acec7.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureDimensions/4acec7.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,19 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureDimensions
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWByteAddressBuffer prevent_dce : register(u0);
+RWTexture2DArray<float4> arg_0 : register(u0, space1);
+uint2 textureDimensions_4acec7() {
+  uint3 v = (0u).xxx;
+  arg_0.GetDimensions(v[0u], v[1u], v[2u]);
+  uint2 res = v.xy;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store2(0u, textureDimensions_4acec7());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store2(0u, textureDimensions_4acec7());
+}
+
diff --git a/test/tint/builtins/gen/var/textureDimensions/4acec7.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/textureDimensions/4acec7.wgsl.expected.ir.fxc.hlsl
index 1fac62e..f0cd024 100644
--- a/test/tint/builtins/gen/var/textureDimensions/4acec7.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureDimensions/4acec7.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,19 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureDimensions
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWByteAddressBuffer prevent_dce : register(u0);
+RWTexture2DArray<float4> arg_0 : register(u0, space1);
+uint2 textureDimensions_4acec7() {
+  uint3 v = (0u).xxx;
+  arg_0.GetDimensions(v[0u], v[1u], v[2u]);
+  uint2 res = v.xy;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store2(0u, textureDimensions_4acec7());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store2(0u, textureDimensions_4acec7());
+}
+
diff --git a/test/tint/builtins/gen/var/textureDimensions/4b26ef.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/textureDimensions/4b26ef.wgsl.expected.ir.dxc.hlsl
index 1fac62e..4c8b444 100644
--- a/test/tint/builtins/gen/var/textureDimensions/4b26ef.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureDimensions/4b26ef.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,19 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureDimensions
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWByteAddressBuffer prevent_dce : register(u0);
+RWTexture3D<float4> arg_0 : register(u0, space1);
+uint3 textureDimensions_4b26ef() {
+  uint3 v = (0u).xxx;
+  arg_0.GetDimensions(v[0u], v[1u], v[2u]);
+  uint3 res = v;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store3(0u, textureDimensions_4b26ef());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store3(0u, textureDimensions_4b26ef());
+}
+
diff --git a/test/tint/builtins/gen/var/textureDimensions/4b26ef.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/textureDimensions/4b26ef.wgsl.expected.ir.fxc.hlsl
index 1fac62e..4c8b444 100644
--- a/test/tint/builtins/gen/var/textureDimensions/4b26ef.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureDimensions/4b26ef.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,19 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureDimensions
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWByteAddressBuffer prevent_dce : register(u0);
+RWTexture3D<float4> arg_0 : register(u0, space1);
+uint3 textureDimensions_4b26ef() {
+  uint3 v = (0u).xxx;
+  arg_0.GetDimensions(v[0u], v[1u], v[2u]);
+  uint3 res = v;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store3(0u, textureDimensions_4b26ef());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store3(0u, textureDimensions_4b26ef());
+}
+
diff --git a/test/tint/builtins/gen/var/textureDimensions/4be71b.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/textureDimensions/4be71b.wgsl.expected.ir.dxc.hlsl
index 1fac62e..43f2539 100644
--- a/test/tint/builtins/gen/var/textureDimensions/4be71b.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureDimensions/4be71b.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,45 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  uint2 prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureDimensions
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation uint2 VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+Texture2D<uint4> arg_0 : register(t0, space1);
+uint2 textureDimensions_4be71b() {
+  uint2 v = (0u).xx;
+  arg_0.GetDimensions(v[0u], v[1u]);
+  uint2 res = v;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store2(0u, textureDimensions_4be71b());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store2(0u, textureDimensions_4be71b());
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = textureDimensions_4be71b();
+  VertexOutput v_1 = tint_symbol;
+  return v_1;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_2 = vertex_main_inner();
+  VertexOutput v_3 = v_2;
+  VertexOutput v_4 = v_2;
+  vertex_main_outputs v_5 = {v_4.prevent_dce, v_3.pos};
+  return v_5;
+}
+
diff --git a/test/tint/builtins/gen/var/textureDimensions/4be71b.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/textureDimensions/4be71b.wgsl.expected.ir.fxc.hlsl
index 1fac62e..43f2539 100644
--- a/test/tint/builtins/gen/var/textureDimensions/4be71b.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureDimensions/4be71b.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,45 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  uint2 prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureDimensions
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation uint2 VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+Texture2D<uint4> arg_0 : register(t0, space1);
+uint2 textureDimensions_4be71b() {
+  uint2 v = (0u).xx;
+  arg_0.GetDimensions(v[0u], v[1u]);
+  uint2 res = v;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store2(0u, textureDimensions_4be71b());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store2(0u, textureDimensions_4be71b());
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = textureDimensions_4be71b();
+  VertexOutput v_1 = tint_symbol;
+  return v_1;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_2 = vertex_main_inner();
+  VertexOutput v_3 = v_2;
+  VertexOutput v_4 = v_2;
+  vertex_main_outputs v_5 = {v_4.prevent_dce, v_3.pos};
+  return v_5;
+}
+
diff --git a/test/tint/builtins/gen/var/textureDimensions/4d1f71.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/textureDimensions/4d1f71.wgsl.expected.ir.dxc.hlsl
index 1fac62e..9773b59 100644
--- a/test/tint/builtins/gen/var/textureDimensions/4d1f71.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureDimensions/4d1f71.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,45 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  uint2 prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureDimensions
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation uint2 VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+Texture2DArray<uint4> arg_0 : register(t0, space1);
+uint2 textureDimensions_4d1f71() {
+  uint3 v = (0u).xxx;
+  arg_0.GetDimensions(v[0u], v[1u], v[2u]);
+  uint2 res = v.xy;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store2(0u, textureDimensions_4d1f71());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store2(0u, textureDimensions_4d1f71());
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = textureDimensions_4d1f71();
+  VertexOutput v_1 = tint_symbol;
+  return v_1;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_2 = vertex_main_inner();
+  VertexOutput v_3 = v_2;
+  VertexOutput v_4 = v_2;
+  vertex_main_outputs v_5 = {v_4.prevent_dce, v_3.pos};
+  return v_5;
+}
+
diff --git a/test/tint/builtins/gen/var/textureDimensions/4d1f71.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/textureDimensions/4d1f71.wgsl.expected.ir.fxc.hlsl
index 1fac62e..9773b59 100644
--- a/test/tint/builtins/gen/var/textureDimensions/4d1f71.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureDimensions/4d1f71.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,45 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  uint2 prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureDimensions
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation uint2 VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+Texture2DArray<uint4> arg_0 : register(t0, space1);
+uint2 textureDimensions_4d1f71() {
+  uint3 v = (0u).xxx;
+  arg_0.GetDimensions(v[0u], v[1u], v[2u]);
+  uint2 res = v.xy;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store2(0u, textureDimensions_4d1f71());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store2(0u, textureDimensions_4d1f71());
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = textureDimensions_4d1f71();
+  VertexOutput v_1 = tint_symbol;
+  return v_1;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_2 = vertex_main_inner();
+  VertexOutput v_3 = v_2;
+  VertexOutput v_4 = v_2;
+  vertex_main_outputs v_5 = {v_4.prevent_dce, v_3.pos};
+  return v_5;
+}
+
diff --git a/test/tint/builtins/gen/var/textureDimensions/4d27b3.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/textureDimensions/4d27b3.wgsl.expected.ir.dxc.hlsl
index 1fac62e..ca1a07e 100644
--- a/test/tint/builtins/gen/var/textureDimensions/4d27b3.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureDimensions/4d27b3.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,19 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureDimensions
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWByteAddressBuffer prevent_dce : register(u0);
+RWTexture3D<int4> arg_0 : register(u0, space1);
+uint3 textureDimensions_4d27b3() {
+  uint3 v = (0u).xxx;
+  arg_0.GetDimensions(v[0u], v[1u], v[2u]);
+  uint3 res = v;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store3(0u, textureDimensions_4d27b3());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store3(0u, textureDimensions_4d27b3());
+}
+
diff --git a/test/tint/builtins/gen/var/textureDimensions/4d27b3.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/textureDimensions/4d27b3.wgsl.expected.ir.fxc.hlsl
index 1fac62e..ca1a07e 100644
--- a/test/tint/builtins/gen/var/textureDimensions/4d27b3.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureDimensions/4d27b3.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,19 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureDimensions
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWByteAddressBuffer prevent_dce : register(u0);
+RWTexture3D<int4> arg_0 : register(u0, space1);
+uint3 textureDimensions_4d27b3() {
+  uint3 v = (0u).xxx;
+  arg_0.GetDimensions(v[0u], v[1u], v[2u]);
+  uint3 res = v;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store3(0u, textureDimensions_4d27b3());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store3(0u, textureDimensions_4d27b3());
+}
+
diff --git a/test/tint/builtins/gen/var/textureDimensions/4df14c.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/textureDimensions/4df14c.wgsl.expected.ir.dxc.hlsl
index 1fac62e..6d87a7c 100644
--- a/test/tint/builtins/gen/var/textureDimensions/4df14c.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureDimensions/4df14c.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,19 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureDimensions
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWByteAddressBuffer prevent_dce : register(u0);
+RWTexture3D<uint4> arg_0 : register(u0, space1);
+uint3 textureDimensions_4df14c() {
+  uint3 v = (0u).xxx;
+  arg_0.GetDimensions(v[0u], v[1u], v[2u]);
+  uint3 res = v;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store3(0u, textureDimensions_4df14c());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store3(0u, textureDimensions_4df14c());
+}
+
diff --git a/test/tint/builtins/gen/var/textureDimensions/4df14c.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/textureDimensions/4df14c.wgsl.expected.ir.fxc.hlsl
index 1fac62e..6d87a7c 100644
--- a/test/tint/builtins/gen/var/textureDimensions/4df14c.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureDimensions/4df14c.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,19 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureDimensions
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWByteAddressBuffer prevent_dce : register(u0);
+RWTexture3D<uint4> arg_0 : register(u0, space1);
+uint3 textureDimensions_4df14c() {
+  uint3 v = (0u).xxx;
+  arg_0.GetDimensions(v[0u], v[1u], v[2u]);
+  uint3 res = v;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store3(0u, textureDimensions_4df14c());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store3(0u, textureDimensions_4df14c());
+}
+
diff --git a/test/tint/builtins/gen/var/textureDimensions/4e540a.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/textureDimensions/4e540a.wgsl.expected.ir.dxc.hlsl
index 1fac62e..8483f5d 100644
--- a/test/tint/builtins/gen/var/textureDimensions/4e540a.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureDimensions/4e540a.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,19 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureDimensions
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWByteAddressBuffer prevent_dce : register(u0);
+RWTexture1D<int4> arg_0 : register(u0, space1);
+uint textureDimensions_4e540a() {
+  uint v = 0u;
+  arg_0.GetDimensions(v);
+  uint res = v;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store(0u, textureDimensions_4e540a());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store(0u, textureDimensions_4e540a());
+}
+
diff --git a/test/tint/builtins/gen/var/textureDimensions/4e540a.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/textureDimensions/4e540a.wgsl.expected.ir.fxc.hlsl
index 1fac62e..8483f5d 100644
--- a/test/tint/builtins/gen/var/textureDimensions/4e540a.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureDimensions/4e540a.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,19 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureDimensions
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWByteAddressBuffer prevent_dce : register(u0);
+RWTexture1D<int4> arg_0 : register(u0, space1);
+uint textureDimensions_4e540a() {
+  uint v = 0u;
+  arg_0.GetDimensions(v);
+  uint res = v;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store(0u, textureDimensions_4e540a());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store(0u, textureDimensions_4e540a());
+}
+
diff --git a/test/tint/builtins/gen/var/textureDimensions/528c0e.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/textureDimensions/528c0e.wgsl.expected.ir.dxc.hlsl
index 1fac62e..6a41b98 100644
--- a/test/tint/builtins/gen/var/textureDimensions/528c0e.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureDimensions/528c0e.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,47 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  uint2 prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureDimensions
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation uint2 VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+Texture2DArray<uint4> arg_0 : register(t0, space1);
+uint2 textureDimensions_528c0e() {
+  uint arg_1 = 1u;
+  Texture2DArray<uint4> v = arg_0;
+  uint4 v_1 = (0u).xxxx;
+  v.GetDimensions(uint(arg_1), v_1[0u], v_1[1u], v_1[2u], v_1[3u]);
+  uint2 res = v_1.xy;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store2(0u, textureDimensions_528c0e());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store2(0u, textureDimensions_528c0e());
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = textureDimensions_528c0e();
+  VertexOutput v_2 = tint_symbol;
+  return v_2;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_3 = vertex_main_inner();
+  VertexOutput v_4 = v_3;
+  VertexOutput v_5 = v_3;
+  vertex_main_outputs v_6 = {v_5.prevent_dce, v_4.pos};
+  return v_6;
+}
+
diff --git a/test/tint/builtins/gen/var/textureDimensions/528c0e.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/textureDimensions/528c0e.wgsl.expected.ir.fxc.hlsl
index 1fac62e..6a41b98 100644
--- a/test/tint/builtins/gen/var/textureDimensions/528c0e.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureDimensions/528c0e.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,47 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  uint2 prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureDimensions
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation uint2 VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+Texture2DArray<uint4> arg_0 : register(t0, space1);
+uint2 textureDimensions_528c0e() {
+  uint arg_1 = 1u;
+  Texture2DArray<uint4> v = arg_0;
+  uint4 v_1 = (0u).xxxx;
+  v.GetDimensions(uint(arg_1), v_1[0u], v_1[1u], v_1[2u], v_1[3u]);
+  uint2 res = v_1.xy;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store2(0u, textureDimensions_528c0e());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store2(0u, textureDimensions_528c0e());
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = textureDimensions_528c0e();
+  VertexOutput v_2 = tint_symbol;
+  return v_2;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_3 = vertex_main_inner();
+  VertexOutput v_4 = v_3;
+  VertexOutput v_5 = v_3;
+  vertex_main_outputs v_6 = {v_5.prevent_dce, v_4.pos};
+  return v_6;
+}
+
diff --git a/test/tint/builtins/gen/var/textureDimensions/52cf60.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/textureDimensions/52cf60.wgsl.expected.ir.dxc.hlsl
index 1fac62e..70b8e2f 100644
--- a/test/tint/builtins/gen/var/textureDimensions/52cf60.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureDimensions/52cf60.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,45 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  uint2 prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureDimensions
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation uint2 VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+Texture2D<float4> arg_0 : register(t0, space1);
+uint2 textureDimensions_52cf60() {
+  uint2 v = (0u).xx;
+  arg_0.GetDimensions(v[0u], v[1u]);
+  uint2 res = v;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store2(0u, textureDimensions_52cf60());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store2(0u, textureDimensions_52cf60());
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = textureDimensions_52cf60();
+  VertexOutput v_1 = tint_symbol;
+  return v_1;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_2 = vertex_main_inner();
+  VertexOutput v_3 = v_2;
+  VertexOutput v_4 = v_2;
+  vertex_main_outputs v_5 = {v_4.prevent_dce, v_3.pos};
+  return v_5;
+}
+
diff --git a/test/tint/builtins/gen/var/textureDimensions/52cf60.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/textureDimensions/52cf60.wgsl.expected.ir.fxc.hlsl
index 1fac62e..70b8e2f 100644
--- a/test/tint/builtins/gen/var/textureDimensions/52cf60.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureDimensions/52cf60.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,45 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  uint2 prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureDimensions
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation uint2 VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+Texture2D<float4> arg_0 : register(t0, space1);
+uint2 textureDimensions_52cf60() {
+  uint2 v = (0u).xx;
+  arg_0.GetDimensions(v[0u], v[1u]);
+  uint2 res = v;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store2(0u, textureDimensions_52cf60());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store2(0u, textureDimensions_52cf60());
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = textureDimensions_52cf60();
+  VertexOutput v_1 = tint_symbol;
+  return v_1;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_2 = vertex_main_inner();
+  VertexOutput v_3 = v_2;
+  VertexOutput v_4 = v_2;
+  vertex_main_outputs v_5 = {v_4.prevent_dce, v_3.pos};
+  return v_5;
+}
+
diff --git a/test/tint/builtins/gen/var/textureDimensions/534ef8.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/textureDimensions/534ef8.wgsl.expected.ir.dxc.hlsl
index 1fac62e..374def4 100644
--- a/test/tint/builtins/gen/var/textureDimensions/534ef8.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureDimensions/534ef8.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,45 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  uint2 prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureDimensions
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation uint2 VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+Texture2D<int4> arg_0 : register(t0, space1);
+uint2 textureDimensions_534ef8() {
+  uint2 v = (0u).xx;
+  arg_0.GetDimensions(v[0u], v[1u]);
+  uint2 res = v;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store2(0u, textureDimensions_534ef8());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store2(0u, textureDimensions_534ef8());
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = textureDimensions_534ef8();
+  VertexOutput v_1 = tint_symbol;
+  return v_1;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_2 = vertex_main_inner();
+  VertexOutput v_3 = v_2;
+  VertexOutput v_4 = v_2;
+  vertex_main_outputs v_5 = {v_4.prevent_dce, v_3.pos};
+  return v_5;
+}
+
diff --git a/test/tint/builtins/gen/var/textureDimensions/534ef8.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/textureDimensions/534ef8.wgsl.expected.ir.fxc.hlsl
index 1fac62e..374def4 100644
--- a/test/tint/builtins/gen/var/textureDimensions/534ef8.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureDimensions/534ef8.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,45 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  uint2 prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureDimensions
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation uint2 VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+Texture2D<int4> arg_0 : register(t0, space1);
+uint2 textureDimensions_534ef8() {
+  uint2 v = (0u).xx;
+  arg_0.GetDimensions(v[0u], v[1u]);
+  uint2 res = v;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store2(0u, textureDimensions_534ef8());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store2(0u, textureDimensions_534ef8());
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = textureDimensions_534ef8();
+  VertexOutput v_1 = tint_symbol;
+  return v_1;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_2 = vertex_main_inner();
+  VertexOutput v_3 = v_2;
+  VertexOutput v_4 = v_2;
+  vertex_main_outputs v_5 = {v_4.prevent_dce, v_3.pos};
+  return v_5;
+}
+
diff --git a/test/tint/builtins/gen/var/textureDimensions/542c62.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/textureDimensions/542c62.wgsl.expected.ir.dxc.hlsl
index 1fac62e..f1a0867 100644
--- a/test/tint/builtins/gen/var/textureDimensions/542c62.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureDimensions/542c62.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,19 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureDimensions
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWByteAddressBuffer prevent_dce : register(u0);
+RWTexture1D<float4> arg_0 : register(u0, space1);
+uint textureDimensions_542c62() {
+  uint v = 0u;
+  arg_0.GetDimensions(v);
+  uint res = v;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store(0u, textureDimensions_542c62());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store(0u, textureDimensions_542c62());
+}
+
diff --git a/test/tint/builtins/gen/var/textureDimensions/542c62.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/textureDimensions/542c62.wgsl.expected.ir.fxc.hlsl
index 1fac62e..f1a0867 100644
--- a/test/tint/builtins/gen/var/textureDimensions/542c62.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureDimensions/542c62.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,19 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureDimensions
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWByteAddressBuffer prevent_dce : register(u0);
+RWTexture1D<float4> arg_0 : register(u0, space1);
+uint textureDimensions_542c62() {
+  uint v = 0u;
+  arg_0.GetDimensions(v);
+  uint res = v;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store(0u, textureDimensions_542c62());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store(0u, textureDimensions_542c62());
+}
+
diff --git a/test/tint/builtins/gen/var/textureDimensions/55fdeb.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/textureDimensions/55fdeb.wgsl.expected.ir.dxc.hlsl
index 1fac62e..179dd6a 100644
--- a/test/tint/builtins/gen/var/textureDimensions/55fdeb.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureDimensions/55fdeb.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,19 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureDimensions
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWByteAddressBuffer prevent_dce : register(u0);
+RWTexture2D<float4> arg_0 : register(u0, space1);
+uint2 textureDimensions_55fdeb() {
+  uint2 v = (0u).xx;
+  arg_0.GetDimensions(v[0u], v[1u]);
+  uint2 res = v;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store2(0u, textureDimensions_55fdeb());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store2(0u, textureDimensions_55fdeb());
+}
+
diff --git a/test/tint/builtins/gen/var/textureDimensions/55fdeb.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/textureDimensions/55fdeb.wgsl.expected.ir.fxc.hlsl
index 1fac62e..179dd6a 100644
--- a/test/tint/builtins/gen/var/textureDimensions/55fdeb.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureDimensions/55fdeb.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,19 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureDimensions
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWByteAddressBuffer prevent_dce : register(u0);
+RWTexture2D<float4> arg_0 : register(u0, space1);
+uint2 textureDimensions_55fdeb() {
+  uint2 v = (0u).xx;
+  arg_0.GetDimensions(v[0u], v[1u]);
+  uint2 res = v;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store2(0u, textureDimensions_55fdeb());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store2(0u, textureDimensions_55fdeb());
+}
+
diff --git a/test/tint/builtins/gen/var/textureDimensions/5703b3.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/textureDimensions/5703b3.wgsl.expected.ir.dxc.hlsl
index 1fac62e..f00eafc 100644
--- a/test/tint/builtins/gen/var/textureDimensions/5703b3.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureDimensions/5703b3.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,19 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureDimensions
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWByteAddressBuffer prevent_dce : register(u0);
+RWTexture1D<float4> arg_0 : register(u0, space1);
+uint textureDimensions_5703b3() {
+  uint v = 0u;
+  arg_0.GetDimensions(v);
+  uint res = v;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store(0u, textureDimensions_5703b3());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store(0u, textureDimensions_5703b3());
+}
+
diff --git a/test/tint/builtins/gen/var/textureDimensions/5703b3.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/textureDimensions/5703b3.wgsl.expected.ir.fxc.hlsl
index 1fac62e..f00eafc 100644
--- a/test/tint/builtins/gen/var/textureDimensions/5703b3.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureDimensions/5703b3.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,19 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureDimensions
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWByteAddressBuffer prevent_dce : register(u0);
+RWTexture1D<float4> arg_0 : register(u0, space1);
+uint textureDimensions_5703b3() {
+  uint v = 0u;
+  arg_0.GetDimensions(v);
+  uint res = v;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store(0u, textureDimensions_5703b3());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store(0u, textureDimensions_5703b3());
+}
+
diff --git a/test/tint/builtins/gen/var/textureDimensions/578e75.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/textureDimensions/578e75.wgsl.expected.ir.dxc.hlsl
index 1fac62e..dfc7cc6 100644
--- a/test/tint/builtins/gen/var/textureDimensions/578e75.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureDimensions/578e75.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,19 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureDimensions
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWByteAddressBuffer prevent_dce : register(u0);
+RWTexture2DArray<float4> arg_0 : register(u0, space1);
+uint2 textureDimensions_578e75() {
+  uint3 v = (0u).xxx;
+  arg_0.GetDimensions(v[0u], v[1u], v[2u]);
+  uint2 res = v.xy;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store2(0u, textureDimensions_578e75());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store2(0u, textureDimensions_578e75());
+}
+
diff --git a/test/tint/builtins/gen/var/textureDimensions/578e75.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/textureDimensions/578e75.wgsl.expected.ir.fxc.hlsl
index 1fac62e..dfc7cc6 100644
--- a/test/tint/builtins/gen/var/textureDimensions/578e75.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureDimensions/578e75.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,19 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureDimensions
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWByteAddressBuffer prevent_dce : register(u0);
+RWTexture2DArray<float4> arg_0 : register(u0, space1);
+uint2 textureDimensions_578e75() {
+  uint3 v = (0u).xxx;
+  arg_0.GetDimensions(v[0u], v[1u], v[2u]);
+  uint2 res = v.xy;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store2(0u, textureDimensions_578e75());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store2(0u, textureDimensions_578e75());
+}
+
diff --git a/test/tint/builtins/gen/var/textureDimensions/579eee.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/textureDimensions/579eee.wgsl.expected.ir.dxc.hlsl
index 1fac62e..5b06b67 100644
--- a/test/tint/builtins/gen/var/textureDimensions/579eee.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureDimensions/579eee.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,19 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureDimensions
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWByteAddressBuffer prevent_dce : register(u0);
+RWTexture2D<uint4> arg_0 : register(u0, space1);
+uint2 textureDimensions_579eee() {
+  uint2 v = (0u).xx;
+  arg_0.GetDimensions(v[0u], v[1u]);
+  uint2 res = v;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store2(0u, textureDimensions_579eee());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store2(0u, textureDimensions_579eee());
+}
+
diff --git a/test/tint/builtins/gen/var/textureDimensions/579eee.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/textureDimensions/579eee.wgsl.expected.ir.fxc.hlsl
index 1fac62e..5b06b67 100644
--- a/test/tint/builtins/gen/var/textureDimensions/579eee.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureDimensions/579eee.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,19 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureDimensions
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWByteAddressBuffer prevent_dce : register(u0);
+RWTexture2D<uint4> arg_0 : register(u0, space1);
+uint2 textureDimensions_579eee() {
+  uint2 v = (0u).xx;
+  arg_0.GetDimensions(v[0u], v[1u]);
+  uint2 res = v;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store2(0u, textureDimensions_579eee());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store2(0u, textureDimensions_579eee());
+}
+
diff --git a/test/tint/builtins/gen/var/textureDimensions/58a82d.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/textureDimensions/58a82d.wgsl.expected.ir.dxc.hlsl
index 1fac62e..b0d7a25 100644
--- a/test/tint/builtins/gen/var/textureDimensions/58a82d.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureDimensions/58a82d.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,19 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureDimensions
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWByteAddressBuffer prevent_dce : register(u0);
+RWTexture1D<uint4> arg_0 : register(u0, space1);
+uint textureDimensions_58a82d() {
+  uint v = 0u;
+  arg_0.GetDimensions(v);
+  uint res = v;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store(0u, textureDimensions_58a82d());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store(0u, textureDimensions_58a82d());
+}
+
diff --git a/test/tint/builtins/gen/var/textureDimensions/58a82d.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/textureDimensions/58a82d.wgsl.expected.ir.fxc.hlsl
index 1fac62e..b0d7a25 100644
--- a/test/tint/builtins/gen/var/textureDimensions/58a82d.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureDimensions/58a82d.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,19 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureDimensions
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWByteAddressBuffer prevent_dce : register(u0);
+RWTexture1D<uint4> arg_0 : register(u0, space1);
+uint textureDimensions_58a82d() {
+  uint v = 0u;
+  arg_0.GetDimensions(v);
+  uint res = v;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store(0u, textureDimensions_58a82d());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store(0u, textureDimensions_58a82d());
+}
+
diff --git a/test/tint/builtins/gen/var/textureDimensions/591981.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/textureDimensions/591981.wgsl.expected.ir.dxc.hlsl
index 1fac62e..f5e1080 100644
--- a/test/tint/builtins/gen/var/textureDimensions/591981.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureDimensions/591981.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,19 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureDimensions
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWByteAddressBuffer prevent_dce : register(u0);
+RWTexture3D<int4> arg_0 : register(u0, space1);
+uint3 textureDimensions_591981() {
+  uint3 v = (0u).xxx;
+  arg_0.GetDimensions(v[0u], v[1u], v[2u]);
+  uint3 res = v;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store3(0u, textureDimensions_591981());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store3(0u, textureDimensions_591981());
+}
+
diff --git a/test/tint/builtins/gen/var/textureDimensions/591981.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/textureDimensions/591981.wgsl.expected.ir.fxc.hlsl
index 1fac62e..f5e1080 100644
--- a/test/tint/builtins/gen/var/textureDimensions/591981.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureDimensions/591981.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,19 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureDimensions
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWByteAddressBuffer prevent_dce : register(u0);
+RWTexture3D<int4> arg_0 : register(u0, space1);
+uint3 textureDimensions_591981() {
+  uint3 v = (0u).xxx;
+  arg_0.GetDimensions(v[0u], v[1u], v[2u]);
+  uint3 res = v;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store3(0u, textureDimensions_591981());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store3(0u, textureDimensions_591981());
+}
+
diff --git a/test/tint/builtins/gen/var/textureDimensions/599ab5.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/textureDimensions/599ab5.wgsl.expected.ir.dxc.hlsl
index 1fac62e..3e95111 100644
--- a/test/tint/builtins/gen/var/textureDimensions/599ab5.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureDimensions/599ab5.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,19 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureDimensions
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWByteAddressBuffer prevent_dce : register(u0);
+RWTexture2D<float4> arg_0 : register(u0, space1);
+uint2 textureDimensions_599ab5() {
+  uint2 v = (0u).xx;
+  arg_0.GetDimensions(v[0u], v[1u]);
+  uint2 res = v;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store2(0u, textureDimensions_599ab5());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store2(0u, textureDimensions_599ab5());
+}
+
diff --git a/test/tint/builtins/gen/var/textureDimensions/599ab5.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/textureDimensions/599ab5.wgsl.expected.ir.fxc.hlsl
index 1fac62e..3e95111 100644
--- a/test/tint/builtins/gen/var/textureDimensions/599ab5.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureDimensions/599ab5.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,19 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureDimensions
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWByteAddressBuffer prevent_dce : register(u0);
+RWTexture2D<float4> arg_0 : register(u0, space1);
+uint2 textureDimensions_599ab5() {
+  uint2 v = (0u).xx;
+  arg_0.GetDimensions(v[0u], v[1u]);
+  uint2 res = v;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store2(0u, textureDimensions_599ab5());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store2(0u, textureDimensions_599ab5());
+}
+
diff --git a/test/tint/builtins/gen/var/textureDimensions/5b4b10.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/textureDimensions/5b4b10.wgsl.expected.ir.dxc.hlsl
index 1fac62e..45c995d 100644
--- a/test/tint/builtins/gen/var/textureDimensions/5b4b10.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureDimensions/5b4b10.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,19 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureDimensions
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWByteAddressBuffer prevent_dce : register(u0);
+RWTexture3D<float4> arg_0 : register(u0, space1);
+uint3 textureDimensions_5b4b10() {
+  uint3 v = (0u).xxx;
+  arg_0.GetDimensions(v[0u], v[1u], v[2u]);
+  uint3 res = v;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store3(0u, textureDimensions_5b4b10());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store3(0u, textureDimensions_5b4b10());
+}
+
diff --git a/test/tint/builtins/gen/var/textureDimensions/5b4b10.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/textureDimensions/5b4b10.wgsl.expected.ir.fxc.hlsl
index 1fac62e..45c995d 100644
--- a/test/tint/builtins/gen/var/textureDimensions/5b4b10.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureDimensions/5b4b10.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,19 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureDimensions
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWByteAddressBuffer prevent_dce : register(u0);
+RWTexture3D<float4> arg_0 : register(u0, space1);
+uint3 textureDimensions_5b4b10() {
+  uint3 v = (0u).xxx;
+  arg_0.GetDimensions(v[0u], v[1u], v[2u]);
+  uint3 res = v;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store3(0u, textureDimensions_5b4b10());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store3(0u, textureDimensions_5b4b10());
+}
+
diff --git a/test/tint/builtins/gen/var/textureDimensions/5df042.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/textureDimensions/5df042.wgsl.expected.ir.dxc.hlsl
index 1fac62e..622460e 100644
--- a/test/tint/builtins/gen/var/textureDimensions/5df042.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureDimensions/5df042.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,45 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  uint prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureDimensions
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation uint VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+Texture1D<int4> arg_0 : register(t0, space1);
+uint textureDimensions_5df042() {
+  uint v = 0u;
+  arg_0.GetDimensions(v);
+  uint res = v;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store(0u, textureDimensions_5df042());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store(0u, textureDimensions_5df042());
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = textureDimensions_5df042();
+  VertexOutput v_1 = tint_symbol;
+  return v_1;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_2 = vertex_main_inner();
+  VertexOutput v_3 = v_2;
+  VertexOutput v_4 = v_2;
+  vertex_main_outputs v_5 = {v_4.prevent_dce, v_3.pos};
+  return v_5;
+}
+
diff --git a/test/tint/builtins/gen/var/textureDimensions/5df042.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/textureDimensions/5df042.wgsl.expected.ir.fxc.hlsl
index 1fac62e..622460e 100644
--- a/test/tint/builtins/gen/var/textureDimensions/5df042.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureDimensions/5df042.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,45 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  uint prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureDimensions
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation uint VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+Texture1D<int4> arg_0 : register(t0, space1);
+uint textureDimensions_5df042() {
+  uint v = 0u;
+  arg_0.GetDimensions(v);
+  uint res = v;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store(0u, textureDimensions_5df042());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store(0u, textureDimensions_5df042());
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = textureDimensions_5df042();
+  VertexOutput v_1 = tint_symbol;
+  return v_1;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_2 = vertex_main_inner();
+  VertexOutput v_3 = v_2;
+  VertexOutput v_4 = v_2;
+  vertex_main_outputs v_5 = {v_4.prevent_dce, v_3.pos};
+  return v_5;
+}
+
diff --git a/test/tint/builtins/gen/var/textureDimensions/607979.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/textureDimensions/607979.wgsl.expected.ir.dxc.hlsl
index 1fac62e..19a8119 100644
--- a/test/tint/builtins/gen/var/textureDimensions/607979.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureDimensions/607979.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,19 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureDimensions
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWByteAddressBuffer prevent_dce : register(u0);
+RWTexture1D<int4> arg_0 : register(u0, space1);
+uint textureDimensions_607979() {
+  uint v = 0u;
+  arg_0.GetDimensions(v);
+  uint res = v;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store(0u, textureDimensions_607979());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store(0u, textureDimensions_607979());
+}
+
diff --git a/test/tint/builtins/gen/var/textureDimensions/607979.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/textureDimensions/607979.wgsl.expected.ir.fxc.hlsl
index 1fac62e..19a8119 100644
--- a/test/tint/builtins/gen/var/textureDimensions/607979.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureDimensions/607979.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,19 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureDimensions
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWByteAddressBuffer prevent_dce : register(u0);
+RWTexture1D<int4> arg_0 : register(u0, space1);
+uint textureDimensions_607979() {
+  uint v = 0u;
+  arg_0.GetDimensions(v);
+  uint res = v;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store(0u, textureDimensions_607979());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store(0u, textureDimensions_607979());
+}
+
diff --git a/test/tint/builtins/gen/var/textureDimensions/609d34.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/textureDimensions/609d34.wgsl.expected.ir.dxc.hlsl
index 1fac62e..538e232 100644
--- a/test/tint/builtins/gen/var/textureDimensions/609d34.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureDimensions/609d34.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,45 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  uint2 prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureDimensions
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation uint2 VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+Texture2DArray<float4> arg_0 : register(t0, space1);
+uint2 textureDimensions_609d34() {
+  uint3 v = (0u).xxx;
+  arg_0.GetDimensions(v[0u], v[1u], v[2u]);
+  uint2 res = v.xy;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store2(0u, textureDimensions_609d34());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store2(0u, textureDimensions_609d34());
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = textureDimensions_609d34();
+  VertexOutput v_1 = tint_symbol;
+  return v_1;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_2 = vertex_main_inner();
+  VertexOutput v_3 = v_2;
+  VertexOutput v_4 = v_2;
+  vertex_main_outputs v_5 = {v_4.prevent_dce, v_3.pos};
+  return v_5;
+}
+
diff --git a/test/tint/builtins/gen/var/textureDimensions/609d34.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/textureDimensions/609d34.wgsl.expected.ir.fxc.hlsl
index 1fac62e..538e232 100644
--- a/test/tint/builtins/gen/var/textureDimensions/609d34.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureDimensions/609d34.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,45 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  uint2 prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureDimensions
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation uint2 VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+Texture2DArray<float4> arg_0 : register(t0, space1);
+uint2 textureDimensions_609d34() {
+  uint3 v = (0u).xxx;
+  arg_0.GetDimensions(v[0u], v[1u], v[2u]);
+  uint2 res = v.xy;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store2(0u, textureDimensions_609d34());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store2(0u, textureDimensions_609d34());
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = textureDimensions_609d34();
+  VertexOutput v_1 = tint_symbol;
+  return v_1;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_2 = vertex_main_inner();
+  VertexOutput v_3 = v_2;
+  VertexOutput v_4 = v_2;
+  vertex_main_outputs v_5 = {v_4.prevent_dce, v_3.pos};
+  return v_5;
+}
+
diff --git a/test/tint/builtins/gen/var/textureDimensions/617dc8.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/textureDimensions/617dc8.wgsl.expected.ir.dxc.hlsl
index 1fac62e..5982595 100644
--- a/test/tint/builtins/gen/var/textureDimensions/617dc8.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureDimensions/617dc8.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,19 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureDimensions
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWByteAddressBuffer prevent_dce : register(u0);
+RWTexture3D<float4> arg_0 : register(u0, space1);
+uint3 textureDimensions_617dc8() {
+  uint3 v = (0u).xxx;
+  arg_0.GetDimensions(v[0u], v[1u], v[2u]);
+  uint3 res = v;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store3(0u, textureDimensions_617dc8());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store3(0u, textureDimensions_617dc8());
+}
+
diff --git a/test/tint/builtins/gen/var/textureDimensions/617dc8.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/textureDimensions/617dc8.wgsl.expected.ir.fxc.hlsl
index 1fac62e..5982595 100644
--- a/test/tint/builtins/gen/var/textureDimensions/617dc8.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureDimensions/617dc8.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,19 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureDimensions
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWByteAddressBuffer prevent_dce : register(u0);
+RWTexture3D<float4> arg_0 : register(u0, space1);
+uint3 textureDimensions_617dc8() {
+  uint3 v = (0u).xxx;
+  arg_0.GetDimensions(v[0u], v[1u], v[2u]);
+  uint3 res = v;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store3(0u, textureDimensions_617dc8());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store3(0u, textureDimensions_617dc8());
+}
+
diff --git a/test/tint/builtins/gen/var/textureDimensions/62cb5a.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/textureDimensions/62cb5a.wgsl.expected.ir.dxc.hlsl
index 1fac62e..0ba7736 100644
--- a/test/tint/builtins/gen/var/textureDimensions/62cb5a.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureDimensions/62cb5a.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,45 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  uint2 prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureDimensions
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation uint2 VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+Texture2DArray<int4> arg_0 : register(t0, space1);
+uint2 textureDimensions_62cb5a() {
+  uint3 v = (0u).xxx;
+  arg_0.GetDimensions(v[0u], v[1u], v[2u]);
+  uint2 res = v.xy;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store2(0u, textureDimensions_62cb5a());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store2(0u, textureDimensions_62cb5a());
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = textureDimensions_62cb5a();
+  VertexOutput v_1 = tint_symbol;
+  return v_1;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_2 = vertex_main_inner();
+  VertexOutput v_3 = v_2;
+  VertexOutput v_4 = v_2;
+  vertex_main_outputs v_5 = {v_4.prevent_dce, v_3.pos};
+  return v_5;
+}
+
diff --git a/test/tint/builtins/gen/var/textureDimensions/62cb5a.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/textureDimensions/62cb5a.wgsl.expected.ir.fxc.hlsl
index 1fac62e..0ba7736 100644
--- a/test/tint/builtins/gen/var/textureDimensions/62cb5a.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureDimensions/62cb5a.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,45 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  uint2 prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureDimensions
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation uint2 VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+Texture2DArray<int4> arg_0 : register(t0, space1);
+uint2 textureDimensions_62cb5a() {
+  uint3 v = (0u).xxx;
+  arg_0.GetDimensions(v[0u], v[1u], v[2u]);
+  uint2 res = v.xy;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store2(0u, textureDimensions_62cb5a());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store2(0u, textureDimensions_62cb5a());
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = textureDimensions_62cb5a();
+  VertexOutput v_1 = tint_symbol;
+  return v_1;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_2 = vertex_main_inner();
+  VertexOutput v_3 = v_2;
+  VertexOutput v_4 = v_2;
+  vertex_main_outputs v_5 = {v_4.prevent_dce, v_3.pos};
+  return v_5;
+}
+
diff --git a/test/tint/builtins/gen/var/textureDimensions/62e7ae.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/textureDimensions/62e7ae.wgsl.expected.ir.dxc.hlsl
index 1fac62e..c7f195f 100644
--- a/test/tint/builtins/gen/var/textureDimensions/62e7ae.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureDimensions/62e7ae.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,45 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  uint2 prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureDimensions
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation uint2 VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+Texture2D<uint4> arg_0 : register(t0, space1);
+uint2 textureDimensions_62e7ae() {
+  uint2 v = (0u).xx;
+  arg_0.GetDimensions(v[0u], v[1u]);
+  uint2 res = v;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store2(0u, textureDimensions_62e7ae());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store2(0u, textureDimensions_62e7ae());
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = textureDimensions_62e7ae();
+  VertexOutput v_1 = tint_symbol;
+  return v_1;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_2 = vertex_main_inner();
+  VertexOutput v_3 = v_2;
+  VertexOutput v_4 = v_2;
+  vertex_main_outputs v_5 = {v_4.prevent_dce, v_3.pos};
+  return v_5;
+}
+
diff --git a/test/tint/builtins/gen/var/textureDimensions/62e7ae.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/textureDimensions/62e7ae.wgsl.expected.ir.fxc.hlsl
index 1fac62e..c7f195f 100644
--- a/test/tint/builtins/gen/var/textureDimensions/62e7ae.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureDimensions/62e7ae.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,45 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  uint2 prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureDimensions
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation uint2 VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+Texture2D<uint4> arg_0 : register(t0, space1);
+uint2 textureDimensions_62e7ae() {
+  uint2 v = (0u).xx;
+  arg_0.GetDimensions(v[0u], v[1u]);
+  uint2 res = v;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store2(0u, textureDimensions_62e7ae());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store2(0u, textureDimensions_62e7ae());
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = textureDimensions_62e7ae();
+  VertexOutput v_1 = tint_symbol;
+  return v_1;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_2 = vertex_main_inner();
+  VertexOutput v_3 = v_2;
+  VertexOutput v_4 = v_2;
+  vertex_main_outputs v_5 = {v_4.prevent_dce, v_3.pos};
+  return v_5;
+}
+
diff --git a/test/tint/builtins/gen/var/textureDimensions/64dc74.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/textureDimensions/64dc74.wgsl.expected.ir.dxc.hlsl
index 1fac62e..135f54e 100644
--- a/test/tint/builtins/gen/var/textureDimensions/64dc74.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureDimensions/64dc74.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,47 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  uint2 prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureDimensions
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation uint2 VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+TextureCube<int4> arg_0 : register(t0, space1);
+uint2 textureDimensions_64dc74() {
+  uint arg_1 = 1u;
+  TextureCube<int4> v = arg_0;
+  uint3 v_1 = (0u).xxx;
+  v.GetDimensions(uint(arg_1), v_1[0u], v_1[1u], v_1[2u]);
+  uint2 res = v_1.xy;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store2(0u, textureDimensions_64dc74());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store2(0u, textureDimensions_64dc74());
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = textureDimensions_64dc74();
+  VertexOutput v_2 = tint_symbol;
+  return v_2;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_3 = vertex_main_inner();
+  VertexOutput v_4 = v_3;
+  VertexOutput v_5 = v_3;
+  vertex_main_outputs v_6 = {v_5.prevent_dce, v_4.pos};
+  return v_6;
+}
+
diff --git a/test/tint/builtins/gen/var/textureDimensions/64dc74.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/textureDimensions/64dc74.wgsl.expected.ir.fxc.hlsl
index 1fac62e..135f54e 100644
--- a/test/tint/builtins/gen/var/textureDimensions/64dc74.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureDimensions/64dc74.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,47 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  uint2 prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureDimensions
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation uint2 VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+TextureCube<int4> arg_0 : register(t0, space1);
+uint2 textureDimensions_64dc74() {
+  uint arg_1 = 1u;
+  TextureCube<int4> v = arg_0;
+  uint3 v_1 = (0u).xxx;
+  v.GetDimensions(uint(arg_1), v_1[0u], v_1[1u], v_1[2u]);
+  uint2 res = v_1.xy;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store2(0u, textureDimensions_64dc74());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store2(0u, textureDimensions_64dc74());
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = textureDimensions_64dc74();
+  VertexOutput v_2 = tint_symbol;
+  return v_2;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_3 = vertex_main_inner();
+  VertexOutput v_4 = v_3;
+  VertexOutput v_5 = v_3;
+  vertex_main_outputs v_6 = {v_5.prevent_dce, v_4.pos};
+  return v_6;
+}
+
diff --git a/test/tint/builtins/gen/var/textureDimensions/674058.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/textureDimensions/674058.wgsl.expected.ir.dxc.hlsl
index 1fac62e..baaf8a4 100644
--- a/test/tint/builtins/gen/var/textureDimensions/674058.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureDimensions/674058.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,19 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureDimensions
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWByteAddressBuffer prevent_dce : register(u0);
+RWTexture2DArray<int4> arg_0 : register(u0, space1);
+uint2 textureDimensions_674058() {
+  uint3 v = (0u).xxx;
+  arg_0.GetDimensions(v[0u], v[1u], v[2u]);
+  uint2 res = v.xy;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store2(0u, textureDimensions_674058());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store2(0u, textureDimensions_674058());
+}
+
diff --git a/test/tint/builtins/gen/var/textureDimensions/674058.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/textureDimensions/674058.wgsl.expected.ir.fxc.hlsl
index 1fac62e..baaf8a4 100644
--- a/test/tint/builtins/gen/var/textureDimensions/674058.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureDimensions/674058.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,19 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureDimensions
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWByteAddressBuffer prevent_dce : register(u0);
+RWTexture2DArray<int4> arg_0 : register(u0, space1);
+uint2 textureDimensions_674058() {
+  uint3 v = (0u).xxx;
+  arg_0.GetDimensions(v[0u], v[1u], v[2u]);
+  uint2 res = v.xy;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store2(0u, textureDimensions_674058());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store2(0u, textureDimensions_674058());
+}
+
diff --git a/test/tint/builtins/gen/var/textureDimensions/6dae40.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/textureDimensions/6dae40.wgsl.expected.ir.dxc.hlsl
index 1fac62e..db9ffaa 100644
--- a/test/tint/builtins/gen/var/textureDimensions/6dae40.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureDimensions/6dae40.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,45 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  uint3 prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureDimensions
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation uint3 VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+Texture3D<float4> arg_0 : register(t0, space1);
+uint3 textureDimensions_6dae40() {
+  uint3 v = (0u).xxx;
+  arg_0.GetDimensions(v[0u], v[1u], v[2u]);
+  uint3 res = v;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store3(0u, textureDimensions_6dae40());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store3(0u, textureDimensions_6dae40());
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = textureDimensions_6dae40();
+  VertexOutput v_1 = tint_symbol;
+  return v_1;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_2 = vertex_main_inner();
+  VertexOutput v_3 = v_2;
+  VertexOutput v_4 = v_2;
+  vertex_main_outputs v_5 = {v_4.prevent_dce, v_3.pos};
+  return v_5;
+}
+
diff --git a/test/tint/builtins/gen/var/textureDimensions/6dae40.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/textureDimensions/6dae40.wgsl.expected.ir.fxc.hlsl
index 1fac62e..db9ffaa 100644
--- a/test/tint/builtins/gen/var/textureDimensions/6dae40.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureDimensions/6dae40.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,45 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  uint3 prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureDimensions
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation uint3 VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+Texture3D<float4> arg_0 : register(t0, space1);
+uint3 textureDimensions_6dae40() {
+  uint3 v = (0u).xxx;
+  arg_0.GetDimensions(v[0u], v[1u], v[2u]);
+  uint3 res = v;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store3(0u, textureDimensions_6dae40());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store3(0u, textureDimensions_6dae40());
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = textureDimensions_6dae40();
+  VertexOutput v_1 = tint_symbol;
+  return v_1;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_2 = vertex_main_inner();
+  VertexOutput v_3 = v_2;
+  VertexOutput v_4 = v_2;
+  vertex_main_outputs v_5 = {v_4.prevent_dce, v_3.pos};
+  return v_5;
+}
+
diff --git a/test/tint/builtins/gen/var/textureDimensions/6dbef4.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/textureDimensions/6dbef4.wgsl.expected.ir.dxc.hlsl
index 1fac62e..caf387a 100644
--- a/test/tint/builtins/gen/var/textureDimensions/6dbef4.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureDimensions/6dbef4.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,45 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  uint3 prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureDimensions
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation uint3 VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+Texture3D<int4> arg_0 : register(t0, space1);
+uint3 textureDimensions_6dbef4() {
+  uint3 v = (0u).xxx;
+  arg_0.GetDimensions(v[0u], v[1u], v[2u]);
+  uint3 res = v;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store3(0u, textureDimensions_6dbef4());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store3(0u, textureDimensions_6dbef4());
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = textureDimensions_6dbef4();
+  VertexOutput v_1 = tint_symbol;
+  return v_1;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_2 = vertex_main_inner();
+  VertexOutput v_3 = v_2;
+  VertexOutput v_4 = v_2;
+  vertex_main_outputs v_5 = {v_4.prevent_dce, v_3.pos};
+  return v_5;
+}
+
diff --git a/test/tint/builtins/gen/var/textureDimensions/6dbef4.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/textureDimensions/6dbef4.wgsl.expected.ir.fxc.hlsl
index 1fac62e..caf387a 100644
--- a/test/tint/builtins/gen/var/textureDimensions/6dbef4.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureDimensions/6dbef4.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,45 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  uint3 prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureDimensions
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation uint3 VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+Texture3D<int4> arg_0 : register(t0, space1);
+uint3 textureDimensions_6dbef4() {
+  uint3 v = (0u).xxx;
+  arg_0.GetDimensions(v[0u], v[1u], v[2u]);
+  uint3 res = v;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store3(0u, textureDimensions_6dbef4());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store3(0u, textureDimensions_6dbef4());
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = textureDimensions_6dbef4();
+  VertexOutput v_1 = tint_symbol;
+  return v_1;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_2 = vertex_main_inner();
+  VertexOutput v_3 = v_2;
+  VertexOutput v_4 = v_2;
+  vertex_main_outputs v_5 = {v_4.prevent_dce, v_3.pos};
+  return v_5;
+}
+
diff --git a/test/tint/builtins/gen/var/textureDimensions/6e6c7a.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/textureDimensions/6e6c7a.wgsl.expected.ir.dxc.hlsl
index 1fac62e..c53ed51 100644
--- a/test/tint/builtins/gen/var/textureDimensions/6e6c7a.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureDimensions/6e6c7a.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,117 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureDimensions
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec3<u32>;
+
+@group(1) @binding(0) var arg_0 : texture_3d<u32>;
+
+fn textureDimensions_6e6c7a() -> vec3<u32> {
+  var arg_1 = 1u;
+  var res : vec3<u32> = textureDimensions(arg_0, arg_1);
+  return res;
+}
+
+@fragment
+fn fragment_main() {
+  prevent_dce = textureDimensions_6e6c7a();
+}
+
+@compute @workgroup_size(1)
+fn compute_main() {
+  prevent_dce = textureDimensions_6e6c7a();
+}
+
+struct VertexOutput {
+  @builtin(position)
+  pos : vec4<f32>,
+  @location(0) @interpolate(flat)
+  prevent_dce : vec3<u32>,
+}
+
+@vertex
+fn vertex_main() -> VertexOutput {
+  var tint_symbol : VertexOutput;
+  tint_symbol.pos = vec4<f32>();
+  tint_symbol.prevent_dce = textureDimensions_6e6c7a();
+  return tint_symbol;
+}
+
+Failed to generate: :30:49 error: var: initializer type 'vec2<u32>' does not match store type 'vec3<u32>'
+    %res:ptr<function, vec3<u32>, read_write> = var, %15
+                                                ^^^
+
+:17:3 note: in block
+  $B2: {
+  ^^^
+
+note: # Disassembly
+VertexOutput = struct @align(16) {
+  pos:vec4<f32> @offset(0)
+  prevent_dce:vec3<u32> @offset(16)
+}
+
+vertex_main_outputs = struct @align(16) {
+  VertexOutput_prevent_dce:vec3<u32> @offset(0), @location(0), @interpolate(flat)
+  VertexOutput_pos:vec4<f32> @offset(16), @builtin(position)
+}
+
+$B1: {  # root
+  %prevent_dce:hlsl.byte_address_buffer<read_write> = var @binding_point(0, 0)
+  %arg_0:ptr<handle, texture_3d<u32>, read> = var @binding_point(1, 0)
+}
+
+%textureDimensions_6e6c7a = func():vec3<u32> {
+  $B2: {
+    %arg_1:ptr<function, u32, read_write> = var, 1u
+    %5:texture_3d<u32> = load %arg_0
+    %6:u32 = load %arg_1
+    %7:u32 = convert %6
+    %8:ptr<function, vec4<u32>, read_write> = var
+    %9:ptr<function, u32, read_write> = access %8, 0u
+    %10:ptr<function, u32, read_write> = access %8, 1u
+    %11:ptr<function, u32, read_write> = access %8, 2u
+    %12:ptr<function, u32, read_write> = access %8, 3u
+    %13:void = %5.GetDimensions %7, %9, %10, %11, %12
+    %14:vec4<u32> = load %8
+    %15:vec2<u32> = swizzle %14, xyz
+    %res:ptr<function, vec3<u32>, read_write> = var, %15
+    %17:vec3<u32> = load %res
+    ret %17
+  }
+}
+%fragment_main = @fragment func():void {
+  $B3: {
+    %19:vec3<u32> = call %textureDimensions_6e6c7a
+    %20:void = %prevent_dce.Store3 0u, %19
+    ret
+  }
+}
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B4: {
+    %22:vec3<u32> = call %textureDimensions_6e6c7a
+    %23:void = %prevent_dce.Store3 0u, %22
+    ret
+  }
+}
+%vertex_main_inner = func():VertexOutput {
+  $B5: {
+    %tint_symbol:ptr<function, VertexOutput, read_write> = var
+    %26:ptr<function, vec4<f32>, read_write> = access %tint_symbol, 0u
+    store %26, vec4<f32>(0.0f)
+    %27:ptr<function, vec3<u32>, read_write> = access %tint_symbol, 1u
+    %28:vec3<u32> = call %textureDimensions_6e6c7a
+    store %27, %28
+    %29:VertexOutput = load %tint_symbol
+    ret %29
+  }
+}
+%vertex_main = @vertex func():vertex_main_outputs {
+  $B6: {
+    %31:VertexOutput = call %vertex_main_inner
+    %32:vec4<f32> = access %31, 0u
+    %33:vec3<u32> = access %31, 1u
+    %34:vertex_main_outputs = construct %33, %32
+    ret %34
+  }
+}
+
diff --git a/test/tint/builtins/gen/var/textureDimensions/6e6c7a.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/textureDimensions/6e6c7a.wgsl.expected.ir.fxc.hlsl
index 1fac62e..c53ed51 100644
--- a/test/tint/builtins/gen/var/textureDimensions/6e6c7a.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureDimensions/6e6c7a.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,117 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureDimensions
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec3<u32>;
+
+@group(1) @binding(0) var arg_0 : texture_3d<u32>;
+
+fn textureDimensions_6e6c7a() -> vec3<u32> {
+  var arg_1 = 1u;
+  var res : vec3<u32> = textureDimensions(arg_0, arg_1);
+  return res;
+}
+
+@fragment
+fn fragment_main() {
+  prevent_dce = textureDimensions_6e6c7a();
+}
+
+@compute @workgroup_size(1)
+fn compute_main() {
+  prevent_dce = textureDimensions_6e6c7a();
+}
+
+struct VertexOutput {
+  @builtin(position)
+  pos : vec4<f32>,
+  @location(0) @interpolate(flat)
+  prevent_dce : vec3<u32>,
+}
+
+@vertex
+fn vertex_main() -> VertexOutput {
+  var tint_symbol : VertexOutput;
+  tint_symbol.pos = vec4<f32>();
+  tint_symbol.prevent_dce = textureDimensions_6e6c7a();
+  return tint_symbol;
+}
+
+Failed to generate: :30:49 error: var: initializer type 'vec2<u32>' does not match store type 'vec3<u32>'
+    %res:ptr<function, vec3<u32>, read_write> = var, %15
+                                                ^^^
+
+:17:3 note: in block
+  $B2: {
+  ^^^
+
+note: # Disassembly
+VertexOutput = struct @align(16) {
+  pos:vec4<f32> @offset(0)
+  prevent_dce:vec3<u32> @offset(16)
+}
+
+vertex_main_outputs = struct @align(16) {
+  VertexOutput_prevent_dce:vec3<u32> @offset(0), @location(0), @interpolate(flat)
+  VertexOutput_pos:vec4<f32> @offset(16), @builtin(position)
+}
+
+$B1: {  # root
+  %prevent_dce:hlsl.byte_address_buffer<read_write> = var @binding_point(0, 0)
+  %arg_0:ptr<handle, texture_3d<u32>, read> = var @binding_point(1, 0)
+}
+
+%textureDimensions_6e6c7a = func():vec3<u32> {
+  $B2: {
+    %arg_1:ptr<function, u32, read_write> = var, 1u
+    %5:texture_3d<u32> = load %arg_0
+    %6:u32 = load %arg_1
+    %7:u32 = convert %6
+    %8:ptr<function, vec4<u32>, read_write> = var
+    %9:ptr<function, u32, read_write> = access %8, 0u
+    %10:ptr<function, u32, read_write> = access %8, 1u
+    %11:ptr<function, u32, read_write> = access %8, 2u
+    %12:ptr<function, u32, read_write> = access %8, 3u
+    %13:void = %5.GetDimensions %7, %9, %10, %11, %12
+    %14:vec4<u32> = load %8
+    %15:vec2<u32> = swizzle %14, xyz
+    %res:ptr<function, vec3<u32>, read_write> = var, %15
+    %17:vec3<u32> = load %res
+    ret %17
+  }
+}
+%fragment_main = @fragment func():void {
+  $B3: {
+    %19:vec3<u32> = call %textureDimensions_6e6c7a
+    %20:void = %prevent_dce.Store3 0u, %19
+    ret
+  }
+}
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B4: {
+    %22:vec3<u32> = call %textureDimensions_6e6c7a
+    %23:void = %prevent_dce.Store3 0u, %22
+    ret
+  }
+}
+%vertex_main_inner = func():VertexOutput {
+  $B5: {
+    %tint_symbol:ptr<function, VertexOutput, read_write> = var
+    %26:ptr<function, vec4<f32>, read_write> = access %tint_symbol, 0u
+    store %26, vec4<f32>(0.0f)
+    %27:ptr<function, vec3<u32>, read_write> = access %tint_symbol, 1u
+    %28:vec3<u32> = call %textureDimensions_6e6c7a
+    store %27, %28
+    %29:VertexOutput = load %tint_symbol
+    ret %29
+  }
+}
+%vertex_main = @vertex func():vertex_main_outputs {
+  $B6: {
+    %31:VertexOutput = call %vertex_main_inner
+    %32:vec4<f32> = access %31, 0u
+    %33:vec3<u32> = access %31, 1u
+    %34:vertex_main_outputs = construct %33, %32
+    ret %34
+  }
+}
+
diff --git a/test/tint/builtins/gen/var/textureDimensions/6e72c5.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/textureDimensions/6e72c5.wgsl.expected.ir.dxc.hlsl
index 1fac62e..259e99e 100644
--- a/test/tint/builtins/gen/var/textureDimensions/6e72c5.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureDimensions/6e72c5.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,45 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  uint2 prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureDimensions
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation uint2 VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+Texture2D<float4> arg_0 : register(t0, space1);
+uint2 textureDimensions_6e72c5() {
+  uint2 v = (0u).xx;
+  arg_0.GetDimensions(v[0u], v[1u]);
+  uint2 res = v;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store2(0u, textureDimensions_6e72c5());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store2(0u, textureDimensions_6e72c5());
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = textureDimensions_6e72c5();
+  VertexOutput v_1 = tint_symbol;
+  return v_1;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_2 = vertex_main_inner();
+  VertexOutput v_3 = v_2;
+  VertexOutput v_4 = v_2;
+  vertex_main_outputs v_5 = {v_4.prevent_dce, v_3.pos};
+  return v_5;
+}
+
diff --git a/test/tint/builtins/gen/var/textureDimensions/6e72c5.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/textureDimensions/6e72c5.wgsl.expected.ir.fxc.hlsl
index 1fac62e..259e99e 100644
--- a/test/tint/builtins/gen/var/textureDimensions/6e72c5.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureDimensions/6e72c5.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,45 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  uint2 prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureDimensions
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation uint2 VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+Texture2D<float4> arg_0 : register(t0, space1);
+uint2 textureDimensions_6e72c5() {
+  uint2 v = (0u).xx;
+  arg_0.GetDimensions(v[0u], v[1u]);
+  uint2 res = v;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store2(0u, textureDimensions_6e72c5());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store2(0u, textureDimensions_6e72c5());
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = textureDimensions_6e72c5();
+  VertexOutput v_1 = tint_symbol;
+  return v_1;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_2 = vertex_main_inner();
+  VertexOutput v_3 = v_2;
+  VertexOutput v_4 = v_2;
+  vertex_main_outputs v_5 = {v_4.prevent_dce, v_3.pos};
+  return v_5;
+}
+
diff --git a/test/tint/builtins/gen/var/textureDimensions/6f1b5d.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/textureDimensions/6f1b5d.wgsl.expected.ir.dxc.hlsl
index 1fac62e..b185f4a 100644
--- a/test/tint/builtins/gen/var/textureDimensions/6f1b5d.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureDimensions/6f1b5d.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,47 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  uint2 prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureDimensions
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation uint2 VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+Texture2D arg_0 : register(t0, space1);
+uint2 textureDimensions_6f1b5d() {
+  int arg_1 = 1;
+  Texture2D v = arg_0;
+  uint3 v_1 = (0u).xxx;
+  v.GetDimensions(uint(arg_1), v_1[0u], v_1[1u], v_1[2u]);
+  uint2 res = v_1.xy;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store2(0u, textureDimensions_6f1b5d());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store2(0u, textureDimensions_6f1b5d());
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = textureDimensions_6f1b5d();
+  VertexOutput v_2 = tint_symbol;
+  return v_2;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_3 = vertex_main_inner();
+  VertexOutput v_4 = v_3;
+  VertexOutput v_5 = v_3;
+  vertex_main_outputs v_6 = {v_5.prevent_dce, v_4.pos};
+  return v_6;
+}
+
diff --git a/test/tint/builtins/gen/var/textureDimensions/6f1b5d.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/textureDimensions/6f1b5d.wgsl.expected.ir.fxc.hlsl
index 1fac62e..b185f4a 100644
--- a/test/tint/builtins/gen/var/textureDimensions/6f1b5d.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureDimensions/6f1b5d.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,47 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  uint2 prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureDimensions
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation uint2 VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+Texture2D arg_0 : register(t0, space1);
+uint2 textureDimensions_6f1b5d() {
+  int arg_1 = 1;
+  Texture2D v = arg_0;
+  uint3 v_1 = (0u).xxx;
+  v.GetDimensions(uint(arg_1), v_1[0u], v_1[1u], v_1[2u]);
+  uint2 res = v_1.xy;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store2(0u, textureDimensions_6f1b5d());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store2(0u, textureDimensions_6f1b5d());
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = textureDimensions_6f1b5d();
+  VertexOutput v_2 = tint_symbol;
+  return v_2;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_3 = vertex_main_inner();
+  VertexOutput v_4 = v_3;
+  VertexOutput v_5 = v_3;
+  vertex_main_outputs v_6 = {v_5.prevent_dce, v_4.pos};
+  return v_6;
+}
+
diff --git a/test/tint/builtins/gen/var/textureDimensions/709357.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/textureDimensions/709357.wgsl.expected.ir.dxc.hlsl
index 1fac62e..3affcad 100644
--- a/test/tint/builtins/gen/var/textureDimensions/709357.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureDimensions/709357.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,45 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  uint prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureDimensions
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation uint VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+Texture1D<uint4> arg_0 : register(t0, space1);
+uint textureDimensions_709357() {
+  uint v = 0u;
+  arg_0.GetDimensions(v);
+  uint res = v;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store(0u, textureDimensions_709357());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store(0u, textureDimensions_709357());
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = textureDimensions_709357();
+  VertexOutput v_1 = tint_symbol;
+  return v_1;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_2 = vertex_main_inner();
+  VertexOutput v_3 = v_2;
+  VertexOutput v_4 = v_2;
+  vertex_main_outputs v_5 = {v_4.prevent_dce, v_3.pos};
+  return v_5;
+}
+
diff --git a/test/tint/builtins/gen/var/textureDimensions/709357.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/textureDimensions/709357.wgsl.expected.ir.fxc.hlsl
index 1fac62e..3affcad 100644
--- a/test/tint/builtins/gen/var/textureDimensions/709357.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureDimensions/709357.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,45 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  uint prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureDimensions
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation uint VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+Texture1D<uint4> arg_0 : register(t0, space1);
+uint textureDimensions_709357() {
+  uint v = 0u;
+  arg_0.GetDimensions(v);
+  uint res = v;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store(0u, textureDimensions_709357());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store(0u, textureDimensions_709357());
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = textureDimensions_709357();
+  VertexOutput v_1 = tint_symbol;
+  return v_1;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_2 = vertex_main_inner();
+  VertexOutput v_3 = v_2;
+  VertexOutput v_4 = v_2;
+  vertex_main_outputs v_5 = {v_4.prevent_dce, v_3.pos};
+  return v_5;
+}
+
diff --git a/test/tint/builtins/gen/var/textureDimensions/70dd33.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/textureDimensions/70dd33.wgsl.expected.ir.dxc.hlsl
index 1fac62e..eafc1e5 100644
--- a/test/tint/builtins/gen/var/textureDimensions/70dd33.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureDimensions/70dd33.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,19 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureDimensions
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWByteAddressBuffer prevent_dce : register(u0);
+RWTexture3D<int4> arg_0 : register(u0, space1);
+uint3 textureDimensions_70dd33() {
+  uint3 v = (0u).xxx;
+  arg_0.GetDimensions(v[0u], v[1u], v[2u]);
+  uint3 res = v;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store3(0u, textureDimensions_70dd33());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store3(0u, textureDimensions_70dd33());
+}
+
diff --git a/test/tint/builtins/gen/var/textureDimensions/70dd33.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/textureDimensions/70dd33.wgsl.expected.ir.fxc.hlsl
index 1fac62e..eafc1e5 100644
--- a/test/tint/builtins/gen/var/textureDimensions/70dd33.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureDimensions/70dd33.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,19 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureDimensions
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWByteAddressBuffer prevent_dce : register(u0);
+RWTexture3D<int4> arg_0 : register(u0, space1);
+uint3 textureDimensions_70dd33() {
+  uint3 v = (0u).xxx;
+  arg_0.GetDimensions(v[0u], v[1u], v[2u]);
+  uint3 res = v;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store3(0u, textureDimensions_70dd33());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store3(0u, textureDimensions_70dd33());
+}
+
diff --git a/test/tint/builtins/gen/var/textureDimensions/715917.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/textureDimensions/715917.wgsl.expected.ir.dxc.hlsl
index 1fac62e..b82f8bf 100644
--- a/test/tint/builtins/gen/var/textureDimensions/715917.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureDimensions/715917.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,19 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureDimensions
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWByteAddressBuffer prevent_dce : register(u0);
+RWTexture2DArray<float4> arg_0 : register(u0, space1);
+uint2 textureDimensions_715917() {
+  uint3 v = (0u).xxx;
+  arg_0.GetDimensions(v[0u], v[1u], v[2u]);
+  uint2 res = v.xy;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store2(0u, textureDimensions_715917());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store2(0u, textureDimensions_715917());
+}
+
diff --git a/test/tint/builtins/gen/var/textureDimensions/715917.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/textureDimensions/715917.wgsl.expected.ir.fxc.hlsl
index 1fac62e..b82f8bf 100644
--- a/test/tint/builtins/gen/var/textureDimensions/715917.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureDimensions/715917.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,19 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureDimensions
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWByteAddressBuffer prevent_dce : register(u0);
+RWTexture2DArray<float4> arg_0 : register(u0, space1);
+uint2 textureDimensions_715917() {
+  uint3 v = (0u).xxx;
+  arg_0.GetDimensions(v[0u], v[1u], v[2u]);
+  uint2 res = v.xy;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store2(0u, textureDimensions_715917());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store2(0u, textureDimensions_715917());
+}
+
diff --git a/test/tint/builtins/gen/var/textureDimensions/7228de.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/textureDimensions/7228de.wgsl.expected.ir.dxc.hlsl
index 1fac62e..2eb99a7 100644
--- a/test/tint/builtins/gen/var/textureDimensions/7228de.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureDimensions/7228de.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,19 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureDimensions
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWByteAddressBuffer prevent_dce : register(u0);
+RWTexture1D<uint4> arg_0 : register(u0, space1);
+uint textureDimensions_7228de() {
+  uint v = 0u;
+  arg_0.GetDimensions(v);
+  uint res = v;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store(0u, textureDimensions_7228de());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store(0u, textureDimensions_7228de());
+}
+
diff --git a/test/tint/builtins/gen/var/textureDimensions/7228de.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/textureDimensions/7228de.wgsl.expected.ir.fxc.hlsl
index 1fac62e..2eb99a7 100644
--- a/test/tint/builtins/gen/var/textureDimensions/7228de.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureDimensions/7228de.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,19 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureDimensions
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWByteAddressBuffer prevent_dce : register(u0);
+RWTexture1D<uint4> arg_0 : register(u0, space1);
+uint textureDimensions_7228de() {
+  uint v = 0u;
+  arg_0.GetDimensions(v);
+  uint res = v;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store(0u, textureDimensions_7228de());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store(0u, textureDimensions_7228de());
+}
+
diff --git a/test/tint/builtins/gen/var/textureDimensions/7327fa.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/textureDimensions/7327fa.wgsl.expected.ir.dxc.hlsl
index 1fac62e..5f8daa3 100644
--- a/test/tint/builtins/gen/var/textureDimensions/7327fa.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureDimensions/7327fa.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,45 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  uint2 prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureDimensions
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation uint2 VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+Texture2D<float4> arg_0 : register(t0, space1);
+uint2 textureDimensions_7327fa() {
+  uint2 v = (0u).xx;
+  arg_0.GetDimensions(v[0u], v[1u]);
+  uint2 res = v;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store2(0u, textureDimensions_7327fa());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store2(0u, textureDimensions_7327fa());
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = textureDimensions_7327fa();
+  VertexOutput v_1 = tint_symbol;
+  return v_1;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_2 = vertex_main_inner();
+  VertexOutput v_3 = v_2;
+  VertexOutput v_4 = v_2;
+  vertex_main_outputs v_5 = {v_4.prevent_dce, v_3.pos};
+  return v_5;
+}
+
diff --git a/test/tint/builtins/gen/var/textureDimensions/7327fa.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/textureDimensions/7327fa.wgsl.expected.ir.fxc.hlsl
index 1fac62e..5f8daa3 100644
--- a/test/tint/builtins/gen/var/textureDimensions/7327fa.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureDimensions/7327fa.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,45 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  uint2 prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureDimensions
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation uint2 VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+Texture2D<float4> arg_0 : register(t0, space1);
+uint2 textureDimensions_7327fa() {
+  uint2 v = (0u).xx;
+  arg_0.GetDimensions(v[0u], v[1u]);
+  uint2 res = v;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store2(0u, textureDimensions_7327fa());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store2(0u, textureDimensions_7327fa());
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = textureDimensions_7327fa();
+  VertexOutput v_1 = tint_symbol;
+  return v_1;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_2 = vertex_main_inner();
+  VertexOutput v_3 = v_2;
+  VertexOutput v_4 = v_2;
+  vertex_main_outputs v_5 = {v_4.prevent_dce, v_3.pos};
+  return v_5;
+}
+
diff --git a/test/tint/builtins/gen/var/textureDimensions/740e7c.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/textureDimensions/740e7c.wgsl.expected.ir.dxc.hlsl
index 1fac62e..ec481f5 100644
--- a/test/tint/builtins/gen/var/textureDimensions/740e7c.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureDimensions/740e7c.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,19 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureDimensions
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWByteAddressBuffer prevent_dce : register(u0);
+RWTexture1D<int4> arg_0 : register(u0, space1);
+uint textureDimensions_740e7c() {
+  uint v = 0u;
+  arg_0.GetDimensions(v);
+  uint res = v;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store(0u, textureDimensions_740e7c());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store(0u, textureDimensions_740e7c());
+}
+
diff --git a/test/tint/builtins/gen/var/textureDimensions/740e7c.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/textureDimensions/740e7c.wgsl.expected.ir.fxc.hlsl
index 1fac62e..ec481f5 100644
--- a/test/tint/builtins/gen/var/textureDimensions/740e7c.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureDimensions/740e7c.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,19 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureDimensions
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWByteAddressBuffer prevent_dce : register(u0);
+RWTexture1D<int4> arg_0 : register(u0, space1);
+uint textureDimensions_740e7c() {
+  uint v = 0u;
+  arg_0.GetDimensions(v);
+  uint res = v;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store(0u, textureDimensions_740e7c());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store(0u, textureDimensions_740e7c());
+}
+
diff --git a/test/tint/builtins/gen/var/textureDimensions/756031.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/textureDimensions/756031.wgsl.expected.ir.dxc.hlsl
index 1fac62e..57c48eb 100644
--- a/test/tint/builtins/gen/var/textureDimensions/756031.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureDimensions/756031.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,117 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureDimensions
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec3<u32>;
+
+@group(1) @binding(0) var arg_0 : texture_3d<i32>;
+
+fn textureDimensions_756031() -> vec3<u32> {
+  var arg_1 = 1i;
+  var res : vec3<u32> = textureDimensions(arg_0, arg_1);
+  return res;
+}
+
+@fragment
+fn fragment_main() {
+  prevent_dce = textureDimensions_756031();
+}
+
+@compute @workgroup_size(1)
+fn compute_main() {
+  prevent_dce = textureDimensions_756031();
+}
+
+struct VertexOutput {
+  @builtin(position)
+  pos : vec4<f32>,
+  @location(0) @interpolate(flat)
+  prevent_dce : vec3<u32>,
+}
+
+@vertex
+fn vertex_main() -> VertexOutput {
+  var tint_symbol : VertexOutput;
+  tint_symbol.pos = vec4<f32>();
+  tint_symbol.prevent_dce = textureDimensions_756031();
+  return tint_symbol;
+}
+
+Failed to generate: :30:49 error: var: initializer type 'vec2<u32>' does not match store type 'vec3<u32>'
+    %res:ptr<function, vec3<u32>, read_write> = var, %15
+                                                ^^^
+
+:17:3 note: in block
+  $B2: {
+  ^^^
+
+note: # Disassembly
+VertexOutput = struct @align(16) {
+  pos:vec4<f32> @offset(0)
+  prevent_dce:vec3<u32> @offset(16)
+}
+
+vertex_main_outputs = struct @align(16) {
+  VertexOutput_prevent_dce:vec3<u32> @offset(0), @location(0), @interpolate(flat)
+  VertexOutput_pos:vec4<f32> @offset(16), @builtin(position)
+}
+
+$B1: {  # root
+  %prevent_dce:hlsl.byte_address_buffer<read_write> = var @binding_point(0, 0)
+  %arg_0:ptr<handle, texture_3d<i32>, read> = var @binding_point(1, 0)
+}
+
+%textureDimensions_756031 = func():vec3<u32> {
+  $B2: {
+    %arg_1:ptr<function, i32, read_write> = var, 1i
+    %5:texture_3d<i32> = load %arg_0
+    %6:i32 = load %arg_1
+    %7:u32 = convert %6
+    %8:ptr<function, vec4<u32>, read_write> = var
+    %9:ptr<function, u32, read_write> = access %8, 0u
+    %10:ptr<function, u32, read_write> = access %8, 1u
+    %11:ptr<function, u32, read_write> = access %8, 2u
+    %12:ptr<function, u32, read_write> = access %8, 3u
+    %13:void = %5.GetDimensions %7, %9, %10, %11, %12
+    %14:vec4<u32> = load %8
+    %15:vec2<u32> = swizzle %14, xyz
+    %res:ptr<function, vec3<u32>, read_write> = var, %15
+    %17:vec3<u32> = load %res
+    ret %17
+  }
+}
+%fragment_main = @fragment func():void {
+  $B3: {
+    %19:vec3<u32> = call %textureDimensions_756031
+    %20:void = %prevent_dce.Store3 0u, %19
+    ret
+  }
+}
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B4: {
+    %22:vec3<u32> = call %textureDimensions_756031
+    %23:void = %prevent_dce.Store3 0u, %22
+    ret
+  }
+}
+%vertex_main_inner = func():VertexOutput {
+  $B5: {
+    %tint_symbol:ptr<function, VertexOutput, read_write> = var
+    %26:ptr<function, vec4<f32>, read_write> = access %tint_symbol, 0u
+    store %26, vec4<f32>(0.0f)
+    %27:ptr<function, vec3<u32>, read_write> = access %tint_symbol, 1u
+    %28:vec3<u32> = call %textureDimensions_756031
+    store %27, %28
+    %29:VertexOutput = load %tint_symbol
+    ret %29
+  }
+}
+%vertex_main = @vertex func():vertex_main_outputs {
+  $B6: {
+    %31:VertexOutput = call %vertex_main_inner
+    %32:vec4<f32> = access %31, 0u
+    %33:vec3<u32> = access %31, 1u
+    %34:vertex_main_outputs = construct %33, %32
+    ret %34
+  }
+}
+
diff --git a/test/tint/builtins/gen/var/textureDimensions/756031.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/textureDimensions/756031.wgsl.expected.ir.fxc.hlsl
index 1fac62e..57c48eb 100644
--- a/test/tint/builtins/gen/var/textureDimensions/756031.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureDimensions/756031.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,117 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureDimensions
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec3<u32>;
+
+@group(1) @binding(0) var arg_0 : texture_3d<i32>;
+
+fn textureDimensions_756031() -> vec3<u32> {
+  var arg_1 = 1i;
+  var res : vec3<u32> = textureDimensions(arg_0, arg_1);
+  return res;
+}
+
+@fragment
+fn fragment_main() {
+  prevent_dce = textureDimensions_756031();
+}
+
+@compute @workgroup_size(1)
+fn compute_main() {
+  prevent_dce = textureDimensions_756031();
+}
+
+struct VertexOutput {
+  @builtin(position)
+  pos : vec4<f32>,
+  @location(0) @interpolate(flat)
+  prevent_dce : vec3<u32>,
+}
+
+@vertex
+fn vertex_main() -> VertexOutput {
+  var tint_symbol : VertexOutput;
+  tint_symbol.pos = vec4<f32>();
+  tint_symbol.prevent_dce = textureDimensions_756031();
+  return tint_symbol;
+}
+
+Failed to generate: :30:49 error: var: initializer type 'vec2<u32>' does not match store type 'vec3<u32>'
+    %res:ptr<function, vec3<u32>, read_write> = var, %15
+                                                ^^^
+
+:17:3 note: in block
+  $B2: {
+  ^^^
+
+note: # Disassembly
+VertexOutput = struct @align(16) {
+  pos:vec4<f32> @offset(0)
+  prevent_dce:vec3<u32> @offset(16)
+}
+
+vertex_main_outputs = struct @align(16) {
+  VertexOutput_prevent_dce:vec3<u32> @offset(0), @location(0), @interpolate(flat)
+  VertexOutput_pos:vec4<f32> @offset(16), @builtin(position)
+}
+
+$B1: {  # root
+  %prevent_dce:hlsl.byte_address_buffer<read_write> = var @binding_point(0, 0)
+  %arg_0:ptr<handle, texture_3d<i32>, read> = var @binding_point(1, 0)
+}
+
+%textureDimensions_756031 = func():vec3<u32> {
+  $B2: {
+    %arg_1:ptr<function, i32, read_write> = var, 1i
+    %5:texture_3d<i32> = load %arg_0
+    %6:i32 = load %arg_1
+    %7:u32 = convert %6
+    %8:ptr<function, vec4<u32>, read_write> = var
+    %9:ptr<function, u32, read_write> = access %8, 0u
+    %10:ptr<function, u32, read_write> = access %8, 1u
+    %11:ptr<function, u32, read_write> = access %8, 2u
+    %12:ptr<function, u32, read_write> = access %8, 3u
+    %13:void = %5.GetDimensions %7, %9, %10, %11, %12
+    %14:vec4<u32> = load %8
+    %15:vec2<u32> = swizzle %14, xyz
+    %res:ptr<function, vec3<u32>, read_write> = var, %15
+    %17:vec3<u32> = load %res
+    ret %17
+  }
+}
+%fragment_main = @fragment func():void {
+  $B3: {
+    %19:vec3<u32> = call %textureDimensions_756031
+    %20:void = %prevent_dce.Store3 0u, %19
+    ret
+  }
+}
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B4: {
+    %22:vec3<u32> = call %textureDimensions_756031
+    %23:void = %prevent_dce.Store3 0u, %22
+    ret
+  }
+}
+%vertex_main_inner = func():VertexOutput {
+  $B5: {
+    %tint_symbol:ptr<function, VertexOutput, read_write> = var
+    %26:ptr<function, vec4<f32>, read_write> = access %tint_symbol, 0u
+    store %26, vec4<f32>(0.0f)
+    %27:ptr<function, vec3<u32>, read_write> = access %tint_symbol, 1u
+    %28:vec3<u32> = call %textureDimensions_756031
+    store %27, %28
+    %29:VertexOutput = load %tint_symbol
+    ret %29
+  }
+}
+%vertex_main = @vertex func():vertex_main_outputs {
+  $B6: {
+    %31:VertexOutput = call %vertex_main_inner
+    %32:vec4<f32> = access %31, 0u
+    %33:vec3<u32> = access %31, 1u
+    %34:vertex_main_outputs = construct %33, %32
+    ret %34
+  }
+}
+
diff --git a/test/tint/builtins/gen/var/textureDimensions/756304.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/textureDimensions/756304.wgsl.expected.ir.dxc.hlsl
index 1fac62e..33f39e7 100644
--- a/test/tint/builtins/gen/var/textureDimensions/756304.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureDimensions/756304.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,19 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureDimensions
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWByteAddressBuffer prevent_dce : register(u0);
+RWTexture2DArray<float4> arg_0 : register(u0, space1);
+uint2 textureDimensions_756304() {
+  uint3 v = (0u).xxx;
+  arg_0.GetDimensions(v[0u], v[1u], v[2u]);
+  uint2 res = v.xy;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store2(0u, textureDimensions_756304());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store2(0u, textureDimensions_756304());
+}
+
diff --git a/test/tint/builtins/gen/var/textureDimensions/756304.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/textureDimensions/756304.wgsl.expected.ir.fxc.hlsl
index 1fac62e..33f39e7 100644
--- a/test/tint/builtins/gen/var/textureDimensions/756304.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureDimensions/756304.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,19 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureDimensions
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWByteAddressBuffer prevent_dce : register(u0);
+RWTexture2DArray<float4> arg_0 : register(u0, space1);
+uint2 textureDimensions_756304() {
+  uint3 v = (0u).xxx;
+  arg_0.GetDimensions(v[0u], v[1u], v[2u]);
+  uint2 res = v.xy;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store2(0u, textureDimensions_756304());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store2(0u, textureDimensions_756304());
+}
+
diff --git a/test/tint/builtins/gen/var/textureDimensions/790e57.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/textureDimensions/790e57.wgsl.expected.ir.dxc.hlsl
index 1fac62e..de1f26e 100644
--- a/test/tint/builtins/gen/var/textureDimensions/790e57.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureDimensions/790e57.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,45 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  uint3 prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureDimensions
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation uint3 VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+Texture3D<int4> arg_0 : register(t0, space1);
+uint3 textureDimensions_790e57() {
+  uint3 v = (0u).xxx;
+  arg_0.GetDimensions(v[0u], v[1u], v[2u]);
+  uint3 res = v;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store3(0u, textureDimensions_790e57());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store3(0u, textureDimensions_790e57());
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = textureDimensions_790e57();
+  VertexOutput v_1 = tint_symbol;
+  return v_1;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_2 = vertex_main_inner();
+  VertexOutput v_3 = v_2;
+  VertexOutput v_4 = v_2;
+  vertex_main_outputs v_5 = {v_4.prevent_dce, v_3.pos};
+  return v_5;
+}
+
diff --git a/test/tint/builtins/gen/var/textureDimensions/790e57.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/textureDimensions/790e57.wgsl.expected.ir.fxc.hlsl
index 1fac62e..de1f26e 100644
--- a/test/tint/builtins/gen/var/textureDimensions/790e57.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureDimensions/790e57.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,45 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  uint3 prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureDimensions
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation uint3 VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+Texture3D<int4> arg_0 : register(t0, space1);
+uint3 textureDimensions_790e57() {
+  uint3 v = (0u).xxx;
+  arg_0.GetDimensions(v[0u], v[1u], v[2u]);
+  uint3 res = v;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store3(0u, textureDimensions_790e57());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store3(0u, textureDimensions_790e57());
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = textureDimensions_790e57();
+  VertexOutput v_1 = tint_symbol;
+  return v_1;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_2 = vertex_main_inner();
+  VertexOutput v_3 = v_2;
+  VertexOutput v_4 = v_2;
+  vertex_main_outputs v_5 = {v_4.prevent_dce, v_3.pos};
+  return v_5;
+}
+
diff --git a/test/tint/builtins/gen/var/textureDimensions/795fbb.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/textureDimensions/795fbb.wgsl.expected.ir.dxc.hlsl
index 1fac62e..2eb6b69 100644
--- a/test/tint/builtins/gen/var/textureDimensions/795fbb.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureDimensions/795fbb.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,19 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureDimensions
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWByteAddressBuffer prevent_dce : register(u0);
+RWTexture2DArray<float4> arg_0 : register(u0, space1);
+uint2 textureDimensions_795fbb() {
+  uint3 v = (0u).xxx;
+  arg_0.GetDimensions(v[0u], v[1u], v[2u]);
+  uint2 res = v.xy;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store2(0u, textureDimensions_795fbb());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store2(0u, textureDimensions_795fbb());
+}
+
diff --git a/test/tint/builtins/gen/var/textureDimensions/795fbb.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/textureDimensions/795fbb.wgsl.expected.ir.fxc.hlsl
index 1fac62e..2eb6b69 100644
--- a/test/tint/builtins/gen/var/textureDimensions/795fbb.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureDimensions/795fbb.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,19 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureDimensions
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWByteAddressBuffer prevent_dce : register(u0);
+RWTexture2DArray<float4> arg_0 : register(u0, space1);
+uint2 textureDimensions_795fbb() {
+  uint3 v = (0u).xxx;
+  arg_0.GetDimensions(v[0u], v[1u], v[2u]);
+  uint2 res = v.xy;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store2(0u, textureDimensions_795fbb());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store2(0u, textureDimensions_795fbb());
+}
+
diff --git a/test/tint/builtins/gen/var/textureDimensions/797c30.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/textureDimensions/797c30.wgsl.expected.ir.dxc.hlsl
index 1fac62e..992734d 100644
--- a/test/tint/builtins/gen/var/textureDimensions/797c30.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureDimensions/797c30.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,45 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  uint prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureDimensions
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation uint VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+Texture1D<uint4> arg_0 : register(t0, space1);
+uint textureDimensions_797c30() {
+  uint v = 0u;
+  arg_0.GetDimensions(v);
+  uint res = v;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store(0u, textureDimensions_797c30());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store(0u, textureDimensions_797c30());
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = textureDimensions_797c30();
+  VertexOutput v_1 = tint_symbol;
+  return v_1;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_2 = vertex_main_inner();
+  VertexOutput v_3 = v_2;
+  VertexOutput v_4 = v_2;
+  vertex_main_outputs v_5 = {v_4.prevent_dce, v_3.pos};
+  return v_5;
+}
+
diff --git a/test/tint/builtins/gen/var/textureDimensions/797c30.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/textureDimensions/797c30.wgsl.expected.ir.fxc.hlsl
index 1fac62e..992734d 100644
--- a/test/tint/builtins/gen/var/textureDimensions/797c30.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureDimensions/797c30.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,45 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  uint prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureDimensions
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation uint VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+Texture1D<uint4> arg_0 : register(t0, space1);
+uint textureDimensions_797c30() {
+  uint v = 0u;
+  arg_0.GetDimensions(v);
+  uint res = v;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store(0u, textureDimensions_797c30());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store(0u, textureDimensions_797c30());
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = textureDimensions_797c30();
+  VertexOutput v_1 = tint_symbol;
+  return v_1;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_2 = vertex_main_inner();
+  VertexOutput v_3 = v_2;
+  VertexOutput v_4 = v_2;
+  vertex_main_outputs v_5 = {v_4.prevent_dce, v_3.pos};
+  return v_5;
+}
+
diff --git a/test/tint/builtins/gen/var/textureDimensions/79d168.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/textureDimensions/79d168.wgsl.expected.ir.dxc.hlsl
index 1fac62e..b66098c 100644
--- a/test/tint/builtins/gen/var/textureDimensions/79d168.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureDimensions/79d168.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,47 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  uint2 prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureDimensions
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation uint2 VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+TextureCube arg_0 : register(t0, space1);
+uint2 textureDimensions_79d168() {
+  int arg_1 = 1;
+  TextureCube v = arg_0;
+  uint3 v_1 = (0u).xxx;
+  v.GetDimensions(uint(arg_1), v_1[0u], v_1[1u], v_1[2u]);
+  uint2 res = v_1.xy;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store2(0u, textureDimensions_79d168());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store2(0u, textureDimensions_79d168());
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = textureDimensions_79d168();
+  VertexOutput v_2 = tint_symbol;
+  return v_2;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_3 = vertex_main_inner();
+  VertexOutput v_4 = v_3;
+  VertexOutput v_5 = v_3;
+  vertex_main_outputs v_6 = {v_5.prevent_dce, v_4.pos};
+  return v_6;
+}
+
diff --git a/test/tint/builtins/gen/var/textureDimensions/79d168.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/textureDimensions/79d168.wgsl.expected.ir.fxc.hlsl
index 1fac62e..b66098c 100644
--- a/test/tint/builtins/gen/var/textureDimensions/79d168.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureDimensions/79d168.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,47 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  uint2 prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureDimensions
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation uint2 VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+TextureCube arg_0 : register(t0, space1);
+uint2 textureDimensions_79d168() {
+  int arg_1 = 1;
+  TextureCube v = arg_0;
+  uint3 v_1 = (0u).xxx;
+  v.GetDimensions(uint(arg_1), v_1[0u], v_1[1u], v_1[2u]);
+  uint2 res = v_1.xy;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store2(0u, textureDimensions_79d168());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store2(0u, textureDimensions_79d168());
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = textureDimensions_79d168();
+  VertexOutput v_2 = tint_symbol;
+  return v_2;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_3 = vertex_main_inner();
+  VertexOutput v_4 = v_3;
+  VertexOutput v_5 = v_3;
+  vertex_main_outputs v_6 = {v_5.prevent_dce, v_4.pos};
+  return v_6;
+}
+
diff --git a/test/tint/builtins/gen/var/textureDimensions/7a3890.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/textureDimensions/7a3890.wgsl.expected.ir.dxc.hlsl
index 1fac62e..f61df0f 100644
--- a/test/tint/builtins/gen/var/textureDimensions/7a3890.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureDimensions/7a3890.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,45 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  uint3 prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureDimensions
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation uint3 VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+Texture3D<uint4> arg_0 : register(t0, space1);
+uint3 textureDimensions_7a3890() {
+  uint3 v = (0u).xxx;
+  arg_0.GetDimensions(v[0u], v[1u], v[2u]);
+  uint3 res = v;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store3(0u, textureDimensions_7a3890());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store3(0u, textureDimensions_7a3890());
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = textureDimensions_7a3890();
+  VertexOutput v_1 = tint_symbol;
+  return v_1;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_2 = vertex_main_inner();
+  VertexOutput v_3 = v_2;
+  VertexOutput v_4 = v_2;
+  vertex_main_outputs v_5 = {v_4.prevent_dce, v_3.pos};
+  return v_5;
+}
+
diff --git a/test/tint/builtins/gen/var/textureDimensions/7a3890.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/textureDimensions/7a3890.wgsl.expected.ir.fxc.hlsl
index 1fac62e..f61df0f 100644
--- a/test/tint/builtins/gen/var/textureDimensions/7a3890.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureDimensions/7a3890.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,45 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  uint3 prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureDimensions
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation uint3 VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+Texture3D<uint4> arg_0 : register(t0, space1);
+uint3 textureDimensions_7a3890() {
+  uint3 v = (0u).xxx;
+  arg_0.GetDimensions(v[0u], v[1u], v[2u]);
+  uint3 res = v;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store3(0u, textureDimensions_7a3890());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store3(0u, textureDimensions_7a3890());
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = textureDimensions_7a3890();
+  VertexOutput v_1 = tint_symbol;
+  return v_1;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_2 = vertex_main_inner();
+  VertexOutput v_3 = v_2;
+  VertexOutput v_4 = v_2;
+  vertex_main_outputs v_5 = {v_4.prevent_dce, v_3.pos};
+  return v_5;
+}
+
diff --git a/test/tint/builtins/gen/var/textureDimensions/7a9e30.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/textureDimensions/7a9e30.wgsl.expected.ir.dxc.hlsl
index 1fac62e..1dfa1ae 100644
--- a/test/tint/builtins/gen/var/textureDimensions/7a9e30.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureDimensions/7a9e30.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,45 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  uint2 prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureDimensions
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation uint2 VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+TextureCube<uint4> arg_0 : register(t0, space1);
+uint2 textureDimensions_7a9e30() {
+  uint2 v = (0u).xx;
+  arg_0.GetDimensions(v[0u], v[1u]);
+  uint2 res = v;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store2(0u, textureDimensions_7a9e30());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store2(0u, textureDimensions_7a9e30());
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = textureDimensions_7a9e30();
+  VertexOutput v_1 = tint_symbol;
+  return v_1;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_2 = vertex_main_inner();
+  VertexOutput v_3 = v_2;
+  VertexOutput v_4 = v_2;
+  vertex_main_outputs v_5 = {v_4.prevent_dce, v_3.pos};
+  return v_5;
+}
+
diff --git a/test/tint/builtins/gen/var/textureDimensions/7a9e30.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/textureDimensions/7a9e30.wgsl.expected.ir.fxc.hlsl
index 1fac62e..1dfa1ae 100644
--- a/test/tint/builtins/gen/var/textureDimensions/7a9e30.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureDimensions/7a9e30.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,45 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  uint2 prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureDimensions
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation uint2 VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+TextureCube<uint4> arg_0 : register(t0, space1);
+uint2 textureDimensions_7a9e30() {
+  uint2 v = (0u).xx;
+  arg_0.GetDimensions(v[0u], v[1u]);
+  uint2 res = v;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store2(0u, textureDimensions_7a9e30());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store2(0u, textureDimensions_7a9e30());
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = textureDimensions_7a9e30();
+  VertexOutput v_1 = tint_symbol;
+  return v_1;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_2 = vertex_main_inner();
+  VertexOutput v_3 = v_2;
+  VertexOutput v_4 = v_2;
+  vertex_main_outputs v_5 = {v_4.prevent_dce, v_3.pos};
+  return v_5;
+}
+
diff --git a/test/tint/builtins/gen/var/textureDimensions/7c753b.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/textureDimensions/7c753b.wgsl.expected.ir.dxc.hlsl
index 1fac62e..b02613a 100644
--- a/test/tint/builtins/gen/var/textureDimensions/7c753b.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureDimensions/7c753b.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,45 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  uint prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureDimensions
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation uint VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+Texture1D<float4> arg_0 : register(t0, space1);
+uint textureDimensions_7c753b() {
+  uint v = 0u;
+  arg_0.GetDimensions(v);
+  uint res = v;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store(0u, textureDimensions_7c753b());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store(0u, textureDimensions_7c753b());
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = textureDimensions_7c753b();
+  VertexOutput v_1 = tint_symbol;
+  return v_1;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_2 = vertex_main_inner();
+  VertexOutput v_3 = v_2;
+  VertexOutput v_4 = v_2;
+  vertex_main_outputs v_5 = {v_4.prevent_dce, v_3.pos};
+  return v_5;
+}
+
diff --git a/test/tint/builtins/gen/var/textureDimensions/7c753b.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/textureDimensions/7c753b.wgsl.expected.ir.fxc.hlsl
index 1fac62e..b02613a 100644
--- a/test/tint/builtins/gen/var/textureDimensions/7c753b.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureDimensions/7c753b.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,45 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  uint prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureDimensions
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation uint VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+Texture1D<float4> arg_0 : register(t0, space1);
+uint textureDimensions_7c753b() {
+  uint v = 0u;
+  arg_0.GetDimensions(v);
+  uint res = v;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store(0u, textureDimensions_7c753b());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store(0u, textureDimensions_7c753b());
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = textureDimensions_7c753b();
+  VertexOutput v_1 = tint_symbol;
+  return v_1;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_2 = vertex_main_inner();
+  VertexOutput v_3 = v_2;
+  VertexOutput v_4 = v_2;
+  vertex_main_outputs v_5 = {v_4.prevent_dce, v_3.pos};
+  return v_5;
+}
+
diff --git a/test/tint/builtins/gen/var/textureDimensions/7c7c64.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/textureDimensions/7c7c64.wgsl.expected.ir.dxc.hlsl
index 1fac62e..ab81e24 100644
--- a/test/tint/builtins/gen/var/textureDimensions/7c7c64.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureDimensions/7c7c64.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,19 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureDimensions
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWByteAddressBuffer prevent_dce : register(u0);
+RWTexture2DArray<int4> arg_0 : register(u0, space1);
+uint2 textureDimensions_7c7c64() {
+  uint3 v = (0u).xxx;
+  arg_0.GetDimensions(v[0u], v[1u], v[2u]);
+  uint2 res = v.xy;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store2(0u, textureDimensions_7c7c64());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store2(0u, textureDimensions_7c7c64());
+}
+
diff --git a/test/tint/builtins/gen/var/textureDimensions/7c7c64.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/textureDimensions/7c7c64.wgsl.expected.ir.fxc.hlsl
index 1fac62e..ab81e24 100644
--- a/test/tint/builtins/gen/var/textureDimensions/7c7c64.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureDimensions/7c7c64.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,19 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureDimensions
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWByteAddressBuffer prevent_dce : register(u0);
+RWTexture2DArray<int4> arg_0 : register(u0, space1);
+uint2 textureDimensions_7c7c64() {
+  uint3 v = (0u).xxx;
+  arg_0.GetDimensions(v[0u], v[1u], v[2u]);
+  uint2 res = v.xy;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store2(0u, textureDimensions_7c7c64());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store2(0u, textureDimensions_7c7c64());
+}
+
diff --git a/test/tint/builtins/gen/var/textureDimensions/7d8439.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/textureDimensions/7d8439.wgsl.expected.ir.dxc.hlsl
index 1fac62e..f4989e3 100644
--- a/test/tint/builtins/gen/var/textureDimensions/7d8439.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureDimensions/7d8439.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,45 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  uint prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureDimensions
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation uint VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+Texture1D<uint4> arg_0 : register(t0, space1);
+uint textureDimensions_7d8439() {
+  uint v = 0u;
+  arg_0.GetDimensions(v);
+  uint res = v;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store(0u, textureDimensions_7d8439());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store(0u, textureDimensions_7d8439());
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = textureDimensions_7d8439();
+  VertexOutput v_1 = tint_symbol;
+  return v_1;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_2 = vertex_main_inner();
+  VertexOutput v_3 = v_2;
+  VertexOutput v_4 = v_2;
+  vertex_main_outputs v_5 = {v_4.prevent_dce, v_3.pos};
+  return v_5;
+}
+
diff --git a/test/tint/builtins/gen/var/textureDimensions/7d8439.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/textureDimensions/7d8439.wgsl.expected.ir.fxc.hlsl
index 1fac62e..f4989e3 100644
--- a/test/tint/builtins/gen/var/textureDimensions/7d8439.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureDimensions/7d8439.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,45 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  uint prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureDimensions
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation uint VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+Texture1D<uint4> arg_0 : register(t0, space1);
+uint textureDimensions_7d8439() {
+  uint v = 0u;
+  arg_0.GetDimensions(v);
+  uint res = v;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store(0u, textureDimensions_7d8439());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store(0u, textureDimensions_7d8439());
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = textureDimensions_7d8439();
+  VertexOutput v_1 = tint_symbol;
+  return v_1;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_2 = vertex_main_inner();
+  VertexOutput v_3 = v_2;
+  VertexOutput v_4 = v_2;
+  vertex_main_outputs v_5 = {v_4.prevent_dce, v_3.pos};
+  return v_5;
+}
+
diff --git a/test/tint/builtins/gen/var/textureDimensions/7ea4b5.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/textureDimensions/7ea4b5.wgsl.expected.ir.dxc.hlsl
index 1fac62e..848ef78 100644
--- a/test/tint/builtins/gen/var/textureDimensions/7ea4b5.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureDimensions/7ea4b5.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,19 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureDimensions
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWByteAddressBuffer prevent_dce : register(u0);
+RWTexture3D<int4> arg_0 : register(u0, space1);
+uint3 textureDimensions_7ea4b5() {
+  uint3 v = (0u).xxx;
+  arg_0.GetDimensions(v[0u], v[1u], v[2u]);
+  uint3 res = v;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store3(0u, textureDimensions_7ea4b5());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store3(0u, textureDimensions_7ea4b5());
+}
+
diff --git a/test/tint/builtins/gen/var/textureDimensions/7ea4b5.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/textureDimensions/7ea4b5.wgsl.expected.ir.fxc.hlsl
index 1fac62e..848ef78 100644
--- a/test/tint/builtins/gen/var/textureDimensions/7ea4b5.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureDimensions/7ea4b5.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,19 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureDimensions
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWByteAddressBuffer prevent_dce : register(u0);
+RWTexture3D<int4> arg_0 : register(u0, space1);
+uint3 textureDimensions_7ea4b5() {
+  uint3 v = (0u).xxx;
+  arg_0.GetDimensions(v[0u], v[1u], v[2u]);
+  uint3 res = v;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store3(0u, textureDimensions_7ea4b5());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store3(0u, textureDimensions_7ea4b5());
+}
+
diff --git a/test/tint/builtins/gen/var/textureDimensions/7edb05.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/textureDimensions/7edb05.wgsl.expected.ir.dxc.hlsl
index 1fac62e..53ab5f9 100644
--- a/test/tint/builtins/gen/var/textureDimensions/7edb05.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureDimensions/7edb05.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,45 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  uint2 prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureDimensions
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation uint2 VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+Texture2DArray<uint4> arg_0 : register(t0, space1);
+uint2 textureDimensions_7edb05() {
+  uint3 v = (0u).xxx;
+  arg_0.GetDimensions(v[0u], v[1u], v[2u]);
+  uint2 res = v.xy;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store2(0u, textureDimensions_7edb05());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store2(0u, textureDimensions_7edb05());
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = textureDimensions_7edb05();
+  VertexOutput v_1 = tint_symbol;
+  return v_1;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_2 = vertex_main_inner();
+  VertexOutput v_3 = v_2;
+  VertexOutput v_4 = v_2;
+  vertex_main_outputs v_5 = {v_4.prevent_dce, v_3.pos};
+  return v_5;
+}
+
diff --git a/test/tint/builtins/gen/var/textureDimensions/7edb05.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/textureDimensions/7edb05.wgsl.expected.ir.fxc.hlsl
index 1fac62e..53ab5f9 100644
--- a/test/tint/builtins/gen/var/textureDimensions/7edb05.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureDimensions/7edb05.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,45 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  uint2 prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureDimensions
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation uint2 VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+Texture2DArray<uint4> arg_0 : register(t0, space1);
+uint2 textureDimensions_7edb05() {
+  uint3 v = (0u).xxx;
+  arg_0.GetDimensions(v[0u], v[1u], v[2u]);
+  uint2 res = v.xy;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store2(0u, textureDimensions_7edb05());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store2(0u, textureDimensions_7edb05());
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = textureDimensions_7edb05();
+  VertexOutput v_1 = tint_symbol;
+  return v_1;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_2 = vertex_main_inner();
+  VertexOutput v_3 = v_2;
+  VertexOutput v_4 = v_2;
+  vertex_main_outputs v_5 = {v_4.prevent_dce, v_3.pos};
+  return v_5;
+}
+
diff --git a/test/tint/builtins/gen/var/textureDimensions/8057cb.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/textureDimensions/8057cb.wgsl.expected.ir.dxc.hlsl
index 1fac62e..0c79416 100644
--- a/test/tint/builtins/gen/var/textureDimensions/8057cb.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureDimensions/8057cb.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,45 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  uint3 prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureDimensions
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation uint3 VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+Texture3D<float4> arg_0 : register(t0, space1);
+uint3 textureDimensions_8057cb() {
+  uint3 v = (0u).xxx;
+  arg_0.GetDimensions(v[0u], v[1u], v[2u]);
+  uint3 res = v;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store3(0u, textureDimensions_8057cb());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store3(0u, textureDimensions_8057cb());
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = textureDimensions_8057cb();
+  VertexOutput v_1 = tint_symbol;
+  return v_1;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_2 = vertex_main_inner();
+  VertexOutput v_3 = v_2;
+  VertexOutput v_4 = v_2;
+  vertex_main_outputs v_5 = {v_4.prevent_dce, v_3.pos};
+  return v_5;
+}
+
diff --git a/test/tint/builtins/gen/var/textureDimensions/8057cb.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/textureDimensions/8057cb.wgsl.expected.ir.fxc.hlsl
index 1fac62e..0c79416 100644
--- a/test/tint/builtins/gen/var/textureDimensions/8057cb.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureDimensions/8057cb.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,45 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  uint3 prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureDimensions
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation uint3 VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+Texture3D<float4> arg_0 : register(t0, space1);
+uint3 textureDimensions_8057cb() {
+  uint3 v = (0u).xxx;
+  arg_0.GetDimensions(v[0u], v[1u], v[2u]);
+  uint3 res = v;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store3(0u, textureDimensions_8057cb());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store3(0u, textureDimensions_8057cb());
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = textureDimensions_8057cb();
+  VertexOutput v_1 = tint_symbol;
+  return v_1;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_2 = vertex_main_inner();
+  VertexOutput v_3 = v_2;
+  VertexOutput v_4 = v_2;
+  vertex_main_outputs v_5 = {v_4.prevent_dce, v_3.pos};
+  return v_5;
+}
+
diff --git a/test/tint/builtins/gen/var/textureDimensions/8243a1.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/textureDimensions/8243a1.wgsl.expected.ir.dxc.hlsl
index 1fac62e..a8a7f21 100644
--- a/test/tint/builtins/gen/var/textureDimensions/8243a1.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureDimensions/8243a1.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,19 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureDimensions
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWByteAddressBuffer prevent_dce : register(u0);
+RWTexture3D<float4> arg_0 : register(u0, space1);
+uint3 textureDimensions_8243a1() {
+  uint3 v = (0u).xxx;
+  arg_0.GetDimensions(v[0u], v[1u], v[2u]);
+  uint3 res = v;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store3(0u, textureDimensions_8243a1());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store3(0u, textureDimensions_8243a1());
+}
+
diff --git a/test/tint/builtins/gen/var/textureDimensions/8243a1.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/textureDimensions/8243a1.wgsl.expected.ir.fxc.hlsl
index 1fac62e..a8a7f21 100644
--- a/test/tint/builtins/gen/var/textureDimensions/8243a1.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureDimensions/8243a1.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,19 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureDimensions
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWByteAddressBuffer prevent_dce : register(u0);
+RWTexture3D<float4> arg_0 : register(u0, space1);
+uint3 textureDimensions_8243a1() {
+  uint3 v = (0u).xxx;
+  arg_0.GetDimensions(v[0u], v[1u], v[2u]);
+  uint3 res = v;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store3(0u, textureDimensions_8243a1());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store3(0u, textureDimensions_8243a1());
+}
+
diff --git a/test/tint/builtins/gen/var/textureDimensions/835f90.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/textureDimensions/835f90.wgsl.expected.ir.dxc.hlsl
index 1fac62e..bad5538 100644
--- a/test/tint/builtins/gen/var/textureDimensions/835f90.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureDimensions/835f90.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,19 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureDimensions
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWByteAddressBuffer prevent_dce : register(u0);
+RWTexture2D<int4> arg_0 : register(u0, space1);
+uint2 textureDimensions_835f90() {
+  uint2 v = (0u).xx;
+  arg_0.GetDimensions(v[0u], v[1u]);
+  uint2 res = v;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store2(0u, textureDimensions_835f90());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store2(0u, textureDimensions_835f90());
+}
+
diff --git a/test/tint/builtins/gen/var/textureDimensions/835f90.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/textureDimensions/835f90.wgsl.expected.ir.fxc.hlsl
index 1fac62e..bad5538 100644
--- a/test/tint/builtins/gen/var/textureDimensions/835f90.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureDimensions/835f90.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,19 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureDimensions
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWByteAddressBuffer prevent_dce : register(u0);
+RWTexture2D<int4> arg_0 : register(u0, space1);
+uint2 textureDimensions_835f90() {
+  uint2 v = (0u).xx;
+  arg_0.GetDimensions(v[0u], v[1u]);
+  uint2 res = v;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store2(0u, textureDimensions_835f90());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store2(0u, textureDimensions_835f90());
+}
+
diff --git a/test/tint/builtins/gen/var/textureDimensions/841ebe.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/textureDimensions/841ebe.wgsl.expected.ir.dxc.hlsl
index 1fac62e..7c7c7ad 100644
--- a/test/tint/builtins/gen/var/textureDimensions/841ebe.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureDimensions/841ebe.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,45 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  uint prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureDimensions
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation uint VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+Texture1D<int4> arg_0 : register(t0, space1);
+uint textureDimensions_841ebe() {
+  uint v = 0u;
+  arg_0.GetDimensions(v);
+  uint res = v;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store(0u, textureDimensions_841ebe());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store(0u, textureDimensions_841ebe());
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = textureDimensions_841ebe();
+  VertexOutput v_1 = tint_symbol;
+  return v_1;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_2 = vertex_main_inner();
+  VertexOutput v_3 = v_2;
+  VertexOutput v_4 = v_2;
+  vertex_main_outputs v_5 = {v_4.prevent_dce, v_3.pos};
+  return v_5;
+}
+
diff --git a/test/tint/builtins/gen/var/textureDimensions/841ebe.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/textureDimensions/841ebe.wgsl.expected.ir.fxc.hlsl
index 1fac62e..7c7c7ad 100644
--- a/test/tint/builtins/gen/var/textureDimensions/841ebe.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureDimensions/841ebe.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,45 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  uint prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureDimensions
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation uint VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+Texture1D<int4> arg_0 : register(t0, space1);
+uint textureDimensions_841ebe() {
+  uint v = 0u;
+  arg_0.GetDimensions(v);
+  uint res = v;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store(0u, textureDimensions_841ebe());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store(0u, textureDimensions_841ebe());
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = textureDimensions_841ebe();
+  VertexOutput v_1 = tint_symbol;
+  return v_1;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_2 = vertex_main_inner();
+  VertexOutput v_3 = v_2;
+  VertexOutput v_4 = v_2;
+  vertex_main_outputs v_5 = {v_4.prevent_dce, v_3.pos};
+  return v_5;
+}
+
diff --git a/test/tint/builtins/gen/var/textureDimensions/84f363.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/textureDimensions/84f363.wgsl.expected.ir.dxc.hlsl
index 1fac62e..b9f0a5e 100644
--- a/test/tint/builtins/gen/var/textureDimensions/84f363.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureDimensions/84f363.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,19 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureDimensions
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWByteAddressBuffer prevent_dce : register(u0);
+RWTexture1D<float4> arg_0 : register(u0, space1);
+uint textureDimensions_84f363() {
+  uint v = 0u;
+  arg_0.GetDimensions(v);
+  uint res = v;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store(0u, textureDimensions_84f363());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store(0u, textureDimensions_84f363());
+}
+
diff --git a/test/tint/builtins/gen/var/textureDimensions/84f363.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/textureDimensions/84f363.wgsl.expected.ir.fxc.hlsl
index 1fac62e..b9f0a5e 100644
--- a/test/tint/builtins/gen/var/textureDimensions/84f363.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureDimensions/84f363.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,19 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureDimensions
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWByteAddressBuffer prevent_dce : register(u0);
+RWTexture1D<float4> arg_0 : register(u0, space1);
+uint textureDimensions_84f363() {
+  uint v = 0u;
+  arg_0.GetDimensions(v);
+  uint res = v;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store(0u, textureDimensions_84f363());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store(0u, textureDimensions_84f363());
+}
+
diff --git a/test/tint/builtins/gen/var/textureDimensions/867ead.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/textureDimensions/867ead.wgsl.expected.ir.dxc.hlsl
index 1fac62e..ea48eff 100644
--- a/test/tint/builtins/gen/var/textureDimensions/867ead.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureDimensions/867ead.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,19 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureDimensions
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWByteAddressBuffer prevent_dce : register(u0);
+RWTexture2DArray<float4> arg_0 : register(u0, space1);
+uint2 textureDimensions_867ead() {
+  uint3 v = (0u).xxx;
+  arg_0.GetDimensions(v[0u], v[1u], v[2u]);
+  uint2 res = v.xy;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store2(0u, textureDimensions_867ead());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store2(0u, textureDimensions_867ead());
+}
+
diff --git a/test/tint/builtins/gen/var/textureDimensions/867ead.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/textureDimensions/867ead.wgsl.expected.ir.fxc.hlsl
index 1fac62e..ea48eff 100644
--- a/test/tint/builtins/gen/var/textureDimensions/867ead.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureDimensions/867ead.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,19 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureDimensions
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWByteAddressBuffer prevent_dce : register(u0);
+RWTexture2DArray<float4> arg_0 : register(u0, space1);
+uint2 textureDimensions_867ead() {
+  uint3 v = (0u).xxx;
+  arg_0.GetDimensions(v[0u], v[1u], v[2u]);
+  uint2 res = v.xy;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store2(0u, textureDimensions_867ead());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store2(0u, textureDimensions_867ead());
+}
+
diff --git a/test/tint/builtins/gen/var/textureDimensions/879b73.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/textureDimensions/879b73.wgsl.expected.ir.dxc.hlsl
index 1fac62e..328fec5 100644
--- a/test/tint/builtins/gen/var/textureDimensions/879b73.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureDimensions/879b73.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,45 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  uint2 prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureDimensions
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation uint2 VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+TextureCubeArray<float4> arg_0 : register(t0, space1);
+uint2 textureDimensions_879b73() {
+  uint3 v = (0u).xxx;
+  arg_0.GetDimensions(v[0u], v[1u], v[2u]);
+  uint2 res = v.xy;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store2(0u, textureDimensions_879b73());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store2(0u, textureDimensions_879b73());
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = textureDimensions_879b73();
+  VertexOutput v_1 = tint_symbol;
+  return v_1;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_2 = vertex_main_inner();
+  VertexOutput v_3 = v_2;
+  VertexOutput v_4 = v_2;
+  vertex_main_outputs v_5 = {v_4.prevent_dce, v_3.pos};
+  return v_5;
+}
+
diff --git a/test/tint/builtins/gen/var/textureDimensions/879b73.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/textureDimensions/879b73.wgsl.expected.ir.fxc.hlsl
index 1fac62e..328fec5 100644
--- a/test/tint/builtins/gen/var/textureDimensions/879b73.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureDimensions/879b73.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,45 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  uint2 prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureDimensions
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation uint2 VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+TextureCubeArray<float4> arg_0 : register(t0, space1);
+uint2 textureDimensions_879b73() {
+  uint3 v = (0u).xxx;
+  arg_0.GetDimensions(v[0u], v[1u], v[2u]);
+  uint2 res = v.xy;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store2(0u, textureDimensions_879b73());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store2(0u, textureDimensions_879b73());
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = textureDimensions_879b73();
+  VertexOutput v_1 = tint_symbol;
+  return v_1;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_2 = vertex_main_inner();
+  VertexOutput v_3 = v_2;
+  VertexOutput v_4 = v_2;
+  vertex_main_outputs v_5 = {v_4.prevent_dce, v_3.pos};
+  return v_5;
+}
+
diff --git a/test/tint/builtins/gen/var/textureDimensions/87b42d.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/textureDimensions/87b42d.wgsl.expected.ir.dxc.hlsl
index 1fac62e..f2c010b 100644
--- a/test/tint/builtins/gen/var/textureDimensions/87b42d.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureDimensions/87b42d.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,45 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  uint2 prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureDimensions
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation uint2 VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+Texture2DArray<uint4> arg_0 : register(t0, space1);
+uint2 textureDimensions_87b42d() {
+  uint3 v = (0u).xxx;
+  arg_0.GetDimensions(v[0u], v[1u], v[2u]);
+  uint2 res = v.xy;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store2(0u, textureDimensions_87b42d());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store2(0u, textureDimensions_87b42d());
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = textureDimensions_87b42d();
+  VertexOutput v_1 = tint_symbol;
+  return v_1;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_2 = vertex_main_inner();
+  VertexOutput v_3 = v_2;
+  VertexOutput v_4 = v_2;
+  vertex_main_outputs v_5 = {v_4.prevent_dce, v_3.pos};
+  return v_5;
+}
+
diff --git a/test/tint/builtins/gen/var/textureDimensions/87b42d.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/textureDimensions/87b42d.wgsl.expected.ir.fxc.hlsl
index 1fac62e..f2c010b 100644
--- a/test/tint/builtins/gen/var/textureDimensions/87b42d.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureDimensions/87b42d.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,45 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  uint2 prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureDimensions
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation uint2 VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+Texture2DArray<uint4> arg_0 : register(t0, space1);
+uint2 textureDimensions_87b42d() {
+  uint3 v = (0u).xxx;
+  arg_0.GetDimensions(v[0u], v[1u], v[2u]);
+  uint2 res = v.xy;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store2(0u, textureDimensions_87b42d());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store2(0u, textureDimensions_87b42d());
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = textureDimensions_87b42d();
+  VertexOutput v_1 = tint_symbol;
+  return v_1;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_2 = vertex_main_inner();
+  VertexOutput v_3 = v_2;
+  VertexOutput v_4 = v_2;
+  vertex_main_outputs v_5 = {v_4.prevent_dce, v_3.pos};
+  return v_5;
+}
+
diff --git a/test/tint/builtins/gen/var/textureDimensions/881dd4.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/textureDimensions/881dd4.wgsl.expected.ir.dxc.hlsl
index 1fac62e..cda6b1a 100644
--- a/test/tint/builtins/gen/var/textureDimensions/881dd4.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureDimensions/881dd4.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,45 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  uint2 prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureDimensions
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation uint2 VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+Texture2DArray<float4> arg_0 : register(t0, space1);
+uint2 textureDimensions_881dd4() {
+  uint3 v = (0u).xxx;
+  arg_0.GetDimensions(v[0u], v[1u], v[2u]);
+  uint2 res = v.xy;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store2(0u, textureDimensions_881dd4());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store2(0u, textureDimensions_881dd4());
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = textureDimensions_881dd4();
+  VertexOutput v_1 = tint_symbol;
+  return v_1;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_2 = vertex_main_inner();
+  VertexOutput v_3 = v_2;
+  VertexOutput v_4 = v_2;
+  vertex_main_outputs v_5 = {v_4.prevent_dce, v_3.pos};
+  return v_5;
+}
+
diff --git a/test/tint/builtins/gen/var/textureDimensions/881dd4.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/textureDimensions/881dd4.wgsl.expected.ir.fxc.hlsl
index 1fac62e..cda6b1a 100644
--- a/test/tint/builtins/gen/var/textureDimensions/881dd4.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureDimensions/881dd4.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,45 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  uint2 prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureDimensions
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation uint2 VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+Texture2DArray<float4> arg_0 : register(t0, space1);
+uint2 textureDimensions_881dd4() {
+  uint3 v = (0u).xxx;
+  arg_0.GetDimensions(v[0u], v[1u], v[2u]);
+  uint2 res = v.xy;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store2(0u, textureDimensions_881dd4());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store2(0u, textureDimensions_881dd4());
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = textureDimensions_881dd4();
+  VertexOutput v_1 = tint_symbol;
+  return v_1;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_2 = vertex_main_inner();
+  VertexOutput v_3 = v_2;
+  VertexOutput v_4 = v_2;
+  vertex_main_outputs v_5 = {v_4.prevent_dce, v_3.pos};
+  return v_5;
+}
+
diff --git a/test/tint/builtins/gen/var/textureDimensions/8a2b17.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/textureDimensions/8a2b17.wgsl.expected.ir.dxc.hlsl
index 1fac62e..a25b947 100644
--- a/test/tint/builtins/gen/var/textureDimensions/8a2b17.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureDimensions/8a2b17.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,19 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureDimensions
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWByteAddressBuffer prevent_dce : register(u0);
+RWTexture1D<int4> arg_0 : register(u0, space1);
+uint textureDimensions_8a2b17() {
+  uint v = 0u;
+  arg_0.GetDimensions(v);
+  uint res = v;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store(0u, textureDimensions_8a2b17());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store(0u, textureDimensions_8a2b17());
+}
+
diff --git a/test/tint/builtins/gen/var/textureDimensions/8a2b17.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/textureDimensions/8a2b17.wgsl.expected.ir.fxc.hlsl
index 1fac62e..a25b947 100644
--- a/test/tint/builtins/gen/var/textureDimensions/8a2b17.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureDimensions/8a2b17.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,19 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureDimensions
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWByteAddressBuffer prevent_dce : register(u0);
+RWTexture1D<int4> arg_0 : register(u0, space1);
+uint textureDimensions_8a2b17() {
+  uint v = 0u;
+  arg_0.GetDimensions(v);
+  uint res = v;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store(0u, textureDimensions_8a2b17());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store(0u, textureDimensions_8a2b17());
+}
+
diff --git a/test/tint/builtins/gen/var/textureDimensions/8a35f9.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/textureDimensions/8a35f9.wgsl.expected.ir.dxc.hlsl
index 1fac62e..560c74a 100644
--- a/test/tint/builtins/gen/var/textureDimensions/8a35f9.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureDimensions/8a35f9.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,19 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureDimensions
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWByteAddressBuffer prevent_dce : register(u0);
+RWTexture2D<float4> arg_0 : register(u0, space1);
+uint2 textureDimensions_8a35f9() {
+  uint2 v = (0u).xx;
+  arg_0.GetDimensions(v[0u], v[1u]);
+  uint2 res = v;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store2(0u, textureDimensions_8a35f9());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store2(0u, textureDimensions_8a35f9());
+}
+
diff --git a/test/tint/builtins/gen/var/textureDimensions/8a35f9.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/textureDimensions/8a35f9.wgsl.expected.ir.fxc.hlsl
index 1fac62e..560c74a 100644
--- a/test/tint/builtins/gen/var/textureDimensions/8a35f9.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureDimensions/8a35f9.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,19 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureDimensions
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWByteAddressBuffer prevent_dce : register(u0);
+RWTexture2D<float4> arg_0 : register(u0, space1);
+uint2 textureDimensions_8a35f9() {
+  uint2 v = (0u).xx;
+  arg_0.GetDimensions(v[0u], v[1u]);
+  uint2 res = v;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store2(0u, textureDimensions_8a35f9());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store2(0u, textureDimensions_8a35f9());
+}
+
diff --git a/test/tint/builtins/gen/var/textureDimensions/8af728.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/textureDimensions/8af728.wgsl.expected.ir.dxc.hlsl
index 1fac62e..c9be978 100644
--- a/test/tint/builtins/gen/var/textureDimensions/8af728.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureDimensions/8af728.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,45 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  uint2 prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureDimensions
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation uint2 VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+Texture2DArray<float4> arg_0 : register(t0, space1);
+uint2 textureDimensions_8af728() {
+  uint3 v = (0u).xxx;
+  arg_0.GetDimensions(v[0u], v[1u], v[2u]);
+  uint2 res = v.xy;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store2(0u, textureDimensions_8af728());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store2(0u, textureDimensions_8af728());
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = textureDimensions_8af728();
+  VertexOutput v_1 = tint_symbol;
+  return v_1;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_2 = vertex_main_inner();
+  VertexOutput v_3 = v_2;
+  VertexOutput v_4 = v_2;
+  vertex_main_outputs v_5 = {v_4.prevent_dce, v_3.pos};
+  return v_5;
+}
+
diff --git a/test/tint/builtins/gen/var/textureDimensions/8af728.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/textureDimensions/8af728.wgsl.expected.ir.fxc.hlsl
index 1fac62e..c9be978 100644
--- a/test/tint/builtins/gen/var/textureDimensions/8af728.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureDimensions/8af728.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,45 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  uint2 prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureDimensions
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation uint2 VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+Texture2DArray<float4> arg_0 : register(t0, space1);
+uint2 textureDimensions_8af728() {
+  uint3 v = (0u).xxx;
+  arg_0.GetDimensions(v[0u], v[1u], v[2u]);
+  uint2 res = v.xy;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store2(0u, textureDimensions_8af728());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store2(0u, textureDimensions_8af728());
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = textureDimensions_8af728();
+  VertexOutput v_1 = tint_symbol;
+  return v_1;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_2 = vertex_main_inner();
+  VertexOutput v_3 = v_2;
+  VertexOutput v_4 = v_2;
+  vertex_main_outputs v_5 = {v_4.prevent_dce, v_3.pos};
+  return v_5;
+}
+
diff --git a/test/tint/builtins/gen/var/textureDimensions/8b9906.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/textureDimensions/8b9906.wgsl.expected.ir.dxc.hlsl
index 1fac62e..ae72b51e8 100644
--- a/test/tint/builtins/gen/var/textureDimensions/8b9906.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureDimensions/8b9906.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,19 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureDimensions
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWByteAddressBuffer prevent_dce : register(u0);
+RWTexture3D<uint4> arg_0 : register(u0, space1);
+uint3 textureDimensions_8b9906() {
+  uint3 v = (0u).xxx;
+  arg_0.GetDimensions(v[0u], v[1u], v[2u]);
+  uint3 res = v;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store3(0u, textureDimensions_8b9906());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store3(0u, textureDimensions_8b9906());
+}
+
diff --git a/test/tint/builtins/gen/var/textureDimensions/8b9906.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/textureDimensions/8b9906.wgsl.expected.ir.fxc.hlsl
index 1fac62e..ae72b51e8 100644
--- a/test/tint/builtins/gen/var/textureDimensions/8b9906.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureDimensions/8b9906.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,19 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureDimensions
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWByteAddressBuffer prevent_dce : register(u0);
+RWTexture3D<uint4> arg_0 : register(u0, space1);
+uint3 textureDimensions_8b9906() {
+  uint3 v = (0u).xxx;
+  arg_0.GetDimensions(v[0u], v[1u], v[2u]);
+  uint3 res = v;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store3(0u, textureDimensions_8b9906());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store3(0u, textureDimensions_8b9906());
+}
+
diff --git a/test/tint/builtins/gen/var/textureDimensions/8bd369.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/textureDimensions/8bd369.wgsl.expected.ir.dxc.hlsl
index 1fac62e..e690d18 100644
--- a/test/tint/builtins/gen/var/textureDimensions/8bd369.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureDimensions/8bd369.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,19 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureDimensions
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWByteAddressBuffer prevent_dce : register(u0);
+RWTexture2DArray<float4> arg_0 : register(u0, space1);
+uint2 textureDimensions_8bd369() {
+  uint3 v = (0u).xxx;
+  arg_0.GetDimensions(v[0u], v[1u], v[2u]);
+  uint2 res = v.xy;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store2(0u, textureDimensions_8bd369());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store2(0u, textureDimensions_8bd369());
+}
+
diff --git a/test/tint/builtins/gen/var/textureDimensions/8bd369.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/textureDimensions/8bd369.wgsl.expected.ir.fxc.hlsl
index 1fac62e..e690d18 100644
--- a/test/tint/builtins/gen/var/textureDimensions/8bd369.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureDimensions/8bd369.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,19 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureDimensions
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWByteAddressBuffer prevent_dce : register(u0);
+RWTexture2DArray<float4> arg_0 : register(u0, space1);
+uint2 textureDimensions_8bd369() {
+  uint3 v = (0u).xxx;
+  arg_0.GetDimensions(v[0u], v[1u], v[2u]);
+  uint2 res = v.xy;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store2(0u, textureDimensions_8bd369());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store2(0u, textureDimensions_8bd369());
+}
+
diff --git a/test/tint/builtins/gen/var/textureDimensions/8e15f4.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/textureDimensions/8e15f4.wgsl.expected.ir.dxc.hlsl
index 1fac62e..41cdea7 100644
--- a/test/tint/builtins/gen/var/textureDimensions/8e15f4.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureDimensions/8e15f4.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,45 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  uint2 prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureDimensions
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation uint2 VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+Texture2D<uint4> arg_0 : register(t0, space1);
+uint2 textureDimensions_8e15f4() {
+  uint2 v = (0u).xx;
+  arg_0.GetDimensions(v[0u], v[1u]);
+  uint2 res = v;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store2(0u, textureDimensions_8e15f4());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store2(0u, textureDimensions_8e15f4());
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = textureDimensions_8e15f4();
+  VertexOutput v_1 = tint_symbol;
+  return v_1;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_2 = vertex_main_inner();
+  VertexOutput v_3 = v_2;
+  VertexOutput v_4 = v_2;
+  vertex_main_outputs v_5 = {v_4.prevent_dce, v_3.pos};
+  return v_5;
+}
+
diff --git a/test/tint/builtins/gen/var/textureDimensions/8e15f4.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/textureDimensions/8e15f4.wgsl.expected.ir.fxc.hlsl
index 1fac62e..41cdea7 100644
--- a/test/tint/builtins/gen/var/textureDimensions/8e15f4.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureDimensions/8e15f4.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,45 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  uint2 prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureDimensions
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation uint2 VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+Texture2D<uint4> arg_0 : register(t0, space1);
+uint2 textureDimensions_8e15f4() {
+  uint2 v = (0u).xx;
+  arg_0.GetDimensions(v[0u], v[1u]);
+  uint2 res = v;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store2(0u, textureDimensions_8e15f4());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store2(0u, textureDimensions_8e15f4());
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = textureDimensions_8e15f4();
+  VertexOutput v_1 = tint_symbol;
+  return v_1;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_2 = vertex_main_inner();
+  VertexOutput v_3 = v_2;
+  VertexOutput v_4 = v_2;
+  vertex_main_outputs v_5 = {v_4.prevent_dce, v_3.pos};
+  return v_5;
+}
+
diff --git a/test/tint/builtins/gen/var/textureDimensions/8e5de6.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/textureDimensions/8e5de6.wgsl.expected.ir.dxc.hlsl
index 1fac62e..17bd941 100644
--- a/test/tint/builtins/gen/var/textureDimensions/8e5de6.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureDimensions/8e5de6.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,45 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  uint prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureDimensions
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation uint VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+Texture1D<int4> arg_0 : register(t0, space1);
+uint textureDimensions_8e5de6() {
+  uint v = 0u;
+  arg_0.GetDimensions(v);
+  uint res = v;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store(0u, textureDimensions_8e5de6());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store(0u, textureDimensions_8e5de6());
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = textureDimensions_8e5de6();
+  VertexOutput v_1 = tint_symbol;
+  return v_1;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_2 = vertex_main_inner();
+  VertexOutput v_3 = v_2;
+  VertexOutput v_4 = v_2;
+  vertex_main_outputs v_5 = {v_4.prevent_dce, v_3.pos};
+  return v_5;
+}
+
diff --git a/test/tint/builtins/gen/var/textureDimensions/8e5de6.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/textureDimensions/8e5de6.wgsl.expected.ir.fxc.hlsl
index 1fac62e..17bd941 100644
--- a/test/tint/builtins/gen/var/textureDimensions/8e5de6.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureDimensions/8e5de6.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,45 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  uint prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureDimensions
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation uint VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+Texture1D<int4> arg_0 : register(t0, space1);
+uint textureDimensions_8e5de6() {
+  uint v = 0u;
+  arg_0.GetDimensions(v);
+  uint res = v;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store(0u, textureDimensions_8e5de6());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store(0u, textureDimensions_8e5de6());
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = textureDimensions_8e5de6();
+  VertexOutput v_1 = tint_symbol;
+  return v_1;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_2 = vertex_main_inner();
+  VertexOutput v_3 = v_2;
+  VertexOutput v_4 = v_2;
+  vertex_main_outputs v_5 = {v_4.prevent_dce, v_3.pos};
+  return v_5;
+}
+
diff --git a/test/tint/builtins/gen/var/textureDimensions/8efd47.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/textureDimensions/8efd47.wgsl.expected.ir.dxc.hlsl
index 1fac62e..9642825 100644
--- a/test/tint/builtins/gen/var/textureDimensions/8efd47.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureDimensions/8efd47.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,19 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureDimensions
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWByteAddressBuffer prevent_dce : register(u0);
+RWTexture1D<int4> arg_0 : register(u0, space1);
+uint textureDimensions_8efd47() {
+  uint v = 0u;
+  arg_0.GetDimensions(v);
+  uint res = v;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store(0u, textureDimensions_8efd47());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store(0u, textureDimensions_8efd47());
+}
+
diff --git a/test/tint/builtins/gen/var/textureDimensions/8efd47.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/textureDimensions/8efd47.wgsl.expected.ir.fxc.hlsl
index 1fac62e..9642825 100644
--- a/test/tint/builtins/gen/var/textureDimensions/8efd47.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureDimensions/8efd47.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,19 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureDimensions
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWByteAddressBuffer prevent_dce : register(u0);
+RWTexture1D<int4> arg_0 : register(u0, space1);
+uint textureDimensions_8efd47() {
+  uint v = 0u;
+  arg_0.GetDimensions(v);
+  uint res = v;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store(0u, textureDimensions_8efd47());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store(0u, textureDimensions_8efd47());
+}
+
diff --git a/test/tint/builtins/gen/var/textureDimensions/902179.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/textureDimensions/902179.wgsl.expected.ir.dxc.hlsl
index 1fac62e..cdeca41 100644
--- a/test/tint/builtins/gen/var/textureDimensions/902179.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureDimensions/902179.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,19 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureDimensions
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWByteAddressBuffer prevent_dce : register(u0);
+RWTexture3D<float4> arg_0 : register(u0, space1);
+uint3 textureDimensions_902179() {
+  uint3 v = (0u).xxx;
+  arg_0.GetDimensions(v[0u], v[1u], v[2u]);
+  uint3 res = v;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store3(0u, textureDimensions_902179());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store3(0u, textureDimensions_902179());
+}
+
diff --git a/test/tint/builtins/gen/var/textureDimensions/902179.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/textureDimensions/902179.wgsl.expected.ir.fxc.hlsl
index 1fac62e..cdeca41 100644
--- a/test/tint/builtins/gen/var/textureDimensions/902179.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureDimensions/902179.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,19 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureDimensions
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWByteAddressBuffer prevent_dce : register(u0);
+RWTexture3D<float4> arg_0 : register(u0, space1);
+uint3 textureDimensions_902179() {
+  uint3 v = (0u).xxx;
+  arg_0.GetDimensions(v[0u], v[1u], v[2u]);
+  uint3 res = v;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store3(0u, textureDimensions_902179());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store3(0u, textureDimensions_902179());
+}
+
diff --git a/test/tint/builtins/gen/var/textureDimensions/904b0f.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/textureDimensions/904b0f.wgsl.expected.ir.dxc.hlsl
index 1fac62e..c1681a1 100644
--- a/test/tint/builtins/gen/var/textureDimensions/904b0f.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureDimensions/904b0f.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,45 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  uint2 prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureDimensions
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation uint2 VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+Texture2DArray<int4> arg_0 : register(t0, space1);
+uint2 textureDimensions_904b0f() {
+  uint3 v = (0u).xxx;
+  arg_0.GetDimensions(v[0u], v[1u], v[2u]);
+  uint2 res = v.xy;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store2(0u, textureDimensions_904b0f());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store2(0u, textureDimensions_904b0f());
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = textureDimensions_904b0f();
+  VertexOutput v_1 = tint_symbol;
+  return v_1;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_2 = vertex_main_inner();
+  VertexOutput v_3 = v_2;
+  VertexOutput v_4 = v_2;
+  vertex_main_outputs v_5 = {v_4.prevent_dce, v_3.pos};
+  return v_5;
+}
+
diff --git a/test/tint/builtins/gen/var/textureDimensions/904b0f.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/textureDimensions/904b0f.wgsl.expected.ir.fxc.hlsl
index 1fac62e..c1681a1 100644
--- a/test/tint/builtins/gen/var/textureDimensions/904b0f.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureDimensions/904b0f.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,45 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  uint2 prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureDimensions
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation uint2 VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+Texture2DArray<int4> arg_0 : register(t0, space1);
+uint2 textureDimensions_904b0f() {
+  uint3 v = (0u).xxx;
+  arg_0.GetDimensions(v[0u], v[1u], v[2u]);
+  uint2 res = v.xy;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store2(0u, textureDimensions_904b0f());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store2(0u, textureDimensions_904b0f());
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = textureDimensions_904b0f();
+  VertexOutput v_1 = tint_symbol;
+  return v_1;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_2 = vertex_main_inner();
+  VertexOutput v_3 = v_2;
+  VertexOutput v_4 = v_2;
+  vertex_main_outputs v_5 = {v_4.prevent_dce, v_3.pos};
+  return v_5;
+}
+
diff --git a/test/tint/builtins/gen/var/textureDimensions/90dd74.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/textureDimensions/90dd74.wgsl.expected.ir.dxc.hlsl
index 1fac62e..e39c622 100644
--- a/test/tint/builtins/gen/var/textureDimensions/90dd74.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureDimensions/90dd74.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,19 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureDimensions
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWByteAddressBuffer prevent_dce : register(u0);
+RWTexture2DArray<int4> arg_0 : register(u0, space1);
+uint2 textureDimensions_90dd74() {
+  uint3 v = (0u).xxx;
+  arg_0.GetDimensions(v[0u], v[1u], v[2u]);
+  uint2 res = v.xy;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store2(0u, textureDimensions_90dd74());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store2(0u, textureDimensions_90dd74());
+}
+
diff --git a/test/tint/builtins/gen/var/textureDimensions/90dd74.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/textureDimensions/90dd74.wgsl.expected.ir.fxc.hlsl
index 1fac62e..e39c622 100644
--- a/test/tint/builtins/gen/var/textureDimensions/90dd74.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureDimensions/90dd74.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,19 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureDimensions
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWByteAddressBuffer prevent_dce : register(u0);
+RWTexture2DArray<int4> arg_0 : register(u0, space1);
+uint2 textureDimensions_90dd74() {
+  uint3 v = (0u).xxx;
+  arg_0.GetDimensions(v[0u], v[1u], v[2u]);
+  uint2 res = v.xy;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store2(0u, textureDimensions_90dd74());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store2(0u, textureDimensions_90dd74());
+}
+
diff --git a/test/tint/builtins/gen/var/textureDimensions/91e3b4.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/textureDimensions/91e3b4.wgsl.expected.ir.dxc.hlsl
index 1fac62e..c7115dc 100644
--- a/test/tint/builtins/gen/var/textureDimensions/91e3b4.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureDimensions/91e3b4.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,19 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureDimensions
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWByteAddressBuffer prevent_dce : register(u0);
+RWTexture3D<int4> arg_0 : register(u0, space1);
+uint3 textureDimensions_91e3b4() {
+  uint3 v = (0u).xxx;
+  arg_0.GetDimensions(v[0u], v[1u], v[2u]);
+  uint3 res = v;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store3(0u, textureDimensions_91e3b4());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store3(0u, textureDimensions_91e3b4());
+}
+
diff --git a/test/tint/builtins/gen/var/textureDimensions/91e3b4.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/textureDimensions/91e3b4.wgsl.expected.ir.fxc.hlsl
index 1fac62e..c7115dc 100644
--- a/test/tint/builtins/gen/var/textureDimensions/91e3b4.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureDimensions/91e3b4.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,19 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureDimensions
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWByteAddressBuffer prevent_dce : register(u0);
+RWTexture3D<int4> arg_0 : register(u0, space1);
+uint3 textureDimensions_91e3b4() {
+  uint3 v = (0u).xxx;
+  arg_0.GetDimensions(v[0u], v[1u], v[2u]);
+  uint3 res = v;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store3(0u, textureDimensions_91e3b4());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store3(0u, textureDimensions_91e3b4());
+}
+
diff --git a/test/tint/builtins/gen/var/textureDimensions/920006.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/textureDimensions/920006.wgsl.expected.ir.dxc.hlsl
index 1fac62e..9ce2f23 100644
--- a/test/tint/builtins/gen/var/textureDimensions/920006.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureDimensions/920006.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,115 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureDimensions
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : u32;
+
+@group(1) @binding(0) var arg_0 : texture_1d<u32>;
+
+fn textureDimensions_920006() -> u32 {
+  var arg_1 = 1i;
+  var res : u32 = textureDimensions(arg_0, arg_1);
+  return res;
+}
+
+@fragment
+fn fragment_main() {
+  prevent_dce = textureDimensions_920006();
+}
+
+@compute @workgroup_size(1)
+fn compute_main() {
+  prevent_dce = textureDimensions_920006();
+}
+
+struct VertexOutput {
+  @builtin(position)
+  pos : vec4<f32>,
+  @location(0) @interpolate(flat)
+  prevent_dce : u32,
+}
+
+@vertex
+fn vertex_main() -> VertexOutput {
+  var tint_symbol : VertexOutput;
+  tint_symbol.pos = vec4<f32>();
+  tint_symbol.prevent_dce = textureDimensions_920006();
+  return tint_symbol;
+}
+
+Failed to generate: :28:43 error: var: initializer type 'vec2<u32>' does not match store type 'u32'
+    %res:ptr<function, u32, read_write> = var, %13
+                                          ^^^
+
+:17:3 note: in block
+  $B2: {
+  ^^^
+
+note: # Disassembly
+VertexOutput = struct @align(16) {
+  pos:vec4<f32> @offset(0)
+  prevent_dce:u32 @offset(16)
+}
+
+vertex_main_outputs = struct @align(16) {
+  VertexOutput_prevent_dce:u32 @offset(0), @location(0), @interpolate(flat)
+  VertexOutput_pos:vec4<f32> @offset(16), @builtin(position)
+}
+
+$B1: {  # root
+  %prevent_dce:hlsl.byte_address_buffer<read_write> = var @binding_point(0, 0)
+  %arg_0:ptr<handle, texture_1d<u32>, read> = var @binding_point(1, 0)
+}
+
+%textureDimensions_920006 = func():u32 {
+  $B2: {
+    %arg_1:ptr<function, i32, read_write> = var, 1i
+    %5:texture_1d<u32> = load %arg_0
+    %6:i32 = load %arg_1
+    %7:u32 = convert %6
+    %8:ptr<function, vec2<u32>, read_write> = var
+    %9:ptr<function, u32, read_write> = access %8, 0u
+    %10:ptr<function, u32, read_write> = access %8, 1u
+    %11:void = %5.GetDimensions %7, %9, %10
+    %12:vec2<u32> = load %8
+    %13:vec2<u32> = swizzle %12, x
+    %res:ptr<function, u32, read_write> = var, %13
+    %15:u32 = load %res
+    ret %15
+  }
+}
+%fragment_main = @fragment func():void {
+  $B3: {
+    %17:u32 = call %textureDimensions_920006
+    %18:void = %prevent_dce.Store 0u, %17
+    ret
+  }
+}
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B4: {
+    %20:u32 = call %textureDimensions_920006
+    %21:void = %prevent_dce.Store 0u, %20
+    ret
+  }
+}
+%vertex_main_inner = func():VertexOutput {
+  $B5: {
+    %tint_symbol:ptr<function, VertexOutput, read_write> = var
+    %24:ptr<function, vec4<f32>, read_write> = access %tint_symbol, 0u
+    store %24, vec4<f32>(0.0f)
+    %25:ptr<function, u32, read_write> = access %tint_symbol, 1u
+    %26:u32 = call %textureDimensions_920006
+    store %25, %26
+    %27:VertexOutput = load %tint_symbol
+    ret %27
+  }
+}
+%vertex_main = @vertex func():vertex_main_outputs {
+  $B6: {
+    %29:VertexOutput = call %vertex_main_inner
+    %30:vec4<f32> = access %29, 0u
+    %31:u32 = access %29, 1u
+    %32:vertex_main_outputs = construct %31, %30
+    ret %32
+  }
+}
+
diff --git a/test/tint/builtins/gen/var/textureDimensions/920006.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/textureDimensions/920006.wgsl.expected.ir.fxc.hlsl
index 1fac62e..9ce2f23 100644
--- a/test/tint/builtins/gen/var/textureDimensions/920006.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureDimensions/920006.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,115 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureDimensions
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : u32;
+
+@group(1) @binding(0) var arg_0 : texture_1d<u32>;
+
+fn textureDimensions_920006() -> u32 {
+  var arg_1 = 1i;
+  var res : u32 = textureDimensions(arg_0, arg_1);
+  return res;
+}
+
+@fragment
+fn fragment_main() {
+  prevent_dce = textureDimensions_920006();
+}
+
+@compute @workgroup_size(1)
+fn compute_main() {
+  prevent_dce = textureDimensions_920006();
+}
+
+struct VertexOutput {
+  @builtin(position)
+  pos : vec4<f32>,
+  @location(0) @interpolate(flat)
+  prevent_dce : u32,
+}
+
+@vertex
+fn vertex_main() -> VertexOutput {
+  var tint_symbol : VertexOutput;
+  tint_symbol.pos = vec4<f32>();
+  tint_symbol.prevent_dce = textureDimensions_920006();
+  return tint_symbol;
+}
+
+Failed to generate: :28:43 error: var: initializer type 'vec2<u32>' does not match store type 'u32'
+    %res:ptr<function, u32, read_write> = var, %13
+                                          ^^^
+
+:17:3 note: in block
+  $B2: {
+  ^^^
+
+note: # Disassembly
+VertexOutput = struct @align(16) {
+  pos:vec4<f32> @offset(0)
+  prevent_dce:u32 @offset(16)
+}
+
+vertex_main_outputs = struct @align(16) {
+  VertexOutput_prevent_dce:u32 @offset(0), @location(0), @interpolate(flat)
+  VertexOutput_pos:vec4<f32> @offset(16), @builtin(position)
+}
+
+$B1: {  # root
+  %prevent_dce:hlsl.byte_address_buffer<read_write> = var @binding_point(0, 0)
+  %arg_0:ptr<handle, texture_1d<u32>, read> = var @binding_point(1, 0)
+}
+
+%textureDimensions_920006 = func():u32 {
+  $B2: {
+    %arg_1:ptr<function, i32, read_write> = var, 1i
+    %5:texture_1d<u32> = load %arg_0
+    %6:i32 = load %arg_1
+    %7:u32 = convert %6
+    %8:ptr<function, vec2<u32>, read_write> = var
+    %9:ptr<function, u32, read_write> = access %8, 0u
+    %10:ptr<function, u32, read_write> = access %8, 1u
+    %11:void = %5.GetDimensions %7, %9, %10
+    %12:vec2<u32> = load %8
+    %13:vec2<u32> = swizzle %12, x
+    %res:ptr<function, u32, read_write> = var, %13
+    %15:u32 = load %res
+    ret %15
+  }
+}
+%fragment_main = @fragment func():void {
+  $B3: {
+    %17:u32 = call %textureDimensions_920006
+    %18:void = %prevent_dce.Store 0u, %17
+    ret
+  }
+}
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B4: {
+    %20:u32 = call %textureDimensions_920006
+    %21:void = %prevent_dce.Store 0u, %20
+    ret
+  }
+}
+%vertex_main_inner = func():VertexOutput {
+  $B5: {
+    %tint_symbol:ptr<function, VertexOutput, read_write> = var
+    %24:ptr<function, vec4<f32>, read_write> = access %tint_symbol, 0u
+    store %24, vec4<f32>(0.0f)
+    %25:ptr<function, u32, read_write> = access %tint_symbol, 1u
+    %26:u32 = call %textureDimensions_920006
+    store %25, %26
+    %27:VertexOutput = load %tint_symbol
+    ret %27
+  }
+}
+%vertex_main = @vertex func():vertex_main_outputs {
+  $B6: {
+    %29:VertexOutput = call %vertex_main_inner
+    %30:vec4<f32> = access %29, 0u
+    %31:u32 = access %29, 1u
+    %32:vertex_main_outputs = construct %31, %30
+    ret %32
+  }
+}
+
diff --git a/test/tint/builtins/gen/var/textureDimensions/92552e.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/textureDimensions/92552e.wgsl.expected.ir.dxc.hlsl
index 1fac62e..2ee6392 100644
--- a/test/tint/builtins/gen/var/textureDimensions/92552e.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureDimensions/92552e.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,19 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureDimensions
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWByteAddressBuffer prevent_dce : register(u0);
+RWTexture1D<int4> arg_0 : register(u0, space1);
+uint textureDimensions_92552e() {
+  uint v = 0u;
+  arg_0.GetDimensions(v);
+  uint res = v;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store(0u, textureDimensions_92552e());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store(0u, textureDimensions_92552e());
+}
+
diff --git a/test/tint/builtins/gen/var/textureDimensions/92552e.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/textureDimensions/92552e.wgsl.expected.ir.fxc.hlsl
index 1fac62e..2ee6392 100644
--- a/test/tint/builtins/gen/var/textureDimensions/92552e.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureDimensions/92552e.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,19 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureDimensions
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWByteAddressBuffer prevent_dce : register(u0);
+RWTexture1D<int4> arg_0 : register(u0, space1);
+uint textureDimensions_92552e() {
+  uint v = 0u;
+  arg_0.GetDimensions(v);
+  uint res = v;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store(0u, textureDimensions_92552e());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store(0u, textureDimensions_92552e());
+}
+
diff --git a/test/tint/builtins/gen/var/textureDimensions/9573f3.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/textureDimensions/9573f3.wgsl.expected.ir.dxc.hlsl
index 1fac62e..7bc54ce 100644
--- a/test/tint/builtins/gen/var/textureDimensions/9573f3.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureDimensions/9573f3.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,19 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureDimensions
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWByteAddressBuffer prevent_dce : register(u0);
+RWTexture2D<uint4> arg_0 : register(u0, space1);
+uint2 textureDimensions_9573f3() {
+  uint2 v = (0u).xx;
+  arg_0.GetDimensions(v[0u], v[1u]);
+  uint2 res = v;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store2(0u, textureDimensions_9573f3());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store2(0u, textureDimensions_9573f3());
+}
+
diff --git a/test/tint/builtins/gen/var/textureDimensions/9573f3.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/textureDimensions/9573f3.wgsl.expected.ir.fxc.hlsl
index 1fac62e..7bc54ce 100644
--- a/test/tint/builtins/gen/var/textureDimensions/9573f3.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureDimensions/9573f3.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,19 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureDimensions
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWByteAddressBuffer prevent_dce : register(u0);
+RWTexture2D<uint4> arg_0 : register(u0, space1);
+uint2 textureDimensions_9573f3() {
+  uint2 v = (0u).xx;
+  arg_0.GetDimensions(v[0u], v[1u]);
+  uint2 res = v;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store2(0u, textureDimensions_9573f3());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store2(0u, textureDimensions_9573f3());
+}
+
diff --git a/test/tint/builtins/gen/var/textureDimensions/965645.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/textureDimensions/965645.wgsl.expected.ir.dxc.hlsl
index 1fac62e..cea0708 100644
--- a/test/tint/builtins/gen/var/textureDimensions/965645.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureDimensions/965645.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,45 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  uint prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureDimensions
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation uint VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+Texture1D<uint4> arg_0 : register(t0, space1);
+uint textureDimensions_965645() {
+  uint v = 0u;
+  arg_0.GetDimensions(v);
+  uint res = v;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store(0u, textureDimensions_965645());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store(0u, textureDimensions_965645());
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = textureDimensions_965645();
+  VertexOutput v_1 = tint_symbol;
+  return v_1;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_2 = vertex_main_inner();
+  VertexOutput v_3 = v_2;
+  VertexOutput v_4 = v_2;
+  vertex_main_outputs v_5 = {v_4.prevent_dce, v_3.pos};
+  return v_5;
+}
+
diff --git a/test/tint/builtins/gen/var/textureDimensions/965645.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/textureDimensions/965645.wgsl.expected.ir.fxc.hlsl
index 1fac62e..cea0708 100644
--- a/test/tint/builtins/gen/var/textureDimensions/965645.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureDimensions/965645.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,45 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  uint prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureDimensions
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation uint VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+Texture1D<uint4> arg_0 : register(t0, space1);
+uint textureDimensions_965645() {
+  uint v = 0u;
+  arg_0.GetDimensions(v);
+  uint res = v;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store(0u, textureDimensions_965645());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store(0u, textureDimensions_965645());
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = textureDimensions_965645();
+  VertexOutput v_1 = tint_symbol;
+  return v_1;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_2 = vertex_main_inner();
+  VertexOutput v_3 = v_2;
+  VertexOutput v_4 = v_2;
+  vertex_main_outputs v_5 = {v_4.prevent_dce, v_3.pos};
+  return v_5;
+}
+
diff --git a/test/tint/builtins/gen/var/textureDimensions/98b2d3.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/textureDimensions/98b2d3.wgsl.expected.ir.dxc.hlsl
index 1fac62e..6efe7ad 100644
--- a/test/tint/builtins/gen/var/textureDimensions/98b2d3.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureDimensions/98b2d3.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,45 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  uint2 prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureDimensions
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation uint2 VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+TextureCubeArray<int4> arg_0 : register(t0, space1);
+uint2 textureDimensions_98b2d3() {
+  uint3 v = (0u).xxx;
+  arg_0.GetDimensions(v[0u], v[1u], v[2u]);
+  uint2 res = v.xy;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store2(0u, textureDimensions_98b2d3());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store2(0u, textureDimensions_98b2d3());
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = textureDimensions_98b2d3();
+  VertexOutput v_1 = tint_symbol;
+  return v_1;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_2 = vertex_main_inner();
+  VertexOutput v_3 = v_2;
+  VertexOutput v_4 = v_2;
+  vertex_main_outputs v_5 = {v_4.prevent_dce, v_3.pos};
+  return v_5;
+}
+
diff --git a/test/tint/builtins/gen/var/textureDimensions/98b2d3.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/textureDimensions/98b2d3.wgsl.expected.ir.fxc.hlsl
index 1fac62e..6efe7ad 100644
--- a/test/tint/builtins/gen/var/textureDimensions/98b2d3.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureDimensions/98b2d3.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,45 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  uint2 prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureDimensions
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation uint2 VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+TextureCubeArray<int4> arg_0 : register(t0, space1);
+uint2 textureDimensions_98b2d3() {
+  uint3 v = (0u).xxx;
+  arg_0.GetDimensions(v[0u], v[1u], v[2u]);
+  uint2 res = v.xy;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store2(0u, textureDimensions_98b2d3());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store2(0u, textureDimensions_98b2d3());
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = textureDimensions_98b2d3();
+  VertexOutput v_1 = tint_symbol;
+  return v_1;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_2 = vertex_main_inner();
+  VertexOutput v_3 = v_2;
+  VertexOutput v_4 = v_2;
+  vertex_main_outputs v_5 = {v_4.prevent_dce, v_3.pos};
+  return v_5;
+}
+
diff --git a/test/tint/builtins/gen/var/textureDimensions/991ea9.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/textureDimensions/991ea9.wgsl.expected.ir.dxc.hlsl
index 1fac62e..66963de 100644
--- a/test/tint/builtins/gen/var/textureDimensions/991ea9.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureDimensions/991ea9.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,47 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  uint2 prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureDimensions
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation uint2 VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+Texture2D arg_0 : register(t0, space1);
+uint2 textureDimensions_991ea9() {
+  uint arg_1 = 1u;
+  Texture2D v = arg_0;
+  uint3 v_1 = (0u).xxx;
+  v.GetDimensions(uint(arg_1), v_1[0u], v_1[1u], v_1[2u]);
+  uint2 res = v_1.xy;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store2(0u, textureDimensions_991ea9());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store2(0u, textureDimensions_991ea9());
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = textureDimensions_991ea9();
+  VertexOutput v_2 = tint_symbol;
+  return v_2;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_3 = vertex_main_inner();
+  VertexOutput v_4 = v_3;
+  VertexOutput v_5 = v_3;
+  vertex_main_outputs v_6 = {v_5.prevent_dce, v_4.pos};
+  return v_6;
+}
+
diff --git a/test/tint/builtins/gen/var/textureDimensions/991ea9.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/textureDimensions/991ea9.wgsl.expected.ir.fxc.hlsl
index 1fac62e..66963de 100644
--- a/test/tint/builtins/gen/var/textureDimensions/991ea9.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureDimensions/991ea9.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,47 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  uint2 prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureDimensions
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation uint2 VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+Texture2D arg_0 : register(t0, space1);
+uint2 textureDimensions_991ea9() {
+  uint arg_1 = 1u;
+  Texture2D v = arg_0;
+  uint3 v_1 = (0u).xxx;
+  v.GetDimensions(uint(arg_1), v_1[0u], v_1[1u], v_1[2u]);
+  uint2 res = v_1.xy;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store2(0u, textureDimensions_991ea9());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store2(0u, textureDimensions_991ea9());
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = textureDimensions_991ea9();
+  VertexOutput v_2 = tint_symbol;
+  return v_2;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_3 = vertex_main_inner();
+  VertexOutput v_4 = v_3;
+  VertexOutput v_5 = v_3;
+  vertex_main_outputs v_6 = {v_5.prevent_dce, v_4.pos};
+  return v_6;
+}
+
diff --git a/test/tint/builtins/gen/var/textureDimensions/9944d5.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/textureDimensions/9944d5.wgsl.expected.ir.dxc.hlsl
index 1fac62e..605bc6b 100644
--- a/test/tint/builtins/gen/var/textureDimensions/9944d5.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureDimensions/9944d5.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,19 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureDimensions
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWByteAddressBuffer prevent_dce : register(u0);
+RWTexture1D<uint4> arg_0 : register(u0, space1);
+uint textureDimensions_9944d5() {
+  uint v = 0u;
+  arg_0.GetDimensions(v);
+  uint res = v;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store(0u, textureDimensions_9944d5());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store(0u, textureDimensions_9944d5());
+}
+
diff --git a/test/tint/builtins/gen/var/textureDimensions/9944d5.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/textureDimensions/9944d5.wgsl.expected.ir.fxc.hlsl
index 1fac62e..605bc6b 100644
--- a/test/tint/builtins/gen/var/textureDimensions/9944d5.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureDimensions/9944d5.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,19 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureDimensions
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWByteAddressBuffer prevent_dce : register(u0);
+RWTexture1D<uint4> arg_0 : register(u0, space1);
+uint textureDimensions_9944d5() {
+  uint v = 0u;
+  arg_0.GetDimensions(v);
+  uint res = v;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store(0u, textureDimensions_9944d5());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store(0u, textureDimensions_9944d5());
+}
+
diff --git a/test/tint/builtins/gen/var/textureDimensions/9b10a0.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/textureDimensions/9b10a0.wgsl.expected.ir.dxc.hlsl
index 1fac62e..0e1b1d7 100644
--- a/test/tint/builtins/gen/var/textureDimensions/9b10a0.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureDimensions/9b10a0.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,45 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  uint2 prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureDimensions
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation uint2 VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+Texture2DArray<float4> arg_0 : register(t0, space1);
+uint2 textureDimensions_9b10a0() {
+  uint3 v = (0u).xxx;
+  arg_0.GetDimensions(v[0u], v[1u], v[2u]);
+  uint2 res = v.xy;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store2(0u, textureDimensions_9b10a0());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store2(0u, textureDimensions_9b10a0());
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = textureDimensions_9b10a0();
+  VertexOutput v_1 = tint_symbol;
+  return v_1;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_2 = vertex_main_inner();
+  VertexOutput v_3 = v_2;
+  VertexOutput v_4 = v_2;
+  vertex_main_outputs v_5 = {v_4.prevent_dce, v_3.pos};
+  return v_5;
+}
+
diff --git a/test/tint/builtins/gen/var/textureDimensions/9b10a0.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/textureDimensions/9b10a0.wgsl.expected.ir.fxc.hlsl
index 1fac62e..0e1b1d7 100644
--- a/test/tint/builtins/gen/var/textureDimensions/9b10a0.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureDimensions/9b10a0.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,45 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  uint2 prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureDimensions
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation uint2 VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+Texture2DArray<float4> arg_0 : register(t0, space1);
+uint2 textureDimensions_9b10a0() {
+  uint3 v = (0u).xxx;
+  arg_0.GetDimensions(v[0u], v[1u], v[2u]);
+  uint2 res = v.xy;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store2(0u, textureDimensions_9b10a0());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store2(0u, textureDimensions_9b10a0());
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = textureDimensions_9b10a0();
+  VertexOutput v_1 = tint_symbol;
+  return v_1;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_2 = vertex_main_inner();
+  VertexOutput v_3 = v_2;
+  VertexOutput v_4 = v_2;
+  vertex_main_outputs v_5 = {v_4.prevent_dce, v_3.pos};
+  return v_5;
+}
+
diff --git a/test/tint/builtins/gen/var/textureDimensions/9b223b.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/textureDimensions/9b223b.wgsl.expected.ir.dxc.hlsl
index 1fac62e..ff303b8 100644
--- a/test/tint/builtins/gen/var/textureDimensions/9b223b.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureDimensions/9b223b.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,45 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  uint2 prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureDimensions
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation uint2 VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+TextureCube<float4> arg_0 : register(t0, space1);
+uint2 textureDimensions_9b223b() {
+  uint2 v = (0u).xx;
+  arg_0.GetDimensions(v[0u], v[1u]);
+  uint2 res = v;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store2(0u, textureDimensions_9b223b());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store2(0u, textureDimensions_9b223b());
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = textureDimensions_9b223b();
+  VertexOutput v_1 = tint_symbol;
+  return v_1;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_2 = vertex_main_inner();
+  VertexOutput v_3 = v_2;
+  VertexOutput v_4 = v_2;
+  vertex_main_outputs v_5 = {v_4.prevent_dce, v_3.pos};
+  return v_5;
+}
+
diff --git a/test/tint/builtins/gen/var/textureDimensions/9b223b.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/textureDimensions/9b223b.wgsl.expected.ir.fxc.hlsl
index 1fac62e..ff303b8 100644
--- a/test/tint/builtins/gen/var/textureDimensions/9b223b.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureDimensions/9b223b.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,45 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  uint2 prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureDimensions
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation uint2 VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+TextureCube<float4> arg_0 : register(t0, space1);
+uint2 textureDimensions_9b223b() {
+  uint2 v = (0u).xx;
+  arg_0.GetDimensions(v[0u], v[1u]);
+  uint2 res = v;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store2(0u, textureDimensions_9b223b());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store2(0u, textureDimensions_9b223b());
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = textureDimensions_9b223b();
+  VertexOutput v_1 = tint_symbol;
+  return v_1;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_2 = vertex_main_inner();
+  VertexOutput v_3 = v_2;
+  VertexOutput v_4 = v_2;
+  vertex_main_outputs v_5 = {v_4.prevent_dce, v_3.pos};
+  return v_5;
+}
+
diff --git a/test/tint/builtins/gen/var/textureDimensions/9baf27.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/textureDimensions/9baf27.wgsl.expected.ir.dxc.hlsl
index 1fac62e..edb490f 100644
--- a/test/tint/builtins/gen/var/textureDimensions/9baf27.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureDimensions/9baf27.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,47 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  uint2 prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureDimensions
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation uint2 VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+TextureCube<uint4> arg_0 : register(t0, space1);
+uint2 textureDimensions_9baf27() {
+  uint arg_1 = 1u;
+  TextureCube<uint4> v = arg_0;
+  uint3 v_1 = (0u).xxx;
+  v.GetDimensions(uint(arg_1), v_1[0u], v_1[1u], v_1[2u]);
+  uint2 res = v_1.xy;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store2(0u, textureDimensions_9baf27());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store2(0u, textureDimensions_9baf27());
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = textureDimensions_9baf27();
+  VertexOutput v_2 = tint_symbol;
+  return v_2;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_3 = vertex_main_inner();
+  VertexOutput v_4 = v_3;
+  VertexOutput v_5 = v_3;
+  vertex_main_outputs v_6 = {v_5.prevent_dce, v_4.pos};
+  return v_6;
+}
+
diff --git a/test/tint/builtins/gen/var/textureDimensions/9baf27.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/textureDimensions/9baf27.wgsl.expected.ir.fxc.hlsl
index 1fac62e..edb490f 100644
--- a/test/tint/builtins/gen/var/textureDimensions/9baf27.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureDimensions/9baf27.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,47 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  uint2 prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureDimensions
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation uint2 VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+TextureCube<uint4> arg_0 : register(t0, space1);
+uint2 textureDimensions_9baf27() {
+  uint arg_1 = 1u;
+  TextureCube<uint4> v = arg_0;
+  uint3 v_1 = (0u).xxx;
+  v.GetDimensions(uint(arg_1), v_1[0u], v_1[1u], v_1[2u]);
+  uint2 res = v_1.xy;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store2(0u, textureDimensions_9baf27());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store2(0u, textureDimensions_9baf27());
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = textureDimensions_9baf27();
+  VertexOutput v_2 = tint_symbol;
+  return v_2;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_3 = vertex_main_inner();
+  VertexOutput v_4 = v_3;
+  VertexOutput v_5 = v_3;
+  vertex_main_outputs v_6 = {v_5.prevent_dce, v_4.pos};
+  return v_6;
+}
+
diff --git a/test/tint/builtins/gen/var/textureDimensions/9c7a00.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/textureDimensions/9c7a00.wgsl.expected.ir.dxc.hlsl
index 1fac62e..8183995 100644
--- a/test/tint/builtins/gen/var/textureDimensions/9c7a00.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureDimensions/9c7a00.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,115 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureDimensions
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : u32;
+
+@group(1) @binding(0) var arg_0 : texture_1d<u32>;
+
+fn textureDimensions_9c7a00() -> u32 {
+  var arg_1 = 1u;
+  var res : u32 = textureDimensions(arg_0, arg_1);
+  return res;
+}
+
+@fragment
+fn fragment_main() {
+  prevent_dce = textureDimensions_9c7a00();
+}
+
+@compute @workgroup_size(1)
+fn compute_main() {
+  prevent_dce = textureDimensions_9c7a00();
+}
+
+struct VertexOutput {
+  @builtin(position)
+  pos : vec4<f32>,
+  @location(0) @interpolate(flat)
+  prevent_dce : u32,
+}
+
+@vertex
+fn vertex_main() -> VertexOutput {
+  var tint_symbol : VertexOutput;
+  tint_symbol.pos = vec4<f32>();
+  tint_symbol.prevent_dce = textureDimensions_9c7a00();
+  return tint_symbol;
+}
+
+Failed to generate: :28:43 error: var: initializer type 'vec2<u32>' does not match store type 'u32'
+    %res:ptr<function, u32, read_write> = var, %13
+                                          ^^^
+
+:17:3 note: in block
+  $B2: {
+  ^^^
+
+note: # Disassembly
+VertexOutput = struct @align(16) {
+  pos:vec4<f32> @offset(0)
+  prevent_dce:u32 @offset(16)
+}
+
+vertex_main_outputs = struct @align(16) {
+  VertexOutput_prevent_dce:u32 @offset(0), @location(0), @interpolate(flat)
+  VertexOutput_pos:vec4<f32> @offset(16), @builtin(position)
+}
+
+$B1: {  # root
+  %prevent_dce:hlsl.byte_address_buffer<read_write> = var @binding_point(0, 0)
+  %arg_0:ptr<handle, texture_1d<u32>, read> = var @binding_point(1, 0)
+}
+
+%textureDimensions_9c7a00 = func():u32 {
+  $B2: {
+    %arg_1:ptr<function, u32, read_write> = var, 1u
+    %5:texture_1d<u32> = load %arg_0
+    %6:u32 = load %arg_1
+    %7:u32 = convert %6
+    %8:ptr<function, vec2<u32>, read_write> = var
+    %9:ptr<function, u32, read_write> = access %8, 0u
+    %10:ptr<function, u32, read_write> = access %8, 1u
+    %11:void = %5.GetDimensions %7, %9, %10
+    %12:vec2<u32> = load %8
+    %13:vec2<u32> = swizzle %12, x
+    %res:ptr<function, u32, read_write> = var, %13
+    %15:u32 = load %res
+    ret %15
+  }
+}
+%fragment_main = @fragment func():void {
+  $B3: {
+    %17:u32 = call %textureDimensions_9c7a00
+    %18:void = %prevent_dce.Store 0u, %17
+    ret
+  }
+}
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B4: {
+    %20:u32 = call %textureDimensions_9c7a00
+    %21:void = %prevent_dce.Store 0u, %20
+    ret
+  }
+}
+%vertex_main_inner = func():VertexOutput {
+  $B5: {
+    %tint_symbol:ptr<function, VertexOutput, read_write> = var
+    %24:ptr<function, vec4<f32>, read_write> = access %tint_symbol, 0u
+    store %24, vec4<f32>(0.0f)
+    %25:ptr<function, u32, read_write> = access %tint_symbol, 1u
+    %26:u32 = call %textureDimensions_9c7a00
+    store %25, %26
+    %27:VertexOutput = load %tint_symbol
+    ret %27
+  }
+}
+%vertex_main = @vertex func():vertex_main_outputs {
+  $B6: {
+    %29:VertexOutput = call %vertex_main_inner
+    %30:vec4<f32> = access %29, 0u
+    %31:u32 = access %29, 1u
+    %32:vertex_main_outputs = construct %31, %30
+    ret %32
+  }
+}
+
diff --git a/test/tint/builtins/gen/var/textureDimensions/9c7a00.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/textureDimensions/9c7a00.wgsl.expected.ir.fxc.hlsl
index 1fac62e..8183995 100644
--- a/test/tint/builtins/gen/var/textureDimensions/9c7a00.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureDimensions/9c7a00.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,115 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureDimensions
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : u32;
+
+@group(1) @binding(0) var arg_0 : texture_1d<u32>;
+
+fn textureDimensions_9c7a00() -> u32 {
+  var arg_1 = 1u;
+  var res : u32 = textureDimensions(arg_0, arg_1);
+  return res;
+}
+
+@fragment
+fn fragment_main() {
+  prevent_dce = textureDimensions_9c7a00();
+}
+
+@compute @workgroup_size(1)
+fn compute_main() {
+  prevent_dce = textureDimensions_9c7a00();
+}
+
+struct VertexOutput {
+  @builtin(position)
+  pos : vec4<f32>,
+  @location(0) @interpolate(flat)
+  prevent_dce : u32,
+}
+
+@vertex
+fn vertex_main() -> VertexOutput {
+  var tint_symbol : VertexOutput;
+  tint_symbol.pos = vec4<f32>();
+  tint_symbol.prevent_dce = textureDimensions_9c7a00();
+  return tint_symbol;
+}
+
+Failed to generate: :28:43 error: var: initializer type 'vec2<u32>' does not match store type 'u32'
+    %res:ptr<function, u32, read_write> = var, %13
+                                          ^^^
+
+:17:3 note: in block
+  $B2: {
+  ^^^
+
+note: # Disassembly
+VertexOutput = struct @align(16) {
+  pos:vec4<f32> @offset(0)
+  prevent_dce:u32 @offset(16)
+}
+
+vertex_main_outputs = struct @align(16) {
+  VertexOutput_prevent_dce:u32 @offset(0), @location(0), @interpolate(flat)
+  VertexOutput_pos:vec4<f32> @offset(16), @builtin(position)
+}
+
+$B1: {  # root
+  %prevent_dce:hlsl.byte_address_buffer<read_write> = var @binding_point(0, 0)
+  %arg_0:ptr<handle, texture_1d<u32>, read> = var @binding_point(1, 0)
+}
+
+%textureDimensions_9c7a00 = func():u32 {
+  $B2: {
+    %arg_1:ptr<function, u32, read_write> = var, 1u
+    %5:texture_1d<u32> = load %arg_0
+    %6:u32 = load %arg_1
+    %7:u32 = convert %6
+    %8:ptr<function, vec2<u32>, read_write> = var
+    %9:ptr<function, u32, read_write> = access %8, 0u
+    %10:ptr<function, u32, read_write> = access %8, 1u
+    %11:void = %5.GetDimensions %7, %9, %10
+    %12:vec2<u32> = load %8
+    %13:vec2<u32> = swizzle %12, x
+    %res:ptr<function, u32, read_write> = var, %13
+    %15:u32 = load %res
+    ret %15
+  }
+}
+%fragment_main = @fragment func():void {
+  $B3: {
+    %17:u32 = call %textureDimensions_9c7a00
+    %18:void = %prevent_dce.Store 0u, %17
+    ret
+  }
+}
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B4: {
+    %20:u32 = call %textureDimensions_9c7a00
+    %21:void = %prevent_dce.Store 0u, %20
+    ret
+  }
+}
+%vertex_main_inner = func():VertexOutput {
+  $B5: {
+    %tint_symbol:ptr<function, VertexOutput, read_write> = var
+    %24:ptr<function, vec4<f32>, read_write> = access %tint_symbol, 0u
+    store %24, vec4<f32>(0.0f)
+    %25:ptr<function, u32, read_write> = access %tint_symbol, 1u
+    %26:u32 = call %textureDimensions_9c7a00
+    store %25, %26
+    %27:VertexOutput = load %tint_symbol
+    ret %27
+  }
+}
+%vertex_main = @vertex func():vertex_main_outputs {
+  $B6: {
+    %29:VertexOutput = call %vertex_main_inner
+    %30:vec4<f32> = access %29, 0u
+    %31:u32 = access %29, 1u
+    %32:vertex_main_outputs = construct %31, %30
+    ret %32
+  }
+}
+
diff --git a/test/tint/builtins/gen/var/textureDimensions/9cd4ca.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/textureDimensions/9cd4ca.wgsl.expected.ir.dxc.hlsl
index 1fac62e..8db727b 100644
--- a/test/tint/builtins/gen/var/textureDimensions/9cd4ca.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureDimensions/9cd4ca.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,47 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  uint2 prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureDimensions
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation uint2 VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+TextureCube<uint4> arg_0 : register(t0, space1);
+uint2 textureDimensions_9cd4ca() {
+  int arg_1 = 1;
+  TextureCube<uint4> v = arg_0;
+  uint3 v_1 = (0u).xxx;
+  v.GetDimensions(uint(arg_1), v_1[0u], v_1[1u], v_1[2u]);
+  uint2 res = v_1.xy;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store2(0u, textureDimensions_9cd4ca());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store2(0u, textureDimensions_9cd4ca());
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = textureDimensions_9cd4ca();
+  VertexOutput v_2 = tint_symbol;
+  return v_2;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_3 = vertex_main_inner();
+  VertexOutput v_4 = v_3;
+  VertexOutput v_5 = v_3;
+  vertex_main_outputs v_6 = {v_5.prevent_dce, v_4.pos};
+  return v_6;
+}
+
diff --git a/test/tint/builtins/gen/var/textureDimensions/9cd4ca.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/textureDimensions/9cd4ca.wgsl.expected.ir.fxc.hlsl
index 1fac62e..8db727b 100644
--- a/test/tint/builtins/gen/var/textureDimensions/9cd4ca.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureDimensions/9cd4ca.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,47 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  uint2 prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureDimensions
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation uint2 VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+TextureCube<uint4> arg_0 : register(t0, space1);
+uint2 textureDimensions_9cd4ca() {
+  int arg_1 = 1;
+  TextureCube<uint4> v = arg_0;
+  uint3 v_1 = (0u).xxx;
+  v.GetDimensions(uint(arg_1), v_1[0u], v_1[1u], v_1[2u]);
+  uint2 res = v_1.xy;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store2(0u, textureDimensions_9cd4ca());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store2(0u, textureDimensions_9cd4ca());
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = textureDimensions_9cd4ca();
+  VertexOutput v_2 = tint_symbol;
+  return v_2;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_3 = vertex_main_inner();
+  VertexOutput v_4 = v_3;
+  VertexOutput v_5 = v_3;
+  vertex_main_outputs v_6 = {v_5.prevent_dce, v_4.pos};
+  return v_6;
+}
+
diff --git a/test/tint/builtins/gen/var/textureDimensions/9cd8ad.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/textureDimensions/9cd8ad.wgsl.expected.ir.dxc.hlsl
index 1fac62e..0f9f75d 100644
--- a/test/tint/builtins/gen/var/textureDimensions/9cd8ad.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureDimensions/9cd8ad.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,19 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureDimensions
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWByteAddressBuffer prevent_dce : register(u0);
+RWTexture3D<float4> arg_0 : register(u0, space1);
+uint3 textureDimensions_9cd8ad() {
+  uint3 v = (0u).xxx;
+  arg_0.GetDimensions(v[0u], v[1u], v[2u]);
+  uint3 res = v;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store3(0u, textureDimensions_9cd8ad());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store3(0u, textureDimensions_9cd8ad());
+}
+
diff --git a/test/tint/builtins/gen/var/textureDimensions/9cd8ad.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/textureDimensions/9cd8ad.wgsl.expected.ir.fxc.hlsl
index 1fac62e..0f9f75d 100644
--- a/test/tint/builtins/gen/var/textureDimensions/9cd8ad.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureDimensions/9cd8ad.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,19 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureDimensions
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWByteAddressBuffer prevent_dce : register(u0);
+RWTexture3D<float4> arg_0 : register(u0, space1);
+uint3 textureDimensions_9cd8ad() {
+  uint3 v = (0u).xxx;
+  arg_0.GetDimensions(v[0u], v[1u], v[2u]);
+  uint3 res = v;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store3(0u, textureDimensions_9cd8ad());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store3(0u, textureDimensions_9cd8ad());
+}
+
diff --git a/test/tint/builtins/gen/var/textureDimensions/9d0bac.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/textureDimensions/9d0bac.wgsl.expected.ir.dxc.hlsl
index 1fac62e..78f2718 100644
--- a/test/tint/builtins/gen/var/textureDimensions/9d0bac.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureDimensions/9d0bac.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,45 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  uint2 prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureDimensions
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation uint2 VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+Texture2D<float4> arg_0 : register(t0, space1);
+uint2 textureDimensions_9d0bac() {
+  uint2 v = (0u).xx;
+  arg_0.GetDimensions(v[0u], v[1u]);
+  uint2 res = v;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store2(0u, textureDimensions_9d0bac());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store2(0u, textureDimensions_9d0bac());
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = textureDimensions_9d0bac();
+  VertexOutput v_1 = tint_symbol;
+  return v_1;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_2 = vertex_main_inner();
+  VertexOutput v_3 = v_2;
+  VertexOutput v_4 = v_2;
+  vertex_main_outputs v_5 = {v_4.prevent_dce, v_3.pos};
+  return v_5;
+}
+
diff --git a/test/tint/builtins/gen/var/textureDimensions/9d0bac.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/textureDimensions/9d0bac.wgsl.expected.ir.fxc.hlsl
index 1fac62e..78f2718 100644
--- a/test/tint/builtins/gen/var/textureDimensions/9d0bac.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureDimensions/9d0bac.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,45 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  uint2 prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureDimensions
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation uint2 VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+Texture2D<float4> arg_0 : register(t0, space1);
+uint2 textureDimensions_9d0bac() {
+  uint2 v = (0u).xx;
+  arg_0.GetDimensions(v[0u], v[1u]);
+  uint2 res = v;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store2(0u, textureDimensions_9d0bac());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store2(0u, textureDimensions_9d0bac());
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = textureDimensions_9d0bac();
+  VertexOutput v_1 = tint_symbol;
+  return v_1;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_2 = vertex_main_inner();
+  VertexOutput v_3 = v_2;
+  VertexOutput v_4 = v_2;
+  vertex_main_outputs v_5 = {v_4.prevent_dce, v_3.pos};
+  return v_5;
+}
+
diff --git a/test/tint/builtins/gen/var/textureDimensions/9d68b8.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/textureDimensions/9d68b8.wgsl.expected.ir.dxc.hlsl
index 1fac62e..78f9566 100644
--- a/test/tint/builtins/gen/var/textureDimensions/9d68b8.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureDimensions/9d68b8.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,45 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  uint prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureDimensions
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation uint VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+Texture1D<float4> arg_0 : register(t0, space1);
+uint textureDimensions_9d68b8() {
+  uint v = 0u;
+  arg_0.GetDimensions(v);
+  uint res = v;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store(0u, textureDimensions_9d68b8());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store(0u, textureDimensions_9d68b8());
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = textureDimensions_9d68b8();
+  VertexOutput v_1 = tint_symbol;
+  return v_1;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_2 = vertex_main_inner();
+  VertexOutput v_3 = v_2;
+  VertexOutput v_4 = v_2;
+  vertex_main_outputs v_5 = {v_4.prevent_dce, v_3.pos};
+  return v_5;
+}
+
diff --git a/test/tint/builtins/gen/var/textureDimensions/9d68b8.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/textureDimensions/9d68b8.wgsl.expected.ir.fxc.hlsl
index 1fac62e..78f9566 100644
--- a/test/tint/builtins/gen/var/textureDimensions/9d68b8.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureDimensions/9d68b8.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,45 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  uint prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureDimensions
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation uint VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+Texture1D<float4> arg_0 : register(t0, space1);
+uint textureDimensions_9d68b8() {
+  uint v = 0u;
+  arg_0.GetDimensions(v);
+  uint res = v;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store(0u, textureDimensions_9d68b8());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store(0u, textureDimensions_9d68b8());
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = textureDimensions_9d68b8();
+  VertexOutput v_1 = tint_symbol;
+  return v_1;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_2 = vertex_main_inner();
+  VertexOutput v_3 = v_2;
+  VertexOutput v_4 = v_2;
+  vertex_main_outputs v_5 = {v_4.prevent_dce, v_3.pos};
+  return v_5;
+}
+
diff --git a/test/tint/builtins/gen/var/textureDimensions/9dc27a.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/textureDimensions/9dc27a.wgsl.expected.ir.dxc.hlsl
index 1fac62e..4f3285b 100644
--- a/test/tint/builtins/gen/var/textureDimensions/9dc27a.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureDimensions/9dc27a.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,45 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  uint2 prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureDimensions
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation uint2 VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+Texture2DArray<float4> arg_0 : register(t0, space1);
+uint2 textureDimensions_9dc27a() {
+  uint3 v = (0u).xxx;
+  arg_0.GetDimensions(v[0u], v[1u], v[2u]);
+  uint2 res = v.xy;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store2(0u, textureDimensions_9dc27a());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store2(0u, textureDimensions_9dc27a());
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = textureDimensions_9dc27a();
+  VertexOutput v_1 = tint_symbol;
+  return v_1;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_2 = vertex_main_inner();
+  VertexOutput v_3 = v_2;
+  VertexOutput v_4 = v_2;
+  vertex_main_outputs v_5 = {v_4.prevent_dce, v_3.pos};
+  return v_5;
+}
+
diff --git a/test/tint/builtins/gen/var/textureDimensions/9dc27a.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/textureDimensions/9dc27a.wgsl.expected.ir.fxc.hlsl
index 1fac62e..4f3285b 100644
--- a/test/tint/builtins/gen/var/textureDimensions/9dc27a.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureDimensions/9dc27a.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,45 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  uint2 prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureDimensions
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation uint2 VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+Texture2DArray<float4> arg_0 : register(t0, space1);
+uint2 textureDimensions_9dc27a() {
+  uint3 v = (0u).xxx;
+  arg_0.GetDimensions(v[0u], v[1u], v[2u]);
+  uint2 res = v.xy;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store2(0u, textureDimensions_9dc27a());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store2(0u, textureDimensions_9dc27a());
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = textureDimensions_9dc27a();
+  VertexOutput v_1 = tint_symbol;
+  return v_1;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_2 = vertex_main_inner();
+  VertexOutput v_3 = v_2;
+  VertexOutput v_4 = v_2;
+  vertex_main_outputs v_5 = {v_4.prevent_dce, v_3.pos};
+  return v_5;
+}
+
diff --git a/test/tint/builtins/gen/var/textureDimensions/9e0794.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/textureDimensions/9e0794.wgsl.expected.ir.dxc.hlsl
index 1fac62e..08d1e6c 100644
--- a/test/tint/builtins/gen/var/textureDimensions/9e0794.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureDimensions/9e0794.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,47 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  uint2 prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureDimensions
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation uint2 VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+Texture2DArray<uint4> arg_0 : register(t0, space1);
+uint2 textureDimensions_9e0794() {
+  int arg_1 = 1;
+  Texture2DArray<uint4> v = arg_0;
+  uint4 v_1 = (0u).xxxx;
+  v.GetDimensions(uint(arg_1), v_1[0u], v_1[1u], v_1[2u], v_1[3u]);
+  uint2 res = v_1.xy;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store2(0u, textureDimensions_9e0794());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store2(0u, textureDimensions_9e0794());
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = textureDimensions_9e0794();
+  VertexOutput v_2 = tint_symbol;
+  return v_2;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_3 = vertex_main_inner();
+  VertexOutput v_4 = v_3;
+  VertexOutput v_5 = v_3;
+  vertex_main_outputs v_6 = {v_5.prevent_dce, v_4.pos};
+  return v_6;
+}
+
diff --git a/test/tint/builtins/gen/var/textureDimensions/9e0794.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/textureDimensions/9e0794.wgsl.expected.ir.fxc.hlsl
index 1fac62e..08d1e6c 100644
--- a/test/tint/builtins/gen/var/textureDimensions/9e0794.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureDimensions/9e0794.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,47 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  uint2 prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureDimensions
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation uint2 VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+Texture2DArray<uint4> arg_0 : register(t0, space1);
+uint2 textureDimensions_9e0794() {
+  int arg_1 = 1;
+  Texture2DArray<uint4> v = arg_0;
+  uint4 v_1 = (0u).xxxx;
+  v.GetDimensions(uint(arg_1), v_1[0u], v_1[1u], v_1[2u], v_1[3u]);
+  uint2 res = v_1.xy;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store2(0u, textureDimensions_9e0794());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store2(0u, textureDimensions_9e0794());
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = textureDimensions_9e0794();
+  VertexOutput v_2 = tint_symbol;
+  return v_2;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_3 = vertex_main_inner();
+  VertexOutput v_4 = v_3;
+  VertexOutput v_5 = v_3;
+  vertex_main_outputs v_6 = {v_5.prevent_dce, v_4.pos};
+  return v_6;
+}
+
diff --git a/test/tint/builtins/gen/var/textureDimensions/9fcc3b.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/textureDimensions/9fcc3b.wgsl.expected.ir.dxc.hlsl
index 1fac62e..b6f08cc 100644
--- a/test/tint/builtins/gen/var/textureDimensions/9fcc3b.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureDimensions/9fcc3b.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,45 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  uint2 prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureDimensions
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation uint2 VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+TextureCubeArray arg_0 : register(t0, space1);
+uint2 textureDimensions_9fcc3b() {
+  uint3 v = (0u).xxx;
+  arg_0.GetDimensions(v[0u], v[1u], v[2u]);
+  uint2 res = v.xy;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store2(0u, textureDimensions_9fcc3b());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store2(0u, textureDimensions_9fcc3b());
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = textureDimensions_9fcc3b();
+  VertexOutput v_1 = tint_symbol;
+  return v_1;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_2 = vertex_main_inner();
+  VertexOutput v_3 = v_2;
+  VertexOutput v_4 = v_2;
+  vertex_main_outputs v_5 = {v_4.prevent_dce, v_3.pos};
+  return v_5;
+}
+
diff --git a/test/tint/builtins/gen/var/textureDimensions/9fcc3b.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/textureDimensions/9fcc3b.wgsl.expected.ir.fxc.hlsl
index 1fac62e..b6f08cc 100644
--- a/test/tint/builtins/gen/var/textureDimensions/9fcc3b.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureDimensions/9fcc3b.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,45 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  uint2 prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureDimensions
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation uint2 VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+TextureCubeArray arg_0 : register(t0, space1);
+uint2 textureDimensions_9fcc3b() {
+  uint3 v = (0u).xxx;
+  arg_0.GetDimensions(v[0u], v[1u], v[2u]);
+  uint2 res = v.xy;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store2(0u, textureDimensions_9fcc3b());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store2(0u, textureDimensions_9fcc3b());
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = textureDimensions_9fcc3b();
+  VertexOutput v_1 = tint_symbol;
+  return v_1;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_2 = vertex_main_inner();
+  VertexOutput v_3 = v_2;
+  VertexOutput v_4 = v_2;
+  vertex_main_outputs v_5 = {v_4.prevent_dce, v_3.pos};
+  return v_5;
+}
+
diff --git a/test/tint/builtins/gen/var/textureDimensions/a105a5.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/textureDimensions/a105a5.wgsl.expected.ir.dxc.hlsl
index 1fac62e..d0f64b6 100644
--- a/test/tint/builtins/gen/var/textureDimensions/a105a5.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureDimensions/a105a5.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,19 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureDimensions
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWByteAddressBuffer prevent_dce : register(u0);
+RWTexture3D<uint4> arg_0 : register(u0, space1);
+uint3 textureDimensions_a105a5() {
+  uint3 v = (0u).xxx;
+  arg_0.GetDimensions(v[0u], v[1u], v[2u]);
+  uint3 res = v;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store3(0u, textureDimensions_a105a5());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store3(0u, textureDimensions_a105a5());
+}
+
diff --git a/test/tint/builtins/gen/var/textureDimensions/a105a5.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/textureDimensions/a105a5.wgsl.expected.ir.fxc.hlsl
index 1fac62e..d0f64b6 100644
--- a/test/tint/builtins/gen/var/textureDimensions/a105a5.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureDimensions/a105a5.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,19 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureDimensions
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWByteAddressBuffer prevent_dce : register(u0);
+RWTexture3D<uint4> arg_0 : register(u0, space1);
+uint3 textureDimensions_a105a5() {
+  uint3 v = (0u).xxx;
+  arg_0.GetDimensions(v[0u], v[1u], v[2u]);
+  uint3 res = v;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store3(0u, textureDimensions_a105a5());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store3(0u, textureDimensions_a105a5());
+}
+
diff --git a/test/tint/builtins/gen/var/textureDimensions/a14386.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/textureDimensions/a14386.wgsl.expected.ir.dxc.hlsl
index 1fac62e..c9d4718 100644
--- a/test/tint/builtins/gen/var/textureDimensions/a14386.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureDimensions/a14386.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,19 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureDimensions
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWByteAddressBuffer prevent_dce : register(u0);
+RWTexture2D<float4> arg_0 : register(u0, space1);
+uint2 textureDimensions_a14386() {
+  uint2 v = (0u).xx;
+  arg_0.GetDimensions(v[0u], v[1u]);
+  uint2 res = v;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store2(0u, textureDimensions_a14386());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store2(0u, textureDimensions_a14386());
+}
+
diff --git a/test/tint/builtins/gen/var/textureDimensions/a14386.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/textureDimensions/a14386.wgsl.expected.ir.fxc.hlsl
index 1fac62e..c9d4718 100644
--- a/test/tint/builtins/gen/var/textureDimensions/a14386.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureDimensions/a14386.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,19 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureDimensions
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWByteAddressBuffer prevent_dce : register(u0);
+RWTexture2D<float4> arg_0 : register(u0, space1);
+uint2 textureDimensions_a14386() {
+  uint2 v = (0u).xx;
+  arg_0.GetDimensions(v[0u], v[1u]);
+  uint2 res = v;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store2(0u, textureDimensions_a14386());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store2(0u, textureDimensions_a14386());
+}
+
diff --git a/test/tint/builtins/gen/var/textureDimensions/a1598a.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/textureDimensions/a1598a.wgsl.expected.ir.dxc.hlsl
index 1fac62e..b675549 100644
--- a/test/tint/builtins/gen/var/textureDimensions/a1598a.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureDimensions/a1598a.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,45 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  uint2 prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureDimensions
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation uint2 VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+TextureCubeArray<uint4> arg_0 : register(t0, space1);
+uint2 textureDimensions_a1598a() {
+  uint3 v = (0u).xxx;
+  arg_0.GetDimensions(v[0u], v[1u], v[2u]);
+  uint2 res = v.xy;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store2(0u, textureDimensions_a1598a());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store2(0u, textureDimensions_a1598a());
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = textureDimensions_a1598a();
+  VertexOutput v_1 = tint_symbol;
+  return v_1;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_2 = vertex_main_inner();
+  VertexOutput v_3 = v_2;
+  VertexOutput v_4 = v_2;
+  vertex_main_outputs v_5 = {v_4.prevent_dce, v_3.pos};
+  return v_5;
+}
+
diff --git a/test/tint/builtins/gen/var/textureDimensions/a1598a.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/textureDimensions/a1598a.wgsl.expected.ir.fxc.hlsl
index 1fac62e..b675549 100644
--- a/test/tint/builtins/gen/var/textureDimensions/a1598a.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureDimensions/a1598a.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,45 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  uint2 prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureDimensions
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation uint2 VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+TextureCubeArray<uint4> arg_0 : register(t0, space1);
+uint2 textureDimensions_a1598a() {
+  uint3 v = (0u).xxx;
+  arg_0.GetDimensions(v[0u], v[1u], v[2u]);
+  uint2 res = v.xy;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store2(0u, textureDimensions_a1598a());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store2(0u, textureDimensions_a1598a());
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = textureDimensions_a1598a();
+  VertexOutput v_1 = tint_symbol;
+  return v_1;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_2 = vertex_main_inner();
+  VertexOutput v_3 = v_2;
+  VertexOutput v_4 = v_2;
+  vertex_main_outputs v_5 = {v_4.prevent_dce, v_3.pos};
+  return v_5;
+}
+
diff --git a/test/tint/builtins/gen/var/textureDimensions/a20ba2.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/textureDimensions/a20ba2.wgsl.expected.ir.dxc.hlsl
index 1fac62e..23cce53 100644
--- a/test/tint/builtins/gen/var/textureDimensions/a20ba2.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureDimensions/a20ba2.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,19 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureDimensions
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWByteAddressBuffer prevent_dce : register(u0);
+RWTexture3D<float4> arg_0 : register(u0, space1);
+uint3 textureDimensions_a20ba2() {
+  uint3 v = (0u).xxx;
+  arg_0.GetDimensions(v[0u], v[1u], v[2u]);
+  uint3 res = v;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store3(0u, textureDimensions_a20ba2());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store3(0u, textureDimensions_a20ba2());
+}
+
diff --git a/test/tint/builtins/gen/var/textureDimensions/a20ba2.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/textureDimensions/a20ba2.wgsl.expected.ir.fxc.hlsl
index 1fac62e..23cce53 100644
--- a/test/tint/builtins/gen/var/textureDimensions/a20ba2.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureDimensions/a20ba2.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,19 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureDimensions
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWByteAddressBuffer prevent_dce : register(u0);
+RWTexture3D<float4> arg_0 : register(u0, space1);
+uint3 textureDimensions_a20ba2() {
+  uint3 v = (0u).xxx;
+  arg_0.GetDimensions(v[0u], v[1u], v[2u]);
+  uint3 res = v;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store3(0u, textureDimensions_a20ba2());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store3(0u, textureDimensions_a20ba2());
+}
+
diff --git a/test/tint/builtins/gen/var/textureDimensions/a25d9b.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/textureDimensions/a25d9b.wgsl.expected.ir.dxc.hlsl
index 1fac62e..7d8c807 100644
--- a/test/tint/builtins/gen/var/textureDimensions/a25d9b.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureDimensions/a25d9b.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,45 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  uint3 prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureDimensions
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation uint3 VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+Texture3D<float4> arg_0 : register(t0, space1);
+uint3 textureDimensions_a25d9b() {
+  uint3 v = (0u).xxx;
+  arg_0.GetDimensions(v[0u], v[1u], v[2u]);
+  uint3 res = v;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store3(0u, textureDimensions_a25d9b());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store3(0u, textureDimensions_a25d9b());
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = textureDimensions_a25d9b();
+  VertexOutput v_1 = tint_symbol;
+  return v_1;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_2 = vertex_main_inner();
+  VertexOutput v_3 = v_2;
+  VertexOutput v_4 = v_2;
+  vertex_main_outputs v_5 = {v_4.prevent_dce, v_3.pos};
+  return v_5;
+}
+
diff --git a/test/tint/builtins/gen/var/textureDimensions/a25d9b.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/textureDimensions/a25d9b.wgsl.expected.ir.fxc.hlsl
index 1fac62e..7d8c807 100644
--- a/test/tint/builtins/gen/var/textureDimensions/a25d9b.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureDimensions/a25d9b.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,45 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  uint3 prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureDimensions
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation uint3 VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+Texture3D<float4> arg_0 : register(t0, space1);
+uint3 textureDimensions_a25d9b() {
+  uint3 v = (0u).xxx;
+  arg_0.GetDimensions(v[0u], v[1u], v[2u]);
+  uint3 res = v;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store3(0u, textureDimensions_a25d9b());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store3(0u, textureDimensions_a25d9b());
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = textureDimensions_a25d9b();
+  VertexOutput v_1 = tint_symbol;
+  return v_1;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_2 = vertex_main_inner();
+  VertexOutput v_3 = v_2;
+  VertexOutput v_4 = v_2;
+  vertex_main_outputs v_5 = {v_4.prevent_dce, v_3.pos};
+  return v_5;
+}
+
diff --git a/test/tint/builtins/gen/var/textureDimensions/a2ba5e.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/textureDimensions/a2ba5e.wgsl.expected.ir.dxc.hlsl
index 1fac62e..29e4eda 100644
--- a/test/tint/builtins/gen/var/textureDimensions/a2ba5e.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureDimensions/a2ba5e.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,47 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  uint2 prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureDimensions
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation uint2 VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+TextureCube<int4> arg_0 : register(t0, space1);
+uint2 textureDimensions_a2ba5e() {
+  int arg_1 = 1;
+  TextureCube<int4> v = arg_0;
+  uint3 v_1 = (0u).xxx;
+  v.GetDimensions(uint(arg_1), v_1[0u], v_1[1u], v_1[2u]);
+  uint2 res = v_1.xy;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store2(0u, textureDimensions_a2ba5e());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store2(0u, textureDimensions_a2ba5e());
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = textureDimensions_a2ba5e();
+  VertexOutput v_2 = tint_symbol;
+  return v_2;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_3 = vertex_main_inner();
+  VertexOutput v_4 = v_3;
+  VertexOutput v_5 = v_3;
+  vertex_main_outputs v_6 = {v_5.prevent_dce, v_4.pos};
+  return v_6;
+}
+
diff --git a/test/tint/builtins/gen/var/textureDimensions/a2ba5e.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/textureDimensions/a2ba5e.wgsl.expected.ir.fxc.hlsl
index 1fac62e..29e4eda 100644
--- a/test/tint/builtins/gen/var/textureDimensions/a2ba5e.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureDimensions/a2ba5e.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,47 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  uint2 prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureDimensions
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation uint2 VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+TextureCube<int4> arg_0 : register(t0, space1);
+uint2 textureDimensions_a2ba5e() {
+  int arg_1 = 1;
+  TextureCube<int4> v = arg_0;
+  uint3 v_1 = (0u).xxx;
+  v.GetDimensions(uint(arg_1), v_1[0u], v_1[1u], v_1[2u]);
+  uint2 res = v_1.xy;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store2(0u, textureDimensions_a2ba5e());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store2(0u, textureDimensions_a2ba5e());
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = textureDimensions_a2ba5e();
+  VertexOutput v_2 = tint_symbol;
+  return v_2;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_3 = vertex_main_inner();
+  VertexOutput v_4 = v_3;
+  VertexOutput v_5 = v_3;
+  vertex_main_outputs v_6 = {v_5.prevent_dce, v_4.pos};
+  return v_6;
+}
+
diff --git a/test/tint/builtins/gen/var/textureDimensions/a3ea91.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/textureDimensions/a3ea91.wgsl.expected.ir.dxc.hlsl
index 1fac62e..deda8d3 100644
--- a/test/tint/builtins/gen/var/textureDimensions/a3ea91.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureDimensions/a3ea91.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,45 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  uint3 prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureDimensions
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation uint3 VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+Texture3D<float4> arg_0 : register(t0, space1);
+uint3 textureDimensions_a3ea91() {
+  uint3 v = (0u).xxx;
+  arg_0.GetDimensions(v[0u], v[1u], v[2u]);
+  uint3 res = v;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store3(0u, textureDimensions_a3ea91());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store3(0u, textureDimensions_a3ea91());
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = textureDimensions_a3ea91();
+  VertexOutput v_1 = tint_symbol;
+  return v_1;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_2 = vertex_main_inner();
+  VertexOutput v_3 = v_2;
+  VertexOutput v_4 = v_2;
+  vertex_main_outputs v_5 = {v_4.prevent_dce, v_3.pos};
+  return v_5;
+}
+
diff --git a/test/tint/builtins/gen/var/textureDimensions/a3ea91.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/textureDimensions/a3ea91.wgsl.expected.ir.fxc.hlsl
index 1fac62e..deda8d3 100644
--- a/test/tint/builtins/gen/var/textureDimensions/a3ea91.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureDimensions/a3ea91.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,45 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  uint3 prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureDimensions
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation uint3 VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+Texture3D<float4> arg_0 : register(t0, space1);
+uint3 textureDimensions_a3ea91() {
+  uint3 v = (0u).xxx;
+  arg_0.GetDimensions(v[0u], v[1u], v[2u]);
+  uint3 res = v;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store3(0u, textureDimensions_a3ea91());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store3(0u, textureDimensions_a3ea91());
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = textureDimensions_a3ea91();
+  VertexOutput v_1 = tint_symbol;
+  return v_1;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_2 = vertex_main_inner();
+  VertexOutput v_3 = v_2;
+  VertexOutput v_4 = v_2;
+  vertex_main_outputs v_5 = {v_4.prevent_dce, v_3.pos};
+  return v_5;
+}
+
diff --git a/test/tint/builtins/gen/var/textureDimensions/a48049.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/textureDimensions/a48049.wgsl.expected.ir.dxc.hlsl
index 1fac62e..ce33ef5 100644
--- a/test/tint/builtins/gen/var/textureDimensions/a48049.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureDimensions/a48049.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,47 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  uint2 prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureDimensions
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation uint2 VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+Texture2D<int4> arg_0 : register(t0, space1);
+uint2 textureDimensions_a48049() {
+  uint arg_1 = 1u;
+  Texture2D<int4> v = arg_0;
+  uint3 v_1 = (0u).xxx;
+  v.GetDimensions(uint(arg_1), v_1[0u], v_1[1u], v_1[2u]);
+  uint2 res = v_1.xy;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store2(0u, textureDimensions_a48049());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store2(0u, textureDimensions_a48049());
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = textureDimensions_a48049();
+  VertexOutput v_2 = tint_symbol;
+  return v_2;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_3 = vertex_main_inner();
+  VertexOutput v_4 = v_3;
+  VertexOutput v_5 = v_3;
+  vertex_main_outputs v_6 = {v_5.prevent_dce, v_4.pos};
+  return v_6;
+}
+
diff --git a/test/tint/builtins/gen/var/textureDimensions/a48049.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/textureDimensions/a48049.wgsl.expected.ir.fxc.hlsl
index 1fac62e..ce33ef5 100644
--- a/test/tint/builtins/gen/var/textureDimensions/a48049.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureDimensions/a48049.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,47 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  uint2 prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureDimensions
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation uint2 VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+Texture2D<int4> arg_0 : register(t0, space1);
+uint2 textureDimensions_a48049() {
+  uint arg_1 = 1u;
+  Texture2D<int4> v = arg_0;
+  uint3 v_1 = (0u).xxx;
+  v.GetDimensions(uint(arg_1), v_1[0u], v_1[1u], v_1[2u]);
+  uint2 res = v_1.xy;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store2(0u, textureDimensions_a48049());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store2(0u, textureDimensions_a48049());
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = textureDimensions_a48049();
+  VertexOutput v_2 = tint_symbol;
+  return v_2;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_3 = vertex_main_inner();
+  VertexOutput v_4 = v_3;
+  VertexOutput v_5 = v_3;
+  vertex_main_outputs v_6 = {v_5.prevent_dce, v_4.pos};
+  return v_6;
+}
+
diff --git a/test/tint/builtins/gen/var/textureDimensions/a4cd56.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/textureDimensions/a4cd56.wgsl.expected.ir.dxc.hlsl
index 1fac62e..d44af22 100644
--- a/test/tint/builtins/gen/var/textureDimensions/a4cd56.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureDimensions/a4cd56.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,45 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  uint2 prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureDimensions
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation uint2 VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+Texture2DArray arg_0 : register(t0, space1);
+uint2 textureDimensions_a4cd56() {
+  uint3 v = (0u).xxx;
+  arg_0.GetDimensions(v[0u], v[1u], v[2u]);
+  uint2 res = v.xy;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store2(0u, textureDimensions_a4cd56());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store2(0u, textureDimensions_a4cd56());
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = textureDimensions_a4cd56();
+  VertexOutput v_1 = tint_symbol;
+  return v_1;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_2 = vertex_main_inner();
+  VertexOutput v_3 = v_2;
+  VertexOutput v_4 = v_2;
+  vertex_main_outputs v_5 = {v_4.prevent_dce, v_3.pos};
+  return v_5;
+}
+
diff --git a/test/tint/builtins/gen/var/textureDimensions/a4cd56.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/textureDimensions/a4cd56.wgsl.expected.ir.fxc.hlsl
index 1fac62e..d44af22 100644
--- a/test/tint/builtins/gen/var/textureDimensions/a4cd56.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureDimensions/a4cd56.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,45 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  uint2 prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureDimensions
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation uint2 VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+Texture2DArray arg_0 : register(t0, space1);
+uint2 textureDimensions_a4cd56() {
+  uint3 v = (0u).xxx;
+  arg_0.GetDimensions(v[0u], v[1u], v[2u]);
+  uint2 res = v.xy;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store2(0u, textureDimensions_a4cd56());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store2(0u, textureDimensions_a4cd56());
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = textureDimensions_a4cd56();
+  VertexOutput v_1 = tint_symbol;
+  return v_1;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_2 = vertex_main_inner();
+  VertexOutput v_3 = v_2;
+  VertexOutput v_4 = v_2;
+  vertex_main_outputs v_5 = {v_4.prevent_dce, v_3.pos};
+  return v_5;
+}
+
diff --git a/test/tint/builtins/gen/var/textureDimensions/a65776.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/textureDimensions/a65776.wgsl.expected.ir.dxc.hlsl
index 1fac62e..6df2dd1 100644
--- a/test/tint/builtins/gen/var/textureDimensions/a65776.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureDimensions/a65776.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,45 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  uint2 prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureDimensions
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation uint2 VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+Texture2D<int4> arg_0 : register(t0, space1);
+uint2 textureDimensions_a65776() {
+  uint2 v = (0u).xx;
+  arg_0.GetDimensions(v[0u], v[1u]);
+  uint2 res = v;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store2(0u, textureDimensions_a65776());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store2(0u, textureDimensions_a65776());
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = textureDimensions_a65776();
+  VertexOutput v_1 = tint_symbol;
+  return v_1;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_2 = vertex_main_inner();
+  VertexOutput v_3 = v_2;
+  VertexOutput v_4 = v_2;
+  vertex_main_outputs v_5 = {v_4.prevent_dce, v_3.pos};
+  return v_5;
+}
+
diff --git a/test/tint/builtins/gen/var/textureDimensions/a65776.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/textureDimensions/a65776.wgsl.expected.ir.fxc.hlsl
index 1fac62e..6df2dd1 100644
--- a/test/tint/builtins/gen/var/textureDimensions/a65776.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureDimensions/a65776.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,45 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  uint2 prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureDimensions
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation uint2 VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+Texture2D<int4> arg_0 : register(t0, space1);
+uint2 textureDimensions_a65776() {
+  uint2 v = (0u).xx;
+  arg_0.GetDimensions(v[0u], v[1u]);
+  uint2 res = v;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store2(0u, textureDimensions_a65776());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store2(0u, textureDimensions_a65776());
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = textureDimensions_a65776();
+  VertexOutput v_1 = tint_symbol;
+  return v_1;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_2 = vertex_main_inner();
+  VertexOutput v_3 = v_2;
+  VertexOutput v_4 = v_2;
+  vertex_main_outputs v_5 = {v_4.prevent_dce, v_3.pos};
+  return v_5;
+}
+
diff --git a/test/tint/builtins/gen/var/textureDimensions/a7ae4c.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/textureDimensions/a7ae4c.wgsl.expected.ir.dxc.hlsl
index 1fac62e..d813971 100644
--- a/test/tint/builtins/gen/var/textureDimensions/a7ae4c.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureDimensions/a7ae4c.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,19 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureDimensions
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWByteAddressBuffer prevent_dce : register(u0);
+RWTexture1D<float4> arg_0 : register(u0, space1);
+uint textureDimensions_a7ae4c() {
+  uint v = 0u;
+  arg_0.GetDimensions(v);
+  uint res = v;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store(0u, textureDimensions_a7ae4c());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store(0u, textureDimensions_a7ae4c());
+}
+
diff --git a/test/tint/builtins/gen/var/textureDimensions/a7ae4c.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/textureDimensions/a7ae4c.wgsl.expected.ir.fxc.hlsl
index 1fac62e..d813971 100644
--- a/test/tint/builtins/gen/var/textureDimensions/a7ae4c.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureDimensions/a7ae4c.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,19 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureDimensions
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWByteAddressBuffer prevent_dce : register(u0);
+RWTexture1D<float4> arg_0 : register(u0, space1);
+uint textureDimensions_a7ae4c() {
+  uint v = 0u;
+  arg_0.GetDimensions(v);
+  uint res = v;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store(0u, textureDimensions_a7ae4c());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store(0u, textureDimensions_a7ae4c());
+}
+
diff --git a/test/tint/builtins/gen/var/textureDimensions/aa4353.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/textureDimensions/aa4353.wgsl.expected.ir.dxc.hlsl
index 1fac62e..d02454f 100644
--- a/test/tint/builtins/gen/var/textureDimensions/aa4353.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureDimensions/aa4353.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,19 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureDimensions
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWByteAddressBuffer prevent_dce : register(u0);
+RWTexture2D<int4> arg_0 : register(u0, space1);
+uint2 textureDimensions_aa4353() {
+  uint2 v = (0u).xx;
+  arg_0.GetDimensions(v[0u], v[1u]);
+  uint2 res = v;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store2(0u, textureDimensions_aa4353());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store2(0u, textureDimensions_aa4353());
+}
+
diff --git a/test/tint/builtins/gen/var/textureDimensions/aa4353.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/textureDimensions/aa4353.wgsl.expected.ir.fxc.hlsl
index 1fac62e..d02454f 100644
--- a/test/tint/builtins/gen/var/textureDimensions/aa4353.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureDimensions/aa4353.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,19 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureDimensions
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWByteAddressBuffer prevent_dce : register(u0);
+RWTexture2D<int4> arg_0 : register(u0, space1);
+uint2 textureDimensions_aa4353() {
+  uint2 v = (0u).xx;
+  arg_0.GetDimensions(v[0u], v[1u]);
+  uint2 res = v;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store2(0u, textureDimensions_aa4353());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store2(0u, textureDimensions_aa4353());
+}
+
diff --git a/test/tint/builtins/gen/var/textureDimensions/aac604.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/textureDimensions/aac604.wgsl.expected.ir.dxc.hlsl
index 1fac62e..fa3072b 100644
--- a/test/tint/builtins/gen/var/textureDimensions/aac604.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureDimensions/aac604.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,115 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureDimensions
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : u32;
+
+@group(1) @binding(0) var arg_0 : texture_1d<f32>;
+
+fn textureDimensions_aac604() -> u32 {
+  var arg_1 = 1u;
+  var res : u32 = textureDimensions(arg_0, arg_1);
+  return res;
+}
+
+@fragment
+fn fragment_main() {
+  prevent_dce = textureDimensions_aac604();
+}
+
+@compute @workgroup_size(1)
+fn compute_main() {
+  prevent_dce = textureDimensions_aac604();
+}
+
+struct VertexOutput {
+  @builtin(position)
+  pos : vec4<f32>,
+  @location(0) @interpolate(flat)
+  prevent_dce : u32,
+}
+
+@vertex
+fn vertex_main() -> VertexOutput {
+  var tint_symbol : VertexOutput;
+  tint_symbol.pos = vec4<f32>();
+  tint_symbol.prevent_dce = textureDimensions_aac604();
+  return tint_symbol;
+}
+
+Failed to generate: :28:43 error: var: initializer type 'vec2<u32>' does not match store type 'u32'
+    %res:ptr<function, u32, read_write> = var, %13
+                                          ^^^
+
+:17:3 note: in block
+  $B2: {
+  ^^^
+
+note: # Disassembly
+VertexOutput = struct @align(16) {
+  pos:vec4<f32> @offset(0)
+  prevent_dce:u32 @offset(16)
+}
+
+vertex_main_outputs = struct @align(16) {
+  VertexOutput_prevent_dce:u32 @offset(0), @location(0), @interpolate(flat)
+  VertexOutput_pos:vec4<f32> @offset(16), @builtin(position)
+}
+
+$B1: {  # root
+  %prevent_dce:hlsl.byte_address_buffer<read_write> = var @binding_point(0, 0)
+  %arg_0:ptr<handle, texture_1d<f32>, read> = var @binding_point(1, 0)
+}
+
+%textureDimensions_aac604 = func():u32 {
+  $B2: {
+    %arg_1:ptr<function, u32, read_write> = var, 1u
+    %5:texture_1d<f32> = load %arg_0
+    %6:u32 = load %arg_1
+    %7:u32 = convert %6
+    %8:ptr<function, vec2<u32>, read_write> = var
+    %9:ptr<function, u32, read_write> = access %8, 0u
+    %10:ptr<function, u32, read_write> = access %8, 1u
+    %11:void = %5.GetDimensions %7, %9, %10
+    %12:vec2<u32> = load %8
+    %13:vec2<u32> = swizzle %12, x
+    %res:ptr<function, u32, read_write> = var, %13
+    %15:u32 = load %res
+    ret %15
+  }
+}
+%fragment_main = @fragment func():void {
+  $B3: {
+    %17:u32 = call %textureDimensions_aac604
+    %18:void = %prevent_dce.Store 0u, %17
+    ret
+  }
+}
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B4: {
+    %20:u32 = call %textureDimensions_aac604
+    %21:void = %prevent_dce.Store 0u, %20
+    ret
+  }
+}
+%vertex_main_inner = func():VertexOutput {
+  $B5: {
+    %tint_symbol:ptr<function, VertexOutput, read_write> = var
+    %24:ptr<function, vec4<f32>, read_write> = access %tint_symbol, 0u
+    store %24, vec4<f32>(0.0f)
+    %25:ptr<function, u32, read_write> = access %tint_symbol, 1u
+    %26:u32 = call %textureDimensions_aac604
+    store %25, %26
+    %27:VertexOutput = load %tint_symbol
+    ret %27
+  }
+}
+%vertex_main = @vertex func():vertex_main_outputs {
+  $B6: {
+    %29:VertexOutput = call %vertex_main_inner
+    %30:vec4<f32> = access %29, 0u
+    %31:u32 = access %29, 1u
+    %32:vertex_main_outputs = construct %31, %30
+    ret %32
+  }
+}
+
diff --git a/test/tint/builtins/gen/var/textureDimensions/aac604.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/textureDimensions/aac604.wgsl.expected.ir.fxc.hlsl
index 1fac62e..fa3072b 100644
--- a/test/tint/builtins/gen/var/textureDimensions/aac604.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureDimensions/aac604.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,115 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureDimensions
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : u32;
+
+@group(1) @binding(0) var arg_0 : texture_1d<f32>;
+
+fn textureDimensions_aac604() -> u32 {
+  var arg_1 = 1u;
+  var res : u32 = textureDimensions(arg_0, arg_1);
+  return res;
+}
+
+@fragment
+fn fragment_main() {
+  prevent_dce = textureDimensions_aac604();
+}
+
+@compute @workgroup_size(1)
+fn compute_main() {
+  prevent_dce = textureDimensions_aac604();
+}
+
+struct VertexOutput {
+  @builtin(position)
+  pos : vec4<f32>,
+  @location(0) @interpolate(flat)
+  prevent_dce : u32,
+}
+
+@vertex
+fn vertex_main() -> VertexOutput {
+  var tint_symbol : VertexOutput;
+  tint_symbol.pos = vec4<f32>();
+  tint_symbol.prevent_dce = textureDimensions_aac604();
+  return tint_symbol;
+}
+
+Failed to generate: :28:43 error: var: initializer type 'vec2<u32>' does not match store type 'u32'
+    %res:ptr<function, u32, read_write> = var, %13
+                                          ^^^
+
+:17:3 note: in block
+  $B2: {
+  ^^^
+
+note: # Disassembly
+VertexOutput = struct @align(16) {
+  pos:vec4<f32> @offset(0)
+  prevent_dce:u32 @offset(16)
+}
+
+vertex_main_outputs = struct @align(16) {
+  VertexOutput_prevent_dce:u32 @offset(0), @location(0), @interpolate(flat)
+  VertexOutput_pos:vec4<f32> @offset(16), @builtin(position)
+}
+
+$B1: {  # root
+  %prevent_dce:hlsl.byte_address_buffer<read_write> = var @binding_point(0, 0)
+  %arg_0:ptr<handle, texture_1d<f32>, read> = var @binding_point(1, 0)
+}
+
+%textureDimensions_aac604 = func():u32 {
+  $B2: {
+    %arg_1:ptr<function, u32, read_write> = var, 1u
+    %5:texture_1d<f32> = load %arg_0
+    %6:u32 = load %arg_1
+    %7:u32 = convert %6
+    %8:ptr<function, vec2<u32>, read_write> = var
+    %9:ptr<function, u32, read_write> = access %8, 0u
+    %10:ptr<function, u32, read_write> = access %8, 1u
+    %11:void = %5.GetDimensions %7, %9, %10
+    %12:vec2<u32> = load %8
+    %13:vec2<u32> = swizzle %12, x
+    %res:ptr<function, u32, read_write> = var, %13
+    %15:u32 = load %res
+    ret %15
+  }
+}
+%fragment_main = @fragment func():void {
+  $B3: {
+    %17:u32 = call %textureDimensions_aac604
+    %18:void = %prevent_dce.Store 0u, %17
+    ret
+  }
+}
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B4: {
+    %20:u32 = call %textureDimensions_aac604
+    %21:void = %prevent_dce.Store 0u, %20
+    ret
+  }
+}
+%vertex_main_inner = func():VertexOutput {
+  $B5: {
+    %tint_symbol:ptr<function, VertexOutput, read_write> = var
+    %24:ptr<function, vec4<f32>, read_write> = access %tint_symbol, 0u
+    store %24, vec4<f32>(0.0f)
+    %25:ptr<function, u32, read_write> = access %tint_symbol, 1u
+    %26:u32 = call %textureDimensions_aac604
+    store %25, %26
+    %27:VertexOutput = load %tint_symbol
+    ret %27
+  }
+}
+%vertex_main = @vertex func():vertex_main_outputs {
+  $B6: {
+    %29:VertexOutput = call %vertex_main_inner
+    %30:vec4<f32> = access %29, 0u
+    %31:u32 = access %29, 1u
+    %32:vertex_main_outputs = construct %31, %30
+    ret %32
+  }
+}
+
diff --git a/test/tint/builtins/gen/var/textureDimensions/ad7d3b.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/textureDimensions/ad7d3b.wgsl.expected.ir.dxc.hlsl
index 1fac62e..aa8ab8c 100644
--- a/test/tint/builtins/gen/var/textureDimensions/ad7d3b.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureDimensions/ad7d3b.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,19 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureDimensions
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWByteAddressBuffer prevent_dce : register(u0);
+RWTexture1D<uint4> arg_0 : register(u0, space1);
+uint textureDimensions_ad7d3b() {
+  uint v = 0u;
+  arg_0.GetDimensions(v);
+  uint res = v;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store(0u, textureDimensions_ad7d3b());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store(0u, textureDimensions_ad7d3b());
+}
+
diff --git a/test/tint/builtins/gen/var/textureDimensions/ad7d3b.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/textureDimensions/ad7d3b.wgsl.expected.ir.fxc.hlsl
index 1fac62e..aa8ab8c 100644
--- a/test/tint/builtins/gen/var/textureDimensions/ad7d3b.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureDimensions/ad7d3b.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,19 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureDimensions
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWByteAddressBuffer prevent_dce : register(u0);
+RWTexture1D<uint4> arg_0 : register(u0, space1);
+uint textureDimensions_ad7d3b() {
+  uint v = 0u;
+  arg_0.GetDimensions(v);
+  uint res = v;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store(0u, textureDimensions_ad7d3b());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store(0u, textureDimensions_ad7d3b());
+}
+
diff --git a/test/tint/builtins/gen/var/textureDimensions/ae4595.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/textureDimensions/ae4595.wgsl.expected.ir.dxc.hlsl
index 1fac62e..86b2123 100644
--- a/test/tint/builtins/gen/var/textureDimensions/ae4595.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureDimensions/ae4595.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,19 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureDimensions
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWByteAddressBuffer prevent_dce : register(u0);
+RWTexture3D<float4> arg_0 : register(u0, space1);
+uint3 textureDimensions_ae4595() {
+  uint3 v = (0u).xxx;
+  arg_0.GetDimensions(v[0u], v[1u], v[2u]);
+  uint3 res = v;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store3(0u, textureDimensions_ae4595());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store3(0u, textureDimensions_ae4595());
+}
+
diff --git a/test/tint/builtins/gen/var/textureDimensions/ae4595.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/textureDimensions/ae4595.wgsl.expected.ir.fxc.hlsl
index 1fac62e..86b2123 100644
--- a/test/tint/builtins/gen/var/textureDimensions/ae4595.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureDimensions/ae4595.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,19 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureDimensions
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWByteAddressBuffer prevent_dce : register(u0);
+RWTexture3D<float4> arg_0 : register(u0, space1);
+uint3 textureDimensions_ae4595() {
+  uint3 v = (0u).xxx;
+  arg_0.GetDimensions(v[0u], v[1u], v[2u]);
+  uint3 res = v;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store3(0u, textureDimensions_ae4595());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store3(0u, textureDimensions_ae4595());
+}
+
diff --git a/test/tint/builtins/gen/var/textureDimensions/ae75a7.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/textureDimensions/ae75a7.wgsl.expected.ir.dxc.hlsl
index 1fac62e..1a95822 100644
--- a/test/tint/builtins/gen/var/textureDimensions/ae75a7.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureDimensions/ae75a7.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,19 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureDimensions
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWByteAddressBuffer prevent_dce : register(u0);
+RWTexture1D<uint4> arg_0 : register(u0, space1);
+uint textureDimensions_ae75a7() {
+  uint v = 0u;
+  arg_0.GetDimensions(v);
+  uint res = v;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store(0u, textureDimensions_ae75a7());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store(0u, textureDimensions_ae75a7());
+}
+
diff --git a/test/tint/builtins/gen/var/textureDimensions/ae75a7.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/textureDimensions/ae75a7.wgsl.expected.ir.fxc.hlsl
index 1fac62e..1a95822 100644
--- a/test/tint/builtins/gen/var/textureDimensions/ae75a7.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureDimensions/ae75a7.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,19 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureDimensions
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWByteAddressBuffer prevent_dce : register(u0);
+RWTexture1D<uint4> arg_0 : register(u0, space1);
+uint textureDimensions_ae75a7() {
+  uint v = 0u;
+  arg_0.GetDimensions(v);
+  uint res = v;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store(0u, textureDimensions_ae75a7());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store(0u, textureDimensions_ae75a7());
+}
+
diff --git a/test/tint/builtins/gen/var/textureDimensions/af46ab.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/textureDimensions/af46ab.wgsl.expected.ir.dxc.hlsl
index 1fac62e..6f40fa5 100644
--- a/test/tint/builtins/gen/var/textureDimensions/af46ab.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureDimensions/af46ab.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,19 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureDimensions
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWByteAddressBuffer prevent_dce : register(u0);
+RWTexture2DArray<int4> arg_0 : register(u0, space1);
+uint2 textureDimensions_af46ab() {
+  uint3 v = (0u).xxx;
+  arg_0.GetDimensions(v[0u], v[1u], v[2u]);
+  uint2 res = v.xy;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store2(0u, textureDimensions_af46ab());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store2(0u, textureDimensions_af46ab());
+}
+
diff --git a/test/tint/builtins/gen/var/textureDimensions/af46ab.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/textureDimensions/af46ab.wgsl.expected.ir.fxc.hlsl
index 1fac62e..6f40fa5 100644
--- a/test/tint/builtins/gen/var/textureDimensions/af46ab.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureDimensions/af46ab.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,19 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureDimensions
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWByteAddressBuffer prevent_dce : register(u0);
+RWTexture2DArray<int4> arg_0 : register(u0, space1);
+uint2 textureDimensions_af46ab() {
+  uint3 v = (0u).xxx;
+  arg_0.GetDimensions(v[0u], v[1u], v[2u]);
+  uint2 res = v.xy;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store2(0u, textureDimensions_af46ab());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store2(0u, textureDimensions_af46ab());
+}
+
diff --git a/test/tint/builtins/gen/var/textureDimensions/b16352.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/textureDimensions/b16352.wgsl.expected.ir.dxc.hlsl
index 1fac62e..68d1d16 100644
--- a/test/tint/builtins/gen/var/textureDimensions/b16352.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureDimensions/b16352.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,19 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureDimensions
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWByteAddressBuffer prevent_dce : register(u0);
+RWTexture2D<int4> arg_0 : register(u0, space1);
+uint2 textureDimensions_b16352() {
+  uint2 v = (0u).xx;
+  arg_0.GetDimensions(v[0u], v[1u]);
+  uint2 res = v;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store2(0u, textureDimensions_b16352());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store2(0u, textureDimensions_b16352());
+}
+
diff --git a/test/tint/builtins/gen/var/textureDimensions/b16352.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/textureDimensions/b16352.wgsl.expected.ir.fxc.hlsl
index 1fac62e..68d1d16 100644
--- a/test/tint/builtins/gen/var/textureDimensions/b16352.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureDimensions/b16352.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,19 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureDimensions
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWByteAddressBuffer prevent_dce : register(u0);
+RWTexture2D<int4> arg_0 : register(u0, space1);
+uint2 textureDimensions_b16352() {
+  uint2 v = (0u).xx;
+  arg_0.GetDimensions(v[0u], v[1u]);
+  uint2 res = v;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store2(0u, textureDimensions_b16352());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store2(0u, textureDimensions_b16352());
+}
+
diff --git a/test/tint/builtins/gen/var/textureDimensions/b284b8.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/textureDimensions/b284b8.wgsl.expected.ir.dxc.hlsl
index 1fac62e..dffd20cc 100644
--- a/test/tint/builtins/gen/var/textureDimensions/b284b8.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureDimensions/b284b8.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,19 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureDimensions
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWByteAddressBuffer prevent_dce : register(u0);
+RWTexture2D<int4> arg_0 : register(u0, space1);
+uint2 textureDimensions_b284b8() {
+  uint2 v = (0u).xx;
+  arg_0.GetDimensions(v[0u], v[1u]);
+  uint2 res = v;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store2(0u, textureDimensions_b284b8());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store2(0u, textureDimensions_b284b8());
+}
+
diff --git a/test/tint/builtins/gen/var/textureDimensions/b284b8.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/textureDimensions/b284b8.wgsl.expected.ir.fxc.hlsl
index 1fac62e..dffd20cc 100644
--- a/test/tint/builtins/gen/var/textureDimensions/b284b8.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureDimensions/b284b8.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,19 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureDimensions
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWByteAddressBuffer prevent_dce : register(u0);
+RWTexture2D<int4> arg_0 : register(u0, space1);
+uint2 textureDimensions_b284b8() {
+  uint2 v = (0u).xx;
+  arg_0.GetDimensions(v[0u], v[1u]);
+  uint2 res = v;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store2(0u, textureDimensions_b284b8());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store2(0u, textureDimensions_b284b8());
+}
+
diff --git a/test/tint/builtins/gen/var/textureDimensions/b3ab5e.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/textureDimensions/b3ab5e.wgsl.expected.ir.dxc.hlsl
index 1fac62e..a0e4da0 100644
--- a/test/tint/builtins/gen/var/textureDimensions/b3ab5e.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureDimensions/b3ab5e.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,47 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  uint2 prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureDimensions
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation uint2 VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+TextureCubeArray<float4> arg_0 : register(t0, space1);
+uint2 textureDimensions_b3ab5e() {
+  int arg_1 = 1;
+  TextureCubeArray<float4> v = arg_0;
+  uint4 v_1 = (0u).xxxx;
+  v.GetDimensions(uint(arg_1), v_1[0u], v_1[1u], v_1[2u], v_1[3u]);
+  uint2 res = v_1.xy;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store2(0u, textureDimensions_b3ab5e());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store2(0u, textureDimensions_b3ab5e());
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = textureDimensions_b3ab5e();
+  VertexOutput v_2 = tint_symbol;
+  return v_2;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_3 = vertex_main_inner();
+  VertexOutput v_4 = v_3;
+  VertexOutput v_5 = v_3;
+  vertex_main_outputs v_6 = {v_5.prevent_dce, v_4.pos};
+  return v_6;
+}
+
diff --git a/test/tint/builtins/gen/var/textureDimensions/b3ab5e.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/textureDimensions/b3ab5e.wgsl.expected.ir.fxc.hlsl
index 1fac62e..a0e4da0 100644
--- a/test/tint/builtins/gen/var/textureDimensions/b3ab5e.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureDimensions/b3ab5e.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,47 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  uint2 prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureDimensions
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation uint2 VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+TextureCubeArray<float4> arg_0 : register(t0, space1);
+uint2 textureDimensions_b3ab5e() {
+  int arg_1 = 1;
+  TextureCubeArray<float4> v = arg_0;
+  uint4 v_1 = (0u).xxxx;
+  v.GetDimensions(uint(arg_1), v_1[0u], v_1[1u], v_1[2u], v_1[3u]);
+  uint2 res = v_1.xy;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store2(0u, textureDimensions_b3ab5e());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store2(0u, textureDimensions_b3ab5e());
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = textureDimensions_b3ab5e();
+  VertexOutput v_2 = tint_symbol;
+  return v_2;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_3 = vertex_main_inner();
+  VertexOutput v_4 = v_3;
+  VertexOutput v_5 = v_3;
+  vertex_main_outputs v_6 = {v_5.prevent_dce, v_4.pos};
+  return v_6;
+}
+
diff --git a/test/tint/builtins/gen/var/textureDimensions/b46d97.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/textureDimensions/b46d97.wgsl.expected.ir.dxc.hlsl
index 1fac62e..8f4796c 100644
--- a/test/tint/builtins/gen/var/textureDimensions/b46d97.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureDimensions/b46d97.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,115 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureDimensions
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : u32;
+
+@group(1) @binding(0) var arg_0 : texture_1d<i32>;
+
+fn textureDimensions_b46d97() -> u32 {
+  var arg_1 = 1i;
+  var res : u32 = textureDimensions(arg_0, arg_1);
+  return res;
+}
+
+@fragment
+fn fragment_main() {
+  prevent_dce = textureDimensions_b46d97();
+}
+
+@compute @workgroup_size(1)
+fn compute_main() {
+  prevent_dce = textureDimensions_b46d97();
+}
+
+struct VertexOutput {
+  @builtin(position)
+  pos : vec4<f32>,
+  @location(0) @interpolate(flat)
+  prevent_dce : u32,
+}
+
+@vertex
+fn vertex_main() -> VertexOutput {
+  var tint_symbol : VertexOutput;
+  tint_symbol.pos = vec4<f32>();
+  tint_symbol.prevent_dce = textureDimensions_b46d97();
+  return tint_symbol;
+}
+
+Failed to generate: :28:43 error: var: initializer type 'vec2<u32>' does not match store type 'u32'
+    %res:ptr<function, u32, read_write> = var, %13
+                                          ^^^
+
+:17:3 note: in block
+  $B2: {
+  ^^^
+
+note: # Disassembly
+VertexOutput = struct @align(16) {
+  pos:vec4<f32> @offset(0)
+  prevent_dce:u32 @offset(16)
+}
+
+vertex_main_outputs = struct @align(16) {
+  VertexOutput_prevent_dce:u32 @offset(0), @location(0), @interpolate(flat)
+  VertexOutput_pos:vec4<f32> @offset(16), @builtin(position)
+}
+
+$B1: {  # root
+  %prevent_dce:hlsl.byte_address_buffer<read_write> = var @binding_point(0, 0)
+  %arg_0:ptr<handle, texture_1d<i32>, read> = var @binding_point(1, 0)
+}
+
+%textureDimensions_b46d97 = func():u32 {
+  $B2: {
+    %arg_1:ptr<function, i32, read_write> = var, 1i
+    %5:texture_1d<i32> = load %arg_0
+    %6:i32 = load %arg_1
+    %7:u32 = convert %6
+    %8:ptr<function, vec2<u32>, read_write> = var
+    %9:ptr<function, u32, read_write> = access %8, 0u
+    %10:ptr<function, u32, read_write> = access %8, 1u
+    %11:void = %5.GetDimensions %7, %9, %10
+    %12:vec2<u32> = load %8
+    %13:vec2<u32> = swizzle %12, x
+    %res:ptr<function, u32, read_write> = var, %13
+    %15:u32 = load %res
+    ret %15
+  }
+}
+%fragment_main = @fragment func():void {
+  $B3: {
+    %17:u32 = call %textureDimensions_b46d97
+    %18:void = %prevent_dce.Store 0u, %17
+    ret
+  }
+}
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B4: {
+    %20:u32 = call %textureDimensions_b46d97
+    %21:void = %prevent_dce.Store 0u, %20
+    ret
+  }
+}
+%vertex_main_inner = func():VertexOutput {
+  $B5: {
+    %tint_symbol:ptr<function, VertexOutput, read_write> = var
+    %24:ptr<function, vec4<f32>, read_write> = access %tint_symbol, 0u
+    store %24, vec4<f32>(0.0f)
+    %25:ptr<function, u32, read_write> = access %tint_symbol, 1u
+    %26:u32 = call %textureDimensions_b46d97
+    store %25, %26
+    %27:VertexOutput = load %tint_symbol
+    ret %27
+  }
+}
+%vertex_main = @vertex func():vertex_main_outputs {
+  $B6: {
+    %29:VertexOutput = call %vertex_main_inner
+    %30:vec4<f32> = access %29, 0u
+    %31:u32 = access %29, 1u
+    %32:vertex_main_outputs = construct %31, %30
+    ret %32
+  }
+}
+
diff --git a/test/tint/builtins/gen/var/textureDimensions/b46d97.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/textureDimensions/b46d97.wgsl.expected.ir.fxc.hlsl
index 1fac62e..8f4796c 100644
--- a/test/tint/builtins/gen/var/textureDimensions/b46d97.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureDimensions/b46d97.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,115 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureDimensions
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : u32;
+
+@group(1) @binding(0) var arg_0 : texture_1d<i32>;
+
+fn textureDimensions_b46d97() -> u32 {
+  var arg_1 = 1i;
+  var res : u32 = textureDimensions(arg_0, arg_1);
+  return res;
+}
+
+@fragment
+fn fragment_main() {
+  prevent_dce = textureDimensions_b46d97();
+}
+
+@compute @workgroup_size(1)
+fn compute_main() {
+  prevent_dce = textureDimensions_b46d97();
+}
+
+struct VertexOutput {
+  @builtin(position)
+  pos : vec4<f32>,
+  @location(0) @interpolate(flat)
+  prevent_dce : u32,
+}
+
+@vertex
+fn vertex_main() -> VertexOutput {
+  var tint_symbol : VertexOutput;
+  tint_symbol.pos = vec4<f32>();
+  tint_symbol.prevent_dce = textureDimensions_b46d97();
+  return tint_symbol;
+}
+
+Failed to generate: :28:43 error: var: initializer type 'vec2<u32>' does not match store type 'u32'
+    %res:ptr<function, u32, read_write> = var, %13
+                                          ^^^
+
+:17:3 note: in block
+  $B2: {
+  ^^^
+
+note: # Disassembly
+VertexOutput = struct @align(16) {
+  pos:vec4<f32> @offset(0)
+  prevent_dce:u32 @offset(16)
+}
+
+vertex_main_outputs = struct @align(16) {
+  VertexOutput_prevent_dce:u32 @offset(0), @location(0), @interpolate(flat)
+  VertexOutput_pos:vec4<f32> @offset(16), @builtin(position)
+}
+
+$B1: {  # root
+  %prevent_dce:hlsl.byte_address_buffer<read_write> = var @binding_point(0, 0)
+  %arg_0:ptr<handle, texture_1d<i32>, read> = var @binding_point(1, 0)
+}
+
+%textureDimensions_b46d97 = func():u32 {
+  $B2: {
+    %arg_1:ptr<function, i32, read_write> = var, 1i
+    %5:texture_1d<i32> = load %arg_0
+    %6:i32 = load %arg_1
+    %7:u32 = convert %6
+    %8:ptr<function, vec2<u32>, read_write> = var
+    %9:ptr<function, u32, read_write> = access %8, 0u
+    %10:ptr<function, u32, read_write> = access %8, 1u
+    %11:void = %5.GetDimensions %7, %9, %10
+    %12:vec2<u32> = load %8
+    %13:vec2<u32> = swizzle %12, x
+    %res:ptr<function, u32, read_write> = var, %13
+    %15:u32 = load %res
+    ret %15
+  }
+}
+%fragment_main = @fragment func():void {
+  $B3: {
+    %17:u32 = call %textureDimensions_b46d97
+    %18:void = %prevent_dce.Store 0u, %17
+    ret
+  }
+}
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B4: {
+    %20:u32 = call %textureDimensions_b46d97
+    %21:void = %prevent_dce.Store 0u, %20
+    ret
+  }
+}
+%vertex_main_inner = func():VertexOutput {
+  $B5: {
+    %tint_symbol:ptr<function, VertexOutput, read_write> = var
+    %24:ptr<function, vec4<f32>, read_write> = access %tint_symbol, 0u
+    store %24, vec4<f32>(0.0f)
+    %25:ptr<function, u32, read_write> = access %tint_symbol, 1u
+    %26:u32 = call %textureDimensions_b46d97
+    store %25, %26
+    %27:VertexOutput = load %tint_symbol
+    ret %27
+  }
+}
+%vertex_main = @vertex func():vertex_main_outputs {
+  $B6: {
+    %29:VertexOutput = call %vertex_main_inner
+    %30:vec4<f32> = access %29, 0u
+    %31:u32 = access %29, 1u
+    %32:vertex_main_outputs = construct %31, %30
+    ret %32
+  }
+}
+
diff --git a/test/tint/builtins/gen/var/textureDimensions/b51345.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/textureDimensions/b51345.wgsl.expected.ir.dxc.hlsl
index 1fac62e..4054f65 100644
--- a/test/tint/builtins/gen/var/textureDimensions/b51345.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureDimensions/b51345.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,19 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureDimensions
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWByteAddressBuffer prevent_dce : register(u0);
+RWTexture1D<float4> arg_0 : register(u0, space1);
+uint textureDimensions_b51345() {
+  uint v = 0u;
+  arg_0.GetDimensions(v);
+  uint res = v;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store(0u, textureDimensions_b51345());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store(0u, textureDimensions_b51345());
+}
+
diff --git a/test/tint/builtins/gen/var/textureDimensions/b51345.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/textureDimensions/b51345.wgsl.expected.ir.fxc.hlsl
index 1fac62e..4054f65 100644
--- a/test/tint/builtins/gen/var/textureDimensions/b51345.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureDimensions/b51345.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,19 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureDimensions
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWByteAddressBuffer prevent_dce : register(u0);
+RWTexture1D<float4> arg_0 : register(u0, space1);
+uint textureDimensions_b51345() {
+  uint v = 0u;
+  arg_0.GetDimensions(v);
+  uint res = v;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store(0u, textureDimensions_b51345());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store(0u, textureDimensions_b51345());
+}
+
diff --git a/test/tint/builtins/gen/var/textureDimensions/b56112.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/textureDimensions/b56112.wgsl.expected.ir.dxc.hlsl
index 1fac62e..44c56e2 100644
--- a/test/tint/builtins/gen/var/textureDimensions/b56112.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureDimensions/b56112.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,45 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  uint2 prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureDimensions
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation uint2 VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+Texture2D<uint4> arg_0 : register(t0, space1);
+uint2 textureDimensions_b56112() {
+  uint2 v = (0u).xx;
+  arg_0.GetDimensions(v[0u], v[1u]);
+  uint2 res = v;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store2(0u, textureDimensions_b56112());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store2(0u, textureDimensions_b56112());
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = textureDimensions_b56112();
+  VertexOutput v_1 = tint_symbol;
+  return v_1;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_2 = vertex_main_inner();
+  VertexOutput v_3 = v_2;
+  VertexOutput v_4 = v_2;
+  vertex_main_outputs v_5 = {v_4.prevent_dce, v_3.pos};
+  return v_5;
+}
+
diff --git a/test/tint/builtins/gen/var/textureDimensions/b56112.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/textureDimensions/b56112.wgsl.expected.ir.fxc.hlsl
index 1fac62e..44c56e2 100644
--- a/test/tint/builtins/gen/var/textureDimensions/b56112.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureDimensions/b56112.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,45 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  uint2 prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureDimensions
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation uint2 VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+Texture2D<uint4> arg_0 : register(t0, space1);
+uint2 textureDimensions_b56112() {
+  uint2 v = (0u).xx;
+  arg_0.GetDimensions(v[0u], v[1u]);
+  uint2 res = v;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store2(0u, textureDimensions_b56112());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store2(0u, textureDimensions_b56112());
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = textureDimensions_b56112();
+  VertexOutput v_1 = tint_symbol;
+  return v_1;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_2 = vertex_main_inner();
+  VertexOutput v_3 = v_2;
+  VertexOutput v_4 = v_2;
+  vertex_main_outputs v_5 = {v_4.prevent_dce, v_3.pos};
+  return v_5;
+}
+
diff --git a/test/tint/builtins/gen/var/textureDimensions/b5ba03.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/textureDimensions/b5ba03.wgsl.expected.ir.dxc.hlsl
index 1fac62e..1d08bab 100644
--- a/test/tint/builtins/gen/var/textureDimensions/b5ba03.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureDimensions/b5ba03.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,45 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  uint prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureDimensions
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation uint VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+Texture1D<float4> arg_0 : register(t0, space1);
+uint textureDimensions_b5ba03() {
+  uint v = 0u;
+  arg_0.GetDimensions(v);
+  uint res = v;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store(0u, textureDimensions_b5ba03());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store(0u, textureDimensions_b5ba03());
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = textureDimensions_b5ba03();
+  VertexOutput v_1 = tint_symbol;
+  return v_1;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_2 = vertex_main_inner();
+  VertexOutput v_3 = v_2;
+  VertexOutput v_4 = v_2;
+  vertex_main_outputs v_5 = {v_4.prevent_dce, v_3.pos};
+  return v_5;
+}
+
diff --git a/test/tint/builtins/gen/var/textureDimensions/b5ba03.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/textureDimensions/b5ba03.wgsl.expected.ir.fxc.hlsl
index 1fac62e..1d08bab 100644
--- a/test/tint/builtins/gen/var/textureDimensions/b5ba03.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureDimensions/b5ba03.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,45 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  uint prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureDimensions
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation uint VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+Texture1D<float4> arg_0 : register(t0, space1);
+uint textureDimensions_b5ba03() {
+  uint v = 0u;
+  arg_0.GetDimensions(v);
+  uint res = v;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store(0u, textureDimensions_b5ba03());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store(0u, textureDimensions_b5ba03());
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = textureDimensions_b5ba03();
+  VertexOutput v_1 = tint_symbol;
+  return v_1;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_2 = vertex_main_inner();
+  VertexOutput v_3 = v_2;
+  VertexOutput v_4 = v_2;
+  vertex_main_outputs v_5 = {v_4.prevent_dce, v_3.pos};
+  return v_5;
+}
+
diff --git a/test/tint/builtins/gen/var/textureDimensions/b5d68e.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/textureDimensions/b5d68e.wgsl.expected.ir.dxc.hlsl
index 1fac62e..1461abd 100644
--- a/test/tint/builtins/gen/var/textureDimensions/b5d68e.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureDimensions/b5d68e.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,19 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureDimensions
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWByteAddressBuffer prevent_dce : register(u0);
+RWTexture2DArray<int4> arg_0 : register(u0, space1);
+uint2 textureDimensions_b5d68e() {
+  uint3 v = (0u).xxx;
+  arg_0.GetDimensions(v[0u], v[1u], v[2u]);
+  uint2 res = v.xy;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store2(0u, textureDimensions_b5d68e());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store2(0u, textureDimensions_b5d68e());
+}
+
diff --git a/test/tint/builtins/gen/var/textureDimensions/b5d68e.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/textureDimensions/b5d68e.wgsl.expected.ir.fxc.hlsl
index 1fac62e..1461abd 100644
--- a/test/tint/builtins/gen/var/textureDimensions/b5d68e.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureDimensions/b5d68e.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,19 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureDimensions
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWByteAddressBuffer prevent_dce : register(u0);
+RWTexture2DArray<int4> arg_0 : register(u0, space1);
+uint2 textureDimensions_b5d68e() {
+  uint3 v = (0u).xxx;
+  arg_0.GetDimensions(v[0u], v[1u], v[2u]);
+  uint2 res = v.xy;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store2(0u, textureDimensions_b5d68e());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store2(0u, textureDimensions_b5d68e());
+}
+
diff --git a/test/tint/builtins/gen/var/textureDimensions/b6bbf4.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/textureDimensions/b6bbf4.wgsl.expected.ir.dxc.hlsl
index 1fac62e..9ea856f 100644
--- a/test/tint/builtins/gen/var/textureDimensions/b6bbf4.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureDimensions/b6bbf4.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,45 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  uint3 prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureDimensions
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation uint3 VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+Texture3D<uint4> arg_0 : register(t0, space1);
+uint3 textureDimensions_b6bbf4() {
+  uint3 v = (0u).xxx;
+  arg_0.GetDimensions(v[0u], v[1u], v[2u]);
+  uint3 res = v;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store3(0u, textureDimensions_b6bbf4());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store3(0u, textureDimensions_b6bbf4());
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = textureDimensions_b6bbf4();
+  VertexOutput v_1 = tint_symbol;
+  return v_1;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_2 = vertex_main_inner();
+  VertexOutput v_3 = v_2;
+  VertexOutput v_4 = v_2;
+  vertex_main_outputs v_5 = {v_4.prevent_dce, v_3.pos};
+  return v_5;
+}
+
diff --git a/test/tint/builtins/gen/var/textureDimensions/b6bbf4.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/textureDimensions/b6bbf4.wgsl.expected.ir.fxc.hlsl
index 1fac62e..9ea856f 100644
--- a/test/tint/builtins/gen/var/textureDimensions/b6bbf4.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureDimensions/b6bbf4.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,45 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  uint3 prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureDimensions
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation uint3 VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+Texture3D<uint4> arg_0 : register(t0, space1);
+uint3 textureDimensions_b6bbf4() {
+  uint3 v = (0u).xxx;
+  arg_0.GetDimensions(v[0u], v[1u], v[2u]);
+  uint3 res = v;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store3(0u, textureDimensions_b6bbf4());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store3(0u, textureDimensions_b6bbf4());
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = textureDimensions_b6bbf4();
+  VertexOutput v_1 = tint_symbol;
+  return v_1;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_2 = vertex_main_inner();
+  VertexOutput v_3 = v_2;
+  VertexOutput v_4 = v_2;
+  vertex_main_outputs v_5 = {v_4.prevent_dce, v_3.pos};
+  return v_5;
+}
+
diff --git a/test/tint/builtins/gen/var/textureDimensions/b8287f.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/textureDimensions/b8287f.wgsl.expected.ir.dxc.hlsl
index 1fac62e..cf57cb3 100644
--- a/test/tint/builtins/gen/var/textureDimensions/b8287f.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureDimensions/b8287f.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,19 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureDimensions
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWByteAddressBuffer prevent_dce : register(u0);
+RWTexture2DArray<uint4> arg_0 : register(u0, space1);
+uint2 textureDimensions_b8287f() {
+  uint3 v = (0u).xxx;
+  arg_0.GetDimensions(v[0u], v[1u], v[2u]);
+  uint2 res = v.xy;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store2(0u, textureDimensions_b8287f());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store2(0u, textureDimensions_b8287f());
+}
+
diff --git a/test/tint/builtins/gen/var/textureDimensions/b8287f.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/textureDimensions/b8287f.wgsl.expected.ir.fxc.hlsl
index 1fac62e..cf57cb3 100644
--- a/test/tint/builtins/gen/var/textureDimensions/b8287f.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureDimensions/b8287f.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,19 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureDimensions
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWByteAddressBuffer prevent_dce : register(u0);
+RWTexture2DArray<uint4> arg_0 : register(u0, space1);
+uint2 textureDimensions_b8287f() {
+  uint3 v = (0u).xxx;
+  arg_0.GetDimensions(v[0u], v[1u], v[2u]);
+  uint2 res = v.xy;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store2(0u, textureDimensions_b8287f());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store2(0u, textureDimensions_b8287f());
+}
+
diff --git a/test/tint/builtins/gen/var/textureDimensions/b9e7ef.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/textureDimensions/b9e7ef.wgsl.expected.ir.dxc.hlsl
index 1fac62e..744c9d2 100644
--- a/test/tint/builtins/gen/var/textureDimensions/b9e7ef.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureDimensions/b9e7ef.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,45 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  uint prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureDimensions
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation uint VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+Texture1D<int4> arg_0 : register(t0, space1);
+uint textureDimensions_b9e7ef() {
+  uint v = 0u;
+  arg_0.GetDimensions(v);
+  uint res = v;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store(0u, textureDimensions_b9e7ef());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store(0u, textureDimensions_b9e7ef());
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = textureDimensions_b9e7ef();
+  VertexOutput v_1 = tint_symbol;
+  return v_1;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_2 = vertex_main_inner();
+  VertexOutput v_3 = v_2;
+  VertexOutput v_4 = v_2;
+  vertex_main_outputs v_5 = {v_4.prevent_dce, v_3.pos};
+  return v_5;
+}
+
diff --git a/test/tint/builtins/gen/var/textureDimensions/b9e7ef.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/textureDimensions/b9e7ef.wgsl.expected.ir.fxc.hlsl
index 1fac62e..744c9d2 100644
--- a/test/tint/builtins/gen/var/textureDimensions/b9e7ef.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureDimensions/b9e7ef.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,45 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  uint prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureDimensions
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation uint VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+Texture1D<int4> arg_0 : register(t0, space1);
+uint textureDimensions_b9e7ef() {
+  uint v = 0u;
+  arg_0.GetDimensions(v);
+  uint res = v;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store(0u, textureDimensions_b9e7ef());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store(0u, textureDimensions_b9e7ef());
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = textureDimensions_b9e7ef();
+  VertexOutput v_1 = tint_symbol;
+  return v_1;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_2 = vertex_main_inner();
+  VertexOutput v_3 = v_2;
+  VertexOutput v_4 = v_2;
+  vertex_main_outputs v_5 = {v_4.prevent_dce, v_3.pos};
+  return v_5;
+}
+
diff --git a/test/tint/builtins/gen/var/textureDimensions/bb95d9.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/textureDimensions/bb95d9.wgsl.expected.ir.dxc.hlsl
index 1fac62e..d7a1b7c 100644
--- a/test/tint/builtins/gen/var/textureDimensions/bb95d9.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureDimensions/bb95d9.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,45 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  uint3 prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureDimensions
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation uint3 VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+Texture3D<float4> arg_0 : register(t0, space1);
+uint3 textureDimensions_bb95d9() {
+  uint3 v = (0u).xxx;
+  arg_0.GetDimensions(v[0u], v[1u], v[2u]);
+  uint3 res = v;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store3(0u, textureDimensions_bb95d9());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store3(0u, textureDimensions_bb95d9());
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = textureDimensions_bb95d9();
+  VertexOutput v_1 = tint_symbol;
+  return v_1;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_2 = vertex_main_inner();
+  VertexOutput v_3 = v_2;
+  VertexOutput v_4 = v_2;
+  vertex_main_outputs v_5 = {v_4.prevent_dce, v_3.pos};
+  return v_5;
+}
+
diff --git a/test/tint/builtins/gen/var/textureDimensions/bb95d9.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/textureDimensions/bb95d9.wgsl.expected.ir.fxc.hlsl
index 1fac62e..d7a1b7c 100644
--- a/test/tint/builtins/gen/var/textureDimensions/bb95d9.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureDimensions/bb95d9.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,45 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  uint3 prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureDimensions
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation uint3 VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+Texture3D<float4> arg_0 : register(t0, space1);
+uint3 textureDimensions_bb95d9() {
+  uint3 v = (0u).xxx;
+  arg_0.GetDimensions(v[0u], v[1u], v[2u]);
+  uint3 res = v;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store3(0u, textureDimensions_bb95d9());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store3(0u, textureDimensions_bb95d9());
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = textureDimensions_bb95d9();
+  VertexOutput v_1 = tint_symbol;
+  return v_1;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_2 = vertex_main_inner();
+  VertexOutput v_3 = v_2;
+  VertexOutput v_4 = v_2;
+  vertex_main_outputs v_5 = {v_4.prevent_dce, v_3.pos};
+  return v_5;
+}
+
diff --git a/test/tint/builtins/gen/var/textureDimensions/bbe285.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/textureDimensions/bbe285.wgsl.expected.ir.dxc.hlsl
index 1fac62e..b3b0541 100644
--- a/test/tint/builtins/gen/var/textureDimensions/bbe285.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureDimensions/bbe285.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,19 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureDimensions
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWByteAddressBuffer prevent_dce : register(u0);
+RWTexture2DArray<int4> arg_0 : register(u0, space1);
+uint2 textureDimensions_bbe285() {
+  uint3 v = (0u).xxx;
+  arg_0.GetDimensions(v[0u], v[1u], v[2u]);
+  uint2 res = v.xy;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store2(0u, textureDimensions_bbe285());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store2(0u, textureDimensions_bbe285());
+}
+
diff --git a/test/tint/builtins/gen/var/textureDimensions/bbe285.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/textureDimensions/bbe285.wgsl.expected.ir.fxc.hlsl
index 1fac62e..b3b0541 100644
--- a/test/tint/builtins/gen/var/textureDimensions/bbe285.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureDimensions/bbe285.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,19 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureDimensions
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWByteAddressBuffer prevent_dce : register(u0);
+RWTexture2DArray<int4> arg_0 : register(u0, space1);
+uint2 textureDimensions_bbe285() {
+  uint3 v = (0u).xxx;
+  arg_0.GetDimensions(v[0u], v[1u], v[2u]);
+  uint2 res = v.xy;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store2(0u, textureDimensions_bbe285());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store2(0u, textureDimensions_bbe285());
+}
+
diff --git a/test/tint/builtins/gen/var/textureDimensions/bc96f6.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/textureDimensions/bc96f6.wgsl.expected.ir.dxc.hlsl
index 1fac62e..07cdf84 100644
--- a/test/tint/builtins/gen/var/textureDimensions/bc96f6.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureDimensions/bc96f6.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,19 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureDimensions
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWByteAddressBuffer prevent_dce : register(u0);
+RWTexture2DArray<float4> arg_0 : register(u0, space1);
+uint2 textureDimensions_bc96f6() {
+  uint3 v = (0u).xxx;
+  arg_0.GetDimensions(v[0u], v[1u], v[2u]);
+  uint2 res = v.xy;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store2(0u, textureDimensions_bc96f6());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store2(0u, textureDimensions_bc96f6());
+}
+
diff --git a/test/tint/builtins/gen/var/textureDimensions/bc96f6.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/textureDimensions/bc96f6.wgsl.expected.ir.fxc.hlsl
index 1fac62e..07cdf84 100644
--- a/test/tint/builtins/gen/var/textureDimensions/bc96f6.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureDimensions/bc96f6.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,19 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureDimensions
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWByteAddressBuffer prevent_dce : register(u0);
+RWTexture2DArray<float4> arg_0 : register(u0, space1);
+uint2 textureDimensions_bc96f6() {
+  uint3 v = (0u).xxx;
+  arg_0.GetDimensions(v[0u], v[1u], v[2u]);
+  uint2 res = v.xy;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store2(0u, textureDimensions_bc96f6());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store2(0u, textureDimensions_bc96f6());
+}
+
diff --git a/test/tint/builtins/gen/var/textureDimensions/bd94c8.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/textureDimensions/bd94c8.wgsl.expected.ir.dxc.hlsl
index 1fac62e..1bc36ea 100644
--- a/test/tint/builtins/gen/var/textureDimensions/bd94c8.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureDimensions/bd94c8.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,47 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  uint2 prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureDimensions
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation uint2 VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+TextureCubeArray arg_0 : register(t0, space1);
+uint2 textureDimensions_bd94c8() {
+  uint arg_1 = 1u;
+  TextureCubeArray v = arg_0;
+  uint4 v_1 = (0u).xxxx;
+  v.GetDimensions(uint(arg_1), v_1[0u], v_1[1u], v_1[2u], v_1[3u]);
+  uint2 res = v_1.xy;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store2(0u, textureDimensions_bd94c8());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store2(0u, textureDimensions_bd94c8());
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = textureDimensions_bd94c8();
+  VertexOutput v_2 = tint_symbol;
+  return v_2;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_3 = vertex_main_inner();
+  VertexOutput v_4 = v_3;
+  VertexOutput v_5 = v_3;
+  vertex_main_outputs v_6 = {v_5.prevent_dce, v_4.pos};
+  return v_6;
+}
+
diff --git a/test/tint/builtins/gen/var/textureDimensions/bd94c8.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/textureDimensions/bd94c8.wgsl.expected.ir.fxc.hlsl
index 1fac62e..1bc36ea 100644
--- a/test/tint/builtins/gen/var/textureDimensions/bd94c8.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureDimensions/bd94c8.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,47 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  uint2 prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureDimensions
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation uint2 VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+TextureCubeArray arg_0 : register(t0, space1);
+uint2 textureDimensions_bd94c8() {
+  uint arg_1 = 1u;
+  TextureCubeArray v = arg_0;
+  uint4 v_1 = (0u).xxxx;
+  v.GetDimensions(uint(arg_1), v_1[0u], v_1[1u], v_1[2u], v_1[3u]);
+  uint2 res = v_1.xy;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store2(0u, textureDimensions_bd94c8());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store2(0u, textureDimensions_bd94c8());
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = textureDimensions_bd94c8();
+  VertexOutput v_2 = tint_symbol;
+  return v_2;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_3 = vertex_main_inner();
+  VertexOutput v_4 = v_3;
+  VertexOutput v_5 = v_3;
+  vertex_main_outputs v_6 = {v_5.prevent_dce, v_4.pos};
+  return v_6;
+}
+
diff --git a/test/tint/builtins/gen/var/textureDimensions/bec716.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/textureDimensions/bec716.wgsl.expected.ir.dxc.hlsl
index 1fac62e..48f55ac 100644
--- a/test/tint/builtins/gen/var/textureDimensions/bec716.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureDimensions/bec716.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,45 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  uint3 prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureDimensions
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation uint3 VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+Texture3D<float4> arg_0 : register(t0, space1);
+uint3 textureDimensions_bec716() {
+  uint3 v = (0u).xxx;
+  arg_0.GetDimensions(v[0u], v[1u], v[2u]);
+  uint3 res = v;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store3(0u, textureDimensions_bec716());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store3(0u, textureDimensions_bec716());
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = textureDimensions_bec716();
+  VertexOutput v_1 = tint_symbol;
+  return v_1;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_2 = vertex_main_inner();
+  VertexOutput v_3 = v_2;
+  VertexOutput v_4 = v_2;
+  vertex_main_outputs v_5 = {v_4.prevent_dce, v_3.pos};
+  return v_5;
+}
+
diff --git a/test/tint/builtins/gen/var/textureDimensions/bec716.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/textureDimensions/bec716.wgsl.expected.ir.fxc.hlsl
index 1fac62e..48f55ac 100644
--- a/test/tint/builtins/gen/var/textureDimensions/bec716.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureDimensions/bec716.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,45 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  uint3 prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureDimensions
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation uint3 VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+Texture3D<float4> arg_0 : register(t0, space1);
+uint3 textureDimensions_bec716() {
+  uint3 v = (0u).xxx;
+  arg_0.GetDimensions(v[0u], v[1u], v[2u]);
+  uint3 res = v;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store3(0u, textureDimensions_bec716());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store3(0u, textureDimensions_bec716());
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = textureDimensions_bec716();
+  VertexOutput v_1 = tint_symbol;
+  return v_1;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_2 = vertex_main_inner();
+  VertexOutput v_3 = v_2;
+  VertexOutput v_4 = v_2;
+  vertex_main_outputs v_5 = {v_4.prevent_dce, v_3.pos};
+  return v_5;
+}
+
diff --git a/test/tint/builtins/gen/var/textureDimensions/bf9170.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/textureDimensions/bf9170.wgsl.expected.ir.dxc.hlsl
index 1fac62e..7253e08 100644
--- a/test/tint/builtins/gen/var/textureDimensions/bf9170.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureDimensions/bf9170.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,45 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  uint3 prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureDimensions
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation uint3 VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+Texture3D<float4> arg_0 : register(t0, space1);
+uint3 textureDimensions_bf9170() {
+  uint3 v = (0u).xxx;
+  arg_0.GetDimensions(v[0u], v[1u], v[2u]);
+  uint3 res = v;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store3(0u, textureDimensions_bf9170());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store3(0u, textureDimensions_bf9170());
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = textureDimensions_bf9170();
+  VertexOutput v_1 = tint_symbol;
+  return v_1;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_2 = vertex_main_inner();
+  VertexOutput v_3 = v_2;
+  VertexOutput v_4 = v_2;
+  vertex_main_outputs v_5 = {v_4.prevent_dce, v_3.pos};
+  return v_5;
+}
+
diff --git a/test/tint/builtins/gen/var/textureDimensions/bf9170.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/textureDimensions/bf9170.wgsl.expected.ir.fxc.hlsl
index 1fac62e..7253e08 100644
--- a/test/tint/builtins/gen/var/textureDimensions/bf9170.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureDimensions/bf9170.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,45 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  uint3 prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureDimensions
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation uint3 VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+Texture3D<float4> arg_0 : register(t0, space1);
+uint3 textureDimensions_bf9170() {
+  uint3 v = (0u).xxx;
+  arg_0.GetDimensions(v[0u], v[1u], v[2u]);
+  uint3 res = v;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store3(0u, textureDimensions_bf9170());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store3(0u, textureDimensions_bf9170());
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = textureDimensions_bf9170();
+  VertexOutput v_1 = tint_symbol;
+  return v_1;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_2 = vertex_main_inner();
+  VertexOutput v_3 = v_2;
+  VertexOutput v_4 = v_2;
+  vertex_main_outputs v_5 = {v_4.prevent_dce, v_3.pos};
+  return v_5;
+}
+
diff --git a/test/tint/builtins/gen/var/textureDimensions/c1189e.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/textureDimensions/c1189e.wgsl.expected.ir.dxc.hlsl
index 1fac62e..230fbcd 100644
--- a/test/tint/builtins/gen/var/textureDimensions/c1189e.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureDimensions/c1189e.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,45 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  uint2 prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureDimensions
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation uint2 VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+Texture2DArray<float4> arg_0 : register(t0, space1);
+uint2 textureDimensions_c1189e() {
+  uint3 v = (0u).xxx;
+  arg_0.GetDimensions(v[0u], v[1u], v[2u]);
+  uint2 res = v.xy;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store2(0u, textureDimensions_c1189e());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store2(0u, textureDimensions_c1189e());
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = textureDimensions_c1189e();
+  VertexOutput v_1 = tint_symbol;
+  return v_1;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_2 = vertex_main_inner();
+  VertexOutput v_3 = v_2;
+  VertexOutput v_4 = v_2;
+  vertex_main_outputs v_5 = {v_4.prevent_dce, v_3.pos};
+  return v_5;
+}
+
diff --git a/test/tint/builtins/gen/var/textureDimensions/c1189e.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/textureDimensions/c1189e.wgsl.expected.ir.fxc.hlsl
index 1fac62e..230fbcd 100644
--- a/test/tint/builtins/gen/var/textureDimensions/c1189e.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureDimensions/c1189e.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,45 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  uint2 prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureDimensions
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation uint2 VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+Texture2DArray<float4> arg_0 : register(t0, space1);
+uint2 textureDimensions_c1189e() {
+  uint3 v = (0u).xxx;
+  arg_0.GetDimensions(v[0u], v[1u], v[2u]);
+  uint2 res = v.xy;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store2(0u, textureDimensions_c1189e());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store2(0u, textureDimensions_c1189e());
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = textureDimensions_c1189e();
+  VertexOutput v_1 = tint_symbol;
+  return v_1;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_2 = vertex_main_inner();
+  VertexOutput v_3 = v_2;
+  VertexOutput v_4 = v_2;
+  vertex_main_outputs v_5 = {v_4.prevent_dce, v_3.pos};
+  return v_5;
+}
+
diff --git a/test/tint/builtins/gen/var/textureDimensions/c1dbf6.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/textureDimensions/c1dbf6.wgsl.expected.ir.dxc.hlsl
index 1fac62e..a02c71d 100644
--- a/test/tint/builtins/gen/var/textureDimensions/c1dbf6.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureDimensions/c1dbf6.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,19 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureDimensions
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWByteAddressBuffer prevent_dce : register(u0);
+RWTexture2D<uint4> arg_0 : register(u0, space1);
+uint2 textureDimensions_c1dbf6() {
+  uint2 v = (0u).xx;
+  arg_0.GetDimensions(v[0u], v[1u]);
+  uint2 res = v;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store2(0u, textureDimensions_c1dbf6());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store2(0u, textureDimensions_c1dbf6());
+}
+
diff --git a/test/tint/builtins/gen/var/textureDimensions/c1dbf6.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/textureDimensions/c1dbf6.wgsl.expected.ir.fxc.hlsl
index 1fac62e..a02c71d 100644
--- a/test/tint/builtins/gen/var/textureDimensions/c1dbf6.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureDimensions/c1dbf6.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,19 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureDimensions
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWByteAddressBuffer prevent_dce : register(u0);
+RWTexture2D<uint4> arg_0 : register(u0, space1);
+uint2 textureDimensions_c1dbf6() {
+  uint2 v = (0u).xx;
+  arg_0.GetDimensions(v[0u], v[1u]);
+  uint2 res = v;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store2(0u, textureDimensions_c1dbf6());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store2(0u, textureDimensions_c1dbf6());
+}
+
diff --git a/test/tint/builtins/gen/var/textureDimensions/c27466.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/textureDimensions/c27466.wgsl.expected.ir.dxc.hlsl
index 1fac62e..c9fe16e 100644
--- a/test/tint/builtins/gen/var/textureDimensions/c27466.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureDimensions/c27466.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,19 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureDimensions
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWByteAddressBuffer prevent_dce : register(u0);
+RWTexture1D<int4> arg_0 : register(u0, space1);
+uint textureDimensions_c27466() {
+  uint v = 0u;
+  arg_0.GetDimensions(v);
+  uint res = v;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store(0u, textureDimensions_c27466());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store(0u, textureDimensions_c27466());
+}
+
diff --git a/test/tint/builtins/gen/var/textureDimensions/c27466.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/textureDimensions/c27466.wgsl.expected.ir.fxc.hlsl
index 1fac62e..c9fe16e 100644
--- a/test/tint/builtins/gen/var/textureDimensions/c27466.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureDimensions/c27466.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,19 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureDimensions
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWByteAddressBuffer prevent_dce : register(u0);
+RWTexture1D<int4> arg_0 : register(u0, space1);
+uint textureDimensions_c27466() {
+  uint v = 0u;
+  arg_0.GetDimensions(v);
+  uint res = v;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store(0u, textureDimensions_c27466());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store(0u, textureDimensions_c27466());
+}
+
diff --git a/test/tint/builtins/gen/var/textureDimensions/c2cdd3.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/textureDimensions/c2cdd3.wgsl.expected.ir.dxc.hlsl
index 1fac62e..14dd451 100644
--- a/test/tint/builtins/gen/var/textureDimensions/c2cdd3.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureDimensions/c2cdd3.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,45 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  uint2 prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureDimensions
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation uint2 VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+Texture2DMS<float4> arg_0 : register(t0, space1);
+uint2 textureDimensions_c2cdd3() {
+  uint3 v = (0u).xxx;
+  arg_0.GetDimensions(v[0u], v[1u], v[2u]);
+  uint2 res = v.xy;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store2(0u, textureDimensions_c2cdd3());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store2(0u, textureDimensions_c2cdd3());
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = textureDimensions_c2cdd3();
+  VertexOutput v_1 = tint_symbol;
+  return v_1;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_2 = vertex_main_inner();
+  VertexOutput v_3 = v_2;
+  VertexOutput v_4 = v_2;
+  vertex_main_outputs v_5 = {v_4.prevent_dce, v_3.pos};
+  return v_5;
+}
+
diff --git a/test/tint/builtins/gen/var/textureDimensions/c2cdd3.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/textureDimensions/c2cdd3.wgsl.expected.ir.fxc.hlsl
index 1fac62e..14dd451 100644
--- a/test/tint/builtins/gen/var/textureDimensions/c2cdd3.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureDimensions/c2cdd3.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,45 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  uint2 prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureDimensions
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation uint2 VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+Texture2DMS<float4> arg_0 : register(t0, space1);
+uint2 textureDimensions_c2cdd3() {
+  uint3 v = (0u).xxx;
+  arg_0.GetDimensions(v[0u], v[1u], v[2u]);
+  uint2 res = v.xy;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store2(0u, textureDimensions_c2cdd3());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store2(0u, textureDimensions_c2cdd3());
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = textureDimensions_c2cdd3();
+  VertexOutput v_1 = tint_symbol;
+  return v_1;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_2 = vertex_main_inner();
+  VertexOutput v_3 = v_2;
+  VertexOutput v_4 = v_2;
+  vertex_main_outputs v_5 = {v_4.prevent_dce, v_3.pos};
+  return v_5;
+}
+
diff --git a/test/tint/builtins/gen/var/textureDimensions/c44fc1.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/textureDimensions/c44fc1.wgsl.expected.ir.dxc.hlsl
index 1fac62e..767bf02 100644
--- a/test/tint/builtins/gen/var/textureDimensions/c44fc1.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureDimensions/c44fc1.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,19 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureDimensions
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWByteAddressBuffer prevent_dce : register(u0);
+RWTexture2DArray<int4> arg_0 : register(u0, space1);
+uint2 textureDimensions_c44fc1() {
+  uint3 v = (0u).xxx;
+  arg_0.GetDimensions(v[0u], v[1u], v[2u]);
+  uint2 res = v.xy;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store2(0u, textureDimensions_c44fc1());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store2(0u, textureDimensions_c44fc1());
+}
+
diff --git a/test/tint/builtins/gen/var/textureDimensions/c44fc1.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/textureDimensions/c44fc1.wgsl.expected.ir.fxc.hlsl
index 1fac62e..767bf02 100644
--- a/test/tint/builtins/gen/var/textureDimensions/c44fc1.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureDimensions/c44fc1.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,19 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureDimensions
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWByteAddressBuffer prevent_dce : register(u0);
+RWTexture2DArray<int4> arg_0 : register(u0, space1);
+uint2 textureDimensions_c44fc1() {
+  uint3 v = (0u).xxx;
+  arg_0.GetDimensions(v[0u], v[1u], v[2u]);
+  uint2 res = v.xy;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store2(0u, textureDimensions_c44fc1());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store2(0u, textureDimensions_c44fc1());
+}
+
diff --git a/test/tint/builtins/gen/var/textureDimensions/c5a36e.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/textureDimensions/c5a36e.wgsl.expected.ir.dxc.hlsl
index 1fac62e..4522a33 100644
--- a/test/tint/builtins/gen/var/textureDimensions/c5a36e.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureDimensions/c5a36e.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,45 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  uint2 prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureDimensions
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation uint2 VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+TextureCube arg_0 : register(t0, space1);
+uint2 textureDimensions_c5a36e() {
+  uint2 v = (0u).xx;
+  arg_0.GetDimensions(v[0u], v[1u]);
+  uint2 res = v;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store2(0u, textureDimensions_c5a36e());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store2(0u, textureDimensions_c5a36e());
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = textureDimensions_c5a36e();
+  VertexOutput v_1 = tint_symbol;
+  return v_1;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_2 = vertex_main_inner();
+  VertexOutput v_3 = v_2;
+  VertexOutput v_4 = v_2;
+  vertex_main_outputs v_5 = {v_4.prevent_dce, v_3.pos};
+  return v_5;
+}
+
diff --git a/test/tint/builtins/gen/var/textureDimensions/c5a36e.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/textureDimensions/c5a36e.wgsl.expected.ir.fxc.hlsl
index 1fac62e..4522a33 100644
--- a/test/tint/builtins/gen/var/textureDimensions/c5a36e.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureDimensions/c5a36e.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,45 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  uint2 prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureDimensions
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation uint2 VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+TextureCube arg_0 : register(t0, space1);
+uint2 textureDimensions_c5a36e() {
+  uint2 v = (0u).xx;
+  arg_0.GetDimensions(v[0u], v[1u]);
+  uint2 res = v;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store2(0u, textureDimensions_c5a36e());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store2(0u, textureDimensions_c5a36e());
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = textureDimensions_c5a36e();
+  VertexOutput v_1 = tint_symbol;
+  return v_1;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_2 = vertex_main_inner();
+  VertexOutput v_3 = v_2;
+  VertexOutput v_4 = v_2;
+  vertex_main_outputs v_5 = {v_4.prevent_dce, v_3.pos};
+  return v_5;
+}
+
diff --git a/test/tint/builtins/gen/var/textureDimensions/c6b44c.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/textureDimensions/c6b44c.wgsl.expected.ir.dxc.hlsl
index 1fac62e..6987040 100644
--- a/test/tint/builtins/gen/var/textureDimensions/c6b44c.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureDimensions/c6b44c.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,19 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureDimensions
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWByteAddressBuffer prevent_dce : register(u0);
+RWTexture2D<int4> arg_0 : register(u0, space1);
+uint2 textureDimensions_c6b44c() {
+  uint2 v = (0u).xx;
+  arg_0.GetDimensions(v[0u], v[1u]);
+  uint2 res = v;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store2(0u, textureDimensions_c6b44c());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store2(0u, textureDimensions_c6b44c());
+}
+
diff --git a/test/tint/builtins/gen/var/textureDimensions/c6b44c.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/textureDimensions/c6b44c.wgsl.expected.ir.fxc.hlsl
index 1fac62e..6987040 100644
--- a/test/tint/builtins/gen/var/textureDimensions/c6b44c.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureDimensions/c6b44c.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,19 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureDimensions
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWByteAddressBuffer prevent_dce : register(u0);
+RWTexture2D<int4> arg_0 : register(u0, space1);
+uint2 textureDimensions_c6b44c() {
+  uint2 v = (0u).xx;
+  arg_0.GetDimensions(v[0u], v[1u]);
+  uint2 res = v;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store2(0u, textureDimensions_c6b44c());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store2(0u, textureDimensions_c6b44c());
+}
+
diff --git a/test/tint/builtins/gen/var/textureDimensions/c6b985.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/textureDimensions/c6b985.wgsl.expected.ir.dxc.hlsl
index 1fac62e..7c59820 100644
--- a/test/tint/builtins/gen/var/textureDimensions/c6b985.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureDimensions/c6b985.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,19 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureDimensions
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWByteAddressBuffer prevent_dce : register(u0);
+RWTexture1D<float4> arg_0 : register(u0, space1);
+uint textureDimensions_c6b985() {
+  uint v = 0u;
+  arg_0.GetDimensions(v);
+  uint res = v;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store(0u, textureDimensions_c6b985());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store(0u, textureDimensions_c6b985());
+}
+
diff --git a/test/tint/builtins/gen/var/textureDimensions/c6b985.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/textureDimensions/c6b985.wgsl.expected.ir.fxc.hlsl
index 1fac62e..7c59820 100644
--- a/test/tint/builtins/gen/var/textureDimensions/c6b985.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureDimensions/c6b985.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,19 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureDimensions
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWByteAddressBuffer prevent_dce : register(u0);
+RWTexture1D<float4> arg_0 : register(u0, space1);
+uint textureDimensions_c6b985() {
+  uint v = 0u;
+  arg_0.GetDimensions(v);
+  uint res = v;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store(0u, textureDimensions_c6b985());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store(0u, textureDimensions_c6b985());
+}
+
diff --git a/test/tint/builtins/gen/var/textureDimensions/c7ea63.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/textureDimensions/c7ea63.wgsl.expected.ir.dxc.hlsl
index 1fac62e..2655610 100644
--- a/test/tint/builtins/gen/var/textureDimensions/c7ea63.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureDimensions/c7ea63.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,19 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureDimensions
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWByteAddressBuffer prevent_dce : register(u0);
+RWTexture1D<float4> arg_0 : register(u0, space1);
+uint textureDimensions_c7ea63() {
+  uint v = 0u;
+  arg_0.GetDimensions(v);
+  uint res = v;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store(0u, textureDimensions_c7ea63());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store(0u, textureDimensions_c7ea63());
+}
+
diff --git a/test/tint/builtins/gen/var/textureDimensions/c7ea63.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/textureDimensions/c7ea63.wgsl.expected.ir.fxc.hlsl
index 1fac62e..2655610 100644
--- a/test/tint/builtins/gen/var/textureDimensions/c7ea63.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureDimensions/c7ea63.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,19 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureDimensions
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWByteAddressBuffer prevent_dce : register(u0);
+RWTexture1D<float4> arg_0 : register(u0, space1);
+uint textureDimensions_c7ea63() {
+  uint v = 0u;
+  arg_0.GetDimensions(v);
+  uint res = v;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store(0u, textureDimensions_c7ea63());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store(0u, textureDimensions_c7ea63());
+}
+
diff --git a/test/tint/builtins/gen/var/textureDimensions/c82420.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/textureDimensions/c82420.wgsl.expected.ir.dxc.hlsl
index 1fac62e..35885e3 100644
--- a/test/tint/builtins/gen/var/textureDimensions/c82420.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureDimensions/c82420.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,19 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureDimensions
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWByteAddressBuffer prevent_dce : register(u0);
+RWTexture2D<uint4> arg_0 : register(u0, space1);
+uint2 textureDimensions_c82420() {
+  uint2 v = (0u).xx;
+  arg_0.GetDimensions(v[0u], v[1u]);
+  uint2 res = v;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store2(0u, textureDimensions_c82420());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store2(0u, textureDimensions_c82420());
+}
+
diff --git a/test/tint/builtins/gen/var/textureDimensions/c82420.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/textureDimensions/c82420.wgsl.expected.ir.fxc.hlsl
index 1fac62e..35885e3 100644
--- a/test/tint/builtins/gen/var/textureDimensions/c82420.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureDimensions/c82420.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,19 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureDimensions
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWByteAddressBuffer prevent_dce : register(u0);
+RWTexture2D<uint4> arg_0 : register(u0, space1);
+uint2 textureDimensions_c82420() {
+  uint2 v = (0u).xx;
+  arg_0.GetDimensions(v[0u], v[1u]);
+  uint2 res = v;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store2(0u, textureDimensions_c82420());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store2(0u, textureDimensions_c82420());
+}
+
diff --git a/test/tint/builtins/gen/var/textureDimensions/c871f3.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/textureDimensions/c871f3.wgsl.expected.ir.dxc.hlsl
index 1fac62e..49f32d7 100644
--- a/test/tint/builtins/gen/var/textureDimensions/c871f3.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureDimensions/c871f3.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,117 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureDimensions
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec3<u32>;
+
+@group(1) @binding(0) var arg_0 : texture_3d<i32>;
+
+fn textureDimensions_c871f3() -> vec3<u32> {
+  var arg_1 = 1u;
+  var res : vec3<u32> = textureDimensions(arg_0, arg_1);
+  return res;
+}
+
+@fragment
+fn fragment_main() {
+  prevent_dce = textureDimensions_c871f3();
+}
+
+@compute @workgroup_size(1)
+fn compute_main() {
+  prevent_dce = textureDimensions_c871f3();
+}
+
+struct VertexOutput {
+  @builtin(position)
+  pos : vec4<f32>,
+  @location(0) @interpolate(flat)
+  prevent_dce : vec3<u32>,
+}
+
+@vertex
+fn vertex_main() -> VertexOutput {
+  var tint_symbol : VertexOutput;
+  tint_symbol.pos = vec4<f32>();
+  tint_symbol.prevent_dce = textureDimensions_c871f3();
+  return tint_symbol;
+}
+
+Failed to generate: :30:49 error: var: initializer type 'vec2<u32>' does not match store type 'vec3<u32>'
+    %res:ptr<function, vec3<u32>, read_write> = var, %15
+                                                ^^^
+
+:17:3 note: in block
+  $B2: {
+  ^^^
+
+note: # Disassembly
+VertexOutput = struct @align(16) {
+  pos:vec4<f32> @offset(0)
+  prevent_dce:vec3<u32> @offset(16)
+}
+
+vertex_main_outputs = struct @align(16) {
+  VertexOutput_prevent_dce:vec3<u32> @offset(0), @location(0), @interpolate(flat)
+  VertexOutput_pos:vec4<f32> @offset(16), @builtin(position)
+}
+
+$B1: {  # root
+  %prevent_dce:hlsl.byte_address_buffer<read_write> = var @binding_point(0, 0)
+  %arg_0:ptr<handle, texture_3d<i32>, read> = var @binding_point(1, 0)
+}
+
+%textureDimensions_c871f3 = func():vec3<u32> {
+  $B2: {
+    %arg_1:ptr<function, u32, read_write> = var, 1u
+    %5:texture_3d<i32> = load %arg_0
+    %6:u32 = load %arg_1
+    %7:u32 = convert %6
+    %8:ptr<function, vec4<u32>, read_write> = var
+    %9:ptr<function, u32, read_write> = access %8, 0u
+    %10:ptr<function, u32, read_write> = access %8, 1u
+    %11:ptr<function, u32, read_write> = access %8, 2u
+    %12:ptr<function, u32, read_write> = access %8, 3u
+    %13:void = %5.GetDimensions %7, %9, %10, %11, %12
+    %14:vec4<u32> = load %8
+    %15:vec2<u32> = swizzle %14, xyz
+    %res:ptr<function, vec3<u32>, read_write> = var, %15
+    %17:vec3<u32> = load %res
+    ret %17
+  }
+}
+%fragment_main = @fragment func():void {
+  $B3: {
+    %19:vec3<u32> = call %textureDimensions_c871f3
+    %20:void = %prevent_dce.Store3 0u, %19
+    ret
+  }
+}
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B4: {
+    %22:vec3<u32> = call %textureDimensions_c871f3
+    %23:void = %prevent_dce.Store3 0u, %22
+    ret
+  }
+}
+%vertex_main_inner = func():VertexOutput {
+  $B5: {
+    %tint_symbol:ptr<function, VertexOutput, read_write> = var
+    %26:ptr<function, vec4<f32>, read_write> = access %tint_symbol, 0u
+    store %26, vec4<f32>(0.0f)
+    %27:ptr<function, vec3<u32>, read_write> = access %tint_symbol, 1u
+    %28:vec3<u32> = call %textureDimensions_c871f3
+    store %27, %28
+    %29:VertexOutput = load %tint_symbol
+    ret %29
+  }
+}
+%vertex_main = @vertex func():vertex_main_outputs {
+  $B6: {
+    %31:VertexOutput = call %vertex_main_inner
+    %32:vec4<f32> = access %31, 0u
+    %33:vec3<u32> = access %31, 1u
+    %34:vertex_main_outputs = construct %33, %32
+    ret %34
+  }
+}
+
diff --git a/test/tint/builtins/gen/var/textureDimensions/c871f3.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/textureDimensions/c871f3.wgsl.expected.ir.fxc.hlsl
index 1fac62e..49f32d7 100644
--- a/test/tint/builtins/gen/var/textureDimensions/c871f3.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureDimensions/c871f3.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,117 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureDimensions
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec3<u32>;
+
+@group(1) @binding(0) var arg_0 : texture_3d<i32>;
+
+fn textureDimensions_c871f3() -> vec3<u32> {
+  var arg_1 = 1u;
+  var res : vec3<u32> = textureDimensions(arg_0, arg_1);
+  return res;
+}
+
+@fragment
+fn fragment_main() {
+  prevent_dce = textureDimensions_c871f3();
+}
+
+@compute @workgroup_size(1)
+fn compute_main() {
+  prevent_dce = textureDimensions_c871f3();
+}
+
+struct VertexOutput {
+  @builtin(position)
+  pos : vec4<f32>,
+  @location(0) @interpolate(flat)
+  prevent_dce : vec3<u32>,
+}
+
+@vertex
+fn vertex_main() -> VertexOutput {
+  var tint_symbol : VertexOutput;
+  tint_symbol.pos = vec4<f32>();
+  tint_symbol.prevent_dce = textureDimensions_c871f3();
+  return tint_symbol;
+}
+
+Failed to generate: :30:49 error: var: initializer type 'vec2<u32>' does not match store type 'vec3<u32>'
+    %res:ptr<function, vec3<u32>, read_write> = var, %15
+                                                ^^^
+
+:17:3 note: in block
+  $B2: {
+  ^^^
+
+note: # Disassembly
+VertexOutput = struct @align(16) {
+  pos:vec4<f32> @offset(0)
+  prevent_dce:vec3<u32> @offset(16)
+}
+
+vertex_main_outputs = struct @align(16) {
+  VertexOutput_prevent_dce:vec3<u32> @offset(0), @location(0), @interpolate(flat)
+  VertexOutput_pos:vec4<f32> @offset(16), @builtin(position)
+}
+
+$B1: {  # root
+  %prevent_dce:hlsl.byte_address_buffer<read_write> = var @binding_point(0, 0)
+  %arg_0:ptr<handle, texture_3d<i32>, read> = var @binding_point(1, 0)
+}
+
+%textureDimensions_c871f3 = func():vec3<u32> {
+  $B2: {
+    %arg_1:ptr<function, u32, read_write> = var, 1u
+    %5:texture_3d<i32> = load %arg_0
+    %6:u32 = load %arg_1
+    %7:u32 = convert %6
+    %8:ptr<function, vec4<u32>, read_write> = var
+    %9:ptr<function, u32, read_write> = access %8, 0u
+    %10:ptr<function, u32, read_write> = access %8, 1u
+    %11:ptr<function, u32, read_write> = access %8, 2u
+    %12:ptr<function, u32, read_write> = access %8, 3u
+    %13:void = %5.GetDimensions %7, %9, %10, %11, %12
+    %14:vec4<u32> = load %8
+    %15:vec2<u32> = swizzle %14, xyz
+    %res:ptr<function, vec3<u32>, read_write> = var, %15
+    %17:vec3<u32> = load %res
+    ret %17
+  }
+}
+%fragment_main = @fragment func():void {
+  $B3: {
+    %19:vec3<u32> = call %textureDimensions_c871f3
+    %20:void = %prevent_dce.Store3 0u, %19
+    ret
+  }
+}
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B4: {
+    %22:vec3<u32> = call %textureDimensions_c871f3
+    %23:void = %prevent_dce.Store3 0u, %22
+    ret
+  }
+}
+%vertex_main_inner = func():VertexOutput {
+  $B5: {
+    %tint_symbol:ptr<function, VertexOutput, read_write> = var
+    %26:ptr<function, vec4<f32>, read_write> = access %tint_symbol, 0u
+    store %26, vec4<f32>(0.0f)
+    %27:ptr<function, vec3<u32>, read_write> = access %tint_symbol, 1u
+    %28:vec3<u32> = call %textureDimensions_c871f3
+    store %27, %28
+    %29:VertexOutput = load %tint_symbol
+    ret %29
+  }
+}
+%vertex_main = @vertex func():vertex_main_outputs {
+  $B6: {
+    %31:VertexOutput = call %vertex_main_inner
+    %32:vec4<f32> = access %31, 0u
+    %33:vec3<u32> = access %31, 1u
+    %34:vertex_main_outputs = construct %33, %32
+    ret %34
+  }
+}
+
diff --git a/test/tint/builtins/gen/var/textureDimensions/ca10cc.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/textureDimensions/ca10cc.wgsl.expected.ir.dxc.hlsl
index 1fac62e..322c243 100644
--- a/test/tint/builtins/gen/var/textureDimensions/ca10cc.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureDimensions/ca10cc.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,19 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureDimensions
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWByteAddressBuffer prevent_dce : register(u0);
+RWTexture2DArray<uint4> arg_0 : register(u0, space1);
+uint2 textureDimensions_ca10cc() {
+  uint3 v = (0u).xxx;
+  arg_0.GetDimensions(v[0u], v[1u], v[2u]);
+  uint2 res = v.xy;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store2(0u, textureDimensions_ca10cc());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store2(0u, textureDimensions_ca10cc());
+}
+
diff --git a/test/tint/builtins/gen/var/textureDimensions/ca10cc.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/textureDimensions/ca10cc.wgsl.expected.ir.fxc.hlsl
index 1fac62e..322c243 100644
--- a/test/tint/builtins/gen/var/textureDimensions/ca10cc.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureDimensions/ca10cc.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,19 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureDimensions
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWByteAddressBuffer prevent_dce : register(u0);
+RWTexture2DArray<uint4> arg_0 : register(u0, space1);
+uint2 textureDimensions_ca10cc() {
+  uint3 v = (0u).xxx;
+  arg_0.GetDimensions(v[0u], v[1u], v[2u]);
+  uint2 res = v.xy;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store2(0u, textureDimensions_ca10cc());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store2(0u, textureDimensions_ca10cc());
+}
+
diff --git a/test/tint/builtins/gen/var/textureDimensions/cad3b7.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/textureDimensions/cad3b7.wgsl.expected.ir.dxc.hlsl
index 1fac62e..599eeb0 100644
--- a/test/tint/builtins/gen/var/textureDimensions/cad3b7.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureDimensions/cad3b7.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,19 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureDimensions
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWByteAddressBuffer prevent_dce : register(u0);
+RWTexture2D<int4> arg_0 : register(u0, space1);
+uint2 textureDimensions_cad3b7() {
+  uint2 v = (0u).xx;
+  arg_0.GetDimensions(v[0u], v[1u]);
+  uint2 res = v;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store2(0u, textureDimensions_cad3b7());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store2(0u, textureDimensions_cad3b7());
+}
+
diff --git a/test/tint/builtins/gen/var/textureDimensions/cad3b7.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/textureDimensions/cad3b7.wgsl.expected.ir.fxc.hlsl
index 1fac62e..599eeb0 100644
--- a/test/tint/builtins/gen/var/textureDimensions/cad3b7.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureDimensions/cad3b7.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,19 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureDimensions
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWByteAddressBuffer prevent_dce : register(u0);
+RWTexture2D<int4> arg_0 : register(u0, space1);
+uint2 textureDimensions_cad3b7() {
+  uint2 v = (0u).xx;
+  arg_0.GetDimensions(v[0u], v[1u]);
+  uint2 res = v;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store2(0u, textureDimensions_cad3b7());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store2(0u, textureDimensions_cad3b7());
+}
+
diff --git a/test/tint/builtins/gen/var/textureDimensions/cc947b.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/textureDimensions/cc947b.wgsl.expected.ir.dxc.hlsl
index 1fac62e..ce77d4f 100644
--- a/test/tint/builtins/gen/var/textureDimensions/cc947b.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureDimensions/cc947b.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,19 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureDimensions
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWByteAddressBuffer prevent_dce : register(u0);
+RWTexture3D<float4> arg_0 : register(u0, space1);
+uint3 textureDimensions_cc947b() {
+  uint3 v = (0u).xxx;
+  arg_0.GetDimensions(v[0u], v[1u], v[2u]);
+  uint3 res = v;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store3(0u, textureDimensions_cc947b());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store3(0u, textureDimensions_cc947b());
+}
+
diff --git a/test/tint/builtins/gen/var/textureDimensions/cc947b.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/textureDimensions/cc947b.wgsl.expected.ir.fxc.hlsl
index 1fac62e..ce77d4f 100644
--- a/test/tint/builtins/gen/var/textureDimensions/cc947b.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureDimensions/cc947b.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,19 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureDimensions
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWByteAddressBuffer prevent_dce : register(u0);
+RWTexture3D<float4> arg_0 : register(u0, space1);
+uint3 textureDimensions_cc947b() {
+  uint3 v = (0u).xxx;
+  arg_0.GetDimensions(v[0u], v[1u], v[2u]);
+  uint3 res = v;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store3(0u, textureDimensions_cc947b());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store3(0u, textureDimensions_cc947b());
+}
+
diff --git a/test/tint/builtins/gen/var/textureDimensions/cd3033.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/textureDimensions/cd3033.wgsl.expected.ir.dxc.hlsl
index 1fac62e..1087fc0 100644
--- a/test/tint/builtins/gen/var/textureDimensions/cd3033.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureDimensions/cd3033.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,45 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  uint2 prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureDimensions
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation uint2 VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+Texture2DArray<int4> arg_0 : register(t0, space1);
+uint2 textureDimensions_cd3033() {
+  uint3 v = (0u).xxx;
+  arg_0.GetDimensions(v[0u], v[1u], v[2u]);
+  uint2 res = v.xy;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store2(0u, textureDimensions_cd3033());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store2(0u, textureDimensions_cd3033());
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = textureDimensions_cd3033();
+  VertexOutput v_1 = tint_symbol;
+  return v_1;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_2 = vertex_main_inner();
+  VertexOutput v_3 = v_2;
+  VertexOutput v_4 = v_2;
+  vertex_main_outputs v_5 = {v_4.prevent_dce, v_3.pos};
+  return v_5;
+}
+
diff --git a/test/tint/builtins/gen/var/textureDimensions/cd3033.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/textureDimensions/cd3033.wgsl.expected.ir.fxc.hlsl
index 1fac62e..1087fc0 100644
--- a/test/tint/builtins/gen/var/textureDimensions/cd3033.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureDimensions/cd3033.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,45 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  uint2 prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureDimensions
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation uint2 VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+Texture2DArray<int4> arg_0 : register(t0, space1);
+uint2 textureDimensions_cd3033() {
+  uint3 v = (0u).xxx;
+  arg_0.GetDimensions(v[0u], v[1u], v[2u]);
+  uint2 res = v.xy;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store2(0u, textureDimensions_cd3033());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store2(0u, textureDimensions_cd3033());
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = textureDimensions_cd3033();
+  VertexOutput v_1 = tint_symbol;
+  return v_1;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_2 = vertex_main_inner();
+  VertexOutput v_3 = v_2;
+  VertexOutput v_4 = v_2;
+  vertex_main_outputs v_5 = {v_4.prevent_dce, v_3.pos};
+  return v_5;
+}
+
diff --git a/test/tint/builtins/gen/var/textureDimensions/cdc6c9.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/textureDimensions/cdc6c9.wgsl.expected.ir.dxc.hlsl
index 1fac62e..5edbb57 100644
--- a/test/tint/builtins/gen/var/textureDimensions/cdc6c9.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureDimensions/cdc6c9.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,135 @@
-SKIP: FAILED
+struct tint_GammaTransferParams {
+  float G;
+  float A;
+  float B;
+  float C;
+  float D;
+  float E;
+  float F;
+  uint padding;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureDimensions
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct tint_ExternalTextureParams {
+  uint numPlanes;
+  uint doYuvToRgbConversionOnly;
+  float3x4 yuvToRgbConversionMatrix;
+  tint_GammaTransferParams gammaDecodeParams;
+  tint_GammaTransferParams gammaEncodeParams;
+  float3x3 gamutConversionMatrix;
+  float3x2 sampleTransform;
+  float3x2 loadTransform;
+  float2 samplePlane0RectMin;
+  float2 samplePlane0RectMax;
+  float2 samplePlane1RectMin;
+  float2 samplePlane1RectMax;
+  uint2 visibleSize;
+  float2 plane1CoordFactor;
+};
+
+struct VertexOutput {
+  float4 pos;
+  uint2 prevent_dce;
+};
+
+struct vertex_main_outputs {
+  nointerpolation uint2 VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+Texture2D<float4> arg_0_plane0 : register(t0, space1);
+Texture2D<float4> arg_0_plane1 : register(t1, space1);
+cbuffer cbuffer_arg_0_params : register(b2, space1) {
+  uint4 arg_0_params[17];
+};
+float3x2 v(uint start_byte_offset) {
+  uint4 v_1 = arg_0_params[(start_byte_offset / 16u)];
+  float2 v_2 = asfloat((((((start_byte_offset % 16u) / 4u) == 2u)) ? (v_1.zw) : (v_1.xy)));
+  uint4 v_3 = arg_0_params[((8u + start_byte_offset) / 16u)];
+  float2 v_4 = asfloat(((((((8u + start_byte_offset) % 16u) / 4u) == 2u)) ? (v_3.zw) : (v_3.xy)));
+  uint4 v_5 = arg_0_params[((16u + start_byte_offset) / 16u)];
+  return float3x2(v_2, v_4, asfloat(((((((16u + start_byte_offset) % 16u) / 4u) == 2u)) ? (v_5.zw) : (v_5.xy))));
+}
+
+float3x3 v_6(uint start_byte_offset) {
+  float3 v_7 = asfloat(arg_0_params[(start_byte_offset / 16u)].xyz);
+  float3 v_8 = asfloat(arg_0_params[((16u + start_byte_offset) / 16u)].xyz);
+  return float3x3(v_7, v_8, asfloat(arg_0_params[((32u + start_byte_offset) / 16u)].xyz));
+}
+
+tint_GammaTransferParams v_9(uint start_byte_offset) {
+  float v_10 = asfloat(arg_0_params[(start_byte_offset / 16u)][((start_byte_offset % 16u) / 4u)]);
+  float v_11 = asfloat(arg_0_params[((4u + start_byte_offset) / 16u)][(((4u + start_byte_offset) % 16u) / 4u)]);
+  float v_12 = asfloat(arg_0_params[((8u + start_byte_offset) / 16u)][(((8u + start_byte_offset) % 16u) / 4u)]);
+  float v_13 = asfloat(arg_0_params[((12u + start_byte_offset) / 16u)][(((12u + start_byte_offset) % 16u) / 4u)]);
+  float v_14 = asfloat(arg_0_params[((16u + start_byte_offset) / 16u)][(((16u + start_byte_offset) % 16u) / 4u)]);
+  float v_15 = asfloat(arg_0_params[((20u + start_byte_offset) / 16u)][(((20u + start_byte_offset) % 16u) / 4u)]);
+  float v_16 = asfloat(arg_0_params[((24u + start_byte_offset) / 16u)][(((24u + start_byte_offset) % 16u) / 4u)]);
+  tint_GammaTransferParams v_17 = {v_10, v_11, v_12, v_13, v_14, v_15, v_16, arg_0_params[((28u + start_byte_offset) / 16u)][(((28u + start_byte_offset) % 16u) / 4u)]};
+  return v_17;
+}
+
+float3x4 v_18(uint start_byte_offset) {
+  float4 v_19 = asfloat(arg_0_params[(start_byte_offset / 16u)]);
+  float4 v_20 = asfloat(arg_0_params[((16u + start_byte_offset) / 16u)]);
+  return float3x4(v_19, v_20, asfloat(arg_0_params[((32u + start_byte_offset) / 16u)]));
+}
+
+tint_ExternalTextureParams v_21(uint start_byte_offset) {
+  uint v_22 = arg_0_params[(start_byte_offset / 16u)][((start_byte_offset % 16u) / 4u)];
+  uint v_23 = arg_0_params[((4u + start_byte_offset) / 16u)][(((4u + start_byte_offset) % 16u) / 4u)];
+  float3x4 v_24 = v_18((16u + start_byte_offset));
+  tint_GammaTransferParams v_25 = v_9((64u + start_byte_offset));
+  tint_GammaTransferParams v_26 = v_9((96u + start_byte_offset));
+  float3x3 v_27 = v_6((128u + start_byte_offset));
+  float3x2 v_28 = v((176u + start_byte_offset));
+  float3x2 v_29 = v((200u + start_byte_offset));
+  uint4 v_30 = arg_0_params[((224u + start_byte_offset) / 16u)];
+  float2 v_31 = asfloat(((((((224u + start_byte_offset) % 16u) / 4u) == 2u)) ? (v_30.zw) : (v_30.xy)));
+  uint4 v_32 = arg_0_params[((232u + start_byte_offset) / 16u)];
+  float2 v_33 = asfloat(((((((232u + start_byte_offset) % 16u) / 4u) == 2u)) ? (v_32.zw) : (v_32.xy)));
+  uint4 v_34 = arg_0_params[((240u + start_byte_offset) / 16u)];
+  float2 v_35 = asfloat(((((((240u + start_byte_offset) % 16u) / 4u) == 2u)) ? (v_34.zw) : (v_34.xy)));
+  uint4 v_36 = arg_0_params[((248u + start_byte_offset) / 16u)];
+  float2 v_37 = asfloat(((((((248u + start_byte_offset) % 16u) / 4u) == 2u)) ? (v_36.zw) : (v_36.xy)));
+  uint4 v_38 = arg_0_params[((256u + start_byte_offset) / 16u)];
+  uint2 v_39 = ((((((256u + start_byte_offset) % 16u) / 4u) == 2u)) ? (v_38.zw) : (v_38.xy));
+  uint4 v_40 = arg_0_params[((264u + start_byte_offset) / 16u)];
+  tint_GammaTransferParams v_41 = v_25;
+  tint_GammaTransferParams v_42 = v_26;
+  tint_ExternalTextureParams v_43 = {v_22, v_23, v_24, v_41, v_42, v_27, v_28, v_29, v_31, v_33, v_35, v_37, v_39, asfloat(((((((264u + start_byte_offset) % 16u) / 4u) == 2u)) ? (v_40.zw) : (v_40.xy)))};
+  return v_43;
+}
+
+uint2 textureDimensions_cdc6c9() {
+  tint_ExternalTextureParams v_44 = v_21(0u);
+  uint2 res = (v_44.visibleSize + (1u).xx);
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store2(0u, textureDimensions_cdc6c9());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store2(0u, textureDimensions_cdc6c9());
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = textureDimensions_cdc6c9();
+  VertexOutput v_45 = tint_symbol;
+  return v_45;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_46 = vertex_main_inner();
+  VertexOutput v_47 = v_46;
+  VertexOutput v_48 = v_46;
+  vertex_main_outputs v_49 = {v_48.prevent_dce, v_47.pos};
+  return v_49;
+}
+
diff --git a/test/tint/builtins/gen/var/textureDimensions/cdc6c9.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/textureDimensions/cdc6c9.wgsl.expected.ir.fxc.hlsl
index 1fac62e..5edbb57 100644
--- a/test/tint/builtins/gen/var/textureDimensions/cdc6c9.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureDimensions/cdc6c9.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,135 @@
-SKIP: FAILED
+struct tint_GammaTransferParams {
+  float G;
+  float A;
+  float B;
+  float C;
+  float D;
+  float E;
+  float F;
+  uint padding;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureDimensions
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct tint_ExternalTextureParams {
+  uint numPlanes;
+  uint doYuvToRgbConversionOnly;
+  float3x4 yuvToRgbConversionMatrix;
+  tint_GammaTransferParams gammaDecodeParams;
+  tint_GammaTransferParams gammaEncodeParams;
+  float3x3 gamutConversionMatrix;
+  float3x2 sampleTransform;
+  float3x2 loadTransform;
+  float2 samplePlane0RectMin;
+  float2 samplePlane0RectMax;
+  float2 samplePlane1RectMin;
+  float2 samplePlane1RectMax;
+  uint2 visibleSize;
+  float2 plane1CoordFactor;
+};
+
+struct VertexOutput {
+  float4 pos;
+  uint2 prevent_dce;
+};
+
+struct vertex_main_outputs {
+  nointerpolation uint2 VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+Texture2D<float4> arg_0_plane0 : register(t0, space1);
+Texture2D<float4> arg_0_plane1 : register(t1, space1);
+cbuffer cbuffer_arg_0_params : register(b2, space1) {
+  uint4 arg_0_params[17];
+};
+float3x2 v(uint start_byte_offset) {
+  uint4 v_1 = arg_0_params[(start_byte_offset / 16u)];
+  float2 v_2 = asfloat((((((start_byte_offset % 16u) / 4u) == 2u)) ? (v_1.zw) : (v_1.xy)));
+  uint4 v_3 = arg_0_params[((8u + start_byte_offset) / 16u)];
+  float2 v_4 = asfloat(((((((8u + start_byte_offset) % 16u) / 4u) == 2u)) ? (v_3.zw) : (v_3.xy)));
+  uint4 v_5 = arg_0_params[((16u + start_byte_offset) / 16u)];
+  return float3x2(v_2, v_4, asfloat(((((((16u + start_byte_offset) % 16u) / 4u) == 2u)) ? (v_5.zw) : (v_5.xy))));
+}
+
+float3x3 v_6(uint start_byte_offset) {
+  float3 v_7 = asfloat(arg_0_params[(start_byte_offset / 16u)].xyz);
+  float3 v_8 = asfloat(arg_0_params[((16u + start_byte_offset) / 16u)].xyz);
+  return float3x3(v_7, v_8, asfloat(arg_0_params[((32u + start_byte_offset) / 16u)].xyz));
+}
+
+tint_GammaTransferParams v_9(uint start_byte_offset) {
+  float v_10 = asfloat(arg_0_params[(start_byte_offset / 16u)][((start_byte_offset % 16u) / 4u)]);
+  float v_11 = asfloat(arg_0_params[((4u + start_byte_offset) / 16u)][(((4u + start_byte_offset) % 16u) / 4u)]);
+  float v_12 = asfloat(arg_0_params[((8u + start_byte_offset) / 16u)][(((8u + start_byte_offset) % 16u) / 4u)]);
+  float v_13 = asfloat(arg_0_params[((12u + start_byte_offset) / 16u)][(((12u + start_byte_offset) % 16u) / 4u)]);
+  float v_14 = asfloat(arg_0_params[((16u + start_byte_offset) / 16u)][(((16u + start_byte_offset) % 16u) / 4u)]);
+  float v_15 = asfloat(arg_0_params[((20u + start_byte_offset) / 16u)][(((20u + start_byte_offset) % 16u) / 4u)]);
+  float v_16 = asfloat(arg_0_params[((24u + start_byte_offset) / 16u)][(((24u + start_byte_offset) % 16u) / 4u)]);
+  tint_GammaTransferParams v_17 = {v_10, v_11, v_12, v_13, v_14, v_15, v_16, arg_0_params[((28u + start_byte_offset) / 16u)][(((28u + start_byte_offset) % 16u) / 4u)]};
+  return v_17;
+}
+
+float3x4 v_18(uint start_byte_offset) {
+  float4 v_19 = asfloat(arg_0_params[(start_byte_offset / 16u)]);
+  float4 v_20 = asfloat(arg_0_params[((16u + start_byte_offset) / 16u)]);
+  return float3x4(v_19, v_20, asfloat(arg_0_params[((32u + start_byte_offset) / 16u)]));
+}
+
+tint_ExternalTextureParams v_21(uint start_byte_offset) {
+  uint v_22 = arg_0_params[(start_byte_offset / 16u)][((start_byte_offset % 16u) / 4u)];
+  uint v_23 = arg_0_params[((4u + start_byte_offset) / 16u)][(((4u + start_byte_offset) % 16u) / 4u)];
+  float3x4 v_24 = v_18((16u + start_byte_offset));
+  tint_GammaTransferParams v_25 = v_9((64u + start_byte_offset));
+  tint_GammaTransferParams v_26 = v_9((96u + start_byte_offset));
+  float3x3 v_27 = v_6((128u + start_byte_offset));
+  float3x2 v_28 = v((176u + start_byte_offset));
+  float3x2 v_29 = v((200u + start_byte_offset));
+  uint4 v_30 = arg_0_params[((224u + start_byte_offset) / 16u)];
+  float2 v_31 = asfloat(((((((224u + start_byte_offset) % 16u) / 4u) == 2u)) ? (v_30.zw) : (v_30.xy)));
+  uint4 v_32 = arg_0_params[((232u + start_byte_offset) / 16u)];
+  float2 v_33 = asfloat(((((((232u + start_byte_offset) % 16u) / 4u) == 2u)) ? (v_32.zw) : (v_32.xy)));
+  uint4 v_34 = arg_0_params[((240u + start_byte_offset) / 16u)];
+  float2 v_35 = asfloat(((((((240u + start_byte_offset) % 16u) / 4u) == 2u)) ? (v_34.zw) : (v_34.xy)));
+  uint4 v_36 = arg_0_params[((248u + start_byte_offset) / 16u)];
+  float2 v_37 = asfloat(((((((248u + start_byte_offset) % 16u) / 4u) == 2u)) ? (v_36.zw) : (v_36.xy)));
+  uint4 v_38 = arg_0_params[((256u + start_byte_offset) / 16u)];
+  uint2 v_39 = ((((((256u + start_byte_offset) % 16u) / 4u) == 2u)) ? (v_38.zw) : (v_38.xy));
+  uint4 v_40 = arg_0_params[((264u + start_byte_offset) / 16u)];
+  tint_GammaTransferParams v_41 = v_25;
+  tint_GammaTransferParams v_42 = v_26;
+  tint_ExternalTextureParams v_43 = {v_22, v_23, v_24, v_41, v_42, v_27, v_28, v_29, v_31, v_33, v_35, v_37, v_39, asfloat(((((((264u + start_byte_offset) % 16u) / 4u) == 2u)) ? (v_40.zw) : (v_40.xy)))};
+  return v_43;
+}
+
+uint2 textureDimensions_cdc6c9() {
+  tint_ExternalTextureParams v_44 = v_21(0u);
+  uint2 res = (v_44.visibleSize + (1u).xx);
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store2(0u, textureDimensions_cdc6c9());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store2(0u, textureDimensions_cdc6c9());
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = textureDimensions_cdc6c9();
+  VertexOutput v_45 = tint_symbol;
+  return v_45;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_46 = vertex_main_inner();
+  VertexOutput v_47 = v_46;
+  VertexOutput v_48 = v_46;
+  vertex_main_outputs v_49 = {v_48.prevent_dce, v_47.pos};
+  return v_49;
+}
+
diff --git a/test/tint/builtins/gen/var/textureDimensions/cedabd.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/textureDimensions/cedabd.wgsl.expected.ir.dxc.hlsl
index 1fac62e..2dd495f 100644
--- a/test/tint/builtins/gen/var/textureDimensions/cedabd.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureDimensions/cedabd.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,45 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  uint prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureDimensions
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation uint VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+Texture1D<int4> arg_0 : register(t0, space1);
+uint textureDimensions_cedabd() {
+  uint v = 0u;
+  arg_0.GetDimensions(v);
+  uint res = v;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store(0u, textureDimensions_cedabd());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store(0u, textureDimensions_cedabd());
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = textureDimensions_cedabd();
+  VertexOutput v_1 = tint_symbol;
+  return v_1;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_2 = vertex_main_inner();
+  VertexOutput v_3 = v_2;
+  VertexOutput v_4 = v_2;
+  vertex_main_outputs v_5 = {v_4.prevent_dce, v_3.pos};
+  return v_5;
+}
+
diff --git a/test/tint/builtins/gen/var/textureDimensions/cedabd.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/textureDimensions/cedabd.wgsl.expected.ir.fxc.hlsl
index 1fac62e..2dd495f 100644
--- a/test/tint/builtins/gen/var/textureDimensions/cedabd.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureDimensions/cedabd.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,45 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  uint prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureDimensions
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation uint VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+Texture1D<int4> arg_0 : register(t0, space1);
+uint textureDimensions_cedabd() {
+  uint v = 0u;
+  arg_0.GetDimensions(v);
+  uint res = v;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store(0u, textureDimensions_cedabd());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store(0u, textureDimensions_cedabd());
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = textureDimensions_cedabd();
+  VertexOutput v_1 = tint_symbol;
+  return v_1;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_2 = vertex_main_inner();
+  VertexOutput v_3 = v_2;
+  VertexOutput v_4 = v_2;
+  vertex_main_outputs v_5 = {v_4.prevent_dce, v_3.pos};
+  return v_5;
+}
+
diff --git a/test/tint/builtins/gen/var/textureDimensions/cf2b50.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/textureDimensions/cf2b50.wgsl.expected.ir.dxc.hlsl
index 1fac62e..0a5ac93 100644
--- a/test/tint/builtins/gen/var/textureDimensions/cf2b50.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureDimensions/cf2b50.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,47 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  uint2 prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureDimensions
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation uint2 VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+TextureCubeArray<float4> arg_0 : register(t0, space1);
+uint2 textureDimensions_cf2b50() {
+  uint arg_1 = 1u;
+  TextureCubeArray<float4> v = arg_0;
+  uint4 v_1 = (0u).xxxx;
+  v.GetDimensions(uint(arg_1), v_1[0u], v_1[1u], v_1[2u], v_1[3u]);
+  uint2 res = v_1.xy;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store2(0u, textureDimensions_cf2b50());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store2(0u, textureDimensions_cf2b50());
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = textureDimensions_cf2b50();
+  VertexOutput v_2 = tint_symbol;
+  return v_2;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_3 = vertex_main_inner();
+  VertexOutput v_4 = v_3;
+  VertexOutput v_5 = v_3;
+  vertex_main_outputs v_6 = {v_5.prevent_dce, v_4.pos};
+  return v_6;
+}
+
diff --git a/test/tint/builtins/gen/var/textureDimensions/cf2b50.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/textureDimensions/cf2b50.wgsl.expected.ir.fxc.hlsl
index 1fac62e..0a5ac93 100644
--- a/test/tint/builtins/gen/var/textureDimensions/cf2b50.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureDimensions/cf2b50.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,47 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  uint2 prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureDimensions
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation uint2 VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+TextureCubeArray<float4> arg_0 : register(t0, space1);
+uint2 textureDimensions_cf2b50() {
+  uint arg_1 = 1u;
+  TextureCubeArray<float4> v = arg_0;
+  uint4 v_1 = (0u).xxxx;
+  v.GetDimensions(uint(arg_1), v_1[0u], v_1[1u], v_1[2u], v_1[3u]);
+  uint2 res = v_1.xy;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store2(0u, textureDimensions_cf2b50());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store2(0u, textureDimensions_cf2b50());
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = textureDimensions_cf2b50();
+  VertexOutput v_2 = tint_symbol;
+  return v_2;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_3 = vertex_main_inner();
+  VertexOutput v_4 = v_3;
+  VertexOutput v_5 = v_3;
+  vertex_main_outputs v_6 = {v_5.prevent_dce, v_4.pos};
+  return v_6;
+}
+
diff --git a/test/tint/builtins/gen/var/textureDimensions/d0778e.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/textureDimensions/d0778e.wgsl.expected.ir.dxc.hlsl
index 1fac62e..a2d5aeb 100644
--- a/test/tint/builtins/gen/var/textureDimensions/d0778e.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureDimensions/d0778e.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,45 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  uint3 prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureDimensions
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation uint3 VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+Texture3D<uint4> arg_0 : register(t0, space1);
+uint3 textureDimensions_d0778e() {
+  uint3 v = (0u).xxx;
+  arg_0.GetDimensions(v[0u], v[1u], v[2u]);
+  uint3 res = v;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store3(0u, textureDimensions_d0778e());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store3(0u, textureDimensions_d0778e());
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = textureDimensions_d0778e();
+  VertexOutput v_1 = tint_symbol;
+  return v_1;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_2 = vertex_main_inner();
+  VertexOutput v_3 = v_2;
+  VertexOutput v_4 = v_2;
+  vertex_main_outputs v_5 = {v_4.prevent_dce, v_3.pos};
+  return v_5;
+}
+
diff --git a/test/tint/builtins/gen/var/textureDimensions/d0778e.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/textureDimensions/d0778e.wgsl.expected.ir.fxc.hlsl
index 1fac62e..a2d5aeb 100644
--- a/test/tint/builtins/gen/var/textureDimensions/d0778e.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureDimensions/d0778e.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,45 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  uint3 prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureDimensions
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation uint3 VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+Texture3D<uint4> arg_0 : register(t0, space1);
+uint3 textureDimensions_d0778e() {
+  uint3 v = (0u).xxx;
+  arg_0.GetDimensions(v[0u], v[1u], v[2u]);
+  uint3 res = v;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store3(0u, textureDimensions_d0778e());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store3(0u, textureDimensions_d0778e());
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = textureDimensions_d0778e();
+  VertexOutput v_1 = tint_symbol;
+  return v_1;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_2 = vertex_main_inner();
+  VertexOutput v_3 = v_2;
+  VertexOutput v_4 = v_2;
+  vertex_main_outputs v_5 = {v_4.prevent_dce, v_3.pos};
+  return v_5;
+}
+
diff --git a/test/tint/builtins/gen/var/textureDimensions/d08a94.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/textureDimensions/d08a94.wgsl.expected.ir.dxc.hlsl
index 1fac62e..bc35392 100644
--- a/test/tint/builtins/gen/var/textureDimensions/d08a94.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureDimensions/d08a94.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,19 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureDimensions
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWByteAddressBuffer prevent_dce : register(u0);
+RWTexture1D<int4> arg_0 : register(u0, space1);
+uint textureDimensions_d08a94() {
+  uint v = 0u;
+  arg_0.GetDimensions(v);
+  uint res = v;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store(0u, textureDimensions_d08a94());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store(0u, textureDimensions_d08a94());
+}
+
diff --git a/test/tint/builtins/gen/var/textureDimensions/d08a94.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/textureDimensions/d08a94.wgsl.expected.ir.fxc.hlsl
index 1fac62e..bc35392 100644
--- a/test/tint/builtins/gen/var/textureDimensions/d08a94.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureDimensions/d08a94.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,19 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureDimensions
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWByteAddressBuffer prevent_dce : register(u0);
+RWTexture1D<int4> arg_0 : register(u0, space1);
+uint textureDimensions_d08a94() {
+  uint v = 0u;
+  arg_0.GetDimensions(v);
+  uint res = v;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store(0u, textureDimensions_d08a94());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store(0u, textureDimensions_d08a94());
+}
+
diff --git a/test/tint/builtins/gen/var/textureDimensions/d1b882.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/textureDimensions/d1b882.wgsl.expected.ir.dxc.hlsl
index 1fac62e..aa63828 100644
--- a/test/tint/builtins/gen/var/textureDimensions/d1b882.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureDimensions/d1b882.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,19 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureDimensions
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWByteAddressBuffer prevent_dce : register(u0);
+RWTexture2DArray<float4> arg_0 : register(u0, space1);
+uint2 textureDimensions_d1b882() {
+  uint3 v = (0u).xxx;
+  arg_0.GetDimensions(v[0u], v[1u], v[2u]);
+  uint2 res = v.xy;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store2(0u, textureDimensions_d1b882());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store2(0u, textureDimensions_d1b882());
+}
+
diff --git a/test/tint/builtins/gen/var/textureDimensions/d1b882.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/textureDimensions/d1b882.wgsl.expected.ir.fxc.hlsl
index 1fac62e..aa63828 100644
--- a/test/tint/builtins/gen/var/textureDimensions/d1b882.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureDimensions/d1b882.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,19 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureDimensions
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWByteAddressBuffer prevent_dce : register(u0);
+RWTexture2DArray<float4> arg_0 : register(u0, space1);
+uint2 textureDimensions_d1b882() {
+  uint3 v = (0u).xxx;
+  arg_0.GetDimensions(v[0u], v[1u], v[2u]);
+  uint2 res = v.xy;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store2(0u, textureDimensions_d1b882());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store2(0u, textureDimensions_d1b882());
+}
+
diff --git a/test/tint/builtins/gen/var/textureDimensions/d3accd.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/textureDimensions/d3accd.wgsl.expected.ir.dxc.hlsl
index 1fac62e..9dcb208 100644
--- a/test/tint/builtins/gen/var/textureDimensions/d3accd.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureDimensions/d3accd.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,47 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  uint2 prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureDimensions
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation uint2 VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+TextureCube arg_0 : register(t0, space1);
+uint2 textureDimensions_d3accd() {
+  uint arg_1 = 1u;
+  TextureCube v = arg_0;
+  uint3 v_1 = (0u).xxx;
+  v.GetDimensions(uint(arg_1), v_1[0u], v_1[1u], v_1[2u]);
+  uint2 res = v_1.xy;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store2(0u, textureDimensions_d3accd());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store2(0u, textureDimensions_d3accd());
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = textureDimensions_d3accd();
+  VertexOutput v_2 = tint_symbol;
+  return v_2;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_3 = vertex_main_inner();
+  VertexOutput v_4 = v_3;
+  VertexOutput v_5 = v_3;
+  vertex_main_outputs v_6 = {v_5.prevent_dce, v_4.pos};
+  return v_6;
+}
+
diff --git a/test/tint/builtins/gen/var/textureDimensions/d3accd.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/textureDimensions/d3accd.wgsl.expected.ir.fxc.hlsl
index 1fac62e..9dcb208 100644
--- a/test/tint/builtins/gen/var/textureDimensions/d3accd.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureDimensions/d3accd.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,47 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  uint2 prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureDimensions
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation uint2 VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+TextureCube arg_0 : register(t0, space1);
+uint2 textureDimensions_d3accd() {
+  uint arg_1 = 1u;
+  TextureCube v = arg_0;
+  uint3 v_1 = (0u).xxx;
+  v.GetDimensions(uint(arg_1), v_1[0u], v_1[1u], v_1[2u]);
+  uint2 res = v_1.xy;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store2(0u, textureDimensions_d3accd());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store2(0u, textureDimensions_d3accd());
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = textureDimensions_d3accd();
+  VertexOutput v_2 = tint_symbol;
+  return v_2;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_3 = vertex_main_inner();
+  VertexOutput v_4 = v_3;
+  VertexOutput v_5 = v_3;
+  vertex_main_outputs v_6 = {v_5.prevent_dce, v_4.pos};
+  return v_6;
+}
+
diff --git a/test/tint/builtins/gen/var/textureDimensions/d44ac3.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/textureDimensions/d44ac3.wgsl.expected.ir.dxc.hlsl
index 1fac62e..0ec2e01 100644
--- a/test/tint/builtins/gen/var/textureDimensions/d44ac3.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureDimensions/d44ac3.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,45 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  uint2 prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureDimensions
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation uint2 VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+Texture2D<float4> arg_0 : register(t0, space1);
+uint2 textureDimensions_d44ac3() {
+  uint2 v = (0u).xx;
+  arg_0.GetDimensions(v[0u], v[1u]);
+  uint2 res = v;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store2(0u, textureDimensions_d44ac3());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store2(0u, textureDimensions_d44ac3());
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = textureDimensions_d44ac3();
+  VertexOutput v_1 = tint_symbol;
+  return v_1;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_2 = vertex_main_inner();
+  VertexOutput v_3 = v_2;
+  VertexOutput v_4 = v_2;
+  vertex_main_outputs v_5 = {v_4.prevent_dce, v_3.pos};
+  return v_5;
+}
+
diff --git a/test/tint/builtins/gen/var/textureDimensions/d44ac3.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/textureDimensions/d44ac3.wgsl.expected.ir.fxc.hlsl
index 1fac62e..0ec2e01 100644
--- a/test/tint/builtins/gen/var/textureDimensions/d44ac3.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureDimensions/d44ac3.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,45 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  uint2 prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureDimensions
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation uint2 VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+Texture2D<float4> arg_0 : register(t0, space1);
+uint2 textureDimensions_d44ac3() {
+  uint2 v = (0u).xx;
+  arg_0.GetDimensions(v[0u], v[1u]);
+  uint2 res = v;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store2(0u, textureDimensions_d44ac3());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store2(0u, textureDimensions_d44ac3());
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = textureDimensions_d44ac3();
+  VertexOutput v_1 = tint_symbol;
+  return v_1;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_2 = vertex_main_inner();
+  VertexOutput v_3 = v_2;
+  VertexOutput v_4 = v_2;
+  vertex_main_outputs v_5 = {v_4.prevent_dce, v_3.pos};
+  return v_5;
+}
+
diff --git a/test/tint/builtins/gen/var/textureDimensions/d44dd1.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/textureDimensions/d44dd1.wgsl.expected.ir.dxc.hlsl
index 1fac62e..089c76b2 100644
--- a/test/tint/builtins/gen/var/textureDimensions/d44dd1.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureDimensions/d44dd1.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,45 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  uint2 prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureDimensions
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation uint2 VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+Texture2D<uint4> arg_0 : register(t0, space1);
+uint2 textureDimensions_d44dd1() {
+  uint2 v = (0u).xx;
+  arg_0.GetDimensions(v[0u], v[1u]);
+  uint2 res = v;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store2(0u, textureDimensions_d44dd1());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store2(0u, textureDimensions_d44dd1());
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = textureDimensions_d44dd1();
+  VertexOutput v_1 = tint_symbol;
+  return v_1;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_2 = vertex_main_inner();
+  VertexOutput v_3 = v_2;
+  VertexOutput v_4 = v_2;
+  vertex_main_outputs v_5 = {v_4.prevent_dce, v_3.pos};
+  return v_5;
+}
+
diff --git a/test/tint/builtins/gen/var/textureDimensions/d44dd1.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/textureDimensions/d44dd1.wgsl.expected.ir.fxc.hlsl
index 1fac62e..089c76b2 100644
--- a/test/tint/builtins/gen/var/textureDimensions/d44dd1.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureDimensions/d44dd1.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,45 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  uint2 prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureDimensions
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation uint2 VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+Texture2D<uint4> arg_0 : register(t0, space1);
+uint2 textureDimensions_d44dd1() {
+  uint2 v = (0u).xx;
+  arg_0.GetDimensions(v[0u], v[1u]);
+  uint2 res = v;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store2(0u, textureDimensions_d44dd1());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store2(0u, textureDimensions_d44dd1());
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = textureDimensions_d44dd1();
+  VertexOutput v_1 = tint_symbol;
+  return v_1;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_2 = vertex_main_inner();
+  VertexOutput v_3 = v_2;
+  VertexOutput v_4 = v_2;
+  vertex_main_outputs v_5 = {v_4.prevent_dce, v_3.pos};
+  return v_5;
+}
+
diff --git a/test/tint/builtins/gen/var/textureDimensions/d63c28.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/textureDimensions/d63c28.wgsl.expected.ir.dxc.hlsl
index 1fac62e..63e2d87 100644
--- a/test/tint/builtins/gen/var/textureDimensions/d63c28.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureDimensions/d63c28.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,19 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureDimensions
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWByteAddressBuffer prevent_dce : register(u0);
+RWTexture2DArray<float4> arg_0 : register(u0, space1);
+uint2 textureDimensions_d63c28() {
+  uint3 v = (0u).xxx;
+  arg_0.GetDimensions(v[0u], v[1u], v[2u]);
+  uint2 res = v.xy;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store2(0u, textureDimensions_d63c28());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store2(0u, textureDimensions_d63c28());
+}
+
diff --git a/test/tint/builtins/gen/var/textureDimensions/d63c28.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/textureDimensions/d63c28.wgsl.expected.ir.fxc.hlsl
index 1fac62e..63e2d87 100644
--- a/test/tint/builtins/gen/var/textureDimensions/d63c28.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureDimensions/d63c28.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,19 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureDimensions
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWByteAddressBuffer prevent_dce : register(u0);
+RWTexture2DArray<float4> arg_0 : register(u0, space1);
+uint2 textureDimensions_d63c28() {
+  uint3 v = (0u).xxx;
+  arg_0.GetDimensions(v[0u], v[1u], v[2u]);
+  uint2 res = v.xy;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store2(0u, textureDimensions_d63c28());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store2(0u, textureDimensions_d63c28());
+}
+
diff --git a/test/tint/builtins/gen/var/textureDimensions/d6f3cf.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/textureDimensions/d6f3cf.wgsl.expected.ir.dxc.hlsl
index 1fac62e..ac09102 100644
--- a/test/tint/builtins/gen/var/textureDimensions/d6f3cf.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureDimensions/d6f3cf.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,45 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  uint2 prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureDimensions
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation uint2 VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+Texture2D<int4> arg_0 : register(t0, space1);
+uint2 textureDimensions_d6f3cf() {
+  uint2 v = (0u).xx;
+  arg_0.GetDimensions(v[0u], v[1u]);
+  uint2 res = v;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store2(0u, textureDimensions_d6f3cf());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store2(0u, textureDimensions_d6f3cf());
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = textureDimensions_d6f3cf();
+  VertexOutput v_1 = tint_symbol;
+  return v_1;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_2 = vertex_main_inner();
+  VertexOutput v_3 = v_2;
+  VertexOutput v_4 = v_2;
+  vertex_main_outputs v_5 = {v_4.prevent_dce, v_3.pos};
+  return v_5;
+}
+
diff --git a/test/tint/builtins/gen/var/textureDimensions/d6f3cf.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/textureDimensions/d6f3cf.wgsl.expected.ir.fxc.hlsl
index 1fac62e..ac09102 100644
--- a/test/tint/builtins/gen/var/textureDimensions/d6f3cf.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureDimensions/d6f3cf.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,45 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  uint2 prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureDimensions
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation uint2 VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+Texture2D<int4> arg_0 : register(t0, space1);
+uint2 textureDimensions_d6f3cf() {
+  uint2 v = (0u).xx;
+  arg_0.GetDimensions(v[0u], v[1u]);
+  uint2 res = v;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store2(0u, textureDimensions_d6f3cf());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store2(0u, textureDimensions_d6f3cf());
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = textureDimensions_d6f3cf();
+  VertexOutput v_1 = tint_symbol;
+  return v_1;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_2 = vertex_main_inner();
+  VertexOutput v_3 = v_2;
+  VertexOutput v_4 = v_2;
+  vertex_main_outputs v_5 = {v_4.prevent_dce, v_3.pos};
+  return v_5;
+}
+
diff --git a/test/tint/builtins/gen/var/textureDimensions/d8ba68.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/textureDimensions/d8ba68.wgsl.expected.ir.dxc.hlsl
index 1fac62e..6efdde7 100644
--- a/test/tint/builtins/gen/var/textureDimensions/d8ba68.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureDimensions/d8ba68.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,19 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureDimensions
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWByteAddressBuffer prevent_dce : register(u0);
+RWTexture2D<uint4> arg_0 : register(u0, space1);
+uint2 textureDimensions_d8ba68() {
+  uint2 v = (0u).xx;
+  arg_0.GetDimensions(v[0u], v[1u]);
+  uint2 res = v;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store2(0u, textureDimensions_d8ba68());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store2(0u, textureDimensions_d8ba68());
+}
+
diff --git a/test/tint/builtins/gen/var/textureDimensions/d8ba68.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/textureDimensions/d8ba68.wgsl.expected.ir.fxc.hlsl
index 1fac62e..6efdde7 100644
--- a/test/tint/builtins/gen/var/textureDimensions/d8ba68.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureDimensions/d8ba68.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,19 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureDimensions
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWByteAddressBuffer prevent_dce : register(u0);
+RWTexture2D<uint4> arg_0 : register(u0, space1);
+uint2 textureDimensions_d8ba68() {
+  uint2 v = (0u).xx;
+  arg_0.GetDimensions(v[0u], v[1u]);
+  uint2 res = v;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store2(0u, textureDimensions_d8ba68());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store2(0u, textureDimensions_d8ba68());
+}
+
diff --git a/test/tint/builtins/gen/var/textureDimensions/d8f887.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/textureDimensions/d8f887.wgsl.expected.ir.dxc.hlsl
index 1fac62e..70909c3 100644
--- a/test/tint/builtins/gen/var/textureDimensions/d8f887.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureDimensions/d8f887.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,19 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureDimensions
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWByteAddressBuffer prevent_dce : register(u0);
+RWTexture3D<uint4> arg_0 : register(u0, space1);
+uint3 textureDimensions_d8f887() {
+  uint3 v = (0u).xxx;
+  arg_0.GetDimensions(v[0u], v[1u], v[2u]);
+  uint3 res = v;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store3(0u, textureDimensions_d8f887());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store3(0u, textureDimensions_d8f887());
+}
+
diff --git a/test/tint/builtins/gen/var/textureDimensions/d8f887.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/textureDimensions/d8f887.wgsl.expected.ir.fxc.hlsl
index 1fac62e..70909c3 100644
--- a/test/tint/builtins/gen/var/textureDimensions/d8f887.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureDimensions/d8f887.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,19 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureDimensions
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWByteAddressBuffer prevent_dce : register(u0);
+RWTexture3D<uint4> arg_0 : register(u0, space1);
+uint3 textureDimensions_d8f887() {
+  uint3 v = (0u).xxx;
+  arg_0.GetDimensions(v[0u], v[1u], v[2u]);
+  uint3 res = v;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store3(0u, textureDimensions_d8f887());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store3(0u, textureDimensions_d8f887());
+}
+
diff --git a/test/tint/builtins/gen/var/textureDimensions/da30d2.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/textureDimensions/da30d2.wgsl.expected.ir.dxc.hlsl
index 1fac62e..9072019 100644
--- a/test/tint/builtins/gen/var/textureDimensions/da30d2.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureDimensions/da30d2.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,19 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureDimensions
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWByteAddressBuffer prevent_dce : register(u0);
+RWTexture1D<float4> arg_0 : register(u0, space1);
+uint textureDimensions_da30d2() {
+  uint v = 0u;
+  arg_0.GetDimensions(v);
+  uint res = v;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store(0u, textureDimensions_da30d2());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store(0u, textureDimensions_da30d2());
+}
+
diff --git a/test/tint/builtins/gen/var/textureDimensions/da30d2.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/textureDimensions/da30d2.wgsl.expected.ir.fxc.hlsl
index 1fac62e..9072019 100644
--- a/test/tint/builtins/gen/var/textureDimensions/da30d2.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureDimensions/da30d2.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,19 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureDimensions
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWByteAddressBuffer prevent_dce : register(u0);
+RWTexture1D<float4> arg_0 : register(u0, space1);
+uint textureDimensions_da30d2() {
+  uint v = 0u;
+  arg_0.GetDimensions(v);
+  uint res = v;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store(0u, textureDimensions_da30d2());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store(0u, textureDimensions_da30d2());
+}
+
diff --git a/test/tint/builtins/gen/var/textureDimensions/daf0fe.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/textureDimensions/daf0fe.wgsl.expected.ir.dxc.hlsl
index 1fac62e..1c6350a 100644
--- a/test/tint/builtins/gen/var/textureDimensions/daf0fe.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureDimensions/daf0fe.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,45 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  uint2 prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureDimensions
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation uint2 VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+Texture2DArray<float4> arg_0 : register(t0, space1);
+uint2 textureDimensions_daf0fe() {
+  uint3 v = (0u).xxx;
+  arg_0.GetDimensions(v[0u], v[1u], v[2u]);
+  uint2 res = v.xy;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store2(0u, textureDimensions_daf0fe());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store2(0u, textureDimensions_daf0fe());
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = textureDimensions_daf0fe();
+  VertexOutput v_1 = tint_symbol;
+  return v_1;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_2 = vertex_main_inner();
+  VertexOutput v_3 = v_2;
+  VertexOutput v_4 = v_2;
+  vertex_main_outputs v_5 = {v_4.prevent_dce, v_3.pos};
+  return v_5;
+}
+
diff --git a/test/tint/builtins/gen/var/textureDimensions/daf0fe.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/textureDimensions/daf0fe.wgsl.expected.ir.fxc.hlsl
index 1fac62e..1c6350a 100644
--- a/test/tint/builtins/gen/var/textureDimensions/daf0fe.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureDimensions/daf0fe.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,45 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  uint2 prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureDimensions
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation uint2 VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+Texture2DArray<float4> arg_0 : register(t0, space1);
+uint2 textureDimensions_daf0fe() {
+  uint3 v = (0u).xxx;
+  arg_0.GetDimensions(v[0u], v[1u], v[2u]);
+  uint2 res = v.xy;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store2(0u, textureDimensions_daf0fe());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store2(0u, textureDimensions_daf0fe());
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = textureDimensions_daf0fe();
+  VertexOutput v_1 = tint_symbol;
+  return v_1;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_2 = vertex_main_inner();
+  VertexOutput v_3 = v_2;
+  VertexOutput v_4 = v_2;
+  vertex_main_outputs v_5 = {v_4.prevent_dce, v_3.pos};
+  return v_5;
+}
+
diff --git a/test/tint/builtins/gen/var/textureDimensions/db7131.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/textureDimensions/db7131.wgsl.expected.ir.dxc.hlsl
index 1fac62e..fc45430 100644
--- a/test/tint/builtins/gen/var/textureDimensions/db7131.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureDimensions/db7131.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,45 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  uint3 prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureDimensions
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation uint3 VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+Texture3D<int4> arg_0 : register(t0, space1);
+uint3 textureDimensions_db7131() {
+  uint3 v = (0u).xxx;
+  arg_0.GetDimensions(v[0u], v[1u], v[2u]);
+  uint3 res = v;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store3(0u, textureDimensions_db7131());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store3(0u, textureDimensions_db7131());
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = textureDimensions_db7131();
+  VertexOutput v_1 = tint_symbol;
+  return v_1;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_2 = vertex_main_inner();
+  VertexOutput v_3 = v_2;
+  VertexOutput v_4 = v_2;
+  vertex_main_outputs v_5 = {v_4.prevent_dce, v_3.pos};
+  return v_5;
+}
+
diff --git a/test/tint/builtins/gen/var/textureDimensions/db7131.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/textureDimensions/db7131.wgsl.expected.ir.fxc.hlsl
index 1fac62e..fc45430 100644
--- a/test/tint/builtins/gen/var/textureDimensions/db7131.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureDimensions/db7131.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,45 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  uint3 prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureDimensions
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation uint3 VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+Texture3D<int4> arg_0 : register(t0, space1);
+uint3 textureDimensions_db7131() {
+  uint3 v = (0u).xxx;
+  arg_0.GetDimensions(v[0u], v[1u], v[2u]);
+  uint3 res = v;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store3(0u, textureDimensions_db7131());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store3(0u, textureDimensions_db7131());
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = textureDimensions_db7131();
+  VertexOutput v_1 = tint_symbol;
+  return v_1;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_2 = vertex_main_inner();
+  VertexOutput v_3 = v_2;
+  VertexOutput v_4 = v_2;
+  vertex_main_outputs v_5 = {v_4.prevent_dce, v_3.pos};
+  return v_5;
+}
+
diff --git a/test/tint/builtins/gen/var/textureDimensions/dc83ce.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/textureDimensions/dc83ce.wgsl.expected.ir.dxc.hlsl
index 1fac62e..8100087 100644
--- a/test/tint/builtins/gen/var/textureDimensions/dc83ce.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureDimensions/dc83ce.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,19 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureDimensions
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWByteAddressBuffer prevent_dce : register(u0);
+RWTexture2D<uint4> arg_0 : register(u0, space1);
+uint2 textureDimensions_dc83ce() {
+  uint2 v = (0u).xx;
+  arg_0.GetDimensions(v[0u], v[1u]);
+  uint2 res = v;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store2(0u, textureDimensions_dc83ce());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store2(0u, textureDimensions_dc83ce());
+}
+
diff --git a/test/tint/builtins/gen/var/textureDimensions/dc83ce.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/textureDimensions/dc83ce.wgsl.expected.ir.fxc.hlsl
index 1fac62e..8100087 100644
--- a/test/tint/builtins/gen/var/textureDimensions/dc83ce.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureDimensions/dc83ce.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,19 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureDimensions
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWByteAddressBuffer prevent_dce : register(u0);
+RWTexture2D<uint4> arg_0 : register(u0, space1);
+uint2 textureDimensions_dc83ce() {
+  uint2 v = (0u).xx;
+  arg_0.GetDimensions(v[0u], v[1u]);
+  uint2 res = v;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store2(0u, textureDimensions_dc83ce());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store2(0u, textureDimensions_dc83ce());
+}
+
diff --git a/test/tint/builtins/gen/var/textureDimensions/de03c6.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/textureDimensions/de03c6.wgsl.expected.ir.dxc.hlsl
index 1fac62e..eec7c2e 100644
--- a/test/tint/builtins/gen/var/textureDimensions/de03c6.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureDimensions/de03c6.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,45 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  uint prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureDimensions
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation uint VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+Texture1D<uint4> arg_0 : register(t0, space1);
+uint textureDimensions_de03c6() {
+  uint v = 0u;
+  arg_0.GetDimensions(v);
+  uint res = v;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store(0u, textureDimensions_de03c6());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store(0u, textureDimensions_de03c6());
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = textureDimensions_de03c6();
+  VertexOutput v_1 = tint_symbol;
+  return v_1;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_2 = vertex_main_inner();
+  VertexOutput v_3 = v_2;
+  VertexOutput v_4 = v_2;
+  vertex_main_outputs v_5 = {v_4.prevent_dce, v_3.pos};
+  return v_5;
+}
+
diff --git a/test/tint/builtins/gen/var/textureDimensions/de03c6.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/textureDimensions/de03c6.wgsl.expected.ir.fxc.hlsl
index 1fac62e..eec7c2e 100644
--- a/test/tint/builtins/gen/var/textureDimensions/de03c6.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureDimensions/de03c6.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,45 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  uint prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureDimensions
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation uint VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+Texture1D<uint4> arg_0 : register(t0, space1);
+uint textureDimensions_de03c6() {
+  uint v = 0u;
+  arg_0.GetDimensions(v);
+  uint res = v;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store(0u, textureDimensions_de03c6());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store(0u, textureDimensions_de03c6());
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = textureDimensions_de03c6();
+  VertexOutput v_1 = tint_symbol;
+  return v_1;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_2 = vertex_main_inner();
+  VertexOutput v_3 = v_2;
+  VertexOutput v_4 = v_2;
+  vertex_main_outputs v_5 = {v_4.prevent_dce, v_3.pos};
+  return v_5;
+}
+
diff --git a/test/tint/builtins/gen/var/textureDimensions/deb3c0.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/textureDimensions/deb3c0.wgsl.expected.ir.dxc.hlsl
index 1fac62e..aac1c93 100644
--- a/test/tint/builtins/gen/var/textureDimensions/deb3c0.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureDimensions/deb3c0.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,19 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureDimensions
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWByteAddressBuffer prevent_dce : register(u0);
+RWTexture3D<float4> arg_0 : register(u0, space1);
+uint3 textureDimensions_deb3c0() {
+  uint3 v = (0u).xxx;
+  arg_0.GetDimensions(v[0u], v[1u], v[2u]);
+  uint3 res = v;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store3(0u, textureDimensions_deb3c0());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store3(0u, textureDimensions_deb3c0());
+}
+
diff --git a/test/tint/builtins/gen/var/textureDimensions/deb3c0.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/textureDimensions/deb3c0.wgsl.expected.ir.fxc.hlsl
index 1fac62e..aac1c93 100644
--- a/test/tint/builtins/gen/var/textureDimensions/deb3c0.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureDimensions/deb3c0.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,19 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureDimensions
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWByteAddressBuffer prevent_dce : register(u0);
+RWTexture3D<float4> arg_0 : register(u0, space1);
+uint3 textureDimensions_deb3c0() {
+  uint3 v = (0u).xxx;
+  arg_0.GetDimensions(v[0u], v[1u], v[2u]);
+  uint3 res = v;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store3(0u, textureDimensions_deb3c0());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store3(0u, textureDimensions_deb3c0());
+}
+
diff --git a/test/tint/builtins/gen/var/textureDimensions/dee461.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/textureDimensions/dee461.wgsl.expected.ir.dxc.hlsl
index 1fac62e..2482b6e 100644
--- a/test/tint/builtins/gen/var/textureDimensions/dee461.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureDimensions/dee461.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,19 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureDimensions
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWByteAddressBuffer prevent_dce : register(u0);
+RWTexture2D<float4> arg_0 : register(u0, space1);
+uint2 textureDimensions_dee461() {
+  uint2 v = (0u).xx;
+  arg_0.GetDimensions(v[0u], v[1u]);
+  uint2 res = v;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store2(0u, textureDimensions_dee461());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store2(0u, textureDimensions_dee461());
+}
+
diff --git a/test/tint/builtins/gen/var/textureDimensions/dee461.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/textureDimensions/dee461.wgsl.expected.ir.fxc.hlsl
index 1fac62e..2482b6e 100644
--- a/test/tint/builtins/gen/var/textureDimensions/dee461.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureDimensions/dee461.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,19 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureDimensions
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWByteAddressBuffer prevent_dce : register(u0);
+RWTexture2D<float4> arg_0 : register(u0, space1);
+uint2 textureDimensions_dee461() {
+  uint2 v = (0u).xx;
+  arg_0.GetDimensions(v[0u], v[1u]);
+  uint2 res = v;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store2(0u, textureDimensions_dee461());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store2(0u, textureDimensions_dee461());
+}
+
diff --git a/test/tint/builtins/gen/var/textureDimensions/dfdc32.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/textureDimensions/dfdc32.wgsl.expected.ir.dxc.hlsl
index 1fac62e..b15a2c1 100644
--- a/test/tint/builtins/gen/var/textureDimensions/dfdc32.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureDimensions/dfdc32.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,47 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  uint2 prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureDimensions
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation uint2 VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+Texture2DArray arg_0 : register(t0, space1);
+uint2 textureDimensions_dfdc32() {
+  int arg_1 = 1;
+  Texture2DArray v = arg_0;
+  uint4 v_1 = (0u).xxxx;
+  v.GetDimensions(uint(arg_1), v_1[0u], v_1[1u], v_1[2u], v_1[3u]);
+  uint2 res = v_1.xy;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store2(0u, textureDimensions_dfdc32());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store2(0u, textureDimensions_dfdc32());
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = textureDimensions_dfdc32();
+  VertexOutput v_2 = tint_symbol;
+  return v_2;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_3 = vertex_main_inner();
+  VertexOutput v_4 = v_3;
+  VertexOutput v_5 = v_3;
+  vertex_main_outputs v_6 = {v_5.prevent_dce, v_4.pos};
+  return v_6;
+}
+
diff --git a/test/tint/builtins/gen/var/textureDimensions/dfdc32.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/textureDimensions/dfdc32.wgsl.expected.ir.fxc.hlsl
index 1fac62e..b15a2c1 100644
--- a/test/tint/builtins/gen/var/textureDimensions/dfdc32.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureDimensions/dfdc32.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,47 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  uint2 prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureDimensions
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation uint2 VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+Texture2DArray arg_0 : register(t0, space1);
+uint2 textureDimensions_dfdc32() {
+  int arg_1 = 1;
+  Texture2DArray v = arg_0;
+  uint4 v_1 = (0u).xxxx;
+  v.GetDimensions(uint(arg_1), v_1[0u], v_1[1u], v_1[2u], v_1[3u]);
+  uint2 res = v_1.xy;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store2(0u, textureDimensions_dfdc32());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store2(0u, textureDimensions_dfdc32());
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = textureDimensions_dfdc32();
+  VertexOutput v_2 = tint_symbol;
+  return v_2;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_3 = vertex_main_inner();
+  VertexOutput v_4 = v_3;
+  VertexOutput v_5 = v_3;
+  vertex_main_outputs v_6 = {v_5.prevent_dce, v_4.pos};
+  return v_6;
+}
+
diff --git a/test/tint/builtins/gen/var/textureDimensions/e122fe.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/textureDimensions/e122fe.wgsl.expected.ir.dxc.hlsl
index 1fac62e..18c8fb2 100644
--- a/test/tint/builtins/gen/var/textureDimensions/e122fe.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureDimensions/e122fe.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,19 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureDimensions
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWByteAddressBuffer prevent_dce : register(u0);
+RWTexture1D<float4> arg_0 : register(u0, space1);
+uint textureDimensions_e122fe() {
+  uint v = 0u;
+  arg_0.GetDimensions(v);
+  uint res = v;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store(0u, textureDimensions_e122fe());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store(0u, textureDimensions_e122fe());
+}
+
diff --git a/test/tint/builtins/gen/var/textureDimensions/e122fe.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/textureDimensions/e122fe.wgsl.expected.ir.fxc.hlsl
index 1fac62e..18c8fb2 100644
--- a/test/tint/builtins/gen/var/textureDimensions/e122fe.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureDimensions/e122fe.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,19 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureDimensions
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWByteAddressBuffer prevent_dce : register(u0);
+RWTexture1D<float4> arg_0 : register(u0, space1);
+uint textureDimensions_e122fe() {
+  uint v = 0u;
+  arg_0.GetDimensions(v);
+  uint res = v;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store(0u, textureDimensions_e122fe());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store(0u, textureDimensions_e122fe());
+}
+
diff --git a/test/tint/builtins/gen/var/textureDimensions/e18a8b.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/textureDimensions/e18a8b.wgsl.expected.ir.dxc.hlsl
index 1fac62e..dd3af3e 100644
--- a/test/tint/builtins/gen/var/textureDimensions/e18a8b.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureDimensions/e18a8b.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,47 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  uint2 prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureDimensions
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation uint2 VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+Texture2D<uint4> arg_0 : register(t0, space1);
+uint2 textureDimensions_e18a8b() {
+  uint arg_1 = 1u;
+  Texture2D<uint4> v = arg_0;
+  uint3 v_1 = (0u).xxx;
+  v.GetDimensions(uint(arg_1), v_1[0u], v_1[1u], v_1[2u]);
+  uint2 res = v_1.xy;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store2(0u, textureDimensions_e18a8b());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store2(0u, textureDimensions_e18a8b());
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = textureDimensions_e18a8b();
+  VertexOutput v_2 = tint_symbol;
+  return v_2;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_3 = vertex_main_inner();
+  VertexOutput v_4 = v_3;
+  VertexOutput v_5 = v_3;
+  vertex_main_outputs v_6 = {v_5.prevent_dce, v_4.pos};
+  return v_6;
+}
+
diff --git a/test/tint/builtins/gen/var/textureDimensions/e18a8b.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/textureDimensions/e18a8b.wgsl.expected.ir.fxc.hlsl
index 1fac62e..dd3af3e 100644
--- a/test/tint/builtins/gen/var/textureDimensions/e18a8b.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureDimensions/e18a8b.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,47 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  uint2 prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureDimensions
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation uint2 VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+Texture2D<uint4> arg_0 : register(t0, space1);
+uint2 textureDimensions_e18a8b() {
+  uint arg_1 = 1u;
+  Texture2D<uint4> v = arg_0;
+  uint3 v_1 = (0u).xxx;
+  v.GetDimensions(uint(arg_1), v_1[0u], v_1[1u], v_1[2u]);
+  uint2 res = v_1.xy;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store2(0u, textureDimensions_e18a8b());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store2(0u, textureDimensions_e18a8b());
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = textureDimensions_e18a8b();
+  VertexOutput v_2 = tint_symbol;
+  return v_2;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_3 = vertex_main_inner();
+  VertexOutput v_4 = v_3;
+  VertexOutput v_5 = v_3;
+  vertex_main_outputs v_6 = {v_5.prevent_dce, v_4.pos};
+  return v_6;
+}
+
diff --git a/test/tint/builtins/gen/var/textureDimensions/e4bfd2.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/textureDimensions/e4bfd2.wgsl.expected.ir.dxc.hlsl
index 1fac62e..5774f82 100644
--- a/test/tint/builtins/gen/var/textureDimensions/e4bfd2.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureDimensions/e4bfd2.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,45 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  uint2 prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureDimensions
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation uint2 VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+Texture2DMS<uint4> arg_0 : register(t0, space1);
+uint2 textureDimensions_e4bfd2() {
+  uint3 v = (0u).xxx;
+  arg_0.GetDimensions(v[0u], v[1u], v[2u]);
+  uint2 res = v.xy;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store2(0u, textureDimensions_e4bfd2());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store2(0u, textureDimensions_e4bfd2());
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = textureDimensions_e4bfd2();
+  VertexOutput v_1 = tint_symbol;
+  return v_1;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_2 = vertex_main_inner();
+  VertexOutput v_3 = v_2;
+  VertexOutput v_4 = v_2;
+  vertex_main_outputs v_5 = {v_4.prevent_dce, v_3.pos};
+  return v_5;
+}
+
diff --git a/test/tint/builtins/gen/var/textureDimensions/e4bfd2.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/textureDimensions/e4bfd2.wgsl.expected.ir.fxc.hlsl
index 1fac62e..5774f82 100644
--- a/test/tint/builtins/gen/var/textureDimensions/e4bfd2.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureDimensions/e4bfd2.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,45 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  uint2 prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureDimensions
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation uint2 VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+Texture2DMS<uint4> arg_0 : register(t0, space1);
+uint2 textureDimensions_e4bfd2() {
+  uint3 v = (0u).xxx;
+  arg_0.GetDimensions(v[0u], v[1u], v[2u]);
+  uint2 res = v.xy;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store2(0u, textureDimensions_e4bfd2());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store2(0u, textureDimensions_e4bfd2());
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = textureDimensions_e4bfd2();
+  VertexOutput v_1 = tint_symbol;
+  return v_1;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_2 = vertex_main_inner();
+  VertexOutput v_3 = v_2;
+  VertexOutput v_4 = v_2;
+  vertex_main_outputs v_5 = {v_4.prevent_dce, v_3.pos};
+  return v_5;
+}
+
diff --git a/test/tint/builtins/gen/var/textureDimensions/e4e310.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/textureDimensions/e4e310.wgsl.expected.ir.dxc.hlsl
index 1fac62e..434afd2 100644
--- a/test/tint/builtins/gen/var/textureDimensions/e4e310.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureDimensions/e4e310.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,47 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  uint2 prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureDimensions
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation uint2 VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+Texture2DArray<int4> arg_0 : register(t0, space1);
+uint2 textureDimensions_e4e310() {
+  uint arg_1 = 1u;
+  Texture2DArray<int4> v = arg_0;
+  uint4 v_1 = (0u).xxxx;
+  v.GetDimensions(uint(arg_1), v_1[0u], v_1[1u], v_1[2u], v_1[3u]);
+  uint2 res = v_1.xy;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store2(0u, textureDimensions_e4e310());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store2(0u, textureDimensions_e4e310());
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = textureDimensions_e4e310();
+  VertexOutput v_2 = tint_symbol;
+  return v_2;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_3 = vertex_main_inner();
+  VertexOutput v_4 = v_3;
+  VertexOutput v_5 = v_3;
+  vertex_main_outputs v_6 = {v_5.prevent_dce, v_4.pos};
+  return v_6;
+}
+
diff --git a/test/tint/builtins/gen/var/textureDimensions/e4e310.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/textureDimensions/e4e310.wgsl.expected.ir.fxc.hlsl
index 1fac62e..434afd2 100644
--- a/test/tint/builtins/gen/var/textureDimensions/e4e310.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureDimensions/e4e310.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,47 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  uint2 prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureDimensions
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation uint2 VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+Texture2DArray<int4> arg_0 : register(t0, space1);
+uint2 textureDimensions_e4e310() {
+  uint arg_1 = 1u;
+  Texture2DArray<int4> v = arg_0;
+  uint4 v_1 = (0u).xxxx;
+  v.GetDimensions(uint(arg_1), v_1[0u], v_1[1u], v_1[2u], v_1[3u]);
+  uint2 res = v_1.xy;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store2(0u, textureDimensions_e4e310());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store2(0u, textureDimensions_e4e310());
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = textureDimensions_e4e310();
+  VertexOutput v_2 = tint_symbol;
+  return v_2;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_3 = vertex_main_inner();
+  VertexOutput v_4 = v_3;
+  VertexOutput v_5 = v_3;
+  vertex_main_outputs v_6 = {v_5.prevent_dce, v_4.pos};
+  return v_6;
+}
+
diff --git a/test/tint/builtins/gen/var/textureDimensions/e4f021.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/textureDimensions/e4f021.wgsl.expected.ir.dxc.hlsl
index 1fac62e..077a4dc 100644
--- a/test/tint/builtins/gen/var/textureDimensions/e4f021.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureDimensions/e4f021.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,19 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureDimensions
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWByteAddressBuffer prevent_dce : register(u0);
+RWTexture2D<float4> arg_0 : register(u0, space1);
+uint2 textureDimensions_e4f021() {
+  uint2 v = (0u).xx;
+  arg_0.GetDimensions(v[0u], v[1u]);
+  uint2 res = v;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store2(0u, textureDimensions_e4f021());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store2(0u, textureDimensions_e4f021());
+}
+
diff --git a/test/tint/builtins/gen/var/textureDimensions/e4f021.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/textureDimensions/e4f021.wgsl.expected.ir.fxc.hlsl
index 1fac62e..077a4dc 100644
--- a/test/tint/builtins/gen/var/textureDimensions/e4f021.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureDimensions/e4f021.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,19 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureDimensions
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWByteAddressBuffer prevent_dce : register(u0);
+RWTexture2D<float4> arg_0 : register(u0, space1);
+uint2 textureDimensions_e4f021() {
+  uint2 v = (0u).xx;
+  arg_0.GetDimensions(v[0u], v[1u]);
+  uint2 res = v;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store2(0u, textureDimensions_e4f021());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store2(0u, textureDimensions_e4f021());
+}
+
diff --git a/test/tint/builtins/gen/var/textureDimensions/e50eb8.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/textureDimensions/e50eb8.wgsl.expected.ir.dxc.hlsl
index 1fac62e..2d1276a 100644
--- a/test/tint/builtins/gen/var/textureDimensions/e50eb8.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureDimensions/e50eb8.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,19 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureDimensions
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWByteAddressBuffer prevent_dce : register(u0);
+RWTexture2D<uint4> arg_0 : register(u0, space1);
+uint2 textureDimensions_e50eb8() {
+  uint2 v = (0u).xx;
+  arg_0.GetDimensions(v[0u], v[1u]);
+  uint2 res = v;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store2(0u, textureDimensions_e50eb8());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store2(0u, textureDimensions_e50eb8());
+}
+
diff --git a/test/tint/builtins/gen/var/textureDimensions/e50eb8.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/textureDimensions/e50eb8.wgsl.expected.ir.fxc.hlsl
index 1fac62e..2d1276a 100644
--- a/test/tint/builtins/gen/var/textureDimensions/e50eb8.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureDimensions/e50eb8.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,19 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureDimensions
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWByteAddressBuffer prevent_dce : register(u0);
+RWTexture2D<uint4> arg_0 : register(u0, space1);
+uint2 textureDimensions_e50eb8() {
+  uint2 v = (0u).xx;
+  arg_0.GetDimensions(v[0u], v[1u]);
+  uint2 res = v;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store2(0u, textureDimensions_e50eb8());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store2(0u, textureDimensions_e50eb8());
+}
+
diff --git a/test/tint/builtins/gen/var/textureDimensions/e5a203.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/textureDimensions/e5a203.wgsl.expected.ir.dxc.hlsl
index 1fac62e..a39252d 100644
--- a/test/tint/builtins/gen/var/textureDimensions/e5a203.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureDimensions/e5a203.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,117 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureDimensions
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec3<u32>;
+
+@group(1) @binding(0) var arg_0 : texture_3d<u32>;
+
+fn textureDimensions_e5a203() -> vec3<u32> {
+  var arg_1 = 1i;
+  var res : vec3<u32> = textureDimensions(arg_0, arg_1);
+  return res;
+}
+
+@fragment
+fn fragment_main() {
+  prevent_dce = textureDimensions_e5a203();
+}
+
+@compute @workgroup_size(1)
+fn compute_main() {
+  prevent_dce = textureDimensions_e5a203();
+}
+
+struct VertexOutput {
+  @builtin(position)
+  pos : vec4<f32>,
+  @location(0) @interpolate(flat)
+  prevent_dce : vec3<u32>,
+}
+
+@vertex
+fn vertex_main() -> VertexOutput {
+  var tint_symbol : VertexOutput;
+  tint_symbol.pos = vec4<f32>();
+  tint_symbol.prevent_dce = textureDimensions_e5a203();
+  return tint_symbol;
+}
+
+Failed to generate: :30:49 error: var: initializer type 'vec2<u32>' does not match store type 'vec3<u32>'
+    %res:ptr<function, vec3<u32>, read_write> = var, %15
+                                                ^^^
+
+:17:3 note: in block
+  $B2: {
+  ^^^
+
+note: # Disassembly
+VertexOutput = struct @align(16) {
+  pos:vec4<f32> @offset(0)
+  prevent_dce:vec3<u32> @offset(16)
+}
+
+vertex_main_outputs = struct @align(16) {
+  VertexOutput_prevent_dce:vec3<u32> @offset(0), @location(0), @interpolate(flat)
+  VertexOutput_pos:vec4<f32> @offset(16), @builtin(position)
+}
+
+$B1: {  # root
+  %prevent_dce:hlsl.byte_address_buffer<read_write> = var @binding_point(0, 0)
+  %arg_0:ptr<handle, texture_3d<u32>, read> = var @binding_point(1, 0)
+}
+
+%textureDimensions_e5a203 = func():vec3<u32> {
+  $B2: {
+    %arg_1:ptr<function, i32, read_write> = var, 1i
+    %5:texture_3d<u32> = load %arg_0
+    %6:i32 = load %arg_1
+    %7:u32 = convert %6
+    %8:ptr<function, vec4<u32>, read_write> = var
+    %9:ptr<function, u32, read_write> = access %8, 0u
+    %10:ptr<function, u32, read_write> = access %8, 1u
+    %11:ptr<function, u32, read_write> = access %8, 2u
+    %12:ptr<function, u32, read_write> = access %8, 3u
+    %13:void = %5.GetDimensions %7, %9, %10, %11, %12
+    %14:vec4<u32> = load %8
+    %15:vec2<u32> = swizzle %14, xyz
+    %res:ptr<function, vec3<u32>, read_write> = var, %15
+    %17:vec3<u32> = load %res
+    ret %17
+  }
+}
+%fragment_main = @fragment func():void {
+  $B3: {
+    %19:vec3<u32> = call %textureDimensions_e5a203
+    %20:void = %prevent_dce.Store3 0u, %19
+    ret
+  }
+}
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B4: {
+    %22:vec3<u32> = call %textureDimensions_e5a203
+    %23:void = %prevent_dce.Store3 0u, %22
+    ret
+  }
+}
+%vertex_main_inner = func():VertexOutput {
+  $B5: {
+    %tint_symbol:ptr<function, VertexOutput, read_write> = var
+    %26:ptr<function, vec4<f32>, read_write> = access %tint_symbol, 0u
+    store %26, vec4<f32>(0.0f)
+    %27:ptr<function, vec3<u32>, read_write> = access %tint_symbol, 1u
+    %28:vec3<u32> = call %textureDimensions_e5a203
+    store %27, %28
+    %29:VertexOutput = load %tint_symbol
+    ret %29
+  }
+}
+%vertex_main = @vertex func():vertex_main_outputs {
+  $B6: {
+    %31:VertexOutput = call %vertex_main_inner
+    %32:vec4<f32> = access %31, 0u
+    %33:vec3<u32> = access %31, 1u
+    %34:vertex_main_outputs = construct %33, %32
+    ret %34
+  }
+}
+
diff --git a/test/tint/builtins/gen/var/textureDimensions/e5a203.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/textureDimensions/e5a203.wgsl.expected.ir.fxc.hlsl
index 1fac62e..a39252d 100644
--- a/test/tint/builtins/gen/var/textureDimensions/e5a203.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureDimensions/e5a203.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,117 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureDimensions
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec3<u32>;
+
+@group(1) @binding(0) var arg_0 : texture_3d<u32>;
+
+fn textureDimensions_e5a203() -> vec3<u32> {
+  var arg_1 = 1i;
+  var res : vec3<u32> = textureDimensions(arg_0, arg_1);
+  return res;
+}
+
+@fragment
+fn fragment_main() {
+  prevent_dce = textureDimensions_e5a203();
+}
+
+@compute @workgroup_size(1)
+fn compute_main() {
+  prevent_dce = textureDimensions_e5a203();
+}
+
+struct VertexOutput {
+  @builtin(position)
+  pos : vec4<f32>,
+  @location(0) @interpolate(flat)
+  prevent_dce : vec3<u32>,
+}
+
+@vertex
+fn vertex_main() -> VertexOutput {
+  var tint_symbol : VertexOutput;
+  tint_symbol.pos = vec4<f32>();
+  tint_symbol.prevent_dce = textureDimensions_e5a203();
+  return tint_symbol;
+}
+
+Failed to generate: :30:49 error: var: initializer type 'vec2<u32>' does not match store type 'vec3<u32>'
+    %res:ptr<function, vec3<u32>, read_write> = var, %15
+                                                ^^^
+
+:17:3 note: in block
+  $B2: {
+  ^^^
+
+note: # Disassembly
+VertexOutput = struct @align(16) {
+  pos:vec4<f32> @offset(0)
+  prevent_dce:vec3<u32> @offset(16)
+}
+
+vertex_main_outputs = struct @align(16) {
+  VertexOutput_prevent_dce:vec3<u32> @offset(0), @location(0), @interpolate(flat)
+  VertexOutput_pos:vec4<f32> @offset(16), @builtin(position)
+}
+
+$B1: {  # root
+  %prevent_dce:hlsl.byte_address_buffer<read_write> = var @binding_point(0, 0)
+  %arg_0:ptr<handle, texture_3d<u32>, read> = var @binding_point(1, 0)
+}
+
+%textureDimensions_e5a203 = func():vec3<u32> {
+  $B2: {
+    %arg_1:ptr<function, i32, read_write> = var, 1i
+    %5:texture_3d<u32> = load %arg_0
+    %6:i32 = load %arg_1
+    %7:u32 = convert %6
+    %8:ptr<function, vec4<u32>, read_write> = var
+    %9:ptr<function, u32, read_write> = access %8, 0u
+    %10:ptr<function, u32, read_write> = access %8, 1u
+    %11:ptr<function, u32, read_write> = access %8, 2u
+    %12:ptr<function, u32, read_write> = access %8, 3u
+    %13:void = %5.GetDimensions %7, %9, %10, %11, %12
+    %14:vec4<u32> = load %8
+    %15:vec2<u32> = swizzle %14, xyz
+    %res:ptr<function, vec3<u32>, read_write> = var, %15
+    %17:vec3<u32> = load %res
+    ret %17
+  }
+}
+%fragment_main = @fragment func():void {
+  $B3: {
+    %19:vec3<u32> = call %textureDimensions_e5a203
+    %20:void = %prevent_dce.Store3 0u, %19
+    ret
+  }
+}
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B4: {
+    %22:vec3<u32> = call %textureDimensions_e5a203
+    %23:void = %prevent_dce.Store3 0u, %22
+    ret
+  }
+}
+%vertex_main_inner = func():VertexOutput {
+  $B5: {
+    %tint_symbol:ptr<function, VertexOutput, read_write> = var
+    %26:ptr<function, vec4<f32>, read_write> = access %tint_symbol, 0u
+    store %26, vec4<f32>(0.0f)
+    %27:ptr<function, vec3<u32>, read_write> = access %tint_symbol, 1u
+    %28:vec3<u32> = call %textureDimensions_e5a203
+    store %27, %28
+    %29:VertexOutput = load %tint_symbol
+    ret %29
+  }
+}
+%vertex_main = @vertex func():vertex_main_outputs {
+  $B6: {
+    %31:VertexOutput = call %vertex_main_inner
+    %32:vec4<f32> = access %31, 0u
+    %33:vec3<u32> = access %31, 1u
+    %34:vertex_main_outputs = construct %33, %32
+    ret %34
+  }
+}
+
diff --git a/test/tint/builtins/gen/var/textureDimensions/e738f4.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/textureDimensions/e738f4.wgsl.expected.ir.dxc.hlsl
index 1fac62e..221cb31 100644
--- a/test/tint/builtins/gen/var/textureDimensions/e738f4.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureDimensions/e738f4.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,19 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureDimensions
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWByteAddressBuffer prevent_dce : register(u0);
+RWTexture3D<int4> arg_0 : register(u0, space1);
+uint3 textureDimensions_e738f4() {
+  uint3 v = (0u).xxx;
+  arg_0.GetDimensions(v[0u], v[1u], v[2u]);
+  uint3 res = v;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store3(0u, textureDimensions_e738f4());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store3(0u, textureDimensions_e738f4());
+}
+
diff --git a/test/tint/builtins/gen/var/textureDimensions/e738f4.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/textureDimensions/e738f4.wgsl.expected.ir.fxc.hlsl
index 1fac62e..221cb31 100644
--- a/test/tint/builtins/gen/var/textureDimensions/e738f4.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureDimensions/e738f4.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,19 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureDimensions
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWByteAddressBuffer prevent_dce : register(u0);
+RWTexture3D<int4> arg_0 : register(u0, space1);
+uint3 textureDimensions_e738f4() {
+  uint3 v = (0u).xxx;
+  arg_0.GetDimensions(v[0u], v[1u], v[2u]);
+  uint3 res = v;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store3(0u, textureDimensions_e738f4());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store3(0u, textureDimensions_e738f4());
+}
+
diff --git a/test/tint/builtins/gen/var/textureDimensions/e824b6.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/textureDimensions/e824b6.wgsl.expected.ir.dxc.hlsl
index 1fac62e..f7e6572 100644
--- a/test/tint/builtins/gen/var/textureDimensions/e824b6.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureDimensions/e824b6.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,19 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureDimensions
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWByteAddressBuffer prevent_dce : register(u0);
+RWTexture2DArray<uint4> arg_0 : register(u0, space1);
+uint2 textureDimensions_e824b6() {
+  uint3 v = (0u).xxx;
+  arg_0.GetDimensions(v[0u], v[1u], v[2u]);
+  uint2 res = v.xy;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store2(0u, textureDimensions_e824b6());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store2(0u, textureDimensions_e824b6());
+}
+
diff --git a/test/tint/builtins/gen/var/textureDimensions/e824b6.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/textureDimensions/e824b6.wgsl.expected.ir.fxc.hlsl
index 1fac62e..f7e6572 100644
--- a/test/tint/builtins/gen/var/textureDimensions/e824b6.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureDimensions/e824b6.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,19 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureDimensions
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWByteAddressBuffer prevent_dce : register(u0);
+RWTexture2DArray<uint4> arg_0 : register(u0, space1);
+uint2 textureDimensions_e824b6() {
+  uint3 v = (0u).xxx;
+  arg_0.GetDimensions(v[0u], v[1u], v[2u]);
+  uint2 res = v.xy;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store2(0u, textureDimensions_e824b6());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store2(0u, textureDimensions_e824b6());
+}
+
diff --git a/test/tint/builtins/gen/var/textureDimensions/e99308.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/textureDimensions/e99308.wgsl.expected.ir.dxc.hlsl
index 1fac62e..9a640a6 100644
--- a/test/tint/builtins/gen/var/textureDimensions/e99308.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureDimensions/e99308.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,19 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureDimensions
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWByteAddressBuffer prevent_dce : register(u0);
+RWTexture2D<uint4> arg_0 : register(u0, space1);
+uint2 textureDimensions_e99308() {
+  uint2 v = (0u).xx;
+  arg_0.GetDimensions(v[0u], v[1u]);
+  uint2 res = v;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store2(0u, textureDimensions_e99308());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store2(0u, textureDimensions_e99308());
+}
+
diff --git a/test/tint/builtins/gen/var/textureDimensions/e99308.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/textureDimensions/e99308.wgsl.expected.ir.fxc.hlsl
index 1fac62e..9a640a6 100644
--- a/test/tint/builtins/gen/var/textureDimensions/e99308.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureDimensions/e99308.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,19 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureDimensions
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWByteAddressBuffer prevent_dce : register(u0);
+RWTexture2D<uint4> arg_0 : register(u0, space1);
+uint2 textureDimensions_e99308() {
+  uint2 v = (0u).xx;
+  arg_0.GetDimensions(v[0u], v[1u]);
+  uint2 res = v;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store2(0u, textureDimensions_e99308());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store2(0u, textureDimensions_e99308());
+}
+
diff --git a/test/tint/builtins/gen/var/textureDimensions/ea066c.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/textureDimensions/ea066c.wgsl.expected.ir.dxc.hlsl
index 1fac62e..f413398 100644
--- a/test/tint/builtins/gen/var/textureDimensions/ea066c.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureDimensions/ea066c.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,19 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureDimensions
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWByteAddressBuffer prevent_dce : register(u0);
+RWTexture1D<float4> arg_0 : register(u0, space1);
+uint textureDimensions_ea066c() {
+  uint v = 0u;
+  arg_0.GetDimensions(v);
+  uint res = v;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store(0u, textureDimensions_ea066c());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store(0u, textureDimensions_ea066c());
+}
+
diff --git a/test/tint/builtins/gen/var/textureDimensions/ea066c.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/textureDimensions/ea066c.wgsl.expected.ir.fxc.hlsl
index 1fac62e..f413398 100644
--- a/test/tint/builtins/gen/var/textureDimensions/ea066c.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureDimensions/ea066c.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,19 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureDimensions
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWByteAddressBuffer prevent_dce : register(u0);
+RWTexture1D<float4> arg_0 : register(u0, space1);
+uint textureDimensions_ea066c() {
+  uint v = 0u;
+  arg_0.GetDimensions(v);
+  uint res = v;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store(0u, textureDimensions_ea066c());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store(0u, textureDimensions_ea066c());
+}
+
diff --git a/test/tint/builtins/gen/var/textureDimensions/ea25bc.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/textureDimensions/ea25bc.wgsl.expected.ir.dxc.hlsl
index 1fac62e..051a81a8 100644
--- a/test/tint/builtins/gen/var/textureDimensions/ea25bc.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureDimensions/ea25bc.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,19 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureDimensions
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWByteAddressBuffer prevent_dce : register(u0);
+RWTexture1D<uint4> arg_0 : register(u0, space1);
+uint textureDimensions_ea25bc() {
+  uint v = 0u;
+  arg_0.GetDimensions(v);
+  uint res = v;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store(0u, textureDimensions_ea25bc());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store(0u, textureDimensions_ea25bc());
+}
+
diff --git a/test/tint/builtins/gen/var/textureDimensions/ea25bc.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/textureDimensions/ea25bc.wgsl.expected.ir.fxc.hlsl
index 1fac62e..051a81a8 100644
--- a/test/tint/builtins/gen/var/textureDimensions/ea25bc.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureDimensions/ea25bc.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,19 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureDimensions
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWByteAddressBuffer prevent_dce : register(u0);
+RWTexture1D<uint4> arg_0 : register(u0, space1);
+uint textureDimensions_ea25bc() {
+  uint v = 0u;
+  arg_0.GetDimensions(v);
+  uint res = v;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store(0u, textureDimensions_ea25bc());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store(0u, textureDimensions_ea25bc());
+}
+
diff --git a/test/tint/builtins/gen/var/textureDimensions/eafe19.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/textureDimensions/eafe19.wgsl.expected.ir.dxc.hlsl
index 1fac62e..162edaa 100644
--- a/test/tint/builtins/gen/var/textureDimensions/eafe19.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureDimensions/eafe19.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,47 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  uint2 prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureDimensions
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation uint2 VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+Texture2DArray arg_0 : register(t0, space1);
+uint2 textureDimensions_eafe19() {
+  uint arg_1 = 1u;
+  Texture2DArray v = arg_0;
+  uint4 v_1 = (0u).xxxx;
+  v.GetDimensions(uint(arg_1), v_1[0u], v_1[1u], v_1[2u], v_1[3u]);
+  uint2 res = v_1.xy;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store2(0u, textureDimensions_eafe19());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store2(0u, textureDimensions_eafe19());
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = textureDimensions_eafe19();
+  VertexOutput v_2 = tint_symbol;
+  return v_2;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_3 = vertex_main_inner();
+  VertexOutput v_4 = v_3;
+  VertexOutput v_5 = v_3;
+  vertex_main_outputs v_6 = {v_5.prevent_dce, v_4.pos};
+  return v_6;
+}
+
diff --git a/test/tint/builtins/gen/var/textureDimensions/eafe19.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/textureDimensions/eafe19.wgsl.expected.ir.fxc.hlsl
index 1fac62e..162edaa 100644
--- a/test/tint/builtins/gen/var/textureDimensions/eafe19.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureDimensions/eafe19.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,47 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  uint2 prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureDimensions
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation uint2 VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+Texture2DArray arg_0 : register(t0, space1);
+uint2 textureDimensions_eafe19() {
+  uint arg_1 = 1u;
+  Texture2DArray v = arg_0;
+  uint4 v_1 = (0u).xxxx;
+  v.GetDimensions(uint(arg_1), v_1[0u], v_1[1u], v_1[2u], v_1[3u]);
+  uint2 res = v_1.xy;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store2(0u, textureDimensions_eafe19());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store2(0u, textureDimensions_eafe19());
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = textureDimensions_eafe19();
+  VertexOutput v_2 = tint_symbol;
+  return v_2;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_3 = vertex_main_inner();
+  VertexOutput v_4 = v_3;
+  VertexOutput v_5 = v_3;
+  vertex_main_outputs v_6 = {v_5.prevent_dce, v_4.pos};
+  return v_6;
+}
+
diff --git a/test/tint/builtins/gen/var/textureDimensions/eb03b1.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/textureDimensions/eb03b1.wgsl.expected.ir.dxc.hlsl
index 1fac62e..64838ef 100644
--- a/test/tint/builtins/gen/var/textureDimensions/eb03b1.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureDimensions/eb03b1.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,19 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureDimensions
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWByteAddressBuffer prevent_dce : register(u0);
+RWTexture2DArray<float4> arg_0 : register(u0, space1);
+uint2 textureDimensions_eb03b1() {
+  uint3 v = (0u).xxx;
+  arg_0.GetDimensions(v[0u], v[1u], v[2u]);
+  uint2 res = v.xy;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store2(0u, textureDimensions_eb03b1());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store2(0u, textureDimensions_eb03b1());
+}
+
diff --git a/test/tint/builtins/gen/var/textureDimensions/eb03b1.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/textureDimensions/eb03b1.wgsl.expected.ir.fxc.hlsl
index 1fac62e..64838ef 100644
--- a/test/tint/builtins/gen/var/textureDimensions/eb03b1.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureDimensions/eb03b1.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,19 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureDimensions
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWByteAddressBuffer prevent_dce : register(u0);
+RWTexture2DArray<float4> arg_0 : register(u0, space1);
+uint2 textureDimensions_eb03b1() {
+  uint3 v = (0u).xxx;
+  arg_0.GetDimensions(v[0u], v[1u], v[2u]);
+  uint2 res = v.xy;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store2(0u, textureDimensions_eb03b1());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store2(0u, textureDimensions_eb03b1());
+}
+
diff --git a/test/tint/builtins/gen/var/textureDimensions/eb10d6.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/textureDimensions/eb10d6.wgsl.expected.ir.dxc.hlsl
index 1fac62e..e806bbe 100644
--- a/test/tint/builtins/gen/var/textureDimensions/eb10d6.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureDimensions/eb10d6.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,19 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureDimensions
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWByteAddressBuffer prevent_dce : register(u0);
+RWTexture2D<float4> arg_0 : register(u0, space1);
+uint2 textureDimensions_eb10d6() {
+  uint2 v = (0u).xx;
+  arg_0.GetDimensions(v[0u], v[1u]);
+  uint2 res = v;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store2(0u, textureDimensions_eb10d6());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store2(0u, textureDimensions_eb10d6());
+}
+
diff --git a/test/tint/builtins/gen/var/textureDimensions/eb10d6.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/textureDimensions/eb10d6.wgsl.expected.ir.fxc.hlsl
index 1fac62e..e806bbe 100644
--- a/test/tint/builtins/gen/var/textureDimensions/eb10d6.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureDimensions/eb10d6.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,19 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureDimensions
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWByteAddressBuffer prevent_dce : register(u0);
+RWTexture2D<float4> arg_0 : register(u0, space1);
+uint2 textureDimensions_eb10d6() {
+  uint2 v = (0u).xx;
+  arg_0.GetDimensions(v[0u], v[1u]);
+  uint2 res = v;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store2(0u, textureDimensions_eb10d6());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store2(0u, textureDimensions_eb10d6());
+}
+
diff --git a/test/tint/builtins/gen/var/textureDimensions/eb1249.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/textureDimensions/eb1249.wgsl.expected.ir.dxc.hlsl
index 1fac62e..aedba01 100644
--- a/test/tint/builtins/gen/var/textureDimensions/eb1249.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureDimensions/eb1249.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,19 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureDimensions
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWByteAddressBuffer prevent_dce : register(u0);
+RWTexture1D<uint4> arg_0 : register(u0, space1);
+uint textureDimensions_eb1249() {
+  uint v = 0u;
+  arg_0.GetDimensions(v);
+  uint res = v;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store(0u, textureDimensions_eb1249());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store(0u, textureDimensions_eb1249());
+}
+
diff --git a/test/tint/builtins/gen/var/textureDimensions/eb1249.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/textureDimensions/eb1249.wgsl.expected.ir.fxc.hlsl
index 1fac62e..aedba01 100644
--- a/test/tint/builtins/gen/var/textureDimensions/eb1249.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureDimensions/eb1249.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,19 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureDimensions
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWByteAddressBuffer prevent_dce : register(u0);
+RWTexture1D<uint4> arg_0 : register(u0, space1);
+uint textureDimensions_eb1249() {
+  uint v = 0u;
+  arg_0.GetDimensions(v);
+  uint res = v;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store(0u, textureDimensions_eb1249());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store(0u, textureDimensions_eb1249());
+}
+
diff --git a/test/tint/builtins/gen/var/textureDimensions/eb9f4d.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/textureDimensions/eb9f4d.wgsl.expected.ir.dxc.hlsl
index 1fac62e..d9e27b7 100644
--- a/test/tint/builtins/gen/var/textureDimensions/eb9f4d.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureDimensions/eb9f4d.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,19 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureDimensions
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWByteAddressBuffer prevent_dce : register(u0);
+RWTexture2DArray<int4> arg_0 : register(u0, space1);
+uint2 textureDimensions_eb9f4d() {
+  uint3 v = (0u).xxx;
+  arg_0.GetDimensions(v[0u], v[1u], v[2u]);
+  uint2 res = v.xy;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store2(0u, textureDimensions_eb9f4d());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store2(0u, textureDimensions_eb9f4d());
+}
+
diff --git a/test/tint/builtins/gen/var/textureDimensions/eb9f4d.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/textureDimensions/eb9f4d.wgsl.expected.ir.fxc.hlsl
index 1fac62e..d9e27b7 100644
--- a/test/tint/builtins/gen/var/textureDimensions/eb9f4d.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureDimensions/eb9f4d.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,19 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureDimensions
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWByteAddressBuffer prevent_dce : register(u0);
+RWTexture2DArray<int4> arg_0 : register(u0, space1);
+uint2 textureDimensions_eb9f4d() {
+  uint3 v = (0u).xxx;
+  arg_0.GetDimensions(v[0u], v[1u], v[2u]);
+  uint2 res = v.xy;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store2(0u, textureDimensions_eb9f4d());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store2(0u, textureDimensions_eb9f4d());
+}
+
diff --git a/test/tint/builtins/gen/var/textureDimensions/ed1030.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/textureDimensions/ed1030.wgsl.expected.ir.dxc.hlsl
index 1fac62e..2fa8219 100644
--- a/test/tint/builtins/gen/var/textureDimensions/ed1030.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureDimensions/ed1030.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,19 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureDimensions
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWByteAddressBuffer prevent_dce : register(u0);
+RWTexture2D<uint4> arg_0 : register(u0, space1);
+uint2 textureDimensions_ed1030() {
+  uint2 v = (0u).xx;
+  arg_0.GetDimensions(v[0u], v[1u]);
+  uint2 res = v;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store2(0u, textureDimensions_ed1030());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store2(0u, textureDimensions_ed1030());
+}
+
diff --git a/test/tint/builtins/gen/var/textureDimensions/ed1030.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/textureDimensions/ed1030.wgsl.expected.ir.fxc.hlsl
index 1fac62e..2fa8219 100644
--- a/test/tint/builtins/gen/var/textureDimensions/ed1030.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureDimensions/ed1030.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,19 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureDimensions
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWByteAddressBuffer prevent_dce : register(u0);
+RWTexture2D<uint4> arg_0 : register(u0, space1);
+uint2 textureDimensions_ed1030() {
+  uint2 v = (0u).xx;
+  arg_0.GetDimensions(v[0u], v[1u]);
+  uint2 res = v;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store2(0u, textureDimensions_ed1030());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store2(0u, textureDimensions_ed1030());
+}
+
diff --git a/test/tint/builtins/gen/var/textureDimensions/ef2e58.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/textureDimensions/ef2e58.wgsl.expected.ir.dxc.hlsl
index 1fac62e..1f77ddc 100644
--- a/test/tint/builtins/gen/var/textureDimensions/ef2e58.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureDimensions/ef2e58.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,19 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureDimensions
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWByteAddressBuffer prevent_dce : register(u0);
+RWTexture3D<int4> arg_0 : register(u0, space1);
+uint3 textureDimensions_ef2e58() {
+  uint3 v = (0u).xxx;
+  arg_0.GetDimensions(v[0u], v[1u], v[2u]);
+  uint3 res = v;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store3(0u, textureDimensions_ef2e58());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store3(0u, textureDimensions_ef2e58());
+}
+
diff --git a/test/tint/builtins/gen/var/textureDimensions/ef2e58.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/textureDimensions/ef2e58.wgsl.expected.ir.fxc.hlsl
index 1fac62e..1f77ddc 100644
--- a/test/tint/builtins/gen/var/textureDimensions/ef2e58.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureDimensions/ef2e58.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,19 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureDimensions
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWByteAddressBuffer prevent_dce : register(u0);
+RWTexture3D<int4> arg_0 : register(u0, space1);
+uint3 textureDimensions_ef2e58() {
+  uint3 v = (0u).xxx;
+  arg_0.GetDimensions(v[0u], v[1u], v[2u]);
+  uint3 res = v;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store3(0u, textureDimensions_ef2e58());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store3(0u, textureDimensions_ef2e58());
+}
+
diff --git a/test/tint/builtins/gen/var/textureDimensions/f17acd.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/textureDimensions/f17acd.wgsl.expected.ir.dxc.hlsl
index 1fac62e..a210780f 100644
--- a/test/tint/builtins/gen/var/textureDimensions/f17acd.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureDimensions/f17acd.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,115 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureDimensions
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : u32;
+
+@group(1) @binding(0) var arg_0 : texture_1d<f32>;
+
+fn textureDimensions_f17acd() -> u32 {
+  var arg_1 = 1i;
+  var res : u32 = textureDimensions(arg_0, arg_1);
+  return res;
+}
+
+@fragment
+fn fragment_main() {
+  prevent_dce = textureDimensions_f17acd();
+}
+
+@compute @workgroup_size(1)
+fn compute_main() {
+  prevent_dce = textureDimensions_f17acd();
+}
+
+struct VertexOutput {
+  @builtin(position)
+  pos : vec4<f32>,
+  @location(0) @interpolate(flat)
+  prevent_dce : u32,
+}
+
+@vertex
+fn vertex_main() -> VertexOutput {
+  var tint_symbol : VertexOutput;
+  tint_symbol.pos = vec4<f32>();
+  tint_symbol.prevent_dce = textureDimensions_f17acd();
+  return tint_symbol;
+}
+
+Failed to generate: :28:43 error: var: initializer type 'vec2<u32>' does not match store type 'u32'
+    %res:ptr<function, u32, read_write> = var, %13
+                                          ^^^
+
+:17:3 note: in block
+  $B2: {
+  ^^^
+
+note: # Disassembly
+VertexOutput = struct @align(16) {
+  pos:vec4<f32> @offset(0)
+  prevent_dce:u32 @offset(16)
+}
+
+vertex_main_outputs = struct @align(16) {
+  VertexOutput_prevent_dce:u32 @offset(0), @location(0), @interpolate(flat)
+  VertexOutput_pos:vec4<f32> @offset(16), @builtin(position)
+}
+
+$B1: {  # root
+  %prevent_dce:hlsl.byte_address_buffer<read_write> = var @binding_point(0, 0)
+  %arg_0:ptr<handle, texture_1d<f32>, read> = var @binding_point(1, 0)
+}
+
+%textureDimensions_f17acd = func():u32 {
+  $B2: {
+    %arg_1:ptr<function, i32, read_write> = var, 1i
+    %5:texture_1d<f32> = load %arg_0
+    %6:i32 = load %arg_1
+    %7:u32 = convert %6
+    %8:ptr<function, vec2<u32>, read_write> = var
+    %9:ptr<function, u32, read_write> = access %8, 0u
+    %10:ptr<function, u32, read_write> = access %8, 1u
+    %11:void = %5.GetDimensions %7, %9, %10
+    %12:vec2<u32> = load %8
+    %13:vec2<u32> = swizzle %12, x
+    %res:ptr<function, u32, read_write> = var, %13
+    %15:u32 = load %res
+    ret %15
+  }
+}
+%fragment_main = @fragment func():void {
+  $B3: {
+    %17:u32 = call %textureDimensions_f17acd
+    %18:void = %prevent_dce.Store 0u, %17
+    ret
+  }
+}
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B4: {
+    %20:u32 = call %textureDimensions_f17acd
+    %21:void = %prevent_dce.Store 0u, %20
+    ret
+  }
+}
+%vertex_main_inner = func():VertexOutput {
+  $B5: {
+    %tint_symbol:ptr<function, VertexOutput, read_write> = var
+    %24:ptr<function, vec4<f32>, read_write> = access %tint_symbol, 0u
+    store %24, vec4<f32>(0.0f)
+    %25:ptr<function, u32, read_write> = access %tint_symbol, 1u
+    %26:u32 = call %textureDimensions_f17acd
+    store %25, %26
+    %27:VertexOutput = load %tint_symbol
+    ret %27
+  }
+}
+%vertex_main = @vertex func():vertex_main_outputs {
+  $B6: {
+    %29:VertexOutput = call %vertex_main_inner
+    %30:vec4<f32> = access %29, 0u
+    %31:u32 = access %29, 1u
+    %32:vertex_main_outputs = construct %31, %30
+    ret %32
+  }
+}
+
diff --git a/test/tint/builtins/gen/var/textureDimensions/f17acd.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/textureDimensions/f17acd.wgsl.expected.ir.fxc.hlsl
index 1fac62e..a210780f 100644
--- a/test/tint/builtins/gen/var/textureDimensions/f17acd.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureDimensions/f17acd.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,115 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureDimensions
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : u32;
+
+@group(1) @binding(0) var arg_0 : texture_1d<f32>;
+
+fn textureDimensions_f17acd() -> u32 {
+  var arg_1 = 1i;
+  var res : u32 = textureDimensions(arg_0, arg_1);
+  return res;
+}
+
+@fragment
+fn fragment_main() {
+  prevent_dce = textureDimensions_f17acd();
+}
+
+@compute @workgroup_size(1)
+fn compute_main() {
+  prevent_dce = textureDimensions_f17acd();
+}
+
+struct VertexOutput {
+  @builtin(position)
+  pos : vec4<f32>,
+  @location(0) @interpolate(flat)
+  prevent_dce : u32,
+}
+
+@vertex
+fn vertex_main() -> VertexOutput {
+  var tint_symbol : VertexOutput;
+  tint_symbol.pos = vec4<f32>();
+  tint_symbol.prevent_dce = textureDimensions_f17acd();
+  return tint_symbol;
+}
+
+Failed to generate: :28:43 error: var: initializer type 'vec2<u32>' does not match store type 'u32'
+    %res:ptr<function, u32, read_write> = var, %13
+                                          ^^^
+
+:17:3 note: in block
+  $B2: {
+  ^^^
+
+note: # Disassembly
+VertexOutput = struct @align(16) {
+  pos:vec4<f32> @offset(0)
+  prevent_dce:u32 @offset(16)
+}
+
+vertex_main_outputs = struct @align(16) {
+  VertexOutput_prevent_dce:u32 @offset(0), @location(0), @interpolate(flat)
+  VertexOutput_pos:vec4<f32> @offset(16), @builtin(position)
+}
+
+$B1: {  # root
+  %prevent_dce:hlsl.byte_address_buffer<read_write> = var @binding_point(0, 0)
+  %arg_0:ptr<handle, texture_1d<f32>, read> = var @binding_point(1, 0)
+}
+
+%textureDimensions_f17acd = func():u32 {
+  $B2: {
+    %arg_1:ptr<function, i32, read_write> = var, 1i
+    %5:texture_1d<f32> = load %arg_0
+    %6:i32 = load %arg_1
+    %7:u32 = convert %6
+    %8:ptr<function, vec2<u32>, read_write> = var
+    %9:ptr<function, u32, read_write> = access %8, 0u
+    %10:ptr<function, u32, read_write> = access %8, 1u
+    %11:void = %5.GetDimensions %7, %9, %10
+    %12:vec2<u32> = load %8
+    %13:vec2<u32> = swizzle %12, x
+    %res:ptr<function, u32, read_write> = var, %13
+    %15:u32 = load %res
+    ret %15
+  }
+}
+%fragment_main = @fragment func():void {
+  $B3: {
+    %17:u32 = call %textureDimensions_f17acd
+    %18:void = %prevent_dce.Store 0u, %17
+    ret
+  }
+}
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B4: {
+    %20:u32 = call %textureDimensions_f17acd
+    %21:void = %prevent_dce.Store 0u, %20
+    ret
+  }
+}
+%vertex_main_inner = func():VertexOutput {
+  $B5: {
+    %tint_symbol:ptr<function, VertexOutput, read_write> = var
+    %24:ptr<function, vec4<f32>, read_write> = access %tint_symbol, 0u
+    store %24, vec4<f32>(0.0f)
+    %25:ptr<function, u32, read_write> = access %tint_symbol, 1u
+    %26:u32 = call %textureDimensions_f17acd
+    store %25, %26
+    %27:VertexOutput = load %tint_symbol
+    ret %27
+  }
+}
+%vertex_main = @vertex func():vertex_main_outputs {
+  $B6: {
+    %29:VertexOutput = call %vertex_main_inner
+    %30:vec4<f32> = access %29, 0u
+    %31:u32 = access %29, 1u
+    %32:vertex_main_outputs = construct %31, %30
+    ret %32
+  }
+}
+
diff --git a/test/tint/builtins/gen/var/textureDimensions/f264a3.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/textureDimensions/f264a3.wgsl.expected.ir.dxc.hlsl
index 1fac62e..9300eda 100644
--- a/test/tint/builtins/gen/var/textureDimensions/f264a3.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureDimensions/f264a3.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,19 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureDimensions
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWByteAddressBuffer prevent_dce : register(u0);
+RWTexture1D<int4> arg_0 : register(u0, space1);
+uint textureDimensions_f264a3() {
+  uint v = 0u;
+  arg_0.GetDimensions(v);
+  uint res = v;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store(0u, textureDimensions_f264a3());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store(0u, textureDimensions_f264a3());
+}
+
diff --git a/test/tint/builtins/gen/var/textureDimensions/f264a3.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/textureDimensions/f264a3.wgsl.expected.ir.fxc.hlsl
index 1fac62e..9300eda 100644
--- a/test/tint/builtins/gen/var/textureDimensions/f264a3.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureDimensions/f264a3.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,19 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureDimensions
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWByteAddressBuffer prevent_dce : register(u0);
+RWTexture1D<int4> arg_0 : register(u0, space1);
+uint textureDimensions_f264a3() {
+  uint v = 0u;
+  arg_0.GetDimensions(v);
+  uint res = v;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store(0u, textureDimensions_f264a3());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store(0u, textureDimensions_f264a3());
+}
+
diff --git a/test/tint/builtins/gen/var/textureDimensions/f3a2ac.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/textureDimensions/f3a2ac.wgsl.expected.ir.dxc.hlsl
index 1fac62e..d0b75f6 100644
--- a/test/tint/builtins/gen/var/textureDimensions/f3a2ac.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureDimensions/f3a2ac.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,19 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureDimensions
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWByteAddressBuffer prevent_dce : register(u0);
+RWTexture3D<float4> arg_0 : register(u0, space1);
+uint3 textureDimensions_f3a2ac() {
+  uint3 v = (0u).xxx;
+  arg_0.GetDimensions(v[0u], v[1u], v[2u]);
+  uint3 res = v;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store3(0u, textureDimensions_f3a2ac());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store3(0u, textureDimensions_f3a2ac());
+}
+
diff --git a/test/tint/builtins/gen/var/textureDimensions/f3a2ac.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/textureDimensions/f3a2ac.wgsl.expected.ir.fxc.hlsl
index 1fac62e..d0b75f6 100644
--- a/test/tint/builtins/gen/var/textureDimensions/f3a2ac.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureDimensions/f3a2ac.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,19 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureDimensions
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWByteAddressBuffer prevent_dce : register(u0);
+RWTexture3D<float4> arg_0 : register(u0, space1);
+uint3 textureDimensions_f3a2ac() {
+  uint3 v = (0u).xxx;
+  arg_0.GetDimensions(v[0u], v[1u], v[2u]);
+  uint3 res = v;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store3(0u, textureDimensions_f3a2ac());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store3(0u, textureDimensions_f3a2ac());
+}
+
diff --git a/test/tint/builtins/gen/var/textureDimensions/f406ff.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/textureDimensions/f406ff.wgsl.expected.ir.dxc.hlsl
index 1fac62e..e944593 100644
--- a/test/tint/builtins/gen/var/textureDimensions/f406ff.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureDimensions/f406ff.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,19 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureDimensions
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWByteAddressBuffer prevent_dce : register(u0);
+RWTexture1D<float4> arg_0 : register(u0, space1);
+uint textureDimensions_f406ff() {
+  uint v = 0u;
+  arg_0.GetDimensions(v);
+  uint res = v;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store(0u, textureDimensions_f406ff());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store(0u, textureDimensions_f406ff());
+}
+
diff --git a/test/tint/builtins/gen/var/textureDimensions/f406ff.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/textureDimensions/f406ff.wgsl.expected.ir.fxc.hlsl
index 1fac62e..e944593 100644
--- a/test/tint/builtins/gen/var/textureDimensions/f406ff.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureDimensions/f406ff.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,19 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureDimensions
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWByteAddressBuffer prevent_dce : register(u0);
+RWTexture1D<float4> arg_0 : register(u0, space1);
+uint textureDimensions_f406ff() {
+  uint v = 0u;
+  arg_0.GetDimensions(v);
+  uint res = v;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store(0u, textureDimensions_f406ff());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store(0u, textureDimensions_f406ff());
+}
+
diff --git a/test/tint/builtins/gen/var/textureDimensions/f4321c.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/textureDimensions/f4321c.wgsl.expected.ir.dxc.hlsl
index 1fac62e..4c384be 100644
--- a/test/tint/builtins/gen/var/textureDimensions/f4321c.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureDimensions/f4321c.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,45 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  uint3 prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureDimensions
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation uint3 VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+Texture3D<int4> arg_0 : register(t0, space1);
+uint3 textureDimensions_f4321c() {
+  uint3 v = (0u).xxx;
+  arg_0.GetDimensions(v[0u], v[1u], v[2u]);
+  uint3 res = v;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store3(0u, textureDimensions_f4321c());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store3(0u, textureDimensions_f4321c());
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = textureDimensions_f4321c();
+  VertexOutput v_1 = tint_symbol;
+  return v_1;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_2 = vertex_main_inner();
+  VertexOutput v_3 = v_2;
+  VertexOutput v_4 = v_2;
+  vertex_main_outputs v_5 = {v_4.prevent_dce, v_3.pos};
+  return v_5;
+}
+
diff --git a/test/tint/builtins/gen/var/textureDimensions/f4321c.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/textureDimensions/f4321c.wgsl.expected.ir.fxc.hlsl
index 1fac62e..4c384be 100644
--- a/test/tint/builtins/gen/var/textureDimensions/f4321c.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureDimensions/f4321c.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,45 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  uint3 prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureDimensions
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation uint3 VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+Texture3D<int4> arg_0 : register(t0, space1);
+uint3 textureDimensions_f4321c() {
+  uint3 v = (0u).xxx;
+  arg_0.GetDimensions(v[0u], v[1u], v[2u]);
+  uint3 res = v;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store3(0u, textureDimensions_f4321c());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store3(0u, textureDimensions_f4321c());
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = textureDimensions_f4321c();
+  VertexOutput v_1 = tint_symbol;
+  return v_1;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_2 = vertex_main_inner();
+  VertexOutput v_3 = v_2;
+  VertexOutput v_4 = v_2;
+  vertex_main_outputs v_5 = {v_4.prevent_dce, v_3.pos};
+  return v_5;
+}
+
diff --git a/test/tint/builtins/gen/var/textureDimensions/f48886.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/textureDimensions/f48886.wgsl.expected.ir.dxc.hlsl
index 1fac62e..2687c78 100644
--- a/test/tint/builtins/gen/var/textureDimensions/f48886.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureDimensions/f48886.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,45 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  uint2 prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureDimensions
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation uint2 VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+Texture2D<int4> arg_0 : register(t0, space1);
+uint2 textureDimensions_f48886() {
+  uint2 v = (0u).xx;
+  arg_0.GetDimensions(v[0u], v[1u]);
+  uint2 res = v;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store2(0u, textureDimensions_f48886());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store2(0u, textureDimensions_f48886());
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = textureDimensions_f48886();
+  VertexOutput v_1 = tint_symbol;
+  return v_1;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_2 = vertex_main_inner();
+  VertexOutput v_3 = v_2;
+  VertexOutput v_4 = v_2;
+  vertex_main_outputs v_5 = {v_4.prevent_dce, v_3.pos};
+  return v_5;
+}
+
diff --git a/test/tint/builtins/gen/var/textureDimensions/f48886.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/textureDimensions/f48886.wgsl.expected.ir.fxc.hlsl
index 1fac62e..2687c78 100644
--- a/test/tint/builtins/gen/var/textureDimensions/f48886.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureDimensions/f48886.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,45 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  uint2 prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureDimensions
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation uint2 VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+Texture2D<int4> arg_0 : register(t0, space1);
+uint2 textureDimensions_f48886() {
+  uint2 v = (0u).xx;
+  arg_0.GetDimensions(v[0u], v[1u]);
+  uint2 res = v;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store2(0u, textureDimensions_f48886());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store2(0u, textureDimensions_f48886());
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = textureDimensions_f48886();
+  VertexOutput v_1 = tint_symbol;
+  return v_1;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_2 = vertex_main_inner();
+  VertexOutput v_3 = v_2;
+  VertexOutput v_4 = v_2;
+  vertex_main_outputs v_5 = {v_4.prevent_dce, v_3.pos};
+  return v_5;
+}
+
diff --git a/test/tint/builtins/gen/var/textureDimensions/f4e469.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/textureDimensions/f4e469.wgsl.expected.ir.dxc.hlsl
index 1fac62e..8b55a45 100644
--- a/test/tint/builtins/gen/var/textureDimensions/f4e469.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureDimensions/f4e469.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,19 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureDimensions
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWByteAddressBuffer prevent_dce : register(u0);
+RWTexture2D<float4> arg_0 : register(u0, space1);
+uint2 textureDimensions_f4e469() {
+  uint2 v = (0u).xx;
+  arg_0.GetDimensions(v[0u], v[1u]);
+  uint2 res = v;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store2(0u, textureDimensions_f4e469());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store2(0u, textureDimensions_f4e469());
+}
+
diff --git a/test/tint/builtins/gen/var/textureDimensions/f4e469.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/textureDimensions/f4e469.wgsl.expected.ir.fxc.hlsl
index 1fac62e..8b55a45 100644
--- a/test/tint/builtins/gen/var/textureDimensions/f4e469.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureDimensions/f4e469.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,19 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureDimensions
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWByteAddressBuffer prevent_dce : register(u0);
+RWTexture2D<float4> arg_0 : register(u0, space1);
+uint2 textureDimensions_f4e469() {
+  uint2 v = (0u).xx;
+  arg_0.GetDimensions(v[0u], v[1u]);
+  uint2 res = v;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store2(0u, textureDimensions_f4e469());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store2(0u, textureDimensions_f4e469());
+}
+
diff --git a/test/tint/builtins/gen/var/textureDimensions/f55a94.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/textureDimensions/f55a94.wgsl.expected.ir.dxc.hlsl
index 1fac62e..491f233 100644
--- a/test/tint/builtins/gen/var/textureDimensions/f55a94.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureDimensions/f55a94.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,19 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureDimensions
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWByteAddressBuffer prevent_dce : register(u0);
+RWTexture3D<float4> arg_0 : register(u0, space1);
+uint3 textureDimensions_f55a94() {
+  uint3 v = (0u).xxx;
+  arg_0.GetDimensions(v[0u], v[1u], v[2u]);
+  uint3 res = v;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store3(0u, textureDimensions_f55a94());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store3(0u, textureDimensions_f55a94());
+}
+
diff --git a/test/tint/builtins/gen/var/textureDimensions/f55a94.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/textureDimensions/f55a94.wgsl.expected.ir.fxc.hlsl
index 1fac62e..491f233 100644
--- a/test/tint/builtins/gen/var/textureDimensions/f55a94.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureDimensions/f55a94.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,19 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureDimensions
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWByteAddressBuffer prevent_dce : register(u0);
+RWTexture3D<float4> arg_0 : register(u0, space1);
+uint3 textureDimensions_f55a94() {
+  uint3 v = (0u).xxx;
+  arg_0.GetDimensions(v[0u], v[1u], v[2u]);
+  uint3 res = v;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store3(0u, textureDimensions_f55a94());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store3(0u, textureDimensions_f55a94());
+}
+
diff --git a/test/tint/builtins/gen/var/textureDimensions/f626b3.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/textureDimensions/f626b3.wgsl.expected.ir.dxc.hlsl
index 1fac62e..9a78f87 100644
--- a/test/tint/builtins/gen/var/textureDimensions/f626b3.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureDimensions/f626b3.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,45 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  uint2 prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureDimensions
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation uint2 VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+TextureCube<int4> arg_0 : register(t0, space1);
+uint2 textureDimensions_f626b3() {
+  uint2 v = (0u).xx;
+  arg_0.GetDimensions(v[0u], v[1u]);
+  uint2 res = v;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store2(0u, textureDimensions_f626b3());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store2(0u, textureDimensions_f626b3());
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = textureDimensions_f626b3();
+  VertexOutput v_1 = tint_symbol;
+  return v_1;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_2 = vertex_main_inner();
+  VertexOutput v_3 = v_2;
+  VertexOutput v_4 = v_2;
+  vertex_main_outputs v_5 = {v_4.prevent_dce, v_3.pos};
+  return v_5;
+}
+
diff --git a/test/tint/builtins/gen/var/textureDimensions/f626b3.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/textureDimensions/f626b3.wgsl.expected.ir.fxc.hlsl
index 1fac62e..9a78f87 100644
--- a/test/tint/builtins/gen/var/textureDimensions/f626b3.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureDimensions/f626b3.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,45 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  uint2 prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureDimensions
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation uint2 VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+TextureCube<int4> arg_0 : register(t0, space1);
+uint2 textureDimensions_f626b3() {
+  uint2 v = (0u).xx;
+  arg_0.GetDimensions(v[0u], v[1u]);
+  uint2 res = v;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store2(0u, textureDimensions_f626b3());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store2(0u, textureDimensions_f626b3());
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = textureDimensions_f626b3();
+  VertexOutput v_1 = tint_symbol;
+  return v_1;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_2 = vertex_main_inner();
+  VertexOutput v_3 = v_2;
+  VertexOutput v_4 = v_2;
+  vertex_main_outputs v_5 = {v_4.prevent_dce, v_3.pos};
+  return v_5;
+}
+
diff --git a/test/tint/builtins/gen/var/textureDimensions/f7bac5.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/textureDimensions/f7bac5.wgsl.expected.ir.dxc.hlsl
index 1fac62e..e28b670 100644
--- a/test/tint/builtins/gen/var/textureDimensions/f7bac5.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureDimensions/f7bac5.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,45 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  uint2 prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureDimensions
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation uint2 VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+Texture2DArray<int4> arg_0 : register(t0, space1);
+uint2 textureDimensions_f7bac5() {
+  uint3 v = (0u).xxx;
+  arg_0.GetDimensions(v[0u], v[1u], v[2u]);
+  uint2 res = v.xy;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store2(0u, textureDimensions_f7bac5());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store2(0u, textureDimensions_f7bac5());
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = textureDimensions_f7bac5();
+  VertexOutput v_1 = tint_symbol;
+  return v_1;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_2 = vertex_main_inner();
+  VertexOutput v_3 = v_2;
+  VertexOutput v_4 = v_2;
+  vertex_main_outputs v_5 = {v_4.prevent_dce, v_3.pos};
+  return v_5;
+}
+
diff --git a/test/tint/builtins/gen/var/textureDimensions/f7bac5.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/textureDimensions/f7bac5.wgsl.expected.ir.fxc.hlsl
index 1fac62e..e28b670 100644
--- a/test/tint/builtins/gen/var/textureDimensions/f7bac5.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureDimensions/f7bac5.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,45 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  uint2 prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureDimensions
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation uint2 VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+Texture2DArray<int4> arg_0 : register(t0, space1);
+uint2 textureDimensions_f7bac5() {
+  uint3 v = (0u).xxx;
+  arg_0.GetDimensions(v[0u], v[1u], v[2u]);
+  uint2 res = v.xy;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store2(0u, textureDimensions_f7bac5());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store2(0u, textureDimensions_f7bac5());
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = textureDimensions_f7bac5();
+  VertexOutput v_1 = tint_symbol;
+  return v_1;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_2 = vertex_main_inner();
+  VertexOutput v_3 = v_2;
+  VertexOutput v_4 = v_2;
+  vertex_main_outputs v_5 = {v_4.prevent_dce, v_3.pos};
+  return v_5;
+}
+
diff --git a/test/tint/builtins/gen/var/textureDimensions/f8522e.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/textureDimensions/f8522e.wgsl.expected.ir.dxc.hlsl
index 1fac62e..cc5f5d4 100644
--- a/test/tint/builtins/gen/var/textureDimensions/f8522e.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureDimensions/f8522e.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,45 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  uint2 prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureDimensions
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation uint2 VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+Texture2D<int4> arg_0 : register(t0, space1);
+uint2 textureDimensions_f8522e() {
+  uint2 v = (0u).xx;
+  arg_0.GetDimensions(v[0u], v[1u]);
+  uint2 res = v;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store2(0u, textureDimensions_f8522e());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store2(0u, textureDimensions_f8522e());
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = textureDimensions_f8522e();
+  VertexOutput v_1 = tint_symbol;
+  return v_1;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_2 = vertex_main_inner();
+  VertexOutput v_3 = v_2;
+  VertexOutput v_4 = v_2;
+  vertex_main_outputs v_5 = {v_4.prevent_dce, v_3.pos};
+  return v_5;
+}
+
diff --git a/test/tint/builtins/gen/var/textureDimensions/f8522e.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/textureDimensions/f8522e.wgsl.expected.ir.fxc.hlsl
index 1fac62e..cc5f5d4 100644
--- a/test/tint/builtins/gen/var/textureDimensions/f8522e.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureDimensions/f8522e.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,45 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  uint2 prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureDimensions
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation uint2 VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+Texture2D<int4> arg_0 : register(t0, space1);
+uint2 textureDimensions_f8522e() {
+  uint2 v = (0u).xx;
+  arg_0.GetDimensions(v[0u], v[1u]);
+  uint2 res = v;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store2(0u, textureDimensions_f8522e());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store2(0u, textureDimensions_f8522e());
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = textureDimensions_f8522e();
+  VertexOutput v_1 = tint_symbol;
+  return v_1;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_2 = vertex_main_inner();
+  VertexOutput v_3 = v_2;
+  VertexOutput v_4 = v_2;
+  vertex_main_outputs v_5 = {v_4.prevent_dce, v_3.pos};
+  return v_5;
+}
+
diff --git a/test/tint/builtins/gen/var/textureDimensions/f93ece.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/textureDimensions/f93ece.wgsl.expected.ir.dxc.hlsl
index 1fac62e..9d3ce96 100644
--- a/test/tint/builtins/gen/var/textureDimensions/f93ece.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureDimensions/f93ece.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,19 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureDimensions
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWByteAddressBuffer prevent_dce : register(u0);
+RWTexture3D<float4> arg_0 : register(u0, space1);
+uint3 textureDimensions_f93ece() {
+  uint3 v = (0u).xxx;
+  arg_0.GetDimensions(v[0u], v[1u], v[2u]);
+  uint3 res = v;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store3(0u, textureDimensions_f93ece());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store3(0u, textureDimensions_f93ece());
+}
+
diff --git a/test/tint/builtins/gen/var/textureDimensions/f93ece.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/textureDimensions/f93ece.wgsl.expected.ir.fxc.hlsl
index 1fac62e..9d3ce96 100644
--- a/test/tint/builtins/gen/var/textureDimensions/f93ece.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureDimensions/f93ece.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,19 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureDimensions
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWByteAddressBuffer prevent_dce : register(u0);
+RWTexture3D<float4> arg_0 : register(u0, space1);
+uint3 textureDimensions_f93ece() {
+  uint3 v = (0u).xxx;
+  arg_0.GetDimensions(v[0u], v[1u], v[2u]);
+  uint3 res = v;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store3(0u, textureDimensions_f93ece());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store3(0u, textureDimensions_f93ece());
+}
+
diff --git a/test/tint/builtins/gen/var/textureDimensions/f94e55.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/textureDimensions/f94e55.wgsl.expected.ir.dxc.hlsl
index 1fac62e..412fdb7 100644
--- a/test/tint/builtins/gen/var/textureDimensions/f94e55.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureDimensions/f94e55.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,19 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureDimensions
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWByteAddressBuffer prevent_dce : register(u0);
+RWTexture2D<float4> arg_0 : register(u0, space1);
+uint2 textureDimensions_f94e55() {
+  uint2 v = (0u).xx;
+  arg_0.GetDimensions(v[0u], v[1u]);
+  uint2 res = v;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store2(0u, textureDimensions_f94e55());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store2(0u, textureDimensions_f94e55());
+}
+
diff --git a/test/tint/builtins/gen/var/textureDimensions/f94e55.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/textureDimensions/f94e55.wgsl.expected.ir.fxc.hlsl
index 1fac62e..412fdb7 100644
--- a/test/tint/builtins/gen/var/textureDimensions/f94e55.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureDimensions/f94e55.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,19 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureDimensions
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWByteAddressBuffer prevent_dce : register(u0);
+RWTexture2D<float4> arg_0 : register(u0, space1);
+uint2 textureDimensions_f94e55() {
+  uint2 v = (0u).xx;
+  arg_0.GetDimensions(v[0u], v[1u]);
+  uint2 res = v;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store2(0u, textureDimensions_f94e55());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store2(0u, textureDimensions_f94e55());
+}
+
diff --git a/test/tint/builtins/gen/var/textureDimensions/fbb15a.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/textureDimensions/fbb15a.wgsl.expected.ir.dxc.hlsl
index 1fac62e..abc5d60 100644
--- a/test/tint/builtins/gen/var/textureDimensions/fbb15a.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureDimensions/fbb15a.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,19 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureDimensions
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWByteAddressBuffer prevent_dce : register(u0);
+RWTexture2D<float4> arg_0 : register(u0, space1);
+uint2 textureDimensions_fbb15a() {
+  uint2 v = (0u).xx;
+  arg_0.GetDimensions(v[0u], v[1u]);
+  uint2 res = v;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store2(0u, textureDimensions_fbb15a());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store2(0u, textureDimensions_fbb15a());
+}
+
diff --git a/test/tint/builtins/gen/var/textureDimensions/fbb15a.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/textureDimensions/fbb15a.wgsl.expected.ir.fxc.hlsl
index 1fac62e..abc5d60 100644
--- a/test/tint/builtins/gen/var/textureDimensions/fbb15a.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureDimensions/fbb15a.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,19 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureDimensions
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWByteAddressBuffer prevent_dce : register(u0);
+RWTexture2D<float4> arg_0 : register(u0, space1);
+uint2 textureDimensions_fbb15a() {
+  uint2 v = (0u).xx;
+  arg_0.GetDimensions(v[0u], v[1u]);
+  uint2 res = v;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store2(0u, textureDimensions_fbb15a());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store2(0u, textureDimensions_fbb15a());
+}
+
diff --git a/test/tint/builtins/gen/var/textureDimensions/fdbae8.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/textureDimensions/fdbae8.wgsl.expected.ir.dxc.hlsl
index 1fac62e..d6bf01e 100644
--- a/test/tint/builtins/gen/var/textureDimensions/fdbae8.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureDimensions/fdbae8.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,45 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  uint prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureDimensions
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation uint VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+Texture1D<float4> arg_0 : register(t0, space1);
+uint textureDimensions_fdbae8() {
+  uint v = 0u;
+  arg_0.GetDimensions(v);
+  uint res = v;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store(0u, textureDimensions_fdbae8());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store(0u, textureDimensions_fdbae8());
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = textureDimensions_fdbae8();
+  VertexOutput v_1 = tint_symbol;
+  return v_1;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_2 = vertex_main_inner();
+  VertexOutput v_3 = v_2;
+  VertexOutput v_4 = v_2;
+  vertex_main_outputs v_5 = {v_4.prevent_dce, v_3.pos};
+  return v_5;
+}
+
diff --git a/test/tint/builtins/gen/var/textureDimensions/fdbae8.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/textureDimensions/fdbae8.wgsl.expected.ir.fxc.hlsl
index 1fac62e..d6bf01e 100644
--- a/test/tint/builtins/gen/var/textureDimensions/fdbae8.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureDimensions/fdbae8.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,45 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  uint prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureDimensions
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation uint VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+Texture1D<float4> arg_0 : register(t0, space1);
+uint textureDimensions_fdbae8() {
+  uint v = 0u;
+  arg_0.GetDimensions(v);
+  uint res = v;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store(0u, textureDimensions_fdbae8());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store(0u, textureDimensions_fdbae8());
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = textureDimensions_fdbae8();
+  VertexOutput v_1 = tint_symbol;
+  return v_1;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_2 = vertex_main_inner();
+  VertexOutput v_3 = v_2;
+  VertexOutput v_4 = v_2;
+  vertex_main_outputs v_5 = {v_4.prevent_dce, v_3.pos};
+  return v_5;
+}
+
diff --git a/test/tint/builtins/gen/var/textureDimensions/fdf6e9.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/textureDimensions/fdf6e9.wgsl.expected.ir.dxc.hlsl
index 1fac62e..f62eff1 100644
--- a/test/tint/builtins/gen/var/textureDimensions/fdf6e9.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureDimensions/fdf6e9.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,47 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  uint2 prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureDimensions
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation uint2 VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+Texture2DArray<int4> arg_0 : register(t0, space1);
+uint2 textureDimensions_fdf6e9() {
+  int arg_1 = 1;
+  Texture2DArray<int4> v = arg_0;
+  uint4 v_1 = (0u).xxxx;
+  v.GetDimensions(uint(arg_1), v_1[0u], v_1[1u], v_1[2u], v_1[3u]);
+  uint2 res = v_1.xy;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store2(0u, textureDimensions_fdf6e9());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store2(0u, textureDimensions_fdf6e9());
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = textureDimensions_fdf6e9();
+  VertexOutput v_2 = tint_symbol;
+  return v_2;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_3 = vertex_main_inner();
+  VertexOutput v_4 = v_3;
+  VertexOutput v_5 = v_3;
+  vertex_main_outputs v_6 = {v_5.prevent_dce, v_4.pos};
+  return v_6;
+}
+
diff --git a/test/tint/builtins/gen/var/textureDimensions/fdf6e9.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/textureDimensions/fdf6e9.wgsl.expected.ir.fxc.hlsl
index 1fac62e..f62eff1 100644
--- a/test/tint/builtins/gen/var/textureDimensions/fdf6e9.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureDimensions/fdf6e9.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,47 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  uint2 prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureDimensions
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation uint2 VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+Texture2DArray<int4> arg_0 : register(t0, space1);
+uint2 textureDimensions_fdf6e9() {
+  int arg_1 = 1;
+  Texture2DArray<int4> v = arg_0;
+  uint4 v_1 = (0u).xxxx;
+  v.GetDimensions(uint(arg_1), v_1[0u], v_1[1u], v_1[2u], v_1[3u]);
+  uint2 res = v_1.xy;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store2(0u, textureDimensions_fdf6e9());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store2(0u, textureDimensions_fdf6e9());
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = textureDimensions_fdf6e9();
+  VertexOutput v_2 = tint_symbol;
+  return v_2;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_3 = vertex_main_inner();
+  VertexOutput v_4 = v_3;
+  VertexOutput v_5 = v_3;
+  vertex_main_outputs v_6 = {v_5.prevent_dce, v_4.pos};
+  return v_6;
+}
+
diff --git a/test/tint/builtins/gen/var/textureGather/0166ec.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/textureGather/0166ec.wgsl.expected.ir.dxc.hlsl
index de83606..c4b2414 100644
--- a/test/tint/builtins/gen/var/textureGather/0166ec.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureGather/0166ec.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,45 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  int4 prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureGather
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation int4 VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+TextureCube<int4> arg_1 : register(t1, space1);
+SamplerState arg_2 : register(s2, space1);
+int4 textureGather_0166ec() {
+  float3 arg_3 = (1.0f).xxx;
+  int4 res = arg_1.GatherGreen(arg_2, arg_3);
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store4(0u, asuint(textureGather_0166ec()));
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store4(0u, asuint(textureGather_0166ec()));
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = textureGather_0166ec();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
diff --git a/test/tint/builtins/gen/var/textureGather/0166ec.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/textureGather/0166ec.wgsl.expected.ir.fxc.hlsl
index de83606..c4b2414 100644
--- a/test/tint/builtins/gen/var/textureGather/0166ec.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureGather/0166ec.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,45 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  int4 prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureGather
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation int4 VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+TextureCube<int4> arg_1 : register(t1, space1);
+SamplerState arg_2 : register(s2, space1);
+int4 textureGather_0166ec() {
+  float3 arg_3 = (1.0f).xxx;
+  int4 res = arg_1.GatherGreen(arg_2, arg_3);
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store4(0u, asuint(textureGather_0166ec()));
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store4(0u, asuint(textureGather_0166ec()));
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = textureGather_0166ec();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
diff --git a/test/tint/builtins/gen/var/textureGather/04fa78.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/textureGather/04fa78.wgsl.expected.ir.dxc.hlsl
index de83606..fbbf562 100644
--- a/test/tint/builtins/gen/var/textureGather/04fa78.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureGather/04fa78.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,49 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  int4 prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureGather
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation int4 VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+TextureCubeArray<int4> arg_1 : register(t1, space1);
+SamplerState arg_2 : register(s2, space1);
+int4 textureGather_04fa78() {
+  float3 arg_3 = (1.0f).xxx;
+  uint arg_4 = 1u;
+  TextureCubeArray<int4> v = arg_1;
+  SamplerState v_1 = arg_2;
+  float3 v_2 = arg_3;
+  int4 res = v.GatherGreen(v_1, float4(v_2, float(arg_4)));
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store4(0u, asuint(textureGather_04fa78()));
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store4(0u, asuint(textureGather_04fa78()));
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = textureGather_04fa78();
+  VertexOutput v_3 = tint_symbol;
+  return v_3;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_4 = vertex_main_inner();
+  VertexOutput v_5 = v_4;
+  VertexOutput v_6 = v_4;
+  vertex_main_outputs v_7 = {v_6.prevent_dce, v_5.pos};
+  return v_7;
+}
+
diff --git a/test/tint/builtins/gen/var/textureGather/04fa78.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/textureGather/04fa78.wgsl.expected.ir.fxc.hlsl
index de83606..fbbf562 100644
--- a/test/tint/builtins/gen/var/textureGather/04fa78.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureGather/04fa78.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,49 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  int4 prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureGather
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation int4 VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+TextureCubeArray<int4> arg_1 : register(t1, space1);
+SamplerState arg_2 : register(s2, space1);
+int4 textureGather_04fa78() {
+  float3 arg_3 = (1.0f).xxx;
+  uint arg_4 = 1u;
+  TextureCubeArray<int4> v = arg_1;
+  SamplerState v_1 = arg_2;
+  float3 v_2 = arg_3;
+  int4 res = v.GatherGreen(v_1, float4(v_2, float(arg_4)));
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store4(0u, asuint(textureGather_04fa78()));
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store4(0u, asuint(textureGather_04fa78()));
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = textureGather_04fa78();
+  VertexOutput v_3 = tint_symbol;
+  return v_3;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_4 = vertex_main_inner();
+  VertexOutput v_5 = v_4;
+  VertexOutput v_6 = v_4;
+  vertex_main_outputs v_7 = {v_6.prevent_dce, v_5.pos};
+  return v_7;
+}
+
diff --git a/test/tint/builtins/gen/var/textureGather/10c554.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/textureGather/10c554.wgsl.expected.ir.dxc.hlsl
index de83606..a2c65a4 100644
--- a/test/tint/builtins/gen/var/textureGather/10c554.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureGather/10c554.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,45 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  float4 prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureGather
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation float4 VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+TextureCube arg_0 : register(t0, space1);
+SamplerState arg_1 : register(s1, space1);
+float4 textureGather_10c554() {
+  float3 arg_2 = (1.0f).xxx;
+  float4 res = arg_0.Gather(arg_1, arg_2);
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store4(0u, asuint(textureGather_10c554()));
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store4(0u, asuint(textureGather_10c554()));
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = textureGather_10c554();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
diff --git a/test/tint/builtins/gen/var/textureGather/10c554.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/textureGather/10c554.wgsl.expected.ir.fxc.hlsl
index de83606..a2c65a4 100644
--- a/test/tint/builtins/gen/var/textureGather/10c554.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureGather/10c554.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,45 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  float4 prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureGather
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation float4 VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+TextureCube arg_0 : register(t0, space1);
+SamplerState arg_1 : register(s1, space1);
+float4 textureGather_10c554() {
+  float3 arg_2 = (1.0f).xxx;
+  float4 res = arg_0.Gather(arg_1, arg_2);
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store4(0u, asuint(textureGather_10c554()));
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store4(0u, asuint(textureGather_10c554()));
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = textureGather_10c554();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
diff --git a/test/tint/builtins/gen/var/textureGather/11b2db.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/textureGather/11b2db.wgsl.expected.ir.dxc.hlsl
index de83606..f36e96b 100644
--- a/test/tint/builtins/gen/var/textureGather/11b2db.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureGather/11b2db.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,45 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  float4 prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureGather
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation float4 VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+TextureCube<float4> arg_1 : register(t1, space1);
+SamplerState arg_2 : register(s2, space1);
+float4 textureGather_11b2db() {
+  float3 arg_3 = (1.0f).xxx;
+  float4 res = arg_1.GatherGreen(arg_2, arg_3);
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store4(0u, asuint(textureGather_11b2db()));
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store4(0u, asuint(textureGather_11b2db()));
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = textureGather_11b2db();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
diff --git a/test/tint/builtins/gen/var/textureGather/11b2db.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/textureGather/11b2db.wgsl.expected.ir.fxc.hlsl
index de83606..f36e96b 100644
--- a/test/tint/builtins/gen/var/textureGather/11b2db.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureGather/11b2db.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,45 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  float4 prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureGather
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation float4 VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+TextureCube<float4> arg_1 : register(t1, space1);
+SamplerState arg_2 : register(s2, space1);
+float4 textureGather_11b2db() {
+  float3 arg_3 = (1.0f).xxx;
+  float4 res = arg_1.GatherGreen(arg_2, arg_3);
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store4(0u, asuint(textureGather_11b2db()));
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store4(0u, asuint(textureGather_11b2db()));
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = textureGather_11b2db();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
diff --git a/test/tint/builtins/gen/var/textureGather/17baac.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/textureGather/17baac.wgsl.expected.ir.dxc.hlsl
index de83606..41f1db4 100644
--- a/test/tint/builtins/gen/var/textureGather/17baac.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureGather/17baac.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,49 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  float4 prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureGather
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation float4 VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+Texture2DArray<float4> arg_1 : register(t1, space1);
+SamplerState arg_2 : register(s2, space1);
+float4 textureGather_17baac() {
+  float2 arg_3 = (1.0f).xx;
+  uint arg_4 = 1u;
+  Texture2DArray<float4> v = arg_1;
+  SamplerState v_1 = arg_2;
+  float2 v_2 = arg_3;
+  float4 res = v.GatherGreen(v_1, float3(v_2, float(arg_4)));
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store4(0u, asuint(textureGather_17baac()));
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store4(0u, asuint(textureGather_17baac()));
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = textureGather_17baac();
+  VertexOutput v_3 = tint_symbol;
+  return v_3;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_4 = vertex_main_inner();
+  VertexOutput v_5 = v_4;
+  VertexOutput v_6 = v_4;
+  vertex_main_outputs v_7 = {v_6.prevent_dce, v_5.pos};
+  return v_7;
+}
+
diff --git a/test/tint/builtins/gen/var/textureGather/17baac.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/textureGather/17baac.wgsl.expected.ir.fxc.hlsl
index de83606..41f1db4 100644
--- a/test/tint/builtins/gen/var/textureGather/17baac.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureGather/17baac.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,49 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  float4 prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureGather
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation float4 VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+Texture2DArray<float4> arg_1 : register(t1, space1);
+SamplerState arg_2 : register(s2, space1);
+float4 textureGather_17baac() {
+  float2 arg_3 = (1.0f).xx;
+  uint arg_4 = 1u;
+  Texture2DArray<float4> v = arg_1;
+  SamplerState v_1 = arg_2;
+  float2 v_2 = arg_3;
+  float4 res = v.GatherGreen(v_1, float3(v_2, float(arg_4)));
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store4(0u, asuint(textureGather_17baac()));
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store4(0u, asuint(textureGather_17baac()));
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = textureGather_17baac();
+  VertexOutput v_3 = tint_symbol;
+  return v_3;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_4 = vertex_main_inner();
+  VertexOutput v_5 = v_4;
+  VertexOutput v_6 = v_4;
+  vertex_main_outputs v_7 = {v_6.prevent_dce, v_5.pos};
+  return v_7;
+}
+
diff --git a/test/tint/builtins/gen/var/textureGather/1bf0ab.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/textureGather/1bf0ab.wgsl.expected.ir.dxc.hlsl
index de83606..188362c 100644
--- a/test/tint/builtins/gen/var/textureGather/1bf0ab.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureGather/1bf0ab.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,49 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  uint4 prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureGather
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation uint4 VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+Texture2DArray<uint4> arg_1 : register(t1, space1);
+SamplerState arg_2 : register(s2, space1);
+uint4 textureGather_1bf0ab() {
+  float2 arg_3 = (1.0f).xx;
+  uint arg_4 = 1u;
+  Texture2DArray<uint4> v = arg_1;
+  SamplerState v_1 = arg_2;
+  float2 v_2 = arg_3;
+  uint4 res = v.GatherGreen(v_1, float3(v_2, float(arg_4)));
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store4(0u, textureGather_1bf0ab());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store4(0u, textureGather_1bf0ab());
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = textureGather_1bf0ab();
+  VertexOutput v_3 = tint_symbol;
+  return v_3;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_4 = vertex_main_inner();
+  VertexOutput v_5 = v_4;
+  VertexOutput v_6 = v_4;
+  vertex_main_outputs v_7 = {v_6.prevent_dce, v_5.pos};
+  return v_7;
+}
+
diff --git a/test/tint/builtins/gen/var/textureGather/1bf0ab.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/textureGather/1bf0ab.wgsl.expected.ir.fxc.hlsl
index de83606..188362c 100644
--- a/test/tint/builtins/gen/var/textureGather/1bf0ab.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureGather/1bf0ab.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,49 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  uint4 prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureGather
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation uint4 VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+Texture2DArray<uint4> arg_1 : register(t1, space1);
+SamplerState arg_2 : register(s2, space1);
+uint4 textureGather_1bf0ab() {
+  float2 arg_3 = (1.0f).xx;
+  uint arg_4 = 1u;
+  Texture2DArray<uint4> v = arg_1;
+  SamplerState v_1 = arg_2;
+  float2 v_2 = arg_3;
+  uint4 res = v.GatherGreen(v_1, float3(v_2, float(arg_4)));
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store4(0u, textureGather_1bf0ab());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store4(0u, textureGather_1bf0ab());
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = textureGather_1bf0ab();
+  VertexOutput v_3 = tint_symbol;
+  return v_3;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_4 = vertex_main_inner();
+  VertexOutput v_5 = v_4;
+  VertexOutput v_6 = v_4;
+  vertex_main_outputs v_7 = {v_6.prevent_dce, v_5.pos};
+  return v_7;
+}
+
diff --git a/test/tint/builtins/gen/var/textureGather/1f7f6b.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/textureGather/1f7f6b.wgsl.expected.ir.dxc.hlsl
index de83606..b8b88c6 100644
--- a/test/tint/builtins/gen/var/textureGather/1f7f6b.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureGather/1f7f6b.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,3 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureGather
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+exit status 0xe0000001
\ No newline at end of file
diff --git a/test/tint/builtins/gen/var/textureGather/1f7f6b.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/textureGather/1f7f6b.wgsl.expected.ir.fxc.hlsl
index de83606..baabb2c 100644
--- a/test/tint/builtins/gen/var/textureGather/1f7f6b.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureGather/1f7f6b.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,45 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  float4 prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureGather
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation float4 VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+Texture2D arg_0 : register(t0, space1);
+SamplerState arg_1 : register(s1, space1);
+float4 textureGather_1f7f6b() {
+  float2 arg_2 = (1.0f).xx;
+  float4 res = arg_0.Gather(arg_1, arg_2, (1).xx);
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store4(0u, asuint(textureGather_1f7f6b()));
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store4(0u, asuint(textureGather_1f7f6b()));
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = textureGather_1f7f6b();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
diff --git a/test/tint/builtins/gen/var/textureGather/22e930.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/textureGather/22e930.wgsl.expected.ir.dxc.hlsl
index de83606..4928336 100644
--- a/test/tint/builtins/gen/var/textureGather/22e930.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureGather/22e930.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,49 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  float4 prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureGather
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation float4 VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+Texture2DArray<float4> arg_1 : register(t1, space1);
+SamplerState arg_2 : register(s2, space1);
+float4 textureGather_22e930() {
+  float2 arg_3 = (1.0f).xx;
+  int arg_4 = 1;
+  Texture2DArray<float4> v = arg_1;
+  SamplerState v_1 = arg_2;
+  float2 v_2 = arg_3;
+  float4 res = v.GatherGreen(v_1, float3(v_2, float(arg_4)));
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store4(0u, asuint(textureGather_22e930()));
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store4(0u, asuint(textureGather_22e930()));
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = textureGather_22e930();
+  VertexOutput v_3 = tint_symbol;
+  return v_3;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_4 = vertex_main_inner();
+  VertexOutput v_5 = v_4;
+  VertexOutput v_6 = v_4;
+  vertex_main_outputs v_7 = {v_6.prevent_dce, v_5.pos};
+  return v_7;
+}
+
diff --git a/test/tint/builtins/gen/var/textureGather/22e930.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/textureGather/22e930.wgsl.expected.ir.fxc.hlsl
index de83606..4928336 100644
--- a/test/tint/builtins/gen/var/textureGather/22e930.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureGather/22e930.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,49 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  float4 prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureGather
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation float4 VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+Texture2DArray<float4> arg_1 : register(t1, space1);
+SamplerState arg_2 : register(s2, space1);
+float4 textureGather_22e930() {
+  float2 arg_3 = (1.0f).xx;
+  int arg_4 = 1;
+  Texture2DArray<float4> v = arg_1;
+  SamplerState v_1 = arg_2;
+  float2 v_2 = arg_3;
+  float4 res = v.GatherGreen(v_1, float3(v_2, float(arg_4)));
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store4(0u, asuint(textureGather_22e930()));
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store4(0u, asuint(textureGather_22e930()));
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = textureGather_22e930();
+  VertexOutput v_3 = tint_symbol;
+  return v_3;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_4 = vertex_main_inner();
+  VertexOutput v_5 = v_4;
+  VertexOutput v_6 = v_4;
+  vertex_main_outputs v_7 = {v_6.prevent_dce, v_5.pos};
+  return v_7;
+}
+
diff --git a/test/tint/builtins/gen/var/textureGather/238ec4.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/textureGather/238ec4.wgsl.expected.ir.dxc.hlsl
index de83606..b8b88c6 100644
--- a/test/tint/builtins/gen/var/textureGather/238ec4.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureGather/238ec4.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,3 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureGather
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+exit status 0xe0000001
\ No newline at end of file
diff --git a/test/tint/builtins/gen/var/textureGather/238ec4.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/textureGather/238ec4.wgsl.expected.ir.fxc.hlsl
index de83606..a5a7aed 100644
--- a/test/tint/builtins/gen/var/textureGather/238ec4.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureGather/238ec4.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,49 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  float4 prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureGather
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation float4 VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+Texture2DArray<float4> arg_1 : register(t1, space1);
+SamplerState arg_2 : register(s2, space1);
+float4 textureGather_238ec4() {
+  float2 arg_3 = (1.0f).xx;
+  uint arg_4 = 1u;
+  Texture2DArray<float4> v = arg_1;
+  SamplerState v_1 = arg_2;
+  float2 v_2 = arg_3;
+  float4 res = v.GatherGreen(v_1, float3(v_2, float(arg_4)), (1).xx);
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store4(0u, asuint(textureGather_238ec4()));
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store4(0u, asuint(textureGather_238ec4()));
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = textureGather_238ec4();
+  VertexOutput v_3 = tint_symbol;
+  return v_3;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_4 = vertex_main_inner();
+  VertexOutput v_5 = v_4;
+  VertexOutput v_6 = v_4;
+  vertex_main_outputs v_7 = {v_6.prevent_dce, v_5.pos};
+  return v_7;
+}
+
diff --git a/test/tint/builtins/gen/var/textureGather/24b0bd.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/textureGather/24b0bd.wgsl.expected.ir.dxc.hlsl
index de83606..7efb726 100644
--- a/test/tint/builtins/gen/var/textureGather/24b0bd.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureGather/24b0bd.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,49 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  float4 prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureGather
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation float4 VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+Texture2DArray<float4> arg_1 : register(t1, space1);
+SamplerState arg_2 : register(s2, space1);
+float4 textureGather_24b0bd() {
+  float2 arg_3 = (1.0f).xx;
+  int arg_4 = 1;
+  Texture2DArray<float4> v = arg_1;
+  SamplerState v_1 = arg_2;
+  float2 v_2 = arg_3;
+  float4 res = v.GatherGreen(v_1, float3(v_2, float(arg_4)));
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store4(0u, asuint(textureGather_24b0bd()));
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store4(0u, asuint(textureGather_24b0bd()));
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = textureGather_24b0bd();
+  VertexOutput v_3 = tint_symbol;
+  return v_3;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_4 = vertex_main_inner();
+  VertexOutput v_5 = v_4;
+  VertexOutput v_6 = v_4;
+  vertex_main_outputs v_7 = {v_6.prevent_dce, v_5.pos};
+  return v_7;
+}
+
diff --git a/test/tint/builtins/gen/var/textureGather/24b0bd.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/textureGather/24b0bd.wgsl.expected.ir.fxc.hlsl
index de83606..7efb726 100644
--- a/test/tint/builtins/gen/var/textureGather/24b0bd.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureGather/24b0bd.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,49 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  float4 prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureGather
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation float4 VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+Texture2DArray<float4> arg_1 : register(t1, space1);
+SamplerState arg_2 : register(s2, space1);
+float4 textureGather_24b0bd() {
+  float2 arg_3 = (1.0f).xx;
+  int arg_4 = 1;
+  Texture2DArray<float4> v = arg_1;
+  SamplerState v_1 = arg_2;
+  float2 v_2 = arg_3;
+  float4 res = v.GatherGreen(v_1, float3(v_2, float(arg_4)));
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store4(0u, asuint(textureGather_24b0bd()));
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store4(0u, asuint(textureGather_24b0bd()));
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = textureGather_24b0bd();
+  VertexOutput v_3 = tint_symbol;
+  return v_3;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_4 = vertex_main_inner();
+  VertexOutput v_5 = v_4;
+  VertexOutput v_6 = v_4;
+  vertex_main_outputs v_7 = {v_6.prevent_dce, v_5.pos};
+  return v_7;
+}
+
diff --git a/test/tint/builtins/gen/var/textureGather/269250.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/textureGather/269250.wgsl.expected.ir.dxc.hlsl
index de83606..39c9316 100644
--- a/test/tint/builtins/gen/var/textureGather/269250.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureGather/269250.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,49 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  int4 prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureGather
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation int4 VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+Texture2DArray<int4> arg_1 : register(t1, space1);
+SamplerState arg_2 : register(s2, space1);
+int4 textureGather_269250() {
+  float2 arg_3 = (1.0f).xx;
+  uint arg_4 = 1u;
+  Texture2DArray<int4> v = arg_1;
+  SamplerState v_1 = arg_2;
+  float2 v_2 = arg_3;
+  int4 res = v.GatherGreen(v_1, float3(v_2, float(arg_4)));
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store4(0u, asuint(textureGather_269250()));
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store4(0u, asuint(textureGather_269250()));
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = textureGather_269250();
+  VertexOutput v_3 = tint_symbol;
+  return v_3;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_4 = vertex_main_inner();
+  VertexOutput v_5 = v_4;
+  VertexOutput v_6 = v_4;
+  vertex_main_outputs v_7 = {v_6.prevent_dce, v_5.pos};
+  return v_7;
+}
+
diff --git a/test/tint/builtins/gen/var/textureGather/269250.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/textureGather/269250.wgsl.expected.ir.fxc.hlsl
index de83606..39c9316 100644
--- a/test/tint/builtins/gen/var/textureGather/269250.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureGather/269250.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,49 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  int4 prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureGather
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation int4 VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+Texture2DArray<int4> arg_1 : register(t1, space1);
+SamplerState arg_2 : register(s2, space1);
+int4 textureGather_269250() {
+  float2 arg_3 = (1.0f).xx;
+  uint arg_4 = 1u;
+  Texture2DArray<int4> v = arg_1;
+  SamplerState v_1 = arg_2;
+  float2 v_2 = arg_3;
+  int4 res = v.GatherGreen(v_1, float3(v_2, float(arg_4)));
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store4(0u, asuint(textureGather_269250()));
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store4(0u, asuint(textureGather_269250()));
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = textureGather_269250();
+  VertexOutput v_3 = tint_symbol;
+  return v_3;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_4 = vertex_main_inner();
+  VertexOutput v_5 = v_4;
+  VertexOutput v_6 = v_4;
+  vertex_main_outputs v_7 = {v_6.prevent_dce, v_5.pos};
+  return v_7;
+}
+
diff --git a/test/tint/builtins/gen/var/textureGather/2a4f40.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/textureGather/2a4f40.wgsl.expected.ir.dxc.hlsl
index de83606..13cf4f1 100644
--- a/test/tint/builtins/gen/var/textureGather/2a4f40.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureGather/2a4f40.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,49 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  float4 prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureGather
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation float4 VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+Texture2DArray arg_0 : register(t0, space1);
+SamplerState arg_1 : register(s1, space1);
+float4 textureGather_2a4f40() {
+  float2 arg_2 = (1.0f).xx;
+  uint arg_3 = 1u;
+  Texture2DArray v = arg_0;
+  SamplerState v_1 = arg_1;
+  float2 v_2 = arg_2;
+  float4 res = v.Gather(v_1, float3(v_2, float(arg_3)));
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store4(0u, asuint(textureGather_2a4f40()));
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store4(0u, asuint(textureGather_2a4f40()));
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = textureGather_2a4f40();
+  VertexOutput v_3 = tint_symbol;
+  return v_3;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_4 = vertex_main_inner();
+  VertexOutput v_5 = v_4;
+  VertexOutput v_6 = v_4;
+  vertex_main_outputs v_7 = {v_6.prevent_dce, v_5.pos};
+  return v_7;
+}
+
diff --git a/test/tint/builtins/gen/var/textureGather/2a4f40.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/textureGather/2a4f40.wgsl.expected.ir.fxc.hlsl
index de83606..13cf4f1 100644
--- a/test/tint/builtins/gen/var/textureGather/2a4f40.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureGather/2a4f40.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,49 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  float4 prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureGather
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation float4 VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+Texture2DArray arg_0 : register(t0, space1);
+SamplerState arg_1 : register(s1, space1);
+float4 textureGather_2a4f40() {
+  float2 arg_2 = (1.0f).xx;
+  uint arg_3 = 1u;
+  Texture2DArray v = arg_0;
+  SamplerState v_1 = arg_1;
+  float2 v_2 = arg_2;
+  float4 res = v.Gather(v_1, float3(v_2, float(arg_3)));
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store4(0u, asuint(textureGather_2a4f40()));
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store4(0u, asuint(textureGather_2a4f40()));
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = textureGather_2a4f40();
+  VertexOutput v_3 = tint_symbol;
+  return v_3;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_4 = vertex_main_inner();
+  VertexOutput v_5 = v_4;
+  VertexOutput v_6 = v_4;
+  vertex_main_outputs v_7 = {v_6.prevent_dce, v_5.pos};
+  return v_7;
+}
+
diff --git a/test/tint/builtins/gen/var/textureGather/2cc066.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/textureGather/2cc066.wgsl.expected.ir.dxc.hlsl
index de83606..d307189 100644
--- a/test/tint/builtins/gen/var/textureGather/2cc066.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureGather/2cc066.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,49 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  uint4 prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureGather
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation uint4 VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+Texture2DArray<uint4> arg_1 : register(t1, space1);
+SamplerState arg_2 : register(s2, space1);
+uint4 textureGather_2cc066() {
+  float2 arg_3 = (1.0f).xx;
+  int arg_4 = 1;
+  Texture2DArray<uint4> v = arg_1;
+  SamplerState v_1 = arg_2;
+  float2 v_2 = arg_3;
+  uint4 res = v.GatherGreen(v_1, float3(v_2, float(arg_4)));
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store4(0u, textureGather_2cc066());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store4(0u, textureGather_2cc066());
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = textureGather_2cc066();
+  VertexOutput v_3 = tint_symbol;
+  return v_3;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_4 = vertex_main_inner();
+  VertexOutput v_5 = v_4;
+  VertexOutput v_6 = v_4;
+  vertex_main_outputs v_7 = {v_6.prevent_dce, v_5.pos};
+  return v_7;
+}
+
diff --git a/test/tint/builtins/gen/var/textureGather/2cc066.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/textureGather/2cc066.wgsl.expected.ir.fxc.hlsl
index de83606..d307189 100644
--- a/test/tint/builtins/gen/var/textureGather/2cc066.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureGather/2cc066.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,49 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  uint4 prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureGather
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation uint4 VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+Texture2DArray<uint4> arg_1 : register(t1, space1);
+SamplerState arg_2 : register(s2, space1);
+uint4 textureGather_2cc066() {
+  float2 arg_3 = (1.0f).xx;
+  int arg_4 = 1;
+  Texture2DArray<uint4> v = arg_1;
+  SamplerState v_1 = arg_2;
+  float2 v_2 = arg_3;
+  uint4 res = v.GatherGreen(v_1, float3(v_2, float(arg_4)));
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store4(0u, textureGather_2cc066());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store4(0u, textureGather_2cc066());
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = textureGather_2cc066();
+  VertexOutput v_3 = tint_symbol;
+  return v_3;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_4 = vertex_main_inner();
+  VertexOutput v_5 = v_4;
+  VertexOutput v_6 = v_4;
+  vertex_main_outputs v_7 = {v_6.prevent_dce, v_5.pos};
+  return v_7;
+}
+
diff --git a/test/tint/builtins/gen/var/textureGather/2e0ed5.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/textureGather/2e0ed5.wgsl.expected.ir.dxc.hlsl
index de83606..9bab56b 100644
--- a/test/tint/builtins/gen/var/textureGather/2e0ed5.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureGather/2e0ed5.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,45 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  float4 prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureGather
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation float4 VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+Texture2D arg_0 : register(t0, space1);
+SamplerState arg_1 : register(s1, space1);
+float4 textureGather_2e0ed5() {
+  float2 arg_2 = (1.0f).xx;
+  float4 res = arg_0.Gather(arg_1, arg_2);
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store4(0u, asuint(textureGather_2e0ed5()));
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store4(0u, asuint(textureGather_2e0ed5()));
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = textureGather_2e0ed5();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
diff --git a/test/tint/builtins/gen/var/textureGather/2e0ed5.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/textureGather/2e0ed5.wgsl.expected.ir.fxc.hlsl
index de83606..9bab56b 100644
--- a/test/tint/builtins/gen/var/textureGather/2e0ed5.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureGather/2e0ed5.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,45 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  float4 prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureGather
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation float4 VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+Texture2D arg_0 : register(t0, space1);
+SamplerState arg_1 : register(s1, space1);
+float4 textureGather_2e0ed5() {
+  float2 arg_2 = (1.0f).xx;
+  float4 res = arg_0.Gather(arg_1, arg_2);
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store4(0u, asuint(textureGather_2e0ed5()));
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store4(0u, asuint(textureGather_2e0ed5()));
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = textureGather_2e0ed5();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
diff --git a/test/tint/builtins/gen/var/textureGather/32c4e8.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/textureGather/32c4e8.wgsl.expected.ir.dxc.hlsl
index de83606..91e54ee 100644
--- a/test/tint/builtins/gen/var/textureGather/32c4e8.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureGather/32c4e8.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,45 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  float4 prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureGather
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation float4 VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+TextureCube<float4> arg_1 : register(t1, space1);
+SamplerState arg_2 : register(s2, space1);
+float4 textureGather_32c4e8() {
+  float3 arg_3 = (1.0f).xxx;
+  float4 res = arg_1.GatherGreen(arg_2, arg_3);
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store4(0u, asuint(textureGather_32c4e8()));
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store4(0u, asuint(textureGather_32c4e8()));
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = textureGather_32c4e8();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
diff --git a/test/tint/builtins/gen/var/textureGather/32c4e8.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/textureGather/32c4e8.wgsl.expected.ir.fxc.hlsl
index de83606..91e54ee 100644
--- a/test/tint/builtins/gen/var/textureGather/32c4e8.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureGather/32c4e8.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,45 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  float4 prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureGather
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation float4 VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+TextureCube<float4> arg_1 : register(t1, space1);
+SamplerState arg_2 : register(s2, space1);
+float4 textureGather_32c4e8() {
+  float3 arg_3 = (1.0f).xxx;
+  float4 res = arg_1.GatherGreen(arg_2, arg_3);
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store4(0u, asuint(textureGather_32c4e8()));
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store4(0u, asuint(textureGather_32c4e8()));
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = textureGather_32c4e8();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
diff --git a/test/tint/builtins/gen/var/textureGather/3b32cc.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/textureGather/3b32cc.wgsl.expected.ir.dxc.hlsl
index de83606..b48ff84 100644
--- a/test/tint/builtins/gen/var/textureGather/3b32cc.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureGather/3b32cc.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,45 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  uint4 prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureGather
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation uint4 VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+TextureCube<uint4> arg_1 : register(t1, space1);
+SamplerState arg_2 : register(s2, space1);
+uint4 textureGather_3b32cc() {
+  float3 arg_3 = (1.0f).xxx;
+  uint4 res = arg_1.GatherGreen(arg_2, arg_3);
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store4(0u, textureGather_3b32cc());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store4(0u, textureGather_3b32cc());
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = textureGather_3b32cc();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
diff --git a/test/tint/builtins/gen/var/textureGather/3b32cc.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/textureGather/3b32cc.wgsl.expected.ir.fxc.hlsl
index de83606..b48ff84 100644
--- a/test/tint/builtins/gen/var/textureGather/3b32cc.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureGather/3b32cc.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,45 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  uint4 prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureGather
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation uint4 VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+TextureCube<uint4> arg_1 : register(t1, space1);
+SamplerState arg_2 : register(s2, space1);
+uint4 textureGather_3b32cc() {
+  float3 arg_3 = (1.0f).xxx;
+  uint4 res = arg_1.GatherGreen(arg_2, arg_3);
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store4(0u, textureGather_3b32cc());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store4(0u, textureGather_3b32cc());
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = textureGather_3b32cc();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
diff --git a/test/tint/builtins/gen/var/textureGather/43025d.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/textureGather/43025d.wgsl.expected.ir.dxc.hlsl
index de83606..24cd683 100644
--- a/test/tint/builtins/gen/var/textureGather/43025d.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureGather/43025d.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,49 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  float4 prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureGather
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation float4 VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+TextureCubeArray arg_0 : register(t0, space1);
+SamplerState arg_1 : register(s1, space1);
+float4 textureGather_43025d() {
+  float3 arg_2 = (1.0f).xxx;
+  int arg_3 = 1;
+  TextureCubeArray v = arg_0;
+  SamplerState v_1 = arg_1;
+  float3 v_2 = arg_2;
+  float4 res = v.Gather(v_1, float4(v_2, float(arg_3)));
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store4(0u, asuint(textureGather_43025d()));
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store4(0u, asuint(textureGather_43025d()));
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = textureGather_43025d();
+  VertexOutput v_3 = tint_symbol;
+  return v_3;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_4 = vertex_main_inner();
+  VertexOutput v_5 = v_4;
+  VertexOutput v_6 = v_4;
+  vertex_main_outputs v_7 = {v_6.prevent_dce, v_5.pos};
+  return v_7;
+}
+
diff --git a/test/tint/builtins/gen/var/textureGather/43025d.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/textureGather/43025d.wgsl.expected.ir.fxc.hlsl
index de83606..24cd683 100644
--- a/test/tint/builtins/gen/var/textureGather/43025d.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureGather/43025d.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,49 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  float4 prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureGather
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation float4 VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+TextureCubeArray arg_0 : register(t0, space1);
+SamplerState arg_1 : register(s1, space1);
+float4 textureGather_43025d() {
+  float3 arg_2 = (1.0f).xxx;
+  int arg_3 = 1;
+  TextureCubeArray v = arg_0;
+  SamplerState v_1 = arg_1;
+  float3 v_2 = arg_2;
+  float4 res = v.Gather(v_1, float4(v_2, float(arg_3)));
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store4(0u, asuint(textureGather_43025d()));
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store4(0u, asuint(textureGather_43025d()));
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = textureGather_43025d();
+  VertexOutput v_3 = tint_symbol;
+  return v_3;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_4 = vertex_main_inner();
+  VertexOutput v_5 = v_4;
+  VertexOutput v_6 = v_4;
+  vertex_main_outputs v_7 = {v_6.prevent_dce, v_5.pos};
+  return v_7;
+}
+
diff --git a/test/tint/builtins/gen/var/textureGather/445793.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/textureGather/445793.wgsl.expected.ir.dxc.hlsl
index de83606..1940da4 100644
--- a/test/tint/builtins/gen/var/textureGather/445793.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureGather/445793.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,49 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  int4 prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureGather
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation int4 VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+Texture2DArray<int4> arg_1 : register(t1, space1);
+SamplerState arg_2 : register(s2, space1);
+int4 textureGather_445793() {
+  float2 arg_3 = (1.0f).xx;
+  int arg_4 = 1;
+  Texture2DArray<int4> v = arg_1;
+  SamplerState v_1 = arg_2;
+  float2 v_2 = arg_3;
+  int4 res = v.GatherGreen(v_1, float3(v_2, float(arg_4)));
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store4(0u, asuint(textureGather_445793()));
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store4(0u, asuint(textureGather_445793()));
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = textureGather_445793();
+  VertexOutput v_3 = tint_symbol;
+  return v_3;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_4 = vertex_main_inner();
+  VertexOutput v_5 = v_4;
+  VertexOutput v_6 = v_4;
+  vertex_main_outputs v_7 = {v_6.prevent_dce, v_5.pos};
+  return v_7;
+}
+
diff --git a/test/tint/builtins/gen/var/textureGather/445793.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/textureGather/445793.wgsl.expected.ir.fxc.hlsl
index de83606..1940da4 100644
--- a/test/tint/builtins/gen/var/textureGather/445793.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureGather/445793.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,49 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  int4 prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureGather
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation int4 VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+Texture2DArray<int4> arg_1 : register(t1, space1);
+SamplerState arg_2 : register(s2, space1);
+int4 textureGather_445793() {
+  float2 arg_3 = (1.0f).xx;
+  int arg_4 = 1;
+  Texture2DArray<int4> v = arg_1;
+  SamplerState v_1 = arg_2;
+  float2 v_2 = arg_3;
+  int4 res = v.GatherGreen(v_1, float3(v_2, float(arg_4)));
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store4(0u, asuint(textureGather_445793()));
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store4(0u, asuint(textureGather_445793()));
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = textureGather_445793();
+  VertexOutput v_3 = tint_symbol;
+  return v_3;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_4 = vertex_main_inner();
+  VertexOutput v_5 = v_4;
+  VertexOutput v_6 = v_4;
+  vertex_main_outputs v_7 = {v_6.prevent_dce, v_5.pos};
+  return v_7;
+}
+
diff --git a/test/tint/builtins/gen/var/textureGather/49b07f.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/textureGather/49b07f.wgsl.expected.ir.dxc.hlsl
index de83606..b8b88c6 100644
--- a/test/tint/builtins/gen/var/textureGather/49b07f.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureGather/49b07f.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,3 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureGather
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+exit status 0xe0000001
\ No newline at end of file
diff --git a/test/tint/builtins/gen/var/textureGather/49b07f.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/textureGather/49b07f.wgsl.expected.ir.fxc.hlsl
index de83606..bf286ba 100644
--- a/test/tint/builtins/gen/var/textureGather/49b07f.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureGather/49b07f.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,45 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  uint4 prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureGather
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation uint4 VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+Texture2D<uint4> arg_1 : register(t1, space1);
+SamplerState arg_2 : register(s2, space1);
+uint4 textureGather_49b07f() {
+  float2 arg_3 = (1.0f).xx;
+  uint4 res = arg_1.GatherGreen(arg_2, arg_3, (1).xx);
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store4(0u, textureGather_49b07f());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store4(0u, textureGather_49b07f());
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = textureGather_49b07f();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
diff --git a/test/tint/builtins/gen/var/textureGather/4b8103.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/textureGather/4b8103.wgsl.expected.ir.dxc.hlsl
index de83606..b8b88c6 100644
--- a/test/tint/builtins/gen/var/textureGather/4b8103.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureGather/4b8103.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,3 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureGather
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+exit status 0xe0000001
\ No newline at end of file
diff --git a/test/tint/builtins/gen/var/textureGather/4b8103.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/textureGather/4b8103.wgsl.expected.ir.fxc.hlsl
index de83606..c904a6d 100644
--- a/test/tint/builtins/gen/var/textureGather/4b8103.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureGather/4b8103.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,49 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  float4 prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureGather
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation float4 VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+Texture2DArray<float4> arg_1 : register(t1, space1);
+SamplerState arg_2 : register(s2, space1);
+float4 textureGather_4b8103() {
+  float2 arg_3 = (1.0f).xx;
+  int arg_4 = 1;
+  Texture2DArray<float4> v = arg_1;
+  SamplerState v_1 = arg_2;
+  float2 v_2 = arg_3;
+  float4 res = v.GatherGreen(v_1, float3(v_2, float(arg_4)), (1).xx);
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store4(0u, asuint(textureGather_4b8103()));
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store4(0u, asuint(textureGather_4b8103()));
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = textureGather_4b8103();
+  VertexOutput v_3 = tint_symbol;
+  return v_3;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_4 = vertex_main_inner();
+  VertexOutput v_5 = v_4;
+  VertexOutput v_6 = v_4;
+  vertex_main_outputs v_7 = {v_6.prevent_dce, v_5.pos};
+  return v_7;
+}
+
diff --git a/test/tint/builtins/gen/var/textureGather/4e8ac5.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/textureGather/4e8ac5.wgsl.expected.ir.dxc.hlsl
index de83606..58a5c1d 100644
--- a/test/tint/builtins/gen/var/textureGather/4e8ac5.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureGather/4e8ac5.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,49 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  int4 prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureGather
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation int4 VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+Texture2DArray<int4> arg_1 : register(t1, space1);
+SamplerState arg_2 : register(s2, space1);
+int4 textureGather_4e8ac5() {
+  float2 arg_3 = (1.0f).xx;
+  uint arg_4 = 1u;
+  Texture2DArray<int4> v = arg_1;
+  SamplerState v_1 = arg_2;
+  float2 v_2 = arg_3;
+  int4 res = v.GatherGreen(v_1, float3(v_2, float(arg_4)));
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store4(0u, asuint(textureGather_4e8ac5()));
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store4(0u, asuint(textureGather_4e8ac5()));
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = textureGather_4e8ac5();
+  VertexOutput v_3 = tint_symbol;
+  return v_3;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_4 = vertex_main_inner();
+  VertexOutput v_5 = v_4;
+  VertexOutput v_6 = v_4;
+  vertex_main_outputs v_7 = {v_6.prevent_dce, v_5.pos};
+  return v_7;
+}
+
diff --git a/test/tint/builtins/gen/var/textureGather/4e8ac5.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/textureGather/4e8ac5.wgsl.expected.ir.fxc.hlsl
index de83606..58a5c1d 100644
--- a/test/tint/builtins/gen/var/textureGather/4e8ac5.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureGather/4e8ac5.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,49 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  int4 prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureGather
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation int4 VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+Texture2DArray<int4> arg_1 : register(t1, space1);
+SamplerState arg_2 : register(s2, space1);
+int4 textureGather_4e8ac5() {
+  float2 arg_3 = (1.0f).xx;
+  uint arg_4 = 1u;
+  Texture2DArray<int4> v = arg_1;
+  SamplerState v_1 = arg_2;
+  float2 v_2 = arg_3;
+  int4 res = v.GatherGreen(v_1, float3(v_2, float(arg_4)));
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store4(0u, asuint(textureGather_4e8ac5()));
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store4(0u, asuint(textureGather_4e8ac5()));
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = textureGather_4e8ac5();
+  VertexOutput v_3 = tint_symbol;
+  return v_3;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_4 = vertex_main_inner();
+  VertexOutput v_5 = v_4;
+  VertexOutput v_6 = v_4;
+  vertex_main_outputs v_7 = {v_6.prevent_dce, v_5.pos};
+  return v_7;
+}
+
diff --git a/test/tint/builtins/gen/var/textureGather/5266da.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/textureGather/5266da.wgsl.expected.ir.dxc.hlsl
index de83606..a9f8411 100644
--- a/test/tint/builtins/gen/var/textureGather/5266da.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureGather/5266da.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,45 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  float4 prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureGather
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation float4 VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+Texture2D<float4> arg_1 : register(t1, space1);
+SamplerState arg_2 : register(s2, space1);
+float4 textureGather_5266da() {
+  float2 arg_3 = (1.0f).xx;
+  float4 res = arg_1.GatherGreen(arg_2, arg_3);
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store4(0u, asuint(textureGather_5266da()));
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store4(0u, asuint(textureGather_5266da()));
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = textureGather_5266da();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
diff --git a/test/tint/builtins/gen/var/textureGather/5266da.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/textureGather/5266da.wgsl.expected.ir.fxc.hlsl
index de83606..a9f8411 100644
--- a/test/tint/builtins/gen/var/textureGather/5266da.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureGather/5266da.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,45 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  float4 prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureGather
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation float4 VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+Texture2D<float4> arg_1 : register(t1, space1);
+SamplerState arg_2 : register(s2, space1);
+float4 textureGather_5266da() {
+  float2 arg_3 = (1.0f).xx;
+  float4 res = arg_1.GatherGreen(arg_2, arg_3);
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store4(0u, asuint(textureGather_5266da()));
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store4(0u, asuint(textureGather_5266da()));
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = textureGather_5266da();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
diff --git a/test/tint/builtins/gen/var/textureGather/59372a.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/textureGather/59372a.wgsl.expected.ir.dxc.hlsl
index de83606..b8b88c6 100644
--- a/test/tint/builtins/gen/var/textureGather/59372a.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureGather/59372a.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,3 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureGather
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+exit status 0xe0000001
\ No newline at end of file
diff --git a/test/tint/builtins/gen/var/textureGather/59372a.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/textureGather/59372a.wgsl.expected.ir.fxc.hlsl
index de83606..02551e4 100644
--- a/test/tint/builtins/gen/var/textureGather/59372a.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureGather/59372a.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,49 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  float4 prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureGather
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation float4 VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+Texture2DArray<float4> arg_1 : register(t1, space1);
+SamplerState arg_2 : register(s2, space1);
+float4 textureGather_59372a() {
+  float2 arg_3 = (1.0f).xx;
+  uint arg_4 = 1u;
+  Texture2DArray<float4> v = arg_1;
+  SamplerState v_1 = arg_2;
+  float2 v_2 = arg_3;
+  float4 res = v.GatherGreen(v_1, float3(v_2, float(arg_4)), (1).xx);
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store4(0u, asuint(textureGather_59372a()));
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store4(0u, asuint(textureGather_59372a()));
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = textureGather_59372a();
+  VertexOutput v_3 = tint_symbol;
+  return v_3;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_4 = vertex_main_inner();
+  VertexOutput v_5 = v_4;
+  VertexOutput v_6 = v_4;
+  vertex_main_outputs v_7 = {v_6.prevent_dce, v_5.pos};
+  return v_7;
+}
+
diff --git a/test/tint/builtins/gen/var/textureGather/5ba85f.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/textureGather/5ba85f.wgsl.expected.ir.dxc.hlsl
index de83606..65d5839 100644
--- a/test/tint/builtins/gen/var/textureGather/5ba85f.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureGather/5ba85f.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,45 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  int4 prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureGather
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation int4 VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+TextureCube<int4> arg_1 : register(t1, space1);
+SamplerState arg_2 : register(s2, space1);
+int4 textureGather_5ba85f() {
+  float3 arg_3 = (1.0f).xxx;
+  int4 res = arg_1.GatherGreen(arg_2, arg_3);
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store4(0u, asuint(textureGather_5ba85f()));
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store4(0u, asuint(textureGather_5ba85f()));
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = textureGather_5ba85f();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
diff --git a/test/tint/builtins/gen/var/textureGather/5ba85f.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/textureGather/5ba85f.wgsl.expected.ir.fxc.hlsl
index de83606..65d5839 100644
--- a/test/tint/builtins/gen/var/textureGather/5ba85f.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureGather/5ba85f.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,45 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  int4 prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureGather
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation int4 VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+TextureCube<int4> arg_1 : register(t1, space1);
+SamplerState arg_2 : register(s2, space1);
+int4 textureGather_5ba85f() {
+  float3 arg_3 = (1.0f).xxx;
+  int4 res = arg_1.GatherGreen(arg_2, arg_3);
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store4(0u, asuint(textureGather_5ba85f()));
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store4(0u, asuint(textureGather_5ba85f()));
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = textureGather_5ba85f();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
diff --git a/test/tint/builtins/gen/var/textureGather/5bd491.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/textureGather/5bd491.wgsl.expected.ir.dxc.hlsl
index de83606..565ca5d 100644
--- a/test/tint/builtins/gen/var/textureGather/5bd491.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureGather/5bd491.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,45 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  uint4 prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureGather
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation uint4 VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+Texture2D<uint4> arg_1 : register(t1, space1);
+SamplerState arg_2 : register(s2, space1);
+uint4 textureGather_5bd491() {
+  float2 arg_3 = (1.0f).xx;
+  uint4 res = arg_1.GatherGreen(arg_2, arg_3);
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store4(0u, textureGather_5bd491());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store4(0u, textureGather_5bd491());
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = textureGather_5bd491();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
diff --git a/test/tint/builtins/gen/var/textureGather/5bd491.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/textureGather/5bd491.wgsl.expected.ir.fxc.hlsl
index de83606..565ca5d 100644
--- a/test/tint/builtins/gen/var/textureGather/5bd491.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureGather/5bd491.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,45 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  uint4 prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureGather
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation uint4 VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+Texture2D<uint4> arg_1 : register(t1, space1);
+SamplerState arg_2 : register(s2, space1);
+uint4 textureGather_5bd491() {
+  float2 arg_3 = (1.0f).xx;
+  uint4 res = arg_1.GatherGreen(arg_2, arg_3);
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store4(0u, textureGather_5bd491());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store4(0u, textureGather_5bd491());
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = textureGather_5bd491();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
diff --git a/test/tint/builtins/gen/var/textureGather/6b7b74.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/textureGather/6b7b74.wgsl.expected.ir.dxc.hlsl
index de83606..b8b88c6 100644
--- a/test/tint/builtins/gen/var/textureGather/6b7b74.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureGather/6b7b74.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,3 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureGather
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+exit status 0xe0000001
\ No newline at end of file
diff --git a/test/tint/builtins/gen/var/textureGather/6b7b74.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/textureGather/6b7b74.wgsl.expected.ir.fxc.hlsl
index de83606..91a9366 100644
--- a/test/tint/builtins/gen/var/textureGather/6b7b74.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureGather/6b7b74.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,49 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  uint4 prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureGather
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation uint4 VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+Texture2DArray<uint4> arg_1 : register(t1, space1);
+SamplerState arg_2 : register(s2, space1);
+uint4 textureGather_6b7b74() {
+  float2 arg_3 = (1.0f).xx;
+  uint arg_4 = 1u;
+  Texture2DArray<uint4> v = arg_1;
+  SamplerState v_1 = arg_2;
+  float2 v_2 = arg_3;
+  uint4 res = v.GatherGreen(v_1, float3(v_2, float(arg_4)), (1).xx);
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store4(0u, textureGather_6b7b74());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store4(0u, textureGather_6b7b74());
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = textureGather_6b7b74();
+  VertexOutput v_3 = tint_symbol;
+  return v_3;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_4 = vertex_main_inner();
+  VertexOutput v_5 = v_4;
+  VertexOutput v_6 = v_4;
+  vertex_main_outputs v_7 = {v_6.prevent_dce, v_5.pos};
+  return v_7;
+}
+
diff --git a/test/tint/builtins/gen/var/textureGather/751f8a.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/textureGather/751f8a.wgsl.expected.ir.dxc.hlsl
index de83606..ffa3129 100644
--- a/test/tint/builtins/gen/var/textureGather/751f8a.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureGather/751f8a.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,49 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  float4 prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureGather
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation float4 VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+TextureCubeArray<float4> arg_1 : register(t1, space1);
+SamplerState arg_2 : register(s2, space1);
+float4 textureGather_751f8a() {
+  float3 arg_3 = (1.0f).xxx;
+  int arg_4 = 1;
+  TextureCubeArray<float4> v = arg_1;
+  SamplerState v_1 = arg_2;
+  float3 v_2 = arg_3;
+  float4 res = v.GatherGreen(v_1, float4(v_2, float(arg_4)));
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store4(0u, asuint(textureGather_751f8a()));
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store4(0u, asuint(textureGather_751f8a()));
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = textureGather_751f8a();
+  VertexOutput v_3 = tint_symbol;
+  return v_3;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_4 = vertex_main_inner();
+  VertexOutput v_5 = v_4;
+  VertexOutput v_6 = v_4;
+  vertex_main_outputs v_7 = {v_6.prevent_dce, v_5.pos};
+  return v_7;
+}
+
diff --git a/test/tint/builtins/gen/var/textureGather/751f8a.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/textureGather/751f8a.wgsl.expected.ir.fxc.hlsl
index de83606..ffa3129 100644
--- a/test/tint/builtins/gen/var/textureGather/751f8a.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureGather/751f8a.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,49 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  float4 prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureGather
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation float4 VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+TextureCubeArray<float4> arg_1 : register(t1, space1);
+SamplerState arg_2 : register(s2, space1);
+float4 textureGather_751f8a() {
+  float3 arg_3 = (1.0f).xxx;
+  int arg_4 = 1;
+  TextureCubeArray<float4> v = arg_1;
+  SamplerState v_1 = arg_2;
+  float3 v_2 = arg_3;
+  float4 res = v.GatherGreen(v_1, float4(v_2, float(arg_4)));
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store4(0u, asuint(textureGather_751f8a()));
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store4(0u, asuint(textureGather_751f8a()));
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = textureGather_751f8a();
+  VertexOutput v_3 = tint_symbol;
+  return v_3;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_4 = vertex_main_inner();
+  VertexOutput v_5 = v_4;
+  VertexOutput v_6 = v_4;
+  vertex_main_outputs v_7 = {v_6.prevent_dce, v_5.pos};
+  return v_7;
+}
+
diff --git a/test/tint/builtins/gen/var/textureGather/788010.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/textureGather/788010.wgsl.expected.ir.dxc.hlsl
index de83606..8d7e601 100644
--- a/test/tint/builtins/gen/var/textureGather/788010.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureGather/788010.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,49 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  int4 prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureGather
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation int4 VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+TextureCubeArray<int4> arg_1 : register(t1, space1);
+SamplerState arg_2 : register(s2, space1);
+int4 textureGather_788010() {
+  float3 arg_3 = (1.0f).xxx;
+  uint arg_4 = 1u;
+  TextureCubeArray<int4> v = arg_1;
+  SamplerState v_1 = arg_2;
+  float3 v_2 = arg_3;
+  int4 res = v.GatherGreen(v_1, float4(v_2, float(arg_4)));
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store4(0u, asuint(textureGather_788010()));
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store4(0u, asuint(textureGather_788010()));
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = textureGather_788010();
+  VertexOutput v_3 = tint_symbol;
+  return v_3;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_4 = vertex_main_inner();
+  VertexOutput v_5 = v_4;
+  VertexOutput v_6 = v_4;
+  vertex_main_outputs v_7 = {v_6.prevent_dce, v_5.pos};
+  return v_7;
+}
+
diff --git a/test/tint/builtins/gen/var/textureGather/788010.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/textureGather/788010.wgsl.expected.ir.fxc.hlsl
index de83606..8d7e601 100644
--- a/test/tint/builtins/gen/var/textureGather/788010.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureGather/788010.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,49 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  int4 prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureGather
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation int4 VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+TextureCubeArray<int4> arg_1 : register(t1, space1);
+SamplerState arg_2 : register(s2, space1);
+int4 textureGather_788010() {
+  float3 arg_3 = (1.0f).xxx;
+  uint arg_4 = 1u;
+  TextureCubeArray<int4> v = arg_1;
+  SamplerState v_1 = arg_2;
+  float3 v_2 = arg_3;
+  int4 res = v.GatherGreen(v_1, float4(v_2, float(arg_4)));
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store4(0u, asuint(textureGather_788010()));
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store4(0u, asuint(textureGather_788010()));
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = textureGather_788010();
+  VertexOutput v_3 = tint_symbol;
+  return v_3;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_4 = vertex_main_inner();
+  VertexOutput v_5 = v_4;
+  VertexOutput v_6 = v_4;
+  vertex_main_outputs v_7 = {v_6.prevent_dce, v_5.pos};
+  return v_7;
+}
+
diff --git a/test/tint/builtins/gen/var/textureGather/7c3828.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/textureGather/7c3828.wgsl.expected.ir.dxc.hlsl
index de83606..b8b88c6 100644
--- a/test/tint/builtins/gen/var/textureGather/7c3828.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureGather/7c3828.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,3 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureGather
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+exit status 0xe0000001
\ No newline at end of file
diff --git a/test/tint/builtins/gen/var/textureGather/7c3828.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/textureGather/7c3828.wgsl.expected.ir.fxc.hlsl
index de83606..6d68139 100644
--- a/test/tint/builtins/gen/var/textureGather/7c3828.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureGather/7c3828.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,45 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  int4 prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureGather
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation int4 VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+Texture2D<int4> arg_1 : register(t1, space1);
+SamplerState arg_2 : register(s2, space1);
+int4 textureGather_7c3828() {
+  float2 arg_3 = (1.0f).xx;
+  int4 res = arg_1.GatherGreen(arg_2, arg_3, (1).xx);
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store4(0u, asuint(textureGather_7c3828()));
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store4(0u, asuint(textureGather_7c3828()));
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = textureGather_7c3828();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
diff --git a/test/tint/builtins/gen/var/textureGather/7dd226.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/textureGather/7dd226.wgsl.expected.ir.dxc.hlsl
index de83606..783da7d 100644
--- a/test/tint/builtins/gen/var/textureGather/7dd226.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureGather/7dd226.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,49 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  float4 prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureGather
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation float4 VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+TextureCubeArray arg_0 : register(t0, space1);
+SamplerState arg_1 : register(s1, space1);
+float4 textureGather_7dd226() {
+  float3 arg_2 = (1.0f).xxx;
+  uint arg_3 = 1u;
+  TextureCubeArray v = arg_0;
+  SamplerState v_1 = arg_1;
+  float3 v_2 = arg_2;
+  float4 res = v.Gather(v_1, float4(v_2, float(arg_3)));
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store4(0u, asuint(textureGather_7dd226()));
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store4(0u, asuint(textureGather_7dd226()));
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = textureGather_7dd226();
+  VertexOutput v_3 = tint_symbol;
+  return v_3;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_4 = vertex_main_inner();
+  VertexOutput v_5 = v_4;
+  VertexOutput v_6 = v_4;
+  vertex_main_outputs v_7 = {v_6.prevent_dce, v_5.pos};
+  return v_7;
+}
+
diff --git a/test/tint/builtins/gen/var/textureGather/7dd226.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/textureGather/7dd226.wgsl.expected.ir.fxc.hlsl
index de83606..783da7d 100644
--- a/test/tint/builtins/gen/var/textureGather/7dd226.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureGather/7dd226.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,49 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  float4 prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureGather
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation float4 VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+TextureCubeArray arg_0 : register(t0, space1);
+SamplerState arg_1 : register(s1, space1);
+float4 textureGather_7dd226() {
+  float3 arg_2 = (1.0f).xxx;
+  uint arg_3 = 1u;
+  TextureCubeArray v = arg_0;
+  SamplerState v_1 = arg_1;
+  float3 v_2 = arg_2;
+  float4 res = v.Gather(v_1, float4(v_2, float(arg_3)));
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store4(0u, asuint(textureGather_7dd226()));
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store4(0u, asuint(textureGather_7dd226()));
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = textureGather_7dd226();
+  VertexOutput v_3 = tint_symbol;
+  return v_3;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_4 = vertex_main_inner();
+  VertexOutput v_5 = v_4;
+  VertexOutput v_6 = v_4;
+  vertex_main_outputs v_7 = {v_6.prevent_dce, v_5.pos};
+  return v_7;
+}
+
diff --git a/test/tint/builtins/gen/var/textureGather/829357.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/textureGather/829357.wgsl.expected.ir.dxc.hlsl
index de83606..7059c7a 100644
--- a/test/tint/builtins/gen/var/textureGather/829357.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureGather/829357.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,49 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  float4 prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureGather
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation float4 VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+TextureCubeArray<float4> arg_1 : register(t1, space1);
+SamplerState arg_2 : register(s2, space1);
+float4 textureGather_829357() {
+  float3 arg_3 = (1.0f).xxx;
+  uint arg_4 = 1u;
+  TextureCubeArray<float4> v = arg_1;
+  SamplerState v_1 = arg_2;
+  float3 v_2 = arg_3;
+  float4 res = v.GatherGreen(v_1, float4(v_2, float(arg_4)));
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store4(0u, asuint(textureGather_829357()));
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store4(0u, asuint(textureGather_829357()));
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = textureGather_829357();
+  VertexOutput v_3 = tint_symbol;
+  return v_3;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_4 = vertex_main_inner();
+  VertexOutput v_5 = v_4;
+  VertexOutput v_6 = v_4;
+  vertex_main_outputs v_7 = {v_6.prevent_dce, v_5.pos};
+  return v_7;
+}
+
diff --git a/test/tint/builtins/gen/var/textureGather/829357.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/textureGather/829357.wgsl.expected.ir.fxc.hlsl
index de83606..7059c7a 100644
--- a/test/tint/builtins/gen/var/textureGather/829357.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureGather/829357.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,49 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  float4 prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureGather
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation float4 VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+TextureCubeArray<float4> arg_1 : register(t1, space1);
+SamplerState arg_2 : register(s2, space1);
+float4 textureGather_829357() {
+  float3 arg_3 = (1.0f).xxx;
+  uint arg_4 = 1u;
+  TextureCubeArray<float4> v = arg_1;
+  SamplerState v_1 = arg_2;
+  float3 v_2 = arg_3;
+  float4 res = v.GatherGreen(v_1, float4(v_2, float(arg_4)));
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store4(0u, asuint(textureGather_829357()));
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store4(0u, asuint(textureGather_829357()));
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = textureGather_829357();
+  VertexOutput v_3 = tint_symbol;
+  return v_3;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_4 = vertex_main_inner();
+  VertexOutput v_5 = v_4;
+  VertexOutput v_6 = v_4;
+  vertex_main_outputs v_7 = {v_6.prevent_dce, v_5.pos};
+  return v_7;
+}
+
diff --git a/test/tint/builtins/gen/var/textureGather/831549.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/textureGather/831549.wgsl.expected.ir.dxc.hlsl
index de83606..b8b88c6 100644
--- a/test/tint/builtins/gen/var/textureGather/831549.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureGather/831549.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,3 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureGather
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+exit status 0xe0000001
\ No newline at end of file
diff --git a/test/tint/builtins/gen/var/textureGather/831549.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/textureGather/831549.wgsl.expected.ir.fxc.hlsl
index de83606..92b2a30 100644
--- a/test/tint/builtins/gen/var/textureGather/831549.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureGather/831549.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,49 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  float4 prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureGather
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation float4 VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+Texture2DArray<float4> arg_1 : register(t1, space1);
+SamplerState arg_2 : register(s2, space1);
+float4 textureGather_831549() {
+  float2 arg_3 = (1.0f).xx;
+  int arg_4 = 1;
+  Texture2DArray<float4> v = arg_1;
+  SamplerState v_1 = arg_2;
+  float2 v_2 = arg_3;
+  float4 res = v.GatherGreen(v_1, float3(v_2, float(arg_4)), (1).xx);
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store4(0u, asuint(textureGather_831549()));
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store4(0u, asuint(textureGather_831549()));
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = textureGather_831549();
+  VertexOutput v_3 = tint_symbol;
+  return v_3;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_4 = vertex_main_inner();
+  VertexOutput v_5 = v_4;
+  VertexOutput v_6 = v_4;
+  vertex_main_outputs v_7 = {v_6.prevent_dce, v_5.pos};
+  return v_7;
+}
+
diff --git a/test/tint/builtins/gen/var/textureGather/8578bc.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/textureGather/8578bc.wgsl.expected.ir.dxc.hlsl
index de83606..20de237 100644
--- a/test/tint/builtins/gen/var/textureGather/8578bc.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureGather/8578bc.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,49 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  float4 prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureGather
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation float4 VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+TextureCubeArray<float4> arg_1 : register(t1, space1);
+SamplerState arg_2 : register(s2, space1);
+float4 textureGather_8578bc() {
+  float3 arg_3 = (1.0f).xxx;
+  uint arg_4 = 1u;
+  TextureCubeArray<float4> v = arg_1;
+  SamplerState v_1 = arg_2;
+  float3 v_2 = arg_3;
+  float4 res = v.GatherGreen(v_1, float4(v_2, float(arg_4)));
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store4(0u, asuint(textureGather_8578bc()));
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store4(0u, asuint(textureGather_8578bc()));
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = textureGather_8578bc();
+  VertexOutput v_3 = tint_symbol;
+  return v_3;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_4 = vertex_main_inner();
+  VertexOutput v_5 = v_4;
+  VertexOutput v_6 = v_4;
+  vertex_main_outputs v_7 = {v_6.prevent_dce, v_5.pos};
+  return v_7;
+}
+
diff --git a/test/tint/builtins/gen/var/textureGather/8578bc.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/textureGather/8578bc.wgsl.expected.ir.fxc.hlsl
index de83606..20de237 100644
--- a/test/tint/builtins/gen/var/textureGather/8578bc.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureGather/8578bc.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,49 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  float4 prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureGather
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation float4 VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+TextureCubeArray<float4> arg_1 : register(t1, space1);
+SamplerState arg_2 : register(s2, space1);
+float4 textureGather_8578bc() {
+  float3 arg_3 = (1.0f).xxx;
+  uint arg_4 = 1u;
+  TextureCubeArray<float4> v = arg_1;
+  SamplerState v_1 = arg_2;
+  float3 v_2 = arg_3;
+  float4 res = v.GatherGreen(v_1, float4(v_2, float(arg_4)));
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store4(0u, asuint(textureGather_8578bc()));
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store4(0u, asuint(textureGather_8578bc()));
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = textureGather_8578bc();
+  VertexOutput v_3 = tint_symbol;
+  return v_3;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_4 = vertex_main_inner();
+  VertexOutput v_5 = v_4;
+  VertexOutput v_6 = v_4;
+  vertex_main_outputs v_7 = {v_6.prevent_dce, v_5.pos};
+  return v_7;
+}
+
diff --git a/test/tint/builtins/gen/var/textureGather/89680f.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/textureGather/89680f.wgsl.expected.ir.dxc.hlsl
index de83606..6c8febf 100644
--- a/test/tint/builtins/gen/var/textureGather/89680f.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureGather/89680f.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,45 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  uint4 prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureGather
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation uint4 VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+TextureCube<uint4> arg_1 : register(t1, space1);
+SamplerState arg_2 : register(s2, space1);
+uint4 textureGather_89680f() {
+  float3 arg_3 = (1.0f).xxx;
+  uint4 res = arg_1.GatherGreen(arg_2, arg_3);
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store4(0u, textureGather_89680f());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store4(0u, textureGather_89680f());
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = textureGather_89680f();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
diff --git a/test/tint/builtins/gen/var/textureGather/89680f.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/textureGather/89680f.wgsl.expected.ir.fxc.hlsl
index de83606..6c8febf 100644
--- a/test/tint/builtins/gen/var/textureGather/89680f.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureGather/89680f.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,45 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  uint4 prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureGather
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation uint4 VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+TextureCube<uint4> arg_1 : register(t1, space1);
+SamplerState arg_2 : register(s2, space1);
+uint4 textureGather_89680f() {
+  float3 arg_3 = (1.0f).xxx;
+  uint4 res = arg_1.GatherGreen(arg_2, arg_3);
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store4(0u, textureGather_89680f());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store4(0u, textureGather_89680f());
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = textureGather_89680f();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
diff --git a/test/tint/builtins/gen/var/textureGather/8b754c.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/textureGather/8b754c.wgsl.expected.ir.dxc.hlsl
index de83606..0d1c3b8 100644
--- a/test/tint/builtins/gen/var/textureGather/8b754c.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureGather/8b754c.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,49 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  int4 prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureGather
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation int4 VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+Texture2DArray<int4> arg_1 : register(t1, space1);
+SamplerState arg_2 : register(s2, space1);
+int4 textureGather_8b754c() {
+  float2 arg_3 = (1.0f).xx;
+  int arg_4 = 1;
+  Texture2DArray<int4> v = arg_1;
+  SamplerState v_1 = arg_2;
+  float2 v_2 = arg_3;
+  int4 res = v.GatherGreen(v_1, float3(v_2, float(arg_4)));
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store4(0u, asuint(textureGather_8b754c()));
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store4(0u, asuint(textureGather_8b754c()));
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = textureGather_8b754c();
+  VertexOutput v_3 = tint_symbol;
+  return v_3;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_4 = vertex_main_inner();
+  VertexOutput v_5 = v_4;
+  VertexOutput v_6 = v_4;
+  vertex_main_outputs v_7 = {v_6.prevent_dce, v_5.pos};
+  return v_7;
+}
+
diff --git a/test/tint/builtins/gen/var/textureGather/8b754c.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/textureGather/8b754c.wgsl.expected.ir.fxc.hlsl
index de83606..0d1c3b8 100644
--- a/test/tint/builtins/gen/var/textureGather/8b754c.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureGather/8b754c.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,49 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  int4 prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureGather
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation int4 VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+Texture2DArray<int4> arg_1 : register(t1, space1);
+SamplerState arg_2 : register(s2, space1);
+int4 textureGather_8b754c() {
+  float2 arg_3 = (1.0f).xx;
+  int arg_4 = 1;
+  Texture2DArray<int4> v = arg_1;
+  SamplerState v_1 = arg_2;
+  float2 v_2 = arg_3;
+  int4 res = v.GatherGreen(v_1, float3(v_2, float(arg_4)));
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store4(0u, asuint(textureGather_8b754c()));
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store4(0u, asuint(textureGather_8b754c()));
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = textureGather_8b754c();
+  VertexOutput v_3 = tint_symbol;
+  return v_3;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_4 = vertex_main_inner();
+  VertexOutput v_5 = v_4;
+  VertexOutput v_6 = v_4;
+  vertex_main_outputs v_7 = {v_6.prevent_dce, v_5.pos};
+  return v_7;
+}
+
diff --git a/test/tint/builtins/gen/var/textureGather/8fae00.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/textureGather/8fae00.wgsl.expected.ir.dxc.hlsl
index de83606..b307f30 100644
--- a/test/tint/builtins/gen/var/textureGather/8fae00.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureGather/8fae00.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,45 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  uint4 prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureGather
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation uint4 VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+Texture2D<uint4> arg_1 : register(t1, space1);
+SamplerState arg_2 : register(s2, space1);
+uint4 textureGather_8fae00() {
+  float2 arg_3 = (1.0f).xx;
+  uint4 res = arg_1.GatherGreen(arg_2, arg_3);
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store4(0u, textureGather_8fae00());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store4(0u, textureGather_8fae00());
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = textureGather_8fae00();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
diff --git a/test/tint/builtins/gen/var/textureGather/8fae00.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/textureGather/8fae00.wgsl.expected.ir.fxc.hlsl
index de83606..b307f30 100644
--- a/test/tint/builtins/gen/var/textureGather/8fae00.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureGather/8fae00.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,45 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  uint4 prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureGather
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation uint4 VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+Texture2D<uint4> arg_1 : register(t1, space1);
+SamplerState arg_2 : register(s2, space1);
+uint4 textureGather_8fae00() {
+  float2 arg_3 = (1.0f).xx;
+  uint4 res = arg_1.GatherGreen(arg_2, arg_3);
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store4(0u, textureGather_8fae00());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store4(0u, textureGather_8fae00());
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = textureGather_8fae00();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
diff --git a/test/tint/builtins/gen/var/textureGather/92ea47.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/textureGather/92ea47.wgsl.expected.ir.dxc.hlsl
index de83606..18d32fa 100644
--- a/test/tint/builtins/gen/var/textureGather/92ea47.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureGather/92ea47.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,49 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  uint4 prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureGather
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation uint4 VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+Texture2DArray<uint4> arg_1 : register(t1, space1);
+SamplerState arg_2 : register(s2, space1);
+uint4 textureGather_92ea47() {
+  float2 arg_3 = (1.0f).xx;
+  int arg_4 = 1;
+  Texture2DArray<uint4> v = arg_1;
+  SamplerState v_1 = arg_2;
+  float2 v_2 = arg_3;
+  uint4 res = v.GatherGreen(v_1, float3(v_2, float(arg_4)));
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store4(0u, textureGather_92ea47());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store4(0u, textureGather_92ea47());
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = textureGather_92ea47();
+  VertexOutput v_3 = tint_symbol;
+  return v_3;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_4 = vertex_main_inner();
+  VertexOutput v_5 = v_4;
+  VertexOutput v_6 = v_4;
+  vertex_main_outputs v_7 = {v_6.prevent_dce, v_5.pos};
+  return v_7;
+}
+
diff --git a/test/tint/builtins/gen/var/textureGather/92ea47.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/textureGather/92ea47.wgsl.expected.ir.fxc.hlsl
index de83606..18d32fa 100644
--- a/test/tint/builtins/gen/var/textureGather/92ea47.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureGather/92ea47.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,49 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  uint4 prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureGather
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation uint4 VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+Texture2DArray<uint4> arg_1 : register(t1, space1);
+SamplerState arg_2 : register(s2, space1);
+uint4 textureGather_92ea47() {
+  float2 arg_3 = (1.0f).xx;
+  int arg_4 = 1;
+  Texture2DArray<uint4> v = arg_1;
+  SamplerState v_1 = arg_2;
+  float2 v_2 = arg_3;
+  uint4 res = v.GatherGreen(v_1, float3(v_2, float(arg_4)));
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store4(0u, textureGather_92ea47());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store4(0u, textureGather_92ea47());
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = textureGather_92ea47();
+  VertexOutput v_3 = tint_symbol;
+  return v_3;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_4 = vertex_main_inner();
+  VertexOutput v_5 = v_4;
+  VertexOutput v_6 = v_4;
+  vertex_main_outputs v_7 = {v_6.prevent_dce, v_5.pos};
+  return v_7;
+}
+
diff --git a/test/tint/builtins/gen/var/textureGather/986700.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/textureGather/986700.wgsl.expected.ir.dxc.hlsl
index de83606..b8b88c6 100644
--- a/test/tint/builtins/gen/var/textureGather/986700.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureGather/986700.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,3 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureGather
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+exit status 0xe0000001
\ No newline at end of file
diff --git a/test/tint/builtins/gen/var/textureGather/986700.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/textureGather/986700.wgsl.expected.ir.fxc.hlsl
index de83606..e75117c 100644
--- a/test/tint/builtins/gen/var/textureGather/986700.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureGather/986700.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,45 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  uint4 prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureGather
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation uint4 VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+Texture2D<uint4> arg_1 : register(t1, space1);
+SamplerState arg_2 : register(s2, space1);
+uint4 textureGather_986700() {
+  float2 arg_3 = (1.0f).xx;
+  uint4 res = arg_1.GatherGreen(arg_2, arg_3, (1).xx);
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store4(0u, textureGather_986700());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store4(0u, textureGather_986700());
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = textureGather_986700();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
diff --git a/test/tint/builtins/gen/var/textureGather/9a6358.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/textureGather/9a6358.wgsl.expected.ir.dxc.hlsl
index de83606..182a385 100644
--- a/test/tint/builtins/gen/var/textureGather/9a6358.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureGather/9a6358.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,49 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  float4 prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureGather
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation float4 VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+Texture2DArray arg_0 : register(t0, space1);
+SamplerState arg_1 : register(s1, space1);
+float4 textureGather_9a6358() {
+  float2 arg_2 = (1.0f).xx;
+  int arg_3 = 1;
+  Texture2DArray v = arg_0;
+  SamplerState v_1 = arg_1;
+  float2 v_2 = arg_2;
+  float4 res = v.Gather(v_1, float3(v_2, float(arg_3)));
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store4(0u, asuint(textureGather_9a6358()));
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store4(0u, asuint(textureGather_9a6358()));
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = textureGather_9a6358();
+  VertexOutput v_3 = tint_symbol;
+  return v_3;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_4 = vertex_main_inner();
+  VertexOutput v_5 = v_4;
+  VertexOutput v_6 = v_4;
+  vertex_main_outputs v_7 = {v_6.prevent_dce, v_5.pos};
+  return v_7;
+}
+
diff --git a/test/tint/builtins/gen/var/textureGather/9a6358.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/textureGather/9a6358.wgsl.expected.ir.fxc.hlsl
index de83606..182a385 100644
--- a/test/tint/builtins/gen/var/textureGather/9a6358.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureGather/9a6358.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,49 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  float4 prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureGather
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation float4 VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+Texture2DArray arg_0 : register(t0, space1);
+SamplerState arg_1 : register(s1, space1);
+float4 textureGather_9a6358() {
+  float2 arg_2 = (1.0f).xx;
+  int arg_3 = 1;
+  Texture2DArray v = arg_0;
+  SamplerState v_1 = arg_1;
+  float2 v_2 = arg_2;
+  float4 res = v.Gather(v_1, float3(v_2, float(arg_3)));
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store4(0u, asuint(textureGather_9a6358()));
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store4(0u, asuint(textureGather_9a6358()));
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = textureGather_9a6358();
+  VertexOutput v_3 = tint_symbol;
+  return v_3;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_4 = vertex_main_inner();
+  VertexOutput v_5 = v_4;
+  VertexOutput v_6 = v_4;
+  vertex_main_outputs v_7 = {v_6.prevent_dce, v_5.pos};
+  return v_7;
+}
+
diff --git a/test/tint/builtins/gen/var/textureGather/9ab41e.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/textureGather/9ab41e.wgsl.expected.ir.dxc.hlsl
index de83606..b8b88c6 100644
--- a/test/tint/builtins/gen/var/textureGather/9ab41e.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureGather/9ab41e.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,3 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureGather
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+exit status 0xe0000001
\ No newline at end of file
diff --git a/test/tint/builtins/gen/var/textureGather/9ab41e.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/textureGather/9ab41e.wgsl.expected.ir.fxc.hlsl
index de83606..f22c2dc 100644
--- a/test/tint/builtins/gen/var/textureGather/9ab41e.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureGather/9ab41e.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,49 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  int4 prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureGather
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation int4 VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+Texture2DArray<int4> arg_1 : register(t1, space1);
+SamplerState arg_2 : register(s2, space1);
+int4 textureGather_9ab41e() {
+  float2 arg_3 = (1.0f).xx;
+  int arg_4 = 1;
+  Texture2DArray<int4> v = arg_1;
+  SamplerState v_1 = arg_2;
+  float2 v_2 = arg_3;
+  int4 res = v.GatherGreen(v_1, float3(v_2, float(arg_4)), (1).xx);
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store4(0u, asuint(textureGather_9ab41e()));
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store4(0u, asuint(textureGather_9ab41e()));
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = textureGather_9ab41e();
+  VertexOutput v_3 = tint_symbol;
+  return v_3;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_4 = vertex_main_inner();
+  VertexOutput v_5 = v_4;
+  VertexOutput v_6 = v_4;
+  vertex_main_outputs v_7 = {v_6.prevent_dce, v_5.pos};
+  return v_7;
+}
+
diff --git a/test/tint/builtins/gen/var/textureGather/a0372b.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/textureGather/a0372b.wgsl.expected.ir.dxc.hlsl
index de83606..1d9eb3a 100644
--- a/test/tint/builtins/gen/var/textureGather/a0372b.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureGather/a0372b.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,49 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  uint4 prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureGather
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation uint4 VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+Texture2DArray<uint4> arg_1 : register(t1, space1);
+SamplerState arg_2 : register(s2, space1);
+uint4 textureGather_a0372b() {
+  float2 arg_3 = (1.0f).xx;
+  uint arg_4 = 1u;
+  Texture2DArray<uint4> v = arg_1;
+  SamplerState v_1 = arg_2;
+  float2 v_2 = arg_3;
+  uint4 res = v.GatherGreen(v_1, float3(v_2, float(arg_4)));
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store4(0u, textureGather_a0372b());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store4(0u, textureGather_a0372b());
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = textureGather_a0372b();
+  VertexOutput v_3 = tint_symbol;
+  return v_3;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_4 = vertex_main_inner();
+  VertexOutput v_5 = v_4;
+  VertexOutput v_6 = v_4;
+  vertex_main_outputs v_7 = {v_6.prevent_dce, v_5.pos};
+  return v_7;
+}
+
diff --git a/test/tint/builtins/gen/var/textureGather/a0372b.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/textureGather/a0372b.wgsl.expected.ir.fxc.hlsl
index de83606..1d9eb3a 100644
--- a/test/tint/builtins/gen/var/textureGather/a0372b.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureGather/a0372b.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,49 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  uint4 prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureGather
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation uint4 VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+Texture2DArray<uint4> arg_1 : register(t1, space1);
+SamplerState arg_2 : register(s2, space1);
+uint4 textureGather_a0372b() {
+  float2 arg_3 = (1.0f).xx;
+  uint arg_4 = 1u;
+  Texture2DArray<uint4> v = arg_1;
+  SamplerState v_1 = arg_2;
+  float2 v_2 = arg_3;
+  uint4 res = v.GatherGreen(v_1, float3(v_2, float(arg_4)));
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store4(0u, textureGather_a0372b());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store4(0u, textureGather_a0372b());
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = textureGather_a0372b();
+  VertexOutput v_3 = tint_symbol;
+  return v_3;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_4 = vertex_main_inner();
+  VertexOutput v_5 = v_4;
+  VertexOutput v_6 = v_4;
+  vertex_main_outputs v_7 = {v_6.prevent_dce, v_5.pos};
+  return v_7;
+}
+
diff --git a/test/tint/builtins/gen/var/textureGather/a68027.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/textureGather/a68027.wgsl.expected.ir.dxc.hlsl
index de83606..b8b88c6 100644
--- a/test/tint/builtins/gen/var/textureGather/a68027.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureGather/a68027.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,3 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureGather
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+exit status 0xe0000001
\ No newline at end of file
diff --git a/test/tint/builtins/gen/var/textureGather/a68027.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/textureGather/a68027.wgsl.expected.ir.fxc.hlsl
index de83606..4cf9ac6 100644
--- a/test/tint/builtins/gen/var/textureGather/a68027.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureGather/a68027.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,49 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  float4 prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureGather
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation float4 VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+Texture2DArray arg_0 : register(t0, space1);
+SamplerState arg_1 : register(s1, space1);
+float4 textureGather_a68027() {
+  float2 arg_2 = (1.0f).xx;
+  uint arg_3 = 1u;
+  Texture2DArray v = arg_0;
+  SamplerState v_1 = arg_1;
+  float2 v_2 = arg_2;
+  float4 res = v.Gather(v_1, float3(v_2, float(arg_3)), (1).xx);
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store4(0u, asuint(textureGather_a68027()));
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store4(0u, asuint(textureGather_a68027()));
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = textureGather_a68027();
+  VertexOutput v_3 = tint_symbol;
+  return v_3;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_4 = vertex_main_inner();
+  VertexOutput v_5 = v_4;
+  VertexOutput v_6 = v_4;
+  vertex_main_outputs v_7 = {v_6.prevent_dce, v_5.pos};
+  return v_7;
+}
+
diff --git a/test/tint/builtins/gen/var/textureGather/aaf6bd.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/textureGather/aaf6bd.wgsl.expected.ir.dxc.hlsl
index de83606..097c575 100644
--- a/test/tint/builtins/gen/var/textureGather/aaf6bd.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureGather/aaf6bd.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,49 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  int4 prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureGather
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation int4 VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+TextureCubeArray<int4> arg_1 : register(t1, space1);
+SamplerState arg_2 : register(s2, space1);
+int4 textureGather_aaf6bd() {
+  float3 arg_3 = (1.0f).xxx;
+  int arg_4 = 1;
+  TextureCubeArray<int4> v = arg_1;
+  SamplerState v_1 = arg_2;
+  float3 v_2 = arg_3;
+  int4 res = v.GatherGreen(v_1, float4(v_2, float(arg_4)));
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store4(0u, asuint(textureGather_aaf6bd()));
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store4(0u, asuint(textureGather_aaf6bd()));
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = textureGather_aaf6bd();
+  VertexOutput v_3 = tint_symbol;
+  return v_3;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_4 = vertex_main_inner();
+  VertexOutput v_5 = v_4;
+  VertexOutput v_6 = v_4;
+  vertex_main_outputs v_7 = {v_6.prevent_dce, v_5.pos};
+  return v_7;
+}
+
diff --git a/test/tint/builtins/gen/var/textureGather/aaf6bd.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/textureGather/aaf6bd.wgsl.expected.ir.fxc.hlsl
index de83606..097c575 100644
--- a/test/tint/builtins/gen/var/textureGather/aaf6bd.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureGather/aaf6bd.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,49 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  int4 prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureGather
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation int4 VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+TextureCubeArray<int4> arg_1 : register(t1, space1);
+SamplerState arg_2 : register(s2, space1);
+int4 textureGather_aaf6bd() {
+  float3 arg_3 = (1.0f).xxx;
+  int arg_4 = 1;
+  TextureCubeArray<int4> v = arg_1;
+  SamplerState v_1 = arg_2;
+  float3 v_2 = arg_3;
+  int4 res = v.GatherGreen(v_1, float4(v_2, float(arg_4)));
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store4(0u, asuint(textureGather_aaf6bd()));
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store4(0u, asuint(textureGather_aaf6bd()));
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = textureGather_aaf6bd();
+  VertexOutput v_3 = tint_symbol;
+  return v_3;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_4 = vertex_main_inner();
+  VertexOutput v_5 = v_4;
+  VertexOutput v_6 = v_4;
+  vertex_main_outputs v_7 = {v_6.prevent_dce, v_5.pos};
+  return v_7;
+}
+
diff --git a/test/tint/builtins/gen/var/textureGather/af55b3.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/textureGather/af55b3.wgsl.expected.ir.dxc.hlsl
index de83606..b8b88c6 100644
--- a/test/tint/builtins/gen/var/textureGather/af55b3.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureGather/af55b3.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,3 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureGather
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+exit status 0xe0000001
\ No newline at end of file
diff --git a/test/tint/builtins/gen/var/textureGather/af55b3.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/textureGather/af55b3.wgsl.expected.ir.fxc.hlsl
index de83606..198a99e 100644
--- a/test/tint/builtins/gen/var/textureGather/af55b3.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureGather/af55b3.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,45 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  float4 prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureGather
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation float4 VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+Texture2D<float4> arg_1 : register(t1, space1);
+SamplerState arg_2 : register(s2, space1);
+float4 textureGather_af55b3() {
+  float2 arg_3 = (1.0f).xx;
+  float4 res = arg_1.GatherGreen(arg_2, arg_3, (1).xx);
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store4(0u, asuint(textureGather_af55b3()));
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store4(0u, asuint(textureGather_af55b3()));
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = textureGather_af55b3();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
diff --git a/test/tint/builtins/gen/var/textureGather/bb3ac5.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/textureGather/bb3ac5.wgsl.expected.ir.dxc.hlsl
index de83606..8c13717 100644
--- a/test/tint/builtins/gen/var/textureGather/bb3ac5.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureGather/bb3ac5.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,45 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  int4 prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureGather
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation int4 VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+Texture2D<int4> arg_1 : register(t1, space1);
+SamplerState arg_2 : register(s2, space1);
+int4 textureGather_bb3ac5() {
+  float2 arg_3 = (1.0f).xx;
+  int4 res = arg_1.GatherGreen(arg_2, arg_3);
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store4(0u, asuint(textureGather_bb3ac5()));
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store4(0u, asuint(textureGather_bb3ac5()));
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = textureGather_bb3ac5();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
diff --git a/test/tint/builtins/gen/var/textureGather/bb3ac5.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/textureGather/bb3ac5.wgsl.expected.ir.fxc.hlsl
index de83606..8c13717 100644
--- a/test/tint/builtins/gen/var/textureGather/bb3ac5.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureGather/bb3ac5.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,45 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  int4 prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureGather
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation int4 VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+Texture2D<int4> arg_1 : register(t1, space1);
+SamplerState arg_2 : register(s2, space1);
+int4 textureGather_bb3ac5() {
+  float2 arg_3 = (1.0f).xx;
+  int4 res = arg_1.GatherGreen(arg_2, arg_3);
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store4(0u, asuint(textureGather_bb3ac5()));
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store4(0u, asuint(textureGather_bb3ac5()));
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = textureGather_bb3ac5();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
diff --git a/test/tint/builtins/gen/var/textureGather/bd33b6.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/textureGather/bd33b6.wgsl.expected.ir.dxc.hlsl
index de83606..b8b88c6 100644
--- a/test/tint/builtins/gen/var/textureGather/bd33b6.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureGather/bd33b6.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,3 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureGather
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+exit status 0xe0000001
\ No newline at end of file
diff --git a/test/tint/builtins/gen/var/textureGather/bd33b6.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/textureGather/bd33b6.wgsl.expected.ir.fxc.hlsl
index de83606..f0fb434 100644
--- a/test/tint/builtins/gen/var/textureGather/bd33b6.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureGather/bd33b6.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,49 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  int4 prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureGather
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation int4 VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+Texture2DArray<int4> arg_1 : register(t1, space1);
+SamplerState arg_2 : register(s2, space1);
+int4 textureGather_bd33b6() {
+  float2 arg_3 = (1.0f).xx;
+  uint arg_4 = 1u;
+  Texture2DArray<int4> v = arg_1;
+  SamplerState v_1 = arg_2;
+  float2 v_2 = arg_3;
+  int4 res = v.GatherGreen(v_1, float3(v_2, float(arg_4)), (1).xx);
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store4(0u, asuint(textureGather_bd33b6()));
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store4(0u, asuint(textureGather_bd33b6()));
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = textureGather_bd33b6();
+  VertexOutput v_3 = tint_symbol;
+  return v_3;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_4 = vertex_main_inner();
+  VertexOutput v_5 = v_4;
+  VertexOutput v_6 = v_4;
+  vertex_main_outputs v_7 = {v_6.prevent_dce, v_5.pos};
+  return v_7;
+}
+
diff --git a/test/tint/builtins/gen/var/textureGather/be276f.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/textureGather/be276f.wgsl.expected.ir.dxc.hlsl
index de83606..ee9f448 100644
--- a/test/tint/builtins/gen/var/textureGather/be276f.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureGather/be276f.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,49 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  uint4 prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureGather
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation uint4 VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+TextureCubeArray<uint4> arg_1 : register(t1, space1);
+SamplerState arg_2 : register(s2, space1);
+uint4 textureGather_be276f() {
+  float3 arg_3 = (1.0f).xxx;
+  uint arg_4 = 1u;
+  TextureCubeArray<uint4> v = arg_1;
+  SamplerState v_1 = arg_2;
+  float3 v_2 = arg_3;
+  uint4 res = v.GatherGreen(v_1, float4(v_2, float(arg_4)));
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store4(0u, textureGather_be276f());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store4(0u, textureGather_be276f());
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = textureGather_be276f();
+  VertexOutput v_3 = tint_symbol;
+  return v_3;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_4 = vertex_main_inner();
+  VertexOutput v_5 = v_4;
+  VertexOutput v_6 = v_4;
+  vertex_main_outputs v_7 = {v_6.prevent_dce, v_5.pos};
+  return v_7;
+}
+
diff --git a/test/tint/builtins/gen/var/textureGather/be276f.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/textureGather/be276f.wgsl.expected.ir.fxc.hlsl
index de83606..ee9f448 100644
--- a/test/tint/builtins/gen/var/textureGather/be276f.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureGather/be276f.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,49 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  uint4 prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureGather
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation uint4 VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+TextureCubeArray<uint4> arg_1 : register(t1, space1);
+SamplerState arg_2 : register(s2, space1);
+uint4 textureGather_be276f() {
+  float3 arg_3 = (1.0f).xxx;
+  uint arg_4 = 1u;
+  TextureCubeArray<uint4> v = arg_1;
+  SamplerState v_1 = arg_2;
+  float3 v_2 = arg_3;
+  uint4 res = v.GatherGreen(v_1, float4(v_2, float(arg_4)));
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store4(0u, textureGather_be276f());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store4(0u, textureGather_be276f());
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = textureGather_be276f();
+  VertexOutput v_3 = tint_symbol;
+  return v_3;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_4 = vertex_main_inner();
+  VertexOutput v_5 = v_4;
+  VertexOutput v_6 = v_4;
+  vertex_main_outputs v_7 = {v_6.prevent_dce, v_5.pos};
+  return v_7;
+}
+
diff --git a/test/tint/builtins/gen/var/textureGather/c0640c.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/textureGather/c0640c.wgsl.expected.ir.dxc.hlsl
index de83606..5b0cc80 100644
--- a/test/tint/builtins/gen/var/textureGather/c0640c.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureGather/c0640c.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,49 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  int4 prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureGather
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation int4 VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+TextureCubeArray<int4> arg_1 : register(t1, space1);
+SamplerState arg_2 : register(s2, space1);
+int4 textureGather_c0640c() {
+  float3 arg_3 = (1.0f).xxx;
+  int arg_4 = 1;
+  TextureCubeArray<int4> v = arg_1;
+  SamplerState v_1 = arg_2;
+  float3 v_2 = arg_3;
+  int4 res = v.GatherGreen(v_1, float4(v_2, float(arg_4)));
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store4(0u, asuint(textureGather_c0640c()));
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store4(0u, asuint(textureGather_c0640c()));
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = textureGather_c0640c();
+  VertexOutput v_3 = tint_symbol;
+  return v_3;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_4 = vertex_main_inner();
+  VertexOutput v_5 = v_4;
+  VertexOutput v_6 = v_4;
+  vertex_main_outputs v_7 = {v_6.prevent_dce, v_5.pos};
+  return v_7;
+}
+
diff --git a/test/tint/builtins/gen/var/textureGather/c0640c.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/textureGather/c0640c.wgsl.expected.ir.fxc.hlsl
index de83606..5b0cc80 100644
--- a/test/tint/builtins/gen/var/textureGather/c0640c.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureGather/c0640c.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,49 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  int4 prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureGather
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation int4 VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+TextureCubeArray<int4> arg_1 : register(t1, space1);
+SamplerState arg_2 : register(s2, space1);
+int4 textureGather_c0640c() {
+  float3 arg_3 = (1.0f).xxx;
+  int arg_4 = 1;
+  TextureCubeArray<int4> v = arg_1;
+  SamplerState v_1 = arg_2;
+  float3 v_2 = arg_3;
+  int4 res = v.GatherGreen(v_1, float4(v_2, float(arg_4)));
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store4(0u, asuint(textureGather_c0640c()));
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store4(0u, asuint(textureGather_c0640c()));
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = textureGather_c0640c();
+  VertexOutput v_3 = tint_symbol;
+  return v_3;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_4 = vertex_main_inner();
+  VertexOutput v_5 = v_4;
+  VertexOutput v_6 = v_4;
+  vertex_main_outputs v_7 = {v_6.prevent_dce, v_5.pos};
+  return v_7;
+}
+
diff --git a/test/tint/builtins/gen/var/textureGather/ccadde.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/textureGather/ccadde.wgsl.expected.ir.dxc.hlsl
index de83606..4b37209 100644
--- a/test/tint/builtins/gen/var/textureGather/ccadde.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureGather/ccadde.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,45 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  int4 prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureGather
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation int4 VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+Texture2D<int4> arg_1 : register(t1, space1);
+SamplerState arg_2 : register(s2, space1);
+int4 textureGather_ccadde() {
+  float2 arg_3 = (1.0f).xx;
+  int4 res = arg_1.GatherGreen(arg_2, arg_3);
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store4(0u, asuint(textureGather_ccadde()));
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store4(0u, asuint(textureGather_ccadde()));
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = textureGather_ccadde();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
diff --git a/test/tint/builtins/gen/var/textureGather/ccadde.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/textureGather/ccadde.wgsl.expected.ir.fxc.hlsl
index de83606..4b37209 100644
--- a/test/tint/builtins/gen/var/textureGather/ccadde.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureGather/ccadde.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,45 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  int4 prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureGather
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation int4 VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+Texture2D<int4> arg_1 : register(t1, space1);
+SamplerState arg_2 : register(s2, space1);
+int4 textureGather_ccadde() {
+  float2 arg_3 = (1.0f).xx;
+  int4 res = arg_1.GatherGreen(arg_2, arg_3);
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store4(0u, asuint(textureGather_ccadde()));
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store4(0u, asuint(textureGather_ccadde()));
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = textureGather_ccadde();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
diff --git a/test/tint/builtins/gen/var/textureGather/ce5578.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/textureGather/ce5578.wgsl.expected.ir.dxc.hlsl
index de83606..b8b88c6 100644
--- a/test/tint/builtins/gen/var/textureGather/ce5578.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureGather/ce5578.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,3 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureGather
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+exit status 0xe0000001
\ No newline at end of file
diff --git a/test/tint/builtins/gen/var/textureGather/ce5578.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/textureGather/ce5578.wgsl.expected.ir.fxc.hlsl
index de83606..3ad778b 100644
--- a/test/tint/builtins/gen/var/textureGather/ce5578.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureGather/ce5578.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,49 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  uint4 prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureGather
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation uint4 VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+Texture2DArray<uint4> arg_1 : register(t1, space1);
+SamplerState arg_2 : register(s2, space1);
+uint4 textureGather_ce5578() {
+  float2 arg_3 = (1.0f).xx;
+  uint arg_4 = 1u;
+  Texture2DArray<uint4> v = arg_1;
+  SamplerState v_1 = arg_2;
+  float2 v_2 = arg_3;
+  uint4 res = v.GatherGreen(v_1, float3(v_2, float(arg_4)), (1).xx);
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store4(0u, textureGather_ce5578());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store4(0u, textureGather_ce5578());
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = textureGather_ce5578();
+  VertexOutput v_3 = tint_symbol;
+  return v_3;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_4 = vertex_main_inner();
+  VertexOutput v_5 = v_4;
+  VertexOutput v_6 = v_4;
+  vertex_main_outputs v_7 = {v_6.prevent_dce, v_5.pos};
+  return v_7;
+}
+
diff --git a/test/tint/builtins/gen/var/textureGather/cf9112.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/textureGather/cf9112.wgsl.expected.ir.dxc.hlsl
index de83606..b8b88c6 100644
--- a/test/tint/builtins/gen/var/textureGather/cf9112.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureGather/cf9112.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,3 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureGather
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+exit status 0xe0000001
\ No newline at end of file
diff --git a/test/tint/builtins/gen/var/textureGather/cf9112.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/textureGather/cf9112.wgsl.expected.ir.fxc.hlsl
index de83606..608b84d 100644
--- a/test/tint/builtins/gen/var/textureGather/cf9112.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureGather/cf9112.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,49 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  int4 prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureGather
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation int4 VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+Texture2DArray<int4> arg_1 : register(t1, space1);
+SamplerState arg_2 : register(s2, space1);
+int4 textureGather_cf9112() {
+  float2 arg_3 = (1.0f).xx;
+  uint arg_4 = 1u;
+  Texture2DArray<int4> v = arg_1;
+  SamplerState v_1 = arg_2;
+  float2 v_2 = arg_3;
+  int4 res = v.GatherGreen(v_1, float3(v_2, float(arg_4)), (1).xx);
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store4(0u, asuint(textureGather_cf9112()));
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store4(0u, asuint(textureGather_cf9112()));
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = textureGather_cf9112();
+  VertexOutput v_3 = tint_symbol;
+  return v_3;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_4 = vertex_main_inner();
+  VertexOutput v_5 = v_4;
+  VertexOutput v_6 = v_4;
+  vertex_main_outputs v_7 = {v_6.prevent_dce, v_5.pos};
+  return v_7;
+}
+
diff --git a/test/tint/builtins/gen/var/textureGather/d1f187.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/textureGather/d1f187.wgsl.expected.ir.dxc.hlsl
index de83606..b8b88c6 100644
--- a/test/tint/builtins/gen/var/textureGather/d1f187.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureGather/d1f187.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,3 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureGather
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+exit status 0xe0000001
\ No newline at end of file
diff --git a/test/tint/builtins/gen/var/textureGather/d1f187.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/textureGather/d1f187.wgsl.expected.ir.fxc.hlsl
index de83606..bd41bd9 100644
--- a/test/tint/builtins/gen/var/textureGather/d1f187.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureGather/d1f187.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,49 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  uint4 prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureGather
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation uint4 VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+Texture2DArray<uint4> arg_1 : register(t1, space1);
+SamplerState arg_2 : register(s2, space1);
+uint4 textureGather_d1f187() {
+  float2 arg_3 = (1.0f).xx;
+  int arg_4 = 1;
+  Texture2DArray<uint4> v = arg_1;
+  SamplerState v_1 = arg_2;
+  float2 v_2 = arg_3;
+  uint4 res = v.GatherGreen(v_1, float3(v_2, float(arg_4)), (1).xx);
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store4(0u, textureGather_d1f187());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store4(0u, textureGather_d1f187());
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = textureGather_d1f187();
+  VertexOutput v_3 = tint_symbol;
+  return v_3;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_4 = vertex_main_inner();
+  VertexOutput v_5 = v_4;
+  VertexOutput v_6 = v_4;
+  vertex_main_outputs v_7 = {v_6.prevent_dce, v_5.pos};
+  return v_7;
+}
+
diff --git a/test/tint/builtins/gen/var/textureGather/d4b5c6.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/textureGather/d4b5c6.wgsl.expected.ir.dxc.hlsl
index de83606..78e34e1 100644
--- a/test/tint/builtins/gen/var/textureGather/d4b5c6.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureGather/d4b5c6.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,49 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  uint4 prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureGather
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation uint4 VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+TextureCubeArray<uint4> arg_1 : register(t1, space1);
+SamplerState arg_2 : register(s2, space1);
+uint4 textureGather_d4b5c6() {
+  float3 arg_3 = (1.0f).xxx;
+  int arg_4 = 1;
+  TextureCubeArray<uint4> v = arg_1;
+  SamplerState v_1 = arg_2;
+  float3 v_2 = arg_3;
+  uint4 res = v.GatherGreen(v_1, float4(v_2, float(arg_4)));
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store4(0u, textureGather_d4b5c6());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store4(0u, textureGather_d4b5c6());
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = textureGather_d4b5c6();
+  VertexOutput v_3 = tint_symbol;
+  return v_3;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_4 = vertex_main_inner();
+  VertexOutput v_5 = v_4;
+  VertexOutput v_6 = v_4;
+  vertex_main_outputs v_7 = {v_6.prevent_dce, v_5.pos};
+  return v_7;
+}
+
diff --git a/test/tint/builtins/gen/var/textureGather/d4b5c6.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/textureGather/d4b5c6.wgsl.expected.ir.fxc.hlsl
index de83606..78e34e1 100644
--- a/test/tint/builtins/gen/var/textureGather/d4b5c6.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureGather/d4b5c6.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,49 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  uint4 prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureGather
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation uint4 VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+TextureCubeArray<uint4> arg_1 : register(t1, space1);
+SamplerState arg_2 : register(s2, space1);
+uint4 textureGather_d4b5c6() {
+  float3 arg_3 = (1.0f).xxx;
+  int arg_4 = 1;
+  TextureCubeArray<uint4> v = arg_1;
+  SamplerState v_1 = arg_2;
+  float3 v_2 = arg_3;
+  uint4 res = v.GatherGreen(v_1, float4(v_2, float(arg_4)));
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store4(0u, textureGather_d4b5c6());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store4(0u, textureGather_d4b5c6());
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = textureGather_d4b5c6();
+  VertexOutput v_3 = tint_symbol;
+  return v_3;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_4 = vertex_main_inner();
+  VertexOutput v_5 = v_4;
+  VertexOutput v_6 = v_4;
+  vertex_main_outputs v_7 = {v_6.prevent_dce, v_5.pos};
+  return v_7;
+}
+
diff --git a/test/tint/builtins/gen/var/textureGather/d6507c.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/textureGather/d6507c.wgsl.expected.ir.dxc.hlsl
index de83606..b8b88c6 100644
--- a/test/tint/builtins/gen/var/textureGather/d6507c.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureGather/d6507c.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,3 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureGather
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+exit status 0xe0000001
\ No newline at end of file
diff --git a/test/tint/builtins/gen/var/textureGather/d6507c.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/textureGather/d6507c.wgsl.expected.ir.fxc.hlsl
index de83606..5cf2646 100644
--- a/test/tint/builtins/gen/var/textureGather/d6507c.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureGather/d6507c.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,45 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  float4 prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureGather
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation float4 VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+Texture2D<float4> arg_1 : register(t1, space1);
+SamplerState arg_2 : register(s2, space1);
+float4 textureGather_d6507c() {
+  float2 arg_3 = (1.0f).xx;
+  float4 res = arg_1.GatherGreen(arg_2, arg_3, (1).xx);
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store4(0u, asuint(textureGather_d6507c()));
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store4(0u, asuint(textureGather_d6507c()));
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = textureGather_d6507c();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
diff --git a/test/tint/builtins/gen/var/textureGather/d8e958.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/textureGather/d8e958.wgsl.expected.ir.dxc.hlsl
index de83606..0de9091 100644
--- a/test/tint/builtins/gen/var/textureGather/d8e958.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureGather/d8e958.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,45 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  float4 prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureGather
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation float4 VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+Texture2D<float4> arg_1 : register(t1, space1);
+SamplerState arg_2 : register(s2, space1);
+float4 textureGather_d8e958() {
+  float2 arg_3 = (1.0f).xx;
+  float4 res = arg_1.GatherGreen(arg_2, arg_3);
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store4(0u, asuint(textureGather_d8e958()));
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store4(0u, asuint(textureGather_d8e958()));
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = textureGather_d8e958();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
diff --git a/test/tint/builtins/gen/var/textureGather/d8e958.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/textureGather/d8e958.wgsl.expected.ir.fxc.hlsl
index de83606..0de9091 100644
--- a/test/tint/builtins/gen/var/textureGather/d8e958.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureGather/d8e958.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,45 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  float4 prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureGather
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation float4 VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+Texture2D<float4> arg_1 : register(t1, space1);
+SamplerState arg_2 : register(s2, space1);
+float4 textureGather_d8e958() {
+  float2 arg_3 = (1.0f).xx;
+  float4 res = arg_1.GatherGreen(arg_2, arg_3);
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store4(0u, asuint(textureGather_d8e958()));
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store4(0u, asuint(textureGather_d8e958()));
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = textureGather_d8e958();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
diff --git a/test/tint/builtins/gen/var/textureGather/d90605.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/textureGather/d90605.wgsl.expected.ir.dxc.hlsl
index de83606..b8b88c6 100644
--- a/test/tint/builtins/gen/var/textureGather/d90605.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureGather/d90605.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,3 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureGather
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+exit status 0xe0000001
\ No newline at end of file
diff --git a/test/tint/builtins/gen/var/textureGather/d90605.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/textureGather/d90605.wgsl.expected.ir.fxc.hlsl
index de83606..39d3060 100644
--- a/test/tint/builtins/gen/var/textureGather/d90605.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureGather/d90605.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,49 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  float4 prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureGather
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation float4 VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+Texture2DArray arg_0 : register(t0, space1);
+SamplerState arg_1 : register(s1, space1);
+float4 textureGather_d90605() {
+  float2 arg_2 = (1.0f).xx;
+  int arg_3 = 1;
+  Texture2DArray v = arg_0;
+  SamplerState v_1 = arg_1;
+  float2 v_2 = arg_2;
+  float4 res = v.Gather(v_1, float3(v_2, float(arg_3)), (1).xx);
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store4(0u, asuint(textureGather_d90605()));
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store4(0u, asuint(textureGather_d90605()));
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = textureGather_d90605();
+  VertexOutput v_3 = tint_symbol;
+  return v_3;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_4 = vertex_main_inner();
+  VertexOutput v_5 = v_4;
+  VertexOutput v_6 = v_4;
+  vertex_main_outputs v_7 = {v_6.prevent_dce, v_5.pos};
+  return v_7;
+}
+
diff --git a/test/tint/builtins/gen/var/textureGather/d98d59.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/textureGather/d98d59.wgsl.expected.ir.dxc.hlsl
index de83606..0eb7305 100644
--- a/test/tint/builtins/gen/var/textureGather/d98d59.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureGather/d98d59.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,49 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  float4 prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureGather
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation float4 VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+TextureCubeArray<float4> arg_1 : register(t1, space1);
+SamplerState arg_2 : register(s2, space1);
+float4 textureGather_d98d59() {
+  float3 arg_3 = (1.0f).xxx;
+  int arg_4 = 1;
+  TextureCubeArray<float4> v = arg_1;
+  SamplerState v_1 = arg_2;
+  float3 v_2 = arg_3;
+  float4 res = v.GatherGreen(v_1, float4(v_2, float(arg_4)));
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store4(0u, asuint(textureGather_d98d59()));
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store4(0u, asuint(textureGather_d98d59()));
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = textureGather_d98d59();
+  VertexOutput v_3 = tint_symbol;
+  return v_3;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_4 = vertex_main_inner();
+  VertexOutput v_5 = v_4;
+  VertexOutput v_6 = v_4;
+  vertex_main_outputs v_7 = {v_6.prevent_dce, v_5.pos};
+  return v_7;
+}
+
diff --git a/test/tint/builtins/gen/var/textureGather/d98d59.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/textureGather/d98d59.wgsl.expected.ir.fxc.hlsl
index de83606..0eb7305 100644
--- a/test/tint/builtins/gen/var/textureGather/d98d59.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureGather/d98d59.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,49 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  float4 prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureGather
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation float4 VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+TextureCubeArray<float4> arg_1 : register(t1, space1);
+SamplerState arg_2 : register(s2, space1);
+float4 textureGather_d98d59() {
+  float3 arg_3 = (1.0f).xxx;
+  int arg_4 = 1;
+  TextureCubeArray<float4> v = arg_1;
+  SamplerState v_1 = arg_2;
+  float3 v_2 = arg_3;
+  float4 res = v.GatherGreen(v_1, float4(v_2, float(arg_4)));
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store4(0u, asuint(textureGather_d98d59()));
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store4(0u, asuint(textureGather_d98d59()));
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = textureGather_d98d59();
+  VertexOutput v_3 = tint_symbol;
+  return v_3;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_4 = vertex_main_inner();
+  VertexOutput v_5 = v_4;
+  VertexOutput v_6 = v_4;
+  vertex_main_outputs v_7 = {v_6.prevent_dce, v_5.pos};
+  return v_7;
+}
+
diff --git a/test/tint/builtins/gen/var/textureGather/dc6661.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/textureGather/dc6661.wgsl.expected.ir.dxc.hlsl
index de83606..b8b88c6 100644
--- a/test/tint/builtins/gen/var/textureGather/dc6661.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureGather/dc6661.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,3 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureGather
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+exit status 0xe0000001
\ No newline at end of file
diff --git a/test/tint/builtins/gen/var/textureGather/dc6661.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/textureGather/dc6661.wgsl.expected.ir.fxc.hlsl
index de83606..1649556 100644
--- a/test/tint/builtins/gen/var/textureGather/dc6661.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureGather/dc6661.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,45 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  int4 prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureGather
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation int4 VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+Texture2D<int4> arg_1 : register(t1, space1);
+SamplerState arg_2 : register(s2, space1);
+int4 textureGather_dc6661() {
+  float2 arg_3 = (1.0f).xx;
+  int4 res = arg_1.GatherGreen(arg_2, arg_3, (1).xx);
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store4(0u, asuint(textureGather_dc6661()));
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store4(0u, asuint(textureGather_dc6661()));
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = textureGather_dc6661();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
diff --git a/test/tint/builtins/gen/var/textureGather/e2acac.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/textureGather/e2acac.wgsl.expected.ir.dxc.hlsl
index de83606..604fd73 100644
--- a/test/tint/builtins/gen/var/textureGather/e2acac.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureGather/e2acac.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,49 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  uint4 prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureGather
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation uint4 VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+TextureCubeArray<uint4> arg_1 : register(t1, space1);
+SamplerState arg_2 : register(s2, space1);
+uint4 textureGather_e2acac() {
+  float3 arg_3 = (1.0f).xxx;
+  uint arg_4 = 1u;
+  TextureCubeArray<uint4> v = arg_1;
+  SamplerState v_1 = arg_2;
+  float3 v_2 = arg_3;
+  uint4 res = v.GatherGreen(v_1, float4(v_2, float(arg_4)));
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store4(0u, textureGather_e2acac());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store4(0u, textureGather_e2acac());
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = textureGather_e2acac();
+  VertexOutput v_3 = tint_symbol;
+  return v_3;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_4 = vertex_main_inner();
+  VertexOutput v_5 = v_4;
+  VertexOutput v_6 = v_4;
+  vertex_main_outputs v_7 = {v_6.prevent_dce, v_5.pos};
+  return v_7;
+}
+
diff --git a/test/tint/builtins/gen/var/textureGather/e2acac.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/textureGather/e2acac.wgsl.expected.ir.fxc.hlsl
index de83606..604fd73 100644
--- a/test/tint/builtins/gen/var/textureGather/e2acac.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureGather/e2acac.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,49 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  uint4 prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureGather
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation uint4 VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+TextureCubeArray<uint4> arg_1 : register(t1, space1);
+SamplerState arg_2 : register(s2, space1);
+uint4 textureGather_e2acac() {
+  float3 arg_3 = (1.0f).xxx;
+  uint arg_4 = 1u;
+  TextureCubeArray<uint4> v = arg_1;
+  SamplerState v_1 = arg_2;
+  float3 v_2 = arg_3;
+  uint4 res = v.GatherGreen(v_1, float4(v_2, float(arg_4)));
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store4(0u, textureGather_e2acac());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store4(0u, textureGather_e2acac());
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = textureGather_e2acac();
+  VertexOutput v_3 = tint_symbol;
+  return v_3;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_4 = vertex_main_inner();
+  VertexOutput v_5 = v_4;
+  VertexOutput v_6 = v_4;
+  vertex_main_outputs v_7 = {v_6.prevent_dce, v_5.pos};
+  return v_7;
+}
+
diff --git a/test/tint/builtins/gen/var/textureGather/e3165f.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/textureGather/e3165f.wgsl.expected.ir.dxc.hlsl
index de83606..b8b88c6 100644
--- a/test/tint/builtins/gen/var/textureGather/e3165f.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureGather/e3165f.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,3 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureGather
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+exit status 0xe0000001
\ No newline at end of file
diff --git a/test/tint/builtins/gen/var/textureGather/e3165f.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/textureGather/e3165f.wgsl.expected.ir.fxc.hlsl
index de83606..4732fbf 100644
--- a/test/tint/builtins/gen/var/textureGather/e3165f.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureGather/e3165f.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,49 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  uint4 prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureGather
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation uint4 VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+Texture2DArray<uint4> arg_1 : register(t1, space1);
+SamplerState arg_2 : register(s2, space1);
+uint4 textureGather_e3165f() {
+  float2 arg_3 = (1.0f).xx;
+  int arg_4 = 1;
+  Texture2DArray<uint4> v = arg_1;
+  SamplerState v_1 = arg_2;
+  float2 v_2 = arg_3;
+  uint4 res = v.GatherGreen(v_1, float3(v_2, float(arg_4)), (1).xx);
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store4(0u, textureGather_e3165f());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store4(0u, textureGather_e3165f());
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = textureGather_e3165f();
+  VertexOutput v_3 = tint_symbol;
+  return v_3;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_4 = vertex_main_inner();
+  VertexOutput v_5 = v_4;
+  VertexOutput v_6 = v_4;
+  vertex_main_outputs v_7 = {v_6.prevent_dce, v_5.pos};
+  return v_7;
+}
+
diff --git a/test/tint/builtins/gen/var/textureGather/e9d390.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/textureGather/e9d390.wgsl.expected.ir.dxc.hlsl
index de83606..b8b88c6 100644
--- a/test/tint/builtins/gen/var/textureGather/e9d390.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureGather/e9d390.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,3 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureGather
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+exit status 0xe0000001
\ No newline at end of file
diff --git a/test/tint/builtins/gen/var/textureGather/e9d390.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/textureGather/e9d390.wgsl.expected.ir.fxc.hlsl
index de83606..b7f9e92 100644
--- a/test/tint/builtins/gen/var/textureGather/e9d390.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureGather/e9d390.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,49 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  int4 prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureGather
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation int4 VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+Texture2DArray<int4> arg_1 : register(t1, space1);
+SamplerState arg_2 : register(s2, space1);
+int4 textureGather_e9d390() {
+  float2 arg_3 = (1.0f).xx;
+  int arg_4 = 1;
+  Texture2DArray<int4> v = arg_1;
+  SamplerState v_1 = arg_2;
+  float2 v_2 = arg_3;
+  int4 res = v.GatherGreen(v_1, float3(v_2, float(arg_4)), (1).xx);
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store4(0u, asuint(textureGather_e9d390()));
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store4(0u, asuint(textureGather_e9d390()));
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = textureGather_e9d390();
+  VertexOutput v_3 = tint_symbol;
+  return v_3;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_4 = vertex_main_inner();
+  VertexOutput v_5 = v_4;
+  VertexOutput v_6 = v_4;
+  vertex_main_outputs v_7 = {v_6.prevent_dce, v_5.pos};
+  return v_7;
+}
+
diff --git a/test/tint/builtins/gen/var/textureGather/ea8eb4.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/textureGather/ea8eb4.wgsl.expected.ir.dxc.hlsl
index de83606..071c160 100644
--- a/test/tint/builtins/gen/var/textureGather/ea8eb4.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureGather/ea8eb4.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,49 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  float4 prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureGather
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation float4 VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+Texture2DArray<float4> arg_1 : register(t1, space1);
+SamplerState arg_2 : register(s2, space1);
+float4 textureGather_ea8eb4() {
+  float2 arg_3 = (1.0f).xx;
+  uint arg_4 = 1u;
+  Texture2DArray<float4> v = arg_1;
+  SamplerState v_1 = arg_2;
+  float2 v_2 = arg_3;
+  float4 res = v.GatherGreen(v_1, float3(v_2, float(arg_4)));
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store4(0u, asuint(textureGather_ea8eb4()));
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store4(0u, asuint(textureGather_ea8eb4()));
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = textureGather_ea8eb4();
+  VertexOutput v_3 = tint_symbol;
+  return v_3;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_4 = vertex_main_inner();
+  VertexOutput v_5 = v_4;
+  VertexOutput v_6 = v_4;
+  vertex_main_outputs v_7 = {v_6.prevent_dce, v_5.pos};
+  return v_7;
+}
+
diff --git a/test/tint/builtins/gen/var/textureGather/ea8eb4.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/textureGather/ea8eb4.wgsl.expected.ir.fxc.hlsl
index de83606..071c160 100644
--- a/test/tint/builtins/gen/var/textureGather/ea8eb4.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureGather/ea8eb4.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,49 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  float4 prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureGather
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation float4 VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+Texture2DArray<float4> arg_1 : register(t1, space1);
+SamplerState arg_2 : register(s2, space1);
+float4 textureGather_ea8eb4() {
+  float2 arg_3 = (1.0f).xx;
+  uint arg_4 = 1u;
+  Texture2DArray<float4> v = arg_1;
+  SamplerState v_1 = arg_2;
+  float2 v_2 = arg_3;
+  float4 res = v.GatherGreen(v_1, float3(v_2, float(arg_4)));
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store4(0u, asuint(textureGather_ea8eb4()));
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store4(0u, asuint(textureGather_ea8eb4()));
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = textureGather_ea8eb4();
+  VertexOutput v_3 = tint_symbol;
+  return v_3;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_4 = vertex_main_inner();
+  VertexOutput v_5 = v_4;
+  VertexOutput v_6 = v_4;
+  vertex_main_outputs v_7 = {v_6.prevent_dce, v_5.pos};
+  return v_7;
+}
+
diff --git a/test/tint/builtins/gen/var/textureGather/f2c6e3.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/textureGather/f2c6e3.wgsl.expected.ir.dxc.hlsl
index de83606..b9ea22d 100644
--- a/test/tint/builtins/gen/var/textureGather/f2c6e3.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureGather/f2c6e3.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,49 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  uint4 prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureGather
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation uint4 VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+TextureCubeArray<uint4> arg_1 : register(t1, space1);
+SamplerState arg_2 : register(s2, space1);
+uint4 textureGather_f2c6e3() {
+  float3 arg_3 = (1.0f).xxx;
+  int arg_4 = 1;
+  TextureCubeArray<uint4> v = arg_1;
+  SamplerState v_1 = arg_2;
+  float3 v_2 = arg_3;
+  uint4 res = v.GatherGreen(v_1, float4(v_2, float(arg_4)));
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store4(0u, textureGather_f2c6e3());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store4(0u, textureGather_f2c6e3());
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = textureGather_f2c6e3();
+  VertexOutput v_3 = tint_symbol;
+  return v_3;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_4 = vertex_main_inner();
+  VertexOutput v_5 = v_4;
+  VertexOutput v_6 = v_4;
+  vertex_main_outputs v_7 = {v_6.prevent_dce, v_5.pos};
+  return v_7;
+}
+
diff --git a/test/tint/builtins/gen/var/textureGather/f2c6e3.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/textureGather/f2c6e3.wgsl.expected.ir.fxc.hlsl
index de83606..b9ea22d 100644
--- a/test/tint/builtins/gen/var/textureGather/f2c6e3.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureGather/f2c6e3.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,49 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  uint4 prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureGather
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation uint4 VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+TextureCubeArray<uint4> arg_1 : register(t1, space1);
+SamplerState arg_2 : register(s2, space1);
+uint4 textureGather_f2c6e3() {
+  float3 arg_3 = (1.0f).xxx;
+  int arg_4 = 1;
+  TextureCubeArray<uint4> v = arg_1;
+  SamplerState v_1 = arg_2;
+  float3 v_2 = arg_3;
+  uint4 res = v.GatherGreen(v_1, float4(v_2, float(arg_4)));
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store4(0u, textureGather_f2c6e3());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store4(0u, textureGather_f2c6e3());
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = textureGather_f2c6e3();
+  VertexOutput v_3 = tint_symbol;
+  return v_3;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_4 = vertex_main_inner();
+  VertexOutput v_5 = v_4;
+  VertexOutput v_6 = v_4;
+  vertex_main_outputs v_7 = {v_6.prevent_dce, v_5.pos};
+  return v_7;
+}
+
diff --git a/test/tint/builtins/gen/var/textureGatherCompare/144a9a.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/textureGatherCompare/144a9a.wgsl.expected.ir.dxc.hlsl
index c4ed99f..b8b88c6 100644
--- a/test/tint/builtins/gen/var/textureGatherCompare/144a9a.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureGatherCompare/144a9a.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,3 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureGatherCompare
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+exit status 0xe0000001
\ No newline at end of file
diff --git a/test/tint/builtins/gen/var/textureGatherCompare/144a9a.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/textureGatherCompare/144a9a.wgsl.expected.ir.fxc.hlsl
index c4ed99f..894d0d6 100644
--- a/test/tint/builtins/gen/var/textureGatherCompare/144a9a.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureGatherCompare/144a9a.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,51 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  float4 prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureGatherCompare
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation float4 VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+Texture2DArray arg_0 : register(t0, space1);
+SamplerComparisonState arg_1 : register(s1, space1);
+float4 textureGatherCompare_144a9a() {
+  float2 arg_2 = (1.0f).xx;
+  uint arg_3 = 1u;
+  float arg_4 = 1.0f;
+  Texture2DArray v = arg_0;
+  SamplerComparisonState v_1 = arg_1;
+  float2 v_2 = arg_2;
+  float v_3 = arg_4;
+  float4 res = v.GatherCmp(v_1, float3(v_2, float(arg_3)), v_3, (1).xx);
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store4(0u, asuint(textureGatherCompare_144a9a()));
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store4(0u, asuint(textureGatherCompare_144a9a()));
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = textureGatherCompare_144a9a();
+  VertexOutput v_4 = tint_symbol;
+  return v_4;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_5 = vertex_main_inner();
+  VertexOutput v_6 = v_5;
+  VertexOutput v_7 = v_5;
+  vertex_main_outputs v_8 = {v_7.prevent_dce, v_6.pos};
+  return v_8;
+}
+
diff --git a/test/tint/builtins/gen/var/textureGatherCompare/182fd4.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/textureGatherCompare/182fd4.wgsl.expected.ir.dxc.hlsl
index c4ed99f..77bb235 100644
--- a/test/tint/builtins/gen/var/textureGatherCompare/182fd4.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureGatherCompare/182fd4.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,46 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  float4 prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureGatherCompare
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation float4 VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+TextureCube arg_0 : register(t0, space1);
+SamplerComparisonState arg_1 : register(s1, space1);
+float4 textureGatherCompare_182fd4() {
+  float3 arg_2 = (1.0f).xxx;
+  float arg_3 = 1.0f;
+  float4 res = arg_0.GatherCmp(arg_1, arg_2, arg_3);
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store4(0u, asuint(textureGatherCompare_182fd4()));
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store4(0u, asuint(textureGatherCompare_182fd4()));
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = textureGatherCompare_182fd4();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
diff --git a/test/tint/builtins/gen/var/textureGatherCompare/182fd4.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/textureGatherCompare/182fd4.wgsl.expected.ir.fxc.hlsl
index c4ed99f..77bb235 100644
--- a/test/tint/builtins/gen/var/textureGatherCompare/182fd4.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureGatherCompare/182fd4.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,46 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  float4 prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureGatherCompare
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation float4 VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+TextureCube arg_0 : register(t0, space1);
+SamplerComparisonState arg_1 : register(s1, space1);
+float4 textureGatherCompare_182fd4() {
+  float3 arg_2 = (1.0f).xxx;
+  float arg_3 = 1.0f;
+  float4 res = arg_0.GatherCmp(arg_1, arg_2, arg_3);
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store4(0u, asuint(textureGatherCompare_182fd4()));
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store4(0u, asuint(textureGatherCompare_182fd4()));
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = textureGatherCompare_182fd4();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
diff --git a/test/tint/builtins/gen/var/textureGatherCompare/2e409c.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/textureGatherCompare/2e409c.wgsl.expected.ir.dxc.hlsl
index c4ed99f..b3db77f 100644
--- a/test/tint/builtins/gen/var/textureGatherCompare/2e409c.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureGatherCompare/2e409c.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,51 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  float4 prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureGatherCompare
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation float4 VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+TextureCubeArray arg_0 : register(t0, space1);
+SamplerComparisonState arg_1 : register(s1, space1);
+float4 textureGatherCompare_2e409c() {
+  float3 arg_2 = (1.0f).xxx;
+  uint arg_3 = 1u;
+  float arg_4 = 1.0f;
+  TextureCubeArray v = arg_0;
+  SamplerComparisonState v_1 = arg_1;
+  float3 v_2 = arg_2;
+  float v_3 = arg_4;
+  float4 res = v.GatherCmp(v_1, float4(v_2, float(arg_3)), v_3);
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store4(0u, asuint(textureGatherCompare_2e409c()));
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store4(0u, asuint(textureGatherCompare_2e409c()));
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = textureGatherCompare_2e409c();
+  VertexOutput v_4 = tint_symbol;
+  return v_4;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_5 = vertex_main_inner();
+  VertexOutput v_6 = v_5;
+  VertexOutput v_7 = v_5;
+  vertex_main_outputs v_8 = {v_7.prevent_dce, v_6.pos};
+  return v_8;
+}
+
diff --git a/test/tint/builtins/gen/var/textureGatherCompare/2e409c.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/textureGatherCompare/2e409c.wgsl.expected.ir.fxc.hlsl
index c4ed99f..b3db77f 100644
--- a/test/tint/builtins/gen/var/textureGatherCompare/2e409c.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureGatherCompare/2e409c.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,51 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  float4 prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureGatherCompare
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation float4 VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+TextureCubeArray arg_0 : register(t0, space1);
+SamplerComparisonState arg_1 : register(s1, space1);
+float4 textureGatherCompare_2e409c() {
+  float3 arg_2 = (1.0f).xxx;
+  uint arg_3 = 1u;
+  float arg_4 = 1.0f;
+  TextureCubeArray v = arg_0;
+  SamplerComparisonState v_1 = arg_1;
+  float3 v_2 = arg_2;
+  float v_3 = arg_4;
+  float4 res = v.GatherCmp(v_1, float4(v_2, float(arg_3)), v_3);
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store4(0u, asuint(textureGatherCompare_2e409c()));
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store4(0u, asuint(textureGatherCompare_2e409c()));
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = textureGatherCompare_2e409c();
+  VertexOutput v_4 = tint_symbol;
+  return v_4;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_5 = vertex_main_inner();
+  VertexOutput v_6 = v_5;
+  VertexOutput v_7 = v_5;
+  vertex_main_outputs v_8 = {v_7.prevent_dce, v_6.pos};
+  return v_8;
+}
+
diff --git a/test/tint/builtins/gen/var/textureGatherCompare/313add.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/textureGatherCompare/313add.wgsl.expected.ir.dxc.hlsl
index c4ed99f..b8b88c6 100644
--- a/test/tint/builtins/gen/var/textureGatherCompare/313add.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureGatherCompare/313add.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,3 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureGatherCompare
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+exit status 0xe0000001
\ No newline at end of file
diff --git a/test/tint/builtins/gen/var/textureGatherCompare/313add.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/textureGatherCompare/313add.wgsl.expected.ir.fxc.hlsl
index c4ed99f..85ff49b 100644
--- a/test/tint/builtins/gen/var/textureGatherCompare/313add.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureGatherCompare/313add.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,46 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  float4 prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureGatherCompare
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation float4 VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+Texture2D arg_0 : register(t0, space1);
+SamplerComparisonState arg_1 : register(s1, space1);
+float4 textureGatherCompare_313add() {
+  float2 arg_2 = (1.0f).xx;
+  float arg_3 = 1.0f;
+  float4 res = arg_0.GatherCmp(arg_1, arg_2, arg_3, (1).xx);
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store4(0u, asuint(textureGatherCompare_313add()));
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store4(0u, asuint(textureGatherCompare_313add()));
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = textureGatherCompare_313add();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
diff --git a/test/tint/builtins/gen/var/textureGatherCompare/60d2d1.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/textureGatherCompare/60d2d1.wgsl.expected.ir.dxc.hlsl
index c4ed99f..9b01b5c 100644
--- a/test/tint/builtins/gen/var/textureGatherCompare/60d2d1.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureGatherCompare/60d2d1.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,51 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  float4 prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureGatherCompare
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation float4 VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+TextureCubeArray arg_0 : register(t0, space1);
+SamplerComparisonState arg_1 : register(s1, space1);
+float4 textureGatherCompare_60d2d1() {
+  float3 arg_2 = (1.0f).xxx;
+  int arg_3 = 1;
+  float arg_4 = 1.0f;
+  TextureCubeArray v = arg_0;
+  SamplerComparisonState v_1 = arg_1;
+  float3 v_2 = arg_2;
+  float v_3 = arg_4;
+  float4 res = v.GatherCmp(v_1, float4(v_2, float(arg_3)), v_3);
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store4(0u, asuint(textureGatherCompare_60d2d1()));
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store4(0u, asuint(textureGatherCompare_60d2d1()));
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = textureGatherCompare_60d2d1();
+  VertexOutput v_4 = tint_symbol;
+  return v_4;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_5 = vertex_main_inner();
+  VertexOutput v_6 = v_5;
+  VertexOutput v_7 = v_5;
+  vertex_main_outputs v_8 = {v_7.prevent_dce, v_6.pos};
+  return v_8;
+}
+
diff --git a/test/tint/builtins/gen/var/textureGatherCompare/60d2d1.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/textureGatherCompare/60d2d1.wgsl.expected.ir.fxc.hlsl
index c4ed99f..9b01b5c 100644
--- a/test/tint/builtins/gen/var/textureGatherCompare/60d2d1.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureGatherCompare/60d2d1.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,51 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  float4 prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureGatherCompare
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation float4 VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+TextureCubeArray arg_0 : register(t0, space1);
+SamplerComparisonState arg_1 : register(s1, space1);
+float4 textureGatherCompare_60d2d1() {
+  float3 arg_2 = (1.0f).xxx;
+  int arg_3 = 1;
+  float arg_4 = 1.0f;
+  TextureCubeArray v = arg_0;
+  SamplerComparisonState v_1 = arg_1;
+  float3 v_2 = arg_2;
+  float v_3 = arg_4;
+  float4 res = v.GatherCmp(v_1, float4(v_2, float(arg_3)), v_3);
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store4(0u, asuint(textureGatherCompare_60d2d1()));
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store4(0u, asuint(textureGatherCompare_60d2d1()));
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = textureGatherCompare_60d2d1();
+  VertexOutput v_4 = tint_symbol;
+  return v_4;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_5 = vertex_main_inner();
+  VertexOutput v_6 = v_5;
+  VertexOutput v_7 = v_5;
+  vertex_main_outputs v_8 = {v_7.prevent_dce, v_6.pos};
+  return v_8;
+}
+
diff --git a/test/tint/builtins/gen/var/textureGatherCompare/6d9352.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/textureGatherCompare/6d9352.wgsl.expected.ir.dxc.hlsl
index c4ed99f..f3f380e 100644
--- a/test/tint/builtins/gen/var/textureGatherCompare/6d9352.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureGatherCompare/6d9352.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,46 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  float4 prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureGatherCompare
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation float4 VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+Texture2D arg_0 : register(t0, space1);
+SamplerComparisonState arg_1 : register(s1, space1);
+float4 textureGatherCompare_6d9352() {
+  float2 arg_2 = (1.0f).xx;
+  float arg_3 = 1.0f;
+  float4 res = arg_0.GatherCmp(arg_1, arg_2, arg_3);
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store4(0u, asuint(textureGatherCompare_6d9352()));
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store4(0u, asuint(textureGatherCompare_6d9352()));
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = textureGatherCompare_6d9352();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
diff --git a/test/tint/builtins/gen/var/textureGatherCompare/6d9352.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/textureGatherCompare/6d9352.wgsl.expected.ir.fxc.hlsl
index c4ed99f..f3f380e 100644
--- a/test/tint/builtins/gen/var/textureGatherCompare/6d9352.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureGatherCompare/6d9352.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,46 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  float4 prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureGatherCompare
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation float4 VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+Texture2D arg_0 : register(t0, space1);
+SamplerComparisonState arg_1 : register(s1, space1);
+float4 textureGatherCompare_6d9352() {
+  float2 arg_2 = (1.0f).xx;
+  float arg_3 = 1.0f;
+  float4 res = arg_0.GatherCmp(arg_1, arg_2, arg_3);
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store4(0u, asuint(textureGatherCompare_6d9352()));
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store4(0u, asuint(textureGatherCompare_6d9352()));
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = textureGatherCompare_6d9352();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
diff --git a/test/tint/builtins/gen/var/textureGatherCompare/783e65.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/textureGatherCompare/783e65.wgsl.expected.ir.dxc.hlsl
index c4ed99f..1ec4d63 100644
--- a/test/tint/builtins/gen/var/textureGatherCompare/783e65.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureGatherCompare/783e65.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,51 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  float4 prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureGatherCompare
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation float4 VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+Texture2DArray arg_0 : register(t0, space1);
+SamplerComparisonState arg_1 : register(s1, space1);
+float4 textureGatherCompare_783e65() {
+  float2 arg_2 = (1.0f).xx;
+  int arg_3 = 1;
+  float arg_4 = 1.0f;
+  Texture2DArray v = arg_0;
+  SamplerComparisonState v_1 = arg_1;
+  float2 v_2 = arg_2;
+  float v_3 = arg_4;
+  float4 res = v.GatherCmp(v_1, float3(v_2, float(arg_3)), v_3);
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store4(0u, asuint(textureGatherCompare_783e65()));
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store4(0u, asuint(textureGatherCompare_783e65()));
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = textureGatherCompare_783e65();
+  VertexOutput v_4 = tint_symbol;
+  return v_4;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_5 = vertex_main_inner();
+  VertexOutput v_6 = v_5;
+  VertexOutput v_7 = v_5;
+  vertex_main_outputs v_8 = {v_7.prevent_dce, v_6.pos};
+  return v_8;
+}
+
diff --git a/test/tint/builtins/gen/var/textureGatherCompare/783e65.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/textureGatherCompare/783e65.wgsl.expected.ir.fxc.hlsl
index c4ed99f..1ec4d63 100644
--- a/test/tint/builtins/gen/var/textureGatherCompare/783e65.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureGatherCompare/783e65.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,51 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  float4 prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureGatherCompare
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation float4 VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+Texture2DArray arg_0 : register(t0, space1);
+SamplerComparisonState arg_1 : register(s1, space1);
+float4 textureGatherCompare_783e65() {
+  float2 arg_2 = (1.0f).xx;
+  int arg_3 = 1;
+  float arg_4 = 1.0f;
+  Texture2DArray v = arg_0;
+  SamplerComparisonState v_1 = arg_1;
+  float2 v_2 = arg_2;
+  float v_3 = arg_4;
+  float4 res = v.GatherCmp(v_1, float3(v_2, float(arg_3)), v_3);
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store4(0u, asuint(textureGatherCompare_783e65()));
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store4(0u, asuint(textureGatherCompare_783e65()));
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = textureGatherCompare_783e65();
+  VertexOutput v_4 = tint_symbol;
+  return v_4;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_5 = vertex_main_inner();
+  VertexOutput v_6 = v_5;
+  VertexOutput v_7 = v_5;
+  vertex_main_outputs v_8 = {v_7.prevent_dce, v_6.pos};
+  return v_8;
+}
+
diff --git a/test/tint/builtins/gen/var/textureGatherCompare/b5bc43.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/textureGatherCompare/b5bc43.wgsl.expected.ir.dxc.hlsl
index c4ed99f..f98007e 100644
--- a/test/tint/builtins/gen/var/textureGatherCompare/b5bc43.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureGatherCompare/b5bc43.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,51 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  float4 prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureGatherCompare
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation float4 VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+Texture2DArray arg_0 : register(t0, space1);
+SamplerComparisonState arg_1 : register(s1, space1);
+float4 textureGatherCompare_b5bc43() {
+  float2 arg_2 = (1.0f).xx;
+  uint arg_3 = 1u;
+  float arg_4 = 1.0f;
+  Texture2DArray v = arg_0;
+  SamplerComparisonState v_1 = arg_1;
+  float2 v_2 = arg_2;
+  float v_3 = arg_4;
+  float4 res = v.GatherCmp(v_1, float3(v_2, float(arg_3)), v_3);
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store4(0u, asuint(textureGatherCompare_b5bc43()));
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store4(0u, asuint(textureGatherCompare_b5bc43()));
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = textureGatherCompare_b5bc43();
+  VertexOutput v_4 = tint_symbol;
+  return v_4;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_5 = vertex_main_inner();
+  VertexOutput v_6 = v_5;
+  VertexOutput v_7 = v_5;
+  vertex_main_outputs v_8 = {v_7.prevent_dce, v_6.pos};
+  return v_8;
+}
+
diff --git a/test/tint/builtins/gen/var/textureGatherCompare/b5bc43.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/textureGatherCompare/b5bc43.wgsl.expected.ir.fxc.hlsl
index c4ed99f..f98007e 100644
--- a/test/tint/builtins/gen/var/textureGatherCompare/b5bc43.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureGatherCompare/b5bc43.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,51 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  float4 prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureGatherCompare
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation float4 VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+Texture2DArray arg_0 : register(t0, space1);
+SamplerComparisonState arg_1 : register(s1, space1);
+float4 textureGatherCompare_b5bc43() {
+  float2 arg_2 = (1.0f).xx;
+  uint arg_3 = 1u;
+  float arg_4 = 1.0f;
+  Texture2DArray v = arg_0;
+  SamplerComparisonState v_1 = arg_1;
+  float2 v_2 = arg_2;
+  float v_3 = arg_4;
+  float4 res = v.GatherCmp(v_1, float3(v_2, float(arg_3)), v_3);
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store4(0u, asuint(textureGatherCompare_b5bc43()));
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store4(0u, asuint(textureGatherCompare_b5bc43()));
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = textureGatherCompare_b5bc43();
+  VertexOutput v_4 = tint_symbol;
+  return v_4;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_5 = vertex_main_inner();
+  VertexOutput v_6 = v_5;
+  VertexOutput v_7 = v_5;
+  vertex_main_outputs v_8 = {v_7.prevent_dce, v_6.pos};
+  return v_8;
+}
+
diff --git a/test/tint/builtins/gen/var/textureGatherCompare/f585cc.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/textureGatherCompare/f585cc.wgsl.expected.ir.dxc.hlsl
index c4ed99f..b8b88c6 100644
--- a/test/tint/builtins/gen/var/textureGatherCompare/f585cc.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureGatherCompare/f585cc.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,3 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureGatherCompare
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+exit status 0xe0000001
\ No newline at end of file
diff --git a/test/tint/builtins/gen/var/textureGatherCompare/f585cc.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/textureGatherCompare/f585cc.wgsl.expected.ir.fxc.hlsl
index c4ed99f..04d6559 100644
--- a/test/tint/builtins/gen/var/textureGatherCompare/f585cc.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureGatherCompare/f585cc.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,51 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  float4 prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureGatherCompare
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation float4 VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+Texture2DArray arg_0 : register(t0, space1);
+SamplerComparisonState arg_1 : register(s1, space1);
+float4 textureGatherCompare_f585cc() {
+  float2 arg_2 = (1.0f).xx;
+  int arg_3 = 1;
+  float arg_4 = 1.0f;
+  Texture2DArray v = arg_0;
+  SamplerComparisonState v_1 = arg_1;
+  float2 v_2 = arg_2;
+  float v_3 = arg_4;
+  float4 res = v.GatherCmp(v_1, float3(v_2, float(arg_3)), v_3, (1).xx);
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store4(0u, asuint(textureGatherCompare_f585cc()));
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store4(0u, asuint(textureGatherCompare_f585cc()));
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = textureGatherCompare_f585cc();
+  VertexOutput v_4 = tint_symbol;
+  return v_4;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_5 = vertex_main_inner();
+  VertexOutput v_6 = v_5;
+  VertexOutput v_7 = v_5;
+  vertex_main_outputs v_8 = {v_7.prevent_dce, v_6.pos};
+  return v_8;
+}
+
diff --git a/test/tint/builtins/gen/var/textureLoad/012e11.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/textureLoad/012e11.wgsl.expected.ir.dxc.hlsl
index fd28383..334e6e8e 100644
--- a/test/tint/builtins/gen/var/textureLoad/012e11.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureLoad/012e11.wgsl.expected.ir.dxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureLoad
+..\..\src\tint\utils\containers\slice.h:216 internal compiler error: TINT_ASSERT(i < Length())
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/var/textureLoad/012e11.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/textureLoad/012e11.wgsl.expected.ir.fxc.hlsl
index fd28383..334e6e8e 100644
--- a/test/tint/builtins/gen/var/textureLoad/012e11.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureLoad/012e11.wgsl.expected.ir.fxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureLoad
+..\..\src\tint\utils\containers\slice.h:216 internal compiler error: TINT_ASSERT(i < Length())
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/var/textureLoad/019da0.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/textureLoad/019da0.wgsl.expected.ir.dxc.hlsl
index fd28383..0fb024f 100644
--- a/test/tint/builtins/gen/var/textureLoad/019da0.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureLoad/019da0.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,48 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  float4 prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureLoad
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation float4 VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+Texture3D<float4> arg_0 : register(t0, space1);
+float4 textureLoad_019da0() {
+  int3 arg_1 = (1).xxx;
+  uint arg_2 = 1u;
+  Texture3D<float4> v = arg_0;
+  uint v_1 = arg_2;
+  int3 v_2 = int3(arg_1);
+  float4 res = float4(v.Load(int4(v_2, int(v_1))));
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store4(0u, asuint(textureLoad_019da0()));
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store4(0u, asuint(textureLoad_019da0()));
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = textureLoad_019da0();
+  VertexOutput v_3 = tint_symbol;
+  return v_3;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_4 = vertex_main_inner();
+  VertexOutput v_5 = v_4;
+  VertexOutput v_6 = v_4;
+  vertex_main_outputs v_7 = {v_6.prevent_dce, v_5.pos};
+  return v_7;
+}
+
diff --git a/test/tint/builtins/gen/var/textureLoad/019da0.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/textureLoad/019da0.wgsl.expected.ir.fxc.hlsl
index fd28383..0fb024f 100644
--- a/test/tint/builtins/gen/var/textureLoad/019da0.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureLoad/019da0.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,48 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  float4 prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureLoad
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation float4 VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+Texture3D<float4> arg_0 : register(t0, space1);
+float4 textureLoad_019da0() {
+  int3 arg_1 = (1).xxx;
+  uint arg_2 = 1u;
+  Texture3D<float4> v = arg_0;
+  uint v_1 = arg_2;
+  int3 v_2 = int3(arg_1);
+  float4 res = float4(v.Load(int4(v_2, int(v_1))));
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store4(0u, asuint(textureLoad_019da0()));
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store4(0u, asuint(textureLoad_019da0()));
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = textureLoad_019da0();
+  VertexOutput v_3 = tint_symbol;
+  return v_3;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_4 = vertex_main_inner();
+  VertexOutput v_5 = v_4;
+  VertexOutput v_6 = v_4;
+  vertex_main_outputs v_7 = {v_6.prevent_dce, v_5.pos};
+  return v_7;
+}
+
diff --git a/test/tint/builtins/gen/var/textureLoad/01cd01.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/textureLoad/01cd01.wgsl.expected.ir.dxc.hlsl
index fd28383..334e6e8e 100644
--- a/test/tint/builtins/gen/var/textureLoad/01cd01.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureLoad/01cd01.wgsl.expected.ir.dxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureLoad
+..\..\src\tint\utils\containers\slice.h:216 internal compiler error: TINT_ASSERT(i < Length())
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/var/textureLoad/01cd01.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/textureLoad/01cd01.wgsl.expected.ir.fxc.hlsl
index fd28383..334e6e8e 100644
--- a/test/tint/builtins/gen/var/textureLoad/01cd01.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureLoad/01cd01.wgsl.expected.ir.fxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureLoad
+..\..\src\tint\utils\containers\slice.h:216 internal compiler error: TINT_ASSERT(i < Length())
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/var/textureLoad/026217.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/textureLoad/026217.wgsl.expected.ir.dxc.hlsl
index fd28383..3d11ae4 100644
--- a/test/tint/builtins/gen/var/textureLoad/026217.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureLoad/026217.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,51 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  uint4 prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureLoad
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation uint4 VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+Texture2DArray<uint4> arg_0 : register(t0, space1);
+uint4 textureLoad_026217() {
+  uint2 arg_1 = (1u).xx;
+  uint arg_2 = 1u;
+  int arg_3 = 1;
+  Texture2DArray<uint4> v = arg_0;
+  uint v_1 = arg_2;
+  int v_2 = arg_3;
+  int2 v_3 = int2(arg_1);
+  int v_4 = int(v_1);
+  uint4 res = uint4(v.Load(int4(v_3, v_4, int(v_2))));
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store4(0u, textureLoad_026217());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store4(0u, textureLoad_026217());
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = textureLoad_026217();
+  VertexOutput v_5 = tint_symbol;
+  return v_5;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_6 = vertex_main_inner();
+  VertexOutput v_7 = v_6;
+  VertexOutput v_8 = v_6;
+  vertex_main_outputs v_9 = {v_8.prevent_dce, v_7.pos};
+  return v_9;
+}
+
diff --git a/test/tint/builtins/gen/var/textureLoad/026217.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/textureLoad/026217.wgsl.expected.ir.fxc.hlsl
index fd28383..3d11ae4 100644
--- a/test/tint/builtins/gen/var/textureLoad/026217.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureLoad/026217.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,51 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  uint4 prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureLoad
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation uint4 VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+Texture2DArray<uint4> arg_0 : register(t0, space1);
+uint4 textureLoad_026217() {
+  uint2 arg_1 = (1u).xx;
+  uint arg_2 = 1u;
+  int arg_3 = 1;
+  Texture2DArray<uint4> v = arg_0;
+  uint v_1 = arg_2;
+  int v_2 = arg_3;
+  int2 v_3 = int2(arg_1);
+  int v_4 = int(v_1);
+  uint4 res = uint4(v.Load(int4(v_3, v_4, int(v_2))));
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store4(0u, textureLoad_026217());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store4(0u, textureLoad_026217());
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = textureLoad_026217();
+  VertexOutput v_5 = tint_symbol;
+  return v_5;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_6 = vertex_main_inner();
+  VertexOutput v_7 = v_6;
+  VertexOutput v_8 = v_6;
+  vertex_main_outputs v_9 = {v_8.prevent_dce, v_7.pos};
+  return v_9;
+}
+
diff --git a/test/tint/builtins/gen/var/textureLoad/02c48d.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/textureLoad/02c48d.wgsl.expected.ir.dxc.hlsl
index fd28383..334e6e8e 100644
--- a/test/tint/builtins/gen/var/textureLoad/02c48d.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureLoad/02c48d.wgsl.expected.ir.dxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureLoad
+..\..\src\tint\utils\containers\slice.h:216 internal compiler error: TINT_ASSERT(i < Length())
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/var/textureLoad/02c48d.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/textureLoad/02c48d.wgsl.expected.ir.fxc.hlsl
index fd28383..334e6e8e 100644
--- a/test/tint/builtins/gen/var/textureLoad/02c48d.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureLoad/02c48d.wgsl.expected.ir.fxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureLoad
+..\..\src\tint\utils\containers\slice.h:216 internal compiler error: TINT_ASSERT(i < Length())
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/var/textureLoad/02ef1f.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/textureLoad/02ef1f.wgsl.expected.ir.dxc.hlsl
index fd28383..334e6e8e 100644
--- a/test/tint/builtins/gen/var/textureLoad/02ef1f.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureLoad/02ef1f.wgsl.expected.ir.dxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureLoad
+..\..\src\tint\utils\containers\slice.h:216 internal compiler error: TINT_ASSERT(i < Length())
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/var/textureLoad/02ef1f.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/textureLoad/02ef1f.wgsl.expected.ir.fxc.hlsl
index fd28383..334e6e8e 100644
--- a/test/tint/builtins/gen/var/textureLoad/02ef1f.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureLoad/02ef1f.wgsl.expected.ir.fxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureLoad
+..\..\src\tint\utils\containers\slice.h:216 internal compiler error: TINT_ASSERT(i < Length())
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/var/textureLoad/03e03e.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/textureLoad/03e03e.wgsl.expected.ir.dxc.hlsl
index fd28383..334e6e8e 100644
--- a/test/tint/builtins/gen/var/textureLoad/03e03e.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureLoad/03e03e.wgsl.expected.ir.dxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureLoad
+..\..\src\tint\utils\containers\slice.h:216 internal compiler error: TINT_ASSERT(i < Length())
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/var/textureLoad/03e03e.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/textureLoad/03e03e.wgsl.expected.ir.fxc.hlsl
index fd28383..334e6e8e 100644
--- a/test/tint/builtins/gen/var/textureLoad/03e03e.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureLoad/03e03e.wgsl.expected.ir.fxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureLoad
+..\..\src\tint\utils\containers\slice.h:216 internal compiler error: TINT_ASSERT(i < Length())
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/var/textureLoad/045ec9.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/textureLoad/045ec9.wgsl.expected.ir.dxc.hlsl
index fd28383..334e6e8e 100644
--- a/test/tint/builtins/gen/var/textureLoad/045ec9.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureLoad/045ec9.wgsl.expected.ir.dxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureLoad
+..\..\src\tint\utils\containers\slice.h:216 internal compiler error: TINT_ASSERT(i < Length())
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/var/textureLoad/045ec9.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/textureLoad/045ec9.wgsl.expected.ir.fxc.hlsl
index fd28383..334e6e8e 100644
--- a/test/tint/builtins/gen/var/textureLoad/045ec9.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureLoad/045ec9.wgsl.expected.ir.fxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureLoad
+..\..\src\tint\utils\containers\slice.h:216 internal compiler error: TINT_ASSERT(i < Length())
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/var/textureLoad/04b911.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/textureLoad/04b911.wgsl.expected.ir.dxc.hlsl
index fd28383..cd3a9e5 100644
--- a/test/tint/builtins/gen/var/textureLoad/04b911.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureLoad/04b911.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,51 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  float prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureLoad
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation float VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+Texture2DArray arg_0 : register(t0, space1);
+float textureLoad_04b911() {
+  uint2 arg_1 = (1u).xx;
+  int arg_2 = 1;
+  uint arg_3 = 1u;
+  Texture2DArray v = arg_0;
+  int v_1 = arg_2;
+  uint v_2 = arg_3;
+  int2 v_3 = int2(arg_1);
+  int v_4 = int(v_1);
+  float res = v.Load(int4(v_3, v_4, int(v_2))).x;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store(0u, asuint(textureLoad_04b911()));
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store(0u, asuint(textureLoad_04b911()));
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = textureLoad_04b911();
+  VertexOutput v_5 = tint_symbol;
+  return v_5;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_6 = vertex_main_inner();
+  VertexOutput v_7 = v_6;
+  VertexOutput v_8 = v_6;
+  vertex_main_outputs v_9 = {v_8.prevent_dce, v_7.pos};
+  return v_9;
+}
+
diff --git a/test/tint/builtins/gen/var/textureLoad/04b911.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/textureLoad/04b911.wgsl.expected.ir.fxc.hlsl
index fd28383..cd3a9e5 100644
--- a/test/tint/builtins/gen/var/textureLoad/04b911.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureLoad/04b911.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,51 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  float prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureLoad
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation float VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+Texture2DArray arg_0 : register(t0, space1);
+float textureLoad_04b911() {
+  uint2 arg_1 = (1u).xx;
+  int arg_2 = 1;
+  uint arg_3 = 1u;
+  Texture2DArray v = arg_0;
+  int v_1 = arg_2;
+  uint v_2 = arg_3;
+  int2 v_3 = int2(arg_1);
+  int v_4 = int(v_1);
+  float res = v.Load(int4(v_3, v_4, int(v_2))).x;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store(0u, asuint(textureLoad_04b911()));
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store(0u, asuint(textureLoad_04b911()));
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = textureLoad_04b911();
+  VertexOutput v_5 = tint_symbol;
+  return v_5;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_6 = vertex_main_inner();
+  VertexOutput v_7 = v_6;
+  VertexOutput v_8 = v_6;
+  vertex_main_outputs v_9 = {v_8.prevent_dce, v_7.pos};
+  return v_9;
+}
+
diff --git a/test/tint/builtins/gen/var/textureLoad/050c33.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/textureLoad/050c33.wgsl.expected.ir.dxc.hlsl
index fd28383..334e6e8e 100644
--- a/test/tint/builtins/gen/var/textureLoad/050c33.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureLoad/050c33.wgsl.expected.ir.dxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureLoad
+..\..\src\tint\utils\containers\slice.h:216 internal compiler error: TINT_ASSERT(i < Length())
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/var/textureLoad/050c33.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/textureLoad/050c33.wgsl.expected.ir.fxc.hlsl
index fd28383..334e6e8e 100644
--- a/test/tint/builtins/gen/var/textureLoad/050c33.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureLoad/050c33.wgsl.expected.ir.fxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureLoad
+..\..\src\tint\utils\containers\slice.h:216 internal compiler error: TINT_ASSERT(i < Length())
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/var/textureLoad/054350.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/textureLoad/054350.wgsl.expected.ir.dxc.hlsl
index fd28383..334e6e8e 100644
--- a/test/tint/builtins/gen/var/textureLoad/054350.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureLoad/054350.wgsl.expected.ir.dxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureLoad
+..\..\src\tint\utils\containers\slice.h:216 internal compiler error: TINT_ASSERT(i < Length())
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/var/textureLoad/054350.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/textureLoad/054350.wgsl.expected.ir.fxc.hlsl
index fd28383..334e6e8e 100644
--- a/test/tint/builtins/gen/var/textureLoad/054350.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureLoad/054350.wgsl.expected.ir.fxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureLoad
+..\..\src\tint\utils\containers\slice.h:216 internal compiler error: TINT_ASSERT(i < Length())
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/var/textureLoad/0674b1.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/textureLoad/0674b1.wgsl.expected.ir.dxc.hlsl
index fd28383..334e6e8e 100644
--- a/test/tint/builtins/gen/var/textureLoad/0674b1.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureLoad/0674b1.wgsl.expected.ir.dxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureLoad
+..\..\src\tint\utils\containers\slice.h:216 internal compiler error: TINT_ASSERT(i < Length())
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/var/textureLoad/0674b1.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/textureLoad/0674b1.wgsl.expected.ir.fxc.hlsl
index fd28383..334e6e8e 100644
--- a/test/tint/builtins/gen/var/textureLoad/0674b1.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureLoad/0674b1.wgsl.expected.ir.fxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureLoad
+..\..\src\tint\utils\containers\slice.h:216 internal compiler error: TINT_ASSERT(i < Length())
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/var/textureLoad/06ac37.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/textureLoad/06ac37.wgsl.expected.ir.dxc.hlsl
index fd28383..334e6e8e 100644
--- a/test/tint/builtins/gen/var/textureLoad/06ac37.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureLoad/06ac37.wgsl.expected.ir.dxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureLoad
+..\..\src\tint\utils\containers\slice.h:216 internal compiler error: TINT_ASSERT(i < Length())
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/var/textureLoad/06ac37.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/textureLoad/06ac37.wgsl.expected.ir.fxc.hlsl
index fd28383..334e6e8e 100644
--- a/test/tint/builtins/gen/var/textureLoad/06ac37.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureLoad/06ac37.wgsl.expected.ir.fxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureLoad
+..\..\src\tint\utils\containers\slice.h:216 internal compiler error: TINT_ASSERT(i < Length())
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/var/textureLoad/072e26.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/textureLoad/072e26.wgsl.expected.ir.dxc.hlsl
index fd28383..334e6e8e 100644
--- a/test/tint/builtins/gen/var/textureLoad/072e26.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureLoad/072e26.wgsl.expected.ir.dxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureLoad
+..\..\src\tint\utils\containers\slice.h:216 internal compiler error: TINT_ASSERT(i < Length())
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/var/textureLoad/072e26.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/textureLoad/072e26.wgsl.expected.ir.fxc.hlsl
index fd28383..334e6e8e 100644
--- a/test/tint/builtins/gen/var/textureLoad/072e26.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureLoad/072e26.wgsl.expected.ir.fxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureLoad
+..\..\src\tint\utils\containers\slice.h:216 internal compiler error: TINT_ASSERT(i < Length())
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/var/textureLoad/078bc4.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/textureLoad/078bc4.wgsl.expected.ir.dxc.hlsl
index fd28383..334e6e8e 100644
--- a/test/tint/builtins/gen/var/textureLoad/078bc4.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureLoad/078bc4.wgsl.expected.ir.dxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureLoad
+..\..\src\tint\utils\containers\slice.h:216 internal compiler error: TINT_ASSERT(i < Length())
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/var/textureLoad/078bc4.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/textureLoad/078bc4.wgsl.expected.ir.fxc.hlsl
index fd28383..334e6e8e 100644
--- a/test/tint/builtins/gen/var/textureLoad/078bc4.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureLoad/078bc4.wgsl.expected.ir.fxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureLoad
+..\..\src\tint\utils\containers\slice.h:216 internal compiler error: TINT_ASSERT(i < Length())
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/var/textureLoad/0b515a.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/textureLoad/0b515a.wgsl.expected.ir.dxc.hlsl
index fd28383..334e6e8e 100644
--- a/test/tint/builtins/gen/var/textureLoad/0b515a.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureLoad/0b515a.wgsl.expected.ir.dxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureLoad
+..\..\src\tint\utils\containers\slice.h:216 internal compiler error: TINT_ASSERT(i < Length())
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/var/textureLoad/0b515a.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/textureLoad/0b515a.wgsl.expected.ir.fxc.hlsl
index fd28383..334e6e8e 100644
--- a/test/tint/builtins/gen/var/textureLoad/0b515a.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureLoad/0b515a.wgsl.expected.ir.fxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureLoad
+..\..\src\tint\utils\containers\slice.h:216 internal compiler error: TINT_ASSERT(i < Length())
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/var/textureLoad/0cb698.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/textureLoad/0cb698.wgsl.expected.ir.dxc.hlsl
index fd28383..9df604e 100644
--- a/test/tint/builtins/gen/var/textureLoad/0cb698.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureLoad/0cb698.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,48 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  int4 prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureLoad
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation int4 VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+Texture1D<int4> arg_0 : register(t0, space1);
+int4 textureLoad_0cb698() {
+  uint arg_1 = 1u;
+  uint arg_2 = 1u;
+  Texture1D<int4> v = arg_0;
+  uint v_1 = arg_2;
+  int v_2 = int(arg_1);
+  int4 res = int4(v.Load(int2(v_2, int(v_1))));
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store4(0u, asuint(textureLoad_0cb698()));
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store4(0u, asuint(textureLoad_0cb698()));
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = textureLoad_0cb698();
+  VertexOutput v_3 = tint_symbol;
+  return v_3;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_4 = vertex_main_inner();
+  VertexOutput v_5 = v_4;
+  VertexOutput v_6 = v_4;
+  vertex_main_outputs v_7 = {v_6.prevent_dce, v_5.pos};
+  return v_7;
+}
+
diff --git a/test/tint/builtins/gen/var/textureLoad/0cb698.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/textureLoad/0cb698.wgsl.expected.ir.fxc.hlsl
index fd28383..9df604e 100644
--- a/test/tint/builtins/gen/var/textureLoad/0cb698.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureLoad/0cb698.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,48 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  int4 prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureLoad
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation int4 VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+Texture1D<int4> arg_0 : register(t0, space1);
+int4 textureLoad_0cb698() {
+  uint arg_1 = 1u;
+  uint arg_2 = 1u;
+  Texture1D<int4> v = arg_0;
+  uint v_1 = arg_2;
+  int v_2 = int(arg_1);
+  int4 res = int4(v.Load(int2(v_2, int(v_1))));
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store4(0u, asuint(textureLoad_0cb698()));
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store4(0u, asuint(textureLoad_0cb698()));
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = textureLoad_0cb698();
+  VertexOutput v_3 = tint_symbol;
+  return v_3;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_4 = vertex_main_inner();
+  VertexOutput v_5 = v_4;
+  VertexOutput v_6 = v_4;
+  vertex_main_outputs v_7 = {v_6.prevent_dce, v_5.pos};
+  return v_7;
+}
+
diff --git a/test/tint/builtins/gen/var/textureLoad/10db82.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/textureLoad/10db82.wgsl.expected.ir.dxc.hlsl
index fd28383..334e6e8e 100644
--- a/test/tint/builtins/gen/var/textureLoad/10db82.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureLoad/10db82.wgsl.expected.ir.dxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureLoad
+..\..\src\tint\utils\containers\slice.h:216 internal compiler error: TINT_ASSERT(i < Length())
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/var/textureLoad/10db82.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/textureLoad/10db82.wgsl.expected.ir.fxc.hlsl
index fd28383..334e6e8e 100644
--- a/test/tint/builtins/gen/var/textureLoad/10db82.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureLoad/10db82.wgsl.expected.ir.fxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureLoad
+..\..\src\tint\utils\containers\slice.h:216 internal compiler error: TINT_ASSERT(i < Length())
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/var/textureLoad/126466.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/textureLoad/126466.wgsl.expected.ir.dxc.hlsl
index fd28383..334e6e8e 100644
--- a/test/tint/builtins/gen/var/textureLoad/126466.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureLoad/126466.wgsl.expected.ir.dxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureLoad
+..\..\src\tint\utils\containers\slice.h:216 internal compiler error: TINT_ASSERT(i < Length())
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/var/textureLoad/126466.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/textureLoad/126466.wgsl.expected.ir.fxc.hlsl
index fd28383..334e6e8e 100644
--- a/test/tint/builtins/gen/var/textureLoad/126466.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureLoad/126466.wgsl.expected.ir.fxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureLoad
+..\..\src\tint\utils\containers\slice.h:216 internal compiler error: TINT_ASSERT(i < Length())
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/var/textureLoad/127e12.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/textureLoad/127e12.wgsl.expected.ir.dxc.hlsl
index fd28383..334e6e8e 100644
--- a/test/tint/builtins/gen/var/textureLoad/127e12.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureLoad/127e12.wgsl.expected.ir.dxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureLoad
+..\..\src\tint\utils\containers\slice.h:216 internal compiler error: TINT_ASSERT(i < Length())
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/var/textureLoad/127e12.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/textureLoad/127e12.wgsl.expected.ir.fxc.hlsl
index fd28383..334e6e8e 100644
--- a/test/tint/builtins/gen/var/textureLoad/127e12.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureLoad/127e12.wgsl.expected.ir.fxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureLoad
+..\..\src\tint\utils\containers\slice.h:216 internal compiler error: TINT_ASSERT(i < Length())
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/var/textureLoad/1373dc.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/textureLoad/1373dc.wgsl.expected.ir.dxc.hlsl
index fd28383..32859f8 100644
--- a/test/tint/builtins/gen/var/textureLoad/1373dc.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureLoad/1373dc.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,48 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  float4 prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureLoad
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation float4 VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+Texture1D<float4> arg_0 : register(t0, space1);
+float4 textureLoad_1373dc() {
+  uint arg_1 = 1u;
+  int arg_2 = 1;
+  Texture1D<float4> v = arg_0;
+  int v_1 = arg_2;
+  int v_2 = int(arg_1);
+  float4 res = float4(v.Load(int2(v_2, int(v_1))));
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store4(0u, asuint(textureLoad_1373dc()));
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store4(0u, asuint(textureLoad_1373dc()));
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = textureLoad_1373dc();
+  VertexOutput v_3 = tint_symbol;
+  return v_3;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_4 = vertex_main_inner();
+  VertexOutput v_5 = v_4;
+  VertexOutput v_6 = v_4;
+  vertex_main_outputs v_7 = {v_6.prevent_dce, v_5.pos};
+  return v_7;
+}
+
diff --git a/test/tint/builtins/gen/var/textureLoad/1373dc.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/textureLoad/1373dc.wgsl.expected.ir.fxc.hlsl
index fd28383..32859f8 100644
--- a/test/tint/builtins/gen/var/textureLoad/1373dc.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureLoad/1373dc.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,48 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  float4 prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureLoad
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation float4 VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+Texture1D<float4> arg_0 : register(t0, space1);
+float4 textureLoad_1373dc() {
+  uint arg_1 = 1u;
+  int arg_2 = 1;
+  Texture1D<float4> v = arg_0;
+  int v_1 = arg_2;
+  int v_2 = int(arg_1);
+  float4 res = float4(v.Load(int2(v_2, int(v_1))));
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store4(0u, asuint(textureLoad_1373dc()));
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store4(0u, asuint(textureLoad_1373dc()));
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = textureLoad_1373dc();
+  VertexOutput v_3 = tint_symbol;
+  return v_3;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_4 = vertex_main_inner();
+  VertexOutput v_5 = v_4;
+  VertexOutput v_6 = v_4;
+  vertex_main_outputs v_7 = {v_6.prevent_dce, v_5.pos};
+  return v_7;
+}
+
diff --git a/test/tint/builtins/gen/var/textureLoad/13d539.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/textureLoad/13d539.wgsl.expected.ir.dxc.hlsl
index fd28383..334e6e8e 100644
--- a/test/tint/builtins/gen/var/textureLoad/13d539.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureLoad/13d539.wgsl.expected.ir.dxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureLoad
+..\..\src\tint\utils\containers\slice.h:216 internal compiler error: TINT_ASSERT(i < Length())
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/var/textureLoad/13d539.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/textureLoad/13d539.wgsl.expected.ir.fxc.hlsl
index fd28383..334e6e8e 100644
--- a/test/tint/builtins/gen/var/textureLoad/13d539.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureLoad/13d539.wgsl.expected.ir.fxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureLoad
+..\..\src\tint\utils\containers\slice.h:216 internal compiler error: TINT_ASSERT(i < Length())
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/var/textureLoad/13e90c.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/textureLoad/13e90c.wgsl.expected.ir.dxc.hlsl
index fd28383..334e6e8e 100644
--- a/test/tint/builtins/gen/var/textureLoad/13e90c.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureLoad/13e90c.wgsl.expected.ir.dxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureLoad
+..\..\src\tint\utils\containers\slice.h:216 internal compiler error: TINT_ASSERT(i < Length())
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/var/textureLoad/13e90c.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/textureLoad/13e90c.wgsl.expected.ir.fxc.hlsl
index fd28383..334e6e8e 100644
--- a/test/tint/builtins/gen/var/textureLoad/13e90c.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureLoad/13e90c.wgsl.expected.ir.fxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureLoad
+..\..\src\tint\utils\containers\slice.h:216 internal compiler error: TINT_ASSERT(i < Length())
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/var/textureLoad/143d84.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/textureLoad/143d84.wgsl.expected.ir.dxc.hlsl
index fd28383..334e6e8e 100644
--- a/test/tint/builtins/gen/var/textureLoad/143d84.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureLoad/143d84.wgsl.expected.ir.dxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureLoad
+..\..\src\tint\utils\containers\slice.h:216 internal compiler error: TINT_ASSERT(i < Length())
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/var/textureLoad/143d84.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/textureLoad/143d84.wgsl.expected.ir.fxc.hlsl
index fd28383..334e6e8e 100644
--- a/test/tint/builtins/gen/var/textureLoad/143d84.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureLoad/143d84.wgsl.expected.ir.fxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureLoad
+..\..\src\tint\utils\containers\slice.h:216 internal compiler error: TINT_ASSERT(i < Length())
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/var/textureLoad/1471b8.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/textureLoad/1471b8.wgsl.expected.ir.dxc.hlsl
index fd28383..334e6e8e 100644
--- a/test/tint/builtins/gen/var/textureLoad/1471b8.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureLoad/1471b8.wgsl.expected.ir.dxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureLoad
+..\..\src\tint\utils\containers\slice.h:216 internal compiler error: TINT_ASSERT(i < Length())
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/var/textureLoad/1471b8.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/textureLoad/1471b8.wgsl.expected.ir.fxc.hlsl
index fd28383..334e6e8e 100644
--- a/test/tint/builtins/gen/var/textureLoad/1471b8.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureLoad/1471b8.wgsl.expected.ir.fxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureLoad
+..\..\src\tint\utils\containers\slice.h:216 internal compiler error: TINT_ASSERT(i < Length())
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/var/textureLoad/14cc4c.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/textureLoad/14cc4c.wgsl.expected.ir.dxc.hlsl
index fd28383..334e6e8e 100644
--- a/test/tint/builtins/gen/var/textureLoad/14cc4c.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureLoad/14cc4c.wgsl.expected.ir.dxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureLoad
+..\..\src\tint\utils\containers\slice.h:216 internal compiler error: TINT_ASSERT(i < Length())
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/var/textureLoad/14cc4c.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/textureLoad/14cc4c.wgsl.expected.ir.fxc.hlsl
index fd28383..334e6e8e 100644
--- a/test/tint/builtins/gen/var/textureLoad/14cc4c.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureLoad/14cc4c.wgsl.expected.ir.fxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureLoad
+..\..\src\tint\utils\containers\slice.h:216 internal compiler error: TINT_ASSERT(i < Length())
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/var/textureLoad/1561a7.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/textureLoad/1561a7.wgsl.expected.ir.dxc.hlsl
index fd28383..334e6e8e 100644
--- a/test/tint/builtins/gen/var/textureLoad/1561a7.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureLoad/1561a7.wgsl.expected.ir.dxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureLoad
+..\..\src\tint\utils\containers\slice.h:216 internal compiler error: TINT_ASSERT(i < Length())
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/var/textureLoad/1561a7.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/textureLoad/1561a7.wgsl.expected.ir.fxc.hlsl
index fd28383..334e6e8e 100644
--- a/test/tint/builtins/gen/var/textureLoad/1561a7.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureLoad/1561a7.wgsl.expected.ir.fxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureLoad
+..\..\src\tint\utils\containers\slice.h:216 internal compiler error: TINT_ASSERT(i < Length())
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/var/textureLoad/15e675.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/textureLoad/15e675.wgsl.expected.ir.dxc.hlsl
index fd28383..334e6e8e 100644
--- a/test/tint/builtins/gen/var/textureLoad/15e675.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureLoad/15e675.wgsl.expected.ir.dxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureLoad
+..\..\src\tint\utils\containers\slice.h:216 internal compiler error: TINT_ASSERT(i < Length())
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/var/textureLoad/15e675.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/textureLoad/15e675.wgsl.expected.ir.fxc.hlsl
index fd28383..334e6e8e 100644
--- a/test/tint/builtins/gen/var/textureLoad/15e675.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureLoad/15e675.wgsl.expected.ir.fxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureLoad
+..\..\src\tint\utils\containers\slice.h:216 internal compiler error: TINT_ASSERT(i < Length())
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/var/textureLoad/1619bf.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/textureLoad/1619bf.wgsl.expected.ir.dxc.hlsl
index fd28383..334e6e8e 100644
--- a/test/tint/builtins/gen/var/textureLoad/1619bf.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureLoad/1619bf.wgsl.expected.ir.dxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureLoad
+..\..\src\tint\utils\containers\slice.h:216 internal compiler error: TINT_ASSERT(i < Length())
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/var/textureLoad/1619bf.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/textureLoad/1619bf.wgsl.expected.ir.fxc.hlsl
index fd28383..334e6e8e 100644
--- a/test/tint/builtins/gen/var/textureLoad/1619bf.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureLoad/1619bf.wgsl.expected.ir.fxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureLoad
+..\..\src\tint\utils\containers\slice.h:216 internal compiler error: TINT_ASSERT(i < Length())
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/var/textureLoad/168dc8.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/textureLoad/168dc8.wgsl.expected.ir.dxc.hlsl
index fd28383..5e8f601 100644
--- a/test/tint/builtins/gen/var/textureLoad/168dc8.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureLoad/168dc8.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,51 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  int4 prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureLoad
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation int4 VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+Texture2DArray<int4> arg_0 : register(t0, space1);
+int4 textureLoad_168dc8() {
+  uint2 arg_1 = (1u).xx;
+  int arg_2 = 1;
+  int arg_3 = 1;
+  Texture2DArray<int4> v = arg_0;
+  int v_1 = arg_2;
+  int v_2 = arg_3;
+  int2 v_3 = int2(arg_1);
+  int v_4 = int(v_1);
+  int4 res = int4(v.Load(int4(v_3, v_4, int(v_2))));
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store4(0u, asuint(textureLoad_168dc8()));
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store4(0u, asuint(textureLoad_168dc8()));
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = textureLoad_168dc8();
+  VertexOutput v_5 = tint_symbol;
+  return v_5;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_6 = vertex_main_inner();
+  VertexOutput v_7 = v_6;
+  VertexOutput v_8 = v_6;
+  vertex_main_outputs v_9 = {v_8.prevent_dce, v_7.pos};
+  return v_9;
+}
+
diff --git a/test/tint/builtins/gen/var/textureLoad/168dc8.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/textureLoad/168dc8.wgsl.expected.ir.fxc.hlsl
index fd28383..5e8f601 100644
--- a/test/tint/builtins/gen/var/textureLoad/168dc8.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureLoad/168dc8.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,51 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  int4 prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureLoad
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation int4 VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+Texture2DArray<int4> arg_0 : register(t0, space1);
+int4 textureLoad_168dc8() {
+  uint2 arg_1 = (1u).xx;
+  int arg_2 = 1;
+  int arg_3 = 1;
+  Texture2DArray<int4> v = arg_0;
+  int v_1 = arg_2;
+  int v_2 = arg_3;
+  int2 v_3 = int2(arg_1);
+  int v_4 = int(v_1);
+  int4 res = int4(v.Load(int4(v_3, v_4, int(v_2))));
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store4(0u, asuint(textureLoad_168dc8()));
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store4(0u, asuint(textureLoad_168dc8()));
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = textureLoad_168dc8();
+  VertexOutput v_5 = tint_symbol;
+  return v_5;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_6 = vertex_main_inner();
+  VertexOutput v_7 = v_6;
+  VertexOutput v_8 = v_6;
+  vertex_main_outputs v_9 = {v_8.prevent_dce, v_7.pos};
+  return v_9;
+}
+
diff --git a/test/tint/builtins/gen/var/textureLoad/170593.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/textureLoad/170593.wgsl.expected.ir.dxc.hlsl
index fd28383..334e6e8e 100644
--- a/test/tint/builtins/gen/var/textureLoad/170593.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureLoad/170593.wgsl.expected.ir.dxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureLoad
+..\..\src\tint\utils\containers\slice.h:216 internal compiler error: TINT_ASSERT(i < Length())
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/var/textureLoad/170593.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/textureLoad/170593.wgsl.expected.ir.fxc.hlsl
index fd28383..334e6e8e 100644
--- a/test/tint/builtins/gen/var/textureLoad/170593.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureLoad/170593.wgsl.expected.ir.fxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureLoad
+..\..\src\tint\utils\containers\slice.h:216 internal compiler error: TINT_ASSERT(i < Length())
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/var/textureLoad/17095b.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/textureLoad/17095b.wgsl.expected.ir.dxc.hlsl
index fd28383..334e6e8e 100644
--- a/test/tint/builtins/gen/var/textureLoad/17095b.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureLoad/17095b.wgsl.expected.ir.dxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureLoad
+..\..\src\tint\utils\containers\slice.h:216 internal compiler error: TINT_ASSERT(i < Length())
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/var/textureLoad/17095b.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/textureLoad/17095b.wgsl.expected.ir.fxc.hlsl
index fd28383..334e6e8e 100644
--- a/test/tint/builtins/gen/var/textureLoad/17095b.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureLoad/17095b.wgsl.expected.ir.fxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureLoad
+..\..\src\tint\utils\containers\slice.h:216 internal compiler error: TINT_ASSERT(i < Length())
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/var/textureLoad/18ac11.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/textureLoad/18ac11.wgsl.expected.ir.dxc.hlsl
index fd28383..334e6e8e 100644
--- a/test/tint/builtins/gen/var/textureLoad/18ac11.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureLoad/18ac11.wgsl.expected.ir.dxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureLoad
+..\..\src\tint\utils\containers\slice.h:216 internal compiler error: TINT_ASSERT(i < Length())
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/var/textureLoad/18ac11.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/textureLoad/18ac11.wgsl.expected.ir.fxc.hlsl
index fd28383..334e6e8e 100644
--- a/test/tint/builtins/gen/var/textureLoad/18ac11.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureLoad/18ac11.wgsl.expected.ir.fxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureLoad
+..\..\src\tint\utils\containers\slice.h:216 internal compiler error: TINT_ASSERT(i < Length())
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/var/textureLoad/19cf87.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/textureLoad/19cf87.wgsl.expected.ir.dxc.hlsl
index fd28383..0d94486 100644
--- a/test/tint/builtins/gen/var/textureLoad/19cf87.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureLoad/19cf87.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,48 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  float prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureLoad
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation float VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+Texture2D arg_0 : register(t0, space1);
+float textureLoad_19cf87() {
+  int2 arg_1 = (1).xx;
+  int arg_2 = 1;
+  Texture2D v = arg_0;
+  int v_1 = arg_2;
+  int2 v_2 = int2(arg_1);
+  float res = v.Load(int3(v_2, int(v_1))).x;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store(0u, asuint(textureLoad_19cf87()));
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store(0u, asuint(textureLoad_19cf87()));
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = textureLoad_19cf87();
+  VertexOutput v_3 = tint_symbol;
+  return v_3;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_4 = vertex_main_inner();
+  VertexOutput v_5 = v_4;
+  VertexOutput v_6 = v_4;
+  vertex_main_outputs v_7 = {v_6.prevent_dce, v_5.pos};
+  return v_7;
+}
+
diff --git a/test/tint/builtins/gen/var/textureLoad/19cf87.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/textureLoad/19cf87.wgsl.expected.ir.fxc.hlsl
index fd28383..0d94486 100644
--- a/test/tint/builtins/gen/var/textureLoad/19cf87.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureLoad/19cf87.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,48 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  float prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureLoad
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation float VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+Texture2D arg_0 : register(t0, space1);
+float textureLoad_19cf87() {
+  int2 arg_1 = (1).xx;
+  int arg_2 = 1;
+  Texture2D v = arg_0;
+  int v_1 = arg_2;
+  int2 v_2 = int2(arg_1);
+  float res = v.Load(int3(v_2, int(v_1))).x;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store(0u, asuint(textureLoad_19cf87()));
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store(0u, asuint(textureLoad_19cf87()));
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = textureLoad_19cf87();
+  VertexOutput v_3 = tint_symbol;
+  return v_3;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_4 = vertex_main_inner();
+  VertexOutput v_5 = v_4;
+  VertexOutput v_6 = v_4;
+  vertex_main_outputs v_7 = {v_6.prevent_dce, v_5.pos};
+  return v_7;
+}
+
diff --git a/test/tint/builtins/gen/var/textureLoad/19d6be.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/textureLoad/19d6be.wgsl.expected.ir.dxc.hlsl
index fd28383..334e6e8e 100644
--- a/test/tint/builtins/gen/var/textureLoad/19d6be.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureLoad/19d6be.wgsl.expected.ir.dxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureLoad
+..\..\src\tint\utils\containers\slice.h:216 internal compiler error: TINT_ASSERT(i < Length())
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/var/textureLoad/19d6be.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/textureLoad/19d6be.wgsl.expected.ir.fxc.hlsl
index fd28383..334e6e8e 100644
--- a/test/tint/builtins/gen/var/textureLoad/19d6be.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureLoad/19d6be.wgsl.expected.ir.fxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureLoad
+..\..\src\tint\utils\containers\slice.h:216 internal compiler error: TINT_ASSERT(i < Length())
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/var/textureLoad/19e5ca.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/textureLoad/19e5ca.wgsl.expected.ir.dxc.hlsl
index fd28383..334e6e8e 100644
--- a/test/tint/builtins/gen/var/textureLoad/19e5ca.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureLoad/19e5ca.wgsl.expected.ir.dxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureLoad
+..\..\src\tint\utils\containers\slice.h:216 internal compiler error: TINT_ASSERT(i < Length())
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/var/textureLoad/19e5ca.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/textureLoad/19e5ca.wgsl.expected.ir.fxc.hlsl
index fd28383..334e6e8e 100644
--- a/test/tint/builtins/gen/var/textureLoad/19e5ca.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureLoad/19e5ca.wgsl.expected.ir.fxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureLoad
+..\..\src\tint\utils\containers\slice.h:216 internal compiler error: TINT_ASSERT(i < Length())
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/var/textureLoad/1a062f.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/textureLoad/1a062f.wgsl.expected.ir.dxc.hlsl
index fd28383..334e6e8e 100644
--- a/test/tint/builtins/gen/var/textureLoad/1a062f.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureLoad/1a062f.wgsl.expected.ir.dxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureLoad
+..\..\src\tint\utils\containers\slice.h:216 internal compiler error: TINT_ASSERT(i < Length())
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/var/textureLoad/1a062f.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/textureLoad/1a062f.wgsl.expected.ir.fxc.hlsl
index fd28383..334e6e8e 100644
--- a/test/tint/builtins/gen/var/textureLoad/1a062f.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureLoad/1a062f.wgsl.expected.ir.fxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureLoad
+..\..\src\tint\utils\containers\slice.h:216 internal compiler error: TINT_ASSERT(i < Length())
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/var/textureLoad/1a8452.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/textureLoad/1a8452.wgsl.expected.ir.dxc.hlsl
index fd28383..334e6e8e 100644
--- a/test/tint/builtins/gen/var/textureLoad/1a8452.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureLoad/1a8452.wgsl.expected.ir.dxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureLoad
+..\..\src\tint\utils\containers\slice.h:216 internal compiler error: TINT_ASSERT(i < Length())
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/var/textureLoad/1a8452.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/textureLoad/1a8452.wgsl.expected.ir.fxc.hlsl
index fd28383..334e6e8e 100644
--- a/test/tint/builtins/gen/var/textureLoad/1a8452.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureLoad/1a8452.wgsl.expected.ir.fxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureLoad
+..\..\src\tint\utils\containers\slice.h:216 internal compiler error: TINT_ASSERT(i < Length())
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/var/textureLoad/1aa950.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/textureLoad/1aa950.wgsl.expected.ir.dxc.hlsl
index fd28383..334e6e8e 100644
--- a/test/tint/builtins/gen/var/textureLoad/1aa950.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureLoad/1aa950.wgsl.expected.ir.dxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureLoad
+..\..\src\tint\utils\containers\slice.h:216 internal compiler error: TINT_ASSERT(i < Length())
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/var/textureLoad/1aa950.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/textureLoad/1aa950.wgsl.expected.ir.fxc.hlsl
index fd28383..334e6e8e 100644
--- a/test/tint/builtins/gen/var/textureLoad/1aa950.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureLoad/1aa950.wgsl.expected.ir.fxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureLoad
+..\..\src\tint\utils\containers\slice.h:216 internal compiler error: TINT_ASSERT(i < Length())
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/var/textureLoad/1b051f.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/textureLoad/1b051f.wgsl.expected.ir.dxc.hlsl
index fd28383..d305d04 100644
--- a/test/tint/builtins/gen/var/textureLoad/1b051f.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureLoad/1b051f.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,51 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  uint4 prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureLoad
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation uint4 VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+Texture2DArray<uint4> arg_0 : register(t0, space1);
+uint4 textureLoad_1b051f() {
+  int2 arg_1 = (1).xx;
+  uint arg_2 = 1u;
+  uint arg_3 = 1u;
+  Texture2DArray<uint4> v = arg_0;
+  uint v_1 = arg_2;
+  uint v_2 = arg_3;
+  int2 v_3 = int2(arg_1);
+  int v_4 = int(v_1);
+  uint4 res = uint4(v.Load(int4(v_3, v_4, int(v_2))));
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store4(0u, textureLoad_1b051f());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store4(0u, textureLoad_1b051f());
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = textureLoad_1b051f();
+  VertexOutput v_5 = tint_symbol;
+  return v_5;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_6 = vertex_main_inner();
+  VertexOutput v_7 = v_6;
+  VertexOutput v_8 = v_6;
+  vertex_main_outputs v_9 = {v_8.prevent_dce, v_7.pos};
+  return v_9;
+}
+
diff --git a/test/tint/builtins/gen/var/textureLoad/1b051f.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/textureLoad/1b051f.wgsl.expected.ir.fxc.hlsl
index fd28383..d305d04 100644
--- a/test/tint/builtins/gen/var/textureLoad/1b051f.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureLoad/1b051f.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,51 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  uint4 prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureLoad
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation uint4 VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+Texture2DArray<uint4> arg_0 : register(t0, space1);
+uint4 textureLoad_1b051f() {
+  int2 arg_1 = (1).xx;
+  uint arg_2 = 1u;
+  uint arg_3 = 1u;
+  Texture2DArray<uint4> v = arg_0;
+  uint v_1 = arg_2;
+  uint v_2 = arg_3;
+  int2 v_3 = int2(arg_1);
+  int v_4 = int(v_1);
+  uint4 res = uint4(v.Load(int4(v_3, v_4, int(v_2))));
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store4(0u, textureLoad_1b051f());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store4(0u, textureLoad_1b051f());
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = textureLoad_1b051f();
+  VertexOutput v_5 = tint_symbol;
+  return v_5;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_6 = vertex_main_inner();
+  VertexOutput v_7 = v_6;
+  VertexOutput v_8 = v_6;
+  vertex_main_outputs v_9 = {v_8.prevent_dce, v_7.pos};
+  return v_9;
+}
+
diff --git a/test/tint/builtins/gen/var/textureLoad/1b4332.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/textureLoad/1b4332.wgsl.expected.ir.dxc.hlsl
index fd28383..334e6e8e 100644
--- a/test/tint/builtins/gen/var/textureLoad/1b4332.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureLoad/1b4332.wgsl.expected.ir.dxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureLoad
+..\..\src\tint\utils\containers\slice.h:216 internal compiler error: TINT_ASSERT(i < Length())
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/var/textureLoad/1b4332.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/textureLoad/1b4332.wgsl.expected.ir.fxc.hlsl
index fd28383..334e6e8e 100644
--- a/test/tint/builtins/gen/var/textureLoad/1b4332.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureLoad/1b4332.wgsl.expected.ir.fxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureLoad
+..\..\src\tint\utils\containers\slice.h:216 internal compiler error: TINT_ASSERT(i < Length())
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/var/textureLoad/1b8588.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/textureLoad/1b8588.wgsl.expected.ir.dxc.hlsl
index fd28383..f9069d7 100644
--- a/test/tint/builtins/gen/var/textureLoad/1b8588.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureLoad/1b8588.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,48 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  uint4 prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureLoad
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation uint4 VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+Texture1D<uint4> arg_0 : register(t0, space1);
+uint4 textureLoad_1b8588() {
+  int arg_1 = 1;
+  int arg_2 = 1;
+  Texture1D<uint4> v = arg_0;
+  int v_1 = arg_2;
+  int v_2 = int(arg_1);
+  uint4 res = uint4(v.Load(int2(v_2, int(v_1))));
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store4(0u, textureLoad_1b8588());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store4(0u, textureLoad_1b8588());
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = textureLoad_1b8588();
+  VertexOutput v_3 = tint_symbol;
+  return v_3;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_4 = vertex_main_inner();
+  VertexOutput v_5 = v_4;
+  VertexOutput v_6 = v_4;
+  vertex_main_outputs v_7 = {v_6.prevent_dce, v_5.pos};
+  return v_7;
+}
+
diff --git a/test/tint/builtins/gen/var/textureLoad/1b8588.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/textureLoad/1b8588.wgsl.expected.ir.fxc.hlsl
index fd28383..f9069d7 100644
--- a/test/tint/builtins/gen/var/textureLoad/1b8588.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureLoad/1b8588.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,48 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  uint4 prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureLoad
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation uint4 VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+Texture1D<uint4> arg_0 : register(t0, space1);
+uint4 textureLoad_1b8588() {
+  int arg_1 = 1;
+  int arg_2 = 1;
+  Texture1D<uint4> v = arg_0;
+  int v_1 = arg_2;
+  int v_2 = int(arg_1);
+  uint4 res = uint4(v.Load(int2(v_2, int(v_1))));
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store4(0u, textureLoad_1b8588());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store4(0u, textureLoad_1b8588());
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = textureLoad_1b8588();
+  VertexOutput v_3 = tint_symbol;
+  return v_3;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_4 = vertex_main_inner();
+  VertexOutput v_5 = v_4;
+  VertexOutput v_6 = v_4;
+  vertex_main_outputs v_7 = {v_6.prevent_dce, v_5.pos};
+  return v_7;
+}
+
diff --git a/test/tint/builtins/gen/var/textureLoad/1bc5ab.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/textureLoad/1bc5ab.wgsl.expected.ir.dxc.hlsl
index fd28383..334e6e8e 100644
--- a/test/tint/builtins/gen/var/textureLoad/1bc5ab.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureLoad/1bc5ab.wgsl.expected.ir.dxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureLoad
+..\..\src\tint\utils\containers\slice.h:216 internal compiler error: TINT_ASSERT(i < Length())
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/var/textureLoad/1bc5ab.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/textureLoad/1bc5ab.wgsl.expected.ir.fxc.hlsl
index fd28383..334e6e8e 100644
--- a/test/tint/builtins/gen/var/textureLoad/1bc5ab.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureLoad/1bc5ab.wgsl.expected.ir.fxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureLoad
+..\..\src\tint\utils\containers\slice.h:216 internal compiler error: TINT_ASSERT(i < Length())
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/var/textureLoad/1bfdfb.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/textureLoad/1bfdfb.wgsl.expected.ir.dxc.hlsl
index fd28383..bea92c8 100644
--- a/test/tint/builtins/gen/var/textureLoad/1bfdfb.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureLoad/1bfdfb.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,180 @@
-SKIP: FAILED
+struct tint_GammaTransferParams {
+  float G;
+  float A;
+  float B;
+  float C;
+  float D;
+  float E;
+  float F;
+  uint padding;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureLoad
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct tint_ExternalTextureParams {
+  uint numPlanes;
+  uint doYuvToRgbConversionOnly;
+  float3x4 yuvToRgbConversionMatrix;
+  tint_GammaTransferParams gammaDecodeParams;
+  tint_GammaTransferParams gammaEncodeParams;
+  float3x3 gamutConversionMatrix;
+  float3x2 sampleTransform;
+  float3x2 loadTransform;
+  float2 samplePlane0RectMin;
+  float2 samplePlane0RectMax;
+  float2 samplePlane1RectMin;
+  float2 samplePlane1RectMax;
+  uint2 visibleSize;
+  float2 plane1CoordFactor;
+};
+
+struct VertexOutput {
+  float4 pos;
+  float4 prevent_dce;
+};
+
+struct vertex_main_outputs {
+  nointerpolation float4 VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+Texture2D<float4> arg_0_plane0 : register(t0, space1);
+Texture2D<float4> arg_0_plane1 : register(t1, space1);
+cbuffer cbuffer_arg_0_params : register(b2, space1) {
+  uint4 arg_0_params[17];
+};
+uint2 tint_v2f32_to_v2u32(float2 value) {
+  return (((value <= (4294967040.0f).xx)) ? ((((value >= (0.0f).xx)) ? (uint2(value)) : ((0u).xx))) : ((4294967295u).xx));
+}
+
+float3 tint_GammaCorrection(float3 v, tint_GammaTransferParams params) {
+  float3 v_1 = float3((params.G).xxx);
+  float3 v_2 = float3((params.D).xxx);
+  float3 v_3 = abs(v);
+  float3 v_4 = float3(sign(v));
+  return (((v_3 < v_2)) ? ((v_4 * ((params.C * v_3) + params.F))) : ((v_4 * (pow(((params.A * v_3) + params.B), v_1) + params.E))));
+}
+
+float4 tint_TextureLoadExternal(Texture2D<float4> plane_0, Texture2D<float4> plane_1, tint_ExternalTextureParams params, uint2 coords) {
+  float2 v_5 = round(mul(float3(float2(min(coords, params.visibleSize)), 1.0f), params.loadTransform));
+  uint2 v_6 = tint_v2f32_to_v2u32(v_5);
+  float3 v_7 = (0.0f).xxx;
+  float v_8 = 0.0f;
+  if ((params.numPlanes == 1u)) {
+    int2 v_9 = int2(v_6);
+    float4 v_10 = float4(plane_0.Load(int3(v_9, int(0u))));
+    v_7 = v_10.xyz;
+    v_8 = v_10[3u];
+  } else {
+    int2 v_11 = int2(v_6);
+    float v_12 = float4(plane_0.Load(int3(v_11, int(0u))))[0u];
+    int2 v_13 = int2(tint_v2f32_to_v2u32((v_5 * params.plane1CoordFactor)));
+    v_7 = mul(params.yuvToRgbConversionMatrix, float4(v_12, float4(plane_1.Load(int3(v_13, int(0u)))).xy, 1.0f));
+    v_8 = 1.0f;
+  }
+  float3 v_14 = v_7;
+  float3 v_15 = (0.0f).xxx;
+  if ((params.doYuvToRgbConversionOnly == 0u)) {
+    tint_GammaTransferParams v_16 = params.gammaDecodeParams;
+    tint_GammaTransferParams v_17 = params.gammaEncodeParams;
+    v_15 = tint_GammaCorrection(mul(tint_GammaCorrection(v_14, v_16), params.gamutConversionMatrix), v_17);
+  } else {
+    v_15 = v_14;
+  }
+  return float4(v_15, v_8);
+}
+
+float3x2 v_18(uint start_byte_offset) {
+  uint4 v_19 = arg_0_params[(start_byte_offset / 16u)];
+  float2 v_20 = asfloat((((((start_byte_offset % 16u) / 4u) == 2u)) ? (v_19.zw) : (v_19.xy)));
+  uint4 v_21 = arg_0_params[((8u + start_byte_offset) / 16u)];
+  float2 v_22 = asfloat(((((((8u + start_byte_offset) % 16u) / 4u) == 2u)) ? (v_21.zw) : (v_21.xy)));
+  uint4 v_23 = arg_0_params[((16u + start_byte_offset) / 16u)];
+  return float3x2(v_20, v_22, asfloat(((((((16u + start_byte_offset) % 16u) / 4u) == 2u)) ? (v_23.zw) : (v_23.xy))));
+}
+
+float3x3 v_24(uint start_byte_offset) {
+  float3 v_25 = asfloat(arg_0_params[(start_byte_offset / 16u)].xyz);
+  float3 v_26 = asfloat(arg_0_params[((16u + start_byte_offset) / 16u)].xyz);
+  return float3x3(v_25, v_26, asfloat(arg_0_params[((32u + start_byte_offset) / 16u)].xyz));
+}
+
+tint_GammaTransferParams v_27(uint start_byte_offset) {
+  float v_28 = asfloat(arg_0_params[(start_byte_offset / 16u)][((start_byte_offset % 16u) / 4u)]);
+  float v_29 = asfloat(arg_0_params[((4u + start_byte_offset) / 16u)][(((4u + start_byte_offset) % 16u) / 4u)]);
+  float v_30 = asfloat(arg_0_params[((8u + start_byte_offset) / 16u)][(((8u + start_byte_offset) % 16u) / 4u)]);
+  float v_31 = asfloat(arg_0_params[((12u + start_byte_offset) / 16u)][(((12u + start_byte_offset) % 16u) / 4u)]);
+  float v_32 = asfloat(arg_0_params[((16u + start_byte_offset) / 16u)][(((16u + start_byte_offset) % 16u) / 4u)]);
+  float v_33 = asfloat(arg_0_params[((20u + start_byte_offset) / 16u)][(((20u + start_byte_offset) % 16u) / 4u)]);
+  float v_34 = asfloat(arg_0_params[((24u + start_byte_offset) / 16u)][(((24u + start_byte_offset) % 16u) / 4u)]);
+  tint_GammaTransferParams v_35 = {v_28, v_29, v_30, v_31, v_32, v_33, v_34, arg_0_params[((28u + start_byte_offset) / 16u)][(((28u + start_byte_offset) % 16u) / 4u)]};
+  return v_35;
+}
+
+float3x4 v_36(uint start_byte_offset) {
+  float4 v_37 = asfloat(arg_0_params[(start_byte_offset / 16u)]);
+  float4 v_38 = asfloat(arg_0_params[((16u + start_byte_offset) / 16u)]);
+  return float3x4(v_37, v_38, asfloat(arg_0_params[((32u + start_byte_offset) / 16u)]));
+}
+
+tint_ExternalTextureParams v_39(uint start_byte_offset) {
+  uint v_40 = arg_0_params[(start_byte_offset / 16u)][((start_byte_offset % 16u) / 4u)];
+  uint v_41 = arg_0_params[((4u + start_byte_offset) / 16u)][(((4u + start_byte_offset) % 16u) / 4u)];
+  float3x4 v_42 = v_36((16u + start_byte_offset));
+  tint_GammaTransferParams v_43 = v_27((64u + start_byte_offset));
+  tint_GammaTransferParams v_44 = v_27((96u + start_byte_offset));
+  float3x3 v_45 = v_24((128u + start_byte_offset));
+  float3x2 v_46 = v_18((176u + start_byte_offset));
+  float3x2 v_47 = v_18((200u + start_byte_offset));
+  uint4 v_48 = arg_0_params[((224u + start_byte_offset) / 16u)];
+  float2 v_49 = asfloat(((((((224u + start_byte_offset) % 16u) / 4u) == 2u)) ? (v_48.zw) : (v_48.xy)));
+  uint4 v_50 = arg_0_params[((232u + start_byte_offset) / 16u)];
+  float2 v_51 = asfloat(((((((232u + start_byte_offset) % 16u) / 4u) == 2u)) ? (v_50.zw) : (v_50.xy)));
+  uint4 v_52 = arg_0_params[((240u + start_byte_offset) / 16u)];
+  float2 v_53 = asfloat(((((((240u + start_byte_offset) % 16u) / 4u) == 2u)) ? (v_52.zw) : (v_52.xy)));
+  uint4 v_54 = arg_0_params[((248u + start_byte_offset) / 16u)];
+  float2 v_55 = asfloat(((((((248u + start_byte_offset) % 16u) / 4u) == 2u)) ? (v_54.zw) : (v_54.xy)));
+  uint4 v_56 = arg_0_params[((256u + start_byte_offset) / 16u)];
+  uint2 v_57 = ((((((256u + start_byte_offset) % 16u) / 4u) == 2u)) ? (v_56.zw) : (v_56.xy));
+  uint4 v_58 = arg_0_params[((264u + start_byte_offset) / 16u)];
+  tint_GammaTransferParams v_59 = v_43;
+  tint_GammaTransferParams v_60 = v_44;
+  tint_ExternalTextureParams v_61 = {v_40, v_41, v_42, v_59, v_60, v_45, v_46, v_47, v_49, v_51, v_53, v_55, v_57, asfloat(((((((264u + start_byte_offset) % 16u) / 4u) == 2u)) ? (v_58.zw) : (v_58.xy)))};
+  return v_61;
+}
+
+float4 textureLoad_1bfdfb() {
+  uint2 arg_1 = (1u).xx;
+  Texture2D<float4> v_62 = arg_0_plane0;
+  Texture2D<float4> v_63 = arg_0_plane1;
+  tint_ExternalTextureParams v_64 = v_39(0u);
+  tint_ExternalTextureParams v_65 = v_64;
+  float4 res = tint_TextureLoadExternal(v_62, v_63, v_65, arg_1);
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store4(0u, asuint(textureLoad_1bfdfb()));
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store4(0u, asuint(textureLoad_1bfdfb()));
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = textureLoad_1bfdfb();
+  VertexOutput v_66 = tint_symbol;
+  return v_66;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_67 = vertex_main_inner();
+  VertexOutput v_68 = v_67;
+  VertexOutput v_69 = v_67;
+  vertex_main_outputs v_70 = {v_69.prevent_dce, v_68.pos};
+  return v_70;
+}
+
diff --git a/test/tint/builtins/gen/var/textureLoad/1bfdfb.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/textureLoad/1bfdfb.wgsl.expected.ir.fxc.hlsl
index fd28383..bea92c8 100644
--- a/test/tint/builtins/gen/var/textureLoad/1bfdfb.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureLoad/1bfdfb.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,180 @@
-SKIP: FAILED
+struct tint_GammaTransferParams {
+  float G;
+  float A;
+  float B;
+  float C;
+  float D;
+  float E;
+  float F;
+  uint padding;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureLoad
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct tint_ExternalTextureParams {
+  uint numPlanes;
+  uint doYuvToRgbConversionOnly;
+  float3x4 yuvToRgbConversionMatrix;
+  tint_GammaTransferParams gammaDecodeParams;
+  tint_GammaTransferParams gammaEncodeParams;
+  float3x3 gamutConversionMatrix;
+  float3x2 sampleTransform;
+  float3x2 loadTransform;
+  float2 samplePlane0RectMin;
+  float2 samplePlane0RectMax;
+  float2 samplePlane1RectMin;
+  float2 samplePlane1RectMax;
+  uint2 visibleSize;
+  float2 plane1CoordFactor;
+};
+
+struct VertexOutput {
+  float4 pos;
+  float4 prevent_dce;
+};
+
+struct vertex_main_outputs {
+  nointerpolation float4 VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+Texture2D<float4> arg_0_plane0 : register(t0, space1);
+Texture2D<float4> arg_0_plane1 : register(t1, space1);
+cbuffer cbuffer_arg_0_params : register(b2, space1) {
+  uint4 arg_0_params[17];
+};
+uint2 tint_v2f32_to_v2u32(float2 value) {
+  return (((value <= (4294967040.0f).xx)) ? ((((value >= (0.0f).xx)) ? (uint2(value)) : ((0u).xx))) : ((4294967295u).xx));
+}
+
+float3 tint_GammaCorrection(float3 v, tint_GammaTransferParams params) {
+  float3 v_1 = float3((params.G).xxx);
+  float3 v_2 = float3((params.D).xxx);
+  float3 v_3 = abs(v);
+  float3 v_4 = float3(sign(v));
+  return (((v_3 < v_2)) ? ((v_4 * ((params.C * v_3) + params.F))) : ((v_4 * (pow(((params.A * v_3) + params.B), v_1) + params.E))));
+}
+
+float4 tint_TextureLoadExternal(Texture2D<float4> plane_0, Texture2D<float4> plane_1, tint_ExternalTextureParams params, uint2 coords) {
+  float2 v_5 = round(mul(float3(float2(min(coords, params.visibleSize)), 1.0f), params.loadTransform));
+  uint2 v_6 = tint_v2f32_to_v2u32(v_5);
+  float3 v_7 = (0.0f).xxx;
+  float v_8 = 0.0f;
+  if ((params.numPlanes == 1u)) {
+    int2 v_9 = int2(v_6);
+    float4 v_10 = float4(plane_0.Load(int3(v_9, int(0u))));
+    v_7 = v_10.xyz;
+    v_8 = v_10[3u];
+  } else {
+    int2 v_11 = int2(v_6);
+    float v_12 = float4(plane_0.Load(int3(v_11, int(0u))))[0u];
+    int2 v_13 = int2(tint_v2f32_to_v2u32((v_5 * params.plane1CoordFactor)));
+    v_7 = mul(params.yuvToRgbConversionMatrix, float4(v_12, float4(plane_1.Load(int3(v_13, int(0u)))).xy, 1.0f));
+    v_8 = 1.0f;
+  }
+  float3 v_14 = v_7;
+  float3 v_15 = (0.0f).xxx;
+  if ((params.doYuvToRgbConversionOnly == 0u)) {
+    tint_GammaTransferParams v_16 = params.gammaDecodeParams;
+    tint_GammaTransferParams v_17 = params.gammaEncodeParams;
+    v_15 = tint_GammaCorrection(mul(tint_GammaCorrection(v_14, v_16), params.gamutConversionMatrix), v_17);
+  } else {
+    v_15 = v_14;
+  }
+  return float4(v_15, v_8);
+}
+
+float3x2 v_18(uint start_byte_offset) {
+  uint4 v_19 = arg_0_params[(start_byte_offset / 16u)];
+  float2 v_20 = asfloat((((((start_byte_offset % 16u) / 4u) == 2u)) ? (v_19.zw) : (v_19.xy)));
+  uint4 v_21 = arg_0_params[((8u + start_byte_offset) / 16u)];
+  float2 v_22 = asfloat(((((((8u + start_byte_offset) % 16u) / 4u) == 2u)) ? (v_21.zw) : (v_21.xy)));
+  uint4 v_23 = arg_0_params[((16u + start_byte_offset) / 16u)];
+  return float3x2(v_20, v_22, asfloat(((((((16u + start_byte_offset) % 16u) / 4u) == 2u)) ? (v_23.zw) : (v_23.xy))));
+}
+
+float3x3 v_24(uint start_byte_offset) {
+  float3 v_25 = asfloat(arg_0_params[(start_byte_offset / 16u)].xyz);
+  float3 v_26 = asfloat(arg_0_params[((16u + start_byte_offset) / 16u)].xyz);
+  return float3x3(v_25, v_26, asfloat(arg_0_params[((32u + start_byte_offset) / 16u)].xyz));
+}
+
+tint_GammaTransferParams v_27(uint start_byte_offset) {
+  float v_28 = asfloat(arg_0_params[(start_byte_offset / 16u)][((start_byte_offset % 16u) / 4u)]);
+  float v_29 = asfloat(arg_0_params[((4u + start_byte_offset) / 16u)][(((4u + start_byte_offset) % 16u) / 4u)]);
+  float v_30 = asfloat(arg_0_params[((8u + start_byte_offset) / 16u)][(((8u + start_byte_offset) % 16u) / 4u)]);
+  float v_31 = asfloat(arg_0_params[((12u + start_byte_offset) / 16u)][(((12u + start_byte_offset) % 16u) / 4u)]);
+  float v_32 = asfloat(arg_0_params[((16u + start_byte_offset) / 16u)][(((16u + start_byte_offset) % 16u) / 4u)]);
+  float v_33 = asfloat(arg_0_params[((20u + start_byte_offset) / 16u)][(((20u + start_byte_offset) % 16u) / 4u)]);
+  float v_34 = asfloat(arg_0_params[((24u + start_byte_offset) / 16u)][(((24u + start_byte_offset) % 16u) / 4u)]);
+  tint_GammaTransferParams v_35 = {v_28, v_29, v_30, v_31, v_32, v_33, v_34, arg_0_params[((28u + start_byte_offset) / 16u)][(((28u + start_byte_offset) % 16u) / 4u)]};
+  return v_35;
+}
+
+float3x4 v_36(uint start_byte_offset) {
+  float4 v_37 = asfloat(arg_0_params[(start_byte_offset / 16u)]);
+  float4 v_38 = asfloat(arg_0_params[((16u + start_byte_offset) / 16u)]);
+  return float3x4(v_37, v_38, asfloat(arg_0_params[((32u + start_byte_offset) / 16u)]));
+}
+
+tint_ExternalTextureParams v_39(uint start_byte_offset) {
+  uint v_40 = arg_0_params[(start_byte_offset / 16u)][((start_byte_offset % 16u) / 4u)];
+  uint v_41 = arg_0_params[((4u + start_byte_offset) / 16u)][(((4u + start_byte_offset) % 16u) / 4u)];
+  float3x4 v_42 = v_36((16u + start_byte_offset));
+  tint_GammaTransferParams v_43 = v_27((64u + start_byte_offset));
+  tint_GammaTransferParams v_44 = v_27((96u + start_byte_offset));
+  float3x3 v_45 = v_24((128u + start_byte_offset));
+  float3x2 v_46 = v_18((176u + start_byte_offset));
+  float3x2 v_47 = v_18((200u + start_byte_offset));
+  uint4 v_48 = arg_0_params[((224u + start_byte_offset) / 16u)];
+  float2 v_49 = asfloat(((((((224u + start_byte_offset) % 16u) / 4u) == 2u)) ? (v_48.zw) : (v_48.xy)));
+  uint4 v_50 = arg_0_params[((232u + start_byte_offset) / 16u)];
+  float2 v_51 = asfloat(((((((232u + start_byte_offset) % 16u) / 4u) == 2u)) ? (v_50.zw) : (v_50.xy)));
+  uint4 v_52 = arg_0_params[((240u + start_byte_offset) / 16u)];
+  float2 v_53 = asfloat(((((((240u + start_byte_offset) % 16u) / 4u) == 2u)) ? (v_52.zw) : (v_52.xy)));
+  uint4 v_54 = arg_0_params[((248u + start_byte_offset) / 16u)];
+  float2 v_55 = asfloat(((((((248u + start_byte_offset) % 16u) / 4u) == 2u)) ? (v_54.zw) : (v_54.xy)));
+  uint4 v_56 = arg_0_params[((256u + start_byte_offset) / 16u)];
+  uint2 v_57 = ((((((256u + start_byte_offset) % 16u) / 4u) == 2u)) ? (v_56.zw) : (v_56.xy));
+  uint4 v_58 = arg_0_params[((264u + start_byte_offset) / 16u)];
+  tint_GammaTransferParams v_59 = v_43;
+  tint_GammaTransferParams v_60 = v_44;
+  tint_ExternalTextureParams v_61 = {v_40, v_41, v_42, v_59, v_60, v_45, v_46, v_47, v_49, v_51, v_53, v_55, v_57, asfloat(((((((264u + start_byte_offset) % 16u) / 4u) == 2u)) ? (v_58.zw) : (v_58.xy)))};
+  return v_61;
+}
+
+float4 textureLoad_1bfdfb() {
+  uint2 arg_1 = (1u).xx;
+  Texture2D<float4> v_62 = arg_0_plane0;
+  Texture2D<float4> v_63 = arg_0_plane1;
+  tint_ExternalTextureParams v_64 = v_39(0u);
+  tint_ExternalTextureParams v_65 = v_64;
+  float4 res = tint_TextureLoadExternal(v_62, v_63, v_65, arg_1);
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store4(0u, asuint(textureLoad_1bfdfb()));
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store4(0u, asuint(textureLoad_1bfdfb()));
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = textureLoad_1bfdfb();
+  VertexOutput v_66 = tint_symbol;
+  return v_66;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_67 = vertex_main_inner();
+  VertexOutput v_68 = v_67;
+  VertexOutput v_69 = v_67;
+  vertex_main_outputs v_70 = {v_69.prevent_dce, v_68.pos};
+  return v_70;
+}
+
diff --git a/test/tint/builtins/gen/var/textureLoad/1c562a.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/textureLoad/1c562a.wgsl.expected.ir.dxc.hlsl
index fd28383..866cbd3 100644
--- a/test/tint/builtins/gen/var/textureLoad/1c562a.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureLoad/1c562a.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,48 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  uint4 prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureLoad
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation uint4 VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+Texture3D<uint4> arg_0 : register(t0, space1);
+uint4 textureLoad_1c562a() {
+  uint3 arg_1 = (1u).xxx;
+  uint arg_2 = 1u;
+  Texture3D<uint4> v = arg_0;
+  uint v_1 = arg_2;
+  int3 v_2 = int3(arg_1);
+  uint4 res = uint4(v.Load(int4(v_2, int(v_1))));
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store4(0u, textureLoad_1c562a());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store4(0u, textureLoad_1c562a());
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = textureLoad_1c562a();
+  VertexOutput v_3 = tint_symbol;
+  return v_3;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_4 = vertex_main_inner();
+  VertexOutput v_5 = v_4;
+  VertexOutput v_6 = v_4;
+  vertex_main_outputs v_7 = {v_6.prevent_dce, v_5.pos};
+  return v_7;
+}
+
diff --git a/test/tint/builtins/gen/var/textureLoad/1c562a.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/textureLoad/1c562a.wgsl.expected.ir.fxc.hlsl
index fd28383..866cbd3 100644
--- a/test/tint/builtins/gen/var/textureLoad/1c562a.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureLoad/1c562a.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,48 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  uint4 prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureLoad
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation uint4 VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+Texture3D<uint4> arg_0 : register(t0, space1);
+uint4 textureLoad_1c562a() {
+  uint3 arg_1 = (1u).xxx;
+  uint arg_2 = 1u;
+  Texture3D<uint4> v = arg_0;
+  uint v_1 = arg_2;
+  int3 v_2 = int3(arg_1);
+  uint4 res = uint4(v.Load(int4(v_2, int(v_1))));
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store4(0u, textureLoad_1c562a());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store4(0u, textureLoad_1c562a());
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = textureLoad_1c562a();
+  VertexOutput v_3 = tint_symbol;
+  return v_3;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_4 = vertex_main_inner();
+  VertexOutput v_5 = v_4;
+  VertexOutput v_6 = v_4;
+  vertex_main_outputs v_7 = {v_6.prevent_dce, v_5.pos};
+  return v_7;
+}
+
diff --git a/test/tint/builtins/gen/var/textureLoad/1d43ae.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/textureLoad/1d43ae.wgsl.expected.ir.dxc.hlsl
index fd28383..334e6e8e 100644
--- a/test/tint/builtins/gen/var/textureLoad/1d43ae.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureLoad/1d43ae.wgsl.expected.ir.dxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureLoad
+..\..\src\tint\utils\containers\slice.h:216 internal compiler error: TINT_ASSERT(i < Length())
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/var/textureLoad/1d43ae.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/textureLoad/1d43ae.wgsl.expected.ir.fxc.hlsl
index fd28383..334e6e8e 100644
--- a/test/tint/builtins/gen/var/textureLoad/1d43ae.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureLoad/1d43ae.wgsl.expected.ir.fxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureLoad
+..\..\src\tint\utils\containers\slice.h:216 internal compiler error: TINT_ASSERT(i < Length())
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/var/textureLoad/1e6baa.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/textureLoad/1e6baa.wgsl.expected.ir.dxc.hlsl
index fd28383..334e6e8e 100644
--- a/test/tint/builtins/gen/var/textureLoad/1e6baa.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureLoad/1e6baa.wgsl.expected.ir.dxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureLoad
+..\..\src\tint\utils\containers\slice.h:216 internal compiler error: TINT_ASSERT(i < Length())
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/var/textureLoad/1e6baa.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/textureLoad/1e6baa.wgsl.expected.ir.fxc.hlsl
index fd28383..334e6e8e 100644
--- a/test/tint/builtins/gen/var/textureLoad/1e6baa.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureLoad/1e6baa.wgsl.expected.ir.fxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureLoad
+..\..\src\tint\utils\containers\slice.h:216 internal compiler error: TINT_ASSERT(i < Length())
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/var/textureLoad/1eb93f.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/textureLoad/1eb93f.wgsl.expected.ir.dxc.hlsl
index fd28383..334e6e8e 100644
--- a/test/tint/builtins/gen/var/textureLoad/1eb93f.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureLoad/1eb93f.wgsl.expected.ir.dxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureLoad
+..\..\src\tint\utils\containers\slice.h:216 internal compiler error: TINT_ASSERT(i < Length())
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/var/textureLoad/1eb93f.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/textureLoad/1eb93f.wgsl.expected.ir.fxc.hlsl
index fd28383..334e6e8e 100644
--- a/test/tint/builtins/gen/var/textureLoad/1eb93f.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureLoad/1eb93f.wgsl.expected.ir.fxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureLoad
+..\..\src\tint\utils\containers\slice.h:216 internal compiler error: TINT_ASSERT(i < Length())
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/var/textureLoad/1f2016.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/textureLoad/1f2016.wgsl.expected.ir.dxc.hlsl
index fd28383..f09fac0 100644
--- a/test/tint/builtins/gen/var/textureLoad/1f2016.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureLoad/1f2016.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,48 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  float4 prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureLoad
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation float4 VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+Texture3D<float4> arg_0 : register(t0, space1);
+float4 textureLoad_1f2016() {
+  int3 arg_1 = (1).xxx;
+  int arg_2 = 1;
+  Texture3D<float4> v = arg_0;
+  int v_1 = arg_2;
+  int3 v_2 = int3(arg_1);
+  float4 res = float4(v.Load(int4(v_2, int(v_1))));
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store4(0u, asuint(textureLoad_1f2016()));
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store4(0u, asuint(textureLoad_1f2016()));
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = textureLoad_1f2016();
+  VertexOutput v_3 = tint_symbol;
+  return v_3;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_4 = vertex_main_inner();
+  VertexOutput v_5 = v_4;
+  VertexOutput v_6 = v_4;
+  vertex_main_outputs v_7 = {v_6.prevent_dce, v_5.pos};
+  return v_7;
+}
+
diff --git a/test/tint/builtins/gen/var/textureLoad/1f2016.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/textureLoad/1f2016.wgsl.expected.ir.fxc.hlsl
index fd28383..f09fac0 100644
--- a/test/tint/builtins/gen/var/textureLoad/1f2016.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureLoad/1f2016.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,48 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  float4 prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureLoad
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation float4 VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+Texture3D<float4> arg_0 : register(t0, space1);
+float4 textureLoad_1f2016() {
+  int3 arg_1 = (1).xxx;
+  int arg_2 = 1;
+  Texture3D<float4> v = arg_0;
+  int v_1 = arg_2;
+  int3 v_2 = int3(arg_1);
+  float4 res = float4(v.Load(int4(v_2, int(v_1))));
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store4(0u, asuint(textureLoad_1f2016()));
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store4(0u, asuint(textureLoad_1f2016()));
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = textureLoad_1f2016();
+  VertexOutput v_3 = tint_symbol;
+  return v_3;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_4 = vertex_main_inner();
+  VertexOutput v_5 = v_4;
+  VertexOutput v_6 = v_4;
+  vertex_main_outputs v_7 = {v_6.prevent_dce, v_5.pos};
+  return v_7;
+}
+
diff --git a/test/tint/builtins/gen/var/textureLoad/1fde63.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/textureLoad/1fde63.wgsl.expected.ir.dxc.hlsl
index fd28383..334e6e8e 100644
--- a/test/tint/builtins/gen/var/textureLoad/1fde63.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureLoad/1fde63.wgsl.expected.ir.dxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureLoad
+..\..\src\tint\utils\containers\slice.h:216 internal compiler error: TINT_ASSERT(i < Length())
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/var/textureLoad/1fde63.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/textureLoad/1fde63.wgsl.expected.ir.fxc.hlsl
index fd28383..334e6e8e 100644
--- a/test/tint/builtins/gen/var/textureLoad/1fde63.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureLoad/1fde63.wgsl.expected.ir.fxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureLoad
+..\..\src\tint\utils\containers\slice.h:216 internal compiler error: TINT_ASSERT(i < Length())
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/var/textureLoad/206a08.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/textureLoad/206a08.wgsl.expected.ir.dxc.hlsl
index fd28383..334e6e8e 100644
--- a/test/tint/builtins/gen/var/textureLoad/206a08.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureLoad/206a08.wgsl.expected.ir.dxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureLoad
+..\..\src\tint\utils\containers\slice.h:216 internal compiler error: TINT_ASSERT(i < Length())
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/var/textureLoad/206a08.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/textureLoad/206a08.wgsl.expected.ir.fxc.hlsl
index fd28383..334e6e8e 100644
--- a/test/tint/builtins/gen/var/textureLoad/206a08.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureLoad/206a08.wgsl.expected.ir.fxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureLoad
+..\..\src\tint\utils\containers\slice.h:216 internal compiler error: TINT_ASSERT(i < Length())
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/var/textureLoad/20fa2f.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/textureLoad/20fa2f.wgsl.expected.ir.dxc.hlsl
index fd28383..334e6e8e 100644
--- a/test/tint/builtins/gen/var/textureLoad/20fa2f.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureLoad/20fa2f.wgsl.expected.ir.dxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureLoad
+..\..\src\tint\utils\containers\slice.h:216 internal compiler error: TINT_ASSERT(i < Length())
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/var/textureLoad/20fa2f.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/textureLoad/20fa2f.wgsl.expected.ir.fxc.hlsl
index fd28383..334e6e8e 100644
--- a/test/tint/builtins/gen/var/textureLoad/20fa2f.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureLoad/20fa2f.wgsl.expected.ir.fxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureLoad
+..\..\src\tint\utils\containers\slice.h:216 internal compiler error: TINT_ASSERT(i < Length())
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/var/textureLoad/216c37.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/textureLoad/216c37.wgsl.expected.ir.dxc.hlsl
index fd28383..4b6e6e0 100644
--- a/test/tint/builtins/gen/var/textureLoad/216c37.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureLoad/216c37.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,48 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  uint4 prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureLoad
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation uint4 VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+Texture1D<uint4> arg_0 : register(t0, space1);
+uint4 textureLoad_216c37() {
+  uint arg_1 = 1u;
+  int arg_2 = 1;
+  Texture1D<uint4> v = arg_0;
+  int v_1 = arg_2;
+  int v_2 = int(arg_1);
+  uint4 res = uint4(v.Load(int2(v_2, int(v_1))));
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store4(0u, textureLoad_216c37());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store4(0u, textureLoad_216c37());
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = textureLoad_216c37();
+  VertexOutput v_3 = tint_symbol;
+  return v_3;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_4 = vertex_main_inner();
+  VertexOutput v_5 = v_4;
+  VertexOutput v_6 = v_4;
+  vertex_main_outputs v_7 = {v_6.prevent_dce, v_5.pos};
+  return v_7;
+}
+
diff --git a/test/tint/builtins/gen/var/textureLoad/216c37.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/textureLoad/216c37.wgsl.expected.ir.fxc.hlsl
index fd28383..4b6e6e0 100644
--- a/test/tint/builtins/gen/var/textureLoad/216c37.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureLoad/216c37.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,48 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  uint4 prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureLoad
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation uint4 VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+Texture1D<uint4> arg_0 : register(t0, space1);
+uint4 textureLoad_216c37() {
+  uint arg_1 = 1u;
+  int arg_2 = 1;
+  Texture1D<uint4> v = arg_0;
+  int v_1 = arg_2;
+  int v_2 = int(arg_1);
+  uint4 res = uint4(v.Load(int2(v_2, int(v_1))));
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store4(0u, textureLoad_216c37());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store4(0u, textureLoad_216c37());
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = textureLoad_216c37();
+  VertexOutput v_3 = tint_symbol;
+  return v_3;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_4 = vertex_main_inner();
+  VertexOutput v_5 = v_4;
+  VertexOutput v_6 = v_4;
+  vertex_main_outputs v_7 = {v_6.prevent_dce, v_5.pos};
+  return v_7;
+}
+
diff --git a/test/tint/builtins/gen/var/textureLoad/21d1c4.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/textureLoad/21d1c4.wgsl.expected.ir.dxc.hlsl
index fd28383..ac582b2 100644
--- a/test/tint/builtins/gen/var/textureLoad/21d1c4.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureLoad/21d1c4.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,48 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  float4 prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureLoad
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation float4 VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+Texture3D<float4> arg_0 : register(t0, space1);
+float4 textureLoad_21d1c4() {
+  uint3 arg_1 = (1u).xxx;
+  uint arg_2 = 1u;
+  Texture3D<float4> v = arg_0;
+  uint v_1 = arg_2;
+  int3 v_2 = int3(arg_1);
+  float4 res = float4(v.Load(int4(v_2, int(v_1))));
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store4(0u, asuint(textureLoad_21d1c4()));
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store4(0u, asuint(textureLoad_21d1c4()));
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = textureLoad_21d1c4();
+  VertexOutput v_3 = tint_symbol;
+  return v_3;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_4 = vertex_main_inner();
+  VertexOutput v_5 = v_4;
+  VertexOutput v_6 = v_4;
+  vertex_main_outputs v_7 = {v_6.prevent_dce, v_5.pos};
+  return v_7;
+}
+
diff --git a/test/tint/builtins/gen/var/textureLoad/21d1c4.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/textureLoad/21d1c4.wgsl.expected.ir.fxc.hlsl
index fd28383..ac582b2 100644
--- a/test/tint/builtins/gen/var/textureLoad/21d1c4.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureLoad/21d1c4.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,48 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  float4 prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureLoad
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation float4 VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+Texture3D<float4> arg_0 : register(t0, space1);
+float4 textureLoad_21d1c4() {
+  uint3 arg_1 = (1u).xxx;
+  uint arg_2 = 1u;
+  Texture3D<float4> v = arg_0;
+  uint v_1 = arg_2;
+  int3 v_2 = int3(arg_1);
+  float4 res = float4(v.Load(int4(v_2, int(v_1))));
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store4(0u, asuint(textureLoad_21d1c4()));
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store4(0u, asuint(textureLoad_21d1c4()));
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = textureLoad_21d1c4();
+  VertexOutput v_3 = tint_symbol;
+  return v_3;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_4 = vertex_main_inner();
+  VertexOutput v_5 = v_4;
+  VertexOutput v_6 = v_4;
+  vertex_main_outputs v_7 = {v_6.prevent_dce, v_5.pos};
+  return v_7;
+}
+
diff --git a/test/tint/builtins/gen/var/textureLoad/223246.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/textureLoad/223246.wgsl.expected.ir.dxc.hlsl
index fd28383..c8c5811 100644
--- a/test/tint/builtins/gen/var/textureLoad/223246.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureLoad/223246.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,48 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  int4 prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureLoad
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation int4 VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+Texture3D<int4> arg_0 : register(t0, space1);
+int4 textureLoad_223246() {
+  uint3 arg_1 = (1u).xxx;
+  int arg_2 = 1;
+  Texture3D<int4> v = arg_0;
+  int v_1 = arg_2;
+  int3 v_2 = int3(arg_1);
+  int4 res = int4(v.Load(int4(v_2, int(v_1))));
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store4(0u, asuint(textureLoad_223246()));
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store4(0u, asuint(textureLoad_223246()));
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = textureLoad_223246();
+  VertexOutput v_3 = tint_symbol;
+  return v_3;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_4 = vertex_main_inner();
+  VertexOutput v_5 = v_4;
+  VertexOutput v_6 = v_4;
+  vertex_main_outputs v_7 = {v_6.prevent_dce, v_5.pos};
+  return v_7;
+}
+
diff --git a/test/tint/builtins/gen/var/textureLoad/223246.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/textureLoad/223246.wgsl.expected.ir.fxc.hlsl
index fd28383..c8c5811 100644
--- a/test/tint/builtins/gen/var/textureLoad/223246.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureLoad/223246.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,48 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  int4 prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureLoad
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation int4 VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+Texture3D<int4> arg_0 : register(t0, space1);
+int4 textureLoad_223246() {
+  uint3 arg_1 = (1u).xxx;
+  int arg_2 = 1;
+  Texture3D<int4> v = arg_0;
+  int v_1 = arg_2;
+  int3 v_2 = int3(arg_1);
+  int4 res = int4(v.Load(int4(v_2, int(v_1))));
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store4(0u, asuint(textureLoad_223246()));
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store4(0u, asuint(textureLoad_223246()));
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = textureLoad_223246();
+  VertexOutput v_3 = tint_symbol;
+  return v_3;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_4 = vertex_main_inner();
+  VertexOutput v_5 = v_4;
+  VertexOutput v_6 = v_4;
+  vertex_main_outputs v_7 = {v_6.prevent_dce, v_5.pos};
+  return v_7;
+}
+
diff --git a/test/tint/builtins/gen/var/textureLoad/22e963.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/textureLoad/22e963.wgsl.expected.ir.dxc.hlsl
index fd28383..334e6e8e 100644
--- a/test/tint/builtins/gen/var/textureLoad/22e963.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureLoad/22e963.wgsl.expected.ir.dxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureLoad
+..\..\src\tint\utils\containers\slice.h:216 internal compiler error: TINT_ASSERT(i < Length())
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/var/textureLoad/22e963.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/textureLoad/22e963.wgsl.expected.ir.fxc.hlsl
index fd28383..334e6e8e 100644
--- a/test/tint/builtins/gen/var/textureLoad/22e963.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureLoad/22e963.wgsl.expected.ir.fxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureLoad
+..\..\src\tint\utils\containers\slice.h:216 internal compiler error: TINT_ASSERT(i < Length())
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/var/textureLoad/23007a.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/textureLoad/23007a.wgsl.expected.ir.dxc.hlsl
index fd28383..334e6e8e 100644
--- a/test/tint/builtins/gen/var/textureLoad/23007a.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureLoad/23007a.wgsl.expected.ir.dxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureLoad
+..\..\src\tint\utils\containers\slice.h:216 internal compiler error: TINT_ASSERT(i < Length())
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/var/textureLoad/23007a.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/textureLoad/23007a.wgsl.expected.ir.fxc.hlsl
index fd28383..334e6e8e 100644
--- a/test/tint/builtins/gen/var/textureLoad/23007a.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureLoad/23007a.wgsl.expected.ir.fxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureLoad
+..\..\src\tint\utils\containers\slice.h:216 internal compiler error: TINT_ASSERT(i < Length())
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/var/textureLoad/2363be.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/textureLoad/2363be.wgsl.expected.ir.dxc.hlsl
index fd28383..73126d2 100644
--- a/test/tint/builtins/gen/var/textureLoad/2363be.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureLoad/2363be.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,51 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  int4 prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureLoad
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation int4 VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+Texture2DArray<int4> arg_0 : register(t0, space1);
+int4 textureLoad_2363be() {
+  uint2 arg_1 = (1u).xx;
+  int arg_2 = 1;
+  uint arg_3 = 1u;
+  Texture2DArray<int4> v = arg_0;
+  int v_1 = arg_2;
+  uint v_2 = arg_3;
+  int2 v_3 = int2(arg_1);
+  int v_4 = int(v_1);
+  int4 res = int4(v.Load(int4(v_3, v_4, int(v_2))));
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store4(0u, asuint(textureLoad_2363be()));
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store4(0u, asuint(textureLoad_2363be()));
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = textureLoad_2363be();
+  VertexOutput v_5 = tint_symbol;
+  return v_5;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_6 = vertex_main_inner();
+  VertexOutput v_7 = v_6;
+  VertexOutput v_8 = v_6;
+  vertex_main_outputs v_9 = {v_8.prevent_dce, v_7.pos};
+  return v_9;
+}
+
diff --git a/test/tint/builtins/gen/var/textureLoad/2363be.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/textureLoad/2363be.wgsl.expected.ir.fxc.hlsl
index fd28383..73126d2 100644
--- a/test/tint/builtins/gen/var/textureLoad/2363be.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureLoad/2363be.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,51 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  int4 prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureLoad
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation int4 VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+Texture2DArray<int4> arg_0 : register(t0, space1);
+int4 textureLoad_2363be() {
+  uint2 arg_1 = (1u).xx;
+  int arg_2 = 1;
+  uint arg_3 = 1u;
+  Texture2DArray<int4> v = arg_0;
+  int v_1 = arg_2;
+  uint v_2 = arg_3;
+  int2 v_3 = int2(arg_1);
+  int v_4 = int(v_1);
+  int4 res = int4(v.Load(int4(v_3, v_4, int(v_2))));
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store4(0u, asuint(textureLoad_2363be()));
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store4(0u, asuint(textureLoad_2363be()));
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = textureLoad_2363be();
+  VertexOutput v_5 = tint_symbol;
+  return v_5;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_6 = vertex_main_inner();
+  VertexOutput v_7 = v_6;
+  VertexOutput v_8 = v_6;
+  vertex_main_outputs v_9 = {v_8.prevent_dce, v_7.pos};
+  return v_9;
+}
+
diff --git a/test/tint/builtins/gen/var/textureLoad/23ff89.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/textureLoad/23ff89.wgsl.expected.ir.dxc.hlsl
index fd28383..334e6e8e 100644
--- a/test/tint/builtins/gen/var/textureLoad/23ff89.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureLoad/23ff89.wgsl.expected.ir.dxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureLoad
+..\..\src\tint\utils\containers\slice.h:216 internal compiler error: TINT_ASSERT(i < Length())
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/var/textureLoad/23ff89.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/textureLoad/23ff89.wgsl.expected.ir.fxc.hlsl
index fd28383..334e6e8e 100644
--- a/test/tint/builtins/gen/var/textureLoad/23ff89.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureLoad/23ff89.wgsl.expected.ir.fxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureLoad
+..\..\src\tint\utils\containers\slice.h:216 internal compiler error: TINT_ASSERT(i < Length())
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/var/textureLoad/25b67f.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/textureLoad/25b67f.wgsl.expected.ir.dxc.hlsl
index fd28383..334e6e8e 100644
--- a/test/tint/builtins/gen/var/textureLoad/25b67f.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureLoad/25b67f.wgsl.expected.ir.dxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureLoad
+..\..\src\tint\utils\containers\slice.h:216 internal compiler error: TINT_ASSERT(i < Length())
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/var/textureLoad/25b67f.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/textureLoad/25b67f.wgsl.expected.ir.fxc.hlsl
index fd28383..334e6e8e 100644
--- a/test/tint/builtins/gen/var/textureLoad/25b67f.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureLoad/25b67f.wgsl.expected.ir.fxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureLoad
+..\..\src\tint\utils\containers\slice.h:216 internal compiler error: TINT_ASSERT(i < Length())
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/var/textureLoad/26b8f6.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/textureLoad/26b8f6.wgsl.expected.ir.dxc.hlsl
index fd28383..334e6e8e 100644
--- a/test/tint/builtins/gen/var/textureLoad/26b8f6.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureLoad/26b8f6.wgsl.expected.ir.dxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureLoad
+..\..\src\tint\utils\containers\slice.h:216 internal compiler error: TINT_ASSERT(i < Length())
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/var/textureLoad/26b8f6.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/textureLoad/26b8f6.wgsl.expected.ir.fxc.hlsl
index fd28383..334e6e8e 100644
--- a/test/tint/builtins/gen/var/textureLoad/26b8f6.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureLoad/26b8f6.wgsl.expected.ir.fxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureLoad
+..\..\src\tint\utils\containers\slice.h:216 internal compiler error: TINT_ASSERT(i < Length())
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/var/textureLoad/26c4f8.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/textureLoad/26c4f8.wgsl.expected.ir.dxc.hlsl
index fd28383..334e6e8e 100644
--- a/test/tint/builtins/gen/var/textureLoad/26c4f8.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureLoad/26c4f8.wgsl.expected.ir.dxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureLoad
+..\..\src\tint\utils\containers\slice.h:216 internal compiler error: TINT_ASSERT(i < Length())
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/var/textureLoad/26c4f8.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/textureLoad/26c4f8.wgsl.expected.ir.fxc.hlsl
index fd28383..334e6e8e 100644
--- a/test/tint/builtins/gen/var/textureLoad/26c4f8.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureLoad/26c4f8.wgsl.expected.ir.fxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureLoad
+..\..\src\tint\utils\containers\slice.h:216 internal compiler error: TINT_ASSERT(i < Length())
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/var/textureLoad/26d7f1.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/textureLoad/26d7f1.wgsl.expected.ir.dxc.hlsl
index fd28383..334e6e8e 100644
--- a/test/tint/builtins/gen/var/textureLoad/26d7f1.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureLoad/26d7f1.wgsl.expected.ir.dxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureLoad
+..\..\src\tint\utils\containers\slice.h:216 internal compiler error: TINT_ASSERT(i < Length())
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/var/textureLoad/26d7f1.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/textureLoad/26d7f1.wgsl.expected.ir.fxc.hlsl
index fd28383..334e6e8e 100644
--- a/test/tint/builtins/gen/var/textureLoad/26d7f1.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureLoad/26d7f1.wgsl.expected.ir.fxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureLoad
+..\..\src\tint\utils\containers\slice.h:216 internal compiler error: TINT_ASSERT(i < Length())
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/var/textureLoad/272e7a.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/textureLoad/272e7a.wgsl.expected.ir.dxc.hlsl
index fd28383..334e6e8e 100644
--- a/test/tint/builtins/gen/var/textureLoad/272e7a.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureLoad/272e7a.wgsl.expected.ir.dxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureLoad
+..\..\src\tint\utils\containers\slice.h:216 internal compiler error: TINT_ASSERT(i < Length())
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/var/textureLoad/272e7a.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/textureLoad/272e7a.wgsl.expected.ir.fxc.hlsl
index fd28383..334e6e8e 100644
--- a/test/tint/builtins/gen/var/textureLoad/272e7a.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureLoad/272e7a.wgsl.expected.ir.fxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureLoad
+..\..\src\tint\utils\containers\slice.h:216 internal compiler error: TINT_ASSERT(i < Length())
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/var/textureLoad/276643.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/textureLoad/276643.wgsl.expected.ir.dxc.hlsl
index fd28383..334e6e8e 100644
--- a/test/tint/builtins/gen/var/textureLoad/276643.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureLoad/276643.wgsl.expected.ir.dxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureLoad
+..\..\src\tint\utils\containers\slice.h:216 internal compiler error: TINT_ASSERT(i < Length())
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/var/textureLoad/276643.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/textureLoad/276643.wgsl.expected.ir.fxc.hlsl
index fd28383..334e6e8e 100644
--- a/test/tint/builtins/gen/var/textureLoad/276643.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureLoad/276643.wgsl.expected.ir.fxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureLoad
+..\..\src\tint\utils\containers\slice.h:216 internal compiler error: TINT_ASSERT(i < Length())
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/var/textureLoad/276a2c.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/textureLoad/276a2c.wgsl.expected.ir.dxc.hlsl
index fd28383..334e6e8e 100644
--- a/test/tint/builtins/gen/var/textureLoad/276a2c.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureLoad/276a2c.wgsl.expected.ir.dxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureLoad
+..\..\src\tint\utils\containers\slice.h:216 internal compiler error: TINT_ASSERT(i < Length())
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/var/textureLoad/276a2c.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/textureLoad/276a2c.wgsl.expected.ir.fxc.hlsl
index fd28383..334e6e8e 100644
--- a/test/tint/builtins/gen/var/textureLoad/276a2c.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureLoad/276a2c.wgsl.expected.ir.fxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureLoad
+..\..\src\tint\utils\containers\slice.h:216 internal compiler error: TINT_ASSERT(i < Length())
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/var/textureLoad/2887d7.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/textureLoad/2887d7.wgsl.expected.ir.dxc.hlsl
index fd28383..334e6e8e 100644
--- a/test/tint/builtins/gen/var/textureLoad/2887d7.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureLoad/2887d7.wgsl.expected.ir.dxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureLoad
+..\..\src\tint\utils\containers\slice.h:216 internal compiler error: TINT_ASSERT(i < Length())
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/var/textureLoad/2887d7.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/textureLoad/2887d7.wgsl.expected.ir.fxc.hlsl
index fd28383..334e6e8e 100644
--- a/test/tint/builtins/gen/var/textureLoad/2887d7.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureLoad/2887d7.wgsl.expected.ir.fxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureLoad
+..\..\src\tint\utils\containers\slice.h:216 internal compiler error: TINT_ASSERT(i < Length())
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/var/textureLoad/2a82d9.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/textureLoad/2a82d9.wgsl.expected.ir.dxc.hlsl
index fd28383..334e6e8e 100644
--- a/test/tint/builtins/gen/var/textureLoad/2a82d9.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureLoad/2a82d9.wgsl.expected.ir.dxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureLoad
+..\..\src\tint\utils\containers\slice.h:216 internal compiler error: TINT_ASSERT(i < Length())
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/var/textureLoad/2a82d9.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/textureLoad/2a82d9.wgsl.expected.ir.fxc.hlsl
index fd28383..334e6e8e 100644
--- a/test/tint/builtins/gen/var/textureLoad/2a82d9.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureLoad/2a82d9.wgsl.expected.ir.fxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureLoad
+..\..\src\tint\utils\containers\slice.h:216 internal compiler error: TINT_ASSERT(i < Length())
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/var/textureLoad/2ae485.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/textureLoad/2ae485.wgsl.expected.ir.dxc.hlsl
index fd28383..334e6e8e 100644
--- a/test/tint/builtins/gen/var/textureLoad/2ae485.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureLoad/2ae485.wgsl.expected.ir.dxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureLoad
+..\..\src\tint\utils\containers\slice.h:216 internal compiler error: TINT_ASSERT(i < Length())
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/var/textureLoad/2ae485.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/textureLoad/2ae485.wgsl.expected.ir.fxc.hlsl
index fd28383..334e6e8e 100644
--- a/test/tint/builtins/gen/var/textureLoad/2ae485.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureLoad/2ae485.wgsl.expected.ir.fxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureLoad
+..\..\src\tint\utils\containers\slice.h:216 internal compiler error: TINT_ASSERT(i < Length())
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/var/textureLoad/2c72ae.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/textureLoad/2c72ae.wgsl.expected.ir.dxc.hlsl
index fd28383..334e6e8e 100644
--- a/test/tint/builtins/gen/var/textureLoad/2c72ae.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureLoad/2c72ae.wgsl.expected.ir.dxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureLoad
+..\..\src\tint\utils\containers\slice.h:216 internal compiler error: TINT_ASSERT(i < Length())
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/var/textureLoad/2c72ae.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/textureLoad/2c72ae.wgsl.expected.ir.fxc.hlsl
index fd28383..334e6e8e 100644
--- a/test/tint/builtins/gen/var/textureLoad/2c72ae.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureLoad/2c72ae.wgsl.expected.ir.fxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureLoad
+..\..\src\tint\utils\containers\slice.h:216 internal compiler error: TINT_ASSERT(i < Length())
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/var/textureLoad/2cee30.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/textureLoad/2cee30.wgsl.expected.ir.dxc.hlsl
index fd28383..334e6e8e 100644
--- a/test/tint/builtins/gen/var/textureLoad/2cee30.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureLoad/2cee30.wgsl.expected.ir.dxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureLoad
+..\..\src\tint\utils\containers\slice.h:216 internal compiler error: TINT_ASSERT(i < Length())
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/var/textureLoad/2cee30.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/textureLoad/2cee30.wgsl.expected.ir.fxc.hlsl
index fd28383..334e6e8e 100644
--- a/test/tint/builtins/gen/var/textureLoad/2cee30.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureLoad/2cee30.wgsl.expected.ir.fxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureLoad
+..\..\src\tint\utils\containers\slice.h:216 internal compiler error: TINT_ASSERT(i < Length())
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/var/textureLoad/2d479c.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/textureLoad/2d479c.wgsl.expected.ir.dxc.hlsl
index fd28383..01f891c 100644
--- a/test/tint/builtins/gen/var/textureLoad/2d479c.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureLoad/2d479c.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,48 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  float4 prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureLoad
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation float4 VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+Texture2D<float4> arg_0 : register(t0, space1);
+float4 textureLoad_2d479c() {
+  int2 arg_1 = (1).xx;
+  uint arg_2 = 1u;
+  Texture2D<float4> v = arg_0;
+  uint v_1 = arg_2;
+  int2 v_2 = int2(arg_1);
+  float4 res = float4(v.Load(int3(v_2, int(v_1))));
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store4(0u, asuint(textureLoad_2d479c()));
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store4(0u, asuint(textureLoad_2d479c()));
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = textureLoad_2d479c();
+  VertexOutput v_3 = tint_symbol;
+  return v_3;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_4 = vertex_main_inner();
+  VertexOutput v_5 = v_4;
+  VertexOutput v_6 = v_4;
+  vertex_main_outputs v_7 = {v_6.prevent_dce, v_5.pos};
+  return v_7;
+}
+
diff --git a/test/tint/builtins/gen/var/textureLoad/2d479c.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/textureLoad/2d479c.wgsl.expected.ir.fxc.hlsl
index fd28383..01f891c 100644
--- a/test/tint/builtins/gen/var/textureLoad/2d479c.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureLoad/2d479c.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,48 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  float4 prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureLoad
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation float4 VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+Texture2D<float4> arg_0 : register(t0, space1);
+float4 textureLoad_2d479c() {
+  int2 arg_1 = (1).xx;
+  uint arg_2 = 1u;
+  Texture2D<float4> v = arg_0;
+  uint v_1 = arg_2;
+  int2 v_2 = int2(arg_1);
+  float4 res = float4(v.Load(int3(v_2, int(v_1))));
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store4(0u, asuint(textureLoad_2d479c()));
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store4(0u, asuint(textureLoad_2d479c()));
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = textureLoad_2d479c();
+  VertexOutput v_3 = tint_symbol;
+  return v_3;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_4 = vertex_main_inner();
+  VertexOutput v_5 = v_4;
+  VertexOutput v_6 = v_4;
+  vertex_main_outputs v_7 = {v_6.prevent_dce, v_5.pos};
+  return v_7;
+}
+
diff --git a/test/tint/builtins/gen/var/textureLoad/2d6cf7.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/textureLoad/2d6cf7.wgsl.expected.ir.dxc.hlsl
index fd28383..334e6e8e 100644
--- a/test/tint/builtins/gen/var/textureLoad/2d6cf7.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureLoad/2d6cf7.wgsl.expected.ir.dxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureLoad
+..\..\src\tint\utils\containers\slice.h:216 internal compiler error: TINT_ASSERT(i < Length())
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/var/textureLoad/2d6cf7.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/textureLoad/2d6cf7.wgsl.expected.ir.fxc.hlsl
index fd28383..334e6e8e 100644
--- a/test/tint/builtins/gen/var/textureLoad/2d6cf7.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureLoad/2d6cf7.wgsl.expected.ir.fxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureLoad
+..\..\src\tint\utils\containers\slice.h:216 internal compiler error: TINT_ASSERT(i < Length())
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/var/textureLoad/2dbfc2.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/textureLoad/2dbfc2.wgsl.expected.ir.dxc.hlsl
index fd28383..334e6e8e 100644
--- a/test/tint/builtins/gen/var/textureLoad/2dbfc2.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureLoad/2dbfc2.wgsl.expected.ir.dxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureLoad
+..\..\src\tint\utils\containers\slice.h:216 internal compiler error: TINT_ASSERT(i < Length())
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/var/textureLoad/2dbfc2.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/textureLoad/2dbfc2.wgsl.expected.ir.fxc.hlsl
index fd28383..334e6e8e 100644
--- a/test/tint/builtins/gen/var/textureLoad/2dbfc2.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureLoad/2dbfc2.wgsl.expected.ir.fxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureLoad
+..\..\src\tint\utils\containers\slice.h:216 internal compiler error: TINT_ASSERT(i < Length())
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/var/textureLoad/2e09aa.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/textureLoad/2e09aa.wgsl.expected.ir.dxc.hlsl
index fd28383..6cee6c4 100644
--- a/test/tint/builtins/gen/var/textureLoad/2e09aa.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureLoad/2e09aa.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,48 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  float4 prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureLoad
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation float4 VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+Texture2DMS<float4> arg_0 : register(t0, space1);
+float4 textureLoad_2e09aa() {
+  uint2 arg_1 = (1u).xx;
+  uint arg_2 = 1u;
+  Texture2DMS<float4> v = arg_0;
+  uint v_1 = arg_2;
+  int2 v_2 = int2(arg_1);
+  float4 res = float4(v.Load(v_2, int(v_1)));
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store4(0u, asuint(textureLoad_2e09aa()));
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store4(0u, asuint(textureLoad_2e09aa()));
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = textureLoad_2e09aa();
+  VertexOutput v_3 = tint_symbol;
+  return v_3;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_4 = vertex_main_inner();
+  VertexOutput v_5 = v_4;
+  VertexOutput v_6 = v_4;
+  vertex_main_outputs v_7 = {v_6.prevent_dce, v_5.pos};
+  return v_7;
+}
+
diff --git a/test/tint/builtins/gen/var/textureLoad/2e09aa.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/textureLoad/2e09aa.wgsl.expected.ir.fxc.hlsl
index fd28383..6cee6c4 100644
--- a/test/tint/builtins/gen/var/textureLoad/2e09aa.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureLoad/2e09aa.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,48 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  float4 prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureLoad
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation float4 VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+Texture2DMS<float4> arg_0 : register(t0, space1);
+float4 textureLoad_2e09aa() {
+  uint2 arg_1 = (1u).xx;
+  uint arg_2 = 1u;
+  Texture2DMS<float4> v = arg_0;
+  uint v_1 = arg_2;
+  int2 v_2 = int2(arg_1);
+  float4 res = float4(v.Load(v_2, int(v_1)));
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store4(0u, asuint(textureLoad_2e09aa()));
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store4(0u, asuint(textureLoad_2e09aa()));
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = textureLoad_2e09aa();
+  VertexOutput v_3 = tint_symbol;
+  return v_3;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_4 = vertex_main_inner();
+  VertexOutput v_5 = v_4;
+  VertexOutput v_6 = v_4;
+  vertex_main_outputs v_7 = {v_6.prevent_dce, v_5.pos};
+  return v_7;
+}
+
diff --git a/test/tint/builtins/gen/var/textureLoad/2e3552.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/textureLoad/2e3552.wgsl.expected.ir.dxc.hlsl
index fd28383..334e6e8e 100644
--- a/test/tint/builtins/gen/var/textureLoad/2e3552.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureLoad/2e3552.wgsl.expected.ir.dxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureLoad
+..\..\src\tint\utils\containers\slice.h:216 internal compiler error: TINT_ASSERT(i < Length())
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/var/textureLoad/2e3552.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/textureLoad/2e3552.wgsl.expected.ir.fxc.hlsl
index fd28383..334e6e8e 100644
--- a/test/tint/builtins/gen/var/textureLoad/2e3552.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureLoad/2e3552.wgsl.expected.ir.fxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureLoad
+..\..\src\tint\utils\containers\slice.h:216 internal compiler error: TINT_ASSERT(i < Length())
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/var/textureLoad/2eaf31.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/textureLoad/2eaf31.wgsl.expected.ir.dxc.hlsl
index fd28383..334e6e8e 100644
--- a/test/tint/builtins/gen/var/textureLoad/2eaf31.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureLoad/2eaf31.wgsl.expected.ir.dxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureLoad
+..\..\src\tint\utils\containers\slice.h:216 internal compiler error: TINT_ASSERT(i < Length())
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/var/textureLoad/2eaf31.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/textureLoad/2eaf31.wgsl.expected.ir.fxc.hlsl
index fd28383..334e6e8e 100644
--- a/test/tint/builtins/gen/var/textureLoad/2eaf31.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureLoad/2eaf31.wgsl.expected.ir.fxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureLoad
+..\..\src\tint\utils\containers\slice.h:216 internal compiler error: TINT_ASSERT(i < Length())
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/var/textureLoad/313c73.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/textureLoad/313c73.wgsl.expected.ir.dxc.hlsl
index fd28383..334e6e8e 100644
--- a/test/tint/builtins/gen/var/textureLoad/313c73.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureLoad/313c73.wgsl.expected.ir.dxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureLoad
+..\..\src\tint\utils\containers\slice.h:216 internal compiler error: TINT_ASSERT(i < Length())
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/var/textureLoad/313c73.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/textureLoad/313c73.wgsl.expected.ir.fxc.hlsl
index fd28383..334e6e8e 100644
--- a/test/tint/builtins/gen/var/textureLoad/313c73.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureLoad/313c73.wgsl.expected.ir.fxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureLoad
+..\..\src\tint\utils\containers\slice.h:216 internal compiler error: TINT_ASSERT(i < Length())
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/var/textureLoad/31db4b.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/textureLoad/31db4b.wgsl.expected.ir.dxc.hlsl
index fd28383..334e6e8e 100644
--- a/test/tint/builtins/gen/var/textureLoad/31db4b.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureLoad/31db4b.wgsl.expected.ir.dxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureLoad
+..\..\src\tint\utils\containers\slice.h:216 internal compiler error: TINT_ASSERT(i < Length())
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/var/textureLoad/31db4b.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/textureLoad/31db4b.wgsl.expected.ir.fxc.hlsl
index fd28383..334e6e8e 100644
--- a/test/tint/builtins/gen/var/textureLoad/31db4b.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureLoad/31db4b.wgsl.expected.ir.fxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureLoad
+..\..\src\tint\utils\containers\slice.h:216 internal compiler error: TINT_ASSERT(i < Length())
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/var/textureLoad/321210.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/textureLoad/321210.wgsl.expected.ir.dxc.hlsl
index fd28383..334e6e8e 100644
--- a/test/tint/builtins/gen/var/textureLoad/321210.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureLoad/321210.wgsl.expected.ir.dxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureLoad
+..\..\src\tint\utils\containers\slice.h:216 internal compiler error: TINT_ASSERT(i < Length())
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/var/textureLoad/321210.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/textureLoad/321210.wgsl.expected.ir.fxc.hlsl
index fd28383..334e6e8e 100644
--- a/test/tint/builtins/gen/var/textureLoad/321210.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureLoad/321210.wgsl.expected.ir.fxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureLoad
+..\..\src\tint\utils\containers\slice.h:216 internal compiler error: TINT_ASSERT(i < Length())
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/var/textureLoad/32a7b8.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/textureLoad/32a7b8.wgsl.expected.ir.dxc.hlsl
index fd28383..334e6e8e 100644
--- a/test/tint/builtins/gen/var/textureLoad/32a7b8.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureLoad/32a7b8.wgsl.expected.ir.dxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureLoad
+..\..\src\tint\utils\containers\slice.h:216 internal compiler error: TINT_ASSERT(i < Length())
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/var/textureLoad/32a7b8.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/textureLoad/32a7b8.wgsl.expected.ir.fxc.hlsl
index fd28383..334e6e8e 100644
--- a/test/tint/builtins/gen/var/textureLoad/32a7b8.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureLoad/32a7b8.wgsl.expected.ir.fxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureLoad
+..\..\src\tint\utils\containers\slice.h:216 internal compiler error: TINT_ASSERT(i < Length())
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/var/textureLoad/33d3aa.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/textureLoad/33d3aa.wgsl.expected.ir.dxc.hlsl
index fd28383..334e6e8e 100644
--- a/test/tint/builtins/gen/var/textureLoad/33d3aa.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureLoad/33d3aa.wgsl.expected.ir.dxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureLoad
+..\..\src\tint\utils\containers\slice.h:216 internal compiler error: TINT_ASSERT(i < Length())
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/var/textureLoad/33d3aa.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/textureLoad/33d3aa.wgsl.expected.ir.fxc.hlsl
index fd28383..334e6e8e 100644
--- a/test/tint/builtins/gen/var/textureLoad/33d3aa.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureLoad/33d3aa.wgsl.expected.ir.fxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureLoad
+..\..\src\tint\utils\containers\slice.h:216 internal compiler error: TINT_ASSERT(i < Length())
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/var/textureLoad/348827.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/textureLoad/348827.wgsl.expected.ir.dxc.hlsl
index fd28383..334e6e8e 100644
--- a/test/tint/builtins/gen/var/textureLoad/348827.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureLoad/348827.wgsl.expected.ir.dxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureLoad
+..\..\src\tint\utils\containers\slice.h:216 internal compiler error: TINT_ASSERT(i < Length())
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/var/textureLoad/348827.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/textureLoad/348827.wgsl.expected.ir.fxc.hlsl
index fd28383..334e6e8e 100644
--- a/test/tint/builtins/gen/var/textureLoad/348827.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureLoad/348827.wgsl.expected.ir.fxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureLoad
+..\..\src\tint\utils\containers\slice.h:216 internal compiler error: TINT_ASSERT(i < Length())
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/var/textureLoad/34d97c.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/textureLoad/34d97c.wgsl.expected.ir.dxc.hlsl
index fd28383..334e6e8e 100644
--- a/test/tint/builtins/gen/var/textureLoad/34d97c.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureLoad/34d97c.wgsl.expected.ir.dxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureLoad
+..\..\src\tint\utils\containers\slice.h:216 internal compiler error: TINT_ASSERT(i < Length())
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/var/textureLoad/34d97c.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/textureLoad/34d97c.wgsl.expected.ir.fxc.hlsl
index fd28383..334e6e8e 100644
--- a/test/tint/builtins/gen/var/textureLoad/34d97c.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureLoad/34d97c.wgsl.expected.ir.fxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureLoad
+..\..\src\tint\utils\containers\slice.h:216 internal compiler error: TINT_ASSERT(i < Length())
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/var/textureLoad/35a5e2.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/textureLoad/35a5e2.wgsl.expected.ir.dxc.hlsl
index fd28383..334e6e8e 100644
--- a/test/tint/builtins/gen/var/textureLoad/35a5e2.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureLoad/35a5e2.wgsl.expected.ir.dxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureLoad
+..\..\src\tint\utils\containers\slice.h:216 internal compiler error: TINT_ASSERT(i < Length())
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/var/textureLoad/35a5e2.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/textureLoad/35a5e2.wgsl.expected.ir.fxc.hlsl
index fd28383..334e6e8e 100644
--- a/test/tint/builtins/gen/var/textureLoad/35a5e2.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureLoad/35a5e2.wgsl.expected.ir.fxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureLoad
+..\..\src\tint\utils\containers\slice.h:216 internal compiler error: TINT_ASSERT(i < Length())
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/var/textureLoad/35d464.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/textureLoad/35d464.wgsl.expected.ir.dxc.hlsl
index fd28383..334e6e8e 100644
--- a/test/tint/builtins/gen/var/textureLoad/35d464.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureLoad/35d464.wgsl.expected.ir.dxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureLoad
+..\..\src\tint\utils\containers\slice.h:216 internal compiler error: TINT_ASSERT(i < Length())
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/var/textureLoad/35d464.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/textureLoad/35d464.wgsl.expected.ir.fxc.hlsl
index fd28383..334e6e8e 100644
--- a/test/tint/builtins/gen/var/textureLoad/35d464.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureLoad/35d464.wgsl.expected.ir.fxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureLoad
+..\..\src\tint\utils\containers\slice.h:216 internal compiler error: TINT_ASSERT(i < Length())
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/var/textureLoad/374351.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/textureLoad/374351.wgsl.expected.ir.dxc.hlsl
index fd28383..334e6e8e 100644
--- a/test/tint/builtins/gen/var/textureLoad/374351.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureLoad/374351.wgsl.expected.ir.dxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureLoad
+..\..\src\tint\utils\containers\slice.h:216 internal compiler error: TINT_ASSERT(i < Length())
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/var/textureLoad/374351.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/textureLoad/374351.wgsl.expected.ir.fxc.hlsl
index fd28383..334e6e8e 100644
--- a/test/tint/builtins/gen/var/textureLoad/374351.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureLoad/374351.wgsl.expected.ir.fxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureLoad
+..\..\src\tint\utils\containers\slice.h:216 internal compiler error: TINT_ASSERT(i < Length())
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/var/textureLoad/388688.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/textureLoad/388688.wgsl.expected.ir.dxc.hlsl
index fd28383..334e6e8e 100644
--- a/test/tint/builtins/gen/var/textureLoad/388688.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureLoad/388688.wgsl.expected.ir.dxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureLoad
+..\..\src\tint\utils\containers\slice.h:216 internal compiler error: TINT_ASSERT(i < Length())
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/var/textureLoad/388688.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/textureLoad/388688.wgsl.expected.ir.fxc.hlsl
index fd28383..334e6e8e 100644
--- a/test/tint/builtins/gen/var/textureLoad/388688.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureLoad/388688.wgsl.expected.ir.fxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureLoad
+..\..\src\tint\utils\containers\slice.h:216 internal compiler error: TINT_ASSERT(i < Length())
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/var/textureLoad/38f8ab.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/textureLoad/38f8ab.wgsl.expected.ir.dxc.hlsl
index fd28383..94d99b1 100644
--- a/test/tint/builtins/gen/var/textureLoad/38f8ab.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureLoad/38f8ab.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,48 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  int4 prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureLoad
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation int4 VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+Texture2DMS<int4> arg_0 : register(t0, space1);
+int4 textureLoad_38f8ab() {
+  int2 arg_1 = (1).xx;
+  uint arg_2 = 1u;
+  Texture2DMS<int4> v = arg_0;
+  uint v_1 = arg_2;
+  int2 v_2 = int2(arg_1);
+  int4 res = int4(v.Load(v_2, int(v_1)));
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store4(0u, asuint(textureLoad_38f8ab()));
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store4(0u, asuint(textureLoad_38f8ab()));
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = textureLoad_38f8ab();
+  VertexOutput v_3 = tint_symbol;
+  return v_3;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_4 = vertex_main_inner();
+  VertexOutput v_5 = v_4;
+  VertexOutput v_6 = v_4;
+  vertex_main_outputs v_7 = {v_6.prevent_dce, v_5.pos};
+  return v_7;
+}
+
diff --git a/test/tint/builtins/gen/var/textureLoad/38f8ab.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/textureLoad/38f8ab.wgsl.expected.ir.fxc.hlsl
index fd28383..94d99b1 100644
--- a/test/tint/builtins/gen/var/textureLoad/38f8ab.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureLoad/38f8ab.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,48 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  int4 prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureLoad
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation int4 VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+Texture2DMS<int4> arg_0 : register(t0, space1);
+int4 textureLoad_38f8ab() {
+  int2 arg_1 = (1).xx;
+  uint arg_2 = 1u;
+  Texture2DMS<int4> v = arg_0;
+  uint v_1 = arg_2;
+  int2 v_2 = int2(arg_1);
+  int4 res = int4(v.Load(v_2, int(v_1)));
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store4(0u, asuint(textureLoad_38f8ab()));
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store4(0u, asuint(textureLoad_38f8ab()));
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = textureLoad_38f8ab();
+  VertexOutput v_3 = tint_symbol;
+  return v_3;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_4 = vertex_main_inner();
+  VertexOutput v_5 = v_4;
+  VertexOutput v_6 = v_4;
+  vertex_main_outputs v_7 = {v_6.prevent_dce, v_5.pos};
+  return v_7;
+}
+
diff --git a/test/tint/builtins/gen/var/textureLoad/39016c.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/textureLoad/39016c.wgsl.expected.ir.dxc.hlsl
index fd28383..334e6e8e 100644
--- a/test/tint/builtins/gen/var/textureLoad/39016c.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureLoad/39016c.wgsl.expected.ir.dxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureLoad
+..\..\src\tint\utils\containers\slice.h:216 internal compiler error: TINT_ASSERT(i < Length())
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/var/textureLoad/39016c.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/textureLoad/39016c.wgsl.expected.ir.fxc.hlsl
index fd28383..334e6e8e 100644
--- a/test/tint/builtins/gen/var/textureLoad/39016c.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureLoad/39016c.wgsl.expected.ir.fxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureLoad
+..\..\src\tint\utils\containers\slice.h:216 internal compiler error: TINT_ASSERT(i < Length())
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/var/textureLoad/395447.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/textureLoad/395447.wgsl.expected.ir.dxc.hlsl
index fd28383..334e6e8e 100644
--- a/test/tint/builtins/gen/var/textureLoad/395447.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureLoad/395447.wgsl.expected.ir.dxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureLoad
+..\..\src\tint\utils\containers\slice.h:216 internal compiler error: TINT_ASSERT(i < Length())
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/var/textureLoad/395447.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/textureLoad/395447.wgsl.expected.ir.fxc.hlsl
index fd28383..334e6e8e 100644
--- a/test/tint/builtins/gen/var/textureLoad/395447.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureLoad/395447.wgsl.expected.ir.fxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureLoad
+..\..\src\tint\utils\containers\slice.h:216 internal compiler error: TINT_ASSERT(i < Length())
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/var/textureLoad/39ef40.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/textureLoad/39ef40.wgsl.expected.ir.dxc.hlsl
index fd28383..334e6e8e 100644
--- a/test/tint/builtins/gen/var/textureLoad/39ef40.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureLoad/39ef40.wgsl.expected.ir.dxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureLoad
+..\..\src\tint\utils\containers\slice.h:216 internal compiler error: TINT_ASSERT(i < Length())
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/var/textureLoad/39ef40.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/textureLoad/39ef40.wgsl.expected.ir.fxc.hlsl
index fd28383..334e6e8e 100644
--- a/test/tint/builtins/gen/var/textureLoad/39ef40.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureLoad/39ef40.wgsl.expected.ir.fxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureLoad
+..\..\src\tint\utils\containers\slice.h:216 internal compiler error: TINT_ASSERT(i < Length())
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/var/textureLoad/3a2350.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/textureLoad/3a2350.wgsl.expected.ir.dxc.hlsl
index fd28383..334e6e8e 100644
--- a/test/tint/builtins/gen/var/textureLoad/3a2350.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureLoad/3a2350.wgsl.expected.ir.dxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureLoad
+..\..\src\tint\utils\containers\slice.h:216 internal compiler error: TINT_ASSERT(i < Length())
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/var/textureLoad/3a2350.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/textureLoad/3a2350.wgsl.expected.ir.fxc.hlsl
index fd28383..334e6e8e 100644
--- a/test/tint/builtins/gen/var/textureLoad/3a2350.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureLoad/3a2350.wgsl.expected.ir.fxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureLoad
+..\..\src\tint\utils\containers\slice.h:216 internal compiler error: TINT_ASSERT(i < Length())
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/var/textureLoad/3aea13.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/textureLoad/3aea13.wgsl.expected.ir.dxc.hlsl
index fd28383..334e6e8e 100644
--- a/test/tint/builtins/gen/var/textureLoad/3aea13.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureLoad/3aea13.wgsl.expected.ir.dxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureLoad
+..\..\src\tint\utils\containers\slice.h:216 internal compiler error: TINT_ASSERT(i < Length())
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/var/textureLoad/3aea13.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/textureLoad/3aea13.wgsl.expected.ir.fxc.hlsl
index fd28383..334e6e8e 100644
--- a/test/tint/builtins/gen/var/textureLoad/3aea13.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureLoad/3aea13.wgsl.expected.ir.fxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureLoad
+..\..\src\tint\utils\containers\slice.h:216 internal compiler error: TINT_ASSERT(i < Length())
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/var/textureLoad/3bbc2b.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/textureLoad/3bbc2b.wgsl.expected.ir.dxc.hlsl
index fd28383..334e6e8e 100644
--- a/test/tint/builtins/gen/var/textureLoad/3bbc2b.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureLoad/3bbc2b.wgsl.expected.ir.dxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureLoad
+..\..\src\tint\utils\containers\slice.h:216 internal compiler error: TINT_ASSERT(i < Length())
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/var/textureLoad/3bbc2b.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/textureLoad/3bbc2b.wgsl.expected.ir.fxc.hlsl
index fd28383..334e6e8e 100644
--- a/test/tint/builtins/gen/var/textureLoad/3bbc2b.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureLoad/3bbc2b.wgsl.expected.ir.fxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureLoad
+..\..\src\tint\utils\containers\slice.h:216 internal compiler error: TINT_ASSERT(i < Length())
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/var/textureLoad/3c0d9e.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/textureLoad/3c0d9e.wgsl.expected.ir.dxc.hlsl
index fd28383..334e6e8e 100644
--- a/test/tint/builtins/gen/var/textureLoad/3c0d9e.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureLoad/3c0d9e.wgsl.expected.ir.dxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureLoad
+..\..\src\tint\utils\containers\slice.h:216 internal compiler error: TINT_ASSERT(i < Length())
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/var/textureLoad/3c0d9e.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/textureLoad/3c0d9e.wgsl.expected.ir.fxc.hlsl
index fd28383..334e6e8e 100644
--- a/test/tint/builtins/gen/var/textureLoad/3c0d9e.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureLoad/3c0d9e.wgsl.expected.ir.fxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureLoad
+..\..\src\tint\utils\containers\slice.h:216 internal compiler error: TINT_ASSERT(i < Length())
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/var/textureLoad/3c9587.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/textureLoad/3c9587.wgsl.expected.ir.dxc.hlsl
index fd28383..334e6e8e 100644
--- a/test/tint/builtins/gen/var/textureLoad/3c9587.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureLoad/3c9587.wgsl.expected.ir.dxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureLoad
+..\..\src\tint\utils\containers\slice.h:216 internal compiler error: TINT_ASSERT(i < Length())
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/var/textureLoad/3c9587.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/textureLoad/3c9587.wgsl.expected.ir.fxc.hlsl
index fd28383..334e6e8e 100644
--- a/test/tint/builtins/gen/var/textureLoad/3c9587.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureLoad/3c9587.wgsl.expected.ir.fxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureLoad
+..\..\src\tint\utils\containers\slice.h:216 internal compiler error: TINT_ASSERT(i < Length())
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/var/textureLoad/3c96e8.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/textureLoad/3c96e8.wgsl.expected.ir.dxc.hlsl
index fd28383..74ef705 100644
--- a/test/tint/builtins/gen/var/textureLoad/3c96e8.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureLoad/3c96e8.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,51 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  float4 prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureLoad
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation float4 VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+Texture2DArray<float4> arg_0 : register(t0, space1);
+float4 textureLoad_3c96e8() {
+  int2 arg_1 = (1).xx;
+  uint arg_2 = 1u;
+  uint arg_3 = 1u;
+  Texture2DArray<float4> v = arg_0;
+  uint v_1 = arg_2;
+  uint v_2 = arg_3;
+  int2 v_3 = int2(arg_1);
+  int v_4 = int(v_1);
+  float4 res = float4(v.Load(int4(v_3, v_4, int(v_2))));
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store4(0u, asuint(textureLoad_3c96e8()));
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store4(0u, asuint(textureLoad_3c96e8()));
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = textureLoad_3c96e8();
+  VertexOutput v_5 = tint_symbol;
+  return v_5;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_6 = vertex_main_inner();
+  VertexOutput v_7 = v_6;
+  VertexOutput v_8 = v_6;
+  vertex_main_outputs v_9 = {v_8.prevent_dce, v_7.pos};
+  return v_9;
+}
+
diff --git a/test/tint/builtins/gen/var/textureLoad/3c96e8.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/textureLoad/3c96e8.wgsl.expected.ir.fxc.hlsl
index fd28383..74ef705 100644
--- a/test/tint/builtins/gen/var/textureLoad/3c96e8.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureLoad/3c96e8.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,51 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  float4 prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureLoad
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation float4 VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+Texture2DArray<float4> arg_0 : register(t0, space1);
+float4 textureLoad_3c96e8() {
+  int2 arg_1 = (1).xx;
+  uint arg_2 = 1u;
+  uint arg_3 = 1u;
+  Texture2DArray<float4> v = arg_0;
+  uint v_1 = arg_2;
+  uint v_2 = arg_3;
+  int2 v_3 = int2(arg_1);
+  int v_4 = int(v_1);
+  float4 res = float4(v.Load(int4(v_3, v_4, int(v_2))));
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store4(0u, asuint(textureLoad_3c96e8()));
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store4(0u, asuint(textureLoad_3c96e8()));
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = textureLoad_3c96e8();
+  VertexOutput v_5 = tint_symbol;
+  return v_5;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_6 = vertex_main_inner();
+  VertexOutput v_7 = v_6;
+  VertexOutput v_8 = v_6;
+  vertex_main_outputs v_9 = {v_8.prevent_dce, v_7.pos};
+  return v_9;
+}
+
diff --git a/test/tint/builtins/gen/var/textureLoad/3cfb9c.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/textureLoad/3cfb9c.wgsl.expected.ir.dxc.hlsl
index fd28383..334e6e8e 100644
--- a/test/tint/builtins/gen/var/textureLoad/3cfb9c.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureLoad/3cfb9c.wgsl.expected.ir.dxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureLoad
+..\..\src\tint\utils\containers\slice.h:216 internal compiler error: TINT_ASSERT(i < Length())
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/var/textureLoad/3cfb9c.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/textureLoad/3cfb9c.wgsl.expected.ir.fxc.hlsl
index fd28383..334e6e8e 100644
--- a/test/tint/builtins/gen/var/textureLoad/3cfb9c.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureLoad/3cfb9c.wgsl.expected.ir.fxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureLoad
+..\..\src\tint\utils\containers\slice.h:216 internal compiler error: TINT_ASSERT(i < Length())
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/var/textureLoad/3d001b.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/textureLoad/3d001b.wgsl.expected.ir.dxc.hlsl
index fd28383..334e6e8e 100644
--- a/test/tint/builtins/gen/var/textureLoad/3d001b.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureLoad/3d001b.wgsl.expected.ir.dxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureLoad
+..\..\src\tint\utils\containers\slice.h:216 internal compiler error: TINT_ASSERT(i < Length())
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/var/textureLoad/3d001b.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/textureLoad/3d001b.wgsl.expected.ir.fxc.hlsl
index fd28383..334e6e8e 100644
--- a/test/tint/builtins/gen/var/textureLoad/3d001b.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureLoad/3d001b.wgsl.expected.ir.fxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureLoad
+..\..\src\tint\utils\containers\slice.h:216 internal compiler error: TINT_ASSERT(i < Length())
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/var/textureLoad/3d3fd1.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/textureLoad/3d3fd1.wgsl.expected.ir.dxc.hlsl
index fd28383..ce55500 100644
--- a/test/tint/builtins/gen/var/textureLoad/3d3fd1.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureLoad/3d3fd1.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,51 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  int4 prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureLoad
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation int4 VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+Texture2DArray<int4> arg_0 : register(t0, space1);
+int4 textureLoad_3d3fd1() {
+  uint2 arg_1 = (1u).xx;
+  uint arg_2 = 1u;
+  int arg_3 = 1;
+  Texture2DArray<int4> v = arg_0;
+  uint v_1 = arg_2;
+  int v_2 = arg_3;
+  int2 v_3 = int2(arg_1);
+  int v_4 = int(v_1);
+  int4 res = int4(v.Load(int4(v_3, v_4, int(v_2))));
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store4(0u, asuint(textureLoad_3d3fd1()));
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store4(0u, asuint(textureLoad_3d3fd1()));
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = textureLoad_3d3fd1();
+  VertexOutput v_5 = tint_symbol;
+  return v_5;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_6 = vertex_main_inner();
+  VertexOutput v_7 = v_6;
+  VertexOutput v_8 = v_6;
+  vertex_main_outputs v_9 = {v_8.prevent_dce, v_7.pos};
+  return v_9;
+}
+
diff --git a/test/tint/builtins/gen/var/textureLoad/3d3fd1.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/textureLoad/3d3fd1.wgsl.expected.ir.fxc.hlsl
index fd28383..ce55500 100644
--- a/test/tint/builtins/gen/var/textureLoad/3d3fd1.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureLoad/3d3fd1.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,51 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  int4 prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureLoad
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation int4 VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+Texture2DArray<int4> arg_0 : register(t0, space1);
+int4 textureLoad_3d3fd1() {
+  uint2 arg_1 = (1u).xx;
+  uint arg_2 = 1u;
+  int arg_3 = 1;
+  Texture2DArray<int4> v = arg_0;
+  uint v_1 = arg_2;
+  int v_2 = arg_3;
+  int2 v_3 = int2(arg_1);
+  int v_4 = int(v_1);
+  int4 res = int4(v.Load(int4(v_3, v_4, int(v_2))));
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store4(0u, asuint(textureLoad_3d3fd1()));
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store4(0u, asuint(textureLoad_3d3fd1()));
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = textureLoad_3d3fd1();
+  VertexOutput v_5 = tint_symbol;
+  return v_5;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_6 = vertex_main_inner();
+  VertexOutput v_7 = v_6;
+  VertexOutput v_8 = v_6;
+  vertex_main_outputs v_9 = {v_8.prevent_dce, v_7.pos};
+  return v_9;
+}
+
diff --git a/test/tint/builtins/gen/var/textureLoad/3d9c90.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/textureLoad/3d9c90.wgsl.expected.ir.dxc.hlsl
index fd28383..334e6e8e 100644
--- a/test/tint/builtins/gen/var/textureLoad/3d9c90.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureLoad/3d9c90.wgsl.expected.ir.dxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureLoad
+..\..\src\tint\utils\containers\slice.h:216 internal compiler error: TINT_ASSERT(i < Length())
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/var/textureLoad/3d9c90.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/textureLoad/3d9c90.wgsl.expected.ir.fxc.hlsl
index fd28383..334e6e8e 100644
--- a/test/tint/builtins/gen/var/textureLoad/3d9c90.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureLoad/3d9c90.wgsl.expected.ir.fxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureLoad
+..\..\src\tint\utils\containers\slice.h:216 internal compiler error: TINT_ASSERT(i < Length())
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/var/textureLoad/3da3ed.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/textureLoad/3da3ed.wgsl.expected.ir.dxc.hlsl
index fd28383..199d212 100644
--- a/test/tint/builtins/gen/var/textureLoad/3da3ed.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureLoad/3da3ed.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,48 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  float4 prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureLoad
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation float4 VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+Texture1D<float4> arg_0 : register(t0, space1);
+float4 textureLoad_3da3ed() {
+  int arg_1 = 1;
+  uint arg_2 = 1u;
+  Texture1D<float4> v = arg_0;
+  uint v_1 = arg_2;
+  int v_2 = int(arg_1);
+  float4 res = float4(v.Load(int2(v_2, int(v_1))));
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store4(0u, asuint(textureLoad_3da3ed()));
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store4(0u, asuint(textureLoad_3da3ed()));
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = textureLoad_3da3ed();
+  VertexOutput v_3 = tint_symbol;
+  return v_3;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_4 = vertex_main_inner();
+  VertexOutput v_5 = v_4;
+  VertexOutput v_6 = v_4;
+  vertex_main_outputs v_7 = {v_6.prevent_dce, v_5.pos};
+  return v_7;
+}
+
diff --git a/test/tint/builtins/gen/var/textureLoad/3da3ed.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/textureLoad/3da3ed.wgsl.expected.ir.fxc.hlsl
index fd28383..199d212 100644
--- a/test/tint/builtins/gen/var/textureLoad/3da3ed.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureLoad/3da3ed.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,48 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  float4 prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureLoad
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation float4 VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+Texture1D<float4> arg_0 : register(t0, space1);
+float4 textureLoad_3da3ed() {
+  int arg_1 = 1;
+  uint arg_2 = 1u;
+  Texture1D<float4> v = arg_0;
+  uint v_1 = arg_2;
+  int v_2 = int(arg_1);
+  float4 res = float4(v.Load(int2(v_2, int(v_1))));
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store4(0u, asuint(textureLoad_3da3ed()));
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store4(0u, asuint(textureLoad_3da3ed()));
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = textureLoad_3da3ed();
+  VertexOutput v_3 = tint_symbol;
+  return v_3;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_4 = vertex_main_inner();
+  VertexOutput v_5 = v_4;
+  VertexOutput v_6 = v_4;
+  vertex_main_outputs v_7 = {v_6.prevent_dce, v_5.pos};
+  return v_7;
+}
+
diff --git a/test/tint/builtins/gen/var/textureLoad/3e16a8.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/textureLoad/3e16a8.wgsl.expected.ir.dxc.hlsl
index fd28383..334e6e8e 100644
--- a/test/tint/builtins/gen/var/textureLoad/3e16a8.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureLoad/3e16a8.wgsl.expected.ir.dxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureLoad
+..\..\src\tint\utils\containers\slice.h:216 internal compiler error: TINT_ASSERT(i < Length())
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/var/textureLoad/3e16a8.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/textureLoad/3e16a8.wgsl.expected.ir.fxc.hlsl
index fd28383..334e6e8e 100644
--- a/test/tint/builtins/gen/var/textureLoad/3e16a8.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureLoad/3e16a8.wgsl.expected.ir.fxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureLoad
+..\..\src\tint\utils\containers\slice.h:216 internal compiler error: TINT_ASSERT(i < Length())
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/var/textureLoad/3e5f6a.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/textureLoad/3e5f6a.wgsl.expected.ir.dxc.hlsl
index fd28383..334e6e8e 100644
--- a/test/tint/builtins/gen/var/textureLoad/3e5f6a.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureLoad/3e5f6a.wgsl.expected.ir.dxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureLoad
+..\..\src\tint\utils\containers\slice.h:216 internal compiler error: TINT_ASSERT(i < Length())
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/var/textureLoad/3e5f6a.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/textureLoad/3e5f6a.wgsl.expected.ir.fxc.hlsl
index fd28383..334e6e8e 100644
--- a/test/tint/builtins/gen/var/textureLoad/3e5f6a.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureLoad/3e5f6a.wgsl.expected.ir.fxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureLoad
+..\..\src\tint\utils\containers\slice.h:216 internal compiler error: TINT_ASSERT(i < Length())
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/var/textureLoad/40ee8b.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/textureLoad/40ee8b.wgsl.expected.ir.dxc.hlsl
index fd28383..334e6e8e 100644
--- a/test/tint/builtins/gen/var/textureLoad/40ee8b.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureLoad/40ee8b.wgsl.expected.ir.dxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureLoad
+..\..\src\tint\utils\containers\slice.h:216 internal compiler error: TINT_ASSERT(i < Length())
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/var/textureLoad/40ee8b.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/textureLoad/40ee8b.wgsl.expected.ir.fxc.hlsl
index fd28383..334e6e8e 100644
--- a/test/tint/builtins/gen/var/textureLoad/40ee8b.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureLoad/40ee8b.wgsl.expected.ir.fxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureLoad
+..\..\src\tint\utils\containers\slice.h:216 internal compiler error: TINT_ASSERT(i < Length())
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/var/textureLoad/4212a1.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/textureLoad/4212a1.wgsl.expected.ir.dxc.hlsl
index fd28383..334e6e8e 100644
--- a/test/tint/builtins/gen/var/textureLoad/4212a1.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureLoad/4212a1.wgsl.expected.ir.dxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureLoad
+..\..\src\tint\utils\containers\slice.h:216 internal compiler error: TINT_ASSERT(i < Length())
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/var/textureLoad/4212a1.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/textureLoad/4212a1.wgsl.expected.ir.fxc.hlsl
index fd28383..334e6e8e 100644
--- a/test/tint/builtins/gen/var/textureLoad/4212a1.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureLoad/4212a1.wgsl.expected.ir.fxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureLoad
+..\..\src\tint\utils\containers\slice.h:216 internal compiler error: TINT_ASSERT(i < Length())
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/var/textureLoad/424afd.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/textureLoad/424afd.wgsl.expected.ir.dxc.hlsl
index fd28383..334e6e8e 100644
--- a/test/tint/builtins/gen/var/textureLoad/424afd.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureLoad/424afd.wgsl.expected.ir.dxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureLoad
+..\..\src\tint\utils\containers\slice.h:216 internal compiler error: TINT_ASSERT(i < Length())
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/var/textureLoad/424afd.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/textureLoad/424afd.wgsl.expected.ir.fxc.hlsl
index fd28383..334e6e8e 100644
--- a/test/tint/builtins/gen/var/textureLoad/424afd.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureLoad/424afd.wgsl.expected.ir.fxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureLoad
+..\..\src\tint\utils\containers\slice.h:216 internal compiler error: TINT_ASSERT(i < Length())
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/var/textureLoad/42a631.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/textureLoad/42a631.wgsl.expected.ir.dxc.hlsl
index fd28383..334e6e8e 100644
--- a/test/tint/builtins/gen/var/textureLoad/42a631.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureLoad/42a631.wgsl.expected.ir.dxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureLoad
+..\..\src\tint\utils\containers\slice.h:216 internal compiler error: TINT_ASSERT(i < Length())
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/var/textureLoad/42a631.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/textureLoad/42a631.wgsl.expected.ir.fxc.hlsl
index fd28383..334e6e8e 100644
--- a/test/tint/builtins/gen/var/textureLoad/42a631.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureLoad/42a631.wgsl.expected.ir.fxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureLoad
+..\..\src\tint\utils\containers\slice.h:216 internal compiler error: TINT_ASSERT(i < Length())
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/var/textureLoad/43484a.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/textureLoad/43484a.wgsl.expected.ir.dxc.hlsl
index fd28383..334e6e8e 100644
--- a/test/tint/builtins/gen/var/textureLoad/43484a.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureLoad/43484a.wgsl.expected.ir.dxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureLoad
+..\..\src\tint\utils\containers\slice.h:216 internal compiler error: TINT_ASSERT(i < Length())
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/var/textureLoad/43484a.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/textureLoad/43484a.wgsl.expected.ir.fxc.hlsl
index fd28383..334e6e8e 100644
--- a/test/tint/builtins/gen/var/textureLoad/43484a.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureLoad/43484a.wgsl.expected.ir.fxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureLoad
+..\..\src\tint\utils\containers\slice.h:216 internal compiler error: TINT_ASSERT(i < Length())
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/var/textureLoad/439e2a.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/textureLoad/439e2a.wgsl.expected.ir.dxc.hlsl
index fd28383..c87d672 100644
--- a/test/tint/builtins/gen/var/textureLoad/439e2a.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureLoad/439e2a.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,48 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  float4 prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureLoad
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation float4 VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+Texture2D<float4> arg_0 : register(t0, space1);
+float4 textureLoad_439e2a() {
+  uint2 arg_1 = (1u).xx;
+  int arg_2 = 1;
+  Texture2D<float4> v = arg_0;
+  int v_1 = arg_2;
+  int2 v_2 = int2(arg_1);
+  float4 res = float4(v.Load(int3(v_2, int(v_1))));
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store4(0u, asuint(textureLoad_439e2a()));
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store4(0u, asuint(textureLoad_439e2a()));
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = textureLoad_439e2a();
+  VertexOutput v_3 = tint_symbol;
+  return v_3;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_4 = vertex_main_inner();
+  VertexOutput v_5 = v_4;
+  VertexOutput v_6 = v_4;
+  vertex_main_outputs v_7 = {v_6.prevent_dce, v_5.pos};
+  return v_7;
+}
+
diff --git a/test/tint/builtins/gen/var/textureLoad/439e2a.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/textureLoad/439e2a.wgsl.expected.ir.fxc.hlsl
index fd28383..c87d672 100644
--- a/test/tint/builtins/gen/var/textureLoad/439e2a.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureLoad/439e2a.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,48 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  float4 prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureLoad
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation float4 VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+Texture2D<float4> arg_0 : register(t0, space1);
+float4 textureLoad_439e2a() {
+  uint2 arg_1 = (1u).xx;
+  int arg_2 = 1;
+  Texture2D<float4> v = arg_0;
+  int v_1 = arg_2;
+  int2 v_2 = int2(arg_1);
+  float4 res = float4(v.Load(int3(v_2, int(v_1))));
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store4(0u, asuint(textureLoad_439e2a()));
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store4(0u, asuint(textureLoad_439e2a()));
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = textureLoad_439e2a();
+  VertexOutput v_3 = tint_symbol;
+  return v_3;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_4 = vertex_main_inner();
+  VertexOutput v_5 = v_4;
+  VertexOutput v_6 = v_4;
+  vertex_main_outputs v_7 = {v_6.prevent_dce, v_5.pos};
+  return v_7;
+}
+
diff --git a/test/tint/builtins/gen/var/textureLoad/43cd86.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/textureLoad/43cd86.wgsl.expected.ir.dxc.hlsl
index fd28383..334e6e8e 100644
--- a/test/tint/builtins/gen/var/textureLoad/43cd86.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureLoad/43cd86.wgsl.expected.ir.dxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureLoad
+..\..\src\tint\utils\containers\slice.h:216 internal compiler error: TINT_ASSERT(i < Length())
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/var/textureLoad/43cd86.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/textureLoad/43cd86.wgsl.expected.ir.fxc.hlsl
index fd28383..334e6e8e 100644
--- a/test/tint/builtins/gen/var/textureLoad/43cd86.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureLoad/43cd86.wgsl.expected.ir.fxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureLoad
+..\..\src\tint\utils\containers\slice.h:216 internal compiler error: TINT_ASSERT(i < Length())
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/var/textureLoad/44c826.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/textureLoad/44c826.wgsl.expected.ir.dxc.hlsl
index fd28383..334e6e8e 100644
--- a/test/tint/builtins/gen/var/textureLoad/44c826.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureLoad/44c826.wgsl.expected.ir.dxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureLoad
+..\..\src\tint\utils\containers\slice.h:216 internal compiler error: TINT_ASSERT(i < Length())
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/var/textureLoad/44c826.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/textureLoad/44c826.wgsl.expected.ir.fxc.hlsl
index fd28383..334e6e8e 100644
--- a/test/tint/builtins/gen/var/textureLoad/44c826.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureLoad/44c826.wgsl.expected.ir.fxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureLoad
+..\..\src\tint\utils\containers\slice.h:216 internal compiler error: TINT_ASSERT(i < Length())
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/var/textureLoad/4542ae.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/textureLoad/4542ae.wgsl.expected.ir.dxc.hlsl
index fd28383..334e6e8e 100644
--- a/test/tint/builtins/gen/var/textureLoad/4542ae.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureLoad/4542ae.wgsl.expected.ir.dxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureLoad
+..\..\src\tint\utils\containers\slice.h:216 internal compiler error: TINT_ASSERT(i < Length())
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/var/textureLoad/4542ae.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/textureLoad/4542ae.wgsl.expected.ir.fxc.hlsl
index fd28383..334e6e8e 100644
--- a/test/tint/builtins/gen/var/textureLoad/4542ae.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureLoad/4542ae.wgsl.expected.ir.fxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureLoad
+..\..\src\tint\utils\containers\slice.h:216 internal compiler error: TINT_ASSERT(i < Length())
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/var/textureLoad/454347.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/textureLoad/454347.wgsl.expected.ir.dxc.hlsl
index fd28383..334e6e8e 100644
--- a/test/tint/builtins/gen/var/textureLoad/454347.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureLoad/454347.wgsl.expected.ir.dxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureLoad
+..\..\src\tint\utils\containers\slice.h:216 internal compiler error: TINT_ASSERT(i < Length())
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/var/textureLoad/454347.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/textureLoad/454347.wgsl.expected.ir.fxc.hlsl
index fd28383..334e6e8e 100644
--- a/test/tint/builtins/gen/var/textureLoad/454347.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureLoad/454347.wgsl.expected.ir.fxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureLoad
+..\..\src\tint\utils\containers\slice.h:216 internal compiler error: TINT_ASSERT(i < Length())
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/var/textureLoad/4638a0.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/textureLoad/4638a0.wgsl.expected.ir.dxc.hlsl
index fd28383..334e6e8e 100644
--- a/test/tint/builtins/gen/var/textureLoad/4638a0.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureLoad/4638a0.wgsl.expected.ir.dxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureLoad
+..\..\src\tint\utils\containers\slice.h:216 internal compiler error: TINT_ASSERT(i < Length())
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/var/textureLoad/4638a0.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/textureLoad/4638a0.wgsl.expected.ir.fxc.hlsl
index fd28383..334e6e8e 100644
--- a/test/tint/builtins/gen/var/textureLoad/4638a0.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureLoad/4638a0.wgsl.expected.ir.fxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureLoad
+..\..\src\tint\utils\containers\slice.h:216 internal compiler error: TINT_ASSERT(i < Length())
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/var/textureLoad/469912.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/textureLoad/469912.wgsl.expected.ir.dxc.hlsl
index fd28383..334e6e8e 100644
--- a/test/tint/builtins/gen/var/textureLoad/469912.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureLoad/469912.wgsl.expected.ir.dxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureLoad
+..\..\src\tint\utils\containers\slice.h:216 internal compiler error: TINT_ASSERT(i < Length())
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/var/textureLoad/469912.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/textureLoad/469912.wgsl.expected.ir.fxc.hlsl
index fd28383..334e6e8e 100644
--- a/test/tint/builtins/gen/var/textureLoad/469912.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureLoad/469912.wgsl.expected.ir.fxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureLoad
+..\..\src\tint\utils\containers\slice.h:216 internal compiler error: TINT_ASSERT(i < Length())
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/var/textureLoad/46a93f.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/textureLoad/46a93f.wgsl.expected.ir.dxc.hlsl
index fd28383..b4542cc 100644
--- a/test/tint/builtins/gen/var/textureLoad/46a93f.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureLoad/46a93f.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,51 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  float4 prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureLoad
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation float4 VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+Texture2DArray<float4> arg_0 : register(t0, space1);
+float4 textureLoad_46a93f() {
+  uint2 arg_1 = (1u).xx;
+  int arg_2 = 1;
+  uint arg_3 = 1u;
+  Texture2DArray<float4> v = arg_0;
+  int v_1 = arg_2;
+  uint v_2 = arg_3;
+  int2 v_3 = int2(arg_1);
+  int v_4 = int(v_1);
+  float4 res = float4(v.Load(int4(v_3, v_4, int(v_2))));
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store4(0u, asuint(textureLoad_46a93f()));
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store4(0u, asuint(textureLoad_46a93f()));
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = textureLoad_46a93f();
+  VertexOutput v_5 = tint_symbol;
+  return v_5;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_6 = vertex_main_inner();
+  VertexOutput v_7 = v_6;
+  VertexOutput v_8 = v_6;
+  vertex_main_outputs v_9 = {v_8.prevent_dce, v_7.pos};
+  return v_9;
+}
+
diff --git a/test/tint/builtins/gen/var/textureLoad/46a93f.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/textureLoad/46a93f.wgsl.expected.ir.fxc.hlsl
index fd28383..b4542cc 100644
--- a/test/tint/builtins/gen/var/textureLoad/46a93f.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureLoad/46a93f.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,51 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  float4 prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureLoad
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation float4 VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+Texture2DArray<float4> arg_0 : register(t0, space1);
+float4 textureLoad_46a93f() {
+  uint2 arg_1 = (1u).xx;
+  int arg_2 = 1;
+  uint arg_3 = 1u;
+  Texture2DArray<float4> v = arg_0;
+  int v_1 = arg_2;
+  uint v_2 = arg_3;
+  int2 v_3 = int2(arg_1);
+  int v_4 = int(v_1);
+  float4 res = float4(v.Load(int4(v_3, v_4, int(v_2))));
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store4(0u, asuint(textureLoad_46a93f()));
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store4(0u, asuint(textureLoad_46a93f()));
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = textureLoad_46a93f();
+  VertexOutput v_5 = tint_symbol;
+  return v_5;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_6 = vertex_main_inner();
+  VertexOutput v_7 = v_6;
+  VertexOutput v_8 = v_6;
+  vertex_main_outputs v_9 = {v_8.prevent_dce, v_7.pos};
+  return v_9;
+}
+
diff --git a/test/tint/builtins/gen/var/textureLoad/46dbf5.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/textureLoad/46dbf5.wgsl.expected.ir.dxc.hlsl
index fd28383..334e6e8e 100644
--- a/test/tint/builtins/gen/var/textureLoad/46dbf5.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureLoad/46dbf5.wgsl.expected.ir.dxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureLoad
+..\..\src\tint\utils\containers\slice.h:216 internal compiler error: TINT_ASSERT(i < Length())
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/var/textureLoad/46dbf5.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/textureLoad/46dbf5.wgsl.expected.ir.fxc.hlsl
index fd28383..334e6e8e 100644
--- a/test/tint/builtins/gen/var/textureLoad/46dbf5.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureLoad/46dbf5.wgsl.expected.ir.fxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureLoad
+..\..\src\tint\utils\containers\slice.h:216 internal compiler error: TINT_ASSERT(i < Length())
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/var/textureLoad/473d3e.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/textureLoad/473d3e.wgsl.expected.ir.dxc.hlsl
index fd28383..334e6e8e 100644
--- a/test/tint/builtins/gen/var/textureLoad/473d3e.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureLoad/473d3e.wgsl.expected.ir.dxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureLoad
+..\..\src\tint\utils\containers\slice.h:216 internal compiler error: TINT_ASSERT(i < Length())
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/var/textureLoad/473d3e.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/textureLoad/473d3e.wgsl.expected.ir.fxc.hlsl
index fd28383..334e6e8e 100644
--- a/test/tint/builtins/gen/var/textureLoad/473d3e.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureLoad/473d3e.wgsl.expected.ir.fxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureLoad
+..\..\src\tint\utils\containers\slice.h:216 internal compiler error: TINT_ASSERT(i < Length())
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/var/textureLoad/47e818.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/textureLoad/47e818.wgsl.expected.ir.dxc.hlsl
index fd28383..fe17f80 100644
--- a/test/tint/builtins/gen/var/textureLoad/47e818.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureLoad/47e818.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,48 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  int4 prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureLoad
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation int4 VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+Texture3D<int4> arg_0 : register(t0, space1);
+int4 textureLoad_47e818() {
+  uint3 arg_1 = (1u).xxx;
+  uint arg_2 = 1u;
+  Texture3D<int4> v = arg_0;
+  uint v_1 = arg_2;
+  int3 v_2 = int3(arg_1);
+  int4 res = int4(v.Load(int4(v_2, int(v_1))));
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store4(0u, asuint(textureLoad_47e818()));
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store4(0u, asuint(textureLoad_47e818()));
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = textureLoad_47e818();
+  VertexOutput v_3 = tint_symbol;
+  return v_3;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_4 = vertex_main_inner();
+  VertexOutput v_5 = v_4;
+  VertexOutput v_6 = v_4;
+  vertex_main_outputs v_7 = {v_6.prevent_dce, v_5.pos};
+  return v_7;
+}
+
diff --git a/test/tint/builtins/gen/var/textureLoad/47e818.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/textureLoad/47e818.wgsl.expected.ir.fxc.hlsl
index fd28383..fe17f80 100644
--- a/test/tint/builtins/gen/var/textureLoad/47e818.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureLoad/47e818.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,48 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  int4 prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureLoad
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation int4 VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+Texture3D<int4> arg_0 : register(t0, space1);
+int4 textureLoad_47e818() {
+  uint3 arg_1 = (1u).xxx;
+  uint arg_2 = 1u;
+  Texture3D<int4> v = arg_0;
+  uint v_1 = arg_2;
+  int3 v_2 = int3(arg_1);
+  int4 res = int4(v.Load(int4(v_2, int(v_1))));
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store4(0u, asuint(textureLoad_47e818()));
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store4(0u, asuint(textureLoad_47e818()));
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = textureLoad_47e818();
+  VertexOutput v_3 = tint_symbol;
+  return v_3;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_4 = vertex_main_inner();
+  VertexOutput v_5 = v_4;
+  VertexOutput v_6 = v_4;
+  vertex_main_outputs v_7 = {v_6.prevent_dce, v_5.pos};
+  return v_7;
+}
+
diff --git a/test/tint/builtins/gen/var/textureLoad/482627.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/textureLoad/482627.wgsl.expected.ir.dxc.hlsl
index fd28383..334e6e8e 100644
--- a/test/tint/builtins/gen/var/textureLoad/482627.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureLoad/482627.wgsl.expected.ir.dxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureLoad
+..\..\src\tint\utils\containers\slice.h:216 internal compiler error: TINT_ASSERT(i < Length())
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/var/textureLoad/482627.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/textureLoad/482627.wgsl.expected.ir.fxc.hlsl
index fd28383..334e6e8e 100644
--- a/test/tint/builtins/gen/var/textureLoad/482627.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureLoad/482627.wgsl.expected.ir.fxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureLoad
+..\..\src\tint\utils\containers\slice.h:216 internal compiler error: TINT_ASSERT(i < Length())
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/var/textureLoad/484344.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/textureLoad/484344.wgsl.expected.ir.dxc.hlsl
index fd28383..7833984 100644
--- a/test/tint/builtins/gen/var/textureLoad/484344.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureLoad/484344.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,48 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  float4 prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureLoad
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation float4 VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+Texture2D<float4> arg_0 : register(t0, space1);
+float4 textureLoad_484344() {
+  int2 arg_1 = (1).xx;
+  int arg_2 = 1;
+  Texture2D<float4> v = arg_0;
+  int v_1 = arg_2;
+  int2 v_2 = int2(arg_1);
+  float4 res = float4(v.Load(int3(v_2, int(v_1))));
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store4(0u, asuint(textureLoad_484344()));
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store4(0u, asuint(textureLoad_484344()));
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = textureLoad_484344();
+  VertexOutput v_3 = tint_symbol;
+  return v_3;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_4 = vertex_main_inner();
+  VertexOutput v_5 = v_4;
+  VertexOutput v_6 = v_4;
+  vertex_main_outputs v_7 = {v_6.prevent_dce, v_5.pos};
+  return v_7;
+}
+
diff --git a/test/tint/builtins/gen/var/textureLoad/484344.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/textureLoad/484344.wgsl.expected.ir.fxc.hlsl
index fd28383..7833984 100644
--- a/test/tint/builtins/gen/var/textureLoad/484344.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureLoad/484344.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,48 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  float4 prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureLoad
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation float4 VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+Texture2D<float4> arg_0 : register(t0, space1);
+float4 textureLoad_484344() {
+  int2 arg_1 = (1).xx;
+  int arg_2 = 1;
+  Texture2D<float4> v = arg_0;
+  int v_1 = arg_2;
+  int2 v_2 = int2(arg_1);
+  float4 res = float4(v.Load(int3(v_2, int(v_1))));
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store4(0u, asuint(textureLoad_484344()));
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store4(0u, asuint(textureLoad_484344()));
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = textureLoad_484344();
+  VertexOutput v_3 = tint_symbol;
+  return v_3;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_4 = vertex_main_inner();
+  VertexOutput v_5 = v_4;
+  VertexOutput v_6 = v_4;
+  vertex_main_outputs v_7 = {v_6.prevent_dce, v_5.pos};
+  return v_7;
+}
+
diff --git a/test/tint/builtins/gen/var/textureLoad/4951bb.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/textureLoad/4951bb.wgsl.expected.ir.dxc.hlsl
index fd28383..334e6e8e 100644
--- a/test/tint/builtins/gen/var/textureLoad/4951bb.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureLoad/4951bb.wgsl.expected.ir.dxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureLoad
+..\..\src\tint\utils\containers\slice.h:216 internal compiler error: TINT_ASSERT(i < Length())
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/var/textureLoad/4951bb.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/textureLoad/4951bb.wgsl.expected.ir.fxc.hlsl
index fd28383..334e6e8e 100644
--- a/test/tint/builtins/gen/var/textureLoad/4951bb.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureLoad/4951bb.wgsl.expected.ir.fxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureLoad
+..\..\src\tint\utils\containers\slice.h:216 internal compiler error: TINT_ASSERT(i < Length())
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/var/textureLoad/49f76f.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/textureLoad/49f76f.wgsl.expected.ir.dxc.hlsl
index fd28383..1eaa04a 100644
--- a/test/tint/builtins/gen/var/textureLoad/49f76f.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureLoad/49f76f.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,48 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  uint4 prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureLoad
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation uint4 VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+Texture2DMS<uint4> arg_0 : register(t0, space1);
+uint4 textureLoad_49f76f() {
+  uint2 arg_1 = (1u).xx;
+  uint arg_2 = 1u;
+  Texture2DMS<uint4> v = arg_0;
+  uint v_1 = arg_2;
+  int2 v_2 = int2(arg_1);
+  uint4 res = uint4(v.Load(v_2, int(v_1)));
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store4(0u, textureLoad_49f76f());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store4(0u, textureLoad_49f76f());
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = textureLoad_49f76f();
+  VertexOutput v_3 = tint_symbol;
+  return v_3;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_4 = vertex_main_inner();
+  VertexOutput v_5 = v_4;
+  VertexOutput v_6 = v_4;
+  vertex_main_outputs v_7 = {v_6.prevent_dce, v_5.pos};
+  return v_7;
+}
+
diff --git a/test/tint/builtins/gen/var/textureLoad/49f76f.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/textureLoad/49f76f.wgsl.expected.ir.fxc.hlsl
index fd28383..1eaa04a 100644
--- a/test/tint/builtins/gen/var/textureLoad/49f76f.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureLoad/49f76f.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,48 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  uint4 prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureLoad
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation uint4 VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+Texture2DMS<uint4> arg_0 : register(t0, space1);
+uint4 textureLoad_49f76f() {
+  uint2 arg_1 = (1u).xx;
+  uint arg_2 = 1u;
+  Texture2DMS<uint4> v = arg_0;
+  uint v_1 = arg_2;
+  int2 v_2 = int2(arg_1);
+  uint4 res = uint4(v.Load(v_2, int(v_1)));
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store4(0u, textureLoad_49f76f());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store4(0u, textureLoad_49f76f());
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = textureLoad_49f76f();
+  VertexOutput v_3 = tint_symbol;
+  return v_3;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_4 = vertex_main_inner();
+  VertexOutput v_5 = v_4;
+  VertexOutput v_6 = v_4;
+  vertex_main_outputs v_7 = {v_6.prevent_dce, v_5.pos};
+  return v_7;
+}
+
diff --git a/test/tint/builtins/gen/var/textureLoad/4a5c55.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/textureLoad/4a5c55.wgsl.expected.ir.dxc.hlsl
index fd28383..334e6e8e 100644
--- a/test/tint/builtins/gen/var/textureLoad/4a5c55.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureLoad/4a5c55.wgsl.expected.ir.dxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureLoad
+..\..\src\tint\utils\containers\slice.h:216 internal compiler error: TINT_ASSERT(i < Length())
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/var/textureLoad/4a5c55.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/textureLoad/4a5c55.wgsl.expected.ir.fxc.hlsl
index fd28383..334e6e8e 100644
--- a/test/tint/builtins/gen/var/textureLoad/4a5c55.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureLoad/4a5c55.wgsl.expected.ir.fxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureLoad
+..\..\src\tint\utils\containers\slice.h:216 internal compiler error: TINT_ASSERT(i < Length())
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/var/textureLoad/4acb64.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/textureLoad/4acb64.wgsl.expected.ir.dxc.hlsl
index fd28383..95ff737 100644
--- a/test/tint/builtins/gen/var/textureLoad/4acb64.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureLoad/4acb64.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,51 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  float4 prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureLoad
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation float4 VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+Texture2DArray<float4> arg_0 : register(t0, space1);
+float4 textureLoad_4acb64() {
+  int2 arg_1 = (1).xx;
+  uint arg_2 = 1u;
+  int arg_3 = 1;
+  Texture2DArray<float4> v = arg_0;
+  uint v_1 = arg_2;
+  int v_2 = arg_3;
+  int2 v_3 = int2(arg_1);
+  int v_4 = int(v_1);
+  float4 res = float4(v.Load(int4(v_3, v_4, int(v_2))));
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store4(0u, asuint(textureLoad_4acb64()));
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store4(0u, asuint(textureLoad_4acb64()));
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = textureLoad_4acb64();
+  VertexOutput v_5 = tint_symbol;
+  return v_5;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_6 = vertex_main_inner();
+  VertexOutput v_7 = v_6;
+  VertexOutput v_8 = v_6;
+  vertex_main_outputs v_9 = {v_8.prevent_dce, v_7.pos};
+  return v_9;
+}
+
diff --git a/test/tint/builtins/gen/var/textureLoad/4acb64.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/textureLoad/4acb64.wgsl.expected.ir.fxc.hlsl
index fd28383..95ff737 100644
--- a/test/tint/builtins/gen/var/textureLoad/4acb64.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureLoad/4acb64.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,51 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  float4 prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureLoad
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation float4 VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+Texture2DArray<float4> arg_0 : register(t0, space1);
+float4 textureLoad_4acb64() {
+  int2 arg_1 = (1).xx;
+  uint arg_2 = 1u;
+  int arg_3 = 1;
+  Texture2DArray<float4> v = arg_0;
+  uint v_1 = arg_2;
+  int v_2 = arg_3;
+  int2 v_3 = int2(arg_1);
+  int v_4 = int(v_1);
+  float4 res = float4(v.Load(int4(v_3, v_4, int(v_2))));
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store4(0u, asuint(textureLoad_4acb64()));
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store4(0u, asuint(textureLoad_4acb64()));
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = textureLoad_4acb64();
+  VertexOutput v_5 = tint_symbol;
+  return v_5;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_6 = vertex_main_inner();
+  VertexOutput v_7 = v_6;
+  VertexOutput v_8 = v_6;
+  vertex_main_outputs v_9 = {v_8.prevent_dce, v_7.pos};
+  return v_9;
+}
+
diff --git a/test/tint/builtins/gen/var/textureLoad/4c15b2.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/textureLoad/4c15b2.wgsl.expected.ir.dxc.hlsl
index fd28383..334e6e8e 100644
--- a/test/tint/builtins/gen/var/textureLoad/4c15b2.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureLoad/4c15b2.wgsl.expected.ir.dxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureLoad
+..\..\src\tint\utils\containers\slice.h:216 internal compiler error: TINT_ASSERT(i < Length())
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/var/textureLoad/4c15b2.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/textureLoad/4c15b2.wgsl.expected.ir.fxc.hlsl
index fd28383..334e6e8e 100644
--- a/test/tint/builtins/gen/var/textureLoad/4c15b2.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureLoad/4c15b2.wgsl.expected.ir.fxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureLoad
+..\..\src\tint\utils\containers\slice.h:216 internal compiler error: TINT_ASSERT(i < Length())
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/var/textureLoad/4c1a1e.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/textureLoad/4c1a1e.wgsl.expected.ir.dxc.hlsl
index fd28383..334e6e8e 100644
--- a/test/tint/builtins/gen/var/textureLoad/4c1a1e.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureLoad/4c1a1e.wgsl.expected.ir.dxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureLoad
+..\..\src\tint\utils\containers\slice.h:216 internal compiler error: TINT_ASSERT(i < Length())
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/var/textureLoad/4c1a1e.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/textureLoad/4c1a1e.wgsl.expected.ir.fxc.hlsl
index fd28383..334e6e8e 100644
--- a/test/tint/builtins/gen/var/textureLoad/4c1a1e.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureLoad/4c1a1e.wgsl.expected.ir.fxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureLoad
+..\..\src\tint\utils\containers\slice.h:216 internal compiler error: TINT_ASSERT(i < Length())
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/var/textureLoad/4c423f.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/textureLoad/4c423f.wgsl.expected.ir.dxc.hlsl
index fd28383..3f52354 100644
--- a/test/tint/builtins/gen/var/textureLoad/4c423f.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureLoad/4c423f.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,48 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  int4 prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureLoad
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation int4 VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+Texture1D<int4> arg_0 : register(t0, space1);
+int4 textureLoad_4c423f() {
+  uint arg_1 = 1u;
+  int arg_2 = 1;
+  Texture1D<int4> v = arg_0;
+  int v_1 = arg_2;
+  int v_2 = int(arg_1);
+  int4 res = int4(v.Load(int2(v_2, int(v_1))));
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store4(0u, asuint(textureLoad_4c423f()));
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store4(0u, asuint(textureLoad_4c423f()));
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = textureLoad_4c423f();
+  VertexOutput v_3 = tint_symbol;
+  return v_3;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_4 = vertex_main_inner();
+  VertexOutput v_5 = v_4;
+  VertexOutput v_6 = v_4;
+  vertex_main_outputs v_7 = {v_6.prevent_dce, v_5.pos};
+  return v_7;
+}
+
diff --git a/test/tint/builtins/gen/var/textureLoad/4c423f.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/textureLoad/4c423f.wgsl.expected.ir.fxc.hlsl
index fd28383..3f52354 100644
--- a/test/tint/builtins/gen/var/textureLoad/4c423f.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureLoad/4c423f.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,48 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  int4 prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureLoad
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation int4 VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+Texture1D<int4> arg_0 : register(t0, space1);
+int4 textureLoad_4c423f() {
+  uint arg_1 = 1u;
+  int arg_2 = 1;
+  Texture1D<int4> v = arg_0;
+  int v_1 = arg_2;
+  int v_2 = int(arg_1);
+  int4 res = int4(v.Load(int2(v_2, int(v_1))));
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store4(0u, asuint(textureLoad_4c423f()));
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store4(0u, asuint(textureLoad_4c423f()));
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = textureLoad_4c423f();
+  VertexOutput v_3 = tint_symbol;
+  return v_3;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_4 = vertex_main_inner();
+  VertexOutput v_5 = v_4;
+  VertexOutput v_6 = v_4;
+  vertex_main_outputs v_7 = {v_6.prevent_dce, v_5.pos};
+  return v_7;
+}
+
diff --git a/test/tint/builtins/gen/var/textureLoad/4c67be.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/textureLoad/4c67be.wgsl.expected.ir.dxc.hlsl
index fd28383..334e6e8e 100644
--- a/test/tint/builtins/gen/var/textureLoad/4c67be.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureLoad/4c67be.wgsl.expected.ir.dxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureLoad
+..\..\src\tint\utils\containers\slice.h:216 internal compiler error: TINT_ASSERT(i < Length())
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/var/textureLoad/4c67be.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/textureLoad/4c67be.wgsl.expected.ir.fxc.hlsl
index fd28383..334e6e8e 100644
--- a/test/tint/builtins/gen/var/textureLoad/4c67be.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureLoad/4c67be.wgsl.expected.ir.fxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureLoad
+..\..\src\tint\utils\containers\slice.h:216 internal compiler error: TINT_ASSERT(i < Length())
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/var/textureLoad/4ccf9a.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/textureLoad/4ccf9a.wgsl.expected.ir.dxc.hlsl
index fd28383..334e6e8e 100644
--- a/test/tint/builtins/gen/var/textureLoad/4ccf9a.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureLoad/4ccf9a.wgsl.expected.ir.dxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureLoad
+..\..\src\tint\utils\containers\slice.h:216 internal compiler error: TINT_ASSERT(i < Length())
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/var/textureLoad/4ccf9a.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/textureLoad/4ccf9a.wgsl.expected.ir.fxc.hlsl
index fd28383..334e6e8e 100644
--- a/test/tint/builtins/gen/var/textureLoad/4ccf9a.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureLoad/4ccf9a.wgsl.expected.ir.fxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureLoad
+..\..\src\tint\utils\containers\slice.h:216 internal compiler error: TINT_ASSERT(i < Length())
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/var/textureLoad/4cdca5.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/textureLoad/4cdca5.wgsl.expected.ir.dxc.hlsl
index fd28383..334e6e8e 100644
--- a/test/tint/builtins/gen/var/textureLoad/4cdca5.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureLoad/4cdca5.wgsl.expected.ir.dxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureLoad
+..\..\src\tint\utils\containers\slice.h:216 internal compiler error: TINT_ASSERT(i < Length())
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/var/textureLoad/4cdca5.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/textureLoad/4cdca5.wgsl.expected.ir.fxc.hlsl
index fd28383..334e6e8e 100644
--- a/test/tint/builtins/gen/var/textureLoad/4cdca5.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureLoad/4cdca5.wgsl.expected.ir.fxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureLoad
+..\..\src\tint\utils\containers\slice.h:216 internal compiler error: TINT_ASSERT(i < Length())
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/var/textureLoad/4db25c.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/textureLoad/4db25c.wgsl.expected.ir.dxc.hlsl
index fd28383..3dbb5eb 100644
--- a/test/tint/builtins/gen/var/textureLoad/4db25c.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureLoad/4db25c.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,48 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  float prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureLoad
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation float VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+Texture2DMS<float4> arg_0 : register(t0, space1);
+float textureLoad_4db25c() {
+  uint2 arg_1 = (1u).xx;
+  uint arg_2 = 1u;
+  Texture2DMS<float4> v = arg_0;
+  uint v_1 = arg_2;
+  int2 v_2 = int2(arg_1);
+  float res = v.Load(v_2, int(v_1)).x;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store(0u, asuint(textureLoad_4db25c()));
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store(0u, asuint(textureLoad_4db25c()));
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = textureLoad_4db25c();
+  VertexOutput v_3 = tint_symbol;
+  return v_3;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_4 = vertex_main_inner();
+  VertexOutput v_5 = v_4;
+  VertexOutput v_6 = v_4;
+  vertex_main_outputs v_7 = {v_6.prevent_dce, v_5.pos};
+  return v_7;
+}
+
diff --git a/test/tint/builtins/gen/var/textureLoad/4db25c.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/textureLoad/4db25c.wgsl.expected.ir.fxc.hlsl
index fd28383..3dbb5eb 100644
--- a/test/tint/builtins/gen/var/textureLoad/4db25c.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureLoad/4db25c.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,48 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  float prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureLoad
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation float VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+Texture2DMS<float4> arg_0 : register(t0, space1);
+float textureLoad_4db25c() {
+  uint2 arg_1 = (1u).xx;
+  uint arg_2 = 1u;
+  Texture2DMS<float4> v = arg_0;
+  uint v_1 = arg_2;
+  int2 v_2 = int2(arg_1);
+  float res = v.Load(v_2, int(v_1)).x;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store(0u, asuint(textureLoad_4db25c()));
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store(0u, asuint(textureLoad_4db25c()));
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = textureLoad_4db25c();
+  VertexOutput v_3 = tint_symbol;
+  return v_3;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_4 = vertex_main_inner();
+  VertexOutput v_5 = v_4;
+  VertexOutput v_6 = v_4;
+  vertex_main_outputs v_7 = {v_6.prevent_dce, v_5.pos};
+  return v_7;
+}
+
diff --git a/test/tint/builtins/gen/var/textureLoad/4e2c5c.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/textureLoad/4e2c5c.wgsl.expected.ir.dxc.hlsl
index fd28383..334e6e8e 100644
--- a/test/tint/builtins/gen/var/textureLoad/4e2c5c.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureLoad/4e2c5c.wgsl.expected.ir.dxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureLoad
+..\..\src\tint\utils\containers\slice.h:216 internal compiler error: TINT_ASSERT(i < Length())
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/var/textureLoad/4e2c5c.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/textureLoad/4e2c5c.wgsl.expected.ir.fxc.hlsl
index fd28383..334e6e8e 100644
--- a/test/tint/builtins/gen/var/textureLoad/4e2c5c.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureLoad/4e2c5c.wgsl.expected.ir.fxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureLoad
+..\..\src\tint\utils\containers\slice.h:216 internal compiler error: TINT_ASSERT(i < Length())
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/var/textureLoad/4f5496.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/textureLoad/4f5496.wgsl.expected.ir.dxc.hlsl
index fd28383..334e6e8e 100644
--- a/test/tint/builtins/gen/var/textureLoad/4f5496.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureLoad/4f5496.wgsl.expected.ir.dxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureLoad
+..\..\src\tint\utils\containers\slice.h:216 internal compiler error: TINT_ASSERT(i < Length())
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/var/textureLoad/4f5496.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/textureLoad/4f5496.wgsl.expected.ir.fxc.hlsl
index fd28383..334e6e8e 100644
--- a/test/tint/builtins/gen/var/textureLoad/4f5496.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureLoad/4f5496.wgsl.expected.ir.fxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureLoad
+..\..\src\tint\utils\containers\slice.h:216 internal compiler error: TINT_ASSERT(i < Length())
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/var/textureLoad/4f90bb.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/textureLoad/4f90bb.wgsl.expected.ir.dxc.hlsl
index fd28383..334e6e8e 100644
--- a/test/tint/builtins/gen/var/textureLoad/4f90bb.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureLoad/4f90bb.wgsl.expected.ir.dxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureLoad
+..\..\src\tint\utils\containers\slice.h:216 internal compiler error: TINT_ASSERT(i < Length())
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/var/textureLoad/4f90bb.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/textureLoad/4f90bb.wgsl.expected.ir.fxc.hlsl
index fd28383..334e6e8e 100644
--- a/test/tint/builtins/gen/var/textureLoad/4f90bb.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureLoad/4f90bb.wgsl.expected.ir.fxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureLoad
+..\..\src\tint\utils\containers\slice.h:216 internal compiler error: TINT_ASSERT(i < Length())
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/var/textureLoad/4fa6ae.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/textureLoad/4fa6ae.wgsl.expected.ir.dxc.hlsl
index fd28383..334e6e8e 100644
--- a/test/tint/builtins/gen/var/textureLoad/4fa6ae.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureLoad/4fa6ae.wgsl.expected.ir.dxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureLoad
+..\..\src\tint\utils\containers\slice.h:216 internal compiler error: TINT_ASSERT(i < Length())
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/var/textureLoad/4fa6ae.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/textureLoad/4fa6ae.wgsl.expected.ir.fxc.hlsl
index fd28383..334e6e8e 100644
--- a/test/tint/builtins/gen/var/textureLoad/4fa6ae.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureLoad/4fa6ae.wgsl.expected.ir.fxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureLoad
+..\..\src\tint\utils\containers\slice.h:216 internal compiler error: TINT_ASSERT(i < Length())
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/var/textureLoad/4fd803.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/textureLoad/4fd803.wgsl.expected.ir.dxc.hlsl
index fd28383..d2c5864 100644
--- a/test/tint/builtins/gen/var/textureLoad/4fd803.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureLoad/4fd803.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,48 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  int4 prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureLoad
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation int4 VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+Texture3D<int4> arg_0 : register(t0, space1);
+int4 textureLoad_4fd803() {
+  int3 arg_1 = (1).xxx;
+  int arg_2 = 1;
+  Texture3D<int4> v = arg_0;
+  int v_1 = arg_2;
+  int3 v_2 = int3(arg_1);
+  int4 res = int4(v.Load(int4(v_2, int(v_1))));
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store4(0u, asuint(textureLoad_4fd803()));
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store4(0u, asuint(textureLoad_4fd803()));
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = textureLoad_4fd803();
+  VertexOutput v_3 = tint_symbol;
+  return v_3;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_4 = vertex_main_inner();
+  VertexOutput v_5 = v_4;
+  VertexOutput v_6 = v_4;
+  vertex_main_outputs v_7 = {v_6.prevent_dce, v_5.pos};
+  return v_7;
+}
+
diff --git a/test/tint/builtins/gen/var/textureLoad/4fd803.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/textureLoad/4fd803.wgsl.expected.ir.fxc.hlsl
index fd28383..d2c5864 100644
--- a/test/tint/builtins/gen/var/textureLoad/4fd803.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureLoad/4fd803.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,48 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  int4 prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureLoad
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation int4 VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+Texture3D<int4> arg_0 : register(t0, space1);
+int4 textureLoad_4fd803() {
+  int3 arg_1 = (1).xxx;
+  int arg_2 = 1;
+  Texture3D<int4> v = arg_0;
+  int v_1 = arg_2;
+  int3 v_2 = int3(arg_1);
+  int4 res = int4(v.Load(int4(v_2, int(v_1))));
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store4(0u, asuint(textureLoad_4fd803()));
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store4(0u, asuint(textureLoad_4fd803()));
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = textureLoad_4fd803();
+  VertexOutput v_3 = tint_symbol;
+  return v_3;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_4 = vertex_main_inner();
+  VertexOutput v_5 = v_4;
+  VertexOutput v_6 = v_4;
+  vertex_main_outputs v_7 = {v_6.prevent_dce, v_5.pos};
+  return v_7;
+}
+
diff --git a/test/tint/builtins/gen/var/textureLoad/505aa2.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/textureLoad/505aa2.wgsl.expected.ir.dxc.hlsl
index fd28383..334e6e8e 100644
--- a/test/tint/builtins/gen/var/textureLoad/505aa2.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureLoad/505aa2.wgsl.expected.ir.dxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureLoad
+..\..\src\tint\utils\containers\slice.h:216 internal compiler error: TINT_ASSERT(i < Length())
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/var/textureLoad/505aa2.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/textureLoad/505aa2.wgsl.expected.ir.fxc.hlsl
index fd28383..334e6e8e 100644
--- a/test/tint/builtins/gen/var/textureLoad/505aa2.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureLoad/505aa2.wgsl.expected.ir.fxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureLoad
+..\..\src\tint\utils\containers\slice.h:216 internal compiler error: TINT_ASSERT(i < Length())
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/var/textureLoad/50915c.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/textureLoad/50915c.wgsl.expected.ir.dxc.hlsl
index fd28383..334e6e8e 100644
--- a/test/tint/builtins/gen/var/textureLoad/50915c.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureLoad/50915c.wgsl.expected.ir.dxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureLoad
+..\..\src\tint\utils\containers\slice.h:216 internal compiler error: TINT_ASSERT(i < Length())
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/var/textureLoad/50915c.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/textureLoad/50915c.wgsl.expected.ir.fxc.hlsl
index fd28383..334e6e8e 100644
--- a/test/tint/builtins/gen/var/textureLoad/50915c.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureLoad/50915c.wgsl.expected.ir.fxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureLoad
+..\..\src\tint\utils\containers\slice.h:216 internal compiler error: TINT_ASSERT(i < Length())
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/var/textureLoad/5154e1.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/textureLoad/5154e1.wgsl.expected.ir.dxc.hlsl
index fd28383..334e6e8e 100644
--- a/test/tint/builtins/gen/var/textureLoad/5154e1.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureLoad/5154e1.wgsl.expected.ir.dxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureLoad
+..\..\src\tint\utils\containers\slice.h:216 internal compiler error: TINT_ASSERT(i < Length())
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/var/textureLoad/5154e1.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/textureLoad/5154e1.wgsl.expected.ir.fxc.hlsl
index fd28383..334e6e8e 100644
--- a/test/tint/builtins/gen/var/textureLoad/5154e1.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureLoad/5154e1.wgsl.expected.ir.fxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureLoad
+..\..\src\tint\utils\containers\slice.h:216 internal compiler error: TINT_ASSERT(i < Length())
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/var/textureLoad/519ab5.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/textureLoad/519ab5.wgsl.expected.ir.dxc.hlsl
index fd28383..334e6e8e 100644
--- a/test/tint/builtins/gen/var/textureLoad/519ab5.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureLoad/519ab5.wgsl.expected.ir.dxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureLoad
+..\..\src\tint\utils\containers\slice.h:216 internal compiler error: TINT_ASSERT(i < Length())
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/var/textureLoad/519ab5.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/textureLoad/519ab5.wgsl.expected.ir.fxc.hlsl
index fd28383..334e6e8e 100644
--- a/test/tint/builtins/gen/var/textureLoad/519ab5.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureLoad/519ab5.wgsl.expected.ir.fxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureLoad
+..\..\src\tint\utils\containers\slice.h:216 internal compiler error: TINT_ASSERT(i < Length())
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/var/textureLoad/53378a.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/textureLoad/53378a.wgsl.expected.ir.dxc.hlsl
index fd28383..334e6e8e 100644
--- a/test/tint/builtins/gen/var/textureLoad/53378a.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureLoad/53378a.wgsl.expected.ir.dxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureLoad
+..\..\src\tint\utils\containers\slice.h:216 internal compiler error: TINT_ASSERT(i < Length())
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/var/textureLoad/53378a.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/textureLoad/53378a.wgsl.expected.ir.fxc.hlsl
index fd28383..334e6e8e 100644
--- a/test/tint/builtins/gen/var/textureLoad/53378a.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureLoad/53378a.wgsl.expected.ir.fxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureLoad
+..\..\src\tint\utils\containers\slice.h:216 internal compiler error: TINT_ASSERT(i < Length())
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/var/textureLoad/53941c.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/textureLoad/53941c.wgsl.expected.ir.dxc.hlsl
index fd28383..334e6e8e 100644
--- a/test/tint/builtins/gen/var/textureLoad/53941c.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureLoad/53941c.wgsl.expected.ir.dxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureLoad
+..\..\src\tint\utils\containers\slice.h:216 internal compiler error: TINT_ASSERT(i < Length())
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/var/textureLoad/53941c.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/textureLoad/53941c.wgsl.expected.ir.fxc.hlsl
index fd28383..334e6e8e 100644
--- a/test/tint/builtins/gen/var/textureLoad/53941c.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureLoad/53941c.wgsl.expected.ir.fxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureLoad
+..\..\src\tint\utils\containers\slice.h:216 internal compiler error: TINT_ASSERT(i < Length())
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/var/textureLoad/53e142.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/textureLoad/53e142.wgsl.expected.ir.dxc.hlsl
index fd28383..fc29be1 100644
--- a/test/tint/builtins/gen/var/textureLoad/53e142.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureLoad/53e142.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,51 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  uint4 prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureLoad
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation uint4 VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+Texture2DArray<uint4> arg_0 : register(t0, space1);
+uint4 textureLoad_53e142() {
+  uint2 arg_1 = (1u).xx;
+  int arg_2 = 1;
+  int arg_3 = 1;
+  Texture2DArray<uint4> v = arg_0;
+  int v_1 = arg_2;
+  int v_2 = arg_3;
+  int2 v_3 = int2(arg_1);
+  int v_4 = int(v_1);
+  uint4 res = uint4(v.Load(int4(v_3, v_4, int(v_2))));
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store4(0u, textureLoad_53e142());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store4(0u, textureLoad_53e142());
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = textureLoad_53e142();
+  VertexOutput v_5 = tint_symbol;
+  return v_5;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_6 = vertex_main_inner();
+  VertexOutput v_7 = v_6;
+  VertexOutput v_8 = v_6;
+  vertex_main_outputs v_9 = {v_8.prevent_dce, v_7.pos};
+  return v_9;
+}
+
diff --git a/test/tint/builtins/gen/var/textureLoad/53e142.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/textureLoad/53e142.wgsl.expected.ir.fxc.hlsl
index fd28383..fc29be1 100644
--- a/test/tint/builtins/gen/var/textureLoad/53e142.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureLoad/53e142.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,51 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  uint4 prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureLoad
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation uint4 VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+Texture2DArray<uint4> arg_0 : register(t0, space1);
+uint4 textureLoad_53e142() {
+  uint2 arg_1 = (1u).xx;
+  int arg_2 = 1;
+  int arg_3 = 1;
+  Texture2DArray<uint4> v = arg_0;
+  int v_1 = arg_2;
+  int v_2 = arg_3;
+  int2 v_3 = int2(arg_1);
+  int v_4 = int(v_1);
+  uint4 res = uint4(v.Load(int4(v_3, v_4, int(v_2))));
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store4(0u, textureLoad_53e142());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store4(0u, textureLoad_53e142());
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = textureLoad_53e142();
+  VertexOutput v_5 = tint_symbol;
+  return v_5;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_6 = vertex_main_inner();
+  VertexOutput v_7 = v_6;
+  VertexOutput v_8 = v_6;
+  vertex_main_outputs v_9 = {v_8.prevent_dce, v_7.pos};
+  return v_9;
+}
+
diff --git a/test/tint/builtins/gen/var/textureLoad/54a59b.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/textureLoad/54a59b.wgsl.expected.ir.dxc.hlsl
index fd28383..4396f5e 100644
--- a/test/tint/builtins/gen/var/textureLoad/54a59b.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureLoad/54a59b.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,51 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  float4 prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureLoad
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation float4 VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+Texture2DArray<float4> arg_0 : register(t0, space1);
+float4 textureLoad_54a59b() {
+  uint2 arg_1 = (1u).xx;
+  int arg_2 = 1;
+  int arg_3 = 1;
+  Texture2DArray<float4> v = arg_0;
+  int v_1 = arg_2;
+  int v_2 = arg_3;
+  int2 v_3 = int2(arg_1);
+  int v_4 = int(v_1);
+  float4 res = float4(v.Load(int4(v_3, v_4, int(v_2))));
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store4(0u, asuint(textureLoad_54a59b()));
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store4(0u, asuint(textureLoad_54a59b()));
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = textureLoad_54a59b();
+  VertexOutput v_5 = tint_symbol;
+  return v_5;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_6 = vertex_main_inner();
+  VertexOutput v_7 = v_6;
+  VertexOutput v_8 = v_6;
+  vertex_main_outputs v_9 = {v_8.prevent_dce, v_7.pos};
+  return v_9;
+}
+
diff --git a/test/tint/builtins/gen/var/textureLoad/54a59b.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/textureLoad/54a59b.wgsl.expected.ir.fxc.hlsl
index fd28383..4396f5e 100644
--- a/test/tint/builtins/gen/var/textureLoad/54a59b.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureLoad/54a59b.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,51 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  float4 prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureLoad
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation float4 VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+Texture2DArray<float4> arg_0 : register(t0, space1);
+float4 textureLoad_54a59b() {
+  uint2 arg_1 = (1u).xx;
+  int arg_2 = 1;
+  int arg_3 = 1;
+  Texture2DArray<float4> v = arg_0;
+  int v_1 = arg_2;
+  int v_2 = arg_3;
+  int2 v_3 = int2(arg_1);
+  int v_4 = int(v_1);
+  float4 res = float4(v.Load(int4(v_3, v_4, int(v_2))));
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store4(0u, asuint(textureLoad_54a59b()));
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store4(0u, asuint(textureLoad_54a59b()));
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = textureLoad_54a59b();
+  VertexOutput v_5 = tint_symbol;
+  return v_5;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_6 = vertex_main_inner();
+  VertexOutput v_7 = v_6;
+  VertexOutput v_8 = v_6;
+  vertex_main_outputs v_9 = {v_8.prevent_dce, v_7.pos};
+  return v_9;
+}
+
diff --git a/test/tint/builtins/gen/var/textureLoad/54e0ce.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/textureLoad/54e0ce.wgsl.expected.ir.dxc.hlsl
index fd28383..334e6e8e 100644
--- a/test/tint/builtins/gen/var/textureLoad/54e0ce.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureLoad/54e0ce.wgsl.expected.ir.dxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureLoad
+..\..\src\tint\utils\containers\slice.h:216 internal compiler error: TINT_ASSERT(i < Length())
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/var/textureLoad/54e0ce.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/textureLoad/54e0ce.wgsl.expected.ir.fxc.hlsl
index fd28383..334e6e8e 100644
--- a/test/tint/builtins/gen/var/textureLoad/54e0ce.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureLoad/54e0ce.wgsl.expected.ir.fxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureLoad
+..\..\src\tint\utils\containers\slice.h:216 internal compiler error: TINT_ASSERT(i < Length())
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/var/textureLoad/54fb38.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/textureLoad/54fb38.wgsl.expected.ir.dxc.hlsl
index fd28383..334e6e8e 100644
--- a/test/tint/builtins/gen/var/textureLoad/54fb38.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureLoad/54fb38.wgsl.expected.ir.dxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureLoad
+..\..\src\tint\utils\containers\slice.h:216 internal compiler error: TINT_ASSERT(i < Length())
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/var/textureLoad/54fb38.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/textureLoad/54fb38.wgsl.expected.ir.fxc.hlsl
index fd28383..334e6e8e 100644
--- a/test/tint/builtins/gen/var/textureLoad/54fb38.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureLoad/54fb38.wgsl.expected.ir.fxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureLoad
+..\..\src\tint\utils\containers\slice.h:216 internal compiler error: TINT_ASSERT(i < Length())
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/var/textureLoad/55e745.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/textureLoad/55e745.wgsl.expected.ir.dxc.hlsl
index fd28383..334e6e8e 100644
--- a/test/tint/builtins/gen/var/textureLoad/55e745.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureLoad/55e745.wgsl.expected.ir.dxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureLoad
+..\..\src\tint\utils\containers\slice.h:216 internal compiler error: TINT_ASSERT(i < Length())
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/var/textureLoad/55e745.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/textureLoad/55e745.wgsl.expected.ir.fxc.hlsl
index fd28383..334e6e8e 100644
--- a/test/tint/builtins/gen/var/textureLoad/55e745.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureLoad/55e745.wgsl.expected.ir.fxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureLoad
+..\..\src\tint\utils\containers\slice.h:216 internal compiler error: TINT_ASSERT(i < Length())
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/var/textureLoad/560573.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/textureLoad/560573.wgsl.expected.ir.dxc.hlsl
index fd28383..334e6e8e 100644
--- a/test/tint/builtins/gen/var/textureLoad/560573.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureLoad/560573.wgsl.expected.ir.dxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureLoad
+..\..\src\tint\utils\containers\slice.h:216 internal compiler error: TINT_ASSERT(i < Length())
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/var/textureLoad/560573.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/textureLoad/560573.wgsl.expected.ir.fxc.hlsl
index fd28383..334e6e8e 100644
--- a/test/tint/builtins/gen/var/textureLoad/560573.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureLoad/560573.wgsl.expected.ir.fxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureLoad
+..\..\src\tint\utils\containers\slice.h:216 internal compiler error: TINT_ASSERT(i < Length())
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/var/textureLoad/56a000.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/textureLoad/56a000.wgsl.expected.ir.dxc.hlsl
index fd28383..334e6e8e 100644
--- a/test/tint/builtins/gen/var/textureLoad/56a000.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureLoad/56a000.wgsl.expected.ir.dxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureLoad
+..\..\src\tint\utils\containers\slice.h:216 internal compiler error: TINT_ASSERT(i < Length())
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/var/textureLoad/56a000.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/textureLoad/56a000.wgsl.expected.ir.fxc.hlsl
index fd28383..334e6e8e 100644
--- a/test/tint/builtins/gen/var/textureLoad/56a000.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureLoad/56a000.wgsl.expected.ir.fxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureLoad
+..\..\src\tint\utils\containers\slice.h:216 internal compiler error: TINT_ASSERT(i < Length())
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/var/textureLoad/582015.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/textureLoad/582015.wgsl.expected.ir.dxc.hlsl
index fd28383..334e6e8e 100644
--- a/test/tint/builtins/gen/var/textureLoad/582015.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureLoad/582015.wgsl.expected.ir.dxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureLoad
+..\..\src\tint\utils\containers\slice.h:216 internal compiler error: TINT_ASSERT(i < Length())
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/var/textureLoad/582015.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/textureLoad/582015.wgsl.expected.ir.fxc.hlsl
index fd28383..334e6e8e 100644
--- a/test/tint/builtins/gen/var/textureLoad/582015.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureLoad/582015.wgsl.expected.ir.fxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureLoad
+..\..\src\tint\utils\containers\slice.h:216 internal compiler error: TINT_ASSERT(i < Length())
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/var/textureLoad/589eaa.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/textureLoad/589eaa.wgsl.expected.ir.dxc.hlsl
index fd28383..334e6e8e 100644
--- a/test/tint/builtins/gen/var/textureLoad/589eaa.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureLoad/589eaa.wgsl.expected.ir.dxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureLoad
+..\..\src\tint\utils\containers\slice.h:216 internal compiler error: TINT_ASSERT(i < Length())
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/var/textureLoad/589eaa.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/textureLoad/589eaa.wgsl.expected.ir.fxc.hlsl
index fd28383..334e6e8e 100644
--- a/test/tint/builtins/gen/var/textureLoad/589eaa.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureLoad/589eaa.wgsl.expected.ir.fxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureLoad
+..\..\src\tint\utils\containers\slice.h:216 internal compiler error: TINT_ASSERT(i < Length())
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/var/textureLoad/5a2f9d.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/textureLoad/5a2f9d.wgsl.expected.ir.dxc.hlsl
index fd28383..5a1c931 100644
--- a/test/tint/builtins/gen/var/textureLoad/5a2f9d.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureLoad/5a2f9d.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,48 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  int4 prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureLoad
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation int4 VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+Texture1D<int4> arg_0 : register(t0, space1);
+int4 textureLoad_5a2f9d() {
+  int arg_1 = 1;
+  int arg_2 = 1;
+  Texture1D<int4> v = arg_0;
+  int v_1 = arg_2;
+  int v_2 = int(arg_1);
+  int4 res = int4(v.Load(int2(v_2, int(v_1))));
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store4(0u, asuint(textureLoad_5a2f9d()));
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store4(0u, asuint(textureLoad_5a2f9d()));
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = textureLoad_5a2f9d();
+  VertexOutput v_3 = tint_symbol;
+  return v_3;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_4 = vertex_main_inner();
+  VertexOutput v_5 = v_4;
+  VertexOutput v_6 = v_4;
+  vertex_main_outputs v_7 = {v_6.prevent_dce, v_5.pos};
+  return v_7;
+}
+
diff --git a/test/tint/builtins/gen/var/textureLoad/5a2f9d.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/textureLoad/5a2f9d.wgsl.expected.ir.fxc.hlsl
index fd28383..5a1c931 100644
--- a/test/tint/builtins/gen/var/textureLoad/5a2f9d.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureLoad/5a2f9d.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,48 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  int4 prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureLoad
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation int4 VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+Texture1D<int4> arg_0 : register(t0, space1);
+int4 textureLoad_5a2f9d() {
+  int arg_1 = 1;
+  int arg_2 = 1;
+  Texture1D<int4> v = arg_0;
+  int v_1 = arg_2;
+  int v_2 = int(arg_1);
+  int4 res = int4(v.Load(int2(v_2, int(v_1))));
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store4(0u, asuint(textureLoad_5a2f9d()));
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store4(0u, asuint(textureLoad_5a2f9d()));
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = textureLoad_5a2f9d();
+  VertexOutput v_3 = tint_symbol;
+  return v_3;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_4 = vertex_main_inner();
+  VertexOutput v_5 = v_4;
+  VertexOutput v_6 = v_4;
+  vertex_main_outputs v_7 = {v_6.prevent_dce, v_5.pos};
+  return v_7;
+}
+
diff --git a/test/tint/builtins/gen/var/textureLoad/5abbf2.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/textureLoad/5abbf2.wgsl.expected.ir.dxc.hlsl
index fd28383..334e6e8e 100644
--- a/test/tint/builtins/gen/var/textureLoad/5abbf2.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureLoad/5abbf2.wgsl.expected.ir.dxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureLoad
+..\..\src\tint\utils\containers\slice.h:216 internal compiler error: TINT_ASSERT(i < Length())
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/var/textureLoad/5abbf2.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/textureLoad/5abbf2.wgsl.expected.ir.fxc.hlsl
index fd28383..334e6e8e 100644
--- a/test/tint/builtins/gen/var/textureLoad/5abbf2.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureLoad/5abbf2.wgsl.expected.ir.fxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureLoad
+..\..\src\tint\utils\containers\slice.h:216 internal compiler error: TINT_ASSERT(i < Length())
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/var/textureLoad/5b0f5b.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/textureLoad/5b0f5b.wgsl.expected.ir.dxc.hlsl
index fd28383..334e6e8e 100644
--- a/test/tint/builtins/gen/var/textureLoad/5b0f5b.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureLoad/5b0f5b.wgsl.expected.ir.dxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureLoad
+..\..\src\tint\utils\containers\slice.h:216 internal compiler error: TINT_ASSERT(i < Length())
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/var/textureLoad/5b0f5b.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/textureLoad/5b0f5b.wgsl.expected.ir.fxc.hlsl
index fd28383..334e6e8e 100644
--- a/test/tint/builtins/gen/var/textureLoad/5b0f5b.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureLoad/5b0f5b.wgsl.expected.ir.fxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureLoad
+..\..\src\tint\utils\containers\slice.h:216 internal compiler error: TINT_ASSERT(i < Length())
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/var/textureLoad/5b4947.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/textureLoad/5b4947.wgsl.expected.ir.dxc.hlsl
index fd28383..334e6e8e 100644
--- a/test/tint/builtins/gen/var/textureLoad/5b4947.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureLoad/5b4947.wgsl.expected.ir.dxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureLoad
+..\..\src\tint\utils\containers\slice.h:216 internal compiler error: TINT_ASSERT(i < Length())
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/var/textureLoad/5b4947.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/textureLoad/5b4947.wgsl.expected.ir.fxc.hlsl
index fd28383..334e6e8e 100644
--- a/test/tint/builtins/gen/var/textureLoad/5b4947.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureLoad/5b4947.wgsl.expected.ir.fxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureLoad
+..\..\src\tint\utils\containers\slice.h:216 internal compiler error: TINT_ASSERT(i < Length())
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/var/textureLoad/5bb7fb.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/textureLoad/5bb7fb.wgsl.expected.ir.dxc.hlsl
index fd28383..334e6e8e 100644
--- a/test/tint/builtins/gen/var/textureLoad/5bb7fb.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureLoad/5bb7fb.wgsl.expected.ir.dxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureLoad
+..\..\src\tint\utils\containers\slice.h:216 internal compiler error: TINT_ASSERT(i < Length())
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/var/textureLoad/5bb7fb.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/textureLoad/5bb7fb.wgsl.expected.ir.fxc.hlsl
index fd28383..334e6e8e 100644
--- a/test/tint/builtins/gen/var/textureLoad/5bb7fb.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureLoad/5bb7fb.wgsl.expected.ir.fxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureLoad
+..\..\src\tint\utils\containers\slice.h:216 internal compiler error: TINT_ASSERT(i < Length())
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/var/textureLoad/5c69f8.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/textureLoad/5c69f8.wgsl.expected.ir.dxc.hlsl
index fd28383..334e6e8e 100644
--- a/test/tint/builtins/gen/var/textureLoad/5c69f8.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureLoad/5c69f8.wgsl.expected.ir.dxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureLoad
+..\..\src\tint\utils\containers\slice.h:216 internal compiler error: TINT_ASSERT(i < Length())
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/var/textureLoad/5c69f8.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/textureLoad/5c69f8.wgsl.expected.ir.fxc.hlsl
index fd28383..334e6e8e 100644
--- a/test/tint/builtins/gen/var/textureLoad/5c69f8.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureLoad/5c69f8.wgsl.expected.ir.fxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureLoad
+..\..\src\tint\utils\containers\slice.h:216 internal compiler error: TINT_ASSERT(i < Length())
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/var/textureLoad/5cd3fc.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/textureLoad/5cd3fc.wgsl.expected.ir.dxc.hlsl
index fd28383..334e6e8e 100644
--- a/test/tint/builtins/gen/var/textureLoad/5cd3fc.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureLoad/5cd3fc.wgsl.expected.ir.dxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureLoad
+..\..\src\tint\utils\containers\slice.h:216 internal compiler error: TINT_ASSERT(i < Length())
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/var/textureLoad/5cd3fc.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/textureLoad/5cd3fc.wgsl.expected.ir.fxc.hlsl
index fd28383..334e6e8e 100644
--- a/test/tint/builtins/gen/var/textureLoad/5cd3fc.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureLoad/5cd3fc.wgsl.expected.ir.fxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureLoad
+..\..\src\tint\utils\containers\slice.h:216 internal compiler error: TINT_ASSERT(i < Length())
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/var/textureLoad/5cee3b.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/textureLoad/5cee3b.wgsl.expected.ir.dxc.hlsl
index fd28383..334e6e8e 100644
--- a/test/tint/builtins/gen/var/textureLoad/5cee3b.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureLoad/5cee3b.wgsl.expected.ir.dxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureLoad
+..\..\src\tint\utils\containers\slice.h:216 internal compiler error: TINT_ASSERT(i < Length())
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/var/textureLoad/5cee3b.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/textureLoad/5cee3b.wgsl.expected.ir.fxc.hlsl
index fd28383..334e6e8e 100644
--- a/test/tint/builtins/gen/var/textureLoad/5cee3b.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureLoad/5cee3b.wgsl.expected.ir.fxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureLoad
+..\..\src\tint\utils\containers\slice.h:216 internal compiler error: TINT_ASSERT(i < Length())
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/var/textureLoad/5d0a2f.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/textureLoad/5d0a2f.wgsl.expected.ir.dxc.hlsl
index fd28383..334e6e8e 100644
--- a/test/tint/builtins/gen/var/textureLoad/5d0a2f.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureLoad/5d0a2f.wgsl.expected.ir.dxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureLoad
+..\..\src\tint\utils\containers\slice.h:216 internal compiler error: TINT_ASSERT(i < Length())
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/var/textureLoad/5d0a2f.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/textureLoad/5d0a2f.wgsl.expected.ir.fxc.hlsl
index fd28383..334e6e8e 100644
--- a/test/tint/builtins/gen/var/textureLoad/5d0a2f.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureLoad/5d0a2f.wgsl.expected.ir.fxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureLoad
+..\..\src\tint\utils\containers\slice.h:216 internal compiler error: TINT_ASSERT(i < Length())
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/var/textureLoad/5d4042.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/textureLoad/5d4042.wgsl.expected.ir.dxc.hlsl
index fd28383..334e6e8e 100644
--- a/test/tint/builtins/gen/var/textureLoad/5d4042.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureLoad/5d4042.wgsl.expected.ir.dxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureLoad
+..\..\src\tint\utils\containers\slice.h:216 internal compiler error: TINT_ASSERT(i < Length())
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/var/textureLoad/5d4042.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/textureLoad/5d4042.wgsl.expected.ir.fxc.hlsl
index fd28383..334e6e8e 100644
--- a/test/tint/builtins/gen/var/textureLoad/5d4042.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureLoad/5d4042.wgsl.expected.ir.fxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureLoad
+..\..\src\tint\utils\containers\slice.h:216 internal compiler error: TINT_ASSERT(i < Length())
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/var/textureLoad/5dd4c7.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/textureLoad/5dd4c7.wgsl.expected.ir.dxc.hlsl
index fd28383..334e6e8e 100644
--- a/test/tint/builtins/gen/var/textureLoad/5dd4c7.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureLoad/5dd4c7.wgsl.expected.ir.dxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureLoad
+..\..\src\tint\utils\containers\slice.h:216 internal compiler error: TINT_ASSERT(i < Length())
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/var/textureLoad/5dd4c7.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/textureLoad/5dd4c7.wgsl.expected.ir.fxc.hlsl
index fd28383..334e6e8e 100644
--- a/test/tint/builtins/gen/var/textureLoad/5dd4c7.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureLoad/5dd4c7.wgsl.expected.ir.fxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureLoad
+..\..\src\tint\utils\containers\slice.h:216 internal compiler error: TINT_ASSERT(i < Length())
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/var/textureLoad/5e17a7.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/textureLoad/5e17a7.wgsl.expected.ir.dxc.hlsl
index fd28383..334e6e8e 100644
--- a/test/tint/builtins/gen/var/textureLoad/5e17a7.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureLoad/5e17a7.wgsl.expected.ir.dxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureLoad
+..\..\src\tint\utils\containers\slice.h:216 internal compiler error: TINT_ASSERT(i < Length())
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/var/textureLoad/5e17a7.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/textureLoad/5e17a7.wgsl.expected.ir.fxc.hlsl
index fd28383..334e6e8e 100644
--- a/test/tint/builtins/gen/var/textureLoad/5e17a7.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureLoad/5e17a7.wgsl.expected.ir.fxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureLoad
+..\..\src\tint\utils\containers\slice.h:216 internal compiler error: TINT_ASSERT(i < Length())
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/var/textureLoad/5e1843.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/textureLoad/5e1843.wgsl.expected.ir.dxc.hlsl
index fd28383..334e6e8e 100644
--- a/test/tint/builtins/gen/var/textureLoad/5e1843.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureLoad/5e1843.wgsl.expected.ir.dxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureLoad
+..\..\src\tint\utils\containers\slice.h:216 internal compiler error: TINT_ASSERT(i < Length())
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/var/textureLoad/5e1843.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/textureLoad/5e1843.wgsl.expected.ir.fxc.hlsl
index fd28383..334e6e8e 100644
--- a/test/tint/builtins/gen/var/textureLoad/5e1843.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureLoad/5e1843.wgsl.expected.ir.fxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureLoad
+..\..\src\tint\utils\containers\slice.h:216 internal compiler error: TINT_ASSERT(i < Length())
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/var/textureLoad/5e8d3f.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/textureLoad/5e8d3f.wgsl.expected.ir.dxc.hlsl
index fd28383..334e6e8e 100644
--- a/test/tint/builtins/gen/var/textureLoad/5e8d3f.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureLoad/5e8d3f.wgsl.expected.ir.dxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureLoad
+..\..\src\tint\utils\containers\slice.h:216 internal compiler error: TINT_ASSERT(i < Length())
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/var/textureLoad/5e8d3f.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/textureLoad/5e8d3f.wgsl.expected.ir.fxc.hlsl
index fd28383..334e6e8e 100644
--- a/test/tint/builtins/gen/var/textureLoad/5e8d3f.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureLoad/5e8d3f.wgsl.expected.ir.fxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureLoad
+..\..\src\tint\utils\containers\slice.h:216 internal compiler error: TINT_ASSERT(i < Length())
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/var/textureLoad/5ed6ad.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/textureLoad/5ed6ad.wgsl.expected.ir.dxc.hlsl
index fd28383..334e6e8e 100644
--- a/test/tint/builtins/gen/var/textureLoad/5ed6ad.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureLoad/5ed6ad.wgsl.expected.ir.dxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureLoad
+..\..\src\tint\utils\containers\slice.h:216 internal compiler error: TINT_ASSERT(i < Length())
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/var/textureLoad/5ed6ad.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/textureLoad/5ed6ad.wgsl.expected.ir.fxc.hlsl
index fd28383..334e6e8e 100644
--- a/test/tint/builtins/gen/var/textureLoad/5ed6ad.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureLoad/5ed6ad.wgsl.expected.ir.fxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureLoad
+..\..\src\tint\utils\containers\slice.h:216 internal compiler error: TINT_ASSERT(i < Length())
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/var/textureLoad/5f4473.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/textureLoad/5f4473.wgsl.expected.ir.dxc.hlsl
index fd28383..334e6e8e 100644
--- a/test/tint/builtins/gen/var/textureLoad/5f4473.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureLoad/5f4473.wgsl.expected.ir.dxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureLoad
+..\..\src\tint\utils\containers\slice.h:216 internal compiler error: TINT_ASSERT(i < Length())
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/var/textureLoad/5f4473.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/textureLoad/5f4473.wgsl.expected.ir.fxc.hlsl
index fd28383..334e6e8e 100644
--- a/test/tint/builtins/gen/var/textureLoad/5f4473.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureLoad/5f4473.wgsl.expected.ir.fxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureLoad
+..\..\src\tint\utils\containers\slice.h:216 internal compiler error: TINT_ASSERT(i < Length())
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/var/textureLoad/5feb4d.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/textureLoad/5feb4d.wgsl.expected.ir.dxc.hlsl
index fd28383..334e6e8e 100644
--- a/test/tint/builtins/gen/var/textureLoad/5feb4d.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureLoad/5feb4d.wgsl.expected.ir.dxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureLoad
+..\..\src\tint\utils\containers\slice.h:216 internal compiler error: TINT_ASSERT(i < Length())
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/var/textureLoad/5feb4d.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/textureLoad/5feb4d.wgsl.expected.ir.fxc.hlsl
index fd28383..334e6e8e 100644
--- a/test/tint/builtins/gen/var/textureLoad/5feb4d.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureLoad/5feb4d.wgsl.expected.ir.fxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureLoad
+..\..\src\tint\utils\containers\slice.h:216 internal compiler error: TINT_ASSERT(i < Length())
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/var/textureLoad/6154d4.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/textureLoad/6154d4.wgsl.expected.ir.dxc.hlsl
index fd28383..26d2496 100644
--- a/test/tint/builtins/gen/var/textureLoad/6154d4.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureLoad/6154d4.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,48 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  uint4 prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureLoad
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation uint4 VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+Texture2D<uint4> arg_0 : register(t0, space1);
+uint4 textureLoad_6154d4() {
+  int2 arg_1 = (1).xx;
+  int arg_2 = 1;
+  Texture2D<uint4> v = arg_0;
+  int v_1 = arg_2;
+  int2 v_2 = int2(arg_1);
+  uint4 res = uint4(v.Load(int3(v_2, int(v_1))));
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store4(0u, textureLoad_6154d4());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store4(0u, textureLoad_6154d4());
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = textureLoad_6154d4();
+  VertexOutput v_3 = tint_symbol;
+  return v_3;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_4 = vertex_main_inner();
+  VertexOutput v_5 = v_4;
+  VertexOutput v_6 = v_4;
+  vertex_main_outputs v_7 = {v_6.prevent_dce, v_5.pos};
+  return v_7;
+}
+
diff --git a/test/tint/builtins/gen/var/textureLoad/6154d4.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/textureLoad/6154d4.wgsl.expected.ir.fxc.hlsl
index fd28383..26d2496 100644
--- a/test/tint/builtins/gen/var/textureLoad/6154d4.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureLoad/6154d4.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,48 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  uint4 prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureLoad
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation uint4 VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+Texture2D<uint4> arg_0 : register(t0, space1);
+uint4 textureLoad_6154d4() {
+  int2 arg_1 = (1).xx;
+  int arg_2 = 1;
+  Texture2D<uint4> v = arg_0;
+  int v_1 = arg_2;
+  int2 v_2 = int2(arg_1);
+  uint4 res = uint4(v.Load(int3(v_2, int(v_1))));
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store4(0u, textureLoad_6154d4());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store4(0u, textureLoad_6154d4());
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = textureLoad_6154d4();
+  VertexOutput v_3 = tint_symbol;
+  return v_3;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_4 = vertex_main_inner();
+  VertexOutput v_5 = v_4;
+  VertexOutput v_6 = v_4;
+  vertex_main_outputs v_7 = {v_6.prevent_dce, v_5.pos};
+  return v_7;
+}
+
diff --git a/test/tint/builtins/gen/var/textureLoad/61e2e8.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/textureLoad/61e2e8.wgsl.expected.ir.dxc.hlsl
index fd28383..334e6e8e 100644
--- a/test/tint/builtins/gen/var/textureLoad/61e2e8.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureLoad/61e2e8.wgsl.expected.ir.dxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureLoad
+..\..\src\tint\utils\containers\slice.h:216 internal compiler error: TINT_ASSERT(i < Length())
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/var/textureLoad/61e2e8.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/textureLoad/61e2e8.wgsl.expected.ir.fxc.hlsl
index fd28383..334e6e8e 100644
--- a/test/tint/builtins/gen/var/textureLoad/61e2e8.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureLoad/61e2e8.wgsl.expected.ir.fxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureLoad
+..\..\src\tint\utils\containers\slice.h:216 internal compiler error: TINT_ASSERT(i < Length())
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/var/textureLoad/620caa.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/textureLoad/620caa.wgsl.expected.ir.dxc.hlsl
index fd28383..334e6e8e 100644
--- a/test/tint/builtins/gen/var/textureLoad/620caa.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureLoad/620caa.wgsl.expected.ir.dxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureLoad
+..\..\src\tint\utils\containers\slice.h:216 internal compiler error: TINT_ASSERT(i < Length())
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/var/textureLoad/620caa.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/textureLoad/620caa.wgsl.expected.ir.fxc.hlsl
index fd28383..334e6e8e 100644
--- a/test/tint/builtins/gen/var/textureLoad/620caa.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureLoad/620caa.wgsl.expected.ir.fxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureLoad
+..\..\src\tint\utils\containers\slice.h:216 internal compiler error: TINT_ASSERT(i < Length())
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/var/textureLoad/622278.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/textureLoad/622278.wgsl.expected.ir.dxc.hlsl
index fd28383..334e6e8e 100644
--- a/test/tint/builtins/gen/var/textureLoad/622278.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureLoad/622278.wgsl.expected.ir.dxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureLoad
+..\..\src\tint\utils\containers\slice.h:216 internal compiler error: TINT_ASSERT(i < Length())
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/var/textureLoad/622278.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/textureLoad/622278.wgsl.expected.ir.fxc.hlsl
index fd28383..334e6e8e 100644
--- a/test/tint/builtins/gen/var/textureLoad/622278.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureLoad/622278.wgsl.expected.ir.fxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureLoad
+..\..\src\tint\utils\containers\slice.h:216 internal compiler error: TINT_ASSERT(i < Length())
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/var/textureLoad/6273b1.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/textureLoad/6273b1.wgsl.expected.ir.dxc.hlsl
index fd28383..5a2b607 100644
--- a/test/tint/builtins/gen/var/textureLoad/6273b1.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureLoad/6273b1.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,48 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  float prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureLoad
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation float VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+Texture2DMS<float4> arg_0 : register(t0, space1);
+float textureLoad_6273b1() {
+  int2 arg_1 = (1).xx;
+  int arg_2 = 1;
+  Texture2DMS<float4> v = arg_0;
+  int v_1 = arg_2;
+  int2 v_2 = int2(arg_1);
+  float res = v.Load(v_2, int(v_1)).x;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store(0u, asuint(textureLoad_6273b1()));
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store(0u, asuint(textureLoad_6273b1()));
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = textureLoad_6273b1();
+  VertexOutput v_3 = tint_symbol;
+  return v_3;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_4 = vertex_main_inner();
+  VertexOutput v_5 = v_4;
+  VertexOutput v_6 = v_4;
+  vertex_main_outputs v_7 = {v_6.prevent_dce, v_5.pos};
+  return v_7;
+}
+
diff --git a/test/tint/builtins/gen/var/textureLoad/6273b1.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/textureLoad/6273b1.wgsl.expected.ir.fxc.hlsl
index fd28383..5a2b607 100644
--- a/test/tint/builtins/gen/var/textureLoad/6273b1.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureLoad/6273b1.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,48 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  float prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureLoad
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation float VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+Texture2DMS<float4> arg_0 : register(t0, space1);
+float textureLoad_6273b1() {
+  int2 arg_1 = (1).xx;
+  int arg_2 = 1;
+  Texture2DMS<float4> v = arg_0;
+  int v_1 = arg_2;
+  int2 v_2 = int2(arg_1);
+  float res = v.Load(v_2, int(v_1)).x;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store(0u, asuint(textureLoad_6273b1()));
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store(0u, asuint(textureLoad_6273b1()));
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = textureLoad_6273b1();
+  VertexOutput v_3 = tint_symbol;
+  return v_3;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_4 = vertex_main_inner();
+  VertexOutput v_5 = v_4;
+  VertexOutput v_6 = v_4;
+  vertex_main_outputs v_7 = {v_6.prevent_dce, v_5.pos};
+  return v_7;
+}
+
diff --git a/test/tint/builtins/gen/var/textureLoad/62d125.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/textureLoad/62d125.wgsl.expected.ir.dxc.hlsl
index fd28383..334e6e8e 100644
--- a/test/tint/builtins/gen/var/textureLoad/62d125.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureLoad/62d125.wgsl.expected.ir.dxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureLoad
+..\..\src\tint\utils\containers\slice.h:216 internal compiler error: TINT_ASSERT(i < Length())
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/var/textureLoad/62d125.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/textureLoad/62d125.wgsl.expected.ir.fxc.hlsl
index fd28383..334e6e8e 100644
--- a/test/tint/builtins/gen/var/textureLoad/62d125.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureLoad/62d125.wgsl.expected.ir.fxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureLoad
+..\..\src\tint\utils\containers\slice.h:216 internal compiler error: TINT_ASSERT(i < Length())
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/var/textureLoad/62d1de.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/textureLoad/62d1de.wgsl.expected.ir.dxc.hlsl
index fd28383..2d150a5 100644
--- a/test/tint/builtins/gen/var/textureLoad/62d1de.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureLoad/62d1de.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,48 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  int4 prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureLoad
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation int4 VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+Texture1D<int4> arg_0 : register(t0, space1);
+int4 textureLoad_62d1de() {
+  int arg_1 = 1;
+  uint arg_2 = 1u;
+  Texture1D<int4> v = arg_0;
+  uint v_1 = arg_2;
+  int v_2 = int(arg_1);
+  int4 res = int4(v.Load(int2(v_2, int(v_1))));
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store4(0u, asuint(textureLoad_62d1de()));
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store4(0u, asuint(textureLoad_62d1de()));
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = textureLoad_62d1de();
+  VertexOutput v_3 = tint_symbol;
+  return v_3;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_4 = vertex_main_inner();
+  VertexOutput v_5 = v_4;
+  VertexOutput v_6 = v_4;
+  vertex_main_outputs v_7 = {v_6.prevent_dce, v_5.pos};
+  return v_7;
+}
+
diff --git a/test/tint/builtins/gen/var/textureLoad/62d1de.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/textureLoad/62d1de.wgsl.expected.ir.fxc.hlsl
index fd28383..2d150a5 100644
--- a/test/tint/builtins/gen/var/textureLoad/62d1de.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureLoad/62d1de.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,48 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  int4 prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureLoad
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation int4 VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+Texture1D<int4> arg_0 : register(t0, space1);
+int4 textureLoad_62d1de() {
+  int arg_1 = 1;
+  uint arg_2 = 1u;
+  Texture1D<int4> v = arg_0;
+  uint v_1 = arg_2;
+  int v_2 = int(arg_1);
+  int4 res = int4(v.Load(int2(v_2, int(v_1))));
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store4(0u, asuint(textureLoad_62d1de()));
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store4(0u, asuint(textureLoad_62d1de()));
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = textureLoad_62d1de();
+  VertexOutput v_3 = tint_symbol;
+  return v_3;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_4 = vertex_main_inner();
+  VertexOutput v_5 = v_4;
+  VertexOutput v_6 = v_4;
+  vertex_main_outputs v_7 = {v_6.prevent_dce, v_5.pos};
+  return v_7;
+}
+
diff --git a/test/tint/builtins/gen/var/textureLoad/639962.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/textureLoad/639962.wgsl.expected.ir.dxc.hlsl
index fd28383..a065cf7 100644
--- a/test/tint/builtins/gen/var/textureLoad/639962.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureLoad/639962.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,48 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  int4 prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureLoad
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation int4 VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+Texture2DMS<int4> arg_0 : register(t0, space1);
+int4 textureLoad_639962() {
+  uint2 arg_1 = (1u).xx;
+  uint arg_2 = 1u;
+  Texture2DMS<int4> v = arg_0;
+  uint v_1 = arg_2;
+  int2 v_2 = int2(arg_1);
+  int4 res = int4(v.Load(v_2, int(v_1)));
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store4(0u, asuint(textureLoad_639962()));
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store4(0u, asuint(textureLoad_639962()));
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = textureLoad_639962();
+  VertexOutput v_3 = tint_symbol;
+  return v_3;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_4 = vertex_main_inner();
+  VertexOutput v_5 = v_4;
+  VertexOutput v_6 = v_4;
+  vertex_main_outputs v_7 = {v_6.prevent_dce, v_5.pos};
+  return v_7;
+}
+
diff --git a/test/tint/builtins/gen/var/textureLoad/639962.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/textureLoad/639962.wgsl.expected.ir.fxc.hlsl
index fd28383..a065cf7 100644
--- a/test/tint/builtins/gen/var/textureLoad/639962.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureLoad/639962.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,48 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  int4 prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureLoad
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation int4 VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+Texture2DMS<int4> arg_0 : register(t0, space1);
+int4 textureLoad_639962() {
+  uint2 arg_1 = (1u).xx;
+  uint arg_2 = 1u;
+  Texture2DMS<int4> v = arg_0;
+  uint v_1 = arg_2;
+  int2 v_2 = int2(arg_1);
+  int4 res = int4(v.Load(v_2, int(v_1)));
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store4(0u, asuint(textureLoad_639962()));
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store4(0u, asuint(textureLoad_639962()));
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = textureLoad_639962();
+  VertexOutput v_3 = tint_symbol;
+  return v_3;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_4 = vertex_main_inner();
+  VertexOutput v_5 = v_4;
+  VertexOutput v_6 = v_4;
+  vertex_main_outputs v_7 = {v_6.prevent_dce, v_5.pos};
+  return v_7;
+}
+
diff --git a/test/tint/builtins/gen/var/textureLoad/63be18.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/textureLoad/63be18.wgsl.expected.ir.dxc.hlsl
index fd28383..334e6e8e 100644
--- a/test/tint/builtins/gen/var/textureLoad/63be18.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureLoad/63be18.wgsl.expected.ir.dxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureLoad
+..\..\src\tint\utils\containers\slice.h:216 internal compiler error: TINT_ASSERT(i < Length())
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/var/textureLoad/63be18.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/textureLoad/63be18.wgsl.expected.ir.fxc.hlsl
index fd28383..334e6e8e 100644
--- a/test/tint/builtins/gen/var/textureLoad/63be18.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureLoad/63be18.wgsl.expected.ir.fxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureLoad
+..\..\src\tint\utils\containers\slice.h:216 internal compiler error: TINT_ASSERT(i < Length())
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/var/textureLoad/64c372.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/textureLoad/64c372.wgsl.expected.ir.dxc.hlsl
index fd28383..334e6e8e 100644
--- a/test/tint/builtins/gen/var/textureLoad/64c372.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureLoad/64c372.wgsl.expected.ir.dxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureLoad
+..\..\src\tint\utils\containers\slice.h:216 internal compiler error: TINT_ASSERT(i < Length())
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/var/textureLoad/64c372.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/textureLoad/64c372.wgsl.expected.ir.fxc.hlsl
index fd28383..334e6e8e 100644
--- a/test/tint/builtins/gen/var/textureLoad/64c372.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureLoad/64c372.wgsl.expected.ir.fxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureLoad
+..\..\src\tint\utils\containers\slice.h:216 internal compiler error: TINT_ASSERT(i < Length())
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/var/textureLoad/656d76.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/textureLoad/656d76.wgsl.expected.ir.dxc.hlsl
index fd28383..0afb46a 100644
--- a/test/tint/builtins/gen/var/textureLoad/656d76.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureLoad/656d76.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,51 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  uint4 prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureLoad
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation uint4 VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+Texture2DArray<uint4> arg_0 : register(t0, space1);
+uint4 textureLoad_656d76() {
+  int2 arg_1 = (1).xx;
+  int arg_2 = 1;
+  uint arg_3 = 1u;
+  Texture2DArray<uint4> v = arg_0;
+  int v_1 = arg_2;
+  uint v_2 = arg_3;
+  int2 v_3 = int2(arg_1);
+  int v_4 = int(v_1);
+  uint4 res = uint4(v.Load(int4(v_3, v_4, int(v_2))));
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store4(0u, textureLoad_656d76());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store4(0u, textureLoad_656d76());
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = textureLoad_656d76();
+  VertexOutput v_5 = tint_symbol;
+  return v_5;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_6 = vertex_main_inner();
+  VertexOutput v_7 = v_6;
+  VertexOutput v_8 = v_6;
+  vertex_main_outputs v_9 = {v_8.prevent_dce, v_7.pos};
+  return v_9;
+}
+
diff --git a/test/tint/builtins/gen/var/textureLoad/656d76.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/textureLoad/656d76.wgsl.expected.ir.fxc.hlsl
index fd28383..0afb46a 100644
--- a/test/tint/builtins/gen/var/textureLoad/656d76.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureLoad/656d76.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,51 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  uint4 prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureLoad
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation uint4 VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+Texture2DArray<uint4> arg_0 : register(t0, space1);
+uint4 textureLoad_656d76() {
+  int2 arg_1 = (1).xx;
+  int arg_2 = 1;
+  uint arg_3 = 1u;
+  Texture2DArray<uint4> v = arg_0;
+  int v_1 = arg_2;
+  uint v_2 = arg_3;
+  int2 v_3 = int2(arg_1);
+  int v_4 = int(v_1);
+  uint4 res = uint4(v.Load(int4(v_3, v_4, int(v_2))));
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store4(0u, textureLoad_656d76());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store4(0u, textureLoad_656d76());
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = textureLoad_656d76();
+  VertexOutput v_5 = tint_symbol;
+  return v_5;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_6 = vertex_main_inner();
+  VertexOutput v_7 = v_6;
+  VertexOutput v_8 = v_6;
+  vertex_main_outputs v_9 = {v_8.prevent_dce, v_7.pos};
+  return v_9;
+}
+
diff --git a/test/tint/builtins/gen/var/textureLoad/65a4d0.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/textureLoad/65a4d0.wgsl.expected.ir.dxc.hlsl
index fd28383..334e6e8e 100644
--- a/test/tint/builtins/gen/var/textureLoad/65a4d0.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureLoad/65a4d0.wgsl.expected.ir.dxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureLoad
+..\..\src\tint\utils\containers\slice.h:216 internal compiler error: TINT_ASSERT(i < Length())
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/var/textureLoad/65a4d0.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/textureLoad/65a4d0.wgsl.expected.ir.fxc.hlsl
index fd28383..334e6e8e 100644
--- a/test/tint/builtins/gen/var/textureLoad/65a4d0.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureLoad/65a4d0.wgsl.expected.ir.fxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureLoad
+..\..\src\tint\utils\containers\slice.h:216 internal compiler error: TINT_ASSERT(i < Length())
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/var/textureLoad/666010.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/textureLoad/666010.wgsl.expected.ir.dxc.hlsl
index fd28383..334e6e8e 100644
--- a/test/tint/builtins/gen/var/textureLoad/666010.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureLoad/666010.wgsl.expected.ir.dxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureLoad
+..\..\src\tint\utils\containers\slice.h:216 internal compiler error: TINT_ASSERT(i < Length())
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/var/textureLoad/666010.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/textureLoad/666010.wgsl.expected.ir.fxc.hlsl
index fd28383..334e6e8e 100644
--- a/test/tint/builtins/gen/var/textureLoad/666010.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureLoad/666010.wgsl.expected.ir.fxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureLoad
+..\..\src\tint\utils\containers\slice.h:216 internal compiler error: TINT_ASSERT(i < Length())
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/var/textureLoad/6678b6.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/textureLoad/6678b6.wgsl.expected.ir.dxc.hlsl
index fd28383..334e6e8e 100644
--- a/test/tint/builtins/gen/var/textureLoad/6678b6.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureLoad/6678b6.wgsl.expected.ir.dxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureLoad
+..\..\src\tint\utils\containers\slice.h:216 internal compiler error: TINT_ASSERT(i < Length())
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/var/textureLoad/6678b6.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/textureLoad/6678b6.wgsl.expected.ir.fxc.hlsl
index fd28383..334e6e8e 100644
--- a/test/tint/builtins/gen/var/textureLoad/6678b6.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureLoad/6678b6.wgsl.expected.ir.fxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureLoad
+..\..\src\tint\utils\containers\slice.h:216 internal compiler error: TINT_ASSERT(i < Length())
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/var/textureLoad/66be47.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/textureLoad/66be47.wgsl.expected.ir.dxc.hlsl
index fd28383..0f32847 100644
--- a/test/tint/builtins/gen/var/textureLoad/66be47.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureLoad/66be47.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,51 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  float prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureLoad
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation float VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+Texture2DArray arg_0 : register(t0, space1);
+float textureLoad_66be47() {
+  int2 arg_1 = (1).xx;
+  uint arg_2 = 1u;
+  uint arg_3 = 1u;
+  Texture2DArray v = arg_0;
+  uint v_1 = arg_2;
+  uint v_2 = arg_3;
+  int2 v_3 = int2(arg_1);
+  int v_4 = int(v_1);
+  float res = v.Load(int4(v_3, v_4, int(v_2))).x;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store(0u, asuint(textureLoad_66be47()));
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store(0u, asuint(textureLoad_66be47()));
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = textureLoad_66be47();
+  VertexOutput v_5 = tint_symbol;
+  return v_5;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_6 = vertex_main_inner();
+  VertexOutput v_7 = v_6;
+  VertexOutput v_8 = v_6;
+  vertex_main_outputs v_9 = {v_8.prevent_dce, v_7.pos};
+  return v_9;
+}
+
diff --git a/test/tint/builtins/gen/var/textureLoad/66be47.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/textureLoad/66be47.wgsl.expected.ir.fxc.hlsl
index fd28383..0f32847 100644
--- a/test/tint/builtins/gen/var/textureLoad/66be47.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureLoad/66be47.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,51 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  float prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureLoad
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation float VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+Texture2DArray arg_0 : register(t0, space1);
+float textureLoad_66be47() {
+  int2 arg_1 = (1).xx;
+  uint arg_2 = 1u;
+  uint arg_3 = 1u;
+  Texture2DArray v = arg_0;
+  uint v_1 = arg_2;
+  uint v_2 = arg_3;
+  int2 v_3 = int2(arg_1);
+  int v_4 = int(v_1);
+  float res = v.Load(int4(v_3, v_4, int(v_2))).x;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store(0u, asuint(textureLoad_66be47()));
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store(0u, asuint(textureLoad_66be47()));
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = textureLoad_66be47();
+  VertexOutput v_5 = tint_symbol;
+  return v_5;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_6 = vertex_main_inner();
+  VertexOutput v_7 = v_6;
+  VertexOutput v_8 = v_6;
+  vertex_main_outputs v_9 = {v_8.prevent_dce, v_7.pos};
+  return v_9;
+}
+
diff --git a/test/tint/builtins/gen/var/textureLoad/67d826.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/textureLoad/67d826.wgsl.expected.ir.dxc.hlsl
index fd28383..334e6e8e 100644
--- a/test/tint/builtins/gen/var/textureLoad/67d826.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureLoad/67d826.wgsl.expected.ir.dxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureLoad
+..\..\src\tint\utils\containers\slice.h:216 internal compiler error: TINT_ASSERT(i < Length())
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/var/textureLoad/67d826.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/textureLoad/67d826.wgsl.expected.ir.fxc.hlsl
index fd28383..334e6e8e 100644
--- a/test/tint/builtins/gen/var/textureLoad/67d826.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureLoad/67d826.wgsl.expected.ir.fxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureLoad
+..\..\src\tint\utils\containers\slice.h:216 internal compiler error: TINT_ASSERT(i < Length())
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/var/textureLoad/67edca.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/textureLoad/67edca.wgsl.expected.ir.dxc.hlsl
index fd28383..334e6e8e 100644
--- a/test/tint/builtins/gen/var/textureLoad/67edca.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureLoad/67edca.wgsl.expected.ir.dxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureLoad
+..\..\src\tint\utils\containers\slice.h:216 internal compiler error: TINT_ASSERT(i < Length())
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/var/textureLoad/67edca.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/textureLoad/67edca.wgsl.expected.ir.fxc.hlsl
index fd28383..334e6e8e 100644
--- a/test/tint/builtins/gen/var/textureLoad/67edca.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureLoad/67edca.wgsl.expected.ir.fxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureLoad
+..\..\src\tint\utils\containers\slice.h:216 internal compiler error: TINT_ASSERT(i < Length())
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/var/textureLoad/68d273.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/textureLoad/68d273.wgsl.expected.ir.dxc.hlsl
index fd28383..334e6e8e 100644
--- a/test/tint/builtins/gen/var/textureLoad/68d273.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureLoad/68d273.wgsl.expected.ir.dxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureLoad
+..\..\src\tint\utils\containers\slice.h:216 internal compiler error: TINT_ASSERT(i < Length())
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/var/textureLoad/68d273.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/textureLoad/68d273.wgsl.expected.ir.fxc.hlsl
index fd28383..334e6e8e 100644
--- a/test/tint/builtins/gen/var/textureLoad/68d273.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureLoad/68d273.wgsl.expected.ir.fxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureLoad
+..\..\src\tint\utils\containers\slice.h:216 internal compiler error: TINT_ASSERT(i < Length())
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/var/textureLoad/6925bc.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/textureLoad/6925bc.wgsl.expected.ir.dxc.hlsl
index fd28383..48bc5a7 100644
--- a/test/tint/builtins/gen/var/textureLoad/6925bc.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureLoad/6925bc.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,48 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  float prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureLoad
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation float VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+Texture2DMS<float4> arg_0 : register(t0, space1);
+float textureLoad_6925bc() {
+  int2 arg_1 = (1).xx;
+  uint arg_2 = 1u;
+  Texture2DMS<float4> v = arg_0;
+  uint v_1 = arg_2;
+  int2 v_2 = int2(arg_1);
+  float res = v.Load(v_2, int(v_1)).x;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store(0u, asuint(textureLoad_6925bc()));
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store(0u, asuint(textureLoad_6925bc()));
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = textureLoad_6925bc();
+  VertexOutput v_3 = tint_symbol;
+  return v_3;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_4 = vertex_main_inner();
+  VertexOutput v_5 = v_4;
+  VertexOutput v_6 = v_4;
+  vertex_main_outputs v_7 = {v_6.prevent_dce, v_5.pos};
+  return v_7;
+}
+
diff --git a/test/tint/builtins/gen/var/textureLoad/6925bc.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/textureLoad/6925bc.wgsl.expected.ir.fxc.hlsl
index fd28383..48bc5a7 100644
--- a/test/tint/builtins/gen/var/textureLoad/6925bc.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureLoad/6925bc.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,48 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  float prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureLoad
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation float VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+Texture2DMS<float4> arg_0 : register(t0, space1);
+float textureLoad_6925bc() {
+  int2 arg_1 = (1).xx;
+  uint arg_2 = 1u;
+  Texture2DMS<float4> v = arg_0;
+  uint v_1 = arg_2;
+  int2 v_2 = int2(arg_1);
+  float res = v.Load(v_2, int(v_1)).x;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store(0u, asuint(textureLoad_6925bc()));
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store(0u, asuint(textureLoad_6925bc()));
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = textureLoad_6925bc();
+  VertexOutput v_3 = tint_symbol;
+  return v_3;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_4 = vertex_main_inner();
+  VertexOutput v_5 = v_4;
+  VertexOutput v_6 = v_4;
+  vertex_main_outputs v_7 = {v_6.prevent_dce, v_5.pos};
+  return v_7;
+}
+
diff --git a/test/tint/builtins/gen/var/textureLoad/69fee5.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/textureLoad/69fee5.wgsl.expected.ir.dxc.hlsl
index fd28383..334e6e8e 100644
--- a/test/tint/builtins/gen/var/textureLoad/69fee5.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureLoad/69fee5.wgsl.expected.ir.dxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureLoad
+..\..\src\tint\utils\containers\slice.h:216 internal compiler error: TINT_ASSERT(i < Length())
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/var/textureLoad/69fee5.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/textureLoad/69fee5.wgsl.expected.ir.fxc.hlsl
index fd28383..334e6e8e 100644
--- a/test/tint/builtins/gen/var/textureLoad/69fee5.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureLoad/69fee5.wgsl.expected.ir.fxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureLoad
+..\..\src\tint\utils\containers\slice.h:216 internal compiler error: TINT_ASSERT(i < Length())
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/var/textureLoad/6a6871.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/textureLoad/6a6871.wgsl.expected.ir.dxc.hlsl
index fd28383..334e6e8e 100644
--- a/test/tint/builtins/gen/var/textureLoad/6a6871.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureLoad/6a6871.wgsl.expected.ir.dxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureLoad
+..\..\src\tint\utils\containers\slice.h:216 internal compiler error: TINT_ASSERT(i < Length())
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/var/textureLoad/6a6871.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/textureLoad/6a6871.wgsl.expected.ir.fxc.hlsl
index fd28383..334e6e8e 100644
--- a/test/tint/builtins/gen/var/textureLoad/6a6871.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureLoad/6a6871.wgsl.expected.ir.fxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureLoad
+..\..\src\tint\utils\containers\slice.h:216 internal compiler error: TINT_ASSERT(i < Length())
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/var/textureLoad/6b77d4.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/textureLoad/6b77d4.wgsl.expected.ir.dxc.hlsl
index fd28383..8288f7f 100644
--- a/test/tint/builtins/gen/var/textureLoad/6b77d4.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureLoad/6b77d4.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,48 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  uint4 prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureLoad
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation uint4 VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+Texture1D<uint4> arg_0 : register(t0, space1);
+uint4 textureLoad_6b77d4() {
+  int arg_1 = 1;
+  uint arg_2 = 1u;
+  Texture1D<uint4> v = arg_0;
+  uint v_1 = arg_2;
+  int v_2 = int(arg_1);
+  uint4 res = uint4(v.Load(int2(v_2, int(v_1))));
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store4(0u, textureLoad_6b77d4());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store4(0u, textureLoad_6b77d4());
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = textureLoad_6b77d4();
+  VertexOutput v_3 = tint_symbol;
+  return v_3;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_4 = vertex_main_inner();
+  VertexOutput v_5 = v_4;
+  VertexOutput v_6 = v_4;
+  vertex_main_outputs v_7 = {v_6.prevent_dce, v_5.pos};
+  return v_7;
+}
+
diff --git a/test/tint/builtins/gen/var/textureLoad/6b77d4.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/textureLoad/6b77d4.wgsl.expected.ir.fxc.hlsl
index fd28383..8288f7f 100644
--- a/test/tint/builtins/gen/var/textureLoad/6b77d4.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureLoad/6b77d4.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,48 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  uint4 prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureLoad
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation uint4 VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+Texture1D<uint4> arg_0 : register(t0, space1);
+uint4 textureLoad_6b77d4() {
+  int arg_1 = 1;
+  uint arg_2 = 1u;
+  Texture1D<uint4> v = arg_0;
+  uint v_1 = arg_2;
+  int v_2 = int(arg_1);
+  uint4 res = uint4(v.Load(int2(v_2, int(v_1))));
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store4(0u, textureLoad_6b77d4());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store4(0u, textureLoad_6b77d4());
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = textureLoad_6b77d4();
+  VertexOutput v_3 = tint_symbol;
+  return v_3;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_4 = vertex_main_inner();
+  VertexOutput v_5 = v_4;
+  VertexOutput v_6 = v_4;
+  vertex_main_outputs v_7 = {v_6.prevent_dce, v_5.pos};
+  return v_7;
+}
+
diff --git a/test/tint/builtins/gen/var/textureLoad/6b8ba6.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/textureLoad/6b8ba6.wgsl.expected.ir.dxc.hlsl
index fd28383..334e6e8e 100644
--- a/test/tint/builtins/gen/var/textureLoad/6b8ba6.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureLoad/6b8ba6.wgsl.expected.ir.dxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureLoad
+..\..\src\tint\utils\containers\slice.h:216 internal compiler error: TINT_ASSERT(i < Length())
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/var/textureLoad/6b8ba6.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/textureLoad/6b8ba6.wgsl.expected.ir.fxc.hlsl
index fd28383..334e6e8e 100644
--- a/test/tint/builtins/gen/var/textureLoad/6b8ba6.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureLoad/6b8ba6.wgsl.expected.ir.fxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureLoad
+..\..\src\tint\utils\containers\slice.h:216 internal compiler error: TINT_ASSERT(i < Length())
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/var/textureLoad/6ba9ab.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/textureLoad/6ba9ab.wgsl.expected.ir.dxc.hlsl
index fd28383..334e6e8e 100644
--- a/test/tint/builtins/gen/var/textureLoad/6ba9ab.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureLoad/6ba9ab.wgsl.expected.ir.dxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureLoad
+..\..\src\tint\utils\containers\slice.h:216 internal compiler error: TINT_ASSERT(i < Length())
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/var/textureLoad/6ba9ab.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/textureLoad/6ba9ab.wgsl.expected.ir.fxc.hlsl
index fd28383..334e6e8e 100644
--- a/test/tint/builtins/gen/var/textureLoad/6ba9ab.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureLoad/6ba9ab.wgsl.expected.ir.fxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureLoad
+..\..\src\tint\utils\containers\slice.h:216 internal compiler error: TINT_ASSERT(i < Length())
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/var/textureLoad/6bf3e2.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/textureLoad/6bf3e2.wgsl.expected.ir.dxc.hlsl
index fd28383..334e6e8e 100644
--- a/test/tint/builtins/gen/var/textureLoad/6bf3e2.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureLoad/6bf3e2.wgsl.expected.ir.dxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureLoad
+..\..\src\tint\utils\containers\slice.h:216 internal compiler error: TINT_ASSERT(i < Length())
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/var/textureLoad/6bf3e2.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/textureLoad/6bf3e2.wgsl.expected.ir.fxc.hlsl
index fd28383..334e6e8e 100644
--- a/test/tint/builtins/gen/var/textureLoad/6bf3e2.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureLoad/6bf3e2.wgsl.expected.ir.fxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureLoad
+..\..\src\tint\utils\containers\slice.h:216 internal compiler error: TINT_ASSERT(i < Length())
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/var/textureLoad/6bf4b7.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/textureLoad/6bf4b7.wgsl.expected.ir.dxc.hlsl
index fd28383..086d5e4 100644
--- a/test/tint/builtins/gen/var/textureLoad/6bf4b7.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureLoad/6bf4b7.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,48 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  uint4 prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureLoad
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation uint4 VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+Texture3D<uint4> arg_0 : register(t0, space1);
+uint4 textureLoad_6bf4b7() {
+  int3 arg_1 = (1).xxx;
+  uint arg_2 = 1u;
+  Texture3D<uint4> v = arg_0;
+  uint v_1 = arg_2;
+  int3 v_2 = int3(arg_1);
+  uint4 res = uint4(v.Load(int4(v_2, int(v_1))));
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store4(0u, textureLoad_6bf4b7());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store4(0u, textureLoad_6bf4b7());
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = textureLoad_6bf4b7();
+  VertexOutput v_3 = tint_symbol;
+  return v_3;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_4 = vertex_main_inner();
+  VertexOutput v_5 = v_4;
+  VertexOutput v_6 = v_4;
+  vertex_main_outputs v_7 = {v_6.prevent_dce, v_5.pos};
+  return v_7;
+}
+
diff --git a/test/tint/builtins/gen/var/textureLoad/6bf4b7.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/textureLoad/6bf4b7.wgsl.expected.ir.fxc.hlsl
index fd28383..086d5e4 100644
--- a/test/tint/builtins/gen/var/textureLoad/6bf4b7.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureLoad/6bf4b7.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,48 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  uint4 prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureLoad
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation uint4 VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+Texture3D<uint4> arg_0 : register(t0, space1);
+uint4 textureLoad_6bf4b7() {
+  int3 arg_1 = (1).xxx;
+  uint arg_2 = 1u;
+  Texture3D<uint4> v = arg_0;
+  uint v_1 = arg_2;
+  int3 v_2 = int3(arg_1);
+  uint4 res = uint4(v.Load(int4(v_2, int(v_1))));
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store4(0u, textureLoad_6bf4b7());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store4(0u, textureLoad_6bf4b7());
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = textureLoad_6bf4b7();
+  VertexOutput v_3 = tint_symbol;
+  return v_3;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_4 = vertex_main_inner();
+  VertexOutput v_5 = v_4;
+  VertexOutput v_6 = v_4;
+  vertex_main_outputs v_7 = {v_6.prevent_dce, v_5.pos};
+  return v_7;
+}
+
diff --git a/test/tint/builtins/gen/var/textureLoad/6d1fb4.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/textureLoad/6d1fb4.wgsl.expected.ir.dxc.hlsl
index fd28383..334e6e8e 100644
--- a/test/tint/builtins/gen/var/textureLoad/6d1fb4.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureLoad/6d1fb4.wgsl.expected.ir.dxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureLoad
+..\..\src\tint\utils\containers\slice.h:216 internal compiler error: TINT_ASSERT(i < Length())
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/var/textureLoad/6d1fb4.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/textureLoad/6d1fb4.wgsl.expected.ir.fxc.hlsl
index fd28383..334e6e8e 100644
--- a/test/tint/builtins/gen/var/textureLoad/6d1fb4.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureLoad/6d1fb4.wgsl.expected.ir.fxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureLoad
+..\..\src\tint\utils\containers\slice.h:216 internal compiler error: TINT_ASSERT(i < Length())
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/var/textureLoad/6d376a.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/textureLoad/6d376a.wgsl.expected.ir.dxc.hlsl
index fd28383..5daffbb 100644
--- a/test/tint/builtins/gen/var/textureLoad/6d376a.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureLoad/6d376a.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,48 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  float4 prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureLoad
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation float4 VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+Texture1D<float4> arg_0 : register(t0, space1);
+float4 textureLoad_6d376a() {
+  uint arg_1 = 1u;
+  uint arg_2 = 1u;
+  Texture1D<float4> v = arg_0;
+  uint v_1 = arg_2;
+  int v_2 = int(arg_1);
+  float4 res = float4(v.Load(int2(v_2, int(v_1))));
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store4(0u, asuint(textureLoad_6d376a()));
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store4(0u, asuint(textureLoad_6d376a()));
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = textureLoad_6d376a();
+  VertexOutput v_3 = tint_symbol;
+  return v_3;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_4 = vertex_main_inner();
+  VertexOutput v_5 = v_4;
+  VertexOutput v_6 = v_4;
+  vertex_main_outputs v_7 = {v_6.prevent_dce, v_5.pos};
+  return v_7;
+}
+
diff --git a/test/tint/builtins/gen/var/textureLoad/6d376a.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/textureLoad/6d376a.wgsl.expected.ir.fxc.hlsl
index fd28383..5daffbb 100644
--- a/test/tint/builtins/gen/var/textureLoad/6d376a.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureLoad/6d376a.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,48 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  float4 prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureLoad
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation float4 VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+Texture1D<float4> arg_0 : register(t0, space1);
+float4 textureLoad_6d376a() {
+  uint arg_1 = 1u;
+  uint arg_2 = 1u;
+  Texture1D<float4> v = arg_0;
+  uint v_1 = arg_2;
+  int v_2 = int(arg_1);
+  float4 res = float4(v.Load(int2(v_2, int(v_1))));
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store4(0u, asuint(textureLoad_6d376a()));
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store4(0u, asuint(textureLoad_6d376a()));
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = textureLoad_6d376a();
+  VertexOutput v_3 = tint_symbol;
+  return v_3;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_4 = vertex_main_inner();
+  VertexOutput v_5 = v_4;
+  VertexOutput v_6 = v_4;
+  vertex_main_outputs v_7 = {v_6.prevent_dce, v_5.pos};
+  return v_7;
+}
+
diff --git a/test/tint/builtins/gen/var/textureLoad/6d7bb5.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/textureLoad/6d7bb5.wgsl.expected.ir.dxc.hlsl
index fd28383..334e6e8e 100644
--- a/test/tint/builtins/gen/var/textureLoad/6d7bb5.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureLoad/6d7bb5.wgsl.expected.ir.dxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureLoad
+..\..\src\tint\utils\containers\slice.h:216 internal compiler error: TINT_ASSERT(i < Length())
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/var/textureLoad/6d7bb5.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/textureLoad/6d7bb5.wgsl.expected.ir.fxc.hlsl
index fd28383..334e6e8e 100644
--- a/test/tint/builtins/gen/var/textureLoad/6d7bb5.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureLoad/6d7bb5.wgsl.expected.ir.fxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureLoad
+..\..\src\tint\utils\containers\slice.h:216 internal compiler error: TINT_ASSERT(i < Length())
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/var/textureLoad/6e903f.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/textureLoad/6e903f.wgsl.expected.ir.dxc.hlsl
index fd28383..334e6e8e 100644
--- a/test/tint/builtins/gen/var/textureLoad/6e903f.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureLoad/6e903f.wgsl.expected.ir.dxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureLoad
+..\..\src\tint\utils\containers\slice.h:216 internal compiler error: TINT_ASSERT(i < Length())
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/var/textureLoad/6e903f.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/textureLoad/6e903f.wgsl.expected.ir.fxc.hlsl
index fd28383..334e6e8e 100644
--- a/test/tint/builtins/gen/var/textureLoad/6e903f.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureLoad/6e903f.wgsl.expected.ir.fxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureLoad
+..\..\src\tint\utils\containers\slice.h:216 internal compiler error: TINT_ASSERT(i < Length())
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/var/textureLoad/6f0370.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/textureLoad/6f0370.wgsl.expected.ir.dxc.hlsl
index fd28383..334e6e8e 100644
--- a/test/tint/builtins/gen/var/textureLoad/6f0370.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureLoad/6f0370.wgsl.expected.ir.dxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureLoad
+..\..\src\tint\utils\containers\slice.h:216 internal compiler error: TINT_ASSERT(i < Length())
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/var/textureLoad/6f0370.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/textureLoad/6f0370.wgsl.expected.ir.fxc.hlsl
index fd28383..334e6e8e 100644
--- a/test/tint/builtins/gen/var/textureLoad/6f0370.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureLoad/6f0370.wgsl.expected.ir.fxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureLoad
+..\..\src\tint\utils\containers\slice.h:216 internal compiler error: TINT_ASSERT(i < Length())
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/var/textureLoad/6f0ea8.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/textureLoad/6f0ea8.wgsl.expected.ir.dxc.hlsl
index fd28383..334e6e8e 100644
--- a/test/tint/builtins/gen/var/textureLoad/6f0ea8.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureLoad/6f0ea8.wgsl.expected.ir.dxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureLoad
+..\..\src\tint\utils\containers\slice.h:216 internal compiler error: TINT_ASSERT(i < Length())
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/var/textureLoad/6f0ea8.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/textureLoad/6f0ea8.wgsl.expected.ir.fxc.hlsl
index fd28383..334e6e8e 100644
--- a/test/tint/builtins/gen/var/textureLoad/6f0ea8.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureLoad/6f0ea8.wgsl.expected.ir.fxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureLoad
+..\..\src\tint\utils\containers\slice.h:216 internal compiler error: TINT_ASSERT(i < Length())
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/var/textureLoad/6f1750.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/textureLoad/6f1750.wgsl.expected.ir.dxc.hlsl
index fd28383..334e6e8e 100644
--- a/test/tint/builtins/gen/var/textureLoad/6f1750.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureLoad/6f1750.wgsl.expected.ir.dxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureLoad
+..\..\src\tint\utils\containers\slice.h:216 internal compiler error: TINT_ASSERT(i < Length())
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/var/textureLoad/6f1750.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/textureLoad/6f1750.wgsl.expected.ir.fxc.hlsl
index fd28383..334e6e8e 100644
--- a/test/tint/builtins/gen/var/textureLoad/6f1750.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureLoad/6f1750.wgsl.expected.ir.fxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureLoad
+..\..\src\tint\utils\containers\slice.h:216 internal compiler error: TINT_ASSERT(i < Length())
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/var/textureLoad/6f8927.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/textureLoad/6f8927.wgsl.expected.ir.dxc.hlsl
index fd28383..334e6e8e 100644
--- a/test/tint/builtins/gen/var/textureLoad/6f8927.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureLoad/6f8927.wgsl.expected.ir.dxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureLoad
+..\..\src\tint\utils\containers\slice.h:216 internal compiler error: TINT_ASSERT(i < Length())
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/var/textureLoad/6f8927.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/textureLoad/6f8927.wgsl.expected.ir.fxc.hlsl
index fd28383..334e6e8e 100644
--- a/test/tint/builtins/gen/var/textureLoad/6f8927.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureLoad/6f8927.wgsl.expected.ir.fxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureLoad
+..\..\src\tint\utils\containers\slice.h:216 internal compiler error: TINT_ASSERT(i < Length())
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/var/textureLoad/714471.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/textureLoad/714471.wgsl.expected.ir.dxc.hlsl
index fd28383..460e4ce 100644
--- a/test/tint/builtins/gen/var/textureLoad/714471.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureLoad/714471.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,48 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  int4 prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureLoad
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation int4 VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+Texture2D<int4> arg_0 : register(t0, space1);
+int4 textureLoad_714471() {
+  uint2 arg_1 = (1u).xx;
+  uint arg_2 = 1u;
+  Texture2D<int4> v = arg_0;
+  uint v_1 = arg_2;
+  int2 v_2 = int2(arg_1);
+  int4 res = int4(v.Load(int3(v_2, int(v_1))));
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store4(0u, asuint(textureLoad_714471()));
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store4(0u, asuint(textureLoad_714471()));
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = textureLoad_714471();
+  VertexOutput v_3 = tint_symbol;
+  return v_3;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_4 = vertex_main_inner();
+  VertexOutput v_5 = v_4;
+  VertexOutput v_6 = v_4;
+  vertex_main_outputs v_7 = {v_6.prevent_dce, v_5.pos};
+  return v_7;
+}
+
diff --git a/test/tint/builtins/gen/var/textureLoad/714471.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/textureLoad/714471.wgsl.expected.ir.fxc.hlsl
index fd28383..460e4ce 100644
--- a/test/tint/builtins/gen/var/textureLoad/714471.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureLoad/714471.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,48 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  int4 prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureLoad
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation int4 VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+Texture2D<int4> arg_0 : register(t0, space1);
+int4 textureLoad_714471() {
+  uint2 arg_1 = (1u).xx;
+  uint arg_2 = 1u;
+  Texture2D<int4> v = arg_0;
+  uint v_1 = arg_2;
+  int2 v_2 = int2(arg_1);
+  int4 res = int4(v.Load(int3(v_2, int(v_1))));
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store4(0u, asuint(textureLoad_714471()));
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store4(0u, asuint(textureLoad_714471()));
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = textureLoad_714471();
+  VertexOutput v_3 = tint_symbol;
+  return v_3;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_4 = vertex_main_inner();
+  VertexOutput v_5 = v_4;
+  VertexOutput v_6 = v_4;
+  vertex_main_outputs v_7 = {v_6.prevent_dce, v_5.pos};
+  return v_7;
+}
+
diff --git a/test/tint/builtins/gen/var/textureLoad/72bb3c.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/textureLoad/72bb3c.wgsl.expected.ir.dxc.hlsl
index fd28383..334e6e8e 100644
--- a/test/tint/builtins/gen/var/textureLoad/72bb3c.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureLoad/72bb3c.wgsl.expected.ir.dxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureLoad
+..\..\src\tint\utils\containers\slice.h:216 internal compiler error: TINT_ASSERT(i < Length())
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/var/textureLoad/72bb3c.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/textureLoad/72bb3c.wgsl.expected.ir.fxc.hlsl
index fd28383..334e6e8e 100644
--- a/test/tint/builtins/gen/var/textureLoad/72bb3c.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureLoad/72bb3c.wgsl.expected.ir.fxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureLoad
+..\..\src\tint\utils\containers\slice.h:216 internal compiler error: TINT_ASSERT(i < Length())
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/var/textureLoad/72c9c3.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/textureLoad/72c9c3.wgsl.expected.ir.dxc.hlsl
index fd28383..334e6e8e 100644
--- a/test/tint/builtins/gen/var/textureLoad/72c9c3.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureLoad/72c9c3.wgsl.expected.ir.dxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureLoad
+..\..\src\tint\utils\containers\slice.h:216 internal compiler error: TINT_ASSERT(i < Length())
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/var/textureLoad/72c9c3.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/textureLoad/72c9c3.wgsl.expected.ir.fxc.hlsl
index fd28383..334e6e8e 100644
--- a/test/tint/builtins/gen/var/textureLoad/72c9c3.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureLoad/72c9c3.wgsl.expected.ir.fxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureLoad
+..\..\src\tint\utils\containers\slice.h:216 internal compiler error: TINT_ASSERT(i < Length())
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/var/textureLoad/742f1b.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/textureLoad/742f1b.wgsl.expected.ir.dxc.hlsl
index fd28383..334e6e8e 100644
--- a/test/tint/builtins/gen/var/textureLoad/742f1b.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureLoad/742f1b.wgsl.expected.ir.dxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureLoad
+..\..\src\tint\utils\containers\slice.h:216 internal compiler error: TINT_ASSERT(i < Length())
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/var/textureLoad/742f1b.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/textureLoad/742f1b.wgsl.expected.ir.fxc.hlsl
index fd28383..334e6e8e 100644
--- a/test/tint/builtins/gen/var/textureLoad/742f1b.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureLoad/742f1b.wgsl.expected.ir.fxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureLoad
+..\..\src\tint\utils\containers\slice.h:216 internal compiler error: TINT_ASSERT(i < Length())
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/var/textureLoad/749704.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/textureLoad/749704.wgsl.expected.ir.dxc.hlsl
index fd28383..334e6e8e 100644
--- a/test/tint/builtins/gen/var/textureLoad/749704.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureLoad/749704.wgsl.expected.ir.dxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureLoad
+..\..\src\tint\utils\containers\slice.h:216 internal compiler error: TINT_ASSERT(i < Length())
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/var/textureLoad/749704.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/textureLoad/749704.wgsl.expected.ir.fxc.hlsl
index fd28383..334e6e8e 100644
--- a/test/tint/builtins/gen/var/textureLoad/749704.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureLoad/749704.wgsl.expected.ir.fxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureLoad
+..\..\src\tint\utils\containers\slice.h:216 internal compiler error: TINT_ASSERT(i < Length())
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/var/textureLoad/74a387.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/textureLoad/74a387.wgsl.expected.ir.dxc.hlsl
index fd28383..334e6e8e 100644
--- a/test/tint/builtins/gen/var/textureLoad/74a387.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureLoad/74a387.wgsl.expected.ir.dxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureLoad
+..\..\src\tint\utils\containers\slice.h:216 internal compiler error: TINT_ASSERT(i < Length())
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/var/textureLoad/74a387.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/textureLoad/74a387.wgsl.expected.ir.fxc.hlsl
index fd28383..334e6e8e 100644
--- a/test/tint/builtins/gen/var/textureLoad/74a387.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureLoad/74a387.wgsl.expected.ir.fxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureLoad
+..\..\src\tint\utils\containers\slice.h:216 internal compiler error: TINT_ASSERT(i < Length())
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/var/textureLoad/773c46.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/textureLoad/773c46.wgsl.expected.ir.dxc.hlsl
index fd28383..334e6e8e 100644
--- a/test/tint/builtins/gen/var/textureLoad/773c46.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureLoad/773c46.wgsl.expected.ir.dxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureLoad
+..\..\src\tint\utils\containers\slice.h:216 internal compiler error: TINT_ASSERT(i < Length())
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/var/textureLoad/773c46.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/textureLoad/773c46.wgsl.expected.ir.fxc.hlsl
index fd28383..334e6e8e 100644
--- a/test/tint/builtins/gen/var/textureLoad/773c46.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureLoad/773c46.wgsl.expected.ir.fxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureLoad
+..\..\src\tint\utils\containers\slice.h:216 internal compiler error: TINT_ASSERT(i < Length())
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/var/textureLoad/789045.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/textureLoad/789045.wgsl.expected.ir.dxc.hlsl
index fd28383..a7bc7eb 100644
--- a/test/tint/builtins/gen/var/textureLoad/789045.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureLoad/789045.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,51 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  float4 prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureLoad
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation float4 VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+Texture2DArray<float4> arg_0 : register(t0, space1);
+float4 textureLoad_789045() {
+  int2 arg_1 = (1).xx;
+  int arg_2 = 1;
+  uint arg_3 = 1u;
+  Texture2DArray<float4> v = arg_0;
+  int v_1 = arg_2;
+  uint v_2 = arg_3;
+  int2 v_3 = int2(arg_1);
+  int v_4 = int(v_1);
+  float4 res = float4(v.Load(int4(v_3, v_4, int(v_2))));
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store4(0u, asuint(textureLoad_789045()));
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store4(0u, asuint(textureLoad_789045()));
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = textureLoad_789045();
+  VertexOutput v_5 = tint_symbol;
+  return v_5;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_6 = vertex_main_inner();
+  VertexOutput v_7 = v_6;
+  VertexOutput v_8 = v_6;
+  vertex_main_outputs v_9 = {v_8.prevent_dce, v_7.pos};
+  return v_9;
+}
+
diff --git a/test/tint/builtins/gen/var/textureLoad/789045.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/textureLoad/789045.wgsl.expected.ir.fxc.hlsl
index fd28383..a7bc7eb 100644
--- a/test/tint/builtins/gen/var/textureLoad/789045.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureLoad/789045.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,51 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  float4 prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureLoad
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation float4 VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+Texture2DArray<float4> arg_0 : register(t0, space1);
+float4 textureLoad_789045() {
+  int2 arg_1 = (1).xx;
+  int arg_2 = 1;
+  uint arg_3 = 1u;
+  Texture2DArray<float4> v = arg_0;
+  int v_1 = arg_2;
+  uint v_2 = arg_3;
+  int2 v_3 = int2(arg_1);
+  int v_4 = int(v_1);
+  float4 res = float4(v.Load(int4(v_3, v_4, int(v_2))));
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store4(0u, asuint(textureLoad_789045()));
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store4(0u, asuint(textureLoad_789045()));
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = textureLoad_789045();
+  VertexOutput v_5 = tint_symbol;
+  return v_5;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_6 = vertex_main_inner();
+  VertexOutput v_7 = v_6;
+  VertexOutput v_8 = v_6;
+  vertex_main_outputs v_9 = {v_8.prevent_dce, v_7.pos};
+  return v_9;
+}
+
diff --git a/test/tint/builtins/gen/var/textureLoad/79e697.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/textureLoad/79e697.wgsl.expected.ir.dxc.hlsl
index fd28383..0821f49 100644
--- a/test/tint/builtins/gen/var/textureLoad/79e697.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureLoad/79e697.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,51 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  int4 prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureLoad
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation int4 VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+Texture2DArray<int4> arg_0 : register(t0, space1);
+int4 textureLoad_79e697() {
+  int2 arg_1 = (1).xx;
+  int arg_2 = 1;
+  int arg_3 = 1;
+  Texture2DArray<int4> v = arg_0;
+  int v_1 = arg_2;
+  int v_2 = arg_3;
+  int2 v_3 = int2(arg_1);
+  int v_4 = int(v_1);
+  int4 res = int4(v.Load(int4(v_3, v_4, int(v_2))));
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store4(0u, asuint(textureLoad_79e697()));
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store4(0u, asuint(textureLoad_79e697()));
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = textureLoad_79e697();
+  VertexOutput v_5 = tint_symbol;
+  return v_5;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_6 = vertex_main_inner();
+  VertexOutput v_7 = v_6;
+  VertexOutput v_8 = v_6;
+  vertex_main_outputs v_9 = {v_8.prevent_dce, v_7.pos};
+  return v_9;
+}
+
diff --git a/test/tint/builtins/gen/var/textureLoad/79e697.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/textureLoad/79e697.wgsl.expected.ir.fxc.hlsl
index fd28383..0821f49 100644
--- a/test/tint/builtins/gen/var/textureLoad/79e697.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureLoad/79e697.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,51 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  int4 prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureLoad
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation int4 VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+Texture2DArray<int4> arg_0 : register(t0, space1);
+int4 textureLoad_79e697() {
+  int2 arg_1 = (1).xx;
+  int arg_2 = 1;
+  int arg_3 = 1;
+  Texture2DArray<int4> v = arg_0;
+  int v_1 = arg_2;
+  int v_2 = arg_3;
+  int2 v_3 = int2(arg_1);
+  int v_4 = int(v_1);
+  int4 res = int4(v.Load(int4(v_3, v_4, int(v_2))));
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store4(0u, asuint(textureLoad_79e697()));
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store4(0u, asuint(textureLoad_79e697()));
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = textureLoad_79e697();
+  VertexOutput v_5 = tint_symbol;
+  return v_5;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_6 = vertex_main_inner();
+  VertexOutput v_7 = v_6;
+  VertexOutput v_8 = v_6;
+  vertex_main_outputs v_9 = {v_8.prevent_dce, v_7.pos};
+  return v_9;
+}
+
diff --git a/test/tint/builtins/gen/var/textureLoad/7ab4df.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/textureLoad/7ab4df.wgsl.expected.ir.dxc.hlsl
index fd28383..6eb31b3 100644
--- a/test/tint/builtins/gen/var/textureLoad/7ab4df.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureLoad/7ab4df.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,51 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  uint4 prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureLoad
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation uint4 VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+Texture2DArray<uint4> arg_0 : register(t0, space1);
+uint4 textureLoad_7ab4df() {
+  int2 arg_1 = (1).xx;
+  uint arg_2 = 1u;
+  int arg_3 = 1;
+  Texture2DArray<uint4> v = arg_0;
+  uint v_1 = arg_2;
+  int v_2 = arg_3;
+  int2 v_3 = int2(arg_1);
+  int v_4 = int(v_1);
+  uint4 res = uint4(v.Load(int4(v_3, v_4, int(v_2))));
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store4(0u, textureLoad_7ab4df());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store4(0u, textureLoad_7ab4df());
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = textureLoad_7ab4df();
+  VertexOutput v_5 = tint_symbol;
+  return v_5;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_6 = vertex_main_inner();
+  VertexOutput v_7 = v_6;
+  VertexOutput v_8 = v_6;
+  vertex_main_outputs v_9 = {v_8.prevent_dce, v_7.pos};
+  return v_9;
+}
+
diff --git a/test/tint/builtins/gen/var/textureLoad/7ab4df.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/textureLoad/7ab4df.wgsl.expected.ir.fxc.hlsl
index fd28383..6eb31b3 100644
--- a/test/tint/builtins/gen/var/textureLoad/7ab4df.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureLoad/7ab4df.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,51 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  uint4 prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureLoad
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation uint4 VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+Texture2DArray<uint4> arg_0 : register(t0, space1);
+uint4 textureLoad_7ab4df() {
+  int2 arg_1 = (1).xx;
+  uint arg_2 = 1u;
+  int arg_3 = 1;
+  Texture2DArray<uint4> v = arg_0;
+  uint v_1 = arg_2;
+  int v_2 = arg_3;
+  int2 v_3 = int2(arg_1);
+  int v_4 = int(v_1);
+  uint4 res = uint4(v.Load(int4(v_3, v_4, int(v_2))));
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store4(0u, textureLoad_7ab4df());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store4(0u, textureLoad_7ab4df());
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = textureLoad_7ab4df();
+  VertexOutput v_5 = tint_symbol;
+  return v_5;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_6 = vertex_main_inner();
+  VertexOutput v_7 = v_6;
+  VertexOutput v_8 = v_6;
+  vertex_main_outputs v_9 = {v_8.prevent_dce, v_7.pos};
+  return v_9;
+}
+
diff --git a/test/tint/builtins/gen/var/textureLoad/7b63e0.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/textureLoad/7b63e0.wgsl.expected.ir.dxc.hlsl
index fd28383..9fdfbcd 100644
--- a/test/tint/builtins/gen/var/textureLoad/7b63e0.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureLoad/7b63e0.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,51 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  float prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureLoad
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation float VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+Texture2DArray arg_0 : register(t0, space1);
+float textureLoad_7b63e0() {
+  uint2 arg_1 = (1u).xx;
+  uint arg_2 = 1u;
+  uint arg_3 = 1u;
+  Texture2DArray v = arg_0;
+  uint v_1 = arg_2;
+  uint v_2 = arg_3;
+  int2 v_3 = int2(arg_1);
+  int v_4 = int(v_1);
+  float res = v.Load(int4(v_3, v_4, int(v_2))).x;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store(0u, asuint(textureLoad_7b63e0()));
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store(0u, asuint(textureLoad_7b63e0()));
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = textureLoad_7b63e0();
+  VertexOutput v_5 = tint_symbol;
+  return v_5;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_6 = vertex_main_inner();
+  VertexOutput v_7 = v_6;
+  VertexOutput v_8 = v_6;
+  vertex_main_outputs v_9 = {v_8.prevent_dce, v_7.pos};
+  return v_9;
+}
+
diff --git a/test/tint/builtins/gen/var/textureLoad/7b63e0.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/textureLoad/7b63e0.wgsl.expected.ir.fxc.hlsl
index fd28383..9fdfbcd 100644
--- a/test/tint/builtins/gen/var/textureLoad/7b63e0.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureLoad/7b63e0.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,51 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  float prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureLoad
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation float VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+Texture2DArray arg_0 : register(t0, space1);
+float textureLoad_7b63e0() {
+  uint2 arg_1 = (1u).xx;
+  uint arg_2 = 1u;
+  uint arg_3 = 1u;
+  Texture2DArray v = arg_0;
+  uint v_1 = arg_2;
+  uint v_2 = arg_3;
+  int2 v_3 = int2(arg_1);
+  int v_4 = int(v_1);
+  float res = v.Load(int4(v_3, v_4, int(v_2))).x;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store(0u, asuint(textureLoad_7b63e0()));
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store(0u, asuint(textureLoad_7b63e0()));
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = textureLoad_7b63e0();
+  VertexOutput v_5 = tint_symbol;
+  return v_5;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_6 = vertex_main_inner();
+  VertexOutput v_7 = v_6;
+  VertexOutput v_8 = v_6;
+  vertex_main_outputs v_9 = {v_8.prevent_dce, v_7.pos};
+  return v_9;
+}
+
diff --git a/test/tint/builtins/gen/var/textureLoad/7bee94.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/textureLoad/7bee94.wgsl.expected.ir.dxc.hlsl
index fd28383..2662018 100644
--- a/test/tint/builtins/gen/var/textureLoad/7bee94.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureLoad/7bee94.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,48 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  int4 prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureLoad
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation int4 VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+Texture2DMS<int4> arg_0 : register(t0, space1);
+int4 textureLoad_7bee94() {
+  uint2 arg_1 = (1u).xx;
+  int arg_2 = 1;
+  Texture2DMS<int4> v = arg_0;
+  int v_1 = arg_2;
+  int2 v_2 = int2(arg_1);
+  int4 res = int4(v.Load(v_2, int(v_1)));
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store4(0u, asuint(textureLoad_7bee94()));
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store4(0u, asuint(textureLoad_7bee94()));
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = textureLoad_7bee94();
+  VertexOutput v_3 = tint_symbol;
+  return v_3;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_4 = vertex_main_inner();
+  VertexOutput v_5 = v_4;
+  VertexOutput v_6 = v_4;
+  vertex_main_outputs v_7 = {v_6.prevent_dce, v_5.pos};
+  return v_7;
+}
+
diff --git a/test/tint/builtins/gen/var/textureLoad/7bee94.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/textureLoad/7bee94.wgsl.expected.ir.fxc.hlsl
index fd28383..2662018 100644
--- a/test/tint/builtins/gen/var/textureLoad/7bee94.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureLoad/7bee94.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,48 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  int4 prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureLoad
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation int4 VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+Texture2DMS<int4> arg_0 : register(t0, space1);
+int4 textureLoad_7bee94() {
+  uint2 arg_1 = (1u).xx;
+  int arg_2 = 1;
+  Texture2DMS<int4> v = arg_0;
+  int v_1 = arg_2;
+  int2 v_2 = int2(arg_1);
+  int4 res = int4(v.Load(v_2, int(v_1)));
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store4(0u, asuint(textureLoad_7bee94()));
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store4(0u, asuint(textureLoad_7bee94()));
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = textureLoad_7bee94();
+  VertexOutput v_3 = tint_symbol;
+  return v_3;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_4 = vertex_main_inner();
+  VertexOutput v_5 = v_4;
+  VertexOutput v_6 = v_4;
+  vertex_main_outputs v_7 = {v_6.prevent_dce, v_5.pos};
+  return v_7;
+}
+
diff --git a/test/tint/builtins/gen/var/textureLoad/7c90e5.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/textureLoad/7c90e5.wgsl.expected.ir.dxc.hlsl
index fd28383..7db639c 100644
--- a/test/tint/builtins/gen/var/textureLoad/7c90e5.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureLoad/7c90e5.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,51 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  uint4 prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureLoad
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation uint4 VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+Texture2DArray<uint4> arg_0 : register(t0, space1);
+uint4 textureLoad_7c90e5() {
+  int2 arg_1 = (1).xx;
+  int arg_2 = 1;
+  int arg_3 = 1;
+  Texture2DArray<uint4> v = arg_0;
+  int v_1 = arg_2;
+  int v_2 = arg_3;
+  int2 v_3 = int2(arg_1);
+  int v_4 = int(v_1);
+  uint4 res = uint4(v.Load(int4(v_3, v_4, int(v_2))));
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store4(0u, textureLoad_7c90e5());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store4(0u, textureLoad_7c90e5());
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = textureLoad_7c90e5();
+  VertexOutput v_5 = tint_symbol;
+  return v_5;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_6 = vertex_main_inner();
+  VertexOutput v_7 = v_6;
+  VertexOutput v_8 = v_6;
+  vertex_main_outputs v_9 = {v_8.prevent_dce, v_7.pos};
+  return v_9;
+}
+
diff --git a/test/tint/builtins/gen/var/textureLoad/7c90e5.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/textureLoad/7c90e5.wgsl.expected.ir.fxc.hlsl
index fd28383..7db639c 100644
--- a/test/tint/builtins/gen/var/textureLoad/7c90e5.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureLoad/7c90e5.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,51 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  uint4 prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureLoad
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation uint4 VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+Texture2DArray<uint4> arg_0 : register(t0, space1);
+uint4 textureLoad_7c90e5() {
+  int2 arg_1 = (1).xx;
+  int arg_2 = 1;
+  int arg_3 = 1;
+  Texture2DArray<uint4> v = arg_0;
+  int v_1 = arg_2;
+  int v_2 = arg_3;
+  int2 v_3 = int2(arg_1);
+  int v_4 = int(v_1);
+  uint4 res = uint4(v.Load(int4(v_3, v_4, int(v_2))));
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store4(0u, textureLoad_7c90e5());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store4(0u, textureLoad_7c90e5());
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = textureLoad_7c90e5();
+  VertexOutput v_5 = tint_symbol;
+  return v_5;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_6 = vertex_main_inner();
+  VertexOutput v_7 = v_6;
+  VertexOutput v_8 = v_6;
+  vertex_main_outputs v_9 = {v_8.prevent_dce, v_7.pos};
+  return v_9;
+}
+
diff --git a/test/tint/builtins/gen/var/textureLoad/7dab57.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/textureLoad/7dab57.wgsl.expected.ir.dxc.hlsl
index fd28383..334e6e8e 100644
--- a/test/tint/builtins/gen/var/textureLoad/7dab57.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureLoad/7dab57.wgsl.expected.ir.dxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureLoad
+..\..\src\tint\utils\containers\slice.h:216 internal compiler error: TINT_ASSERT(i < Length())
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/var/textureLoad/7dab57.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/textureLoad/7dab57.wgsl.expected.ir.fxc.hlsl
index fd28383..334e6e8e 100644
--- a/test/tint/builtins/gen/var/textureLoad/7dab57.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureLoad/7dab57.wgsl.expected.ir.fxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureLoad
+..\..\src\tint\utils\containers\slice.h:216 internal compiler error: TINT_ASSERT(i < Length())
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/var/textureLoad/7dd3d5.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/textureLoad/7dd3d5.wgsl.expected.ir.dxc.hlsl
index fd28383..334e6e8e 100644
--- a/test/tint/builtins/gen/var/textureLoad/7dd3d5.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureLoad/7dd3d5.wgsl.expected.ir.dxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureLoad
+..\..\src\tint\utils\containers\slice.h:216 internal compiler error: TINT_ASSERT(i < Length())
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/var/textureLoad/7dd3d5.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/textureLoad/7dd3d5.wgsl.expected.ir.fxc.hlsl
index fd28383..334e6e8e 100644
--- a/test/tint/builtins/gen/var/textureLoad/7dd3d5.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureLoad/7dd3d5.wgsl.expected.ir.fxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureLoad
+..\..\src\tint\utils\containers\slice.h:216 internal compiler error: TINT_ASSERT(i < Length())
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/var/textureLoad/7e5cbc.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/textureLoad/7e5cbc.wgsl.expected.ir.dxc.hlsl
index fd28383..334e6e8e 100644
--- a/test/tint/builtins/gen/var/textureLoad/7e5cbc.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureLoad/7e5cbc.wgsl.expected.ir.dxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureLoad
+..\..\src\tint\utils\containers\slice.h:216 internal compiler error: TINT_ASSERT(i < Length())
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/var/textureLoad/7e5cbc.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/textureLoad/7e5cbc.wgsl.expected.ir.fxc.hlsl
index fd28383..334e6e8e 100644
--- a/test/tint/builtins/gen/var/textureLoad/7e5cbc.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureLoad/7e5cbc.wgsl.expected.ir.fxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureLoad
+..\..\src\tint\utils\containers\slice.h:216 internal compiler error: TINT_ASSERT(i < Length())
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/var/textureLoad/7fd822.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/textureLoad/7fd822.wgsl.expected.ir.dxc.hlsl
index fd28383..2d94fe9 100644
--- a/test/tint/builtins/gen/var/textureLoad/7fd822.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureLoad/7fd822.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,48 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  float prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureLoad
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation float VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+Texture2D arg_0 : register(t0, space1);
+float textureLoad_7fd822() {
+  uint2 arg_1 = (1u).xx;
+  int arg_2 = 1;
+  Texture2D v = arg_0;
+  int v_1 = arg_2;
+  int2 v_2 = int2(arg_1);
+  float res = v.Load(int3(v_2, int(v_1))).x;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store(0u, asuint(textureLoad_7fd822()));
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store(0u, asuint(textureLoad_7fd822()));
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = textureLoad_7fd822();
+  VertexOutput v_3 = tint_symbol;
+  return v_3;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_4 = vertex_main_inner();
+  VertexOutput v_5 = v_4;
+  VertexOutput v_6 = v_4;
+  vertex_main_outputs v_7 = {v_6.prevent_dce, v_5.pos};
+  return v_7;
+}
+
diff --git a/test/tint/builtins/gen/var/textureLoad/7fd822.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/textureLoad/7fd822.wgsl.expected.ir.fxc.hlsl
index fd28383..2d94fe9 100644
--- a/test/tint/builtins/gen/var/textureLoad/7fd822.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureLoad/7fd822.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,48 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  float prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureLoad
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation float VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+Texture2D arg_0 : register(t0, space1);
+float textureLoad_7fd822() {
+  uint2 arg_1 = (1u).xx;
+  int arg_2 = 1;
+  Texture2D v = arg_0;
+  int v_1 = arg_2;
+  int2 v_2 = int2(arg_1);
+  float res = v.Load(int3(v_2, int(v_1))).x;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store(0u, asuint(textureLoad_7fd822()));
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store(0u, asuint(textureLoad_7fd822()));
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = textureLoad_7fd822();
+  VertexOutput v_3 = tint_symbol;
+  return v_3;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_4 = vertex_main_inner();
+  VertexOutput v_5 = v_4;
+  VertexOutput v_6 = v_4;
+  vertex_main_outputs v_7 = {v_6.prevent_dce, v_5.pos};
+  return v_7;
+}
+
diff --git a/test/tint/builtins/gen/var/textureLoad/80dae1.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/textureLoad/80dae1.wgsl.expected.ir.dxc.hlsl
index fd28383..334e6e8e 100644
--- a/test/tint/builtins/gen/var/textureLoad/80dae1.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureLoad/80dae1.wgsl.expected.ir.dxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureLoad
+..\..\src\tint\utils\containers\slice.h:216 internal compiler error: TINT_ASSERT(i < Length())
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/var/textureLoad/80dae1.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/textureLoad/80dae1.wgsl.expected.ir.fxc.hlsl
index fd28383..334e6e8e 100644
--- a/test/tint/builtins/gen/var/textureLoad/80dae1.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureLoad/80dae1.wgsl.expected.ir.fxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureLoad
+..\..\src\tint\utils\containers\slice.h:216 internal compiler error: TINT_ASSERT(i < Length())
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/var/textureLoad/81c381.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/textureLoad/81c381.wgsl.expected.ir.dxc.hlsl
index fd28383..71651c2 100644
--- a/test/tint/builtins/gen/var/textureLoad/81c381.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureLoad/81c381.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,48 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  float4 prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureLoad
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation float4 VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+Texture1D<float4> arg_0 : register(t0, space1);
+float4 textureLoad_81c381() {
+  int arg_1 = 1;
+  int arg_2 = 1;
+  Texture1D<float4> v = arg_0;
+  int v_1 = arg_2;
+  int v_2 = int(arg_1);
+  float4 res = float4(v.Load(int2(v_2, int(v_1))));
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store4(0u, asuint(textureLoad_81c381()));
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store4(0u, asuint(textureLoad_81c381()));
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = textureLoad_81c381();
+  VertexOutput v_3 = tint_symbol;
+  return v_3;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_4 = vertex_main_inner();
+  VertexOutput v_5 = v_4;
+  VertexOutput v_6 = v_4;
+  vertex_main_outputs v_7 = {v_6.prevent_dce, v_5.pos};
+  return v_7;
+}
+
diff --git a/test/tint/builtins/gen/var/textureLoad/81c381.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/textureLoad/81c381.wgsl.expected.ir.fxc.hlsl
index fd28383..71651c2 100644
--- a/test/tint/builtins/gen/var/textureLoad/81c381.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureLoad/81c381.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,48 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  float4 prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureLoad
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation float4 VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+Texture1D<float4> arg_0 : register(t0, space1);
+float4 textureLoad_81c381() {
+  int arg_1 = 1;
+  int arg_2 = 1;
+  Texture1D<float4> v = arg_0;
+  int v_1 = arg_2;
+  int v_2 = int(arg_1);
+  float4 res = float4(v.Load(int2(v_2, int(v_1))));
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store4(0u, asuint(textureLoad_81c381()));
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store4(0u, asuint(textureLoad_81c381()));
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = textureLoad_81c381();
+  VertexOutput v_3 = tint_symbol;
+  return v_3;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_4 = vertex_main_inner();
+  VertexOutput v_5 = v_4;
+  VertexOutput v_6 = v_4;
+  vertex_main_outputs v_7 = {v_6.prevent_dce, v_5.pos};
+  return v_7;
+}
+
diff --git a/test/tint/builtins/gen/var/textureLoad/83162f.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/textureLoad/83162f.wgsl.expected.ir.dxc.hlsl
index fd28383..334e6e8e 100644
--- a/test/tint/builtins/gen/var/textureLoad/83162f.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureLoad/83162f.wgsl.expected.ir.dxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureLoad
+..\..\src\tint\utils\containers\slice.h:216 internal compiler error: TINT_ASSERT(i < Length())
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/var/textureLoad/83162f.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/textureLoad/83162f.wgsl.expected.ir.fxc.hlsl
index fd28383..334e6e8e 100644
--- a/test/tint/builtins/gen/var/textureLoad/83162f.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureLoad/83162f.wgsl.expected.ir.fxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureLoad
+..\..\src\tint\utils\containers\slice.h:216 internal compiler error: TINT_ASSERT(i < Length())
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/var/textureLoad/83cea4.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/textureLoad/83cea4.wgsl.expected.ir.dxc.hlsl
index fd28383..334e6e8e 100644
--- a/test/tint/builtins/gen/var/textureLoad/83cea4.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureLoad/83cea4.wgsl.expected.ir.dxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureLoad
+..\..\src\tint\utils\containers\slice.h:216 internal compiler error: TINT_ASSERT(i < Length())
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/var/textureLoad/83cea4.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/textureLoad/83cea4.wgsl.expected.ir.fxc.hlsl
index fd28383..334e6e8e 100644
--- a/test/tint/builtins/gen/var/textureLoad/83cea4.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureLoad/83cea4.wgsl.expected.ir.fxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureLoad
+..\..\src\tint\utils\containers\slice.h:216 internal compiler error: TINT_ASSERT(i < Length())
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/var/textureLoad/83d6e3.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/textureLoad/83d6e3.wgsl.expected.ir.dxc.hlsl
index fd28383..334e6e8e 100644
--- a/test/tint/builtins/gen/var/textureLoad/83d6e3.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureLoad/83d6e3.wgsl.expected.ir.dxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureLoad
+..\..\src\tint\utils\containers\slice.h:216 internal compiler error: TINT_ASSERT(i < Length())
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/var/textureLoad/83d6e3.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/textureLoad/83d6e3.wgsl.expected.ir.fxc.hlsl
index fd28383..334e6e8e 100644
--- a/test/tint/builtins/gen/var/textureLoad/83d6e3.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureLoad/83d6e3.wgsl.expected.ir.fxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureLoad
+..\..\src\tint\utils\containers\slice.h:216 internal compiler error: TINT_ASSERT(i < Length())
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/var/textureLoad/848d85.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/textureLoad/848d85.wgsl.expected.ir.dxc.hlsl
index fd28383..334e6e8e 100644
--- a/test/tint/builtins/gen/var/textureLoad/848d85.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureLoad/848d85.wgsl.expected.ir.dxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureLoad
+..\..\src\tint\utils\containers\slice.h:216 internal compiler error: TINT_ASSERT(i < Length())
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/var/textureLoad/848d85.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/textureLoad/848d85.wgsl.expected.ir.fxc.hlsl
index fd28383..334e6e8e 100644
--- a/test/tint/builtins/gen/var/textureLoad/848d85.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureLoad/848d85.wgsl.expected.ir.fxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureLoad
+..\..\src\tint\utils\containers\slice.h:216 internal compiler error: TINT_ASSERT(i < Length())
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/var/textureLoad/84a438.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/textureLoad/84a438.wgsl.expected.ir.dxc.hlsl
index fd28383..334e6e8e 100644
--- a/test/tint/builtins/gen/var/textureLoad/84a438.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureLoad/84a438.wgsl.expected.ir.dxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureLoad
+..\..\src\tint\utils\containers\slice.h:216 internal compiler error: TINT_ASSERT(i < Length())
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/var/textureLoad/84a438.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/textureLoad/84a438.wgsl.expected.ir.fxc.hlsl
index fd28383..334e6e8e 100644
--- a/test/tint/builtins/gen/var/textureLoad/84a438.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureLoad/84a438.wgsl.expected.ir.fxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureLoad
+..\..\src\tint\utils\containers\slice.h:216 internal compiler error: TINT_ASSERT(i < Length())
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/var/textureLoad/84c728.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/textureLoad/84c728.wgsl.expected.ir.dxc.hlsl
index fd28383..334e6e8e 100644
--- a/test/tint/builtins/gen/var/textureLoad/84c728.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureLoad/84c728.wgsl.expected.ir.dxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureLoad
+..\..\src\tint\utils\containers\slice.h:216 internal compiler error: TINT_ASSERT(i < Length())
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/var/textureLoad/84c728.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/textureLoad/84c728.wgsl.expected.ir.fxc.hlsl
index fd28383..334e6e8e 100644
--- a/test/tint/builtins/gen/var/textureLoad/84c728.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureLoad/84c728.wgsl.expected.ir.fxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureLoad
+..\..\src\tint\utils\containers\slice.h:216 internal compiler error: TINT_ASSERT(i < Length())
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/var/textureLoad/84dee1.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/textureLoad/84dee1.wgsl.expected.ir.dxc.hlsl
index fd28383..644cc91 100644
--- a/test/tint/builtins/gen/var/textureLoad/84dee1.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureLoad/84dee1.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,48 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  float4 prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureLoad
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation float4 VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+Texture2D<float4> arg_0 : register(t0, space1);
+float4 textureLoad_84dee1() {
+  uint2 arg_1 = (1u).xx;
+  uint arg_2 = 1u;
+  Texture2D<float4> v = arg_0;
+  uint v_1 = arg_2;
+  int2 v_2 = int2(arg_1);
+  float4 res = float4(v.Load(int3(v_2, int(v_1))));
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store4(0u, asuint(textureLoad_84dee1()));
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store4(0u, asuint(textureLoad_84dee1()));
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = textureLoad_84dee1();
+  VertexOutput v_3 = tint_symbol;
+  return v_3;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_4 = vertex_main_inner();
+  VertexOutput v_5 = v_4;
+  VertexOutput v_6 = v_4;
+  vertex_main_outputs v_7 = {v_6.prevent_dce, v_5.pos};
+  return v_7;
+}
+
diff --git a/test/tint/builtins/gen/var/textureLoad/84dee1.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/textureLoad/84dee1.wgsl.expected.ir.fxc.hlsl
index fd28383..644cc91 100644
--- a/test/tint/builtins/gen/var/textureLoad/84dee1.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureLoad/84dee1.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,48 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  float4 prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureLoad
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation float4 VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+Texture2D<float4> arg_0 : register(t0, space1);
+float4 textureLoad_84dee1() {
+  uint2 arg_1 = (1u).xx;
+  uint arg_2 = 1u;
+  Texture2D<float4> v = arg_0;
+  uint v_1 = arg_2;
+  int2 v_2 = int2(arg_1);
+  float4 res = float4(v.Load(int3(v_2, int(v_1))));
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store4(0u, asuint(textureLoad_84dee1()));
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store4(0u, asuint(textureLoad_84dee1()));
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = textureLoad_84dee1();
+  VertexOutput v_3 = tint_symbol;
+  return v_3;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_4 = vertex_main_inner();
+  VertexOutput v_5 = v_4;
+  VertexOutput v_6 = v_4;
+  vertex_main_outputs v_7 = {v_6.prevent_dce, v_5.pos};
+  return v_7;
+}
+
diff --git a/test/tint/builtins/gen/var/textureLoad/8527b1.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/textureLoad/8527b1.wgsl.expected.ir.dxc.hlsl
index fd28383..14fdfa2 100644
--- a/test/tint/builtins/gen/var/textureLoad/8527b1.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureLoad/8527b1.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,51 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  uint4 prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureLoad
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation uint4 VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+Texture2DArray<uint4> arg_0 : register(t0, space1);
+uint4 textureLoad_8527b1() {
+  uint2 arg_1 = (1u).xx;
+  uint arg_2 = 1u;
+  uint arg_3 = 1u;
+  Texture2DArray<uint4> v = arg_0;
+  uint v_1 = arg_2;
+  uint v_2 = arg_3;
+  int2 v_3 = int2(arg_1);
+  int v_4 = int(v_1);
+  uint4 res = uint4(v.Load(int4(v_3, v_4, int(v_2))));
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store4(0u, textureLoad_8527b1());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store4(0u, textureLoad_8527b1());
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = textureLoad_8527b1();
+  VertexOutput v_5 = tint_symbol;
+  return v_5;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_6 = vertex_main_inner();
+  VertexOutput v_7 = v_6;
+  VertexOutput v_8 = v_6;
+  vertex_main_outputs v_9 = {v_8.prevent_dce, v_7.pos};
+  return v_9;
+}
+
diff --git a/test/tint/builtins/gen/var/textureLoad/8527b1.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/textureLoad/8527b1.wgsl.expected.ir.fxc.hlsl
index fd28383..14fdfa2 100644
--- a/test/tint/builtins/gen/var/textureLoad/8527b1.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureLoad/8527b1.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,51 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  uint4 prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureLoad
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation uint4 VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+Texture2DArray<uint4> arg_0 : register(t0, space1);
+uint4 textureLoad_8527b1() {
+  uint2 arg_1 = (1u).xx;
+  uint arg_2 = 1u;
+  uint arg_3 = 1u;
+  Texture2DArray<uint4> v = arg_0;
+  uint v_1 = arg_2;
+  uint v_2 = arg_3;
+  int2 v_3 = int2(arg_1);
+  int v_4 = int(v_1);
+  uint4 res = uint4(v.Load(int4(v_3, v_4, int(v_2))));
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store4(0u, textureLoad_8527b1());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store4(0u, textureLoad_8527b1());
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = textureLoad_8527b1();
+  VertexOutput v_5 = tint_symbol;
+  return v_5;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_6 = vertex_main_inner();
+  VertexOutput v_7 = v_6;
+  VertexOutput v_8 = v_6;
+  vertex_main_outputs v_9 = {v_8.prevent_dce, v_7.pos};
+  return v_9;
+}
+
diff --git a/test/tint/builtins/gen/var/textureLoad/862833.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/textureLoad/862833.wgsl.expected.ir.dxc.hlsl
index fd28383..334e6e8e 100644
--- a/test/tint/builtins/gen/var/textureLoad/862833.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureLoad/862833.wgsl.expected.ir.dxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureLoad
+..\..\src\tint\utils\containers\slice.h:216 internal compiler error: TINT_ASSERT(i < Length())
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/var/textureLoad/862833.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/textureLoad/862833.wgsl.expected.ir.fxc.hlsl
index fd28383..334e6e8e 100644
--- a/test/tint/builtins/gen/var/textureLoad/862833.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureLoad/862833.wgsl.expected.ir.fxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureLoad
+..\..\src\tint\utils\containers\slice.h:216 internal compiler error: TINT_ASSERT(i < Length())
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/var/textureLoad/878e24.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/textureLoad/878e24.wgsl.expected.ir.dxc.hlsl
index fd28383..334e6e8e 100644
--- a/test/tint/builtins/gen/var/textureLoad/878e24.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureLoad/878e24.wgsl.expected.ir.dxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureLoad
+..\..\src\tint\utils\containers\slice.h:216 internal compiler error: TINT_ASSERT(i < Length())
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/var/textureLoad/878e24.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/textureLoad/878e24.wgsl.expected.ir.fxc.hlsl
index fd28383..334e6e8e 100644
--- a/test/tint/builtins/gen/var/textureLoad/878e24.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureLoad/878e24.wgsl.expected.ir.fxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureLoad
+..\..\src\tint\utils\containers\slice.h:216 internal compiler error: TINT_ASSERT(i < Length())
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/var/textureLoad/87be85.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/textureLoad/87be85.wgsl.expected.ir.dxc.hlsl
index fd28383..5386383 100644
--- a/test/tint/builtins/gen/var/textureLoad/87be85.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureLoad/87be85.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,51 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  float4 prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureLoad
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation float4 VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+Texture2DArray<float4> arg_0 : register(t0, space1);
+float4 textureLoad_87be85() {
+  int2 arg_1 = (1).xx;
+  int arg_2 = 1;
+  int arg_3 = 1;
+  Texture2DArray<float4> v = arg_0;
+  int v_1 = arg_2;
+  int v_2 = arg_3;
+  int2 v_3 = int2(arg_1);
+  int v_4 = int(v_1);
+  float4 res = float4(v.Load(int4(v_3, v_4, int(v_2))));
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store4(0u, asuint(textureLoad_87be85()));
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store4(0u, asuint(textureLoad_87be85()));
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = textureLoad_87be85();
+  VertexOutput v_5 = tint_symbol;
+  return v_5;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_6 = vertex_main_inner();
+  VertexOutput v_7 = v_6;
+  VertexOutput v_8 = v_6;
+  vertex_main_outputs v_9 = {v_8.prevent_dce, v_7.pos};
+  return v_9;
+}
+
diff --git a/test/tint/builtins/gen/var/textureLoad/87be85.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/textureLoad/87be85.wgsl.expected.ir.fxc.hlsl
index fd28383..5386383 100644
--- a/test/tint/builtins/gen/var/textureLoad/87be85.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureLoad/87be85.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,51 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  float4 prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureLoad
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation float4 VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+Texture2DArray<float4> arg_0 : register(t0, space1);
+float4 textureLoad_87be85() {
+  int2 arg_1 = (1).xx;
+  int arg_2 = 1;
+  int arg_3 = 1;
+  Texture2DArray<float4> v = arg_0;
+  int v_1 = arg_2;
+  int v_2 = arg_3;
+  int2 v_3 = int2(arg_1);
+  int v_4 = int(v_1);
+  float4 res = float4(v.Load(int4(v_3, v_4, int(v_2))));
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store4(0u, asuint(textureLoad_87be85()));
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store4(0u, asuint(textureLoad_87be85()));
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = textureLoad_87be85();
+  VertexOutput v_5 = tint_symbol;
+  return v_5;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_6 = vertex_main_inner();
+  VertexOutput v_7 = v_6;
+  VertexOutput v_8 = v_6;
+  vertex_main_outputs v_9 = {v_8.prevent_dce, v_7.pos};
+  return v_9;
+}
+
diff --git a/test/tint/builtins/gen/var/textureLoad/87f0a6.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/textureLoad/87f0a6.wgsl.expected.ir.dxc.hlsl
index fd28383..334e6e8e 100644
--- a/test/tint/builtins/gen/var/textureLoad/87f0a6.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureLoad/87f0a6.wgsl.expected.ir.dxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureLoad
+..\..\src\tint\utils\containers\slice.h:216 internal compiler error: TINT_ASSERT(i < Length())
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/var/textureLoad/87f0a6.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/textureLoad/87f0a6.wgsl.expected.ir.fxc.hlsl
index fd28383..334e6e8e 100644
--- a/test/tint/builtins/gen/var/textureLoad/87f0a6.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureLoad/87f0a6.wgsl.expected.ir.fxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureLoad
+..\..\src\tint\utils\containers\slice.h:216 internal compiler error: TINT_ASSERT(i < Length())
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/var/textureLoad/881349.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/textureLoad/881349.wgsl.expected.ir.dxc.hlsl
index fd28383..334e6e8e 100644
--- a/test/tint/builtins/gen/var/textureLoad/881349.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureLoad/881349.wgsl.expected.ir.dxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureLoad
+..\..\src\tint\utils\containers\slice.h:216 internal compiler error: TINT_ASSERT(i < Length())
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/var/textureLoad/881349.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/textureLoad/881349.wgsl.expected.ir.fxc.hlsl
index fd28383..334e6e8e 100644
--- a/test/tint/builtins/gen/var/textureLoad/881349.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureLoad/881349.wgsl.expected.ir.fxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureLoad
+..\..\src\tint\utils\containers\slice.h:216 internal compiler error: TINT_ASSERT(i < Length())
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/var/textureLoad/89620b.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/textureLoad/89620b.wgsl.expected.ir.dxc.hlsl
index fd28383..334e6e8e 100644
--- a/test/tint/builtins/gen/var/textureLoad/89620b.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureLoad/89620b.wgsl.expected.ir.dxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureLoad
+..\..\src\tint\utils\containers\slice.h:216 internal compiler error: TINT_ASSERT(i < Length())
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/var/textureLoad/89620b.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/textureLoad/89620b.wgsl.expected.ir.fxc.hlsl
index fd28383..334e6e8e 100644
--- a/test/tint/builtins/gen/var/textureLoad/89620b.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureLoad/89620b.wgsl.expected.ir.fxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureLoad
+..\..\src\tint\utils\containers\slice.h:216 internal compiler error: TINT_ASSERT(i < Length())
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/var/textureLoad/897cf3.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/textureLoad/897cf3.wgsl.expected.ir.dxc.hlsl
index fd28383..84c5e8e 100644
--- a/test/tint/builtins/gen/var/textureLoad/897cf3.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureLoad/897cf3.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,48 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  uint4 prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureLoad
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation uint4 VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+Texture2D<uint4> arg_0 : register(t0, space1);
+uint4 textureLoad_897cf3() {
+  uint2 arg_1 = (1u).xx;
+  uint arg_2 = 1u;
+  Texture2D<uint4> v = arg_0;
+  uint v_1 = arg_2;
+  int2 v_2 = int2(arg_1);
+  uint4 res = uint4(v.Load(int3(v_2, int(v_1))));
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store4(0u, textureLoad_897cf3());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store4(0u, textureLoad_897cf3());
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = textureLoad_897cf3();
+  VertexOutput v_3 = tint_symbol;
+  return v_3;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_4 = vertex_main_inner();
+  VertexOutput v_5 = v_4;
+  VertexOutput v_6 = v_4;
+  vertex_main_outputs v_7 = {v_6.prevent_dce, v_5.pos};
+  return v_7;
+}
+
diff --git a/test/tint/builtins/gen/var/textureLoad/897cf3.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/textureLoad/897cf3.wgsl.expected.ir.fxc.hlsl
index fd28383..84c5e8e 100644
--- a/test/tint/builtins/gen/var/textureLoad/897cf3.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureLoad/897cf3.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,48 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  uint4 prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureLoad
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation uint4 VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+Texture2D<uint4> arg_0 : register(t0, space1);
+uint4 textureLoad_897cf3() {
+  uint2 arg_1 = (1u).xx;
+  uint arg_2 = 1u;
+  Texture2D<uint4> v = arg_0;
+  uint v_1 = arg_2;
+  int2 v_2 = int2(arg_1);
+  uint4 res = uint4(v.Load(int3(v_2, int(v_1))));
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store4(0u, textureLoad_897cf3());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store4(0u, textureLoad_897cf3());
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = textureLoad_897cf3();
+  VertexOutput v_3 = tint_symbol;
+  return v_3;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_4 = vertex_main_inner();
+  VertexOutput v_5 = v_4;
+  VertexOutput v_6 = v_4;
+  vertex_main_outputs v_7 = {v_6.prevent_dce, v_5.pos};
+  return v_7;
+}
+
diff --git a/test/tint/builtins/gen/var/textureLoad/8a291b.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/textureLoad/8a291b.wgsl.expected.ir.dxc.hlsl
index fd28383..334e6e8e 100644
--- a/test/tint/builtins/gen/var/textureLoad/8a291b.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureLoad/8a291b.wgsl.expected.ir.dxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureLoad
+..\..\src\tint\utils\containers\slice.h:216 internal compiler error: TINT_ASSERT(i < Length())
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/var/textureLoad/8a291b.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/textureLoad/8a291b.wgsl.expected.ir.fxc.hlsl
index fd28383..334e6e8e 100644
--- a/test/tint/builtins/gen/var/textureLoad/8a291b.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureLoad/8a291b.wgsl.expected.ir.fxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureLoad
+..\..\src\tint\utils\containers\slice.h:216 internal compiler error: TINT_ASSERT(i < Length())
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/var/textureLoad/8a9988.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/textureLoad/8a9988.wgsl.expected.ir.dxc.hlsl
index fd28383..334e6e8e 100644
--- a/test/tint/builtins/gen/var/textureLoad/8a9988.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureLoad/8a9988.wgsl.expected.ir.dxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureLoad
+..\..\src\tint\utils\containers\slice.h:216 internal compiler error: TINT_ASSERT(i < Length())
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/var/textureLoad/8a9988.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/textureLoad/8a9988.wgsl.expected.ir.fxc.hlsl
index fd28383..334e6e8e 100644
--- a/test/tint/builtins/gen/var/textureLoad/8a9988.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureLoad/8a9988.wgsl.expected.ir.fxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureLoad
+..\..\src\tint\utils\containers\slice.h:216 internal compiler error: TINT_ASSERT(i < Length())
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/var/textureLoad/8acf41.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/textureLoad/8acf41.wgsl.expected.ir.dxc.hlsl
index fd28383..321c63b 100644
--- a/test/tint/builtins/gen/var/textureLoad/8acf41.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureLoad/8acf41.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,180 @@
-SKIP: FAILED
+struct tint_GammaTransferParams {
+  float G;
+  float A;
+  float B;
+  float C;
+  float D;
+  float E;
+  float F;
+  uint padding;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureLoad
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct tint_ExternalTextureParams {
+  uint numPlanes;
+  uint doYuvToRgbConversionOnly;
+  float3x4 yuvToRgbConversionMatrix;
+  tint_GammaTransferParams gammaDecodeParams;
+  tint_GammaTransferParams gammaEncodeParams;
+  float3x3 gamutConversionMatrix;
+  float3x2 sampleTransform;
+  float3x2 loadTransform;
+  float2 samplePlane0RectMin;
+  float2 samplePlane0RectMax;
+  float2 samplePlane1RectMin;
+  float2 samplePlane1RectMax;
+  uint2 visibleSize;
+  float2 plane1CoordFactor;
+};
+
+struct VertexOutput {
+  float4 pos;
+  float4 prevent_dce;
+};
+
+struct vertex_main_outputs {
+  nointerpolation float4 VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+Texture2D<float4> arg_0_plane0 : register(t0, space1);
+Texture2D<float4> arg_0_plane1 : register(t1, space1);
+cbuffer cbuffer_arg_0_params : register(b2, space1) {
+  uint4 arg_0_params[17];
+};
+uint2 tint_v2f32_to_v2u32(float2 value) {
+  return (((value <= (4294967040.0f).xx)) ? ((((value >= (0.0f).xx)) ? (uint2(value)) : ((0u).xx))) : ((4294967295u).xx));
+}
+
+float3 tint_GammaCorrection(float3 v, tint_GammaTransferParams params) {
+  float3 v_1 = float3((params.G).xxx);
+  float3 v_2 = float3((params.D).xxx);
+  float3 v_3 = abs(v);
+  float3 v_4 = float3(sign(v));
+  return (((v_3 < v_2)) ? ((v_4 * ((params.C * v_3) + params.F))) : ((v_4 * (pow(((params.A * v_3) + params.B), v_1) + params.E))));
+}
+
+float4 tint_TextureLoadExternal(Texture2D<float4> plane_0, Texture2D<float4> plane_1, tint_ExternalTextureParams params, uint2 coords) {
+  float2 v_5 = round(mul(float3(float2(min(coords, params.visibleSize)), 1.0f), params.loadTransform));
+  uint2 v_6 = tint_v2f32_to_v2u32(v_5);
+  float3 v_7 = (0.0f).xxx;
+  float v_8 = 0.0f;
+  if ((params.numPlanes == 1u)) {
+    int2 v_9 = int2(v_6);
+    float4 v_10 = float4(plane_0.Load(int3(v_9, int(0u))));
+    v_7 = v_10.xyz;
+    v_8 = v_10[3u];
+  } else {
+    int2 v_11 = int2(v_6);
+    float v_12 = float4(plane_0.Load(int3(v_11, int(0u))))[0u];
+    int2 v_13 = int2(tint_v2f32_to_v2u32((v_5 * params.plane1CoordFactor)));
+    v_7 = mul(params.yuvToRgbConversionMatrix, float4(v_12, float4(plane_1.Load(int3(v_13, int(0u)))).xy, 1.0f));
+    v_8 = 1.0f;
+  }
+  float3 v_14 = v_7;
+  float3 v_15 = (0.0f).xxx;
+  if ((params.doYuvToRgbConversionOnly == 0u)) {
+    tint_GammaTransferParams v_16 = params.gammaDecodeParams;
+    tint_GammaTransferParams v_17 = params.gammaEncodeParams;
+    v_15 = tint_GammaCorrection(mul(tint_GammaCorrection(v_14, v_16), params.gamutConversionMatrix), v_17);
+  } else {
+    v_15 = v_14;
+  }
+  return float4(v_15, v_8);
+}
+
+float3x2 v_18(uint start_byte_offset) {
+  uint4 v_19 = arg_0_params[(start_byte_offset / 16u)];
+  float2 v_20 = asfloat((((((start_byte_offset % 16u) / 4u) == 2u)) ? (v_19.zw) : (v_19.xy)));
+  uint4 v_21 = arg_0_params[((8u + start_byte_offset) / 16u)];
+  float2 v_22 = asfloat(((((((8u + start_byte_offset) % 16u) / 4u) == 2u)) ? (v_21.zw) : (v_21.xy)));
+  uint4 v_23 = arg_0_params[((16u + start_byte_offset) / 16u)];
+  return float3x2(v_20, v_22, asfloat(((((((16u + start_byte_offset) % 16u) / 4u) == 2u)) ? (v_23.zw) : (v_23.xy))));
+}
+
+float3x3 v_24(uint start_byte_offset) {
+  float3 v_25 = asfloat(arg_0_params[(start_byte_offset / 16u)].xyz);
+  float3 v_26 = asfloat(arg_0_params[((16u + start_byte_offset) / 16u)].xyz);
+  return float3x3(v_25, v_26, asfloat(arg_0_params[((32u + start_byte_offset) / 16u)].xyz));
+}
+
+tint_GammaTransferParams v_27(uint start_byte_offset) {
+  float v_28 = asfloat(arg_0_params[(start_byte_offset / 16u)][((start_byte_offset % 16u) / 4u)]);
+  float v_29 = asfloat(arg_0_params[((4u + start_byte_offset) / 16u)][(((4u + start_byte_offset) % 16u) / 4u)]);
+  float v_30 = asfloat(arg_0_params[((8u + start_byte_offset) / 16u)][(((8u + start_byte_offset) % 16u) / 4u)]);
+  float v_31 = asfloat(arg_0_params[((12u + start_byte_offset) / 16u)][(((12u + start_byte_offset) % 16u) / 4u)]);
+  float v_32 = asfloat(arg_0_params[((16u + start_byte_offset) / 16u)][(((16u + start_byte_offset) % 16u) / 4u)]);
+  float v_33 = asfloat(arg_0_params[((20u + start_byte_offset) / 16u)][(((20u + start_byte_offset) % 16u) / 4u)]);
+  float v_34 = asfloat(arg_0_params[((24u + start_byte_offset) / 16u)][(((24u + start_byte_offset) % 16u) / 4u)]);
+  tint_GammaTransferParams v_35 = {v_28, v_29, v_30, v_31, v_32, v_33, v_34, arg_0_params[((28u + start_byte_offset) / 16u)][(((28u + start_byte_offset) % 16u) / 4u)]};
+  return v_35;
+}
+
+float3x4 v_36(uint start_byte_offset) {
+  float4 v_37 = asfloat(arg_0_params[(start_byte_offset / 16u)]);
+  float4 v_38 = asfloat(arg_0_params[((16u + start_byte_offset) / 16u)]);
+  return float3x4(v_37, v_38, asfloat(arg_0_params[((32u + start_byte_offset) / 16u)]));
+}
+
+tint_ExternalTextureParams v_39(uint start_byte_offset) {
+  uint v_40 = arg_0_params[(start_byte_offset / 16u)][((start_byte_offset % 16u) / 4u)];
+  uint v_41 = arg_0_params[((4u + start_byte_offset) / 16u)][(((4u + start_byte_offset) % 16u) / 4u)];
+  float3x4 v_42 = v_36((16u + start_byte_offset));
+  tint_GammaTransferParams v_43 = v_27((64u + start_byte_offset));
+  tint_GammaTransferParams v_44 = v_27((96u + start_byte_offset));
+  float3x3 v_45 = v_24((128u + start_byte_offset));
+  float3x2 v_46 = v_18((176u + start_byte_offset));
+  float3x2 v_47 = v_18((200u + start_byte_offset));
+  uint4 v_48 = arg_0_params[((224u + start_byte_offset) / 16u)];
+  float2 v_49 = asfloat(((((((224u + start_byte_offset) % 16u) / 4u) == 2u)) ? (v_48.zw) : (v_48.xy)));
+  uint4 v_50 = arg_0_params[((232u + start_byte_offset) / 16u)];
+  float2 v_51 = asfloat(((((((232u + start_byte_offset) % 16u) / 4u) == 2u)) ? (v_50.zw) : (v_50.xy)));
+  uint4 v_52 = arg_0_params[((240u + start_byte_offset) / 16u)];
+  float2 v_53 = asfloat(((((((240u + start_byte_offset) % 16u) / 4u) == 2u)) ? (v_52.zw) : (v_52.xy)));
+  uint4 v_54 = arg_0_params[((248u + start_byte_offset) / 16u)];
+  float2 v_55 = asfloat(((((((248u + start_byte_offset) % 16u) / 4u) == 2u)) ? (v_54.zw) : (v_54.xy)));
+  uint4 v_56 = arg_0_params[((256u + start_byte_offset) / 16u)];
+  uint2 v_57 = ((((((256u + start_byte_offset) % 16u) / 4u) == 2u)) ? (v_56.zw) : (v_56.xy));
+  uint4 v_58 = arg_0_params[((264u + start_byte_offset) / 16u)];
+  tint_GammaTransferParams v_59 = v_43;
+  tint_GammaTransferParams v_60 = v_44;
+  tint_ExternalTextureParams v_61 = {v_40, v_41, v_42, v_59, v_60, v_45, v_46, v_47, v_49, v_51, v_53, v_55, v_57, asfloat(((((((264u + start_byte_offset) % 16u) / 4u) == 2u)) ? (v_58.zw) : (v_58.xy)))};
+  return v_61;
+}
+
+float4 textureLoad_8acf41() {
+  int2 arg_1 = (1).xx;
+  Texture2D<float4> v_62 = arg_0_plane0;
+  Texture2D<float4> v_63 = arg_0_plane1;
+  tint_ExternalTextureParams v_64 = v_39(0u);
+  tint_ExternalTextureParams v_65 = v_64;
+  float4 res = tint_TextureLoadExternal(v_62, v_63, v_65, uint2(arg_1));
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store4(0u, asuint(textureLoad_8acf41()));
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store4(0u, asuint(textureLoad_8acf41()));
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = textureLoad_8acf41();
+  VertexOutput v_66 = tint_symbol;
+  return v_66;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_67 = vertex_main_inner();
+  VertexOutput v_68 = v_67;
+  VertexOutput v_69 = v_67;
+  vertex_main_outputs v_70 = {v_69.prevent_dce, v_68.pos};
+  return v_70;
+}
+
diff --git a/test/tint/builtins/gen/var/textureLoad/8acf41.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/textureLoad/8acf41.wgsl.expected.ir.fxc.hlsl
index fd28383..321c63b 100644
--- a/test/tint/builtins/gen/var/textureLoad/8acf41.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureLoad/8acf41.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,180 @@
-SKIP: FAILED
+struct tint_GammaTransferParams {
+  float G;
+  float A;
+  float B;
+  float C;
+  float D;
+  float E;
+  float F;
+  uint padding;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureLoad
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct tint_ExternalTextureParams {
+  uint numPlanes;
+  uint doYuvToRgbConversionOnly;
+  float3x4 yuvToRgbConversionMatrix;
+  tint_GammaTransferParams gammaDecodeParams;
+  tint_GammaTransferParams gammaEncodeParams;
+  float3x3 gamutConversionMatrix;
+  float3x2 sampleTransform;
+  float3x2 loadTransform;
+  float2 samplePlane0RectMin;
+  float2 samplePlane0RectMax;
+  float2 samplePlane1RectMin;
+  float2 samplePlane1RectMax;
+  uint2 visibleSize;
+  float2 plane1CoordFactor;
+};
+
+struct VertexOutput {
+  float4 pos;
+  float4 prevent_dce;
+};
+
+struct vertex_main_outputs {
+  nointerpolation float4 VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+Texture2D<float4> arg_0_plane0 : register(t0, space1);
+Texture2D<float4> arg_0_plane1 : register(t1, space1);
+cbuffer cbuffer_arg_0_params : register(b2, space1) {
+  uint4 arg_0_params[17];
+};
+uint2 tint_v2f32_to_v2u32(float2 value) {
+  return (((value <= (4294967040.0f).xx)) ? ((((value >= (0.0f).xx)) ? (uint2(value)) : ((0u).xx))) : ((4294967295u).xx));
+}
+
+float3 tint_GammaCorrection(float3 v, tint_GammaTransferParams params) {
+  float3 v_1 = float3((params.G).xxx);
+  float3 v_2 = float3((params.D).xxx);
+  float3 v_3 = abs(v);
+  float3 v_4 = float3(sign(v));
+  return (((v_3 < v_2)) ? ((v_4 * ((params.C * v_3) + params.F))) : ((v_4 * (pow(((params.A * v_3) + params.B), v_1) + params.E))));
+}
+
+float4 tint_TextureLoadExternal(Texture2D<float4> plane_0, Texture2D<float4> plane_1, tint_ExternalTextureParams params, uint2 coords) {
+  float2 v_5 = round(mul(float3(float2(min(coords, params.visibleSize)), 1.0f), params.loadTransform));
+  uint2 v_6 = tint_v2f32_to_v2u32(v_5);
+  float3 v_7 = (0.0f).xxx;
+  float v_8 = 0.0f;
+  if ((params.numPlanes == 1u)) {
+    int2 v_9 = int2(v_6);
+    float4 v_10 = float4(plane_0.Load(int3(v_9, int(0u))));
+    v_7 = v_10.xyz;
+    v_8 = v_10[3u];
+  } else {
+    int2 v_11 = int2(v_6);
+    float v_12 = float4(plane_0.Load(int3(v_11, int(0u))))[0u];
+    int2 v_13 = int2(tint_v2f32_to_v2u32((v_5 * params.plane1CoordFactor)));
+    v_7 = mul(params.yuvToRgbConversionMatrix, float4(v_12, float4(plane_1.Load(int3(v_13, int(0u)))).xy, 1.0f));
+    v_8 = 1.0f;
+  }
+  float3 v_14 = v_7;
+  float3 v_15 = (0.0f).xxx;
+  if ((params.doYuvToRgbConversionOnly == 0u)) {
+    tint_GammaTransferParams v_16 = params.gammaDecodeParams;
+    tint_GammaTransferParams v_17 = params.gammaEncodeParams;
+    v_15 = tint_GammaCorrection(mul(tint_GammaCorrection(v_14, v_16), params.gamutConversionMatrix), v_17);
+  } else {
+    v_15 = v_14;
+  }
+  return float4(v_15, v_8);
+}
+
+float3x2 v_18(uint start_byte_offset) {
+  uint4 v_19 = arg_0_params[(start_byte_offset / 16u)];
+  float2 v_20 = asfloat((((((start_byte_offset % 16u) / 4u) == 2u)) ? (v_19.zw) : (v_19.xy)));
+  uint4 v_21 = arg_0_params[((8u + start_byte_offset) / 16u)];
+  float2 v_22 = asfloat(((((((8u + start_byte_offset) % 16u) / 4u) == 2u)) ? (v_21.zw) : (v_21.xy)));
+  uint4 v_23 = arg_0_params[((16u + start_byte_offset) / 16u)];
+  return float3x2(v_20, v_22, asfloat(((((((16u + start_byte_offset) % 16u) / 4u) == 2u)) ? (v_23.zw) : (v_23.xy))));
+}
+
+float3x3 v_24(uint start_byte_offset) {
+  float3 v_25 = asfloat(arg_0_params[(start_byte_offset / 16u)].xyz);
+  float3 v_26 = asfloat(arg_0_params[((16u + start_byte_offset) / 16u)].xyz);
+  return float3x3(v_25, v_26, asfloat(arg_0_params[((32u + start_byte_offset) / 16u)].xyz));
+}
+
+tint_GammaTransferParams v_27(uint start_byte_offset) {
+  float v_28 = asfloat(arg_0_params[(start_byte_offset / 16u)][((start_byte_offset % 16u) / 4u)]);
+  float v_29 = asfloat(arg_0_params[((4u + start_byte_offset) / 16u)][(((4u + start_byte_offset) % 16u) / 4u)]);
+  float v_30 = asfloat(arg_0_params[((8u + start_byte_offset) / 16u)][(((8u + start_byte_offset) % 16u) / 4u)]);
+  float v_31 = asfloat(arg_0_params[((12u + start_byte_offset) / 16u)][(((12u + start_byte_offset) % 16u) / 4u)]);
+  float v_32 = asfloat(arg_0_params[((16u + start_byte_offset) / 16u)][(((16u + start_byte_offset) % 16u) / 4u)]);
+  float v_33 = asfloat(arg_0_params[((20u + start_byte_offset) / 16u)][(((20u + start_byte_offset) % 16u) / 4u)]);
+  float v_34 = asfloat(arg_0_params[((24u + start_byte_offset) / 16u)][(((24u + start_byte_offset) % 16u) / 4u)]);
+  tint_GammaTransferParams v_35 = {v_28, v_29, v_30, v_31, v_32, v_33, v_34, arg_0_params[((28u + start_byte_offset) / 16u)][(((28u + start_byte_offset) % 16u) / 4u)]};
+  return v_35;
+}
+
+float3x4 v_36(uint start_byte_offset) {
+  float4 v_37 = asfloat(arg_0_params[(start_byte_offset / 16u)]);
+  float4 v_38 = asfloat(arg_0_params[((16u + start_byte_offset) / 16u)]);
+  return float3x4(v_37, v_38, asfloat(arg_0_params[((32u + start_byte_offset) / 16u)]));
+}
+
+tint_ExternalTextureParams v_39(uint start_byte_offset) {
+  uint v_40 = arg_0_params[(start_byte_offset / 16u)][((start_byte_offset % 16u) / 4u)];
+  uint v_41 = arg_0_params[((4u + start_byte_offset) / 16u)][(((4u + start_byte_offset) % 16u) / 4u)];
+  float3x4 v_42 = v_36((16u + start_byte_offset));
+  tint_GammaTransferParams v_43 = v_27((64u + start_byte_offset));
+  tint_GammaTransferParams v_44 = v_27((96u + start_byte_offset));
+  float3x3 v_45 = v_24((128u + start_byte_offset));
+  float3x2 v_46 = v_18((176u + start_byte_offset));
+  float3x2 v_47 = v_18((200u + start_byte_offset));
+  uint4 v_48 = arg_0_params[((224u + start_byte_offset) / 16u)];
+  float2 v_49 = asfloat(((((((224u + start_byte_offset) % 16u) / 4u) == 2u)) ? (v_48.zw) : (v_48.xy)));
+  uint4 v_50 = arg_0_params[((232u + start_byte_offset) / 16u)];
+  float2 v_51 = asfloat(((((((232u + start_byte_offset) % 16u) / 4u) == 2u)) ? (v_50.zw) : (v_50.xy)));
+  uint4 v_52 = arg_0_params[((240u + start_byte_offset) / 16u)];
+  float2 v_53 = asfloat(((((((240u + start_byte_offset) % 16u) / 4u) == 2u)) ? (v_52.zw) : (v_52.xy)));
+  uint4 v_54 = arg_0_params[((248u + start_byte_offset) / 16u)];
+  float2 v_55 = asfloat(((((((248u + start_byte_offset) % 16u) / 4u) == 2u)) ? (v_54.zw) : (v_54.xy)));
+  uint4 v_56 = arg_0_params[((256u + start_byte_offset) / 16u)];
+  uint2 v_57 = ((((((256u + start_byte_offset) % 16u) / 4u) == 2u)) ? (v_56.zw) : (v_56.xy));
+  uint4 v_58 = arg_0_params[((264u + start_byte_offset) / 16u)];
+  tint_GammaTransferParams v_59 = v_43;
+  tint_GammaTransferParams v_60 = v_44;
+  tint_ExternalTextureParams v_61 = {v_40, v_41, v_42, v_59, v_60, v_45, v_46, v_47, v_49, v_51, v_53, v_55, v_57, asfloat(((((((264u + start_byte_offset) % 16u) / 4u) == 2u)) ? (v_58.zw) : (v_58.xy)))};
+  return v_61;
+}
+
+float4 textureLoad_8acf41() {
+  int2 arg_1 = (1).xx;
+  Texture2D<float4> v_62 = arg_0_plane0;
+  Texture2D<float4> v_63 = arg_0_plane1;
+  tint_ExternalTextureParams v_64 = v_39(0u);
+  tint_ExternalTextureParams v_65 = v_64;
+  float4 res = tint_TextureLoadExternal(v_62, v_63, v_65, uint2(arg_1));
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store4(0u, asuint(textureLoad_8acf41()));
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store4(0u, asuint(textureLoad_8acf41()));
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = textureLoad_8acf41();
+  VertexOutput v_66 = tint_symbol;
+  return v_66;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_67 = vertex_main_inner();
+  VertexOutput v_68 = v_67;
+  VertexOutput v_69 = v_67;
+  vertex_main_outputs v_70 = {v_69.prevent_dce, v_68.pos};
+  return v_70;
+}
+
diff --git a/test/tint/builtins/gen/var/textureLoad/8b62fb.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/textureLoad/8b62fb.wgsl.expected.ir.dxc.hlsl
index fd28383..334e6e8e 100644
--- a/test/tint/builtins/gen/var/textureLoad/8b62fb.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureLoad/8b62fb.wgsl.expected.ir.dxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureLoad
+..\..\src\tint\utils\containers\slice.h:216 internal compiler error: TINT_ASSERT(i < Length())
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/var/textureLoad/8b62fb.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/textureLoad/8b62fb.wgsl.expected.ir.fxc.hlsl
index fd28383..334e6e8e 100644
--- a/test/tint/builtins/gen/var/textureLoad/8b62fb.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureLoad/8b62fb.wgsl.expected.ir.fxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureLoad
+..\..\src\tint\utils\containers\slice.h:216 internal compiler error: TINT_ASSERT(i < Length())
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/var/textureLoad/8bf8c2.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/textureLoad/8bf8c2.wgsl.expected.ir.dxc.hlsl
index fd28383..334e6e8e 100644
--- a/test/tint/builtins/gen/var/textureLoad/8bf8c2.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureLoad/8bf8c2.wgsl.expected.ir.dxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureLoad
+..\..\src\tint\utils\containers\slice.h:216 internal compiler error: TINT_ASSERT(i < Length())
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/var/textureLoad/8bf8c2.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/textureLoad/8bf8c2.wgsl.expected.ir.fxc.hlsl
index fd28383..334e6e8e 100644
--- a/test/tint/builtins/gen/var/textureLoad/8bf8c2.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureLoad/8bf8c2.wgsl.expected.ir.fxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureLoad
+..\..\src\tint\utils\containers\slice.h:216 internal compiler error: TINT_ASSERT(i < Length())
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/var/textureLoad/8c6176.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/textureLoad/8c6176.wgsl.expected.ir.dxc.hlsl
index fd28383..334e6e8e 100644
--- a/test/tint/builtins/gen/var/textureLoad/8c6176.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureLoad/8c6176.wgsl.expected.ir.dxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureLoad
+..\..\src\tint\utils\containers\slice.h:216 internal compiler error: TINT_ASSERT(i < Length())
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/var/textureLoad/8c6176.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/textureLoad/8c6176.wgsl.expected.ir.fxc.hlsl
index fd28383..334e6e8e 100644
--- a/test/tint/builtins/gen/var/textureLoad/8c6176.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureLoad/8c6176.wgsl.expected.ir.fxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureLoad
+..\..\src\tint\utils\containers\slice.h:216 internal compiler error: TINT_ASSERT(i < Length())
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/var/textureLoad/8ccbe3.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/textureLoad/8ccbe3.wgsl.expected.ir.dxc.hlsl
index fd28383..e9cbe5e 100644
--- a/test/tint/builtins/gen/var/textureLoad/8ccbe3.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureLoad/8ccbe3.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,48 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  float prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureLoad
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation float VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+Texture2D arg_0 : register(t0, space1);
+float textureLoad_8ccbe3() {
+  int2 arg_1 = (1).xx;
+  uint arg_2 = 1u;
+  Texture2D v = arg_0;
+  uint v_1 = arg_2;
+  int2 v_2 = int2(arg_1);
+  float res = v.Load(int3(v_2, int(v_1))).x;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store(0u, asuint(textureLoad_8ccbe3()));
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store(0u, asuint(textureLoad_8ccbe3()));
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = textureLoad_8ccbe3();
+  VertexOutput v_3 = tint_symbol;
+  return v_3;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_4 = vertex_main_inner();
+  VertexOutput v_5 = v_4;
+  VertexOutput v_6 = v_4;
+  vertex_main_outputs v_7 = {v_6.prevent_dce, v_5.pos};
+  return v_7;
+}
+
diff --git a/test/tint/builtins/gen/var/textureLoad/8ccbe3.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/textureLoad/8ccbe3.wgsl.expected.ir.fxc.hlsl
index fd28383..e9cbe5e 100644
--- a/test/tint/builtins/gen/var/textureLoad/8ccbe3.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureLoad/8ccbe3.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,48 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  float prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureLoad
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation float VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+Texture2D arg_0 : register(t0, space1);
+float textureLoad_8ccbe3() {
+  int2 arg_1 = (1).xx;
+  uint arg_2 = 1u;
+  Texture2D v = arg_0;
+  uint v_1 = arg_2;
+  int2 v_2 = int2(arg_1);
+  float res = v.Load(int3(v_2, int(v_1))).x;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store(0u, asuint(textureLoad_8ccbe3()));
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store(0u, asuint(textureLoad_8ccbe3()));
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = textureLoad_8ccbe3();
+  VertexOutput v_3 = tint_symbol;
+  return v_3;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_4 = vertex_main_inner();
+  VertexOutput v_5 = v_4;
+  VertexOutput v_6 = v_4;
+  vertex_main_outputs v_7 = {v_6.prevent_dce, v_5.pos};
+  return v_7;
+}
+
diff --git a/test/tint/builtins/gen/var/textureLoad/8d64c3.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/textureLoad/8d64c3.wgsl.expected.ir.dxc.hlsl
index fd28383..334e6e8e 100644
--- a/test/tint/builtins/gen/var/textureLoad/8d64c3.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureLoad/8d64c3.wgsl.expected.ir.dxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureLoad
+..\..\src\tint\utils\containers\slice.h:216 internal compiler error: TINT_ASSERT(i < Length())
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/var/textureLoad/8d64c3.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/textureLoad/8d64c3.wgsl.expected.ir.fxc.hlsl
index fd28383..334e6e8e 100644
--- a/test/tint/builtins/gen/var/textureLoad/8d64c3.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureLoad/8d64c3.wgsl.expected.ir.fxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureLoad
+..\..\src\tint\utils\containers\slice.h:216 internal compiler error: TINT_ASSERT(i < Length())
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/var/textureLoad/8db0ce.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/textureLoad/8db0ce.wgsl.expected.ir.dxc.hlsl
index fd28383..334e6e8e 100644
--- a/test/tint/builtins/gen/var/textureLoad/8db0ce.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureLoad/8db0ce.wgsl.expected.ir.dxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureLoad
+..\..\src\tint\utils\containers\slice.h:216 internal compiler error: TINT_ASSERT(i < Length())
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/var/textureLoad/8db0ce.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/textureLoad/8db0ce.wgsl.expected.ir.fxc.hlsl
index fd28383..334e6e8e 100644
--- a/test/tint/builtins/gen/var/textureLoad/8db0ce.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureLoad/8db0ce.wgsl.expected.ir.fxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureLoad
+..\..\src\tint\utils\containers\slice.h:216 internal compiler error: TINT_ASSERT(i < Length())
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/var/textureLoad/8e5032.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/textureLoad/8e5032.wgsl.expected.ir.dxc.hlsl
index fd28383..334e6e8e 100644
--- a/test/tint/builtins/gen/var/textureLoad/8e5032.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureLoad/8e5032.wgsl.expected.ir.dxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureLoad
+..\..\src\tint\utils\containers\slice.h:216 internal compiler error: TINT_ASSERT(i < Length())
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/var/textureLoad/8e5032.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/textureLoad/8e5032.wgsl.expected.ir.fxc.hlsl
index fd28383..334e6e8e 100644
--- a/test/tint/builtins/gen/var/textureLoad/8e5032.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureLoad/8e5032.wgsl.expected.ir.fxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureLoad
+..\..\src\tint\utils\containers\slice.h:216 internal compiler error: TINT_ASSERT(i < Length())
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/var/textureLoad/8e68c9.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/textureLoad/8e68c9.wgsl.expected.ir.dxc.hlsl
index fd28383..334e6e8e 100644
--- a/test/tint/builtins/gen/var/textureLoad/8e68c9.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureLoad/8e68c9.wgsl.expected.ir.dxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureLoad
+..\..\src\tint\utils\containers\slice.h:216 internal compiler error: TINT_ASSERT(i < Length())
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/var/textureLoad/8e68c9.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/textureLoad/8e68c9.wgsl.expected.ir.fxc.hlsl
index fd28383..334e6e8e 100644
--- a/test/tint/builtins/gen/var/textureLoad/8e68c9.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureLoad/8e68c9.wgsl.expected.ir.fxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureLoad
+..\..\src\tint\utils\containers\slice.h:216 internal compiler error: TINT_ASSERT(i < Length())
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/var/textureLoad/8fc29b.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/textureLoad/8fc29b.wgsl.expected.ir.dxc.hlsl
index fd28383..334e6e8e 100644
--- a/test/tint/builtins/gen/var/textureLoad/8fc29b.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureLoad/8fc29b.wgsl.expected.ir.dxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureLoad
+..\..\src\tint\utils\containers\slice.h:216 internal compiler error: TINT_ASSERT(i < Length())
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/var/textureLoad/8fc29b.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/textureLoad/8fc29b.wgsl.expected.ir.fxc.hlsl
index fd28383..334e6e8e 100644
--- a/test/tint/builtins/gen/var/textureLoad/8fc29b.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureLoad/8fc29b.wgsl.expected.ir.fxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureLoad
+..\..\src\tint\utils\containers\slice.h:216 internal compiler error: TINT_ASSERT(i < Length())
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/var/textureLoad/8ff033.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/textureLoad/8ff033.wgsl.expected.ir.dxc.hlsl
index fd28383..334e6e8e 100644
--- a/test/tint/builtins/gen/var/textureLoad/8ff033.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureLoad/8ff033.wgsl.expected.ir.dxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureLoad
+..\..\src\tint\utils\containers\slice.h:216 internal compiler error: TINT_ASSERT(i < Length())
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/var/textureLoad/8ff033.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/textureLoad/8ff033.wgsl.expected.ir.fxc.hlsl
index fd28383..334e6e8e 100644
--- a/test/tint/builtins/gen/var/textureLoad/8ff033.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureLoad/8ff033.wgsl.expected.ir.fxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureLoad
+..\..\src\tint\utils\containers\slice.h:216 internal compiler error: TINT_ASSERT(i < Length())
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/var/textureLoad/91ede5.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/textureLoad/91ede5.wgsl.expected.ir.dxc.hlsl
index fd28383..334e6e8e 100644
--- a/test/tint/builtins/gen/var/textureLoad/91ede5.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureLoad/91ede5.wgsl.expected.ir.dxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureLoad
+..\..\src\tint\utils\containers\slice.h:216 internal compiler error: TINT_ASSERT(i < Length())
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/var/textureLoad/91ede5.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/textureLoad/91ede5.wgsl.expected.ir.fxc.hlsl
index fd28383..334e6e8e 100644
--- a/test/tint/builtins/gen/var/textureLoad/91ede5.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureLoad/91ede5.wgsl.expected.ir.fxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureLoad
+..\..\src\tint\utils\containers\slice.h:216 internal compiler error: TINT_ASSERT(i < Length())
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/var/textureLoad/9242e7.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/textureLoad/9242e7.wgsl.expected.ir.dxc.hlsl
index fd28383..334e6e8e 100644
--- a/test/tint/builtins/gen/var/textureLoad/9242e7.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureLoad/9242e7.wgsl.expected.ir.dxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureLoad
+..\..\src\tint\utils\containers\slice.h:216 internal compiler error: TINT_ASSERT(i < Length())
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/var/textureLoad/9242e7.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/textureLoad/9242e7.wgsl.expected.ir.fxc.hlsl
index fd28383..334e6e8e 100644
--- a/test/tint/builtins/gen/var/textureLoad/9242e7.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureLoad/9242e7.wgsl.expected.ir.fxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureLoad
+..\..\src\tint\utils\containers\slice.h:216 internal compiler error: TINT_ASSERT(i < Length())
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/var/textureLoad/92dd61.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/textureLoad/92dd61.wgsl.expected.ir.dxc.hlsl
index fd28383..334e6e8e 100644
--- a/test/tint/builtins/gen/var/textureLoad/92dd61.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureLoad/92dd61.wgsl.expected.ir.dxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureLoad
+..\..\src\tint\utils\containers\slice.h:216 internal compiler error: TINT_ASSERT(i < Length())
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/var/textureLoad/92dd61.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/textureLoad/92dd61.wgsl.expected.ir.fxc.hlsl
index fd28383..334e6e8e 100644
--- a/test/tint/builtins/gen/var/textureLoad/92dd61.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureLoad/92dd61.wgsl.expected.ir.fxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureLoad
+..\..\src\tint\utils\containers\slice.h:216 internal compiler error: TINT_ASSERT(i < Length())
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/var/textureLoad/92eb1f.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/textureLoad/92eb1f.wgsl.expected.ir.dxc.hlsl
index fd28383..fd15646 100644
--- a/test/tint/builtins/gen/var/textureLoad/92eb1f.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureLoad/92eb1f.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,48 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  uint4 prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureLoad
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation uint4 VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+Texture3D<uint4> arg_0 : register(t0, space1);
+uint4 textureLoad_92eb1f() {
+  uint3 arg_1 = (1u).xxx;
+  int arg_2 = 1;
+  Texture3D<uint4> v = arg_0;
+  int v_1 = arg_2;
+  int3 v_2 = int3(arg_1);
+  uint4 res = uint4(v.Load(int4(v_2, int(v_1))));
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store4(0u, textureLoad_92eb1f());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store4(0u, textureLoad_92eb1f());
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = textureLoad_92eb1f();
+  VertexOutput v_3 = tint_symbol;
+  return v_3;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_4 = vertex_main_inner();
+  VertexOutput v_5 = v_4;
+  VertexOutput v_6 = v_4;
+  vertex_main_outputs v_7 = {v_6.prevent_dce, v_5.pos};
+  return v_7;
+}
+
diff --git a/test/tint/builtins/gen/var/textureLoad/92eb1f.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/textureLoad/92eb1f.wgsl.expected.ir.fxc.hlsl
index fd28383..fd15646 100644
--- a/test/tint/builtins/gen/var/textureLoad/92eb1f.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureLoad/92eb1f.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,48 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  uint4 prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureLoad
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation uint4 VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+Texture3D<uint4> arg_0 : register(t0, space1);
+uint4 textureLoad_92eb1f() {
+  uint3 arg_1 = (1u).xxx;
+  int arg_2 = 1;
+  Texture3D<uint4> v = arg_0;
+  int v_1 = arg_2;
+  int3 v_2 = int3(arg_1);
+  uint4 res = uint4(v.Load(int4(v_2, int(v_1))));
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store4(0u, textureLoad_92eb1f());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store4(0u, textureLoad_92eb1f());
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = textureLoad_92eb1f();
+  VertexOutput v_3 = tint_symbol;
+  return v_3;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_4 = vertex_main_inner();
+  VertexOutput v_5 = v_4;
+  VertexOutput v_6 = v_4;
+  vertex_main_outputs v_7 = {v_6.prevent_dce, v_5.pos};
+  return v_7;
+}
+
diff --git a/test/tint/builtins/gen/var/textureLoad/936952.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/textureLoad/936952.wgsl.expected.ir.dxc.hlsl
index fd28383..334e6e8e 100644
--- a/test/tint/builtins/gen/var/textureLoad/936952.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureLoad/936952.wgsl.expected.ir.dxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureLoad
+..\..\src\tint\utils\containers\slice.h:216 internal compiler error: TINT_ASSERT(i < Length())
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/var/textureLoad/936952.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/textureLoad/936952.wgsl.expected.ir.fxc.hlsl
index fd28383..334e6e8e 100644
--- a/test/tint/builtins/gen/var/textureLoad/936952.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureLoad/936952.wgsl.expected.ir.fxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureLoad
+..\..\src\tint\utils\containers\slice.h:216 internal compiler error: TINT_ASSERT(i < Length())
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/var/textureLoad/93f23e.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/textureLoad/93f23e.wgsl.expected.ir.dxc.hlsl
index fd28383..334e6e8e 100644
--- a/test/tint/builtins/gen/var/textureLoad/93f23e.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureLoad/93f23e.wgsl.expected.ir.dxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureLoad
+..\..\src\tint\utils\containers\slice.h:216 internal compiler error: TINT_ASSERT(i < Length())
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/var/textureLoad/93f23e.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/textureLoad/93f23e.wgsl.expected.ir.fxc.hlsl
index fd28383..334e6e8e 100644
--- a/test/tint/builtins/gen/var/textureLoad/93f23e.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureLoad/93f23e.wgsl.expected.ir.fxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureLoad
+..\..\src\tint\utils\containers\slice.h:216 internal compiler error: TINT_ASSERT(i < Length())
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/var/textureLoad/947107.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/textureLoad/947107.wgsl.expected.ir.dxc.hlsl
index fd28383..334e6e8e 100644
--- a/test/tint/builtins/gen/var/textureLoad/947107.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureLoad/947107.wgsl.expected.ir.dxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureLoad
+..\..\src\tint\utils\containers\slice.h:216 internal compiler error: TINT_ASSERT(i < Length())
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/var/textureLoad/947107.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/textureLoad/947107.wgsl.expected.ir.fxc.hlsl
index fd28383..334e6e8e 100644
--- a/test/tint/builtins/gen/var/textureLoad/947107.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureLoad/947107.wgsl.expected.ir.fxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureLoad
+..\..\src\tint\utils\containers\slice.h:216 internal compiler error: TINT_ASSERT(i < Length())
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/var/textureLoad/96efd5.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/textureLoad/96efd5.wgsl.expected.ir.dxc.hlsl
index fd28383..e047998 100644
--- a/test/tint/builtins/gen/var/textureLoad/96efd5.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureLoad/96efd5.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,51 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  float4 prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureLoad
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation float4 VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+Texture2DArray<float4> arg_0 : register(t0, space1);
+float4 textureLoad_96efd5() {
+  uint2 arg_1 = (1u).xx;
+  uint arg_2 = 1u;
+  uint arg_3 = 1u;
+  Texture2DArray<float4> v = arg_0;
+  uint v_1 = arg_2;
+  uint v_2 = arg_3;
+  int2 v_3 = int2(arg_1);
+  int v_4 = int(v_1);
+  float4 res = float4(v.Load(int4(v_3, v_4, int(v_2))));
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store4(0u, asuint(textureLoad_96efd5()));
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store4(0u, asuint(textureLoad_96efd5()));
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = textureLoad_96efd5();
+  VertexOutput v_5 = tint_symbol;
+  return v_5;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_6 = vertex_main_inner();
+  VertexOutput v_7 = v_6;
+  VertexOutput v_8 = v_6;
+  vertex_main_outputs v_9 = {v_8.prevent_dce, v_7.pos};
+  return v_9;
+}
+
diff --git a/test/tint/builtins/gen/var/textureLoad/96efd5.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/textureLoad/96efd5.wgsl.expected.ir.fxc.hlsl
index fd28383..e047998 100644
--- a/test/tint/builtins/gen/var/textureLoad/96efd5.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureLoad/96efd5.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,51 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  float4 prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureLoad
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation float4 VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+Texture2DArray<float4> arg_0 : register(t0, space1);
+float4 textureLoad_96efd5() {
+  uint2 arg_1 = (1u).xx;
+  uint arg_2 = 1u;
+  uint arg_3 = 1u;
+  Texture2DArray<float4> v = arg_0;
+  uint v_1 = arg_2;
+  uint v_2 = arg_3;
+  int2 v_3 = int2(arg_1);
+  int v_4 = int(v_1);
+  float4 res = float4(v.Load(int4(v_3, v_4, int(v_2))));
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store4(0u, asuint(textureLoad_96efd5()));
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store4(0u, asuint(textureLoad_96efd5()));
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = textureLoad_96efd5();
+  VertexOutput v_5 = tint_symbol;
+  return v_5;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_6 = vertex_main_inner();
+  VertexOutput v_7 = v_6;
+  VertexOutput v_8 = v_6;
+  vertex_main_outputs v_9 = {v_8.prevent_dce, v_7.pos};
+  return v_9;
+}
+
diff --git a/test/tint/builtins/gen/var/textureLoad/970308.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/textureLoad/970308.wgsl.expected.ir.dxc.hlsl
index fd28383..334e6e8e 100644
--- a/test/tint/builtins/gen/var/textureLoad/970308.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureLoad/970308.wgsl.expected.ir.dxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureLoad
+..\..\src\tint\utils\containers\slice.h:216 internal compiler error: TINT_ASSERT(i < Length())
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/var/textureLoad/970308.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/textureLoad/970308.wgsl.expected.ir.fxc.hlsl
index fd28383..334e6e8e 100644
--- a/test/tint/builtins/gen/var/textureLoad/970308.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureLoad/970308.wgsl.expected.ir.fxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureLoad
+..\..\src\tint\utils\containers\slice.h:216 internal compiler error: TINT_ASSERT(i < Length())
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/var/textureLoad/9885b0.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/textureLoad/9885b0.wgsl.expected.ir.dxc.hlsl
index fd28383..0d6d7b3 100644
--- a/test/tint/builtins/gen/var/textureLoad/9885b0.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureLoad/9885b0.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,51 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  int4 prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureLoad
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation int4 VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+Texture2DArray<int4> arg_0 : register(t0, space1);
+int4 textureLoad_9885b0() {
+  uint2 arg_1 = (1u).xx;
+  uint arg_2 = 1u;
+  uint arg_3 = 1u;
+  Texture2DArray<int4> v = arg_0;
+  uint v_1 = arg_2;
+  uint v_2 = arg_3;
+  int2 v_3 = int2(arg_1);
+  int v_4 = int(v_1);
+  int4 res = int4(v.Load(int4(v_3, v_4, int(v_2))));
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store4(0u, asuint(textureLoad_9885b0()));
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store4(0u, asuint(textureLoad_9885b0()));
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = textureLoad_9885b0();
+  VertexOutput v_5 = tint_symbol;
+  return v_5;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_6 = vertex_main_inner();
+  VertexOutput v_7 = v_6;
+  VertexOutput v_8 = v_6;
+  vertex_main_outputs v_9 = {v_8.prevent_dce, v_7.pos};
+  return v_9;
+}
+
diff --git a/test/tint/builtins/gen/var/textureLoad/9885b0.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/textureLoad/9885b0.wgsl.expected.ir.fxc.hlsl
index fd28383..0d6d7b3 100644
--- a/test/tint/builtins/gen/var/textureLoad/9885b0.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureLoad/9885b0.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,51 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  int4 prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureLoad
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation int4 VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+Texture2DArray<int4> arg_0 : register(t0, space1);
+int4 textureLoad_9885b0() {
+  uint2 arg_1 = (1u).xx;
+  uint arg_2 = 1u;
+  uint arg_3 = 1u;
+  Texture2DArray<int4> v = arg_0;
+  uint v_1 = arg_2;
+  uint v_2 = arg_3;
+  int2 v_3 = int2(arg_1);
+  int v_4 = int(v_1);
+  int4 res = int4(v.Load(int4(v_3, v_4, int(v_2))));
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store4(0u, asuint(textureLoad_9885b0()));
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store4(0u, asuint(textureLoad_9885b0()));
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = textureLoad_9885b0();
+  VertexOutput v_5 = tint_symbol;
+  return v_5;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_6 = vertex_main_inner();
+  VertexOutput v_7 = v_6;
+  VertexOutput v_8 = v_6;
+  vertex_main_outputs v_9 = {v_8.prevent_dce, v_7.pos};
+  return v_9;
+}
+
diff --git a/test/tint/builtins/gen/var/textureLoad/99d8fa.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/textureLoad/99d8fa.wgsl.expected.ir.dxc.hlsl
index fd28383..334e6e8e 100644
--- a/test/tint/builtins/gen/var/textureLoad/99d8fa.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureLoad/99d8fa.wgsl.expected.ir.dxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureLoad
+..\..\src\tint\utils\containers\slice.h:216 internal compiler error: TINT_ASSERT(i < Length())
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/var/textureLoad/99d8fa.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/textureLoad/99d8fa.wgsl.expected.ir.fxc.hlsl
index fd28383..334e6e8e 100644
--- a/test/tint/builtins/gen/var/textureLoad/99d8fa.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureLoad/99d8fa.wgsl.expected.ir.fxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureLoad
+..\..\src\tint\utils\containers\slice.h:216 internal compiler error: TINT_ASSERT(i < Length())
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/var/textureLoad/9a7c90.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/textureLoad/9a7c90.wgsl.expected.ir.dxc.hlsl
index fd28383..334e6e8e 100644
--- a/test/tint/builtins/gen/var/textureLoad/9a7c90.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureLoad/9a7c90.wgsl.expected.ir.dxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureLoad
+..\..\src\tint\utils\containers\slice.h:216 internal compiler error: TINT_ASSERT(i < Length())
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/var/textureLoad/9a7c90.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/textureLoad/9a7c90.wgsl.expected.ir.fxc.hlsl
index fd28383..334e6e8e 100644
--- a/test/tint/builtins/gen/var/textureLoad/9a7c90.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureLoad/9a7c90.wgsl.expected.ir.fxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureLoad
+..\..\src\tint\utils\containers\slice.h:216 internal compiler error: TINT_ASSERT(i < Length())
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/var/textureLoad/9a8c1e.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/textureLoad/9a8c1e.wgsl.expected.ir.dxc.hlsl
index fd28383..334e6e8e 100644
--- a/test/tint/builtins/gen/var/textureLoad/9a8c1e.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureLoad/9a8c1e.wgsl.expected.ir.dxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureLoad
+..\..\src\tint\utils\containers\slice.h:216 internal compiler error: TINT_ASSERT(i < Length())
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/var/textureLoad/9a8c1e.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/textureLoad/9a8c1e.wgsl.expected.ir.fxc.hlsl
index fd28383..334e6e8e 100644
--- a/test/tint/builtins/gen/var/textureLoad/9a8c1e.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureLoad/9a8c1e.wgsl.expected.ir.fxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureLoad
+..\..\src\tint\utils\containers\slice.h:216 internal compiler error: TINT_ASSERT(i < Length())
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/var/textureLoad/9aa733.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/textureLoad/9aa733.wgsl.expected.ir.dxc.hlsl
index fd28383..59b6a54 100644
--- a/test/tint/builtins/gen/var/textureLoad/9aa733.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureLoad/9aa733.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,48 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  int4 prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureLoad
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation int4 VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+Texture2D<int4> arg_0 : register(t0, space1);
+int4 textureLoad_9aa733() {
+  uint2 arg_1 = (1u).xx;
+  int arg_2 = 1;
+  Texture2D<int4> v = arg_0;
+  int v_1 = arg_2;
+  int2 v_2 = int2(arg_1);
+  int4 res = int4(v.Load(int3(v_2, int(v_1))));
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store4(0u, asuint(textureLoad_9aa733()));
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store4(0u, asuint(textureLoad_9aa733()));
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = textureLoad_9aa733();
+  VertexOutput v_3 = tint_symbol;
+  return v_3;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_4 = vertex_main_inner();
+  VertexOutput v_5 = v_4;
+  VertexOutput v_6 = v_4;
+  vertex_main_outputs v_7 = {v_6.prevent_dce, v_5.pos};
+  return v_7;
+}
+
diff --git a/test/tint/builtins/gen/var/textureLoad/9aa733.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/textureLoad/9aa733.wgsl.expected.ir.fxc.hlsl
index fd28383..59b6a54 100644
--- a/test/tint/builtins/gen/var/textureLoad/9aa733.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureLoad/9aa733.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,48 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  int4 prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureLoad
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation int4 VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+Texture2D<int4> arg_0 : register(t0, space1);
+int4 textureLoad_9aa733() {
+  uint2 arg_1 = (1u).xx;
+  int arg_2 = 1;
+  Texture2D<int4> v = arg_0;
+  int v_1 = arg_2;
+  int2 v_2 = int2(arg_1);
+  int4 res = int4(v.Load(int3(v_2, int(v_1))));
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store4(0u, asuint(textureLoad_9aa733()));
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store4(0u, asuint(textureLoad_9aa733()));
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = textureLoad_9aa733();
+  VertexOutput v_3 = tint_symbol;
+  return v_3;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_4 = vertex_main_inner();
+  VertexOutput v_5 = v_4;
+  VertexOutput v_6 = v_4;
+  vertex_main_outputs v_7 = {v_6.prevent_dce, v_5.pos};
+  return v_7;
+}
+
diff --git a/test/tint/builtins/gen/var/textureLoad/9b2667.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/textureLoad/9b2667.wgsl.expected.ir.dxc.hlsl
index fd28383..de9a59b 100644
--- a/test/tint/builtins/gen/var/textureLoad/9b2667.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureLoad/9b2667.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,51 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  float prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureLoad
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation float VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+Texture2DArray arg_0 : register(t0, space1);
+float textureLoad_9b2667() {
+  int2 arg_1 = (1).xx;
+  int arg_2 = 1;
+  int arg_3 = 1;
+  Texture2DArray v = arg_0;
+  int v_1 = arg_2;
+  int v_2 = arg_3;
+  int2 v_3 = int2(arg_1);
+  int v_4 = int(v_1);
+  float res = v.Load(int4(v_3, v_4, int(v_2))).x;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store(0u, asuint(textureLoad_9b2667()));
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store(0u, asuint(textureLoad_9b2667()));
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = textureLoad_9b2667();
+  VertexOutput v_5 = tint_symbol;
+  return v_5;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_6 = vertex_main_inner();
+  VertexOutput v_7 = v_6;
+  VertexOutput v_8 = v_6;
+  vertex_main_outputs v_9 = {v_8.prevent_dce, v_7.pos};
+  return v_9;
+}
+
diff --git a/test/tint/builtins/gen/var/textureLoad/9b2667.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/textureLoad/9b2667.wgsl.expected.ir.fxc.hlsl
index fd28383..de9a59b 100644
--- a/test/tint/builtins/gen/var/textureLoad/9b2667.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureLoad/9b2667.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,51 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  float prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureLoad
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation float VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+Texture2DArray arg_0 : register(t0, space1);
+float textureLoad_9b2667() {
+  int2 arg_1 = (1).xx;
+  int arg_2 = 1;
+  int arg_3 = 1;
+  Texture2DArray v = arg_0;
+  int v_1 = arg_2;
+  int v_2 = arg_3;
+  int2 v_3 = int2(arg_1);
+  int v_4 = int(v_1);
+  float res = v.Load(int4(v_3, v_4, int(v_2))).x;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store(0u, asuint(textureLoad_9b2667()));
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store(0u, asuint(textureLoad_9b2667()));
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = textureLoad_9b2667();
+  VertexOutput v_5 = tint_symbol;
+  return v_5;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_6 = vertex_main_inner();
+  VertexOutput v_7 = v_6;
+  VertexOutput v_8 = v_6;
+  vertex_main_outputs v_9 = {v_8.prevent_dce, v_7.pos};
+  return v_9;
+}
+
diff --git a/test/tint/builtins/gen/var/textureLoad/9b5343.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/textureLoad/9b5343.wgsl.expected.ir.dxc.hlsl
index fd28383..334e6e8e 100644
--- a/test/tint/builtins/gen/var/textureLoad/9b5343.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureLoad/9b5343.wgsl.expected.ir.dxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureLoad
+..\..\src\tint\utils\containers\slice.h:216 internal compiler error: TINT_ASSERT(i < Length())
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/var/textureLoad/9b5343.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/textureLoad/9b5343.wgsl.expected.ir.fxc.hlsl
index fd28383..334e6e8e 100644
--- a/test/tint/builtins/gen/var/textureLoad/9b5343.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureLoad/9b5343.wgsl.expected.ir.fxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureLoad
+..\..\src\tint\utils\containers\slice.h:216 internal compiler error: TINT_ASSERT(i < Length())
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/var/textureLoad/9c2376.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/textureLoad/9c2376.wgsl.expected.ir.dxc.hlsl
index fd28383..334e6e8e 100644
--- a/test/tint/builtins/gen/var/textureLoad/9c2376.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureLoad/9c2376.wgsl.expected.ir.dxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureLoad
+..\..\src\tint\utils\containers\slice.h:216 internal compiler error: TINT_ASSERT(i < Length())
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/var/textureLoad/9c2376.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/textureLoad/9c2376.wgsl.expected.ir.fxc.hlsl
index fd28383..334e6e8e 100644
--- a/test/tint/builtins/gen/var/textureLoad/9c2376.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureLoad/9c2376.wgsl.expected.ir.fxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureLoad
+..\..\src\tint\utils\containers\slice.h:216 internal compiler error: TINT_ASSERT(i < Length())
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/var/textureLoad/9c2a14.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/textureLoad/9c2a14.wgsl.expected.ir.dxc.hlsl
index fd28383..334e6e8e 100644
--- a/test/tint/builtins/gen/var/textureLoad/9c2a14.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureLoad/9c2a14.wgsl.expected.ir.dxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureLoad
+..\..\src\tint\utils\containers\slice.h:216 internal compiler error: TINT_ASSERT(i < Length())
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/var/textureLoad/9c2a14.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/textureLoad/9c2a14.wgsl.expected.ir.fxc.hlsl
index fd28383..334e6e8e 100644
--- a/test/tint/builtins/gen/var/textureLoad/9c2a14.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureLoad/9c2a14.wgsl.expected.ir.fxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureLoad
+..\..\src\tint\utils\containers\slice.h:216 internal compiler error: TINT_ASSERT(i < Length())
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/var/textureLoad/9cf7df.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/textureLoad/9cf7df.wgsl.expected.ir.dxc.hlsl
index fd28383..334e6e8e 100644
--- a/test/tint/builtins/gen/var/textureLoad/9cf7df.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureLoad/9cf7df.wgsl.expected.ir.dxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureLoad
+..\..\src\tint\utils\containers\slice.h:216 internal compiler error: TINT_ASSERT(i < Length())
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/var/textureLoad/9cf7df.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/textureLoad/9cf7df.wgsl.expected.ir.fxc.hlsl
index fd28383..334e6e8e 100644
--- a/test/tint/builtins/gen/var/textureLoad/9cf7df.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureLoad/9cf7df.wgsl.expected.ir.fxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureLoad
+..\..\src\tint\utils\containers\slice.h:216 internal compiler error: TINT_ASSERT(i < Length())
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/var/textureLoad/9d70e9.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/textureLoad/9d70e9.wgsl.expected.ir.dxc.hlsl
index fd28383..547895f 100644
--- a/test/tint/builtins/gen/var/textureLoad/9d70e9.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureLoad/9d70e9.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,51 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  int4 prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureLoad
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation int4 VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+Texture2DArray<int4> arg_0 : register(t0, space1);
+int4 textureLoad_9d70e9() {
+  int2 arg_1 = (1).xx;
+  int arg_2 = 1;
+  uint arg_3 = 1u;
+  Texture2DArray<int4> v = arg_0;
+  int v_1 = arg_2;
+  uint v_2 = arg_3;
+  int2 v_3 = int2(arg_1);
+  int v_4 = int(v_1);
+  int4 res = int4(v.Load(int4(v_3, v_4, int(v_2))));
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store4(0u, asuint(textureLoad_9d70e9()));
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store4(0u, asuint(textureLoad_9d70e9()));
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = textureLoad_9d70e9();
+  VertexOutput v_5 = tint_symbol;
+  return v_5;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_6 = vertex_main_inner();
+  VertexOutput v_7 = v_6;
+  VertexOutput v_8 = v_6;
+  vertex_main_outputs v_9 = {v_8.prevent_dce, v_7.pos};
+  return v_9;
+}
+
diff --git a/test/tint/builtins/gen/var/textureLoad/9d70e9.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/textureLoad/9d70e9.wgsl.expected.ir.fxc.hlsl
index fd28383..547895f 100644
--- a/test/tint/builtins/gen/var/textureLoad/9d70e9.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureLoad/9d70e9.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,51 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  int4 prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureLoad
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation int4 VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+Texture2DArray<int4> arg_0 : register(t0, space1);
+int4 textureLoad_9d70e9() {
+  int2 arg_1 = (1).xx;
+  int arg_2 = 1;
+  uint arg_3 = 1u;
+  Texture2DArray<int4> v = arg_0;
+  int v_1 = arg_2;
+  uint v_2 = arg_3;
+  int2 v_3 = int2(arg_1);
+  int v_4 = int(v_1);
+  int4 res = int4(v.Load(int4(v_3, v_4, int(v_2))));
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store4(0u, asuint(textureLoad_9d70e9()));
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store4(0u, asuint(textureLoad_9d70e9()));
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = textureLoad_9d70e9();
+  VertexOutput v_5 = tint_symbol;
+  return v_5;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_6 = vertex_main_inner();
+  VertexOutput v_7 = v_6;
+  VertexOutput v_8 = v_6;
+  vertex_main_outputs v_9 = {v_8.prevent_dce, v_7.pos};
+  return v_9;
+}
+
diff --git a/test/tint/builtins/gen/var/textureLoad/9de6f5.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/textureLoad/9de6f5.wgsl.expected.ir.dxc.hlsl
index fd28383..334e6e8e 100644
--- a/test/tint/builtins/gen/var/textureLoad/9de6f5.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureLoad/9de6f5.wgsl.expected.ir.dxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureLoad
+..\..\src\tint\utils\containers\slice.h:216 internal compiler error: TINT_ASSERT(i < Length())
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/var/textureLoad/9de6f5.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/textureLoad/9de6f5.wgsl.expected.ir.fxc.hlsl
index fd28383..334e6e8e 100644
--- a/test/tint/builtins/gen/var/textureLoad/9de6f5.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureLoad/9de6f5.wgsl.expected.ir.fxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureLoad
+..\..\src\tint\utils\containers\slice.h:216 internal compiler error: TINT_ASSERT(i < Length())
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/var/textureLoad/9ed19e.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/textureLoad/9ed19e.wgsl.expected.ir.dxc.hlsl
index fd28383..4755457 100644
--- a/test/tint/builtins/gen/var/textureLoad/9ed19e.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureLoad/9ed19e.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,48 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  float prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureLoad
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation float VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+Texture2D arg_0 : register(t0, space1);
+float textureLoad_9ed19e() {
+  uint2 arg_1 = (1u).xx;
+  uint arg_2 = 1u;
+  Texture2D v = arg_0;
+  uint v_1 = arg_2;
+  int2 v_2 = int2(arg_1);
+  float res = v.Load(int3(v_2, int(v_1))).x;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store(0u, asuint(textureLoad_9ed19e()));
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store(0u, asuint(textureLoad_9ed19e()));
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = textureLoad_9ed19e();
+  VertexOutput v_3 = tint_symbol;
+  return v_3;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_4 = vertex_main_inner();
+  VertexOutput v_5 = v_4;
+  VertexOutput v_6 = v_4;
+  vertex_main_outputs v_7 = {v_6.prevent_dce, v_5.pos};
+  return v_7;
+}
+
diff --git a/test/tint/builtins/gen/var/textureLoad/9ed19e.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/textureLoad/9ed19e.wgsl.expected.ir.fxc.hlsl
index fd28383..4755457 100644
--- a/test/tint/builtins/gen/var/textureLoad/9ed19e.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureLoad/9ed19e.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,48 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  float prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureLoad
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation float VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+Texture2D arg_0 : register(t0, space1);
+float textureLoad_9ed19e() {
+  uint2 arg_1 = (1u).xx;
+  uint arg_2 = 1u;
+  Texture2D v = arg_0;
+  uint v_1 = arg_2;
+  int2 v_2 = int2(arg_1);
+  float res = v.Load(int3(v_2, int(v_1))).x;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store(0u, asuint(textureLoad_9ed19e()));
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store(0u, asuint(textureLoad_9ed19e()));
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = textureLoad_9ed19e();
+  VertexOutput v_3 = tint_symbol;
+  return v_3;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_4 = vertex_main_inner();
+  VertexOutput v_5 = v_4;
+  VertexOutput v_6 = v_4;
+  vertex_main_outputs v_7 = {v_6.prevent_dce, v_5.pos};
+  return v_7;
+}
+
diff --git a/test/tint/builtins/gen/var/textureLoad/9fa9fd.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/textureLoad/9fa9fd.wgsl.expected.ir.dxc.hlsl
index fd28383..334e6e8e 100644
--- a/test/tint/builtins/gen/var/textureLoad/9fa9fd.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureLoad/9fa9fd.wgsl.expected.ir.dxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureLoad
+..\..\src\tint\utils\containers\slice.h:216 internal compiler error: TINT_ASSERT(i < Length())
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/var/textureLoad/9fa9fd.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/textureLoad/9fa9fd.wgsl.expected.ir.fxc.hlsl
index fd28383..334e6e8e 100644
--- a/test/tint/builtins/gen/var/textureLoad/9fa9fd.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureLoad/9fa9fd.wgsl.expected.ir.fxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureLoad
+..\..\src\tint\utils\containers\slice.h:216 internal compiler error: TINT_ASSERT(i < Length())
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/var/textureLoad/9fbfd9.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/textureLoad/9fbfd9.wgsl.expected.ir.dxc.hlsl
index fd28383..68c32e8 100644
--- a/test/tint/builtins/gen/var/textureLoad/9fbfd9.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureLoad/9fbfd9.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,51 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  int4 prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureLoad
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation int4 VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+Texture2DArray<int4> arg_0 : register(t0, space1);
+int4 textureLoad_9fbfd9() {
+  int2 arg_1 = (1).xx;
+  uint arg_2 = 1u;
+  uint arg_3 = 1u;
+  Texture2DArray<int4> v = arg_0;
+  uint v_1 = arg_2;
+  uint v_2 = arg_3;
+  int2 v_3 = int2(arg_1);
+  int v_4 = int(v_1);
+  int4 res = int4(v.Load(int4(v_3, v_4, int(v_2))));
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store4(0u, asuint(textureLoad_9fbfd9()));
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store4(0u, asuint(textureLoad_9fbfd9()));
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = textureLoad_9fbfd9();
+  VertexOutput v_5 = tint_symbol;
+  return v_5;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_6 = vertex_main_inner();
+  VertexOutput v_7 = v_6;
+  VertexOutput v_8 = v_6;
+  vertex_main_outputs v_9 = {v_8.prevent_dce, v_7.pos};
+  return v_9;
+}
+
diff --git a/test/tint/builtins/gen/var/textureLoad/9fbfd9.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/textureLoad/9fbfd9.wgsl.expected.ir.fxc.hlsl
index fd28383..68c32e8 100644
--- a/test/tint/builtins/gen/var/textureLoad/9fbfd9.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureLoad/9fbfd9.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,51 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  int4 prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureLoad
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation int4 VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+Texture2DArray<int4> arg_0 : register(t0, space1);
+int4 textureLoad_9fbfd9() {
+  int2 arg_1 = (1).xx;
+  uint arg_2 = 1u;
+  uint arg_3 = 1u;
+  Texture2DArray<int4> v = arg_0;
+  uint v_1 = arg_2;
+  uint v_2 = arg_3;
+  int2 v_3 = int2(arg_1);
+  int v_4 = int(v_1);
+  int4 res = int4(v.Load(int4(v_3, v_4, int(v_2))));
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store4(0u, asuint(textureLoad_9fbfd9()));
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store4(0u, asuint(textureLoad_9fbfd9()));
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = textureLoad_9fbfd9();
+  VertexOutput v_5 = tint_symbol;
+  return v_5;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_6 = vertex_main_inner();
+  VertexOutput v_7 = v_6;
+  VertexOutput v_8 = v_6;
+  vertex_main_outputs v_9 = {v_8.prevent_dce, v_7.pos};
+  return v_9;
+}
+
diff --git a/test/tint/builtins/gen/var/textureLoad/9fd7be.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/textureLoad/9fd7be.wgsl.expected.ir.dxc.hlsl
index fd28383..334e6e8e 100644
--- a/test/tint/builtins/gen/var/textureLoad/9fd7be.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureLoad/9fd7be.wgsl.expected.ir.dxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureLoad
+..\..\src\tint\utils\containers\slice.h:216 internal compiler error: TINT_ASSERT(i < Length())
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/var/textureLoad/9fd7be.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/textureLoad/9fd7be.wgsl.expected.ir.fxc.hlsl
index fd28383..334e6e8e 100644
--- a/test/tint/builtins/gen/var/textureLoad/9fd7be.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureLoad/9fd7be.wgsl.expected.ir.fxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureLoad
+..\..\src\tint\utils\containers\slice.h:216 internal compiler error: TINT_ASSERT(i < Length())
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/var/textureLoad/a03af1.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/textureLoad/a03af1.wgsl.expected.ir.dxc.hlsl
index fd28383..334e6e8e 100644
--- a/test/tint/builtins/gen/var/textureLoad/a03af1.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureLoad/a03af1.wgsl.expected.ir.dxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureLoad
+..\..\src\tint\utils\containers\slice.h:216 internal compiler error: TINT_ASSERT(i < Length())
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/var/textureLoad/a03af1.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/textureLoad/a03af1.wgsl.expected.ir.fxc.hlsl
index fd28383..334e6e8e 100644
--- a/test/tint/builtins/gen/var/textureLoad/a03af1.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureLoad/a03af1.wgsl.expected.ir.fxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureLoad
+..\..\src\tint\utils\containers\slice.h:216 internal compiler error: TINT_ASSERT(i < Length())
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/var/textureLoad/a24be1.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/textureLoad/a24be1.wgsl.expected.ir.dxc.hlsl
index fd28383..b3cd778 100644
--- a/test/tint/builtins/gen/var/textureLoad/a24be1.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureLoad/a24be1.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,51 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  uint4 prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureLoad
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation uint4 VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+Texture2DArray<uint4> arg_0 : register(t0, space1);
+uint4 textureLoad_a24be1() {
+  uint2 arg_1 = (1u).xx;
+  int arg_2 = 1;
+  uint arg_3 = 1u;
+  Texture2DArray<uint4> v = arg_0;
+  int v_1 = arg_2;
+  uint v_2 = arg_3;
+  int2 v_3 = int2(arg_1);
+  int v_4 = int(v_1);
+  uint4 res = uint4(v.Load(int4(v_3, v_4, int(v_2))));
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store4(0u, textureLoad_a24be1());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store4(0u, textureLoad_a24be1());
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = textureLoad_a24be1();
+  VertexOutput v_5 = tint_symbol;
+  return v_5;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_6 = vertex_main_inner();
+  VertexOutput v_7 = v_6;
+  VertexOutput v_8 = v_6;
+  vertex_main_outputs v_9 = {v_8.prevent_dce, v_7.pos};
+  return v_9;
+}
+
diff --git a/test/tint/builtins/gen/var/textureLoad/a24be1.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/textureLoad/a24be1.wgsl.expected.ir.fxc.hlsl
index fd28383..b3cd778 100644
--- a/test/tint/builtins/gen/var/textureLoad/a24be1.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureLoad/a24be1.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,51 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  uint4 prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureLoad
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation uint4 VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+Texture2DArray<uint4> arg_0 : register(t0, space1);
+uint4 textureLoad_a24be1() {
+  uint2 arg_1 = (1u).xx;
+  int arg_2 = 1;
+  uint arg_3 = 1u;
+  Texture2DArray<uint4> v = arg_0;
+  int v_1 = arg_2;
+  uint v_2 = arg_3;
+  int2 v_3 = int2(arg_1);
+  int v_4 = int(v_1);
+  uint4 res = uint4(v.Load(int4(v_3, v_4, int(v_2))));
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store4(0u, textureLoad_a24be1());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store4(0u, textureLoad_a24be1());
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = textureLoad_a24be1();
+  VertexOutput v_5 = tint_symbol;
+  return v_5;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_6 = vertex_main_inner();
+  VertexOutput v_7 = v_6;
+  VertexOutput v_8 = v_6;
+  vertex_main_outputs v_9 = {v_8.prevent_dce, v_7.pos};
+  return v_9;
+}
+
diff --git a/test/tint/builtins/gen/var/textureLoad/a2b3f4.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/textureLoad/a2b3f4.wgsl.expected.ir.dxc.hlsl
index fd28383..334e6e8e 100644
--- a/test/tint/builtins/gen/var/textureLoad/a2b3f4.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureLoad/a2b3f4.wgsl.expected.ir.dxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureLoad
+..\..\src\tint\utils\containers\slice.h:216 internal compiler error: TINT_ASSERT(i < Length())
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/var/textureLoad/a2b3f4.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/textureLoad/a2b3f4.wgsl.expected.ir.fxc.hlsl
index fd28383..334e6e8e 100644
--- a/test/tint/builtins/gen/var/textureLoad/a2b3f4.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureLoad/a2b3f4.wgsl.expected.ir.fxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureLoad
+..\..\src\tint\utils\containers\slice.h:216 internal compiler error: TINT_ASSERT(i < Length())
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/var/textureLoad/a3733f.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/textureLoad/a3733f.wgsl.expected.ir.dxc.hlsl
index fd28383..334e6e8e 100644
--- a/test/tint/builtins/gen/var/textureLoad/a3733f.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureLoad/a3733f.wgsl.expected.ir.dxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureLoad
+..\..\src\tint\utils\containers\slice.h:216 internal compiler error: TINT_ASSERT(i < Length())
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/var/textureLoad/a3733f.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/textureLoad/a3733f.wgsl.expected.ir.fxc.hlsl
index fd28383..334e6e8e 100644
--- a/test/tint/builtins/gen/var/textureLoad/a3733f.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureLoad/a3733f.wgsl.expected.ir.fxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureLoad
+..\..\src\tint\utils\containers\slice.h:216 internal compiler error: TINT_ASSERT(i < Length())
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/var/textureLoad/a3f122.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/textureLoad/a3f122.wgsl.expected.ir.dxc.hlsl
index fd28383..334e6e8e 100644
--- a/test/tint/builtins/gen/var/textureLoad/a3f122.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureLoad/a3f122.wgsl.expected.ir.dxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureLoad
+..\..\src\tint\utils\containers\slice.h:216 internal compiler error: TINT_ASSERT(i < Length())
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/var/textureLoad/a3f122.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/textureLoad/a3f122.wgsl.expected.ir.fxc.hlsl
index fd28383..334e6e8e 100644
--- a/test/tint/builtins/gen/var/textureLoad/a3f122.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureLoad/a3f122.wgsl.expected.ir.fxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureLoad
+..\..\src\tint\utils\containers\slice.h:216 internal compiler error: TINT_ASSERT(i < Length())
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/var/textureLoad/a548a8.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/textureLoad/a548a8.wgsl.expected.ir.dxc.hlsl
index fd28383..334e6e8e 100644
--- a/test/tint/builtins/gen/var/textureLoad/a548a8.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureLoad/a548a8.wgsl.expected.ir.dxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureLoad
+..\..\src\tint\utils\containers\slice.h:216 internal compiler error: TINT_ASSERT(i < Length())
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/var/textureLoad/a548a8.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/textureLoad/a548a8.wgsl.expected.ir.fxc.hlsl
index fd28383..334e6e8e 100644
--- a/test/tint/builtins/gen/var/textureLoad/a548a8.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureLoad/a548a8.wgsl.expected.ir.fxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureLoad
+..\..\src\tint\utils\containers\slice.h:216 internal compiler error: TINT_ASSERT(i < Length())
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/var/textureLoad/a54e11.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/textureLoad/a54e11.wgsl.expected.ir.dxc.hlsl
index fd28383..334e6e8e 100644
--- a/test/tint/builtins/gen/var/textureLoad/a54e11.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureLoad/a54e11.wgsl.expected.ir.dxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureLoad
+..\..\src\tint\utils\containers\slice.h:216 internal compiler error: TINT_ASSERT(i < Length())
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/var/textureLoad/a54e11.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/textureLoad/a54e11.wgsl.expected.ir.fxc.hlsl
index fd28383..334e6e8e 100644
--- a/test/tint/builtins/gen/var/textureLoad/a54e11.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureLoad/a54e11.wgsl.expected.ir.fxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureLoad
+..\..\src\tint\utils\containers\slice.h:216 internal compiler error: TINT_ASSERT(i < Length())
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/var/textureLoad/a583c9.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/textureLoad/a583c9.wgsl.expected.ir.dxc.hlsl
index fd28383..d80694a 100644
--- a/test/tint/builtins/gen/var/textureLoad/a583c9.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureLoad/a583c9.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,48 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  float4 prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureLoad
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation float4 VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+Texture2DMS<float4> arg_0 : register(t0, space1);
+float4 textureLoad_a583c9() {
+  int2 arg_1 = (1).xx;
+  int arg_2 = 1;
+  Texture2DMS<float4> v = arg_0;
+  int v_1 = arg_2;
+  int2 v_2 = int2(arg_1);
+  float4 res = float4(v.Load(v_2, int(v_1)));
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store4(0u, asuint(textureLoad_a583c9()));
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store4(0u, asuint(textureLoad_a583c9()));
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = textureLoad_a583c9();
+  VertexOutput v_3 = tint_symbol;
+  return v_3;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_4 = vertex_main_inner();
+  VertexOutput v_5 = v_4;
+  VertexOutput v_6 = v_4;
+  vertex_main_outputs v_7 = {v_6.prevent_dce, v_5.pos};
+  return v_7;
+}
+
diff --git a/test/tint/builtins/gen/var/textureLoad/a583c9.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/textureLoad/a583c9.wgsl.expected.ir.fxc.hlsl
index fd28383..d80694a 100644
--- a/test/tint/builtins/gen/var/textureLoad/a583c9.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureLoad/a583c9.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,48 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  float4 prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureLoad
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation float4 VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+Texture2DMS<float4> arg_0 : register(t0, space1);
+float4 textureLoad_a583c9() {
+  int2 arg_1 = (1).xx;
+  int arg_2 = 1;
+  Texture2DMS<float4> v = arg_0;
+  int v_1 = arg_2;
+  int2 v_2 = int2(arg_1);
+  float4 res = float4(v.Load(v_2, int(v_1)));
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store4(0u, asuint(textureLoad_a583c9()));
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store4(0u, asuint(textureLoad_a583c9()));
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = textureLoad_a583c9();
+  VertexOutput v_3 = tint_symbol;
+  return v_3;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_4 = vertex_main_inner();
+  VertexOutput v_5 = v_4;
+  VertexOutput v_6 = v_4;
+  vertex_main_outputs v_7 = {v_6.prevent_dce, v_5.pos};
+  return v_7;
+}
+
diff --git a/test/tint/builtins/gen/var/textureLoad/a5c4e2.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/textureLoad/a5c4e2.wgsl.expected.ir.dxc.hlsl
index fd28383..334e6e8e 100644
--- a/test/tint/builtins/gen/var/textureLoad/a5c4e2.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureLoad/a5c4e2.wgsl.expected.ir.dxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureLoad
+..\..\src\tint\utils\containers\slice.h:216 internal compiler error: TINT_ASSERT(i < Length())
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/var/textureLoad/a5c4e2.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/textureLoad/a5c4e2.wgsl.expected.ir.fxc.hlsl
index fd28383..334e6e8e 100644
--- a/test/tint/builtins/gen/var/textureLoad/a5c4e2.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureLoad/a5c4e2.wgsl.expected.ir.fxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureLoad
+..\..\src\tint\utils\containers\slice.h:216 internal compiler error: TINT_ASSERT(i < Length())
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/var/textureLoad/a5e0a5.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/textureLoad/a5e0a5.wgsl.expected.ir.dxc.hlsl
index fd28383..334e6e8e 100644
--- a/test/tint/builtins/gen/var/textureLoad/a5e0a5.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureLoad/a5e0a5.wgsl.expected.ir.dxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureLoad
+..\..\src\tint\utils\containers\slice.h:216 internal compiler error: TINT_ASSERT(i < Length())
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/var/textureLoad/a5e0a5.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/textureLoad/a5e0a5.wgsl.expected.ir.fxc.hlsl
index fd28383..334e6e8e 100644
--- a/test/tint/builtins/gen/var/textureLoad/a5e0a5.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureLoad/a5e0a5.wgsl.expected.ir.fxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureLoad
+..\..\src\tint\utils\containers\slice.h:216 internal compiler error: TINT_ASSERT(i < Length())
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/var/textureLoad/a64b1d.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/textureLoad/a64b1d.wgsl.expected.ir.dxc.hlsl
index fd28383..334e6e8e 100644
--- a/test/tint/builtins/gen/var/textureLoad/a64b1d.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureLoad/a64b1d.wgsl.expected.ir.dxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureLoad
+..\..\src\tint\utils\containers\slice.h:216 internal compiler error: TINT_ASSERT(i < Length())
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/var/textureLoad/a64b1d.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/textureLoad/a64b1d.wgsl.expected.ir.fxc.hlsl
index fd28383..334e6e8e 100644
--- a/test/tint/builtins/gen/var/textureLoad/a64b1d.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureLoad/a64b1d.wgsl.expected.ir.fxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureLoad
+..\..\src\tint\utils\containers\slice.h:216 internal compiler error: TINT_ASSERT(i < Length())
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/var/textureLoad/a6a85a.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/textureLoad/a6a85a.wgsl.expected.ir.dxc.hlsl
index fd28383..334e6e8e 100644
--- a/test/tint/builtins/gen/var/textureLoad/a6a85a.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureLoad/a6a85a.wgsl.expected.ir.dxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureLoad
+..\..\src\tint\utils\containers\slice.h:216 internal compiler error: TINT_ASSERT(i < Length())
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/var/textureLoad/a6a85a.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/textureLoad/a6a85a.wgsl.expected.ir.fxc.hlsl
index fd28383..334e6e8e 100644
--- a/test/tint/builtins/gen/var/textureLoad/a6a85a.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureLoad/a6a85a.wgsl.expected.ir.fxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureLoad
+..\..\src\tint\utils\containers\slice.h:216 internal compiler error: TINT_ASSERT(i < Length())
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/var/textureLoad/a6b61d.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/textureLoad/a6b61d.wgsl.expected.ir.dxc.hlsl
index fd28383..334e6e8e 100644
--- a/test/tint/builtins/gen/var/textureLoad/a6b61d.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureLoad/a6b61d.wgsl.expected.ir.dxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureLoad
+..\..\src\tint\utils\containers\slice.h:216 internal compiler error: TINT_ASSERT(i < Length())
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/var/textureLoad/a6b61d.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/textureLoad/a6b61d.wgsl.expected.ir.fxc.hlsl
index fd28383..334e6e8e 100644
--- a/test/tint/builtins/gen/var/textureLoad/a6b61d.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureLoad/a6b61d.wgsl.expected.ir.fxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureLoad
+..\..\src\tint\utils\containers\slice.h:216 internal compiler error: TINT_ASSERT(i < Length())
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/var/textureLoad/a7444c.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/textureLoad/a7444c.wgsl.expected.ir.dxc.hlsl
index fd28383..334e6e8e 100644
--- a/test/tint/builtins/gen/var/textureLoad/a7444c.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureLoad/a7444c.wgsl.expected.ir.dxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureLoad
+..\..\src\tint\utils\containers\slice.h:216 internal compiler error: TINT_ASSERT(i < Length())
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/var/textureLoad/a7444c.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/textureLoad/a7444c.wgsl.expected.ir.fxc.hlsl
index fd28383..334e6e8e 100644
--- a/test/tint/builtins/gen/var/textureLoad/a7444c.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureLoad/a7444c.wgsl.expected.ir.fxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureLoad
+..\..\src\tint\utils\containers\slice.h:216 internal compiler error: TINT_ASSERT(i < Length())
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/var/textureLoad/a7a3c3.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/textureLoad/a7a3c3.wgsl.expected.ir.dxc.hlsl
index fd28383..334e6e8e 100644
--- a/test/tint/builtins/gen/var/textureLoad/a7a3c3.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureLoad/a7a3c3.wgsl.expected.ir.dxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureLoad
+..\..\src\tint\utils\containers\slice.h:216 internal compiler error: TINT_ASSERT(i < Length())
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/var/textureLoad/a7a3c3.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/textureLoad/a7a3c3.wgsl.expected.ir.fxc.hlsl
index fd28383..334e6e8e 100644
--- a/test/tint/builtins/gen/var/textureLoad/a7a3c3.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureLoad/a7a3c3.wgsl.expected.ir.fxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureLoad
+..\..\src\tint\utils\containers\slice.h:216 internal compiler error: TINT_ASSERT(i < Length())
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/var/textureLoad/a7bcb4.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/textureLoad/a7bcb4.wgsl.expected.ir.dxc.hlsl
index fd28383..334e6e8e 100644
--- a/test/tint/builtins/gen/var/textureLoad/a7bcb4.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureLoad/a7bcb4.wgsl.expected.ir.dxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureLoad
+..\..\src\tint\utils\containers\slice.h:216 internal compiler error: TINT_ASSERT(i < Length())
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/var/textureLoad/a7bcb4.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/textureLoad/a7bcb4.wgsl.expected.ir.fxc.hlsl
index fd28383..334e6e8e 100644
--- a/test/tint/builtins/gen/var/textureLoad/a7bcb4.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureLoad/a7bcb4.wgsl.expected.ir.fxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureLoad
+..\..\src\tint\utils\containers\slice.h:216 internal compiler error: TINT_ASSERT(i < Length())
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/var/textureLoad/a7c171.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/textureLoad/a7c171.wgsl.expected.ir.dxc.hlsl
index fd28383..334e6e8e 100644
--- a/test/tint/builtins/gen/var/textureLoad/a7c171.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureLoad/a7c171.wgsl.expected.ir.dxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureLoad
+..\..\src\tint\utils\containers\slice.h:216 internal compiler error: TINT_ASSERT(i < Length())
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/var/textureLoad/a7c171.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/textureLoad/a7c171.wgsl.expected.ir.fxc.hlsl
index fd28383..334e6e8e 100644
--- a/test/tint/builtins/gen/var/textureLoad/a7c171.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureLoad/a7c171.wgsl.expected.ir.fxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureLoad
+..\..\src\tint\utils\containers\slice.h:216 internal compiler error: TINT_ASSERT(i < Length())
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/var/textureLoad/a8549b.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/textureLoad/a8549b.wgsl.expected.ir.dxc.hlsl
index fd28383..334e6e8e 100644
--- a/test/tint/builtins/gen/var/textureLoad/a8549b.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureLoad/a8549b.wgsl.expected.ir.dxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureLoad
+..\..\src\tint\utils\containers\slice.h:216 internal compiler error: TINT_ASSERT(i < Length())
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/var/textureLoad/a8549b.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/textureLoad/a8549b.wgsl.expected.ir.fxc.hlsl
index fd28383..334e6e8e 100644
--- a/test/tint/builtins/gen/var/textureLoad/a8549b.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureLoad/a8549b.wgsl.expected.ir.fxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureLoad
+..\..\src\tint\utils\containers\slice.h:216 internal compiler error: TINT_ASSERT(i < Length())
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/var/textureLoad/a92b18.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/textureLoad/a92b18.wgsl.expected.ir.dxc.hlsl
index fd28383..334e6e8e 100644
--- a/test/tint/builtins/gen/var/textureLoad/a92b18.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureLoad/a92b18.wgsl.expected.ir.dxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureLoad
+..\..\src\tint\utils\containers\slice.h:216 internal compiler error: TINT_ASSERT(i < Length())
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/var/textureLoad/a92b18.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/textureLoad/a92b18.wgsl.expected.ir.fxc.hlsl
index fd28383..334e6e8e 100644
--- a/test/tint/builtins/gen/var/textureLoad/a92b18.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureLoad/a92b18.wgsl.expected.ir.fxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureLoad
+..\..\src\tint\utils\containers\slice.h:216 internal compiler error: TINT_ASSERT(i < Length())
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/var/textureLoad/a9a9f5.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/textureLoad/a9a9f5.wgsl.expected.ir.dxc.hlsl
index fd28383..c0e07b3 100644
--- a/test/tint/builtins/gen/var/textureLoad/a9a9f5.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureLoad/a9a9f5.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,48 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  uint4 prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureLoad
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation uint4 VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+Texture3D<uint4> arg_0 : register(t0, space1);
+uint4 textureLoad_a9a9f5() {
+  int3 arg_1 = (1).xxx;
+  int arg_2 = 1;
+  Texture3D<uint4> v = arg_0;
+  int v_1 = arg_2;
+  int3 v_2 = int3(arg_1);
+  uint4 res = uint4(v.Load(int4(v_2, int(v_1))));
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store4(0u, textureLoad_a9a9f5());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store4(0u, textureLoad_a9a9f5());
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = textureLoad_a9a9f5();
+  VertexOutput v_3 = tint_symbol;
+  return v_3;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_4 = vertex_main_inner();
+  VertexOutput v_5 = v_4;
+  VertexOutput v_6 = v_4;
+  vertex_main_outputs v_7 = {v_6.prevent_dce, v_5.pos};
+  return v_7;
+}
+
diff --git a/test/tint/builtins/gen/var/textureLoad/a9a9f5.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/textureLoad/a9a9f5.wgsl.expected.ir.fxc.hlsl
index fd28383..c0e07b3 100644
--- a/test/tint/builtins/gen/var/textureLoad/a9a9f5.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureLoad/a9a9f5.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,48 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  uint4 prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureLoad
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation uint4 VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+Texture3D<uint4> arg_0 : register(t0, space1);
+uint4 textureLoad_a9a9f5() {
+  int3 arg_1 = (1).xxx;
+  int arg_2 = 1;
+  Texture3D<uint4> v = arg_0;
+  int v_1 = arg_2;
+  int3 v_2 = int3(arg_1);
+  uint4 res = uint4(v.Load(int4(v_2, int(v_1))));
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store4(0u, textureLoad_a9a9f5());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store4(0u, textureLoad_a9a9f5());
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = textureLoad_a9a9f5();
+  VertexOutput v_3 = tint_symbol;
+  return v_3;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_4 = vertex_main_inner();
+  VertexOutput v_5 = v_4;
+  VertexOutput v_6 = v_4;
+  vertex_main_outputs v_7 = {v_6.prevent_dce, v_5.pos};
+  return v_7;
+}
+
diff --git a/test/tint/builtins/gen/var/textureLoad/aa2579.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/textureLoad/aa2579.wgsl.expected.ir.dxc.hlsl
index fd28383..334e6e8e 100644
--- a/test/tint/builtins/gen/var/textureLoad/aa2579.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureLoad/aa2579.wgsl.expected.ir.dxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureLoad
+..\..\src\tint\utils\containers\slice.h:216 internal compiler error: TINT_ASSERT(i < Length())
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/var/textureLoad/aa2579.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/textureLoad/aa2579.wgsl.expected.ir.fxc.hlsl
index fd28383..334e6e8e 100644
--- a/test/tint/builtins/gen/var/textureLoad/aa2579.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureLoad/aa2579.wgsl.expected.ir.fxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureLoad
+..\..\src\tint\utils\containers\slice.h:216 internal compiler error: TINT_ASSERT(i < Length())
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/var/textureLoad/aa6130.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/textureLoad/aa6130.wgsl.expected.ir.dxc.hlsl
index fd28383..334e6e8e 100644
--- a/test/tint/builtins/gen/var/textureLoad/aa6130.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureLoad/aa6130.wgsl.expected.ir.dxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureLoad
+..\..\src\tint\utils\containers\slice.h:216 internal compiler error: TINT_ASSERT(i < Length())
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/var/textureLoad/aa6130.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/textureLoad/aa6130.wgsl.expected.ir.fxc.hlsl
index fd28383..334e6e8e 100644
--- a/test/tint/builtins/gen/var/textureLoad/aa6130.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureLoad/aa6130.wgsl.expected.ir.fxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureLoad
+..\..\src\tint\utils\containers\slice.h:216 internal compiler error: TINT_ASSERT(i < Length())
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/var/textureLoad/aa8a0d.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/textureLoad/aa8a0d.wgsl.expected.ir.dxc.hlsl
index fd28383..334e6e8e 100644
--- a/test/tint/builtins/gen/var/textureLoad/aa8a0d.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureLoad/aa8a0d.wgsl.expected.ir.dxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureLoad
+..\..\src\tint\utils\containers\slice.h:216 internal compiler error: TINT_ASSERT(i < Length())
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/var/textureLoad/aa8a0d.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/textureLoad/aa8a0d.wgsl.expected.ir.fxc.hlsl
index fd28383..334e6e8e 100644
--- a/test/tint/builtins/gen/var/textureLoad/aa8a0d.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureLoad/aa8a0d.wgsl.expected.ir.fxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureLoad
+..\..\src\tint\utils\containers\slice.h:216 internal compiler error: TINT_ASSERT(i < Length())
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/var/textureLoad/aae7f6.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/textureLoad/aae7f6.wgsl.expected.ir.dxc.hlsl
index fd28383..334e6e8e 100644
--- a/test/tint/builtins/gen/var/textureLoad/aae7f6.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureLoad/aae7f6.wgsl.expected.ir.dxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureLoad
+..\..\src\tint\utils\containers\slice.h:216 internal compiler error: TINT_ASSERT(i < Length())
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/var/textureLoad/aae7f6.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/textureLoad/aae7f6.wgsl.expected.ir.fxc.hlsl
index fd28383..334e6e8e 100644
--- a/test/tint/builtins/gen/var/textureLoad/aae7f6.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureLoad/aae7f6.wgsl.expected.ir.fxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureLoad
+..\..\src\tint\utils\containers\slice.h:216 internal compiler error: TINT_ASSERT(i < Length())
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/var/textureLoad/aae9c3.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/textureLoad/aae9c3.wgsl.expected.ir.dxc.hlsl
index fd28383..334e6e8e 100644
--- a/test/tint/builtins/gen/var/textureLoad/aae9c3.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureLoad/aae9c3.wgsl.expected.ir.dxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureLoad
+..\..\src\tint\utils\containers\slice.h:216 internal compiler error: TINT_ASSERT(i < Length())
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/var/textureLoad/aae9c3.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/textureLoad/aae9c3.wgsl.expected.ir.fxc.hlsl
index fd28383..334e6e8e 100644
--- a/test/tint/builtins/gen/var/textureLoad/aae9c3.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureLoad/aae9c3.wgsl.expected.ir.fxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureLoad
+..\..\src\tint\utils\containers\slice.h:216 internal compiler error: TINT_ASSERT(i < Length())
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/var/textureLoad/ac64f7.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/textureLoad/ac64f7.wgsl.expected.ir.dxc.hlsl
index fd28383..334e6e8e 100644
--- a/test/tint/builtins/gen/var/textureLoad/ac64f7.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureLoad/ac64f7.wgsl.expected.ir.dxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureLoad
+..\..\src\tint\utils\containers\slice.h:216 internal compiler error: TINT_ASSERT(i < Length())
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/var/textureLoad/ac64f7.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/textureLoad/ac64f7.wgsl.expected.ir.fxc.hlsl
index fd28383..334e6e8e 100644
--- a/test/tint/builtins/gen/var/textureLoad/ac64f7.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureLoad/ac64f7.wgsl.expected.ir.fxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureLoad
+..\..\src\tint\utils\containers\slice.h:216 internal compiler error: TINT_ASSERT(i < Length())
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/var/textureLoad/acf22f.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/textureLoad/acf22f.wgsl.expected.ir.dxc.hlsl
index fd28383..334e6e8e 100644
--- a/test/tint/builtins/gen/var/textureLoad/acf22f.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureLoad/acf22f.wgsl.expected.ir.dxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureLoad
+..\..\src\tint\utils\containers\slice.h:216 internal compiler error: TINT_ASSERT(i < Length())
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/var/textureLoad/acf22f.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/textureLoad/acf22f.wgsl.expected.ir.fxc.hlsl
index fd28383..334e6e8e 100644
--- a/test/tint/builtins/gen/var/textureLoad/acf22f.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureLoad/acf22f.wgsl.expected.ir.fxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureLoad
+..\..\src\tint\utils\containers\slice.h:216 internal compiler error: TINT_ASSERT(i < Length())
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/var/textureLoad/ad551e.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/textureLoad/ad551e.wgsl.expected.ir.dxc.hlsl
index fd28383..334e6e8e 100644
--- a/test/tint/builtins/gen/var/textureLoad/ad551e.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureLoad/ad551e.wgsl.expected.ir.dxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureLoad
+..\..\src\tint\utils\containers\slice.h:216 internal compiler error: TINT_ASSERT(i < Length())
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/var/textureLoad/ad551e.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/textureLoad/ad551e.wgsl.expected.ir.fxc.hlsl
index fd28383..334e6e8e 100644
--- a/test/tint/builtins/gen/var/textureLoad/ad551e.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureLoad/ad551e.wgsl.expected.ir.fxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureLoad
+..\..\src\tint\utils\containers\slice.h:216 internal compiler error: TINT_ASSERT(i < Length())
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/var/textureLoad/aeae73.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/textureLoad/aeae73.wgsl.expected.ir.dxc.hlsl
index fd28383..334e6e8e 100644
--- a/test/tint/builtins/gen/var/textureLoad/aeae73.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureLoad/aeae73.wgsl.expected.ir.dxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureLoad
+..\..\src\tint\utils\containers\slice.h:216 internal compiler error: TINT_ASSERT(i < Length())
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/var/textureLoad/aeae73.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/textureLoad/aeae73.wgsl.expected.ir.fxc.hlsl
index fd28383..334e6e8e 100644
--- a/test/tint/builtins/gen/var/textureLoad/aeae73.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureLoad/aeae73.wgsl.expected.ir.fxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureLoad
+..\..\src\tint\utils\containers\slice.h:216 internal compiler error: TINT_ASSERT(i < Length())
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/var/textureLoad/aebc09.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/textureLoad/aebc09.wgsl.expected.ir.dxc.hlsl
index fd28383..334e6e8e 100644
--- a/test/tint/builtins/gen/var/textureLoad/aebc09.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureLoad/aebc09.wgsl.expected.ir.dxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureLoad
+..\..\src\tint\utils\containers\slice.h:216 internal compiler error: TINT_ASSERT(i < Length())
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/var/textureLoad/aebc09.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/textureLoad/aebc09.wgsl.expected.ir.fxc.hlsl
index fd28383..334e6e8e 100644
--- a/test/tint/builtins/gen/var/textureLoad/aebc09.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureLoad/aebc09.wgsl.expected.ir.fxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureLoad
+..\..\src\tint\utils\containers\slice.h:216 internal compiler error: TINT_ASSERT(i < Length())
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/var/textureLoad/af0507.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/textureLoad/af0507.wgsl.expected.ir.dxc.hlsl
index fd28383..334e6e8e 100644
--- a/test/tint/builtins/gen/var/textureLoad/af0507.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureLoad/af0507.wgsl.expected.ir.dxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureLoad
+..\..\src\tint\utils\containers\slice.h:216 internal compiler error: TINT_ASSERT(i < Length())
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/var/textureLoad/af0507.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/textureLoad/af0507.wgsl.expected.ir.fxc.hlsl
index fd28383..334e6e8e 100644
--- a/test/tint/builtins/gen/var/textureLoad/af0507.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureLoad/af0507.wgsl.expected.ir.fxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureLoad
+..\..\src\tint\utils\containers\slice.h:216 internal compiler error: TINT_ASSERT(i < Length())
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/var/textureLoad/b1bf79.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/textureLoad/b1bf79.wgsl.expected.ir.dxc.hlsl
index fd28383..334e6e8e 100644
--- a/test/tint/builtins/gen/var/textureLoad/b1bf79.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureLoad/b1bf79.wgsl.expected.ir.dxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureLoad
+..\..\src\tint\utils\containers\slice.h:216 internal compiler error: TINT_ASSERT(i < Length())
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/var/textureLoad/b1bf79.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/textureLoad/b1bf79.wgsl.expected.ir.fxc.hlsl
index fd28383..334e6e8e 100644
--- a/test/tint/builtins/gen/var/textureLoad/b1bf79.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureLoad/b1bf79.wgsl.expected.ir.fxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureLoad
+..\..\src\tint\utils\containers\slice.h:216 internal compiler error: TINT_ASSERT(i < Length())
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/var/textureLoad/b1ca35.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/textureLoad/b1ca35.wgsl.expected.ir.dxc.hlsl
index fd28383..334e6e8e 100644
--- a/test/tint/builtins/gen/var/textureLoad/b1ca35.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureLoad/b1ca35.wgsl.expected.ir.dxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureLoad
+..\..\src\tint\utils\containers\slice.h:216 internal compiler error: TINT_ASSERT(i < Length())
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/var/textureLoad/b1ca35.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/textureLoad/b1ca35.wgsl.expected.ir.fxc.hlsl
index fd28383..334e6e8e 100644
--- a/test/tint/builtins/gen/var/textureLoad/b1ca35.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureLoad/b1ca35.wgsl.expected.ir.fxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureLoad
+..\..\src\tint\utils\containers\slice.h:216 internal compiler error: TINT_ASSERT(i < Length())
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/var/textureLoad/b24d27.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/textureLoad/b24d27.wgsl.expected.ir.dxc.hlsl
index fd28383..334e6e8e 100644
--- a/test/tint/builtins/gen/var/textureLoad/b24d27.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureLoad/b24d27.wgsl.expected.ir.dxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureLoad
+..\..\src\tint\utils\containers\slice.h:216 internal compiler error: TINT_ASSERT(i < Length())
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/var/textureLoad/b24d27.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/textureLoad/b24d27.wgsl.expected.ir.fxc.hlsl
index fd28383..334e6e8e 100644
--- a/test/tint/builtins/gen/var/textureLoad/b24d27.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureLoad/b24d27.wgsl.expected.ir.fxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureLoad
+..\..\src\tint\utils\containers\slice.h:216 internal compiler error: TINT_ASSERT(i < Length())
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/var/textureLoad/b25644.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/textureLoad/b25644.wgsl.expected.ir.dxc.hlsl
index fd28383..334e6e8e 100644
--- a/test/tint/builtins/gen/var/textureLoad/b25644.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureLoad/b25644.wgsl.expected.ir.dxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureLoad
+..\..\src\tint\utils\containers\slice.h:216 internal compiler error: TINT_ASSERT(i < Length())
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/var/textureLoad/b25644.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/textureLoad/b25644.wgsl.expected.ir.fxc.hlsl
index fd28383..334e6e8e 100644
--- a/test/tint/builtins/gen/var/textureLoad/b25644.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureLoad/b25644.wgsl.expected.ir.fxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureLoad
+..\..\src\tint\utils\containers\slice.h:216 internal compiler error: TINT_ASSERT(i < Length())
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/var/textureLoad/b27c33.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/textureLoad/b27c33.wgsl.expected.ir.dxc.hlsl
index fd28383..334e6e8e 100644
--- a/test/tint/builtins/gen/var/textureLoad/b27c33.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureLoad/b27c33.wgsl.expected.ir.dxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureLoad
+..\..\src\tint\utils\containers\slice.h:216 internal compiler error: TINT_ASSERT(i < Length())
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/var/textureLoad/b27c33.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/textureLoad/b27c33.wgsl.expected.ir.fxc.hlsl
index fd28383..334e6e8e 100644
--- a/test/tint/builtins/gen/var/textureLoad/b27c33.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureLoad/b27c33.wgsl.expected.ir.fxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureLoad
+..\..\src\tint\utils\containers\slice.h:216 internal compiler error: TINT_ASSERT(i < Length())
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/var/textureLoad/b29f71.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/textureLoad/b29f71.wgsl.expected.ir.dxc.hlsl
index fd28383..afbc526 100644
--- a/test/tint/builtins/gen/var/textureLoad/b29f71.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureLoad/b29f71.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,51 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  int4 prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureLoad
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation int4 VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+Texture2DArray<int4> arg_0 : register(t0, space1);
+int4 textureLoad_b29f71() {
+  int2 arg_1 = (1).xx;
+  uint arg_2 = 1u;
+  int arg_3 = 1;
+  Texture2DArray<int4> v = arg_0;
+  uint v_1 = arg_2;
+  int v_2 = arg_3;
+  int2 v_3 = int2(arg_1);
+  int v_4 = int(v_1);
+  int4 res = int4(v.Load(int4(v_3, v_4, int(v_2))));
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store4(0u, asuint(textureLoad_b29f71()));
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store4(0u, asuint(textureLoad_b29f71()));
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = textureLoad_b29f71();
+  VertexOutput v_5 = tint_symbol;
+  return v_5;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_6 = vertex_main_inner();
+  VertexOutput v_7 = v_6;
+  VertexOutput v_8 = v_6;
+  vertex_main_outputs v_9 = {v_8.prevent_dce, v_7.pos};
+  return v_9;
+}
+
diff --git a/test/tint/builtins/gen/var/textureLoad/b29f71.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/textureLoad/b29f71.wgsl.expected.ir.fxc.hlsl
index fd28383..afbc526 100644
--- a/test/tint/builtins/gen/var/textureLoad/b29f71.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureLoad/b29f71.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,51 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  int4 prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureLoad
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation int4 VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+Texture2DArray<int4> arg_0 : register(t0, space1);
+int4 textureLoad_b29f71() {
+  int2 arg_1 = (1).xx;
+  uint arg_2 = 1u;
+  int arg_3 = 1;
+  Texture2DArray<int4> v = arg_0;
+  uint v_1 = arg_2;
+  int v_2 = arg_3;
+  int2 v_3 = int2(arg_1);
+  int v_4 = int(v_1);
+  int4 res = int4(v.Load(int4(v_3, v_4, int(v_2))));
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store4(0u, asuint(textureLoad_b29f71()));
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store4(0u, asuint(textureLoad_b29f71()));
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = textureLoad_b29f71();
+  VertexOutput v_5 = tint_symbol;
+  return v_5;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_6 = vertex_main_inner();
+  VertexOutput v_7 = v_6;
+  VertexOutput v_8 = v_6;
+  vertex_main_outputs v_9 = {v_8.prevent_dce, v_7.pos};
+  return v_9;
+}
+
diff --git a/test/tint/builtins/gen/var/textureLoad/b4d6c4.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/textureLoad/b4d6c4.wgsl.expected.ir.dxc.hlsl
index fd28383..334e6e8e 100644
--- a/test/tint/builtins/gen/var/textureLoad/b4d6c4.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureLoad/b4d6c4.wgsl.expected.ir.dxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureLoad
+..\..\src\tint\utils\containers\slice.h:216 internal compiler error: TINT_ASSERT(i < Length())
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/var/textureLoad/b4d6c4.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/textureLoad/b4d6c4.wgsl.expected.ir.fxc.hlsl
index fd28383..334e6e8e 100644
--- a/test/tint/builtins/gen/var/textureLoad/b4d6c4.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureLoad/b4d6c4.wgsl.expected.ir.fxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureLoad
+..\..\src\tint\utils\containers\slice.h:216 internal compiler error: TINT_ASSERT(i < Length())
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/var/textureLoad/b58c6d.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/textureLoad/b58c6d.wgsl.expected.ir.dxc.hlsl
index fd28383..334e6e8e 100644
--- a/test/tint/builtins/gen/var/textureLoad/b58c6d.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureLoad/b58c6d.wgsl.expected.ir.dxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureLoad
+..\..\src\tint\utils\containers\slice.h:216 internal compiler error: TINT_ASSERT(i < Length())
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/var/textureLoad/b58c6d.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/textureLoad/b58c6d.wgsl.expected.ir.fxc.hlsl
index fd28383..334e6e8e 100644
--- a/test/tint/builtins/gen/var/textureLoad/b58c6d.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureLoad/b58c6d.wgsl.expected.ir.fxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureLoad
+..\..\src\tint\utils\containers\slice.h:216 internal compiler error: TINT_ASSERT(i < Length())
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/var/textureLoad/b60a86.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/textureLoad/b60a86.wgsl.expected.ir.dxc.hlsl
index fd28383..334e6e8e 100644
--- a/test/tint/builtins/gen/var/textureLoad/b60a86.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureLoad/b60a86.wgsl.expected.ir.dxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureLoad
+..\..\src\tint\utils\containers\slice.h:216 internal compiler error: TINT_ASSERT(i < Length())
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/var/textureLoad/b60a86.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/textureLoad/b60a86.wgsl.expected.ir.fxc.hlsl
index fd28383..334e6e8e 100644
--- a/test/tint/builtins/gen/var/textureLoad/b60a86.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureLoad/b60a86.wgsl.expected.ir.fxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureLoad
+..\..\src\tint\utils\containers\slice.h:216 internal compiler error: TINT_ASSERT(i < Length())
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/var/textureLoad/b60db7.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/textureLoad/b60db7.wgsl.expected.ir.dxc.hlsl
index fd28383..334e6e8e 100644
--- a/test/tint/builtins/gen/var/textureLoad/b60db7.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureLoad/b60db7.wgsl.expected.ir.dxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureLoad
+..\..\src\tint\utils\containers\slice.h:216 internal compiler error: TINT_ASSERT(i < Length())
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/var/textureLoad/b60db7.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/textureLoad/b60db7.wgsl.expected.ir.fxc.hlsl
index fd28383..334e6e8e 100644
--- a/test/tint/builtins/gen/var/textureLoad/b60db7.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureLoad/b60db7.wgsl.expected.ir.fxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureLoad
+..\..\src\tint\utils\containers\slice.h:216 internal compiler error: TINT_ASSERT(i < Length())
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/var/textureLoad/b6ba5d.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/textureLoad/b6ba5d.wgsl.expected.ir.dxc.hlsl
index fd28383..995b97e 100644
--- a/test/tint/builtins/gen/var/textureLoad/b6ba5d.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureLoad/b6ba5d.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,51 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  float prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureLoad
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation float VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+Texture2DArray arg_0 : register(t0, space1);
+float textureLoad_b6ba5d() {
+  uint2 arg_1 = (1u).xx;
+  int arg_2 = 1;
+  int arg_3 = 1;
+  Texture2DArray v = arg_0;
+  int v_1 = arg_2;
+  int v_2 = arg_3;
+  int2 v_3 = int2(arg_1);
+  int v_4 = int(v_1);
+  float res = v.Load(int4(v_3, v_4, int(v_2))).x;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store(0u, asuint(textureLoad_b6ba5d()));
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store(0u, asuint(textureLoad_b6ba5d()));
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = textureLoad_b6ba5d();
+  VertexOutput v_5 = tint_symbol;
+  return v_5;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_6 = vertex_main_inner();
+  VertexOutput v_7 = v_6;
+  VertexOutput v_8 = v_6;
+  vertex_main_outputs v_9 = {v_8.prevent_dce, v_7.pos};
+  return v_9;
+}
+
diff --git a/test/tint/builtins/gen/var/textureLoad/b6ba5d.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/textureLoad/b6ba5d.wgsl.expected.ir.fxc.hlsl
index fd28383..995b97e 100644
--- a/test/tint/builtins/gen/var/textureLoad/b6ba5d.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureLoad/b6ba5d.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,51 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  float prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureLoad
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation float VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+Texture2DArray arg_0 : register(t0, space1);
+float textureLoad_b6ba5d() {
+  uint2 arg_1 = (1u).xx;
+  int arg_2 = 1;
+  int arg_3 = 1;
+  Texture2DArray v = arg_0;
+  int v_1 = arg_2;
+  int v_2 = arg_3;
+  int2 v_3 = int2(arg_1);
+  int v_4 = int(v_1);
+  float res = v.Load(int4(v_3, v_4, int(v_2))).x;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store(0u, asuint(textureLoad_b6ba5d()));
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store(0u, asuint(textureLoad_b6ba5d()));
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = textureLoad_b6ba5d();
+  VertexOutput v_5 = tint_symbol;
+  return v_5;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_6 = vertex_main_inner();
+  VertexOutput v_7 = v_6;
+  VertexOutput v_8 = v_6;
+  vertex_main_outputs v_9 = {v_8.prevent_dce, v_7.pos};
+  return v_9;
+}
+
diff --git a/test/tint/builtins/gen/var/textureLoad/b6c458.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/textureLoad/b6c458.wgsl.expected.ir.dxc.hlsl
index fd28383..334e6e8e 100644
--- a/test/tint/builtins/gen/var/textureLoad/b6c458.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureLoad/b6c458.wgsl.expected.ir.dxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureLoad
+..\..\src\tint\utils\containers\slice.h:216 internal compiler error: TINT_ASSERT(i < Length())
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/var/textureLoad/b6c458.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/textureLoad/b6c458.wgsl.expected.ir.fxc.hlsl
index fd28383..334e6e8e 100644
--- a/test/tint/builtins/gen/var/textureLoad/b6c458.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureLoad/b6c458.wgsl.expected.ir.fxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureLoad
+..\..\src\tint\utils\containers\slice.h:216 internal compiler error: TINT_ASSERT(i < Length())
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/var/textureLoad/b73f6b.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/textureLoad/b73f6b.wgsl.expected.ir.dxc.hlsl
index fd28383..21d7151 100644
--- a/test/tint/builtins/gen/var/textureLoad/b73f6b.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureLoad/b73f6b.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,48 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  uint4 prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureLoad
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation uint4 VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+Texture2D<uint4> arg_0 : register(t0, space1);
+uint4 textureLoad_b73f6b() {
+  uint2 arg_1 = (1u).xx;
+  int arg_2 = 1;
+  Texture2D<uint4> v = arg_0;
+  int v_1 = arg_2;
+  int2 v_2 = int2(arg_1);
+  uint4 res = uint4(v.Load(int3(v_2, int(v_1))));
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store4(0u, textureLoad_b73f6b());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store4(0u, textureLoad_b73f6b());
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = textureLoad_b73f6b();
+  VertexOutput v_3 = tint_symbol;
+  return v_3;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_4 = vertex_main_inner();
+  VertexOutput v_5 = v_4;
+  VertexOutput v_6 = v_4;
+  vertex_main_outputs v_7 = {v_6.prevent_dce, v_5.pos};
+  return v_7;
+}
+
diff --git a/test/tint/builtins/gen/var/textureLoad/b73f6b.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/textureLoad/b73f6b.wgsl.expected.ir.fxc.hlsl
index fd28383..21d7151 100644
--- a/test/tint/builtins/gen/var/textureLoad/b73f6b.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureLoad/b73f6b.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,48 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  uint4 prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureLoad
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation uint4 VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+Texture2D<uint4> arg_0 : register(t0, space1);
+uint4 textureLoad_b73f6b() {
+  uint2 arg_1 = (1u).xx;
+  int arg_2 = 1;
+  Texture2D<uint4> v = arg_0;
+  int v_1 = arg_2;
+  int2 v_2 = int2(arg_1);
+  uint4 res = uint4(v.Load(int3(v_2, int(v_1))));
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store4(0u, textureLoad_b73f6b());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store4(0u, textureLoad_b73f6b());
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = textureLoad_b73f6b();
+  VertexOutput v_3 = tint_symbol;
+  return v_3;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_4 = vertex_main_inner();
+  VertexOutput v_5 = v_4;
+  VertexOutput v_6 = v_4;
+  vertex_main_outputs v_7 = {v_6.prevent_dce, v_5.pos};
+  return v_7;
+}
+
diff --git a/test/tint/builtins/gen/var/textureLoad/b75c8f.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/textureLoad/b75c8f.wgsl.expected.ir.dxc.hlsl
index fd28383..334e6e8e 100644
--- a/test/tint/builtins/gen/var/textureLoad/b75c8f.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureLoad/b75c8f.wgsl.expected.ir.dxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureLoad
+..\..\src\tint\utils\containers\slice.h:216 internal compiler error: TINT_ASSERT(i < Length())
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/var/textureLoad/b75c8f.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/textureLoad/b75c8f.wgsl.expected.ir.fxc.hlsl
index fd28383..334e6e8e 100644
--- a/test/tint/builtins/gen/var/textureLoad/b75c8f.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureLoad/b75c8f.wgsl.expected.ir.fxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureLoad
+..\..\src\tint\utils\containers\slice.h:216 internal compiler error: TINT_ASSERT(i < Length())
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/var/textureLoad/b75d4a.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/textureLoad/b75d4a.wgsl.expected.ir.dxc.hlsl
index fd28383..27ad9e6 100644
--- a/test/tint/builtins/gen/var/textureLoad/b75d4a.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureLoad/b75d4a.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,48 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  float4 prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureLoad
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation float4 VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+Texture2DMS<float4> arg_0 : register(t0, space1);
+float4 textureLoad_b75d4a() {
+  int2 arg_1 = (1).xx;
+  uint arg_2 = 1u;
+  Texture2DMS<float4> v = arg_0;
+  uint v_1 = arg_2;
+  int2 v_2 = int2(arg_1);
+  float4 res = float4(v.Load(v_2, int(v_1)));
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store4(0u, asuint(textureLoad_b75d4a()));
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store4(0u, asuint(textureLoad_b75d4a()));
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = textureLoad_b75d4a();
+  VertexOutput v_3 = tint_symbol;
+  return v_3;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_4 = vertex_main_inner();
+  VertexOutput v_5 = v_4;
+  VertexOutput v_6 = v_4;
+  vertex_main_outputs v_7 = {v_6.prevent_dce, v_5.pos};
+  return v_7;
+}
+
diff --git a/test/tint/builtins/gen/var/textureLoad/b75d4a.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/textureLoad/b75d4a.wgsl.expected.ir.fxc.hlsl
index fd28383..27ad9e6 100644
--- a/test/tint/builtins/gen/var/textureLoad/b75d4a.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureLoad/b75d4a.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,48 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  float4 prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureLoad
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation float4 VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+Texture2DMS<float4> arg_0 : register(t0, space1);
+float4 textureLoad_b75d4a() {
+  int2 arg_1 = (1).xx;
+  uint arg_2 = 1u;
+  Texture2DMS<float4> v = arg_0;
+  uint v_1 = arg_2;
+  int2 v_2 = int2(arg_1);
+  float4 res = float4(v.Load(v_2, int(v_1)));
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store4(0u, asuint(textureLoad_b75d4a()));
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store4(0u, asuint(textureLoad_b75d4a()));
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = textureLoad_b75d4a();
+  VertexOutput v_3 = tint_symbol;
+  return v_3;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_4 = vertex_main_inner();
+  VertexOutput v_5 = v_4;
+  VertexOutput v_6 = v_4;
+  vertex_main_outputs v_7 = {v_6.prevent_dce, v_5.pos};
+  return v_7;
+}
+
diff --git a/test/tint/builtins/gen/var/textureLoad/b7f74f.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/textureLoad/b7f74f.wgsl.expected.ir.dxc.hlsl
index fd28383..334e6e8e 100644
--- a/test/tint/builtins/gen/var/textureLoad/b7f74f.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureLoad/b7f74f.wgsl.expected.ir.dxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureLoad
+..\..\src\tint\utils\containers\slice.h:216 internal compiler error: TINT_ASSERT(i < Length())
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/var/textureLoad/b7f74f.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/textureLoad/b7f74f.wgsl.expected.ir.fxc.hlsl
index fd28383..334e6e8e 100644
--- a/test/tint/builtins/gen/var/textureLoad/b7f74f.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureLoad/b7f74f.wgsl.expected.ir.fxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureLoad
+..\..\src\tint\utils\containers\slice.h:216 internal compiler error: TINT_ASSERT(i < Length())
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/var/textureLoad/b80e7e.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/textureLoad/b80e7e.wgsl.expected.ir.dxc.hlsl
index fd28383..334e6e8e 100644
--- a/test/tint/builtins/gen/var/textureLoad/b80e7e.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureLoad/b80e7e.wgsl.expected.ir.dxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureLoad
+..\..\src\tint\utils\containers\slice.h:216 internal compiler error: TINT_ASSERT(i < Length())
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/var/textureLoad/b80e7e.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/textureLoad/b80e7e.wgsl.expected.ir.fxc.hlsl
index fd28383..334e6e8e 100644
--- a/test/tint/builtins/gen/var/textureLoad/b80e7e.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureLoad/b80e7e.wgsl.expected.ir.fxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureLoad
+..\..\src\tint\utils\containers\slice.h:216 internal compiler error: TINT_ASSERT(i < Length())
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/var/textureLoad/b94d15.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/textureLoad/b94d15.wgsl.expected.ir.dxc.hlsl
index fd28383..334e6e8e 100644
--- a/test/tint/builtins/gen/var/textureLoad/b94d15.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureLoad/b94d15.wgsl.expected.ir.dxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureLoad
+..\..\src\tint\utils\containers\slice.h:216 internal compiler error: TINT_ASSERT(i < Length())
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/var/textureLoad/b94d15.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/textureLoad/b94d15.wgsl.expected.ir.fxc.hlsl
index fd28383..334e6e8e 100644
--- a/test/tint/builtins/gen/var/textureLoad/b94d15.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureLoad/b94d15.wgsl.expected.ir.fxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureLoad
+..\..\src\tint\utils\containers\slice.h:216 internal compiler error: TINT_ASSERT(i < Length())
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/var/textureLoad/ba023a.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/textureLoad/ba023a.wgsl.expected.ir.dxc.hlsl
index fd28383..334e6e8e 100644
--- a/test/tint/builtins/gen/var/textureLoad/ba023a.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureLoad/ba023a.wgsl.expected.ir.dxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureLoad
+..\..\src\tint\utils\containers\slice.h:216 internal compiler error: TINT_ASSERT(i < Length())
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/var/textureLoad/ba023a.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/textureLoad/ba023a.wgsl.expected.ir.fxc.hlsl
index fd28383..334e6e8e 100644
--- a/test/tint/builtins/gen/var/textureLoad/ba023a.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureLoad/ba023a.wgsl.expected.ir.fxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureLoad
+..\..\src\tint\utils\containers\slice.h:216 internal compiler error: TINT_ASSERT(i < Length())
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/var/textureLoad/ba74b2.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/textureLoad/ba74b2.wgsl.expected.ir.dxc.hlsl
index fd28383..334e6e8e 100644
--- a/test/tint/builtins/gen/var/textureLoad/ba74b2.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureLoad/ba74b2.wgsl.expected.ir.dxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureLoad
+..\..\src\tint\utils\containers\slice.h:216 internal compiler error: TINT_ASSERT(i < Length())
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/var/textureLoad/ba74b2.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/textureLoad/ba74b2.wgsl.expected.ir.fxc.hlsl
index fd28383..334e6e8e 100644
--- a/test/tint/builtins/gen/var/textureLoad/ba74b2.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureLoad/ba74b2.wgsl.expected.ir.fxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureLoad
+..\..\src\tint\utils\containers\slice.h:216 internal compiler error: TINT_ASSERT(i < Length())
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/var/textureLoad/babdf3.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/textureLoad/babdf3.wgsl.expected.ir.dxc.hlsl
index fd28383..334e6e8e 100644
--- a/test/tint/builtins/gen/var/textureLoad/babdf3.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureLoad/babdf3.wgsl.expected.ir.dxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureLoad
+..\..\src\tint\utils\containers\slice.h:216 internal compiler error: TINT_ASSERT(i < Length())
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/var/textureLoad/babdf3.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/textureLoad/babdf3.wgsl.expected.ir.fxc.hlsl
index fd28383..334e6e8e 100644
--- a/test/tint/builtins/gen/var/textureLoad/babdf3.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureLoad/babdf3.wgsl.expected.ir.fxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureLoad
+..\..\src\tint\utils\containers\slice.h:216 internal compiler error: TINT_ASSERT(i < Length())
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/var/textureLoad/bba04a.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/textureLoad/bba04a.wgsl.expected.ir.dxc.hlsl
index fd28383..334e6e8e 100644
--- a/test/tint/builtins/gen/var/textureLoad/bba04a.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureLoad/bba04a.wgsl.expected.ir.dxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureLoad
+..\..\src\tint\utils\containers\slice.h:216 internal compiler error: TINT_ASSERT(i < Length())
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/var/textureLoad/bba04a.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/textureLoad/bba04a.wgsl.expected.ir.fxc.hlsl
index fd28383..334e6e8e 100644
--- a/test/tint/builtins/gen/var/textureLoad/bba04a.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureLoad/bba04a.wgsl.expected.ir.fxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureLoad
+..\..\src\tint\utils\containers\slice.h:216 internal compiler error: TINT_ASSERT(i < Length())
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/var/textureLoad/bbb762.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/textureLoad/bbb762.wgsl.expected.ir.dxc.hlsl
index fd28383..334e6e8e 100644
--- a/test/tint/builtins/gen/var/textureLoad/bbb762.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureLoad/bbb762.wgsl.expected.ir.dxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureLoad
+..\..\src\tint\utils\containers\slice.h:216 internal compiler error: TINT_ASSERT(i < Length())
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/var/textureLoad/bbb762.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/textureLoad/bbb762.wgsl.expected.ir.fxc.hlsl
index fd28383..334e6e8e 100644
--- a/test/tint/builtins/gen/var/textureLoad/bbb762.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureLoad/bbb762.wgsl.expected.ir.fxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureLoad
+..\..\src\tint\utils\containers\slice.h:216 internal compiler error: TINT_ASSERT(i < Length())
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/var/textureLoad/bc3201.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/textureLoad/bc3201.wgsl.expected.ir.dxc.hlsl
index fd28383..9725f1c 100644
--- a/test/tint/builtins/gen/var/textureLoad/bc3201.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureLoad/bc3201.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,48 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  uint4 prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureLoad
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation uint4 VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+Texture1D<uint4> arg_0 : register(t0, space1);
+uint4 textureLoad_bc3201() {
+  uint arg_1 = 1u;
+  uint arg_2 = 1u;
+  Texture1D<uint4> v = arg_0;
+  uint v_1 = arg_2;
+  int v_2 = int(arg_1);
+  uint4 res = uint4(v.Load(int2(v_2, int(v_1))));
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store4(0u, textureLoad_bc3201());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store4(0u, textureLoad_bc3201());
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = textureLoad_bc3201();
+  VertexOutput v_3 = tint_symbol;
+  return v_3;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_4 = vertex_main_inner();
+  VertexOutput v_5 = v_4;
+  VertexOutput v_6 = v_4;
+  vertex_main_outputs v_7 = {v_6.prevent_dce, v_5.pos};
+  return v_7;
+}
+
diff --git a/test/tint/builtins/gen/var/textureLoad/bc3201.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/textureLoad/bc3201.wgsl.expected.ir.fxc.hlsl
index fd28383..9725f1c 100644
--- a/test/tint/builtins/gen/var/textureLoad/bc3201.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureLoad/bc3201.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,48 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  uint4 prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureLoad
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation uint4 VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+Texture1D<uint4> arg_0 : register(t0, space1);
+uint4 textureLoad_bc3201() {
+  uint arg_1 = 1u;
+  uint arg_2 = 1u;
+  Texture1D<uint4> v = arg_0;
+  uint v_1 = arg_2;
+  int v_2 = int(arg_1);
+  uint4 res = uint4(v.Load(int2(v_2, int(v_1))));
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store4(0u, textureLoad_bc3201());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store4(0u, textureLoad_bc3201());
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = textureLoad_bc3201();
+  VertexOutput v_3 = tint_symbol;
+  return v_3;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_4 = vertex_main_inner();
+  VertexOutput v_5 = v_4;
+  VertexOutput v_6 = v_4;
+  vertex_main_outputs v_7 = {v_6.prevent_dce, v_5.pos};
+  return v_7;
+}
+
diff --git a/test/tint/builtins/gen/var/textureLoad/bc882d.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/textureLoad/bc882d.wgsl.expected.ir.dxc.hlsl
index fd28383..334e6e8e 100644
--- a/test/tint/builtins/gen/var/textureLoad/bc882d.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureLoad/bc882d.wgsl.expected.ir.dxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureLoad
+..\..\src\tint\utils\containers\slice.h:216 internal compiler error: TINT_ASSERT(i < Length())
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/var/textureLoad/bc882d.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/textureLoad/bc882d.wgsl.expected.ir.fxc.hlsl
index fd28383..334e6e8e 100644
--- a/test/tint/builtins/gen/var/textureLoad/bc882d.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureLoad/bc882d.wgsl.expected.ir.fxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureLoad
+..\..\src\tint\utils\containers\slice.h:216 internal compiler error: TINT_ASSERT(i < Length())
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/var/textureLoad/bcbb3c.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/textureLoad/bcbb3c.wgsl.expected.ir.dxc.hlsl
index fd28383..273f99b 100644
--- a/test/tint/builtins/gen/var/textureLoad/bcbb3c.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureLoad/bcbb3c.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,48 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  float4 prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureLoad
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation float4 VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+Texture3D<float4> arg_0 : register(t0, space1);
+float4 textureLoad_bcbb3c() {
+  uint3 arg_1 = (1u).xxx;
+  int arg_2 = 1;
+  Texture3D<float4> v = arg_0;
+  int v_1 = arg_2;
+  int3 v_2 = int3(arg_1);
+  float4 res = float4(v.Load(int4(v_2, int(v_1))));
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store4(0u, asuint(textureLoad_bcbb3c()));
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store4(0u, asuint(textureLoad_bcbb3c()));
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = textureLoad_bcbb3c();
+  VertexOutput v_3 = tint_symbol;
+  return v_3;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_4 = vertex_main_inner();
+  VertexOutput v_5 = v_4;
+  VertexOutput v_6 = v_4;
+  vertex_main_outputs v_7 = {v_6.prevent_dce, v_5.pos};
+  return v_7;
+}
+
diff --git a/test/tint/builtins/gen/var/textureLoad/bcbb3c.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/textureLoad/bcbb3c.wgsl.expected.ir.fxc.hlsl
index fd28383..273f99b 100644
--- a/test/tint/builtins/gen/var/textureLoad/bcbb3c.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureLoad/bcbb3c.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,48 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  float4 prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureLoad
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation float4 VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+Texture3D<float4> arg_0 : register(t0, space1);
+float4 textureLoad_bcbb3c() {
+  uint3 arg_1 = (1u).xxx;
+  int arg_2 = 1;
+  Texture3D<float4> v = arg_0;
+  int v_1 = arg_2;
+  int3 v_2 = int3(arg_1);
+  float4 res = float4(v.Load(int4(v_2, int(v_1))));
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store4(0u, asuint(textureLoad_bcbb3c()));
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store4(0u, asuint(textureLoad_bcbb3c()));
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = textureLoad_bcbb3c();
+  VertexOutput v_3 = tint_symbol;
+  return v_3;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_4 = vertex_main_inner();
+  VertexOutput v_5 = v_4;
+  VertexOutput v_6 = v_4;
+  vertex_main_outputs v_7 = {v_6.prevent_dce, v_5.pos};
+  return v_7;
+}
+
diff --git a/test/tint/builtins/gen/var/textureLoad/bd990a.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/textureLoad/bd990a.wgsl.expected.ir.dxc.hlsl
index fd28383..334e6e8e 100644
--- a/test/tint/builtins/gen/var/textureLoad/bd990a.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureLoad/bd990a.wgsl.expected.ir.dxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureLoad
+..\..\src\tint\utils\containers\slice.h:216 internal compiler error: TINT_ASSERT(i < Length())
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/var/textureLoad/bd990a.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/textureLoad/bd990a.wgsl.expected.ir.fxc.hlsl
index fd28383..334e6e8e 100644
--- a/test/tint/builtins/gen/var/textureLoad/bd990a.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureLoad/bd990a.wgsl.expected.ir.fxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureLoad
+..\..\src\tint\utils\containers\slice.h:216 internal compiler error: TINT_ASSERT(i < Length())
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/var/textureLoad/bdc67a.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/textureLoad/bdc67a.wgsl.expected.ir.dxc.hlsl
index fd28383..334e6e8e 100644
--- a/test/tint/builtins/gen/var/textureLoad/bdc67a.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureLoad/bdc67a.wgsl.expected.ir.dxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureLoad
+..\..\src\tint\utils\containers\slice.h:216 internal compiler error: TINT_ASSERT(i < Length())
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/var/textureLoad/bdc67a.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/textureLoad/bdc67a.wgsl.expected.ir.fxc.hlsl
index fd28383..334e6e8e 100644
--- a/test/tint/builtins/gen/var/textureLoad/bdc67a.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureLoad/bdc67a.wgsl.expected.ir.fxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureLoad
+..\..\src\tint\utils\containers\slice.h:216 internal compiler error: TINT_ASSERT(i < Length())
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/var/textureLoad/bfd154.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/textureLoad/bfd154.wgsl.expected.ir.dxc.hlsl
index fd28383..334e6e8e 100644
--- a/test/tint/builtins/gen/var/textureLoad/bfd154.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureLoad/bfd154.wgsl.expected.ir.dxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureLoad
+..\..\src\tint\utils\containers\slice.h:216 internal compiler error: TINT_ASSERT(i < Length())
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/var/textureLoad/bfd154.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/textureLoad/bfd154.wgsl.expected.ir.fxc.hlsl
index fd28383..334e6e8e 100644
--- a/test/tint/builtins/gen/var/textureLoad/bfd154.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureLoad/bfd154.wgsl.expected.ir.fxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureLoad
+..\..\src\tint\utils\containers\slice.h:216 internal compiler error: TINT_ASSERT(i < Length())
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/var/textureLoad/c02b74.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/textureLoad/c02b74.wgsl.expected.ir.dxc.hlsl
index fd28383..334e6e8e 100644
--- a/test/tint/builtins/gen/var/textureLoad/c02b74.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureLoad/c02b74.wgsl.expected.ir.dxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureLoad
+..\..\src\tint\utils\containers\slice.h:216 internal compiler error: TINT_ASSERT(i < Length())
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/var/textureLoad/c02b74.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/textureLoad/c02b74.wgsl.expected.ir.fxc.hlsl
index fd28383..334e6e8e 100644
--- a/test/tint/builtins/gen/var/textureLoad/c02b74.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureLoad/c02b74.wgsl.expected.ir.fxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureLoad
+..\..\src\tint\utils\containers\slice.h:216 internal compiler error: TINT_ASSERT(i < Length())
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/var/textureLoad/c07013.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/textureLoad/c07013.wgsl.expected.ir.dxc.hlsl
index fd28383..334e6e8e 100644
--- a/test/tint/builtins/gen/var/textureLoad/c07013.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureLoad/c07013.wgsl.expected.ir.dxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureLoad
+..\..\src\tint\utils\containers\slice.h:216 internal compiler error: TINT_ASSERT(i < Length())
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/var/textureLoad/c07013.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/textureLoad/c07013.wgsl.expected.ir.fxc.hlsl
index fd28383..334e6e8e 100644
--- a/test/tint/builtins/gen/var/textureLoad/c07013.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureLoad/c07013.wgsl.expected.ir.fxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureLoad
+..\..\src\tint\utils\containers\slice.h:216 internal compiler error: TINT_ASSERT(i < Length())
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/var/textureLoad/c16e00.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/textureLoad/c16e00.wgsl.expected.ir.dxc.hlsl
index fd28383..1799cf5 100644
--- a/test/tint/builtins/gen/var/textureLoad/c16e00.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureLoad/c16e00.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,51 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  float prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureLoad
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation float VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+Texture2DArray arg_0 : register(t0, space1);
+float textureLoad_c16e00() {
+  int2 arg_1 = (1).xx;
+  uint arg_2 = 1u;
+  int arg_3 = 1;
+  Texture2DArray v = arg_0;
+  uint v_1 = arg_2;
+  int v_2 = arg_3;
+  int2 v_3 = int2(arg_1);
+  int v_4 = int(v_1);
+  float res = v.Load(int4(v_3, v_4, int(v_2))).x;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store(0u, asuint(textureLoad_c16e00()));
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store(0u, asuint(textureLoad_c16e00()));
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = textureLoad_c16e00();
+  VertexOutput v_5 = tint_symbol;
+  return v_5;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_6 = vertex_main_inner();
+  VertexOutput v_7 = v_6;
+  VertexOutput v_8 = v_6;
+  vertex_main_outputs v_9 = {v_8.prevent_dce, v_7.pos};
+  return v_9;
+}
+
diff --git a/test/tint/builtins/gen/var/textureLoad/c16e00.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/textureLoad/c16e00.wgsl.expected.ir.fxc.hlsl
index fd28383..1799cf5 100644
--- a/test/tint/builtins/gen/var/textureLoad/c16e00.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureLoad/c16e00.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,51 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  float prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureLoad
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation float VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+Texture2DArray arg_0 : register(t0, space1);
+float textureLoad_c16e00() {
+  int2 arg_1 = (1).xx;
+  uint arg_2 = 1u;
+  int arg_3 = 1;
+  Texture2DArray v = arg_0;
+  uint v_1 = arg_2;
+  int v_2 = arg_3;
+  int2 v_3 = int2(arg_1);
+  int v_4 = int(v_1);
+  float res = v.Load(int4(v_3, v_4, int(v_2))).x;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store(0u, asuint(textureLoad_c16e00()));
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store(0u, asuint(textureLoad_c16e00()));
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = textureLoad_c16e00();
+  VertexOutput v_5 = tint_symbol;
+  return v_5;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_6 = vertex_main_inner();
+  VertexOutput v_7 = v_6;
+  VertexOutput v_8 = v_6;
+  vertex_main_outputs v_9 = {v_8.prevent_dce, v_7.pos};
+  return v_9;
+}
+
diff --git a/test/tint/builtins/gen/var/textureLoad/c21b33.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/textureLoad/c21b33.wgsl.expected.ir.dxc.hlsl
index fd28383..334e6e8e 100644
--- a/test/tint/builtins/gen/var/textureLoad/c21b33.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureLoad/c21b33.wgsl.expected.ir.dxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureLoad
+..\..\src\tint\utils\containers\slice.h:216 internal compiler error: TINT_ASSERT(i < Length())
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/var/textureLoad/c21b33.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/textureLoad/c21b33.wgsl.expected.ir.fxc.hlsl
index fd28383..334e6e8e 100644
--- a/test/tint/builtins/gen/var/textureLoad/c21b33.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureLoad/c21b33.wgsl.expected.ir.fxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureLoad
+..\..\src\tint\utils\containers\slice.h:216 internal compiler error: TINT_ASSERT(i < Length())
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/var/textureLoad/c2a480.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/textureLoad/c2a480.wgsl.expected.ir.dxc.hlsl
index fd28383..7642de4 100644
--- a/test/tint/builtins/gen/var/textureLoad/c2a480.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureLoad/c2a480.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,48 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  int4 prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureLoad
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation int4 VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+Texture2D<int4> arg_0 : register(t0, space1);
+int4 textureLoad_c2a480() {
+  int2 arg_1 = (1).xx;
+  int arg_2 = 1;
+  Texture2D<int4> v = arg_0;
+  int v_1 = arg_2;
+  int2 v_2 = int2(arg_1);
+  int4 res = int4(v.Load(int3(v_2, int(v_1))));
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store4(0u, asuint(textureLoad_c2a480()));
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store4(0u, asuint(textureLoad_c2a480()));
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = textureLoad_c2a480();
+  VertexOutput v_3 = tint_symbol;
+  return v_3;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_4 = vertex_main_inner();
+  VertexOutput v_5 = v_4;
+  VertexOutput v_6 = v_4;
+  vertex_main_outputs v_7 = {v_6.prevent_dce, v_5.pos};
+  return v_7;
+}
+
diff --git a/test/tint/builtins/gen/var/textureLoad/c2a480.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/textureLoad/c2a480.wgsl.expected.ir.fxc.hlsl
index fd28383..7642de4 100644
--- a/test/tint/builtins/gen/var/textureLoad/c2a480.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureLoad/c2a480.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,48 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  int4 prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureLoad
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation int4 VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+Texture2D<int4> arg_0 : register(t0, space1);
+int4 textureLoad_c2a480() {
+  int2 arg_1 = (1).xx;
+  int arg_2 = 1;
+  Texture2D<int4> v = arg_0;
+  int v_1 = arg_2;
+  int2 v_2 = int2(arg_1);
+  int4 res = int4(v.Load(int3(v_2, int(v_1))));
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store4(0u, asuint(textureLoad_c2a480()));
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store4(0u, asuint(textureLoad_c2a480()));
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = textureLoad_c2a480();
+  VertexOutput v_3 = tint_symbol;
+  return v_3;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_4 = vertex_main_inner();
+  VertexOutput v_5 = v_4;
+  VertexOutput v_6 = v_4;
+  vertex_main_outputs v_7 = {v_6.prevent_dce, v_5.pos};
+  return v_7;
+}
+
diff --git a/test/tint/builtins/gen/var/textureLoad/c2d09a.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/textureLoad/c2d09a.wgsl.expected.ir.dxc.hlsl
index fd28383..334e6e8e 100644
--- a/test/tint/builtins/gen/var/textureLoad/c2d09a.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureLoad/c2d09a.wgsl.expected.ir.dxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureLoad
+..\..\src\tint\utils\containers\slice.h:216 internal compiler error: TINT_ASSERT(i < Length())
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/var/textureLoad/c2d09a.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/textureLoad/c2d09a.wgsl.expected.ir.fxc.hlsl
index fd28383..334e6e8e 100644
--- a/test/tint/builtins/gen/var/textureLoad/c2d09a.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureLoad/c2d09a.wgsl.expected.ir.fxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureLoad
+..\..\src\tint\utils\containers\slice.h:216 internal compiler error: TINT_ASSERT(i < Length())
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/var/textureLoad/c378ee.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/textureLoad/c378ee.wgsl.expected.ir.dxc.hlsl
index fd28383..c56e040 100644
--- a/test/tint/builtins/gen/var/textureLoad/c378ee.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureLoad/c378ee.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,48 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  uint4 prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureLoad
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation uint4 VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+Texture2DMS<uint4> arg_0 : register(t0, space1);
+uint4 textureLoad_c378ee() {
+  int2 arg_1 = (1).xx;
+  int arg_2 = 1;
+  Texture2DMS<uint4> v = arg_0;
+  int v_1 = arg_2;
+  int2 v_2 = int2(arg_1);
+  uint4 res = uint4(v.Load(v_2, int(v_1)));
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store4(0u, textureLoad_c378ee());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store4(0u, textureLoad_c378ee());
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = textureLoad_c378ee();
+  VertexOutput v_3 = tint_symbol;
+  return v_3;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_4 = vertex_main_inner();
+  VertexOutput v_5 = v_4;
+  VertexOutput v_6 = v_4;
+  vertex_main_outputs v_7 = {v_6.prevent_dce, v_5.pos};
+  return v_7;
+}
+
diff --git a/test/tint/builtins/gen/var/textureLoad/c378ee.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/textureLoad/c378ee.wgsl.expected.ir.fxc.hlsl
index fd28383..c56e040 100644
--- a/test/tint/builtins/gen/var/textureLoad/c378ee.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureLoad/c378ee.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,48 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  uint4 prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureLoad
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation uint4 VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+Texture2DMS<uint4> arg_0 : register(t0, space1);
+uint4 textureLoad_c378ee() {
+  int2 arg_1 = (1).xx;
+  int arg_2 = 1;
+  Texture2DMS<uint4> v = arg_0;
+  int v_1 = arg_2;
+  int2 v_2 = int2(arg_1);
+  uint4 res = uint4(v.Load(v_2, int(v_1)));
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store4(0u, textureLoad_c378ee());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store4(0u, textureLoad_c378ee());
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = textureLoad_c378ee();
+  VertexOutput v_3 = tint_symbol;
+  return v_3;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_4 = vertex_main_inner();
+  VertexOutput v_5 = v_4;
+  VertexOutput v_6 = v_4;
+  vertex_main_outputs v_7 = {v_6.prevent_dce, v_5.pos};
+  return v_7;
+}
+
diff --git a/test/tint/builtins/gen/var/textureLoad/c40dcb.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/textureLoad/c40dcb.wgsl.expected.ir.dxc.hlsl
index fd28383..334e6e8e 100644
--- a/test/tint/builtins/gen/var/textureLoad/c40dcb.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureLoad/c40dcb.wgsl.expected.ir.dxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureLoad
+..\..\src\tint\utils\containers\slice.h:216 internal compiler error: TINT_ASSERT(i < Length())
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/var/textureLoad/c40dcb.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/textureLoad/c40dcb.wgsl.expected.ir.fxc.hlsl
index fd28383..334e6e8e 100644
--- a/test/tint/builtins/gen/var/textureLoad/c40dcb.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureLoad/c40dcb.wgsl.expected.ir.fxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureLoad
+..\..\src\tint\utils\containers\slice.h:216 internal compiler error: TINT_ASSERT(i < Length())
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/var/textureLoad/c456bc.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/textureLoad/c456bc.wgsl.expected.ir.dxc.hlsl
index fd28383..334e6e8e 100644
--- a/test/tint/builtins/gen/var/textureLoad/c456bc.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureLoad/c456bc.wgsl.expected.ir.dxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureLoad
+..\..\src\tint\utils\containers\slice.h:216 internal compiler error: TINT_ASSERT(i < Length())
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/var/textureLoad/c456bc.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/textureLoad/c456bc.wgsl.expected.ir.fxc.hlsl
index fd28383..334e6e8e 100644
--- a/test/tint/builtins/gen/var/textureLoad/c456bc.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureLoad/c456bc.wgsl.expected.ir.fxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureLoad
+..\..\src\tint\utils\containers\slice.h:216 internal compiler error: TINT_ASSERT(i < Length())
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/var/textureLoad/c5791b.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/textureLoad/c5791b.wgsl.expected.ir.dxc.hlsl
index fd28383..334e6e8e 100644
--- a/test/tint/builtins/gen/var/textureLoad/c5791b.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureLoad/c5791b.wgsl.expected.ir.dxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureLoad
+..\..\src\tint\utils\containers\slice.h:216 internal compiler error: TINT_ASSERT(i < Length())
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/var/textureLoad/c5791b.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/textureLoad/c5791b.wgsl.expected.ir.fxc.hlsl
index fd28383..334e6e8e 100644
--- a/test/tint/builtins/gen/var/textureLoad/c5791b.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureLoad/c5791b.wgsl.expected.ir.fxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureLoad
+..\..\src\tint\utils\containers\slice.h:216 internal compiler error: TINT_ASSERT(i < Length())
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/var/textureLoad/c5c86d.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/textureLoad/c5c86d.wgsl.expected.ir.dxc.hlsl
index fd28383..334e6e8e 100644
--- a/test/tint/builtins/gen/var/textureLoad/c5c86d.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureLoad/c5c86d.wgsl.expected.ir.dxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureLoad
+..\..\src\tint\utils\containers\slice.h:216 internal compiler error: TINT_ASSERT(i < Length())
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/var/textureLoad/c5c86d.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/textureLoad/c5c86d.wgsl.expected.ir.fxc.hlsl
index fd28383..334e6e8e 100644
--- a/test/tint/builtins/gen/var/textureLoad/c5c86d.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureLoad/c5c86d.wgsl.expected.ir.fxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureLoad
+..\..\src\tint\utils\containers\slice.h:216 internal compiler error: TINT_ASSERT(i < Length())
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/var/textureLoad/c66b20.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/textureLoad/c66b20.wgsl.expected.ir.dxc.hlsl
index fd28383..334e6e8e 100644
--- a/test/tint/builtins/gen/var/textureLoad/c66b20.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureLoad/c66b20.wgsl.expected.ir.dxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureLoad
+..\..\src\tint\utils\containers\slice.h:216 internal compiler error: TINT_ASSERT(i < Length())
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/var/textureLoad/c66b20.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/textureLoad/c66b20.wgsl.expected.ir.fxc.hlsl
index fd28383..334e6e8e 100644
--- a/test/tint/builtins/gen/var/textureLoad/c66b20.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureLoad/c66b20.wgsl.expected.ir.fxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureLoad
+..\..\src\tint\utils\containers\slice.h:216 internal compiler error: TINT_ASSERT(i < Length())
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/var/textureLoad/c7cbed.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/textureLoad/c7cbed.wgsl.expected.ir.dxc.hlsl
index fd28383..334e6e8e 100644
--- a/test/tint/builtins/gen/var/textureLoad/c7cbed.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureLoad/c7cbed.wgsl.expected.ir.dxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureLoad
+..\..\src\tint\utils\containers\slice.h:216 internal compiler error: TINT_ASSERT(i < Length())
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/var/textureLoad/c7cbed.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/textureLoad/c7cbed.wgsl.expected.ir.fxc.hlsl
index fd28383..334e6e8e 100644
--- a/test/tint/builtins/gen/var/textureLoad/c7cbed.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureLoad/c7cbed.wgsl.expected.ir.fxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureLoad
+..\..\src\tint\utils\containers\slice.h:216 internal compiler error: TINT_ASSERT(i < Length())
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/var/textureLoad/c7e313.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/textureLoad/c7e313.wgsl.expected.ir.dxc.hlsl
index fd28383..334e6e8e 100644
--- a/test/tint/builtins/gen/var/textureLoad/c7e313.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureLoad/c7e313.wgsl.expected.ir.dxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureLoad
+..\..\src\tint\utils\containers\slice.h:216 internal compiler error: TINT_ASSERT(i < Length())
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/var/textureLoad/c7e313.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/textureLoad/c7e313.wgsl.expected.ir.fxc.hlsl
index fd28383..334e6e8e 100644
--- a/test/tint/builtins/gen/var/textureLoad/c7e313.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureLoad/c7e313.wgsl.expected.ir.fxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureLoad
+..\..\src\tint\utils\containers\slice.h:216 internal compiler error: TINT_ASSERT(i < Length())
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/var/textureLoad/c80691.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/textureLoad/c80691.wgsl.expected.ir.dxc.hlsl
index fd28383..334e6e8e 100644
--- a/test/tint/builtins/gen/var/textureLoad/c80691.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureLoad/c80691.wgsl.expected.ir.dxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureLoad
+..\..\src\tint\utils\containers\slice.h:216 internal compiler error: TINT_ASSERT(i < Length())
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/var/textureLoad/c80691.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/textureLoad/c80691.wgsl.expected.ir.fxc.hlsl
index fd28383..334e6e8e 100644
--- a/test/tint/builtins/gen/var/textureLoad/c80691.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureLoad/c80691.wgsl.expected.ir.fxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureLoad
+..\..\src\tint\utils\containers\slice.h:216 internal compiler error: TINT_ASSERT(i < Length())
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/var/textureLoad/c8ed19.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/textureLoad/c8ed19.wgsl.expected.ir.dxc.hlsl
index fd28383..334e6e8e 100644
--- a/test/tint/builtins/gen/var/textureLoad/c8ed19.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureLoad/c8ed19.wgsl.expected.ir.dxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureLoad
+..\..\src\tint\utils\containers\slice.h:216 internal compiler error: TINT_ASSERT(i < Length())
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/var/textureLoad/c8ed19.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/textureLoad/c8ed19.wgsl.expected.ir.fxc.hlsl
index fd28383..334e6e8e 100644
--- a/test/tint/builtins/gen/var/textureLoad/c8ed19.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureLoad/c8ed19.wgsl.expected.ir.fxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureLoad
+..\..\src\tint\utils\containers\slice.h:216 internal compiler error: TINT_ASSERT(i < Length())
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/var/textureLoad/c98bf4.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/textureLoad/c98bf4.wgsl.expected.ir.dxc.hlsl
index fd28383..334e6e8e 100644
--- a/test/tint/builtins/gen/var/textureLoad/c98bf4.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureLoad/c98bf4.wgsl.expected.ir.dxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureLoad
+..\..\src\tint\utils\containers\slice.h:216 internal compiler error: TINT_ASSERT(i < Length())
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/var/textureLoad/c98bf4.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/textureLoad/c98bf4.wgsl.expected.ir.fxc.hlsl
index fd28383..334e6e8e 100644
--- a/test/tint/builtins/gen/var/textureLoad/c98bf4.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureLoad/c98bf4.wgsl.expected.ir.fxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureLoad
+..\..\src\tint\utils\containers\slice.h:216 internal compiler error: TINT_ASSERT(i < Length())
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/var/textureLoad/c9b083.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/textureLoad/c9b083.wgsl.expected.ir.dxc.hlsl
index fd28383..334e6e8e 100644
--- a/test/tint/builtins/gen/var/textureLoad/c9b083.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureLoad/c9b083.wgsl.expected.ir.dxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureLoad
+..\..\src\tint\utils\containers\slice.h:216 internal compiler error: TINT_ASSERT(i < Length())
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/var/textureLoad/c9b083.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/textureLoad/c9b083.wgsl.expected.ir.fxc.hlsl
index fd28383..334e6e8e 100644
--- a/test/tint/builtins/gen/var/textureLoad/c9b083.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureLoad/c9b083.wgsl.expected.ir.fxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureLoad
+..\..\src\tint\utils\containers\slice.h:216 internal compiler error: TINT_ASSERT(i < Length())
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/var/textureLoad/c9cc40.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/textureLoad/c9cc40.wgsl.expected.ir.dxc.hlsl
index fd28383..334e6e8e 100644
--- a/test/tint/builtins/gen/var/textureLoad/c9cc40.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureLoad/c9cc40.wgsl.expected.ir.dxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureLoad
+..\..\src\tint\utils\containers\slice.h:216 internal compiler error: TINT_ASSERT(i < Length())
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/var/textureLoad/c9cc40.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/textureLoad/c9cc40.wgsl.expected.ir.fxc.hlsl
index fd28383..334e6e8e 100644
--- a/test/tint/builtins/gen/var/textureLoad/c9cc40.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureLoad/c9cc40.wgsl.expected.ir.fxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureLoad
+..\..\src\tint\utils\containers\slice.h:216 internal compiler error: TINT_ASSERT(i < Length())
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/var/textureLoad/c9f310.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/textureLoad/c9f310.wgsl.expected.ir.dxc.hlsl
index fd28383..334e6e8e 100644
--- a/test/tint/builtins/gen/var/textureLoad/c9f310.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureLoad/c9f310.wgsl.expected.ir.dxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureLoad
+..\..\src\tint\utils\containers\slice.h:216 internal compiler error: TINT_ASSERT(i < Length())
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/var/textureLoad/c9f310.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/textureLoad/c9f310.wgsl.expected.ir.fxc.hlsl
index fd28383..334e6e8e 100644
--- a/test/tint/builtins/gen/var/textureLoad/c9f310.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureLoad/c9f310.wgsl.expected.ir.fxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureLoad
+..\..\src\tint\utils\containers\slice.h:216 internal compiler error: TINT_ASSERT(i < Length())
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/var/textureLoad/cac876.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/textureLoad/cac876.wgsl.expected.ir.dxc.hlsl
index fd28383..334e6e8e 100644
--- a/test/tint/builtins/gen/var/textureLoad/cac876.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureLoad/cac876.wgsl.expected.ir.dxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureLoad
+..\..\src\tint\utils\containers\slice.h:216 internal compiler error: TINT_ASSERT(i < Length())
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/var/textureLoad/cac876.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/textureLoad/cac876.wgsl.expected.ir.fxc.hlsl
index fd28383..334e6e8e 100644
--- a/test/tint/builtins/gen/var/textureLoad/cac876.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureLoad/cac876.wgsl.expected.ir.fxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureLoad
+..\..\src\tint\utils\containers\slice.h:216 internal compiler error: TINT_ASSERT(i < Length())
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/var/textureLoad/cad5f2.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/textureLoad/cad5f2.wgsl.expected.ir.dxc.hlsl
index fd28383..a77bc90 100644
--- a/test/tint/builtins/gen/var/textureLoad/cad5f2.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureLoad/cad5f2.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,48 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  uint4 prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureLoad
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation uint4 VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+Texture2DMS<uint4> arg_0 : register(t0, space1);
+uint4 textureLoad_cad5f2() {
+  int2 arg_1 = (1).xx;
+  uint arg_2 = 1u;
+  Texture2DMS<uint4> v = arg_0;
+  uint v_1 = arg_2;
+  int2 v_2 = int2(arg_1);
+  uint4 res = uint4(v.Load(v_2, int(v_1)));
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store4(0u, textureLoad_cad5f2());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store4(0u, textureLoad_cad5f2());
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = textureLoad_cad5f2();
+  VertexOutput v_3 = tint_symbol;
+  return v_3;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_4 = vertex_main_inner();
+  VertexOutput v_5 = v_4;
+  VertexOutput v_6 = v_4;
+  vertex_main_outputs v_7 = {v_6.prevent_dce, v_5.pos};
+  return v_7;
+}
+
diff --git a/test/tint/builtins/gen/var/textureLoad/cad5f2.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/textureLoad/cad5f2.wgsl.expected.ir.fxc.hlsl
index fd28383..a77bc90 100644
--- a/test/tint/builtins/gen/var/textureLoad/cad5f2.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureLoad/cad5f2.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,48 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  uint4 prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureLoad
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation uint4 VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+Texture2DMS<uint4> arg_0 : register(t0, space1);
+uint4 textureLoad_cad5f2() {
+  int2 arg_1 = (1).xx;
+  uint arg_2 = 1u;
+  Texture2DMS<uint4> v = arg_0;
+  uint v_1 = arg_2;
+  int2 v_2 = int2(arg_1);
+  uint4 res = uint4(v.Load(v_2, int(v_1)));
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store4(0u, textureLoad_cad5f2());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store4(0u, textureLoad_cad5f2());
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = textureLoad_cad5f2();
+  VertexOutput v_3 = tint_symbol;
+  return v_3;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_4 = vertex_main_inner();
+  VertexOutput v_5 = v_4;
+  VertexOutput v_6 = v_4;
+  vertex_main_outputs v_7 = {v_6.prevent_dce, v_5.pos};
+  return v_7;
+}
+
diff --git a/test/tint/builtins/gen/var/textureLoad/cb57c2.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/textureLoad/cb57c2.wgsl.expected.ir.dxc.hlsl
index fd28383..8bab39e 100644
--- a/test/tint/builtins/gen/var/textureLoad/cb57c2.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureLoad/cb57c2.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,51 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  float prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureLoad
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation float VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+Texture2DArray arg_0 : register(t0, space1);
+float textureLoad_cb57c2() {
+  uint2 arg_1 = (1u).xx;
+  uint arg_2 = 1u;
+  int arg_3 = 1;
+  Texture2DArray v = arg_0;
+  uint v_1 = arg_2;
+  int v_2 = arg_3;
+  int2 v_3 = int2(arg_1);
+  int v_4 = int(v_1);
+  float res = v.Load(int4(v_3, v_4, int(v_2))).x;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store(0u, asuint(textureLoad_cb57c2()));
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store(0u, asuint(textureLoad_cb57c2()));
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = textureLoad_cb57c2();
+  VertexOutput v_5 = tint_symbol;
+  return v_5;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_6 = vertex_main_inner();
+  VertexOutput v_7 = v_6;
+  VertexOutput v_8 = v_6;
+  vertex_main_outputs v_9 = {v_8.prevent_dce, v_7.pos};
+  return v_9;
+}
+
diff --git a/test/tint/builtins/gen/var/textureLoad/cb57c2.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/textureLoad/cb57c2.wgsl.expected.ir.fxc.hlsl
index fd28383..8bab39e 100644
--- a/test/tint/builtins/gen/var/textureLoad/cb57c2.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureLoad/cb57c2.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,51 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  float prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureLoad
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation float VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+Texture2DArray arg_0 : register(t0, space1);
+float textureLoad_cb57c2() {
+  uint2 arg_1 = (1u).xx;
+  uint arg_2 = 1u;
+  int arg_3 = 1;
+  Texture2DArray v = arg_0;
+  uint v_1 = arg_2;
+  int v_2 = arg_3;
+  int2 v_3 = int2(arg_1);
+  int v_4 = int(v_1);
+  float res = v.Load(int4(v_3, v_4, int(v_2))).x;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store(0u, asuint(textureLoad_cb57c2()));
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store(0u, asuint(textureLoad_cb57c2()));
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = textureLoad_cb57c2();
+  VertexOutput v_5 = tint_symbol;
+  return v_5;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_6 = vertex_main_inner();
+  VertexOutput v_7 = v_6;
+  VertexOutput v_8 = v_6;
+  vertex_main_outputs v_9 = {v_8.prevent_dce, v_7.pos};
+  return v_9;
+}
+
diff --git a/test/tint/builtins/gen/var/textureLoad/cdbcf6.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/textureLoad/cdbcf6.wgsl.expected.ir.dxc.hlsl
index fd28383..334e6e8e 100644
--- a/test/tint/builtins/gen/var/textureLoad/cdbcf6.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureLoad/cdbcf6.wgsl.expected.ir.dxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureLoad
+..\..\src\tint\utils\containers\slice.h:216 internal compiler error: TINT_ASSERT(i < Length())
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/var/textureLoad/cdbcf6.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/textureLoad/cdbcf6.wgsl.expected.ir.fxc.hlsl
index fd28383..334e6e8e 100644
--- a/test/tint/builtins/gen/var/textureLoad/cdbcf6.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureLoad/cdbcf6.wgsl.expected.ir.fxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureLoad
+..\..\src\tint\utils\containers\slice.h:216 internal compiler error: TINT_ASSERT(i < Length())
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/var/textureLoad/cdccd2.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/textureLoad/cdccd2.wgsl.expected.ir.dxc.hlsl
index fd28383..334e6e8e 100644
--- a/test/tint/builtins/gen/var/textureLoad/cdccd2.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureLoad/cdccd2.wgsl.expected.ir.dxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureLoad
+..\..\src\tint\utils\containers\slice.h:216 internal compiler error: TINT_ASSERT(i < Length())
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/var/textureLoad/cdccd2.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/textureLoad/cdccd2.wgsl.expected.ir.fxc.hlsl
index fd28383..334e6e8e 100644
--- a/test/tint/builtins/gen/var/textureLoad/cdccd2.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureLoad/cdccd2.wgsl.expected.ir.fxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureLoad
+..\..\src\tint\utils\containers\slice.h:216 internal compiler error: TINT_ASSERT(i < Length())
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/var/textureLoad/cdd343.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/textureLoad/cdd343.wgsl.expected.ir.dxc.hlsl
index fd28383..334e6e8e 100644
--- a/test/tint/builtins/gen/var/textureLoad/cdd343.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureLoad/cdd343.wgsl.expected.ir.dxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureLoad
+..\..\src\tint\utils\containers\slice.h:216 internal compiler error: TINT_ASSERT(i < Length())
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/var/textureLoad/cdd343.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/textureLoad/cdd343.wgsl.expected.ir.fxc.hlsl
index fd28383..334e6e8e 100644
--- a/test/tint/builtins/gen/var/textureLoad/cdd343.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureLoad/cdd343.wgsl.expected.ir.fxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureLoad
+..\..\src\tint\utils\containers\slice.h:216 internal compiler error: TINT_ASSERT(i < Length())
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/var/textureLoad/cddf6b.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/textureLoad/cddf6b.wgsl.expected.ir.dxc.hlsl
index fd28383..334e6e8e 100644
--- a/test/tint/builtins/gen/var/textureLoad/cddf6b.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureLoad/cddf6b.wgsl.expected.ir.dxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureLoad
+..\..\src\tint\utils\containers\slice.h:216 internal compiler error: TINT_ASSERT(i < Length())
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/var/textureLoad/cddf6b.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/textureLoad/cddf6b.wgsl.expected.ir.fxc.hlsl
index fd28383..334e6e8e 100644
--- a/test/tint/builtins/gen/var/textureLoad/cddf6b.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureLoad/cddf6b.wgsl.expected.ir.fxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureLoad
+..\..\src\tint\utils\containers\slice.h:216 internal compiler error: TINT_ASSERT(i < Length())
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/var/textureLoad/cec477.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/textureLoad/cec477.wgsl.expected.ir.dxc.hlsl
index fd28383..334e6e8e 100644
--- a/test/tint/builtins/gen/var/textureLoad/cec477.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureLoad/cec477.wgsl.expected.ir.dxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureLoad
+..\..\src\tint\utils\containers\slice.h:216 internal compiler error: TINT_ASSERT(i < Length())
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/var/textureLoad/cec477.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/textureLoad/cec477.wgsl.expected.ir.fxc.hlsl
index fd28383..334e6e8e 100644
--- a/test/tint/builtins/gen/var/textureLoad/cec477.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureLoad/cec477.wgsl.expected.ir.fxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureLoad
+..\..\src\tint\utils\containers\slice.h:216 internal compiler error: TINT_ASSERT(i < Length())
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/var/textureLoad/cece6c.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/textureLoad/cece6c.wgsl.expected.ir.dxc.hlsl
index fd28383..334e6e8e 100644
--- a/test/tint/builtins/gen/var/textureLoad/cece6c.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureLoad/cece6c.wgsl.expected.ir.dxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureLoad
+..\..\src\tint\utils\containers\slice.h:216 internal compiler error: TINT_ASSERT(i < Length())
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/var/textureLoad/cece6c.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/textureLoad/cece6c.wgsl.expected.ir.fxc.hlsl
index fd28383..334e6e8e 100644
--- a/test/tint/builtins/gen/var/textureLoad/cece6c.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureLoad/cece6c.wgsl.expected.ir.fxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureLoad
+..\..\src\tint\utils\containers\slice.h:216 internal compiler error: TINT_ASSERT(i < Length())
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/var/textureLoad/d02afc.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/textureLoad/d02afc.wgsl.expected.ir.dxc.hlsl
index fd28383..334e6e8e 100644
--- a/test/tint/builtins/gen/var/textureLoad/d02afc.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureLoad/d02afc.wgsl.expected.ir.dxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureLoad
+..\..\src\tint\utils\containers\slice.h:216 internal compiler error: TINT_ASSERT(i < Length())
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/var/textureLoad/d02afc.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/textureLoad/d02afc.wgsl.expected.ir.fxc.hlsl
index fd28383..334e6e8e 100644
--- a/test/tint/builtins/gen/var/textureLoad/d02afc.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureLoad/d02afc.wgsl.expected.ir.fxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureLoad
+..\..\src\tint\utils\containers\slice.h:216 internal compiler error: TINT_ASSERT(i < Length())
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/var/textureLoad/d0e351.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/textureLoad/d0e351.wgsl.expected.ir.dxc.hlsl
index fd28383..334e6e8e 100644
--- a/test/tint/builtins/gen/var/textureLoad/d0e351.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureLoad/d0e351.wgsl.expected.ir.dxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureLoad
+..\..\src\tint\utils\containers\slice.h:216 internal compiler error: TINT_ASSERT(i < Length())
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/var/textureLoad/d0e351.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/textureLoad/d0e351.wgsl.expected.ir.fxc.hlsl
index fd28383..334e6e8e 100644
--- a/test/tint/builtins/gen/var/textureLoad/d0e351.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureLoad/d0e351.wgsl.expected.ir.fxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureLoad
+..\..\src\tint\utils\containers\slice.h:216 internal compiler error: TINT_ASSERT(i < Length())
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/var/textureLoad/d357bb.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/textureLoad/d357bb.wgsl.expected.ir.dxc.hlsl
index fd28383..334e6e8e 100644
--- a/test/tint/builtins/gen/var/textureLoad/d357bb.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureLoad/d357bb.wgsl.expected.ir.dxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureLoad
+..\..\src\tint\utils\containers\slice.h:216 internal compiler error: TINT_ASSERT(i < Length())
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/var/textureLoad/d357bb.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/textureLoad/d357bb.wgsl.expected.ir.fxc.hlsl
index fd28383..334e6e8e 100644
--- a/test/tint/builtins/gen/var/textureLoad/d357bb.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureLoad/d357bb.wgsl.expected.ir.fxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureLoad
+..\..\src\tint\utils\containers\slice.h:216 internal compiler error: TINT_ASSERT(i < Length())
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/var/textureLoad/d37a08.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/textureLoad/d37a08.wgsl.expected.ir.dxc.hlsl
index fd28383..334e6e8e 100644
--- a/test/tint/builtins/gen/var/textureLoad/d37a08.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureLoad/d37a08.wgsl.expected.ir.dxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureLoad
+..\..\src\tint\utils\containers\slice.h:216 internal compiler error: TINT_ASSERT(i < Length())
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/var/textureLoad/d37a08.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/textureLoad/d37a08.wgsl.expected.ir.fxc.hlsl
index fd28383..334e6e8e 100644
--- a/test/tint/builtins/gen/var/textureLoad/d37a08.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureLoad/d37a08.wgsl.expected.ir.fxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureLoad
+..\..\src\tint\utils\containers\slice.h:216 internal compiler error: TINT_ASSERT(i < Length())
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/var/textureLoad/d3d8fc.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/textureLoad/d3d8fc.wgsl.expected.ir.dxc.hlsl
index fd28383..334e6e8e 100644
--- a/test/tint/builtins/gen/var/textureLoad/d3d8fc.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureLoad/d3d8fc.wgsl.expected.ir.dxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureLoad
+..\..\src\tint\utils\containers\slice.h:216 internal compiler error: TINT_ASSERT(i < Length())
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/var/textureLoad/d3d8fc.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/textureLoad/d3d8fc.wgsl.expected.ir.fxc.hlsl
index fd28383..334e6e8e 100644
--- a/test/tint/builtins/gen/var/textureLoad/d3d8fc.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureLoad/d3d8fc.wgsl.expected.ir.fxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureLoad
+..\..\src\tint\utils\containers\slice.h:216 internal compiler error: TINT_ASSERT(i < Length())
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/var/textureLoad/d41c72.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/textureLoad/d41c72.wgsl.expected.ir.dxc.hlsl
index fd28383..334e6e8e 100644
--- a/test/tint/builtins/gen/var/textureLoad/d41c72.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureLoad/d41c72.wgsl.expected.ir.dxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureLoad
+..\..\src\tint\utils\containers\slice.h:216 internal compiler error: TINT_ASSERT(i < Length())
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/var/textureLoad/d41c72.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/textureLoad/d41c72.wgsl.expected.ir.fxc.hlsl
index fd28383..334e6e8e 100644
--- a/test/tint/builtins/gen/var/textureLoad/d41c72.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureLoad/d41c72.wgsl.expected.ir.fxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureLoad
+..\..\src\tint\utils\containers\slice.h:216 internal compiler error: TINT_ASSERT(i < Length())
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/var/textureLoad/d4df19.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/textureLoad/d4df19.wgsl.expected.ir.dxc.hlsl
index fd28383..334e6e8e 100644
--- a/test/tint/builtins/gen/var/textureLoad/d4df19.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureLoad/d4df19.wgsl.expected.ir.dxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureLoad
+..\..\src\tint\utils\containers\slice.h:216 internal compiler error: TINT_ASSERT(i < Length())
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/var/textureLoad/d4df19.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/textureLoad/d4df19.wgsl.expected.ir.fxc.hlsl
index fd28383..334e6e8e 100644
--- a/test/tint/builtins/gen/var/textureLoad/d4df19.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureLoad/d4df19.wgsl.expected.ir.fxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureLoad
+..\..\src\tint\utils\containers\slice.h:216 internal compiler error: TINT_ASSERT(i < Length())
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/var/textureLoad/d5c48d.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/textureLoad/d5c48d.wgsl.expected.ir.dxc.hlsl
index fd28383..334e6e8e 100644
--- a/test/tint/builtins/gen/var/textureLoad/d5c48d.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureLoad/d5c48d.wgsl.expected.ir.dxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureLoad
+..\..\src\tint\utils\containers\slice.h:216 internal compiler error: TINT_ASSERT(i < Length())
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/var/textureLoad/d5c48d.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/textureLoad/d5c48d.wgsl.expected.ir.fxc.hlsl
index fd28383..334e6e8e 100644
--- a/test/tint/builtins/gen/var/textureLoad/d5c48d.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureLoad/d5c48d.wgsl.expected.ir.fxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureLoad
+..\..\src\tint\utils\containers\slice.h:216 internal compiler error: TINT_ASSERT(i < Length())
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/var/textureLoad/d72de9.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/textureLoad/d72de9.wgsl.expected.ir.dxc.hlsl
index fd28383..334e6e8e 100644
--- a/test/tint/builtins/gen/var/textureLoad/d72de9.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureLoad/d72de9.wgsl.expected.ir.dxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureLoad
+..\..\src\tint\utils\containers\slice.h:216 internal compiler error: TINT_ASSERT(i < Length())
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/var/textureLoad/d72de9.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/textureLoad/d72de9.wgsl.expected.ir.fxc.hlsl
index fd28383..334e6e8e 100644
--- a/test/tint/builtins/gen/var/textureLoad/d72de9.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureLoad/d72de9.wgsl.expected.ir.fxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureLoad
+..\..\src\tint\utils\containers\slice.h:216 internal compiler error: TINT_ASSERT(i < Length())
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/var/textureLoad/d7996a.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/textureLoad/d7996a.wgsl.expected.ir.dxc.hlsl
index fd28383..334e6e8e 100644
--- a/test/tint/builtins/gen/var/textureLoad/d7996a.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureLoad/d7996a.wgsl.expected.ir.dxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureLoad
+..\..\src\tint\utils\containers\slice.h:216 internal compiler error: TINT_ASSERT(i < Length())
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/var/textureLoad/d7996a.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/textureLoad/d7996a.wgsl.expected.ir.fxc.hlsl
index fd28383..334e6e8e 100644
--- a/test/tint/builtins/gen/var/textureLoad/d7996a.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureLoad/d7996a.wgsl.expected.ir.fxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureLoad
+..\..\src\tint\utils\containers\slice.h:216 internal compiler error: TINT_ASSERT(i < Length())
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/var/textureLoad/d79c5c.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/textureLoad/d79c5c.wgsl.expected.ir.dxc.hlsl
index fd28383..334e6e8e 100644
--- a/test/tint/builtins/gen/var/textureLoad/d79c5c.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureLoad/d79c5c.wgsl.expected.ir.dxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureLoad
+..\..\src\tint\utils\containers\slice.h:216 internal compiler error: TINT_ASSERT(i < Length())
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/var/textureLoad/d79c5c.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/textureLoad/d79c5c.wgsl.expected.ir.fxc.hlsl
index fd28383..334e6e8e 100644
--- a/test/tint/builtins/gen/var/textureLoad/d79c5c.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureLoad/d79c5c.wgsl.expected.ir.fxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureLoad
+..\..\src\tint\utils\containers\slice.h:216 internal compiler error: TINT_ASSERT(i < Length())
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/var/textureLoad/d80ff3.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/textureLoad/d80ff3.wgsl.expected.ir.dxc.hlsl
index fd28383..334e6e8e 100644
--- a/test/tint/builtins/gen/var/textureLoad/d80ff3.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureLoad/d80ff3.wgsl.expected.ir.dxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureLoad
+..\..\src\tint\utils\containers\slice.h:216 internal compiler error: TINT_ASSERT(i < Length())
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/var/textureLoad/d80ff3.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/textureLoad/d80ff3.wgsl.expected.ir.fxc.hlsl
index fd28383..334e6e8e 100644
--- a/test/tint/builtins/gen/var/textureLoad/d80ff3.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureLoad/d80ff3.wgsl.expected.ir.fxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureLoad
+..\..\src\tint\utils\containers\slice.h:216 internal compiler error: TINT_ASSERT(i < Length())
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/var/textureLoad/d81c57.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/textureLoad/d81c57.wgsl.expected.ir.dxc.hlsl
index fd28383..334e6e8e 100644
--- a/test/tint/builtins/gen/var/textureLoad/d81c57.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureLoad/d81c57.wgsl.expected.ir.dxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureLoad
+..\..\src\tint\utils\containers\slice.h:216 internal compiler error: TINT_ASSERT(i < Length())
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/var/textureLoad/d81c57.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/textureLoad/d81c57.wgsl.expected.ir.fxc.hlsl
index fd28383..334e6e8e 100644
--- a/test/tint/builtins/gen/var/textureLoad/d81c57.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureLoad/d81c57.wgsl.expected.ir.fxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureLoad
+..\..\src\tint\utils\containers\slice.h:216 internal compiler error: TINT_ASSERT(i < Length())
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/var/textureLoad/d85d61.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/textureLoad/d85d61.wgsl.expected.ir.dxc.hlsl
index fd28383..334e6e8e 100644
--- a/test/tint/builtins/gen/var/textureLoad/d85d61.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureLoad/d85d61.wgsl.expected.ir.dxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureLoad
+..\..\src\tint\utils\containers\slice.h:216 internal compiler error: TINT_ASSERT(i < Length())
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/var/textureLoad/d85d61.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/textureLoad/d85d61.wgsl.expected.ir.fxc.hlsl
index fd28383..334e6e8e 100644
--- a/test/tint/builtins/gen/var/textureLoad/d85d61.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureLoad/d85d61.wgsl.expected.ir.fxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureLoad
+..\..\src\tint\utils\containers\slice.h:216 internal compiler error: TINT_ASSERT(i < Length())
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/var/textureLoad/d8617f.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/textureLoad/d8617f.wgsl.expected.ir.dxc.hlsl
index fd28383..334e6e8e 100644
--- a/test/tint/builtins/gen/var/textureLoad/d8617f.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureLoad/d8617f.wgsl.expected.ir.dxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureLoad
+..\..\src\tint\utils\containers\slice.h:216 internal compiler error: TINT_ASSERT(i < Length())
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/var/textureLoad/d8617f.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/textureLoad/d8617f.wgsl.expected.ir.fxc.hlsl
index fd28383..334e6e8e 100644
--- a/test/tint/builtins/gen/var/textureLoad/d8617f.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureLoad/d8617f.wgsl.expected.ir.fxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureLoad
+..\..\src\tint\utils\containers\slice.h:216 internal compiler error: TINT_ASSERT(i < Length())
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/var/textureLoad/d8be5a.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/textureLoad/d8be5a.wgsl.expected.ir.dxc.hlsl
index fd28383..334e6e8e 100644
--- a/test/tint/builtins/gen/var/textureLoad/d8be5a.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureLoad/d8be5a.wgsl.expected.ir.dxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureLoad
+..\..\src\tint\utils\containers\slice.h:216 internal compiler error: TINT_ASSERT(i < Length())
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/var/textureLoad/d8be5a.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/textureLoad/d8be5a.wgsl.expected.ir.fxc.hlsl
index fd28383..334e6e8e 100644
--- a/test/tint/builtins/gen/var/textureLoad/d8be5a.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureLoad/d8be5a.wgsl.expected.ir.fxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureLoad
+..\..\src\tint\utils\containers\slice.h:216 internal compiler error: TINT_ASSERT(i < Length())
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/var/textureLoad/d91f37.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/textureLoad/d91f37.wgsl.expected.ir.dxc.hlsl
index fd28383..334e6e8e 100644
--- a/test/tint/builtins/gen/var/textureLoad/d91f37.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureLoad/d91f37.wgsl.expected.ir.dxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureLoad
+..\..\src\tint\utils\containers\slice.h:216 internal compiler error: TINT_ASSERT(i < Length())
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/var/textureLoad/d91f37.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/textureLoad/d91f37.wgsl.expected.ir.fxc.hlsl
index fd28383..334e6e8e 100644
--- a/test/tint/builtins/gen/var/textureLoad/d91f37.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureLoad/d91f37.wgsl.expected.ir.fxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureLoad
+..\..\src\tint\utils\containers\slice.h:216 internal compiler error: TINT_ASSERT(i < Length())
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/var/textureLoad/dab04f.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/textureLoad/dab04f.wgsl.expected.ir.dxc.hlsl
index fd28383..334e6e8e 100644
--- a/test/tint/builtins/gen/var/textureLoad/dab04f.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureLoad/dab04f.wgsl.expected.ir.dxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureLoad
+..\..\src\tint\utils\containers\slice.h:216 internal compiler error: TINT_ASSERT(i < Length())
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/var/textureLoad/dab04f.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/textureLoad/dab04f.wgsl.expected.ir.fxc.hlsl
index fd28383..334e6e8e 100644
--- a/test/tint/builtins/gen/var/textureLoad/dab04f.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureLoad/dab04f.wgsl.expected.ir.fxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureLoad
+..\..\src\tint\utils\containers\slice.h:216 internal compiler error: TINT_ASSERT(i < Length())
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/var/textureLoad/dbd554.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/textureLoad/dbd554.wgsl.expected.ir.dxc.hlsl
index fd28383..334e6e8e 100644
--- a/test/tint/builtins/gen/var/textureLoad/dbd554.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureLoad/dbd554.wgsl.expected.ir.dxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureLoad
+..\..\src\tint\utils\containers\slice.h:216 internal compiler error: TINT_ASSERT(i < Length())
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/var/textureLoad/dbd554.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/textureLoad/dbd554.wgsl.expected.ir.fxc.hlsl
index fd28383..334e6e8e 100644
--- a/test/tint/builtins/gen/var/textureLoad/dbd554.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureLoad/dbd554.wgsl.expected.ir.fxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureLoad
+..\..\src\tint\utils\containers\slice.h:216 internal compiler error: TINT_ASSERT(i < Length())
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/var/textureLoad/dd5859.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/textureLoad/dd5859.wgsl.expected.ir.dxc.hlsl
index fd28383..334e6e8e 100644
--- a/test/tint/builtins/gen/var/textureLoad/dd5859.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureLoad/dd5859.wgsl.expected.ir.dxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureLoad
+..\..\src\tint\utils\containers\slice.h:216 internal compiler error: TINT_ASSERT(i < Length())
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/var/textureLoad/dd5859.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/textureLoad/dd5859.wgsl.expected.ir.fxc.hlsl
index fd28383..334e6e8e 100644
--- a/test/tint/builtins/gen/var/textureLoad/dd5859.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureLoad/dd5859.wgsl.expected.ir.fxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureLoad
+..\..\src\tint\utils\containers\slice.h:216 internal compiler error: TINT_ASSERT(i < Length())
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/var/textureLoad/dd8776.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/textureLoad/dd8776.wgsl.expected.ir.dxc.hlsl
index fd28383..334e6e8e 100644
--- a/test/tint/builtins/gen/var/textureLoad/dd8776.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureLoad/dd8776.wgsl.expected.ir.dxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureLoad
+..\..\src\tint\utils\containers\slice.h:216 internal compiler error: TINT_ASSERT(i < Length())
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/var/textureLoad/dd8776.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/textureLoad/dd8776.wgsl.expected.ir.fxc.hlsl
index fd28383..334e6e8e 100644
--- a/test/tint/builtins/gen/var/textureLoad/dd8776.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureLoad/dd8776.wgsl.expected.ir.fxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureLoad
+..\..\src\tint\utils\containers\slice.h:216 internal compiler error: TINT_ASSERT(i < Length())
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/var/textureLoad/ddeed3.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/textureLoad/ddeed3.wgsl.expected.ir.dxc.hlsl
index fd28383..334e6e8e 100644
--- a/test/tint/builtins/gen/var/textureLoad/ddeed3.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureLoad/ddeed3.wgsl.expected.ir.dxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureLoad
+..\..\src\tint\utils\containers\slice.h:216 internal compiler error: TINT_ASSERT(i < Length())
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/var/textureLoad/ddeed3.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/textureLoad/ddeed3.wgsl.expected.ir.fxc.hlsl
index fd28383..334e6e8e 100644
--- a/test/tint/builtins/gen/var/textureLoad/ddeed3.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureLoad/ddeed3.wgsl.expected.ir.fxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureLoad
+..\..\src\tint\utils\containers\slice.h:216 internal compiler error: TINT_ASSERT(i < Length())
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/var/textureLoad/de5a0e.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/textureLoad/de5a0e.wgsl.expected.ir.dxc.hlsl
index fd28383..334e6e8e 100644
--- a/test/tint/builtins/gen/var/textureLoad/de5a0e.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureLoad/de5a0e.wgsl.expected.ir.dxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureLoad
+..\..\src\tint\utils\containers\slice.h:216 internal compiler error: TINT_ASSERT(i < Length())
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/var/textureLoad/de5a0e.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/textureLoad/de5a0e.wgsl.expected.ir.fxc.hlsl
index fd28383..334e6e8e 100644
--- a/test/tint/builtins/gen/var/textureLoad/de5a0e.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureLoad/de5a0e.wgsl.expected.ir.fxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureLoad
+..\..\src\tint\utils\containers\slice.h:216 internal compiler error: TINT_ASSERT(i < Length())
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/var/textureLoad/dee8e7.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/textureLoad/dee8e7.wgsl.expected.ir.dxc.hlsl
index fd28383..334e6e8e 100644
--- a/test/tint/builtins/gen/var/textureLoad/dee8e7.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureLoad/dee8e7.wgsl.expected.ir.dxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureLoad
+..\..\src\tint\utils\containers\slice.h:216 internal compiler error: TINT_ASSERT(i < Length())
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/var/textureLoad/dee8e7.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/textureLoad/dee8e7.wgsl.expected.ir.fxc.hlsl
index fd28383..334e6e8e 100644
--- a/test/tint/builtins/gen/var/textureLoad/dee8e7.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureLoad/dee8e7.wgsl.expected.ir.fxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureLoad
+..\..\src\tint\utils\containers\slice.h:216 internal compiler error: TINT_ASSERT(i < Length())
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/var/textureLoad/defd9a.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/textureLoad/defd9a.wgsl.expected.ir.dxc.hlsl
index fd28383..334e6e8e 100644
--- a/test/tint/builtins/gen/var/textureLoad/defd9a.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureLoad/defd9a.wgsl.expected.ir.dxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureLoad
+..\..\src\tint\utils\containers\slice.h:216 internal compiler error: TINT_ASSERT(i < Length())
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/var/textureLoad/defd9a.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/textureLoad/defd9a.wgsl.expected.ir.fxc.hlsl
index fd28383..334e6e8e 100644
--- a/test/tint/builtins/gen/var/textureLoad/defd9a.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureLoad/defd9a.wgsl.expected.ir.fxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureLoad
+..\..\src\tint\utils\containers\slice.h:216 internal compiler error: TINT_ASSERT(i < Length())
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/var/textureLoad/dfdf3b.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/textureLoad/dfdf3b.wgsl.expected.ir.dxc.hlsl
index fd28383..334e6e8e 100644
--- a/test/tint/builtins/gen/var/textureLoad/dfdf3b.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureLoad/dfdf3b.wgsl.expected.ir.dxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureLoad
+..\..\src\tint\utils\containers\slice.h:216 internal compiler error: TINT_ASSERT(i < Length())
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/var/textureLoad/dfdf3b.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/textureLoad/dfdf3b.wgsl.expected.ir.fxc.hlsl
index fd28383..334e6e8e 100644
--- a/test/tint/builtins/gen/var/textureLoad/dfdf3b.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureLoad/dfdf3b.wgsl.expected.ir.fxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureLoad
+..\..\src\tint\utils\containers\slice.h:216 internal compiler error: TINT_ASSERT(i < Length())
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/var/textureLoad/e1c3cf.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/textureLoad/e1c3cf.wgsl.expected.ir.dxc.hlsl
index fd28383..334e6e8e 100644
--- a/test/tint/builtins/gen/var/textureLoad/e1c3cf.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureLoad/e1c3cf.wgsl.expected.ir.dxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureLoad
+..\..\src\tint\utils\containers\slice.h:216 internal compiler error: TINT_ASSERT(i < Length())
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/var/textureLoad/e1c3cf.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/textureLoad/e1c3cf.wgsl.expected.ir.fxc.hlsl
index fd28383..334e6e8e 100644
--- a/test/tint/builtins/gen/var/textureLoad/e1c3cf.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureLoad/e1c3cf.wgsl.expected.ir.fxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureLoad
+..\..\src\tint\utils\containers\slice.h:216 internal compiler error: TINT_ASSERT(i < Length())
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/var/textureLoad/e2292f.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/textureLoad/e2292f.wgsl.expected.ir.dxc.hlsl
index fd28383..334e6e8e 100644
--- a/test/tint/builtins/gen/var/textureLoad/e2292f.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureLoad/e2292f.wgsl.expected.ir.dxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureLoad
+..\..\src\tint\utils\containers\slice.h:216 internal compiler error: TINT_ASSERT(i < Length())
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/var/textureLoad/e2292f.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/textureLoad/e2292f.wgsl.expected.ir.fxc.hlsl
index fd28383..334e6e8e 100644
--- a/test/tint/builtins/gen/var/textureLoad/e2292f.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureLoad/e2292f.wgsl.expected.ir.fxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureLoad
+..\..\src\tint\utils\containers\slice.h:216 internal compiler error: TINT_ASSERT(i < Length())
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/var/textureLoad/e2b3a1.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/textureLoad/e2b3a1.wgsl.expected.ir.dxc.hlsl
index fd28383..334e6e8e 100644
--- a/test/tint/builtins/gen/var/textureLoad/e2b3a1.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureLoad/e2b3a1.wgsl.expected.ir.dxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureLoad
+..\..\src\tint\utils\containers\slice.h:216 internal compiler error: TINT_ASSERT(i < Length())
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/var/textureLoad/e2b3a1.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/textureLoad/e2b3a1.wgsl.expected.ir.fxc.hlsl
index fd28383..334e6e8e 100644
--- a/test/tint/builtins/gen/var/textureLoad/e2b3a1.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureLoad/e2b3a1.wgsl.expected.ir.fxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureLoad
+..\..\src\tint\utils\containers\slice.h:216 internal compiler error: TINT_ASSERT(i < Length())
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/var/textureLoad/e2d7da.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/textureLoad/e2d7da.wgsl.expected.ir.dxc.hlsl
index fd28383..334e6e8e 100644
--- a/test/tint/builtins/gen/var/textureLoad/e2d7da.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureLoad/e2d7da.wgsl.expected.ir.dxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureLoad
+..\..\src\tint\utils\containers\slice.h:216 internal compiler error: TINT_ASSERT(i < Length())
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/var/textureLoad/e2d7da.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/textureLoad/e2d7da.wgsl.expected.ir.fxc.hlsl
index fd28383..334e6e8e 100644
--- a/test/tint/builtins/gen/var/textureLoad/e2d7da.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureLoad/e2d7da.wgsl.expected.ir.fxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureLoad
+..\..\src\tint\utils\containers\slice.h:216 internal compiler error: TINT_ASSERT(i < Length())
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/var/textureLoad/e33285.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/textureLoad/e33285.wgsl.expected.ir.dxc.hlsl
index fd28383..334e6e8e 100644
--- a/test/tint/builtins/gen/var/textureLoad/e33285.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureLoad/e33285.wgsl.expected.ir.dxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureLoad
+..\..\src\tint\utils\containers\slice.h:216 internal compiler error: TINT_ASSERT(i < Length())
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/var/textureLoad/e33285.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/textureLoad/e33285.wgsl.expected.ir.fxc.hlsl
index fd28383..334e6e8e 100644
--- a/test/tint/builtins/gen/var/textureLoad/e33285.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureLoad/e33285.wgsl.expected.ir.fxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureLoad
+..\..\src\tint\utils\containers\slice.h:216 internal compiler error: TINT_ASSERT(i < Length())
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/var/textureLoad/e35f72.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/textureLoad/e35f72.wgsl.expected.ir.dxc.hlsl
index fd28383..7302c59 100644
--- a/test/tint/builtins/gen/var/textureLoad/e35f72.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureLoad/e35f72.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,48 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  int4 prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureLoad
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation int4 VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+Texture3D<int4> arg_0 : register(t0, space1);
+int4 textureLoad_e35f72() {
+  int3 arg_1 = (1).xxx;
+  uint arg_2 = 1u;
+  Texture3D<int4> v = arg_0;
+  uint v_1 = arg_2;
+  int3 v_2 = int3(arg_1);
+  int4 res = int4(v.Load(int4(v_2, int(v_1))));
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store4(0u, asuint(textureLoad_e35f72()));
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store4(0u, asuint(textureLoad_e35f72()));
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = textureLoad_e35f72();
+  VertexOutput v_3 = tint_symbol;
+  return v_3;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_4 = vertex_main_inner();
+  VertexOutput v_5 = v_4;
+  VertexOutput v_6 = v_4;
+  vertex_main_outputs v_7 = {v_6.prevent_dce, v_5.pos};
+  return v_7;
+}
+
diff --git a/test/tint/builtins/gen/var/textureLoad/e35f72.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/textureLoad/e35f72.wgsl.expected.ir.fxc.hlsl
index fd28383..7302c59 100644
--- a/test/tint/builtins/gen/var/textureLoad/e35f72.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureLoad/e35f72.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,48 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  int4 prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureLoad
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation int4 VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+Texture3D<int4> arg_0 : register(t0, space1);
+int4 textureLoad_e35f72() {
+  int3 arg_1 = (1).xxx;
+  uint arg_2 = 1u;
+  Texture3D<int4> v = arg_0;
+  uint v_1 = arg_2;
+  int3 v_2 = int3(arg_1);
+  int4 res = int4(v.Load(int4(v_2, int(v_1))));
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store4(0u, asuint(textureLoad_e35f72()));
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store4(0u, asuint(textureLoad_e35f72()));
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = textureLoad_e35f72();
+  VertexOutput v_3 = tint_symbol;
+  return v_3;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_4 = vertex_main_inner();
+  VertexOutput v_5 = v_4;
+  VertexOutput v_6 = v_4;
+  vertex_main_outputs v_7 = {v_6.prevent_dce, v_5.pos};
+  return v_7;
+}
+
diff --git a/test/tint/builtins/gen/var/textureLoad/e3b08b.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/textureLoad/e3b08b.wgsl.expected.ir.dxc.hlsl
index fd28383..334e6e8e 100644
--- a/test/tint/builtins/gen/var/textureLoad/e3b08b.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureLoad/e3b08b.wgsl.expected.ir.dxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureLoad
+..\..\src\tint\utils\containers\slice.h:216 internal compiler error: TINT_ASSERT(i < Length())
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/var/textureLoad/e3b08b.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/textureLoad/e3b08b.wgsl.expected.ir.fxc.hlsl
index fd28383..334e6e8e 100644
--- a/test/tint/builtins/gen/var/textureLoad/e3b08b.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureLoad/e3b08b.wgsl.expected.ir.fxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureLoad
+..\..\src\tint\utils\containers\slice.h:216 internal compiler error: TINT_ASSERT(i < Length())
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/var/textureLoad/e3d2cc.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/textureLoad/e3d2cc.wgsl.expected.ir.dxc.hlsl
index fd28383..0a067e2 100644
--- a/test/tint/builtins/gen/var/textureLoad/e3d2cc.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureLoad/e3d2cc.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,48 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  int4 prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureLoad
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation int4 VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+Texture2DMS<int4> arg_0 : register(t0, space1);
+int4 textureLoad_e3d2cc() {
+  int2 arg_1 = (1).xx;
+  int arg_2 = 1;
+  Texture2DMS<int4> v = arg_0;
+  int v_1 = arg_2;
+  int2 v_2 = int2(arg_1);
+  int4 res = int4(v.Load(v_2, int(v_1)));
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store4(0u, asuint(textureLoad_e3d2cc()));
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store4(0u, asuint(textureLoad_e3d2cc()));
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = textureLoad_e3d2cc();
+  VertexOutput v_3 = tint_symbol;
+  return v_3;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_4 = vertex_main_inner();
+  VertexOutput v_5 = v_4;
+  VertexOutput v_6 = v_4;
+  vertex_main_outputs v_7 = {v_6.prevent_dce, v_5.pos};
+  return v_7;
+}
+
diff --git a/test/tint/builtins/gen/var/textureLoad/e3d2cc.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/textureLoad/e3d2cc.wgsl.expected.ir.fxc.hlsl
index fd28383..0a067e2 100644
--- a/test/tint/builtins/gen/var/textureLoad/e3d2cc.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureLoad/e3d2cc.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,48 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  int4 prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureLoad
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation int4 VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+Texture2DMS<int4> arg_0 : register(t0, space1);
+int4 textureLoad_e3d2cc() {
+  int2 arg_1 = (1).xx;
+  int arg_2 = 1;
+  Texture2DMS<int4> v = arg_0;
+  int v_1 = arg_2;
+  int2 v_2 = int2(arg_1);
+  int4 res = int4(v.Load(v_2, int(v_1)));
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store4(0u, asuint(textureLoad_e3d2cc()));
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store4(0u, asuint(textureLoad_e3d2cc()));
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = textureLoad_e3d2cc();
+  VertexOutput v_3 = tint_symbol;
+  return v_3;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_4 = vertex_main_inner();
+  VertexOutput v_5 = v_4;
+  VertexOutput v_6 = v_4;
+  vertex_main_outputs v_7 = {v_6.prevent_dce, v_5.pos};
+  return v_7;
+}
+
diff --git a/test/tint/builtins/gen/var/textureLoad/e4051a.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/textureLoad/e4051a.wgsl.expected.ir.dxc.hlsl
index fd28383..334e6e8e 100644
--- a/test/tint/builtins/gen/var/textureLoad/e4051a.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureLoad/e4051a.wgsl.expected.ir.dxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureLoad
+..\..\src\tint\utils\containers\slice.h:216 internal compiler error: TINT_ASSERT(i < Length())
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/var/textureLoad/e4051a.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/textureLoad/e4051a.wgsl.expected.ir.fxc.hlsl
index fd28383..334e6e8e 100644
--- a/test/tint/builtins/gen/var/textureLoad/e4051a.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureLoad/e4051a.wgsl.expected.ir.fxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureLoad
+..\..\src\tint\utils\containers\slice.h:216 internal compiler error: TINT_ASSERT(i < Length())
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/var/textureLoad/e57e92.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/textureLoad/e57e92.wgsl.expected.ir.dxc.hlsl
index fd28383..334e6e8e 100644
--- a/test/tint/builtins/gen/var/textureLoad/e57e92.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureLoad/e57e92.wgsl.expected.ir.dxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureLoad
+..\..\src\tint\utils\containers\slice.h:216 internal compiler error: TINT_ASSERT(i < Length())
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/var/textureLoad/e57e92.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/textureLoad/e57e92.wgsl.expected.ir.fxc.hlsl
index fd28383..334e6e8e 100644
--- a/test/tint/builtins/gen/var/textureLoad/e57e92.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureLoad/e57e92.wgsl.expected.ir.fxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureLoad
+..\..\src\tint\utils\containers\slice.h:216 internal compiler error: TINT_ASSERT(i < Length())
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/var/textureLoad/e59fdf.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/textureLoad/e59fdf.wgsl.expected.ir.dxc.hlsl
index fd28383..334e6e8e 100644
--- a/test/tint/builtins/gen/var/textureLoad/e59fdf.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureLoad/e59fdf.wgsl.expected.ir.dxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureLoad
+..\..\src\tint\utils\containers\slice.h:216 internal compiler error: TINT_ASSERT(i < Length())
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/var/textureLoad/e59fdf.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/textureLoad/e59fdf.wgsl.expected.ir.fxc.hlsl
index fd28383..334e6e8e 100644
--- a/test/tint/builtins/gen/var/textureLoad/e59fdf.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureLoad/e59fdf.wgsl.expected.ir.fxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureLoad
+..\..\src\tint\utils\containers\slice.h:216 internal compiler error: TINT_ASSERT(i < Length())
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/var/textureLoad/e65916.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/textureLoad/e65916.wgsl.expected.ir.dxc.hlsl
index fd28383..334e6e8e 100644
--- a/test/tint/builtins/gen/var/textureLoad/e65916.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureLoad/e65916.wgsl.expected.ir.dxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureLoad
+..\..\src\tint\utils\containers\slice.h:216 internal compiler error: TINT_ASSERT(i < Length())
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/var/textureLoad/e65916.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/textureLoad/e65916.wgsl.expected.ir.fxc.hlsl
index fd28383..334e6e8e 100644
--- a/test/tint/builtins/gen/var/textureLoad/e65916.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureLoad/e65916.wgsl.expected.ir.fxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureLoad
+..\..\src\tint\utils\containers\slice.h:216 internal compiler error: TINT_ASSERT(i < Length())
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/var/textureLoad/e893d7.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/textureLoad/e893d7.wgsl.expected.ir.dxc.hlsl
index fd28383..334e6e8e 100644
--- a/test/tint/builtins/gen/var/textureLoad/e893d7.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureLoad/e893d7.wgsl.expected.ir.dxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureLoad
+..\..\src\tint\utils\containers\slice.h:216 internal compiler error: TINT_ASSERT(i < Length())
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/var/textureLoad/e893d7.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/textureLoad/e893d7.wgsl.expected.ir.fxc.hlsl
index fd28383..334e6e8e 100644
--- a/test/tint/builtins/gen/var/textureLoad/e893d7.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureLoad/e893d7.wgsl.expected.ir.fxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureLoad
+..\..\src\tint\utils\containers\slice.h:216 internal compiler error: TINT_ASSERT(i < Length())
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/var/textureLoad/e92dd0.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/textureLoad/e92dd0.wgsl.expected.ir.dxc.hlsl
index fd28383..334e6e8e 100644
--- a/test/tint/builtins/gen/var/textureLoad/e92dd0.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureLoad/e92dd0.wgsl.expected.ir.dxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureLoad
+..\..\src\tint\utils\containers\slice.h:216 internal compiler error: TINT_ASSERT(i < Length())
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/var/textureLoad/e92dd0.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/textureLoad/e92dd0.wgsl.expected.ir.fxc.hlsl
index fd28383..334e6e8e 100644
--- a/test/tint/builtins/gen/var/textureLoad/e92dd0.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureLoad/e92dd0.wgsl.expected.ir.fxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureLoad
+..\..\src\tint\utils\containers\slice.h:216 internal compiler error: TINT_ASSERT(i < Length())
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/var/textureLoad/e9eb65.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/textureLoad/e9eb65.wgsl.expected.ir.dxc.hlsl
index fd28383..334e6e8e 100644
--- a/test/tint/builtins/gen/var/textureLoad/e9eb65.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureLoad/e9eb65.wgsl.expected.ir.dxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureLoad
+..\..\src\tint\utils\containers\slice.h:216 internal compiler error: TINT_ASSERT(i < Length())
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/var/textureLoad/e9eb65.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/textureLoad/e9eb65.wgsl.expected.ir.fxc.hlsl
index fd28383..334e6e8e 100644
--- a/test/tint/builtins/gen/var/textureLoad/e9eb65.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureLoad/e9eb65.wgsl.expected.ir.fxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureLoad
+..\..\src\tint\utils\containers\slice.h:216 internal compiler error: TINT_ASSERT(i < Length())
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/var/textureLoad/ea2abd.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/textureLoad/ea2abd.wgsl.expected.ir.dxc.hlsl
index fd28383..334e6e8e 100644
--- a/test/tint/builtins/gen/var/textureLoad/ea2abd.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureLoad/ea2abd.wgsl.expected.ir.dxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureLoad
+..\..\src\tint\utils\containers\slice.h:216 internal compiler error: TINT_ASSERT(i < Length())
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/var/textureLoad/ea2abd.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/textureLoad/ea2abd.wgsl.expected.ir.fxc.hlsl
index fd28383..334e6e8e 100644
--- a/test/tint/builtins/gen/var/textureLoad/ea2abd.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureLoad/ea2abd.wgsl.expected.ir.fxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureLoad
+..\..\src\tint\utils\containers\slice.h:216 internal compiler error: TINT_ASSERT(i < Length())
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/var/textureLoad/eb573b.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/textureLoad/eb573b.wgsl.expected.ir.dxc.hlsl
index fd28383..334e6e8e 100644
--- a/test/tint/builtins/gen/var/textureLoad/eb573b.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureLoad/eb573b.wgsl.expected.ir.dxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureLoad
+..\..\src\tint\utils\containers\slice.h:216 internal compiler error: TINT_ASSERT(i < Length())
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/var/textureLoad/eb573b.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/textureLoad/eb573b.wgsl.expected.ir.fxc.hlsl
index fd28383..334e6e8e 100644
--- a/test/tint/builtins/gen/var/textureLoad/eb573b.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureLoad/eb573b.wgsl.expected.ir.fxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureLoad
+..\..\src\tint\utils\containers\slice.h:216 internal compiler error: TINT_ASSERT(i < Length())
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/var/textureLoad/ebfb92.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/textureLoad/ebfb92.wgsl.expected.ir.dxc.hlsl
index fd28383..7a726b9 100644
--- a/test/tint/builtins/gen/var/textureLoad/ebfb92.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureLoad/ebfb92.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,48 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  uint4 prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureLoad
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation uint4 VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+Texture2D<uint4> arg_0 : register(t0, space1);
+uint4 textureLoad_ebfb92() {
+  int2 arg_1 = (1).xx;
+  uint arg_2 = 1u;
+  Texture2D<uint4> v = arg_0;
+  uint v_1 = arg_2;
+  int2 v_2 = int2(arg_1);
+  uint4 res = uint4(v.Load(int3(v_2, int(v_1))));
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store4(0u, textureLoad_ebfb92());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store4(0u, textureLoad_ebfb92());
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = textureLoad_ebfb92();
+  VertexOutput v_3 = tint_symbol;
+  return v_3;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_4 = vertex_main_inner();
+  VertexOutput v_5 = v_4;
+  VertexOutput v_6 = v_4;
+  vertex_main_outputs v_7 = {v_6.prevent_dce, v_5.pos};
+  return v_7;
+}
+
diff --git a/test/tint/builtins/gen/var/textureLoad/ebfb92.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/textureLoad/ebfb92.wgsl.expected.ir.fxc.hlsl
index fd28383..7a726b9 100644
--- a/test/tint/builtins/gen/var/textureLoad/ebfb92.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureLoad/ebfb92.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,48 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  uint4 prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureLoad
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation uint4 VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+Texture2D<uint4> arg_0 : register(t0, space1);
+uint4 textureLoad_ebfb92() {
+  int2 arg_1 = (1).xx;
+  uint arg_2 = 1u;
+  Texture2D<uint4> v = arg_0;
+  uint v_1 = arg_2;
+  int2 v_2 = int2(arg_1);
+  uint4 res = uint4(v.Load(int3(v_2, int(v_1))));
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store4(0u, textureLoad_ebfb92());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store4(0u, textureLoad_ebfb92());
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = textureLoad_ebfb92();
+  VertexOutput v_3 = tint_symbol;
+  return v_3;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_4 = vertex_main_inner();
+  VertexOutput v_5 = v_4;
+  VertexOutput v_6 = v_4;
+  vertex_main_outputs v_7 = {v_6.prevent_dce, v_5.pos};
+  return v_7;
+}
+
diff --git a/test/tint/builtins/gen/var/textureLoad/ecc823.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/textureLoad/ecc823.wgsl.expected.ir.dxc.hlsl
index fd28383..334e6e8e 100644
--- a/test/tint/builtins/gen/var/textureLoad/ecc823.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureLoad/ecc823.wgsl.expected.ir.dxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureLoad
+..\..\src\tint\utils\containers\slice.h:216 internal compiler error: TINT_ASSERT(i < Length())
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/var/textureLoad/ecc823.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/textureLoad/ecc823.wgsl.expected.ir.fxc.hlsl
index fd28383..334e6e8e 100644
--- a/test/tint/builtins/gen/var/textureLoad/ecc823.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureLoad/ecc823.wgsl.expected.ir.fxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureLoad
+..\..\src\tint\utils\containers\slice.h:216 internal compiler error: TINT_ASSERT(i < Length())
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/var/textureLoad/ed55a8.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/textureLoad/ed55a8.wgsl.expected.ir.dxc.hlsl
index fd28383..334e6e8e 100644
--- a/test/tint/builtins/gen/var/textureLoad/ed55a8.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureLoad/ed55a8.wgsl.expected.ir.dxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureLoad
+..\..\src\tint\utils\containers\slice.h:216 internal compiler error: TINT_ASSERT(i < Length())
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/var/textureLoad/ed55a8.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/textureLoad/ed55a8.wgsl.expected.ir.fxc.hlsl
index fd28383..334e6e8e 100644
--- a/test/tint/builtins/gen/var/textureLoad/ed55a8.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureLoad/ed55a8.wgsl.expected.ir.fxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureLoad
+..\..\src\tint\utils\containers\slice.h:216 internal compiler error: TINT_ASSERT(i < Length())
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/var/textureLoad/ee33c5.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/textureLoad/ee33c5.wgsl.expected.ir.dxc.hlsl
index fd28383..334e6e8e 100644
--- a/test/tint/builtins/gen/var/textureLoad/ee33c5.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureLoad/ee33c5.wgsl.expected.ir.dxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureLoad
+..\..\src\tint\utils\containers\slice.h:216 internal compiler error: TINT_ASSERT(i < Length())
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/var/textureLoad/ee33c5.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/textureLoad/ee33c5.wgsl.expected.ir.fxc.hlsl
index fd28383..334e6e8e 100644
--- a/test/tint/builtins/gen/var/textureLoad/ee33c5.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureLoad/ee33c5.wgsl.expected.ir.fxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureLoad
+..\..\src\tint\utils\containers\slice.h:216 internal compiler error: TINT_ASSERT(i < Length())
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/var/textureLoad/eecf7d.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/textureLoad/eecf7d.wgsl.expected.ir.dxc.hlsl
index fd28383..334e6e8e 100644
--- a/test/tint/builtins/gen/var/textureLoad/eecf7d.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureLoad/eecf7d.wgsl.expected.ir.dxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureLoad
+..\..\src\tint\utils\containers\slice.h:216 internal compiler error: TINT_ASSERT(i < Length())
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/var/textureLoad/eecf7d.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/textureLoad/eecf7d.wgsl.expected.ir.fxc.hlsl
index fd28383..334e6e8e 100644
--- a/test/tint/builtins/gen/var/textureLoad/eecf7d.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureLoad/eecf7d.wgsl.expected.ir.fxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureLoad
+..\..\src\tint\utils\containers\slice.h:216 internal compiler error: TINT_ASSERT(i < Length())
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/var/textureLoad/ef2ec3.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/textureLoad/ef2ec3.wgsl.expected.ir.dxc.hlsl
index fd28383..334e6e8e 100644
--- a/test/tint/builtins/gen/var/textureLoad/ef2ec3.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureLoad/ef2ec3.wgsl.expected.ir.dxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureLoad
+..\..\src\tint\utils\containers\slice.h:216 internal compiler error: TINT_ASSERT(i < Length())
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/var/textureLoad/ef2ec3.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/textureLoad/ef2ec3.wgsl.expected.ir.fxc.hlsl
index fd28383..334e6e8e 100644
--- a/test/tint/builtins/gen/var/textureLoad/ef2ec3.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureLoad/ef2ec3.wgsl.expected.ir.fxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureLoad
+..\..\src\tint\utils\containers\slice.h:216 internal compiler error: TINT_ASSERT(i < Length())
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/var/textureLoad/ef5405.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/textureLoad/ef5405.wgsl.expected.ir.dxc.hlsl
index fd28383..334e6e8e 100644
--- a/test/tint/builtins/gen/var/textureLoad/ef5405.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureLoad/ef5405.wgsl.expected.ir.dxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureLoad
+..\..\src\tint\utils\containers\slice.h:216 internal compiler error: TINT_ASSERT(i < Length())
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/var/textureLoad/ef5405.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/textureLoad/ef5405.wgsl.expected.ir.fxc.hlsl
index fd28383..334e6e8e 100644
--- a/test/tint/builtins/gen/var/textureLoad/ef5405.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureLoad/ef5405.wgsl.expected.ir.fxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureLoad
+..\..\src\tint\utils\containers\slice.h:216 internal compiler error: TINT_ASSERT(i < Length())
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/var/textureLoad/efa787.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/textureLoad/efa787.wgsl.expected.ir.dxc.hlsl
index fd28383..334e6e8e 100644
--- a/test/tint/builtins/gen/var/textureLoad/efa787.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureLoad/efa787.wgsl.expected.ir.dxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureLoad
+..\..\src\tint\utils\containers\slice.h:216 internal compiler error: TINT_ASSERT(i < Length())
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/var/textureLoad/efa787.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/textureLoad/efa787.wgsl.expected.ir.fxc.hlsl
index fd28383..334e6e8e 100644
--- a/test/tint/builtins/gen/var/textureLoad/efa787.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureLoad/efa787.wgsl.expected.ir.fxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureLoad
+..\..\src\tint\utils\containers\slice.h:216 internal compiler error: TINT_ASSERT(i < Length())
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/var/textureLoad/f0514a.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/textureLoad/f0514a.wgsl.expected.ir.dxc.hlsl
index fd28383..334e6e8e 100644
--- a/test/tint/builtins/gen/var/textureLoad/f0514a.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureLoad/f0514a.wgsl.expected.ir.dxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureLoad
+..\..\src\tint\utils\containers\slice.h:216 internal compiler error: TINT_ASSERT(i < Length())
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/var/textureLoad/f0514a.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/textureLoad/f0514a.wgsl.expected.ir.fxc.hlsl
index fd28383..334e6e8e 100644
--- a/test/tint/builtins/gen/var/textureLoad/f0514a.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureLoad/f0514a.wgsl.expected.ir.fxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureLoad
+..\..\src\tint\utils\containers\slice.h:216 internal compiler error: TINT_ASSERT(i < Length())
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/var/textureLoad/f06b69.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/textureLoad/f06b69.wgsl.expected.ir.dxc.hlsl
index fd28383..334e6e8e 100644
--- a/test/tint/builtins/gen/var/textureLoad/f06b69.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureLoad/f06b69.wgsl.expected.ir.dxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureLoad
+..\..\src\tint\utils\containers\slice.h:216 internal compiler error: TINT_ASSERT(i < Length())
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/var/textureLoad/f06b69.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/textureLoad/f06b69.wgsl.expected.ir.fxc.hlsl
index fd28383..334e6e8e 100644
--- a/test/tint/builtins/gen/var/textureLoad/f06b69.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureLoad/f06b69.wgsl.expected.ir.fxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureLoad
+..\..\src\tint\utils\containers\slice.h:216 internal compiler error: TINT_ASSERT(i < Length())
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/var/textureLoad/f0abad.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/textureLoad/f0abad.wgsl.expected.ir.dxc.hlsl
index fd28383..7d45516 100644
--- a/test/tint/builtins/gen/var/textureLoad/f0abad.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureLoad/f0abad.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,48 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  float4 prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureLoad
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation float4 VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+Texture2DMS<float4> arg_0 : register(t0, space1);
+float4 textureLoad_f0abad() {
+  uint2 arg_1 = (1u).xx;
+  int arg_2 = 1;
+  Texture2DMS<float4> v = arg_0;
+  int v_1 = arg_2;
+  int2 v_2 = int2(arg_1);
+  float4 res = float4(v.Load(v_2, int(v_1)));
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store4(0u, asuint(textureLoad_f0abad()));
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store4(0u, asuint(textureLoad_f0abad()));
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = textureLoad_f0abad();
+  VertexOutput v_3 = tint_symbol;
+  return v_3;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_4 = vertex_main_inner();
+  VertexOutput v_5 = v_4;
+  VertexOutput v_6 = v_4;
+  vertex_main_outputs v_7 = {v_6.prevent_dce, v_5.pos};
+  return v_7;
+}
+
diff --git a/test/tint/builtins/gen/var/textureLoad/f0abad.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/textureLoad/f0abad.wgsl.expected.ir.fxc.hlsl
index fd28383..7d45516 100644
--- a/test/tint/builtins/gen/var/textureLoad/f0abad.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureLoad/f0abad.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,48 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  float4 prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureLoad
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation float4 VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+Texture2DMS<float4> arg_0 : register(t0, space1);
+float4 textureLoad_f0abad() {
+  uint2 arg_1 = (1u).xx;
+  int arg_2 = 1;
+  Texture2DMS<float4> v = arg_0;
+  int v_1 = arg_2;
+  int2 v_2 = int2(arg_1);
+  float4 res = float4(v.Load(v_2, int(v_1)));
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store4(0u, asuint(textureLoad_f0abad()));
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store4(0u, asuint(textureLoad_f0abad()));
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = textureLoad_f0abad();
+  VertexOutput v_3 = tint_symbol;
+  return v_3;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_4 = vertex_main_inner();
+  VertexOutput v_5 = v_4;
+  VertexOutput v_6 = v_4;
+  vertex_main_outputs v_7 = {v_6.prevent_dce, v_5.pos};
+  return v_7;
+}
+
diff --git a/test/tint/builtins/gen/var/textureLoad/f1c549.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/textureLoad/f1c549.wgsl.expected.ir.dxc.hlsl
index fd28383..334e6e8e 100644
--- a/test/tint/builtins/gen/var/textureLoad/f1c549.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureLoad/f1c549.wgsl.expected.ir.dxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureLoad
+..\..\src\tint\utils\containers\slice.h:216 internal compiler error: TINT_ASSERT(i < Length())
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/var/textureLoad/f1c549.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/textureLoad/f1c549.wgsl.expected.ir.fxc.hlsl
index fd28383..334e6e8e 100644
--- a/test/tint/builtins/gen/var/textureLoad/f1c549.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureLoad/f1c549.wgsl.expected.ir.fxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureLoad
+..\..\src\tint\utils\containers\slice.h:216 internal compiler error: TINT_ASSERT(i < Length())
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/var/textureLoad/f2a7ff.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/textureLoad/f2a7ff.wgsl.expected.ir.dxc.hlsl
index fd28383..334e6e8e 100644
--- a/test/tint/builtins/gen/var/textureLoad/f2a7ff.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureLoad/f2a7ff.wgsl.expected.ir.dxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureLoad
+..\..\src\tint\utils\containers\slice.h:216 internal compiler error: TINT_ASSERT(i < Length())
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/var/textureLoad/f2a7ff.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/textureLoad/f2a7ff.wgsl.expected.ir.fxc.hlsl
index fd28383..334e6e8e 100644
--- a/test/tint/builtins/gen/var/textureLoad/f2a7ff.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureLoad/f2a7ff.wgsl.expected.ir.fxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureLoad
+..\..\src\tint\utils\containers\slice.h:216 internal compiler error: TINT_ASSERT(i < Length())
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/var/textureLoad/f2bdd4.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/textureLoad/f2bdd4.wgsl.expected.ir.dxc.hlsl
index fd28383..334e6e8e 100644
--- a/test/tint/builtins/gen/var/textureLoad/f2bdd4.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureLoad/f2bdd4.wgsl.expected.ir.dxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureLoad
+..\..\src\tint\utils\containers\slice.h:216 internal compiler error: TINT_ASSERT(i < Length())
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/var/textureLoad/f2bdd4.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/textureLoad/f2bdd4.wgsl.expected.ir.fxc.hlsl
index fd28383..334e6e8e 100644
--- a/test/tint/builtins/gen/var/textureLoad/f2bdd4.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureLoad/f2bdd4.wgsl.expected.ir.fxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureLoad
+..\..\src\tint\utils\containers\slice.h:216 internal compiler error: TINT_ASSERT(i < Length())
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/var/textureLoad/f2c311.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/textureLoad/f2c311.wgsl.expected.ir.dxc.hlsl
index fd28383..334e6e8e 100644
--- a/test/tint/builtins/gen/var/textureLoad/f2c311.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureLoad/f2c311.wgsl.expected.ir.dxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureLoad
+..\..\src\tint\utils\containers\slice.h:216 internal compiler error: TINT_ASSERT(i < Length())
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/var/textureLoad/f2c311.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/textureLoad/f2c311.wgsl.expected.ir.fxc.hlsl
index fd28383..334e6e8e 100644
--- a/test/tint/builtins/gen/var/textureLoad/f2c311.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureLoad/f2c311.wgsl.expected.ir.fxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureLoad
+..\..\src\tint\utils\containers\slice.h:216 internal compiler error: TINT_ASSERT(i < Length())
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/var/textureLoad/f348d9.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/textureLoad/f348d9.wgsl.expected.ir.dxc.hlsl
index fd28383..f6c9706 100644
--- a/test/tint/builtins/gen/var/textureLoad/f348d9.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureLoad/f348d9.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,51 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  float4 prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureLoad
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation float4 VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+Texture2DArray<float4> arg_0 : register(t0, space1);
+float4 textureLoad_f348d9() {
+  uint2 arg_1 = (1u).xx;
+  uint arg_2 = 1u;
+  int arg_3 = 1;
+  Texture2DArray<float4> v = arg_0;
+  uint v_1 = arg_2;
+  int v_2 = arg_3;
+  int2 v_3 = int2(arg_1);
+  int v_4 = int(v_1);
+  float4 res = float4(v.Load(int4(v_3, v_4, int(v_2))));
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store4(0u, asuint(textureLoad_f348d9()));
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store4(0u, asuint(textureLoad_f348d9()));
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = textureLoad_f348d9();
+  VertexOutput v_5 = tint_symbol;
+  return v_5;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_6 = vertex_main_inner();
+  VertexOutput v_7 = v_6;
+  VertexOutput v_8 = v_6;
+  vertex_main_outputs v_9 = {v_8.prevent_dce, v_7.pos};
+  return v_9;
+}
+
diff --git a/test/tint/builtins/gen/var/textureLoad/f348d9.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/textureLoad/f348d9.wgsl.expected.ir.fxc.hlsl
index fd28383..f6c9706 100644
--- a/test/tint/builtins/gen/var/textureLoad/f348d9.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureLoad/f348d9.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,51 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  float4 prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureLoad
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation float4 VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+Texture2DArray<float4> arg_0 : register(t0, space1);
+float4 textureLoad_f348d9() {
+  uint2 arg_1 = (1u).xx;
+  uint arg_2 = 1u;
+  int arg_3 = 1;
+  Texture2DArray<float4> v = arg_0;
+  uint v_1 = arg_2;
+  int v_2 = arg_3;
+  int2 v_3 = int2(arg_1);
+  int v_4 = int(v_1);
+  float4 res = float4(v.Load(int4(v_3, v_4, int(v_2))));
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store4(0u, asuint(textureLoad_f348d9()));
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store4(0u, asuint(textureLoad_f348d9()));
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = textureLoad_f348d9();
+  VertexOutput v_5 = tint_symbol;
+  return v_5;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_6 = vertex_main_inner();
+  VertexOutput v_7 = v_6;
+  VertexOutput v_8 = v_6;
+  vertex_main_outputs v_9 = {v_8.prevent_dce, v_7.pos};
+  return v_9;
+}
+
diff --git a/test/tint/builtins/gen/var/textureLoad/f35ac7.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/textureLoad/f35ac7.wgsl.expected.ir.dxc.hlsl
index fd28383..334e6e8e 100644
--- a/test/tint/builtins/gen/var/textureLoad/f35ac7.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureLoad/f35ac7.wgsl.expected.ir.dxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureLoad
+..\..\src\tint\utils\containers\slice.h:216 internal compiler error: TINT_ASSERT(i < Length())
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/var/textureLoad/f35ac7.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/textureLoad/f35ac7.wgsl.expected.ir.fxc.hlsl
index fd28383..334e6e8e 100644
--- a/test/tint/builtins/gen/var/textureLoad/f35ac7.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureLoad/f35ac7.wgsl.expected.ir.fxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureLoad
+..\..\src\tint\utils\containers\slice.h:216 internal compiler error: TINT_ASSERT(i < Length())
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/var/textureLoad/f379e2.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/textureLoad/f379e2.wgsl.expected.ir.dxc.hlsl
index fd28383..334e6e8e 100644
--- a/test/tint/builtins/gen/var/textureLoad/f379e2.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureLoad/f379e2.wgsl.expected.ir.dxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureLoad
+..\..\src\tint\utils\containers\slice.h:216 internal compiler error: TINT_ASSERT(i < Length())
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/var/textureLoad/f379e2.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/textureLoad/f379e2.wgsl.expected.ir.fxc.hlsl
index fd28383..334e6e8e 100644
--- a/test/tint/builtins/gen/var/textureLoad/f379e2.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureLoad/f379e2.wgsl.expected.ir.fxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureLoad
+..\..\src\tint\utils\containers\slice.h:216 internal compiler error: TINT_ASSERT(i < Length())
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/var/textureLoad/f56e6f.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/textureLoad/f56e6f.wgsl.expected.ir.dxc.hlsl
index fd28383..334e6e8e 100644
--- a/test/tint/builtins/gen/var/textureLoad/f56e6f.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureLoad/f56e6f.wgsl.expected.ir.dxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureLoad
+..\..\src\tint\utils\containers\slice.h:216 internal compiler error: TINT_ASSERT(i < Length())
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/var/textureLoad/f56e6f.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/textureLoad/f56e6f.wgsl.expected.ir.fxc.hlsl
index fd28383..334e6e8e 100644
--- a/test/tint/builtins/gen/var/textureLoad/f56e6f.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureLoad/f56e6f.wgsl.expected.ir.fxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureLoad
+..\..\src\tint\utils\containers\slice.h:216 internal compiler error: TINT_ASSERT(i < Length())
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/var/textureLoad/f5aee2.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/textureLoad/f5aee2.wgsl.expected.ir.dxc.hlsl
index fd28383..334e6e8e 100644
--- a/test/tint/builtins/gen/var/textureLoad/f5aee2.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureLoad/f5aee2.wgsl.expected.ir.dxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureLoad
+..\..\src\tint\utils\containers\slice.h:216 internal compiler error: TINT_ASSERT(i < Length())
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/var/textureLoad/f5aee2.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/textureLoad/f5aee2.wgsl.expected.ir.fxc.hlsl
index fd28383..334e6e8e 100644
--- a/test/tint/builtins/gen/var/textureLoad/f5aee2.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureLoad/f5aee2.wgsl.expected.ir.fxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureLoad
+..\..\src\tint\utils\containers\slice.h:216 internal compiler error: TINT_ASSERT(i < Length())
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/var/textureLoad/f5fbc6.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/textureLoad/f5fbc6.wgsl.expected.ir.dxc.hlsl
index fd28383..334e6e8e 100644
--- a/test/tint/builtins/gen/var/textureLoad/f5fbc6.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureLoad/f5fbc6.wgsl.expected.ir.dxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureLoad
+..\..\src\tint\utils\containers\slice.h:216 internal compiler error: TINT_ASSERT(i < Length())
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/var/textureLoad/f5fbc6.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/textureLoad/f5fbc6.wgsl.expected.ir.fxc.hlsl
index fd28383..334e6e8e 100644
--- a/test/tint/builtins/gen/var/textureLoad/f5fbc6.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureLoad/f5fbc6.wgsl.expected.ir.fxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureLoad
+..\..\src\tint\utils\containers\slice.h:216 internal compiler error: TINT_ASSERT(i < Length())
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/var/textureLoad/f74bd8.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/textureLoad/f74bd8.wgsl.expected.ir.dxc.hlsl
index fd28383..334e6e8e 100644
--- a/test/tint/builtins/gen/var/textureLoad/f74bd8.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureLoad/f74bd8.wgsl.expected.ir.dxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureLoad
+..\..\src\tint\utils\containers\slice.h:216 internal compiler error: TINT_ASSERT(i < Length())
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/var/textureLoad/f74bd8.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/textureLoad/f74bd8.wgsl.expected.ir.fxc.hlsl
index fd28383..334e6e8e 100644
--- a/test/tint/builtins/gen/var/textureLoad/f74bd8.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureLoad/f74bd8.wgsl.expected.ir.fxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureLoad
+..\..\src\tint\utils\containers\slice.h:216 internal compiler error: TINT_ASSERT(i < Length())
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/var/textureLoad/f7f3bc.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/textureLoad/f7f3bc.wgsl.expected.ir.dxc.hlsl
index fd28383..334e6e8e 100644
--- a/test/tint/builtins/gen/var/textureLoad/f7f3bc.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureLoad/f7f3bc.wgsl.expected.ir.dxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureLoad
+..\..\src\tint\utils\containers\slice.h:216 internal compiler error: TINT_ASSERT(i < Length())
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/var/textureLoad/f7f3bc.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/textureLoad/f7f3bc.wgsl.expected.ir.fxc.hlsl
index fd28383..334e6e8e 100644
--- a/test/tint/builtins/gen/var/textureLoad/f7f3bc.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureLoad/f7f3bc.wgsl.expected.ir.fxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureLoad
+..\..\src\tint\utils\containers\slice.h:216 internal compiler error: TINT_ASSERT(i < Length())
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/var/textureLoad/f7f936.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/textureLoad/f7f936.wgsl.expected.ir.dxc.hlsl
index fd28383..334e6e8e 100644
--- a/test/tint/builtins/gen/var/textureLoad/f7f936.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureLoad/f7f936.wgsl.expected.ir.dxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureLoad
+..\..\src\tint\utils\containers\slice.h:216 internal compiler error: TINT_ASSERT(i < Length())
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/var/textureLoad/f7f936.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/textureLoad/f7f936.wgsl.expected.ir.fxc.hlsl
index fd28383..334e6e8e 100644
--- a/test/tint/builtins/gen/var/textureLoad/f7f936.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureLoad/f7f936.wgsl.expected.ir.fxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureLoad
+..\..\src\tint\utils\containers\slice.h:216 internal compiler error: TINT_ASSERT(i < Length())
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/var/textureLoad/f81792.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/textureLoad/f81792.wgsl.expected.ir.dxc.hlsl
index fd28383..334e6e8e 100644
--- a/test/tint/builtins/gen/var/textureLoad/f81792.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureLoad/f81792.wgsl.expected.ir.dxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureLoad
+..\..\src\tint\utils\containers\slice.h:216 internal compiler error: TINT_ASSERT(i < Length())
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/var/textureLoad/f81792.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/textureLoad/f81792.wgsl.expected.ir.fxc.hlsl
index fd28383..334e6e8e 100644
--- a/test/tint/builtins/gen/var/textureLoad/f81792.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureLoad/f81792.wgsl.expected.ir.fxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureLoad
+..\..\src\tint\utils\containers\slice.h:216 internal compiler error: TINT_ASSERT(i < Length())
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/var/textureLoad/f82eb2.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/textureLoad/f82eb2.wgsl.expected.ir.dxc.hlsl
index fd28383..334e6e8e 100644
--- a/test/tint/builtins/gen/var/textureLoad/f82eb2.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureLoad/f82eb2.wgsl.expected.ir.dxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureLoad
+..\..\src\tint\utils\containers\slice.h:216 internal compiler error: TINT_ASSERT(i < Length())
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/var/textureLoad/f82eb2.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/textureLoad/f82eb2.wgsl.expected.ir.fxc.hlsl
index fd28383..334e6e8e 100644
--- a/test/tint/builtins/gen/var/textureLoad/f82eb2.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureLoad/f82eb2.wgsl.expected.ir.fxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureLoad
+..\..\src\tint\utils\containers\slice.h:216 internal compiler error: TINT_ASSERT(i < Length())
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/var/textureLoad/f85291.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/textureLoad/f85291.wgsl.expected.ir.dxc.hlsl
index fd28383..280d456 100644
--- a/test/tint/builtins/gen/var/textureLoad/f85291.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureLoad/f85291.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,48 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  int4 prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureLoad
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation int4 VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+Texture2D<int4> arg_0 : register(t0, space1);
+int4 textureLoad_f85291() {
+  int2 arg_1 = (1).xx;
+  uint arg_2 = 1u;
+  Texture2D<int4> v = arg_0;
+  uint v_1 = arg_2;
+  int2 v_2 = int2(arg_1);
+  int4 res = int4(v.Load(int3(v_2, int(v_1))));
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store4(0u, asuint(textureLoad_f85291()));
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store4(0u, asuint(textureLoad_f85291()));
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = textureLoad_f85291();
+  VertexOutput v_3 = tint_symbol;
+  return v_3;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_4 = vertex_main_inner();
+  VertexOutput v_5 = v_4;
+  VertexOutput v_6 = v_4;
+  vertex_main_outputs v_7 = {v_6.prevent_dce, v_5.pos};
+  return v_7;
+}
+
diff --git a/test/tint/builtins/gen/var/textureLoad/f85291.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/textureLoad/f85291.wgsl.expected.ir.fxc.hlsl
index fd28383..280d456 100644
--- a/test/tint/builtins/gen/var/textureLoad/f85291.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureLoad/f85291.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,48 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  int4 prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureLoad
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation int4 VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+Texture2D<int4> arg_0 : register(t0, space1);
+int4 textureLoad_f85291() {
+  int2 arg_1 = (1).xx;
+  uint arg_2 = 1u;
+  Texture2D<int4> v = arg_0;
+  uint v_1 = arg_2;
+  int2 v_2 = int2(arg_1);
+  int4 res = int4(v.Load(int3(v_2, int(v_1))));
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store4(0u, asuint(textureLoad_f85291()));
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store4(0u, asuint(textureLoad_f85291()));
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = textureLoad_f85291();
+  VertexOutput v_3 = tint_symbol;
+  return v_3;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_4 = vertex_main_inner();
+  VertexOutput v_5 = v_4;
+  VertexOutput v_6 = v_4;
+  vertex_main_outputs v_7 = {v_6.prevent_dce, v_5.pos};
+  return v_7;
+}
+
diff --git a/test/tint/builtins/gen/var/textureLoad/f8a2e8.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/textureLoad/f8a2e8.wgsl.expected.ir.dxc.hlsl
index fd28383..334e6e8e 100644
--- a/test/tint/builtins/gen/var/textureLoad/f8a2e8.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureLoad/f8a2e8.wgsl.expected.ir.dxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureLoad
+..\..\src\tint\utils\containers\slice.h:216 internal compiler error: TINT_ASSERT(i < Length())
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/var/textureLoad/f8a2e8.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/textureLoad/f8a2e8.wgsl.expected.ir.fxc.hlsl
index fd28383..334e6e8e 100644
--- a/test/tint/builtins/gen/var/textureLoad/f8a2e8.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureLoad/f8a2e8.wgsl.expected.ir.fxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureLoad
+..\..\src\tint\utils\containers\slice.h:216 internal compiler error: TINT_ASSERT(i < Length())
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/var/textureLoad/f92c2d.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/textureLoad/f92c2d.wgsl.expected.ir.dxc.hlsl
index fd28383..334e6e8e 100644
--- a/test/tint/builtins/gen/var/textureLoad/f92c2d.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureLoad/f92c2d.wgsl.expected.ir.dxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureLoad
+..\..\src\tint\utils\containers\slice.h:216 internal compiler error: TINT_ASSERT(i < Length())
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/var/textureLoad/f92c2d.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/textureLoad/f92c2d.wgsl.expected.ir.fxc.hlsl
index fd28383..334e6e8e 100644
--- a/test/tint/builtins/gen/var/textureLoad/f92c2d.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureLoad/f92c2d.wgsl.expected.ir.fxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureLoad
+..\..\src\tint\utils\containers\slice.h:216 internal compiler error: TINT_ASSERT(i < Length())
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/var/textureLoad/f9eaaf.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/textureLoad/f9eaaf.wgsl.expected.ir.dxc.hlsl
index fd28383..334e6e8e 100644
--- a/test/tint/builtins/gen/var/textureLoad/f9eaaf.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureLoad/f9eaaf.wgsl.expected.ir.dxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureLoad
+..\..\src\tint\utils\containers\slice.h:216 internal compiler error: TINT_ASSERT(i < Length())
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/var/textureLoad/f9eaaf.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/textureLoad/f9eaaf.wgsl.expected.ir.fxc.hlsl
index fd28383..334e6e8e 100644
--- a/test/tint/builtins/gen/var/textureLoad/f9eaaf.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureLoad/f9eaaf.wgsl.expected.ir.fxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureLoad
+..\..\src\tint\utils\containers\slice.h:216 internal compiler error: TINT_ASSERT(i < Length())
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/var/textureLoad/fc47ff.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/textureLoad/fc47ff.wgsl.expected.ir.dxc.hlsl
index fd28383..334e6e8e 100644
--- a/test/tint/builtins/gen/var/textureLoad/fc47ff.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureLoad/fc47ff.wgsl.expected.ir.dxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureLoad
+..\..\src\tint\utils\containers\slice.h:216 internal compiler error: TINT_ASSERT(i < Length())
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/var/textureLoad/fc47ff.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/textureLoad/fc47ff.wgsl.expected.ir.fxc.hlsl
index fd28383..334e6e8e 100644
--- a/test/tint/builtins/gen/var/textureLoad/fc47ff.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureLoad/fc47ff.wgsl.expected.ir.fxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureLoad
+..\..\src\tint\utils\containers\slice.h:216 internal compiler error: TINT_ASSERT(i < Length())
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/var/textureLoad/fc6d36.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/textureLoad/fc6d36.wgsl.expected.ir.dxc.hlsl
index fd28383..334e6e8e 100644
--- a/test/tint/builtins/gen/var/textureLoad/fc6d36.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureLoad/fc6d36.wgsl.expected.ir.dxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureLoad
+..\..\src\tint\utils\containers\slice.h:216 internal compiler error: TINT_ASSERT(i < Length())
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/var/textureLoad/fc6d36.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/textureLoad/fc6d36.wgsl.expected.ir.fxc.hlsl
index fd28383..334e6e8e 100644
--- a/test/tint/builtins/gen/var/textureLoad/fc6d36.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureLoad/fc6d36.wgsl.expected.ir.fxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureLoad
+..\..\src\tint\utils\containers\slice.h:216 internal compiler error: TINT_ASSERT(i < Length())
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/var/textureLoad/fcd23d.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/textureLoad/fcd23d.wgsl.expected.ir.dxc.hlsl
index fd28383..25d742f 100644
--- a/test/tint/builtins/gen/var/textureLoad/fcd23d.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureLoad/fcd23d.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,48 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  float prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureLoad
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation float VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+Texture2DMS<float4> arg_0 : register(t0, space1);
+float textureLoad_fcd23d() {
+  uint2 arg_1 = (1u).xx;
+  int arg_2 = 1;
+  Texture2DMS<float4> v = arg_0;
+  int v_1 = arg_2;
+  int2 v_2 = int2(arg_1);
+  float res = v.Load(v_2, int(v_1)).x;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store(0u, asuint(textureLoad_fcd23d()));
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store(0u, asuint(textureLoad_fcd23d()));
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = textureLoad_fcd23d();
+  VertexOutput v_3 = tint_symbol;
+  return v_3;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_4 = vertex_main_inner();
+  VertexOutput v_5 = v_4;
+  VertexOutput v_6 = v_4;
+  vertex_main_outputs v_7 = {v_6.prevent_dce, v_5.pos};
+  return v_7;
+}
+
diff --git a/test/tint/builtins/gen/var/textureLoad/fcd23d.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/textureLoad/fcd23d.wgsl.expected.ir.fxc.hlsl
index fd28383..25d742f 100644
--- a/test/tint/builtins/gen/var/textureLoad/fcd23d.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureLoad/fcd23d.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,48 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  float prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureLoad
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation float VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+Texture2DMS<float4> arg_0 : register(t0, space1);
+float textureLoad_fcd23d() {
+  uint2 arg_1 = (1u).xx;
+  int arg_2 = 1;
+  Texture2DMS<float4> v = arg_0;
+  int v_1 = arg_2;
+  int2 v_2 = int2(arg_1);
+  float res = v.Load(v_2, int(v_1)).x;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store(0u, asuint(textureLoad_fcd23d()));
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store(0u, asuint(textureLoad_fcd23d()));
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = textureLoad_fcd23d();
+  VertexOutput v_3 = tint_symbol;
+  return v_3;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_4 = vertex_main_inner();
+  VertexOutput v_5 = v_4;
+  VertexOutput v_6 = v_4;
+  vertex_main_outputs v_7 = {v_6.prevent_dce, v_5.pos};
+  return v_7;
+}
+
diff --git a/test/tint/builtins/gen/var/textureLoad/fd6442.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/textureLoad/fd6442.wgsl.expected.ir.dxc.hlsl
index fd28383..334e6e8e 100644
--- a/test/tint/builtins/gen/var/textureLoad/fd6442.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureLoad/fd6442.wgsl.expected.ir.dxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureLoad
+..\..\src\tint\utils\containers\slice.h:216 internal compiler error: TINT_ASSERT(i < Length())
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/var/textureLoad/fd6442.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/textureLoad/fd6442.wgsl.expected.ir.fxc.hlsl
index fd28383..334e6e8e 100644
--- a/test/tint/builtins/gen/var/textureLoad/fd6442.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureLoad/fd6442.wgsl.expected.ir.fxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureLoad
+..\..\src\tint\utils\containers\slice.h:216 internal compiler error: TINT_ASSERT(i < Length())
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/var/textureLoad/fd9606.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/textureLoad/fd9606.wgsl.expected.ir.dxc.hlsl
index fd28383..334e6e8e 100644
--- a/test/tint/builtins/gen/var/textureLoad/fd9606.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureLoad/fd9606.wgsl.expected.ir.dxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureLoad
+..\..\src\tint\utils\containers\slice.h:216 internal compiler error: TINT_ASSERT(i < Length())
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/var/textureLoad/fd9606.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/textureLoad/fd9606.wgsl.expected.ir.fxc.hlsl
index fd28383..334e6e8e 100644
--- a/test/tint/builtins/gen/var/textureLoad/fd9606.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureLoad/fd9606.wgsl.expected.ir.fxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureLoad
+..\..\src\tint\utils\containers\slice.h:216 internal compiler error: TINT_ASSERT(i < Length())
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/var/textureLoad/fdebd0.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/textureLoad/fdebd0.wgsl.expected.ir.dxc.hlsl
index fd28383..334e6e8e 100644
--- a/test/tint/builtins/gen/var/textureLoad/fdebd0.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureLoad/fdebd0.wgsl.expected.ir.dxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureLoad
+..\..\src\tint\utils\containers\slice.h:216 internal compiler error: TINT_ASSERT(i < Length())
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/var/textureLoad/fdebd0.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/textureLoad/fdebd0.wgsl.expected.ir.fxc.hlsl
index fd28383..334e6e8e 100644
--- a/test/tint/builtins/gen/var/textureLoad/fdebd0.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureLoad/fdebd0.wgsl.expected.ir.fxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureLoad
+..\..\src\tint\utils\containers\slice.h:216 internal compiler error: TINT_ASSERT(i < Length())
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/var/textureLoad/fe0565.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/textureLoad/fe0565.wgsl.expected.ir.dxc.hlsl
index fd28383..5e8b85f 100644
--- a/test/tint/builtins/gen/var/textureLoad/fe0565.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureLoad/fe0565.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,48 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  uint4 prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureLoad
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation uint4 VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+Texture2DMS<uint4> arg_0 : register(t0, space1);
+uint4 textureLoad_fe0565() {
+  uint2 arg_1 = (1u).xx;
+  int arg_2 = 1;
+  Texture2DMS<uint4> v = arg_0;
+  int v_1 = arg_2;
+  int2 v_2 = int2(arg_1);
+  uint4 res = uint4(v.Load(v_2, int(v_1)));
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store4(0u, textureLoad_fe0565());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store4(0u, textureLoad_fe0565());
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = textureLoad_fe0565();
+  VertexOutput v_3 = tint_symbol;
+  return v_3;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_4 = vertex_main_inner();
+  VertexOutput v_5 = v_4;
+  VertexOutput v_6 = v_4;
+  vertex_main_outputs v_7 = {v_6.prevent_dce, v_5.pos};
+  return v_7;
+}
+
diff --git a/test/tint/builtins/gen/var/textureLoad/fe0565.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/textureLoad/fe0565.wgsl.expected.ir.fxc.hlsl
index fd28383..5e8b85f 100644
--- a/test/tint/builtins/gen/var/textureLoad/fe0565.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureLoad/fe0565.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,48 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  uint4 prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureLoad
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation uint4 VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+Texture2DMS<uint4> arg_0 : register(t0, space1);
+uint4 textureLoad_fe0565() {
+  uint2 arg_1 = (1u).xx;
+  int arg_2 = 1;
+  Texture2DMS<uint4> v = arg_0;
+  int v_1 = arg_2;
+  int2 v_2 = int2(arg_1);
+  uint4 res = uint4(v.Load(v_2, int(v_1)));
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store4(0u, textureLoad_fe0565());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store4(0u, textureLoad_fe0565());
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = textureLoad_fe0565();
+  VertexOutput v_3 = tint_symbol;
+  return v_3;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_4 = vertex_main_inner();
+  VertexOutput v_5 = v_4;
+  VertexOutput v_6 = v_4;
+  vertex_main_outputs v_7 = {v_6.prevent_dce, v_5.pos};
+  return v_7;
+}
+
diff --git a/test/tint/builtins/gen/var/textureLoad/fe222a.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/textureLoad/fe222a.wgsl.expected.ir.dxc.hlsl
index fd28383..334e6e8e 100644
--- a/test/tint/builtins/gen/var/textureLoad/fe222a.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureLoad/fe222a.wgsl.expected.ir.dxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureLoad
+..\..\src\tint\utils\containers\slice.h:216 internal compiler error: TINT_ASSERT(i < Length())
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/var/textureLoad/fe222a.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/textureLoad/fe222a.wgsl.expected.ir.fxc.hlsl
index fd28383..334e6e8e 100644
--- a/test/tint/builtins/gen/var/textureLoad/fe222a.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureLoad/fe222a.wgsl.expected.ir.fxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureLoad
+..\..\src\tint\utils\containers\slice.h:216 internal compiler error: TINT_ASSERT(i < Length())
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/var/textureLoad/fe2c1b.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/textureLoad/fe2c1b.wgsl.expected.ir.dxc.hlsl
index fd28383..334e6e8e 100644
--- a/test/tint/builtins/gen/var/textureLoad/fe2c1b.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureLoad/fe2c1b.wgsl.expected.ir.dxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureLoad
+..\..\src\tint\utils\containers\slice.h:216 internal compiler error: TINT_ASSERT(i < Length())
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/var/textureLoad/fe2c1b.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/textureLoad/fe2c1b.wgsl.expected.ir.fxc.hlsl
index fd28383..334e6e8e 100644
--- a/test/tint/builtins/gen/var/textureLoad/fe2c1b.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureLoad/fe2c1b.wgsl.expected.ir.fxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureLoad
+..\..\src\tint\utils\containers\slice.h:216 internal compiler error: TINT_ASSERT(i < Length())
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/var/textureLoad/feab99.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/textureLoad/feab99.wgsl.expected.ir.dxc.hlsl
index fd28383..334e6e8e 100644
--- a/test/tint/builtins/gen/var/textureLoad/feab99.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureLoad/feab99.wgsl.expected.ir.dxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureLoad
+..\..\src\tint\utils\containers\slice.h:216 internal compiler error: TINT_ASSERT(i < Length())
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/var/textureLoad/feab99.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/textureLoad/feab99.wgsl.expected.ir.fxc.hlsl
index fd28383..334e6e8e 100644
--- a/test/tint/builtins/gen/var/textureLoad/feab99.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureLoad/feab99.wgsl.expected.ir.fxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureLoad
+..\..\src\tint\utils\containers\slice.h:216 internal compiler error: TINT_ASSERT(i < Length())
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/var/textureLoad/ff1119.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/textureLoad/ff1119.wgsl.expected.ir.dxc.hlsl
index fd28383..e493b41 100644
--- a/test/tint/builtins/gen/var/textureLoad/ff1119.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureLoad/ff1119.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,51 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  float prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureLoad
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation float VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+Texture2DArray arg_0 : register(t0, space1);
+float textureLoad_ff1119() {
+  int2 arg_1 = (1).xx;
+  int arg_2 = 1;
+  uint arg_3 = 1u;
+  Texture2DArray v = arg_0;
+  int v_1 = arg_2;
+  uint v_2 = arg_3;
+  int2 v_3 = int2(arg_1);
+  int v_4 = int(v_1);
+  float res = v.Load(int4(v_3, v_4, int(v_2))).x;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store(0u, asuint(textureLoad_ff1119()));
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store(0u, asuint(textureLoad_ff1119()));
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = textureLoad_ff1119();
+  VertexOutput v_5 = tint_symbol;
+  return v_5;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_6 = vertex_main_inner();
+  VertexOutput v_7 = v_6;
+  VertexOutput v_8 = v_6;
+  vertex_main_outputs v_9 = {v_8.prevent_dce, v_7.pos};
+  return v_9;
+}
+
diff --git a/test/tint/builtins/gen/var/textureLoad/ff1119.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/textureLoad/ff1119.wgsl.expected.ir.fxc.hlsl
index fd28383..e493b41 100644
--- a/test/tint/builtins/gen/var/textureLoad/ff1119.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureLoad/ff1119.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,51 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  float prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureLoad
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation float VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+Texture2DArray arg_0 : register(t0, space1);
+float textureLoad_ff1119() {
+  int2 arg_1 = (1).xx;
+  int arg_2 = 1;
+  uint arg_3 = 1u;
+  Texture2DArray v = arg_0;
+  int v_1 = arg_2;
+  uint v_2 = arg_3;
+  int2 v_3 = int2(arg_1);
+  int v_4 = int(v_1);
+  float res = v.Load(int4(v_3, v_4, int(v_2))).x;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store(0u, asuint(textureLoad_ff1119()));
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store(0u, asuint(textureLoad_ff1119()));
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = textureLoad_ff1119();
+  VertexOutput v_5 = tint_symbol;
+  return v_5;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_6 = vertex_main_inner();
+  VertexOutput v_7 = v_6;
+  VertexOutput v_8 = v_6;
+  vertex_main_outputs v_9 = {v_8.prevent_dce, v_7.pos};
+  return v_9;
+}
+
diff --git a/test/tint/builtins/gen/var/textureNumLayers/014a3b.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/textureNumLayers/014a3b.wgsl.expected.ir.dxc.hlsl
index c3bb13b..2356182 100644
--- a/test/tint/builtins/gen/var/textureNumLayers/014a3b.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureNumLayers/014a3b.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,19 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureNumLayers
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWByteAddressBuffer prevent_dce : register(u0);
+RWTexture2DArray<uint4> arg_0 : register(u0, space1);
+uint textureNumLayers_014a3b() {
+  uint3 v = (0u).xxx;
+  arg_0.GetDimensions(v[0u], v[1u], v[2u]);
+  uint res = v.z;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store(0u, textureNumLayers_014a3b());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store(0u, textureNumLayers_014a3b());
+}
+
diff --git a/test/tint/builtins/gen/var/textureNumLayers/014a3b.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/textureNumLayers/014a3b.wgsl.expected.ir.fxc.hlsl
index c3bb13b..2356182 100644
--- a/test/tint/builtins/gen/var/textureNumLayers/014a3b.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureNumLayers/014a3b.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,19 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureNumLayers
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWByteAddressBuffer prevent_dce : register(u0);
+RWTexture2DArray<uint4> arg_0 : register(u0, space1);
+uint textureNumLayers_014a3b() {
+  uint3 v = (0u).xxx;
+  arg_0.GetDimensions(v[0u], v[1u], v[2u]);
+  uint res = v.z;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store(0u, textureNumLayers_014a3b());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store(0u, textureNumLayers_014a3b());
+}
+
diff --git a/test/tint/builtins/gen/var/textureNumLayers/071ebc.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/textureNumLayers/071ebc.wgsl.expected.ir.dxc.hlsl
index c3bb13b..fd30d92 100644
--- a/test/tint/builtins/gen/var/textureNumLayers/071ebc.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureNumLayers/071ebc.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,19 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureNumLayers
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWByteAddressBuffer prevent_dce : register(u0);
+RWTexture2DArray<uint4> arg_0 : register(u0, space1);
+uint textureNumLayers_071ebc() {
+  uint3 v = (0u).xxx;
+  arg_0.GetDimensions(v[0u], v[1u], v[2u]);
+  uint res = v.z;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store(0u, textureNumLayers_071ebc());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store(0u, textureNumLayers_071ebc());
+}
+
diff --git a/test/tint/builtins/gen/var/textureNumLayers/071ebc.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/textureNumLayers/071ebc.wgsl.expected.ir.fxc.hlsl
index c3bb13b..fd30d92 100644
--- a/test/tint/builtins/gen/var/textureNumLayers/071ebc.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureNumLayers/071ebc.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,19 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureNumLayers
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWByteAddressBuffer prevent_dce : register(u0);
+RWTexture2DArray<uint4> arg_0 : register(u0, space1);
+uint textureNumLayers_071ebc() {
+  uint3 v = (0u).xxx;
+  arg_0.GetDimensions(v[0u], v[1u], v[2u]);
+  uint res = v.z;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store(0u, textureNumLayers_071ebc());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store(0u, textureNumLayers_071ebc());
+}
+
diff --git a/test/tint/builtins/gen/var/textureNumLayers/0856ae.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/textureNumLayers/0856ae.wgsl.expected.ir.dxc.hlsl
index c3bb13b..35f29e8 100644
--- a/test/tint/builtins/gen/var/textureNumLayers/0856ae.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureNumLayers/0856ae.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,19 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureNumLayers
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWByteAddressBuffer prevent_dce : register(u0);
+RWTexture2DArray<float4> arg_0 : register(u0, space1);
+uint textureNumLayers_0856ae() {
+  uint3 v = (0u).xxx;
+  arg_0.GetDimensions(v[0u], v[1u], v[2u]);
+  uint res = v.z;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store(0u, textureNumLayers_0856ae());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store(0u, textureNumLayers_0856ae());
+}
+
diff --git a/test/tint/builtins/gen/var/textureNumLayers/0856ae.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/textureNumLayers/0856ae.wgsl.expected.ir.fxc.hlsl
index c3bb13b..35f29e8 100644
--- a/test/tint/builtins/gen/var/textureNumLayers/0856ae.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureNumLayers/0856ae.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,19 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureNumLayers
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWByteAddressBuffer prevent_dce : register(u0);
+RWTexture2DArray<float4> arg_0 : register(u0, space1);
+uint textureNumLayers_0856ae() {
+  uint3 v = (0u).xxx;
+  arg_0.GetDimensions(v[0u], v[1u], v[2u]);
+  uint res = v.z;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store(0u, textureNumLayers_0856ae());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store(0u, textureNumLayers_0856ae());
+}
+
diff --git a/test/tint/builtins/gen/var/textureNumLayers/0ec222.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/textureNumLayers/0ec222.wgsl.expected.ir.dxc.hlsl
index c3bb13b..10e200f 100644
--- a/test/tint/builtins/gen/var/textureNumLayers/0ec222.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureNumLayers/0ec222.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,45 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  uint prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureNumLayers
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation uint VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+Texture2DArray<float4> arg_0 : register(t0, space1);
+uint textureNumLayers_0ec222() {
+  uint3 v = (0u).xxx;
+  arg_0.GetDimensions(v[0u], v[1u], v[2u]);
+  uint res = v.z;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store(0u, textureNumLayers_0ec222());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store(0u, textureNumLayers_0ec222());
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = textureNumLayers_0ec222();
+  VertexOutput v_1 = tint_symbol;
+  return v_1;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_2 = vertex_main_inner();
+  VertexOutput v_3 = v_2;
+  VertexOutput v_4 = v_2;
+  vertex_main_outputs v_5 = {v_4.prevent_dce, v_3.pos};
+  return v_5;
+}
+
diff --git a/test/tint/builtins/gen/var/textureNumLayers/0ec222.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/textureNumLayers/0ec222.wgsl.expected.ir.fxc.hlsl
index c3bb13b..10e200f 100644
--- a/test/tint/builtins/gen/var/textureNumLayers/0ec222.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureNumLayers/0ec222.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,45 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  uint prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureNumLayers
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation uint VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+Texture2DArray<float4> arg_0 : register(t0, space1);
+uint textureNumLayers_0ec222() {
+  uint3 v = (0u).xxx;
+  arg_0.GetDimensions(v[0u], v[1u], v[2u]);
+  uint res = v.z;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store(0u, textureNumLayers_0ec222());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store(0u, textureNumLayers_0ec222());
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = textureNumLayers_0ec222();
+  VertexOutput v_1 = tint_symbol;
+  return v_1;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_2 = vertex_main_inner();
+  VertexOutput v_3 = v_2;
+  VertexOutput v_4 = v_2;
+  vertex_main_outputs v_5 = {v_4.prevent_dce, v_3.pos};
+  return v_5;
+}
+
diff --git a/test/tint/builtins/gen/var/textureNumLayers/0fe8dc.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/textureNumLayers/0fe8dc.wgsl.expected.ir.dxc.hlsl
index c3bb13b..8b349e1 100644
--- a/test/tint/builtins/gen/var/textureNumLayers/0fe8dc.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureNumLayers/0fe8dc.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,45 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  uint prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureNumLayers
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation uint VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+Texture2DArray<float4> arg_0 : register(t0, space1);
+uint textureNumLayers_0fe8dc() {
+  uint3 v = (0u).xxx;
+  arg_0.GetDimensions(v[0u], v[1u], v[2u]);
+  uint res = v.z;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store(0u, textureNumLayers_0fe8dc());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store(0u, textureNumLayers_0fe8dc());
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = textureNumLayers_0fe8dc();
+  VertexOutput v_1 = tint_symbol;
+  return v_1;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_2 = vertex_main_inner();
+  VertexOutput v_3 = v_2;
+  VertexOutput v_4 = v_2;
+  vertex_main_outputs v_5 = {v_4.prevent_dce, v_3.pos};
+  return v_5;
+}
+
diff --git a/test/tint/builtins/gen/var/textureNumLayers/0fe8dc.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/textureNumLayers/0fe8dc.wgsl.expected.ir.fxc.hlsl
index c3bb13b..8b349e1 100644
--- a/test/tint/builtins/gen/var/textureNumLayers/0fe8dc.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureNumLayers/0fe8dc.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,45 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  uint prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureNumLayers
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation uint VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+Texture2DArray<float4> arg_0 : register(t0, space1);
+uint textureNumLayers_0fe8dc() {
+  uint3 v = (0u).xxx;
+  arg_0.GetDimensions(v[0u], v[1u], v[2u]);
+  uint res = v.z;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store(0u, textureNumLayers_0fe8dc());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store(0u, textureNumLayers_0fe8dc());
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = textureNumLayers_0fe8dc();
+  VertexOutput v_1 = tint_symbol;
+  return v_1;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_2 = vertex_main_inner();
+  VertexOutput v_3 = v_2;
+  VertexOutput v_4 = v_2;
+  vertex_main_outputs v_5 = {v_4.prevent_dce, v_3.pos};
+  return v_5;
+}
+
diff --git a/test/tint/builtins/gen/var/textureNumLayers/17ccad.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/textureNumLayers/17ccad.wgsl.expected.ir.dxc.hlsl
index c3bb13b..bde263c 100644
--- a/test/tint/builtins/gen/var/textureNumLayers/17ccad.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureNumLayers/17ccad.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,19 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureNumLayers
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWByteAddressBuffer prevent_dce : register(u0);
+RWTexture2DArray<float4> arg_0 : register(u0, space1);
+uint textureNumLayers_17ccad() {
+  uint3 v = (0u).xxx;
+  arg_0.GetDimensions(v[0u], v[1u], v[2u]);
+  uint res = v.z;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store(0u, textureNumLayers_17ccad());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store(0u, textureNumLayers_17ccad());
+}
+
diff --git a/test/tint/builtins/gen/var/textureNumLayers/17ccad.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/textureNumLayers/17ccad.wgsl.expected.ir.fxc.hlsl
index c3bb13b..bde263c 100644
--- a/test/tint/builtins/gen/var/textureNumLayers/17ccad.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureNumLayers/17ccad.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,19 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureNumLayers
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWByteAddressBuffer prevent_dce : register(u0);
+RWTexture2DArray<float4> arg_0 : register(u0, space1);
+uint textureNumLayers_17ccad() {
+  uint3 v = (0u).xxx;
+  arg_0.GetDimensions(v[0u], v[1u], v[2u]);
+  uint res = v.z;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store(0u, textureNumLayers_17ccad());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store(0u, textureNumLayers_17ccad());
+}
+
diff --git a/test/tint/builtins/gen/var/textureNumLayers/1f858a.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/textureNumLayers/1f858a.wgsl.expected.ir.dxc.hlsl
index c3bb13b..dc0f0b0 100644
--- a/test/tint/builtins/gen/var/textureNumLayers/1f858a.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureNumLayers/1f858a.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,19 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureNumLayers
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWByteAddressBuffer prevent_dce : register(u0);
+RWTexture2DArray<float4> arg_0 : register(u0, space1);
+uint textureNumLayers_1f858a() {
+  uint3 v = (0u).xxx;
+  arg_0.GetDimensions(v[0u], v[1u], v[2u]);
+  uint res = v.z;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store(0u, textureNumLayers_1f858a());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store(0u, textureNumLayers_1f858a());
+}
+
diff --git a/test/tint/builtins/gen/var/textureNumLayers/1f858a.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/textureNumLayers/1f858a.wgsl.expected.ir.fxc.hlsl
index c3bb13b..dc0f0b0 100644
--- a/test/tint/builtins/gen/var/textureNumLayers/1f858a.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureNumLayers/1f858a.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,19 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureNumLayers
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWByteAddressBuffer prevent_dce : register(u0);
+RWTexture2DArray<float4> arg_0 : register(u0, space1);
+uint textureNumLayers_1f858a() {
+  uint3 v = (0u).xxx;
+  arg_0.GetDimensions(v[0u], v[1u], v[2u]);
+  uint res = v.z;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store(0u, textureNumLayers_1f858a());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store(0u, textureNumLayers_1f858a());
+}
+
diff --git a/test/tint/builtins/gen/var/textureNumLayers/24d572.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/textureNumLayers/24d572.wgsl.expected.ir.dxc.hlsl
index c3bb13b..220c2e9 100644
--- a/test/tint/builtins/gen/var/textureNumLayers/24d572.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureNumLayers/24d572.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,19 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureNumLayers
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWByteAddressBuffer prevent_dce : register(u0);
+RWTexture2DArray<uint4> arg_0 : register(u0, space1);
+uint textureNumLayers_24d572() {
+  uint3 v = (0u).xxx;
+  arg_0.GetDimensions(v[0u], v[1u], v[2u]);
+  uint res = v.z;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store(0u, textureNumLayers_24d572());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store(0u, textureNumLayers_24d572());
+}
+
diff --git a/test/tint/builtins/gen/var/textureNumLayers/24d572.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/textureNumLayers/24d572.wgsl.expected.ir.fxc.hlsl
index c3bb13b..220c2e9 100644
--- a/test/tint/builtins/gen/var/textureNumLayers/24d572.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureNumLayers/24d572.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,19 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureNumLayers
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWByteAddressBuffer prevent_dce : register(u0);
+RWTexture2DArray<uint4> arg_0 : register(u0, space1);
+uint textureNumLayers_24d572() {
+  uint3 v = (0u).xxx;
+  arg_0.GetDimensions(v[0u], v[1u], v[2u]);
+  uint res = v.z;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store(0u, textureNumLayers_24d572());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store(0u, textureNumLayers_24d572());
+}
+
diff --git a/test/tint/builtins/gen/var/textureNumLayers/26c9f9.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/textureNumLayers/26c9f9.wgsl.expected.ir.dxc.hlsl
index c3bb13b..db03b59 100644
--- a/test/tint/builtins/gen/var/textureNumLayers/26c9f9.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureNumLayers/26c9f9.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,45 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  uint prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureNumLayers
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation uint VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+Texture2DArray<int4> arg_0 : register(t0, space1);
+uint textureNumLayers_26c9f9() {
+  uint3 v = (0u).xxx;
+  arg_0.GetDimensions(v[0u], v[1u], v[2u]);
+  uint res = v.z;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store(0u, textureNumLayers_26c9f9());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store(0u, textureNumLayers_26c9f9());
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = textureNumLayers_26c9f9();
+  VertexOutput v_1 = tint_symbol;
+  return v_1;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_2 = vertex_main_inner();
+  VertexOutput v_3 = v_2;
+  VertexOutput v_4 = v_2;
+  vertex_main_outputs v_5 = {v_4.prevent_dce, v_3.pos};
+  return v_5;
+}
+
diff --git a/test/tint/builtins/gen/var/textureNumLayers/26c9f9.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/textureNumLayers/26c9f9.wgsl.expected.ir.fxc.hlsl
index c3bb13b..db03b59 100644
--- a/test/tint/builtins/gen/var/textureNumLayers/26c9f9.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureNumLayers/26c9f9.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,45 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  uint prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureNumLayers
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation uint VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+Texture2DArray<int4> arg_0 : register(t0, space1);
+uint textureNumLayers_26c9f9() {
+  uint3 v = (0u).xxx;
+  arg_0.GetDimensions(v[0u], v[1u], v[2u]);
+  uint res = v.z;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store(0u, textureNumLayers_26c9f9());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store(0u, textureNumLayers_26c9f9());
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = textureNumLayers_26c9f9();
+  VertexOutput v_1 = tint_symbol;
+  return v_1;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_2 = vertex_main_inner();
+  VertexOutput v_3 = v_2;
+  VertexOutput v_4 = v_2;
+  vertex_main_outputs v_5 = {v_4.prevent_dce, v_3.pos};
+  return v_5;
+}
+
diff --git a/test/tint/builtins/gen/var/textureNumLayers/2a48dc.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/textureNumLayers/2a48dc.wgsl.expected.ir.dxc.hlsl
index c3bb13b..fc5fbc8 100644
--- a/test/tint/builtins/gen/var/textureNumLayers/2a48dc.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureNumLayers/2a48dc.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,19 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureNumLayers
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWByteAddressBuffer prevent_dce : register(u0);
+RWTexture2DArray<uint4> arg_0 : register(u0, space1);
+uint textureNumLayers_2a48dc() {
+  uint3 v = (0u).xxx;
+  arg_0.GetDimensions(v[0u], v[1u], v[2u]);
+  uint res = v.z;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store(0u, textureNumLayers_2a48dc());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store(0u, textureNumLayers_2a48dc());
+}
+
diff --git a/test/tint/builtins/gen/var/textureNumLayers/2a48dc.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/textureNumLayers/2a48dc.wgsl.expected.ir.fxc.hlsl
index c3bb13b..fc5fbc8 100644
--- a/test/tint/builtins/gen/var/textureNumLayers/2a48dc.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureNumLayers/2a48dc.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,19 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureNumLayers
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWByteAddressBuffer prevent_dce : register(u0);
+RWTexture2DArray<uint4> arg_0 : register(u0, space1);
+uint textureNumLayers_2a48dc() {
+  uint3 v = (0u).xxx;
+  arg_0.GetDimensions(v[0u], v[1u], v[2u]);
+  uint res = v.z;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store(0u, textureNumLayers_2a48dc());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store(0u, textureNumLayers_2a48dc());
+}
+
diff --git a/test/tint/builtins/gen/var/textureNumLayers/2d95ea.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/textureNumLayers/2d95ea.wgsl.expected.ir.dxc.hlsl
index c3bb13b..1561059 100644
--- a/test/tint/builtins/gen/var/textureNumLayers/2d95ea.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureNumLayers/2d95ea.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,45 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  uint prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureNumLayers
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation uint VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+Texture2DArray<uint4> arg_0 : register(t0, space1);
+uint textureNumLayers_2d95ea() {
+  uint3 v = (0u).xxx;
+  arg_0.GetDimensions(v[0u], v[1u], v[2u]);
+  uint res = v.z;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store(0u, textureNumLayers_2d95ea());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store(0u, textureNumLayers_2d95ea());
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = textureNumLayers_2d95ea();
+  VertexOutput v_1 = tint_symbol;
+  return v_1;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_2 = vertex_main_inner();
+  VertexOutput v_3 = v_2;
+  VertexOutput v_4 = v_2;
+  vertex_main_outputs v_5 = {v_4.prevent_dce, v_3.pos};
+  return v_5;
+}
+
diff --git a/test/tint/builtins/gen/var/textureNumLayers/2d95ea.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/textureNumLayers/2d95ea.wgsl.expected.ir.fxc.hlsl
index c3bb13b..1561059 100644
--- a/test/tint/builtins/gen/var/textureNumLayers/2d95ea.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureNumLayers/2d95ea.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,45 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  uint prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureNumLayers
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation uint VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+Texture2DArray<uint4> arg_0 : register(t0, space1);
+uint textureNumLayers_2d95ea() {
+  uint3 v = (0u).xxx;
+  arg_0.GetDimensions(v[0u], v[1u], v[2u]);
+  uint res = v.z;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store(0u, textureNumLayers_2d95ea());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store(0u, textureNumLayers_2d95ea());
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = textureNumLayers_2d95ea();
+  VertexOutput v_1 = tint_symbol;
+  return v_1;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_2 = vertex_main_inner();
+  VertexOutput v_3 = v_2;
+  VertexOutput v_4 = v_2;
+  vertex_main_outputs v_5 = {v_4.prevent_dce, v_3.pos};
+  return v_5;
+}
+
diff --git a/test/tint/builtins/gen/var/textureNumLayers/327d70.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/textureNumLayers/327d70.wgsl.expected.ir.dxc.hlsl
index c3bb13b..1e8fd28 100644
--- a/test/tint/builtins/gen/var/textureNumLayers/327d70.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureNumLayers/327d70.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,19 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureNumLayers
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWByteAddressBuffer prevent_dce : register(u0);
+RWTexture2DArray<uint4> arg_0 : register(u0, space1);
+uint textureNumLayers_327d70() {
+  uint3 v = (0u).xxx;
+  arg_0.GetDimensions(v[0u], v[1u], v[2u]);
+  uint res = v.z;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store(0u, textureNumLayers_327d70());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store(0u, textureNumLayers_327d70());
+}
+
diff --git a/test/tint/builtins/gen/var/textureNumLayers/327d70.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/textureNumLayers/327d70.wgsl.expected.ir.fxc.hlsl
index c3bb13b..1e8fd28 100644
--- a/test/tint/builtins/gen/var/textureNumLayers/327d70.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureNumLayers/327d70.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,19 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureNumLayers
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWByteAddressBuffer prevent_dce : register(u0);
+RWTexture2DArray<uint4> arg_0 : register(u0, space1);
+uint textureNumLayers_327d70() {
+  uint3 v = (0u).xxx;
+  arg_0.GetDimensions(v[0u], v[1u], v[2u]);
+  uint res = v.z;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store(0u, textureNumLayers_327d70());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store(0u, textureNumLayers_327d70());
+}
+
diff --git a/test/tint/builtins/gen/var/textureNumLayers/32ca10.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/textureNumLayers/32ca10.wgsl.expected.ir.dxc.hlsl
index c3bb13b..acd79a9 100644
--- a/test/tint/builtins/gen/var/textureNumLayers/32ca10.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureNumLayers/32ca10.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,19 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureNumLayers
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWByteAddressBuffer prevent_dce : register(u0);
+RWTexture2DArray<uint4> arg_0 : register(u0, space1);
+uint textureNumLayers_32ca10() {
+  uint3 v = (0u).xxx;
+  arg_0.GetDimensions(v[0u], v[1u], v[2u]);
+  uint res = v.z;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store(0u, textureNumLayers_32ca10());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store(0u, textureNumLayers_32ca10());
+}
+
diff --git a/test/tint/builtins/gen/var/textureNumLayers/32ca10.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/textureNumLayers/32ca10.wgsl.expected.ir.fxc.hlsl
index c3bb13b..acd79a9 100644
--- a/test/tint/builtins/gen/var/textureNumLayers/32ca10.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureNumLayers/32ca10.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,19 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureNumLayers
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWByteAddressBuffer prevent_dce : register(u0);
+RWTexture2DArray<uint4> arg_0 : register(u0, space1);
+uint textureNumLayers_32ca10() {
+  uint3 v = (0u).xxx;
+  arg_0.GetDimensions(v[0u], v[1u], v[2u]);
+  uint res = v.z;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store(0u, textureNumLayers_32ca10());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store(0u, textureNumLayers_32ca10());
+}
+
diff --git a/test/tint/builtins/gen/var/textureNumLayers/3465ec.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/textureNumLayers/3465ec.wgsl.expected.ir.dxc.hlsl
index c3bb13b..781c4de 100644
--- a/test/tint/builtins/gen/var/textureNumLayers/3465ec.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureNumLayers/3465ec.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,19 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureNumLayers
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWByteAddressBuffer prevent_dce : register(u0);
+RWTexture2DArray<float4> arg_0 : register(u0, space1);
+uint textureNumLayers_3465ec() {
+  uint3 v = (0u).xxx;
+  arg_0.GetDimensions(v[0u], v[1u], v[2u]);
+  uint res = v.z;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store(0u, textureNumLayers_3465ec());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store(0u, textureNumLayers_3465ec());
+}
+
diff --git a/test/tint/builtins/gen/var/textureNumLayers/3465ec.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/textureNumLayers/3465ec.wgsl.expected.ir.fxc.hlsl
index c3bb13b..781c4de 100644
--- a/test/tint/builtins/gen/var/textureNumLayers/3465ec.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureNumLayers/3465ec.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,19 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureNumLayers
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWByteAddressBuffer prevent_dce : register(u0);
+RWTexture2DArray<float4> arg_0 : register(u0, space1);
+uint textureNumLayers_3465ec() {
+  uint3 v = (0u).xxx;
+  arg_0.GetDimensions(v[0u], v[1u], v[2u]);
+  uint res = v.z;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store(0u, textureNumLayers_3465ec());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store(0u, textureNumLayers_3465ec());
+}
+
diff --git a/test/tint/builtins/gen/var/textureNumLayers/34cefa.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/textureNumLayers/34cefa.wgsl.expected.ir.dxc.hlsl
index c3bb13b..75acae1 100644
--- a/test/tint/builtins/gen/var/textureNumLayers/34cefa.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureNumLayers/34cefa.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,45 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  uint prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureNumLayers
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation uint VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+TextureCubeArray<float4> arg_0 : register(t0, space1);
+uint textureNumLayers_34cefa() {
+  uint3 v = (0u).xxx;
+  arg_0.GetDimensions(v[0u], v[1u], v[2u]);
+  uint res = v.z;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store(0u, textureNumLayers_34cefa());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store(0u, textureNumLayers_34cefa());
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = textureNumLayers_34cefa();
+  VertexOutput v_1 = tint_symbol;
+  return v_1;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_2 = vertex_main_inner();
+  VertexOutput v_3 = v_2;
+  VertexOutput v_4 = v_2;
+  vertex_main_outputs v_5 = {v_4.prevent_dce, v_3.pos};
+  return v_5;
+}
+
diff --git a/test/tint/builtins/gen/var/textureNumLayers/34cefa.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/textureNumLayers/34cefa.wgsl.expected.ir.fxc.hlsl
index c3bb13b..75acae1 100644
--- a/test/tint/builtins/gen/var/textureNumLayers/34cefa.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureNumLayers/34cefa.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,45 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  uint prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureNumLayers
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation uint VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+TextureCubeArray<float4> arg_0 : register(t0, space1);
+uint textureNumLayers_34cefa() {
+  uint3 v = (0u).xxx;
+  arg_0.GetDimensions(v[0u], v[1u], v[2u]);
+  uint res = v.z;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store(0u, textureNumLayers_34cefa());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store(0u, textureNumLayers_34cefa());
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = textureNumLayers_34cefa();
+  VertexOutput v_1 = tint_symbol;
+  return v_1;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_2 = vertex_main_inner();
+  VertexOutput v_3 = v_2;
+  VertexOutput v_4 = v_2;
+  vertex_main_outputs v_5 = {v_4.prevent_dce, v_3.pos};
+  return v_5;
+}
+
diff --git a/test/tint/builtins/gen/var/textureNumLayers/3580ab.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/textureNumLayers/3580ab.wgsl.expected.ir.dxc.hlsl
index c3bb13b..b98557b 100644
--- a/test/tint/builtins/gen/var/textureNumLayers/3580ab.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureNumLayers/3580ab.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,19 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureNumLayers
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWByteAddressBuffer prevent_dce : register(u0);
+RWTexture2DArray<int4> arg_0 : register(u0, space1);
+uint textureNumLayers_3580ab() {
+  uint3 v = (0u).xxx;
+  arg_0.GetDimensions(v[0u], v[1u], v[2u]);
+  uint res = v.z;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store(0u, textureNumLayers_3580ab());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store(0u, textureNumLayers_3580ab());
+}
+
diff --git a/test/tint/builtins/gen/var/textureNumLayers/3580ab.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/textureNumLayers/3580ab.wgsl.expected.ir.fxc.hlsl
index c3bb13b..b98557b 100644
--- a/test/tint/builtins/gen/var/textureNumLayers/3580ab.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureNumLayers/3580ab.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,19 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureNumLayers
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWByteAddressBuffer prevent_dce : register(u0);
+RWTexture2DArray<int4> arg_0 : register(u0, space1);
+uint textureNumLayers_3580ab() {
+  uint3 v = (0u).xxx;
+  arg_0.GetDimensions(v[0u], v[1u], v[2u]);
+  uint res = v.z;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store(0u, textureNumLayers_3580ab());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store(0u, textureNumLayers_3580ab());
+}
+
diff --git a/test/tint/builtins/gen/var/textureNumLayers/379cc5.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/textureNumLayers/379cc5.wgsl.expected.ir.dxc.hlsl
index c3bb13b..02a0eea 100644
--- a/test/tint/builtins/gen/var/textureNumLayers/379cc5.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureNumLayers/379cc5.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,45 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  uint prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureNumLayers
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation uint VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+Texture2DArray<float4> arg_0 : register(t0, space1);
+uint textureNumLayers_379cc5() {
+  uint3 v = (0u).xxx;
+  arg_0.GetDimensions(v[0u], v[1u], v[2u]);
+  uint res = v.z;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store(0u, textureNumLayers_379cc5());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store(0u, textureNumLayers_379cc5());
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = textureNumLayers_379cc5();
+  VertexOutput v_1 = tint_symbol;
+  return v_1;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_2 = vertex_main_inner();
+  VertexOutput v_3 = v_2;
+  VertexOutput v_4 = v_2;
+  vertex_main_outputs v_5 = {v_4.prevent_dce, v_3.pos};
+  return v_5;
+}
+
diff --git a/test/tint/builtins/gen/var/textureNumLayers/379cc5.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/textureNumLayers/379cc5.wgsl.expected.ir.fxc.hlsl
index c3bb13b..02a0eea 100644
--- a/test/tint/builtins/gen/var/textureNumLayers/379cc5.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureNumLayers/379cc5.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,45 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  uint prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureNumLayers
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation uint VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+Texture2DArray<float4> arg_0 : register(t0, space1);
+uint textureNumLayers_379cc5() {
+  uint3 v = (0u).xxx;
+  arg_0.GetDimensions(v[0u], v[1u], v[2u]);
+  uint res = v.z;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store(0u, textureNumLayers_379cc5());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store(0u, textureNumLayers_379cc5());
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = textureNumLayers_379cc5();
+  VertexOutput v_1 = tint_symbol;
+  return v_1;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_2 = vertex_main_inner();
+  VertexOutput v_3 = v_2;
+  VertexOutput v_4 = v_2;
+  vertex_main_outputs v_5 = {v_4.prevent_dce, v_3.pos};
+  return v_5;
+}
+
diff --git a/test/tint/builtins/gen/var/textureNumLayers/37bc8a.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/textureNumLayers/37bc8a.wgsl.expected.ir.dxc.hlsl
index c3bb13b..9ffe6fe 100644
--- a/test/tint/builtins/gen/var/textureNumLayers/37bc8a.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureNumLayers/37bc8a.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,19 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureNumLayers
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWByteAddressBuffer prevent_dce : register(u0);
+RWTexture2DArray<float4> arg_0 : register(u0, space1);
+uint textureNumLayers_37bc8a() {
+  uint3 v = (0u).xxx;
+  arg_0.GetDimensions(v[0u], v[1u], v[2u]);
+  uint res = v.z;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store(0u, textureNumLayers_37bc8a());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store(0u, textureNumLayers_37bc8a());
+}
+
diff --git a/test/tint/builtins/gen/var/textureNumLayers/37bc8a.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/textureNumLayers/37bc8a.wgsl.expected.ir.fxc.hlsl
index c3bb13b..9ffe6fe 100644
--- a/test/tint/builtins/gen/var/textureNumLayers/37bc8a.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureNumLayers/37bc8a.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,19 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureNumLayers
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWByteAddressBuffer prevent_dce : register(u0);
+RWTexture2DArray<float4> arg_0 : register(u0, space1);
+uint textureNumLayers_37bc8a() {
+  uint3 v = (0u).xxx;
+  arg_0.GetDimensions(v[0u], v[1u], v[2u]);
+  uint res = v.z;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store(0u, textureNumLayers_37bc8a());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store(0u, textureNumLayers_37bc8a());
+}
+
diff --git a/test/tint/builtins/gen/var/textureNumLayers/380a60.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/textureNumLayers/380a60.wgsl.expected.ir.dxc.hlsl
index c3bb13b..a8577b6 100644
--- a/test/tint/builtins/gen/var/textureNumLayers/380a60.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureNumLayers/380a60.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,19 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureNumLayers
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWByteAddressBuffer prevent_dce : register(u0);
+RWTexture2DArray<int4> arg_0 : register(u0, space1);
+uint textureNumLayers_380a60() {
+  uint3 v = (0u).xxx;
+  arg_0.GetDimensions(v[0u], v[1u], v[2u]);
+  uint res = v.z;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store(0u, textureNumLayers_380a60());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store(0u, textureNumLayers_380a60());
+}
+
diff --git a/test/tint/builtins/gen/var/textureNumLayers/380a60.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/textureNumLayers/380a60.wgsl.expected.ir.fxc.hlsl
index c3bb13b..a8577b6 100644
--- a/test/tint/builtins/gen/var/textureNumLayers/380a60.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureNumLayers/380a60.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,19 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureNumLayers
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWByteAddressBuffer prevent_dce : register(u0);
+RWTexture2DArray<int4> arg_0 : register(u0, space1);
+uint textureNumLayers_380a60() {
+  uint3 v = (0u).xxx;
+  arg_0.GetDimensions(v[0u], v[1u], v[2u]);
+  uint res = v.z;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store(0u, textureNumLayers_380a60());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store(0u, textureNumLayers_380a60());
+}
+
diff --git a/test/tint/builtins/gen/var/textureNumLayers/3ad143.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/textureNumLayers/3ad143.wgsl.expected.ir.dxc.hlsl
index c3bb13b..7f5b1a3 100644
--- a/test/tint/builtins/gen/var/textureNumLayers/3ad143.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureNumLayers/3ad143.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,45 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  uint prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureNumLayers
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation uint VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+Texture2DArray<int4> arg_0 : register(t0, space1);
+uint textureNumLayers_3ad143() {
+  uint3 v = (0u).xxx;
+  arg_0.GetDimensions(v[0u], v[1u], v[2u]);
+  uint res = v.z;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store(0u, textureNumLayers_3ad143());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store(0u, textureNumLayers_3ad143());
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = textureNumLayers_3ad143();
+  VertexOutput v_1 = tint_symbol;
+  return v_1;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_2 = vertex_main_inner();
+  VertexOutput v_3 = v_2;
+  VertexOutput v_4 = v_2;
+  vertex_main_outputs v_5 = {v_4.prevent_dce, v_3.pos};
+  return v_5;
+}
+
diff --git a/test/tint/builtins/gen/var/textureNumLayers/3ad143.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/textureNumLayers/3ad143.wgsl.expected.ir.fxc.hlsl
index c3bb13b..7f5b1a3 100644
--- a/test/tint/builtins/gen/var/textureNumLayers/3ad143.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureNumLayers/3ad143.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,45 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  uint prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureNumLayers
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation uint VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+Texture2DArray<int4> arg_0 : register(t0, space1);
+uint textureNumLayers_3ad143() {
+  uint3 v = (0u).xxx;
+  arg_0.GetDimensions(v[0u], v[1u], v[2u]);
+  uint res = v.z;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store(0u, textureNumLayers_3ad143());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store(0u, textureNumLayers_3ad143());
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = textureNumLayers_3ad143();
+  VertexOutput v_1 = tint_symbol;
+  return v_1;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_2 = vertex_main_inner();
+  VertexOutput v_3 = v_2;
+  VertexOutput v_4 = v_2;
+  vertex_main_outputs v_5 = {v_4.prevent_dce, v_3.pos};
+  return v_5;
+}
+
diff --git a/test/tint/builtins/gen/var/textureNumLayers/3eff89.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/textureNumLayers/3eff89.wgsl.expected.ir.dxc.hlsl
index c3bb13b..1a1fcec 100644
--- a/test/tint/builtins/gen/var/textureNumLayers/3eff89.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureNumLayers/3eff89.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,45 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  uint prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureNumLayers
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation uint VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+Texture2DArray<float4> arg_0 : register(t0, space1);
+uint textureNumLayers_3eff89() {
+  uint3 v = (0u).xxx;
+  arg_0.GetDimensions(v[0u], v[1u], v[2u]);
+  uint res = v.z;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store(0u, textureNumLayers_3eff89());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store(0u, textureNumLayers_3eff89());
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = textureNumLayers_3eff89();
+  VertexOutput v_1 = tint_symbol;
+  return v_1;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_2 = vertex_main_inner();
+  VertexOutput v_3 = v_2;
+  VertexOutput v_4 = v_2;
+  vertex_main_outputs v_5 = {v_4.prevent_dce, v_3.pos};
+  return v_5;
+}
+
diff --git a/test/tint/builtins/gen/var/textureNumLayers/3eff89.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/textureNumLayers/3eff89.wgsl.expected.ir.fxc.hlsl
index c3bb13b..1a1fcec 100644
--- a/test/tint/builtins/gen/var/textureNumLayers/3eff89.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureNumLayers/3eff89.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,45 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  uint prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureNumLayers
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation uint VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+Texture2DArray<float4> arg_0 : register(t0, space1);
+uint textureNumLayers_3eff89() {
+  uint3 v = (0u).xxx;
+  arg_0.GetDimensions(v[0u], v[1u], v[2u]);
+  uint res = v.z;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store(0u, textureNumLayers_3eff89());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store(0u, textureNumLayers_3eff89());
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = textureNumLayers_3eff89();
+  VertexOutput v_1 = tint_symbol;
+  return v_1;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_2 = vertex_main_inner();
+  VertexOutput v_3 = v_2;
+  VertexOutput v_4 = v_2;
+  vertex_main_outputs v_5 = {v_4.prevent_dce, v_3.pos};
+  return v_5;
+}
+
diff --git a/test/tint/builtins/gen/var/textureNumLayers/485774.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/textureNumLayers/485774.wgsl.expected.ir.dxc.hlsl
index c3bb13b..aa558f4 100644
--- a/test/tint/builtins/gen/var/textureNumLayers/485774.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureNumLayers/485774.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,45 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  uint prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureNumLayers
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation uint VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+Texture2DArray<float4> arg_0 : register(t0, space1);
+uint textureNumLayers_485774() {
+  uint3 v = (0u).xxx;
+  arg_0.GetDimensions(v[0u], v[1u], v[2u]);
+  uint res = v.z;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store(0u, textureNumLayers_485774());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store(0u, textureNumLayers_485774());
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = textureNumLayers_485774();
+  VertexOutput v_1 = tint_symbol;
+  return v_1;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_2 = vertex_main_inner();
+  VertexOutput v_3 = v_2;
+  VertexOutput v_4 = v_2;
+  vertex_main_outputs v_5 = {v_4.prevent_dce, v_3.pos};
+  return v_5;
+}
+
diff --git a/test/tint/builtins/gen/var/textureNumLayers/485774.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/textureNumLayers/485774.wgsl.expected.ir.fxc.hlsl
index c3bb13b..aa558f4 100644
--- a/test/tint/builtins/gen/var/textureNumLayers/485774.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureNumLayers/485774.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,45 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  uint prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureNumLayers
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation uint VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+Texture2DArray<float4> arg_0 : register(t0, space1);
+uint textureNumLayers_485774() {
+  uint3 v = (0u).xxx;
+  arg_0.GetDimensions(v[0u], v[1u], v[2u]);
+  uint res = v.z;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store(0u, textureNumLayers_485774());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store(0u, textureNumLayers_485774());
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = textureNumLayers_485774();
+  VertexOutput v_1 = tint_symbol;
+  return v_1;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_2 = vertex_main_inner();
+  VertexOutput v_3 = v_2;
+  VertexOutput v_4 = v_2;
+  vertex_main_outputs v_5 = {v_4.prevent_dce, v_3.pos};
+  return v_5;
+}
+
diff --git a/test/tint/builtins/gen/var/textureNumLayers/48ef47.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/textureNumLayers/48ef47.wgsl.expected.ir.dxc.hlsl
index c3bb13b..a9c9e62 100644
--- a/test/tint/builtins/gen/var/textureNumLayers/48ef47.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureNumLayers/48ef47.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,45 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  uint prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureNumLayers
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation uint VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+TextureCubeArray arg_0 : register(t0, space1);
+uint textureNumLayers_48ef47() {
+  uint3 v = (0u).xxx;
+  arg_0.GetDimensions(v[0u], v[1u], v[2u]);
+  uint res = v.z;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store(0u, textureNumLayers_48ef47());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store(0u, textureNumLayers_48ef47());
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = textureNumLayers_48ef47();
+  VertexOutput v_1 = tint_symbol;
+  return v_1;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_2 = vertex_main_inner();
+  VertexOutput v_3 = v_2;
+  VertexOutput v_4 = v_2;
+  vertex_main_outputs v_5 = {v_4.prevent_dce, v_3.pos};
+  return v_5;
+}
+
diff --git a/test/tint/builtins/gen/var/textureNumLayers/48ef47.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/textureNumLayers/48ef47.wgsl.expected.ir.fxc.hlsl
index c3bb13b..a9c9e62 100644
--- a/test/tint/builtins/gen/var/textureNumLayers/48ef47.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureNumLayers/48ef47.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,45 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  uint prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureNumLayers
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation uint VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+TextureCubeArray arg_0 : register(t0, space1);
+uint textureNumLayers_48ef47() {
+  uint3 v = (0u).xxx;
+  arg_0.GetDimensions(v[0u], v[1u], v[2u]);
+  uint res = v.z;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store(0u, textureNumLayers_48ef47());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store(0u, textureNumLayers_48ef47());
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = textureNumLayers_48ef47();
+  VertexOutput v_1 = tint_symbol;
+  return v_1;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_2 = vertex_main_inner();
+  VertexOutput v_3 = v_2;
+  VertexOutput v_4 = v_2;
+  vertex_main_outputs v_5 = {v_4.prevent_dce, v_3.pos};
+  return v_5;
+}
+
diff --git a/test/tint/builtins/gen/var/textureNumLayers/4adaad.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/textureNumLayers/4adaad.wgsl.expected.ir.dxc.hlsl
index c3bb13b..4098e0d 100644
--- a/test/tint/builtins/gen/var/textureNumLayers/4adaad.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureNumLayers/4adaad.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,45 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  uint prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureNumLayers
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation uint VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+Texture2DArray<int4> arg_0 : register(t0, space1);
+uint textureNumLayers_4adaad() {
+  uint3 v = (0u).xxx;
+  arg_0.GetDimensions(v[0u], v[1u], v[2u]);
+  uint res = v.z;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store(0u, textureNumLayers_4adaad());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store(0u, textureNumLayers_4adaad());
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = textureNumLayers_4adaad();
+  VertexOutput v_1 = tint_symbol;
+  return v_1;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_2 = vertex_main_inner();
+  VertexOutput v_3 = v_2;
+  VertexOutput v_4 = v_2;
+  vertex_main_outputs v_5 = {v_4.prevent_dce, v_3.pos};
+  return v_5;
+}
+
diff --git a/test/tint/builtins/gen/var/textureNumLayers/4adaad.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/textureNumLayers/4adaad.wgsl.expected.ir.fxc.hlsl
index c3bb13b..4098e0d 100644
--- a/test/tint/builtins/gen/var/textureNumLayers/4adaad.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureNumLayers/4adaad.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,45 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  uint prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureNumLayers
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation uint VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+Texture2DArray<int4> arg_0 : register(t0, space1);
+uint textureNumLayers_4adaad() {
+  uint3 v = (0u).xxx;
+  arg_0.GetDimensions(v[0u], v[1u], v[2u]);
+  uint res = v.z;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store(0u, textureNumLayers_4adaad());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store(0u, textureNumLayers_4adaad());
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = textureNumLayers_4adaad();
+  VertexOutput v_1 = tint_symbol;
+  return v_1;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_2 = vertex_main_inner();
+  VertexOutput v_3 = v_2;
+  VertexOutput v_4 = v_2;
+  vertex_main_outputs v_5 = {v_4.prevent_dce, v_3.pos};
+  return v_5;
+}
+
diff --git a/test/tint/builtins/gen/var/textureNumLayers/4c4333.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/textureNumLayers/4c4333.wgsl.expected.ir.dxc.hlsl
index c3bb13b..4d02aac 100644
--- a/test/tint/builtins/gen/var/textureNumLayers/4c4333.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureNumLayers/4c4333.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,19 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureNumLayers
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWByteAddressBuffer prevent_dce : register(u0);
+RWTexture2DArray<float4> arg_0 : register(u0, space1);
+uint textureNumLayers_4c4333() {
+  uint3 v = (0u).xxx;
+  arg_0.GetDimensions(v[0u], v[1u], v[2u]);
+  uint res = v.z;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store(0u, textureNumLayers_4c4333());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store(0u, textureNumLayers_4c4333());
+}
+
diff --git a/test/tint/builtins/gen/var/textureNumLayers/4c4333.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/textureNumLayers/4c4333.wgsl.expected.ir.fxc.hlsl
index c3bb13b..4d02aac 100644
--- a/test/tint/builtins/gen/var/textureNumLayers/4c4333.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureNumLayers/4c4333.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,19 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureNumLayers
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWByteAddressBuffer prevent_dce : register(u0);
+RWTexture2DArray<float4> arg_0 : register(u0, space1);
+uint textureNumLayers_4c4333() {
+  uint3 v = (0u).xxx;
+  arg_0.GetDimensions(v[0u], v[1u], v[2u]);
+  uint res = v.z;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store(0u, textureNumLayers_4c4333());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store(0u, textureNumLayers_4c4333());
+}
+
diff --git a/test/tint/builtins/gen/var/textureNumLayers/520086.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/textureNumLayers/520086.wgsl.expected.ir.dxc.hlsl
index c3bb13b..dac4710 100644
--- a/test/tint/builtins/gen/var/textureNumLayers/520086.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureNumLayers/520086.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,19 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureNumLayers
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWByteAddressBuffer prevent_dce : register(u0);
+RWTexture2DArray<uint4> arg_0 : register(u0, space1);
+uint textureNumLayers_520086() {
+  uint3 v = (0u).xxx;
+  arg_0.GetDimensions(v[0u], v[1u], v[2u]);
+  uint res = v.z;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store(0u, textureNumLayers_520086());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store(0u, textureNumLayers_520086());
+}
+
diff --git a/test/tint/builtins/gen/var/textureNumLayers/520086.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/textureNumLayers/520086.wgsl.expected.ir.fxc.hlsl
index c3bb13b..dac4710 100644
--- a/test/tint/builtins/gen/var/textureNumLayers/520086.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureNumLayers/520086.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,19 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureNumLayers
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWByteAddressBuffer prevent_dce : register(u0);
+RWTexture2DArray<uint4> arg_0 : register(u0, space1);
+uint textureNumLayers_520086() {
+  uint3 v = (0u).xxx;
+  arg_0.GetDimensions(v[0u], v[1u], v[2u]);
+  uint res = v.z;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store(0u, textureNumLayers_520086());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store(0u, textureNumLayers_520086());
+}
+
diff --git a/test/tint/builtins/gen/var/textureNumLayers/52dfc5.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/textureNumLayers/52dfc5.wgsl.expected.ir.dxc.hlsl
index c3bb13b..8ca6026 100644
--- a/test/tint/builtins/gen/var/textureNumLayers/52dfc5.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureNumLayers/52dfc5.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,45 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  uint prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureNumLayers
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation uint VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+Texture2DArray<int4> arg_0 : register(t0, space1);
+uint textureNumLayers_52dfc5() {
+  uint3 v = (0u).xxx;
+  arg_0.GetDimensions(v[0u], v[1u], v[2u]);
+  uint res = v.z;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store(0u, textureNumLayers_52dfc5());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store(0u, textureNumLayers_52dfc5());
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = textureNumLayers_52dfc5();
+  VertexOutput v_1 = tint_symbol;
+  return v_1;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_2 = vertex_main_inner();
+  VertexOutput v_3 = v_2;
+  VertexOutput v_4 = v_2;
+  vertex_main_outputs v_5 = {v_4.prevent_dce, v_3.pos};
+  return v_5;
+}
+
diff --git a/test/tint/builtins/gen/var/textureNumLayers/52dfc5.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/textureNumLayers/52dfc5.wgsl.expected.ir.fxc.hlsl
index c3bb13b..8ca6026 100644
--- a/test/tint/builtins/gen/var/textureNumLayers/52dfc5.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureNumLayers/52dfc5.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,45 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  uint prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureNumLayers
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation uint VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+Texture2DArray<int4> arg_0 : register(t0, space1);
+uint textureNumLayers_52dfc5() {
+  uint3 v = (0u).xxx;
+  arg_0.GetDimensions(v[0u], v[1u], v[2u]);
+  uint res = v.z;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store(0u, textureNumLayers_52dfc5());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store(0u, textureNumLayers_52dfc5());
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = textureNumLayers_52dfc5();
+  VertexOutput v_1 = tint_symbol;
+  return v_1;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_2 = vertex_main_inner();
+  VertexOutput v_3 = v_2;
+  VertexOutput v_4 = v_2;
+  vertex_main_outputs v_5 = {v_4.prevent_dce, v_3.pos};
+  return v_5;
+}
+
diff --git a/test/tint/builtins/gen/var/textureNumLayers/54a654.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/textureNumLayers/54a654.wgsl.expected.ir.dxc.hlsl
index c3bb13b..549760b 100644
--- a/test/tint/builtins/gen/var/textureNumLayers/54a654.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureNumLayers/54a654.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,19 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureNumLayers
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWByteAddressBuffer prevent_dce : register(u0);
+RWTexture2DArray<int4> arg_0 : register(u0, space1);
+uint textureNumLayers_54a654() {
+  uint3 v = (0u).xxx;
+  arg_0.GetDimensions(v[0u], v[1u], v[2u]);
+  uint res = v.z;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store(0u, textureNumLayers_54a654());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store(0u, textureNumLayers_54a654());
+}
+
diff --git a/test/tint/builtins/gen/var/textureNumLayers/54a654.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/textureNumLayers/54a654.wgsl.expected.ir.fxc.hlsl
index c3bb13b..549760b 100644
--- a/test/tint/builtins/gen/var/textureNumLayers/54a654.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureNumLayers/54a654.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,19 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureNumLayers
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWByteAddressBuffer prevent_dce : register(u0);
+RWTexture2DArray<int4> arg_0 : register(u0, space1);
+uint textureNumLayers_54a654() {
+  uint3 v = (0u).xxx;
+  arg_0.GetDimensions(v[0u], v[1u], v[2u]);
+  uint res = v.z;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store(0u, textureNumLayers_54a654());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store(0u, textureNumLayers_54a654());
+}
+
diff --git a/test/tint/builtins/gen/var/textureNumLayers/555f67.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/textureNumLayers/555f67.wgsl.expected.ir.dxc.hlsl
index c3bb13b..b067afd 100644
--- a/test/tint/builtins/gen/var/textureNumLayers/555f67.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureNumLayers/555f67.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,45 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  uint prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureNumLayers
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation uint VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+Texture2DArray<uint4> arg_0 : register(t0, space1);
+uint textureNumLayers_555f67() {
+  uint3 v = (0u).xxx;
+  arg_0.GetDimensions(v[0u], v[1u], v[2u]);
+  uint res = v.z;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store(0u, textureNumLayers_555f67());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store(0u, textureNumLayers_555f67());
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = textureNumLayers_555f67();
+  VertexOutput v_1 = tint_symbol;
+  return v_1;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_2 = vertex_main_inner();
+  VertexOutput v_3 = v_2;
+  VertexOutput v_4 = v_2;
+  vertex_main_outputs v_5 = {v_4.prevent_dce, v_3.pos};
+  return v_5;
+}
+
diff --git a/test/tint/builtins/gen/var/textureNumLayers/555f67.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/textureNumLayers/555f67.wgsl.expected.ir.fxc.hlsl
index c3bb13b..b067afd 100644
--- a/test/tint/builtins/gen/var/textureNumLayers/555f67.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureNumLayers/555f67.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,45 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  uint prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureNumLayers
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation uint VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+Texture2DArray<uint4> arg_0 : register(t0, space1);
+uint textureNumLayers_555f67() {
+  uint3 v = (0u).xxx;
+  arg_0.GetDimensions(v[0u], v[1u], v[2u]);
+  uint res = v.z;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store(0u, textureNumLayers_555f67());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store(0u, textureNumLayers_555f67());
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = textureNumLayers_555f67();
+  VertexOutput v_1 = tint_symbol;
+  return v_1;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_2 = vertex_main_inner();
+  VertexOutput v_3 = v_2;
+  VertexOutput v_4 = v_2;
+  vertex_main_outputs v_5 = {v_4.prevent_dce, v_3.pos};
+  return v_5;
+}
+
diff --git a/test/tint/builtins/gen/var/textureNumLayers/59cc27.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/textureNumLayers/59cc27.wgsl.expected.ir.dxc.hlsl
index c3bb13b..fb7144a 100644
--- a/test/tint/builtins/gen/var/textureNumLayers/59cc27.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureNumLayers/59cc27.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,45 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  uint prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureNumLayers
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation uint VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+Texture2DArray<float4> arg_0 : register(t0, space1);
+uint textureNumLayers_59cc27() {
+  uint3 v = (0u).xxx;
+  arg_0.GetDimensions(v[0u], v[1u], v[2u]);
+  uint res = v.z;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store(0u, textureNumLayers_59cc27());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store(0u, textureNumLayers_59cc27());
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = textureNumLayers_59cc27();
+  VertexOutput v_1 = tint_symbol;
+  return v_1;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_2 = vertex_main_inner();
+  VertexOutput v_3 = v_2;
+  VertexOutput v_4 = v_2;
+  vertex_main_outputs v_5 = {v_4.prevent_dce, v_3.pos};
+  return v_5;
+}
+
diff --git a/test/tint/builtins/gen/var/textureNumLayers/59cc27.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/textureNumLayers/59cc27.wgsl.expected.ir.fxc.hlsl
index c3bb13b..fb7144a 100644
--- a/test/tint/builtins/gen/var/textureNumLayers/59cc27.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureNumLayers/59cc27.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,45 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  uint prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureNumLayers
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation uint VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+Texture2DArray<float4> arg_0 : register(t0, space1);
+uint textureNumLayers_59cc27() {
+  uint3 v = (0u).xxx;
+  arg_0.GetDimensions(v[0u], v[1u], v[2u]);
+  uint res = v.z;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store(0u, textureNumLayers_59cc27());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store(0u, textureNumLayers_59cc27());
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = textureNumLayers_59cc27();
+  VertexOutput v_1 = tint_symbol;
+  return v_1;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_2 = vertex_main_inner();
+  VertexOutput v_3 = v_2;
+  VertexOutput v_4 = v_2;
+  vertex_main_outputs v_5 = {v_4.prevent_dce, v_3.pos};
+  return v_5;
+}
+
diff --git a/test/tint/builtins/gen/var/textureNumLayers/59eb57.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/textureNumLayers/59eb57.wgsl.expected.ir.dxc.hlsl
index c3bb13b..dbebc8d 100644
--- a/test/tint/builtins/gen/var/textureNumLayers/59eb57.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureNumLayers/59eb57.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,19 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureNumLayers
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWByteAddressBuffer prevent_dce : register(u0);
+RWTexture2DArray<int4> arg_0 : register(u0, space1);
+uint textureNumLayers_59eb57() {
+  uint3 v = (0u).xxx;
+  arg_0.GetDimensions(v[0u], v[1u], v[2u]);
+  uint res = v.z;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store(0u, textureNumLayers_59eb57());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store(0u, textureNumLayers_59eb57());
+}
+
diff --git a/test/tint/builtins/gen/var/textureNumLayers/59eb57.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/textureNumLayers/59eb57.wgsl.expected.ir.fxc.hlsl
index c3bb13b..dbebc8d 100644
--- a/test/tint/builtins/gen/var/textureNumLayers/59eb57.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureNumLayers/59eb57.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,19 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureNumLayers
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWByteAddressBuffer prevent_dce : register(u0);
+RWTexture2DArray<int4> arg_0 : register(u0, space1);
+uint textureNumLayers_59eb57() {
+  uint3 v = (0u).xxx;
+  arg_0.GetDimensions(v[0u], v[1u], v[2u]);
+  uint res = v.z;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store(0u, textureNumLayers_59eb57());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store(0u, textureNumLayers_59eb57());
+}
+
diff --git a/test/tint/builtins/gen/var/textureNumLayers/5ee8f2.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/textureNumLayers/5ee8f2.wgsl.expected.ir.dxc.hlsl
index c3bb13b..b2881ed 100644
--- a/test/tint/builtins/gen/var/textureNumLayers/5ee8f2.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureNumLayers/5ee8f2.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,19 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureNumLayers
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWByteAddressBuffer prevent_dce : register(u0);
+RWTexture2DArray<float4> arg_0 : register(u0, space1);
+uint textureNumLayers_5ee8f2() {
+  uint3 v = (0u).xxx;
+  arg_0.GetDimensions(v[0u], v[1u], v[2u]);
+  uint res = v.z;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store(0u, textureNumLayers_5ee8f2());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store(0u, textureNumLayers_5ee8f2());
+}
+
diff --git a/test/tint/builtins/gen/var/textureNumLayers/5ee8f2.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/textureNumLayers/5ee8f2.wgsl.expected.ir.fxc.hlsl
index c3bb13b..b2881ed 100644
--- a/test/tint/builtins/gen/var/textureNumLayers/5ee8f2.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureNumLayers/5ee8f2.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,19 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureNumLayers
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWByteAddressBuffer prevent_dce : register(u0);
+RWTexture2DArray<float4> arg_0 : register(u0, space1);
+uint textureNumLayers_5ee8f2() {
+  uint3 v = (0u).xxx;
+  arg_0.GetDimensions(v[0u], v[1u], v[2u]);
+  uint res = v.z;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store(0u, textureNumLayers_5ee8f2());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store(0u, textureNumLayers_5ee8f2());
+}
+
diff --git a/test/tint/builtins/gen/var/textureNumLayers/5f20d1.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/textureNumLayers/5f20d1.wgsl.expected.ir.dxc.hlsl
index c3bb13b..1f4e7b4 100644
--- a/test/tint/builtins/gen/var/textureNumLayers/5f20d1.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureNumLayers/5f20d1.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,45 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  uint prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureNumLayers
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation uint VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+Texture2DArray<uint4> arg_0 : register(t0, space1);
+uint textureNumLayers_5f20d1() {
+  uint3 v = (0u).xxx;
+  arg_0.GetDimensions(v[0u], v[1u], v[2u]);
+  uint res = v.z;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store(0u, textureNumLayers_5f20d1());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store(0u, textureNumLayers_5f20d1());
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = textureNumLayers_5f20d1();
+  VertexOutput v_1 = tint_symbol;
+  return v_1;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_2 = vertex_main_inner();
+  VertexOutput v_3 = v_2;
+  VertexOutput v_4 = v_2;
+  vertex_main_outputs v_5 = {v_4.prevent_dce, v_3.pos};
+  return v_5;
+}
+
diff --git a/test/tint/builtins/gen/var/textureNumLayers/5f20d1.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/textureNumLayers/5f20d1.wgsl.expected.ir.fxc.hlsl
index c3bb13b..1f4e7b4 100644
--- a/test/tint/builtins/gen/var/textureNumLayers/5f20d1.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureNumLayers/5f20d1.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,45 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  uint prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureNumLayers
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation uint VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+Texture2DArray<uint4> arg_0 : register(t0, space1);
+uint textureNumLayers_5f20d1() {
+  uint3 v = (0u).xxx;
+  arg_0.GetDimensions(v[0u], v[1u], v[2u]);
+  uint res = v.z;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store(0u, textureNumLayers_5f20d1());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store(0u, textureNumLayers_5f20d1());
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = textureNumLayers_5f20d1();
+  VertexOutput v_1 = tint_symbol;
+  return v_1;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_2 = vertex_main_inner();
+  VertexOutput v_3 = v_2;
+  VertexOutput v_4 = v_2;
+  vertex_main_outputs v_5 = {v_4.prevent_dce, v_3.pos};
+  return v_5;
+}
+
diff --git a/test/tint/builtins/gen/var/textureNumLayers/61bd23.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/textureNumLayers/61bd23.wgsl.expected.ir.dxc.hlsl
index c3bb13b..2785da7 100644
--- a/test/tint/builtins/gen/var/textureNumLayers/61bd23.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureNumLayers/61bd23.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,19 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureNumLayers
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWByteAddressBuffer prevent_dce : register(u0);
+RWTexture2DArray<uint4> arg_0 : register(u0, space1);
+uint textureNumLayers_61bd23() {
+  uint3 v = (0u).xxx;
+  arg_0.GetDimensions(v[0u], v[1u], v[2u]);
+  uint res = v.z;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store(0u, textureNumLayers_61bd23());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store(0u, textureNumLayers_61bd23());
+}
+
diff --git a/test/tint/builtins/gen/var/textureNumLayers/61bd23.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/textureNumLayers/61bd23.wgsl.expected.ir.fxc.hlsl
index c3bb13b..2785da7 100644
--- a/test/tint/builtins/gen/var/textureNumLayers/61bd23.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureNumLayers/61bd23.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,19 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureNumLayers
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWByteAddressBuffer prevent_dce : register(u0);
+RWTexture2DArray<uint4> arg_0 : register(u0, space1);
+uint textureNumLayers_61bd23() {
+  uint3 v = (0u).xxx;
+  arg_0.GetDimensions(v[0u], v[1u], v[2u]);
+  uint res = v.z;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store(0u, textureNumLayers_61bd23());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store(0u, textureNumLayers_61bd23());
+}
+
diff --git a/test/tint/builtins/gen/var/textureNumLayers/622aa2.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/textureNumLayers/622aa2.wgsl.expected.ir.dxc.hlsl
index c3bb13b..428efd2 100644
--- a/test/tint/builtins/gen/var/textureNumLayers/622aa2.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureNumLayers/622aa2.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,19 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureNumLayers
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWByteAddressBuffer prevent_dce : register(u0);
+RWTexture2DArray<int4> arg_0 : register(u0, space1);
+uint textureNumLayers_622aa2() {
+  uint3 v = (0u).xxx;
+  arg_0.GetDimensions(v[0u], v[1u], v[2u]);
+  uint res = v.z;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store(0u, textureNumLayers_622aa2());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store(0u, textureNumLayers_622aa2());
+}
+
diff --git a/test/tint/builtins/gen/var/textureNumLayers/622aa2.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/textureNumLayers/622aa2.wgsl.expected.ir.fxc.hlsl
index c3bb13b..428efd2 100644
--- a/test/tint/builtins/gen/var/textureNumLayers/622aa2.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureNumLayers/622aa2.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,19 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureNumLayers
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWByteAddressBuffer prevent_dce : register(u0);
+RWTexture2DArray<int4> arg_0 : register(u0, space1);
+uint textureNumLayers_622aa2() {
+  uint3 v = (0u).xxx;
+  arg_0.GetDimensions(v[0u], v[1u], v[2u]);
+  uint res = v.z;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store(0u, textureNumLayers_622aa2());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store(0u, textureNumLayers_622aa2());
+}
+
diff --git a/test/tint/builtins/gen/var/textureNumLayers/6b4321.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/textureNumLayers/6b4321.wgsl.expected.ir.dxc.hlsl
index c3bb13b..335d98d 100644
--- a/test/tint/builtins/gen/var/textureNumLayers/6b4321.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureNumLayers/6b4321.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,45 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  uint prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureNumLayers
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation uint VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+TextureCubeArray<int4> arg_0 : register(t0, space1);
+uint textureNumLayers_6b4321() {
+  uint3 v = (0u).xxx;
+  arg_0.GetDimensions(v[0u], v[1u], v[2u]);
+  uint res = v.z;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store(0u, textureNumLayers_6b4321());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store(0u, textureNumLayers_6b4321());
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = textureNumLayers_6b4321();
+  VertexOutput v_1 = tint_symbol;
+  return v_1;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_2 = vertex_main_inner();
+  VertexOutput v_3 = v_2;
+  VertexOutput v_4 = v_2;
+  vertex_main_outputs v_5 = {v_4.prevent_dce, v_3.pos};
+  return v_5;
+}
+
diff --git a/test/tint/builtins/gen/var/textureNumLayers/6b4321.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/textureNumLayers/6b4321.wgsl.expected.ir.fxc.hlsl
index c3bb13b..335d98d 100644
--- a/test/tint/builtins/gen/var/textureNumLayers/6b4321.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureNumLayers/6b4321.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,45 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  uint prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureNumLayers
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation uint VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+TextureCubeArray<int4> arg_0 : register(t0, space1);
+uint textureNumLayers_6b4321() {
+  uint3 v = (0u).xxx;
+  arg_0.GetDimensions(v[0u], v[1u], v[2u]);
+  uint res = v.z;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store(0u, textureNumLayers_6b4321());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store(0u, textureNumLayers_6b4321());
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = textureNumLayers_6b4321();
+  VertexOutput v_1 = tint_symbol;
+  return v_1;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_2 = vertex_main_inner();
+  VertexOutput v_3 = v_2;
+  VertexOutput v_4 = v_2;
+  vertex_main_outputs v_5 = {v_4.prevent_dce, v_3.pos};
+  return v_5;
+}
+
diff --git a/test/tint/builtins/gen/var/textureNumLayers/6da0eb.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/textureNumLayers/6da0eb.wgsl.expected.ir.dxc.hlsl
index c3bb13b..a48cab6 100644
--- a/test/tint/builtins/gen/var/textureNumLayers/6da0eb.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureNumLayers/6da0eb.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,19 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureNumLayers
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWByteAddressBuffer prevent_dce : register(u0);
+RWTexture2DArray<float4> arg_0 : register(u0, space1);
+uint textureNumLayers_6da0eb() {
+  uint3 v = (0u).xxx;
+  arg_0.GetDimensions(v[0u], v[1u], v[2u]);
+  uint res = v.z;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store(0u, textureNumLayers_6da0eb());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store(0u, textureNumLayers_6da0eb());
+}
+
diff --git a/test/tint/builtins/gen/var/textureNumLayers/6da0eb.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/textureNumLayers/6da0eb.wgsl.expected.ir.fxc.hlsl
index c3bb13b..a48cab6 100644
--- a/test/tint/builtins/gen/var/textureNumLayers/6da0eb.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureNumLayers/6da0eb.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,19 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureNumLayers
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWByteAddressBuffer prevent_dce : register(u0);
+RWTexture2DArray<float4> arg_0 : register(u0, space1);
+uint textureNumLayers_6da0eb() {
+  uint3 v = (0u).xxx;
+  arg_0.GetDimensions(v[0u], v[1u], v[2u]);
+  uint res = v.z;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store(0u, textureNumLayers_6da0eb());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store(0u, textureNumLayers_6da0eb());
+}
+
diff --git a/test/tint/builtins/gen/var/textureNumLayers/77be7b.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/textureNumLayers/77be7b.wgsl.expected.ir.dxc.hlsl
index c3bb13b..467bf2a 100644
--- a/test/tint/builtins/gen/var/textureNumLayers/77be7b.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureNumLayers/77be7b.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,45 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  uint prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureNumLayers
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation uint VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+Texture2DArray<int4> arg_0 : register(t0, space1);
+uint textureNumLayers_77be7b() {
+  uint3 v = (0u).xxx;
+  arg_0.GetDimensions(v[0u], v[1u], v[2u]);
+  uint res = v.z;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store(0u, textureNumLayers_77be7b());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store(0u, textureNumLayers_77be7b());
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = textureNumLayers_77be7b();
+  VertexOutput v_1 = tint_symbol;
+  return v_1;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_2 = vertex_main_inner();
+  VertexOutput v_3 = v_2;
+  VertexOutput v_4 = v_2;
+  vertex_main_outputs v_5 = {v_4.prevent_dce, v_3.pos};
+  return v_5;
+}
+
diff --git a/test/tint/builtins/gen/var/textureNumLayers/77be7b.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/textureNumLayers/77be7b.wgsl.expected.ir.fxc.hlsl
index c3bb13b..467bf2a 100644
--- a/test/tint/builtins/gen/var/textureNumLayers/77be7b.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureNumLayers/77be7b.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,45 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  uint prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureNumLayers
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation uint VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+Texture2DArray<int4> arg_0 : register(t0, space1);
+uint textureNumLayers_77be7b() {
+  uint3 v = (0u).xxx;
+  arg_0.GetDimensions(v[0u], v[1u], v[2u]);
+  uint res = v.z;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store(0u, textureNumLayers_77be7b());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store(0u, textureNumLayers_77be7b());
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = textureNumLayers_77be7b();
+  VertexOutput v_1 = tint_symbol;
+  return v_1;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_2 = vertex_main_inner();
+  VertexOutput v_3 = v_2;
+  VertexOutput v_4 = v_2;
+  vertex_main_outputs v_5 = {v_4.prevent_dce, v_3.pos};
+  return v_5;
+}
+
diff --git a/test/tint/builtins/gen/var/textureNumLayers/7895f4.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/textureNumLayers/7895f4.wgsl.expected.ir.dxc.hlsl
index c3bb13b..2a8959e 100644
--- a/test/tint/builtins/gen/var/textureNumLayers/7895f4.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureNumLayers/7895f4.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,45 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  uint prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureNumLayers
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation uint VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+Texture2DArray<float4> arg_0 : register(t0, space1);
+uint textureNumLayers_7895f4() {
+  uint3 v = (0u).xxx;
+  arg_0.GetDimensions(v[0u], v[1u], v[2u]);
+  uint res = v.z;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store(0u, textureNumLayers_7895f4());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store(0u, textureNumLayers_7895f4());
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = textureNumLayers_7895f4();
+  VertexOutput v_1 = tint_symbol;
+  return v_1;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_2 = vertex_main_inner();
+  VertexOutput v_3 = v_2;
+  VertexOutput v_4 = v_2;
+  vertex_main_outputs v_5 = {v_4.prevent_dce, v_3.pos};
+  return v_5;
+}
+
diff --git a/test/tint/builtins/gen/var/textureNumLayers/7895f4.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/textureNumLayers/7895f4.wgsl.expected.ir.fxc.hlsl
index c3bb13b..2a8959e 100644
--- a/test/tint/builtins/gen/var/textureNumLayers/7895f4.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureNumLayers/7895f4.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,45 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  uint prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureNumLayers
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation uint VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+Texture2DArray<float4> arg_0 : register(t0, space1);
+uint textureNumLayers_7895f4() {
+  uint3 v = (0u).xxx;
+  arg_0.GetDimensions(v[0u], v[1u], v[2u]);
+  uint res = v.z;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store(0u, textureNumLayers_7895f4());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store(0u, textureNumLayers_7895f4());
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = textureNumLayers_7895f4();
+  VertexOutput v_1 = tint_symbol;
+  return v_1;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_2 = vertex_main_inner();
+  VertexOutput v_3 = v_2;
+  VertexOutput v_4 = v_2;
+  vertex_main_outputs v_5 = {v_4.prevent_dce, v_3.pos};
+  return v_5;
+}
+
diff --git a/test/tint/builtins/gen/var/textureNumLayers/7f28cf.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/textureNumLayers/7f28cf.wgsl.expected.ir.dxc.hlsl
index c3bb13b..f845036 100644
--- a/test/tint/builtins/gen/var/textureNumLayers/7f28cf.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureNumLayers/7f28cf.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,19 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureNumLayers
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWByteAddressBuffer prevent_dce : register(u0);
+RWTexture2DArray<float4> arg_0 : register(u0, space1);
+uint textureNumLayers_7f28cf() {
+  uint3 v = (0u).xxx;
+  arg_0.GetDimensions(v[0u], v[1u], v[2u]);
+  uint res = v.z;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store(0u, textureNumLayers_7f28cf());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store(0u, textureNumLayers_7f28cf());
+}
+
diff --git a/test/tint/builtins/gen/var/textureNumLayers/7f28cf.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/textureNumLayers/7f28cf.wgsl.expected.ir.fxc.hlsl
index c3bb13b..f845036 100644
--- a/test/tint/builtins/gen/var/textureNumLayers/7f28cf.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureNumLayers/7f28cf.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,19 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureNumLayers
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWByteAddressBuffer prevent_dce : register(u0);
+RWTexture2DArray<float4> arg_0 : register(u0, space1);
+uint textureNumLayers_7f28cf() {
+  uint3 v = (0u).xxx;
+  arg_0.GetDimensions(v[0u], v[1u], v[2u]);
+  uint res = v.z;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store(0u, textureNumLayers_7f28cf());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store(0u, textureNumLayers_7f28cf());
+}
+
diff --git a/test/tint/builtins/gen/var/textureNumLayers/8356f7.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/textureNumLayers/8356f7.wgsl.expected.ir.dxc.hlsl
index c3bb13b..8e83757 100644
--- a/test/tint/builtins/gen/var/textureNumLayers/8356f7.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureNumLayers/8356f7.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,19 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureNumLayers
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWByteAddressBuffer prevent_dce : register(u0);
+RWTexture2DArray<float4> arg_0 : register(u0, space1);
+uint textureNumLayers_8356f7() {
+  uint3 v = (0u).xxx;
+  arg_0.GetDimensions(v[0u], v[1u], v[2u]);
+  uint res = v.z;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store(0u, textureNumLayers_8356f7());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store(0u, textureNumLayers_8356f7());
+}
+
diff --git a/test/tint/builtins/gen/var/textureNumLayers/8356f7.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/textureNumLayers/8356f7.wgsl.expected.ir.fxc.hlsl
index c3bb13b..8e83757 100644
--- a/test/tint/builtins/gen/var/textureNumLayers/8356f7.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureNumLayers/8356f7.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,19 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureNumLayers
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWByteAddressBuffer prevent_dce : register(u0);
+RWTexture2DArray<float4> arg_0 : register(u0, space1);
+uint textureNumLayers_8356f7() {
+  uint3 v = (0u).xxx;
+  arg_0.GetDimensions(v[0u], v[1u], v[2u]);
+  uint res = v.z;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store(0u, textureNumLayers_8356f7());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store(0u, textureNumLayers_8356f7());
+}
+
diff --git a/test/tint/builtins/gen/var/textureNumLayers/878dea.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/textureNumLayers/878dea.wgsl.expected.ir.dxc.hlsl
index c3bb13b..0fe5d6d 100644
--- a/test/tint/builtins/gen/var/textureNumLayers/878dea.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureNumLayers/878dea.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,19 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureNumLayers
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWByteAddressBuffer prevent_dce : register(u0);
+RWTexture2DArray<int4> arg_0 : register(u0, space1);
+uint textureNumLayers_878dea() {
+  uint3 v = (0u).xxx;
+  arg_0.GetDimensions(v[0u], v[1u], v[2u]);
+  uint res = v.z;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store(0u, textureNumLayers_878dea());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store(0u, textureNumLayers_878dea());
+}
+
diff --git a/test/tint/builtins/gen/var/textureNumLayers/878dea.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/textureNumLayers/878dea.wgsl.expected.ir.fxc.hlsl
index c3bb13b..0fe5d6d 100644
--- a/test/tint/builtins/gen/var/textureNumLayers/878dea.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureNumLayers/878dea.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,19 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureNumLayers
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWByteAddressBuffer prevent_dce : register(u0);
+RWTexture2DArray<int4> arg_0 : register(u0, space1);
+uint textureNumLayers_878dea() {
+  uint3 v = (0u).xxx;
+  arg_0.GetDimensions(v[0u], v[1u], v[2u]);
+  uint res = v.z;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store(0u, textureNumLayers_878dea());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store(0u, textureNumLayers_878dea());
+}
+
diff --git a/test/tint/builtins/gen/var/textureNumLayers/87faad.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/textureNumLayers/87faad.wgsl.expected.ir.dxc.hlsl
index c3bb13b..036e9d5 100644
--- a/test/tint/builtins/gen/var/textureNumLayers/87faad.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureNumLayers/87faad.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,19 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureNumLayers
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWByteAddressBuffer prevent_dce : register(u0);
+RWTexture2DArray<uint4> arg_0 : register(u0, space1);
+uint textureNumLayers_87faad() {
+  uint3 v = (0u).xxx;
+  arg_0.GetDimensions(v[0u], v[1u], v[2u]);
+  uint res = v.z;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store(0u, textureNumLayers_87faad());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store(0u, textureNumLayers_87faad());
+}
+
diff --git a/test/tint/builtins/gen/var/textureNumLayers/87faad.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/textureNumLayers/87faad.wgsl.expected.ir.fxc.hlsl
index c3bb13b..036e9d5 100644
--- a/test/tint/builtins/gen/var/textureNumLayers/87faad.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureNumLayers/87faad.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,19 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureNumLayers
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWByteAddressBuffer prevent_dce : register(u0);
+RWTexture2DArray<uint4> arg_0 : register(u0, space1);
+uint textureNumLayers_87faad() {
+  uint3 v = (0u).xxx;
+  arg_0.GetDimensions(v[0u], v[1u], v[2u]);
+  uint res = v.z;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store(0u, textureNumLayers_87faad());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store(0u, textureNumLayers_87faad());
+}
+
diff --git a/test/tint/builtins/gen/var/textureNumLayers/8ac32a.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/textureNumLayers/8ac32a.wgsl.expected.ir.dxc.hlsl
index c3bb13b..55e891f8 100644
--- a/test/tint/builtins/gen/var/textureNumLayers/8ac32a.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureNumLayers/8ac32a.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,45 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  uint prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureNumLayers
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation uint VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+Texture2DArray<uint4> arg_0 : register(t0, space1);
+uint textureNumLayers_8ac32a() {
+  uint3 v = (0u).xxx;
+  arg_0.GetDimensions(v[0u], v[1u], v[2u]);
+  uint res = v.z;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store(0u, textureNumLayers_8ac32a());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store(0u, textureNumLayers_8ac32a());
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = textureNumLayers_8ac32a();
+  VertexOutput v_1 = tint_symbol;
+  return v_1;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_2 = vertex_main_inner();
+  VertexOutput v_3 = v_2;
+  VertexOutput v_4 = v_2;
+  vertex_main_outputs v_5 = {v_4.prevent_dce, v_3.pos};
+  return v_5;
+}
+
diff --git a/test/tint/builtins/gen/var/textureNumLayers/8ac32a.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/textureNumLayers/8ac32a.wgsl.expected.ir.fxc.hlsl
index c3bb13b..55e891f8 100644
--- a/test/tint/builtins/gen/var/textureNumLayers/8ac32a.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureNumLayers/8ac32a.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,45 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  uint prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureNumLayers
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation uint VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+Texture2DArray<uint4> arg_0 : register(t0, space1);
+uint textureNumLayers_8ac32a() {
+  uint3 v = (0u).xxx;
+  arg_0.GetDimensions(v[0u], v[1u], v[2u]);
+  uint res = v.z;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store(0u, textureNumLayers_8ac32a());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store(0u, textureNumLayers_8ac32a());
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = textureNumLayers_8ac32a();
+  VertexOutput v_1 = tint_symbol;
+  return v_1;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_2 = vertex_main_inner();
+  VertexOutput v_3 = v_2;
+  VertexOutput v_4 = v_2;
+  vertex_main_outputs v_5 = {v_4.prevent_dce, v_3.pos};
+  return v_5;
+}
+
diff --git a/test/tint/builtins/gen/var/textureNumLayers/8bd987.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/textureNumLayers/8bd987.wgsl.expected.ir.dxc.hlsl
index c3bb13b..33006f3 100644
--- a/test/tint/builtins/gen/var/textureNumLayers/8bd987.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureNumLayers/8bd987.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,19 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureNumLayers
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWByteAddressBuffer prevent_dce : register(u0);
+RWTexture2DArray<int4> arg_0 : register(u0, space1);
+uint textureNumLayers_8bd987() {
+  uint3 v = (0u).xxx;
+  arg_0.GetDimensions(v[0u], v[1u], v[2u]);
+  uint res = v.z;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store(0u, textureNumLayers_8bd987());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store(0u, textureNumLayers_8bd987());
+}
+
diff --git a/test/tint/builtins/gen/var/textureNumLayers/8bd987.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/textureNumLayers/8bd987.wgsl.expected.ir.fxc.hlsl
index c3bb13b..33006f3 100644
--- a/test/tint/builtins/gen/var/textureNumLayers/8bd987.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureNumLayers/8bd987.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,19 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureNumLayers
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWByteAddressBuffer prevent_dce : register(u0);
+RWTexture2DArray<int4> arg_0 : register(u0, space1);
+uint textureNumLayers_8bd987() {
+  uint3 v = (0u).xxx;
+  arg_0.GetDimensions(v[0u], v[1u], v[2u]);
+  uint res = v.z;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store(0u, textureNumLayers_8bd987());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store(0u, textureNumLayers_8bd987());
+}
+
diff --git a/test/tint/builtins/gen/var/textureNumLayers/8dbf23.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/textureNumLayers/8dbf23.wgsl.expected.ir.dxc.hlsl
index c3bb13b..8c7f6b1 100644
--- a/test/tint/builtins/gen/var/textureNumLayers/8dbf23.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureNumLayers/8dbf23.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,19 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureNumLayers
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWByteAddressBuffer prevent_dce : register(u0);
+RWTexture2DArray<float4> arg_0 : register(u0, space1);
+uint textureNumLayers_8dbf23() {
+  uint3 v = (0u).xxx;
+  arg_0.GetDimensions(v[0u], v[1u], v[2u]);
+  uint res = v.z;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store(0u, textureNumLayers_8dbf23());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store(0u, textureNumLayers_8dbf23());
+}
+
diff --git a/test/tint/builtins/gen/var/textureNumLayers/8dbf23.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/textureNumLayers/8dbf23.wgsl.expected.ir.fxc.hlsl
index c3bb13b..8c7f6b1 100644
--- a/test/tint/builtins/gen/var/textureNumLayers/8dbf23.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureNumLayers/8dbf23.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,19 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureNumLayers
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWByteAddressBuffer prevent_dce : register(u0);
+RWTexture2DArray<float4> arg_0 : register(u0, space1);
+uint textureNumLayers_8dbf23() {
+  uint3 v = (0u).xxx;
+  arg_0.GetDimensions(v[0u], v[1u], v[2u]);
+  uint res = v.z;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store(0u, textureNumLayers_8dbf23());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store(0u, textureNumLayers_8dbf23());
+}
+
diff --git a/test/tint/builtins/gen/var/textureNumLayers/8e1bd0.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/textureNumLayers/8e1bd0.wgsl.expected.ir.dxc.hlsl
index c3bb13b..8cfa2e6 100644
--- a/test/tint/builtins/gen/var/textureNumLayers/8e1bd0.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureNumLayers/8e1bd0.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,19 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureNumLayers
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWByteAddressBuffer prevent_dce : register(u0);
+RWTexture2DArray<int4> arg_0 : register(u0, space1);
+uint textureNumLayers_8e1bd0() {
+  uint3 v = (0u).xxx;
+  arg_0.GetDimensions(v[0u], v[1u], v[2u]);
+  uint res = v.z;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store(0u, textureNumLayers_8e1bd0());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store(0u, textureNumLayers_8e1bd0());
+}
+
diff --git a/test/tint/builtins/gen/var/textureNumLayers/8e1bd0.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/textureNumLayers/8e1bd0.wgsl.expected.ir.fxc.hlsl
index c3bb13b..8cfa2e6 100644
--- a/test/tint/builtins/gen/var/textureNumLayers/8e1bd0.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureNumLayers/8e1bd0.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,19 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureNumLayers
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWByteAddressBuffer prevent_dce : register(u0);
+RWTexture2DArray<int4> arg_0 : register(u0, space1);
+uint textureNumLayers_8e1bd0() {
+  uint3 v = (0u).xxx;
+  arg_0.GetDimensions(v[0u], v[1u], v[2u]);
+  uint res = v.z;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store(0u, textureNumLayers_8e1bd0());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store(0u, textureNumLayers_8e1bd0());
+}
+
diff --git a/test/tint/builtins/gen/var/textureNumLayers/90b8cc.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/textureNumLayers/90b8cc.wgsl.expected.ir.dxc.hlsl
index c3bb13b..9bd35eb 100644
--- a/test/tint/builtins/gen/var/textureNumLayers/90b8cc.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureNumLayers/90b8cc.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,45 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  uint prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureNumLayers
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation uint VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+Texture2DArray<float4> arg_0 : register(t0, space1);
+uint textureNumLayers_90b8cc() {
+  uint3 v = (0u).xxx;
+  arg_0.GetDimensions(v[0u], v[1u], v[2u]);
+  uint res = v.z;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store(0u, textureNumLayers_90b8cc());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store(0u, textureNumLayers_90b8cc());
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = textureNumLayers_90b8cc();
+  VertexOutput v_1 = tint_symbol;
+  return v_1;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_2 = vertex_main_inner();
+  VertexOutput v_3 = v_2;
+  VertexOutput v_4 = v_2;
+  vertex_main_outputs v_5 = {v_4.prevent_dce, v_3.pos};
+  return v_5;
+}
+
diff --git a/test/tint/builtins/gen/var/textureNumLayers/90b8cc.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/textureNumLayers/90b8cc.wgsl.expected.ir.fxc.hlsl
index c3bb13b..9bd35eb 100644
--- a/test/tint/builtins/gen/var/textureNumLayers/90b8cc.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureNumLayers/90b8cc.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,45 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  uint prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureNumLayers
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation uint VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+Texture2DArray<float4> arg_0 : register(t0, space1);
+uint textureNumLayers_90b8cc() {
+  uint3 v = (0u).xxx;
+  arg_0.GetDimensions(v[0u], v[1u], v[2u]);
+  uint res = v.z;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store(0u, textureNumLayers_90b8cc());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store(0u, textureNumLayers_90b8cc());
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = textureNumLayers_90b8cc();
+  VertexOutput v_1 = tint_symbol;
+  return v_1;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_2 = vertex_main_inner();
+  VertexOutput v_3 = v_2;
+  VertexOutput v_4 = v_2;
+  vertex_main_outputs v_5 = {v_4.prevent_dce, v_3.pos};
+  return v_5;
+}
+
diff --git a/test/tint/builtins/gen/var/textureNumLayers/9695c6.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/textureNumLayers/9695c6.wgsl.expected.ir.dxc.hlsl
index c3bb13b..6f529a9 100644
--- a/test/tint/builtins/gen/var/textureNumLayers/9695c6.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureNumLayers/9695c6.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,19 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureNumLayers
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWByteAddressBuffer prevent_dce : register(u0);
+RWTexture2DArray<uint4> arg_0 : register(u0, space1);
+uint textureNumLayers_9695c6() {
+  uint3 v = (0u).xxx;
+  arg_0.GetDimensions(v[0u], v[1u], v[2u]);
+  uint res = v.z;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store(0u, textureNumLayers_9695c6());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store(0u, textureNumLayers_9695c6());
+}
+
diff --git a/test/tint/builtins/gen/var/textureNumLayers/9695c6.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/textureNumLayers/9695c6.wgsl.expected.ir.fxc.hlsl
index c3bb13b..6f529a9 100644
--- a/test/tint/builtins/gen/var/textureNumLayers/9695c6.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureNumLayers/9695c6.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,19 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureNumLayers
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWByteAddressBuffer prevent_dce : register(u0);
+RWTexture2DArray<uint4> arg_0 : register(u0, space1);
+uint textureNumLayers_9695c6() {
+  uint3 v = (0u).xxx;
+  arg_0.GetDimensions(v[0u], v[1u], v[2u]);
+  uint res = v.z;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store(0u, textureNumLayers_9695c6());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store(0u, textureNumLayers_9695c6());
+}
+
diff --git a/test/tint/builtins/gen/var/textureNumLayers/98a9cf.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/textureNumLayers/98a9cf.wgsl.expected.ir.dxc.hlsl
index c3bb13b..878814a 100644
--- a/test/tint/builtins/gen/var/textureNumLayers/98a9cf.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureNumLayers/98a9cf.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,19 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureNumLayers
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWByteAddressBuffer prevent_dce : register(u0);
+RWTexture2DArray<float4> arg_0 : register(u0, space1);
+uint textureNumLayers_98a9cf() {
+  uint3 v = (0u).xxx;
+  arg_0.GetDimensions(v[0u], v[1u], v[2u]);
+  uint res = v.z;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store(0u, textureNumLayers_98a9cf());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store(0u, textureNumLayers_98a9cf());
+}
+
diff --git a/test/tint/builtins/gen/var/textureNumLayers/98a9cf.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/textureNumLayers/98a9cf.wgsl.expected.ir.fxc.hlsl
index c3bb13b..878814a 100644
--- a/test/tint/builtins/gen/var/textureNumLayers/98a9cf.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureNumLayers/98a9cf.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,19 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureNumLayers
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWByteAddressBuffer prevent_dce : register(u0);
+RWTexture2DArray<float4> arg_0 : register(u0, space1);
+uint textureNumLayers_98a9cf() {
+  uint3 v = (0u).xxx;
+  arg_0.GetDimensions(v[0u], v[1u], v[2u]);
+  uint res = v.z;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store(0u, textureNumLayers_98a9cf());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store(0u, textureNumLayers_98a9cf());
+}
+
diff --git a/test/tint/builtins/gen/var/textureNumLayers/9c60e3.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/textureNumLayers/9c60e3.wgsl.expected.ir.dxc.hlsl
index c3bb13b..9559388 100644
--- a/test/tint/builtins/gen/var/textureNumLayers/9c60e3.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureNumLayers/9c60e3.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,45 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  uint prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureNumLayers
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation uint VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+Texture2DArray<uint4> arg_0 : register(t0, space1);
+uint textureNumLayers_9c60e3() {
+  uint3 v = (0u).xxx;
+  arg_0.GetDimensions(v[0u], v[1u], v[2u]);
+  uint res = v.z;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store(0u, textureNumLayers_9c60e3());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store(0u, textureNumLayers_9c60e3());
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = textureNumLayers_9c60e3();
+  VertexOutput v_1 = tint_symbol;
+  return v_1;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_2 = vertex_main_inner();
+  VertexOutput v_3 = v_2;
+  VertexOutput v_4 = v_2;
+  vertex_main_outputs v_5 = {v_4.prevent_dce, v_3.pos};
+  return v_5;
+}
+
diff --git a/test/tint/builtins/gen/var/textureNumLayers/9c60e3.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/textureNumLayers/9c60e3.wgsl.expected.ir.fxc.hlsl
index c3bb13b..9559388 100644
--- a/test/tint/builtins/gen/var/textureNumLayers/9c60e3.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureNumLayers/9c60e3.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,45 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  uint prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureNumLayers
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation uint VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+Texture2DArray<uint4> arg_0 : register(t0, space1);
+uint textureNumLayers_9c60e3() {
+  uint3 v = (0u).xxx;
+  arg_0.GetDimensions(v[0u], v[1u], v[2u]);
+  uint res = v.z;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store(0u, textureNumLayers_9c60e3());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store(0u, textureNumLayers_9c60e3());
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = textureNumLayers_9c60e3();
+  VertexOutput v_1 = tint_symbol;
+  return v_1;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_2 = vertex_main_inner();
+  VertexOutput v_3 = v_2;
+  VertexOutput v_4 = v_2;
+  vertex_main_outputs v_5 = {v_4.prevent_dce, v_3.pos};
+  return v_5;
+}
+
diff --git a/test/tint/builtins/gen/var/textureNumLayers/a54655.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/textureNumLayers/a54655.wgsl.expected.ir.dxc.hlsl
index c3bb13b..ac4dba6 100644
--- a/test/tint/builtins/gen/var/textureNumLayers/a54655.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureNumLayers/a54655.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,19 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureNumLayers
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWByteAddressBuffer prevent_dce : register(u0);
+RWTexture2DArray<float4> arg_0 : register(u0, space1);
+uint textureNumLayers_a54655() {
+  uint3 v = (0u).xxx;
+  arg_0.GetDimensions(v[0u], v[1u], v[2u]);
+  uint res = v.z;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store(0u, textureNumLayers_a54655());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store(0u, textureNumLayers_a54655());
+}
+
diff --git a/test/tint/builtins/gen/var/textureNumLayers/a54655.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/textureNumLayers/a54655.wgsl.expected.ir.fxc.hlsl
index c3bb13b..ac4dba6 100644
--- a/test/tint/builtins/gen/var/textureNumLayers/a54655.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureNumLayers/a54655.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,19 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureNumLayers
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWByteAddressBuffer prevent_dce : register(u0);
+RWTexture2DArray<float4> arg_0 : register(u0, space1);
+uint textureNumLayers_a54655() {
+  uint3 v = (0u).xxx;
+  arg_0.GetDimensions(v[0u], v[1u], v[2u]);
+  uint res = v.z;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store(0u, textureNumLayers_a54655());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store(0u, textureNumLayers_a54655());
+}
+
diff --git a/test/tint/builtins/gen/var/textureNumLayers/a9d3f5.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/textureNumLayers/a9d3f5.wgsl.expected.ir.dxc.hlsl
index c3bb13b..72b43ea 100644
--- a/test/tint/builtins/gen/var/textureNumLayers/a9d3f5.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureNumLayers/a9d3f5.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,45 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  uint prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureNumLayers
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation uint VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+Texture2DArray arg_0 : register(t0, space1);
+uint textureNumLayers_a9d3f5() {
+  uint3 v = (0u).xxx;
+  arg_0.GetDimensions(v[0u], v[1u], v[2u]);
+  uint res = v.z;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store(0u, textureNumLayers_a9d3f5());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store(0u, textureNumLayers_a9d3f5());
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = textureNumLayers_a9d3f5();
+  VertexOutput v_1 = tint_symbol;
+  return v_1;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_2 = vertex_main_inner();
+  VertexOutput v_3 = v_2;
+  VertexOutput v_4 = v_2;
+  vertex_main_outputs v_5 = {v_4.prevent_dce, v_3.pos};
+  return v_5;
+}
+
diff --git a/test/tint/builtins/gen/var/textureNumLayers/a9d3f5.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/textureNumLayers/a9d3f5.wgsl.expected.ir.fxc.hlsl
index c3bb13b..72b43ea 100644
--- a/test/tint/builtins/gen/var/textureNumLayers/a9d3f5.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureNumLayers/a9d3f5.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,45 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  uint prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureNumLayers
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation uint VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+Texture2DArray arg_0 : register(t0, space1);
+uint textureNumLayers_a9d3f5() {
+  uint3 v = (0u).xxx;
+  arg_0.GetDimensions(v[0u], v[1u], v[2u]);
+  uint res = v.z;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store(0u, textureNumLayers_a9d3f5());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store(0u, textureNumLayers_a9d3f5());
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = textureNumLayers_a9d3f5();
+  VertexOutput v_1 = tint_symbol;
+  return v_1;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_2 = vertex_main_inner();
+  VertexOutput v_3 = v_2;
+  VertexOutput v_4 = v_2;
+  vertex_main_outputs v_5 = {v_4.prevent_dce, v_3.pos};
+  return v_5;
+}
+
diff --git a/test/tint/builtins/gen/var/textureNumLayers/aac630.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/textureNumLayers/aac630.wgsl.expected.ir.dxc.hlsl
index c3bb13b..a172d3f 100644
--- a/test/tint/builtins/gen/var/textureNumLayers/aac630.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureNumLayers/aac630.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,19 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureNumLayers
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWByteAddressBuffer prevent_dce : register(u0);
+RWTexture2DArray<float4> arg_0 : register(u0, space1);
+uint textureNumLayers_aac630() {
+  uint3 v = (0u).xxx;
+  arg_0.GetDimensions(v[0u], v[1u], v[2u]);
+  uint res = v.z;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store(0u, textureNumLayers_aac630());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store(0u, textureNumLayers_aac630());
+}
+
diff --git a/test/tint/builtins/gen/var/textureNumLayers/aac630.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/textureNumLayers/aac630.wgsl.expected.ir.fxc.hlsl
index c3bb13b..a172d3f 100644
--- a/test/tint/builtins/gen/var/textureNumLayers/aac630.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureNumLayers/aac630.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,19 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureNumLayers
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWByteAddressBuffer prevent_dce : register(u0);
+RWTexture2DArray<float4> arg_0 : register(u0, space1);
+uint textureNumLayers_aac630() {
+  uint3 v = (0u).xxx;
+  arg_0.GetDimensions(v[0u], v[1u], v[2u]);
+  uint res = v.z;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store(0u, textureNumLayers_aac630());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store(0u, textureNumLayers_aac630());
+}
+
diff --git a/test/tint/builtins/gen/var/textureNumLayers/bf2f76.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/textureNumLayers/bf2f76.wgsl.expected.ir.dxc.hlsl
index c3bb13b..86a35e5 100644
--- a/test/tint/builtins/gen/var/textureNumLayers/bf2f76.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureNumLayers/bf2f76.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,45 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  uint prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureNumLayers
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation uint VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+Texture2DArray<int4> arg_0 : register(t0, space1);
+uint textureNumLayers_bf2f76() {
+  uint3 v = (0u).xxx;
+  arg_0.GetDimensions(v[0u], v[1u], v[2u]);
+  uint res = v.z;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store(0u, textureNumLayers_bf2f76());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store(0u, textureNumLayers_bf2f76());
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = textureNumLayers_bf2f76();
+  VertexOutput v_1 = tint_symbol;
+  return v_1;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_2 = vertex_main_inner();
+  VertexOutput v_3 = v_2;
+  VertexOutput v_4 = v_2;
+  vertex_main_outputs v_5 = {v_4.prevent_dce, v_3.pos};
+  return v_5;
+}
+
diff --git a/test/tint/builtins/gen/var/textureNumLayers/bf2f76.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/textureNumLayers/bf2f76.wgsl.expected.ir.fxc.hlsl
index c3bb13b..86a35e5 100644
--- a/test/tint/builtins/gen/var/textureNumLayers/bf2f76.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureNumLayers/bf2f76.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,45 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  uint prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureNumLayers
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation uint VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+Texture2DArray<int4> arg_0 : register(t0, space1);
+uint textureNumLayers_bf2f76() {
+  uint3 v = (0u).xxx;
+  arg_0.GetDimensions(v[0u], v[1u], v[2u]);
+  uint res = v.z;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store(0u, textureNumLayers_bf2f76());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store(0u, textureNumLayers_bf2f76());
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = textureNumLayers_bf2f76();
+  VertexOutput v_1 = tint_symbol;
+  return v_1;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_2 = vertex_main_inner();
+  VertexOutput v_3 = v_2;
+  VertexOutput v_4 = v_2;
+  vertex_main_outputs v_5 = {v_4.prevent_dce, v_3.pos};
+  return v_5;
+}
+
diff --git a/test/tint/builtins/gen/var/textureNumLayers/c1eca9.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/textureNumLayers/c1eca9.wgsl.expected.ir.dxc.hlsl
index c3bb13b..28894e1 100644
--- a/test/tint/builtins/gen/var/textureNumLayers/c1eca9.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureNumLayers/c1eca9.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,45 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  uint prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureNumLayers
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation uint VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+TextureCubeArray<uint4> arg_0 : register(t0, space1);
+uint textureNumLayers_c1eca9() {
+  uint3 v = (0u).xxx;
+  arg_0.GetDimensions(v[0u], v[1u], v[2u]);
+  uint res = v.z;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store(0u, textureNumLayers_c1eca9());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store(0u, textureNumLayers_c1eca9());
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = textureNumLayers_c1eca9();
+  VertexOutput v_1 = tint_symbol;
+  return v_1;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_2 = vertex_main_inner();
+  VertexOutput v_3 = v_2;
+  VertexOutput v_4 = v_2;
+  vertex_main_outputs v_5 = {v_4.prevent_dce, v_3.pos};
+  return v_5;
+}
+
diff --git a/test/tint/builtins/gen/var/textureNumLayers/c1eca9.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/textureNumLayers/c1eca9.wgsl.expected.ir.fxc.hlsl
index c3bb13b..28894e1 100644
--- a/test/tint/builtins/gen/var/textureNumLayers/c1eca9.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureNumLayers/c1eca9.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,45 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  uint prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureNumLayers
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation uint VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+TextureCubeArray<uint4> arg_0 : register(t0, space1);
+uint textureNumLayers_c1eca9() {
+  uint3 v = (0u).xxx;
+  arg_0.GetDimensions(v[0u], v[1u], v[2u]);
+  uint res = v.z;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store(0u, textureNumLayers_c1eca9());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store(0u, textureNumLayers_c1eca9());
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = textureNumLayers_c1eca9();
+  VertexOutput v_1 = tint_symbol;
+  return v_1;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_2 = vertex_main_inner();
+  VertexOutput v_3 = v_2;
+  VertexOutput v_4 = v_2;
+  vertex_main_outputs v_5 = {v_4.prevent_dce, v_3.pos};
+  return v_5;
+}
+
diff --git a/test/tint/builtins/gen/var/textureNumLayers/d3e21f.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/textureNumLayers/d3e21f.wgsl.expected.ir.dxc.hlsl
index c3bb13b..ccdf1e3 100644
--- a/test/tint/builtins/gen/var/textureNumLayers/d3e21f.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureNumLayers/d3e21f.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,45 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  uint prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureNumLayers
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation uint VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+Texture2DArray<uint4> arg_0 : register(t0, space1);
+uint textureNumLayers_d3e21f() {
+  uint3 v = (0u).xxx;
+  arg_0.GetDimensions(v[0u], v[1u], v[2u]);
+  uint res = v.z;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store(0u, textureNumLayers_d3e21f());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store(0u, textureNumLayers_d3e21f());
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = textureNumLayers_d3e21f();
+  VertexOutput v_1 = tint_symbol;
+  return v_1;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_2 = vertex_main_inner();
+  VertexOutput v_3 = v_2;
+  VertexOutput v_4 = v_2;
+  vertex_main_outputs v_5 = {v_4.prevent_dce, v_3.pos};
+  return v_5;
+}
+
diff --git a/test/tint/builtins/gen/var/textureNumLayers/d3e21f.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/textureNumLayers/d3e21f.wgsl.expected.ir.fxc.hlsl
index c3bb13b..ccdf1e3 100644
--- a/test/tint/builtins/gen/var/textureNumLayers/d3e21f.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureNumLayers/d3e21f.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,45 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  uint prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureNumLayers
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation uint VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+Texture2DArray<uint4> arg_0 : register(t0, space1);
+uint textureNumLayers_d3e21f() {
+  uint3 v = (0u).xxx;
+  arg_0.GetDimensions(v[0u], v[1u], v[2u]);
+  uint res = v.z;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store(0u, textureNumLayers_d3e21f());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store(0u, textureNumLayers_d3e21f());
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = textureNumLayers_d3e21f();
+  VertexOutput v_1 = tint_symbol;
+  return v_1;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_2 = vertex_main_inner();
+  VertexOutput v_3 = v_2;
+  VertexOutput v_4 = v_2;
+  vertex_main_outputs v_5 = {v_4.prevent_dce, v_3.pos};
+  return v_5;
+}
+
diff --git a/test/tint/builtins/gen/var/textureNumLayers/d3f655.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/textureNumLayers/d3f655.wgsl.expected.ir.dxc.hlsl
index c3bb13b..442aa59 100644
--- a/test/tint/builtins/gen/var/textureNumLayers/d3f655.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureNumLayers/d3f655.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,19 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureNumLayers
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWByteAddressBuffer prevent_dce : register(u0);
+RWTexture2DArray<int4> arg_0 : register(u0, space1);
+uint textureNumLayers_d3f655() {
+  uint3 v = (0u).xxx;
+  arg_0.GetDimensions(v[0u], v[1u], v[2u]);
+  uint res = v.z;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store(0u, textureNumLayers_d3f655());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store(0u, textureNumLayers_d3f655());
+}
+
diff --git a/test/tint/builtins/gen/var/textureNumLayers/d3f655.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/textureNumLayers/d3f655.wgsl.expected.ir.fxc.hlsl
index c3bb13b..442aa59 100644
--- a/test/tint/builtins/gen/var/textureNumLayers/d3f655.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureNumLayers/d3f655.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,19 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureNumLayers
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWByteAddressBuffer prevent_dce : register(u0);
+RWTexture2DArray<int4> arg_0 : register(u0, space1);
+uint textureNumLayers_d3f655() {
+  uint3 v = (0u).xxx;
+  arg_0.GetDimensions(v[0u], v[1u], v[2u]);
+  uint res = v.z;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store(0u, textureNumLayers_d3f655());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store(0u, textureNumLayers_d3f655());
+}
+
diff --git a/test/tint/builtins/gen/var/textureNumLayers/d75a0b.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/textureNumLayers/d75a0b.wgsl.expected.ir.dxc.hlsl
index c3bb13b..09b778a 100644
--- a/test/tint/builtins/gen/var/textureNumLayers/d75a0b.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureNumLayers/d75a0b.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,19 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureNumLayers
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWByteAddressBuffer prevent_dce : register(u0);
+RWTexture2DArray<float4> arg_0 : register(u0, space1);
+uint textureNumLayers_d75a0b() {
+  uint3 v = (0u).xxx;
+  arg_0.GetDimensions(v[0u], v[1u], v[2u]);
+  uint res = v.z;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store(0u, textureNumLayers_d75a0b());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store(0u, textureNumLayers_d75a0b());
+}
+
diff --git a/test/tint/builtins/gen/var/textureNumLayers/d75a0b.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/textureNumLayers/d75a0b.wgsl.expected.ir.fxc.hlsl
index c3bb13b..09b778a 100644
--- a/test/tint/builtins/gen/var/textureNumLayers/d75a0b.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureNumLayers/d75a0b.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,19 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureNumLayers
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWByteAddressBuffer prevent_dce : register(u0);
+RWTexture2DArray<float4> arg_0 : register(u0, space1);
+uint textureNumLayers_d75a0b() {
+  uint3 v = (0u).xxx;
+  arg_0.GetDimensions(v[0u], v[1u], v[2u]);
+  uint res = v.z;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store(0u, textureNumLayers_d75a0b());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store(0u, textureNumLayers_d75a0b());
+}
+
diff --git a/test/tint/builtins/gen/var/textureNumLayers/de8087.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/textureNumLayers/de8087.wgsl.expected.ir.dxc.hlsl
index c3bb13b..4b98062 100644
--- a/test/tint/builtins/gen/var/textureNumLayers/de8087.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureNumLayers/de8087.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,19 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureNumLayers
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWByteAddressBuffer prevent_dce : register(u0);
+RWTexture2DArray<int4> arg_0 : register(u0, space1);
+uint textureNumLayers_de8087() {
+  uint3 v = (0u).xxx;
+  arg_0.GetDimensions(v[0u], v[1u], v[2u]);
+  uint res = v.z;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store(0u, textureNumLayers_de8087());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store(0u, textureNumLayers_de8087());
+}
+
diff --git a/test/tint/builtins/gen/var/textureNumLayers/de8087.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/textureNumLayers/de8087.wgsl.expected.ir.fxc.hlsl
index c3bb13b..4b98062 100644
--- a/test/tint/builtins/gen/var/textureNumLayers/de8087.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureNumLayers/de8087.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,19 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureNumLayers
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWByteAddressBuffer prevent_dce : register(u0);
+RWTexture2DArray<int4> arg_0 : register(u0, space1);
+uint textureNumLayers_de8087() {
+  uint3 v = (0u).xxx;
+  arg_0.GetDimensions(v[0u], v[1u], v[2u]);
+  uint res = v.z;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store(0u, textureNumLayers_de8087());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store(0u, textureNumLayers_de8087());
+}
+
diff --git a/test/tint/builtins/gen/var/textureNumLayers/e47aac.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/textureNumLayers/e47aac.wgsl.expected.ir.dxc.hlsl
index c3bb13b..0cbee1e 100644
--- a/test/tint/builtins/gen/var/textureNumLayers/e47aac.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureNumLayers/e47aac.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,19 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureNumLayers
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWByteAddressBuffer prevent_dce : register(u0);
+RWTexture2DArray<float4> arg_0 : register(u0, space1);
+uint textureNumLayers_e47aac() {
+  uint3 v = (0u).xxx;
+  arg_0.GetDimensions(v[0u], v[1u], v[2u]);
+  uint res = v.z;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store(0u, textureNumLayers_e47aac());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store(0u, textureNumLayers_e47aac());
+}
+
diff --git a/test/tint/builtins/gen/var/textureNumLayers/e47aac.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/textureNumLayers/e47aac.wgsl.expected.ir.fxc.hlsl
index c3bb13b..0cbee1e 100644
--- a/test/tint/builtins/gen/var/textureNumLayers/e47aac.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureNumLayers/e47aac.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,19 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureNumLayers
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWByteAddressBuffer prevent_dce : register(u0);
+RWTexture2DArray<float4> arg_0 : register(u0, space1);
+uint textureNumLayers_e47aac() {
+  uint3 v = (0u).xxx;
+  arg_0.GetDimensions(v[0u], v[1u], v[2u]);
+  uint res = v.z;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store(0u, textureNumLayers_e47aac());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store(0u, textureNumLayers_e47aac());
+}
+
diff --git a/test/tint/builtins/gen/var/textureNumLayers/f1783f.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/textureNumLayers/f1783f.wgsl.expected.ir.dxc.hlsl
index c3bb13b..f35e47e 100644
--- a/test/tint/builtins/gen/var/textureNumLayers/f1783f.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureNumLayers/f1783f.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,45 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  uint prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureNumLayers
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation uint VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+Texture2DArray<float4> arg_0 : register(t0, space1);
+uint textureNumLayers_f1783f() {
+  uint3 v = (0u).xxx;
+  arg_0.GetDimensions(v[0u], v[1u], v[2u]);
+  uint res = v.z;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store(0u, textureNumLayers_f1783f());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store(0u, textureNumLayers_f1783f());
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = textureNumLayers_f1783f();
+  VertexOutput v_1 = tint_symbol;
+  return v_1;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_2 = vertex_main_inner();
+  VertexOutput v_3 = v_2;
+  VertexOutput v_4 = v_2;
+  vertex_main_outputs v_5 = {v_4.prevent_dce, v_3.pos};
+  return v_5;
+}
+
diff --git a/test/tint/builtins/gen/var/textureNumLayers/f1783f.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/textureNumLayers/f1783f.wgsl.expected.ir.fxc.hlsl
index c3bb13b..f35e47e 100644
--- a/test/tint/builtins/gen/var/textureNumLayers/f1783f.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureNumLayers/f1783f.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,45 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  uint prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureNumLayers
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation uint VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+Texture2DArray<float4> arg_0 : register(t0, space1);
+uint textureNumLayers_f1783f() {
+  uint3 v = (0u).xxx;
+  arg_0.GetDimensions(v[0u], v[1u], v[2u]);
+  uint res = v.z;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store(0u, textureNumLayers_f1783f());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store(0u, textureNumLayers_f1783f());
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = textureNumLayers_f1783f();
+  VertexOutput v_1 = tint_symbol;
+  return v_1;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_2 = vertex_main_inner();
+  VertexOutput v_3 = v_2;
+  VertexOutput v_4 = v_2;
+  vertex_main_outputs v_5 = {v_4.prevent_dce, v_3.pos};
+  return v_5;
+}
+
diff --git a/test/tint/builtins/gen/var/textureNumLevels/181090.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/textureNumLevels/181090.wgsl.expected.ir.dxc.hlsl
index c5f3f6e..b055046 100644
--- a/test/tint/builtins/gen/var/textureNumLevels/181090.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureNumLevels/181090.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,45 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  uint prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureNumLevels
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation uint VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+Texture2DArray<uint4> arg_0 : register(t0, space1);
+uint textureNumLevels_181090() {
+  uint4 v = (0u).xxxx;
+  arg_0.GetDimensions(0u, v[0u], v[1u], v[2u], v[3u]);
+  uint res = v.w;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store(0u, textureNumLevels_181090());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store(0u, textureNumLevels_181090());
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = textureNumLevels_181090();
+  VertexOutput v_1 = tint_symbol;
+  return v_1;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_2 = vertex_main_inner();
+  VertexOutput v_3 = v_2;
+  VertexOutput v_4 = v_2;
+  vertex_main_outputs v_5 = {v_4.prevent_dce, v_3.pos};
+  return v_5;
+}
+
diff --git a/test/tint/builtins/gen/var/textureNumLevels/181090.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/textureNumLevels/181090.wgsl.expected.ir.fxc.hlsl
index c5f3f6e..b055046 100644
--- a/test/tint/builtins/gen/var/textureNumLevels/181090.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureNumLevels/181090.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,45 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  uint prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureNumLevels
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation uint VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+Texture2DArray<uint4> arg_0 : register(t0, space1);
+uint textureNumLevels_181090() {
+  uint4 v = (0u).xxxx;
+  arg_0.GetDimensions(0u, v[0u], v[1u], v[2u], v[3u]);
+  uint res = v.w;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store(0u, textureNumLevels_181090());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store(0u, textureNumLevels_181090());
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = textureNumLevels_181090();
+  VertexOutput v_1 = tint_symbol;
+  return v_1;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_2 = vertex_main_inner();
+  VertexOutput v_3 = v_2;
+  VertexOutput v_4 = v_2;
+  vertex_main_outputs v_5 = {v_4.prevent_dce, v_3.pos};
+  return v_5;
+}
+
diff --git a/test/tint/builtins/gen/var/textureNumLevels/1a3fa9.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/textureNumLevels/1a3fa9.wgsl.expected.ir.dxc.hlsl
index c5f3f6e..3b269a4 100644
--- a/test/tint/builtins/gen/var/textureNumLevels/1a3fa9.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureNumLevels/1a3fa9.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,45 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  uint prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureNumLevels
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation uint VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+Texture2D<int4> arg_0 : register(t0, space1);
+uint textureNumLevels_1a3fa9() {
+  uint3 v = (0u).xxx;
+  arg_0.GetDimensions(0u, v[0u], v[1u], v[2u]);
+  uint res = v.z;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store(0u, textureNumLevels_1a3fa9());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store(0u, textureNumLevels_1a3fa9());
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = textureNumLevels_1a3fa9();
+  VertexOutput v_1 = tint_symbol;
+  return v_1;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_2 = vertex_main_inner();
+  VertexOutput v_3 = v_2;
+  VertexOutput v_4 = v_2;
+  vertex_main_outputs v_5 = {v_4.prevent_dce, v_3.pos};
+  return v_5;
+}
+
diff --git a/test/tint/builtins/gen/var/textureNumLevels/1a3fa9.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/textureNumLevels/1a3fa9.wgsl.expected.ir.fxc.hlsl
index c5f3f6e..3b269a4 100644
--- a/test/tint/builtins/gen/var/textureNumLevels/1a3fa9.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureNumLevels/1a3fa9.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,45 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  uint prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureNumLevels
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation uint VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+Texture2D<int4> arg_0 : register(t0, space1);
+uint textureNumLevels_1a3fa9() {
+  uint3 v = (0u).xxx;
+  arg_0.GetDimensions(0u, v[0u], v[1u], v[2u]);
+  uint res = v.z;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store(0u, textureNumLevels_1a3fa9());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store(0u, textureNumLevels_1a3fa9());
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = textureNumLevels_1a3fa9();
+  VertexOutput v_1 = tint_symbol;
+  return v_1;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_2 = vertex_main_inner();
+  VertexOutput v_3 = v_2;
+  VertexOutput v_4 = v_2;
+  vertex_main_outputs v_5 = {v_4.prevent_dce, v_3.pos};
+  return v_5;
+}
+
diff --git a/test/tint/builtins/gen/var/textureNumLevels/1a7fc3.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/textureNumLevels/1a7fc3.wgsl.expected.ir.dxc.hlsl
index c5f3f6e..3c99f63 100644
--- a/test/tint/builtins/gen/var/textureNumLevels/1a7fc3.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureNumLevels/1a7fc3.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,45 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  uint prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureNumLevels
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation uint VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+Texture1D<uint4> arg_0 : register(t0, space1);
+uint textureNumLevels_1a7fc3() {
+  uint2 v = (0u).xx;
+  arg_0.GetDimensions(0u, v[0u], v[1u]);
+  uint res = v.y;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store(0u, textureNumLevels_1a7fc3());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store(0u, textureNumLevels_1a7fc3());
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = textureNumLevels_1a7fc3();
+  VertexOutput v_1 = tint_symbol;
+  return v_1;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_2 = vertex_main_inner();
+  VertexOutput v_3 = v_2;
+  VertexOutput v_4 = v_2;
+  vertex_main_outputs v_5 = {v_4.prevent_dce, v_3.pos};
+  return v_5;
+}
+
diff --git a/test/tint/builtins/gen/var/textureNumLevels/1a7fc3.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/textureNumLevels/1a7fc3.wgsl.expected.ir.fxc.hlsl
index c5f3f6e..3c99f63 100644
--- a/test/tint/builtins/gen/var/textureNumLevels/1a7fc3.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureNumLevels/1a7fc3.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,45 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  uint prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureNumLevels
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation uint VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+Texture1D<uint4> arg_0 : register(t0, space1);
+uint textureNumLevels_1a7fc3() {
+  uint2 v = (0u).xx;
+  arg_0.GetDimensions(0u, v[0u], v[1u]);
+  uint res = v.y;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store(0u, textureNumLevels_1a7fc3());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store(0u, textureNumLevels_1a7fc3());
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = textureNumLevels_1a7fc3();
+  VertexOutput v_1 = tint_symbol;
+  return v_1;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_2 = vertex_main_inner();
+  VertexOutput v_3 = v_2;
+  VertexOutput v_4 = v_2;
+  vertex_main_outputs v_5 = {v_4.prevent_dce, v_3.pos};
+  return v_5;
+}
+
diff --git a/test/tint/builtins/gen/var/textureNumLevels/2267d8.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/textureNumLevels/2267d8.wgsl.expected.ir.dxc.hlsl
index c5f3f6e..882dc92 100644
--- a/test/tint/builtins/gen/var/textureNumLevels/2267d8.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureNumLevels/2267d8.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,45 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  uint prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureNumLevels
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation uint VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+TextureCube<int4> arg_0 : register(t0, space1);
+uint textureNumLevels_2267d8() {
+  uint3 v = (0u).xxx;
+  arg_0.GetDimensions(0u, v[0u], v[1u], v[2u]);
+  uint res = v.z;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store(0u, textureNumLevels_2267d8());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store(0u, textureNumLevels_2267d8());
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = textureNumLevels_2267d8();
+  VertexOutput v_1 = tint_symbol;
+  return v_1;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_2 = vertex_main_inner();
+  VertexOutput v_3 = v_2;
+  VertexOutput v_4 = v_2;
+  vertex_main_outputs v_5 = {v_4.prevent_dce, v_3.pos};
+  return v_5;
+}
+
diff --git a/test/tint/builtins/gen/var/textureNumLevels/2267d8.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/textureNumLevels/2267d8.wgsl.expected.ir.fxc.hlsl
index c5f3f6e..882dc92 100644
--- a/test/tint/builtins/gen/var/textureNumLevels/2267d8.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureNumLevels/2267d8.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,45 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  uint prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureNumLevels
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation uint VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+TextureCube<int4> arg_0 : register(t0, space1);
+uint textureNumLevels_2267d8() {
+  uint3 v = (0u).xxx;
+  arg_0.GetDimensions(0u, v[0u], v[1u], v[2u]);
+  uint res = v.z;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store(0u, textureNumLevels_2267d8());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store(0u, textureNumLevels_2267d8());
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = textureNumLevels_2267d8();
+  VertexOutput v_1 = tint_symbol;
+  return v_1;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_2 = vertex_main_inner();
+  VertexOutput v_3 = v_2;
+  VertexOutput v_4 = v_2;
+  vertex_main_outputs v_5 = {v_4.prevent_dce, v_3.pos};
+  return v_5;
+}
+
diff --git a/test/tint/builtins/gen/var/textureNumLevels/24b2c6.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/textureNumLevels/24b2c6.wgsl.expected.ir.dxc.hlsl
index c5f3f6e..ac900b7 100644
--- a/test/tint/builtins/gen/var/textureNumLevels/24b2c6.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureNumLevels/24b2c6.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,45 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  uint prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureNumLevels
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation uint VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+Texture2D<float4> arg_0 : register(t0, space1);
+uint textureNumLevels_24b2c6() {
+  uint3 v = (0u).xxx;
+  arg_0.GetDimensions(0u, v[0u], v[1u], v[2u]);
+  uint res = v.z;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store(0u, textureNumLevels_24b2c6());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store(0u, textureNumLevels_24b2c6());
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = textureNumLevels_24b2c6();
+  VertexOutput v_1 = tint_symbol;
+  return v_1;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_2 = vertex_main_inner();
+  VertexOutput v_3 = v_2;
+  VertexOutput v_4 = v_2;
+  vertex_main_outputs v_5 = {v_4.prevent_dce, v_3.pos};
+  return v_5;
+}
+
diff --git a/test/tint/builtins/gen/var/textureNumLevels/24b2c6.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/textureNumLevels/24b2c6.wgsl.expected.ir.fxc.hlsl
index c5f3f6e..ac900b7 100644
--- a/test/tint/builtins/gen/var/textureNumLevels/24b2c6.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureNumLevels/24b2c6.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,45 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  uint prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureNumLevels
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation uint VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+Texture2D<float4> arg_0 : register(t0, space1);
+uint textureNumLevels_24b2c6() {
+  uint3 v = (0u).xxx;
+  arg_0.GetDimensions(0u, v[0u], v[1u], v[2u]);
+  uint res = v.z;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store(0u, textureNumLevels_24b2c6());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store(0u, textureNumLevels_24b2c6());
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = textureNumLevels_24b2c6();
+  VertexOutput v_1 = tint_symbol;
+  return v_1;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_2 = vertex_main_inner();
+  VertexOutput v_3 = v_2;
+  VertexOutput v_4 = v_2;
+  vertex_main_outputs v_5 = {v_4.prevent_dce, v_3.pos};
+  return v_5;
+}
+
diff --git a/test/tint/builtins/gen/var/textureNumLevels/2bea6c.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/textureNumLevels/2bea6c.wgsl.expected.ir.dxc.hlsl
index c5f3f6e..25438287 100644
--- a/test/tint/builtins/gen/var/textureNumLevels/2bea6c.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureNumLevels/2bea6c.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,45 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  uint prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureNumLevels
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation uint VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+TextureCubeArray arg_0 : register(t0, space1);
+uint textureNumLevels_2bea6c() {
+  uint4 v = (0u).xxxx;
+  arg_0.GetDimensions(0u, v[0u], v[1u], v[2u], v[3u]);
+  uint res = v.w;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store(0u, textureNumLevels_2bea6c());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store(0u, textureNumLevels_2bea6c());
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = textureNumLevels_2bea6c();
+  VertexOutput v_1 = tint_symbol;
+  return v_1;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_2 = vertex_main_inner();
+  VertexOutput v_3 = v_2;
+  VertexOutput v_4 = v_2;
+  vertex_main_outputs v_5 = {v_4.prevent_dce, v_3.pos};
+  return v_5;
+}
+
diff --git a/test/tint/builtins/gen/var/textureNumLevels/2bea6c.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/textureNumLevels/2bea6c.wgsl.expected.ir.fxc.hlsl
index c5f3f6e..25438287 100644
--- a/test/tint/builtins/gen/var/textureNumLevels/2bea6c.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureNumLevels/2bea6c.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,45 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  uint prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureNumLevels
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation uint VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+TextureCubeArray arg_0 : register(t0, space1);
+uint textureNumLevels_2bea6c() {
+  uint4 v = (0u).xxxx;
+  arg_0.GetDimensions(0u, v[0u], v[1u], v[2u], v[3u]);
+  uint res = v.w;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store(0u, textureNumLevels_2bea6c());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store(0u, textureNumLevels_2bea6c());
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = textureNumLevels_2bea6c();
+  VertexOutput v_1 = tint_symbol;
+  return v_1;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_2 = vertex_main_inner();
+  VertexOutput v_3 = v_2;
+  VertexOutput v_4 = v_2;
+  vertex_main_outputs v_5 = {v_4.prevent_dce, v_3.pos};
+  return v_5;
+}
+
diff --git a/test/tint/builtins/gen/var/textureNumLevels/2df1ab.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/textureNumLevels/2df1ab.wgsl.expected.ir.dxc.hlsl
index c5f3f6e..3eb9bf6 100644
--- a/test/tint/builtins/gen/var/textureNumLevels/2df1ab.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureNumLevels/2df1ab.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,45 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  uint prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureNumLevels
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation uint VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+TextureCube<float4> arg_0 : register(t0, space1);
+uint textureNumLevels_2df1ab() {
+  uint3 v = (0u).xxx;
+  arg_0.GetDimensions(0u, v[0u], v[1u], v[2u]);
+  uint res = v.z;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store(0u, textureNumLevels_2df1ab());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store(0u, textureNumLevels_2df1ab());
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = textureNumLevels_2df1ab();
+  VertexOutput v_1 = tint_symbol;
+  return v_1;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_2 = vertex_main_inner();
+  VertexOutput v_3 = v_2;
+  VertexOutput v_4 = v_2;
+  vertex_main_outputs v_5 = {v_4.prevent_dce, v_3.pos};
+  return v_5;
+}
+
diff --git a/test/tint/builtins/gen/var/textureNumLevels/2df1ab.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/textureNumLevels/2df1ab.wgsl.expected.ir.fxc.hlsl
index c5f3f6e..3eb9bf6 100644
--- a/test/tint/builtins/gen/var/textureNumLevels/2df1ab.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureNumLevels/2df1ab.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,45 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  uint prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureNumLevels
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation uint VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+TextureCube<float4> arg_0 : register(t0, space1);
+uint textureNumLevels_2df1ab() {
+  uint3 v = (0u).xxx;
+  arg_0.GetDimensions(0u, v[0u], v[1u], v[2u]);
+  uint res = v.z;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store(0u, textureNumLevels_2df1ab());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store(0u, textureNumLevels_2df1ab());
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = textureNumLevels_2df1ab();
+  VertexOutput v_1 = tint_symbol;
+  return v_1;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_2 = vertex_main_inner();
+  VertexOutput v_3 = v_2;
+  VertexOutput v_4 = v_2;
+  vertex_main_outputs v_5 = {v_4.prevent_dce, v_3.pos};
+  return v_5;
+}
+
diff --git a/test/tint/builtins/gen/var/textureNumLevels/46dbd8.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/textureNumLevels/46dbd8.wgsl.expected.ir.dxc.hlsl
index c5f3f6e..511dd54 100644
--- a/test/tint/builtins/gen/var/textureNumLevels/46dbd8.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureNumLevels/46dbd8.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,45 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  uint prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureNumLevels
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation uint VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+Texture2DArray<float4> arg_0 : register(t0, space1);
+uint textureNumLevels_46dbd8() {
+  uint4 v = (0u).xxxx;
+  arg_0.GetDimensions(0u, v[0u], v[1u], v[2u], v[3u]);
+  uint res = v.w;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store(0u, textureNumLevels_46dbd8());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store(0u, textureNumLevels_46dbd8());
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = textureNumLevels_46dbd8();
+  VertexOutput v_1 = tint_symbol;
+  return v_1;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_2 = vertex_main_inner();
+  VertexOutput v_3 = v_2;
+  VertexOutput v_4 = v_2;
+  vertex_main_outputs v_5 = {v_4.prevent_dce, v_3.pos};
+  return v_5;
+}
+
diff --git a/test/tint/builtins/gen/var/textureNumLevels/46dbd8.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/textureNumLevels/46dbd8.wgsl.expected.ir.fxc.hlsl
index c5f3f6e..511dd54 100644
--- a/test/tint/builtins/gen/var/textureNumLevels/46dbd8.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureNumLevels/46dbd8.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,45 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  uint prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureNumLevels
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation uint VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+Texture2DArray<float4> arg_0 : register(t0, space1);
+uint textureNumLevels_46dbd8() {
+  uint4 v = (0u).xxxx;
+  arg_0.GetDimensions(0u, v[0u], v[1u], v[2u], v[3u]);
+  uint res = v.w;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store(0u, textureNumLevels_46dbd8());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store(0u, textureNumLevels_46dbd8());
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = textureNumLevels_46dbd8();
+  VertexOutput v_1 = tint_symbol;
+  return v_1;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_2 = vertex_main_inner();
+  VertexOutput v_3 = v_2;
+  VertexOutput v_4 = v_2;
+  vertex_main_outputs v_5 = {v_4.prevent_dce, v_3.pos};
+  return v_5;
+}
+
diff --git a/test/tint/builtins/gen/var/textureNumLevels/60d9b8.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/textureNumLevels/60d9b8.wgsl.expected.ir.dxc.hlsl
index c5f3f6e..6d443ff 100644
--- a/test/tint/builtins/gen/var/textureNumLevels/60d9b8.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureNumLevels/60d9b8.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,45 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  uint prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureNumLevels
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation uint VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+Texture3D<uint4> arg_0 : register(t0, space1);
+uint textureNumLevels_60d9b8() {
+  uint4 v = (0u).xxxx;
+  arg_0.GetDimensions(0u, v[0u], v[1u], v[2u], v[3u]);
+  uint res = v.w;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store(0u, textureNumLevels_60d9b8());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store(0u, textureNumLevels_60d9b8());
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = textureNumLevels_60d9b8();
+  VertexOutput v_1 = tint_symbol;
+  return v_1;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_2 = vertex_main_inner();
+  VertexOutput v_3 = v_2;
+  VertexOutput v_4 = v_2;
+  vertex_main_outputs v_5 = {v_4.prevent_dce, v_3.pos};
+  return v_5;
+}
+
diff --git a/test/tint/builtins/gen/var/textureNumLevels/60d9b8.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/textureNumLevels/60d9b8.wgsl.expected.ir.fxc.hlsl
index c5f3f6e..6d443ff 100644
--- a/test/tint/builtins/gen/var/textureNumLevels/60d9b8.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureNumLevels/60d9b8.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,45 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  uint prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureNumLevels
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation uint VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+Texture3D<uint4> arg_0 : register(t0, space1);
+uint textureNumLevels_60d9b8() {
+  uint4 v = (0u).xxxx;
+  arg_0.GetDimensions(0u, v[0u], v[1u], v[2u], v[3u]);
+  uint res = v.w;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store(0u, textureNumLevels_60d9b8());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store(0u, textureNumLevels_60d9b8());
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = textureNumLevels_60d9b8();
+  VertexOutput v_1 = tint_symbol;
+  return v_1;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_2 = vertex_main_inner();
+  VertexOutput v_3 = v_2;
+  VertexOutput v_4 = v_2;
+  vertex_main_outputs v_5 = {v_4.prevent_dce, v_3.pos};
+  return v_5;
+}
+
diff --git a/test/tint/builtins/gen/var/textureNumLevels/903920.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/textureNumLevels/903920.wgsl.expected.ir.dxc.hlsl
index c5f3f6e..a53836b 100644
--- a/test/tint/builtins/gen/var/textureNumLevels/903920.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureNumLevels/903920.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,45 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  uint prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureNumLevels
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation uint VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+TextureCubeArray<int4> arg_0 : register(t0, space1);
+uint textureNumLevels_903920() {
+  uint4 v = (0u).xxxx;
+  arg_0.GetDimensions(0u, v[0u], v[1u], v[2u], v[3u]);
+  uint res = v.w;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store(0u, textureNumLevels_903920());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store(0u, textureNumLevels_903920());
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = textureNumLevels_903920();
+  VertexOutput v_1 = tint_symbol;
+  return v_1;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_2 = vertex_main_inner();
+  VertexOutput v_3 = v_2;
+  VertexOutput v_4 = v_2;
+  vertex_main_outputs v_5 = {v_4.prevent_dce, v_3.pos};
+  return v_5;
+}
+
diff --git a/test/tint/builtins/gen/var/textureNumLevels/903920.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/textureNumLevels/903920.wgsl.expected.ir.fxc.hlsl
index c5f3f6e..a53836b 100644
--- a/test/tint/builtins/gen/var/textureNumLevels/903920.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureNumLevels/903920.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,45 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  uint prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureNumLevels
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation uint VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+TextureCubeArray<int4> arg_0 : register(t0, space1);
+uint textureNumLevels_903920() {
+  uint4 v = (0u).xxxx;
+  arg_0.GetDimensions(0u, v[0u], v[1u], v[2u], v[3u]);
+  uint res = v.w;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store(0u, textureNumLevels_903920());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store(0u, textureNumLevels_903920());
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = textureNumLevels_903920();
+  VertexOutput v_1 = tint_symbol;
+  return v_1;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_2 = vertex_main_inner();
+  VertexOutput v_3 = v_2;
+  VertexOutput v_4 = v_2;
+  vertex_main_outputs v_5 = {v_4.prevent_dce, v_3.pos};
+  return v_5;
+}
+
diff --git a/test/tint/builtins/gen/var/textureNumLevels/9a1a65.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/textureNumLevels/9a1a65.wgsl.expected.ir.dxc.hlsl
index c5f3f6e..f2a91d6 100644
--- a/test/tint/builtins/gen/var/textureNumLevels/9a1a65.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureNumLevels/9a1a65.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,45 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  uint prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureNumLevels
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation uint VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+Texture3D<int4> arg_0 : register(t0, space1);
+uint textureNumLevels_9a1a65() {
+  uint4 v = (0u).xxxx;
+  arg_0.GetDimensions(0u, v[0u], v[1u], v[2u], v[3u]);
+  uint res = v.w;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store(0u, textureNumLevels_9a1a65());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store(0u, textureNumLevels_9a1a65());
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = textureNumLevels_9a1a65();
+  VertexOutput v_1 = tint_symbol;
+  return v_1;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_2 = vertex_main_inner();
+  VertexOutput v_3 = v_2;
+  VertexOutput v_4 = v_2;
+  vertex_main_outputs v_5 = {v_4.prevent_dce, v_3.pos};
+  return v_5;
+}
+
diff --git a/test/tint/builtins/gen/var/textureNumLevels/9a1a65.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/textureNumLevels/9a1a65.wgsl.expected.ir.fxc.hlsl
index c5f3f6e..f2a91d6 100644
--- a/test/tint/builtins/gen/var/textureNumLevels/9a1a65.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureNumLevels/9a1a65.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,45 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  uint prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureNumLevels
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation uint VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+Texture3D<int4> arg_0 : register(t0, space1);
+uint textureNumLevels_9a1a65() {
+  uint4 v = (0u).xxxx;
+  arg_0.GetDimensions(0u, v[0u], v[1u], v[2u], v[3u]);
+  uint res = v.w;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store(0u, textureNumLevels_9a1a65());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store(0u, textureNumLevels_9a1a65());
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = textureNumLevels_9a1a65();
+  VertexOutput v_1 = tint_symbol;
+  return v_1;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_2 = vertex_main_inner();
+  VertexOutput v_3 = v_2;
+  VertexOutput v_4 = v_2;
+  vertex_main_outputs v_5 = {v_4.prevent_dce, v_3.pos};
+  return v_5;
+}
+
diff --git a/test/tint/builtins/gen/var/textureNumLevels/adc783.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/textureNumLevels/adc783.wgsl.expected.ir.dxc.hlsl
index c5f3f6e..f1fd968 100644
--- a/test/tint/builtins/gen/var/textureNumLevels/adc783.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureNumLevels/adc783.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,45 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  uint prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureNumLevels
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation uint VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+Texture2DArray<int4> arg_0 : register(t0, space1);
+uint textureNumLevels_adc783() {
+  uint4 v = (0u).xxxx;
+  arg_0.GetDimensions(0u, v[0u], v[1u], v[2u], v[3u]);
+  uint res = v.w;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store(0u, textureNumLevels_adc783());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store(0u, textureNumLevels_adc783());
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = textureNumLevels_adc783();
+  VertexOutput v_1 = tint_symbol;
+  return v_1;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_2 = vertex_main_inner();
+  VertexOutput v_3 = v_2;
+  VertexOutput v_4 = v_2;
+  vertex_main_outputs v_5 = {v_4.prevent_dce, v_3.pos};
+  return v_5;
+}
+
diff --git a/test/tint/builtins/gen/var/textureNumLevels/adc783.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/textureNumLevels/adc783.wgsl.expected.ir.fxc.hlsl
index c5f3f6e..f1fd968 100644
--- a/test/tint/builtins/gen/var/textureNumLevels/adc783.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureNumLevels/adc783.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,45 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  uint prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureNumLevels
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation uint VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+Texture2DArray<int4> arg_0 : register(t0, space1);
+uint textureNumLevels_adc783() {
+  uint4 v = (0u).xxxx;
+  arg_0.GetDimensions(0u, v[0u], v[1u], v[2u], v[3u]);
+  uint res = v.w;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store(0u, textureNumLevels_adc783());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store(0u, textureNumLevels_adc783());
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = textureNumLevels_adc783();
+  VertexOutput v_1 = tint_symbol;
+  return v_1;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_2 = vertex_main_inner();
+  VertexOutput v_3 = v_2;
+  VertexOutput v_4 = v_2;
+  vertex_main_outputs v_5 = {v_4.prevent_dce, v_3.pos};
+  return v_5;
+}
+
diff --git a/test/tint/builtins/gen/var/textureNumLevels/ae911c.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/textureNumLevels/ae911c.wgsl.expected.ir.dxc.hlsl
index c5f3f6e..d77d459 100644
--- a/test/tint/builtins/gen/var/textureNumLevels/ae911c.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureNumLevels/ae911c.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,45 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  uint prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureNumLevels
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation uint VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+Texture2DArray arg_0 : register(t0, space1);
+uint textureNumLevels_ae911c() {
+  uint4 v = (0u).xxxx;
+  arg_0.GetDimensions(0u, v[0u], v[1u], v[2u], v[3u]);
+  uint res = v.w;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store(0u, textureNumLevels_ae911c());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store(0u, textureNumLevels_ae911c());
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = textureNumLevels_ae911c();
+  VertexOutput v_1 = tint_symbol;
+  return v_1;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_2 = vertex_main_inner();
+  VertexOutput v_3 = v_2;
+  VertexOutput v_4 = v_2;
+  vertex_main_outputs v_5 = {v_4.prevent_dce, v_3.pos};
+  return v_5;
+}
+
diff --git a/test/tint/builtins/gen/var/textureNumLevels/ae911c.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/textureNumLevels/ae911c.wgsl.expected.ir.fxc.hlsl
index c5f3f6e..d77d459 100644
--- a/test/tint/builtins/gen/var/textureNumLevels/ae911c.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureNumLevels/ae911c.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,45 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  uint prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureNumLevels
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation uint VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+Texture2DArray arg_0 : register(t0, space1);
+uint textureNumLevels_ae911c() {
+  uint4 v = (0u).xxxx;
+  arg_0.GetDimensions(0u, v[0u], v[1u], v[2u], v[3u]);
+  uint res = v.w;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store(0u, textureNumLevels_ae911c());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store(0u, textureNumLevels_ae911c());
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = textureNumLevels_ae911c();
+  VertexOutput v_1 = tint_symbol;
+  return v_1;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_2 = vertex_main_inner();
+  VertexOutput v_3 = v_2;
+  VertexOutput v_4 = v_2;
+  vertex_main_outputs v_5 = {v_4.prevent_dce, v_3.pos};
+  return v_5;
+}
+
diff --git a/test/tint/builtins/gen/var/textureNumLevels/c386c8.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/textureNumLevels/c386c8.wgsl.expected.ir.dxc.hlsl
index c5f3f6e..e88660b 100644
--- a/test/tint/builtins/gen/var/textureNumLevels/c386c8.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureNumLevels/c386c8.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,45 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  uint prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureNumLevels
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation uint VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+TextureCube<uint4> arg_0 : register(t0, space1);
+uint textureNumLevels_c386c8() {
+  uint3 v = (0u).xxx;
+  arg_0.GetDimensions(0u, v[0u], v[1u], v[2u]);
+  uint res = v.z;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store(0u, textureNumLevels_c386c8());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store(0u, textureNumLevels_c386c8());
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = textureNumLevels_c386c8();
+  VertexOutput v_1 = tint_symbol;
+  return v_1;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_2 = vertex_main_inner();
+  VertexOutput v_3 = v_2;
+  VertexOutput v_4 = v_2;
+  vertex_main_outputs v_5 = {v_4.prevent_dce, v_3.pos};
+  return v_5;
+}
+
diff --git a/test/tint/builtins/gen/var/textureNumLevels/c386c8.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/textureNumLevels/c386c8.wgsl.expected.ir.fxc.hlsl
index c5f3f6e..e88660b 100644
--- a/test/tint/builtins/gen/var/textureNumLevels/c386c8.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureNumLevels/c386c8.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,45 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  uint prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureNumLevels
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation uint VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+TextureCube<uint4> arg_0 : register(t0, space1);
+uint textureNumLevels_c386c8() {
+  uint3 v = (0u).xxx;
+  arg_0.GetDimensions(0u, v[0u], v[1u], v[2u]);
+  uint res = v.z;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store(0u, textureNumLevels_c386c8());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store(0u, textureNumLevels_c386c8());
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = textureNumLevels_c386c8();
+  VertexOutput v_1 = tint_symbol;
+  return v_1;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_2 = vertex_main_inner();
+  VertexOutput v_3 = v_2;
+  VertexOutput v_4 = v_2;
+  vertex_main_outputs v_5 = {v_4.prevent_dce, v_3.pos};
+  return v_5;
+}
+
diff --git a/test/tint/builtins/gen/var/textureNumLevels/c399f9.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/textureNumLevels/c399f9.wgsl.expected.ir.dxc.hlsl
index c5f3f6e..ba7a8ab 100644
--- a/test/tint/builtins/gen/var/textureNumLevels/c399f9.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureNumLevels/c399f9.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,45 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  uint prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureNumLevels
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation uint VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+Texture1D<float4> arg_0 : register(t0, space1);
+uint textureNumLevels_c399f9() {
+  uint2 v = (0u).xx;
+  arg_0.GetDimensions(0u, v[0u], v[1u]);
+  uint res = v.y;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store(0u, textureNumLevels_c399f9());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store(0u, textureNumLevels_c399f9());
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = textureNumLevels_c399f9();
+  VertexOutput v_1 = tint_symbol;
+  return v_1;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_2 = vertex_main_inner();
+  VertexOutput v_3 = v_2;
+  VertexOutput v_4 = v_2;
+  vertex_main_outputs v_5 = {v_4.prevent_dce, v_3.pos};
+  return v_5;
+}
+
diff --git a/test/tint/builtins/gen/var/textureNumLevels/c399f9.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/textureNumLevels/c399f9.wgsl.expected.ir.fxc.hlsl
index c5f3f6e..ba7a8ab 100644
--- a/test/tint/builtins/gen/var/textureNumLevels/c399f9.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureNumLevels/c399f9.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,45 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  uint prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureNumLevels
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation uint VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+Texture1D<float4> arg_0 : register(t0, space1);
+uint textureNumLevels_c399f9() {
+  uint2 v = (0u).xx;
+  arg_0.GetDimensions(0u, v[0u], v[1u]);
+  uint res = v.y;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store(0u, textureNumLevels_c399f9());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store(0u, textureNumLevels_c399f9());
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = textureNumLevels_c399f9();
+  VertexOutput v_1 = tint_symbol;
+  return v_1;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_2 = vertex_main_inner();
+  VertexOutput v_3 = v_2;
+  VertexOutput v_4 = v_2;
+  vertex_main_outputs v_5 = {v_4.prevent_dce, v_3.pos};
+  return v_5;
+}
+
diff --git a/test/tint/builtins/gen/var/textureNumLevels/c8c25c.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/textureNumLevels/c8c25c.wgsl.expected.ir.dxc.hlsl
index c5f3f6e..d4f9b97 100644
--- a/test/tint/builtins/gen/var/textureNumLevels/c8c25c.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureNumLevels/c8c25c.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,45 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  uint prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureNumLevels
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation uint VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+TextureCube arg_0 : register(t0, space1);
+uint textureNumLevels_c8c25c() {
+  uint3 v = (0u).xxx;
+  arg_0.GetDimensions(0u, v[0u], v[1u], v[2u]);
+  uint res = v.z;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store(0u, textureNumLevels_c8c25c());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store(0u, textureNumLevels_c8c25c());
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = textureNumLevels_c8c25c();
+  VertexOutput v_1 = tint_symbol;
+  return v_1;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_2 = vertex_main_inner();
+  VertexOutput v_3 = v_2;
+  VertexOutput v_4 = v_2;
+  vertex_main_outputs v_5 = {v_4.prevent_dce, v_3.pos};
+  return v_5;
+}
+
diff --git a/test/tint/builtins/gen/var/textureNumLevels/c8c25c.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/textureNumLevels/c8c25c.wgsl.expected.ir.fxc.hlsl
index c5f3f6e..d4f9b97 100644
--- a/test/tint/builtins/gen/var/textureNumLevels/c8c25c.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureNumLevels/c8c25c.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,45 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  uint prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureNumLevels
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation uint VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+TextureCube arg_0 : register(t0, space1);
+uint textureNumLevels_c8c25c() {
+  uint3 v = (0u).xxx;
+  arg_0.GetDimensions(0u, v[0u], v[1u], v[2u]);
+  uint res = v.z;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store(0u, textureNumLevels_c8c25c());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store(0u, textureNumLevels_c8c25c());
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = textureNumLevels_c8c25c();
+  VertexOutput v_1 = tint_symbol;
+  return v_1;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_2 = vertex_main_inner();
+  VertexOutput v_3 = v_2;
+  VertexOutput v_4 = v_2;
+  vertex_main_outputs v_5 = {v_4.prevent_dce, v_3.pos};
+  return v_5;
+}
+
diff --git a/test/tint/builtins/gen/var/textureNumLevels/d63126.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/textureNumLevels/d63126.wgsl.expected.ir.dxc.hlsl
index c5f3f6e..8133520 100644
--- a/test/tint/builtins/gen/var/textureNumLevels/d63126.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureNumLevels/d63126.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,45 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  uint prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureNumLevels
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation uint VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+Texture2D arg_0 : register(t0, space1);
+uint textureNumLevels_d63126() {
+  uint3 v = (0u).xxx;
+  arg_0.GetDimensions(0u, v[0u], v[1u], v[2u]);
+  uint res = v.z;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store(0u, textureNumLevels_d63126());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store(0u, textureNumLevels_d63126());
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = textureNumLevels_d63126();
+  VertexOutput v_1 = tint_symbol;
+  return v_1;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_2 = vertex_main_inner();
+  VertexOutput v_3 = v_2;
+  VertexOutput v_4 = v_2;
+  vertex_main_outputs v_5 = {v_4.prevent_dce, v_3.pos};
+  return v_5;
+}
+
diff --git a/test/tint/builtins/gen/var/textureNumLevels/d63126.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/textureNumLevels/d63126.wgsl.expected.ir.fxc.hlsl
index c5f3f6e..8133520 100644
--- a/test/tint/builtins/gen/var/textureNumLevels/d63126.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureNumLevels/d63126.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,45 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  uint prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureNumLevels
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation uint VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+Texture2D arg_0 : register(t0, space1);
+uint textureNumLevels_d63126() {
+  uint3 v = (0u).xxx;
+  arg_0.GetDimensions(0u, v[0u], v[1u], v[2u]);
+  uint res = v.z;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store(0u, textureNumLevels_d63126());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store(0u, textureNumLevels_d63126());
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = textureNumLevels_d63126();
+  VertexOutput v_1 = tint_symbol;
+  return v_1;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_2 = vertex_main_inner();
+  VertexOutput v_3 = v_2;
+  VertexOutput v_4 = v_2;
+  vertex_main_outputs v_5 = {v_4.prevent_dce, v_3.pos};
+  return v_5;
+}
+
diff --git a/test/tint/builtins/gen/var/textureNumLevels/d8f73b.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/textureNumLevels/d8f73b.wgsl.expected.ir.dxc.hlsl
index c5f3f6e..4d4e493 100644
--- a/test/tint/builtins/gen/var/textureNumLevels/d8f73b.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureNumLevels/d8f73b.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,45 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  uint prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureNumLevels
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation uint VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+TextureCubeArray<float4> arg_0 : register(t0, space1);
+uint textureNumLevels_d8f73b() {
+  uint4 v = (0u).xxxx;
+  arg_0.GetDimensions(0u, v[0u], v[1u], v[2u], v[3u]);
+  uint res = v.w;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store(0u, textureNumLevels_d8f73b());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store(0u, textureNumLevels_d8f73b());
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = textureNumLevels_d8f73b();
+  VertexOutput v_1 = tint_symbol;
+  return v_1;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_2 = vertex_main_inner();
+  VertexOutput v_3 = v_2;
+  VertexOutput v_4 = v_2;
+  vertex_main_outputs v_5 = {v_4.prevent_dce, v_3.pos};
+  return v_5;
+}
+
diff --git a/test/tint/builtins/gen/var/textureNumLevels/d8f73b.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/textureNumLevels/d8f73b.wgsl.expected.ir.fxc.hlsl
index c5f3f6e..4d4e493 100644
--- a/test/tint/builtins/gen/var/textureNumLevels/d8f73b.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureNumLevels/d8f73b.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,45 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  uint prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureNumLevels
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation uint VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+TextureCubeArray<float4> arg_0 : register(t0, space1);
+uint textureNumLevels_d8f73b() {
+  uint4 v = (0u).xxxx;
+  arg_0.GetDimensions(0u, v[0u], v[1u], v[2u], v[3u]);
+  uint res = v.w;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store(0u, textureNumLevels_d8f73b());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store(0u, textureNumLevels_d8f73b());
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = textureNumLevels_d8f73b();
+  VertexOutput v_1 = tint_symbol;
+  return v_1;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_2 = vertex_main_inner();
+  VertexOutput v_3 = v_2;
+  VertexOutput v_4 = v_2;
+  vertex_main_outputs v_5 = {v_4.prevent_dce, v_3.pos};
+  return v_5;
+}
+
diff --git a/test/tint/builtins/gen/var/textureNumLevels/ef7944.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/textureNumLevels/ef7944.wgsl.expected.ir.dxc.hlsl
index c5f3f6e..cd93bef 100644
--- a/test/tint/builtins/gen/var/textureNumLevels/ef7944.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureNumLevels/ef7944.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,45 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  uint prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureNumLevels
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation uint VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+Texture3D<float4> arg_0 : register(t0, space1);
+uint textureNumLevels_ef7944() {
+  uint4 v = (0u).xxxx;
+  arg_0.GetDimensions(0u, v[0u], v[1u], v[2u], v[3u]);
+  uint res = v.w;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store(0u, textureNumLevels_ef7944());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store(0u, textureNumLevels_ef7944());
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = textureNumLevels_ef7944();
+  VertexOutput v_1 = tint_symbol;
+  return v_1;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_2 = vertex_main_inner();
+  VertexOutput v_3 = v_2;
+  VertexOutput v_4 = v_2;
+  vertex_main_outputs v_5 = {v_4.prevent_dce, v_3.pos};
+  return v_5;
+}
+
diff --git a/test/tint/builtins/gen/var/textureNumLevels/ef7944.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/textureNumLevels/ef7944.wgsl.expected.ir.fxc.hlsl
index c5f3f6e..cd93bef 100644
--- a/test/tint/builtins/gen/var/textureNumLevels/ef7944.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureNumLevels/ef7944.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,45 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  uint prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureNumLevels
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation uint VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+Texture3D<float4> arg_0 : register(t0, space1);
+uint textureNumLevels_ef7944() {
+  uint4 v = (0u).xxxx;
+  arg_0.GetDimensions(0u, v[0u], v[1u], v[2u], v[3u]);
+  uint res = v.w;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store(0u, textureNumLevels_ef7944());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store(0u, textureNumLevels_ef7944());
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = textureNumLevels_ef7944();
+  VertexOutput v_1 = tint_symbol;
+  return v_1;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_2 = vertex_main_inner();
+  VertexOutput v_3 = v_2;
+  VertexOutput v_4 = v_2;
+  vertex_main_outputs v_5 = {v_4.prevent_dce, v_3.pos};
+  return v_5;
+}
+
diff --git a/test/tint/builtins/gen/var/textureNumLevels/efd6df.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/textureNumLevels/efd6df.wgsl.expected.ir.dxc.hlsl
index c5f3f6e..df680e3 100644
--- a/test/tint/builtins/gen/var/textureNumLevels/efd6df.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureNumLevels/efd6df.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,45 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  uint prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureNumLevels
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation uint VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+Texture2D<uint4> arg_0 : register(t0, space1);
+uint textureNumLevels_efd6df() {
+  uint3 v = (0u).xxx;
+  arg_0.GetDimensions(0u, v[0u], v[1u], v[2u]);
+  uint res = v.z;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store(0u, textureNumLevels_efd6df());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store(0u, textureNumLevels_efd6df());
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = textureNumLevels_efd6df();
+  VertexOutput v_1 = tint_symbol;
+  return v_1;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_2 = vertex_main_inner();
+  VertexOutput v_3 = v_2;
+  VertexOutput v_4 = v_2;
+  vertex_main_outputs v_5 = {v_4.prevent_dce, v_3.pos};
+  return v_5;
+}
+
diff --git a/test/tint/builtins/gen/var/textureNumLevels/efd6df.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/textureNumLevels/efd6df.wgsl.expected.ir.fxc.hlsl
index c5f3f6e..df680e3 100644
--- a/test/tint/builtins/gen/var/textureNumLevels/efd6df.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureNumLevels/efd6df.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,45 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  uint prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureNumLevels
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation uint VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+Texture2D<uint4> arg_0 : register(t0, space1);
+uint textureNumLevels_efd6df() {
+  uint3 v = (0u).xxx;
+  arg_0.GetDimensions(0u, v[0u], v[1u], v[2u]);
+  uint res = v.z;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store(0u, textureNumLevels_efd6df());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store(0u, textureNumLevels_efd6df());
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = textureNumLevels_efd6df();
+  VertexOutput v_1 = tint_symbol;
+  return v_1;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_2 = vertex_main_inner();
+  VertexOutput v_3 = v_2;
+  VertexOutput v_4 = v_2;
+  vertex_main_outputs v_5 = {v_4.prevent_dce, v_3.pos};
+  return v_5;
+}
+
diff --git a/test/tint/builtins/gen/var/textureNumLevels/f742c0.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/textureNumLevels/f742c0.wgsl.expected.ir.dxc.hlsl
index c5f3f6e..6318299 100644
--- a/test/tint/builtins/gen/var/textureNumLevels/f742c0.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureNumLevels/f742c0.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,45 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  uint prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureNumLevels
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation uint VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+Texture1D<int4> arg_0 : register(t0, space1);
+uint textureNumLevels_f742c0() {
+  uint2 v = (0u).xx;
+  arg_0.GetDimensions(0u, v[0u], v[1u]);
+  uint res = v.y;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store(0u, textureNumLevels_f742c0());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store(0u, textureNumLevels_f742c0());
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = textureNumLevels_f742c0();
+  VertexOutput v_1 = tint_symbol;
+  return v_1;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_2 = vertex_main_inner();
+  VertexOutput v_3 = v_2;
+  VertexOutput v_4 = v_2;
+  vertex_main_outputs v_5 = {v_4.prevent_dce, v_3.pos};
+  return v_5;
+}
+
diff --git a/test/tint/builtins/gen/var/textureNumLevels/f742c0.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/textureNumLevels/f742c0.wgsl.expected.ir.fxc.hlsl
index c5f3f6e..6318299 100644
--- a/test/tint/builtins/gen/var/textureNumLevels/f742c0.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureNumLevels/f742c0.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,45 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  uint prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureNumLevels
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation uint VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+Texture1D<int4> arg_0 : register(t0, space1);
+uint textureNumLevels_f742c0() {
+  uint2 v = (0u).xx;
+  arg_0.GetDimensions(0u, v[0u], v[1u]);
+  uint res = v.y;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store(0u, textureNumLevels_f742c0());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store(0u, textureNumLevels_f742c0());
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = textureNumLevels_f742c0();
+  VertexOutput v_1 = tint_symbol;
+  return v_1;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_2 = vertex_main_inner();
+  VertexOutput v_3 = v_2;
+  VertexOutput v_4 = v_2;
+  vertex_main_outputs v_5 = {v_4.prevent_dce, v_3.pos};
+  return v_5;
+}
+
diff --git a/test/tint/builtins/gen/var/textureNumLevels/fe2171.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/textureNumLevels/fe2171.wgsl.expected.ir.dxc.hlsl
index c5f3f6e..685d445 100644
--- a/test/tint/builtins/gen/var/textureNumLevels/fe2171.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureNumLevels/fe2171.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,45 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  uint prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureNumLevels
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation uint VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+TextureCubeArray<uint4> arg_0 : register(t0, space1);
+uint textureNumLevels_fe2171() {
+  uint4 v = (0u).xxxx;
+  arg_0.GetDimensions(0u, v[0u], v[1u], v[2u], v[3u]);
+  uint res = v.w;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store(0u, textureNumLevels_fe2171());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store(0u, textureNumLevels_fe2171());
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = textureNumLevels_fe2171();
+  VertexOutput v_1 = tint_symbol;
+  return v_1;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_2 = vertex_main_inner();
+  VertexOutput v_3 = v_2;
+  VertexOutput v_4 = v_2;
+  vertex_main_outputs v_5 = {v_4.prevent_dce, v_3.pos};
+  return v_5;
+}
+
diff --git a/test/tint/builtins/gen/var/textureNumLevels/fe2171.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/textureNumLevels/fe2171.wgsl.expected.ir.fxc.hlsl
index c5f3f6e..685d445 100644
--- a/test/tint/builtins/gen/var/textureNumLevels/fe2171.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureNumLevels/fe2171.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,45 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  uint prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureNumLevels
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation uint VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+TextureCubeArray<uint4> arg_0 : register(t0, space1);
+uint textureNumLevels_fe2171() {
+  uint4 v = (0u).xxxx;
+  arg_0.GetDimensions(0u, v[0u], v[1u], v[2u], v[3u]);
+  uint res = v.w;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store(0u, textureNumLevels_fe2171());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store(0u, textureNumLevels_fe2171());
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = textureNumLevels_fe2171();
+  VertexOutput v_1 = tint_symbol;
+  return v_1;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_2 = vertex_main_inner();
+  VertexOutput v_3 = v_2;
+  VertexOutput v_4 = v_2;
+  vertex_main_outputs v_5 = {v_4.prevent_dce, v_3.pos};
+  return v_5;
+}
+
diff --git a/test/tint/builtins/gen/var/textureNumSamples/50f399.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/textureNumSamples/50f399.wgsl.expected.ir.dxc.hlsl
index f9d5143..1d42e28 100644
--- a/test/tint/builtins/gen/var/textureNumSamples/50f399.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureNumSamples/50f399.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,45 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  uint prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureNumSamples
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation uint VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+Texture2DMS<uint4> arg_0 : register(t0, space1);
+uint textureNumSamples_50f399() {
+  uint3 v = (0u).xxx;
+  arg_0.GetDimensions(v[0u], v[1u], v[2u]);
+  uint res = v.z;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store(0u, textureNumSamples_50f399());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store(0u, textureNumSamples_50f399());
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = textureNumSamples_50f399();
+  VertexOutput v_1 = tint_symbol;
+  return v_1;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_2 = vertex_main_inner();
+  VertexOutput v_3 = v_2;
+  VertexOutput v_4 = v_2;
+  vertex_main_outputs v_5 = {v_4.prevent_dce, v_3.pos};
+  return v_5;
+}
+
diff --git a/test/tint/builtins/gen/var/textureNumSamples/50f399.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/textureNumSamples/50f399.wgsl.expected.ir.fxc.hlsl
index f9d5143..1d42e28 100644
--- a/test/tint/builtins/gen/var/textureNumSamples/50f399.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureNumSamples/50f399.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,45 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  uint prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureNumSamples
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation uint VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+Texture2DMS<uint4> arg_0 : register(t0, space1);
+uint textureNumSamples_50f399() {
+  uint3 v = (0u).xxx;
+  arg_0.GetDimensions(v[0u], v[1u], v[2u]);
+  uint res = v.z;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store(0u, textureNumSamples_50f399());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store(0u, textureNumSamples_50f399());
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = textureNumSamples_50f399();
+  VertexOutput v_1 = tint_symbol;
+  return v_1;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_2 = vertex_main_inner();
+  VertexOutput v_3 = v_2;
+  VertexOutput v_4 = v_2;
+  vertex_main_outputs v_5 = {v_4.prevent_dce, v_3.pos};
+  return v_5;
+}
+
diff --git a/test/tint/builtins/gen/var/textureNumSamples/c1a777.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/textureNumSamples/c1a777.wgsl.expected.ir.dxc.hlsl
index f9d5143..82364d4 100644
--- a/test/tint/builtins/gen/var/textureNumSamples/c1a777.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureNumSamples/c1a777.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,45 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  uint prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureNumSamples
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation uint VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+Texture2DMS<int4> arg_0 : register(t0, space1);
+uint textureNumSamples_c1a777() {
+  uint3 v = (0u).xxx;
+  arg_0.GetDimensions(v[0u], v[1u], v[2u]);
+  uint res = v.z;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store(0u, textureNumSamples_c1a777());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store(0u, textureNumSamples_c1a777());
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = textureNumSamples_c1a777();
+  VertexOutput v_1 = tint_symbol;
+  return v_1;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_2 = vertex_main_inner();
+  VertexOutput v_3 = v_2;
+  VertexOutput v_4 = v_2;
+  vertex_main_outputs v_5 = {v_4.prevent_dce, v_3.pos};
+  return v_5;
+}
+
diff --git a/test/tint/builtins/gen/var/textureNumSamples/c1a777.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/textureNumSamples/c1a777.wgsl.expected.ir.fxc.hlsl
index f9d5143..82364d4 100644
--- a/test/tint/builtins/gen/var/textureNumSamples/c1a777.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureNumSamples/c1a777.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,45 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  uint prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureNumSamples
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation uint VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+Texture2DMS<int4> arg_0 : register(t0, space1);
+uint textureNumSamples_c1a777() {
+  uint3 v = (0u).xxx;
+  arg_0.GetDimensions(v[0u], v[1u], v[2u]);
+  uint res = v.z;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store(0u, textureNumSamples_c1a777());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store(0u, textureNumSamples_c1a777());
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = textureNumSamples_c1a777();
+  VertexOutput v_1 = tint_symbol;
+  return v_1;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_2 = vertex_main_inner();
+  VertexOutput v_3 = v_2;
+  VertexOutput v_4 = v_2;
+  vertex_main_outputs v_5 = {v_4.prevent_dce, v_3.pos};
+  return v_5;
+}
+
diff --git a/test/tint/builtins/gen/var/textureNumSamples/dbb799.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/textureNumSamples/dbb799.wgsl.expected.ir.dxc.hlsl
index f9d5143..a76b531 100644
--- a/test/tint/builtins/gen/var/textureNumSamples/dbb799.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureNumSamples/dbb799.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,45 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  uint prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureNumSamples
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation uint VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+Texture2DMS<float4> arg_0 : register(t0, space1);
+uint textureNumSamples_dbb799() {
+  uint3 v = (0u).xxx;
+  arg_0.GetDimensions(v[0u], v[1u], v[2u]);
+  uint res = v.z;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store(0u, textureNumSamples_dbb799());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store(0u, textureNumSamples_dbb799());
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = textureNumSamples_dbb799();
+  VertexOutput v_1 = tint_symbol;
+  return v_1;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_2 = vertex_main_inner();
+  VertexOutput v_3 = v_2;
+  VertexOutput v_4 = v_2;
+  vertex_main_outputs v_5 = {v_4.prevent_dce, v_3.pos};
+  return v_5;
+}
+
diff --git a/test/tint/builtins/gen/var/textureNumSamples/dbb799.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/textureNumSamples/dbb799.wgsl.expected.ir.fxc.hlsl
index f9d5143..a76b531 100644
--- a/test/tint/builtins/gen/var/textureNumSamples/dbb799.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureNumSamples/dbb799.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,45 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  uint prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureNumSamples
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation uint VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+Texture2DMS<float4> arg_0 : register(t0, space1);
+uint textureNumSamples_dbb799() {
+  uint3 v = (0u).xxx;
+  arg_0.GetDimensions(v[0u], v[1u], v[2u]);
+  uint res = v.z;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store(0u, textureNumSamples_dbb799());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store(0u, textureNumSamples_dbb799());
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = textureNumSamples_dbb799();
+  VertexOutput v_1 = tint_symbol;
+  return v_1;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_2 = vertex_main_inner();
+  VertexOutput v_3 = v_2;
+  VertexOutput v_4 = v_2;
+  vertex_main_outputs v_5 = {v_4.prevent_dce, v_3.pos};
+  return v_5;
+}
+
diff --git a/test/tint/builtins/gen/var/textureNumSamples/ecd321.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/textureNumSamples/ecd321.wgsl.expected.ir.dxc.hlsl
index f9d5143..f634921 100644
--- a/test/tint/builtins/gen/var/textureNumSamples/ecd321.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureNumSamples/ecd321.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,45 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  uint prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureNumSamples
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation uint VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+Texture2DMS<float4> arg_0 : register(t0, space1);
+uint textureNumSamples_ecd321() {
+  uint3 v = (0u).xxx;
+  arg_0.GetDimensions(v[0u], v[1u], v[2u]);
+  uint res = v.z;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store(0u, textureNumSamples_ecd321());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store(0u, textureNumSamples_ecd321());
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = textureNumSamples_ecd321();
+  VertexOutput v_1 = tint_symbol;
+  return v_1;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_2 = vertex_main_inner();
+  VertexOutput v_3 = v_2;
+  VertexOutput v_4 = v_2;
+  vertex_main_outputs v_5 = {v_4.prevent_dce, v_3.pos};
+  return v_5;
+}
+
diff --git a/test/tint/builtins/gen/var/textureNumSamples/ecd321.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/textureNumSamples/ecd321.wgsl.expected.ir.fxc.hlsl
index f9d5143..f634921 100644
--- a/test/tint/builtins/gen/var/textureNumSamples/ecd321.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureNumSamples/ecd321.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,45 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  uint prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureNumSamples
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation uint VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+Texture2DMS<float4> arg_0 : register(t0, space1);
+uint textureNumSamples_ecd321() {
+  uint3 v = (0u).xxx;
+  arg_0.GetDimensions(v[0u], v[1u], v[2u]);
+  uint res = v.z;
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store(0u, textureNumSamples_ecd321());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store(0u, textureNumSamples_ecd321());
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = textureNumSamples_ecd321();
+  VertexOutput v_1 = tint_symbol;
+  return v_1;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_2 = vertex_main_inner();
+  VertexOutput v_3 = v_2;
+  VertexOutput v_4 = v_2;
+  vertex_main_outputs v_5 = {v_4.prevent_dce, v_3.pos};
+  return v_5;
+}
+
diff --git a/test/tint/builtins/gen/var/textureSample/0dff6c.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/textureSample/0dff6c.wgsl.expected.ir.dxc.hlsl
index 6739938..58230f6 100644
--- a/test/tint/builtins/gen/var/textureSample/0dff6c.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureSample/0dff6c.wgsl.expected.ir.dxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureSample
+..\..\src\tint\lang\hlsl\writer\printer\printer.cc:1010 internal compiler error: TINT_UNREACHABLE unhandled: textureSample
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/var/textureSample/0dff6c.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/textureSample/0dff6c.wgsl.expected.ir.fxc.hlsl
index 6739938..58230f6 100644
--- a/test/tint/builtins/gen/var/textureSample/0dff6c.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureSample/0dff6c.wgsl.expected.ir.fxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureSample
+..\..\src\tint\lang\hlsl\writer\printer\printer.cc:1010 internal compiler error: TINT_UNREACHABLE unhandled: textureSample
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/var/textureSample/17e988.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/textureSample/17e988.wgsl.expected.ir.dxc.hlsl
index 6739938..58230f6 100644
--- a/test/tint/builtins/gen/var/textureSample/17e988.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureSample/17e988.wgsl.expected.ir.dxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureSample
+..\..\src\tint\lang\hlsl\writer\printer\printer.cc:1010 internal compiler error: TINT_UNREACHABLE unhandled: textureSample
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/var/textureSample/17e988.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/textureSample/17e988.wgsl.expected.ir.fxc.hlsl
index 6739938..58230f6 100644
--- a/test/tint/builtins/gen/var/textureSample/17e988.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureSample/17e988.wgsl.expected.ir.fxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureSample
+..\..\src\tint\lang\hlsl\writer\printer\printer.cc:1010 internal compiler error: TINT_UNREACHABLE unhandled: textureSample
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/var/textureSample/193203.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/textureSample/193203.wgsl.expected.ir.dxc.hlsl
index 6739938..58230f6 100644
--- a/test/tint/builtins/gen/var/textureSample/193203.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureSample/193203.wgsl.expected.ir.dxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureSample
+..\..\src\tint\lang\hlsl\writer\printer\printer.cc:1010 internal compiler error: TINT_UNREACHABLE unhandled: textureSample
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/var/textureSample/193203.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/textureSample/193203.wgsl.expected.ir.fxc.hlsl
index 6739938..58230f6 100644
--- a/test/tint/builtins/gen/var/textureSample/193203.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureSample/193203.wgsl.expected.ir.fxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureSample
+..\..\src\tint\lang\hlsl\writer\printer\printer.cc:1010 internal compiler error: TINT_UNREACHABLE unhandled: textureSample
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/var/textureSample/1a4e1b.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/textureSample/1a4e1b.wgsl.expected.ir.dxc.hlsl
index 6739938..58230f6 100644
--- a/test/tint/builtins/gen/var/textureSample/1a4e1b.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureSample/1a4e1b.wgsl.expected.ir.dxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureSample
+..\..\src\tint\lang\hlsl\writer\printer\printer.cc:1010 internal compiler error: TINT_UNREACHABLE unhandled: textureSample
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/var/textureSample/1a4e1b.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/textureSample/1a4e1b.wgsl.expected.ir.fxc.hlsl
index 6739938..58230f6 100644
--- a/test/tint/builtins/gen/var/textureSample/1a4e1b.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureSample/1a4e1b.wgsl.expected.ir.fxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureSample
+..\..\src\tint\lang\hlsl\writer\printer\printer.cc:1010 internal compiler error: TINT_UNREACHABLE unhandled: textureSample
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/var/textureSample/2149ec.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/textureSample/2149ec.wgsl.expected.ir.dxc.hlsl
index 6739938..58230f6 100644
--- a/test/tint/builtins/gen/var/textureSample/2149ec.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureSample/2149ec.wgsl.expected.ir.dxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureSample
+..\..\src\tint\lang\hlsl\writer\printer\printer.cc:1010 internal compiler error: TINT_UNREACHABLE unhandled: textureSample
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/var/textureSample/2149ec.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/textureSample/2149ec.wgsl.expected.ir.fxc.hlsl
index 6739938..58230f6 100644
--- a/test/tint/builtins/gen/var/textureSample/2149ec.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureSample/2149ec.wgsl.expected.ir.fxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureSample
+..\..\src\tint\lang\hlsl\writer\printer\printer.cc:1010 internal compiler error: TINT_UNREACHABLE unhandled: textureSample
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/var/textureSample/38bbb9.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/textureSample/38bbb9.wgsl.expected.ir.dxc.hlsl
index 6739938..58230f6 100644
--- a/test/tint/builtins/gen/var/textureSample/38bbb9.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureSample/38bbb9.wgsl.expected.ir.dxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureSample
+..\..\src\tint\lang\hlsl\writer\printer\printer.cc:1010 internal compiler error: TINT_UNREACHABLE unhandled: textureSample
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/var/textureSample/38bbb9.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/textureSample/38bbb9.wgsl.expected.ir.fxc.hlsl
index 6739938..58230f6 100644
--- a/test/tint/builtins/gen/var/textureSample/38bbb9.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureSample/38bbb9.wgsl.expected.ir.fxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureSample
+..\..\src\tint\lang\hlsl\writer\printer\printer.cc:1010 internal compiler error: TINT_UNREACHABLE unhandled: textureSample
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/var/textureSample/3b50bd.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/textureSample/3b50bd.wgsl.expected.ir.dxc.hlsl
index 6739938..58230f6 100644
--- a/test/tint/builtins/gen/var/textureSample/3b50bd.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureSample/3b50bd.wgsl.expected.ir.dxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureSample
+..\..\src\tint\lang\hlsl\writer\printer\printer.cc:1010 internal compiler error: TINT_UNREACHABLE unhandled: textureSample
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/var/textureSample/3b50bd.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/textureSample/3b50bd.wgsl.expected.ir.fxc.hlsl
index 6739938..58230f6 100644
--- a/test/tint/builtins/gen/var/textureSample/3b50bd.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureSample/3b50bd.wgsl.expected.ir.fxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureSample
+..\..\src\tint\lang\hlsl\writer\printer\printer.cc:1010 internal compiler error: TINT_UNREACHABLE unhandled: textureSample
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/var/textureSample/4703d0.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/textureSample/4703d0.wgsl.expected.ir.dxc.hlsl
index 6739938..58230f6 100644
--- a/test/tint/builtins/gen/var/textureSample/4703d0.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureSample/4703d0.wgsl.expected.ir.dxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureSample
+..\..\src\tint\lang\hlsl\writer\printer\printer.cc:1010 internal compiler error: TINT_UNREACHABLE unhandled: textureSample
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/var/textureSample/4703d0.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/textureSample/4703d0.wgsl.expected.ir.fxc.hlsl
index 6739938..58230f6 100644
--- a/test/tint/builtins/gen/var/textureSample/4703d0.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureSample/4703d0.wgsl.expected.ir.fxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureSample
+..\..\src\tint\lang\hlsl\writer\printer\printer.cc:1010 internal compiler error: TINT_UNREACHABLE unhandled: textureSample
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/var/textureSample/4dd1bf.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/textureSample/4dd1bf.wgsl.expected.ir.dxc.hlsl
index 6739938..58230f6 100644
--- a/test/tint/builtins/gen/var/textureSample/4dd1bf.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureSample/4dd1bf.wgsl.expected.ir.dxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureSample
+..\..\src\tint\lang\hlsl\writer\printer\printer.cc:1010 internal compiler error: TINT_UNREACHABLE unhandled: textureSample
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/var/textureSample/4dd1bf.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/textureSample/4dd1bf.wgsl.expected.ir.fxc.hlsl
index 6739938..58230f6 100644
--- a/test/tint/builtins/gen/var/textureSample/4dd1bf.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureSample/4dd1bf.wgsl.expected.ir.fxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureSample
+..\..\src\tint\lang\hlsl\writer\printer\printer.cc:1010 internal compiler error: TINT_UNREACHABLE unhandled: textureSample
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/var/textureSample/51b514.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/textureSample/51b514.wgsl.expected.ir.dxc.hlsl
index 6739938..58230f6 100644
--- a/test/tint/builtins/gen/var/textureSample/51b514.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureSample/51b514.wgsl.expected.ir.dxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureSample
+..\..\src\tint\lang\hlsl\writer\printer\printer.cc:1010 internal compiler error: TINT_UNREACHABLE unhandled: textureSample
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/var/textureSample/51b514.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/textureSample/51b514.wgsl.expected.ir.fxc.hlsl
index 6739938..58230f6 100644
--- a/test/tint/builtins/gen/var/textureSample/51b514.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureSample/51b514.wgsl.expected.ir.fxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureSample
+..\..\src\tint\lang\hlsl\writer\printer\printer.cc:1010 internal compiler error: TINT_UNREACHABLE unhandled: textureSample
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/var/textureSample/60bf45.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/textureSample/60bf45.wgsl.expected.ir.dxc.hlsl
index 6739938..58230f6 100644
--- a/test/tint/builtins/gen/var/textureSample/60bf45.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureSample/60bf45.wgsl.expected.ir.dxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureSample
+..\..\src\tint\lang\hlsl\writer\printer\printer.cc:1010 internal compiler error: TINT_UNREACHABLE unhandled: textureSample
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/var/textureSample/60bf45.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/textureSample/60bf45.wgsl.expected.ir.fxc.hlsl
index 6739938..58230f6 100644
--- a/test/tint/builtins/gen/var/textureSample/60bf45.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureSample/60bf45.wgsl.expected.ir.fxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureSample
+..\..\src\tint\lang\hlsl\writer\printer\printer.cc:1010 internal compiler error: TINT_UNREACHABLE unhandled: textureSample
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/var/textureSample/6717ca.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/textureSample/6717ca.wgsl.expected.ir.dxc.hlsl
index 6739938..58230f6 100644
--- a/test/tint/builtins/gen/var/textureSample/6717ca.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureSample/6717ca.wgsl.expected.ir.dxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureSample
+..\..\src\tint\lang\hlsl\writer\printer\printer.cc:1010 internal compiler error: TINT_UNREACHABLE unhandled: textureSample
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/var/textureSample/6717ca.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/textureSample/6717ca.wgsl.expected.ir.fxc.hlsl
index 6739938..58230f6 100644
--- a/test/tint/builtins/gen/var/textureSample/6717ca.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureSample/6717ca.wgsl.expected.ir.fxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureSample
+..\..\src\tint\lang\hlsl\writer\printer\printer.cc:1010 internal compiler error: TINT_UNREACHABLE unhandled: textureSample
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/var/textureSample/6e64fb.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/textureSample/6e64fb.wgsl.expected.ir.dxc.hlsl
index 6739938..58230f6 100644
--- a/test/tint/builtins/gen/var/textureSample/6e64fb.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureSample/6e64fb.wgsl.expected.ir.dxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureSample
+..\..\src\tint\lang\hlsl\writer\printer\printer.cc:1010 internal compiler error: TINT_UNREACHABLE unhandled: textureSample
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/var/textureSample/6e64fb.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/textureSample/6e64fb.wgsl.expected.ir.fxc.hlsl
index 6739938..58230f6 100644
--- a/test/tint/builtins/gen/var/textureSample/6e64fb.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureSample/6e64fb.wgsl.expected.ir.fxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureSample
+..\..\src\tint\lang\hlsl\writer\printer\printer.cc:1010 internal compiler error: TINT_UNREACHABLE unhandled: textureSample
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/var/textureSample/7e9ffd.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/textureSample/7e9ffd.wgsl.expected.ir.dxc.hlsl
index 6739938..58230f6 100644
--- a/test/tint/builtins/gen/var/textureSample/7e9ffd.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureSample/7e9ffd.wgsl.expected.ir.dxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureSample
+..\..\src\tint\lang\hlsl\writer\printer\printer.cc:1010 internal compiler error: TINT_UNREACHABLE unhandled: textureSample
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/var/textureSample/7e9ffd.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/textureSample/7e9ffd.wgsl.expected.ir.fxc.hlsl
index 6739938..58230f6 100644
--- a/test/tint/builtins/gen/var/textureSample/7e9ffd.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureSample/7e9ffd.wgsl.expected.ir.fxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureSample
+..\..\src\tint\lang\hlsl\writer\printer\printer.cc:1010 internal compiler error: TINT_UNREACHABLE unhandled: textureSample
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/var/textureSample/7fd8cb.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/textureSample/7fd8cb.wgsl.expected.ir.dxc.hlsl
index 6739938..58230f6 100644
--- a/test/tint/builtins/gen/var/textureSample/7fd8cb.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureSample/7fd8cb.wgsl.expected.ir.dxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureSample
+..\..\src\tint\lang\hlsl\writer\printer\printer.cc:1010 internal compiler error: TINT_UNREACHABLE unhandled: textureSample
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/var/textureSample/7fd8cb.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/textureSample/7fd8cb.wgsl.expected.ir.fxc.hlsl
index 6739938..58230f6 100644
--- a/test/tint/builtins/gen/var/textureSample/7fd8cb.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureSample/7fd8cb.wgsl.expected.ir.fxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureSample
+..\..\src\tint\lang\hlsl\writer\printer\printer.cc:1010 internal compiler error: TINT_UNREACHABLE unhandled: textureSample
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/var/textureSample/85c4ba.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/textureSample/85c4ba.wgsl.expected.ir.dxc.hlsl
index 6739938..58230f6 100644
--- a/test/tint/builtins/gen/var/textureSample/85c4ba.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureSample/85c4ba.wgsl.expected.ir.dxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureSample
+..\..\src\tint\lang\hlsl\writer\printer\printer.cc:1010 internal compiler error: TINT_UNREACHABLE unhandled: textureSample
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/var/textureSample/85c4ba.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/textureSample/85c4ba.wgsl.expected.ir.fxc.hlsl
index 6739938..58230f6 100644
--- a/test/tint/builtins/gen/var/textureSample/85c4ba.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureSample/85c4ba.wgsl.expected.ir.fxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureSample
+..\..\src\tint\lang\hlsl\writer\printer\printer.cc:1010 internal compiler error: TINT_UNREACHABLE unhandled: textureSample
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/var/textureSample/bc7477.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/textureSample/bc7477.wgsl.expected.ir.dxc.hlsl
index 6739938..58230f6 100644
--- a/test/tint/builtins/gen/var/textureSample/bc7477.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureSample/bc7477.wgsl.expected.ir.dxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureSample
+..\..\src\tint\lang\hlsl\writer\printer\printer.cc:1010 internal compiler error: TINT_UNREACHABLE unhandled: textureSample
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/var/textureSample/bc7477.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/textureSample/bc7477.wgsl.expected.ir.fxc.hlsl
index 6739938..58230f6 100644
--- a/test/tint/builtins/gen/var/textureSample/bc7477.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureSample/bc7477.wgsl.expected.ir.fxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureSample
+..\..\src\tint\lang\hlsl\writer\printer\printer.cc:1010 internal compiler error: TINT_UNREACHABLE unhandled: textureSample
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/var/textureSample/c2f4e8.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/textureSample/c2f4e8.wgsl.expected.ir.dxc.hlsl
index 6739938..58230f6 100644
--- a/test/tint/builtins/gen/var/textureSample/c2f4e8.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureSample/c2f4e8.wgsl.expected.ir.dxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureSample
+..\..\src\tint\lang\hlsl\writer\printer\printer.cc:1010 internal compiler error: TINT_UNREACHABLE unhandled: textureSample
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/var/textureSample/c2f4e8.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/textureSample/c2f4e8.wgsl.expected.ir.fxc.hlsl
index 6739938..58230f6 100644
--- a/test/tint/builtins/gen/var/textureSample/c2f4e8.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureSample/c2f4e8.wgsl.expected.ir.fxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureSample
+..\..\src\tint\lang\hlsl\writer\printer\printer.cc:1010 internal compiler error: TINT_UNREACHABLE unhandled: textureSample
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/var/textureSample/d6b281.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/textureSample/d6b281.wgsl.expected.ir.dxc.hlsl
index 6739938..58230f6 100644
--- a/test/tint/builtins/gen/var/textureSample/d6b281.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureSample/d6b281.wgsl.expected.ir.dxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureSample
+..\..\src\tint\lang\hlsl\writer\printer\printer.cc:1010 internal compiler error: TINT_UNREACHABLE unhandled: textureSample
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/var/textureSample/d6b281.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/textureSample/d6b281.wgsl.expected.ir.fxc.hlsl
index 6739938..58230f6 100644
--- a/test/tint/builtins/gen/var/textureSample/d6b281.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureSample/d6b281.wgsl.expected.ir.fxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureSample
+..\..\src\tint\lang\hlsl\writer\printer\printer.cc:1010 internal compiler error: TINT_UNREACHABLE unhandled: textureSample
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/var/textureSample/e53267.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/textureSample/e53267.wgsl.expected.ir.dxc.hlsl
index 6739938..58230f6 100644
--- a/test/tint/builtins/gen/var/textureSample/e53267.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureSample/e53267.wgsl.expected.ir.dxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureSample
+..\..\src\tint\lang\hlsl\writer\printer\printer.cc:1010 internal compiler error: TINT_UNREACHABLE unhandled: textureSample
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/var/textureSample/e53267.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/textureSample/e53267.wgsl.expected.ir.fxc.hlsl
index 6739938..58230f6 100644
--- a/test/tint/builtins/gen/var/textureSample/e53267.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureSample/e53267.wgsl.expected.ir.fxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureSample
+..\..\src\tint\lang\hlsl\writer\printer\printer.cc:1010 internal compiler error: TINT_UNREACHABLE unhandled: textureSample
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/var/textureSample/ea7030.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/textureSample/ea7030.wgsl.expected.ir.dxc.hlsl
index 6739938..58230f6 100644
--- a/test/tint/builtins/gen/var/textureSample/ea7030.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureSample/ea7030.wgsl.expected.ir.dxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureSample
+..\..\src\tint\lang\hlsl\writer\printer\printer.cc:1010 internal compiler error: TINT_UNREACHABLE unhandled: textureSample
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/var/textureSample/ea7030.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/textureSample/ea7030.wgsl.expected.ir.fxc.hlsl
index 6739938..58230f6 100644
--- a/test/tint/builtins/gen/var/textureSample/ea7030.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureSample/ea7030.wgsl.expected.ir.fxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureSample
+..\..\src\tint\lang\hlsl\writer\printer\printer.cc:1010 internal compiler error: TINT_UNREACHABLE unhandled: textureSample
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/var/textureSampleBaseClampToEdge/7c04e6.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/textureSampleBaseClampToEdge/7c04e6.wgsl.expected.ir.dxc.hlsl
index 2bded89..cf26da3 100644
--- a/test/tint/builtins/gen/var/textureSampleBaseClampToEdge/7c04e6.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureSampleBaseClampToEdge/7c04e6.wgsl.expected.ir.dxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureSampleBaseClampToEdge
+..\..\src\tint\lang\hlsl\writer\printer\printer.cc:1010 internal compiler error: TINT_UNREACHABLE unhandled: textureSampleLevel
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/var/textureSampleBaseClampToEdge/7c04e6.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/textureSampleBaseClampToEdge/7c04e6.wgsl.expected.ir.fxc.hlsl
index 2bded89..cf26da3 100644
--- a/test/tint/builtins/gen/var/textureSampleBaseClampToEdge/7c04e6.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureSampleBaseClampToEdge/7c04e6.wgsl.expected.ir.fxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureSampleBaseClampToEdge
+..\..\src\tint\lang\hlsl\writer\printer\printer.cc:1010 internal compiler error: TINT_UNREACHABLE unhandled: textureSampleLevel
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/var/textureSampleBaseClampToEdge/9ca02c.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/textureSampleBaseClampToEdge/9ca02c.wgsl.expected.ir.dxc.hlsl
index 2bded89..cf26da3 100644
--- a/test/tint/builtins/gen/var/textureSampleBaseClampToEdge/9ca02c.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureSampleBaseClampToEdge/9ca02c.wgsl.expected.ir.dxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureSampleBaseClampToEdge
+..\..\src\tint\lang\hlsl\writer\printer\printer.cc:1010 internal compiler error: TINT_UNREACHABLE unhandled: textureSampleLevel
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/var/textureSampleBaseClampToEdge/9ca02c.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/textureSampleBaseClampToEdge/9ca02c.wgsl.expected.ir.fxc.hlsl
index 2bded89..cf26da3 100644
--- a/test/tint/builtins/gen/var/textureSampleBaseClampToEdge/9ca02c.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureSampleBaseClampToEdge/9ca02c.wgsl.expected.ir.fxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureSampleBaseClampToEdge
+..\..\src\tint\lang\hlsl\writer\printer\printer.cc:1010 internal compiler error: TINT_UNREACHABLE unhandled: textureSampleLevel
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/var/textureSampleBias/1c707e.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/textureSampleBias/1c707e.wgsl.expected.ir.dxc.hlsl
index 1639ef2..49d2f50 100644
--- a/test/tint/builtins/gen/var/textureSampleBias/1c707e.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureSampleBias/1c707e.wgsl.expected.ir.dxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureSampleBias
+..\..\src\tint\lang\hlsl\writer\printer\printer.cc:1010 internal compiler error: TINT_UNREACHABLE unhandled: textureSampleBias
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/var/textureSampleBias/1c707e.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/textureSampleBias/1c707e.wgsl.expected.ir.fxc.hlsl
index 1639ef2..49d2f50 100644
--- a/test/tint/builtins/gen/var/textureSampleBias/1c707e.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureSampleBias/1c707e.wgsl.expected.ir.fxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureSampleBias
+..\..\src\tint\lang\hlsl\writer\printer\printer.cc:1010 internal compiler error: TINT_UNREACHABLE unhandled: textureSampleBias
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/var/textureSampleBias/53b9f7.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/textureSampleBias/53b9f7.wgsl.expected.ir.dxc.hlsl
index 1639ef2..49d2f50 100644
--- a/test/tint/builtins/gen/var/textureSampleBias/53b9f7.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureSampleBias/53b9f7.wgsl.expected.ir.dxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureSampleBias
+..\..\src\tint\lang\hlsl\writer\printer\printer.cc:1010 internal compiler error: TINT_UNREACHABLE unhandled: textureSampleBias
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/var/textureSampleBias/53b9f7.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/textureSampleBias/53b9f7.wgsl.expected.ir.fxc.hlsl
index 1639ef2..49d2f50 100644
--- a/test/tint/builtins/gen/var/textureSampleBias/53b9f7.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureSampleBias/53b9f7.wgsl.expected.ir.fxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureSampleBias
+..\..\src\tint\lang\hlsl\writer\printer\printer.cc:1010 internal compiler error: TINT_UNREACHABLE unhandled: textureSampleBias
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/var/textureSampleBias/594824.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/textureSampleBias/594824.wgsl.expected.ir.dxc.hlsl
index 1639ef2..49d2f50 100644
--- a/test/tint/builtins/gen/var/textureSampleBias/594824.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureSampleBias/594824.wgsl.expected.ir.dxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureSampleBias
+..\..\src\tint\lang\hlsl\writer\printer\printer.cc:1010 internal compiler error: TINT_UNREACHABLE unhandled: textureSampleBias
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/var/textureSampleBias/594824.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/textureSampleBias/594824.wgsl.expected.ir.fxc.hlsl
index 1639ef2..49d2f50 100644
--- a/test/tint/builtins/gen/var/textureSampleBias/594824.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureSampleBias/594824.wgsl.expected.ir.fxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureSampleBias
+..\..\src\tint\lang\hlsl\writer\printer\printer.cc:1010 internal compiler error: TINT_UNREACHABLE unhandled: textureSampleBias
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/var/textureSampleBias/6a9113.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/textureSampleBias/6a9113.wgsl.expected.ir.dxc.hlsl
index 1639ef2..49d2f50 100644
--- a/test/tint/builtins/gen/var/textureSampleBias/6a9113.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureSampleBias/6a9113.wgsl.expected.ir.dxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureSampleBias
+..\..\src\tint\lang\hlsl\writer\printer\printer.cc:1010 internal compiler error: TINT_UNREACHABLE unhandled: textureSampleBias
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/var/textureSampleBias/6a9113.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/textureSampleBias/6a9113.wgsl.expected.ir.fxc.hlsl
index 1639ef2..49d2f50 100644
--- a/test/tint/builtins/gen/var/textureSampleBias/6a9113.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureSampleBias/6a9113.wgsl.expected.ir.fxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureSampleBias
+..\..\src\tint\lang\hlsl\writer\printer\printer.cc:1010 internal compiler error: TINT_UNREACHABLE unhandled: textureSampleBias
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/var/textureSampleBias/80e579.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/textureSampleBias/80e579.wgsl.expected.ir.dxc.hlsl
index 1639ef2..49d2f50 100644
--- a/test/tint/builtins/gen/var/textureSampleBias/80e579.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureSampleBias/80e579.wgsl.expected.ir.dxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureSampleBias
+..\..\src\tint\lang\hlsl\writer\printer\printer.cc:1010 internal compiler error: TINT_UNREACHABLE unhandled: textureSampleBias
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/var/textureSampleBias/80e579.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/textureSampleBias/80e579.wgsl.expected.ir.fxc.hlsl
index 1639ef2..49d2f50 100644
--- a/test/tint/builtins/gen/var/textureSampleBias/80e579.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureSampleBias/80e579.wgsl.expected.ir.fxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureSampleBias
+..\..\src\tint\lang\hlsl\writer\printer\printer.cc:1010 internal compiler error: TINT_UNREACHABLE unhandled: textureSampleBias
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/var/textureSampleBias/87915c.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/textureSampleBias/87915c.wgsl.expected.ir.dxc.hlsl
index 1639ef2..49d2f50 100644
--- a/test/tint/builtins/gen/var/textureSampleBias/87915c.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureSampleBias/87915c.wgsl.expected.ir.dxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureSampleBias
+..\..\src\tint\lang\hlsl\writer\printer\printer.cc:1010 internal compiler error: TINT_UNREACHABLE unhandled: textureSampleBias
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/var/textureSampleBias/87915c.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/textureSampleBias/87915c.wgsl.expected.ir.fxc.hlsl
index 1639ef2..49d2f50 100644
--- a/test/tint/builtins/gen/var/textureSampleBias/87915c.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureSampleBias/87915c.wgsl.expected.ir.fxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureSampleBias
+..\..\src\tint\lang\hlsl\writer\printer\printer.cc:1010 internal compiler error: TINT_UNREACHABLE unhandled: textureSampleBias
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/var/textureSampleBias/9dbb51.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/textureSampleBias/9dbb51.wgsl.expected.ir.dxc.hlsl
index 1639ef2..49d2f50 100644
--- a/test/tint/builtins/gen/var/textureSampleBias/9dbb51.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureSampleBias/9dbb51.wgsl.expected.ir.dxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureSampleBias
+..\..\src\tint\lang\hlsl\writer\printer\printer.cc:1010 internal compiler error: TINT_UNREACHABLE unhandled: textureSampleBias
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/var/textureSampleBias/9dbb51.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/textureSampleBias/9dbb51.wgsl.expected.ir.fxc.hlsl
index 1639ef2..49d2f50 100644
--- a/test/tint/builtins/gen/var/textureSampleBias/9dbb51.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureSampleBias/9dbb51.wgsl.expected.ir.fxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureSampleBias
+..\..\src\tint\lang\hlsl\writer\printer\printer.cc:1010 internal compiler error: TINT_UNREACHABLE unhandled: textureSampleBias
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/var/textureSampleBias/a161cf.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/textureSampleBias/a161cf.wgsl.expected.ir.dxc.hlsl
index 1639ef2..49d2f50 100644
--- a/test/tint/builtins/gen/var/textureSampleBias/a161cf.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureSampleBias/a161cf.wgsl.expected.ir.dxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureSampleBias
+..\..\src\tint\lang\hlsl\writer\printer\printer.cc:1010 internal compiler error: TINT_UNREACHABLE unhandled: textureSampleBias
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/var/textureSampleBias/a161cf.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/textureSampleBias/a161cf.wgsl.expected.ir.fxc.hlsl
index 1639ef2..49d2f50 100644
--- a/test/tint/builtins/gen/var/textureSampleBias/a161cf.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureSampleBias/a161cf.wgsl.expected.ir.fxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureSampleBias
+..\..\src\tint\lang\hlsl\writer\printer\printer.cc:1010 internal compiler error: TINT_UNREACHABLE unhandled: textureSampleBias
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/var/textureSampleBias/c6953d.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/textureSampleBias/c6953d.wgsl.expected.ir.dxc.hlsl
index 1639ef2..49d2f50 100644
--- a/test/tint/builtins/gen/var/textureSampleBias/c6953d.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureSampleBias/c6953d.wgsl.expected.ir.dxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureSampleBias
+..\..\src\tint\lang\hlsl\writer\printer\printer.cc:1010 internal compiler error: TINT_UNREACHABLE unhandled: textureSampleBias
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/var/textureSampleBias/c6953d.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/textureSampleBias/c6953d.wgsl.expected.ir.fxc.hlsl
index 1639ef2..49d2f50 100644
--- a/test/tint/builtins/gen/var/textureSampleBias/c6953d.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureSampleBias/c6953d.wgsl.expected.ir.fxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureSampleBias
+..\..\src\tint\lang\hlsl\writer\printer\printer.cc:1010 internal compiler error: TINT_UNREACHABLE unhandled: textureSampleBias
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/var/textureSampleBias/d3fa1b.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/textureSampleBias/d3fa1b.wgsl.expected.ir.dxc.hlsl
index 1639ef2..49d2f50 100644
--- a/test/tint/builtins/gen/var/textureSampleBias/d3fa1b.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureSampleBias/d3fa1b.wgsl.expected.ir.dxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureSampleBias
+..\..\src\tint\lang\hlsl\writer\printer\printer.cc:1010 internal compiler error: TINT_UNREACHABLE unhandled: textureSampleBias
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/var/textureSampleBias/d3fa1b.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/textureSampleBias/d3fa1b.wgsl.expected.ir.fxc.hlsl
index 1639ef2..49d2f50 100644
--- a/test/tint/builtins/gen/var/textureSampleBias/d3fa1b.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureSampleBias/d3fa1b.wgsl.expected.ir.fxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureSampleBias
+..\..\src\tint\lang\hlsl\writer\printer\printer.cc:1010 internal compiler error: TINT_UNREACHABLE unhandled: textureSampleBias
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/var/textureSampleBias/eed7c4.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/textureSampleBias/eed7c4.wgsl.expected.ir.dxc.hlsl
index 1639ef2..49d2f50 100644
--- a/test/tint/builtins/gen/var/textureSampleBias/eed7c4.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureSampleBias/eed7c4.wgsl.expected.ir.dxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureSampleBias
+..\..\src\tint\lang\hlsl\writer\printer\printer.cc:1010 internal compiler error: TINT_UNREACHABLE unhandled: textureSampleBias
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/var/textureSampleBias/eed7c4.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/textureSampleBias/eed7c4.wgsl.expected.ir.fxc.hlsl
index 1639ef2..49d2f50 100644
--- a/test/tint/builtins/gen/var/textureSampleBias/eed7c4.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureSampleBias/eed7c4.wgsl.expected.ir.fxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureSampleBias
+..\..\src\tint\lang\hlsl\writer\printer\printer.cc:1010 internal compiler error: TINT_UNREACHABLE unhandled: textureSampleBias
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/var/textureSampleCompare/1912e5.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/textureSampleCompare/1912e5.wgsl.expected.ir.dxc.hlsl
index 16966cd..b7acf20 100644
--- a/test/tint/builtins/gen/var/textureSampleCompare/1912e5.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureSampleCompare/1912e5.wgsl.expected.ir.dxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureSampleCompare
+..\..\src\tint\lang\hlsl\writer\printer\printer.cc:1010 internal compiler error: TINT_UNREACHABLE unhandled: textureSampleCompare
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/var/textureSampleCompare/1912e5.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/textureSampleCompare/1912e5.wgsl.expected.ir.fxc.hlsl
index 16966cd..b7acf20 100644
--- a/test/tint/builtins/gen/var/textureSampleCompare/1912e5.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureSampleCompare/1912e5.wgsl.expected.ir.fxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureSampleCompare
+..\..\src\tint\lang\hlsl\writer\printer\printer.cc:1010 internal compiler error: TINT_UNREACHABLE unhandled: textureSampleCompare
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/var/textureSampleCompare/3a5923.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/textureSampleCompare/3a5923.wgsl.expected.ir.dxc.hlsl
index 16966cd..b7acf20 100644
--- a/test/tint/builtins/gen/var/textureSampleCompare/3a5923.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureSampleCompare/3a5923.wgsl.expected.ir.dxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureSampleCompare
+..\..\src\tint\lang\hlsl\writer\printer\printer.cc:1010 internal compiler error: TINT_UNREACHABLE unhandled: textureSampleCompare
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/var/textureSampleCompare/3a5923.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/textureSampleCompare/3a5923.wgsl.expected.ir.fxc.hlsl
index 16966cd..b7acf20 100644
--- a/test/tint/builtins/gen/var/textureSampleCompare/3a5923.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureSampleCompare/3a5923.wgsl.expected.ir.fxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureSampleCompare
+..\..\src\tint\lang\hlsl\writer\printer\printer.cc:1010 internal compiler error: TINT_UNREACHABLE unhandled: textureSampleCompare
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/var/textureSampleCompare/63fb83.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/textureSampleCompare/63fb83.wgsl.expected.ir.dxc.hlsl
index 16966cd..b7acf20 100644
--- a/test/tint/builtins/gen/var/textureSampleCompare/63fb83.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureSampleCompare/63fb83.wgsl.expected.ir.dxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureSampleCompare
+..\..\src\tint\lang\hlsl\writer\printer\printer.cc:1010 internal compiler error: TINT_UNREACHABLE unhandled: textureSampleCompare
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/var/textureSampleCompare/63fb83.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/textureSampleCompare/63fb83.wgsl.expected.ir.fxc.hlsl
index 16966cd..b7acf20 100644
--- a/test/tint/builtins/gen/var/textureSampleCompare/63fb83.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureSampleCompare/63fb83.wgsl.expected.ir.fxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureSampleCompare
+..\..\src\tint\lang\hlsl\writer\printer\printer.cc:1010 internal compiler error: TINT_UNREACHABLE unhandled: textureSampleCompare
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/var/textureSampleCompare/7b5025.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/textureSampleCompare/7b5025.wgsl.expected.ir.dxc.hlsl
index 16966cd..b7acf20 100644
--- a/test/tint/builtins/gen/var/textureSampleCompare/7b5025.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureSampleCompare/7b5025.wgsl.expected.ir.dxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureSampleCompare
+..\..\src\tint\lang\hlsl\writer\printer\printer.cc:1010 internal compiler error: TINT_UNREACHABLE unhandled: textureSampleCompare
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/var/textureSampleCompare/7b5025.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/textureSampleCompare/7b5025.wgsl.expected.ir.fxc.hlsl
index 16966cd..b7acf20 100644
--- a/test/tint/builtins/gen/var/textureSampleCompare/7b5025.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureSampleCompare/7b5025.wgsl.expected.ir.fxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureSampleCompare
+..\..\src\tint\lang\hlsl\writer\printer\printer.cc:1010 internal compiler error: TINT_UNREACHABLE unhandled: textureSampleCompare
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/var/textureSampleCompare/90ae56.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/textureSampleCompare/90ae56.wgsl.expected.ir.dxc.hlsl
index 16966cd..b7acf20 100644
--- a/test/tint/builtins/gen/var/textureSampleCompare/90ae56.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureSampleCompare/90ae56.wgsl.expected.ir.dxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureSampleCompare
+..\..\src\tint\lang\hlsl\writer\printer\printer.cc:1010 internal compiler error: TINT_UNREACHABLE unhandled: textureSampleCompare
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/var/textureSampleCompare/90ae56.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/textureSampleCompare/90ae56.wgsl.expected.ir.fxc.hlsl
index 16966cd..b7acf20 100644
--- a/test/tint/builtins/gen/var/textureSampleCompare/90ae56.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureSampleCompare/90ae56.wgsl.expected.ir.fxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureSampleCompare
+..\..\src\tint\lang\hlsl\writer\printer\printer.cc:1010 internal compiler error: TINT_UNREACHABLE unhandled: textureSampleCompare
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/var/textureSampleCompare/a3ca7e.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/textureSampleCompare/a3ca7e.wgsl.expected.ir.dxc.hlsl
index 16966cd..b7acf20 100644
--- a/test/tint/builtins/gen/var/textureSampleCompare/a3ca7e.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureSampleCompare/a3ca7e.wgsl.expected.ir.dxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureSampleCompare
+..\..\src\tint\lang\hlsl\writer\printer\printer.cc:1010 internal compiler error: TINT_UNREACHABLE unhandled: textureSampleCompare
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/var/textureSampleCompare/a3ca7e.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/textureSampleCompare/a3ca7e.wgsl.expected.ir.fxc.hlsl
index 16966cd..b7acf20 100644
--- a/test/tint/builtins/gen/var/textureSampleCompare/a3ca7e.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureSampleCompare/a3ca7e.wgsl.expected.ir.fxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureSampleCompare
+..\..\src\tint\lang\hlsl\writer\printer\printer.cc:1010 internal compiler error: TINT_UNREACHABLE unhandled: textureSampleCompare
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/var/textureSampleCompare/af1051.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/textureSampleCompare/af1051.wgsl.expected.ir.dxc.hlsl
index 16966cd..b7acf20 100644
--- a/test/tint/builtins/gen/var/textureSampleCompare/af1051.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureSampleCompare/af1051.wgsl.expected.ir.dxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureSampleCompare
+..\..\src\tint\lang\hlsl\writer\printer\printer.cc:1010 internal compiler error: TINT_UNREACHABLE unhandled: textureSampleCompare
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/var/textureSampleCompare/af1051.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/textureSampleCompare/af1051.wgsl.expected.ir.fxc.hlsl
index 16966cd..b7acf20 100644
--- a/test/tint/builtins/gen/var/textureSampleCompare/af1051.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureSampleCompare/af1051.wgsl.expected.ir.fxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureSampleCompare
+..\..\src\tint\lang\hlsl\writer\printer\printer.cc:1010 internal compiler error: TINT_UNREACHABLE unhandled: textureSampleCompare
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/var/textureSampleCompare/dd431d.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/textureSampleCompare/dd431d.wgsl.expected.ir.dxc.hlsl
index 16966cd..b7acf20 100644
--- a/test/tint/builtins/gen/var/textureSampleCompare/dd431d.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureSampleCompare/dd431d.wgsl.expected.ir.dxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureSampleCompare
+..\..\src\tint\lang\hlsl\writer\printer\printer.cc:1010 internal compiler error: TINT_UNREACHABLE unhandled: textureSampleCompare
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/var/textureSampleCompare/dd431d.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/textureSampleCompare/dd431d.wgsl.expected.ir.fxc.hlsl
index 16966cd..b7acf20 100644
--- a/test/tint/builtins/gen/var/textureSampleCompare/dd431d.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureSampleCompare/dd431d.wgsl.expected.ir.fxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureSampleCompare
+..\..\src\tint\lang\hlsl\writer\printer\printer.cc:1010 internal compiler error: TINT_UNREACHABLE unhandled: textureSampleCompare
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/var/textureSampleCompare/dec064.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/textureSampleCompare/dec064.wgsl.expected.ir.dxc.hlsl
index 16966cd..b7acf20 100644
--- a/test/tint/builtins/gen/var/textureSampleCompare/dec064.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureSampleCompare/dec064.wgsl.expected.ir.dxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureSampleCompare
+..\..\src\tint\lang\hlsl\writer\printer\printer.cc:1010 internal compiler error: TINT_UNREACHABLE unhandled: textureSampleCompare
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/var/textureSampleCompare/dec064.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/textureSampleCompare/dec064.wgsl.expected.ir.fxc.hlsl
index 16966cd..b7acf20 100644
--- a/test/tint/builtins/gen/var/textureSampleCompare/dec064.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureSampleCompare/dec064.wgsl.expected.ir.fxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureSampleCompare
+..\..\src\tint\lang\hlsl\writer\printer\printer.cc:1010 internal compiler error: TINT_UNREACHABLE unhandled: textureSampleCompare
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/var/textureSampleCompareLevel/1116ed.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/textureSampleCompareLevel/1116ed.wgsl.expected.ir.dxc.hlsl
index 09571e5..f8e283a 100644
--- a/test/tint/builtins/gen/var/textureSampleCompareLevel/1116ed.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureSampleCompareLevel/1116ed.wgsl.expected.ir.dxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureSampleCompareLevel
+..\..\src\tint\lang\hlsl\writer\printer\printer.cc:1010 internal compiler error: TINT_UNREACHABLE unhandled: textureSampleCompareLevel
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/var/textureSampleCompareLevel/1116ed.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/textureSampleCompareLevel/1116ed.wgsl.expected.ir.fxc.hlsl
index 09571e5..f8e283a 100644
--- a/test/tint/builtins/gen/var/textureSampleCompareLevel/1116ed.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureSampleCompareLevel/1116ed.wgsl.expected.ir.fxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureSampleCompareLevel
+..\..\src\tint\lang\hlsl\writer\printer\printer.cc:1010 internal compiler error: TINT_UNREACHABLE unhandled: textureSampleCompareLevel
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/var/textureSampleCompareLevel/1568e3.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/textureSampleCompareLevel/1568e3.wgsl.expected.ir.dxc.hlsl
index 09571e5..f8e283a 100644
--- a/test/tint/builtins/gen/var/textureSampleCompareLevel/1568e3.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureSampleCompareLevel/1568e3.wgsl.expected.ir.dxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureSampleCompareLevel
+..\..\src\tint\lang\hlsl\writer\printer\printer.cc:1010 internal compiler error: TINT_UNREACHABLE unhandled: textureSampleCompareLevel
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/var/textureSampleCompareLevel/1568e3.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/textureSampleCompareLevel/1568e3.wgsl.expected.ir.fxc.hlsl
index 09571e5..f8e283a 100644
--- a/test/tint/builtins/gen/var/textureSampleCompareLevel/1568e3.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureSampleCompareLevel/1568e3.wgsl.expected.ir.fxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureSampleCompareLevel
+..\..\src\tint\lang\hlsl\writer\printer\printer.cc:1010 internal compiler error: TINT_UNREACHABLE unhandled: textureSampleCompareLevel
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/var/textureSampleCompareLevel/2ad2b1.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/textureSampleCompareLevel/2ad2b1.wgsl.expected.ir.dxc.hlsl
index 09571e5..f8e283a 100644
--- a/test/tint/builtins/gen/var/textureSampleCompareLevel/2ad2b1.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureSampleCompareLevel/2ad2b1.wgsl.expected.ir.dxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureSampleCompareLevel
+..\..\src\tint\lang\hlsl\writer\printer\printer.cc:1010 internal compiler error: TINT_UNREACHABLE unhandled: textureSampleCompareLevel
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/var/textureSampleCompareLevel/2ad2b1.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/textureSampleCompareLevel/2ad2b1.wgsl.expected.ir.fxc.hlsl
index 09571e5..f8e283a 100644
--- a/test/tint/builtins/gen/var/textureSampleCompareLevel/2ad2b1.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureSampleCompareLevel/2ad2b1.wgsl.expected.ir.fxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureSampleCompareLevel
+..\..\src\tint\lang\hlsl\writer\printer\printer.cc:1010 internal compiler error: TINT_UNREACHABLE unhandled: textureSampleCompareLevel
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/var/textureSampleCompareLevel/4cf3a2.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/textureSampleCompareLevel/4cf3a2.wgsl.expected.ir.dxc.hlsl
index 09571e5..f8e283a 100644
--- a/test/tint/builtins/gen/var/textureSampleCompareLevel/4cf3a2.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureSampleCompareLevel/4cf3a2.wgsl.expected.ir.dxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureSampleCompareLevel
+..\..\src\tint\lang\hlsl\writer\printer\printer.cc:1010 internal compiler error: TINT_UNREACHABLE unhandled: textureSampleCompareLevel
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/var/textureSampleCompareLevel/4cf3a2.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/textureSampleCompareLevel/4cf3a2.wgsl.expected.ir.fxc.hlsl
index 09571e5..f8e283a 100644
--- a/test/tint/builtins/gen/var/textureSampleCompareLevel/4cf3a2.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureSampleCompareLevel/4cf3a2.wgsl.expected.ir.fxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureSampleCompareLevel
+..\..\src\tint\lang\hlsl\writer\printer\printer.cc:1010 internal compiler error: TINT_UNREACHABLE unhandled: textureSampleCompareLevel
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/var/textureSampleCompareLevel/7dc3c0.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/textureSampleCompareLevel/7dc3c0.wgsl.expected.ir.dxc.hlsl
index 09571e5..f8e283a 100644
--- a/test/tint/builtins/gen/var/textureSampleCompareLevel/7dc3c0.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureSampleCompareLevel/7dc3c0.wgsl.expected.ir.dxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureSampleCompareLevel
+..\..\src\tint\lang\hlsl\writer\printer\printer.cc:1010 internal compiler error: TINT_UNREACHABLE unhandled: textureSampleCompareLevel
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/var/textureSampleCompareLevel/7dc3c0.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/textureSampleCompareLevel/7dc3c0.wgsl.expected.ir.fxc.hlsl
index 09571e5..f8e283a 100644
--- a/test/tint/builtins/gen/var/textureSampleCompareLevel/7dc3c0.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureSampleCompareLevel/7dc3c0.wgsl.expected.ir.fxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureSampleCompareLevel
+..\..\src\tint\lang\hlsl\writer\printer\printer.cc:1010 internal compiler error: TINT_UNREACHABLE unhandled: textureSampleCompareLevel
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/var/textureSampleCompareLevel/7f2b9a.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/textureSampleCompareLevel/7f2b9a.wgsl.expected.ir.dxc.hlsl
index 09571e5..f8e283a 100644
--- a/test/tint/builtins/gen/var/textureSampleCompareLevel/7f2b9a.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureSampleCompareLevel/7f2b9a.wgsl.expected.ir.dxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureSampleCompareLevel
+..\..\src\tint\lang\hlsl\writer\printer\printer.cc:1010 internal compiler error: TINT_UNREACHABLE unhandled: textureSampleCompareLevel
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/var/textureSampleCompareLevel/7f2b9a.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/textureSampleCompareLevel/7f2b9a.wgsl.expected.ir.fxc.hlsl
index 09571e5..f8e283a 100644
--- a/test/tint/builtins/gen/var/textureSampleCompareLevel/7f2b9a.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureSampleCompareLevel/7f2b9a.wgsl.expected.ir.fxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureSampleCompareLevel
+..\..\src\tint\lang\hlsl\writer\printer\printer.cc:1010 internal compiler error: TINT_UNREACHABLE unhandled: textureSampleCompareLevel
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/var/textureSampleCompareLevel/958c87.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/textureSampleCompareLevel/958c87.wgsl.expected.ir.dxc.hlsl
index 09571e5..f8e283a 100644
--- a/test/tint/builtins/gen/var/textureSampleCompareLevel/958c87.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureSampleCompareLevel/958c87.wgsl.expected.ir.dxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureSampleCompareLevel
+..\..\src\tint\lang\hlsl\writer\printer\printer.cc:1010 internal compiler error: TINT_UNREACHABLE unhandled: textureSampleCompareLevel
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/var/textureSampleCompareLevel/958c87.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/textureSampleCompareLevel/958c87.wgsl.expected.ir.fxc.hlsl
index 09571e5..f8e283a 100644
--- a/test/tint/builtins/gen/var/textureSampleCompareLevel/958c87.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureSampleCompareLevel/958c87.wgsl.expected.ir.fxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureSampleCompareLevel
+..\..\src\tint\lang\hlsl\writer\printer\printer.cc:1010 internal compiler error: TINT_UNREACHABLE unhandled: textureSampleCompareLevel
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/var/textureSampleCompareLevel/b6e47c.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/textureSampleCompareLevel/b6e47c.wgsl.expected.ir.dxc.hlsl
index 09571e5..f8e283a 100644
--- a/test/tint/builtins/gen/var/textureSampleCompareLevel/b6e47c.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureSampleCompareLevel/b6e47c.wgsl.expected.ir.dxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureSampleCompareLevel
+..\..\src\tint\lang\hlsl\writer\printer\printer.cc:1010 internal compiler error: TINT_UNREACHABLE unhandled: textureSampleCompareLevel
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/var/textureSampleCompareLevel/b6e47c.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/textureSampleCompareLevel/b6e47c.wgsl.expected.ir.fxc.hlsl
index 09571e5..f8e283a 100644
--- a/test/tint/builtins/gen/var/textureSampleCompareLevel/b6e47c.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureSampleCompareLevel/b6e47c.wgsl.expected.ir.fxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureSampleCompareLevel
+..\..\src\tint\lang\hlsl\writer\printer\printer.cc:1010 internal compiler error: TINT_UNREACHABLE unhandled: textureSampleCompareLevel
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/var/textureSampleCompareLevel/bcb3dd.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/textureSampleCompareLevel/bcb3dd.wgsl.expected.ir.dxc.hlsl
index 09571e5..f8e283a 100644
--- a/test/tint/builtins/gen/var/textureSampleCompareLevel/bcb3dd.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureSampleCompareLevel/bcb3dd.wgsl.expected.ir.dxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureSampleCompareLevel
+..\..\src\tint\lang\hlsl\writer\printer\printer.cc:1010 internal compiler error: TINT_UNREACHABLE unhandled: textureSampleCompareLevel
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/var/textureSampleCompareLevel/bcb3dd.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/textureSampleCompareLevel/bcb3dd.wgsl.expected.ir.fxc.hlsl
index 09571e5..f8e283a 100644
--- a/test/tint/builtins/gen/var/textureSampleCompareLevel/bcb3dd.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureSampleCompareLevel/bcb3dd.wgsl.expected.ir.fxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureSampleCompareLevel
+..\..\src\tint\lang\hlsl\writer\printer\printer.cc:1010 internal compiler error: TINT_UNREACHABLE unhandled: textureSampleCompareLevel
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/var/textureSampleGrad/21402b.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/textureSampleGrad/21402b.wgsl.expected.ir.dxc.hlsl
index 1dd1a58..2729ab6 100644
--- a/test/tint/builtins/gen/var/textureSampleGrad/21402b.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureSampleGrad/21402b.wgsl.expected.ir.dxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureSampleGrad
+..\..\src\tint\lang\hlsl\writer\printer\printer.cc:1010 internal compiler error: TINT_UNREACHABLE unhandled: textureSampleGrad
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/var/textureSampleGrad/21402b.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/textureSampleGrad/21402b.wgsl.expected.ir.fxc.hlsl
index 1dd1a58..2729ab6 100644
--- a/test/tint/builtins/gen/var/textureSampleGrad/21402b.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureSampleGrad/21402b.wgsl.expected.ir.fxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureSampleGrad
+..\..\src\tint\lang\hlsl\writer\printer\printer.cc:1010 internal compiler error: TINT_UNREACHABLE unhandled: textureSampleGrad
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/var/textureSampleGrad/2ecd8f.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/textureSampleGrad/2ecd8f.wgsl.expected.ir.dxc.hlsl
index 1dd1a58..2729ab6 100644
--- a/test/tint/builtins/gen/var/textureSampleGrad/2ecd8f.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureSampleGrad/2ecd8f.wgsl.expected.ir.dxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureSampleGrad
+..\..\src\tint\lang\hlsl\writer\printer\printer.cc:1010 internal compiler error: TINT_UNREACHABLE unhandled: textureSampleGrad
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/var/textureSampleGrad/2ecd8f.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/textureSampleGrad/2ecd8f.wgsl.expected.ir.fxc.hlsl
index 1dd1a58..2729ab6 100644
--- a/test/tint/builtins/gen/var/textureSampleGrad/2ecd8f.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureSampleGrad/2ecd8f.wgsl.expected.ir.fxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureSampleGrad
+..\..\src\tint\lang\hlsl\writer\printer\printer.cc:1010 internal compiler error: TINT_UNREACHABLE unhandled: textureSampleGrad
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/var/textureSampleGrad/521263.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/textureSampleGrad/521263.wgsl.expected.ir.dxc.hlsl
index 1dd1a58..2729ab6 100644
--- a/test/tint/builtins/gen/var/textureSampleGrad/521263.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureSampleGrad/521263.wgsl.expected.ir.dxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureSampleGrad
+..\..\src\tint\lang\hlsl\writer\printer\printer.cc:1010 internal compiler error: TINT_UNREACHABLE unhandled: textureSampleGrad
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/var/textureSampleGrad/521263.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/textureSampleGrad/521263.wgsl.expected.ir.fxc.hlsl
index 1dd1a58..2729ab6 100644
--- a/test/tint/builtins/gen/var/textureSampleGrad/521263.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureSampleGrad/521263.wgsl.expected.ir.fxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureSampleGrad
+..\..\src\tint\lang\hlsl\writer\printer\printer.cc:1010 internal compiler error: TINT_UNREACHABLE unhandled: textureSampleGrad
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/var/textureSampleGrad/5312f4.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/textureSampleGrad/5312f4.wgsl.expected.ir.dxc.hlsl
index 1dd1a58..2729ab6 100644
--- a/test/tint/builtins/gen/var/textureSampleGrad/5312f4.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureSampleGrad/5312f4.wgsl.expected.ir.dxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureSampleGrad
+..\..\src\tint\lang\hlsl\writer\printer\printer.cc:1010 internal compiler error: TINT_UNREACHABLE unhandled: textureSampleGrad
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/var/textureSampleGrad/5312f4.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/textureSampleGrad/5312f4.wgsl.expected.ir.fxc.hlsl
index 1dd1a58..2729ab6 100644
--- a/test/tint/builtins/gen/var/textureSampleGrad/5312f4.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureSampleGrad/5312f4.wgsl.expected.ir.fxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureSampleGrad
+..\..\src\tint\lang\hlsl\writer\printer\printer.cc:1010 internal compiler error: TINT_UNREACHABLE unhandled: textureSampleGrad
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/var/textureSampleGrad/5884dd.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/textureSampleGrad/5884dd.wgsl.expected.ir.dxc.hlsl
index 1dd1a58..2729ab6 100644
--- a/test/tint/builtins/gen/var/textureSampleGrad/5884dd.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureSampleGrad/5884dd.wgsl.expected.ir.dxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureSampleGrad
+..\..\src\tint\lang\hlsl\writer\printer\printer.cc:1010 internal compiler error: TINT_UNREACHABLE unhandled: textureSampleGrad
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/var/textureSampleGrad/5884dd.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/textureSampleGrad/5884dd.wgsl.expected.ir.fxc.hlsl
index 1dd1a58..2729ab6 100644
--- a/test/tint/builtins/gen/var/textureSampleGrad/5884dd.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureSampleGrad/5884dd.wgsl.expected.ir.fxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureSampleGrad
+..\..\src\tint\lang\hlsl\writer\printer\printer.cc:1010 internal compiler error: TINT_UNREACHABLE unhandled: textureSampleGrad
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/var/textureSampleGrad/7cd6de.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/textureSampleGrad/7cd6de.wgsl.expected.ir.dxc.hlsl
index 1dd1a58..2729ab6 100644
--- a/test/tint/builtins/gen/var/textureSampleGrad/7cd6de.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureSampleGrad/7cd6de.wgsl.expected.ir.dxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureSampleGrad
+..\..\src\tint\lang\hlsl\writer\printer\printer.cc:1010 internal compiler error: TINT_UNREACHABLE unhandled: textureSampleGrad
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/var/textureSampleGrad/7cd6de.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/textureSampleGrad/7cd6de.wgsl.expected.ir.fxc.hlsl
index 1dd1a58..2729ab6 100644
--- a/test/tint/builtins/gen/var/textureSampleGrad/7cd6de.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureSampleGrad/7cd6de.wgsl.expected.ir.fxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureSampleGrad
+..\..\src\tint\lang\hlsl\writer\printer\printer.cc:1010 internal compiler error: TINT_UNREACHABLE unhandled: textureSampleGrad
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/var/textureSampleGrad/a09131.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/textureSampleGrad/a09131.wgsl.expected.ir.dxc.hlsl
index 1dd1a58..2729ab6 100644
--- a/test/tint/builtins/gen/var/textureSampleGrad/a09131.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureSampleGrad/a09131.wgsl.expected.ir.dxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureSampleGrad
+..\..\src\tint\lang\hlsl\writer\printer\printer.cc:1010 internal compiler error: TINT_UNREACHABLE unhandled: textureSampleGrad
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/var/textureSampleGrad/a09131.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/textureSampleGrad/a09131.wgsl.expected.ir.fxc.hlsl
index 1dd1a58..2729ab6 100644
--- a/test/tint/builtins/gen/var/textureSampleGrad/a09131.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureSampleGrad/a09131.wgsl.expected.ir.fxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureSampleGrad
+..\..\src\tint\lang\hlsl\writer\printer\printer.cc:1010 internal compiler error: TINT_UNREACHABLE unhandled: textureSampleGrad
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/var/textureSampleGrad/bbb58f.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/textureSampleGrad/bbb58f.wgsl.expected.ir.dxc.hlsl
index 1dd1a58..2729ab6 100644
--- a/test/tint/builtins/gen/var/textureSampleGrad/bbb58f.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureSampleGrad/bbb58f.wgsl.expected.ir.dxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureSampleGrad
+..\..\src\tint\lang\hlsl\writer\printer\printer.cc:1010 internal compiler error: TINT_UNREACHABLE unhandled: textureSampleGrad
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/var/textureSampleGrad/bbb58f.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/textureSampleGrad/bbb58f.wgsl.expected.ir.fxc.hlsl
index 1dd1a58..2729ab6 100644
--- a/test/tint/builtins/gen/var/textureSampleGrad/bbb58f.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureSampleGrad/bbb58f.wgsl.expected.ir.fxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureSampleGrad
+..\..\src\tint\lang\hlsl\writer\printer\printer.cc:1010 internal compiler error: TINT_UNREACHABLE unhandled: textureSampleGrad
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/var/textureSampleGrad/d4e3c5.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/textureSampleGrad/d4e3c5.wgsl.expected.ir.dxc.hlsl
index 1dd1a58..2729ab6 100644
--- a/test/tint/builtins/gen/var/textureSampleGrad/d4e3c5.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureSampleGrad/d4e3c5.wgsl.expected.ir.dxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureSampleGrad
+..\..\src\tint\lang\hlsl\writer\printer\printer.cc:1010 internal compiler error: TINT_UNREACHABLE unhandled: textureSampleGrad
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/var/textureSampleGrad/d4e3c5.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/textureSampleGrad/d4e3c5.wgsl.expected.ir.fxc.hlsl
index 1dd1a58..2729ab6 100644
--- a/test/tint/builtins/gen/var/textureSampleGrad/d4e3c5.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureSampleGrad/d4e3c5.wgsl.expected.ir.fxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureSampleGrad
+..\..\src\tint\lang\hlsl\writer\printer\printer.cc:1010 internal compiler error: TINT_UNREACHABLE unhandled: textureSampleGrad
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/var/textureSampleGrad/d65515.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/textureSampleGrad/d65515.wgsl.expected.ir.dxc.hlsl
index 1dd1a58..2729ab6 100644
--- a/test/tint/builtins/gen/var/textureSampleGrad/d65515.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureSampleGrad/d65515.wgsl.expected.ir.dxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureSampleGrad
+..\..\src\tint\lang\hlsl\writer\printer\printer.cc:1010 internal compiler error: TINT_UNREACHABLE unhandled: textureSampleGrad
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/var/textureSampleGrad/d65515.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/textureSampleGrad/d65515.wgsl.expected.ir.fxc.hlsl
index 1dd1a58..2729ab6 100644
--- a/test/tint/builtins/gen/var/textureSampleGrad/d65515.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureSampleGrad/d65515.wgsl.expected.ir.fxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureSampleGrad
+..\..\src\tint\lang\hlsl\writer\printer\printer.cc:1010 internal compiler error: TINT_UNREACHABLE unhandled: textureSampleGrad
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/var/textureSampleGrad/e383db.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/textureSampleGrad/e383db.wgsl.expected.ir.dxc.hlsl
index 1dd1a58..2729ab6 100644
--- a/test/tint/builtins/gen/var/textureSampleGrad/e383db.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureSampleGrad/e383db.wgsl.expected.ir.dxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureSampleGrad
+..\..\src\tint\lang\hlsl\writer\printer\printer.cc:1010 internal compiler error: TINT_UNREACHABLE unhandled: textureSampleGrad
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/var/textureSampleGrad/e383db.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/textureSampleGrad/e383db.wgsl.expected.ir.fxc.hlsl
index 1dd1a58..2729ab6 100644
--- a/test/tint/builtins/gen/var/textureSampleGrad/e383db.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureSampleGrad/e383db.wgsl.expected.ir.fxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureSampleGrad
+..\..\src\tint\lang\hlsl\writer\printer\printer.cc:1010 internal compiler error: TINT_UNREACHABLE unhandled: textureSampleGrad
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/var/textureSampleLevel/02be59.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/textureSampleLevel/02be59.wgsl.expected.ir.dxc.hlsl
index b903e3f..cf26da3 100644
--- a/test/tint/builtins/gen/var/textureSampleLevel/02be59.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureSampleLevel/02be59.wgsl.expected.ir.dxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureSampleLevel
+..\..\src\tint\lang\hlsl\writer\printer\printer.cc:1010 internal compiler error: TINT_UNREACHABLE unhandled: textureSampleLevel
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/var/textureSampleLevel/02be59.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/textureSampleLevel/02be59.wgsl.expected.ir.fxc.hlsl
index b903e3f..cf26da3 100644
--- a/test/tint/builtins/gen/var/textureSampleLevel/02be59.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureSampleLevel/02be59.wgsl.expected.ir.fxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureSampleLevel
+..\..\src\tint\lang\hlsl\writer\printer\printer.cc:1010 internal compiler error: TINT_UNREACHABLE unhandled: textureSampleLevel
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/var/textureSampleLevel/0b0a1b.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/textureSampleLevel/0b0a1b.wgsl.expected.ir.dxc.hlsl
index b903e3f..cf26da3 100644
--- a/test/tint/builtins/gen/var/textureSampleLevel/0b0a1b.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureSampleLevel/0b0a1b.wgsl.expected.ir.dxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureSampleLevel
+..\..\src\tint\lang\hlsl\writer\printer\printer.cc:1010 internal compiler error: TINT_UNREACHABLE unhandled: textureSampleLevel
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/var/textureSampleLevel/0b0a1b.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/textureSampleLevel/0b0a1b.wgsl.expected.ir.fxc.hlsl
index b903e3f..cf26da3 100644
--- a/test/tint/builtins/gen/var/textureSampleLevel/0b0a1b.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureSampleLevel/0b0a1b.wgsl.expected.ir.fxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureSampleLevel
+..\..\src\tint\lang\hlsl\writer\printer\printer.cc:1010 internal compiler error: TINT_UNREACHABLE unhandled: textureSampleLevel
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/var/textureSampleLevel/0bdd9a.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/textureSampleLevel/0bdd9a.wgsl.expected.ir.dxc.hlsl
index b903e3f..cf26da3 100644
--- a/test/tint/builtins/gen/var/textureSampleLevel/0bdd9a.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureSampleLevel/0bdd9a.wgsl.expected.ir.dxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureSampleLevel
+..\..\src\tint\lang\hlsl\writer\printer\printer.cc:1010 internal compiler error: TINT_UNREACHABLE unhandled: textureSampleLevel
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/var/textureSampleLevel/0bdd9a.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/textureSampleLevel/0bdd9a.wgsl.expected.ir.fxc.hlsl
index b903e3f..cf26da3 100644
--- a/test/tint/builtins/gen/var/textureSampleLevel/0bdd9a.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureSampleLevel/0bdd9a.wgsl.expected.ir.fxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureSampleLevel
+..\..\src\tint\lang\hlsl\writer\printer\printer.cc:1010 internal compiler error: TINT_UNREACHABLE unhandled: textureSampleLevel
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/var/textureSampleLevel/1b0291.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/textureSampleLevel/1b0291.wgsl.expected.ir.dxc.hlsl
index b903e3f..cf26da3 100644
--- a/test/tint/builtins/gen/var/textureSampleLevel/1b0291.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureSampleLevel/1b0291.wgsl.expected.ir.dxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureSampleLevel
+..\..\src\tint\lang\hlsl\writer\printer\printer.cc:1010 internal compiler error: TINT_UNREACHABLE unhandled: textureSampleLevel
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/var/textureSampleLevel/1b0291.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/textureSampleLevel/1b0291.wgsl.expected.ir.fxc.hlsl
index b903e3f..cf26da3 100644
--- a/test/tint/builtins/gen/var/textureSampleLevel/1b0291.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureSampleLevel/1b0291.wgsl.expected.ir.fxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureSampleLevel
+..\..\src\tint\lang\hlsl\writer\printer\printer.cc:1010 internal compiler error: TINT_UNREACHABLE unhandled: textureSampleLevel
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/var/textureSampleLevel/1bf73e.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/textureSampleLevel/1bf73e.wgsl.expected.ir.dxc.hlsl
index b903e3f..cf26da3 100644
--- a/test/tint/builtins/gen/var/textureSampleLevel/1bf73e.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureSampleLevel/1bf73e.wgsl.expected.ir.dxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureSampleLevel
+..\..\src\tint\lang\hlsl\writer\printer\printer.cc:1010 internal compiler error: TINT_UNREACHABLE unhandled: textureSampleLevel
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/var/textureSampleLevel/1bf73e.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/textureSampleLevel/1bf73e.wgsl.expected.ir.fxc.hlsl
index b903e3f..cf26da3 100644
--- a/test/tint/builtins/gen/var/textureSampleLevel/1bf73e.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureSampleLevel/1bf73e.wgsl.expected.ir.fxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureSampleLevel
+..\..\src\tint\lang\hlsl\writer\printer\printer.cc:1010 internal compiler error: TINT_UNREACHABLE unhandled: textureSampleLevel
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/var/textureSampleLevel/265cc7.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/textureSampleLevel/265cc7.wgsl.expected.ir.dxc.hlsl
index b903e3f..cf26da3 100644
--- a/test/tint/builtins/gen/var/textureSampleLevel/265cc7.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureSampleLevel/265cc7.wgsl.expected.ir.dxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureSampleLevel
+..\..\src\tint\lang\hlsl\writer\printer\printer.cc:1010 internal compiler error: TINT_UNREACHABLE unhandled: textureSampleLevel
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/var/textureSampleLevel/265cc7.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/textureSampleLevel/265cc7.wgsl.expected.ir.fxc.hlsl
index b903e3f..cf26da3 100644
--- a/test/tint/builtins/gen/var/textureSampleLevel/265cc7.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureSampleLevel/265cc7.wgsl.expected.ir.fxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureSampleLevel
+..\..\src\tint\lang\hlsl\writer\printer\printer.cc:1010 internal compiler error: TINT_UNREACHABLE unhandled: textureSampleLevel
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/var/textureSampleLevel/2974eb.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/textureSampleLevel/2974eb.wgsl.expected.ir.dxc.hlsl
index b903e3f..cf26da3 100644
--- a/test/tint/builtins/gen/var/textureSampleLevel/2974eb.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureSampleLevel/2974eb.wgsl.expected.ir.dxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureSampleLevel
+..\..\src\tint\lang\hlsl\writer\printer\printer.cc:1010 internal compiler error: TINT_UNREACHABLE unhandled: textureSampleLevel
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/var/textureSampleLevel/2974eb.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/textureSampleLevel/2974eb.wgsl.expected.ir.fxc.hlsl
index b903e3f..cf26da3 100644
--- a/test/tint/builtins/gen/var/textureSampleLevel/2974eb.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureSampleLevel/2974eb.wgsl.expected.ir.fxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureSampleLevel
+..\..\src\tint\lang\hlsl\writer\printer\printer.cc:1010 internal compiler error: TINT_UNREACHABLE unhandled: textureSampleLevel
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/var/textureSampleLevel/302be4.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/textureSampleLevel/302be4.wgsl.expected.ir.dxc.hlsl
index b903e3f..cf26da3 100644
--- a/test/tint/builtins/gen/var/textureSampleLevel/302be4.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureSampleLevel/302be4.wgsl.expected.ir.dxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureSampleLevel
+..\..\src\tint\lang\hlsl\writer\printer\printer.cc:1010 internal compiler error: TINT_UNREACHABLE unhandled: textureSampleLevel
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/var/textureSampleLevel/302be4.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/textureSampleLevel/302be4.wgsl.expected.ir.fxc.hlsl
index b903e3f..cf26da3 100644
--- a/test/tint/builtins/gen/var/textureSampleLevel/302be4.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureSampleLevel/302be4.wgsl.expected.ir.fxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureSampleLevel
+..\..\src\tint\lang\hlsl\writer\printer\printer.cc:1010 internal compiler error: TINT_UNREACHABLE unhandled: textureSampleLevel
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/var/textureSampleLevel/36780e.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/textureSampleLevel/36780e.wgsl.expected.ir.dxc.hlsl
index b903e3f..cf26da3 100644
--- a/test/tint/builtins/gen/var/textureSampleLevel/36780e.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureSampleLevel/36780e.wgsl.expected.ir.dxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureSampleLevel
+..\..\src\tint\lang\hlsl\writer\printer\printer.cc:1010 internal compiler error: TINT_UNREACHABLE unhandled: textureSampleLevel
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/var/textureSampleLevel/36780e.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/textureSampleLevel/36780e.wgsl.expected.ir.fxc.hlsl
index b903e3f..cf26da3 100644
--- a/test/tint/builtins/gen/var/textureSampleLevel/36780e.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureSampleLevel/36780e.wgsl.expected.ir.fxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureSampleLevel
+..\..\src\tint\lang\hlsl\writer\printer\printer.cc:1010 internal compiler error: TINT_UNREACHABLE unhandled: textureSampleLevel
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/var/textureSampleLevel/36f0d3.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/textureSampleLevel/36f0d3.wgsl.expected.ir.dxc.hlsl
index b903e3f..cf26da3 100644
--- a/test/tint/builtins/gen/var/textureSampleLevel/36f0d3.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureSampleLevel/36f0d3.wgsl.expected.ir.dxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureSampleLevel
+..\..\src\tint\lang\hlsl\writer\printer\printer.cc:1010 internal compiler error: TINT_UNREACHABLE unhandled: textureSampleLevel
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/var/textureSampleLevel/36f0d3.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/textureSampleLevel/36f0d3.wgsl.expected.ir.fxc.hlsl
index b903e3f..cf26da3 100644
--- a/test/tint/builtins/gen/var/textureSampleLevel/36f0d3.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureSampleLevel/36f0d3.wgsl.expected.ir.fxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureSampleLevel
+..\..\src\tint\lang\hlsl\writer\printer\printer.cc:1010 internal compiler error: TINT_UNREACHABLE unhandled: textureSampleLevel
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/var/textureSampleLevel/3c3442.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/textureSampleLevel/3c3442.wgsl.expected.ir.dxc.hlsl
index b903e3f..cf26da3 100644
--- a/test/tint/builtins/gen/var/textureSampleLevel/3c3442.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureSampleLevel/3c3442.wgsl.expected.ir.dxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureSampleLevel
+..\..\src\tint\lang\hlsl\writer\printer\printer.cc:1010 internal compiler error: TINT_UNREACHABLE unhandled: textureSampleLevel
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/var/textureSampleLevel/3c3442.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/textureSampleLevel/3c3442.wgsl.expected.ir.fxc.hlsl
index b903e3f..cf26da3 100644
--- a/test/tint/builtins/gen/var/textureSampleLevel/3c3442.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureSampleLevel/3c3442.wgsl.expected.ir.fxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureSampleLevel
+..\..\src\tint\lang\hlsl\writer\printer\printer.cc:1010 internal compiler error: TINT_UNREACHABLE unhandled: textureSampleLevel
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/var/textureSampleLevel/615583.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/textureSampleLevel/615583.wgsl.expected.ir.dxc.hlsl
index b903e3f..cf26da3 100644
--- a/test/tint/builtins/gen/var/textureSampleLevel/615583.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureSampleLevel/615583.wgsl.expected.ir.dxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureSampleLevel
+..\..\src\tint\lang\hlsl\writer\printer\printer.cc:1010 internal compiler error: TINT_UNREACHABLE unhandled: textureSampleLevel
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/var/textureSampleLevel/615583.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/textureSampleLevel/615583.wgsl.expected.ir.fxc.hlsl
index b903e3f..cf26da3 100644
--- a/test/tint/builtins/gen/var/textureSampleLevel/615583.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureSampleLevel/615583.wgsl.expected.ir.fxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureSampleLevel
+..\..\src\tint\lang\hlsl\writer\printer\printer.cc:1010 internal compiler error: TINT_UNREACHABLE unhandled: textureSampleLevel
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/var/textureSampleLevel/73e892.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/textureSampleLevel/73e892.wgsl.expected.ir.dxc.hlsl
index b903e3f..cf26da3 100644
--- a/test/tint/builtins/gen/var/textureSampleLevel/73e892.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureSampleLevel/73e892.wgsl.expected.ir.dxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureSampleLevel
+..\..\src\tint\lang\hlsl\writer\printer\printer.cc:1010 internal compiler error: TINT_UNREACHABLE unhandled: textureSampleLevel
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/var/textureSampleLevel/73e892.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/textureSampleLevel/73e892.wgsl.expected.ir.fxc.hlsl
index b903e3f..cf26da3 100644
--- a/test/tint/builtins/gen/var/textureSampleLevel/73e892.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureSampleLevel/73e892.wgsl.expected.ir.fxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureSampleLevel
+..\..\src\tint\lang\hlsl\writer\printer\printer.cc:1010 internal compiler error: TINT_UNREACHABLE unhandled: textureSampleLevel
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/var/textureSampleLevel/749baf.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/textureSampleLevel/749baf.wgsl.expected.ir.dxc.hlsl
index b903e3f..cf26da3 100644
--- a/test/tint/builtins/gen/var/textureSampleLevel/749baf.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureSampleLevel/749baf.wgsl.expected.ir.dxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureSampleLevel
+..\..\src\tint\lang\hlsl\writer\printer\printer.cc:1010 internal compiler error: TINT_UNREACHABLE unhandled: textureSampleLevel
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/var/textureSampleLevel/749baf.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/textureSampleLevel/749baf.wgsl.expected.ir.fxc.hlsl
index b903e3f..cf26da3 100644
--- a/test/tint/builtins/gen/var/textureSampleLevel/749baf.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureSampleLevel/749baf.wgsl.expected.ir.fxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureSampleLevel
+..\..\src\tint\lang\hlsl\writer\printer\printer.cc:1010 internal compiler error: TINT_UNREACHABLE unhandled: textureSampleLevel
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/var/textureSampleLevel/941a53.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/textureSampleLevel/941a53.wgsl.expected.ir.dxc.hlsl
index b903e3f..cf26da3 100644
--- a/test/tint/builtins/gen/var/textureSampleLevel/941a53.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureSampleLevel/941a53.wgsl.expected.ir.dxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureSampleLevel
+..\..\src\tint\lang\hlsl\writer\printer\printer.cc:1010 internal compiler error: TINT_UNREACHABLE unhandled: textureSampleLevel
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/var/textureSampleLevel/941a53.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/textureSampleLevel/941a53.wgsl.expected.ir.fxc.hlsl
index b903e3f..cf26da3 100644
--- a/test/tint/builtins/gen/var/textureSampleLevel/941a53.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureSampleLevel/941a53.wgsl.expected.ir.fxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureSampleLevel
+..\..\src\tint\lang\hlsl\writer\printer\printer.cc:1010 internal compiler error: TINT_UNREACHABLE unhandled: textureSampleLevel
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/var/textureSampleLevel/a12142.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/textureSampleLevel/a12142.wgsl.expected.ir.dxc.hlsl
index b903e3f..cf26da3 100644
--- a/test/tint/builtins/gen/var/textureSampleLevel/a12142.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureSampleLevel/a12142.wgsl.expected.ir.dxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureSampleLevel
+..\..\src\tint\lang\hlsl\writer\printer\printer.cc:1010 internal compiler error: TINT_UNREACHABLE unhandled: textureSampleLevel
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/var/textureSampleLevel/a12142.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/textureSampleLevel/a12142.wgsl.expected.ir.fxc.hlsl
index b903e3f..cf26da3 100644
--- a/test/tint/builtins/gen/var/textureSampleLevel/a12142.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureSampleLevel/a12142.wgsl.expected.ir.fxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureSampleLevel
+..\..\src\tint\lang\hlsl\writer\printer\printer.cc:1010 internal compiler error: TINT_UNREACHABLE unhandled: textureSampleLevel
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/var/textureSampleLevel/aab3b9.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/textureSampleLevel/aab3b9.wgsl.expected.ir.dxc.hlsl
index b903e3f..cf26da3 100644
--- a/test/tint/builtins/gen/var/textureSampleLevel/aab3b9.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureSampleLevel/aab3b9.wgsl.expected.ir.dxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureSampleLevel
+..\..\src\tint\lang\hlsl\writer\printer\printer.cc:1010 internal compiler error: TINT_UNREACHABLE unhandled: textureSampleLevel
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/var/textureSampleLevel/aab3b9.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/textureSampleLevel/aab3b9.wgsl.expected.ir.fxc.hlsl
index b903e3f..cf26da3 100644
--- a/test/tint/builtins/gen/var/textureSampleLevel/aab3b9.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureSampleLevel/aab3b9.wgsl.expected.ir.fxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureSampleLevel
+..\..\src\tint\lang\hlsl\writer\printer\printer.cc:1010 internal compiler error: TINT_UNREACHABLE unhandled: textureSampleLevel
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/var/textureSampleLevel/abfcc0.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/textureSampleLevel/abfcc0.wgsl.expected.ir.dxc.hlsl
index b903e3f..cf26da3 100644
--- a/test/tint/builtins/gen/var/textureSampleLevel/abfcc0.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureSampleLevel/abfcc0.wgsl.expected.ir.dxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureSampleLevel
+..\..\src\tint\lang\hlsl\writer\printer\printer.cc:1010 internal compiler error: TINT_UNREACHABLE unhandled: textureSampleLevel
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/var/textureSampleLevel/abfcc0.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/textureSampleLevel/abfcc0.wgsl.expected.ir.fxc.hlsl
index b903e3f..cf26da3 100644
--- a/test/tint/builtins/gen/var/textureSampleLevel/abfcc0.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureSampleLevel/abfcc0.wgsl.expected.ir.fxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureSampleLevel
+..\..\src\tint\lang\hlsl\writer\printer\printer.cc:1010 internal compiler error: TINT_UNREACHABLE unhandled: textureSampleLevel
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/var/textureSampleLevel/ae5e39.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/textureSampleLevel/ae5e39.wgsl.expected.ir.dxc.hlsl
index b903e3f..cf26da3 100644
--- a/test/tint/builtins/gen/var/textureSampleLevel/ae5e39.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureSampleLevel/ae5e39.wgsl.expected.ir.dxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureSampleLevel
+..\..\src\tint\lang\hlsl\writer\printer\printer.cc:1010 internal compiler error: TINT_UNREACHABLE unhandled: textureSampleLevel
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/var/textureSampleLevel/ae5e39.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/textureSampleLevel/ae5e39.wgsl.expected.ir.fxc.hlsl
index b903e3f..cf26da3 100644
--- a/test/tint/builtins/gen/var/textureSampleLevel/ae5e39.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureSampleLevel/ae5e39.wgsl.expected.ir.fxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureSampleLevel
+..\..\src\tint\lang\hlsl\writer\printer\printer.cc:1010 internal compiler error: TINT_UNREACHABLE unhandled: textureSampleLevel
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/var/textureSampleLevel/ae92a2.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/textureSampleLevel/ae92a2.wgsl.expected.ir.dxc.hlsl
index b903e3f..cf26da3 100644
--- a/test/tint/builtins/gen/var/textureSampleLevel/ae92a2.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureSampleLevel/ae92a2.wgsl.expected.ir.dxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureSampleLevel
+..\..\src\tint\lang\hlsl\writer\printer\printer.cc:1010 internal compiler error: TINT_UNREACHABLE unhandled: textureSampleLevel
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/var/textureSampleLevel/ae92a2.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/textureSampleLevel/ae92a2.wgsl.expected.ir.fxc.hlsl
index b903e3f..cf26da3 100644
--- a/test/tint/builtins/gen/var/textureSampleLevel/ae92a2.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureSampleLevel/ae92a2.wgsl.expected.ir.fxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureSampleLevel
+..\..\src\tint\lang\hlsl\writer\printer\printer.cc:1010 internal compiler error: TINT_UNREACHABLE unhandled: textureSampleLevel
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/var/textureSampleLevel/b7c55c.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/textureSampleLevel/b7c55c.wgsl.expected.ir.dxc.hlsl
index b903e3f..cf26da3 100644
--- a/test/tint/builtins/gen/var/textureSampleLevel/b7c55c.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureSampleLevel/b7c55c.wgsl.expected.ir.dxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureSampleLevel
+..\..\src\tint\lang\hlsl\writer\printer\printer.cc:1010 internal compiler error: TINT_UNREACHABLE unhandled: textureSampleLevel
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/var/textureSampleLevel/b7c55c.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/textureSampleLevel/b7c55c.wgsl.expected.ir.fxc.hlsl
index b903e3f..cf26da3 100644
--- a/test/tint/builtins/gen/var/textureSampleLevel/b7c55c.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureSampleLevel/b7c55c.wgsl.expected.ir.fxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureSampleLevel
+..\..\src\tint\lang\hlsl\writer\printer\printer.cc:1010 internal compiler error: TINT_UNREACHABLE unhandled: textureSampleLevel
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/var/textureSampleLevel/c32df7.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/textureSampleLevel/c32df7.wgsl.expected.ir.dxc.hlsl
index b903e3f..cf26da3 100644
--- a/test/tint/builtins/gen/var/textureSampleLevel/c32df7.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureSampleLevel/c32df7.wgsl.expected.ir.dxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureSampleLevel
+..\..\src\tint\lang\hlsl\writer\printer\printer.cc:1010 internal compiler error: TINT_UNREACHABLE unhandled: textureSampleLevel
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/var/textureSampleLevel/c32df7.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/textureSampleLevel/c32df7.wgsl.expected.ir.fxc.hlsl
index b903e3f..cf26da3 100644
--- a/test/tint/builtins/gen/var/textureSampleLevel/c32df7.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureSampleLevel/c32df7.wgsl.expected.ir.fxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureSampleLevel
+..\..\src\tint\lang\hlsl\writer\printer\printer.cc:1010 internal compiler error: TINT_UNREACHABLE unhandled: textureSampleLevel
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/var/textureSampleLevel/c6aca6.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/textureSampleLevel/c6aca6.wgsl.expected.ir.dxc.hlsl
index b903e3f..cf26da3 100644
--- a/test/tint/builtins/gen/var/textureSampleLevel/c6aca6.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureSampleLevel/c6aca6.wgsl.expected.ir.dxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureSampleLevel
+..\..\src\tint\lang\hlsl\writer\printer\printer.cc:1010 internal compiler error: TINT_UNREACHABLE unhandled: textureSampleLevel
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/var/textureSampleLevel/c6aca6.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/textureSampleLevel/c6aca6.wgsl.expected.ir.fxc.hlsl
index b903e3f..cf26da3 100644
--- a/test/tint/builtins/gen/var/textureSampleLevel/c6aca6.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureSampleLevel/c6aca6.wgsl.expected.ir.fxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureSampleLevel
+..\..\src\tint\lang\hlsl\writer\printer\printer.cc:1010 internal compiler error: TINT_UNREACHABLE unhandled: textureSampleLevel
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/var/textureSampleLevel/cdfe0f.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/textureSampleLevel/cdfe0f.wgsl.expected.ir.dxc.hlsl
index b903e3f..cf26da3 100644
--- a/test/tint/builtins/gen/var/textureSampleLevel/cdfe0f.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureSampleLevel/cdfe0f.wgsl.expected.ir.dxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureSampleLevel
+..\..\src\tint\lang\hlsl\writer\printer\printer.cc:1010 internal compiler error: TINT_UNREACHABLE unhandled: textureSampleLevel
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/var/textureSampleLevel/cdfe0f.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/textureSampleLevel/cdfe0f.wgsl.expected.ir.fxc.hlsl
index b903e3f..cf26da3 100644
--- a/test/tint/builtins/gen/var/textureSampleLevel/cdfe0f.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureSampleLevel/cdfe0f.wgsl.expected.ir.fxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureSampleLevel
+..\..\src\tint\lang\hlsl\writer\printer\printer.cc:1010 internal compiler error: TINT_UNREACHABLE unhandled: textureSampleLevel
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/var/textureSampleLevel/dcbecb.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/textureSampleLevel/dcbecb.wgsl.expected.ir.dxc.hlsl
index b903e3f..cf26da3 100644
--- a/test/tint/builtins/gen/var/textureSampleLevel/dcbecb.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureSampleLevel/dcbecb.wgsl.expected.ir.dxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureSampleLevel
+..\..\src\tint\lang\hlsl\writer\printer\printer.cc:1010 internal compiler error: TINT_UNREACHABLE unhandled: textureSampleLevel
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/var/textureSampleLevel/dcbecb.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/textureSampleLevel/dcbecb.wgsl.expected.ir.fxc.hlsl
index b903e3f..cf26da3 100644
--- a/test/tint/builtins/gen/var/textureSampleLevel/dcbecb.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureSampleLevel/dcbecb.wgsl.expected.ir.fxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureSampleLevel
+..\..\src\tint\lang\hlsl\writer\printer\printer.cc:1010 internal compiler error: TINT_UNREACHABLE unhandled: textureSampleLevel
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/var/textureSampleLevel/e6ce9e.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/textureSampleLevel/e6ce9e.wgsl.expected.ir.dxc.hlsl
index b903e3f..cf26da3 100644
--- a/test/tint/builtins/gen/var/textureSampleLevel/e6ce9e.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureSampleLevel/e6ce9e.wgsl.expected.ir.dxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureSampleLevel
+..\..\src\tint\lang\hlsl\writer\printer\printer.cc:1010 internal compiler error: TINT_UNREACHABLE unhandled: textureSampleLevel
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/var/textureSampleLevel/e6ce9e.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/textureSampleLevel/e6ce9e.wgsl.expected.ir.fxc.hlsl
index b903e3f..cf26da3 100644
--- a/test/tint/builtins/gen/var/textureSampleLevel/e6ce9e.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureSampleLevel/e6ce9e.wgsl.expected.ir.fxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureSampleLevel
+..\..\src\tint\lang\hlsl\writer\printer\printer.cc:1010 internal compiler error: TINT_UNREACHABLE unhandled: textureSampleLevel
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/var/textureSampleLevel/f3b2c8.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/textureSampleLevel/f3b2c8.wgsl.expected.ir.dxc.hlsl
index b903e3f..cf26da3 100644
--- a/test/tint/builtins/gen/var/textureSampleLevel/f3b2c8.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureSampleLevel/f3b2c8.wgsl.expected.ir.dxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureSampleLevel
+..\..\src\tint\lang\hlsl\writer\printer\printer.cc:1010 internal compiler error: TINT_UNREACHABLE unhandled: textureSampleLevel
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/var/textureSampleLevel/f3b2c8.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/textureSampleLevel/f3b2c8.wgsl.expected.ir.fxc.hlsl
index b903e3f..cf26da3 100644
--- a/test/tint/builtins/gen/var/textureSampleLevel/f3b2c8.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureSampleLevel/f3b2c8.wgsl.expected.ir.fxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureSampleLevel
+..\..\src\tint\lang\hlsl\writer\printer\printer.cc:1010 internal compiler error: TINT_UNREACHABLE unhandled: textureSampleLevel
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/var/textureSampleLevel/faa6d7.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/textureSampleLevel/faa6d7.wgsl.expected.ir.dxc.hlsl
index b903e3f..cf26da3 100644
--- a/test/tint/builtins/gen/var/textureSampleLevel/faa6d7.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureSampleLevel/faa6d7.wgsl.expected.ir.dxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureSampleLevel
+..\..\src\tint\lang\hlsl\writer\printer\printer.cc:1010 internal compiler error: TINT_UNREACHABLE unhandled: textureSampleLevel
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/var/textureSampleLevel/faa6d7.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/textureSampleLevel/faa6d7.wgsl.expected.ir.fxc.hlsl
index b903e3f..cf26da3 100644
--- a/test/tint/builtins/gen/var/textureSampleLevel/faa6d7.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureSampleLevel/faa6d7.wgsl.expected.ir.fxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureSampleLevel
+..\..\src\tint\lang\hlsl\writer\printer\printer.cc:1010 internal compiler error: TINT_UNREACHABLE unhandled: textureSampleLevel
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/var/textureSampleLevel/ff11bc.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/textureSampleLevel/ff11bc.wgsl.expected.ir.dxc.hlsl
index b903e3f..cf26da3 100644
--- a/test/tint/builtins/gen/var/textureSampleLevel/ff11bc.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureSampleLevel/ff11bc.wgsl.expected.ir.dxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureSampleLevel
+..\..\src\tint\lang\hlsl\writer\printer\printer.cc:1010 internal compiler error: TINT_UNREACHABLE unhandled: textureSampleLevel
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/var/textureSampleLevel/ff11bc.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/textureSampleLevel/ff11bc.wgsl.expected.ir.fxc.hlsl
index b903e3f..cf26da3 100644
--- a/test/tint/builtins/gen/var/textureSampleLevel/ff11bc.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureSampleLevel/ff11bc.wgsl.expected.ir.fxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureSampleLevel
+..\..\src\tint\lang\hlsl\writer\printer\printer.cc:1010 internal compiler error: TINT_UNREACHABLE unhandled: textureSampleLevel
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/var/textureStore/00ca64.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/textureStore/00ca64.wgsl.expected.ir.dxc.hlsl
index 685a9ee..5288784 100644
--- a/test/tint/builtins/gen/var/textureStore/00ca64.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureStore/00ca64.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,21 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWTexture2DArray<uint4> arg_0 : register(u0, space1);
+void textureStore_00ca64() {
+  int2 arg_1 = (1).xx;
+  uint arg_2 = 1u;
+  uint4 arg_3 = (1u).xxxx;
+  RWTexture2DArray<uint4> v = arg_0;
+  int2 v_1 = arg_1;
+  uint4 v_2 = arg_3;
+  v[int3(v_1, int(arg_2))] = v_2;
+}
+
+void fragment_main() {
+  textureStore_00ca64();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  textureStore_00ca64();
+}
+
diff --git a/test/tint/builtins/gen/var/textureStore/00ca64.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/textureStore/00ca64.wgsl.expected.ir.fxc.hlsl
index 685a9ee..5288784 100644
--- a/test/tint/builtins/gen/var/textureStore/00ca64.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureStore/00ca64.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,21 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWTexture2DArray<uint4> arg_0 : register(u0, space1);
+void textureStore_00ca64() {
+  int2 arg_1 = (1).xx;
+  uint arg_2 = 1u;
+  uint4 arg_3 = (1u).xxxx;
+  RWTexture2DArray<uint4> v = arg_0;
+  int2 v_1 = arg_1;
+  uint4 v_2 = arg_3;
+  v[int3(v_1, int(arg_2))] = v_2;
+}
+
+void fragment_main() {
+  textureStore_00ca64();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  textureStore_00ca64();
+}
+
diff --git a/test/tint/builtins/gen/var/textureStore/0148bd.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/textureStore/0148bd.wgsl.expected.ir.dxc.hlsl
index 685a9ee..5461692 100644
--- a/test/tint/builtins/gen/var/textureStore/0148bd.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureStore/0148bd.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,21 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWTexture2DArray<int4> arg_0 : register(u0, space1);
+void textureStore_0148bd() {
+  uint2 arg_1 = (1u).xx;
+  int arg_2 = 1;
+  int4 arg_3 = (1).xxxx;
+  RWTexture2DArray<int4> v = arg_0;
+  uint2 v_1 = arg_1;
+  int4 v_2 = arg_3;
+  v[uint3(v_1, uint(arg_2))] = v_2;
+}
+
+void fragment_main() {
+  textureStore_0148bd();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  textureStore_0148bd();
+}
+
diff --git a/test/tint/builtins/gen/var/textureStore/0148bd.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/textureStore/0148bd.wgsl.expected.ir.fxc.hlsl
index 685a9ee..5461692 100644
--- a/test/tint/builtins/gen/var/textureStore/0148bd.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureStore/0148bd.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,21 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWTexture2DArray<int4> arg_0 : register(u0, space1);
+void textureStore_0148bd() {
+  uint2 arg_1 = (1u).xx;
+  int arg_2 = 1;
+  int4 arg_3 = (1).xxxx;
+  RWTexture2DArray<int4> v = arg_0;
+  uint2 v_1 = arg_1;
+  int4 v_2 = arg_3;
+  v[uint3(v_1, uint(arg_2))] = v_2;
+}
+
+void fragment_main() {
+  textureStore_0148bd();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  textureStore_0148bd();
+}
+
diff --git a/test/tint/builtins/gen/var/textureStore/031506.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/textureStore/031506.wgsl.expected.ir.dxc.hlsl
index 685a9ee..97700ed 100644
--- a/test/tint/builtins/gen/var/textureStore/031506.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureStore/031506.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,17 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWTexture2D<float4> arg_0 : register(u0, space1);
+void textureStore_031506() {
+  int2 arg_1 = (1).xx;
+  float4 arg_2 = (1.0f).xxxx;
+  arg_0[arg_1] = arg_2;
+}
+
+void fragment_main() {
+  textureStore_031506();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  textureStore_031506();
+}
+
diff --git a/test/tint/builtins/gen/var/textureStore/031506.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/textureStore/031506.wgsl.expected.ir.fxc.hlsl
index 685a9ee..97700ed 100644
--- a/test/tint/builtins/gen/var/textureStore/031506.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureStore/031506.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,17 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWTexture2D<float4> arg_0 : register(u0, space1);
+void textureStore_031506() {
+  int2 arg_1 = (1).xx;
+  float4 arg_2 = (1.0f).xxxx;
+  arg_0[arg_1] = arg_2;
+}
+
+void fragment_main() {
+  textureStore_031506();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  textureStore_031506();
+}
+
diff --git a/test/tint/builtins/gen/var/textureStore/036d0e.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/textureStore/036d0e.wgsl.expected.ir.dxc.hlsl
index 685a9ee..eb264d3 100644
--- a/test/tint/builtins/gen/var/textureStore/036d0e.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureStore/036d0e.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,17 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWTexture3D<float4> arg_0 : register(u0, space1);
+void textureStore_036d0e() {
+  int3 arg_1 = (1).xxx;
+  float4 arg_2 = (1.0f).xxxx;
+  arg_0[arg_1] = arg_2;
+}
+
+void fragment_main() {
+  textureStore_036d0e();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  textureStore_036d0e();
+}
+
diff --git a/test/tint/builtins/gen/var/textureStore/036d0e.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/textureStore/036d0e.wgsl.expected.ir.fxc.hlsl
index 685a9ee..eb264d3 100644
--- a/test/tint/builtins/gen/var/textureStore/036d0e.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureStore/036d0e.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,17 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWTexture3D<float4> arg_0 : register(u0, space1);
+void textureStore_036d0e() {
+  int3 arg_1 = (1).xxx;
+  float4 arg_2 = (1.0f).xxxx;
+  arg_0[arg_1] = arg_2;
+}
+
+void fragment_main() {
+  textureStore_036d0e();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  textureStore_036d0e();
+}
+
diff --git a/test/tint/builtins/gen/var/textureStore/03e7a0.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/textureStore/03e7a0.wgsl.expected.ir.dxc.hlsl
index 685a9ee..7238547 100644
--- a/test/tint/builtins/gen/var/textureStore/03e7a0.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureStore/03e7a0.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,17 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWTexture2D<uint4> arg_0 : register(u0, space1);
+void textureStore_03e7a0() {
+  int2 arg_1 = (1).xx;
+  uint4 arg_2 = (1u).xxxx;
+  arg_0[arg_1] = arg_2;
+}
+
+void fragment_main() {
+  textureStore_03e7a0();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  textureStore_03e7a0();
+}
+
diff --git a/test/tint/builtins/gen/var/textureStore/03e7a0.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/textureStore/03e7a0.wgsl.expected.ir.fxc.hlsl
index 685a9ee..7238547 100644
--- a/test/tint/builtins/gen/var/textureStore/03e7a0.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureStore/03e7a0.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,17 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWTexture2D<uint4> arg_0 : register(u0, space1);
+void textureStore_03e7a0() {
+  int2 arg_1 = (1).xx;
+  uint4 arg_2 = (1u).xxxx;
+  arg_0[arg_1] = arg_2;
+}
+
+void fragment_main() {
+  textureStore_03e7a0();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  textureStore_03e7a0();
+}
+
diff --git a/test/tint/builtins/gen/var/textureStore/042b06.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/textureStore/042b06.wgsl.expected.ir.dxc.hlsl
index 685a9ee..d834101 100644
--- a/test/tint/builtins/gen/var/textureStore/042b06.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureStore/042b06.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,21 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWTexture2DArray<float4> arg_0 : register(u0, space1);
+void textureStore_042b06() {
+  uint2 arg_1 = (1u).xx;
+  uint arg_2 = 1u;
+  float4 arg_3 = (1.0f).xxxx;
+  RWTexture2DArray<float4> v = arg_0;
+  uint2 v_1 = arg_1;
+  float4 v_2 = arg_3;
+  v[uint3(v_1, uint(arg_2))] = v_2;
+}
+
+void fragment_main() {
+  textureStore_042b06();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  textureStore_042b06();
+}
+
diff --git a/test/tint/builtins/gen/var/textureStore/042b06.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/textureStore/042b06.wgsl.expected.ir.fxc.hlsl
index 685a9ee..d834101 100644
--- a/test/tint/builtins/gen/var/textureStore/042b06.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureStore/042b06.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,21 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWTexture2DArray<float4> arg_0 : register(u0, space1);
+void textureStore_042b06() {
+  uint2 arg_1 = (1u).xx;
+  uint arg_2 = 1u;
+  float4 arg_3 = (1.0f).xxxx;
+  RWTexture2DArray<float4> v = arg_0;
+  uint2 v_1 = arg_1;
+  float4 v_2 = arg_3;
+  v[uint3(v_1, uint(arg_2))] = v_2;
+}
+
+void fragment_main() {
+  textureStore_042b06();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  textureStore_042b06();
+}
+
diff --git a/test/tint/builtins/gen/var/textureStore/052a4e.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/textureStore/052a4e.wgsl.expected.ir.dxc.hlsl
index 685a9ee..7f77cf5 100644
--- a/test/tint/builtins/gen/var/textureStore/052a4e.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureStore/052a4e.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,17 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWTexture1D<float4> arg_0 : register(u0, space1);
+void textureStore_052a4e() {
+  uint arg_1 = 1u;
+  float4 arg_2 = (1.0f).xxxx;
+  arg_0[arg_1] = arg_2;
+}
+
+void fragment_main() {
+  textureStore_052a4e();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  textureStore_052a4e();
+}
+
diff --git a/test/tint/builtins/gen/var/textureStore/052a4e.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/textureStore/052a4e.wgsl.expected.ir.fxc.hlsl
index 685a9ee..7f77cf5 100644
--- a/test/tint/builtins/gen/var/textureStore/052a4e.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureStore/052a4e.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,17 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWTexture1D<float4> arg_0 : register(u0, space1);
+void textureStore_052a4e() {
+  uint arg_1 = 1u;
+  float4 arg_2 = (1.0f).xxxx;
+  arg_0[arg_1] = arg_2;
+}
+
+void fragment_main() {
+  textureStore_052a4e();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  textureStore_052a4e();
+}
+
diff --git a/test/tint/builtins/gen/var/textureStore/053664.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/textureStore/053664.wgsl.expected.ir.dxc.hlsl
index 685a9ee..82c9df8 100644
--- a/test/tint/builtins/gen/var/textureStore/053664.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureStore/053664.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,21 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWTexture2DArray<float4> arg_0 : register(u0, space1);
+void textureStore_053664() {
+  int2 arg_1 = (1).xx;
+  int arg_2 = 1;
+  float4 arg_3 = (1.0f).xxxx;
+  RWTexture2DArray<float4> v = arg_0;
+  int2 v_1 = arg_1;
+  float4 v_2 = arg_3;
+  v[int3(v_1, int(arg_2))] = v_2;
+}
+
+void fragment_main() {
+  textureStore_053664();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  textureStore_053664();
+}
+
diff --git a/test/tint/builtins/gen/var/textureStore/053664.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/textureStore/053664.wgsl.expected.ir.fxc.hlsl
index 685a9ee..82c9df8 100644
--- a/test/tint/builtins/gen/var/textureStore/053664.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureStore/053664.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,21 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWTexture2DArray<float4> arg_0 : register(u0, space1);
+void textureStore_053664() {
+  int2 arg_1 = (1).xx;
+  int arg_2 = 1;
+  float4 arg_3 = (1.0f).xxxx;
+  RWTexture2DArray<float4> v = arg_0;
+  int2 v_1 = arg_1;
+  float4 v_2 = arg_3;
+  v[int3(v_1, int(arg_2))] = v_2;
+}
+
+void fragment_main() {
+  textureStore_053664();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  textureStore_053664();
+}
+
diff --git a/test/tint/builtins/gen/var/textureStore/05ce15.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/textureStore/05ce15.wgsl.expected.ir.dxc.hlsl
index 685a9ee..951e8a6 100644
--- a/test/tint/builtins/gen/var/textureStore/05ce15.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureStore/05ce15.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,17 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWTexture2D<float4> arg_0 : register(u0, space1);
+void textureStore_05ce15() {
+  int2 arg_1 = (1).xx;
+  float4 arg_2 = (1.0f).xxxx;
+  arg_0[arg_1] = arg_2;
+}
+
+void fragment_main() {
+  textureStore_05ce15();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  textureStore_05ce15();
+}
+
diff --git a/test/tint/builtins/gen/var/textureStore/05ce15.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/textureStore/05ce15.wgsl.expected.ir.fxc.hlsl
index 685a9ee..951e8a6 100644
--- a/test/tint/builtins/gen/var/textureStore/05ce15.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureStore/05ce15.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,17 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWTexture2D<float4> arg_0 : register(u0, space1);
+void textureStore_05ce15() {
+  int2 arg_1 = (1).xx;
+  float4 arg_2 = (1.0f).xxxx;
+  arg_0[arg_1] = arg_2;
+}
+
+void fragment_main() {
+  textureStore_05ce15();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  textureStore_05ce15();
+}
+
diff --git a/test/tint/builtins/gen/var/textureStore/064c7f.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/textureStore/064c7f.wgsl.expected.ir.dxc.hlsl
index 685a9ee..2534b26 100644
--- a/test/tint/builtins/gen/var/textureStore/064c7f.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureStore/064c7f.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,17 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWTexture2D<float4> arg_0 : register(u0, space1);
+void textureStore_064c7f() {
+  int2 arg_1 = (1).xx;
+  float4 arg_2 = (1.0f).xxxx;
+  arg_0[arg_1] = arg_2;
+}
+
+void fragment_main() {
+  textureStore_064c7f();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  textureStore_064c7f();
+}
+
diff --git a/test/tint/builtins/gen/var/textureStore/064c7f.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/textureStore/064c7f.wgsl.expected.ir.fxc.hlsl
index 685a9ee..2534b26 100644
--- a/test/tint/builtins/gen/var/textureStore/064c7f.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureStore/064c7f.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,17 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWTexture2D<float4> arg_0 : register(u0, space1);
+void textureStore_064c7f() {
+  int2 arg_1 = (1).xx;
+  float4 arg_2 = (1.0f).xxxx;
+  arg_0[arg_1] = arg_2;
+}
+
+void fragment_main() {
+  textureStore_064c7f();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  textureStore_064c7f();
+}
+
diff --git a/test/tint/builtins/gen/var/textureStore/068641.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/textureStore/068641.wgsl.expected.ir.dxc.hlsl
index 685a9ee..25581f8 100644
--- a/test/tint/builtins/gen/var/textureStore/068641.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureStore/068641.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,17 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWTexture3D<uint4> arg_0 : register(u0, space1);
+void textureStore_068641() {
+  int3 arg_1 = (1).xxx;
+  uint4 arg_2 = (1u).xxxx;
+  arg_0[arg_1] = arg_2;
+}
+
+void fragment_main() {
+  textureStore_068641();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  textureStore_068641();
+}
+
diff --git a/test/tint/builtins/gen/var/textureStore/068641.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/textureStore/068641.wgsl.expected.ir.fxc.hlsl
index 685a9ee..25581f8 100644
--- a/test/tint/builtins/gen/var/textureStore/068641.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureStore/068641.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,17 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWTexture3D<uint4> arg_0 : register(u0, space1);
+void textureStore_068641() {
+  int3 arg_1 = (1).xxx;
+  uint4 arg_2 = (1u).xxxx;
+  arg_0[arg_1] = arg_2;
+}
+
+void fragment_main() {
+  textureStore_068641();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  textureStore_068641();
+}
+
diff --git a/test/tint/builtins/gen/var/textureStore/06e49c.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/textureStore/06e49c.wgsl.expected.ir.dxc.hlsl
index 685a9ee..feb5799 100644
--- a/test/tint/builtins/gen/var/textureStore/06e49c.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureStore/06e49c.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,21 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWTexture2DArray<float4> arg_0 : register(u0, space1);
+void textureStore_06e49c() {
+  int2 arg_1 = (1).xx;
+  uint arg_2 = 1u;
+  float4 arg_3 = (1.0f).xxxx;
+  RWTexture2DArray<float4> v = arg_0;
+  int2 v_1 = arg_1;
+  float4 v_2 = arg_3;
+  v[int3(v_1, int(arg_2))] = v_2;
+}
+
+void fragment_main() {
+  textureStore_06e49c();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  textureStore_06e49c();
+}
+
diff --git a/test/tint/builtins/gen/var/textureStore/06e49c.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/textureStore/06e49c.wgsl.expected.ir.fxc.hlsl
index 685a9ee..feb5799 100644
--- a/test/tint/builtins/gen/var/textureStore/06e49c.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureStore/06e49c.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,21 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWTexture2DArray<float4> arg_0 : register(u0, space1);
+void textureStore_06e49c() {
+  int2 arg_1 = (1).xx;
+  uint arg_2 = 1u;
+  float4 arg_3 = (1.0f).xxxx;
+  RWTexture2DArray<float4> v = arg_0;
+  int2 v_1 = arg_1;
+  float4 v_2 = arg_3;
+  v[int3(v_1, int(arg_2))] = v_2;
+}
+
+void fragment_main() {
+  textureStore_06e49c();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  textureStore_06e49c();
+}
+
diff --git a/test/tint/builtins/gen/var/textureStore/07548b.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/textureStore/07548b.wgsl.expected.ir.dxc.hlsl
index 685a9ee..6b314e2 100644
--- a/test/tint/builtins/gen/var/textureStore/07548b.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureStore/07548b.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,17 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWTexture3D<int4> arg_0 : register(u0, space1);
+void textureStore_07548b() {
+  uint3 arg_1 = (1u).xxx;
+  int4 arg_2 = (1).xxxx;
+  arg_0[arg_1] = arg_2;
+}
+
+void fragment_main() {
+  textureStore_07548b();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  textureStore_07548b();
+}
+
diff --git a/test/tint/builtins/gen/var/textureStore/07548b.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/textureStore/07548b.wgsl.expected.ir.fxc.hlsl
index 685a9ee..6b314e2 100644
--- a/test/tint/builtins/gen/var/textureStore/07548b.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureStore/07548b.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,17 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWTexture3D<int4> arg_0 : register(u0, space1);
+void textureStore_07548b() {
+  uint3 arg_1 = (1u).xxx;
+  int4 arg_2 = (1).xxxx;
+  arg_0[arg_1] = arg_2;
+}
+
+void fragment_main() {
+  textureStore_07548b();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  textureStore_07548b();
+}
+
diff --git a/test/tint/builtins/gen/var/textureStore/09e4d5.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/textureStore/09e4d5.wgsl.expected.ir.dxc.hlsl
index 685a9ee..86ab11d 100644
--- a/test/tint/builtins/gen/var/textureStore/09e4d5.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureStore/09e4d5.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,17 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWTexture1D<float4> arg_0 : register(u0, space1);
+void textureStore_09e4d5() {
+  uint arg_1 = 1u;
+  float4 arg_2 = (1.0f).xxxx;
+  arg_0[arg_1] = arg_2;
+}
+
+void fragment_main() {
+  textureStore_09e4d5();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  textureStore_09e4d5();
+}
+
diff --git a/test/tint/builtins/gen/var/textureStore/09e4d5.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/textureStore/09e4d5.wgsl.expected.ir.fxc.hlsl
index 685a9ee..86ab11d 100644
--- a/test/tint/builtins/gen/var/textureStore/09e4d5.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureStore/09e4d5.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,17 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWTexture1D<float4> arg_0 : register(u0, space1);
+void textureStore_09e4d5() {
+  uint arg_1 = 1u;
+  float4 arg_2 = (1.0f).xxxx;
+  arg_0[arg_1] = arg_2;
+}
+
+void fragment_main() {
+  textureStore_09e4d5();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  textureStore_09e4d5();
+}
+
diff --git a/test/tint/builtins/gen/var/textureStore/0a1a79.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/textureStore/0a1a79.wgsl.expected.ir.dxc.hlsl
index 685a9ee..33dd094 100644
--- a/test/tint/builtins/gen/var/textureStore/0a1a79.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureStore/0a1a79.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,21 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWTexture2DArray<uint4> arg_0 : register(u0, space1);
+void textureStore_0a1a79() {
+  uint2 arg_1 = (1u).xx;
+  int arg_2 = 1;
+  uint4 arg_3 = (1u).xxxx;
+  RWTexture2DArray<uint4> v = arg_0;
+  uint2 v_1 = arg_1;
+  uint4 v_2 = arg_3;
+  v[uint3(v_1, uint(arg_2))] = v_2;
+}
+
+void fragment_main() {
+  textureStore_0a1a79();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  textureStore_0a1a79();
+}
+
diff --git a/test/tint/builtins/gen/var/textureStore/0a1a79.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/textureStore/0a1a79.wgsl.expected.ir.fxc.hlsl
index 685a9ee..33dd094 100644
--- a/test/tint/builtins/gen/var/textureStore/0a1a79.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureStore/0a1a79.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,21 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWTexture2DArray<uint4> arg_0 : register(u0, space1);
+void textureStore_0a1a79() {
+  uint2 arg_1 = (1u).xx;
+  int arg_2 = 1;
+  uint4 arg_3 = (1u).xxxx;
+  RWTexture2DArray<uint4> v = arg_0;
+  uint2 v_1 = arg_1;
+  uint4 v_2 = arg_3;
+  v[uint3(v_1, uint(arg_2))] = v_2;
+}
+
+void fragment_main() {
+  textureStore_0a1a79();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  textureStore_0a1a79();
+}
+
diff --git a/test/tint/builtins/gen/var/textureStore/0ad124.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/textureStore/0ad124.wgsl.expected.ir.dxc.hlsl
index 685a9ee..796a1e8 100644
--- a/test/tint/builtins/gen/var/textureStore/0ad124.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureStore/0ad124.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,17 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWTexture1D<float4> arg_0 : register(u0, space1);
+void textureStore_0ad124() {
+  int arg_1 = 1;
+  float4 arg_2 = (1.0f).xxxx;
+  arg_0[arg_1] = arg_2;
+}
+
+void fragment_main() {
+  textureStore_0ad124();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  textureStore_0ad124();
+}
+
diff --git a/test/tint/builtins/gen/var/textureStore/0ad124.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/textureStore/0ad124.wgsl.expected.ir.fxc.hlsl
index 685a9ee..796a1e8 100644
--- a/test/tint/builtins/gen/var/textureStore/0ad124.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureStore/0ad124.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,17 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWTexture1D<float4> arg_0 : register(u0, space1);
+void textureStore_0ad124() {
+  int arg_1 = 1;
+  float4 arg_2 = (1.0f).xxxx;
+  arg_0[arg_1] = arg_2;
+}
+
+void fragment_main() {
+  textureStore_0ad124();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  textureStore_0ad124();
+}
+
diff --git a/test/tint/builtins/gen/var/textureStore/0ade9a.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/textureStore/0ade9a.wgsl.expected.ir.dxc.hlsl
index 685a9ee..4162a5d 100644
--- a/test/tint/builtins/gen/var/textureStore/0ade9a.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureStore/0ade9a.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,21 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWTexture2DArray<uint4> arg_0 : register(u0, space1);
+void textureStore_0ade9a() {
+  uint2 arg_1 = (1u).xx;
+  uint arg_2 = 1u;
+  uint4 arg_3 = (1u).xxxx;
+  RWTexture2DArray<uint4> v = arg_0;
+  uint2 v_1 = arg_1;
+  uint4 v_2 = arg_3;
+  v[uint3(v_1, uint(arg_2))] = v_2;
+}
+
+void fragment_main() {
+  textureStore_0ade9a();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  textureStore_0ade9a();
+}
+
diff --git a/test/tint/builtins/gen/var/textureStore/0ade9a.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/textureStore/0ade9a.wgsl.expected.ir.fxc.hlsl
index 685a9ee..4162a5d 100644
--- a/test/tint/builtins/gen/var/textureStore/0ade9a.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureStore/0ade9a.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,21 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWTexture2DArray<uint4> arg_0 : register(u0, space1);
+void textureStore_0ade9a() {
+  uint2 arg_1 = (1u).xx;
+  uint arg_2 = 1u;
+  uint4 arg_3 = (1u).xxxx;
+  RWTexture2DArray<uint4> v = arg_0;
+  uint2 v_1 = arg_1;
+  uint4 v_2 = arg_3;
+  v[uint3(v_1, uint(arg_2))] = v_2;
+}
+
+void fragment_main() {
+  textureStore_0ade9a();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  textureStore_0ade9a();
+}
+
diff --git a/test/tint/builtins/gen/var/textureStore/0af6b5.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/textureStore/0af6b5.wgsl.expected.ir.dxc.hlsl
index 685a9ee..2458bfd 100644
--- a/test/tint/builtins/gen/var/textureStore/0af6b5.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureStore/0af6b5.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,17 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWTexture2D<float4> arg_0 : register(u0, space1);
+void textureStore_0af6b5() {
+  int2 arg_1 = (1).xx;
+  float4 arg_2 = (1.0f).xxxx;
+  arg_0[arg_1] = arg_2;
+}
+
+void fragment_main() {
+  textureStore_0af6b5();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  textureStore_0af6b5();
+}
+
diff --git a/test/tint/builtins/gen/var/textureStore/0af6b5.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/textureStore/0af6b5.wgsl.expected.ir.fxc.hlsl
index 685a9ee..2458bfd 100644
--- a/test/tint/builtins/gen/var/textureStore/0af6b5.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureStore/0af6b5.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,17 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWTexture2D<float4> arg_0 : register(u0, space1);
+void textureStore_0af6b5() {
+  int2 arg_1 = (1).xx;
+  float4 arg_2 = (1.0f).xxxx;
+  arg_0[arg_1] = arg_2;
+}
+
+void fragment_main() {
+  textureStore_0af6b5();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  textureStore_0af6b5();
+}
+
diff --git a/test/tint/builtins/gen/var/textureStore/0c3dff.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/textureStore/0c3dff.wgsl.expected.ir.dxc.hlsl
index 685a9ee..5acff69 100644
--- a/test/tint/builtins/gen/var/textureStore/0c3dff.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureStore/0c3dff.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,17 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWTexture2D<uint4> arg_0 : register(u0, space1);
+void textureStore_0c3dff() {
+  int2 arg_1 = (1).xx;
+  uint4 arg_2 = (1u).xxxx;
+  arg_0[arg_1] = arg_2;
+}
+
+void fragment_main() {
+  textureStore_0c3dff();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  textureStore_0c3dff();
+}
+
diff --git a/test/tint/builtins/gen/var/textureStore/0c3dff.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/textureStore/0c3dff.wgsl.expected.ir.fxc.hlsl
index 685a9ee..5acff69 100644
--- a/test/tint/builtins/gen/var/textureStore/0c3dff.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureStore/0c3dff.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,17 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWTexture2D<uint4> arg_0 : register(u0, space1);
+void textureStore_0c3dff() {
+  int2 arg_1 = (1).xx;
+  uint4 arg_2 = (1u).xxxx;
+  arg_0[arg_1] = arg_2;
+}
+
+void fragment_main() {
+  textureStore_0c3dff();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  textureStore_0c3dff();
+}
+
diff --git a/test/tint/builtins/gen/var/textureStore/0cc825.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/textureStore/0cc825.wgsl.expected.ir.dxc.hlsl
index 685a9ee..2de48ff 100644
--- a/test/tint/builtins/gen/var/textureStore/0cc825.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureStore/0cc825.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,21 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWTexture2DArray<int4> arg_0 : register(u0, space1);
+void textureStore_0cc825() {
+  uint2 arg_1 = (1u).xx;
+  int arg_2 = 1;
+  int4 arg_3 = (1).xxxx;
+  RWTexture2DArray<int4> v = arg_0;
+  uint2 v_1 = arg_1;
+  int4 v_2 = arg_3;
+  v[uint3(v_1, uint(arg_2))] = v_2;
+}
+
+void fragment_main() {
+  textureStore_0cc825();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  textureStore_0cc825();
+}
+
diff --git a/test/tint/builtins/gen/var/textureStore/0cc825.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/textureStore/0cc825.wgsl.expected.ir.fxc.hlsl
index 685a9ee..2de48ff 100644
--- a/test/tint/builtins/gen/var/textureStore/0cc825.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureStore/0cc825.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,21 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWTexture2DArray<int4> arg_0 : register(u0, space1);
+void textureStore_0cc825() {
+  uint2 arg_1 = (1u).xx;
+  int arg_2 = 1;
+  int4 arg_3 = (1).xxxx;
+  RWTexture2DArray<int4> v = arg_0;
+  uint2 v_1 = arg_1;
+  int4 v_2 = arg_3;
+  v[uint3(v_1, uint(arg_2))] = v_2;
+}
+
+void fragment_main() {
+  textureStore_0cc825();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  textureStore_0cc825();
+}
+
diff --git a/test/tint/builtins/gen/var/textureStore/0ff97a.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/textureStore/0ff97a.wgsl.expected.ir.dxc.hlsl
index 685a9ee..d4407e2 100644
--- a/test/tint/builtins/gen/var/textureStore/0ff97a.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureStore/0ff97a.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,21 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWTexture2DArray<float4> arg_0 : register(u0, space1);
+void textureStore_0ff97a() {
+  uint2 arg_1 = (1u).xx;
+  uint arg_2 = 1u;
+  float4 arg_3 = (1.0f).xxxx;
+  RWTexture2DArray<float4> v = arg_0;
+  uint2 v_1 = arg_1;
+  float4 v_2 = arg_3;
+  v[uint3(v_1, uint(arg_2))] = v_2;
+}
+
+void fragment_main() {
+  textureStore_0ff97a();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  textureStore_0ff97a();
+}
+
diff --git a/test/tint/builtins/gen/var/textureStore/0ff97a.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/textureStore/0ff97a.wgsl.expected.ir.fxc.hlsl
index 685a9ee..d4407e2 100644
--- a/test/tint/builtins/gen/var/textureStore/0ff97a.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureStore/0ff97a.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,21 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWTexture2DArray<float4> arg_0 : register(u0, space1);
+void textureStore_0ff97a() {
+  uint2 arg_1 = (1u).xx;
+  uint arg_2 = 1u;
+  float4 arg_3 = (1.0f).xxxx;
+  RWTexture2DArray<float4> v = arg_0;
+  uint2 v_1 = arg_1;
+  float4 v_2 = arg_3;
+  v[uint3(v_1, uint(arg_2))] = v_2;
+}
+
+void fragment_main() {
+  textureStore_0ff97a();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  textureStore_0ff97a();
+}
+
diff --git a/test/tint/builtins/gen/var/textureStore/101325.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/textureStore/101325.wgsl.expected.ir.dxc.hlsl
index 685a9ee..d158f5d 100644
--- a/test/tint/builtins/gen/var/textureStore/101325.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureStore/101325.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,17 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWTexture3D<uint4> arg_0 : register(u0, space1);
+void textureStore_101325() {
+  uint3 arg_1 = (1u).xxx;
+  uint4 arg_2 = (1u).xxxx;
+  arg_0[arg_1] = arg_2;
+}
+
+void fragment_main() {
+  textureStore_101325();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  textureStore_101325();
+}
+
diff --git a/test/tint/builtins/gen/var/textureStore/101325.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/textureStore/101325.wgsl.expected.ir.fxc.hlsl
index 685a9ee..d158f5d 100644
--- a/test/tint/builtins/gen/var/textureStore/101325.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureStore/101325.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,17 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWTexture3D<uint4> arg_0 : register(u0, space1);
+void textureStore_101325() {
+  uint3 arg_1 = (1u).xxx;
+  uint4 arg_2 = (1u).xxxx;
+  arg_0[arg_1] = arg_2;
+}
+
+void fragment_main() {
+  textureStore_101325();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  textureStore_101325();
+}
+
diff --git a/test/tint/builtins/gen/var/textureStore/102722.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/textureStore/102722.wgsl.expected.ir.dxc.hlsl
index 685a9ee..6ac8597 100644
--- a/test/tint/builtins/gen/var/textureStore/102722.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureStore/102722.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,17 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWTexture1D<uint4> arg_0 : register(u0, space1);
+void textureStore_102722() {
+  int arg_1 = 1;
+  uint4 arg_2 = (1u).xxxx;
+  arg_0[arg_1] = arg_2;
+}
+
+void fragment_main() {
+  textureStore_102722();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  textureStore_102722();
+}
+
diff --git a/test/tint/builtins/gen/var/textureStore/102722.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/textureStore/102722.wgsl.expected.ir.fxc.hlsl
index 685a9ee..6ac8597 100644
--- a/test/tint/builtins/gen/var/textureStore/102722.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureStore/102722.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,17 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWTexture1D<uint4> arg_0 : register(u0, space1);
+void textureStore_102722() {
+  int arg_1 = 1;
+  uint4 arg_2 = (1u).xxxx;
+  arg_0[arg_1] = arg_2;
+}
+
+void fragment_main() {
+  textureStore_102722();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  textureStore_102722();
+}
+
diff --git a/test/tint/builtins/gen/var/textureStore/145061.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/textureStore/145061.wgsl.expected.ir.dxc.hlsl
index 685a9ee..57c7820 100644
--- a/test/tint/builtins/gen/var/textureStore/145061.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureStore/145061.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,17 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWTexture2D<uint4> arg_0 : register(u0, space1);
+void textureStore_145061() {
+  uint2 arg_1 = (1u).xx;
+  uint4 arg_2 = (1u).xxxx;
+  arg_0[arg_1] = arg_2;
+}
+
+void fragment_main() {
+  textureStore_145061();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  textureStore_145061();
+}
+
diff --git a/test/tint/builtins/gen/var/textureStore/145061.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/textureStore/145061.wgsl.expected.ir.fxc.hlsl
index 685a9ee..57c7820 100644
--- a/test/tint/builtins/gen/var/textureStore/145061.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureStore/145061.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,17 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWTexture2D<uint4> arg_0 : register(u0, space1);
+void textureStore_145061() {
+  uint2 arg_1 = (1u).xx;
+  uint4 arg_2 = (1u).xxxx;
+  arg_0[arg_1] = arg_2;
+}
+
+void fragment_main() {
+  textureStore_145061();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  textureStore_145061();
+}
+
diff --git a/test/tint/builtins/gen/var/textureStore/158cf0.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/textureStore/158cf0.wgsl.expected.ir.dxc.hlsl
index 685a9ee..af6ee33 100644
--- a/test/tint/builtins/gen/var/textureStore/158cf0.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureStore/158cf0.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,21 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWTexture2DArray<uint4> arg_0 : register(u0, space1);
+void textureStore_158cf0() {
+  uint2 arg_1 = (1u).xx;
+  uint arg_2 = 1u;
+  uint4 arg_3 = (1u).xxxx;
+  RWTexture2DArray<uint4> v = arg_0;
+  uint2 v_1 = arg_1;
+  uint4 v_2 = arg_3;
+  v[uint3(v_1, uint(arg_2))] = v_2;
+}
+
+void fragment_main() {
+  textureStore_158cf0();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  textureStore_158cf0();
+}
+
diff --git a/test/tint/builtins/gen/var/textureStore/158cf0.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/textureStore/158cf0.wgsl.expected.ir.fxc.hlsl
index 685a9ee..af6ee33 100644
--- a/test/tint/builtins/gen/var/textureStore/158cf0.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureStore/158cf0.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,21 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWTexture2DArray<uint4> arg_0 : register(u0, space1);
+void textureStore_158cf0() {
+  uint2 arg_1 = (1u).xx;
+  uint arg_2 = 1u;
+  uint4 arg_3 = (1u).xxxx;
+  RWTexture2DArray<uint4> v = arg_0;
+  uint2 v_1 = arg_1;
+  uint4 v_2 = arg_3;
+  v[uint3(v_1, uint(arg_2))] = v_2;
+}
+
+void fragment_main() {
+  textureStore_158cf0();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  textureStore_158cf0();
+}
+
diff --git a/test/tint/builtins/gen/var/textureStore/178e69.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/textureStore/178e69.wgsl.expected.ir.dxc.hlsl
index 685a9ee..bd03df6 100644
--- a/test/tint/builtins/gen/var/textureStore/178e69.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureStore/178e69.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,17 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWTexture1D<float4> arg_0 : register(u0, space1);
+void textureStore_178e69() {
+  int arg_1 = 1;
+  float4 arg_2 = (1.0f).xxxx;
+  arg_0[arg_1] = arg_2;
+}
+
+void fragment_main() {
+  textureStore_178e69();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  textureStore_178e69();
+}
+
diff --git a/test/tint/builtins/gen/var/textureStore/178e69.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/textureStore/178e69.wgsl.expected.ir.fxc.hlsl
index 685a9ee..bd03df6 100644
--- a/test/tint/builtins/gen/var/textureStore/178e69.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureStore/178e69.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,17 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWTexture1D<float4> arg_0 : register(u0, space1);
+void textureStore_178e69() {
+  int arg_1 = 1;
+  float4 arg_2 = (1.0f).xxxx;
+  arg_0[arg_1] = arg_2;
+}
+
+void fragment_main() {
+  textureStore_178e69();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  textureStore_178e69();
+}
+
diff --git a/test/tint/builtins/gen/var/textureStore/1839f2.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/textureStore/1839f2.wgsl.expected.ir.dxc.hlsl
index 685a9ee..1ada276 100644
--- a/test/tint/builtins/gen/var/textureStore/1839f2.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureStore/1839f2.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,17 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWTexture2D<int4> arg_0 : register(u0, space1);
+void textureStore_1839f2() {
+  uint2 arg_1 = (1u).xx;
+  int4 arg_2 = (1).xxxx;
+  arg_0[arg_1] = arg_2;
+}
+
+void fragment_main() {
+  textureStore_1839f2();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  textureStore_1839f2();
+}
+
diff --git a/test/tint/builtins/gen/var/textureStore/1839f2.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/textureStore/1839f2.wgsl.expected.ir.fxc.hlsl
index 685a9ee..1ada276 100644
--- a/test/tint/builtins/gen/var/textureStore/1839f2.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureStore/1839f2.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,17 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWTexture2D<int4> arg_0 : register(u0, space1);
+void textureStore_1839f2() {
+  uint2 arg_1 = (1u).xx;
+  int4 arg_2 = (1).xxxx;
+  arg_0[arg_1] = arg_2;
+}
+
+void fragment_main() {
+  textureStore_1839f2();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  textureStore_1839f2();
+}
+
diff --git a/test/tint/builtins/gen/var/textureStore/195d1b.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/textureStore/195d1b.wgsl.expected.ir.dxc.hlsl
index 685a9ee..7c1a5c4 100644
--- a/test/tint/builtins/gen/var/textureStore/195d1b.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureStore/195d1b.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,17 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWTexture3D<float4> arg_0 : register(u0, space1);
+void textureStore_195d1b() {
+  uint3 arg_1 = (1u).xxx;
+  float4 arg_2 = (1.0f).xxxx;
+  arg_0[arg_1] = arg_2;
+}
+
+void fragment_main() {
+  textureStore_195d1b();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  textureStore_195d1b();
+}
+
diff --git a/test/tint/builtins/gen/var/textureStore/195d1b.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/textureStore/195d1b.wgsl.expected.ir.fxc.hlsl
index 685a9ee..7c1a5c4 100644
--- a/test/tint/builtins/gen/var/textureStore/195d1b.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureStore/195d1b.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,17 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWTexture3D<float4> arg_0 : register(u0, space1);
+void textureStore_195d1b() {
+  uint3 arg_1 = (1u).xxx;
+  float4 arg_2 = (1.0f).xxxx;
+  arg_0[arg_1] = arg_2;
+}
+
+void fragment_main() {
+  textureStore_195d1b();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  textureStore_195d1b();
+}
+
diff --git a/test/tint/builtins/gen/var/textureStore/197637.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/textureStore/197637.wgsl.expected.ir.dxc.hlsl
index 685a9ee..74350ce 100644
--- a/test/tint/builtins/gen/var/textureStore/197637.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureStore/197637.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,17 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWTexture1D<float4> arg_0 : register(u0, space1);
+void textureStore_197637() {
+  int arg_1 = 1;
+  float4 arg_2 = (1.0f).xxxx;
+  arg_0[arg_1] = arg_2;
+}
+
+void fragment_main() {
+  textureStore_197637();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  textureStore_197637();
+}
+
diff --git a/test/tint/builtins/gen/var/textureStore/197637.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/textureStore/197637.wgsl.expected.ir.fxc.hlsl
index 685a9ee..74350ce 100644
--- a/test/tint/builtins/gen/var/textureStore/197637.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureStore/197637.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,17 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWTexture1D<float4> arg_0 : register(u0, space1);
+void textureStore_197637() {
+  int arg_1 = 1;
+  float4 arg_2 = (1.0f).xxxx;
+  arg_0[arg_1] = arg_2;
+}
+
+void fragment_main() {
+  textureStore_197637();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  textureStore_197637();
+}
+
diff --git a/test/tint/builtins/gen/var/textureStore/1a264d.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/textureStore/1a264d.wgsl.expected.ir.dxc.hlsl
index 685a9ee..c2f99b5 100644
--- a/test/tint/builtins/gen/var/textureStore/1a264d.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureStore/1a264d.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,17 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWTexture3D<float4> arg_0 : register(u0, space1);
+void textureStore_1a264d() {
+  int3 arg_1 = (1).xxx;
+  float4 arg_2 = (1.0f).xxxx;
+  arg_0[arg_1] = arg_2;
+}
+
+void fragment_main() {
+  textureStore_1a264d();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  textureStore_1a264d();
+}
+
diff --git a/test/tint/builtins/gen/var/textureStore/1a264d.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/textureStore/1a264d.wgsl.expected.ir.fxc.hlsl
index 685a9ee..c2f99b5 100644
--- a/test/tint/builtins/gen/var/textureStore/1a264d.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureStore/1a264d.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,17 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWTexture3D<float4> arg_0 : register(u0, space1);
+void textureStore_1a264d() {
+  int3 arg_1 = (1).xxx;
+  float4 arg_2 = (1.0f).xxxx;
+  arg_0[arg_1] = arg_2;
+}
+
+void fragment_main() {
+  textureStore_1a264d();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  textureStore_1a264d();
+}
+
diff --git a/test/tint/builtins/gen/var/textureStore/1a6c0b.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/textureStore/1a6c0b.wgsl.expected.ir.dxc.hlsl
index 685a9ee..90cb9f8 100644
--- a/test/tint/builtins/gen/var/textureStore/1a6c0b.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureStore/1a6c0b.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,21 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWTexture2DArray<int4> arg_0 : register(u0, space1);
+void textureStore_1a6c0b() {
+  uint2 arg_1 = (1u).xx;
+  uint arg_2 = 1u;
+  int4 arg_3 = (1).xxxx;
+  RWTexture2DArray<int4> v = arg_0;
+  uint2 v_1 = arg_1;
+  int4 v_2 = arg_3;
+  v[uint3(v_1, uint(arg_2))] = v_2;
+}
+
+void fragment_main() {
+  textureStore_1a6c0b();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  textureStore_1a6c0b();
+}
+
diff --git a/test/tint/builtins/gen/var/textureStore/1a6c0b.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/textureStore/1a6c0b.wgsl.expected.ir.fxc.hlsl
index 685a9ee..90cb9f8 100644
--- a/test/tint/builtins/gen/var/textureStore/1a6c0b.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureStore/1a6c0b.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,21 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWTexture2DArray<int4> arg_0 : register(u0, space1);
+void textureStore_1a6c0b() {
+  uint2 arg_1 = (1u).xx;
+  uint arg_2 = 1u;
+  int4 arg_3 = (1).xxxx;
+  RWTexture2DArray<int4> v = arg_0;
+  uint2 v_1 = arg_1;
+  int4 v_2 = arg_3;
+  v[uint3(v_1, uint(arg_2))] = v_2;
+}
+
+void fragment_main() {
+  textureStore_1a6c0b();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  textureStore_1a6c0b();
+}
+
diff --git a/test/tint/builtins/gen/var/textureStore/1a7d35.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/textureStore/1a7d35.wgsl.expected.ir.dxc.hlsl
index 685a9ee..34afe14 100644
--- a/test/tint/builtins/gen/var/textureStore/1a7d35.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureStore/1a7d35.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,21 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWTexture2DArray<int4> arg_0 : register(u0, space1);
+void textureStore_1a7d35() {
+  uint2 arg_1 = (1u).xx;
+  uint arg_2 = 1u;
+  int4 arg_3 = (1).xxxx;
+  RWTexture2DArray<int4> v = arg_0;
+  uint2 v_1 = arg_1;
+  int4 v_2 = arg_3;
+  v[uint3(v_1, uint(arg_2))] = v_2;
+}
+
+void fragment_main() {
+  textureStore_1a7d35();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  textureStore_1a7d35();
+}
+
diff --git a/test/tint/builtins/gen/var/textureStore/1a7d35.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/textureStore/1a7d35.wgsl.expected.ir.fxc.hlsl
index 685a9ee..34afe14 100644
--- a/test/tint/builtins/gen/var/textureStore/1a7d35.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureStore/1a7d35.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,21 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWTexture2DArray<int4> arg_0 : register(u0, space1);
+void textureStore_1a7d35() {
+  uint2 arg_1 = (1u).xx;
+  uint arg_2 = 1u;
+  int4 arg_3 = (1).xxxx;
+  RWTexture2DArray<int4> v = arg_0;
+  uint2 v_1 = arg_1;
+  int4 v_2 = arg_3;
+  v[uint3(v_1, uint(arg_2))] = v_2;
+}
+
+void fragment_main() {
+  textureStore_1a7d35();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  textureStore_1a7d35();
+}
+
diff --git a/test/tint/builtins/gen/var/textureStore/1af236.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/textureStore/1af236.wgsl.expected.ir.dxc.hlsl
index 685a9ee..b129d68 100644
--- a/test/tint/builtins/gen/var/textureStore/1af236.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureStore/1af236.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,21 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWTexture2DArray<float4> arg_0 : register(u0, space1);
+void textureStore_1af236() {
+  int2 arg_1 = (1).xx;
+  int arg_2 = 1;
+  float4 arg_3 = (1.0f).xxxx;
+  RWTexture2DArray<float4> v = arg_0;
+  int2 v_1 = arg_1;
+  float4 v_2 = arg_3;
+  v[int3(v_1, int(arg_2))] = v_2;
+}
+
+void fragment_main() {
+  textureStore_1af236();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  textureStore_1af236();
+}
+
diff --git a/test/tint/builtins/gen/var/textureStore/1af236.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/textureStore/1af236.wgsl.expected.ir.fxc.hlsl
index 685a9ee..b129d68 100644
--- a/test/tint/builtins/gen/var/textureStore/1af236.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureStore/1af236.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,21 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWTexture2DArray<float4> arg_0 : register(u0, space1);
+void textureStore_1af236() {
+  int2 arg_1 = (1).xx;
+  int arg_2 = 1;
+  float4 arg_3 = (1.0f).xxxx;
+  RWTexture2DArray<float4> v = arg_0;
+  int2 v_1 = arg_1;
+  float4 v_2 = arg_3;
+  v[int3(v_1, int(arg_2))] = v_2;
+}
+
+void fragment_main() {
+  textureStore_1af236();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  textureStore_1af236();
+}
+
diff --git a/test/tint/builtins/gen/var/textureStore/1bbd08.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/textureStore/1bbd08.wgsl.expected.ir.dxc.hlsl
index 685a9ee..a24d0d4 100644
--- a/test/tint/builtins/gen/var/textureStore/1bbd08.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureStore/1bbd08.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,17 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWTexture3D<float4> arg_0 : register(u0, space1);
+void textureStore_1bbd08() {
+  int3 arg_1 = (1).xxx;
+  float4 arg_2 = (1.0f).xxxx;
+  arg_0[arg_1] = arg_2;
+}
+
+void fragment_main() {
+  textureStore_1bbd08();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  textureStore_1bbd08();
+}
+
diff --git a/test/tint/builtins/gen/var/textureStore/1bbd08.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/textureStore/1bbd08.wgsl.expected.ir.fxc.hlsl
index 685a9ee..a24d0d4 100644
--- a/test/tint/builtins/gen/var/textureStore/1bbd08.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureStore/1bbd08.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,17 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWTexture3D<float4> arg_0 : register(u0, space1);
+void textureStore_1bbd08() {
+  int3 arg_1 = (1).xxx;
+  float4 arg_2 = (1.0f).xxxx;
+  arg_0[arg_1] = arg_2;
+}
+
+void fragment_main() {
+  textureStore_1bbd08();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  textureStore_1bbd08();
+}
+
diff --git a/test/tint/builtins/gen/var/textureStore/1c02e7.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/textureStore/1c02e7.wgsl.expected.ir.dxc.hlsl
index 685a9ee..06d6c76 100644
--- a/test/tint/builtins/gen/var/textureStore/1c02e7.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureStore/1c02e7.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,21 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWTexture2DArray<int4> arg_0 : register(u0, space1);
+void textureStore_1c02e7() {
+  int2 arg_1 = (1).xx;
+  int arg_2 = 1;
+  int4 arg_3 = (1).xxxx;
+  RWTexture2DArray<int4> v = arg_0;
+  int2 v_1 = arg_1;
+  int4 v_2 = arg_3;
+  v[int3(v_1, int(arg_2))] = v_2;
+}
+
+void fragment_main() {
+  textureStore_1c02e7();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  textureStore_1c02e7();
+}
+
diff --git a/test/tint/builtins/gen/var/textureStore/1c02e7.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/textureStore/1c02e7.wgsl.expected.ir.fxc.hlsl
index 685a9ee..06d6c76 100644
--- a/test/tint/builtins/gen/var/textureStore/1c02e7.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureStore/1c02e7.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,21 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWTexture2DArray<int4> arg_0 : register(u0, space1);
+void textureStore_1c02e7() {
+  int2 arg_1 = (1).xx;
+  int arg_2 = 1;
+  int4 arg_3 = (1).xxxx;
+  RWTexture2DArray<int4> v = arg_0;
+  int2 v_1 = arg_1;
+  int4 v_2 = arg_3;
+  v[int3(v_1, int(arg_2))] = v_2;
+}
+
+void fragment_main() {
+  textureStore_1c02e7();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  textureStore_1c02e7();
+}
+
diff --git a/test/tint/builtins/gen/var/textureStore/1dc954.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/textureStore/1dc954.wgsl.expected.ir.dxc.hlsl
index 685a9ee..9d7cdb5 100644
--- a/test/tint/builtins/gen/var/textureStore/1dc954.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureStore/1dc954.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,17 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWTexture1D<int4> arg_0 : register(u0, space1);
+void textureStore_1dc954() {
+  uint arg_1 = 1u;
+  int4 arg_2 = (1).xxxx;
+  arg_0[arg_1] = arg_2;
+}
+
+void fragment_main() {
+  textureStore_1dc954();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  textureStore_1dc954();
+}
+
diff --git a/test/tint/builtins/gen/var/textureStore/1dc954.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/textureStore/1dc954.wgsl.expected.ir.fxc.hlsl
index 685a9ee..9d7cdb5 100644
--- a/test/tint/builtins/gen/var/textureStore/1dc954.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureStore/1dc954.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,17 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWTexture1D<int4> arg_0 : register(u0, space1);
+void textureStore_1dc954() {
+  uint arg_1 = 1u;
+  int4 arg_2 = (1).xxxx;
+  arg_0[arg_1] = arg_2;
+}
+
+void fragment_main() {
+  textureStore_1dc954();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  textureStore_1dc954();
+}
+
diff --git a/test/tint/builtins/gen/var/textureStore/1e20f2.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/textureStore/1e20f2.wgsl.expected.ir.dxc.hlsl
index 685a9ee..3546b06 100644
--- a/test/tint/builtins/gen/var/textureStore/1e20f2.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureStore/1e20f2.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,17 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWTexture2D<float4> arg_0 : register(u0, space1);
+void textureStore_1e20f2() {
+  uint2 arg_1 = (1u).xx;
+  float4 arg_2 = (1.0f).xxxx;
+  arg_0[arg_1] = arg_2;
+}
+
+void fragment_main() {
+  textureStore_1e20f2();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  textureStore_1e20f2();
+}
+
diff --git a/test/tint/builtins/gen/var/textureStore/1e20f2.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/textureStore/1e20f2.wgsl.expected.ir.fxc.hlsl
index 685a9ee..3546b06 100644
--- a/test/tint/builtins/gen/var/textureStore/1e20f2.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureStore/1e20f2.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,17 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWTexture2D<float4> arg_0 : register(u0, space1);
+void textureStore_1e20f2() {
+  uint2 arg_1 = (1u).xx;
+  float4 arg_2 = (1.0f).xxxx;
+  arg_0[arg_1] = arg_2;
+}
+
+void fragment_main() {
+  textureStore_1e20f2();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  textureStore_1e20f2();
+}
+
diff --git a/test/tint/builtins/gen/var/textureStore/1e79f0.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/textureStore/1e79f0.wgsl.expected.ir.dxc.hlsl
index 685a9ee..605cd51 100644
--- a/test/tint/builtins/gen/var/textureStore/1e79f0.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureStore/1e79f0.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,21 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWTexture2DArray<float4> arg_0 : register(u0, space1);
+void textureStore_1e79f0() {
+  int2 arg_1 = (1).xx;
+  int arg_2 = 1;
+  float4 arg_3 = (1.0f).xxxx;
+  RWTexture2DArray<float4> v = arg_0;
+  int2 v_1 = arg_1;
+  float4 v_2 = arg_3;
+  v[int3(v_1, int(arg_2))] = v_2;
+}
+
+void fragment_main() {
+  textureStore_1e79f0();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  textureStore_1e79f0();
+}
+
diff --git a/test/tint/builtins/gen/var/textureStore/1e79f0.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/textureStore/1e79f0.wgsl.expected.ir.fxc.hlsl
index 685a9ee..605cd51 100644
--- a/test/tint/builtins/gen/var/textureStore/1e79f0.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureStore/1e79f0.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,21 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWTexture2DArray<float4> arg_0 : register(u0, space1);
+void textureStore_1e79f0() {
+  int2 arg_1 = (1).xx;
+  int arg_2 = 1;
+  float4 arg_3 = (1.0f).xxxx;
+  RWTexture2DArray<float4> v = arg_0;
+  int2 v_1 = arg_1;
+  float4 v_2 = arg_3;
+  v[int3(v_1, int(arg_2))] = v_2;
+}
+
+void fragment_main() {
+  textureStore_1e79f0();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  textureStore_1e79f0();
+}
+
diff --git a/test/tint/builtins/gen/var/textureStore/1e9fbd.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/textureStore/1e9fbd.wgsl.expected.ir.dxc.hlsl
index 685a9ee..09c592a 100644
--- a/test/tint/builtins/gen/var/textureStore/1e9fbd.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureStore/1e9fbd.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,21 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWTexture2DArray<int4> arg_0 : register(u0, space1);
+void textureStore_1e9fbd() {
+  uint2 arg_1 = (1u).xx;
+  int arg_2 = 1;
+  int4 arg_3 = (1).xxxx;
+  RWTexture2DArray<int4> v = arg_0;
+  uint2 v_1 = arg_1;
+  int4 v_2 = arg_3;
+  v[uint3(v_1, uint(arg_2))] = v_2;
+}
+
+void fragment_main() {
+  textureStore_1e9fbd();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  textureStore_1e9fbd();
+}
+
diff --git a/test/tint/builtins/gen/var/textureStore/1e9fbd.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/textureStore/1e9fbd.wgsl.expected.ir.fxc.hlsl
index 685a9ee..09c592a 100644
--- a/test/tint/builtins/gen/var/textureStore/1e9fbd.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureStore/1e9fbd.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,21 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWTexture2DArray<int4> arg_0 : register(u0, space1);
+void textureStore_1e9fbd() {
+  uint2 arg_1 = (1u).xx;
+  int arg_2 = 1;
+  int4 arg_3 = (1).xxxx;
+  RWTexture2DArray<int4> v = arg_0;
+  uint2 v_1 = arg_1;
+  int4 v_2 = arg_3;
+  v[uint3(v_1, uint(arg_2))] = v_2;
+}
+
+void fragment_main() {
+  textureStore_1e9fbd();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  textureStore_1e9fbd();
+}
+
diff --git a/test/tint/builtins/gen/var/textureStore/1efc36.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/textureStore/1efc36.wgsl.expected.ir.dxc.hlsl
index 685a9ee..120f49a 100644
--- a/test/tint/builtins/gen/var/textureStore/1efc36.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureStore/1efc36.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,17 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWTexture3D<uint4> arg_0 : register(u0, space1);
+void textureStore_1efc36() {
+  uint3 arg_1 = (1u).xxx;
+  uint4 arg_2 = (1u).xxxx;
+  arg_0[arg_1] = arg_2;
+}
+
+void fragment_main() {
+  textureStore_1efc36();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  textureStore_1efc36();
+}
+
diff --git a/test/tint/builtins/gen/var/textureStore/1efc36.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/textureStore/1efc36.wgsl.expected.ir.fxc.hlsl
index 685a9ee..120f49a 100644
--- a/test/tint/builtins/gen/var/textureStore/1efc36.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureStore/1efc36.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,17 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWTexture3D<uint4> arg_0 : register(u0, space1);
+void textureStore_1efc36() {
+  uint3 arg_1 = (1u).xxx;
+  uint4 arg_2 = (1u).xxxx;
+  arg_0[arg_1] = arg_2;
+}
+
+void fragment_main() {
+  textureStore_1efc36();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  textureStore_1efc36();
+}
+
diff --git a/test/tint/builtins/gen/var/textureStore/1f1ef8.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/textureStore/1f1ef8.wgsl.expected.ir.dxc.hlsl
index 685a9ee..f82174c 100644
--- a/test/tint/builtins/gen/var/textureStore/1f1ef8.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureStore/1f1ef8.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,21 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWTexture2DArray<int4> arg_0 : register(u0, space1);
+void textureStore_1f1ef8() {
+  int2 arg_1 = (1).xx;
+  uint arg_2 = 1u;
+  int4 arg_3 = (1).xxxx;
+  RWTexture2DArray<int4> v = arg_0;
+  int2 v_1 = arg_1;
+  int4 v_2 = arg_3;
+  v[int3(v_1, int(arg_2))] = v_2;
+}
+
+void fragment_main() {
+  textureStore_1f1ef8();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  textureStore_1f1ef8();
+}
+
diff --git a/test/tint/builtins/gen/var/textureStore/1f1ef8.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/textureStore/1f1ef8.wgsl.expected.ir.fxc.hlsl
index 685a9ee..f82174c 100644
--- a/test/tint/builtins/gen/var/textureStore/1f1ef8.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureStore/1f1ef8.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,21 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWTexture2DArray<int4> arg_0 : register(u0, space1);
+void textureStore_1f1ef8() {
+  int2 arg_1 = (1).xx;
+  uint arg_2 = 1u;
+  int4 arg_3 = (1).xxxx;
+  RWTexture2DArray<int4> v = arg_0;
+  int2 v_1 = arg_1;
+  int4 v_2 = arg_3;
+  v[int3(v_1, int(arg_2))] = v_2;
+}
+
+void fragment_main() {
+  textureStore_1f1ef8();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  textureStore_1f1ef8();
+}
+
diff --git a/test/tint/builtins/gen/var/textureStore/1fef04.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/textureStore/1fef04.wgsl.expected.ir.dxc.hlsl
index 685a9ee..a99f825 100644
--- a/test/tint/builtins/gen/var/textureStore/1fef04.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureStore/1fef04.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,17 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWTexture1D<int4> arg_0 : register(u0, space1);
+void textureStore_1fef04() {
+  uint arg_1 = 1u;
+  int4 arg_2 = (1).xxxx;
+  arg_0[arg_1] = arg_2;
+}
+
+void fragment_main() {
+  textureStore_1fef04();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  textureStore_1fef04();
+}
+
diff --git a/test/tint/builtins/gen/var/textureStore/1fef04.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/textureStore/1fef04.wgsl.expected.ir.fxc.hlsl
index 685a9ee..a99f825 100644
--- a/test/tint/builtins/gen/var/textureStore/1fef04.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureStore/1fef04.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,17 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWTexture1D<int4> arg_0 : register(u0, space1);
+void textureStore_1fef04() {
+  uint arg_1 = 1u;
+  int4 arg_2 = (1).xxxx;
+  arg_0[arg_1] = arg_2;
+}
+
+void fragment_main() {
+  textureStore_1fef04();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  textureStore_1fef04();
+}
+
diff --git a/test/tint/builtins/gen/var/textureStore/2046db.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/textureStore/2046db.wgsl.expected.ir.dxc.hlsl
index 685a9ee..ed083da6 100644
--- a/test/tint/builtins/gen/var/textureStore/2046db.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureStore/2046db.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,21 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWTexture2DArray<float4> arg_0 : register(u0, space1);
+void textureStore_2046db() {
+  uint2 arg_1 = (1u).xx;
+  int arg_2 = 1;
+  float4 arg_3 = (1.0f).xxxx;
+  RWTexture2DArray<float4> v = arg_0;
+  uint2 v_1 = arg_1;
+  float4 v_2 = arg_3;
+  v[uint3(v_1, uint(arg_2))] = v_2;
+}
+
+void fragment_main() {
+  textureStore_2046db();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  textureStore_2046db();
+}
+
diff --git a/test/tint/builtins/gen/var/textureStore/2046db.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/textureStore/2046db.wgsl.expected.ir.fxc.hlsl
index 685a9ee..ed083da6 100644
--- a/test/tint/builtins/gen/var/textureStore/2046db.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureStore/2046db.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,21 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWTexture2DArray<float4> arg_0 : register(u0, space1);
+void textureStore_2046db() {
+  uint2 arg_1 = (1u).xx;
+  int arg_2 = 1;
+  float4 arg_3 = (1.0f).xxxx;
+  RWTexture2DArray<float4> v = arg_0;
+  uint2 v_1 = arg_1;
+  float4 v_2 = arg_3;
+  v[uint3(v_1, uint(arg_2))] = v_2;
+}
+
+void fragment_main() {
+  textureStore_2046db();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  textureStore_2046db();
+}
+
diff --git a/test/tint/builtins/gen/var/textureStore/207fdd.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/textureStore/207fdd.wgsl.expected.ir.dxc.hlsl
index 685a9ee..c57313a 100644
--- a/test/tint/builtins/gen/var/textureStore/207fdd.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureStore/207fdd.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,17 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWTexture3D<float4> arg_0 : register(u0, space1);
+void textureStore_207fdd() {
+  uint3 arg_1 = (1u).xxx;
+  float4 arg_2 = (1.0f).xxxx;
+  arg_0[arg_1] = arg_2;
+}
+
+void fragment_main() {
+  textureStore_207fdd();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  textureStore_207fdd();
+}
+
diff --git a/test/tint/builtins/gen/var/textureStore/207fdd.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/textureStore/207fdd.wgsl.expected.ir.fxc.hlsl
index 685a9ee..c57313a 100644
--- a/test/tint/builtins/gen/var/textureStore/207fdd.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureStore/207fdd.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,17 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWTexture3D<float4> arg_0 : register(u0, space1);
+void textureStore_207fdd() {
+  uint3 arg_1 = (1u).xxx;
+  float4 arg_2 = (1.0f).xxxx;
+  arg_0[arg_1] = arg_2;
+}
+
+void fragment_main() {
+  textureStore_207fdd();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  textureStore_207fdd();
+}
+
diff --git a/test/tint/builtins/gen/var/textureStore/2173fd.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/textureStore/2173fd.wgsl.expected.ir.dxc.hlsl
index 685a9ee..42f9a44 100644
--- a/test/tint/builtins/gen/var/textureStore/2173fd.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureStore/2173fd.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,17 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWTexture1D<uint4> arg_0 : register(u0, space1);
+void textureStore_2173fd() {
+  uint arg_1 = 1u;
+  uint4 arg_2 = (1u).xxxx;
+  arg_0[arg_1] = arg_2;
+}
+
+void fragment_main() {
+  textureStore_2173fd();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  textureStore_2173fd();
+}
+
diff --git a/test/tint/builtins/gen/var/textureStore/2173fd.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/textureStore/2173fd.wgsl.expected.ir.fxc.hlsl
index 685a9ee..42f9a44 100644
--- a/test/tint/builtins/gen/var/textureStore/2173fd.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureStore/2173fd.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,17 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWTexture1D<uint4> arg_0 : register(u0, space1);
+void textureStore_2173fd() {
+  uint arg_1 = 1u;
+  uint4 arg_2 = (1u).xxxx;
+  arg_0[arg_1] = arg_2;
+}
+
+void fragment_main() {
+  textureStore_2173fd();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  textureStore_2173fd();
+}
+
diff --git a/test/tint/builtins/gen/var/textureStore/22d955.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/textureStore/22d955.wgsl.expected.ir.dxc.hlsl
index 685a9ee..fe5c909 100644
--- a/test/tint/builtins/gen/var/textureStore/22d955.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureStore/22d955.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,21 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWTexture2DArray<uint4> arg_0 : register(u0, space1);
+void textureStore_22d955() {
+  int2 arg_1 = (1).xx;
+  int arg_2 = 1;
+  uint4 arg_3 = (1u).xxxx;
+  RWTexture2DArray<uint4> v = arg_0;
+  int2 v_1 = arg_1;
+  uint4 v_2 = arg_3;
+  v[int3(v_1, int(arg_2))] = v_2;
+}
+
+void fragment_main() {
+  textureStore_22d955();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  textureStore_22d955();
+}
+
diff --git a/test/tint/builtins/gen/var/textureStore/22d955.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/textureStore/22d955.wgsl.expected.ir.fxc.hlsl
index 685a9ee..fe5c909 100644
--- a/test/tint/builtins/gen/var/textureStore/22d955.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureStore/22d955.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,21 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWTexture2DArray<uint4> arg_0 : register(u0, space1);
+void textureStore_22d955() {
+  int2 arg_1 = (1).xx;
+  int arg_2 = 1;
+  uint4 arg_3 = (1u).xxxx;
+  RWTexture2DArray<uint4> v = arg_0;
+  int2 v_1 = arg_1;
+  uint4 v_2 = arg_3;
+  v[int3(v_1, int(arg_2))] = v_2;
+}
+
+void fragment_main() {
+  textureStore_22d955();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  textureStore_22d955();
+}
+
diff --git a/test/tint/builtins/gen/var/textureStore/22f045.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/textureStore/22f045.wgsl.expected.ir.dxc.hlsl
index 685a9ee..0fed05a 100644
--- a/test/tint/builtins/gen/var/textureStore/22f045.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureStore/22f045.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,21 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWTexture2DArray<float4> arg_0 : register(u0, space1);
+void textureStore_22f045() {
+  int2 arg_1 = (1).xx;
+  uint arg_2 = 1u;
+  float4 arg_3 = (1.0f).xxxx;
+  RWTexture2DArray<float4> v = arg_0;
+  int2 v_1 = arg_1;
+  float4 v_2 = arg_3;
+  v[int3(v_1, int(arg_2))] = v_2;
+}
+
+void fragment_main() {
+  textureStore_22f045();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  textureStore_22f045();
+}
+
diff --git a/test/tint/builtins/gen/var/textureStore/22f045.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/textureStore/22f045.wgsl.expected.ir.fxc.hlsl
index 685a9ee..0fed05a 100644
--- a/test/tint/builtins/gen/var/textureStore/22f045.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureStore/22f045.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,21 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWTexture2DArray<float4> arg_0 : register(u0, space1);
+void textureStore_22f045() {
+  int2 arg_1 = (1).xx;
+  uint arg_2 = 1u;
+  float4 arg_3 = (1.0f).xxxx;
+  RWTexture2DArray<float4> v = arg_0;
+  int2 v_1 = arg_1;
+  float4 v_2 = arg_3;
+  v[int3(v_1, int(arg_2))] = v_2;
+}
+
+void fragment_main() {
+  textureStore_22f045();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  textureStore_22f045();
+}
+
diff --git a/test/tint/builtins/gen/var/textureStore/2383fc.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/textureStore/2383fc.wgsl.expected.ir.dxc.hlsl
index 685a9ee..41e7180 100644
--- a/test/tint/builtins/gen/var/textureStore/2383fc.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureStore/2383fc.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,21 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWTexture2DArray<uint4> arg_0 : register(u0, space1);
+void textureStore_2383fc() {
+  uint2 arg_1 = (1u).xx;
+  int arg_2 = 1;
+  uint4 arg_3 = (1u).xxxx;
+  RWTexture2DArray<uint4> v = arg_0;
+  uint2 v_1 = arg_1;
+  uint4 v_2 = arg_3;
+  v[uint3(v_1, uint(arg_2))] = v_2;
+}
+
+void fragment_main() {
+  textureStore_2383fc();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  textureStore_2383fc();
+}
+
diff --git a/test/tint/builtins/gen/var/textureStore/2383fc.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/textureStore/2383fc.wgsl.expected.ir.fxc.hlsl
index 685a9ee..41e7180 100644
--- a/test/tint/builtins/gen/var/textureStore/2383fc.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureStore/2383fc.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,21 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWTexture2DArray<uint4> arg_0 : register(u0, space1);
+void textureStore_2383fc() {
+  uint2 arg_1 = (1u).xx;
+  int arg_2 = 1;
+  uint4 arg_3 = (1u).xxxx;
+  RWTexture2DArray<uint4> v = arg_0;
+  uint2 v_1 = arg_1;
+  uint4 v_2 = arg_3;
+  v[uint3(v_1, uint(arg_2))] = v_2;
+}
+
+void fragment_main() {
+  textureStore_2383fc();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  textureStore_2383fc();
+}
+
diff --git a/test/tint/builtins/gen/var/textureStore/24e6b7.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/textureStore/24e6b7.wgsl.expected.ir.dxc.hlsl
index 685a9ee..9cb3b8f 100644
--- a/test/tint/builtins/gen/var/textureStore/24e6b7.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureStore/24e6b7.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,17 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWTexture3D<int4> arg_0 : register(u0, space1);
+void textureStore_24e6b7() {
+  int3 arg_1 = (1).xxx;
+  int4 arg_2 = (1).xxxx;
+  arg_0[arg_1] = arg_2;
+}
+
+void fragment_main() {
+  textureStore_24e6b7();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  textureStore_24e6b7();
+}
+
diff --git a/test/tint/builtins/gen/var/textureStore/24e6b7.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/textureStore/24e6b7.wgsl.expected.ir.fxc.hlsl
index 685a9ee..9cb3b8f 100644
--- a/test/tint/builtins/gen/var/textureStore/24e6b7.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureStore/24e6b7.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,17 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWTexture3D<int4> arg_0 : register(u0, space1);
+void textureStore_24e6b7() {
+  int3 arg_1 = (1).xxx;
+  int4 arg_2 = (1).xxxx;
+  arg_0[arg_1] = arg_2;
+}
+
+void fragment_main() {
+  textureStore_24e6b7();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  textureStore_24e6b7();
+}
+
diff --git a/test/tint/builtins/gen/var/textureStore/258ab0.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/textureStore/258ab0.wgsl.expected.ir.dxc.hlsl
index 685a9ee..b6f02cd 100644
--- a/test/tint/builtins/gen/var/textureStore/258ab0.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureStore/258ab0.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,21 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWTexture2DArray<float4> arg_0 : register(u0, space1);
+void textureStore_258ab0() {
+  uint2 arg_1 = (1u).xx;
+  int arg_2 = 1;
+  float4 arg_3 = (1.0f).xxxx;
+  RWTexture2DArray<float4> v = arg_0;
+  uint2 v_1 = arg_1;
+  float4 v_2 = arg_3;
+  v[uint3(v_1, uint(arg_2))] = v_2;
+}
+
+void fragment_main() {
+  textureStore_258ab0();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  textureStore_258ab0();
+}
+
diff --git a/test/tint/builtins/gen/var/textureStore/258ab0.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/textureStore/258ab0.wgsl.expected.ir.fxc.hlsl
index 685a9ee..b6f02cd 100644
--- a/test/tint/builtins/gen/var/textureStore/258ab0.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureStore/258ab0.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,21 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWTexture2DArray<float4> arg_0 : register(u0, space1);
+void textureStore_258ab0() {
+  uint2 arg_1 = (1u).xx;
+  int arg_2 = 1;
+  float4 arg_3 = (1.0f).xxxx;
+  RWTexture2DArray<float4> v = arg_0;
+  uint2 v_1 = arg_1;
+  float4 v_2 = arg_3;
+  v[uint3(v_1, uint(arg_2))] = v_2;
+}
+
+void fragment_main() {
+  textureStore_258ab0();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  textureStore_258ab0();
+}
+
diff --git a/test/tint/builtins/gen/var/textureStore/26a26d.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/textureStore/26a26d.wgsl.expected.ir.dxc.hlsl
index 685a9ee..a972646 100644
--- a/test/tint/builtins/gen/var/textureStore/26a26d.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureStore/26a26d.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,17 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWTexture1D<float4> arg_0 : register(u0, space1);
+void textureStore_26a26d() {
+  uint arg_1 = 1u;
+  float4 arg_2 = (1.0f).xxxx;
+  arg_0[arg_1] = arg_2;
+}
+
+void fragment_main() {
+  textureStore_26a26d();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  textureStore_26a26d();
+}
+
diff --git a/test/tint/builtins/gen/var/textureStore/26a26d.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/textureStore/26a26d.wgsl.expected.ir.fxc.hlsl
index 685a9ee..a972646 100644
--- a/test/tint/builtins/gen/var/textureStore/26a26d.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureStore/26a26d.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,17 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWTexture1D<float4> arg_0 : register(u0, space1);
+void textureStore_26a26d() {
+  uint arg_1 = 1u;
+  float4 arg_2 = (1.0f).xxxx;
+  arg_0[arg_1] = arg_2;
+}
+
+void fragment_main() {
+  textureStore_26a26d();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  textureStore_26a26d();
+}
+
diff --git a/test/tint/builtins/gen/var/textureStore/26bf70.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/textureStore/26bf70.wgsl.expected.ir.dxc.hlsl
index 685a9ee..fe893be 100644
--- a/test/tint/builtins/gen/var/textureStore/26bf70.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureStore/26bf70.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,17 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWTexture2D<uint4> arg_0 : register(u0, space1);
+void textureStore_26bf70() {
+  int2 arg_1 = (1).xx;
+  uint4 arg_2 = (1u).xxxx;
+  arg_0[arg_1] = arg_2;
+}
+
+void fragment_main() {
+  textureStore_26bf70();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  textureStore_26bf70();
+}
+
diff --git a/test/tint/builtins/gen/var/textureStore/26bf70.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/textureStore/26bf70.wgsl.expected.ir.fxc.hlsl
index 685a9ee..fe893be 100644
--- a/test/tint/builtins/gen/var/textureStore/26bf70.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureStore/26bf70.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,17 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWTexture2D<uint4> arg_0 : register(u0, space1);
+void textureStore_26bf70() {
+  int2 arg_1 = (1).xx;
+  uint4 arg_2 = (1u).xxxx;
+  arg_0[arg_1] = arg_2;
+}
+
+void fragment_main() {
+  textureStore_26bf70();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  textureStore_26bf70();
+}
+
diff --git a/test/tint/builtins/gen/var/textureStore/27063a.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/textureStore/27063a.wgsl.expected.ir.dxc.hlsl
index 685a9ee..f0025cd 100644
--- a/test/tint/builtins/gen/var/textureStore/27063a.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureStore/27063a.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,21 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWTexture2DArray<float4> arg_0 : register(u0, space1);
+void textureStore_27063a() {
+  uint2 arg_1 = (1u).xx;
+  int arg_2 = 1;
+  float4 arg_3 = (1.0f).xxxx;
+  RWTexture2DArray<float4> v = arg_0;
+  uint2 v_1 = arg_1;
+  float4 v_2 = arg_3;
+  v[uint3(v_1, uint(arg_2))] = v_2;
+}
+
+void fragment_main() {
+  textureStore_27063a();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  textureStore_27063a();
+}
+
diff --git a/test/tint/builtins/gen/var/textureStore/27063a.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/textureStore/27063a.wgsl.expected.ir.fxc.hlsl
index 685a9ee..f0025cd 100644
--- a/test/tint/builtins/gen/var/textureStore/27063a.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureStore/27063a.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,21 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWTexture2DArray<float4> arg_0 : register(u0, space1);
+void textureStore_27063a() {
+  uint2 arg_1 = (1u).xx;
+  int arg_2 = 1;
+  float4 arg_3 = (1.0f).xxxx;
+  RWTexture2DArray<float4> v = arg_0;
+  uint2 v_1 = arg_1;
+  float4 v_2 = arg_3;
+  v[uint3(v_1, uint(arg_2))] = v_2;
+}
+
+void fragment_main() {
+  textureStore_27063a();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  textureStore_27063a();
+}
+
diff --git a/test/tint/builtins/gen/var/textureStore/272f5a.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/textureStore/272f5a.wgsl.expected.ir.dxc.hlsl
index 685a9ee..f4cbb88 100644
--- a/test/tint/builtins/gen/var/textureStore/272f5a.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureStore/272f5a.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,21 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWTexture2DArray<float4> arg_0 : register(u0, space1);
+void textureStore_272f5a() {
+  int2 arg_1 = (1).xx;
+  uint arg_2 = 1u;
+  float4 arg_3 = (1.0f).xxxx;
+  RWTexture2DArray<float4> v = arg_0;
+  int2 v_1 = arg_1;
+  float4 v_2 = arg_3;
+  v[int3(v_1, int(arg_2))] = v_2;
+}
+
+void fragment_main() {
+  textureStore_272f5a();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  textureStore_272f5a();
+}
+
diff --git a/test/tint/builtins/gen/var/textureStore/272f5a.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/textureStore/272f5a.wgsl.expected.ir.fxc.hlsl
index 685a9ee..f4cbb88 100644
--- a/test/tint/builtins/gen/var/textureStore/272f5a.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureStore/272f5a.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,21 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWTexture2DArray<float4> arg_0 : register(u0, space1);
+void textureStore_272f5a() {
+  int2 arg_1 = (1).xx;
+  uint arg_2 = 1u;
+  float4 arg_3 = (1.0f).xxxx;
+  RWTexture2DArray<float4> v = arg_0;
+  int2 v_1 = arg_1;
+  float4 v_2 = arg_3;
+  v[int3(v_1, int(arg_2))] = v_2;
+}
+
+void fragment_main() {
+  textureStore_272f5a();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  textureStore_272f5a();
+}
+
diff --git a/test/tint/builtins/gen/var/textureStore/2796b4.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/textureStore/2796b4.wgsl.expected.ir.dxc.hlsl
index 685a9ee..effdebb 100644
--- a/test/tint/builtins/gen/var/textureStore/2796b4.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureStore/2796b4.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,17 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWTexture3D<int4> arg_0 : register(u0, space1);
+void textureStore_2796b4() {
+  int3 arg_1 = (1).xxx;
+  int4 arg_2 = (1).xxxx;
+  arg_0[arg_1] = arg_2;
+}
+
+void fragment_main() {
+  textureStore_2796b4();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  textureStore_2796b4();
+}
+
diff --git a/test/tint/builtins/gen/var/textureStore/2796b4.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/textureStore/2796b4.wgsl.expected.ir.fxc.hlsl
index 685a9ee..effdebb 100644
--- a/test/tint/builtins/gen/var/textureStore/2796b4.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureStore/2796b4.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,17 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWTexture3D<int4> arg_0 : register(u0, space1);
+void textureStore_2796b4() {
+  int3 arg_1 = (1).xxx;
+  int4 arg_2 = (1).xxxx;
+  arg_0[arg_1] = arg_2;
+}
+
+void fragment_main() {
+  textureStore_2796b4();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  textureStore_2796b4();
+}
+
diff --git a/test/tint/builtins/gen/var/textureStore/285218.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/textureStore/285218.wgsl.expected.ir.dxc.hlsl
index 685a9ee..f4dd4c4 100644
--- a/test/tint/builtins/gen/var/textureStore/285218.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureStore/285218.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,17 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWTexture1D<float4> arg_0 : register(u0, space1);
+void textureStore_285218() {
+  uint arg_1 = 1u;
+  float4 arg_2 = (1.0f).xxxx;
+  arg_0[arg_1] = arg_2;
+}
+
+void fragment_main() {
+  textureStore_285218();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  textureStore_285218();
+}
+
diff --git a/test/tint/builtins/gen/var/textureStore/285218.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/textureStore/285218.wgsl.expected.ir.fxc.hlsl
index 685a9ee..f4dd4c4 100644
--- a/test/tint/builtins/gen/var/textureStore/285218.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureStore/285218.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,17 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWTexture1D<float4> arg_0 : register(u0, space1);
+void textureStore_285218() {
+  uint arg_1 = 1u;
+  float4 arg_2 = (1.0f).xxxx;
+  arg_0[arg_1] = arg_2;
+}
+
+void fragment_main() {
+  textureStore_285218();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  textureStore_285218();
+}
+
diff --git a/test/tint/builtins/gen/var/textureStore/28a7ec.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/textureStore/28a7ec.wgsl.expected.ir.dxc.hlsl
index 685a9ee..6639474 100644
--- a/test/tint/builtins/gen/var/textureStore/28a7ec.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureStore/28a7ec.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,21 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWTexture2DArray<int4> arg_0 : register(u0, space1);
+void textureStore_28a7ec() {
+  uint2 arg_1 = (1u).xx;
+  int arg_2 = 1;
+  int4 arg_3 = (1).xxxx;
+  RWTexture2DArray<int4> v = arg_0;
+  uint2 v_1 = arg_1;
+  int4 v_2 = arg_3;
+  v[uint3(v_1, uint(arg_2))] = v_2;
+}
+
+void fragment_main() {
+  textureStore_28a7ec();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  textureStore_28a7ec();
+}
+
diff --git a/test/tint/builtins/gen/var/textureStore/28a7ec.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/textureStore/28a7ec.wgsl.expected.ir.fxc.hlsl
index 685a9ee..6639474 100644
--- a/test/tint/builtins/gen/var/textureStore/28a7ec.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureStore/28a7ec.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,21 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWTexture2DArray<int4> arg_0 : register(u0, space1);
+void textureStore_28a7ec() {
+  uint2 arg_1 = (1u).xx;
+  int arg_2 = 1;
+  int4 arg_3 = (1).xxxx;
+  RWTexture2DArray<int4> v = arg_0;
+  uint2 v_1 = arg_1;
+  int4 v_2 = arg_3;
+  v[uint3(v_1, uint(arg_2))] = v_2;
+}
+
+void fragment_main() {
+  textureStore_28a7ec();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  textureStore_28a7ec();
+}
+
diff --git a/test/tint/builtins/gen/var/textureStore/28e109.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/textureStore/28e109.wgsl.expected.ir.dxc.hlsl
index 685a9ee..1696191 100644
--- a/test/tint/builtins/gen/var/textureStore/28e109.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureStore/28e109.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,17 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWTexture2D<int4> arg_0 : register(u0, space1);
+void textureStore_28e109() {
+  int2 arg_1 = (1).xx;
+  int4 arg_2 = (1).xxxx;
+  arg_0[arg_1] = arg_2;
+}
+
+void fragment_main() {
+  textureStore_28e109();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  textureStore_28e109();
+}
+
diff --git a/test/tint/builtins/gen/var/textureStore/28e109.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/textureStore/28e109.wgsl.expected.ir.fxc.hlsl
index 685a9ee..1696191 100644
--- a/test/tint/builtins/gen/var/textureStore/28e109.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureStore/28e109.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,17 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWTexture2D<int4> arg_0 : register(u0, space1);
+void textureStore_28e109() {
+  int2 arg_1 = (1).xx;
+  int4 arg_2 = (1).xxxx;
+  arg_0[arg_1] = arg_2;
+}
+
+void fragment_main() {
+  textureStore_28e109();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  textureStore_28e109();
+}
+
diff --git a/test/tint/builtins/gen/var/textureStore/2a60c9.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/textureStore/2a60c9.wgsl.expected.ir.dxc.hlsl
index 685a9ee..e68046d 100644
--- a/test/tint/builtins/gen/var/textureStore/2a60c9.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureStore/2a60c9.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,21 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWTexture2DArray<int4> arg_0 : register(u0, space1);
+void textureStore_2a60c9() {
+  uint2 arg_1 = (1u).xx;
+  uint arg_2 = 1u;
+  int4 arg_3 = (1).xxxx;
+  RWTexture2DArray<int4> v = arg_0;
+  uint2 v_1 = arg_1;
+  int4 v_2 = arg_3;
+  v[uint3(v_1, uint(arg_2))] = v_2;
+}
+
+void fragment_main() {
+  textureStore_2a60c9();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  textureStore_2a60c9();
+}
+
diff --git a/test/tint/builtins/gen/var/textureStore/2a60c9.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/textureStore/2a60c9.wgsl.expected.ir.fxc.hlsl
index 685a9ee..e68046d 100644
--- a/test/tint/builtins/gen/var/textureStore/2a60c9.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureStore/2a60c9.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,21 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWTexture2DArray<int4> arg_0 : register(u0, space1);
+void textureStore_2a60c9() {
+  uint2 arg_1 = (1u).xx;
+  uint arg_2 = 1u;
+  int4 arg_3 = (1).xxxx;
+  RWTexture2DArray<int4> v = arg_0;
+  uint2 v_1 = arg_1;
+  int4 v_2 = arg_3;
+  v[uint3(v_1, uint(arg_2))] = v_2;
+}
+
+void fragment_main() {
+  textureStore_2a60c9();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  textureStore_2a60c9();
+}
+
diff --git a/test/tint/builtins/gen/var/textureStore/2ac6c7.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/textureStore/2ac6c7.wgsl.expected.ir.dxc.hlsl
index 685a9ee..3a9a3fe 100644
--- a/test/tint/builtins/gen/var/textureStore/2ac6c7.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureStore/2ac6c7.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,17 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWTexture1D<float4> arg_0 : register(u0, space1);
+void textureStore_2ac6c7() {
+  int arg_1 = 1;
+  float4 arg_2 = (1.0f).xxxx;
+  arg_0[arg_1] = arg_2;
+}
+
+void fragment_main() {
+  textureStore_2ac6c7();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  textureStore_2ac6c7();
+}
+
diff --git a/test/tint/builtins/gen/var/textureStore/2ac6c7.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/textureStore/2ac6c7.wgsl.expected.ir.fxc.hlsl
index 685a9ee..3a9a3fe 100644
--- a/test/tint/builtins/gen/var/textureStore/2ac6c7.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureStore/2ac6c7.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,17 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWTexture1D<float4> arg_0 : register(u0, space1);
+void textureStore_2ac6c7() {
+  int arg_1 = 1;
+  float4 arg_2 = (1.0f).xxxx;
+  arg_0[arg_1] = arg_2;
+}
+
+void fragment_main() {
+  textureStore_2ac6c7();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  textureStore_2ac6c7();
+}
+
diff --git a/test/tint/builtins/gen/var/textureStore/2addd6.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/textureStore/2addd6.wgsl.expected.ir.dxc.hlsl
index 685a9ee..859d1a6 100644
--- a/test/tint/builtins/gen/var/textureStore/2addd6.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureStore/2addd6.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,21 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWTexture2DArray<uint4> arg_0 : register(u0, space1);
+void textureStore_2addd6() {
+  uint2 arg_1 = (1u).xx;
+  uint arg_2 = 1u;
+  uint4 arg_3 = (1u).xxxx;
+  RWTexture2DArray<uint4> v = arg_0;
+  uint2 v_1 = arg_1;
+  uint4 v_2 = arg_3;
+  v[uint3(v_1, uint(arg_2))] = v_2;
+}
+
+void fragment_main() {
+  textureStore_2addd6();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  textureStore_2addd6();
+}
+
diff --git a/test/tint/builtins/gen/var/textureStore/2addd6.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/textureStore/2addd6.wgsl.expected.ir.fxc.hlsl
index 685a9ee..859d1a6 100644
--- a/test/tint/builtins/gen/var/textureStore/2addd6.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureStore/2addd6.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,21 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWTexture2DArray<uint4> arg_0 : register(u0, space1);
+void textureStore_2addd6() {
+  uint2 arg_1 = (1u).xx;
+  uint arg_2 = 1u;
+  uint4 arg_3 = (1u).xxxx;
+  RWTexture2DArray<uint4> v = arg_0;
+  uint2 v_1 = arg_1;
+  uint4 v_2 = arg_3;
+  v[uint3(v_1, uint(arg_2))] = v_2;
+}
+
+void fragment_main() {
+  textureStore_2addd6();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  textureStore_2addd6();
+}
+
diff --git a/test/tint/builtins/gen/var/textureStore/2c76db.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/textureStore/2c76db.wgsl.expected.ir.dxc.hlsl
index 685a9ee..0a52bd0 100644
--- a/test/tint/builtins/gen/var/textureStore/2c76db.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureStore/2c76db.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,17 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWTexture2D<float4> arg_0 : register(u0, space1);
+void textureStore_2c76db() {
+  uint2 arg_1 = (1u).xx;
+  float4 arg_2 = (1.0f).xxxx;
+  arg_0[arg_1] = arg_2;
+}
+
+void fragment_main() {
+  textureStore_2c76db();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  textureStore_2c76db();
+}
+
diff --git a/test/tint/builtins/gen/var/textureStore/2c76db.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/textureStore/2c76db.wgsl.expected.ir.fxc.hlsl
index 685a9ee..0a52bd0 100644
--- a/test/tint/builtins/gen/var/textureStore/2c76db.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureStore/2c76db.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,17 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWTexture2D<float4> arg_0 : register(u0, space1);
+void textureStore_2c76db() {
+  uint2 arg_1 = (1u).xx;
+  float4 arg_2 = (1.0f).xxxx;
+  arg_0[arg_1] = arg_2;
+}
+
+void fragment_main() {
+  textureStore_2c76db();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  textureStore_2c76db();
+}
+
diff --git a/test/tint/builtins/gen/var/textureStore/2d2835.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/textureStore/2d2835.wgsl.expected.ir.dxc.hlsl
index 685a9ee..ca8a15f 100644
--- a/test/tint/builtins/gen/var/textureStore/2d2835.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureStore/2d2835.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,21 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWTexture2DArray<float4> arg_0 : register(u0, space1);
+void textureStore_2d2835() {
+  uint2 arg_1 = (1u).xx;
+  uint arg_2 = 1u;
+  float4 arg_3 = (1.0f).xxxx;
+  RWTexture2DArray<float4> v = arg_0;
+  uint2 v_1 = arg_1;
+  float4 v_2 = arg_3;
+  v[uint3(v_1, uint(arg_2))] = v_2;
+}
+
+void fragment_main() {
+  textureStore_2d2835();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  textureStore_2d2835();
+}
+
diff --git a/test/tint/builtins/gen/var/textureStore/2d2835.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/textureStore/2d2835.wgsl.expected.ir.fxc.hlsl
index 685a9ee..ca8a15f 100644
--- a/test/tint/builtins/gen/var/textureStore/2d2835.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureStore/2d2835.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,21 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWTexture2DArray<float4> arg_0 : register(u0, space1);
+void textureStore_2d2835() {
+  uint2 arg_1 = (1u).xx;
+  uint arg_2 = 1u;
+  float4 arg_3 = (1.0f).xxxx;
+  RWTexture2DArray<float4> v = arg_0;
+  uint2 v_1 = arg_1;
+  float4 v_2 = arg_3;
+  v[uint3(v_1, uint(arg_2))] = v_2;
+}
+
+void fragment_main() {
+  textureStore_2d2835();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  textureStore_2d2835();
+}
+
diff --git a/test/tint/builtins/gen/var/textureStore/2e4245.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/textureStore/2e4245.wgsl.expected.ir.dxc.hlsl
index 685a9ee..0948be3 100644
--- a/test/tint/builtins/gen/var/textureStore/2e4245.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureStore/2e4245.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,17 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWTexture2D<float4> arg_0 : register(u0, space1);
+void textureStore_2e4245() {
+  int2 arg_1 = (1).xx;
+  float4 arg_2 = (1.0f).xxxx;
+  arg_0[arg_1] = arg_2;
+}
+
+void fragment_main() {
+  textureStore_2e4245();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  textureStore_2e4245();
+}
+
diff --git a/test/tint/builtins/gen/var/textureStore/2e4245.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/textureStore/2e4245.wgsl.expected.ir.fxc.hlsl
index 685a9ee..0948be3 100644
--- a/test/tint/builtins/gen/var/textureStore/2e4245.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureStore/2e4245.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,17 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWTexture2D<float4> arg_0 : register(u0, space1);
+void textureStore_2e4245() {
+  int2 arg_1 = (1).xx;
+  float4 arg_2 = (1.0f).xxxx;
+  arg_0[arg_1] = arg_2;
+}
+
+void fragment_main() {
+  textureStore_2e4245();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  textureStore_2e4245();
+}
+
diff --git a/test/tint/builtins/gen/var/textureStore/2e512f.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/textureStore/2e512f.wgsl.expected.ir.dxc.hlsl
index 685a9ee..a012ebb 100644
--- a/test/tint/builtins/gen/var/textureStore/2e512f.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureStore/2e512f.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,17 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWTexture2D<float4> arg_0 : register(u0, space1);
+void textureStore_2e512f() {
+  uint2 arg_1 = (1u).xx;
+  float4 arg_2 = (1.0f).xxxx;
+  arg_0[arg_1] = arg_2;
+}
+
+void fragment_main() {
+  textureStore_2e512f();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  textureStore_2e512f();
+}
+
diff --git a/test/tint/builtins/gen/var/textureStore/2e512f.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/textureStore/2e512f.wgsl.expected.ir.fxc.hlsl
index 685a9ee..a012ebb 100644
--- a/test/tint/builtins/gen/var/textureStore/2e512f.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureStore/2e512f.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,17 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWTexture2D<float4> arg_0 : register(u0, space1);
+void textureStore_2e512f() {
+  uint2 arg_1 = (1u).xx;
+  float4 arg_2 = (1.0f).xxxx;
+  arg_0[arg_1] = arg_2;
+}
+
+void fragment_main() {
+  textureStore_2e512f();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  textureStore_2e512f();
+}
+
diff --git a/test/tint/builtins/gen/var/textureStore/2e6102.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/textureStore/2e6102.wgsl.expected.ir.dxc.hlsl
index 685a9ee..6c29e97 100644
--- a/test/tint/builtins/gen/var/textureStore/2e6102.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureStore/2e6102.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,17 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWTexture2D<float4> arg_0 : register(u0, space1);
+void textureStore_2e6102() {
+  uint2 arg_1 = (1u).xx;
+  float4 arg_2 = (1.0f).xxxx;
+  arg_0[arg_1] = arg_2;
+}
+
+void fragment_main() {
+  textureStore_2e6102();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  textureStore_2e6102();
+}
+
diff --git a/test/tint/builtins/gen/var/textureStore/2e6102.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/textureStore/2e6102.wgsl.expected.ir.fxc.hlsl
index 685a9ee..6c29e97 100644
--- a/test/tint/builtins/gen/var/textureStore/2e6102.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureStore/2e6102.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,17 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWTexture2D<float4> arg_0 : register(u0, space1);
+void textureStore_2e6102() {
+  uint2 arg_1 = (1u).xx;
+  float4 arg_2 = (1.0f).xxxx;
+  arg_0[arg_1] = arg_2;
+}
+
+void fragment_main() {
+  textureStore_2e6102();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  textureStore_2e6102();
+}
+
diff --git a/test/tint/builtins/gen/var/textureStore/2eb2a4.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/textureStore/2eb2a4.wgsl.expected.ir.dxc.hlsl
index 685a9ee..ca2b4d5 100644
--- a/test/tint/builtins/gen/var/textureStore/2eb2a4.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureStore/2eb2a4.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,17 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWTexture1D<uint4> arg_0 : register(u0, space1);
+void textureStore_2eb2a4() {
+  int arg_1 = 1;
+  uint4 arg_2 = (1u).xxxx;
+  arg_0[arg_1] = arg_2;
+}
+
+void fragment_main() {
+  textureStore_2eb2a4();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  textureStore_2eb2a4();
+}
+
diff --git a/test/tint/builtins/gen/var/textureStore/2eb2a4.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/textureStore/2eb2a4.wgsl.expected.ir.fxc.hlsl
index 685a9ee..ca2b4d5 100644
--- a/test/tint/builtins/gen/var/textureStore/2eb2a4.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureStore/2eb2a4.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,17 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWTexture1D<uint4> arg_0 : register(u0, space1);
+void textureStore_2eb2a4() {
+  int arg_1 = 1;
+  uint4 arg_2 = (1u).xxxx;
+  arg_0[arg_1] = arg_2;
+}
+
+void fragment_main() {
+  textureStore_2eb2a4();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  textureStore_2eb2a4();
+}
+
diff --git a/test/tint/builtins/gen/var/textureStore/2ed2a3.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/textureStore/2ed2a3.wgsl.expected.ir.dxc.hlsl
index 685a9ee..972f173 100644
--- a/test/tint/builtins/gen/var/textureStore/2ed2a3.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureStore/2ed2a3.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,17 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWTexture1D<float4> arg_0 : register(u0, space1);
+void textureStore_2ed2a3() {
+  int arg_1 = 1;
+  float4 arg_2 = (1.0f).xxxx;
+  arg_0[arg_1] = arg_2;
+}
+
+void fragment_main() {
+  textureStore_2ed2a3();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  textureStore_2ed2a3();
+}
+
diff --git a/test/tint/builtins/gen/var/textureStore/2ed2a3.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/textureStore/2ed2a3.wgsl.expected.ir.fxc.hlsl
index 685a9ee..972f173 100644
--- a/test/tint/builtins/gen/var/textureStore/2ed2a3.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureStore/2ed2a3.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,17 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWTexture1D<float4> arg_0 : register(u0, space1);
+void textureStore_2ed2a3() {
+  int arg_1 = 1;
+  float4 arg_2 = (1.0f).xxxx;
+  arg_0[arg_1] = arg_2;
+}
+
+void fragment_main() {
+  textureStore_2ed2a3();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  textureStore_2ed2a3();
+}
+
diff --git a/test/tint/builtins/gen/var/textureStore/2f29ea.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/textureStore/2f29ea.wgsl.expected.ir.dxc.hlsl
index 685a9ee..c0082f6 100644
--- a/test/tint/builtins/gen/var/textureStore/2f29ea.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureStore/2f29ea.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,17 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWTexture2D<int4> arg_0 : register(u0, space1);
+void textureStore_2f29ea() {
+  int2 arg_1 = (1).xx;
+  int4 arg_2 = (1).xxxx;
+  arg_0[arg_1] = arg_2;
+}
+
+void fragment_main() {
+  textureStore_2f29ea();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  textureStore_2f29ea();
+}
+
diff --git a/test/tint/builtins/gen/var/textureStore/2f29ea.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/textureStore/2f29ea.wgsl.expected.ir.fxc.hlsl
index 685a9ee..c0082f6 100644
--- a/test/tint/builtins/gen/var/textureStore/2f29ea.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureStore/2f29ea.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,17 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWTexture2D<int4> arg_0 : register(u0, space1);
+void textureStore_2f29ea() {
+  int2 arg_1 = (1).xx;
+  int4 arg_2 = (1).xxxx;
+  arg_0[arg_1] = arg_2;
+}
+
+void fragment_main() {
+  textureStore_2f29ea();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  textureStore_2f29ea();
+}
+
diff --git a/test/tint/builtins/gen/var/textureStore/30b0b0.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/textureStore/30b0b0.wgsl.expected.ir.dxc.hlsl
index 685a9ee..d3c5a68 100644
--- a/test/tint/builtins/gen/var/textureStore/30b0b0.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureStore/30b0b0.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,21 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWTexture2DArray<int4> arg_0 : register(u0, space1);
+void textureStore_30b0b0() {
+  int2 arg_1 = (1).xx;
+  uint arg_2 = 1u;
+  int4 arg_3 = (1).xxxx;
+  RWTexture2DArray<int4> v = arg_0;
+  int2 v_1 = arg_1;
+  int4 v_2 = arg_3;
+  v[int3(v_1, int(arg_2))] = v_2;
+}
+
+void fragment_main() {
+  textureStore_30b0b0();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  textureStore_30b0b0();
+}
+
diff --git a/test/tint/builtins/gen/var/textureStore/30b0b0.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/textureStore/30b0b0.wgsl.expected.ir.fxc.hlsl
index 685a9ee..d3c5a68 100644
--- a/test/tint/builtins/gen/var/textureStore/30b0b0.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureStore/30b0b0.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,21 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWTexture2DArray<int4> arg_0 : register(u0, space1);
+void textureStore_30b0b0() {
+  int2 arg_1 = (1).xx;
+  uint arg_2 = 1u;
+  int4 arg_3 = (1).xxxx;
+  RWTexture2DArray<int4> v = arg_0;
+  int2 v_1 = arg_1;
+  int4 v_2 = arg_3;
+  v[int3(v_1, int(arg_2))] = v_2;
+}
+
+void fragment_main() {
+  textureStore_30b0b0();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  textureStore_30b0b0();
+}
+
diff --git a/test/tint/builtins/gen/var/textureStore/312f27.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/textureStore/312f27.wgsl.expected.ir.dxc.hlsl
index 685a9ee..f2edca4 100644
--- a/test/tint/builtins/gen/var/textureStore/312f27.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureStore/312f27.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,21 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWTexture2DArray<float4> arg_0 : register(u0, space1);
+void textureStore_312f27() {
+  int2 arg_1 = (1).xx;
+  uint arg_2 = 1u;
+  float4 arg_3 = (1.0f).xxxx;
+  RWTexture2DArray<float4> v = arg_0;
+  int2 v_1 = arg_1;
+  float4 v_2 = arg_3;
+  v[int3(v_1, int(arg_2))] = v_2;
+}
+
+void fragment_main() {
+  textureStore_312f27();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  textureStore_312f27();
+}
+
diff --git a/test/tint/builtins/gen/var/textureStore/312f27.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/textureStore/312f27.wgsl.expected.ir.fxc.hlsl
index 685a9ee..f2edca4 100644
--- a/test/tint/builtins/gen/var/textureStore/312f27.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureStore/312f27.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,21 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWTexture2DArray<float4> arg_0 : register(u0, space1);
+void textureStore_312f27() {
+  int2 arg_1 = (1).xx;
+  uint arg_2 = 1u;
+  float4 arg_3 = (1.0f).xxxx;
+  RWTexture2DArray<float4> v = arg_0;
+  int2 v_1 = arg_1;
+  float4 v_2 = arg_3;
+  v[int3(v_1, int(arg_2))] = v_2;
+}
+
+void fragment_main() {
+  textureStore_312f27();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  textureStore_312f27();
+}
+
diff --git a/test/tint/builtins/gen/var/textureStore/31745b.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/textureStore/31745b.wgsl.expected.ir.dxc.hlsl
index 685a9ee..ca702f3 100644
--- a/test/tint/builtins/gen/var/textureStore/31745b.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureStore/31745b.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,17 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWTexture2D<int4> arg_0 : register(u0, space1);
+void textureStore_31745b() {
+  int2 arg_1 = (1).xx;
+  int4 arg_2 = (1).xxxx;
+  arg_0[arg_1] = arg_2;
+}
+
+void fragment_main() {
+  textureStore_31745b();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  textureStore_31745b();
+}
+
diff --git a/test/tint/builtins/gen/var/textureStore/31745b.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/textureStore/31745b.wgsl.expected.ir.fxc.hlsl
index 685a9ee..ca702f3 100644
--- a/test/tint/builtins/gen/var/textureStore/31745b.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureStore/31745b.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,17 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWTexture2D<int4> arg_0 : register(u0, space1);
+void textureStore_31745b() {
+  int2 arg_1 = (1).xx;
+  int4 arg_2 = (1).xxxx;
+  arg_0[arg_1] = arg_2;
+}
+
+void fragment_main() {
+  textureStore_31745b();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  textureStore_31745b();
+}
+
diff --git a/test/tint/builtins/gen/var/textureStore/319029.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/textureStore/319029.wgsl.expected.ir.dxc.hlsl
index 685a9ee..3aabed5 100644
--- a/test/tint/builtins/gen/var/textureStore/319029.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureStore/319029.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,21 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWTexture2DArray<float4> arg_0 : register(u0, space1);
+void textureStore_319029() {
+  int2 arg_1 = (1).xx;
+  int arg_2 = 1;
+  float4 arg_3 = (1.0f).xxxx;
+  RWTexture2DArray<float4> v = arg_0;
+  int2 v_1 = arg_1;
+  float4 v_2 = arg_3;
+  v[int3(v_1, int(arg_2))] = v_2;
+}
+
+void fragment_main() {
+  textureStore_319029();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  textureStore_319029();
+}
+
diff --git a/test/tint/builtins/gen/var/textureStore/319029.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/textureStore/319029.wgsl.expected.ir.fxc.hlsl
index 685a9ee..3aabed5 100644
--- a/test/tint/builtins/gen/var/textureStore/319029.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureStore/319029.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,21 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWTexture2DArray<float4> arg_0 : register(u0, space1);
+void textureStore_319029() {
+  int2 arg_1 = (1).xx;
+  int arg_2 = 1;
+  float4 arg_3 = (1.0f).xxxx;
+  RWTexture2DArray<float4> v = arg_0;
+  int2 v_1 = arg_1;
+  float4 v_2 = arg_3;
+  v[int3(v_1, int(arg_2))] = v_2;
+}
+
+void fragment_main() {
+  textureStore_319029();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  textureStore_319029();
+}
+
diff --git a/test/tint/builtins/gen/var/textureStore/32d3d6.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/textureStore/32d3d6.wgsl.expected.ir.dxc.hlsl
index 685a9ee..35209fb 100644
--- a/test/tint/builtins/gen/var/textureStore/32d3d6.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureStore/32d3d6.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,17 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWTexture1D<uint4> arg_0 : register(u0, space1);
+void textureStore_32d3d6() {
+  uint arg_1 = 1u;
+  uint4 arg_2 = (1u).xxxx;
+  arg_0[arg_1] = arg_2;
+}
+
+void fragment_main() {
+  textureStore_32d3d6();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  textureStore_32d3d6();
+}
+
diff --git a/test/tint/builtins/gen/var/textureStore/32d3d6.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/textureStore/32d3d6.wgsl.expected.ir.fxc.hlsl
index 685a9ee..35209fb 100644
--- a/test/tint/builtins/gen/var/textureStore/32d3d6.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureStore/32d3d6.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,17 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWTexture1D<uint4> arg_0 : register(u0, space1);
+void textureStore_32d3d6() {
+  uint arg_1 = 1u;
+  uint4 arg_2 = (1u).xxxx;
+  arg_0[arg_1] = arg_2;
+}
+
+void fragment_main() {
+  textureStore_32d3d6();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  textureStore_32d3d6();
+}
+
diff --git a/test/tint/builtins/gen/var/textureStore/32f368.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/textureStore/32f368.wgsl.expected.ir.dxc.hlsl
index 685a9ee..d1aea12 100644
--- a/test/tint/builtins/gen/var/textureStore/32f368.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureStore/32f368.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,21 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWTexture2DArray<float4> arg_0 : register(u0, space1);
+void textureStore_32f368() {
+  int2 arg_1 = (1).xx;
+  int arg_2 = 1;
+  float4 arg_3 = (1.0f).xxxx;
+  RWTexture2DArray<float4> v = arg_0;
+  int2 v_1 = arg_1;
+  float4 v_2 = arg_3;
+  v[int3(v_1, int(arg_2))] = v_2;
+}
+
+void fragment_main() {
+  textureStore_32f368();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  textureStore_32f368();
+}
+
diff --git a/test/tint/builtins/gen/var/textureStore/32f368.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/textureStore/32f368.wgsl.expected.ir.fxc.hlsl
index 685a9ee..d1aea12 100644
--- a/test/tint/builtins/gen/var/textureStore/32f368.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureStore/32f368.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,21 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWTexture2DArray<float4> arg_0 : register(u0, space1);
+void textureStore_32f368() {
+  int2 arg_1 = (1).xx;
+  int arg_2 = 1;
+  float4 arg_3 = (1.0f).xxxx;
+  RWTexture2DArray<float4> v = arg_0;
+  int2 v_1 = arg_1;
+  float4 v_2 = arg_3;
+  v[int3(v_1, int(arg_2))] = v_2;
+}
+
+void fragment_main() {
+  textureStore_32f368();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  textureStore_32f368();
+}
+
diff --git a/test/tint/builtins/gen/var/textureStore/330b7c.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/textureStore/330b7c.wgsl.expected.ir.dxc.hlsl
index 685a9ee..1141664 100644
--- a/test/tint/builtins/gen/var/textureStore/330b7c.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureStore/330b7c.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,21 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWTexture2DArray<float4> arg_0 : register(u0, space1);
+void textureStore_330b7c() {
+  uint2 arg_1 = (1u).xx;
+  uint arg_2 = 1u;
+  float4 arg_3 = (1.0f).xxxx;
+  RWTexture2DArray<float4> v = arg_0;
+  uint2 v_1 = arg_1;
+  float4 v_2 = arg_3;
+  v[uint3(v_1, uint(arg_2))] = v_2;
+}
+
+void fragment_main() {
+  textureStore_330b7c();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  textureStore_330b7c();
+}
+
diff --git a/test/tint/builtins/gen/var/textureStore/330b7c.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/textureStore/330b7c.wgsl.expected.ir.fxc.hlsl
index 685a9ee..1141664 100644
--- a/test/tint/builtins/gen/var/textureStore/330b7c.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureStore/330b7c.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,21 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWTexture2DArray<float4> arg_0 : register(u0, space1);
+void textureStore_330b7c() {
+  uint2 arg_1 = (1u).xx;
+  uint arg_2 = 1u;
+  float4 arg_3 = (1.0f).xxxx;
+  RWTexture2DArray<float4> v = arg_0;
+  uint2 v_1 = arg_1;
+  float4 v_2 = arg_3;
+  v[uint3(v_1, uint(arg_2))] = v_2;
+}
+
+void fragment_main() {
+  textureStore_330b7c();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  textureStore_330b7c();
+}
+
diff --git a/test/tint/builtins/gen/var/textureStore/3310d3.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/textureStore/3310d3.wgsl.expected.ir.dxc.hlsl
index 685a9ee..323c5a7 100644
--- a/test/tint/builtins/gen/var/textureStore/3310d3.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureStore/3310d3.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,21 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWTexture2DArray<float4> arg_0 : register(u0, space1);
+void textureStore_3310d3() {
+  int2 arg_1 = (1).xx;
+  int arg_2 = 1;
+  float4 arg_3 = (1.0f).xxxx;
+  RWTexture2DArray<float4> v = arg_0;
+  int2 v_1 = arg_1;
+  float4 v_2 = arg_3;
+  v[int3(v_1, int(arg_2))] = v_2;
+}
+
+void fragment_main() {
+  textureStore_3310d3();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  textureStore_3310d3();
+}
+
diff --git a/test/tint/builtins/gen/var/textureStore/3310d3.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/textureStore/3310d3.wgsl.expected.ir.fxc.hlsl
index 685a9ee..323c5a7 100644
--- a/test/tint/builtins/gen/var/textureStore/3310d3.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureStore/3310d3.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,21 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWTexture2DArray<float4> arg_0 : register(u0, space1);
+void textureStore_3310d3() {
+  int2 arg_1 = (1).xx;
+  int arg_2 = 1;
+  float4 arg_3 = (1.0f).xxxx;
+  RWTexture2DArray<float4> v = arg_0;
+  int2 v_1 = arg_1;
+  float4 v_2 = arg_3;
+  v[int3(v_1, int(arg_2))] = v_2;
+}
+
+void fragment_main() {
+  textureStore_3310d3();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  textureStore_3310d3();
+}
+
diff --git a/test/tint/builtins/gen/var/textureStore/331aee.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/textureStore/331aee.wgsl.expected.ir.dxc.hlsl
index 685a9ee..ec4d7a1 100644
--- a/test/tint/builtins/gen/var/textureStore/331aee.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureStore/331aee.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,17 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWTexture3D<float4> arg_0 : register(u0, space1);
+void textureStore_331aee() {
+  int3 arg_1 = (1).xxx;
+  float4 arg_2 = (1.0f).xxxx;
+  arg_0[arg_1] = arg_2;
+}
+
+void fragment_main() {
+  textureStore_331aee();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  textureStore_331aee();
+}
+
diff --git a/test/tint/builtins/gen/var/textureStore/331aee.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/textureStore/331aee.wgsl.expected.ir.fxc.hlsl
index 685a9ee..ec4d7a1 100644
--- a/test/tint/builtins/gen/var/textureStore/331aee.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureStore/331aee.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,17 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWTexture3D<float4> arg_0 : register(u0, space1);
+void textureStore_331aee() {
+  int3 arg_1 = (1).xxx;
+  float4 arg_2 = (1.0f).xxxx;
+  arg_0[arg_1] = arg_2;
+}
+
+void fragment_main() {
+  textureStore_331aee();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  textureStore_331aee();
+}
+
diff --git a/test/tint/builtins/gen/var/textureStore/33cec0.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/textureStore/33cec0.wgsl.expected.ir.dxc.hlsl
index 685a9ee..8164653 100644
--- a/test/tint/builtins/gen/var/textureStore/33cec0.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureStore/33cec0.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,21 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWTexture2DArray<uint4> arg_0 : register(u0, space1);
+void textureStore_33cec0() {
+  uint2 arg_1 = (1u).xx;
+  int arg_2 = 1;
+  uint4 arg_3 = (1u).xxxx;
+  RWTexture2DArray<uint4> v = arg_0;
+  uint2 v_1 = arg_1;
+  uint4 v_2 = arg_3;
+  v[uint3(v_1, uint(arg_2))] = v_2;
+}
+
+void fragment_main() {
+  textureStore_33cec0();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  textureStore_33cec0();
+}
+
diff --git a/test/tint/builtins/gen/var/textureStore/33cec0.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/textureStore/33cec0.wgsl.expected.ir.fxc.hlsl
index 685a9ee..8164653 100644
--- a/test/tint/builtins/gen/var/textureStore/33cec0.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureStore/33cec0.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,21 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWTexture2DArray<uint4> arg_0 : register(u0, space1);
+void textureStore_33cec0() {
+  uint2 arg_1 = (1u).xx;
+  int arg_2 = 1;
+  uint4 arg_3 = (1u).xxxx;
+  RWTexture2DArray<uint4> v = arg_0;
+  uint2 v_1 = arg_1;
+  uint4 v_2 = arg_3;
+  v[uint3(v_1, uint(arg_2))] = v_2;
+}
+
+void fragment_main() {
+  textureStore_33cec0();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  textureStore_33cec0();
+}
+
diff --git a/test/tint/builtins/gen/var/textureStore/345332.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/textureStore/345332.wgsl.expected.ir.dxc.hlsl
index 685a9ee..60a63d2 100644
--- a/test/tint/builtins/gen/var/textureStore/345332.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureStore/345332.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,17 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWTexture2D<uint4> arg_0 : register(u0, space1);
+void textureStore_345332() {
+  uint2 arg_1 = (1u).xx;
+  uint4 arg_2 = (1u).xxxx;
+  arg_0[arg_1] = arg_2;
+}
+
+void fragment_main() {
+  textureStore_345332();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  textureStore_345332();
+}
+
diff --git a/test/tint/builtins/gen/var/textureStore/345332.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/textureStore/345332.wgsl.expected.ir.fxc.hlsl
index 685a9ee..60a63d2 100644
--- a/test/tint/builtins/gen/var/textureStore/345332.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureStore/345332.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,17 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWTexture2D<uint4> arg_0 : register(u0, space1);
+void textureStore_345332() {
+  uint2 arg_1 = (1u).xx;
+  uint4 arg_2 = (1u).xxxx;
+  arg_0[arg_1] = arg_2;
+}
+
+void fragment_main() {
+  textureStore_345332();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  textureStore_345332();
+}
+
diff --git a/test/tint/builtins/gen/var/textureStore/37eeef.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/textureStore/37eeef.wgsl.expected.ir.dxc.hlsl
index 685a9ee..2e4a93a 100644
--- a/test/tint/builtins/gen/var/textureStore/37eeef.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureStore/37eeef.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,21 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWTexture2DArray<float4> arg_0 : register(u0, space1);
+void textureStore_37eeef() {
+  int2 arg_1 = (1).xx;
+  uint arg_2 = 1u;
+  float4 arg_3 = (1.0f).xxxx;
+  RWTexture2DArray<float4> v = arg_0;
+  int2 v_1 = arg_1;
+  float4 v_2 = arg_3;
+  v[int3(v_1, int(arg_2))] = v_2;
+}
+
+void fragment_main() {
+  textureStore_37eeef();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  textureStore_37eeef();
+}
+
diff --git a/test/tint/builtins/gen/var/textureStore/37eeef.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/textureStore/37eeef.wgsl.expected.ir.fxc.hlsl
index 685a9ee..2e4a93a 100644
--- a/test/tint/builtins/gen/var/textureStore/37eeef.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureStore/37eeef.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,21 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWTexture2DArray<float4> arg_0 : register(u0, space1);
+void textureStore_37eeef() {
+  int2 arg_1 = (1).xx;
+  uint arg_2 = 1u;
+  float4 arg_3 = (1.0f).xxxx;
+  RWTexture2DArray<float4> v = arg_0;
+  int2 v_1 = arg_1;
+  float4 v_2 = arg_3;
+  v[int3(v_1, int(arg_2))] = v_2;
+}
+
+void fragment_main() {
+  textureStore_37eeef();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  textureStore_37eeef();
+}
+
diff --git a/test/tint/builtins/gen/var/textureStore/37ffd4.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/textureStore/37ffd4.wgsl.expected.ir.dxc.hlsl
index 685a9ee..6bd2a6b 100644
--- a/test/tint/builtins/gen/var/textureStore/37ffd4.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureStore/37ffd4.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,21 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWTexture2DArray<float4> arg_0 : register(u0, space1);
+void textureStore_37ffd4() {
+  uint2 arg_1 = (1u).xx;
+  int arg_2 = 1;
+  float4 arg_3 = (1.0f).xxxx;
+  RWTexture2DArray<float4> v = arg_0;
+  uint2 v_1 = arg_1;
+  float4 v_2 = arg_3;
+  v[uint3(v_1, uint(arg_2))] = v_2;
+}
+
+void fragment_main() {
+  textureStore_37ffd4();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  textureStore_37ffd4();
+}
+
diff --git a/test/tint/builtins/gen/var/textureStore/37ffd4.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/textureStore/37ffd4.wgsl.expected.ir.fxc.hlsl
index 685a9ee..6bd2a6b 100644
--- a/test/tint/builtins/gen/var/textureStore/37ffd4.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureStore/37ffd4.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,21 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWTexture2DArray<float4> arg_0 : register(u0, space1);
+void textureStore_37ffd4() {
+  uint2 arg_1 = (1u).xx;
+  int arg_2 = 1;
+  float4 arg_3 = (1.0f).xxxx;
+  RWTexture2DArray<float4> v = arg_0;
+  uint2 v_1 = arg_1;
+  float4 v_2 = arg_3;
+  v[uint3(v_1, uint(arg_2))] = v_2;
+}
+
+void fragment_main() {
+  textureStore_37ffd4();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  textureStore_37ffd4();
+}
+
diff --git a/test/tint/builtins/gen/var/textureStore/38e8d7.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/textureStore/38e8d7.wgsl.expected.ir.dxc.hlsl
index 685a9ee..90c0a04 100644
--- a/test/tint/builtins/gen/var/textureStore/38e8d7.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureStore/38e8d7.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,21 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWTexture2DArray<uint4> arg_0 : register(u0, space1);
+void textureStore_38e8d7() {
+  int2 arg_1 = (1).xx;
+  int arg_2 = 1;
+  uint4 arg_3 = (1u).xxxx;
+  RWTexture2DArray<uint4> v = arg_0;
+  int2 v_1 = arg_1;
+  uint4 v_2 = arg_3;
+  v[int3(v_1, int(arg_2))] = v_2;
+}
+
+void fragment_main() {
+  textureStore_38e8d7();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  textureStore_38e8d7();
+}
+
diff --git a/test/tint/builtins/gen/var/textureStore/38e8d7.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/textureStore/38e8d7.wgsl.expected.ir.fxc.hlsl
index 685a9ee..90c0a04 100644
--- a/test/tint/builtins/gen/var/textureStore/38e8d7.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureStore/38e8d7.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,21 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWTexture2DArray<uint4> arg_0 : register(u0, space1);
+void textureStore_38e8d7() {
+  int2 arg_1 = (1).xx;
+  int arg_2 = 1;
+  uint4 arg_3 = (1u).xxxx;
+  RWTexture2DArray<uint4> v = arg_0;
+  int2 v_1 = arg_1;
+  uint4 v_2 = arg_3;
+  v[int3(v_1, int(arg_2))] = v_2;
+}
+
+void fragment_main() {
+  textureStore_38e8d7();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  textureStore_38e8d7();
+}
+
diff --git a/test/tint/builtins/gen/var/textureStore/3a52ac.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/textureStore/3a52ac.wgsl.expected.ir.dxc.hlsl
index 685a9ee..f6bb500 100644
--- a/test/tint/builtins/gen/var/textureStore/3a52ac.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureStore/3a52ac.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,21 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWTexture2DArray<int4> arg_0 : register(u0, space1);
+void textureStore_3a52ac() {
+  int2 arg_1 = (1).xx;
+  int arg_2 = 1;
+  int4 arg_3 = (1).xxxx;
+  RWTexture2DArray<int4> v = arg_0;
+  int2 v_1 = arg_1;
+  int4 v_2 = arg_3;
+  v[int3(v_1, int(arg_2))] = v_2;
+}
+
+void fragment_main() {
+  textureStore_3a52ac();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  textureStore_3a52ac();
+}
+
diff --git a/test/tint/builtins/gen/var/textureStore/3a52ac.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/textureStore/3a52ac.wgsl.expected.ir.fxc.hlsl
index 685a9ee..f6bb500 100644
--- a/test/tint/builtins/gen/var/textureStore/3a52ac.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureStore/3a52ac.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,21 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWTexture2DArray<int4> arg_0 : register(u0, space1);
+void textureStore_3a52ac() {
+  int2 arg_1 = (1).xx;
+  int arg_2 = 1;
+  int4 arg_3 = (1).xxxx;
+  RWTexture2DArray<int4> v = arg_0;
+  int2 v_1 = arg_1;
+  int4 v_2 = arg_3;
+  v[int3(v_1, int(arg_2))] = v_2;
+}
+
+void fragment_main() {
+  textureStore_3a52ac();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  textureStore_3a52ac();
+}
+
diff --git a/test/tint/builtins/gen/var/textureStore/3bb7a1.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/textureStore/3bb7a1.wgsl.expected.ir.dxc.hlsl
index 685a9ee..261b6c5 100644
--- a/test/tint/builtins/gen/var/textureStore/3bb7a1.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureStore/3bb7a1.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,21 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWTexture2DArray<float4> arg_0 : register(u0, space1);
+void textureStore_3bb7a1() {
+  int2 arg_1 = (1).xx;
+  int arg_2 = 1;
+  float4 arg_3 = (1.0f).xxxx;
+  RWTexture2DArray<float4> v = arg_0;
+  int2 v_1 = arg_1;
+  float4 v_2 = arg_3;
+  v[int3(v_1, int(arg_2))] = v_2;
+}
+
+void fragment_main() {
+  textureStore_3bb7a1();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  textureStore_3bb7a1();
+}
+
diff --git a/test/tint/builtins/gen/var/textureStore/3bb7a1.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/textureStore/3bb7a1.wgsl.expected.ir.fxc.hlsl
index 685a9ee..261b6c5 100644
--- a/test/tint/builtins/gen/var/textureStore/3bb7a1.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureStore/3bb7a1.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,21 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWTexture2DArray<float4> arg_0 : register(u0, space1);
+void textureStore_3bb7a1() {
+  int2 arg_1 = (1).xx;
+  int arg_2 = 1;
+  float4 arg_3 = (1.0f).xxxx;
+  RWTexture2DArray<float4> v = arg_0;
+  int2 v_1 = arg_1;
+  float4 v_2 = arg_3;
+  v[int3(v_1, int(arg_2))] = v_2;
+}
+
+void fragment_main() {
+  textureStore_3bb7a1();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  textureStore_3bb7a1();
+}
+
diff --git a/test/tint/builtins/gen/var/textureStore/3bec15.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/textureStore/3bec15.wgsl.expected.ir.dxc.hlsl
index 685a9ee..4f150a9 100644
--- a/test/tint/builtins/gen/var/textureStore/3bec15.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureStore/3bec15.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,17 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWTexture1D<uint4> arg_0 : register(u0, space1);
+void textureStore_3bec15() {
+  int arg_1 = 1;
+  uint4 arg_2 = (1u).xxxx;
+  arg_0[arg_1] = arg_2;
+}
+
+void fragment_main() {
+  textureStore_3bec15();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  textureStore_3bec15();
+}
+
diff --git a/test/tint/builtins/gen/var/textureStore/3bec15.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/textureStore/3bec15.wgsl.expected.ir.fxc.hlsl
index 685a9ee..4f150a9 100644
--- a/test/tint/builtins/gen/var/textureStore/3bec15.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureStore/3bec15.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,17 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWTexture1D<uint4> arg_0 : register(u0, space1);
+void textureStore_3bec15() {
+  int arg_1 = 1;
+  uint4 arg_2 = (1u).xxxx;
+  arg_0[arg_1] = arg_2;
+}
+
+void fragment_main() {
+  textureStore_3bec15();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  textureStore_3bec15();
+}
+
diff --git a/test/tint/builtins/gen/var/textureStore/3c1937.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/textureStore/3c1937.wgsl.expected.ir.dxc.hlsl
index 685a9ee..8c7a751 100644
--- a/test/tint/builtins/gen/var/textureStore/3c1937.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureStore/3c1937.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,17 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWTexture1D<uint4> arg_0 : register(u0, space1);
+void textureStore_3c1937() {
+  uint arg_1 = 1u;
+  uint4 arg_2 = (1u).xxxx;
+  arg_0[arg_1] = arg_2;
+}
+
+void fragment_main() {
+  textureStore_3c1937();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  textureStore_3c1937();
+}
+
diff --git a/test/tint/builtins/gen/var/textureStore/3c1937.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/textureStore/3c1937.wgsl.expected.ir.fxc.hlsl
index 685a9ee..8c7a751 100644
--- a/test/tint/builtins/gen/var/textureStore/3c1937.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureStore/3c1937.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,17 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWTexture1D<uint4> arg_0 : register(u0, space1);
+void textureStore_3c1937() {
+  uint arg_1 = 1u;
+  uint4 arg_2 = (1u).xxxx;
+  arg_0[arg_1] = arg_2;
+}
+
+void fragment_main() {
+  textureStore_3c1937();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  textureStore_3c1937();
+}
+
diff --git a/test/tint/builtins/gen/var/textureStore/3d1ebe.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/textureStore/3d1ebe.wgsl.expected.ir.dxc.hlsl
index 685a9ee..34a0f21 100644
--- a/test/tint/builtins/gen/var/textureStore/3d1ebe.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureStore/3d1ebe.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,17 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWTexture2D<float4> arg_0 : register(u0, space1);
+void textureStore_3d1ebe() {
+  uint2 arg_1 = (1u).xx;
+  float4 arg_2 = (1.0f).xxxx;
+  arg_0[arg_1] = arg_2;
+}
+
+void fragment_main() {
+  textureStore_3d1ebe();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  textureStore_3d1ebe();
+}
+
diff --git a/test/tint/builtins/gen/var/textureStore/3d1ebe.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/textureStore/3d1ebe.wgsl.expected.ir.fxc.hlsl
index 685a9ee..34a0f21 100644
--- a/test/tint/builtins/gen/var/textureStore/3d1ebe.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureStore/3d1ebe.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,17 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWTexture2D<float4> arg_0 : register(u0, space1);
+void textureStore_3d1ebe() {
+  uint2 arg_1 = (1u).xx;
+  float4 arg_2 = (1.0f).xxxx;
+  arg_0[arg_1] = arg_2;
+}
+
+void fragment_main() {
+  textureStore_3d1ebe();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  textureStore_3d1ebe();
+}
+
diff --git a/test/tint/builtins/gen/var/textureStore/3d6f01.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/textureStore/3d6f01.wgsl.expected.ir.dxc.hlsl
index 685a9ee..7a04ee0 100644
--- a/test/tint/builtins/gen/var/textureStore/3d6f01.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureStore/3d6f01.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,17 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWTexture1D<int4> arg_0 : register(u0, space1);
+void textureStore_3d6f01() {
+  uint arg_1 = 1u;
+  int4 arg_2 = (1).xxxx;
+  arg_0[arg_1] = arg_2;
+}
+
+void fragment_main() {
+  textureStore_3d6f01();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  textureStore_3d6f01();
+}
+
diff --git a/test/tint/builtins/gen/var/textureStore/3d6f01.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/textureStore/3d6f01.wgsl.expected.ir.fxc.hlsl
index 685a9ee..7a04ee0 100644
--- a/test/tint/builtins/gen/var/textureStore/3d6f01.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureStore/3d6f01.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,17 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWTexture1D<int4> arg_0 : register(u0, space1);
+void textureStore_3d6f01() {
+  uint arg_1 = 1u;
+  int4 arg_2 = (1).xxxx;
+  arg_0[arg_1] = arg_2;
+}
+
+void fragment_main() {
+  textureStore_3d6f01();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  textureStore_3d6f01();
+}
+
diff --git a/test/tint/builtins/gen/var/textureStore/3d96a4.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/textureStore/3d96a4.wgsl.expected.ir.dxc.hlsl
index 685a9ee..3f10425 100644
--- a/test/tint/builtins/gen/var/textureStore/3d96a4.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureStore/3d96a4.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,17 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWTexture3D<int4> arg_0 : register(u0, space1);
+void textureStore_3d96a4() {
+  uint3 arg_1 = (1u).xxx;
+  int4 arg_2 = (1).xxxx;
+  arg_0[arg_1] = arg_2;
+}
+
+void fragment_main() {
+  textureStore_3d96a4();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  textureStore_3d96a4();
+}
+
diff --git a/test/tint/builtins/gen/var/textureStore/3d96a4.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/textureStore/3d96a4.wgsl.expected.ir.fxc.hlsl
index 685a9ee..3f10425 100644
--- a/test/tint/builtins/gen/var/textureStore/3d96a4.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureStore/3d96a4.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,17 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWTexture3D<int4> arg_0 : register(u0, space1);
+void textureStore_3d96a4() {
+  uint3 arg_1 = (1u).xxx;
+  int4 arg_2 = (1).xxxx;
+  arg_0[arg_1] = arg_2;
+}
+
+void fragment_main() {
+  textureStore_3d96a4();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  textureStore_3d96a4();
+}
+
diff --git a/test/tint/builtins/gen/var/textureStore/3e0dc4.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/textureStore/3e0dc4.wgsl.expected.ir.dxc.hlsl
index 685a9ee..ede3083 100644
--- a/test/tint/builtins/gen/var/textureStore/3e0dc4.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureStore/3e0dc4.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,21 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWTexture2DArray<float4> arg_0 : register(u0, space1);
+void textureStore_3e0dc4() {
+  int2 arg_1 = (1).xx;
+  uint arg_2 = 1u;
+  float4 arg_3 = (1.0f).xxxx;
+  RWTexture2DArray<float4> v = arg_0;
+  int2 v_1 = arg_1;
+  float4 v_2 = arg_3;
+  v[int3(v_1, int(arg_2))] = v_2;
+}
+
+void fragment_main() {
+  textureStore_3e0dc4();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  textureStore_3e0dc4();
+}
+
diff --git a/test/tint/builtins/gen/var/textureStore/3e0dc4.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/textureStore/3e0dc4.wgsl.expected.ir.fxc.hlsl
index 685a9ee..ede3083 100644
--- a/test/tint/builtins/gen/var/textureStore/3e0dc4.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureStore/3e0dc4.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,21 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWTexture2DArray<float4> arg_0 : register(u0, space1);
+void textureStore_3e0dc4() {
+  int2 arg_1 = (1).xx;
+  uint arg_2 = 1u;
+  float4 arg_3 = (1.0f).xxxx;
+  RWTexture2DArray<float4> v = arg_0;
+  int2 v_1 = arg_1;
+  float4 v_2 = arg_3;
+  v[int3(v_1, int(arg_2))] = v_2;
+}
+
+void fragment_main() {
+  textureStore_3e0dc4();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  textureStore_3e0dc4();
+}
+
diff --git a/test/tint/builtins/gen/var/textureStore/3f61ca.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/textureStore/3f61ca.wgsl.expected.ir.dxc.hlsl
index 685a9ee..71e85bf 100644
--- a/test/tint/builtins/gen/var/textureStore/3f61ca.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureStore/3f61ca.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,17 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWTexture3D<float4> arg_0 : register(u0, space1);
+void textureStore_3f61ca() {
+  int3 arg_1 = (1).xxx;
+  float4 arg_2 = (1.0f).xxxx;
+  arg_0[arg_1] = arg_2;
+}
+
+void fragment_main() {
+  textureStore_3f61ca();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  textureStore_3f61ca();
+}
+
diff --git a/test/tint/builtins/gen/var/textureStore/3f61ca.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/textureStore/3f61ca.wgsl.expected.ir.fxc.hlsl
index 685a9ee..71e85bf 100644
--- a/test/tint/builtins/gen/var/textureStore/3f61ca.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureStore/3f61ca.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,17 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWTexture3D<float4> arg_0 : register(u0, space1);
+void textureStore_3f61ca() {
+  int3 arg_1 = (1).xxx;
+  float4 arg_2 = (1.0f).xxxx;
+  arg_0[arg_1] = arg_2;
+}
+
+void fragment_main() {
+  textureStore_3f61ca();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  textureStore_3f61ca();
+}
+
diff --git a/test/tint/builtins/gen/var/textureStore/3fb31f.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/textureStore/3fb31f.wgsl.expected.ir.dxc.hlsl
index 685a9ee..7df120a 100644
--- a/test/tint/builtins/gen/var/textureStore/3fb31f.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureStore/3fb31f.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,17 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWTexture3D<uint4> arg_0 : register(u0, space1);
+void textureStore_3fb31f() {
+  uint3 arg_1 = (1u).xxx;
+  uint4 arg_2 = (1u).xxxx;
+  arg_0[arg_1] = arg_2;
+}
+
+void fragment_main() {
+  textureStore_3fb31f();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  textureStore_3fb31f();
+}
+
diff --git a/test/tint/builtins/gen/var/textureStore/3fb31f.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/textureStore/3fb31f.wgsl.expected.ir.fxc.hlsl
index 685a9ee..7df120a 100644
--- a/test/tint/builtins/gen/var/textureStore/3fb31f.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureStore/3fb31f.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,17 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWTexture3D<uint4> arg_0 : register(u0, space1);
+void textureStore_3fb31f() {
+  uint3 arg_1 = (1u).xxx;
+  uint4 arg_2 = (1u).xxxx;
+  arg_0[arg_1] = arg_2;
+}
+
+void fragment_main() {
+  textureStore_3fb31f();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  textureStore_3fb31f();
+}
+
diff --git a/test/tint/builtins/gen/var/textureStore/40c455.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/textureStore/40c455.wgsl.expected.ir.dxc.hlsl
index 685a9ee..adf2173 100644
--- a/test/tint/builtins/gen/var/textureStore/40c455.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureStore/40c455.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,17 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWTexture2D<float4> arg_0 : register(u0, space1);
+void textureStore_40c455() {
+  uint2 arg_1 = (1u).xx;
+  float4 arg_2 = (1.0f).xxxx;
+  arg_0[arg_1] = arg_2;
+}
+
+void fragment_main() {
+  textureStore_40c455();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  textureStore_40c455();
+}
+
diff --git a/test/tint/builtins/gen/var/textureStore/40c455.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/textureStore/40c455.wgsl.expected.ir.fxc.hlsl
index 685a9ee..adf2173 100644
--- a/test/tint/builtins/gen/var/textureStore/40c455.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureStore/40c455.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,17 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWTexture2D<float4> arg_0 : register(u0, space1);
+void textureStore_40c455() {
+  uint2 arg_1 = (1u).xx;
+  float4 arg_2 = (1.0f).xxxx;
+  arg_0[arg_1] = arg_2;
+}
+
+void fragment_main() {
+  textureStore_40c455();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  textureStore_40c455();
+}
+
diff --git a/test/tint/builtins/gen/var/textureStore/4288fc.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/textureStore/4288fc.wgsl.expected.ir.dxc.hlsl
index 685a9ee..32a2c20 100644
--- a/test/tint/builtins/gen/var/textureStore/4288fc.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureStore/4288fc.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,17 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWTexture3D<float4> arg_0 : register(u0, space1);
+void textureStore_4288fc() {
+  uint3 arg_1 = (1u).xxx;
+  float4 arg_2 = (1.0f).xxxx;
+  arg_0[arg_1] = arg_2;
+}
+
+void fragment_main() {
+  textureStore_4288fc();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  textureStore_4288fc();
+}
+
diff --git a/test/tint/builtins/gen/var/textureStore/4288fc.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/textureStore/4288fc.wgsl.expected.ir.fxc.hlsl
index 685a9ee..32a2c20 100644
--- a/test/tint/builtins/gen/var/textureStore/4288fc.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureStore/4288fc.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,17 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWTexture3D<float4> arg_0 : register(u0, space1);
+void textureStore_4288fc() {
+  uint3 arg_1 = (1u).xxx;
+  float4 arg_2 = (1.0f).xxxx;
+  arg_0[arg_1] = arg_2;
+}
+
+void fragment_main() {
+  textureStore_4288fc();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  textureStore_4288fc();
+}
+
diff --git a/test/tint/builtins/gen/var/textureStore/43d1df.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/textureStore/43d1df.wgsl.expected.ir.dxc.hlsl
index 685a9ee..4ac574c 100644
--- a/test/tint/builtins/gen/var/textureStore/43d1df.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureStore/43d1df.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,21 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWTexture2DArray<float4> arg_0 : register(u0, space1);
+void textureStore_43d1df() {
+  int2 arg_1 = (1).xx;
+  int arg_2 = 1;
+  float4 arg_3 = (1.0f).xxxx;
+  RWTexture2DArray<float4> v = arg_0;
+  int2 v_1 = arg_1;
+  float4 v_2 = arg_3;
+  v[int3(v_1, int(arg_2))] = v_2;
+}
+
+void fragment_main() {
+  textureStore_43d1df();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  textureStore_43d1df();
+}
+
diff --git a/test/tint/builtins/gen/var/textureStore/43d1df.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/textureStore/43d1df.wgsl.expected.ir.fxc.hlsl
index 685a9ee..4ac574c 100644
--- a/test/tint/builtins/gen/var/textureStore/43d1df.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureStore/43d1df.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,21 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWTexture2DArray<float4> arg_0 : register(u0, space1);
+void textureStore_43d1df() {
+  int2 arg_1 = (1).xx;
+  int arg_2 = 1;
+  float4 arg_3 = (1.0f).xxxx;
+  RWTexture2DArray<float4> v = arg_0;
+  int2 v_1 = arg_1;
+  float4 v_2 = arg_3;
+  v[int3(v_1, int(arg_2))] = v_2;
+}
+
+void fragment_main() {
+  textureStore_43d1df();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  textureStore_43d1df();
+}
+
diff --git a/test/tint/builtins/gen/var/textureStore/441222.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/textureStore/441222.wgsl.expected.ir.dxc.hlsl
index 685a9ee..c2e1335 100644
--- a/test/tint/builtins/gen/var/textureStore/441222.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureStore/441222.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,17 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWTexture2D<int4> arg_0 : register(u0, space1);
+void textureStore_441222() {
+  uint2 arg_1 = (1u).xx;
+  int4 arg_2 = (1).xxxx;
+  arg_0[arg_1] = arg_2;
+}
+
+void fragment_main() {
+  textureStore_441222();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  textureStore_441222();
+}
+
diff --git a/test/tint/builtins/gen/var/textureStore/441222.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/textureStore/441222.wgsl.expected.ir.fxc.hlsl
index 685a9ee..c2e1335 100644
--- a/test/tint/builtins/gen/var/textureStore/441222.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureStore/441222.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,17 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWTexture2D<int4> arg_0 : register(u0, space1);
+void textureStore_441222() {
+  uint2 arg_1 = (1u).xx;
+  int4 arg_2 = (1).xxxx;
+  arg_0[arg_1] = arg_2;
+}
+
+void fragment_main() {
+  textureStore_441222();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  textureStore_441222();
+}
+
diff --git a/test/tint/builtins/gen/var/textureStore/441ba8.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/textureStore/441ba8.wgsl.expected.ir.dxc.hlsl
index 685a9ee..c26bf68 100644
--- a/test/tint/builtins/gen/var/textureStore/441ba8.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureStore/441ba8.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,17 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWTexture3D<uint4> arg_0 : register(u0, space1);
+void textureStore_441ba8() {
+  int3 arg_1 = (1).xxx;
+  uint4 arg_2 = (1u).xxxx;
+  arg_0[arg_1] = arg_2;
+}
+
+void fragment_main() {
+  textureStore_441ba8();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  textureStore_441ba8();
+}
+
diff --git a/test/tint/builtins/gen/var/textureStore/441ba8.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/textureStore/441ba8.wgsl.expected.ir.fxc.hlsl
index 685a9ee..c26bf68 100644
--- a/test/tint/builtins/gen/var/textureStore/441ba8.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureStore/441ba8.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,17 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWTexture3D<uint4> arg_0 : register(u0, space1);
+void textureStore_441ba8() {
+  int3 arg_1 = (1).xxx;
+  uint4 arg_2 = (1u).xxxx;
+  arg_0[arg_1] = arg_2;
+}
+
+void fragment_main() {
+  textureStore_441ba8();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  textureStore_441ba8();
+}
+
diff --git a/test/tint/builtins/gen/var/textureStore/4483e7.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/textureStore/4483e7.wgsl.expected.ir.dxc.hlsl
index 685a9ee..5034e14 100644
--- a/test/tint/builtins/gen/var/textureStore/4483e7.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureStore/4483e7.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,17 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWTexture1D<int4> arg_0 : register(u0, space1);
+void textureStore_4483e7() {
+  uint arg_1 = 1u;
+  int4 arg_2 = (1).xxxx;
+  arg_0[arg_1] = arg_2;
+}
+
+void fragment_main() {
+  textureStore_4483e7();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  textureStore_4483e7();
+}
+
diff --git a/test/tint/builtins/gen/var/textureStore/4483e7.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/textureStore/4483e7.wgsl.expected.ir.fxc.hlsl
index 685a9ee..5034e14 100644
--- a/test/tint/builtins/gen/var/textureStore/4483e7.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureStore/4483e7.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,17 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWTexture1D<int4> arg_0 : register(u0, space1);
+void textureStore_4483e7() {
+  uint arg_1 = 1u;
+  int4 arg_2 = (1).xxxx;
+  arg_0[arg_1] = arg_2;
+}
+
+void fragment_main() {
+  textureStore_4483e7();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  textureStore_4483e7();
+}
+
diff --git a/test/tint/builtins/gen/var/textureStore/44b372.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/textureStore/44b372.wgsl.expected.ir.dxc.hlsl
index 685a9ee..7092246 100644
--- a/test/tint/builtins/gen/var/textureStore/44b372.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureStore/44b372.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,17 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWTexture2D<int4> arg_0 : register(u0, space1);
+void textureStore_44b372() {
+  int2 arg_1 = (1).xx;
+  int4 arg_2 = (1).xxxx;
+  arg_0[arg_1] = arg_2;
+}
+
+void fragment_main() {
+  textureStore_44b372();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  textureStore_44b372();
+}
+
diff --git a/test/tint/builtins/gen/var/textureStore/44b372.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/textureStore/44b372.wgsl.expected.ir.fxc.hlsl
index 685a9ee..7092246 100644
--- a/test/tint/builtins/gen/var/textureStore/44b372.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureStore/44b372.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,17 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWTexture2D<int4> arg_0 : register(u0, space1);
+void textureStore_44b372() {
+  int2 arg_1 = (1).xx;
+  int4 arg_2 = (1).xxxx;
+  arg_0[arg_1] = arg_2;
+}
+
+void fragment_main() {
+  textureStore_44b372();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  textureStore_44b372();
+}
+
diff --git a/test/tint/builtins/gen/var/textureStore/44daa7.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/textureStore/44daa7.wgsl.expected.ir.dxc.hlsl
index 685a9ee..e94bbbf 100644
--- a/test/tint/builtins/gen/var/textureStore/44daa7.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureStore/44daa7.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,21 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWTexture2DArray<float4> arg_0 : register(u0, space1);
+void textureStore_44daa7() {
+  int2 arg_1 = (1).xx;
+  uint arg_2 = 1u;
+  float4 arg_3 = (1.0f).xxxx;
+  RWTexture2DArray<float4> v = arg_0;
+  int2 v_1 = arg_1;
+  float4 v_2 = arg_3;
+  v[int3(v_1, int(arg_2))] = v_2;
+}
+
+void fragment_main() {
+  textureStore_44daa7();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  textureStore_44daa7();
+}
+
diff --git a/test/tint/builtins/gen/var/textureStore/44daa7.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/textureStore/44daa7.wgsl.expected.ir.fxc.hlsl
index 685a9ee..e94bbbf 100644
--- a/test/tint/builtins/gen/var/textureStore/44daa7.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureStore/44daa7.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,21 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWTexture2DArray<float4> arg_0 : register(u0, space1);
+void textureStore_44daa7() {
+  int2 arg_1 = (1).xx;
+  uint arg_2 = 1u;
+  float4 arg_3 = (1.0f).xxxx;
+  RWTexture2DArray<float4> v = arg_0;
+  int2 v_1 = arg_1;
+  float4 v_2 = arg_3;
+  v[int3(v_1, int(arg_2))] = v_2;
+}
+
+void fragment_main() {
+  textureStore_44daa7();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  textureStore_44daa7();
+}
+
diff --git a/test/tint/builtins/gen/var/textureStore/473ead.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/textureStore/473ead.wgsl.expected.ir.dxc.hlsl
index 685a9ee..029ffec 100644
--- a/test/tint/builtins/gen/var/textureStore/473ead.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureStore/473ead.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,17 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWTexture3D<uint4> arg_0 : register(u0, space1);
+void textureStore_473ead() {
+  uint3 arg_1 = (1u).xxx;
+  uint4 arg_2 = (1u).xxxx;
+  arg_0[arg_1] = arg_2;
+}
+
+void fragment_main() {
+  textureStore_473ead();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  textureStore_473ead();
+}
+
diff --git a/test/tint/builtins/gen/var/textureStore/473ead.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/textureStore/473ead.wgsl.expected.ir.fxc.hlsl
index 685a9ee..029ffec 100644
--- a/test/tint/builtins/gen/var/textureStore/473ead.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureStore/473ead.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,17 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWTexture3D<uint4> arg_0 : register(u0, space1);
+void textureStore_473ead() {
+  uint3 arg_1 = (1u).xxx;
+  uint4 arg_2 = (1u).xxxx;
+  arg_0[arg_1] = arg_2;
+}
+
+void fragment_main() {
+  textureStore_473ead();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  textureStore_473ead();
+}
+
diff --git a/test/tint/builtins/gen/var/textureStore/47bd70.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/textureStore/47bd70.wgsl.expected.ir.dxc.hlsl
index 685a9ee..f539310 100644
--- a/test/tint/builtins/gen/var/textureStore/47bd70.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureStore/47bd70.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,17 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWTexture2D<float4> arg_0 : register(u0, space1);
+void textureStore_47bd70() {
+  uint2 arg_1 = (1u).xx;
+  float4 arg_2 = (1.0f).xxxx;
+  arg_0[arg_1] = arg_2;
+}
+
+void fragment_main() {
+  textureStore_47bd70();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  textureStore_47bd70();
+}
+
diff --git a/test/tint/builtins/gen/var/textureStore/47bd70.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/textureStore/47bd70.wgsl.expected.ir.fxc.hlsl
index 685a9ee..f539310 100644
--- a/test/tint/builtins/gen/var/textureStore/47bd70.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureStore/47bd70.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,17 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWTexture2D<float4> arg_0 : register(u0, space1);
+void textureStore_47bd70() {
+  uint2 arg_1 = (1u).xx;
+  float4 arg_2 = (1.0f).xxxx;
+  arg_0[arg_1] = arg_2;
+}
+
+void fragment_main() {
+  textureStore_47bd70();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  textureStore_47bd70();
+}
+
diff --git a/test/tint/builtins/gen/var/textureStore/486500.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/textureStore/486500.wgsl.expected.ir.dxc.hlsl
index 685a9ee..0e7a9ea 100644
--- a/test/tint/builtins/gen/var/textureStore/486500.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureStore/486500.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,17 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWTexture3D<int4> arg_0 : register(u0, space1);
+void textureStore_486500() {
+  uint3 arg_1 = (1u).xxx;
+  int4 arg_2 = (1).xxxx;
+  arg_0[arg_1] = arg_2;
+}
+
+void fragment_main() {
+  textureStore_486500();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  textureStore_486500();
+}
+
diff --git a/test/tint/builtins/gen/var/textureStore/486500.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/textureStore/486500.wgsl.expected.ir.fxc.hlsl
index 685a9ee..0e7a9ea 100644
--- a/test/tint/builtins/gen/var/textureStore/486500.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureStore/486500.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,17 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWTexture3D<int4> arg_0 : register(u0, space1);
+void textureStore_486500() {
+  uint3 arg_1 = (1u).xxx;
+  int4 arg_2 = (1).xxxx;
+  arg_0[arg_1] = arg_2;
+}
+
+void fragment_main() {
+  textureStore_486500();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  textureStore_486500();
+}
+
diff --git a/test/tint/builtins/gen/var/textureStore/48cb56.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/textureStore/48cb56.wgsl.expected.ir.dxc.hlsl
index 685a9ee..07bf133 100644
--- a/test/tint/builtins/gen/var/textureStore/48cb56.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureStore/48cb56.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,21 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWTexture2DArray<int4> arg_0 : register(u0, space1);
+void textureStore_48cb56() {
+  uint2 arg_1 = (1u).xx;
+  uint arg_2 = 1u;
+  int4 arg_3 = (1).xxxx;
+  RWTexture2DArray<int4> v = arg_0;
+  uint2 v_1 = arg_1;
+  int4 v_2 = arg_3;
+  v[uint3(v_1, uint(arg_2))] = v_2;
+}
+
+void fragment_main() {
+  textureStore_48cb56();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  textureStore_48cb56();
+}
+
diff --git a/test/tint/builtins/gen/var/textureStore/48cb56.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/textureStore/48cb56.wgsl.expected.ir.fxc.hlsl
index 685a9ee..07bf133 100644
--- a/test/tint/builtins/gen/var/textureStore/48cb56.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureStore/48cb56.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,21 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWTexture2DArray<int4> arg_0 : register(u0, space1);
+void textureStore_48cb56() {
+  uint2 arg_1 = (1u).xx;
+  uint arg_2 = 1u;
+  int4 arg_3 = (1).xxxx;
+  RWTexture2DArray<int4> v = arg_0;
+  uint2 v_1 = arg_1;
+  int4 v_2 = arg_3;
+  v[uint3(v_1, uint(arg_2))] = v_2;
+}
+
+void fragment_main() {
+  textureStore_48cb56();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  textureStore_48cb56();
+}
+
diff --git a/test/tint/builtins/gen/var/textureStore/48eae1.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/textureStore/48eae1.wgsl.expected.ir.dxc.hlsl
index 685a9ee..df686df 100644
--- a/test/tint/builtins/gen/var/textureStore/48eae1.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureStore/48eae1.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,17 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWTexture2D<float4> arg_0 : register(u0, space1);
+void textureStore_48eae1() {
+  int2 arg_1 = (1).xx;
+  float4 arg_2 = (1.0f).xxxx;
+  arg_0[arg_1] = arg_2;
+}
+
+void fragment_main() {
+  textureStore_48eae1();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  textureStore_48eae1();
+}
+
diff --git a/test/tint/builtins/gen/var/textureStore/48eae1.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/textureStore/48eae1.wgsl.expected.ir.fxc.hlsl
index 685a9ee..df686df 100644
--- a/test/tint/builtins/gen/var/textureStore/48eae1.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureStore/48eae1.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,17 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWTexture2D<float4> arg_0 : register(u0, space1);
+void textureStore_48eae1() {
+  int2 arg_1 = (1).xx;
+  float4 arg_2 = (1.0f).xxxx;
+  arg_0[arg_1] = arg_2;
+}
+
+void fragment_main() {
+  textureStore_48eae1();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  textureStore_48eae1();
+}
+
diff --git a/test/tint/builtins/gen/var/textureStore/4bf1fd.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/textureStore/4bf1fd.wgsl.expected.ir.dxc.hlsl
index 685a9ee..f759b0a 100644
--- a/test/tint/builtins/gen/var/textureStore/4bf1fd.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureStore/4bf1fd.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,17 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWTexture2D<uint4> arg_0 : register(u0, space1);
+void textureStore_4bf1fd() {
+  uint2 arg_1 = (1u).xx;
+  uint4 arg_2 = (1u).xxxx;
+  arg_0[arg_1] = arg_2;
+}
+
+void fragment_main() {
+  textureStore_4bf1fd();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  textureStore_4bf1fd();
+}
+
diff --git a/test/tint/builtins/gen/var/textureStore/4bf1fd.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/textureStore/4bf1fd.wgsl.expected.ir.fxc.hlsl
index 685a9ee..f759b0a 100644
--- a/test/tint/builtins/gen/var/textureStore/4bf1fd.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureStore/4bf1fd.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,17 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWTexture2D<uint4> arg_0 : register(u0, space1);
+void textureStore_4bf1fd() {
+  uint2 arg_1 = (1u).xx;
+  uint4 arg_2 = (1u).xxxx;
+  arg_0[arg_1] = arg_2;
+}
+
+void fragment_main() {
+  textureStore_4bf1fd();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  textureStore_4bf1fd();
+}
+
diff --git a/test/tint/builtins/gen/var/textureStore/4c454f.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/textureStore/4c454f.wgsl.expected.ir.dxc.hlsl
index 685a9ee..5b429ec 100644
--- a/test/tint/builtins/gen/var/textureStore/4c454f.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureStore/4c454f.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,21 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWTexture2DArray<int4> arg_0 : register(u0, space1);
+void textureStore_4c454f() {
+  uint2 arg_1 = (1u).xx;
+  uint arg_2 = 1u;
+  int4 arg_3 = (1).xxxx;
+  RWTexture2DArray<int4> v = arg_0;
+  uint2 v_1 = arg_1;
+  int4 v_2 = arg_3;
+  v[uint3(v_1, uint(arg_2))] = v_2;
+}
+
+void fragment_main() {
+  textureStore_4c454f();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  textureStore_4c454f();
+}
+
diff --git a/test/tint/builtins/gen/var/textureStore/4c454f.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/textureStore/4c454f.wgsl.expected.ir.fxc.hlsl
index 685a9ee..5b429ec 100644
--- a/test/tint/builtins/gen/var/textureStore/4c454f.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureStore/4c454f.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,21 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWTexture2DArray<int4> arg_0 : register(u0, space1);
+void textureStore_4c454f() {
+  uint2 arg_1 = (1u).xx;
+  uint arg_2 = 1u;
+  int4 arg_3 = (1).xxxx;
+  RWTexture2DArray<int4> v = arg_0;
+  uint2 v_1 = arg_1;
+  int4 v_2 = arg_3;
+  v[uint3(v_1, uint(arg_2))] = v_2;
+}
+
+void fragment_main() {
+  textureStore_4c454f();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  textureStore_4c454f();
+}
+
diff --git a/test/tint/builtins/gen/var/textureStore/4c76b7.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/textureStore/4c76b7.wgsl.expected.ir.dxc.hlsl
index 685a9ee..79a3a95 100644
--- a/test/tint/builtins/gen/var/textureStore/4c76b7.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureStore/4c76b7.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,21 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWTexture2DArray<float4> arg_0 : register(u0, space1);
+void textureStore_4c76b7() {
+  uint2 arg_1 = (1u).xx;
+  int arg_2 = 1;
+  float4 arg_3 = (1.0f).xxxx;
+  RWTexture2DArray<float4> v = arg_0;
+  uint2 v_1 = arg_1;
+  float4 v_2 = arg_3;
+  v[uint3(v_1, uint(arg_2))] = v_2;
+}
+
+void fragment_main() {
+  textureStore_4c76b7();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  textureStore_4c76b7();
+}
+
diff --git a/test/tint/builtins/gen/var/textureStore/4c76b7.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/textureStore/4c76b7.wgsl.expected.ir.fxc.hlsl
index 685a9ee..79a3a95 100644
--- a/test/tint/builtins/gen/var/textureStore/4c76b7.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureStore/4c76b7.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,21 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWTexture2DArray<float4> arg_0 : register(u0, space1);
+void textureStore_4c76b7() {
+  uint2 arg_1 = (1u).xx;
+  int arg_2 = 1;
+  float4 arg_3 = (1.0f).xxxx;
+  RWTexture2DArray<float4> v = arg_0;
+  uint2 v_1 = arg_1;
+  float4 v_2 = arg_3;
+  v[uint3(v_1, uint(arg_2))] = v_2;
+}
+
+void fragment_main() {
+  textureStore_4c76b7();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  textureStore_4c76b7();
+}
+
diff --git a/test/tint/builtins/gen/var/textureStore/4cce74.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/textureStore/4cce74.wgsl.expected.ir.dxc.hlsl
index 685a9ee..6f6d743 100644
--- a/test/tint/builtins/gen/var/textureStore/4cce74.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureStore/4cce74.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,17 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWTexture1D<uint4> arg_0 : register(u0, space1);
+void textureStore_4cce74() {
+  int arg_1 = 1;
+  uint4 arg_2 = (1u).xxxx;
+  arg_0[arg_1] = arg_2;
+}
+
+void fragment_main() {
+  textureStore_4cce74();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  textureStore_4cce74();
+}
+
diff --git a/test/tint/builtins/gen/var/textureStore/4cce74.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/textureStore/4cce74.wgsl.expected.ir.fxc.hlsl
index 685a9ee..6f6d743 100644
--- a/test/tint/builtins/gen/var/textureStore/4cce74.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureStore/4cce74.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,17 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWTexture1D<uint4> arg_0 : register(u0, space1);
+void textureStore_4cce74() {
+  int arg_1 = 1;
+  uint4 arg_2 = (1u).xxxx;
+  arg_0[arg_1] = arg_2;
+}
+
+void fragment_main() {
+  textureStore_4cce74();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  textureStore_4cce74();
+}
+
diff --git a/test/tint/builtins/gen/var/textureStore/4d359d.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/textureStore/4d359d.wgsl.expected.ir.dxc.hlsl
index 685a9ee..99c6b4c 100644
--- a/test/tint/builtins/gen/var/textureStore/4d359d.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureStore/4d359d.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,21 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWTexture2DArray<uint4> arg_0 : register(u0, space1);
+void textureStore_4d359d() {
+  uint2 arg_1 = (1u).xx;
+  int arg_2 = 1;
+  uint4 arg_3 = (1u).xxxx;
+  RWTexture2DArray<uint4> v = arg_0;
+  uint2 v_1 = arg_1;
+  uint4 v_2 = arg_3;
+  v[uint3(v_1, uint(arg_2))] = v_2;
+}
+
+void fragment_main() {
+  textureStore_4d359d();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  textureStore_4d359d();
+}
+
diff --git a/test/tint/builtins/gen/var/textureStore/4d359d.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/textureStore/4d359d.wgsl.expected.ir.fxc.hlsl
index 685a9ee..99c6b4c 100644
--- a/test/tint/builtins/gen/var/textureStore/4d359d.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureStore/4d359d.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,21 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWTexture2DArray<uint4> arg_0 : register(u0, space1);
+void textureStore_4d359d() {
+  uint2 arg_1 = (1u).xx;
+  int arg_2 = 1;
+  uint4 arg_3 = (1u).xxxx;
+  RWTexture2DArray<uint4> v = arg_0;
+  uint2 v_1 = arg_1;
+  uint4 v_2 = arg_3;
+  v[uint3(v_1, uint(arg_2))] = v_2;
+}
+
+void fragment_main() {
+  textureStore_4d359d();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  textureStore_4d359d();
+}
+
diff --git a/test/tint/builtins/gen/var/textureStore/4ddf52.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/textureStore/4ddf52.wgsl.expected.ir.dxc.hlsl
index 685a9ee..83f6b44 100644
--- a/test/tint/builtins/gen/var/textureStore/4ddf52.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureStore/4ddf52.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,17 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWTexture2D<int4> arg_0 : register(u0, space1);
+void textureStore_4ddf52() {
+  uint2 arg_1 = (1u).xx;
+  int4 arg_2 = (1).xxxx;
+  arg_0[arg_1] = arg_2;
+}
+
+void fragment_main() {
+  textureStore_4ddf52();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  textureStore_4ddf52();
+}
+
diff --git a/test/tint/builtins/gen/var/textureStore/4ddf52.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/textureStore/4ddf52.wgsl.expected.ir.fxc.hlsl
index 685a9ee..83f6b44 100644
--- a/test/tint/builtins/gen/var/textureStore/4ddf52.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureStore/4ddf52.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,17 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWTexture2D<int4> arg_0 : register(u0, space1);
+void textureStore_4ddf52() {
+  uint2 arg_1 = (1u).xx;
+  int4 arg_2 = (1).xxxx;
+  arg_0[arg_1] = arg_2;
+}
+
+void fragment_main() {
+  textureStore_4ddf52();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  textureStore_4ddf52();
+}
+
diff --git a/test/tint/builtins/gen/var/textureStore/4e2b3a.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/textureStore/4e2b3a.wgsl.expected.ir.dxc.hlsl
index 685a9ee..9a09d4f 100644
--- a/test/tint/builtins/gen/var/textureStore/4e2b3a.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureStore/4e2b3a.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,21 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWTexture2DArray<float4> arg_0 : register(u0, space1);
+void textureStore_4e2b3a() {
+  int2 arg_1 = (1).xx;
+  int arg_2 = 1;
+  float4 arg_3 = (1.0f).xxxx;
+  RWTexture2DArray<float4> v = arg_0;
+  int2 v_1 = arg_1;
+  float4 v_2 = arg_3;
+  v[int3(v_1, int(arg_2))] = v_2;
+}
+
+void fragment_main() {
+  textureStore_4e2b3a();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  textureStore_4e2b3a();
+}
+
diff --git a/test/tint/builtins/gen/var/textureStore/4e2b3a.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/textureStore/4e2b3a.wgsl.expected.ir.fxc.hlsl
index 685a9ee..9a09d4f 100644
--- a/test/tint/builtins/gen/var/textureStore/4e2b3a.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureStore/4e2b3a.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,21 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWTexture2DArray<float4> arg_0 : register(u0, space1);
+void textureStore_4e2b3a() {
+  int2 arg_1 = (1).xx;
+  int arg_2 = 1;
+  float4 arg_3 = (1.0f).xxxx;
+  RWTexture2DArray<float4> v = arg_0;
+  int2 v_1 = arg_1;
+  float4 v_2 = arg_3;
+  v[int3(v_1, int(arg_2))] = v_2;
+}
+
+void fragment_main() {
+  textureStore_4e2b3a();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  textureStore_4e2b3a();
+}
+
diff --git a/test/tint/builtins/gen/var/textureStore/4fc057.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/textureStore/4fc057.wgsl.expected.ir.dxc.hlsl
index 685a9ee..9195e0b 100644
--- a/test/tint/builtins/gen/var/textureStore/4fc057.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureStore/4fc057.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,21 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWTexture2DArray<float4> arg_0 : register(u0, space1);
+void textureStore_4fc057() {
+  int2 arg_1 = (1).xx;
+  int arg_2 = 1;
+  float4 arg_3 = (1.0f).xxxx;
+  RWTexture2DArray<float4> v = arg_0;
+  int2 v_1 = arg_1;
+  float4 v_2 = arg_3;
+  v[int3(v_1, int(arg_2))] = v_2;
+}
+
+void fragment_main() {
+  textureStore_4fc057();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  textureStore_4fc057();
+}
+
diff --git a/test/tint/builtins/gen/var/textureStore/4fc057.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/textureStore/4fc057.wgsl.expected.ir.fxc.hlsl
index 685a9ee..9195e0b 100644
--- a/test/tint/builtins/gen/var/textureStore/4fc057.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureStore/4fc057.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,21 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWTexture2DArray<float4> arg_0 : register(u0, space1);
+void textureStore_4fc057() {
+  int2 arg_1 = (1).xx;
+  int arg_2 = 1;
+  float4 arg_3 = (1.0f).xxxx;
+  RWTexture2DArray<float4> v = arg_0;
+  int2 v_1 = arg_1;
+  float4 v_2 = arg_3;
+  v[int3(v_1, int(arg_2))] = v_2;
+}
+
+void fragment_main() {
+  textureStore_4fc057();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  textureStore_4fc057();
+}
+
diff --git a/test/tint/builtins/gen/var/textureStore/5030f5.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/textureStore/5030f5.wgsl.expected.ir.dxc.hlsl
index 685a9ee..eda9630 100644
--- a/test/tint/builtins/gen/var/textureStore/5030f5.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureStore/5030f5.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,21 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWTexture2DArray<float4> arg_0 : register(u0, space1);
+void textureStore_5030f5() {
+  uint2 arg_1 = (1u).xx;
+  uint arg_2 = 1u;
+  float4 arg_3 = (1.0f).xxxx;
+  RWTexture2DArray<float4> v = arg_0;
+  uint2 v_1 = arg_1;
+  float4 v_2 = arg_3;
+  v[uint3(v_1, uint(arg_2))] = v_2;
+}
+
+void fragment_main() {
+  textureStore_5030f5();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  textureStore_5030f5();
+}
+
diff --git a/test/tint/builtins/gen/var/textureStore/5030f5.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/textureStore/5030f5.wgsl.expected.ir.fxc.hlsl
index 685a9ee..eda9630 100644
--- a/test/tint/builtins/gen/var/textureStore/5030f5.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureStore/5030f5.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,21 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWTexture2DArray<float4> arg_0 : register(u0, space1);
+void textureStore_5030f5() {
+  uint2 arg_1 = (1u).xx;
+  uint arg_2 = 1u;
+  float4 arg_3 = (1.0f).xxxx;
+  RWTexture2DArray<float4> v = arg_0;
+  uint2 v_1 = arg_1;
+  float4 v_2 = arg_3;
+  v[uint3(v_1, uint(arg_2))] = v_2;
+}
+
+void fragment_main() {
+  textureStore_5030f5();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  textureStore_5030f5();
+}
+
diff --git a/test/tint/builtins/gen/var/textureStore/506a71.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/textureStore/506a71.wgsl.expected.ir.dxc.hlsl
index 685a9ee..d8fa02c 100644
--- a/test/tint/builtins/gen/var/textureStore/506a71.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureStore/506a71.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,17 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWTexture2D<uint4> arg_0 : register(u0, space1);
+void textureStore_506a71() {
+  uint2 arg_1 = (1u).xx;
+  uint4 arg_2 = (1u).xxxx;
+  arg_0[arg_1] = arg_2;
+}
+
+void fragment_main() {
+  textureStore_506a71();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  textureStore_506a71();
+}
+
diff --git a/test/tint/builtins/gen/var/textureStore/506a71.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/textureStore/506a71.wgsl.expected.ir.fxc.hlsl
index 685a9ee..d8fa02c 100644
--- a/test/tint/builtins/gen/var/textureStore/506a71.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureStore/506a71.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,17 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWTexture2D<uint4> arg_0 : register(u0, space1);
+void textureStore_506a71() {
+  uint2 arg_1 = (1u).xx;
+  uint4 arg_2 = (1u).xxxx;
+  arg_0[arg_1] = arg_2;
+}
+
+void fragment_main() {
+  textureStore_506a71();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  textureStore_506a71();
+}
+
diff --git a/test/tint/builtins/gen/var/textureStore/51ec82.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/textureStore/51ec82.wgsl.expected.ir.dxc.hlsl
index 685a9ee..2135716 100644
--- a/test/tint/builtins/gen/var/textureStore/51ec82.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureStore/51ec82.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,17 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWTexture1D<float4> arg_0 : register(u0, space1);
+void textureStore_51ec82() {
+  int arg_1 = 1;
+  float4 arg_2 = (1.0f).xxxx;
+  arg_0[arg_1] = arg_2;
+}
+
+void fragment_main() {
+  textureStore_51ec82();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  textureStore_51ec82();
+}
+
diff --git a/test/tint/builtins/gen/var/textureStore/51ec82.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/textureStore/51ec82.wgsl.expected.ir.fxc.hlsl
index 685a9ee..2135716 100644
--- a/test/tint/builtins/gen/var/textureStore/51ec82.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureStore/51ec82.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,17 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWTexture1D<float4> arg_0 : register(u0, space1);
+void textureStore_51ec82() {
+  int arg_1 = 1;
+  float4 arg_2 = (1.0f).xxxx;
+  arg_0[arg_1] = arg_2;
+}
+
+void fragment_main() {
+  textureStore_51ec82();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  textureStore_51ec82();
+}
+
diff --git a/test/tint/builtins/gen/var/textureStore/5246b4.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/textureStore/5246b4.wgsl.expected.ir.dxc.hlsl
index 685a9ee..412264a 100644
--- a/test/tint/builtins/gen/var/textureStore/5246b4.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureStore/5246b4.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,17 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWTexture3D<uint4> arg_0 : register(u0, space1);
+void textureStore_5246b4() {
+  uint3 arg_1 = (1u).xxx;
+  uint4 arg_2 = (1u).xxxx;
+  arg_0[arg_1] = arg_2;
+}
+
+void fragment_main() {
+  textureStore_5246b4();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  textureStore_5246b4();
+}
+
diff --git a/test/tint/builtins/gen/var/textureStore/5246b4.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/textureStore/5246b4.wgsl.expected.ir.fxc.hlsl
index 685a9ee..412264a 100644
--- a/test/tint/builtins/gen/var/textureStore/5246b4.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureStore/5246b4.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,17 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWTexture3D<uint4> arg_0 : register(u0, space1);
+void textureStore_5246b4() {
+  uint3 arg_1 = (1u).xxx;
+  uint4 arg_2 = (1u).xxxx;
+  arg_0[arg_1] = arg_2;
+}
+
+void fragment_main() {
+  textureStore_5246b4();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  textureStore_5246b4();
+}
+
diff --git a/test/tint/builtins/gen/var/textureStore/52f503.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/textureStore/52f503.wgsl.expected.ir.dxc.hlsl
index 685a9ee..4651c62 100644
--- a/test/tint/builtins/gen/var/textureStore/52f503.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureStore/52f503.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,17 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWTexture2D<int4> arg_0 : register(u0, space1);
+void textureStore_52f503() {
+  uint2 arg_1 = (1u).xx;
+  int4 arg_2 = (1).xxxx;
+  arg_0[arg_1] = arg_2;
+}
+
+void fragment_main() {
+  textureStore_52f503();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  textureStore_52f503();
+}
+
diff --git a/test/tint/builtins/gen/var/textureStore/52f503.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/textureStore/52f503.wgsl.expected.ir.fxc.hlsl
index 685a9ee..4651c62 100644
--- a/test/tint/builtins/gen/var/textureStore/52f503.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureStore/52f503.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,17 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWTexture2D<int4> arg_0 : register(u0, space1);
+void textureStore_52f503() {
+  uint2 arg_1 = (1u).xx;
+  int4 arg_2 = (1).xxxx;
+  arg_0[arg_1] = arg_2;
+}
+
+void fragment_main() {
+  textureStore_52f503();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  textureStore_52f503();
+}
+
diff --git a/test/tint/builtins/gen/var/textureStore/53a68b.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/textureStore/53a68b.wgsl.expected.ir.dxc.hlsl
index 685a9ee..b9f7351 100644
--- a/test/tint/builtins/gen/var/textureStore/53a68b.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureStore/53a68b.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,17 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWTexture3D<uint4> arg_0 : register(u0, space1);
+void textureStore_53a68b() {
+  int3 arg_1 = (1).xxx;
+  uint4 arg_2 = (1u).xxxx;
+  arg_0[arg_1] = arg_2;
+}
+
+void fragment_main() {
+  textureStore_53a68b();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  textureStore_53a68b();
+}
+
diff --git a/test/tint/builtins/gen/var/textureStore/53a68b.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/textureStore/53a68b.wgsl.expected.ir.fxc.hlsl
index 685a9ee..b9f7351 100644
--- a/test/tint/builtins/gen/var/textureStore/53a68b.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureStore/53a68b.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,17 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWTexture3D<uint4> arg_0 : register(u0, space1);
+void textureStore_53a68b() {
+  int3 arg_1 = (1).xxx;
+  uint4 arg_2 = (1u).xxxx;
+  arg_0[arg_1] = arg_2;
+}
+
+void fragment_main() {
+  textureStore_53a68b();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  textureStore_53a68b();
+}
+
diff --git a/test/tint/builtins/gen/var/textureStore/5425ab.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/textureStore/5425ab.wgsl.expected.ir.dxc.hlsl
index 685a9ee..61ecd38 100644
--- a/test/tint/builtins/gen/var/textureStore/5425ab.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureStore/5425ab.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,17 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWTexture2D<uint4> arg_0 : register(u0, space1);
+void textureStore_5425ab() {
+  int2 arg_1 = (1).xx;
+  uint4 arg_2 = (1u).xxxx;
+  arg_0[arg_1] = arg_2;
+}
+
+void fragment_main() {
+  textureStore_5425ab();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  textureStore_5425ab();
+}
+
diff --git a/test/tint/builtins/gen/var/textureStore/5425ab.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/textureStore/5425ab.wgsl.expected.ir.fxc.hlsl
index 685a9ee..61ecd38 100644
--- a/test/tint/builtins/gen/var/textureStore/5425ab.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureStore/5425ab.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,17 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWTexture2D<uint4> arg_0 : register(u0, space1);
+void textureStore_5425ab() {
+  int2 arg_1 = (1).xx;
+  uint4 arg_2 = (1u).xxxx;
+  arg_0[arg_1] = arg_2;
+}
+
+void fragment_main() {
+  textureStore_5425ab();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  textureStore_5425ab();
+}
+
diff --git a/test/tint/builtins/gen/var/textureStore/544f06.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/textureStore/544f06.wgsl.expected.ir.dxc.hlsl
index 685a9ee..d4170a6 100644
--- a/test/tint/builtins/gen/var/textureStore/544f06.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureStore/544f06.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,17 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWTexture2D<float4> arg_0 : register(u0, space1);
+void textureStore_544f06() {
+  int2 arg_1 = (1).xx;
+  float4 arg_2 = (1.0f).xxxx;
+  arg_0[arg_1] = arg_2;
+}
+
+void fragment_main() {
+  textureStore_544f06();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  textureStore_544f06();
+}
+
diff --git a/test/tint/builtins/gen/var/textureStore/544f06.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/textureStore/544f06.wgsl.expected.ir.fxc.hlsl
index 685a9ee..d4170a6 100644
--- a/test/tint/builtins/gen/var/textureStore/544f06.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureStore/544f06.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,17 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWTexture2D<float4> arg_0 : register(u0, space1);
+void textureStore_544f06() {
+  int2 arg_1 = (1).xx;
+  float4 arg_2 = (1.0f).xxxx;
+  arg_0[arg_1] = arg_2;
+}
+
+void fragment_main() {
+  textureStore_544f06();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  textureStore_544f06();
+}
+
diff --git a/test/tint/builtins/gen/var/textureStore/55f9dc.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/textureStore/55f9dc.wgsl.expected.ir.dxc.hlsl
index 685a9ee..7639927 100644
--- a/test/tint/builtins/gen/var/textureStore/55f9dc.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureStore/55f9dc.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,21 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWTexture2DArray<float4> arg_0 : register(u0, space1);
+void textureStore_55f9dc() {
+  uint2 arg_1 = (1u).xx;
+  uint arg_2 = 1u;
+  float4 arg_3 = (1.0f).xxxx;
+  RWTexture2DArray<float4> v = arg_0;
+  uint2 v_1 = arg_1;
+  float4 v_2 = arg_3;
+  v[uint3(v_1, uint(arg_2))] = v_2;
+}
+
+void fragment_main() {
+  textureStore_55f9dc();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  textureStore_55f9dc();
+}
+
diff --git a/test/tint/builtins/gen/var/textureStore/55f9dc.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/textureStore/55f9dc.wgsl.expected.ir.fxc.hlsl
index 685a9ee..7639927 100644
--- a/test/tint/builtins/gen/var/textureStore/55f9dc.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureStore/55f9dc.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,21 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWTexture2DArray<float4> arg_0 : register(u0, space1);
+void textureStore_55f9dc() {
+  uint2 arg_1 = (1u).xx;
+  uint arg_2 = 1u;
+  float4 arg_3 = (1.0f).xxxx;
+  RWTexture2DArray<float4> v = arg_0;
+  uint2 v_1 = arg_1;
+  float4 v_2 = arg_3;
+  v[uint3(v_1, uint(arg_2))] = v_2;
+}
+
+void fragment_main() {
+  textureStore_55f9dc();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  textureStore_55f9dc();
+}
+
diff --git a/test/tint/builtins/gen/var/textureStore/574a31.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/textureStore/574a31.wgsl.expected.ir.dxc.hlsl
index 685a9ee..69eb955 100644
--- a/test/tint/builtins/gen/var/textureStore/574a31.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureStore/574a31.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,17 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWTexture1D<int4> arg_0 : register(u0, space1);
+void textureStore_574a31() {
+  uint arg_1 = 1u;
+  int4 arg_2 = (1).xxxx;
+  arg_0[arg_1] = arg_2;
+}
+
+void fragment_main() {
+  textureStore_574a31();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  textureStore_574a31();
+}
+
diff --git a/test/tint/builtins/gen/var/textureStore/574a31.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/textureStore/574a31.wgsl.expected.ir.fxc.hlsl
index 685a9ee..69eb955 100644
--- a/test/tint/builtins/gen/var/textureStore/574a31.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureStore/574a31.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,17 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWTexture1D<int4> arg_0 : register(u0, space1);
+void textureStore_574a31() {
+  uint arg_1 = 1u;
+  int4 arg_2 = (1).xxxx;
+  arg_0[arg_1] = arg_2;
+}
+
+void fragment_main() {
+  textureStore_574a31();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  textureStore_574a31();
+}
+
diff --git a/test/tint/builtins/gen/var/textureStore/579b93.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/textureStore/579b93.wgsl.expected.ir.dxc.hlsl
index 685a9ee..0d33d34 100644
--- a/test/tint/builtins/gen/var/textureStore/579b93.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureStore/579b93.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,17 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWTexture2D<uint4> arg_0 : register(u0, space1);
+void textureStore_579b93() {
+  int2 arg_1 = (1).xx;
+  uint4 arg_2 = (1u).xxxx;
+  arg_0[arg_1] = arg_2;
+}
+
+void fragment_main() {
+  textureStore_579b93();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  textureStore_579b93();
+}
+
diff --git a/test/tint/builtins/gen/var/textureStore/579b93.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/textureStore/579b93.wgsl.expected.ir.fxc.hlsl
index 685a9ee..0d33d34 100644
--- a/test/tint/builtins/gen/var/textureStore/579b93.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureStore/579b93.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,17 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWTexture2D<uint4> arg_0 : register(u0, space1);
+void textureStore_579b93() {
+  int2 arg_1 = (1).xx;
+  uint4 arg_2 = (1u).xxxx;
+  arg_0[arg_1] = arg_2;
+}
+
+void fragment_main() {
+  textureStore_579b93();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  textureStore_579b93();
+}
+
diff --git a/test/tint/builtins/gen/var/textureStore/5841f8.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/textureStore/5841f8.wgsl.expected.ir.dxc.hlsl
index 685a9ee..3652174 100644
--- a/test/tint/builtins/gen/var/textureStore/5841f8.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureStore/5841f8.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,21 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWTexture2DArray<float4> arg_0 : register(u0, space1);
+void textureStore_5841f8() {
+  uint2 arg_1 = (1u).xx;
+  uint arg_2 = 1u;
+  float4 arg_3 = (1.0f).xxxx;
+  RWTexture2DArray<float4> v = arg_0;
+  uint2 v_1 = arg_1;
+  float4 v_2 = arg_3;
+  v[uint3(v_1, uint(arg_2))] = v_2;
+}
+
+void fragment_main() {
+  textureStore_5841f8();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  textureStore_5841f8();
+}
+
diff --git a/test/tint/builtins/gen/var/textureStore/5841f8.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/textureStore/5841f8.wgsl.expected.ir.fxc.hlsl
index 685a9ee..3652174 100644
--- a/test/tint/builtins/gen/var/textureStore/5841f8.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureStore/5841f8.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,21 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWTexture2DArray<float4> arg_0 : register(u0, space1);
+void textureStore_5841f8() {
+  uint2 arg_1 = (1u).xx;
+  uint arg_2 = 1u;
+  float4 arg_3 = (1.0f).xxxx;
+  RWTexture2DArray<float4> v = arg_0;
+  uint2 v_1 = arg_1;
+  float4 v_2 = arg_3;
+  v[uint3(v_1, uint(arg_2))] = v_2;
+}
+
+void fragment_main() {
+  textureStore_5841f8();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  textureStore_5841f8();
+}
+
diff --git a/test/tint/builtins/gen/var/textureStore/58fc35.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/textureStore/58fc35.wgsl.expected.ir.dxc.hlsl
index 685a9ee..2717f7f 100644
--- a/test/tint/builtins/gen/var/textureStore/58fc35.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureStore/58fc35.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,17 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWTexture1D<float4> arg_0 : register(u0, space1);
+void textureStore_58fc35() {
+  uint arg_1 = 1u;
+  float4 arg_2 = (1.0f).xxxx;
+  arg_0[arg_1] = arg_2;
+}
+
+void fragment_main() {
+  textureStore_58fc35();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  textureStore_58fc35();
+}
+
diff --git a/test/tint/builtins/gen/var/textureStore/58fc35.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/textureStore/58fc35.wgsl.expected.ir.fxc.hlsl
index 685a9ee..2717f7f 100644
--- a/test/tint/builtins/gen/var/textureStore/58fc35.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureStore/58fc35.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,17 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWTexture1D<float4> arg_0 : register(u0, space1);
+void textureStore_58fc35() {
+  uint arg_1 = 1u;
+  float4 arg_2 = (1.0f).xxxx;
+  arg_0[arg_1] = arg_2;
+}
+
+void fragment_main() {
+  textureStore_58fc35();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  textureStore_58fc35();
+}
+
diff --git a/test/tint/builtins/gen/var/textureStore/59a0ab.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/textureStore/59a0ab.wgsl.expected.ir.dxc.hlsl
index 685a9ee..6d9f0ce 100644
--- a/test/tint/builtins/gen/var/textureStore/59a0ab.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureStore/59a0ab.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,21 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWTexture2DArray<float4> arg_0 : register(u0, space1);
+void textureStore_59a0ab() {
+  uint2 arg_1 = (1u).xx;
+  int arg_2 = 1;
+  float4 arg_3 = (1.0f).xxxx;
+  RWTexture2DArray<float4> v = arg_0;
+  uint2 v_1 = arg_1;
+  float4 v_2 = arg_3;
+  v[uint3(v_1, uint(arg_2))] = v_2;
+}
+
+void fragment_main() {
+  textureStore_59a0ab();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  textureStore_59a0ab();
+}
+
diff --git a/test/tint/builtins/gen/var/textureStore/59a0ab.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/textureStore/59a0ab.wgsl.expected.ir.fxc.hlsl
index 685a9ee..6d9f0ce 100644
--- a/test/tint/builtins/gen/var/textureStore/59a0ab.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureStore/59a0ab.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,21 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWTexture2DArray<float4> arg_0 : register(u0, space1);
+void textureStore_59a0ab() {
+  uint2 arg_1 = (1u).xx;
+  int arg_2 = 1;
+  float4 arg_3 = (1.0f).xxxx;
+  RWTexture2DArray<float4> v = arg_0;
+  uint2 v_1 = arg_1;
+  float4 v_2 = arg_3;
+  v[uint3(v_1, uint(arg_2))] = v_2;
+}
+
+void fragment_main() {
+  textureStore_59a0ab();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  textureStore_59a0ab();
+}
+
diff --git a/test/tint/builtins/gen/var/textureStore/5a2f8f.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/textureStore/5a2f8f.wgsl.expected.ir.dxc.hlsl
index 685a9ee..ec5c490 100644
--- a/test/tint/builtins/gen/var/textureStore/5a2f8f.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureStore/5a2f8f.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,17 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWTexture1D<int4> arg_0 : register(u0, space1);
+void textureStore_5a2f8f() {
+  int arg_1 = 1;
+  int4 arg_2 = (1).xxxx;
+  arg_0[arg_1] = arg_2;
+}
+
+void fragment_main() {
+  textureStore_5a2f8f();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  textureStore_5a2f8f();
+}
+
diff --git a/test/tint/builtins/gen/var/textureStore/5a2f8f.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/textureStore/5a2f8f.wgsl.expected.ir.fxc.hlsl
index 685a9ee..ec5c490 100644
--- a/test/tint/builtins/gen/var/textureStore/5a2f8f.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureStore/5a2f8f.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,17 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWTexture1D<int4> arg_0 : register(u0, space1);
+void textureStore_5a2f8f() {
+  int arg_1 = 1;
+  int4 arg_2 = (1).xxxx;
+  arg_0[arg_1] = arg_2;
+}
+
+void fragment_main() {
+  textureStore_5a2f8f();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  textureStore_5a2f8f();
+}
+
diff --git a/test/tint/builtins/gen/var/textureStore/5a8b41.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/textureStore/5a8b41.wgsl.expected.ir.dxc.hlsl
index 685a9ee..ead954e 100644
--- a/test/tint/builtins/gen/var/textureStore/5a8b41.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureStore/5a8b41.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,21 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWTexture2DArray<float4> arg_0 : register(u0, space1);
+void textureStore_5a8b41() {
+  uint2 arg_1 = (1u).xx;
+  int arg_2 = 1;
+  float4 arg_3 = (1.0f).xxxx;
+  RWTexture2DArray<float4> v = arg_0;
+  uint2 v_1 = arg_1;
+  float4 v_2 = arg_3;
+  v[uint3(v_1, uint(arg_2))] = v_2;
+}
+
+void fragment_main() {
+  textureStore_5a8b41();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  textureStore_5a8b41();
+}
+
diff --git a/test/tint/builtins/gen/var/textureStore/5a8b41.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/textureStore/5a8b41.wgsl.expected.ir.fxc.hlsl
index 685a9ee..ead954e 100644
--- a/test/tint/builtins/gen/var/textureStore/5a8b41.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureStore/5a8b41.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,21 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWTexture2DArray<float4> arg_0 : register(u0, space1);
+void textureStore_5a8b41() {
+  uint2 arg_1 = (1u).xx;
+  int arg_2 = 1;
+  float4 arg_3 = (1.0f).xxxx;
+  RWTexture2DArray<float4> v = arg_0;
+  uint2 v_1 = arg_1;
+  float4 v_2 = arg_3;
+  v[uint3(v_1, uint(arg_2))] = v_2;
+}
+
+void fragment_main() {
+  textureStore_5a8b41();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  textureStore_5a8b41();
+}
+
diff --git a/test/tint/builtins/gen/var/textureStore/5b17eb.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/textureStore/5b17eb.wgsl.expected.ir.dxc.hlsl
index 685a9ee..a409c2c 100644
--- a/test/tint/builtins/gen/var/textureStore/5b17eb.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureStore/5b17eb.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,17 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWTexture2D<float4> arg_0 : register(u0, space1);
+void textureStore_5b17eb() {
+  uint2 arg_1 = (1u).xx;
+  float4 arg_2 = (1.0f).xxxx;
+  arg_0[arg_1] = arg_2;
+}
+
+void fragment_main() {
+  textureStore_5b17eb();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  textureStore_5b17eb();
+}
+
diff --git a/test/tint/builtins/gen/var/textureStore/5b17eb.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/textureStore/5b17eb.wgsl.expected.ir.fxc.hlsl
index 685a9ee..a409c2c 100644
--- a/test/tint/builtins/gen/var/textureStore/5b17eb.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureStore/5b17eb.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,17 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWTexture2D<float4> arg_0 : register(u0, space1);
+void textureStore_5b17eb() {
+  uint2 arg_1 = (1u).xx;
+  float4 arg_2 = (1.0f).xxxx;
+  arg_0[arg_1] = arg_2;
+}
+
+void fragment_main() {
+  textureStore_5b17eb();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  textureStore_5b17eb();
+}
+
diff --git a/test/tint/builtins/gen/var/textureStore/5b4522.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/textureStore/5b4522.wgsl.expected.ir.dxc.hlsl
index 685a9ee..66a9aac 100644
--- a/test/tint/builtins/gen/var/textureStore/5b4522.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureStore/5b4522.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,17 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWTexture1D<uint4> arg_0 : register(u0, space1);
+void textureStore_5b4522() {
+  uint arg_1 = 1u;
+  uint4 arg_2 = (1u).xxxx;
+  arg_0[arg_1] = arg_2;
+}
+
+void fragment_main() {
+  textureStore_5b4522();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  textureStore_5b4522();
+}
+
diff --git a/test/tint/builtins/gen/var/textureStore/5b4522.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/textureStore/5b4522.wgsl.expected.ir.fxc.hlsl
index 685a9ee..66a9aac 100644
--- a/test/tint/builtins/gen/var/textureStore/5b4522.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureStore/5b4522.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,17 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWTexture1D<uint4> arg_0 : register(u0, space1);
+void textureStore_5b4522() {
+  uint arg_1 = 1u;
+  uint4 arg_2 = (1u).xxxx;
+  arg_0[arg_1] = arg_2;
+}
+
+void fragment_main() {
+  textureStore_5b4522();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  textureStore_5b4522();
+}
+
diff --git a/test/tint/builtins/gen/var/textureStore/5bc4f3.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/textureStore/5bc4f3.wgsl.expected.ir.dxc.hlsl
index 685a9ee..f2ac455 100644
--- a/test/tint/builtins/gen/var/textureStore/5bc4f3.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureStore/5bc4f3.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,21 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWTexture2DArray<uint4> arg_0 : register(u0, space1);
+void textureStore_5bc4f3() {
+  uint2 arg_1 = (1u).xx;
+  uint arg_2 = 1u;
+  uint4 arg_3 = (1u).xxxx;
+  RWTexture2DArray<uint4> v = arg_0;
+  uint2 v_1 = arg_1;
+  uint4 v_2 = arg_3;
+  v[uint3(v_1, uint(arg_2))] = v_2;
+}
+
+void fragment_main() {
+  textureStore_5bc4f3();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  textureStore_5bc4f3();
+}
+
diff --git a/test/tint/builtins/gen/var/textureStore/5bc4f3.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/textureStore/5bc4f3.wgsl.expected.ir.fxc.hlsl
index 685a9ee..f2ac455 100644
--- a/test/tint/builtins/gen/var/textureStore/5bc4f3.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureStore/5bc4f3.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,21 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWTexture2DArray<uint4> arg_0 : register(u0, space1);
+void textureStore_5bc4f3() {
+  uint2 arg_1 = (1u).xx;
+  uint arg_2 = 1u;
+  uint4 arg_3 = (1u).xxxx;
+  RWTexture2DArray<uint4> v = arg_0;
+  uint2 v_1 = arg_1;
+  uint4 v_2 = arg_3;
+  v[uint3(v_1, uint(arg_2))] = v_2;
+}
+
+void fragment_main() {
+  textureStore_5bc4f3();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  textureStore_5bc4f3();
+}
+
diff --git a/test/tint/builtins/gen/var/textureStore/5ddc61.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/textureStore/5ddc61.wgsl.expected.ir.dxc.hlsl
index 685a9ee..d6e4c85 100644
--- a/test/tint/builtins/gen/var/textureStore/5ddc61.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureStore/5ddc61.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,21 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWTexture2DArray<int4> arg_0 : register(u0, space1);
+void textureStore_5ddc61() {
+  int2 arg_1 = (1).xx;
+  uint arg_2 = 1u;
+  int4 arg_3 = (1).xxxx;
+  RWTexture2DArray<int4> v = arg_0;
+  int2 v_1 = arg_1;
+  int4 v_2 = arg_3;
+  v[int3(v_1, int(arg_2))] = v_2;
+}
+
+void fragment_main() {
+  textureStore_5ddc61();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  textureStore_5ddc61();
+}
+
diff --git a/test/tint/builtins/gen/var/textureStore/5ddc61.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/textureStore/5ddc61.wgsl.expected.ir.fxc.hlsl
index 685a9ee..d6e4c85 100644
--- a/test/tint/builtins/gen/var/textureStore/5ddc61.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureStore/5ddc61.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,21 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWTexture2DArray<int4> arg_0 : register(u0, space1);
+void textureStore_5ddc61() {
+  int2 arg_1 = (1).xx;
+  uint arg_2 = 1u;
+  int4 arg_3 = (1).xxxx;
+  RWTexture2DArray<int4> v = arg_0;
+  int2 v_1 = arg_1;
+  int4 v_2 = arg_3;
+  v[int3(v_1, int(arg_2))] = v_2;
+}
+
+void fragment_main() {
+  textureStore_5ddc61();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  textureStore_5ddc61();
+}
+
diff --git a/test/tint/builtins/gen/var/textureStore/5ec6b2.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/textureStore/5ec6b2.wgsl.expected.ir.dxc.hlsl
index 685a9ee..520e4fd 100644
--- a/test/tint/builtins/gen/var/textureStore/5ec6b2.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureStore/5ec6b2.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,17 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWTexture3D<float4> arg_0 : register(u0, space1);
+void textureStore_5ec6b2() {
+  uint3 arg_1 = (1u).xxx;
+  float4 arg_2 = (1.0f).xxxx;
+  arg_0[arg_1] = arg_2;
+}
+
+void fragment_main() {
+  textureStore_5ec6b2();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  textureStore_5ec6b2();
+}
+
diff --git a/test/tint/builtins/gen/var/textureStore/5ec6b2.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/textureStore/5ec6b2.wgsl.expected.ir.fxc.hlsl
index 685a9ee..520e4fd 100644
--- a/test/tint/builtins/gen/var/textureStore/5ec6b2.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureStore/5ec6b2.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,17 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWTexture3D<float4> arg_0 : register(u0, space1);
+void textureStore_5ec6b2() {
+  uint3 arg_1 = (1u).xxx;
+  float4 arg_2 = (1.0f).xxxx;
+  arg_0[arg_1] = arg_2;
+}
+
+void fragment_main() {
+  textureStore_5ec6b2();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  textureStore_5ec6b2();
+}
+
diff --git a/test/tint/builtins/gen/var/textureStore/5ee194.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/textureStore/5ee194.wgsl.expected.ir.dxc.hlsl
index 685a9ee..912404d 100644
--- a/test/tint/builtins/gen/var/textureStore/5ee194.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureStore/5ee194.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,21 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWTexture2DArray<float4> arg_0 : register(u0, space1);
+void textureStore_5ee194() {
+  uint2 arg_1 = (1u).xx;
+  uint arg_2 = 1u;
+  float4 arg_3 = (1.0f).xxxx;
+  RWTexture2DArray<float4> v = arg_0;
+  uint2 v_1 = arg_1;
+  float4 v_2 = arg_3;
+  v[uint3(v_1, uint(arg_2))] = v_2;
+}
+
+void fragment_main() {
+  textureStore_5ee194();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  textureStore_5ee194();
+}
+
diff --git a/test/tint/builtins/gen/var/textureStore/5ee194.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/textureStore/5ee194.wgsl.expected.ir.fxc.hlsl
index 685a9ee..912404d 100644
--- a/test/tint/builtins/gen/var/textureStore/5ee194.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureStore/5ee194.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,21 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWTexture2DArray<float4> arg_0 : register(u0, space1);
+void textureStore_5ee194() {
+  uint2 arg_1 = (1u).xx;
+  uint arg_2 = 1u;
+  float4 arg_3 = (1.0f).xxxx;
+  RWTexture2DArray<float4> v = arg_0;
+  uint2 v_1 = arg_1;
+  float4 v_2 = arg_3;
+  v[uint3(v_1, uint(arg_2))] = v_2;
+}
+
+void fragment_main() {
+  textureStore_5ee194();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  textureStore_5ee194();
+}
+
diff --git a/test/tint/builtins/gen/var/textureStore/5f9a49.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/textureStore/5f9a49.wgsl.expected.ir.dxc.hlsl
index 685a9ee..d8c8616 100644
--- a/test/tint/builtins/gen/var/textureStore/5f9a49.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureStore/5f9a49.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,21 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWTexture2DArray<float4> arg_0 : register(u0, space1);
+void textureStore_5f9a49() {
+  uint2 arg_1 = (1u).xx;
+  uint arg_2 = 1u;
+  float4 arg_3 = (1.0f).xxxx;
+  RWTexture2DArray<float4> v = arg_0;
+  uint2 v_1 = arg_1;
+  float4 v_2 = arg_3;
+  v[uint3(v_1, uint(arg_2))] = v_2;
+}
+
+void fragment_main() {
+  textureStore_5f9a49();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  textureStore_5f9a49();
+}
+
diff --git a/test/tint/builtins/gen/var/textureStore/5f9a49.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/textureStore/5f9a49.wgsl.expected.ir.fxc.hlsl
index 685a9ee..d8c8616 100644
--- a/test/tint/builtins/gen/var/textureStore/5f9a49.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureStore/5f9a49.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,21 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWTexture2DArray<float4> arg_0 : register(u0, space1);
+void textureStore_5f9a49() {
+  uint2 arg_1 = (1u).xx;
+  uint arg_2 = 1u;
+  float4 arg_3 = (1.0f).xxxx;
+  RWTexture2DArray<float4> v = arg_0;
+  uint2 v_1 = arg_1;
+  float4 v_2 = arg_3;
+  v[uint3(v_1, uint(arg_2))] = v_2;
+}
+
+void fragment_main() {
+  textureStore_5f9a49();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  textureStore_5f9a49();
+}
+
diff --git a/test/tint/builtins/gen/var/textureStore/602b5a.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/textureStore/602b5a.wgsl.expected.ir.dxc.hlsl
index 685a9ee..dbb8f2a 100644
--- a/test/tint/builtins/gen/var/textureStore/602b5a.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureStore/602b5a.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,17 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWTexture1D<float4> arg_0 : register(u0, space1);
+void textureStore_602b5a() {
+  uint arg_1 = 1u;
+  float4 arg_2 = (1.0f).xxxx;
+  arg_0[arg_1] = arg_2;
+}
+
+void fragment_main() {
+  textureStore_602b5a();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  textureStore_602b5a();
+}
+
diff --git a/test/tint/builtins/gen/var/textureStore/602b5a.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/textureStore/602b5a.wgsl.expected.ir.fxc.hlsl
index 685a9ee..dbb8f2a 100644
--- a/test/tint/builtins/gen/var/textureStore/602b5a.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureStore/602b5a.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,17 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWTexture1D<float4> arg_0 : register(u0, space1);
+void textureStore_602b5a() {
+  uint arg_1 = 1u;
+  float4 arg_2 = (1.0f).xxxx;
+  arg_0[arg_1] = arg_2;
+}
+
+void fragment_main() {
+  textureStore_602b5a();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  textureStore_602b5a();
+}
+
diff --git a/test/tint/builtins/gen/var/textureStore/60975f.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/textureStore/60975f.wgsl.expected.ir.dxc.hlsl
index 685a9ee..2d8745d 100644
--- a/test/tint/builtins/gen/var/textureStore/60975f.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureStore/60975f.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,21 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWTexture2DArray<float4> arg_0 : register(u0, space1);
+void textureStore_60975f() {
+  int2 arg_1 = (1).xx;
+  int arg_2 = 1;
+  float4 arg_3 = (1.0f).xxxx;
+  RWTexture2DArray<float4> v = arg_0;
+  int2 v_1 = arg_1;
+  float4 v_2 = arg_3;
+  v[int3(v_1, int(arg_2))] = v_2;
+}
+
+void fragment_main() {
+  textureStore_60975f();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  textureStore_60975f();
+}
+
diff --git a/test/tint/builtins/gen/var/textureStore/60975f.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/textureStore/60975f.wgsl.expected.ir.fxc.hlsl
index 685a9ee..2d8745d 100644
--- a/test/tint/builtins/gen/var/textureStore/60975f.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureStore/60975f.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,21 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWTexture2DArray<float4> arg_0 : register(u0, space1);
+void textureStore_60975f() {
+  int2 arg_1 = (1).xx;
+  int arg_2 = 1;
+  float4 arg_3 = (1.0f).xxxx;
+  RWTexture2DArray<float4> v = arg_0;
+  int2 v_1 = arg_1;
+  float4 v_2 = arg_3;
+  v[int3(v_1, int(arg_2))] = v_2;
+}
+
+void fragment_main() {
+  textureStore_60975f();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  textureStore_60975f();
+}
+
diff --git a/test/tint/builtins/gen/var/textureStore/614b58.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/textureStore/614b58.wgsl.expected.ir.dxc.hlsl
index 685a9ee..6e11b51 100644
--- a/test/tint/builtins/gen/var/textureStore/614b58.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureStore/614b58.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,21 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWTexture2DArray<int4> arg_0 : register(u0, space1);
+void textureStore_614b58() {
+  int2 arg_1 = (1).xx;
+  uint arg_2 = 1u;
+  int4 arg_3 = (1).xxxx;
+  RWTexture2DArray<int4> v = arg_0;
+  int2 v_1 = arg_1;
+  int4 v_2 = arg_3;
+  v[int3(v_1, int(arg_2))] = v_2;
+}
+
+void fragment_main() {
+  textureStore_614b58();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  textureStore_614b58();
+}
+
diff --git a/test/tint/builtins/gen/var/textureStore/614b58.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/textureStore/614b58.wgsl.expected.ir.fxc.hlsl
index 685a9ee..6e11b51 100644
--- a/test/tint/builtins/gen/var/textureStore/614b58.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureStore/614b58.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,21 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWTexture2DArray<int4> arg_0 : register(u0, space1);
+void textureStore_614b58() {
+  int2 arg_1 = (1).xx;
+  uint arg_2 = 1u;
+  int4 arg_3 = (1).xxxx;
+  RWTexture2DArray<int4> v = arg_0;
+  int2 v_1 = arg_1;
+  int4 v_2 = arg_3;
+  v[int3(v_1, int(arg_2))] = v_2;
+}
+
+void fragment_main() {
+  textureStore_614b58();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  textureStore_614b58();
+}
+
diff --git a/test/tint/builtins/gen/var/textureStore/635584.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/textureStore/635584.wgsl.expected.ir.dxc.hlsl
index 685a9ee..ee4ffe6 100644
--- a/test/tint/builtins/gen/var/textureStore/635584.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureStore/635584.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,17 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWTexture1D<float4> arg_0 : register(u0, space1);
+void textureStore_635584() {
+  uint arg_1 = 1u;
+  float4 arg_2 = (1.0f).xxxx;
+  arg_0[arg_1] = arg_2;
+}
+
+void fragment_main() {
+  textureStore_635584();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  textureStore_635584();
+}
+
diff --git a/test/tint/builtins/gen/var/textureStore/635584.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/textureStore/635584.wgsl.expected.ir.fxc.hlsl
index 685a9ee..ee4ffe6 100644
--- a/test/tint/builtins/gen/var/textureStore/635584.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureStore/635584.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,17 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWTexture1D<float4> arg_0 : register(u0, space1);
+void textureStore_635584() {
+  uint arg_1 = 1u;
+  float4 arg_2 = (1.0f).xxxx;
+  arg_0[arg_1] = arg_2;
+}
+
+void fragment_main() {
+  textureStore_635584();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  textureStore_635584();
+}
+
diff --git a/test/tint/builtins/gen/var/textureStore/63f34a.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/textureStore/63f34a.wgsl.expected.ir.dxc.hlsl
index 685a9ee..d7c9c4a 100644
--- a/test/tint/builtins/gen/var/textureStore/63f34a.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureStore/63f34a.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,17 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWTexture2D<int4> arg_0 : register(u0, space1);
+void textureStore_63f34a() {
+  uint2 arg_1 = (1u).xx;
+  int4 arg_2 = (1).xxxx;
+  arg_0[arg_1] = arg_2;
+}
+
+void fragment_main() {
+  textureStore_63f34a();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  textureStore_63f34a();
+}
+
diff --git a/test/tint/builtins/gen/var/textureStore/63f34a.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/textureStore/63f34a.wgsl.expected.ir.fxc.hlsl
index 685a9ee..d7c9c4a 100644
--- a/test/tint/builtins/gen/var/textureStore/63f34a.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureStore/63f34a.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,17 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWTexture2D<int4> arg_0 : register(u0, space1);
+void textureStore_63f34a() {
+  uint2 arg_1 = (1u).xx;
+  int4 arg_2 = (1).xxxx;
+  arg_0[arg_1] = arg_2;
+}
+
+void fragment_main() {
+  textureStore_63f34a();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  textureStore_63f34a();
+}
+
diff --git a/test/tint/builtins/gen/var/textureStore/646dbc.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/textureStore/646dbc.wgsl.expected.ir.dxc.hlsl
index 685a9ee..0a04f3b 100644
--- a/test/tint/builtins/gen/var/textureStore/646dbc.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureStore/646dbc.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,17 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWTexture3D<int4> arg_0 : register(u0, space1);
+void textureStore_646dbc() {
+  int3 arg_1 = (1).xxx;
+  int4 arg_2 = (1).xxxx;
+  arg_0[arg_1] = arg_2;
+}
+
+void fragment_main() {
+  textureStore_646dbc();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  textureStore_646dbc();
+}
+
diff --git a/test/tint/builtins/gen/var/textureStore/646dbc.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/textureStore/646dbc.wgsl.expected.ir.fxc.hlsl
index 685a9ee..0a04f3b 100644
--- a/test/tint/builtins/gen/var/textureStore/646dbc.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureStore/646dbc.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,17 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWTexture3D<int4> arg_0 : register(u0, space1);
+void textureStore_646dbc() {
+  int3 arg_1 = (1).xxx;
+  int4 arg_2 = (1).xxxx;
+  arg_0[arg_1] = arg_2;
+}
+
+void fragment_main() {
+  textureStore_646dbc();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  textureStore_646dbc();
+}
+
diff --git a/test/tint/builtins/gen/var/textureStore/658a74.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/textureStore/658a74.wgsl.expected.ir.dxc.hlsl
index 685a9ee..a0838fd 100644
--- a/test/tint/builtins/gen/var/textureStore/658a74.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureStore/658a74.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,21 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWTexture2DArray<float4> arg_0 : register(u0, space1);
+void textureStore_658a74() {
+  int2 arg_1 = (1).xx;
+  uint arg_2 = 1u;
+  float4 arg_3 = (1.0f).xxxx;
+  RWTexture2DArray<float4> v = arg_0;
+  int2 v_1 = arg_1;
+  float4 v_2 = arg_3;
+  v[int3(v_1, int(arg_2))] = v_2;
+}
+
+void fragment_main() {
+  textureStore_658a74();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  textureStore_658a74();
+}
+
diff --git a/test/tint/builtins/gen/var/textureStore/658a74.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/textureStore/658a74.wgsl.expected.ir.fxc.hlsl
index 685a9ee..a0838fd 100644
--- a/test/tint/builtins/gen/var/textureStore/658a74.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureStore/658a74.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,21 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWTexture2DArray<float4> arg_0 : register(u0, space1);
+void textureStore_658a74() {
+  int2 arg_1 = (1).xx;
+  uint arg_2 = 1u;
+  float4 arg_3 = (1.0f).xxxx;
+  RWTexture2DArray<float4> v = arg_0;
+  int2 v_1 = arg_1;
+  float4 v_2 = arg_3;
+  v[int3(v_1, int(arg_2))] = v_2;
+}
+
+void fragment_main() {
+  textureStore_658a74();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  textureStore_658a74();
+}
+
diff --git a/test/tint/builtins/gen/var/textureStore/65b6aa.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/textureStore/65b6aa.wgsl.expected.ir.dxc.hlsl
index 685a9ee..775f10a 100644
--- a/test/tint/builtins/gen/var/textureStore/65b6aa.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureStore/65b6aa.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,17 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWTexture1D<int4> arg_0 : register(u0, space1);
+void textureStore_65b6aa() {
+  int arg_1 = 1;
+  int4 arg_2 = (1).xxxx;
+  arg_0[arg_1] = arg_2;
+}
+
+void fragment_main() {
+  textureStore_65b6aa();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  textureStore_65b6aa();
+}
+
diff --git a/test/tint/builtins/gen/var/textureStore/65b6aa.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/textureStore/65b6aa.wgsl.expected.ir.fxc.hlsl
index 685a9ee..775f10a 100644
--- a/test/tint/builtins/gen/var/textureStore/65b6aa.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureStore/65b6aa.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,17 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWTexture1D<int4> arg_0 : register(u0, space1);
+void textureStore_65b6aa() {
+  int arg_1 = 1;
+  int4 arg_2 = (1).xxxx;
+  arg_0[arg_1] = arg_2;
+}
+
+void fragment_main() {
+  textureStore_65b6aa();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  textureStore_65b6aa();
+}
+
diff --git a/test/tint/builtins/gen/var/textureStore/65ba8b.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/textureStore/65ba8b.wgsl.expected.ir.dxc.hlsl
index 685a9ee..f6fbec7 100644
--- a/test/tint/builtins/gen/var/textureStore/65ba8b.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureStore/65ba8b.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,17 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWTexture2D<float4> arg_0 : register(u0, space1);
+void textureStore_65ba8b() {
+  int2 arg_1 = (1).xx;
+  float4 arg_2 = (1.0f).xxxx;
+  arg_0[arg_1] = arg_2;
+}
+
+void fragment_main() {
+  textureStore_65ba8b();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  textureStore_65ba8b();
+}
+
diff --git a/test/tint/builtins/gen/var/textureStore/65ba8b.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/textureStore/65ba8b.wgsl.expected.ir.fxc.hlsl
index 685a9ee..f6fbec7 100644
--- a/test/tint/builtins/gen/var/textureStore/65ba8b.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureStore/65ba8b.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,17 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWTexture2D<float4> arg_0 : register(u0, space1);
+void textureStore_65ba8b() {
+  int2 arg_1 = (1).xx;
+  float4 arg_2 = (1.0f).xxxx;
+  arg_0[arg_1] = arg_2;
+}
+
+void fragment_main() {
+  textureStore_65ba8b();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  textureStore_65ba8b();
+}
+
diff --git a/test/tint/builtins/gen/var/textureStore/682fd6.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/textureStore/682fd6.wgsl.expected.ir.dxc.hlsl
index 685a9ee..fb8691a 100644
--- a/test/tint/builtins/gen/var/textureStore/682fd6.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureStore/682fd6.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,17 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWTexture2D<uint4> arg_0 : register(u0, space1);
+void textureStore_682fd6() {
+  int2 arg_1 = (1).xx;
+  uint4 arg_2 = (1u).xxxx;
+  arg_0[arg_1] = arg_2;
+}
+
+void fragment_main() {
+  textureStore_682fd6();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  textureStore_682fd6();
+}
+
diff --git a/test/tint/builtins/gen/var/textureStore/682fd6.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/textureStore/682fd6.wgsl.expected.ir.fxc.hlsl
index 685a9ee..fb8691a 100644
--- a/test/tint/builtins/gen/var/textureStore/682fd6.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureStore/682fd6.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,17 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWTexture2D<uint4> arg_0 : register(u0, space1);
+void textureStore_682fd6() {
+  int2 arg_1 = (1).xx;
+  uint4 arg_2 = (1u).xxxx;
+  arg_0[arg_1] = arg_2;
+}
+
+void fragment_main() {
+  textureStore_682fd6();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  textureStore_682fd6();
+}
+
diff --git a/test/tint/builtins/gen/var/textureStore/699a1b.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/textureStore/699a1b.wgsl.expected.ir.dxc.hlsl
index 685a9ee..e2ba771 100644
--- a/test/tint/builtins/gen/var/textureStore/699a1b.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureStore/699a1b.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,21 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWTexture2DArray<float4> arg_0 : register(u0, space1);
+void textureStore_699a1b() {
+  uint2 arg_1 = (1u).xx;
+  uint arg_2 = 1u;
+  float4 arg_3 = (1.0f).xxxx;
+  RWTexture2DArray<float4> v = arg_0;
+  uint2 v_1 = arg_1;
+  float4 v_2 = arg_3;
+  v[uint3(v_1, uint(arg_2))] = v_2;
+}
+
+void fragment_main() {
+  textureStore_699a1b();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  textureStore_699a1b();
+}
+
diff --git a/test/tint/builtins/gen/var/textureStore/699a1b.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/textureStore/699a1b.wgsl.expected.ir.fxc.hlsl
index 685a9ee..e2ba771 100644
--- a/test/tint/builtins/gen/var/textureStore/699a1b.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureStore/699a1b.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,21 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWTexture2DArray<float4> arg_0 : register(u0, space1);
+void textureStore_699a1b() {
+  uint2 arg_1 = (1u).xx;
+  uint arg_2 = 1u;
+  float4 arg_3 = (1.0f).xxxx;
+  RWTexture2DArray<float4> v = arg_0;
+  uint2 v_1 = arg_1;
+  float4 v_2 = arg_3;
+  v[uint3(v_1, uint(arg_2))] = v_2;
+}
+
+void fragment_main() {
+  textureStore_699a1b();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  textureStore_699a1b();
+}
+
diff --git a/test/tint/builtins/gen/var/textureStore/6b75c3.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/textureStore/6b75c3.wgsl.expected.ir.dxc.hlsl
index 685a9ee..684c631 100644
--- a/test/tint/builtins/gen/var/textureStore/6b75c3.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureStore/6b75c3.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,17 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWTexture1D<float4> arg_0 : register(u0, space1);
+void textureStore_6b75c3() {
+  int arg_1 = 1;
+  float4 arg_2 = (1.0f).xxxx;
+  arg_0[arg_1] = arg_2;
+}
+
+void fragment_main() {
+  textureStore_6b75c3();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  textureStore_6b75c3();
+}
+
diff --git a/test/tint/builtins/gen/var/textureStore/6b75c3.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/textureStore/6b75c3.wgsl.expected.ir.fxc.hlsl
index 685a9ee..684c631 100644
--- a/test/tint/builtins/gen/var/textureStore/6b75c3.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureStore/6b75c3.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,17 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWTexture1D<float4> arg_0 : register(u0, space1);
+void textureStore_6b75c3() {
+  int arg_1 = 1;
+  float4 arg_2 = (1.0f).xxxx;
+  arg_0[arg_1] = arg_2;
+}
+
+void fragment_main() {
+  textureStore_6b75c3();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  textureStore_6b75c3();
+}
+
diff --git a/test/tint/builtins/gen/var/textureStore/6b80d2.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/textureStore/6b80d2.wgsl.expected.ir.dxc.hlsl
index 685a9ee..185d155 100644
--- a/test/tint/builtins/gen/var/textureStore/6b80d2.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureStore/6b80d2.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,17 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWTexture1D<int4> arg_0 : register(u0, space1);
+void textureStore_6b80d2() {
+  int arg_1 = 1;
+  int4 arg_2 = (1).xxxx;
+  arg_0[arg_1] = arg_2;
+}
+
+void fragment_main() {
+  textureStore_6b80d2();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  textureStore_6b80d2();
+}
+
diff --git a/test/tint/builtins/gen/var/textureStore/6b80d2.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/textureStore/6b80d2.wgsl.expected.ir.fxc.hlsl
index 685a9ee..185d155 100644
--- a/test/tint/builtins/gen/var/textureStore/6b80d2.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureStore/6b80d2.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,17 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWTexture1D<int4> arg_0 : register(u0, space1);
+void textureStore_6b80d2() {
+  int arg_1 = 1;
+  int4 arg_2 = (1).xxxx;
+  arg_0[arg_1] = arg_2;
+}
+
+void fragment_main() {
+  textureStore_6b80d2();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  textureStore_6b80d2();
+}
+
diff --git a/test/tint/builtins/gen/var/textureStore/6be9e0.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/textureStore/6be9e0.wgsl.expected.ir.dxc.hlsl
index 685a9ee..48d1fd6 100644
--- a/test/tint/builtins/gen/var/textureStore/6be9e0.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureStore/6be9e0.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,17 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWTexture3D<float4> arg_0 : register(u0, space1);
+void textureStore_6be9e0() {
+  int3 arg_1 = (1).xxx;
+  float4 arg_2 = (1.0f).xxxx;
+  arg_0[arg_1] = arg_2;
+}
+
+void fragment_main() {
+  textureStore_6be9e0();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  textureStore_6be9e0();
+}
+
diff --git a/test/tint/builtins/gen/var/textureStore/6be9e0.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/textureStore/6be9e0.wgsl.expected.ir.fxc.hlsl
index 685a9ee..48d1fd6 100644
--- a/test/tint/builtins/gen/var/textureStore/6be9e0.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureStore/6be9e0.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,17 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWTexture3D<float4> arg_0 : register(u0, space1);
+void textureStore_6be9e0() {
+  int3 arg_1 = (1).xxx;
+  float4 arg_2 = (1.0f).xxxx;
+  arg_0[arg_1] = arg_2;
+}
+
+void fragment_main() {
+  textureStore_6be9e0();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  textureStore_6be9e0();
+}
+
diff --git a/test/tint/builtins/gen/var/textureStore/6c4a70.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/textureStore/6c4a70.wgsl.expected.ir.dxc.hlsl
index 685a9ee..f651bef 100644
--- a/test/tint/builtins/gen/var/textureStore/6c4a70.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureStore/6c4a70.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,17 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWTexture2D<int4> arg_0 : register(u0, space1);
+void textureStore_6c4a70() {
+  uint2 arg_1 = (1u).xx;
+  int4 arg_2 = (1).xxxx;
+  arg_0[arg_1] = arg_2;
+}
+
+void fragment_main() {
+  textureStore_6c4a70();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  textureStore_6c4a70();
+}
+
diff --git a/test/tint/builtins/gen/var/textureStore/6c4a70.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/textureStore/6c4a70.wgsl.expected.ir.fxc.hlsl
index 685a9ee..f651bef 100644
--- a/test/tint/builtins/gen/var/textureStore/6c4a70.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureStore/6c4a70.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,17 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWTexture2D<int4> arg_0 : register(u0, space1);
+void textureStore_6c4a70() {
+  uint2 arg_1 = (1u).xx;
+  int4 arg_2 = (1).xxxx;
+  arg_0[arg_1] = arg_2;
+}
+
+void fragment_main() {
+  textureStore_6c4a70();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  textureStore_6c4a70();
+}
+
diff --git a/test/tint/builtins/gen/var/textureStore/6cff2e.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/textureStore/6cff2e.wgsl.expected.ir.dxc.hlsl
index 685a9ee..308bf85 100644
--- a/test/tint/builtins/gen/var/textureStore/6cff2e.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureStore/6cff2e.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,17 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWTexture2D<uint4> arg_0 : register(u0, space1);
+void textureStore_6cff2e() {
+  int2 arg_1 = (1).xx;
+  uint4 arg_2 = (1u).xxxx;
+  arg_0[arg_1] = arg_2;
+}
+
+void fragment_main() {
+  textureStore_6cff2e();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  textureStore_6cff2e();
+}
+
diff --git a/test/tint/builtins/gen/var/textureStore/6cff2e.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/textureStore/6cff2e.wgsl.expected.ir.fxc.hlsl
index 685a9ee..308bf85 100644
--- a/test/tint/builtins/gen/var/textureStore/6cff2e.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureStore/6cff2e.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,17 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWTexture2D<uint4> arg_0 : register(u0, space1);
+void textureStore_6cff2e() {
+  int2 arg_1 = (1).xx;
+  uint4 arg_2 = (1u).xxxx;
+  arg_0[arg_1] = arg_2;
+}
+
+void fragment_main() {
+  textureStore_6cff2e();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  textureStore_6cff2e();
+}
+
diff --git a/test/tint/builtins/gen/var/textureStore/6d1809.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/textureStore/6d1809.wgsl.expected.ir.dxc.hlsl
index 685a9ee..338270e 100644
--- a/test/tint/builtins/gen/var/textureStore/6d1809.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureStore/6d1809.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,21 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWTexture2DArray<float4> arg_0 : register(u0, space1);
+void textureStore_6d1809() {
+  uint2 arg_1 = (1u).xx;
+  uint arg_2 = 1u;
+  float4 arg_3 = (1.0f).xxxx;
+  RWTexture2DArray<float4> v = arg_0;
+  uint2 v_1 = arg_1;
+  float4 v_2 = arg_3;
+  v[uint3(v_1, uint(arg_2))] = v_2;
+}
+
+void fragment_main() {
+  textureStore_6d1809();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  textureStore_6d1809();
+}
+
diff --git a/test/tint/builtins/gen/var/textureStore/6d1809.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/textureStore/6d1809.wgsl.expected.ir.fxc.hlsl
index 685a9ee..338270e 100644
--- a/test/tint/builtins/gen/var/textureStore/6d1809.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureStore/6d1809.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,21 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWTexture2DArray<float4> arg_0 : register(u0, space1);
+void textureStore_6d1809() {
+  uint2 arg_1 = (1u).xx;
+  uint arg_2 = 1u;
+  float4 arg_3 = (1.0f).xxxx;
+  RWTexture2DArray<float4> v = arg_0;
+  uint2 v_1 = arg_1;
+  float4 v_2 = arg_3;
+  v[uint3(v_1, uint(arg_2))] = v_2;
+}
+
+void fragment_main() {
+  textureStore_6d1809();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  textureStore_6d1809();
+}
+
diff --git a/test/tint/builtins/gen/var/textureStore/6d259f.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/textureStore/6d259f.wgsl.expected.ir.dxc.hlsl
index 685a9ee..dd25177 100644
--- a/test/tint/builtins/gen/var/textureStore/6d259f.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureStore/6d259f.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,17 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWTexture2D<uint4> arg_0 : register(u0, space1);
+void textureStore_6d259f() {
+  int2 arg_1 = (1).xx;
+  uint4 arg_2 = (1u).xxxx;
+  arg_0[arg_1] = arg_2;
+}
+
+void fragment_main() {
+  textureStore_6d259f();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  textureStore_6d259f();
+}
+
diff --git a/test/tint/builtins/gen/var/textureStore/6d259f.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/textureStore/6d259f.wgsl.expected.ir.fxc.hlsl
index 685a9ee..dd25177 100644
--- a/test/tint/builtins/gen/var/textureStore/6d259f.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureStore/6d259f.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,17 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWTexture2D<uint4> arg_0 : register(u0, space1);
+void textureStore_6d259f() {
+  int2 arg_1 = (1).xx;
+  uint4 arg_2 = (1u).xxxx;
+  arg_0[arg_1] = arg_2;
+}
+
+void fragment_main() {
+  textureStore_6d259f();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  textureStore_6d259f();
+}
+
diff --git a/test/tint/builtins/gen/var/textureStore/6da692.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/textureStore/6da692.wgsl.expected.ir.dxc.hlsl
index 685a9ee..9997fce 100644
--- a/test/tint/builtins/gen/var/textureStore/6da692.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureStore/6da692.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,21 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWTexture2DArray<uint4> arg_0 : register(u0, space1);
+void textureStore_6da692() {
+  int2 arg_1 = (1).xx;
+  int arg_2 = 1;
+  uint4 arg_3 = (1u).xxxx;
+  RWTexture2DArray<uint4> v = arg_0;
+  int2 v_1 = arg_1;
+  uint4 v_2 = arg_3;
+  v[int3(v_1, int(arg_2))] = v_2;
+}
+
+void fragment_main() {
+  textureStore_6da692();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  textureStore_6da692();
+}
+
diff --git a/test/tint/builtins/gen/var/textureStore/6da692.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/textureStore/6da692.wgsl.expected.ir.fxc.hlsl
index 685a9ee..9997fce 100644
--- a/test/tint/builtins/gen/var/textureStore/6da692.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureStore/6da692.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,21 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWTexture2DArray<uint4> arg_0 : register(u0, space1);
+void textureStore_6da692() {
+  int2 arg_1 = (1).xx;
+  int arg_2 = 1;
+  uint4 arg_3 = (1u).xxxx;
+  RWTexture2DArray<uint4> v = arg_0;
+  int2 v_1 = arg_1;
+  uint4 v_2 = arg_3;
+  v[int3(v_1, int(arg_2))] = v_2;
+}
+
+void fragment_main() {
+  textureStore_6da692();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  textureStore_6da692();
+}
+
diff --git a/test/tint/builtins/gen/var/textureStore/6e6cc0.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/textureStore/6e6cc0.wgsl.expected.ir.dxc.hlsl
index 685a9ee..c783e4c 100644
--- a/test/tint/builtins/gen/var/textureStore/6e6cc0.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureStore/6e6cc0.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,17 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWTexture1D<float4> arg_0 : register(u0, space1);
+void textureStore_6e6cc0() {
+  int arg_1 = 1;
+  float4 arg_2 = (1.0f).xxxx;
+  arg_0[arg_1] = arg_2;
+}
+
+void fragment_main() {
+  textureStore_6e6cc0();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  textureStore_6e6cc0();
+}
+
diff --git a/test/tint/builtins/gen/var/textureStore/6e6cc0.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/textureStore/6e6cc0.wgsl.expected.ir.fxc.hlsl
index 685a9ee..c783e4c 100644
--- a/test/tint/builtins/gen/var/textureStore/6e6cc0.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureStore/6e6cc0.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,17 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWTexture1D<float4> arg_0 : register(u0, space1);
+void textureStore_6e6cc0() {
+  int arg_1 = 1;
+  float4 arg_2 = (1.0f).xxxx;
+  arg_0[arg_1] = arg_2;
+}
+
+void fragment_main() {
+  textureStore_6e6cc0();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  textureStore_6e6cc0();
+}
+
diff --git a/test/tint/builtins/gen/var/textureStore/6f0c92.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/textureStore/6f0c92.wgsl.expected.ir.dxc.hlsl
index 685a9ee..7db29f5 100644
--- a/test/tint/builtins/gen/var/textureStore/6f0c92.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureStore/6f0c92.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,21 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWTexture2DArray<float4> arg_0 : register(u0, space1);
+void textureStore_6f0c92() {
+  uint2 arg_1 = (1u).xx;
+  int arg_2 = 1;
+  float4 arg_3 = (1.0f).xxxx;
+  RWTexture2DArray<float4> v = arg_0;
+  uint2 v_1 = arg_1;
+  float4 v_2 = arg_3;
+  v[uint3(v_1, uint(arg_2))] = v_2;
+}
+
+void fragment_main() {
+  textureStore_6f0c92();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  textureStore_6f0c92();
+}
+
diff --git a/test/tint/builtins/gen/var/textureStore/6f0c92.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/textureStore/6f0c92.wgsl.expected.ir.fxc.hlsl
index 685a9ee..7db29f5 100644
--- a/test/tint/builtins/gen/var/textureStore/6f0c92.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureStore/6f0c92.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,21 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWTexture2DArray<float4> arg_0 : register(u0, space1);
+void textureStore_6f0c92() {
+  uint2 arg_1 = (1u).xx;
+  int arg_2 = 1;
+  float4 arg_3 = (1.0f).xxxx;
+  RWTexture2DArray<float4> v = arg_0;
+  uint2 v_1 = arg_1;
+  float4 v_2 = arg_3;
+  v[uint3(v_1, uint(arg_2))] = v_2;
+}
+
+void fragment_main() {
+  textureStore_6f0c92();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  textureStore_6f0c92();
+}
+
diff --git a/test/tint/builtins/gen/var/textureStore/6f3542.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/textureStore/6f3542.wgsl.expected.ir.dxc.hlsl
index 685a9ee..a5709fd 100644
--- a/test/tint/builtins/gen/var/textureStore/6f3542.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureStore/6f3542.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,17 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWTexture3D<uint4> arg_0 : register(u0, space1);
+void textureStore_6f3542() {
+  int3 arg_1 = (1).xxx;
+  uint4 arg_2 = (1u).xxxx;
+  arg_0[arg_1] = arg_2;
+}
+
+void fragment_main() {
+  textureStore_6f3542();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  textureStore_6f3542();
+}
+
diff --git a/test/tint/builtins/gen/var/textureStore/6f3542.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/textureStore/6f3542.wgsl.expected.ir.fxc.hlsl
index 685a9ee..a5709fd 100644
--- a/test/tint/builtins/gen/var/textureStore/6f3542.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureStore/6f3542.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,17 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWTexture3D<uint4> arg_0 : register(u0, space1);
+void textureStore_6f3542() {
+  int3 arg_1 = (1).xxx;
+  uint4 arg_2 = (1u).xxxx;
+  arg_0[arg_1] = arg_2;
+}
+
+void fragment_main() {
+  textureStore_6f3542();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  textureStore_6f3542();
+}
+
diff --git a/test/tint/builtins/gen/var/textureStore/6f8642.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/textureStore/6f8642.wgsl.expected.ir.dxc.hlsl
index 685a9ee..b944ab1 100644
--- a/test/tint/builtins/gen/var/textureStore/6f8642.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureStore/6f8642.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,21 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWTexture2DArray<uint4> arg_0 : register(u0, space1);
+void textureStore_6f8642() {
+  uint2 arg_1 = (1u).xx;
+  int arg_2 = 1;
+  uint4 arg_3 = (1u).xxxx;
+  RWTexture2DArray<uint4> v = arg_0;
+  uint2 v_1 = arg_1;
+  uint4 v_2 = arg_3;
+  v[uint3(v_1, uint(arg_2))] = v_2;
+}
+
+void fragment_main() {
+  textureStore_6f8642();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  textureStore_6f8642();
+}
+
diff --git a/test/tint/builtins/gen/var/textureStore/6f8642.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/textureStore/6f8642.wgsl.expected.ir.fxc.hlsl
index 685a9ee..b944ab1 100644
--- a/test/tint/builtins/gen/var/textureStore/6f8642.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureStore/6f8642.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,21 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWTexture2DArray<uint4> arg_0 : register(u0, space1);
+void textureStore_6f8642() {
+  uint2 arg_1 = (1u).xx;
+  int arg_2 = 1;
+  uint4 arg_3 = (1u).xxxx;
+  RWTexture2DArray<uint4> v = arg_0;
+  uint2 v_1 = arg_1;
+  uint4 v_2 = arg_3;
+  v[uint3(v_1, uint(arg_2))] = v_2;
+}
+
+void fragment_main() {
+  textureStore_6f8642();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  textureStore_6f8642();
+}
+
diff --git a/test/tint/builtins/gen/var/textureStore/6fb99b.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/textureStore/6fb99b.wgsl.expected.ir.dxc.hlsl
index 685a9ee..2568a28 100644
--- a/test/tint/builtins/gen/var/textureStore/6fb99b.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureStore/6fb99b.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,17 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWTexture3D<float4> arg_0 : register(u0, space1);
+void textureStore_6fb99b() {
+  int3 arg_1 = (1).xxx;
+  float4 arg_2 = (1.0f).xxxx;
+  arg_0[arg_1] = arg_2;
+}
+
+void fragment_main() {
+  textureStore_6fb99b();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  textureStore_6fb99b();
+}
+
diff --git a/test/tint/builtins/gen/var/textureStore/6fb99b.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/textureStore/6fb99b.wgsl.expected.ir.fxc.hlsl
index 685a9ee..2568a28 100644
--- a/test/tint/builtins/gen/var/textureStore/6fb99b.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureStore/6fb99b.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,17 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWTexture3D<float4> arg_0 : register(u0, space1);
+void textureStore_6fb99b() {
+  int3 arg_1 = (1).xxx;
+  float4 arg_2 = (1.0f).xxxx;
+  arg_0[arg_1] = arg_2;
+}
+
+void fragment_main() {
+  textureStore_6fb99b();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  textureStore_6fb99b();
+}
+
diff --git a/test/tint/builtins/gen/var/textureStore/6fd2b1.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/textureStore/6fd2b1.wgsl.expected.ir.dxc.hlsl
index 685a9ee..15ae533 100644
--- a/test/tint/builtins/gen/var/textureStore/6fd2b1.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureStore/6fd2b1.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,17 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWTexture1D<float4> arg_0 : register(u0, space1);
+void textureStore_6fd2b1() {
+  uint arg_1 = 1u;
+  float4 arg_2 = (1.0f).xxxx;
+  arg_0[arg_1] = arg_2;
+}
+
+void fragment_main() {
+  textureStore_6fd2b1();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  textureStore_6fd2b1();
+}
+
diff --git a/test/tint/builtins/gen/var/textureStore/6fd2b1.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/textureStore/6fd2b1.wgsl.expected.ir.fxc.hlsl
index 685a9ee..15ae533 100644
--- a/test/tint/builtins/gen/var/textureStore/6fd2b1.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureStore/6fd2b1.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,17 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWTexture1D<float4> arg_0 : register(u0, space1);
+void textureStore_6fd2b1() {
+  uint arg_1 = 1u;
+  float4 arg_2 = (1.0f).xxxx;
+  arg_0[arg_1] = arg_2;
+}
+
+void fragment_main() {
+  textureStore_6fd2b1();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  textureStore_6fd2b1();
+}
+
diff --git a/test/tint/builtins/gen/var/textureStore/704e1f.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/textureStore/704e1f.wgsl.expected.ir.dxc.hlsl
index 685a9ee..2442aa9 100644
--- a/test/tint/builtins/gen/var/textureStore/704e1f.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureStore/704e1f.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,21 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWTexture2DArray<float4> arg_0 : register(u0, space1);
+void textureStore_704e1f() {
+  int2 arg_1 = (1).xx;
+  int arg_2 = 1;
+  float4 arg_3 = (1.0f).xxxx;
+  RWTexture2DArray<float4> v = arg_0;
+  int2 v_1 = arg_1;
+  float4 v_2 = arg_3;
+  v[int3(v_1, int(arg_2))] = v_2;
+}
+
+void fragment_main() {
+  textureStore_704e1f();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  textureStore_704e1f();
+}
+
diff --git a/test/tint/builtins/gen/var/textureStore/704e1f.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/textureStore/704e1f.wgsl.expected.ir.fxc.hlsl
index 685a9ee..2442aa9 100644
--- a/test/tint/builtins/gen/var/textureStore/704e1f.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureStore/704e1f.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,21 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWTexture2DArray<float4> arg_0 : register(u0, space1);
+void textureStore_704e1f() {
+  int2 arg_1 = (1).xx;
+  int arg_2 = 1;
+  float4 arg_3 = (1.0f).xxxx;
+  RWTexture2DArray<float4> v = arg_0;
+  int2 v_1 = arg_1;
+  float4 v_2 = arg_3;
+  v[int3(v_1, int(arg_2))] = v_2;
+}
+
+void fragment_main() {
+  textureStore_704e1f();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  textureStore_704e1f();
+}
+
diff --git a/test/tint/builtins/gen/var/textureStore/706236.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/textureStore/706236.wgsl.expected.ir.dxc.hlsl
index 685a9ee..90bce10 100644
--- a/test/tint/builtins/gen/var/textureStore/706236.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureStore/706236.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,17 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWTexture1D<float4> arg_0 : register(u0, space1);
+void textureStore_706236() {
+  int arg_1 = 1;
+  float4 arg_2 = (1.0f).xxxx;
+  arg_0[arg_1] = arg_2;
+}
+
+void fragment_main() {
+  textureStore_706236();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  textureStore_706236();
+}
+
diff --git a/test/tint/builtins/gen/var/textureStore/706236.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/textureStore/706236.wgsl.expected.ir.fxc.hlsl
index 685a9ee..90bce10 100644
--- a/test/tint/builtins/gen/var/textureStore/706236.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureStore/706236.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,17 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWTexture1D<float4> arg_0 : register(u0, space1);
+void textureStore_706236() {
+  int arg_1 = 1;
+  float4 arg_2 = (1.0f).xxxx;
+  arg_0[arg_1] = arg_2;
+}
+
+void fragment_main() {
+  textureStore_706236();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  textureStore_706236();
+}
+
diff --git a/test/tint/builtins/gen/var/textureStore/706560.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/textureStore/706560.wgsl.expected.ir.dxc.hlsl
index 685a9ee..dfba81c 100644
--- a/test/tint/builtins/gen/var/textureStore/706560.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureStore/706560.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,21 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWTexture2DArray<uint4> arg_0 : register(u0, space1);
+void textureStore_706560() {
+  int2 arg_1 = (1).xx;
+  uint arg_2 = 1u;
+  uint4 arg_3 = (1u).xxxx;
+  RWTexture2DArray<uint4> v = arg_0;
+  int2 v_1 = arg_1;
+  uint4 v_2 = arg_3;
+  v[int3(v_1, int(arg_2))] = v_2;
+}
+
+void fragment_main() {
+  textureStore_706560();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  textureStore_706560();
+}
+
diff --git a/test/tint/builtins/gen/var/textureStore/706560.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/textureStore/706560.wgsl.expected.ir.fxc.hlsl
index 685a9ee..dfba81c 100644
--- a/test/tint/builtins/gen/var/textureStore/706560.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureStore/706560.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,21 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWTexture2DArray<uint4> arg_0 : register(u0, space1);
+void textureStore_706560() {
+  int2 arg_1 = (1).xx;
+  uint arg_2 = 1u;
+  uint4 arg_3 = (1u).xxxx;
+  RWTexture2DArray<uint4> v = arg_0;
+  int2 v_1 = arg_1;
+  uint4 v_2 = arg_3;
+  v[int3(v_1, int(arg_2))] = v_2;
+}
+
+void fragment_main() {
+  textureStore_706560();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  textureStore_706560();
+}
+
diff --git a/test/tint/builtins/gen/var/textureStore/726472.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/textureStore/726472.wgsl.expected.ir.dxc.hlsl
index 685a9ee..6105a3f 100644
--- a/test/tint/builtins/gen/var/textureStore/726472.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureStore/726472.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,17 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWTexture2D<float4> arg_0 : register(u0, space1);
+void textureStore_726472() {
+  uint2 arg_1 = (1u).xx;
+  float4 arg_2 = (1.0f).xxxx;
+  arg_0[arg_1] = arg_2;
+}
+
+void fragment_main() {
+  textureStore_726472();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  textureStore_726472();
+}
+
diff --git a/test/tint/builtins/gen/var/textureStore/726472.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/textureStore/726472.wgsl.expected.ir.fxc.hlsl
index 685a9ee..6105a3f 100644
--- a/test/tint/builtins/gen/var/textureStore/726472.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureStore/726472.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,17 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWTexture2D<float4> arg_0 : register(u0, space1);
+void textureStore_726472() {
+  uint2 arg_1 = (1u).xx;
+  float4 arg_2 = (1.0f).xxxx;
+  arg_0[arg_1] = arg_2;
+}
+
+void fragment_main() {
+  textureStore_726472();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  textureStore_726472();
+}
+
diff --git a/test/tint/builtins/gen/var/textureStore/726d6d.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/textureStore/726d6d.wgsl.expected.ir.dxc.hlsl
index 685a9ee..3a2ce18 100644
--- a/test/tint/builtins/gen/var/textureStore/726d6d.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureStore/726d6d.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,17 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWTexture2D<float4> arg_0 : register(u0, space1);
+void textureStore_726d6d() {
+  uint2 arg_1 = (1u).xx;
+  float4 arg_2 = (1.0f).xxxx;
+  arg_0[arg_1] = arg_2;
+}
+
+void fragment_main() {
+  textureStore_726d6d();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  textureStore_726d6d();
+}
+
diff --git a/test/tint/builtins/gen/var/textureStore/726d6d.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/textureStore/726d6d.wgsl.expected.ir.fxc.hlsl
index 685a9ee..3a2ce18 100644
--- a/test/tint/builtins/gen/var/textureStore/726d6d.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureStore/726d6d.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,17 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWTexture2D<float4> arg_0 : register(u0, space1);
+void textureStore_726d6d() {
+  uint2 arg_1 = (1u).xx;
+  float4 arg_2 = (1.0f).xxxx;
+  arg_0[arg_1] = arg_2;
+}
+
+void fragment_main() {
+  textureStore_726d6d();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  textureStore_726d6d();
+}
+
diff --git a/test/tint/builtins/gen/var/textureStore/72fa64.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/textureStore/72fa64.wgsl.expected.ir.dxc.hlsl
index 685a9ee..5565693 100644
--- a/test/tint/builtins/gen/var/textureStore/72fa64.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureStore/72fa64.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,21 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWTexture2DArray<int4> arg_0 : register(u0, space1);
+void textureStore_72fa64() {
+  uint2 arg_1 = (1u).xx;
+  int arg_2 = 1;
+  int4 arg_3 = (1).xxxx;
+  RWTexture2DArray<int4> v = arg_0;
+  uint2 v_1 = arg_1;
+  int4 v_2 = arg_3;
+  v[uint3(v_1, uint(arg_2))] = v_2;
+}
+
+void fragment_main() {
+  textureStore_72fa64();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  textureStore_72fa64();
+}
+
diff --git a/test/tint/builtins/gen/var/textureStore/72fa64.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/textureStore/72fa64.wgsl.expected.ir.fxc.hlsl
index 685a9ee..5565693 100644
--- a/test/tint/builtins/gen/var/textureStore/72fa64.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureStore/72fa64.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,21 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWTexture2DArray<int4> arg_0 : register(u0, space1);
+void textureStore_72fa64() {
+  uint2 arg_1 = (1u).xx;
+  int arg_2 = 1;
+  int4 arg_3 = (1).xxxx;
+  RWTexture2DArray<int4> v = arg_0;
+  uint2 v_1 = arg_1;
+  int4 v_2 = arg_3;
+  v[uint3(v_1, uint(arg_2))] = v_2;
+}
+
+void fragment_main() {
+  textureStore_72fa64();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  textureStore_72fa64();
+}
+
diff --git a/test/tint/builtins/gen/var/textureStore/731349.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/textureStore/731349.wgsl.expected.ir.dxc.hlsl
index 685a9ee..8410678 100644
--- a/test/tint/builtins/gen/var/textureStore/731349.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureStore/731349.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,17 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWTexture2D<float4> arg_0 : register(u0, space1);
+void textureStore_731349() {
+  int2 arg_1 = (1).xx;
+  float4 arg_2 = (1.0f).xxxx;
+  arg_0[arg_1] = arg_2;
+}
+
+void fragment_main() {
+  textureStore_731349();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  textureStore_731349();
+}
+
diff --git a/test/tint/builtins/gen/var/textureStore/731349.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/textureStore/731349.wgsl.expected.ir.fxc.hlsl
index 685a9ee..8410678 100644
--- a/test/tint/builtins/gen/var/textureStore/731349.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureStore/731349.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,17 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWTexture2D<float4> arg_0 : register(u0, space1);
+void textureStore_731349() {
+  int2 arg_1 = (1).xx;
+  float4 arg_2 = (1.0f).xxxx;
+  arg_0[arg_1] = arg_2;
+}
+
+void fragment_main() {
+  textureStore_731349();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  textureStore_731349();
+}
+
diff --git a/test/tint/builtins/gen/var/textureStore/73a735.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/textureStore/73a735.wgsl.expected.ir.dxc.hlsl
index 685a9ee..1cea391 100644
--- a/test/tint/builtins/gen/var/textureStore/73a735.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureStore/73a735.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,21 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWTexture2DArray<int4> arg_0 : register(u0, space1);
+void textureStore_73a735() {
+  uint2 arg_1 = (1u).xx;
+  int arg_2 = 1;
+  int4 arg_3 = (1).xxxx;
+  RWTexture2DArray<int4> v = arg_0;
+  uint2 v_1 = arg_1;
+  int4 v_2 = arg_3;
+  v[uint3(v_1, uint(arg_2))] = v_2;
+}
+
+void fragment_main() {
+  textureStore_73a735();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  textureStore_73a735();
+}
+
diff --git a/test/tint/builtins/gen/var/textureStore/73a735.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/textureStore/73a735.wgsl.expected.ir.fxc.hlsl
index 685a9ee..1cea391 100644
--- a/test/tint/builtins/gen/var/textureStore/73a735.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureStore/73a735.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,21 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWTexture2DArray<int4> arg_0 : register(u0, space1);
+void textureStore_73a735() {
+  uint2 arg_1 = (1u).xx;
+  int arg_2 = 1;
+  int4 arg_3 = (1).xxxx;
+  RWTexture2DArray<int4> v = arg_0;
+  uint2 v_1 = arg_1;
+  int4 v_2 = arg_3;
+  v[uint3(v_1, uint(arg_2))] = v_2;
+}
+
+void fragment_main() {
+  textureStore_73a735();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  textureStore_73a735();
+}
+
diff --git a/test/tint/builtins/gen/var/textureStore/73bbbc.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/textureStore/73bbbc.wgsl.expected.ir.dxc.hlsl
index 685a9ee..54052cd 100644
--- a/test/tint/builtins/gen/var/textureStore/73bbbc.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureStore/73bbbc.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,17 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWTexture2D<float4> arg_0 : register(u0, space1);
+void textureStore_73bbbc() {
+  uint2 arg_1 = (1u).xx;
+  float4 arg_2 = (1.0f).xxxx;
+  arg_0[arg_1] = arg_2;
+}
+
+void fragment_main() {
+  textureStore_73bbbc();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  textureStore_73bbbc();
+}
+
diff --git a/test/tint/builtins/gen/var/textureStore/73bbbc.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/textureStore/73bbbc.wgsl.expected.ir.fxc.hlsl
index 685a9ee..54052cd 100644
--- a/test/tint/builtins/gen/var/textureStore/73bbbc.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureStore/73bbbc.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,17 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWTexture2D<float4> arg_0 : register(u0, space1);
+void textureStore_73bbbc() {
+  uint2 arg_1 = (1u).xx;
+  float4 arg_2 = (1.0f).xxxx;
+  arg_0[arg_1] = arg_2;
+}
+
+void fragment_main() {
+  textureStore_73bbbc();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  textureStore_73bbbc();
+}
+
diff --git a/test/tint/builtins/gen/var/textureStore/74886f.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/textureStore/74886f.wgsl.expected.ir.dxc.hlsl
index 685a9ee..d18d2b5 100644
--- a/test/tint/builtins/gen/var/textureStore/74886f.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureStore/74886f.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,17 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWTexture1D<float4> arg_0 : register(u0, space1);
+void textureStore_74886f() {
+  int arg_1 = 1;
+  float4 arg_2 = (1.0f).xxxx;
+  arg_0[arg_1] = arg_2;
+}
+
+void fragment_main() {
+  textureStore_74886f();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  textureStore_74886f();
+}
+
diff --git a/test/tint/builtins/gen/var/textureStore/74886f.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/textureStore/74886f.wgsl.expected.ir.fxc.hlsl
index 685a9ee..d18d2b5 100644
--- a/test/tint/builtins/gen/var/textureStore/74886f.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureStore/74886f.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,17 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWTexture1D<float4> arg_0 : register(u0, space1);
+void textureStore_74886f() {
+  int arg_1 = 1;
+  float4 arg_2 = (1.0f).xxxx;
+  arg_0[arg_1] = arg_2;
+}
+
+void fragment_main() {
+  textureStore_74886f();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  textureStore_74886f();
+}
+
diff --git a/test/tint/builtins/gen/var/textureStore/751256.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/textureStore/751256.wgsl.expected.ir.dxc.hlsl
index 685a9ee..567828a 100644
--- a/test/tint/builtins/gen/var/textureStore/751256.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureStore/751256.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,17 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWTexture1D<uint4> arg_0 : register(u0, space1);
+void textureStore_751256() {
+  int arg_1 = 1;
+  uint4 arg_2 = (1u).xxxx;
+  arg_0[arg_1] = arg_2;
+}
+
+void fragment_main() {
+  textureStore_751256();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  textureStore_751256();
+}
+
diff --git a/test/tint/builtins/gen/var/textureStore/751256.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/textureStore/751256.wgsl.expected.ir.fxc.hlsl
index 685a9ee..567828a 100644
--- a/test/tint/builtins/gen/var/textureStore/751256.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureStore/751256.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,17 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWTexture1D<uint4> arg_0 : register(u0, space1);
+void textureStore_751256() {
+  int arg_1 = 1;
+  uint4 arg_2 = (1u).xxxx;
+  arg_0[arg_1] = arg_2;
+}
+
+void fragment_main() {
+  textureStore_751256();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  textureStore_751256();
+}
+
diff --git a/test/tint/builtins/gen/var/textureStore/752da6.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/textureStore/752da6.wgsl.expected.ir.dxc.hlsl
index 685a9ee..a1a653a 100644
--- a/test/tint/builtins/gen/var/textureStore/752da6.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureStore/752da6.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,17 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWTexture2D<int4> arg_0 : register(u0, space1);
+void textureStore_752da6() {
+  int2 arg_1 = (1).xx;
+  int4 arg_2 = (1).xxxx;
+  arg_0[arg_1] = arg_2;
+}
+
+void fragment_main() {
+  textureStore_752da6();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  textureStore_752da6();
+}
+
diff --git a/test/tint/builtins/gen/var/textureStore/752da6.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/textureStore/752da6.wgsl.expected.ir.fxc.hlsl
index 685a9ee..a1a653a 100644
--- a/test/tint/builtins/gen/var/textureStore/752da6.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureStore/752da6.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,17 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWTexture2D<int4> arg_0 : register(u0, space1);
+void textureStore_752da6() {
+  int2 arg_1 = (1).xx;
+  int4 arg_2 = (1).xxxx;
+  arg_0[arg_1] = arg_2;
+}
+
+void fragment_main() {
+  textureStore_752da6();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  textureStore_752da6();
+}
+
diff --git a/test/tint/builtins/gen/var/textureStore/75bbd5.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/textureStore/75bbd5.wgsl.expected.ir.dxc.hlsl
index 685a9ee..76d6916 100644
--- a/test/tint/builtins/gen/var/textureStore/75bbd5.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureStore/75bbd5.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,21 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWTexture2DArray<uint4> arg_0 : register(u0, space1);
+void textureStore_75bbd5() {
+  int2 arg_1 = (1).xx;
+  uint arg_2 = 1u;
+  uint4 arg_3 = (1u).xxxx;
+  RWTexture2DArray<uint4> v = arg_0;
+  int2 v_1 = arg_1;
+  uint4 v_2 = arg_3;
+  v[int3(v_1, int(arg_2))] = v_2;
+}
+
+void fragment_main() {
+  textureStore_75bbd5();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  textureStore_75bbd5();
+}
+
diff --git a/test/tint/builtins/gen/var/textureStore/75bbd5.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/textureStore/75bbd5.wgsl.expected.ir.fxc.hlsl
index 685a9ee..76d6916 100644
--- a/test/tint/builtins/gen/var/textureStore/75bbd5.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureStore/75bbd5.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,21 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWTexture2DArray<uint4> arg_0 : register(u0, space1);
+void textureStore_75bbd5() {
+  int2 arg_1 = (1).xx;
+  uint arg_2 = 1u;
+  uint4 arg_3 = (1u).xxxx;
+  RWTexture2DArray<uint4> v = arg_0;
+  int2 v_1 = arg_1;
+  uint4 v_2 = arg_3;
+  v[int3(v_1, int(arg_2))] = v_2;
+}
+
+void fragment_main() {
+  textureStore_75bbd5();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  textureStore_75bbd5();
+}
+
diff --git a/test/tint/builtins/gen/var/textureStore/76affd.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/textureStore/76affd.wgsl.expected.ir.dxc.hlsl
index 685a9ee..081fbc3 100644
--- a/test/tint/builtins/gen/var/textureStore/76affd.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureStore/76affd.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,21 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWTexture2DArray<float4> arg_0 : register(u0, space1);
+void textureStore_76affd() {
+  int2 arg_1 = (1).xx;
+  uint arg_2 = 1u;
+  float4 arg_3 = (1.0f).xxxx;
+  RWTexture2DArray<float4> v = arg_0;
+  int2 v_1 = arg_1;
+  float4 v_2 = arg_3;
+  v[int3(v_1, int(arg_2))] = v_2;
+}
+
+void fragment_main() {
+  textureStore_76affd();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  textureStore_76affd();
+}
+
diff --git a/test/tint/builtins/gen/var/textureStore/76affd.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/textureStore/76affd.wgsl.expected.ir.fxc.hlsl
index 685a9ee..081fbc3 100644
--- a/test/tint/builtins/gen/var/textureStore/76affd.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureStore/76affd.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,21 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWTexture2DArray<float4> arg_0 : register(u0, space1);
+void textureStore_76affd() {
+  int2 arg_1 = (1).xx;
+  uint arg_2 = 1u;
+  float4 arg_3 = (1.0f).xxxx;
+  RWTexture2DArray<float4> v = arg_0;
+  int2 v_1 = arg_1;
+  float4 v_2 = arg_3;
+  v[int3(v_1, int(arg_2))] = v_2;
+}
+
+void fragment_main() {
+  textureStore_76affd();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  textureStore_76affd();
+}
+
diff --git a/test/tint/builtins/gen/var/textureStore/7792fa.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/textureStore/7792fa.wgsl.expected.ir.dxc.hlsl
index 685a9ee..14dae3d 100644
--- a/test/tint/builtins/gen/var/textureStore/7792fa.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureStore/7792fa.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,17 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWTexture3D<int4> arg_0 : register(u0, space1);
+void textureStore_7792fa() {
+  uint3 arg_1 = (1u).xxx;
+  int4 arg_2 = (1).xxxx;
+  arg_0[arg_1] = arg_2;
+}
+
+void fragment_main() {
+  textureStore_7792fa();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  textureStore_7792fa();
+}
+
diff --git a/test/tint/builtins/gen/var/textureStore/7792fa.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/textureStore/7792fa.wgsl.expected.ir.fxc.hlsl
index 685a9ee..14dae3d 100644
--- a/test/tint/builtins/gen/var/textureStore/7792fa.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureStore/7792fa.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,17 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWTexture3D<int4> arg_0 : register(u0, space1);
+void textureStore_7792fa() {
+  uint3 arg_1 = (1u).xxx;
+  int4 arg_2 = (1).xxxx;
+  arg_0[arg_1] = arg_2;
+}
+
+void fragment_main() {
+  textureStore_7792fa();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  textureStore_7792fa();
+}
+
diff --git a/test/tint/builtins/gen/var/textureStore/779d14.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/textureStore/779d14.wgsl.expected.ir.dxc.hlsl
index 685a9ee..1dfb30a 100644
--- a/test/tint/builtins/gen/var/textureStore/779d14.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureStore/779d14.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,21 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWTexture2DArray<uint4> arg_0 : register(u0, space1);
+void textureStore_779d14() {
+  uint2 arg_1 = (1u).xx;
+  uint arg_2 = 1u;
+  uint4 arg_3 = (1u).xxxx;
+  RWTexture2DArray<uint4> v = arg_0;
+  uint2 v_1 = arg_1;
+  uint4 v_2 = arg_3;
+  v[uint3(v_1, uint(arg_2))] = v_2;
+}
+
+void fragment_main() {
+  textureStore_779d14();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  textureStore_779d14();
+}
+
diff --git a/test/tint/builtins/gen/var/textureStore/779d14.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/textureStore/779d14.wgsl.expected.ir.fxc.hlsl
index 685a9ee..1dfb30a 100644
--- a/test/tint/builtins/gen/var/textureStore/779d14.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureStore/779d14.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,21 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWTexture2DArray<uint4> arg_0 : register(u0, space1);
+void textureStore_779d14() {
+  uint2 arg_1 = (1u).xx;
+  uint arg_2 = 1u;
+  uint4 arg_3 = (1u).xxxx;
+  RWTexture2DArray<uint4> v = arg_0;
+  uint2 v_1 = arg_1;
+  uint4 v_2 = arg_3;
+  v[uint3(v_1, uint(arg_2))] = v_2;
+}
+
+void fragment_main() {
+  textureStore_779d14();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  textureStore_779d14();
+}
+
diff --git a/test/tint/builtins/gen/var/textureStore/77c0ae.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/textureStore/77c0ae.wgsl.expected.ir.dxc.hlsl
index 685a9ee..86a6996 100644
--- a/test/tint/builtins/gen/var/textureStore/77c0ae.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureStore/77c0ae.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,17 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWTexture2D<uint4> arg_0 : register(u0, space1);
+void textureStore_77c0ae() {
+  int2 arg_1 = (1).xx;
+  uint4 arg_2 = (1u).xxxx;
+  arg_0[arg_1] = arg_2;
+}
+
+void fragment_main() {
+  textureStore_77c0ae();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  textureStore_77c0ae();
+}
+
diff --git a/test/tint/builtins/gen/var/textureStore/77c0ae.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/textureStore/77c0ae.wgsl.expected.ir.fxc.hlsl
index 685a9ee..86a6996 100644
--- a/test/tint/builtins/gen/var/textureStore/77c0ae.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureStore/77c0ae.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,17 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWTexture2D<uint4> arg_0 : register(u0, space1);
+void textureStore_77c0ae() {
+  int2 arg_1 = (1).xx;
+  uint4 arg_2 = (1u).xxxx;
+  arg_0[arg_1] = arg_2;
+}
+
+void fragment_main() {
+  textureStore_77c0ae();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  textureStore_77c0ae();
+}
+
diff --git a/test/tint/builtins/gen/var/textureStore/7b8f86.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/textureStore/7b8f86.wgsl.expected.ir.dxc.hlsl
index 685a9ee..b3532f7 100644
--- a/test/tint/builtins/gen/var/textureStore/7b8f86.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureStore/7b8f86.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,17 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWTexture3D<float4> arg_0 : register(u0, space1);
+void textureStore_7b8f86() {
+  uint3 arg_1 = (1u).xxx;
+  float4 arg_2 = (1.0f).xxxx;
+  arg_0[arg_1] = arg_2;
+}
+
+void fragment_main() {
+  textureStore_7b8f86();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  textureStore_7b8f86();
+}
+
diff --git a/test/tint/builtins/gen/var/textureStore/7b8f86.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/textureStore/7b8f86.wgsl.expected.ir.fxc.hlsl
index 685a9ee..b3532f7 100644
--- a/test/tint/builtins/gen/var/textureStore/7b8f86.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureStore/7b8f86.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,17 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWTexture3D<float4> arg_0 : register(u0, space1);
+void textureStore_7b8f86() {
+  uint3 arg_1 = (1u).xxx;
+  float4 arg_2 = (1.0f).xxxx;
+  arg_0[arg_1] = arg_2;
+}
+
+void fragment_main() {
+  textureStore_7b8f86();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  textureStore_7b8f86();
+}
+
diff --git a/test/tint/builtins/gen/var/textureStore/7bb211.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/textureStore/7bb211.wgsl.expected.ir.dxc.hlsl
index 685a9ee..40f3a0c 100644
--- a/test/tint/builtins/gen/var/textureStore/7bb211.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureStore/7bb211.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,21 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWTexture2DArray<int4> arg_0 : register(u0, space1);
+void textureStore_7bb211() {
+  int2 arg_1 = (1).xx;
+  uint arg_2 = 1u;
+  int4 arg_3 = (1).xxxx;
+  RWTexture2DArray<int4> v = arg_0;
+  int2 v_1 = arg_1;
+  int4 v_2 = arg_3;
+  v[int3(v_1, int(arg_2))] = v_2;
+}
+
+void fragment_main() {
+  textureStore_7bb211();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  textureStore_7bb211();
+}
+
diff --git a/test/tint/builtins/gen/var/textureStore/7bb211.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/textureStore/7bb211.wgsl.expected.ir.fxc.hlsl
index 685a9ee..40f3a0c 100644
--- a/test/tint/builtins/gen/var/textureStore/7bb211.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureStore/7bb211.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,21 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWTexture2DArray<int4> arg_0 : register(u0, space1);
+void textureStore_7bb211() {
+  int2 arg_1 = (1).xx;
+  uint arg_2 = 1u;
+  int4 arg_3 = (1).xxxx;
+  RWTexture2DArray<int4> v = arg_0;
+  int2 v_1 = arg_1;
+  int4 v_2 = arg_3;
+  v[int3(v_1, int(arg_2))] = v_2;
+}
+
+void fragment_main() {
+  textureStore_7bb211();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  textureStore_7bb211();
+}
+
diff --git a/test/tint/builtins/gen/var/textureStore/7cec8d.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/textureStore/7cec8d.wgsl.expected.ir.dxc.hlsl
index 685a9ee..d372b0c 100644
--- a/test/tint/builtins/gen/var/textureStore/7cec8d.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureStore/7cec8d.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,21 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWTexture2DArray<int4> arg_0 : register(u0, space1);
+void textureStore_7cec8d() {
+  int2 arg_1 = (1).xx;
+  int arg_2 = 1;
+  int4 arg_3 = (1).xxxx;
+  RWTexture2DArray<int4> v = arg_0;
+  int2 v_1 = arg_1;
+  int4 v_2 = arg_3;
+  v[int3(v_1, int(arg_2))] = v_2;
+}
+
+void fragment_main() {
+  textureStore_7cec8d();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  textureStore_7cec8d();
+}
+
diff --git a/test/tint/builtins/gen/var/textureStore/7cec8d.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/textureStore/7cec8d.wgsl.expected.ir.fxc.hlsl
index 685a9ee..d372b0c 100644
--- a/test/tint/builtins/gen/var/textureStore/7cec8d.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureStore/7cec8d.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,21 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWTexture2DArray<int4> arg_0 : register(u0, space1);
+void textureStore_7cec8d() {
+  int2 arg_1 = (1).xx;
+  int arg_2 = 1;
+  int4 arg_3 = (1).xxxx;
+  RWTexture2DArray<int4> v = arg_0;
+  int2 v_1 = arg_1;
+  int4 v_2 = arg_3;
+  v[int3(v_1, int(arg_2))] = v_2;
+}
+
+void fragment_main() {
+  textureStore_7cec8d();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  textureStore_7cec8d();
+}
+
diff --git a/test/tint/builtins/gen/var/textureStore/7cf6e7.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/textureStore/7cf6e7.wgsl.expected.ir.dxc.hlsl
index 685a9ee..4afa624 100644
--- a/test/tint/builtins/gen/var/textureStore/7cf6e7.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureStore/7cf6e7.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,17 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWTexture2D<float4> arg_0 : register(u0, space1);
+void textureStore_7cf6e7() {
+  uint2 arg_1 = (1u).xx;
+  float4 arg_2 = (1.0f).xxxx;
+  arg_0[arg_1] = arg_2;
+}
+
+void fragment_main() {
+  textureStore_7cf6e7();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  textureStore_7cf6e7();
+}
+
diff --git a/test/tint/builtins/gen/var/textureStore/7cf6e7.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/textureStore/7cf6e7.wgsl.expected.ir.fxc.hlsl
index 685a9ee..4afa624 100644
--- a/test/tint/builtins/gen/var/textureStore/7cf6e7.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureStore/7cf6e7.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,17 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWTexture2D<float4> arg_0 : register(u0, space1);
+void textureStore_7cf6e7() {
+  uint2 arg_1 = (1u).xx;
+  float4 arg_2 = (1.0f).xxxx;
+  arg_0[arg_1] = arg_2;
+}
+
+void fragment_main() {
+  textureStore_7cf6e7();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  textureStore_7cf6e7();
+}
+
diff --git a/test/tint/builtins/gen/var/textureStore/7d10e0.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/textureStore/7d10e0.wgsl.expected.ir.dxc.hlsl
index 685a9ee..9aa38b9 100644
--- a/test/tint/builtins/gen/var/textureStore/7d10e0.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureStore/7d10e0.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,17 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWTexture1D<float4> arg_0 : register(u0, space1);
+void textureStore_7d10e0() {
+  uint arg_1 = 1u;
+  float4 arg_2 = (1.0f).xxxx;
+  arg_0[arg_1] = arg_2;
+}
+
+void fragment_main() {
+  textureStore_7d10e0();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  textureStore_7d10e0();
+}
+
diff --git a/test/tint/builtins/gen/var/textureStore/7d10e0.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/textureStore/7d10e0.wgsl.expected.ir.fxc.hlsl
index 685a9ee..9aa38b9 100644
--- a/test/tint/builtins/gen/var/textureStore/7d10e0.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureStore/7d10e0.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,17 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWTexture1D<float4> arg_0 : register(u0, space1);
+void textureStore_7d10e0() {
+  uint arg_1 = 1u;
+  float4 arg_2 = (1.0f).xxxx;
+  arg_0[arg_1] = arg_2;
+}
+
+void fragment_main() {
+  textureStore_7d10e0();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  textureStore_7d10e0();
+}
+
diff --git a/test/tint/builtins/gen/var/textureStore/7dd042.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/textureStore/7dd042.wgsl.expected.ir.dxc.hlsl
index 685a9ee..6b5868e 100644
--- a/test/tint/builtins/gen/var/textureStore/7dd042.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureStore/7dd042.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,21 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWTexture2DArray<int4> arg_0 : register(u0, space1);
+void textureStore_7dd042() {
+  int2 arg_1 = (1).xx;
+  int arg_2 = 1;
+  int4 arg_3 = (1).xxxx;
+  RWTexture2DArray<int4> v = arg_0;
+  int2 v_1 = arg_1;
+  int4 v_2 = arg_3;
+  v[int3(v_1, int(arg_2))] = v_2;
+}
+
+void fragment_main() {
+  textureStore_7dd042();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  textureStore_7dd042();
+}
+
diff --git a/test/tint/builtins/gen/var/textureStore/7dd042.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/textureStore/7dd042.wgsl.expected.ir.fxc.hlsl
index 685a9ee..6b5868e 100644
--- a/test/tint/builtins/gen/var/textureStore/7dd042.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureStore/7dd042.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,21 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWTexture2DArray<int4> arg_0 : register(u0, space1);
+void textureStore_7dd042() {
+  int2 arg_1 = (1).xx;
+  int arg_2 = 1;
+  int4 arg_3 = (1).xxxx;
+  RWTexture2DArray<int4> v = arg_0;
+  int2 v_1 = arg_1;
+  int4 v_2 = arg_3;
+  v[int3(v_1, int(arg_2))] = v_2;
+}
+
+void fragment_main() {
+  textureStore_7dd042();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  textureStore_7dd042();
+}
+
diff --git a/test/tint/builtins/gen/var/textureStore/7e787a.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/textureStore/7e787a.wgsl.expected.ir.dxc.hlsl
index 685a9ee..6699b4d 100644
--- a/test/tint/builtins/gen/var/textureStore/7e787a.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureStore/7e787a.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,17 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWTexture3D<float4> arg_0 : register(u0, space1);
+void textureStore_7e787a() {
+  int3 arg_1 = (1).xxx;
+  float4 arg_2 = (1.0f).xxxx;
+  arg_0[arg_1] = arg_2;
+}
+
+void fragment_main() {
+  textureStore_7e787a();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  textureStore_7e787a();
+}
+
diff --git a/test/tint/builtins/gen/var/textureStore/7e787a.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/textureStore/7e787a.wgsl.expected.ir.fxc.hlsl
index 685a9ee..6699b4d 100644
--- a/test/tint/builtins/gen/var/textureStore/7e787a.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureStore/7e787a.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,17 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWTexture3D<float4> arg_0 : register(u0, space1);
+void textureStore_7e787a() {
+  int3 arg_1 = (1).xxx;
+  float4 arg_2 = (1.0f).xxxx;
+  arg_0[arg_1] = arg_2;
+}
+
+void fragment_main() {
+  textureStore_7e787a();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  textureStore_7e787a();
+}
+
diff --git a/test/tint/builtins/gen/var/textureStore/7f7fae.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/textureStore/7f7fae.wgsl.expected.ir.dxc.hlsl
index 685a9ee..93d0665 100644
--- a/test/tint/builtins/gen/var/textureStore/7f7fae.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureStore/7f7fae.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,17 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWTexture1D<float4> arg_0 : register(u0, space1);
+void textureStore_7f7fae() {
+  int arg_1 = 1;
+  float4 arg_2 = (1.0f).xxxx;
+  arg_0[arg_1] = arg_2;
+}
+
+void fragment_main() {
+  textureStore_7f7fae();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  textureStore_7f7fae();
+}
+
diff --git a/test/tint/builtins/gen/var/textureStore/7f7fae.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/textureStore/7f7fae.wgsl.expected.ir.fxc.hlsl
index 685a9ee..93d0665 100644
--- a/test/tint/builtins/gen/var/textureStore/7f7fae.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureStore/7f7fae.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,17 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWTexture1D<float4> arg_0 : register(u0, space1);
+void textureStore_7f7fae() {
+  int arg_1 = 1;
+  float4 arg_2 = (1.0f).xxxx;
+  arg_0[arg_1] = arg_2;
+}
+
+void fragment_main() {
+  textureStore_7f7fae();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  textureStore_7f7fae();
+}
+
diff --git a/test/tint/builtins/gen/var/textureStore/803a10.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/textureStore/803a10.wgsl.expected.ir.dxc.hlsl
index 685a9ee..360fa6a 100644
--- a/test/tint/builtins/gen/var/textureStore/803a10.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureStore/803a10.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,17 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWTexture3D<float4> arg_0 : register(u0, space1);
+void textureStore_803a10() {
+  uint3 arg_1 = (1u).xxx;
+  float4 arg_2 = (1.0f).xxxx;
+  arg_0[arg_1] = arg_2;
+}
+
+void fragment_main() {
+  textureStore_803a10();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  textureStore_803a10();
+}
+
diff --git a/test/tint/builtins/gen/var/textureStore/803a10.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/textureStore/803a10.wgsl.expected.ir.fxc.hlsl
index 685a9ee..360fa6a 100644
--- a/test/tint/builtins/gen/var/textureStore/803a10.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureStore/803a10.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,17 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWTexture3D<float4> arg_0 : register(u0, space1);
+void textureStore_803a10() {
+  uint3 arg_1 = (1u).xxx;
+  float4 arg_2 = (1.0f).xxxx;
+  arg_0[arg_1] = arg_2;
+}
+
+void fragment_main() {
+  textureStore_803a10();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  textureStore_803a10();
+}
+
diff --git a/test/tint/builtins/gen/var/textureStore/804942.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/textureStore/804942.wgsl.expected.ir.dxc.hlsl
index 685a9ee..b070ffb 100644
--- a/test/tint/builtins/gen/var/textureStore/804942.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureStore/804942.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,17 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWTexture2D<int4> arg_0 : register(u0, space1);
+void textureStore_804942() {
+  int2 arg_1 = (1).xx;
+  int4 arg_2 = (1).xxxx;
+  arg_0[arg_1] = arg_2;
+}
+
+void fragment_main() {
+  textureStore_804942();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  textureStore_804942();
+}
+
diff --git a/test/tint/builtins/gen/var/textureStore/804942.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/textureStore/804942.wgsl.expected.ir.fxc.hlsl
index 685a9ee..b070ffb 100644
--- a/test/tint/builtins/gen/var/textureStore/804942.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureStore/804942.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,17 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWTexture2D<int4> arg_0 : register(u0, space1);
+void textureStore_804942() {
+  int2 arg_1 = (1).xx;
+  int4 arg_2 = (1).xxxx;
+  arg_0[arg_1] = arg_2;
+}
+
+void fragment_main() {
+  textureStore_804942();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  textureStore_804942();
+}
+
diff --git a/test/tint/builtins/gen/var/textureStore/805dae.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/textureStore/805dae.wgsl.expected.ir.dxc.hlsl
index 685a9ee..2af4275 100644
--- a/test/tint/builtins/gen/var/textureStore/805dae.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureStore/805dae.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,17 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWTexture2D<float4> arg_0 : register(u0, space1);
+void textureStore_805dae() {
+  int2 arg_1 = (1).xx;
+  float4 arg_2 = (1.0f).xxxx;
+  arg_0[arg_1] = arg_2;
+}
+
+void fragment_main() {
+  textureStore_805dae();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  textureStore_805dae();
+}
+
diff --git a/test/tint/builtins/gen/var/textureStore/805dae.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/textureStore/805dae.wgsl.expected.ir.fxc.hlsl
index 685a9ee..2af4275 100644
--- a/test/tint/builtins/gen/var/textureStore/805dae.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureStore/805dae.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,17 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWTexture2D<float4> arg_0 : register(u0, space1);
+void textureStore_805dae() {
+  int2 arg_1 = (1).xx;
+  float4 arg_2 = (1.0f).xxxx;
+  arg_0[arg_1] = arg_2;
+}
+
+void fragment_main() {
+  textureStore_805dae();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  textureStore_805dae();
+}
+
diff --git a/test/tint/builtins/gen/var/textureStore/80bf1d.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/textureStore/80bf1d.wgsl.expected.ir.dxc.hlsl
index 685a9ee..a317bb3 100644
--- a/test/tint/builtins/gen/var/textureStore/80bf1d.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureStore/80bf1d.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,17 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWTexture2D<int4> arg_0 : register(u0, space1);
+void textureStore_80bf1d() {
+  int2 arg_1 = (1).xx;
+  int4 arg_2 = (1).xxxx;
+  arg_0[arg_1] = arg_2;
+}
+
+void fragment_main() {
+  textureStore_80bf1d();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  textureStore_80bf1d();
+}
+
diff --git a/test/tint/builtins/gen/var/textureStore/80bf1d.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/textureStore/80bf1d.wgsl.expected.ir.fxc.hlsl
index 685a9ee..a317bb3 100644
--- a/test/tint/builtins/gen/var/textureStore/80bf1d.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureStore/80bf1d.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,17 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWTexture2D<int4> arg_0 : register(u0, space1);
+void textureStore_80bf1d() {
+  int2 arg_1 = (1).xx;
+  int4 arg_2 = (1).xxxx;
+  arg_0[arg_1] = arg_2;
+}
+
+void fragment_main() {
+  textureStore_80bf1d();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  textureStore_80bf1d();
+}
+
diff --git a/test/tint/builtins/gen/var/textureStore/818df6.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/textureStore/818df6.wgsl.expected.ir.dxc.hlsl
index 685a9ee..7178a64 100644
--- a/test/tint/builtins/gen/var/textureStore/818df6.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureStore/818df6.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,17 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWTexture3D<float4> arg_0 : register(u0, space1);
+void textureStore_818df6() {
+  uint3 arg_1 = (1u).xxx;
+  float4 arg_2 = (1.0f).xxxx;
+  arg_0[arg_1] = arg_2;
+}
+
+void fragment_main() {
+  textureStore_818df6();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  textureStore_818df6();
+}
+
diff --git a/test/tint/builtins/gen/var/textureStore/818df6.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/textureStore/818df6.wgsl.expected.ir.fxc.hlsl
index 685a9ee..7178a64 100644
--- a/test/tint/builtins/gen/var/textureStore/818df6.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureStore/818df6.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,17 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWTexture3D<float4> arg_0 : register(u0, space1);
+void textureStore_818df6() {
+  uint3 arg_1 = (1u).xxx;
+  float4 arg_2 = (1.0f).xxxx;
+  arg_0[arg_1] = arg_2;
+}
+
+void fragment_main() {
+  textureStore_818df6();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  textureStore_818df6();
+}
+
diff --git a/test/tint/builtins/gen/var/textureStore/81ae31.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/textureStore/81ae31.wgsl.expected.ir.dxc.hlsl
index 685a9ee..da7a8c0 100644
--- a/test/tint/builtins/gen/var/textureStore/81ae31.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureStore/81ae31.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,21 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWTexture2DArray<float4> arg_0 : register(u0, space1);
+void textureStore_81ae31() {
+  int2 arg_1 = (1).xx;
+  int arg_2 = 1;
+  float4 arg_3 = (1.0f).xxxx;
+  RWTexture2DArray<float4> v = arg_0;
+  int2 v_1 = arg_1;
+  float4 v_2 = arg_3;
+  v[int3(v_1, int(arg_2))] = v_2;
+}
+
+void fragment_main() {
+  textureStore_81ae31();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  textureStore_81ae31();
+}
+
diff --git a/test/tint/builtins/gen/var/textureStore/81ae31.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/textureStore/81ae31.wgsl.expected.ir.fxc.hlsl
index 685a9ee..da7a8c0 100644
--- a/test/tint/builtins/gen/var/textureStore/81ae31.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureStore/81ae31.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,21 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWTexture2DArray<float4> arg_0 : register(u0, space1);
+void textureStore_81ae31() {
+  int2 arg_1 = (1).xx;
+  int arg_2 = 1;
+  float4 arg_3 = (1.0f).xxxx;
+  RWTexture2DArray<float4> v = arg_0;
+  int2 v_1 = arg_1;
+  float4 v_2 = arg_3;
+  v[int3(v_1, int(arg_2))] = v_2;
+}
+
+void fragment_main() {
+  textureStore_81ae31();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  textureStore_81ae31();
+}
+
diff --git a/test/tint/builtins/gen/var/textureStore/820272.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/textureStore/820272.wgsl.expected.ir.dxc.hlsl
index 685a9ee..65b71f7 100644
--- a/test/tint/builtins/gen/var/textureStore/820272.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureStore/820272.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,21 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWTexture2DArray<int4> arg_0 : register(u0, space1);
+void textureStore_820272() {
+  int2 arg_1 = (1).xx;
+  uint arg_2 = 1u;
+  int4 arg_3 = (1).xxxx;
+  RWTexture2DArray<int4> v = arg_0;
+  int2 v_1 = arg_1;
+  int4 v_2 = arg_3;
+  v[int3(v_1, int(arg_2))] = v_2;
+}
+
+void fragment_main() {
+  textureStore_820272();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  textureStore_820272();
+}
+
diff --git a/test/tint/builtins/gen/var/textureStore/820272.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/textureStore/820272.wgsl.expected.ir.fxc.hlsl
index 685a9ee..65b71f7 100644
--- a/test/tint/builtins/gen/var/textureStore/820272.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureStore/820272.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,21 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWTexture2DArray<int4> arg_0 : register(u0, space1);
+void textureStore_820272() {
+  int2 arg_1 = (1).xx;
+  uint arg_2 = 1u;
+  int4 arg_3 = (1).xxxx;
+  RWTexture2DArray<int4> v = arg_0;
+  int2 v_1 = arg_1;
+  int4 v_2 = arg_3;
+  v[int3(v_1, int(arg_2))] = v_2;
+}
+
+void fragment_main() {
+  textureStore_820272();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  textureStore_820272();
+}
+
diff --git a/test/tint/builtins/gen/var/textureStore/83bcc1.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/textureStore/83bcc1.wgsl.expected.ir.dxc.hlsl
index 685a9ee..de2e7f8 100644
--- a/test/tint/builtins/gen/var/textureStore/83bcc1.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureStore/83bcc1.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,17 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWTexture1D<uint4> arg_0 : register(u0, space1);
+void textureStore_83bcc1() {
+  int arg_1 = 1;
+  uint4 arg_2 = (1u).xxxx;
+  arg_0[arg_1] = arg_2;
+}
+
+void fragment_main() {
+  textureStore_83bcc1();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  textureStore_83bcc1();
+}
+
diff --git a/test/tint/builtins/gen/var/textureStore/83bcc1.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/textureStore/83bcc1.wgsl.expected.ir.fxc.hlsl
index 685a9ee..de2e7f8 100644
--- a/test/tint/builtins/gen/var/textureStore/83bcc1.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureStore/83bcc1.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,17 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWTexture1D<uint4> arg_0 : register(u0, space1);
+void textureStore_83bcc1() {
+  int arg_1 = 1;
+  uint4 arg_2 = (1u).xxxx;
+  arg_0[arg_1] = arg_2;
+}
+
+void fragment_main() {
+  textureStore_83bcc1();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  textureStore_83bcc1();
+}
+
diff --git a/test/tint/builtins/gen/var/textureStore/84d435.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/textureStore/84d435.wgsl.expected.ir.dxc.hlsl
index 685a9ee..25799fe 100644
--- a/test/tint/builtins/gen/var/textureStore/84d435.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureStore/84d435.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,21 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWTexture2DArray<int4> arg_0 : register(u0, space1);
+void textureStore_84d435() {
+  int2 arg_1 = (1).xx;
+  int arg_2 = 1;
+  int4 arg_3 = (1).xxxx;
+  RWTexture2DArray<int4> v = arg_0;
+  int2 v_1 = arg_1;
+  int4 v_2 = arg_3;
+  v[int3(v_1, int(arg_2))] = v_2;
+}
+
+void fragment_main() {
+  textureStore_84d435();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  textureStore_84d435();
+}
+
diff --git a/test/tint/builtins/gen/var/textureStore/84d435.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/textureStore/84d435.wgsl.expected.ir.fxc.hlsl
index 685a9ee..25799fe 100644
--- a/test/tint/builtins/gen/var/textureStore/84d435.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureStore/84d435.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,21 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWTexture2DArray<int4> arg_0 : register(u0, space1);
+void textureStore_84d435() {
+  int2 arg_1 = (1).xx;
+  int arg_2 = 1;
+  int4 arg_3 = (1).xxxx;
+  RWTexture2DArray<int4> v = arg_0;
+  int2 v_1 = arg_1;
+  int4 v_2 = arg_3;
+  v[int3(v_1, int(arg_2))] = v_2;
+}
+
+void fragment_main() {
+  textureStore_84d435();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  textureStore_84d435();
+}
+
diff --git a/test/tint/builtins/gen/var/textureStore/84f4f4.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/textureStore/84f4f4.wgsl.expected.ir.dxc.hlsl
index 685a9ee..bb8487c 100644
--- a/test/tint/builtins/gen/var/textureStore/84f4f4.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureStore/84f4f4.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,21 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWTexture2DArray<int4> arg_0 : register(u0, space1);
+void textureStore_84f4f4() {
+  uint2 arg_1 = (1u).xx;
+  int arg_2 = 1;
+  int4 arg_3 = (1).xxxx;
+  RWTexture2DArray<int4> v = arg_0;
+  uint2 v_1 = arg_1;
+  int4 v_2 = arg_3;
+  v[uint3(v_1, uint(arg_2))] = v_2;
+}
+
+void fragment_main() {
+  textureStore_84f4f4();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  textureStore_84f4f4();
+}
+
diff --git a/test/tint/builtins/gen/var/textureStore/84f4f4.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/textureStore/84f4f4.wgsl.expected.ir.fxc.hlsl
index 685a9ee..bb8487c 100644
--- a/test/tint/builtins/gen/var/textureStore/84f4f4.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureStore/84f4f4.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,21 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWTexture2DArray<int4> arg_0 : register(u0, space1);
+void textureStore_84f4f4() {
+  uint2 arg_1 = (1u).xx;
+  int arg_2 = 1;
+  int4 arg_3 = (1).xxxx;
+  RWTexture2DArray<int4> v = arg_0;
+  uint2 v_1 = arg_1;
+  int4 v_2 = arg_3;
+  v[uint3(v_1, uint(arg_2))] = v_2;
+}
+
+void fragment_main() {
+  textureStore_84f4f4();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  textureStore_84f4f4();
+}
+
diff --git a/test/tint/builtins/gen/var/textureStore/8676c9.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/textureStore/8676c9.wgsl.expected.ir.dxc.hlsl
index 685a9ee..d7af18a 100644
--- a/test/tint/builtins/gen/var/textureStore/8676c9.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureStore/8676c9.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,17 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWTexture1D<uint4> arg_0 : register(u0, space1);
+void textureStore_8676c9() {
+  int arg_1 = 1;
+  uint4 arg_2 = (1u).xxxx;
+  arg_0[arg_1] = arg_2;
+}
+
+void fragment_main() {
+  textureStore_8676c9();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  textureStore_8676c9();
+}
+
diff --git a/test/tint/builtins/gen/var/textureStore/8676c9.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/textureStore/8676c9.wgsl.expected.ir.fxc.hlsl
index 685a9ee..d7af18a 100644
--- a/test/tint/builtins/gen/var/textureStore/8676c9.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureStore/8676c9.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,17 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWTexture1D<uint4> arg_0 : register(u0, space1);
+void textureStore_8676c9() {
+  int arg_1 = 1;
+  uint4 arg_2 = (1u).xxxx;
+  arg_0[arg_1] = arg_2;
+}
+
+void fragment_main() {
+  textureStore_8676c9();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  textureStore_8676c9();
+}
+
diff --git a/test/tint/builtins/gen/var/textureStore/86f713.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/textureStore/86f713.wgsl.expected.ir.dxc.hlsl
index 685a9ee..bd664f0 100644
--- a/test/tint/builtins/gen/var/textureStore/86f713.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureStore/86f713.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,17 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWTexture3D<int4> arg_0 : register(u0, space1);
+void textureStore_86f713() {
+  int3 arg_1 = (1).xxx;
+  int4 arg_2 = (1).xxxx;
+  arg_0[arg_1] = arg_2;
+}
+
+void fragment_main() {
+  textureStore_86f713();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  textureStore_86f713();
+}
+
diff --git a/test/tint/builtins/gen/var/textureStore/86f713.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/textureStore/86f713.wgsl.expected.ir.fxc.hlsl
index 685a9ee..bd664f0 100644
--- a/test/tint/builtins/gen/var/textureStore/86f713.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureStore/86f713.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,17 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWTexture3D<int4> arg_0 : register(u0, space1);
+void textureStore_86f713() {
+  int3 arg_1 = (1).xxx;
+  int4 arg_2 = (1).xxxx;
+  arg_0[arg_1] = arg_2;
+}
+
+void fragment_main() {
+  textureStore_86f713();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  textureStore_86f713();
+}
+
diff --git a/test/tint/builtins/gen/var/textureStore/872747.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/textureStore/872747.wgsl.expected.ir.dxc.hlsl
index 685a9ee..d7f7d59 100644
--- a/test/tint/builtins/gen/var/textureStore/872747.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureStore/872747.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,17 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWTexture1D<float4> arg_0 : register(u0, space1);
+void textureStore_872747() {
+  int arg_1 = 1;
+  float4 arg_2 = (1.0f).xxxx;
+  arg_0[arg_1] = arg_2;
+}
+
+void fragment_main() {
+  textureStore_872747();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  textureStore_872747();
+}
+
diff --git a/test/tint/builtins/gen/var/textureStore/872747.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/textureStore/872747.wgsl.expected.ir.fxc.hlsl
index 685a9ee..d7f7d59 100644
--- a/test/tint/builtins/gen/var/textureStore/872747.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureStore/872747.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,17 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWTexture1D<float4> arg_0 : register(u0, space1);
+void textureStore_872747() {
+  int arg_1 = 1;
+  float4 arg_2 = (1.0f).xxxx;
+  arg_0[arg_1] = arg_2;
+}
+
+void fragment_main() {
+  textureStore_872747();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  textureStore_872747();
+}
+
diff --git a/test/tint/builtins/gen/var/textureStore/877c92.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/textureStore/877c92.wgsl.expected.ir.dxc.hlsl
index 685a9ee..ad4b1f5 100644
--- a/test/tint/builtins/gen/var/textureStore/877c92.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureStore/877c92.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,17 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWTexture1D<float4> arg_0 : register(u0, space1);
+void textureStore_877c92() {
+  int arg_1 = 1;
+  float4 arg_2 = (1.0f).xxxx;
+  arg_0[arg_1] = arg_2;
+}
+
+void fragment_main() {
+  textureStore_877c92();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  textureStore_877c92();
+}
+
diff --git a/test/tint/builtins/gen/var/textureStore/877c92.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/textureStore/877c92.wgsl.expected.ir.fxc.hlsl
index 685a9ee..ad4b1f5 100644
--- a/test/tint/builtins/gen/var/textureStore/877c92.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureStore/877c92.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,17 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWTexture1D<float4> arg_0 : register(u0, space1);
+void textureStore_877c92() {
+  int arg_1 = 1;
+  float4 arg_2 = (1.0f).xxxx;
+  arg_0[arg_1] = arg_2;
+}
+
+void fragment_main() {
+  textureStore_877c92();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  textureStore_877c92();
+}
+
diff --git a/test/tint/builtins/gen/var/textureStore/8815b1.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/textureStore/8815b1.wgsl.expected.ir.dxc.hlsl
index 685a9ee..a1b0884 100644
--- a/test/tint/builtins/gen/var/textureStore/8815b1.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureStore/8815b1.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,21 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWTexture2DArray<int4> arg_0 : register(u0, space1);
+void textureStore_8815b1() {
+  int2 arg_1 = (1).xx;
+  uint arg_2 = 1u;
+  int4 arg_3 = (1).xxxx;
+  RWTexture2DArray<int4> v = arg_0;
+  int2 v_1 = arg_1;
+  int4 v_2 = arg_3;
+  v[int3(v_1, int(arg_2))] = v_2;
+}
+
+void fragment_main() {
+  textureStore_8815b1();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  textureStore_8815b1();
+}
+
diff --git a/test/tint/builtins/gen/var/textureStore/8815b1.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/textureStore/8815b1.wgsl.expected.ir.fxc.hlsl
index 685a9ee..a1b0884 100644
--- a/test/tint/builtins/gen/var/textureStore/8815b1.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureStore/8815b1.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,21 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWTexture2DArray<int4> arg_0 : register(u0, space1);
+void textureStore_8815b1() {
+  int2 arg_1 = (1).xx;
+  uint arg_2 = 1u;
+  int4 arg_3 = (1).xxxx;
+  RWTexture2DArray<int4> v = arg_0;
+  int2 v_1 = arg_1;
+  int4 v_2 = arg_3;
+  v[int3(v_1, int(arg_2))] = v_2;
+}
+
+void fragment_main() {
+  textureStore_8815b1();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  textureStore_8815b1();
+}
+
diff --git a/test/tint/builtins/gen/var/textureStore/885921.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/textureStore/885921.wgsl.expected.ir.dxc.hlsl
index 685a9ee..1c26620 100644
--- a/test/tint/builtins/gen/var/textureStore/885921.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureStore/885921.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,17 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWTexture3D<float4> arg_0 : register(u0, space1);
+void textureStore_885921() {
+  uint3 arg_1 = (1u).xxx;
+  float4 arg_2 = (1.0f).xxxx;
+  arg_0[arg_1] = arg_2;
+}
+
+void fragment_main() {
+  textureStore_885921();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  textureStore_885921();
+}
+
diff --git a/test/tint/builtins/gen/var/textureStore/885921.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/textureStore/885921.wgsl.expected.ir.fxc.hlsl
index 685a9ee..1c26620 100644
--- a/test/tint/builtins/gen/var/textureStore/885921.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureStore/885921.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,17 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWTexture3D<float4> arg_0 : register(u0, space1);
+void textureStore_885921() {
+  uint3 arg_1 = (1u).xxx;
+  float4 arg_2 = (1.0f).xxxx;
+  arg_0[arg_1] = arg_2;
+}
+
+void fragment_main() {
+  textureStore_885921();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  textureStore_885921();
+}
+
diff --git a/test/tint/builtins/gen/var/textureStore/88ce7e.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/textureStore/88ce7e.wgsl.expected.ir.dxc.hlsl
index 685a9ee..71461ca 100644
--- a/test/tint/builtins/gen/var/textureStore/88ce7e.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureStore/88ce7e.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,17 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWTexture3D<int4> arg_0 : register(u0, space1);
+void textureStore_88ce7e() {
+  int3 arg_1 = (1).xxx;
+  int4 arg_2 = (1).xxxx;
+  arg_0[arg_1] = arg_2;
+}
+
+void fragment_main() {
+  textureStore_88ce7e();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  textureStore_88ce7e();
+}
+
diff --git a/test/tint/builtins/gen/var/textureStore/88ce7e.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/textureStore/88ce7e.wgsl.expected.ir.fxc.hlsl
index 685a9ee..71461ca 100644
--- a/test/tint/builtins/gen/var/textureStore/88ce7e.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureStore/88ce7e.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,17 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWTexture3D<int4> arg_0 : register(u0, space1);
+void textureStore_88ce7e() {
+  int3 arg_1 = (1).xxx;
+  int4 arg_2 = (1).xxxx;
+  arg_0[arg_1] = arg_2;
+}
+
+void fragment_main() {
+  textureStore_88ce7e();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  textureStore_88ce7e();
+}
+
diff --git a/test/tint/builtins/gen/var/textureStore/8a16b0.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/textureStore/8a16b0.wgsl.expected.ir.dxc.hlsl
index 685a9ee..9a07867 100644
--- a/test/tint/builtins/gen/var/textureStore/8a16b0.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureStore/8a16b0.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,21 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWTexture2DArray<uint4> arg_0 : register(u0, space1);
+void textureStore_8a16b0() {
+  int2 arg_1 = (1).xx;
+  int arg_2 = 1;
+  uint4 arg_3 = (1u).xxxx;
+  RWTexture2DArray<uint4> v = arg_0;
+  int2 v_1 = arg_1;
+  uint4 v_2 = arg_3;
+  v[int3(v_1, int(arg_2))] = v_2;
+}
+
+void fragment_main() {
+  textureStore_8a16b0();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  textureStore_8a16b0();
+}
+
diff --git a/test/tint/builtins/gen/var/textureStore/8a16b0.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/textureStore/8a16b0.wgsl.expected.ir.fxc.hlsl
index 685a9ee..9a07867 100644
--- a/test/tint/builtins/gen/var/textureStore/8a16b0.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureStore/8a16b0.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,21 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWTexture2DArray<uint4> arg_0 : register(u0, space1);
+void textureStore_8a16b0() {
+  int2 arg_1 = (1).xx;
+  int arg_2 = 1;
+  uint4 arg_3 = (1u).xxxx;
+  RWTexture2DArray<uint4> v = arg_0;
+  int2 v_1 = arg_1;
+  uint4 v_2 = arg_3;
+  v[int3(v_1, int(arg_2))] = v_2;
+}
+
+void fragment_main() {
+  textureStore_8a16b0();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  textureStore_8a16b0();
+}
+
diff --git a/test/tint/builtins/gen/var/textureStore/8a46ff.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/textureStore/8a46ff.wgsl.expected.ir.dxc.hlsl
index 685a9ee..30294d1 100644
--- a/test/tint/builtins/gen/var/textureStore/8a46ff.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureStore/8a46ff.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,17 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWTexture2D<float4> arg_0 : register(u0, space1);
+void textureStore_8a46ff() {
+  int2 arg_1 = (1).xx;
+  float4 arg_2 = (1.0f).xxxx;
+  arg_0[arg_1] = arg_2;
+}
+
+void fragment_main() {
+  textureStore_8a46ff();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  textureStore_8a46ff();
+}
+
diff --git a/test/tint/builtins/gen/var/textureStore/8a46ff.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/textureStore/8a46ff.wgsl.expected.ir.fxc.hlsl
index 685a9ee..30294d1 100644
--- a/test/tint/builtins/gen/var/textureStore/8a46ff.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureStore/8a46ff.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,17 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWTexture2D<float4> arg_0 : register(u0, space1);
+void textureStore_8a46ff() {
+  int2 arg_1 = (1).xx;
+  float4 arg_2 = (1.0f).xxxx;
+  arg_0[arg_1] = arg_2;
+}
+
+void fragment_main() {
+  textureStore_8a46ff();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  textureStore_8a46ff();
+}
+
diff --git a/test/tint/builtins/gen/var/textureStore/8a85b9.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/textureStore/8a85b9.wgsl.expected.ir.dxc.hlsl
index 685a9ee..66b8240 100644
--- a/test/tint/builtins/gen/var/textureStore/8a85b9.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureStore/8a85b9.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,21 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWTexture2DArray<int4> arg_0 : register(u0, space1);
+void textureStore_8a85b9() {
+  int2 arg_1 = (1).xx;
+  int arg_2 = 1;
+  int4 arg_3 = (1).xxxx;
+  RWTexture2DArray<int4> v = arg_0;
+  int2 v_1 = arg_1;
+  int4 v_2 = arg_3;
+  v[int3(v_1, int(arg_2))] = v_2;
+}
+
+void fragment_main() {
+  textureStore_8a85b9();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  textureStore_8a85b9();
+}
+
diff --git a/test/tint/builtins/gen/var/textureStore/8a85b9.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/textureStore/8a85b9.wgsl.expected.ir.fxc.hlsl
index 685a9ee..66b8240 100644
--- a/test/tint/builtins/gen/var/textureStore/8a85b9.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureStore/8a85b9.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,21 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWTexture2DArray<int4> arg_0 : register(u0, space1);
+void textureStore_8a85b9() {
+  int2 arg_1 = (1).xx;
+  int arg_2 = 1;
+  int4 arg_3 = (1).xxxx;
+  RWTexture2DArray<int4> v = arg_0;
+  int2 v_1 = arg_1;
+  int4 v_2 = arg_3;
+  v[int3(v_1, int(arg_2))] = v_2;
+}
+
+void fragment_main() {
+  textureStore_8a85b9();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  textureStore_8a85b9();
+}
+
diff --git a/test/tint/builtins/gen/var/textureStore/8a8681.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/textureStore/8a8681.wgsl.expected.ir.dxc.hlsl
index 685a9ee..3c13b39 100644
--- a/test/tint/builtins/gen/var/textureStore/8a8681.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureStore/8a8681.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,17 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWTexture2D<uint4> arg_0 : register(u0, space1);
+void textureStore_8a8681() {
+  uint2 arg_1 = (1u).xx;
+  uint4 arg_2 = (1u).xxxx;
+  arg_0[arg_1] = arg_2;
+}
+
+void fragment_main() {
+  textureStore_8a8681();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  textureStore_8a8681();
+}
+
diff --git a/test/tint/builtins/gen/var/textureStore/8a8681.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/textureStore/8a8681.wgsl.expected.ir.fxc.hlsl
index 685a9ee..3c13b39 100644
--- a/test/tint/builtins/gen/var/textureStore/8a8681.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureStore/8a8681.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,17 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWTexture2D<uint4> arg_0 : register(u0, space1);
+void textureStore_8a8681() {
+  uint2 arg_1 = (1u).xx;
+  uint4 arg_2 = (1u).xxxx;
+  arg_0[arg_1] = arg_2;
+}
+
+void fragment_main() {
+  textureStore_8a8681();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  textureStore_8a8681();
+}
+
diff --git a/test/tint/builtins/gen/var/textureStore/8ae0bc.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/textureStore/8ae0bc.wgsl.expected.ir.dxc.hlsl
index 685a9ee..1b00191 100644
--- a/test/tint/builtins/gen/var/textureStore/8ae0bc.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureStore/8ae0bc.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,21 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWTexture2DArray<float4> arg_0 : register(u0, space1);
+void textureStore_8ae0bc() {
+  int2 arg_1 = (1).xx;
+  uint arg_2 = 1u;
+  float4 arg_3 = (1.0f).xxxx;
+  RWTexture2DArray<float4> v = arg_0;
+  int2 v_1 = arg_1;
+  float4 v_2 = arg_3;
+  v[int3(v_1, int(arg_2))] = v_2;
+}
+
+void fragment_main() {
+  textureStore_8ae0bc();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  textureStore_8ae0bc();
+}
+
diff --git a/test/tint/builtins/gen/var/textureStore/8ae0bc.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/textureStore/8ae0bc.wgsl.expected.ir.fxc.hlsl
index 685a9ee..1b00191 100644
--- a/test/tint/builtins/gen/var/textureStore/8ae0bc.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureStore/8ae0bc.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,21 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWTexture2DArray<float4> arg_0 : register(u0, space1);
+void textureStore_8ae0bc() {
+  int2 arg_1 = (1).xx;
+  uint arg_2 = 1u;
+  float4 arg_3 = (1.0f).xxxx;
+  RWTexture2DArray<float4> v = arg_0;
+  int2 v_1 = arg_1;
+  float4 v_2 = arg_3;
+  v[int3(v_1, int(arg_2))] = v_2;
+}
+
+void fragment_main() {
+  textureStore_8ae0bc();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  textureStore_8ae0bc();
+}
+
diff --git a/test/tint/builtins/gen/var/textureStore/8b9310.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/textureStore/8b9310.wgsl.expected.ir.dxc.hlsl
index 685a9ee..59f4d41 100644
--- a/test/tint/builtins/gen/var/textureStore/8b9310.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureStore/8b9310.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,17 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWTexture3D<float4> arg_0 : register(u0, space1);
+void textureStore_8b9310() {
+  uint3 arg_1 = (1u).xxx;
+  float4 arg_2 = (1.0f).xxxx;
+  arg_0[arg_1] = arg_2;
+}
+
+void fragment_main() {
+  textureStore_8b9310();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  textureStore_8b9310();
+}
+
diff --git a/test/tint/builtins/gen/var/textureStore/8b9310.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/textureStore/8b9310.wgsl.expected.ir.fxc.hlsl
index 685a9ee..59f4d41 100644
--- a/test/tint/builtins/gen/var/textureStore/8b9310.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureStore/8b9310.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,17 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWTexture3D<float4> arg_0 : register(u0, space1);
+void textureStore_8b9310() {
+  uint3 arg_1 = (1u).xxx;
+  float4 arg_2 = (1.0f).xxxx;
+  arg_0[arg_1] = arg_2;
+}
+
+void fragment_main() {
+  textureStore_8b9310();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  textureStore_8b9310();
+}
+
diff --git a/test/tint/builtins/gen/var/textureStore/8bb287.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/textureStore/8bb287.wgsl.expected.ir.dxc.hlsl
index 685a9ee..7f01ef8 100644
--- a/test/tint/builtins/gen/var/textureStore/8bb287.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureStore/8bb287.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,21 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWTexture2DArray<int4> arg_0 : register(u0, space1);
+void textureStore_8bb287() {
+  uint2 arg_1 = (1u).xx;
+  uint arg_2 = 1u;
+  int4 arg_3 = (1).xxxx;
+  RWTexture2DArray<int4> v = arg_0;
+  uint2 v_1 = arg_1;
+  int4 v_2 = arg_3;
+  v[uint3(v_1, uint(arg_2))] = v_2;
+}
+
+void fragment_main() {
+  textureStore_8bb287();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  textureStore_8bb287();
+}
+
diff --git a/test/tint/builtins/gen/var/textureStore/8bb287.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/textureStore/8bb287.wgsl.expected.ir.fxc.hlsl
index 685a9ee..7f01ef8 100644
--- a/test/tint/builtins/gen/var/textureStore/8bb287.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureStore/8bb287.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,21 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWTexture2DArray<int4> arg_0 : register(u0, space1);
+void textureStore_8bb287() {
+  uint2 arg_1 = (1u).xx;
+  uint arg_2 = 1u;
+  int4 arg_3 = (1).xxxx;
+  RWTexture2DArray<int4> v = arg_0;
+  uint2 v_1 = arg_1;
+  int4 v_2 = arg_3;
+  v[uint3(v_1, uint(arg_2))] = v_2;
+}
+
+void fragment_main() {
+  textureStore_8bb287();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  textureStore_8bb287();
+}
+
diff --git a/test/tint/builtins/gen/var/textureStore/8c76e9.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/textureStore/8c76e9.wgsl.expected.ir.dxc.hlsl
index 685a9ee..d912778 100644
--- a/test/tint/builtins/gen/var/textureStore/8c76e9.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureStore/8c76e9.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,17 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWTexture1D<int4> arg_0 : register(u0, space1);
+void textureStore_8c76e9() {
+  uint arg_1 = 1u;
+  int4 arg_2 = (1).xxxx;
+  arg_0[arg_1] = arg_2;
+}
+
+void fragment_main() {
+  textureStore_8c76e9();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  textureStore_8c76e9();
+}
+
diff --git a/test/tint/builtins/gen/var/textureStore/8c76e9.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/textureStore/8c76e9.wgsl.expected.ir.fxc.hlsl
index 685a9ee..d912778 100644
--- a/test/tint/builtins/gen/var/textureStore/8c76e9.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureStore/8c76e9.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,17 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWTexture1D<int4> arg_0 : register(u0, space1);
+void textureStore_8c76e9() {
+  uint arg_1 = 1u;
+  int4 arg_2 = (1).xxxx;
+  arg_0[arg_1] = arg_2;
+}
+
+void fragment_main() {
+  textureStore_8c76e9();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  textureStore_8c76e9();
+}
+
diff --git a/test/tint/builtins/gen/var/textureStore/8cd611.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/textureStore/8cd611.wgsl.expected.ir.dxc.hlsl
index 685a9ee..43a056a 100644
--- a/test/tint/builtins/gen/var/textureStore/8cd611.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureStore/8cd611.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,17 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWTexture3D<float4> arg_0 : register(u0, space1);
+void textureStore_8cd611() {
+  uint3 arg_1 = (1u).xxx;
+  float4 arg_2 = (1.0f).xxxx;
+  arg_0[arg_1] = arg_2;
+}
+
+void fragment_main() {
+  textureStore_8cd611();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  textureStore_8cd611();
+}
+
diff --git a/test/tint/builtins/gen/var/textureStore/8cd611.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/textureStore/8cd611.wgsl.expected.ir.fxc.hlsl
index 685a9ee..43a056a 100644
--- a/test/tint/builtins/gen/var/textureStore/8cd611.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureStore/8cd611.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,17 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWTexture3D<float4> arg_0 : register(u0, space1);
+void textureStore_8cd611() {
+  uint3 arg_1 = (1u).xxx;
+  float4 arg_2 = (1.0f).xxxx;
+  arg_0[arg_1] = arg_2;
+}
+
+void fragment_main() {
+  textureStore_8cd611();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  textureStore_8cd611();
+}
+
diff --git a/test/tint/builtins/gen/var/textureStore/8cd841.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/textureStore/8cd841.wgsl.expected.ir.dxc.hlsl
index 685a9ee..f1aa17f 100644
--- a/test/tint/builtins/gen/var/textureStore/8cd841.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureStore/8cd841.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,21 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWTexture2DArray<uint4> arg_0 : register(u0, space1);
+void textureStore_8cd841() {
+  int2 arg_1 = (1).xx;
+  uint arg_2 = 1u;
+  uint4 arg_3 = (1u).xxxx;
+  RWTexture2DArray<uint4> v = arg_0;
+  int2 v_1 = arg_1;
+  uint4 v_2 = arg_3;
+  v[int3(v_1, int(arg_2))] = v_2;
+}
+
+void fragment_main() {
+  textureStore_8cd841();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  textureStore_8cd841();
+}
+
diff --git a/test/tint/builtins/gen/var/textureStore/8cd841.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/textureStore/8cd841.wgsl.expected.ir.fxc.hlsl
index 685a9ee..f1aa17f 100644
--- a/test/tint/builtins/gen/var/textureStore/8cd841.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureStore/8cd841.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,21 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWTexture2DArray<uint4> arg_0 : register(u0, space1);
+void textureStore_8cd841() {
+  int2 arg_1 = (1).xx;
+  uint arg_2 = 1u;
+  uint4 arg_3 = (1u).xxxx;
+  RWTexture2DArray<uint4> v = arg_0;
+  int2 v_1 = arg_1;
+  uint4 v_2 = arg_3;
+  v[int3(v_1, int(arg_2))] = v_2;
+}
+
+void fragment_main() {
+  textureStore_8cd841();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  textureStore_8cd841();
+}
+
diff --git a/test/tint/builtins/gen/var/textureStore/8dc54f.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/textureStore/8dc54f.wgsl.expected.ir.dxc.hlsl
index 685a9ee..b5fcabc 100644
--- a/test/tint/builtins/gen/var/textureStore/8dc54f.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureStore/8dc54f.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,17 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWTexture2D<uint4> arg_0 : register(u0, space1);
+void textureStore_8dc54f() {
+  uint2 arg_1 = (1u).xx;
+  uint4 arg_2 = (1u).xxxx;
+  arg_0[arg_1] = arg_2;
+}
+
+void fragment_main() {
+  textureStore_8dc54f();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  textureStore_8dc54f();
+}
+
diff --git a/test/tint/builtins/gen/var/textureStore/8dc54f.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/textureStore/8dc54f.wgsl.expected.ir.fxc.hlsl
index 685a9ee..b5fcabc 100644
--- a/test/tint/builtins/gen/var/textureStore/8dc54f.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureStore/8dc54f.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,17 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWTexture2D<uint4> arg_0 : register(u0, space1);
+void textureStore_8dc54f() {
+  uint2 arg_1 = (1u).xx;
+  uint4 arg_2 = (1u).xxxx;
+  arg_0[arg_1] = arg_2;
+}
+
+void fragment_main() {
+  textureStore_8dc54f();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  textureStore_8dc54f();
+}
+
diff --git a/test/tint/builtins/gen/var/textureStore/8e0479.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/textureStore/8e0479.wgsl.expected.ir.dxc.hlsl
index 685a9ee..09dde1e 100644
--- a/test/tint/builtins/gen/var/textureStore/8e0479.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureStore/8e0479.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,21 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWTexture2DArray<uint4> arg_0 : register(u0, space1);
+void textureStore_8e0479() {
+  int2 arg_1 = (1).xx;
+  int arg_2 = 1;
+  uint4 arg_3 = (1u).xxxx;
+  RWTexture2DArray<uint4> v = arg_0;
+  int2 v_1 = arg_1;
+  uint4 v_2 = arg_3;
+  v[int3(v_1, int(arg_2))] = v_2;
+}
+
+void fragment_main() {
+  textureStore_8e0479();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  textureStore_8e0479();
+}
+
diff --git a/test/tint/builtins/gen/var/textureStore/8e0479.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/textureStore/8e0479.wgsl.expected.ir.fxc.hlsl
index 685a9ee..09dde1e 100644
--- a/test/tint/builtins/gen/var/textureStore/8e0479.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureStore/8e0479.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,21 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWTexture2DArray<uint4> arg_0 : register(u0, space1);
+void textureStore_8e0479() {
+  int2 arg_1 = (1).xx;
+  int arg_2 = 1;
+  uint4 arg_3 = (1u).xxxx;
+  RWTexture2DArray<uint4> v = arg_0;
+  int2 v_1 = arg_1;
+  uint4 v_2 = arg_3;
+  v[int3(v_1, int(arg_2))] = v_2;
+}
+
+void fragment_main() {
+  textureStore_8e0479();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  textureStore_8e0479();
+}
+
diff --git a/test/tint/builtins/gen/var/textureStore/8ebdc9.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/textureStore/8ebdc9.wgsl.expected.ir.dxc.hlsl
index 685a9ee..84f0b65 100644
--- a/test/tint/builtins/gen/var/textureStore/8ebdc9.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureStore/8ebdc9.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,21 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWTexture2DArray<float4> arg_0 : register(u0, space1);
+void textureStore_8ebdc9() {
+  uint2 arg_1 = (1u).xx;
+  uint arg_2 = 1u;
+  float4 arg_3 = (1.0f).xxxx;
+  RWTexture2DArray<float4> v = arg_0;
+  uint2 v_1 = arg_1;
+  float4 v_2 = arg_3;
+  v[uint3(v_1, uint(arg_2))] = v_2;
+}
+
+void fragment_main() {
+  textureStore_8ebdc9();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  textureStore_8ebdc9();
+}
+
diff --git a/test/tint/builtins/gen/var/textureStore/8ebdc9.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/textureStore/8ebdc9.wgsl.expected.ir.fxc.hlsl
index 685a9ee..84f0b65 100644
--- a/test/tint/builtins/gen/var/textureStore/8ebdc9.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureStore/8ebdc9.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,21 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWTexture2DArray<float4> arg_0 : register(u0, space1);
+void textureStore_8ebdc9() {
+  uint2 arg_1 = (1u).xx;
+  uint arg_2 = 1u;
+  float4 arg_3 = (1.0f).xxxx;
+  RWTexture2DArray<float4> v = arg_0;
+  uint2 v_1 = arg_1;
+  float4 v_2 = arg_3;
+  v[uint3(v_1, uint(arg_2))] = v_2;
+}
+
+void fragment_main() {
+  textureStore_8ebdc9();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  textureStore_8ebdc9();
+}
+
diff --git a/test/tint/builtins/gen/var/textureStore/8ed9f8.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/textureStore/8ed9f8.wgsl.expected.ir.dxc.hlsl
index 685a9ee..1ef9f4b 100644
--- a/test/tint/builtins/gen/var/textureStore/8ed9f8.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureStore/8ed9f8.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,17 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWTexture3D<float4> arg_0 : register(u0, space1);
+void textureStore_8ed9f8() {
+  uint3 arg_1 = (1u).xxx;
+  float4 arg_2 = (1.0f).xxxx;
+  arg_0[arg_1] = arg_2;
+}
+
+void fragment_main() {
+  textureStore_8ed9f8();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  textureStore_8ed9f8();
+}
+
diff --git a/test/tint/builtins/gen/var/textureStore/8ed9f8.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/textureStore/8ed9f8.wgsl.expected.ir.fxc.hlsl
index 685a9ee..1ef9f4b 100644
--- a/test/tint/builtins/gen/var/textureStore/8ed9f8.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureStore/8ed9f8.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,17 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWTexture3D<float4> arg_0 : register(u0, space1);
+void textureStore_8ed9f8() {
+  uint3 arg_1 = (1u).xxx;
+  float4 arg_2 = (1.0f).xxxx;
+  arg_0[arg_1] = arg_2;
+}
+
+void fragment_main() {
+  textureStore_8ed9f8();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  textureStore_8ed9f8();
+}
+
diff --git a/test/tint/builtins/gen/var/textureStore/8f71a1.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/textureStore/8f71a1.wgsl.expected.ir.dxc.hlsl
index 685a9ee..22e18ea 100644
--- a/test/tint/builtins/gen/var/textureStore/8f71a1.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureStore/8f71a1.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,17 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWTexture3D<int4> arg_0 : register(u0, space1);
+void textureStore_8f71a1() {
+  int3 arg_1 = (1).xxx;
+  int4 arg_2 = (1).xxxx;
+  arg_0[arg_1] = arg_2;
+}
+
+void fragment_main() {
+  textureStore_8f71a1();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  textureStore_8f71a1();
+}
+
diff --git a/test/tint/builtins/gen/var/textureStore/8f71a1.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/textureStore/8f71a1.wgsl.expected.ir.fxc.hlsl
index 685a9ee..22e18ea 100644
--- a/test/tint/builtins/gen/var/textureStore/8f71a1.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureStore/8f71a1.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,17 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWTexture3D<int4> arg_0 : register(u0, space1);
+void textureStore_8f71a1() {
+  int3 arg_1 = (1).xxx;
+  int4 arg_2 = (1).xxxx;
+  arg_0[arg_1] = arg_2;
+}
+
+void fragment_main() {
+  textureStore_8f71a1();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  textureStore_8f71a1();
+}
+
diff --git a/test/tint/builtins/gen/var/textureStore/8ff674.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/textureStore/8ff674.wgsl.expected.ir.dxc.hlsl
index 685a9ee..914c0f1 100644
--- a/test/tint/builtins/gen/var/textureStore/8ff674.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureStore/8ff674.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,21 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWTexture2DArray<uint4> arg_0 : register(u0, space1);
+void textureStore_8ff674() {
+  int2 arg_1 = (1).xx;
+  uint arg_2 = 1u;
+  uint4 arg_3 = (1u).xxxx;
+  RWTexture2DArray<uint4> v = arg_0;
+  int2 v_1 = arg_1;
+  uint4 v_2 = arg_3;
+  v[int3(v_1, int(arg_2))] = v_2;
+}
+
+void fragment_main() {
+  textureStore_8ff674();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  textureStore_8ff674();
+}
+
diff --git a/test/tint/builtins/gen/var/textureStore/8ff674.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/textureStore/8ff674.wgsl.expected.ir.fxc.hlsl
index 685a9ee..914c0f1 100644
--- a/test/tint/builtins/gen/var/textureStore/8ff674.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureStore/8ff674.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,21 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWTexture2DArray<uint4> arg_0 : register(u0, space1);
+void textureStore_8ff674() {
+  int2 arg_1 = (1).xx;
+  uint arg_2 = 1u;
+  uint4 arg_3 = (1u).xxxx;
+  RWTexture2DArray<uint4> v = arg_0;
+  int2 v_1 = arg_1;
+  uint4 v_2 = arg_3;
+  v[int3(v_1, int(arg_2))] = v_2;
+}
+
+void fragment_main() {
+  textureStore_8ff674();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  textureStore_8ff674();
+}
+
diff --git a/test/tint/builtins/gen/var/textureStore/90960e.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/textureStore/90960e.wgsl.expected.ir.dxc.hlsl
index 685a9ee..159f352 100644
--- a/test/tint/builtins/gen/var/textureStore/90960e.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureStore/90960e.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,17 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWTexture1D<float4> arg_0 : register(u0, space1);
+void textureStore_90960e() {
+  int arg_1 = 1;
+  float4 arg_2 = (1.0f).xxxx;
+  arg_0[arg_1] = arg_2;
+}
+
+void fragment_main() {
+  textureStore_90960e();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  textureStore_90960e();
+}
+
diff --git a/test/tint/builtins/gen/var/textureStore/90960e.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/textureStore/90960e.wgsl.expected.ir.fxc.hlsl
index 685a9ee..159f352 100644
--- a/test/tint/builtins/gen/var/textureStore/90960e.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureStore/90960e.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,17 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWTexture1D<float4> arg_0 : register(u0, space1);
+void textureStore_90960e() {
+  int arg_1 = 1;
+  float4 arg_2 = (1.0f).xxxx;
+  arg_0[arg_1] = arg_2;
+}
+
+void fragment_main() {
+  textureStore_90960e();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  textureStore_90960e();
+}
+
diff --git a/test/tint/builtins/gen/var/textureStore/90a553.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/textureStore/90a553.wgsl.expected.ir.dxc.hlsl
index 685a9ee..e6fcde2 100644
--- a/test/tint/builtins/gen/var/textureStore/90a553.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureStore/90a553.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,21 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWTexture2DArray<int4> arg_0 : register(u0, space1);
+void textureStore_90a553() {
+  int2 arg_1 = (1).xx;
+  uint arg_2 = 1u;
+  int4 arg_3 = (1).xxxx;
+  RWTexture2DArray<int4> v = arg_0;
+  int2 v_1 = arg_1;
+  int4 v_2 = arg_3;
+  v[int3(v_1, int(arg_2))] = v_2;
+}
+
+void fragment_main() {
+  textureStore_90a553();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  textureStore_90a553();
+}
+
diff --git a/test/tint/builtins/gen/var/textureStore/90a553.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/textureStore/90a553.wgsl.expected.ir.fxc.hlsl
index 685a9ee..e6fcde2 100644
--- a/test/tint/builtins/gen/var/textureStore/90a553.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureStore/90a553.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,21 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWTexture2DArray<int4> arg_0 : register(u0, space1);
+void textureStore_90a553() {
+  int2 arg_1 = (1).xx;
+  uint arg_2 = 1u;
+  int4 arg_3 = (1).xxxx;
+  RWTexture2DArray<int4> v = arg_0;
+  int2 v_1 = arg_1;
+  int4 v_2 = arg_3;
+  v[int3(v_1, int(arg_2))] = v_2;
+}
+
+void fragment_main() {
+  textureStore_90a553();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  textureStore_90a553();
+}
+
diff --git a/test/tint/builtins/gen/var/textureStore/958353.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/textureStore/958353.wgsl.expected.ir.dxc.hlsl
index 685a9ee..f6ff0a5 100644
--- a/test/tint/builtins/gen/var/textureStore/958353.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureStore/958353.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,17 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWTexture1D<int4> arg_0 : register(u0, space1);
+void textureStore_958353() {
+  uint arg_1 = 1u;
+  int4 arg_2 = (1).xxxx;
+  arg_0[arg_1] = arg_2;
+}
+
+void fragment_main() {
+  textureStore_958353();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  textureStore_958353();
+}
+
diff --git a/test/tint/builtins/gen/var/textureStore/958353.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/textureStore/958353.wgsl.expected.ir.fxc.hlsl
index 685a9ee..f6ff0a5 100644
--- a/test/tint/builtins/gen/var/textureStore/958353.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureStore/958353.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,17 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWTexture1D<int4> arg_0 : register(u0, space1);
+void textureStore_958353() {
+  uint arg_1 = 1u;
+  int4 arg_2 = (1).xxxx;
+  arg_0[arg_1] = arg_2;
+}
+
+void fragment_main() {
+  textureStore_958353();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  textureStore_958353();
+}
+
diff --git a/test/tint/builtins/gen/var/textureStore/959d94.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/textureStore/959d94.wgsl.expected.ir.dxc.hlsl
index 685a9ee..00f25fc 100644
--- a/test/tint/builtins/gen/var/textureStore/959d94.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureStore/959d94.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,17 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWTexture1D<float4> arg_0 : register(u0, space1);
+void textureStore_959d94() {
+  uint arg_1 = 1u;
+  float4 arg_2 = (1.0f).xxxx;
+  arg_0[arg_1] = arg_2;
+}
+
+void fragment_main() {
+  textureStore_959d94();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  textureStore_959d94();
+}
+
diff --git a/test/tint/builtins/gen/var/textureStore/959d94.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/textureStore/959d94.wgsl.expected.ir.fxc.hlsl
index 685a9ee..00f25fc 100644
--- a/test/tint/builtins/gen/var/textureStore/959d94.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureStore/959d94.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,17 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWTexture1D<float4> arg_0 : register(u0, space1);
+void textureStore_959d94() {
+  uint arg_1 = 1u;
+  float4 arg_2 = (1.0f).xxxx;
+  arg_0[arg_1] = arg_2;
+}
+
+void fragment_main() {
+  textureStore_959d94();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  textureStore_959d94();
+}
+
diff --git a/test/tint/builtins/gen/var/textureStore/95e452.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/textureStore/95e452.wgsl.expected.ir.dxc.hlsl
index 685a9ee..f50b594 100644
--- a/test/tint/builtins/gen/var/textureStore/95e452.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureStore/95e452.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,17 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWTexture2D<int4> arg_0 : register(u0, space1);
+void textureStore_95e452() {
+  uint2 arg_1 = (1u).xx;
+  int4 arg_2 = (1).xxxx;
+  arg_0[arg_1] = arg_2;
+}
+
+void fragment_main() {
+  textureStore_95e452();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  textureStore_95e452();
+}
+
diff --git a/test/tint/builtins/gen/var/textureStore/95e452.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/textureStore/95e452.wgsl.expected.ir.fxc.hlsl
index 685a9ee..f50b594 100644
--- a/test/tint/builtins/gen/var/textureStore/95e452.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureStore/95e452.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,17 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWTexture2D<int4> arg_0 : register(u0, space1);
+void textureStore_95e452() {
+  uint2 arg_1 = (1u).xx;
+  int4 arg_2 = (1).xxxx;
+  arg_0[arg_1] = arg_2;
+}
+
+void fragment_main() {
+  textureStore_95e452();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  textureStore_95e452();
+}
+
diff --git a/test/tint/builtins/gen/var/textureStore/969534.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/textureStore/969534.wgsl.expected.ir.dxc.hlsl
index 685a9ee..4154f31 100644
--- a/test/tint/builtins/gen/var/textureStore/969534.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureStore/969534.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,17 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWTexture1D<int4> arg_0 : register(u0, space1);
+void textureStore_969534() {
+  int arg_1 = 1;
+  int4 arg_2 = (1).xxxx;
+  arg_0[arg_1] = arg_2;
+}
+
+void fragment_main() {
+  textureStore_969534();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  textureStore_969534();
+}
+
diff --git a/test/tint/builtins/gen/var/textureStore/969534.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/textureStore/969534.wgsl.expected.ir.fxc.hlsl
index 685a9ee..4154f31 100644
--- a/test/tint/builtins/gen/var/textureStore/969534.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureStore/969534.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,17 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWTexture1D<int4> arg_0 : register(u0, space1);
+void textureStore_969534() {
+  int arg_1 = 1;
+  int4 arg_2 = (1).xxxx;
+  arg_0[arg_1] = arg_2;
+}
+
+void fragment_main() {
+  textureStore_969534();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  textureStore_969534();
+}
+
diff --git a/test/tint/builtins/gen/var/textureStore/976636.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/textureStore/976636.wgsl.expected.ir.dxc.hlsl
index 685a9ee..f8ee7c8 100644
--- a/test/tint/builtins/gen/var/textureStore/976636.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureStore/976636.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,17 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWTexture1D<int4> arg_0 : register(u0, space1);
+void textureStore_976636() {
+  uint arg_1 = 1u;
+  int4 arg_2 = (1).xxxx;
+  arg_0[arg_1] = arg_2;
+}
+
+void fragment_main() {
+  textureStore_976636();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  textureStore_976636();
+}
+
diff --git a/test/tint/builtins/gen/var/textureStore/976636.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/textureStore/976636.wgsl.expected.ir.fxc.hlsl
index 685a9ee..f8ee7c8 100644
--- a/test/tint/builtins/gen/var/textureStore/976636.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureStore/976636.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,17 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWTexture1D<int4> arg_0 : register(u0, space1);
+void textureStore_976636() {
+  uint arg_1 = 1u;
+  int4 arg_2 = (1).xxxx;
+  arg_0[arg_1] = arg_2;
+}
+
+void fragment_main() {
+  textureStore_976636();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  textureStore_976636();
+}
+
diff --git a/test/tint/builtins/gen/var/textureStore/9938b7.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/textureStore/9938b7.wgsl.expected.ir.dxc.hlsl
index 685a9ee..d830c29 100644
--- a/test/tint/builtins/gen/var/textureStore/9938b7.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureStore/9938b7.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,21 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWTexture2DArray<int4> arg_0 : register(u0, space1);
+void textureStore_9938b7() {
+  int2 arg_1 = (1).xx;
+  uint arg_2 = 1u;
+  int4 arg_3 = (1).xxxx;
+  RWTexture2DArray<int4> v = arg_0;
+  int2 v_1 = arg_1;
+  int4 v_2 = arg_3;
+  v[int3(v_1, int(arg_2))] = v_2;
+}
+
+void fragment_main() {
+  textureStore_9938b7();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  textureStore_9938b7();
+}
+
diff --git a/test/tint/builtins/gen/var/textureStore/9938b7.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/textureStore/9938b7.wgsl.expected.ir.fxc.hlsl
index 685a9ee..d830c29 100644
--- a/test/tint/builtins/gen/var/textureStore/9938b7.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureStore/9938b7.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,21 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWTexture2DArray<int4> arg_0 : register(u0, space1);
+void textureStore_9938b7() {
+  int2 arg_1 = (1).xx;
+  uint arg_2 = 1u;
+  int4 arg_3 = (1).xxxx;
+  RWTexture2DArray<int4> v = arg_0;
+  int2 v_1 = arg_1;
+  int4 v_2 = arg_3;
+  v[int3(v_1, int(arg_2))] = v_2;
+}
+
+void fragment_main() {
+  textureStore_9938b7();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  textureStore_9938b7();
+}
+
diff --git a/test/tint/builtins/gen/var/textureStore/9a3ecc.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/textureStore/9a3ecc.wgsl.expected.ir.dxc.hlsl
index 685a9ee..a5a53d2 100644
--- a/test/tint/builtins/gen/var/textureStore/9a3ecc.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureStore/9a3ecc.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,17 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWTexture3D<int4> arg_0 : register(u0, space1);
+void textureStore_9a3ecc() {
+  int3 arg_1 = (1).xxx;
+  int4 arg_2 = (1).xxxx;
+  arg_0[arg_1] = arg_2;
+}
+
+void fragment_main() {
+  textureStore_9a3ecc();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  textureStore_9a3ecc();
+}
+
diff --git a/test/tint/builtins/gen/var/textureStore/9a3ecc.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/textureStore/9a3ecc.wgsl.expected.ir.fxc.hlsl
index 685a9ee..a5a53d2 100644
--- a/test/tint/builtins/gen/var/textureStore/9a3ecc.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureStore/9a3ecc.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,17 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWTexture3D<int4> arg_0 : register(u0, space1);
+void textureStore_9a3ecc() {
+  int3 arg_1 = (1).xxx;
+  int4 arg_2 = (1).xxxx;
+  arg_0[arg_1] = arg_2;
+}
+
+void fragment_main() {
+  textureStore_9a3ecc();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  textureStore_9a3ecc();
+}
+
diff --git a/test/tint/builtins/gen/var/textureStore/9aedd3.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/textureStore/9aedd3.wgsl.expected.ir.dxc.hlsl
index 685a9ee..7a02e69 100644
--- a/test/tint/builtins/gen/var/textureStore/9aedd3.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureStore/9aedd3.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,17 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWTexture3D<float4> arg_0 : register(u0, space1);
+void textureStore_9aedd3() {
+  uint3 arg_1 = (1u).xxx;
+  float4 arg_2 = (1.0f).xxxx;
+  arg_0[arg_1] = arg_2;
+}
+
+void fragment_main() {
+  textureStore_9aedd3();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  textureStore_9aedd3();
+}
+
diff --git a/test/tint/builtins/gen/var/textureStore/9aedd3.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/textureStore/9aedd3.wgsl.expected.ir.fxc.hlsl
index 685a9ee..7a02e69 100644
--- a/test/tint/builtins/gen/var/textureStore/9aedd3.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureStore/9aedd3.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,17 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWTexture3D<float4> arg_0 : register(u0, space1);
+void textureStore_9aedd3() {
+  uint3 arg_1 = (1u).xxx;
+  float4 arg_2 = (1.0f).xxxx;
+  arg_0[arg_1] = arg_2;
+}
+
+void fragment_main() {
+  textureStore_9aedd3();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  textureStore_9aedd3();
+}
+
diff --git a/test/tint/builtins/gen/var/textureStore/9ba5c1.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/textureStore/9ba5c1.wgsl.expected.ir.dxc.hlsl
index 685a9ee..0b75347 100644
--- a/test/tint/builtins/gen/var/textureStore/9ba5c1.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureStore/9ba5c1.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,17 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWTexture1D<uint4> arg_0 : register(u0, space1);
+void textureStore_9ba5c1() {
+  uint arg_1 = 1u;
+  uint4 arg_2 = (1u).xxxx;
+  arg_0[arg_1] = arg_2;
+}
+
+void fragment_main() {
+  textureStore_9ba5c1();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  textureStore_9ba5c1();
+}
+
diff --git a/test/tint/builtins/gen/var/textureStore/9ba5c1.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/textureStore/9ba5c1.wgsl.expected.ir.fxc.hlsl
index 685a9ee..0b75347 100644
--- a/test/tint/builtins/gen/var/textureStore/9ba5c1.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureStore/9ba5c1.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,17 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWTexture1D<uint4> arg_0 : register(u0, space1);
+void textureStore_9ba5c1() {
+  uint arg_1 = 1u;
+  uint4 arg_2 = (1u).xxxx;
+  arg_0[arg_1] = arg_2;
+}
+
+void fragment_main() {
+  textureStore_9ba5c1();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  textureStore_9ba5c1();
+}
+
diff --git a/test/tint/builtins/gen/var/textureStore/9cea9e.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/textureStore/9cea9e.wgsl.expected.ir.dxc.hlsl
index 685a9ee..482a9a8 100644
--- a/test/tint/builtins/gen/var/textureStore/9cea9e.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureStore/9cea9e.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,21 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWTexture2DArray<uint4> arg_0 : register(u0, space1);
+void textureStore_9cea9e() {
+  int2 arg_1 = (1).xx;
+  uint arg_2 = 1u;
+  uint4 arg_3 = (1u).xxxx;
+  RWTexture2DArray<uint4> v = arg_0;
+  int2 v_1 = arg_1;
+  uint4 v_2 = arg_3;
+  v[int3(v_1, int(arg_2))] = v_2;
+}
+
+void fragment_main() {
+  textureStore_9cea9e();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  textureStore_9cea9e();
+}
+
diff --git a/test/tint/builtins/gen/var/textureStore/9cea9e.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/textureStore/9cea9e.wgsl.expected.ir.fxc.hlsl
index 685a9ee..482a9a8 100644
--- a/test/tint/builtins/gen/var/textureStore/9cea9e.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureStore/9cea9e.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,21 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWTexture2DArray<uint4> arg_0 : register(u0, space1);
+void textureStore_9cea9e() {
+  int2 arg_1 = (1).xx;
+  uint arg_2 = 1u;
+  uint4 arg_3 = (1u).xxxx;
+  RWTexture2DArray<uint4> v = arg_0;
+  int2 v_1 = arg_1;
+  uint4 v_2 = arg_3;
+  v[int3(v_1, int(arg_2))] = v_2;
+}
+
+void fragment_main() {
+  textureStore_9cea9e();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  textureStore_9cea9e();
+}
+
diff --git a/test/tint/builtins/gen/var/textureStore/9d7c62.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/textureStore/9d7c62.wgsl.expected.ir.dxc.hlsl
index 685a9ee..dd60bd7 100644
--- a/test/tint/builtins/gen/var/textureStore/9d7c62.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureStore/9d7c62.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,17 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWTexture1D<uint4> arg_0 : register(u0, space1);
+void textureStore_9d7c62() {
+  int arg_1 = 1;
+  uint4 arg_2 = (1u).xxxx;
+  arg_0[arg_1] = arg_2;
+}
+
+void fragment_main() {
+  textureStore_9d7c62();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  textureStore_9d7c62();
+}
+
diff --git a/test/tint/builtins/gen/var/textureStore/9d7c62.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/textureStore/9d7c62.wgsl.expected.ir.fxc.hlsl
index 685a9ee..dd60bd7 100644
--- a/test/tint/builtins/gen/var/textureStore/9d7c62.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureStore/9d7c62.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,17 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWTexture1D<uint4> arg_0 : register(u0, space1);
+void textureStore_9d7c62() {
+  int arg_1 = 1;
+  uint4 arg_2 = (1u).xxxx;
+  arg_0[arg_1] = arg_2;
+}
+
+void fragment_main() {
+  textureStore_9d7c62();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  textureStore_9d7c62();
+}
+
diff --git a/test/tint/builtins/gen/var/textureStore/9d8668.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/textureStore/9d8668.wgsl.expected.ir.dxc.hlsl
index 685a9ee..3e9c6d8 100644
--- a/test/tint/builtins/gen/var/textureStore/9d8668.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureStore/9d8668.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,21 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWTexture2DArray<float4> arg_0 : register(u0, space1);
+void textureStore_9d8668() {
+  int2 arg_1 = (1).xx;
+  uint arg_2 = 1u;
+  float4 arg_3 = (1.0f).xxxx;
+  RWTexture2DArray<float4> v = arg_0;
+  int2 v_1 = arg_1;
+  float4 v_2 = arg_3;
+  v[int3(v_1, int(arg_2))] = v_2;
+}
+
+void fragment_main() {
+  textureStore_9d8668();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  textureStore_9d8668();
+}
+
diff --git a/test/tint/builtins/gen/var/textureStore/9d8668.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/textureStore/9d8668.wgsl.expected.ir.fxc.hlsl
index 685a9ee..3e9c6d8 100644
--- a/test/tint/builtins/gen/var/textureStore/9d8668.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureStore/9d8668.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,21 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWTexture2DArray<float4> arg_0 : register(u0, space1);
+void textureStore_9d8668() {
+  int2 arg_1 = (1).xx;
+  uint arg_2 = 1u;
+  float4 arg_3 = (1.0f).xxxx;
+  RWTexture2DArray<float4> v = arg_0;
+  int2 v_1 = arg_1;
+  float4 v_2 = arg_3;
+  v[int3(v_1, int(arg_2))] = v_2;
+}
+
+void fragment_main() {
+  textureStore_9d8668();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  textureStore_9d8668();
+}
+
diff --git a/test/tint/builtins/gen/var/textureStore/9d9cd5.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/textureStore/9d9cd5.wgsl.expected.ir.dxc.hlsl
index 685a9ee..06fb27c 100644
--- a/test/tint/builtins/gen/var/textureStore/9d9cd5.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureStore/9d9cd5.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,21 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWTexture2DArray<float4> arg_0 : register(u0, space1);
+void textureStore_9d9cd5() {
+  int2 arg_1 = (1).xx;
+  int arg_2 = 1;
+  float4 arg_3 = (1.0f).xxxx;
+  RWTexture2DArray<float4> v = arg_0;
+  int2 v_1 = arg_1;
+  float4 v_2 = arg_3;
+  v[int3(v_1, int(arg_2))] = v_2;
+}
+
+void fragment_main() {
+  textureStore_9d9cd5();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  textureStore_9d9cd5();
+}
+
diff --git a/test/tint/builtins/gen/var/textureStore/9d9cd5.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/textureStore/9d9cd5.wgsl.expected.ir.fxc.hlsl
index 685a9ee..06fb27c 100644
--- a/test/tint/builtins/gen/var/textureStore/9d9cd5.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureStore/9d9cd5.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,21 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWTexture2DArray<float4> arg_0 : register(u0, space1);
+void textureStore_9d9cd5() {
+  int2 arg_1 = (1).xx;
+  int arg_2 = 1;
+  float4 arg_3 = (1.0f).xxxx;
+  RWTexture2DArray<float4> v = arg_0;
+  int2 v_1 = arg_1;
+  float4 v_2 = arg_3;
+  v[int3(v_1, int(arg_2))] = v_2;
+}
+
+void fragment_main() {
+  textureStore_9d9cd5();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  textureStore_9d9cd5();
+}
+
diff --git a/test/tint/builtins/gen/var/textureStore/9e3ec5.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/textureStore/9e3ec5.wgsl.expected.ir.dxc.hlsl
index 685a9ee..8f9cfa6 100644
--- a/test/tint/builtins/gen/var/textureStore/9e3ec5.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureStore/9e3ec5.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,17 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWTexture2D<int4> arg_0 : register(u0, space1);
+void textureStore_9e3ec5() {
+  int2 arg_1 = (1).xx;
+  int4 arg_2 = (1).xxxx;
+  arg_0[arg_1] = arg_2;
+}
+
+void fragment_main() {
+  textureStore_9e3ec5();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  textureStore_9e3ec5();
+}
+
diff --git a/test/tint/builtins/gen/var/textureStore/9e3ec5.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/textureStore/9e3ec5.wgsl.expected.ir.fxc.hlsl
index 685a9ee..8f9cfa6 100644
--- a/test/tint/builtins/gen/var/textureStore/9e3ec5.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureStore/9e3ec5.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,17 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWTexture2D<int4> arg_0 : register(u0, space1);
+void textureStore_9e3ec5() {
+  int2 arg_1 = (1).xx;
+  int4 arg_2 = (1).xxxx;
+  arg_0[arg_1] = arg_2;
+}
+
+void fragment_main() {
+  textureStore_9e3ec5();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  textureStore_9e3ec5();
+}
+
diff --git a/test/tint/builtins/gen/var/textureStore/9e5bc2.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/textureStore/9e5bc2.wgsl.expected.ir.dxc.hlsl
index 685a9ee..f126fc5 100644
--- a/test/tint/builtins/gen/var/textureStore/9e5bc2.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureStore/9e5bc2.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,17 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWTexture2D<float4> arg_0 : register(u0, space1);
+void textureStore_9e5bc2() {
+  uint2 arg_1 = (1u).xx;
+  float4 arg_2 = (1.0f).xxxx;
+  arg_0[arg_1] = arg_2;
+}
+
+void fragment_main() {
+  textureStore_9e5bc2();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  textureStore_9e5bc2();
+}
+
diff --git a/test/tint/builtins/gen/var/textureStore/9e5bc2.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/textureStore/9e5bc2.wgsl.expected.ir.fxc.hlsl
index 685a9ee..f126fc5 100644
--- a/test/tint/builtins/gen/var/textureStore/9e5bc2.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureStore/9e5bc2.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,17 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWTexture2D<float4> arg_0 : register(u0, space1);
+void textureStore_9e5bc2() {
+  uint2 arg_1 = (1u).xx;
+  float4 arg_2 = (1.0f).xxxx;
+  arg_0[arg_1] = arg_2;
+}
+
+void fragment_main() {
+  textureStore_9e5bc2();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  textureStore_9e5bc2();
+}
+
diff --git a/test/tint/builtins/gen/var/textureStore/9f5318.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/textureStore/9f5318.wgsl.expected.ir.dxc.hlsl
index 685a9ee..4a9b92b 100644
--- a/test/tint/builtins/gen/var/textureStore/9f5318.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureStore/9f5318.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,17 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWTexture2D<int4> arg_0 : register(u0, space1);
+void textureStore_9f5318() {
+  uint2 arg_1 = (1u).xx;
+  int4 arg_2 = (1).xxxx;
+  arg_0[arg_1] = arg_2;
+}
+
+void fragment_main() {
+  textureStore_9f5318();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  textureStore_9f5318();
+}
+
diff --git a/test/tint/builtins/gen/var/textureStore/9f5318.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/textureStore/9f5318.wgsl.expected.ir.fxc.hlsl
index 685a9ee..4a9b92b 100644
--- a/test/tint/builtins/gen/var/textureStore/9f5318.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureStore/9f5318.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,17 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWTexture2D<int4> arg_0 : register(u0, space1);
+void textureStore_9f5318() {
+  uint2 arg_1 = (1u).xx;
+  int4 arg_2 = (1).xxxx;
+  arg_0[arg_1] = arg_2;
+}
+
+void fragment_main() {
+  textureStore_9f5318();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  textureStore_9f5318();
+}
+
diff --git a/test/tint/builtins/gen/var/textureStore/9f7cea.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/textureStore/9f7cea.wgsl.expected.ir.dxc.hlsl
index 685a9ee..b264fd5 100644
--- a/test/tint/builtins/gen/var/textureStore/9f7cea.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureStore/9f7cea.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,21 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWTexture2DArray<uint4> arg_0 : register(u0, space1);
+void textureStore_9f7cea() {
+  int2 arg_1 = (1).xx;
+  uint arg_2 = 1u;
+  uint4 arg_3 = (1u).xxxx;
+  RWTexture2DArray<uint4> v = arg_0;
+  int2 v_1 = arg_1;
+  uint4 v_2 = arg_3;
+  v[int3(v_1, int(arg_2))] = v_2;
+}
+
+void fragment_main() {
+  textureStore_9f7cea();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  textureStore_9f7cea();
+}
+
diff --git a/test/tint/builtins/gen/var/textureStore/9f7cea.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/textureStore/9f7cea.wgsl.expected.ir.fxc.hlsl
index 685a9ee..b264fd5 100644
--- a/test/tint/builtins/gen/var/textureStore/9f7cea.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureStore/9f7cea.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,21 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWTexture2DArray<uint4> arg_0 : register(u0, space1);
+void textureStore_9f7cea() {
+  int2 arg_1 = (1).xx;
+  uint arg_2 = 1u;
+  uint4 arg_3 = (1u).xxxx;
+  RWTexture2DArray<uint4> v = arg_0;
+  int2 v_1 = arg_1;
+  uint4 v_2 = arg_3;
+  v[int3(v_1, int(arg_2))] = v_2;
+}
+
+void fragment_main() {
+  textureStore_9f7cea();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  textureStore_9f7cea();
+}
+
diff --git a/test/tint/builtins/gen/var/textureStore/a0022f.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/textureStore/a0022f.wgsl.expected.ir.dxc.hlsl
index 685a9ee..25d65c7 100644
--- a/test/tint/builtins/gen/var/textureStore/a0022f.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureStore/a0022f.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,21 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWTexture2DArray<int4> arg_0 : register(u0, space1);
+void textureStore_a0022f() {
+  int2 arg_1 = (1).xx;
+  int arg_2 = 1;
+  int4 arg_3 = (1).xxxx;
+  RWTexture2DArray<int4> v = arg_0;
+  int2 v_1 = arg_1;
+  int4 v_2 = arg_3;
+  v[int3(v_1, int(arg_2))] = v_2;
+}
+
+void fragment_main() {
+  textureStore_a0022f();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  textureStore_a0022f();
+}
+
diff --git a/test/tint/builtins/gen/var/textureStore/a0022f.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/textureStore/a0022f.wgsl.expected.ir.fxc.hlsl
index 685a9ee..25d65c7 100644
--- a/test/tint/builtins/gen/var/textureStore/a0022f.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureStore/a0022f.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,21 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWTexture2DArray<int4> arg_0 : register(u0, space1);
+void textureStore_a0022f() {
+  int2 arg_1 = (1).xx;
+  int arg_2 = 1;
+  int4 arg_3 = (1).xxxx;
+  RWTexture2DArray<int4> v = arg_0;
+  int2 v_1 = arg_1;
+  int4 v_2 = arg_3;
+  v[int3(v_1, int(arg_2))] = v_2;
+}
+
+void fragment_main() {
+  textureStore_a0022f();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  textureStore_a0022f();
+}
+
diff --git a/test/tint/builtins/gen/var/textureStore/a0f96e.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/textureStore/a0f96e.wgsl.expected.ir.dxc.hlsl
index 685a9ee..d76976d 100644
--- a/test/tint/builtins/gen/var/textureStore/a0f96e.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureStore/a0f96e.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,21 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWTexture2DArray<float4> arg_0 : register(u0, space1);
+void textureStore_a0f96e() {
+  uint2 arg_1 = (1u).xx;
+  uint arg_2 = 1u;
+  float4 arg_3 = (1.0f).xxxx;
+  RWTexture2DArray<float4> v = arg_0;
+  uint2 v_1 = arg_1;
+  float4 v_2 = arg_3;
+  v[uint3(v_1, uint(arg_2))] = v_2;
+}
+
+void fragment_main() {
+  textureStore_a0f96e();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  textureStore_a0f96e();
+}
+
diff --git a/test/tint/builtins/gen/var/textureStore/a0f96e.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/textureStore/a0f96e.wgsl.expected.ir.fxc.hlsl
index 685a9ee..d76976d 100644
--- a/test/tint/builtins/gen/var/textureStore/a0f96e.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureStore/a0f96e.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,21 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWTexture2DArray<float4> arg_0 : register(u0, space1);
+void textureStore_a0f96e() {
+  uint2 arg_1 = (1u).xx;
+  uint arg_2 = 1u;
+  float4 arg_3 = (1.0f).xxxx;
+  RWTexture2DArray<float4> v = arg_0;
+  uint2 v_1 = arg_1;
+  float4 v_2 = arg_3;
+  v[uint3(v_1, uint(arg_2))] = v_2;
+}
+
+void fragment_main() {
+  textureStore_a0f96e();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  textureStore_a0f96e();
+}
+
diff --git a/test/tint/builtins/gen/var/textureStore/a1352c.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/textureStore/a1352c.wgsl.expected.ir.dxc.hlsl
index 685a9ee..39b5081 100644
--- a/test/tint/builtins/gen/var/textureStore/a1352c.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureStore/a1352c.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,21 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWTexture2DArray<int4> arg_0 : register(u0, space1);
+void textureStore_a1352c() {
+  uint2 arg_1 = (1u).xx;
+  uint arg_2 = 1u;
+  int4 arg_3 = (1).xxxx;
+  RWTexture2DArray<int4> v = arg_0;
+  uint2 v_1 = arg_1;
+  int4 v_2 = arg_3;
+  v[uint3(v_1, uint(arg_2))] = v_2;
+}
+
+void fragment_main() {
+  textureStore_a1352c();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  textureStore_a1352c();
+}
+
diff --git a/test/tint/builtins/gen/var/textureStore/a1352c.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/textureStore/a1352c.wgsl.expected.ir.fxc.hlsl
index 685a9ee..39b5081 100644
--- a/test/tint/builtins/gen/var/textureStore/a1352c.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureStore/a1352c.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,21 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWTexture2DArray<int4> arg_0 : register(u0, space1);
+void textureStore_a1352c() {
+  uint2 arg_1 = (1u).xx;
+  uint arg_2 = 1u;
+  int4 arg_3 = (1).xxxx;
+  RWTexture2DArray<int4> v = arg_0;
+  uint2 v_1 = arg_1;
+  int4 v_2 = arg_3;
+  v[uint3(v_1, uint(arg_2))] = v_2;
+}
+
+void fragment_main() {
+  textureStore_a1352c();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  textureStore_a1352c();
+}
+
diff --git a/test/tint/builtins/gen/var/textureStore/a14041.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/textureStore/a14041.wgsl.expected.ir.dxc.hlsl
index 685a9ee..e8768b1 100644
--- a/test/tint/builtins/gen/var/textureStore/a14041.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureStore/a14041.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,17 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWTexture1D<int4> arg_0 : register(u0, space1);
+void textureStore_a14041() {
+  int arg_1 = 1;
+  int4 arg_2 = (1).xxxx;
+  arg_0[arg_1] = arg_2;
+}
+
+void fragment_main() {
+  textureStore_a14041();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  textureStore_a14041();
+}
+
diff --git a/test/tint/builtins/gen/var/textureStore/a14041.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/textureStore/a14041.wgsl.expected.ir.fxc.hlsl
index 685a9ee..e8768b1 100644
--- a/test/tint/builtins/gen/var/textureStore/a14041.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureStore/a14041.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,17 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWTexture1D<int4> arg_0 : register(u0, space1);
+void textureStore_a14041() {
+  int arg_1 = 1;
+  int4 arg_2 = (1).xxxx;
+  arg_0[arg_1] = arg_2;
+}
+
+void fragment_main() {
+  textureStore_a14041();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  textureStore_a14041();
+}
+
diff --git a/test/tint/builtins/gen/var/textureStore/a165b8.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/textureStore/a165b8.wgsl.expected.ir.dxc.hlsl
index 685a9ee..d93290c 100644
--- a/test/tint/builtins/gen/var/textureStore/a165b8.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureStore/a165b8.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,17 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWTexture2D<float4> arg_0 : register(u0, space1);
+void textureStore_a165b8() {
+  uint2 arg_1 = (1u).xx;
+  float4 arg_2 = (1.0f).xxxx;
+  arg_0[arg_1] = arg_2;
+}
+
+void fragment_main() {
+  textureStore_a165b8();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  textureStore_a165b8();
+}
+
diff --git a/test/tint/builtins/gen/var/textureStore/a165b8.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/textureStore/a165b8.wgsl.expected.ir.fxc.hlsl
index 685a9ee..d93290c 100644
--- a/test/tint/builtins/gen/var/textureStore/a165b8.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureStore/a165b8.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,17 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWTexture2D<float4> arg_0 : register(u0, space1);
+void textureStore_a165b8() {
+  uint2 arg_1 = (1u).xx;
+  float4 arg_2 = (1.0f).xxxx;
+  arg_0[arg_1] = arg_2;
+}
+
+void fragment_main() {
+  textureStore_a165b8();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  textureStore_a165b8();
+}
+
diff --git a/test/tint/builtins/gen/var/textureStore/a19a12.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/textureStore/a19a12.wgsl.expected.ir.dxc.hlsl
index 685a9ee..fd15647 100644
--- a/test/tint/builtins/gen/var/textureStore/a19a12.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureStore/a19a12.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,17 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWTexture3D<uint4> arg_0 : register(u0, space1);
+void textureStore_a19a12() {
+  int3 arg_1 = (1).xxx;
+  uint4 arg_2 = (1u).xxxx;
+  arg_0[arg_1] = arg_2;
+}
+
+void fragment_main() {
+  textureStore_a19a12();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  textureStore_a19a12();
+}
+
diff --git a/test/tint/builtins/gen/var/textureStore/a19a12.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/textureStore/a19a12.wgsl.expected.ir.fxc.hlsl
index 685a9ee..fd15647 100644
--- a/test/tint/builtins/gen/var/textureStore/a19a12.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureStore/a19a12.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,17 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWTexture3D<uint4> arg_0 : register(u0, space1);
+void textureStore_a19a12() {
+  int3 arg_1 = (1).xxx;
+  uint4 arg_2 = (1u).xxxx;
+  arg_0[arg_1] = arg_2;
+}
+
+void fragment_main() {
+  textureStore_a19a12();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  textureStore_a19a12();
+}
+
diff --git a/test/tint/builtins/gen/var/textureStore/a24491.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/textureStore/a24491.wgsl.expected.ir.dxc.hlsl
index 685a9ee..2679e68 100644
--- a/test/tint/builtins/gen/var/textureStore/a24491.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureStore/a24491.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,17 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWTexture2D<uint4> arg_0 : register(u0, space1);
+void textureStore_a24491() {
+  uint2 arg_1 = (1u).xx;
+  uint4 arg_2 = (1u).xxxx;
+  arg_0[arg_1] = arg_2;
+}
+
+void fragment_main() {
+  textureStore_a24491();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  textureStore_a24491();
+}
+
diff --git a/test/tint/builtins/gen/var/textureStore/a24491.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/textureStore/a24491.wgsl.expected.ir.fxc.hlsl
index 685a9ee..2679e68 100644
--- a/test/tint/builtins/gen/var/textureStore/a24491.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureStore/a24491.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,17 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWTexture2D<uint4> arg_0 : register(u0, space1);
+void textureStore_a24491() {
+  uint2 arg_1 = (1u).xx;
+  uint4 arg_2 = (1u).xxxx;
+  arg_0[arg_1] = arg_2;
+}
+
+void fragment_main() {
+  textureStore_a24491();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  textureStore_a24491();
+}
+
diff --git a/test/tint/builtins/gen/var/textureStore/a4c338.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/textureStore/a4c338.wgsl.expected.ir.dxc.hlsl
index 685a9ee..8380428 100644
--- a/test/tint/builtins/gen/var/textureStore/a4c338.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureStore/a4c338.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,17 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWTexture1D<float4> arg_0 : register(u0, space1);
+void textureStore_a4c338() {
+  uint arg_1 = 1u;
+  float4 arg_2 = (1.0f).xxxx;
+  arg_0[arg_1] = arg_2;
+}
+
+void fragment_main() {
+  textureStore_a4c338();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  textureStore_a4c338();
+}
+
diff --git a/test/tint/builtins/gen/var/textureStore/a4c338.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/textureStore/a4c338.wgsl.expected.ir.fxc.hlsl
index 685a9ee..8380428 100644
--- a/test/tint/builtins/gen/var/textureStore/a4c338.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureStore/a4c338.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,17 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWTexture1D<float4> arg_0 : register(u0, space1);
+void textureStore_a4c338() {
+  uint arg_1 = 1u;
+  float4 arg_2 = (1.0f).xxxx;
+  arg_0[arg_1] = arg_2;
+}
+
+void fragment_main() {
+  textureStore_a4c338();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  textureStore_a4c338();
+}
+
diff --git a/test/tint/builtins/gen/var/textureStore/a5b88e.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/textureStore/a5b88e.wgsl.expected.ir.dxc.hlsl
index 685a9ee..91fc88f 100644
--- a/test/tint/builtins/gen/var/textureStore/a5b88e.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureStore/a5b88e.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,17 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWTexture3D<int4> arg_0 : register(u0, space1);
+void textureStore_a5b88e() {
+  uint3 arg_1 = (1u).xxx;
+  int4 arg_2 = (1).xxxx;
+  arg_0[arg_1] = arg_2;
+}
+
+void fragment_main() {
+  textureStore_a5b88e();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  textureStore_a5b88e();
+}
+
diff --git a/test/tint/builtins/gen/var/textureStore/a5b88e.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/textureStore/a5b88e.wgsl.expected.ir.fxc.hlsl
index 685a9ee..91fc88f 100644
--- a/test/tint/builtins/gen/var/textureStore/a5b88e.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureStore/a5b88e.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,17 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWTexture3D<int4> arg_0 : register(u0, space1);
+void textureStore_a5b88e() {
+  uint3 arg_1 = (1u).xxx;
+  int4 arg_2 = (1).xxxx;
+  arg_0[arg_1] = arg_2;
+}
+
+void fragment_main() {
+  textureStore_a5b88e();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  textureStore_a5b88e();
+}
+
diff --git a/test/tint/builtins/gen/var/textureStore/a5c925.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/textureStore/a5c925.wgsl.expected.ir.dxc.hlsl
index 685a9ee..bb05386 100644
--- a/test/tint/builtins/gen/var/textureStore/a5c925.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureStore/a5c925.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,17 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWTexture3D<int4> arg_0 : register(u0, space1);
+void textureStore_a5c925() {
+  uint3 arg_1 = (1u).xxx;
+  int4 arg_2 = (1).xxxx;
+  arg_0[arg_1] = arg_2;
+}
+
+void fragment_main() {
+  textureStore_a5c925();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  textureStore_a5c925();
+}
+
diff --git a/test/tint/builtins/gen/var/textureStore/a5c925.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/textureStore/a5c925.wgsl.expected.ir.fxc.hlsl
index 685a9ee..bb05386 100644
--- a/test/tint/builtins/gen/var/textureStore/a5c925.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureStore/a5c925.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,17 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWTexture3D<int4> arg_0 : register(u0, space1);
+void textureStore_a5c925() {
+  uint3 arg_1 = (1u).xxx;
+  int4 arg_2 = (1).xxxx;
+  arg_0[arg_1] = arg_2;
+}
+
+void fragment_main() {
+  textureStore_a5c925();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  textureStore_a5c925();
+}
+
diff --git a/test/tint/builtins/gen/var/textureStore/a5e80d.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/textureStore/a5e80d.wgsl.expected.ir.dxc.hlsl
index 685a9ee..0e4f5d9 100644
--- a/test/tint/builtins/gen/var/textureStore/a5e80d.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureStore/a5e80d.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,17 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWTexture3D<float4> arg_0 : register(u0, space1);
+void textureStore_a5e80d() {
+  uint3 arg_1 = (1u).xxx;
+  float4 arg_2 = (1.0f).xxxx;
+  arg_0[arg_1] = arg_2;
+}
+
+void fragment_main() {
+  textureStore_a5e80d();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  textureStore_a5e80d();
+}
+
diff --git a/test/tint/builtins/gen/var/textureStore/a5e80d.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/textureStore/a5e80d.wgsl.expected.ir.fxc.hlsl
index 685a9ee..0e4f5d9 100644
--- a/test/tint/builtins/gen/var/textureStore/a5e80d.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureStore/a5e80d.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,17 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWTexture3D<float4> arg_0 : register(u0, space1);
+void textureStore_a5e80d() {
+  uint3 arg_1 = (1u).xxx;
+  float4 arg_2 = (1.0f).xxxx;
+  arg_0[arg_1] = arg_2;
+}
+
+void fragment_main() {
+  textureStore_a5e80d();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  textureStore_a5e80d();
+}
+
diff --git a/test/tint/builtins/gen/var/textureStore/a66ca4.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/textureStore/a66ca4.wgsl.expected.ir.dxc.hlsl
index 685a9ee..bf80b43 100644
--- a/test/tint/builtins/gen/var/textureStore/a66ca4.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureStore/a66ca4.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,17 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWTexture3D<float4> arg_0 : register(u0, space1);
+void textureStore_a66ca4() {
+  int3 arg_1 = (1).xxx;
+  float4 arg_2 = (1.0f).xxxx;
+  arg_0[arg_1] = arg_2;
+}
+
+void fragment_main() {
+  textureStore_a66ca4();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  textureStore_a66ca4();
+}
+
diff --git a/test/tint/builtins/gen/var/textureStore/a66ca4.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/textureStore/a66ca4.wgsl.expected.ir.fxc.hlsl
index 685a9ee..bf80b43 100644
--- a/test/tint/builtins/gen/var/textureStore/a66ca4.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureStore/a66ca4.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,17 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWTexture3D<float4> arg_0 : register(u0, space1);
+void textureStore_a66ca4() {
+  int3 arg_1 = (1).xxx;
+  float4 arg_2 = (1.0f).xxxx;
+  arg_0[arg_1] = arg_2;
+}
+
+void fragment_main() {
+  textureStore_a66ca4();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  textureStore_a66ca4();
+}
+
diff --git a/test/tint/builtins/gen/var/textureStore/a6a986.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/textureStore/a6a986.wgsl.expected.ir.dxc.hlsl
index 685a9ee..ad6ff0d 100644
--- a/test/tint/builtins/gen/var/textureStore/a6a986.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureStore/a6a986.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,21 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWTexture2DArray<float4> arg_0 : register(u0, space1);
+void textureStore_a6a986() {
+  uint2 arg_1 = (1u).xx;
+  int arg_2 = 1;
+  float4 arg_3 = (1.0f).xxxx;
+  RWTexture2DArray<float4> v = arg_0;
+  uint2 v_1 = arg_1;
+  float4 v_2 = arg_3;
+  v[uint3(v_1, uint(arg_2))] = v_2;
+}
+
+void fragment_main() {
+  textureStore_a6a986();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  textureStore_a6a986();
+}
+
diff --git a/test/tint/builtins/gen/var/textureStore/a6a986.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/textureStore/a6a986.wgsl.expected.ir.fxc.hlsl
index 685a9ee..ad6ff0d 100644
--- a/test/tint/builtins/gen/var/textureStore/a6a986.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureStore/a6a986.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,21 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWTexture2DArray<float4> arg_0 : register(u0, space1);
+void textureStore_a6a986() {
+  uint2 arg_1 = (1u).xx;
+  int arg_2 = 1;
+  float4 arg_3 = (1.0f).xxxx;
+  RWTexture2DArray<float4> v = arg_0;
+  uint2 v_1 = arg_1;
+  float4 v_2 = arg_3;
+  v[uint3(v_1, uint(arg_2))] = v_2;
+}
+
+void fragment_main() {
+  textureStore_a6a986();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  textureStore_a6a986();
+}
+
diff --git a/test/tint/builtins/gen/var/textureStore/a6e78f.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/textureStore/a6e78f.wgsl.expected.ir.dxc.hlsl
index 685a9ee..f5fac68 100644
--- a/test/tint/builtins/gen/var/textureStore/a6e78f.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureStore/a6e78f.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,17 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWTexture1D<uint4> arg_0 : register(u0, space1);
+void textureStore_a6e78f() {
+  uint arg_1 = 1u;
+  uint4 arg_2 = (1u).xxxx;
+  arg_0[arg_1] = arg_2;
+}
+
+void fragment_main() {
+  textureStore_a6e78f();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  textureStore_a6e78f();
+}
+
diff --git a/test/tint/builtins/gen/var/textureStore/a6e78f.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/textureStore/a6e78f.wgsl.expected.ir.fxc.hlsl
index 685a9ee..f5fac68 100644
--- a/test/tint/builtins/gen/var/textureStore/a6e78f.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureStore/a6e78f.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,17 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWTexture1D<uint4> arg_0 : register(u0, space1);
+void textureStore_a6e78f() {
+  uint arg_1 = 1u;
+  uint4 arg_2 = (1u).xxxx;
+  arg_0[arg_1] = arg_2;
+}
+
+void fragment_main() {
+  textureStore_a6e78f();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  textureStore_a6e78f();
+}
+
diff --git a/test/tint/builtins/gen/var/textureStore/a702b6.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/textureStore/a702b6.wgsl.expected.ir.dxc.hlsl
index 685a9ee..57d036f 100644
--- a/test/tint/builtins/gen/var/textureStore/a702b6.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureStore/a702b6.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,21 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWTexture2DArray<uint4> arg_0 : register(u0, space1);
+void textureStore_a702b6() {
+  int2 arg_1 = (1).xx;
+  int arg_2 = 1;
+  uint4 arg_3 = (1u).xxxx;
+  RWTexture2DArray<uint4> v = arg_0;
+  int2 v_1 = arg_1;
+  uint4 v_2 = arg_3;
+  v[int3(v_1, int(arg_2))] = v_2;
+}
+
+void fragment_main() {
+  textureStore_a702b6();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  textureStore_a702b6();
+}
+
diff --git a/test/tint/builtins/gen/var/textureStore/a702b6.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/textureStore/a702b6.wgsl.expected.ir.fxc.hlsl
index 685a9ee..57d036f 100644
--- a/test/tint/builtins/gen/var/textureStore/a702b6.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureStore/a702b6.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,21 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWTexture2DArray<uint4> arg_0 : register(u0, space1);
+void textureStore_a702b6() {
+  int2 arg_1 = (1).xx;
+  int arg_2 = 1;
+  uint4 arg_3 = (1u).xxxx;
+  RWTexture2DArray<uint4> v = arg_0;
+  int2 v_1 = arg_1;
+  uint4 v_2 = arg_3;
+  v[int3(v_1, int(arg_2))] = v_2;
+}
+
+void fragment_main() {
+  textureStore_a702b6();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  textureStore_a702b6();
+}
+
diff --git a/test/tint/builtins/gen/var/textureStore/a7fc47.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/textureStore/a7fc47.wgsl.expected.ir.dxc.hlsl
index 685a9ee..e2e4abe 100644
--- a/test/tint/builtins/gen/var/textureStore/a7fc47.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureStore/a7fc47.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,17 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWTexture1D<float4> arg_0 : register(u0, space1);
+void textureStore_a7fc47() {
+  uint arg_1 = 1u;
+  float4 arg_2 = (1.0f).xxxx;
+  arg_0[arg_1] = arg_2;
+}
+
+void fragment_main() {
+  textureStore_a7fc47();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  textureStore_a7fc47();
+}
+
diff --git a/test/tint/builtins/gen/var/textureStore/a7fc47.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/textureStore/a7fc47.wgsl.expected.ir.fxc.hlsl
index 685a9ee..e2e4abe 100644
--- a/test/tint/builtins/gen/var/textureStore/a7fc47.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureStore/a7fc47.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,17 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWTexture1D<float4> arg_0 : register(u0, space1);
+void textureStore_a7fc47() {
+  uint arg_1 = 1u;
+  float4 arg_2 = (1.0f).xxxx;
+  arg_0[arg_1] = arg_2;
+}
+
+void fragment_main() {
+  textureStore_a7fc47();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  textureStore_a7fc47();
+}
+
diff --git a/test/tint/builtins/gen/var/textureStore/a9298c.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/textureStore/a9298c.wgsl.expected.ir.dxc.hlsl
index 685a9ee..edaf853 100644
--- a/test/tint/builtins/gen/var/textureStore/a9298c.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureStore/a9298c.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,17 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWTexture1D<uint4> arg_0 : register(u0, space1);
+void textureStore_a9298c() {
+  uint arg_1 = 1u;
+  uint4 arg_2 = (1u).xxxx;
+  arg_0[arg_1] = arg_2;
+}
+
+void fragment_main() {
+  textureStore_a9298c();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  textureStore_a9298c();
+}
+
diff --git a/test/tint/builtins/gen/var/textureStore/a9298c.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/textureStore/a9298c.wgsl.expected.ir.fxc.hlsl
index 685a9ee..edaf853 100644
--- a/test/tint/builtins/gen/var/textureStore/a9298c.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureStore/a9298c.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,17 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWTexture1D<uint4> arg_0 : register(u0, space1);
+void textureStore_a9298c() {
+  uint arg_1 = 1u;
+  uint4 arg_2 = (1u).xxxx;
+  arg_0[arg_1] = arg_2;
+}
+
+void fragment_main() {
+  textureStore_a9298c();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  textureStore_a9298c();
+}
+
diff --git a/test/tint/builtins/gen/var/textureStore/a9426c.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/textureStore/a9426c.wgsl.expected.ir.dxc.hlsl
index 685a9ee..c23fb20 100644
--- a/test/tint/builtins/gen/var/textureStore/a9426c.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureStore/a9426c.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,21 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWTexture2DArray<uint4> arg_0 : register(u0, space1);
+void textureStore_a9426c() {
+  uint2 arg_1 = (1u).xx;
+  uint arg_2 = 1u;
+  uint4 arg_3 = (1u).xxxx;
+  RWTexture2DArray<uint4> v = arg_0;
+  uint2 v_1 = arg_1;
+  uint4 v_2 = arg_3;
+  v[uint3(v_1, uint(arg_2))] = v_2;
+}
+
+void fragment_main() {
+  textureStore_a9426c();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  textureStore_a9426c();
+}
+
diff --git a/test/tint/builtins/gen/var/textureStore/a9426c.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/textureStore/a9426c.wgsl.expected.ir.fxc.hlsl
index 685a9ee..c23fb20 100644
--- a/test/tint/builtins/gen/var/textureStore/a9426c.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureStore/a9426c.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,21 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWTexture2DArray<uint4> arg_0 : register(u0, space1);
+void textureStore_a9426c() {
+  uint2 arg_1 = (1u).xx;
+  uint arg_2 = 1u;
+  uint4 arg_3 = (1u).xxxx;
+  RWTexture2DArray<uint4> v = arg_0;
+  uint2 v_1 = arg_1;
+  uint4 v_2 = arg_3;
+  v[uint3(v_1, uint(arg_2))] = v_2;
+}
+
+void fragment_main() {
+  textureStore_a9426c();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  textureStore_a9426c();
+}
+
diff --git a/test/tint/builtins/gen/var/textureStore/ab03b6.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/textureStore/ab03b6.wgsl.expected.ir.dxc.hlsl
index 685a9ee..1819a5d 100644
--- a/test/tint/builtins/gen/var/textureStore/ab03b6.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureStore/ab03b6.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,17 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWTexture3D<uint4> arg_0 : register(u0, space1);
+void textureStore_ab03b6() {
+  int3 arg_1 = (1).xxx;
+  uint4 arg_2 = (1u).xxxx;
+  arg_0[arg_1] = arg_2;
+}
+
+void fragment_main() {
+  textureStore_ab03b6();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  textureStore_ab03b6();
+}
+
diff --git a/test/tint/builtins/gen/var/textureStore/ab03b6.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/textureStore/ab03b6.wgsl.expected.ir.fxc.hlsl
index 685a9ee..1819a5d 100644
--- a/test/tint/builtins/gen/var/textureStore/ab03b6.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureStore/ab03b6.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,17 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWTexture3D<uint4> arg_0 : register(u0, space1);
+void textureStore_ab03b6() {
+  int3 arg_1 = (1).xxx;
+  uint4 arg_2 = (1u).xxxx;
+  arg_0[arg_1] = arg_2;
+}
+
+void fragment_main() {
+  textureStore_ab03b6();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  textureStore_ab03b6();
+}
+
diff --git a/test/tint/builtins/gen/var/textureStore/ab788e.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/textureStore/ab788e.wgsl.expected.ir.dxc.hlsl
index 685a9ee..d023df4 100644
--- a/test/tint/builtins/gen/var/textureStore/ab788e.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureStore/ab788e.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,17 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWTexture2D<float4> arg_0 : register(u0, space1);
+void textureStore_ab788e() {
+  int2 arg_1 = (1).xx;
+  float4 arg_2 = (1.0f).xxxx;
+  arg_0[arg_1] = arg_2;
+}
+
+void fragment_main() {
+  textureStore_ab788e();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  textureStore_ab788e();
+}
+
diff --git a/test/tint/builtins/gen/var/textureStore/ab788e.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/textureStore/ab788e.wgsl.expected.ir.fxc.hlsl
index 685a9ee..d023df4 100644
--- a/test/tint/builtins/gen/var/textureStore/ab788e.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureStore/ab788e.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,17 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWTexture2D<float4> arg_0 : register(u0, space1);
+void textureStore_ab788e() {
+  int2 arg_1 = (1).xx;
+  float4 arg_2 = (1.0f).xxxx;
+  arg_0[arg_1] = arg_2;
+}
+
+void fragment_main() {
+  textureStore_ab788e();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  textureStore_ab788e();
+}
+
diff --git a/test/tint/builtins/gen/var/textureStore/abdd21.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/textureStore/abdd21.wgsl.expected.ir.dxc.hlsl
index 685a9ee..8601b73 100644
--- a/test/tint/builtins/gen/var/textureStore/abdd21.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureStore/abdd21.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,21 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWTexture2DArray<uint4> arg_0 : register(u0, space1);
+void textureStore_abdd21() {
+  uint2 arg_1 = (1u).xx;
+  uint arg_2 = 1u;
+  uint4 arg_3 = (1u).xxxx;
+  RWTexture2DArray<uint4> v = arg_0;
+  uint2 v_1 = arg_1;
+  uint4 v_2 = arg_3;
+  v[uint3(v_1, uint(arg_2))] = v_2;
+}
+
+void fragment_main() {
+  textureStore_abdd21();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  textureStore_abdd21();
+}
+
diff --git a/test/tint/builtins/gen/var/textureStore/abdd21.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/textureStore/abdd21.wgsl.expected.ir.fxc.hlsl
index 685a9ee..8601b73 100644
--- a/test/tint/builtins/gen/var/textureStore/abdd21.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureStore/abdd21.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,21 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWTexture2DArray<uint4> arg_0 : register(u0, space1);
+void textureStore_abdd21() {
+  uint2 arg_1 = (1u).xx;
+  uint arg_2 = 1u;
+  uint4 arg_3 = (1u).xxxx;
+  RWTexture2DArray<uint4> v = arg_0;
+  uint2 v_1 = arg_1;
+  uint4 v_2 = arg_3;
+  v[uint3(v_1, uint(arg_2))] = v_2;
+}
+
+void fragment_main() {
+  textureStore_abdd21();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  textureStore_abdd21();
+}
+
diff --git a/test/tint/builtins/gen/var/textureStore/ac0a55.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/textureStore/ac0a55.wgsl.expected.ir.dxc.hlsl
index 685a9ee..835c76c 100644
--- a/test/tint/builtins/gen/var/textureStore/ac0a55.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureStore/ac0a55.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,21 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWTexture2DArray<uint4> arg_0 : register(u0, space1);
+void textureStore_ac0a55() {
+  uint2 arg_1 = (1u).xx;
+  uint arg_2 = 1u;
+  uint4 arg_3 = (1u).xxxx;
+  RWTexture2DArray<uint4> v = arg_0;
+  uint2 v_1 = arg_1;
+  uint4 v_2 = arg_3;
+  v[uint3(v_1, uint(arg_2))] = v_2;
+}
+
+void fragment_main() {
+  textureStore_ac0a55();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  textureStore_ac0a55();
+}
+
diff --git a/test/tint/builtins/gen/var/textureStore/ac0a55.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/textureStore/ac0a55.wgsl.expected.ir.fxc.hlsl
index 685a9ee..835c76c 100644
--- a/test/tint/builtins/gen/var/textureStore/ac0a55.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureStore/ac0a55.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,21 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWTexture2DArray<uint4> arg_0 : register(u0, space1);
+void textureStore_ac0a55() {
+  uint2 arg_1 = (1u).xx;
+  uint arg_2 = 1u;
+  uint4 arg_3 = (1u).xxxx;
+  RWTexture2DArray<uint4> v = arg_0;
+  uint2 v_1 = arg_1;
+  uint4 v_2 = arg_3;
+  v[uint3(v_1, uint(arg_2))] = v_2;
+}
+
+void fragment_main() {
+  textureStore_ac0a55();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  textureStore_ac0a55();
+}
+
diff --git a/test/tint/builtins/gen/var/textureStore/ac67aa.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/textureStore/ac67aa.wgsl.expected.ir.dxc.hlsl
index 685a9ee..0023637 100644
--- a/test/tint/builtins/gen/var/textureStore/ac67aa.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureStore/ac67aa.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,17 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWTexture3D<uint4> arg_0 : register(u0, space1);
+void textureStore_ac67aa() {
+  int3 arg_1 = (1).xxx;
+  uint4 arg_2 = (1u).xxxx;
+  arg_0[arg_1] = arg_2;
+}
+
+void fragment_main() {
+  textureStore_ac67aa();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  textureStore_ac67aa();
+}
+
diff --git a/test/tint/builtins/gen/var/textureStore/ac67aa.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/textureStore/ac67aa.wgsl.expected.ir.fxc.hlsl
index 685a9ee..0023637 100644
--- a/test/tint/builtins/gen/var/textureStore/ac67aa.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureStore/ac67aa.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,17 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWTexture3D<uint4> arg_0 : register(u0, space1);
+void textureStore_ac67aa() {
+  int3 arg_1 = (1).xxx;
+  uint4 arg_2 = (1u).xxxx;
+  arg_0[arg_1] = arg_2;
+}
+
+void fragment_main() {
+  textureStore_ac67aa();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  textureStore_ac67aa();
+}
+
diff --git a/test/tint/builtins/gen/var/textureStore/ae6a2a.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/textureStore/ae6a2a.wgsl.expected.ir.dxc.hlsl
index 685a9ee..18081dc 100644
--- a/test/tint/builtins/gen/var/textureStore/ae6a2a.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureStore/ae6a2a.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,21 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWTexture2DArray<float4> arg_0 : register(u0, space1);
+void textureStore_ae6a2a() {
+  uint2 arg_1 = (1u).xx;
+  uint arg_2 = 1u;
+  float4 arg_3 = (1.0f).xxxx;
+  RWTexture2DArray<float4> v = arg_0;
+  uint2 v_1 = arg_1;
+  float4 v_2 = arg_3;
+  v[uint3(v_1, uint(arg_2))] = v_2;
+}
+
+void fragment_main() {
+  textureStore_ae6a2a();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  textureStore_ae6a2a();
+}
+
diff --git a/test/tint/builtins/gen/var/textureStore/ae6a2a.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/textureStore/ae6a2a.wgsl.expected.ir.fxc.hlsl
index 685a9ee..18081dc 100644
--- a/test/tint/builtins/gen/var/textureStore/ae6a2a.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureStore/ae6a2a.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,21 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWTexture2DArray<float4> arg_0 : register(u0, space1);
+void textureStore_ae6a2a() {
+  uint2 arg_1 = (1u).xx;
+  uint arg_2 = 1u;
+  float4 arg_3 = (1.0f).xxxx;
+  RWTexture2DArray<float4> v = arg_0;
+  uint2 v_1 = arg_1;
+  float4 v_2 = arg_3;
+  v[uint3(v_1, uint(arg_2))] = v_2;
+}
+
+void fragment_main() {
+  textureStore_ae6a2a();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  textureStore_ae6a2a();
+}
+
diff --git a/test/tint/builtins/gen/var/textureStore/aeb38a.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/textureStore/aeb38a.wgsl.expected.ir.dxc.hlsl
index 685a9ee..db96f21 100644
--- a/test/tint/builtins/gen/var/textureStore/aeb38a.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureStore/aeb38a.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,17 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWTexture2D<uint4> arg_0 : register(u0, space1);
+void textureStore_aeb38a() {
+  uint2 arg_1 = (1u).xx;
+  uint4 arg_2 = (1u).xxxx;
+  arg_0[arg_1] = arg_2;
+}
+
+void fragment_main() {
+  textureStore_aeb38a();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  textureStore_aeb38a();
+}
+
diff --git a/test/tint/builtins/gen/var/textureStore/aeb38a.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/textureStore/aeb38a.wgsl.expected.ir.fxc.hlsl
index 685a9ee..db96f21 100644
--- a/test/tint/builtins/gen/var/textureStore/aeb38a.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureStore/aeb38a.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,17 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWTexture2D<uint4> arg_0 : register(u0, space1);
+void textureStore_aeb38a() {
+  uint2 arg_1 = (1u).xx;
+  uint4 arg_2 = (1u).xxxx;
+  arg_0[arg_1] = arg_2;
+}
+
+void fragment_main() {
+  textureStore_aeb38a();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  textureStore_aeb38a();
+}
+
diff --git a/test/tint/builtins/gen/var/textureStore/aedea3.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/textureStore/aedea3.wgsl.expected.ir.dxc.hlsl
index 685a9ee..f55980b 100644
--- a/test/tint/builtins/gen/var/textureStore/aedea3.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureStore/aedea3.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,21 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWTexture2DArray<uint4> arg_0 : register(u0, space1);
+void textureStore_aedea3() {
+  uint2 arg_1 = (1u).xx;
+  int arg_2 = 1;
+  uint4 arg_3 = (1u).xxxx;
+  RWTexture2DArray<uint4> v = arg_0;
+  uint2 v_1 = arg_1;
+  uint4 v_2 = arg_3;
+  v[uint3(v_1, uint(arg_2))] = v_2;
+}
+
+void fragment_main() {
+  textureStore_aedea3();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  textureStore_aedea3();
+}
+
diff --git a/test/tint/builtins/gen/var/textureStore/aedea3.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/textureStore/aedea3.wgsl.expected.ir.fxc.hlsl
index 685a9ee..f55980b 100644
--- a/test/tint/builtins/gen/var/textureStore/aedea3.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureStore/aedea3.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,21 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWTexture2DArray<uint4> arg_0 : register(u0, space1);
+void textureStore_aedea3() {
+  uint2 arg_1 = (1u).xx;
+  int arg_2 = 1;
+  uint4 arg_3 = (1u).xxxx;
+  RWTexture2DArray<uint4> v = arg_0;
+  uint2 v_1 = arg_1;
+  uint4 v_2 = arg_3;
+  v[uint3(v_1, uint(arg_2))] = v_2;
+}
+
+void fragment_main() {
+  textureStore_aedea3();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  textureStore_aedea3();
+}
+
diff --git a/test/tint/builtins/gen/var/textureStore/b16110.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/textureStore/b16110.wgsl.expected.ir.dxc.hlsl
index 685a9ee..f515223 100644
--- a/test/tint/builtins/gen/var/textureStore/b16110.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureStore/b16110.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,21 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWTexture2DArray<int4> arg_0 : register(u0, space1);
+void textureStore_b16110() {
+  uint2 arg_1 = (1u).xx;
+  uint arg_2 = 1u;
+  int4 arg_3 = (1).xxxx;
+  RWTexture2DArray<int4> v = arg_0;
+  uint2 v_1 = arg_1;
+  int4 v_2 = arg_3;
+  v[uint3(v_1, uint(arg_2))] = v_2;
+}
+
+void fragment_main() {
+  textureStore_b16110();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  textureStore_b16110();
+}
+
diff --git a/test/tint/builtins/gen/var/textureStore/b16110.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/textureStore/b16110.wgsl.expected.ir.fxc.hlsl
index 685a9ee..f515223 100644
--- a/test/tint/builtins/gen/var/textureStore/b16110.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureStore/b16110.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,21 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWTexture2DArray<int4> arg_0 : register(u0, space1);
+void textureStore_b16110() {
+  uint2 arg_1 = (1u).xx;
+  uint arg_2 = 1u;
+  int4 arg_3 = (1).xxxx;
+  RWTexture2DArray<int4> v = arg_0;
+  uint2 v_1 = arg_1;
+  int4 v_2 = arg_3;
+  v[uint3(v_1, uint(arg_2))] = v_2;
+}
+
+void fragment_main() {
+  textureStore_b16110();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  textureStore_b16110();
+}
+
diff --git a/test/tint/builtins/gen/var/textureStore/b286b4.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/textureStore/b286b4.wgsl.expected.ir.dxc.hlsl
index 685a9ee..11798b4 100644
--- a/test/tint/builtins/gen/var/textureStore/b286b4.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureStore/b286b4.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,21 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWTexture2DArray<uint4> arg_0 : register(u0, space1);
+void textureStore_b286b4() {
+  int2 arg_1 = (1).xx;
+  int arg_2 = 1;
+  uint4 arg_3 = (1u).xxxx;
+  RWTexture2DArray<uint4> v = arg_0;
+  int2 v_1 = arg_1;
+  uint4 v_2 = arg_3;
+  v[int3(v_1, int(arg_2))] = v_2;
+}
+
+void fragment_main() {
+  textureStore_b286b4();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  textureStore_b286b4();
+}
+
diff --git a/test/tint/builtins/gen/var/textureStore/b286b4.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/textureStore/b286b4.wgsl.expected.ir.fxc.hlsl
index 685a9ee..11798b4 100644
--- a/test/tint/builtins/gen/var/textureStore/b286b4.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureStore/b286b4.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,21 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWTexture2DArray<uint4> arg_0 : register(u0, space1);
+void textureStore_b286b4() {
+  int2 arg_1 = (1).xx;
+  int arg_2 = 1;
+  uint4 arg_3 = (1u).xxxx;
+  RWTexture2DArray<uint4> v = arg_0;
+  int2 v_1 = arg_1;
+  uint4 v_2 = arg_3;
+  v[int3(v_1, int(arg_2))] = v_2;
+}
+
+void fragment_main() {
+  textureStore_b286b4();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  textureStore_b286b4();
+}
+
diff --git a/test/tint/builtins/gen/var/textureStore/b36bc1.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/textureStore/b36bc1.wgsl.expected.ir.dxc.hlsl
index 685a9ee..b53968c 100644
--- a/test/tint/builtins/gen/var/textureStore/b36bc1.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureStore/b36bc1.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,17 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWTexture3D<uint4> arg_0 : register(u0, space1);
+void textureStore_b36bc1() {
+  uint3 arg_1 = (1u).xxx;
+  uint4 arg_2 = (1u).xxxx;
+  arg_0[arg_1] = arg_2;
+}
+
+void fragment_main() {
+  textureStore_b36bc1();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  textureStore_b36bc1();
+}
+
diff --git a/test/tint/builtins/gen/var/textureStore/b36bc1.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/textureStore/b36bc1.wgsl.expected.ir.fxc.hlsl
index 685a9ee..b53968c 100644
--- a/test/tint/builtins/gen/var/textureStore/b36bc1.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureStore/b36bc1.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,17 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWTexture3D<uint4> arg_0 : register(u0, space1);
+void textureStore_b36bc1() {
+  uint3 arg_1 = (1u).xxx;
+  uint4 arg_2 = (1u).xxxx;
+  arg_0[arg_1] = arg_2;
+}
+
+void fragment_main() {
+  textureStore_b36bc1();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  textureStore_b36bc1();
+}
+
diff --git a/test/tint/builtins/gen/var/textureStore/b42fd3.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/textureStore/b42fd3.wgsl.expected.ir.dxc.hlsl
index 685a9ee..8a2247d 100644
--- a/test/tint/builtins/gen/var/textureStore/b42fd3.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureStore/b42fd3.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,21 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWTexture2DArray<uint4> arg_0 : register(u0, space1);
+void textureStore_b42fd3() {
+  uint2 arg_1 = (1u).xx;
+  uint arg_2 = 1u;
+  uint4 arg_3 = (1u).xxxx;
+  RWTexture2DArray<uint4> v = arg_0;
+  uint2 v_1 = arg_1;
+  uint4 v_2 = arg_3;
+  v[uint3(v_1, uint(arg_2))] = v_2;
+}
+
+void fragment_main() {
+  textureStore_b42fd3();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  textureStore_b42fd3();
+}
+
diff --git a/test/tint/builtins/gen/var/textureStore/b42fd3.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/textureStore/b42fd3.wgsl.expected.ir.fxc.hlsl
index 685a9ee..8a2247d 100644
--- a/test/tint/builtins/gen/var/textureStore/b42fd3.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureStore/b42fd3.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,21 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWTexture2DArray<uint4> arg_0 : register(u0, space1);
+void textureStore_b42fd3() {
+  uint2 arg_1 = (1u).xx;
+  uint arg_2 = 1u;
+  uint4 arg_3 = (1u).xxxx;
+  RWTexture2DArray<uint4> v = arg_0;
+  uint2 v_1 = arg_1;
+  uint4 v_2 = arg_3;
+  v[uint3(v_1, uint(arg_2))] = v_2;
+}
+
+void fragment_main() {
+  textureStore_b42fd3();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  textureStore_b42fd3();
+}
+
diff --git a/test/tint/builtins/gen/var/textureStore/b4389e.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/textureStore/b4389e.wgsl.expected.ir.dxc.hlsl
index 685a9ee..2bc0d51 100644
--- a/test/tint/builtins/gen/var/textureStore/b4389e.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureStore/b4389e.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,17 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWTexture3D<float4> arg_0 : register(u0, space1);
+void textureStore_b4389e() {
+  uint3 arg_1 = (1u).xxx;
+  float4 arg_2 = (1.0f).xxxx;
+  arg_0[arg_1] = arg_2;
+}
+
+void fragment_main() {
+  textureStore_b4389e();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  textureStore_b4389e();
+}
+
diff --git a/test/tint/builtins/gen/var/textureStore/b4389e.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/textureStore/b4389e.wgsl.expected.ir.fxc.hlsl
index 685a9ee..2bc0d51 100644
--- a/test/tint/builtins/gen/var/textureStore/b4389e.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureStore/b4389e.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,17 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWTexture3D<float4> arg_0 : register(u0, space1);
+void textureStore_b4389e() {
+  uint3 arg_1 = (1u).xxx;
+  float4 arg_2 = (1.0f).xxxx;
+  arg_0[arg_1] = arg_2;
+}
+
+void fragment_main() {
+  textureStore_b4389e();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  textureStore_b4389e();
+}
+
diff --git a/test/tint/builtins/gen/var/textureStore/b706b1.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/textureStore/b706b1.wgsl.expected.ir.dxc.hlsl
index 685a9ee..da252e0 100644
--- a/test/tint/builtins/gen/var/textureStore/b706b1.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureStore/b706b1.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,17 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWTexture3D<int4> arg_0 : register(u0, space1);
+void textureStore_b706b1() {
+  int3 arg_1 = (1).xxx;
+  int4 arg_2 = (1).xxxx;
+  arg_0[arg_1] = arg_2;
+}
+
+void fragment_main() {
+  textureStore_b706b1();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  textureStore_b706b1();
+}
+
diff --git a/test/tint/builtins/gen/var/textureStore/b706b1.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/textureStore/b706b1.wgsl.expected.ir.fxc.hlsl
index 685a9ee..da252e0 100644
--- a/test/tint/builtins/gen/var/textureStore/b706b1.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureStore/b706b1.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,17 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWTexture3D<int4> arg_0 : register(u0, space1);
+void textureStore_b706b1() {
+  int3 arg_1 = (1).xxx;
+  int4 arg_2 = (1).xxxx;
+  arg_0[arg_1] = arg_2;
+}
+
+void fragment_main() {
+  textureStore_b706b1();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  textureStore_b706b1();
+}
+
diff --git a/test/tint/builtins/gen/var/textureStore/b70ded.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/textureStore/b70ded.wgsl.expected.ir.dxc.hlsl
index 685a9ee..28500e6 100644
--- a/test/tint/builtins/gen/var/textureStore/b70ded.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureStore/b70ded.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,17 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWTexture1D<uint4> arg_0 : register(u0, space1);
+void textureStore_b70ded() {
+  uint arg_1 = 1u;
+  uint4 arg_2 = (1u).xxxx;
+  arg_0[arg_1] = arg_2;
+}
+
+void fragment_main() {
+  textureStore_b70ded();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  textureStore_b70ded();
+}
+
diff --git a/test/tint/builtins/gen/var/textureStore/b70ded.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/textureStore/b70ded.wgsl.expected.ir.fxc.hlsl
index 685a9ee..28500e6 100644
--- a/test/tint/builtins/gen/var/textureStore/b70ded.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureStore/b70ded.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,17 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWTexture1D<uint4> arg_0 : register(u0, space1);
+void textureStore_b70ded() {
+  uint arg_1 = 1u;
+  uint4 arg_2 = (1u).xxxx;
+  arg_0[arg_1] = arg_2;
+}
+
+void fragment_main() {
+  textureStore_b70ded();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  textureStore_b70ded();
+}
+
diff --git a/test/tint/builtins/gen/var/textureStore/b71c13.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/textureStore/b71c13.wgsl.expected.ir.dxc.hlsl
index 685a9ee..fefc53d 100644
--- a/test/tint/builtins/gen/var/textureStore/b71c13.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureStore/b71c13.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,21 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWTexture2DArray<float4> arg_0 : register(u0, space1);
+void textureStore_b71c13() {
+  uint2 arg_1 = (1u).xx;
+  int arg_2 = 1;
+  float4 arg_3 = (1.0f).xxxx;
+  RWTexture2DArray<float4> v = arg_0;
+  uint2 v_1 = arg_1;
+  float4 v_2 = arg_3;
+  v[uint3(v_1, uint(arg_2))] = v_2;
+}
+
+void fragment_main() {
+  textureStore_b71c13();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  textureStore_b71c13();
+}
+
diff --git a/test/tint/builtins/gen/var/textureStore/b71c13.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/textureStore/b71c13.wgsl.expected.ir.fxc.hlsl
index 685a9ee..fefc53d 100644
--- a/test/tint/builtins/gen/var/textureStore/b71c13.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureStore/b71c13.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,21 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWTexture2DArray<float4> arg_0 : register(u0, space1);
+void textureStore_b71c13() {
+  uint2 arg_1 = (1u).xx;
+  int arg_2 = 1;
+  float4 arg_3 = (1.0f).xxxx;
+  RWTexture2DArray<float4> v = arg_0;
+  uint2 v_1 = arg_1;
+  float4 v_2 = arg_3;
+  v[uint3(v_1, uint(arg_2))] = v_2;
+}
+
+void fragment_main() {
+  textureStore_b71c13();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  textureStore_b71c13();
+}
+
diff --git a/test/tint/builtins/gen/var/textureStore/b7232c.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/textureStore/b7232c.wgsl.expected.ir.dxc.hlsl
index 685a9ee..c3f2c0d 100644
--- a/test/tint/builtins/gen/var/textureStore/b7232c.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureStore/b7232c.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,17 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWTexture1D<float4> arg_0 : register(u0, space1);
+void textureStore_b7232c() {
+  uint arg_1 = 1u;
+  float4 arg_2 = (1.0f).xxxx;
+  arg_0[arg_1] = arg_2;
+}
+
+void fragment_main() {
+  textureStore_b7232c();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  textureStore_b7232c();
+}
+
diff --git a/test/tint/builtins/gen/var/textureStore/b7232c.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/textureStore/b7232c.wgsl.expected.ir.fxc.hlsl
index 685a9ee..c3f2c0d 100644
--- a/test/tint/builtins/gen/var/textureStore/b7232c.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureStore/b7232c.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,17 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWTexture1D<float4> arg_0 : register(u0, space1);
+void textureStore_b7232c() {
+  uint arg_1 = 1u;
+  float4 arg_2 = (1.0f).xxxx;
+  arg_0[arg_1] = arg_2;
+}
+
+void fragment_main() {
+  textureStore_b7232c();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  textureStore_b7232c();
+}
+
diff --git a/test/tint/builtins/gen/var/textureStore/b76ff3.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/textureStore/b76ff3.wgsl.expected.ir.dxc.hlsl
index 685a9ee..f08cbf8 100644
--- a/test/tint/builtins/gen/var/textureStore/b76ff3.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureStore/b76ff3.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,17 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWTexture2D<int4> arg_0 : register(u0, space1);
+void textureStore_b76ff3() {
+  uint2 arg_1 = (1u).xx;
+  int4 arg_2 = (1).xxxx;
+  arg_0[arg_1] = arg_2;
+}
+
+void fragment_main() {
+  textureStore_b76ff3();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  textureStore_b76ff3();
+}
+
diff --git a/test/tint/builtins/gen/var/textureStore/b76ff3.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/textureStore/b76ff3.wgsl.expected.ir.fxc.hlsl
index 685a9ee..f08cbf8 100644
--- a/test/tint/builtins/gen/var/textureStore/b76ff3.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureStore/b76ff3.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,17 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWTexture2D<int4> arg_0 : register(u0, space1);
+void textureStore_b76ff3() {
+  uint2 arg_1 = (1u).xx;
+  int4 arg_2 = (1).xxxx;
+  arg_0[arg_1] = arg_2;
+}
+
+void fragment_main() {
+  textureStore_b76ff3();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  textureStore_b76ff3();
+}
+
diff --git a/test/tint/builtins/gen/var/textureStore/b77161.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/textureStore/b77161.wgsl.expected.ir.dxc.hlsl
index 685a9ee..78e185a 100644
--- a/test/tint/builtins/gen/var/textureStore/b77161.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureStore/b77161.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,17 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWTexture1D<uint4> arg_0 : register(u0, space1);
+void textureStore_b77161() {
+  uint arg_1 = 1u;
+  uint4 arg_2 = (1u).xxxx;
+  arg_0[arg_1] = arg_2;
+}
+
+void fragment_main() {
+  textureStore_b77161();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  textureStore_b77161();
+}
+
diff --git a/test/tint/builtins/gen/var/textureStore/b77161.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/textureStore/b77161.wgsl.expected.ir.fxc.hlsl
index 685a9ee..78e185a 100644
--- a/test/tint/builtins/gen/var/textureStore/b77161.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureStore/b77161.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,17 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWTexture1D<uint4> arg_0 : register(u0, space1);
+void textureStore_b77161() {
+  uint arg_1 = 1u;
+  uint4 arg_2 = (1u).xxxx;
+  arg_0[arg_1] = arg_2;
+}
+
+void fragment_main() {
+  textureStore_b77161();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  textureStore_b77161();
+}
+
diff --git a/test/tint/builtins/gen/var/textureStore/b89ffb.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/textureStore/b89ffb.wgsl.expected.ir.dxc.hlsl
index 685a9ee..b21c91a 100644
--- a/test/tint/builtins/gen/var/textureStore/b89ffb.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureStore/b89ffb.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,21 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWTexture2DArray<float4> arg_0 : register(u0, space1);
+void textureStore_b89ffb() {
+  int2 arg_1 = (1).xx;
+  uint arg_2 = 1u;
+  float4 arg_3 = (1.0f).xxxx;
+  RWTexture2DArray<float4> v = arg_0;
+  int2 v_1 = arg_1;
+  float4 v_2 = arg_3;
+  v[int3(v_1, int(arg_2))] = v_2;
+}
+
+void fragment_main() {
+  textureStore_b89ffb();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  textureStore_b89ffb();
+}
+
diff --git a/test/tint/builtins/gen/var/textureStore/b89ffb.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/textureStore/b89ffb.wgsl.expected.ir.fxc.hlsl
index 685a9ee..b21c91a 100644
--- a/test/tint/builtins/gen/var/textureStore/b89ffb.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureStore/b89ffb.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,21 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWTexture2DArray<float4> arg_0 : register(u0, space1);
+void textureStore_b89ffb() {
+  int2 arg_1 = (1).xx;
+  uint arg_2 = 1u;
+  float4 arg_3 = (1.0f).xxxx;
+  RWTexture2DArray<float4> v = arg_0;
+  int2 v_1 = arg_1;
+  float4 v_2 = arg_3;
+  v[int3(v_1, int(arg_2))] = v_2;
+}
+
+void fragment_main() {
+  textureStore_b89ffb();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  textureStore_b89ffb();
+}
+
diff --git a/test/tint/builtins/gen/var/textureStore/b91b86.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/textureStore/b91b86.wgsl.expected.ir.dxc.hlsl
index 685a9ee..f0fdaa3 100644
--- a/test/tint/builtins/gen/var/textureStore/b91b86.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureStore/b91b86.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,21 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWTexture2DArray<float4> arg_0 : register(u0, space1);
+void textureStore_b91b86() {
+  uint2 arg_1 = (1u).xx;
+  int arg_2 = 1;
+  float4 arg_3 = (1.0f).xxxx;
+  RWTexture2DArray<float4> v = arg_0;
+  uint2 v_1 = arg_1;
+  float4 v_2 = arg_3;
+  v[uint3(v_1, uint(arg_2))] = v_2;
+}
+
+void fragment_main() {
+  textureStore_b91b86();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  textureStore_b91b86();
+}
+
diff --git a/test/tint/builtins/gen/var/textureStore/b91b86.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/textureStore/b91b86.wgsl.expected.ir.fxc.hlsl
index 685a9ee..f0fdaa3 100644
--- a/test/tint/builtins/gen/var/textureStore/b91b86.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureStore/b91b86.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,21 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWTexture2DArray<float4> arg_0 : register(u0, space1);
+void textureStore_b91b86() {
+  uint2 arg_1 = (1u).xx;
+  int arg_2 = 1;
+  float4 arg_3 = (1.0f).xxxx;
+  RWTexture2DArray<float4> v = arg_0;
+  uint2 v_1 = arg_1;
+  float4 v_2 = arg_3;
+  v[uint3(v_1, uint(arg_2))] = v_2;
+}
+
+void fragment_main() {
+  textureStore_b91b86();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  textureStore_b91b86();
+}
+
diff --git a/test/tint/builtins/gen/var/textureStore/b9c81a.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/textureStore/b9c81a.wgsl.expected.ir.dxc.hlsl
index 685a9ee..0323330 100644
--- a/test/tint/builtins/gen/var/textureStore/b9c81a.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureStore/b9c81a.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,17 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWTexture3D<uint4> arg_0 : register(u0, space1);
+void textureStore_b9c81a() {
+  int3 arg_1 = (1).xxx;
+  uint4 arg_2 = (1u).xxxx;
+  arg_0[arg_1] = arg_2;
+}
+
+void fragment_main() {
+  textureStore_b9c81a();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  textureStore_b9c81a();
+}
+
diff --git a/test/tint/builtins/gen/var/textureStore/b9c81a.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/textureStore/b9c81a.wgsl.expected.ir.fxc.hlsl
index 685a9ee..0323330 100644
--- a/test/tint/builtins/gen/var/textureStore/b9c81a.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureStore/b9c81a.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,17 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWTexture3D<uint4> arg_0 : register(u0, space1);
+void textureStore_b9c81a() {
+  int3 arg_1 = (1).xxx;
+  uint4 arg_2 = (1u).xxxx;
+  arg_0[arg_1] = arg_2;
+}
+
+void fragment_main() {
+  textureStore_b9c81a();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  textureStore_b9c81a();
+}
+
diff --git a/test/tint/builtins/gen/var/textureStore/b9d863.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/textureStore/b9d863.wgsl.expected.ir.dxc.hlsl
index 685a9ee..76ae17a 100644
--- a/test/tint/builtins/gen/var/textureStore/b9d863.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureStore/b9d863.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,21 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWTexture2DArray<uint4> arg_0 : register(u0, space1);
+void textureStore_b9d863() {
+  int2 arg_1 = (1).xx;
+  int arg_2 = 1;
+  uint4 arg_3 = (1u).xxxx;
+  RWTexture2DArray<uint4> v = arg_0;
+  int2 v_1 = arg_1;
+  uint4 v_2 = arg_3;
+  v[int3(v_1, int(arg_2))] = v_2;
+}
+
+void fragment_main() {
+  textureStore_b9d863();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  textureStore_b9d863();
+}
+
diff --git a/test/tint/builtins/gen/var/textureStore/b9d863.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/textureStore/b9d863.wgsl.expected.ir.fxc.hlsl
index 685a9ee..76ae17a 100644
--- a/test/tint/builtins/gen/var/textureStore/b9d863.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureStore/b9d863.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,21 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWTexture2DArray<uint4> arg_0 : register(u0, space1);
+void textureStore_b9d863() {
+  int2 arg_1 = (1).xx;
+  int arg_2 = 1;
+  uint4 arg_3 = (1u).xxxx;
+  RWTexture2DArray<uint4> v = arg_0;
+  int2 v_1 = arg_1;
+  uint4 v_2 = arg_3;
+  v[int3(v_1, int(arg_2))] = v_2;
+}
+
+void fragment_main() {
+  textureStore_b9d863();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  textureStore_b9d863();
+}
+
diff --git a/test/tint/builtins/gen/var/textureStore/bbcb7f.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/textureStore/bbcb7f.wgsl.expected.ir.dxc.hlsl
index 685a9ee..122f9b8 100644
--- a/test/tint/builtins/gen/var/textureStore/bbcb7f.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureStore/bbcb7f.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,17 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWTexture2D<int4> arg_0 : register(u0, space1);
+void textureStore_bbcb7f() {
+  int2 arg_1 = (1).xx;
+  int4 arg_2 = (1).xxxx;
+  arg_0[arg_1] = arg_2;
+}
+
+void fragment_main() {
+  textureStore_bbcb7f();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  textureStore_bbcb7f();
+}
+
diff --git a/test/tint/builtins/gen/var/textureStore/bbcb7f.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/textureStore/bbcb7f.wgsl.expected.ir.fxc.hlsl
index 685a9ee..122f9b8 100644
--- a/test/tint/builtins/gen/var/textureStore/bbcb7f.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureStore/bbcb7f.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,17 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWTexture2D<int4> arg_0 : register(u0, space1);
+void textureStore_bbcb7f() {
+  int2 arg_1 = (1).xx;
+  int4 arg_2 = (1).xxxx;
+  arg_0[arg_1] = arg_2;
+}
+
+void fragment_main() {
+  textureStore_bbcb7f();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  textureStore_bbcb7f();
+}
+
diff --git a/test/tint/builtins/gen/var/textureStore/bc1423.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/textureStore/bc1423.wgsl.expected.ir.dxc.hlsl
index 685a9ee..3136a09 100644
--- a/test/tint/builtins/gen/var/textureStore/bc1423.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureStore/bc1423.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,21 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWTexture2DArray<uint4> arg_0 : register(u0, space1);
+void textureStore_bc1423() {
+  uint2 arg_1 = (1u).xx;
+  int arg_2 = 1;
+  uint4 arg_3 = (1u).xxxx;
+  RWTexture2DArray<uint4> v = arg_0;
+  uint2 v_1 = arg_1;
+  uint4 v_2 = arg_3;
+  v[uint3(v_1, uint(arg_2))] = v_2;
+}
+
+void fragment_main() {
+  textureStore_bc1423();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  textureStore_bc1423();
+}
+
diff --git a/test/tint/builtins/gen/var/textureStore/bc1423.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/textureStore/bc1423.wgsl.expected.ir.fxc.hlsl
index 685a9ee..3136a09 100644
--- a/test/tint/builtins/gen/var/textureStore/bc1423.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureStore/bc1423.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,21 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWTexture2DArray<uint4> arg_0 : register(u0, space1);
+void textureStore_bc1423() {
+  uint2 arg_1 = (1u).xx;
+  int arg_2 = 1;
+  uint4 arg_3 = (1u).xxxx;
+  RWTexture2DArray<uint4> v = arg_0;
+  uint2 v_1 = arg_1;
+  uint4 v_2 = arg_3;
+  v[uint3(v_1, uint(arg_2))] = v_2;
+}
+
+void fragment_main() {
+  textureStore_bc1423();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  textureStore_bc1423();
+}
+
diff --git a/test/tint/builtins/gen/var/textureStore/bcc97a.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/textureStore/bcc97a.wgsl.expected.ir.dxc.hlsl
index 685a9ee..71e8ca1 100644
--- a/test/tint/builtins/gen/var/textureStore/bcc97a.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureStore/bcc97a.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,17 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWTexture2D<int4> arg_0 : register(u0, space1);
+void textureStore_bcc97a() {
+  int2 arg_1 = (1).xx;
+  int4 arg_2 = (1).xxxx;
+  arg_0[arg_1] = arg_2;
+}
+
+void fragment_main() {
+  textureStore_bcc97a();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  textureStore_bcc97a();
+}
+
diff --git a/test/tint/builtins/gen/var/textureStore/bcc97a.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/textureStore/bcc97a.wgsl.expected.ir.fxc.hlsl
index 685a9ee..71e8ca1 100644
--- a/test/tint/builtins/gen/var/textureStore/bcc97a.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureStore/bcc97a.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,17 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWTexture2D<int4> arg_0 : register(u0, space1);
+void textureStore_bcc97a() {
+  int2 arg_1 = (1).xx;
+  int4 arg_2 = (1).xxxx;
+  arg_0[arg_1] = arg_2;
+}
+
+void fragment_main() {
+  textureStore_bcc97a();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  textureStore_bcc97a();
+}
+
diff --git a/test/tint/builtins/gen/var/textureStore/bd6602.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/textureStore/bd6602.wgsl.expected.ir.dxc.hlsl
index 685a9ee..031e355 100644
--- a/test/tint/builtins/gen/var/textureStore/bd6602.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureStore/bd6602.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,21 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWTexture2DArray<uint4> arg_0 : register(u0, space1);
+void textureStore_bd6602() {
+  uint2 arg_1 = (1u).xx;
+  int arg_2 = 1;
+  uint4 arg_3 = (1u).xxxx;
+  RWTexture2DArray<uint4> v = arg_0;
+  uint2 v_1 = arg_1;
+  uint4 v_2 = arg_3;
+  v[uint3(v_1, uint(arg_2))] = v_2;
+}
+
+void fragment_main() {
+  textureStore_bd6602();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  textureStore_bd6602();
+}
+
diff --git a/test/tint/builtins/gen/var/textureStore/bd6602.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/textureStore/bd6602.wgsl.expected.ir.fxc.hlsl
index 685a9ee..031e355 100644
--- a/test/tint/builtins/gen/var/textureStore/bd6602.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureStore/bd6602.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,21 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWTexture2DArray<uint4> arg_0 : register(u0, space1);
+void textureStore_bd6602() {
+  uint2 arg_1 = (1u).xx;
+  int arg_2 = 1;
+  uint4 arg_3 = (1u).xxxx;
+  RWTexture2DArray<uint4> v = arg_0;
+  uint2 v_1 = arg_1;
+  uint4 v_2 = arg_3;
+  v[uint3(v_1, uint(arg_2))] = v_2;
+}
+
+void fragment_main() {
+  textureStore_bd6602();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  textureStore_bd6602();
+}
+
diff --git a/test/tint/builtins/gen/var/textureStore/be6e30.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/textureStore/be6e30.wgsl.expected.ir.dxc.hlsl
index 685a9ee..eb94725 100644
--- a/test/tint/builtins/gen/var/textureStore/be6e30.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureStore/be6e30.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,17 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWTexture2D<float4> arg_0 : register(u0, space1);
+void textureStore_be6e30() {
+  int2 arg_1 = (1).xx;
+  float4 arg_2 = (1.0f).xxxx;
+  arg_0[arg_1] = arg_2;
+}
+
+void fragment_main() {
+  textureStore_be6e30();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  textureStore_be6e30();
+}
+
diff --git a/test/tint/builtins/gen/var/textureStore/be6e30.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/textureStore/be6e30.wgsl.expected.ir.fxc.hlsl
index 685a9ee..eb94725 100644
--- a/test/tint/builtins/gen/var/textureStore/be6e30.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureStore/be6e30.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,17 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWTexture2D<float4> arg_0 : register(u0, space1);
+void textureStore_be6e30() {
+  int2 arg_1 = (1).xx;
+  float4 arg_2 = (1.0f).xxxx;
+  arg_0[arg_1] = arg_2;
+}
+
+void fragment_main() {
+  textureStore_be6e30();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  textureStore_be6e30();
+}
+
diff --git a/test/tint/builtins/gen/var/textureStore/bedbfc.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/textureStore/bedbfc.wgsl.expected.ir.dxc.hlsl
index 685a9ee..5105f21 100644
--- a/test/tint/builtins/gen/var/textureStore/bedbfc.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureStore/bedbfc.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,17 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWTexture3D<float4> arg_0 : register(u0, space1);
+void textureStore_bedbfc() {
+  int3 arg_1 = (1).xxx;
+  float4 arg_2 = (1.0f).xxxx;
+  arg_0[arg_1] = arg_2;
+}
+
+void fragment_main() {
+  textureStore_bedbfc();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  textureStore_bedbfc();
+}
+
diff --git a/test/tint/builtins/gen/var/textureStore/bedbfc.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/textureStore/bedbfc.wgsl.expected.ir.fxc.hlsl
index 685a9ee..5105f21 100644
--- a/test/tint/builtins/gen/var/textureStore/bedbfc.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureStore/bedbfc.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,17 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWTexture3D<float4> arg_0 : register(u0, space1);
+void textureStore_bedbfc() {
+  int3 arg_1 = (1).xxx;
+  float4 arg_2 = (1.0f).xxxx;
+  arg_0[arg_1] = arg_2;
+}
+
+void fragment_main() {
+  textureStore_bedbfc();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  textureStore_bedbfc();
+}
+
diff --git a/test/tint/builtins/gen/var/textureStore/bf775c.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/textureStore/bf775c.wgsl.expected.ir.dxc.hlsl
index 685a9ee..acb0df1 100644
--- a/test/tint/builtins/gen/var/textureStore/bf775c.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureStore/bf775c.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,17 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWTexture1D<int4> arg_0 : register(u0, space1);
+void textureStore_bf775c() {
+  int arg_1 = 1;
+  int4 arg_2 = (1).xxxx;
+  arg_0[arg_1] = arg_2;
+}
+
+void fragment_main() {
+  textureStore_bf775c();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  textureStore_bf775c();
+}
+
diff --git a/test/tint/builtins/gen/var/textureStore/bf775c.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/textureStore/bf775c.wgsl.expected.ir.fxc.hlsl
index 685a9ee..acb0df1 100644
--- a/test/tint/builtins/gen/var/textureStore/bf775c.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureStore/bf775c.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,17 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWTexture1D<int4> arg_0 : register(u0, space1);
+void textureStore_bf775c() {
+  int arg_1 = 1;
+  int4 arg_2 = (1).xxxx;
+  arg_0[arg_1] = arg_2;
+}
+
+void fragment_main() {
+  textureStore_bf775c();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  textureStore_bf775c();
+}
+
diff --git a/test/tint/builtins/gen/var/textureStore/c06463.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/textureStore/c06463.wgsl.expected.ir.dxc.hlsl
index 685a9ee..e2aaf68 100644
--- a/test/tint/builtins/gen/var/textureStore/c06463.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureStore/c06463.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,21 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWTexture2DArray<float4> arg_0 : register(u0, space1);
+void textureStore_c06463() {
+  int2 arg_1 = (1).xx;
+  int arg_2 = 1;
+  float4 arg_3 = (1.0f).xxxx;
+  RWTexture2DArray<float4> v = arg_0;
+  int2 v_1 = arg_1;
+  float4 v_2 = arg_3;
+  v[int3(v_1, int(arg_2))] = v_2;
+}
+
+void fragment_main() {
+  textureStore_c06463();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  textureStore_c06463();
+}
+
diff --git a/test/tint/builtins/gen/var/textureStore/c06463.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/textureStore/c06463.wgsl.expected.ir.fxc.hlsl
index 685a9ee..e2aaf68 100644
--- a/test/tint/builtins/gen/var/textureStore/c06463.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureStore/c06463.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,21 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWTexture2DArray<float4> arg_0 : register(u0, space1);
+void textureStore_c06463() {
+  int2 arg_1 = (1).xx;
+  int arg_2 = 1;
+  float4 arg_3 = (1.0f).xxxx;
+  RWTexture2DArray<float4> v = arg_0;
+  int2 v_1 = arg_1;
+  float4 v_2 = arg_3;
+  v[int3(v_1, int(arg_2))] = v_2;
+}
+
+void fragment_main() {
+  textureStore_c06463();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  textureStore_c06463();
+}
+
diff --git a/test/tint/builtins/gen/var/textureStore/c1c664.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/textureStore/c1c664.wgsl.expected.ir.dxc.hlsl
index 685a9ee..44dc2c6 100644
--- a/test/tint/builtins/gen/var/textureStore/c1c664.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureStore/c1c664.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,17 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWTexture2D<float4> arg_0 : register(u0, space1);
+void textureStore_c1c664() {
+  int2 arg_1 = (1).xx;
+  float4 arg_2 = (1.0f).xxxx;
+  arg_0[arg_1] = arg_2;
+}
+
+void fragment_main() {
+  textureStore_c1c664();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  textureStore_c1c664();
+}
+
diff --git a/test/tint/builtins/gen/var/textureStore/c1c664.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/textureStore/c1c664.wgsl.expected.ir.fxc.hlsl
index 685a9ee..44dc2c6 100644
--- a/test/tint/builtins/gen/var/textureStore/c1c664.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureStore/c1c664.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,17 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWTexture2D<float4> arg_0 : register(u0, space1);
+void textureStore_c1c664() {
+  int2 arg_1 = (1).xx;
+  float4 arg_2 = (1.0f).xxxx;
+  arg_0[arg_1] = arg_2;
+}
+
+void fragment_main() {
+  textureStore_c1c664();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  textureStore_c1c664();
+}
+
diff --git a/test/tint/builtins/gen/var/textureStore/c1f29e.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/textureStore/c1f29e.wgsl.expected.ir.dxc.hlsl
index 685a9ee..36aa4ca 100644
--- a/test/tint/builtins/gen/var/textureStore/c1f29e.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureStore/c1f29e.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,17 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWTexture1D<float4> arg_0 : register(u0, space1);
+void textureStore_c1f29e() {
+  uint arg_1 = 1u;
+  float4 arg_2 = (1.0f).xxxx;
+  arg_0[arg_1] = arg_2;
+}
+
+void fragment_main() {
+  textureStore_c1f29e();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  textureStore_c1f29e();
+}
+
diff --git a/test/tint/builtins/gen/var/textureStore/c1f29e.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/textureStore/c1f29e.wgsl.expected.ir.fxc.hlsl
index 685a9ee..36aa4ca 100644
--- a/test/tint/builtins/gen/var/textureStore/c1f29e.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureStore/c1f29e.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,17 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWTexture1D<float4> arg_0 : register(u0, space1);
+void textureStore_c1f29e() {
+  uint arg_1 = 1u;
+  float4 arg_2 = (1.0f).xxxx;
+  arg_0[arg_1] = arg_2;
+}
+
+void fragment_main() {
+  textureStore_c1f29e();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  textureStore_c1f29e();
+}
+
diff --git a/test/tint/builtins/gen/var/textureStore/c1f760.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/textureStore/c1f760.wgsl.expected.ir.dxc.hlsl
index 685a9ee..342a62b 100644
--- a/test/tint/builtins/gen/var/textureStore/c1f760.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureStore/c1f760.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,21 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWTexture2DArray<uint4> arg_0 : register(u0, space1);
+void textureStore_c1f760() {
+  uint2 arg_1 = (1u).xx;
+  uint arg_2 = 1u;
+  uint4 arg_3 = (1u).xxxx;
+  RWTexture2DArray<uint4> v = arg_0;
+  uint2 v_1 = arg_1;
+  uint4 v_2 = arg_3;
+  v[uint3(v_1, uint(arg_2))] = v_2;
+}
+
+void fragment_main() {
+  textureStore_c1f760();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  textureStore_c1f760();
+}
+
diff --git a/test/tint/builtins/gen/var/textureStore/c1f760.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/textureStore/c1f760.wgsl.expected.ir.fxc.hlsl
index 685a9ee..342a62b 100644
--- a/test/tint/builtins/gen/var/textureStore/c1f760.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureStore/c1f760.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,21 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWTexture2DArray<uint4> arg_0 : register(u0, space1);
+void textureStore_c1f760() {
+  uint2 arg_1 = (1u).xx;
+  uint arg_2 = 1u;
+  uint4 arg_3 = (1u).xxxx;
+  RWTexture2DArray<uint4> v = arg_0;
+  uint2 v_1 = arg_1;
+  uint4 v_2 = arg_3;
+  v[uint3(v_1, uint(arg_2))] = v_2;
+}
+
+void fragment_main() {
+  textureStore_c1f760();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  textureStore_c1f760();
+}
+
diff --git a/test/tint/builtins/gen/var/textureStore/c2ca46.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/textureStore/c2ca46.wgsl.expected.ir.dxc.hlsl
index 685a9ee..21a5b98 100644
--- a/test/tint/builtins/gen/var/textureStore/c2ca46.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureStore/c2ca46.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,21 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWTexture2DArray<int4> arg_0 : register(u0, space1);
+void textureStore_c2ca46() {
+  uint2 arg_1 = (1u).xx;
+  uint arg_2 = 1u;
+  int4 arg_3 = (1).xxxx;
+  RWTexture2DArray<int4> v = arg_0;
+  uint2 v_1 = arg_1;
+  int4 v_2 = arg_3;
+  v[uint3(v_1, uint(arg_2))] = v_2;
+}
+
+void fragment_main() {
+  textureStore_c2ca46();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  textureStore_c2ca46();
+}
+
diff --git a/test/tint/builtins/gen/var/textureStore/c2ca46.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/textureStore/c2ca46.wgsl.expected.ir.fxc.hlsl
index 685a9ee..21a5b98 100644
--- a/test/tint/builtins/gen/var/textureStore/c2ca46.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureStore/c2ca46.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,21 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWTexture2DArray<int4> arg_0 : register(u0, space1);
+void textureStore_c2ca46() {
+  uint2 arg_1 = (1u).xx;
+  uint arg_2 = 1u;
+  int4 arg_3 = (1).xxxx;
+  RWTexture2DArray<int4> v = arg_0;
+  uint2 v_1 = arg_1;
+  int4 v_2 = arg_3;
+  v[uint3(v_1, uint(arg_2))] = v_2;
+}
+
+void fragment_main() {
+  textureStore_c2ca46();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  textureStore_c2ca46();
+}
+
diff --git a/test/tint/builtins/gen/var/textureStore/c32905.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/textureStore/c32905.wgsl.expected.ir.dxc.hlsl
index 685a9ee..f6741e6 100644
--- a/test/tint/builtins/gen/var/textureStore/c32905.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureStore/c32905.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,21 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWTexture2DArray<int4> arg_0 : register(u0, space1);
+void textureStore_c32905() {
+  uint2 arg_1 = (1u).xx;
+  int arg_2 = 1;
+  int4 arg_3 = (1).xxxx;
+  RWTexture2DArray<int4> v = arg_0;
+  uint2 v_1 = arg_1;
+  int4 v_2 = arg_3;
+  v[uint3(v_1, uint(arg_2))] = v_2;
+}
+
+void fragment_main() {
+  textureStore_c32905();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  textureStore_c32905();
+}
+
diff --git a/test/tint/builtins/gen/var/textureStore/c32905.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/textureStore/c32905.wgsl.expected.ir.fxc.hlsl
index 685a9ee..f6741e6 100644
--- a/test/tint/builtins/gen/var/textureStore/c32905.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureStore/c32905.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,21 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWTexture2DArray<int4> arg_0 : register(u0, space1);
+void textureStore_c32905() {
+  uint2 arg_1 = (1u).xx;
+  int arg_2 = 1;
+  int4 arg_3 = (1).xxxx;
+  RWTexture2DArray<int4> v = arg_0;
+  uint2 v_1 = arg_1;
+  int4 v_2 = arg_3;
+  v[uint3(v_1, uint(arg_2))] = v_2;
+}
+
+void fragment_main() {
+  textureStore_c32905();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  textureStore_c32905();
+}
+
diff --git a/test/tint/builtins/gen/var/textureStore/c33478.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/textureStore/c33478.wgsl.expected.ir.dxc.hlsl
index 685a9ee..d60e962 100644
--- a/test/tint/builtins/gen/var/textureStore/c33478.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureStore/c33478.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,17 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWTexture3D<float4> arg_0 : register(u0, space1);
+void textureStore_c33478() {
+  int3 arg_1 = (1).xxx;
+  float4 arg_2 = (1.0f).xxxx;
+  arg_0[arg_1] = arg_2;
+}
+
+void fragment_main() {
+  textureStore_c33478();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  textureStore_c33478();
+}
+
diff --git a/test/tint/builtins/gen/var/textureStore/c33478.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/textureStore/c33478.wgsl.expected.ir.fxc.hlsl
index 685a9ee..d60e962 100644
--- a/test/tint/builtins/gen/var/textureStore/c33478.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureStore/c33478.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,17 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWTexture3D<float4> arg_0 : register(u0, space1);
+void textureStore_c33478() {
+  int3 arg_1 = (1).xxx;
+  float4 arg_2 = (1.0f).xxxx;
+  arg_0[arg_1] = arg_2;
+}
+
+void fragment_main() {
+  textureStore_c33478();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  textureStore_c33478();
+}
+
diff --git a/test/tint/builtins/gen/var/textureStore/c35268.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/textureStore/c35268.wgsl.expected.ir.dxc.hlsl
index 685a9ee..7b99fb5 100644
--- a/test/tint/builtins/gen/var/textureStore/c35268.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureStore/c35268.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,21 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWTexture2DArray<uint4> arg_0 : register(u0, space1);
+void textureStore_c35268() {
+  uint2 arg_1 = (1u).xx;
+  int arg_2 = 1;
+  uint4 arg_3 = (1u).xxxx;
+  RWTexture2DArray<uint4> v = arg_0;
+  uint2 v_1 = arg_1;
+  uint4 v_2 = arg_3;
+  v[uint3(v_1, uint(arg_2))] = v_2;
+}
+
+void fragment_main() {
+  textureStore_c35268();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  textureStore_c35268();
+}
+
diff --git a/test/tint/builtins/gen/var/textureStore/c35268.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/textureStore/c35268.wgsl.expected.ir.fxc.hlsl
index 685a9ee..7b99fb5 100644
--- a/test/tint/builtins/gen/var/textureStore/c35268.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureStore/c35268.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,21 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWTexture2DArray<uint4> arg_0 : register(u0, space1);
+void textureStore_c35268() {
+  uint2 arg_1 = (1u).xx;
+  int arg_2 = 1;
+  uint4 arg_3 = (1u).xxxx;
+  RWTexture2DArray<uint4> v = arg_0;
+  uint2 v_1 = arg_1;
+  uint4 v_2 = arg_3;
+  v[uint3(v_1, uint(arg_2))] = v_2;
+}
+
+void fragment_main() {
+  textureStore_c35268();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  textureStore_c35268();
+}
+
diff --git a/test/tint/builtins/gen/var/textureStore/c5af1e.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/textureStore/c5af1e.wgsl.expected.ir.dxc.hlsl
index 685a9ee..9ca01ee 100644
--- a/test/tint/builtins/gen/var/textureStore/c5af1e.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureStore/c5af1e.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,17 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWTexture3D<float4> arg_0 : register(u0, space1);
+void textureStore_c5af1e() {
+  int3 arg_1 = (1).xxx;
+  float4 arg_2 = (1.0f).xxxx;
+  arg_0[arg_1] = arg_2;
+}
+
+void fragment_main() {
+  textureStore_c5af1e();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  textureStore_c5af1e();
+}
+
diff --git a/test/tint/builtins/gen/var/textureStore/c5af1e.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/textureStore/c5af1e.wgsl.expected.ir.fxc.hlsl
index 685a9ee..9ca01ee 100644
--- a/test/tint/builtins/gen/var/textureStore/c5af1e.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureStore/c5af1e.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,17 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWTexture3D<float4> arg_0 : register(u0, space1);
+void textureStore_c5af1e() {
+  int3 arg_1 = (1).xxx;
+  float4 arg_2 = (1.0f).xxxx;
+  arg_0[arg_1] = arg_2;
+}
+
+void fragment_main() {
+  textureStore_c5af1e();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  textureStore_c5af1e();
+}
+
diff --git a/test/tint/builtins/gen/var/textureStore/c63f05.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/textureStore/c63f05.wgsl.expected.ir.dxc.hlsl
index 685a9ee..a0be2be 100644
--- a/test/tint/builtins/gen/var/textureStore/c63f05.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureStore/c63f05.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,21 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWTexture2DArray<int4> arg_0 : register(u0, space1);
+void textureStore_c63f05() {
+  uint2 arg_1 = (1u).xx;
+  int arg_2 = 1;
+  int4 arg_3 = (1).xxxx;
+  RWTexture2DArray<int4> v = arg_0;
+  uint2 v_1 = arg_1;
+  int4 v_2 = arg_3;
+  v[uint3(v_1, uint(arg_2))] = v_2;
+}
+
+void fragment_main() {
+  textureStore_c63f05();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  textureStore_c63f05();
+}
+
diff --git a/test/tint/builtins/gen/var/textureStore/c63f05.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/textureStore/c63f05.wgsl.expected.ir.fxc.hlsl
index 685a9ee..a0be2be 100644
--- a/test/tint/builtins/gen/var/textureStore/c63f05.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureStore/c63f05.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,21 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWTexture2DArray<int4> arg_0 : register(u0, space1);
+void textureStore_c63f05() {
+  uint2 arg_1 = (1u).xx;
+  int arg_2 = 1;
+  int4 arg_3 = (1).xxxx;
+  RWTexture2DArray<int4> v = arg_0;
+  uint2 v_1 = arg_1;
+  int4 v_2 = arg_3;
+  v[uint3(v_1, uint(arg_2))] = v_2;
+}
+
+void fragment_main() {
+  textureStore_c63f05();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  textureStore_c63f05();
+}
+
diff --git a/test/tint/builtins/gen/var/textureStore/c79451.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/textureStore/c79451.wgsl.expected.ir.dxc.hlsl
index 685a9ee..3e50a96 100644
--- a/test/tint/builtins/gen/var/textureStore/c79451.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureStore/c79451.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,17 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWTexture1D<int4> arg_0 : register(u0, space1);
+void textureStore_c79451() {
+  uint arg_1 = 1u;
+  int4 arg_2 = (1).xxxx;
+  arg_0[arg_1] = arg_2;
+}
+
+void fragment_main() {
+  textureStore_c79451();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  textureStore_c79451();
+}
+
diff --git a/test/tint/builtins/gen/var/textureStore/c79451.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/textureStore/c79451.wgsl.expected.ir.fxc.hlsl
index 685a9ee..3e50a96 100644
--- a/test/tint/builtins/gen/var/textureStore/c79451.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureStore/c79451.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,17 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWTexture1D<int4> arg_0 : register(u0, space1);
+void textureStore_c79451() {
+  uint arg_1 = 1u;
+  int4 arg_2 = (1).xxxx;
+  arg_0[arg_1] = arg_2;
+}
+
+void fragment_main() {
+  textureStore_c79451();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  textureStore_c79451();
+}
+
diff --git a/test/tint/builtins/gen/var/textureStore/c863be.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/textureStore/c863be.wgsl.expected.ir.dxc.hlsl
index 685a9ee..bad1cb0 100644
--- a/test/tint/builtins/gen/var/textureStore/c863be.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureStore/c863be.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,21 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWTexture2DArray<float4> arg_0 : register(u0, space1);
+void textureStore_c863be() {
+  int2 arg_1 = (1).xx;
+  int arg_2 = 1;
+  float4 arg_3 = (1.0f).xxxx;
+  RWTexture2DArray<float4> v = arg_0;
+  int2 v_1 = arg_1;
+  float4 v_2 = arg_3;
+  v[int3(v_1, int(arg_2))] = v_2;
+}
+
+void fragment_main() {
+  textureStore_c863be();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  textureStore_c863be();
+}
+
diff --git a/test/tint/builtins/gen/var/textureStore/c863be.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/textureStore/c863be.wgsl.expected.ir.fxc.hlsl
index 685a9ee..bad1cb0 100644
--- a/test/tint/builtins/gen/var/textureStore/c863be.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureStore/c863be.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,21 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWTexture2DArray<float4> arg_0 : register(u0, space1);
+void textureStore_c863be() {
+  int2 arg_1 = (1).xx;
+  int arg_2 = 1;
+  float4 arg_3 = (1.0f).xxxx;
+  RWTexture2DArray<float4> v = arg_0;
+  int2 v_1 = arg_1;
+  float4 v_2 = arg_3;
+  v[int3(v_1, int(arg_2))] = v_2;
+}
+
+void fragment_main() {
+  textureStore_c863be();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  textureStore_c863be();
+}
+
diff --git a/test/tint/builtins/gen/var/textureStore/c9d780.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/textureStore/c9d780.wgsl.expected.ir.dxc.hlsl
index 685a9ee..fdee432 100644
--- a/test/tint/builtins/gen/var/textureStore/c9d780.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureStore/c9d780.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,17 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWTexture1D<float4> arg_0 : register(u0, space1);
+void textureStore_c9d780() {
+  uint arg_1 = 1u;
+  float4 arg_2 = (1.0f).xxxx;
+  arg_0[arg_1] = arg_2;
+}
+
+void fragment_main() {
+  textureStore_c9d780();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  textureStore_c9d780();
+}
+
diff --git a/test/tint/builtins/gen/var/textureStore/c9d780.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/textureStore/c9d780.wgsl.expected.ir.fxc.hlsl
index 685a9ee..fdee432 100644
--- a/test/tint/builtins/gen/var/textureStore/c9d780.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureStore/c9d780.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,17 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWTexture1D<float4> arg_0 : register(u0, space1);
+void textureStore_c9d780() {
+  uint arg_1 = 1u;
+  float4 arg_2 = (1.0f).xxxx;
+  arg_0[arg_1] = arg_2;
+}
+
+void fragment_main() {
+  textureStore_c9d780();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  textureStore_c9d780();
+}
+
diff --git a/test/tint/builtins/gen/var/textureStore/cb3b0b.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/textureStore/cb3b0b.wgsl.expected.ir.dxc.hlsl
index 685a9ee..f39985a 100644
--- a/test/tint/builtins/gen/var/textureStore/cb3b0b.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureStore/cb3b0b.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,17 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWTexture3D<int4> arg_0 : register(u0, space1);
+void textureStore_cb3b0b() {
+  uint3 arg_1 = (1u).xxx;
+  int4 arg_2 = (1).xxxx;
+  arg_0[arg_1] = arg_2;
+}
+
+void fragment_main() {
+  textureStore_cb3b0b();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  textureStore_cb3b0b();
+}
+
diff --git a/test/tint/builtins/gen/var/textureStore/cb3b0b.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/textureStore/cb3b0b.wgsl.expected.ir.fxc.hlsl
index 685a9ee..f39985a 100644
--- a/test/tint/builtins/gen/var/textureStore/cb3b0b.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureStore/cb3b0b.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,17 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWTexture3D<int4> arg_0 : register(u0, space1);
+void textureStore_cb3b0b() {
+  uint3 arg_1 = (1u).xxx;
+  int4 arg_2 = (1).xxxx;
+  arg_0[arg_1] = arg_2;
+}
+
+void fragment_main() {
+  textureStore_cb3b0b();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  textureStore_cb3b0b();
+}
+
diff --git a/test/tint/builtins/gen/var/textureStore/ccac20.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/textureStore/ccac20.wgsl.expected.ir.dxc.hlsl
index 685a9ee..c92f171 100644
--- a/test/tint/builtins/gen/var/textureStore/ccac20.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureStore/ccac20.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,17 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWTexture2D<float4> arg_0 : register(u0, space1);
+void textureStore_ccac20() {
+  uint2 arg_1 = (1u).xx;
+  float4 arg_2 = (1.0f).xxxx;
+  arg_0[arg_1] = arg_2;
+}
+
+void fragment_main() {
+  textureStore_ccac20();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  textureStore_ccac20();
+}
+
diff --git a/test/tint/builtins/gen/var/textureStore/ccac20.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/textureStore/ccac20.wgsl.expected.ir.fxc.hlsl
index 685a9ee..c92f171 100644
--- a/test/tint/builtins/gen/var/textureStore/ccac20.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureStore/ccac20.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,17 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWTexture2D<float4> arg_0 : register(u0, space1);
+void textureStore_ccac20() {
+  uint2 arg_1 = (1u).xx;
+  float4 arg_2 = (1.0f).xxxx;
+  arg_0[arg_1] = arg_2;
+}
+
+void fragment_main() {
+  textureStore_ccac20();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  textureStore_ccac20();
+}
+
diff --git a/test/tint/builtins/gen/var/textureStore/cd6755.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/textureStore/cd6755.wgsl.expected.ir.dxc.hlsl
index 685a9ee..5c9613f 100644
--- a/test/tint/builtins/gen/var/textureStore/cd6755.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureStore/cd6755.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,17 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWTexture3D<uint4> arg_0 : register(u0, space1);
+void textureStore_cd6755() {
+  uint3 arg_1 = (1u).xxx;
+  uint4 arg_2 = (1u).xxxx;
+  arg_0[arg_1] = arg_2;
+}
+
+void fragment_main() {
+  textureStore_cd6755();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  textureStore_cd6755();
+}
+
diff --git a/test/tint/builtins/gen/var/textureStore/cd6755.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/textureStore/cd6755.wgsl.expected.ir.fxc.hlsl
index 685a9ee..5c9613f 100644
--- a/test/tint/builtins/gen/var/textureStore/cd6755.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureStore/cd6755.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,17 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWTexture3D<uint4> arg_0 : register(u0, space1);
+void textureStore_cd6755() {
+  uint3 arg_1 = (1u).xxx;
+  uint4 arg_2 = (1u).xxxx;
+  arg_0[arg_1] = arg_2;
+}
+
+void fragment_main() {
+  textureStore_cd6755();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  textureStore_cd6755();
+}
+
diff --git a/test/tint/builtins/gen/var/textureStore/ceb832.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/textureStore/ceb832.wgsl.expected.ir.dxc.hlsl
index 685a9ee..3531507 100644
--- a/test/tint/builtins/gen/var/textureStore/ceb832.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureStore/ceb832.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,21 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWTexture2DArray<int4> arg_0 : register(u0, space1);
+void textureStore_ceb832() {
+  uint2 arg_1 = (1u).xx;
+  uint arg_2 = 1u;
+  int4 arg_3 = (1).xxxx;
+  RWTexture2DArray<int4> v = arg_0;
+  uint2 v_1 = arg_1;
+  int4 v_2 = arg_3;
+  v[uint3(v_1, uint(arg_2))] = v_2;
+}
+
+void fragment_main() {
+  textureStore_ceb832();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  textureStore_ceb832();
+}
+
diff --git a/test/tint/builtins/gen/var/textureStore/ceb832.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/textureStore/ceb832.wgsl.expected.ir.fxc.hlsl
index 685a9ee..3531507 100644
--- a/test/tint/builtins/gen/var/textureStore/ceb832.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureStore/ceb832.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,21 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWTexture2DArray<int4> arg_0 : register(u0, space1);
+void textureStore_ceb832() {
+  uint2 arg_1 = (1u).xx;
+  uint arg_2 = 1u;
+  int4 arg_3 = (1).xxxx;
+  RWTexture2DArray<int4> v = arg_0;
+  uint2 v_1 = arg_1;
+  int4 v_2 = arg_3;
+  v[uint3(v_1, uint(arg_2))] = v_2;
+}
+
+void fragment_main() {
+  textureStore_ceb832();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  textureStore_ceb832();
+}
+
diff --git a/test/tint/builtins/gen/var/textureStore/d0d62c.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/textureStore/d0d62c.wgsl.expected.ir.dxc.hlsl
index 685a9ee..ba7d30c 100644
--- a/test/tint/builtins/gen/var/textureStore/d0d62c.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureStore/d0d62c.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,17 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWTexture2D<uint4> arg_0 : register(u0, space1);
+void textureStore_d0d62c() {
+  int2 arg_1 = (1).xx;
+  uint4 arg_2 = (1u).xxxx;
+  arg_0[arg_1] = arg_2;
+}
+
+void fragment_main() {
+  textureStore_d0d62c();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  textureStore_d0d62c();
+}
+
diff --git a/test/tint/builtins/gen/var/textureStore/d0d62c.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/textureStore/d0d62c.wgsl.expected.ir.fxc.hlsl
index 685a9ee..ba7d30c 100644
--- a/test/tint/builtins/gen/var/textureStore/d0d62c.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureStore/d0d62c.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,17 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWTexture2D<uint4> arg_0 : register(u0, space1);
+void textureStore_d0d62c() {
+  int2 arg_1 = (1).xx;
+  uint4 arg_2 = (1u).xxxx;
+  arg_0[arg_1] = arg_2;
+}
+
+void fragment_main() {
+  textureStore_d0d62c();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  textureStore_d0d62c();
+}
+
diff --git a/test/tint/builtins/gen/var/textureStore/d0fadc.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/textureStore/d0fadc.wgsl.expected.ir.dxc.hlsl
index 685a9ee..07e5f26 100644
--- a/test/tint/builtins/gen/var/textureStore/d0fadc.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureStore/d0fadc.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,21 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWTexture2DArray<float4> arg_0 : register(u0, space1);
+void textureStore_d0fadc() {
+  int2 arg_1 = (1).xx;
+  uint arg_2 = 1u;
+  float4 arg_3 = (1.0f).xxxx;
+  RWTexture2DArray<float4> v = arg_0;
+  int2 v_1 = arg_1;
+  float4 v_2 = arg_3;
+  v[int3(v_1, int(arg_2))] = v_2;
+}
+
+void fragment_main() {
+  textureStore_d0fadc();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  textureStore_d0fadc();
+}
+
diff --git a/test/tint/builtins/gen/var/textureStore/d0fadc.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/textureStore/d0fadc.wgsl.expected.ir.fxc.hlsl
index 685a9ee..07e5f26 100644
--- a/test/tint/builtins/gen/var/textureStore/d0fadc.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureStore/d0fadc.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,21 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWTexture2DArray<float4> arg_0 : register(u0, space1);
+void textureStore_d0fadc() {
+  int2 arg_1 = (1).xx;
+  uint arg_2 = 1u;
+  float4 arg_3 = (1.0f).xxxx;
+  RWTexture2DArray<float4> v = arg_0;
+  int2 v_1 = arg_1;
+  float4 v_2 = arg_3;
+  v[int3(v_1, int(arg_2))] = v_2;
+}
+
+void fragment_main() {
+  textureStore_d0fadc();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  textureStore_d0fadc();
+}
+
diff --git a/test/tint/builtins/gen/var/textureStore/d19db4.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/textureStore/d19db4.wgsl.expected.ir.dxc.hlsl
index 685a9ee..5b58e5f 100644
--- a/test/tint/builtins/gen/var/textureStore/d19db4.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureStore/d19db4.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,17 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWTexture3D<int4> arg_0 : register(u0, space1);
+void textureStore_d19db4() {
+  int3 arg_1 = (1).xxx;
+  int4 arg_2 = (1).xxxx;
+  arg_0[arg_1] = arg_2;
+}
+
+void fragment_main() {
+  textureStore_d19db4();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  textureStore_d19db4();
+}
+
diff --git a/test/tint/builtins/gen/var/textureStore/d19db4.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/textureStore/d19db4.wgsl.expected.ir.fxc.hlsl
index 685a9ee..5b58e5f 100644
--- a/test/tint/builtins/gen/var/textureStore/d19db4.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureStore/d19db4.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,17 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWTexture3D<int4> arg_0 : register(u0, space1);
+void textureStore_d19db4() {
+  int3 arg_1 = (1).xxx;
+  int4 arg_2 = (1).xxxx;
+  arg_0[arg_1] = arg_2;
+}
+
+void fragment_main() {
+  textureStore_d19db4();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  textureStore_d19db4();
+}
+
diff --git a/test/tint/builtins/gen/var/textureStore/d1ab82.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/textureStore/d1ab82.wgsl.expected.ir.dxc.hlsl
index 685a9ee..29c577f 100644
--- a/test/tint/builtins/gen/var/textureStore/d1ab82.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureStore/d1ab82.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,17 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWTexture2D<float4> arg_0 : register(u0, space1);
+void textureStore_d1ab82() {
+  int2 arg_1 = (1).xx;
+  float4 arg_2 = (1.0f).xxxx;
+  arg_0[arg_1] = arg_2;
+}
+
+void fragment_main() {
+  textureStore_d1ab82();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  textureStore_d1ab82();
+}
+
diff --git a/test/tint/builtins/gen/var/textureStore/d1ab82.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/textureStore/d1ab82.wgsl.expected.ir.fxc.hlsl
index 685a9ee..29c577f 100644
--- a/test/tint/builtins/gen/var/textureStore/d1ab82.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureStore/d1ab82.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,17 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWTexture2D<float4> arg_0 : register(u0, space1);
+void textureStore_d1ab82() {
+  int2 arg_1 = (1).xx;
+  float4 arg_2 = (1.0f).xxxx;
+  arg_0[arg_1] = arg_2;
+}
+
+void fragment_main() {
+  textureStore_d1ab82();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  textureStore_d1ab82();
+}
+
diff --git a/test/tint/builtins/gen/var/textureStore/d26166.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/textureStore/d26166.wgsl.expected.ir.dxc.hlsl
index 685a9ee..2b34621 100644
--- a/test/tint/builtins/gen/var/textureStore/d26166.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureStore/d26166.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,17 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWTexture1D<uint4> arg_0 : register(u0, space1);
+void textureStore_d26166() {
+  uint arg_1 = 1u;
+  uint4 arg_2 = (1u).xxxx;
+  arg_0[arg_1] = arg_2;
+}
+
+void fragment_main() {
+  textureStore_d26166();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  textureStore_d26166();
+}
+
diff --git a/test/tint/builtins/gen/var/textureStore/d26166.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/textureStore/d26166.wgsl.expected.ir.fxc.hlsl
index 685a9ee..2b34621 100644
--- a/test/tint/builtins/gen/var/textureStore/d26166.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureStore/d26166.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,17 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWTexture1D<uint4> arg_0 : register(u0, space1);
+void textureStore_d26166() {
+  uint arg_1 = 1u;
+  uint4 arg_2 = (1u).xxxx;
+  arg_0[arg_1] = arg_2;
+}
+
+void fragment_main() {
+  textureStore_d26166();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  textureStore_d26166();
+}
+
diff --git a/test/tint/builtins/gen/var/textureStore/d2b565.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/textureStore/d2b565.wgsl.expected.ir.dxc.hlsl
index 685a9ee..abdb837 100644
--- a/test/tint/builtins/gen/var/textureStore/d2b565.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureStore/d2b565.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,17 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWTexture3D<uint4> arg_0 : register(u0, space1);
+void textureStore_d2b565() {
+  uint3 arg_1 = (1u).xxx;
+  uint4 arg_2 = (1u).xxxx;
+  arg_0[arg_1] = arg_2;
+}
+
+void fragment_main() {
+  textureStore_d2b565();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  textureStore_d2b565();
+}
+
diff --git a/test/tint/builtins/gen/var/textureStore/d2b565.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/textureStore/d2b565.wgsl.expected.ir.fxc.hlsl
index 685a9ee..abdb837 100644
--- a/test/tint/builtins/gen/var/textureStore/d2b565.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureStore/d2b565.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,17 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWTexture3D<uint4> arg_0 : register(u0, space1);
+void textureStore_d2b565() {
+  uint3 arg_1 = (1u).xxx;
+  uint4 arg_2 = (1u).xxxx;
+  arg_0[arg_1] = arg_2;
+}
+
+void fragment_main() {
+  textureStore_d2b565();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  textureStore_d2b565();
+}
+
diff --git a/test/tint/builtins/gen/var/textureStore/d3a22b.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/textureStore/d3a22b.wgsl.expected.ir.dxc.hlsl
index 685a9ee..d289003 100644
--- a/test/tint/builtins/gen/var/textureStore/d3a22b.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureStore/d3a22b.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,17 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWTexture3D<uint4> arg_0 : register(u0, space1);
+void textureStore_d3a22b() {
+  uint3 arg_1 = (1u).xxx;
+  uint4 arg_2 = (1u).xxxx;
+  arg_0[arg_1] = arg_2;
+}
+
+void fragment_main() {
+  textureStore_d3a22b();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  textureStore_d3a22b();
+}
+
diff --git a/test/tint/builtins/gen/var/textureStore/d3a22b.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/textureStore/d3a22b.wgsl.expected.ir.fxc.hlsl
index 685a9ee..d289003 100644
--- a/test/tint/builtins/gen/var/textureStore/d3a22b.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureStore/d3a22b.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,17 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWTexture3D<uint4> arg_0 : register(u0, space1);
+void textureStore_d3a22b() {
+  uint3 arg_1 = (1u).xxx;
+  uint4 arg_2 = (1u).xxxx;
+  arg_0[arg_1] = arg_2;
+}
+
+void fragment_main() {
+  textureStore_d3a22b();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  textureStore_d3a22b();
+}
+
diff --git a/test/tint/builtins/gen/var/textureStore/d4aa95.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/textureStore/d4aa95.wgsl.expected.ir.dxc.hlsl
index 685a9ee..3401f52 100644
--- a/test/tint/builtins/gen/var/textureStore/d4aa95.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureStore/d4aa95.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,17 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWTexture3D<uint4> arg_0 : register(u0, space1);
+void textureStore_d4aa95() {
+  uint3 arg_1 = (1u).xxx;
+  uint4 arg_2 = (1u).xxxx;
+  arg_0[arg_1] = arg_2;
+}
+
+void fragment_main() {
+  textureStore_d4aa95();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  textureStore_d4aa95();
+}
+
diff --git a/test/tint/builtins/gen/var/textureStore/d4aa95.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/textureStore/d4aa95.wgsl.expected.ir.fxc.hlsl
index 685a9ee..3401f52 100644
--- a/test/tint/builtins/gen/var/textureStore/d4aa95.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureStore/d4aa95.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,17 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWTexture3D<uint4> arg_0 : register(u0, space1);
+void textureStore_d4aa95() {
+  uint3 arg_1 = (1u).xxx;
+  uint4 arg_2 = (1u).xxxx;
+  arg_0[arg_1] = arg_2;
+}
+
+void fragment_main() {
+  textureStore_d4aa95();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  textureStore_d4aa95();
+}
+
diff --git a/test/tint/builtins/gen/var/textureStore/d55e65.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/textureStore/d55e65.wgsl.expected.ir.dxc.hlsl
index 685a9ee..7af8bd1 100644
--- a/test/tint/builtins/gen/var/textureStore/d55e65.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureStore/d55e65.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,21 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWTexture2DArray<float4> arg_0 : register(u0, space1);
+void textureStore_d55e65() {
+  uint2 arg_1 = (1u).xx;
+  int arg_2 = 1;
+  float4 arg_3 = (1.0f).xxxx;
+  RWTexture2DArray<float4> v = arg_0;
+  uint2 v_1 = arg_1;
+  float4 v_2 = arg_3;
+  v[uint3(v_1, uint(arg_2))] = v_2;
+}
+
+void fragment_main() {
+  textureStore_d55e65();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  textureStore_d55e65();
+}
+
diff --git a/test/tint/builtins/gen/var/textureStore/d55e65.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/textureStore/d55e65.wgsl.expected.ir.fxc.hlsl
index 685a9ee..7af8bd1 100644
--- a/test/tint/builtins/gen/var/textureStore/d55e65.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureStore/d55e65.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,21 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWTexture2DArray<float4> arg_0 : register(u0, space1);
+void textureStore_d55e65() {
+  uint2 arg_1 = (1u).xx;
+  int arg_2 = 1;
+  float4 arg_3 = (1.0f).xxxx;
+  RWTexture2DArray<float4> v = arg_0;
+  uint2 v_1 = arg_1;
+  float4 v_2 = arg_3;
+  v[uint3(v_1, uint(arg_2))] = v_2;
+}
+
+void fragment_main() {
+  textureStore_d55e65();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  textureStore_d55e65();
+}
+
diff --git a/test/tint/builtins/gen/var/textureStore/d73b5c.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/textureStore/d73b5c.wgsl.expected.ir.dxc.hlsl
index 685a9ee..ddd5f0a 100644
--- a/test/tint/builtins/gen/var/textureStore/d73b5c.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureStore/d73b5c.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,17 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWTexture1D<int4> arg_0 : register(u0, space1);
+void textureStore_d73b5c() {
+  int arg_1 = 1;
+  int4 arg_2 = (1).xxxx;
+  arg_0[arg_1] = arg_2;
+}
+
+void fragment_main() {
+  textureStore_d73b5c();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  textureStore_d73b5c();
+}
+
diff --git a/test/tint/builtins/gen/var/textureStore/d73b5c.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/textureStore/d73b5c.wgsl.expected.ir.fxc.hlsl
index 685a9ee..ddd5f0a 100644
--- a/test/tint/builtins/gen/var/textureStore/d73b5c.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureStore/d73b5c.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,17 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWTexture1D<int4> arg_0 : register(u0, space1);
+void textureStore_d73b5c() {
+  int arg_1 = 1;
+  int4 arg_2 = (1).xxxx;
+  arg_0[arg_1] = arg_2;
+}
+
+void fragment_main() {
+  textureStore_d73b5c();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  textureStore_d73b5c();
+}
+
diff --git a/test/tint/builtins/gen/var/textureStore/d82b0a.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/textureStore/d82b0a.wgsl.expected.ir.dxc.hlsl
index 685a9ee..5b32f1e 100644
--- a/test/tint/builtins/gen/var/textureStore/d82b0a.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureStore/d82b0a.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,17 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWTexture3D<int4> arg_0 : register(u0, space1);
+void textureStore_d82b0a() {
+  uint3 arg_1 = (1u).xxx;
+  int4 arg_2 = (1).xxxx;
+  arg_0[arg_1] = arg_2;
+}
+
+void fragment_main() {
+  textureStore_d82b0a();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  textureStore_d82b0a();
+}
+
diff --git a/test/tint/builtins/gen/var/textureStore/d82b0a.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/textureStore/d82b0a.wgsl.expected.ir.fxc.hlsl
index 685a9ee..5b32f1e 100644
--- a/test/tint/builtins/gen/var/textureStore/d82b0a.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureStore/d82b0a.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,17 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWTexture3D<int4> arg_0 : register(u0, space1);
+void textureStore_d82b0a() {
+  uint3 arg_1 = (1u).xxx;
+  int4 arg_2 = (1).xxxx;
+  arg_0[arg_1] = arg_2;
+}
+
+void fragment_main() {
+  textureStore_d82b0a();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  textureStore_d82b0a();
+}
+
diff --git a/test/tint/builtins/gen/var/textureStore/d86d33.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/textureStore/d86d33.wgsl.expected.ir.dxc.hlsl
index 685a9ee..d91f37e 100644
--- a/test/tint/builtins/gen/var/textureStore/d86d33.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureStore/d86d33.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,21 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWTexture2DArray<float4> arg_0 : register(u0, space1);
+void textureStore_d86d33() {
+  uint2 arg_1 = (1u).xx;
+  int arg_2 = 1;
+  float4 arg_3 = (1.0f).xxxx;
+  RWTexture2DArray<float4> v = arg_0;
+  uint2 v_1 = arg_1;
+  float4 v_2 = arg_3;
+  v[uint3(v_1, uint(arg_2))] = v_2;
+}
+
+void fragment_main() {
+  textureStore_d86d33();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  textureStore_d86d33();
+}
+
diff --git a/test/tint/builtins/gen/var/textureStore/d86d33.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/textureStore/d86d33.wgsl.expected.ir.fxc.hlsl
index 685a9ee..d91f37e 100644
--- a/test/tint/builtins/gen/var/textureStore/d86d33.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureStore/d86d33.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,21 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWTexture2DArray<float4> arg_0 : register(u0, space1);
+void textureStore_d86d33() {
+  uint2 arg_1 = (1u).xx;
+  int arg_2 = 1;
+  float4 arg_3 = (1.0f).xxxx;
+  RWTexture2DArray<float4> v = arg_0;
+  uint2 v_1 = arg_1;
+  float4 v_2 = arg_3;
+  v[uint3(v_1, uint(arg_2))] = v_2;
+}
+
+void fragment_main() {
+  textureStore_d86d33();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  textureStore_d86d33();
+}
+
diff --git a/test/tint/builtins/gen/var/textureStore/da530c.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/textureStore/da530c.wgsl.expected.ir.dxc.hlsl
index 685a9ee..e5bfef8 100644
--- a/test/tint/builtins/gen/var/textureStore/da530c.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureStore/da530c.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,17 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWTexture2D<int4> arg_0 : register(u0, space1);
+void textureStore_da530c() {
+  uint2 arg_1 = (1u).xx;
+  int4 arg_2 = (1).xxxx;
+  arg_0[arg_1] = arg_2;
+}
+
+void fragment_main() {
+  textureStore_da530c();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  textureStore_da530c();
+}
+
diff --git a/test/tint/builtins/gen/var/textureStore/da530c.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/textureStore/da530c.wgsl.expected.ir.fxc.hlsl
index 685a9ee..e5bfef8 100644
--- a/test/tint/builtins/gen/var/textureStore/da530c.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureStore/da530c.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,17 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWTexture2D<int4> arg_0 : register(u0, space1);
+void textureStore_da530c() {
+  uint2 arg_1 = (1u).xx;
+  int4 arg_2 = (1).xxxx;
+  arg_0[arg_1] = arg_2;
+}
+
+void fragment_main() {
+  textureStore_da530c();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  textureStore_da530c();
+}
+
diff --git a/test/tint/builtins/gen/var/textureStore/db5128.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/textureStore/db5128.wgsl.expected.ir.dxc.hlsl
index 685a9ee..1f5a84c 100644
--- a/test/tint/builtins/gen/var/textureStore/db5128.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureStore/db5128.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,21 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWTexture2DArray<uint4> arg_0 : register(u0, space1);
+void textureStore_db5128() {
+  int2 arg_1 = (1).xx;
+  uint arg_2 = 1u;
+  uint4 arg_3 = (1u).xxxx;
+  RWTexture2DArray<uint4> v = arg_0;
+  int2 v_1 = arg_1;
+  uint4 v_2 = arg_3;
+  v[int3(v_1, int(arg_2))] = v_2;
+}
+
+void fragment_main() {
+  textureStore_db5128();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  textureStore_db5128();
+}
+
diff --git a/test/tint/builtins/gen/var/textureStore/db5128.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/textureStore/db5128.wgsl.expected.ir.fxc.hlsl
index 685a9ee..1f5a84c 100644
--- a/test/tint/builtins/gen/var/textureStore/db5128.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureStore/db5128.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,21 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWTexture2DArray<uint4> arg_0 : register(u0, space1);
+void textureStore_db5128() {
+  int2 arg_1 = (1).xx;
+  uint arg_2 = 1u;
+  uint4 arg_3 = (1u).xxxx;
+  RWTexture2DArray<uint4> v = arg_0;
+  int2 v_1 = arg_1;
+  uint4 v_2 = arg_3;
+  v[int3(v_1, int(arg_2))] = v_2;
+}
+
+void fragment_main() {
+  textureStore_db5128();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  textureStore_db5128();
+}
+
diff --git a/test/tint/builtins/gen/var/textureStore/db92a2.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/textureStore/db92a2.wgsl.expected.ir.dxc.hlsl
index 685a9ee..d695f42 100644
--- a/test/tint/builtins/gen/var/textureStore/db92a2.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureStore/db92a2.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,17 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWTexture2D<uint4> arg_0 : register(u0, space1);
+void textureStore_db92a2() {
+  uint2 arg_1 = (1u).xx;
+  uint4 arg_2 = (1u).xxxx;
+  arg_0[arg_1] = arg_2;
+}
+
+void fragment_main() {
+  textureStore_db92a2();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  textureStore_db92a2();
+}
+
diff --git a/test/tint/builtins/gen/var/textureStore/db92a2.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/textureStore/db92a2.wgsl.expected.ir.fxc.hlsl
index 685a9ee..d695f42 100644
--- a/test/tint/builtins/gen/var/textureStore/db92a2.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureStore/db92a2.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,17 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWTexture2D<uint4> arg_0 : register(u0, space1);
+void textureStore_db92a2() {
+  uint2 arg_1 = (1u).xx;
+  uint4 arg_2 = (1u).xxxx;
+  arg_0[arg_1] = arg_2;
+}
+
+void fragment_main() {
+  textureStore_db92a2();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  textureStore_db92a2();
+}
+
diff --git a/test/tint/builtins/gen/var/textureStore/dce0e2.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/textureStore/dce0e2.wgsl.expected.ir.dxc.hlsl
index 685a9ee..7d0023d 100644
--- a/test/tint/builtins/gen/var/textureStore/dce0e2.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureStore/dce0e2.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,21 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWTexture2DArray<float4> arg_0 : register(u0, space1);
+void textureStore_dce0e2() {
+  uint2 arg_1 = (1u).xx;
+  int arg_2 = 1;
+  float4 arg_3 = (1.0f).xxxx;
+  RWTexture2DArray<float4> v = arg_0;
+  uint2 v_1 = arg_1;
+  float4 v_2 = arg_3;
+  v[uint3(v_1, uint(arg_2))] = v_2;
+}
+
+void fragment_main() {
+  textureStore_dce0e2();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  textureStore_dce0e2();
+}
+
diff --git a/test/tint/builtins/gen/var/textureStore/dce0e2.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/textureStore/dce0e2.wgsl.expected.ir.fxc.hlsl
index 685a9ee..7d0023d 100644
--- a/test/tint/builtins/gen/var/textureStore/dce0e2.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureStore/dce0e2.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,21 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWTexture2DArray<float4> arg_0 : register(u0, space1);
+void textureStore_dce0e2() {
+  uint2 arg_1 = (1u).xx;
+  int arg_2 = 1;
+  float4 arg_3 = (1.0f).xxxx;
+  RWTexture2DArray<float4> v = arg_0;
+  uint2 v_1 = arg_1;
+  float4 v_2 = arg_3;
+  v[uint3(v_1, uint(arg_2))] = v_2;
+}
+
+void fragment_main() {
+  textureStore_dce0e2();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  textureStore_dce0e2();
+}
+
diff --git a/test/tint/builtins/gen/var/textureStore/dd7d81.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/textureStore/dd7d81.wgsl.expected.ir.dxc.hlsl
index 685a9ee..307fd1f 100644
--- a/test/tint/builtins/gen/var/textureStore/dd7d81.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureStore/dd7d81.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,17 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWTexture3D<float4> arg_0 : register(u0, space1);
+void textureStore_dd7d81() {
+  int3 arg_1 = (1).xxx;
+  float4 arg_2 = (1.0f).xxxx;
+  arg_0[arg_1] = arg_2;
+}
+
+void fragment_main() {
+  textureStore_dd7d81();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  textureStore_dd7d81();
+}
+
diff --git a/test/tint/builtins/gen/var/textureStore/dd7d81.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/textureStore/dd7d81.wgsl.expected.ir.fxc.hlsl
index 685a9ee..307fd1f 100644
--- a/test/tint/builtins/gen/var/textureStore/dd7d81.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureStore/dd7d81.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,17 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWTexture3D<float4> arg_0 : register(u0, space1);
+void textureStore_dd7d81() {
+  int3 arg_1 = (1).xxx;
+  float4 arg_2 = (1.0f).xxxx;
+  arg_0[arg_1] = arg_2;
+}
+
+void fragment_main() {
+  textureStore_dd7d81();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  textureStore_dd7d81();
+}
+
diff --git a/test/tint/builtins/gen/var/textureStore/dd8b29.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/textureStore/dd8b29.wgsl.expected.ir.dxc.hlsl
index 685a9ee..1df1c5a 100644
--- a/test/tint/builtins/gen/var/textureStore/dd8b29.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureStore/dd8b29.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,21 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWTexture2DArray<uint4> arg_0 : register(u0, space1);
+void textureStore_dd8b29() {
+  int2 arg_1 = (1).xx;
+  int arg_2 = 1;
+  uint4 arg_3 = (1u).xxxx;
+  RWTexture2DArray<uint4> v = arg_0;
+  int2 v_1 = arg_1;
+  uint4 v_2 = arg_3;
+  v[int3(v_1, int(arg_2))] = v_2;
+}
+
+void fragment_main() {
+  textureStore_dd8b29();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  textureStore_dd8b29();
+}
+
diff --git a/test/tint/builtins/gen/var/textureStore/dd8b29.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/textureStore/dd8b29.wgsl.expected.ir.fxc.hlsl
index 685a9ee..1df1c5a 100644
--- a/test/tint/builtins/gen/var/textureStore/dd8b29.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureStore/dd8b29.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,21 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWTexture2DArray<uint4> arg_0 : register(u0, space1);
+void textureStore_dd8b29() {
+  int2 arg_1 = (1).xx;
+  int arg_2 = 1;
+  uint4 arg_3 = (1u).xxxx;
+  RWTexture2DArray<uint4> v = arg_0;
+  int2 v_1 = arg_1;
+  uint4 v_2 = arg_3;
+  v[int3(v_1, int(arg_2))] = v_2;
+}
+
+void fragment_main() {
+  textureStore_dd8b29();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  textureStore_dd8b29();
+}
+
diff --git a/test/tint/builtins/gen/var/textureStore/dde364.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/textureStore/dde364.wgsl.expected.ir.dxc.hlsl
index 685a9ee..cb61ee2 100644
--- a/test/tint/builtins/gen/var/textureStore/dde364.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureStore/dde364.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,21 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWTexture2DArray<uint4> arg_0 : register(u0, space1);
+void textureStore_dde364() {
+  int2 arg_1 = (1).xx;
+  int arg_2 = 1;
+  uint4 arg_3 = (1u).xxxx;
+  RWTexture2DArray<uint4> v = arg_0;
+  int2 v_1 = arg_1;
+  uint4 v_2 = arg_3;
+  v[int3(v_1, int(arg_2))] = v_2;
+}
+
+void fragment_main() {
+  textureStore_dde364();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  textureStore_dde364();
+}
+
diff --git a/test/tint/builtins/gen/var/textureStore/dde364.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/textureStore/dde364.wgsl.expected.ir.fxc.hlsl
index 685a9ee..cb61ee2 100644
--- a/test/tint/builtins/gen/var/textureStore/dde364.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureStore/dde364.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,21 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWTexture2DArray<uint4> arg_0 : register(u0, space1);
+void textureStore_dde364() {
+  int2 arg_1 = (1).xx;
+  int arg_2 = 1;
+  uint4 arg_3 = (1u).xxxx;
+  RWTexture2DArray<uint4> v = arg_0;
+  int2 v_1 = arg_1;
+  uint4 v_2 = arg_3;
+  v[int3(v_1, int(arg_2))] = v_2;
+}
+
+void fragment_main() {
+  textureStore_dde364();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  textureStore_dde364();
+}
+
diff --git a/test/tint/builtins/gen/var/textureStore/de38e5.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/textureStore/de38e5.wgsl.expected.ir.dxc.hlsl
index 685a9ee..46547c4 100644
--- a/test/tint/builtins/gen/var/textureStore/de38e5.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureStore/de38e5.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,17 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWTexture3D<float4> arg_0 : register(u0, space1);
+void textureStore_de38e5() {
+  uint3 arg_1 = (1u).xxx;
+  float4 arg_2 = (1.0f).xxxx;
+  arg_0[arg_1] = arg_2;
+}
+
+void fragment_main() {
+  textureStore_de38e5();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  textureStore_de38e5();
+}
+
diff --git a/test/tint/builtins/gen/var/textureStore/de38e5.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/textureStore/de38e5.wgsl.expected.ir.fxc.hlsl
index 685a9ee..46547c4 100644
--- a/test/tint/builtins/gen/var/textureStore/de38e5.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureStore/de38e5.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,17 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWTexture3D<float4> arg_0 : register(u0, space1);
+void textureStore_de38e5() {
+  uint3 arg_1 = (1u).xxx;
+  float4 arg_2 = (1.0f).xxxx;
+  arg_0[arg_1] = arg_2;
+}
+
+void fragment_main() {
+  textureStore_de38e5();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  textureStore_de38e5();
+}
+
diff --git a/test/tint/builtins/gen/var/textureStore/de4b94.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/textureStore/de4b94.wgsl.expected.ir.dxc.hlsl
index 685a9ee..1042366 100644
--- a/test/tint/builtins/gen/var/textureStore/de4b94.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureStore/de4b94.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,17 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWTexture1D<int4> arg_0 : register(u0, space1);
+void textureStore_de4b94() {
+  uint arg_1 = 1u;
+  int4 arg_2 = (1).xxxx;
+  arg_0[arg_1] = arg_2;
+}
+
+void fragment_main() {
+  textureStore_de4b94();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  textureStore_de4b94();
+}
+
diff --git a/test/tint/builtins/gen/var/textureStore/de4b94.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/textureStore/de4b94.wgsl.expected.ir.fxc.hlsl
index 685a9ee..1042366 100644
--- a/test/tint/builtins/gen/var/textureStore/de4b94.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureStore/de4b94.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,17 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWTexture1D<int4> arg_0 : register(u0, space1);
+void textureStore_de4b94() {
+  uint arg_1 = 1u;
+  int4 arg_2 = (1).xxxx;
+  arg_0[arg_1] = arg_2;
+}
+
+void fragment_main() {
+  textureStore_de4b94();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  textureStore_de4b94();
+}
+
diff --git a/test/tint/builtins/gen/var/textureStore/df0c51.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/textureStore/df0c51.wgsl.expected.ir.dxc.hlsl
index 685a9ee..ad3e205 100644
--- a/test/tint/builtins/gen/var/textureStore/df0c51.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureStore/df0c51.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,17 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWTexture3D<int4> arg_0 : register(u0, space1);
+void textureStore_df0c51() {
+  uint3 arg_1 = (1u).xxx;
+  int4 arg_2 = (1).xxxx;
+  arg_0[arg_1] = arg_2;
+}
+
+void fragment_main() {
+  textureStore_df0c51();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  textureStore_df0c51();
+}
+
diff --git a/test/tint/builtins/gen/var/textureStore/df0c51.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/textureStore/df0c51.wgsl.expected.ir.fxc.hlsl
index 685a9ee..ad3e205 100644
--- a/test/tint/builtins/gen/var/textureStore/df0c51.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureStore/df0c51.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,17 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWTexture3D<int4> arg_0 : register(u0, space1);
+void textureStore_df0c51() {
+  uint3 arg_1 = (1u).xxx;
+  int4 arg_2 = (1).xxxx;
+  arg_0[arg_1] = arg_2;
+}
+
+void fragment_main() {
+  textureStore_df0c51();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  textureStore_df0c51();
+}
+
diff --git a/test/tint/builtins/gen/var/textureStore/df2ca4.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/textureStore/df2ca4.wgsl.expected.ir.dxc.hlsl
index 685a9ee..e314fe6 100644
--- a/test/tint/builtins/gen/var/textureStore/df2ca4.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureStore/df2ca4.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,21 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWTexture2DArray<float4> arg_0 : register(u0, space1);
+void textureStore_df2ca4() {
+  int2 arg_1 = (1).xx;
+  uint arg_2 = 1u;
+  float4 arg_3 = (1.0f).xxxx;
+  RWTexture2DArray<float4> v = arg_0;
+  int2 v_1 = arg_1;
+  float4 v_2 = arg_3;
+  v[int3(v_1, int(arg_2))] = v_2;
+}
+
+void fragment_main() {
+  textureStore_df2ca4();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  textureStore_df2ca4();
+}
+
diff --git a/test/tint/builtins/gen/var/textureStore/df2ca4.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/textureStore/df2ca4.wgsl.expected.ir.fxc.hlsl
index 685a9ee..e314fe6 100644
--- a/test/tint/builtins/gen/var/textureStore/df2ca4.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureStore/df2ca4.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,21 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWTexture2DArray<float4> arg_0 : register(u0, space1);
+void textureStore_df2ca4() {
+  int2 arg_1 = (1).xx;
+  uint arg_2 = 1u;
+  float4 arg_3 = (1.0f).xxxx;
+  RWTexture2DArray<float4> v = arg_0;
+  int2 v_1 = arg_1;
+  float4 v_2 = arg_3;
+  v[int3(v_1, int(arg_2))] = v_2;
+}
+
+void fragment_main() {
+  textureStore_df2ca4();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  textureStore_df2ca4();
+}
+
diff --git a/test/tint/builtins/gen/var/textureStore/dfa9a1.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/textureStore/dfa9a1.wgsl.expected.ir.dxc.hlsl
index 685a9ee..549d076 100644
--- a/test/tint/builtins/gen/var/textureStore/dfa9a1.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureStore/dfa9a1.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,21 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWTexture2DArray<float4> arg_0 : register(u0, space1);
+void textureStore_dfa9a1() {
+  uint2 arg_1 = (1u).xx;
+  int arg_2 = 1;
+  float4 arg_3 = (1.0f).xxxx;
+  RWTexture2DArray<float4> v = arg_0;
+  uint2 v_1 = arg_1;
+  float4 v_2 = arg_3;
+  v[uint3(v_1, uint(arg_2))] = v_2;
+}
+
+void fragment_main() {
+  textureStore_dfa9a1();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  textureStore_dfa9a1();
+}
+
diff --git a/test/tint/builtins/gen/var/textureStore/dfa9a1.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/textureStore/dfa9a1.wgsl.expected.ir.fxc.hlsl
index 685a9ee..549d076 100644
--- a/test/tint/builtins/gen/var/textureStore/dfa9a1.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureStore/dfa9a1.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,21 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWTexture2DArray<float4> arg_0 : register(u0, space1);
+void textureStore_dfa9a1() {
+  uint2 arg_1 = (1u).xx;
+  int arg_2 = 1;
+  float4 arg_3 = (1.0f).xxxx;
+  RWTexture2DArray<float4> v = arg_0;
+  uint2 v_1 = arg_1;
+  float4 v_2 = arg_3;
+  v[uint3(v_1, uint(arg_2))] = v_2;
+}
+
+void fragment_main() {
+  textureStore_dfa9a1();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  textureStore_dfa9a1();
+}
+
diff --git a/test/tint/builtins/gen/var/textureStore/dffb13.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/textureStore/dffb13.wgsl.expected.ir.dxc.hlsl
index 685a9ee..f8f64cf 100644
--- a/test/tint/builtins/gen/var/textureStore/dffb13.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureStore/dffb13.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,21 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWTexture2DArray<uint4> arg_0 : register(u0, space1);
+void textureStore_dffb13() {
+  int2 arg_1 = (1).xx;
+  uint arg_2 = 1u;
+  uint4 arg_3 = (1u).xxxx;
+  RWTexture2DArray<uint4> v = arg_0;
+  int2 v_1 = arg_1;
+  uint4 v_2 = arg_3;
+  v[int3(v_1, int(arg_2))] = v_2;
+}
+
+void fragment_main() {
+  textureStore_dffb13();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  textureStore_dffb13();
+}
+
diff --git a/test/tint/builtins/gen/var/textureStore/dffb13.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/textureStore/dffb13.wgsl.expected.ir.fxc.hlsl
index 685a9ee..f8f64cf 100644
--- a/test/tint/builtins/gen/var/textureStore/dffb13.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureStore/dffb13.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,21 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWTexture2DArray<uint4> arg_0 : register(u0, space1);
+void textureStore_dffb13() {
+  int2 arg_1 = (1).xx;
+  uint arg_2 = 1u;
+  uint4 arg_3 = (1u).xxxx;
+  RWTexture2DArray<uint4> v = arg_0;
+  int2 v_1 = arg_1;
+  uint4 v_2 = arg_3;
+  v[int3(v_1, int(arg_2))] = v_2;
+}
+
+void fragment_main() {
+  textureStore_dffb13();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  textureStore_dffb13();
+}
+
diff --git a/test/tint/builtins/gen/var/textureStore/e077e7.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/textureStore/e077e7.wgsl.expected.ir.dxc.hlsl
index 685a9ee..e7a6663 100644
--- a/test/tint/builtins/gen/var/textureStore/e077e7.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureStore/e077e7.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,17 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWTexture1D<int4> arg_0 : register(u0, space1);
+void textureStore_e077e7() {
+  int arg_1 = 1;
+  int4 arg_2 = (1).xxxx;
+  arg_0[arg_1] = arg_2;
+}
+
+void fragment_main() {
+  textureStore_e077e7();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  textureStore_e077e7();
+}
+
diff --git a/test/tint/builtins/gen/var/textureStore/e077e7.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/textureStore/e077e7.wgsl.expected.ir.fxc.hlsl
index 685a9ee..e7a6663 100644
--- a/test/tint/builtins/gen/var/textureStore/e077e7.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureStore/e077e7.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,17 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWTexture1D<int4> arg_0 : register(u0, space1);
+void textureStore_e077e7() {
+  int arg_1 = 1;
+  int4 arg_2 = (1).xxxx;
+  arg_0[arg_1] = arg_2;
+}
+
+void fragment_main() {
+  textureStore_e077e7();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  textureStore_e077e7();
+}
+
diff --git a/test/tint/builtins/gen/var/textureStore/e0b666.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/textureStore/e0b666.wgsl.expected.ir.dxc.hlsl
index 685a9ee..05d47ae 100644
--- a/test/tint/builtins/gen/var/textureStore/e0b666.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureStore/e0b666.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,17 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWTexture1D<float4> arg_0 : register(u0, space1);
+void textureStore_e0b666() {
+  int arg_1 = 1;
+  float4 arg_2 = (1.0f).xxxx;
+  arg_0[arg_1] = arg_2;
+}
+
+void fragment_main() {
+  textureStore_e0b666();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  textureStore_e0b666();
+}
+
diff --git a/test/tint/builtins/gen/var/textureStore/e0b666.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/textureStore/e0b666.wgsl.expected.ir.fxc.hlsl
index 685a9ee..05d47ae 100644
--- a/test/tint/builtins/gen/var/textureStore/e0b666.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureStore/e0b666.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,17 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWTexture1D<float4> arg_0 : register(u0, space1);
+void textureStore_e0b666() {
+  int arg_1 = 1;
+  float4 arg_2 = (1.0f).xxxx;
+  arg_0[arg_1] = arg_2;
+}
+
+void fragment_main() {
+  textureStore_e0b666();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  textureStore_e0b666();
+}
+
diff --git a/test/tint/builtins/gen/var/textureStore/e1784d.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/textureStore/e1784d.wgsl.expected.ir.dxc.hlsl
index 685a9ee..f8b7d25 100644
--- a/test/tint/builtins/gen/var/textureStore/e1784d.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureStore/e1784d.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,21 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWTexture2DArray<float4> arg_0 : register(u0, space1);
+void textureStore_e1784d() {
+  int2 arg_1 = (1).xx;
+  uint arg_2 = 1u;
+  float4 arg_3 = (1.0f).xxxx;
+  RWTexture2DArray<float4> v = arg_0;
+  int2 v_1 = arg_1;
+  float4 v_2 = arg_3;
+  v[int3(v_1, int(arg_2))] = v_2;
+}
+
+void fragment_main() {
+  textureStore_e1784d();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  textureStore_e1784d();
+}
+
diff --git a/test/tint/builtins/gen/var/textureStore/e1784d.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/textureStore/e1784d.wgsl.expected.ir.fxc.hlsl
index 685a9ee..f8b7d25 100644
--- a/test/tint/builtins/gen/var/textureStore/e1784d.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureStore/e1784d.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,21 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWTexture2DArray<float4> arg_0 : register(u0, space1);
+void textureStore_e1784d() {
+  int2 arg_1 = (1).xx;
+  uint arg_2 = 1u;
+  float4 arg_3 = (1.0f).xxxx;
+  RWTexture2DArray<float4> v = arg_0;
+  int2 v_1 = arg_1;
+  float4 v_2 = arg_3;
+  v[int3(v_1, int(arg_2))] = v_2;
+}
+
+void fragment_main() {
+  textureStore_e1784d();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  textureStore_e1784d();
+}
+
diff --git a/test/tint/builtins/gen/var/textureStore/e38281.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/textureStore/e38281.wgsl.expected.ir.dxc.hlsl
index 685a9ee..186fd5c 100644
--- a/test/tint/builtins/gen/var/textureStore/e38281.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureStore/e38281.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,21 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWTexture2DArray<float4> arg_0 : register(u0, space1);
+void textureStore_e38281() {
+  uint2 arg_1 = (1u).xx;
+  uint arg_2 = 1u;
+  float4 arg_3 = (1.0f).xxxx;
+  RWTexture2DArray<float4> v = arg_0;
+  uint2 v_1 = arg_1;
+  float4 v_2 = arg_3;
+  v[uint3(v_1, uint(arg_2))] = v_2;
+}
+
+void fragment_main() {
+  textureStore_e38281();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  textureStore_e38281();
+}
+
diff --git a/test/tint/builtins/gen/var/textureStore/e38281.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/textureStore/e38281.wgsl.expected.ir.fxc.hlsl
index 685a9ee..186fd5c 100644
--- a/test/tint/builtins/gen/var/textureStore/e38281.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureStore/e38281.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,21 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWTexture2DArray<float4> arg_0 : register(u0, space1);
+void textureStore_e38281() {
+  uint2 arg_1 = (1u).xx;
+  uint arg_2 = 1u;
+  float4 arg_3 = (1.0f).xxxx;
+  RWTexture2DArray<float4> v = arg_0;
+  uint2 v_1 = arg_1;
+  float4 v_2 = arg_3;
+  v[uint3(v_1, uint(arg_2))] = v_2;
+}
+
+void fragment_main() {
+  textureStore_e38281();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  textureStore_e38281();
+}
+
diff --git a/test/tint/builtins/gen/var/textureStore/e46fd8.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/textureStore/e46fd8.wgsl.expected.ir.dxc.hlsl
index 685a9ee..fb6ec0a 100644
--- a/test/tint/builtins/gen/var/textureStore/e46fd8.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureStore/e46fd8.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,17 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWTexture2D<float4> arg_0 : register(u0, space1);
+void textureStore_e46fd8() {
+  uint2 arg_1 = (1u).xx;
+  float4 arg_2 = (1.0f).xxxx;
+  arg_0[arg_1] = arg_2;
+}
+
+void fragment_main() {
+  textureStore_e46fd8();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  textureStore_e46fd8();
+}
+
diff --git a/test/tint/builtins/gen/var/textureStore/e46fd8.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/textureStore/e46fd8.wgsl.expected.ir.fxc.hlsl
index 685a9ee..fb6ec0a 100644
--- a/test/tint/builtins/gen/var/textureStore/e46fd8.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureStore/e46fd8.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,17 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWTexture2D<float4> arg_0 : register(u0, space1);
+void textureStore_e46fd8() {
+  uint2 arg_1 = (1u).xx;
+  float4 arg_2 = (1.0f).xxxx;
+  arg_0[arg_1] = arg_2;
+}
+
+void fragment_main() {
+  textureStore_e46fd8();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  textureStore_e46fd8();
+}
+
diff --git a/test/tint/builtins/gen/var/textureStore/e72bdc.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/textureStore/e72bdc.wgsl.expected.ir.dxc.hlsl
index 685a9ee..fe83ec6 100644
--- a/test/tint/builtins/gen/var/textureStore/e72bdc.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureStore/e72bdc.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,21 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWTexture2DArray<float4> arg_0 : register(u0, space1);
+void textureStore_e72bdc() {
+  int2 arg_1 = (1).xx;
+  uint arg_2 = 1u;
+  float4 arg_3 = (1.0f).xxxx;
+  RWTexture2DArray<float4> v = arg_0;
+  int2 v_1 = arg_1;
+  float4 v_2 = arg_3;
+  v[int3(v_1, int(arg_2))] = v_2;
+}
+
+void fragment_main() {
+  textureStore_e72bdc();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  textureStore_e72bdc();
+}
+
diff --git a/test/tint/builtins/gen/var/textureStore/e72bdc.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/textureStore/e72bdc.wgsl.expected.ir.fxc.hlsl
index 685a9ee..fe83ec6 100644
--- a/test/tint/builtins/gen/var/textureStore/e72bdc.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureStore/e72bdc.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,21 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWTexture2DArray<float4> arg_0 : register(u0, space1);
+void textureStore_e72bdc() {
+  int2 arg_1 = (1).xx;
+  uint arg_2 = 1u;
+  float4 arg_3 = (1.0f).xxxx;
+  RWTexture2DArray<float4> v = arg_0;
+  int2 v_1 = arg_1;
+  float4 v_2 = arg_3;
+  v[int3(v_1, int(arg_2))] = v_2;
+}
+
+void fragment_main() {
+  textureStore_e72bdc();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  textureStore_e72bdc();
+}
+
diff --git a/test/tint/builtins/gen/var/textureStore/e7c6d8.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/textureStore/e7c6d8.wgsl.expected.ir.dxc.hlsl
index 685a9ee..62ade7d 100644
--- a/test/tint/builtins/gen/var/textureStore/e7c6d8.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureStore/e7c6d8.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,17 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWTexture1D<float4> arg_0 : register(u0, space1);
+void textureStore_e7c6d8() {
+  uint arg_1 = 1u;
+  float4 arg_2 = (1.0f).xxxx;
+  arg_0[arg_1] = arg_2;
+}
+
+void fragment_main() {
+  textureStore_e7c6d8();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  textureStore_e7c6d8();
+}
+
diff --git a/test/tint/builtins/gen/var/textureStore/e7c6d8.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/textureStore/e7c6d8.wgsl.expected.ir.fxc.hlsl
index 685a9ee..62ade7d 100644
--- a/test/tint/builtins/gen/var/textureStore/e7c6d8.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureStore/e7c6d8.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,17 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWTexture1D<float4> arg_0 : register(u0, space1);
+void textureStore_e7c6d8() {
+  uint arg_1 = 1u;
+  float4 arg_2 = (1.0f).xxxx;
+  arg_0[arg_1] = arg_2;
+}
+
+void fragment_main() {
+  textureStore_e7c6d8();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  textureStore_e7c6d8();
+}
+
diff --git a/test/tint/builtins/gen/var/textureStore/e87f6e.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/textureStore/e87f6e.wgsl.expected.ir.dxc.hlsl
index 685a9ee..7673f24 100644
--- a/test/tint/builtins/gen/var/textureStore/e87f6e.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureStore/e87f6e.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,17 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWTexture1D<int4> arg_0 : register(u0, space1);
+void textureStore_e87f6e() {
+  int arg_1 = 1;
+  int4 arg_2 = (1).xxxx;
+  arg_0[arg_1] = arg_2;
+}
+
+void fragment_main() {
+  textureStore_e87f6e();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  textureStore_e87f6e();
+}
+
diff --git a/test/tint/builtins/gen/var/textureStore/e87f6e.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/textureStore/e87f6e.wgsl.expected.ir.fxc.hlsl
index 685a9ee..7673f24 100644
--- a/test/tint/builtins/gen/var/textureStore/e87f6e.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureStore/e87f6e.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,17 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWTexture1D<int4> arg_0 : register(u0, space1);
+void textureStore_e87f6e() {
+  int arg_1 = 1;
+  int4 arg_2 = (1).xxxx;
+  arg_0[arg_1] = arg_2;
+}
+
+void fragment_main() {
+  textureStore_e87f6e();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  textureStore_e87f6e();
+}
+
diff --git a/test/tint/builtins/gen/var/textureStore/e885e8.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/textureStore/e885e8.wgsl.expected.ir.dxc.hlsl
index 685a9ee..25c6303 100644
--- a/test/tint/builtins/gen/var/textureStore/e885e8.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureStore/e885e8.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,17 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWTexture1D<float4> arg_0 : register(u0, space1);
+void textureStore_e885e8() {
+  int arg_1 = 1;
+  float4 arg_2 = (1.0f).xxxx;
+  arg_0[arg_1] = arg_2;
+}
+
+void fragment_main() {
+  textureStore_e885e8();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  textureStore_e885e8();
+}
+
diff --git a/test/tint/builtins/gen/var/textureStore/e885e8.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/textureStore/e885e8.wgsl.expected.ir.fxc.hlsl
index 685a9ee..25c6303 100644
--- a/test/tint/builtins/gen/var/textureStore/e885e8.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureStore/e885e8.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,17 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWTexture1D<float4> arg_0 : register(u0, space1);
+void textureStore_e885e8() {
+  int arg_1 = 1;
+  float4 arg_2 = (1.0f).xxxx;
+  arg_0[arg_1] = arg_2;
+}
+
+void fragment_main() {
+  textureStore_e885e8();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  textureStore_e885e8();
+}
+
diff --git a/test/tint/builtins/gen/var/textureStore/e8cbf7.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/textureStore/e8cbf7.wgsl.expected.ir.dxc.hlsl
index 685a9ee..d8a5262 100644
--- a/test/tint/builtins/gen/var/textureStore/e8cbf7.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureStore/e8cbf7.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,17 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWTexture2D<uint4> arg_0 : register(u0, space1);
+void textureStore_e8cbf7() {
+  uint2 arg_1 = (1u).xx;
+  uint4 arg_2 = (1u).xxxx;
+  arg_0[arg_1] = arg_2;
+}
+
+void fragment_main() {
+  textureStore_e8cbf7();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  textureStore_e8cbf7();
+}
+
diff --git a/test/tint/builtins/gen/var/textureStore/e8cbf7.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/textureStore/e8cbf7.wgsl.expected.ir.fxc.hlsl
index 685a9ee..d8a5262 100644
--- a/test/tint/builtins/gen/var/textureStore/e8cbf7.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureStore/e8cbf7.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,17 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWTexture2D<uint4> arg_0 : register(u0, space1);
+void textureStore_e8cbf7() {
+  uint2 arg_1 = (1u).xx;
+  uint4 arg_2 = (1u).xxxx;
+  arg_0[arg_1] = arg_2;
+}
+
+void fragment_main() {
+  textureStore_e8cbf7();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  textureStore_e8cbf7();
+}
+
diff --git a/test/tint/builtins/gen/var/textureStore/ea30d2.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/textureStore/ea30d2.wgsl.expected.ir.dxc.hlsl
index 685a9ee..4965581 100644
--- a/test/tint/builtins/gen/var/textureStore/ea30d2.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureStore/ea30d2.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,21 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWTexture2DArray<int4> arg_0 : register(u0, space1);
+void textureStore_ea30d2() {
+  uint2 arg_1 = (1u).xx;
+  int arg_2 = 1;
+  int4 arg_3 = (1).xxxx;
+  RWTexture2DArray<int4> v = arg_0;
+  uint2 v_1 = arg_1;
+  int4 v_2 = arg_3;
+  v[uint3(v_1, uint(arg_2))] = v_2;
+}
+
+void fragment_main() {
+  textureStore_ea30d2();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  textureStore_ea30d2();
+}
+
diff --git a/test/tint/builtins/gen/var/textureStore/ea30d2.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/textureStore/ea30d2.wgsl.expected.ir.fxc.hlsl
index 685a9ee..4965581 100644
--- a/test/tint/builtins/gen/var/textureStore/ea30d2.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureStore/ea30d2.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,21 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWTexture2DArray<int4> arg_0 : register(u0, space1);
+void textureStore_ea30d2() {
+  uint2 arg_1 = (1u).xx;
+  int arg_2 = 1;
+  int4 arg_3 = (1).xxxx;
+  RWTexture2DArray<int4> v = arg_0;
+  uint2 v_1 = arg_1;
+  int4 v_2 = arg_3;
+  v[uint3(v_1, uint(arg_2))] = v_2;
+}
+
+void fragment_main() {
+  textureStore_ea30d2();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  textureStore_ea30d2();
+}
+
diff --git a/test/tint/builtins/gen/var/textureStore/eb702f.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/textureStore/eb702f.wgsl.expected.ir.dxc.hlsl
index 685a9ee..eee008a 100644
--- a/test/tint/builtins/gen/var/textureStore/eb702f.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureStore/eb702f.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,17 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWTexture3D<float4> arg_0 : register(u0, space1);
+void textureStore_eb702f() {
+  int3 arg_1 = (1).xxx;
+  float4 arg_2 = (1.0f).xxxx;
+  arg_0[arg_1] = arg_2;
+}
+
+void fragment_main() {
+  textureStore_eb702f();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  textureStore_eb702f();
+}
+
diff --git a/test/tint/builtins/gen/var/textureStore/eb702f.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/textureStore/eb702f.wgsl.expected.ir.fxc.hlsl
index 685a9ee..eee008a 100644
--- a/test/tint/builtins/gen/var/textureStore/eb702f.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureStore/eb702f.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,17 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWTexture3D<float4> arg_0 : register(u0, space1);
+void textureStore_eb702f() {
+  int3 arg_1 = (1).xxx;
+  float4 arg_2 = (1.0f).xxxx;
+  arg_0[arg_1] = arg_2;
+}
+
+void fragment_main() {
+  textureStore_eb702f();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  textureStore_eb702f();
+}
+
diff --git a/test/tint/builtins/gen/var/textureStore/eb78b9.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/textureStore/eb78b9.wgsl.expected.ir.dxc.hlsl
index 685a9ee..251d582 100644
--- a/test/tint/builtins/gen/var/textureStore/eb78b9.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureStore/eb78b9.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,17 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWTexture3D<int4> arg_0 : register(u0, space1);
+void textureStore_eb78b9() {
+  int3 arg_1 = (1).xxx;
+  int4 arg_2 = (1).xxxx;
+  arg_0[arg_1] = arg_2;
+}
+
+void fragment_main() {
+  textureStore_eb78b9();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  textureStore_eb78b9();
+}
+
diff --git a/test/tint/builtins/gen/var/textureStore/eb78b9.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/textureStore/eb78b9.wgsl.expected.ir.fxc.hlsl
index 685a9ee..251d582 100644
--- a/test/tint/builtins/gen/var/textureStore/eb78b9.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureStore/eb78b9.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,17 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWTexture3D<int4> arg_0 : register(u0, space1);
+void textureStore_eb78b9() {
+  int3 arg_1 = (1).xxx;
+  int4 arg_2 = (1).xxxx;
+  arg_0[arg_1] = arg_2;
+}
+
+void fragment_main() {
+  textureStore_eb78b9();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  textureStore_eb78b9();
+}
+
diff --git a/test/tint/builtins/gen/var/textureStore/ed6198.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/textureStore/ed6198.wgsl.expected.ir.dxc.hlsl
index 685a9ee..481642b 100644
--- a/test/tint/builtins/gen/var/textureStore/ed6198.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureStore/ed6198.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,17 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWTexture3D<float4> arg_0 : register(u0, space1);
+void textureStore_ed6198() {
+  int3 arg_1 = (1).xxx;
+  float4 arg_2 = (1.0f).xxxx;
+  arg_0[arg_1] = arg_2;
+}
+
+void fragment_main() {
+  textureStore_ed6198();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  textureStore_ed6198();
+}
+
diff --git a/test/tint/builtins/gen/var/textureStore/ed6198.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/textureStore/ed6198.wgsl.expected.ir.fxc.hlsl
index 685a9ee..481642b 100644
--- a/test/tint/builtins/gen/var/textureStore/ed6198.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureStore/ed6198.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,17 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWTexture3D<float4> arg_0 : register(u0, space1);
+void textureStore_ed6198() {
+  int3 arg_1 = (1).xxx;
+  float4 arg_2 = (1.0f).xxxx;
+  arg_0[arg_1] = arg_2;
+}
+
+void fragment_main() {
+  textureStore_ed6198();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  textureStore_ed6198();
+}
+
diff --git a/test/tint/builtins/gen/var/textureStore/ee6acc.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/textureStore/ee6acc.wgsl.expected.ir.dxc.hlsl
index 685a9ee..54e5bc4 100644
--- a/test/tint/builtins/gen/var/textureStore/ee6acc.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureStore/ee6acc.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,17 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWTexture3D<float4> arg_0 : register(u0, space1);
+void textureStore_ee6acc() {
+  int3 arg_1 = (1).xxx;
+  float4 arg_2 = (1.0f).xxxx;
+  arg_0[arg_1] = arg_2;
+}
+
+void fragment_main() {
+  textureStore_ee6acc();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  textureStore_ee6acc();
+}
+
diff --git a/test/tint/builtins/gen/var/textureStore/ee6acc.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/textureStore/ee6acc.wgsl.expected.ir.fxc.hlsl
index 685a9ee..54e5bc4 100644
--- a/test/tint/builtins/gen/var/textureStore/ee6acc.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureStore/ee6acc.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,17 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWTexture3D<float4> arg_0 : register(u0, space1);
+void textureStore_ee6acc() {
+  int3 arg_1 = (1).xxx;
+  float4 arg_2 = (1.0f).xxxx;
+  arg_0[arg_1] = arg_2;
+}
+
+void fragment_main() {
+  textureStore_ee6acc();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  textureStore_ee6acc();
+}
+
diff --git a/test/tint/builtins/gen/var/textureStore/ef9f2f.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/textureStore/ef9f2f.wgsl.expected.ir.dxc.hlsl
index 685a9ee..283f569 100644
--- a/test/tint/builtins/gen/var/textureStore/ef9f2f.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureStore/ef9f2f.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,17 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWTexture3D<uint4> arg_0 : register(u0, space1);
+void textureStore_ef9f2f() {
+  int3 arg_1 = (1).xxx;
+  uint4 arg_2 = (1u).xxxx;
+  arg_0[arg_1] = arg_2;
+}
+
+void fragment_main() {
+  textureStore_ef9f2f();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  textureStore_ef9f2f();
+}
+
diff --git a/test/tint/builtins/gen/var/textureStore/ef9f2f.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/textureStore/ef9f2f.wgsl.expected.ir.fxc.hlsl
index 685a9ee..283f569 100644
--- a/test/tint/builtins/gen/var/textureStore/ef9f2f.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureStore/ef9f2f.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,17 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWTexture3D<uint4> arg_0 : register(u0, space1);
+void textureStore_ef9f2f() {
+  int3 arg_1 = (1).xxx;
+  uint4 arg_2 = (1u).xxxx;
+  arg_0[arg_1] = arg_2;
+}
+
+void fragment_main() {
+  textureStore_ef9f2f();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  textureStore_ef9f2f();
+}
+
diff --git a/test/tint/builtins/gen/var/textureStore/f05928.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/textureStore/f05928.wgsl.expected.ir.dxc.hlsl
index 685a9ee..1b3bf49 100644
--- a/test/tint/builtins/gen/var/textureStore/f05928.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureStore/f05928.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,21 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWTexture2DArray<int4> arg_0 : register(u0, space1);
+void textureStore_f05928() {
+  int2 arg_1 = (1).xx;
+  uint arg_2 = 1u;
+  int4 arg_3 = (1).xxxx;
+  RWTexture2DArray<int4> v = arg_0;
+  int2 v_1 = arg_1;
+  int4 v_2 = arg_3;
+  v[int3(v_1, int(arg_2))] = v_2;
+}
+
+void fragment_main() {
+  textureStore_f05928();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  textureStore_f05928();
+}
+
diff --git a/test/tint/builtins/gen/var/textureStore/f05928.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/textureStore/f05928.wgsl.expected.ir.fxc.hlsl
index 685a9ee..1b3bf49 100644
--- a/test/tint/builtins/gen/var/textureStore/f05928.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureStore/f05928.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,21 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWTexture2DArray<int4> arg_0 : register(u0, space1);
+void textureStore_f05928() {
+  int2 arg_1 = (1).xx;
+  uint arg_2 = 1u;
+  int4 arg_3 = (1).xxxx;
+  RWTexture2DArray<int4> v = arg_0;
+  int2 v_1 = arg_1;
+  int4 v_2 = arg_3;
+  v[int3(v_1, int(arg_2))] = v_2;
+}
+
+void fragment_main() {
+  textureStore_f05928();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  textureStore_f05928();
+}
+
diff --git a/test/tint/builtins/gen/var/textureStore/f1e6d3.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/textureStore/f1e6d3.wgsl.expected.ir.dxc.hlsl
index 685a9ee..c387302 100644
--- a/test/tint/builtins/gen/var/textureStore/f1e6d3.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureStore/f1e6d3.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,17 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWTexture3D<int4> arg_0 : register(u0, space1);
+void textureStore_f1e6d3() {
+  uint3 arg_1 = (1u).xxx;
+  int4 arg_2 = (1).xxxx;
+  arg_0[arg_1] = arg_2;
+}
+
+void fragment_main() {
+  textureStore_f1e6d3();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  textureStore_f1e6d3();
+}
+
diff --git a/test/tint/builtins/gen/var/textureStore/f1e6d3.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/textureStore/f1e6d3.wgsl.expected.ir.fxc.hlsl
index 685a9ee..c387302 100644
--- a/test/tint/builtins/gen/var/textureStore/f1e6d3.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureStore/f1e6d3.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,17 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWTexture3D<int4> arg_0 : register(u0, space1);
+void textureStore_f1e6d3() {
+  uint3 arg_1 = (1u).xxx;
+  int4 arg_2 = (1).xxxx;
+  arg_0[arg_1] = arg_2;
+}
+
+void fragment_main() {
+  textureStore_f1e6d3();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  textureStore_f1e6d3();
+}
+
diff --git a/test/tint/builtins/gen/var/textureStore/f64d69.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/textureStore/f64d69.wgsl.expected.ir.dxc.hlsl
index 685a9ee..4b2ed3f 100644
--- a/test/tint/builtins/gen/var/textureStore/f64d69.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureStore/f64d69.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,17 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWTexture1D<int4> arg_0 : register(u0, space1);
+void textureStore_f64d69() {
+  int arg_1 = 1;
+  int4 arg_2 = (1).xxxx;
+  arg_0[arg_1] = arg_2;
+}
+
+void fragment_main() {
+  textureStore_f64d69();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  textureStore_f64d69();
+}
+
diff --git a/test/tint/builtins/gen/var/textureStore/f64d69.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/textureStore/f64d69.wgsl.expected.ir.fxc.hlsl
index 685a9ee..4b2ed3f 100644
--- a/test/tint/builtins/gen/var/textureStore/f64d69.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureStore/f64d69.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,17 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWTexture1D<int4> arg_0 : register(u0, space1);
+void textureStore_f64d69() {
+  int arg_1 = 1;
+  int4 arg_2 = (1).xxxx;
+  arg_0[arg_1] = arg_2;
+}
+
+void fragment_main() {
+  textureStore_f64d69();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  textureStore_f64d69();
+}
+
diff --git a/test/tint/builtins/gen/var/textureStore/f6f392.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/textureStore/f6f392.wgsl.expected.ir.dxc.hlsl
index 685a9ee..b540cad 100644
--- a/test/tint/builtins/gen/var/textureStore/f6f392.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureStore/f6f392.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,21 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWTexture2DArray<float4> arg_0 : register(u0, space1);
+void textureStore_f6f392() {
+  uint2 arg_1 = (1u).xx;
+  int arg_2 = 1;
+  float4 arg_3 = (1.0f).xxxx;
+  RWTexture2DArray<float4> v = arg_0;
+  uint2 v_1 = arg_1;
+  float4 v_2 = arg_3;
+  v[uint3(v_1, uint(arg_2))] = v_2;
+}
+
+void fragment_main() {
+  textureStore_f6f392();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  textureStore_f6f392();
+}
+
diff --git a/test/tint/builtins/gen/var/textureStore/f6f392.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/textureStore/f6f392.wgsl.expected.ir.fxc.hlsl
index 685a9ee..b540cad 100644
--- a/test/tint/builtins/gen/var/textureStore/f6f392.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureStore/f6f392.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,21 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWTexture2DArray<float4> arg_0 : register(u0, space1);
+void textureStore_f6f392() {
+  uint2 arg_1 = (1u).xx;
+  int arg_2 = 1;
+  float4 arg_3 = (1.0f).xxxx;
+  RWTexture2DArray<float4> v = arg_0;
+  uint2 v_1 = arg_1;
+  float4 v_2 = arg_3;
+  v[uint3(v_1, uint(arg_2))] = v_2;
+}
+
+void fragment_main() {
+  textureStore_f6f392();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  textureStore_f6f392();
+}
+
diff --git a/test/tint/builtins/gen/var/textureStore/f7b0ab.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/textureStore/f7b0ab.wgsl.expected.ir.dxc.hlsl
index 685a9ee..c50bee4 100644
--- a/test/tint/builtins/gen/var/textureStore/f7b0ab.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureStore/f7b0ab.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,21 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWTexture2DArray<float4> arg_0 : register(u0, space1);
+void textureStore_f7b0ab() {
+  uint2 arg_1 = (1u).xx;
+  uint arg_2 = 1u;
+  float4 arg_3 = (1.0f).xxxx;
+  RWTexture2DArray<float4> v = arg_0;
+  uint2 v_1 = arg_1;
+  float4 v_2 = arg_3;
+  v[uint3(v_1, uint(arg_2))] = v_2;
+}
+
+void fragment_main() {
+  textureStore_f7b0ab();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  textureStore_f7b0ab();
+}
+
diff --git a/test/tint/builtins/gen/var/textureStore/f7b0ab.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/textureStore/f7b0ab.wgsl.expected.ir.fxc.hlsl
index 685a9ee..c50bee4 100644
--- a/test/tint/builtins/gen/var/textureStore/f7b0ab.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureStore/f7b0ab.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,21 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWTexture2DArray<float4> arg_0 : register(u0, space1);
+void textureStore_f7b0ab() {
+  uint2 arg_1 = (1u).xx;
+  uint arg_2 = 1u;
+  float4 arg_3 = (1.0f).xxxx;
+  RWTexture2DArray<float4> v = arg_0;
+  uint2 v_1 = arg_1;
+  float4 v_2 = arg_3;
+  v[uint3(v_1, uint(arg_2))] = v_2;
+}
+
+void fragment_main() {
+  textureStore_f7b0ab();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  textureStore_f7b0ab();
+}
+
diff --git a/test/tint/builtins/gen/var/textureStore/f8aaf9.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/textureStore/f8aaf9.wgsl.expected.ir.dxc.hlsl
index 685a9ee..b73c0cc 100644
--- a/test/tint/builtins/gen/var/textureStore/f8aaf9.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureStore/f8aaf9.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,21 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWTexture2DArray<int4> arg_0 : register(u0, space1);
+void textureStore_f8aaf9() {
+  int2 arg_1 = (1).xx;
+  int arg_2 = 1;
+  int4 arg_3 = (1).xxxx;
+  RWTexture2DArray<int4> v = arg_0;
+  int2 v_1 = arg_1;
+  int4 v_2 = arg_3;
+  v[int3(v_1, int(arg_2))] = v_2;
+}
+
+void fragment_main() {
+  textureStore_f8aaf9();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  textureStore_f8aaf9();
+}
+
diff --git a/test/tint/builtins/gen/var/textureStore/f8aaf9.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/textureStore/f8aaf9.wgsl.expected.ir.fxc.hlsl
index 685a9ee..b73c0cc 100644
--- a/test/tint/builtins/gen/var/textureStore/f8aaf9.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureStore/f8aaf9.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,21 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWTexture2DArray<int4> arg_0 : register(u0, space1);
+void textureStore_f8aaf9() {
+  int2 arg_1 = (1).xx;
+  int arg_2 = 1;
+  int4 arg_3 = (1).xxxx;
+  RWTexture2DArray<int4> v = arg_0;
+  int2 v_1 = arg_1;
+  int4 v_2 = arg_3;
+  v[int3(v_1, int(arg_2))] = v_2;
+}
+
+void fragment_main() {
+  textureStore_f8aaf9();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  textureStore_f8aaf9();
+}
+
diff --git a/test/tint/builtins/gen/var/textureStore/f8dead.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/textureStore/f8dead.wgsl.expected.ir.dxc.hlsl
index 685a9ee..b8c29a6 100644
--- a/test/tint/builtins/gen/var/textureStore/f8dead.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureStore/f8dead.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,17 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWTexture3D<uint4> arg_0 : register(u0, space1);
+void textureStore_f8dead() {
+  int3 arg_1 = (1).xxx;
+  uint4 arg_2 = (1u).xxxx;
+  arg_0[arg_1] = arg_2;
+}
+
+void fragment_main() {
+  textureStore_f8dead();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  textureStore_f8dead();
+}
+
diff --git a/test/tint/builtins/gen/var/textureStore/f8dead.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/textureStore/f8dead.wgsl.expected.ir.fxc.hlsl
index 685a9ee..b8c29a6 100644
--- a/test/tint/builtins/gen/var/textureStore/f8dead.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureStore/f8dead.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,17 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWTexture3D<uint4> arg_0 : register(u0, space1);
+void textureStore_f8dead() {
+  int3 arg_1 = (1).xxx;
+  uint4 arg_2 = (1u).xxxx;
+  arg_0[arg_1] = arg_2;
+}
+
+void fragment_main() {
+  textureStore_f8dead();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  textureStore_f8dead();
+}
+
diff --git a/test/tint/builtins/gen/var/textureStore/f975a0.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/textureStore/f975a0.wgsl.expected.ir.dxc.hlsl
index 685a9ee..21ddf65 100644
--- a/test/tint/builtins/gen/var/textureStore/f975a0.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureStore/f975a0.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,17 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWTexture2D<float4> arg_0 : register(u0, space1);
+void textureStore_f975a0() {
+  int2 arg_1 = (1).xx;
+  float4 arg_2 = (1.0f).xxxx;
+  arg_0[arg_1] = arg_2;
+}
+
+void fragment_main() {
+  textureStore_f975a0();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  textureStore_f975a0();
+}
+
diff --git a/test/tint/builtins/gen/var/textureStore/f975a0.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/textureStore/f975a0.wgsl.expected.ir.fxc.hlsl
index 685a9ee..21ddf65 100644
--- a/test/tint/builtins/gen/var/textureStore/f975a0.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureStore/f975a0.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,17 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWTexture2D<float4> arg_0 : register(u0, space1);
+void textureStore_f975a0() {
+  int2 arg_1 = (1).xx;
+  float4 arg_2 = (1.0f).xxxx;
+  arg_0[arg_1] = arg_2;
+}
+
+void fragment_main() {
+  textureStore_f975a0();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  textureStore_f975a0();
+}
+
diff --git a/test/tint/builtins/gen/var/textureStore/f9be83.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/textureStore/f9be83.wgsl.expected.ir.dxc.hlsl
index 685a9ee..18a4d3b 100644
--- a/test/tint/builtins/gen/var/textureStore/f9be83.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureStore/f9be83.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,21 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWTexture2DArray<int4> arg_0 : register(u0, space1);
+void textureStore_f9be83() {
+  int2 arg_1 = (1).xx;
+  int arg_2 = 1;
+  int4 arg_3 = (1).xxxx;
+  RWTexture2DArray<int4> v = arg_0;
+  int2 v_1 = arg_1;
+  int4 v_2 = arg_3;
+  v[int3(v_1, int(arg_2))] = v_2;
+}
+
+void fragment_main() {
+  textureStore_f9be83();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  textureStore_f9be83();
+}
+
diff --git a/test/tint/builtins/gen/var/textureStore/f9be83.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/textureStore/f9be83.wgsl.expected.ir.fxc.hlsl
index 685a9ee..18a4d3b 100644
--- a/test/tint/builtins/gen/var/textureStore/f9be83.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureStore/f9be83.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,21 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWTexture2DArray<int4> arg_0 : register(u0, space1);
+void textureStore_f9be83() {
+  int2 arg_1 = (1).xx;
+  int arg_2 = 1;
+  int4 arg_3 = (1).xxxx;
+  RWTexture2DArray<int4> v = arg_0;
+  int2 v_1 = arg_1;
+  int4 v_2 = arg_3;
+  v[int3(v_1, int(arg_2))] = v_2;
+}
+
+void fragment_main() {
+  textureStore_f9be83();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  textureStore_f9be83();
+}
+
diff --git a/test/tint/builtins/gen/var/textureStore/fb9a8f.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/textureStore/fb9a8f.wgsl.expected.ir.dxc.hlsl
index 685a9ee..18060e0 100644
--- a/test/tint/builtins/gen/var/textureStore/fb9a8f.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureStore/fb9a8f.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,17 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWTexture1D<uint4> arg_0 : register(u0, space1);
+void textureStore_fb9a8f() {
+  int arg_1 = 1;
+  uint4 arg_2 = (1u).xxxx;
+  arg_0[arg_1] = arg_2;
+}
+
+void fragment_main() {
+  textureStore_fb9a8f();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  textureStore_fb9a8f();
+}
+
diff --git a/test/tint/builtins/gen/var/textureStore/fb9a8f.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/textureStore/fb9a8f.wgsl.expected.ir.fxc.hlsl
index 685a9ee..18060e0 100644
--- a/test/tint/builtins/gen/var/textureStore/fb9a8f.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureStore/fb9a8f.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,17 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWTexture1D<uint4> arg_0 : register(u0, space1);
+void textureStore_fb9a8f() {
+  int arg_1 = 1;
+  uint4 arg_2 = (1u).xxxx;
+  arg_0[arg_1] = arg_2;
+}
+
+void fragment_main() {
+  textureStore_fb9a8f();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  textureStore_fb9a8f();
+}
+
diff --git a/test/tint/builtins/gen/var/textureStore/fbf53f.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/textureStore/fbf53f.wgsl.expected.ir.dxc.hlsl
index 685a9ee..fb21740 100644
--- a/test/tint/builtins/gen/var/textureStore/fbf53f.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureStore/fbf53f.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,21 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWTexture2DArray<int4> arg_0 : register(u0, space1);
+void textureStore_fbf53f() {
+  int2 arg_1 = (1).xx;
+  int arg_2 = 1;
+  int4 arg_3 = (1).xxxx;
+  RWTexture2DArray<int4> v = arg_0;
+  int2 v_1 = arg_1;
+  int4 v_2 = arg_3;
+  v[int3(v_1, int(arg_2))] = v_2;
+}
+
+void fragment_main() {
+  textureStore_fbf53f();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  textureStore_fbf53f();
+}
+
diff --git a/test/tint/builtins/gen/var/textureStore/fbf53f.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/textureStore/fbf53f.wgsl.expected.ir.fxc.hlsl
index 685a9ee..fb21740 100644
--- a/test/tint/builtins/gen/var/textureStore/fbf53f.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureStore/fbf53f.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,21 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWTexture2DArray<int4> arg_0 : register(u0, space1);
+void textureStore_fbf53f() {
+  int2 arg_1 = (1).xx;
+  int arg_2 = 1;
+  int4 arg_3 = (1).xxxx;
+  RWTexture2DArray<int4> v = arg_0;
+  int2 v_1 = arg_1;
+  int4 v_2 = arg_3;
+  v[int3(v_1, int(arg_2))] = v_2;
+}
+
+void fragment_main() {
+  textureStore_fbf53f();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  textureStore_fbf53f();
+}
+
diff --git a/test/tint/builtins/gen/var/textureStore/fc916e.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/textureStore/fc916e.wgsl.expected.ir.dxc.hlsl
index 685a9ee..73b772d 100644
--- a/test/tint/builtins/gen/var/textureStore/fc916e.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureStore/fc916e.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,21 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWTexture2DArray<uint4> arg_0 : register(u0, space1);
+void textureStore_fc916e() {
+  uint2 arg_1 = (1u).xx;
+  int arg_2 = 1;
+  uint4 arg_3 = (1u).xxxx;
+  RWTexture2DArray<uint4> v = arg_0;
+  uint2 v_1 = arg_1;
+  uint4 v_2 = arg_3;
+  v[uint3(v_1, uint(arg_2))] = v_2;
+}
+
+void fragment_main() {
+  textureStore_fc916e();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  textureStore_fc916e();
+}
+
diff --git a/test/tint/builtins/gen/var/textureStore/fc916e.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/textureStore/fc916e.wgsl.expected.ir.fxc.hlsl
index 685a9ee..73b772d 100644
--- a/test/tint/builtins/gen/var/textureStore/fc916e.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureStore/fc916e.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,21 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWTexture2DArray<uint4> arg_0 : register(u0, space1);
+void textureStore_fc916e() {
+  uint2 arg_1 = (1u).xx;
+  int arg_2 = 1;
+  uint4 arg_3 = (1u).xxxx;
+  RWTexture2DArray<uint4> v = arg_0;
+  uint2 v_1 = arg_1;
+  uint4 v_2 = arg_3;
+  v[uint3(v_1, uint(arg_2))] = v_2;
+}
+
+void fragment_main() {
+  textureStore_fc916e();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  textureStore_fc916e();
+}
+
diff --git a/test/tint/builtins/gen/var/textureStore/fcbe66.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/textureStore/fcbe66.wgsl.expected.ir.dxc.hlsl
index 685a9ee..4ba7207 100644
--- a/test/tint/builtins/gen/var/textureStore/fcbe66.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureStore/fcbe66.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,17 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWTexture3D<float4> arg_0 : register(u0, space1);
+void textureStore_fcbe66() {
+  uint3 arg_1 = (1u).xxx;
+  float4 arg_2 = (1.0f).xxxx;
+  arg_0[arg_1] = arg_2;
+}
+
+void fragment_main() {
+  textureStore_fcbe66();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  textureStore_fcbe66();
+}
+
diff --git a/test/tint/builtins/gen/var/textureStore/fcbe66.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/textureStore/fcbe66.wgsl.expected.ir.fxc.hlsl
index 685a9ee..4ba7207 100644
--- a/test/tint/builtins/gen/var/textureStore/fcbe66.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureStore/fcbe66.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,17 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWTexture3D<float4> arg_0 : register(u0, space1);
+void textureStore_fcbe66() {
+  uint3 arg_1 = (1u).xxx;
+  float4 arg_2 = (1.0f).xxxx;
+  arg_0[arg_1] = arg_2;
+}
+
+void fragment_main() {
+  textureStore_fcbe66();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  textureStore_fcbe66();
+}
+
diff --git a/test/tint/builtins/gen/var/textureStore/fd350c.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/textureStore/fd350c.wgsl.expected.ir.dxc.hlsl
index 685a9ee..bdeef33 100644
--- a/test/tint/builtins/gen/var/textureStore/fd350c.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureStore/fd350c.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,21 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWTexture2DArray<uint4> arg_0 : register(u0, space1);
+void textureStore_fd350c() {
+  int2 arg_1 = (1).xx;
+  uint arg_2 = 1u;
+  uint4 arg_3 = (1u).xxxx;
+  RWTexture2DArray<uint4> v = arg_0;
+  int2 v_1 = arg_1;
+  uint4 v_2 = arg_3;
+  v[int3(v_1, int(arg_2))] = v_2;
+}
+
+void fragment_main() {
+  textureStore_fd350c();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  textureStore_fd350c();
+}
+
diff --git a/test/tint/builtins/gen/var/textureStore/fd350c.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/textureStore/fd350c.wgsl.expected.ir.fxc.hlsl
index 685a9ee..bdeef33 100644
--- a/test/tint/builtins/gen/var/textureStore/fd350c.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureStore/fd350c.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,21 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWTexture2DArray<uint4> arg_0 : register(u0, space1);
+void textureStore_fd350c() {
+  int2 arg_1 = (1).xx;
+  uint arg_2 = 1u;
+  uint4 arg_3 = (1u).xxxx;
+  RWTexture2DArray<uint4> v = arg_0;
+  int2 v_1 = arg_1;
+  uint4 v_2 = arg_3;
+  v[int3(v_1, int(arg_2))] = v_2;
+}
+
+void fragment_main() {
+  textureStore_fd350c();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  textureStore_fd350c();
+}
+
diff --git a/test/tint/builtins/gen/var/textureStore/ff23b3.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/textureStore/ff23b3.wgsl.expected.ir.dxc.hlsl
index 685a9ee..847e1a5 100644
--- a/test/tint/builtins/gen/var/textureStore/ff23b3.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureStore/ff23b3.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,17 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWTexture1D<uint4> arg_0 : register(u0, space1);
+void textureStore_ff23b3() {
+  int arg_1 = 1;
+  uint4 arg_2 = (1u).xxxx;
+  arg_0[arg_1] = arg_2;
+}
+
+void fragment_main() {
+  textureStore_ff23b3();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  textureStore_ff23b3();
+}
+
diff --git a/test/tint/builtins/gen/var/textureStore/ff23b3.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/textureStore/ff23b3.wgsl.expected.ir.fxc.hlsl
index 685a9ee..847e1a5 100644
--- a/test/tint/builtins/gen/var/textureStore/ff23b3.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureStore/ff23b3.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,17 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWTexture1D<uint4> arg_0 : register(u0, space1);
+void textureStore_ff23b3() {
+  int arg_1 = 1;
+  uint4 arg_2 = (1u).xxxx;
+  arg_0[arg_1] = arg_2;
+}
+
+void fragment_main() {
+  textureStore_ff23b3();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  textureStore_ff23b3();
+}
+
diff --git a/test/tint/builtins/gen/var/transpose/06794e.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/transpose/06794e.wgsl.expected.ir.dxc.hlsl
index ddf0424..79a6ea2 100644
--- a/test/tint/builtins/gen/var/transpose/06794e.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/transpose/06794e.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,43 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  int prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: select
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation int VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+int transpose_06794e() {
+  matrix<float16_t, 3, 3> arg_0 = matrix<float16_t, 3, 3>((float16_t(1.0h)).xxx, (float16_t(1.0h)).xxx, (float16_t(1.0h)).xxx);
+  matrix<float16_t, 3, 3> res = transpose(arg_0);
+  return (((res[0].x == float16_t(0.0h))) ? (1) : (0));
+}
+
+void fragment_main() {
+  prevent_dce.Store(0u, asuint(transpose_06794e()));
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store(0u, asuint(transpose_06794e()));
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = transpose_06794e();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
diff --git a/test/tint/builtins/gen/var/transpose/06794e.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/transpose/06794e.wgsl.expected.ir.fxc.hlsl
index ddf0424..c6866df 100644
--- a/test/tint/builtins/gen/var/transpose/06794e.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/transpose/06794e.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,50 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: select
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct VertexOutput {
+  float4 pos;
+  int prevent_dce;
+};
+
+struct vertex_main_outputs {
+  nointerpolation int VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+int transpose_06794e() {
+  matrix<float16_t, 3, 3> arg_0 = matrix<float16_t, 3, 3>((float16_t(1.0h)).xxx, (float16_t(1.0h)).xxx, (float16_t(1.0h)).xxx);
+  matrix<float16_t, 3, 3> res = transpose(arg_0);
+  return (((res[0].x == float16_t(0.0h))) ? (1) : (0));
+}
+
+void fragment_main() {
+  prevent_dce.Store(0u, asuint(transpose_06794e()));
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store(0u, asuint(transpose_06794e()));
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = transpose_06794e();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
+FXC validation failure:
+c:\src\dawn\Shader@0x0000017437987DF0(14,10-18): error X3000: syntax error: unexpected token 'float16_t'
+c:\src\dawn\Shader@0x0000017437987DF0(15,10-18): error X3000: syntax error: unexpected token 'float16_t'
+c:\src\dawn\Shader@0x0000017437987DF0(16,13-15): error X3004: undeclared identifier 'res'
+
diff --git a/test/tint/builtins/gen/var/transpose/2585cd.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/transpose/2585cd.wgsl.expected.ir.dxc.hlsl
index ddf0424..04e5539 100644
--- a/test/tint/builtins/gen/var/transpose/2585cd.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/transpose/2585cd.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,43 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  int prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: select
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation int VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+int transpose_2585cd() {
+  float4x3 arg_0 = float4x3((1.0f).xxx, (1.0f).xxx, (1.0f).xxx, (1.0f).xxx);
+  float3x4 res = transpose(arg_0);
+  return (((res[0].x == 0.0f)) ? (1) : (0));
+}
+
+void fragment_main() {
+  prevent_dce.Store(0u, asuint(transpose_2585cd()));
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store(0u, asuint(transpose_2585cd()));
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = transpose_2585cd();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
diff --git a/test/tint/builtins/gen/var/transpose/2585cd.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/transpose/2585cd.wgsl.expected.ir.fxc.hlsl
index ddf0424..04e5539 100644
--- a/test/tint/builtins/gen/var/transpose/2585cd.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/transpose/2585cd.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,43 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  int prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: select
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation int VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+int transpose_2585cd() {
+  float4x3 arg_0 = float4x3((1.0f).xxx, (1.0f).xxx, (1.0f).xxx, (1.0f).xxx);
+  float3x4 res = transpose(arg_0);
+  return (((res[0].x == 0.0f)) ? (1) : (0));
+}
+
+void fragment_main() {
+  prevent_dce.Store(0u, asuint(transpose_2585cd()));
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store(0u, asuint(transpose_2585cd()));
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = transpose_2585cd();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
diff --git a/test/tint/builtins/gen/var/transpose/31d679.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/transpose/31d679.wgsl.expected.ir.dxc.hlsl
index ddf0424..f18b606 100644
--- a/test/tint/builtins/gen/var/transpose/31d679.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/transpose/31d679.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,43 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  int prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: select
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation int VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+int transpose_31d679() {
+  float2x2 arg_0 = float2x2((1.0f).xx, (1.0f).xx);
+  float2x2 res = transpose(arg_0);
+  return (((res[0].x == 0.0f)) ? (1) : (0));
+}
+
+void fragment_main() {
+  prevent_dce.Store(0u, asuint(transpose_31d679()));
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store(0u, asuint(transpose_31d679()));
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = transpose_31d679();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
diff --git a/test/tint/builtins/gen/var/transpose/31d679.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/transpose/31d679.wgsl.expected.ir.fxc.hlsl
index ddf0424..f18b606 100644
--- a/test/tint/builtins/gen/var/transpose/31d679.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/transpose/31d679.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,43 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  int prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: select
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation int VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+int transpose_31d679() {
+  float2x2 arg_0 = float2x2((1.0f).xx, (1.0f).xx);
+  float2x2 res = transpose(arg_0);
+  return (((res[0].x == 0.0f)) ? (1) : (0));
+}
+
+void fragment_main() {
+  prevent_dce.Store(0u, asuint(transpose_31d679()));
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store(0u, asuint(transpose_31d679()));
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = transpose_31d679();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
diff --git a/test/tint/builtins/gen/var/transpose/31e37e.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/transpose/31e37e.wgsl.expected.ir.dxc.hlsl
index ddf0424..4d3c911 100644
--- a/test/tint/builtins/gen/var/transpose/31e37e.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/transpose/31e37e.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,43 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  int prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: select
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation int VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+int transpose_31e37e() {
+  float4x2 arg_0 = float4x2((1.0f).xx, (1.0f).xx, (1.0f).xx, (1.0f).xx);
+  float2x4 res = transpose(arg_0);
+  return (((res[0].x == 0.0f)) ? (1) : (0));
+}
+
+void fragment_main() {
+  prevent_dce.Store(0u, asuint(transpose_31e37e()));
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store(0u, asuint(transpose_31e37e()));
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = transpose_31e37e();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
diff --git a/test/tint/builtins/gen/var/transpose/31e37e.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/transpose/31e37e.wgsl.expected.ir.fxc.hlsl
index ddf0424..4d3c911 100644
--- a/test/tint/builtins/gen/var/transpose/31e37e.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/transpose/31e37e.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,43 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  int prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: select
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation int VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+int transpose_31e37e() {
+  float4x2 arg_0 = float4x2((1.0f).xx, (1.0f).xx, (1.0f).xx, (1.0f).xx);
+  float2x4 res = transpose(arg_0);
+  return (((res[0].x == 0.0f)) ? (1) : (0));
+}
+
+void fragment_main() {
+  prevent_dce.Store(0u, asuint(transpose_31e37e()));
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store(0u, asuint(transpose_31e37e()));
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = transpose_31e37e();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
diff --git a/test/tint/builtins/gen/var/transpose/32dd64.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/transpose/32dd64.wgsl.expected.ir.dxc.hlsl
index 0ba40c6..0f08735 100644
--- a/test/tint/builtins/gen/var/transpose/32dd64.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/transpose/32dd64.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,36 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+void transpose_32dd64() {
+  float4x3 res = float4x3((1.0f).xxx, (1.0f).xxx, (1.0f).xxx, (1.0f).xxx);
+}
+
+void fragment_main() {
+  transpose_32dd64();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  transpose_32dd64();
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  transpose_32dd64();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  vertex_main_outputs v_2 = {v_1.pos};
+  return v_2;
+}
+
diff --git a/test/tint/builtins/gen/var/transpose/32dd64.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/transpose/32dd64.wgsl.expected.ir.fxc.hlsl
index 0ba40c6..0f08735 100644
--- a/test/tint/builtins/gen/var/transpose/32dd64.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/transpose/32dd64.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,36 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+void transpose_32dd64() {
+  float4x3 res = float4x3((1.0f).xxx, (1.0f).xxx, (1.0f).xxx, (1.0f).xxx);
+}
+
+void fragment_main() {
+  transpose_32dd64();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  transpose_32dd64();
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  transpose_32dd64();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  vertex_main_outputs v_2 = {v_1.pos};
+  return v_2;
+}
+
diff --git a/test/tint/builtins/gen/var/transpose/4ce359.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/transpose/4ce359.wgsl.expected.ir.dxc.hlsl
index ddf0424..90cf373 100644
--- a/test/tint/builtins/gen/var/transpose/4ce359.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/transpose/4ce359.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,43 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  int prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: select
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation int VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+int transpose_4ce359() {
+  float2x4 arg_0 = float2x4((1.0f).xxxx, (1.0f).xxxx);
+  float4x2 res = transpose(arg_0);
+  return (((res[0].x == 0.0f)) ? (1) : (0));
+}
+
+void fragment_main() {
+  prevent_dce.Store(0u, asuint(transpose_4ce359()));
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store(0u, asuint(transpose_4ce359()));
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = transpose_4ce359();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
diff --git a/test/tint/builtins/gen/var/transpose/4ce359.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/transpose/4ce359.wgsl.expected.ir.fxc.hlsl
index ddf0424..90cf373 100644
--- a/test/tint/builtins/gen/var/transpose/4ce359.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/transpose/4ce359.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,43 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  int prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: select
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation int VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+int transpose_4ce359() {
+  float2x4 arg_0 = float2x4((1.0f).xxxx, (1.0f).xxxx);
+  float4x2 res = transpose(arg_0);
+  return (((res[0].x == 0.0f)) ? (1) : (0));
+}
+
+void fragment_main() {
+  prevent_dce.Store(0u, asuint(transpose_4ce359()));
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store(0u, asuint(transpose_4ce359()));
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = transpose_4ce359();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
diff --git a/test/tint/builtins/gen/var/transpose/4dc9a1.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/transpose/4dc9a1.wgsl.expected.ir.dxc.hlsl
index ddf0424..8d81fe3 100644
--- a/test/tint/builtins/gen/var/transpose/4dc9a1.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/transpose/4dc9a1.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,43 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  int prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: select
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation int VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+int transpose_4dc9a1() {
+  float2x3 arg_0 = float2x3((1.0f).xxx, (1.0f).xxx);
+  float3x2 res = transpose(arg_0);
+  return (((res[0].x == 0.0f)) ? (1) : (0));
+}
+
+void fragment_main() {
+  prevent_dce.Store(0u, asuint(transpose_4dc9a1()));
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store(0u, asuint(transpose_4dc9a1()));
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = transpose_4dc9a1();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
diff --git a/test/tint/builtins/gen/var/transpose/4dc9a1.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/transpose/4dc9a1.wgsl.expected.ir.fxc.hlsl
index ddf0424..8d81fe3 100644
--- a/test/tint/builtins/gen/var/transpose/4dc9a1.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/transpose/4dc9a1.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,43 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  int prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: select
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation int VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+int transpose_4dc9a1() {
+  float2x3 arg_0 = float2x3((1.0f).xxx, (1.0f).xxx);
+  float3x2 res = transpose(arg_0);
+  return (((res[0].x == 0.0f)) ? (1) : (0));
+}
+
+void fragment_main() {
+  prevent_dce.Store(0u, asuint(transpose_4dc9a1()));
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store(0u, asuint(transpose_4dc9a1()));
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = transpose_4dc9a1();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
diff --git a/test/tint/builtins/gen/var/transpose/553e90.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/transpose/553e90.wgsl.expected.ir.dxc.hlsl
index 0ba40c6..d9cf2ac 100644
--- a/test/tint/builtins/gen/var/transpose/553e90.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/transpose/553e90.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,36 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+void transpose_553e90() {
+  float2x4 res = float2x4((1.0f).xxxx, (1.0f).xxxx);
+}
+
+void fragment_main() {
+  transpose_553e90();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  transpose_553e90();
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  transpose_553e90();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  vertex_main_outputs v_2 = {v_1.pos};
+  return v_2;
+}
+
diff --git a/test/tint/builtins/gen/var/transpose/553e90.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/transpose/553e90.wgsl.expected.ir.fxc.hlsl
index 0ba40c6..d9cf2ac 100644
--- a/test/tint/builtins/gen/var/transpose/553e90.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/transpose/553e90.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,36 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+void transpose_553e90() {
+  float2x4 res = float2x4((1.0f).xxxx, (1.0f).xxxx);
+}
+
+void fragment_main() {
+  transpose_553e90();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  transpose_553e90();
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  transpose_553e90();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  vertex_main_outputs v_2 = {v_1.pos};
+  return v_2;
+}
+
diff --git a/test/tint/builtins/gen/var/transpose/5c133c.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/transpose/5c133c.wgsl.expected.ir.dxc.hlsl
index 0ba40c6..3a33122 100644
--- a/test/tint/builtins/gen/var/transpose/5c133c.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/transpose/5c133c.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,36 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+void transpose_5c133c() {
+  float3x4 res = float3x4((1.0f).xxxx, (1.0f).xxxx, (1.0f).xxxx);
+}
+
+void fragment_main() {
+  transpose_5c133c();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  transpose_5c133c();
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  transpose_5c133c();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  vertex_main_outputs v_2 = {v_1.pos};
+  return v_2;
+}
+
diff --git a/test/tint/builtins/gen/var/transpose/5c133c.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/transpose/5c133c.wgsl.expected.ir.fxc.hlsl
index 0ba40c6..3a33122 100644
--- a/test/tint/builtins/gen/var/transpose/5c133c.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/transpose/5c133c.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,36 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+void transpose_5c133c() {
+  float3x4 res = float3x4((1.0f).xxxx, (1.0f).xxxx, (1.0f).xxxx);
+}
+
+void fragment_main() {
+  transpose_5c133c();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  transpose_5c133c();
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  transpose_5c133c();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  vertex_main_outputs v_2 = {v_1.pos};
+  return v_2;
+}
+
diff --git a/test/tint/builtins/gen/var/transpose/5edd96.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/transpose/5edd96.wgsl.expected.ir.dxc.hlsl
index ddf0424..50fa756 100644
--- a/test/tint/builtins/gen/var/transpose/5edd96.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/transpose/5edd96.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,43 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  int prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: select
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation int VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+int transpose_5edd96() {
+  matrix<float16_t, 4, 2> arg_0 = matrix<float16_t, 4, 2>((float16_t(1.0h)).xx, (float16_t(1.0h)).xx, (float16_t(1.0h)).xx, (float16_t(1.0h)).xx);
+  matrix<float16_t, 2, 4> res = transpose(arg_0);
+  return (((res[0].x == float16_t(0.0h))) ? (1) : (0));
+}
+
+void fragment_main() {
+  prevent_dce.Store(0u, asuint(transpose_5edd96()));
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store(0u, asuint(transpose_5edd96()));
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = transpose_5edd96();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
diff --git a/test/tint/builtins/gen/var/transpose/5edd96.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/transpose/5edd96.wgsl.expected.ir.fxc.hlsl
index ddf0424..7a82e9c 100644
--- a/test/tint/builtins/gen/var/transpose/5edd96.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/transpose/5edd96.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,50 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: select
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct VertexOutput {
+  float4 pos;
+  int prevent_dce;
+};
+
+struct vertex_main_outputs {
+  nointerpolation int VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+int transpose_5edd96() {
+  matrix<float16_t, 4, 2> arg_0 = matrix<float16_t, 4, 2>((float16_t(1.0h)).xx, (float16_t(1.0h)).xx, (float16_t(1.0h)).xx, (float16_t(1.0h)).xx);
+  matrix<float16_t, 2, 4> res = transpose(arg_0);
+  return (((res[0].x == float16_t(0.0h))) ? (1) : (0));
+}
+
+void fragment_main() {
+  prevent_dce.Store(0u, asuint(transpose_5edd96()));
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store(0u, asuint(transpose_5edd96()));
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = transpose_5edd96();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
+FXC validation failure:
+c:\src\dawn\Shader@0x00000247251FA590(14,10-18): error X3000: syntax error: unexpected token 'float16_t'
+c:\src\dawn\Shader@0x00000247251FA590(15,10-18): error X3000: syntax error: unexpected token 'float16_t'
+c:\src\dawn\Shader@0x00000247251FA590(16,13-15): error X3004: undeclared identifier 'res'
+
diff --git a/test/tint/builtins/gen/var/transpose/5f36bf.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/transpose/5f36bf.wgsl.expected.ir.dxc.hlsl
index ddf0424..a1ade30 100644
--- a/test/tint/builtins/gen/var/transpose/5f36bf.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/transpose/5f36bf.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,43 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  int prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: select
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation int VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+int transpose_5f36bf() {
+  matrix<float16_t, 4, 3> arg_0 = matrix<float16_t, 4, 3>((float16_t(1.0h)).xxx, (float16_t(1.0h)).xxx, (float16_t(1.0h)).xxx, (float16_t(1.0h)).xxx);
+  matrix<float16_t, 3, 4> res = transpose(arg_0);
+  return (((res[0].x == float16_t(0.0h))) ? (1) : (0));
+}
+
+void fragment_main() {
+  prevent_dce.Store(0u, asuint(transpose_5f36bf()));
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store(0u, asuint(transpose_5f36bf()));
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = transpose_5f36bf();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
diff --git a/test/tint/builtins/gen/var/transpose/5f36bf.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/transpose/5f36bf.wgsl.expected.ir.fxc.hlsl
index ddf0424..88414e4 100644
--- a/test/tint/builtins/gen/var/transpose/5f36bf.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/transpose/5f36bf.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,50 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: select
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct VertexOutput {
+  float4 pos;
+  int prevent_dce;
+};
+
+struct vertex_main_outputs {
+  nointerpolation int VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+int transpose_5f36bf() {
+  matrix<float16_t, 4, 3> arg_0 = matrix<float16_t, 4, 3>((float16_t(1.0h)).xxx, (float16_t(1.0h)).xxx, (float16_t(1.0h)).xxx, (float16_t(1.0h)).xxx);
+  matrix<float16_t, 3, 4> res = transpose(arg_0);
+  return (((res[0].x == float16_t(0.0h))) ? (1) : (0));
+}
+
+void fragment_main() {
+  prevent_dce.Store(0u, asuint(transpose_5f36bf()));
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store(0u, asuint(transpose_5f36bf()));
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = transpose_5f36bf();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
+FXC validation failure:
+c:\src\dawn\Shader@0x000001EE860E5A70(14,10-18): error X3000: syntax error: unexpected token 'float16_t'
+c:\src\dawn\Shader@0x000001EE860E5A70(15,10-18): error X3000: syntax error: unexpected token 'float16_t'
+c:\src\dawn\Shader@0x000001EE860E5A70(16,13-15): error X3004: undeclared identifier 'res'
+
diff --git a/test/tint/builtins/gen/var/transpose/66fce8.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/transpose/66fce8.wgsl.expected.ir.dxc.hlsl
index 0ba40c6..cf0eb69 100644
--- a/test/tint/builtins/gen/var/transpose/66fce8.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/transpose/66fce8.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,36 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+void transpose_66fce8() {
+  float3x3 res = float3x3((1.0f).xxx, (1.0f).xxx, (1.0f).xxx);
+}
+
+void fragment_main() {
+  transpose_66fce8();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  transpose_66fce8();
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  transpose_66fce8();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  vertex_main_outputs v_2 = {v_1.pos};
+  return v_2;
+}
+
diff --git a/test/tint/builtins/gen/var/transpose/66fce8.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/transpose/66fce8.wgsl.expected.ir.fxc.hlsl
index 0ba40c6..cf0eb69 100644
--- a/test/tint/builtins/gen/var/transpose/66fce8.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/transpose/66fce8.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,36 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+void transpose_66fce8() {
+  float3x3 res = float3x3((1.0f).xxx, (1.0f).xxx, (1.0f).xxx);
+}
+
+void fragment_main() {
+  transpose_66fce8();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  transpose_66fce8();
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  transpose_66fce8();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  vertex_main_outputs v_2 = {v_1.pos};
+  return v_2;
+}
+
diff --git a/test/tint/builtins/gen/var/transpose/70ca11.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/transpose/70ca11.wgsl.expected.ir.dxc.hlsl
index 0ba40c6..8e48c54 100644
--- a/test/tint/builtins/gen/var/transpose/70ca11.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/transpose/70ca11.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,36 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+void transpose_70ca11() {
+  float3x2 res = float3x2((1.0f).xx, (1.0f).xx, (1.0f).xx);
+}
+
+void fragment_main() {
+  transpose_70ca11();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  transpose_70ca11();
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  transpose_70ca11();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  vertex_main_outputs v_2 = {v_1.pos};
+  return v_2;
+}
+
diff --git a/test/tint/builtins/gen/var/transpose/70ca11.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/transpose/70ca11.wgsl.expected.ir.fxc.hlsl
index 0ba40c6..8e48c54 100644
--- a/test/tint/builtins/gen/var/transpose/70ca11.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/transpose/70ca11.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,36 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+void transpose_70ca11() {
+  float3x2 res = float3x2((1.0f).xx, (1.0f).xx, (1.0f).xx);
+}
+
+void fragment_main() {
+  transpose_70ca11();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  transpose_70ca11();
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  transpose_70ca11();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  vertex_main_outputs v_2 = {v_1.pos};
+  return v_2;
+}
+
diff --git a/test/tint/builtins/gen/var/transpose/7be8b2.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/transpose/7be8b2.wgsl.expected.ir.dxc.hlsl
index ddf0424..018ecc6 100644
--- a/test/tint/builtins/gen/var/transpose/7be8b2.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/transpose/7be8b2.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,43 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  int prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: select
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation int VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+int transpose_7be8b2() {
+  matrix<float16_t, 2, 2> arg_0 = matrix<float16_t, 2, 2>((float16_t(1.0h)).xx, (float16_t(1.0h)).xx);
+  matrix<float16_t, 2, 2> res = transpose(arg_0);
+  return (((res[0].x == float16_t(0.0h))) ? (1) : (0));
+}
+
+void fragment_main() {
+  prevent_dce.Store(0u, asuint(transpose_7be8b2()));
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store(0u, asuint(transpose_7be8b2()));
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = transpose_7be8b2();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
diff --git a/test/tint/builtins/gen/var/transpose/7be8b2.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/transpose/7be8b2.wgsl.expected.ir.fxc.hlsl
index ddf0424..e8a2c96 100644
--- a/test/tint/builtins/gen/var/transpose/7be8b2.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/transpose/7be8b2.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,50 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: select
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct VertexOutput {
+  float4 pos;
+  int prevent_dce;
+};
+
+struct vertex_main_outputs {
+  nointerpolation int VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+int transpose_7be8b2() {
+  matrix<float16_t, 2, 2> arg_0 = matrix<float16_t, 2, 2>((float16_t(1.0h)).xx, (float16_t(1.0h)).xx);
+  matrix<float16_t, 2, 2> res = transpose(arg_0);
+  return (((res[0].x == float16_t(0.0h))) ? (1) : (0));
+}
+
+void fragment_main() {
+  prevent_dce.Store(0u, asuint(transpose_7be8b2()));
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store(0u, asuint(transpose_7be8b2()));
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = transpose_7be8b2();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
+FXC validation failure:
+c:\src\dawn\Shader@0x000002076E8F3600(14,10-18): error X3000: syntax error: unexpected token 'float16_t'
+c:\src\dawn\Shader@0x000002076E8F3600(15,10-18): error X3000: syntax error: unexpected token 'float16_t'
+c:\src\dawn\Shader@0x000002076E8F3600(16,13-15): error X3004: undeclared identifier 'res'
+
diff --git a/test/tint/builtins/gen/var/transpose/7eb2c5.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/transpose/7eb2c5.wgsl.expected.ir.dxc.hlsl
index 0ba40c6..1ce6cb1 100644
--- a/test/tint/builtins/gen/var/transpose/7eb2c5.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/transpose/7eb2c5.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,36 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+void transpose_7eb2c5() {
+  float2x2 res = float2x2((1.0f).xx, (1.0f).xx);
+}
+
+void fragment_main() {
+  transpose_7eb2c5();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  transpose_7eb2c5();
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  transpose_7eb2c5();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  vertex_main_outputs v_2 = {v_1.pos};
+  return v_2;
+}
+
diff --git a/test/tint/builtins/gen/var/transpose/7eb2c5.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/transpose/7eb2c5.wgsl.expected.ir.fxc.hlsl
index 0ba40c6..1ce6cb1 100644
--- a/test/tint/builtins/gen/var/transpose/7eb2c5.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/transpose/7eb2c5.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,36 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+void transpose_7eb2c5() {
+  float2x2 res = float2x2((1.0f).xx, (1.0f).xx);
+}
+
+void fragment_main() {
+  transpose_7eb2c5();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  transpose_7eb2c5();
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  transpose_7eb2c5();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  vertex_main_outputs v_2 = {v_1.pos};
+  return v_2;
+}
+
diff --git a/test/tint/builtins/gen/var/transpose/844869.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/transpose/844869.wgsl.expected.ir.dxc.hlsl
index ddf0424..6dfece2 100644
--- a/test/tint/builtins/gen/var/transpose/844869.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/transpose/844869.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,43 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  int prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: select
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation int VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+int transpose_844869() {
+  matrix<float16_t, 4, 4> arg_0 = matrix<float16_t, 4, 4>((float16_t(1.0h)).xxxx, (float16_t(1.0h)).xxxx, (float16_t(1.0h)).xxxx, (float16_t(1.0h)).xxxx);
+  matrix<float16_t, 4, 4> res = transpose(arg_0);
+  return (((res[0].x == float16_t(0.0h))) ? (1) : (0));
+}
+
+void fragment_main() {
+  prevent_dce.Store(0u, asuint(transpose_844869()));
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store(0u, asuint(transpose_844869()));
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = transpose_844869();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
diff --git a/test/tint/builtins/gen/var/transpose/844869.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/transpose/844869.wgsl.expected.ir.fxc.hlsl
index ddf0424..241fcec 100644
--- a/test/tint/builtins/gen/var/transpose/844869.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/transpose/844869.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,50 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: select
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct VertexOutput {
+  float4 pos;
+  int prevent_dce;
+};
+
+struct vertex_main_outputs {
+  nointerpolation int VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+int transpose_844869() {
+  matrix<float16_t, 4, 4> arg_0 = matrix<float16_t, 4, 4>((float16_t(1.0h)).xxxx, (float16_t(1.0h)).xxxx, (float16_t(1.0h)).xxxx, (float16_t(1.0h)).xxxx);
+  matrix<float16_t, 4, 4> res = transpose(arg_0);
+  return (((res[0].x == float16_t(0.0h))) ? (1) : (0));
+}
+
+void fragment_main() {
+  prevent_dce.Store(0u, asuint(transpose_844869()));
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store(0u, asuint(transpose_844869()));
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = transpose_844869();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
+FXC validation failure:
+c:\src\dawn\Shader@0x00000210270586C0(14,10-18): error X3000: syntax error: unexpected token 'float16_t'
+c:\src\dawn\Shader@0x00000210270586C0(15,10-18): error X3000: syntax error: unexpected token 'float16_t'
+c:\src\dawn\Shader@0x00000210270586C0(16,13-15): error X3004: undeclared identifier 'res'
+
diff --git a/test/tint/builtins/gen/var/transpose/84a763.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/transpose/84a763.wgsl.expected.ir.dxc.hlsl
index 0ba40c6..d90b05a 100644
--- a/test/tint/builtins/gen/var/transpose/84a763.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/transpose/84a763.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,36 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+void transpose_84a763() {
+  float4x2 res = float4x2((1.0f).xx, (1.0f).xx, (1.0f).xx, (1.0f).xx);
+}
+
+void fragment_main() {
+  transpose_84a763();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  transpose_84a763();
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  transpose_84a763();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  vertex_main_outputs v_2 = {v_1.pos};
+  return v_2;
+}
+
diff --git a/test/tint/builtins/gen/var/transpose/84a763.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/transpose/84a763.wgsl.expected.ir.fxc.hlsl
index 0ba40c6..d90b05a 100644
--- a/test/tint/builtins/gen/var/transpose/84a763.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/transpose/84a763.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,36 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+void transpose_84a763() {
+  float4x2 res = float4x2((1.0f).xx, (1.0f).xx, (1.0f).xx, (1.0f).xx);
+}
+
+void fragment_main() {
+  transpose_84a763();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  transpose_84a763();
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  transpose_84a763();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  vertex_main_outputs v_2 = {v_1.pos};
+  return v_2;
+}
+
diff --git a/test/tint/builtins/gen/var/transpose/854336.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/transpose/854336.wgsl.expected.ir.dxc.hlsl
index ddf0424..c932b13 100644
--- a/test/tint/builtins/gen/var/transpose/854336.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/transpose/854336.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,43 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  int prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: select
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation int VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+int transpose_854336() {
+  float3x3 arg_0 = float3x3((1.0f).xxx, (1.0f).xxx, (1.0f).xxx);
+  float3x3 res = transpose(arg_0);
+  return (((res[0].x == 0.0f)) ? (1) : (0));
+}
+
+void fragment_main() {
+  prevent_dce.Store(0u, asuint(transpose_854336()));
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store(0u, asuint(transpose_854336()));
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = transpose_854336();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
diff --git a/test/tint/builtins/gen/var/transpose/854336.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/transpose/854336.wgsl.expected.ir.fxc.hlsl
index ddf0424..c932b13 100644
--- a/test/tint/builtins/gen/var/transpose/854336.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/transpose/854336.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,43 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  int prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: select
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation int VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+int transpose_854336() {
+  float3x3 arg_0 = float3x3((1.0f).xxx, (1.0f).xxx, (1.0f).xxx);
+  float3x3 res = transpose(arg_0);
+  return (((res[0].x == 0.0f)) ? (1) : (0));
+}
+
+void fragment_main() {
+  prevent_dce.Store(0u, asuint(transpose_854336()));
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store(0u, asuint(transpose_854336()));
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = transpose_854336();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
diff --git a/test/tint/builtins/gen/var/transpose/8c06ce.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/transpose/8c06ce.wgsl.expected.ir.dxc.hlsl
index ddf0424..fa5549d 100644
--- a/test/tint/builtins/gen/var/transpose/8c06ce.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/transpose/8c06ce.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,43 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  int prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: select
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation int VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+int transpose_8c06ce() {
+  matrix<float16_t, 3, 4> arg_0 = matrix<float16_t, 3, 4>((float16_t(1.0h)).xxxx, (float16_t(1.0h)).xxxx, (float16_t(1.0h)).xxxx);
+  matrix<float16_t, 4, 3> res = transpose(arg_0);
+  return (((res[0].x == float16_t(0.0h))) ? (1) : (0));
+}
+
+void fragment_main() {
+  prevent_dce.Store(0u, asuint(transpose_8c06ce()));
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store(0u, asuint(transpose_8c06ce()));
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = transpose_8c06ce();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
diff --git a/test/tint/builtins/gen/var/transpose/8c06ce.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/transpose/8c06ce.wgsl.expected.ir.fxc.hlsl
index ddf0424..df4601d 100644
--- a/test/tint/builtins/gen/var/transpose/8c06ce.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/transpose/8c06ce.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,50 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: select
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct VertexOutput {
+  float4 pos;
+  int prevent_dce;
+};
+
+struct vertex_main_outputs {
+  nointerpolation int VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+int transpose_8c06ce() {
+  matrix<float16_t, 3, 4> arg_0 = matrix<float16_t, 3, 4>((float16_t(1.0h)).xxxx, (float16_t(1.0h)).xxxx, (float16_t(1.0h)).xxxx);
+  matrix<float16_t, 4, 3> res = transpose(arg_0);
+  return (((res[0].x == float16_t(0.0h))) ? (1) : (0));
+}
+
+void fragment_main() {
+  prevent_dce.Store(0u, asuint(transpose_8c06ce()));
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store(0u, asuint(transpose_8c06ce()));
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = transpose_8c06ce();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
+FXC validation failure:
+c:\src\dawn\Shader@0x0000021F7B930230(14,10-18): error X3000: syntax error: unexpected token 'float16_t'
+c:\src\dawn\Shader@0x0000021F7B930230(15,10-18): error X3000: syntax error: unexpected token 'float16_t'
+c:\src\dawn\Shader@0x0000021F7B930230(16,13-15): error X3004: undeclared identifier 'res'
+
diff --git a/test/tint/builtins/gen/var/transpose/ace596.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/transpose/ace596.wgsl.expected.ir.dxc.hlsl
index 0ba40c6..6be5218 100644
--- a/test/tint/builtins/gen/var/transpose/ace596.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/transpose/ace596.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,36 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+void transpose_ace596() {
+  float2x3 res = float2x3((1.0f).xxx, (1.0f).xxx);
+}
+
+void fragment_main() {
+  transpose_ace596();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  transpose_ace596();
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  transpose_ace596();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  vertex_main_outputs v_2 = {v_1.pos};
+  return v_2;
+}
+
diff --git a/test/tint/builtins/gen/var/transpose/ace596.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/transpose/ace596.wgsl.expected.ir.fxc.hlsl
index 0ba40c6..6be5218 100644
--- a/test/tint/builtins/gen/var/transpose/ace596.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/transpose/ace596.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,36 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+void transpose_ace596() {
+  float2x3 res = float2x3((1.0f).xxx, (1.0f).xxx);
+}
+
+void fragment_main() {
+  transpose_ace596();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  transpose_ace596();
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  transpose_ace596();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  vertex_main_outputs v_2 = {v_1.pos};
+  return v_2;
+}
+
diff --git a/test/tint/builtins/gen/var/transpose/b9ad1f.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/transpose/b9ad1f.wgsl.expected.ir.dxc.hlsl
index ddf0424..49a6f1b 100644
--- a/test/tint/builtins/gen/var/transpose/b9ad1f.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/transpose/b9ad1f.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,43 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  int prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: select
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation int VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+int transpose_b9ad1f() {
+  matrix<float16_t, 3, 2> arg_0 = matrix<float16_t, 3, 2>((float16_t(1.0h)).xx, (float16_t(1.0h)).xx, (float16_t(1.0h)).xx);
+  matrix<float16_t, 2, 3> res = transpose(arg_0);
+  return (((res[0].x == float16_t(0.0h))) ? (1) : (0));
+}
+
+void fragment_main() {
+  prevent_dce.Store(0u, asuint(transpose_b9ad1f()));
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store(0u, asuint(transpose_b9ad1f()));
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = transpose_b9ad1f();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
diff --git a/test/tint/builtins/gen/var/transpose/b9ad1f.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/transpose/b9ad1f.wgsl.expected.ir.fxc.hlsl
index ddf0424..8e6654f 100644
--- a/test/tint/builtins/gen/var/transpose/b9ad1f.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/transpose/b9ad1f.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,50 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: select
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct VertexOutput {
+  float4 pos;
+  int prevent_dce;
+};
+
+struct vertex_main_outputs {
+  nointerpolation int VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+int transpose_b9ad1f() {
+  matrix<float16_t, 3, 2> arg_0 = matrix<float16_t, 3, 2>((float16_t(1.0h)).xx, (float16_t(1.0h)).xx, (float16_t(1.0h)).xx);
+  matrix<float16_t, 2, 3> res = transpose(arg_0);
+  return (((res[0].x == float16_t(0.0h))) ? (1) : (0));
+}
+
+void fragment_main() {
+  prevent_dce.Store(0u, asuint(transpose_b9ad1f()));
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store(0u, asuint(transpose_b9ad1f()));
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = transpose_b9ad1f();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
+FXC validation failure:
+c:\src\dawn\Shader@0x0000016D9A7C2F10(14,10-18): error X3000: syntax error: unexpected token 'float16_t'
+c:\src\dawn\Shader@0x0000016D9A7C2F10(15,10-18): error X3000: syntax error: unexpected token 'float16_t'
+c:\src\dawn\Shader@0x0000016D9A7C2F10(16,13-15): error X3004: undeclared identifier 'res'
+
diff --git a/test/tint/builtins/gen/var/transpose/c1b600.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/transpose/c1b600.wgsl.expected.ir.dxc.hlsl
index ddf0424..2f6d520 100644
--- a/test/tint/builtins/gen/var/transpose/c1b600.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/transpose/c1b600.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,43 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  int prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: select
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation int VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+int transpose_c1b600() {
+  float4x4 arg_0 = float4x4((1.0f).xxxx, (1.0f).xxxx, (1.0f).xxxx, (1.0f).xxxx);
+  float4x4 res = transpose(arg_0);
+  return (((res[0].x == 0.0f)) ? (1) : (0));
+}
+
+void fragment_main() {
+  prevent_dce.Store(0u, asuint(transpose_c1b600()));
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store(0u, asuint(transpose_c1b600()));
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = transpose_c1b600();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
diff --git a/test/tint/builtins/gen/var/transpose/c1b600.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/transpose/c1b600.wgsl.expected.ir.fxc.hlsl
index ddf0424..2f6d520 100644
--- a/test/tint/builtins/gen/var/transpose/c1b600.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/transpose/c1b600.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,43 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  int prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: select
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation int VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+int transpose_c1b600() {
+  float4x4 arg_0 = float4x4((1.0f).xxxx, (1.0f).xxxx, (1.0f).xxxx, (1.0f).xxxx);
+  float4x4 res = transpose(arg_0);
+  return (((res[0].x == 0.0f)) ? (1) : (0));
+}
+
+void fragment_main() {
+  prevent_dce.Store(0u, asuint(transpose_c1b600()));
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store(0u, asuint(transpose_c1b600()));
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = transpose_c1b600();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
diff --git a/test/tint/builtins/gen/var/transpose/d6faec.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/transpose/d6faec.wgsl.expected.ir.dxc.hlsl
index ddf0424..2363216 100644
--- a/test/tint/builtins/gen/var/transpose/d6faec.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/transpose/d6faec.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,43 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  int prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: select
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation int VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+int transpose_d6faec() {
+  matrix<float16_t, 2, 3> arg_0 = matrix<float16_t, 2, 3>((float16_t(1.0h)).xxx, (float16_t(1.0h)).xxx);
+  matrix<float16_t, 3, 2> res = transpose(arg_0);
+  return (((res[0].x == float16_t(0.0h))) ? (1) : (0));
+}
+
+void fragment_main() {
+  prevent_dce.Store(0u, asuint(transpose_d6faec()));
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store(0u, asuint(transpose_d6faec()));
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = transpose_d6faec();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
diff --git a/test/tint/builtins/gen/var/transpose/d6faec.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/transpose/d6faec.wgsl.expected.ir.fxc.hlsl
index ddf0424..a2d78cd 100644
--- a/test/tint/builtins/gen/var/transpose/d6faec.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/transpose/d6faec.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,50 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: select
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct VertexOutput {
+  float4 pos;
+  int prevent_dce;
+};
+
+struct vertex_main_outputs {
+  nointerpolation int VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+int transpose_d6faec() {
+  matrix<float16_t, 2, 3> arg_0 = matrix<float16_t, 2, 3>((float16_t(1.0h)).xxx, (float16_t(1.0h)).xxx);
+  matrix<float16_t, 3, 2> res = transpose(arg_0);
+  return (((res[0].x == float16_t(0.0h))) ? (1) : (0));
+}
+
+void fragment_main() {
+  prevent_dce.Store(0u, asuint(transpose_d6faec()));
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store(0u, asuint(transpose_d6faec()));
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = transpose_d6faec();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
+FXC validation failure:
+c:\src\dawn\Shader@0x0000026169B3CAA0(14,10-18): error X3000: syntax error: unexpected token 'float16_t'
+c:\src\dawn\Shader@0x0000026169B3CAA0(15,10-18): error X3000: syntax error: unexpected token 'float16_t'
+c:\src\dawn\Shader@0x0000026169B3CAA0(16,13-15): error X3004: undeclared identifier 'res'
+
diff --git a/test/tint/builtins/gen/var/transpose/d8f8ba.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/transpose/d8f8ba.wgsl.expected.ir.dxc.hlsl
index ddf0424..dc52241 100644
--- a/test/tint/builtins/gen/var/transpose/d8f8ba.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/transpose/d8f8ba.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,43 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  int prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: select
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation int VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+int transpose_d8f8ba() {
+  float3x4 arg_0 = float3x4((1.0f).xxxx, (1.0f).xxxx, (1.0f).xxxx);
+  float4x3 res = transpose(arg_0);
+  return (((res[0].x == 0.0f)) ? (1) : (0));
+}
+
+void fragment_main() {
+  prevent_dce.Store(0u, asuint(transpose_d8f8ba()));
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store(0u, asuint(transpose_d8f8ba()));
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = transpose_d8f8ba();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
diff --git a/test/tint/builtins/gen/var/transpose/d8f8ba.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/transpose/d8f8ba.wgsl.expected.ir.fxc.hlsl
index ddf0424..dc52241 100644
--- a/test/tint/builtins/gen/var/transpose/d8f8ba.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/transpose/d8f8ba.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,43 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  int prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: select
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation int VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+int transpose_d8f8ba() {
+  float3x4 arg_0 = float3x4((1.0f).xxxx, (1.0f).xxxx, (1.0f).xxxx);
+  float4x3 res = transpose(arg_0);
+  return (((res[0].x == 0.0f)) ? (1) : (0));
+}
+
+void fragment_main() {
+  prevent_dce.Store(0u, asuint(transpose_d8f8ba()));
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store(0u, asuint(transpose_d8f8ba()));
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = transpose_d8f8ba();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
diff --git a/test/tint/builtins/gen/var/transpose/dc671a.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/transpose/dc671a.wgsl.expected.ir.dxc.hlsl
index 0ba40c6..a2ab1c3 100644
--- a/test/tint/builtins/gen/var/transpose/dc671a.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/transpose/dc671a.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,36 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+void transpose_dc671a() {
+  float4x4 res = float4x4((1.0f).xxxx, (1.0f).xxxx, (1.0f).xxxx, (1.0f).xxxx);
+}
+
+void fragment_main() {
+  transpose_dc671a();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  transpose_dc671a();
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  transpose_dc671a();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  vertex_main_outputs v_2 = {v_1.pos};
+  return v_2;
+}
+
diff --git a/test/tint/builtins/gen/var/transpose/dc671a.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/transpose/dc671a.wgsl.expected.ir.fxc.hlsl
index 0ba40c6..a2ab1c3 100644
--- a/test/tint/builtins/gen/var/transpose/dc671a.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/transpose/dc671a.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,36 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+void transpose_dc671a() {
+  float4x4 res = float4x4((1.0f).xxxx, (1.0f).xxxx, (1.0f).xxxx, (1.0f).xxxx);
+}
+
+void fragment_main() {
+  transpose_dc671a();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  transpose_dc671a();
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  transpose_dc671a();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  vertex_main_outputs v_2 = {v_1.pos};
+  return v_2;
+}
+
diff --git a/test/tint/builtins/gen/var/transpose/ed4bdc.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/transpose/ed4bdc.wgsl.expected.ir.dxc.hlsl
index ddf0424..441f96d 100644
--- a/test/tint/builtins/gen/var/transpose/ed4bdc.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/transpose/ed4bdc.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,43 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  int prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: select
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation int VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+int transpose_ed4bdc() {
+  float3x2 arg_0 = float3x2((1.0f).xx, (1.0f).xx, (1.0f).xx);
+  float2x3 res = transpose(arg_0);
+  return (((res[0].x == 0.0f)) ? (1) : (0));
+}
+
+void fragment_main() {
+  prevent_dce.Store(0u, asuint(transpose_ed4bdc()));
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store(0u, asuint(transpose_ed4bdc()));
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = transpose_ed4bdc();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
diff --git a/test/tint/builtins/gen/var/transpose/ed4bdc.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/transpose/ed4bdc.wgsl.expected.ir.fxc.hlsl
index ddf0424..441f96d 100644
--- a/test/tint/builtins/gen/var/transpose/ed4bdc.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/transpose/ed4bdc.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,43 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  int prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: select
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation int VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+int transpose_ed4bdc() {
+  float3x2 arg_0 = float3x2((1.0f).xx, (1.0f).xx, (1.0f).xx);
+  float2x3 res = transpose(arg_0);
+  return (((res[0].x == 0.0f)) ? (1) : (0));
+}
+
+void fragment_main() {
+  prevent_dce.Store(0u, asuint(transpose_ed4bdc()));
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store(0u, asuint(transpose_ed4bdc()));
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = transpose_ed4bdc();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
diff --git a/test/tint/builtins/gen/var/transpose/faeb05.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/transpose/faeb05.wgsl.expected.ir.dxc.hlsl
index ddf0424..9cceb4a 100644
--- a/test/tint/builtins/gen/var/transpose/faeb05.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/transpose/faeb05.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,43 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  int prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: select
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation int VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+int transpose_faeb05() {
+  matrix<float16_t, 2, 4> arg_0 = matrix<float16_t, 2, 4>((float16_t(1.0h)).xxxx, (float16_t(1.0h)).xxxx);
+  matrix<float16_t, 4, 2> res = transpose(arg_0);
+  return (((res[0].x == float16_t(0.0h))) ? (1) : (0));
+}
+
+void fragment_main() {
+  prevent_dce.Store(0u, asuint(transpose_faeb05()));
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store(0u, asuint(transpose_faeb05()));
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = transpose_faeb05();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
diff --git a/test/tint/builtins/gen/var/transpose/faeb05.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/transpose/faeb05.wgsl.expected.ir.fxc.hlsl
index ddf0424..b1c7eb0 100644
--- a/test/tint/builtins/gen/var/transpose/faeb05.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/transpose/faeb05.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,50 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: select
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct VertexOutput {
+  float4 pos;
+  int prevent_dce;
+};
+
+struct vertex_main_outputs {
+  nointerpolation int VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+int transpose_faeb05() {
+  matrix<float16_t, 2, 4> arg_0 = matrix<float16_t, 2, 4>((float16_t(1.0h)).xxxx, (float16_t(1.0h)).xxxx);
+  matrix<float16_t, 4, 2> res = transpose(arg_0);
+  return (((res[0].x == float16_t(0.0h))) ? (1) : (0));
+}
+
+void fragment_main() {
+  prevent_dce.Store(0u, asuint(transpose_faeb05()));
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store(0u, asuint(transpose_faeb05()));
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = transpose_faeb05();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
+FXC validation failure:
+c:\src\dawn\Shader@0x0000025D96895830(14,10-18): error X3000: syntax error: unexpected token 'float16_t'
+c:\src\dawn\Shader@0x0000025D96895830(15,10-18): error X3000: syntax error: unexpected token 'float16_t'
+c:\src\dawn\Shader@0x0000025D96895830(16,13-15): error X3004: undeclared identifier 'res'
+
diff --git a/test/tint/builtins/gen/var/trunc/103ab8.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/trunc/103ab8.wgsl.expected.ir.dxc.hlsl
index 4c48f71..e131607 100644
--- a/test/tint/builtins/gen/var/trunc/103ab8.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/trunc/103ab8.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,45 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  vector<float16_t, 3> prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: trunc
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation vector<float16_t, 3> VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+vector<float16_t, 3> trunc_103ab8() {
+  vector<float16_t, 3> arg_0 = (float16_t(1.5h)).xxx;
+  vector<float16_t, 3> v = arg_0;
+  vector<float16_t, 3> v_1 = floor(v);
+  vector<float16_t, 3> res = (((v < (float16_t(0.0h)).xxx)) ? (ceil(v)) : (v_1));
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store<vector<float16_t, 3> >(0u, trunc_103ab8());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store<vector<float16_t, 3> >(0u, trunc_103ab8());
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = trunc_103ab8();
+  VertexOutput v_2 = tint_symbol;
+  return v_2;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_3 = vertex_main_inner();
+  VertexOutput v_4 = v_3;
+  VertexOutput v_5 = v_3;
+  vertex_main_outputs v_6 = {v_5.prevent_dce, v_4.pos};
+  return v_6;
+}
+
diff --git a/test/tint/builtins/gen/var/trunc/103ab8.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/trunc/103ab8.wgsl.expected.ir.fxc.hlsl
index 4c48f71..5164812 100644
--- a/test/tint/builtins/gen/var/trunc/103ab8.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/trunc/103ab8.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,50 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: trunc
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct VertexOutput {
+  float4 pos;
+  vector<float16_t, 3> prevent_dce;
+};
+
+struct vertex_main_outputs {
+  nointerpolation vector<float16_t, 3> VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+vector<float16_t, 3> trunc_103ab8() {
+  vector<float16_t, 3> arg_0 = (float16_t(1.5h)).xxx;
+  vector<float16_t, 3> v = arg_0;
+  vector<float16_t, 3> v_1 = floor(v);
+  vector<float16_t, 3> res = (((v < (float16_t(0.0h)).xxx)) ? (ceil(v)) : (v_1));
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store<vector<float16_t, 3> >(0u, trunc_103ab8());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store<vector<float16_t, 3> >(0u, trunc_103ab8());
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = trunc_103ab8();
+  VertexOutput v_2 = tint_symbol;
+  return v_2;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_3 = vertex_main_inner();
+  VertexOutput v_4 = v_3;
+  VertexOutput v_5 = v_3;
+  vertex_main_outputs v_6 = {v_5.prevent_dce, v_4.pos};
+  return v_6;
+}
+
+FXC validation failure:
+c:\src\dawn\Shader@0x00000299D4BDCBC0(3,10-18): error X3000: syntax error: unexpected token 'float16_t'
+
diff --git a/test/tint/builtins/gen/var/trunc/117396.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/trunc/117396.wgsl.expected.ir.dxc.hlsl
index 0ba40c6..84222b5 100644
--- a/test/tint/builtins/gen/var/trunc/117396.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/trunc/117396.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,36 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+void trunc_117396() {
+  float3 res = (1.0f).xxx;
+}
+
+void fragment_main() {
+  trunc_117396();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  trunc_117396();
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  trunc_117396();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  vertex_main_outputs v_2 = {v_1.pos};
+  return v_2;
+}
+
diff --git a/test/tint/builtins/gen/var/trunc/117396.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/trunc/117396.wgsl.expected.ir.fxc.hlsl
index 0ba40c6..84222b5 100644
--- a/test/tint/builtins/gen/var/trunc/117396.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/trunc/117396.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,36 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+void trunc_117396() {
+  float3 res = (1.0f).xxx;
+}
+
+void fragment_main() {
+  trunc_117396();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  trunc_117396();
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  trunc_117396();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  vertex_main_outputs v_2 = {v_1.pos};
+  return v_2;
+}
+
diff --git a/test/tint/builtins/gen/var/trunc/562d05.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/trunc/562d05.wgsl.expected.ir.dxc.hlsl
index 4c48f71..1021f50 100644
--- a/test/tint/builtins/gen/var/trunc/562d05.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/trunc/562d05.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,45 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  float3 prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: trunc
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation float3 VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+float3 trunc_562d05() {
+  float3 arg_0 = (1.5f).xxx;
+  float3 v = arg_0;
+  float3 v_1 = floor(v);
+  float3 res = (((v < (0.0f).xxx)) ? (ceil(v)) : (v_1));
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store3(0u, asuint(trunc_562d05()));
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store3(0u, asuint(trunc_562d05()));
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = trunc_562d05();
+  VertexOutput v_2 = tint_symbol;
+  return v_2;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_3 = vertex_main_inner();
+  VertexOutput v_4 = v_3;
+  VertexOutput v_5 = v_3;
+  vertex_main_outputs v_6 = {v_5.prevent_dce, v_4.pos};
+  return v_6;
+}
+
diff --git a/test/tint/builtins/gen/var/trunc/562d05.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/trunc/562d05.wgsl.expected.ir.fxc.hlsl
index 4c48f71..1021f50 100644
--- a/test/tint/builtins/gen/var/trunc/562d05.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/trunc/562d05.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,45 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  float3 prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: trunc
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation float3 VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+float3 trunc_562d05() {
+  float3 arg_0 = (1.5f).xxx;
+  float3 v = arg_0;
+  float3 v_1 = floor(v);
+  float3 res = (((v < (0.0f).xxx)) ? (ceil(v)) : (v_1));
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store3(0u, asuint(trunc_562d05()));
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store3(0u, asuint(trunc_562d05()));
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = trunc_562d05();
+  VertexOutput v_2 = tint_symbol;
+  return v_2;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_3 = vertex_main_inner();
+  VertexOutput v_4 = v_3;
+  VertexOutput v_5 = v_3;
+  vertex_main_outputs v_6 = {v_5.prevent_dce, v_4.pos};
+  return v_6;
+}
+
diff --git a/test/tint/builtins/gen/var/trunc/7d6ded.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/trunc/7d6ded.wgsl.expected.ir.dxc.hlsl
index 0ba40c6..4f31d5b 100644
--- a/test/tint/builtins/gen/var/trunc/7d6ded.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/trunc/7d6ded.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,36 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+void trunc_7d6ded() {
+  float res = 1.0f;
+}
+
+void fragment_main() {
+  trunc_7d6ded();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  trunc_7d6ded();
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  trunc_7d6ded();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  vertex_main_outputs v_2 = {v_1.pos};
+  return v_2;
+}
+
diff --git a/test/tint/builtins/gen/var/trunc/7d6ded.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/trunc/7d6ded.wgsl.expected.ir.fxc.hlsl
index 0ba40c6..4f31d5b 100644
--- a/test/tint/builtins/gen/var/trunc/7d6ded.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/trunc/7d6ded.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,36 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+void trunc_7d6ded() {
+  float res = 1.0f;
+}
+
+void fragment_main() {
+  trunc_7d6ded();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  trunc_7d6ded();
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  trunc_7d6ded();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  vertex_main_outputs v_2 = {v_1.pos};
+  return v_2;
+}
+
diff --git a/test/tint/builtins/gen/var/trunc/a56109.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/trunc/a56109.wgsl.expected.ir.dxc.hlsl
index 4c48f71..3974621 100644
--- a/test/tint/builtins/gen/var/trunc/a56109.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/trunc/a56109.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,45 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  vector<float16_t, 2> prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: trunc
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation vector<float16_t, 2> VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+vector<float16_t, 2> trunc_a56109() {
+  vector<float16_t, 2> arg_0 = (float16_t(1.5h)).xx;
+  vector<float16_t, 2> v = arg_0;
+  vector<float16_t, 2> v_1 = floor(v);
+  vector<float16_t, 2> res = (((v < (float16_t(0.0h)).xx)) ? (ceil(v)) : (v_1));
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store<vector<float16_t, 2> >(0u, trunc_a56109());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store<vector<float16_t, 2> >(0u, trunc_a56109());
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = trunc_a56109();
+  VertexOutput v_2 = tint_symbol;
+  return v_2;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_3 = vertex_main_inner();
+  VertexOutput v_4 = v_3;
+  VertexOutput v_5 = v_3;
+  vertex_main_outputs v_6 = {v_5.prevent_dce, v_4.pos};
+  return v_6;
+}
+
diff --git a/test/tint/builtins/gen/var/trunc/a56109.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/trunc/a56109.wgsl.expected.ir.fxc.hlsl
index 4c48f71..9c01a2c 100644
--- a/test/tint/builtins/gen/var/trunc/a56109.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/trunc/a56109.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,50 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: trunc
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct VertexOutput {
+  float4 pos;
+  vector<float16_t, 2> prevent_dce;
+};
+
+struct vertex_main_outputs {
+  nointerpolation vector<float16_t, 2> VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+vector<float16_t, 2> trunc_a56109() {
+  vector<float16_t, 2> arg_0 = (float16_t(1.5h)).xx;
+  vector<float16_t, 2> v = arg_0;
+  vector<float16_t, 2> v_1 = floor(v);
+  vector<float16_t, 2> res = (((v < (float16_t(0.0h)).xx)) ? (ceil(v)) : (v_1));
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store<vector<float16_t, 2> >(0u, trunc_a56109());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store<vector<float16_t, 2> >(0u, trunc_a56109());
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = trunc_a56109();
+  VertexOutput v_2 = tint_symbol;
+  return v_2;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_3 = vertex_main_inner();
+  VertexOutput v_4 = v_3;
+  VertexOutput v_5 = v_3;
+  vertex_main_outputs v_6 = {v_5.prevent_dce, v_4.pos};
+  return v_6;
+}
+
+FXC validation failure:
+c:\src\dawn\Shader@0x000001B6B0A15740(3,10-18): error X3000: syntax error: unexpected token 'float16_t'
+
diff --git a/test/tint/builtins/gen/var/trunc/c12555.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/trunc/c12555.wgsl.expected.ir.dxc.hlsl
index 0ba40c6..468c9a5 100644
--- a/test/tint/builtins/gen/var/trunc/c12555.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/trunc/c12555.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,36 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+void trunc_c12555() {
+  float2 res = (1.0f).xx;
+}
+
+void fragment_main() {
+  trunc_c12555();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  trunc_c12555();
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  trunc_c12555();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  vertex_main_outputs v_2 = {v_1.pos};
+  return v_2;
+}
+
diff --git a/test/tint/builtins/gen/var/trunc/c12555.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/trunc/c12555.wgsl.expected.ir.fxc.hlsl
index 0ba40c6..468c9a5 100644
--- a/test/tint/builtins/gen/var/trunc/c12555.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/trunc/c12555.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,36 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+void trunc_c12555() {
+  float2 res = (1.0f).xx;
+}
+
+void fragment_main() {
+  trunc_c12555();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  trunc_c12555();
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  trunc_c12555();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  vertex_main_outputs v_2 = {v_1.pos};
+  return v_2;
+}
+
diff --git a/test/tint/builtins/gen/var/trunc/cc2b0d.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/trunc/cc2b0d.wgsl.expected.ir.dxc.hlsl
index 4c48f71..27856a0 100644
--- a/test/tint/builtins/gen/var/trunc/cc2b0d.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/trunc/cc2b0d.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,45 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  float16_t prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: trunc
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation float16_t VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+float16_t trunc_cc2b0d() {
+  float16_t arg_0 = float16_t(1.5h);
+  float16_t v = arg_0;
+  float16_t v_1 = floor(v);
+  float16_t res = (((v < float16_t(0.0h))) ? (ceil(v)) : (v_1));
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store<float16_t>(0u, trunc_cc2b0d());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store<float16_t>(0u, trunc_cc2b0d());
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = trunc_cc2b0d();
+  VertexOutput v_2 = tint_symbol;
+  return v_2;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_3 = vertex_main_inner();
+  VertexOutput v_4 = v_3;
+  VertexOutput v_5 = v_3;
+  vertex_main_outputs v_6 = {v_5.prevent_dce, v_4.pos};
+  return v_6;
+}
+
diff --git a/test/tint/builtins/gen/var/trunc/cc2b0d.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/trunc/cc2b0d.wgsl.expected.ir.fxc.hlsl
index 4c48f71..4b73ed0 100644
--- a/test/tint/builtins/gen/var/trunc/cc2b0d.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/trunc/cc2b0d.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,50 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: trunc
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct VertexOutput {
+  float4 pos;
+  float16_t prevent_dce;
+};
+
+struct vertex_main_outputs {
+  nointerpolation float16_t VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+float16_t trunc_cc2b0d() {
+  float16_t arg_0 = float16_t(1.5h);
+  float16_t v = arg_0;
+  float16_t v_1 = floor(v);
+  float16_t res = (((v < float16_t(0.0h))) ? (ceil(v)) : (v_1));
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store<float16_t>(0u, trunc_cc2b0d());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store<float16_t>(0u, trunc_cc2b0d());
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = trunc_cc2b0d();
+  VertexOutput v_2 = tint_symbol;
+  return v_2;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_3 = vertex_main_inner();
+  VertexOutput v_4 = v_3;
+  VertexOutput v_5 = v_3;
+  vertex_main_outputs v_6 = {v_5.prevent_dce, v_4.pos};
+  return v_6;
+}
+
+FXC validation failure:
+c:\src\dawn\Shader@0x0000016265794880(3,3-11): error X3000: unrecognized identifier 'float16_t'
+
diff --git a/test/tint/builtins/gen/var/trunc/ce7c17.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/trunc/ce7c17.wgsl.expected.ir.dxc.hlsl
index 4c48f71..fda1294 100644
--- a/test/tint/builtins/gen/var/trunc/ce7c17.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/trunc/ce7c17.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,45 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  vector<float16_t, 4> prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: trunc
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation vector<float16_t, 4> VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+vector<float16_t, 4> trunc_ce7c17() {
+  vector<float16_t, 4> arg_0 = (float16_t(1.5h)).xxxx;
+  vector<float16_t, 4> v = arg_0;
+  vector<float16_t, 4> v_1 = floor(v);
+  vector<float16_t, 4> res = (((v < (float16_t(0.0h)).xxxx)) ? (ceil(v)) : (v_1));
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store<vector<float16_t, 4> >(0u, trunc_ce7c17());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store<vector<float16_t, 4> >(0u, trunc_ce7c17());
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = trunc_ce7c17();
+  VertexOutput v_2 = tint_symbol;
+  return v_2;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_3 = vertex_main_inner();
+  VertexOutput v_4 = v_3;
+  VertexOutput v_5 = v_3;
+  vertex_main_outputs v_6 = {v_5.prevent_dce, v_4.pos};
+  return v_6;
+}
+
diff --git a/test/tint/builtins/gen/var/trunc/ce7c17.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/trunc/ce7c17.wgsl.expected.ir.fxc.hlsl
index 4c48f71..909f202 100644
--- a/test/tint/builtins/gen/var/trunc/ce7c17.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/trunc/ce7c17.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,50 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: trunc
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct VertexOutput {
+  float4 pos;
+  vector<float16_t, 4> prevent_dce;
+};
+
+struct vertex_main_outputs {
+  nointerpolation vector<float16_t, 4> VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+vector<float16_t, 4> trunc_ce7c17() {
+  vector<float16_t, 4> arg_0 = (float16_t(1.5h)).xxxx;
+  vector<float16_t, 4> v = arg_0;
+  vector<float16_t, 4> v_1 = floor(v);
+  vector<float16_t, 4> res = (((v < (float16_t(0.0h)).xxxx)) ? (ceil(v)) : (v_1));
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store<vector<float16_t, 4> >(0u, trunc_ce7c17());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store<vector<float16_t, 4> >(0u, trunc_ce7c17());
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = trunc_ce7c17();
+  VertexOutput v_2 = tint_symbol;
+  return v_2;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_3 = vertex_main_inner();
+  VertexOutput v_4 = v_3;
+  VertexOutput v_5 = v_3;
+  vertex_main_outputs v_6 = {v_5.prevent_dce, v_4.pos};
+  return v_6;
+}
+
+FXC validation failure:
+c:\src\dawn\Shader@0x00000262490AF460(3,10-18): error X3000: syntax error: unexpected token 'float16_t'
+
diff --git a/test/tint/builtins/gen/var/trunc/e183aa.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/trunc/e183aa.wgsl.expected.ir.dxc.hlsl
index 4c48f71..5269e0e 100644
--- a/test/tint/builtins/gen/var/trunc/e183aa.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/trunc/e183aa.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,45 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  float4 prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: trunc
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation float4 VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+float4 trunc_e183aa() {
+  float4 arg_0 = (1.5f).xxxx;
+  float4 v = arg_0;
+  float4 v_1 = floor(v);
+  float4 res = (((v < (0.0f).xxxx)) ? (ceil(v)) : (v_1));
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store4(0u, asuint(trunc_e183aa()));
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store4(0u, asuint(trunc_e183aa()));
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = trunc_e183aa();
+  VertexOutput v_2 = tint_symbol;
+  return v_2;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_3 = vertex_main_inner();
+  VertexOutput v_4 = v_3;
+  VertexOutput v_5 = v_3;
+  vertex_main_outputs v_6 = {v_5.prevent_dce, v_4.pos};
+  return v_6;
+}
+
diff --git a/test/tint/builtins/gen/var/trunc/e183aa.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/trunc/e183aa.wgsl.expected.ir.fxc.hlsl
index 4c48f71..5269e0e 100644
--- a/test/tint/builtins/gen/var/trunc/e183aa.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/trunc/e183aa.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,45 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  float4 prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: trunc
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation float4 VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+float4 trunc_e183aa() {
+  float4 arg_0 = (1.5f).xxxx;
+  float4 v = arg_0;
+  float4 v_1 = floor(v);
+  float4 res = (((v < (0.0f).xxxx)) ? (ceil(v)) : (v_1));
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store4(0u, asuint(trunc_e183aa()));
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store4(0u, asuint(trunc_e183aa()));
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = trunc_e183aa();
+  VertexOutput v_2 = tint_symbol;
+  return v_2;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_3 = vertex_main_inner();
+  VertexOutput v_4 = v_3;
+  VertexOutput v_5 = v_3;
+  vertex_main_outputs v_6 = {v_5.prevent_dce, v_4.pos};
+  return v_6;
+}
+
diff --git a/test/tint/builtins/gen/var/trunc/eb83df.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/trunc/eb83df.wgsl.expected.ir.dxc.hlsl
index 4c48f71..393adb8 100644
--- a/test/tint/builtins/gen/var/trunc/eb83df.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/trunc/eb83df.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,45 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  float prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: trunc
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation float VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+float trunc_eb83df() {
+  float arg_0 = 1.5f;
+  float v = arg_0;
+  float v_1 = floor(v);
+  float res = (((v < 0.0f)) ? (ceil(v)) : (v_1));
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store(0u, asuint(trunc_eb83df()));
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store(0u, asuint(trunc_eb83df()));
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = trunc_eb83df();
+  VertexOutput v_2 = tint_symbol;
+  return v_2;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_3 = vertex_main_inner();
+  VertexOutput v_4 = v_3;
+  VertexOutput v_5 = v_3;
+  vertex_main_outputs v_6 = {v_5.prevent_dce, v_4.pos};
+  return v_6;
+}
+
diff --git a/test/tint/builtins/gen/var/trunc/eb83df.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/trunc/eb83df.wgsl.expected.ir.fxc.hlsl
index 4c48f71..393adb8 100644
--- a/test/tint/builtins/gen/var/trunc/eb83df.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/trunc/eb83df.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,45 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  float prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: trunc
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation float VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+float trunc_eb83df() {
+  float arg_0 = 1.5f;
+  float v = arg_0;
+  float v_1 = floor(v);
+  float res = (((v < 0.0f)) ? (ceil(v)) : (v_1));
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store(0u, asuint(trunc_eb83df()));
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store(0u, asuint(trunc_eb83df()));
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = trunc_eb83df();
+  VertexOutput v_2 = tint_symbol;
+  return v_2;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_3 = vertex_main_inner();
+  VertexOutput v_4 = v_3;
+  VertexOutput v_5 = v_3;
+  vertex_main_outputs v_6 = {v_5.prevent_dce, v_4.pos};
+  return v_6;
+}
+
diff --git a/test/tint/builtins/gen/var/trunc/f0f1a1.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/trunc/f0f1a1.wgsl.expected.ir.dxc.hlsl
index 0ba40c6..fa4a22e 100644
--- a/test/tint/builtins/gen/var/trunc/f0f1a1.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/trunc/f0f1a1.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,36 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+void trunc_f0f1a1() {
+  float4 res = (1.0f).xxxx;
+}
+
+void fragment_main() {
+  trunc_f0f1a1();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  trunc_f0f1a1();
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  trunc_f0f1a1();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  vertex_main_outputs v_2 = {v_1.pos};
+  return v_2;
+}
+
diff --git a/test/tint/builtins/gen/var/trunc/f0f1a1.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/trunc/f0f1a1.wgsl.expected.ir.fxc.hlsl
index 0ba40c6..fa4a22e 100644
--- a/test/tint/builtins/gen/var/trunc/f0f1a1.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/trunc/f0f1a1.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,36 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+void trunc_f0f1a1() {
+  float4 res = (1.0f).xxxx;
+}
+
+void fragment_main() {
+  trunc_f0f1a1();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  trunc_f0f1a1();
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  trunc_f0f1a1();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  vertex_main_outputs v_2 = {v_1.pos};
+  return v_2;
+}
+
diff --git a/test/tint/builtins/gen/var/trunc/f370d3.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/trunc/f370d3.wgsl.expected.ir.dxc.hlsl
index 4c48f71..4392822 100644
--- a/test/tint/builtins/gen/var/trunc/f370d3.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/trunc/f370d3.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,45 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  float2 prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: trunc
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation float2 VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+float2 trunc_f370d3() {
+  float2 arg_0 = (1.5f).xx;
+  float2 v = arg_0;
+  float2 v_1 = floor(v);
+  float2 res = (((v < (0.0f).xx)) ? (ceil(v)) : (v_1));
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store2(0u, asuint(trunc_f370d3()));
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store2(0u, asuint(trunc_f370d3()));
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = trunc_f370d3();
+  VertexOutput v_2 = tint_symbol;
+  return v_2;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_3 = vertex_main_inner();
+  VertexOutput v_4 = v_3;
+  VertexOutput v_5 = v_3;
+  vertex_main_outputs v_6 = {v_5.prevent_dce, v_4.pos};
+  return v_6;
+}
+
diff --git a/test/tint/builtins/gen/var/trunc/f370d3.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/trunc/f370d3.wgsl.expected.ir.fxc.hlsl
index 4c48f71..4392822 100644
--- a/test/tint/builtins/gen/var/trunc/f370d3.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/trunc/f370d3.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,45 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  float2 prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: trunc
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation float2 VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+float2 trunc_f370d3() {
+  float2 arg_0 = (1.5f).xx;
+  float2 v = arg_0;
+  float2 v_1 = floor(v);
+  float2 res = (((v < (0.0f).xx)) ? (ceil(v)) : (v_1));
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store2(0u, asuint(trunc_f370d3()));
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store2(0u, asuint(trunc_f370d3()));
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = trunc_f370d3();
+  VertexOutput v_2 = tint_symbol;
+  return v_2;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_3 = vertex_main_inner();
+  VertexOutput v_4 = v_3;
+  VertexOutput v_5 = v_3;
+  vertex_main_outputs v_6 = {v_5.prevent_dce, v_4.pos};
+  return v_6;
+}
+
diff --git a/test/tint/builtins/gen/var/unpack2x16float/32a5cf.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/unpack2x16float/32a5cf.wgsl.expected.ir.dxc.hlsl
index 4084fc8..1f67a80 100644
--- a/test/tint/builtins/gen/var/unpack2x16float/32a5cf.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/unpack2x16float/32a5cf.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,44 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  float2 prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: unpack2x16float
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation float2 VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+float2 unpack2x16float_32a5cf() {
+  uint arg_0 = 1u;
+  uint v = arg_0;
+  float2 res = f16tof32(uint2((v & 65535u), (v >> 16u)));
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store2(0u, asuint(unpack2x16float_32a5cf()));
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store2(0u, asuint(unpack2x16float_32a5cf()));
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = unpack2x16float_32a5cf();
+  VertexOutput v_1 = tint_symbol;
+  return v_1;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_2 = vertex_main_inner();
+  VertexOutput v_3 = v_2;
+  VertexOutput v_4 = v_2;
+  vertex_main_outputs v_5 = {v_4.prevent_dce, v_3.pos};
+  return v_5;
+}
+
diff --git a/test/tint/builtins/gen/var/unpack2x16float/32a5cf.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/unpack2x16float/32a5cf.wgsl.expected.ir.fxc.hlsl
index 4084fc8..1f67a80 100644
--- a/test/tint/builtins/gen/var/unpack2x16float/32a5cf.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/unpack2x16float/32a5cf.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,44 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  float2 prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: unpack2x16float
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation float2 VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+float2 unpack2x16float_32a5cf() {
+  uint arg_0 = 1u;
+  uint v = arg_0;
+  float2 res = f16tof32(uint2((v & 65535u), (v >> 16u)));
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store2(0u, asuint(unpack2x16float_32a5cf()));
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store2(0u, asuint(unpack2x16float_32a5cf()));
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = unpack2x16float_32a5cf();
+  VertexOutput v_1 = tint_symbol;
+  return v_1;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_2 = vertex_main_inner();
+  VertexOutput v_3 = v_2;
+  VertexOutput v_4 = v_2;
+  vertex_main_outputs v_5 = {v_4.prevent_dce, v_3.pos};
+  return v_5;
+}
+
diff --git a/test/tint/builtins/gen/var/unpack2x16snorm/b4aea6.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/unpack2x16snorm/b4aea6.wgsl.expected.ir.dxc.hlsl
index 9411b9c..63bf3bb 100644
--- a/test/tint/builtins/gen/var/unpack2x16snorm/b4aea6.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/unpack2x16snorm/b4aea6.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,44 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  float2 prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: unpack2x16snorm
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation float2 VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+float2 unpack2x16snorm_b4aea6() {
+  uint arg_0 = 1u;
+  int v = int(arg_0);
+  float2 res = clamp((float2((int2((v << 16u), v) >> (16u).xx)) / 32767.0f), (-1.0f).xx, (1.0f).xx);
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store2(0u, asuint(unpack2x16snorm_b4aea6()));
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store2(0u, asuint(unpack2x16snorm_b4aea6()));
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = unpack2x16snorm_b4aea6();
+  VertexOutput v_1 = tint_symbol;
+  return v_1;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_2 = vertex_main_inner();
+  VertexOutput v_3 = v_2;
+  VertexOutput v_4 = v_2;
+  vertex_main_outputs v_5 = {v_4.prevent_dce, v_3.pos};
+  return v_5;
+}
+
diff --git a/test/tint/builtins/gen/var/unpack2x16snorm/b4aea6.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/unpack2x16snorm/b4aea6.wgsl.expected.ir.fxc.hlsl
index 9411b9c..63bf3bb 100644
--- a/test/tint/builtins/gen/var/unpack2x16snorm/b4aea6.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/unpack2x16snorm/b4aea6.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,44 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  float2 prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: unpack2x16snorm
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation float2 VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+float2 unpack2x16snorm_b4aea6() {
+  uint arg_0 = 1u;
+  int v = int(arg_0);
+  float2 res = clamp((float2((int2((v << 16u), v) >> (16u).xx)) / 32767.0f), (-1.0f).xx, (1.0f).xx);
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store2(0u, asuint(unpack2x16snorm_b4aea6()));
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store2(0u, asuint(unpack2x16snorm_b4aea6()));
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = unpack2x16snorm_b4aea6();
+  VertexOutput v_1 = tint_symbol;
+  return v_1;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_2 = vertex_main_inner();
+  VertexOutput v_3 = v_2;
+  VertexOutput v_4 = v_2;
+  vertex_main_outputs v_5 = {v_4.prevent_dce, v_3.pos};
+  return v_5;
+}
+
diff --git a/test/tint/builtins/gen/var/unpack2x16unorm/7699c0.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/unpack2x16unorm/7699c0.wgsl.expected.ir.dxc.hlsl
index e361c6e..496705c 100644
--- a/test/tint/builtins/gen/var/unpack2x16unorm/7699c0.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/unpack2x16unorm/7699c0.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,44 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  float2 prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: unpack2x16unorm
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation float2 VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+float2 unpack2x16unorm_7699c0() {
+  uint arg_0 = 1u;
+  uint v = arg_0;
+  float2 res = (float2(uint2((v & 65535u), (v >> 16u))) / 65535.0f);
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store2(0u, asuint(unpack2x16unorm_7699c0()));
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store2(0u, asuint(unpack2x16unorm_7699c0()));
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = unpack2x16unorm_7699c0();
+  VertexOutput v_1 = tint_symbol;
+  return v_1;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_2 = vertex_main_inner();
+  VertexOutput v_3 = v_2;
+  VertexOutput v_4 = v_2;
+  vertex_main_outputs v_5 = {v_4.prevent_dce, v_3.pos};
+  return v_5;
+}
+
diff --git a/test/tint/builtins/gen/var/unpack2x16unorm/7699c0.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/unpack2x16unorm/7699c0.wgsl.expected.ir.fxc.hlsl
index e361c6e..496705c 100644
--- a/test/tint/builtins/gen/var/unpack2x16unorm/7699c0.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/unpack2x16unorm/7699c0.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,44 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  float2 prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: unpack2x16unorm
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation float2 VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+float2 unpack2x16unorm_7699c0() {
+  uint arg_0 = 1u;
+  uint v = arg_0;
+  float2 res = (float2(uint2((v & 65535u), (v >> 16u))) / 65535.0f);
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store2(0u, asuint(unpack2x16unorm_7699c0()));
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store2(0u, asuint(unpack2x16unorm_7699c0()));
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = unpack2x16unorm_7699c0();
+  VertexOutput v_1 = tint_symbol;
+  return v_1;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_2 = vertex_main_inner();
+  VertexOutput v_3 = v_2;
+  VertexOutput v_4 = v_2;
+  vertex_main_outputs v_5 = {v_4.prevent_dce, v_3.pos};
+  return v_5;
+}
+
diff --git a/test/tint/builtins/gen/var/unpack4x8snorm/523fb3.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/unpack4x8snorm/523fb3.wgsl.expected.ir.dxc.hlsl
index 62fbcec..6c69bbc 100644
--- a/test/tint/builtins/gen/var/unpack4x8snorm/523fb3.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/unpack4x8snorm/523fb3.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,44 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  float4 prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: unpack4x8snorm
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation float4 VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+float4 unpack4x8snorm_523fb3() {
+  uint arg_0 = 1u;
+  int v = int(arg_0);
+  float4 res = clamp((float4((int4((v << 24u), (v << 16u), (v << 8u), v) >> (24u).xxxx)) / 127.0f), (-1.0f).xxxx, (1.0f).xxxx);
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store4(0u, asuint(unpack4x8snorm_523fb3()));
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store4(0u, asuint(unpack4x8snorm_523fb3()));
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = unpack4x8snorm_523fb3();
+  VertexOutput v_1 = tint_symbol;
+  return v_1;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_2 = vertex_main_inner();
+  VertexOutput v_3 = v_2;
+  VertexOutput v_4 = v_2;
+  vertex_main_outputs v_5 = {v_4.prevent_dce, v_3.pos};
+  return v_5;
+}
+
diff --git a/test/tint/builtins/gen/var/unpack4x8snorm/523fb3.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/unpack4x8snorm/523fb3.wgsl.expected.ir.fxc.hlsl
index 62fbcec..6c69bbc 100644
--- a/test/tint/builtins/gen/var/unpack4x8snorm/523fb3.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/unpack4x8snorm/523fb3.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,44 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  float4 prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: unpack4x8snorm
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation float4 VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+float4 unpack4x8snorm_523fb3() {
+  uint arg_0 = 1u;
+  int v = int(arg_0);
+  float4 res = clamp((float4((int4((v << 24u), (v << 16u), (v << 8u), v) >> (24u).xxxx)) / 127.0f), (-1.0f).xxxx, (1.0f).xxxx);
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store4(0u, asuint(unpack4x8snorm_523fb3()));
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store4(0u, asuint(unpack4x8snorm_523fb3()));
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = unpack4x8snorm_523fb3();
+  VertexOutput v_1 = tint_symbol;
+  return v_1;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_2 = vertex_main_inner();
+  VertexOutput v_3 = v_2;
+  VertexOutput v_4 = v_2;
+  vertex_main_outputs v_5 = {v_4.prevent_dce, v_3.pos};
+  return v_5;
+}
+
diff --git a/test/tint/builtins/gen/var/unpack4x8unorm/750c74.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/unpack4x8unorm/750c74.wgsl.expected.ir.dxc.hlsl
index 2dbdaf2..8a2b8d8 100644
--- a/test/tint/builtins/gen/var/unpack4x8unorm/750c74.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/unpack4x8unorm/750c74.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,44 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  float4 prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: unpack4x8unorm
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation float4 VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+float4 unpack4x8unorm_750c74() {
+  uint arg_0 = 1u;
+  uint v = arg_0;
+  float4 res = (float4(uint4((v & 255u), ((v >> 8u) & 255u), ((v >> 16u) & 255u), (v >> 24u))) / 255.0f);
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store4(0u, asuint(unpack4x8unorm_750c74()));
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store4(0u, asuint(unpack4x8unorm_750c74()));
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = unpack4x8unorm_750c74();
+  VertexOutput v_1 = tint_symbol;
+  return v_1;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_2 = vertex_main_inner();
+  VertexOutput v_3 = v_2;
+  VertexOutput v_4 = v_2;
+  vertex_main_outputs v_5 = {v_4.prevent_dce, v_3.pos};
+  return v_5;
+}
+
diff --git a/test/tint/builtins/gen/var/unpack4x8unorm/750c74.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/unpack4x8unorm/750c74.wgsl.expected.ir.fxc.hlsl
index 2dbdaf2..8a2b8d8 100644
--- a/test/tint/builtins/gen/var/unpack4x8unorm/750c74.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/unpack4x8unorm/750c74.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,44 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  float4 prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: unpack4x8unorm
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation float4 VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+float4 unpack4x8unorm_750c74() {
+  uint arg_0 = 1u;
+  uint v = arg_0;
+  float4 res = (float4(uint4((v & 255u), ((v >> 8u) & 255u), ((v >> 16u) & 255u), (v >> 24u))) / 255.0f);
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store4(0u, asuint(unpack4x8unorm_750c74()));
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store4(0u, asuint(unpack4x8unorm_750c74()));
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = unpack4x8unorm_750c74();
+  VertexOutput v_1 = tint_symbol;
+  return v_1;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_2 = vertex_main_inner();
+  VertexOutput v_3 = v_2;
+  VertexOutput v_4 = v_2;
+  vertex_main_outputs v_5 = {v_4.prevent_dce, v_3.pos};
+  return v_5;
+}
+
diff --git a/test/tint/builtins/gen/var/unpack4xI8/830900.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/unpack4xI8/830900.wgsl.expected.ir.dxc.hlsl
index 22014a2..97ff0b5 100644
--- a/test/tint/builtins/gen/var/unpack4xI8/830900.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/unpack4xI8/830900.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,43 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  int4 prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: unpack4xI8
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation int4 VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+int4 unpack4xI8_830900() {
+  uint arg_0 = 1u;
+  int4 res = unpack_s8s32(int8_t4_packed(arg_0));
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store4(0u, asuint(unpack4xI8_830900()));
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store4(0u, asuint(unpack4xI8_830900()));
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = unpack4xI8_830900();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
diff --git a/test/tint/builtins/gen/var/unpack4xI8/830900.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/unpack4xI8/830900.wgsl.expected.ir.fxc.hlsl
index 22014a2..3a793dc 100644
--- a/test/tint/builtins/gen/var/unpack4xI8/830900.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/unpack4xI8/830900.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,46 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  int4 prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: unpack4xI8
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation int4 VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+int4 unpack4xI8_830900() {
+  uint arg_0 = 1u;
+  uint v = arg_0;
+  uint4 v_1 = uint4(24u, 16u, 8u, 0u);
+  int4 v_2 = asint((uint4((v).xxxx) << v_1));
+  int4 res = (v_2 >> uint4((24u).xxxx));
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store4(0u, asuint(unpack4xI8_830900()));
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store4(0u, asuint(unpack4xI8_830900()));
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = unpack4xI8_830900();
+  VertexOutput v_3 = tint_symbol;
+  return v_3;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_4 = vertex_main_inner();
+  VertexOutput v_5 = v_4;
+  VertexOutput v_6 = v_4;
+  vertex_main_outputs v_7 = {v_6.prevent_dce, v_5.pos};
+  return v_7;
+}
+
diff --git a/test/tint/builtins/gen/var/unpack4xU8/a5ea55.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/unpack4xU8/a5ea55.wgsl.expected.ir.dxc.hlsl
index ebcd977..586933a 100644
--- a/test/tint/builtins/gen/var/unpack4xU8/a5ea55.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/unpack4xU8/a5ea55.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,43 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  uint4 prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: unpack4xU8
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation uint4 VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+uint4 unpack4xU8_a5ea55() {
+  uint arg_0 = 1u;
+  uint4 res = unpack_u8u32(uint8_t4_packed(arg_0));
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store4(0u, unpack4xU8_a5ea55());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store4(0u, unpack4xU8_a5ea55());
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = unpack4xU8_a5ea55();
+  VertexOutput v = tint_symbol;
+  return v;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_1 = vertex_main_inner();
+  VertexOutput v_2 = v_1;
+  VertexOutput v_3 = v_1;
+  vertex_main_outputs v_4 = {v_3.prevent_dce, v_2.pos};
+  return v_4;
+}
+
diff --git a/test/tint/builtins/gen/var/unpack4xU8/a5ea55.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/unpack4xU8/a5ea55.wgsl.expected.ir.fxc.hlsl
index ebcd977..319d21b 100644
--- a/test/tint/builtins/gen/var/unpack4xU8/a5ea55.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/unpack4xU8/a5ea55.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,46 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  uint4 prevent_dce;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: unpack4xU8
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  nointerpolation uint4 VertexOutput_prevent_dce : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+uint4 unpack4xU8_a5ea55() {
+  uint arg_0 = 1u;
+  uint v = arg_0;
+  uint4 v_1 = uint4(0u, 8u, 16u, 24u);
+  uint4 v_2 = (uint4((v).xxxx) >> v_1);
+  uint4 res = (v_2 & uint4((255u).xxxx));
+  return res;
+}
+
+void fragment_main() {
+  prevent_dce.Store4(0u, unpack4xU8_a5ea55());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  prevent_dce.Store4(0u, unpack4xU8_a5ea55());
+}
+
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = (VertexOutput)0;
+  tint_symbol.pos = (0.0f).xxxx;
+  tint_symbol.prevent_dce = unpack4xU8_a5ea55();
+  VertexOutput v_3 = tint_symbol;
+  return v_3;
+}
+
+vertex_main_outputs vertex_main() {
+  VertexOutput v_4 = vertex_main_inner();
+  VertexOutput v_5 = v_4;
+  VertexOutput v_6 = v_4;
+  vertex_main_outputs v_7 = {v_6.prevent_dce, v_5.pos};
+  return v_7;
+}
+
diff --git a/test/tint/builtins/gen/var/workgroupBarrier/a17f7f.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/workgroupBarrier/a17f7f.wgsl.expected.ir.dxc.hlsl
index 479ffbc..c588872 100644
--- a/test/tint/builtins/gen/var/workgroupBarrier/a17f7f.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/workgroupBarrier/a17f7f.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,10 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: workgroupBarrier
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+void workgroupBarrier_a17f7f() {
+  GroupMemoryBarrierWithGroupSync();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  workgroupBarrier_a17f7f();
+}
+
diff --git a/test/tint/builtins/gen/var/workgroupBarrier/a17f7f.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/workgroupBarrier/a17f7f.wgsl.expected.ir.fxc.hlsl
index 479ffbc..c588872 100644
--- a/test/tint/builtins/gen/var/workgroupBarrier/a17f7f.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/workgroupBarrier/a17f7f.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,10 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: workgroupBarrier
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+void workgroupBarrier_a17f7f() {
+  GroupMemoryBarrierWithGroupSync();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  workgroupBarrier_a17f7f();
+}
+
diff --git a/test/tint/builtins/gen/var/workgroupUniformLoad/37307c.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/workgroupUniformLoad/37307c.wgsl.expected.ir.dxc.hlsl
index 479ffbc..61bb6ba 100644
--- a/test/tint/builtins/gen/var/workgroupUniformLoad/37307c.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/workgroupUniformLoad/37307c.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,28 @@
-SKIP: FAILED
+struct compute_main_inputs {
+  uint tint_local_index : SV_GroupIndex;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: workgroupBarrier
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+
+RWByteAddressBuffer prevent_dce : register(u0);
+groupshared uint arg_0;
+uint workgroupUniformLoad_37307c() {
+  GroupMemoryBarrierWithGroupSync();
+  uint v = arg_0;
+  GroupMemoryBarrierWithGroupSync();
+  uint res = v;
+  return res;
+}
+
+void compute_main_inner(uint tint_local_index) {
+  if ((tint_local_index == 0u)) {
+    arg_0 = 0u;
+  }
+  GroupMemoryBarrierWithGroupSync();
+  prevent_dce.Store(0u, workgroupUniformLoad_37307c());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main(compute_main_inputs inputs) {
+  compute_main_inner(inputs.tint_local_index);
+}
+
diff --git a/test/tint/builtins/gen/var/workgroupUniformLoad/37307c.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/workgroupUniformLoad/37307c.wgsl.expected.ir.fxc.hlsl
index 479ffbc..61bb6ba 100644
--- a/test/tint/builtins/gen/var/workgroupUniformLoad/37307c.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/workgroupUniformLoad/37307c.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,28 @@
-SKIP: FAILED
+struct compute_main_inputs {
+  uint tint_local_index : SV_GroupIndex;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: workgroupBarrier
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+
+RWByteAddressBuffer prevent_dce : register(u0);
+groupshared uint arg_0;
+uint workgroupUniformLoad_37307c() {
+  GroupMemoryBarrierWithGroupSync();
+  uint v = arg_0;
+  GroupMemoryBarrierWithGroupSync();
+  uint res = v;
+  return res;
+}
+
+void compute_main_inner(uint tint_local_index) {
+  if ((tint_local_index == 0u)) {
+    arg_0 = 0u;
+  }
+  GroupMemoryBarrierWithGroupSync();
+  prevent_dce.Store(0u, workgroupUniformLoad_37307c());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main(compute_main_inputs inputs) {
+  compute_main_inner(inputs.tint_local_index);
+}
+
diff --git a/test/tint/builtins/gen/var/workgroupUniformLoad/7a857c.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/workgroupUniformLoad/7a857c.wgsl.expected.ir.dxc.hlsl
index 479ffbc..7e99cbc 100644
--- a/test/tint/builtins/gen/var/workgroupUniformLoad/7a857c.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/workgroupUniformLoad/7a857c.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,28 @@
-SKIP: FAILED
+struct compute_main_inputs {
+  uint tint_local_index : SV_GroupIndex;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: workgroupBarrier
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+
+RWByteAddressBuffer prevent_dce : register(u0);
+groupshared float arg_0;
+float workgroupUniformLoad_7a857c() {
+  GroupMemoryBarrierWithGroupSync();
+  float v = arg_0;
+  GroupMemoryBarrierWithGroupSync();
+  float res = v;
+  return res;
+}
+
+void compute_main_inner(uint tint_local_index) {
+  if ((tint_local_index == 0u)) {
+    arg_0 = 0.0f;
+  }
+  GroupMemoryBarrierWithGroupSync();
+  prevent_dce.Store(0u, asuint(workgroupUniformLoad_7a857c()));
+}
+
+[numthreads(1, 1, 1)]
+void compute_main(compute_main_inputs inputs) {
+  compute_main_inner(inputs.tint_local_index);
+}
+
diff --git a/test/tint/builtins/gen/var/workgroupUniformLoad/7a857c.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/workgroupUniformLoad/7a857c.wgsl.expected.ir.fxc.hlsl
index 479ffbc..7e99cbc 100644
--- a/test/tint/builtins/gen/var/workgroupUniformLoad/7a857c.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/workgroupUniformLoad/7a857c.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,28 @@
-SKIP: FAILED
+struct compute_main_inputs {
+  uint tint_local_index : SV_GroupIndex;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: workgroupBarrier
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+
+RWByteAddressBuffer prevent_dce : register(u0);
+groupshared float arg_0;
+float workgroupUniformLoad_7a857c() {
+  GroupMemoryBarrierWithGroupSync();
+  float v = arg_0;
+  GroupMemoryBarrierWithGroupSync();
+  float res = v;
+  return res;
+}
+
+void compute_main_inner(uint tint_local_index) {
+  if ((tint_local_index == 0u)) {
+    arg_0 = 0.0f;
+  }
+  GroupMemoryBarrierWithGroupSync();
+  prevent_dce.Store(0u, asuint(workgroupUniformLoad_7a857c()));
+}
+
+[numthreads(1, 1, 1)]
+void compute_main(compute_main_inputs inputs) {
+  compute_main_inner(inputs.tint_local_index);
+}
+
diff --git a/test/tint/builtins/gen/var/workgroupUniformLoad/9d33de.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/workgroupUniformLoad/9d33de.wgsl.expected.ir.dxc.hlsl
index 479ffbc..8a6c6aa 100644
--- a/test/tint/builtins/gen/var/workgroupUniformLoad/9d33de.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/workgroupUniformLoad/9d33de.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,28 @@
-SKIP: FAILED
+struct compute_main_inputs {
+  uint tint_local_index : SV_GroupIndex;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: workgroupBarrier
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+
+RWByteAddressBuffer prevent_dce : register(u0);
+groupshared int arg_0;
+int workgroupUniformLoad_9d33de() {
+  GroupMemoryBarrierWithGroupSync();
+  int v = arg_0;
+  GroupMemoryBarrierWithGroupSync();
+  int res = v;
+  return res;
+}
+
+void compute_main_inner(uint tint_local_index) {
+  if ((tint_local_index == 0u)) {
+    arg_0 = 0;
+  }
+  GroupMemoryBarrierWithGroupSync();
+  prevent_dce.Store(0u, asuint(workgroupUniformLoad_9d33de()));
+}
+
+[numthreads(1, 1, 1)]
+void compute_main(compute_main_inputs inputs) {
+  compute_main_inner(inputs.tint_local_index);
+}
+
diff --git a/test/tint/builtins/gen/var/workgroupUniformLoad/9d33de.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/workgroupUniformLoad/9d33de.wgsl.expected.ir.fxc.hlsl
index 479ffbc..8a6c6aa 100644
--- a/test/tint/builtins/gen/var/workgroupUniformLoad/9d33de.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/workgroupUniformLoad/9d33de.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,28 @@
-SKIP: FAILED
+struct compute_main_inputs {
+  uint tint_local_index : SV_GroupIndex;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: workgroupBarrier
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+
+RWByteAddressBuffer prevent_dce : register(u0);
+groupshared int arg_0;
+int workgroupUniformLoad_9d33de() {
+  GroupMemoryBarrierWithGroupSync();
+  int v = arg_0;
+  GroupMemoryBarrierWithGroupSync();
+  int res = v;
+  return res;
+}
+
+void compute_main_inner(uint tint_local_index) {
+  if ((tint_local_index == 0u)) {
+    arg_0 = 0;
+  }
+  GroupMemoryBarrierWithGroupSync();
+  prevent_dce.Store(0u, asuint(workgroupUniformLoad_9d33de()));
+}
+
+[numthreads(1, 1, 1)]
+void compute_main(compute_main_inputs inputs) {
+  compute_main_inner(inputs.tint_local_index);
+}
+
diff --git a/test/tint/builtins/gen/var/workgroupUniformLoad/e07d08.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/workgroupUniformLoad/e07d08.wgsl.expected.ir.dxc.hlsl
index 479ffbc..5bc798a 100644
--- a/test/tint/builtins/gen/var/workgroupUniformLoad/e07d08.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/workgroupUniformLoad/e07d08.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,28 @@
-SKIP: FAILED
+struct compute_main_inputs {
+  uint tint_local_index : SV_GroupIndex;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: workgroupBarrier
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+
+RWByteAddressBuffer prevent_dce : register(u0);
+groupshared float16_t arg_0;
+float16_t workgroupUniformLoad_e07d08() {
+  GroupMemoryBarrierWithGroupSync();
+  float16_t v = arg_0;
+  GroupMemoryBarrierWithGroupSync();
+  float16_t res = v;
+  return res;
+}
+
+void compute_main_inner(uint tint_local_index) {
+  if ((tint_local_index == 0u)) {
+    arg_0 = float16_t(0.0h);
+  }
+  GroupMemoryBarrierWithGroupSync();
+  prevent_dce.Store<float16_t>(0u, workgroupUniformLoad_e07d08());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main(compute_main_inputs inputs) {
+  compute_main_inner(inputs.tint_local_index);
+}
+
diff --git a/test/tint/builtins/gen/var/workgroupUniformLoad/e07d08.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/workgroupUniformLoad/e07d08.wgsl.expected.ir.fxc.hlsl
index 479ffbc..bfccd14 100644
--- a/test/tint/builtins/gen/var/workgroupUniformLoad/e07d08.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/workgroupUniformLoad/e07d08.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,33 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: workgroupBarrier
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct compute_main_inputs {
+  uint tint_local_index : SV_GroupIndex;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+groupshared float16_t arg_0;
+float16_t workgroupUniformLoad_e07d08() {
+  GroupMemoryBarrierWithGroupSync();
+  float16_t v = arg_0;
+  GroupMemoryBarrierWithGroupSync();
+  float16_t res = v;
+  return res;
+}
+
+void compute_main_inner(uint tint_local_index) {
+  if ((tint_local_index == 0u)) {
+    arg_0 = float16_t(0.0h);
+  }
+  GroupMemoryBarrierWithGroupSync();
+  prevent_dce.Store<float16_t>(0u, workgroupUniformLoad_e07d08());
+}
+
+[numthreads(1, 1, 1)]
+void compute_main(compute_main_inputs inputs) {
+  compute_main_inner(inputs.tint_local_index);
+}
+
+FXC validation failure:
+c:\src\dawn\Shader@0x0000025AB4733A30(7,13-21): error X3000: unrecognized identifier 'float16_t'
+
diff --git a/test/tint/builtins/insertBits/scalar/i32.spvasm.expected.ir.dxc.hlsl b/test/tint/builtins/insertBits/scalar/i32.spvasm.expected.ir.dxc.hlsl
index 34730a7..5f4433c 100644
--- a/test/tint/builtins/insertBits/scalar/i32.spvasm.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/insertBits/scalar/i32.spvasm.expected.ir.dxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: insertBits
+..\..\src\tint\lang\core\ir\transform\builtin_polyfill.cc:555 internal compiler error: TINT_UNIMPLEMENTED insertBits polyfill level
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/insertBits/scalar/i32.spvasm.expected.ir.fxc.hlsl b/test/tint/builtins/insertBits/scalar/i32.spvasm.expected.ir.fxc.hlsl
index 34730a7..5f4433c 100644
--- a/test/tint/builtins/insertBits/scalar/i32.spvasm.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/insertBits/scalar/i32.spvasm.expected.ir.fxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: insertBits
+..\..\src\tint\lang\core\ir\transform\builtin_polyfill.cc:555 internal compiler error: TINT_UNIMPLEMENTED insertBits polyfill level
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/insertBits/scalar/u32.spvasm.expected.ir.dxc.hlsl b/test/tint/builtins/insertBits/scalar/u32.spvasm.expected.ir.dxc.hlsl
index 34730a7..5f4433c 100644
--- a/test/tint/builtins/insertBits/scalar/u32.spvasm.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/insertBits/scalar/u32.spvasm.expected.ir.dxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: insertBits
+..\..\src\tint\lang\core\ir\transform\builtin_polyfill.cc:555 internal compiler error: TINT_UNIMPLEMENTED insertBits polyfill level
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/insertBits/scalar/u32.spvasm.expected.ir.fxc.hlsl b/test/tint/builtins/insertBits/scalar/u32.spvasm.expected.ir.fxc.hlsl
index 34730a7..5f4433c 100644
--- a/test/tint/builtins/insertBits/scalar/u32.spvasm.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/insertBits/scalar/u32.spvasm.expected.ir.fxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: insertBits
+..\..\src\tint\lang\core\ir\transform\builtin_polyfill.cc:555 internal compiler error: TINT_UNIMPLEMENTED insertBits polyfill level
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/insertBits/vec3/i32.spvasm.expected.ir.dxc.hlsl b/test/tint/builtins/insertBits/vec3/i32.spvasm.expected.ir.dxc.hlsl
index 34730a7..5f4433c 100644
--- a/test/tint/builtins/insertBits/vec3/i32.spvasm.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/insertBits/vec3/i32.spvasm.expected.ir.dxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: insertBits
+..\..\src\tint\lang\core\ir\transform\builtin_polyfill.cc:555 internal compiler error: TINT_UNIMPLEMENTED insertBits polyfill level
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/insertBits/vec3/i32.spvasm.expected.ir.fxc.hlsl b/test/tint/builtins/insertBits/vec3/i32.spvasm.expected.ir.fxc.hlsl
index 34730a7..5f4433c 100644
--- a/test/tint/builtins/insertBits/vec3/i32.spvasm.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/insertBits/vec3/i32.spvasm.expected.ir.fxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: insertBits
+..\..\src\tint\lang\core\ir\transform\builtin_polyfill.cc:555 internal compiler error: TINT_UNIMPLEMENTED insertBits polyfill level
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/insertBits/vec3/u32.spvasm.expected.ir.dxc.hlsl b/test/tint/builtins/insertBits/vec3/u32.spvasm.expected.ir.dxc.hlsl
index 34730a7..5f4433c 100644
--- a/test/tint/builtins/insertBits/vec3/u32.spvasm.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/insertBits/vec3/u32.spvasm.expected.ir.dxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: insertBits
+..\..\src\tint\lang\core\ir\transform\builtin_polyfill.cc:555 internal compiler error: TINT_UNIMPLEMENTED insertBits polyfill level
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/insertBits/vec3/u32.spvasm.expected.ir.fxc.hlsl b/test/tint/builtins/insertBits/vec3/u32.spvasm.expected.ir.fxc.hlsl
index 34730a7..5f4433c 100644
--- a/test/tint/builtins/insertBits/vec3/u32.spvasm.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/insertBits/vec3/u32.spvasm.expected.ir.fxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: insertBits
+..\..\src\tint\lang\core\ir\transform\builtin_polyfill.cc:555 internal compiler error: TINT_UNIMPLEMENTED insertBits polyfill level
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/modf/scalar/const.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/modf/scalar/const.wgsl.expected.ir.dxc.hlsl
index 0ba40c6..bbb6870 100644
--- a/test/tint/builtins/modf/scalar/const.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/modf/scalar/const.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,15 @@
-SKIP: FAILED
+struct modf_result_f32 {
+  float fract;
+  float whole;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+
+[numthreads(1, 1, 1)]
+void main() {
+  modf_result_f32 v = {0.25f, 1.0f};
+  modf_result_f32 res = v;
+  float fract = res.fract;
+  modf_result_f32 v_1 = v;
+  float whole = v_1.whole;
+}
+
diff --git a/test/tint/builtins/modf/scalar/const.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/modf/scalar/const.wgsl.expected.ir.fxc.hlsl
index 0ba40c6..bbb6870 100644
--- a/test/tint/builtins/modf/scalar/const.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/modf/scalar/const.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,15 @@
-SKIP: FAILED
+struct modf_result_f32 {
+  float fract;
+  float whole;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+
+[numthreads(1, 1, 1)]
+void main() {
+  modf_result_f32 v = {0.25f, 1.0f};
+  modf_result_f32 res = v;
+  float fract = res.fract;
+  modf_result_f32 v_1 = v;
+  float whole = v_1.whole;
+}
+
diff --git a/test/tint/builtins/modf/scalar/const_members.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/modf/scalar/const_members.wgsl.expected.ir.dxc.hlsl
index b2c39e0..a5fc3ff 100644
--- a/test/tint/builtins/modf/scalar/const_members.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/modf/scalar/const_members.wgsl.expected.ir.dxc.hlsl
@@ -1,3 +1,4 @@
+
 [numthreads(1, 1, 1)]
 void main() {
   float fract = 0.25f;
diff --git a/test/tint/builtins/modf/scalar/const_members.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/modf/scalar/const_members.wgsl.expected.ir.fxc.hlsl
index b2c39e0..a5fc3ff 100644
--- a/test/tint/builtins/modf/scalar/const_members.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/modf/scalar/const_members.wgsl.expected.ir.fxc.hlsl
@@ -1,3 +1,4 @@
+
 [numthreads(1, 1, 1)]
 void main() {
   float fract = 0.25f;
diff --git a/test/tint/builtins/modf/scalar/mixed.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/modf/scalar/mixed.wgsl.expected.ir.dxc.hlsl
index 0ba40c6..0d35377 100644
--- a/test/tint/builtins/modf/scalar/mixed.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/modf/scalar/mixed.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,25 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct modf_result_f32 {
+  float fract;
+  float whole;
+};
+
+
+[numthreads(1, 1, 1)]
+void main() {
+  float runtime_in = 1.25f;
+  modf_result_f32 res = {0.25f, 1.0f};
+  modf_result_f32 v = modf(runtime_in);
+  res = v;
+  modf_result_f32 v_1 = {0.25f, 1.0f};
+  res = v_1;
+  float fract = res.fract;
+  float whole = res.whole;
+}
+
+DXC validation failure:
+hlsl.hlsl:11:23: error: use of undeclared identifier 'modf'
+  modf_result_f32 v = modf(runtime_in);
+                      ^
+
diff --git a/test/tint/builtins/modf/scalar/mixed.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/modf/scalar/mixed.wgsl.expected.ir.fxc.hlsl
index 0ba40c6..0d139dd 100644
--- a/test/tint/builtins/modf/scalar/mixed.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/modf/scalar/mixed.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,25 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct modf_result_f32 {
+  float fract;
+  float whole;
+};
+
+
+[numthreads(1, 1, 1)]
+void main() {
+  float runtime_in = 1.25f;
+  modf_result_f32 res = {0.25f, 1.0f};
+  modf_result_f32 v = modf(runtime_in);
+  res = v;
+  modf_result_f32 v_1 = {0.25f, 1.0f};
+  res = v_1;
+  float fract = res.fract;
+  float whole = res.whole;
+}
+
+FXC validation failure:
+c:\src\dawn\Shader@0x000001EA889D3840(11,23-38): error X3013: 'modf': no matching 1 parameter intrinsic function
+c:\src\dawn\Shader@0x000001EA889D3840(11,23-38): error X3013: Possible intrinsic functions are:
+c:\src\dawn\Shader@0x000001EA889D3840(11,23-38): error X3013:     modf(float|half|min10float|min16float, out float|half|min10float|min16float ip)
+
diff --git a/test/tint/builtins/modf/scalar/runtime.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/modf/scalar/runtime.wgsl.expected.ir.dxc.hlsl
index 3f437dc..0399da0 100644
--- a/test/tint/builtins/modf/scalar/runtime.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/modf/scalar/runtime.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,23 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Access
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct modf_result_f32 {
+  float fract;
+  float whole;
+};
+
+
+[numthreads(1, 1, 1)]
+void main() {
+  float tint_symbol = 1.25f;
+  modf_result_f32 v = modf(tint_symbol);
+  modf_result_f32 res = v;
+  float fract = res.fract;
+  modf_result_f32 v_1 = v;
+  float whole = v_1.whole;
+}
+
+DXC validation failure:
+hlsl.hlsl:10:23: error: use of undeclared identifier 'modf'
+  modf_result_f32 v = modf(tint_symbol);
+                      ^
+
diff --git a/test/tint/builtins/modf/scalar/runtime.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/modf/scalar/runtime.wgsl.expected.ir.fxc.hlsl
index 3f437dc..86dc7a8 100644
--- a/test/tint/builtins/modf/scalar/runtime.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/modf/scalar/runtime.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,23 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Access
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct modf_result_f32 {
+  float fract;
+  float whole;
+};
+
+
+[numthreads(1, 1, 1)]
+void main() {
+  float tint_symbol = 1.25f;
+  modf_result_f32 v = modf(tint_symbol);
+  modf_result_f32 res = v;
+  float fract = res.fract;
+  modf_result_f32 v_1 = v;
+  float whole = v_1.whole;
+}
+
+FXC validation failure:
+c:\src\dawn\Shader@0x000001DECBB40460(10,23-39): error X3013: 'modf': no matching 1 parameter intrinsic function
+c:\src\dawn\Shader@0x000001DECBB40460(10,23-39): error X3013: Possible intrinsic functions are:
+c:\src\dawn\Shader@0x000001DECBB40460(10,23-39): error X3013:     modf(float|half|min10float|min16float, out float|half|min10float|min16float ip)
+
diff --git a/test/tint/builtins/modf/vector/const.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/modf/vector/const.wgsl.expected.ir.dxc.hlsl
index 0ba40c6..e866522 100644
--- a/test/tint/builtins/modf/vector/const.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/modf/vector/const.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,15 @@
-SKIP: FAILED
+struct modf_result_vec2_f32 {
+  float2 fract;
+  float2 whole;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+
+[numthreads(1, 1, 1)]
+void main() {
+  modf_result_vec2_f32 v = {float2(0.25f, 0.75f), float2(1.0f, 3.0f)};
+  modf_result_vec2_f32 res = v;
+  float2 fract = res.fract;
+  modf_result_vec2_f32 v_1 = v;
+  float2 whole = v_1.whole;
+}
+
diff --git a/test/tint/builtins/modf/vector/const.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/modf/vector/const.wgsl.expected.ir.fxc.hlsl
index 0ba40c6..e866522 100644
--- a/test/tint/builtins/modf/vector/const.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/modf/vector/const.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,15 @@
-SKIP: FAILED
+struct modf_result_vec2_f32 {
+  float2 fract;
+  float2 whole;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+
+[numthreads(1, 1, 1)]
+void main() {
+  modf_result_vec2_f32 v = {float2(0.25f, 0.75f), float2(1.0f, 3.0f)};
+  modf_result_vec2_f32 res = v;
+  float2 fract = res.fract;
+  modf_result_vec2_f32 v_1 = v;
+  float2 whole = v_1.whole;
+}
+
diff --git a/test/tint/builtins/modf/vector/const_members.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/modf/vector/const_members.wgsl.expected.ir.dxc.hlsl
index 8142992..ba08fc3 100644
--- a/test/tint/builtins/modf/vector/const_members.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/modf/vector/const_members.wgsl.expected.ir.dxc.hlsl
@@ -1,3 +1,4 @@
+
 [numthreads(1, 1, 1)]
 void main() {
   float2 fract = float2(0.25f, 0.75f);
diff --git a/test/tint/builtins/modf/vector/const_members.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/modf/vector/const_members.wgsl.expected.ir.fxc.hlsl
index 8142992..ba08fc3 100644
--- a/test/tint/builtins/modf/vector/const_members.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/modf/vector/const_members.wgsl.expected.ir.fxc.hlsl
@@ -1,3 +1,4 @@
+
 [numthreads(1, 1, 1)]
 void main() {
   float2 fract = float2(0.25f, 0.75f);
diff --git a/test/tint/builtins/modf/vector/mixed.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/modf/vector/mixed.wgsl.expected.ir.dxc.hlsl
index 0ba40c6..ced4fda 100644
--- a/test/tint/builtins/modf/vector/mixed.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/modf/vector/mixed.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,25 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct modf_result_vec2_f32 {
+  float2 fract;
+  float2 whole;
+};
+
+
+[numthreads(1, 1, 1)]
+void main() {
+  float2 runtime_in = float2(1.25f, 3.75f);
+  modf_result_vec2_f32 res = {float2(0.25f, 0.75f), float2(1.0f, 3.0f)};
+  modf_result_vec2_f32 v = modf(runtime_in);
+  res = v;
+  modf_result_vec2_f32 v_1 = {float2(0.25f, 0.75f), float2(1.0f, 3.0f)};
+  res = v_1;
+  float2 fract = res.fract;
+  float2 whole = res.whole;
+}
+
+DXC validation failure:
+hlsl.hlsl:11:28: error: use of undeclared identifier 'modf'
+  modf_result_vec2_f32 v = modf(runtime_in);
+                           ^
+
diff --git a/test/tint/builtins/modf/vector/mixed.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/modf/vector/mixed.wgsl.expected.ir.fxc.hlsl
index 0ba40c6..4b4178c 100644
--- a/test/tint/builtins/modf/vector/mixed.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/modf/vector/mixed.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,25 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct modf_result_vec2_f32 {
+  float2 fract;
+  float2 whole;
+};
+
+
+[numthreads(1, 1, 1)]
+void main() {
+  float2 runtime_in = float2(1.25f, 3.75f);
+  modf_result_vec2_f32 res = {float2(0.25f, 0.75f), float2(1.0f, 3.0f)};
+  modf_result_vec2_f32 v = modf(runtime_in);
+  res = v;
+  modf_result_vec2_f32 v_1 = {float2(0.25f, 0.75f), float2(1.0f, 3.0f)};
+  res = v_1;
+  float2 fract = res.fract;
+  float2 whole = res.whole;
+}
+
+FXC validation failure:
+c:\src\dawn\Shader@0x000002B4F8076C00(11,28-43): error X3013: 'modf': no matching 1 parameter intrinsic function
+c:\src\dawn\Shader@0x000002B4F8076C00(11,28-43): error X3013: Possible intrinsic functions are:
+c:\src\dawn\Shader@0x000002B4F8076C00(11,28-43): error X3013:     modf(float|half|min10float|min16float, out float|half|min10float|min16float ip)
+
diff --git a/test/tint/builtins/modf/vector/runtime.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/modf/vector/runtime.wgsl.expected.ir.dxc.hlsl
index 3f437dc..5dbe8d6 100644
--- a/test/tint/builtins/modf/vector/runtime.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/modf/vector/runtime.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,23 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Access
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct modf_result_vec2_f32 {
+  float2 fract;
+  float2 whole;
+};
+
+
+[numthreads(1, 1, 1)]
+void main() {
+  float2 tint_symbol = float2(1.25f, 3.75f);
+  modf_result_vec2_f32 v = modf(tint_symbol);
+  modf_result_vec2_f32 res = v;
+  float2 fract = res.fract;
+  modf_result_vec2_f32 v_1 = v;
+  float2 whole = v_1.whole;
+}
+
+DXC validation failure:
+hlsl.hlsl:10:28: error: use of undeclared identifier 'modf'
+  modf_result_vec2_f32 v = modf(tint_symbol);
+                           ^
+
diff --git a/test/tint/builtins/modf/vector/runtime.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/modf/vector/runtime.wgsl.expected.ir.fxc.hlsl
index 3f437dc..b728120 100644
--- a/test/tint/builtins/modf/vector/runtime.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/modf/vector/runtime.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,23 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Access
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct modf_result_vec2_f32 {
+  float2 fract;
+  float2 whole;
+};
+
+
+[numthreads(1, 1, 1)]
+void main() {
+  float2 tint_symbol = float2(1.25f, 3.75f);
+  modf_result_vec2_f32 v = modf(tint_symbol);
+  modf_result_vec2_f32 res = v;
+  float2 fract = res.fract;
+  modf_result_vec2_f32 v_1 = v;
+  float2 whole = v_1.whole;
+}
+
+FXC validation failure:
+c:\src\dawn\Shader@0x000001C4C4951BC0(10,28-44): error X3013: 'modf': no matching 1 parameter intrinsic function
+c:\src\dawn\Shader@0x000001C4C4951BC0(10,28-44): error X3013: Possible intrinsic functions are:
+c:\src\dawn\Shader@0x000001C4C4951BC0(10,28-44): error X3013:     modf(float|half|min10float|min16float, out float|half|min10float|min16float ip)
+
diff --git a/test/tint/builtins/radians.spvasm.expected.ir.dxc.hlsl b/test/tint/builtins/radians.spvasm.expected.ir.dxc.hlsl
index 494d794..5f718a9 100644
--- a/test/tint/builtins/radians.spvasm.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/radians.spvasm.expected.ir.dxc.hlsl
@@ -1,9 +1,13 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: radians
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+void main_1() {
+  float a = 0.0f;
+  float b = 0.0f;
+  a = 42.0f;
+  b = (a * 0.01745329238474369049f);
+}
+
+[numthreads(1, 1, 1)]
+void main() {
+  main_1();
+}
+
diff --git a/test/tint/builtins/radians.spvasm.expected.ir.fxc.hlsl b/test/tint/builtins/radians.spvasm.expected.ir.fxc.hlsl
index 494d794..5f718a9 100644
--- a/test/tint/builtins/radians.spvasm.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/radians.spvasm.expected.ir.fxc.hlsl
@@ -1,9 +1,13 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: radians
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+void main_1() {
+  float a = 0.0f;
+  float b = 0.0f;
+  a = 42.0f;
+  b = (a * 0.01745329238474369049f);
+}
+
+[numthreads(1, 1, 1)]
+void main() {
+  main_1();
+}
+
diff --git a/test/tint/builtins/repeated_use.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/repeated_use.wgsl.expected.ir.dxc.hlsl
index 33bc9a7..4509e61 100644
--- a/test/tint/builtins/repeated_use.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/repeated_use.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,29 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: degrees
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+[numthreads(1, 1, 1)]
+void main() {
+  float4 va = (0.0f).xxxx;
+  float4 a = (va * 57.295780181884765625f);
+  float4 vb = (1.0f).xxxx;
+  float4 b = (vb * 57.295780181884765625f);
+  float4 vc = float4(1.0f, 2.0f, 3.0f, 4.0f);
+  float4 c = (vc * 57.295780181884765625f);
+  float3 vd = (0.0f).xxx;
+  float3 d = (vd * 57.295780181884765625f);
+  float3 ve = (1.0f).xxx;
+  float3 e = (ve * 57.295780181884765625f);
+  float3 vf = float3(1.0f, 2.0f, 3.0f);
+  float3 f = (vf * 57.295780181884765625f);
+  float2 vg = (0.0f).xx;
+  float2 g = (vg * 57.295780181884765625f);
+  float2 vh = (1.0f).xx;
+  float2 h = (vh * 57.295780181884765625f);
+  float2 vi = float2(1.0f, 2.0f);
+  float2 i = (vi * 57.295780181884765625f);
+  float vj = 1.0f;
+  float j = (vj * 57.295780181884765625f);
+  float vk = 2.0f;
+  float k = (vk * 57.295780181884765625f);
+  float vl = 3.0f;
+  float l = (vl * 57.295780181884765625f);
+}
+
diff --git a/test/tint/builtins/repeated_use.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/repeated_use.wgsl.expected.ir.fxc.hlsl
index 33bc9a7..4509e61 100644
--- a/test/tint/builtins/repeated_use.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/repeated_use.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,29 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: degrees
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+[numthreads(1, 1, 1)]
+void main() {
+  float4 va = (0.0f).xxxx;
+  float4 a = (va * 57.295780181884765625f);
+  float4 vb = (1.0f).xxxx;
+  float4 b = (vb * 57.295780181884765625f);
+  float4 vc = float4(1.0f, 2.0f, 3.0f, 4.0f);
+  float4 c = (vc * 57.295780181884765625f);
+  float3 vd = (0.0f).xxx;
+  float3 d = (vd * 57.295780181884765625f);
+  float3 ve = (1.0f).xxx;
+  float3 e = (ve * 57.295780181884765625f);
+  float3 vf = float3(1.0f, 2.0f, 3.0f);
+  float3 f = (vf * 57.295780181884765625f);
+  float2 vg = (0.0f).xx;
+  float2 g = (vg * 57.295780181884765625f);
+  float2 vh = (1.0f).xx;
+  float2 h = (vh * 57.295780181884765625f);
+  float2 vi = float2(1.0f, 2.0f);
+  float2 i = (vi * 57.295780181884765625f);
+  float vj = 1.0f;
+  float j = (vj * 57.295780181884765625f);
+  float vk = 2.0f;
+  float k = (vk * 57.295780181884765625f);
+  float vl = 3.0f;
+  float l = (vl * 57.295780181884765625f);
+}
+
diff --git a/test/tint/builtins/textureDimensions/depth_ms.spvasm.expected.ir.dxc.hlsl b/test/tint/builtins/textureDimensions/depth_ms.spvasm.expected.ir.dxc.hlsl
index 48e23f4..75b2c4c 100644
--- a/test/tint/builtins/textureDimensions/depth_ms.spvasm.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/textureDimensions/depth_ms.spvasm.expected.ir.dxc.hlsl
@@ -1,9 +1,56 @@
-SKIP: FAILED
+struct vertex_main_out {
+  float4 tint_symbol_1_1;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Convert
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  float4 vertex_main_out_tint_symbol_1_1 : SV_Position;
+};
+
+
+Texture2DMS<float4> arg_0 : register(t0, space1);
+static float4 tint_symbol_1 = (0.0f).xxxx;
+void textureDimensions_f60bdb() {
+  int2 res = (0).xx;
+  uint3 v = (0u).xxx;
+  arg_0.GetDimensions(v[0u], v[1u], v[2u]);
+  res = int2(v.xy);
+}
+
+void tint_symbol_2(float4 tint_symbol) {
+  tint_symbol_1 = tint_symbol;
+}
+
+void vertex_main_1() {
+  textureDimensions_f60bdb();
+  tint_symbol_2((0.0f).xxxx);
+}
+
+vertex_main_out vertex_main_inner() {
+  vertex_main_1();
+  vertex_main_out v_1 = {tint_symbol_1};
+  return v_1;
+}
+
+void fragment_main_1() {
+  textureDimensions_f60bdb();
+}
+
+void fragment_main() {
+  fragment_main_1();
+}
+
+void compute_main_1() {
+  textureDimensions_f60bdb();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  compute_main_1();
+}
+
+vertex_main_outputs vertex_main() {
+  vertex_main_out v_2 = vertex_main_inner();
+  vertex_main_outputs v_3 = {v_2.tint_symbol_1_1};
+  return v_3;
+}
+
diff --git a/test/tint/builtins/textureDimensions/depth_ms.spvasm.expected.ir.fxc.hlsl b/test/tint/builtins/textureDimensions/depth_ms.spvasm.expected.ir.fxc.hlsl
index 48e23f4..75b2c4c 100644
--- a/test/tint/builtins/textureDimensions/depth_ms.spvasm.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/textureDimensions/depth_ms.spvasm.expected.ir.fxc.hlsl
@@ -1,9 +1,56 @@
-SKIP: FAILED
+struct vertex_main_out {
+  float4 tint_symbol_1_1;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Convert
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  float4 vertex_main_out_tint_symbol_1_1 : SV_Position;
+};
+
+
+Texture2DMS<float4> arg_0 : register(t0, space1);
+static float4 tint_symbol_1 = (0.0f).xxxx;
+void textureDimensions_f60bdb() {
+  int2 res = (0).xx;
+  uint3 v = (0u).xxx;
+  arg_0.GetDimensions(v[0u], v[1u], v[2u]);
+  res = int2(v.xy);
+}
+
+void tint_symbol_2(float4 tint_symbol) {
+  tint_symbol_1 = tint_symbol;
+}
+
+void vertex_main_1() {
+  textureDimensions_f60bdb();
+  tint_symbol_2((0.0f).xxxx);
+}
+
+vertex_main_out vertex_main_inner() {
+  vertex_main_1();
+  vertex_main_out v_1 = {tint_symbol_1};
+  return v_1;
+}
+
+void fragment_main_1() {
+  textureDimensions_f60bdb();
+}
+
+void fragment_main() {
+  fragment_main_1();
+}
+
+void compute_main_1() {
+  textureDimensions_f60bdb();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  compute_main_1();
+}
+
+vertex_main_outputs vertex_main() {
+  vertex_main_out v_2 = vertex_main_inner();
+  vertex_main_outputs v_3 = {v_2.tint_symbol_1_1};
+  return v_3;
+}
+
diff --git a/test/tint/builtins/textureGather/f32/alpha.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/textureGather/f32/alpha.wgsl.expected.ir.dxc.hlsl
index de83606..b8f1b20 100644
--- a/test/tint/builtins/textureGather/f32/alpha.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/textureGather/f32/alpha.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,7 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureGather
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+Texture2D<float4> t : register(t0, space1);
+SamplerState s : register(s1, space1);
+void main() {
+  float4 res = t.GatherAlpha(s, (0.0f).xx);
+}
+
diff --git a/test/tint/builtins/textureGather/f32/alpha.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/textureGather/f32/alpha.wgsl.expected.ir.fxc.hlsl
index de83606..b8f1b20 100644
--- a/test/tint/builtins/textureGather/f32/alpha.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/textureGather/f32/alpha.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,7 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureGather
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+Texture2D<float4> t : register(t0, space1);
+SamplerState s : register(s1, space1);
+void main() {
+  float4 res = t.GatherAlpha(s, (0.0f).xx);
+}
+
diff --git a/test/tint/builtins/textureGather/f32/blue.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/textureGather/f32/blue.wgsl.expected.ir.dxc.hlsl
index de83606..15dc3a4 100644
--- a/test/tint/builtins/textureGather/f32/blue.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/textureGather/f32/blue.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,7 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureGather
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+Texture2D<float4> t : register(t0, space1);
+SamplerState s : register(s1, space1);
+void main() {
+  float4 res = t.GatherBlue(s, (0.0f).xx);
+}
+
diff --git a/test/tint/builtins/textureGather/f32/blue.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/textureGather/f32/blue.wgsl.expected.ir.fxc.hlsl
index de83606..15dc3a4 100644
--- a/test/tint/builtins/textureGather/f32/blue.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/textureGather/f32/blue.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,7 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureGather
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+Texture2D<float4> t : register(t0, space1);
+SamplerState s : register(s1, space1);
+void main() {
+  float4 res = t.GatherBlue(s, (0.0f).xx);
+}
+
diff --git a/test/tint/builtins/textureGather/f32/green.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/textureGather/f32/green.wgsl.expected.ir.dxc.hlsl
index de83606..541694f 100644
--- a/test/tint/builtins/textureGather/f32/green.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/textureGather/f32/green.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,7 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureGather
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+Texture2D<float4> t : register(t0, space1);
+SamplerState s : register(s1, space1);
+void main() {
+  float4 res = t.GatherGreen(s, (0.0f).xx);
+}
+
diff --git a/test/tint/builtins/textureGather/f32/green.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/textureGather/f32/green.wgsl.expected.ir.fxc.hlsl
index de83606..541694f 100644
--- a/test/tint/builtins/textureGather/f32/green.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/textureGather/f32/green.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,7 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureGather
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+Texture2D<float4> t : register(t0, space1);
+SamplerState s : register(s1, space1);
+void main() {
+  float4 res = t.GatherGreen(s, (0.0f).xx);
+}
+
diff --git a/test/tint/builtins/textureGather/f32/red.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/textureGather/f32/red.wgsl.expected.ir.dxc.hlsl
index de83606..b189afc 100644
--- a/test/tint/builtins/textureGather/f32/red.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/textureGather/f32/red.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,7 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureGather
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+Texture2D<float4> t : register(t0, space1);
+SamplerState s : register(s1, space1);
+void main() {
+  float4 res = t.GatherRed(s, (0.0f).xx);
+}
+
diff --git a/test/tint/builtins/textureGather/f32/red.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/textureGather/f32/red.wgsl.expected.ir.fxc.hlsl
index de83606..b189afc 100644
--- a/test/tint/builtins/textureGather/f32/red.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/textureGather/f32/red.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,7 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureGather
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+Texture2D<float4> t : register(t0, space1);
+SamplerState s : register(s1, space1);
+void main() {
+  float4 res = t.GatherRed(s, (0.0f).xx);
+}
+
diff --git a/test/tint/builtins/textureGather/i32/alpha.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/textureGather/i32/alpha.wgsl.expected.ir.dxc.hlsl
index de83606..f62cfce 100644
--- a/test/tint/builtins/textureGather/i32/alpha.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/textureGather/i32/alpha.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,7 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureGather
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+Texture2D<int4> t : register(t0, space1);
+SamplerState s : register(s1, space1);
+void main() {
+  int4 res = t.GatherAlpha(s, (0.0f).xx);
+}
+
diff --git a/test/tint/builtins/textureGather/i32/alpha.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/textureGather/i32/alpha.wgsl.expected.ir.fxc.hlsl
index de83606..f62cfce 100644
--- a/test/tint/builtins/textureGather/i32/alpha.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/textureGather/i32/alpha.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,7 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureGather
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+Texture2D<int4> t : register(t0, space1);
+SamplerState s : register(s1, space1);
+void main() {
+  int4 res = t.GatherAlpha(s, (0.0f).xx);
+}
+
diff --git a/test/tint/builtins/textureGather/i32/blue.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/textureGather/i32/blue.wgsl.expected.ir.dxc.hlsl
index de83606..c4f48cc 100644
--- a/test/tint/builtins/textureGather/i32/blue.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/textureGather/i32/blue.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,7 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureGather
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+Texture2D<int4> t : register(t0, space1);
+SamplerState s : register(s1, space1);
+void main() {
+  int4 res = t.GatherBlue(s, (0.0f).xx);
+}
+
diff --git a/test/tint/builtins/textureGather/i32/blue.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/textureGather/i32/blue.wgsl.expected.ir.fxc.hlsl
index de83606..c4f48cc 100644
--- a/test/tint/builtins/textureGather/i32/blue.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/textureGather/i32/blue.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,7 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureGather
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+Texture2D<int4> t : register(t0, space1);
+SamplerState s : register(s1, space1);
+void main() {
+  int4 res = t.GatherBlue(s, (0.0f).xx);
+}
+
diff --git a/test/tint/builtins/textureGather/i32/green.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/textureGather/i32/green.wgsl.expected.ir.dxc.hlsl
index de83606..0ac19ca 100644
--- a/test/tint/builtins/textureGather/i32/green.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/textureGather/i32/green.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,7 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureGather
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+Texture2D<int4> t : register(t0, space1);
+SamplerState s : register(s1, space1);
+void main() {
+  int4 res = t.GatherGreen(s, (0.0f).xx);
+}
+
diff --git a/test/tint/builtins/textureGather/i32/green.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/textureGather/i32/green.wgsl.expected.ir.fxc.hlsl
index de83606..0ac19ca 100644
--- a/test/tint/builtins/textureGather/i32/green.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/textureGather/i32/green.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,7 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureGather
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+Texture2D<int4> t : register(t0, space1);
+SamplerState s : register(s1, space1);
+void main() {
+  int4 res = t.GatherGreen(s, (0.0f).xx);
+}
+
diff --git a/test/tint/builtins/textureGather/i32/red.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/textureGather/i32/red.wgsl.expected.ir.dxc.hlsl
index de83606..3163a3c 100644
--- a/test/tint/builtins/textureGather/i32/red.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/textureGather/i32/red.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,7 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureGather
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+Texture2D<int4> t : register(t0, space1);
+SamplerState s : register(s1, space1);
+void main() {
+  int4 res = t.GatherRed(s, (0.0f).xx);
+}
+
diff --git a/test/tint/builtins/textureGather/i32/red.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/textureGather/i32/red.wgsl.expected.ir.fxc.hlsl
index de83606..3163a3c 100644
--- a/test/tint/builtins/textureGather/i32/red.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/textureGather/i32/red.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,7 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureGather
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+Texture2D<int4> t : register(t0, space1);
+SamplerState s : register(s1, space1);
+void main() {
+  int4 res = t.GatherRed(s, (0.0f).xx);
+}
+
diff --git a/test/tint/builtins/textureGather/u32/alpha.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/textureGather/u32/alpha.wgsl.expected.ir.dxc.hlsl
index de83606..f32d7d1 100644
--- a/test/tint/builtins/textureGather/u32/alpha.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/textureGather/u32/alpha.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,7 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureGather
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+Texture2D<uint4> t : register(t0, space1);
+SamplerState s : register(s1, space1);
+void main() {
+  uint4 res = t.GatherAlpha(s, (0.0f).xx);
+}
+
diff --git a/test/tint/builtins/textureGather/u32/alpha.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/textureGather/u32/alpha.wgsl.expected.ir.fxc.hlsl
index de83606..f32d7d1 100644
--- a/test/tint/builtins/textureGather/u32/alpha.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/textureGather/u32/alpha.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,7 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureGather
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+Texture2D<uint4> t : register(t0, space1);
+SamplerState s : register(s1, space1);
+void main() {
+  uint4 res = t.GatherAlpha(s, (0.0f).xx);
+}
+
diff --git a/test/tint/builtins/textureGather/u32/blue.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/textureGather/u32/blue.wgsl.expected.ir.dxc.hlsl
index de83606..45757a6 100644
--- a/test/tint/builtins/textureGather/u32/blue.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/textureGather/u32/blue.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,7 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureGather
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+Texture2D<uint4> t : register(t0, space1);
+SamplerState s : register(s1, space1);
+void main() {
+  uint4 res = t.GatherBlue(s, (0.0f).xx);
+}
+
diff --git a/test/tint/builtins/textureGather/u32/blue.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/textureGather/u32/blue.wgsl.expected.ir.fxc.hlsl
index de83606..45757a6 100644
--- a/test/tint/builtins/textureGather/u32/blue.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/textureGather/u32/blue.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,7 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureGather
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+Texture2D<uint4> t : register(t0, space1);
+SamplerState s : register(s1, space1);
+void main() {
+  uint4 res = t.GatherBlue(s, (0.0f).xx);
+}
+
diff --git a/test/tint/builtins/textureGather/u32/green.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/textureGather/u32/green.wgsl.expected.ir.dxc.hlsl
index de83606..637fd96 100644
--- a/test/tint/builtins/textureGather/u32/green.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/textureGather/u32/green.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,7 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureGather
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+Texture2D<uint4> t : register(t0, space1);
+SamplerState s : register(s1, space1);
+void main() {
+  uint4 res = t.GatherGreen(s, (0.0f).xx);
+}
+
diff --git a/test/tint/builtins/textureGather/u32/green.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/textureGather/u32/green.wgsl.expected.ir.fxc.hlsl
index de83606..637fd96 100644
--- a/test/tint/builtins/textureGather/u32/green.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/textureGather/u32/green.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,7 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureGather
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+Texture2D<uint4> t : register(t0, space1);
+SamplerState s : register(s1, space1);
+void main() {
+  uint4 res = t.GatherGreen(s, (0.0f).xx);
+}
+
diff --git a/test/tint/builtins/textureGather/u32/red.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/textureGather/u32/red.wgsl.expected.ir.dxc.hlsl
index de83606..7acdbf1 100644
--- a/test/tint/builtins/textureGather/u32/red.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/textureGather/u32/red.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,7 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureGather
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+Texture2D<uint4> t : register(t0, space1);
+SamplerState s : register(s1, space1);
+void main() {
+  uint4 res = t.GatherRed(s, (0.0f).xx);
+}
+
diff --git a/test/tint/builtins/textureGather/u32/red.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/textureGather/u32/red.wgsl.expected.ir.fxc.hlsl
index de83606..7acdbf1 100644
--- a/test/tint/builtins/textureGather/u32/red.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/textureGather/u32/red.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,7 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureGather
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+Texture2D<uint4> t : register(t0, space1);
+SamplerState s : register(s1, space1);
+void main() {
+  uint4 res = t.GatherRed(s, (0.0f).xx);
+}
+
diff --git a/test/tint/builtins/textureLoad/depth_ms.spvasm.expected.ir.dxc.hlsl b/test/tint/builtins/textureLoad/depth_ms.spvasm.expected.ir.dxc.hlsl
index 3f437dc..3cd91a5 100644
--- a/test/tint/builtins/textureLoad/depth_ms.spvasm.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/textureLoad/depth_ms.spvasm.expected.ir.dxc.hlsl
@@ -1,9 +1,56 @@
-SKIP: FAILED
+struct vertex_main_out {
+  float4 tint_symbol_1_1;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Access
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  float4 vertex_main_out_tint_symbol_1_1 : SV_Position;
+};
+
+
+Texture2DMS<float4> arg_0 : register(t0, space1);
+static float4 tint_symbol_1 = (0.0f).xxxx;
+void textureLoad_6273b1() {
+  float res = 0.0f;
+  Texture2DMS<float4> v = arg_0;
+  int2 v_1 = int2((0).xx);
+  res = float4(v.Load(v_1, int(1)).x, 0.0f, 0.0f, 0.0f)[0u];
+}
+
+void tint_symbol_2(float4 tint_symbol) {
+  tint_symbol_1 = tint_symbol;
+}
+
+void vertex_main_1() {
+  textureLoad_6273b1();
+  tint_symbol_2((0.0f).xxxx);
+}
+
+vertex_main_out vertex_main_inner() {
+  vertex_main_1();
+  vertex_main_out v_2 = {tint_symbol_1};
+  return v_2;
+}
+
+void fragment_main_1() {
+  textureLoad_6273b1();
+}
+
+void fragment_main() {
+  fragment_main_1();
+}
+
+void compute_main_1() {
+  textureLoad_6273b1();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  compute_main_1();
+}
+
+vertex_main_outputs vertex_main() {
+  vertex_main_out v_3 = vertex_main_inner();
+  vertex_main_outputs v_4 = {v_3.tint_symbol_1_1};
+  return v_4;
+}
+
diff --git a/test/tint/builtins/textureLoad/depth_ms.spvasm.expected.ir.fxc.hlsl b/test/tint/builtins/textureLoad/depth_ms.spvasm.expected.ir.fxc.hlsl
index 3f437dc..3cd91a5 100644
--- a/test/tint/builtins/textureLoad/depth_ms.spvasm.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/textureLoad/depth_ms.spvasm.expected.ir.fxc.hlsl
@@ -1,9 +1,56 @@
-SKIP: FAILED
+struct vertex_main_out {
+  float4 tint_symbol_1_1;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Access
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  float4 vertex_main_out_tint_symbol_1_1 : SV_Position;
+};
+
+
+Texture2DMS<float4> arg_0 : register(t0, space1);
+static float4 tint_symbol_1 = (0.0f).xxxx;
+void textureLoad_6273b1() {
+  float res = 0.0f;
+  Texture2DMS<float4> v = arg_0;
+  int2 v_1 = int2((0).xx);
+  res = float4(v.Load(v_1, int(1)).x, 0.0f, 0.0f, 0.0f)[0u];
+}
+
+void tint_symbol_2(float4 tint_symbol) {
+  tint_symbol_1 = tint_symbol;
+}
+
+void vertex_main_1() {
+  textureLoad_6273b1();
+  tint_symbol_2((0.0f).xxxx);
+}
+
+vertex_main_out vertex_main_inner() {
+  vertex_main_1();
+  vertex_main_out v_2 = {tint_symbol_1};
+  return v_2;
+}
+
+void fragment_main_1() {
+  textureLoad_6273b1();
+}
+
+void fragment_main() {
+  fragment_main_1();
+}
+
+void compute_main_1() {
+  textureLoad_6273b1();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  compute_main_1();
+}
+
+vertex_main_outputs vertex_main() {
+  vertex_main_out v_3 = vertex_main_inner();
+  vertex_main_outputs v_4 = {v_3.tint_symbol_1_1};
+  return v_4;
+}
+
diff --git a/test/tint/builtins/textureLoad/texture_external_param.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/textureLoad/texture_external_param.wgsl.expected.ir.dxc.hlsl
index fd28383..7c80b41 100644
--- a/test/tint/builtins/textureLoad/texture_external_param.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/textureLoad/texture_external_param.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,168 @@
-SKIP: FAILED
+struct tint_GammaTransferParams {
+  float G;
+  float A;
+  float B;
+  float C;
+  float D;
+  float E;
+  float F;
+  uint padding;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureLoad
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct tint_ExternalTextureParams {
+  uint numPlanes;
+  uint doYuvToRgbConversionOnly;
+  float3x4 yuvToRgbConversionMatrix;
+  tint_GammaTransferParams gammaDecodeParams;
+  tint_GammaTransferParams gammaEncodeParams;
+  float3x3 gamutConversionMatrix;
+  float3x2 sampleTransform;
+  float3x2 loadTransform;
+  float2 samplePlane0RectMin;
+  float2 samplePlane0RectMax;
+  float2 samplePlane1RectMin;
+  float2 samplePlane1RectMax;
+  uint2 visibleSize;
+  float2 plane1CoordFactor;
+};
+
+struct vertex_main_outputs {
+  float4 tint_symbol_1 : SV_Position;
+};
+
+
+Texture2D<float4> arg_0_plane0 : register(t0, space1);
+Texture2D<float4> arg_0_plane1 : register(t1, space1);
+cbuffer cbuffer_arg_0_params : register(b2, space1) {
+  uint4 arg_0_params[17];
+};
+uint2 tint_v2f32_to_v2u32(float2 value) {
+  return (((value <= (4294967040.0f).xx)) ? ((((value >= (0.0f).xx)) ? (uint2(value)) : ((0u).xx))) : ((4294967295u).xx));
+}
+
+float3 tint_GammaCorrection(float3 v, tint_GammaTransferParams params) {
+  float3 v_1 = float3((params.G).xxx);
+  float3 v_2 = float3((params.D).xxx);
+  float3 v_3 = abs(v);
+  float3 v_4 = float3(sign(v));
+  return (((v_3 < v_2)) ? ((v_4 * ((params.C * v_3) + params.F))) : ((v_4 * (pow(((params.A * v_3) + params.B), v_1) + params.E))));
+}
+
+float4 tint_TextureLoadExternal(Texture2D<float4> plane_0, Texture2D<float4> plane_1, tint_ExternalTextureParams params, uint2 coords) {
+  float2 v_5 = round(mul(float3(float2(min(coords, params.visibleSize)), 1.0f), params.loadTransform));
+  uint2 v_6 = tint_v2f32_to_v2u32(v_5);
+  float3 v_7 = (0.0f).xxx;
+  float v_8 = 0.0f;
+  if ((params.numPlanes == 1u)) {
+    int2 v_9 = int2(v_6);
+    float4 v_10 = float4(plane_0.Load(int3(v_9, int(0u))));
+    v_7 = v_10.xyz;
+    v_8 = v_10[3u];
+  } else {
+    int2 v_11 = int2(v_6);
+    float v_12 = float4(plane_0.Load(int3(v_11, int(0u))))[0u];
+    int2 v_13 = int2(tint_v2f32_to_v2u32((v_5 * params.plane1CoordFactor)));
+    v_7 = mul(params.yuvToRgbConversionMatrix, float4(v_12, float4(plane_1.Load(int3(v_13, int(0u)))).xy, 1.0f));
+    v_8 = 1.0f;
+  }
+  float3 v_14 = v_7;
+  float3 v_15 = (0.0f).xxx;
+  if ((params.doYuvToRgbConversionOnly == 0u)) {
+    tint_GammaTransferParams v_16 = params.gammaDecodeParams;
+    tint_GammaTransferParams v_17 = params.gammaEncodeParams;
+    v_15 = tint_GammaCorrection(mul(tint_GammaCorrection(v_14, v_16), params.gamutConversionMatrix), v_17);
+  } else {
+    v_15 = v_14;
+  }
+  return float4(v_15, v_8);
+}
+
+float4 textureLoad2d(Texture2D<float4> tint_symbol_plane0, Texture2D<float4> tint_symbol_plane1, tint_ExternalTextureParams tint_symbol_params, int2 coords) {
+  return tint_TextureLoadExternal(tint_symbol_plane0, tint_symbol_plane1, tint_symbol_params, uint2(coords));
+}
+
+float3x2 v_18(uint start_byte_offset) {
+  uint4 v_19 = arg_0_params[(start_byte_offset / 16u)];
+  float2 v_20 = asfloat((((((start_byte_offset % 16u) / 4u) == 2u)) ? (v_19.zw) : (v_19.xy)));
+  uint4 v_21 = arg_0_params[((8u + start_byte_offset) / 16u)];
+  float2 v_22 = asfloat(((((((8u + start_byte_offset) % 16u) / 4u) == 2u)) ? (v_21.zw) : (v_21.xy)));
+  uint4 v_23 = arg_0_params[((16u + start_byte_offset) / 16u)];
+  return float3x2(v_20, v_22, asfloat(((((((16u + start_byte_offset) % 16u) / 4u) == 2u)) ? (v_23.zw) : (v_23.xy))));
+}
+
+float3x3 v_24(uint start_byte_offset) {
+  float3 v_25 = asfloat(arg_0_params[(start_byte_offset / 16u)].xyz);
+  float3 v_26 = asfloat(arg_0_params[((16u + start_byte_offset) / 16u)].xyz);
+  return float3x3(v_25, v_26, asfloat(arg_0_params[((32u + start_byte_offset) / 16u)].xyz));
+}
+
+tint_GammaTransferParams v_27(uint start_byte_offset) {
+  float v_28 = asfloat(arg_0_params[(start_byte_offset / 16u)][((start_byte_offset % 16u) / 4u)]);
+  float v_29 = asfloat(arg_0_params[((4u + start_byte_offset) / 16u)][(((4u + start_byte_offset) % 16u) / 4u)]);
+  float v_30 = asfloat(arg_0_params[((8u + start_byte_offset) / 16u)][(((8u + start_byte_offset) % 16u) / 4u)]);
+  float v_31 = asfloat(arg_0_params[((12u + start_byte_offset) / 16u)][(((12u + start_byte_offset) % 16u) / 4u)]);
+  float v_32 = asfloat(arg_0_params[((16u + start_byte_offset) / 16u)][(((16u + start_byte_offset) % 16u) / 4u)]);
+  float v_33 = asfloat(arg_0_params[((20u + start_byte_offset) / 16u)][(((20u + start_byte_offset) % 16u) / 4u)]);
+  float v_34 = asfloat(arg_0_params[((24u + start_byte_offset) / 16u)][(((24u + start_byte_offset) % 16u) / 4u)]);
+  tint_GammaTransferParams v_35 = {v_28, v_29, v_30, v_31, v_32, v_33, v_34, arg_0_params[((28u + start_byte_offset) / 16u)][(((28u + start_byte_offset) % 16u) / 4u)]};
+  return v_35;
+}
+
+float3x4 v_36(uint start_byte_offset) {
+  float4 v_37 = asfloat(arg_0_params[(start_byte_offset / 16u)]);
+  float4 v_38 = asfloat(arg_0_params[((16u + start_byte_offset) / 16u)]);
+  return float3x4(v_37, v_38, asfloat(arg_0_params[((32u + start_byte_offset) / 16u)]));
+}
+
+tint_ExternalTextureParams v_39(uint start_byte_offset) {
+  uint v_40 = arg_0_params[(start_byte_offset / 16u)][((start_byte_offset % 16u) / 4u)];
+  uint v_41 = arg_0_params[((4u + start_byte_offset) / 16u)][(((4u + start_byte_offset) % 16u) / 4u)];
+  float3x4 v_42 = v_36((16u + start_byte_offset));
+  tint_GammaTransferParams v_43 = v_27((64u + start_byte_offset));
+  tint_GammaTransferParams v_44 = v_27((96u + start_byte_offset));
+  float3x3 v_45 = v_24((128u + start_byte_offset));
+  float3x2 v_46 = v_18((176u + start_byte_offset));
+  float3x2 v_47 = v_18((200u + start_byte_offset));
+  uint4 v_48 = arg_0_params[((224u + start_byte_offset) / 16u)];
+  float2 v_49 = asfloat(((((((224u + start_byte_offset) % 16u) / 4u) == 2u)) ? (v_48.zw) : (v_48.xy)));
+  uint4 v_50 = arg_0_params[((232u + start_byte_offset) / 16u)];
+  float2 v_51 = asfloat(((((((232u + start_byte_offset) % 16u) / 4u) == 2u)) ? (v_50.zw) : (v_50.xy)));
+  uint4 v_52 = arg_0_params[((240u + start_byte_offset) / 16u)];
+  float2 v_53 = asfloat(((((((240u + start_byte_offset) % 16u) / 4u) == 2u)) ? (v_52.zw) : (v_52.xy)));
+  uint4 v_54 = arg_0_params[((248u + start_byte_offset) / 16u)];
+  float2 v_55 = asfloat(((((((248u + start_byte_offset) % 16u) / 4u) == 2u)) ? (v_54.zw) : (v_54.xy)));
+  uint4 v_56 = arg_0_params[((256u + start_byte_offset) / 16u)];
+  uint2 v_57 = ((((((256u + start_byte_offset) % 16u) / 4u) == 2u)) ? (v_56.zw) : (v_56.xy));
+  uint4 v_58 = arg_0_params[((264u + start_byte_offset) / 16u)];
+  tint_GammaTransferParams v_59 = v_43;
+  tint_GammaTransferParams v_60 = v_44;
+  tint_ExternalTextureParams v_61 = {v_40, v_41, v_42, v_59, v_60, v_45, v_46, v_47, v_49, v_51, v_53, v_55, v_57, asfloat(((((((264u + start_byte_offset) % 16u) / 4u) == 2u)) ? (v_58.zw) : (v_58.xy)))};
+  return v_61;
+}
+
+void doTextureLoad() {
+  Texture2D<float4> v_62 = arg_0_plane0;
+  Texture2D<float4> v_63 = arg_0_plane1;
+  tint_ExternalTextureParams v_64 = v_39(0u);
+  float4 res = textureLoad2d(v_62, v_63, v_64, (0).xx);
+}
+
+float4 vertex_main_inner() {
+  doTextureLoad();
+  return (0.0f).xxxx;
+}
+
+void fragment_main() {
+  doTextureLoad();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  doTextureLoad();
+}
+
+vertex_main_outputs vertex_main() {
+  vertex_main_outputs v_65 = {vertex_main_inner()};
+  return v_65;
+}
+
diff --git a/test/tint/builtins/textureLoad/texture_external_param.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/textureLoad/texture_external_param.wgsl.expected.ir.fxc.hlsl
index fd28383..7c80b41 100644
--- a/test/tint/builtins/textureLoad/texture_external_param.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/textureLoad/texture_external_param.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,168 @@
-SKIP: FAILED
+struct tint_GammaTransferParams {
+  float G;
+  float A;
+  float B;
+  float C;
+  float D;
+  float E;
+  float F;
+  uint padding;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureLoad
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct tint_ExternalTextureParams {
+  uint numPlanes;
+  uint doYuvToRgbConversionOnly;
+  float3x4 yuvToRgbConversionMatrix;
+  tint_GammaTransferParams gammaDecodeParams;
+  tint_GammaTransferParams gammaEncodeParams;
+  float3x3 gamutConversionMatrix;
+  float3x2 sampleTransform;
+  float3x2 loadTransform;
+  float2 samplePlane0RectMin;
+  float2 samplePlane0RectMax;
+  float2 samplePlane1RectMin;
+  float2 samplePlane1RectMax;
+  uint2 visibleSize;
+  float2 plane1CoordFactor;
+};
+
+struct vertex_main_outputs {
+  float4 tint_symbol_1 : SV_Position;
+};
+
+
+Texture2D<float4> arg_0_plane0 : register(t0, space1);
+Texture2D<float4> arg_0_plane1 : register(t1, space1);
+cbuffer cbuffer_arg_0_params : register(b2, space1) {
+  uint4 arg_0_params[17];
+};
+uint2 tint_v2f32_to_v2u32(float2 value) {
+  return (((value <= (4294967040.0f).xx)) ? ((((value >= (0.0f).xx)) ? (uint2(value)) : ((0u).xx))) : ((4294967295u).xx));
+}
+
+float3 tint_GammaCorrection(float3 v, tint_GammaTransferParams params) {
+  float3 v_1 = float3((params.G).xxx);
+  float3 v_2 = float3((params.D).xxx);
+  float3 v_3 = abs(v);
+  float3 v_4 = float3(sign(v));
+  return (((v_3 < v_2)) ? ((v_4 * ((params.C * v_3) + params.F))) : ((v_4 * (pow(((params.A * v_3) + params.B), v_1) + params.E))));
+}
+
+float4 tint_TextureLoadExternal(Texture2D<float4> plane_0, Texture2D<float4> plane_1, tint_ExternalTextureParams params, uint2 coords) {
+  float2 v_5 = round(mul(float3(float2(min(coords, params.visibleSize)), 1.0f), params.loadTransform));
+  uint2 v_6 = tint_v2f32_to_v2u32(v_5);
+  float3 v_7 = (0.0f).xxx;
+  float v_8 = 0.0f;
+  if ((params.numPlanes == 1u)) {
+    int2 v_9 = int2(v_6);
+    float4 v_10 = float4(plane_0.Load(int3(v_9, int(0u))));
+    v_7 = v_10.xyz;
+    v_8 = v_10[3u];
+  } else {
+    int2 v_11 = int2(v_6);
+    float v_12 = float4(plane_0.Load(int3(v_11, int(0u))))[0u];
+    int2 v_13 = int2(tint_v2f32_to_v2u32((v_5 * params.plane1CoordFactor)));
+    v_7 = mul(params.yuvToRgbConversionMatrix, float4(v_12, float4(plane_1.Load(int3(v_13, int(0u)))).xy, 1.0f));
+    v_8 = 1.0f;
+  }
+  float3 v_14 = v_7;
+  float3 v_15 = (0.0f).xxx;
+  if ((params.doYuvToRgbConversionOnly == 0u)) {
+    tint_GammaTransferParams v_16 = params.gammaDecodeParams;
+    tint_GammaTransferParams v_17 = params.gammaEncodeParams;
+    v_15 = tint_GammaCorrection(mul(tint_GammaCorrection(v_14, v_16), params.gamutConversionMatrix), v_17);
+  } else {
+    v_15 = v_14;
+  }
+  return float4(v_15, v_8);
+}
+
+float4 textureLoad2d(Texture2D<float4> tint_symbol_plane0, Texture2D<float4> tint_symbol_plane1, tint_ExternalTextureParams tint_symbol_params, int2 coords) {
+  return tint_TextureLoadExternal(tint_symbol_plane0, tint_symbol_plane1, tint_symbol_params, uint2(coords));
+}
+
+float3x2 v_18(uint start_byte_offset) {
+  uint4 v_19 = arg_0_params[(start_byte_offset / 16u)];
+  float2 v_20 = asfloat((((((start_byte_offset % 16u) / 4u) == 2u)) ? (v_19.zw) : (v_19.xy)));
+  uint4 v_21 = arg_0_params[((8u + start_byte_offset) / 16u)];
+  float2 v_22 = asfloat(((((((8u + start_byte_offset) % 16u) / 4u) == 2u)) ? (v_21.zw) : (v_21.xy)));
+  uint4 v_23 = arg_0_params[((16u + start_byte_offset) / 16u)];
+  return float3x2(v_20, v_22, asfloat(((((((16u + start_byte_offset) % 16u) / 4u) == 2u)) ? (v_23.zw) : (v_23.xy))));
+}
+
+float3x3 v_24(uint start_byte_offset) {
+  float3 v_25 = asfloat(arg_0_params[(start_byte_offset / 16u)].xyz);
+  float3 v_26 = asfloat(arg_0_params[((16u + start_byte_offset) / 16u)].xyz);
+  return float3x3(v_25, v_26, asfloat(arg_0_params[((32u + start_byte_offset) / 16u)].xyz));
+}
+
+tint_GammaTransferParams v_27(uint start_byte_offset) {
+  float v_28 = asfloat(arg_0_params[(start_byte_offset / 16u)][((start_byte_offset % 16u) / 4u)]);
+  float v_29 = asfloat(arg_0_params[((4u + start_byte_offset) / 16u)][(((4u + start_byte_offset) % 16u) / 4u)]);
+  float v_30 = asfloat(arg_0_params[((8u + start_byte_offset) / 16u)][(((8u + start_byte_offset) % 16u) / 4u)]);
+  float v_31 = asfloat(arg_0_params[((12u + start_byte_offset) / 16u)][(((12u + start_byte_offset) % 16u) / 4u)]);
+  float v_32 = asfloat(arg_0_params[((16u + start_byte_offset) / 16u)][(((16u + start_byte_offset) % 16u) / 4u)]);
+  float v_33 = asfloat(arg_0_params[((20u + start_byte_offset) / 16u)][(((20u + start_byte_offset) % 16u) / 4u)]);
+  float v_34 = asfloat(arg_0_params[((24u + start_byte_offset) / 16u)][(((24u + start_byte_offset) % 16u) / 4u)]);
+  tint_GammaTransferParams v_35 = {v_28, v_29, v_30, v_31, v_32, v_33, v_34, arg_0_params[((28u + start_byte_offset) / 16u)][(((28u + start_byte_offset) % 16u) / 4u)]};
+  return v_35;
+}
+
+float3x4 v_36(uint start_byte_offset) {
+  float4 v_37 = asfloat(arg_0_params[(start_byte_offset / 16u)]);
+  float4 v_38 = asfloat(arg_0_params[((16u + start_byte_offset) / 16u)]);
+  return float3x4(v_37, v_38, asfloat(arg_0_params[((32u + start_byte_offset) / 16u)]));
+}
+
+tint_ExternalTextureParams v_39(uint start_byte_offset) {
+  uint v_40 = arg_0_params[(start_byte_offset / 16u)][((start_byte_offset % 16u) / 4u)];
+  uint v_41 = arg_0_params[((4u + start_byte_offset) / 16u)][(((4u + start_byte_offset) % 16u) / 4u)];
+  float3x4 v_42 = v_36((16u + start_byte_offset));
+  tint_GammaTransferParams v_43 = v_27((64u + start_byte_offset));
+  tint_GammaTransferParams v_44 = v_27((96u + start_byte_offset));
+  float3x3 v_45 = v_24((128u + start_byte_offset));
+  float3x2 v_46 = v_18((176u + start_byte_offset));
+  float3x2 v_47 = v_18((200u + start_byte_offset));
+  uint4 v_48 = arg_0_params[((224u + start_byte_offset) / 16u)];
+  float2 v_49 = asfloat(((((((224u + start_byte_offset) % 16u) / 4u) == 2u)) ? (v_48.zw) : (v_48.xy)));
+  uint4 v_50 = arg_0_params[((232u + start_byte_offset) / 16u)];
+  float2 v_51 = asfloat(((((((232u + start_byte_offset) % 16u) / 4u) == 2u)) ? (v_50.zw) : (v_50.xy)));
+  uint4 v_52 = arg_0_params[((240u + start_byte_offset) / 16u)];
+  float2 v_53 = asfloat(((((((240u + start_byte_offset) % 16u) / 4u) == 2u)) ? (v_52.zw) : (v_52.xy)));
+  uint4 v_54 = arg_0_params[((248u + start_byte_offset) / 16u)];
+  float2 v_55 = asfloat(((((((248u + start_byte_offset) % 16u) / 4u) == 2u)) ? (v_54.zw) : (v_54.xy)));
+  uint4 v_56 = arg_0_params[((256u + start_byte_offset) / 16u)];
+  uint2 v_57 = ((((((256u + start_byte_offset) % 16u) / 4u) == 2u)) ? (v_56.zw) : (v_56.xy));
+  uint4 v_58 = arg_0_params[((264u + start_byte_offset) / 16u)];
+  tint_GammaTransferParams v_59 = v_43;
+  tint_GammaTransferParams v_60 = v_44;
+  tint_ExternalTextureParams v_61 = {v_40, v_41, v_42, v_59, v_60, v_45, v_46, v_47, v_49, v_51, v_53, v_55, v_57, asfloat(((((((264u + start_byte_offset) % 16u) / 4u) == 2u)) ? (v_58.zw) : (v_58.xy)))};
+  return v_61;
+}
+
+void doTextureLoad() {
+  Texture2D<float4> v_62 = arg_0_plane0;
+  Texture2D<float4> v_63 = arg_0_plane1;
+  tint_ExternalTextureParams v_64 = v_39(0u);
+  float4 res = textureLoad2d(v_62, v_63, v_64, (0).xx);
+}
+
+float4 vertex_main_inner() {
+  doTextureLoad();
+  return (0.0f).xxxx;
+}
+
+void fragment_main() {
+  doTextureLoad();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  doTextureLoad();
+}
+
+vertex_main_outputs vertex_main() {
+  vertex_main_outputs v_65 = {vertex_main_inner()};
+  return v_65;
+}
+
diff --git a/test/tint/builtins/textureLoad/texture_param.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/textureLoad/texture_param.wgsl.expected.ir.dxc.hlsl
index fd28383..c0ca14a 100644
--- a/test/tint/builtins/textureLoad/texture_param.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/textureLoad/texture_param.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,34 @@
-SKIP: FAILED
+struct vertex_main_outputs {
+  float4 tint_symbol_1 : SV_Position;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureLoad
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+
+Texture2D<int4> arg_0 : register(t0, space1);
+int4 textureLoad2d(Texture2D<int4> tint_symbol, int2 coords, int level) {
+  int2 v = int2(coords);
+  return int4(tint_symbol.Load(int3(v, int(level))));
+}
+
+void doTextureLoad() {
+  int4 res = textureLoad2d(arg_0, (0).xx, 0);
+}
+
+float4 vertex_main_inner() {
+  doTextureLoad();
+  return (0.0f).xxxx;
+}
+
+void fragment_main() {
+  doTextureLoad();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  doTextureLoad();
+}
+
+vertex_main_outputs vertex_main() {
+  vertex_main_outputs v_1 = {vertex_main_inner()};
+  return v_1;
+}
+
diff --git a/test/tint/builtins/textureLoad/texture_param.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/textureLoad/texture_param.wgsl.expected.ir.fxc.hlsl
index fd28383..c0ca14a 100644
--- a/test/tint/builtins/textureLoad/texture_param.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/textureLoad/texture_param.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,34 @@
-SKIP: FAILED
+struct vertex_main_outputs {
+  float4 tint_symbol_1 : SV_Position;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureLoad
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+
+Texture2D<int4> arg_0 : register(t0, space1);
+int4 textureLoad2d(Texture2D<int4> tint_symbol, int2 coords, int level) {
+  int2 v = int2(coords);
+  return int4(tint_symbol.Load(int3(v, int(level))));
+}
+
+void doTextureLoad() {
+  int4 res = textureLoad2d(arg_0, (0).xx, 0);
+}
+
+float4 vertex_main_inner() {
+  doTextureLoad();
+  return (0.0f).xxxx;
+}
+
+void fragment_main() {
+  doTextureLoad();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  doTextureLoad();
+}
+
+vertex_main_outputs vertex_main() {
+  vertex_main_outputs v_1 = {vertex_main_inner()};
+  return v_1;
+}
+
diff --git a/test/tint/builtins/textureNumSamples/depth_ms.spvasm.expected.ir.dxc.hlsl b/test/tint/builtins/textureNumSamples/depth_ms.spvasm.expected.ir.dxc.hlsl
index 48e23f4..55fd089 100644
--- a/test/tint/builtins/textureNumSamples/depth_ms.spvasm.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/textureNumSamples/depth_ms.spvasm.expected.ir.dxc.hlsl
@@ -1,9 +1,56 @@
-SKIP: FAILED
+struct vertex_main_out {
+  float4 tint_symbol_1_1;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Convert
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  float4 vertex_main_out_tint_symbol_1_1 : SV_Position;
+};
+
+
+Texture2DMS<float4> arg_0 : register(t0, space1);
+static float4 tint_symbol_1 = (0.0f).xxxx;
+void textureNumSamples_a3c8a0() {
+  int res = 0;
+  uint3 v = (0u).xxx;
+  arg_0.GetDimensions(v[0u], v[1u], v[2u]);
+  res = int(v.z);
+}
+
+void tint_symbol_2(float4 tint_symbol) {
+  tint_symbol_1 = tint_symbol;
+}
+
+void vertex_main_1() {
+  textureNumSamples_a3c8a0();
+  tint_symbol_2((0.0f).xxxx);
+}
+
+vertex_main_out vertex_main_inner() {
+  vertex_main_1();
+  vertex_main_out v_1 = {tint_symbol_1};
+  return v_1;
+}
+
+void fragment_main_1() {
+  textureNumSamples_a3c8a0();
+}
+
+void fragment_main() {
+  fragment_main_1();
+}
+
+void compute_main_1() {
+  textureNumSamples_a3c8a0();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  compute_main_1();
+}
+
+vertex_main_outputs vertex_main() {
+  vertex_main_out v_2 = vertex_main_inner();
+  vertex_main_outputs v_3 = {v_2.tint_symbol_1_1};
+  return v_3;
+}
+
diff --git a/test/tint/builtins/textureNumSamples/depth_ms.spvasm.expected.ir.fxc.hlsl b/test/tint/builtins/textureNumSamples/depth_ms.spvasm.expected.ir.fxc.hlsl
index 48e23f4..55fd089 100644
--- a/test/tint/builtins/textureNumSamples/depth_ms.spvasm.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/textureNumSamples/depth_ms.spvasm.expected.ir.fxc.hlsl
@@ -1,9 +1,56 @@
-SKIP: FAILED
+struct vertex_main_out {
+  float4 tint_symbol_1_1;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Convert
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vertex_main_outputs {
+  float4 vertex_main_out_tint_symbol_1_1 : SV_Position;
+};
+
+
+Texture2DMS<float4> arg_0 : register(t0, space1);
+static float4 tint_symbol_1 = (0.0f).xxxx;
+void textureNumSamples_a3c8a0() {
+  int res = 0;
+  uint3 v = (0u).xxx;
+  arg_0.GetDimensions(v[0u], v[1u], v[2u]);
+  res = int(v.z);
+}
+
+void tint_symbol_2(float4 tint_symbol) {
+  tint_symbol_1 = tint_symbol;
+}
+
+void vertex_main_1() {
+  textureNumSamples_a3c8a0();
+  tint_symbol_2((0.0f).xxxx);
+}
+
+vertex_main_out vertex_main_inner() {
+  vertex_main_1();
+  vertex_main_out v_1 = {tint_symbol_1};
+  return v_1;
+}
+
+void fragment_main_1() {
+  textureNumSamples_a3c8a0();
+}
+
+void fragment_main() {
+  fragment_main_1();
+}
+
+void compute_main_1() {
+  textureNumSamples_a3c8a0();
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  compute_main_1();
+}
+
+vertex_main_outputs vertex_main() {
+  vertex_main_out v_2 = vertex_main_inner();
+  vertex_main_outputs v_3 = {v_2.tint_symbol_1_1};
+  return v_3;
+}
+
diff --git a/test/tint/builtins/textureStore/bgraunorm.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/textureStore/bgraunorm.wgsl.expected.ir.dxc.hlsl
index 685a9ee..bcb9686 100644
--- a/test/tint/builtins/textureStore/bgraunorm.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/textureStore/bgraunorm.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,7 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWTexture2D<float4> tex : register(u0);
+void fragment_main() {
+  float4 value = float4(1.0f, 2.0f, 3.0f, 4.0f);
+  tex[int2(9, 8)] = value;
+}
+
diff --git a/test/tint/builtins/textureStore/bgraunorm.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/textureStore/bgraunorm.wgsl.expected.ir.fxc.hlsl
index 685a9ee..bcb9686 100644
--- a/test/tint/builtins/textureStore/bgraunorm.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/textureStore/bgraunorm.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,7 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWTexture2D<float4> tex : register(u0);
+void fragment_main() {
+  float4 value = float4(1.0f, 2.0f, 3.0f, 4.0f);
+  tex[int2(9, 8)] = value;
+}
+
diff --git a/test/tint/builtins/textureStore/loop_continuing_read_write_texture.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/textureStore/loop_continuing_read_write_texture.wgsl.expected.ir.dxc.hlsl
index adbb0c1..f7c7d59 100644
--- a/test/tint/builtins/textureStore/loop_continuing_read_write_texture.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/textureStore/loop_continuing_read_write_texture.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,22 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:198 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Loop
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWTexture2D<int4> tex : register(u2);
+void foo() {
+  {
+    int i = 0;
+    while(true) {
+      if ((i < 3)) {
+      } else {
+        break;
+      }
+      {
+        tex[(0).xx] = (0).xxxx;
+      }
+      continue;
+    }
+  }
+}
+
+[numthreads(1, 1, 1)]
+void unused_entry_point() {
+}
+
diff --git a/test/tint/builtins/textureStore/loop_continuing_read_write_texture.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/textureStore/loop_continuing_read_write_texture.wgsl.expected.ir.fxc.hlsl
index adbb0c1..f7c7d59 100644
--- a/test/tint/builtins/textureStore/loop_continuing_read_write_texture.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/textureStore/loop_continuing_read_write_texture.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,22 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:198 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Loop
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWTexture2D<int4> tex : register(u2);
+void foo() {
+  {
+    int i = 0;
+    while(true) {
+      if ((i < 3)) {
+      } else {
+        break;
+      }
+      {
+        tex[(0).xx] = (0).xxxx;
+      }
+      continue;
+    }
+  }
+}
+
+[numthreads(1, 1, 1)]
+void unused_entry_point() {
+}
+
diff --git a/test/tint/builtins/workgroupUniformLoad/array.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/workgroupUniformLoad/array.wgsl.expected.ir.dxc.hlsl
index 479ffbc..64e8275 100644
--- a/test/tint/builtins/workgroupUniformLoad/array.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/workgroupUniformLoad/array.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,15 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: workgroupBarrier
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+groupshared int v[4];
+typedef int ary_ret[4];
+ary_ret foo() {
+  GroupMemoryBarrierWithGroupSync();
+  int v_1[4] = v;
+  GroupMemoryBarrierWithGroupSync();
+  int v_2[4] = v_1;
+  return v_2;
+}
+
+[numthreads(1, 1, 1)]
+void unused_entry_point() {
+}
+
diff --git a/test/tint/builtins/workgroupUniformLoad/array.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/workgroupUniformLoad/array.wgsl.expected.ir.fxc.hlsl
index 479ffbc..64e8275 100644
--- a/test/tint/builtins/workgroupUniformLoad/array.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/workgroupUniformLoad/array.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,15 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: workgroupBarrier
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+groupshared int v[4];
+typedef int ary_ret[4];
+ary_ret foo() {
+  GroupMemoryBarrierWithGroupSync();
+  int v_1[4] = v;
+  GroupMemoryBarrierWithGroupSync();
+  int v_2[4] = v_1;
+  return v_2;
+}
+
+[numthreads(1, 1, 1)]
+void unused_entry_point() {
+}
+
diff --git a/test/tint/builtins/workgroupUniformLoad/array_overridable_count.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/workgroupUniformLoad/array_overridable_count.wgsl.expected.ir.dxc.hlsl
index 479ffbc..1751920 100644
--- a/test/tint/builtins/workgroupUniformLoad/array_overridable_count.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/workgroupUniformLoad/array_overridable_count.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,14 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: workgroupBarrier
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+groupshared int v[128];
+int foo() {
+  GroupMemoryBarrierWithGroupSync();
+  int v_1[128] = v;
+  GroupMemoryBarrierWithGroupSync();
+  int v_2[128] = v_1;
+  return v_2[0];
+}
+
+[numthreads(1, 1, 1)]
+void unused_entry_point() {
+}
+
diff --git a/test/tint/builtins/workgroupUniformLoad/array_overridable_count.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/workgroupUniformLoad/array_overridable_count.wgsl.expected.ir.fxc.hlsl
index 479ffbc..1751920 100644
--- a/test/tint/builtins/workgroupUniformLoad/array_overridable_count.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/workgroupUniformLoad/array_overridable_count.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,14 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: workgroupBarrier
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+groupshared int v[128];
+int foo() {
+  GroupMemoryBarrierWithGroupSync();
+  int v_1[128] = v;
+  GroupMemoryBarrierWithGroupSync();
+  int v_2[128] = v_1;
+  return v_2[0];
+}
+
+[numthreads(1, 1, 1)]
+void unused_entry_point() {
+}
+
diff --git a/test/tint/builtins/workgroupUniformLoad/array_overridable_count_aliased.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/workgroupUniformLoad/array_overridable_count_aliased.wgsl.expected.ir.dxc.hlsl
index 479ffbc..1751920 100644
--- a/test/tint/builtins/workgroupUniformLoad/array_overridable_count_aliased.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/workgroupUniformLoad/array_overridable_count_aliased.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,14 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: workgroupBarrier
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+groupshared int v[128];
+int foo() {
+  GroupMemoryBarrierWithGroupSync();
+  int v_1[128] = v;
+  GroupMemoryBarrierWithGroupSync();
+  int v_2[128] = v_1;
+  return v_2[0];
+}
+
+[numthreads(1, 1, 1)]
+void unused_entry_point() {
+}
+
diff --git a/test/tint/builtins/workgroupUniformLoad/array_overridable_count_aliased.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/workgroupUniformLoad/array_overridable_count_aliased.wgsl.expected.ir.fxc.hlsl
index 479ffbc..1751920 100644
--- a/test/tint/builtins/workgroupUniformLoad/array_overridable_count_aliased.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/workgroupUniformLoad/array_overridable_count_aliased.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,14 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: workgroupBarrier
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+groupshared int v[128];
+int foo() {
+  GroupMemoryBarrierWithGroupSync();
+  int v_1[128] = v;
+  GroupMemoryBarrierWithGroupSync();
+  int v_2[128] = v_1;
+  return v_2[0];
+}
+
+[numthreads(1, 1, 1)]
+void unused_entry_point() {
+}
+
diff --git a/test/tint/builtins/workgroupUniformLoad/bool.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/workgroupUniformLoad/bool.wgsl.expected.ir.dxc.hlsl
index 479ffbc..e4ab169 100644
--- a/test/tint/builtins/workgroupUniformLoad/bool.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/workgroupUniformLoad/bool.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,13 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: workgroupBarrier
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+groupshared bool v;
+bool foo() {
+  GroupMemoryBarrierWithGroupSync();
+  bool v_1 = v;
+  GroupMemoryBarrierWithGroupSync();
+  return v_1;
+}
+
+[numthreads(1, 1, 1)]
+void unused_entry_point() {
+}
+
diff --git a/test/tint/builtins/workgroupUniformLoad/bool.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/workgroupUniformLoad/bool.wgsl.expected.ir.fxc.hlsl
index 479ffbc..e4ab169 100644
--- a/test/tint/builtins/workgroupUniformLoad/bool.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/workgroupUniformLoad/bool.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,13 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: workgroupBarrier
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+groupshared bool v;
+bool foo() {
+  GroupMemoryBarrierWithGroupSync();
+  bool v_1 = v;
+  GroupMemoryBarrierWithGroupSync();
+  return v_1;
+}
+
+[numthreads(1, 1, 1)]
+void unused_entry_point() {
+}
+
diff --git a/test/tint/builtins/workgroupUniformLoad/for_loop.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/workgroupUniformLoad/for_loop.wgsl.expected.ir.dxc.hlsl
index adbb0c1..410400b 100644
--- a/test/tint/builtins/workgroupUniformLoad/for_loop.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/workgroupUniformLoad/for_loop.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,30 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:198 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Loop
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+groupshared int a;
+groupshared int b;
+void foo() {
+  {
+    int i = 0;
+    while(true) {
+      int v = i;
+      GroupMemoryBarrierWithGroupSync();
+      int v_1 = a;
+      GroupMemoryBarrierWithGroupSync();
+      if ((v < v_1)) {
+      } else {
+        break;
+      }
+      {
+        GroupMemoryBarrierWithGroupSync();
+        int v_2 = b;
+        GroupMemoryBarrierWithGroupSync();
+        i = (i + v_2);
+      }
+      continue;
+    }
+  }
+}
+
+[numthreads(1, 1, 1)]
+void unused_entry_point() {
+}
+
diff --git a/test/tint/builtins/workgroupUniformLoad/for_loop.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/workgroupUniformLoad/for_loop.wgsl.expected.ir.fxc.hlsl
index adbb0c1..410400b 100644
--- a/test/tint/builtins/workgroupUniformLoad/for_loop.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/workgroupUniformLoad/for_loop.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,30 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:198 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Loop
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+groupshared int a;
+groupshared int b;
+void foo() {
+  {
+    int i = 0;
+    while(true) {
+      int v = i;
+      GroupMemoryBarrierWithGroupSync();
+      int v_1 = a;
+      GroupMemoryBarrierWithGroupSync();
+      if ((v < v_1)) {
+      } else {
+        break;
+      }
+      {
+        GroupMemoryBarrierWithGroupSync();
+        int v_2 = b;
+        GroupMemoryBarrierWithGroupSync();
+        i = (i + v_2);
+      }
+      continue;
+    }
+  }
+}
+
+[numthreads(1, 1, 1)]
+void unused_entry_point() {
+}
+
diff --git a/test/tint/builtins/workgroupUniformLoad/if_condition.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/workgroupUniformLoad/if_condition.wgsl.expected.ir.dxc.hlsl
index 479ffbc..32bd77d 100644
--- a/test/tint/builtins/workgroupUniformLoad/if_condition.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/workgroupUniformLoad/if_condition.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,16 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: workgroupBarrier
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+groupshared bool v;
+int foo() {
+  GroupMemoryBarrierWithGroupSync();
+  bool v_1 = v;
+  GroupMemoryBarrierWithGroupSync();
+  if (v_1) {
+    return 42;
+  }
+  return 0;
+}
+
+[numthreads(1, 1, 1)]
+void unused_entry_point() {
+}
+
diff --git a/test/tint/builtins/workgroupUniformLoad/if_condition.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/workgroupUniformLoad/if_condition.wgsl.expected.ir.fxc.hlsl
index 479ffbc..32bd77d 100644
--- a/test/tint/builtins/workgroupUniformLoad/if_condition.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/workgroupUniformLoad/if_condition.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,16 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: workgroupBarrier
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+groupshared bool v;
+int foo() {
+  GroupMemoryBarrierWithGroupSync();
+  bool v_1 = v;
+  GroupMemoryBarrierWithGroupSync();
+  if (v_1) {
+    return 42;
+  }
+  return 0;
+}
+
+[numthreads(1, 1, 1)]
+void unused_entry_point() {
+}
+
diff --git a/test/tint/builtins/workgroupUniformLoad/matrix.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/workgroupUniformLoad/matrix.wgsl.expected.ir.dxc.hlsl
index 479ffbc..b8abfbf 100644
--- a/test/tint/builtins/workgroupUniformLoad/matrix.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/workgroupUniformLoad/matrix.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,13 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: workgroupBarrier
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+groupshared float3x3 v;
+float3x3 foo() {
+  GroupMemoryBarrierWithGroupSync();
+  float3x3 v_1 = v;
+  GroupMemoryBarrierWithGroupSync();
+  return v_1;
+}
+
+[numthreads(1, 1, 1)]
+void unused_entry_point() {
+}
+
diff --git a/test/tint/builtins/workgroupUniformLoad/matrix.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/workgroupUniformLoad/matrix.wgsl.expected.ir.fxc.hlsl
index 479ffbc..b8abfbf 100644
--- a/test/tint/builtins/workgroupUniformLoad/matrix.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/workgroupUniformLoad/matrix.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,13 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: workgroupBarrier
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+groupshared float3x3 v;
+float3x3 foo() {
+  GroupMemoryBarrierWithGroupSync();
+  float3x3 v_1 = v;
+  GroupMemoryBarrierWithGroupSync();
+  return v_1;
+}
+
+[numthreads(1, 1, 1)]
+void unused_entry_point() {
+}
+
diff --git a/test/tint/builtins/workgroupUniformLoad/structures.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/workgroupUniformLoad/structures.wgsl.expected.ir.dxc.hlsl
index 479ffbc..c65cd40 100644
--- a/test/tint/builtins/workgroupUniformLoad/structures.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/workgroupUniformLoad/structures.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,24 @@
-SKIP: FAILED
+struct Inner {
+  bool b;
+  int4 v;
+  float3x3 m;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: workgroupBarrier
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct Outer {
+  Inner a[4];
+};
+
+
+groupshared Outer v;
+Outer foo() {
+  GroupMemoryBarrierWithGroupSync();
+  Outer v_1 = v;
+  GroupMemoryBarrierWithGroupSync();
+  Outer v_2 = v_1;
+  return v_2;
+}
+
+[numthreads(1, 1, 1)]
+void unused_entry_point() {
+}
+
diff --git a/test/tint/builtins/workgroupUniformLoad/structures.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/workgroupUniformLoad/structures.wgsl.expected.ir.fxc.hlsl
index 479ffbc..c65cd40 100644
--- a/test/tint/builtins/workgroupUniformLoad/structures.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/workgroupUniformLoad/structures.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,24 @@
-SKIP: FAILED
+struct Inner {
+  bool b;
+  int4 v;
+  float3x3 m;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: workgroupBarrier
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct Outer {
+  Inner a[4];
+};
+
+
+groupshared Outer v;
+Outer foo() {
+  GroupMemoryBarrierWithGroupSync();
+  Outer v_1 = v;
+  GroupMemoryBarrierWithGroupSync();
+  Outer v_2 = v_1;
+  return v_2;
+}
+
+[numthreads(1, 1, 1)]
+void unused_entry_point() {
+}
+
diff --git a/test/tint/builtins/workgroupUniformLoad/vec.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/workgroupUniformLoad/vec.wgsl.expected.ir.dxc.hlsl
index 479ffbc..024b30d 100644
--- a/test/tint/builtins/workgroupUniformLoad/vec.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/workgroupUniformLoad/vec.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,13 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: workgroupBarrier
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+groupshared float4 v;
+float4 foo() {
+  GroupMemoryBarrierWithGroupSync();
+  float4 v_1 = v;
+  GroupMemoryBarrierWithGroupSync();
+  return v_1;
+}
+
+[numthreads(1, 1, 1)]
+void unused_entry_point() {
+}
+
diff --git a/test/tint/builtins/workgroupUniformLoad/vec.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/workgroupUniformLoad/vec.wgsl.expected.ir.fxc.hlsl
index 479ffbc..024b30d 100644
--- a/test/tint/builtins/workgroupUniformLoad/vec.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/workgroupUniformLoad/vec.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,13 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: workgroupBarrier
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+groupshared float4 v;
+float4 foo() {
+  GroupMemoryBarrierWithGroupSync();
+  float4 v_1 = v;
+  GroupMemoryBarrierWithGroupSync();
+  return v_1;
+}
+
+[numthreads(1, 1, 1)]
+void unused_entry_point() {
+}
+
diff --git a/test/tint/builtins/workgroupUniformLoad/via_param.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/workgroupUniformLoad/via_param.wgsl.expected.ir.dxc.hlsl
index 479ffbc..56f827a 100644
--- a/test/tint/builtins/workgroupUniformLoad/via_param.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/workgroupUniformLoad/via_param.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,18 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: workgroupBarrier
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+groupshared int v[4];
+int foo(uint p_indices[1]) {
+  GroupMemoryBarrierWithGroupSync();
+  int v_1 = v[p_indices[0u]];
+  GroupMemoryBarrierWithGroupSync();
+  return v_1;
+}
+
+int bar() {
+  uint v_2[1] = (uint[1])0;
+  return foo(v_2);
+}
+
+[numthreads(1, 1, 1)]
+void unused_entry_point() {
+}
+
diff --git a/test/tint/builtins/workgroupUniformLoad/via_param.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/workgroupUniformLoad/via_param.wgsl.expected.ir.fxc.hlsl
index 479ffbc..56f827a 100644
--- a/test/tint/builtins/workgroupUniformLoad/via_param.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/workgroupUniformLoad/via_param.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,18 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: workgroupBarrier
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+groupshared int v[4];
+int foo(uint p_indices[1]) {
+  GroupMemoryBarrierWithGroupSync();
+  int v_1 = v[p_indices[0u]];
+  GroupMemoryBarrierWithGroupSync();
+  return v_1;
+}
+
+int bar() {
+  uint v_2[1] = (uint[1])0;
+  return foo(v_2);
+}
+
+[numthreads(1, 1, 1)]
+void unused_entry_point() {
+}
+
diff --git a/test/tint/const/global/global.wgsl.expected.ir.dxc.hlsl b/test/tint/const/global/global.wgsl.expected.ir.dxc.hlsl
index c1e7e6f..7ab4a50 100644
--- a/test/tint/const/global/global.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/const/global/global.wgsl.expected.ir.dxc.hlsl
@@ -1,6 +1,9 @@
-SKIP: FAILED
+struct main_outputs {
+  float4 tint_symbol : SV_Target0;
+};
 
-float4 main() {
+
+float4 main_inner() {
   int v1 = 1;
   uint v2 = 1u;
   float v3 = 1.0f;
@@ -8,13 +11,12 @@
   uint3 v5 = (1u).xxx;
   float3 v6 = (1.0f).xxx;
   float3x3 v7 = float3x3((1.0f).xxx, (1.0f).xxx, (1.0f).xxx);
-  float[10] v9 = (float[10])0;
+  float v9[10] = (float[10])0;
   return (0.0f).xxxx;
 }
 
-DXC validation failure:
-hlsl.hlsl:9:15: error: brackets are not allowed here; to declare an array, place the brackets after the name
-  float[10] v9 = (float[10])0;
-       ~~~~   ^
-              [10]
+main_outputs main() {
+  main_outputs v = {main_inner()};
+  return v;
+}
 
diff --git a/test/tint/const/global/global.wgsl.expected.ir.fxc.hlsl b/test/tint/const/global/global.wgsl.expected.ir.fxc.hlsl
index d951bec..7ab4a50 100644
--- a/test/tint/const/global/global.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/const/global/global.wgsl.expected.ir.fxc.hlsl
@@ -1,4 +1,9 @@
-float4 main() {
+struct main_outputs {
+  float4 tint_symbol : SV_Target0;
+};
+
+
+float4 main_inner() {
   int v1 = 1;
   uint v2 = 1u;
   float v3 = 1.0f;
@@ -6,7 +11,12 @@
   uint3 v5 = (1u).xxx;
   float3 v6 = (1.0f).xxx;
   float3x3 v7 = float3x3((1.0f).xxx, (1.0f).xxx, (1.0f).xxx);
-  float[10] v9 = (float[10])0;
+  float v9[10] = (float[10])0;
   return (0.0f).xxxx;
 }
 
+main_outputs main() {
+  main_outputs v = {main_inner()};
+  return v;
+}
+
diff --git a/test/tint/const/inferred/function.wgsl.expected.ir.dxc.hlsl b/test/tint/const/inferred/function.wgsl.expected.ir.dxc.hlsl
index 72ff317..d2b13ba 100644
--- a/test/tint/const/inferred/function.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/const/inferred/function.wgsl.expected.ir.dxc.hlsl
@@ -1,14 +1,17 @@
-SKIP: FAILED
+struct main_outputs {
+  float4 tint_symbol : SV_Target0;
+};
+
 
 void const_decls() {
 }
 
-float4 main() {
+float4 main_inner() {
   return (0.0f).xxxx;
 }
 
-DXC validation failure:
-hlsl.hlsl:4:1: error: Semantic must be defined for all outputs of an entry function or patch constant function
-float4 main() {
-^
+main_outputs main() {
+  main_outputs v = {main_inner()};
+  return v;
+}
 
diff --git a/test/tint/const/inferred/function.wgsl.expected.ir.fxc.hlsl b/test/tint/const/inferred/function.wgsl.expected.ir.fxc.hlsl
index c27d2aa..d2b13ba 100644
--- a/test/tint/const/inferred/function.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/const/inferred/function.wgsl.expected.ir.fxc.hlsl
@@ -1,7 +1,17 @@
+struct main_outputs {
+  float4 tint_symbol : SV_Target0;
+};
+
+
 void const_decls() {
 }
 
-float4 main() {
+float4 main_inner() {
   return (0.0f).xxxx;
 }
 
+main_outputs main() {
+  main_outputs v = {main_inner()};
+  return v;
+}
+
diff --git a/test/tint/diagnostic_filtering/case_body_attribute.wgsl.expected.ir.dxc.hlsl b/test/tint/diagnostic_filtering/case_body_attribute.wgsl.expected.ir.dxc.hlsl
index 5ee9a61..9c0f2397 100644
--- a/test/tint/diagnostic_filtering/case_body_attribute.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/diagnostic_filtering/case_body_attribute.wgsl.expected.ir.dxc.hlsl
@@ -12,7 +12,7 @@
   switch (i32(x)) {
               ^
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:198 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Switch
+..\..\src\tint\lang\hlsl\writer\printer\printer.cc:1010 internal compiler error: TINT_UNREACHABLE unhandled: textureSample
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/diagnostic_filtering/case_body_attribute.wgsl.expected.ir.fxc.hlsl b/test/tint/diagnostic_filtering/case_body_attribute.wgsl.expected.ir.fxc.hlsl
index 5ee9a61..9c0f2397 100644
--- a/test/tint/diagnostic_filtering/case_body_attribute.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/diagnostic_filtering/case_body_attribute.wgsl.expected.ir.fxc.hlsl
@@ -12,7 +12,7 @@
   switch (i32(x)) {
               ^
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:198 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Switch
+..\..\src\tint\lang\hlsl\writer\printer\printer.cc:1010 internal compiler error: TINT_UNREACHABLE unhandled: textureSample
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/diagnostic_filtering/compound_statement_attribute.wgsl.expected.ir.dxc.hlsl b/test/tint/diagnostic_filtering/compound_statement_attribute.wgsl.expected.ir.dxc.hlsl
index 91dd1ef..6b25bdf7 100644
--- a/test/tint/diagnostic_filtering/compound_statement_attribute.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/diagnostic_filtering/compound_statement_attribute.wgsl.expected.ir.dxc.hlsl
@@ -12,7 +12,7 @@
     if (x > 0) {
         ^
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:198 internal compiler error: Switch() matched no cases. Type: tint::core::ir::If
+..\..\src\tint\lang\hlsl\writer\printer\printer.cc:1010 internal compiler error: TINT_UNREACHABLE unhandled: textureSample
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/diagnostic_filtering/compound_statement_attribute.wgsl.expected.ir.fxc.hlsl b/test/tint/diagnostic_filtering/compound_statement_attribute.wgsl.expected.ir.fxc.hlsl
index 91dd1ef..6b25bdf7 100644
--- a/test/tint/diagnostic_filtering/compound_statement_attribute.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/diagnostic_filtering/compound_statement_attribute.wgsl.expected.ir.fxc.hlsl
@@ -12,7 +12,7 @@
     if (x > 0) {
         ^
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:198 internal compiler error: Switch() matched no cases. Type: tint::core::ir::If
+..\..\src\tint\lang\hlsl\writer\printer\printer.cc:1010 internal compiler error: TINT_UNREACHABLE unhandled: textureSample
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/diagnostic_filtering/default_case_body_attribute.wgsl.expected.ir.dxc.hlsl b/test/tint/diagnostic_filtering/default_case_body_attribute.wgsl.expected.ir.dxc.hlsl
index 19fd3b5..de0ce0b 100644
--- a/test/tint/diagnostic_filtering/default_case_body_attribute.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/diagnostic_filtering/default_case_body_attribute.wgsl.expected.ir.dxc.hlsl
@@ -12,7 +12,7 @@
   switch (i32(x)) {
               ^
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:198 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Switch
+..\..\src\tint\lang\hlsl\writer\printer\printer.cc:1010 internal compiler error: TINT_UNREACHABLE unhandled: textureSample
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/diagnostic_filtering/default_case_body_attribute.wgsl.expected.ir.fxc.hlsl b/test/tint/diagnostic_filtering/default_case_body_attribute.wgsl.expected.ir.fxc.hlsl
index 19fd3b5..de0ce0b 100644
--- a/test/tint/diagnostic_filtering/default_case_body_attribute.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/diagnostic_filtering/default_case_body_attribute.wgsl.expected.ir.fxc.hlsl
@@ -12,7 +12,7 @@
   switch (i32(x)) {
               ^
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:198 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Switch
+..\..\src\tint\lang\hlsl\writer\printer\printer.cc:1010 internal compiler error: TINT_UNREACHABLE unhandled: textureSample
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/diagnostic_filtering/directive.wgsl.expected.ir.dxc.hlsl b/test/tint/diagnostic_filtering/directive.wgsl.expected.ir.dxc.hlsl
index c3f3904..0cb04be 100644
--- a/test/tint/diagnostic_filtering/directive.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/diagnostic_filtering/directive.wgsl.expected.ir.dxc.hlsl
@@ -12,7 +12,7 @@
   if (x > 0) {
       ^
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:198 internal compiler error: Switch() matched no cases. Type: tint::core::ir::If
+..\..\src\tint\lang\hlsl\writer\printer\printer.cc:1010 internal compiler error: TINT_UNREACHABLE unhandled: textureSample
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/diagnostic_filtering/directive.wgsl.expected.ir.fxc.hlsl b/test/tint/diagnostic_filtering/directive.wgsl.expected.ir.fxc.hlsl
index c3f3904..0cb04be 100644
--- a/test/tint/diagnostic_filtering/directive.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/diagnostic_filtering/directive.wgsl.expected.ir.fxc.hlsl
@@ -12,7 +12,7 @@
   if (x > 0) {
       ^
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:198 internal compiler error: Switch() matched no cases. Type: tint::core::ir::If
+..\..\src\tint\lang\hlsl\writer\printer\printer.cc:1010 internal compiler error: TINT_UNREACHABLE unhandled: textureSample
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/diagnostic_filtering/else_body_attribute.wgsl.expected.ir.dxc.hlsl b/test/tint/diagnostic_filtering/else_body_attribute.wgsl.expected.ir.dxc.hlsl
index 529c779..d56f049 100644
--- a/test/tint/diagnostic_filtering/else_body_attribute.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/diagnostic_filtering/else_body_attribute.wgsl.expected.ir.dxc.hlsl
@@ -12,7 +12,7 @@
   if (x > 0) {
       ^
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:198 internal compiler error: Switch() matched no cases. Type: tint::core::ir::If
+..\..\src\tint\lang\hlsl\writer\printer\printer.cc:1010 internal compiler error: TINT_UNREACHABLE unhandled: textureSample
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/diagnostic_filtering/else_body_attribute.wgsl.expected.ir.fxc.hlsl b/test/tint/diagnostic_filtering/else_body_attribute.wgsl.expected.ir.fxc.hlsl
index 529c779..d56f049 100644
--- a/test/tint/diagnostic_filtering/else_body_attribute.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/diagnostic_filtering/else_body_attribute.wgsl.expected.ir.fxc.hlsl
@@ -12,7 +12,7 @@
   if (x > 0) {
       ^
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:198 internal compiler error: Switch() matched no cases. Type: tint::core::ir::If
+..\..\src\tint\lang\hlsl\writer\printer\printer.cc:1010 internal compiler error: TINT_UNREACHABLE unhandled: textureSample
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/diagnostic_filtering/else_if_body_attribute.wgsl.expected.ir.dxc.hlsl b/test/tint/diagnostic_filtering/else_if_body_attribute.wgsl.expected.ir.dxc.hlsl
index 3190d4e..2532154 100644
--- a/test/tint/diagnostic_filtering/else_if_body_attribute.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/diagnostic_filtering/else_if_body_attribute.wgsl.expected.ir.dxc.hlsl
@@ -12,7 +12,7 @@
   if (x > 0) {
       ^
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:198 internal compiler error: Switch() matched no cases. Type: tint::core::ir::If
+..\..\src\tint\lang\hlsl\writer\printer\printer.cc:1010 internal compiler error: TINT_UNREACHABLE unhandled: textureSample
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/diagnostic_filtering/else_if_body_attribute.wgsl.expected.ir.fxc.hlsl b/test/tint/diagnostic_filtering/else_if_body_attribute.wgsl.expected.ir.fxc.hlsl
index 3190d4e..2532154 100644
--- a/test/tint/diagnostic_filtering/else_if_body_attribute.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/diagnostic_filtering/else_if_body_attribute.wgsl.expected.ir.fxc.hlsl
@@ -12,7 +12,7 @@
   if (x > 0) {
       ^
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:198 internal compiler error: Switch() matched no cases. Type: tint::core::ir::If
+..\..\src\tint\lang\hlsl\writer\printer\printer.cc:1010 internal compiler error: TINT_UNREACHABLE unhandled: textureSample
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/diagnostic_filtering/for_loop_attribute.wgsl.expected.ir.dxc.hlsl b/test/tint/diagnostic_filtering/for_loop_attribute.wgsl.expected.ir.dxc.hlsl
index 02fd590..912a641 100644
--- a/test/tint/diagnostic_filtering/for_loop_attribute.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/diagnostic_filtering/for_loop_attribute.wgsl.expected.ir.dxc.hlsl
@@ -1,5 +1,3 @@
-SKIP: FAILED
-
 <dawn>/test/tint/diagnostic_filtering/for_loop_attribute.wgsl:5:21 warning: 'dpdx' must only be called from uniform control flow
   for (; x > v.x && dpdx(1.0) > 0.0; ) {
                     ^^^^^^^^^
@@ -12,10 +10,33 @@
   for (; x > v.x && dpdx(1.0) > 0.0; ) {
                     ^^^^^^^^^
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:198 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Loop
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct main_inputs {
+  float x : TEXCOORD0;
+};
+
+
+void main_inner(float x) {
+  float4 v = (0.0f).xxxx;
+  {
+    while(true) {
+      bool v_1 = false;
+      if ((x > v.x)) {
+        v_1 = (ddx(1.0f) > 0.0f);
+      } else {
+        v_1 = false;
+      }
+      if (v_1) {
+      } else {
+        break;
+      }
+      {
+      }
+      continue;
+    }
+  }
+}
+
+void main(main_inputs inputs) {
+  main_inner(inputs.x);
+}
+
diff --git a/test/tint/diagnostic_filtering/for_loop_attribute.wgsl.expected.ir.fxc.hlsl b/test/tint/diagnostic_filtering/for_loop_attribute.wgsl.expected.ir.fxc.hlsl
index 02fd590..912a641 100644
--- a/test/tint/diagnostic_filtering/for_loop_attribute.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/diagnostic_filtering/for_loop_attribute.wgsl.expected.ir.fxc.hlsl
@@ -1,5 +1,3 @@
-SKIP: FAILED
-
 <dawn>/test/tint/diagnostic_filtering/for_loop_attribute.wgsl:5:21 warning: 'dpdx' must only be called from uniform control flow
   for (; x > v.x && dpdx(1.0) > 0.0; ) {
                     ^^^^^^^^^
@@ -12,10 +10,33 @@
   for (; x > v.x && dpdx(1.0) > 0.0; ) {
                     ^^^^^^^^^
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:198 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Loop
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct main_inputs {
+  float x : TEXCOORD0;
+};
+
+
+void main_inner(float x) {
+  float4 v = (0.0f).xxxx;
+  {
+    while(true) {
+      bool v_1 = false;
+      if ((x > v.x)) {
+        v_1 = (ddx(1.0f) > 0.0f);
+      } else {
+        v_1 = false;
+      }
+      if (v_1) {
+      } else {
+        break;
+      }
+      {
+      }
+      continue;
+    }
+  }
+}
+
+void main(main_inputs inputs) {
+  main_inner(inputs.x);
+}
+
diff --git a/test/tint/diagnostic_filtering/for_loop_body_attribute.wgsl.expected.ir.dxc.hlsl b/test/tint/diagnostic_filtering/for_loop_body_attribute.wgsl.expected.ir.dxc.hlsl
index 316f06c..3ec1bcb 100644
--- a/test/tint/diagnostic_filtering/for_loop_body_attribute.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/diagnostic_filtering/for_loop_body_attribute.wgsl.expected.ir.dxc.hlsl
@@ -12,7 +12,7 @@
     v = textureSample(t, s, vec2(0, 0));
         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:198 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Loop
+..\..\src\tint\lang\hlsl\writer\printer\printer.cc:1010 internal compiler error: TINT_UNREACHABLE unhandled: textureSample
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/diagnostic_filtering/for_loop_body_attribute.wgsl.expected.ir.fxc.hlsl b/test/tint/diagnostic_filtering/for_loop_body_attribute.wgsl.expected.ir.fxc.hlsl
index 316f06c..3ec1bcb 100644
--- a/test/tint/diagnostic_filtering/for_loop_body_attribute.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/diagnostic_filtering/for_loop_body_attribute.wgsl.expected.ir.fxc.hlsl
@@ -12,7 +12,7 @@
     v = textureSample(t, s, vec2(0, 0));
         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:198 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Loop
+..\..\src\tint\lang\hlsl\writer\printer\printer.cc:1010 internal compiler error: TINT_UNREACHABLE unhandled: textureSample
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/diagnostic_filtering/function_attribute.wgsl.expected.ir.dxc.hlsl b/test/tint/diagnostic_filtering/function_attribute.wgsl.expected.ir.dxc.hlsl
index 9ca8db1..5bf7cad 100644
--- a/test/tint/diagnostic_filtering/function_attribute.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/diagnostic_filtering/function_attribute.wgsl.expected.ir.dxc.hlsl
@@ -12,7 +12,7 @@
   if (x > 0) {
       ^
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:198 internal compiler error: Switch() matched no cases. Type: tint::core::ir::If
+..\..\src\tint\lang\hlsl\writer\printer\printer.cc:1010 internal compiler error: TINT_UNREACHABLE unhandled: textureSample
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/diagnostic_filtering/function_attribute.wgsl.expected.ir.fxc.hlsl b/test/tint/diagnostic_filtering/function_attribute.wgsl.expected.ir.fxc.hlsl
index 9ca8db1..5bf7cad 100644
--- a/test/tint/diagnostic_filtering/function_attribute.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/diagnostic_filtering/function_attribute.wgsl.expected.ir.fxc.hlsl
@@ -12,7 +12,7 @@
   if (x > 0) {
       ^
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:198 internal compiler error: Switch() matched no cases. Type: tint::core::ir::If
+..\..\src\tint\lang\hlsl\writer\printer\printer.cc:1010 internal compiler error: TINT_UNREACHABLE unhandled: textureSample
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/diagnostic_filtering/function_body_attribute.wgsl.expected.ir.dxc.hlsl b/test/tint/diagnostic_filtering/function_body_attribute.wgsl.expected.ir.dxc.hlsl
index 9c69e76..443cb8b 100644
--- a/test/tint/diagnostic_filtering/function_body_attribute.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/diagnostic_filtering/function_body_attribute.wgsl.expected.ir.dxc.hlsl
@@ -12,7 +12,7 @@
   if (x > 0) {
       ^
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:198 internal compiler error: Switch() matched no cases. Type: tint::core::ir::If
+..\..\src\tint\lang\hlsl\writer\printer\printer.cc:1010 internal compiler error: TINT_UNREACHABLE unhandled: textureSample
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/diagnostic_filtering/function_body_attribute.wgsl.expected.ir.fxc.hlsl b/test/tint/diagnostic_filtering/function_body_attribute.wgsl.expected.ir.fxc.hlsl
index 9c69e76..443cb8b 100644
--- a/test/tint/diagnostic_filtering/function_body_attribute.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/diagnostic_filtering/function_body_attribute.wgsl.expected.ir.fxc.hlsl
@@ -12,7 +12,7 @@
   if (x > 0) {
       ^
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:198 internal compiler error: Switch() matched no cases. Type: tint::core::ir::If
+..\..\src\tint\lang\hlsl\writer\printer\printer.cc:1010 internal compiler error: TINT_UNREACHABLE unhandled: textureSample
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/diagnostic_filtering/if_body_attribute.wgsl.expected.ir.dxc.hlsl b/test/tint/diagnostic_filtering/if_body_attribute.wgsl.expected.ir.dxc.hlsl
index 19d06f7..0a8eb3c 100644
--- a/test/tint/diagnostic_filtering/if_body_attribute.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/diagnostic_filtering/if_body_attribute.wgsl.expected.ir.dxc.hlsl
@@ -12,7 +12,7 @@
   if (x > 0) @diagnostic(warning, derivative_uniformity) {
       ^
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:198 internal compiler error: Switch() matched no cases. Type: tint::core::ir::If
+..\..\src\tint\lang\hlsl\writer\printer\printer.cc:1010 internal compiler error: TINT_UNREACHABLE unhandled: textureSample
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/diagnostic_filtering/if_body_attribute.wgsl.expected.ir.fxc.hlsl b/test/tint/diagnostic_filtering/if_body_attribute.wgsl.expected.ir.fxc.hlsl
index 19d06f7..0a8eb3c 100644
--- a/test/tint/diagnostic_filtering/if_body_attribute.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/diagnostic_filtering/if_body_attribute.wgsl.expected.ir.fxc.hlsl
@@ -12,7 +12,7 @@
   if (x > 0) @diagnostic(warning, derivative_uniformity) {
       ^
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:198 internal compiler error: Switch() matched no cases. Type: tint::core::ir::If
+..\..\src\tint\lang\hlsl\writer\printer\printer.cc:1010 internal compiler error: TINT_UNREACHABLE unhandled: textureSample
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/diagnostic_filtering/if_statement_attribute.wgsl.expected.ir.dxc.hlsl b/test/tint/diagnostic_filtering/if_statement_attribute.wgsl.expected.ir.dxc.hlsl
index 2db720b..89cb344 100644
--- a/test/tint/diagnostic_filtering/if_statement_attribute.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/diagnostic_filtering/if_statement_attribute.wgsl.expected.ir.dxc.hlsl
@@ -1,5 +1,3 @@
-SKIP: FAILED
-
 <dawn>/test/tint/diagnostic_filtering/if_statement_attribute.wgsl:8:14 warning: 'dpdx' must only be called from uniform control flow
   } else if (dpdx(1.0) > 0)  {
              ^^^^^^^^^
@@ -12,10 +10,22 @@
   if (x > 0) {
       ^
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:198 internal compiler error: Switch() matched no cases. Type: tint::core::ir::If
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct main_inputs {
+  float x : TEXCOORD0;
+};
+
+
+Texture2D<float4> t : register(t1);
+SamplerState s : register(s2);
+void main_inner(float x) {
+  if ((x > 0.0f)) {
+  } else {
+    if ((ddx(1.0f) > 0.0f)) {
+    }
+  }
+}
+
+void main(main_inputs inputs) {
+  main_inner(inputs.x);
+}
+
diff --git a/test/tint/diagnostic_filtering/if_statement_attribute.wgsl.expected.ir.fxc.hlsl b/test/tint/diagnostic_filtering/if_statement_attribute.wgsl.expected.ir.fxc.hlsl
index 2db720b..89cb344 100644
--- a/test/tint/diagnostic_filtering/if_statement_attribute.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/diagnostic_filtering/if_statement_attribute.wgsl.expected.ir.fxc.hlsl
@@ -1,5 +1,3 @@
-SKIP: FAILED
-
 <dawn>/test/tint/diagnostic_filtering/if_statement_attribute.wgsl:8:14 warning: 'dpdx' must only be called from uniform control flow
   } else if (dpdx(1.0) > 0)  {
              ^^^^^^^^^
@@ -12,10 +10,22 @@
   if (x > 0) {
       ^
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:198 internal compiler error: Switch() matched no cases. Type: tint::core::ir::If
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct main_inputs {
+  float x : TEXCOORD0;
+};
+
+
+Texture2D<float4> t : register(t1);
+SamplerState s : register(s2);
+void main_inner(float x) {
+  if ((x > 0.0f)) {
+  } else {
+    if ((ddx(1.0f) > 0.0f)) {
+    }
+  }
+}
+
+void main(main_inputs inputs) {
+  main_inner(inputs.x);
+}
+
diff --git a/test/tint/diagnostic_filtering/loop_attribute.wgsl.expected.ir.dxc.hlsl b/test/tint/diagnostic_filtering/loop_attribute.wgsl.expected.ir.dxc.hlsl
index 73b2323..b8cd2ce 100644
--- a/test/tint/diagnostic_filtering/loop_attribute.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/diagnostic_filtering/loop_attribute.wgsl.expected.ir.dxc.hlsl
@@ -1,5 +1,3 @@
-SKIP: FAILED
-
 <dawn>/test/tint/diagnostic_filtering/loop_attribute.wgsl:5:9 warning: 'dpdx' must only be called from uniform control flow
     _ = dpdx(1.0);
         ^^^^^^^^^
@@ -12,10 +10,24 @@
       break if x > 0.0;
                ^
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:198 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Loop
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct main_inputs {
+  float x : TEXCOORD0;
+};
+
+
+void main_inner(float x) {
+  {
+    while(true) {
+      ddx(1.0f);
+      {
+        if ((x > 0.0f)) { break; }
+      }
+      continue;
+    }
+  }
+}
+
+void main(main_inputs inputs) {
+  main_inner(inputs.x);
+}
+
diff --git a/test/tint/diagnostic_filtering/loop_attribute.wgsl.expected.ir.fxc.hlsl b/test/tint/diagnostic_filtering/loop_attribute.wgsl.expected.ir.fxc.hlsl
index 73b2323..b8cd2ce 100644
--- a/test/tint/diagnostic_filtering/loop_attribute.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/diagnostic_filtering/loop_attribute.wgsl.expected.ir.fxc.hlsl
@@ -1,5 +1,3 @@
-SKIP: FAILED
-
 <dawn>/test/tint/diagnostic_filtering/loop_attribute.wgsl:5:9 warning: 'dpdx' must only be called from uniform control flow
     _ = dpdx(1.0);
         ^^^^^^^^^
@@ -12,10 +10,24 @@
       break if x > 0.0;
                ^
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:198 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Loop
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct main_inputs {
+  float x : TEXCOORD0;
+};
+
+
+void main_inner(float x) {
+  {
+    while(true) {
+      ddx(1.0f);
+      {
+        if ((x > 0.0f)) { break; }
+      }
+      continue;
+    }
+  }
+}
+
+void main(main_inputs inputs) {
+  main_inner(inputs.x);
+}
+
diff --git a/test/tint/diagnostic_filtering/loop_body_attribute.wgsl.expected.ir.dxc.hlsl b/test/tint/diagnostic_filtering/loop_body_attribute.wgsl.expected.ir.dxc.hlsl
index c02be89..fac664d 100644
--- a/test/tint/diagnostic_filtering/loop_body_attribute.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/diagnostic_filtering/loop_body_attribute.wgsl.expected.ir.dxc.hlsl
@@ -1,5 +1,3 @@
-SKIP: FAILED
-
 <dawn>/test/tint/diagnostic_filtering/loop_body_attribute.wgsl:4:9 warning: 'dpdx' must only be called from uniform control flow
     _ = dpdx(1.0);
         ^^^^^^^^^
@@ -12,10 +10,24 @@
       break if x > 0.0;
                ^
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:198 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Loop
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct main_inputs {
+  float x : TEXCOORD0;
+};
+
+
+void main_inner(float x) {
+  {
+    while(true) {
+      ddx(1.0f);
+      {
+        if ((x > 0.0f)) { break; }
+      }
+      continue;
+    }
+  }
+}
+
+void main(main_inputs inputs) {
+  main_inner(inputs.x);
+}
+
diff --git a/test/tint/diagnostic_filtering/loop_body_attribute.wgsl.expected.ir.fxc.hlsl b/test/tint/diagnostic_filtering/loop_body_attribute.wgsl.expected.ir.fxc.hlsl
index c02be89..fac664d 100644
--- a/test/tint/diagnostic_filtering/loop_body_attribute.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/diagnostic_filtering/loop_body_attribute.wgsl.expected.ir.fxc.hlsl
@@ -1,5 +1,3 @@
-SKIP: FAILED
-
 <dawn>/test/tint/diagnostic_filtering/loop_body_attribute.wgsl:4:9 warning: 'dpdx' must only be called from uniform control flow
     _ = dpdx(1.0);
         ^^^^^^^^^
@@ -12,10 +10,24 @@
       break if x > 0.0;
                ^
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:198 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Loop
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct main_inputs {
+  float x : TEXCOORD0;
+};
+
+
+void main_inner(float x) {
+  {
+    while(true) {
+      ddx(1.0f);
+      {
+        if ((x > 0.0f)) { break; }
+      }
+      continue;
+    }
+  }
+}
+
+void main(main_inputs inputs) {
+  main_inner(inputs.x);
+}
+
diff --git a/test/tint/diagnostic_filtering/loop_continuing_attribute.wgsl.expected.ir.dxc.hlsl b/test/tint/diagnostic_filtering/loop_continuing_attribute.wgsl.expected.ir.dxc.hlsl
index 1d75741..7234434 100644
--- a/test/tint/diagnostic_filtering/loop_continuing_attribute.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/diagnostic_filtering/loop_continuing_attribute.wgsl.expected.ir.dxc.hlsl
@@ -1,5 +1,3 @@
-SKIP: FAILED
-
 <dawn>/test/tint/diagnostic_filtering/loop_continuing_attribute.wgsl:5:11 warning: 'dpdx' must only be called from uniform control flow
       _ = dpdx(1.0);
           ^^^^^^^^^
@@ -12,10 +10,24 @@
       break if x > 0.0;
                ^
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:198 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Loop
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct main_inputs {
+  float x : TEXCOORD0;
+};
+
+
+void main_inner(float x) {
+  {
+    while(true) {
+      {
+        ddx(1.0f);
+        if ((x > 0.0f)) { break; }
+      }
+      continue;
+    }
+  }
+}
+
+void main(main_inputs inputs) {
+  main_inner(inputs.x);
+}
+
diff --git a/test/tint/diagnostic_filtering/loop_continuing_attribute.wgsl.expected.ir.fxc.hlsl b/test/tint/diagnostic_filtering/loop_continuing_attribute.wgsl.expected.ir.fxc.hlsl
index 1d75741..7234434 100644
--- a/test/tint/diagnostic_filtering/loop_continuing_attribute.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/diagnostic_filtering/loop_continuing_attribute.wgsl.expected.ir.fxc.hlsl
@@ -1,5 +1,3 @@
-SKIP: FAILED
-
 <dawn>/test/tint/diagnostic_filtering/loop_continuing_attribute.wgsl:5:11 warning: 'dpdx' must only be called from uniform control flow
       _ = dpdx(1.0);
           ^^^^^^^^^
@@ -12,10 +10,24 @@
       break if x > 0.0;
                ^
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:198 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Loop
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct main_inputs {
+  float x : TEXCOORD0;
+};
+
+
+void main_inner(float x) {
+  {
+    while(true) {
+      {
+        ddx(1.0f);
+        if ((x > 0.0f)) { break; }
+      }
+      continue;
+    }
+  }
+}
+
+void main(main_inputs inputs) {
+  main_inner(inputs.x);
+}
+
diff --git a/test/tint/diagnostic_filtering/switch_body_attribute.wgsl.expected.ir.dxc.hlsl b/test/tint/diagnostic_filtering/switch_body_attribute.wgsl.expected.ir.dxc.hlsl
index f4fb7c1..159c73a 100644
--- a/test/tint/diagnostic_filtering/switch_body_attribute.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/diagnostic_filtering/switch_body_attribute.wgsl.expected.ir.dxc.hlsl
@@ -1,5 +1,3 @@
-SKIP: FAILED
-
 <dawn>/test/tint/diagnostic_filtering/switch_body_attribute.wgsl:5:11 warning: 'dpdx' must only be called from uniform control flow
       _ = dpdx(1.0);
           ^^^^^^^^^
@@ -12,10 +10,26 @@
   switch (i32(x)) @diagnostic(warning, derivative_uniformity) {
               ^
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:198 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Switch
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct main_inputs {
+  float x : TEXCOORD0;
+};
+
+
+int tint_f32_to_i32(float value) {
+  return (((value <= 2147483520.0f)) ? ((((value >= -2147483648.0f)) ? (int(value)) : (-2147483648))) : (2147483647));
+}
+
+void main_inner(float x) {
+  switch(tint_f32_to_i32(x)) {
+    default:
+    {
+      ddx(1.0f);
+      break;
+    }
+  }
+}
+
+void main(main_inputs inputs) {
+  main_inner(inputs.x);
+}
+
diff --git a/test/tint/diagnostic_filtering/switch_body_attribute.wgsl.expected.ir.fxc.hlsl b/test/tint/diagnostic_filtering/switch_body_attribute.wgsl.expected.ir.fxc.hlsl
index f4fb7c1..159c73a 100644
--- a/test/tint/diagnostic_filtering/switch_body_attribute.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/diagnostic_filtering/switch_body_attribute.wgsl.expected.ir.fxc.hlsl
@@ -1,5 +1,3 @@
-SKIP: FAILED
-
 <dawn>/test/tint/diagnostic_filtering/switch_body_attribute.wgsl:5:11 warning: 'dpdx' must only be called from uniform control flow
       _ = dpdx(1.0);
           ^^^^^^^^^
@@ -12,10 +10,26 @@
   switch (i32(x)) @diagnostic(warning, derivative_uniformity) {
               ^
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:198 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Switch
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct main_inputs {
+  float x : TEXCOORD0;
+};
+
+
+int tint_f32_to_i32(float value) {
+  return (((value <= 2147483520.0f)) ? ((((value >= -2147483648.0f)) ? (int(value)) : (-2147483648))) : (2147483647));
+}
+
+void main_inner(float x) {
+  switch(tint_f32_to_i32(x)) {
+    default:
+    {
+      ddx(1.0f);
+      break;
+    }
+  }
+}
+
+void main(main_inputs inputs) {
+  main_inner(inputs.x);
+}
+
diff --git a/test/tint/diagnostic_filtering/switch_statement_attribute.wgsl.expected.ir.dxc.hlsl b/test/tint/diagnostic_filtering/switch_statement_attribute.wgsl.expected.ir.dxc.hlsl
index 847f5e4..fef385b 100644
--- a/test/tint/diagnostic_filtering/switch_statement_attribute.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/diagnostic_filtering/switch_statement_attribute.wgsl.expected.ir.dxc.hlsl
@@ -1,5 +1,3 @@
-SKIP: FAILED
-
 <dawn>/test/tint/diagnostic_filtering/switch_statement_attribute.wgsl:7:27 warning: 'dpdx' must only be called from uniform control flow
   switch (i32(x == 0.0 && dpdx(1.0) == 0.0)) {
                           ^^^^^^^^^
@@ -12,10 +10,29 @@
   switch (i32(x == 0.0 && dpdx(1.0) == 0.0)) {
               ^
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:198 internal compiler error: Switch() matched no cases. Type: tint::core::ir::If
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct main_inputs {
+  float x : TEXCOORD0;
+};
+
+
+Texture2D<float4> t : register(t1);
+SamplerState s : register(s2);
+void main_inner(float x) {
+  bool v = false;
+  if ((x == 0.0f)) {
+    v = (ddx(1.0f) == 0.0f);
+  } else {
+    v = false;
+  }
+  switch(int(v)) {
+    default:
+    {
+      break;
+    }
+  }
+}
+
+void main(main_inputs inputs) {
+  main_inner(inputs.x);
+}
+
diff --git a/test/tint/diagnostic_filtering/switch_statement_attribute.wgsl.expected.ir.fxc.hlsl b/test/tint/diagnostic_filtering/switch_statement_attribute.wgsl.expected.ir.fxc.hlsl
index 847f5e4..fef385b 100644
--- a/test/tint/diagnostic_filtering/switch_statement_attribute.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/diagnostic_filtering/switch_statement_attribute.wgsl.expected.ir.fxc.hlsl
@@ -1,5 +1,3 @@
-SKIP: FAILED
-
 <dawn>/test/tint/diagnostic_filtering/switch_statement_attribute.wgsl:7:27 warning: 'dpdx' must only be called from uniform control flow
   switch (i32(x == 0.0 && dpdx(1.0) == 0.0)) {
                           ^^^^^^^^^
@@ -12,10 +10,29 @@
   switch (i32(x == 0.0 && dpdx(1.0) == 0.0)) {
               ^
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:198 internal compiler error: Switch() matched no cases. Type: tint::core::ir::If
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct main_inputs {
+  float x : TEXCOORD0;
+};
+
+
+Texture2D<float4> t : register(t1);
+SamplerState s : register(s2);
+void main_inner(float x) {
+  bool v = false;
+  if ((x == 0.0f)) {
+    v = (ddx(1.0f) == 0.0f);
+  } else {
+    v = false;
+  }
+  switch(int(v)) {
+    default:
+    {
+      break;
+    }
+  }
+}
+
+void main(main_inputs inputs) {
+  main_inner(inputs.x);
+}
+
diff --git a/test/tint/diagnostic_filtering/while_loop_attribute.wgsl.expected.ir.dxc.hlsl b/test/tint/diagnostic_filtering/while_loop_attribute.wgsl.expected.ir.dxc.hlsl
index dcef158..bce8466 100644
--- a/test/tint/diagnostic_filtering/while_loop_attribute.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/diagnostic_filtering/while_loop_attribute.wgsl.expected.ir.dxc.hlsl
@@ -1,5 +1,3 @@
-SKIP: FAILED
-
 <dawn>/test/tint/diagnostic_filtering/while_loop_attribute.wgsl:5:21 warning: 'dpdx' must only be called from uniform control flow
   while (x > 0.0 && dpdx(1.0) > 0.0)  {
                     ^^^^^^^^^
@@ -12,10 +10,33 @@
   while (x > 0.0 && dpdx(1.0) > 0.0)  {
                     ^^^^^^^^^
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:198 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Loop
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct main_inputs {
+  float x : TEXCOORD0;
+};
+
+
+void main_inner(float x) {
+  float4 v = (0.0f).xxxx;
+  {
+    while(true) {
+      bool v_1 = false;
+      if ((x > 0.0f)) {
+        v_1 = (ddx(1.0f) > 0.0f);
+      } else {
+        v_1 = false;
+      }
+      if (v_1) {
+      } else {
+        break;
+      }
+      {
+      }
+      continue;
+    }
+  }
+}
+
+void main(main_inputs inputs) {
+  main_inner(inputs.x);
+}
+
diff --git a/test/tint/diagnostic_filtering/while_loop_attribute.wgsl.expected.ir.fxc.hlsl b/test/tint/diagnostic_filtering/while_loop_attribute.wgsl.expected.ir.fxc.hlsl
index dcef158..bce8466 100644
--- a/test/tint/diagnostic_filtering/while_loop_attribute.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/diagnostic_filtering/while_loop_attribute.wgsl.expected.ir.fxc.hlsl
@@ -1,5 +1,3 @@
-SKIP: FAILED
-
 <dawn>/test/tint/diagnostic_filtering/while_loop_attribute.wgsl:5:21 warning: 'dpdx' must only be called from uniform control flow
   while (x > 0.0 && dpdx(1.0) > 0.0)  {
                     ^^^^^^^^^
@@ -12,10 +10,33 @@
   while (x > 0.0 && dpdx(1.0) > 0.0)  {
                     ^^^^^^^^^
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:198 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Loop
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct main_inputs {
+  float x : TEXCOORD0;
+};
+
+
+void main_inner(float x) {
+  float4 v = (0.0f).xxxx;
+  {
+    while(true) {
+      bool v_1 = false;
+      if ((x > 0.0f)) {
+        v_1 = (ddx(1.0f) > 0.0f);
+      } else {
+        v_1 = false;
+      }
+      if (v_1) {
+      } else {
+        break;
+      }
+      {
+      }
+      continue;
+    }
+  }
+}
+
+void main(main_inputs inputs) {
+  main_inner(inputs.x);
+}
+
diff --git a/test/tint/diagnostic_filtering/while_loop_body_attribute.wgsl.expected.ir.dxc.hlsl b/test/tint/diagnostic_filtering/while_loop_body_attribute.wgsl.expected.ir.dxc.hlsl
index ed98946..ce13826 100644
--- a/test/tint/diagnostic_filtering/while_loop_body_attribute.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/diagnostic_filtering/while_loop_body_attribute.wgsl.expected.ir.dxc.hlsl
@@ -12,7 +12,7 @@
     v = textureSample(t, s, vec2(0, 0));
         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:198 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Loop
+..\..\src\tint\lang\hlsl\writer\printer\printer.cc:1010 internal compiler error: TINT_UNREACHABLE unhandled: textureSample
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/diagnostic_filtering/while_loop_body_attribute.wgsl.expected.ir.fxc.hlsl b/test/tint/diagnostic_filtering/while_loop_body_attribute.wgsl.expected.ir.fxc.hlsl
index ed98946..ce13826 100644
--- a/test/tint/diagnostic_filtering/while_loop_body_attribute.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/diagnostic_filtering/while_loop_body_attribute.wgsl.expected.ir.fxc.hlsl
@@ -12,7 +12,7 @@
     v = textureSample(t, s, vec2(0, 0));
         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:198 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Loop
+..\..\src\tint\lang\hlsl\writer\printer\printer.cc:1010 internal compiler error: TINT_UNREACHABLE unhandled: textureSample
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/expressions/binary/add/mat3x3-mat3x3/f16.wgsl.expected.ir.dxc.hlsl b/test/tint/expressions/binary/add/mat3x3-mat3x3/f16.wgsl.expected.ir.dxc.hlsl
index ccb403f..2a0302a 100644
--- a/test/tint/expressions/binary/add/mat3x3-mat3x3/f16.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/expressions/binary/add/mat3x3-mat3x3/f16.wgsl.expected.ir.dxc.hlsl
@@ -1,3 +1,4 @@
+
 [numthreads(1, 1, 1)]
 void f() {
   matrix<float16_t, 3, 3> a = matrix<float16_t, 3, 3>(vector<float16_t, 3>(float16_t(1.0h), float16_t(2.0h), float16_t(3.0h)), vector<float16_t, 3>(float16_t(4.0h), float16_t(5.0h), float16_t(6.0h)), vector<float16_t, 3>(float16_t(7.0h), float16_t(8.0h), float16_t(9.0h)));
diff --git a/test/tint/expressions/binary/add/mat3x3-mat3x3/f16.wgsl.expected.ir.fxc.hlsl b/test/tint/expressions/binary/add/mat3x3-mat3x3/f16.wgsl.expected.ir.fxc.hlsl
index f5eff1e..ba5e965 100644
--- a/test/tint/expressions/binary/add/mat3x3-mat3x3/f16.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/expressions/binary/add/mat3x3-mat3x3/f16.wgsl.expected.ir.fxc.hlsl
@@ -1,5 +1,6 @@
 SKIP: FAILED
 
+
 [numthreads(1, 1, 1)]
 void f() {
   matrix<float16_t, 3, 3> a = matrix<float16_t, 3, 3>(vector<float16_t, 3>(float16_t(1.0h), float16_t(2.0h), float16_t(3.0h)), vector<float16_t, 3>(float16_t(4.0h), float16_t(5.0h), float16_t(6.0h)), vector<float16_t, 3>(float16_t(7.0h), float16_t(8.0h), float16_t(9.0h)));
@@ -7,3 +8,8 @@
   matrix<float16_t, 3, 3> r = (a + b);
 }
 
+FXC validation failure:
+c:\src\dawn\Shader@0x0000025D496A06B0(4,10-18): error X3000: syntax error: unexpected token 'float16_t'
+c:\src\dawn\Shader@0x0000025D496A06B0(5,10-18): error X3000: syntax error: unexpected token 'float16_t'
+c:\src\dawn\Shader@0x0000025D496A06B0(6,10-18): error X3000: syntax error: unexpected token 'float16_t'
+
diff --git a/test/tint/expressions/binary/add/mat3x3-mat3x3/f32.wgsl.expected.ir.dxc.hlsl b/test/tint/expressions/binary/add/mat3x3-mat3x3/f32.wgsl.expected.ir.dxc.hlsl
index 2db51d9..2cde1a0 100644
--- a/test/tint/expressions/binary/add/mat3x3-mat3x3/f32.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/expressions/binary/add/mat3x3-mat3x3/f32.wgsl.expected.ir.dxc.hlsl
@@ -1,3 +1,4 @@
+
 [numthreads(1, 1, 1)]
 void f() {
   float3x3 a = 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/binary/add/mat3x3-mat3x3/f32.wgsl.expected.ir.fxc.hlsl b/test/tint/expressions/binary/add/mat3x3-mat3x3/f32.wgsl.expected.ir.fxc.hlsl
index 207c3ea..2cde1a0 100644
--- a/test/tint/expressions/binary/add/mat3x3-mat3x3/f32.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/expressions/binary/add/mat3x3-mat3x3/f32.wgsl.expected.ir.fxc.hlsl
@@ -1,4 +1,3 @@
-SKIP: FAILED
 
 [numthreads(1, 1, 1)]
 void f() {
diff --git a/test/tint/expressions/binary/add/scalar-scalar/f16.wgsl.expected.ir.dxc.hlsl b/test/tint/expressions/binary/add/scalar-scalar/f16.wgsl.expected.ir.dxc.hlsl
index c31c76c..96ad696 100644
--- a/test/tint/expressions/binary/add/scalar-scalar/f16.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/expressions/binary/add/scalar-scalar/f16.wgsl.expected.ir.dxc.hlsl
@@ -1,3 +1,4 @@
+
 [numthreads(1, 1, 1)]
 void f() {
   float16_t a = float16_t(1.0h);
diff --git a/test/tint/expressions/binary/add/scalar-scalar/f16.wgsl.expected.ir.fxc.hlsl b/test/tint/expressions/binary/add/scalar-scalar/f16.wgsl.expected.ir.fxc.hlsl
index 83f76d3..c9a6609 100644
--- a/test/tint/expressions/binary/add/scalar-scalar/f16.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/expressions/binary/add/scalar-scalar/f16.wgsl.expected.ir.fxc.hlsl
@@ -1,5 +1,6 @@
 SKIP: FAILED
 
+
 [numthreads(1, 1, 1)]
 void f() {
   float16_t a = float16_t(1.0h);
@@ -7,3 +8,7 @@
   float16_t r = (a + b);
 }
 
+FXC validation failure:
+c:\src\dawn\Shader@0x000001A792DD5980(4,3-11): error X3000: unrecognized identifier 'float16_t'
+c:\src\dawn\Shader@0x000001A792DD5980(4,13): error X3000: unrecognized identifier 'a'
+
diff --git a/test/tint/expressions/binary/add/scalar-scalar/f32.wgsl.expected.ir.dxc.hlsl b/test/tint/expressions/binary/add/scalar-scalar/f32.wgsl.expected.ir.dxc.hlsl
index a349d1e..6bcea3f 100644
--- a/test/tint/expressions/binary/add/scalar-scalar/f32.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/expressions/binary/add/scalar-scalar/f32.wgsl.expected.ir.dxc.hlsl
@@ -1,3 +1,4 @@
+
 [numthreads(1, 1, 1)]
 void f() {
   float a = 1.0f;
diff --git a/test/tint/expressions/binary/add/scalar-scalar/f32.wgsl.expected.ir.fxc.hlsl b/test/tint/expressions/binary/add/scalar-scalar/f32.wgsl.expected.ir.fxc.hlsl
index 738d9dd..6bcea3f 100644
--- a/test/tint/expressions/binary/add/scalar-scalar/f32.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/expressions/binary/add/scalar-scalar/f32.wgsl.expected.ir.fxc.hlsl
@@ -1,4 +1,3 @@
-SKIP: FAILED
 
 [numthreads(1, 1, 1)]
 void f() {
diff --git a/test/tint/expressions/binary/add/scalar-scalar/i32.wgsl.expected.ir.dxc.hlsl b/test/tint/expressions/binary/add/scalar-scalar/i32.wgsl.expected.ir.dxc.hlsl
index 4aac0a8..1b16b18 100644
--- a/test/tint/expressions/binary/add/scalar-scalar/i32.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/expressions/binary/add/scalar-scalar/i32.wgsl.expected.ir.dxc.hlsl
@@ -1,3 +1,4 @@
+
 [numthreads(1, 1, 1)]
 void f() {
   int a = 1;
diff --git a/test/tint/expressions/binary/add/scalar-scalar/i32.wgsl.expected.ir.fxc.hlsl b/test/tint/expressions/binary/add/scalar-scalar/i32.wgsl.expected.ir.fxc.hlsl
index dc9ab30..1b16b18 100644
--- a/test/tint/expressions/binary/add/scalar-scalar/i32.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/expressions/binary/add/scalar-scalar/i32.wgsl.expected.ir.fxc.hlsl
@@ -1,4 +1,3 @@
-SKIP: FAILED
 
 [numthreads(1, 1, 1)]
 void f() {
diff --git a/test/tint/expressions/binary/add/scalar-scalar/u32.wgsl.expected.ir.dxc.hlsl b/test/tint/expressions/binary/add/scalar-scalar/u32.wgsl.expected.ir.dxc.hlsl
index 2059cbe..e098a33 100644
--- a/test/tint/expressions/binary/add/scalar-scalar/u32.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/expressions/binary/add/scalar-scalar/u32.wgsl.expected.ir.dxc.hlsl
@@ -1,3 +1,4 @@
+
 [numthreads(1, 1, 1)]
 void f() {
   uint a = 1u;
diff --git a/test/tint/expressions/binary/add/scalar-scalar/u32.wgsl.expected.ir.fxc.hlsl b/test/tint/expressions/binary/add/scalar-scalar/u32.wgsl.expected.ir.fxc.hlsl
index 11a47a0..e098a33 100644
--- a/test/tint/expressions/binary/add/scalar-scalar/u32.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/expressions/binary/add/scalar-scalar/u32.wgsl.expected.ir.fxc.hlsl
@@ -1,4 +1,3 @@
-SKIP: FAILED
 
 [numthreads(1, 1, 1)]
 void f() {
diff --git a/test/tint/expressions/binary/add/scalar-vec3/f16.wgsl.expected.ir.dxc.hlsl b/test/tint/expressions/binary/add/scalar-vec3/f16.wgsl.expected.ir.dxc.hlsl
index 9b5a6ee..cbce26e 100644
--- a/test/tint/expressions/binary/add/scalar-vec3/f16.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/expressions/binary/add/scalar-vec3/f16.wgsl.expected.ir.dxc.hlsl
@@ -1,3 +1,4 @@
+
 [numthreads(1, 1, 1)]
 void f() {
   float16_t a = float16_t(4.0h);
diff --git a/test/tint/expressions/binary/add/scalar-vec3/f16.wgsl.expected.ir.fxc.hlsl b/test/tint/expressions/binary/add/scalar-vec3/f16.wgsl.expected.ir.fxc.hlsl
index 70a090a..8bf062d 100644
--- a/test/tint/expressions/binary/add/scalar-vec3/f16.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/expressions/binary/add/scalar-vec3/f16.wgsl.expected.ir.fxc.hlsl
@@ -1,5 +1,6 @@
 SKIP: FAILED
 
+
 [numthreads(1, 1, 1)]
 void f() {
   float16_t a = float16_t(4.0h);
@@ -7,3 +8,7 @@
   vector<float16_t, 3> r = (a + b);
 }
 
+FXC validation failure:
+c:\src\dawn\Shader@0x000001872BE7F400(4,3-11): error X3000: unrecognized identifier 'float16_t'
+c:\src\dawn\Shader@0x000001872BE7F400(4,13): error X3000: unrecognized identifier 'a'
+
diff --git a/test/tint/expressions/binary/add/scalar-vec3/f32.wgsl.expected.ir.dxc.hlsl b/test/tint/expressions/binary/add/scalar-vec3/f32.wgsl.expected.ir.dxc.hlsl
index 1332248..25be92b 100644
--- a/test/tint/expressions/binary/add/scalar-vec3/f32.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/expressions/binary/add/scalar-vec3/f32.wgsl.expected.ir.dxc.hlsl
@@ -1,3 +1,4 @@
+
 [numthreads(1, 1, 1)]
 void f() {
   float a = 4.0f;
diff --git a/test/tint/expressions/binary/add/scalar-vec3/f32.wgsl.expected.ir.fxc.hlsl b/test/tint/expressions/binary/add/scalar-vec3/f32.wgsl.expected.ir.fxc.hlsl
index 060b673..25be92b 100644
--- a/test/tint/expressions/binary/add/scalar-vec3/f32.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/expressions/binary/add/scalar-vec3/f32.wgsl.expected.ir.fxc.hlsl
@@ -1,4 +1,3 @@
-SKIP: FAILED
 
 [numthreads(1, 1, 1)]
 void f() {
diff --git a/test/tint/expressions/binary/add/scalar-vec3/i32.wgsl.expected.ir.dxc.hlsl b/test/tint/expressions/binary/add/scalar-vec3/i32.wgsl.expected.ir.dxc.hlsl
index e58a5f9..fbbd562 100644
--- a/test/tint/expressions/binary/add/scalar-vec3/i32.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/expressions/binary/add/scalar-vec3/i32.wgsl.expected.ir.dxc.hlsl
@@ -1,3 +1,4 @@
+
 [numthreads(1, 1, 1)]
 void f() {
   int a = 4;
diff --git a/test/tint/expressions/binary/add/scalar-vec3/i32.wgsl.expected.ir.fxc.hlsl b/test/tint/expressions/binary/add/scalar-vec3/i32.wgsl.expected.ir.fxc.hlsl
index 5c3b603..fbbd562 100644
--- a/test/tint/expressions/binary/add/scalar-vec3/i32.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/expressions/binary/add/scalar-vec3/i32.wgsl.expected.ir.fxc.hlsl
@@ -1,4 +1,3 @@
-SKIP: FAILED
 
 [numthreads(1, 1, 1)]
 void f() {
diff --git a/test/tint/expressions/binary/add/scalar-vec3/u32.wgsl.expected.ir.dxc.hlsl b/test/tint/expressions/binary/add/scalar-vec3/u32.wgsl.expected.ir.dxc.hlsl
index 33ebe49..0572a59 100644
--- a/test/tint/expressions/binary/add/scalar-vec3/u32.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/expressions/binary/add/scalar-vec3/u32.wgsl.expected.ir.dxc.hlsl
@@ -1,3 +1,4 @@
+
 [numthreads(1, 1, 1)]
 void f() {
   uint a = 4u;
diff --git a/test/tint/expressions/binary/add/scalar-vec3/u32.wgsl.expected.ir.fxc.hlsl b/test/tint/expressions/binary/add/scalar-vec3/u32.wgsl.expected.ir.fxc.hlsl
index 3d3e121..0572a59 100644
--- a/test/tint/expressions/binary/add/scalar-vec3/u32.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/expressions/binary/add/scalar-vec3/u32.wgsl.expected.ir.fxc.hlsl
@@ -1,4 +1,3 @@
-SKIP: FAILED
 
 [numthreads(1, 1, 1)]
 void f() {
diff --git a/test/tint/expressions/binary/add/vec3-scalar/f16.wgsl.expected.ir.dxc.hlsl b/test/tint/expressions/binary/add/vec3-scalar/f16.wgsl.expected.ir.dxc.hlsl
index f36aec3..76cf8b8 100644
--- a/test/tint/expressions/binary/add/vec3-scalar/f16.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/expressions/binary/add/vec3-scalar/f16.wgsl.expected.ir.dxc.hlsl
@@ -1,3 +1,4 @@
+
 [numthreads(1, 1, 1)]
 void f() {
   vector<float16_t, 3> a = vector<float16_t, 3>(float16_t(1.0h), float16_t(2.0h), float16_t(3.0h));
diff --git a/test/tint/expressions/binary/add/vec3-scalar/f16.wgsl.expected.ir.fxc.hlsl b/test/tint/expressions/binary/add/vec3-scalar/f16.wgsl.expected.ir.fxc.hlsl
index 4b09dba..688a1de 100644
--- a/test/tint/expressions/binary/add/vec3-scalar/f16.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/expressions/binary/add/vec3-scalar/f16.wgsl.expected.ir.fxc.hlsl
@@ -1,5 +1,6 @@
 SKIP: FAILED
 
+
 [numthreads(1, 1, 1)]
 void f() {
   vector<float16_t, 3> a = vector<float16_t, 3>(float16_t(1.0h), float16_t(2.0h), float16_t(3.0h));
@@ -7,3 +8,8 @@
   vector<float16_t, 3> r = (a + b);
 }
 
+FXC validation failure:
+c:\src\dawn\Shader@0x00000174F877F2F0(4,10-18): error X3000: syntax error: unexpected token 'float16_t'
+c:\src\dawn\Shader@0x00000174F877F2F0(5,3-11): error X3000: unrecognized identifier 'float16_t'
+c:\src\dawn\Shader@0x00000174F877F2F0(5,13): error X3000: unrecognized identifier 'b'
+
diff --git a/test/tint/expressions/binary/add/vec3-scalar/f32.wgsl.expected.ir.dxc.hlsl b/test/tint/expressions/binary/add/vec3-scalar/f32.wgsl.expected.ir.dxc.hlsl
index 308967a..13d8679 100644
--- a/test/tint/expressions/binary/add/vec3-scalar/f32.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/expressions/binary/add/vec3-scalar/f32.wgsl.expected.ir.dxc.hlsl
@@ -1,3 +1,4 @@
+
 [numthreads(1, 1, 1)]
 void f() {
   float3 a = float3(1.0f, 2.0f, 3.0f);
diff --git a/test/tint/expressions/binary/add/vec3-scalar/f32.wgsl.expected.ir.fxc.hlsl b/test/tint/expressions/binary/add/vec3-scalar/f32.wgsl.expected.ir.fxc.hlsl
index d8167b0..13d8679 100644
--- a/test/tint/expressions/binary/add/vec3-scalar/f32.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/expressions/binary/add/vec3-scalar/f32.wgsl.expected.ir.fxc.hlsl
@@ -1,4 +1,3 @@
-SKIP: FAILED
 
 [numthreads(1, 1, 1)]
 void f() {
diff --git a/test/tint/expressions/binary/add/vec3-scalar/i32.wgsl.expected.ir.dxc.hlsl b/test/tint/expressions/binary/add/vec3-scalar/i32.wgsl.expected.ir.dxc.hlsl
index e2764fe..624b9e2 100644
--- a/test/tint/expressions/binary/add/vec3-scalar/i32.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/expressions/binary/add/vec3-scalar/i32.wgsl.expected.ir.dxc.hlsl
@@ -1,3 +1,4 @@
+
 [numthreads(1, 1, 1)]
 void f() {
   int3 a = int3(1, 2, 3);
diff --git a/test/tint/expressions/binary/add/vec3-scalar/i32.wgsl.expected.ir.fxc.hlsl b/test/tint/expressions/binary/add/vec3-scalar/i32.wgsl.expected.ir.fxc.hlsl
index ebb3a85..624b9e2 100644
--- a/test/tint/expressions/binary/add/vec3-scalar/i32.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/expressions/binary/add/vec3-scalar/i32.wgsl.expected.ir.fxc.hlsl
@@ -1,4 +1,3 @@
-SKIP: FAILED
 
 [numthreads(1, 1, 1)]
 void f() {
diff --git a/test/tint/expressions/binary/add/vec3-scalar/u32.wgsl.expected.ir.dxc.hlsl b/test/tint/expressions/binary/add/vec3-scalar/u32.wgsl.expected.ir.dxc.hlsl
index 051dc39..4d4f59f 100644
--- a/test/tint/expressions/binary/add/vec3-scalar/u32.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/expressions/binary/add/vec3-scalar/u32.wgsl.expected.ir.dxc.hlsl
@@ -1,3 +1,4 @@
+
 [numthreads(1, 1, 1)]
 void f() {
   uint3 a = uint3(1u, 2u, 3u);
diff --git a/test/tint/expressions/binary/add/vec3-scalar/u32.wgsl.expected.ir.fxc.hlsl b/test/tint/expressions/binary/add/vec3-scalar/u32.wgsl.expected.ir.fxc.hlsl
index fb30053..4d4f59f 100644
--- a/test/tint/expressions/binary/add/vec3-scalar/u32.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/expressions/binary/add/vec3-scalar/u32.wgsl.expected.ir.fxc.hlsl
@@ -1,4 +1,3 @@
-SKIP: FAILED
 
 [numthreads(1, 1, 1)]
 void f() {
diff --git a/test/tint/expressions/binary/add/vec3-vec3/f16.wgsl.expected.ir.dxc.hlsl b/test/tint/expressions/binary/add/vec3-vec3/f16.wgsl.expected.ir.dxc.hlsl
index 8059e0a..a6e6c2f 100644
--- a/test/tint/expressions/binary/add/vec3-vec3/f16.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/expressions/binary/add/vec3-vec3/f16.wgsl.expected.ir.dxc.hlsl
@@ -1,3 +1,4 @@
+
 [numthreads(1, 1, 1)]
 void f() {
   vector<float16_t, 3> a = vector<float16_t, 3>(float16_t(1.0h), float16_t(2.0h), float16_t(3.0h));
diff --git a/test/tint/expressions/binary/add/vec3-vec3/f16.wgsl.expected.ir.fxc.hlsl b/test/tint/expressions/binary/add/vec3-vec3/f16.wgsl.expected.ir.fxc.hlsl
index e5bfaea..9b81a87 100644
--- a/test/tint/expressions/binary/add/vec3-vec3/f16.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/expressions/binary/add/vec3-vec3/f16.wgsl.expected.ir.fxc.hlsl
@@ -1,5 +1,6 @@
 SKIP: FAILED
 
+
 [numthreads(1, 1, 1)]
 void f() {
   vector<float16_t, 3> a = vector<float16_t, 3>(float16_t(1.0h), float16_t(2.0h), float16_t(3.0h));
@@ -7,3 +8,8 @@
   vector<float16_t, 3> r = (a + b);
 }
 
+FXC validation failure:
+c:\src\dawn\Shader@0x000001CDA3826B50(4,10-18): error X3000: syntax error: unexpected token 'float16_t'
+c:\src\dawn\Shader@0x000001CDA3826B50(5,10-18): error X3000: syntax error: unexpected token 'float16_t'
+c:\src\dawn\Shader@0x000001CDA3826B50(6,10-18): error X3000: syntax error: unexpected token 'float16_t'
+
diff --git a/test/tint/expressions/binary/add/vec3-vec3/f32.wgsl.expected.ir.dxc.hlsl b/test/tint/expressions/binary/add/vec3-vec3/f32.wgsl.expected.ir.dxc.hlsl
index 4fd23ab..9cf6000 100644
--- a/test/tint/expressions/binary/add/vec3-vec3/f32.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/expressions/binary/add/vec3-vec3/f32.wgsl.expected.ir.dxc.hlsl
@@ -1,3 +1,4 @@
+
 [numthreads(1, 1, 1)]
 void f() {
   float3 a = float3(1.0f, 2.0f, 3.0f);
diff --git a/test/tint/expressions/binary/add/vec3-vec3/f32.wgsl.expected.ir.fxc.hlsl b/test/tint/expressions/binary/add/vec3-vec3/f32.wgsl.expected.ir.fxc.hlsl
index 2f011ce..9cf6000 100644
--- a/test/tint/expressions/binary/add/vec3-vec3/f32.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/expressions/binary/add/vec3-vec3/f32.wgsl.expected.ir.fxc.hlsl
@@ -1,4 +1,3 @@
-SKIP: FAILED
 
 [numthreads(1, 1, 1)]
 void f() {
diff --git a/test/tint/expressions/binary/add/vec3-vec3/i32.wgsl.expected.ir.dxc.hlsl b/test/tint/expressions/binary/add/vec3-vec3/i32.wgsl.expected.ir.dxc.hlsl
index f16b45f..3d8271f 100644
--- a/test/tint/expressions/binary/add/vec3-vec3/i32.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/expressions/binary/add/vec3-vec3/i32.wgsl.expected.ir.dxc.hlsl
@@ -1,3 +1,4 @@
+
 [numthreads(1, 1, 1)]
 void f() {
   int3 a = int3(1, 2, 3);
diff --git a/test/tint/expressions/binary/add/vec3-vec3/i32.wgsl.expected.ir.fxc.hlsl b/test/tint/expressions/binary/add/vec3-vec3/i32.wgsl.expected.ir.fxc.hlsl
index 1d1b48b..3d8271f 100644
--- a/test/tint/expressions/binary/add/vec3-vec3/i32.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/expressions/binary/add/vec3-vec3/i32.wgsl.expected.ir.fxc.hlsl
@@ -1,4 +1,3 @@
-SKIP: FAILED
 
 [numthreads(1, 1, 1)]
 void f() {
diff --git a/test/tint/expressions/binary/add/vec3-vec3/u32.wgsl.expected.ir.dxc.hlsl b/test/tint/expressions/binary/add/vec3-vec3/u32.wgsl.expected.ir.dxc.hlsl
index 4282d22..428e2ec 100644
--- a/test/tint/expressions/binary/add/vec3-vec3/u32.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/expressions/binary/add/vec3-vec3/u32.wgsl.expected.ir.dxc.hlsl
@@ -1,3 +1,4 @@
+
 [numthreads(1, 1, 1)]
 void f() {
   uint3 a = uint3(1u, 2u, 3u);
diff --git a/test/tint/expressions/binary/add/vec3-vec3/u32.wgsl.expected.ir.fxc.hlsl b/test/tint/expressions/binary/add/vec3-vec3/u32.wgsl.expected.ir.fxc.hlsl
index 2b85ea2..428e2ec 100644
--- a/test/tint/expressions/binary/add/vec3-vec3/u32.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/expressions/binary/add/vec3-vec3/u32.wgsl.expected.ir.fxc.hlsl
@@ -1,4 +1,3 @@
-SKIP: FAILED
 
 [numthreads(1, 1, 1)]
 void f() {
diff --git a/test/tint/expressions/binary/bit-and/scalar-scalar/bool.wgsl.expected.ir.dxc.hlsl b/test/tint/expressions/binary/bit-and/scalar-scalar/bool.wgsl.expected.ir.dxc.hlsl
index 8fd2cfb..9a48dde6 100644
--- a/test/tint/expressions/binary/bit-and/scalar-scalar/bool.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/expressions/binary/bit-and/scalar-scalar/bool.wgsl.expected.ir.dxc.hlsl
@@ -1,3 +1,4 @@
+
 [numthreads(1, 1, 1)]
 void f() {
   bool a = true;
diff --git a/test/tint/expressions/binary/bit-and/scalar-scalar/bool.wgsl.expected.ir.fxc.hlsl b/test/tint/expressions/binary/bit-and/scalar-scalar/bool.wgsl.expected.ir.fxc.hlsl
index 517a64c..9a48dde6 100644
--- a/test/tint/expressions/binary/bit-and/scalar-scalar/bool.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/expressions/binary/bit-and/scalar-scalar/bool.wgsl.expected.ir.fxc.hlsl
@@ -1,4 +1,3 @@
-SKIP: FAILED
 
 [numthreads(1, 1, 1)]
 void f() {
diff --git a/test/tint/expressions/binary/bit-and/scalar-scalar/i32.wgsl.expected.ir.dxc.hlsl b/test/tint/expressions/binary/bit-and/scalar-scalar/i32.wgsl.expected.ir.dxc.hlsl
index b39f57b..4b06518 100644
--- a/test/tint/expressions/binary/bit-and/scalar-scalar/i32.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/expressions/binary/bit-and/scalar-scalar/i32.wgsl.expected.ir.dxc.hlsl
@@ -1,3 +1,4 @@
+
 [numthreads(1, 1, 1)]
 void f() {
   int a = 1;
diff --git a/test/tint/expressions/binary/bit-and/scalar-scalar/i32.wgsl.expected.ir.fxc.hlsl b/test/tint/expressions/binary/bit-and/scalar-scalar/i32.wgsl.expected.ir.fxc.hlsl
index b416d45..4b06518 100644
--- a/test/tint/expressions/binary/bit-and/scalar-scalar/i32.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/expressions/binary/bit-and/scalar-scalar/i32.wgsl.expected.ir.fxc.hlsl
@@ -1,4 +1,3 @@
-SKIP: FAILED
 
 [numthreads(1, 1, 1)]
 void f() {
diff --git a/test/tint/expressions/binary/bit-and/scalar-scalar/u32.wgsl.expected.ir.dxc.hlsl b/test/tint/expressions/binary/bit-and/scalar-scalar/u32.wgsl.expected.ir.dxc.hlsl
index 43f9789..e7a3487 100644
--- a/test/tint/expressions/binary/bit-and/scalar-scalar/u32.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/expressions/binary/bit-and/scalar-scalar/u32.wgsl.expected.ir.dxc.hlsl
@@ -1,3 +1,4 @@
+
 [numthreads(1, 1, 1)]
 void f() {
   uint a = 1u;
diff --git a/test/tint/expressions/binary/bit-and/scalar-scalar/u32.wgsl.expected.ir.fxc.hlsl b/test/tint/expressions/binary/bit-and/scalar-scalar/u32.wgsl.expected.ir.fxc.hlsl
index bbd611b..e7a3487 100644
--- a/test/tint/expressions/binary/bit-and/scalar-scalar/u32.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/expressions/binary/bit-and/scalar-scalar/u32.wgsl.expected.ir.fxc.hlsl
@@ -1,4 +1,3 @@
-SKIP: FAILED
 
 [numthreads(1, 1, 1)]
 void f() {
diff --git a/test/tint/expressions/binary/bit-and/vec3-vec3/bool.wgsl.expected.ir.dxc.hlsl b/test/tint/expressions/binary/bit-and/vec3-vec3/bool.wgsl.expected.ir.dxc.hlsl
index 009a04e..3443709 100644
--- a/test/tint/expressions/binary/bit-and/vec3-vec3/bool.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/expressions/binary/bit-and/vec3-vec3/bool.wgsl.expected.ir.dxc.hlsl
@@ -1,3 +1,4 @@
+
 [numthreads(1, 1, 1)]
 void f() {
   bool3 a = bool3(true, true, false);
diff --git a/test/tint/expressions/binary/bit-and/vec3-vec3/bool.wgsl.expected.ir.fxc.hlsl b/test/tint/expressions/binary/bit-and/vec3-vec3/bool.wgsl.expected.ir.fxc.hlsl
index c7007c4..3443709 100644
--- a/test/tint/expressions/binary/bit-and/vec3-vec3/bool.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/expressions/binary/bit-and/vec3-vec3/bool.wgsl.expected.ir.fxc.hlsl
@@ -1,4 +1,3 @@
-SKIP: FAILED
 
 [numthreads(1, 1, 1)]
 void f() {
diff --git a/test/tint/expressions/binary/bit-and/vec3-vec3/i32.wgsl.expected.ir.dxc.hlsl b/test/tint/expressions/binary/bit-and/vec3-vec3/i32.wgsl.expected.ir.dxc.hlsl
index 7431107..19bccc3 100644
--- a/test/tint/expressions/binary/bit-and/vec3-vec3/i32.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/expressions/binary/bit-and/vec3-vec3/i32.wgsl.expected.ir.dxc.hlsl
@@ -1,3 +1,4 @@
+
 [numthreads(1, 1, 1)]
 void f() {
   int3 a = int3(1, 2, 3);
diff --git a/test/tint/expressions/binary/bit-and/vec3-vec3/i32.wgsl.expected.ir.fxc.hlsl b/test/tint/expressions/binary/bit-and/vec3-vec3/i32.wgsl.expected.ir.fxc.hlsl
index 087bd29..19bccc3 100644
--- a/test/tint/expressions/binary/bit-and/vec3-vec3/i32.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/expressions/binary/bit-and/vec3-vec3/i32.wgsl.expected.ir.fxc.hlsl
@@ -1,4 +1,3 @@
-SKIP: FAILED
 
 [numthreads(1, 1, 1)]
 void f() {
diff --git a/test/tint/expressions/binary/bit-and/vec3-vec3/u32.wgsl.expected.ir.dxc.hlsl b/test/tint/expressions/binary/bit-and/vec3-vec3/u32.wgsl.expected.ir.dxc.hlsl
index 7910128..8c21728 100644
--- a/test/tint/expressions/binary/bit-and/vec3-vec3/u32.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/expressions/binary/bit-and/vec3-vec3/u32.wgsl.expected.ir.dxc.hlsl
@@ -1,3 +1,4 @@
+
 [numthreads(1, 1, 1)]
 void f() {
   uint3 a = uint3(1u, 2u, 3u);
diff --git a/test/tint/expressions/binary/bit-and/vec3-vec3/u32.wgsl.expected.ir.fxc.hlsl b/test/tint/expressions/binary/bit-and/vec3-vec3/u32.wgsl.expected.ir.fxc.hlsl
index a7053f7..8c21728 100644
--- a/test/tint/expressions/binary/bit-and/vec3-vec3/u32.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/expressions/binary/bit-and/vec3-vec3/u32.wgsl.expected.ir.fxc.hlsl
@@ -1,4 +1,3 @@
-SKIP: FAILED
 
 [numthreads(1, 1, 1)]
 void f() {
diff --git a/test/tint/expressions/binary/bit-or/scalar-scalar/i32.wgsl.expected.ir.dxc.hlsl b/test/tint/expressions/binary/bit-or/scalar-scalar/i32.wgsl.expected.ir.dxc.hlsl
index 9556445..f5d67fd 100644
--- a/test/tint/expressions/binary/bit-or/scalar-scalar/i32.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/expressions/binary/bit-or/scalar-scalar/i32.wgsl.expected.ir.dxc.hlsl
@@ -1,3 +1,4 @@
+
 [numthreads(1, 1, 1)]
 void f() {
   int a = 1;
diff --git a/test/tint/expressions/binary/bit-or/scalar-scalar/i32.wgsl.expected.ir.fxc.hlsl b/test/tint/expressions/binary/bit-or/scalar-scalar/i32.wgsl.expected.ir.fxc.hlsl
index b773634..f5d67fd 100644
--- a/test/tint/expressions/binary/bit-or/scalar-scalar/i32.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/expressions/binary/bit-or/scalar-scalar/i32.wgsl.expected.ir.fxc.hlsl
@@ -1,4 +1,3 @@
-SKIP: FAILED
 
 [numthreads(1, 1, 1)]
 void f() {
diff --git a/test/tint/expressions/binary/bit-or/scalar-scalar/u32.wgsl.expected.ir.dxc.hlsl b/test/tint/expressions/binary/bit-or/scalar-scalar/u32.wgsl.expected.ir.dxc.hlsl
index 6e4d4b3..2162b88 100644
--- a/test/tint/expressions/binary/bit-or/scalar-scalar/u32.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/expressions/binary/bit-or/scalar-scalar/u32.wgsl.expected.ir.dxc.hlsl
@@ -1,3 +1,4 @@
+
 [numthreads(1, 1, 1)]
 void f() {
   uint a = 1u;
diff --git a/test/tint/expressions/binary/bit-or/scalar-scalar/u32.wgsl.expected.ir.fxc.hlsl b/test/tint/expressions/binary/bit-or/scalar-scalar/u32.wgsl.expected.ir.fxc.hlsl
index 9bcb664..2162b88 100644
--- a/test/tint/expressions/binary/bit-or/scalar-scalar/u32.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/expressions/binary/bit-or/scalar-scalar/u32.wgsl.expected.ir.fxc.hlsl
@@ -1,4 +1,3 @@
-SKIP: FAILED
 
 [numthreads(1, 1, 1)]
 void f() {
diff --git a/test/tint/expressions/binary/bit-or/vec3-vec3/i32.wgsl.expected.ir.dxc.hlsl b/test/tint/expressions/binary/bit-or/vec3-vec3/i32.wgsl.expected.ir.dxc.hlsl
index 097dd21..abb3b07 100644
--- a/test/tint/expressions/binary/bit-or/vec3-vec3/i32.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/expressions/binary/bit-or/vec3-vec3/i32.wgsl.expected.ir.dxc.hlsl
@@ -1,3 +1,4 @@
+
 [numthreads(1, 1, 1)]
 void f() {
   int3 a = int3(1, 2, 3);
diff --git a/test/tint/expressions/binary/bit-or/vec3-vec3/i32.wgsl.expected.ir.fxc.hlsl b/test/tint/expressions/binary/bit-or/vec3-vec3/i32.wgsl.expected.ir.fxc.hlsl
index 1ba803e..abb3b07 100644
--- a/test/tint/expressions/binary/bit-or/vec3-vec3/i32.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/expressions/binary/bit-or/vec3-vec3/i32.wgsl.expected.ir.fxc.hlsl
@@ -1,4 +1,3 @@
-SKIP: FAILED
 
 [numthreads(1, 1, 1)]
 void f() {
diff --git a/test/tint/expressions/binary/bit-or/vec3-vec3/u32.wgsl.expected.ir.dxc.hlsl b/test/tint/expressions/binary/bit-or/vec3-vec3/u32.wgsl.expected.ir.dxc.hlsl
index 65acb75..4e63c1f 100644
--- a/test/tint/expressions/binary/bit-or/vec3-vec3/u32.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/expressions/binary/bit-or/vec3-vec3/u32.wgsl.expected.ir.dxc.hlsl
@@ -1,3 +1,4 @@
+
 [numthreads(1, 1, 1)]
 void f() {
   uint3 a = uint3(1u, 2u, 3u);
diff --git a/test/tint/expressions/binary/bit-or/vec3-vec3/u32.wgsl.expected.ir.fxc.hlsl b/test/tint/expressions/binary/bit-or/vec3-vec3/u32.wgsl.expected.ir.fxc.hlsl
index 693d53b..4e63c1f 100644
--- a/test/tint/expressions/binary/bit-or/vec3-vec3/u32.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/expressions/binary/bit-or/vec3-vec3/u32.wgsl.expected.ir.fxc.hlsl
@@ -1,4 +1,3 @@
-SKIP: FAILED
 
 [numthreads(1, 1, 1)]
 void f() {
diff --git a/test/tint/expressions/binary/bit-xor/scalar-scalar/i32.wgsl.expected.ir.dxc.hlsl b/test/tint/expressions/binary/bit-xor/scalar-scalar/i32.wgsl.expected.ir.dxc.hlsl
index e605dd7..2689341 100644
--- a/test/tint/expressions/binary/bit-xor/scalar-scalar/i32.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/expressions/binary/bit-xor/scalar-scalar/i32.wgsl.expected.ir.dxc.hlsl
@@ -1,3 +1,4 @@
+
 [numthreads(1, 1, 1)]
 void f() {
   int a = 1;
diff --git a/test/tint/expressions/binary/bit-xor/scalar-scalar/i32.wgsl.expected.ir.fxc.hlsl b/test/tint/expressions/binary/bit-xor/scalar-scalar/i32.wgsl.expected.ir.fxc.hlsl
index 8f503a5..2689341 100644
--- a/test/tint/expressions/binary/bit-xor/scalar-scalar/i32.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/expressions/binary/bit-xor/scalar-scalar/i32.wgsl.expected.ir.fxc.hlsl
@@ -1,4 +1,3 @@
-SKIP: FAILED
 
 [numthreads(1, 1, 1)]
 void f() {
diff --git a/test/tint/expressions/binary/bit-xor/scalar-scalar/u32.wgsl.expected.ir.dxc.hlsl b/test/tint/expressions/binary/bit-xor/scalar-scalar/u32.wgsl.expected.ir.dxc.hlsl
index 95c7e84..df3ff6c 100644
--- a/test/tint/expressions/binary/bit-xor/scalar-scalar/u32.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/expressions/binary/bit-xor/scalar-scalar/u32.wgsl.expected.ir.dxc.hlsl
@@ -1,3 +1,4 @@
+
 [numthreads(1, 1, 1)]
 void f() {
   uint a = 1u;
diff --git a/test/tint/expressions/binary/bit-xor/scalar-scalar/u32.wgsl.expected.ir.fxc.hlsl b/test/tint/expressions/binary/bit-xor/scalar-scalar/u32.wgsl.expected.ir.fxc.hlsl
index 0300ead..df3ff6c 100644
--- a/test/tint/expressions/binary/bit-xor/scalar-scalar/u32.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/expressions/binary/bit-xor/scalar-scalar/u32.wgsl.expected.ir.fxc.hlsl
@@ -1,4 +1,3 @@
-SKIP: FAILED
 
 [numthreads(1, 1, 1)]
 void f() {
diff --git a/test/tint/expressions/binary/bit-xor/vec3-vec3/i32.wgsl.expected.ir.dxc.hlsl b/test/tint/expressions/binary/bit-xor/vec3-vec3/i32.wgsl.expected.ir.dxc.hlsl
index 2a7a072..bfe19f8 100644
--- a/test/tint/expressions/binary/bit-xor/vec3-vec3/i32.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/expressions/binary/bit-xor/vec3-vec3/i32.wgsl.expected.ir.dxc.hlsl
@@ -1,3 +1,4 @@
+
 [numthreads(1, 1, 1)]
 void f() {
   int3 a = int3(1, 2, 3);
diff --git a/test/tint/expressions/binary/bit-xor/vec3-vec3/i32.wgsl.expected.ir.fxc.hlsl b/test/tint/expressions/binary/bit-xor/vec3-vec3/i32.wgsl.expected.ir.fxc.hlsl
index ecb9696..bfe19f8 100644
--- a/test/tint/expressions/binary/bit-xor/vec3-vec3/i32.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/expressions/binary/bit-xor/vec3-vec3/i32.wgsl.expected.ir.fxc.hlsl
@@ -1,4 +1,3 @@
-SKIP: FAILED
 
 [numthreads(1, 1, 1)]
 void f() {
diff --git a/test/tint/expressions/binary/bit-xor/vec3-vec3/u32.wgsl.expected.ir.dxc.hlsl b/test/tint/expressions/binary/bit-xor/vec3-vec3/u32.wgsl.expected.ir.dxc.hlsl
index 1b494be..fa1300f 100644
--- a/test/tint/expressions/binary/bit-xor/vec3-vec3/u32.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/expressions/binary/bit-xor/vec3-vec3/u32.wgsl.expected.ir.dxc.hlsl
@@ -1,3 +1,4 @@
+
 [numthreads(1, 1, 1)]
 void f() {
   uint3 a = uint3(1u, 2u, 3u);
diff --git a/test/tint/expressions/binary/bit-xor/vec3-vec3/u32.wgsl.expected.ir.fxc.hlsl b/test/tint/expressions/binary/bit-xor/vec3-vec3/u32.wgsl.expected.ir.fxc.hlsl
index 6b4a829..fa1300f 100644
--- a/test/tint/expressions/binary/bit-xor/vec3-vec3/u32.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/expressions/binary/bit-xor/vec3-vec3/u32.wgsl.expected.ir.fxc.hlsl
@@ -1,4 +1,3 @@
-SKIP: FAILED
 
 [numthreads(1, 1, 1)]
 void f() {
diff --git a/test/tint/expressions/binary/div/scalar-scalar/f16.wgsl.expected.ir.dxc.hlsl b/test/tint/expressions/binary/div/scalar-scalar/f16.wgsl.expected.ir.dxc.hlsl
index 8fcb887..3497e8b 100644
--- a/test/tint/expressions/binary/div/scalar-scalar/f16.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/expressions/binary/div/scalar-scalar/f16.wgsl.expected.ir.dxc.hlsl
@@ -1,3 +1,4 @@
+
 [numthreads(1, 1, 1)]
 void f() {
   float16_t a = float16_t(1.0h);
diff --git a/test/tint/expressions/binary/div/scalar-scalar/f16.wgsl.expected.ir.fxc.hlsl b/test/tint/expressions/binary/div/scalar-scalar/f16.wgsl.expected.ir.fxc.hlsl
index 716a762..b1fb3e2 100644
--- a/test/tint/expressions/binary/div/scalar-scalar/f16.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/expressions/binary/div/scalar-scalar/f16.wgsl.expected.ir.fxc.hlsl
@@ -1,5 +1,6 @@
 SKIP: FAILED
 
+
 [numthreads(1, 1, 1)]
 void f() {
   float16_t a = float16_t(1.0h);
@@ -7,3 +8,7 @@
   float16_t r = (a / b);
 }
 
+FXC validation failure:
+c:\src\dawn\Shader@0x00000220CA1DD6A0(4,3-11): error X3000: unrecognized identifier 'float16_t'
+c:\src\dawn\Shader@0x00000220CA1DD6A0(4,13): error X3000: unrecognized identifier 'a'
+
diff --git a/test/tint/expressions/binary/div/scalar-scalar/f32.wgsl.expected.ir.dxc.hlsl b/test/tint/expressions/binary/div/scalar-scalar/f32.wgsl.expected.ir.dxc.hlsl
index 7a56037..4fc9023 100644
--- a/test/tint/expressions/binary/div/scalar-scalar/f32.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/expressions/binary/div/scalar-scalar/f32.wgsl.expected.ir.dxc.hlsl
@@ -1,3 +1,4 @@
+
 [numthreads(1, 1, 1)]
 void f() {
   float a = 1.0f;
diff --git a/test/tint/expressions/binary/div/scalar-scalar/f32.wgsl.expected.ir.fxc.hlsl b/test/tint/expressions/binary/div/scalar-scalar/f32.wgsl.expected.ir.fxc.hlsl
index 025443a..4fc9023 100644
--- a/test/tint/expressions/binary/div/scalar-scalar/f32.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/expressions/binary/div/scalar-scalar/f32.wgsl.expected.ir.fxc.hlsl
@@ -1,4 +1,3 @@
-SKIP: FAILED
 
 [numthreads(1, 1, 1)]
 void f() {
diff --git a/test/tint/expressions/binary/div/scalar-scalar/i32.wgsl.expected.ir.dxc.hlsl b/test/tint/expressions/binary/div/scalar-scalar/i32.wgsl.expected.ir.dxc.hlsl
index 2fba5b2..3b819cd 100644
--- a/test/tint/expressions/binary/div/scalar-scalar/i32.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/expressions/binary/div/scalar-scalar/i32.wgsl.expected.ir.dxc.hlsl
@@ -1,7 +1,12 @@
+
+int tint_div_i32(int lhs, int rhs) {
+  return (lhs / ((((rhs == 0) | ((lhs == -2147483648) & (rhs == -1)))) ? (1) : (rhs)));
+}
+
 [numthreads(1, 1, 1)]
 void f() {
   int a = 1;
   int b = 2;
-  int r = (a / b);
+  int r = tint_div_i32(a, b);
 }
 
diff --git a/test/tint/expressions/binary/div/scalar-scalar/i32.wgsl.expected.ir.fxc.hlsl b/test/tint/expressions/binary/div/scalar-scalar/i32.wgsl.expected.ir.fxc.hlsl
index 5a92419..3b819cd 100644
--- a/test/tint/expressions/binary/div/scalar-scalar/i32.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/expressions/binary/div/scalar-scalar/i32.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,12 @@
-SKIP: FAILED
+
+int tint_div_i32(int lhs, int rhs) {
+  return (lhs / ((((rhs == 0) | ((lhs == -2147483648) & (rhs == -1)))) ? (1) : (rhs)));
+}
 
 [numthreads(1, 1, 1)]
 void f() {
   int a = 1;
   int b = 2;
-  int r = (a / b);
+  int r = tint_div_i32(a, b);
 }
 
diff --git a/test/tint/expressions/binary/div/scalar-scalar/u32.wgsl.expected.ir.dxc.hlsl b/test/tint/expressions/binary/div/scalar-scalar/u32.wgsl.expected.ir.dxc.hlsl
index e877fd1..a6a7ab8 100644
--- a/test/tint/expressions/binary/div/scalar-scalar/u32.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/expressions/binary/div/scalar-scalar/u32.wgsl.expected.ir.dxc.hlsl
@@ -1,7 +1,12 @@
+
+uint tint_div_u32(uint lhs, uint rhs) {
+  return (lhs / (((rhs == 0u)) ? (1u) : (rhs)));
+}
+
 [numthreads(1, 1, 1)]
 void f() {
   uint a = 1u;
   uint b = 2u;
-  uint r = (a / b);
+  uint r = tint_div_u32(a, b);
 }
 
diff --git a/test/tint/expressions/binary/div/scalar-scalar/u32.wgsl.expected.ir.fxc.hlsl b/test/tint/expressions/binary/div/scalar-scalar/u32.wgsl.expected.ir.fxc.hlsl
index 49a2d1d..a6a7ab8 100644
--- a/test/tint/expressions/binary/div/scalar-scalar/u32.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/expressions/binary/div/scalar-scalar/u32.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,12 @@
-SKIP: FAILED
+
+uint tint_div_u32(uint lhs, uint rhs) {
+  return (lhs / (((rhs == 0u)) ? (1u) : (rhs)));
+}
 
 [numthreads(1, 1, 1)]
 void f() {
   uint a = 1u;
   uint b = 2u;
-  uint r = (a / b);
+  uint r = tint_div_u32(a, b);
 }
 
diff --git a/test/tint/expressions/binary/div/scalar-vec3/f16.wgsl.expected.ir.dxc.hlsl b/test/tint/expressions/binary/div/scalar-vec3/f16.wgsl.expected.ir.dxc.hlsl
index c7094e5..49450a9 100644
--- a/test/tint/expressions/binary/div/scalar-vec3/f16.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/expressions/binary/div/scalar-vec3/f16.wgsl.expected.ir.dxc.hlsl
@@ -1,3 +1,4 @@
+
 [numthreads(1, 1, 1)]
 void f() {
   float16_t a = float16_t(4.0h);
diff --git a/test/tint/expressions/binary/div/scalar-vec3/f16.wgsl.expected.ir.fxc.hlsl b/test/tint/expressions/binary/div/scalar-vec3/f16.wgsl.expected.ir.fxc.hlsl
index 7672eaf..d606862 100644
--- a/test/tint/expressions/binary/div/scalar-vec3/f16.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/expressions/binary/div/scalar-vec3/f16.wgsl.expected.ir.fxc.hlsl
@@ -1,5 +1,6 @@
 SKIP: FAILED
 
+
 [numthreads(1, 1, 1)]
 void f() {
   float16_t a = float16_t(4.0h);
@@ -7,3 +8,7 @@
   vector<float16_t, 3> r = (a / b);
 }
 
+FXC validation failure:
+c:\src\dawn\Shader@0x000001B18E98F7D0(4,3-11): error X3000: unrecognized identifier 'float16_t'
+c:\src\dawn\Shader@0x000001B18E98F7D0(4,13): error X3000: unrecognized identifier 'a'
+
diff --git a/test/tint/expressions/binary/div/scalar-vec3/f32.wgsl.expected.ir.dxc.hlsl b/test/tint/expressions/binary/div/scalar-vec3/f32.wgsl.expected.ir.dxc.hlsl
index a972a5a..5554dd7 100644
--- a/test/tint/expressions/binary/div/scalar-vec3/f32.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/expressions/binary/div/scalar-vec3/f32.wgsl.expected.ir.dxc.hlsl
@@ -1,3 +1,4 @@
+
 [numthreads(1, 1, 1)]
 void f() {
   float a = 4.0f;
diff --git a/test/tint/expressions/binary/div/scalar-vec3/f32.wgsl.expected.ir.fxc.hlsl b/test/tint/expressions/binary/div/scalar-vec3/f32.wgsl.expected.ir.fxc.hlsl
index 0d47f31..5554dd7 100644
--- a/test/tint/expressions/binary/div/scalar-vec3/f32.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/expressions/binary/div/scalar-vec3/f32.wgsl.expected.ir.fxc.hlsl
@@ -1,4 +1,3 @@
-SKIP: FAILED
 
 [numthreads(1, 1, 1)]
 void f() {
diff --git a/test/tint/expressions/binary/div/scalar-vec3/i32.wgsl.expected.ir.dxc.hlsl b/test/tint/expressions/binary/div/scalar-vec3/i32.wgsl.expected.ir.dxc.hlsl
index 6e892d2..051fcea 100644
--- a/test/tint/expressions/binary/div/scalar-vec3/i32.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/expressions/binary/div/scalar-vec3/i32.wgsl.expected.ir.dxc.hlsl
@@ -1,7 +1,12 @@
+
+int3 tint_div_v3i32(int3 lhs, int3 rhs) {
+  return (lhs / ((((rhs == (0).xxx) | ((lhs == (-2147483648).xxx) & (rhs == (-1).xxx)))) ? ((1).xxx) : (rhs)));
+}
+
 [numthreads(1, 1, 1)]
 void f() {
   int a = 4;
   int3 b = int3(1, 2, 3);
-  int3 r = (a / b);
+  int3 r = tint_div_v3i32(int3((a).xxx), b);
 }
 
diff --git a/test/tint/expressions/binary/div/scalar-vec3/i32.wgsl.expected.ir.fxc.hlsl b/test/tint/expressions/binary/div/scalar-vec3/i32.wgsl.expected.ir.fxc.hlsl
index bf40aaa..051fcea 100644
--- a/test/tint/expressions/binary/div/scalar-vec3/i32.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/expressions/binary/div/scalar-vec3/i32.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,12 @@
-SKIP: FAILED
+
+int3 tint_div_v3i32(int3 lhs, int3 rhs) {
+  return (lhs / ((((rhs == (0).xxx) | ((lhs == (-2147483648).xxx) & (rhs == (-1).xxx)))) ? ((1).xxx) : (rhs)));
+}
 
 [numthreads(1, 1, 1)]
 void f() {
   int a = 4;
   int3 b = int3(1, 2, 3);
-  int3 r = (a / b);
+  int3 r = tint_div_v3i32(int3((a).xxx), b);
 }
 
diff --git a/test/tint/expressions/binary/div/scalar-vec3/u32.wgsl.expected.ir.dxc.hlsl b/test/tint/expressions/binary/div/scalar-vec3/u32.wgsl.expected.ir.dxc.hlsl
index fc1d335..1f0a3df 100644
--- a/test/tint/expressions/binary/div/scalar-vec3/u32.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/expressions/binary/div/scalar-vec3/u32.wgsl.expected.ir.dxc.hlsl
@@ -1,7 +1,12 @@
+
+uint3 tint_div_v3u32(uint3 lhs, uint3 rhs) {
+  return (lhs / (((rhs == (0u).xxx)) ? ((1u).xxx) : (rhs)));
+}
+
 [numthreads(1, 1, 1)]
 void f() {
   uint a = 4u;
   uint3 b = uint3(1u, 2u, 3u);
-  uint3 r = (a / b);
+  uint3 r = tint_div_v3u32(uint3((a).xxx), b);
 }
 
diff --git a/test/tint/expressions/binary/div/scalar-vec3/u32.wgsl.expected.ir.fxc.hlsl b/test/tint/expressions/binary/div/scalar-vec3/u32.wgsl.expected.ir.fxc.hlsl
index 0f8cd6f..1f0a3df 100644
--- a/test/tint/expressions/binary/div/scalar-vec3/u32.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/expressions/binary/div/scalar-vec3/u32.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,12 @@
-SKIP: FAILED
+
+uint3 tint_div_v3u32(uint3 lhs, uint3 rhs) {
+  return (lhs / (((rhs == (0u).xxx)) ? ((1u).xxx) : (rhs)));
+}
 
 [numthreads(1, 1, 1)]
 void f() {
   uint a = 4u;
   uint3 b = uint3(1u, 2u, 3u);
-  uint3 r = (a / b);
+  uint3 r = tint_div_v3u32(uint3((a).xxx), b);
 }
 
diff --git a/test/tint/expressions/binary/div/vec3-scalar/f16.wgsl.expected.ir.dxc.hlsl b/test/tint/expressions/binary/div/vec3-scalar/f16.wgsl.expected.ir.dxc.hlsl
index 5f99107..4d6af31 100644
--- a/test/tint/expressions/binary/div/vec3-scalar/f16.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/expressions/binary/div/vec3-scalar/f16.wgsl.expected.ir.dxc.hlsl
@@ -1,3 +1,4 @@
+
 [numthreads(1, 1, 1)]
 void f() {
   vector<float16_t, 3> a = vector<float16_t, 3>(float16_t(1.0h), float16_t(2.0h), float16_t(3.0h));
diff --git a/test/tint/expressions/binary/div/vec3-scalar/f16.wgsl.expected.ir.fxc.hlsl b/test/tint/expressions/binary/div/vec3-scalar/f16.wgsl.expected.ir.fxc.hlsl
index 255e148..ed981b4 100644
--- a/test/tint/expressions/binary/div/vec3-scalar/f16.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/expressions/binary/div/vec3-scalar/f16.wgsl.expected.ir.fxc.hlsl
@@ -1,5 +1,6 @@
 SKIP: FAILED
 
+
 [numthreads(1, 1, 1)]
 void f() {
   vector<float16_t, 3> a = vector<float16_t, 3>(float16_t(1.0h), float16_t(2.0h), float16_t(3.0h));
@@ -7,3 +8,8 @@
   vector<float16_t, 3> r = (a / b);
 }
 
+FXC validation failure:
+c:\src\dawn\Shader@0x000001E76A50F1E0(4,10-18): error X3000: syntax error: unexpected token 'float16_t'
+c:\src\dawn\Shader@0x000001E76A50F1E0(5,3-11): error X3000: unrecognized identifier 'float16_t'
+c:\src\dawn\Shader@0x000001E76A50F1E0(5,13): error X3000: unrecognized identifier 'b'
+
diff --git a/test/tint/expressions/binary/div/vec3-scalar/f32.wgsl.expected.ir.dxc.hlsl b/test/tint/expressions/binary/div/vec3-scalar/f32.wgsl.expected.ir.dxc.hlsl
index 5eb1702..4ff1fac 100644
--- a/test/tint/expressions/binary/div/vec3-scalar/f32.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/expressions/binary/div/vec3-scalar/f32.wgsl.expected.ir.dxc.hlsl
@@ -1,3 +1,4 @@
+
 [numthreads(1, 1, 1)]
 void f() {
   float3 a = float3(1.0f, 2.0f, 3.0f);
diff --git a/test/tint/expressions/binary/div/vec3-scalar/f32.wgsl.expected.ir.fxc.hlsl b/test/tint/expressions/binary/div/vec3-scalar/f32.wgsl.expected.ir.fxc.hlsl
index 964e2a2..4ff1fac 100644
--- a/test/tint/expressions/binary/div/vec3-scalar/f32.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/expressions/binary/div/vec3-scalar/f32.wgsl.expected.ir.fxc.hlsl
@@ -1,4 +1,3 @@
-SKIP: FAILED
 
 [numthreads(1, 1, 1)]
 void f() {
diff --git a/test/tint/expressions/binary/div/vec3-scalar/i32.wgsl.expected.ir.dxc.hlsl b/test/tint/expressions/binary/div/vec3-scalar/i32.wgsl.expected.ir.dxc.hlsl
index 722e467..d3d0a20 100644
--- a/test/tint/expressions/binary/div/vec3-scalar/i32.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/expressions/binary/div/vec3-scalar/i32.wgsl.expected.ir.dxc.hlsl
@@ -1,7 +1,12 @@
+
+int3 tint_div_v3i32(int3 lhs, int3 rhs) {
+  return (lhs / ((((rhs == (0).xxx) | ((lhs == (-2147483648).xxx) & (rhs == (-1).xxx)))) ? ((1).xxx) : (rhs)));
+}
+
 [numthreads(1, 1, 1)]
 void f() {
   int3 a = int3(1, 2, 3);
   int b = 4;
-  int3 r = (a / b);
+  int3 r = tint_div_v3i32(a, int3((b).xxx));
 }
 
diff --git a/test/tint/expressions/binary/div/vec3-scalar/i32.wgsl.expected.ir.fxc.hlsl b/test/tint/expressions/binary/div/vec3-scalar/i32.wgsl.expected.ir.fxc.hlsl
index ab8c405..d3d0a20 100644
--- a/test/tint/expressions/binary/div/vec3-scalar/i32.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/expressions/binary/div/vec3-scalar/i32.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,12 @@
-SKIP: FAILED
+
+int3 tint_div_v3i32(int3 lhs, int3 rhs) {
+  return (lhs / ((((rhs == (0).xxx) | ((lhs == (-2147483648).xxx) & (rhs == (-1).xxx)))) ? ((1).xxx) : (rhs)));
+}
 
 [numthreads(1, 1, 1)]
 void f() {
   int3 a = int3(1, 2, 3);
   int b = 4;
-  int3 r = (a / b);
+  int3 r = tint_div_v3i32(a, int3((b).xxx));
 }
 
diff --git a/test/tint/expressions/binary/div/vec3-scalar/u32.wgsl.expected.ir.dxc.hlsl b/test/tint/expressions/binary/div/vec3-scalar/u32.wgsl.expected.ir.dxc.hlsl
index e99d21d..ae07b13 100644
--- a/test/tint/expressions/binary/div/vec3-scalar/u32.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/expressions/binary/div/vec3-scalar/u32.wgsl.expected.ir.dxc.hlsl
@@ -1,7 +1,12 @@
+
+uint3 tint_div_v3u32(uint3 lhs, uint3 rhs) {
+  return (lhs / (((rhs == (0u).xxx)) ? ((1u).xxx) : (rhs)));
+}
+
 [numthreads(1, 1, 1)]
 void f() {
   uint3 a = uint3(1u, 2u, 3u);
   uint b = 4u;
-  uint3 r = (a / b);
+  uint3 r = tint_div_v3u32(a, uint3((b).xxx));
 }
 
diff --git a/test/tint/expressions/binary/div/vec3-scalar/u32.wgsl.expected.ir.fxc.hlsl b/test/tint/expressions/binary/div/vec3-scalar/u32.wgsl.expected.ir.fxc.hlsl
index f2ae525..ae07b13 100644
--- a/test/tint/expressions/binary/div/vec3-scalar/u32.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/expressions/binary/div/vec3-scalar/u32.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,12 @@
-SKIP: FAILED
+
+uint3 tint_div_v3u32(uint3 lhs, uint3 rhs) {
+  return (lhs / (((rhs == (0u).xxx)) ? ((1u).xxx) : (rhs)));
+}
 
 [numthreads(1, 1, 1)]
 void f() {
   uint3 a = uint3(1u, 2u, 3u);
   uint b = 4u;
-  uint3 r = (a / b);
+  uint3 r = tint_div_v3u32(a, uint3((b).xxx));
 }
 
diff --git a/test/tint/expressions/binary/div/vec3-vec3/f16.wgsl.expected.ir.dxc.hlsl b/test/tint/expressions/binary/div/vec3-vec3/f16.wgsl.expected.ir.dxc.hlsl
index e655519..c4ad203 100644
--- a/test/tint/expressions/binary/div/vec3-vec3/f16.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/expressions/binary/div/vec3-vec3/f16.wgsl.expected.ir.dxc.hlsl
@@ -1,3 +1,4 @@
+
 [numthreads(1, 1, 1)]
 void f() {
   vector<float16_t, 3> a = vector<float16_t, 3>(float16_t(1.0h), float16_t(2.0h), float16_t(3.0h));
diff --git a/test/tint/expressions/binary/div/vec3-vec3/f16.wgsl.expected.ir.fxc.hlsl b/test/tint/expressions/binary/div/vec3-vec3/f16.wgsl.expected.ir.fxc.hlsl
index 169b880..f920c4e 100644
--- a/test/tint/expressions/binary/div/vec3-vec3/f16.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/expressions/binary/div/vec3-vec3/f16.wgsl.expected.ir.fxc.hlsl
@@ -1,5 +1,6 @@
 SKIP: FAILED
 
+
 [numthreads(1, 1, 1)]
 void f() {
   vector<float16_t, 3> a = vector<float16_t, 3>(float16_t(1.0h), float16_t(2.0h), float16_t(3.0h));
@@ -7,3 +8,8 @@
   vector<float16_t, 3> r = (a / b);
 }
 
+FXC validation failure:
+c:\src\dawn\Shader@0x000001E2BB9705A0(4,10-18): error X3000: syntax error: unexpected token 'float16_t'
+c:\src\dawn\Shader@0x000001E2BB9705A0(5,10-18): error X3000: syntax error: unexpected token 'float16_t'
+c:\src\dawn\Shader@0x000001E2BB9705A0(6,10-18): error X3000: syntax error: unexpected token 'float16_t'
+
diff --git a/test/tint/expressions/binary/div/vec3-vec3/f32.wgsl.expected.ir.dxc.hlsl b/test/tint/expressions/binary/div/vec3-vec3/f32.wgsl.expected.ir.dxc.hlsl
index e03ab33d..b56de9e 100644
--- a/test/tint/expressions/binary/div/vec3-vec3/f32.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/expressions/binary/div/vec3-vec3/f32.wgsl.expected.ir.dxc.hlsl
@@ -1,3 +1,4 @@
+
 [numthreads(1, 1, 1)]
 void f() {
   float3 a = float3(1.0f, 2.0f, 3.0f);
diff --git a/test/tint/expressions/binary/div/vec3-vec3/f32.wgsl.expected.ir.fxc.hlsl b/test/tint/expressions/binary/div/vec3-vec3/f32.wgsl.expected.ir.fxc.hlsl
index 08fce24..b56de9e 100644
--- a/test/tint/expressions/binary/div/vec3-vec3/f32.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/expressions/binary/div/vec3-vec3/f32.wgsl.expected.ir.fxc.hlsl
@@ -1,4 +1,3 @@
-SKIP: FAILED
 
 [numthreads(1, 1, 1)]
 void f() {
diff --git a/test/tint/expressions/binary/div/vec3-vec3/i32.wgsl.expected.ir.dxc.hlsl b/test/tint/expressions/binary/div/vec3-vec3/i32.wgsl.expected.ir.dxc.hlsl
index e2a531c..d8d8423 100644
--- a/test/tint/expressions/binary/div/vec3-vec3/i32.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/expressions/binary/div/vec3-vec3/i32.wgsl.expected.ir.dxc.hlsl
@@ -1,7 +1,12 @@
+
+int3 tint_div_v3i32(int3 lhs, int3 rhs) {
+  return (lhs / ((((rhs == (0).xxx) | ((lhs == (-2147483648).xxx) & (rhs == (-1).xxx)))) ? ((1).xxx) : (rhs)));
+}
+
 [numthreads(1, 1, 1)]
 void f() {
   int3 a = int3(1, 2, 3);
   int3 b = int3(4, 5, 6);
-  int3 r = (a / b);
+  int3 r = tint_div_v3i32(a, b);
 }
 
diff --git a/test/tint/expressions/binary/div/vec3-vec3/i32.wgsl.expected.ir.fxc.hlsl b/test/tint/expressions/binary/div/vec3-vec3/i32.wgsl.expected.ir.fxc.hlsl
index be30f87..d8d8423 100644
--- a/test/tint/expressions/binary/div/vec3-vec3/i32.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/expressions/binary/div/vec3-vec3/i32.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,12 @@
-SKIP: FAILED
+
+int3 tint_div_v3i32(int3 lhs, int3 rhs) {
+  return (lhs / ((((rhs == (0).xxx) | ((lhs == (-2147483648).xxx) & (rhs == (-1).xxx)))) ? ((1).xxx) : (rhs)));
+}
 
 [numthreads(1, 1, 1)]
 void f() {
   int3 a = int3(1, 2, 3);
   int3 b = int3(4, 5, 6);
-  int3 r = (a / b);
+  int3 r = tint_div_v3i32(a, b);
 }
 
diff --git a/test/tint/expressions/binary/div/vec3-vec3/u32.wgsl.expected.ir.dxc.hlsl b/test/tint/expressions/binary/div/vec3-vec3/u32.wgsl.expected.ir.dxc.hlsl
index 7916a85..8386cc3 100644
--- a/test/tint/expressions/binary/div/vec3-vec3/u32.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/expressions/binary/div/vec3-vec3/u32.wgsl.expected.ir.dxc.hlsl
@@ -1,7 +1,12 @@
+
+uint3 tint_div_v3u32(uint3 lhs, uint3 rhs) {
+  return (lhs / (((rhs == (0u).xxx)) ? ((1u).xxx) : (rhs)));
+}
+
 [numthreads(1, 1, 1)]
 void f() {
   uint3 a = uint3(1u, 2u, 3u);
   uint3 b = uint3(4u, 5u, 6u);
-  uint3 r = (a / b);
+  uint3 r = tint_div_v3u32(a, b);
 }
 
diff --git a/test/tint/expressions/binary/div/vec3-vec3/u32.wgsl.expected.ir.fxc.hlsl b/test/tint/expressions/binary/div/vec3-vec3/u32.wgsl.expected.ir.fxc.hlsl
index c4ef0de..8386cc3 100644
--- a/test/tint/expressions/binary/div/vec3-vec3/u32.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/expressions/binary/div/vec3-vec3/u32.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,12 @@
-SKIP: FAILED
+
+uint3 tint_div_v3u32(uint3 lhs, uint3 rhs) {
+  return (lhs / (((rhs == (0u).xxx)) ? ((1u).xxx) : (rhs)));
+}
 
 [numthreads(1, 1, 1)]
 void f() {
   uint3 a = uint3(1u, 2u, 3u);
   uint3 b = uint3(4u, 5u, 6u);
-  uint3 r = (a / b);
+  uint3 r = tint_div_v3u32(a, b);
 }
 
diff --git a/test/tint/expressions/binary/div_by_zero/by_constant/scalar-scalar/f16.wgsl.expected.ir.dxc.hlsl b/test/tint/expressions/binary/div_by_zero/by_constant/scalar-scalar/f16.wgsl.expected.ir.dxc.hlsl
index 12ea83f..d97a4d2 100644
--- a/test/tint/expressions/binary/div_by_zero/by_constant/scalar-scalar/f16.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/expressions/binary/div_by_zero/by_constant/scalar-scalar/f16.wgsl.expected.ir.dxc.hlsl
@@ -1,3 +1,4 @@
+
 [numthreads(1, 1, 1)]
 void f() {
   float16_t a = float16_t(1.0h);
diff --git a/test/tint/expressions/binary/div_by_zero/by_constant/scalar-scalar/f16.wgsl.expected.ir.fxc.hlsl b/test/tint/expressions/binary/div_by_zero/by_constant/scalar-scalar/f16.wgsl.expected.ir.fxc.hlsl
index ff0a1e6..66ca0b7 100644
--- a/test/tint/expressions/binary/div_by_zero/by_constant/scalar-scalar/f16.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/expressions/binary/div_by_zero/by_constant/scalar-scalar/f16.wgsl.expected.ir.fxc.hlsl
@@ -1,5 +1,6 @@
 SKIP: FAILED
 
+
 [numthreads(1, 1, 1)]
 void f() {
   float16_t a = float16_t(1.0h);
@@ -7,3 +8,7 @@
   float16_t r = (a / b);
 }
 
+FXC validation failure:
+c:\src\dawn\Shader@0x0000019784ECF0F0(4,3-11): error X3000: unrecognized identifier 'float16_t'
+c:\src\dawn\Shader@0x0000019784ECF0F0(4,13): error X3000: unrecognized identifier 'a'
+
diff --git a/test/tint/expressions/binary/div_by_zero/by_constant/scalar-scalar/f32.wgsl.expected.ir.dxc.hlsl b/test/tint/expressions/binary/div_by_zero/by_constant/scalar-scalar/f32.wgsl.expected.ir.dxc.hlsl
index c471fa4..49629b7 100644
--- a/test/tint/expressions/binary/div_by_zero/by_constant/scalar-scalar/f32.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/expressions/binary/div_by_zero/by_constant/scalar-scalar/f32.wgsl.expected.ir.dxc.hlsl
@@ -1,3 +1,4 @@
+
 [numthreads(1, 1, 1)]
 void f() {
   float a = 1.0f;
diff --git a/test/tint/expressions/binary/div_by_zero/by_constant/scalar-scalar/f32.wgsl.expected.ir.fxc.hlsl b/test/tint/expressions/binary/div_by_zero/by_constant/scalar-scalar/f32.wgsl.expected.ir.fxc.hlsl
index 0faa507..49629b7 100644
--- a/test/tint/expressions/binary/div_by_zero/by_constant/scalar-scalar/f32.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/expressions/binary/div_by_zero/by_constant/scalar-scalar/f32.wgsl.expected.ir.fxc.hlsl
@@ -1,4 +1,3 @@
-SKIP: FAILED
 
 [numthreads(1, 1, 1)]
 void f() {
diff --git a/test/tint/expressions/binary/div_by_zero/by_constant/scalar-scalar/i32.wgsl.expected.ir.dxc.hlsl b/test/tint/expressions/binary/div_by_zero/by_constant/scalar-scalar/i32.wgsl.expected.ir.dxc.hlsl
index 15524ea..f140172 100644
--- a/test/tint/expressions/binary/div_by_zero/by_constant/scalar-scalar/i32.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/expressions/binary/div_by_zero/by_constant/scalar-scalar/i32.wgsl.expected.ir.dxc.hlsl
@@ -1,7 +1,12 @@
+
+int tint_div_i32(int lhs, int rhs) {
+  return (lhs / ((((rhs == 0) | ((lhs == -2147483648) & (rhs == -1)))) ? (1) : (rhs)));
+}
+
 [numthreads(1, 1, 1)]
 void f() {
   int a = 1;
   int b = 0;
-  int r = (a / b);
+  int r = tint_div_i32(a, b);
 }
 
diff --git a/test/tint/expressions/binary/div_by_zero/by_constant/scalar-scalar/i32.wgsl.expected.ir.fxc.hlsl b/test/tint/expressions/binary/div_by_zero/by_constant/scalar-scalar/i32.wgsl.expected.ir.fxc.hlsl
index 076a218..f140172 100644
--- a/test/tint/expressions/binary/div_by_zero/by_constant/scalar-scalar/i32.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/expressions/binary/div_by_zero/by_constant/scalar-scalar/i32.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,12 @@
-SKIP: FAILED
+
+int tint_div_i32(int lhs, int rhs) {
+  return (lhs / ((((rhs == 0) | ((lhs == -2147483648) & (rhs == -1)))) ? (1) : (rhs)));
+}
 
 [numthreads(1, 1, 1)]
 void f() {
   int a = 1;
   int b = 0;
-  int r = (a / b);
+  int r = tint_div_i32(a, b);
 }
 
diff --git a/test/tint/expressions/binary/div_by_zero/by_constant/scalar-scalar/u32.wgsl.expected.ir.dxc.hlsl b/test/tint/expressions/binary/div_by_zero/by_constant/scalar-scalar/u32.wgsl.expected.ir.dxc.hlsl
index 1e8d46c..e2c6b09 100644
--- a/test/tint/expressions/binary/div_by_zero/by_constant/scalar-scalar/u32.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/expressions/binary/div_by_zero/by_constant/scalar-scalar/u32.wgsl.expected.ir.dxc.hlsl
@@ -1,7 +1,12 @@
+
+uint tint_div_u32(uint lhs, uint rhs) {
+  return (lhs / (((rhs == 0u)) ? (1u) : (rhs)));
+}
+
 [numthreads(1, 1, 1)]
 void f() {
   uint a = 1u;
   uint b = 0u;
-  uint r = (a / b);
+  uint r = tint_div_u32(a, b);
 }
 
diff --git a/test/tint/expressions/binary/div_by_zero/by_constant/scalar-scalar/u32.wgsl.expected.ir.fxc.hlsl b/test/tint/expressions/binary/div_by_zero/by_constant/scalar-scalar/u32.wgsl.expected.ir.fxc.hlsl
index 7e5a37c..e2c6b09 100644
--- a/test/tint/expressions/binary/div_by_zero/by_constant/scalar-scalar/u32.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/expressions/binary/div_by_zero/by_constant/scalar-scalar/u32.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,12 @@
-SKIP: FAILED
+
+uint tint_div_u32(uint lhs, uint rhs) {
+  return (lhs / (((rhs == 0u)) ? (1u) : (rhs)));
+}
 
 [numthreads(1, 1, 1)]
 void f() {
   uint a = 1u;
   uint b = 0u;
-  uint r = (a / b);
+  uint r = tint_div_u32(a, b);
 }
 
diff --git a/test/tint/expressions/binary/div_by_zero/by_constant/scalar-vec3/f16.wgsl.expected.ir.dxc.hlsl b/test/tint/expressions/binary/div_by_zero/by_constant/scalar-vec3/f16.wgsl.expected.ir.dxc.hlsl
index 527cdbb..46d0303 100644
--- a/test/tint/expressions/binary/div_by_zero/by_constant/scalar-vec3/f16.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/expressions/binary/div_by_zero/by_constant/scalar-vec3/f16.wgsl.expected.ir.dxc.hlsl
@@ -1,3 +1,4 @@
+
 [numthreads(1, 1, 1)]
 void f() {
   float16_t a = float16_t(4.0h);
diff --git a/test/tint/expressions/binary/div_by_zero/by_constant/scalar-vec3/f16.wgsl.expected.ir.fxc.hlsl b/test/tint/expressions/binary/div_by_zero/by_constant/scalar-vec3/f16.wgsl.expected.ir.fxc.hlsl
index 25499c8..4f1b67d 100644
--- a/test/tint/expressions/binary/div_by_zero/by_constant/scalar-vec3/f16.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/expressions/binary/div_by_zero/by_constant/scalar-vec3/f16.wgsl.expected.ir.fxc.hlsl
@@ -1,5 +1,6 @@
 SKIP: FAILED
 
+
 [numthreads(1, 1, 1)]
 void f() {
   float16_t a = float16_t(4.0h);
@@ -7,3 +8,7 @@
   vector<float16_t, 3> r = (a / b);
 }
 
+FXC validation failure:
+c:\src\dawn\Shader@0x00000214C36FDC40(4,3-11): error X3000: unrecognized identifier 'float16_t'
+c:\src\dawn\Shader@0x00000214C36FDC40(4,13): error X3000: unrecognized identifier 'a'
+
diff --git a/test/tint/expressions/binary/div_by_zero/by_constant/scalar-vec3/f32.wgsl.expected.ir.dxc.hlsl b/test/tint/expressions/binary/div_by_zero/by_constant/scalar-vec3/f32.wgsl.expected.ir.dxc.hlsl
index 9bb818b..5b911c8 100644
--- a/test/tint/expressions/binary/div_by_zero/by_constant/scalar-vec3/f32.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/expressions/binary/div_by_zero/by_constant/scalar-vec3/f32.wgsl.expected.ir.dxc.hlsl
@@ -1,3 +1,4 @@
+
 [numthreads(1, 1, 1)]
 void f() {
   float a = 4.0f;
diff --git a/test/tint/expressions/binary/div_by_zero/by_constant/scalar-vec3/f32.wgsl.expected.ir.fxc.hlsl b/test/tint/expressions/binary/div_by_zero/by_constant/scalar-vec3/f32.wgsl.expected.ir.fxc.hlsl
index 10b359b..5b911c8 100644
--- a/test/tint/expressions/binary/div_by_zero/by_constant/scalar-vec3/f32.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/expressions/binary/div_by_zero/by_constant/scalar-vec3/f32.wgsl.expected.ir.fxc.hlsl
@@ -1,4 +1,3 @@
-SKIP: FAILED
 
 [numthreads(1, 1, 1)]
 void f() {
diff --git a/test/tint/expressions/binary/div_by_zero/by_constant/scalar-vec3/i32.wgsl.expected.ir.dxc.hlsl b/test/tint/expressions/binary/div_by_zero/by_constant/scalar-vec3/i32.wgsl.expected.ir.dxc.hlsl
index 539f117..c047b41 100644
--- a/test/tint/expressions/binary/div_by_zero/by_constant/scalar-vec3/i32.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/expressions/binary/div_by_zero/by_constant/scalar-vec3/i32.wgsl.expected.ir.dxc.hlsl
@@ -1,7 +1,12 @@
+
+int3 tint_div_v3i32(int3 lhs, int3 rhs) {
+  return (lhs / ((((rhs == (0).xxx) | ((lhs == (-2147483648).xxx) & (rhs == (-1).xxx)))) ? ((1).xxx) : (rhs)));
+}
+
 [numthreads(1, 1, 1)]
 void f() {
   int a = 4;
   int3 b = int3(0, 2, 0);
-  int3 r = (a / b);
+  int3 r = tint_div_v3i32(int3((a).xxx), b);
 }
 
diff --git a/test/tint/expressions/binary/div_by_zero/by_constant/scalar-vec3/i32.wgsl.expected.ir.fxc.hlsl b/test/tint/expressions/binary/div_by_zero/by_constant/scalar-vec3/i32.wgsl.expected.ir.fxc.hlsl
index 6ab4ecc..c047b41 100644
--- a/test/tint/expressions/binary/div_by_zero/by_constant/scalar-vec3/i32.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/expressions/binary/div_by_zero/by_constant/scalar-vec3/i32.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,12 @@
-SKIP: FAILED
+
+int3 tint_div_v3i32(int3 lhs, int3 rhs) {
+  return (lhs / ((((rhs == (0).xxx) | ((lhs == (-2147483648).xxx) & (rhs == (-1).xxx)))) ? ((1).xxx) : (rhs)));
+}
 
 [numthreads(1, 1, 1)]
 void f() {
   int a = 4;
   int3 b = int3(0, 2, 0);
-  int3 r = (a / b);
+  int3 r = tint_div_v3i32(int3((a).xxx), b);
 }
 
diff --git a/test/tint/expressions/binary/div_by_zero/by_constant/scalar-vec3/u32.wgsl.expected.ir.dxc.hlsl b/test/tint/expressions/binary/div_by_zero/by_constant/scalar-vec3/u32.wgsl.expected.ir.dxc.hlsl
index 6e69f97..bd07a1b 100644
--- a/test/tint/expressions/binary/div_by_zero/by_constant/scalar-vec3/u32.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/expressions/binary/div_by_zero/by_constant/scalar-vec3/u32.wgsl.expected.ir.dxc.hlsl
@@ -1,7 +1,12 @@
+
+uint3 tint_div_v3u32(uint3 lhs, uint3 rhs) {
+  return (lhs / (((rhs == (0u).xxx)) ? ((1u).xxx) : (rhs)));
+}
+
 [numthreads(1, 1, 1)]
 void f() {
   uint a = 4u;
   uint3 b = uint3(0u, 2u, 0u);
-  uint3 r = (a / b);
+  uint3 r = tint_div_v3u32(uint3((a).xxx), b);
 }
 
diff --git a/test/tint/expressions/binary/div_by_zero/by_constant/scalar-vec3/u32.wgsl.expected.ir.fxc.hlsl b/test/tint/expressions/binary/div_by_zero/by_constant/scalar-vec3/u32.wgsl.expected.ir.fxc.hlsl
index 639f5f4..bd07a1b 100644
--- a/test/tint/expressions/binary/div_by_zero/by_constant/scalar-vec3/u32.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/expressions/binary/div_by_zero/by_constant/scalar-vec3/u32.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,12 @@
-SKIP: FAILED
+
+uint3 tint_div_v3u32(uint3 lhs, uint3 rhs) {
+  return (lhs / (((rhs == (0u).xxx)) ? ((1u).xxx) : (rhs)));
+}
 
 [numthreads(1, 1, 1)]
 void f() {
   uint a = 4u;
   uint3 b = uint3(0u, 2u, 0u);
-  uint3 r = (a / b);
+  uint3 r = tint_div_v3u32(uint3((a).xxx), b);
 }
 
diff --git a/test/tint/expressions/binary/div_by_zero/by_constant/vec3-scalar/f16.wgsl.expected.ir.dxc.hlsl b/test/tint/expressions/binary/div_by_zero/by_constant/vec3-scalar/f16.wgsl.expected.ir.dxc.hlsl
index 5189c00..cfb0cf8 100644
--- a/test/tint/expressions/binary/div_by_zero/by_constant/vec3-scalar/f16.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/expressions/binary/div_by_zero/by_constant/vec3-scalar/f16.wgsl.expected.ir.dxc.hlsl
@@ -1,3 +1,4 @@
+
 [numthreads(1, 1, 1)]
 void f() {
   vector<float16_t, 3> a = vector<float16_t, 3>(float16_t(1.0h), float16_t(2.0h), float16_t(3.0h));
diff --git a/test/tint/expressions/binary/div_by_zero/by_constant/vec3-scalar/f16.wgsl.expected.ir.fxc.hlsl b/test/tint/expressions/binary/div_by_zero/by_constant/vec3-scalar/f16.wgsl.expected.ir.fxc.hlsl
index 3a55126..dff29e9 100644
--- a/test/tint/expressions/binary/div_by_zero/by_constant/vec3-scalar/f16.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/expressions/binary/div_by_zero/by_constant/vec3-scalar/f16.wgsl.expected.ir.fxc.hlsl
@@ -1,5 +1,6 @@
 SKIP: FAILED
 
+
 [numthreads(1, 1, 1)]
 void f() {
   vector<float16_t, 3> a = vector<float16_t, 3>(float16_t(1.0h), float16_t(2.0h), float16_t(3.0h));
@@ -7,3 +8,8 @@
   vector<float16_t, 3> r = (a / b);
 }
 
+FXC validation failure:
+c:\src\dawn\Shader@0x0000016A0AB6EBB0(4,10-18): error X3000: syntax error: unexpected token 'float16_t'
+c:\src\dawn\Shader@0x0000016A0AB6EBB0(5,3-11): error X3000: unrecognized identifier 'float16_t'
+c:\src\dawn\Shader@0x0000016A0AB6EBB0(5,13): error X3000: unrecognized identifier 'b'
+
diff --git a/test/tint/expressions/binary/div_by_zero/by_constant/vec3-scalar/f32.wgsl.expected.ir.dxc.hlsl b/test/tint/expressions/binary/div_by_zero/by_constant/vec3-scalar/f32.wgsl.expected.ir.dxc.hlsl
index 2e2985e2..b7b5c47 100644
--- a/test/tint/expressions/binary/div_by_zero/by_constant/vec3-scalar/f32.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/expressions/binary/div_by_zero/by_constant/vec3-scalar/f32.wgsl.expected.ir.dxc.hlsl
@@ -1,3 +1,4 @@
+
 [numthreads(1, 1, 1)]
 void f() {
   float3 a = float3(1.0f, 2.0f, 3.0f);
diff --git a/test/tint/expressions/binary/div_by_zero/by_constant/vec3-scalar/f32.wgsl.expected.ir.fxc.hlsl b/test/tint/expressions/binary/div_by_zero/by_constant/vec3-scalar/f32.wgsl.expected.ir.fxc.hlsl
index 72233ea..b7b5c47 100644
--- a/test/tint/expressions/binary/div_by_zero/by_constant/vec3-scalar/f32.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/expressions/binary/div_by_zero/by_constant/vec3-scalar/f32.wgsl.expected.ir.fxc.hlsl
@@ -1,4 +1,3 @@
-SKIP: FAILED
 
 [numthreads(1, 1, 1)]
 void f() {
diff --git a/test/tint/expressions/binary/div_by_zero/by_constant/vec3-scalar/i32.wgsl.expected.ir.dxc.hlsl b/test/tint/expressions/binary/div_by_zero/by_constant/vec3-scalar/i32.wgsl.expected.ir.dxc.hlsl
index 2052265..a24d710 100644
--- a/test/tint/expressions/binary/div_by_zero/by_constant/vec3-scalar/i32.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/expressions/binary/div_by_zero/by_constant/vec3-scalar/i32.wgsl.expected.ir.dxc.hlsl
@@ -1,7 +1,12 @@
+
+int3 tint_div_v3i32(int3 lhs, int3 rhs) {
+  return (lhs / ((((rhs == (0).xxx) | ((lhs == (-2147483648).xxx) & (rhs == (-1).xxx)))) ? ((1).xxx) : (rhs)));
+}
+
 [numthreads(1, 1, 1)]
 void f() {
   int3 a = int3(1, 2, 3);
   int b = 0;
-  int3 r = (a / b);
+  int3 r = tint_div_v3i32(a, int3((b).xxx));
 }
 
diff --git a/test/tint/expressions/binary/div_by_zero/by_constant/vec3-scalar/i32.wgsl.expected.ir.fxc.hlsl b/test/tint/expressions/binary/div_by_zero/by_constant/vec3-scalar/i32.wgsl.expected.ir.fxc.hlsl
index ea8b2c6..a24d710 100644
--- a/test/tint/expressions/binary/div_by_zero/by_constant/vec3-scalar/i32.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/expressions/binary/div_by_zero/by_constant/vec3-scalar/i32.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,12 @@
-SKIP: FAILED
+
+int3 tint_div_v3i32(int3 lhs, int3 rhs) {
+  return (lhs / ((((rhs == (0).xxx) | ((lhs == (-2147483648).xxx) & (rhs == (-1).xxx)))) ? ((1).xxx) : (rhs)));
+}
 
 [numthreads(1, 1, 1)]
 void f() {
   int3 a = int3(1, 2, 3);
   int b = 0;
-  int3 r = (a / b);
+  int3 r = tint_div_v3i32(a, int3((b).xxx));
 }
 
diff --git a/test/tint/expressions/binary/div_by_zero/by_constant/vec3-scalar/u32.wgsl.expected.ir.dxc.hlsl b/test/tint/expressions/binary/div_by_zero/by_constant/vec3-scalar/u32.wgsl.expected.ir.dxc.hlsl
index 88cd9ac..ddc364f 100644
--- a/test/tint/expressions/binary/div_by_zero/by_constant/vec3-scalar/u32.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/expressions/binary/div_by_zero/by_constant/vec3-scalar/u32.wgsl.expected.ir.dxc.hlsl
@@ -1,7 +1,12 @@
+
+uint3 tint_div_v3u32(uint3 lhs, uint3 rhs) {
+  return (lhs / (((rhs == (0u).xxx)) ? ((1u).xxx) : (rhs)));
+}
+
 [numthreads(1, 1, 1)]
 void f() {
   uint3 a = uint3(1u, 2u, 3u);
   uint b = 0u;
-  uint3 r = (a / b);
+  uint3 r = tint_div_v3u32(a, uint3((b).xxx));
 }
 
diff --git a/test/tint/expressions/binary/div_by_zero/by_constant/vec3-scalar/u32.wgsl.expected.ir.fxc.hlsl b/test/tint/expressions/binary/div_by_zero/by_constant/vec3-scalar/u32.wgsl.expected.ir.fxc.hlsl
index 64a7e52..ddc364f 100644
--- a/test/tint/expressions/binary/div_by_zero/by_constant/vec3-scalar/u32.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/expressions/binary/div_by_zero/by_constant/vec3-scalar/u32.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,12 @@
-SKIP: FAILED
+
+uint3 tint_div_v3u32(uint3 lhs, uint3 rhs) {
+  return (lhs / (((rhs == (0u).xxx)) ? ((1u).xxx) : (rhs)));
+}
 
 [numthreads(1, 1, 1)]
 void f() {
   uint3 a = uint3(1u, 2u, 3u);
   uint b = 0u;
-  uint3 r = (a / b);
+  uint3 r = tint_div_v3u32(a, uint3((b).xxx));
 }
 
diff --git a/test/tint/expressions/binary/div_by_zero/by_constant/vec3-vec3/f16.wgsl.expected.ir.dxc.hlsl b/test/tint/expressions/binary/div_by_zero/by_constant/vec3-vec3/f16.wgsl.expected.ir.dxc.hlsl
index 4a3f728..ac9427a 100644
--- a/test/tint/expressions/binary/div_by_zero/by_constant/vec3-vec3/f16.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/expressions/binary/div_by_zero/by_constant/vec3-vec3/f16.wgsl.expected.ir.dxc.hlsl
@@ -1,3 +1,4 @@
+
 [numthreads(1, 1, 1)]
 void f() {
   vector<float16_t, 3> a = vector<float16_t, 3>(float16_t(1.0h), float16_t(2.0h), float16_t(3.0h));
diff --git a/test/tint/expressions/binary/div_by_zero/by_constant/vec3-vec3/f16.wgsl.expected.ir.fxc.hlsl b/test/tint/expressions/binary/div_by_zero/by_constant/vec3-vec3/f16.wgsl.expected.ir.fxc.hlsl
index f2e1860..d33cc4a 100644
--- a/test/tint/expressions/binary/div_by_zero/by_constant/vec3-vec3/f16.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/expressions/binary/div_by_zero/by_constant/vec3-vec3/f16.wgsl.expected.ir.fxc.hlsl
@@ -1,5 +1,6 @@
 SKIP: FAILED
 
+
 [numthreads(1, 1, 1)]
 void f() {
   vector<float16_t, 3> a = vector<float16_t, 3>(float16_t(1.0h), float16_t(2.0h), float16_t(3.0h));
@@ -7,3 +8,8 @@
   vector<float16_t, 3> r = (a / b);
 }
 
+FXC validation failure:
+c:\src\dawn\Shader@0x000001C073880940(4,10-18): error X3000: syntax error: unexpected token 'float16_t'
+c:\src\dawn\Shader@0x000001C073880940(5,10-18): error X3000: syntax error: unexpected token 'float16_t'
+c:\src\dawn\Shader@0x000001C073880940(6,10-18): error X3000: syntax error: unexpected token 'float16_t'
+
diff --git a/test/tint/expressions/binary/div_by_zero/by_constant/vec3-vec3/f32.wgsl.expected.ir.dxc.hlsl b/test/tint/expressions/binary/div_by_zero/by_constant/vec3-vec3/f32.wgsl.expected.ir.dxc.hlsl
index 8f1b952..4becd9b 100644
--- a/test/tint/expressions/binary/div_by_zero/by_constant/vec3-vec3/f32.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/expressions/binary/div_by_zero/by_constant/vec3-vec3/f32.wgsl.expected.ir.dxc.hlsl
@@ -1,3 +1,4 @@
+
 [numthreads(1, 1, 1)]
 void f() {
   float3 a = float3(1.0f, 2.0f, 3.0f);
diff --git a/test/tint/expressions/binary/div_by_zero/by_constant/vec3-vec3/f32.wgsl.expected.ir.fxc.hlsl b/test/tint/expressions/binary/div_by_zero/by_constant/vec3-vec3/f32.wgsl.expected.ir.fxc.hlsl
index e4164ee..4becd9b 100644
--- a/test/tint/expressions/binary/div_by_zero/by_constant/vec3-vec3/f32.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/expressions/binary/div_by_zero/by_constant/vec3-vec3/f32.wgsl.expected.ir.fxc.hlsl
@@ -1,4 +1,3 @@
-SKIP: FAILED
 
 [numthreads(1, 1, 1)]
 void f() {
diff --git a/test/tint/expressions/binary/div_by_zero/by_constant/vec3-vec3/i32.wgsl.expected.ir.dxc.hlsl b/test/tint/expressions/binary/div_by_zero/by_constant/vec3-vec3/i32.wgsl.expected.ir.dxc.hlsl
index 1a07767..9a55716 100644
--- a/test/tint/expressions/binary/div_by_zero/by_constant/vec3-vec3/i32.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/expressions/binary/div_by_zero/by_constant/vec3-vec3/i32.wgsl.expected.ir.dxc.hlsl
@@ -1,7 +1,12 @@
+
+int3 tint_div_v3i32(int3 lhs, int3 rhs) {
+  return (lhs / ((((rhs == (0).xxx) | ((lhs == (-2147483648).xxx) & (rhs == (-1).xxx)))) ? ((1).xxx) : (rhs)));
+}
+
 [numthreads(1, 1, 1)]
 void f() {
   int3 a = int3(1, 2, 3);
   int3 b = int3(0, 5, 0);
-  int3 r = (a / b);
+  int3 r = tint_div_v3i32(a, b);
 }
 
diff --git a/test/tint/expressions/binary/div_by_zero/by_constant/vec3-vec3/i32.wgsl.expected.ir.fxc.hlsl b/test/tint/expressions/binary/div_by_zero/by_constant/vec3-vec3/i32.wgsl.expected.ir.fxc.hlsl
index 2e2123c..9a55716 100644
--- a/test/tint/expressions/binary/div_by_zero/by_constant/vec3-vec3/i32.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/expressions/binary/div_by_zero/by_constant/vec3-vec3/i32.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,12 @@
-SKIP: FAILED
+
+int3 tint_div_v3i32(int3 lhs, int3 rhs) {
+  return (lhs / ((((rhs == (0).xxx) | ((lhs == (-2147483648).xxx) & (rhs == (-1).xxx)))) ? ((1).xxx) : (rhs)));
+}
 
 [numthreads(1, 1, 1)]
 void f() {
   int3 a = int3(1, 2, 3);
   int3 b = int3(0, 5, 0);
-  int3 r = (a / b);
+  int3 r = tint_div_v3i32(a, b);
 }
 
diff --git a/test/tint/expressions/binary/div_by_zero/by_constant/vec3-vec3/u32.wgsl.expected.ir.dxc.hlsl b/test/tint/expressions/binary/div_by_zero/by_constant/vec3-vec3/u32.wgsl.expected.ir.dxc.hlsl
index 0494c20..d5db2dc 100644
--- a/test/tint/expressions/binary/div_by_zero/by_constant/vec3-vec3/u32.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/expressions/binary/div_by_zero/by_constant/vec3-vec3/u32.wgsl.expected.ir.dxc.hlsl
@@ -1,7 +1,12 @@
+
+uint3 tint_div_v3u32(uint3 lhs, uint3 rhs) {
+  return (lhs / (((rhs == (0u).xxx)) ? ((1u).xxx) : (rhs)));
+}
+
 [numthreads(1, 1, 1)]
 void f() {
   uint3 a = uint3(1u, 2u, 3u);
   uint3 b = uint3(0u, 5u, 0u);
-  uint3 r = (a / b);
+  uint3 r = tint_div_v3u32(a, b);
 }
 
diff --git a/test/tint/expressions/binary/div_by_zero/by_constant/vec3-vec3/u32.wgsl.expected.ir.fxc.hlsl b/test/tint/expressions/binary/div_by_zero/by_constant/vec3-vec3/u32.wgsl.expected.ir.fxc.hlsl
index d170421..d5db2dc 100644
--- a/test/tint/expressions/binary/div_by_zero/by_constant/vec3-vec3/u32.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/expressions/binary/div_by_zero/by_constant/vec3-vec3/u32.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,12 @@
-SKIP: FAILED
+
+uint3 tint_div_v3u32(uint3 lhs, uint3 rhs) {
+  return (lhs / (((rhs == (0u).xxx)) ? ((1u).xxx) : (rhs)));
+}
 
 [numthreads(1, 1, 1)]
 void f() {
   uint3 a = uint3(1u, 2u, 3u);
   uint3 b = uint3(0u, 5u, 0u);
-  uint3 r = (a / b);
+  uint3 r = tint_div_v3u32(a, b);
 }
 
diff --git a/test/tint/expressions/binary/div_by_zero/by_expression/scalar-scalar/f16.wgsl.expected.ir.dxc.hlsl b/test/tint/expressions/binary/div_by_zero/by_expression/scalar-scalar/f16.wgsl.expected.ir.dxc.hlsl
index a211dd6..5c8b100 100644
--- a/test/tint/expressions/binary/div_by_zero/by_expression/scalar-scalar/f16.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/expressions/binary/div_by_zero/by_expression/scalar-scalar/f16.wgsl.expected.ir.dxc.hlsl
@@ -1,3 +1,4 @@
+
 [numthreads(1, 1, 1)]
 void f() {
   float16_t a = float16_t(1.0h);
diff --git a/test/tint/expressions/binary/div_by_zero/by_expression/scalar-scalar/f16.wgsl.expected.ir.fxc.hlsl b/test/tint/expressions/binary/div_by_zero/by_expression/scalar-scalar/f16.wgsl.expected.ir.fxc.hlsl
index 46d7318..e769720 100644
--- a/test/tint/expressions/binary/div_by_zero/by_expression/scalar-scalar/f16.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/expressions/binary/div_by_zero/by_expression/scalar-scalar/f16.wgsl.expected.ir.fxc.hlsl
@@ -1,5 +1,6 @@
 SKIP: FAILED
 
+
 [numthreads(1, 1, 1)]
 void f() {
   float16_t a = float16_t(1.0h);
@@ -7,3 +8,7 @@
   float16_t r = (a / (b + b));
 }
 
+FXC validation failure:
+c:\src\dawn\Shader@0x0000023DC062DA40(4,3-11): error X3000: unrecognized identifier 'float16_t'
+c:\src\dawn\Shader@0x0000023DC062DA40(4,13): error X3000: unrecognized identifier 'a'
+
diff --git a/test/tint/expressions/binary/div_by_zero/by_expression/scalar-scalar/f32.wgsl.expected.ir.dxc.hlsl b/test/tint/expressions/binary/div_by_zero/by_expression/scalar-scalar/f32.wgsl.expected.ir.dxc.hlsl
index 5ac45bd..6e6c819 100644
--- a/test/tint/expressions/binary/div_by_zero/by_expression/scalar-scalar/f32.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/expressions/binary/div_by_zero/by_expression/scalar-scalar/f32.wgsl.expected.ir.dxc.hlsl
@@ -1,3 +1,4 @@
+
 [numthreads(1, 1, 1)]
 void f() {
   float a = 1.0f;
diff --git a/test/tint/expressions/binary/div_by_zero/by_expression/scalar-scalar/f32.wgsl.expected.ir.fxc.hlsl b/test/tint/expressions/binary/div_by_zero/by_expression/scalar-scalar/f32.wgsl.expected.ir.fxc.hlsl
index 2dcc939..6e6c819 100644
--- a/test/tint/expressions/binary/div_by_zero/by_expression/scalar-scalar/f32.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/expressions/binary/div_by_zero/by_expression/scalar-scalar/f32.wgsl.expected.ir.fxc.hlsl
@@ -1,4 +1,3 @@
-SKIP: FAILED
 
 [numthreads(1, 1, 1)]
 void f() {
diff --git a/test/tint/expressions/binary/div_by_zero/by_expression/scalar-scalar/i32.wgsl.expected.ir.dxc.hlsl b/test/tint/expressions/binary/div_by_zero/by_expression/scalar-scalar/i32.wgsl.expected.ir.dxc.hlsl
index dcda5e6..2920686 100644
--- a/test/tint/expressions/binary/div_by_zero/by_expression/scalar-scalar/i32.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/expressions/binary/div_by_zero/by_expression/scalar-scalar/i32.wgsl.expected.ir.dxc.hlsl
@@ -1,7 +1,12 @@
+
+int tint_div_i32(int lhs, int rhs) {
+  return (lhs / ((((rhs == 0) | ((lhs == -2147483648) & (rhs == -1)))) ? (1) : (rhs)));
+}
+
 [numthreads(1, 1, 1)]
 void f() {
   int a = 1;
   int b = 0;
-  int r = (a / (b + b));
+  int r = tint_div_i32(a, (b + b));
 }
 
diff --git a/test/tint/expressions/binary/div_by_zero/by_expression/scalar-scalar/i32.wgsl.expected.ir.fxc.hlsl b/test/tint/expressions/binary/div_by_zero/by_expression/scalar-scalar/i32.wgsl.expected.ir.fxc.hlsl
index a6d07c5..2920686 100644
--- a/test/tint/expressions/binary/div_by_zero/by_expression/scalar-scalar/i32.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/expressions/binary/div_by_zero/by_expression/scalar-scalar/i32.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,12 @@
-SKIP: FAILED
+
+int tint_div_i32(int lhs, int rhs) {
+  return (lhs / ((((rhs == 0) | ((lhs == -2147483648) & (rhs == -1)))) ? (1) : (rhs)));
+}
 
 [numthreads(1, 1, 1)]
 void f() {
   int a = 1;
   int b = 0;
-  int r = (a / (b + b));
+  int r = tint_div_i32(a, (b + b));
 }
 
diff --git a/test/tint/expressions/binary/div_by_zero/by_expression/scalar-scalar/u32.wgsl.expected.ir.dxc.hlsl b/test/tint/expressions/binary/div_by_zero/by_expression/scalar-scalar/u32.wgsl.expected.ir.dxc.hlsl
index ecf88a3..17b03b3 100644
--- a/test/tint/expressions/binary/div_by_zero/by_expression/scalar-scalar/u32.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/expressions/binary/div_by_zero/by_expression/scalar-scalar/u32.wgsl.expected.ir.dxc.hlsl
@@ -1,7 +1,12 @@
+
+uint tint_div_u32(uint lhs, uint rhs) {
+  return (lhs / (((rhs == 0u)) ? (1u) : (rhs)));
+}
+
 [numthreads(1, 1, 1)]
 void f() {
   uint a = 1u;
   uint b = 0u;
-  uint r = (a / (b + b));
+  uint r = tint_div_u32(a, (b + b));
 }
 
diff --git a/test/tint/expressions/binary/div_by_zero/by_expression/scalar-scalar/u32.wgsl.expected.ir.fxc.hlsl b/test/tint/expressions/binary/div_by_zero/by_expression/scalar-scalar/u32.wgsl.expected.ir.fxc.hlsl
index 125be78..17b03b3 100644
--- a/test/tint/expressions/binary/div_by_zero/by_expression/scalar-scalar/u32.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/expressions/binary/div_by_zero/by_expression/scalar-scalar/u32.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,12 @@
-SKIP: FAILED
+
+uint tint_div_u32(uint lhs, uint rhs) {
+  return (lhs / (((rhs == 0u)) ? (1u) : (rhs)));
+}
 
 [numthreads(1, 1, 1)]
 void f() {
   uint a = 1u;
   uint b = 0u;
-  uint r = (a / (b + b));
+  uint r = tint_div_u32(a, (b + b));
 }
 
diff --git a/test/tint/expressions/binary/div_by_zero/by_expression/scalar-vec3/f16.wgsl.expected.ir.dxc.hlsl b/test/tint/expressions/binary/div_by_zero/by_expression/scalar-vec3/f16.wgsl.expected.ir.dxc.hlsl
index 1ff40ed..e9d3ad5 100644
--- a/test/tint/expressions/binary/div_by_zero/by_expression/scalar-vec3/f16.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/expressions/binary/div_by_zero/by_expression/scalar-vec3/f16.wgsl.expected.ir.dxc.hlsl
@@ -1,3 +1,4 @@
+
 [numthreads(1, 1, 1)]
 void f() {
   float16_t a = float16_t(4.0h);
diff --git a/test/tint/expressions/binary/div_by_zero/by_expression/scalar-vec3/f16.wgsl.expected.ir.fxc.hlsl b/test/tint/expressions/binary/div_by_zero/by_expression/scalar-vec3/f16.wgsl.expected.ir.fxc.hlsl
index b2122d5..6c9ce07 100644
--- a/test/tint/expressions/binary/div_by_zero/by_expression/scalar-vec3/f16.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/expressions/binary/div_by_zero/by_expression/scalar-vec3/f16.wgsl.expected.ir.fxc.hlsl
@@ -1,5 +1,6 @@
 SKIP: FAILED
 
+
 [numthreads(1, 1, 1)]
 void f() {
   float16_t a = float16_t(4.0h);
@@ -7,3 +8,7 @@
   vector<float16_t, 3> r = (a / (b + b));
 }
 
+FXC validation failure:
+c:\src\dawn\Shader@0x000001B5386C6A80(4,3-11): error X3000: unrecognized identifier 'float16_t'
+c:\src\dawn\Shader@0x000001B5386C6A80(4,13): error X3000: unrecognized identifier 'a'
+
diff --git a/test/tint/expressions/binary/div_by_zero/by_expression/scalar-vec3/f32.wgsl.expected.ir.dxc.hlsl b/test/tint/expressions/binary/div_by_zero/by_expression/scalar-vec3/f32.wgsl.expected.ir.dxc.hlsl
index c0e410f..7493100 100644
--- a/test/tint/expressions/binary/div_by_zero/by_expression/scalar-vec3/f32.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/expressions/binary/div_by_zero/by_expression/scalar-vec3/f32.wgsl.expected.ir.dxc.hlsl
@@ -1,3 +1,4 @@
+
 [numthreads(1, 1, 1)]
 void f() {
   float a = 4.0f;
diff --git a/test/tint/expressions/binary/div_by_zero/by_expression/scalar-vec3/f32.wgsl.expected.ir.fxc.hlsl b/test/tint/expressions/binary/div_by_zero/by_expression/scalar-vec3/f32.wgsl.expected.ir.fxc.hlsl
index 4557a5d..7493100 100644
--- a/test/tint/expressions/binary/div_by_zero/by_expression/scalar-vec3/f32.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/expressions/binary/div_by_zero/by_expression/scalar-vec3/f32.wgsl.expected.ir.fxc.hlsl
@@ -1,4 +1,3 @@
-SKIP: FAILED
 
 [numthreads(1, 1, 1)]
 void f() {
diff --git a/test/tint/expressions/binary/div_by_zero/by_expression/scalar-vec3/i32.wgsl.expected.ir.dxc.hlsl b/test/tint/expressions/binary/div_by_zero/by_expression/scalar-vec3/i32.wgsl.expected.ir.dxc.hlsl
index a39a5f2..fa2bd19 100644
--- a/test/tint/expressions/binary/div_by_zero/by_expression/scalar-vec3/i32.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/expressions/binary/div_by_zero/by_expression/scalar-vec3/i32.wgsl.expected.ir.dxc.hlsl
@@ -1,7 +1,13 @@
+
+int3 tint_div_v3i32(int3 lhs, int3 rhs) {
+  return (lhs / ((((rhs == (0).xxx) | ((lhs == (-2147483648).xxx) & (rhs == (-1).xxx)))) ? ((1).xxx) : (rhs)));
+}
+
 [numthreads(1, 1, 1)]
 void f() {
   int a = 4;
   int3 b = int3(0, 2, 0);
-  int3 r = (a / (b + b));
+  int3 v = (b + b);
+  int3 r = tint_div_v3i32(int3((a).xxx), v);
 }
 
diff --git a/test/tint/expressions/binary/div_by_zero/by_expression/scalar-vec3/i32.wgsl.expected.ir.fxc.hlsl b/test/tint/expressions/binary/div_by_zero/by_expression/scalar-vec3/i32.wgsl.expected.ir.fxc.hlsl
index 9da5fda..fa2bd19 100644
--- a/test/tint/expressions/binary/div_by_zero/by_expression/scalar-vec3/i32.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/expressions/binary/div_by_zero/by_expression/scalar-vec3/i32.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,13 @@
-SKIP: FAILED
+
+int3 tint_div_v3i32(int3 lhs, int3 rhs) {
+  return (lhs / ((((rhs == (0).xxx) | ((lhs == (-2147483648).xxx) & (rhs == (-1).xxx)))) ? ((1).xxx) : (rhs)));
+}
 
 [numthreads(1, 1, 1)]
 void f() {
   int a = 4;
   int3 b = int3(0, 2, 0);
-  int3 r = (a / (b + b));
+  int3 v = (b + b);
+  int3 r = tint_div_v3i32(int3((a).xxx), v);
 }
 
diff --git a/test/tint/expressions/binary/div_by_zero/by_expression/scalar-vec3/u32.wgsl.expected.ir.dxc.hlsl b/test/tint/expressions/binary/div_by_zero/by_expression/scalar-vec3/u32.wgsl.expected.ir.dxc.hlsl
index 9a4dab7..ef908d4 100644
--- a/test/tint/expressions/binary/div_by_zero/by_expression/scalar-vec3/u32.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/expressions/binary/div_by_zero/by_expression/scalar-vec3/u32.wgsl.expected.ir.dxc.hlsl
@@ -1,7 +1,13 @@
+
+uint3 tint_div_v3u32(uint3 lhs, uint3 rhs) {
+  return (lhs / (((rhs == (0u).xxx)) ? ((1u).xxx) : (rhs)));
+}
+
 [numthreads(1, 1, 1)]
 void f() {
   uint a = 4u;
   uint3 b = uint3(0u, 2u, 0u);
-  uint3 r = (a / (b + b));
+  uint3 v = (b + b);
+  uint3 r = tint_div_v3u32(uint3((a).xxx), v);
 }
 
diff --git a/test/tint/expressions/binary/div_by_zero/by_expression/scalar-vec3/u32.wgsl.expected.ir.fxc.hlsl b/test/tint/expressions/binary/div_by_zero/by_expression/scalar-vec3/u32.wgsl.expected.ir.fxc.hlsl
index 48cb470..ef908d4 100644
--- a/test/tint/expressions/binary/div_by_zero/by_expression/scalar-vec3/u32.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/expressions/binary/div_by_zero/by_expression/scalar-vec3/u32.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,13 @@
-SKIP: FAILED
+
+uint3 tint_div_v3u32(uint3 lhs, uint3 rhs) {
+  return (lhs / (((rhs == (0u).xxx)) ? ((1u).xxx) : (rhs)));
+}
 
 [numthreads(1, 1, 1)]
 void f() {
   uint a = 4u;
   uint3 b = uint3(0u, 2u, 0u);
-  uint3 r = (a / (b + b));
+  uint3 v = (b + b);
+  uint3 r = tint_div_v3u32(uint3((a).xxx), v);
 }
 
diff --git a/test/tint/expressions/binary/div_by_zero/by_expression/vec3-scalar/f16.wgsl.expected.ir.dxc.hlsl b/test/tint/expressions/binary/div_by_zero/by_expression/vec3-scalar/f16.wgsl.expected.ir.dxc.hlsl
index d4ad24e..dfc3f50 100644
--- a/test/tint/expressions/binary/div_by_zero/by_expression/vec3-scalar/f16.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/expressions/binary/div_by_zero/by_expression/vec3-scalar/f16.wgsl.expected.ir.dxc.hlsl
@@ -1,3 +1,4 @@
+
 [numthreads(1, 1, 1)]
 void f() {
   vector<float16_t, 3> a = vector<float16_t, 3>(float16_t(1.0h), float16_t(2.0h), float16_t(3.0h));
diff --git a/test/tint/expressions/binary/div_by_zero/by_expression/vec3-scalar/f16.wgsl.expected.ir.fxc.hlsl b/test/tint/expressions/binary/div_by_zero/by_expression/vec3-scalar/f16.wgsl.expected.ir.fxc.hlsl
index 8eb8ccb..d9f1d7f 100644
--- a/test/tint/expressions/binary/div_by_zero/by_expression/vec3-scalar/f16.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/expressions/binary/div_by_zero/by_expression/vec3-scalar/f16.wgsl.expected.ir.fxc.hlsl
@@ -1,5 +1,6 @@
 SKIP: FAILED
 
+
 [numthreads(1, 1, 1)]
 void f() {
   vector<float16_t, 3> a = vector<float16_t, 3>(float16_t(1.0h), float16_t(2.0h), float16_t(3.0h));
@@ -7,3 +8,8 @@
   vector<float16_t, 3> r = (a / (b + b));
 }
 
+FXC validation failure:
+c:\src\dawn\Shader@0x000001E20272F490(4,10-18): error X3000: syntax error: unexpected token 'float16_t'
+c:\src\dawn\Shader@0x000001E20272F490(5,3-11): error X3000: unrecognized identifier 'float16_t'
+c:\src\dawn\Shader@0x000001E20272F490(5,13): error X3000: unrecognized identifier 'b'
+
diff --git a/test/tint/expressions/binary/div_by_zero/by_expression/vec3-scalar/f32.wgsl.expected.ir.dxc.hlsl b/test/tint/expressions/binary/div_by_zero/by_expression/vec3-scalar/f32.wgsl.expected.ir.dxc.hlsl
index 3fa2543..2ab0243 100644
--- a/test/tint/expressions/binary/div_by_zero/by_expression/vec3-scalar/f32.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/expressions/binary/div_by_zero/by_expression/vec3-scalar/f32.wgsl.expected.ir.dxc.hlsl
@@ -1,3 +1,4 @@
+
 [numthreads(1, 1, 1)]
 void f() {
   float3 a = float3(1.0f, 2.0f, 3.0f);
diff --git a/test/tint/expressions/binary/div_by_zero/by_expression/vec3-scalar/f32.wgsl.expected.ir.fxc.hlsl b/test/tint/expressions/binary/div_by_zero/by_expression/vec3-scalar/f32.wgsl.expected.ir.fxc.hlsl
index ec02ba7..2ab0243 100644
--- a/test/tint/expressions/binary/div_by_zero/by_expression/vec3-scalar/f32.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/expressions/binary/div_by_zero/by_expression/vec3-scalar/f32.wgsl.expected.ir.fxc.hlsl
@@ -1,4 +1,3 @@
-SKIP: FAILED
 
 [numthreads(1, 1, 1)]
 void f() {
diff --git a/test/tint/expressions/binary/div_by_zero/by_expression/vec3-scalar/i32.wgsl.expected.ir.dxc.hlsl b/test/tint/expressions/binary/div_by_zero/by_expression/vec3-scalar/i32.wgsl.expected.ir.dxc.hlsl
index b983a01..b376984 100644
--- a/test/tint/expressions/binary/div_by_zero/by_expression/vec3-scalar/i32.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/expressions/binary/div_by_zero/by_expression/vec3-scalar/i32.wgsl.expected.ir.dxc.hlsl
@@ -1,7 +1,13 @@
+
+int3 tint_div_v3i32(int3 lhs, int3 rhs) {
+  return (lhs / ((((rhs == (0).xxx) | ((lhs == (-2147483648).xxx) & (rhs == (-1).xxx)))) ? ((1).xxx) : (rhs)));
+}
+
 [numthreads(1, 1, 1)]
 void f() {
   int3 a = int3(1, 2, 3);
   int b = 0;
-  int3 r = (a / (b + b));
+  int3 v = a;
+  int3 r = tint_div_v3i32(v, int3(((b + b)).xxx));
 }
 
diff --git a/test/tint/expressions/binary/div_by_zero/by_expression/vec3-scalar/i32.wgsl.expected.ir.fxc.hlsl b/test/tint/expressions/binary/div_by_zero/by_expression/vec3-scalar/i32.wgsl.expected.ir.fxc.hlsl
index 70c1794..b376984 100644
--- a/test/tint/expressions/binary/div_by_zero/by_expression/vec3-scalar/i32.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/expressions/binary/div_by_zero/by_expression/vec3-scalar/i32.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,13 @@
-SKIP: FAILED
+
+int3 tint_div_v3i32(int3 lhs, int3 rhs) {
+  return (lhs / ((((rhs == (0).xxx) | ((lhs == (-2147483648).xxx) & (rhs == (-1).xxx)))) ? ((1).xxx) : (rhs)));
+}
 
 [numthreads(1, 1, 1)]
 void f() {
   int3 a = int3(1, 2, 3);
   int b = 0;
-  int3 r = (a / (b + b));
+  int3 v = a;
+  int3 r = tint_div_v3i32(v, int3(((b + b)).xxx));
 }
 
diff --git a/test/tint/expressions/binary/div_by_zero/by_expression/vec3-scalar/u32.wgsl.expected.ir.dxc.hlsl b/test/tint/expressions/binary/div_by_zero/by_expression/vec3-scalar/u32.wgsl.expected.ir.dxc.hlsl
index c1a35a8..16d66bc 100644
--- a/test/tint/expressions/binary/div_by_zero/by_expression/vec3-scalar/u32.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/expressions/binary/div_by_zero/by_expression/vec3-scalar/u32.wgsl.expected.ir.dxc.hlsl
@@ -1,7 +1,13 @@
+
+uint3 tint_div_v3u32(uint3 lhs, uint3 rhs) {
+  return (lhs / (((rhs == (0u).xxx)) ? ((1u).xxx) : (rhs)));
+}
+
 [numthreads(1, 1, 1)]
 void f() {
   uint3 a = uint3(1u, 2u, 3u);
   uint b = 0u;
-  uint3 r = (a / (b + b));
+  uint3 v = a;
+  uint3 r = tint_div_v3u32(v, uint3(((b + b)).xxx));
 }
 
diff --git a/test/tint/expressions/binary/div_by_zero/by_expression/vec3-scalar/u32.wgsl.expected.ir.fxc.hlsl b/test/tint/expressions/binary/div_by_zero/by_expression/vec3-scalar/u32.wgsl.expected.ir.fxc.hlsl
index 5a6a8fa..16d66bc 100644
--- a/test/tint/expressions/binary/div_by_zero/by_expression/vec3-scalar/u32.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/expressions/binary/div_by_zero/by_expression/vec3-scalar/u32.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,13 @@
-SKIP: FAILED
+
+uint3 tint_div_v3u32(uint3 lhs, uint3 rhs) {
+  return (lhs / (((rhs == (0u).xxx)) ? ((1u).xxx) : (rhs)));
+}
 
 [numthreads(1, 1, 1)]
 void f() {
   uint3 a = uint3(1u, 2u, 3u);
   uint b = 0u;
-  uint3 r = (a / (b + b));
+  uint3 v = a;
+  uint3 r = tint_div_v3u32(v, uint3(((b + b)).xxx));
 }
 
diff --git a/test/tint/expressions/binary/div_by_zero/by_expression/vec3-vec3/f16.wgsl.expected.ir.dxc.hlsl b/test/tint/expressions/binary/div_by_zero/by_expression/vec3-vec3/f16.wgsl.expected.ir.dxc.hlsl
index 637388a..059e398 100644
--- a/test/tint/expressions/binary/div_by_zero/by_expression/vec3-vec3/f16.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/expressions/binary/div_by_zero/by_expression/vec3-vec3/f16.wgsl.expected.ir.dxc.hlsl
@@ -1,3 +1,4 @@
+
 [numthreads(1, 1, 1)]
 void f() {
   vector<float16_t, 3> a = vector<float16_t, 3>(float16_t(1.0h), float16_t(2.0h), float16_t(3.0h));
diff --git a/test/tint/expressions/binary/div_by_zero/by_expression/vec3-vec3/f16.wgsl.expected.ir.fxc.hlsl b/test/tint/expressions/binary/div_by_zero/by_expression/vec3-vec3/f16.wgsl.expected.ir.fxc.hlsl
index 0a145d4..b281091 100644
--- a/test/tint/expressions/binary/div_by_zero/by_expression/vec3-vec3/f16.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/expressions/binary/div_by_zero/by_expression/vec3-vec3/f16.wgsl.expected.ir.fxc.hlsl
@@ -1,5 +1,6 @@
 SKIP: FAILED
 
+
 [numthreads(1, 1, 1)]
 void f() {
   vector<float16_t, 3> a = vector<float16_t, 3>(float16_t(1.0h), float16_t(2.0h), float16_t(3.0h));
@@ -7,3 +8,8 @@
   vector<float16_t, 3> r = (a / (b + b));
 }
 
+FXC validation failure:
+c:\src\dawn\Shader@0x0000024B6FE703F0(4,10-18): error X3000: syntax error: unexpected token 'float16_t'
+c:\src\dawn\Shader@0x0000024B6FE703F0(5,10-18): error X3000: syntax error: unexpected token 'float16_t'
+c:\src\dawn\Shader@0x0000024B6FE703F0(6,10-18): error X3000: syntax error: unexpected token 'float16_t'
+
diff --git a/test/tint/expressions/binary/div_by_zero/by_expression/vec3-vec3/f32.wgsl.expected.ir.dxc.hlsl b/test/tint/expressions/binary/div_by_zero/by_expression/vec3-vec3/f32.wgsl.expected.ir.dxc.hlsl
index b9326e5..b82a33f 100644
--- a/test/tint/expressions/binary/div_by_zero/by_expression/vec3-vec3/f32.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/expressions/binary/div_by_zero/by_expression/vec3-vec3/f32.wgsl.expected.ir.dxc.hlsl
@@ -1,3 +1,4 @@
+
 [numthreads(1, 1, 1)]
 void f() {
   float3 a = float3(1.0f, 2.0f, 3.0f);
diff --git a/test/tint/expressions/binary/div_by_zero/by_expression/vec3-vec3/f32.wgsl.expected.ir.fxc.hlsl b/test/tint/expressions/binary/div_by_zero/by_expression/vec3-vec3/f32.wgsl.expected.ir.fxc.hlsl
index 40cffc3..b82a33f 100644
--- a/test/tint/expressions/binary/div_by_zero/by_expression/vec3-vec3/f32.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/expressions/binary/div_by_zero/by_expression/vec3-vec3/f32.wgsl.expected.ir.fxc.hlsl
@@ -1,4 +1,3 @@
-SKIP: FAILED
 
 [numthreads(1, 1, 1)]
 void f() {
diff --git a/test/tint/expressions/binary/div_by_zero/by_expression/vec3-vec3/i32.wgsl.expected.ir.dxc.hlsl b/test/tint/expressions/binary/div_by_zero/by_expression/vec3-vec3/i32.wgsl.expected.ir.dxc.hlsl
index 0cc2a5b..e604c42 100644
--- a/test/tint/expressions/binary/div_by_zero/by_expression/vec3-vec3/i32.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/expressions/binary/div_by_zero/by_expression/vec3-vec3/i32.wgsl.expected.ir.dxc.hlsl
@@ -1,7 +1,12 @@
+
+int3 tint_div_v3i32(int3 lhs, int3 rhs) {
+  return (lhs / ((((rhs == (0).xxx) | ((lhs == (-2147483648).xxx) & (rhs == (-1).xxx)))) ? ((1).xxx) : (rhs)));
+}
+
 [numthreads(1, 1, 1)]
 void f() {
   int3 a = int3(1, 2, 3);
   int3 b = int3(0, 5, 0);
-  int3 r = (a / (b + b));
+  int3 r = tint_div_v3i32(a, (b + b));
 }
 
diff --git a/test/tint/expressions/binary/div_by_zero/by_expression/vec3-vec3/i32.wgsl.expected.ir.fxc.hlsl b/test/tint/expressions/binary/div_by_zero/by_expression/vec3-vec3/i32.wgsl.expected.ir.fxc.hlsl
index eba1020..e604c42 100644
--- a/test/tint/expressions/binary/div_by_zero/by_expression/vec3-vec3/i32.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/expressions/binary/div_by_zero/by_expression/vec3-vec3/i32.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,12 @@
-SKIP: FAILED
+
+int3 tint_div_v3i32(int3 lhs, int3 rhs) {
+  return (lhs / ((((rhs == (0).xxx) | ((lhs == (-2147483648).xxx) & (rhs == (-1).xxx)))) ? ((1).xxx) : (rhs)));
+}
 
 [numthreads(1, 1, 1)]
 void f() {
   int3 a = int3(1, 2, 3);
   int3 b = int3(0, 5, 0);
-  int3 r = (a / (b + b));
+  int3 r = tint_div_v3i32(a, (b + b));
 }
 
diff --git a/test/tint/expressions/binary/div_by_zero/by_expression/vec3-vec3/u32.wgsl.expected.ir.dxc.hlsl b/test/tint/expressions/binary/div_by_zero/by_expression/vec3-vec3/u32.wgsl.expected.ir.dxc.hlsl
index 97db96d..4acab4d 100644
--- a/test/tint/expressions/binary/div_by_zero/by_expression/vec3-vec3/u32.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/expressions/binary/div_by_zero/by_expression/vec3-vec3/u32.wgsl.expected.ir.dxc.hlsl
@@ -1,7 +1,12 @@
+
+uint3 tint_div_v3u32(uint3 lhs, uint3 rhs) {
+  return (lhs / (((rhs == (0u).xxx)) ? ((1u).xxx) : (rhs)));
+}
+
 [numthreads(1, 1, 1)]
 void f() {
   uint3 a = uint3(1u, 2u, 3u);
   uint3 b = uint3(0u, 5u, 0u);
-  uint3 r = (a / (b + b));
+  uint3 r = tint_div_v3u32(a, (b + b));
 }
 
diff --git a/test/tint/expressions/binary/div_by_zero/by_expression/vec3-vec3/u32.wgsl.expected.ir.fxc.hlsl b/test/tint/expressions/binary/div_by_zero/by_expression/vec3-vec3/u32.wgsl.expected.ir.fxc.hlsl
index 6dec967..4acab4d 100644
--- a/test/tint/expressions/binary/div_by_zero/by_expression/vec3-vec3/u32.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/expressions/binary/div_by_zero/by_expression/vec3-vec3/u32.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,12 @@
-SKIP: FAILED
+
+uint3 tint_div_v3u32(uint3 lhs, uint3 rhs) {
+  return (lhs / (((rhs == (0u).xxx)) ? ((1u).xxx) : (rhs)));
+}
 
 [numthreads(1, 1, 1)]
 void f() {
   uint3 a = uint3(1u, 2u, 3u);
   uint3 b = uint3(0u, 5u, 0u);
-  uint3 r = (a / (b + b));
+  uint3 r = tint_div_v3u32(a, (b + b));
 }
 
diff --git a/test/tint/expressions/binary/div_by_zero/by_identifier/scalar-scalar/f16.wgsl.expected.ir.dxc.hlsl b/test/tint/expressions/binary/div_by_zero/by_identifier/scalar-scalar/f16.wgsl.expected.ir.dxc.hlsl
index 12ea83f..d97a4d2 100644
--- a/test/tint/expressions/binary/div_by_zero/by_identifier/scalar-scalar/f16.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/expressions/binary/div_by_zero/by_identifier/scalar-scalar/f16.wgsl.expected.ir.dxc.hlsl
@@ -1,3 +1,4 @@
+
 [numthreads(1, 1, 1)]
 void f() {
   float16_t a = float16_t(1.0h);
diff --git a/test/tint/expressions/binary/div_by_zero/by_identifier/scalar-scalar/f16.wgsl.expected.ir.fxc.hlsl b/test/tint/expressions/binary/div_by_zero/by_identifier/scalar-scalar/f16.wgsl.expected.ir.fxc.hlsl
index ff0a1e6..d4cf5c1 100644
--- a/test/tint/expressions/binary/div_by_zero/by_identifier/scalar-scalar/f16.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/expressions/binary/div_by_zero/by_identifier/scalar-scalar/f16.wgsl.expected.ir.fxc.hlsl
@@ -1,5 +1,6 @@
 SKIP: FAILED
 
+
 [numthreads(1, 1, 1)]
 void f() {
   float16_t a = float16_t(1.0h);
@@ -7,3 +8,7 @@
   float16_t r = (a / b);
 }
 
+FXC validation failure:
+c:\src\dawn\Shader@0x0000021C987459D0(4,3-11): error X3000: unrecognized identifier 'float16_t'
+c:\src\dawn\Shader@0x0000021C987459D0(4,13): error X3000: unrecognized identifier 'a'
+
diff --git a/test/tint/expressions/binary/div_by_zero/by_identifier/scalar-scalar/f32.wgsl.expected.ir.dxc.hlsl b/test/tint/expressions/binary/div_by_zero/by_identifier/scalar-scalar/f32.wgsl.expected.ir.dxc.hlsl
index c471fa4..49629b7 100644
--- a/test/tint/expressions/binary/div_by_zero/by_identifier/scalar-scalar/f32.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/expressions/binary/div_by_zero/by_identifier/scalar-scalar/f32.wgsl.expected.ir.dxc.hlsl
@@ -1,3 +1,4 @@
+
 [numthreads(1, 1, 1)]
 void f() {
   float a = 1.0f;
diff --git a/test/tint/expressions/binary/div_by_zero/by_identifier/scalar-scalar/f32.wgsl.expected.ir.fxc.hlsl b/test/tint/expressions/binary/div_by_zero/by_identifier/scalar-scalar/f32.wgsl.expected.ir.fxc.hlsl
index 0faa507..49629b7 100644
--- a/test/tint/expressions/binary/div_by_zero/by_identifier/scalar-scalar/f32.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/expressions/binary/div_by_zero/by_identifier/scalar-scalar/f32.wgsl.expected.ir.fxc.hlsl
@@ -1,4 +1,3 @@
-SKIP: FAILED
 
 [numthreads(1, 1, 1)]
 void f() {
diff --git a/test/tint/expressions/binary/div_by_zero/by_identifier/scalar-scalar/i32.wgsl.expected.ir.dxc.hlsl b/test/tint/expressions/binary/div_by_zero/by_identifier/scalar-scalar/i32.wgsl.expected.ir.dxc.hlsl
index 15524ea..f140172 100644
--- a/test/tint/expressions/binary/div_by_zero/by_identifier/scalar-scalar/i32.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/expressions/binary/div_by_zero/by_identifier/scalar-scalar/i32.wgsl.expected.ir.dxc.hlsl
@@ -1,7 +1,12 @@
+
+int tint_div_i32(int lhs, int rhs) {
+  return (lhs / ((((rhs == 0) | ((lhs == -2147483648) & (rhs == -1)))) ? (1) : (rhs)));
+}
+
 [numthreads(1, 1, 1)]
 void f() {
   int a = 1;
   int b = 0;
-  int r = (a / b);
+  int r = tint_div_i32(a, b);
 }
 
diff --git a/test/tint/expressions/binary/div_by_zero/by_identifier/scalar-scalar/i32.wgsl.expected.ir.fxc.hlsl b/test/tint/expressions/binary/div_by_zero/by_identifier/scalar-scalar/i32.wgsl.expected.ir.fxc.hlsl
index 076a218..f140172 100644
--- a/test/tint/expressions/binary/div_by_zero/by_identifier/scalar-scalar/i32.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/expressions/binary/div_by_zero/by_identifier/scalar-scalar/i32.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,12 @@
-SKIP: FAILED
+
+int tint_div_i32(int lhs, int rhs) {
+  return (lhs / ((((rhs == 0) | ((lhs == -2147483648) & (rhs == -1)))) ? (1) : (rhs)));
+}
 
 [numthreads(1, 1, 1)]
 void f() {
   int a = 1;
   int b = 0;
-  int r = (a / b);
+  int r = tint_div_i32(a, b);
 }
 
diff --git a/test/tint/expressions/binary/div_by_zero/by_identifier/scalar-scalar/u32.wgsl.expected.ir.dxc.hlsl b/test/tint/expressions/binary/div_by_zero/by_identifier/scalar-scalar/u32.wgsl.expected.ir.dxc.hlsl
index 1e8d46c..e2c6b09 100644
--- a/test/tint/expressions/binary/div_by_zero/by_identifier/scalar-scalar/u32.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/expressions/binary/div_by_zero/by_identifier/scalar-scalar/u32.wgsl.expected.ir.dxc.hlsl
@@ -1,7 +1,12 @@
+
+uint tint_div_u32(uint lhs, uint rhs) {
+  return (lhs / (((rhs == 0u)) ? (1u) : (rhs)));
+}
+
 [numthreads(1, 1, 1)]
 void f() {
   uint a = 1u;
   uint b = 0u;
-  uint r = (a / b);
+  uint r = tint_div_u32(a, b);
 }
 
diff --git a/test/tint/expressions/binary/div_by_zero/by_identifier/scalar-scalar/u32.wgsl.expected.ir.fxc.hlsl b/test/tint/expressions/binary/div_by_zero/by_identifier/scalar-scalar/u32.wgsl.expected.ir.fxc.hlsl
index 7e5a37c..e2c6b09 100644
--- a/test/tint/expressions/binary/div_by_zero/by_identifier/scalar-scalar/u32.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/expressions/binary/div_by_zero/by_identifier/scalar-scalar/u32.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,12 @@
-SKIP: FAILED
+
+uint tint_div_u32(uint lhs, uint rhs) {
+  return (lhs / (((rhs == 0u)) ? (1u) : (rhs)));
+}
 
 [numthreads(1, 1, 1)]
 void f() {
   uint a = 1u;
   uint b = 0u;
-  uint r = (a / b);
+  uint r = tint_div_u32(a, b);
 }
 
diff --git a/test/tint/expressions/binary/div_by_zero/by_identifier/scalar-vec3/f16.wgsl.expected.ir.dxc.hlsl b/test/tint/expressions/binary/div_by_zero/by_identifier/scalar-vec3/f16.wgsl.expected.ir.dxc.hlsl
index 527cdbb..46d0303 100644
--- a/test/tint/expressions/binary/div_by_zero/by_identifier/scalar-vec3/f16.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/expressions/binary/div_by_zero/by_identifier/scalar-vec3/f16.wgsl.expected.ir.dxc.hlsl
@@ -1,3 +1,4 @@
+
 [numthreads(1, 1, 1)]
 void f() {
   float16_t a = float16_t(4.0h);
diff --git a/test/tint/expressions/binary/div_by_zero/by_identifier/scalar-vec3/f16.wgsl.expected.ir.fxc.hlsl b/test/tint/expressions/binary/div_by_zero/by_identifier/scalar-vec3/f16.wgsl.expected.ir.fxc.hlsl
index 25499c8..aa16e8d 100644
--- a/test/tint/expressions/binary/div_by_zero/by_identifier/scalar-vec3/f16.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/expressions/binary/div_by_zero/by_identifier/scalar-vec3/f16.wgsl.expected.ir.fxc.hlsl
@@ -1,5 +1,6 @@
 SKIP: FAILED
 
+
 [numthreads(1, 1, 1)]
 void f() {
   float16_t a = float16_t(4.0h);
@@ -7,3 +8,7 @@
   vector<float16_t, 3> r = (a / b);
 }
 
+FXC validation failure:
+c:\src\dawn\Shader@0x000001DF44F6F340(4,3-11): error X3000: unrecognized identifier 'float16_t'
+c:\src\dawn\Shader@0x000001DF44F6F340(4,13): error X3000: unrecognized identifier 'a'
+
diff --git a/test/tint/expressions/binary/div_by_zero/by_identifier/scalar-vec3/f32.wgsl.expected.ir.dxc.hlsl b/test/tint/expressions/binary/div_by_zero/by_identifier/scalar-vec3/f32.wgsl.expected.ir.dxc.hlsl
index 9bb818b..5b911c8 100644
--- a/test/tint/expressions/binary/div_by_zero/by_identifier/scalar-vec3/f32.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/expressions/binary/div_by_zero/by_identifier/scalar-vec3/f32.wgsl.expected.ir.dxc.hlsl
@@ -1,3 +1,4 @@
+
 [numthreads(1, 1, 1)]
 void f() {
   float a = 4.0f;
diff --git a/test/tint/expressions/binary/div_by_zero/by_identifier/scalar-vec3/f32.wgsl.expected.ir.fxc.hlsl b/test/tint/expressions/binary/div_by_zero/by_identifier/scalar-vec3/f32.wgsl.expected.ir.fxc.hlsl
index 10b359b..5b911c8 100644
--- a/test/tint/expressions/binary/div_by_zero/by_identifier/scalar-vec3/f32.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/expressions/binary/div_by_zero/by_identifier/scalar-vec3/f32.wgsl.expected.ir.fxc.hlsl
@@ -1,4 +1,3 @@
-SKIP: FAILED
 
 [numthreads(1, 1, 1)]
 void f() {
diff --git a/test/tint/expressions/binary/div_by_zero/by_identifier/scalar-vec3/i32.wgsl.expected.ir.dxc.hlsl b/test/tint/expressions/binary/div_by_zero/by_identifier/scalar-vec3/i32.wgsl.expected.ir.dxc.hlsl
index 539f117..190c054 100644
--- a/test/tint/expressions/binary/div_by_zero/by_identifier/scalar-vec3/i32.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/expressions/binary/div_by_zero/by_identifier/scalar-vec3/i32.wgsl.expected.ir.dxc.hlsl
@@ -1,7 +1,13 @@
+
+int3 tint_div_v3i32(int3 lhs, int3 rhs) {
+  return (lhs / ((((rhs == (0).xxx) | ((lhs == (-2147483648).xxx) & (rhs == (-1).xxx)))) ? ((1).xxx) : (rhs)));
+}
+
 [numthreads(1, 1, 1)]
 void f() {
   int a = 4;
   int3 b = int3(0, 2, 0);
-  int3 r = (a / b);
+  int3 v = b;
+  int3 r = tint_div_v3i32(int3((a).xxx), v);
 }
 
diff --git a/test/tint/expressions/binary/div_by_zero/by_identifier/scalar-vec3/i32.wgsl.expected.ir.fxc.hlsl b/test/tint/expressions/binary/div_by_zero/by_identifier/scalar-vec3/i32.wgsl.expected.ir.fxc.hlsl
index 6ab4ecc..190c054 100644
--- a/test/tint/expressions/binary/div_by_zero/by_identifier/scalar-vec3/i32.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/expressions/binary/div_by_zero/by_identifier/scalar-vec3/i32.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,13 @@
-SKIP: FAILED
+
+int3 tint_div_v3i32(int3 lhs, int3 rhs) {
+  return (lhs / ((((rhs == (0).xxx) | ((lhs == (-2147483648).xxx) & (rhs == (-1).xxx)))) ? ((1).xxx) : (rhs)));
+}
 
 [numthreads(1, 1, 1)]
 void f() {
   int a = 4;
   int3 b = int3(0, 2, 0);
-  int3 r = (a / b);
+  int3 v = b;
+  int3 r = tint_div_v3i32(int3((a).xxx), v);
 }
 
diff --git a/test/tint/expressions/binary/div_by_zero/by_identifier/scalar-vec3/u32.wgsl.expected.ir.dxc.hlsl b/test/tint/expressions/binary/div_by_zero/by_identifier/scalar-vec3/u32.wgsl.expected.ir.dxc.hlsl
index 6e69f97..2500f58 100644
--- a/test/tint/expressions/binary/div_by_zero/by_identifier/scalar-vec3/u32.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/expressions/binary/div_by_zero/by_identifier/scalar-vec3/u32.wgsl.expected.ir.dxc.hlsl
@@ -1,7 +1,13 @@
+
+uint3 tint_div_v3u32(uint3 lhs, uint3 rhs) {
+  return (lhs / (((rhs == (0u).xxx)) ? ((1u).xxx) : (rhs)));
+}
+
 [numthreads(1, 1, 1)]
 void f() {
   uint a = 4u;
   uint3 b = uint3(0u, 2u, 0u);
-  uint3 r = (a / b);
+  uint3 v = b;
+  uint3 r = tint_div_v3u32(uint3((a).xxx), v);
 }
 
diff --git a/test/tint/expressions/binary/div_by_zero/by_identifier/scalar-vec3/u32.wgsl.expected.ir.fxc.hlsl b/test/tint/expressions/binary/div_by_zero/by_identifier/scalar-vec3/u32.wgsl.expected.ir.fxc.hlsl
index 639f5f4..2500f58 100644
--- a/test/tint/expressions/binary/div_by_zero/by_identifier/scalar-vec3/u32.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/expressions/binary/div_by_zero/by_identifier/scalar-vec3/u32.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,13 @@
-SKIP: FAILED
+
+uint3 tint_div_v3u32(uint3 lhs, uint3 rhs) {
+  return (lhs / (((rhs == (0u).xxx)) ? ((1u).xxx) : (rhs)));
+}
 
 [numthreads(1, 1, 1)]
 void f() {
   uint a = 4u;
   uint3 b = uint3(0u, 2u, 0u);
-  uint3 r = (a / b);
+  uint3 v = b;
+  uint3 r = tint_div_v3u32(uint3((a).xxx), v);
 }
 
diff --git a/test/tint/expressions/binary/div_by_zero/by_identifier/vec3-scalar/f16.wgsl.expected.ir.dxc.hlsl b/test/tint/expressions/binary/div_by_zero/by_identifier/vec3-scalar/f16.wgsl.expected.ir.dxc.hlsl
index 5189c00..cfb0cf8 100644
--- a/test/tint/expressions/binary/div_by_zero/by_identifier/vec3-scalar/f16.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/expressions/binary/div_by_zero/by_identifier/vec3-scalar/f16.wgsl.expected.ir.dxc.hlsl
@@ -1,3 +1,4 @@
+
 [numthreads(1, 1, 1)]
 void f() {
   vector<float16_t, 3> a = vector<float16_t, 3>(float16_t(1.0h), float16_t(2.0h), float16_t(3.0h));
diff --git a/test/tint/expressions/binary/div_by_zero/by_identifier/vec3-scalar/f16.wgsl.expected.ir.fxc.hlsl b/test/tint/expressions/binary/div_by_zero/by_identifier/vec3-scalar/f16.wgsl.expected.ir.fxc.hlsl
index 3a55126..19fa3f8 100644
--- a/test/tint/expressions/binary/div_by_zero/by_identifier/vec3-scalar/f16.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/expressions/binary/div_by_zero/by_identifier/vec3-scalar/f16.wgsl.expected.ir.fxc.hlsl
@@ -1,5 +1,6 @@
 SKIP: FAILED
 
+
 [numthreads(1, 1, 1)]
 void f() {
   vector<float16_t, 3> a = vector<float16_t, 3>(float16_t(1.0h), float16_t(2.0h), float16_t(3.0h));
@@ -7,3 +8,8 @@
   vector<float16_t, 3> r = (a / b);
 }
 
+FXC validation failure:
+c:\src\dawn\Shader@0x00000255E11AF3C0(4,10-18): error X3000: syntax error: unexpected token 'float16_t'
+c:\src\dawn\Shader@0x00000255E11AF3C0(5,3-11): error X3000: unrecognized identifier 'float16_t'
+c:\src\dawn\Shader@0x00000255E11AF3C0(5,13): error X3000: unrecognized identifier 'b'
+
diff --git a/test/tint/expressions/binary/div_by_zero/by_identifier/vec3-scalar/f32.wgsl.expected.ir.dxc.hlsl b/test/tint/expressions/binary/div_by_zero/by_identifier/vec3-scalar/f32.wgsl.expected.ir.dxc.hlsl
index 2e2985e2..b7b5c47 100644
--- a/test/tint/expressions/binary/div_by_zero/by_identifier/vec3-scalar/f32.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/expressions/binary/div_by_zero/by_identifier/vec3-scalar/f32.wgsl.expected.ir.dxc.hlsl
@@ -1,3 +1,4 @@
+
 [numthreads(1, 1, 1)]
 void f() {
   float3 a = float3(1.0f, 2.0f, 3.0f);
diff --git a/test/tint/expressions/binary/div_by_zero/by_identifier/vec3-scalar/f32.wgsl.expected.ir.fxc.hlsl b/test/tint/expressions/binary/div_by_zero/by_identifier/vec3-scalar/f32.wgsl.expected.ir.fxc.hlsl
index 72233ea..b7b5c47 100644
--- a/test/tint/expressions/binary/div_by_zero/by_identifier/vec3-scalar/f32.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/expressions/binary/div_by_zero/by_identifier/vec3-scalar/f32.wgsl.expected.ir.fxc.hlsl
@@ -1,4 +1,3 @@
-SKIP: FAILED
 
 [numthreads(1, 1, 1)]
 void f() {
diff --git a/test/tint/expressions/binary/div_by_zero/by_identifier/vec3-scalar/i32.wgsl.expected.ir.dxc.hlsl b/test/tint/expressions/binary/div_by_zero/by_identifier/vec3-scalar/i32.wgsl.expected.ir.dxc.hlsl
index 2052265..85f4a73 100644
--- a/test/tint/expressions/binary/div_by_zero/by_identifier/vec3-scalar/i32.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/expressions/binary/div_by_zero/by_identifier/vec3-scalar/i32.wgsl.expected.ir.dxc.hlsl
@@ -1,7 +1,13 @@
+
+int3 tint_div_v3i32(int3 lhs, int3 rhs) {
+  return (lhs / ((((rhs == (0).xxx) | ((lhs == (-2147483648).xxx) & (rhs == (-1).xxx)))) ? ((1).xxx) : (rhs)));
+}
+
 [numthreads(1, 1, 1)]
 void f() {
   int3 a = int3(1, 2, 3);
   int b = 0;
-  int3 r = (a / b);
+  int3 v = a;
+  int3 r = tint_div_v3i32(v, int3((b).xxx));
 }
 
diff --git a/test/tint/expressions/binary/div_by_zero/by_identifier/vec3-scalar/i32.wgsl.expected.ir.fxc.hlsl b/test/tint/expressions/binary/div_by_zero/by_identifier/vec3-scalar/i32.wgsl.expected.ir.fxc.hlsl
index ea8b2c6..85f4a73 100644
--- a/test/tint/expressions/binary/div_by_zero/by_identifier/vec3-scalar/i32.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/expressions/binary/div_by_zero/by_identifier/vec3-scalar/i32.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,13 @@
-SKIP: FAILED
+
+int3 tint_div_v3i32(int3 lhs, int3 rhs) {
+  return (lhs / ((((rhs == (0).xxx) | ((lhs == (-2147483648).xxx) & (rhs == (-1).xxx)))) ? ((1).xxx) : (rhs)));
+}
 
 [numthreads(1, 1, 1)]
 void f() {
   int3 a = int3(1, 2, 3);
   int b = 0;
-  int3 r = (a / b);
+  int3 v = a;
+  int3 r = tint_div_v3i32(v, int3((b).xxx));
 }
 
diff --git a/test/tint/expressions/binary/div_by_zero/by_identifier/vec3-scalar/u32.wgsl.expected.ir.dxc.hlsl b/test/tint/expressions/binary/div_by_zero/by_identifier/vec3-scalar/u32.wgsl.expected.ir.dxc.hlsl
index 88cd9ac..002cc3f 100644
--- a/test/tint/expressions/binary/div_by_zero/by_identifier/vec3-scalar/u32.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/expressions/binary/div_by_zero/by_identifier/vec3-scalar/u32.wgsl.expected.ir.dxc.hlsl
@@ -1,7 +1,13 @@
+
+uint3 tint_div_v3u32(uint3 lhs, uint3 rhs) {
+  return (lhs / (((rhs == (0u).xxx)) ? ((1u).xxx) : (rhs)));
+}
+
 [numthreads(1, 1, 1)]
 void f() {
   uint3 a = uint3(1u, 2u, 3u);
   uint b = 0u;
-  uint3 r = (a / b);
+  uint3 v = a;
+  uint3 r = tint_div_v3u32(v, uint3((b).xxx));
 }
 
diff --git a/test/tint/expressions/binary/div_by_zero/by_identifier/vec3-scalar/u32.wgsl.expected.ir.fxc.hlsl b/test/tint/expressions/binary/div_by_zero/by_identifier/vec3-scalar/u32.wgsl.expected.ir.fxc.hlsl
index 64a7e52..002cc3f 100644
--- a/test/tint/expressions/binary/div_by_zero/by_identifier/vec3-scalar/u32.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/expressions/binary/div_by_zero/by_identifier/vec3-scalar/u32.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,13 @@
-SKIP: FAILED
+
+uint3 tint_div_v3u32(uint3 lhs, uint3 rhs) {
+  return (lhs / (((rhs == (0u).xxx)) ? ((1u).xxx) : (rhs)));
+}
 
 [numthreads(1, 1, 1)]
 void f() {
   uint3 a = uint3(1u, 2u, 3u);
   uint b = 0u;
-  uint3 r = (a / b);
+  uint3 v = a;
+  uint3 r = tint_div_v3u32(v, uint3((b).xxx));
 }
 
diff --git a/test/tint/expressions/binary/div_by_zero/by_identifier/vec3-vec3/f16.wgsl.expected.ir.dxc.hlsl b/test/tint/expressions/binary/div_by_zero/by_identifier/vec3-vec3/f16.wgsl.expected.ir.dxc.hlsl
index 4a3f728..ac9427a 100644
--- a/test/tint/expressions/binary/div_by_zero/by_identifier/vec3-vec3/f16.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/expressions/binary/div_by_zero/by_identifier/vec3-vec3/f16.wgsl.expected.ir.dxc.hlsl
@@ -1,3 +1,4 @@
+
 [numthreads(1, 1, 1)]
 void f() {
   vector<float16_t, 3> a = vector<float16_t, 3>(float16_t(1.0h), float16_t(2.0h), float16_t(3.0h));
diff --git a/test/tint/expressions/binary/div_by_zero/by_identifier/vec3-vec3/f16.wgsl.expected.ir.fxc.hlsl b/test/tint/expressions/binary/div_by_zero/by_identifier/vec3-vec3/f16.wgsl.expected.ir.fxc.hlsl
index f2e1860..f4f45a4 100644
--- a/test/tint/expressions/binary/div_by_zero/by_identifier/vec3-vec3/f16.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/expressions/binary/div_by_zero/by_identifier/vec3-vec3/f16.wgsl.expected.ir.fxc.hlsl
@@ -1,5 +1,6 @@
 SKIP: FAILED
 
+
 [numthreads(1, 1, 1)]
 void f() {
   vector<float16_t, 3> a = vector<float16_t, 3>(float16_t(1.0h), float16_t(2.0h), float16_t(3.0h));
@@ -7,3 +8,8 @@
   vector<float16_t, 3> r = (a / b);
 }
 
+FXC validation failure:
+c:\src\dawn\Shader@0x000002F5594E9CA0(4,10-18): error X3000: syntax error: unexpected token 'float16_t'
+c:\src\dawn\Shader@0x000002F5594E9CA0(5,10-18): error X3000: syntax error: unexpected token 'float16_t'
+c:\src\dawn\Shader@0x000002F5594E9CA0(6,10-18): error X3000: syntax error: unexpected token 'float16_t'
+
diff --git a/test/tint/expressions/binary/div_by_zero/by_identifier/vec3-vec3/f32.wgsl.expected.ir.dxc.hlsl b/test/tint/expressions/binary/div_by_zero/by_identifier/vec3-vec3/f32.wgsl.expected.ir.dxc.hlsl
index 8f1b952..4becd9b 100644
--- a/test/tint/expressions/binary/div_by_zero/by_identifier/vec3-vec3/f32.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/expressions/binary/div_by_zero/by_identifier/vec3-vec3/f32.wgsl.expected.ir.dxc.hlsl
@@ -1,3 +1,4 @@
+
 [numthreads(1, 1, 1)]
 void f() {
   float3 a = float3(1.0f, 2.0f, 3.0f);
diff --git a/test/tint/expressions/binary/div_by_zero/by_identifier/vec3-vec3/f32.wgsl.expected.ir.fxc.hlsl b/test/tint/expressions/binary/div_by_zero/by_identifier/vec3-vec3/f32.wgsl.expected.ir.fxc.hlsl
index e4164ee..4becd9b 100644
--- a/test/tint/expressions/binary/div_by_zero/by_identifier/vec3-vec3/f32.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/expressions/binary/div_by_zero/by_identifier/vec3-vec3/f32.wgsl.expected.ir.fxc.hlsl
@@ -1,4 +1,3 @@
-SKIP: FAILED
 
 [numthreads(1, 1, 1)]
 void f() {
diff --git a/test/tint/expressions/binary/div_by_zero/by_identifier/vec3-vec3/i32.wgsl.expected.ir.dxc.hlsl b/test/tint/expressions/binary/div_by_zero/by_identifier/vec3-vec3/i32.wgsl.expected.ir.dxc.hlsl
index 1a07767..9a55716 100644
--- a/test/tint/expressions/binary/div_by_zero/by_identifier/vec3-vec3/i32.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/expressions/binary/div_by_zero/by_identifier/vec3-vec3/i32.wgsl.expected.ir.dxc.hlsl
@@ -1,7 +1,12 @@
+
+int3 tint_div_v3i32(int3 lhs, int3 rhs) {
+  return (lhs / ((((rhs == (0).xxx) | ((lhs == (-2147483648).xxx) & (rhs == (-1).xxx)))) ? ((1).xxx) : (rhs)));
+}
+
 [numthreads(1, 1, 1)]
 void f() {
   int3 a = int3(1, 2, 3);
   int3 b = int3(0, 5, 0);
-  int3 r = (a / b);
+  int3 r = tint_div_v3i32(a, b);
 }
 
diff --git a/test/tint/expressions/binary/div_by_zero/by_identifier/vec3-vec3/i32.wgsl.expected.ir.fxc.hlsl b/test/tint/expressions/binary/div_by_zero/by_identifier/vec3-vec3/i32.wgsl.expected.ir.fxc.hlsl
index 2e2123c..9a55716 100644
--- a/test/tint/expressions/binary/div_by_zero/by_identifier/vec3-vec3/i32.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/expressions/binary/div_by_zero/by_identifier/vec3-vec3/i32.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,12 @@
-SKIP: FAILED
+
+int3 tint_div_v3i32(int3 lhs, int3 rhs) {
+  return (lhs / ((((rhs == (0).xxx) | ((lhs == (-2147483648).xxx) & (rhs == (-1).xxx)))) ? ((1).xxx) : (rhs)));
+}
 
 [numthreads(1, 1, 1)]
 void f() {
   int3 a = int3(1, 2, 3);
   int3 b = int3(0, 5, 0);
-  int3 r = (a / b);
+  int3 r = tint_div_v3i32(a, b);
 }
 
diff --git a/test/tint/expressions/binary/div_by_zero/by_identifier/vec3-vec3/u32.wgsl.expected.ir.dxc.hlsl b/test/tint/expressions/binary/div_by_zero/by_identifier/vec3-vec3/u32.wgsl.expected.ir.dxc.hlsl
index 0494c20..d5db2dc 100644
--- a/test/tint/expressions/binary/div_by_zero/by_identifier/vec3-vec3/u32.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/expressions/binary/div_by_zero/by_identifier/vec3-vec3/u32.wgsl.expected.ir.dxc.hlsl
@@ -1,7 +1,12 @@
+
+uint3 tint_div_v3u32(uint3 lhs, uint3 rhs) {
+  return (lhs / (((rhs == (0u).xxx)) ? ((1u).xxx) : (rhs)));
+}
+
 [numthreads(1, 1, 1)]
 void f() {
   uint3 a = uint3(1u, 2u, 3u);
   uint3 b = uint3(0u, 5u, 0u);
-  uint3 r = (a / b);
+  uint3 r = tint_div_v3u32(a, b);
 }
 
diff --git a/test/tint/expressions/binary/div_by_zero/by_identifier/vec3-vec3/u32.wgsl.expected.ir.fxc.hlsl b/test/tint/expressions/binary/div_by_zero/by_identifier/vec3-vec3/u32.wgsl.expected.ir.fxc.hlsl
index d170421..d5db2dc 100644
--- a/test/tint/expressions/binary/div_by_zero/by_identifier/vec3-vec3/u32.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/expressions/binary/div_by_zero/by_identifier/vec3-vec3/u32.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,12 @@
-SKIP: FAILED
+
+uint3 tint_div_v3u32(uint3 lhs, uint3 rhs) {
+  return (lhs / (((rhs == (0u).xxx)) ? ((1u).xxx) : (rhs)));
+}
 
 [numthreads(1, 1, 1)]
 void f() {
   uint3 a = uint3(1u, 2u, 3u);
   uint3 b = uint3(0u, 5u, 0u);
-  uint3 r = (a / b);
+  uint3 r = tint_div_v3u32(a, b);
 }
 
diff --git a/test/tint/expressions/binary/left-shift/scalar-scalar/i32.wgsl.expected.ir.dxc.hlsl b/test/tint/expressions/binary/left-shift/scalar-scalar/i32.wgsl.expected.ir.dxc.hlsl
index 70af679..6e813a2 100644
--- a/test/tint/expressions/binary/left-shift/scalar-scalar/i32.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/expressions/binary/left-shift/scalar-scalar/i32.wgsl.expected.ir.dxc.hlsl
@@ -1,7 +1,8 @@
+
 [numthreads(1, 1, 1)]
 void f() {
   int a = 1;
   uint b = 2u;
-  int r = (a << b);
+  int r = (a << (b & 31u));
 }
 
diff --git a/test/tint/expressions/binary/left-shift/scalar-scalar/i32.wgsl.expected.ir.fxc.hlsl b/test/tint/expressions/binary/left-shift/scalar-scalar/i32.wgsl.expected.ir.fxc.hlsl
index 955914e..6e813a2 100644
--- a/test/tint/expressions/binary/left-shift/scalar-scalar/i32.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/expressions/binary/left-shift/scalar-scalar/i32.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,8 @@
-SKIP: FAILED
 
 [numthreads(1, 1, 1)]
 void f() {
   int a = 1;
   uint b = 2u;
-  int r = (a << b);
+  int r = (a << (b & 31u));
 }
 
diff --git a/test/tint/expressions/binary/left-shift/scalar-scalar/u32.wgsl.expected.ir.dxc.hlsl b/test/tint/expressions/binary/left-shift/scalar-scalar/u32.wgsl.expected.ir.dxc.hlsl
index 03797ca..a9ac184 100644
--- a/test/tint/expressions/binary/left-shift/scalar-scalar/u32.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/expressions/binary/left-shift/scalar-scalar/u32.wgsl.expected.ir.dxc.hlsl
@@ -1,7 +1,8 @@
+
 [numthreads(1, 1, 1)]
 void f() {
   uint a = 1u;
   uint b = 2u;
-  uint r = (a << b);
+  uint r = (a << (b & 31u));
 }
 
diff --git a/test/tint/expressions/binary/left-shift/scalar-scalar/u32.wgsl.expected.ir.fxc.hlsl b/test/tint/expressions/binary/left-shift/scalar-scalar/u32.wgsl.expected.ir.fxc.hlsl
index 4d70b8b..a9ac184 100644
--- a/test/tint/expressions/binary/left-shift/scalar-scalar/u32.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/expressions/binary/left-shift/scalar-scalar/u32.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,8 @@
-SKIP: FAILED
 
 [numthreads(1, 1, 1)]
 void f() {
   uint a = 1u;
   uint b = 2u;
-  uint r = (a << b);
+  uint r = (a << (b & 31u));
 }
 
diff --git a/test/tint/expressions/binary/left-shift/vector-vector/i32.wgsl.expected.ir.dxc.hlsl b/test/tint/expressions/binary/left-shift/vector-vector/i32.wgsl.expected.ir.dxc.hlsl
index 96da4f5..860aec5 100644
--- a/test/tint/expressions/binary/left-shift/vector-vector/i32.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/expressions/binary/left-shift/vector-vector/i32.wgsl.expected.ir.dxc.hlsl
@@ -1,7 +1,8 @@
+
 [numthreads(1, 1, 1)]
 void f() {
   int3 a = int3(1, 2, 3);
   uint3 b = uint3(4u, 5u, 6u);
-  int3 r = (a << b);
+  int3 r = (a << (b & (31u).xxx));
 }
 
diff --git a/test/tint/expressions/binary/left-shift/vector-vector/i32.wgsl.expected.ir.fxc.hlsl b/test/tint/expressions/binary/left-shift/vector-vector/i32.wgsl.expected.ir.fxc.hlsl
index a830a93..860aec5 100644
--- a/test/tint/expressions/binary/left-shift/vector-vector/i32.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/expressions/binary/left-shift/vector-vector/i32.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,8 @@
-SKIP: FAILED
 
 [numthreads(1, 1, 1)]
 void f() {
   int3 a = int3(1, 2, 3);
   uint3 b = uint3(4u, 5u, 6u);
-  int3 r = (a << b);
+  int3 r = (a << (b & (31u).xxx));
 }
 
diff --git a/test/tint/expressions/binary/left-shift/vector-vector/u32.wgsl.expected.ir.dxc.hlsl b/test/tint/expressions/binary/left-shift/vector-vector/u32.wgsl.expected.ir.dxc.hlsl
index f8b88ca..f976118 100644
--- a/test/tint/expressions/binary/left-shift/vector-vector/u32.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/expressions/binary/left-shift/vector-vector/u32.wgsl.expected.ir.dxc.hlsl
@@ -1,7 +1,8 @@
+
 [numthreads(1, 1, 1)]
 void f() {
   uint3 a = uint3(1u, 2u, 3u);
   uint3 b = uint3(4u, 5u, 6u);
-  uint3 r = (a << b);
+  uint3 r = (a << (b & (31u).xxx));
 }
 
diff --git a/test/tint/expressions/binary/left-shift/vector-vector/u32.wgsl.expected.ir.fxc.hlsl b/test/tint/expressions/binary/left-shift/vector-vector/u32.wgsl.expected.ir.fxc.hlsl
index bc02610..f976118 100644
--- a/test/tint/expressions/binary/left-shift/vector-vector/u32.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/expressions/binary/left-shift/vector-vector/u32.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,8 @@
-SKIP: FAILED
 
 [numthreads(1, 1, 1)]
 void f() {
   uint3 a = uint3(1u, 2u, 3u);
   uint3 b = uint3(4u, 5u, 6u);
-  uint3 r = (a << b);
+  uint3 r = (a << (b & (31u).xxx));
 }
 
diff --git a/test/tint/expressions/binary/mod/scalar-scalar/f16.wgsl.expected.ir.dxc.hlsl b/test/tint/expressions/binary/mod/scalar-scalar/f16.wgsl.expected.ir.dxc.hlsl
index db07479..0fb9d68 100644
--- a/test/tint/expressions/binary/mod/scalar-scalar/f16.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/expressions/binary/mod/scalar-scalar/f16.wgsl.expected.ir.dxc.hlsl
@@ -1,7 +1,10 @@
+
 [numthreads(1, 1, 1)]
 void f() {
   float16_t a = float16_t(1.0h);
   float16_t b = float16_t(2.0h);
-  float16_t r = (a % b);
+  float16_t v = (a / b);
+  float16_t v_1 = floor(v);
+  float16_t r = ((a - (((v < float16_t(0.0h))) ? (ceil(v)) : (v_1))) * b);
 }
 
diff --git a/test/tint/expressions/binary/mod/scalar-scalar/f16.wgsl.expected.ir.fxc.hlsl b/test/tint/expressions/binary/mod/scalar-scalar/f16.wgsl.expected.ir.fxc.hlsl
index 01d9071..8e33e6d 100644
--- a/test/tint/expressions/binary/mod/scalar-scalar/f16.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/expressions/binary/mod/scalar-scalar/f16.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,16 @@
 SKIP: FAILED
 
+
 [numthreads(1, 1, 1)]
 void f() {
   float16_t a = float16_t(1.0h);
   float16_t b = float16_t(2.0h);
-  float16_t r = (a % b);
+  float16_t v = (a / b);
+  float16_t v_1 = floor(v);
+  float16_t r = ((a - (((v < float16_t(0.0h))) ? (ceil(v)) : (v_1))) * b);
 }
 
+FXC validation failure:
+c:\src\dawn\Shader@0x000001F522290EF0(4,3-11): error X3000: unrecognized identifier 'float16_t'
+c:\src\dawn\Shader@0x000001F522290EF0(4,13): error X3000: unrecognized identifier 'a'
+
diff --git a/test/tint/expressions/binary/mod/scalar-scalar/f32.wgsl.expected.ir.dxc.hlsl b/test/tint/expressions/binary/mod/scalar-scalar/f32.wgsl.expected.ir.dxc.hlsl
index 741637a..730021d 100644
--- a/test/tint/expressions/binary/mod/scalar-scalar/f32.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/expressions/binary/mod/scalar-scalar/f32.wgsl.expected.ir.dxc.hlsl
@@ -1,7 +1,10 @@
+
 [numthreads(1, 1, 1)]
 void f() {
   float a = 1.0f;
   float b = 2.0f;
-  float r = (a % b);
+  float v = (a / b);
+  float v_1 = floor(v);
+  float r = ((a - (((v < 0.0f)) ? (ceil(v)) : (v_1))) * b);
 }
 
diff --git a/test/tint/expressions/binary/mod/scalar-scalar/f32.wgsl.expected.ir.fxc.hlsl b/test/tint/expressions/binary/mod/scalar-scalar/f32.wgsl.expected.ir.fxc.hlsl
index 97d1104..730021d 100644
--- a/test/tint/expressions/binary/mod/scalar-scalar/f32.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/expressions/binary/mod/scalar-scalar/f32.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,10 @@
-SKIP: FAILED
 
 [numthreads(1, 1, 1)]
 void f() {
   float a = 1.0f;
   float b = 2.0f;
-  float r = (a % b);
+  float v = (a / b);
+  float v_1 = floor(v);
+  float r = ((a - (((v < 0.0f)) ? (ceil(v)) : (v_1))) * b);
 }
 
diff --git a/test/tint/expressions/binary/mod/scalar-scalar/i32.wgsl.expected.ir.dxc.hlsl b/test/tint/expressions/binary/mod/scalar-scalar/i32.wgsl.expected.ir.dxc.hlsl
index 3fd1010..d944b2b4 100644
--- a/test/tint/expressions/binary/mod/scalar-scalar/i32.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/expressions/binary/mod/scalar-scalar/i32.wgsl.expected.ir.dxc.hlsl
@@ -1,7 +1,13 @@
+
+int tint_mod_i32(int lhs, int rhs) {
+  int v = ((((rhs == 0) | ((lhs == -2147483648) & (rhs == -1)))) ? (1) : (rhs));
+  return (lhs - ((lhs / v) * v));
+}
+
 [numthreads(1, 1, 1)]
 void f() {
   int a = 1;
   int b = 2;
-  int r = (a % b);
+  int r = tint_mod_i32(a, b);
 }
 
diff --git a/test/tint/expressions/binary/mod/scalar-scalar/i32.wgsl.expected.ir.fxc.hlsl b/test/tint/expressions/binary/mod/scalar-scalar/i32.wgsl.expected.ir.fxc.hlsl
index 923526b..d944b2b4 100644
--- a/test/tint/expressions/binary/mod/scalar-scalar/i32.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/expressions/binary/mod/scalar-scalar/i32.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,13 @@
-SKIP: FAILED
+
+int tint_mod_i32(int lhs, int rhs) {
+  int v = ((((rhs == 0) | ((lhs == -2147483648) & (rhs == -1)))) ? (1) : (rhs));
+  return (lhs - ((lhs / v) * v));
+}
 
 [numthreads(1, 1, 1)]
 void f() {
   int a = 1;
   int b = 2;
-  int r = (a % b);
+  int r = tint_mod_i32(a, b);
 }
 
diff --git a/test/tint/expressions/binary/mod/scalar-scalar/u32.wgsl.expected.ir.dxc.hlsl b/test/tint/expressions/binary/mod/scalar-scalar/u32.wgsl.expected.ir.dxc.hlsl
index ae41e4c..f744244 100644
--- a/test/tint/expressions/binary/mod/scalar-scalar/u32.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/expressions/binary/mod/scalar-scalar/u32.wgsl.expected.ir.dxc.hlsl
@@ -1,7 +1,13 @@
+
+uint tint_mod_u32(uint lhs, uint rhs) {
+  uint v = (((rhs == 0u)) ? (1u) : (rhs));
+  return (lhs - ((lhs / v) * v));
+}
+
 [numthreads(1, 1, 1)]
 void f() {
   uint a = 1u;
   uint b = 2u;
-  uint r = (a % b);
+  uint r = tint_mod_u32(a, b);
 }
 
diff --git a/test/tint/expressions/binary/mod/scalar-scalar/u32.wgsl.expected.ir.fxc.hlsl b/test/tint/expressions/binary/mod/scalar-scalar/u32.wgsl.expected.ir.fxc.hlsl
index 91c7ddb..f744244 100644
--- a/test/tint/expressions/binary/mod/scalar-scalar/u32.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/expressions/binary/mod/scalar-scalar/u32.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,13 @@
-SKIP: FAILED
+
+uint tint_mod_u32(uint lhs, uint rhs) {
+  uint v = (((rhs == 0u)) ? (1u) : (rhs));
+  return (lhs - ((lhs / v) * v));
+}
 
 [numthreads(1, 1, 1)]
 void f() {
   uint a = 1u;
   uint b = 2u;
-  uint r = (a % b);
+  uint r = tint_mod_u32(a, b);
 }
 
diff --git a/test/tint/expressions/binary/mod/scalar-vec3/f16.wgsl.expected.ir.dxc.hlsl b/test/tint/expressions/binary/mod/scalar-vec3/f16.wgsl.expected.ir.dxc.hlsl
index 3e45357..2612d2b 100644
--- a/test/tint/expressions/binary/mod/scalar-vec3/f16.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/expressions/binary/mod/scalar-vec3/f16.wgsl.expected.ir.dxc.hlsl
@@ -1,7 +1,10 @@
+
 [numthreads(1, 1, 1)]
 void f() {
   float16_t a = float16_t(4.0h);
   vector<float16_t, 3> b = vector<float16_t, 3>(float16_t(1.0h), float16_t(2.0h), float16_t(3.0h));
-  vector<float16_t, 3> r = (a % b);
+  vector<float16_t, 3> v = (a / b);
+  vector<float16_t, 3> v_1 = floor(v);
+  vector<float16_t, 3> r = ((a - (((v < (float16_t(0.0h)).xxx)) ? (ceil(v)) : (v_1))) * b);
 }
 
diff --git a/test/tint/expressions/binary/mod/scalar-vec3/f16.wgsl.expected.ir.fxc.hlsl b/test/tint/expressions/binary/mod/scalar-vec3/f16.wgsl.expected.ir.fxc.hlsl
index afb2259..568a33c 100644
--- a/test/tint/expressions/binary/mod/scalar-vec3/f16.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/expressions/binary/mod/scalar-vec3/f16.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,16 @@
 SKIP: FAILED
 
+
 [numthreads(1, 1, 1)]
 void f() {
   float16_t a = float16_t(4.0h);
   vector<float16_t, 3> b = vector<float16_t, 3>(float16_t(1.0h), float16_t(2.0h), float16_t(3.0h));
-  vector<float16_t, 3> r = (a % b);
+  vector<float16_t, 3> v = (a / b);
+  vector<float16_t, 3> v_1 = floor(v);
+  vector<float16_t, 3> r = ((a - (((v < (float16_t(0.0h)).xxx)) ? (ceil(v)) : (v_1))) * b);
 }
 
+FXC validation failure:
+c:\src\dawn\Shader@0x000001C2DEC879D0(4,3-11): error X3000: unrecognized identifier 'float16_t'
+c:\src\dawn\Shader@0x000001C2DEC879D0(4,13): error X3000: unrecognized identifier 'a'
+
diff --git a/test/tint/expressions/binary/mod/scalar-vec3/f32.wgsl.expected.ir.dxc.hlsl b/test/tint/expressions/binary/mod/scalar-vec3/f32.wgsl.expected.ir.dxc.hlsl
index 298655a..a6cd51c 100644
--- a/test/tint/expressions/binary/mod/scalar-vec3/f32.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/expressions/binary/mod/scalar-vec3/f32.wgsl.expected.ir.dxc.hlsl
@@ -1,7 +1,10 @@
+
 [numthreads(1, 1, 1)]
 void f() {
   float a = 4.0f;
   float3 b = float3(1.0f, 2.0f, 3.0f);
-  float3 r = (a % b);
+  float3 v = (a / b);
+  float3 v_1 = floor(v);
+  float3 r = ((a - (((v < (0.0f).xxx)) ? (ceil(v)) : (v_1))) * b);
 }
 
diff --git a/test/tint/expressions/binary/mod/scalar-vec3/f32.wgsl.expected.ir.fxc.hlsl b/test/tint/expressions/binary/mod/scalar-vec3/f32.wgsl.expected.ir.fxc.hlsl
index 8ffa4a8..a6cd51c 100644
--- a/test/tint/expressions/binary/mod/scalar-vec3/f32.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/expressions/binary/mod/scalar-vec3/f32.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,10 @@
-SKIP: FAILED
 
 [numthreads(1, 1, 1)]
 void f() {
   float a = 4.0f;
   float3 b = float3(1.0f, 2.0f, 3.0f);
-  float3 r = (a % b);
+  float3 v = (a / b);
+  float3 v_1 = floor(v);
+  float3 r = ((a - (((v < (0.0f).xxx)) ? (ceil(v)) : (v_1))) * b);
 }
 
diff --git a/test/tint/expressions/binary/mod/scalar-vec3/i32.wgsl.expected.ir.dxc.hlsl b/test/tint/expressions/binary/mod/scalar-vec3/i32.wgsl.expected.ir.dxc.hlsl
index 27b2396..c140d74 100644
--- a/test/tint/expressions/binary/mod/scalar-vec3/i32.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/expressions/binary/mod/scalar-vec3/i32.wgsl.expected.ir.dxc.hlsl
@@ -1,7 +1,13 @@
+
+int3 tint_mod_v3i32(int3 lhs, int3 rhs) {
+  int3 v = ((((rhs == (0).xxx) | ((lhs == (-2147483648).xxx) & (rhs == (-1).xxx)))) ? ((1).xxx) : (rhs));
+  return (lhs - ((lhs / v) * v));
+}
+
 [numthreads(1, 1, 1)]
 void f() {
   int a = 4;
   int3 b = int3(1, 2, 3);
-  int3 r = (a % b);
+  int3 r = tint_mod_v3i32(int3((a).xxx), b);
 }
 
diff --git a/test/tint/expressions/binary/mod/scalar-vec3/i32.wgsl.expected.ir.fxc.hlsl b/test/tint/expressions/binary/mod/scalar-vec3/i32.wgsl.expected.ir.fxc.hlsl
index f1da513..c140d74 100644
--- a/test/tint/expressions/binary/mod/scalar-vec3/i32.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/expressions/binary/mod/scalar-vec3/i32.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,13 @@
-SKIP: FAILED
+
+int3 tint_mod_v3i32(int3 lhs, int3 rhs) {
+  int3 v = ((((rhs == (0).xxx) | ((lhs == (-2147483648).xxx) & (rhs == (-1).xxx)))) ? ((1).xxx) : (rhs));
+  return (lhs - ((lhs / v) * v));
+}
 
 [numthreads(1, 1, 1)]
 void f() {
   int a = 4;
   int3 b = int3(1, 2, 3);
-  int3 r = (a % b);
+  int3 r = tint_mod_v3i32(int3((a).xxx), b);
 }
 
diff --git a/test/tint/expressions/binary/mod/scalar-vec3/u32.wgsl.expected.ir.dxc.hlsl b/test/tint/expressions/binary/mod/scalar-vec3/u32.wgsl.expected.ir.dxc.hlsl
index fcc6eb5..606c3cc 100644
--- a/test/tint/expressions/binary/mod/scalar-vec3/u32.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/expressions/binary/mod/scalar-vec3/u32.wgsl.expected.ir.dxc.hlsl
@@ -1,7 +1,13 @@
+
+uint3 tint_mod_v3u32(uint3 lhs, uint3 rhs) {
+  uint3 v = (((rhs == (0u).xxx)) ? ((1u).xxx) : (rhs));
+  return (lhs - ((lhs / v) * v));
+}
+
 [numthreads(1, 1, 1)]
 void f() {
   uint a = 4u;
   uint3 b = uint3(1u, 2u, 3u);
-  uint3 r = (a % b);
+  uint3 r = tint_mod_v3u32(uint3((a).xxx), b);
 }
 
diff --git a/test/tint/expressions/binary/mod/scalar-vec3/u32.wgsl.expected.ir.fxc.hlsl b/test/tint/expressions/binary/mod/scalar-vec3/u32.wgsl.expected.ir.fxc.hlsl
index f8c3056..606c3cc 100644
--- a/test/tint/expressions/binary/mod/scalar-vec3/u32.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/expressions/binary/mod/scalar-vec3/u32.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,13 @@
-SKIP: FAILED
+
+uint3 tint_mod_v3u32(uint3 lhs, uint3 rhs) {
+  uint3 v = (((rhs == (0u).xxx)) ? ((1u).xxx) : (rhs));
+  return (lhs - ((lhs / v) * v));
+}
 
 [numthreads(1, 1, 1)]
 void f() {
   uint a = 4u;
   uint3 b = uint3(1u, 2u, 3u);
-  uint3 r = (a % b);
+  uint3 r = tint_mod_v3u32(uint3((a).xxx), b);
 }
 
diff --git a/test/tint/expressions/binary/mod/vec3-scalar/f16.wgsl.expected.ir.dxc.hlsl b/test/tint/expressions/binary/mod/vec3-scalar/f16.wgsl.expected.ir.dxc.hlsl
index 060fbd0..a84f8bd 100644
--- a/test/tint/expressions/binary/mod/vec3-scalar/f16.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/expressions/binary/mod/vec3-scalar/f16.wgsl.expected.ir.dxc.hlsl
@@ -1,7 +1,10 @@
+
 [numthreads(1, 1, 1)]
 void f() {
   vector<float16_t, 3> a = vector<float16_t, 3>(float16_t(1.0h), float16_t(2.0h), float16_t(3.0h));
   float16_t b = float16_t(4.0h);
-  vector<float16_t, 3> r = (a % b);
+  vector<float16_t, 3> v = (a / b);
+  vector<float16_t, 3> v_1 = floor(v);
+  vector<float16_t, 3> r = ((a - (((v < (float16_t(0.0h)).xxx)) ? (ceil(v)) : (v_1))) * b);
 }
 
diff --git a/test/tint/expressions/binary/mod/vec3-scalar/f16.wgsl.expected.ir.fxc.hlsl b/test/tint/expressions/binary/mod/vec3-scalar/f16.wgsl.expected.ir.fxc.hlsl
index 42b1687..88ef743 100644
--- a/test/tint/expressions/binary/mod/vec3-scalar/f16.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/expressions/binary/mod/vec3-scalar/f16.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,17 @@
 SKIP: FAILED
 
+
 [numthreads(1, 1, 1)]
 void f() {
   vector<float16_t, 3> a = vector<float16_t, 3>(float16_t(1.0h), float16_t(2.0h), float16_t(3.0h));
   float16_t b = float16_t(4.0h);
-  vector<float16_t, 3> r = (a % b);
+  vector<float16_t, 3> v = (a / b);
+  vector<float16_t, 3> v_1 = floor(v);
+  vector<float16_t, 3> r = ((a - (((v < (float16_t(0.0h)).xxx)) ? (ceil(v)) : (v_1))) * b);
 }
 
+FXC validation failure:
+c:\src\dawn\Shader@0x000002B384380660(4,10-18): error X3000: syntax error: unexpected token 'float16_t'
+c:\src\dawn\Shader@0x000002B384380660(5,3-11): error X3000: unrecognized identifier 'float16_t'
+c:\src\dawn\Shader@0x000002B384380660(5,13): error X3000: unrecognized identifier 'b'
+
diff --git a/test/tint/expressions/binary/mod/vec3-scalar/f32.wgsl.expected.ir.dxc.hlsl b/test/tint/expressions/binary/mod/vec3-scalar/f32.wgsl.expected.ir.dxc.hlsl
index b1ec1af..6823cf2 100644
--- a/test/tint/expressions/binary/mod/vec3-scalar/f32.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/expressions/binary/mod/vec3-scalar/f32.wgsl.expected.ir.dxc.hlsl
@@ -1,7 +1,10 @@
+
 [numthreads(1, 1, 1)]
 void f() {
   float3 a = float3(1.0f, 2.0f, 3.0f);
   float b = 4.0f;
-  float3 r = (a % b);
+  float3 v = (a / b);
+  float3 v_1 = floor(v);
+  float3 r = ((a - (((v < (0.0f).xxx)) ? (ceil(v)) : (v_1))) * b);
 }
 
diff --git a/test/tint/expressions/binary/mod/vec3-scalar/f32.wgsl.expected.ir.fxc.hlsl b/test/tint/expressions/binary/mod/vec3-scalar/f32.wgsl.expected.ir.fxc.hlsl
index 7539b1e..6823cf2 100644
--- a/test/tint/expressions/binary/mod/vec3-scalar/f32.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/expressions/binary/mod/vec3-scalar/f32.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,10 @@
-SKIP: FAILED
 
 [numthreads(1, 1, 1)]
 void f() {
   float3 a = float3(1.0f, 2.0f, 3.0f);
   float b = 4.0f;
-  float3 r = (a % b);
+  float3 v = (a / b);
+  float3 v_1 = floor(v);
+  float3 r = ((a - (((v < (0.0f).xxx)) ? (ceil(v)) : (v_1))) * b);
 }
 
diff --git a/test/tint/expressions/binary/mod/vec3-scalar/i32.wgsl.expected.ir.dxc.hlsl b/test/tint/expressions/binary/mod/vec3-scalar/i32.wgsl.expected.ir.dxc.hlsl
index 413bbeb..f80fafb 100644
--- a/test/tint/expressions/binary/mod/vec3-scalar/i32.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/expressions/binary/mod/vec3-scalar/i32.wgsl.expected.ir.dxc.hlsl
@@ -1,7 +1,13 @@
+
+int3 tint_mod_v3i32(int3 lhs, int3 rhs) {
+  int3 v = ((((rhs == (0).xxx) | ((lhs == (-2147483648).xxx) & (rhs == (-1).xxx)))) ? ((1).xxx) : (rhs));
+  return (lhs - ((lhs / v) * v));
+}
+
 [numthreads(1, 1, 1)]
 void f() {
   int3 a = int3(1, 2, 3);
   int b = 4;
-  int3 r = (a % b);
+  int3 r = tint_mod_v3i32(a, int3((b).xxx));
 }
 
diff --git a/test/tint/expressions/binary/mod/vec3-scalar/i32.wgsl.expected.ir.fxc.hlsl b/test/tint/expressions/binary/mod/vec3-scalar/i32.wgsl.expected.ir.fxc.hlsl
index 16be4c7..f80fafb 100644
--- a/test/tint/expressions/binary/mod/vec3-scalar/i32.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/expressions/binary/mod/vec3-scalar/i32.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,13 @@
-SKIP: FAILED
+
+int3 tint_mod_v3i32(int3 lhs, int3 rhs) {
+  int3 v = ((((rhs == (0).xxx) | ((lhs == (-2147483648).xxx) & (rhs == (-1).xxx)))) ? ((1).xxx) : (rhs));
+  return (lhs - ((lhs / v) * v));
+}
 
 [numthreads(1, 1, 1)]
 void f() {
   int3 a = int3(1, 2, 3);
   int b = 4;
-  int3 r = (a % b);
+  int3 r = tint_mod_v3i32(a, int3((b).xxx));
 }
 
diff --git a/test/tint/expressions/binary/mod/vec3-scalar/u32.wgsl.expected.ir.dxc.hlsl b/test/tint/expressions/binary/mod/vec3-scalar/u32.wgsl.expected.ir.dxc.hlsl
index f7239d9..396f722 100644
--- a/test/tint/expressions/binary/mod/vec3-scalar/u32.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/expressions/binary/mod/vec3-scalar/u32.wgsl.expected.ir.dxc.hlsl
@@ -1,7 +1,13 @@
+
+uint3 tint_mod_v3u32(uint3 lhs, uint3 rhs) {
+  uint3 v = (((rhs == (0u).xxx)) ? ((1u).xxx) : (rhs));
+  return (lhs - ((lhs / v) * v));
+}
+
 [numthreads(1, 1, 1)]
 void f() {
   uint3 a = uint3(1u, 2u, 3u);
   uint b = 4u;
-  uint3 r = (a % b);
+  uint3 r = tint_mod_v3u32(a, uint3((b).xxx));
 }
 
diff --git a/test/tint/expressions/binary/mod/vec3-scalar/u32.wgsl.expected.ir.fxc.hlsl b/test/tint/expressions/binary/mod/vec3-scalar/u32.wgsl.expected.ir.fxc.hlsl
index 6b0496e..396f722 100644
--- a/test/tint/expressions/binary/mod/vec3-scalar/u32.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/expressions/binary/mod/vec3-scalar/u32.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,13 @@
-SKIP: FAILED
+
+uint3 tint_mod_v3u32(uint3 lhs, uint3 rhs) {
+  uint3 v = (((rhs == (0u).xxx)) ? ((1u).xxx) : (rhs));
+  return (lhs - ((lhs / v) * v));
+}
 
 [numthreads(1, 1, 1)]
 void f() {
   uint3 a = uint3(1u, 2u, 3u);
   uint b = 4u;
-  uint3 r = (a % b);
+  uint3 r = tint_mod_v3u32(a, uint3((b).xxx));
 }
 
diff --git a/test/tint/expressions/binary/mod/vec3-vec3/f16.wgsl.expected.ir.dxc.hlsl b/test/tint/expressions/binary/mod/vec3-vec3/f16.wgsl.expected.ir.dxc.hlsl
index 5793a24..d19be8b 100644
--- a/test/tint/expressions/binary/mod/vec3-vec3/f16.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/expressions/binary/mod/vec3-vec3/f16.wgsl.expected.ir.dxc.hlsl
@@ -1,7 +1,10 @@
+
 [numthreads(1, 1, 1)]
 void f() {
   vector<float16_t, 3> a = vector<float16_t, 3>(float16_t(1.0h), float16_t(2.0h), float16_t(3.0h));
   vector<float16_t, 3> b = vector<float16_t, 3>(float16_t(4.0h), float16_t(5.0h), float16_t(6.0h));
-  vector<float16_t, 3> r = (a % b);
+  vector<float16_t, 3> v = (a / b);
+  vector<float16_t, 3> v_1 = floor(v);
+  vector<float16_t, 3> r = ((a - (((v < (float16_t(0.0h)).xxx)) ? (ceil(v)) : (v_1))) * b);
 }
 
diff --git a/test/tint/expressions/binary/mod/vec3-vec3/f16.wgsl.expected.ir.fxc.hlsl b/test/tint/expressions/binary/mod/vec3-vec3/f16.wgsl.expected.ir.fxc.hlsl
index f1ffe76..b01fcf1 100644
--- a/test/tint/expressions/binary/mod/vec3-vec3/f16.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/expressions/binary/mod/vec3-vec3/f16.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,19 @@
 SKIP: FAILED
 
+
 [numthreads(1, 1, 1)]
 void f() {
   vector<float16_t, 3> a = vector<float16_t, 3>(float16_t(1.0h), float16_t(2.0h), float16_t(3.0h));
   vector<float16_t, 3> b = vector<float16_t, 3>(float16_t(4.0h), float16_t(5.0h), float16_t(6.0h));
-  vector<float16_t, 3> r = (a % b);
+  vector<float16_t, 3> v = (a / b);
+  vector<float16_t, 3> v_1 = floor(v);
+  vector<float16_t, 3> r = ((a - (((v < (float16_t(0.0h)).xxx)) ? (ceil(v)) : (v_1))) * b);
 }
 
+FXC validation failure:
+c:\src\dawn\Shader@0x000001FC4D7F4BA0(4,10-18): error X3000: syntax error: unexpected token 'float16_t'
+c:\src\dawn\Shader@0x000001FC4D7F4BA0(5,10-18): error X3000: syntax error: unexpected token 'float16_t'
+c:\src\dawn\Shader@0x000001FC4D7F4BA0(6,10-18): error X3000: syntax error: unexpected token 'float16_t'
+c:\src\dawn\Shader@0x000001FC4D7F4BA0(7,10-18): error X3000: syntax error: unexpected token 'float16_t'
+c:\src\dawn\Shader@0x000001FC4D7F4BA0(8,10-18): error X3000: syntax error: unexpected token 'float16_t'
+
diff --git a/test/tint/expressions/binary/mod/vec3-vec3/f32.wgsl.expected.ir.dxc.hlsl b/test/tint/expressions/binary/mod/vec3-vec3/f32.wgsl.expected.ir.dxc.hlsl
index b1cb80d..6cccbf8 100644
--- a/test/tint/expressions/binary/mod/vec3-vec3/f32.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/expressions/binary/mod/vec3-vec3/f32.wgsl.expected.ir.dxc.hlsl
@@ -1,7 +1,10 @@
+
 [numthreads(1, 1, 1)]
 void f() {
   float3 a = float3(1.0f, 2.0f, 3.0f);
   float3 b = float3(4.0f, 5.0f, 6.0f);
-  float3 r = (a % b);
+  float3 v = (a / b);
+  float3 v_1 = floor(v);
+  float3 r = ((a - (((v < (0.0f).xxx)) ? (ceil(v)) : (v_1))) * b);
 }
 
diff --git a/test/tint/expressions/binary/mod/vec3-vec3/f32.wgsl.expected.ir.fxc.hlsl b/test/tint/expressions/binary/mod/vec3-vec3/f32.wgsl.expected.ir.fxc.hlsl
index c4c7d49..6cccbf8 100644
--- a/test/tint/expressions/binary/mod/vec3-vec3/f32.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/expressions/binary/mod/vec3-vec3/f32.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,10 @@
-SKIP: FAILED
 
 [numthreads(1, 1, 1)]
 void f() {
   float3 a = float3(1.0f, 2.0f, 3.0f);
   float3 b = float3(4.0f, 5.0f, 6.0f);
-  float3 r = (a % b);
+  float3 v = (a / b);
+  float3 v_1 = floor(v);
+  float3 r = ((a - (((v < (0.0f).xxx)) ? (ceil(v)) : (v_1))) * b);
 }
 
diff --git a/test/tint/expressions/binary/mod/vec3-vec3/i32.wgsl.expected.ir.dxc.hlsl b/test/tint/expressions/binary/mod/vec3-vec3/i32.wgsl.expected.ir.dxc.hlsl
index c6fcc05..0121842 100644
--- a/test/tint/expressions/binary/mod/vec3-vec3/i32.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/expressions/binary/mod/vec3-vec3/i32.wgsl.expected.ir.dxc.hlsl
@@ -1,7 +1,13 @@
+
+int3 tint_mod_v3i32(int3 lhs, int3 rhs) {
+  int3 v = ((((rhs == (0).xxx) | ((lhs == (-2147483648).xxx) & (rhs == (-1).xxx)))) ? ((1).xxx) : (rhs));
+  return (lhs - ((lhs / v) * v));
+}
+
 [numthreads(1, 1, 1)]
 void f() {
   int3 a = int3(1, 2, 3);
   int3 b = int3(4, 5, 6);
-  int3 r = (a % b);
+  int3 r = tint_mod_v3i32(a, b);
 }
 
diff --git a/test/tint/expressions/binary/mod/vec3-vec3/i32.wgsl.expected.ir.fxc.hlsl b/test/tint/expressions/binary/mod/vec3-vec3/i32.wgsl.expected.ir.fxc.hlsl
index dfd3956..0121842 100644
--- a/test/tint/expressions/binary/mod/vec3-vec3/i32.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/expressions/binary/mod/vec3-vec3/i32.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,13 @@
-SKIP: FAILED
+
+int3 tint_mod_v3i32(int3 lhs, int3 rhs) {
+  int3 v = ((((rhs == (0).xxx) | ((lhs == (-2147483648).xxx) & (rhs == (-1).xxx)))) ? ((1).xxx) : (rhs));
+  return (lhs - ((lhs / v) * v));
+}
 
 [numthreads(1, 1, 1)]
 void f() {
   int3 a = int3(1, 2, 3);
   int3 b = int3(4, 5, 6);
-  int3 r = (a % b);
+  int3 r = tint_mod_v3i32(a, b);
 }
 
diff --git a/test/tint/expressions/binary/mod/vec3-vec3/u32.wgsl.expected.ir.dxc.hlsl b/test/tint/expressions/binary/mod/vec3-vec3/u32.wgsl.expected.ir.dxc.hlsl
index ed2b708..3edbbe1 100644
--- a/test/tint/expressions/binary/mod/vec3-vec3/u32.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/expressions/binary/mod/vec3-vec3/u32.wgsl.expected.ir.dxc.hlsl
@@ -1,7 +1,13 @@
+
+uint3 tint_mod_v3u32(uint3 lhs, uint3 rhs) {
+  uint3 v = (((rhs == (0u).xxx)) ? ((1u).xxx) : (rhs));
+  return (lhs - ((lhs / v) * v));
+}
+
 [numthreads(1, 1, 1)]
 void f() {
   uint3 a = uint3(1u, 2u, 3u);
   uint3 b = uint3(4u, 5u, 6u);
-  uint3 r = (a % b);
+  uint3 r = tint_mod_v3u32(a, b);
 }
 
diff --git a/test/tint/expressions/binary/mod/vec3-vec3/u32.wgsl.expected.ir.fxc.hlsl b/test/tint/expressions/binary/mod/vec3-vec3/u32.wgsl.expected.ir.fxc.hlsl
index f175e28..3edbbe1 100644
--- a/test/tint/expressions/binary/mod/vec3-vec3/u32.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/expressions/binary/mod/vec3-vec3/u32.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,13 @@
-SKIP: FAILED
+
+uint3 tint_mod_v3u32(uint3 lhs, uint3 rhs) {
+  uint3 v = (((rhs == (0u).xxx)) ? ((1u).xxx) : (rhs));
+  return (lhs - ((lhs / v) * v));
+}
 
 [numthreads(1, 1, 1)]
 void f() {
   uint3 a = uint3(1u, 2u, 3u);
   uint3 b = uint3(4u, 5u, 6u);
-  uint3 r = (a % b);
+  uint3 r = tint_mod_v3u32(a, b);
 }
 
diff --git a/test/tint/expressions/binary/mod_by_zero/by_constant/scalar-scalar/f16.wgsl.expected.ir.dxc.hlsl b/test/tint/expressions/binary/mod_by_zero/by_constant/scalar-scalar/f16.wgsl.expected.ir.dxc.hlsl
index b9fa939..15885e9 100644
--- a/test/tint/expressions/binary/mod_by_zero/by_constant/scalar-scalar/f16.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/expressions/binary/mod_by_zero/by_constant/scalar-scalar/f16.wgsl.expected.ir.dxc.hlsl
@@ -1,7 +1,10 @@
+
 [numthreads(1, 1, 1)]
 void f() {
   float16_t a = float16_t(1.0h);
   float16_t b = float16_t(0.0h);
-  float16_t r = (a % b);
+  float16_t v = (a / b);
+  float16_t v_1 = floor(v);
+  float16_t r = ((a - (((v < float16_t(0.0h))) ? (ceil(v)) : (v_1))) * b);
 }
 
diff --git a/test/tint/expressions/binary/mod_by_zero/by_constant/scalar-scalar/f16.wgsl.expected.ir.fxc.hlsl b/test/tint/expressions/binary/mod_by_zero/by_constant/scalar-scalar/f16.wgsl.expected.ir.fxc.hlsl
index f6c952d..c8a28f0 100644
--- a/test/tint/expressions/binary/mod_by_zero/by_constant/scalar-scalar/f16.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/expressions/binary/mod_by_zero/by_constant/scalar-scalar/f16.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,16 @@
 SKIP: FAILED
 
+
 [numthreads(1, 1, 1)]
 void f() {
   float16_t a = float16_t(1.0h);
   float16_t b = float16_t(0.0h);
-  float16_t r = (a % b);
+  float16_t v = (a / b);
+  float16_t v_1 = floor(v);
+  float16_t r = ((a - (((v < float16_t(0.0h))) ? (ceil(v)) : (v_1))) * b);
 }
 
+FXC validation failure:
+c:\src\dawn\Shader@0x000001B14E4A0130(4,3-11): error X3000: unrecognized identifier 'float16_t'
+c:\src\dawn\Shader@0x000001B14E4A0130(4,13): error X3000: unrecognized identifier 'a'
+
diff --git a/test/tint/expressions/binary/mod_by_zero/by_constant/scalar-scalar/f32.wgsl.expected.ir.dxc.hlsl b/test/tint/expressions/binary/mod_by_zero/by_constant/scalar-scalar/f32.wgsl.expected.ir.dxc.hlsl
index 6c4c62f..6b72400 100644
--- a/test/tint/expressions/binary/mod_by_zero/by_constant/scalar-scalar/f32.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/expressions/binary/mod_by_zero/by_constant/scalar-scalar/f32.wgsl.expected.ir.dxc.hlsl
@@ -1,7 +1,10 @@
+
 [numthreads(1, 1, 1)]
 void f() {
   float a = 1.0f;
   float b = 0.0f;
-  float r = (a % b);
+  float v = (a / b);
+  float v_1 = floor(v);
+  float r = ((a - (((v < 0.0f)) ? (ceil(v)) : (v_1))) * b);
 }
 
diff --git a/test/tint/expressions/binary/mod_by_zero/by_constant/scalar-scalar/f32.wgsl.expected.ir.fxc.hlsl b/test/tint/expressions/binary/mod_by_zero/by_constant/scalar-scalar/f32.wgsl.expected.ir.fxc.hlsl
index 1161a4d..6b72400 100644
--- a/test/tint/expressions/binary/mod_by_zero/by_constant/scalar-scalar/f32.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/expressions/binary/mod_by_zero/by_constant/scalar-scalar/f32.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,10 @@
-SKIP: FAILED
 
 [numthreads(1, 1, 1)]
 void f() {
   float a = 1.0f;
   float b = 0.0f;
-  float r = (a % b);
+  float v = (a / b);
+  float v_1 = floor(v);
+  float r = ((a - (((v < 0.0f)) ? (ceil(v)) : (v_1))) * b);
 }
 
diff --git a/test/tint/expressions/binary/mod_by_zero/by_constant/scalar-scalar/i32.wgsl.expected.ir.dxc.hlsl b/test/tint/expressions/binary/mod_by_zero/by_constant/scalar-scalar/i32.wgsl.expected.ir.dxc.hlsl
index 320a231..f9d6cf1 100644
--- a/test/tint/expressions/binary/mod_by_zero/by_constant/scalar-scalar/i32.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/expressions/binary/mod_by_zero/by_constant/scalar-scalar/i32.wgsl.expected.ir.dxc.hlsl
@@ -1,7 +1,13 @@
+
+int tint_mod_i32(int lhs, int rhs) {
+  int v = ((((rhs == 0) | ((lhs == -2147483648) & (rhs == -1)))) ? (1) : (rhs));
+  return (lhs - ((lhs / v) * v));
+}
+
 [numthreads(1, 1, 1)]
 void f() {
   int a = 1;
   int b = 0;
-  int r = (a % b);
+  int r = tint_mod_i32(a, b);
 }
 
diff --git a/test/tint/expressions/binary/mod_by_zero/by_constant/scalar-scalar/i32.wgsl.expected.ir.fxc.hlsl b/test/tint/expressions/binary/mod_by_zero/by_constant/scalar-scalar/i32.wgsl.expected.ir.fxc.hlsl
index 7d2af9c..f9d6cf1 100644
--- a/test/tint/expressions/binary/mod_by_zero/by_constant/scalar-scalar/i32.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/expressions/binary/mod_by_zero/by_constant/scalar-scalar/i32.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,13 @@
-SKIP: FAILED
+
+int tint_mod_i32(int lhs, int rhs) {
+  int v = ((((rhs == 0) | ((lhs == -2147483648) & (rhs == -1)))) ? (1) : (rhs));
+  return (lhs - ((lhs / v) * v));
+}
 
 [numthreads(1, 1, 1)]
 void f() {
   int a = 1;
   int b = 0;
-  int r = (a % b);
+  int r = tint_mod_i32(a, b);
 }
 
diff --git a/test/tint/expressions/binary/mod_by_zero/by_constant/scalar-scalar/u32.wgsl.expected.ir.dxc.hlsl b/test/tint/expressions/binary/mod_by_zero/by_constant/scalar-scalar/u32.wgsl.expected.ir.dxc.hlsl
index bfa6559..64787d6 100644
--- a/test/tint/expressions/binary/mod_by_zero/by_constant/scalar-scalar/u32.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/expressions/binary/mod_by_zero/by_constant/scalar-scalar/u32.wgsl.expected.ir.dxc.hlsl
@@ -1,7 +1,13 @@
+
+uint tint_mod_u32(uint lhs, uint rhs) {
+  uint v = (((rhs == 0u)) ? (1u) : (rhs));
+  return (lhs - ((lhs / v) * v));
+}
+
 [numthreads(1, 1, 1)]
 void f() {
   uint a = 1u;
   uint b = 0u;
-  uint r = (a % b);
+  uint r = tint_mod_u32(a, b);
 }
 
diff --git a/test/tint/expressions/binary/mod_by_zero/by_constant/scalar-scalar/u32.wgsl.expected.ir.fxc.hlsl b/test/tint/expressions/binary/mod_by_zero/by_constant/scalar-scalar/u32.wgsl.expected.ir.fxc.hlsl
index c769a4b..64787d6 100644
--- a/test/tint/expressions/binary/mod_by_zero/by_constant/scalar-scalar/u32.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/expressions/binary/mod_by_zero/by_constant/scalar-scalar/u32.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,13 @@
-SKIP: FAILED
+
+uint tint_mod_u32(uint lhs, uint rhs) {
+  uint v = (((rhs == 0u)) ? (1u) : (rhs));
+  return (lhs - ((lhs / v) * v));
+}
 
 [numthreads(1, 1, 1)]
 void f() {
   uint a = 1u;
   uint b = 0u;
-  uint r = (a % b);
+  uint r = tint_mod_u32(a, b);
 }
 
diff --git a/test/tint/expressions/binary/mod_by_zero/by_constant/scalar-vec3/i32.wgsl.expected.ir.dxc.hlsl b/test/tint/expressions/binary/mod_by_zero/by_constant/scalar-vec3/i32.wgsl.expected.ir.dxc.hlsl
index cdb2e48..e8384fb 100644
--- a/test/tint/expressions/binary/mod_by_zero/by_constant/scalar-vec3/i32.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/expressions/binary/mod_by_zero/by_constant/scalar-vec3/i32.wgsl.expected.ir.dxc.hlsl
@@ -1,7 +1,13 @@
+
+int3 tint_mod_v3i32(int3 lhs, int3 rhs) {
+  int3 v = ((((rhs == (0).xxx) | ((lhs == (-2147483648).xxx) & (rhs == (-1).xxx)))) ? ((1).xxx) : (rhs));
+  return (lhs - ((lhs / v) * v));
+}
+
 [numthreads(1, 1, 1)]
 void f() {
   int a = 4;
   int3 b = int3(0, 2, 0);
-  int3 r = (a % b);
+  int3 r = tint_mod_v3i32(int3((a).xxx), b);
 }
 
diff --git a/test/tint/expressions/binary/mod_by_zero/by_constant/scalar-vec3/i32.wgsl.expected.ir.fxc.hlsl b/test/tint/expressions/binary/mod_by_zero/by_constant/scalar-vec3/i32.wgsl.expected.ir.fxc.hlsl
index 64e9d3f..e8384fb 100644
--- a/test/tint/expressions/binary/mod_by_zero/by_constant/scalar-vec3/i32.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/expressions/binary/mod_by_zero/by_constant/scalar-vec3/i32.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,13 @@
-SKIP: FAILED
+
+int3 tint_mod_v3i32(int3 lhs, int3 rhs) {
+  int3 v = ((((rhs == (0).xxx) | ((lhs == (-2147483648).xxx) & (rhs == (-1).xxx)))) ? ((1).xxx) : (rhs));
+  return (lhs - ((lhs / v) * v));
+}
 
 [numthreads(1, 1, 1)]
 void f() {
   int a = 4;
   int3 b = int3(0, 2, 0);
-  int3 r = (a % b);
+  int3 r = tint_mod_v3i32(int3((a).xxx), b);
 }
 
diff --git a/test/tint/expressions/binary/mod_by_zero/by_constant/scalar-vec3/u32.wgsl.expected.ir.dxc.hlsl b/test/tint/expressions/binary/mod_by_zero/by_constant/scalar-vec3/u32.wgsl.expected.ir.dxc.hlsl
index b0aa1da..0082d6c 100644
--- a/test/tint/expressions/binary/mod_by_zero/by_constant/scalar-vec3/u32.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/expressions/binary/mod_by_zero/by_constant/scalar-vec3/u32.wgsl.expected.ir.dxc.hlsl
@@ -1,7 +1,13 @@
+
+uint3 tint_mod_v3u32(uint3 lhs, uint3 rhs) {
+  uint3 v = (((rhs == (0u).xxx)) ? ((1u).xxx) : (rhs));
+  return (lhs - ((lhs / v) * v));
+}
+
 [numthreads(1, 1, 1)]
 void f() {
   uint a = 4u;
   uint3 b = uint3(0u, 2u, 0u);
-  uint3 r = (a % b);
+  uint3 r = tint_mod_v3u32(uint3((a).xxx), b);
 }
 
diff --git a/test/tint/expressions/binary/mod_by_zero/by_constant/scalar-vec3/u32.wgsl.expected.ir.fxc.hlsl b/test/tint/expressions/binary/mod_by_zero/by_constant/scalar-vec3/u32.wgsl.expected.ir.fxc.hlsl
index 32628d0..0082d6c 100644
--- a/test/tint/expressions/binary/mod_by_zero/by_constant/scalar-vec3/u32.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/expressions/binary/mod_by_zero/by_constant/scalar-vec3/u32.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,13 @@
-SKIP: FAILED
+
+uint3 tint_mod_v3u32(uint3 lhs, uint3 rhs) {
+  uint3 v = (((rhs == (0u).xxx)) ? ((1u).xxx) : (rhs));
+  return (lhs - ((lhs / v) * v));
+}
 
 [numthreads(1, 1, 1)]
 void f() {
   uint a = 4u;
   uint3 b = uint3(0u, 2u, 0u);
-  uint3 r = (a % b);
+  uint3 r = tint_mod_v3u32(uint3((a).xxx), b);
 }
 
diff --git a/test/tint/expressions/binary/mod_by_zero/by_constant/vec3-scalar/i32.wgsl.expected.ir.dxc.hlsl b/test/tint/expressions/binary/mod_by_zero/by_constant/vec3-scalar/i32.wgsl.expected.ir.dxc.hlsl
index 2abf478..5444362 100644
--- a/test/tint/expressions/binary/mod_by_zero/by_constant/vec3-scalar/i32.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/expressions/binary/mod_by_zero/by_constant/vec3-scalar/i32.wgsl.expected.ir.dxc.hlsl
@@ -1,7 +1,13 @@
+
+int3 tint_mod_v3i32(int3 lhs, int3 rhs) {
+  int3 v = ((((rhs == (0).xxx) | ((lhs == (-2147483648).xxx) & (rhs == (-1).xxx)))) ? ((1).xxx) : (rhs));
+  return (lhs - ((lhs / v) * v));
+}
+
 [numthreads(1, 1, 1)]
 void f() {
   int3 a = int3(1, 2, 3);
   int b = 0;
-  int3 r = (a % b);
+  int3 r = tint_mod_v3i32(a, int3((b).xxx));
 }
 
diff --git a/test/tint/expressions/binary/mod_by_zero/by_constant/vec3-scalar/i32.wgsl.expected.ir.fxc.hlsl b/test/tint/expressions/binary/mod_by_zero/by_constant/vec3-scalar/i32.wgsl.expected.ir.fxc.hlsl
index aa7c589..5444362 100644
--- a/test/tint/expressions/binary/mod_by_zero/by_constant/vec3-scalar/i32.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/expressions/binary/mod_by_zero/by_constant/vec3-scalar/i32.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,13 @@
-SKIP: FAILED
+
+int3 tint_mod_v3i32(int3 lhs, int3 rhs) {
+  int3 v = ((((rhs == (0).xxx) | ((lhs == (-2147483648).xxx) & (rhs == (-1).xxx)))) ? ((1).xxx) : (rhs));
+  return (lhs - ((lhs / v) * v));
+}
 
 [numthreads(1, 1, 1)]
 void f() {
   int3 a = int3(1, 2, 3);
   int b = 0;
-  int3 r = (a % b);
+  int3 r = tint_mod_v3i32(a, int3((b).xxx));
 }
 
diff --git a/test/tint/expressions/binary/mod_by_zero/by_constant/vec3-scalar/u32.wgsl.expected.ir.dxc.hlsl b/test/tint/expressions/binary/mod_by_zero/by_constant/vec3-scalar/u32.wgsl.expected.ir.dxc.hlsl
index b0e87fb..b4c6347 100644
--- a/test/tint/expressions/binary/mod_by_zero/by_constant/vec3-scalar/u32.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/expressions/binary/mod_by_zero/by_constant/vec3-scalar/u32.wgsl.expected.ir.dxc.hlsl
@@ -1,7 +1,13 @@
+
+uint3 tint_mod_v3u32(uint3 lhs, uint3 rhs) {
+  uint3 v = (((rhs == (0u).xxx)) ? ((1u).xxx) : (rhs));
+  return (lhs - ((lhs / v) * v));
+}
+
 [numthreads(1, 1, 1)]
 void f() {
   uint3 a = uint3(1u, 2u, 3u);
   uint b = 0u;
-  uint3 r = (a % b);
+  uint3 r = tint_mod_v3u32(a, uint3((b).xxx));
 }
 
diff --git a/test/tint/expressions/binary/mod_by_zero/by_constant/vec3-scalar/u32.wgsl.expected.ir.fxc.hlsl b/test/tint/expressions/binary/mod_by_zero/by_constant/vec3-scalar/u32.wgsl.expected.ir.fxc.hlsl
index ce4c2d1..b4c6347 100644
--- a/test/tint/expressions/binary/mod_by_zero/by_constant/vec3-scalar/u32.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/expressions/binary/mod_by_zero/by_constant/vec3-scalar/u32.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,13 @@
-SKIP: FAILED
+
+uint3 tint_mod_v3u32(uint3 lhs, uint3 rhs) {
+  uint3 v = (((rhs == (0u).xxx)) ? ((1u).xxx) : (rhs));
+  return (lhs - ((lhs / v) * v));
+}
 
 [numthreads(1, 1, 1)]
 void f() {
   uint3 a = uint3(1u, 2u, 3u);
   uint b = 0u;
-  uint3 r = (a % b);
+  uint3 r = tint_mod_v3u32(a, uint3((b).xxx));
 }
 
diff --git a/test/tint/expressions/binary/mod_by_zero/by_constant/vec3-vec3/f16.wgsl.expected.ir.dxc.hlsl b/test/tint/expressions/binary/mod_by_zero/by_constant/vec3-vec3/f16.wgsl.expected.ir.dxc.hlsl
index 4bc1098..f0f2f46 100644
--- a/test/tint/expressions/binary/mod_by_zero/by_constant/vec3-vec3/f16.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/expressions/binary/mod_by_zero/by_constant/vec3-vec3/f16.wgsl.expected.ir.dxc.hlsl
@@ -1,7 +1,10 @@
+
 [numthreads(1, 1, 1)]
 void f() {
   vector<float16_t, 3> a = vector<float16_t, 3>(float16_t(1.0h), float16_t(2.0h), float16_t(3.0h));
   vector<float16_t, 3> b = vector<float16_t, 3>(float16_t(0.0h), float16_t(5.0h), float16_t(0.0h));
-  vector<float16_t, 3> r = (a % b);
+  vector<float16_t, 3> v = (a / b);
+  vector<float16_t, 3> v_1 = floor(v);
+  vector<float16_t, 3> r = ((a - (((v < (float16_t(0.0h)).xxx)) ? (ceil(v)) : (v_1))) * b);
 }
 
diff --git a/test/tint/expressions/binary/mod_by_zero/by_constant/vec3-vec3/f16.wgsl.expected.ir.fxc.hlsl b/test/tint/expressions/binary/mod_by_zero/by_constant/vec3-vec3/f16.wgsl.expected.ir.fxc.hlsl
index 58251cd..8e22bd6 100644
--- a/test/tint/expressions/binary/mod_by_zero/by_constant/vec3-vec3/f16.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/expressions/binary/mod_by_zero/by_constant/vec3-vec3/f16.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,19 @@
 SKIP: FAILED
 
+
 [numthreads(1, 1, 1)]
 void f() {
   vector<float16_t, 3> a = vector<float16_t, 3>(float16_t(1.0h), float16_t(2.0h), float16_t(3.0h));
   vector<float16_t, 3> b = vector<float16_t, 3>(float16_t(0.0h), float16_t(5.0h), float16_t(0.0h));
-  vector<float16_t, 3> r = (a % b);
+  vector<float16_t, 3> v = (a / b);
+  vector<float16_t, 3> v_1 = floor(v);
+  vector<float16_t, 3> r = ((a - (((v < (float16_t(0.0h)).xxx)) ? (ceil(v)) : (v_1))) * b);
 }
 
+FXC validation failure:
+c:\src\dawn\Shader@0x000001FC5B1E0750(4,10-18): error X3000: syntax error: unexpected token 'float16_t'
+c:\src\dawn\Shader@0x000001FC5B1E0750(5,10-18): error X3000: syntax error: unexpected token 'float16_t'
+c:\src\dawn\Shader@0x000001FC5B1E0750(6,10-18): error X3000: syntax error: unexpected token 'float16_t'
+c:\src\dawn\Shader@0x000001FC5B1E0750(7,10-18): error X3000: syntax error: unexpected token 'float16_t'
+c:\src\dawn\Shader@0x000001FC5B1E0750(8,10-18): error X3000: syntax error: unexpected token 'float16_t'
+
diff --git a/test/tint/expressions/binary/mod_by_zero/by_constant/vec3-vec3/f32.wgsl.expected.ir.dxc.hlsl b/test/tint/expressions/binary/mod_by_zero/by_constant/vec3-vec3/f32.wgsl.expected.ir.dxc.hlsl
index 92c57e1..db05a09 100644
--- a/test/tint/expressions/binary/mod_by_zero/by_constant/vec3-vec3/f32.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/expressions/binary/mod_by_zero/by_constant/vec3-vec3/f32.wgsl.expected.ir.dxc.hlsl
@@ -1,7 +1,10 @@
+
 [numthreads(1, 1, 1)]
 void f() {
   float3 a = float3(1.0f, 2.0f, 3.0f);
   float3 b = float3(0.0f, 5.0f, 0.0f);
-  float3 r = (a % b);
+  float3 v = (a / b);
+  float3 v_1 = floor(v);
+  float3 r = ((a - (((v < (0.0f).xxx)) ? (ceil(v)) : (v_1))) * b);
 }
 
diff --git a/test/tint/expressions/binary/mod_by_zero/by_constant/vec3-vec3/f32.wgsl.expected.ir.fxc.hlsl b/test/tint/expressions/binary/mod_by_zero/by_constant/vec3-vec3/f32.wgsl.expected.ir.fxc.hlsl
index 2eee6d5..db05a09 100644
--- a/test/tint/expressions/binary/mod_by_zero/by_constant/vec3-vec3/f32.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/expressions/binary/mod_by_zero/by_constant/vec3-vec3/f32.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,10 @@
-SKIP: FAILED
 
 [numthreads(1, 1, 1)]
 void f() {
   float3 a = float3(1.0f, 2.0f, 3.0f);
   float3 b = float3(0.0f, 5.0f, 0.0f);
-  float3 r = (a % b);
+  float3 v = (a / b);
+  float3 v_1 = floor(v);
+  float3 r = ((a - (((v < (0.0f).xxx)) ? (ceil(v)) : (v_1))) * b);
 }
 
diff --git a/test/tint/expressions/binary/mod_by_zero/by_constant/vec3-vec3/i32.wgsl.expected.ir.dxc.hlsl b/test/tint/expressions/binary/mod_by_zero/by_constant/vec3-vec3/i32.wgsl.expected.ir.dxc.hlsl
index fa7ab66..d172b48 100644
--- a/test/tint/expressions/binary/mod_by_zero/by_constant/vec3-vec3/i32.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/expressions/binary/mod_by_zero/by_constant/vec3-vec3/i32.wgsl.expected.ir.dxc.hlsl
@@ -1,7 +1,13 @@
+
+int3 tint_mod_v3i32(int3 lhs, int3 rhs) {
+  int3 v = ((((rhs == (0).xxx) | ((lhs == (-2147483648).xxx) & (rhs == (-1).xxx)))) ? ((1).xxx) : (rhs));
+  return (lhs - ((lhs / v) * v));
+}
+
 [numthreads(1, 1, 1)]
 void f() {
   int3 a = int3(1, 2, 3);
   int3 b = int3(0, 5, 0);
-  int3 r = (a % b);
+  int3 r = tint_mod_v3i32(a, b);
 }
 
diff --git a/test/tint/expressions/binary/mod_by_zero/by_constant/vec3-vec3/i32.wgsl.expected.ir.fxc.hlsl b/test/tint/expressions/binary/mod_by_zero/by_constant/vec3-vec3/i32.wgsl.expected.ir.fxc.hlsl
index 590164d..d172b48 100644
--- a/test/tint/expressions/binary/mod_by_zero/by_constant/vec3-vec3/i32.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/expressions/binary/mod_by_zero/by_constant/vec3-vec3/i32.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,13 @@
-SKIP: FAILED
+
+int3 tint_mod_v3i32(int3 lhs, int3 rhs) {
+  int3 v = ((((rhs == (0).xxx) | ((lhs == (-2147483648).xxx) & (rhs == (-1).xxx)))) ? ((1).xxx) : (rhs));
+  return (lhs - ((lhs / v) * v));
+}
 
 [numthreads(1, 1, 1)]
 void f() {
   int3 a = int3(1, 2, 3);
   int3 b = int3(0, 5, 0);
-  int3 r = (a % b);
+  int3 r = tint_mod_v3i32(a, b);
 }
 
diff --git a/test/tint/expressions/binary/mod_by_zero/by_constant/vec3-vec3/u32.wgsl.expected.ir.dxc.hlsl b/test/tint/expressions/binary/mod_by_zero/by_constant/vec3-vec3/u32.wgsl.expected.ir.dxc.hlsl
index 3b7f827..b7ad8f2 100644
--- a/test/tint/expressions/binary/mod_by_zero/by_constant/vec3-vec3/u32.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/expressions/binary/mod_by_zero/by_constant/vec3-vec3/u32.wgsl.expected.ir.dxc.hlsl
@@ -1,7 +1,13 @@
+
+uint3 tint_mod_v3u32(uint3 lhs, uint3 rhs) {
+  uint3 v = (((rhs == (0u).xxx)) ? ((1u).xxx) : (rhs));
+  return (lhs - ((lhs / v) * v));
+}
+
 [numthreads(1, 1, 1)]
 void f() {
   uint3 a = uint3(1u, 2u, 3u);
   uint3 b = uint3(0u, 5u, 0u);
-  uint3 r = (a % b);
+  uint3 r = tint_mod_v3u32(a, b);
 }
 
diff --git a/test/tint/expressions/binary/mod_by_zero/by_constant/vec3-vec3/u32.wgsl.expected.ir.fxc.hlsl b/test/tint/expressions/binary/mod_by_zero/by_constant/vec3-vec3/u32.wgsl.expected.ir.fxc.hlsl
index af5a0c4..b7ad8f2 100644
--- a/test/tint/expressions/binary/mod_by_zero/by_constant/vec3-vec3/u32.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/expressions/binary/mod_by_zero/by_constant/vec3-vec3/u32.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,13 @@
-SKIP: FAILED
+
+uint3 tint_mod_v3u32(uint3 lhs, uint3 rhs) {
+  uint3 v = (((rhs == (0u).xxx)) ? ((1u).xxx) : (rhs));
+  return (lhs - ((lhs / v) * v));
+}
 
 [numthreads(1, 1, 1)]
 void f() {
   uint3 a = uint3(1u, 2u, 3u);
   uint3 b = uint3(0u, 5u, 0u);
-  uint3 r = (a % b);
+  uint3 r = tint_mod_v3u32(a, b);
 }
 
diff --git a/test/tint/expressions/binary/mod_by_zero/by_expression/scalar-scalar/f16.wgsl.expected.ir.dxc.hlsl b/test/tint/expressions/binary/mod_by_zero/by_expression/scalar-scalar/f16.wgsl.expected.ir.dxc.hlsl
index 6d37111..46e181e 100644
--- a/test/tint/expressions/binary/mod_by_zero/by_expression/scalar-scalar/f16.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/expressions/binary/mod_by_zero/by_expression/scalar-scalar/f16.wgsl.expected.ir.dxc.hlsl
@@ -1,7 +1,12 @@
+
 [numthreads(1, 1, 1)]
 void f() {
   float16_t a = float16_t(1.0h);
   float16_t b = float16_t(0.0h);
-  float16_t r = (a % (b + b));
+  float16_t v = a;
+  float16_t v_1 = (b + b);
+  float16_t v_2 = (v / v_1);
+  float16_t v_3 = floor(v_2);
+  float16_t r = ((v - (((v_2 < float16_t(0.0h))) ? (ceil(v_2)) : (v_3))) * v_1);
 }
 
diff --git a/test/tint/expressions/binary/mod_by_zero/by_expression/scalar-scalar/f16.wgsl.expected.ir.fxc.hlsl b/test/tint/expressions/binary/mod_by_zero/by_expression/scalar-scalar/f16.wgsl.expected.ir.fxc.hlsl
index 8447361..3496963 100644
--- a/test/tint/expressions/binary/mod_by_zero/by_expression/scalar-scalar/f16.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/expressions/binary/mod_by_zero/by_expression/scalar-scalar/f16.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,18 @@
 SKIP: FAILED
 
+
 [numthreads(1, 1, 1)]
 void f() {
   float16_t a = float16_t(1.0h);
   float16_t b = float16_t(0.0h);
-  float16_t r = (a % (b + b));
+  float16_t v = a;
+  float16_t v_1 = (b + b);
+  float16_t v_2 = (v / v_1);
+  float16_t v_3 = floor(v_2);
+  float16_t r = ((v - (((v_2 < float16_t(0.0h))) ? (ceil(v_2)) : (v_3))) * v_1);
 }
 
+FXC validation failure:
+c:\src\dawn\Shader@0x0000020452484320(4,3-11): error X3000: unrecognized identifier 'float16_t'
+c:\src\dawn\Shader@0x0000020452484320(4,13): error X3000: unrecognized identifier 'a'
+
diff --git a/test/tint/expressions/binary/mod_by_zero/by_expression/scalar-scalar/f32.wgsl.expected.ir.dxc.hlsl b/test/tint/expressions/binary/mod_by_zero/by_expression/scalar-scalar/f32.wgsl.expected.ir.dxc.hlsl
index eba9a97..362add9 100644
--- a/test/tint/expressions/binary/mod_by_zero/by_expression/scalar-scalar/f32.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/expressions/binary/mod_by_zero/by_expression/scalar-scalar/f32.wgsl.expected.ir.dxc.hlsl
@@ -1,7 +1,12 @@
+
 [numthreads(1, 1, 1)]
 void f() {
   float a = 1.0f;
   float b = 0.0f;
-  float r = (a % (b + b));
+  float v = a;
+  float v_1 = (b + b);
+  float v_2 = (v / v_1);
+  float v_3 = floor(v_2);
+  float r = ((v - (((v_2 < 0.0f)) ? (ceil(v_2)) : (v_3))) * v_1);
 }
 
diff --git a/test/tint/expressions/binary/mod_by_zero/by_expression/scalar-scalar/f32.wgsl.expected.ir.fxc.hlsl b/test/tint/expressions/binary/mod_by_zero/by_expression/scalar-scalar/f32.wgsl.expected.ir.fxc.hlsl
index f3eb652..362add9 100644
--- a/test/tint/expressions/binary/mod_by_zero/by_expression/scalar-scalar/f32.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/expressions/binary/mod_by_zero/by_expression/scalar-scalar/f32.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,12 @@
-SKIP: FAILED
 
 [numthreads(1, 1, 1)]
 void f() {
   float a = 1.0f;
   float b = 0.0f;
-  float r = (a % (b + b));
+  float v = a;
+  float v_1 = (b + b);
+  float v_2 = (v / v_1);
+  float v_3 = floor(v_2);
+  float r = ((v - (((v_2 < 0.0f)) ? (ceil(v_2)) : (v_3))) * v_1);
 }
 
diff --git a/test/tint/expressions/binary/mod_by_zero/by_expression/scalar-scalar/i32.wgsl.expected.ir.dxc.hlsl b/test/tint/expressions/binary/mod_by_zero/by_expression/scalar-scalar/i32.wgsl.expected.ir.dxc.hlsl
index 733580e..9657a83 100644
--- a/test/tint/expressions/binary/mod_by_zero/by_expression/scalar-scalar/i32.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/expressions/binary/mod_by_zero/by_expression/scalar-scalar/i32.wgsl.expected.ir.dxc.hlsl
@@ -1,7 +1,13 @@
+
+int tint_mod_i32(int lhs, int rhs) {
+  int v = ((((rhs == 0) | ((lhs == -2147483648) & (rhs == -1)))) ? (1) : (rhs));
+  return (lhs - ((lhs / v) * v));
+}
+
 [numthreads(1, 1, 1)]
 void f() {
   int a = 1;
   int b = 0;
-  int r = (a % (b + b));
+  int r = tint_mod_i32(a, (b + b));
 }
 
diff --git a/test/tint/expressions/binary/mod_by_zero/by_expression/scalar-scalar/i32.wgsl.expected.ir.fxc.hlsl b/test/tint/expressions/binary/mod_by_zero/by_expression/scalar-scalar/i32.wgsl.expected.ir.fxc.hlsl
index 4a11a2c..9657a83 100644
--- a/test/tint/expressions/binary/mod_by_zero/by_expression/scalar-scalar/i32.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/expressions/binary/mod_by_zero/by_expression/scalar-scalar/i32.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,13 @@
-SKIP: FAILED
+
+int tint_mod_i32(int lhs, int rhs) {
+  int v = ((((rhs == 0) | ((lhs == -2147483648) & (rhs == -1)))) ? (1) : (rhs));
+  return (lhs - ((lhs / v) * v));
+}
 
 [numthreads(1, 1, 1)]
 void f() {
   int a = 1;
   int b = 0;
-  int r = (a % (b + b));
+  int r = tint_mod_i32(a, (b + b));
 }
 
diff --git a/test/tint/expressions/binary/mod_by_zero/by_expression/scalar-scalar/u32.wgsl.expected.ir.dxc.hlsl b/test/tint/expressions/binary/mod_by_zero/by_expression/scalar-scalar/u32.wgsl.expected.ir.dxc.hlsl
index 2a8287a..923c144 100644
--- a/test/tint/expressions/binary/mod_by_zero/by_expression/scalar-scalar/u32.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/expressions/binary/mod_by_zero/by_expression/scalar-scalar/u32.wgsl.expected.ir.dxc.hlsl
@@ -1,7 +1,13 @@
+
+uint tint_mod_u32(uint lhs, uint rhs) {
+  uint v = (((rhs == 0u)) ? (1u) : (rhs));
+  return (lhs - ((lhs / v) * v));
+}
+
 [numthreads(1, 1, 1)]
 void f() {
   uint a = 1u;
   uint b = 0u;
-  uint r = (a % (b + b));
+  uint r = tint_mod_u32(a, (b + b));
 }
 
diff --git a/test/tint/expressions/binary/mod_by_zero/by_expression/scalar-scalar/u32.wgsl.expected.ir.fxc.hlsl b/test/tint/expressions/binary/mod_by_zero/by_expression/scalar-scalar/u32.wgsl.expected.ir.fxc.hlsl
index 3efa9b7..923c144 100644
--- a/test/tint/expressions/binary/mod_by_zero/by_expression/scalar-scalar/u32.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/expressions/binary/mod_by_zero/by_expression/scalar-scalar/u32.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,13 @@
-SKIP: FAILED
+
+uint tint_mod_u32(uint lhs, uint rhs) {
+  uint v = (((rhs == 0u)) ? (1u) : (rhs));
+  return (lhs - ((lhs / v) * v));
+}
 
 [numthreads(1, 1, 1)]
 void f() {
   uint a = 1u;
   uint b = 0u;
-  uint r = (a % (b + b));
+  uint r = tint_mod_u32(a, (b + b));
 }
 
diff --git a/test/tint/expressions/binary/mod_by_zero/by_expression/scalar-vec3/i32.wgsl.expected.ir.dxc.hlsl b/test/tint/expressions/binary/mod_by_zero/by_expression/scalar-vec3/i32.wgsl.expected.ir.dxc.hlsl
index 0bb1e31..88d849b 100644
--- a/test/tint/expressions/binary/mod_by_zero/by_expression/scalar-vec3/i32.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/expressions/binary/mod_by_zero/by_expression/scalar-vec3/i32.wgsl.expected.ir.dxc.hlsl
@@ -1,7 +1,14 @@
+
+int3 tint_mod_v3i32(int3 lhs, int3 rhs) {
+  int3 v = ((((rhs == (0).xxx) | ((lhs == (-2147483648).xxx) & (rhs == (-1).xxx)))) ? ((1).xxx) : (rhs));
+  return (lhs - ((lhs / v) * v));
+}
+
 [numthreads(1, 1, 1)]
 void f() {
   int a = 4;
   int3 b = int3(0, 2, 0);
-  int3 r = (a % (b + b));
+  int3 v_1 = (b + b);
+  int3 r = tint_mod_v3i32(int3((a).xxx), v_1);
 }
 
diff --git a/test/tint/expressions/binary/mod_by_zero/by_expression/scalar-vec3/i32.wgsl.expected.ir.fxc.hlsl b/test/tint/expressions/binary/mod_by_zero/by_expression/scalar-vec3/i32.wgsl.expected.ir.fxc.hlsl
index eb6f40a..88d849b 100644
--- a/test/tint/expressions/binary/mod_by_zero/by_expression/scalar-vec3/i32.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/expressions/binary/mod_by_zero/by_expression/scalar-vec3/i32.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,14 @@
-SKIP: FAILED
+
+int3 tint_mod_v3i32(int3 lhs, int3 rhs) {
+  int3 v = ((((rhs == (0).xxx) | ((lhs == (-2147483648).xxx) & (rhs == (-1).xxx)))) ? ((1).xxx) : (rhs));
+  return (lhs - ((lhs / v) * v));
+}
 
 [numthreads(1, 1, 1)]
 void f() {
   int a = 4;
   int3 b = int3(0, 2, 0);
-  int3 r = (a % (b + b));
+  int3 v_1 = (b + b);
+  int3 r = tint_mod_v3i32(int3((a).xxx), v_1);
 }
 
diff --git a/test/tint/expressions/binary/mod_by_zero/by_expression/scalar-vec3/u32.wgsl.expected.ir.dxc.hlsl b/test/tint/expressions/binary/mod_by_zero/by_expression/scalar-vec3/u32.wgsl.expected.ir.dxc.hlsl
index fee6178..ae1b3ec 100644
--- a/test/tint/expressions/binary/mod_by_zero/by_expression/scalar-vec3/u32.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/expressions/binary/mod_by_zero/by_expression/scalar-vec3/u32.wgsl.expected.ir.dxc.hlsl
@@ -1,7 +1,14 @@
+
+uint3 tint_mod_v3u32(uint3 lhs, uint3 rhs) {
+  uint3 v = (((rhs == (0u).xxx)) ? ((1u).xxx) : (rhs));
+  return (lhs - ((lhs / v) * v));
+}
+
 [numthreads(1, 1, 1)]
 void f() {
   uint a = 4u;
   uint3 b = uint3(0u, 2u, 0u);
-  uint3 r = (a % (b + b));
+  uint3 v_1 = (b + b);
+  uint3 r = tint_mod_v3u32(uint3((a).xxx), v_1);
 }
 
diff --git a/test/tint/expressions/binary/mod_by_zero/by_expression/scalar-vec3/u32.wgsl.expected.ir.fxc.hlsl b/test/tint/expressions/binary/mod_by_zero/by_expression/scalar-vec3/u32.wgsl.expected.ir.fxc.hlsl
index b43d34b..ae1b3ec 100644
--- a/test/tint/expressions/binary/mod_by_zero/by_expression/scalar-vec3/u32.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/expressions/binary/mod_by_zero/by_expression/scalar-vec3/u32.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,14 @@
-SKIP: FAILED
+
+uint3 tint_mod_v3u32(uint3 lhs, uint3 rhs) {
+  uint3 v = (((rhs == (0u).xxx)) ? ((1u).xxx) : (rhs));
+  return (lhs - ((lhs / v) * v));
+}
 
 [numthreads(1, 1, 1)]
 void f() {
   uint a = 4u;
   uint3 b = uint3(0u, 2u, 0u);
-  uint3 r = (a % (b + b));
+  uint3 v_1 = (b + b);
+  uint3 r = tint_mod_v3u32(uint3((a).xxx), v_1);
 }
 
diff --git a/test/tint/expressions/binary/mod_by_zero/by_expression/vec3-scalar/i32.wgsl.expected.ir.dxc.hlsl b/test/tint/expressions/binary/mod_by_zero/by_expression/vec3-scalar/i32.wgsl.expected.ir.dxc.hlsl
index 1aabc73..7262d81 100644
--- a/test/tint/expressions/binary/mod_by_zero/by_expression/vec3-scalar/i32.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/expressions/binary/mod_by_zero/by_expression/vec3-scalar/i32.wgsl.expected.ir.dxc.hlsl
@@ -1,7 +1,14 @@
+
+int3 tint_mod_v3i32(int3 lhs, int3 rhs) {
+  int3 v = ((((rhs == (0).xxx) | ((lhs == (-2147483648).xxx) & (rhs == (-1).xxx)))) ? ((1).xxx) : (rhs));
+  return (lhs - ((lhs / v) * v));
+}
+
 [numthreads(1, 1, 1)]
 void f() {
   int3 a = int3(1, 2, 3);
   int b = 0;
-  int3 r = (a % (b + b));
+  int3 v_1 = a;
+  int3 r = tint_mod_v3i32(v_1, int3(((b + b)).xxx));
 }
 
diff --git a/test/tint/expressions/binary/mod_by_zero/by_expression/vec3-scalar/i32.wgsl.expected.ir.fxc.hlsl b/test/tint/expressions/binary/mod_by_zero/by_expression/vec3-scalar/i32.wgsl.expected.ir.fxc.hlsl
index 0b36b66..7262d81 100644
--- a/test/tint/expressions/binary/mod_by_zero/by_expression/vec3-scalar/i32.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/expressions/binary/mod_by_zero/by_expression/vec3-scalar/i32.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,14 @@
-SKIP: FAILED
+
+int3 tint_mod_v3i32(int3 lhs, int3 rhs) {
+  int3 v = ((((rhs == (0).xxx) | ((lhs == (-2147483648).xxx) & (rhs == (-1).xxx)))) ? ((1).xxx) : (rhs));
+  return (lhs - ((lhs / v) * v));
+}
 
 [numthreads(1, 1, 1)]
 void f() {
   int3 a = int3(1, 2, 3);
   int b = 0;
-  int3 r = (a % (b + b));
+  int3 v_1 = a;
+  int3 r = tint_mod_v3i32(v_1, int3(((b + b)).xxx));
 }
 
diff --git a/test/tint/expressions/binary/mod_by_zero/by_expression/vec3-scalar/u32.wgsl.expected.ir.dxc.hlsl b/test/tint/expressions/binary/mod_by_zero/by_expression/vec3-scalar/u32.wgsl.expected.ir.dxc.hlsl
index 9285aa3..61eab9d 100644
--- a/test/tint/expressions/binary/mod_by_zero/by_expression/vec3-scalar/u32.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/expressions/binary/mod_by_zero/by_expression/vec3-scalar/u32.wgsl.expected.ir.dxc.hlsl
@@ -1,7 +1,14 @@
+
+uint3 tint_mod_v3u32(uint3 lhs, uint3 rhs) {
+  uint3 v = (((rhs == (0u).xxx)) ? ((1u).xxx) : (rhs));
+  return (lhs - ((lhs / v) * v));
+}
+
 [numthreads(1, 1, 1)]
 void f() {
   uint3 a = uint3(1u, 2u, 3u);
   uint b = 0u;
-  uint3 r = (a % (b + b));
+  uint3 v_1 = a;
+  uint3 r = tint_mod_v3u32(v_1, uint3(((b + b)).xxx));
 }
 
diff --git a/test/tint/expressions/binary/mod_by_zero/by_expression/vec3-scalar/u32.wgsl.expected.ir.fxc.hlsl b/test/tint/expressions/binary/mod_by_zero/by_expression/vec3-scalar/u32.wgsl.expected.ir.fxc.hlsl
index 484d71e..61eab9d 100644
--- a/test/tint/expressions/binary/mod_by_zero/by_expression/vec3-scalar/u32.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/expressions/binary/mod_by_zero/by_expression/vec3-scalar/u32.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,14 @@
-SKIP: FAILED
+
+uint3 tint_mod_v3u32(uint3 lhs, uint3 rhs) {
+  uint3 v = (((rhs == (0u).xxx)) ? ((1u).xxx) : (rhs));
+  return (lhs - ((lhs / v) * v));
+}
 
 [numthreads(1, 1, 1)]
 void f() {
   uint3 a = uint3(1u, 2u, 3u);
   uint b = 0u;
-  uint3 r = (a % (b + b));
+  uint3 v_1 = a;
+  uint3 r = tint_mod_v3u32(v_1, uint3(((b + b)).xxx));
 }
 
diff --git a/test/tint/expressions/binary/mod_by_zero/by_expression/vec3-vec3/f16.wgsl.expected.ir.dxc.hlsl b/test/tint/expressions/binary/mod_by_zero/by_expression/vec3-vec3/f16.wgsl.expected.ir.dxc.hlsl
index 545177f..44e97b4 100644
--- a/test/tint/expressions/binary/mod_by_zero/by_expression/vec3-vec3/f16.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/expressions/binary/mod_by_zero/by_expression/vec3-vec3/f16.wgsl.expected.ir.dxc.hlsl
@@ -1,7 +1,12 @@
+
 [numthreads(1, 1, 1)]
 void f() {
   vector<float16_t, 3> a = vector<float16_t, 3>(float16_t(1.0h), float16_t(2.0h), float16_t(3.0h));
   vector<float16_t, 3> b = vector<float16_t, 3>(float16_t(0.0h), float16_t(5.0h), float16_t(0.0h));
-  vector<float16_t, 3> r = (a % (b + b));
+  vector<float16_t, 3> v = a;
+  vector<float16_t, 3> v_1 = (b + b);
+  vector<float16_t, 3> v_2 = (v / v_1);
+  vector<float16_t, 3> v_3 = floor(v_2);
+  vector<float16_t, 3> r = ((v - (((v_2 < (float16_t(0.0h)).xxx)) ? (ceil(v_2)) : (v_3))) * v_1);
 }
 
diff --git a/test/tint/expressions/binary/mod_by_zero/by_expression/vec3-vec3/f16.wgsl.expected.ir.fxc.hlsl b/test/tint/expressions/binary/mod_by_zero/by_expression/vec3-vec3/f16.wgsl.expected.ir.fxc.hlsl
index 8484d6b..ee9c590 100644
--- a/test/tint/expressions/binary/mod_by_zero/by_expression/vec3-vec3/f16.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/expressions/binary/mod_by_zero/by_expression/vec3-vec3/f16.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,23 @@
 SKIP: FAILED
 
+
 [numthreads(1, 1, 1)]
 void f() {
   vector<float16_t, 3> a = vector<float16_t, 3>(float16_t(1.0h), float16_t(2.0h), float16_t(3.0h));
   vector<float16_t, 3> b = vector<float16_t, 3>(float16_t(0.0h), float16_t(5.0h), float16_t(0.0h));
-  vector<float16_t, 3> r = (a % (b + b));
+  vector<float16_t, 3> v = a;
+  vector<float16_t, 3> v_1 = (b + b);
+  vector<float16_t, 3> v_2 = (v / v_1);
+  vector<float16_t, 3> v_3 = floor(v_2);
+  vector<float16_t, 3> r = ((v - (((v_2 < (float16_t(0.0h)).xxx)) ? (ceil(v_2)) : (v_3))) * v_1);
 }
 
+FXC validation failure:
+c:\src\dawn\Shader@0x00000165942D58A0(4,10-18): error X3000: syntax error: unexpected token 'float16_t'
+c:\src\dawn\Shader@0x00000165942D58A0(5,10-18): error X3000: syntax error: unexpected token 'float16_t'
+c:\src\dawn\Shader@0x00000165942D58A0(6,10-18): error X3000: syntax error: unexpected token 'float16_t'
+c:\src\dawn\Shader@0x00000165942D58A0(7,10-18): error X3000: syntax error: unexpected token 'float16_t'
+c:\src\dawn\Shader@0x00000165942D58A0(8,10-18): error X3000: syntax error: unexpected token 'float16_t'
+c:\src\dawn\Shader@0x00000165942D58A0(9,10-18): error X3000: syntax error: unexpected token 'float16_t'
+c:\src\dawn\Shader@0x00000165942D58A0(10,10-18): error X3000: syntax error: unexpected token 'float16_t'
+
diff --git a/test/tint/expressions/binary/mod_by_zero/by_expression/vec3-vec3/f32.wgsl.expected.ir.dxc.hlsl b/test/tint/expressions/binary/mod_by_zero/by_expression/vec3-vec3/f32.wgsl.expected.ir.dxc.hlsl
index 3303c5e..ca2e06e 100644
--- a/test/tint/expressions/binary/mod_by_zero/by_expression/vec3-vec3/f32.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/expressions/binary/mod_by_zero/by_expression/vec3-vec3/f32.wgsl.expected.ir.dxc.hlsl
@@ -1,7 +1,12 @@
+
 [numthreads(1, 1, 1)]
 void f() {
   float3 a = float3(1.0f, 2.0f, 3.0f);
   float3 b = float3(0.0f, 5.0f, 0.0f);
-  float3 r = (a % (b + b));
+  float3 v = a;
+  float3 v_1 = (b + b);
+  float3 v_2 = (v / v_1);
+  float3 v_3 = floor(v_2);
+  float3 r = ((v - (((v_2 < (0.0f).xxx)) ? (ceil(v_2)) : (v_3))) * v_1);
 }
 
diff --git a/test/tint/expressions/binary/mod_by_zero/by_expression/vec3-vec3/f32.wgsl.expected.ir.fxc.hlsl b/test/tint/expressions/binary/mod_by_zero/by_expression/vec3-vec3/f32.wgsl.expected.ir.fxc.hlsl
index f12164c..ca2e06e 100644
--- a/test/tint/expressions/binary/mod_by_zero/by_expression/vec3-vec3/f32.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/expressions/binary/mod_by_zero/by_expression/vec3-vec3/f32.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,12 @@
-SKIP: FAILED
 
 [numthreads(1, 1, 1)]
 void f() {
   float3 a = float3(1.0f, 2.0f, 3.0f);
   float3 b = float3(0.0f, 5.0f, 0.0f);
-  float3 r = (a % (b + b));
+  float3 v = a;
+  float3 v_1 = (b + b);
+  float3 v_2 = (v / v_1);
+  float3 v_3 = floor(v_2);
+  float3 r = ((v - (((v_2 < (0.0f).xxx)) ? (ceil(v_2)) : (v_3))) * v_1);
 }
 
diff --git a/test/tint/expressions/binary/mod_by_zero/by_expression/vec3-vec3/i32.wgsl.expected.ir.dxc.hlsl b/test/tint/expressions/binary/mod_by_zero/by_expression/vec3-vec3/i32.wgsl.expected.ir.dxc.hlsl
index fbcee89..d3fdd18 100644
--- a/test/tint/expressions/binary/mod_by_zero/by_expression/vec3-vec3/i32.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/expressions/binary/mod_by_zero/by_expression/vec3-vec3/i32.wgsl.expected.ir.dxc.hlsl
@@ -1,7 +1,13 @@
+
+int3 tint_mod_v3i32(int3 lhs, int3 rhs) {
+  int3 v = ((((rhs == (0).xxx) | ((lhs == (-2147483648).xxx) & (rhs == (-1).xxx)))) ? ((1).xxx) : (rhs));
+  return (lhs - ((lhs / v) * v));
+}
+
 [numthreads(1, 1, 1)]
 void f() {
   int3 a = int3(1, 2, 3);
   int3 b = int3(0, 5, 0);
-  int3 r = (a % (b + b));
+  int3 r = tint_mod_v3i32(a, (b + b));
 }
 
diff --git a/test/tint/expressions/binary/mod_by_zero/by_expression/vec3-vec3/i32.wgsl.expected.ir.fxc.hlsl b/test/tint/expressions/binary/mod_by_zero/by_expression/vec3-vec3/i32.wgsl.expected.ir.fxc.hlsl
index 35e0a58..d3fdd18 100644
--- a/test/tint/expressions/binary/mod_by_zero/by_expression/vec3-vec3/i32.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/expressions/binary/mod_by_zero/by_expression/vec3-vec3/i32.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,13 @@
-SKIP: FAILED
+
+int3 tint_mod_v3i32(int3 lhs, int3 rhs) {
+  int3 v = ((((rhs == (0).xxx) | ((lhs == (-2147483648).xxx) & (rhs == (-1).xxx)))) ? ((1).xxx) : (rhs));
+  return (lhs - ((lhs / v) * v));
+}
 
 [numthreads(1, 1, 1)]
 void f() {
   int3 a = int3(1, 2, 3);
   int3 b = int3(0, 5, 0);
-  int3 r = (a % (b + b));
+  int3 r = tint_mod_v3i32(a, (b + b));
 }
 
diff --git a/test/tint/expressions/binary/mod_by_zero/by_expression/vec3-vec3/u32.wgsl.expected.ir.dxc.hlsl b/test/tint/expressions/binary/mod_by_zero/by_expression/vec3-vec3/u32.wgsl.expected.ir.dxc.hlsl
index 58aa90d..acf6589 100644
--- a/test/tint/expressions/binary/mod_by_zero/by_expression/vec3-vec3/u32.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/expressions/binary/mod_by_zero/by_expression/vec3-vec3/u32.wgsl.expected.ir.dxc.hlsl
@@ -1,7 +1,13 @@
+
+uint3 tint_mod_v3u32(uint3 lhs, uint3 rhs) {
+  uint3 v = (((rhs == (0u).xxx)) ? ((1u).xxx) : (rhs));
+  return (lhs - ((lhs / v) * v));
+}
+
 [numthreads(1, 1, 1)]
 void f() {
   uint3 a = uint3(1u, 2u, 3u);
   uint3 b = uint3(0u, 5u, 0u);
-  uint3 r = (a % (b + b));
+  uint3 r = tint_mod_v3u32(a, (b + b));
 }
 
diff --git a/test/tint/expressions/binary/mod_by_zero/by_expression/vec3-vec3/u32.wgsl.expected.ir.fxc.hlsl b/test/tint/expressions/binary/mod_by_zero/by_expression/vec3-vec3/u32.wgsl.expected.ir.fxc.hlsl
index 1622794..acf6589 100644
--- a/test/tint/expressions/binary/mod_by_zero/by_expression/vec3-vec3/u32.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/expressions/binary/mod_by_zero/by_expression/vec3-vec3/u32.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,13 @@
-SKIP: FAILED
+
+uint3 tint_mod_v3u32(uint3 lhs, uint3 rhs) {
+  uint3 v = (((rhs == (0u).xxx)) ? ((1u).xxx) : (rhs));
+  return (lhs - ((lhs / v) * v));
+}
 
 [numthreads(1, 1, 1)]
 void f() {
   uint3 a = uint3(1u, 2u, 3u);
   uint3 b = uint3(0u, 5u, 0u);
-  uint3 r = (a % (b + b));
+  uint3 r = tint_mod_v3u32(a, (b + b));
 }
 
diff --git a/test/tint/expressions/binary/mod_by_zero/by_identifier/scalar-scalar/f16.wgsl.expected.ir.dxc.hlsl b/test/tint/expressions/binary/mod_by_zero/by_identifier/scalar-scalar/f16.wgsl.expected.ir.dxc.hlsl
index b9fa939..85f8f96 100644
--- a/test/tint/expressions/binary/mod_by_zero/by_identifier/scalar-scalar/f16.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/expressions/binary/mod_by_zero/by_identifier/scalar-scalar/f16.wgsl.expected.ir.dxc.hlsl
@@ -1,7 +1,12 @@
+
 [numthreads(1, 1, 1)]
 void f() {
   float16_t a = float16_t(1.0h);
   float16_t b = float16_t(0.0h);
-  float16_t r = (a % b);
+  float16_t v = a;
+  float16_t v_1 = b;
+  float16_t v_2 = (v / v_1);
+  float16_t v_3 = floor(v_2);
+  float16_t r = ((v - (((v_2 < float16_t(0.0h))) ? (ceil(v_2)) : (v_3))) * v_1);
 }
 
diff --git a/test/tint/expressions/binary/mod_by_zero/by_identifier/scalar-scalar/f16.wgsl.expected.ir.fxc.hlsl b/test/tint/expressions/binary/mod_by_zero/by_identifier/scalar-scalar/f16.wgsl.expected.ir.fxc.hlsl
index f6c952d..bf01da7 100644
--- a/test/tint/expressions/binary/mod_by_zero/by_identifier/scalar-scalar/f16.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/expressions/binary/mod_by_zero/by_identifier/scalar-scalar/f16.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,18 @@
 SKIP: FAILED
 
+
 [numthreads(1, 1, 1)]
 void f() {
   float16_t a = float16_t(1.0h);
   float16_t b = float16_t(0.0h);
-  float16_t r = (a % b);
+  float16_t v = a;
+  float16_t v_1 = b;
+  float16_t v_2 = (v / v_1);
+  float16_t v_3 = floor(v_2);
+  float16_t r = ((v - (((v_2 < float16_t(0.0h))) ? (ceil(v_2)) : (v_3))) * v_1);
 }
 
+FXC validation failure:
+c:\src\dawn\Shader@0x00000167ECA12990(4,3-11): error X3000: unrecognized identifier 'float16_t'
+c:\src\dawn\Shader@0x00000167ECA12990(4,13): error X3000: unrecognized identifier 'a'
+
diff --git a/test/tint/expressions/binary/mod_by_zero/by_identifier/scalar-scalar/f32.wgsl.expected.ir.dxc.hlsl b/test/tint/expressions/binary/mod_by_zero/by_identifier/scalar-scalar/f32.wgsl.expected.ir.dxc.hlsl
index 6c4c62f..506db84 100644
--- a/test/tint/expressions/binary/mod_by_zero/by_identifier/scalar-scalar/f32.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/expressions/binary/mod_by_zero/by_identifier/scalar-scalar/f32.wgsl.expected.ir.dxc.hlsl
@@ -1,7 +1,12 @@
+
 [numthreads(1, 1, 1)]
 void f() {
   float a = 1.0f;
   float b = 0.0f;
-  float r = (a % b);
+  float v = a;
+  float v_1 = b;
+  float v_2 = (v / v_1);
+  float v_3 = floor(v_2);
+  float r = ((v - (((v_2 < 0.0f)) ? (ceil(v_2)) : (v_3))) * v_1);
 }
 
diff --git a/test/tint/expressions/binary/mod_by_zero/by_identifier/scalar-scalar/f32.wgsl.expected.ir.fxc.hlsl b/test/tint/expressions/binary/mod_by_zero/by_identifier/scalar-scalar/f32.wgsl.expected.ir.fxc.hlsl
index 1161a4d..506db84 100644
--- a/test/tint/expressions/binary/mod_by_zero/by_identifier/scalar-scalar/f32.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/expressions/binary/mod_by_zero/by_identifier/scalar-scalar/f32.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,12 @@
-SKIP: FAILED
 
 [numthreads(1, 1, 1)]
 void f() {
   float a = 1.0f;
   float b = 0.0f;
-  float r = (a % b);
+  float v = a;
+  float v_1 = b;
+  float v_2 = (v / v_1);
+  float v_3 = floor(v_2);
+  float r = ((v - (((v_2 < 0.0f)) ? (ceil(v_2)) : (v_3))) * v_1);
 }
 
diff --git a/test/tint/expressions/binary/mod_by_zero/by_identifier/scalar-scalar/i32.wgsl.expected.ir.dxc.hlsl b/test/tint/expressions/binary/mod_by_zero/by_identifier/scalar-scalar/i32.wgsl.expected.ir.dxc.hlsl
index 320a231..f9d6cf1 100644
--- a/test/tint/expressions/binary/mod_by_zero/by_identifier/scalar-scalar/i32.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/expressions/binary/mod_by_zero/by_identifier/scalar-scalar/i32.wgsl.expected.ir.dxc.hlsl
@@ -1,7 +1,13 @@
+
+int tint_mod_i32(int lhs, int rhs) {
+  int v = ((((rhs == 0) | ((lhs == -2147483648) & (rhs == -1)))) ? (1) : (rhs));
+  return (lhs - ((lhs / v) * v));
+}
+
 [numthreads(1, 1, 1)]
 void f() {
   int a = 1;
   int b = 0;
-  int r = (a % b);
+  int r = tint_mod_i32(a, b);
 }
 
diff --git a/test/tint/expressions/binary/mod_by_zero/by_identifier/scalar-scalar/i32.wgsl.expected.ir.fxc.hlsl b/test/tint/expressions/binary/mod_by_zero/by_identifier/scalar-scalar/i32.wgsl.expected.ir.fxc.hlsl
index 7d2af9c..f9d6cf1 100644
--- a/test/tint/expressions/binary/mod_by_zero/by_identifier/scalar-scalar/i32.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/expressions/binary/mod_by_zero/by_identifier/scalar-scalar/i32.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,13 @@
-SKIP: FAILED
+
+int tint_mod_i32(int lhs, int rhs) {
+  int v = ((((rhs == 0) | ((lhs == -2147483648) & (rhs == -1)))) ? (1) : (rhs));
+  return (lhs - ((lhs / v) * v));
+}
 
 [numthreads(1, 1, 1)]
 void f() {
   int a = 1;
   int b = 0;
-  int r = (a % b);
+  int r = tint_mod_i32(a, b);
 }
 
diff --git a/test/tint/expressions/binary/mod_by_zero/by_identifier/scalar-scalar/u32.wgsl.expected.ir.dxc.hlsl b/test/tint/expressions/binary/mod_by_zero/by_identifier/scalar-scalar/u32.wgsl.expected.ir.dxc.hlsl
index bfa6559..64787d6 100644
--- a/test/tint/expressions/binary/mod_by_zero/by_identifier/scalar-scalar/u32.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/expressions/binary/mod_by_zero/by_identifier/scalar-scalar/u32.wgsl.expected.ir.dxc.hlsl
@@ -1,7 +1,13 @@
+
+uint tint_mod_u32(uint lhs, uint rhs) {
+  uint v = (((rhs == 0u)) ? (1u) : (rhs));
+  return (lhs - ((lhs / v) * v));
+}
+
 [numthreads(1, 1, 1)]
 void f() {
   uint a = 1u;
   uint b = 0u;
-  uint r = (a % b);
+  uint r = tint_mod_u32(a, b);
 }
 
diff --git a/test/tint/expressions/binary/mod_by_zero/by_identifier/scalar-scalar/u32.wgsl.expected.ir.fxc.hlsl b/test/tint/expressions/binary/mod_by_zero/by_identifier/scalar-scalar/u32.wgsl.expected.ir.fxc.hlsl
index c769a4b..64787d6 100644
--- a/test/tint/expressions/binary/mod_by_zero/by_identifier/scalar-scalar/u32.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/expressions/binary/mod_by_zero/by_identifier/scalar-scalar/u32.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,13 @@
-SKIP: FAILED
+
+uint tint_mod_u32(uint lhs, uint rhs) {
+  uint v = (((rhs == 0u)) ? (1u) : (rhs));
+  return (lhs - ((lhs / v) * v));
+}
 
 [numthreads(1, 1, 1)]
 void f() {
   uint a = 1u;
   uint b = 0u;
-  uint r = (a % b);
+  uint r = tint_mod_u32(a, b);
 }
 
diff --git a/test/tint/expressions/binary/mod_by_zero/by_identifier/scalar-vec3/i32.wgsl.expected.ir.dxc.hlsl b/test/tint/expressions/binary/mod_by_zero/by_identifier/scalar-vec3/i32.wgsl.expected.ir.dxc.hlsl
index cdb2e48..f8cc45b 100644
--- a/test/tint/expressions/binary/mod_by_zero/by_identifier/scalar-vec3/i32.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/expressions/binary/mod_by_zero/by_identifier/scalar-vec3/i32.wgsl.expected.ir.dxc.hlsl
@@ -1,7 +1,14 @@
+
+int3 tint_mod_v3i32(int3 lhs, int3 rhs) {
+  int3 v = ((((rhs == (0).xxx) | ((lhs == (-2147483648).xxx) & (rhs == (-1).xxx)))) ? ((1).xxx) : (rhs));
+  return (lhs - ((lhs / v) * v));
+}
+
 [numthreads(1, 1, 1)]
 void f() {
   int a = 4;
   int3 b = int3(0, 2, 0);
-  int3 r = (a % b);
+  int3 v_1 = b;
+  int3 r = tint_mod_v3i32(int3((a).xxx), v_1);
 }
 
diff --git a/test/tint/expressions/binary/mod_by_zero/by_identifier/scalar-vec3/i32.wgsl.expected.ir.fxc.hlsl b/test/tint/expressions/binary/mod_by_zero/by_identifier/scalar-vec3/i32.wgsl.expected.ir.fxc.hlsl
index 64e9d3f..f8cc45b 100644
--- a/test/tint/expressions/binary/mod_by_zero/by_identifier/scalar-vec3/i32.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/expressions/binary/mod_by_zero/by_identifier/scalar-vec3/i32.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,14 @@
-SKIP: FAILED
+
+int3 tint_mod_v3i32(int3 lhs, int3 rhs) {
+  int3 v = ((((rhs == (0).xxx) | ((lhs == (-2147483648).xxx) & (rhs == (-1).xxx)))) ? ((1).xxx) : (rhs));
+  return (lhs - ((lhs / v) * v));
+}
 
 [numthreads(1, 1, 1)]
 void f() {
   int a = 4;
   int3 b = int3(0, 2, 0);
-  int3 r = (a % b);
+  int3 v_1 = b;
+  int3 r = tint_mod_v3i32(int3((a).xxx), v_1);
 }
 
diff --git a/test/tint/expressions/binary/mod_by_zero/by_identifier/scalar-vec3/u32.wgsl.expected.ir.dxc.hlsl b/test/tint/expressions/binary/mod_by_zero/by_identifier/scalar-vec3/u32.wgsl.expected.ir.dxc.hlsl
index b0aa1da..ce45d48 100644
--- a/test/tint/expressions/binary/mod_by_zero/by_identifier/scalar-vec3/u32.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/expressions/binary/mod_by_zero/by_identifier/scalar-vec3/u32.wgsl.expected.ir.dxc.hlsl
@@ -1,7 +1,14 @@
+
+uint3 tint_mod_v3u32(uint3 lhs, uint3 rhs) {
+  uint3 v = (((rhs == (0u).xxx)) ? ((1u).xxx) : (rhs));
+  return (lhs - ((lhs / v) * v));
+}
+
 [numthreads(1, 1, 1)]
 void f() {
   uint a = 4u;
   uint3 b = uint3(0u, 2u, 0u);
-  uint3 r = (a % b);
+  uint3 v_1 = b;
+  uint3 r = tint_mod_v3u32(uint3((a).xxx), v_1);
 }
 
diff --git a/test/tint/expressions/binary/mod_by_zero/by_identifier/scalar-vec3/u32.wgsl.expected.ir.fxc.hlsl b/test/tint/expressions/binary/mod_by_zero/by_identifier/scalar-vec3/u32.wgsl.expected.ir.fxc.hlsl
index 32628d0..ce45d48 100644
--- a/test/tint/expressions/binary/mod_by_zero/by_identifier/scalar-vec3/u32.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/expressions/binary/mod_by_zero/by_identifier/scalar-vec3/u32.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,14 @@
-SKIP: FAILED
+
+uint3 tint_mod_v3u32(uint3 lhs, uint3 rhs) {
+  uint3 v = (((rhs == (0u).xxx)) ? ((1u).xxx) : (rhs));
+  return (lhs - ((lhs / v) * v));
+}
 
 [numthreads(1, 1, 1)]
 void f() {
   uint a = 4u;
   uint3 b = uint3(0u, 2u, 0u);
-  uint3 r = (a % b);
+  uint3 v_1 = b;
+  uint3 r = tint_mod_v3u32(uint3((a).xxx), v_1);
 }
 
diff --git a/test/tint/expressions/binary/mod_by_zero/by_identifier/vec3-scalar/i32.wgsl.expected.ir.dxc.hlsl b/test/tint/expressions/binary/mod_by_zero/by_identifier/vec3-scalar/i32.wgsl.expected.ir.dxc.hlsl
index 2abf478..e8c06da 100644
--- a/test/tint/expressions/binary/mod_by_zero/by_identifier/vec3-scalar/i32.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/expressions/binary/mod_by_zero/by_identifier/vec3-scalar/i32.wgsl.expected.ir.dxc.hlsl
@@ -1,7 +1,14 @@
+
+int3 tint_mod_v3i32(int3 lhs, int3 rhs) {
+  int3 v = ((((rhs == (0).xxx) | ((lhs == (-2147483648).xxx) & (rhs == (-1).xxx)))) ? ((1).xxx) : (rhs));
+  return (lhs - ((lhs / v) * v));
+}
+
 [numthreads(1, 1, 1)]
 void f() {
   int3 a = int3(1, 2, 3);
   int b = 0;
-  int3 r = (a % b);
+  int3 v_1 = a;
+  int3 r = tint_mod_v3i32(v_1, int3((b).xxx));
 }
 
diff --git a/test/tint/expressions/binary/mod_by_zero/by_identifier/vec3-scalar/i32.wgsl.expected.ir.fxc.hlsl b/test/tint/expressions/binary/mod_by_zero/by_identifier/vec3-scalar/i32.wgsl.expected.ir.fxc.hlsl
index aa7c589..e8c06da 100644
--- a/test/tint/expressions/binary/mod_by_zero/by_identifier/vec3-scalar/i32.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/expressions/binary/mod_by_zero/by_identifier/vec3-scalar/i32.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,14 @@
-SKIP: FAILED
+
+int3 tint_mod_v3i32(int3 lhs, int3 rhs) {
+  int3 v = ((((rhs == (0).xxx) | ((lhs == (-2147483648).xxx) & (rhs == (-1).xxx)))) ? ((1).xxx) : (rhs));
+  return (lhs - ((lhs / v) * v));
+}
 
 [numthreads(1, 1, 1)]
 void f() {
   int3 a = int3(1, 2, 3);
   int b = 0;
-  int3 r = (a % b);
+  int3 v_1 = a;
+  int3 r = tint_mod_v3i32(v_1, int3((b).xxx));
 }
 
diff --git a/test/tint/expressions/binary/mod_by_zero/by_identifier/vec3-scalar/u32.wgsl.expected.ir.dxc.hlsl b/test/tint/expressions/binary/mod_by_zero/by_identifier/vec3-scalar/u32.wgsl.expected.ir.dxc.hlsl
index b0e87fb..fd49ffe 100644
--- a/test/tint/expressions/binary/mod_by_zero/by_identifier/vec3-scalar/u32.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/expressions/binary/mod_by_zero/by_identifier/vec3-scalar/u32.wgsl.expected.ir.dxc.hlsl
@@ -1,7 +1,14 @@
+
+uint3 tint_mod_v3u32(uint3 lhs, uint3 rhs) {
+  uint3 v = (((rhs == (0u).xxx)) ? ((1u).xxx) : (rhs));
+  return (lhs - ((lhs / v) * v));
+}
+
 [numthreads(1, 1, 1)]
 void f() {
   uint3 a = uint3(1u, 2u, 3u);
   uint b = 0u;
-  uint3 r = (a % b);
+  uint3 v_1 = a;
+  uint3 r = tint_mod_v3u32(v_1, uint3((b).xxx));
 }
 
diff --git a/test/tint/expressions/binary/mod_by_zero/by_identifier/vec3-scalar/u32.wgsl.expected.ir.fxc.hlsl b/test/tint/expressions/binary/mod_by_zero/by_identifier/vec3-scalar/u32.wgsl.expected.ir.fxc.hlsl
index ce4c2d1..fd49ffe 100644
--- a/test/tint/expressions/binary/mod_by_zero/by_identifier/vec3-scalar/u32.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/expressions/binary/mod_by_zero/by_identifier/vec3-scalar/u32.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,14 @@
-SKIP: FAILED
+
+uint3 tint_mod_v3u32(uint3 lhs, uint3 rhs) {
+  uint3 v = (((rhs == (0u).xxx)) ? ((1u).xxx) : (rhs));
+  return (lhs - ((lhs / v) * v));
+}
 
 [numthreads(1, 1, 1)]
 void f() {
   uint3 a = uint3(1u, 2u, 3u);
   uint b = 0u;
-  uint3 r = (a % b);
+  uint3 v_1 = a;
+  uint3 r = tint_mod_v3u32(v_1, uint3((b).xxx));
 }
 
diff --git a/test/tint/expressions/binary/mod_by_zero/by_identifier/vec3-vec3/f16.wgsl.expected.ir.dxc.hlsl b/test/tint/expressions/binary/mod_by_zero/by_identifier/vec3-vec3/f16.wgsl.expected.ir.dxc.hlsl
index 4bc1098..4d56461 100644
--- a/test/tint/expressions/binary/mod_by_zero/by_identifier/vec3-vec3/f16.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/expressions/binary/mod_by_zero/by_identifier/vec3-vec3/f16.wgsl.expected.ir.dxc.hlsl
@@ -1,7 +1,12 @@
+
 [numthreads(1, 1, 1)]
 void f() {
   vector<float16_t, 3> a = vector<float16_t, 3>(float16_t(1.0h), float16_t(2.0h), float16_t(3.0h));
   vector<float16_t, 3> b = vector<float16_t, 3>(float16_t(0.0h), float16_t(5.0h), float16_t(0.0h));
-  vector<float16_t, 3> r = (a % b);
+  vector<float16_t, 3> v = a;
+  vector<float16_t, 3> v_1 = b;
+  vector<float16_t, 3> v_2 = (v / v_1);
+  vector<float16_t, 3> v_3 = floor(v_2);
+  vector<float16_t, 3> r = ((v - (((v_2 < (float16_t(0.0h)).xxx)) ? (ceil(v_2)) : (v_3))) * v_1);
 }
 
diff --git a/test/tint/expressions/binary/mod_by_zero/by_identifier/vec3-vec3/f16.wgsl.expected.ir.fxc.hlsl b/test/tint/expressions/binary/mod_by_zero/by_identifier/vec3-vec3/f16.wgsl.expected.ir.fxc.hlsl
index 58251cd..d87e473 100644
--- a/test/tint/expressions/binary/mod_by_zero/by_identifier/vec3-vec3/f16.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/expressions/binary/mod_by_zero/by_identifier/vec3-vec3/f16.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,23 @@
 SKIP: FAILED
 
+
 [numthreads(1, 1, 1)]
 void f() {
   vector<float16_t, 3> a = vector<float16_t, 3>(float16_t(1.0h), float16_t(2.0h), float16_t(3.0h));
   vector<float16_t, 3> b = vector<float16_t, 3>(float16_t(0.0h), float16_t(5.0h), float16_t(0.0h));
-  vector<float16_t, 3> r = (a % b);
+  vector<float16_t, 3> v = a;
+  vector<float16_t, 3> v_1 = b;
+  vector<float16_t, 3> v_2 = (v / v_1);
+  vector<float16_t, 3> v_3 = floor(v_2);
+  vector<float16_t, 3> r = ((v - (((v_2 < (float16_t(0.0h)).xxx)) ? (ceil(v_2)) : (v_3))) * v_1);
 }
 
+FXC validation failure:
+c:\src\dawn\Shader@0x000001F4B9E25C40(4,10-18): error X3000: syntax error: unexpected token 'float16_t'
+c:\src\dawn\Shader@0x000001F4B9E25C40(5,10-18): error X3000: syntax error: unexpected token 'float16_t'
+c:\src\dawn\Shader@0x000001F4B9E25C40(6,10-18): error X3000: syntax error: unexpected token 'float16_t'
+c:\src\dawn\Shader@0x000001F4B9E25C40(7,10-18): error X3000: syntax error: unexpected token 'float16_t'
+c:\src\dawn\Shader@0x000001F4B9E25C40(8,10-18): error X3000: syntax error: unexpected token 'float16_t'
+c:\src\dawn\Shader@0x000001F4B9E25C40(9,10-18): error X3000: syntax error: unexpected token 'float16_t'
+c:\src\dawn\Shader@0x000001F4B9E25C40(10,10-18): error X3000: syntax error: unexpected token 'float16_t'
+
diff --git a/test/tint/expressions/binary/mod_by_zero/by_identifier/vec3-vec3/f32.wgsl.expected.ir.dxc.hlsl b/test/tint/expressions/binary/mod_by_zero/by_identifier/vec3-vec3/f32.wgsl.expected.ir.dxc.hlsl
index 92c57e1..b4827ba 100644
--- a/test/tint/expressions/binary/mod_by_zero/by_identifier/vec3-vec3/f32.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/expressions/binary/mod_by_zero/by_identifier/vec3-vec3/f32.wgsl.expected.ir.dxc.hlsl
@@ -1,7 +1,12 @@
+
 [numthreads(1, 1, 1)]
 void f() {
   float3 a = float3(1.0f, 2.0f, 3.0f);
   float3 b = float3(0.0f, 5.0f, 0.0f);
-  float3 r = (a % b);
+  float3 v = a;
+  float3 v_1 = b;
+  float3 v_2 = (v / v_1);
+  float3 v_3 = floor(v_2);
+  float3 r = ((v - (((v_2 < (0.0f).xxx)) ? (ceil(v_2)) : (v_3))) * v_1);
 }
 
diff --git a/test/tint/expressions/binary/mod_by_zero/by_identifier/vec3-vec3/f32.wgsl.expected.ir.fxc.hlsl b/test/tint/expressions/binary/mod_by_zero/by_identifier/vec3-vec3/f32.wgsl.expected.ir.fxc.hlsl
index 2eee6d5..b4827ba 100644
--- a/test/tint/expressions/binary/mod_by_zero/by_identifier/vec3-vec3/f32.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/expressions/binary/mod_by_zero/by_identifier/vec3-vec3/f32.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,12 @@
-SKIP: FAILED
 
 [numthreads(1, 1, 1)]
 void f() {
   float3 a = float3(1.0f, 2.0f, 3.0f);
   float3 b = float3(0.0f, 5.0f, 0.0f);
-  float3 r = (a % b);
+  float3 v = a;
+  float3 v_1 = b;
+  float3 v_2 = (v / v_1);
+  float3 v_3 = floor(v_2);
+  float3 r = ((v - (((v_2 < (0.0f).xxx)) ? (ceil(v_2)) : (v_3))) * v_1);
 }
 
diff --git a/test/tint/expressions/binary/mod_by_zero/by_identifier/vec3-vec3/i32.wgsl.expected.ir.dxc.hlsl b/test/tint/expressions/binary/mod_by_zero/by_identifier/vec3-vec3/i32.wgsl.expected.ir.dxc.hlsl
index fa7ab66..d172b48 100644
--- a/test/tint/expressions/binary/mod_by_zero/by_identifier/vec3-vec3/i32.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/expressions/binary/mod_by_zero/by_identifier/vec3-vec3/i32.wgsl.expected.ir.dxc.hlsl
@@ -1,7 +1,13 @@
+
+int3 tint_mod_v3i32(int3 lhs, int3 rhs) {
+  int3 v = ((((rhs == (0).xxx) | ((lhs == (-2147483648).xxx) & (rhs == (-1).xxx)))) ? ((1).xxx) : (rhs));
+  return (lhs - ((lhs / v) * v));
+}
+
 [numthreads(1, 1, 1)]
 void f() {
   int3 a = int3(1, 2, 3);
   int3 b = int3(0, 5, 0);
-  int3 r = (a % b);
+  int3 r = tint_mod_v3i32(a, b);
 }
 
diff --git a/test/tint/expressions/binary/mod_by_zero/by_identifier/vec3-vec3/i32.wgsl.expected.ir.fxc.hlsl b/test/tint/expressions/binary/mod_by_zero/by_identifier/vec3-vec3/i32.wgsl.expected.ir.fxc.hlsl
index 590164d..d172b48 100644
--- a/test/tint/expressions/binary/mod_by_zero/by_identifier/vec3-vec3/i32.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/expressions/binary/mod_by_zero/by_identifier/vec3-vec3/i32.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,13 @@
-SKIP: FAILED
+
+int3 tint_mod_v3i32(int3 lhs, int3 rhs) {
+  int3 v = ((((rhs == (0).xxx) | ((lhs == (-2147483648).xxx) & (rhs == (-1).xxx)))) ? ((1).xxx) : (rhs));
+  return (lhs - ((lhs / v) * v));
+}
 
 [numthreads(1, 1, 1)]
 void f() {
   int3 a = int3(1, 2, 3);
   int3 b = int3(0, 5, 0);
-  int3 r = (a % b);
+  int3 r = tint_mod_v3i32(a, b);
 }
 
diff --git a/test/tint/expressions/binary/mod_by_zero/by_identifier/vec3-vec3/u32.wgsl.expected.ir.dxc.hlsl b/test/tint/expressions/binary/mod_by_zero/by_identifier/vec3-vec3/u32.wgsl.expected.ir.dxc.hlsl
index 3b7f827..b7ad8f2 100644
--- a/test/tint/expressions/binary/mod_by_zero/by_identifier/vec3-vec3/u32.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/expressions/binary/mod_by_zero/by_identifier/vec3-vec3/u32.wgsl.expected.ir.dxc.hlsl
@@ -1,7 +1,13 @@
+
+uint3 tint_mod_v3u32(uint3 lhs, uint3 rhs) {
+  uint3 v = (((rhs == (0u).xxx)) ? ((1u).xxx) : (rhs));
+  return (lhs - ((lhs / v) * v));
+}
+
 [numthreads(1, 1, 1)]
 void f() {
   uint3 a = uint3(1u, 2u, 3u);
   uint3 b = uint3(0u, 5u, 0u);
-  uint3 r = (a % b);
+  uint3 r = tint_mod_v3u32(a, b);
 }
 
diff --git a/test/tint/expressions/binary/mod_by_zero/by_identifier/vec3-vec3/u32.wgsl.expected.ir.fxc.hlsl b/test/tint/expressions/binary/mod_by_zero/by_identifier/vec3-vec3/u32.wgsl.expected.ir.fxc.hlsl
index af5a0c4..b7ad8f2 100644
--- a/test/tint/expressions/binary/mod_by_zero/by_identifier/vec3-vec3/u32.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/expressions/binary/mod_by_zero/by_identifier/vec3-vec3/u32.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,13 @@
-SKIP: FAILED
+
+uint3 tint_mod_v3u32(uint3 lhs, uint3 rhs) {
+  uint3 v = (((rhs == (0u).xxx)) ? ((1u).xxx) : (rhs));
+  return (lhs - ((lhs / v) * v));
+}
 
 [numthreads(1, 1, 1)]
 void f() {
   uint3 a = uint3(1u, 2u, 3u);
   uint3 b = uint3(0u, 5u, 0u);
-  uint3 r = (a % b);
+  uint3 r = tint_mod_v3u32(a, b);
 }
 
diff --git a/test/tint/expressions/binary/mul/mat2x4-mat4x2/f16.wgsl.expected.ir.dxc.hlsl b/test/tint/expressions/binary/mul/mat2x4-mat4x2/f16.wgsl.expected.ir.dxc.hlsl
index 8bb2853..3dc00a3 100644
--- a/test/tint/expressions/binary/mul/mat2x4-mat4x2/f16.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/expressions/binary/mul/mat2x4-mat4x2/f16.wgsl.expected.ir.dxc.hlsl
@@ -1,14 +1,8 @@
-SKIP: FAILED
 
 [numthreads(1, 1, 1)]
 void f() {
   matrix<float16_t, 2, 4> a = matrix<float16_t, 2, 4>(vector<float16_t, 4>(float16_t(1.0h), float16_t(2.0h), float16_t(3.0h), float16_t(4.0h)), vector<float16_t, 4>(float16_t(5.0h), float16_t(6.0h), float16_t(7.0h), float16_t(8.0h)));
   matrix<float16_t, 4, 2> b = matrix<float16_t, 4, 2>(vector<float16_t, 2>(float16_t(-1.0h), float16_t(-2.0h)), vector<float16_t, 2>(float16_t(-3.0h), float16_t(-4.0h)), vector<float16_t, 2>(float16_t(-5.0h), float16_t(-6.0h)), vector<float16_t, 2>(float16_t(-7.0h), float16_t(-8.0h)));
-  matrix<float16_t, 4, 4> r = (a * b);
+  matrix<float16_t, 4, 4> r = mul(b, a);
 }
 
-DXC validation failure:
-hlsl.hlsl:5:36: error: cannot convert from 'matrix<float16_t, 4, 2>' to 'matrix<float16_t, 2, 4>'
-  matrix<float16_t, 4, 4> r = (a * b);
-                                   ^
-
diff --git a/test/tint/expressions/binary/mul/mat2x4-mat4x2/f16.wgsl.expected.ir.fxc.hlsl b/test/tint/expressions/binary/mul/mat2x4-mat4x2/f16.wgsl.expected.ir.fxc.hlsl
index b733d10..7f7b25d 100644
--- a/test/tint/expressions/binary/mul/mat2x4-mat4x2/f16.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/expressions/binary/mul/mat2x4-mat4x2/f16.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,15 @@
 SKIP: FAILED
 
+
 [numthreads(1, 1, 1)]
 void f() {
   matrix<float16_t, 2, 4> a = matrix<float16_t, 2, 4>(vector<float16_t, 4>(float16_t(1.0h), float16_t(2.0h), float16_t(3.0h), float16_t(4.0h)), vector<float16_t, 4>(float16_t(5.0h), float16_t(6.0h), float16_t(7.0h), float16_t(8.0h)));
   matrix<float16_t, 4, 2> b = matrix<float16_t, 4, 2>(vector<float16_t, 2>(float16_t(-1.0h), float16_t(-2.0h)), vector<float16_t, 2>(float16_t(-3.0h), float16_t(-4.0h)), vector<float16_t, 2>(float16_t(-5.0h), float16_t(-6.0h)), vector<float16_t, 2>(float16_t(-7.0h), float16_t(-8.0h)));
-  matrix<float16_t, 4, 4> r = (a * b);
+  matrix<float16_t, 4, 4> r = mul(b, a);
 }
 
+FXC validation failure:
+c:\src\dawn\Shader@0x0000020A6D0E3CA0(4,10-18): error X3000: syntax error: unexpected token 'float16_t'
+c:\src\dawn\Shader@0x0000020A6D0E3CA0(5,10-18): error X3000: syntax error: unexpected token 'float16_t'
+c:\src\dawn\Shader@0x0000020A6D0E3CA0(6,10-18): error X3000: syntax error: unexpected token 'float16_t'
+
diff --git a/test/tint/expressions/binary/mul/mat2x4-mat4x2/f32.wgsl.expected.ir.dxc.hlsl b/test/tint/expressions/binary/mul/mat2x4-mat4x2/f32.wgsl.expected.ir.dxc.hlsl
index d30657f..e4d43b8 100644
--- a/test/tint/expressions/binary/mul/mat2x4-mat4x2/f32.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/expressions/binary/mul/mat2x4-mat4x2/f32.wgsl.expected.ir.dxc.hlsl
@@ -1,14 +1,8 @@
-SKIP: FAILED
 
 [numthreads(1, 1, 1)]
 void f() {
   float2x4 a = float2x4(float4(1.0f, 2.0f, 3.0f, 4.0f), float4(5.0f, 6.0f, 7.0f, 8.0f));
   float4x2 b = float4x2(float2(-1.0f, -2.0f), float2(-3.0f, -4.0f), float2(-5.0f, -6.0f), float2(-7.0f, -8.0f));
-  float4x4 r = (a * b);
+  float4x4 r = mul(b, a);
 }
 
-DXC validation failure:
-hlsl.hlsl:5:21: error: cannot convert from 'float4x2' to 'float2x4'
-  float4x4 r = (a * b);
-                    ^
-
diff --git a/test/tint/expressions/binary/mul/mat2x4-mat4x2/f32.wgsl.expected.ir.fxc.hlsl b/test/tint/expressions/binary/mul/mat2x4-mat4x2/f32.wgsl.expected.ir.fxc.hlsl
index 8bc87c5..e4d43b8 100644
--- a/test/tint/expressions/binary/mul/mat2x4-mat4x2/f32.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/expressions/binary/mul/mat2x4-mat4x2/f32.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,8 @@
-SKIP: FAILED
 
 [numthreads(1, 1, 1)]
 void f() {
   float2x4 a = float2x4(float4(1.0f, 2.0f, 3.0f, 4.0f), float4(5.0f, 6.0f, 7.0f, 8.0f));
   float4x2 b = float4x2(float2(-1.0f, -2.0f), float2(-3.0f, -4.0f), float2(-5.0f, -6.0f), float2(-7.0f, -8.0f));
-  float4x4 r = (a * b);
+  float4x4 r = mul(b, a);
 }
 
diff --git a/test/tint/expressions/binary/mul/mat3x2-vec3/f16.wgsl.expected.ir.dxc.hlsl b/test/tint/expressions/binary/mul/mat3x2-vec3/f16.wgsl.expected.ir.dxc.hlsl
index 3f437dc..3fe0ad3 100644
--- a/test/tint/expressions/binary/mul/mat3x2-vec3/f16.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/expressions/binary/mul/mat3x2-vec3/f16.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,38 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Access
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+cbuffer cbuffer_data : register(b0) {
+  uint4 data[2];
+};
+vector<float16_t, 4> tint_bitcast_to_f16(uint4 src) {
+  uint4 v = src;
+  uint4 mask = (65535u).xxxx;
+  uint4 shift = (16u).xxxx;
+  float4 t_low = f16tof32((v & mask));
+  float4 t_high = f16tof32(((v >> shift) & mask));
+  float16_t v_1 = float16_t(t_low.x);
+  float16_t v_2 = float16_t(t_high.x);
+  float16_t v_3 = float16_t(t_low.y);
+  return vector<float16_t, 4>(v_1, v_2, v_3, float16_t(t_high.y));
+}
+
+vector<float16_t, 2> tint_bitcast_to_f16_1(uint src) {
+  uint v = src;
+  float t_low = f16tof32((v & 65535u));
+  float t_high = f16tof32(((v >> 16u) & 65535u));
+  float16_t v_4 = float16_t(t_low);
+  return vector<float16_t, 2>(v_4, float16_t(t_high));
+}
+
+matrix<float16_t, 3, 2> v_5(uint start_byte_offset) {
+  uint4 v_6 = data[(start_byte_offset / 16u)];
+  vector<float16_t, 2> v_7 = tint_bitcast_to_f16_1((((((start_byte_offset % 16u) / 4u) == 2u)) ? (v_6.z) : (v_6.x)));
+  uint4 v_8 = data[((4u + start_byte_offset) / 16u)];
+  vector<float16_t, 2> v_9 = tint_bitcast_to_f16_1(((((((4u + start_byte_offset) % 16u) / 4u) == 2u)) ? (v_8.z) : (v_8.x)));
+  uint4 v_10 = data[((8u + start_byte_offset) / 16u)];
+  return matrix<float16_t, 3, 2>(v_7, v_9, tint_bitcast_to_f16_1(((((((8u + start_byte_offset) % 16u) / 4u) == 2u)) ? (v_10.z) : (v_10.x))));
+}
+
+void main() {
+  matrix<float16_t, 3, 2> v_11 = v_5(0u);
+  vector<float16_t, 2> x = mul(tint_bitcast_to_f16(data[1u]).xyz, v_11);
+}
+
diff --git a/test/tint/expressions/binary/mul/mat3x2-vec3/f16.wgsl.expected.ir.fxc.hlsl b/test/tint/expressions/binary/mul/mat3x2-vec3/f16.wgsl.expected.ir.fxc.hlsl
index 3f437dc..92f8e83 100644
--- a/test/tint/expressions/binary/mul/mat3x2-vec3/f16.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/expressions/binary/mul/mat3x2-vec3/f16.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,43 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Access
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+
+cbuffer cbuffer_data : register(b0) {
+  uint4 data[2];
+};
+vector<float16_t, 4> tint_bitcast_to_f16(uint4 src) {
+  uint4 v = src;
+  uint4 mask = (65535u).xxxx;
+  uint4 shift = (16u).xxxx;
+  float4 t_low = f16tof32((v & mask));
+  float4 t_high = f16tof32(((v >> shift) & mask));
+  float16_t v_1 = float16_t(t_low.x);
+  float16_t v_2 = float16_t(t_high.x);
+  float16_t v_3 = float16_t(t_low.y);
+  return vector<float16_t, 4>(v_1, v_2, v_3, float16_t(t_high.y));
+}
+
+vector<float16_t, 2> tint_bitcast_to_f16_1(uint src) {
+  uint v = src;
+  float t_low = f16tof32((v & 65535u));
+  float t_high = f16tof32(((v >> 16u) & 65535u));
+  float16_t v_4 = float16_t(t_low);
+  return vector<float16_t, 2>(v_4, float16_t(t_high));
+}
+
+matrix<float16_t, 3, 2> v_5(uint start_byte_offset) {
+  uint4 v_6 = data[(start_byte_offset / 16u)];
+  vector<float16_t, 2> v_7 = tint_bitcast_to_f16_1((((((start_byte_offset % 16u) / 4u) == 2u)) ? (v_6.z) : (v_6.x)));
+  uint4 v_8 = data[((4u + start_byte_offset) / 16u)];
+  vector<float16_t, 2> v_9 = tint_bitcast_to_f16_1(((((((4u + start_byte_offset) % 16u) / 4u) == 2u)) ? (v_8.z) : (v_8.x)));
+  uint4 v_10 = data[((8u + start_byte_offset) / 16u)];
+  return matrix<float16_t, 3, 2>(v_7, v_9, tint_bitcast_to_f16_1(((((((8u + start_byte_offset) % 16u) / 4u) == 2u)) ? (v_10.z) : (v_10.x))));
+}
+
+void main() {
+  matrix<float16_t, 3, 2> v_11 = v_5(0u);
+  vector<float16_t, 2> x = mul(tint_bitcast_to_f16(data[1u]).xyz, v_11);
+}
+
+FXC validation failure:
+c:\src\dawn\Shader@0x000001E386A14610(5,8-16): error X3000: syntax error: unexpected token 'float16_t'
+
diff --git a/test/tint/expressions/binary/mul/mat3x2-vec3/f32.wgsl.expected.ir.dxc.hlsl b/test/tint/expressions/binary/mul/mat3x2-vec3/f32.wgsl.expected.ir.dxc.hlsl
index 3f437dc..20603bf 100644
--- a/test/tint/expressions/binary/mul/mat3x2-vec3/f32.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/expressions/binary/mul/mat3x2-vec3/f32.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,18 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Access
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+cbuffer cbuffer_data : register(b0) {
+  uint4 data[3];
+};
+float3x2 v(uint start_byte_offset) {
+  uint4 v_1 = data[(start_byte_offset / 16u)];
+  float2 v_2 = asfloat((((((start_byte_offset % 16u) / 4u) == 2u)) ? (v_1.zw) : (v_1.xy)));
+  uint4 v_3 = data[((8u + start_byte_offset) / 16u)];
+  float2 v_4 = asfloat(((((((8u + start_byte_offset) % 16u) / 4u) == 2u)) ? (v_3.zw) : (v_3.xy)));
+  uint4 v_5 = data[((16u + start_byte_offset) / 16u)];
+  return float3x2(v_2, v_4, asfloat(((((((16u + start_byte_offset) % 16u) / 4u) == 2u)) ? (v_5.zw) : (v_5.xy))));
+}
+
+void main() {
+  float3x2 v_6 = v(0u);
+  float2 x = mul(asfloat(data[2u].xyz), v_6);
+}
+
diff --git a/test/tint/expressions/binary/mul/mat3x2-vec3/f32.wgsl.expected.ir.fxc.hlsl b/test/tint/expressions/binary/mul/mat3x2-vec3/f32.wgsl.expected.ir.fxc.hlsl
index 3f437dc..20603bf 100644
--- a/test/tint/expressions/binary/mul/mat3x2-vec3/f32.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/expressions/binary/mul/mat3x2-vec3/f32.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,18 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Access
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+cbuffer cbuffer_data : register(b0) {
+  uint4 data[3];
+};
+float3x2 v(uint start_byte_offset) {
+  uint4 v_1 = data[(start_byte_offset / 16u)];
+  float2 v_2 = asfloat((((((start_byte_offset % 16u) / 4u) == 2u)) ? (v_1.zw) : (v_1.xy)));
+  uint4 v_3 = data[((8u + start_byte_offset) / 16u)];
+  float2 v_4 = asfloat(((((((8u + start_byte_offset) % 16u) / 4u) == 2u)) ? (v_3.zw) : (v_3.xy)));
+  uint4 v_5 = data[((16u + start_byte_offset) / 16u)];
+  return float3x2(v_2, v_4, asfloat(((((((16u + start_byte_offset) % 16u) / 4u) == 2u)) ? (v_5.zw) : (v_5.xy))));
+}
+
+void main() {
+  float3x2 v_6 = v(0u);
+  float2 x = mul(asfloat(data[2u].xyz), v_6);
+}
+
diff --git a/test/tint/expressions/binary/mul/mat3x3-mat3x3/f16.wgsl.expected.ir.dxc.hlsl b/test/tint/expressions/binary/mul/mat3x3-mat3x3/f16.wgsl.expected.ir.dxc.hlsl
index db2c44a..2444546 100644
--- a/test/tint/expressions/binary/mul/mat3x3-mat3x3/f16.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/expressions/binary/mul/mat3x3-mat3x3/f16.wgsl.expected.ir.dxc.hlsl
@@ -1,7 +1,8 @@
+
 [numthreads(1, 1, 1)]
 void f() {
   matrix<float16_t, 3, 3> a = matrix<float16_t, 3, 3>(vector<float16_t, 3>(float16_t(1.0h), float16_t(2.0h), float16_t(3.0h)), vector<float16_t, 3>(float16_t(4.0h), float16_t(5.0h), float16_t(6.0h)), vector<float16_t, 3>(float16_t(7.0h), float16_t(8.0h), float16_t(9.0h)));
   matrix<float16_t, 3, 3> b = matrix<float16_t, 3, 3>(vector<float16_t, 3>(float16_t(-1.0h), float16_t(-2.0h), float16_t(-3.0h)), vector<float16_t, 3>(float16_t(-4.0h), float16_t(-5.0h), float16_t(-6.0h)), vector<float16_t, 3>(float16_t(-7.0h), float16_t(-8.0h), float16_t(-9.0h)));
-  matrix<float16_t, 3, 3> r = (a * b);
+  matrix<float16_t, 3, 3> r = mul(b, a);
 }
 
diff --git a/test/tint/expressions/binary/mul/mat3x3-mat3x3/f16.wgsl.expected.ir.fxc.hlsl b/test/tint/expressions/binary/mul/mat3x3-mat3x3/f16.wgsl.expected.ir.fxc.hlsl
index 62cb9e4..32289e2 100644
--- a/test/tint/expressions/binary/mul/mat3x3-mat3x3/f16.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/expressions/binary/mul/mat3x3-mat3x3/f16.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,15 @@
 SKIP: FAILED
 
+
 [numthreads(1, 1, 1)]
 void f() {
   matrix<float16_t, 3, 3> a = matrix<float16_t, 3, 3>(vector<float16_t, 3>(float16_t(1.0h), float16_t(2.0h), float16_t(3.0h)), vector<float16_t, 3>(float16_t(4.0h), float16_t(5.0h), float16_t(6.0h)), vector<float16_t, 3>(float16_t(7.0h), float16_t(8.0h), float16_t(9.0h)));
   matrix<float16_t, 3, 3> b = matrix<float16_t, 3, 3>(vector<float16_t, 3>(float16_t(-1.0h), float16_t(-2.0h), float16_t(-3.0h)), vector<float16_t, 3>(float16_t(-4.0h), float16_t(-5.0h), float16_t(-6.0h)), vector<float16_t, 3>(float16_t(-7.0h), float16_t(-8.0h), float16_t(-9.0h)));
-  matrix<float16_t, 3, 3> r = (a * b);
+  matrix<float16_t, 3, 3> r = mul(b, a);
 }
 
+FXC validation failure:
+c:\src\dawn\Shader@0x0000014D0A505AC0(4,10-18): error X3000: syntax error: unexpected token 'float16_t'
+c:\src\dawn\Shader@0x0000014D0A505AC0(5,10-18): error X3000: syntax error: unexpected token 'float16_t'
+c:\src\dawn\Shader@0x0000014D0A505AC0(6,10-18): error X3000: syntax error: unexpected token 'float16_t'
+
diff --git a/test/tint/expressions/binary/mul/mat3x3-mat3x3/f32.wgsl.expected.ir.dxc.hlsl b/test/tint/expressions/binary/mul/mat3x3-mat3x3/f32.wgsl.expected.ir.dxc.hlsl
index cc82ab9..e36a817 100644
--- a/test/tint/expressions/binary/mul/mat3x3-mat3x3/f32.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/expressions/binary/mul/mat3x3-mat3x3/f32.wgsl.expected.ir.dxc.hlsl
@@ -1,7 +1,8 @@
+
 [numthreads(1, 1, 1)]
 void f() {
   float3x3 a = float3x3(float3(1.0f, 2.0f, 3.0f), float3(4.0f, 5.0f, 6.0f), float3(7.0f, 8.0f, 9.0f));
   float3x3 b = float3x3(float3(-1.0f, -2.0f, -3.0f), float3(-4.0f, -5.0f, -6.0f), float3(-7.0f, -8.0f, -9.0f));
-  float3x3 r = (a * b);
+  float3x3 r = mul(b, a);
 }
 
diff --git a/test/tint/expressions/binary/mul/mat3x3-mat3x3/f32.wgsl.expected.ir.fxc.hlsl b/test/tint/expressions/binary/mul/mat3x3-mat3x3/f32.wgsl.expected.ir.fxc.hlsl
index 3a5ac1a..e36a817 100644
--- a/test/tint/expressions/binary/mul/mat3x3-mat3x3/f32.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/expressions/binary/mul/mat3x3-mat3x3/f32.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,8 @@
-SKIP: FAILED
 
 [numthreads(1, 1, 1)]
 void f() {
   float3x3 a = float3x3(float3(1.0f, 2.0f, 3.0f), float3(4.0f, 5.0f, 6.0f), float3(7.0f, 8.0f, 9.0f));
   float3x3 b = float3x3(float3(-1.0f, -2.0f, -3.0f), float3(-4.0f, -5.0f, -6.0f), float3(-7.0f, -8.0f, -9.0f));
-  float3x3 r = (a * b);
+  float3x3 r = mul(b, a);
 }
 
diff --git a/test/tint/expressions/binary/mul/mat3x3-vec3/f16.wgsl.expected.ir.dxc.hlsl b/test/tint/expressions/binary/mul/mat3x3-vec3/f16.wgsl.expected.ir.dxc.hlsl
index 3f437dc..08b68de 100644
--- a/test/tint/expressions/binary/mul/mat3x3-vec3/f16.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/expressions/binary/mul/mat3x3-vec3/f16.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,27 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Access
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+cbuffer cbuffer_data : register(b0) {
+  uint4 data[2];
+};
+vector<float16_t, 4> tint_bitcast_to_f16(uint4 src) {
+  uint4 v = src;
+  uint4 mask = (65535u).xxxx;
+  uint4 shift = (16u).xxxx;
+  float4 t_low = f16tof32((v & mask));
+  float4 t_high = f16tof32(((v >> shift) & mask));
+  float16_t v_1 = float16_t(t_low.x);
+  float16_t v_2 = float16_t(t_high.x);
+  float16_t v_3 = float16_t(t_low.y);
+  return vector<float16_t, 4>(v_1, v_2, v_3, float16_t(t_high.y));
+}
+
+matrix<float16_t, 3, 3> v_4(uint start_byte_offset) {
+  vector<float16_t, 3> v_5 = tint_bitcast_to_f16(data[(start_byte_offset / 16u)]).xyz;
+  vector<float16_t, 3> v_6 = tint_bitcast_to_f16(data[((8u + start_byte_offset) / 16u)]).xyz;
+  return matrix<float16_t, 3, 3>(v_5, v_6, tint_bitcast_to_f16(data[((16u + start_byte_offset) / 16u)]).xyz);
+}
+
+void main() {
+  matrix<float16_t, 3, 3> v_7 = v_4(0u);
+  vector<float16_t, 3> x = mul(tint_bitcast_to_f16(data[1u]).xyz, v_7);
+}
+
diff --git a/test/tint/expressions/binary/mul/mat3x3-vec3/f16.wgsl.expected.ir.fxc.hlsl b/test/tint/expressions/binary/mul/mat3x3-vec3/f16.wgsl.expected.ir.fxc.hlsl
index 3f437dc..2c78d2d 100644
--- a/test/tint/expressions/binary/mul/mat3x3-vec3/f16.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/expressions/binary/mul/mat3x3-vec3/f16.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,32 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Access
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+
+cbuffer cbuffer_data : register(b0) {
+  uint4 data[2];
+};
+vector<float16_t, 4> tint_bitcast_to_f16(uint4 src) {
+  uint4 v = src;
+  uint4 mask = (65535u).xxxx;
+  uint4 shift = (16u).xxxx;
+  float4 t_low = f16tof32((v & mask));
+  float4 t_high = f16tof32(((v >> shift) & mask));
+  float16_t v_1 = float16_t(t_low.x);
+  float16_t v_2 = float16_t(t_high.x);
+  float16_t v_3 = float16_t(t_low.y);
+  return vector<float16_t, 4>(v_1, v_2, v_3, float16_t(t_high.y));
+}
+
+matrix<float16_t, 3, 3> v_4(uint start_byte_offset) {
+  vector<float16_t, 3> v_5 = tint_bitcast_to_f16(data[(start_byte_offset / 16u)]).xyz;
+  vector<float16_t, 3> v_6 = tint_bitcast_to_f16(data[((8u + start_byte_offset) / 16u)]).xyz;
+  return matrix<float16_t, 3, 3>(v_5, v_6, tint_bitcast_to_f16(data[((16u + start_byte_offset) / 16u)]).xyz);
+}
+
+void main() {
+  matrix<float16_t, 3, 3> v_7 = v_4(0u);
+  vector<float16_t, 3> x = mul(tint_bitcast_to_f16(data[1u]).xyz, v_7);
+}
+
+FXC validation failure:
+c:\src\dawn\Shader@0x000001CAB10F3C40(5,8-16): error X3000: syntax error: unexpected token 'float16_t'
+
diff --git a/test/tint/expressions/binary/mul/mat3x3-vec3/f32.wgsl.expected.ir.dxc.hlsl b/test/tint/expressions/binary/mul/mat3x3-vec3/f32.wgsl.expected.ir.dxc.hlsl
index 3f437dc..67866f1 100644
--- a/test/tint/expressions/binary/mul/mat3x3-vec3/f32.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/expressions/binary/mul/mat3x3-vec3/f32.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,15 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Access
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+cbuffer cbuffer_data : register(b0) {
+  uint4 data[4];
+};
+float3x3 v(uint start_byte_offset) {
+  float3 v_1 = asfloat(data[(start_byte_offset / 16u)].xyz);
+  float3 v_2 = asfloat(data[((16u + start_byte_offset) / 16u)].xyz);
+  return float3x3(v_1, v_2, asfloat(data[((32u + start_byte_offset) / 16u)].xyz));
+}
+
+void main() {
+  float3x3 v_3 = v(0u);
+  float3 x = mul(asfloat(data[3u].xyz), v_3);
+}
+
diff --git a/test/tint/expressions/binary/mul/mat3x3-vec3/f32.wgsl.expected.ir.fxc.hlsl b/test/tint/expressions/binary/mul/mat3x3-vec3/f32.wgsl.expected.ir.fxc.hlsl
index 3f437dc..67866f1 100644
--- a/test/tint/expressions/binary/mul/mat3x3-vec3/f32.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/expressions/binary/mul/mat3x3-vec3/f32.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,15 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Access
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+cbuffer cbuffer_data : register(b0) {
+  uint4 data[4];
+};
+float3x3 v(uint start_byte_offset) {
+  float3 v_1 = asfloat(data[(start_byte_offset / 16u)].xyz);
+  float3 v_2 = asfloat(data[((16u + start_byte_offset) / 16u)].xyz);
+  return float3x3(v_1, v_2, asfloat(data[((32u + start_byte_offset) / 16u)].xyz));
+}
+
+void main() {
+  float3x3 v_3 = v(0u);
+  float3 x = mul(asfloat(data[3u].xyz), v_3);
+}
+
diff --git a/test/tint/expressions/binary/mul/mat4x2-mat2x4/f16.wgsl.expected.ir.dxc.hlsl b/test/tint/expressions/binary/mul/mat4x2-mat2x4/f16.wgsl.expected.ir.dxc.hlsl
index 625a609..2d5ba34 100644
--- a/test/tint/expressions/binary/mul/mat4x2-mat2x4/f16.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/expressions/binary/mul/mat4x2-mat2x4/f16.wgsl.expected.ir.dxc.hlsl
@@ -1,14 +1,8 @@
-SKIP: FAILED
 
 [numthreads(1, 1, 1)]
 void f() {
   matrix<float16_t, 4, 2> a = matrix<float16_t, 4, 2>(vector<float16_t, 2>(float16_t(-1.0h), float16_t(-2.0h)), vector<float16_t, 2>(float16_t(-3.0h), float16_t(-4.0h)), vector<float16_t, 2>(float16_t(-5.0h), float16_t(-6.0h)), vector<float16_t, 2>(float16_t(-7.0h), float16_t(-8.0h)));
   matrix<float16_t, 2, 4> b = matrix<float16_t, 2, 4>(vector<float16_t, 4>(float16_t(1.0h), float16_t(2.0h), float16_t(3.0h), float16_t(4.0h)), vector<float16_t, 4>(float16_t(5.0h), float16_t(6.0h), float16_t(7.0h), float16_t(8.0h)));
-  matrix<float16_t, 2, 2> r = (a * b);
+  matrix<float16_t, 2, 2> r = mul(b, a);
 }
 
-DXC validation failure:
-hlsl.hlsl:5:36: error: cannot convert from 'matrix<float16_t, 2, 4>' to 'matrix<float16_t, 4, 2>'
-  matrix<float16_t, 2, 2> r = (a * b);
-                                   ^
-
diff --git a/test/tint/expressions/binary/mul/mat4x2-mat2x4/f16.wgsl.expected.ir.fxc.hlsl b/test/tint/expressions/binary/mul/mat4x2-mat2x4/f16.wgsl.expected.ir.fxc.hlsl
index 91f9c7a..c65d028 100644
--- a/test/tint/expressions/binary/mul/mat4x2-mat2x4/f16.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/expressions/binary/mul/mat4x2-mat2x4/f16.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,15 @@
 SKIP: FAILED
 
+
 [numthreads(1, 1, 1)]
 void f() {
   matrix<float16_t, 4, 2> a = matrix<float16_t, 4, 2>(vector<float16_t, 2>(float16_t(-1.0h), float16_t(-2.0h)), vector<float16_t, 2>(float16_t(-3.0h), float16_t(-4.0h)), vector<float16_t, 2>(float16_t(-5.0h), float16_t(-6.0h)), vector<float16_t, 2>(float16_t(-7.0h), float16_t(-8.0h)));
   matrix<float16_t, 2, 4> b = matrix<float16_t, 2, 4>(vector<float16_t, 4>(float16_t(1.0h), float16_t(2.0h), float16_t(3.0h), float16_t(4.0h)), vector<float16_t, 4>(float16_t(5.0h), float16_t(6.0h), float16_t(7.0h), float16_t(8.0h)));
-  matrix<float16_t, 2, 2> r = (a * b);
+  matrix<float16_t, 2, 2> r = mul(b, a);
 }
 
+FXC validation failure:
+c:\src\dawn\Shader@0x000002F8E7786470(4,10-18): error X3000: syntax error: unexpected token 'float16_t'
+c:\src\dawn\Shader@0x000002F8E7786470(5,10-18): error X3000: syntax error: unexpected token 'float16_t'
+c:\src\dawn\Shader@0x000002F8E7786470(6,10-18): error X3000: syntax error: unexpected token 'float16_t'
+
diff --git a/test/tint/expressions/binary/mul/mat4x2-mat2x4/f32.wgsl.expected.ir.dxc.hlsl b/test/tint/expressions/binary/mul/mat4x2-mat2x4/f32.wgsl.expected.ir.dxc.hlsl
index dfcb29c..d54fcfd 100644
--- a/test/tint/expressions/binary/mul/mat4x2-mat2x4/f32.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/expressions/binary/mul/mat4x2-mat2x4/f32.wgsl.expected.ir.dxc.hlsl
@@ -1,14 +1,8 @@
-SKIP: FAILED
 
 [numthreads(1, 1, 1)]
 void f() {
   float4x2 a = float4x2(float2(-1.0f, -2.0f), float2(-3.0f, -4.0f), float2(-5.0f, -6.0f), float2(-7.0f, -8.0f));
   float2x4 b = float2x4(float4(1.0f, 2.0f, 3.0f, 4.0f), float4(5.0f, 6.0f, 7.0f, 8.0f));
-  float2x2 r = (a * b);
+  float2x2 r = mul(b, a);
 }
 
-DXC validation failure:
-hlsl.hlsl:5:21: error: cannot convert from 'float2x4' to 'float4x2'
-  float2x2 r = (a * b);
-                    ^
-
diff --git a/test/tint/expressions/binary/mul/mat4x2-mat2x4/f32.wgsl.expected.ir.fxc.hlsl b/test/tint/expressions/binary/mul/mat4x2-mat2x4/f32.wgsl.expected.ir.fxc.hlsl
index 276aa94..d54fcfd 100644
--- a/test/tint/expressions/binary/mul/mat4x2-mat2x4/f32.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/expressions/binary/mul/mat4x2-mat2x4/f32.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,8 @@
-SKIP: FAILED
 
 [numthreads(1, 1, 1)]
 void f() {
   float4x2 a = float4x2(float2(-1.0f, -2.0f), float2(-3.0f, -4.0f), float2(-5.0f, -6.0f), float2(-7.0f, -8.0f));
   float2x4 b = float2x4(float4(1.0f, 2.0f, 3.0f, 4.0f), float4(5.0f, 6.0f, 7.0f, 8.0f));
-  float2x2 r = (a * b);
+  float2x2 r = mul(b, a);
 }
 
diff --git a/test/tint/expressions/binary/mul/scalar-scalar/f16.wgsl.expected.ir.dxc.hlsl b/test/tint/expressions/binary/mul/scalar-scalar/f16.wgsl.expected.ir.dxc.hlsl
index 81335b8..e33b643 100644
--- a/test/tint/expressions/binary/mul/scalar-scalar/f16.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/expressions/binary/mul/scalar-scalar/f16.wgsl.expected.ir.dxc.hlsl
@@ -1,3 +1,4 @@
+
 [numthreads(1, 1, 1)]
 void f() {
   float16_t a = float16_t(1.0h);
diff --git a/test/tint/expressions/binary/mul/scalar-scalar/f16.wgsl.expected.ir.fxc.hlsl b/test/tint/expressions/binary/mul/scalar-scalar/f16.wgsl.expected.ir.fxc.hlsl
index dc42372..924aee5 100644
--- a/test/tint/expressions/binary/mul/scalar-scalar/f16.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/expressions/binary/mul/scalar-scalar/f16.wgsl.expected.ir.fxc.hlsl
@@ -1,5 +1,6 @@
 SKIP: FAILED
 
+
 [numthreads(1, 1, 1)]
 void f() {
   float16_t a = float16_t(1.0h);
@@ -7,3 +8,7 @@
   float16_t r = (a * b);
 }
 
+FXC validation failure:
+c:\src\dawn\Shader@0x000001CD1FE33290(4,3-11): error X3000: unrecognized identifier 'float16_t'
+c:\src\dawn\Shader@0x000001CD1FE33290(4,13): error X3000: unrecognized identifier 'a'
+
diff --git a/test/tint/expressions/binary/mul/scalar-scalar/f32.wgsl.expected.ir.dxc.hlsl b/test/tint/expressions/binary/mul/scalar-scalar/f32.wgsl.expected.ir.dxc.hlsl
index f28e362..e676952 100644
--- a/test/tint/expressions/binary/mul/scalar-scalar/f32.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/expressions/binary/mul/scalar-scalar/f32.wgsl.expected.ir.dxc.hlsl
@@ -1,3 +1,4 @@
+
 [numthreads(1, 1, 1)]
 void f() {
   float a = 1.0f;
diff --git a/test/tint/expressions/binary/mul/scalar-scalar/f32.wgsl.expected.ir.fxc.hlsl b/test/tint/expressions/binary/mul/scalar-scalar/f32.wgsl.expected.ir.fxc.hlsl
index 6d7d1c5..e676952 100644
--- a/test/tint/expressions/binary/mul/scalar-scalar/f32.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/expressions/binary/mul/scalar-scalar/f32.wgsl.expected.ir.fxc.hlsl
@@ -1,4 +1,3 @@
-SKIP: FAILED
 
 [numthreads(1, 1, 1)]
 void f() {
diff --git a/test/tint/expressions/binary/mul/scalar-scalar/i32.wgsl.expected.ir.dxc.hlsl b/test/tint/expressions/binary/mul/scalar-scalar/i32.wgsl.expected.ir.dxc.hlsl
index 360110e..8d2b505 100644
--- a/test/tint/expressions/binary/mul/scalar-scalar/i32.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/expressions/binary/mul/scalar-scalar/i32.wgsl.expected.ir.dxc.hlsl
@@ -1,3 +1,4 @@
+
 [numthreads(1, 1, 1)]
 void f() {
   int a = 1;
diff --git a/test/tint/expressions/binary/mul/scalar-scalar/i32.wgsl.expected.ir.fxc.hlsl b/test/tint/expressions/binary/mul/scalar-scalar/i32.wgsl.expected.ir.fxc.hlsl
index 21959c0..8d2b505 100644
--- a/test/tint/expressions/binary/mul/scalar-scalar/i32.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/expressions/binary/mul/scalar-scalar/i32.wgsl.expected.ir.fxc.hlsl
@@ -1,4 +1,3 @@
-SKIP: FAILED
 
 [numthreads(1, 1, 1)]
 void f() {
diff --git a/test/tint/expressions/binary/mul/scalar-scalar/u32.wgsl.expected.ir.dxc.hlsl b/test/tint/expressions/binary/mul/scalar-scalar/u32.wgsl.expected.ir.dxc.hlsl
index bc5f956..c26d57f 100644
--- a/test/tint/expressions/binary/mul/scalar-scalar/u32.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/expressions/binary/mul/scalar-scalar/u32.wgsl.expected.ir.dxc.hlsl
@@ -1,3 +1,4 @@
+
 [numthreads(1, 1, 1)]
 void f() {
   uint a = 1u;
diff --git a/test/tint/expressions/binary/mul/scalar-scalar/u32.wgsl.expected.ir.fxc.hlsl b/test/tint/expressions/binary/mul/scalar-scalar/u32.wgsl.expected.ir.fxc.hlsl
index 4b2fecf..c26d57f 100644
--- a/test/tint/expressions/binary/mul/scalar-scalar/u32.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/expressions/binary/mul/scalar-scalar/u32.wgsl.expected.ir.fxc.hlsl
@@ -1,4 +1,3 @@
-SKIP: FAILED
 
 [numthreads(1, 1, 1)]
 void f() {
diff --git a/test/tint/expressions/binary/mul/scalar-vec3/f16.wgsl.expected.ir.dxc.hlsl b/test/tint/expressions/binary/mul/scalar-vec3/f16.wgsl.expected.ir.dxc.hlsl
index 0e31875..3f7d755 100644
--- a/test/tint/expressions/binary/mul/scalar-vec3/f16.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/expressions/binary/mul/scalar-vec3/f16.wgsl.expected.ir.dxc.hlsl
@@ -1,3 +1,4 @@
+
 [numthreads(1, 1, 1)]
 void f() {
   float16_t a = float16_t(4.0h);
diff --git a/test/tint/expressions/binary/mul/scalar-vec3/f16.wgsl.expected.ir.fxc.hlsl b/test/tint/expressions/binary/mul/scalar-vec3/f16.wgsl.expected.ir.fxc.hlsl
index f819fc3..a0ce53a 100644
--- a/test/tint/expressions/binary/mul/scalar-vec3/f16.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/expressions/binary/mul/scalar-vec3/f16.wgsl.expected.ir.fxc.hlsl
@@ -1,5 +1,6 @@
 SKIP: FAILED
 
+
 [numthreads(1, 1, 1)]
 void f() {
   float16_t a = float16_t(4.0h);
@@ -7,3 +8,7 @@
   vector<float16_t, 3> r = (a * b);
 }
 
+FXC validation failure:
+c:\src\dawn\Shader@0x000001F5F0CCF730(4,3-11): error X3000: unrecognized identifier 'float16_t'
+c:\src\dawn\Shader@0x000001F5F0CCF730(4,13): error X3000: unrecognized identifier 'a'
+
diff --git a/test/tint/expressions/binary/mul/scalar-vec3/f32.wgsl.expected.ir.dxc.hlsl b/test/tint/expressions/binary/mul/scalar-vec3/f32.wgsl.expected.ir.dxc.hlsl
index eeed6c4..6692a8b 100644
--- a/test/tint/expressions/binary/mul/scalar-vec3/f32.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/expressions/binary/mul/scalar-vec3/f32.wgsl.expected.ir.dxc.hlsl
@@ -1,3 +1,4 @@
+
 [numthreads(1, 1, 1)]
 void f() {
   float a = 4.0f;
diff --git a/test/tint/expressions/binary/mul/scalar-vec3/f32.wgsl.expected.ir.fxc.hlsl b/test/tint/expressions/binary/mul/scalar-vec3/f32.wgsl.expected.ir.fxc.hlsl
index 56326db..6692a8b 100644
--- a/test/tint/expressions/binary/mul/scalar-vec3/f32.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/expressions/binary/mul/scalar-vec3/f32.wgsl.expected.ir.fxc.hlsl
@@ -1,4 +1,3 @@
-SKIP: FAILED
 
 [numthreads(1, 1, 1)]
 void f() {
diff --git a/test/tint/expressions/binary/mul/scalar-vec3/i32.wgsl.expected.ir.dxc.hlsl b/test/tint/expressions/binary/mul/scalar-vec3/i32.wgsl.expected.ir.dxc.hlsl
index effb7b8..b4e99f8 100644
--- a/test/tint/expressions/binary/mul/scalar-vec3/i32.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/expressions/binary/mul/scalar-vec3/i32.wgsl.expected.ir.dxc.hlsl
@@ -1,3 +1,4 @@
+
 [numthreads(1, 1, 1)]
 void f() {
   int a = 4;
diff --git a/test/tint/expressions/binary/mul/scalar-vec3/i32.wgsl.expected.ir.fxc.hlsl b/test/tint/expressions/binary/mul/scalar-vec3/i32.wgsl.expected.ir.fxc.hlsl
index 8e959d9..b4e99f8 100644
--- a/test/tint/expressions/binary/mul/scalar-vec3/i32.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/expressions/binary/mul/scalar-vec3/i32.wgsl.expected.ir.fxc.hlsl
@@ -1,4 +1,3 @@
-SKIP: FAILED
 
 [numthreads(1, 1, 1)]
 void f() {
diff --git a/test/tint/expressions/binary/mul/scalar-vec3/u32.wgsl.expected.ir.dxc.hlsl b/test/tint/expressions/binary/mul/scalar-vec3/u32.wgsl.expected.ir.dxc.hlsl
index ebef627..388b572 100644
--- a/test/tint/expressions/binary/mul/scalar-vec3/u32.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/expressions/binary/mul/scalar-vec3/u32.wgsl.expected.ir.dxc.hlsl
@@ -1,3 +1,4 @@
+
 [numthreads(1, 1, 1)]
 void f() {
   uint a = 4u;
diff --git a/test/tint/expressions/binary/mul/scalar-vec3/u32.wgsl.expected.ir.fxc.hlsl b/test/tint/expressions/binary/mul/scalar-vec3/u32.wgsl.expected.ir.fxc.hlsl
index 82c284c..388b572 100644
--- a/test/tint/expressions/binary/mul/scalar-vec3/u32.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/expressions/binary/mul/scalar-vec3/u32.wgsl.expected.ir.fxc.hlsl
@@ -1,4 +1,3 @@
-SKIP: FAILED
 
 [numthreads(1, 1, 1)]
 void f() {
diff --git a/test/tint/expressions/binary/mul/vec3-mat3x3/f16.wgsl.expected.ir.dxc.hlsl b/test/tint/expressions/binary/mul/vec3-mat3x3/f16.wgsl.expected.ir.dxc.hlsl
index 3f437dc..1e72cbc 100644
--- a/test/tint/expressions/binary/mul/vec3-mat3x3/f16.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/expressions/binary/mul/vec3-mat3x3/f16.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,27 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Access
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+cbuffer cbuffer_data : register(b0) {
+  uint4 data[2];
+};
+vector<float16_t, 4> tint_bitcast_to_f16(uint4 src) {
+  uint4 v = src;
+  uint4 mask = (65535u).xxxx;
+  uint4 shift = (16u).xxxx;
+  float4 t_low = f16tof32((v & mask));
+  float4 t_high = f16tof32(((v >> shift) & mask));
+  float16_t v_1 = float16_t(t_low.x);
+  float16_t v_2 = float16_t(t_high.x);
+  float16_t v_3 = float16_t(t_low.y);
+  return vector<float16_t, 4>(v_1, v_2, v_3, float16_t(t_high.y));
+}
+
+matrix<float16_t, 3, 3> v_4(uint start_byte_offset) {
+  vector<float16_t, 3> v_5 = tint_bitcast_to_f16(data[(start_byte_offset / 16u)]).xyz;
+  vector<float16_t, 3> v_6 = tint_bitcast_to_f16(data[((8u + start_byte_offset) / 16u)]).xyz;
+  return matrix<float16_t, 3, 3>(v_5, v_6, tint_bitcast_to_f16(data[((16u + start_byte_offset) / 16u)]).xyz);
+}
+
+void main() {
+  vector<float16_t, 3> v_7 = tint_bitcast_to_f16(data[1u]).xyz;
+  vector<float16_t, 3> x = mul(v_4(0u), v_7);
+}
+
diff --git a/test/tint/expressions/binary/mul/vec3-mat3x3/f16.wgsl.expected.ir.fxc.hlsl b/test/tint/expressions/binary/mul/vec3-mat3x3/f16.wgsl.expected.ir.fxc.hlsl
index 3f437dc..72088e7 100644
--- a/test/tint/expressions/binary/mul/vec3-mat3x3/f16.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/expressions/binary/mul/vec3-mat3x3/f16.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,32 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Access
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+
+cbuffer cbuffer_data : register(b0) {
+  uint4 data[2];
+};
+vector<float16_t, 4> tint_bitcast_to_f16(uint4 src) {
+  uint4 v = src;
+  uint4 mask = (65535u).xxxx;
+  uint4 shift = (16u).xxxx;
+  float4 t_low = f16tof32((v & mask));
+  float4 t_high = f16tof32(((v >> shift) & mask));
+  float16_t v_1 = float16_t(t_low.x);
+  float16_t v_2 = float16_t(t_high.x);
+  float16_t v_3 = float16_t(t_low.y);
+  return vector<float16_t, 4>(v_1, v_2, v_3, float16_t(t_high.y));
+}
+
+matrix<float16_t, 3, 3> v_4(uint start_byte_offset) {
+  vector<float16_t, 3> v_5 = tint_bitcast_to_f16(data[(start_byte_offset / 16u)]).xyz;
+  vector<float16_t, 3> v_6 = tint_bitcast_to_f16(data[((8u + start_byte_offset) / 16u)]).xyz;
+  return matrix<float16_t, 3, 3>(v_5, v_6, tint_bitcast_to_f16(data[((16u + start_byte_offset) / 16u)]).xyz);
+}
+
+void main() {
+  vector<float16_t, 3> v_7 = tint_bitcast_to_f16(data[1u]).xyz;
+  vector<float16_t, 3> x = mul(v_4(0u), v_7);
+}
+
+FXC validation failure:
+c:\src\dawn\Shader@0x0000027803A8F790(5,8-16): error X3000: syntax error: unexpected token 'float16_t'
+
diff --git a/test/tint/expressions/binary/mul/vec3-mat3x3/f32.wgsl.expected.ir.dxc.hlsl b/test/tint/expressions/binary/mul/vec3-mat3x3/f32.wgsl.expected.ir.dxc.hlsl
index 3f437dc..6a477e0 100644
--- a/test/tint/expressions/binary/mul/vec3-mat3x3/f32.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/expressions/binary/mul/vec3-mat3x3/f32.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,15 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Access
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+cbuffer cbuffer_data : register(b0) {
+  uint4 data[4];
+};
+float3x3 v(uint start_byte_offset) {
+  float3 v_1 = asfloat(data[(start_byte_offset / 16u)].xyz);
+  float3 v_2 = asfloat(data[((16u + start_byte_offset) / 16u)].xyz);
+  return float3x3(v_1, v_2, asfloat(data[((32u + start_byte_offset) / 16u)].xyz));
+}
+
+void main() {
+  float3 v_3 = asfloat(data[3u].xyz);
+  float3 x = mul(v(0u), v_3);
+}
+
diff --git a/test/tint/expressions/binary/mul/vec3-mat3x3/f32.wgsl.expected.ir.fxc.hlsl b/test/tint/expressions/binary/mul/vec3-mat3x3/f32.wgsl.expected.ir.fxc.hlsl
index 3f437dc..6a477e0 100644
--- a/test/tint/expressions/binary/mul/vec3-mat3x3/f32.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/expressions/binary/mul/vec3-mat3x3/f32.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,15 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Access
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+cbuffer cbuffer_data : register(b0) {
+  uint4 data[4];
+};
+float3x3 v(uint start_byte_offset) {
+  float3 v_1 = asfloat(data[(start_byte_offset / 16u)].xyz);
+  float3 v_2 = asfloat(data[((16u + start_byte_offset) / 16u)].xyz);
+  return float3x3(v_1, v_2, asfloat(data[((32u + start_byte_offset) / 16u)].xyz));
+}
+
+void main() {
+  float3 v_3 = asfloat(data[3u].xyz);
+  float3 x = mul(v(0u), v_3);
+}
+
diff --git a/test/tint/expressions/binary/mul/vec3-mat4x3/f16.wgsl.expected.ir.dxc.hlsl b/test/tint/expressions/binary/mul/vec3-mat4x3/f16.wgsl.expected.ir.dxc.hlsl
index 3f437dc..78bafe0 100644
--- a/test/tint/expressions/binary/mul/vec3-mat4x3/f16.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/expressions/binary/mul/vec3-mat4x3/f16.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,28 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Access
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+cbuffer cbuffer_data : register(b0) {
+  uint4 data[3];
+};
+vector<float16_t, 4> tint_bitcast_to_f16(uint4 src) {
+  uint4 v = src;
+  uint4 mask = (65535u).xxxx;
+  uint4 shift = (16u).xxxx;
+  float4 t_low = f16tof32((v & mask));
+  float4 t_high = f16tof32(((v >> shift) & mask));
+  float16_t v_1 = float16_t(t_low.x);
+  float16_t v_2 = float16_t(t_high.x);
+  float16_t v_3 = float16_t(t_low.y);
+  return vector<float16_t, 4>(v_1, v_2, v_3, float16_t(t_high.y));
+}
+
+matrix<float16_t, 4, 3> v_4(uint start_byte_offset) {
+  vector<float16_t, 3> v_5 = tint_bitcast_to_f16(data[(start_byte_offset / 16u)]).xyz;
+  vector<float16_t, 3> v_6 = tint_bitcast_to_f16(data[((8u + start_byte_offset) / 16u)]).xyz;
+  vector<float16_t, 3> v_7 = tint_bitcast_to_f16(data[((16u + start_byte_offset) / 16u)]).xyz;
+  return matrix<float16_t, 4, 3>(v_5, v_6, v_7, tint_bitcast_to_f16(data[((24u + start_byte_offset) / 16u)]).xyz);
+}
+
+void main() {
+  vector<float16_t, 3> v_8 = tint_bitcast_to_f16(data[2u]).xyz;
+  vector<float16_t, 4> x = mul(v_4(0u), v_8);
+}
+
diff --git a/test/tint/expressions/binary/mul/vec3-mat4x3/f16.wgsl.expected.ir.fxc.hlsl b/test/tint/expressions/binary/mul/vec3-mat4x3/f16.wgsl.expected.ir.fxc.hlsl
index 3f437dc..f2cbb5a 100644
--- a/test/tint/expressions/binary/mul/vec3-mat4x3/f16.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/expressions/binary/mul/vec3-mat4x3/f16.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,33 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Access
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+
+cbuffer cbuffer_data : register(b0) {
+  uint4 data[3];
+};
+vector<float16_t, 4> tint_bitcast_to_f16(uint4 src) {
+  uint4 v = src;
+  uint4 mask = (65535u).xxxx;
+  uint4 shift = (16u).xxxx;
+  float4 t_low = f16tof32((v & mask));
+  float4 t_high = f16tof32(((v >> shift) & mask));
+  float16_t v_1 = float16_t(t_low.x);
+  float16_t v_2 = float16_t(t_high.x);
+  float16_t v_3 = float16_t(t_low.y);
+  return vector<float16_t, 4>(v_1, v_2, v_3, float16_t(t_high.y));
+}
+
+matrix<float16_t, 4, 3> v_4(uint start_byte_offset) {
+  vector<float16_t, 3> v_5 = tint_bitcast_to_f16(data[(start_byte_offset / 16u)]).xyz;
+  vector<float16_t, 3> v_6 = tint_bitcast_to_f16(data[((8u + start_byte_offset) / 16u)]).xyz;
+  vector<float16_t, 3> v_7 = tint_bitcast_to_f16(data[((16u + start_byte_offset) / 16u)]).xyz;
+  return matrix<float16_t, 4, 3>(v_5, v_6, v_7, tint_bitcast_to_f16(data[((24u + start_byte_offset) / 16u)]).xyz);
+}
+
+void main() {
+  vector<float16_t, 3> v_8 = tint_bitcast_to_f16(data[2u]).xyz;
+  vector<float16_t, 4> x = mul(v_4(0u), v_8);
+}
+
+FXC validation failure:
+c:\src\dawn\Shader@0x000001D30B5F4CC0(5,8-16): error X3000: syntax error: unexpected token 'float16_t'
+
diff --git a/test/tint/expressions/binary/mul/vec3-mat4x3/f32.wgsl.expected.ir.dxc.hlsl b/test/tint/expressions/binary/mul/vec3-mat4x3/f32.wgsl.expected.ir.dxc.hlsl
index 3f437dc..36c7465 100644
--- a/test/tint/expressions/binary/mul/vec3-mat4x3/f32.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/expressions/binary/mul/vec3-mat4x3/f32.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,16 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Access
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+cbuffer cbuffer_data : register(b0) {
+  uint4 data[5];
+};
+float4x3 v(uint start_byte_offset) {
+  float3 v_1 = asfloat(data[(start_byte_offset / 16u)].xyz);
+  float3 v_2 = asfloat(data[((16u + start_byte_offset) / 16u)].xyz);
+  float3 v_3 = asfloat(data[((32u + start_byte_offset) / 16u)].xyz);
+  return float4x3(v_1, v_2, v_3, asfloat(data[((48u + start_byte_offset) / 16u)].xyz));
+}
+
+void main() {
+  float3 v_4 = asfloat(data[4u].xyz);
+  float4 x = mul(v(0u), v_4);
+}
+
diff --git a/test/tint/expressions/binary/mul/vec3-mat4x3/f32.wgsl.expected.ir.fxc.hlsl b/test/tint/expressions/binary/mul/vec3-mat4x3/f32.wgsl.expected.ir.fxc.hlsl
index 3f437dc..36c7465 100644
--- a/test/tint/expressions/binary/mul/vec3-mat4x3/f32.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/expressions/binary/mul/vec3-mat4x3/f32.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,16 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Access
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+cbuffer cbuffer_data : register(b0) {
+  uint4 data[5];
+};
+float4x3 v(uint start_byte_offset) {
+  float3 v_1 = asfloat(data[(start_byte_offset / 16u)].xyz);
+  float3 v_2 = asfloat(data[((16u + start_byte_offset) / 16u)].xyz);
+  float3 v_3 = asfloat(data[((32u + start_byte_offset) / 16u)].xyz);
+  return float4x3(v_1, v_2, v_3, asfloat(data[((48u + start_byte_offset) / 16u)].xyz));
+}
+
+void main() {
+  float3 v_4 = asfloat(data[4u].xyz);
+  float4 x = mul(v(0u), v_4);
+}
+
diff --git a/test/tint/expressions/binary/mul/vec3-scalar/f16.wgsl.expected.ir.dxc.hlsl b/test/tint/expressions/binary/mul/vec3-scalar/f16.wgsl.expected.ir.dxc.hlsl
index 3f9b8a2..5ec3d81 100644
--- a/test/tint/expressions/binary/mul/vec3-scalar/f16.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/expressions/binary/mul/vec3-scalar/f16.wgsl.expected.ir.dxc.hlsl
@@ -1,3 +1,4 @@
+
 [numthreads(1, 1, 1)]
 void f() {
   vector<float16_t, 3> a = vector<float16_t, 3>(float16_t(1.0h), float16_t(2.0h), float16_t(3.0h));
diff --git a/test/tint/expressions/binary/mul/vec3-scalar/f16.wgsl.expected.ir.fxc.hlsl b/test/tint/expressions/binary/mul/vec3-scalar/f16.wgsl.expected.ir.fxc.hlsl
index a9ceead..b171dbe 100644
--- a/test/tint/expressions/binary/mul/vec3-scalar/f16.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/expressions/binary/mul/vec3-scalar/f16.wgsl.expected.ir.fxc.hlsl
@@ -1,5 +1,6 @@
 SKIP: FAILED
 
+
 [numthreads(1, 1, 1)]
 void f() {
   vector<float16_t, 3> a = vector<float16_t, 3>(float16_t(1.0h), float16_t(2.0h), float16_t(3.0h));
@@ -7,3 +8,8 @@
   vector<float16_t, 3> r = (a * b);
 }
 
+FXC validation failure:
+c:\src\dawn\Shader@0x000002C499BDDC10(4,10-18): error X3000: syntax error: unexpected token 'float16_t'
+c:\src\dawn\Shader@0x000002C499BDDC10(5,3-11): error X3000: unrecognized identifier 'float16_t'
+c:\src\dawn\Shader@0x000002C499BDDC10(5,13): error X3000: unrecognized identifier 'b'
+
diff --git a/test/tint/expressions/binary/mul/vec3-scalar/f32.wgsl.expected.ir.dxc.hlsl b/test/tint/expressions/binary/mul/vec3-scalar/f32.wgsl.expected.ir.dxc.hlsl
index d258370..c92385a 100644
--- a/test/tint/expressions/binary/mul/vec3-scalar/f32.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/expressions/binary/mul/vec3-scalar/f32.wgsl.expected.ir.dxc.hlsl
@@ -1,3 +1,4 @@
+
 [numthreads(1, 1, 1)]
 void f() {
   float3 a = float3(1.0f, 2.0f, 3.0f);
diff --git a/test/tint/expressions/binary/mul/vec3-scalar/f32.wgsl.expected.ir.fxc.hlsl b/test/tint/expressions/binary/mul/vec3-scalar/f32.wgsl.expected.ir.fxc.hlsl
index c2003ae..c92385a 100644
--- a/test/tint/expressions/binary/mul/vec3-scalar/f32.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/expressions/binary/mul/vec3-scalar/f32.wgsl.expected.ir.fxc.hlsl
@@ -1,4 +1,3 @@
-SKIP: FAILED
 
 [numthreads(1, 1, 1)]
 void f() {
diff --git a/test/tint/expressions/binary/mul/vec3-scalar/i32.wgsl.expected.ir.dxc.hlsl b/test/tint/expressions/binary/mul/vec3-scalar/i32.wgsl.expected.ir.dxc.hlsl
index b37c78a..d7c3534 100644
--- a/test/tint/expressions/binary/mul/vec3-scalar/i32.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/expressions/binary/mul/vec3-scalar/i32.wgsl.expected.ir.dxc.hlsl
@@ -1,3 +1,4 @@
+
 [numthreads(1, 1, 1)]
 void f() {
   int3 a = int3(1, 2, 3);
diff --git a/test/tint/expressions/binary/mul/vec3-scalar/i32.wgsl.expected.ir.fxc.hlsl b/test/tint/expressions/binary/mul/vec3-scalar/i32.wgsl.expected.ir.fxc.hlsl
index d59d7ae..d7c3534 100644
--- a/test/tint/expressions/binary/mul/vec3-scalar/i32.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/expressions/binary/mul/vec3-scalar/i32.wgsl.expected.ir.fxc.hlsl
@@ -1,4 +1,3 @@
-SKIP: FAILED
 
 [numthreads(1, 1, 1)]
 void f() {
diff --git a/test/tint/expressions/binary/mul/vec3-scalar/u32.wgsl.expected.ir.dxc.hlsl b/test/tint/expressions/binary/mul/vec3-scalar/u32.wgsl.expected.ir.dxc.hlsl
index 115d5ac..d20fe65 100644
--- a/test/tint/expressions/binary/mul/vec3-scalar/u32.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/expressions/binary/mul/vec3-scalar/u32.wgsl.expected.ir.dxc.hlsl
@@ -1,3 +1,4 @@
+
 [numthreads(1, 1, 1)]
 void f() {
   uint3 a = uint3(1u, 2u, 3u);
diff --git a/test/tint/expressions/binary/mul/vec3-scalar/u32.wgsl.expected.ir.fxc.hlsl b/test/tint/expressions/binary/mul/vec3-scalar/u32.wgsl.expected.ir.fxc.hlsl
index ed2b35f..d20fe65 100644
--- a/test/tint/expressions/binary/mul/vec3-scalar/u32.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/expressions/binary/mul/vec3-scalar/u32.wgsl.expected.ir.fxc.hlsl
@@ -1,4 +1,3 @@
-SKIP: FAILED
 
 [numthreads(1, 1, 1)]
 void f() {
diff --git a/test/tint/expressions/binary/mul/vec3-vec3/f16.wgsl.expected.ir.dxc.hlsl b/test/tint/expressions/binary/mul/vec3-vec3/f16.wgsl.expected.ir.dxc.hlsl
index 9d13736..7d65d7c 100644
--- a/test/tint/expressions/binary/mul/vec3-vec3/f16.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/expressions/binary/mul/vec3-vec3/f16.wgsl.expected.ir.dxc.hlsl
@@ -1,3 +1,4 @@
+
 [numthreads(1, 1, 1)]
 void f() {
   vector<float16_t, 3> a = vector<float16_t, 3>(float16_t(1.0h), float16_t(2.0h), float16_t(3.0h));
diff --git a/test/tint/expressions/binary/mul/vec3-vec3/f16.wgsl.expected.ir.fxc.hlsl b/test/tint/expressions/binary/mul/vec3-vec3/f16.wgsl.expected.ir.fxc.hlsl
index 92b11b6..e199a50 100644
--- a/test/tint/expressions/binary/mul/vec3-vec3/f16.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/expressions/binary/mul/vec3-vec3/f16.wgsl.expected.ir.fxc.hlsl
@@ -1,5 +1,6 @@
 SKIP: FAILED
 
+
 [numthreads(1, 1, 1)]
 void f() {
   vector<float16_t, 3> a = vector<float16_t, 3>(float16_t(1.0h), float16_t(2.0h), float16_t(3.0h));
@@ -7,3 +8,8 @@
   vector<float16_t, 3> r = (a * b);
 }
 
+FXC validation failure:
+c:\src\dawn\Shader@0x00000280601354E0(4,10-18): error X3000: syntax error: unexpected token 'float16_t'
+c:\src\dawn\Shader@0x00000280601354E0(5,10-18): error X3000: syntax error: unexpected token 'float16_t'
+c:\src\dawn\Shader@0x00000280601354E0(6,10-18): error X3000: syntax error: unexpected token 'float16_t'
+
diff --git a/test/tint/expressions/binary/mul/vec3-vec3/f32.wgsl.expected.ir.dxc.hlsl b/test/tint/expressions/binary/mul/vec3-vec3/f32.wgsl.expected.ir.dxc.hlsl
index 571e2c6..8437ca0 100644
--- a/test/tint/expressions/binary/mul/vec3-vec3/f32.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/expressions/binary/mul/vec3-vec3/f32.wgsl.expected.ir.dxc.hlsl
@@ -1,3 +1,4 @@
+
 [numthreads(1, 1, 1)]
 void f() {
   float3 a = float3(1.0f, 2.0f, 3.0f);
diff --git a/test/tint/expressions/binary/mul/vec3-vec3/f32.wgsl.expected.ir.fxc.hlsl b/test/tint/expressions/binary/mul/vec3-vec3/f32.wgsl.expected.ir.fxc.hlsl
index 1dc8829..8437ca0 100644
--- a/test/tint/expressions/binary/mul/vec3-vec3/f32.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/expressions/binary/mul/vec3-vec3/f32.wgsl.expected.ir.fxc.hlsl
@@ -1,4 +1,3 @@
-SKIP: FAILED
 
 [numthreads(1, 1, 1)]
 void f() {
diff --git a/test/tint/expressions/binary/mul/vec3-vec3/i32.wgsl.expected.ir.dxc.hlsl b/test/tint/expressions/binary/mul/vec3-vec3/i32.wgsl.expected.ir.dxc.hlsl
index d8e637e..f3df4e3 100644
--- a/test/tint/expressions/binary/mul/vec3-vec3/i32.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/expressions/binary/mul/vec3-vec3/i32.wgsl.expected.ir.dxc.hlsl
@@ -1,3 +1,4 @@
+
 [numthreads(1, 1, 1)]
 void f() {
   int3 a = int3(1, 2, 3);
diff --git a/test/tint/expressions/binary/mul/vec3-vec3/i32.wgsl.expected.ir.fxc.hlsl b/test/tint/expressions/binary/mul/vec3-vec3/i32.wgsl.expected.ir.fxc.hlsl
index 7802b87..f3df4e3 100644
--- a/test/tint/expressions/binary/mul/vec3-vec3/i32.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/expressions/binary/mul/vec3-vec3/i32.wgsl.expected.ir.fxc.hlsl
@@ -1,4 +1,3 @@
-SKIP: FAILED
 
 [numthreads(1, 1, 1)]
 void f() {
diff --git a/test/tint/expressions/binary/mul/vec3-vec3/u32.wgsl.expected.ir.dxc.hlsl b/test/tint/expressions/binary/mul/vec3-vec3/u32.wgsl.expected.ir.dxc.hlsl
index dc20a91..ccbcde6 100644
--- a/test/tint/expressions/binary/mul/vec3-vec3/u32.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/expressions/binary/mul/vec3-vec3/u32.wgsl.expected.ir.dxc.hlsl
@@ -1,3 +1,4 @@
+
 [numthreads(1, 1, 1)]
 void f() {
   uint3 a = uint3(1u, 2u, 3u);
diff --git a/test/tint/expressions/binary/mul/vec3-vec3/u32.wgsl.expected.ir.fxc.hlsl b/test/tint/expressions/binary/mul/vec3-vec3/u32.wgsl.expected.ir.fxc.hlsl
index 394db03..ccbcde6 100644
--- a/test/tint/expressions/binary/mul/vec3-vec3/u32.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/expressions/binary/mul/vec3-vec3/u32.wgsl.expected.ir.fxc.hlsl
@@ -1,4 +1,3 @@
-SKIP: FAILED
 
 [numthreads(1, 1, 1)]
 void f() {
diff --git a/test/tint/expressions/binary/right-shift/scalar-scalar/i32.wgsl.expected.ir.dxc.hlsl b/test/tint/expressions/binary/right-shift/scalar-scalar/i32.wgsl.expected.ir.dxc.hlsl
index 70551cd..07d598b 100644
--- a/test/tint/expressions/binary/right-shift/scalar-scalar/i32.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/expressions/binary/right-shift/scalar-scalar/i32.wgsl.expected.ir.dxc.hlsl
@@ -1,7 +1,8 @@
+
 [numthreads(1, 1, 1)]
 void f() {
   int a = 1;
   uint b = 2u;
-  int r = (a >> b);
+  int r = (a >> (b & 31u));
 }
 
diff --git a/test/tint/expressions/binary/right-shift/scalar-scalar/i32.wgsl.expected.ir.fxc.hlsl b/test/tint/expressions/binary/right-shift/scalar-scalar/i32.wgsl.expected.ir.fxc.hlsl
index 2b24dc6..07d598b 100644
--- a/test/tint/expressions/binary/right-shift/scalar-scalar/i32.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/expressions/binary/right-shift/scalar-scalar/i32.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,8 @@
-SKIP: FAILED
 
 [numthreads(1, 1, 1)]
 void f() {
   int a = 1;
   uint b = 2u;
-  int r = (a >> b);
+  int r = (a >> (b & 31u));
 }
 
diff --git a/test/tint/expressions/binary/right-shift/scalar-scalar/u32.wgsl.expected.ir.dxc.hlsl b/test/tint/expressions/binary/right-shift/scalar-scalar/u32.wgsl.expected.ir.dxc.hlsl
index a3271ff..7ffd5bd 100644
--- a/test/tint/expressions/binary/right-shift/scalar-scalar/u32.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/expressions/binary/right-shift/scalar-scalar/u32.wgsl.expected.ir.dxc.hlsl
@@ -1,7 +1,8 @@
+
 [numthreads(1, 1, 1)]
 void f() {
   uint a = 1u;
   uint b = 2u;
-  uint r = (a >> b);
+  uint r = (a >> (b & 31u));
 }
 
diff --git a/test/tint/expressions/binary/right-shift/scalar-scalar/u32.wgsl.expected.ir.fxc.hlsl b/test/tint/expressions/binary/right-shift/scalar-scalar/u32.wgsl.expected.ir.fxc.hlsl
index 37e5bc4..7ffd5bd 100644
--- a/test/tint/expressions/binary/right-shift/scalar-scalar/u32.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/expressions/binary/right-shift/scalar-scalar/u32.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,8 @@
-SKIP: FAILED
 
 [numthreads(1, 1, 1)]
 void f() {
   uint a = 1u;
   uint b = 2u;
-  uint r = (a >> b);
+  uint r = (a >> (b & 31u));
 }
 
diff --git a/test/tint/expressions/binary/right-shift/vector-vector/i32.wgsl.expected.ir.dxc.hlsl b/test/tint/expressions/binary/right-shift/vector-vector/i32.wgsl.expected.ir.dxc.hlsl
index 783a0ee..2347266 100644
--- a/test/tint/expressions/binary/right-shift/vector-vector/i32.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/expressions/binary/right-shift/vector-vector/i32.wgsl.expected.ir.dxc.hlsl
@@ -1,7 +1,8 @@
+
 [numthreads(1, 1, 1)]
 void f() {
   int3 a = int3(1, 2, 3);
   uint3 b = uint3(4u, 5u, 6u);
-  int3 r = (a >> b);
+  int3 r = (a >> (b & (31u).xxx));
 }
 
diff --git a/test/tint/expressions/binary/right-shift/vector-vector/i32.wgsl.expected.ir.fxc.hlsl b/test/tint/expressions/binary/right-shift/vector-vector/i32.wgsl.expected.ir.fxc.hlsl
index 08cdb37..2347266 100644
--- a/test/tint/expressions/binary/right-shift/vector-vector/i32.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/expressions/binary/right-shift/vector-vector/i32.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,8 @@
-SKIP: FAILED
 
 [numthreads(1, 1, 1)]
 void f() {
   int3 a = int3(1, 2, 3);
   uint3 b = uint3(4u, 5u, 6u);
-  int3 r = (a >> b);
+  int3 r = (a >> (b & (31u).xxx));
 }
 
diff --git a/test/tint/expressions/binary/right-shift/vector-vector/u32.wgsl.expected.ir.dxc.hlsl b/test/tint/expressions/binary/right-shift/vector-vector/u32.wgsl.expected.ir.dxc.hlsl
index bc41cdc..7c1bec8 100644
--- a/test/tint/expressions/binary/right-shift/vector-vector/u32.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/expressions/binary/right-shift/vector-vector/u32.wgsl.expected.ir.dxc.hlsl
@@ -1,7 +1,8 @@
+
 [numthreads(1, 1, 1)]
 void f() {
   uint3 a = uint3(1u, 2u, 3u);
   uint3 b = uint3(4u, 5u, 6u);
-  uint3 r = (a >> b);
+  uint3 r = (a >> (b & (31u).xxx));
 }
 
diff --git a/test/tint/expressions/binary/right-shift/vector-vector/u32.wgsl.expected.ir.fxc.hlsl b/test/tint/expressions/binary/right-shift/vector-vector/u32.wgsl.expected.ir.fxc.hlsl
index b356ee9..7c1bec8 100644
--- a/test/tint/expressions/binary/right-shift/vector-vector/u32.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/expressions/binary/right-shift/vector-vector/u32.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,8 @@
-SKIP: FAILED
 
 [numthreads(1, 1, 1)]
 void f() {
   uint3 a = uint3(1u, 2u, 3u);
   uint3 b = uint3(4u, 5u, 6u);
-  uint3 r = (a >> b);
+  uint3 r = (a >> (b & (31u).xxx));
 }
 
diff --git a/test/tint/expressions/binary/sub/mat3x3-mat3x3/f16.wgsl.expected.ir.dxc.hlsl b/test/tint/expressions/binary/sub/mat3x3-mat3x3/f16.wgsl.expected.ir.dxc.hlsl
index b069e0c..8f71c80 100644
--- a/test/tint/expressions/binary/sub/mat3x3-mat3x3/f16.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/expressions/binary/sub/mat3x3-mat3x3/f16.wgsl.expected.ir.dxc.hlsl
@@ -1,3 +1,4 @@
+
 [numthreads(1, 1, 1)]
 void f() {
   matrix<float16_t, 3, 3> a = matrix<float16_t, 3, 3>(vector<float16_t, 3>(float16_t(1.0h), float16_t(2.0h), float16_t(3.0h)), vector<float16_t, 3>(float16_t(4.0h), float16_t(5.0h), float16_t(6.0h)), vector<float16_t, 3>(float16_t(7.0h), float16_t(8.0h), float16_t(9.0h)));
diff --git a/test/tint/expressions/binary/sub/mat3x3-mat3x3/f16.wgsl.expected.ir.fxc.hlsl b/test/tint/expressions/binary/sub/mat3x3-mat3x3/f16.wgsl.expected.ir.fxc.hlsl
index 11ef99a..984aca1 100644
--- a/test/tint/expressions/binary/sub/mat3x3-mat3x3/f16.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/expressions/binary/sub/mat3x3-mat3x3/f16.wgsl.expected.ir.fxc.hlsl
@@ -1,5 +1,6 @@
 SKIP: FAILED
 
+
 [numthreads(1, 1, 1)]
 void f() {
   matrix<float16_t, 3, 3> a = matrix<float16_t, 3, 3>(vector<float16_t, 3>(float16_t(1.0h), float16_t(2.0h), float16_t(3.0h)), vector<float16_t, 3>(float16_t(4.0h), float16_t(5.0h), float16_t(6.0h)), vector<float16_t, 3>(float16_t(7.0h), float16_t(8.0h), float16_t(9.0h)));
@@ -7,3 +8,8 @@
   matrix<float16_t, 3, 3> r = (a - b);
 }
 
+FXC validation failure:
+c:\src\dawn\Shader@0x00000162F355F4A0(4,10-18): error X3000: syntax error: unexpected token 'float16_t'
+c:\src\dawn\Shader@0x00000162F355F4A0(5,10-18): error X3000: syntax error: unexpected token 'float16_t'
+c:\src\dawn\Shader@0x00000162F355F4A0(6,10-18): error X3000: syntax error: unexpected token 'float16_t'
+
diff --git a/test/tint/expressions/binary/sub/mat3x3-mat3x3/f32.wgsl.expected.ir.dxc.hlsl b/test/tint/expressions/binary/sub/mat3x3-mat3x3/f32.wgsl.expected.ir.dxc.hlsl
index 1ae1c78..66ff3da 100644
--- a/test/tint/expressions/binary/sub/mat3x3-mat3x3/f32.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/expressions/binary/sub/mat3x3-mat3x3/f32.wgsl.expected.ir.dxc.hlsl
@@ -1,3 +1,4 @@
+
 [numthreads(1, 1, 1)]
 void f() {
   float3x3 a = 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/binary/sub/mat3x3-mat3x3/f32.wgsl.expected.ir.fxc.hlsl b/test/tint/expressions/binary/sub/mat3x3-mat3x3/f32.wgsl.expected.ir.fxc.hlsl
index 0c18fe8..66ff3da 100644
--- a/test/tint/expressions/binary/sub/mat3x3-mat3x3/f32.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/expressions/binary/sub/mat3x3-mat3x3/f32.wgsl.expected.ir.fxc.hlsl
@@ -1,4 +1,3 @@
-SKIP: FAILED
 
 [numthreads(1, 1, 1)]
 void f() {
diff --git a/test/tint/expressions/binary/sub/scalar-scalar/f16.wgsl.expected.ir.dxc.hlsl b/test/tint/expressions/binary/sub/scalar-scalar/f16.wgsl.expected.ir.dxc.hlsl
index c80e96f..a935589 100644
--- a/test/tint/expressions/binary/sub/scalar-scalar/f16.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/expressions/binary/sub/scalar-scalar/f16.wgsl.expected.ir.dxc.hlsl
@@ -1,3 +1,4 @@
+
 [numthreads(1, 1, 1)]
 void f() {
   float16_t a = float16_t(1.0h);
diff --git a/test/tint/expressions/binary/sub/scalar-scalar/f16.wgsl.expected.ir.fxc.hlsl b/test/tint/expressions/binary/sub/scalar-scalar/f16.wgsl.expected.ir.fxc.hlsl
index 6efdcca..8f78dcf 100644
--- a/test/tint/expressions/binary/sub/scalar-scalar/f16.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/expressions/binary/sub/scalar-scalar/f16.wgsl.expected.ir.fxc.hlsl
@@ -1,5 +1,6 @@
 SKIP: FAILED
 
+
 [numthreads(1, 1, 1)]
 void f() {
   float16_t a = float16_t(1.0h);
@@ -7,3 +8,7 @@
   float16_t r = (a - b);
 }
 
+FXC validation failure:
+c:\src\dawn\Shader@0x000001F63E485980(4,3-11): error X3000: unrecognized identifier 'float16_t'
+c:\src\dawn\Shader@0x000001F63E485980(4,13): error X3000: unrecognized identifier 'a'
+
diff --git a/test/tint/expressions/binary/sub/scalar-scalar/f32.wgsl.expected.ir.dxc.hlsl b/test/tint/expressions/binary/sub/scalar-scalar/f32.wgsl.expected.ir.dxc.hlsl
index 950eff9..c4355a3 100644
--- a/test/tint/expressions/binary/sub/scalar-scalar/f32.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/expressions/binary/sub/scalar-scalar/f32.wgsl.expected.ir.dxc.hlsl
@@ -1,3 +1,4 @@
+
 [numthreads(1, 1, 1)]
 void f() {
   float a = 1.0f;
diff --git a/test/tint/expressions/binary/sub/scalar-scalar/f32.wgsl.expected.ir.fxc.hlsl b/test/tint/expressions/binary/sub/scalar-scalar/f32.wgsl.expected.ir.fxc.hlsl
index 406e99c..c4355a3 100644
--- a/test/tint/expressions/binary/sub/scalar-scalar/f32.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/expressions/binary/sub/scalar-scalar/f32.wgsl.expected.ir.fxc.hlsl
@@ -1,4 +1,3 @@
-SKIP: FAILED
 
 [numthreads(1, 1, 1)]
 void f() {
diff --git a/test/tint/expressions/binary/sub/scalar-scalar/i32.wgsl.expected.ir.dxc.hlsl b/test/tint/expressions/binary/sub/scalar-scalar/i32.wgsl.expected.ir.dxc.hlsl
index 7e279ce..f648794 100644
--- a/test/tint/expressions/binary/sub/scalar-scalar/i32.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/expressions/binary/sub/scalar-scalar/i32.wgsl.expected.ir.dxc.hlsl
@@ -1,3 +1,4 @@
+
 [numthreads(1, 1, 1)]
 void f() {
   int a = 1;
diff --git a/test/tint/expressions/binary/sub/scalar-scalar/i32.wgsl.expected.ir.fxc.hlsl b/test/tint/expressions/binary/sub/scalar-scalar/i32.wgsl.expected.ir.fxc.hlsl
index 85ca40b..f648794 100644
--- a/test/tint/expressions/binary/sub/scalar-scalar/i32.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/expressions/binary/sub/scalar-scalar/i32.wgsl.expected.ir.fxc.hlsl
@@ -1,4 +1,3 @@
-SKIP: FAILED
 
 [numthreads(1, 1, 1)]
 void f() {
diff --git a/test/tint/expressions/binary/sub/scalar-scalar/u32.wgsl.expected.ir.dxc.hlsl b/test/tint/expressions/binary/sub/scalar-scalar/u32.wgsl.expected.ir.dxc.hlsl
index 2fd34bb..33c9b37 100644
--- a/test/tint/expressions/binary/sub/scalar-scalar/u32.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/expressions/binary/sub/scalar-scalar/u32.wgsl.expected.ir.dxc.hlsl
@@ -1,3 +1,4 @@
+
 [numthreads(1, 1, 1)]
 void f() {
   uint a = 1u;
diff --git a/test/tint/expressions/binary/sub/scalar-scalar/u32.wgsl.expected.ir.fxc.hlsl b/test/tint/expressions/binary/sub/scalar-scalar/u32.wgsl.expected.ir.fxc.hlsl
index 7be8c69..33c9b37 100644
--- a/test/tint/expressions/binary/sub/scalar-scalar/u32.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/expressions/binary/sub/scalar-scalar/u32.wgsl.expected.ir.fxc.hlsl
@@ -1,4 +1,3 @@
-SKIP: FAILED
 
 [numthreads(1, 1, 1)]
 void f() {
diff --git a/test/tint/expressions/binary/sub/scalar-vec3/f16.wgsl.expected.ir.dxc.hlsl b/test/tint/expressions/binary/sub/scalar-vec3/f16.wgsl.expected.ir.dxc.hlsl
index 318e677..e778cba 100644
--- a/test/tint/expressions/binary/sub/scalar-vec3/f16.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/expressions/binary/sub/scalar-vec3/f16.wgsl.expected.ir.dxc.hlsl
@@ -1,3 +1,4 @@
+
 [numthreads(1, 1, 1)]
 void f() {
   float16_t a = float16_t(4.0h);
diff --git a/test/tint/expressions/binary/sub/scalar-vec3/f16.wgsl.expected.ir.fxc.hlsl b/test/tint/expressions/binary/sub/scalar-vec3/f16.wgsl.expected.ir.fxc.hlsl
index 09f5624..87042c0 100644
--- a/test/tint/expressions/binary/sub/scalar-vec3/f16.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/expressions/binary/sub/scalar-vec3/f16.wgsl.expected.ir.fxc.hlsl
@@ -1,5 +1,6 @@
 SKIP: FAILED
 
+
 [numthreads(1, 1, 1)]
 void f() {
   float16_t a = float16_t(4.0h);
@@ -7,3 +8,7 @@
   vector<float16_t, 3> r = (a - b);
 }
 
+FXC validation failure:
+c:\src\dawn\Shader@0x0000021734FCE960(4,3-11): error X3000: unrecognized identifier 'float16_t'
+c:\src\dawn\Shader@0x0000021734FCE960(4,13): error X3000: unrecognized identifier 'a'
+
diff --git a/test/tint/expressions/binary/sub/scalar-vec3/f32.wgsl.expected.ir.dxc.hlsl b/test/tint/expressions/binary/sub/scalar-vec3/f32.wgsl.expected.ir.dxc.hlsl
index b79374c..154c783 100644
--- a/test/tint/expressions/binary/sub/scalar-vec3/f32.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/expressions/binary/sub/scalar-vec3/f32.wgsl.expected.ir.dxc.hlsl
@@ -1,3 +1,4 @@
+
 [numthreads(1, 1, 1)]
 void f() {
   float a = 4.0f;
diff --git a/test/tint/expressions/binary/sub/scalar-vec3/f32.wgsl.expected.ir.fxc.hlsl b/test/tint/expressions/binary/sub/scalar-vec3/f32.wgsl.expected.ir.fxc.hlsl
index 40c28c6..154c783 100644
--- a/test/tint/expressions/binary/sub/scalar-vec3/f32.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/expressions/binary/sub/scalar-vec3/f32.wgsl.expected.ir.fxc.hlsl
@@ -1,4 +1,3 @@
-SKIP: FAILED
 
 [numthreads(1, 1, 1)]
 void f() {
diff --git a/test/tint/expressions/binary/sub/scalar-vec3/i32.wgsl.expected.ir.dxc.hlsl b/test/tint/expressions/binary/sub/scalar-vec3/i32.wgsl.expected.ir.dxc.hlsl
index b79e398..f4cf198 100644
--- a/test/tint/expressions/binary/sub/scalar-vec3/i32.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/expressions/binary/sub/scalar-vec3/i32.wgsl.expected.ir.dxc.hlsl
@@ -1,3 +1,4 @@
+
 [numthreads(1, 1, 1)]
 void f() {
   int a = 4;
diff --git a/test/tint/expressions/binary/sub/scalar-vec3/i32.wgsl.expected.ir.fxc.hlsl b/test/tint/expressions/binary/sub/scalar-vec3/i32.wgsl.expected.ir.fxc.hlsl
index ab2b273..f4cf198 100644
--- a/test/tint/expressions/binary/sub/scalar-vec3/i32.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/expressions/binary/sub/scalar-vec3/i32.wgsl.expected.ir.fxc.hlsl
@@ -1,4 +1,3 @@
-SKIP: FAILED
 
 [numthreads(1, 1, 1)]
 void f() {
diff --git a/test/tint/expressions/binary/sub/scalar-vec3/u32.wgsl.expected.ir.dxc.hlsl b/test/tint/expressions/binary/sub/scalar-vec3/u32.wgsl.expected.ir.dxc.hlsl
index 40d5a87..18c15a9 100644
--- a/test/tint/expressions/binary/sub/scalar-vec3/u32.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/expressions/binary/sub/scalar-vec3/u32.wgsl.expected.ir.dxc.hlsl
@@ -1,3 +1,4 @@
+
 [numthreads(1, 1, 1)]
 void f() {
   uint a = 4u;
diff --git a/test/tint/expressions/binary/sub/scalar-vec3/u32.wgsl.expected.ir.fxc.hlsl b/test/tint/expressions/binary/sub/scalar-vec3/u32.wgsl.expected.ir.fxc.hlsl
index 08c38a3..18c15a9 100644
--- a/test/tint/expressions/binary/sub/scalar-vec3/u32.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/expressions/binary/sub/scalar-vec3/u32.wgsl.expected.ir.fxc.hlsl
@@ -1,4 +1,3 @@
-SKIP: FAILED
 
 [numthreads(1, 1, 1)]
 void f() {
diff --git a/test/tint/expressions/binary/sub/vec3-scalar/f16.wgsl.expected.ir.dxc.hlsl b/test/tint/expressions/binary/sub/vec3-scalar/f16.wgsl.expected.ir.dxc.hlsl
index 2f759fa..5ca7225 100644
--- a/test/tint/expressions/binary/sub/vec3-scalar/f16.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/expressions/binary/sub/vec3-scalar/f16.wgsl.expected.ir.dxc.hlsl
@@ -1,3 +1,4 @@
+
 [numthreads(1, 1, 1)]
 void f() {
   vector<float16_t, 3> a = vector<float16_t, 3>(float16_t(1.0h), float16_t(2.0h), float16_t(3.0h));
diff --git a/test/tint/expressions/binary/sub/vec3-scalar/f16.wgsl.expected.ir.fxc.hlsl b/test/tint/expressions/binary/sub/vec3-scalar/f16.wgsl.expected.ir.fxc.hlsl
index 6bb1268..270ccb7 100644
--- a/test/tint/expressions/binary/sub/vec3-scalar/f16.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/expressions/binary/sub/vec3-scalar/f16.wgsl.expected.ir.fxc.hlsl
@@ -1,5 +1,6 @@
 SKIP: FAILED
 
+
 [numthreads(1, 1, 1)]
 void f() {
   vector<float16_t, 3> a = vector<float16_t, 3>(float16_t(1.0h), float16_t(2.0h), float16_t(3.0h));
@@ -7,3 +8,8 @@
   vector<float16_t, 3> r = (a - b);
 }
 
+FXC validation failure:
+c:\src\dawn\Shader@0x0000016EFFDAF520(4,10-18): error X3000: syntax error: unexpected token 'float16_t'
+c:\src\dawn\Shader@0x0000016EFFDAF520(5,3-11): error X3000: unrecognized identifier 'float16_t'
+c:\src\dawn\Shader@0x0000016EFFDAF520(5,13): error X3000: unrecognized identifier 'b'
+
diff --git a/test/tint/expressions/binary/sub/vec3-scalar/f32.wgsl.expected.ir.dxc.hlsl b/test/tint/expressions/binary/sub/vec3-scalar/f32.wgsl.expected.ir.dxc.hlsl
index a2beb85..1f90ca6 100644
--- a/test/tint/expressions/binary/sub/vec3-scalar/f32.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/expressions/binary/sub/vec3-scalar/f32.wgsl.expected.ir.dxc.hlsl
@@ -1,3 +1,4 @@
+
 [numthreads(1, 1, 1)]
 void f() {
   float3 a = float3(1.0f, 2.0f, 3.0f);
diff --git a/test/tint/expressions/binary/sub/vec3-scalar/f32.wgsl.expected.ir.fxc.hlsl b/test/tint/expressions/binary/sub/vec3-scalar/f32.wgsl.expected.ir.fxc.hlsl
index e5cf31a..1f90ca6 100644
--- a/test/tint/expressions/binary/sub/vec3-scalar/f32.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/expressions/binary/sub/vec3-scalar/f32.wgsl.expected.ir.fxc.hlsl
@@ -1,4 +1,3 @@
-SKIP: FAILED
 
 [numthreads(1, 1, 1)]
 void f() {
diff --git a/test/tint/expressions/binary/sub/vec3-scalar/i32.wgsl.expected.ir.dxc.hlsl b/test/tint/expressions/binary/sub/vec3-scalar/i32.wgsl.expected.ir.dxc.hlsl
index e3c60fc..b7e2358 100644
--- a/test/tint/expressions/binary/sub/vec3-scalar/i32.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/expressions/binary/sub/vec3-scalar/i32.wgsl.expected.ir.dxc.hlsl
@@ -1,3 +1,4 @@
+
 [numthreads(1, 1, 1)]
 void f() {
   int3 a = int3(1, 2, 3);
diff --git a/test/tint/expressions/binary/sub/vec3-scalar/i32.wgsl.expected.ir.fxc.hlsl b/test/tint/expressions/binary/sub/vec3-scalar/i32.wgsl.expected.ir.fxc.hlsl
index fa67644..b7e2358 100644
--- a/test/tint/expressions/binary/sub/vec3-scalar/i32.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/expressions/binary/sub/vec3-scalar/i32.wgsl.expected.ir.fxc.hlsl
@@ -1,4 +1,3 @@
-SKIP: FAILED
 
 [numthreads(1, 1, 1)]
 void f() {
diff --git a/test/tint/expressions/binary/sub/vec3-scalar/u32.wgsl.expected.ir.dxc.hlsl b/test/tint/expressions/binary/sub/vec3-scalar/u32.wgsl.expected.ir.dxc.hlsl
index e23406f..48d4832 100644
--- a/test/tint/expressions/binary/sub/vec3-scalar/u32.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/expressions/binary/sub/vec3-scalar/u32.wgsl.expected.ir.dxc.hlsl
@@ -1,3 +1,4 @@
+
 [numthreads(1, 1, 1)]
 void f() {
   uint3 a = uint3(1u, 2u, 3u);
diff --git a/test/tint/expressions/binary/sub/vec3-scalar/u32.wgsl.expected.ir.fxc.hlsl b/test/tint/expressions/binary/sub/vec3-scalar/u32.wgsl.expected.ir.fxc.hlsl
index 281f1e5..48d4832 100644
--- a/test/tint/expressions/binary/sub/vec3-scalar/u32.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/expressions/binary/sub/vec3-scalar/u32.wgsl.expected.ir.fxc.hlsl
@@ -1,4 +1,3 @@
-SKIP: FAILED
 
 [numthreads(1, 1, 1)]
 void f() {
diff --git a/test/tint/expressions/binary/sub/vec3-vec3/f16.wgsl.expected.ir.dxc.hlsl b/test/tint/expressions/binary/sub/vec3-vec3/f16.wgsl.expected.ir.dxc.hlsl
index 4fa4ab9..60e04c2 100644
--- a/test/tint/expressions/binary/sub/vec3-vec3/f16.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/expressions/binary/sub/vec3-vec3/f16.wgsl.expected.ir.dxc.hlsl
@@ -1,3 +1,4 @@
+
 [numthreads(1, 1, 1)]
 void f() {
   vector<float16_t, 3> a = vector<float16_t, 3>(float16_t(1.0h), float16_t(2.0h), float16_t(3.0h));
diff --git a/test/tint/expressions/binary/sub/vec3-vec3/f16.wgsl.expected.ir.fxc.hlsl b/test/tint/expressions/binary/sub/vec3-vec3/f16.wgsl.expected.ir.fxc.hlsl
index e5a3159..d350e2b 100644
--- a/test/tint/expressions/binary/sub/vec3-vec3/f16.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/expressions/binary/sub/vec3-vec3/f16.wgsl.expected.ir.fxc.hlsl
@@ -1,5 +1,6 @@
 SKIP: FAILED
 
+
 [numthreads(1, 1, 1)]
 void f() {
   vector<float16_t, 3> a = vector<float16_t, 3>(float16_t(1.0h), float16_t(2.0h), float16_t(3.0h));
@@ -7,3 +8,8 @@
   vector<float16_t, 3> r = (a - b);
 }
 
+FXC validation failure:
+c:\src\dawn\Shader@0x000001EB73036CB0(4,10-18): error X3000: syntax error: unexpected token 'float16_t'
+c:\src\dawn\Shader@0x000001EB73036CB0(5,10-18): error X3000: syntax error: unexpected token 'float16_t'
+c:\src\dawn\Shader@0x000001EB73036CB0(6,10-18): error X3000: syntax error: unexpected token 'float16_t'
+
diff --git a/test/tint/expressions/binary/sub/vec3-vec3/f32.wgsl.expected.ir.dxc.hlsl b/test/tint/expressions/binary/sub/vec3-vec3/f32.wgsl.expected.ir.dxc.hlsl
index ff4c862..02a11b4 100644
--- a/test/tint/expressions/binary/sub/vec3-vec3/f32.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/expressions/binary/sub/vec3-vec3/f32.wgsl.expected.ir.dxc.hlsl
@@ -1,3 +1,4 @@
+
 [numthreads(1, 1, 1)]
 void f() {
   float3 a = float3(1.0f, 2.0f, 3.0f);
diff --git a/test/tint/expressions/binary/sub/vec3-vec3/f32.wgsl.expected.ir.fxc.hlsl b/test/tint/expressions/binary/sub/vec3-vec3/f32.wgsl.expected.ir.fxc.hlsl
index b33cf8e..02a11b4 100644
--- a/test/tint/expressions/binary/sub/vec3-vec3/f32.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/expressions/binary/sub/vec3-vec3/f32.wgsl.expected.ir.fxc.hlsl
@@ -1,4 +1,3 @@
-SKIP: FAILED
 
 [numthreads(1, 1, 1)]
 void f() {
diff --git a/test/tint/expressions/binary/sub/vec3-vec3/i32.wgsl.expected.ir.dxc.hlsl b/test/tint/expressions/binary/sub/vec3-vec3/i32.wgsl.expected.ir.dxc.hlsl
index 08f2161..ebd7661 100644
--- a/test/tint/expressions/binary/sub/vec3-vec3/i32.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/expressions/binary/sub/vec3-vec3/i32.wgsl.expected.ir.dxc.hlsl
@@ -1,3 +1,4 @@
+
 [numthreads(1, 1, 1)]
 void f() {
   int3 a = int3(1, 2, 3);
diff --git a/test/tint/expressions/binary/sub/vec3-vec3/i32.wgsl.expected.ir.fxc.hlsl b/test/tint/expressions/binary/sub/vec3-vec3/i32.wgsl.expected.ir.fxc.hlsl
index 8ea21ec..ebd7661 100644
--- a/test/tint/expressions/binary/sub/vec3-vec3/i32.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/expressions/binary/sub/vec3-vec3/i32.wgsl.expected.ir.fxc.hlsl
@@ -1,4 +1,3 @@
-SKIP: FAILED
 
 [numthreads(1, 1, 1)]
 void f() {
diff --git a/test/tint/expressions/binary/sub/vec3-vec3/u32.wgsl.expected.ir.dxc.hlsl b/test/tint/expressions/binary/sub/vec3-vec3/u32.wgsl.expected.ir.dxc.hlsl
index d2673bf..9bbe4ea2 100644
--- a/test/tint/expressions/binary/sub/vec3-vec3/u32.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/expressions/binary/sub/vec3-vec3/u32.wgsl.expected.ir.dxc.hlsl
@@ -1,3 +1,4 @@
+
 [numthreads(1, 1, 1)]
 void f() {
   uint3 a = uint3(1u, 2u, 3u);
diff --git a/test/tint/expressions/binary/sub/vec3-vec3/u32.wgsl.expected.ir.fxc.hlsl b/test/tint/expressions/binary/sub/vec3-vec3/u32.wgsl.expected.ir.fxc.hlsl
index fc633be..9bbe4ea2 100644
--- a/test/tint/expressions/binary/sub/vec3-vec3/u32.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/expressions/binary/sub/vec3-vec3/u32.wgsl.expected.ir.fxc.hlsl
@@ -1,4 +1,3 @@
-SKIP: FAILED
 
 [numthreads(1, 1, 1)]
 void f() {
diff --git a/test/tint/expressions/bitcast/const/128bit/vec4f32-vec4f32.wgsl.expected.ir.dxc.hlsl b/test/tint/expressions/bitcast/const/128bit/vec4f32-vec4f32.wgsl.expected.ir.dxc.hlsl
index 5a0f3ed..8834f7b 100644
--- a/test/tint/expressions/bitcast/const/128bit/vec4f32-vec4f32.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/expressions/bitcast/const/128bit/vec4f32-vec4f32.wgsl.expected.ir.dxc.hlsl
@@ -1,3 +1,4 @@
+
 [numthreads(1, 1, 1)]
 void f() {
   float4 b = float4(2.003662109375f, -513.03125f, -1024.25f, 0.00169684563297778368f);
diff --git a/test/tint/expressions/bitcast/const/128bit/vec4f32-vec4f32.wgsl.expected.ir.fxc.hlsl b/test/tint/expressions/bitcast/const/128bit/vec4f32-vec4f32.wgsl.expected.ir.fxc.hlsl
index 5a0f3ed..8834f7b 100644
--- a/test/tint/expressions/bitcast/const/128bit/vec4f32-vec4f32.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/expressions/bitcast/const/128bit/vec4f32-vec4f32.wgsl.expected.ir.fxc.hlsl
@@ -1,3 +1,4 @@
+
 [numthreads(1, 1, 1)]
 void f() {
   float4 b = float4(2.003662109375f, -513.03125f, -1024.25f, 0.00169684563297778368f);
diff --git a/test/tint/expressions/bitcast/const/128bit/vec4f32-vec4i32.wgsl.expected.ir.dxc.hlsl b/test/tint/expressions/bitcast/const/128bit/vec4f32-vec4i32.wgsl.expected.ir.dxc.hlsl
index 544f867..b3a4e83 100644
--- a/test/tint/expressions/bitcast/const/128bit/vec4f32-vec4i32.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/expressions/bitcast/const/128bit/vec4f32-vec4i32.wgsl.expected.ir.dxc.hlsl
@@ -1,3 +1,4 @@
+
 [numthreads(1, 1, 1)]
 void f() {
   int4 b = int4(1073757184, -1006616064, -998242304, 987654321);
diff --git a/test/tint/expressions/bitcast/const/128bit/vec4f32-vec4i32.wgsl.expected.ir.fxc.hlsl b/test/tint/expressions/bitcast/const/128bit/vec4f32-vec4i32.wgsl.expected.ir.fxc.hlsl
index 544f867..b3a4e83 100644
--- a/test/tint/expressions/bitcast/const/128bit/vec4f32-vec4i32.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/expressions/bitcast/const/128bit/vec4f32-vec4i32.wgsl.expected.ir.fxc.hlsl
@@ -1,3 +1,4 @@
+
 [numthreads(1, 1, 1)]
 void f() {
   int4 b = int4(1073757184, -1006616064, -998242304, 987654321);
diff --git a/test/tint/expressions/bitcast/const/128bit/vec4f32-vec4u32.wgsl.expected.ir.dxc.hlsl b/test/tint/expressions/bitcast/const/128bit/vec4f32-vec4u32.wgsl.expected.ir.dxc.hlsl
index 5fc5596..67acbff2 100644
--- a/test/tint/expressions/bitcast/const/128bit/vec4f32-vec4u32.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/expressions/bitcast/const/128bit/vec4f32-vec4u32.wgsl.expected.ir.dxc.hlsl
@@ -1,3 +1,4 @@
+
 [numthreads(1, 1, 1)]
 void f() {
   uint4 b = uint4(1073757184u, 3288351232u, 3296724992u, 987654321u);
diff --git a/test/tint/expressions/bitcast/const/128bit/vec4f32-vec4u32.wgsl.expected.ir.fxc.hlsl b/test/tint/expressions/bitcast/const/128bit/vec4f32-vec4u32.wgsl.expected.ir.fxc.hlsl
index 5fc5596..67acbff2 100644
--- a/test/tint/expressions/bitcast/const/128bit/vec4f32-vec4u32.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/expressions/bitcast/const/128bit/vec4f32-vec4u32.wgsl.expected.ir.fxc.hlsl
@@ -1,3 +1,4 @@
+
 [numthreads(1, 1, 1)]
 void f() {
   uint4 b = uint4(1073757184u, 3288351232u, 3296724992u, 987654321u);
diff --git a/test/tint/expressions/bitcast/const/128bit/vec4i32-vec4f32.wgsl.expected.ir.dxc.hlsl b/test/tint/expressions/bitcast/const/128bit/vec4i32-vec4f32.wgsl.expected.ir.dxc.hlsl
index 5a0f3ed..8834f7b 100644
--- a/test/tint/expressions/bitcast/const/128bit/vec4i32-vec4f32.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/expressions/bitcast/const/128bit/vec4i32-vec4f32.wgsl.expected.ir.dxc.hlsl
@@ -1,3 +1,4 @@
+
 [numthreads(1, 1, 1)]
 void f() {
   float4 b = float4(2.003662109375f, -513.03125f, -1024.25f, 0.00169684563297778368f);
diff --git a/test/tint/expressions/bitcast/const/128bit/vec4i32-vec4f32.wgsl.expected.ir.fxc.hlsl b/test/tint/expressions/bitcast/const/128bit/vec4i32-vec4f32.wgsl.expected.ir.fxc.hlsl
index 5a0f3ed..8834f7b 100644
--- a/test/tint/expressions/bitcast/const/128bit/vec4i32-vec4f32.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/expressions/bitcast/const/128bit/vec4i32-vec4f32.wgsl.expected.ir.fxc.hlsl
@@ -1,3 +1,4 @@
+
 [numthreads(1, 1, 1)]
 void f() {
   float4 b = float4(2.003662109375f, -513.03125f, -1024.25f, 0.00169684563297778368f);
diff --git a/test/tint/expressions/bitcast/const/128bit/vec4i32-vec4i32.wgsl.expected.ir.dxc.hlsl b/test/tint/expressions/bitcast/const/128bit/vec4i32-vec4i32.wgsl.expected.ir.dxc.hlsl
index 544f867..b3a4e83 100644
--- a/test/tint/expressions/bitcast/const/128bit/vec4i32-vec4i32.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/expressions/bitcast/const/128bit/vec4i32-vec4i32.wgsl.expected.ir.dxc.hlsl
@@ -1,3 +1,4 @@
+
 [numthreads(1, 1, 1)]
 void f() {
   int4 b = int4(1073757184, -1006616064, -998242304, 987654321);
diff --git a/test/tint/expressions/bitcast/const/128bit/vec4i32-vec4i32.wgsl.expected.ir.fxc.hlsl b/test/tint/expressions/bitcast/const/128bit/vec4i32-vec4i32.wgsl.expected.ir.fxc.hlsl
index 544f867..b3a4e83 100644
--- a/test/tint/expressions/bitcast/const/128bit/vec4i32-vec4i32.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/expressions/bitcast/const/128bit/vec4i32-vec4i32.wgsl.expected.ir.fxc.hlsl
@@ -1,3 +1,4 @@
+
 [numthreads(1, 1, 1)]
 void f() {
   int4 b = int4(1073757184, -1006616064, -998242304, 987654321);
diff --git a/test/tint/expressions/bitcast/const/128bit/vec4i32-vec4u32.wgsl.expected.ir.dxc.hlsl b/test/tint/expressions/bitcast/const/128bit/vec4i32-vec4u32.wgsl.expected.ir.dxc.hlsl
index 5fc5596..67acbff2 100644
--- a/test/tint/expressions/bitcast/const/128bit/vec4i32-vec4u32.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/expressions/bitcast/const/128bit/vec4i32-vec4u32.wgsl.expected.ir.dxc.hlsl
@@ -1,3 +1,4 @@
+
 [numthreads(1, 1, 1)]
 void f() {
   uint4 b = uint4(1073757184u, 3288351232u, 3296724992u, 987654321u);
diff --git a/test/tint/expressions/bitcast/const/128bit/vec4i32-vec4u32.wgsl.expected.ir.fxc.hlsl b/test/tint/expressions/bitcast/const/128bit/vec4i32-vec4u32.wgsl.expected.ir.fxc.hlsl
index 5fc5596..67acbff2 100644
--- a/test/tint/expressions/bitcast/const/128bit/vec4i32-vec4u32.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/expressions/bitcast/const/128bit/vec4i32-vec4u32.wgsl.expected.ir.fxc.hlsl
@@ -1,3 +1,4 @@
+
 [numthreads(1, 1, 1)]
 void f() {
   uint4 b = uint4(1073757184u, 3288351232u, 3296724992u, 987654321u);
diff --git a/test/tint/expressions/bitcast/const/128bit/vec4u32-vec4f32.wgsl.expected.ir.dxc.hlsl b/test/tint/expressions/bitcast/const/128bit/vec4u32-vec4f32.wgsl.expected.ir.dxc.hlsl
index 5a0f3ed..8834f7b 100644
--- a/test/tint/expressions/bitcast/const/128bit/vec4u32-vec4f32.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/expressions/bitcast/const/128bit/vec4u32-vec4f32.wgsl.expected.ir.dxc.hlsl
@@ -1,3 +1,4 @@
+
 [numthreads(1, 1, 1)]
 void f() {
   float4 b = float4(2.003662109375f, -513.03125f, -1024.25f, 0.00169684563297778368f);
diff --git a/test/tint/expressions/bitcast/const/128bit/vec4u32-vec4f32.wgsl.expected.ir.fxc.hlsl b/test/tint/expressions/bitcast/const/128bit/vec4u32-vec4f32.wgsl.expected.ir.fxc.hlsl
index 5a0f3ed..8834f7b 100644
--- a/test/tint/expressions/bitcast/const/128bit/vec4u32-vec4f32.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/expressions/bitcast/const/128bit/vec4u32-vec4f32.wgsl.expected.ir.fxc.hlsl
@@ -1,3 +1,4 @@
+
 [numthreads(1, 1, 1)]
 void f() {
   float4 b = float4(2.003662109375f, -513.03125f, -1024.25f, 0.00169684563297778368f);
diff --git a/test/tint/expressions/bitcast/const/128bit/vec4u32-vec4i32.wgsl.expected.ir.dxc.hlsl b/test/tint/expressions/bitcast/const/128bit/vec4u32-vec4i32.wgsl.expected.ir.dxc.hlsl
index 544f867..b3a4e83 100644
--- a/test/tint/expressions/bitcast/const/128bit/vec4u32-vec4i32.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/expressions/bitcast/const/128bit/vec4u32-vec4i32.wgsl.expected.ir.dxc.hlsl
@@ -1,3 +1,4 @@
+
 [numthreads(1, 1, 1)]
 void f() {
   int4 b = int4(1073757184, -1006616064, -998242304, 987654321);
diff --git a/test/tint/expressions/bitcast/const/128bit/vec4u32-vec4i32.wgsl.expected.ir.fxc.hlsl b/test/tint/expressions/bitcast/const/128bit/vec4u32-vec4i32.wgsl.expected.ir.fxc.hlsl
index 544f867..b3a4e83 100644
--- a/test/tint/expressions/bitcast/const/128bit/vec4u32-vec4i32.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/expressions/bitcast/const/128bit/vec4u32-vec4i32.wgsl.expected.ir.fxc.hlsl
@@ -1,3 +1,4 @@
+
 [numthreads(1, 1, 1)]
 void f() {
   int4 b = int4(1073757184, -1006616064, -998242304, 987654321);
diff --git a/test/tint/expressions/bitcast/const/128bit/vec4u32-vec4u32.wgsl.expected.ir.dxc.hlsl b/test/tint/expressions/bitcast/const/128bit/vec4u32-vec4u32.wgsl.expected.ir.dxc.hlsl
index 5fc5596..67acbff2 100644
--- a/test/tint/expressions/bitcast/const/128bit/vec4u32-vec4u32.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/expressions/bitcast/const/128bit/vec4u32-vec4u32.wgsl.expected.ir.dxc.hlsl
@@ -1,3 +1,4 @@
+
 [numthreads(1, 1, 1)]
 void f() {
   uint4 b = uint4(1073757184u, 3288351232u, 3296724992u, 987654321u);
diff --git a/test/tint/expressions/bitcast/const/128bit/vec4u32-vec4u32.wgsl.expected.ir.fxc.hlsl b/test/tint/expressions/bitcast/const/128bit/vec4u32-vec4u32.wgsl.expected.ir.fxc.hlsl
index 5fc5596..67acbff2 100644
--- a/test/tint/expressions/bitcast/const/128bit/vec4u32-vec4u32.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/expressions/bitcast/const/128bit/vec4u32-vec4u32.wgsl.expected.ir.fxc.hlsl
@@ -1,3 +1,4 @@
+
 [numthreads(1, 1, 1)]
 void f() {
   uint4 b = uint4(1073757184u, 3288351232u, 3296724992u, 987654321u);
diff --git a/test/tint/expressions/bitcast/const/16bit/f16-f16.wgsl.expected.ir.dxc.hlsl b/test/tint/expressions/bitcast/const/16bit/f16-f16.wgsl.expected.ir.dxc.hlsl
index a7d7834..304e559 100644
--- a/test/tint/expressions/bitcast/const/16bit/f16-f16.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/expressions/bitcast/const/16bit/f16-f16.wgsl.expected.ir.dxc.hlsl
@@ -1,3 +1,4 @@
+
 [numthreads(1, 1, 1)]
 void f() {
   float16_t b = float16_t(1.0h);
diff --git a/test/tint/expressions/bitcast/const/16bit/f16-f16.wgsl.expected.ir.fxc.hlsl b/test/tint/expressions/bitcast/const/16bit/f16-f16.wgsl.expected.ir.fxc.hlsl
index a7d7834..d5e27ff 100644
--- a/test/tint/expressions/bitcast/const/16bit/f16-f16.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/expressions/bitcast/const/16bit/f16-f16.wgsl.expected.ir.fxc.hlsl
@@ -1,5 +1,12 @@
+SKIP: FAILED
+
+
 [numthreads(1, 1, 1)]
 void f() {
   float16_t b = float16_t(1.0h);
 }
 
+FXC validation failure:
+c:\src\dawn\Shader@0x0000024697402480(4,3-11): error X3000: unrecognized identifier 'float16_t'
+c:\src\dawn\Shader@0x0000024697402480(4,13): error X3000: unrecognized identifier 'b'
+
diff --git a/test/tint/expressions/bitcast/const/32bit/f32-f32.wgsl.expected.ir.dxc.hlsl b/test/tint/expressions/bitcast/const/32bit/f32-f32.wgsl.expected.ir.dxc.hlsl
index e4c9a7d..085645a 100644
--- a/test/tint/expressions/bitcast/const/32bit/f32-f32.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/expressions/bitcast/const/32bit/f32-f32.wgsl.expected.ir.dxc.hlsl
@@ -1,3 +1,4 @@
+
 [numthreads(1, 1, 1)]
 void f() {
   float b = 2.003662109375f;
diff --git a/test/tint/expressions/bitcast/const/32bit/f32-f32.wgsl.expected.ir.fxc.hlsl b/test/tint/expressions/bitcast/const/32bit/f32-f32.wgsl.expected.ir.fxc.hlsl
index e4c9a7d..085645a 100644
--- a/test/tint/expressions/bitcast/const/32bit/f32-f32.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/expressions/bitcast/const/32bit/f32-f32.wgsl.expected.ir.fxc.hlsl
@@ -1,3 +1,4 @@
+
 [numthreads(1, 1, 1)]
 void f() {
   float b = 2.003662109375f;
diff --git a/test/tint/expressions/bitcast/const/32bit/f32-i32.wgsl.expected.ir.dxc.hlsl b/test/tint/expressions/bitcast/const/32bit/f32-i32.wgsl.expected.ir.dxc.hlsl
index 9cffe05..787b0ac 100644
--- a/test/tint/expressions/bitcast/const/32bit/f32-i32.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/expressions/bitcast/const/32bit/f32-i32.wgsl.expected.ir.dxc.hlsl
@@ -1,3 +1,4 @@
+
 [numthreads(1, 1, 1)]
 void f() {
   int b = 1073757184;
diff --git a/test/tint/expressions/bitcast/const/32bit/f32-i32.wgsl.expected.ir.fxc.hlsl b/test/tint/expressions/bitcast/const/32bit/f32-i32.wgsl.expected.ir.fxc.hlsl
index 9cffe05..787b0ac 100644
--- a/test/tint/expressions/bitcast/const/32bit/f32-i32.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/expressions/bitcast/const/32bit/f32-i32.wgsl.expected.ir.fxc.hlsl
@@ -1,3 +1,4 @@
+
 [numthreads(1, 1, 1)]
 void f() {
   int b = 1073757184;
diff --git a/test/tint/expressions/bitcast/const/32bit/f32-u32.wgsl.expected.ir.dxc.hlsl b/test/tint/expressions/bitcast/const/32bit/f32-u32.wgsl.expected.ir.dxc.hlsl
index 062948f..b62e2a3 100644
--- a/test/tint/expressions/bitcast/const/32bit/f32-u32.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/expressions/bitcast/const/32bit/f32-u32.wgsl.expected.ir.dxc.hlsl
@@ -1,3 +1,4 @@
+
 [numthreads(1, 1, 1)]
 void f() {
   uint b = 1073757184u;
diff --git a/test/tint/expressions/bitcast/const/32bit/f32-u32.wgsl.expected.ir.fxc.hlsl b/test/tint/expressions/bitcast/const/32bit/f32-u32.wgsl.expected.ir.fxc.hlsl
index 062948f..b62e2a3 100644
--- a/test/tint/expressions/bitcast/const/32bit/f32-u32.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/expressions/bitcast/const/32bit/f32-u32.wgsl.expected.ir.fxc.hlsl
@@ -1,3 +1,4 @@
+
 [numthreads(1, 1, 1)]
 void f() {
   uint b = 1073757184u;
diff --git a/test/tint/expressions/bitcast/const/32bit/f32-vec2f16.wgsl.expected.ir.dxc.hlsl b/test/tint/expressions/bitcast/const/32bit/f32-vec2f16.wgsl.expected.ir.dxc.hlsl
index b5222a0..09aac7c 100644
--- a/test/tint/expressions/bitcast/const/32bit/f32-vec2f16.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/expressions/bitcast/const/32bit/f32-vec2f16.wgsl.expected.ir.dxc.hlsl
@@ -1,3 +1,4 @@
+
 [numthreads(1, 1, 1)]
 void f() {
   vector<float16_t, 2> b = vector<float16_t, 2>(float16_t(1.0h), float16_t(2.0h));
diff --git a/test/tint/expressions/bitcast/const/32bit/f32-vec2f16.wgsl.expected.ir.fxc.hlsl b/test/tint/expressions/bitcast/const/32bit/f32-vec2f16.wgsl.expected.ir.fxc.hlsl
index b5222a0..06910a7 100644
--- a/test/tint/expressions/bitcast/const/32bit/f32-vec2f16.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/expressions/bitcast/const/32bit/f32-vec2f16.wgsl.expected.ir.fxc.hlsl
@@ -1,5 +1,11 @@
+SKIP: FAILED
+
+
 [numthreads(1, 1, 1)]
 void f() {
   vector<float16_t, 2> b = vector<float16_t, 2>(float16_t(1.0h), float16_t(2.0h));
 }
 
+FXC validation failure:
+c:\src\dawn\Shader@0x000001685825D680(4,10-18): error X3000: syntax error: unexpected token 'float16_t'
+
diff --git a/test/tint/expressions/bitcast/const/32bit/i32-f32.wgsl.expected.ir.dxc.hlsl b/test/tint/expressions/bitcast/const/32bit/i32-f32.wgsl.expected.ir.dxc.hlsl
index e4c9a7d..085645a 100644
--- a/test/tint/expressions/bitcast/const/32bit/i32-f32.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/expressions/bitcast/const/32bit/i32-f32.wgsl.expected.ir.dxc.hlsl
@@ -1,3 +1,4 @@
+
 [numthreads(1, 1, 1)]
 void f() {
   float b = 2.003662109375f;
diff --git a/test/tint/expressions/bitcast/const/32bit/i32-f32.wgsl.expected.ir.fxc.hlsl b/test/tint/expressions/bitcast/const/32bit/i32-f32.wgsl.expected.ir.fxc.hlsl
index e4c9a7d..085645a 100644
--- a/test/tint/expressions/bitcast/const/32bit/i32-f32.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/expressions/bitcast/const/32bit/i32-f32.wgsl.expected.ir.fxc.hlsl
@@ -1,3 +1,4 @@
+
 [numthreads(1, 1, 1)]
 void f() {
   float b = 2.003662109375f;
diff --git a/test/tint/expressions/bitcast/const/32bit/i32-i32.wgsl.expected.ir.dxc.hlsl b/test/tint/expressions/bitcast/const/32bit/i32-i32.wgsl.expected.ir.dxc.hlsl
index 9cffe05..787b0ac 100644
--- a/test/tint/expressions/bitcast/const/32bit/i32-i32.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/expressions/bitcast/const/32bit/i32-i32.wgsl.expected.ir.dxc.hlsl
@@ -1,3 +1,4 @@
+
 [numthreads(1, 1, 1)]
 void f() {
   int b = 1073757184;
diff --git a/test/tint/expressions/bitcast/const/32bit/i32-i32.wgsl.expected.ir.fxc.hlsl b/test/tint/expressions/bitcast/const/32bit/i32-i32.wgsl.expected.ir.fxc.hlsl
index 9cffe05..787b0ac 100644
--- a/test/tint/expressions/bitcast/const/32bit/i32-i32.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/expressions/bitcast/const/32bit/i32-i32.wgsl.expected.ir.fxc.hlsl
@@ -1,3 +1,4 @@
+
 [numthreads(1, 1, 1)]
 void f() {
   int b = 1073757184;
diff --git a/test/tint/expressions/bitcast/const/32bit/i32-u32.wgsl.expected.ir.dxc.hlsl b/test/tint/expressions/bitcast/const/32bit/i32-u32.wgsl.expected.ir.dxc.hlsl
index 062948f..b62e2a3 100644
--- a/test/tint/expressions/bitcast/const/32bit/i32-u32.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/expressions/bitcast/const/32bit/i32-u32.wgsl.expected.ir.dxc.hlsl
@@ -1,3 +1,4 @@
+
 [numthreads(1, 1, 1)]
 void f() {
   uint b = 1073757184u;
diff --git a/test/tint/expressions/bitcast/const/32bit/i32-u32.wgsl.expected.ir.fxc.hlsl b/test/tint/expressions/bitcast/const/32bit/i32-u32.wgsl.expected.ir.fxc.hlsl
index 062948f..b62e2a3 100644
--- a/test/tint/expressions/bitcast/const/32bit/i32-u32.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/expressions/bitcast/const/32bit/i32-u32.wgsl.expected.ir.fxc.hlsl
@@ -1,3 +1,4 @@
+
 [numthreads(1, 1, 1)]
 void f() {
   uint b = 1073757184u;
diff --git a/test/tint/expressions/bitcast/const/32bit/i32-vec2f16.wgsl.expected.ir.dxc.hlsl b/test/tint/expressions/bitcast/const/32bit/i32-vec2f16.wgsl.expected.ir.dxc.hlsl
index b5222a0..09aac7c 100644
--- a/test/tint/expressions/bitcast/const/32bit/i32-vec2f16.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/expressions/bitcast/const/32bit/i32-vec2f16.wgsl.expected.ir.dxc.hlsl
@@ -1,3 +1,4 @@
+
 [numthreads(1, 1, 1)]
 void f() {
   vector<float16_t, 2> b = vector<float16_t, 2>(float16_t(1.0h), float16_t(2.0h));
diff --git a/test/tint/expressions/bitcast/const/32bit/i32-vec2f16.wgsl.expected.ir.fxc.hlsl b/test/tint/expressions/bitcast/const/32bit/i32-vec2f16.wgsl.expected.ir.fxc.hlsl
index b5222a0..d6734df 100644
--- a/test/tint/expressions/bitcast/const/32bit/i32-vec2f16.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/expressions/bitcast/const/32bit/i32-vec2f16.wgsl.expected.ir.fxc.hlsl
@@ -1,5 +1,11 @@
+SKIP: FAILED
+
+
 [numthreads(1, 1, 1)]
 void f() {
   vector<float16_t, 2> b = vector<float16_t, 2>(float16_t(1.0h), float16_t(2.0h));
 }
 
+FXC validation failure:
+c:\src\dawn\Shader@0x00000198E492E890(4,10-18): error X3000: syntax error: unexpected token 'float16_t'
+
diff --git a/test/tint/expressions/bitcast/const/32bit/i32min-u32.wgsl.expected.ir.dxc.hlsl b/test/tint/expressions/bitcast/const/32bit/i32min-u32.wgsl.expected.ir.dxc.hlsl
index 94419e5..c67d6dd 100644
--- a/test/tint/expressions/bitcast/const/32bit/i32min-u32.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/expressions/bitcast/const/32bit/i32min-u32.wgsl.expected.ir.dxc.hlsl
@@ -1,3 +1,4 @@
+
 [numthreads(1, 1, 1)]
 void f() {
   uint b = 2147483648u;
diff --git a/test/tint/expressions/bitcast/const/32bit/i32min-u32.wgsl.expected.ir.fxc.hlsl b/test/tint/expressions/bitcast/const/32bit/i32min-u32.wgsl.expected.ir.fxc.hlsl
index 94419e5..c67d6dd 100644
--- a/test/tint/expressions/bitcast/const/32bit/i32min-u32.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/expressions/bitcast/const/32bit/i32min-u32.wgsl.expected.ir.fxc.hlsl
@@ -1,3 +1,4 @@
+
 [numthreads(1, 1, 1)]
 void f() {
   uint b = 2147483648u;
diff --git a/test/tint/expressions/bitcast/const/32bit/u32-f32.wgsl.expected.ir.dxc.hlsl b/test/tint/expressions/bitcast/const/32bit/u32-f32.wgsl.expected.ir.dxc.hlsl
index e4c9a7d..085645a 100644
--- a/test/tint/expressions/bitcast/const/32bit/u32-f32.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/expressions/bitcast/const/32bit/u32-f32.wgsl.expected.ir.dxc.hlsl
@@ -1,3 +1,4 @@
+
 [numthreads(1, 1, 1)]
 void f() {
   float b = 2.003662109375f;
diff --git a/test/tint/expressions/bitcast/const/32bit/u32-f32.wgsl.expected.ir.fxc.hlsl b/test/tint/expressions/bitcast/const/32bit/u32-f32.wgsl.expected.ir.fxc.hlsl
index e4c9a7d..085645a 100644
--- a/test/tint/expressions/bitcast/const/32bit/u32-f32.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/expressions/bitcast/const/32bit/u32-f32.wgsl.expected.ir.fxc.hlsl
@@ -1,3 +1,4 @@
+
 [numthreads(1, 1, 1)]
 void f() {
   float b = 2.003662109375f;
diff --git a/test/tint/expressions/bitcast/const/32bit/u32-i32.wgsl.expected.ir.dxc.hlsl b/test/tint/expressions/bitcast/const/32bit/u32-i32.wgsl.expected.ir.dxc.hlsl
index 9cffe05..787b0ac 100644
--- a/test/tint/expressions/bitcast/const/32bit/u32-i32.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/expressions/bitcast/const/32bit/u32-i32.wgsl.expected.ir.dxc.hlsl
@@ -1,3 +1,4 @@
+
 [numthreads(1, 1, 1)]
 void f() {
   int b = 1073757184;
diff --git a/test/tint/expressions/bitcast/const/32bit/u32-i32.wgsl.expected.ir.fxc.hlsl b/test/tint/expressions/bitcast/const/32bit/u32-i32.wgsl.expected.ir.fxc.hlsl
index 9cffe05..787b0ac 100644
--- a/test/tint/expressions/bitcast/const/32bit/u32-i32.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/expressions/bitcast/const/32bit/u32-i32.wgsl.expected.ir.fxc.hlsl
@@ -1,3 +1,4 @@
+
 [numthreads(1, 1, 1)]
 void f() {
   int b = 1073757184;
diff --git a/test/tint/expressions/bitcast/const/32bit/u32-u32.wgsl.expected.ir.dxc.hlsl b/test/tint/expressions/bitcast/const/32bit/u32-u32.wgsl.expected.ir.dxc.hlsl
index 062948f..b62e2a3 100644
--- a/test/tint/expressions/bitcast/const/32bit/u32-u32.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/expressions/bitcast/const/32bit/u32-u32.wgsl.expected.ir.dxc.hlsl
@@ -1,3 +1,4 @@
+
 [numthreads(1, 1, 1)]
 void f() {
   uint b = 1073757184u;
diff --git a/test/tint/expressions/bitcast/const/32bit/u32-u32.wgsl.expected.ir.fxc.hlsl b/test/tint/expressions/bitcast/const/32bit/u32-u32.wgsl.expected.ir.fxc.hlsl
index 062948f..b62e2a3 100644
--- a/test/tint/expressions/bitcast/const/32bit/u32-u32.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/expressions/bitcast/const/32bit/u32-u32.wgsl.expected.ir.fxc.hlsl
@@ -1,3 +1,4 @@
+
 [numthreads(1, 1, 1)]
 void f() {
   uint b = 1073757184u;
diff --git a/test/tint/expressions/bitcast/const/32bit/u32-vec2f16.wgsl.expected.ir.dxc.hlsl b/test/tint/expressions/bitcast/const/32bit/u32-vec2f16.wgsl.expected.ir.dxc.hlsl
index b5222a0..09aac7c 100644
--- a/test/tint/expressions/bitcast/const/32bit/u32-vec2f16.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/expressions/bitcast/const/32bit/u32-vec2f16.wgsl.expected.ir.dxc.hlsl
@@ -1,3 +1,4 @@
+
 [numthreads(1, 1, 1)]
 void f() {
   vector<float16_t, 2> b = vector<float16_t, 2>(float16_t(1.0h), float16_t(2.0h));
diff --git a/test/tint/expressions/bitcast/const/32bit/u32-vec2f16.wgsl.expected.ir.fxc.hlsl b/test/tint/expressions/bitcast/const/32bit/u32-vec2f16.wgsl.expected.ir.fxc.hlsl
index b5222a0..3534dc9 100644
--- a/test/tint/expressions/bitcast/const/32bit/u32-vec2f16.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/expressions/bitcast/const/32bit/u32-vec2f16.wgsl.expected.ir.fxc.hlsl
@@ -1,5 +1,11 @@
+SKIP: FAILED
+
+
 [numthreads(1, 1, 1)]
 void f() {
   vector<float16_t, 2> b = vector<float16_t, 2>(float16_t(1.0h), float16_t(2.0h));
 }
 
+FXC validation failure:
+c:\src\dawn\Shader@0x000001B20ADE5130(4,10-18): error X3000: syntax error: unexpected token 'float16_t'
+
diff --git a/test/tint/expressions/bitcast/const/32bit/vec2f16-f32.wgsl.expected.ir.dxc.hlsl b/test/tint/expressions/bitcast/const/32bit/vec2f16-f32.wgsl.expected.ir.dxc.hlsl
index e4c9a7d..085645a 100644
--- a/test/tint/expressions/bitcast/const/32bit/vec2f16-f32.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/expressions/bitcast/const/32bit/vec2f16-f32.wgsl.expected.ir.dxc.hlsl
@@ -1,3 +1,4 @@
+
 [numthreads(1, 1, 1)]
 void f() {
   float b = 2.003662109375f;
diff --git a/test/tint/expressions/bitcast/const/32bit/vec2f16-f32.wgsl.expected.ir.fxc.hlsl b/test/tint/expressions/bitcast/const/32bit/vec2f16-f32.wgsl.expected.ir.fxc.hlsl
index e4c9a7d..085645a 100644
--- a/test/tint/expressions/bitcast/const/32bit/vec2f16-f32.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/expressions/bitcast/const/32bit/vec2f16-f32.wgsl.expected.ir.fxc.hlsl
@@ -1,3 +1,4 @@
+
 [numthreads(1, 1, 1)]
 void f() {
   float b = 2.003662109375f;
diff --git a/test/tint/expressions/bitcast/const/32bit/vec2f16-i32.wgsl.expected.ir.dxc.hlsl b/test/tint/expressions/bitcast/const/32bit/vec2f16-i32.wgsl.expected.ir.dxc.hlsl
index 9cffe05..787b0ac 100644
--- a/test/tint/expressions/bitcast/const/32bit/vec2f16-i32.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/expressions/bitcast/const/32bit/vec2f16-i32.wgsl.expected.ir.dxc.hlsl
@@ -1,3 +1,4 @@
+
 [numthreads(1, 1, 1)]
 void f() {
   int b = 1073757184;
diff --git a/test/tint/expressions/bitcast/const/32bit/vec2f16-i32.wgsl.expected.ir.fxc.hlsl b/test/tint/expressions/bitcast/const/32bit/vec2f16-i32.wgsl.expected.ir.fxc.hlsl
index 9cffe05..787b0ac 100644
--- a/test/tint/expressions/bitcast/const/32bit/vec2f16-i32.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/expressions/bitcast/const/32bit/vec2f16-i32.wgsl.expected.ir.fxc.hlsl
@@ -1,3 +1,4 @@
+
 [numthreads(1, 1, 1)]
 void f() {
   int b = 1073757184;
diff --git a/test/tint/expressions/bitcast/const/32bit/vec2f16-u32.wgsl.expected.ir.dxc.hlsl b/test/tint/expressions/bitcast/const/32bit/vec2f16-u32.wgsl.expected.ir.dxc.hlsl
index 062948f..b62e2a3 100644
--- a/test/tint/expressions/bitcast/const/32bit/vec2f16-u32.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/expressions/bitcast/const/32bit/vec2f16-u32.wgsl.expected.ir.dxc.hlsl
@@ -1,3 +1,4 @@
+
 [numthreads(1, 1, 1)]
 void f() {
   uint b = 1073757184u;
diff --git a/test/tint/expressions/bitcast/const/32bit/vec2f16-u32.wgsl.expected.ir.fxc.hlsl b/test/tint/expressions/bitcast/const/32bit/vec2f16-u32.wgsl.expected.ir.fxc.hlsl
index 062948f..b62e2a3 100644
--- a/test/tint/expressions/bitcast/const/32bit/vec2f16-u32.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/expressions/bitcast/const/32bit/vec2f16-u32.wgsl.expected.ir.fxc.hlsl
@@ -1,3 +1,4 @@
+
 [numthreads(1, 1, 1)]
 void f() {
   uint b = 1073757184u;
diff --git a/test/tint/expressions/bitcast/const/32bit/vec2f16-vec2f16.wgsl.expected.ir.dxc.hlsl b/test/tint/expressions/bitcast/const/32bit/vec2f16-vec2f16.wgsl.expected.ir.dxc.hlsl
index b5222a0..09aac7c 100644
--- a/test/tint/expressions/bitcast/const/32bit/vec2f16-vec2f16.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/expressions/bitcast/const/32bit/vec2f16-vec2f16.wgsl.expected.ir.dxc.hlsl
@@ -1,3 +1,4 @@
+
 [numthreads(1, 1, 1)]
 void f() {
   vector<float16_t, 2> b = vector<float16_t, 2>(float16_t(1.0h), float16_t(2.0h));
diff --git a/test/tint/expressions/bitcast/const/32bit/vec2f16-vec2f16.wgsl.expected.ir.fxc.hlsl b/test/tint/expressions/bitcast/const/32bit/vec2f16-vec2f16.wgsl.expected.ir.fxc.hlsl
index b5222a0..8afe6dd 100644
--- a/test/tint/expressions/bitcast/const/32bit/vec2f16-vec2f16.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/expressions/bitcast/const/32bit/vec2f16-vec2f16.wgsl.expected.ir.fxc.hlsl
@@ -1,5 +1,11 @@
+SKIP: FAILED
+
+
 [numthreads(1, 1, 1)]
 void f() {
   vector<float16_t, 2> b = vector<float16_t, 2>(float16_t(1.0h), float16_t(2.0h));
 }
 
+FXC validation failure:
+c:\src\dawn\Shader@0x000001AC887854D0(4,10-18): error X3000: syntax error: unexpected token 'float16_t'
+
diff --git a/test/tint/expressions/bitcast/const/48bit/vec3f16-vec3f16.wgsl.expected.ir.dxc.hlsl b/test/tint/expressions/bitcast/const/48bit/vec3f16-vec3f16.wgsl.expected.ir.dxc.hlsl
index 0a379c3..7f7554d 100644
--- a/test/tint/expressions/bitcast/const/48bit/vec3f16-vec3f16.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/expressions/bitcast/const/48bit/vec3f16-vec3f16.wgsl.expected.ir.dxc.hlsl
@@ -1,3 +1,4 @@
+
 [numthreads(1, 1, 1)]
 void f() {
   vector<float16_t, 3> b = vector<float16_t, 3>(float16_t(1.0h), float16_t(2.0h), float16_t(3.0h));
diff --git a/test/tint/expressions/bitcast/const/48bit/vec3f16-vec3f16.wgsl.expected.ir.fxc.hlsl b/test/tint/expressions/bitcast/const/48bit/vec3f16-vec3f16.wgsl.expected.ir.fxc.hlsl
index 0a379c3..9f7e1a3 100644
--- a/test/tint/expressions/bitcast/const/48bit/vec3f16-vec3f16.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/expressions/bitcast/const/48bit/vec3f16-vec3f16.wgsl.expected.ir.fxc.hlsl
@@ -1,5 +1,11 @@
+SKIP: FAILED
+
+
 [numthreads(1, 1, 1)]
 void f() {
   vector<float16_t, 3> b = vector<float16_t, 3>(float16_t(1.0h), float16_t(2.0h), float16_t(3.0h));
 }
 
+FXC validation failure:
+c:\src\dawn\Shader@0x0000015F1BB119F0(4,10-18): error X3000: syntax error: unexpected token 'float16_t'
+
diff --git a/test/tint/expressions/bitcast/const/64bit/vec2f32-vec2f32.wgsl.expected.ir.dxc.hlsl b/test/tint/expressions/bitcast/const/64bit/vec2f32-vec2f32.wgsl.expected.ir.dxc.hlsl
index 87ad4ea..f18255f 100644
--- a/test/tint/expressions/bitcast/const/64bit/vec2f32-vec2f32.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/expressions/bitcast/const/64bit/vec2f32-vec2f32.wgsl.expected.ir.dxc.hlsl
@@ -1,3 +1,4 @@
+
 [numthreads(1, 1, 1)]
 void f() {
   float2 b = float2(2.003662109375f, -513.03125f);
diff --git a/test/tint/expressions/bitcast/const/64bit/vec2f32-vec2f32.wgsl.expected.ir.fxc.hlsl b/test/tint/expressions/bitcast/const/64bit/vec2f32-vec2f32.wgsl.expected.ir.fxc.hlsl
index 87ad4ea..f18255f 100644
--- a/test/tint/expressions/bitcast/const/64bit/vec2f32-vec2f32.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/expressions/bitcast/const/64bit/vec2f32-vec2f32.wgsl.expected.ir.fxc.hlsl
@@ -1,3 +1,4 @@
+
 [numthreads(1, 1, 1)]
 void f() {
   float2 b = float2(2.003662109375f, -513.03125f);
diff --git a/test/tint/expressions/bitcast/const/64bit/vec2f32-vec2i32.wgsl.expected.ir.dxc.hlsl b/test/tint/expressions/bitcast/const/64bit/vec2f32-vec2i32.wgsl.expected.ir.dxc.hlsl
index 6b25c56..21ef0e4 100644
--- a/test/tint/expressions/bitcast/const/64bit/vec2f32-vec2i32.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/expressions/bitcast/const/64bit/vec2f32-vec2i32.wgsl.expected.ir.dxc.hlsl
@@ -1,3 +1,4 @@
+
 [numthreads(1, 1, 1)]
 void f() {
   int2 b = int2(1073757184, -1006616064);
diff --git a/test/tint/expressions/bitcast/const/64bit/vec2f32-vec2i32.wgsl.expected.ir.fxc.hlsl b/test/tint/expressions/bitcast/const/64bit/vec2f32-vec2i32.wgsl.expected.ir.fxc.hlsl
index 6b25c56..21ef0e4 100644
--- a/test/tint/expressions/bitcast/const/64bit/vec2f32-vec2i32.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/expressions/bitcast/const/64bit/vec2f32-vec2i32.wgsl.expected.ir.fxc.hlsl
@@ -1,3 +1,4 @@
+
 [numthreads(1, 1, 1)]
 void f() {
   int2 b = int2(1073757184, -1006616064);
diff --git a/test/tint/expressions/bitcast/const/64bit/vec2f32-vec2u32.wgsl.expected.ir.dxc.hlsl b/test/tint/expressions/bitcast/const/64bit/vec2f32-vec2u32.wgsl.expected.ir.dxc.hlsl
index 32d1bf0..3f189c5 100644
--- a/test/tint/expressions/bitcast/const/64bit/vec2f32-vec2u32.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/expressions/bitcast/const/64bit/vec2f32-vec2u32.wgsl.expected.ir.dxc.hlsl
@@ -1,3 +1,4 @@
+
 [numthreads(1, 1, 1)]
 void f() {
   uint2 b = uint2(1073757184u, 3288351232u);
diff --git a/test/tint/expressions/bitcast/const/64bit/vec2f32-vec2u32.wgsl.expected.ir.fxc.hlsl b/test/tint/expressions/bitcast/const/64bit/vec2f32-vec2u32.wgsl.expected.ir.fxc.hlsl
index 32d1bf0..3f189c5 100644
--- a/test/tint/expressions/bitcast/const/64bit/vec2f32-vec2u32.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/expressions/bitcast/const/64bit/vec2f32-vec2u32.wgsl.expected.ir.fxc.hlsl
@@ -1,3 +1,4 @@
+
 [numthreads(1, 1, 1)]
 void f() {
   uint2 b = uint2(1073757184u, 3288351232u);
diff --git a/test/tint/expressions/bitcast/const/64bit/vec2f32-vec4f16.wgsl.expected.ir.dxc.hlsl b/test/tint/expressions/bitcast/const/64bit/vec2f32-vec4f16.wgsl.expected.ir.dxc.hlsl
index 3bcdccc..75cda4e 100644
--- a/test/tint/expressions/bitcast/const/64bit/vec2f32-vec4f16.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/expressions/bitcast/const/64bit/vec2f32-vec4f16.wgsl.expected.ir.dxc.hlsl
@@ -1,3 +1,4 @@
+
 [numthreads(1, 1, 1)]
 void f() {
   vector<float16_t, 4> b = vector<float16_t, 4>(float16_t(1.0h), float16_t(2.0h), float16_t(3.0h), float16_t(-4.0h));
diff --git a/test/tint/expressions/bitcast/const/64bit/vec2f32-vec4f16.wgsl.expected.ir.fxc.hlsl b/test/tint/expressions/bitcast/const/64bit/vec2f32-vec4f16.wgsl.expected.ir.fxc.hlsl
index 3bcdccc..ff4f95a 100644
--- a/test/tint/expressions/bitcast/const/64bit/vec2f32-vec4f16.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/expressions/bitcast/const/64bit/vec2f32-vec4f16.wgsl.expected.ir.fxc.hlsl
@@ -1,5 +1,11 @@
+SKIP: FAILED
+
+
 [numthreads(1, 1, 1)]
 void f() {
   vector<float16_t, 4> b = vector<float16_t, 4>(float16_t(1.0h), float16_t(2.0h), float16_t(3.0h), float16_t(-4.0h));
 }
 
+FXC validation failure:
+c:\src\dawn\Shader@0x00000254FC6152A0(4,10-18): error X3000: syntax error: unexpected token 'float16_t'
+
diff --git a/test/tint/expressions/bitcast/const/64bit/vec2i32-vec2f32.wgsl.expected.ir.dxc.hlsl b/test/tint/expressions/bitcast/const/64bit/vec2i32-vec2f32.wgsl.expected.ir.dxc.hlsl
index 87ad4ea..f18255f 100644
--- a/test/tint/expressions/bitcast/const/64bit/vec2i32-vec2f32.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/expressions/bitcast/const/64bit/vec2i32-vec2f32.wgsl.expected.ir.dxc.hlsl
@@ -1,3 +1,4 @@
+
 [numthreads(1, 1, 1)]
 void f() {
   float2 b = float2(2.003662109375f, -513.03125f);
diff --git a/test/tint/expressions/bitcast/const/64bit/vec2i32-vec2f32.wgsl.expected.ir.fxc.hlsl b/test/tint/expressions/bitcast/const/64bit/vec2i32-vec2f32.wgsl.expected.ir.fxc.hlsl
index 87ad4ea..f18255f 100644
--- a/test/tint/expressions/bitcast/const/64bit/vec2i32-vec2f32.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/expressions/bitcast/const/64bit/vec2i32-vec2f32.wgsl.expected.ir.fxc.hlsl
@@ -1,3 +1,4 @@
+
 [numthreads(1, 1, 1)]
 void f() {
   float2 b = float2(2.003662109375f, -513.03125f);
diff --git a/test/tint/expressions/bitcast/const/64bit/vec2i32-vec2i32.wgsl.expected.ir.dxc.hlsl b/test/tint/expressions/bitcast/const/64bit/vec2i32-vec2i32.wgsl.expected.ir.dxc.hlsl
index 6b25c56..21ef0e4 100644
--- a/test/tint/expressions/bitcast/const/64bit/vec2i32-vec2i32.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/expressions/bitcast/const/64bit/vec2i32-vec2i32.wgsl.expected.ir.dxc.hlsl
@@ -1,3 +1,4 @@
+
 [numthreads(1, 1, 1)]
 void f() {
   int2 b = int2(1073757184, -1006616064);
diff --git a/test/tint/expressions/bitcast/const/64bit/vec2i32-vec2i32.wgsl.expected.ir.fxc.hlsl b/test/tint/expressions/bitcast/const/64bit/vec2i32-vec2i32.wgsl.expected.ir.fxc.hlsl
index 6b25c56..21ef0e4 100644
--- a/test/tint/expressions/bitcast/const/64bit/vec2i32-vec2i32.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/expressions/bitcast/const/64bit/vec2i32-vec2i32.wgsl.expected.ir.fxc.hlsl
@@ -1,3 +1,4 @@
+
 [numthreads(1, 1, 1)]
 void f() {
   int2 b = int2(1073757184, -1006616064);
diff --git a/test/tint/expressions/bitcast/const/64bit/vec2i32-vec2u32.wgsl.expected.ir.dxc.hlsl b/test/tint/expressions/bitcast/const/64bit/vec2i32-vec2u32.wgsl.expected.ir.dxc.hlsl
index 32d1bf0..3f189c5 100644
--- a/test/tint/expressions/bitcast/const/64bit/vec2i32-vec2u32.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/expressions/bitcast/const/64bit/vec2i32-vec2u32.wgsl.expected.ir.dxc.hlsl
@@ -1,3 +1,4 @@
+
 [numthreads(1, 1, 1)]
 void f() {
   uint2 b = uint2(1073757184u, 3288351232u);
diff --git a/test/tint/expressions/bitcast/const/64bit/vec2i32-vec2u32.wgsl.expected.ir.fxc.hlsl b/test/tint/expressions/bitcast/const/64bit/vec2i32-vec2u32.wgsl.expected.ir.fxc.hlsl
index 32d1bf0..3f189c5 100644
--- a/test/tint/expressions/bitcast/const/64bit/vec2i32-vec2u32.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/expressions/bitcast/const/64bit/vec2i32-vec2u32.wgsl.expected.ir.fxc.hlsl
@@ -1,3 +1,4 @@
+
 [numthreads(1, 1, 1)]
 void f() {
   uint2 b = uint2(1073757184u, 3288351232u);
diff --git a/test/tint/expressions/bitcast/const/64bit/vec2i32-vec4f16.wgsl.expected.ir.dxc.hlsl b/test/tint/expressions/bitcast/const/64bit/vec2i32-vec4f16.wgsl.expected.ir.dxc.hlsl
index 3bcdccc..75cda4e 100644
--- a/test/tint/expressions/bitcast/const/64bit/vec2i32-vec4f16.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/expressions/bitcast/const/64bit/vec2i32-vec4f16.wgsl.expected.ir.dxc.hlsl
@@ -1,3 +1,4 @@
+
 [numthreads(1, 1, 1)]
 void f() {
   vector<float16_t, 4> b = vector<float16_t, 4>(float16_t(1.0h), float16_t(2.0h), float16_t(3.0h), float16_t(-4.0h));
diff --git a/test/tint/expressions/bitcast/const/64bit/vec2i32-vec4f16.wgsl.expected.ir.fxc.hlsl b/test/tint/expressions/bitcast/const/64bit/vec2i32-vec4f16.wgsl.expected.ir.fxc.hlsl
index 3bcdccc..0501b6c 100644
--- a/test/tint/expressions/bitcast/const/64bit/vec2i32-vec4f16.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/expressions/bitcast/const/64bit/vec2i32-vec4f16.wgsl.expected.ir.fxc.hlsl
@@ -1,5 +1,11 @@
+SKIP: FAILED
+
+
 [numthreads(1, 1, 1)]
 void f() {
   vector<float16_t, 4> b = vector<float16_t, 4>(float16_t(1.0h), float16_t(2.0h), float16_t(3.0h), float16_t(-4.0h));
 }
 
+FXC validation failure:
+c:\src\dawn\Shader@0x000001D76C9FE810(4,10-18): error X3000: syntax error: unexpected token 'float16_t'
+
diff --git a/test/tint/expressions/bitcast/const/64bit/vec2u32-vec2f32.wgsl.expected.ir.dxc.hlsl b/test/tint/expressions/bitcast/const/64bit/vec2u32-vec2f32.wgsl.expected.ir.dxc.hlsl
index 87ad4ea..f18255f 100644
--- a/test/tint/expressions/bitcast/const/64bit/vec2u32-vec2f32.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/expressions/bitcast/const/64bit/vec2u32-vec2f32.wgsl.expected.ir.dxc.hlsl
@@ -1,3 +1,4 @@
+
 [numthreads(1, 1, 1)]
 void f() {
   float2 b = float2(2.003662109375f, -513.03125f);
diff --git a/test/tint/expressions/bitcast/const/64bit/vec2u32-vec2f32.wgsl.expected.ir.fxc.hlsl b/test/tint/expressions/bitcast/const/64bit/vec2u32-vec2f32.wgsl.expected.ir.fxc.hlsl
index 87ad4ea..f18255f 100644
--- a/test/tint/expressions/bitcast/const/64bit/vec2u32-vec2f32.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/expressions/bitcast/const/64bit/vec2u32-vec2f32.wgsl.expected.ir.fxc.hlsl
@@ -1,3 +1,4 @@
+
 [numthreads(1, 1, 1)]
 void f() {
   float2 b = float2(2.003662109375f, -513.03125f);
diff --git a/test/tint/expressions/bitcast/const/64bit/vec2u32-vec2i32.wgsl.expected.ir.dxc.hlsl b/test/tint/expressions/bitcast/const/64bit/vec2u32-vec2i32.wgsl.expected.ir.dxc.hlsl
index 6b25c56..21ef0e4 100644
--- a/test/tint/expressions/bitcast/const/64bit/vec2u32-vec2i32.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/expressions/bitcast/const/64bit/vec2u32-vec2i32.wgsl.expected.ir.dxc.hlsl
@@ -1,3 +1,4 @@
+
 [numthreads(1, 1, 1)]
 void f() {
   int2 b = int2(1073757184, -1006616064);
diff --git a/test/tint/expressions/bitcast/const/64bit/vec2u32-vec2i32.wgsl.expected.ir.fxc.hlsl b/test/tint/expressions/bitcast/const/64bit/vec2u32-vec2i32.wgsl.expected.ir.fxc.hlsl
index 6b25c56..21ef0e4 100644
--- a/test/tint/expressions/bitcast/const/64bit/vec2u32-vec2i32.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/expressions/bitcast/const/64bit/vec2u32-vec2i32.wgsl.expected.ir.fxc.hlsl
@@ -1,3 +1,4 @@
+
 [numthreads(1, 1, 1)]
 void f() {
   int2 b = int2(1073757184, -1006616064);
diff --git a/test/tint/expressions/bitcast/const/64bit/vec2u32-vec2u32.wgsl.expected.ir.dxc.hlsl b/test/tint/expressions/bitcast/const/64bit/vec2u32-vec2u32.wgsl.expected.ir.dxc.hlsl
index 32d1bf0..3f189c5 100644
--- a/test/tint/expressions/bitcast/const/64bit/vec2u32-vec2u32.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/expressions/bitcast/const/64bit/vec2u32-vec2u32.wgsl.expected.ir.dxc.hlsl
@@ -1,3 +1,4 @@
+
 [numthreads(1, 1, 1)]
 void f() {
   uint2 b = uint2(1073757184u, 3288351232u);
diff --git a/test/tint/expressions/bitcast/const/64bit/vec2u32-vec2u32.wgsl.expected.ir.fxc.hlsl b/test/tint/expressions/bitcast/const/64bit/vec2u32-vec2u32.wgsl.expected.ir.fxc.hlsl
index 32d1bf0..3f189c5 100644
--- a/test/tint/expressions/bitcast/const/64bit/vec2u32-vec2u32.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/expressions/bitcast/const/64bit/vec2u32-vec2u32.wgsl.expected.ir.fxc.hlsl
@@ -1,3 +1,4 @@
+
 [numthreads(1, 1, 1)]
 void f() {
   uint2 b = uint2(1073757184u, 3288351232u);
diff --git a/test/tint/expressions/bitcast/const/64bit/vec2u32-vec4f16.wgsl.expected.ir.dxc.hlsl b/test/tint/expressions/bitcast/const/64bit/vec2u32-vec4f16.wgsl.expected.ir.dxc.hlsl
index 3bcdccc..75cda4e 100644
--- a/test/tint/expressions/bitcast/const/64bit/vec2u32-vec4f16.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/expressions/bitcast/const/64bit/vec2u32-vec4f16.wgsl.expected.ir.dxc.hlsl
@@ -1,3 +1,4 @@
+
 [numthreads(1, 1, 1)]
 void f() {
   vector<float16_t, 4> b = vector<float16_t, 4>(float16_t(1.0h), float16_t(2.0h), float16_t(3.0h), float16_t(-4.0h));
diff --git a/test/tint/expressions/bitcast/const/64bit/vec2u32-vec4f16.wgsl.expected.ir.fxc.hlsl b/test/tint/expressions/bitcast/const/64bit/vec2u32-vec4f16.wgsl.expected.ir.fxc.hlsl
index 3bcdccc..78c4347 100644
--- a/test/tint/expressions/bitcast/const/64bit/vec2u32-vec4f16.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/expressions/bitcast/const/64bit/vec2u32-vec4f16.wgsl.expected.ir.fxc.hlsl
@@ -1,5 +1,11 @@
+SKIP: FAILED
+
+
 [numthreads(1, 1, 1)]
 void f() {
   vector<float16_t, 4> b = vector<float16_t, 4>(float16_t(1.0h), float16_t(2.0h), float16_t(3.0h), float16_t(-4.0h));
 }
 
+FXC validation failure:
+c:\src\dawn\Shader@0x0000022D252B3500(4,10-18): error X3000: syntax error: unexpected token 'float16_t'
+
diff --git a/test/tint/expressions/bitcast/const/64bit/vec4f16-vec2f32.wgsl.expected.ir.dxc.hlsl b/test/tint/expressions/bitcast/const/64bit/vec4f16-vec2f32.wgsl.expected.ir.dxc.hlsl
index 87ad4ea..f18255f 100644
--- a/test/tint/expressions/bitcast/const/64bit/vec4f16-vec2f32.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/expressions/bitcast/const/64bit/vec4f16-vec2f32.wgsl.expected.ir.dxc.hlsl
@@ -1,3 +1,4 @@
+
 [numthreads(1, 1, 1)]
 void f() {
   float2 b = float2(2.003662109375f, -513.03125f);
diff --git a/test/tint/expressions/bitcast/const/64bit/vec4f16-vec2f32.wgsl.expected.ir.fxc.hlsl b/test/tint/expressions/bitcast/const/64bit/vec4f16-vec2f32.wgsl.expected.ir.fxc.hlsl
index 87ad4ea..f18255f 100644
--- a/test/tint/expressions/bitcast/const/64bit/vec4f16-vec2f32.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/expressions/bitcast/const/64bit/vec4f16-vec2f32.wgsl.expected.ir.fxc.hlsl
@@ -1,3 +1,4 @@
+
 [numthreads(1, 1, 1)]
 void f() {
   float2 b = float2(2.003662109375f, -513.03125f);
diff --git a/test/tint/expressions/bitcast/const/64bit/vec4f16-vec2i32.wgsl.expected.ir.dxc.hlsl b/test/tint/expressions/bitcast/const/64bit/vec4f16-vec2i32.wgsl.expected.ir.dxc.hlsl
index 6b25c56..21ef0e4 100644
--- a/test/tint/expressions/bitcast/const/64bit/vec4f16-vec2i32.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/expressions/bitcast/const/64bit/vec4f16-vec2i32.wgsl.expected.ir.dxc.hlsl
@@ -1,3 +1,4 @@
+
 [numthreads(1, 1, 1)]
 void f() {
   int2 b = int2(1073757184, -1006616064);
diff --git a/test/tint/expressions/bitcast/const/64bit/vec4f16-vec2i32.wgsl.expected.ir.fxc.hlsl b/test/tint/expressions/bitcast/const/64bit/vec4f16-vec2i32.wgsl.expected.ir.fxc.hlsl
index 6b25c56..21ef0e4 100644
--- a/test/tint/expressions/bitcast/const/64bit/vec4f16-vec2i32.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/expressions/bitcast/const/64bit/vec4f16-vec2i32.wgsl.expected.ir.fxc.hlsl
@@ -1,3 +1,4 @@
+
 [numthreads(1, 1, 1)]
 void f() {
   int2 b = int2(1073757184, -1006616064);
diff --git a/test/tint/expressions/bitcast/const/64bit/vec4f16-vec2u32.wgsl.expected.ir.dxc.hlsl b/test/tint/expressions/bitcast/const/64bit/vec4f16-vec2u32.wgsl.expected.ir.dxc.hlsl
index 32d1bf0..3f189c5 100644
--- a/test/tint/expressions/bitcast/const/64bit/vec4f16-vec2u32.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/expressions/bitcast/const/64bit/vec4f16-vec2u32.wgsl.expected.ir.dxc.hlsl
@@ -1,3 +1,4 @@
+
 [numthreads(1, 1, 1)]
 void f() {
   uint2 b = uint2(1073757184u, 3288351232u);
diff --git a/test/tint/expressions/bitcast/const/64bit/vec4f16-vec2u32.wgsl.expected.ir.fxc.hlsl b/test/tint/expressions/bitcast/const/64bit/vec4f16-vec2u32.wgsl.expected.ir.fxc.hlsl
index 32d1bf0..3f189c5 100644
--- a/test/tint/expressions/bitcast/const/64bit/vec4f16-vec2u32.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/expressions/bitcast/const/64bit/vec4f16-vec2u32.wgsl.expected.ir.fxc.hlsl
@@ -1,3 +1,4 @@
+
 [numthreads(1, 1, 1)]
 void f() {
   uint2 b = uint2(1073757184u, 3288351232u);
diff --git a/test/tint/expressions/bitcast/const/64bit/vec4f16-vec4f16.wgsl.expected.ir.dxc.hlsl b/test/tint/expressions/bitcast/const/64bit/vec4f16-vec4f16.wgsl.expected.ir.dxc.hlsl
index 3bcdccc..75cda4e 100644
--- a/test/tint/expressions/bitcast/const/64bit/vec4f16-vec4f16.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/expressions/bitcast/const/64bit/vec4f16-vec4f16.wgsl.expected.ir.dxc.hlsl
@@ -1,3 +1,4 @@
+
 [numthreads(1, 1, 1)]
 void f() {
   vector<float16_t, 4> b = vector<float16_t, 4>(float16_t(1.0h), float16_t(2.0h), float16_t(3.0h), float16_t(-4.0h));
diff --git a/test/tint/expressions/bitcast/const/64bit/vec4f16-vec4f16.wgsl.expected.ir.fxc.hlsl b/test/tint/expressions/bitcast/const/64bit/vec4f16-vec4f16.wgsl.expected.ir.fxc.hlsl
index 3bcdccc..3638d8c 100644
--- a/test/tint/expressions/bitcast/const/64bit/vec4f16-vec4f16.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/expressions/bitcast/const/64bit/vec4f16-vec4f16.wgsl.expected.ir.fxc.hlsl
@@ -1,5 +1,11 @@
+SKIP: FAILED
+
+
 [numthreads(1, 1, 1)]
 void f() {
   vector<float16_t, 4> b = vector<float16_t, 4>(float16_t(1.0h), float16_t(2.0h), float16_t(3.0h), float16_t(-4.0h));
 }
 
+FXC validation failure:
+c:\src\dawn\Shader@0x000001E42E2F1320(4,10-18): error X3000: syntax error: unexpected token 'float16_t'
+
diff --git a/test/tint/expressions/bitcast/const/96bit/vec3f32-vec3f32.wgsl.expected.ir.dxc.hlsl b/test/tint/expressions/bitcast/const/96bit/vec3f32-vec3f32.wgsl.expected.ir.dxc.hlsl
index 49855e6..9a453f8 100644
--- a/test/tint/expressions/bitcast/const/96bit/vec3f32-vec3f32.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/expressions/bitcast/const/96bit/vec3f32-vec3f32.wgsl.expected.ir.dxc.hlsl
@@ -1,3 +1,4 @@
+
 [numthreads(1, 1, 1)]
 void f() {
   float3 b = float3(2.003662109375f, -513.03125f, -1024.25f);
diff --git a/test/tint/expressions/bitcast/const/96bit/vec3f32-vec3f32.wgsl.expected.ir.fxc.hlsl b/test/tint/expressions/bitcast/const/96bit/vec3f32-vec3f32.wgsl.expected.ir.fxc.hlsl
index 49855e6..9a453f8 100644
--- a/test/tint/expressions/bitcast/const/96bit/vec3f32-vec3f32.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/expressions/bitcast/const/96bit/vec3f32-vec3f32.wgsl.expected.ir.fxc.hlsl
@@ -1,3 +1,4 @@
+
 [numthreads(1, 1, 1)]
 void f() {
   float3 b = float3(2.003662109375f, -513.03125f, -1024.25f);
diff --git a/test/tint/expressions/bitcast/const/96bit/vec3f32-vec3i32.wgsl.expected.ir.dxc.hlsl b/test/tint/expressions/bitcast/const/96bit/vec3f32-vec3i32.wgsl.expected.ir.dxc.hlsl
index 65cbcb3..05d61ea 100644
--- a/test/tint/expressions/bitcast/const/96bit/vec3f32-vec3i32.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/expressions/bitcast/const/96bit/vec3f32-vec3i32.wgsl.expected.ir.dxc.hlsl
@@ -1,3 +1,4 @@
+
 [numthreads(1, 1, 1)]
 void f() {
   int3 b = int3(1073757184, -1006616064, -998242304);
diff --git a/test/tint/expressions/bitcast/const/96bit/vec3f32-vec3i32.wgsl.expected.ir.fxc.hlsl b/test/tint/expressions/bitcast/const/96bit/vec3f32-vec3i32.wgsl.expected.ir.fxc.hlsl
index 65cbcb3..05d61ea 100644
--- a/test/tint/expressions/bitcast/const/96bit/vec3f32-vec3i32.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/expressions/bitcast/const/96bit/vec3f32-vec3i32.wgsl.expected.ir.fxc.hlsl
@@ -1,3 +1,4 @@
+
 [numthreads(1, 1, 1)]
 void f() {
   int3 b = int3(1073757184, -1006616064, -998242304);
diff --git a/test/tint/expressions/bitcast/const/96bit/vec3f32-vec3u32.wgsl.expected.ir.dxc.hlsl b/test/tint/expressions/bitcast/const/96bit/vec3f32-vec3u32.wgsl.expected.ir.dxc.hlsl
index 7a9b981..f20f97a 100644
--- a/test/tint/expressions/bitcast/const/96bit/vec3f32-vec3u32.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/expressions/bitcast/const/96bit/vec3f32-vec3u32.wgsl.expected.ir.dxc.hlsl
@@ -1,3 +1,4 @@
+
 [numthreads(1, 1, 1)]
 void f() {
   uint3 b = uint3(1073757184u, 3288351232u, 3296724992u);
diff --git a/test/tint/expressions/bitcast/const/96bit/vec3f32-vec3u32.wgsl.expected.ir.fxc.hlsl b/test/tint/expressions/bitcast/const/96bit/vec3f32-vec3u32.wgsl.expected.ir.fxc.hlsl
index 7a9b981..f20f97a 100644
--- a/test/tint/expressions/bitcast/const/96bit/vec3f32-vec3u32.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/expressions/bitcast/const/96bit/vec3f32-vec3u32.wgsl.expected.ir.fxc.hlsl
@@ -1,3 +1,4 @@
+
 [numthreads(1, 1, 1)]
 void f() {
   uint3 b = uint3(1073757184u, 3288351232u, 3296724992u);
diff --git a/test/tint/expressions/bitcast/const/96bit/vec3i32-vec3f32.wgsl.expected.ir.dxc.hlsl b/test/tint/expressions/bitcast/const/96bit/vec3i32-vec3f32.wgsl.expected.ir.dxc.hlsl
index 49855e6..9a453f8 100644
--- a/test/tint/expressions/bitcast/const/96bit/vec3i32-vec3f32.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/expressions/bitcast/const/96bit/vec3i32-vec3f32.wgsl.expected.ir.dxc.hlsl
@@ -1,3 +1,4 @@
+
 [numthreads(1, 1, 1)]
 void f() {
   float3 b = float3(2.003662109375f, -513.03125f, -1024.25f);
diff --git a/test/tint/expressions/bitcast/const/96bit/vec3i32-vec3f32.wgsl.expected.ir.fxc.hlsl b/test/tint/expressions/bitcast/const/96bit/vec3i32-vec3f32.wgsl.expected.ir.fxc.hlsl
index 49855e6..9a453f8 100644
--- a/test/tint/expressions/bitcast/const/96bit/vec3i32-vec3f32.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/expressions/bitcast/const/96bit/vec3i32-vec3f32.wgsl.expected.ir.fxc.hlsl
@@ -1,3 +1,4 @@
+
 [numthreads(1, 1, 1)]
 void f() {
   float3 b = float3(2.003662109375f, -513.03125f, -1024.25f);
diff --git a/test/tint/expressions/bitcast/const/96bit/vec3i32-vec3i32.wgsl.expected.ir.dxc.hlsl b/test/tint/expressions/bitcast/const/96bit/vec3i32-vec3i32.wgsl.expected.ir.dxc.hlsl
index 65cbcb3..05d61ea 100644
--- a/test/tint/expressions/bitcast/const/96bit/vec3i32-vec3i32.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/expressions/bitcast/const/96bit/vec3i32-vec3i32.wgsl.expected.ir.dxc.hlsl
@@ -1,3 +1,4 @@
+
 [numthreads(1, 1, 1)]
 void f() {
   int3 b = int3(1073757184, -1006616064, -998242304);
diff --git a/test/tint/expressions/bitcast/const/96bit/vec3i32-vec3i32.wgsl.expected.ir.fxc.hlsl b/test/tint/expressions/bitcast/const/96bit/vec3i32-vec3i32.wgsl.expected.ir.fxc.hlsl
index 65cbcb3..05d61ea 100644
--- a/test/tint/expressions/bitcast/const/96bit/vec3i32-vec3i32.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/expressions/bitcast/const/96bit/vec3i32-vec3i32.wgsl.expected.ir.fxc.hlsl
@@ -1,3 +1,4 @@
+
 [numthreads(1, 1, 1)]
 void f() {
   int3 b = int3(1073757184, -1006616064, -998242304);
diff --git a/test/tint/expressions/bitcast/const/96bit/vec3i32-vec3u32.wgsl.expected.ir.dxc.hlsl b/test/tint/expressions/bitcast/const/96bit/vec3i32-vec3u32.wgsl.expected.ir.dxc.hlsl
index 7a9b981..f20f97a 100644
--- a/test/tint/expressions/bitcast/const/96bit/vec3i32-vec3u32.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/expressions/bitcast/const/96bit/vec3i32-vec3u32.wgsl.expected.ir.dxc.hlsl
@@ -1,3 +1,4 @@
+
 [numthreads(1, 1, 1)]
 void f() {
   uint3 b = uint3(1073757184u, 3288351232u, 3296724992u);
diff --git a/test/tint/expressions/bitcast/const/96bit/vec3i32-vec3u32.wgsl.expected.ir.fxc.hlsl b/test/tint/expressions/bitcast/const/96bit/vec3i32-vec3u32.wgsl.expected.ir.fxc.hlsl
index 7a9b981..f20f97a 100644
--- a/test/tint/expressions/bitcast/const/96bit/vec3i32-vec3u32.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/expressions/bitcast/const/96bit/vec3i32-vec3u32.wgsl.expected.ir.fxc.hlsl
@@ -1,3 +1,4 @@
+
 [numthreads(1, 1, 1)]
 void f() {
   uint3 b = uint3(1073757184u, 3288351232u, 3296724992u);
diff --git a/test/tint/expressions/bitcast/const/96bit/vec3u32-vec3f32.wgsl.expected.ir.dxc.hlsl b/test/tint/expressions/bitcast/const/96bit/vec3u32-vec3f32.wgsl.expected.ir.dxc.hlsl
index 49855e6..9a453f8 100644
--- a/test/tint/expressions/bitcast/const/96bit/vec3u32-vec3f32.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/expressions/bitcast/const/96bit/vec3u32-vec3f32.wgsl.expected.ir.dxc.hlsl
@@ -1,3 +1,4 @@
+
 [numthreads(1, 1, 1)]
 void f() {
   float3 b = float3(2.003662109375f, -513.03125f, -1024.25f);
diff --git a/test/tint/expressions/bitcast/const/96bit/vec3u32-vec3f32.wgsl.expected.ir.fxc.hlsl b/test/tint/expressions/bitcast/const/96bit/vec3u32-vec3f32.wgsl.expected.ir.fxc.hlsl
index 49855e6..9a453f8 100644
--- a/test/tint/expressions/bitcast/const/96bit/vec3u32-vec3f32.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/expressions/bitcast/const/96bit/vec3u32-vec3f32.wgsl.expected.ir.fxc.hlsl
@@ -1,3 +1,4 @@
+
 [numthreads(1, 1, 1)]
 void f() {
   float3 b = float3(2.003662109375f, -513.03125f, -1024.25f);
diff --git a/test/tint/expressions/bitcast/const/96bit/vec3u32-vec3i32.wgsl.expected.ir.dxc.hlsl b/test/tint/expressions/bitcast/const/96bit/vec3u32-vec3i32.wgsl.expected.ir.dxc.hlsl
index 65cbcb3..05d61ea 100644
--- a/test/tint/expressions/bitcast/const/96bit/vec3u32-vec3i32.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/expressions/bitcast/const/96bit/vec3u32-vec3i32.wgsl.expected.ir.dxc.hlsl
@@ -1,3 +1,4 @@
+
 [numthreads(1, 1, 1)]
 void f() {
   int3 b = int3(1073757184, -1006616064, -998242304);
diff --git a/test/tint/expressions/bitcast/const/96bit/vec3u32-vec3i32.wgsl.expected.ir.fxc.hlsl b/test/tint/expressions/bitcast/const/96bit/vec3u32-vec3i32.wgsl.expected.ir.fxc.hlsl
index 65cbcb3..05d61ea 100644
--- a/test/tint/expressions/bitcast/const/96bit/vec3u32-vec3i32.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/expressions/bitcast/const/96bit/vec3u32-vec3i32.wgsl.expected.ir.fxc.hlsl
@@ -1,3 +1,4 @@
+
 [numthreads(1, 1, 1)]
 void f() {
   int3 b = int3(1073757184, -1006616064, -998242304);
diff --git a/test/tint/expressions/bitcast/const/96bit/vec3u32-vec3u32.wgsl.expected.ir.dxc.hlsl b/test/tint/expressions/bitcast/const/96bit/vec3u32-vec3u32.wgsl.expected.ir.dxc.hlsl
index 7a9b981..f20f97a 100644
--- a/test/tint/expressions/bitcast/const/96bit/vec3u32-vec3u32.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/expressions/bitcast/const/96bit/vec3u32-vec3u32.wgsl.expected.ir.dxc.hlsl
@@ -1,3 +1,4 @@
+
 [numthreads(1, 1, 1)]
 void f() {
   uint3 b = uint3(1073757184u, 3288351232u, 3296724992u);
diff --git a/test/tint/expressions/bitcast/const/96bit/vec3u32-vec3u32.wgsl.expected.ir.fxc.hlsl b/test/tint/expressions/bitcast/const/96bit/vec3u32-vec3u32.wgsl.expected.ir.fxc.hlsl
index 7a9b981..f20f97a 100644
--- a/test/tint/expressions/bitcast/const/96bit/vec3u32-vec3u32.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/expressions/bitcast/const/96bit/vec3u32-vec3u32.wgsl.expected.ir.fxc.hlsl
@@ -1,3 +1,4 @@
+
 [numthreads(1, 1, 1)]
 void f() {
   uint3 b = uint3(1073757184u, 3288351232u, 3296724992u);
diff --git a/test/tint/expressions/bitcast/let/128bit/vec4f32-vec4f32.wgsl.expected.ir.dxc.hlsl b/test/tint/expressions/bitcast/let/128bit/vec4f32-vec4f32.wgsl.expected.ir.dxc.hlsl
index a249798..b317a60 100644
--- a/test/tint/expressions/bitcast/let/128bit/vec4f32-vec4f32.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/expressions/bitcast/let/128bit/vec4f32-vec4f32.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,7 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Bitcast
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+[numthreads(1, 1, 1)]
+void f() {
+  float4 a = float4(2.003662109375f, -513.03125f, -1024.25f, 0.00169684563297778368f);
+  float4 b = a;
+}
+
diff --git a/test/tint/expressions/bitcast/let/128bit/vec4f32-vec4f32.wgsl.expected.ir.fxc.hlsl b/test/tint/expressions/bitcast/let/128bit/vec4f32-vec4f32.wgsl.expected.ir.fxc.hlsl
index a249798..b317a60 100644
--- a/test/tint/expressions/bitcast/let/128bit/vec4f32-vec4f32.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/expressions/bitcast/let/128bit/vec4f32-vec4f32.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,7 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Bitcast
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+[numthreads(1, 1, 1)]
+void f() {
+  float4 a = float4(2.003662109375f, -513.03125f, -1024.25f, 0.00169684563297778368f);
+  float4 b = a;
+}
+
diff --git a/test/tint/expressions/bitcast/let/128bit/vec4f32-vec4i32.wgsl.expected.ir.dxc.hlsl b/test/tint/expressions/bitcast/let/128bit/vec4f32-vec4i32.wgsl.expected.ir.dxc.hlsl
index a249798..c3d5b62 100644
--- a/test/tint/expressions/bitcast/let/128bit/vec4f32-vec4i32.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/expressions/bitcast/let/128bit/vec4f32-vec4i32.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,7 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Bitcast
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+[numthreads(1, 1, 1)]
+void f() {
+  float4 a = float4(2.003662109375f, -513.03125f, -1024.25f, 0.00169684563297778368f);
+  int4 b = asint(a);
+}
+
diff --git a/test/tint/expressions/bitcast/let/128bit/vec4f32-vec4i32.wgsl.expected.ir.fxc.hlsl b/test/tint/expressions/bitcast/let/128bit/vec4f32-vec4i32.wgsl.expected.ir.fxc.hlsl
index a249798..c3d5b62 100644
--- a/test/tint/expressions/bitcast/let/128bit/vec4f32-vec4i32.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/expressions/bitcast/let/128bit/vec4f32-vec4i32.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,7 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Bitcast
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+[numthreads(1, 1, 1)]
+void f() {
+  float4 a = float4(2.003662109375f, -513.03125f, -1024.25f, 0.00169684563297778368f);
+  int4 b = asint(a);
+}
+
diff --git a/test/tint/expressions/bitcast/let/128bit/vec4f32-vec4u32.wgsl.expected.ir.dxc.hlsl b/test/tint/expressions/bitcast/let/128bit/vec4f32-vec4u32.wgsl.expected.ir.dxc.hlsl
index a249798..7984f35 100644
--- a/test/tint/expressions/bitcast/let/128bit/vec4f32-vec4u32.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/expressions/bitcast/let/128bit/vec4f32-vec4u32.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,7 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Bitcast
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+[numthreads(1, 1, 1)]
+void f() {
+  float4 a = float4(2.003662109375f, -513.03125f, -1024.25f, 0.00169684563297778368f);
+  uint4 b = asuint(a);
+}
+
diff --git a/test/tint/expressions/bitcast/let/128bit/vec4f32-vec4u32.wgsl.expected.ir.fxc.hlsl b/test/tint/expressions/bitcast/let/128bit/vec4f32-vec4u32.wgsl.expected.ir.fxc.hlsl
index a249798..7984f35 100644
--- a/test/tint/expressions/bitcast/let/128bit/vec4f32-vec4u32.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/expressions/bitcast/let/128bit/vec4f32-vec4u32.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,7 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Bitcast
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+[numthreads(1, 1, 1)]
+void f() {
+  float4 a = float4(2.003662109375f, -513.03125f, -1024.25f, 0.00169684563297778368f);
+  uint4 b = asuint(a);
+}
+
diff --git a/test/tint/expressions/bitcast/let/128bit/vec4i32-vec4f32.wgsl.expected.ir.dxc.hlsl b/test/tint/expressions/bitcast/let/128bit/vec4i32-vec4f32.wgsl.expected.ir.dxc.hlsl
index a249798..18c28d8 100644
--- a/test/tint/expressions/bitcast/let/128bit/vec4i32-vec4f32.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/expressions/bitcast/let/128bit/vec4i32-vec4f32.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,7 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Bitcast
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+[numthreads(1, 1, 1)]
+void f() {
+  int4 a = int4(1073757184, -1006616064, -998242304, 987654321);
+  float4 b = asfloat(a);
+}
+
diff --git a/test/tint/expressions/bitcast/let/128bit/vec4i32-vec4f32.wgsl.expected.ir.fxc.hlsl b/test/tint/expressions/bitcast/let/128bit/vec4i32-vec4f32.wgsl.expected.ir.fxc.hlsl
index a249798..18c28d8 100644
--- a/test/tint/expressions/bitcast/let/128bit/vec4i32-vec4f32.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/expressions/bitcast/let/128bit/vec4i32-vec4f32.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,7 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Bitcast
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+[numthreads(1, 1, 1)]
+void f() {
+  int4 a = int4(1073757184, -1006616064, -998242304, 987654321);
+  float4 b = asfloat(a);
+}
+
diff --git a/test/tint/expressions/bitcast/let/128bit/vec4i32-vec4i32.wgsl.expected.ir.dxc.hlsl b/test/tint/expressions/bitcast/let/128bit/vec4i32-vec4i32.wgsl.expected.ir.dxc.hlsl
index a249798..1259e1b 100644
--- a/test/tint/expressions/bitcast/let/128bit/vec4i32-vec4i32.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/expressions/bitcast/let/128bit/vec4i32-vec4i32.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,7 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Bitcast
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+[numthreads(1, 1, 1)]
+void f() {
+  int4 a = int4(1073757184, -1006616064, -998242304, 987654321);
+  int4 b = a;
+}
+
diff --git a/test/tint/expressions/bitcast/let/128bit/vec4i32-vec4i32.wgsl.expected.ir.fxc.hlsl b/test/tint/expressions/bitcast/let/128bit/vec4i32-vec4i32.wgsl.expected.ir.fxc.hlsl
index a249798..1259e1b 100644
--- a/test/tint/expressions/bitcast/let/128bit/vec4i32-vec4i32.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/expressions/bitcast/let/128bit/vec4i32-vec4i32.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,7 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Bitcast
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+[numthreads(1, 1, 1)]
+void f() {
+  int4 a = int4(1073757184, -1006616064, -998242304, 987654321);
+  int4 b = a;
+}
+
diff --git a/test/tint/expressions/bitcast/let/128bit/vec4i32-vec4u32.wgsl.expected.ir.dxc.hlsl b/test/tint/expressions/bitcast/let/128bit/vec4i32-vec4u32.wgsl.expected.ir.dxc.hlsl
index a249798..ff278c2 100644
--- a/test/tint/expressions/bitcast/let/128bit/vec4i32-vec4u32.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/expressions/bitcast/let/128bit/vec4i32-vec4u32.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,7 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Bitcast
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+[numthreads(1, 1, 1)]
+void f() {
+  int4 a = int4(1073757184, -1006616064, -998242304, 987654321);
+  uint4 b = asuint(a);
+}
+
diff --git a/test/tint/expressions/bitcast/let/128bit/vec4i32-vec4u32.wgsl.expected.ir.fxc.hlsl b/test/tint/expressions/bitcast/let/128bit/vec4i32-vec4u32.wgsl.expected.ir.fxc.hlsl
index a249798..ff278c2 100644
--- a/test/tint/expressions/bitcast/let/128bit/vec4i32-vec4u32.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/expressions/bitcast/let/128bit/vec4i32-vec4u32.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,7 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Bitcast
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+[numthreads(1, 1, 1)]
+void f() {
+  int4 a = int4(1073757184, -1006616064, -998242304, 987654321);
+  uint4 b = asuint(a);
+}
+
diff --git a/test/tint/expressions/bitcast/let/128bit/vec4u32-vec4f32.wgsl.expected.ir.dxc.hlsl b/test/tint/expressions/bitcast/let/128bit/vec4u32-vec4f32.wgsl.expected.ir.dxc.hlsl
index a249798..24eddad 100644
--- a/test/tint/expressions/bitcast/let/128bit/vec4u32-vec4f32.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/expressions/bitcast/let/128bit/vec4u32-vec4f32.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,7 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Bitcast
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+[numthreads(1, 1, 1)]
+void f() {
+  uint4 a = uint4(1073757184u, 3288351232u, 3296724992u, 987654321u);
+  float4 b = asfloat(a);
+}
+
diff --git a/test/tint/expressions/bitcast/let/128bit/vec4u32-vec4f32.wgsl.expected.ir.fxc.hlsl b/test/tint/expressions/bitcast/let/128bit/vec4u32-vec4f32.wgsl.expected.ir.fxc.hlsl
index a249798..24eddad 100644
--- a/test/tint/expressions/bitcast/let/128bit/vec4u32-vec4f32.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/expressions/bitcast/let/128bit/vec4u32-vec4f32.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,7 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Bitcast
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+[numthreads(1, 1, 1)]
+void f() {
+  uint4 a = uint4(1073757184u, 3288351232u, 3296724992u, 987654321u);
+  float4 b = asfloat(a);
+}
+
diff --git a/test/tint/expressions/bitcast/let/128bit/vec4u32-vec4i32.wgsl.expected.ir.dxc.hlsl b/test/tint/expressions/bitcast/let/128bit/vec4u32-vec4i32.wgsl.expected.ir.dxc.hlsl
index a249798..becc689 100644
--- a/test/tint/expressions/bitcast/let/128bit/vec4u32-vec4i32.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/expressions/bitcast/let/128bit/vec4u32-vec4i32.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,7 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Bitcast
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+[numthreads(1, 1, 1)]
+void f() {
+  uint4 a = uint4(1073757184u, 3288351232u, 3296724992u, 987654321u);
+  int4 b = asint(a);
+}
+
diff --git a/test/tint/expressions/bitcast/let/128bit/vec4u32-vec4i32.wgsl.expected.ir.fxc.hlsl b/test/tint/expressions/bitcast/let/128bit/vec4u32-vec4i32.wgsl.expected.ir.fxc.hlsl
index a249798..becc689 100644
--- a/test/tint/expressions/bitcast/let/128bit/vec4u32-vec4i32.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/expressions/bitcast/let/128bit/vec4u32-vec4i32.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,7 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Bitcast
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+[numthreads(1, 1, 1)]
+void f() {
+  uint4 a = uint4(1073757184u, 3288351232u, 3296724992u, 987654321u);
+  int4 b = asint(a);
+}
+
diff --git a/test/tint/expressions/bitcast/let/128bit/vec4u32-vec4u32.wgsl.expected.ir.dxc.hlsl b/test/tint/expressions/bitcast/let/128bit/vec4u32-vec4u32.wgsl.expected.ir.dxc.hlsl
index a249798..20dc239 100644
--- a/test/tint/expressions/bitcast/let/128bit/vec4u32-vec4u32.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/expressions/bitcast/let/128bit/vec4u32-vec4u32.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,7 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Bitcast
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+[numthreads(1, 1, 1)]
+void f() {
+  uint4 a = uint4(1073757184u, 3288351232u, 3296724992u, 987654321u);
+  uint4 b = a;
+}
+
diff --git a/test/tint/expressions/bitcast/let/128bit/vec4u32-vec4u32.wgsl.expected.ir.fxc.hlsl b/test/tint/expressions/bitcast/let/128bit/vec4u32-vec4u32.wgsl.expected.ir.fxc.hlsl
index a249798..20dc239 100644
--- a/test/tint/expressions/bitcast/let/128bit/vec4u32-vec4u32.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/expressions/bitcast/let/128bit/vec4u32-vec4u32.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,7 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Bitcast
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+[numthreads(1, 1, 1)]
+void f() {
+  uint4 a = uint4(1073757184u, 3288351232u, 3296724992u, 987654321u);
+  uint4 b = a;
+}
+
diff --git a/test/tint/expressions/bitcast/let/16bit/f16-f16.wgsl.expected.ir.dxc.hlsl b/test/tint/expressions/bitcast/let/16bit/f16-f16.wgsl.expected.ir.dxc.hlsl
index a249798..09b08bf 100644
--- a/test/tint/expressions/bitcast/let/16bit/f16-f16.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/expressions/bitcast/let/16bit/f16-f16.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,7 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Bitcast
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+[numthreads(1, 1, 1)]
+void f() {
+  float16_t a = float16_t(1.0h);
+  float16_t b = a;
+}
+
diff --git a/test/tint/expressions/bitcast/let/16bit/f16-f16.wgsl.expected.ir.fxc.hlsl b/test/tint/expressions/bitcast/let/16bit/f16-f16.wgsl.expected.ir.fxc.hlsl
index a249798..5fc372a 100644
--- a/test/tint/expressions/bitcast/let/16bit/f16-f16.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/expressions/bitcast/let/16bit/f16-f16.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,13 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Bitcast
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+
+[numthreads(1, 1, 1)]
+void f() {
+  float16_t a = float16_t(1.0h);
+  float16_t b = a;
+}
+
+FXC validation failure:
+c:\src\dawn\Shader@0x0000026760F70550(4,3-11): error X3000: unrecognized identifier 'float16_t'
+c:\src\dawn\Shader@0x0000026760F70550(4,13): error X3000: unrecognized identifier 'a'
+
diff --git a/test/tint/expressions/bitcast/let/32bit/f32-f32.wgsl.expected.ir.dxc.hlsl b/test/tint/expressions/bitcast/let/32bit/f32-f32.wgsl.expected.ir.dxc.hlsl
index a249798..018d2be 100644
--- a/test/tint/expressions/bitcast/let/32bit/f32-f32.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/expressions/bitcast/let/32bit/f32-f32.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,7 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Bitcast
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+[numthreads(1, 1, 1)]
+void f() {
+  float a = 2.003662109375f;
+  float b = a;
+}
+
diff --git a/test/tint/expressions/bitcast/let/32bit/f32-f32.wgsl.expected.ir.fxc.hlsl b/test/tint/expressions/bitcast/let/32bit/f32-f32.wgsl.expected.ir.fxc.hlsl
index a249798..018d2be 100644
--- a/test/tint/expressions/bitcast/let/32bit/f32-f32.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/expressions/bitcast/let/32bit/f32-f32.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,7 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Bitcast
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+[numthreads(1, 1, 1)]
+void f() {
+  float a = 2.003662109375f;
+  float b = a;
+}
+
diff --git a/test/tint/expressions/bitcast/let/32bit/f32-i32.wgsl.expected.ir.dxc.hlsl b/test/tint/expressions/bitcast/let/32bit/f32-i32.wgsl.expected.ir.dxc.hlsl
index a249798..b86d674 100644
--- a/test/tint/expressions/bitcast/let/32bit/f32-i32.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/expressions/bitcast/let/32bit/f32-i32.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,7 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Bitcast
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+[numthreads(1, 1, 1)]
+void f() {
+  float a = 2.003662109375f;
+  int b = asint(a);
+}
+
diff --git a/test/tint/expressions/bitcast/let/32bit/f32-i32.wgsl.expected.ir.fxc.hlsl b/test/tint/expressions/bitcast/let/32bit/f32-i32.wgsl.expected.ir.fxc.hlsl
index a249798..b86d674 100644
--- a/test/tint/expressions/bitcast/let/32bit/f32-i32.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/expressions/bitcast/let/32bit/f32-i32.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,7 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Bitcast
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+[numthreads(1, 1, 1)]
+void f() {
+  float a = 2.003662109375f;
+  int b = asint(a);
+}
+
diff --git a/test/tint/expressions/bitcast/let/32bit/f32-u32.wgsl.expected.ir.dxc.hlsl b/test/tint/expressions/bitcast/let/32bit/f32-u32.wgsl.expected.ir.dxc.hlsl
index a249798..20f52ec 100644
--- a/test/tint/expressions/bitcast/let/32bit/f32-u32.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/expressions/bitcast/let/32bit/f32-u32.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,7 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Bitcast
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+[numthreads(1, 1, 1)]
+void f() {
+  float a = 2.003662109375f;
+  uint b = asuint(a);
+}
+
diff --git a/test/tint/expressions/bitcast/let/32bit/f32-u32.wgsl.expected.ir.fxc.hlsl b/test/tint/expressions/bitcast/let/32bit/f32-u32.wgsl.expected.ir.fxc.hlsl
index a249798..20f52ec 100644
--- a/test/tint/expressions/bitcast/let/32bit/f32-u32.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/expressions/bitcast/let/32bit/f32-u32.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,7 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Bitcast
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+[numthreads(1, 1, 1)]
+void f() {
+  float a = 2.003662109375f;
+  uint b = asuint(a);
+}
+
diff --git a/test/tint/expressions/bitcast/let/32bit/f32-vec2f16.wgsl.expected.ir.dxc.hlsl b/test/tint/expressions/bitcast/let/32bit/f32-vec2f16.wgsl.expected.ir.dxc.hlsl
index a249798..fbd2ba4 100644
--- a/test/tint/expressions/bitcast/let/32bit/f32-vec2f16.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/expressions/bitcast/let/32bit/f32-vec2f16.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,15 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Bitcast
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+vector<float16_t, 2> tint_bitcast_to_f16(float src) {
+  uint v = asuint(src);
+  float t_low = f16tof32((v & 65535u));
+  float t_high = f16tof32(((v >> 16u) & 65535u));
+  float16_t v_1 = float16_t(t_low);
+  return vector<float16_t, 2>(v_1, float16_t(t_high));
+}
+
+[numthreads(1, 1, 1)]
+void f() {
+  float a = 2.003662109375f;
+  vector<float16_t, 2> b = tint_bitcast_to_f16(a);
+}
+
diff --git a/test/tint/expressions/bitcast/let/32bit/f32-vec2f16.wgsl.expected.ir.fxc.hlsl b/test/tint/expressions/bitcast/let/32bit/f32-vec2f16.wgsl.expected.ir.fxc.hlsl
index a249798..571244f 100644
--- a/test/tint/expressions/bitcast/let/32bit/f32-vec2f16.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/expressions/bitcast/let/32bit/f32-vec2f16.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,20 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Bitcast
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+
+vector<float16_t, 2> tint_bitcast_to_f16(float src) {
+  uint v = asuint(src);
+  float t_low = f16tof32((v & 65535u));
+  float t_high = f16tof32(((v >> 16u) & 65535u));
+  float16_t v_1 = float16_t(t_low);
+  return vector<float16_t, 2>(v_1, float16_t(t_high));
+}
+
+[numthreads(1, 1, 1)]
+void f() {
+  float a = 2.003662109375f;
+  vector<float16_t, 2> b = tint_bitcast_to_f16(a);
+}
+
+FXC validation failure:
+c:\src\dawn\Shader@0x000001F90A4639D0(2,8-16): error X3000: syntax error: unexpected token 'float16_t'
+
diff --git a/test/tint/expressions/bitcast/let/32bit/i32-f32.wgsl.expected.ir.dxc.hlsl b/test/tint/expressions/bitcast/let/32bit/i32-f32.wgsl.expected.ir.dxc.hlsl
index a249798..bf9d1cb 100644
--- a/test/tint/expressions/bitcast/let/32bit/i32-f32.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/expressions/bitcast/let/32bit/i32-f32.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,7 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Bitcast
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+[numthreads(1, 1, 1)]
+void f() {
+  int a = 1073757184;
+  float b = asfloat(a);
+}
+
diff --git a/test/tint/expressions/bitcast/let/32bit/i32-f32.wgsl.expected.ir.fxc.hlsl b/test/tint/expressions/bitcast/let/32bit/i32-f32.wgsl.expected.ir.fxc.hlsl
index a249798..bf9d1cb 100644
--- a/test/tint/expressions/bitcast/let/32bit/i32-f32.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/expressions/bitcast/let/32bit/i32-f32.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,7 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Bitcast
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+[numthreads(1, 1, 1)]
+void f() {
+  int a = 1073757184;
+  float b = asfloat(a);
+}
+
diff --git a/test/tint/expressions/bitcast/let/32bit/i32-i32.wgsl.expected.ir.dxc.hlsl b/test/tint/expressions/bitcast/let/32bit/i32-i32.wgsl.expected.ir.dxc.hlsl
index a249798..cd7eb2c 100644
--- a/test/tint/expressions/bitcast/let/32bit/i32-i32.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/expressions/bitcast/let/32bit/i32-i32.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,7 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Bitcast
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+[numthreads(1, 1, 1)]
+void f() {
+  int a = 1073757184;
+  int b = a;
+}
+
diff --git a/test/tint/expressions/bitcast/let/32bit/i32-i32.wgsl.expected.ir.fxc.hlsl b/test/tint/expressions/bitcast/let/32bit/i32-i32.wgsl.expected.ir.fxc.hlsl
index a249798..cd7eb2c 100644
--- a/test/tint/expressions/bitcast/let/32bit/i32-i32.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/expressions/bitcast/let/32bit/i32-i32.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,7 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Bitcast
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+[numthreads(1, 1, 1)]
+void f() {
+  int a = 1073757184;
+  int b = a;
+}
+
diff --git a/test/tint/expressions/bitcast/let/32bit/i32-u32.wgsl.expected.ir.dxc.hlsl b/test/tint/expressions/bitcast/let/32bit/i32-u32.wgsl.expected.ir.dxc.hlsl
index a249798..1b657f1 100644
--- a/test/tint/expressions/bitcast/let/32bit/i32-u32.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/expressions/bitcast/let/32bit/i32-u32.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,7 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Bitcast
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+[numthreads(1, 1, 1)]
+void f() {
+  int a = 1073757184;
+  uint b = asuint(a);
+}
+
diff --git a/test/tint/expressions/bitcast/let/32bit/i32-u32.wgsl.expected.ir.fxc.hlsl b/test/tint/expressions/bitcast/let/32bit/i32-u32.wgsl.expected.ir.fxc.hlsl
index a249798..1b657f1 100644
--- a/test/tint/expressions/bitcast/let/32bit/i32-u32.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/expressions/bitcast/let/32bit/i32-u32.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,7 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Bitcast
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+[numthreads(1, 1, 1)]
+void f() {
+  int a = 1073757184;
+  uint b = asuint(a);
+}
+
diff --git a/test/tint/expressions/bitcast/let/32bit/i32-vec2f16.wgsl.expected.ir.dxc.hlsl b/test/tint/expressions/bitcast/let/32bit/i32-vec2f16.wgsl.expected.ir.dxc.hlsl
index a249798..e3c29f6 100644
--- a/test/tint/expressions/bitcast/let/32bit/i32-vec2f16.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/expressions/bitcast/let/32bit/i32-vec2f16.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,15 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Bitcast
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+vector<float16_t, 2> tint_bitcast_to_f16(int src) {
+  uint v = asuint(src);
+  float t_low = f16tof32((v & 65535u));
+  float t_high = f16tof32(((v >> 16u) & 65535u));
+  float16_t v_1 = float16_t(t_low);
+  return vector<float16_t, 2>(v_1, float16_t(t_high));
+}
+
+[numthreads(1, 1, 1)]
+void f() {
+  int a = 1073757184;
+  vector<float16_t, 2> b = tint_bitcast_to_f16(a);
+}
+
diff --git a/test/tint/expressions/bitcast/let/32bit/i32-vec2f16.wgsl.expected.ir.fxc.hlsl b/test/tint/expressions/bitcast/let/32bit/i32-vec2f16.wgsl.expected.ir.fxc.hlsl
index a249798..0cb0bcf 100644
--- a/test/tint/expressions/bitcast/let/32bit/i32-vec2f16.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/expressions/bitcast/let/32bit/i32-vec2f16.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,20 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Bitcast
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+
+vector<float16_t, 2> tint_bitcast_to_f16(int src) {
+  uint v = asuint(src);
+  float t_low = f16tof32((v & 65535u));
+  float t_high = f16tof32(((v >> 16u) & 65535u));
+  float16_t v_1 = float16_t(t_low);
+  return vector<float16_t, 2>(v_1, float16_t(t_high));
+}
+
+[numthreads(1, 1, 1)]
+void f() {
+  int a = 1073757184;
+  vector<float16_t, 2> b = tint_bitcast_to_f16(a);
+}
+
+FXC validation failure:
+c:\src\dawn\Shader@0x0000017F10ABFAE0(2,8-16): error X3000: syntax error: unexpected token 'float16_t'
+
diff --git a/test/tint/expressions/bitcast/let/32bit/u32-f32.wgsl.expected.ir.dxc.hlsl b/test/tint/expressions/bitcast/let/32bit/u32-f32.wgsl.expected.ir.dxc.hlsl
index a249798..abaa34b 100644
--- a/test/tint/expressions/bitcast/let/32bit/u32-f32.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/expressions/bitcast/let/32bit/u32-f32.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,7 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Bitcast
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+[numthreads(1, 1, 1)]
+void f() {
+  uint a = 1073757184u;
+  float b = asfloat(a);
+}
+
diff --git a/test/tint/expressions/bitcast/let/32bit/u32-f32.wgsl.expected.ir.fxc.hlsl b/test/tint/expressions/bitcast/let/32bit/u32-f32.wgsl.expected.ir.fxc.hlsl
index a249798..abaa34b 100644
--- a/test/tint/expressions/bitcast/let/32bit/u32-f32.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/expressions/bitcast/let/32bit/u32-f32.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,7 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Bitcast
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+[numthreads(1, 1, 1)]
+void f() {
+  uint a = 1073757184u;
+  float b = asfloat(a);
+}
+
diff --git a/test/tint/expressions/bitcast/let/32bit/u32-i32.wgsl.expected.ir.dxc.hlsl b/test/tint/expressions/bitcast/let/32bit/u32-i32.wgsl.expected.ir.dxc.hlsl
index a249798..f8463ce 100644
--- a/test/tint/expressions/bitcast/let/32bit/u32-i32.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/expressions/bitcast/let/32bit/u32-i32.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,7 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Bitcast
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+[numthreads(1, 1, 1)]
+void f() {
+  uint a = 1073757184u;
+  int b = asint(a);
+}
+
diff --git a/test/tint/expressions/bitcast/let/32bit/u32-i32.wgsl.expected.ir.fxc.hlsl b/test/tint/expressions/bitcast/let/32bit/u32-i32.wgsl.expected.ir.fxc.hlsl
index a249798..f8463ce 100644
--- a/test/tint/expressions/bitcast/let/32bit/u32-i32.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/expressions/bitcast/let/32bit/u32-i32.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,7 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Bitcast
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+[numthreads(1, 1, 1)]
+void f() {
+  uint a = 1073757184u;
+  int b = asint(a);
+}
+
diff --git a/test/tint/expressions/bitcast/let/32bit/u32-u32.wgsl.expected.ir.dxc.hlsl b/test/tint/expressions/bitcast/let/32bit/u32-u32.wgsl.expected.ir.dxc.hlsl
index a249798..623533d 100644
--- a/test/tint/expressions/bitcast/let/32bit/u32-u32.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/expressions/bitcast/let/32bit/u32-u32.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,7 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Bitcast
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+[numthreads(1, 1, 1)]
+void f() {
+  uint a = 1073757184u;
+  uint b = a;
+}
+
diff --git a/test/tint/expressions/bitcast/let/32bit/u32-u32.wgsl.expected.ir.fxc.hlsl b/test/tint/expressions/bitcast/let/32bit/u32-u32.wgsl.expected.ir.fxc.hlsl
index a249798..623533d 100644
--- a/test/tint/expressions/bitcast/let/32bit/u32-u32.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/expressions/bitcast/let/32bit/u32-u32.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,7 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Bitcast
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+[numthreads(1, 1, 1)]
+void f() {
+  uint a = 1073757184u;
+  uint b = a;
+}
+
diff --git a/test/tint/expressions/bitcast/let/32bit/u32-vec2f16.wgsl.expected.ir.dxc.hlsl b/test/tint/expressions/bitcast/let/32bit/u32-vec2f16.wgsl.expected.ir.dxc.hlsl
index a249798..ccdcafc 100644
--- a/test/tint/expressions/bitcast/let/32bit/u32-vec2f16.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/expressions/bitcast/let/32bit/u32-vec2f16.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,15 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Bitcast
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+vector<float16_t, 2> tint_bitcast_to_f16(uint src) {
+  uint v = src;
+  float t_low = f16tof32((v & 65535u));
+  float t_high = f16tof32(((v >> 16u) & 65535u));
+  float16_t v_1 = float16_t(t_low);
+  return vector<float16_t, 2>(v_1, float16_t(t_high));
+}
+
+[numthreads(1, 1, 1)]
+void f() {
+  uint a = 1073757184u;
+  vector<float16_t, 2> b = tint_bitcast_to_f16(a);
+}
+
diff --git a/test/tint/expressions/bitcast/let/32bit/u32-vec2f16.wgsl.expected.ir.fxc.hlsl b/test/tint/expressions/bitcast/let/32bit/u32-vec2f16.wgsl.expected.ir.fxc.hlsl
index a249798..deeee64 100644
--- a/test/tint/expressions/bitcast/let/32bit/u32-vec2f16.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/expressions/bitcast/let/32bit/u32-vec2f16.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,20 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Bitcast
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+
+vector<float16_t, 2> tint_bitcast_to_f16(uint src) {
+  uint v = src;
+  float t_low = f16tof32((v & 65535u));
+  float t_high = f16tof32(((v >> 16u) & 65535u));
+  float16_t v_1 = float16_t(t_low);
+  return vector<float16_t, 2>(v_1, float16_t(t_high));
+}
+
+[numthreads(1, 1, 1)]
+void f() {
+  uint a = 1073757184u;
+  vector<float16_t, 2> b = tint_bitcast_to_f16(a);
+}
+
+FXC validation failure:
+c:\src\dawn\Shader@0x000001579EDE5C30(2,8-16): error X3000: syntax error: unexpected token 'float16_t'
+
diff --git a/test/tint/expressions/bitcast/let/32bit/vec2f16-f32.wgsl.expected.ir.dxc.hlsl b/test/tint/expressions/bitcast/let/32bit/vec2f16-f32.wgsl.expected.ir.dxc.hlsl
index a249798..53af365 100644
--- a/test/tint/expressions/bitcast/let/32bit/vec2f16-f32.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/expressions/bitcast/let/32bit/vec2f16-f32.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,12 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Bitcast
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+float tint_bitcast_from_f16(vector<float16_t, 2> src) {
+  uint2 r = f32tof16(float2(src));
+  return asfloat(((r.x & 65535u) | ((r.y & 65535u) << 16u)));
+}
+
+[numthreads(1, 1, 1)]
+void f() {
+  vector<float16_t, 2> a = vector<float16_t, 2>(float16_t(1.0h), float16_t(2.0h));
+  float b = tint_bitcast_from_f16(a);
+}
+
diff --git a/test/tint/expressions/bitcast/let/32bit/vec2f16-f32.wgsl.expected.ir.fxc.hlsl b/test/tint/expressions/bitcast/let/32bit/vec2f16-f32.wgsl.expected.ir.fxc.hlsl
index a249798..2190347 100644
--- a/test/tint/expressions/bitcast/let/32bit/vec2f16-f32.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/expressions/bitcast/let/32bit/vec2f16-f32.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,19 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Bitcast
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+
+float tint_bitcast_from_f16(vector<float16_t, 2> src) {
+  uint2 r = f32tof16(float2(src));
+  return asfloat(((r.x & 65535u) | ((r.y & 65535u) << 16u)));
+}
+
+[numthreads(1, 1, 1)]
+void f() {
+  vector<float16_t, 2> a = vector<float16_t, 2>(float16_t(1.0h), float16_t(2.0h));
+  float b = tint_bitcast_from_f16(a);
+}
+
+FXC validation failure:
+c:\src\dawn\Shader@0x00000298162F18B0(2,36-44): error X3000: syntax error: unexpected token 'float16_t'
+c:\src\dawn\Shader@0x00000298162F18B0(3,29-31): error X3004: undeclared identifier 'src'
+c:\src\dawn\Shader@0x00000298162F18B0(3,22-32): error X3014: incorrect number of arguments to numeric-type constructor
+
diff --git a/test/tint/expressions/bitcast/let/32bit/vec2f16-i32.wgsl.expected.ir.dxc.hlsl b/test/tint/expressions/bitcast/let/32bit/vec2f16-i32.wgsl.expected.ir.dxc.hlsl
index a249798..01fe12c 100644
--- a/test/tint/expressions/bitcast/let/32bit/vec2f16-i32.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/expressions/bitcast/let/32bit/vec2f16-i32.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,12 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Bitcast
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+int tint_bitcast_from_f16(vector<float16_t, 2> src) {
+  uint2 r = f32tof16(float2(src));
+  return asint(((r.x & 65535u) | ((r.y & 65535u) << 16u)));
+}
+
+[numthreads(1, 1, 1)]
+void f() {
+  vector<float16_t, 2> a = vector<float16_t, 2>(float16_t(1.0h), float16_t(2.0h));
+  int b = tint_bitcast_from_f16(a);
+}
+
diff --git a/test/tint/expressions/bitcast/let/32bit/vec2f16-i32.wgsl.expected.ir.fxc.hlsl b/test/tint/expressions/bitcast/let/32bit/vec2f16-i32.wgsl.expected.ir.fxc.hlsl
index a249798..608953e 100644
--- a/test/tint/expressions/bitcast/let/32bit/vec2f16-i32.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/expressions/bitcast/let/32bit/vec2f16-i32.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,19 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Bitcast
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+
+int tint_bitcast_from_f16(vector<float16_t, 2> src) {
+  uint2 r = f32tof16(float2(src));
+  return asint(((r.x & 65535u) | ((r.y & 65535u) << 16u)));
+}
+
+[numthreads(1, 1, 1)]
+void f() {
+  vector<float16_t, 2> a = vector<float16_t, 2>(float16_t(1.0h), float16_t(2.0h));
+  int b = tint_bitcast_from_f16(a);
+}
+
+FXC validation failure:
+c:\src\dawn\Shader@0x000001B0B71E5BB0(2,34-42): error X3000: syntax error: unexpected token 'float16_t'
+c:\src\dawn\Shader@0x000001B0B71E5BB0(3,29-31): error X3004: undeclared identifier 'src'
+c:\src\dawn\Shader@0x000001B0B71E5BB0(3,22-32): error X3014: incorrect number of arguments to numeric-type constructor
+
diff --git a/test/tint/expressions/bitcast/let/32bit/vec2f16-u32.wgsl.expected.ir.dxc.hlsl b/test/tint/expressions/bitcast/let/32bit/vec2f16-u32.wgsl.expected.ir.dxc.hlsl
index a249798..95eec46 100644
--- a/test/tint/expressions/bitcast/let/32bit/vec2f16-u32.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/expressions/bitcast/let/32bit/vec2f16-u32.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,12 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Bitcast
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+uint tint_bitcast_from_f16(vector<float16_t, 2> src) {
+  uint2 r = f32tof16(float2(src));
+  return ((r.x & 65535u) | ((r.y & 65535u) << 16u));
+}
+
+[numthreads(1, 1, 1)]
+void f() {
+  vector<float16_t, 2> a = vector<float16_t, 2>(float16_t(1.0h), float16_t(2.0h));
+  uint b = tint_bitcast_from_f16(a);
+}
+
diff --git a/test/tint/expressions/bitcast/let/32bit/vec2f16-u32.wgsl.expected.ir.fxc.hlsl b/test/tint/expressions/bitcast/let/32bit/vec2f16-u32.wgsl.expected.ir.fxc.hlsl
index a249798..a4f64a2 100644
--- a/test/tint/expressions/bitcast/let/32bit/vec2f16-u32.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/expressions/bitcast/let/32bit/vec2f16-u32.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,19 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Bitcast
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+
+uint tint_bitcast_from_f16(vector<float16_t, 2> src) {
+  uint2 r = f32tof16(float2(src));
+  return ((r.x & 65535u) | ((r.y & 65535u) << 16u));
+}
+
+[numthreads(1, 1, 1)]
+void f() {
+  vector<float16_t, 2> a = vector<float16_t, 2>(float16_t(1.0h), float16_t(2.0h));
+  uint b = tint_bitcast_from_f16(a);
+}
+
+FXC validation failure:
+c:\src\dawn\Shader@0x0000023C44500800(2,35-43): error X3000: syntax error: unexpected token 'float16_t'
+c:\src\dawn\Shader@0x0000023C44500800(3,29-31): error X3004: undeclared identifier 'src'
+c:\src\dawn\Shader@0x0000023C44500800(3,22-32): error X3014: incorrect number of arguments to numeric-type constructor
+
diff --git a/test/tint/expressions/bitcast/let/32bit/vec2f16-vec2f16.wgsl.expected.ir.dxc.hlsl b/test/tint/expressions/bitcast/let/32bit/vec2f16-vec2f16.wgsl.expected.ir.dxc.hlsl
index a249798..3d6357f 100644
--- a/test/tint/expressions/bitcast/let/32bit/vec2f16-vec2f16.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/expressions/bitcast/let/32bit/vec2f16-vec2f16.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,7 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Bitcast
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+[numthreads(1, 1, 1)]
+void f() {
+  vector<float16_t, 2> a = vector<float16_t, 2>(float16_t(1.0h), float16_t(2.0h));
+  vector<float16_t, 2> b = a;
+}
+
diff --git a/test/tint/expressions/bitcast/let/32bit/vec2f16-vec2f16.wgsl.expected.ir.fxc.hlsl b/test/tint/expressions/bitcast/let/32bit/vec2f16-vec2f16.wgsl.expected.ir.fxc.hlsl
index a249798..4405649 100644
--- a/test/tint/expressions/bitcast/let/32bit/vec2f16-vec2f16.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/expressions/bitcast/let/32bit/vec2f16-vec2f16.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,13 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Bitcast
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+
+[numthreads(1, 1, 1)]
+void f() {
+  vector<float16_t, 2> a = vector<float16_t, 2>(float16_t(1.0h), float16_t(2.0h));
+  vector<float16_t, 2> b = a;
+}
+
+FXC validation failure:
+c:\src\dawn\Shader@0x000001BDA2D03780(4,10-18): error X3000: syntax error: unexpected token 'float16_t'
+c:\src\dawn\Shader@0x000001BDA2D03780(5,10-18): error X3000: syntax error: unexpected token 'float16_t'
+
diff --git a/test/tint/expressions/bitcast/let/48bit/vec3f16-vec3f16.wgsl.expected.ir.dxc.hlsl b/test/tint/expressions/bitcast/let/48bit/vec3f16-vec3f16.wgsl.expected.ir.dxc.hlsl
index a249798..195e80f 100644
--- a/test/tint/expressions/bitcast/let/48bit/vec3f16-vec3f16.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/expressions/bitcast/let/48bit/vec3f16-vec3f16.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,7 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Bitcast
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+[numthreads(1, 1, 1)]
+void f() {
+  vector<float16_t, 3> a = vector<float16_t, 3>(float16_t(1.0h), float16_t(2.0h), float16_t(3.0h));
+  vector<float16_t, 3> b = a;
+}
+
diff --git a/test/tint/expressions/bitcast/let/48bit/vec3f16-vec3f16.wgsl.expected.ir.fxc.hlsl b/test/tint/expressions/bitcast/let/48bit/vec3f16-vec3f16.wgsl.expected.ir.fxc.hlsl
index a249798..820e2d9 100644
--- a/test/tint/expressions/bitcast/let/48bit/vec3f16-vec3f16.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/expressions/bitcast/let/48bit/vec3f16-vec3f16.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,13 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Bitcast
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+
+[numthreads(1, 1, 1)]
+void f() {
+  vector<float16_t, 3> a = vector<float16_t, 3>(float16_t(1.0h), float16_t(2.0h), float16_t(3.0h));
+  vector<float16_t, 3> b = a;
+}
+
+FXC validation failure:
+c:\src\dawn\Shader@0x000002468F210960(4,10-18): error X3000: syntax error: unexpected token 'float16_t'
+c:\src\dawn\Shader@0x000002468F210960(5,10-18): error X3000: syntax error: unexpected token 'float16_t'
+
diff --git a/test/tint/expressions/bitcast/let/64bit/vec2f32-vec2f32.wgsl.expected.ir.dxc.hlsl b/test/tint/expressions/bitcast/let/64bit/vec2f32-vec2f32.wgsl.expected.ir.dxc.hlsl
index a249798..54171b2 100644
--- a/test/tint/expressions/bitcast/let/64bit/vec2f32-vec2f32.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/expressions/bitcast/let/64bit/vec2f32-vec2f32.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,7 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Bitcast
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+[numthreads(1, 1, 1)]
+void f() {
+  float2 a = float2(2.003662109375f, -513.03125f);
+  float2 b = a;
+}
+
diff --git a/test/tint/expressions/bitcast/let/64bit/vec2f32-vec2f32.wgsl.expected.ir.fxc.hlsl b/test/tint/expressions/bitcast/let/64bit/vec2f32-vec2f32.wgsl.expected.ir.fxc.hlsl
index a249798..54171b2 100644
--- a/test/tint/expressions/bitcast/let/64bit/vec2f32-vec2f32.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/expressions/bitcast/let/64bit/vec2f32-vec2f32.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,7 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Bitcast
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+[numthreads(1, 1, 1)]
+void f() {
+  float2 a = float2(2.003662109375f, -513.03125f);
+  float2 b = a;
+}
+
diff --git a/test/tint/expressions/bitcast/let/64bit/vec2f32-vec2i32.wgsl.expected.ir.dxc.hlsl b/test/tint/expressions/bitcast/let/64bit/vec2f32-vec2i32.wgsl.expected.ir.dxc.hlsl
index a249798..e283974 100644
--- a/test/tint/expressions/bitcast/let/64bit/vec2f32-vec2i32.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/expressions/bitcast/let/64bit/vec2f32-vec2i32.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,7 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Bitcast
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+[numthreads(1, 1, 1)]
+void f() {
+  float2 a = float2(2.003662109375f, -513.03125f);
+  int2 b = asint(a);
+}
+
diff --git a/test/tint/expressions/bitcast/let/64bit/vec2f32-vec2i32.wgsl.expected.ir.fxc.hlsl b/test/tint/expressions/bitcast/let/64bit/vec2f32-vec2i32.wgsl.expected.ir.fxc.hlsl
index a249798..e283974 100644
--- a/test/tint/expressions/bitcast/let/64bit/vec2f32-vec2i32.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/expressions/bitcast/let/64bit/vec2f32-vec2i32.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,7 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Bitcast
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+[numthreads(1, 1, 1)]
+void f() {
+  float2 a = float2(2.003662109375f, -513.03125f);
+  int2 b = asint(a);
+}
+
diff --git a/test/tint/expressions/bitcast/let/64bit/vec2f32-vec2u32.wgsl.expected.ir.dxc.hlsl b/test/tint/expressions/bitcast/let/64bit/vec2f32-vec2u32.wgsl.expected.ir.dxc.hlsl
index a249798..116884a 100644
--- a/test/tint/expressions/bitcast/let/64bit/vec2f32-vec2u32.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/expressions/bitcast/let/64bit/vec2f32-vec2u32.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,7 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Bitcast
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+[numthreads(1, 1, 1)]
+void f() {
+  float2 a = float2(2.003662109375f, -513.03125f);
+  uint2 b = asuint(a);
+}
+
diff --git a/test/tint/expressions/bitcast/let/64bit/vec2f32-vec2u32.wgsl.expected.ir.fxc.hlsl b/test/tint/expressions/bitcast/let/64bit/vec2f32-vec2u32.wgsl.expected.ir.fxc.hlsl
index a249798..116884a 100644
--- a/test/tint/expressions/bitcast/let/64bit/vec2f32-vec2u32.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/expressions/bitcast/let/64bit/vec2f32-vec2u32.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,7 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Bitcast
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+[numthreads(1, 1, 1)]
+void f() {
+  float2 a = float2(2.003662109375f, -513.03125f);
+  uint2 b = asuint(a);
+}
+
diff --git a/test/tint/expressions/bitcast/let/64bit/vec2f32-vec4f16.wgsl.expected.ir.dxc.hlsl b/test/tint/expressions/bitcast/let/64bit/vec2f32-vec4f16.wgsl.expected.ir.dxc.hlsl
index a249798..6c6121c 100644
--- a/test/tint/expressions/bitcast/let/64bit/vec2f32-vec4f16.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/expressions/bitcast/let/64bit/vec2f32-vec4f16.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,19 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Bitcast
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+vector<float16_t, 4> tint_bitcast_to_f16(float2 src) {
+  uint2 v = asuint(src);
+  uint2 mask = (65535u).xx;
+  uint2 shift = (16u).xx;
+  float2 t_low = f16tof32((v & mask));
+  float2 t_high = f16tof32(((v >> shift) & mask));
+  float16_t v_1 = float16_t(t_low.x);
+  float16_t v_2 = float16_t(t_high.x);
+  float16_t v_3 = float16_t(t_low.y);
+  return vector<float16_t, 4>(v_1, v_2, v_3, float16_t(t_high.y));
+}
+
+[numthreads(1, 1, 1)]
+void f() {
+  float2 a = float2(2.003662109375f, -513.03125f);
+  vector<float16_t, 4> b = tint_bitcast_to_f16(a);
+}
+
diff --git a/test/tint/expressions/bitcast/let/64bit/vec2f32-vec4f16.wgsl.expected.ir.fxc.hlsl b/test/tint/expressions/bitcast/let/64bit/vec2f32-vec4f16.wgsl.expected.ir.fxc.hlsl
index a249798..68f5cf5 100644
--- a/test/tint/expressions/bitcast/let/64bit/vec2f32-vec4f16.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/expressions/bitcast/let/64bit/vec2f32-vec4f16.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,24 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Bitcast
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+
+vector<float16_t, 4> tint_bitcast_to_f16(float2 src) {
+  uint2 v = asuint(src);
+  uint2 mask = (65535u).xx;
+  uint2 shift = (16u).xx;
+  float2 t_low = f16tof32((v & mask));
+  float2 t_high = f16tof32(((v >> shift) & mask));
+  float16_t v_1 = float16_t(t_low.x);
+  float16_t v_2 = float16_t(t_high.x);
+  float16_t v_3 = float16_t(t_low.y);
+  return vector<float16_t, 4>(v_1, v_2, v_3, float16_t(t_high.y));
+}
+
+[numthreads(1, 1, 1)]
+void f() {
+  float2 a = float2(2.003662109375f, -513.03125f);
+  vector<float16_t, 4> b = tint_bitcast_to_f16(a);
+}
+
+FXC validation failure:
+c:\src\dawn\Shader@0x00000214E05FD9D0(2,8-16): error X3000: syntax error: unexpected token 'float16_t'
+
diff --git a/test/tint/expressions/bitcast/let/64bit/vec2i32-vec2f32.wgsl.expected.ir.dxc.hlsl b/test/tint/expressions/bitcast/let/64bit/vec2i32-vec2f32.wgsl.expected.ir.dxc.hlsl
index a249798..94d3c76 100644
--- a/test/tint/expressions/bitcast/let/64bit/vec2i32-vec2f32.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/expressions/bitcast/let/64bit/vec2i32-vec2f32.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,7 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Bitcast
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+[numthreads(1, 1, 1)]
+void f() {
+  int2 a = int2(1073757184, -1006616064);
+  float2 b = asfloat(a);
+}
+
diff --git a/test/tint/expressions/bitcast/let/64bit/vec2i32-vec2f32.wgsl.expected.ir.fxc.hlsl b/test/tint/expressions/bitcast/let/64bit/vec2i32-vec2f32.wgsl.expected.ir.fxc.hlsl
index a249798..94d3c76 100644
--- a/test/tint/expressions/bitcast/let/64bit/vec2i32-vec2f32.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/expressions/bitcast/let/64bit/vec2i32-vec2f32.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,7 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Bitcast
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+[numthreads(1, 1, 1)]
+void f() {
+  int2 a = int2(1073757184, -1006616064);
+  float2 b = asfloat(a);
+}
+
diff --git a/test/tint/expressions/bitcast/let/64bit/vec2i32-vec2i32.wgsl.expected.ir.dxc.hlsl b/test/tint/expressions/bitcast/let/64bit/vec2i32-vec2i32.wgsl.expected.ir.dxc.hlsl
index a249798..4ffb515 100644
--- a/test/tint/expressions/bitcast/let/64bit/vec2i32-vec2i32.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/expressions/bitcast/let/64bit/vec2i32-vec2i32.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,7 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Bitcast
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+[numthreads(1, 1, 1)]
+void f() {
+  int2 a = int2(1073757184, -1006616064);
+  int2 b = a;
+}
+
diff --git a/test/tint/expressions/bitcast/let/64bit/vec2i32-vec2i32.wgsl.expected.ir.fxc.hlsl b/test/tint/expressions/bitcast/let/64bit/vec2i32-vec2i32.wgsl.expected.ir.fxc.hlsl
index a249798..4ffb515 100644
--- a/test/tint/expressions/bitcast/let/64bit/vec2i32-vec2i32.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/expressions/bitcast/let/64bit/vec2i32-vec2i32.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,7 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Bitcast
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+[numthreads(1, 1, 1)]
+void f() {
+  int2 a = int2(1073757184, -1006616064);
+  int2 b = a;
+}
+
diff --git a/test/tint/expressions/bitcast/let/64bit/vec2i32-vec2u32.wgsl.expected.ir.dxc.hlsl b/test/tint/expressions/bitcast/let/64bit/vec2i32-vec2u32.wgsl.expected.ir.dxc.hlsl
index a249798..c3cfc37 100644
--- a/test/tint/expressions/bitcast/let/64bit/vec2i32-vec2u32.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/expressions/bitcast/let/64bit/vec2i32-vec2u32.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,7 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Bitcast
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+[numthreads(1, 1, 1)]
+void f() {
+  int2 a = int2(1073757184, -1006616064);
+  uint2 b = asuint(a);
+}
+
diff --git a/test/tint/expressions/bitcast/let/64bit/vec2i32-vec2u32.wgsl.expected.ir.fxc.hlsl b/test/tint/expressions/bitcast/let/64bit/vec2i32-vec2u32.wgsl.expected.ir.fxc.hlsl
index a249798..c3cfc37 100644
--- a/test/tint/expressions/bitcast/let/64bit/vec2i32-vec2u32.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/expressions/bitcast/let/64bit/vec2i32-vec2u32.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,7 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Bitcast
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+[numthreads(1, 1, 1)]
+void f() {
+  int2 a = int2(1073757184, -1006616064);
+  uint2 b = asuint(a);
+}
+
diff --git a/test/tint/expressions/bitcast/let/64bit/vec2i32-vec4f16.wgsl.expected.ir.dxc.hlsl b/test/tint/expressions/bitcast/let/64bit/vec2i32-vec4f16.wgsl.expected.ir.dxc.hlsl
index a249798..3099bf4 100644
--- a/test/tint/expressions/bitcast/let/64bit/vec2i32-vec4f16.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/expressions/bitcast/let/64bit/vec2i32-vec4f16.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,19 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Bitcast
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+vector<float16_t, 4> tint_bitcast_to_f16(int2 src) {
+  uint2 v = asuint(src);
+  uint2 mask = (65535u).xx;
+  uint2 shift = (16u).xx;
+  float2 t_low = f16tof32((v & mask));
+  float2 t_high = f16tof32(((v >> shift) & mask));
+  float16_t v_1 = float16_t(t_low.x);
+  float16_t v_2 = float16_t(t_high.x);
+  float16_t v_3 = float16_t(t_low.y);
+  return vector<float16_t, 4>(v_1, v_2, v_3, float16_t(t_high.y));
+}
+
+[numthreads(1, 1, 1)]
+void f() {
+  int2 a = int2(1073757184, -1006616064);
+  vector<float16_t, 4> b = tint_bitcast_to_f16(a);
+}
+
diff --git a/test/tint/expressions/bitcast/let/64bit/vec2i32-vec4f16.wgsl.expected.ir.fxc.hlsl b/test/tint/expressions/bitcast/let/64bit/vec2i32-vec4f16.wgsl.expected.ir.fxc.hlsl
index a249798..4a0a357 100644
--- a/test/tint/expressions/bitcast/let/64bit/vec2i32-vec4f16.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/expressions/bitcast/let/64bit/vec2i32-vec4f16.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,24 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Bitcast
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+
+vector<float16_t, 4> tint_bitcast_to_f16(int2 src) {
+  uint2 v = asuint(src);
+  uint2 mask = (65535u).xx;
+  uint2 shift = (16u).xx;
+  float2 t_low = f16tof32((v & mask));
+  float2 t_high = f16tof32(((v >> shift) & mask));
+  float16_t v_1 = float16_t(t_low.x);
+  float16_t v_2 = float16_t(t_high.x);
+  float16_t v_3 = float16_t(t_low.y);
+  return vector<float16_t, 4>(v_1, v_2, v_3, float16_t(t_high.y));
+}
+
+[numthreads(1, 1, 1)]
+void f() {
+  int2 a = int2(1073757184, -1006616064);
+  vector<float16_t, 4> b = tint_bitcast_to_f16(a);
+}
+
+FXC validation failure:
+c:\src\dawn\Shader@0x000001EBFA0B3CA0(2,8-16): error X3000: syntax error: unexpected token 'float16_t'
+
diff --git a/test/tint/expressions/bitcast/let/64bit/vec2u32-vec2f32.wgsl.expected.ir.dxc.hlsl b/test/tint/expressions/bitcast/let/64bit/vec2u32-vec2f32.wgsl.expected.ir.dxc.hlsl
index a249798..90a8bf0 100644
--- a/test/tint/expressions/bitcast/let/64bit/vec2u32-vec2f32.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/expressions/bitcast/let/64bit/vec2u32-vec2f32.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,7 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Bitcast
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+[numthreads(1, 1, 1)]
+void f() {
+  uint2 a = uint2(1073757184u, 3288351232u);
+  float2 b = asfloat(a);
+}
+
diff --git a/test/tint/expressions/bitcast/let/64bit/vec2u32-vec2f32.wgsl.expected.ir.fxc.hlsl b/test/tint/expressions/bitcast/let/64bit/vec2u32-vec2f32.wgsl.expected.ir.fxc.hlsl
index a249798..90a8bf0 100644
--- a/test/tint/expressions/bitcast/let/64bit/vec2u32-vec2f32.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/expressions/bitcast/let/64bit/vec2u32-vec2f32.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,7 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Bitcast
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+[numthreads(1, 1, 1)]
+void f() {
+  uint2 a = uint2(1073757184u, 3288351232u);
+  float2 b = asfloat(a);
+}
+
diff --git a/test/tint/expressions/bitcast/let/64bit/vec2u32-vec2i32.wgsl.expected.ir.dxc.hlsl b/test/tint/expressions/bitcast/let/64bit/vec2u32-vec2i32.wgsl.expected.ir.dxc.hlsl
index a249798..9f79031 100644
--- a/test/tint/expressions/bitcast/let/64bit/vec2u32-vec2i32.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/expressions/bitcast/let/64bit/vec2u32-vec2i32.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,7 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Bitcast
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+[numthreads(1, 1, 1)]
+void f() {
+  uint2 a = uint2(1073757184u, 3288351232u);
+  int2 b = asint(a);
+}
+
diff --git a/test/tint/expressions/bitcast/let/64bit/vec2u32-vec2i32.wgsl.expected.ir.fxc.hlsl b/test/tint/expressions/bitcast/let/64bit/vec2u32-vec2i32.wgsl.expected.ir.fxc.hlsl
index a249798..9f79031 100644
--- a/test/tint/expressions/bitcast/let/64bit/vec2u32-vec2i32.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/expressions/bitcast/let/64bit/vec2u32-vec2i32.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,7 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Bitcast
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+[numthreads(1, 1, 1)]
+void f() {
+  uint2 a = uint2(1073757184u, 3288351232u);
+  int2 b = asint(a);
+}
+
diff --git a/test/tint/expressions/bitcast/let/64bit/vec2u32-vec2u32.wgsl.expected.ir.dxc.hlsl b/test/tint/expressions/bitcast/let/64bit/vec2u32-vec2u32.wgsl.expected.ir.dxc.hlsl
index a249798..8397404 100644
--- a/test/tint/expressions/bitcast/let/64bit/vec2u32-vec2u32.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/expressions/bitcast/let/64bit/vec2u32-vec2u32.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,7 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Bitcast
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+[numthreads(1, 1, 1)]
+void f() {
+  uint2 a = uint2(1073757184u, 3288351232u);
+  uint2 b = a;
+}
+
diff --git a/test/tint/expressions/bitcast/let/64bit/vec2u32-vec2u32.wgsl.expected.ir.fxc.hlsl b/test/tint/expressions/bitcast/let/64bit/vec2u32-vec2u32.wgsl.expected.ir.fxc.hlsl
index a249798..8397404 100644
--- a/test/tint/expressions/bitcast/let/64bit/vec2u32-vec2u32.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/expressions/bitcast/let/64bit/vec2u32-vec2u32.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,7 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Bitcast
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+[numthreads(1, 1, 1)]
+void f() {
+  uint2 a = uint2(1073757184u, 3288351232u);
+  uint2 b = a;
+}
+
diff --git a/test/tint/expressions/bitcast/let/64bit/vec2u32-vec4f16.wgsl.expected.ir.dxc.hlsl b/test/tint/expressions/bitcast/let/64bit/vec2u32-vec4f16.wgsl.expected.ir.dxc.hlsl
index a249798..fca601e 100644
--- a/test/tint/expressions/bitcast/let/64bit/vec2u32-vec4f16.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/expressions/bitcast/let/64bit/vec2u32-vec4f16.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,19 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Bitcast
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+vector<float16_t, 4> tint_bitcast_to_f16(uint2 src) {
+  uint2 v = src;
+  uint2 mask = (65535u).xx;
+  uint2 shift = (16u).xx;
+  float2 t_low = f16tof32((v & mask));
+  float2 t_high = f16tof32(((v >> shift) & mask));
+  float16_t v_1 = float16_t(t_low.x);
+  float16_t v_2 = float16_t(t_high.x);
+  float16_t v_3 = float16_t(t_low.y);
+  return vector<float16_t, 4>(v_1, v_2, v_3, float16_t(t_high.y));
+}
+
+[numthreads(1, 1, 1)]
+void f() {
+  uint2 a = uint2(1073757184u, 3288351232u);
+  vector<float16_t, 4> b = tint_bitcast_to_f16(a);
+}
+
diff --git a/test/tint/expressions/bitcast/let/64bit/vec2u32-vec4f16.wgsl.expected.ir.fxc.hlsl b/test/tint/expressions/bitcast/let/64bit/vec2u32-vec4f16.wgsl.expected.ir.fxc.hlsl
index a249798..706f753 100644
--- a/test/tint/expressions/bitcast/let/64bit/vec2u32-vec4f16.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/expressions/bitcast/let/64bit/vec2u32-vec4f16.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,24 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Bitcast
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+
+vector<float16_t, 4> tint_bitcast_to_f16(uint2 src) {
+  uint2 v = src;
+  uint2 mask = (65535u).xx;
+  uint2 shift = (16u).xx;
+  float2 t_low = f16tof32((v & mask));
+  float2 t_high = f16tof32(((v >> shift) & mask));
+  float16_t v_1 = float16_t(t_low.x);
+  float16_t v_2 = float16_t(t_high.x);
+  float16_t v_3 = float16_t(t_low.y);
+  return vector<float16_t, 4>(v_1, v_2, v_3, float16_t(t_high.y));
+}
+
+[numthreads(1, 1, 1)]
+void f() {
+  uint2 a = uint2(1073757184u, 3288351232u);
+  vector<float16_t, 4> b = tint_bitcast_to_f16(a);
+}
+
+FXC validation failure:
+c:\src\dawn\Shader@0x000001EC02182BB0(2,8-16): error X3000: syntax error: unexpected token 'float16_t'
+
diff --git a/test/tint/expressions/bitcast/let/64bit/vec4f16-vec2f32.wgsl.expected.ir.dxc.hlsl b/test/tint/expressions/bitcast/let/64bit/vec4f16-vec2f32.wgsl.expected.ir.dxc.hlsl
index a249798..92cbafc 100644
--- a/test/tint/expressions/bitcast/let/64bit/vec4f16-vec2f32.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/expressions/bitcast/let/64bit/vec4f16-vec2f32.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,12 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Bitcast
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+float2 tint_bitcast_from_f16(vector<float16_t, 4> src) {
+  uint4 r = f32tof16(float4(src));
+  return asfloat(uint2(((r.x & 65535u) | ((r.y & 65535u) << 16u)), ((r.z & 65535u) | ((r.w & 65535u) << 16u))));
+}
+
+[numthreads(1, 1, 1)]
+void f() {
+  vector<float16_t, 4> a = vector<float16_t, 4>(float16_t(1.0h), float16_t(2.0h), float16_t(3.0h), float16_t(-4.0h));
+  float2 b = tint_bitcast_from_f16(a);
+}
+
diff --git a/test/tint/expressions/bitcast/let/64bit/vec4f16-vec2f32.wgsl.expected.ir.fxc.hlsl b/test/tint/expressions/bitcast/let/64bit/vec4f16-vec2f32.wgsl.expected.ir.fxc.hlsl
index a249798..2bf5f62 100644
--- a/test/tint/expressions/bitcast/let/64bit/vec4f16-vec2f32.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/expressions/bitcast/let/64bit/vec4f16-vec2f32.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,19 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Bitcast
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+
+float2 tint_bitcast_from_f16(vector<float16_t, 4> src) {
+  uint4 r = f32tof16(float4(src));
+  return asfloat(uint2(((r.x & 65535u) | ((r.y & 65535u) << 16u)), ((r.z & 65535u) | ((r.w & 65535u) << 16u))));
+}
+
+[numthreads(1, 1, 1)]
+void f() {
+  vector<float16_t, 4> a = vector<float16_t, 4>(float16_t(1.0h), float16_t(2.0h), float16_t(3.0h), float16_t(-4.0h));
+  float2 b = tint_bitcast_from_f16(a);
+}
+
+FXC validation failure:
+c:\src\dawn\Shader@0x0000023464CE5C60(2,37-45): error X3000: syntax error: unexpected token 'float16_t'
+c:\src\dawn\Shader@0x0000023464CE5C60(3,29-31): error X3004: undeclared identifier 'src'
+c:\src\dawn\Shader@0x0000023464CE5C60(3,22-32): error X3014: incorrect number of arguments to numeric-type constructor
+
diff --git a/test/tint/expressions/bitcast/let/64bit/vec4f16-vec2i32.wgsl.expected.ir.dxc.hlsl b/test/tint/expressions/bitcast/let/64bit/vec4f16-vec2i32.wgsl.expected.ir.dxc.hlsl
index a249798..ddb7073 100644
--- a/test/tint/expressions/bitcast/let/64bit/vec4f16-vec2i32.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/expressions/bitcast/let/64bit/vec4f16-vec2i32.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,12 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Bitcast
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+int2 tint_bitcast_from_f16(vector<float16_t, 4> src) {
+  uint4 r = f32tof16(float4(src));
+  return asint(uint2(((r.x & 65535u) | ((r.y & 65535u) << 16u)), ((r.z & 65535u) | ((r.w & 65535u) << 16u))));
+}
+
+[numthreads(1, 1, 1)]
+void f() {
+  vector<float16_t, 4> a = vector<float16_t, 4>(float16_t(1.0h), float16_t(2.0h), float16_t(3.0h), float16_t(-4.0h));
+  int2 b = tint_bitcast_from_f16(a);
+}
+
diff --git a/test/tint/expressions/bitcast/let/64bit/vec4f16-vec2i32.wgsl.expected.ir.fxc.hlsl b/test/tint/expressions/bitcast/let/64bit/vec4f16-vec2i32.wgsl.expected.ir.fxc.hlsl
index a249798..ee27deb 100644
--- a/test/tint/expressions/bitcast/let/64bit/vec4f16-vec2i32.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/expressions/bitcast/let/64bit/vec4f16-vec2i32.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,19 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Bitcast
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+
+int2 tint_bitcast_from_f16(vector<float16_t, 4> src) {
+  uint4 r = f32tof16(float4(src));
+  return asint(uint2(((r.x & 65535u) | ((r.y & 65535u) << 16u)), ((r.z & 65535u) | ((r.w & 65535u) << 16u))));
+}
+
+[numthreads(1, 1, 1)]
+void f() {
+  vector<float16_t, 4> a = vector<float16_t, 4>(float16_t(1.0h), float16_t(2.0h), float16_t(3.0h), float16_t(-4.0h));
+  int2 b = tint_bitcast_from_f16(a);
+}
+
+FXC validation failure:
+c:\src\dawn\Shader@0x0000022291C9FAF0(2,35-43): error X3000: syntax error: unexpected token 'float16_t'
+c:\src\dawn\Shader@0x0000022291C9FAF0(3,29-31): error X3004: undeclared identifier 'src'
+c:\src\dawn\Shader@0x0000022291C9FAF0(3,22-32): error X3014: incorrect number of arguments to numeric-type constructor
+
diff --git a/test/tint/expressions/bitcast/let/64bit/vec4f16-vec2u32.wgsl.expected.ir.dxc.hlsl b/test/tint/expressions/bitcast/let/64bit/vec4f16-vec2u32.wgsl.expected.ir.dxc.hlsl
index a249798..666d9ff 100644
--- a/test/tint/expressions/bitcast/let/64bit/vec4f16-vec2u32.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/expressions/bitcast/let/64bit/vec4f16-vec2u32.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,12 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Bitcast
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+uint2 tint_bitcast_from_f16(vector<float16_t, 4> src) {
+  uint4 r = f32tof16(float4(src));
+  return uint2(((r.x & 65535u) | ((r.y & 65535u) << 16u)), ((r.z & 65535u) | ((r.w & 65535u) << 16u)));
+}
+
+[numthreads(1, 1, 1)]
+void f() {
+  vector<float16_t, 4> a = vector<float16_t, 4>(float16_t(1.0h), float16_t(2.0h), float16_t(3.0h), float16_t(-4.0h));
+  uint2 b = tint_bitcast_from_f16(a);
+}
+
diff --git a/test/tint/expressions/bitcast/let/64bit/vec4f16-vec2u32.wgsl.expected.ir.fxc.hlsl b/test/tint/expressions/bitcast/let/64bit/vec4f16-vec2u32.wgsl.expected.ir.fxc.hlsl
index a249798..3b792f1 100644
--- a/test/tint/expressions/bitcast/let/64bit/vec4f16-vec2u32.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/expressions/bitcast/let/64bit/vec4f16-vec2u32.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,19 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Bitcast
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+
+uint2 tint_bitcast_from_f16(vector<float16_t, 4> src) {
+  uint4 r = f32tof16(float4(src));
+  return uint2(((r.x & 65535u) | ((r.y & 65535u) << 16u)), ((r.z & 65535u) | ((r.w & 65535u) << 16u)));
+}
+
+[numthreads(1, 1, 1)]
+void f() {
+  vector<float16_t, 4> a = vector<float16_t, 4>(float16_t(1.0h), float16_t(2.0h), float16_t(3.0h), float16_t(-4.0h));
+  uint2 b = tint_bitcast_from_f16(a);
+}
+
+FXC validation failure:
+c:\src\dawn\Shader@0x000001EB5BC80A90(2,36-44): error X3000: syntax error: unexpected token 'float16_t'
+c:\src\dawn\Shader@0x000001EB5BC80A90(3,29-31): error X3004: undeclared identifier 'src'
+c:\src\dawn\Shader@0x000001EB5BC80A90(3,22-32): error X3014: incorrect number of arguments to numeric-type constructor
+
diff --git a/test/tint/expressions/bitcast/let/64bit/vec4f16-vec4f16.wgsl.expected.ir.dxc.hlsl b/test/tint/expressions/bitcast/let/64bit/vec4f16-vec4f16.wgsl.expected.ir.dxc.hlsl
index a249798..ac7d400 100644
--- a/test/tint/expressions/bitcast/let/64bit/vec4f16-vec4f16.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/expressions/bitcast/let/64bit/vec4f16-vec4f16.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,7 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Bitcast
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+[numthreads(1, 1, 1)]
+void f() {
+  vector<float16_t, 4> a = vector<float16_t, 4>(float16_t(1.0h), float16_t(2.0h), float16_t(3.0h), float16_t(-4.0h));
+  vector<float16_t, 4> b = a;
+}
+
diff --git a/test/tint/expressions/bitcast/let/64bit/vec4f16-vec4f16.wgsl.expected.ir.fxc.hlsl b/test/tint/expressions/bitcast/let/64bit/vec4f16-vec4f16.wgsl.expected.ir.fxc.hlsl
index a249798..36d74eb 100644
--- a/test/tint/expressions/bitcast/let/64bit/vec4f16-vec4f16.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/expressions/bitcast/let/64bit/vec4f16-vec4f16.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,13 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Bitcast
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+
+[numthreads(1, 1, 1)]
+void f() {
+  vector<float16_t, 4> a = vector<float16_t, 4>(float16_t(1.0h), float16_t(2.0h), float16_t(3.0h), float16_t(-4.0h));
+  vector<float16_t, 4> b = a;
+}
+
+FXC validation failure:
+c:\src\dawn\Shader@0x0000015BC29C1A50(4,10-18): error X3000: syntax error: unexpected token 'float16_t'
+c:\src\dawn\Shader@0x0000015BC29C1A50(5,10-18): error X3000: syntax error: unexpected token 'float16_t'
+
diff --git a/test/tint/expressions/bitcast/let/96bit/vec3f32-vec3f32.wgsl.expected.ir.dxc.hlsl b/test/tint/expressions/bitcast/let/96bit/vec3f32-vec3f32.wgsl.expected.ir.dxc.hlsl
index a249798..1dde0c3 100644
--- a/test/tint/expressions/bitcast/let/96bit/vec3f32-vec3f32.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/expressions/bitcast/let/96bit/vec3f32-vec3f32.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,7 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Bitcast
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+[numthreads(1, 1, 1)]
+void f() {
+  float3 a = float3(2.003662109375f, -513.03125f, -1024.25f);
+  float3 b = a;
+}
+
diff --git a/test/tint/expressions/bitcast/let/96bit/vec3f32-vec3f32.wgsl.expected.ir.fxc.hlsl b/test/tint/expressions/bitcast/let/96bit/vec3f32-vec3f32.wgsl.expected.ir.fxc.hlsl
index a249798..1dde0c3 100644
--- a/test/tint/expressions/bitcast/let/96bit/vec3f32-vec3f32.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/expressions/bitcast/let/96bit/vec3f32-vec3f32.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,7 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Bitcast
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+[numthreads(1, 1, 1)]
+void f() {
+  float3 a = float3(2.003662109375f, -513.03125f, -1024.25f);
+  float3 b = a;
+}
+
diff --git a/test/tint/expressions/bitcast/let/96bit/vec3f32-vec3i32.wgsl.expected.ir.dxc.hlsl b/test/tint/expressions/bitcast/let/96bit/vec3f32-vec3i32.wgsl.expected.ir.dxc.hlsl
index a249798..fd5e303 100644
--- a/test/tint/expressions/bitcast/let/96bit/vec3f32-vec3i32.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/expressions/bitcast/let/96bit/vec3f32-vec3i32.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,7 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Bitcast
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+[numthreads(1, 1, 1)]
+void f() {
+  float3 a = float3(2.003662109375f, -513.03125f, -1024.25f);
+  int3 b = asint(a);
+}
+
diff --git a/test/tint/expressions/bitcast/let/96bit/vec3f32-vec3i32.wgsl.expected.ir.fxc.hlsl b/test/tint/expressions/bitcast/let/96bit/vec3f32-vec3i32.wgsl.expected.ir.fxc.hlsl
index a249798..fd5e303 100644
--- a/test/tint/expressions/bitcast/let/96bit/vec3f32-vec3i32.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/expressions/bitcast/let/96bit/vec3f32-vec3i32.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,7 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Bitcast
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+[numthreads(1, 1, 1)]
+void f() {
+  float3 a = float3(2.003662109375f, -513.03125f, -1024.25f);
+  int3 b = asint(a);
+}
+
diff --git a/test/tint/expressions/bitcast/let/96bit/vec3f32-vec3u32.wgsl.expected.ir.dxc.hlsl b/test/tint/expressions/bitcast/let/96bit/vec3f32-vec3u32.wgsl.expected.ir.dxc.hlsl
index a249798..1268da2 100644
--- a/test/tint/expressions/bitcast/let/96bit/vec3f32-vec3u32.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/expressions/bitcast/let/96bit/vec3f32-vec3u32.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,7 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Bitcast
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+[numthreads(1, 1, 1)]
+void f() {
+  float3 a = float3(2.003662109375f, -513.03125f, -1024.25f);
+  uint3 b = asuint(a);
+}
+
diff --git a/test/tint/expressions/bitcast/let/96bit/vec3f32-vec3u32.wgsl.expected.ir.fxc.hlsl b/test/tint/expressions/bitcast/let/96bit/vec3f32-vec3u32.wgsl.expected.ir.fxc.hlsl
index a249798..1268da2 100644
--- a/test/tint/expressions/bitcast/let/96bit/vec3f32-vec3u32.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/expressions/bitcast/let/96bit/vec3f32-vec3u32.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,7 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Bitcast
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+[numthreads(1, 1, 1)]
+void f() {
+  float3 a = float3(2.003662109375f, -513.03125f, -1024.25f);
+  uint3 b = asuint(a);
+}
+
diff --git a/test/tint/expressions/bitcast/let/96bit/vec3i32-vec3f32.wgsl.expected.ir.dxc.hlsl b/test/tint/expressions/bitcast/let/96bit/vec3i32-vec3f32.wgsl.expected.ir.dxc.hlsl
index a249798..a161da9 100644
--- a/test/tint/expressions/bitcast/let/96bit/vec3i32-vec3f32.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/expressions/bitcast/let/96bit/vec3i32-vec3f32.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,7 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Bitcast
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+[numthreads(1, 1, 1)]
+void f() {
+  int3 a = int3(1073757184, -1006616064, -998242304);
+  float3 b = asfloat(a);
+}
+
diff --git a/test/tint/expressions/bitcast/let/96bit/vec3i32-vec3f32.wgsl.expected.ir.fxc.hlsl b/test/tint/expressions/bitcast/let/96bit/vec3i32-vec3f32.wgsl.expected.ir.fxc.hlsl
index a249798..a161da9 100644
--- a/test/tint/expressions/bitcast/let/96bit/vec3i32-vec3f32.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/expressions/bitcast/let/96bit/vec3i32-vec3f32.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,7 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Bitcast
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+[numthreads(1, 1, 1)]
+void f() {
+  int3 a = int3(1073757184, -1006616064, -998242304);
+  float3 b = asfloat(a);
+}
+
diff --git a/test/tint/expressions/bitcast/let/96bit/vec3i32-vec3i32.wgsl.expected.ir.dxc.hlsl b/test/tint/expressions/bitcast/let/96bit/vec3i32-vec3i32.wgsl.expected.ir.dxc.hlsl
index a249798..bf1adc5 100644
--- a/test/tint/expressions/bitcast/let/96bit/vec3i32-vec3i32.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/expressions/bitcast/let/96bit/vec3i32-vec3i32.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,7 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Bitcast
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+[numthreads(1, 1, 1)]
+void f() {
+  int3 a = int3(1073757184, -1006616064, -998242304);
+  int3 b = a;
+}
+
diff --git a/test/tint/expressions/bitcast/let/96bit/vec3i32-vec3i32.wgsl.expected.ir.fxc.hlsl b/test/tint/expressions/bitcast/let/96bit/vec3i32-vec3i32.wgsl.expected.ir.fxc.hlsl
index a249798..bf1adc5 100644
--- a/test/tint/expressions/bitcast/let/96bit/vec3i32-vec3i32.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/expressions/bitcast/let/96bit/vec3i32-vec3i32.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,7 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Bitcast
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+[numthreads(1, 1, 1)]
+void f() {
+  int3 a = int3(1073757184, -1006616064, -998242304);
+  int3 b = a;
+}
+
diff --git a/test/tint/expressions/bitcast/let/96bit/vec3i32-vec3u32.wgsl.expected.ir.dxc.hlsl b/test/tint/expressions/bitcast/let/96bit/vec3i32-vec3u32.wgsl.expected.ir.dxc.hlsl
index a249798..ab12e2e 100644
--- a/test/tint/expressions/bitcast/let/96bit/vec3i32-vec3u32.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/expressions/bitcast/let/96bit/vec3i32-vec3u32.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,7 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Bitcast
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+[numthreads(1, 1, 1)]
+void f() {
+  int3 a = int3(1073757184, -1006616064, -998242304);
+  uint3 b = asuint(a);
+}
+
diff --git a/test/tint/expressions/bitcast/let/96bit/vec3i32-vec3u32.wgsl.expected.ir.fxc.hlsl b/test/tint/expressions/bitcast/let/96bit/vec3i32-vec3u32.wgsl.expected.ir.fxc.hlsl
index a249798..ab12e2e 100644
--- a/test/tint/expressions/bitcast/let/96bit/vec3i32-vec3u32.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/expressions/bitcast/let/96bit/vec3i32-vec3u32.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,7 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Bitcast
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+[numthreads(1, 1, 1)]
+void f() {
+  int3 a = int3(1073757184, -1006616064, -998242304);
+  uint3 b = asuint(a);
+}
+
diff --git a/test/tint/expressions/bitcast/let/96bit/vec3u32-vec3f32.wgsl.expected.ir.dxc.hlsl b/test/tint/expressions/bitcast/let/96bit/vec3u32-vec3f32.wgsl.expected.ir.dxc.hlsl
index a249798..b224dc6 100644
--- a/test/tint/expressions/bitcast/let/96bit/vec3u32-vec3f32.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/expressions/bitcast/let/96bit/vec3u32-vec3f32.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,7 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Bitcast
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+[numthreads(1, 1, 1)]
+void f() {
+  uint3 a = uint3(1073757184u, 3288351232u, 3296724992u);
+  float3 b = asfloat(a);
+}
+
diff --git a/test/tint/expressions/bitcast/let/96bit/vec3u32-vec3f32.wgsl.expected.ir.fxc.hlsl b/test/tint/expressions/bitcast/let/96bit/vec3u32-vec3f32.wgsl.expected.ir.fxc.hlsl
index a249798..b224dc6 100644
--- a/test/tint/expressions/bitcast/let/96bit/vec3u32-vec3f32.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/expressions/bitcast/let/96bit/vec3u32-vec3f32.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,7 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Bitcast
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+[numthreads(1, 1, 1)]
+void f() {
+  uint3 a = uint3(1073757184u, 3288351232u, 3296724992u);
+  float3 b = asfloat(a);
+}
+
diff --git a/test/tint/expressions/bitcast/let/96bit/vec3u32-vec3i32.wgsl.expected.ir.dxc.hlsl b/test/tint/expressions/bitcast/let/96bit/vec3u32-vec3i32.wgsl.expected.ir.dxc.hlsl
index a249798..b3ad0b0 100644
--- a/test/tint/expressions/bitcast/let/96bit/vec3u32-vec3i32.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/expressions/bitcast/let/96bit/vec3u32-vec3i32.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,7 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Bitcast
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+[numthreads(1, 1, 1)]
+void f() {
+  uint3 a = uint3(1073757184u, 3288351232u, 3296724992u);
+  int3 b = asint(a);
+}
+
diff --git a/test/tint/expressions/bitcast/let/96bit/vec3u32-vec3i32.wgsl.expected.ir.fxc.hlsl b/test/tint/expressions/bitcast/let/96bit/vec3u32-vec3i32.wgsl.expected.ir.fxc.hlsl
index a249798..b3ad0b0 100644
--- a/test/tint/expressions/bitcast/let/96bit/vec3u32-vec3i32.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/expressions/bitcast/let/96bit/vec3u32-vec3i32.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,7 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Bitcast
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+[numthreads(1, 1, 1)]
+void f() {
+  uint3 a = uint3(1073757184u, 3288351232u, 3296724992u);
+  int3 b = asint(a);
+}
+
diff --git a/test/tint/expressions/bitcast/let/96bit/vec3u32-vec3u32.wgsl.expected.ir.dxc.hlsl b/test/tint/expressions/bitcast/let/96bit/vec3u32-vec3u32.wgsl.expected.ir.dxc.hlsl
index a249798..ad0e6fa 100644
--- a/test/tint/expressions/bitcast/let/96bit/vec3u32-vec3u32.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/expressions/bitcast/let/96bit/vec3u32-vec3u32.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,7 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Bitcast
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+[numthreads(1, 1, 1)]
+void f() {
+  uint3 a = uint3(1073757184u, 3288351232u, 3296724992u);
+  uint3 b = a;
+}
+
diff --git a/test/tint/expressions/bitcast/let/96bit/vec3u32-vec3u32.wgsl.expected.ir.fxc.hlsl b/test/tint/expressions/bitcast/let/96bit/vec3u32-vec3u32.wgsl.expected.ir.fxc.hlsl
index a249798..ad0e6fa 100644
--- a/test/tint/expressions/bitcast/let/96bit/vec3u32-vec3u32.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/expressions/bitcast/let/96bit/vec3u32-vec3u32.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,7 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Bitcast
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+[numthreads(1, 1, 1)]
+void f() {
+  uint3 a = uint3(1073757184u, 3288351232u, 3296724992u);
+  uint3 b = a;
+}
+
diff --git a/test/tint/expressions/index/let/array_nested_struct.wgsl.expected.ir.dxc.hlsl b/test/tint/expressions/index/let/array_nested_struct.wgsl.expected.ir.dxc.hlsl
index 3f437dc..704ec9a 100644
--- a/test/tint/expressions/index/let/array_nested_struct.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/expressions/index/let/array_nested_struct.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,16 @@
-SKIP: FAILED
+struct S {
+  int m;
+  uint n[4];
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Access
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+
+uint f() {
+  S v[2] = (S[2])0;
+  S a[2] = v;
+  return a[1].n[1];
+}
+
+[numthreads(1, 1, 1)]
+void unused_entry_point() {
+}
+
diff --git a/test/tint/expressions/index/let/array_nested_struct.wgsl.expected.ir.fxc.hlsl b/test/tint/expressions/index/let/array_nested_struct.wgsl.expected.ir.fxc.hlsl
index 3f437dc..704ec9a 100644
--- a/test/tint/expressions/index/let/array_nested_struct.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/expressions/index/let/array_nested_struct.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,16 @@
-SKIP: FAILED
+struct S {
+  int m;
+  uint n[4];
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Access
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+
+uint f() {
+  S v[2] = (S[2])0;
+  S a[2] = v;
+  return a[1].n[1];
+}
+
+[numthreads(1, 1, 1)]
+void unused_entry_point() {
+}
+
diff --git a/test/tint/expressions/index/let/let/literal/array.wgsl.expected.ir.dxc.hlsl b/test/tint/expressions/index/let/let/literal/array.wgsl.expected.ir.dxc.hlsl
index 3f437dc..1333846 100644
--- a/test/tint/expressions/index/let/let/literal/array.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/expressions/index/let/let/literal/array.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,12 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Access
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+int f() {
+  int v[8] = {1, 2, 3, 4, 5, 6, 7, 8};
+  int i = 1;
+  int a[8] = v;
+  return a[i];
+}
+
+[numthreads(1, 1, 1)]
+void unused_entry_point() {
+}
+
diff --git a/test/tint/expressions/index/let/let/literal/array.wgsl.expected.ir.fxc.hlsl b/test/tint/expressions/index/let/let/literal/array.wgsl.expected.ir.fxc.hlsl
index 3f437dc..1333846 100644
--- a/test/tint/expressions/index/let/let/literal/array.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/expressions/index/let/let/literal/array.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,12 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Access
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+int f() {
+  int v[8] = {1, 2, 3, 4, 5, 6, 7, 8};
+  int i = 1;
+  int a[8] = v;
+  return a[i];
+}
+
+[numthreads(1, 1, 1)]
+void unused_entry_point() {
+}
+
diff --git a/test/tint/expressions/index/let/let/literal/matrix.wgsl.expected.ir.dxc.hlsl b/test/tint/expressions/index/let/let/literal/matrix.wgsl.expected.ir.dxc.hlsl
index 3f437dc..0185b4d 100644
--- a/test/tint/expressions/index/let/let/literal/matrix.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/expressions/index/let/let/literal/matrix.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,11 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Access
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+float3 f() {
+  float3x3 m = float3x3(float3(1.0f, 2.0f, 3.0f), float3(4.0f, 5.0f, 6.0f), float3(7.0f, 8.0f, 9.0f));
+  int i = 1;
+  return m[i];
+}
+
+[numthreads(1, 1, 1)]
+void unused_entry_point() {
+}
+
diff --git a/test/tint/expressions/index/let/let/literal/matrix.wgsl.expected.ir.fxc.hlsl b/test/tint/expressions/index/let/let/literal/matrix.wgsl.expected.ir.fxc.hlsl
index 3f437dc..0185b4d 100644
--- a/test/tint/expressions/index/let/let/literal/matrix.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/expressions/index/let/let/literal/matrix.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,11 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Access
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+float3 f() {
+  float3x3 m = float3x3(float3(1.0f, 2.0f, 3.0f), float3(4.0f, 5.0f, 6.0f), float3(7.0f, 8.0f, 9.0f));
+  int i = 1;
+  return m[i];
+}
+
+[numthreads(1, 1, 1)]
+void unused_entry_point() {
+}
+
diff --git a/test/tint/expressions/index/let/let/literal/vector.wgsl.expected.ir.dxc.hlsl b/test/tint/expressions/index/let/let/literal/vector.wgsl.expected.ir.dxc.hlsl
index 3f437dc..aa5aa86 100644
--- a/test/tint/expressions/index/let/let/literal/vector.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/expressions/index/let/let/literal/vector.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,11 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Access
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+float f() {
+  float3 v = float3(1.0f, 2.0f, 3.0f);
+  int i = 1;
+  return v[i];
+}
+
+[numthreads(1, 1, 1)]
+void unused_entry_point() {
+}
+
diff --git a/test/tint/expressions/index/let/let/literal/vector.wgsl.expected.ir.fxc.hlsl b/test/tint/expressions/index/let/let/literal/vector.wgsl.expected.ir.fxc.hlsl
index 3f437dc..aa5aa86 100644
--- a/test/tint/expressions/index/let/let/literal/vector.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/expressions/index/let/let/literal/vector.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,11 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Access
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+float f() {
+  float3 v = float3(1.0f, 2.0f, 3.0f);
+  int i = 1;
+  return v[i];
+}
+
+[numthreads(1, 1, 1)]
+void unused_entry_point() {
+}
+
diff --git a/test/tint/expressions/index/let/let/param/array.wgsl.expected.ir.dxc.hlsl b/test/tint/expressions/index/let/let/param/array.wgsl.expected.ir.dxc.hlsl
index 6b047b4..c7516fa 100644
--- a/test/tint/expressions/index/let/let/param/array.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/expressions/index/let/let/param/array.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,12 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:287 internal compiler error: Switch() matched no cases. Type: tint::core::ir::FunctionParam
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+int f(int x) {
+  int v[8] = {1, 2, 3, 4, 5, 6, 7, 8};
+  int i = x;
+  int a[8] = v;
+  return a[i];
+}
+
+[numthreads(1, 1, 1)]
+void unused_entry_point() {
+}
+
diff --git a/test/tint/expressions/index/let/let/param/array.wgsl.expected.ir.fxc.hlsl b/test/tint/expressions/index/let/let/param/array.wgsl.expected.ir.fxc.hlsl
index 6b047b4..c7516fa 100644
--- a/test/tint/expressions/index/let/let/param/array.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/expressions/index/let/let/param/array.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,12 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:287 internal compiler error: Switch() matched no cases. Type: tint::core::ir::FunctionParam
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+int f(int x) {
+  int v[8] = {1, 2, 3, 4, 5, 6, 7, 8};
+  int i = x;
+  int a[8] = v;
+  return a[i];
+}
+
+[numthreads(1, 1, 1)]
+void unused_entry_point() {
+}
+
diff --git a/test/tint/expressions/index/let/let/param/matrix.wgsl.expected.ir.dxc.hlsl b/test/tint/expressions/index/let/let/param/matrix.wgsl.expected.ir.dxc.hlsl
index 6b047b4..4d80cf8 100644
--- a/test/tint/expressions/index/let/let/param/matrix.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/expressions/index/let/let/param/matrix.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,11 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:287 internal compiler error: Switch() matched no cases. Type: tint::core::ir::FunctionParam
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+float3 f(int x) {
+  float3x3 m = float3x3(float3(1.0f, 2.0f, 3.0f), float3(4.0f, 5.0f, 6.0f), float3(7.0f, 8.0f, 9.0f));
+  int i = x;
+  return m[i];
+}
+
+[numthreads(1, 1, 1)]
+void unused_entry_point() {
+}
+
diff --git a/test/tint/expressions/index/let/let/param/matrix.wgsl.expected.ir.fxc.hlsl b/test/tint/expressions/index/let/let/param/matrix.wgsl.expected.ir.fxc.hlsl
index 6b047b4..4d80cf8 100644
--- a/test/tint/expressions/index/let/let/param/matrix.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/expressions/index/let/let/param/matrix.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,11 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:287 internal compiler error: Switch() matched no cases. Type: tint::core::ir::FunctionParam
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+float3 f(int x) {
+  float3x3 m = float3x3(float3(1.0f, 2.0f, 3.0f), float3(4.0f, 5.0f, 6.0f), float3(7.0f, 8.0f, 9.0f));
+  int i = x;
+  return m[i];
+}
+
+[numthreads(1, 1, 1)]
+void unused_entry_point() {
+}
+
diff --git a/test/tint/expressions/index/let/let/param/vector.wgsl.expected.ir.dxc.hlsl b/test/tint/expressions/index/let/let/param/vector.wgsl.expected.ir.dxc.hlsl
index 6b047b4..cdda7a2 100644
--- a/test/tint/expressions/index/let/let/param/vector.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/expressions/index/let/let/param/vector.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,11 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:287 internal compiler error: Switch() matched no cases. Type: tint::core::ir::FunctionParam
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+float f(int x) {
+  float3 v = float3(1.0f, 2.0f, 3.0f);
+  int i = x;
+  return v[i];
+}
+
+[numthreads(1, 1, 1)]
+void unused_entry_point() {
+}
+
diff --git a/test/tint/expressions/index/let/let/param/vector.wgsl.expected.ir.fxc.hlsl b/test/tint/expressions/index/let/let/param/vector.wgsl.expected.ir.fxc.hlsl
index 6b047b4..cdda7a2 100644
--- a/test/tint/expressions/index/let/let/param/vector.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/expressions/index/let/let/param/vector.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,11 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:287 internal compiler error: Switch() matched no cases. Type: tint::core::ir::FunctionParam
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+float f(int x) {
+  float3 v = float3(1.0f, 2.0f, 3.0f);
+  int i = x;
+  return v[i];
+}
+
+[numthreads(1, 1, 1)]
+void unused_entry_point() {
+}
+
diff --git a/test/tint/expressions/index/let/literal/array.wgsl.expected.ir.dxc.hlsl b/test/tint/expressions/index/let/literal/array.wgsl.expected.ir.dxc.hlsl
index 3f437dc..fad66fb 100644
--- a/test/tint/expressions/index/let/literal/array.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/expressions/index/let/literal/array.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,11 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Access
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+int f() {
+  int v[8] = {1, 2, 3, 4, 5, 6, 7, 8};
+  int a[8] = v;
+  return a[1];
+}
+
+[numthreads(1, 1, 1)]
+void unused_entry_point() {
+}
+
diff --git a/test/tint/expressions/index/let/literal/array.wgsl.expected.ir.fxc.hlsl b/test/tint/expressions/index/let/literal/array.wgsl.expected.ir.fxc.hlsl
index 3f437dc..fad66fb 100644
--- a/test/tint/expressions/index/let/literal/array.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/expressions/index/let/literal/array.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,11 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Access
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+int f() {
+  int v[8] = {1, 2, 3, 4, 5, 6, 7, 8};
+  int a[8] = v;
+  return a[1];
+}
+
+[numthreads(1, 1, 1)]
+void unused_entry_point() {
+}
+
diff --git a/test/tint/expressions/index/let/literal/matrix.wgsl.expected.ir.dxc.hlsl b/test/tint/expressions/index/let/literal/matrix.wgsl.expected.ir.dxc.hlsl
index 3f437dc..50819a8 100644
--- a/test/tint/expressions/index/let/literal/matrix.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/expressions/index/let/literal/matrix.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,10 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Access
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+float3 f() {
+  float3x3 m = float3x3(float3(1.0f, 2.0f, 3.0f), float3(4.0f, 5.0f, 6.0f), float3(7.0f, 8.0f, 9.0f));
+  return m[1];
+}
+
+[numthreads(1, 1, 1)]
+void unused_entry_point() {
+}
+
diff --git a/test/tint/expressions/index/let/literal/matrix.wgsl.expected.ir.fxc.hlsl b/test/tint/expressions/index/let/literal/matrix.wgsl.expected.ir.fxc.hlsl
index 3f437dc..50819a8 100644
--- a/test/tint/expressions/index/let/literal/matrix.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/expressions/index/let/literal/matrix.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,10 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Access
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+float3 f() {
+  float3x3 m = float3x3(float3(1.0f, 2.0f, 3.0f), float3(4.0f, 5.0f, 6.0f), float3(7.0f, 8.0f, 9.0f));
+  return m[1];
+}
+
+[numthreads(1, 1, 1)]
+void unused_entry_point() {
+}
+
diff --git a/test/tint/expressions/index/let/literal/vector.wgsl.expected.ir.dxc.hlsl b/test/tint/expressions/index/let/literal/vector.wgsl.expected.ir.dxc.hlsl
index 3f437dc..00ddf52 100644
--- a/test/tint/expressions/index/let/literal/vector.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/expressions/index/let/literal/vector.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,10 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Access
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+float f() {
+  float3 v = float3(1.0f, 2.0f, 3.0f);
+  return v[1];
+}
+
+[numthreads(1, 1, 1)]
+void unused_entry_point() {
+}
+
diff --git a/test/tint/expressions/index/let/literal/vector.wgsl.expected.ir.fxc.hlsl b/test/tint/expressions/index/let/literal/vector.wgsl.expected.ir.fxc.hlsl
index 3f437dc..00ddf52 100644
--- a/test/tint/expressions/index/let/literal/vector.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/expressions/index/let/literal/vector.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,10 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Access
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+float f() {
+  float3 v = float3(1.0f, 2.0f, 3.0f);
+  return v[1];
+}
+
+[numthreads(1, 1, 1)]
+void unused_entry_point() {
+}
+
diff --git a/test/tint/expressions/index/let/param/array.wgsl.expected.ir.dxc.hlsl b/test/tint/expressions/index/let/param/array.wgsl.expected.ir.dxc.hlsl
index 3f437dc..29074fa 100644
--- a/test/tint/expressions/index/let/param/array.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/expressions/index/let/param/array.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,11 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Access
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+int f(int i) {
+  int v[8] = {1, 2, 3, 4, 5, 6, 7, 8};
+  int a[8] = v;
+  return a[i];
+}
+
+[numthreads(1, 1, 1)]
+void unused_entry_point() {
+}
+
diff --git a/test/tint/expressions/index/let/param/array.wgsl.expected.ir.fxc.hlsl b/test/tint/expressions/index/let/param/array.wgsl.expected.ir.fxc.hlsl
index 3f437dc..29074fa 100644
--- a/test/tint/expressions/index/let/param/array.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/expressions/index/let/param/array.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,11 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Access
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+int f(int i) {
+  int v[8] = {1, 2, 3, 4, 5, 6, 7, 8};
+  int a[8] = v;
+  return a[i];
+}
+
+[numthreads(1, 1, 1)]
+void unused_entry_point() {
+}
+
diff --git a/test/tint/expressions/index/let/param/matrix.wgsl.expected.ir.dxc.hlsl b/test/tint/expressions/index/let/param/matrix.wgsl.expected.ir.dxc.hlsl
index 3f437dc..abb3a66 100644
--- a/test/tint/expressions/index/let/param/matrix.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/expressions/index/let/param/matrix.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,10 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Access
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+float3 f(int i) {
+  float3x3 m = float3x3(float3(1.0f, 2.0f, 3.0f), float3(4.0f, 5.0f, 6.0f), float3(7.0f, 8.0f, 9.0f));
+  return m[i];
+}
+
+[numthreads(1, 1, 1)]
+void unused_entry_point() {
+}
+
diff --git a/test/tint/expressions/index/let/param/matrix.wgsl.expected.ir.fxc.hlsl b/test/tint/expressions/index/let/param/matrix.wgsl.expected.ir.fxc.hlsl
index 3f437dc..abb3a66 100644
--- a/test/tint/expressions/index/let/param/matrix.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/expressions/index/let/param/matrix.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,10 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Access
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+float3 f(int i) {
+  float3x3 m = float3x3(float3(1.0f, 2.0f, 3.0f), float3(4.0f, 5.0f, 6.0f), float3(7.0f, 8.0f, 9.0f));
+  return m[i];
+}
+
+[numthreads(1, 1, 1)]
+void unused_entry_point() {
+}
+
diff --git a/test/tint/expressions/index/let/param/vector.wgsl.expected.ir.dxc.hlsl b/test/tint/expressions/index/let/param/vector.wgsl.expected.ir.dxc.hlsl
index 3f437dc..adceace 100644
--- a/test/tint/expressions/index/let/param/vector.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/expressions/index/let/param/vector.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,10 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Access
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+float f(int i) {
+  float3 v = float3(1.0f, 2.0f, 3.0f);
+  return v[i];
+}
+
+[numthreads(1, 1, 1)]
+void unused_entry_point() {
+}
+
diff --git a/test/tint/expressions/index/let/param/vector.wgsl.expected.ir.fxc.hlsl b/test/tint/expressions/index/let/param/vector.wgsl.expected.ir.fxc.hlsl
index 3f437dc..adceace 100644
--- a/test/tint/expressions/index/let/param/vector.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/expressions/index/let/param/vector.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,10 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Access
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+float f(int i) {
+  float3 v = float3(1.0f, 2.0f, 3.0f);
+  return v[i];
+}
+
+[numthreads(1, 1, 1)]
+void unused_entry_point() {
+}
+
diff --git a/test/tint/expressions/index/let/struct.wgsl.expected.ir.dxc.hlsl b/test/tint/expressions/index/let/struct.wgsl.expected.ir.dxc.hlsl
index 0ba40c6..cf20112 100644
--- a/test/tint/expressions/index/let/struct.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/expressions/index/let/struct.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,16 @@
-SKIP: FAILED
+struct S {
+  int m;
+  uint n;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+
+uint f() {
+  S v = (S)0;
+  S a = v;
+  return a.n;
+}
+
+[numthreads(1, 1, 1)]
+void unused_entry_point() {
+}
+
diff --git a/test/tint/expressions/index/let/struct.wgsl.expected.ir.fxc.hlsl b/test/tint/expressions/index/let/struct.wgsl.expected.ir.fxc.hlsl
index 0ba40c6..cf20112 100644
--- a/test/tint/expressions/index/let/struct.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/expressions/index/let/struct.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,16 @@
-SKIP: FAILED
+struct S {
+  int m;
+  uint n;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+
+uint f() {
+  S v = (S)0;
+  S a = v;
+  return a.n;
+}
+
+[numthreads(1, 1, 1)]
+void unused_entry_point() {
+}
+
diff --git a/test/tint/expressions/index/let/struct_nested_array.wgsl.expected.ir.dxc.hlsl b/test/tint/expressions/index/let/struct_nested_array.wgsl.expected.ir.dxc.hlsl
index 0ba40c6..a3f2933 100644
--- a/test/tint/expressions/index/let/struct_nested_array.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/expressions/index/let/struct_nested_array.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,16 @@
-SKIP: FAILED
+struct S {
+  int m;
+  uint n[4];
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+
+uint f() {
+  S v = (S)0;
+  S a = v;
+  return a.n[2];
+}
+
+[numthreads(1, 1, 1)]
+void unused_entry_point() {
+}
+
diff --git a/test/tint/expressions/index/let/struct_nested_array.wgsl.expected.ir.fxc.hlsl b/test/tint/expressions/index/let/struct_nested_array.wgsl.expected.ir.fxc.hlsl
index 0ba40c6..a3f2933 100644
--- a/test/tint/expressions/index/let/struct_nested_array.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/expressions/index/let/struct_nested_array.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,16 @@
-SKIP: FAILED
+struct S {
+  int m;
+  uint n[4];
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+
+uint f() {
+  S v = (S)0;
+  S a = v;
+  return a.n[2];
+}
+
+[numthreads(1, 1, 1)]
+void unused_entry_point() {
+}
+
diff --git a/test/tint/expressions/index/let/struct_nested_multiple.wgsl.expected.ir.dxc.hlsl b/test/tint/expressions/index/let/struct_nested_multiple.wgsl.expected.ir.dxc.hlsl
index 0ba40c6..92f7da7 100644
--- a/test/tint/expressions/index/let/struct_nested_multiple.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/expressions/index/let/struct_nested_multiple.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,20 @@
-SKIP: FAILED
+struct T {
+  uint k[2];
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct S {
+  int m;
+  T n[4];
+};
+
+
+uint f() {
+  S v = (S)0;
+  S a = v;
+  return a.n[2].k[1];
+}
+
+[numthreads(1, 1, 1)]
+void unused_entry_point() {
+}
+
diff --git a/test/tint/expressions/index/let/struct_nested_multiple.wgsl.expected.ir.fxc.hlsl b/test/tint/expressions/index/let/struct_nested_multiple.wgsl.expected.ir.fxc.hlsl
index 0ba40c6..92f7da7 100644
--- a/test/tint/expressions/index/let/struct_nested_multiple.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/expressions/index/let/struct_nested_multiple.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,20 @@
-SKIP: FAILED
+struct T {
+  uint k[2];
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct S {
+  int m;
+  T n[4];
+};
+
+
+uint f() {
+  S v = (S)0;
+  S a = v;
+  return a.n[2].k[1];
+}
+
+[numthreads(1, 1, 1)]
+void unused_entry_point() {
+}
+
diff --git a/test/tint/expressions/index/let/struct_nested_struct.wgsl.expected.ir.dxc.hlsl b/test/tint/expressions/index/let/struct_nested_struct.wgsl.expected.ir.dxc.hlsl
index 0ba40c6..ada76ca 100644
--- a/test/tint/expressions/index/let/struct_nested_struct.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/expressions/index/let/struct_nested_struct.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,21 @@
-SKIP: FAILED
+struct T {
+  float o;
+  uint p;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct S {
+  int m;
+  T n;
+};
+
+
+uint f() {
+  S v = (S)0;
+  S a = v;
+  return a.n.p;
+}
+
+[numthreads(1, 1, 1)]
+void unused_entry_point() {
+}
+
diff --git a/test/tint/expressions/index/let/struct_nested_struct.wgsl.expected.ir.fxc.hlsl b/test/tint/expressions/index/let/struct_nested_struct.wgsl.expected.ir.fxc.hlsl
index 0ba40c6..ada76ca 100644
--- a/test/tint/expressions/index/let/struct_nested_struct.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/expressions/index/let/struct_nested_struct.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,21 @@
-SKIP: FAILED
+struct T {
+  float o;
+  uint p;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct S {
+  int m;
+  T n;
+};
+
+
+uint f() {
+  S v = (S)0;
+  S a = v;
+  return a.n.p;
+}
+
+[numthreads(1, 1, 1)]
+void unused_entry_point() {
+}
+
diff --git a/test/tint/expressions/index/let/struct_with_matrix.wgsl.expected.ir.dxc.hlsl b/test/tint/expressions/index/let/struct_with_matrix.wgsl.expected.ir.dxc.hlsl
index 0ba40c6..654f6ce 100644
--- a/test/tint/expressions/index/let/struct_with_matrix.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/expressions/index/let/struct_with_matrix.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,16 @@
-SKIP: FAILED
+struct S {
+  int m;
+  float4x4 n;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+
+float f() {
+  S v = (S)0;
+  S a = v;
+  return a.n[2][1];
+}
+
+[numthreads(1, 1, 1)]
+void unused_entry_point() {
+}
+
diff --git a/test/tint/expressions/index/let/struct_with_matrix.wgsl.expected.ir.fxc.hlsl b/test/tint/expressions/index/let/struct_with_matrix.wgsl.expected.ir.fxc.hlsl
index 0ba40c6..654f6ce 100644
--- a/test/tint/expressions/index/let/struct_with_matrix.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/expressions/index/let/struct_with_matrix.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,16 @@
-SKIP: FAILED
+struct S {
+  int m;
+  float4x4 n;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+
+float f() {
+  S v = (S)0;
+  S a = v;
+  return a.n[2][1];
+}
+
+[numthreads(1, 1, 1)]
+void unused_entry_point() {
+}
+
diff --git a/test/tint/expressions/index/let/struct_with_vector.wgsl.expected.ir.dxc.hlsl b/test/tint/expressions/index/let/struct_with_vector.wgsl.expected.ir.dxc.hlsl
index 0ba40c6..046e021 100644
--- a/test/tint/expressions/index/let/struct_with_vector.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/expressions/index/let/struct_with_vector.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,16 @@
-SKIP: FAILED
+struct S {
+  int m;
+  uint3 n;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+
+uint f() {
+  S v = (S)0;
+  S a = v;
+  return a.n[2];
+}
+
+[numthreads(1, 1, 1)]
+void unused_entry_point() {
+}
+
diff --git a/test/tint/expressions/index/let/struct_with_vector.wgsl.expected.ir.fxc.hlsl b/test/tint/expressions/index/let/struct_with_vector.wgsl.expected.ir.fxc.hlsl
index 0ba40c6..046e021 100644
--- a/test/tint/expressions/index/let/struct_with_vector.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/expressions/index/let/struct_with_vector.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,16 @@
-SKIP: FAILED
+struct S {
+  int m;
+  uint3 n;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+
+uint f() {
+  S v = (S)0;
+  S a = v;
+  return a.n[2];
+}
+
+[numthreads(1, 1, 1)]
+void unused_entry_point() {
+}
+
diff --git a/test/tint/expressions/index/let/var/literal/array.wgsl.expected.ir.dxc.hlsl b/test/tint/expressions/index/let/var/literal/array.wgsl.expected.ir.dxc.hlsl
index 3f437dc..1333846 100644
--- a/test/tint/expressions/index/let/var/literal/array.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/expressions/index/let/var/literal/array.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,12 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Access
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+int f() {
+  int v[8] = {1, 2, 3, 4, 5, 6, 7, 8};
+  int i = 1;
+  int a[8] = v;
+  return a[i];
+}
+
+[numthreads(1, 1, 1)]
+void unused_entry_point() {
+}
+
diff --git a/test/tint/expressions/index/let/var/literal/array.wgsl.expected.ir.fxc.hlsl b/test/tint/expressions/index/let/var/literal/array.wgsl.expected.ir.fxc.hlsl
index 3f437dc..1333846 100644
--- a/test/tint/expressions/index/let/var/literal/array.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/expressions/index/let/var/literal/array.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,12 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Access
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+int f() {
+  int v[8] = {1, 2, 3, 4, 5, 6, 7, 8};
+  int i = 1;
+  int a[8] = v;
+  return a[i];
+}
+
+[numthreads(1, 1, 1)]
+void unused_entry_point() {
+}
+
diff --git a/test/tint/expressions/index/let/var/literal/matrix.wgsl.expected.ir.dxc.hlsl b/test/tint/expressions/index/let/var/literal/matrix.wgsl.expected.ir.dxc.hlsl
index 3f437dc..0185b4d 100644
--- a/test/tint/expressions/index/let/var/literal/matrix.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/expressions/index/let/var/literal/matrix.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,11 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Access
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+float3 f() {
+  float3x3 m = float3x3(float3(1.0f, 2.0f, 3.0f), float3(4.0f, 5.0f, 6.0f), float3(7.0f, 8.0f, 9.0f));
+  int i = 1;
+  return m[i];
+}
+
+[numthreads(1, 1, 1)]
+void unused_entry_point() {
+}
+
diff --git a/test/tint/expressions/index/let/var/literal/matrix.wgsl.expected.ir.fxc.hlsl b/test/tint/expressions/index/let/var/literal/matrix.wgsl.expected.ir.fxc.hlsl
index 3f437dc..0185b4d 100644
--- a/test/tint/expressions/index/let/var/literal/matrix.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/expressions/index/let/var/literal/matrix.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,11 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Access
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+float3 f() {
+  float3x3 m = float3x3(float3(1.0f, 2.0f, 3.0f), float3(4.0f, 5.0f, 6.0f), float3(7.0f, 8.0f, 9.0f));
+  int i = 1;
+  return m[i];
+}
+
+[numthreads(1, 1, 1)]
+void unused_entry_point() {
+}
+
diff --git a/test/tint/expressions/index/let/var/literal/vector.wgsl.expected.ir.dxc.hlsl b/test/tint/expressions/index/let/var/literal/vector.wgsl.expected.ir.dxc.hlsl
index 3f437dc..aa5aa86 100644
--- a/test/tint/expressions/index/let/var/literal/vector.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/expressions/index/let/var/literal/vector.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,11 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Access
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+float f() {
+  float3 v = float3(1.0f, 2.0f, 3.0f);
+  int i = 1;
+  return v[i];
+}
+
+[numthreads(1, 1, 1)]
+void unused_entry_point() {
+}
+
diff --git a/test/tint/expressions/index/let/var/literal/vector.wgsl.expected.ir.fxc.hlsl b/test/tint/expressions/index/let/var/literal/vector.wgsl.expected.ir.fxc.hlsl
index 3f437dc..aa5aa86 100644
--- a/test/tint/expressions/index/let/var/literal/vector.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/expressions/index/let/var/literal/vector.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,11 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Access
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+float f() {
+  float3 v = float3(1.0f, 2.0f, 3.0f);
+  int i = 1;
+  return v[i];
+}
+
+[numthreads(1, 1, 1)]
+void unused_entry_point() {
+}
+
diff --git a/test/tint/expressions/index/var/array_nested_struct.wgsl.expected.ir.dxc.hlsl b/test/tint/expressions/index/var/array_nested_struct.wgsl.expected.ir.dxc.hlsl
index 3f437dc..b0f9c1f 100644
--- a/test/tint/expressions/index/var/array_nested_struct.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/expressions/index/var/array_nested_struct.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,15 @@
-SKIP: FAILED
+struct S {
+  int m;
+  uint n[4];
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Access
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+
+uint f() {
+  S a[2] = (S[2])0;
+  return a[1].n[1];
+}
+
+[numthreads(1, 1, 1)]
+void unused_entry_point() {
+}
+
diff --git a/test/tint/expressions/index/var/array_nested_struct.wgsl.expected.ir.fxc.hlsl b/test/tint/expressions/index/var/array_nested_struct.wgsl.expected.ir.fxc.hlsl
index 3f437dc..b0f9c1f 100644
--- a/test/tint/expressions/index/var/array_nested_struct.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/expressions/index/var/array_nested_struct.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,15 @@
-SKIP: FAILED
+struct S {
+  int m;
+  uint n[4];
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Access
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+
+uint f() {
+  S a[2] = (S[2])0;
+  return a[1].n[1];
+}
+
+[numthreads(1, 1, 1)]
+void unused_entry_point() {
+}
+
diff --git a/test/tint/expressions/index/var/let/literal/array.wgsl.expected.ir.dxc.hlsl b/test/tint/expressions/index/var/let/literal/array.wgsl.expected.ir.dxc.hlsl
index 3f437dc..1822a4e 100644
--- a/test/tint/expressions/index/var/let/literal/array.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/expressions/index/var/let/literal/array.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,11 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Access
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+int f() {
+  int a[8] = {1, 2, 3, 4, 5, 6, 7, 8};
+  int i = 1;
+  return a[i];
+}
+
+[numthreads(1, 1, 1)]
+void unused_entry_point() {
+}
+
diff --git a/test/tint/expressions/index/var/let/literal/array.wgsl.expected.ir.fxc.hlsl b/test/tint/expressions/index/var/let/literal/array.wgsl.expected.ir.fxc.hlsl
index 3f437dc..1822a4e 100644
--- a/test/tint/expressions/index/var/let/literal/array.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/expressions/index/var/let/literal/array.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,11 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Access
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+int f() {
+  int a[8] = {1, 2, 3, 4, 5, 6, 7, 8};
+  int i = 1;
+  return a[i];
+}
+
+[numthreads(1, 1, 1)]
+void unused_entry_point() {
+}
+
diff --git a/test/tint/expressions/index/var/let/literal/matrix.wgsl.expected.ir.dxc.hlsl b/test/tint/expressions/index/var/let/literal/matrix.wgsl.expected.ir.dxc.hlsl
index 3f437dc..0185b4d 100644
--- a/test/tint/expressions/index/var/let/literal/matrix.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/expressions/index/var/let/literal/matrix.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,11 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Access
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+float3 f() {
+  float3x3 m = float3x3(float3(1.0f, 2.0f, 3.0f), float3(4.0f, 5.0f, 6.0f), float3(7.0f, 8.0f, 9.0f));
+  int i = 1;
+  return m[i];
+}
+
+[numthreads(1, 1, 1)]
+void unused_entry_point() {
+}
+
diff --git a/test/tint/expressions/index/var/let/literal/matrix.wgsl.expected.ir.fxc.hlsl b/test/tint/expressions/index/var/let/literal/matrix.wgsl.expected.ir.fxc.hlsl
index 3f437dc..0185b4d 100644
--- a/test/tint/expressions/index/var/let/literal/matrix.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/expressions/index/var/let/literal/matrix.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,11 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Access
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+float3 f() {
+  float3x3 m = float3x3(float3(1.0f, 2.0f, 3.0f), float3(4.0f, 5.0f, 6.0f), float3(7.0f, 8.0f, 9.0f));
+  int i = 1;
+  return m[i];
+}
+
+[numthreads(1, 1, 1)]
+void unused_entry_point() {
+}
+
diff --git a/test/tint/expressions/index/var/let/literal/vector.wgsl.expected.ir.dxc.hlsl b/test/tint/expressions/index/var/let/literal/vector.wgsl.expected.ir.dxc.hlsl
index 4a2c666..aa5aa86 100644
--- a/test/tint/expressions/index/var/let/literal/vector.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/expressions/index/var/let/literal/vector.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,11 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::LoadVectorElement
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+float f() {
+  float3 v = float3(1.0f, 2.0f, 3.0f);
+  int i = 1;
+  return v[i];
+}
+
+[numthreads(1, 1, 1)]
+void unused_entry_point() {
+}
+
diff --git a/test/tint/expressions/index/var/let/literal/vector.wgsl.expected.ir.fxc.hlsl b/test/tint/expressions/index/var/let/literal/vector.wgsl.expected.ir.fxc.hlsl
index 4a2c666..aa5aa86 100644
--- a/test/tint/expressions/index/var/let/literal/vector.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/expressions/index/var/let/literal/vector.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,11 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::LoadVectorElement
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+float f() {
+  float3 v = float3(1.0f, 2.0f, 3.0f);
+  int i = 1;
+  return v[i];
+}
+
+[numthreads(1, 1, 1)]
+void unused_entry_point() {
+}
+
diff --git a/test/tint/expressions/index/var/let/param/array.wgsl.expected.ir.dxc.hlsl b/test/tint/expressions/index/var/let/param/array.wgsl.expected.ir.dxc.hlsl
index 6b047b4..ea17cf5 100644
--- a/test/tint/expressions/index/var/let/param/array.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/expressions/index/var/let/param/array.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,11 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:287 internal compiler error: Switch() matched no cases. Type: tint::core::ir::FunctionParam
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+int f(int x) {
+  int a[8] = {1, 2, 3, 4, 5, 6, 7, 8};
+  int i = x;
+  return a[i];
+}
+
+[numthreads(1, 1, 1)]
+void unused_entry_point() {
+}
+
diff --git a/test/tint/expressions/index/var/let/param/array.wgsl.expected.ir.fxc.hlsl b/test/tint/expressions/index/var/let/param/array.wgsl.expected.ir.fxc.hlsl
index 6b047b4..ea17cf5 100644
--- a/test/tint/expressions/index/var/let/param/array.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/expressions/index/var/let/param/array.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,11 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:287 internal compiler error: Switch() matched no cases. Type: tint::core::ir::FunctionParam
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+int f(int x) {
+  int a[8] = {1, 2, 3, 4, 5, 6, 7, 8};
+  int i = x;
+  return a[i];
+}
+
+[numthreads(1, 1, 1)]
+void unused_entry_point() {
+}
+
diff --git a/test/tint/expressions/index/var/let/param/matrix.wgsl.expected.ir.dxc.hlsl b/test/tint/expressions/index/var/let/param/matrix.wgsl.expected.ir.dxc.hlsl
index 6b047b4..4d80cf8 100644
--- a/test/tint/expressions/index/var/let/param/matrix.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/expressions/index/var/let/param/matrix.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,11 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:287 internal compiler error: Switch() matched no cases. Type: tint::core::ir::FunctionParam
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+float3 f(int x) {
+  float3x3 m = float3x3(float3(1.0f, 2.0f, 3.0f), float3(4.0f, 5.0f, 6.0f), float3(7.0f, 8.0f, 9.0f));
+  int i = x;
+  return m[i];
+}
+
+[numthreads(1, 1, 1)]
+void unused_entry_point() {
+}
+
diff --git a/test/tint/expressions/index/var/let/param/matrix.wgsl.expected.ir.fxc.hlsl b/test/tint/expressions/index/var/let/param/matrix.wgsl.expected.ir.fxc.hlsl
index 6b047b4..4d80cf8 100644
--- a/test/tint/expressions/index/var/let/param/matrix.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/expressions/index/var/let/param/matrix.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,11 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:287 internal compiler error: Switch() matched no cases. Type: tint::core::ir::FunctionParam
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+float3 f(int x) {
+  float3x3 m = float3x3(float3(1.0f, 2.0f, 3.0f), float3(4.0f, 5.0f, 6.0f), float3(7.0f, 8.0f, 9.0f));
+  int i = x;
+  return m[i];
+}
+
+[numthreads(1, 1, 1)]
+void unused_entry_point() {
+}
+
diff --git a/test/tint/expressions/index/var/let/param/vector.wgsl.expected.ir.dxc.hlsl b/test/tint/expressions/index/var/let/param/vector.wgsl.expected.ir.dxc.hlsl
index 6b047b4..cdda7a2 100644
--- a/test/tint/expressions/index/var/let/param/vector.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/expressions/index/var/let/param/vector.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,11 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:287 internal compiler error: Switch() matched no cases. Type: tint::core::ir::FunctionParam
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+float f(int x) {
+  float3 v = float3(1.0f, 2.0f, 3.0f);
+  int i = x;
+  return v[i];
+}
+
+[numthreads(1, 1, 1)]
+void unused_entry_point() {
+}
+
diff --git a/test/tint/expressions/index/var/let/param/vector.wgsl.expected.ir.fxc.hlsl b/test/tint/expressions/index/var/let/param/vector.wgsl.expected.ir.fxc.hlsl
index 6b047b4..cdda7a2 100644
--- a/test/tint/expressions/index/var/let/param/vector.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/expressions/index/var/let/param/vector.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,11 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:287 internal compiler error: Switch() matched no cases. Type: tint::core::ir::FunctionParam
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+float f(int x) {
+  float3 v = float3(1.0f, 2.0f, 3.0f);
+  int i = x;
+  return v[i];
+}
+
+[numthreads(1, 1, 1)]
+void unused_entry_point() {
+}
+
diff --git a/test/tint/expressions/index/var/literal/array.wgsl.expected.ir.dxc.hlsl b/test/tint/expressions/index/var/literal/array.wgsl.expected.ir.dxc.hlsl
index 3f437dc..e202197 100644
--- a/test/tint/expressions/index/var/literal/array.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/expressions/index/var/literal/array.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,10 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Access
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+int f() {
+  int a[8] = {1, 2, 3, 4, 5, 6, 7, 8};
+  return a[1];
+}
+
+[numthreads(1, 1, 1)]
+void unused_entry_point() {
+}
+
diff --git a/test/tint/expressions/index/var/literal/array.wgsl.expected.ir.fxc.hlsl b/test/tint/expressions/index/var/literal/array.wgsl.expected.ir.fxc.hlsl
index 3f437dc..e202197 100644
--- a/test/tint/expressions/index/var/literal/array.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/expressions/index/var/literal/array.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,10 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Access
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+int f() {
+  int a[8] = {1, 2, 3, 4, 5, 6, 7, 8};
+  return a[1];
+}
+
+[numthreads(1, 1, 1)]
+void unused_entry_point() {
+}
+
diff --git a/test/tint/expressions/index/var/literal/matrix.wgsl.expected.ir.dxc.hlsl b/test/tint/expressions/index/var/literal/matrix.wgsl.expected.ir.dxc.hlsl
index 3f437dc..50819a8 100644
--- a/test/tint/expressions/index/var/literal/matrix.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/expressions/index/var/literal/matrix.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,10 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Access
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+float3 f() {
+  float3x3 m = float3x3(float3(1.0f, 2.0f, 3.0f), float3(4.0f, 5.0f, 6.0f), float3(7.0f, 8.0f, 9.0f));
+  return m[1];
+}
+
+[numthreads(1, 1, 1)]
+void unused_entry_point() {
+}
+
diff --git a/test/tint/expressions/index/var/literal/matrix.wgsl.expected.ir.fxc.hlsl b/test/tint/expressions/index/var/literal/matrix.wgsl.expected.ir.fxc.hlsl
index 3f437dc..50819a8 100644
--- a/test/tint/expressions/index/var/literal/matrix.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/expressions/index/var/literal/matrix.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,10 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Access
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+float3 f() {
+  float3x3 m = float3x3(float3(1.0f, 2.0f, 3.0f), float3(4.0f, 5.0f, 6.0f), float3(7.0f, 8.0f, 9.0f));
+  return m[1];
+}
+
+[numthreads(1, 1, 1)]
+void unused_entry_point() {
+}
+
diff --git a/test/tint/expressions/index/var/literal/vector.wgsl.expected.ir.dxc.hlsl b/test/tint/expressions/index/var/literal/vector.wgsl.expected.ir.dxc.hlsl
index 4a2c666..5b95590 100644
--- a/test/tint/expressions/index/var/literal/vector.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/expressions/index/var/literal/vector.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,10 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::LoadVectorElement
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+float f() {
+  float3 v = float3(1.0f, 2.0f, 3.0f);
+  return v.y;
+}
+
+[numthreads(1, 1, 1)]
+void unused_entry_point() {
+}
+
diff --git a/test/tint/expressions/index/var/literal/vector.wgsl.expected.ir.fxc.hlsl b/test/tint/expressions/index/var/literal/vector.wgsl.expected.ir.fxc.hlsl
index 4a2c666..5b95590 100644
--- a/test/tint/expressions/index/var/literal/vector.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/expressions/index/var/literal/vector.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,10 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::LoadVectorElement
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+float f() {
+  float3 v = float3(1.0f, 2.0f, 3.0f);
+  return v.y;
+}
+
+[numthreads(1, 1, 1)]
+void unused_entry_point() {
+}
+
diff --git a/test/tint/expressions/index/var/param/array.wgsl.expected.ir.dxc.hlsl b/test/tint/expressions/index/var/param/array.wgsl.expected.ir.dxc.hlsl
index 3f437dc..87ab5ef 100644
--- a/test/tint/expressions/index/var/param/array.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/expressions/index/var/param/array.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,10 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Access
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+int f(int i) {
+  int a[8] = {1, 2, 3, 4, 5, 6, 7, 8};
+  return a[i];
+}
+
+[numthreads(1, 1, 1)]
+void unused_entry_point() {
+}
+
diff --git a/test/tint/expressions/index/var/param/array.wgsl.expected.ir.fxc.hlsl b/test/tint/expressions/index/var/param/array.wgsl.expected.ir.fxc.hlsl
index 3f437dc..87ab5ef 100644
--- a/test/tint/expressions/index/var/param/array.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/expressions/index/var/param/array.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,10 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Access
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+int f(int i) {
+  int a[8] = {1, 2, 3, 4, 5, 6, 7, 8};
+  return a[i];
+}
+
+[numthreads(1, 1, 1)]
+void unused_entry_point() {
+}
+
diff --git a/test/tint/expressions/index/var/param/matrix.wgsl.expected.ir.dxc.hlsl b/test/tint/expressions/index/var/param/matrix.wgsl.expected.ir.dxc.hlsl
index 3f437dc..abb3a66 100644
--- a/test/tint/expressions/index/var/param/matrix.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/expressions/index/var/param/matrix.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,10 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Access
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+float3 f(int i) {
+  float3x3 m = float3x3(float3(1.0f, 2.0f, 3.0f), float3(4.0f, 5.0f, 6.0f), float3(7.0f, 8.0f, 9.0f));
+  return m[i];
+}
+
+[numthreads(1, 1, 1)]
+void unused_entry_point() {
+}
+
diff --git a/test/tint/expressions/index/var/param/matrix.wgsl.expected.ir.fxc.hlsl b/test/tint/expressions/index/var/param/matrix.wgsl.expected.ir.fxc.hlsl
index 3f437dc..abb3a66 100644
--- a/test/tint/expressions/index/var/param/matrix.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/expressions/index/var/param/matrix.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,10 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Access
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+float3 f(int i) {
+  float3x3 m = float3x3(float3(1.0f, 2.0f, 3.0f), float3(4.0f, 5.0f, 6.0f), float3(7.0f, 8.0f, 9.0f));
+  return m[i];
+}
+
+[numthreads(1, 1, 1)]
+void unused_entry_point() {
+}
+
diff --git a/test/tint/expressions/index/var/param/vector.wgsl.expected.ir.dxc.hlsl b/test/tint/expressions/index/var/param/vector.wgsl.expected.ir.dxc.hlsl
index 4a2c666..adceace 100644
--- a/test/tint/expressions/index/var/param/vector.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/expressions/index/var/param/vector.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,10 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::LoadVectorElement
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+float f(int i) {
+  float3 v = float3(1.0f, 2.0f, 3.0f);
+  return v[i];
+}
+
+[numthreads(1, 1, 1)]
+void unused_entry_point() {
+}
+
diff --git a/test/tint/expressions/index/var/param/vector.wgsl.expected.ir.fxc.hlsl b/test/tint/expressions/index/var/param/vector.wgsl.expected.ir.fxc.hlsl
index 4a2c666..adceace 100644
--- a/test/tint/expressions/index/var/param/vector.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/expressions/index/var/param/vector.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,10 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::LoadVectorElement
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+float f(int i) {
+  float3 v = float3(1.0f, 2.0f, 3.0f);
+  return v[i];
+}
+
+[numthreads(1, 1, 1)]
+void unused_entry_point() {
+}
+
diff --git a/test/tint/expressions/index/var/struct.wgsl.expected.ir.dxc.hlsl b/test/tint/expressions/index/var/struct.wgsl.expected.ir.dxc.hlsl
index 0ba40c6..bebd1cd 100644
--- a/test/tint/expressions/index/var/struct.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/expressions/index/var/struct.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,15 @@
-SKIP: FAILED
+struct S {
+  int m;
+  uint n;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+
+uint f() {
+  S a = (S)0;
+  return a.n;
+}
+
+[numthreads(1, 1, 1)]
+void unused_entry_point() {
+}
+
diff --git a/test/tint/expressions/index/var/struct.wgsl.expected.ir.fxc.hlsl b/test/tint/expressions/index/var/struct.wgsl.expected.ir.fxc.hlsl
index 0ba40c6..bebd1cd 100644
--- a/test/tint/expressions/index/var/struct.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/expressions/index/var/struct.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,15 @@
-SKIP: FAILED
+struct S {
+  int m;
+  uint n;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+
+uint f() {
+  S a = (S)0;
+  return a.n;
+}
+
+[numthreads(1, 1, 1)]
+void unused_entry_point() {
+}
+
diff --git a/test/tint/expressions/index/var/struct_nested_array.wgsl.expected.ir.dxc.hlsl b/test/tint/expressions/index/var/struct_nested_array.wgsl.expected.ir.dxc.hlsl
index 0ba40c6..3d335fb 100644
--- a/test/tint/expressions/index/var/struct_nested_array.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/expressions/index/var/struct_nested_array.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,15 @@
-SKIP: FAILED
+struct S {
+  int m;
+  uint n[4];
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+
+uint f() {
+  S a = (S)0;
+  return a.n[2];
+}
+
+[numthreads(1, 1, 1)]
+void unused_entry_point() {
+}
+
diff --git a/test/tint/expressions/index/var/struct_nested_array.wgsl.expected.ir.fxc.hlsl b/test/tint/expressions/index/var/struct_nested_array.wgsl.expected.ir.fxc.hlsl
index 0ba40c6..3d335fb 100644
--- a/test/tint/expressions/index/var/struct_nested_array.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/expressions/index/var/struct_nested_array.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,15 @@
-SKIP: FAILED
+struct S {
+  int m;
+  uint n[4];
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+
+uint f() {
+  S a = (S)0;
+  return a.n[2];
+}
+
+[numthreads(1, 1, 1)]
+void unused_entry_point() {
+}
+
diff --git a/test/tint/expressions/index/var/struct_nested_multiple.wgsl.expected.ir.dxc.hlsl b/test/tint/expressions/index/var/struct_nested_multiple.wgsl.expected.ir.dxc.hlsl
index 0ba40c6..a7d74ed 100644
--- a/test/tint/expressions/index/var/struct_nested_multiple.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/expressions/index/var/struct_nested_multiple.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,19 @@
-SKIP: FAILED
+struct T {
+  uint k[2];
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct S {
+  int m;
+  T n[4];
+};
+
+
+uint f() {
+  S a = (S)0;
+  return a.n[2].k[1];
+}
+
+[numthreads(1, 1, 1)]
+void unused_entry_point() {
+}
+
diff --git a/test/tint/expressions/index/var/struct_nested_multiple.wgsl.expected.ir.fxc.hlsl b/test/tint/expressions/index/var/struct_nested_multiple.wgsl.expected.ir.fxc.hlsl
index 0ba40c6..a7d74ed 100644
--- a/test/tint/expressions/index/var/struct_nested_multiple.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/expressions/index/var/struct_nested_multiple.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,19 @@
-SKIP: FAILED
+struct T {
+  uint k[2];
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct S {
+  int m;
+  T n[4];
+};
+
+
+uint f() {
+  S a = (S)0;
+  return a.n[2].k[1];
+}
+
+[numthreads(1, 1, 1)]
+void unused_entry_point() {
+}
+
diff --git a/test/tint/expressions/index/var/struct_nested_struct.wgsl.expected.ir.dxc.hlsl b/test/tint/expressions/index/var/struct_nested_struct.wgsl.expected.ir.dxc.hlsl
index 0ba40c6..a41a3be 100644
--- a/test/tint/expressions/index/var/struct_nested_struct.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/expressions/index/var/struct_nested_struct.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,20 @@
-SKIP: FAILED
+struct T {
+  float o;
+  uint p;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct S {
+  int m;
+  T n;
+};
+
+
+uint f() {
+  S a = (S)0;
+  return a.n.p;
+}
+
+[numthreads(1, 1, 1)]
+void unused_entry_point() {
+}
+
diff --git a/test/tint/expressions/index/var/struct_nested_struct.wgsl.expected.ir.fxc.hlsl b/test/tint/expressions/index/var/struct_nested_struct.wgsl.expected.ir.fxc.hlsl
index 0ba40c6..a41a3be 100644
--- a/test/tint/expressions/index/var/struct_nested_struct.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/expressions/index/var/struct_nested_struct.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,20 @@
-SKIP: FAILED
+struct T {
+  float o;
+  uint p;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct S {
+  int m;
+  T n;
+};
+
+
+uint f() {
+  S a = (S)0;
+  return a.n.p;
+}
+
+[numthreads(1, 1, 1)]
+void unused_entry_point() {
+}
+
diff --git a/test/tint/expressions/index/var/struct_with_matrix.wgsl.expected.ir.dxc.hlsl b/test/tint/expressions/index/var/struct_with_matrix.wgsl.expected.ir.dxc.hlsl
index 0ba40c6..ed13149 100644
--- a/test/tint/expressions/index/var/struct_with_matrix.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/expressions/index/var/struct_with_matrix.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,15 @@
-SKIP: FAILED
+struct S {
+  int m;
+  float4x4 n;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+
+float f() {
+  S a = (S)0;
+  return a.n[2].y;
+}
+
+[numthreads(1, 1, 1)]
+void unused_entry_point() {
+}
+
diff --git a/test/tint/expressions/index/var/struct_with_matrix.wgsl.expected.ir.fxc.hlsl b/test/tint/expressions/index/var/struct_with_matrix.wgsl.expected.ir.fxc.hlsl
index 0ba40c6..ed13149 100644
--- a/test/tint/expressions/index/var/struct_with_matrix.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/expressions/index/var/struct_with_matrix.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,15 @@
-SKIP: FAILED
+struct S {
+  int m;
+  float4x4 n;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+
+float f() {
+  S a = (S)0;
+  return a.n[2].y;
+}
+
+[numthreads(1, 1, 1)]
+void unused_entry_point() {
+}
+
diff --git a/test/tint/expressions/index/var/struct_with_vector.wgsl.expected.ir.dxc.hlsl b/test/tint/expressions/index/var/struct_with_vector.wgsl.expected.ir.dxc.hlsl
index 0ba40c6..032d29f 100644
--- a/test/tint/expressions/index/var/struct_with_vector.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/expressions/index/var/struct_with_vector.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,15 @@
-SKIP: FAILED
+struct S {
+  int m;
+  uint3 n;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+
+uint f() {
+  S a = (S)0;
+  return a.n.z;
+}
+
+[numthreads(1, 1, 1)]
+void unused_entry_point() {
+}
+
diff --git a/test/tint/expressions/index/var/struct_with_vector.wgsl.expected.ir.fxc.hlsl b/test/tint/expressions/index/var/struct_with_vector.wgsl.expected.ir.fxc.hlsl
index 0ba40c6..032d29f 100644
--- a/test/tint/expressions/index/var/struct_with_vector.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/expressions/index/var/struct_with_vector.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,15 @@
-SKIP: FAILED
+struct S {
+  int m;
+  uint3 n;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+
+uint f() {
+  S a = (S)0;
+  return a.n.z;
+}
+
+[numthreads(1, 1, 1)]
+void unused_entry_point() {
+}
+
diff --git a/test/tint/expressions/literals/intmin.wgsl.expected.ir.dxc.hlsl b/test/tint/expressions/literals/intmin.wgsl.expected.ir.dxc.hlsl
index d065269..b5c116c 100644
--- a/test/tint/expressions/literals/intmin.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/expressions/literals/intmin.wgsl.expected.ir.dxc.hlsl
@@ -1,3 +1,4 @@
+
 int add_int_min_explicit() {
   int a = -2147483648;
   int b = (a + 1);
diff --git a/test/tint/expressions/literals/intmin.wgsl.expected.ir.fxc.hlsl b/test/tint/expressions/literals/intmin.wgsl.expected.ir.fxc.hlsl
index 291e61a..b5c116c 100644
--- a/test/tint/expressions/literals/intmin.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/expressions/literals/intmin.wgsl.expected.ir.fxc.hlsl
@@ -1,4 +1,3 @@
-SKIP: FAILED
 
 int add_int_min_explicit() {
   int a = -2147483648;
diff --git a/test/tint/expressions/splat/call/bool.wgsl.expected.ir.dxc.hlsl b/test/tint/expressions/splat/call/bool.wgsl.expected.ir.dxc.hlsl
index c6e1d96..12f2e95 100644
--- a/test/tint/expressions/splat/call/bool.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/expressions/splat/call/bool.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,15 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Construct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+bool get_bool() {
+  return true;
+}
+
+void f() {
+  bool2 v2 = bool2((get_bool()).xx);
+  bool3 v3 = bool3((get_bool()).xxx);
+  bool4 v4 = bool4((get_bool()).xxxx);
+}
+
+[numthreads(1, 1, 1)]
+void unused_entry_point() {
+}
+
diff --git a/test/tint/expressions/splat/call/bool.wgsl.expected.ir.fxc.hlsl b/test/tint/expressions/splat/call/bool.wgsl.expected.ir.fxc.hlsl
index c6e1d96..12f2e95 100644
--- a/test/tint/expressions/splat/call/bool.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/expressions/splat/call/bool.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,15 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Construct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+bool get_bool() {
+  return true;
+}
+
+void f() {
+  bool2 v2 = bool2((get_bool()).xx);
+  bool3 v3 = bool3((get_bool()).xxx);
+  bool4 v4 = bool4((get_bool()).xxxx);
+}
+
+[numthreads(1, 1, 1)]
+void unused_entry_point() {
+}
+
diff --git a/test/tint/expressions/splat/call/f16.wgsl.expected.ir.dxc.hlsl b/test/tint/expressions/splat/call/f16.wgsl.expected.ir.dxc.hlsl
index c6e1d96..ffe26bb 100644
--- a/test/tint/expressions/splat/call/f16.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/expressions/splat/call/f16.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,15 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Construct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+float16_t get_f16() {
+  return float16_t(1.0h);
+}
+
+void f() {
+  vector<float16_t, 2> v2 = vector<float16_t, 2>((get_f16()).xx);
+  vector<float16_t, 3> v3 = vector<float16_t, 3>((get_f16()).xxx);
+  vector<float16_t, 4> v4 = vector<float16_t, 4>((get_f16()).xxxx);
+}
+
+[numthreads(1, 1, 1)]
+void unused_entry_point() {
+}
+
diff --git a/test/tint/expressions/splat/call/f16.wgsl.expected.ir.fxc.hlsl b/test/tint/expressions/splat/call/f16.wgsl.expected.ir.fxc.hlsl
index c6e1d96..4e7d4f5 100644
--- a/test/tint/expressions/splat/call/f16.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/expressions/splat/call/f16.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,20 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Construct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+
+float16_t get_f16() {
+  return float16_t(1.0h);
+}
+
+void f() {
+  vector<float16_t, 2> v2 = vector<float16_t, 2>((get_f16()).xx);
+  vector<float16_t, 3> v3 = vector<float16_t, 3>((get_f16()).xxx);
+  vector<float16_t, 4> v4 = vector<float16_t, 4>((get_f16()).xxxx);
+}
+
+[numthreads(1, 1, 1)]
+void unused_entry_point() {
+}
+
+FXC validation failure:
+c:\src\dawn\Shader@0x00000201D3240B80(2,1-9): error X3000: unrecognized identifier 'float16_t'
+
diff --git a/test/tint/expressions/splat/call/f32.wgsl.expected.ir.dxc.hlsl b/test/tint/expressions/splat/call/f32.wgsl.expected.ir.dxc.hlsl
index c6e1d96..4f4c47a 100644
--- a/test/tint/expressions/splat/call/f32.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/expressions/splat/call/f32.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,15 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Construct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+float get_f32() {
+  return 1.0f;
+}
+
+void f() {
+  float2 v2 = float2((get_f32()).xx);
+  float3 v3 = float3((get_f32()).xxx);
+  float4 v4 = float4((get_f32()).xxxx);
+}
+
+[numthreads(1, 1, 1)]
+void unused_entry_point() {
+}
+
diff --git a/test/tint/expressions/splat/call/f32.wgsl.expected.ir.fxc.hlsl b/test/tint/expressions/splat/call/f32.wgsl.expected.ir.fxc.hlsl
index c6e1d96..4f4c47a 100644
--- a/test/tint/expressions/splat/call/f32.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/expressions/splat/call/f32.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,15 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Construct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+float get_f32() {
+  return 1.0f;
+}
+
+void f() {
+  float2 v2 = float2((get_f32()).xx);
+  float3 v3 = float3((get_f32()).xxx);
+  float4 v4 = float4((get_f32()).xxxx);
+}
+
+[numthreads(1, 1, 1)]
+void unused_entry_point() {
+}
+
diff --git a/test/tint/expressions/splat/call/i32.wgsl.expected.ir.dxc.hlsl b/test/tint/expressions/splat/call/i32.wgsl.expected.ir.dxc.hlsl
index c6e1d96..c8f69b7 100644
--- a/test/tint/expressions/splat/call/i32.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/expressions/splat/call/i32.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,15 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Construct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+int get_i32() {
+  return 1;
+}
+
+void f() {
+  int2 v2 = int2((get_i32()).xx);
+  int3 v3 = int3((get_i32()).xxx);
+  int4 v4 = int4((get_i32()).xxxx);
+}
+
+[numthreads(1, 1, 1)]
+void unused_entry_point() {
+}
+
diff --git a/test/tint/expressions/splat/call/i32.wgsl.expected.ir.fxc.hlsl b/test/tint/expressions/splat/call/i32.wgsl.expected.ir.fxc.hlsl
index c6e1d96..c8f69b7 100644
--- a/test/tint/expressions/splat/call/i32.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/expressions/splat/call/i32.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,15 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Construct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+int get_i32() {
+  return 1;
+}
+
+void f() {
+  int2 v2 = int2((get_i32()).xx);
+  int3 v3 = int3((get_i32()).xxx);
+  int4 v4 = int4((get_i32()).xxxx);
+}
+
+[numthreads(1, 1, 1)]
+void unused_entry_point() {
+}
+
diff --git a/test/tint/expressions/splat/call/u32.wgsl.expected.ir.dxc.hlsl b/test/tint/expressions/splat/call/u32.wgsl.expected.ir.dxc.hlsl
index c6e1d96..c272c68 100644
--- a/test/tint/expressions/splat/call/u32.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/expressions/splat/call/u32.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,15 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Construct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+uint get_u32() {
+  return 1u;
+}
+
+void f() {
+  uint2 v2 = uint2((get_u32()).xx);
+  uint3 v3 = uint3((get_u32()).xxx);
+  uint4 v4 = uint4((get_u32()).xxxx);
+}
+
+[numthreads(1, 1, 1)]
+void unused_entry_point() {
+}
+
diff --git a/test/tint/expressions/splat/call/u32.wgsl.expected.ir.fxc.hlsl b/test/tint/expressions/splat/call/u32.wgsl.expected.ir.fxc.hlsl
index c6e1d96..c272c68 100644
--- a/test/tint/expressions/splat/call/u32.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/expressions/splat/call/u32.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,15 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Construct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+uint get_u32() {
+  return 1u;
+}
+
+void f() {
+  uint2 v2 = uint2((get_u32()).xx);
+  uint3 v3 = uint3((get_u32()).xxx);
+  uint4 v4 = uint4((get_u32()).xxxx);
+}
+
+[numthreads(1, 1, 1)]
+void unused_entry_point() {
+}
+
diff --git a/test/tint/expressions/splat/expression/bool.wgsl.expected.ir.dxc.hlsl b/test/tint/expressions/splat/expression/bool.wgsl.expected.ir.dxc.hlsl
index 0a24119..dd36380 100644
--- a/test/tint/expressions/splat/expression/bool.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/expressions/splat/expression/bool.wgsl.expected.ir.dxc.hlsl
@@ -1,3 +1,4 @@
+
 void f() {
   bool2 v2 = (true).xx;
   bool3 v3 = (true).xxx;
diff --git a/test/tint/expressions/splat/expression/bool.wgsl.expected.ir.fxc.hlsl b/test/tint/expressions/splat/expression/bool.wgsl.expected.ir.fxc.hlsl
index 0a24119..dd36380 100644
--- a/test/tint/expressions/splat/expression/bool.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/expressions/splat/expression/bool.wgsl.expected.ir.fxc.hlsl
@@ -1,3 +1,4 @@
+
 void f() {
   bool2 v2 = (true).xx;
   bool3 v3 = (true).xxx;
diff --git a/test/tint/expressions/splat/expression/f16.wgsl.expected.ir.dxc.hlsl b/test/tint/expressions/splat/expression/f16.wgsl.expected.ir.dxc.hlsl
index f5e28e4..9ebf0ac 100644
--- a/test/tint/expressions/splat/expression/f16.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/expressions/splat/expression/f16.wgsl.expected.ir.dxc.hlsl
@@ -1,3 +1,4 @@
+
 void f() {
   vector<float16_t, 2> v2 = (float16_t(3.0h)).xx;
   vector<float16_t, 3> v3 = (float16_t(3.0h)).xxx;
diff --git a/test/tint/expressions/splat/expression/f16.wgsl.expected.ir.fxc.hlsl b/test/tint/expressions/splat/expression/f16.wgsl.expected.ir.fxc.hlsl
index f5e28e4..c9c85c1 100644
--- a/test/tint/expressions/splat/expression/f16.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/expressions/splat/expression/f16.wgsl.expected.ir.fxc.hlsl
@@ -1,3 +1,6 @@
+SKIP: FAILED
+
+
 void f() {
   vector<float16_t, 2> v2 = (float16_t(3.0h)).xx;
   vector<float16_t, 3> v3 = (float16_t(3.0h)).xxx;
@@ -8,3 +11,8 @@
 void unused_entry_point() {
 }
 
+FXC validation failure:
+c:\src\dawn\Shader@0x00000242D715BF70(3,10-18): error X3000: syntax error: unexpected token 'float16_t'
+c:\src\dawn\Shader@0x00000242D715BF70(4,10-18): error X3000: syntax error: unexpected token 'float16_t'
+c:\src\dawn\Shader@0x00000242D715BF70(5,10-18): error X3000: syntax error: unexpected token 'float16_t'
+
diff --git a/test/tint/expressions/splat/expression/f32.wgsl.expected.ir.dxc.hlsl b/test/tint/expressions/splat/expression/f32.wgsl.expected.ir.dxc.hlsl
index cda28a2..7197ebe 100644
--- a/test/tint/expressions/splat/expression/f32.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/expressions/splat/expression/f32.wgsl.expected.ir.dxc.hlsl
@@ -1,3 +1,4 @@
+
 void f() {
   float2 v2 = (3.0f).xx;
   float3 v3 = (3.0f).xxx;
diff --git a/test/tint/expressions/splat/expression/f32.wgsl.expected.ir.fxc.hlsl b/test/tint/expressions/splat/expression/f32.wgsl.expected.ir.fxc.hlsl
index cda28a2..7197ebe 100644
--- a/test/tint/expressions/splat/expression/f32.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/expressions/splat/expression/f32.wgsl.expected.ir.fxc.hlsl
@@ -1,3 +1,4 @@
+
 void f() {
   float2 v2 = (3.0f).xx;
   float3 v3 = (3.0f).xxx;
diff --git a/test/tint/expressions/splat/expression/i32.wgsl.expected.ir.dxc.hlsl b/test/tint/expressions/splat/expression/i32.wgsl.expected.ir.dxc.hlsl
index ae7334c..889937a 100644
--- a/test/tint/expressions/splat/expression/i32.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/expressions/splat/expression/i32.wgsl.expected.ir.dxc.hlsl
@@ -1,3 +1,4 @@
+
 void f() {
   int2 v2 = (3).xx;
   int3 v3 = (3).xxx;
diff --git a/test/tint/expressions/splat/expression/i32.wgsl.expected.ir.fxc.hlsl b/test/tint/expressions/splat/expression/i32.wgsl.expected.ir.fxc.hlsl
index ae7334c..889937a 100644
--- a/test/tint/expressions/splat/expression/i32.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/expressions/splat/expression/i32.wgsl.expected.ir.fxc.hlsl
@@ -1,3 +1,4 @@
+
 void f() {
   int2 v2 = (3).xx;
   int3 v3 = (3).xxx;
diff --git a/test/tint/expressions/splat/expression/u32.wgsl.expected.ir.dxc.hlsl b/test/tint/expressions/splat/expression/u32.wgsl.expected.ir.dxc.hlsl
index ec83a5d..3a5b580 100644
--- a/test/tint/expressions/splat/expression/u32.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/expressions/splat/expression/u32.wgsl.expected.ir.dxc.hlsl
@@ -1,3 +1,4 @@
+
 void f() {
   uint2 v2 = (3u).xx;
   uint3 v3 = (3u).xxx;
diff --git a/test/tint/expressions/splat/expression/u32.wgsl.expected.ir.fxc.hlsl b/test/tint/expressions/splat/expression/u32.wgsl.expected.ir.fxc.hlsl
index ec83a5d..3a5b580 100644
--- a/test/tint/expressions/splat/expression/u32.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/expressions/splat/expression/u32.wgsl.expected.ir.fxc.hlsl
@@ -1,3 +1,4 @@
+
 void f() {
   uint2 v2 = (3u).xx;
   uint3 v3 = (3u).xxx;
diff --git a/test/tint/expressions/splat/immediate/bool.wgsl.expected.ir.dxc.hlsl b/test/tint/expressions/splat/immediate/bool.wgsl.expected.ir.dxc.hlsl
index 0a24119..dd36380 100644
--- a/test/tint/expressions/splat/immediate/bool.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/expressions/splat/immediate/bool.wgsl.expected.ir.dxc.hlsl
@@ -1,3 +1,4 @@
+
 void f() {
   bool2 v2 = (true).xx;
   bool3 v3 = (true).xxx;
diff --git a/test/tint/expressions/splat/immediate/bool.wgsl.expected.ir.fxc.hlsl b/test/tint/expressions/splat/immediate/bool.wgsl.expected.ir.fxc.hlsl
index 0a24119..dd36380 100644
--- a/test/tint/expressions/splat/immediate/bool.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/expressions/splat/immediate/bool.wgsl.expected.ir.fxc.hlsl
@@ -1,3 +1,4 @@
+
 void f() {
   bool2 v2 = (true).xx;
   bool3 v3 = (true).xxx;
diff --git a/test/tint/expressions/splat/immediate/f16.wgsl.expected.ir.dxc.hlsl b/test/tint/expressions/splat/immediate/f16.wgsl.expected.ir.dxc.hlsl
index 75a5926..cd5b795 100644
--- a/test/tint/expressions/splat/immediate/f16.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/expressions/splat/immediate/f16.wgsl.expected.ir.dxc.hlsl
@@ -1,3 +1,4 @@
+
 void f() {
   vector<float16_t, 2> v2 = (float16_t(1.0h)).xx;
   vector<float16_t, 3> v3 = (float16_t(1.0h)).xxx;
diff --git a/test/tint/expressions/splat/immediate/f16.wgsl.expected.ir.fxc.hlsl b/test/tint/expressions/splat/immediate/f16.wgsl.expected.ir.fxc.hlsl
index 75a5926..df212f3 100644
--- a/test/tint/expressions/splat/immediate/f16.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/expressions/splat/immediate/f16.wgsl.expected.ir.fxc.hlsl
@@ -1,3 +1,6 @@
+SKIP: FAILED
+
+
 void f() {
   vector<float16_t, 2> v2 = (float16_t(1.0h)).xx;
   vector<float16_t, 3> v3 = (float16_t(1.0h)).xxx;
@@ -8,3 +11,8 @@
 void unused_entry_point() {
 }
 
+FXC validation failure:
+c:\src\dawn\Shader@0x000002077152F630(3,10-18): error X3000: syntax error: unexpected token 'float16_t'
+c:\src\dawn\Shader@0x000002077152F630(4,10-18): error X3000: syntax error: unexpected token 'float16_t'
+c:\src\dawn\Shader@0x000002077152F630(5,10-18): error X3000: syntax error: unexpected token 'float16_t'
+
diff --git a/test/tint/expressions/splat/immediate/f32.wgsl.expected.ir.dxc.hlsl b/test/tint/expressions/splat/immediate/f32.wgsl.expected.ir.dxc.hlsl
index bab6f95..35cb6f0 100644
--- a/test/tint/expressions/splat/immediate/f32.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/expressions/splat/immediate/f32.wgsl.expected.ir.dxc.hlsl
@@ -1,3 +1,4 @@
+
 void f() {
   float2 v2 = (1.0f).xx;
   float3 v3 = (1.0f).xxx;
diff --git a/test/tint/expressions/splat/immediate/f32.wgsl.expected.ir.fxc.hlsl b/test/tint/expressions/splat/immediate/f32.wgsl.expected.ir.fxc.hlsl
index bab6f95..35cb6f0 100644
--- a/test/tint/expressions/splat/immediate/f32.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/expressions/splat/immediate/f32.wgsl.expected.ir.fxc.hlsl
@@ -1,3 +1,4 @@
+
 void f() {
   float2 v2 = (1.0f).xx;
   float3 v3 = (1.0f).xxx;
diff --git a/test/tint/expressions/splat/immediate/i32.wgsl.expected.ir.dxc.hlsl b/test/tint/expressions/splat/immediate/i32.wgsl.expected.ir.dxc.hlsl
index 549cdac..7dc3810 100644
--- a/test/tint/expressions/splat/immediate/i32.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/expressions/splat/immediate/i32.wgsl.expected.ir.dxc.hlsl
@@ -1,3 +1,4 @@
+
 void f() {
   int2 v2 = (1).xx;
   int3 v3 = (1).xxx;
diff --git a/test/tint/expressions/splat/immediate/i32.wgsl.expected.ir.fxc.hlsl b/test/tint/expressions/splat/immediate/i32.wgsl.expected.ir.fxc.hlsl
index 549cdac..7dc3810 100644
--- a/test/tint/expressions/splat/immediate/i32.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/expressions/splat/immediate/i32.wgsl.expected.ir.fxc.hlsl
@@ -1,3 +1,4 @@
+
 void f() {
   int2 v2 = (1).xx;
   int3 v3 = (1).xxx;
diff --git a/test/tint/expressions/splat/immediate/u32.wgsl.expected.ir.dxc.hlsl b/test/tint/expressions/splat/immediate/u32.wgsl.expected.ir.dxc.hlsl
index cd65697..efa6adc 100644
--- a/test/tint/expressions/splat/immediate/u32.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/expressions/splat/immediate/u32.wgsl.expected.ir.dxc.hlsl
@@ -1,3 +1,4 @@
+
 void f() {
   uint2 v2 = (1u).xx;
   uint3 v3 = (1u).xxx;
diff --git a/test/tint/expressions/splat/immediate/u32.wgsl.expected.ir.fxc.hlsl b/test/tint/expressions/splat/immediate/u32.wgsl.expected.ir.fxc.hlsl
index cd65697..efa6adc 100644
--- a/test/tint/expressions/splat/immediate/u32.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/expressions/splat/immediate/u32.wgsl.expected.ir.fxc.hlsl
@@ -1,3 +1,4 @@
+
 void f() {
   uint2 v2 = (1u).xx;
   uint3 v3 = (1u).xxx;
diff --git a/test/tint/expressions/splat/var/bool.wgsl.expected.ir.dxc.hlsl b/test/tint/expressions/splat/var/bool.wgsl.expected.ir.dxc.hlsl
index c6e1d96..e2e80a3 100644
--- a/test/tint/expressions/splat/var/bool.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/expressions/splat/var/bool.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,12 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Construct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+void f() {
+  bool v = true;
+  bool2 v2 = bool2((v).xx);
+  bool3 v3 = bool3((v).xxx);
+  bool4 v4 = bool4((v).xxxx);
+}
+
+[numthreads(1, 1, 1)]
+void unused_entry_point() {
+}
+
diff --git a/test/tint/expressions/splat/var/bool.wgsl.expected.ir.fxc.hlsl b/test/tint/expressions/splat/var/bool.wgsl.expected.ir.fxc.hlsl
index c6e1d96..e2e80a3 100644
--- a/test/tint/expressions/splat/var/bool.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/expressions/splat/var/bool.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,12 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Construct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+void f() {
+  bool v = true;
+  bool2 v2 = bool2((v).xx);
+  bool3 v3 = bool3((v).xxx);
+  bool4 v4 = bool4((v).xxxx);
+}
+
+[numthreads(1, 1, 1)]
+void unused_entry_point() {
+}
+
diff --git a/test/tint/expressions/splat/var/f16.wgsl.expected.ir.dxc.hlsl b/test/tint/expressions/splat/var/f16.wgsl.expected.ir.dxc.hlsl
index c6e1d96..dcb87a0 100644
--- a/test/tint/expressions/splat/var/f16.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/expressions/splat/var/f16.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,12 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Construct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+void f() {
+  float16_t v = float16_t(3.0h);
+  vector<float16_t, 2> v2 = vector<float16_t, 2>((v).xx);
+  vector<float16_t, 3> v3 = vector<float16_t, 3>((v).xxx);
+  vector<float16_t, 4> v4 = vector<float16_t, 4>((v).xxxx);
+}
+
+[numthreads(1, 1, 1)]
+void unused_entry_point() {
+}
+
diff --git a/test/tint/expressions/splat/var/f16.wgsl.expected.ir.fxc.hlsl b/test/tint/expressions/splat/var/f16.wgsl.expected.ir.fxc.hlsl
index c6e1d96..ef4b676 100644
--- a/test/tint/expressions/splat/var/f16.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/expressions/splat/var/f16.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,18 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Construct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+
+void f() {
+  float16_t v = float16_t(3.0h);
+  vector<float16_t, 2> v2 = vector<float16_t, 2>((v).xx);
+  vector<float16_t, 3> v3 = vector<float16_t, 3>((v).xxx);
+  vector<float16_t, 4> v4 = vector<float16_t, 4>((v).xxxx);
+}
+
+[numthreads(1, 1, 1)]
+void unused_entry_point() {
+}
+
+FXC validation failure:
+c:\src\dawn\Shader@0x0000027E6544DF80(3,3-11): error X3000: unrecognized identifier 'float16_t'
+c:\src\dawn\Shader@0x0000027E6544DF80(3,13): error X3000: unrecognized identifier 'v'
+
diff --git a/test/tint/expressions/splat/var/f32.wgsl.expected.ir.dxc.hlsl b/test/tint/expressions/splat/var/f32.wgsl.expected.ir.dxc.hlsl
index c6e1d96..cda1fb5 100644
--- a/test/tint/expressions/splat/var/f32.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/expressions/splat/var/f32.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,12 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Construct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+void f() {
+  float v = 3.0f;
+  float2 v2 = float2((v).xx);
+  float3 v3 = float3((v).xxx);
+  float4 v4 = float4((v).xxxx);
+}
+
+[numthreads(1, 1, 1)]
+void unused_entry_point() {
+}
+
diff --git a/test/tint/expressions/splat/var/f32.wgsl.expected.ir.fxc.hlsl b/test/tint/expressions/splat/var/f32.wgsl.expected.ir.fxc.hlsl
index c6e1d96..cda1fb5 100644
--- a/test/tint/expressions/splat/var/f32.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/expressions/splat/var/f32.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,12 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Construct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+void f() {
+  float v = 3.0f;
+  float2 v2 = float2((v).xx);
+  float3 v3 = float3((v).xxx);
+  float4 v4 = float4((v).xxxx);
+}
+
+[numthreads(1, 1, 1)]
+void unused_entry_point() {
+}
+
diff --git a/test/tint/expressions/splat/var/i32.wgsl.expected.ir.dxc.hlsl b/test/tint/expressions/splat/var/i32.wgsl.expected.ir.dxc.hlsl
index c6e1d96..34fff97 100644
--- a/test/tint/expressions/splat/var/i32.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/expressions/splat/var/i32.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,12 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Construct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+void f() {
+  int v = 3;
+  int2 v2 = int2((v).xx);
+  int3 v3 = int3((v).xxx);
+  int4 v4 = int4((v).xxxx);
+}
+
+[numthreads(1, 1, 1)]
+void unused_entry_point() {
+}
+
diff --git a/test/tint/expressions/splat/var/i32.wgsl.expected.ir.fxc.hlsl b/test/tint/expressions/splat/var/i32.wgsl.expected.ir.fxc.hlsl
index c6e1d96..34fff97 100644
--- a/test/tint/expressions/splat/var/i32.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/expressions/splat/var/i32.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,12 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Construct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+void f() {
+  int v = 3;
+  int2 v2 = int2((v).xx);
+  int3 v3 = int3((v).xxx);
+  int4 v4 = int4((v).xxxx);
+}
+
+[numthreads(1, 1, 1)]
+void unused_entry_point() {
+}
+
diff --git a/test/tint/expressions/splat/var/u32.wgsl.expected.ir.dxc.hlsl b/test/tint/expressions/splat/var/u32.wgsl.expected.ir.dxc.hlsl
index c6e1d96..4557e3c 100644
--- a/test/tint/expressions/splat/var/u32.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/expressions/splat/var/u32.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,12 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Construct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+void f() {
+  uint v = 3u;
+  uint2 v2 = uint2((v).xx);
+  uint3 v3 = uint3((v).xxx);
+  uint4 v4 = uint4((v).xxxx);
+}
+
+[numthreads(1, 1, 1)]
+void unused_entry_point() {
+}
+
diff --git a/test/tint/expressions/splat/var/u32.wgsl.expected.ir.fxc.hlsl b/test/tint/expressions/splat/var/u32.wgsl.expected.ir.fxc.hlsl
index c6e1d96..4557e3c 100644
--- a/test/tint/expressions/splat/var/u32.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/expressions/splat/var/u32.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,12 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Construct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+void f() {
+  uint v = 3u;
+  uint2 v2 = uint2((v).xx);
+  uint3 v3 = uint3((v).xxx);
+  uint4 v4 = uint4((v).xxxx);
+}
+
+[numthreads(1, 1, 1)]
+void unused_entry_point() {
+}
+
diff --git a/test/tint/expressions/splat/with_swizzle/f16.wgsl.expected.ir.dxc.hlsl b/test/tint/expressions/splat/with_swizzle/f16.wgsl.expected.ir.dxc.hlsl
index 3e8a63c..21c044f 100644
--- a/test/tint/expressions/splat/with_swizzle/f16.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/expressions/splat/with_swizzle/f16.wgsl.expected.ir.dxc.hlsl
@@ -1,3 +1,4 @@
+
 void f() {
   float16_t a = float16_t(1.0h);
   float16_t b = float16_t(1.0h);
diff --git a/test/tint/expressions/splat/with_swizzle/f16.wgsl.expected.ir.fxc.hlsl b/test/tint/expressions/splat/with_swizzle/f16.wgsl.expected.ir.fxc.hlsl
index 3e8a63c..532dafd 100644
--- a/test/tint/expressions/splat/with_swizzle/f16.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/expressions/splat/with_swizzle/f16.wgsl.expected.ir.fxc.hlsl
@@ -1,3 +1,6 @@
+SKIP: FAILED
+
+
 void f() {
   float16_t a = float16_t(1.0h);
   float16_t b = float16_t(1.0h);
@@ -8,3 +11,7 @@
 void unused_entry_point() {
 }
 
+FXC validation failure:
+c:\src\dawn\Shader@0x00000229610217A0(3,3-11): error X3000: unrecognized identifier 'float16_t'
+c:\src\dawn\Shader@0x00000229610217A0(3,13): error X3000: unrecognized identifier 'a'
+
diff --git a/test/tint/expressions/splat/with_swizzle/f32.wgsl.expected.ir.dxc.hlsl b/test/tint/expressions/splat/with_swizzle/f32.wgsl.expected.ir.dxc.hlsl
index 8234638..37a9609 100644
--- a/test/tint/expressions/splat/with_swizzle/f32.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/expressions/splat/with_swizzle/f32.wgsl.expected.ir.dxc.hlsl
@@ -1,3 +1,4 @@
+
 void f() {
   float a = 1.0f;
   float b = 1.0f;
diff --git a/test/tint/expressions/splat/with_swizzle/f32.wgsl.expected.ir.fxc.hlsl b/test/tint/expressions/splat/with_swizzle/f32.wgsl.expected.ir.fxc.hlsl
index 8234638..37a9609 100644
--- a/test/tint/expressions/splat/with_swizzle/f32.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/expressions/splat/with_swizzle/f32.wgsl.expected.ir.fxc.hlsl
@@ -1,3 +1,4 @@
+
 void f() {
   float a = 1.0f;
   float b = 1.0f;
diff --git a/test/tint/expressions/swizzle/read/packed_vec3/f16.wgsl.expected.ir.dxc.hlsl b/test/tint/expressions/swizzle/read/packed_vec3/f16.wgsl.expected.ir.dxc.hlsl
index 3f437dc..8c6f20c 100644
--- a/test/tint/expressions/swizzle/read/packed_vec3/f16.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/expressions/swizzle/read/packed_vec3/f16.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,144 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Access
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+cbuffer cbuffer_U : register(b0) {
+  uint4 U[1];
+};
+vector<float16_t, 4> tint_bitcast_to_f16(uint4 src) {
+  uint4 v = src;
+  uint4 mask = (65535u).xxxx;
+  uint4 shift = (16u).xxxx;
+  float4 t_low = f16tof32((v & mask));
+  float4 t_high = f16tof32(((v >> shift) & mask));
+  float16_t v_1 = float16_t(t_low.x);
+  float16_t v_2 = float16_t(t_high.x);
+  float16_t v_3 = float16_t(t_low.y);
+  return vector<float16_t, 4>(v_1, v_2, v_3, float16_t(t_high.y));
+}
+
+void f() {
+  vector<float16_t, 3> v = tint_bitcast_to_f16(U[0u]).xyz;
+  float16_t x = float16_t(f16tof32(U[0u].x));
+  float16_t y = float16_t(f16tof32((U[0u].x >> 16u)));
+  float16_t z = float16_t(f16tof32(U[0u].y));
+  vector<float16_t, 2> xx = tint_bitcast_to_f16(U[0u]).xyz.xx;
+  vector<float16_t, 2> xy = tint_bitcast_to_f16(U[0u]).xyz.xy;
+  vector<float16_t, 2> xz = tint_bitcast_to_f16(U[0u]).xyz.xz;
+  vector<float16_t, 2> yx = tint_bitcast_to_f16(U[0u]).xyz.yx;
+  vector<float16_t, 2> yy = tint_bitcast_to_f16(U[0u]).xyz.yy;
+  vector<float16_t, 2> yz = tint_bitcast_to_f16(U[0u]).xyz.yz;
+  vector<float16_t, 2> zx = tint_bitcast_to_f16(U[0u]).xyz.zx;
+  vector<float16_t, 2> zy = tint_bitcast_to_f16(U[0u]).xyz.zy;
+  vector<float16_t, 2> zz = tint_bitcast_to_f16(U[0u]).xyz.zz;
+  vector<float16_t, 3> xxx = tint_bitcast_to_f16(U[0u]).xyz.xxx;
+  vector<float16_t, 3> xxy = tint_bitcast_to_f16(U[0u]).xyz.xxy;
+  vector<float16_t, 3> xxz = tint_bitcast_to_f16(U[0u]).xyz.xxz;
+  vector<float16_t, 3> xyx = tint_bitcast_to_f16(U[0u]).xyz.xyx;
+  vector<float16_t, 3> xyy = tint_bitcast_to_f16(U[0u]).xyz.xyy;
+  vector<float16_t, 3> xyz = tint_bitcast_to_f16(U[0u]).xyz.xyz;
+  vector<float16_t, 3> xzx = tint_bitcast_to_f16(U[0u]).xyz.xzx;
+  vector<float16_t, 3> xzy = tint_bitcast_to_f16(U[0u]).xyz.xzy;
+  vector<float16_t, 3> xzz = tint_bitcast_to_f16(U[0u]).xyz.xzz;
+  vector<float16_t, 3> yxx = tint_bitcast_to_f16(U[0u]).xyz.yxx;
+  vector<float16_t, 3> yxy = tint_bitcast_to_f16(U[0u]).xyz.yxy;
+  vector<float16_t, 3> yxz = tint_bitcast_to_f16(U[0u]).xyz.yxz;
+  vector<float16_t, 3> yyx = tint_bitcast_to_f16(U[0u]).xyz.yyx;
+  vector<float16_t, 3> yyy = tint_bitcast_to_f16(U[0u]).xyz.yyy;
+  vector<float16_t, 3> yyz = tint_bitcast_to_f16(U[0u]).xyz.yyz;
+  vector<float16_t, 3> yzx = tint_bitcast_to_f16(U[0u]).xyz.yzx;
+  vector<float16_t, 3> yzy = tint_bitcast_to_f16(U[0u]).xyz.yzy;
+  vector<float16_t, 3> yzz = tint_bitcast_to_f16(U[0u]).xyz.yzz;
+  vector<float16_t, 3> zxx = tint_bitcast_to_f16(U[0u]).xyz.zxx;
+  vector<float16_t, 3> zxy = tint_bitcast_to_f16(U[0u]).xyz.zxy;
+  vector<float16_t, 3> zxz = tint_bitcast_to_f16(U[0u]).xyz.zxz;
+  vector<float16_t, 3> zyx = tint_bitcast_to_f16(U[0u]).xyz.zyx;
+  vector<float16_t, 3> zyy = tint_bitcast_to_f16(U[0u]).xyz.zyy;
+  vector<float16_t, 3> zyz = tint_bitcast_to_f16(U[0u]).xyz.zyz;
+  vector<float16_t, 3> zzx = tint_bitcast_to_f16(U[0u]).xyz.zzx;
+  vector<float16_t, 3> zzy = tint_bitcast_to_f16(U[0u]).xyz.zzy;
+  vector<float16_t, 3> zzz = tint_bitcast_to_f16(U[0u]).xyz.zzz;
+  vector<float16_t, 4> xxxx = tint_bitcast_to_f16(U[0u]).xyz.xxxx;
+  vector<float16_t, 4> xxxy = tint_bitcast_to_f16(U[0u]).xyz.xxxy;
+  vector<float16_t, 4> xxxz = tint_bitcast_to_f16(U[0u]).xyz.xxxz;
+  vector<float16_t, 4> xxyx = tint_bitcast_to_f16(U[0u]).xyz.xxyx;
+  vector<float16_t, 4> xxyy = tint_bitcast_to_f16(U[0u]).xyz.xxyy;
+  vector<float16_t, 4> xxyz = tint_bitcast_to_f16(U[0u]).xyz.xxyz;
+  vector<float16_t, 4> xxzx = tint_bitcast_to_f16(U[0u]).xyz.xxzx;
+  vector<float16_t, 4> xxzy = tint_bitcast_to_f16(U[0u]).xyz.xxzy;
+  vector<float16_t, 4> xxzz = tint_bitcast_to_f16(U[0u]).xyz.xxzz;
+  vector<float16_t, 4> xyxx = tint_bitcast_to_f16(U[0u]).xyz.xyxx;
+  vector<float16_t, 4> xyxy = tint_bitcast_to_f16(U[0u]).xyz.xyxy;
+  vector<float16_t, 4> xyxz = tint_bitcast_to_f16(U[0u]).xyz.xyxz;
+  vector<float16_t, 4> xyyx = tint_bitcast_to_f16(U[0u]).xyz.xyyx;
+  vector<float16_t, 4> xyyy = tint_bitcast_to_f16(U[0u]).xyz.xyyy;
+  vector<float16_t, 4> xyyz = tint_bitcast_to_f16(U[0u]).xyz.xyyz;
+  vector<float16_t, 4> xyzx = tint_bitcast_to_f16(U[0u]).xyz.xyzx;
+  vector<float16_t, 4> xyzy = tint_bitcast_to_f16(U[0u]).xyz.xyzy;
+  vector<float16_t, 4> xyzz = tint_bitcast_to_f16(U[0u]).xyz.xyzz;
+  vector<float16_t, 4> xzxx = tint_bitcast_to_f16(U[0u]).xyz.xzxx;
+  vector<float16_t, 4> xzxy = tint_bitcast_to_f16(U[0u]).xyz.xzxy;
+  vector<float16_t, 4> xzxz = tint_bitcast_to_f16(U[0u]).xyz.xzxz;
+  vector<float16_t, 4> xzyx = tint_bitcast_to_f16(U[0u]).xyz.xzyx;
+  vector<float16_t, 4> xzyy = tint_bitcast_to_f16(U[0u]).xyz.xzyy;
+  vector<float16_t, 4> xzyz = tint_bitcast_to_f16(U[0u]).xyz.xzyz;
+  vector<float16_t, 4> xzzx = tint_bitcast_to_f16(U[0u]).xyz.xzzx;
+  vector<float16_t, 4> xzzy = tint_bitcast_to_f16(U[0u]).xyz.xzzy;
+  vector<float16_t, 4> xzzz = tint_bitcast_to_f16(U[0u]).xyz.xzzz;
+  vector<float16_t, 4> yxxx = tint_bitcast_to_f16(U[0u]).xyz.yxxx;
+  vector<float16_t, 4> yxxy = tint_bitcast_to_f16(U[0u]).xyz.yxxy;
+  vector<float16_t, 4> yxxz = tint_bitcast_to_f16(U[0u]).xyz.yxxz;
+  vector<float16_t, 4> yxyx = tint_bitcast_to_f16(U[0u]).xyz.yxyx;
+  vector<float16_t, 4> yxyy = tint_bitcast_to_f16(U[0u]).xyz.yxyy;
+  vector<float16_t, 4> yxyz = tint_bitcast_to_f16(U[0u]).xyz.yxyz;
+  vector<float16_t, 4> yxzx = tint_bitcast_to_f16(U[0u]).xyz.yxzx;
+  vector<float16_t, 4> yxzy = tint_bitcast_to_f16(U[0u]).xyz.yxzy;
+  vector<float16_t, 4> yxzz = tint_bitcast_to_f16(U[0u]).xyz.yxzz;
+  vector<float16_t, 4> yyxx = tint_bitcast_to_f16(U[0u]).xyz.yyxx;
+  vector<float16_t, 4> yyxy = tint_bitcast_to_f16(U[0u]).xyz.yyxy;
+  vector<float16_t, 4> yyxz = tint_bitcast_to_f16(U[0u]).xyz.yyxz;
+  vector<float16_t, 4> yyyx = tint_bitcast_to_f16(U[0u]).xyz.yyyx;
+  vector<float16_t, 4> yyyy = tint_bitcast_to_f16(U[0u]).xyz.yyyy;
+  vector<float16_t, 4> yyyz = tint_bitcast_to_f16(U[0u]).xyz.yyyz;
+  vector<float16_t, 4> yyzx = tint_bitcast_to_f16(U[0u]).xyz.yyzx;
+  vector<float16_t, 4> yyzy = tint_bitcast_to_f16(U[0u]).xyz.yyzy;
+  vector<float16_t, 4> yyzz = tint_bitcast_to_f16(U[0u]).xyz.yyzz;
+  vector<float16_t, 4> yzxx = tint_bitcast_to_f16(U[0u]).xyz.yzxx;
+  vector<float16_t, 4> yzxy = tint_bitcast_to_f16(U[0u]).xyz.yzxy;
+  vector<float16_t, 4> yzxz = tint_bitcast_to_f16(U[0u]).xyz.yzxz;
+  vector<float16_t, 4> yzyx = tint_bitcast_to_f16(U[0u]).xyz.yzyx;
+  vector<float16_t, 4> yzyy = tint_bitcast_to_f16(U[0u]).xyz.yzyy;
+  vector<float16_t, 4> yzyz = tint_bitcast_to_f16(U[0u]).xyz.yzyz;
+  vector<float16_t, 4> yzzx = tint_bitcast_to_f16(U[0u]).xyz.yzzx;
+  vector<float16_t, 4> yzzy = tint_bitcast_to_f16(U[0u]).xyz.yzzy;
+  vector<float16_t, 4> yzzz = tint_bitcast_to_f16(U[0u]).xyz.yzzz;
+  vector<float16_t, 4> zxxx = tint_bitcast_to_f16(U[0u]).xyz.zxxx;
+  vector<float16_t, 4> zxxy = tint_bitcast_to_f16(U[0u]).xyz.zxxy;
+  vector<float16_t, 4> zxxz = tint_bitcast_to_f16(U[0u]).xyz.zxxz;
+  vector<float16_t, 4> zxyx = tint_bitcast_to_f16(U[0u]).xyz.zxyx;
+  vector<float16_t, 4> zxyy = tint_bitcast_to_f16(U[0u]).xyz.zxyy;
+  vector<float16_t, 4> zxyz = tint_bitcast_to_f16(U[0u]).xyz.zxyz;
+  vector<float16_t, 4> zxzx = tint_bitcast_to_f16(U[0u]).xyz.zxzx;
+  vector<float16_t, 4> zxzy = tint_bitcast_to_f16(U[0u]).xyz.zxzy;
+  vector<float16_t, 4> zxzz = tint_bitcast_to_f16(U[0u]).xyz.zxzz;
+  vector<float16_t, 4> zyxx = tint_bitcast_to_f16(U[0u]).xyz.zyxx;
+  vector<float16_t, 4> zyxy = tint_bitcast_to_f16(U[0u]).xyz.zyxy;
+  vector<float16_t, 4> zyxz = tint_bitcast_to_f16(U[0u]).xyz.zyxz;
+  vector<float16_t, 4> zyyx = tint_bitcast_to_f16(U[0u]).xyz.zyyx;
+  vector<float16_t, 4> zyyy = tint_bitcast_to_f16(U[0u]).xyz.zyyy;
+  vector<float16_t, 4> zyyz = tint_bitcast_to_f16(U[0u]).xyz.zyyz;
+  vector<float16_t, 4> zyzx = tint_bitcast_to_f16(U[0u]).xyz.zyzx;
+  vector<float16_t, 4> zyzy = tint_bitcast_to_f16(U[0u]).xyz.zyzy;
+  vector<float16_t, 4> zyzz = tint_bitcast_to_f16(U[0u]).xyz.zyzz;
+  vector<float16_t, 4> zzxx = tint_bitcast_to_f16(U[0u]).xyz.zzxx;
+  vector<float16_t, 4> zzxy = tint_bitcast_to_f16(U[0u]).xyz.zzxy;
+  vector<float16_t, 4> zzxz = tint_bitcast_to_f16(U[0u]).xyz.zzxz;
+  vector<float16_t, 4> zzyx = tint_bitcast_to_f16(U[0u]).xyz.zzyx;
+  vector<float16_t, 4> zzyy = tint_bitcast_to_f16(U[0u]).xyz.zzyy;
+  vector<float16_t, 4> zzyz = tint_bitcast_to_f16(U[0u]).xyz.zzyz;
+  vector<float16_t, 4> zzzx = tint_bitcast_to_f16(U[0u]).xyz.zzzx;
+  vector<float16_t, 4> zzzy = tint_bitcast_to_f16(U[0u]).xyz.zzzy;
+  vector<float16_t, 4> zzzz = tint_bitcast_to_f16(U[0u]).xyz.zzzz;
+}
+
+[numthreads(1, 1, 1)]
+void unused_entry_point() {
+}
+
diff --git a/test/tint/expressions/swizzle/read/packed_vec3/f16.wgsl.expected.ir.fxc.hlsl b/test/tint/expressions/swizzle/read/packed_vec3/f16.wgsl.expected.ir.fxc.hlsl
index 3f437dc..389e5bc 100644
--- a/test/tint/expressions/swizzle/read/packed_vec3/f16.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/expressions/swizzle/read/packed_vec3/f16.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,149 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Access
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+
+cbuffer cbuffer_U : register(b0) {
+  uint4 U[1];
+};
+vector<float16_t, 4> tint_bitcast_to_f16(uint4 src) {
+  uint4 v = src;
+  uint4 mask = (65535u).xxxx;
+  uint4 shift = (16u).xxxx;
+  float4 t_low = f16tof32((v & mask));
+  float4 t_high = f16tof32(((v >> shift) & mask));
+  float16_t v_1 = float16_t(t_low.x);
+  float16_t v_2 = float16_t(t_high.x);
+  float16_t v_3 = float16_t(t_low.y);
+  return vector<float16_t, 4>(v_1, v_2, v_3, float16_t(t_high.y));
+}
+
+void f() {
+  vector<float16_t, 3> v = tint_bitcast_to_f16(U[0u]).xyz;
+  float16_t x = float16_t(f16tof32(U[0u].x));
+  float16_t y = float16_t(f16tof32((U[0u].x >> 16u)));
+  float16_t z = float16_t(f16tof32(U[0u].y));
+  vector<float16_t, 2> xx = tint_bitcast_to_f16(U[0u]).xyz.xx;
+  vector<float16_t, 2> xy = tint_bitcast_to_f16(U[0u]).xyz.xy;
+  vector<float16_t, 2> xz = tint_bitcast_to_f16(U[0u]).xyz.xz;
+  vector<float16_t, 2> yx = tint_bitcast_to_f16(U[0u]).xyz.yx;
+  vector<float16_t, 2> yy = tint_bitcast_to_f16(U[0u]).xyz.yy;
+  vector<float16_t, 2> yz = tint_bitcast_to_f16(U[0u]).xyz.yz;
+  vector<float16_t, 2> zx = tint_bitcast_to_f16(U[0u]).xyz.zx;
+  vector<float16_t, 2> zy = tint_bitcast_to_f16(U[0u]).xyz.zy;
+  vector<float16_t, 2> zz = tint_bitcast_to_f16(U[0u]).xyz.zz;
+  vector<float16_t, 3> xxx = tint_bitcast_to_f16(U[0u]).xyz.xxx;
+  vector<float16_t, 3> xxy = tint_bitcast_to_f16(U[0u]).xyz.xxy;
+  vector<float16_t, 3> xxz = tint_bitcast_to_f16(U[0u]).xyz.xxz;
+  vector<float16_t, 3> xyx = tint_bitcast_to_f16(U[0u]).xyz.xyx;
+  vector<float16_t, 3> xyy = tint_bitcast_to_f16(U[0u]).xyz.xyy;
+  vector<float16_t, 3> xyz = tint_bitcast_to_f16(U[0u]).xyz.xyz;
+  vector<float16_t, 3> xzx = tint_bitcast_to_f16(U[0u]).xyz.xzx;
+  vector<float16_t, 3> xzy = tint_bitcast_to_f16(U[0u]).xyz.xzy;
+  vector<float16_t, 3> xzz = tint_bitcast_to_f16(U[0u]).xyz.xzz;
+  vector<float16_t, 3> yxx = tint_bitcast_to_f16(U[0u]).xyz.yxx;
+  vector<float16_t, 3> yxy = tint_bitcast_to_f16(U[0u]).xyz.yxy;
+  vector<float16_t, 3> yxz = tint_bitcast_to_f16(U[0u]).xyz.yxz;
+  vector<float16_t, 3> yyx = tint_bitcast_to_f16(U[0u]).xyz.yyx;
+  vector<float16_t, 3> yyy = tint_bitcast_to_f16(U[0u]).xyz.yyy;
+  vector<float16_t, 3> yyz = tint_bitcast_to_f16(U[0u]).xyz.yyz;
+  vector<float16_t, 3> yzx = tint_bitcast_to_f16(U[0u]).xyz.yzx;
+  vector<float16_t, 3> yzy = tint_bitcast_to_f16(U[0u]).xyz.yzy;
+  vector<float16_t, 3> yzz = tint_bitcast_to_f16(U[0u]).xyz.yzz;
+  vector<float16_t, 3> zxx = tint_bitcast_to_f16(U[0u]).xyz.zxx;
+  vector<float16_t, 3> zxy = tint_bitcast_to_f16(U[0u]).xyz.zxy;
+  vector<float16_t, 3> zxz = tint_bitcast_to_f16(U[0u]).xyz.zxz;
+  vector<float16_t, 3> zyx = tint_bitcast_to_f16(U[0u]).xyz.zyx;
+  vector<float16_t, 3> zyy = tint_bitcast_to_f16(U[0u]).xyz.zyy;
+  vector<float16_t, 3> zyz = tint_bitcast_to_f16(U[0u]).xyz.zyz;
+  vector<float16_t, 3> zzx = tint_bitcast_to_f16(U[0u]).xyz.zzx;
+  vector<float16_t, 3> zzy = tint_bitcast_to_f16(U[0u]).xyz.zzy;
+  vector<float16_t, 3> zzz = tint_bitcast_to_f16(U[0u]).xyz.zzz;
+  vector<float16_t, 4> xxxx = tint_bitcast_to_f16(U[0u]).xyz.xxxx;
+  vector<float16_t, 4> xxxy = tint_bitcast_to_f16(U[0u]).xyz.xxxy;
+  vector<float16_t, 4> xxxz = tint_bitcast_to_f16(U[0u]).xyz.xxxz;
+  vector<float16_t, 4> xxyx = tint_bitcast_to_f16(U[0u]).xyz.xxyx;
+  vector<float16_t, 4> xxyy = tint_bitcast_to_f16(U[0u]).xyz.xxyy;
+  vector<float16_t, 4> xxyz = tint_bitcast_to_f16(U[0u]).xyz.xxyz;
+  vector<float16_t, 4> xxzx = tint_bitcast_to_f16(U[0u]).xyz.xxzx;
+  vector<float16_t, 4> xxzy = tint_bitcast_to_f16(U[0u]).xyz.xxzy;
+  vector<float16_t, 4> xxzz = tint_bitcast_to_f16(U[0u]).xyz.xxzz;
+  vector<float16_t, 4> xyxx = tint_bitcast_to_f16(U[0u]).xyz.xyxx;
+  vector<float16_t, 4> xyxy = tint_bitcast_to_f16(U[0u]).xyz.xyxy;
+  vector<float16_t, 4> xyxz = tint_bitcast_to_f16(U[0u]).xyz.xyxz;
+  vector<float16_t, 4> xyyx = tint_bitcast_to_f16(U[0u]).xyz.xyyx;
+  vector<float16_t, 4> xyyy = tint_bitcast_to_f16(U[0u]).xyz.xyyy;
+  vector<float16_t, 4> xyyz = tint_bitcast_to_f16(U[0u]).xyz.xyyz;
+  vector<float16_t, 4> xyzx = tint_bitcast_to_f16(U[0u]).xyz.xyzx;
+  vector<float16_t, 4> xyzy = tint_bitcast_to_f16(U[0u]).xyz.xyzy;
+  vector<float16_t, 4> xyzz = tint_bitcast_to_f16(U[0u]).xyz.xyzz;
+  vector<float16_t, 4> xzxx = tint_bitcast_to_f16(U[0u]).xyz.xzxx;
+  vector<float16_t, 4> xzxy = tint_bitcast_to_f16(U[0u]).xyz.xzxy;
+  vector<float16_t, 4> xzxz = tint_bitcast_to_f16(U[0u]).xyz.xzxz;
+  vector<float16_t, 4> xzyx = tint_bitcast_to_f16(U[0u]).xyz.xzyx;
+  vector<float16_t, 4> xzyy = tint_bitcast_to_f16(U[0u]).xyz.xzyy;
+  vector<float16_t, 4> xzyz = tint_bitcast_to_f16(U[0u]).xyz.xzyz;
+  vector<float16_t, 4> xzzx = tint_bitcast_to_f16(U[0u]).xyz.xzzx;
+  vector<float16_t, 4> xzzy = tint_bitcast_to_f16(U[0u]).xyz.xzzy;
+  vector<float16_t, 4> xzzz = tint_bitcast_to_f16(U[0u]).xyz.xzzz;
+  vector<float16_t, 4> yxxx = tint_bitcast_to_f16(U[0u]).xyz.yxxx;
+  vector<float16_t, 4> yxxy = tint_bitcast_to_f16(U[0u]).xyz.yxxy;
+  vector<float16_t, 4> yxxz = tint_bitcast_to_f16(U[0u]).xyz.yxxz;
+  vector<float16_t, 4> yxyx = tint_bitcast_to_f16(U[0u]).xyz.yxyx;
+  vector<float16_t, 4> yxyy = tint_bitcast_to_f16(U[0u]).xyz.yxyy;
+  vector<float16_t, 4> yxyz = tint_bitcast_to_f16(U[0u]).xyz.yxyz;
+  vector<float16_t, 4> yxzx = tint_bitcast_to_f16(U[0u]).xyz.yxzx;
+  vector<float16_t, 4> yxzy = tint_bitcast_to_f16(U[0u]).xyz.yxzy;
+  vector<float16_t, 4> yxzz = tint_bitcast_to_f16(U[0u]).xyz.yxzz;
+  vector<float16_t, 4> yyxx = tint_bitcast_to_f16(U[0u]).xyz.yyxx;
+  vector<float16_t, 4> yyxy = tint_bitcast_to_f16(U[0u]).xyz.yyxy;
+  vector<float16_t, 4> yyxz = tint_bitcast_to_f16(U[0u]).xyz.yyxz;
+  vector<float16_t, 4> yyyx = tint_bitcast_to_f16(U[0u]).xyz.yyyx;
+  vector<float16_t, 4> yyyy = tint_bitcast_to_f16(U[0u]).xyz.yyyy;
+  vector<float16_t, 4> yyyz = tint_bitcast_to_f16(U[0u]).xyz.yyyz;
+  vector<float16_t, 4> yyzx = tint_bitcast_to_f16(U[0u]).xyz.yyzx;
+  vector<float16_t, 4> yyzy = tint_bitcast_to_f16(U[0u]).xyz.yyzy;
+  vector<float16_t, 4> yyzz = tint_bitcast_to_f16(U[0u]).xyz.yyzz;
+  vector<float16_t, 4> yzxx = tint_bitcast_to_f16(U[0u]).xyz.yzxx;
+  vector<float16_t, 4> yzxy = tint_bitcast_to_f16(U[0u]).xyz.yzxy;
+  vector<float16_t, 4> yzxz = tint_bitcast_to_f16(U[0u]).xyz.yzxz;
+  vector<float16_t, 4> yzyx = tint_bitcast_to_f16(U[0u]).xyz.yzyx;
+  vector<float16_t, 4> yzyy = tint_bitcast_to_f16(U[0u]).xyz.yzyy;
+  vector<float16_t, 4> yzyz = tint_bitcast_to_f16(U[0u]).xyz.yzyz;
+  vector<float16_t, 4> yzzx = tint_bitcast_to_f16(U[0u]).xyz.yzzx;
+  vector<float16_t, 4> yzzy = tint_bitcast_to_f16(U[0u]).xyz.yzzy;
+  vector<float16_t, 4> yzzz = tint_bitcast_to_f16(U[0u]).xyz.yzzz;
+  vector<float16_t, 4> zxxx = tint_bitcast_to_f16(U[0u]).xyz.zxxx;
+  vector<float16_t, 4> zxxy = tint_bitcast_to_f16(U[0u]).xyz.zxxy;
+  vector<float16_t, 4> zxxz = tint_bitcast_to_f16(U[0u]).xyz.zxxz;
+  vector<float16_t, 4> zxyx = tint_bitcast_to_f16(U[0u]).xyz.zxyx;
+  vector<float16_t, 4> zxyy = tint_bitcast_to_f16(U[0u]).xyz.zxyy;
+  vector<float16_t, 4> zxyz = tint_bitcast_to_f16(U[0u]).xyz.zxyz;
+  vector<float16_t, 4> zxzx = tint_bitcast_to_f16(U[0u]).xyz.zxzx;
+  vector<float16_t, 4> zxzy = tint_bitcast_to_f16(U[0u]).xyz.zxzy;
+  vector<float16_t, 4> zxzz = tint_bitcast_to_f16(U[0u]).xyz.zxzz;
+  vector<float16_t, 4> zyxx = tint_bitcast_to_f16(U[0u]).xyz.zyxx;
+  vector<float16_t, 4> zyxy = tint_bitcast_to_f16(U[0u]).xyz.zyxy;
+  vector<float16_t, 4> zyxz = tint_bitcast_to_f16(U[0u]).xyz.zyxz;
+  vector<float16_t, 4> zyyx = tint_bitcast_to_f16(U[0u]).xyz.zyyx;
+  vector<float16_t, 4> zyyy = tint_bitcast_to_f16(U[0u]).xyz.zyyy;
+  vector<float16_t, 4> zyyz = tint_bitcast_to_f16(U[0u]).xyz.zyyz;
+  vector<float16_t, 4> zyzx = tint_bitcast_to_f16(U[0u]).xyz.zyzx;
+  vector<float16_t, 4> zyzy = tint_bitcast_to_f16(U[0u]).xyz.zyzy;
+  vector<float16_t, 4> zyzz = tint_bitcast_to_f16(U[0u]).xyz.zyzz;
+  vector<float16_t, 4> zzxx = tint_bitcast_to_f16(U[0u]).xyz.zzxx;
+  vector<float16_t, 4> zzxy = tint_bitcast_to_f16(U[0u]).xyz.zzxy;
+  vector<float16_t, 4> zzxz = tint_bitcast_to_f16(U[0u]).xyz.zzxz;
+  vector<float16_t, 4> zzyx = tint_bitcast_to_f16(U[0u]).xyz.zzyx;
+  vector<float16_t, 4> zzyy = tint_bitcast_to_f16(U[0u]).xyz.zzyy;
+  vector<float16_t, 4> zzyz = tint_bitcast_to_f16(U[0u]).xyz.zzyz;
+  vector<float16_t, 4> zzzx = tint_bitcast_to_f16(U[0u]).xyz.zzzx;
+  vector<float16_t, 4> zzzy = tint_bitcast_to_f16(U[0u]).xyz.zzzy;
+  vector<float16_t, 4> zzzz = tint_bitcast_to_f16(U[0u]).xyz.zzzz;
+}
+
+[numthreads(1, 1, 1)]
+void unused_entry_point() {
+}
+
+FXC validation failure:
+c:\src\dawn\Shader@0x0000027275BF6070(5,8-16): error X3000: syntax error: unexpected token 'float16_t'
+
diff --git a/test/tint/expressions/swizzle/read/packed_vec3/f32.wgsl.expected.ir.dxc.hlsl b/test/tint/expressions/swizzle/read/packed_vec3/f32.wgsl.expected.ir.dxc.hlsl
index 3f437dc..9ca1143 100644
--- a/test/tint/expressions/swizzle/read/packed_vec3/f32.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/expressions/swizzle/read/packed_vec3/f32.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,132 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Access
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+cbuffer cbuffer_U : register(b0) {
+  uint4 U[1];
+};
+void f() {
+  float3 v = asfloat(U[0u].xyz);
+  float x = asfloat(U[0u].x);
+  float y = asfloat(U[0u].y);
+  float z = asfloat(U[0u].z);
+  float2 xx = asfloat(U[0u].xyz).xx;
+  float2 xy = asfloat(U[0u].xyz).xy;
+  float2 xz = asfloat(U[0u].xyz).xz;
+  float2 yx = asfloat(U[0u].xyz).yx;
+  float2 yy = asfloat(U[0u].xyz).yy;
+  float2 yz = asfloat(U[0u].xyz).yz;
+  float2 zx = asfloat(U[0u].xyz).zx;
+  float2 zy = asfloat(U[0u].xyz).zy;
+  float2 zz = asfloat(U[0u].xyz).zz;
+  float3 xxx = asfloat(U[0u].xyz).xxx;
+  float3 xxy = asfloat(U[0u].xyz).xxy;
+  float3 xxz = asfloat(U[0u].xyz).xxz;
+  float3 xyx = asfloat(U[0u].xyz).xyx;
+  float3 xyy = asfloat(U[0u].xyz).xyy;
+  float3 xyz = asfloat(U[0u].xyz).xyz;
+  float3 xzx = asfloat(U[0u].xyz).xzx;
+  float3 xzy = asfloat(U[0u].xyz).xzy;
+  float3 xzz = asfloat(U[0u].xyz).xzz;
+  float3 yxx = asfloat(U[0u].xyz).yxx;
+  float3 yxy = asfloat(U[0u].xyz).yxy;
+  float3 yxz = asfloat(U[0u].xyz).yxz;
+  float3 yyx = asfloat(U[0u].xyz).yyx;
+  float3 yyy = asfloat(U[0u].xyz).yyy;
+  float3 yyz = asfloat(U[0u].xyz).yyz;
+  float3 yzx = asfloat(U[0u].xyz).yzx;
+  float3 yzy = asfloat(U[0u].xyz).yzy;
+  float3 yzz = asfloat(U[0u].xyz).yzz;
+  float3 zxx = asfloat(U[0u].xyz).zxx;
+  float3 zxy = asfloat(U[0u].xyz).zxy;
+  float3 zxz = asfloat(U[0u].xyz).zxz;
+  float3 zyx = asfloat(U[0u].xyz).zyx;
+  float3 zyy = asfloat(U[0u].xyz).zyy;
+  float3 zyz = asfloat(U[0u].xyz).zyz;
+  float3 zzx = asfloat(U[0u].xyz).zzx;
+  float3 zzy = asfloat(U[0u].xyz).zzy;
+  float3 zzz = asfloat(U[0u].xyz).zzz;
+  float4 xxxx = asfloat(U[0u].xyz).xxxx;
+  float4 xxxy = asfloat(U[0u].xyz).xxxy;
+  float4 xxxz = asfloat(U[0u].xyz).xxxz;
+  float4 xxyx = asfloat(U[0u].xyz).xxyx;
+  float4 xxyy = asfloat(U[0u].xyz).xxyy;
+  float4 xxyz = asfloat(U[0u].xyz).xxyz;
+  float4 xxzx = asfloat(U[0u].xyz).xxzx;
+  float4 xxzy = asfloat(U[0u].xyz).xxzy;
+  float4 xxzz = asfloat(U[0u].xyz).xxzz;
+  float4 xyxx = asfloat(U[0u].xyz).xyxx;
+  float4 xyxy = asfloat(U[0u].xyz).xyxy;
+  float4 xyxz = asfloat(U[0u].xyz).xyxz;
+  float4 xyyx = asfloat(U[0u].xyz).xyyx;
+  float4 xyyy = asfloat(U[0u].xyz).xyyy;
+  float4 xyyz = asfloat(U[0u].xyz).xyyz;
+  float4 xyzx = asfloat(U[0u].xyz).xyzx;
+  float4 xyzy = asfloat(U[0u].xyz).xyzy;
+  float4 xyzz = asfloat(U[0u].xyz).xyzz;
+  float4 xzxx = asfloat(U[0u].xyz).xzxx;
+  float4 xzxy = asfloat(U[0u].xyz).xzxy;
+  float4 xzxz = asfloat(U[0u].xyz).xzxz;
+  float4 xzyx = asfloat(U[0u].xyz).xzyx;
+  float4 xzyy = asfloat(U[0u].xyz).xzyy;
+  float4 xzyz = asfloat(U[0u].xyz).xzyz;
+  float4 xzzx = asfloat(U[0u].xyz).xzzx;
+  float4 xzzy = asfloat(U[0u].xyz).xzzy;
+  float4 xzzz = asfloat(U[0u].xyz).xzzz;
+  float4 yxxx = asfloat(U[0u].xyz).yxxx;
+  float4 yxxy = asfloat(U[0u].xyz).yxxy;
+  float4 yxxz = asfloat(U[0u].xyz).yxxz;
+  float4 yxyx = asfloat(U[0u].xyz).yxyx;
+  float4 yxyy = asfloat(U[0u].xyz).yxyy;
+  float4 yxyz = asfloat(U[0u].xyz).yxyz;
+  float4 yxzx = asfloat(U[0u].xyz).yxzx;
+  float4 yxzy = asfloat(U[0u].xyz).yxzy;
+  float4 yxzz = asfloat(U[0u].xyz).yxzz;
+  float4 yyxx = asfloat(U[0u].xyz).yyxx;
+  float4 yyxy = asfloat(U[0u].xyz).yyxy;
+  float4 yyxz = asfloat(U[0u].xyz).yyxz;
+  float4 yyyx = asfloat(U[0u].xyz).yyyx;
+  float4 yyyy = asfloat(U[0u].xyz).yyyy;
+  float4 yyyz = asfloat(U[0u].xyz).yyyz;
+  float4 yyzx = asfloat(U[0u].xyz).yyzx;
+  float4 yyzy = asfloat(U[0u].xyz).yyzy;
+  float4 yyzz = asfloat(U[0u].xyz).yyzz;
+  float4 yzxx = asfloat(U[0u].xyz).yzxx;
+  float4 yzxy = asfloat(U[0u].xyz).yzxy;
+  float4 yzxz = asfloat(U[0u].xyz).yzxz;
+  float4 yzyx = asfloat(U[0u].xyz).yzyx;
+  float4 yzyy = asfloat(U[0u].xyz).yzyy;
+  float4 yzyz = asfloat(U[0u].xyz).yzyz;
+  float4 yzzx = asfloat(U[0u].xyz).yzzx;
+  float4 yzzy = asfloat(U[0u].xyz).yzzy;
+  float4 yzzz = asfloat(U[0u].xyz).yzzz;
+  float4 zxxx = asfloat(U[0u].xyz).zxxx;
+  float4 zxxy = asfloat(U[0u].xyz).zxxy;
+  float4 zxxz = asfloat(U[0u].xyz).zxxz;
+  float4 zxyx = asfloat(U[0u].xyz).zxyx;
+  float4 zxyy = asfloat(U[0u].xyz).zxyy;
+  float4 zxyz = asfloat(U[0u].xyz).zxyz;
+  float4 zxzx = asfloat(U[0u].xyz).zxzx;
+  float4 zxzy = asfloat(U[0u].xyz).zxzy;
+  float4 zxzz = asfloat(U[0u].xyz).zxzz;
+  float4 zyxx = asfloat(U[0u].xyz).zyxx;
+  float4 zyxy = asfloat(U[0u].xyz).zyxy;
+  float4 zyxz = asfloat(U[0u].xyz).zyxz;
+  float4 zyyx = asfloat(U[0u].xyz).zyyx;
+  float4 zyyy = asfloat(U[0u].xyz).zyyy;
+  float4 zyyz = asfloat(U[0u].xyz).zyyz;
+  float4 zyzx = asfloat(U[0u].xyz).zyzx;
+  float4 zyzy = asfloat(U[0u].xyz).zyzy;
+  float4 zyzz = asfloat(U[0u].xyz).zyzz;
+  float4 zzxx = asfloat(U[0u].xyz).zzxx;
+  float4 zzxy = asfloat(U[0u].xyz).zzxy;
+  float4 zzxz = asfloat(U[0u].xyz).zzxz;
+  float4 zzyx = asfloat(U[0u].xyz).zzyx;
+  float4 zzyy = asfloat(U[0u].xyz).zzyy;
+  float4 zzyz = asfloat(U[0u].xyz).zzyz;
+  float4 zzzx = asfloat(U[0u].xyz).zzzx;
+  float4 zzzy = asfloat(U[0u].xyz).zzzy;
+  float4 zzzz = asfloat(U[0u].xyz).zzzz;
+}
+
+[numthreads(1, 1, 1)]
+void unused_entry_point() {
+}
+
diff --git a/test/tint/expressions/swizzle/read/packed_vec3/f32.wgsl.expected.ir.fxc.hlsl b/test/tint/expressions/swizzle/read/packed_vec3/f32.wgsl.expected.ir.fxc.hlsl
index 3f437dc..9ca1143 100644
--- a/test/tint/expressions/swizzle/read/packed_vec3/f32.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/expressions/swizzle/read/packed_vec3/f32.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,132 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Access
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+cbuffer cbuffer_U : register(b0) {
+  uint4 U[1];
+};
+void f() {
+  float3 v = asfloat(U[0u].xyz);
+  float x = asfloat(U[0u].x);
+  float y = asfloat(U[0u].y);
+  float z = asfloat(U[0u].z);
+  float2 xx = asfloat(U[0u].xyz).xx;
+  float2 xy = asfloat(U[0u].xyz).xy;
+  float2 xz = asfloat(U[0u].xyz).xz;
+  float2 yx = asfloat(U[0u].xyz).yx;
+  float2 yy = asfloat(U[0u].xyz).yy;
+  float2 yz = asfloat(U[0u].xyz).yz;
+  float2 zx = asfloat(U[0u].xyz).zx;
+  float2 zy = asfloat(U[0u].xyz).zy;
+  float2 zz = asfloat(U[0u].xyz).zz;
+  float3 xxx = asfloat(U[0u].xyz).xxx;
+  float3 xxy = asfloat(U[0u].xyz).xxy;
+  float3 xxz = asfloat(U[0u].xyz).xxz;
+  float3 xyx = asfloat(U[0u].xyz).xyx;
+  float3 xyy = asfloat(U[0u].xyz).xyy;
+  float3 xyz = asfloat(U[0u].xyz).xyz;
+  float3 xzx = asfloat(U[0u].xyz).xzx;
+  float3 xzy = asfloat(U[0u].xyz).xzy;
+  float3 xzz = asfloat(U[0u].xyz).xzz;
+  float3 yxx = asfloat(U[0u].xyz).yxx;
+  float3 yxy = asfloat(U[0u].xyz).yxy;
+  float3 yxz = asfloat(U[0u].xyz).yxz;
+  float3 yyx = asfloat(U[0u].xyz).yyx;
+  float3 yyy = asfloat(U[0u].xyz).yyy;
+  float3 yyz = asfloat(U[0u].xyz).yyz;
+  float3 yzx = asfloat(U[0u].xyz).yzx;
+  float3 yzy = asfloat(U[0u].xyz).yzy;
+  float3 yzz = asfloat(U[0u].xyz).yzz;
+  float3 zxx = asfloat(U[0u].xyz).zxx;
+  float3 zxy = asfloat(U[0u].xyz).zxy;
+  float3 zxz = asfloat(U[0u].xyz).zxz;
+  float3 zyx = asfloat(U[0u].xyz).zyx;
+  float3 zyy = asfloat(U[0u].xyz).zyy;
+  float3 zyz = asfloat(U[0u].xyz).zyz;
+  float3 zzx = asfloat(U[0u].xyz).zzx;
+  float3 zzy = asfloat(U[0u].xyz).zzy;
+  float3 zzz = asfloat(U[0u].xyz).zzz;
+  float4 xxxx = asfloat(U[0u].xyz).xxxx;
+  float4 xxxy = asfloat(U[0u].xyz).xxxy;
+  float4 xxxz = asfloat(U[0u].xyz).xxxz;
+  float4 xxyx = asfloat(U[0u].xyz).xxyx;
+  float4 xxyy = asfloat(U[0u].xyz).xxyy;
+  float4 xxyz = asfloat(U[0u].xyz).xxyz;
+  float4 xxzx = asfloat(U[0u].xyz).xxzx;
+  float4 xxzy = asfloat(U[0u].xyz).xxzy;
+  float4 xxzz = asfloat(U[0u].xyz).xxzz;
+  float4 xyxx = asfloat(U[0u].xyz).xyxx;
+  float4 xyxy = asfloat(U[0u].xyz).xyxy;
+  float4 xyxz = asfloat(U[0u].xyz).xyxz;
+  float4 xyyx = asfloat(U[0u].xyz).xyyx;
+  float4 xyyy = asfloat(U[0u].xyz).xyyy;
+  float4 xyyz = asfloat(U[0u].xyz).xyyz;
+  float4 xyzx = asfloat(U[0u].xyz).xyzx;
+  float4 xyzy = asfloat(U[0u].xyz).xyzy;
+  float4 xyzz = asfloat(U[0u].xyz).xyzz;
+  float4 xzxx = asfloat(U[0u].xyz).xzxx;
+  float4 xzxy = asfloat(U[0u].xyz).xzxy;
+  float4 xzxz = asfloat(U[0u].xyz).xzxz;
+  float4 xzyx = asfloat(U[0u].xyz).xzyx;
+  float4 xzyy = asfloat(U[0u].xyz).xzyy;
+  float4 xzyz = asfloat(U[0u].xyz).xzyz;
+  float4 xzzx = asfloat(U[0u].xyz).xzzx;
+  float4 xzzy = asfloat(U[0u].xyz).xzzy;
+  float4 xzzz = asfloat(U[0u].xyz).xzzz;
+  float4 yxxx = asfloat(U[0u].xyz).yxxx;
+  float4 yxxy = asfloat(U[0u].xyz).yxxy;
+  float4 yxxz = asfloat(U[0u].xyz).yxxz;
+  float4 yxyx = asfloat(U[0u].xyz).yxyx;
+  float4 yxyy = asfloat(U[0u].xyz).yxyy;
+  float4 yxyz = asfloat(U[0u].xyz).yxyz;
+  float4 yxzx = asfloat(U[0u].xyz).yxzx;
+  float4 yxzy = asfloat(U[0u].xyz).yxzy;
+  float4 yxzz = asfloat(U[0u].xyz).yxzz;
+  float4 yyxx = asfloat(U[0u].xyz).yyxx;
+  float4 yyxy = asfloat(U[0u].xyz).yyxy;
+  float4 yyxz = asfloat(U[0u].xyz).yyxz;
+  float4 yyyx = asfloat(U[0u].xyz).yyyx;
+  float4 yyyy = asfloat(U[0u].xyz).yyyy;
+  float4 yyyz = asfloat(U[0u].xyz).yyyz;
+  float4 yyzx = asfloat(U[0u].xyz).yyzx;
+  float4 yyzy = asfloat(U[0u].xyz).yyzy;
+  float4 yyzz = asfloat(U[0u].xyz).yyzz;
+  float4 yzxx = asfloat(U[0u].xyz).yzxx;
+  float4 yzxy = asfloat(U[0u].xyz).yzxy;
+  float4 yzxz = asfloat(U[0u].xyz).yzxz;
+  float4 yzyx = asfloat(U[0u].xyz).yzyx;
+  float4 yzyy = asfloat(U[0u].xyz).yzyy;
+  float4 yzyz = asfloat(U[0u].xyz).yzyz;
+  float4 yzzx = asfloat(U[0u].xyz).yzzx;
+  float4 yzzy = asfloat(U[0u].xyz).yzzy;
+  float4 yzzz = asfloat(U[0u].xyz).yzzz;
+  float4 zxxx = asfloat(U[0u].xyz).zxxx;
+  float4 zxxy = asfloat(U[0u].xyz).zxxy;
+  float4 zxxz = asfloat(U[0u].xyz).zxxz;
+  float4 zxyx = asfloat(U[0u].xyz).zxyx;
+  float4 zxyy = asfloat(U[0u].xyz).zxyy;
+  float4 zxyz = asfloat(U[0u].xyz).zxyz;
+  float4 zxzx = asfloat(U[0u].xyz).zxzx;
+  float4 zxzy = asfloat(U[0u].xyz).zxzy;
+  float4 zxzz = asfloat(U[0u].xyz).zxzz;
+  float4 zyxx = asfloat(U[0u].xyz).zyxx;
+  float4 zyxy = asfloat(U[0u].xyz).zyxy;
+  float4 zyxz = asfloat(U[0u].xyz).zyxz;
+  float4 zyyx = asfloat(U[0u].xyz).zyyx;
+  float4 zyyy = asfloat(U[0u].xyz).zyyy;
+  float4 zyyz = asfloat(U[0u].xyz).zyyz;
+  float4 zyzx = asfloat(U[0u].xyz).zyzx;
+  float4 zyzy = asfloat(U[0u].xyz).zyzy;
+  float4 zyzz = asfloat(U[0u].xyz).zyzz;
+  float4 zzxx = asfloat(U[0u].xyz).zzxx;
+  float4 zzxy = asfloat(U[0u].xyz).zzxy;
+  float4 zzxz = asfloat(U[0u].xyz).zzxz;
+  float4 zzyx = asfloat(U[0u].xyz).zzyx;
+  float4 zzyy = asfloat(U[0u].xyz).zzyy;
+  float4 zzyz = asfloat(U[0u].xyz).zzyz;
+  float4 zzzx = asfloat(U[0u].xyz).zzzx;
+  float4 zzzy = asfloat(U[0u].xyz).zzzy;
+  float4 zzzz = asfloat(U[0u].xyz).zzzz;
+}
+
+[numthreads(1, 1, 1)]
+void unused_entry_point() {
+}
+
diff --git a/test/tint/expressions/swizzle/read/packed_vec3/i32.wgsl.expected.ir.dxc.hlsl b/test/tint/expressions/swizzle/read/packed_vec3/i32.wgsl.expected.ir.dxc.hlsl
index 3f437dc..1a00e23 100644
--- a/test/tint/expressions/swizzle/read/packed_vec3/i32.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/expressions/swizzle/read/packed_vec3/i32.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,132 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Access
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+cbuffer cbuffer_U : register(b0) {
+  uint4 U[1];
+};
+void f() {
+  int3 v = asint(U[0u].xyz);
+  int x = asint(U[0u].x);
+  int y = asint(U[0u].y);
+  int z = asint(U[0u].z);
+  int2 xx = asint(U[0u].xyz).xx;
+  int2 xy = asint(U[0u].xyz).xy;
+  int2 xz = asint(U[0u].xyz).xz;
+  int2 yx = asint(U[0u].xyz).yx;
+  int2 yy = asint(U[0u].xyz).yy;
+  int2 yz = asint(U[0u].xyz).yz;
+  int2 zx = asint(U[0u].xyz).zx;
+  int2 zy = asint(U[0u].xyz).zy;
+  int2 zz = asint(U[0u].xyz).zz;
+  int3 xxx = asint(U[0u].xyz).xxx;
+  int3 xxy = asint(U[0u].xyz).xxy;
+  int3 xxz = asint(U[0u].xyz).xxz;
+  int3 xyx = asint(U[0u].xyz).xyx;
+  int3 xyy = asint(U[0u].xyz).xyy;
+  int3 xyz = asint(U[0u].xyz).xyz;
+  int3 xzx = asint(U[0u].xyz).xzx;
+  int3 xzy = asint(U[0u].xyz).xzy;
+  int3 xzz = asint(U[0u].xyz).xzz;
+  int3 yxx = asint(U[0u].xyz).yxx;
+  int3 yxy = asint(U[0u].xyz).yxy;
+  int3 yxz = asint(U[0u].xyz).yxz;
+  int3 yyx = asint(U[0u].xyz).yyx;
+  int3 yyy = asint(U[0u].xyz).yyy;
+  int3 yyz = asint(U[0u].xyz).yyz;
+  int3 yzx = asint(U[0u].xyz).yzx;
+  int3 yzy = asint(U[0u].xyz).yzy;
+  int3 yzz = asint(U[0u].xyz).yzz;
+  int3 zxx = asint(U[0u].xyz).zxx;
+  int3 zxy = asint(U[0u].xyz).zxy;
+  int3 zxz = asint(U[0u].xyz).zxz;
+  int3 zyx = asint(U[0u].xyz).zyx;
+  int3 zyy = asint(U[0u].xyz).zyy;
+  int3 zyz = asint(U[0u].xyz).zyz;
+  int3 zzx = asint(U[0u].xyz).zzx;
+  int3 zzy = asint(U[0u].xyz).zzy;
+  int3 zzz = asint(U[0u].xyz).zzz;
+  int4 xxxx = asint(U[0u].xyz).xxxx;
+  int4 xxxy = asint(U[0u].xyz).xxxy;
+  int4 xxxz = asint(U[0u].xyz).xxxz;
+  int4 xxyx = asint(U[0u].xyz).xxyx;
+  int4 xxyy = asint(U[0u].xyz).xxyy;
+  int4 xxyz = asint(U[0u].xyz).xxyz;
+  int4 xxzx = asint(U[0u].xyz).xxzx;
+  int4 xxzy = asint(U[0u].xyz).xxzy;
+  int4 xxzz = asint(U[0u].xyz).xxzz;
+  int4 xyxx = asint(U[0u].xyz).xyxx;
+  int4 xyxy = asint(U[0u].xyz).xyxy;
+  int4 xyxz = asint(U[0u].xyz).xyxz;
+  int4 xyyx = asint(U[0u].xyz).xyyx;
+  int4 xyyy = asint(U[0u].xyz).xyyy;
+  int4 xyyz = asint(U[0u].xyz).xyyz;
+  int4 xyzx = asint(U[0u].xyz).xyzx;
+  int4 xyzy = asint(U[0u].xyz).xyzy;
+  int4 xyzz = asint(U[0u].xyz).xyzz;
+  int4 xzxx = asint(U[0u].xyz).xzxx;
+  int4 xzxy = asint(U[0u].xyz).xzxy;
+  int4 xzxz = asint(U[0u].xyz).xzxz;
+  int4 xzyx = asint(U[0u].xyz).xzyx;
+  int4 xzyy = asint(U[0u].xyz).xzyy;
+  int4 xzyz = asint(U[0u].xyz).xzyz;
+  int4 xzzx = asint(U[0u].xyz).xzzx;
+  int4 xzzy = asint(U[0u].xyz).xzzy;
+  int4 xzzz = asint(U[0u].xyz).xzzz;
+  int4 yxxx = asint(U[0u].xyz).yxxx;
+  int4 yxxy = asint(U[0u].xyz).yxxy;
+  int4 yxxz = asint(U[0u].xyz).yxxz;
+  int4 yxyx = asint(U[0u].xyz).yxyx;
+  int4 yxyy = asint(U[0u].xyz).yxyy;
+  int4 yxyz = asint(U[0u].xyz).yxyz;
+  int4 yxzx = asint(U[0u].xyz).yxzx;
+  int4 yxzy = asint(U[0u].xyz).yxzy;
+  int4 yxzz = asint(U[0u].xyz).yxzz;
+  int4 yyxx = asint(U[0u].xyz).yyxx;
+  int4 yyxy = asint(U[0u].xyz).yyxy;
+  int4 yyxz = asint(U[0u].xyz).yyxz;
+  int4 yyyx = asint(U[0u].xyz).yyyx;
+  int4 yyyy = asint(U[0u].xyz).yyyy;
+  int4 yyyz = asint(U[0u].xyz).yyyz;
+  int4 yyzx = asint(U[0u].xyz).yyzx;
+  int4 yyzy = asint(U[0u].xyz).yyzy;
+  int4 yyzz = asint(U[0u].xyz).yyzz;
+  int4 yzxx = asint(U[0u].xyz).yzxx;
+  int4 yzxy = asint(U[0u].xyz).yzxy;
+  int4 yzxz = asint(U[0u].xyz).yzxz;
+  int4 yzyx = asint(U[0u].xyz).yzyx;
+  int4 yzyy = asint(U[0u].xyz).yzyy;
+  int4 yzyz = asint(U[0u].xyz).yzyz;
+  int4 yzzx = asint(U[0u].xyz).yzzx;
+  int4 yzzy = asint(U[0u].xyz).yzzy;
+  int4 yzzz = asint(U[0u].xyz).yzzz;
+  int4 zxxx = asint(U[0u].xyz).zxxx;
+  int4 zxxy = asint(U[0u].xyz).zxxy;
+  int4 zxxz = asint(U[0u].xyz).zxxz;
+  int4 zxyx = asint(U[0u].xyz).zxyx;
+  int4 zxyy = asint(U[0u].xyz).zxyy;
+  int4 zxyz = asint(U[0u].xyz).zxyz;
+  int4 zxzx = asint(U[0u].xyz).zxzx;
+  int4 zxzy = asint(U[0u].xyz).zxzy;
+  int4 zxzz = asint(U[0u].xyz).zxzz;
+  int4 zyxx = asint(U[0u].xyz).zyxx;
+  int4 zyxy = asint(U[0u].xyz).zyxy;
+  int4 zyxz = asint(U[0u].xyz).zyxz;
+  int4 zyyx = asint(U[0u].xyz).zyyx;
+  int4 zyyy = asint(U[0u].xyz).zyyy;
+  int4 zyyz = asint(U[0u].xyz).zyyz;
+  int4 zyzx = asint(U[0u].xyz).zyzx;
+  int4 zyzy = asint(U[0u].xyz).zyzy;
+  int4 zyzz = asint(U[0u].xyz).zyzz;
+  int4 zzxx = asint(U[0u].xyz).zzxx;
+  int4 zzxy = asint(U[0u].xyz).zzxy;
+  int4 zzxz = asint(U[0u].xyz).zzxz;
+  int4 zzyx = asint(U[0u].xyz).zzyx;
+  int4 zzyy = asint(U[0u].xyz).zzyy;
+  int4 zzyz = asint(U[0u].xyz).zzyz;
+  int4 zzzx = asint(U[0u].xyz).zzzx;
+  int4 zzzy = asint(U[0u].xyz).zzzy;
+  int4 zzzz = asint(U[0u].xyz).zzzz;
+}
+
+[numthreads(1, 1, 1)]
+void unused_entry_point() {
+}
+
diff --git a/test/tint/expressions/swizzle/read/packed_vec3/i32.wgsl.expected.ir.fxc.hlsl b/test/tint/expressions/swizzle/read/packed_vec3/i32.wgsl.expected.ir.fxc.hlsl
index 3f437dc..1a00e23 100644
--- a/test/tint/expressions/swizzle/read/packed_vec3/i32.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/expressions/swizzle/read/packed_vec3/i32.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,132 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Access
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+cbuffer cbuffer_U : register(b0) {
+  uint4 U[1];
+};
+void f() {
+  int3 v = asint(U[0u].xyz);
+  int x = asint(U[0u].x);
+  int y = asint(U[0u].y);
+  int z = asint(U[0u].z);
+  int2 xx = asint(U[0u].xyz).xx;
+  int2 xy = asint(U[0u].xyz).xy;
+  int2 xz = asint(U[0u].xyz).xz;
+  int2 yx = asint(U[0u].xyz).yx;
+  int2 yy = asint(U[0u].xyz).yy;
+  int2 yz = asint(U[0u].xyz).yz;
+  int2 zx = asint(U[0u].xyz).zx;
+  int2 zy = asint(U[0u].xyz).zy;
+  int2 zz = asint(U[0u].xyz).zz;
+  int3 xxx = asint(U[0u].xyz).xxx;
+  int3 xxy = asint(U[0u].xyz).xxy;
+  int3 xxz = asint(U[0u].xyz).xxz;
+  int3 xyx = asint(U[0u].xyz).xyx;
+  int3 xyy = asint(U[0u].xyz).xyy;
+  int3 xyz = asint(U[0u].xyz).xyz;
+  int3 xzx = asint(U[0u].xyz).xzx;
+  int3 xzy = asint(U[0u].xyz).xzy;
+  int3 xzz = asint(U[0u].xyz).xzz;
+  int3 yxx = asint(U[0u].xyz).yxx;
+  int3 yxy = asint(U[0u].xyz).yxy;
+  int3 yxz = asint(U[0u].xyz).yxz;
+  int3 yyx = asint(U[0u].xyz).yyx;
+  int3 yyy = asint(U[0u].xyz).yyy;
+  int3 yyz = asint(U[0u].xyz).yyz;
+  int3 yzx = asint(U[0u].xyz).yzx;
+  int3 yzy = asint(U[0u].xyz).yzy;
+  int3 yzz = asint(U[0u].xyz).yzz;
+  int3 zxx = asint(U[0u].xyz).zxx;
+  int3 zxy = asint(U[0u].xyz).zxy;
+  int3 zxz = asint(U[0u].xyz).zxz;
+  int3 zyx = asint(U[0u].xyz).zyx;
+  int3 zyy = asint(U[0u].xyz).zyy;
+  int3 zyz = asint(U[0u].xyz).zyz;
+  int3 zzx = asint(U[0u].xyz).zzx;
+  int3 zzy = asint(U[0u].xyz).zzy;
+  int3 zzz = asint(U[0u].xyz).zzz;
+  int4 xxxx = asint(U[0u].xyz).xxxx;
+  int4 xxxy = asint(U[0u].xyz).xxxy;
+  int4 xxxz = asint(U[0u].xyz).xxxz;
+  int4 xxyx = asint(U[0u].xyz).xxyx;
+  int4 xxyy = asint(U[0u].xyz).xxyy;
+  int4 xxyz = asint(U[0u].xyz).xxyz;
+  int4 xxzx = asint(U[0u].xyz).xxzx;
+  int4 xxzy = asint(U[0u].xyz).xxzy;
+  int4 xxzz = asint(U[0u].xyz).xxzz;
+  int4 xyxx = asint(U[0u].xyz).xyxx;
+  int4 xyxy = asint(U[0u].xyz).xyxy;
+  int4 xyxz = asint(U[0u].xyz).xyxz;
+  int4 xyyx = asint(U[0u].xyz).xyyx;
+  int4 xyyy = asint(U[0u].xyz).xyyy;
+  int4 xyyz = asint(U[0u].xyz).xyyz;
+  int4 xyzx = asint(U[0u].xyz).xyzx;
+  int4 xyzy = asint(U[0u].xyz).xyzy;
+  int4 xyzz = asint(U[0u].xyz).xyzz;
+  int4 xzxx = asint(U[0u].xyz).xzxx;
+  int4 xzxy = asint(U[0u].xyz).xzxy;
+  int4 xzxz = asint(U[0u].xyz).xzxz;
+  int4 xzyx = asint(U[0u].xyz).xzyx;
+  int4 xzyy = asint(U[0u].xyz).xzyy;
+  int4 xzyz = asint(U[0u].xyz).xzyz;
+  int4 xzzx = asint(U[0u].xyz).xzzx;
+  int4 xzzy = asint(U[0u].xyz).xzzy;
+  int4 xzzz = asint(U[0u].xyz).xzzz;
+  int4 yxxx = asint(U[0u].xyz).yxxx;
+  int4 yxxy = asint(U[0u].xyz).yxxy;
+  int4 yxxz = asint(U[0u].xyz).yxxz;
+  int4 yxyx = asint(U[0u].xyz).yxyx;
+  int4 yxyy = asint(U[0u].xyz).yxyy;
+  int4 yxyz = asint(U[0u].xyz).yxyz;
+  int4 yxzx = asint(U[0u].xyz).yxzx;
+  int4 yxzy = asint(U[0u].xyz).yxzy;
+  int4 yxzz = asint(U[0u].xyz).yxzz;
+  int4 yyxx = asint(U[0u].xyz).yyxx;
+  int4 yyxy = asint(U[0u].xyz).yyxy;
+  int4 yyxz = asint(U[0u].xyz).yyxz;
+  int4 yyyx = asint(U[0u].xyz).yyyx;
+  int4 yyyy = asint(U[0u].xyz).yyyy;
+  int4 yyyz = asint(U[0u].xyz).yyyz;
+  int4 yyzx = asint(U[0u].xyz).yyzx;
+  int4 yyzy = asint(U[0u].xyz).yyzy;
+  int4 yyzz = asint(U[0u].xyz).yyzz;
+  int4 yzxx = asint(U[0u].xyz).yzxx;
+  int4 yzxy = asint(U[0u].xyz).yzxy;
+  int4 yzxz = asint(U[0u].xyz).yzxz;
+  int4 yzyx = asint(U[0u].xyz).yzyx;
+  int4 yzyy = asint(U[0u].xyz).yzyy;
+  int4 yzyz = asint(U[0u].xyz).yzyz;
+  int4 yzzx = asint(U[0u].xyz).yzzx;
+  int4 yzzy = asint(U[0u].xyz).yzzy;
+  int4 yzzz = asint(U[0u].xyz).yzzz;
+  int4 zxxx = asint(U[0u].xyz).zxxx;
+  int4 zxxy = asint(U[0u].xyz).zxxy;
+  int4 zxxz = asint(U[0u].xyz).zxxz;
+  int4 zxyx = asint(U[0u].xyz).zxyx;
+  int4 zxyy = asint(U[0u].xyz).zxyy;
+  int4 zxyz = asint(U[0u].xyz).zxyz;
+  int4 zxzx = asint(U[0u].xyz).zxzx;
+  int4 zxzy = asint(U[0u].xyz).zxzy;
+  int4 zxzz = asint(U[0u].xyz).zxzz;
+  int4 zyxx = asint(U[0u].xyz).zyxx;
+  int4 zyxy = asint(U[0u].xyz).zyxy;
+  int4 zyxz = asint(U[0u].xyz).zyxz;
+  int4 zyyx = asint(U[0u].xyz).zyyx;
+  int4 zyyy = asint(U[0u].xyz).zyyy;
+  int4 zyyz = asint(U[0u].xyz).zyyz;
+  int4 zyzx = asint(U[0u].xyz).zyzx;
+  int4 zyzy = asint(U[0u].xyz).zyzy;
+  int4 zyzz = asint(U[0u].xyz).zyzz;
+  int4 zzxx = asint(U[0u].xyz).zzxx;
+  int4 zzxy = asint(U[0u].xyz).zzxy;
+  int4 zzxz = asint(U[0u].xyz).zzxz;
+  int4 zzyx = asint(U[0u].xyz).zzyx;
+  int4 zzyy = asint(U[0u].xyz).zzyy;
+  int4 zzyz = asint(U[0u].xyz).zzyz;
+  int4 zzzx = asint(U[0u].xyz).zzzx;
+  int4 zzzy = asint(U[0u].xyz).zzzy;
+  int4 zzzz = asint(U[0u].xyz).zzzz;
+}
+
+[numthreads(1, 1, 1)]
+void unused_entry_point() {
+}
+
diff --git a/test/tint/expressions/swizzle/read/packed_vec3/u32.wgsl.expected.ir.dxc.hlsl b/test/tint/expressions/swizzle/read/packed_vec3/u32.wgsl.expected.ir.dxc.hlsl
index 3f437dc..44f3c71 100644
--- a/test/tint/expressions/swizzle/read/packed_vec3/u32.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/expressions/swizzle/read/packed_vec3/u32.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,132 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Access
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+cbuffer cbuffer_U : register(b0) {
+  uint4 U[1];
+};
+void f() {
+  uint3 v = U[0u].xyz;
+  uint x = U[0u].x;
+  uint y = U[0u].y;
+  uint z = U[0u].z;
+  uint2 xx = U[0u].xyz.xx;
+  uint2 xy = U[0u].xyz.xy;
+  uint2 xz = U[0u].xyz.xz;
+  uint2 yx = U[0u].xyz.yx;
+  uint2 yy = U[0u].xyz.yy;
+  uint2 yz = U[0u].xyz.yz;
+  uint2 zx = U[0u].xyz.zx;
+  uint2 zy = U[0u].xyz.zy;
+  uint2 zz = U[0u].xyz.zz;
+  uint3 xxx = U[0u].xyz.xxx;
+  uint3 xxy = U[0u].xyz.xxy;
+  uint3 xxz = U[0u].xyz.xxz;
+  uint3 xyx = U[0u].xyz.xyx;
+  uint3 xyy = U[0u].xyz.xyy;
+  uint3 xyz = U[0u].xyz.xyz;
+  uint3 xzx = U[0u].xyz.xzx;
+  uint3 xzy = U[0u].xyz.xzy;
+  uint3 xzz = U[0u].xyz.xzz;
+  uint3 yxx = U[0u].xyz.yxx;
+  uint3 yxy = U[0u].xyz.yxy;
+  uint3 yxz = U[0u].xyz.yxz;
+  uint3 yyx = U[0u].xyz.yyx;
+  uint3 yyy = U[0u].xyz.yyy;
+  uint3 yyz = U[0u].xyz.yyz;
+  uint3 yzx = U[0u].xyz.yzx;
+  uint3 yzy = U[0u].xyz.yzy;
+  uint3 yzz = U[0u].xyz.yzz;
+  uint3 zxx = U[0u].xyz.zxx;
+  uint3 zxy = U[0u].xyz.zxy;
+  uint3 zxz = U[0u].xyz.zxz;
+  uint3 zyx = U[0u].xyz.zyx;
+  uint3 zyy = U[0u].xyz.zyy;
+  uint3 zyz = U[0u].xyz.zyz;
+  uint3 zzx = U[0u].xyz.zzx;
+  uint3 zzy = U[0u].xyz.zzy;
+  uint3 zzz = U[0u].xyz.zzz;
+  uint4 xxxx = U[0u].xyz.xxxx;
+  uint4 xxxy = U[0u].xyz.xxxy;
+  uint4 xxxz = U[0u].xyz.xxxz;
+  uint4 xxyx = U[0u].xyz.xxyx;
+  uint4 xxyy = U[0u].xyz.xxyy;
+  uint4 xxyz = U[0u].xyz.xxyz;
+  uint4 xxzx = U[0u].xyz.xxzx;
+  uint4 xxzy = U[0u].xyz.xxzy;
+  uint4 xxzz = U[0u].xyz.xxzz;
+  uint4 xyxx = U[0u].xyz.xyxx;
+  uint4 xyxy = U[0u].xyz.xyxy;
+  uint4 xyxz = U[0u].xyz.xyxz;
+  uint4 xyyx = U[0u].xyz.xyyx;
+  uint4 xyyy = U[0u].xyz.xyyy;
+  uint4 xyyz = U[0u].xyz.xyyz;
+  uint4 xyzx = U[0u].xyz.xyzx;
+  uint4 xyzy = U[0u].xyz.xyzy;
+  uint4 xyzz = U[0u].xyz.xyzz;
+  uint4 xzxx = U[0u].xyz.xzxx;
+  uint4 xzxy = U[0u].xyz.xzxy;
+  uint4 xzxz = U[0u].xyz.xzxz;
+  uint4 xzyx = U[0u].xyz.xzyx;
+  uint4 xzyy = U[0u].xyz.xzyy;
+  uint4 xzyz = U[0u].xyz.xzyz;
+  uint4 xzzx = U[0u].xyz.xzzx;
+  uint4 xzzy = U[0u].xyz.xzzy;
+  uint4 xzzz = U[0u].xyz.xzzz;
+  uint4 yxxx = U[0u].xyz.yxxx;
+  uint4 yxxy = U[0u].xyz.yxxy;
+  uint4 yxxz = U[0u].xyz.yxxz;
+  uint4 yxyx = U[0u].xyz.yxyx;
+  uint4 yxyy = U[0u].xyz.yxyy;
+  uint4 yxyz = U[0u].xyz.yxyz;
+  uint4 yxzx = U[0u].xyz.yxzx;
+  uint4 yxzy = U[0u].xyz.yxzy;
+  uint4 yxzz = U[0u].xyz.yxzz;
+  uint4 yyxx = U[0u].xyz.yyxx;
+  uint4 yyxy = U[0u].xyz.yyxy;
+  uint4 yyxz = U[0u].xyz.yyxz;
+  uint4 yyyx = U[0u].xyz.yyyx;
+  uint4 yyyy = U[0u].xyz.yyyy;
+  uint4 yyyz = U[0u].xyz.yyyz;
+  uint4 yyzx = U[0u].xyz.yyzx;
+  uint4 yyzy = U[0u].xyz.yyzy;
+  uint4 yyzz = U[0u].xyz.yyzz;
+  uint4 yzxx = U[0u].xyz.yzxx;
+  uint4 yzxy = U[0u].xyz.yzxy;
+  uint4 yzxz = U[0u].xyz.yzxz;
+  uint4 yzyx = U[0u].xyz.yzyx;
+  uint4 yzyy = U[0u].xyz.yzyy;
+  uint4 yzyz = U[0u].xyz.yzyz;
+  uint4 yzzx = U[0u].xyz.yzzx;
+  uint4 yzzy = U[0u].xyz.yzzy;
+  uint4 yzzz = U[0u].xyz.yzzz;
+  uint4 zxxx = U[0u].xyz.zxxx;
+  uint4 zxxy = U[0u].xyz.zxxy;
+  uint4 zxxz = U[0u].xyz.zxxz;
+  uint4 zxyx = U[0u].xyz.zxyx;
+  uint4 zxyy = U[0u].xyz.zxyy;
+  uint4 zxyz = U[0u].xyz.zxyz;
+  uint4 zxzx = U[0u].xyz.zxzx;
+  uint4 zxzy = U[0u].xyz.zxzy;
+  uint4 zxzz = U[0u].xyz.zxzz;
+  uint4 zyxx = U[0u].xyz.zyxx;
+  uint4 zyxy = U[0u].xyz.zyxy;
+  uint4 zyxz = U[0u].xyz.zyxz;
+  uint4 zyyx = U[0u].xyz.zyyx;
+  uint4 zyyy = U[0u].xyz.zyyy;
+  uint4 zyyz = U[0u].xyz.zyyz;
+  uint4 zyzx = U[0u].xyz.zyzx;
+  uint4 zyzy = U[0u].xyz.zyzy;
+  uint4 zyzz = U[0u].xyz.zyzz;
+  uint4 zzxx = U[0u].xyz.zzxx;
+  uint4 zzxy = U[0u].xyz.zzxy;
+  uint4 zzxz = U[0u].xyz.zzxz;
+  uint4 zzyx = U[0u].xyz.zzyx;
+  uint4 zzyy = U[0u].xyz.zzyy;
+  uint4 zzyz = U[0u].xyz.zzyz;
+  uint4 zzzx = U[0u].xyz.zzzx;
+  uint4 zzzy = U[0u].xyz.zzzy;
+  uint4 zzzz = U[0u].xyz.zzzz;
+}
+
+[numthreads(1, 1, 1)]
+void unused_entry_point() {
+}
+
diff --git a/test/tint/expressions/swizzle/read/packed_vec3/u32.wgsl.expected.ir.fxc.hlsl b/test/tint/expressions/swizzle/read/packed_vec3/u32.wgsl.expected.ir.fxc.hlsl
index 3f437dc..44f3c71 100644
--- a/test/tint/expressions/swizzle/read/packed_vec3/u32.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/expressions/swizzle/read/packed_vec3/u32.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,132 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Access
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+cbuffer cbuffer_U : register(b0) {
+  uint4 U[1];
+};
+void f() {
+  uint3 v = U[0u].xyz;
+  uint x = U[0u].x;
+  uint y = U[0u].y;
+  uint z = U[0u].z;
+  uint2 xx = U[0u].xyz.xx;
+  uint2 xy = U[0u].xyz.xy;
+  uint2 xz = U[0u].xyz.xz;
+  uint2 yx = U[0u].xyz.yx;
+  uint2 yy = U[0u].xyz.yy;
+  uint2 yz = U[0u].xyz.yz;
+  uint2 zx = U[0u].xyz.zx;
+  uint2 zy = U[0u].xyz.zy;
+  uint2 zz = U[0u].xyz.zz;
+  uint3 xxx = U[0u].xyz.xxx;
+  uint3 xxy = U[0u].xyz.xxy;
+  uint3 xxz = U[0u].xyz.xxz;
+  uint3 xyx = U[0u].xyz.xyx;
+  uint3 xyy = U[0u].xyz.xyy;
+  uint3 xyz = U[0u].xyz.xyz;
+  uint3 xzx = U[0u].xyz.xzx;
+  uint3 xzy = U[0u].xyz.xzy;
+  uint3 xzz = U[0u].xyz.xzz;
+  uint3 yxx = U[0u].xyz.yxx;
+  uint3 yxy = U[0u].xyz.yxy;
+  uint3 yxz = U[0u].xyz.yxz;
+  uint3 yyx = U[0u].xyz.yyx;
+  uint3 yyy = U[0u].xyz.yyy;
+  uint3 yyz = U[0u].xyz.yyz;
+  uint3 yzx = U[0u].xyz.yzx;
+  uint3 yzy = U[0u].xyz.yzy;
+  uint3 yzz = U[0u].xyz.yzz;
+  uint3 zxx = U[0u].xyz.zxx;
+  uint3 zxy = U[0u].xyz.zxy;
+  uint3 zxz = U[0u].xyz.zxz;
+  uint3 zyx = U[0u].xyz.zyx;
+  uint3 zyy = U[0u].xyz.zyy;
+  uint3 zyz = U[0u].xyz.zyz;
+  uint3 zzx = U[0u].xyz.zzx;
+  uint3 zzy = U[0u].xyz.zzy;
+  uint3 zzz = U[0u].xyz.zzz;
+  uint4 xxxx = U[0u].xyz.xxxx;
+  uint4 xxxy = U[0u].xyz.xxxy;
+  uint4 xxxz = U[0u].xyz.xxxz;
+  uint4 xxyx = U[0u].xyz.xxyx;
+  uint4 xxyy = U[0u].xyz.xxyy;
+  uint4 xxyz = U[0u].xyz.xxyz;
+  uint4 xxzx = U[0u].xyz.xxzx;
+  uint4 xxzy = U[0u].xyz.xxzy;
+  uint4 xxzz = U[0u].xyz.xxzz;
+  uint4 xyxx = U[0u].xyz.xyxx;
+  uint4 xyxy = U[0u].xyz.xyxy;
+  uint4 xyxz = U[0u].xyz.xyxz;
+  uint4 xyyx = U[0u].xyz.xyyx;
+  uint4 xyyy = U[0u].xyz.xyyy;
+  uint4 xyyz = U[0u].xyz.xyyz;
+  uint4 xyzx = U[0u].xyz.xyzx;
+  uint4 xyzy = U[0u].xyz.xyzy;
+  uint4 xyzz = U[0u].xyz.xyzz;
+  uint4 xzxx = U[0u].xyz.xzxx;
+  uint4 xzxy = U[0u].xyz.xzxy;
+  uint4 xzxz = U[0u].xyz.xzxz;
+  uint4 xzyx = U[0u].xyz.xzyx;
+  uint4 xzyy = U[0u].xyz.xzyy;
+  uint4 xzyz = U[0u].xyz.xzyz;
+  uint4 xzzx = U[0u].xyz.xzzx;
+  uint4 xzzy = U[0u].xyz.xzzy;
+  uint4 xzzz = U[0u].xyz.xzzz;
+  uint4 yxxx = U[0u].xyz.yxxx;
+  uint4 yxxy = U[0u].xyz.yxxy;
+  uint4 yxxz = U[0u].xyz.yxxz;
+  uint4 yxyx = U[0u].xyz.yxyx;
+  uint4 yxyy = U[0u].xyz.yxyy;
+  uint4 yxyz = U[0u].xyz.yxyz;
+  uint4 yxzx = U[0u].xyz.yxzx;
+  uint4 yxzy = U[0u].xyz.yxzy;
+  uint4 yxzz = U[0u].xyz.yxzz;
+  uint4 yyxx = U[0u].xyz.yyxx;
+  uint4 yyxy = U[0u].xyz.yyxy;
+  uint4 yyxz = U[0u].xyz.yyxz;
+  uint4 yyyx = U[0u].xyz.yyyx;
+  uint4 yyyy = U[0u].xyz.yyyy;
+  uint4 yyyz = U[0u].xyz.yyyz;
+  uint4 yyzx = U[0u].xyz.yyzx;
+  uint4 yyzy = U[0u].xyz.yyzy;
+  uint4 yyzz = U[0u].xyz.yyzz;
+  uint4 yzxx = U[0u].xyz.yzxx;
+  uint4 yzxy = U[0u].xyz.yzxy;
+  uint4 yzxz = U[0u].xyz.yzxz;
+  uint4 yzyx = U[0u].xyz.yzyx;
+  uint4 yzyy = U[0u].xyz.yzyy;
+  uint4 yzyz = U[0u].xyz.yzyz;
+  uint4 yzzx = U[0u].xyz.yzzx;
+  uint4 yzzy = U[0u].xyz.yzzy;
+  uint4 yzzz = U[0u].xyz.yzzz;
+  uint4 zxxx = U[0u].xyz.zxxx;
+  uint4 zxxy = U[0u].xyz.zxxy;
+  uint4 zxxz = U[0u].xyz.zxxz;
+  uint4 zxyx = U[0u].xyz.zxyx;
+  uint4 zxyy = U[0u].xyz.zxyy;
+  uint4 zxyz = U[0u].xyz.zxyz;
+  uint4 zxzx = U[0u].xyz.zxzx;
+  uint4 zxzy = U[0u].xyz.zxzy;
+  uint4 zxzz = U[0u].xyz.zxzz;
+  uint4 zyxx = U[0u].xyz.zyxx;
+  uint4 zyxy = U[0u].xyz.zyxy;
+  uint4 zyxz = U[0u].xyz.zyxz;
+  uint4 zyyx = U[0u].xyz.zyyx;
+  uint4 zyyy = U[0u].xyz.zyyy;
+  uint4 zyyz = U[0u].xyz.zyyz;
+  uint4 zyzx = U[0u].xyz.zyzx;
+  uint4 zyzy = U[0u].xyz.zyzy;
+  uint4 zyzz = U[0u].xyz.zyzz;
+  uint4 zzxx = U[0u].xyz.zzxx;
+  uint4 zzxy = U[0u].xyz.zzxy;
+  uint4 zzxz = U[0u].xyz.zzxz;
+  uint4 zzyx = U[0u].xyz.zzyx;
+  uint4 zzyy = U[0u].xyz.zzyy;
+  uint4 zzyz = U[0u].xyz.zzyz;
+  uint4 zzzx = U[0u].xyz.zzzx;
+  uint4 zzzy = U[0u].xyz.zzzy;
+  uint4 zzzz = U[0u].xyz.zzzz;
+}
+
+[numthreads(1, 1, 1)]
+void unused_entry_point() {
+}
+
diff --git a/test/tint/expressions/swizzle/read/swizzle.wgsl.expected.ir.dxc.hlsl b/test/tint/expressions/swizzle/read/swizzle.wgsl.expected.ir.dxc.hlsl
index 4a2c666..52abf77 100644
--- a/test/tint/expressions/swizzle/read/swizzle.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/expressions/swizzle/read/swizzle.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,17 @@
-SKIP: FAILED
+struct S {
+  float3 val[3];
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::LoadVectorElement
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+
+void a() {
+  int4 a_1 = (0).xxxx;
+  int b = a_1.x;
+  int4 c = a_1.zzyy;
+  S d = (S)0;
+  float3 e = d.val[2].yzx;
+}
+
+[numthreads(1, 1, 1)]
+void unused_entry_point() {
+}
+
diff --git a/test/tint/expressions/swizzle/read/swizzle.wgsl.expected.ir.fxc.hlsl b/test/tint/expressions/swizzle/read/swizzle.wgsl.expected.ir.fxc.hlsl
index 4a2c666..52abf77 100644
--- a/test/tint/expressions/swizzle/read/swizzle.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/expressions/swizzle/read/swizzle.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,17 @@
-SKIP: FAILED
+struct S {
+  float3 val[3];
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::LoadVectorElement
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+
+void a() {
+  int4 a_1 = (0).xxxx;
+  int b = a_1.x;
+  int4 c = a_1.zzyy;
+  S d = (S)0;
+  float3 e = d.val[2].yzx;
+}
+
+[numthreads(1, 1, 1)]
+void unused_entry_point() {
+}
+
diff --git a/test/tint/expressions/swizzle/read/vec3/f16.wgsl.expected.ir.dxc.hlsl b/test/tint/expressions/swizzle/read/vec3/f16.wgsl.expected.ir.dxc.hlsl
index 3f437dc..31623d9 100644
--- a/test/tint/expressions/swizzle/read/vec3/f16.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/expressions/swizzle/read/vec3/f16.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,134 @@
-SKIP: FAILED
+struct S {
+  vector<float16_t, 3> v;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Access
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+
+static S P = (S)0;
+void f() {
+  vector<float16_t, 3> v = P.v;
+  float16_t x = P.v.x;
+  float16_t y = P.v.y;
+  float16_t z = P.v.z;
+  vector<float16_t, 2> xx = P.v.xx;
+  vector<float16_t, 2> xy = P.v.xy;
+  vector<float16_t, 2> xz = P.v.xz;
+  vector<float16_t, 2> yx = P.v.yx;
+  vector<float16_t, 2> yy = P.v.yy;
+  vector<float16_t, 2> yz = P.v.yz;
+  vector<float16_t, 2> zx = P.v.zx;
+  vector<float16_t, 2> zy = P.v.zy;
+  vector<float16_t, 2> zz = P.v.zz;
+  vector<float16_t, 3> xxx = P.v.xxx;
+  vector<float16_t, 3> xxy = P.v.xxy;
+  vector<float16_t, 3> xxz = P.v.xxz;
+  vector<float16_t, 3> xyx = P.v.xyx;
+  vector<float16_t, 3> xyy = P.v.xyy;
+  vector<float16_t, 3> xyz = P.v.xyz;
+  vector<float16_t, 3> xzx = P.v.xzx;
+  vector<float16_t, 3> xzy = P.v.xzy;
+  vector<float16_t, 3> xzz = P.v.xzz;
+  vector<float16_t, 3> yxx = P.v.yxx;
+  vector<float16_t, 3> yxy = P.v.yxy;
+  vector<float16_t, 3> yxz = P.v.yxz;
+  vector<float16_t, 3> yyx = P.v.yyx;
+  vector<float16_t, 3> yyy = P.v.yyy;
+  vector<float16_t, 3> yyz = P.v.yyz;
+  vector<float16_t, 3> yzx = P.v.yzx;
+  vector<float16_t, 3> yzy = P.v.yzy;
+  vector<float16_t, 3> yzz = P.v.yzz;
+  vector<float16_t, 3> zxx = P.v.zxx;
+  vector<float16_t, 3> zxy = P.v.zxy;
+  vector<float16_t, 3> zxz = P.v.zxz;
+  vector<float16_t, 3> zyx = P.v.zyx;
+  vector<float16_t, 3> zyy = P.v.zyy;
+  vector<float16_t, 3> zyz = P.v.zyz;
+  vector<float16_t, 3> zzx = P.v.zzx;
+  vector<float16_t, 3> zzy = P.v.zzy;
+  vector<float16_t, 3> zzz = P.v.zzz;
+  vector<float16_t, 4> xxxx = P.v.xxxx;
+  vector<float16_t, 4> xxxy = P.v.xxxy;
+  vector<float16_t, 4> xxxz = P.v.xxxz;
+  vector<float16_t, 4> xxyx = P.v.xxyx;
+  vector<float16_t, 4> xxyy = P.v.xxyy;
+  vector<float16_t, 4> xxyz = P.v.xxyz;
+  vector<float16_t, 4> xxzx = P.v.xxzx;
+  vector<float16_t, 4> xxzy = P.v.xxzy;
+  vector<float16_t, 4> xxzz = P.v.xxzz;
+  vector<float16_t, 4> xyxx = P.v.xyxx;
+  vector<float16_t, 4> xyxy = P.v.xyxy;
+  vector<float16_t, 4> xyxz = P.v.xyxz;
+  vector<float16_t, 4> xyyx = P.v.xyyx;
+  vector<float16_t, 4> xyyy = P.v.xyyy;
+  vector<float16_t, 4> xyyz = P.v.xyyz;
+  vector<float16_t, 4> xyzx = P.v.xyzx;
+  vector<float16_t, 4> xyzy = P.v.xyzy;
+  vector<float16_t, 4> xyzz = P.v.xyzz;
+  vector<float16_t, 4> xzxx = P.v.xzxx;
+  vector<float16_t, 4> xzxy = P.v.xzxy;
+  vector<float16_t, 4> xzxz = P.v.xzxz;
+  vector<float16_t, 4> xzyx = P.v.xzyx;
+  vector<float16_t, 4> xzyy = P.v.xzyy;
+  vector<float16_t, 4> xzyz = P.v.xzyz;
+  vector<float16_t, 4> xzzx = P.v.xzzx;
+  vector<float16_t, 4> xzzy = P.v.xzzy;
+  vector<float16_t, 4> xzzz = P.v.xzzz;
+  vector<float16_t, 4> yxxx = P.v.yxxx;
+  vector<float16_t, 4> yxxy = P.v.yxxy;
+  vector<float16_t, 4> yxxz = P.v.yxxz;
+  vector<float16_t, 4> yxyx = P.v.yxyx;
+  vector<float16_t, 4> yxyy = P.v.yxyy;
+  vector<float16_t, 4> yxyz = P.v.yxyz;
+  vector<float16_t, 4> yxzx = P.v.yxzx;
+  vector<float16_t, 4> yxzy = P.v.yxzy;
+  vector<float16_t, 4> yxzz = P.v.yxzz;
+  vector<float16_t, 4> yyxx = P.v.yyxx;
+  vector<float16_t, 4> yyxy = P.v.yyxy;
+  vector<float16_t, 4> yyxz = P.v.yyxz;
+  vector<float16_t, 4> yyyx = P.v.yyyx;
+  vector<float16_t, 4> yyyy = P.v.yyyy;
+  vector<float16_t, 4> yyyz = P.v.yyyz;
+  vector<float16_t, 4> yyzx = P.v.yyzx;
+  vector<float16_t, 4> yyzy = P.v.yyzy;
+  vector<float16_t, 4> yyzz = P.v.yyzz;
+  vector<float16_t, 4> yzxx = P.v.yzxx;
+  vector<float16_t, 4> yzxy = P.v.yzxy;
+  vector<float16_t, 4> yzxz = P.v.yzxz;
+  vector<float16_t, 4> yzyx = P.v.yzyx;
+  vector<float16_t, 4> yzyy = P.v.yzyy;
+  vector<float16_t, 4> yzyz = P.v.yzyz;
+  vector<float16_t, 4> yzzx = P.v.yzzx;
+  vector<float16_t, 4> yzzy = P.v.yzzy;
+  vector<float16_t, 4> yzzz = P.v.yzzz;
+  vector<float16_t, 4> zxxx = P.v.zxxx;
+  vector<float16_t, 4> zxxy = P.v.zxxy;
+  vector<float16_t, 4> zxxz = P.v.zxxz;
+  vector<float16_t, 4> zxyx = P.v.zxyx;
+  vector<float16_t, 4> zxyy = P.v.zxyy;
+  vector<float16_t, 4> zxyz = P.v.zxyz;
+  vector<float16_t, 4> zxzx = P.v.zxzx;
+  vector<float16_t, 4> zxzy = P.v.zxzy;
+  vector<float16_t, 4> zxzz = P.v.zxzz;
+  vector<float16_t, 4> zyxx = P.v.zyxx;
+  vector<float16_t, 4> zyxy = P.v.zyxy;
+  vector<float16_t, 4> zyxz = P.v.zyxz;
+  vector<float16_t, 4> zyyx = P.v.zyyx;
+  vector<float16_t, 4> zyyy = P.v.zyyy;
+  vector<float16_t, 4> zyyz = P.v.zyyz;
+  vector<float16_t, 4> zyzx = P.v.zyzx;
+  vector<float16_t, 4> zyzy = P.v.zyzy;
+  vector<float16_t, 4> zyzz = P.v.zyzz;
+  vector<float16_t, 4> zzxx = P.v.zzxx;
+  vector<float16_t, 4> zzxy = P.v.zzxy;
+  vector<float16_t, 4> zzxz = P.v.zzxz;
+  vector<float16_t, 4> zzyx = P.v.zzyx;
+  vector<float16_t, 4> zzyy = P.v.zzyy;
+  vector<float16_t, 4> zzyz = P.v.zzyz;
+  vector<float16_t, 4> zzzx = P.v.zzzx;
+  vector<float16_t, 4> zzzy = P.v.zzzy;
+  vector<float16_t, 4> zzzz = P.v.zzzz;
+}
+
+[numthreads(1, 1, 1)]
+void unused_entry_point() {
+}
+
diff --git a/test/tint/expressions/swizzle/read/vec3/f16.wgsl.expected.ir.fxc.hlsl b/test/tint/expressions/swizzle/read/vec3/f16.wgsl.expected.ir.fxc.hlsl
index 3f437dc..ea54df8 100644
--- a/test/tint/expressions/swizzle/read/vec3/f16.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/expressions/swizzle/read/vec3/f16.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,139 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Access
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct S {
+  vector<float16_t, 3> v;
+};
+
+
+static S P = (S)0;
+void f() {
+  vector<float16_t, 3> v = P.v;
+  float16_t x = P.v.x;
+  float16_t y = P.v.y;
+  float16_t z = P.v.z;
+  vector<float16_t, 2> xx = P.v.xx;
+  vector<float16_t, 2> xy = P.v.xy;
+  vector<float16_t, 2> xz = P.v.xz;
+  vector<float16_t, 2> yx = P.v.yx;
+  vector<float16_t, 2> yy = P.v.yy;
+  vector<float16_t, 2> yz = P.v.yz;
+  vector<float16_t, 2> zx = P.v.zx;
+  vector<float16_t, 2> zy = P.v.zy;
+  vector<float16_t, 2> zz = P.v.zz;
+  vector<float16_t, 3> xxx = P.v.xxx;
+  vector<float16_t, 3> xxy = P.v.xxy;
+  vector<float16_t, 3> xxz = P.v.xxz;
+  vector<float16_t, 3> xyx = P.v.xyx;
+  vector<float16_t, 3> xyy = P.v.xyy;
+  vector<float16_t, 3> xyz = P.v.xyz;
+  vector<float16_t, 3> xzx = P.v.xzx;
+  vector<float16_t, 3> xzy = P.v.xzy;
+  vector<float16_t, 3> xzz = P.v.xzz;
+  vector<float16_t, 3> yxx = P.v.yxx;
+  vector<float16_t, 3> yxy = P.v.yxy;
+  vector<float16_t, 3> yxz = P.v.yxz;
+  vector<float16_t, 3> yyx = P.v.yyx;
+  vector<float16_t, 3> yyy = P.v.yyy;
+  vector<float16_t, 3> yyz = P.v.yyz;
+  vector<float16_t, 3> yzx = P.v.yzx;
+  vector<float16_t, 3> yzy = P.v.yzy;
+  vector<float16_t, 3> yzz = P.v.yzz;
+  vector<float16_t, 3> zxx = P.v.zxx;
+  vector<float16_t, 3> zxy = P.v.zxy;
+  vector<float16_t, 3> zxz = P.v.zxz;
+  vector<float16_t, 3> zyx = P.v.zyx;
+  vector<float16_t, 3> zyy = P.v.zyy;
+  vector<float16_t, 3> zyz = P.v.zyz;
+  vector<float16_t, 3> zzx = P.v.zzx;
+  vector<float16_t, 3> zzy = P.v.zzy;
+  vector<float16_t, 3> zzz = P.v.zzz;
+  vector<float16_t, 4> xxxx = P.v.xxxx;
+  vector<float16_t, 4> xxxy = P.v.xxxy;
+  vector<float16_t, 4> xxxz = P.v.xxxz;
+  vector<float16_t, 4> xxyx = P.v.xxyx;
+  vector<float16_t, 4> xxyy = P.v.xxyy;
+  vector<float16_t, 4> xxyz = P.v.xxyz;
+  vector<float16_t, 4> xxzx = P.v.xxzx;
+  vector<float16_t, 4> xxzy = P.v.xxzy;
+  vector<float16_t, 4> xxzz = P.v.xxzz;
+  vector<float16_t, 4> xyxx = P.v.xyxx;
+  vector<float16_t, 4> xyxy = P.v.xyxy;
+  vector<float16_t, 4> xyxz = P.v.xyxz;
+  vector<float16_t, 4> xyyx = P.v.xyyx;
+  vector<float16_t, 4> xyyy = P.v.xyyy;
+  vector<float16_t, 4> xyyz = P.v.xyyz;
+  vector<float16_t, 4> xyzx = P.v.xyzx;
+  vector<float16_t, 4> xyzy = P.v.xyzy;
+  vector<float16_t, 4> xyzz = P.v.xyzz;
+  vector<float16_t, 4> xzxx = P.v.xzxx;
+  vector<float16_t, 4> xzxy = P.v.xzxy;
+  vector<float16_t, 4> xzxz = P.v.xzxz;
+  vector<float16_t, 4> xzyx = P.v.xzyx;
+  vector<float16_t, 4> xzyy = P.v.xzyy;
+  vector<float16_t, 4> xzyz = P.v.xzyz;
+  vector<float16_t, 4> xzzx = P.v.xzzx;
+  vector<float16_t, 4> xzzy = P.v.xzzy;
+  vector<float16_t, 4> xzzz = P.v.xzzz;
+  vector<float16_t, 4> yxxx = P.v.yxxx;
+  vector<float16_t, 4> yxxy = P.v.yxxy;
+  vector<float16_t, 4> yxxz = P.v.yxxz;
+  vector<float16_t, 4> yxyx = P.v.yxyx;
+  vector<float16_t, 4> yxyy = P.v.yxyy;
+  vector<float16_t, 4> yxyz = P.v.yxyz;
+  vector<float16_t, 4> yxzx = P.v.yxzx;
+  vector<float16_t, 4> yxzy = P.v.yxzy;
+  vector<float16_t, 4> yxzz = P.v.yxzz;
+  vector<float16_t, 4> yyxx = P.v.yyxx;
+  vector<float16_t, 4> yyxy = P.v.yyxy;
+  vector<float16_t, 4> yyxz = P.v.yyxz;
+  vector<float16_t, 4> yyyx = P.v.yyyx;
+  vector<float16_t, 4> yyyy = P.v.yyyy;
+  vector<float16_t, 4> yyyz = P.v.yyyz;
+  vector<float16_t, 4> yyzx = P.v.yyzx;
+  vector<float16_t, 4> yyzy = P.v.yyzy;
+  vector<float16_t, 4> yyzz = P.v.yyzz;
+  vector<float16_t, 4> yzxx = P.v.yzxx;
+  vector<float16_t, 4> yzxy = P.v.yzxy;
+  vector<float16_t, 4> yzxz = P.v.yzxz;
+  vector<float16_t, 4> yzyx = P.v.yzyx;
+  vector<float16_t, 4> yzyy = P.v.yzyy;
+  vector<float16_t, 4> yzyz = P.v.yzyz;
+  vector<float16_t, 4> yzzx = P.v.yzzx;
+  vector<float16_t, 4> yzzy = P.v.yzzy;
+  vector<float16_t, 4> yzzz = P.v.yzzz;
+  vector<float16_t, 4> zxxx = P.v.zxxx;
+  vector<float16_t, 4> zxxy = P.v.zxxy;
+  vector<float16_t, 4> zxxz = P.v.zxxz;
+  vector<float16_t, 4> zxyx = P.v.zxyx;
+  vector<float16_t, 4> zxyy = P.v.zxyy;
+  vector<float16_t, 4> zxyz = P.v.zxyz;
+  vector<float16_t, 4> zxzx = P.v.zxzx;
+  vector<float16_t, 4> zxzy = P.v.zxzy;
+  vector<float16_t, 4> zxzz = P.v.zxzz;
+  vector<float16_t, 4> zyxx = P.v.zyxx;
+  vector<float16_t, 4> zyxy = P.v.zyxy;
+  vector<float16_t, 4> zyxz = P.v.zyxz;
+  vector<float16_t, 4> zyyx = P.v.zyyx;
+  vector<float16_t, 4> zyyy = P.v.zyyy;
+  vector<float16_t, 4> zyyz = P.v.zyyz;
+  vector<float16_t, 4> zyzx = P.v.zyzx;
+  vector<float16_t, 4> zyzy = P.v.zyzy;
+  vector<float16_t, 4> zyzz = P.v.zyzz;
+  vector<float16_t, 4> zzxx = P.v.zzxx;
+  vector<float16_t, 4> zzxy = P.v.zzxy;
+  vector<float16_t, 4> zzxz = P.v.zzxz;
+  vector<float16_t, 4> zzyx = P.v.zzyx;
+  vector<float16_t, 4> zzyy = P.v.zzyy;
+  vector<float16_t, 4> zzyz = P.v.zzyz;
+  vector<float16_t, 4> zzzx = P.v.zzzx;
+  vector<float16_t, 4> zzzy = P.v.zzzy;
+  vector<float16_t, 4> zzzz = P.v.zzzz;
+}
+
+[numthreads(1, 1, 1)]
+void unused_entry_point() {
+}
+
+FXC validation failure:
+c:\src\dawn\Shader@0x000002D844F28960(2,10-18): error X3000: syntax error: unexpected token 'float16_t'
+
diff --git a/test/tint/expressions/swizzle/read/vec3/f32.wgsl.expected.ir.dxc.hlsl b/test/tint/expressions/swizzle/read/vec3/f32.wgsl.expected.ir.dxc.hlsl
index 3f437dc..c3a793b 100644
--- a/test/tint/expressions/swizzle/read/vec3/f32.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/expressions/swizzle/read/vec3/f32.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,134 @@
-SKIP: FAILED
+struct S {
+  float3 v;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Access
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+
+static S P = (S)0;
+void f() {
+  float3 v = P.v;
+  float x = P.v.x;
+  float y = P.v.y;
+  float z = P.v.z;
+  float2 xx = P.v.xx;
+  float2 xy = P.v.xy;
+  float2 xz = P.v.xz;
+  float2 yx = P.v.yx;
+  float2 yy = P.v.yy;
+  float2 yz = P.v.yz;
+  float2 zx = P.v.zx;
+  float2 zy = P.v.zy;
+  float2 zz = P.v.zz;
+  float3 xxx = P.v.xxx;
+  float3 xxy = P.v.xxy;
+  float3 xxz = P.v.xxz;
+  float3 xyx = P.v.xyx;
+  float3 xyy = P.v.xyy;
+  float3 xyz = P.v.xyz;
+  float3 xzx = P.v.xzx;
+  float3 xzy = P.v.xzy;
+  float3 xzz = P.v.xzz;
+  float3 yxx = P.v.yxx;
+  float3 yxy = P.v.yxy;
+  float3 yxz = P.v.yxz;
+  float3 yyx = P.v.yyx;
+  float3 yyy = P.v.yyy;
+  float3 yyz = P.v.yyz;
+  float3 yzx = P.v.yzx;
+  float3 yzy = P.v.yzy;
+  float3 yzz = P.v.yzz;
+  float3 zxx = P.v.zxx;
+  float3 zxy = P.v.zxy;
+  float3 zxz = P.v.zxz;
+  float3 zyx = P.v.zyx;
+  float3 zyy = P.v.zyy;
+  float3 zyz = P.v.zyz;
+  float3 zzx = P.v.zzx;
+  float3 zzy = P.v.zzy;
+  float3 zzz = P.v.zzz;
+  float4 xxxx = P.v.xxxx;
+  float4 xxxy = P.v.xxxy;
+  float4 xxxz = P.v.xxxz;
+  float4 xxyx = P.v.xxyx;
+  float4 xxyy = P.v.xxyy;
+  float4 xxyz = P.v.xxyz;
+  float4 xxzx = P.v.xxzx;
+  float4 xxzy = P.v.xxzy;
+  float4 xxzz = P.v.xxzz;
+  float4 xyxx = P.v.xyxx;
+  float4 xyxy = P.v.xyxy;
+  float4 xyxz = P.v.xyxz;
+  float4 xyyx = P.v.xyyx;
+  float4 xyyy = P.v.xyyy;
+  float4 xyyz = P.v.xyyz;
+  float4 xyzx = P.v.xyzx;
+  float4 xyzy = P.v.xyzy;
+  float4 xyzz = P.v.xyzz;
+  float4 xzxx = P.v.xzxx;
+  float4 xzxy = P.v.xzxy;
+  float4 xzxz = P.v.xzxz;
+  float4 xzyx = P.v.xzyx;
+  float4 xzyy = P.v.xzyy;
+  float4 xzyz = P.v.xzyz;
+  float4 xzzx = P.v.xzzx;
+  float4 xzzy = P.v.xzzy;
+  float4 xzzz = P.v.xzzz;
+  float4 yxxx = P.v.yxxx;
+  float4 yxxy = P.v.yxxy;
+  float4 yxxz = P.v.yxxz;
+  float4 yxyx = P.v.yxyx;
+  float4 yxyy = P.v.yxyy;
+  float4 yxyz = P.v.yxyz;
+  float4 yxzx = P.v.yxzx;
+  float4 yxzy = P.v.yxzy;
+  float4 yxzz = P.v.yxzz;
+  float4 yyxx = P.v.yyxx;
+  float4 yyxy = P.v.yyxy;
+  float4 yyxz = P.v.yyxz;
+  float4 yyyx = P.v.yyyx;
+  float4 yyyy = P.v.yyyy;
+  float4 yyyz = P.v.yyyz;
+  float4 yyzx = P.v.yyzx;
+  float4 yyzy = P.v.yyzy;
+  float4 yyzz = P.v.yyzz;
+  float4 yzxx = P.v.yzxx;
+  float4 yzxy = P.v.yzxy;
+  float4 yzxz = P.v.yzxz;
+  float4 yzyx = P.v.yzyx;
+  float4 yzyy = P.v.yzyy;
+  float4 yzyz = P.v.yzyz;
+  float4 yzzx = P.v.yzzx;
+  float4 yzzy = P.v.yzzy;
+  float4 yzzz = P.v.yzzz;
+  float4 zxxx = P.v.zxxx;
+  float4 zxxy = P.v.zxxy;
+  float4 zxxz = P.v.zxxz;
+  float4 zxyx = P.v.zxyx;
+  float4 zxyy = P.v.zxyy;
+  float4 zxyz = P.v.zxyz;
+  float4 zxzx = P.v.zxzx;
+  float4 zxzy = P.v.zxzy;
+  float4 zxzz = P.v.zxzz;
+  float4 zyxx = P.v.zyxx;
+  float4 zyxy = P.v.zyxy;
+  float4 zyxz = P.v.zyxz;
+  float4 zyyx = P.v.zyyx;
+  float4 zyyy = P.v.zyyy;
+  float4 zyyz = P.v.zyyz;
+  float4 zyzx = P.v.zyzx;
+  float4 zyzy = P.v.zyzy;
+  float4 zyzz = P.v.zyzz;
+  float4 zzxx = P.v.zzxx;
+  float4 zzxy = P.v.zzxy;
+  float4 zzxz = P.v.zzxz;
+  float4 zzyx = P.v.zzyx;
+  float4 zzyy = P.v.zzyy;
+  float4 zzyz = P.v.zzyz;
+  float4 zzzx = P.v.zzzx;
+  float4 zzzy = P.v.zzzy;
+  float4 zzzz = P.v.zzzz;
+}
+
+[numthreads(1, 1, 1)]
+void unused_entry_point() {
+}
+
diff --git a/test/tint/expressions/swizzle/read/vec3/f32.wgsl.expected.ir.fxc.hlsl b/test/tint/expressions/swizzle/read/vec3/f32.wgsl.expected.ir.fxc.hlsl
index 3f437dc..c3a793b 100644
--- a/test/tint/expressions/swizzle/read/vec3/f32.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/expressions/swizzle/read/vec3/f32.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,134 @@
-SKIP: FAILED
+struct S {
+  float3 v;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Access
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+
+static S P = (S)0;
+void f() {
+  float3 v = P.v;
+  float x = P.v.x;
+  float y = P.v.y;
+  float z = P.v.z;
+  float2 xx = P.v.xx;
+  float2 xy = P.v.xy;
+  float2 xz = P.v.xz;
+  float2 yx = P.v.yx;
+  float2 yy = P.v.yy;
+  float2 yz = P.v.yz;
+  float2 zx = P.v.zx;
+  float2 zy = P.v.zy;
+  float2 zz = P.v.zz;
+  float3 xxx = P.v.xxx;
+  float3 xxy = P.v.xxy;
+  float3 xxz = P.v.xxz;
+  float3 xyx = P.v.xyx;
+  float3 xyy = P.v.xyy;
+  float3 xyz = P.v.xyz;
+  float3 xzx = P.v.xzx;
+  float3 xzy = P.v.xzy;
+  float3 xzz = P.v.xzz;
+  float3 yxx = P.v.yxx;
+  float3 yxy = P.v.yxy;
+  float3 yxz = P.v.yxz;
+  float3 yyx = P.v.yyx;
+  float3 yyy = P.v.yyy;
+  float3 yyz = P.v.yyz;
+  float3 yzx = P.v.yzx;
+  float3 yzy = P.v.yzy;
+  float3 yzz = P.v.yzz;
+  float3 zxx = P.v.zxx;
+  float3 zxy = P.v.zxy;
+  float3 zxz = P.v.zxz;
+  float3 zyx = P.v.zyx;
+  float3 zyy = P.v.zyy;
+  float3 zyz = P.v.zyz;
+  float3 zzx = P.v.zzx;
+  float3 zzy = P.v.zzy;
+  float3 zzz = P.v.zzz;
+  float4 xxxx = P.v.xxxx;
+  float4 xxxy = P.v.xxxy;
+  float4 xxxz = P.v.xxxz;
+  float4 xxyx = P.v.xxyx;
+  float4 xxyy = P.v.xxyy;
+  float4 xxyz = P.v.xxyz;
+  float4 xxzx = P.v.xxzx;
+  float4 xxzy = P.v.xxzy;
+  float4 xxzz = P.v.xxzz;
+  float4 xyxx = P.v.xyxx;
+  float4 xyxy = P.v.xyxy;
+  float4 xyxz = P.v.xyxz;
+  float4 xyyx = P.v.xyyx;
+  float4 xyyy = P.v.xyyy;
+  float4 xyyz = P.v.xyyz;
+  float4 xyzx = P.v.xyzx;
+  float4 xyzy = P.v.xyzy;
+  float4 xyzz = P.v.xyzz;
+  float4 xzxx = P.v.xzxx;
+  float4 xzxy = P.v.xzxy;
+  float4 xzxz = P.v.xzxz;
+  float4 xzyx = P.v.xzyx;
+  float4 xzyy = P.v.xzyy;
+  float4 xzyz = P.v.xzyz;
+  float4 xzzx = P.v.xzzx;
+  float4 xzzy = P.v.xzzy;
+  float4 xzzz = P.v.xzzz;
+  float4 yxxx = P.v.yxxx;
+  float4 yxxy = P.v.yxxy;
+  float4 yxxz = P.v.yxxz;
+  float4 yxyx = P.v.yxyx;
+  float4 yxyy = P.v.yxyy;
+  float4 yxyz = P.v.yxyz;
+  float4 yxzx = P.v.yxzx;
+  float4 yxzy = P.v.yxzy;
+  float4 yxzz = P.v.yxzz;
+  float4 yyxx = P.v.yyxx;
+  float4 yyxy = P.v.yyxy;
+  float4 yyxz = P.v.yyxz;
+  float4 yyyx = P.v.yyyx;
+  float4 yyyy = P.v.yyyy;
+  float4 yyyz = P.v.yyyz;
+  float4 yyzx = P.v.yyzx;
+  float4 yyzy = P.v.yyzy;
+  float4 yyzz = P.v.yyzz;
+  float4 yzxx = P.v.yzxx;
+  float4 yzxy = P.v.yzxy;
+  float4 yzxz = P.v.yzxz;
+  float4 yzyx = P.v.yzyx;
+  float4 yzyy = P.v.yzyy;
+  float4 yzyz = P.v.yzyz;
+  float4 yzzx = P.v.yzzx;
+  float4 yzzy = P.v.yzzy;
+  float4 yzzz = P.v.yzzz;
+  float4 zxxx = P.v.zxxx;
+  float4 zxxy = P.v.zxxy;
+  float4 zxxz = P.v.zxxz;
+  float4 zxyx = P.v.zxyx;
+  float4 zxyy = P.v.zxyy;
+  float4 zxyz = P.v.zxyz;
+  float4 zxzx = P.v.zxzx;
+  float4 zxzy = P.v.zxzy;
+  float4 zxzz = P.v.zxzz;
+  float4 zyxx = P.v.zyxx;
+  float4 zyxy = P.v.zyxy;
+  float4 zyxz = P.v.zyxz;
+  float4 zyyx = P.v.zyyx;
+  float4 zyyy = P.v.zyyy;
+  float4 zyyz = P.v.zyyz;
+  float4 zyzx = P.v.zyzx;
+  float4 zyzy = P.v.zyzy;
+  float4 zyzz = P.v.zyzz;
+  float4 zzxx = P.v.zzxx;
+  float4 zzxy = P.v.zzxy;
+  float4 zzxz = P.v.zzxz;
+  float4 zzyx = P.v.zzyx;
+  float4 zzyy = P.v.zzyy;
+  float4 zzyz = P.v.zzyz;
+  float4 zzzx = P.v.zzzx;
+  float4 zzzy = P.v.zzzy;
+  float4 zzzz = P.v.zzzz;
+}
+
+[numthreads(1, 1, 1)]
+void unused_entry_point() {
+}
+
diff --git a/test/tint/expressions/swizzle/read/vec3/i32.wgsl.expected.ir.dxc.hlsl b/test/tint/expressions/swizzle/read/vec3/i32.wgsl.expected.ir.dxc.hlsl
index 3f437dc..1a2b9b2 100644
--- a/test/tint/expressions/swizzle/read/vec3/i32.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/expressions/swizzle/read/vec3/i32.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,134 @@
-SKIP: FAILED
+struct S {
+  int3 v;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Access
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+
+static S P = (S)0;
+void f() {
+  int3 v = P.v;
+  int x = P.v.x;
+  int y = P.v.y;
+  int z = P.v.z;
+  int2 xx = P.v.xx;
+  int2 xy = P.v.xy;
+  int2 xz = P.v.xz;
+  int2 yx = P.v.yx;
+  int2 yy = P.v.yy;
+  int2 yz = P.v.yz;
+  int2 zx = P.v.zx;
+  int2 zy = P.v.zy;
+  int2 zz = P.v.zz;
+  int3 xxx = P.v.xxx;
+  int3 xxy = P.v.xxy;
+  int3 xxz = P.v.xxz;
+  int3 xyx = P.v.xyx;
+  int3 xyy = P.v.xyy;
+  int3 xyz = P.v.xyz;
+  int3 xzx = P.v.xzx;
+  int3 xzy = P.v.xzy;
+  int3 xzz = P.v.xzz;
+  int3 yxx = P.v.yxx;
+  int3 yxy = P.v.yxy;
+  int3 yxz = P.v.yxz;
+  int3 yyx = P.v.yyx;
+  int3 yyy = P.v.yyy;
+  int3 yyz = P.v.yyz;
+  int3 yzx = P.v.yzx;
+  int3 yzy = P.v.yzy;
+  int3 yzz = P.v.yzz;
+  int3 zxx = P.v.zxx;
+  int3 zxy = P.v.zxy;
+  int3 zxz = P.v.zxz;
+  int3 zyx = P.v.zyx;
+  int3 zyy = P.v.zyy;
+  int3 zyz = P.v.zyz;
+  int3 zzx = P.v.zzx;
+  int3 zzy = P.v.zzy;
+  int3 zzz = P.v.zzz;
+  int4 xxxx = P.v.xxxx;
+  int4 xxxy = P.v.xxxy;
+  int4 xxxz = P.v.xxxz;
+  int4 xxyx = P.v.xxyx;
+  int4 xxyy = P.v.xxyy;
+  int4 xxyz = P.v.xxyz;
+  int4 xxzx = P.v.xxzx;
+  int4 xxzy = P.v.xxzy;
+  int4 xxzz = P.v.xxzz;
+  int4 xyxx = P.v.xyxx;
+  int4 xyxy = P.v.xyxy;
+  int4 xyxz = P.v.xyxz;
+  int4 xyyx = P.v.xyyx;
+  int4 xyyy = P.v.xyyy;
+  int4 xyyz = P.v.xyyz;
+  int4 xyzx = P.v.xyzx;
+  int4 xyzy = P.v.xyzy;
+  int4 xyzz = P.v.xyzz;
+  int4 xzxx = P.v.xzxx;
+  int4 xzxy = P.v.xzxy;
+  int4 xzxz = P.v.xzxz;
+  int4 xzyx = P.v.xzyx;
+  int4 xzyy = P.v.xzyy;
+  int4 xzyz = P.v.xzyz;
+  int4 xzzx = P.v.xzzx;
+  int4 xzzy = P.v.xzzy;
+  int4 xzzz = P.v.xzzz;
+  int4 yxxx = P.v.yxxx;
+  int4 yxxy = P.v.yxxy;
+  int4 yxxz = P.v.yxxz;
+  int4 yxyx = P.v.yxyx;
+  int4 yxyy = P.v.yxyy;
+  int4 yxyz = P.v.yxyz;
+  int4 yxzx = P.v.yxzx;
+  int4 yxzy = P.v.yxzy;
+  int4 yxzz = P.v.yxzz;
+  int4 yyxx = P.v.yyxx;
+  int4 yyxy = P.v.yyxy;
+  int4 yyxz = P.v.yyxz;
+  int4 yyyx = P.v.yyyx;
+  int4 yyyy = P.v.yyyy;
+  int4 yyyz = P.v.yyyz;
+  int4 yyzx = P.v.yyzx;
+  int4 yyzy = P.v.yyzy;
+  int4 yyzz = P.v.yyzz;
+  int4 yzxx = P.v.yzxx;
+  int4 yzxy = P.v.yzxy;
+  int4 yzxz = P.v.yzxz;
+  int4 yzyx = P.v.yzyx;
+  int4 yzyy = P.v.yzyy;
+  int4 yzyz = P.v.yzyz;
+  int4 yzzx = P.v.yzzx;
+  int4 yzzy = P.v.yzzy;
+  int4 yzzz = P.v.yzzz;
+  int4 zxxx = P.v.zxxx;
+  int4 zxxy = P.v.zxxy;
+  int4 zxxz = P.v.zxxz;
+  int4 zxyx = P.v.zxyx;
+  int4 zxyy = P.v.zxyy;
+  int4 zxyz = P.v.zxyz;
+  int4 zxzx = P.v.zxzx;
+  int4 zxzy = P.v.zxzy;
+  int4 zxzz = P.v.zxzz;
+  int4 zyxx = P.v.zyxx;
+  int4 zyxy = P.v.zyxy;
+  int4 zyxz = P.v.zyxz;
+  int4 zyyx = P.v.zyyx;
+  int4 zyyy = P.v.zyyy;
+  int4 zyyz = P.v.zyyz;
+  int4 zyzx = P.v.zyzx;
+  int4 zyzy = P.v.zyzy;
+  int4 zyzz = P.v.zyzz;
+  int4 zzxx = P.v.zzxx;
+  int4 zzxy = P.v.zzxy;
+  int4 zzxz = P.v.zzxz;
+  int4 zzyx = P.v.zzyx;
+  int4 zzyy = P.v.zzyy;
+  int4 zzyz = P.v.zzyz;
+  int4 zzzx = P.v.zzzx;
+  int4 zzzy = P.v.zzzy;
+  int4 zzzz = P.v.zzzz;
+}
+
+[numthreads(1, 1, 1)]
+void unused_entry_point() {
+}
+
diff --git a/test/tint/expressions/swizzle/read/vec3/i32.wgsl.expected.ir.fxc.hlsl b/test/tint/expressions/swizzle/read/vec3/i32.wgsl.expected.ir.fxc.hlsl
index 3f437dc..1a2b9b2 100644
--- a/test/tint/expressions/swizzle/read/vec3/i32.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/expressions/swizzle/read/vec3/i32.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,134 @@
-SKIP: FAILED
+struct S {
+  int3 v;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Access
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+
+static S P = (S)0;
+void f() {
+  int3 v = P.v;
+  int x = P.v.x;
+  int y = P.v.y;
+  int z = P.v.z;
+  int2 xx = P.v.xx;
+  int2 xy = P.v.xy;
+  int2 xz = P.v.xz;
+  int2 yx = P.v.yx;
+  int2 yy = P.v.yy;
+  int2 yz = P.v.yz;
+  int2 zx = P.v.zx;
+  int2 zy = P.v.zy;
+  int2 zz = P.v.zz;
+  int3 xxx = P.v.xxx;
+  int3 xxy = P.v.xxy;
+  int3 xxz = P.v.xxz;
+  int3 xyx = P.v.xyx;
+  int3 xyy = P.v.xyy;
+  int3 xyz = P.v.xyz;
+  int3 xzx = P.v.xzx;
+  int3 xzy = P.v.xzy;
+  int3 xzz = P.v.xzz;
+  int3 yxx = P.v.yxx;
+  int3 yxy = P.v.yxy;
+  int3 yxz = P.v.yxz;
+  int3 yyx = P.v.yyx;
+  int3 yyy = P.v.yyy;
+  int3 yyz = P.v.yyz;
+  int3 yzx = P.v.yzx;
+  int3 yzy = P.v.yzy;
+  int3 yzz = P.v.yzz;
+  int3 zxx = P.v.zxx;
+  int3 zxy = P.v.zxy;
+  int3 zxz = P.v.zxz;
+  int3 zyx = P.v.zyx;
+  int3 zyy = P.v.zyy;
+  int3 zyz = P.v.zyz;
+  int3 zzx = P.v.zzx;
+  int3 zzy = P.v.zzy;
+  int3 zzz = P.v.zzz;
+  int4 xxxx = P.v.xxxx;
+  int4 xxxy = P.v.xxxy;
+  int4 xxxz = P.v.xxxz;
+  int4 xxyx = P.v.xxyx;
+  int4 xxyy = P.v.xxyy;
+  int4 xxyz = P.v.xxyz;
+  int4 xxzx = P.v.xxzx;
+  int4 xxzy = P.v.xxzy;
+  int4 xxzz = P.v.xxzz;
+  int4 xyxx = P.v.xyxx;
+  int4 xyxy = P.v.xyxy;
+  int4 xyxz = P.v.xyxz;
+  int4 xyyx = P.v.xyyx;
+  int4 xyyy = P.v.xyyy;
+  int4 xyyz = P.v.xyyz;
+  int4 xyzx = P.v.xyzx;
+  int4 xyzy = P.v.xyzy;
+  int4 xyzz = P.v.xyzz;
+  int4 xzxx = P.v.xzxx;
+  int4 xzxy = P.v.xzxy;
+  int4 xzxz = P.v.xzxz;
+  int4 xzyx = P.v.xzyx;
+  int4 xzyy = P.v.xzyy;
+  int4 xzyz = P.v.xzyz;
+  int4 xzzx = P.v.xzzx;
+  int4 xzzy = P.v.xzzy;
+  int4 xzzz = P.v.xzzz;
+  int4 yxxx = P.v.yxxx;
+  int4 yxxy = P.v.yxxy;
+  int4 yxxz = P.v.yxxz;
+  int4 yxyx = P.v.yxyx;
+  int4 yxyy = P.v.yxyy;
+  int4 yxyz = P.v.yxyz;
+  int4 yxzx = P.v.yxzx;
+  int4 yxzy = P.v.yxzy;
+  int4 yxzz = P.v.yxzz;
+  int4 yyxx = P.v.yyxx;
+  int4 yyxy = P.v.yyxy;
+  int4 yyxz = P.v.yyxz;
+  int4 yyyx = P.v.yyyx;
+  int4 yyyy = P.v.yyyy;
+  int4 yyyz = P.v.yyyz;
+  int4 yyzx = P.v.yyzx;
+  int4 yyzy = P.v.yyzy;
+  int4 yyzz = P.v.yyzz;
+  int4 yzxx = P.v.yzxx;
+  int4 yzxy = P.v.yzxy;
+  int4 yzxz = P.v.yzxz;
+  int4 yzyx = P.v.yzyx;
+  int4 yzyy = P.v.yzyy;
+  int4 yzyz = P.v.yzyz;
+  int4 yzzx = P.v.yzzx;
+  int4 yzzy = P.v.yzzy;
+  int4 yzzz = P.v.yzzz;
+  int4 zxxx = P.v.zxxx;
+  int4 zxxy = P.v.zxxy;
+  int4 zxxz = P.v.zxxz;
+  int4 zxyx = P.v.zxyx;
+  int4 zxyy = P.v.zxyy;
+  int4 zxyz = P.v.zxyz;
+  int4 zxzx = P.v.zxzx;
+  int4 zxzy = P.v.zxzy;
+  int4 zxzz = P.v.zxzz;
+  int4 zyxx = P.v.zyxx;
+  int4 zyxy = P.v.zyxy;
+  int4 zyxz = P.v.zyxz;
+  int4 zyyx = P.v.zyyx;
+  int4 zyyy = P.v.zyyy;
+  int4 zyyz = P.v.zyyz;
+  int4 zyzx = P.v.zyzx;
+  int4 zyzy = P.v.zyzy;
+  int4 zyzz = P.v.zyzz;
+  int4 zzxx = P.v.zzxx;
+  int4 zzxy = P.v.zzxy;
+  int4 zzxz = P.v.zzxz;
+  int4 zzyx = P.v.zzyx;
+  int4 zzyy = P.v.zzyy;
+  int4 zzyz = P.v.zzyz;
+  int4 zzzx = P.v.zzzx;
+  int4 zzzy = P.v.zzzy;
+  int4 zzzz = P.v.zzzz;
+}
+
+[numthreads(1, 1, 1)]
+void unused_entry_point() {
+}
+
diff --git a/test/tint/expressions/swizzle/read/vec3/u32.wgsl.expected.ir.dxc.hlsl b/test/tint/expressions/swizzle/read/vec3/u32.wgsl.expected.ir.dxc.hlsl
index 3f437dc..8963e31 100644
--- a/test/tint/expressions/swizzle/read/vec3/u32.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/expressions/swizzle/read/vec3/u32.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,134 @@
-SKIP: FAILED
+struct S {
+  uint3 v;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Access
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+
+static S P = (S)0;
+void f() {
+  uint3 v = P.v;
+  uint x = P.v.x;
+  uint y = P.v.y;
+  uint z = P.v.z;
+  uint2 xx = P.v.xx;
+  uint2 xy = P.v.xy;
+  uint2 xz = P.v.xz;
+  uint2 yx = P.v.yx;
+  uint2 yy = P.v.yy;
+  uint2 yz = P.v.yz;
+  uint2 zx = P.v.zx;
+  uint2 zy = P.v.zy;
+  uint2 zz = P.v.zz;
+  uint3 xxx = P.v.xxx;
+  uint3 xxy = P.v.xxy;
+  uint3 xxz = P.v.xxz;
+  uint3 xyx = P.v.xyx;
+  uint3 xyy = P.v.xyy;
+  uint3 xyz = P.v.xyz;
+  uint3 xzx = P.v.xzx;
+  uint3 xzy = P.v.xzy;
+  uint3 xzz = P.v.xzz;
+  uint3 yxx = P.v.yxx;
+  uint3 yxy = P.v.yxy;
+  uint3 yxz = P.v.yxz;
+  uint3 yyx = P.v.yyx;
+  uint3 yyy = P.v.yyy;
+  uint3 yyz = P.v.yyz;
+  uint3 yzx = P.v.yzx;
+  uint3 yzy = P.v.yzy;
+  uint3 yzz = P.v.yzz;
+  uint3 zxx = P.v.zxx;
+  uint3 zxy = P.v.zxy;
+  uint3 zxz = P.v.zxz;
+  uint3 zyx = P.v.zyx;
+  uint3 zyy = P.v.zyy;
+  uint3 zyz = P.v.zyz;
+  uint3 zzx = P.v.zzx;
+  uint3 zzy = P.v.zzy;
+  uint3 zzz = P.v.zzz;
+  uint4 xxxx = P.v.xxxx;
+  uint4 xxxy = P.v.xxxy;
+  uint4 xxxz = P.v.xxxz;
+  uint4 xxyx = P.v.xxyx;
+  uint4 xxyy = P.v.xxyy;
+  uint4 xxyz = P.v.xxyz;
+  uint4 xxzx = P.v.xxzx;
+  uint4 xxzy = P.v.xxzy;
+  uint4 xxzz = P.v.xxzz;
+  uint4 xyxx = P.v.xyxx;
+  uint4 xyxy = P.v.xyxy;
+  uint4 xyxz = P.v.xyxz;
+  uint4 xyyx = P.v.xyyx;
+  uint4 xyyy = P.v.xyyy;
+  uint4 xyyz = P.v.xyyz;
+  uint4 xyzx = P.v.xyzx;
+  uint4 xyzy = P.v.xyzy;
+  uint4 xyzz = P.v.xyzz;
+  uint4 xzxx = P.v.xzxx;
+  uint4 xzxy = P.v.xzxy;
+  uint4 xzxz = P.v.xzxz;
+  uint4 xzyx = P.v.xzyx;
+  uint4 xzyy = P.v.xzyy;
+  uint4 xzyz = P.v.xzyz;
+  uint4 xzzx = P.v.xzzx;
+  uint4 xzzy = P.v.xzzy;
+  uint4 xzzz = P.v.xzzz;
+  uint4 yxxx = P.v.yxxx;
+  uint4 yxxy = P.v.yxxy;
+  uint4 yxxz = P.v.yxxz;
+  uint4 yxyx = P.v.yxyx;
+  uint4 yxyy = P.v.yxyy;
+  uint4 yxyz = P.v.yxyz;
+  uint4 yxzx = P.v.yxzx;
+  uint4 yxzy = P.v.yxzy;
+  uint4 yxzz = P.v.yxzz;
+  uint4 yyxx = P.v.yyxx;
+  uint4 yyxy = P.v.yyxy;
+  uint4 yyxz = P.v.yyxz;
+  uint4 yyyx = P.v.yyyx;
+  uint4 yyyy = P.v.yyyy;
+  uint4 yyyz = P.v.yyyz;
+  uint4 yyzx = P.v.yyzx;
+  uint4 yyzy = P.v.yyzy;
+  uint4 yyzz = P.v.yyzz;
+  uint4 yzxx = P.v.yzxx;
+  uint4 yzxy = P.v.yzxy;
+  uint4 yzxz = P.v.yzxz;
+  uint4 yzyx = P.v.yzyx;
+  uint4 yzyy = P.v.yzyy;
+  uint4 yzyz = P.v.yzyz;
+  uint4 yzzx = P.v.yzzx;
+  uint4 yzzy = P.v.yzzy;
+  uint4 yzzz = P.v.yzzz;
+  uint4 zxxx = P.v.zxxx;
+  uint4 zxxy = P.v.zxxy;
+  uint4 zxxz = P.v.zxxz;
+  uint4 zxyx = P.v.zxyx;
+  uint4 zxyy = P.v.zxyy;
+  uint4 zxyz = P.v.zxyz;
+  uint4 zxzx = P.v.zxzx;
+  uint4 zxzy = P.v.zxzy;
+  uint4 zxzz = P.v.zxzz;
+  uint4 zyxx = P.v.zyxx;
+  uint4 zyxy = P.v.zyxy;
+  uint4 zyxz = P.v.zyxz;
+  uint4 zyyx = P.v.zyyx;
+  uint4 zyyy = P.v.zyyy;
+  uint4 zyyz = P.v.zyyz;
+  uint4 zyzx = P.v.zyzx;
+  uint4 zyzy = P.v.zyzy;
+  uint4 zyzz = P.v.zyzz;
+  uint4 zzxx = P.v.zzxx;
+  uint4 zzxy = P.v.zzxy;
+  uint4 zzxz = P.v.zzxz;
+  uint4 zzyx = P.v.zzyx;
+  uint4 zzyy = P.v.zzyy;
+  uint4 zzyz = P.v.zzyz;
+  uint4 zzzx = P.v.zzzx;
+  uint4 zzzy = P.v.zzzy;
+  uint4 zzzz = P.v.zzzz;
+}
+
+[numthreads(1, 1, 1)]
+void unused_entry_point() {
+}
+
diff --git a/test/tint/expressions/swizzle/read/vec3/u32.wgsl.expected.ir.fxc.hlsl b/test/tint/expressions/swizzle/read/vec3/u32.wgsl.expected.ir.fxc.hlsl
index 3f437dc..8963e31 100644
--- a/test/tint/expressions/swizzle/read/vec3/u32.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/expressions/swizzle/read/vec3/u32.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,134 @@
-SKIP: FAILED
+struct S {
+  uint3 v;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Access
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+
+static S P = (S)0;
+void f() {
+  uint3 v = P.v;
+  uint x = P.v.x;
+  uint y = P.v.y;
+  uint z = P.v.z;
+  uint2 xx = P.v.xx;
+  uint2 xy = P.v.xy;
+  uint2 xz = P.v.xz;
+  uint2 yx = P.v.yx;
+  uint2 yy = P.v.yy;
+  uint2 yz = P.v.yz;
+  uint2 zx = P.v.zx;
+  uint2 zy = P.v.zy;
+  uint2 zz = P.v.zz;
+  uint3 xxx = P.v.xxx;
+  uint3 xxy = P.v.xxy;
+  uint3 xxz = P.v.xxz;
+  uint3 xyx = P.v.xyx;
+  uint3 xyy = P.v.xyy;
+  uint3 xyz = P.v.xyz;
+  uint3 xzx = P.v.xzx;
+  uint3 xzy = P.v.xzy;
+  uint3 xzz = P.v.xzz;
+  uint3 yxx = P.v.yxx;
+  uint3 yxy = P.v.yxy;
+  uint3 yxz = P.v.yxz;
+  uint3 yyx = P.v.yyx;
+  uint3 yyy = P.v.yyy;
+  uint3 yyz = P.v.yyz;
+  uint3 yzx = P.v.yzx;
+  uint3 yzy = P.v.yzy;
+  uint3 yzz = P.v.yzz;
+  uint3 zxx = P.v.zxx;
+  uint3 zxy = P.v.zxy;
+  uint3 zxz = P.v.zxz;
+  uint3 zyx = P.v.zyx;
+  uint3 zyy = P.v.zyy;
+  uint3 zyz = P.v.zyz;
+  uint3 zzx = P.v.zzx;
+  uint3 zzy = P.v.zzy;
+  uint3 zzz = P.v.zzz;
+  uint4 xxxx = P.v.xxxx;
+  uint4 xxxy = P.v.xxxy;
+  uint4 xxxz = P.v.xxxz;
+  uint4 xxyx = P.v.xxyx;
+  uint4 xxyy = P.v.xxyy;
+  uint4 xxyz = P.v.xxyz;
+  uint4 xxzx = P.v.xxzx;
+  uint4 xxzy = P.v.xxzy;
+  uint4 xxzz = P.v.xxzz;
+  uint4 xyxx = P.v.xyxx;
+  uint4 xyxy = P.v.xyxy;
+  uint4 xyxz = P.v.xyxz;
+  uint4 xyyx = P.v.xyyx;
+  uint4 xyyy = P.v.xyyy;
+  uint4 xyyz = P.v.xyyz;
+  uint4 xyzx = P.v.xyzx;
+  uint4 xyzy = P.v.xyzy;
+  uint4 xyzz = P.v.xyzz;
+  uint4 xzxx = P.v.xzxx;
+  uint4 xzxy = P.v.xzxy;
+  uint4 xzxz = P.v.xzxz;
+  uint4 xzyx = P.v.xzyx;
+  uint4 xzyy = P.v.xzyy;
+  uint4 xzyz = P.v.xzyz;
+  uint4 xzzx = P.v.xzzx;
+  uint4 xzzy = P.v.xzzy;
+  uint4 xzzz = P.v.xzzz;
+  uint4 yxxx = P.v.yxxx;
+  uint4 yxxy = P.v.yxxy;
+  uint4 yxxz = P.v.yxxz;
+  uint4 yxyx = P.v.yxyx;
+  uint4 yxyy = P.v.yxyy;
+  uint4 yxyz = P.v.yxyz;
+  uint4 yxzx = P.v.yxzx;
+  uint4 yxzy = P.v.yxzy;
+  uint4 yxzz = P.v.yxzz;
+  uint4 yyxx = P.v.yyxx;
+  uint4 yyxy = P.v.yyxy;
+  uint4 yyxz = P.v.yyxz;
+  uint4 yyyx = P.v.yyyx;
+  uint4 yyyy = P.v.yyyy;
+  uint4 yyyz = P.v.yyyz;
+  uint4 yyzx = P.v.yyzx;
+  uint4 yyzy = P.v.yyzy;
+  uint4 yyzz = P.v.yyzz;
+  uint4 yzxx = P.v.yzxx;
+  uint4 yzxy = P.v.yzxy;
+  uint4 yzxz = P.v.yzxz;
+  uint4 yzyx = P.v.yzyx;
+  uint4 yzyy = P.v.yzyy;
+  uint4 yzyz = P.v.yzyz;
+  uint4 yzzx = P.v.yzzx;
+  uint4 yzzy = P.v.yzzy;
+  uint4 yzzz = P.v.yzzz;
+  uint4 zxxx = P.v.zxxx;
+  uint4 zxxy = P.v.zxxy;
+  uint4 zxxz = P.v.zxxz;
+  uint4 zxyx = P.v.zxyx;
+  uint4 zxyy = P.v.zxyy;
+  uint4 zxyz = P.v.zxyz;
+  uint4 zxzx = P.v.zxzx;
+  uint4 zxzy = P.v.zxzy;
+  uint4 zxzz = P.v.zxzz;
+  uint4 zyxx = P.v.zyxx;
+  uint4 zyxy = P.v.zyxy;
+  uint4 zyxz = P.v.zyxz;
+  uint4 zyyx = P.v.zyyx;
+  uint4 zyyy = P.v.zyyy;
+  uint4 zyyz = P.v.zyyz;
+  uint4 zyzx = P.v.zyzx;
+  uint4 zyzy = P.v.zyzy;
+  uint4 zyzz = P.v.zyzz;
+  uint4 zzxx = P.v.zzxx;
+  uint4 zzxy = P.v.zzxy;
+  uint4 zzxz = P.v.zzxz;
+  uint4 zzyx = P.v.zzyx;
+  uint4 zzyy = P.v.zzyy;
+  uint4 zzyz = P.v.zzyz;
+  uint4 zzzx = P.v.zzzx;
+  uint4 zzzy = P.v.zzzy;
+  uint4 zzzz = P.v.zzzz;
+}
+
+[numthreads(1, 1, 1)]
+void unused_entry_point() {
+}
+
diff --git a/test/tint/expressions/swizzle/write/packed_vec3/f16.wgsl.expected.ir.dxc.hlsl b/test/tint/expressions/swizzle/write/packed_vec3/f16.wgsl.expected.ir.dxc.hlsl
index 3f437dc..b913875 100644
--- a/test/tint/expressions/swizzle/write/packed_vec3/f16.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/expressions/swizzle/write/packed_vec3/f16.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,13 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Access
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWByteAddressBuffer U : register(u0);
+void f() {
+  U.Store<vector<float16_t, 3> >(0u, vector<float16_t, 3>(float16_t(1.0h), float16_t(2.0h), float16_t(3.0h)));
+  U.Store<float16_t>(0u, float16_t(1.0h));
+  U.Store<float16_t>(2u, float16_t(2.0h));
+  U.Store<float16_t>(4u, float16_t(3.0h));
+}
+
+[numthreads(1, 1, 1)]
+void unused_entry_point() {
+}
+
diff --git a/test/tint/expressions/swizzle/write/packed_vec3/f16.wgsl.expected.ir.fxc.hlsl b/test/tint/expressions/swizzle/write/packed_vec3/f16.wgsl.expected.ir.fxc.hlsl
index 3f437dc..dfa6dd2 100644
--- a/test/tint/expressions/swizzle/write/packed_vec3/f16.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/expressions/swizzle/write/packed_vec3/f16.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,18 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Access
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+
+RWByteAddressBuffer U : register(u0);
+void f() {
+  U.Store<vector<float16_t, 3> >(0u, vector<float16_t, 3>(float16_t(1.0h), float16_t(2.0h), float16_t(3.0h)));
+  U.Store<float16_t>(0u, float16_t(1.0h));
+  U.Store<float16_t>(2u, float16_t(2.0h));
+  U.Store<float16_t>(4u, float16_t(3.0h));
+}
+
+[numthreads(1, 1, 1)]
+void unused_entry_point() {
+}
+
+FXC validation failure:
+c:\src\dawn\Shader@0x0000020E68E2F8D0(4,3-9): error X3018: invalid subscript 'Store'
+
diff --git a/test/tint/expressions/swizzle/write/packed_vec3/f32.wgsl.expected.ir.dxc.hlsl b/test/tint/expressions/swizzle/write/packed_vec3/f32.wgsl.expected.ir.dxc.hlsl
index 3f437dc..cd72441 100644
--- a/test/tint/expressions/swizzle/write/packed_vec3/f32.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/expressions/swizzle/write/packed_vec3/f32.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,13 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Access
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWByteAddressBuffer U : register(u0);
+void f() {
+  U.Store3(0u, asuint(float3(1.0f, 2.0f, 3.0f)));
+  U.Store(0u, asuint(1.0f));
+  U.Store(4u, asuint(2.0f));
+  U.Store(8u, asuint(3.0f));
+}
+
+[numthreads(1, 1, 1)]
+void unused_entry_point() {
+}
+
diff --git a/test/tint/expressions/swizzle/write/packed_vec3/f32.wgsl.expected.ir.fxc.hlsl b/test/tint/expressions/swizzle/write/packed_vec3/f32.wgsl.expected.ir.fxc.hlsl
index 3f437dc..cd72441 100644
--- a/test/tint/expressions/swizzle/write/packed_vec3/f32.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/expressions/swizzle/write/packed_vec3/f32.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,13 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Access
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWByteAddressBuffer U : register(u0);
+void f() {
+  U.Store3(0u, asuint(float3(1.0f, 2.0f, 3.0f)));
+  U.Store(0u, asuint(1.0f));
+  U.Store(4u, asuint(2.0f));
+  U.Store(8u, asuint(3.0f));
+}
+
+[numthreads(1, 1, 1)]
+void unused_entry_point() {
+}
+
diff --git a/test/tint/expressions/swizzle/write/packed_vec3/i32.wgsl.expected.ir.dxc.hlsl b/test/tint/expressions/swizzle/write/packed_vec3/i32.wgsl.expected.ir.dxc.hlsl
index 3f437dc..0646341 100644
--- a/test/tint/expressions/swizzle/write/packed_vec3/i32.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/expressions/swizzle/write/packed_vec3/i32.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,13 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Access
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWByteAddressBuffer U : register(u0);
+void f() {
+  U.Store3(0u, asuint(int3(1, 2, 3)));
+  U.Store(0u, asuint(1));
+  U.Store(4u, asuint(2));
+  U.Store(8u, asuint(3));
+}
+
+[numthreads(1, 1, 1)]
+void unused_entry_point() {
+}
+
diff --git a/test/tint/expressions/swizzle/write/packed_vec3/i32.wgsl.expected.ir.fxc.hlsl b/test/tint/expressions/swizzle/write/packed_vec3/i32.wgsl.expected.ir.fxc.hlsl
index 3f437dc..0646341 100644
--- a/test/tint/expressions/swizzle/write/packed_vec3/i32.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/expressions/swizzle/write/packed_vec3/i32.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,13 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Access
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWByteAddressBuffer U : register(u0);
+void f() {
+  U.Store3(0u, asuint(int3(1, 2, 3)));
+  U.Store(0u, asuint(1));
+  U.Store(4u, asuint(2));
+  U.Store(8u, asuint(3));
+}
+
+[numthreads(1, 1, 1)]
+void unused_entry_point() {
+}
+
diff --git a/test/tint/expressions/swizzle/write/packed_vec3/u32.wgsl.expected.ir.dxc.hlsl b/test/tint/expressions/swizzle/write/packed_vec3/u32.wgsl.expected.ir.dxc.hlsl
index 3f437dc..b3cea4e 100644
--- a/test/tint/expressions/swizzle/write/packed_vec3/u32.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/expressions/swizzle/write/packed_vec3/u32.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,13 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Access
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWByteAddressBuffer U : register(u0);
+void f() {
+  U.Store3(0u, uint3(1u, 2u, 3u));
+  U.Store(0u, 1u);
+  U.Store(4u, 2u);
+  U.Store(8u, 3u);
+}
+
+[numthreads(1, 1, 1)]
+void unused_entry_point() {
+}
+
diff --git a/test/tint/expressions/swizzle/write/packed_vec3/u32.wgsl.expected.ir.fxc.hlsl b/test/tint/expressions/swizzle/write/packed_vec3/u32.wgsl.expected.ir.fxc.hlsl
index 3f437dc..b3cea4e 100644
--- a/test/tint/expressions/swizzle/write/packed_vec3/u32.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/expressions/swizzle/write/packed_vec3/u32.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,13 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Access
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWByteAddressBuffer U : register(u0);
+void f() {
+  U.Store3(0u, uint3(1u, 2u, 3u));
+  U.Store(0u, 1u);
+  U.Store(4u, 2u);
+  U.Store(8u, 3u);
+}
+
+[numthreads(1, 1, 1)]
+void unused_entry_point() {
+}
+
diff --git a/test/tint/expressions/swizzle/write/swizzle.wgsl.expected.ir.dxc.hlsl b/test/tint/expressions/swizzle/write/swizzle.wgsl.expected.ir.dxc.hlsl
index c0935cc..1840a3c1 100644
--- a/test/tint/expressions/swizzle/write/swizzle.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/expressions/swizzle/write/swizzle.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,17 @@
-SKIP: FAILED
+struct S {
+  float3 val[3];
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:198 internal compiler error: Switch() matched no cases. Type: tint::core::ir::StoreVectorElement
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+
+void a() {
+  int4 a_1 = (0).xxxx;
+  a_1[0u] = 1;
+  a_1[2u] = 2;
+  S d = (S)0;
+  d.val[2][1u] = 3.0f;
+}
+
+[numthreads(1, 1, 1)]
+void unused_entry_point() {
+}
+
diff --git a/test/tint/expressions/swizzle/write/swizzle.wgsl.expected.ir.fxc.hlsl b/test/tint/expressions/swizzle/write/swizzle.wgsl.expected.ir.fxc.hlsl
index c0935cc..1840a3c1 100644
--- a/test/tint/expressions/swizzle/write/swizzle.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/expressions/swizzle/write/swizzle.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,17 @@
-SKIP: FAILED
+struct S {
+  float3 val[3];
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:198 internal compiler error: Switch() matched no cases. Type: tint::core::ir::StoreVectorElement
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+
+void a() {
+  int4 a_1 = (0).xxxx;
+  a_1[0u] = 1;
+  a_1[2u] = 2;
+  S d = (S)0;
+  d.val[2][1u] = 3.0f;
+}
+
+[numthreads(1, 1, 1)]
+void unused_entry_point() {
+}
+
diff --git a/test/tint/expressions/swizzle/write/vec3/f16.wgsl.expected.ir.dxc.hlsl b/test/tint/expressions/swizzle/write/vec3/f16.wgsl.expected.ir.dxc.hlsl
index 3f437dc..c21d5af 100644
--- a/test/tint/expressions/swizzle/write/vec3/f16.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/expressions/swizzle/write/vec3/f16.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,17 @@
-SKIP: FAILED
+struct S {
+  vector<float16_t, 3> v;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Access
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+
+static S P = (S)0;
+void f() {
+  P.v = vector<float16_t, 3>(float16_t(1.0h), float16_t(2.0h), float16_t(3.0h));
+  P.v[0u] = float16_t(1.0h);
+  P.v[1u] = float16_t(2.0h);
+  P.v[2u] = float16_t(3.0h);
+}
+
+[numthreads(1, 1, 1)]
+void unused_entry_point() {
+}
+
diff --git a/test/tint/expressions/swizzle/write/vec3/f16.wgsl.expected.ir.fxc.hlsl b/test/tint/expressions/swizzle/write/vec3/f16.wgsl.expected.ir.fxc.hlsl
index 3f437dc..187c3c7 100644
--- a/test/tint/expressions/swizzle/write/vec3/f16.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/expressions/swizzle/write/vec3/f16.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,22 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Access
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct S {
+  vector<float16_t, 3> v;
+};
+
+
+static S P = (S)0;
+void f() {
+  P.v = vector<float16_t, 3>(float16_t(1.0h), float16_t(2.0h), float16_t(3.0h));
+  P.v[0u] = float16_t(1.0h);
+  P.v[1u] = float16_t(2.0h);
+  P.v[2u] = float16_t(3.0h);
+}
+
+[numthreads(1, 1, 1)]
+void unused_entry_point() {
+}
+
+FXC validation failure:
+c:\src\dawn\Shader@0x000001B023E40070(2,10-18): error X3000: syntax error: unexpected token 'float16_t'
+
diff --git a/test/tint/expressions/swizzle/write/vec3/f32.wgsl.expected.ir.dxc.hlsl b/test/tint/expressions/swizzle/write/vec3/f32.wgsl.expected.ir.dxc.hlsl
index 3f437dc..a8d000d 100644
--- a/test/tint/expressions/swizzle/write/vec3/f32.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/expressions/swizzle/write/vec3/f32.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,17 @@
-SKIP: FAILED
+struct S {
+  float3 v;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Access
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+
+static S P = (S)0;
+void f() {
+  P.v = float3(1.0f, 2.0f, 3.0f);
+  P.v[0u] = 1.0f;
+  P.v[1u] = 2.0f;
+  P.v[2u] = 3.0f;
+}
+
+[numthreads(1, 1, 1)]
+void unused_entry_point() {
+}
+
diff --git a/test/tint/expressions/swizzle/write/vec3/f32.wgsl.expected.ir.fxc.hlsl b/test/tint/expressions/swizzle/write/vec3/f32.wgsl.expected.ir.fxc.hlsl
index 3f437dc..a8d000d 100644
--- a/test/tint/expressions/swizzle/write/vec3/f32.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/expressions/swizzle/write/vec3/f32.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,17 @@
-SKIP: FAILED
+struct S {
+  float3 v;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Access
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+
+static S P = (S)0;
+void f() {
+  P.v = float3(1.0f, 2.0f, 3.0f);
+  P.v[0u] = 1.0f;
+  P.v[1u] = 2.0f;
+  P.v[2u] = 3.0f;
+}
+
+[numthreads(1, 1, 1)]
+void unused_entry_point() {
+}
+
diff --git a/test/tint/expressions/swizzle/write/vec3/i32.wgsl.expected.ir.dxc.hlsl b/test/tint/expressions/swizzle/write/vec3/i32.wgsl.expected.ir.dxc.hlsl
index 3f437dc..eec1279 100644
--- a/test/tint/expressions/swizzle/write/vec3/i32.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/expressions/swizzle/write/vec3/i32.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,17 @@
-SKIP: FAILED
+struct S {
+  int3 v;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Access
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+
+static S P = (S)0;
+void f() {
+  P.v = int3(1, 2, 3);
+  P.v[0u] = 1;
+  P.v[1u] = 2;
+  P.v[2u] = 3;
+}
+
+[numthreads(1, 1, 1)]
+void unused_entry_point() {
+}
+
diff --git a/test/tint/expressions/swizzle/write/vec3/i32.wgsl.expected.ir.fxc.hlsl b/test/tint/expressions/swizzle/write/vec3/i32.wgsl.expected.ir.fxc.hlsl
index 3f437dc..eec1279 100644
--- a/test/tint/expressions/swizzle/write/vec3/i32.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/expressions/swizzle/write/vec3/i32.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,17 @@
-SKIP: FAILED
+struct S {
+  int3 v;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Access
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+
+static S P = (S)0;
+void f() {
+  P.v = int3(1, 2, 3);
+  P.v[0u] = 1;
+  P.v[1u] = 2;
+  P.v[2u] = 3;
+}
+
+[numthreads(1, 1, 1)]
+void unused_entry_point() {
+}
+
diff --git a/test/tint/expressions/swizzle/write/vec3/u32.wgsl.expected.ir.dxc.hlsl b/test/tint/expressions/swizzle/write/vec3/u32.wgsl.expected.ir.dxc.hlsl
index 3f437dc..a21c8a4 100644
--- a/test/tint/expressions/swizzle/write/vec3/u32.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/expressions/swizzle/write/vec3/u32.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,17 @@
-SKIP: FAILED
+struct S {
+  uint3 v;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Access
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+
+static S P = (S)0;
+void f() {
+  P.v = uint3(1u, 2u, 3u);
+  P.v[0u] = 1u;
+  P.v[1u] = 2u;
+  P.v[2u] = 3u;
+}
+
+[numthreads(1, 1, 1)]
+void unused_entry_point() {
+}
+
diff --git a/test/tint/expressions/swizzle/write/vec3/u32.wgsl.expected.ir.fxc.hlsl b/test/tint/expressions/swizzle/write/vec3/u32.wgsl.expected.ir.fxc.hlsl
index 3f437dc..a21c8a4 100644
--- a/test/tint/expressions/swizzle/write/vec3/u32.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/expressions/swizzle/write/vec3/u32.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,17 @@
-SKIP: FAILED
+struct S {
+  uint3 v;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Access
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+
+static S P = (S)0;
+void f() {
+  P.v = uint3(1u, 2u, 3u);
+  P.v[0u] = 1u;
+  P.v[1u] = 2u;
+  P.v[2u] = 3u;
+}
+
+[numthreads(1, 1, 1)]
+void unused_entry_point() {
+}
+
diff --git a/test/tint/expressions/type_conv/mat2x2/function/f16-f32.wgsl.expected.ir.dxc.hlsl b/test/tint/expressions/type_conv/mat2x2/function/f16-f32.wgsl.expected.ir.dxc.hlsl
index 48e23f4..f4011a1 100644
--- a/test/tint/expressions/type_conv/mat2x2/function/f16-f32.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/expressions/type_conv/mat2x2/function/f16-f32.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,15 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Convert
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+static float16_t t = float16_t(0.0h);
+matrix<float16_t, 2, 2> m() {
+  t = (t + float16_t(1.0h));
+  return matrix<float16_t, 2, 2>(vector<float16_t, 2>(float16_t(1.0h), float16_t(2.0h)), vector<float16_t, 2>(float16_t(3.0h), float16_t(4.0h)));
+}
+
+void f() {
+  float2x2 v = float2x2(m());
+}
+
+[numthreads(1, 1, 1)]
+void unused_entry_point() {
+}
+
diff --git a/test/tint/expressions/type_conv/mat2x2/function/f16-f32.wgsl.expected.ir.fxc.hlsl b/test/tint/expressions/type_conv/mat2x2/function/f16-f32.wgsl.expected.ir.fxc.hlsl
index 48e23f4..9d27c9f 100644
--- a/test/tint/expressions/type_conv/mat2x2/function/f16-f32.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/expressions/type_conv/mat2x2/function/f16-f32.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,20 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Convert
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+
+static float16_t t = float16_t(0.0h);
+matrix<float16_t, 2, 2> m() {
+  t = (t + float16_t(1.0h));
+  return matrix<float16_t, 2, 2>(vector<float16_t, 2>(float16_t(1.0h), float16_t(2.0h)), vector<float16_t, 2>(float16_t(3.0h), float16_t(4.0h)));
+}
+
+void f() {
+  float2x2 v = float2x2(m());
+}
+
+[numthreads(1, 1, 1)]
+void unused_entry_point() {
+}
+
+FXC validation failure:
+c:\src\dawn\Shader@0x0000020F941116A0(2,8-16): error X3000: unrecognized identifier 'float16_t'
+
diff --git a/test/tint/expressions/type_conv/mat2x2/function/f32-f16.wgsl.expected.ir.dxc.hlsl b/test/tint/expressions/type_conv/mat2x2/function/f32-f16.wgsl.expected.ir.dxc.hlsl
index 48e23f4..cd71201 100644
--- a/test/tint/expressions/type_conv/mat2x2/function/f32-f16.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/expressions/type_conv/mat2x2/function/f32-f16.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,15 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Convert
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+static float t = 0.0f;
+float2x2 m() {
+  t = (t + 1.0f);
+  return float2x2(float2(1.0f, 2.0f), float2(3.0f, 4.0f));
+}
+
+void f() {
+  matrix<float16_t, 2, 2> v = matrix<float16_t, 2, 2>(m());
+}
+
+[numthreads(1, 1, 1)]
+void unused_entry_point() {
+}
+
diff --git a/test/tint/expressions/type_conv/mat2x2/function/f32-f16.wgsl.expected.ir.fxc.hlsl b/test/tint/expressions/type_conv/mat2x2/function/f32-f16.wgsl.expected.ir.fxc.hlsl
index 48e23f4..0b72f11 100644
--- a/test/tint/expressions/type_conv/mat2x2/function/f32-f16.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/expressions/type_conv/mat2x2/function/f32-f16.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,20 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Convert
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+
+static float t = 0.0f;
+float2x2 m() {
+  t = (t + 1.0f);
+  return float2x2(float2(1.0f, 2.0f), float2(3.0f, 4.0f));
+}
+
+void f() {
+  matrix<float16_t, 2, 2> v = matrix<float16_t, 2, 2>(m());
+}
+
+[numthreads(1, 1, 1)]
+void unused_entry_point() {
+}
+
+FXC validation failure:
+c:\src\dawn\Shader@0x000001CB895D1250(9,10-18): error X3000: syntax error: unexpected token 'float16_t'
+
diff --git a/test/tint/expressions/type_conv/mat2x2/literal/f16-f32.wgsl.expected.ir.dxc.hlsl b/test/tint/expressions/type_conv/mat2x2/literal/f16-f32.wgsl.expected.ir.dxc.hlsl
index 9acd2d7..d21e6b5 100644
--- a/test/tint/expressions/type_conv/mat2x2/literal/f16-f32.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/expressions/type_conv/mat2x2/literal/f16-f32.wgsl.expected.ir.dxc.hlsl
@@ -1,3 +1,5 @@
+
+static float2x2 u = float2x2(float2(1.0f, 2.0f), float2(3.0f, 4.0f));
 [numthreads(1, 1, 1)]
 void unused_entry_point() {
 }
diff --git a/test/tint/expressions/type_conv/mat2x2/literal/f16-f32.wgsl.expected.ir.fxc.hlsl b/test/tint/expressions/type_conv/mat2x2/literal/f16-f32.wgsl.expected.ir.fxc.hlsl
index 9acd2d7..d21e6b5 100644
--- a/test/tint/expressions/type_conv/mat2x2/literal/f16-f32.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/expressions/type_conv/mat2x2/literal/f16-f32.wgsl.expected.ir.fxc.hlsl
@@ -1,3 +1,5 @@
+
+static float2x2 u = float2x2(float2(1.0f, 2.0f), float2(3.0f, 4.0f));
 [numthreads(1, 1, 1)]
 void unused_entry_point() {
 }
diff --git a/test/tint/expressions/type_conv/mat2x2/literal/f32-f16.wgsl.expected.ir.dxc.hlsl b/test/tint/expressions/type_conv/mat2x2/literal/f32-f16.wgsl.expected.ir.dxc.hlsl
index 9acd2d7..e003093 100644
--- a/test/tint/expressions/type_conv/mat2x2/literal/f32-f16.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/expressions/type_conv/mat2x2/literal/f32-f16.wgsl.expected.ir.dxc.hlsl
@@ -1,3 +1,5 @@
+
+static matrix<float16_t, 2, 2> u = matrix<float16_t, 2, 2>(vector<float16_t, 2>(float16_t(1.0h), float16_t(2.0h)), vector<float16_t, 2>(float16_t(3.0h), float16_t(4.0h)));
 [numthreads(1, 1, 1)]
 void unused_entry_point() {
 }
diff --git a/test/tint/expressions/type_conv/mat2x2/literal/f32-f16.wgsl.expected.ir.fxc.hlsl b/test/tint/expressions/type_conv/mat2x2/literal/f32-f16.wgsl.expected.ir.fxc.hlsl
index 9acd2d7..83a45dc 100644
--- a/test/tint/expressions/type_conv/mat2x2/literal/f32-f16.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/expressions/type_conv/mat2x2/literal/f32-f16.wgsl.expected.ir.fxc.hlsl
@@ -1,4 +1,11 @@
+SKIP: FAILED
+
+
+static matrix<float16_t, 2, 2> u = matrix<float16_t, 2, 2>(vector<float16_t, 2>(float16_t(1.0h), float16_t(2.0h)), vector<float16_t, 2>(float16_t(3.0h), float16_t(4.0h)));
 [numthreads(1, 1, 1)]
 void unused_entry_point() {
 }
 
+FXC validation failure:
+c:\src\dawn\Shader@0x0000026948DE0220(2,15-23): error X3000: syntax error: unexpected token 'float16_t'
+
diff --git a/test/tint/expressions/type_conv/mat2x2/var/f16-f32.wgsl.expected.ir.dxc.hlsl b/test/tint/expressions/type_conv/mat2x2/var/f16-f32.wgsl.expected.ir.dxc.hlsl
index 48e23f4..1fe172b 100644
--- a/test/tint/expressions/type_conv/mat2x2/var/f16-f32.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/expressions/type_conv/mat2x2/var/f16-f32.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,10 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Convert
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+static matrix<float16_t, 2, 2> u = matrix<float16_t, 2, 2>(vector<float16_t, 2>(float16_t(1.0h), float16_t(2.0h)), vector<float16_t, 2>(float16_t(3.0h), float16_t(4.0h)));
+void f() {
+  float2x2 v = float2x2(u);
+}
+
+[numthreads(1, 1, 1)]
+void unused_entry_point() {
+}
+
diff --git a/test/tint/expressions/type_conv/mat2x2/var/f16-f32.wgsl.expected.ir.fxc.hlsl b/test/tint/expressions/type_conv/mat2x2/var/f16-f32.wgsl.expected.ir.fxc.hlsl
index 48e23f4..6863448 100644
--- a/test/tint/expressions/type_conv/mat2x2/var/f16-f32.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/expressions/type_conv/mat2x2/var/f16-f32.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,15 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Convert
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+
+static matrix<float16_t, 2, 2> u = matrix<float16_t, 2, 2>(vector<float16_t, 2>(float16_t(1.0h), float16_t(2.0h)), vector<float16_t, 2>(float16_t(3.0h), float16_t(4.0h)));
+void f() {
+  float2x2 v = float2x2(u);
+}
+
+[numthreads(1, 1, 1)]
+void unused_entry_point() {
+}
+
+FXC validation failure:
+c:\src\dawn\Shader@0x000001C17E60C150(2,15-23): error X3000: syntax error: unexpected token 'float16_t'
+
diff --git a/test/tint/expressions/type_conv/mat2x2/var/f32-f16.wgsl.expected.ir.dxc.hlsl b/test/tint/expressions/type_conv/mat2x2/var/f32-f16.wgsl.expected.ir.dxc.hlsl
index 48e23f4..10e4ae4 100644
--- a/test/tint/expressions/type_conv/mat2x2/var/f32-f16.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/expressions/type_conv/mat2x2/var/f32-f16.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,10 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Convert
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+static float2x2 u = float2x2(float2(1.0f, 2.0f), float2(3.0f, 4.0f));
+void f() {
+  matrix<float16_t, 2, 2> v = matrix<float16_t, 2, 2>(u);
+}
+
+[numthreads(1, 1, 1)]
+void unused_entry_point() {
+}
+
diff --git a/test/tint/expressions/type_conv/mat2x2/var/f32-f16.wgsl.expected.ir.fxc.hlsl b/test/tint/expressions/type_conv/mat2x2/var/f32-f16.wgsl.expected.ir.fxc.hlsl
index 48e23f4..0152c0f 100644
--- a/test/tint/expressions/type_conv/mat2x2/var/f32-f16.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/expressions/type_conv/mat2x2/var/f32-f16.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,15 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Convert
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+
+static float2x2 u = float2x2(float2(1.0f, 2.0f), float2(3.0f, 4.0f));
+void f() {
+  matrix<float16_t, 2, 2> v = matrix<float16_t, 2, 2>(u);
+}
+
+[numthreads(1, 1, 1)]
+void unused_entry_point() {
+}
+
+FXC validation failure:
+c:\src\dawn\Shader@0x00000203B819EDA0(4,10-18): error X3000: syntax error: unexpected token 'float16_t'
+
diff --git a/test/tint/expressions/type_conv/mat2x3/function/f16-f32.wgsl.expected.ir.dxc.hlsl b/test/tint/expressions/type_conv/mat2x3/function/f16-f32.wgsl.expected.ir.dxc.hlsl
index 48e23f4..fed2ef4 100644
--- a/test/tint/expressions/type_conv/mat2x3/function/f16-f32.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/expressions/type_conv/mat2x3/function/f16-f32.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,15 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Convert
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+static float16_t t = float16_t(0.0h);
+matrix<float16_t, 2, 3> m() {
+  t = (t + float16_t(1.0h));
+  return matrix<float16_t, 2, 3>(vector<float16_t, 3>(float16_t(1.0h), float16_t(2.0h), float16_t(3.0h)), vector<float16_t, 3>(float16_t(4.0h), float16_t(5.0h), float16_t(6.0h)));
+}
+
+void f() {
+  float2x3 v = float2x3(m());
+}
+
+[numthreads(1, 1, 1)]
+void unused_entry_point() {
+}
+
diff --git a/test/tint/expressions/type_conv/mat2x3/function/f16-f32.wgsl.expected.ir.fxc.hlsl b/test/tint/expressions/type_conv/mat2x3/function/f16-f32.wgsl.expected.ir.fxc.hlsl
index 48e23f4..bbd8dc9 100644
--- a/test/tint/expressions/type_conv/mat2x3/function/f16-f32.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/expressions/type_conv/mat2x3/function/f16-f32.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,20 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Convert
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+
+static float16_t t = float16_t(0.0h);
+matrix<float16_t, 2, 3> m() {
+  t = (t + float16_t(1.0h));
+  return matrix<float16_t, 2, 3>(vector<float16_t, 3>(float16_t(1.0h), float16_t(2.0h), float16_t(3.0h)), vector<float16_t, 3>(float16_t(4.0h), float16_t(5.0h), float16_t(6.0h)));
+}
+
+void f() {
+  float2x3 v = float2x3(m());
+}
+
+[numthreads(1, 1, 1)]
+void unused_entry_point() {
+}
+
+FXC validation failure:
+c:\src\dawn\Shader@0x0000026ABE20D790(2,8-16): error X3000: unrecognized identifier 'float16_t'
+
diff --git a/test/tint/expressions/type_conv/mat2x3/function/f32-f16.wgsl.expected.ir.dxc.hlsl b/test/tint/expressions/type_conv/mat2x3/function/f32-f16.wgsl.expected.ir.dxc.hlsl
index 48e23f4..c5ba009 100644
--- a/test/tint/expressions/type_conv/mat2x3/function/f32-f16.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/expressions/type_conv/mat2x3/function/f32-f16.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,15 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Convert
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+static float t = 0.0f;
+float2x3 m() {
+  t = (t + 1.0f);
+  return float2x3(float3(1.0f, 2.0f, 3.0f), float3(4.0f, 5.0f, 6.0f));
+}
+
+void f() {
+  matrix<float16_t, 2, 3> v = matrix<float16_t, 2, 3>(m());
+}
+
+[numthreads(1, 1, 1)]
+void unused_entry_point() {
+}
+
diff --git a/test/tint/expressions/type_conv/mat2x3/function/f32-f16.wgsl.expected.ir.fxc.hlsl b/test/tint/expressions/type_conv/mat2x3/function/f32-f16.wgsl.expected.ir.fxc.hlsl
index 48e23f4..ddb2938 100644
--- a/test/tint/expressions/type_conv/mat2x3/function/f32-f16.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/expressions/type_conv/mat2x3/function/f32-f16.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,20 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Convert
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+
+static float t = 0.0f;
+float2x3 m() {
+  t = (t + 1.0f);
+  return float2x3(float3(1.0f, 2.0f, 3.0f), float3(4.0f, 5.0f, 6.0f));
+}
+
+void f() {
+  matrix<float16_t, 2, 3> v = matrix<float16_t, 2, 3>(m());
+}
+
+[numthreads(1, 1, 1)]
+void unused_entry_point() {
+}
+
+FXC validation failure:
+c:\src\dawn\Shader@0x0000024E2315CF10(9,10-18): error X3000: syntax error: unexpected token 'float16_t'
+
diff --git a/test/tint/expressions/type_conv/mat2x3/literal/f16-f32.wgsl.expected.ir.dxc.hlsl b/test/tint/expressions/type_conv/mat2x3/literal/f16-f32.wgsl.expected.ir.dxc.hlsl
index 9acd2d7..9a92d98 100644
--- a/test/tint/expressions/type_conv/mat2x3/literal/f16-f32.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/expressions/type_conv/mat2x3/literal/f16-f32.wgsl.expected.ir.dxc.hlsl
@@ -1,3 +1,5 @@
+
+static float2x3 u = float2x3(float3(1.0f, 2.0f, 3.0f), float3(4.0f, 5.0f, 6.0f));
 [numthreads(1, 1, 1)]
 void unused_entry_point() {
 }
diff --git a/test/tint/expressions/type_conv/mat2x3/literal/f16-f32.wgsl.expected.ir.fxc.hlsl b/test/tint/expressions/type_conv/mat2x3/literal/f16-f32.wgsl.expected.ir.fxc.hlsl
index 9acd2d7..9a92d98 100644
--- a/test/tint/expressions/type_conv/mat2x3/literal/f16-f32.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/expressions/type_conv/mat2x3/literal/f16-f32.wgsl.expected.ir.fxc.hlsl
@@ -1,3 +1,5 @@
+
+static float2x3 u = float2x3(float3(1.0f, 2.0f, 3.0f), float3(4.0f, 5.0f, 6.0f));
 [numthreads(1, 1, 1)]
 void unused_entry_point() {
 }
diff --git a/test/tint/expressions/type_conv/mat2x3/literal/f32-f16.wgsl.expected.ir.dxc.hlsl b/test/tint/expressions/type_conv/mat2x3/literal/f32-f16.wgsl.expected.ir.dxc.hlsl
index 9acd2d7..1c69d50 100644
--- a/test/tint/expressions/type_conv/mat2x3/literal/f32-f16.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/expressions/type_conv/mat2x3/literal/f32-f16.wgsl.expected.ir.dxc.hlsl
@@ -1,3 +1,5 @@
+
+static matrix<float16_t, 2, 3> u = matrix<float16_t, 2, 3>(vector<float16_t, 3>(float16_t(1.0h), float16_t(2.0h), float16_t(3.0h)), vector<float16_t, 3>(float16_t(4.0h), float16_t(5.0h), float16_t(6.0h)));
 [numthreads(1, 1, 1)]
 void unused_entry_point() {
 }
diff --git a/test/tint/expressions/type_conv/mat2x3/literal/f32-f16.wgsl.expected.ir.fxc.hlsl b/test/tint/expressions/type_conv/mat2x3/literal/f32-f16.wgsl.expected.ir.fxc.hlsl
index 9acd2d7..73b4e42 100644
--- a/test/tint/expressions/type_conv/mat2x3/literal/f32-f16.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/expressions/type_conv/mat2x3/literal/f32-f16.wgsl.expected.ir.fxc.hlsl
@@ -1,4 +1,11 @@
+SKIP: FAILED
+
+
+static matrix<float16_t, 2, 3> u = matrix<float16_t, 2, 3>(vector<float16_t, 3>(float16_t(1.0h), float16_t(2.0h), float16_t(3.0h)), vector<float16_t, 3>(float16_t(4.0h), float16_t(5.0h), float16_t(6.0h)));
 [numthreads(1, 1, 1)]
 void unused_entry_point() {
 }
 
+FXC validation failure:
+c:\src\dawn\Shader@0x000001D144295AD0(2,15-23): error X3000: syntax error: unexpected token 'float16_t'
+
diff --git a/test/tint/expressions/type_conv/mat2x3/var/f16-f32.wgsl.expected.ir.dxc.hlsl b/test/tint/expressions/type_conv/mat2x3/var/f16-f32.wgsl.expected.ir.dxc.hlsl
index 48e23f4..9e4e362 100644
--- a/test/tint/expressions/type_conv/mat2x3/var/f16-f32.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/expressions/type_conv/mat2x3/var/f16-f32.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,10 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Convert
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+static matrix<float16_t, 2, 3> u = matrix<float16_t, 2, 3>(vector<float16_t, 3>(float16_t(1.0h), float16_t(2.0h), float16_t(3.0h)), vector<float16_t, 3>(float16_t(4.0h), float16_t(5.0h), float16_t(6.0h)));
+void f() {
+  float2x3 v = float2x3(u);
+}
+
+[numthreads(1, 1, 1)]
+void unused_entry_point() {
+}
+
diff --git a/test/tint/expressions/type_conv/mat2x3/var/f16-f32.wgsl.expected.ir.fxc.hlsl b/test/tint/expressions/type_conv/mat2x3/var/f16-f32.wgsl.expected.ir.fxc.hlsl
index 48e23f4..8ab05a0 100644
--- a/test/tint/expressions/type_conv/mat2x3/var/f16-f32.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/expressions/type_conv/mat2x3/var/f16-f32.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,15 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Convert
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+
+static matrix<float16_t, 2, 3> u = matrix<float16_t, 2, 3>(vector<float16_t, 3>(float16_t(1.0h), float16_t(2.0h), float16_t(3.0h)), vector<float16_t, 3>(float16_t(4.0h), float16_t(5.0h), float16_t(6.0h)));
+void f() {
+  float2x3 v = float2x3(u);
+}
+
+[numthreads(1, 1, 1)]
+void unused_entry_point() {
+}
+
+FXC validation failure:
+c:\src\dawn\Shader@0x000001F5A582F600(2,15-23): error X3000: syntax error: unexpected token 'float16_t'
+
diff --git a/test/tint/expressions/type_conv/mat2x3/var/f32-f16.wgsl.expected.ir.dxc.hlsl b/test/tint/expressions/type_conv/mat2x3/var/f32-f16.wgsl.expected.ir.dxc.hlsl
index 48e23f4..658aad7 100644
--- a/test/tint/expressions/type_conv/mat2x3/var/f32-f16.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/expressions/type_conv/mat2x3/var/f32-f16.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,10 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Convert
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+static float2x3 u = float2x3(float3(1.0f, 2.0f, 3.0f), float3(4.0f, 5.0f, 6.0f));
+void f() {
+  matrix<float16_t, 2, 3> v = matrix<float16_t, 2, 3>(u);
+}
+
+[numthreads(1, 1, 1)]
+void unused_entry_point() {
+}
+
diff --git a/test/tint/expressions/type_conv/mat2x3/var/f32-f16.wgsl.expected.ir.fxc.hlsl b/test/tint/expressions/type_conv/mat2x3/var/f32-f16.wgsl.expected.ir.fxc.hlsl
index 48e23f4..b5341c4 100644
--- a/test/tint/expressions/type_conv/mat2x3/var/f32-f16.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/expressions/type_conv/mat2x3/var/f32-f16.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,15 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Convert
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+
+static float2x3 u = float2x3(float3(1.0f, 2.0f, 3.0f), float3(4.0f, 5.0f, 6.0f));
+void f() {
+  matrix<float16_t, 2, 3> v = matrix<float16_t, 2, 3>(u);
+}
+
+[numthreads(1, 1, 1)]
+void unused_entry_point() {
+}
+
+FXC validation failure:
+c:\src\dawn\Shader@0x000002B5EECFF5E0(4,10-18): error X3000: syntax error: unexpected token 'float16_t'
+
diff --git a/test/tint/expressions/type_conv/mat2x4/function/f16-f32.wgsl.expected.ir.dxc.hlsl b/test/tint/expressions/type_conv/mat2x4/function/f16-f32.wgsl.expected.ir.dxc.hlsl
index 48e23f4..318eb0a 100644
--- a/test/tint/expressions/type_conv/mat2x4/function/f16-f32.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/expressions/type_conv/mat2x4/function/f16-f32.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,15 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Convert
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+static float16_t t = float16_t(0.0h);
+matrix<float16_t, 2, 4> m() {
+  t = (t + float16_t(1.0h));
+  return matrix<float16_t, 2, 4>(vector<float16_t, 4>(float16_t(1.0h), float16_t(2.0h), float16_t(3.0h), float16_t(4.0h)), vector<float16_t, 4>(float16_t(5.0h), float16_t(6.0h), float16_t(7.0h), float16_t(8.0h)));
+}
+
+void f() {
+  float2x4 v = float2x4(m());
+}
+
+[numthreads(1, 1, 1)]
+void unused_entry_point() {
+}
+
diff --git a/test/tint/expressions/type_conv/mat2x4/function/f16-f32.wgsl.expected.ir.fxc.hlsl b/test/tint/expressions/type_conv/mat2x4/function/f16-f32.wgsl.expected.ir.fxc.hlsl
index 48e23f4..1916937 100644
--- a/test/tint/expressions/type_conv/mat2x4/function/f16-f32.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/expressions/type_conv/mat2x4/function/f16-f32.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,20 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Convert
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+
+static float16_t t = float16_t(0.0h);
+matrix<float16_t, 2, 4> m() {
+  t = (t + float16_t(1.0h));
+  return matrix<float16_t, 2, 4>(vector<float16_t, 4>(float16_t(1.0h), float16_t(2.0h), float16_t(3.0h), float16_t(4.0h)), vector<float16_t, 4>(float16_t(5.0h), float16_t(6.0h), float16_t(7.0h), float16_t(8.0h)));
+}
+
+void f() {
+  float2x4 v = float2x4(m());
+}
+
+[numthreads(1, 1, 1)]
+void unused_entry_point() {
+}
+
+FXC validation failure:
+c:\src\dawn\Shader@0x000001415F0ED160(2,8-16): error X3000: unrecognized identifier 'float16_t'
+
diff --git a/test/tint/expressions/type_conv/mat2x4/function/f32-f16.wgsl.expected.ir.dxc.hlsl b/test/tint/expressions/type_conv/mat2x4/function/f32-f16.wgsl.expected.ir.dxc.hlsl
index 48e23f4..e3ea36e 100644
--- a/test/tint/expressions/type_conv/mat2x4/function/f32-f16.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/expressions/type_conv/mat2x4/function/f32-f16.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,15 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Convert
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+static float t = 0.0f;
+float2x4 m() {
+  t = (t + 1.0f);
+  return float2x4(float4(1.0f, 2.0f, 3.0f, 4.0f), float4(5.0f, 6.0f, 7.0f, 8.0f));
+}
+
+void f() {
+  matrix<float16_t, 2, 4> v = matrix<float16_t, 2, 4>(m());
+}
+
+[numthreads(1, 1, 1)]
+void unused_entry_point() {
+}
+
diff --git a/test/tint/expressions/type_conv/mat2x4/function/f32-f16.wgsl.expected.ir.fxc.hlsl b/test/tint/expressions/type_conv/mat2x4/function/f32-f16.wgsl.expected.ir.fxc.hlsl
index 48e23f4..6b3a405 100644
--- a/test/tint/expressions/type_conv/mat2x4/function/f32-f16.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/expressions/type_conv/mat2x4/function/f32-f16.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,20 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Convert
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+
+static float t = 0.0f;
+float2x4 m() {
+  t = (t + 1.0f);
+  return float2x4(float4(1.0f, 2.0f, 3.0f, 4.0f), float4(5.0f, 6.0f, 7.0f, 8.0f));
+}
+
+void f() {
+  matrix<float16_t, 2, 4> v = matrix<float16_t, 2, 4>(m());
+}
+
+[numthreads(1, 1, 1)]
+void unused_entry_point() {
+}
+
+FXC validation failure:
+c:\src\dawn\Shader@0x000002BCDDF804C0(9,10-18): error X3000: syntax error: unexpected token 'float16_t'
+
diff --git a/test/tint/expressions/type_conv/mat2x4/literal/f16-f32.wgsl.expected.ir.dxc.hlsl b/test/tint/expressions/type_conv/mat2x4/literal/f16-f32.wgsl.expected.ir.dxc.hlsl
index 9acd2d7..b85fc5e 100644
--- a/test/tint/expressions/type_conv/mat2x4/literal/f16-f32.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/expressions/type_conv/mat2x4/literal/f16-f32.wgsl.expected.ir.dxc.hlsl
@@ -1,3 +1,5 @@
+
+static float2x4 u = float2x4(float4(1.0f, 2.0f, 3.0f, 4.0f), float4(5.0f, 6.0f, 7.0f, 8.0f));
 [numthreads(1, 1, 1)]
 void unused_entry_point() {
 }
diff --git a/test/tint/expressions/type_conv/mat2x4/literal/f16-f32.wgsl.expected.ir.fxc.hlsl b/test/tint/expressions/type_conv/mat2x4/literal/f16-f32.wgsl.expected.ir.fxc.hlsl
index 9acd2d7..b85fc5e 100644
--- a/test/tint/expressions/type_conv/mat2x4/literal/f16-f32.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/expressions/type_conv/mat2x4/literal/f16-f32.wgsl.expected.ir.fxc.hlsl
@@ -1,3 +1,5 @@
+
+static float2x4 u = float2x4(float4(1.0f, 2.0f, 3.0f, 4.0f), float4(5.0f, 6.0f, 7.0f, 8.0f));
 [numthreads(1, 1, 1)]
 void unused_entry_point() {
 }
diff --git a/test/tint/expressions/type_conv/mat2x4/literal/f32-f16.wgsl.expected.ir.dxc.hlsl b/test/tint/expressions/type_conv/mat2x4/literal/f32-f16.wgsl.expected.ir.dxc.hlsl
index 9acd2d7..6826f2c 100644
--- a/test/tint/expressions/type_conv/mat2x4/literal/f32-f16.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/expressions/type_conv/mat2x4/literal/f32-f16.wgsl.expected.ir.dxc.hlsl
@@ -1,3 +1,5 @@
+
+static matrix<float16_t, 2, 4> u = matrix<float16_t, 2, 4>(vector<float16_t, 4>(float16_t(1.0h), float16_t(2.0h), float16_t(3.0h), float16_t(4.0h)), vector<float16_t, 4>(float16_t(5.0h), float16_t(6.0h), float16_t(7.0h), float16_t(8.0h)));
 [numthreads(1, 1, 1)]
 void unused_entry_point() {
 }
diff --git a/test/tint/expressions/type_conv/mat2x4/literal/f32-f16.wgsl.expected.ir.fxc.hlsl b/test/tint/expressions/type_conv/mat2x4/literal/f32-f16.wgsl.expected.ir.fxc.hlsl
index 9acd2d7..2bf3135 100644
--- a/test/tint/expressions/type_conv/mat2x4/literal/f32-f16.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/expressions/type_conv/mat2x4/literal/f32-f16.wgsl.expected.ir.fxc.hlsl
@@ -1,4 +1,11 @@
+SKIP: FAILED
+
+
+static matrix<float16_t, 2, 4> u = matrix<float16_t, 2, 4>(vector<float16_t, 4>(float16_t(1.0h), float16_t(2.0h), float16_t(3.0h), float16_t(4.0h)), vector<float16_t, 4>(float16_t(5.0h), float16_t(6.0h), float16_t(7.0h), float16_t(8.0h)));
 [numthreads(1, 1, 1)]
 void unused_entry_point() {
 }
 
+FXC validation failure:
+c:\src\dawn\Shader@0x0000013B9D43F610(2,15-23): error X3000: syntax error: unexpected token 'float16_t'
+
diff --git a/test/tint/expressions/type_conv/mat2x4/var/f16-f32.wgsl.expected.ir.dxc.hlsl b/test/tint/expressions/type_conv/mat2x4/var/f16-f32.wgsl.expected.ir.dxc.hlsl
index 48e23f4..8798c9ef 100644
--- a/test/tint/expressions/type_conv/mat2x4/var/f16-f32.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/expressions/type_conv/mat2x4/var/f16-f32.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,10 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Convert
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+static matrix<float16_t, 2, 4> u = matrix<float16_t, 2, 4>(vector<float16_t, 4>(float16_t(1.0h), float16_t(2.0h), float16_t(3.0h), float16_t(4.0h)), vector<float16_t, 4>(float16_t(5.0h), float16_t(6.0h), float16_t(7.0h), float16_t(8.0h)));
+void f() {
+  float2x4 v = float2x4(u);
+}
+
+[numthreads(1, 1, 1)]
+void unused_entry_point() {
+}
+
diff --git a/test/tint/expressions/type_conv/mat2x4/var/f16-f32.wgsl.expected.ir.fxc.hlsl b/test/tint/expressions/type_conv/mat2x4/var/f16-f32.wgsl.expected.ir.fxc.hlsl
index 48e23f4..4df0ea5 100644
--- a/test/tint/expressions/type_conv/mat2x4/var/f16-f32.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/expressions/type_conv/mat2x4/var/f16-f32.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,15 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Convert
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+
+static matrix<float16_t, 2, 4> u = matrix<float16_t, 2, 4>(vector<float16_t, 4>(float16_t(1.0h), float16_t(2.0h), float16_t(3.0h), float16_t(4.0h)), vector<float16_t, 4>(float16_t(5.0h), float16_t(6.0h), float16_t(7.0h), float16_t(8.0h)));
+void f() {
+  float2x4 v = float2x4(u);
+}
+
+[numthreads(1, 1, 1)]
+void unused_entry_point() {
+}
+
+FXC validation failure:
+c:\src\dawn\Shader@0x0000020693183A90(2,15-23): error X3000: syntax error: unexpected token 'float16_t'
+
diff --git a/test/tint/expressions/type_conv/mat2x4/var/f32-f16.wgsl.expected.ir.dxc.hlsl b/test/tint/expressions/type_conv/mat2x4/var/f32-f16.wgsl.expected.ir.dxc.hlsl
index 48e23f4..35ea3cb 100644
--- a/test/tint/expressions/type_conv/mat2x4/var/f32-f16.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/expressions/type_conv/mat2x4/var/f32-f16.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,10 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Convert
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+static float2x4 u = float2x4(float4(1.0f, 2.0f, 3.0f, 4.0f), float4(5.0f, 6.0f, 7.0f, 8.0f));
+void f() {
+  matrix<float16_t, 2, 4> v = matrix<float16_t, 2, 4>(u);
+}
+
+[numthreads(1, 1, 1)]
+void unused_entry_point() {
+}
+
diff --git a/test/tint/expressions/type_conv/mat2x4/var/f32-f16.wgsl.expected.ir.fxc.hlsl b/test/tint/expressions/type_conv/mat2x4/var/f32-f16.wgsl.expected.ir.fxc.hlsl
index 48e23f4..9d9ec93 100644
--- a/test/tint/expressions/type_conv/mat2x4/var/f32-f16.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/expressions/type_conv/mat2x4/var/f32-f16.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,15 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Convert
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+
+static float2x4 u = float2x4(float4(1.0f, 2.0f, 3.0f, 4.0f), float4(5.0f, 6.0f, 7.0f, 8.0f));
+void f() {
+  matrix<float16_t, 2, 4> v = matrix<float16_t, 2, 4>(u);
+}
+
+[numthreads(1, 1, 1)]
+void unused_entry_point() {
+}
+
+FXC validation failure:
+c:\src\dawn\Shader@0x000001B86A47F330(4,10-18): error X3000: syntax error: unexpected token 'float16_t'
+
diff --git a/test/tint/expressions/type_conv/mat3x2/function/f16-f32.wgsl.expected.ir.dxc.hlsl b/test/tint/expressions/type_conv/mat3x2/function/f16-f32.wgsl.expected.ir.dxc.hlsl
index 48e23f4..762284c 100644
--- a/test/tint/expressions/type_conv/mat3x2/function/f16-f32.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/expressions/type_conv/mat3x2/function/f16-f32.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,15 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Convert
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+static float16_t t = float16_t(0.0h);
+matrix<float16_t, 3, 2> m() {
+  t = (t + float16_t(1.0h));
+  return matrix<float16_t, 3, 2>(vector<float16_t, 2>(float16_t(1.0h), float16_t(2.0h)), vector<float16_t, 2>(float16_t(3.0h), float16_t(4.0h)), vector<float16_t, 2>(float16_t(5.0h), float16_t(6.0h)));
+}
+
+void f() {
+  float3x2 v = float3x2(m());
+}
+
+[numthreads(1, 1, 1)]
+void unused_entry_point() {
+}
+
diff --git a/test/tint/expressions/type_conv/mat3x2/function/f16-f32.wgsl.expected.ir.fxc.hlsl b/test/tint/expressions/type_conv/mat3x2/function/f16-f32.wgsl.expected.ir.fxc.hlsl
index 48e23f4..6b1ce1d 100644
--- a/test/tint/expressions/type_conv/mat3x2/function/f16-f32.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/expressions/type_conv/mat3x2/function/f16-f32.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,20 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Convert
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+
+static float16_t t = float16_t(0.0h);
+matrix<float16_t, 3, 2> m() {
+  t = (t + float16_t(1.0h));
+  return matrix<float16_t, 3, 2>(vector<float16_t, 2>(float16_t(1.0h), float16_t(2.0h)), vector<float16_t, 2>(float16_t(3.0h), float16_t(4.0h)), vector<float16_t, 2>(float16_t(5.0h), float16_t(6.0h)));
+}
+
+void f() {
+  float3x2 v = float3x2(m());
+}
+
+[numthreads(1, 1, 1)]
+void unused_entry_point() {
+}
+
+FXC validation failure:
+c:\src\dawn\Shader@0x000001F579DDD650(2,8-16): error X3000: unrecognized identifier 'float16_t'
+
diff --git a/test/tint/expressions/type_conv/mat3x2/function/f32-f16.wgsl.expected.ir.dxc.hlsl b/test/tint/expressions/type_conv/mat3x2/function/f32-f16.wgsl.expected.ir.dxc.hlsl
index 48e23f4..0157952 100644
--- a/test/tint/expressions/type_conv/mat3x2/function/f32-f16.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/expressions/type_conv/mat3x2/function/f32-f16.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,15 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Convert
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+static float t = 0.0f;
+float3x2 m() {
+  t = (t + 1.0f);
+  return float3x2(float2(1.0f, 2.0f), float2(3.0f, 4.0f), float2(5.0f, 6.0f));
+}
+
+void f() {
+  matrix<float16_t, 3, 2> v = matrix<float16_t, 3, 2>(m());
+}
+
+[numthreads(1, 1, 1)]
+void unused_entry_point() {
+}
+
diff --git a/test/tint/expressions/type_conv/mat3x2/function/f32-f16.wgsl.expected.ir.fxc.hlsl b/test/tint/expressions/type_conv/mat3x2/function/f32-f16.wgsl.expected.ir.fxc.hlsl
index 48e23f4..60585c8 100644
--- a/test/tint/expressions/type_conv/mat3x2/function/f32-f16.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/expressions/type_conv/mat3x2/function/f32-f16.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,20 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Convert
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+
+static float t = 0.0f;
+float3x2 m() {
+  t = (t + 1.0f);
+  return float3x2(float2(1.0f, 2.0f), float2(3.0f, 4.0f), float2(5.0f, 6.0f));
+}
+
+void f() {
+  matrix<float16_t, 3, 2> v = matrix<float16_t, 3, 2>(m());
+}
+
+[numthreads(1, 1, 1)]
+void unused_entry_point() {
+}
+
+FXC validation failure:
+c:\src\dawn\Shader@0x000001D6A8B6FA60(9,10-18): error X3000: syntax error: unexpected token 'float16_t'
+
diff --git a/test/tint/expressions/type_conv/mat3x2/literal/f16-f32.wgsl.expected.ir.dxc.hlsl b/test/tint/expressions/type_conv/mat3x2/literal/f16-f32.wgsl.expected.ir.dxc.hlsl
index 9acd2d7..5aef548 100644
--- a/test/tint/expressions/type_conv/mat3x2/literal/f16-f32.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/expressions/type_conv/mat3x2/literal/f16-f32.wgsl.expected.ir.dxc.hlsl
@@ -1,3 +1,5 @@
+
+static float3x2 u = float3x2(float2(1.0f, 2.0f), float2(3.0f, 4.0f), float2(5.0f, 6.0f));
 [numthreads(1, 1, 1)]
 void unused_entry_point() {
 }
diff --git a/test/tint/expressions/type_conv/mat3x2/literal/f16-f32.wgsl.expected.ir.fxc.hlsl b/test/tint/expressions/type_conv/mat3x2/literal/f16-f32.wgsl.expected.ir.fxc.hlsl
index 9acd2d7..5aef548 100644
--- a/test/tint/expressions/type_conv/mat3x2/literal/f16-f32.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/expressions/type_conv/mat3x2/literal/f16-f32.wgsl.expected.ir.fxc.hlsl
@@ -1,3 +1,5 @@
+
+static float3x2 u = float3x2(float2(1.0f, 2.0f), float2(3.0f, 4.0f), float2(5.0f, 6.0f));
 [numthreads(1, 1, 1)]
 void unused_entry_point() {
 }
diff --git a/test/tint/expressions/type_conv/mat3x2/literal/f32-f16.wgsl.expected.ir.dxc.hlsl b/test/tint/expressions/type_conv/mat3x2/literal/f32-f16.wgsl.expected.ir.dxc.hlsl
index 9acd2d7..b0b520e 100644
--- a/test/tint/expressions/type_conv/mat3x2/literal/f32-f16.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/expressions/type_conv/mat3x2/literal/f32-f16.wgsl.expected.ir.dxc.hlsl
@@ -1,3 +1,5 @@
+
+static matrix<float16_t, 3, 2> u = matrix<float16_t, 3, 2>(vector<float16_t, 2>(float16_t(1.0h), float16_t(2.0h)), vector<float16_t, 2>(float16_t(3.0h), float16_t(4.0h)), vector<float16_t, 2>(float16_t(5.0h), float16_t(6.0h)));
 [numthreads(1, 1, 1)]
 void unused_entry_point() {
 }
diff --git a/test/tint/expressions/type_conv/mat3x2/literal/f32-f16.wgsl.expected.ir.fxc.hlsl b/test/tint/expressions/type_conv/mat3x2/literal/f32-f16.wgsl.expected.ir.fxc.hlsl
index 9acd2d7..b02fe57 100644
--- a/test/tint/expressions/type_conv/mat3x2/literal/f32-f16.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/expressions/type_conv/mat3x2/literal/f32-f16.wgsl.expected.ir.fxc.hlsl
@@ -1,4 +1,11 @@
+SKIP: FAILED
+
+
+static matrix<float16_t, 3, 2> u = matrix<float16_t, 3, 2>(vector<float16_t, 2>(float16_t(1.0h), float16_t(2.0h)), vector<float16_t, 2>(float16_t(3.0h), float16_t(4.0h)), vector<float16_t, 2>(float16_t(5.0h), float16_t(6.0h)));
 [numthreads(1, 1, 1)]
 void unused_entry_point() {
 }
 
+FXC validation failure:
+c:\src\dawn\Shader@0x000001FA3B6D48A0(2,15-23): error X3000: syntax error: unexpected token 'float16_t'
+
diff --git a/test/tint/expressions/type_conv/mat3x2/var/f16-f32.wgsl.expected.ir.dxc.hlsl b/test/tint/expressions/type_conv/mat3x2/var/f16-f32.wgsl.expected.ir.dxc.hlsl
index 48e23f4..6f5260f 100644
--- a/test/tint/expressions/type_conv/mat3x2/var/f16-f32.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/expressions/type_conv/mat3x2/var/f16-f32.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,10 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Convert
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+static matrix<float16_t, 3, 2> u = matrix<float16_t, 3, 2>(vector<float16_t, 2>(float16_t(1.0h), float16_t(2.0h)), vector<float16_t, 2>(float16_t(3.0h), float16_t(4.0h)), vector<float16_t, 2>(float16_t(5.0h), float16_t(6.0h)));
+void f() {
+  float3x2 v = float3x2(u);
+}
+
+[numthreads(1, 1, 1)]
+void unused_entry_point() {
+}
+
diff --git a/test/tint/expressions/type_conv/mat3x2/var/f16-f32.wgsl.expected.ir.fxc.hlsl b/test/tint/expressions/type_conv/mat3x2/var/f16-f32.wgsl.expected.ir.fxc.hlsl
index 48e23f4..a456635 100644
--- a/test/tint/expressions/type_conv/mat3x2/var/f16-f32.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/expressions/type_conv/mat3x2/var/f16-f32.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,15 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Convert
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+
+static matrix<float16_t, 3, 2> u = matrix<float16_t, 3, 2>(vector<float16_t, 2>(float16_t(1.0h), float16_t(2.0h)), vector<float16_t, 2>(float16_t(3.0h), float16_t(4.0h)), vector<float16_t, 2>(float16_t(5.0h), float16_t(6.0h)));
+void f() {
+  float3x2 v = float3x2(u);
+}
+
+[numthreads(1, 1, 1)]
+void unused_entry_point() {
+}
+
+FXC validation failure:
+c:\src\dawn\Shader@0x00000171F9181D70(2,15-23): error X3000: syntax error: unexpected token 'float16_t'
+
diff --git a/test/tint/expressions/type_conv/mat3x2/var/f32-f16.wgsl.expected.ir.dxc.hlsl b/test/tint/expressions/type_conv/mat3x2/var/f32-f16.wgsl.expected.ir.dxc.hlsl
index 48e23f4..080ccb4 100644
--- a/test/tint/expressions/type_conv/mat3x2/var/f32-f16.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/expressions/type_conv/mat3x2/var/f32-f16.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,10 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Convert
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+static float3x2 u = float3x2(float2(1.0f, 2.0f), float2(3.0f, 4.0f), float2(5.0f, 6.0f));
+void f() {
+  matrix<float16_t, 3, 2> v = matrix<float16_t, 3, 2>(u);
+}
+
+[numthreads(1, 1, 1)]
+void unused_entry_point() {
+}
+
diff --git a/test/tint/expressions/type_conv/mat3x2/var/f32-f16.wgsl.expected.ir.fxc.hlsl b/test/tint/expressions/type_conv/mat3x2/var/f32-f16.wgsl.expected.ir.fxc.hlsl
index 48e23f4..ffdf9ae 100644
--- a/test/tint/expressions/type_conv/mat3x2/var/f32-f16.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/expressions/type_conv/mat3x2/var/f32-f16.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,15 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Convert
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+
+static float3x2 u = float3x2(float2(1.0f, 2.0f), float2(3.0f, 4.0f), float2(5.0f, 6.0f));
+void f() {
+  matrix<float16_t, 3, 2> v = matrix<float16_t, 3, 2>(u);
+}
+
+[numthreads(1, 1, 1)]
+void unused_entry_point() {
+}
+
+FXC validation failure:
+c:\src\dawn\Shader@0x0000016A740105F0(4,10-18): error X3000: syntax error: unexpected token 'float16_t'
+
diff --git a/test/tint/expressions/type_conv/mat3x3/function/f16-f32.wgsl.expected.ir.dxc.hlsl b/test/tint/expressions/type_conv/mat3x3/function/f16-f32.wgsl.expected.ir.dxc.hlsl
index 48e23f4..9f5403c 100644
--- a/test/tint/expressions/type_conv/mat3x3/function/f16-f32.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/expressions/type_conv/mat3x3/function/f16-f32.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,15 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Convert
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+static float16_t t = float16_t(0.0h);
+matrix<float16_t, 3, 3> m() {
+  t = (t + float16_t(1.0h));
+  return matrix<float16_t, 3, 3>(vector<float16_t, 3>(float16_t(1.0h), float16_t(2.0h), float16_t(3.0h)), vector<float16_t, 3>(float16_t(4.0h), float16_t(5.0h), float16_t(6.0h)), vector<float16_t, 3>(float16_t(7.0h), float16_t(8.0h), float16_t(9.0h)));
+}
+
+void f() {
+  float3x3 v = float3x3(m());
+}
+
+[numthreads(1, 1, 1)]
+void unused_entry_point() {
+}
+
diff --git a/test/tint/expressions/type_conv/mat3x3/function/f16-f32.wgsl.expected.ir.fxc.hlsl b/test/tint/expressions/type_conv/mat3x3/function/f16-f32.wgsl.expected.ir.fxc.hlsl
index 48e23f4..e2fc8dc 100644
--- a/test/tint/expressions/type_conv/mat3x3/function/f16-f32.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/expressions/type_conv/mat3x3/function/f16-f32.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,20 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Convert
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+
+static float16_t t = float16_t(0.0h);
+matrix<float16_t, 3, 3> m() {
+  t = (t + float16_t(1.0h));
+  return matrix<float16_t, 3, 3>(vector<float16_t, 3>(float16_t(1.0h), float16_t(2.0h), float16_t(3.0h)), vector<float16_t, 3>(float16_t(4.0h), float16_t(5.0h), float16_t(6.0h)), vector<float16_t, 3>(float16_t(7.0h), float16_t(8.0h), float16_t(9.0h)));
+}
+
+void f() {
+  float3x3 v = float3x3(m());
+}
+
+[numthreads(1, 1, 1)]
+void unused_entry_point() {
+}
+
+FXC validation failure:
+c:\src\dawn\Shader@0x00000277D2213D60(2,8-16): error X3000: unrecognized identifier 'float16_t'
+
diff --git a/test/tint/expressions/type_conv/mat3x3/function/f32-f16.wgsl.expected.ir.dxc.hlsl b/test/tint/expressions/type_conv/mat3x3/function/f32-f16.wgsl.expected.ir.dxc.hlsl
index 48e23f4..680d15b 100644
--- a/test/tint/expressions/type_conv/mat3x3/function/f32-f16.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/expressions/type_conv/mat3x3/function/f32-f16.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,15 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Convert
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+static float t = 0.0f;
+float3x3 m() {
+  t = (t + 1.0f);
+  return float3x3(float3(1.0f, 2.0f, 3.0f), float3(4.0f, 5.0f, 6.0f), float3(7.0f, 8.0f, 9.0f));
+}
+
+void f() {
+  matrix<float16_t, 3, 3> v = matrix<float16_t, 3, 3>(m());
+}
+
+[numthreads(1, 1, 1)]
+void unused_entry_point() {
+}
+
diff --git a/test/tint/expressions/type_conv/mat3x3/function/f32-f16.wgsl.expected.ir.fxc.hlsl b/test/tint/expressions/type_conv/mat3x3/function/f32-f16.wgsl.expected.ir.fxc.hlsl
index 48e23f4..ce32915 100644
--- a/test/tint/expressions/type_conv/mat3x3/function/f32-f16.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/expressions/type_conv/mat3x3/function/f32-f16.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,20 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Convert
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+
+static float t = 0.0f;
+float3x3 m() {
+  t = (t + 1.0f);
+  return float3x3(float3(1.0f, 2.0f, 3.0f), float3(4.0f, 5.0f, 6.0f), float3(7.0f, 8.0f, 9.0f));
+}
+
+void f() {
+  matrix<float16_t, 3, 3> v = matrix<float16_t, 3, 3>(m());
+}
+
+[numthreads(1, 1, 1)]
+void unused_entry_point() {
+}
+
+FXC validation failure:
+c:\src\dawn\Shader@0x0000019772B8D8B0(9,10-18): error X3000: syntax error: unexpected token 'float16_t'
+
diff --git a/test/tint/expressions/type_conv/mat3x3/literal/f16-f32.wgsl.expected.ir.dxc.hlsl b/test/tint/expressions/type_conv/mat3x3/literal/f16-f32.wgsl.expected.ir.dxc.hlsl
index 9acd2d7..2326436 100644
--- a/test/tint/expressions/type_conv/mat3x3/literal/f16-f32.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/expressions/type_conv/mat3x3/literal/f16-f32.wgsl.expected.ir.dxc.hlsl
@@ -1,3 +1,5 @@
+
+static float3x3 u = float3x3(float3(1.0f, 2.0f, 3.0f), float3(4.0f, 5.0f, 6.0f), float3(7.0f, 8.0f, 9.0f));
 [numthreads(1, 1, 1)]
 void unused_entry_point() {
 }
diff --git a/test/tint/expressions/type_conv/mat3x3/literal/f16-f32.wgsl.expected.ir.fxc.hlsl b/test/tint/expressions/type_conv/mat3x3/literal/f16-f32.wgsl.expected.ir.fxc.hlsl
index 9acd2d7..2326436 100644
--- a/test/tint/expressions/type_conv/mat3x3/literal/f16-f32.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/expressions/type_conv/mat3x3/literal/f16-f32.wgsl.expected.ir.fxc.hlsl
@@ -1,3 +1,5 @@
+
+static float3x3 u = float3x3(float3(1.0f, 2.0f, 3.0f), float3(4.0f, 5.0f, 6.0f), float3(7.0f, 8.0f, 9.0f));
 [numthreads(1, 1, 1)]
 void unused_entry_point() {
 }
diff --git a/test/tint/expressions/type_conv/mat3x3/literal/f32-f16.wgsl.expected.ir.dxc.hlsl b/test/tint/expressions/type_conv/mat3x3/literal/f32-f16.wgsl.expected.ir.dxc.hlsl
index 9acd2d7..a3ab6a1 100644
--- a/test/tint/expressions/type_conv/mat3x3/literal/f32-f16.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/expressions/type_conv/mat3x3/literal/f32-f16.wgsl.expected.ir.dxc.hlsl
@@ -1,3 +1,5 @@
+
+static matrix<float16_t, 3, 3> u = matrix<float16_t, 3, 3>(vector<float16_t, 3>(float16_t(1.0h), float16_t(2.0h), float16_t(3.0h)), vector<float16_t, 3>(float16_t(4.0h), float16_t(5.0h), float16_t(6.0h)), vector<float16_t, 3>(float16_t(7.0h), float16_t(8.0h), float16_t(9.0h)));
 [numthreads(1, 1, 1)]
 void unused_entry_point() {
 }
diff --git a/test/tint/expressions/type_conv/mat3x3/literal/f32-f16.wgsl.expected.ir.fxc.hlsl b/test/tint/expressions/type_conv/mat3x3/literal/f32-f16.wgsl.expected.ir.fxc.hlsl
index 9acd2d7..e5054e5 100644
--- a/test/tint/expressions/type_conv/mat3x3/literal/f32-f16.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/expressions/type_conv/mat3x3/literal/f32-f16.wgsl.expected.ir.fxc.hlsl
@@ -1,4 +1,11 @@
+SKIP: FAILED
+
+
+static matrix<float16_t, 3, 3> u = matrix<float16_t, 3, 3>(vector<float16_t, 3>(float16_t(1.0h), float16_t(2.0h), float16_t(3.0h)), vector<float16_t, 3>(float16_t(4.0h), float16_t(5.0h), float16_t(6.0h)), vector<float16_t, 3>(float16_t(7.0h), float16_t(8.0h), float16_t(9.0h)));
 [numthreads(1, 1, 1)]
 void unused_entry_point() {
 }
 
+FXC validation failure:
+c:\src\dawn\Shader@0x000001904BC06C60(2,15-23): error X3000: syntax error: unexpected token 'float16_t'
+
diff --git a/test/tint/expressions/type_conv/mat3x3/var/f16-f32.wgsl.expected.ir.dxc.hlsl b/test/tint/expressions/type_conv/mat3x3/var/f16-f32.wgsl.expected.ir.dxc.hlsl
index 48e23f4..1d8e590 100644
--- a/test/tint/expressions/type_conv/mat3x3/var/f16-f32.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/expressions/type_conv/mat3x3/var/f16-f32.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,10 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Convert
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+static matrix<float16_t, 3, 3> u = matrix<float16_t, 3, 3>(vector<float16_t, 3>(float16_t(1.0h), float16_t(2.0h), float16_t(3.0h)), vector<float16_t, 3>(float16_t(4.0h), float16_t(5.0h), float16_t(6.0h)), vector<float16_t, 3>(float16_t(7.0h), float16_t(8.0h), float16_t(9.0h)));
+void f() {
+  float3x3 v = float3x3(u);
+}
+
+[numthreads(1, 1, 1)]
+void unused_entry_point() {
+}
+
diff --git a/test/tint/expressions/type_conv/mat3x3/var/f16-f32.wgsl.expected.ir.fxc.hlsl b/test/tint/expressions/type_conv/mat3x3/var/f16-f32.wgsl.expected.ir.fxc.hlsl
index 48e23f4..5eaea99 100644
--- a/test/tint/expressions/type_conv/mat3x3/var/f16-f32.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/expressions/type_conv/mat3x3/var/f16-f32.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,15 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Convert
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+
+static matrix<float16_t, 3, 3> u = matrix<float16_t, 3, 3>(vector<float16_t, 3>(float16_t(1.0h), float16_t(2.0h), float16_t(3.0h)), vector<float16_t, 3>(float16_t(4.0h), float16_t(5.0h), float16_t(6.0h)), vector<float16_t, 3>(float16_t(7.0h), float16_t(8.0h), float16_t(9.0h)));
+void f() {
+  float3x3 v = float3x3(u);
+}
+
+[numthreads(1, 1, 1)]
+void unused_entry_point() {
+}
+
+FXC validation failure:
+c:\src\dawn\Shader@0x0000014D28A63A30(2,15-23): error X3000: syntax error: unexpected token 'float16_t'
+
diff --git a/test/tint/expressions/type_conv/mat3x3/var/f32-f16.wgsl.expected.ir.dxc.hlsl b/test/tint/expressions/type_conv/mat3x3/var/f32-f16.wgsl.expected.ir.dxc.hlsl
index 48e23f4..6cafdda 100644
--- a/test/tint/expressions/type_conv/mat3x3/var/f32-f16.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/expressions/type_conv/mat3x3/var/f32-f16.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,10 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Convert
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+static float3x3 u = float3x3(float3(1.0f, 2.0f, 3.0f), float3(4.0f, 5.0f, 6.0f), float3(7.0f, 8.0f, 9.0f));
+void f() {
+  matrix<float16_t, 3, 3> v = matrix<float16_t, 3, 3>(u);
+}
+
+[numthreads(1, 1, 1)]
+void unused_entry_point() {
+}
+
diff --git a/test/tint/expressions/type_conv/mat3x3/var/f32-f16.wgsl.expected.ir.fxc.hlsl b/test/tint/expressions/type_conv/mat3x3/var/f32-f16.wgsl.expected.ir.fxc.hlsl
index 48e23f4..495f25d 100644
--- a/test/tint/expressions/type_conv/mat3x3/var/f32-f16.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/expressions/type_conv/mat3x3/var/f32-f16.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,15 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Convert
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+
+static float3x3 u = float3x3(float3(1.0f, 2.0f, 3.0f), float3(4.0f, 5.0f, 6.0f), float3(7.0f, 8.0f, 9.0f));
+void f() {
+  matrix<float16_t, 3, 3> v = matrix<float16_t, 3, 3>(u);
+}
+
+[numthreads(1, 1, 1)]
+void unused_entry_point() {
+}
+
+FXC validation failure:
+c:\src\dawn\Shader@0x0000022DA6950680(4,10-18): error X3000: syntax error: unexpected token 'float16_t'
+
diff --git a/test/tint/expressions/type_conv/mat3x4/function/f16-f32.wgsl.expected.ir.dxc.hlsl b/test/tint/expressions/type_conv/mat3x4/function/f16-f32.wgsl.expected.ir.dxc.hlsl
index 48e23f4..eb49d33 100644
--- a/test/tint/expressions/type_conv/mat3x4/function/f16-f32.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/expressions/type_conv/mat3x4/function/f16-f32.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,15 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Convert
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+static float16_t t = float16_t(0.0h);
+matrix<float16_t, 3, 4> m() {
+  t = (t + float16_t(1.0h));
+  return matrix<float16_t, 3, 4>(vector<float16_t, 4>(float16_t(1.0h), float16_t(2.0h), float16_t(3.0h), float16_t(4.0h)), vector<float16_t, 4>(float16_t(5.0h), float16_t(6.0h), float16_t(7.0h), float16_t(8.0h)), vector<float16_t, 4>(float16_t(9.0h), float16_t(10.0h), float16_t(11.0h), float16_t(12.0h)));
+}
+
+void f() {
+  float3x4 v = float3x4(m());
+}
+
+[numthreads(1, 1, 1)]
+void unused_entry_point() {
+}
+
diff --git a/test/tint/expressions/type_conv/mat3x4/function/f16-f32.wgsl.expected.ir.fxc.hlsl b/test/tint/expressions/type_conv/mat3x4/function/f16-f32.wgsl.expected.ir.fxc.hlsl
index 48e23f4..7aa44fc 100644
--- a/test/tint/expressions/type_conv/mat3x4/function/f16-f32.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/expressions/type_conv/mat3x4/function/f16-f32.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,20 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Convert
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+
+static float16_t t = float16_t(0.0h);
+matrix<float16_t, 3, 4> m() {
+  t = (t + float16_t(1.0h));
+  return matrix<float16_t, 3, 4>(vector<float16_t, 4>(float16_t(1.0h), float16_t(2.0h), float16_t(3.0h), float16_t(4.0h)), vector<float16_t, 4>(float16_t(5.0h), float16_t(6.0h), float16_t(7.0h), float16_t(8.0h)), vector<float16_t, 4>(float16_t(9.0h), float16_t(10.0h), float16_t(11.0h), float16_t(12.0h)));
+}
+
+void f() {
+  float3x4 v = float3x4(m());
+}
+
+[numthreads(1, 1, 1)]
+void unused_entry_point() {
+}
+
+FXC validation failure:
+c:\src\dawn\Shader@0x000002C0FC470700(2,8-16): error X3000: unrecognized identifier 'float16_t'
+
diff --git a/test/tint/expressions/type_conv/mat3x4/function/f32-f16.wgsl.expected.ir.dxc.hlsl b/test/tint/expressions/type_conv/mat3x4/function/f32-f16.wgsl.expected.ir.dxc.hlsl
index 48e23f4..46b520e 100644
--- a/test/tint/expressions/type_conv/mat3x4/function/f32-f16.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/expressions/type_conv/mat3x4/function/f32-f16.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,15 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Convert
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+static float t = 0.0f;
+float3x4 m() {
+  t = (t + 1.0f);
+  return float3x4(float4(1.0f, 2.0f, 3.0f, 4.0f), float4(5.0f, 6.0f, 7.0f, 8.0f), float4(9.0f, 10.0f, 11.0f, 12.0f));
+}
+
+void f() {
+  matrix<float16_t, 3, 4> v = matrix<float16_t, 3, 4>(m());
+}
+
+[numthreads(1, 1, 1)]
+void unused_entry_point() {
+}
+
diff --git a/test/tint/expressions/type_conv/mat3x4/function/f32-f16.wgsl.expected.ir.fxc.hlsl b/test/tint/expressions/type_conv/mat3x4/function/f32-f16.wgsl.expected.ir.fxc.hlsl
index 48e23f4..680ddfe 100644
--- a/test/tint/expressions/type_conv/mat3x4/function/f32-f16.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/expressions/type_conv/mat3x4/function/f32-f16.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,20 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Convert
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+
+static float t = 0.0f;
+float3x4 m() {
+  t = (t + 1.0f);
+  return float3x4(float4(1.0f, 2.0f, 3.0f, 4.0f), float4(5.0f, 6.0f, 7.0f, 8.0f), float4(9.0f, 10.0f, 11.0f, 12.0f));
+}
+
+void f() {
+  matrix<float16_t, 3, 4> v = matrix<float16_t, 3, 4>(m());
+}
+
+[numthreads(1, 1, 1)]
+void unused_entry_point() {
+}
+
+FXC validation failure:
+c:\src\dawn\Shader@0x0000026474D6E440(9,10-18): error X3000: syntax error: unexpected token 'float16_t'
+
diff --git a/test/tint/expressions/type_conv/mat3x4/literal/f16-f32.wgsl.expected.ir.dxc.hlsl b/test/tint/expressions/type_conv/mat3x4/literal/f16-f32.wgsl.expected.ir.dxc.hlsl
index 9acd2d7..530ff6a 100644
--- a/test/tint/expressions/type_conv/mat3x4/literal/f16-f32.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/expressions/type_conv/mat3x4/literal/f16-f32.wgsl.expected.ir.dxc.hlsl
@@ -1,3 +1,5 @@
+
+static 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));
 [numthreads(1, 1, 1)]
 void unused_entry_point() {
 }
diff --git a/test/tint/expressions/type_conv/mat3x4/literal/f16-f32.wgsl.expected.ir.fxc.hlsl b/test/tint/expressions/type_conv/mat3x4/literal/f16-f32.wgsl.expected.ir.fxc.hlsl
index 9acd2d7..530ff6a 100644
--- a/test/tint/expressions/type_conv/mat3x4/literal/f16-f32.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/expressions/type_conv/mat3x4/literal/f16-f32.wgsl.expected.ir.fxc.hlsl
@@ -1,3 +1,5 @@
+
+static 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));
 [numthreads(1, 1, 1)]
 void unused_entry_point() {
 }
diff --git a/test/tint/expressions/type_conv/mat3x4/literal/f32-f16.wgsl.expected.ir.dxc.hlsl b/test/tint/expressions/type_conv/mat3x4/literal/f32-f16.wgsl.expected.ir.dxc.hlsl
index 9acd2d7..6ed54bc 100644
--- a/test/tint/expressions/type_conv/mat3x4/literal/f32-f16.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/expressions/type_conv/mat3x4/literal/f32-f16.wgsl.expected.ir.dxc.hlsl
@@ -1,3 +1,5 @@
+
+static matrix<float16_t, 3, 4> u = matrix<float16_t, 3, 4>(vector<float16_t, 4>(float16_t(1.0h), float16_t(2.0h), float16_t(3.0h), float16_t(4.0h)), vector<float16_t, 4>(float16_t(5.0h), float16_t(6.0h), float16_t(7.0h), float16_t(8.0h)), vector<float16_t, 4>(float16_t(9.0h), float16_t(10.0h), float16_t(11.0h), float16_t(12.0h)));
 [numthreads(1, 1, 1)]
 void unused_entry_point() {
 }
diff --git a/test/tint/expressions/type_conv/mat3x4/literal/f32-f16.wgsl.expected.ir.fxc.hlsl b/test/tint/expressions/type_conv/mat3x4/literal/f32-f16.wgsl.expected.ir.fxc.hlsl
index 9acd2d7..964294c 100644
--- a/test/tint/expressions/type_conv/mat3x4/literal/f32-f16.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/expressions/type_conv/mat3x4/literal/f32-f16.wgsl.expected.ir.fxc.hlsl
@@ -1,4 +1,11 @@
+SKIP: FAILED
+
+
+static matrix<float16_t, 3, 4> u = matrix<float16_t, 3, 4>(vector<float16_t, 4>(float16_t(1.0h), float16_t(2.0h), float16_t(3.0h), float16_t(4.0h)), vector<float16_t, 4>(float16_t(5.0h), float16_t(6.0h), float16_t(7.0h), float16_t(8.0h)), vector<float16_t, 4>(float16_t(9.0h), float16_t(10.0h), float16_t(11.0h), float16_t(12.0h)));
 [numthreads(1, 1, 1)]
 void unused_entry_point() {
 }
 
+FXC validation failure:
+c:\src\dawn\Shader@0x000001C16BE75A40(2,15-23): error X3000: syntax error: unexpected token 'float16_t'
+
diff --git a/test/tint/expressions/type_conv/mat3x4/var/f16-f32.wgsl.expected.ir.dxc.hlsl b/test/tint/expressions/type_conv/mat3x4/var/f16-f32.wgsl.expected.ir.dxc.hlsl
index 48e23f4..f1d69d6 100644
--- a/test/tint/expressions/type_conv/mat3x4/var/f16-f32.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/expressions/type_conv/mat3x4/var/f16-f32.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,10 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Convert
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+static matrix<float16_t, 3, 4> u = matrix<float16_t, 3, 4>(vector<float16_t, 4>(float16_t(1.0h), float16_t(2.0h), float16_t(3.0h), float16_t(4.0h)), vector<float16_t, 4>(float16_t(5.0h), float16_t(6.0h), float16_t(7.0h), float16_t(8.0h)), vector<float16_t, 4>(float16_t(9.0h), float16_t(10.0h), float16_t(11.0h), float16_t(12.0h)));
+void f() {
+  float3x4 v = float3x4(u);
+}
+
+[numthreads(1, 1, 1)]
+void unused_entry_point() {
+}
+
diff --git a/test/tint/expressions/type_conv/mat3x4/var/f16-f32.wgsl.expected.ir.fxc.hlsl b/test/tint/expressions/type_conv/mat3x4/var/f16-f32.wgsl.expected.ir.fxc.hlsl
index 48e23f4..1239a6c 100644
--- a/test/tint/expressions/type_conv/mat3x4/var/f16-f32.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/expressions/type_conv/mat3x4/var/f16-f32.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,15 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Convert
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+
+static matrix<float16_t, 3, 4> u = matrix<float16_t, 3, 4>(vector<float16_t, 4>(float16_t(1.0h), float16_t(2.0h), float16_t(3.0h), float16_t(4.0h)), vector<float16_t, 4>(float16_t(5.0h), float16_t(6.0h), float16_t(7.0h), float16_t(8.0h)), vector<float16_t, 4>(float16_t(9.0h), float16_t(10.0h), float16_t(11.0h), float16_t(12.0h)));
+void f() {
+  float3x4 v = float3x4(u);
+}
+
+[numthreads(1, 1, 1)]
+void unused_entry_point() {
+}
+
+FXC validation failure:
+c:\src\dawn\Shader@0x000001B12EBB03C0(2,15-23): error X3000: syntax error: unexpected token 'float16_t'
+
diff --git a/test/tint/expressions/type_conv/mat3x4/var/f32-f16.wgsl.expected.ir.dxc.hlsl b/test/tint/expressions/type_conv/mat3x4/var/f32-f16.wgsl.expected.ir.dxc.hlsl
index 48e23f4..3be3b2d 100644
--- a/test/tint/expressions/type_conv/mat3x4/var/f32-f16.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/expressions/type_conv/mat3x4/var/f32-f16.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,10 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Convert
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+static float3x4 u = float3x4(float4(1.0f, 2.0f, 3.0f, 4.0f), float4(5.0f, 6.0f, 7.0f, 8.0f), float4(9.0f, 10.0f, 11.0f, 12.0f));
+void f() {
+  matrix<float16_t, 3, 4> v = matrix<float16_t, 3, 4>(u);
+}
+
+[numthreads(1, 1, 1)]
+void unused_entry_point() {
+}
+
diff --git a/test/tint/expressions/type_conv/mat3x4/var/f32-f16.wgsl.expected.ir.fxc.hlsl b/test/tint/expressions/type_conv/mat3x4/var/f32-f16.wgsl.expected.ir.fxc.hlsl
index 48e23f4..857d935 100644
--- a/test/tint/expressions/type_conv/mat3x4/var/f32-f16.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/expressions/type_conv/mat3x4/var/f32-f16.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,15 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Convert
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+
+static float3x4 u = float3x4(float4(1.0f, 2.0f, 3.0f, 4.0f), float4(5.0f, 6.0f, 7.0f, 8.0f), float4(9.0f, 10.0f, 11.0f, 12.0f));
+void f() {
+  matrix<float16_t, 3, 4> v = matrix<float16_t, 3, 4>(u);
+}
+
+[numthreads(1, 1, 1)]
+void unused_entry_point() {
+}
+
+FXC validation failure:
+c:\src\dawn\Shader@0x000001926FF8CBC0(4,10-18): error X3000: syntax error: unexpected token 'float16_t'
+
diff --git a/test/tint/expressions/type_conv/mat4x2/function/f16-f32.wgsl.expected.ir.dxc.hlsl b/test/tint/expressions/type_conv/mat4x2/function/f16-f32.wgsl.expected.ir.dxc.hlsl
index 48e23f4..04b63ad 100644
--- a/test/tint/expressions/type_conv/mat4x2/function/f16-f32.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/expressions/type_conv/mat4x2/function/f16-f32.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,15 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Convert
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+static float16_t t = float16_t(0.0h);
+matrix<float16_t, 4, 2> m() {
+  t = (t + float16_t(1.0h));
+  return matrix<float16_t, 4, 2>(vector<float16_t, 2>(float16_t(1.0h), float16_t(2.0h)), vector<float16_t, 2>(float16_t(3.0h), float16_t(4.0h)), vector<float16_t, 2>(float16_t(5.0h), float16_t(6.0h)), vector<float16_t, 2>(float16_t(7.0h), float16_t(8.0h)));
+}
+
+void f() {
+  float4x2 v = float4x2(m());
+}
+
+[numthreads(1, 1, 1)]
+void unused_entry_point() {
+}
+
diff --git a/test/tint/expressions/type_conv/mat4x2/function/f16-f32.wgsl.expected.ir.fxc.hlsl b/test/tint/expressions/type_conv/mat4x2/function/f16-f32.wgsl.expected.ir.fxc.hlsl
index 48e23f4..b7cea20 100644
--- a/test/tint/expressions/type_conv/mat4x2/function/f16-f32.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/expressions/type_conv/mat4x2/function/f16-f32.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,20 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Convert
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+
+static float16_t t = float16_t(0.0h);
+matrix<float16_t, 4, 2> m() {
+  t = (t + float16_t(1.0h));
+  return matrix<float16_t, 4, 2>(vector<float16_t, 2>(float16_t(1.0h), float16_t(2.0h)), vector<float16_t, 2>(float16_t(3.0h), float16_t(4.0h)), vector<float16_t, 2>(float16_t(5.0h), float16_t(6.0h)), vector<float16_t, 2>(float16_t(7.0h), float16_t(8.0h)));
+}
+
+void f() {
+  float4x2 v = float4x2(m());
+}
+
+[numthreads(1, 1, 1)]
+void unused_entry_point() {
+}
+
+FXC validation failure:
+c:\src\dawn\Shader@0x0000021DF3284900(2,8-16): error X3000: unrecognized identifier 'float16_t'
+
diff --git a/test/tint/expressions/type_conv/mat4x2/function/f32-f16.wgsl.expected.ir.dxc.hlsl b/test/tint/expressions/type_conv/mat4x2/function/f32-f16.wgsl.expected.ir.dxc.hlsl
index 48e23f4..816b0c7 100644
--- a/test/tint/expressions/type_conv/mat4x2/function/f32-f16.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/expressions/type_conv/mat4x2/function/f32-f16.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,15 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Convert
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+static float t = 0.0f;
+float4x2 m() {
+  t = (t + 1.0f);
+  return float4x2(float2(1.0f, 2.0f), float2(3.0f, 4.0f), float2(5.0f, 6.0f), float2(7.0f, 8.0f));
+}
+
+void f() {
+  matrix<float16_t, 4, 2> v = matrix<float16_t, 4, 2>(m());
+}
+
+[numthreads(1, 1, 1)]
+void unused_entry_point() {
+}
+
diff --git a/test/tint/expressions/type_conv/mat4x2/function/f32-f16.wgsl.expected.ir.fxc.hlsl b/test/tint/expressions/type_conv/mat4x2/function/f32-f16.wgsl.expected.ir.fxc.hlsl
index 48e23f4..20a6f48 100644
--- a/test/tint/expressions/type_conv/mat4x2/function/f32-f16.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/expressions/type_conv/mat4x2/function/f32-f16.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,20 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Convert
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+
+static float t = 0.0f;
+float4x2 m() {
+  t = (t + 1.0f);
+  return float4x2(float2(1.0f, 2.0f), float2(3.0f, 4.0f), float2(5.0f, 6.0f), float2(7.0f, 8.0f));
+}
+
+void f() {
+  matrix<float16_t, 4, 2> v = matrix<float16_t, 4, 2>(m());
+}
+
+[numthreads(1, 1, 1)]
+void unused_entry_point() {
+}
+
+FXC validation failure:
+c:\src\dawn\Shader@0x000001BEC7C65DF0(9,10-18): error X3000: syntax error: unexpected token 'float16_t'
+
diff --git a/test/tint/expressions/type_conv/mat4x2/literal/f16-f32.wgsl.expected.ir.dxc.hlsl b/test/tint/expressions/type_conv/mat4x2/literal/f16-f32.wgsl.expected.ir.dxc.hlsl
index 9acd2d7..a7abfaa 100644
--- a/test/tint/expressions/type_conv/mat4x2/literal/f16-f32.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/expressions/type_conv/mat4x2/literal/f16-f32.wgsl.expected.ir.dxc.hlsl
@@ -1,3 +1,5 @@
+
+static float4x2 u = float4x2(float2(1.0f, 2.0f), float2(3.0f, 4.0f), float2(5.0f, 6.0f), float2(7.0f, 8.0f));
 [numthreads(1, 1, 1)]
 void unused_entry_point() {
 }
diff --git a/test/tint/expressions/type_conv/mat4x2/literal/f16-f32.wgsl.expected.ir.fxc.hlsl b/test/tint/expressions/type_conv/mat4x2/literal/f16-f32.wgsl.expected.ir.fxc.hlsl
index 9acd2d7..a7abfaa 100644
--- a/test/tint/expressions/type_conv/mat4x2/literal/f16-f32.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/expressions/type_conv/mat4x2/literal/f16-f32.wgsl.expected.ir.fxc.hlsl
@@ -1,3 +1,5 @@
+
+static float4x2 u = float4x2(float2(1.0f, 2.0f), float2(3.0f, 4.0f), float2(5.0f, 6.0f), float2(7.0f, 8.0f));
 [numthreads(1, 1, 1)]
 void unused_entry_point() {
 }
diff --git a/test/tint/expressions/type_conv/mat4x2/literal/f32-f16.wgsl.expected.ir.dxc.hlsl b/test/tint/expressions/type_conv/mat4x2/literal/f32-f16.wgsl.expected.ir.dxc.hlsl
index 9acd2d7..965516a 100644
--- a/test/tint/expressions/type_conv/mat4x2/literal/f32-f16.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/expressions/type_conv/mat4x2/literal/f32-f16.wgsl.expected.ir.dxc.hlsl
@@ -1,3 +1,5 @@
+
+static matrix<float16_t, 4, 2> u = matrix<float16_t, 4, 2>(vector<float16_t, 2>(float16_t(1.0h), float16_t(2.0h)), vector<float16_t, 2>(float16_t(3.0h), float16_t(4.0h)), vector<float16_t, 2>(float16_t(5.0h), float16_t(6.0h)), vector<float16_t, 2>(float16_t(7.0h), float16_t(8.0h)));
 [numthreads(1, 1, 1)]
 void unused_entry_point() {
 }
diff --git a/test/tint/expressions/type_conv/mat4x2/literal/f32-f16.wgsl.expected.ir.fxc.hlsl b/test/tint/expressions/type_conv/mat4x2/literal/f32-f16.wgsl.expected.ir.fxc.hlsl
index 9acd2d7..f8b24a5 100644
--- a/test/tint/expressions/type_conv/mat4x2/literal/f32-f16.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/expressions/type_conv/mat4x2/literal/f32-f16.wgsl.expected.ir.fxc.hlsl
@@ -1,4 +1,11 @@
+SKIP: FAILED
+
+
+static matrix<float16_t, 4, 2> u = matrix<float16_t, 4, 2>(vector<float16_t, 2>(float16_t(1.0h), float16_t(2.0h)), vector<float16_t, 2>(float16_t(3.0h), float16_t(4.0h)), vector<float16_t, 2>(float16_t(5.0h), float16_t(6.0h)), vector<float16_t, 2>(float16_t(7.0h), float16_t(8.0h)));
 [numthreads(1, 1, 1)]
 void unused_entry_point() {
 }
 
+FXC validation failure:
+c:\src\dawn\Shader@0x0000024E60375BA0(2,15-23): error X3000: syntax error: unexpected token 'float16_t'
+
diff --git a/test/tint/expressions/type_conv/mat4x2/var/f16-f32.wgsl.expected.ir.dxc.hlsl b/test/tint/expressions/type_conv/mat4x2/var/f16-f32.wgsl.expected.ir.dxc.hlsl
index 48e23f4..d1fe163 100644
--- a/test/tint/expressions/type_conv/mat4x2/var/f16-f32.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/expressions/type_conv/mat4x2/var/f16-f32.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,10 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Convert
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+static matrix<float16_t, 4, 2> u = matrix<float16_t, 4, 2>(vector<float16_t, 2>(float16_t(1.0h), float16_t(2.0h)), vector<float16_t, 2>(float16_t(3.0h), float16_t(4.0h)), vector<float16_t, 2>(float16_t(5.0h), float16_t(6.0h)), vector<float16_t, 2>(float16_t(7.0h), float16_t(8.0h)));
+void f() {
+  float4x2 v = float4x2(u);
+}
+
+[numthreads(1, 1, 1)]
+void unused_entry_point() {
+}
+
diff --git a/test/tint/expressions/type_conv/mat4x2/var/f16-f32.wgsl.expected.ir.fxc.hlsl b/test/tint/expressions/type_conv/mat4x2/var/f16-f32.wgsl.expected.ir.fxc.hlsl
index 48e23f4..f992ddf 100644
--- a/test/tint/expressions/type_conv/mat4x2/var/f16-f32.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/expressions/type_conv/mat4x2/var/f16-f32.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,15 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Convert
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+
+static matrix<float16_t, 4, 2> u = matrix<float16_t, 4, 2>(vector<float16_t, 2>(float16_t(1.0h), float16_t(2.0h)), vector<float16_t, 2>(float16_t(3.0h), float16_t(4.0h)), vector<float16_t, 2>(float16_t(5.0h), float16_t(6.0h)), vector<float16_t, 2>(float16_t(7.0h), float16_t(8.0h)));
+void f() {
+  float4x2 v = float4x2(u);
+}
+
+[numthreads(1, 1, 1)]
+void unused_entry_point() {
+}
+
+FXC validation failure:
+c:\src\dawn\Shader@0x000001FB32172980(2,15-23): error X3000: syntax error: unexpected token 'float16_t'
+
diff --git a/test/tint/expressions/type_conv/mat4x2/var/f32-f16.wgsl.expected.ir.dxc.hlsl b/test/tint/expressions/type_conv/mat4x2/var/f32-f16.wgsl.expected.ir.dxc.hlsl
index 48e23f4..986d3d5 100644
--- a/test/tint/expressions/type_conv/mat4x2/var/f32-f16.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/expressions/type_conv/mat4x2/var/f32-f16.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,10 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Convert
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+static float4x2 u = float4x2(float2(1.0f, 2.0f), float2(3.0f, 4.0f), float2(5.0f, 6.0f), float2(7.0f, 8.0f));
+void f() {
+  matrix<float16_t, 4, 2> v = matrix<float16_t, 4, 2>(u);
+}
+
+[numthreads(1, 1, 1)]
+void unused_entry_point() {
+}
+
diff --git a/test/tint/expressions/type_conv/mat4x2/var/f32-f16.wgsl.expected.ir.fxc.hlsl b/test/tint/expressions/type_conv/mat4x2/var/f32-f16.wgsl.expected.ir.fxc.hlsl
index 48e23f4..6660262 100644
--- a/test/tint/expressions/type_conv/mat4x2/var/f32-f16.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/expressions/type_conv/mat4x2/var/f32-f16.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,15 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Convert
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+
+static float4x2 u = float4x2(float2(1.0f, 2.0f), float2(3.0f, 4.0f), float2(5.0f, 6.0f), float2(7.0f, 8.0f));
+void f() {
+  matrix<float16_t, 4, 2> v = matrix<float16_t, 4, 2>(u);
+}
+
+[numthreads(1, 1, 1)]
+void unused_entry_point() {
+}
+
+FXC validation failure:
+c:\src\dawn\Shader@0x0000021A10970520(4,10-18): error X3000: syntax error: unexpected token 'float16_t'
+
diff --git a/test/tint/expressions/type_conv/mat4x3/function/f16-f32.wgsl.expected.ir.dxc.hlsl b/test/tint/expressions/type_conv/mat4x3/function/f16-f32.wgsl.expected.ir.dxc.hlsl
index 48e23f4..82c60c4 100644
--- a/test/tint/expressions/type_conv/mat4x3/function/f16-f32.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/expressions/type_conv/mat4x3/function/f16-f32.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,15 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Convert
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+static float16_t t = float16_t(0.0h);
+matrix<float16_t, 4, 3> m() {
+  t = (t + float16_t(1.0h));
+  return matrix<float16_t, 4, 3>(vector<float16_t, 3>(float16_t(1.0h), float16_t(2.0h), float16_t(3.0h)), vector<float16_t, 3>(float16_t(4.0h), float16_t(5.0h), float16_t(6.0h)), vector<float16_t, 3>(float16_t(7.0h), float16_t(8.0h), float16_t(9.0h)), vector<float16_t, 3>(float16_t(10.0h), float16_t(11.0h), float16_t(12.0h)));
+}
+
+void f() {
+  float4x3 v = float4x3(m());
+}
+
+[numthreads(1, 1, 1)]
+void unused_entry_point() {
+}
+
diff --git a/test/tint/expressions/type_conv/mat4x3/function/f16-f32.wgsl.expected.ir.fxc.hlsl b/test/tint/expressions/type_conv/mat4x3/function/f16-f32.wgsl.expected.ir.fxc.hlsl
index 48e23f4..1506507 100644
--- a/test/tint/expressions/type_conv/mat4x3/function/f16-f32.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/expressions/type_conv/mat4x3/function/f16-f32.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,20 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Convert
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+
+static float16_t t = float16_t(0.0h);
+matrix<float16_t, 4, 3> m() {
+  t = (t + float16_t(1.0h));
+  return matrix<float16_t, 4, 3>(vector<float16_t, 3>(float16_t(1.0h), float16_t(2.0h), float16_t(3.0h)), vector<float16_t, 3>(float16_t(4.0h), float16_t(5.0h), float16_t(6.0h)), vector<float16_t, 3>(float16_t(7.0h), float16_t(8.0h), float16_t(9.0h)), vector<float16_t, 3>(float16_t(10.0h), float16_t(11.0h), float16_t(12.0h)));
+}
+
+void f() {
+  float4x3 v = float4x3(m());
+}
+
+[numthreads(1, 1, 1)]
+void unused_entry_point() {
+}
+
+FXC validation failure:
+c:\src\dawn\Shader@0x000001E8052AF740(2,8-16): error X3000: unrecognized identifier 'float16_t'
+
diff --git a/test/tint/expressions/type_conv/mat4x3/function/f32-f16.wgsl.expected.ir.dxc.hlsl b/test/tint/expressions/type_conv/mat4x3/function/f32-f16.wgsl.expected.ir.dxc.hlsl
index 48e23f4..a9db4fb 100644
--- a/test/tint/expressions/type_conv/mat4x3/function/f32-f16.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/expressions/type_conv/mat4x3/function/f32-f16.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,15 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Convert
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+static float t = 0.0f;
+float4x3 m() {
+  t = (t + 1.0f);
+  return float4x3(float3(1.0f, 2.0f, 3.0f), float3(4.0f, 5.0f, 6.0f), float3(7.0f, 8.0f, 9.0f), float3(10.0f, 11.0f, 12.0f));
+}
+
+void f() {
+  matrix<float16_t, 4, 3> v = matrix<float16_t, 4, 3>(m());
+}
+
+[numthreads(1, 1, 1)]
+void unused_entry_point() {
+}
+
diff --git a/test/tint/expressions/type_conv/mat4x3/function/f32-f16.wgsl.expected.ir.fxc.hlsl b/test/tint/expressions/type_conv/mat4x3/function/f32-f16.wgsl.expected.ir.fxc.hlsl
index 48e23f4..184918a 100644
--- a/test/tint/expressions/type_conv/mat4x3/function/f32-f16.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/expressions/type_conv/mat4x3/function/f32-f16.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,20 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Convert
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+
+static float t = 0.0f;
+float4x3 m() {
+  t = (t + 1.0f);
+  return float4x3(float3(1.0f, 2.0f, 3.0f), float3(4.0f, 5.0f, 6.0f), float3(7.0f, 8.0f, 9.0f), float3(10.0f, 11.0f, 12.0f));
+}
+
+void f() {
+  matrix<float16_t, 4, 3> v = matrix<float16_t, 4, 3>(m());
+}
+
+[numthreads(1, 1, 1)]
+void unused_entry_point() {
+}
+
+FXC validation failure:
+c:\src\dawn\Shader@0x0000027DCFED3C30(9,10-18): error X3000: syntax error: unexpected token 'float16_t'
+
diff --git a/test/tint/expressions/type_conv/mat4x3/literal/f16-f32.wgsl.expected.ir.dxc.hlsl b/test/tint/expressions/type_conv/mat4x3/literal/f16-f32.wgsl.expected.ir.dxc.hlsl
index 9acd2d7..040a8b9 100644
--- a/test/tint/expressions/type_conv/mat4x3/literal/f16-f32.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/expressions/type_conv/mat4x3/literal/f16-f32.wgsl.expected.ir.dxc.hlsl
@@ -1,3 +1,5 @@
+
+static 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));
 [numthreads(1, 1, 1)]
 void unused_entry_point() {
 }
diff --git a/test/tint/expressions/type_conv/mat4x3/literal/f16-f32.wgsl.expected.ir.fxc.hlsl b/test/tint/expressions/type_conv/mat4x3/literal/f16-f32.wgsl.expected.ir.fxc.hlsl
index 9acd2d7..040a8b9 100644
--- a/test/tint/expressions/type_conv/mat4x3/literal/f16-f32.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/expressions/type_conv/mat4x3/literal/f16-f32.wgsl.expected.ir.fxc.hlsl
@@ -1,3 +1,5 @@
+
+static 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));
 [numthreads(1, 1, 1)]
 void unused_entry_point() {
 }
diff --git a/test/tint/expressions/type_conv/mat4x3/literal/f32-f16.wgsl.expected.ir.dxc.hlsl b/test/tint/expressions/type_conv/mat4x3/literal/f32-f16.wgsl.expected.ir.dxc.hlsl
index 9acd2d7..db46977 100644
--- a/test/tint/expressions/type_conv/mat4x3/literal/f32-f16.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/expressions/type_conv/mat4x3/literal/f32-f16.wgsl.expected.ir.dxc.hlsl
@@ -1,3 +1,5 @@
+
+static matrix<float16_t, 4, 3> u = matrix<float16_t, 4, 3>(vector<float16_t, 3>(float16_t(1.0h), float16_t(2.0h), float16_t(3.0h)), vector<float16_t, 3>(float16_t(4.0h), float16_t(5.0h), float16_t(6.0h)), vector<float16_t, 3>(float16_t(7.0h), float16_t(8.0h), float16_t(9.0h)), vector<float16_t, 3>(float16_t(10.0h), float16_t(11.0h), float16_t(12.0h)));
 [numthreads(1, 1, 1)]
 void unused_entry_point() {
 }
diff --git a/test/tint/expressions/type_conv/mat4x3/literal/f32-f16.wgsl.expected.ir.fxc.hlsl b/test/tint/expressions/type_conv/mat4x3/literal/f32-f16.wgsl.expected.ir.fxc.hlsl
index 9acd2d7..c8599d5 100644
--- a/test/tint/expressions/type_conv/mat4x3/literal/f32-f16.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/expressions/type_conv/mat4x3/literal/f32-f16.wgsl.expected.ir.fxc.hlsl
@@ -1,4 +1,11 @@
+SKIP: FAILED
+
+
+static matrix<float16_t, 4, 3> u = matrix<float16_t, 4, 3>(vector<float16_t, 3>(float16_t(1.0h), float16_t(2.0h), float16_t(3.0h)), vector<float16_t, 3>(float16_t(4.0h), float16_t(5.0h), float16_t(6.0h)), vector<float16_t, 3>(float16_t(7.0h), float16_t(8.0h), float16_t(9.0h)), vector<float16_t, 3>(float16_t(10.0h), float16_t(11.0h), float16_t(12.0h)));
 [numthreads(1, 1, 1)]
 void unused_entry_point() {
 }
 
+FXC validation failure:
+c:\src\dawn\Shader@0x0000021CEB782330(2,15-23): error X3000: syntax error: unexpected token 'float16_t'
+
diff --git a/test/tint/expressions/type_conv/mat4x3/var/f16-f32.wgsl.expected.ir.dxc.hlsl b/test/tint/expressions/type_conv/mat4x3/var/f16-f32.wgsl.expected.ir.dxc.hlsl
index 48e23f4..4deef708 100644
--- a/test/tint/expressions/type_conv/mat4x3/var/f16-f32.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/expressions/type_conv/mat4x3/var/f16-f32.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,10 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Convert
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+static matrix<float16_t, 4, 3> u = matrix<float16_t, 4, 3>(vector<float16_t, 3>(float16_t(1.0h), float16_t(2.0h), float16_t(3.0h)), vector<float16_t, 3>(float16_t(4.0h), float16_t(5.0h), float16_t(6.0h)), vector<float16_t, 3>(float16_t(7.0h), float16_t(8.0h), float16_t(9.0h)), vector<float16_t, 3>(float16_t(10.0h), float16_t(11.0h), float16_t(12.0h)));
+void f() {
+  float4x3 v = float4x3(u);
+}
+
+[numthreads(1, 1, 1)]
+void unused_entry_point() {
+}
+
diff --git a/test/tint/expressions/type_conv/mat4x3/var/f16-f32.wgsl.expected.ir.fxc.hlsl b/test/tint/expressions/type_conv/mat4x3/var/f16-f32.wgsl.expected.ir.fxc.hlsl
index 48e23f4..706e8ca 100644
--- a/test/tint/expressions/type_conv/mat4x3/var/f16-f32.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/expressions/type_conv/mat4x3/var/f16-f32.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,15 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Convert
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+
+static matrix<float16_t, 4, 3> u = matrix<float16_t, 4, 3>(vector<float16_t, 3>(float16_t(1.0h), float16_t(2.0h), float16_t(3.0h)), vector<float16_t, 3>(float16_t(4.0h), float16_t(5.0h), float16_t(6.0h)), vector<float16_t, 3>(float16_t(7.0h), float16_t(8.0h), float16_t(9.0h)), vector<float16_t, 3>(float16_t(10.0h), float16_t(11.0h), float16_t(12.0h)));
+void f() {
+  float4x3 v = float4x3(u);
+}
+
+[numthreads(1, 1, 1)]
+void unused_entry_point() {
+}
+
+FXC validation failure:
+c:\src\dawn\Shader@0x0000019032A63A40(2,15-23): error X3000: syntax error: unexpected token 'float16_t'
+
diff --git a/test/tint/expressions/type_conv/mat4x3/var/f32-f16.wgsl.expected.ir.dxc.hlsl b/test/tint/expressions/type_conv/mat4x3/var/f32-f16.wgsl.expected.ir.dxc.hlsl
index 48e23f4..fb89a2e 100644
--- a/test/tint/expressions/type_conv/mat4x3/var/f32-f16.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/expressions/type_conv/mat4x3/var/f32-f16.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,10 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Convert
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+static float4x3 u = float4x3(float3(1.0f, 2.0f, 3.0f), float3(4.0f, 5.0f, 6.0f), float3(7.0f, 8.0f, 9.0f), float3(10.0f, 11.0f, 12.0f));
+void f() {
+  matrix<float16_t, 4, 3> v = matrix<float16_t, 4, 3>(u);
+}
+
+[numthreads(1, 1, 1)]
+void unused_entry_point() {
+}
+
diff --git a/test/tint/expressions/type_conv/mat4x3/var/f32-f16.wgsl.expected.ir.fxc.hlsl b/test/tint/expressions/type_conv/mat4x3/var/f32-f16.wgsl.expected.ir.fxc.hlsl
index 48e23f4..507d66d 100644
--- a/test/tint/expressions/type_conv/mat4x3/var/f32-f16.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/expressions/type_conv/mat4x3/var/f32-f16.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,15 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Convert
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+
+static float4x3 u = float4x3(float3(1.0f, 2.0f, 3.0f), float3(4.0f, 5.0f, 6.0f), float3(7.0f, 8.0f, 9.0f), float3(10.0f, 11.0f, 12.0f));
+void f() {
+  matrix<float16_t, 4, 3> v = matrix<float16_t, 4, 3>(u);
+}
+
+[numthreads(1, 1, 1)]
+void unused_entry_point() {
+}
+
+FXC validation failure:
+c:\src\dawn\Shader@0x0000028E604DFB30(4,10-18): error X3000: syntax error: unexpected token 'float16_t'
+
diff --git a/test/tint/expressions/type_conv/mat4x4/function/f16-f32.wgsl.expected.ir.dxc.hlsl b/test/tint/expressions/type_conv/mat4x4/function/f16-f32.wgsl.expected.ir.dxc.hlsl
index 48e23f4..5b44597 100644
--- a/test/tint/expressions/type_conv/mat4x4/function/f16-f32.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/expressions/type_conv/mat4x4/function/f16-f32.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,15 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Convert
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+static float16_t t = float16_t(0.0h);
+matrix<float16_t, 4, 4> m() {
+  t = (t + float16_t(1.0h));
+  return matrix<float16_t, 4, 4>(vector<float16_t, 4>(float16_t(1.0h), float16_t(2.0h), float16_t(3.0h), float16_t(4.0h)), vector<float16_t, 4>(float16_t(5.0h), float16_t(6.0h), float16_t(7.0h), float16_t(8.0h)), vector<float16_t, 4>(float16_t(9.0h), float16_t(10.0h), float16_t(11.0h), float16_t(12.0h)), vector<float16_t, 4>(float16_t(13.0h), float16_t(14.0h), float16_t(15.0h), float16_t(16.0h)));
+}
+
+void f() {
+  float4x4 v = float4x4(m());
+}
+
+[numthreads(1, 1, 1)]
+void unused_entry_point() {
+}
+
diff --git a/test/tint/expressions/type_conv/mat4x4/function/f16-f32.wgsl.expected.ir.fxc.hlsl b/test/tint/expressions/type_conv/mat4x4/function/f16-f32.wgsl.expected.ir.fxc.hlsl
index 48e23f4..283dacc 100644
--- a/test/tint/expressions/type_conv/mat4x4/function/f16-f32.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/expressions/type_conv/mat4x4/function/f16-f32.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,20 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Convert
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+
+static float16_t t = float16_t(0.0h);
+matrix<float16_t, 4, 4> m() {
+  t = (t + float16_t(1.0h));
+  return matrix<float16_t, 4, 4>(vector<float16_t, 4>(float16_t(1.0h), float16_t(2.0h), float16_t(3.0h), float16_t(4.0h)), vector<float16_t, 4>(float16_t(5.0h), float16_t(6.0h), float16_t(7.0h), float16_t(8.0h)), vector<float16_t, 4>(float16_t(9.0h), float16_t(10.0h), float16_t(11.0h), float16_t(12.0h)), vector<float16_t, 4>(float16_t(13.0h), float16_t(14.0h), float16_t(15.0h), float16_t(16.0h)));
+}
+
+void f() {
+  float4x4 v = float4x4(m());
+}
+
+[numthreads(1, 1, 1)]
+void unused_entry_point() {
+}
+
+FXC validation failure:
+c:\src\dawn\Shader@0x000001CF5F613BD0(2,8-16): error X3000: unrecognized identifier 'float16_t'
+
diff --git a/test/tint/expressions/type_conv/mat4x4/function/f32-f16.wgsl.expected.ir.dxc.hlsl b/test/tint/expressions/type_conv/mat4x4/function/f32-f16.wgsl.expected.ir.dxc.hlsl
index 48e23f4..3d27d53 100644
--- a/test/tint/expressions/type_conv/mat4x4/function/f32-f16.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/expressions/type_conv/mat4x4/function/f32-f16.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,15 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Convert
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+static float t = 0.0f;
+float4x4 m() {
+  t = (t + 1.0f);
+  return float4x4(float4(1.0f, 2.0f, 3.0f, 4.0f), float4(5.0f, 6.0f, 7.0f, 8.0f), float4(9.0f, 10.0f, 11.0f, 12.0f), float4(13.0f, 14.0f, 15.0f, 16.0f));
+}
+
+void f() {
+  matrix<float16_t, 4, 4> v = matrix<float16_t, 4, 4>(m());
+}
+
+[numthreads(1, 1, 1)]
+void unused_entry_point() {
+}
+
diff --git a/test/tint/expressions/type_conv/mat4x4/function/f32-f16.wgsl.expected.ir.fxc.hlsl b/test/tint/expressions/type_conv/mat4x4/function/f32-f16.wgsl.expected.ir.fxc.hlsl
index 48e23f4..1303240 100644
--- a/test/tint/expressions/type_conv/mat4x4/function/f32-f16.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/expressions/type_conv/mat4x4/function/f32-f16.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,20 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Convert
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+
+static float t = 0.0f;
+float4x4 m() {
+  t = (t + 1.0f);
+  return float4x4(float4(1.0f, 2.0f, 3.0f, 4.0f), float4(5.0f, 6.0f, 7.0f, 8.0f), float4(9.0f, 10.0f, 11.0f, 12.0f), float4(13.0f, 14.0f, 15.0f, 16.0f));
+}
+
+void f() {
+  matrix<float16_t, 4, 4> v = matrix<float16_t, 4, 4>(m());
+}
+
+[numthreads(1, 1, 1)]
+void unused_entry_point() {
+}
+
+FXC validation failure:
+c:\src\dawn\Shader@0x000002DD66F661D0(9,10-18): error X3000: syntax error: unexpected token 'float16_t'
+
diff --git a/test/tint/expressions/type_conv/mat4x4/literal/f16-f32.wgsl.expected.ir.dxc.hlsl b/test/tint/expressions/type_conv/mat4x4/literal/f16-f32.wgsl.expected.ir.dxc.hlsl
index 9acd2d7..13c76d5 100644
--- a/test/tint/expressions/type_conv/mat4x4/literal/f16-f32.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/expressions/type_conv/mat4x4/literal/f16-f32.wgsl.expected.ir.dxc.hlsl
@@ -1,3 +1,5 @@
+
+static 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));
 [numthreads(1, 1, 1)]
 void unused_entry_point() {
 }
diff --git a/test/tint/expressions/type_conv/mat4x4/literal/f16-f32.wgsl.expected.ir.fxc.hlsl b/test/tint/expressions/type_conv/mat4x4/literal/f16-f32.wgsl.expected.ir.fxc.hlsl
index 9acd2d7..13c76d5 100644
--- a/test/tint/expressions/type_conv/mat4x4/literal/f16-f32.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/expressions/type_conv/mat4x4/literal/f16-f32.wgsl.expected.ir.fxc.hlsl
@@ -1,3 +1,5 @@
+
+static 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));
 [numthreads(1, 1, 1)]
 void unused_entry_point() {
 }
diff --git a/test/tint/expressions/type_conv/mat4x4/literal/f32-f16.wgsl.expected.ir.dxc.hlsl b/test/tint/expressions/type_conv/mat4x4/literal/f32-f16.wgsl.expected.ir.dxc.hlsl
index 9acd2d7..1e50804 100644
--- a/test/tint/expressions/type_conv/mat4x4/literal/f32-f16.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/expressions/type_conv/mat4x4/literal/f32-f16.wgsl.expected.ir.dxc.hlsl
@@ -1,3 +1,5 @@
+
+static matrix<float16_t, 4, 4> u = matrix<float16_t, 4, 4>(vector<float16_t, 4>(float16_t(1.0h), float16_t(2.0h), float16_t(3.0h), float16_t(4.0h)), vector<float16_t, 4>(float16_t(5.0h), float16_t(6.0h), float16_t(7.0h), float16_t(8.0h)), vector<float16_t, 4>(float16_t(9.0h), float16_t(10.0h), float16_t(11.0h), float16_t(12.0h)), vector<float16_t, 4>(float16_t(13.0h), float16_t(14.0h), float16_t(15.0h), float16_t(16.0h)));
 [numthreads(1, 1, 1)]
 void unused_entry_point() {
 }
diff --git a/test/tint/expressions/type_conv/mat4x4/literal/f32-f16.wgsl.expected.ir.fxc.hlsl b/test/tint/expressions/type_conv/mat4x4/literal/f32-f16.wgsl.expected.ir.fxc.hlsl
index 9acd2d7..ef7fdb4 100644
--- a/test/tint/expressions/type_conv/mat4x4/literal/f32-f16.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/expressions/type_conv/mat4x4/literal/f32-f16.wgsl.expected.ir.fxc.hlsl
@@ -1,4 +1,11 @@
+SKIP: FAILED
+
+
+static matrix<float16_t, 4, 4> u = matrix<float16_t, 4, 4>(vector<float16_t, 4>(float16_t(1.0h), float16_t(2.0h), float16_t(3.0h), float16_t(4.0h)), vector<float16_t, 4>(float16_t(5.0h), float16_t(6.0h), float16_t(7.0h), float16_t(8.0h)), vector<float16_t, 4>(float16_t(9.0h), float16_t(10.0h), float16_t(11.0h), float16_t(12.0h)), vector<float16_t, 4>(float16_t(13.0h), float16_t(14.0h), float16_t(15.0h), float16_t(16.0h)));
 [numthreads(1, 1, 1)]
 void unused_entry_point() {
 }
 
+FXC validation failure:
+c:\src\dawn\Shader@0x00000145780C5E80(2,15-23): error X3000: syntax error: unexpected token 'float16_t'
+
diff --git a/test/tint/expressions/type_conv/mat4x4/var/f16-f32.wgsl.expected.ir.dxc.hlsl b/test/tint/expressions/type_conv/mat4x4/var/f16-f32.wgsl.expected.ir.dxc.hlsl
index 48e23f4..0468617 100644
--- a/test/tint/expressions/type_conv/mat4x4/var/f16-f32.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/expressions/type_conv/mat4x4/var/f16-f32.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,10 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Convert
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+static matrix<float16_t, 4, 4> u = matrix<float16_t, 4, 4>(vector<float16_t, 4>(float16_t(1.0h), float16_t(2.0h), float16_t(3.0h), float16_t(4.0h)), vector<float16_t, 4>(float16_t(5.0h), float16_t(6.0h), float16_t(7.0h), float16_t(8.0h)), vector<float16_t, 4>(float16_t(9.0h), float16_t(10.0h), float16_t(11.0h), float16_t(12.0h)), vector<float16_t, 4>(float16_t(13.0h), float16_t(14.0h), float16_t(15.0h), float16_t(16.0h)));
+void f() {
+  float4x4 v = float4x4(u);
+}
+
+[numthreads(1, 1, 1)]
+void unused_entry_point() {
+}
+
diff --git a/test/tint/expressions/type_conv/mat4x4/var/f16-f32.wgsl.expected.ir.fxc.hlsl b/test/tint/expressions/type_conv/mat4x4/var/f16-f32.wgsl.expected.ir.fxc.hlsl
index 48e23f4..e725602 100644
--- a/test/tint/expressions/type_conv/mat4x4/var/f16-f32.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/expressions/type_conv/mat4x4/var/f16-f32.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,15 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Convert
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+
+static matrix<float16_t, 4, 4> u = matrix<float16_t, 4, 4>(vector<float16_t, 4>(float16_t(1.0h), float16_t(2.0h), float16_t(3.0h), float16_t(4.0h)), vector<float16_t, 4>(float16_t(5.0h), float16_t(6.0h), float16_t(7.0h), float16_t(8.0h)), vector<float16_t, 4>(float16_t(9.0h), float16_t(10.0h), float16_t(11.0h), float16_t(12.0h)), vector<float16_t, 4>(float16_t(13.0h), float16_t(14.0h), float16_t(15.0h), float16_t(16.0h)));
+void f() {
+  float4x4 v = float4x4(u);
+}
+
+[numthreads(1, 1, 1)]
+void unused_entry_point() {
+}
+
+FXC validation failure:
+c:\src\dawn\Shader@0x000002538EC80A50(2,15-23): error X3000: syntax error: unexpected token 'float16_t'
+
diff --git a/test/tint/expressions/type_conv/mat4x4/var/f32-f16.wgsl.expected.ir.dxc.hlsl b/test/tint/expressions/type_conv/mat4x4/var/f32-f16.wgsl.expected.ir.dxc.hlsl
index 48e23f4..b41ba25 100644
--- a/test/tint/expressions/type_conv/mat4x4/var/f32-f16.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/expressions/type_conv/mat4x4/var/f32-f16.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,10 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Convert
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+static float4x4 u = float4x4(float4(1.0f, 2.0f, 3.0f, 4.0f), float4(5.0f, 6.0f, 7.0f, 8.0f), float4(9.0f, 10.0f, 11.0f, 12.0f), float4(13.0f, 14.0f, 15.0f, 16.0f));
+void f() {
+  matrix<float16_t, 4, 4> v = matrix<float16_t, 4, 4>(u);
+}
+
+[numthreads(1, 1, 1)]
+void unused_entry_point() {
+}
+
diff --git a/test/tint/expressions/type_conv/mat4x4/var/f32-f16.wgsl.expected.ir.fxc.hlsl b/test/tint/expressions/type_conv/mat4x4/var/f32-f16.wgsl.expected.ir.fxc.hlsl
index 48e23f4..1c8224c 100644
--- a/test/tint/expressions/type_conv/mat4x4/var/f32-f16.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/expressions/type_conv/mat4x4/var/f32-f16.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,15 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Convert
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+
+static float4x4 u = float4x4(float4(1.0f, 2.0f, 3.0f, 4.0f), float4(5.0f, 6.0f, 7.0f, 8.0f), float4(9.0f, 10.0f, 11.0f, 12.0f), float4(13.0f, 14.0f, 15.0f, 16.0f));
+void f() {
+  matrix<float16_t, 4, 4> v = matrix<float16_t, 4, 4>(u);
+}
+
+[numthreads(1, 1, 1)]
+void unused_entry_point() {
+}
+
+FXC validation failure:
+c:\src\dawn\Shader@0x000001CD53FBCB90(4,10-18): error X3000: syntax error: unexpected token 'float16_t'
+
diff --git a/test/tint/expressions/type_conv/scalar/function/bool-f16.wgsl.expected.ir.dxc.hlsl b/test/tint/expressions/type_conv/scalar/function/bool-f16.wgsl.expected.ir.dxc.hlsl
index c6e1d96..74b67b6 100644
--- a/test/tint/expressions/type_conv/scalar/function/bool-f16.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/expressions/type_conv/scalar/function/bool-f16.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,15 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Construct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+static bool t = false;
+bool m() {
+  t = true;
+  return bool(t);
+}
+
+void f() {
+  float16_t v = float16_t(m());
+}
+
+[numthreads(1, 1, 1)]
+void unused_entry_point() {
+}
+
diff --git a/test/tint/expressions/type_conv/scalar/function/bool-f16.wgsl.expected.ir.fxc.hlsl b/test/tint/expressions/type_conv/scalar/function/bool-f16.wgsl.expected.ir.fxc.hlsl
index c6e1d96..1e0919f 100644
--- a/test/tint/expressions/type_conv/scalar/function/bool-f16.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/expressions/type_conv/scalar/function/bool-f16.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,21 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Construct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+
+static bool t = false;
+bool m() {
+  t = true;
+  return bool(t);
+}
+
+void f() {
+  float16_t v = float16_t(m());
+}
+
+[numthreads(1, 1, 1)]
+void unused_entry_point() {
+}
+
+FXC validation failure:
+c:\src\dawn\Shader@0x00000240A94AD890(9,3-11): error X3000: unrecognized identifier 'float16_t'
+c:\src\dawn\Shader@0x00000240A94AD890(9,13): error X3000: unrecognized identifier 'v'
+
diff --git a/test/tint/expressions/type_conv/scalar/function/bool-f32.wgsl.expected.ir.dxc.hlsl b/test/tint/expressions/type_conv/scalar/function/bool-f32.wgsl.expected.ir.dxc.hlsl
index c6e1d96..bc05a2b 100644
--- a/test/tint/expressions/type_conv/scalar/function/bool-f32.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/expressions/type_conv/scalar/function/bool-f32.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,15 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Construct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+static bool t = false;
+bool m() {
+  t = true;
+  return bool(t);
+}
+
+void f() {
+  float v = float(m());
+}
+
+[numthreads(1, 1, 1)]
+void unused_entry_point() {
+}
+
diff --git a/test/tint/expressions/type_conv/scalar/function/bool-f32.wgsl.expected.ir.fxc.hlsl b/test/tint/expressions/type_conv/scalar/function/bool-f32.wgsl.expected.ir.fxc.hlsl
index c6e1d96..bc05a2b 100644
--- a/test/tint/expressions/type_conv/scalar/function/bool-f32.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/expressions/type_conv/scalar/function/bool-f32.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,15 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Construct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+static bool t = false;
+bool m() {
+  t = true;
+  return bool(t);
+}
+
+void f() {
+  float v = float(m());
+}
+
+[numthreads(1, 1, 1)]
+void unused_entry_point() {
+}
+
diff --git a/test/tint/expressions/type_conv/scalar/function/bool-i32.wgsl.expected.ir.dxc.hlsl b/test/tint/expressions/type_conv/scalar/function/bool-i32.wgsl.expected.ir.dxc.hlsl
index c6e1d96..a872c19 100644
--- a/test/tint/expressions/type_conv/scalar/function/bool-i32.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/expressions/type_conv/scalar/function/bool-i32.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,15 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Construct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+static bool t = false;
+bool m() {
+  t = true;
+  return bool(t);
+}
+
+void f() {
+  int v = int(m());
+}
+
+[numthreads(1, 1, 1)]
+void unused_entry_point() {
+}
+
diff --git a/test/tint/expressions/type_conv/scalar/function/bool-i32.wgsl.expected.ir.fxc.hlsl b/test/tint/expressions/type_conv/scalar/function/bool-i32.wgsl.expected.ir.fxc.hlsl
index c6e1d96..a872c19 100644
--- a/test/tint/expressions/type_conv/scalar/function/bool-i32.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/expressions/type_conv/scalar/function/bool-i32.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,15 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Construct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+static bool t = false;
+bool m() {
+  t = true;
+  return bool(t);
+}
+
+void f() {
+  int v = int(m());
+}
+
+[numthreads(1, 1, 1)]
+void unused_entry_point() {
+}
+
diff --git a/test/tint/expressions/type_conv/scalar/function/bool-u32.wgsl.expected.ir.dxc.hlsl b/test/tint/expressions/type_conv/scalar/function/bool-u32.wgsl.expected.ir.dxc.hlsl
index c6e1d96..79189d0 100644
--- a/test/tint/expressions/type_conv/scalar/function/bool-u32.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/expressions/type_conv/scalar/function/bool-u32.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,15 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Construct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+static bool t = false;
+bool m() {
+  t = true;
+  return bool(t);
+}
+
+void f() {
+  uint v = uint(m());
+}
+
+[numthreads(1, 1, 1)]
+void unused_entry_point() {
+}
+
diff --git a/test/tint/expressions/type_conv/scalar/function/bool-u32.wgsl.expected.ir.fxc.hlsl b/test/tint/expressions/type_conv/scalar/function/bool-u32.wgsl.expected.ir.fxc.hlsl
index c6e1d96..79189d0 100644
--- a/test/tint/expressions/type_conv/scalar/function/bool-u32.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/expressions/type_conv/scalar/function/bool-u32.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,15 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Construct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+static bool t = false;
+bool m() {
+  t = true;
+  return bool(t);
+}
+
+void f() {
+  uint v = uint(m());
+}
+
+[numthreads(1, 1, 1)]
+void unused_entry_point() {
+}
+
diff --git a/test/tint/expressions/type_conv/scalar/function/f16-bool.wgsl.expected.ir.dxc.hlsl b/test/tint/expressions/type_conv/scalar/function/f16-bool.wgsl.expected.ir.dxc.hlsl
index c6e1d96..7fae479 100644
--- a/test/tint/expressions/type_conv/scalar/function/f16-bool.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/expressions/type_conv/scalar/function/f16-bool.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,15 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Construct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+static float16_t t = float16_t(0.0h);
+float16_t m() {
+  t = float16_t(1.0h);
+  return float16_t(t);
+}
+
+void f() {
+  bool v = bool(m());
+}
+
+[numthreads(1, 1, 1)]
+void unused_entry_point() {
+}
+
diff --git a/test/tint/expressions/type_conv/scalar/function/f16-bool.wgsl.expected.ir.fxc.hlsl b/test/tint/expressions/type_conv/scalar/function/f16-bool.wgsl.expected.ir.fxc.hlsl
index c6e1d96..fe620aa 100644
--- a/test/tint/expressions/type_conv/scalar/function/f16-bool.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/expressions/type_conv/scalar/function/f16-bool.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,20 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Construct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+
+static float16_t t = float16_t(0.0h);
+float16_t m() {
+  t = float16_t(1.0h);
+  return float16_t(t);
+}
+
+void f() {
+  bool v = bool(m());
+}
+
+[numthreads(1, 1, 1)]
+void unused_entry_point() {
+}
+
+FXC validation failure:
+c:\src\dawn\Shader@0x00000235E7D2F840(2,8-16): error X3000: unrecognized identifier 'float16_t'
+
diff --git a/test/tint/expressions/type_conv/scalar/function/f16-f32.wgsl.expected.ir.dxc.hlsl b/test/tint/expressions/type_conv/scalar/function/f16-f32.wgsl.expected.ir.dxc.hlsl
index c6e1d96..3b4e5d5 100644
--- a/test/tint/expressions/type_conv/scalar/function/f16-f32.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/expressions/type_conv/scalar/function/f16-f32.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,15 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Construct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+static float16_t t = float16_t(0.0h);
+float16_t m() {
+  t = float16_t(1.0h);
+  return float16_t(t);
+}
+
+void f() {
+  float v = float(m());
+}
+
+[numthreads(1, 1, 1)]
+void unused_entry_point() {
+}
+
diff --git a/test/tint/expressions/type_conv/scalar/function/f16-f32.wgsl.expected.ir.fxc.hlsl b/test/tint/expressions/type_conv/scalar/function/f16-f32.wgsl.expected.ir.fxc.hlsl
index c6e1d96..85182ae 100644
--- a/test/tint/expressions/type_conv/scalar/function/f16-f32.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/expressions/type_conv/scalar/function/f16-f32.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,20 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Construct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+
+static float16_t t = float16_t(0.0h);
+float16_t m() {
+  t = float16_t(1.0h);
+  return float16_t(t);
+}
+
+void f() {
+  float v = float(m());
+}
+
+[numthreads(1, 1, 1)]
+void unused_entry_point() {
+}
+
+FXC validation failure:
+c:\src\dawn\Shader@0x0000025E79110AB0(2,8-16): error X3000: unrecognized identifier 'float16_t'
+
diff --git a/test/tint/expressions/type_conv/scalar/function/f16-i32.wgsl.expected.ir.dxc.hlsl b/test/tint/expressions/type_conv/scalar/function/f16-i32.wgsl.expected.ir.dxc.hlsl
index c6e1d96..02598c8 100644
--- a/test/tint/expressions/type_conv/scalar/function/f16-i32.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/expressions/type_conv/scalar/function/f16-i32.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,19 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Construct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+static float16_t t = float16_t(0.0h);
+float16_t m() {
+  t = float16_t(1.0h);
+  return float16_t(t);
+}
+
+int tint_f16_to_i32(float16_t value) {
+  return (((value <= float16_t(65504.0h))) ? ((((value >= float16_t(-65504.0h))) ? (int(value)) : (-2147483648))) : (2147483647));
+}
+
+void f() {
+  int v = tint_f16_to_i32(m());
+}
+
+[numthreads(1, 1, 1)]
+void unused_entry_point() {
+}
+
diff --git a/test/tint/expressions/type_conv/scalar/function/f16-i32.wgsl.expected.ir.fxc.hlsl b/test/tint/expressions/type_conv/scalar/function/f16-i32.wgsl.expected.ir.fxc.hlsl
index c6e1d96..e474cf3 100644
--- a/test/tint/expressions/type_conv/scalar/function/f16-i32.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/expressions/type_conv/scalar/function/f16-i32.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,24 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Construct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+
+static float16_t t = float16_t(0.0h);
+float16_t m() {
+  t = float16_t(1.0h);
+  return float16_t(t);
+}
+
+int tint_f16_to_i32(float16_t value) {
+  return (((value <= float16_t(65504.0h))) ? ((((value >= float16_t(-65504.0h))) ? (int(value)) : (-2147483648))) : (2147483647));
+}
+
+void f() {
+  int v = tint_f16_to_i32(m());
+}
+
+[numthreads(1, 1, 1)]
+void unused_entry_point() {
+}
+
+FXC validation failure:
+c:\src\dawn\Shader@0x000002097A4C0750(2,8-16): error X3000: unrecognized identifier 'float16_t'
+
diff --git a/test/tint/expressions/type_conv/scalar/function/f16-u32.wgsl.expected.ir.dxc.hlsl b/test/tint/expressions/type_conv/scalar/function/f16-u32.wgsl.expected.ir.dxc.hlsl
index c6e1d96..d9c9835 100644
--- a/test/tint/expressions/type_conv/scalar/function/f16-u32.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/expressions/type_conv/scalar/function/f16-u32.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,19 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Construct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+static float16_t t = float16_t(0.0h);
+float16_t m() {
+  t = float16_t(1.0h);
+  return float16_t(t);
+}
+
+uint tint_f16_to_u32(float16_t value) {
+  return (((value <= float16_t(65504.0h))) ? ((((value >= float16_t(0.0h))) ? (uint(value)) : (0u))) : (4294967295u));
+}
+
+void f() {
+  uint v = tint_f16_to_u32(m());
+}
+
+[numthreads(1, 1, 1)]
+void unused_entry_point() {
+}
+
diff --git a/test/tint/expressions/type_conv/scalar/function/f16-u32.wgsl.expected.ir.fxc.hlsl b/test/tint/expressions/type_conv/scalar/function/f16-u32.wgsl.expected.ir.fxc.hlsl
index c6e1d96..41b3765 100644
--- a/test/tint/expressions/type_conv/scalar/function/f16-u32.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/expressions/type_conv/scalar/function/f16-u32.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,24 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Construct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+
+static float16_t t = float16_t(0.0h);
+float16_t m() {
+  t = float16_t(1.0h);
+  return float16_t(t);
+}
+
+uint tint_f16_to_u32(float16_t value) {
+  return (((value <= float16_t(65504.0h))) ? ((((value >= float16_t(0.0h))) ? (uint(value)) : (0u))) : (4294967295u));
+}
+
+void f() {
+  uint v = tint_f16_to_u32(m());
+}
+
+[numthreads(1, 1, 1)]
+void unused_entry_point() {
+}
+
+FXC validation failure:
+c:\src\dawn\Shader@0x00000153D99A1390(2,8-16): error X3000: unrecognized identifier 'float16_t'
+
diff --git a/test/tint/expressions/type_conv/scalar/function/f32-bool.wgsl.expected.ir.dxc.hlsl b/test/tint/expressions/type_conv/scalar/function/f32-bool.wgsl.expected.ir.dxc.hlsl
index c6e1d96..30fa8da 100644
--- a/test/tint/expressions/type_conv/scalar/function/f32-bool.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/expressions/type_conv/scalar/function/f32-bool.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,15 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Construct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+static float t = 0.0f;
+float m() {
+  t = 1.0f;
+  return float(t);
+}
+
+void f() {
+  bool v = bool(m());
+}
+
+[numthreads(1, 1, 1)]
+void unused_entry_point() {
+}
+
diff --git a/test/tint/expressions/type_conv/scalar/function/f32-bool.wgsl.expected.ir.fxc.hlsl b/test/tint/expressions/type_conv/scalar/function/f32-bool.wgsl.expected.ir.fxc.hlsl
index c6e1d96..30fa8da 100644
--- a/test/tint/expressions/type_conv/scalar/function/f32-bool.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/expressions/type_conv/scalar/function/f32-bool.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,15 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Construct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+static float t = 0.0f;
+float m() {
+  t = 1.0f;
+  return float(t);
+}
+
+void f() {
+  bool v = bool(m());
+}
+
+[numthreads(1, 1, 1)]
+void unused_entry_point() {
+}
+
diff --git a/test/tint/expressions/type_conv/scalar/function/f32-f16.wgsl.expected.ir.dxc.hlsl b/test/tint/expressions/type_conv/scalar/function/f32-f16.wgsl.expected.ir.dxc.hlsl
index c6e1d96..88f32cc 100644
--- a/test/tint/expressions/type_conv/scalar/function/f32-f16.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/expressions/type_conv/scalar/function/f32-f16.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,15 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Construct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+static float t = 0.0f;
+float m() {
+  t = 1.0f;
+  return float(t);
+}
+
+void f() {
+  float16_t v = float16_t(m());
+}
+
+[numthreads(1, 1, 1)]
+void unused_entry_point() {
+}
+
diff --git a/test/tint/expressions/type_conv/scalar/function/f32-f16.wgsl.expected.ir.fxc.hlsl b/test/tint/expressions/type_conv/scalar/function/f32-f16.wgsl.expected.ir.fxc.hlsl
index c6e1d96..e1e27b4 100644
--- a/test/tint/expressions/type_conv/scalar/function/f32-f16.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/expressions/type_conv/scalar/function/f32-f16.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,21 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Construct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+
+static float t = 0.0f;
+float m() {
+  t = 1.0f;
+  return float(t);
+}
+
+void f() {
+  float16_t v = float16_t(m());
+}
+
+[numthreads(1, 1, 1)]
+void unused_entry_point() {
+}
+
+FXC validation failure:
+c:\src\dawn\Shader@0x0000013DFA152290(9,3-11): error X3000: unrecognized identifier 'float16_t'
+c:\src\dawn\Shader@0x0000013DFA152290(9,13): error X3000: unrecognized identifier 'v'
+
diff --git a/test/tint/expressions/type_conv/scalar/function/f32-i32.wgsl.expected.ir.dxc.hlsl b/test/tint/expressions/type_conv/scalar/function/f32-i32.wgsl.expected.ir.dxc.hlsl
index c6e1d96..999743f 100644
--- a/test/tint/expressions/type_conv/scalar/function/f32-i32.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/expressions/type_conv/scalar/function/f32-i32.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,19 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Construct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+static float t = 0.0f;
+float m() {
+  t = 1.0f;
+  return float(t);
+}
+
+int tint_f32_to_i32(float value) {
+  return (((value <= 2147483520.0f)) ? ((((value >= -2147483648.0f)) ? (int(value)) : (-2147483648))) : (2147483647));
+}
+
+void f() {
+  int v = tint_f32_to_i32(m());
+}
+
+[numthreads(1, 1, 1)]
+void unused_entry_point() {
+}
+
diff --git a/test/tint/expressions/type_conv/scalar/function/f32-i32.wgsl.expected.ir.fxc.hlsl b/test/tint/expressions/type_conv/scalar/function/f32-i32.wgsl.expected.ir.fxc.hlsl
index c6e1d96..999743f 100644
--- a/test/tint/expressions/type_conv/scalar/function/f32-i32.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/expressions/type_conv/scalar/function/f32-i32.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,19 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Construct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+static float t = 0.0f;
+float m() {
+  t = 1.0f;
+  return float(t);
+}
+
+int tint_f32_to_i32(float value) {
+  return (((value <= 2147483520.0f)) ? ((((value >= -2147483648.0f)) ? (int(value)) : (-2147483648))) : (2147483647));
+}
+
+void f() {
+  int v = tint_f32_to_i32(m());
+}
+
+[numthreads(1, 1, 1)]
+void unused_entry_point() {
+}
+
diff --git a/test/tint/expressions/type_conv/scalar/function/f32-u32.wgsl.expected.ir.dxc.hlsl b/test/tint/expressions/type_conv/scalar/function/f32-u32.wgsl.expected.ir.dxc.hlsl
index c6e1d96..8febde8 100644
--- a/test/tint/expressions/type_conv/scalar/function/f32-u32.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/expressions/type_conv/scalar/function/f32-u32.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,19 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Construct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+static float t = 0.0f;
+float m() {
+  t = 1.0f;
+  return float(t);
+}
+
+uint tint_f32_to_u32(float value) {
+  return (((value <= 4294967040.0f)) ? ((((value >= 0.0f)) ? (uint(value)) : (0u))) : (4294967295u));
+}
+
+void f() {
+  uint v = tint_f32_to_u32(m());
+}
+
+[numthreads(1, 1, 1)]
+void unused_entry_point() {
+}
+
diff --git a/test/tint/expressions/type_conv/scalar/function/f32-u32.wgsl.expected.ir.fxc.hlsl b/test/tint/expressions/type_conv/scalar/function/f32-u32.wgsl.expected.ir.fxc.hlsl
index c6e1d96..8febde8 100644
--- a/test/tint/expressions/type_conv/scalar/function/f32-u32.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/expressions/type_conv/scalar/function/f32-u32.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,19 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Construct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+static float t = 0.0f;
+float m() {
+  t = 1.0f;
+  return float(t);
+}
+
+uint tint_f32_to_u32(float value) {
+  return (((value <= 4294967040.0f)) ? ((((value >= 0.0f)) ? (uint(value)) : (0u))) : (4294967295u));
+}
+
+void f() {
+  uint v = tint_f32_to_u32(m());
+}
+
+[numthreads(1, 1, 1)]
+void unused_entry_point() {
+}
+
diff --git a/test/tint/expressions/type_conv/scalar/function/i32-bool.wgsl.expected.ir.dxc.hlsl b/test/tint/expressions/type_conv/scalar/function/i32-bool.wgsl.expected.ir.dxc.hlsl
index c6e1d96..95dc768 100644
--- a/test/tint/expressions/type_conv/scalar/function/i32-bool.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/expressions/type_conv/scalar/function/i32-bool.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,15 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Construct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+static int t = 0;
+int m() {
+  t = 1;
+  return int(t);
+}
+
+void f() {
+  bool v = bool(m());
+}
+
+[numthreads(1, 1, 1)]
+void unused_entry_point() {
+}
+
diff --git a/test/tint/expressions/type_conv/scalar/function/i32-bool.wgsl.expected.ir.fxc.hlsl b/test/tint/expressions/type_conv/scalar/function/i32-bool.wgsl.expected.ir.fxc.hlsl
index c6e1d96..95dc768 100644
--- a/test/tint/expressions/type_conv/scalar/function/i32-bool.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/expressions/type_conv/scalar/function/i32-bool.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,15 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Construct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+static int t = 0;
+int m() {
+  t = 1;
+  return int(t);
+}
+
+void f() {
+  bool v = bool(m());
+}
+
+[numthreads(1, 1, 1)]
+void unused_entry_point() {
+}
+
diff --git a/test/tint/expressions/type_conv/scalar/function/i32-f16.wgsl.expected.ir.dxc.hlsl b/test/tint/expressions/type_conv/scalar/function/i32-f16.wgsl.expected.ir.dxc.hlsl
index c6e1d96..018de66 100644
--- a/test/tint/expressions/type_conv/scalar/function/i32-f16.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/expressions/type_conv/scalar/function/i32-f16.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,15 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Construct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+static int t = 0;
+int m() {
+  t = 1;
+  return int(t);
+}
+
+void f() {
+  float16_t v = float16_t(m());
+}
+
+[numthreads(1, 1, 1)]
+void unused_entry_point() {
+}
+
diff --git a/test/tint/expressions/type_conv/scalar/function/i32-f16.wgsl.expected.ir.fxc.hlsl b/test/tint/expressions/type_conv/scalar/function/i32-f16.wgsl.expected.ir.fxc.hlsl
index c6e1d96..749865f 100644
--- a/test/tint/expressions/type_conv/scalar/function/i32-f16.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/expressions/type_conv/scalar/function/i32-f16.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,21 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Construct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+
+static int t = 0;
+int m() {
+  t = 1;
+  return int(t);
+}
+
+void f() {
+  float16_t v = float16_t(m());
+}
+
+[numthreads(1, 1, 1)]
+void unused_entry_point() {
+}
+
+FXC validation failure:
+c:\src\dawn\Shader@0x000001BA2A2A34C0(9,3-11): error X3000: unrecognized identifier 'float16_t'
+c:\src\dawn\Shader@0x000001BA2A2A34C0(9,13): error X3000: unrecognized identifier 'v'
+
diff --git a/test/tint/expressions/type_conv/scalar/function/i32-f32.wgsl.expected.ir.dxc.hlsl b/test/tint/expressions/type_conv/scalar/function/i32-f32.wgsl.expected.ir.dxc.hlsl
index c6e1d96..6eaf345 100644
--- a/test/tint/expressions/type_conv/scalar/function/i32-f32.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/expressions/type_conv/scalar/function/i32-f32.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,15 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Construct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+static int t = 0;
+int m() {
+  t = 1;
+  return int(t);
+}
+
+void f() {
+  float v = float(m());
+}
+
+[numthreads(1, 1, 1)]
+void unused_entry_point() {
+}
+
diff --git a/test/tint/expressions/type_conv/scalar/function/i32-f32.wgsl.expected.ir.fxc.hlsl b/test/tint/expressions/type_conv/scalar/function/i32-f32.wgsl.expected.ir.fxc.hlsl
index c6e1d96..6eaf345 100644
--- a/test/tint/expressions/type_conv/scalar/function/i32-f32.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/expressions/type_conv/scalar/function/i32-f32.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,15 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Construct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+static int t = 0;
+int m() {
+  t = 1;
+  return int(t);
+}
+
+void f() {
+  float v = float(m());
+}
+
+[numthreads(1, 1, 1)]
+void unused_entry_point() {
+}
+
diff --git a/test/tint/expressions/type_conv/scalar/function/i32-u32.wgsl.expected.ir.dxc.hlsl b/test/tint/expressions/type_conv/scalar/function/i32-u32.wgsl.expected.ir.dxc.hlsl
index c6e1d96..531c51d 100644
--- a/test/tint/expressions/type_conv/scalar/function/i32-u32.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/expressions/type_conv/scalar/function/i32-u32.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,15 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Construct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+static int t = 0;
+int m() {
+  t = 1;
+  return int(t);
+}
+
+void f() {
+  uint v = uint(m());
+}
+
+[numthreads(1, 1, 1)]
+void unused_entry_point() {
+}
+
diff --git a/test/tint/expressions/type_conv/scalar/function/i32-u32.wgsl.expected.ir.fxc.hlsl b/test/tint/expressions/type_conv/scalar/function/i32-u32.wgsl.expected.ir.fxc.hlsl
index c6e1d96..531c51d 100644
--- a/test/tint/expressions/type_conv/scalar/function/i32-u32.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/expressions/type_conv/scalar/function/i32-u32.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,15 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Construct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+static int t = 0;
+int m() {
+  t = 1;
+  return int(t);
+}
+
+void f() {
+  uint v = uint(m());
+}
+
+[numthreads(1, 1, 1)]
+void unused_entry_point() {
+}
+
diff --git a/test/tint/expressions/type_conv/scalar/function/u32-bool.wgsl.expected.ir.dxc.hlsl b/test/tint/expressions/type_conv/scalar/function/u32-bool.wgsl.expected.ir.dxc.hlsl
index c6e1d96..64154de 100644
--- a/test/tint/expressions/type_conv/scalar/function/u32-bool.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/expressions/type_conv/scalar/function/u32-bool.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,15 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Construct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+static uint t = 0u;
+uint m() {
+  t = 1u;
+  return uint(t);
+}
+
+void f() {
+  bool v = bool(m());
+}
+
+[numthreads(1, 1, 1)]
+void unused_entry_point() {
+}
+
diff --git a/test/tint/expressions/type_conv/scalar/function/u32-bool.wgsl.expected.ir.fxc.hlsl b/test/tint/expressions/type_conv/scalar/function/u32-bool.wgsl.expected.ir.fxc.hlsl
index c6e1d96..64154de 100644
--- a/test/tint/expressions/type_conv/scalar/function/u32-bool.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/expressions/type_conv/scalar/function/u32-bool.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,15 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Construct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+static uint t = 0u;
+uint m() {
+  t = 1u;
+  return uint(t);
+}
+
+void f() {
+  bool v = bool(m());
+}
+
+[numthreads(1, 1, 1)]
+void unused_entry_point() {
+}
+
diff --git a/test/tint/expressions/type_conv/scalar/function/u32-f16.wgsl.expected.ir.dxc.hlsl b/test/tint/expressions/type_conv/scalar/function/u32-f16.wgsl.expected.ir.dxc.hlsl
index c6e1d96..c30c2d2 100644
--- a/test/tint/expressions/type_conv/scalar/function/u32-f16.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/expressions/type_conv/scalar/function/u32-f16.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,15 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Construct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+static uint t = 0u;
+uint m() {
+  t = 1u;
+  return uint(t);
+}
+
+void f() {
+  float16_t v = float16_t(m());
+}
+
+[numthreads(1, 1, 1)]
+void unused_entry_point() {
+}
+
diff --git a/test/tint/expressions/type_conv/scalar/function/u32-f16.wgsl.expected.ir.fxc.hlsl b/test/tint/expressions/type_conv/scalar/function/u32-f16.wgsl.expected.ir.fxc.hlsl
index c6e1d96..dad9c24 100644
--- a/test/tint/expressions/type_conv/scalar/function/u32-f16.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/expressions/type_conv/scalar/function/u32-f16.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,21 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Construct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+
+static uint t = 0u;
+uint m() {
+  t = 1u;
+  return uint(t);
+}
+
+void f() {
+  float16_t v = float16_t(m());
+}
+
+[numthreads(1, 1, 1)]
+void unused_entry_point() {
+}
+
+FXC validation failure:
+c:\src\dawn\Shader@0x000002995A904370(9,3-11): error X3000: unrecognized identifier 'float16_t'
+c:\src\dawn\Shader@0x000002995A904370(9,13): error X3000: unrecognized identifier 'v'
+
diff --git a/test/tint/expressions/type_conv/scalar/function/u32-f32.wgsl.expected.ir.dxc.hlsl b/test/tint/expressions/type_conv/scalar/function/u32-f32.wgsl.expected.ir.dxc.hlsl
index c6e1d96..9abfb65 100644
--- a/test/tint/expressions/type_conv/scalar/function/u32-f32.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/expressions/type_conv/scalar/function/u32-f32.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,15 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Construct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+static uint t = 0u;
+uint m() {
+  t = 1u;
+  return uint(t);
+}
+
+void f() {
+  float v = float(m());
+}
+
+[numthreads(1, 1, 1)]
+void unused_entry_point() {
+}
+
diff --git a/test/tint/expressions/type_conv/scalar/function/u32-f32.wgsl.expected.ir.fxc.hlsl b/test/tint/expressions/type_conv/scalar/function/u32-f32.wgsl.expected.ir.fxc.hlsl
index c6e1d96..9abfb65 100644
--- a/test/tint/expressions/type_conv/scalar/function/u32-f32.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/expressions/type_conv/scalar/function/u32-f32.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,15 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Construct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+static uint t = 0u;
+uint m() {
+  t = 1u;
+  return uint(t);
+}
+
+void f() {
+  float v = float(m());
+}
+
+[numthreads(1, 1, 1)]
+void unused_entry_point() {
+}
+
diff --git a/test/tint/expressions/type_conv/scalar/function/u32-i32.wgsl.expected.ir.dxc.hlsl b/test/tint/expressions/type_conv/scalar/function/u32-i32.wgsl.expected.ir.dxc.hlsl
index c6e1d96..a0871e2 100644
--- a/test/tint/expressions/type_conv/scalar/function/u32-i32.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/expressions/type_conv/scalar/function/u32-i32.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,15 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Construct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+static uint t = 0u;
+uint m() {
+  t = 1u;
+  return uint(t);
+}
+
+void f() {
+  int v = int(m());
+}
+
+[numthreads(1, 1, 1)]
+void unused_entry_point() {
+}
+
diff --git a/test/tint/expressions/type_conv/scalar/function/u32-i32.wgsl.expected.ir.fxc.hlsl b/test/tint/expressions/type_conv/scalar/function/u32-i32.wgsl.expected.ir.fxc.hlsl
index c6e1d96..a0871e2 100644
--- a/test/tint/expressions/type_conv/scalar/function/u32-i32.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/expressions/type_conv/scalar/function/u32-i32.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,15 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Construct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+static uint t = 0u;
+uint m() {
+  t = 1u;
+  return uint(t);
+}
+
+void f() {
+  int v = int(m());
+}
+
+[numthreads(1, 1, 1)]
+void unused_entry_point() {
+}
+
diff --git a/test/tint/expressions/type_conv/scalar/literal/bool-f16.wgsl.expected.ir.dxc.hlsl b/test/tint/expressions/type_conv/scalar/literal/bool-f16.wgsl.expected.ir.dxc.hlsl
index 9acd2d7..9e169bd 100644
--- a/test/tint/expressions/type_conv/scalar/literal/bool-f16.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/expressions/type_conv/scalar/literal/bool-f16.wgsl.expected.ir.dxc.hlsl
@@ -1,3 +1,5 @@
+
+static float16_t u = float16_t(1.0h);
 [numthreads(1, 1, 1)]
 void unused_entry_point() {
 }
diff --git a/test/tint/expressions/type_conv/scalar/literal/bool-f16.wgsl.expected.ir.fxc.hlsl b/test/tint/expressions/type_conv/scalar/literal/bool-f16.wgsl.expected.ir.fxc.hlsl
index 9acd2d7..70616cf 100644
--- a/test/tint/expressions/type_conv/scalar/literal/bool-f16.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/expressions/type_conv/scalar/literal/bool-f16.wgsl.expected.ir.fxc.hlsl
@@ -1,4 +1,11 @@
+SKIP: FAILED
+
+
+static float16_t u = float16_t(1.0h);
 [numthreads(1, 1, 1)]
 void unused_entry_point() {
 }
 
+FXC validation failure:
+c:\src\dawn\Shader@0x000001ABB0533B50(2,8-16): error X3000: unrecognized identifier 'float16_t'
+
diff --git a/test/tint/expressions/type_conv/scalar/literal/bool-f32.wgsl.expected.ir.dxc.hlsl b/test/tint/expressions/type_conv/scalar/literal/bool-f32.wgsl.expected.ir.dxc.hlsl
index 9acd2d7..c2e4476 100644
--- a/test/tint/expressions/type_conv/scalar/literal/bool-f32.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/expressions/type_conv/scalar/literal/bool-f32.wgsl.expected.ir.dxc.hlsl
@@ -1,3 +1,5 @@
+
+static float u = 1.0f;
 [numthreads(1, 1, 1)]
 void unused_entry_point() {
 }
diff --git a/test/tint/expressions/type_conv/scalar/literal/bool-f32.wgsl.expected.ir.fxc.hlsl b/test/tint/expressions/type_conv/scalar/literal/bool-f32.wgsl.expected.ir.fxc.hlsl
index 9acd2d7..c2e4476 100644
--- a/test/tint/expressions/type_conv/scalar/literal/bool-f32.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/expressions/type_conv/scalar/literal/bool-f32.wgsl.expected.ir.fxc.hlsl
@@ -1,3 +1,5 @@
+
+static float u = 1.0f;
 [numthreads(1, 1, 1)]
 void unused_entry_point() {
 }
diff --git a/test/tint/expressions/type_conv/scalar/literal/bool-i32.wgsl.expected.ir.dxc.hlsl b/test/tint/expressions/type_conv/scalar/literal/bool-i32.wgsl.expected.ir.dxc.hlsl
index 9acd2d7..5a1b03c 100644
--- a/test/tint/expressions/type_conv/scalar/literal/bool-i32.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/expressions/type_conv/scalar/literal/bool-i32.wgsl.expected.ir.dxc.hlsl
@@ -1,3 +1,5 @@
+
+static int u = 1;
 [numthreads(1, 1, 1)]
 void unused_entry_point() {
 }
diff --git a/test/tint/expressions/type_conv/scalar/literal/bool-i32.wgsl.expected.ir.fxc.hlsl b/test/tint/expressions/type_conv/scalar/literal/bool-i32.wgsl.expected.ir.fxc.hlsl
index 9acd2d7..5a1b03c 100644
--- a/test/tint/expressions/type_conv/scalar/literal/bool-i32.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/expressions/type_conv/scalar/literal/bool-i32.wgsl.expected.ir.fxc.hlsl
@@ -1,3 +1,5 @@
+
+static int u = 1;
 [numthreads(1, 1, 1)]
 void unused_entry_point() {
 }
diff --git a/test/tint/expressions/type_conv/scalar/literal/bool-u32.wgsl.expected.ir.dxc.hlsl b/test/tint/expressions/type_conv/scalar/literal/bool-u32.wgsl.expected.ir.dxc.hlsl
index 9acd2d7..2477ff5 100644
--- a/test/tint/expressions/type_conv/scalar/literal/bool-u32.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/expressions/type_conv/scalar/literal/bool-u32.wgsl.expected.ir.dxc.hlsl
@@ -1,3 +1,5 @@
+
+static uint u = 1u;
 [numthreads(1, 1, 1)]
 void unused_entry_point() {
 }
diff --git a/test/tint/expressions/type_conv/scalar/literal/bool-u32.wgsl.expected.ir.fxc.hlsl b/test/tint/expressions/type_conv/scalar/literal/bool-u32.wgsl.expected.ir.fxc.hlsl
index 9acd2d7..2477ff5 100644
--- a/test/tint/expressions/type_conv/scalar/literal/bool-u32.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/expressions/type_conv/scalar/literal/bool-u32.wgsl.expected.ir.fxc.hlsl
@@ -1,3 +1,5 @@
+
+static uint u = 1u;
 [numthreads(1, 1, 1)]
 void unused_entry_point() {
 }
diff --git a/test/tint/expressions/type_conv/scalar/literal/f16-bool.wgsl.expected.ir.dxc.hlsl b/test/tint/expressions/type_conv/scalar/literal/f16-bool.wgsl.expected.ir.dxc.hlsl
index 9acd2d7..dee0aec 100644
--- a/test/tint/expressions/type_conv/scalar/literal/f16-bool.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/expressions/type_conv/scalar/literal/f16-bool.wgsl.expected.ir.dxc.hlsl
@@ -1,3 +1,5 @@
+
+static bool u = true;
 [numthreads(1, 1, 1)]
 void unused_entry_point() {
 }
diff --git a/test/tint/expressions/type_conv/scalar/literal/f16-bool.wgsl.expected.ir.fxc.hlsl b/test/tint/expressions/type_conv/scalar/literal/f16-bool.wgsl.expected.ir.fxc.hlsl
index 9acd2d7..dee0aec 100644
--- a/test/tint/expressions/type_conv/scalar/literal/f16-bool.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/expressions/type_conv/scalar/literal/f16-bool.wgsl.expected.ir.fxc.hlsl
@@ -1,3 +1,5 @@
+
+static bool u = true;
 [numthreads(1, 1, 1)]
 void unused_entry_point() {
 }
diff --git a/test/tint/expressions/type_conv/scalar/literal/f16-f32.wgsl.expected.ir.dxc.hlsl b/test/tint/expressions/type_conv/scalar/literal/f16-f32.wgsl.expected.ir.dxc.hlsl
index 9acd2d7..c2e4476 100644
--- a/test/tint/expressions/type_conv/scalar/literal/f16-f32.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/expressions/type_conv/scalar/literal/f16-f32.wgsl.expected.ir.dxc.hlsl
@@ -1,3 +1,5 @@
+
+static float u = 1.0f;
 [numthreads(1, 1, 1)]
 void unused_entry_point() {
 }
diff --git a/test/tint/expressions/type_conv/scalar/literal/f16-f32.wgsl.expected.ir.fxc.hlsl b/test/tint/expressions/type_conv/scalar/literal/f16-f32.wgsl.expected.ir.fxc.hlsl
index 9acd2d7..c2e4476 100644
--- a/test/tint/expressions/type_conv/scalar/literal/f16-f32.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/expressions/type_conv/scalar/literal/f16-f32.wgsl.expected.ir.fxc.hlsl
@@ -1,3 +1,5 @@
+
+static float u = 1.0f;
 [numthreads(1, 1, 1)]
 void unused_entry_point() {
 }
diff --git a/test/tint/expressions/type_conv/scalar/literal/f16-i32.wgsl.expected.ir.dxc.hlsl b/test/tint/expressions/type_conv/scalar/literal/f16-i32.wgsl.expected.ir.dxc.hlsl
index 9acd2d7..5a1b03c 100644
--- a/test/tint/expressions/type_conv/scalar/literal/f16-i32.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/expressions/type_conv/scalar/literal/f16-i32.wgsl.expected.ir.dxc.hlsl
@@ -1,3 +1,5 @@
+
+static int u = 1;
 [numthreads(1, 1, 1)]
 void unused_entry_point() {
 }
diff --git a/test/tint/expressions/type_conv/scalar/literal/f16-i32.wgsl.expected.ir.fxc.hlsl b/test/tint/expressions/type_conv/scalar/literal/f16-i32.wgsl.expected.ir.fxc.hlsl
index 9acd2d7..5a1b03c 100644
--- a/test/tint/expressions/type_conv/scalar/literal/f16-i32.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/expressions/type_conv/scalar/literal/f16-i32.wgsl.expected.ir.fxc.hlsl
@@ -1,3 +1,5 @@
+
+static int u = 1;
 [numthreads(1, 1, 1)]
 void unused_entry_point() {
 }
diff --git a/test/tint/expressions/type_conv/scalar/literal/f16-u32.wgsl.expected.ir.dxc.hlsl b/test/tint/expressions/type_conv/scalar/literal/f16-u32.wgsl.expected.ir.dxc.hlsl
index 9acd2d7..2477ff5 100644
--- a/test/tint/expressions/type_conv/scalar/literal/f16-u32.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/expressions/type_conv/scalar/literal/f16-u32.wgsl.expected.ir.dxc.hlsl
@@ -1,3 +1,5 @@
+
+static uint u = 1u;
 [numthreads(1, 1, 1)]
 void unused_entry_point() {
 }
diff --git a/test/tint/expressions/type_conv/scalar/literal/f16-u32.wgsl.expected.ir.fxc.hlsl b/test/tint/expressions/type_conv/scalar/literal/f16-u32.wgsl.expected.ir.fxc.hlsl
index 9acd2d7..2477ff5 100644
--- a/test/tint/expressions/type_conv/scalar/literal/f16-u32.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/expressions/type_conv/scalar/literal/f16-u32.wgsl.expected.ir.fxc.hlsl
@@ -1,3 +1,5 @@
+
+static uint u = 1u;
 [numthreads(1, 1, 1)]
 void unused_entry_point() {
 }
diff --git a/test/tint/expressions/type_conv/scalar/literal/f32-bool.wgsl.expected.ir.dxc.hlsl b/test/tint/expressions/type_conv/scalar/literal/f32-bool.wgsl.expected.ir.dxc.hlsl
index 9acd2d7..dee0aec 100644
--- a/test/tint/expressions/type_conv/scalar/literal/f32-bool.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/expressions/type_conv/scalar/literal/f32-bool.wgsl.expected.ir.dxc.hlsl
@@ -1,3 +1,5 @@
+
+static bool u = true;
 [numthreads(1, 1, 1)]
 void unused_entry_point() {
 }
diff --git a/test/tint/expressions/type_conv/scalar/literal/f32-bool.wgsl.expected.ir.fxc.hlsl b/test/tint/expressions/type_conv/scalar/literal/f32-bool.wgsl.expected.ir.fxc.hlsl
index 9acd2d7..dee0aec 100644
--- a/test/tint/expressions/type_conv/scalar/literal/f32-bool.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/expressions/type_conv/scalar/literal/f32-bool.wgsl.expected.ir.fxc.hlsl
@@ -1,3 +1,5 @@
+
+static bool u = true;
 [numthreads(1, 1, 1)]
 void unused_entry_point() {
 }
diff --git a/test/tint/expressions/type_conv/scalar/literal/f32-f16.wgsl.expected.ir.dxc.hlsl b/test/tint/expressions/type_conv/scalar/literal/f32-f16.wgsl.expected.ir.dxc.hlsl
index 9acd2d7..9e169bd 100644
--- a/test/tint/expressions/type_conv/scalar/literal/f32-f16.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/expressions/type_conv/scalar/literal/f32-f16.wgsl.expected.ir.dxc.hlsl
@@ -1,3 +1,5 @@
+
+static float16_t u = float16_t(1.0h);
 [numthreads(1, 1, 1)]
 void unused_entry_point() {
 }
diff --git a/test/tint/expressions/type_conv/scalar/literal/f32-f16.wgsl.expected.ir.fxc.hlsl b/test/tint/expressions/type_conv/scalar/literal/f32-f16.wgsl.expected.ir.fxc.hlsl
index 9acd2d7..e348d5f 100644
--- a/test/tint/expressions/type_conv/scalar/literal/f32-f16.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/expressions/type_conv/scalar/literal/f32-f16.wgsl.expected.ir.fxc.hlsl
@@ -1,4 +1,11 @@
+SKIP: FAILED
+
+
+static float16_t u = float16_t(1.0h);
 [numthreads(1, 1, 1)]
 void unused_entry_point() {
 }
 
+FXC validation failure:
+c:\src\dawn\Shader@0x000001DE5BFCEE70(2,8-16): error X3000: unrecognized identifier 'float16_t'
+
diff --git a/test/tint/expressions/type_conv/scalar/literal/f32-i32.wgsl.expected.ir.dxc.hlsl b/test/tint/expressions/type_conv/scalar/literal/f32-i32.wgsl.expected.ir.dxc.hlsl
index 9acd2d7..5a1b03c 100644
--- a/test/tint/expressions/type_conv/scalar/literal/f32-i32.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/expressions/type_conv/scalar/literal/f32-i32.wgsl.expected.ir.dxc.hlsl
@@ -1,3 +1,5 @@
+
+static int u = 1;
 [numthreads(1, 1, 1)]
 void unused_entry_point() {
 }
diff --git a/test/tint/expressions/type_conv/scalar/literal/f32-i32.wgsl.expected.ir.fxc.hlsl b/test/tint/expressions/type_conv/scalar/literal/f32-i32.wgsl.expected.ir.fxc.hlsl
index 9acd2d7..5a1b03c 100644
--- a/test/tint/expressions/type_conv/scalar/literal/f32-i32.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/expressions/type_conv/scalar/literal/f32-i32.wgsl.expected.ir.fxc.hlsl
@@ -1,3 +1,5 @@
+
+static int u = 1;
 [numthreads(1, 1, 1)]
 void unused_entry_point() {
 }
diff --git a/test/tint/expressions/type_conv/scalar/literal/f32-u32.wgsl.expected.ir.dxc.hlsl b/test/tint/expressions/type_conv/scalar/literal/f32-u32.wgsl.expected.ir.dxc.hlsl
index 9acd2d7..2477ff5 100644
--- a/test/tint/expressions/type_conv/scalar/literal/f32-u32.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/expressions/type_conv/scalar/literal/f32-u32.wgsl.expected.ir.dxc.hlsl
@@ -1,3 +1,5 @@
+
+static uint u = 1u;
 [numthreads(1, 1, 1)]
 void unused_entry_point() {
 }
diff --git a/test/tint/expressions/type_conv/scalar/literal/f32-u32.wgsl.expected.ir.fxc.hlsl b/test/tint/expressions/type_conv/scalar/literal/f32-u32.wgsl.expected.ir.fxc.hlsl
index 9acd2d7..2477ff5 100644
--- a/test/tint/expressions/type_conv/scalar/literal/f32-u32.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/expressions/type_conv/scalar/literal/f32-u32.wgsl.expected.ir.fxc.hlsl
@@ -1,3 +1,5 @@
+
+static uint u = 1u;
 [numthreads(1, 1, 1)]
 void unused_entry_point() {
 }
diff --git a/test/tint/expressions/type_conv/scalar/literal/i32-bool.wgsl.expected.ir.dxc.hlsl b/test/tint/expressions/type_conv/scalar/literal/i32-bool.wgsl.expected.ir.dxc.hlsl
index 9acd2d7..dee0aec 100644
--- a/test/tint/expressions/type_conv/scalar/literal/i32-bool.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/expressions/type_conv/scalar/literal/i32-bool.wgsl.expected.ir.dxc.hlsl
@@ -1,3 +1,5 @@
+
+static bool u = true;
 [numthreads(1, 1, 1)]
 void unused_entry_point() {
 }
diff --git a/test/tint/expressions/type_conv/scalar/literal/i32-bool.wgsl.expected.ir.fxc.hlsl b/test/tint/expressions/type_conv/scalar/literal/i32-bool.wgsl.expected.ir.fxc.hlsl
index 9acd2d7..dee0aec 100644
--- a/test/tint/expressions/type_conv/scalar/literal/i32-bool.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/expressions/type_conv/scalar/literal/i32-bool.wgsl.expected.ir.fxc.hlsl
@@ -1,3 +1,5 @@
+
+static bool u = true;
 [numthreads(1, 1, 1)]
 void unused_entry_point() {
 }
diff --git a/test/tint/expressions/type_conv/scalar/literal/i32-f16.wgsl.expected.ir.dxc.hlsl b/test/tint/expressions/type_conv/scalar/literal/i32-f16.wgsl.expected.ir.dxc.hlsl
index 9acd2d7..9e169bd 100644
--- a/test/tint/expressions/type_conv/scalar/literal/i32-f16.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/expressions/type_conv/scalar/literal/i32-f16.wgsl.expected.ir.dxc.hlsl
@@ -1,3 +1,5 @@
+
+static float16_t u = float16_t(1.0h);
 [numthreads(1, 1, 1)]
 void unused_entry_point() {
 }
diff --git a/test/tint/expressions/type_conv/scalar/literal/i32-f16.wgsl.expected.ir.fxc.hlsl b/test/tint/expressions/type_conv/scalar/literal/i32-f16.wgsl.expected.ir.fxc.hlsl
index 9acd2d7..1747d4d 100644
--- a/test/tint/expressions/type_conv/scalar/literal/i32-f16.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/expressions/type_conv/scalar/literal/i32-f16.wgsl.expected.ir.fxc.hlsl
@@ -1,4 +1,11 @@
+SKIP: FAILED
+
+
+static float16_t u = float16_t(1.0h);
 [numthreads(1, 1, 1)]
 void unused_entry_point() {
 }
 
+FXC validation failure:
+c:\src\dawn\Shader@0x000002B2C9880400(2,8-16): error X3000: unrecognized identifier 'float16_t'
+
diff --git a/test/tint/expressions/type_conv/scalar/literal/i32-f32.wgsl.expected.ir.dxc.hlsl b/test/tint/expressions/type_conv/scalar/literal/i32-f32.wgsl.expected.ir.dxc.hlsl
index 9acd2d7..c2e4476 100644
--- a/test/tint/expressions/type_conv/scalar/literal/i32-f32.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/expressions/type_conv/scalar/literal/i32-f32.wgsl.expected.ir.dxc.hlsl
@@ -1,3 +1,5 @@
+
+static float u = 1.0f;
 [numthreads(1, 1, 1)]
 void unused_entry_point() {
 }
diff --git a/test/tint/expressions/type_conv/scalar/literal/i32-f32.wgsl.expected.ir.fxc.hlsl b/test/tint/expressions/type_conv/scalar/literal/i32-f32.wgsl.expected.ir.fxc.hlsl
index 9acd2d7..c2e4476 100644
--- a/test/tint/expressions/type_conv/scalar/literal/i32-f32.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/expressions/type_conv/scalar/literal/i32-f32.wgsl.expected.ir.fxc.hlsl
@@ -1,3 +1,5 @@
+
+static float u = 1.0f;
 [numthreads(1, 1, 1)]
 void unused_entry_point() {
 }
diff --git a/test/tint/expressions/type_conv/scalar/literal/i32-u32.wgsl.expected.ir.dxc.hlsl b/test/tint/expressions/type_conv/scalar/literal/i32-u32.wgsl.expected.ir.dxc.hlsl
index 9acd2d7..2477ff5 100644
--- a/test/tint/expressions/type_conv/scalar/literal/i32-u32.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/expressions/type_conv/scalar/literal/i32-u32.wgsl.expected.ir.dxc.hlsl
@@ -1,3 +1,5 @@
+
+static uint u = 1u;
 [numthreads(1, 1, 1)]
 void unused_entry_point() {
 }
diff --git a/test/tint/expressions/type_conv/scalar/literal/i32-u32.wgsl.expected.ir.fxc.hlsl b/test/tint/expressions/type_conv/scalar/literal/i32-u32.wgsl.expected.ir.fxc.hlsl
index 9acd2d7..2477ff5 100644
--- a/test/tint/expressions/type_conv/scalar/literal/i32-u32.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/expressions/type_conv/scalar/literal/i32-u32.wgsl.expected.ir.fxc.hlsl
@@ -1,3 +1,5 @@
+
+static uint u = 1u;
 [numthreads(1, 1, 1)]
 void unused_entry_point() {
 }
diff --git a/test/tint/expressions/type_conv/scalar/literal/u32-bool.wgsl.expected.ir.dxc.hlsl b/test/tint/expressions/type_conv/scalar/literal/u32-bool.wgsl.expected.ir.dxc.hlsl
index 9acd2d7..dee0aec 100644
--- a/test/tint/expressions/type_conv/scalar/literal/u32-bool.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/expressions/type_conv/scalar/literal/u32-bool.wgsl.expected.ir.dxc.hlsl
@@ -1,3 +1,5 @@
+
+static bool u = true;
 [numthreads(1, 1, 1)]
 void unused_entry_point() {
 }
diff --git a/test/tint/expressions/type_conv/scalar/literal/u32-bool.wgsl.expected.ir.fxc.hlsl b/test/tint/expressions/type_conv/scalar/literal/u32-bool.wgsl.expected.ir.fxc.hlsl
index 9acd2d7..dee0aec 100644
--- a/test/tint/expressions/type_conv/scalar/literal/u32-bool.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/expressions/type_conv/scalar/literal/u32-bool.wgsl.expected.ir.fxc.hlsl
@@ -1,3 +1,5 @@
+
+static bool u = true;
 [numthreads(1, 1, 1)]
 void unused_entry_point() {
 }
diff --git a/test/tint/expressions/type_conv/scalar/literal/u32-f16.wgsl.expected.ir.dxc.hlsl b/test/tint/expressions/type_conv/scalar/literal/u32-f16.wgsl.expected.ir.dxc.hlsl
index 9acd2d7..9e169bd 100644
--- a/test/tint/expressions/type_conv/scalar/literal/u32-f16.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/expressions/type_conv/scalar/literal/u32-f16.wgsl.expected.ir.dxc.hlsl
@@ -1,3 +1,5 @@
+
+static float16_t u = float16_t(1.0h);
 [numthreads(1, 1, 1)]
 void unused_entry_point() {
 }
diff --git a/test/tint/expressions/type_conv/scalar/literal/u32-f16.wgsl.expected.ir.fxc.hlsl b/test/tint/expressions/type_conv/scalar/literal/u32-f16.wgsl.expected.ir.fxc.hlsl
index 9acd2d7..14bb677 100644
--- a/test/tint/expressions/type_conv/scalar/literal/u32-f16.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/expressions/type_conv/scalar/literal/u32-f16.wgsl.expected.ir.fxc.hlsl
@@ -1,4 +1,11 @@
+SKIP: FAILED
+
+
+static float16_t u = float16_t(1.0h);
 [numthreads(1, 1, 1)]
 void unused_entry_point() {
 }
 
+FXC validation failure:
+c:\src\dawn\Shader@0x0000020556673890(2,8-16): error X3000: unrecognized identifier 'float16_t'
+
diff --git a/test/tint/expressions/type_conv/scalar/literal/u32-f32.wgsl.expected.ir.dxc.hlsl b/test/tint/expressions/type_conv/scalar/literal/u32-f32.wgsl.expected.ir.dxc.hlsl
index 9acd2d7..c2e4476 100644
--- a/test/tint/expressions/type_conv/scalar/literal/u32-f32.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/expressions/type_conv/scalar/literal/u32-f32.wgsl.expected.ir.dxc.hlsl
@@ -1,3 +1,5 @@
+
+static float u = 1.0f;
 [numthreads(1, 1, 1)]
 void unused_entry_point() {
 }
diff --git a/test/tint/expressions/type_conv/scalar/literal/u32-f32.wgsl.expected.ir.fxc.hlsl b/test/tint/expressions/type_conv/scalar/literal/u32-f32.wgsl.expected.ir.fxc.hlsl
index 9acd2d7..c2e4476 100644
--- a/test/tint/expressions/type_conv/scalar/literal/u32-f32.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/expressions/type_conv/scalar/literal/u32-f32.wgsl.expected.ir.fxc.hlsl
@@ -1,3 +1,5 @@
+
+static float u = 1.0f;
 [numthreads(1, 1, 1)]
 void unused_entry_point() {
 }
diff --git a/test/tint/expressions/type_conv/scalar/literal/u32-i32.wgsl.expected.ir.dxc.hlsl b/test/tint/expressions/type_conv/scalar/literal/u32-i32.wgsl.expected.ir.dxc.hlsl
index 9acd2d7..5a1b03c 100644
--- a/test/tint/expressions/type_conv/scalar/literal/u32-i32.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/expressions/type_conv/scalar/literal/u32-i32.wgsl.expected.ir.dxc.hlsl
@@ -1,3 +1,5 @@
+
+static int u = 1;
 [numthreads(1, 1, 1)]
 void unused_entry_point() {
 }
diff --git a/test/tint/expressions/type_conv/scalar/literal/u32-i32.wgsl.expected.ir.fxc.hlsl b/test/tint/expressions/type_conv/scalar/literal/u32-i32.wgsl.expected.ir.fxc.hlsl
index 9acd2d7..5a1b03c 100644
--- a/test/tint/expressions/type_conv/scalar/literal/u32-i32.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/expressions/type_conv/scalar/literal/u32-i32.wgsl.expected.ir.fxc.hlsl
@@ -1,3 +1,5 @@
+
+static int u = 1;
 [numthreads(1, 1, 1)]
 void unused_entry_point() {
 }
diff --git a/test/tint/expressions/type_conv/scalar/var/bool-f16.wgsl.expected.ir.dxc.hlsl b/test/tint/expressions/type_conv/scalar/var/bool-f16.wgsl.expected.ir.dxc.hlsl
index 48e23f4..4a17538 100644
--- a/test/tint/expressions/type_conv/scalar/var/bool-f16.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/expressions/type_conv/scalar/var/bool-f16.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,10 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Convert
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+static bool u = true;
+void f() {
+  float16_t v = float16_t(u);
+}
+
+[numthreads(1, 1, 1)]
+void unused_entry_point() {
+}
+
diff --git a/test/tint/expressions/type_conv/scalar/var/bool-f16.wgsl.expected.ir.fxc.hlsl b/test/tint/expressions/type_conv/scalar/var/bool-f16.wgsl.expected.ir.fxc.hlsl
index 48e23f4..df25337 100644
--- a/test/tint/expressions/type_conv/scalar/var/bool-f16.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/expressions/type_conv/scalar/var/bool-f16.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,16 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Convert
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+
+static bool u = true;
+void f() {
+  float16_t v = float16_t(u);
+}
+
+[numthreads(1, 1, 1)]
+void unused_entry_point() {
+}
+
+FXC validation failure:
+c:\src\dawn\Shader@0x000001C77E5352C0(4,3-11): error X3000: unrecognized identifier 'float16_t'
+c:\src\dawn\Shader@0x000001C77E5352C0(4,13): error X3000: unrecognized identifier 'v'
+
diff --git a/test/tint/expressions/type_conv/scalar/var/bool-f32.wgsl.expected.ir.dxc.hlsl b/test/tint/expressions/type_conv/scalar/var/bool-f32.wgsl.expected.ir.dxc.hlsl
index 48e23f4..743c5be 100644
--- a/test/tint/expressions/type_conv/scalar/var/bool-f32.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/expressions/type_conv/scalar/var/bool-f32.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,10 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Convert
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+static bool u = true;
+void f() {
+  float v = float(u);
+}
+
+[numthreads(1, 1, 1)]
+void unused_entry_point() {
+}
+
diff --git a/test/tint/expressions/type_conv/scalar/var/bool-f32.wgsl.expected.ir.fxc.hlsl b/test/tint/expressions/type_conv/scalar/var/bool-f32.wgsl.expected.ir.fxc.hlsl
index 48e23f4..743c5be 100644
--- a/test/tint/expressions/type_conv/scalar/var/bool-f32.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/expressions/type_conv/scalar/var/bool-f32.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,10 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Convert
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+static bool u = true;
+void f() {
+  float v = float(u);
+}
+
+[numthreads(1, 1, 1)]
+void unused_entry_point() {
+}
+
diff --git a/test/tint/expressions/type_conv/scalar/var/bool-i32.wgsl.expected.ir.dxc.hlsl b/test/tint/expressions/type_conv/scalar/var/bool-i32.wgsl.expected.ir.dxc.hlsl
index 48e23f4..e29c1f9 100644
--- a/test/tint/expressions/type_conv/scalar/var/bool-i32.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/expressions/type_conv/scalar/var/bool-i32.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,10 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Convert
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+static bool u = true;
+void f() {
+  int v = int(u);
+}
+
+[numthreads(1, 1, 1)]
+void unused_entry_point() {
+}
+
diff --git a/test/tint/expressions/type_conv/scalar/var/bool-i32.wgsl.expected.ir.fxc.hlsl b/test/tint/expressions/type_conv/scalar/var/bool-i32.wgsl.expected.ir.fxc.hlsl
index 48e23f4..e29c1f9 100644
--- a/test/tint/expressions/type_conv/scalar/var/bool-i32.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/expressions/type_conv/scalar/var/bool-i32.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,10 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Convert
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+static bool u = true;
+void f() {
+  int v = int(u);
+}
+
+[numthreads(1, 1, 1)]
+void unused_entry_point() {
+}
+
diff --git a/test/tint/expressions/type_conv/scalar/var/bool-u32.wgsl.expected.ir.dxc.hlsl b/test/tint/expressions/type_conv/scalar/var/bool-u32.wgsl.expected.ir.dxc.hlsl
index 48e23f4..76344ae 100644
--- a/test/tint/expressions/type_conv/scalar/var/bool-u32.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/expressions/type_conv/scalar/var/bool-u32.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,10 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Convert
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+static bool u = true;
+void f() {
+  uint v = uint(u);
+}
+
+[numthreads(1, 1, 1)]
+void unused_entry_point() {
+}
+
diff --git a/test/tint/expressions/type_conv/scalar/var/bool-u32.wgsl.expected.ir.fxc.hlsl b/test/tint/expressions/type_conv/scalar/var/bool-u32.wgsl.expected.ir.fxc.hlsl
index 48e23f4..76344ae 100644
--- a/test/tint/expressions/type_conv/scalar/var/bool-u32.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/expressions/type_conv/scalar/var/bool-u32.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,10 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Convert
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+static bool u = true;
+void f() {
+  uint v = uint(u);
+}
+
+[numthreads(1, 1, 1)]
+void unused_entry_point() {
+}
+
diff --git a/test/tint/expressions/type_conv/scalar/var/f16-bool.wgsl.expected.ir.dxc.hlsl b/test/tint/expressions/type_conv/scalar/var/f16-bool.wgsl.expected.ir.dxc.hlsl
index 48e23f4..2470847 100644
--- a/test/tint/expressions/type_conv/scalar/var/f16-bool.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/expressions/type_conv/scalar/var/f16-bool.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,10 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Convert
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+static float16_t u = float16_t(1.0h);
+void f() {
+  bool v = bool(u);
+}
+
+[numthreads(1, 1, 1)]
+void unused_entry_point() {
+}
+
diff --git a/test/tint/expressions/type_conv/scalar/var/f16-bool.wgsl.expected.ir.fxc.hlsl b/test/tint/expressions/type_conv/scalar/var/f16-bool.wgsl.expected.ir.fxc.hlsl
index 48e23f4..4b6125c 100644
--- a/test/tint/expressions/type_conv/scalar/var/f16-bool.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/expressions/type_conv/scalar/var/f16-bool.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,15 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Convert
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+
+static float16_t u = float16_t(1.0h);
+void f() {
+  bool v = bool(u);
+}
+
+[numthreads(1, 1, 1)]
+void unused_entry_point() {
+}
+
+FXC validation failure:
+c:\src\dawn\Shader@0x000002C464EB5980(2,8-16): error X3000: unrecognized identifier 'float16_t'
+
diff --git a/test/tint/expressions/type_conv/scalar/var/f16-f32.wgsl.expected.ir.dxc.hlsl b/test/tint/expressions/type_conv/scalar/var/f16-f32.wgsl.expected.ir.dxc.hlsl
index 48e23f4..924d463 100644
--- a/test/tint/expressions/type_conv/scalar/var/f16-f32.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/expressions/type_conv/scalar/var/f16-f32.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,10 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Convert
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+static float16_t u = float16_t(1.0h);
+void f() {
+  float v = float(u);
+}
+
+[numthreads(1, 1, 1)]
+void unused_entry_point() {
+}
+
diff --git a/test/tint/expressions/type_conv/scalar/var/f16-f32.wgsl.expected.ir.fxc.hlsl b/test/tint/expressions/type_conv/scalar/var/f16-f32.wgsl.expected.ir.fxc.hlsl
index 48e23f4..6ff071a 100644
--- a/test/tint/expressions/type_conv/scalar/var/f16-f32.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/expressions/type_conv/scalar/var/f16-f32.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,15 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Convert
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+
+static float16_t u = float16_t(1.0h);
+void f() {
+  float v = float(u);
+}
+
+[numthreads(1, 1, 1)]
+void unused_entry_point() {
+}
+
+FXC validation failure:
+c:\src\dawn\Shader@0x000001E34B60DCE0(2,8-16): error X3000: unrecognized identifier 'float16_t'
+
diff --git a/test/tint/expressions/type_conv/scalar/var/f16-i32.wgsl.expected.ir.dxc.hlsl b/test/tint/expressions/type_conv/scalar/var/f16-i32.wgsl.expected.ir.dxc.hlsl
index 48e23f4..b00a9f7 100644
--- a/test/tint/expressions/type_conv/scalar/var/f16-i32.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/expressions/type_conv/scalar/var/f16-i32.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,14 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Convert
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+static float16_t u = float16_t(1.0h);
+int tint_f16_to_i32(float16_t value) {
+  return (((value <= float16_t(65504.0h))) ? ((((value >= float16_t(-65504.0h))) ? (int(value)) : (-2147483648))) : (2147483647));
+}
+
+void f() {
+  int v = tint_f16_to_i32(u);
+}
+
+[numthreads(1, 1, 1)]
+void unused_entry_point() {
+}
+
diff --git a/test/tint/expressions/type_conv/scalar/var/f16-i32.wgsl.expected.ir.fxc.hlsl b/test/tint/expressions/type_conv/scalar/var/f16-i32.wgsl.expected.ir.fxc.hlsl
index 48e23f4..b758cdf 100644
--- a/test/tint/expressions/type_conv/scalar/var/f16-i32.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/expressions/type_conv/scalar/var/f16-i32.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,19 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Convert
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+
+static float16_t u = float16_t(1.0h);
+int tint_f16_to_i32(float16_t value) {
+  return (((value <= float16_t(65504.0h))) ? ((((value >= float16_t(-65504.0h))) ? (int(value)) : (-2147483648))) : (2147483647));
+}
+
+void f() {
+  int v = tint_f16_to_i32(u);
+}
+
+[numthreads(1, 1, 1)]
+void unused_entry_point() {
+}
+
+FXC validation failure:
+c:\src\dawn\Shader@0x000002361698F8E0(2,8-16): error X3000: unrecognized identifier 'float16_t'
+
diff --git a/test/tint/expressions/type_conv/scalar/var/f16-u32.wgsl.expected.ir.dxc.hlsl b/test/tint/expressions/type_conv/scalar/var/f16-u32.wgsl.expected.ir.dxc.hlsl
index 48e23f4..bc9bd0a 100644
--- a/test/tint/expressions/type_conv/scalar/var/f16-u32.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/expressions/type_conv/scalar/var/f16-u32.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,14 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Convert
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+static float16_t u = float16_t(1.0h);
+uint tint_f16_to_u32(float16_t value) {
+  return (((value <= float16_t(65504.0h))) ? ((((value >= float16_t(0.0h))) ? (uint(value)) : (0u))) : (4294967295u));
+}
+
+void f() {
+  uint v = tint_f16_to_u32(u);
+}
+
+[numthreads(1, 1, 1)]
+void unused_entry_point() {
+}
+
diff --git a/test/tint/expressions/type_conv/scalar/var/f16-u32.wgsl.expected.ir.fxc.hlsl b/test/tint/expressions/type_conv/scalar/var/f16-u32.wgsl.expected.ir.fxc.hlsl
index 48e23f4..db32407 100644
--- a/test/tint/expressions/type_conv/scalar/var/f16-u32.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/expressions/type_conv/scalar/var/f16-u32.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,19 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Convert
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+
+static float16_t u = float16_t(1.0h);
+uint tint_f16_to_u32(float16_t value) {
+  return (((value <= float16_t(65504.0h))) ? ((((value >= float16_t(0.0h))) ? (uint(value)) : (0u))) : (4294967295u));
+}
+
+void f() {
+  uint v = tint_f16_to_u32(u);
+}
+
+[numthreads(1, 1, 1)]
+void unused_entry_point() {
+}
+
+FXC validation failure:
+c:\src\dawn\Shader@0x00000248D7B03AD0(2,8-16): error X3000: unrecognized identifier 'float16_t'
+
diff --git a/test/tint/expressions/type_conv/scalar/var/f32-bool.wgsl.expected.ir.dxc.hlsl b/test/tint/expressions/type_conv/scalar/var/f32-bool.wgsl.expected.ir.dxc.hlsl
index 48e23f4..d087924 100644
--- a/test/tint/expressions/type_conv/scalar/var/f32-bool.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/expressions/type_conv/scalar/var/f32-bool.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,10 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Convert
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+static float u = 1.0f;
+void f() {
+  bool v = bool(u);
+}
+
+[numthreads(1, 1, 1)]
+void unused_entry_point() {
+}
+
diff --git a/test/tint/expressions/type_conv/scalar/var/f32-bool.wgsl.expected.ir.fxc.hlsl b/test/tint/expressions/type_conv/scalar/var/f32-bool.wgsl.expected.ir.fxc.hlsl
index 48e23f4..d087924 100644
--- a/test/tint/expressions/type_conv/scalar/var/f32-bool.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/expressions/type_conv/scalar/var/f32-bool.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,10 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Convert
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+static float u = 1.0f;
+void f() {
+  bool v = bool(u);
+}
+
+[numthreads(1, 1, 1)]
+void unused_entry_point() {
+}
+
diff --git a/test/tint/expressions/type_conv/scalar/var/f32-f16.wgsl.expected.ir.dxc.hlsl b/test/tint/expressions/type_conv/scalar/var/f32-f16.wgsl.expected.ir.dxc.hlsl
index 48e23f4..065c2dd 100644
--- a/test/tint/expressions/type_conv/scalar/var/f32-f16.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/expressions/type_conv/scalar/var/f32-f16.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,10 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Convert
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+static float u = 1.0f;
+void f() {
+  float16_t v = float16_t(u);
+}
+
+[numthreads(1, 1, 1)]
+void unused_entry_point() {
+}
+
diff --git a/test/tint/expressions/type_conv/scalar/var/f32-f16.wgsl.expected.ir.fxc.hlsl b/test/tint/expressions/type_conv/scalar/var/f32-f16.wgsl.expected.ir.fxc.hlsl
index 48e23f4..2188f3d 100644
--- a/test/tint/expressions/type_conv/scalar/var/f32-f16.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/expressions/type_conv/scalar/var/f32-f16.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,16 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Convert
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+
+static float u = 1.0f;
+void f() {
+  float16_t v = float16_t(u);
+}
+
+[numthreads(1, 1, 1)]
+void unused_entry_point() {
+}
+
+FXC validation failure:
+c:\src\dawn\Shader@0x000002140D6BDB20(4,3-11): error X3000: unrecognized identifier 'float16_t'
+c:\src\dawn\Shader@0x000002140D6BDB20(4,13): error X3000: unrecognized identifier 'v'
+
diff --git a/test/tint/expressions/type_conv/scalar/var/f32-i32.wgsl.expected.ir.dxc.hlsl b/test/tint/expressions/type_conv/scalar/var/f32-i32.wgsl.expected.ir.dxc.hlsl
index 48e23f4..8c62d4d 100644
--- a/test/tint/expressions/type_conv/scalar/var/f32-i32.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/expressions/type_conv/scalar/var/f32-i32.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,14 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Convert
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+static float u = 1.0f;
+int tint_f32_to_i32(float value) {
+  return (((value <= 2147483520.0f)) ? ((((value >= -2147483648.0f)) ? (int(value)) : (-2147483648))) : (2147483647));
+}
+
+void f() {
+  int v = tint_f32_to_i32(u);
+}
+
+[numthreads(1, 1, 1)]
+void unused_entry_point() {
+}
+
diff --git a/test/tint/expressions/type_conv/scalar/var/f32-i32.wgsl.expected.ir.fxc.hlsl b/test/tint/expressions/type_conv/scalar/var/f32-i32.wgsl.expected.ir.fxc.hlsl
index 48e23f4..8c62d4d 100644
--- a/test/tint/expressions/type_conv/scalar/var/f32-i32.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/expressions/type_conv/scalar/var/f32-i32.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,14 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Convert
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+static float u = 1.0f;
+int tint_f32_to_i32(float value) {
+  return (((value <= 2147483520.0f)) ? ((((value >= -2147483648.0f)) ? (int(value)) : (-2147483648))) : (2147483647));
+}
+
+void f() {
+  int v = tint_f32_to_i32(u);
+}
+
+[numthreads(1, 1, 1)]
+void unused_entry_point() {
+}
+
diff --git a/test/tint/expressions/type_conv/scalar/var/f32-u32.wgsl.expected.ir.dxc.hlsl b/test/tint/expressions/type_conv/scalar/var/f32-u32.wgsl.expected.ir.dxc.hlsl
index 48e23f4..3fa9a41 100644
--- a/test/tint/expressions/type_conv/scalar/var/f32-u32.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/expressions/type_conv/scalar/var/f32-u32.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,14 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Convert
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+static float u = 1.0f;
+uint tint_f32_to_u32(float value) {
+  return (((value <= 4294967040.0f)) ? ((((value >= 0.0f)) ? (uint(value)) : (0u))) : (4294967295u));
+}
+
+void f() {
+  uint v = tint_f32_to_u32(u);
+}
+
+[numthreads(1, 1, 1)]
+void unused_entry_point() {
+}
+
diff --git a/test/tint/expressions/type_conv/scalar/var/f32-u32.wgsl.expected.ir.fxc.hlsl b/test/tint/expressions/type_conv/scalar/var/f32-u32.wgsl.expected.ir.fxc.hlsl
index 48e23f4..3fa9a41 100644
--- a/test/tint/expressions/type_conv/scalar/var/f32-u32.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/expressions/type_conv/scalar/var/f32-u32.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,14 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Convert
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+static float u = 1.0f;
+uint tint_f32_to_u32(float value) {
+  return (((value <= 4294967040.0f)) ? ((((value >= 0.0f)) ? (uint(value)) : (0u))) : (4294967295u));
+}
+
+void f() {
+  uint v = tint_f32_to_u32(u);
+}
+
+[numthreads(1, 1, 1)]
+void unused_entry_point() {
+}
+
diff --git a/test/tint/expressions/type_conv/scalar/var/i32-bool.wgsl.expected.ir.dxc.hlsl b/test/tint/expressions/type_conv/scalar/var/i32-bool.wgsl.expected.ir.dxc.hlsl
index 48e23f4..a81086b 100644
--- a/test/tint/expressions/type_conv/scalar/var/i32-bool.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/expressions/type_conv/scalar/var/i32-bool.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,10 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Convert
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+static int u = 1;
+void f() {
+  bool v = bool(u);
+}
+
+[numthreads(1, 1, 1)]
+void unused_entry_point() {
+}
+
diff --git a/test/tint/expressions/type_conv/scalar/var/i32-bool.wgsl.expected.ir.fxc.hlsl b/test/tint/expressions/type_conv/scalar/var/i32-bool.wgsl.expected.ir.fxc.hlsl
index 48e23f4..a81086b 100644
--- a/test/tint/expressions/type_conv/scalar/var/i32-bool.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/expressions/type_conv/scalar/var/i32-bool.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,10 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Convert
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+static int u = 1;
+void f() {
+  bool v = bool(u);
+}
+
+[numthreads(1, 1, 1)]
+void unused_entry_point() {
+}
+
diff --git a/test/tint/expressions/type_conv/scalar/var/i32-f16.wgsl.expected.ir.dxc.hlsl b/test/tint/expressions/type_conv/scalar/var/i32-f16.wgsl.expected.ir.dxc.hlsl
index 48e23f4..7b77ccd 100644
--- a/test/tint/expressions/type_conv/scalar/var/i32-f16.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/expressions/type_conv/scalar/var/i32-f16.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,10 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Convert
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+static int u = 1;
+void f() {
+  float16_t v = float16_t(u);
+}
+
+[numthreads(1, 1, 1)]
+void unused_entry_point() {
+}
+
diff --git a/test/tint/expressions/type_conv/scalar/var/i32-f16.wgsl.expected.ir.fxc.hlsl b/test/tint/expressions/type_conv/scalar/var/i32-f16.wgsl.expected.ir.fxc.hlsl
index 48e23f4..3174e5c 100644
--- a/test/tint/expressions/type_conv/scalar/var/i32-f16.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/expressions/type_conv/scalar/var/i32-f16.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,16 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Convert
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+
+static int u = 1;
+void f() {
+  float16_t v = float16_t(u);
+}
+
+[numthreads(1, 1, 1)]
+void unused_entry_point() {
+}
+
+FXC validation failure:
+c:\src\dawn\Shader@0x0000024E43DE4AB0(4,3-11): error X3000: unrecognized identifier 'float16_t'
+c:\src\dawn\Shader@0x0000024E43DE4AB0(4,13): error X3000: unrecognized identifier 'v'
+
diff --git a/test/tint/expressions/type_conv/scalar/var/i32-f32.wgsl.expected.ir.dxc.hlsl b/test/tint/expressions/type_conv/scalar/var/i32-f32.wgsl.expected.ir.dxc.hlsl
index 48e23f4..19a5b8c 100644
--- a/test/tint/expressions/type_conv/scalar/var/i32-f32.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/expressions/type_conv/scalar/var/i32-f32.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,10 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Convert
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+static int u = 1;
+void f() {
+  float v = float(u);
+}
+
+[numthreads(1, 1, 1)]
+void unused_entry_point() {
+}
+
diff --git a/test/tint/expressions/type_conv/scalar/var/i32-f32.wgsl.expected.ir.fxc.hlsl b/test/tint/expressions/type_conv/scalar/var/i32-f32.wgsl.expected.ir.fxc.hlsl
index 48e23f4..19a5b8c 100644
--- a/test/tint/expressions/type_conv/scalar/var/i32-f32.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/expressions/type_conv/scalar/var/i32-f32.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,10 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Convert
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+static int u = 1;
+void f() {
+  float v = float(u);
+}
+
+[numthreads(1, 1, 1)]
+void unused_entry_point() {
+}
+
diff --git a/test/tint/expressions/type_conv/scalar/var/i32-u32.wgsl.expected.ir.dxc.hlsl b/test/tint/expressions/type_conv/scalar/var/i32-u32.wgsl.expected.ir.dxc.hlsl
index 48e23f4..1ecf021 100644
--- a/test/tint/expressions/type_conv/scalar/var/i32-u32.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/expressions/type_conv/scalar/var/i32-u32.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,10 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Convert
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+static int u = 1;
+void f() {
+  uint v = uint(u);
+}
+
+[numthreads(1, 1, 1)]
+void unused_entry_point() {
+}
+
diff --git a/test/tint/expressions/type_conv/scalar/var/i32-u32.wgsl.expected.ir.fxc.hlsl b/test/tint/expressions/type_conv/scalar/var/i32-u32.wgsl.expected.ir.fxc.hlsl
index 48e23f4..1ecf021 100644
--- a/test/tint/expressions/type_conv/scalar/var/i32-u32.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/expressions/type_conv/scalar/var/i32-u32.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,10 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Convert
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+static int u = 1;
+void f() {
+  uint v = uint(u);
+}
+
+[numthreads(1, 1, 1)]
+void unused_entry_point() {
+}
+
diff --git a/test/tint/expressions/type_conv/scalar/var/u32-bool.wgsl.expected.ir.dxc.hlsl b/test/tint/expressions/type_conv/scalar/var/u32-bool.wgsl.expected.ir.dxc.hlsl
index 48e23f4..456c7fd 100644
--- a/test/tint/expressions/type_conv/scalar/var/u32-bool.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/expressions/type_conv/scalar/var/u32-bool.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,10 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Convert
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+static uint u = 1u;
+void f() {
+  bool v = bool(u);
+}
+
+[numthreads(1, 1, 1)]
+void unused_entry_point() {
+}
+
diff --git a/test/tint/expressions/type_conv/scalar/var/u32-bool.wgsl.expected.ir.fxc.hlsl b/test/tint/expressions/type_conv/scalar/var/u32-bool.wgsl.expected.ir.fxc.hlsl
index 48e23f4..456c7fd 100644
--- a/test/tint/expressions/type_conv/scalar/var/u32-bool.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/expressions/type_conv/scalar/var/u32-bool.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,10 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Convert
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+static uint u = 1u;
+void f() {
+  bool v = bool(u);
+}
+
+[numthreads(1, 1, 1)]
+void unused_entry_point() {
+}
+
diff --git a/test/tint/expressions/type_conv/scalar/var/u32-f16.wgsl.expected.ir.dxc.hlsl b/test/tint/expressions/type_conv/scalar/var/u32-f16.wgsl.expected.ir.dxc.hlsl
index 48e23f4..b98518b 100644
--- a/test/tint/expressions/type_conv/scalar/var/u32-f16.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/expressions/type_conv/scalar/var/u32-f16.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,10 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Convert
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+static uint u = 1u;
+void f() {
+  float16_t v = float16_t(u);
+}
+
+[numthreads(1, 1, 1)]
+void unused_entry_point() {
+}
+
diff --git a/test/tint/expressions/type_conv/scalar/var/u32-f16.wgsl.expected.ir.fxc.hlsl b/test/tint/expressions/type_conv/scalar/var/u32-f16.wgsl.expected.ir.fxc.hlsl
index 48e23f4..4674747 100644
--- a/test/tint/expressions/type_conv/scalar/var/u32-f16.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/expressions/type_conv/scalar/var/u32-f16.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,16 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Convert
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+
+static uint u = 1u;
+void f() {
+  float16_t v = float16_t(u);
+}
+
+[numthreads(1, 1, 1)]
+void unused_entry_point() {
+}
+
+FXC validation failure:
+c:\src\dawn\Shader@0x000002A1DB7F4F90(4,3-11): error X3000: unrecognized identifier 'float16_t'
+c:\src\dawn\Shader@0x000002A1DB7F4F90(4,13): error X3000: unrecognized identifier 'v'
+
diff --git a/test/tint/expressions/type_conv/scalar/var/u32-f32.wgsl.expected.ir.dxc.hlsl b/test/tint/expressions/type_conv/scalar/var/u32-f32.wgsl.expected.ir.dxc.hlsl
index 48e23f4..82d0b64 100644
--- a/test/tint/expressions/type_conv/scalar/var/u32-f32.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/expressions/type_conv/scalar/var/u32-f32.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,10 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Convert
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+static uint u = 1u;
+void f() {
+  float v = float(u);
+}
+
+[numthreads(1, 1, 1)]
+void unused_entry_point() {
+}
+
diff --git a/test/tint/expressions/type_conv/scalar/var/u32-f32.wgsl.expected.ir.fxc.hlsl b/test/tint/expressions/type_conv/scalar/var/u32-f32.wgsl.expected.ir.fxc.hlsl
index 48e23f4..82d0b64 100644
--- a/test/tint/expressions/type_conv/scalar/var/u32-f32.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/expressions/type_conv/scalar/var/u32-f32.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,10 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Convert
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+static uint u = 1u;
+void f() {
+  float v = float(u);
+}
+
+[numthreads(1, 1, 1)]
+void unused_entry_point() {
+}
+
diff --git a/test/tint/expressions/type_conv/scalar/var/u32-i32.wgsl.expected.ir.dxc.hlsl b/test/tint/expressions/type_conv/scalar/var/u32-i32.wgsl.expected.ir.dxc.hlsl
index 48e23f4..bae3fa0 100644
--- a/test/tint/expressions/type_conv/scalar/var/u32-i32.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/expressions/type_conv/scalar/var/u32-i32.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,10 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Convert
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+static uint u = 1u;
+void f() {
+  int v = int(u);
+}
+
+[numthreads(1, 1, 1)]
+void unused_entry_point() {
+}
+
diff --git a/test/tint/expressions/type_conv/scalar/var/u32-i32.wgsl.expected.ir.fxc.hlsl b/test/tint/expressions/type_conv/scalar/var/u32-i32.wgsl.expected.ir.fxc.hlsl
index 48e23f4..bae3fa0 100644
--- a/test/tint/expressions/type_conv/scalar/var/u32-i32.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/expressions/type_conv/scalar/var/u32-i32.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,10 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Convert
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+static uint u = 1u;
+void f() {
+  int v = int(u);
+}
+
+[numthreads(1, 1, 1)]
+void unused_entry_point() {
+}
+
diff --git a/test/tint/expressions/type_conv/vec2/function/bool-f16.wgsl.expected.ir.dxc.hlsl b/test/tint/expressions/type_conv/vec2/function/bool-f16.wgsl.expected.ir.dxc.hlsl
index c6e1d96..dd61436 100644
--- a/test/tint/expressions/type_conv/vec2/function/bool-f16.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/expressions/type_conv/vec2/function/bool-f16.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,15 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Construct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+static bool t = false;
+bool2 m() {
+  t = true;
+  return bool2((t).xx);
+}
+
+void f() {
+  vector<float16_t, 2> v = vector<float16_t, 2>(m());
+}
+
+[numthreads(1, 1, 1)]
+void unused_entry_point() {
+}
+
diff --git a/test/tint/expressions/type_conv/vec2/function/bool-f16.wgsl.expected.ir.fxc.hlsl b/test/tint/expressions/type_conv/vec2/function/bool-f16.wgsl.expected.ir.fxc.hlsl
index c6e1d96..dcaee90 100644
--- a/test/tint/expressions/type_conv/vec2/function/bool-f16.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/expressions/type_conv/vec2/function/bool-f16.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,20 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Construct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+
+static bool t = false;
+bool2 m() {
+  t = true;
+  return bool2((t).xx);
+}
+
+void f() {
+  vector<float16_t, 2> v = vector<float16_t, 2>(m());
+}
+
+[numthreads(1, 1, 1)]
+void unused_entry_point() {
+}
+
+FXC validation failure:
+c:\src\dawn\Shader@0x000001E02AF4F630(9,10-18): error X3000: syntax error: unexpected token 'float16_t'
+
diff --git a/test/tint/expressions/type_conv/vec2/function/bool-f32.wgsl.expected.ir.dxc.hlsl b/test/tint/expressions/type_conv/vec2/function/bool-f32.wgsl.expected.ir.dxc.hlsl
index c6e1d96..44127fc 100644
--- a/test/tint/expressions/type_conv/vec2/function/bool-f32.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/expressions/type_conv/vec2/function/bool-f32.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,15 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Construct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+static bool t = false;
+bool2 m() {
+  t = true;
+  return bool2((t).xx);
+}
+
+void f() {
+  float2 v = float2(m());
+}
+
+[numthreads(1, 1, 1)]
+void unused_entry_point() {
+}
+
diff --git a/test/tint/expressions/type_conv/vec2/function/bool-f32.wgsl.expected.ir.fxc.hlsl b/test/tint/expressions/type_conv/vec2/function/bool-f32.wgsl.expected.ir.fxc.hlsl
index c6e1d96..44127fc 100644
--- a/test/tint/expressions/type_conv/vec2/function/bool-f32.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/expressions/type_conv/vec2/function/bool-f32.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,15 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Construct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+static bool t = false;
+bool2 m() {
+  t = true;
+  return bool2((t).xx);
+}
+
+void f() {
+  float2 v = float2(m());
+}
+
+[numthreads(1, 1, 1)]
+void unused_entry_point() {
+}
+
diff --git a/test/tint/expressions/type_conv/vec2/function/bool-i32.wgsl.expected.ir.dxc.hlsl b/test/tint/expressions/type_conv/vec2/function/bool-i32.wgsl.expected.ir.dxc.hlsl
index c6e1d96..e3fc6e6 100644
--- a/test/tint/expressions/type_conv/vec2/function/bool-i32.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/expressions/type_conv/vec2/function/bool-i32.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,15 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Construct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+static bool t = false;
+bool2 m() {
+  t = true;
+  return bool2((t).xx);
+}
+
+void f() {
+  int2 v = int2(m());
+}
+
+[numthreads(1, 1, 1)]
+void unused_entry_point() {
+}
+
diff --git a/test/tint/expressions/type_conv/vec2/function/bool-i32.wgsl.expected.ir.fxc.hlsl b/test/tint/expressions/type_conv/vec2/function/bool-i32.wgsl.expected.ir.fxc.hlsl
index c6e1d96..e3fc6e6 100644
--- a/test/tint/expressions/type_conv/vec2/function/bool-i32.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/expressions/type_conv/vec2/function/bool-i32.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,15 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Construct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+static bool t = false;
+bool2 m() {
+  t = true;
+  return bool2((t).xx);
+}
+
+void f() {
+  int2 v = int2(m());
+}
+
+[numthreads(1, 1, 1)]
+void unused_entry_point() {
+}
+
diff --git a/test/tint/expressions/type_conv/vec2/function/bool-u32.wgsl.expected.ir.dxc.hlsl b/test/tint/expressions/type_conv/vec2/function/bool-u32.wgsl.expected.ir.dxc.hlsl
index c6e1d96..4c4ce01 100644
--- a/test/tint/expressions/type_conv/vec2/function/bool-u32.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/expressions/type_conv/vec2/function/bool-u32.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,15 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Construct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+static bool t = false;
+bool2 m() {
+  t = true;
+  return bool2((t).xx);
+}
+
+void f() {
+  uint2 v = uint2(m());
+}
+
+[numthreads(1, 1, 1)]
+void unused_entry_point() {
+}
+
diff --git a/test/tint/expressions/type_conv/vec2/function/bool-u32.wgsl.expected.ir.fxc.hlsl b/test/tint/expressions/type_conv/vec2/function/bool-u32.wgsl.expected.ir.fxc.hlsl
index c6e1d96..4c4ce01 100644
--- a/test/tint/expressions/type_conv/vec2/function/bool-u32.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/expressions/type_conv/vec2/function/bool-u32.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,15 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Construct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+static bool t = false;
+bool2 m() {
+  t = true;
+  return bool2((t).xx);
+}
+
+void f() {
+  uint2 v = uint2(m());
+}
+
+[numthreads(1, 1, 1)]
+void unused_entry_point() {
+}
+
diff --git a/test/tint/expressions/type_conv/vec2/function/f16-bool.wgsl.expected.ir.dxc.hlsl b/test/tint/expressions/type_conv/vec2/function/f16-bool.wgsl.expected.ir.dxc.hlsl
index c6e1d96..8599fe5 100644
--- a/test/tint/expressions/type_conv/vec2/function/f16-bool.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/expressions/type_conv/vec2/function/f16-bool.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,15 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Construct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+static float16_t t = float16_t(0.0h);
+vector<float16_t, 2> m() {
+  t = float16_t(1.0h);
+  return vector<float16_t, 2>((t).xx);
+}
+
+void f() {
+  bool2 v = bool2(m());
+}
+
+[numthreads(1, 1, 1)]
+void unused_entry_point() {
+}
+
diff --git a/test/tint/expressions/type_conv/vec2/function/f16-bool.wgsl.expected.ir.fxc.hlsl b/test/tint/expressions/type_conv/vec2/function/f16-bool.wgsl.expected.ir.fxc.hlsl
index c6e1d96..053c753 100644
--- a/test/tint/expressions/type_conv/vec2/function/f16-bool.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/expressions/type_conv/vec2/function/f16-bool.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,20 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Construct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+
+static float16_t t = float16_t(0.0h);
+vector<float16_t, 2> m() {
+  t = float16_t(1.0h);
+  return vector<float16_t, 2>((t).xx);
+}
+
+void f() {
+  bool2 v = bool2(m());
+}
+
+[numthreads(1, 1, 1)]
+void unused_entry_point() {
+}
+
+FXC validation failure:
+c:\src\dawn\Shader@0x000001AD9F6803E0(2,8-16): error X3000: unrecognized identifier 'float16_t'
+
diff --git a/test/tint/expressions/type_conv/vec2/function/f16-f32.wgsl.expected.ir.dxc.hlsl b/test/tint/expressions/type_conv/vec2/function/f16-f32.wgsl.expected.ir.dxc.hlsl
index c6e1d96..6230165 100644
--- a/test/tint/expressions/type_conv/vec2/function/f16-f32.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/expressions/type_conv/vec2/function/f16-f32.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,15 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Construct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+static float16_t t = float16_t(0.0h);
+vector<float16_t, 2> m() {
+  t = float16_t(1.0h);
+  return vector<float16_t, 2>((t).xx);
+}
+
+void f() {
+  float2 v = float2(m());
+}
+
+[numthreads(1, 1, 1)]
+void unused_entry_point() {
+}
+
diff --git a/test/tint/expressions/type_conv/vec2/function/f16-f32.wgsl.expected.ir.fxc.hlsl b/test/tint/expressions/type_conv/vec2/function/f16-f32.wgsl.expected.ir.fxc.hlsl
index c6e1d96..0d63bc5 100644
--- a/test/tint/expressions/type_conv/vec2/function/f16-f32.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/expressions/type_conv/vec2/function/f16-f32.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,20 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Construct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+
+static float16_t t = float16_t(0.0h);
+vector<float16_t, 2> m() {
+  t = float16_t(1.0h);
+  return vector<float16_t, 2>((t).xx);
+}
+
+void f() {
+  float2 v = float2(m());
+}
+
+[numthreads(1, 1, 1)]
+void unused_entry_point() {
+}
+
+FXC validation failure:
+c:\src\dawn\Shader@0x0000018ED56B06A0(2,8-16): error X3000: unrecognized identifier 'float16_t'
+
diff --git a/test/tint/expressions/type_conv/vec2/function/f16-i32.wgsl.expected.ir.dxc.hlsl b/test/tint/expressions/type_conv/vec2/function/f16-i32.wgsl.expected.ir.dxc.hlsl
index c6e1d96..f1e2a78 100644
--- a/test/tint/expressions/type_conv/vec2/function/f16-i32.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/expressions/type_conv/vec2/function/f16-i32.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,19 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Construct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+static float16_t t = float16_t(0.0h);
+vector<float16_t, 2> m() {
+  t = float16_t(1.0h);
+  return vector<float16_t, 2>((t).xx);
+}
+
+int2 tint_v2f16_to_v2i32(vector<float16_t, 2> value) {
+  return (((value <= (float16_t(65504.0h)).xx)) ? ((((value >= (float16_t(-65504.0h)).xx)) ? (int2(value)) : ((-2147483648).xx))) : ((2147483647).xx));
+}
+
+void f() {
+  int2 v = tint_v2f16_to_v2i32(m());
+}
+
+[numthreads(1, 1, 1)]
+void unused_entry_point() {
+}
+
diff --git a/test/tint/expressions/type_conv/vec2/function/f16-i32.wgsl.expected.ir.fxc.hlsl b/test/tint/expressions/type_conv/vec2/function/f16-i32.wgsl.expected.ir.fxc.hlsl
index c6e1d96..daf3442 100644
--- a/test/tint/expressions/type_conv/vec2/function/f16-i32.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/expressions/type_conv/vec2/function/f16-i32.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,24 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Construct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+
+static float16_t t = float16_t(0.0h);
+vector<float16_t, 2> m() {
+  t = float16_t(1.0h);
+  return vector<float16_t, 2>((t).xx);
+}
+
+int2 tint_v2f16_to_v2i32(vector<float16_t, 2> value) {
+  return (((value <= (float16_t(65504.0h)).xx)) ? ((((value >= (float16_t(-65504.0h)).xx)) ? (int2(value)) : ((-2147483648).xx))) : ((2147483647).xx));
+}
+
+void f() {
+  int2 v = tint_v2f16_to_v2i32(m());
+}
+
+[numthreads(1, 1, 1)]
+void unused_entry_point() {
+}
+
+FXC validation failure:
+c:\src\dawn\Shader@0x000001C1715959F0(2,8-16): error X3000: unrecognized identifier 'float16_t'
+
diff --git a/test/tint/expressions/type_conv/vec2/function/f16-u32.wgsl.expected.ir.dxc.hlsl b/test/tint/expressions/type_conv/vec2/function/f16-u32.wgsl.expected.ir.dxc.hlsl
index c6e1d96..18a862a 100644
--- a/test/tint/expressions/type_conv/vec2/function/f16-u32.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/expressions/type_conv/vec2/function/f16-u32.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,19 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Construct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+static float16_t t = float16_t(0.0h);
+vector<float16_t, 2> m() {
+  t = float16_t(1.0h);
+  return vector<float16_t, 2>((t).xx);
+}
+
+uint2 tint_v2f16_to_v2u32(vector<float16_t, 2> value) {
+  return (((value <= (float16_t(65504.0h)).xx)) ? ((((value >= (float16_t(0.0h)).xx)) ? (uint2(value)) : ((0u).xx))) : ((4294967295u).xx));
+}
+
+void f() {
+  uint2 v = tint_v2f16_to_v2u32(m());
+}
+
+[numthreads(1, 1, 1)]
+void unused_entry_point() {
+}
+
diff --git a/test/tint/expressions/type_conv/vec2/function/f16-u32.wgsl.expected.ir.fxc.hlsl b/test/tint/expressions/type_conv/vec2/function/f16-u32.wgsl.expected.ir.fxc.hlsl
index c6e1d96..fbe1ec6 100644
--- a/test/tint/expressions/type_conv/vec2/function/f16-u32.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/expressions/type_conv/vec2/function/f16-u32.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,24 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Construct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+
+static float16_t t = float16_t(0.0h);
+vector<float16_t, 2> m() {
+  t = float16_t(1.0h);
+  return vector<float16_t, 2>((t).xx);
+}
+
+uint2 tint_v2f16_to_v2u32(vector<float16_t, 2> value) {
+  return (((value <= (float16_t(65504.0h)).xx)) ? ((((value >= (float16_t(0.0h)).xx)) ? (uint2(value)) : ((0u).xx))) : ((4294967295u).xx));
+}
+
+void f() {
+  uint2 v = tint_v2f16_to_v2u32(m());
+}
+
+[numthreads(1, 1, 1)]
+void unused_entry_point() {
+}
+
+FXC validation failure:
+c:\src\dawn\Shader@0x00000201129147A0(2,8-16): error X3000: unrecognized identifier 'float16_t'
+
diff --git a/test/tint/expressions/type_conv/vec2/function/f32-bool.wgsl.expected.ir.dxc.hlsl b/test/tint/expressions/type_conv/vec2/function/f32-bool.wgsl.expected.ir.dxc.hlsl
index c6e1d96..61cf286 100644
--- a/test/tint/expressions/type_conv/vec2/function/f32-bool.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/expressions/type_conv/vec2/function/f32-bool.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,15 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Construct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+static float t = 0.0f;
+float2 m() {
+  t = 1.0f;
+  return float2((t).xx);
+}
+
+void f() {
+  bool2 v = bool2(m());
+}
+
+[numthreads(1, 1, 1)]
+void unused_entry_point() {
+}
+
diff --git a/test/tint/expressions/type_conv/vec2/function/f32-bool.wgsl.expected.ir.fxc.hlsl b/test/tint/expressions/type_conv/vec2/function/f32-bool.wgsl.expected.ir.fxc.hlsl
index c6e1d96..61cf286 100644
--- a/test/tint/expressions/type_conv/vec2/function/f32-bool.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/expressions/type_conv/vec2/function/f32-bool.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,15 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Construct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+static float t = 0.0f;
+float2 m() {
+  t = 1.0f;
+  return float2((t).xx);
+}
+
+void f() {
+  bool2 v = bool2(m());
+}
+
+[numthreads(1, 1, 1)]
+void unused_entry_point() {
+}
+
diff --git a/test/tint/expressions/type_conv/vec2/function/f32-f16.wgsl.expected.ir.dxc.hlsl b/test/tint/expressions/type_conv/vec2/function/f32-f16.wgsl.expected.ir.dxc.hlsl
index c6e1d96..62fd63d 100644
--- a/test/tint/expressions/type_conv/vec2/function/f32-f16.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/expressions/type_conv/vec2/function/f32-f16.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,15 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Construct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+static float t = 0.0f;
+float2 m() {
+  t = 1.0f;
+  return float2((t).xx);
+}
+
+void f() {
+  vector<float16_t, 2> v = vector<float16_t, 2>(m());
+}
+
+[numthreads(1, 1, 1)]
+void unused_entry_point() {
+}
+
diff --git a/test/tint/expressions/type_conv/vec2/function/f32-f16.wgsl.expected.ir.fxc.hlsl b/test/tint/expressions/type_conv/vec2/function/f32-f16.wgsl.expected.ir.fxc.hlsl
index c6e1d96..a478c75 100644
--- a/test/tint/expressions/type_conv/vec2/function/f32-f16.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/expressions/type_conv/vec2/function/f32-f16.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,20 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Construct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+
+static float t = 0.0f;
+float2 m() {
+  t = 1.0f;
+  return float2((t).xx);
+}
+
+void f() {
+  vector<float16_t, 2> v = vector<float16_t, 2>(m());
+}
+
+[numthreads(1, 1, 1)]
+void unused_entry_point() {
+}
+
+FXC validation failure:
+c:\src\dawn\Shader@0x000001B3A993DA00(9,10-18): error X3000: syntax error: unexpected token 'float16_t'
+
diff --git a/test/tint/expressions/type_conv/vec2/function/f32-i32.wgsl.expected.ir.dxc.hlsl b/test/tint/expressions/type_conv/vec2/function/f32-i32.wgsl.expected.ir.dxc.hlsl
index c6e1d96..dc94644 100644
--- a/test/tint/expressions/type_conv/vec2/function/f32-i32.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/expressions/type_conv/vec2/function/f32-i32.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,19 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Construct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+static float t = 0.0f;
+float2 m() {
+  t = 1.0f;
+  return float2((t).xx);
+}
+
+int2 tint_v2f32_to_v2i32(float2 value) {
+  return (((value <= (2147483520.0f).xx)) ? ((((value >= (-2147483648.0f).xx)) ? (int2(value)) : ((-2147483648).xx))) : ((2147483647).xx));
+}
+
+void f() {
+  int2 v = tint_v2f32_to_v2i32(m());
+}
+
+[numthreads(1, 1, 1)]
+void unused_entry_point() {
+}
+
diff --git a/test/tint/expressions/type_conv/vec2/function/f32-i32.wgsl.expected.ir.fxc.hlsl b/test/tint/expressions/type_conv/vec2/function/f32-i32.wgsl.expected.ir.fxc.hlsl
index c6e1d96..dc94644 100644
--- a/test/tint/expressions/type_conv/vec2/function/f32-i32.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/expressions/type_conv/vec2/function/f32-i32.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,19 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Construct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+static float t = 0.0f;
+float2 m() {
+  t = 1.0f;
+  return float2((t).xx);
+}
+
+int2 tint_v2f32_to_v2i32(float2 value) {
+  return (((value <= (2147483520.0f).xx)) ? ((((value >= (-2147483648.0f).xx)) ? (int2(value)) : ((-2147483648).xx))) : ((2147483647).xx));
+}
+
+void f() {
+  int2 v = tint_v2f32_to_v2i32(m());
+}
+
+[numthreads(1, 1, 1)]
+void unused_entry_point() {
+}
+
diff --git a/test/tint/expressions/type_conv/vec2/function/f32-u32.wgsl.expected.ir.dxc.hlsl b/test/tint/expressions/type_conv/vec2/function/f32-u32.wgsl.expected.ir.dxc.hlsl
index c6e1d96..6ea793f 100644
--- a/test/tint/expressions/type_conv/vec2/function/f32-u32.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/expressions/type_conv/vec2/function/f32-u32.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,19 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Construct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+static float t = 0.0f;
+float2 m() {
+  t = 1.0f;
+  return float2((t).xx);
+}
+
+uint2 tint_v2f32_to_v2u32(float2 value) {
+  return (((value <= (4294967040.0f).xx)) ? ((((value >= (0.0f).xx)) ? (uint2(value)) : ((0u).xx))) : ((4294967295u).xx));
+}
+
+void f() {
+  uint2 v = tint_v2f32_to_v2u32(m());
+}
+
+[numthreads(1, 1, 1)]
+void unused_entry_point() {
+}
+
diff --git a/test/tint/expressions/type_conv/vec2/function/f32-u32.wgsl.expected.ir.fxc.hlsl b/test/tint/expressions/type_conv/vec2/function/f32-u32.wgsl.expected.ir.fxc.hlsl
index c6e1d96..6ea793f 100644
--- a/test/tint/expressions/type_conv/vec2/function/f32-u32.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/expressions/type_conv/vec2/function/f32-u32.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,19 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Construct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+static float t = 0.0f;
+float2 m() {
+  t = 1.0f;
+  return float2((t).xx);
+}
+
+uint2 tint_v2f32_to_v2u32(float2 value) {
+  return (((value <= (4294967040.0f).xx)) ? ((((value >= (0.0f).xx)) ? (uint2(value)) : ((0u).xx))) : ((4294967295u).xx));
+}
+
+void f() {
+  uint2 v = tint_v2f32_to_v2u32(m());
+}
+
+[numthreads(1, 1, 1)]
+void unused_entry_point() {
+}
+
diff --git a/test/tint/expressions/type_conv/vec2/function/i32-bool.wgsl.expected.ir.dxc.hlsl b/test/tint/expressions/type_conv/vec2/function/i32-bool.wgsl.expected.ir.dxc.hlsl
index c6e1d96..bd3b5a5 100644
--- a/test/tint/expressions/type_conv/vec2/function/i32-bool.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/expressions/type_conv/vec2/function/i32-bool.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,15 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Construct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+static int t = 0;
+int2 m() {
+  t = 1;
+  return int2((t).xx);
+}
+
+void f() {
+  bool2 v = bool2(m());
+}
+
+[numthreads(1, 1, 1)]
+void unused_entry_point() {
+}
+
diff --git a/test/tint/expressions/type_conv/vec2/function/i32-bool.wgsl.expected.ir.fxc.hlsl b/test/tint/expressions/type_conv/vec2/function/i32-bool.wgsl.expected.ir.fxc.hlsl
index c6e1d96..bd3b5a5 100644
--- a/test/tint/expressions/type_conv/vec2/function/i32-bool.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/expressions/type_conv/vec2/function/i32-bool.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,15 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Construct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+static int t = 0;
+int2 m() {
+  t = 1;
+  return int2((t).xx);
+}
+
+void f() {
+  bool2 v = bool2(m());
+}
+
+[numthreads(1, 1, 1)]
+void unused_entry_point() {
+}
+
diff --git a/test/tint/expressions/type_conv/vec2/function/i32-f16.wgsl.expected.ir.dxc.hlsl b/test/tint/expressions/type_conv/vec2/function/i32-f16.wgsl.expected.ir.dxc.hlsl
index c6e1d96..8e4d203 100644
--- a/test/tint/expressions/type_conv/vec2/function/i32-f16.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/expressions/type_conv/vec2/function/i32-f16.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,15 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Construct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+static int t = 0;
+int2 m() {
+  t = 1;
+  return int2((t).xx);
+}
+
+void f() {
+  vector<float16_t, 2> v = vector<float16_t, 2>(m());
+}
+
+[numthreads(1, 1, 1)]
+void unused_entry_point() {
+}
+
diff --git a/test/tint/expressions/type_conv/vec2/function/i32-f16.wgsl.expected.ir.fxc.hlsl b/test/tint/expressions/type_conv/vec2/function/i32-f16.wgsl.expected.ir.fxc.hlsl
index c6e1d96..9b79c36 100644
--- a/test/tint/expressions/type_conv/vec2/function/i32-f16.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/expressions/type_conv/vec2/function/i32-f16.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,20 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Construct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+
+static int t = 0;
+int2 m() {
+  t = 1;
+  return int2((t).xx);
+}
+
+void f() {
+  vector<float16_t, 2> v = vector<float16_t, 2>(m());
+}
+
+[numthreads(1, 1, 1)]
+void unused_entry_point() {
+}
+
+FXC validation failure:
+c:\src\dawn\Shader@0x000002E424596EA0(9,10-18): error X3000: syntax error: unexpected token 'float16_t'
+
diff --git a/test/tint/expressions/type_conv/vec2/function/i32-f32.wgsl.expected.ir.dxc.hlsl b/test/tint/expressions/type_conv/vec2/function/i32-f32.wgsl.expected.ir.dxc.hlsl
index c6e1d96..f4db697 100644
--- a/test/tint/expressions/type_conv/vec2/function/i32-f32.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/expressions/type_conv/vec2/function/i32-f32.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,15 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Construct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+static int t = 0;
+int2 m() {
+  t = 1;
+  return int2((t).xx);
+}
+
+void f() {
+  float2 v = float2(m());
+}
+
+[numthreads(1, 1, 1)]
+void unused_entry_point() {
+}
+
diff --git a/test/tint/expressions/type_conv/vec2/function/i32-f32.wgsl.expected.ir.fxc.hlsl b/test/tint/expressions/type_conv/vec2/function/i32-f32.wgsl.expected.ir.fxc.hlsl
index c6e1d96..f4db697 100644
--- a/test/tint/expressions/type_conv/vec2/function/i32-f32.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/expressions/type_conv/vec2/function/i32-f32.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,15 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Construct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+static int t = 0;
+int2 m() {
+  t = 1;
+  return int2((t).xx);
+}
+
+void f() {
+  float2 v = float2(m());
+}
+
+[numthreads(1, 1, 1)]
+void unused_entry_point() {
+}
+
diff --git a/test/tint/expressions/type_conv/vec2/function/i32-u32.wgsl.expected.ir.dxc.hlsl b/test/tint/expressions/type_conv/vec2/function/i32-u32.wgsl.expected.ir.dxc.hlsl
index c6e1d96..edb8acb 100644
--- a/test/tint/expressions/type_conv/vec2/function/i32-u32.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/expressions/type_conv/vec2/function/i32-u32.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,15 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Construct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+static int t = 0;
+int2 m() {
+  t = 1;
+  return int2((t).xx);
+}
+
+void f() {
+  uint2 v = uint2(m());
+}
+
+[numthreads(1, 1, 1)]
+void unused_entry_point() {
+}
+
diff --git a/test/tint/expressions/type_conv/vec2/function/i32-u32.wgsl.expected.ir.fxc.hlsl b/test/tint/expressions/type_conv/vec2/function/i32-u32.wgsl.expected.ir.fxc.hlsl
index c6e1d96..edb8acb 100644
--- a/test/tint/expressions/type_conv/vec2/function/i32-u32.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/expressions/type_conv/vec2/function/i32-u32.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,15 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Construct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+static int t = 0;
+int2 m() {
+  t = 1;
+  return int2((t).xx);
+}
+
+void f() {
+  uint2 v = uint2(m());
+}
+
+[numthreads(1, 1, 1)]
+void unused_entry_point() {
+}
+
diff --git a/test/tint/expressions/type_conv/vec2/function/u32-bool.wgsl.expected.ir.dxc.hlsl b/test/tint/expressions/type_conv/vec2/function/u32-bool.wgsl.expected.ir.dxc.hlsl
index c6e1d96..cbfa8e4 100644
--- a/test/tint/expressions/type_conv/vec2/function/u32-bool.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/expressions/type_conv/vec2/function/u32-bool.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,15 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Construct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+static uint t = 0u;
+uint2 m() {
+  t = 1u;
+  return uint2((t).xx);
+}
+
+void f() {
+  bool2 v = bool2(m());
+}
+
+[numthreads(1, 1, 1)]
+void unused_entry_point() {
+}
+
diff --git a/test/tint/expressions/type_conv/vec2/function/u32-bool.wgsl.expected.ir.fxc.hlsl b/test/tint/expressions/type_conv/vec2/function/u32-bool.wgsl.expected.ir.fxc.hlsl
index c6e1d96..cbfa8e4 100644
--- a/test/tint/expressions/type_conv/vec2/function/u32-bool.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/expressions/type_conv/vec2/function/u32-bool.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,15 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Construct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+static uint t = 0u;
+uint2 m() {
+  t = 1u;
+  return uint2((t).xx);
+}
+
+void f() {
+  bool2 v = bool2(m());
+}
+
+[numthreads(1, 1, 1)]
+void unused_entry_point() {
+}
+
diff --git a/test/tint/expressions/type_conv/vec2/function/u32-f16.wgsl.expected.ir.dxc.hlsl b/test/tint/expressions/type_conv/vec2/function/u32-f16.wgsl.expected.ir.dxc.hlsl
index c6e1d96..cd6f604 100644
--- a/test/tint/expressions/type_conv/vec2/function/u32-f16.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/expressions/type_conv/vec2/function/u32-f16.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,15 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Construct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+static uint t = 0u;
+uint2 m() {
+  t = 1u;
+  return uint2((t).xx);
+}
+
+void f() {
+  vector<float16_t, 2> v = vector<float16_t, 2>(m());
+}
+
+[numthreads(1, 1, 1)]
+void unused_entry_point() {
+}
+
diff --git a/test/tint/expressions/type_conv/vec2/function/u32-f16.wgsl.expected.ir.fxc.hlsl b/test/tint/expressions/type_conv/vec2/function/u32-f16.wgsl.expected.ir.fxc.hlsl
index c6e1d96..02388ad 100644
--- a/test/tint/expressions/type_conv/vec2/function/u32-f16.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/expressions/type_conv/vec2/function/u32-f16.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,20 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Construct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+
+static uint t = 0u;
+uint2 m() {
+  t = 1u;
+  return uint2((t).xx);
+}
+
+void f() {
+  vector<float16_t, 2> v = vector<float16_t, 2>(m());
+}
+
+[numthreads(1, 1, 1)]
+void unused_entry_point() {
+}
+
+FXC validation failure:
+c:\src\dawn\Shader@0x000002BAB9E4D3D0(9,10-18): error X3000: syntax error: unexpected token 'float16_t'
+
diff --git a/test/tint/expressions/type_conv/vec2/function/u32-f32.wgsl.expected.ir.dxc.hlsl b/test/tint/expressions/type_conv/vec2/function/u32-f32.wgsl.expected.ir.dxc.hlsl
index c6e1d96..afaa273 100644
--- a/test/tint/expressions/type_conv/vec2/function/u32-f32.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/expressions/type_conv/vec2/function/u32-f32.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,15 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Construct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+static uint t = 0u;
+uint2 m() {
+  t = 1u;
+  return uint2((t).xx);
+}
+
+void f() {
+  float2 v = float2(m());
+}
+
+[numthreads(1, 1, 1)]
+void unused_entry_point() {
+}
+
diff --git a/test/tint/expressions/type_conv/vec2/function/u32-f32.wgsl.expected.ir.fxc.hlsl b/test/tint/expressions/type_conv/vec2/function/u32-f32.wgsl.expected.ir.fxc.hlsl
index c6e1d96..afaa273 100644
--- a/test/tint/expressions/type_conv/vec2/function/u32-f32.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/expressions/type_conv/vec2/function/u32-f32.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,15 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Construct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+static uint t = 0u;
+uint2 m() {
+  t = 1u;
+  return uint2((t).xx);
+}
+
+void f() {
+  float2 v = float2(m());
+}
+
+[numthreads(1, 1, 1)]
+void unused_entry_point() {
+}
+
diff --git a/test/tint/expressions/type_conv/vec2/function/u32-i32.wgsl.expected.ir.dxc.hlsl b/test/tint/expressions/type_conv/vec2/function/u32-i32.wgsl.expected.ir.dxc.hlsl
index c6e1d96..c3e14c1 100644
--- a/test/tint/expressions/type_conv/vec2/function/u32-i32.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/expressions/type_conv/vec2/function/u32-i32.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,15 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Construct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+static uint t = 0u;
+uint2 m() {
+  t = 1u;
+  return uint2((t).xx);
+}
+
+void f() {
+  int2 v = int2(m());
+}
+
+[numthreads(1, 1, 1)]
+void unused_entry_point() {
+}
+
diff --git a/test/tint/expressions/type_conv/vec2/function/u32-i32.wgsl.expected.ir.fxc.hlsl b/test/tint/expressions/type_conv/vec2/function/u32-i32.wgsl.expected.ir.fxc.hlsl
index c6e1d96..c3e14c1 100644
--- a/test/tint/expressions/type_conv/vec2/function/u32-i32.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/expressions/type_conv/vec2/function/u32-i32.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,15 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Construct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+static uint t = 0u;
+uint2 m() {
+  t = 1u;
+  return uint2((t).xx);
+}
+
+void f() {
+  int2 v = int2(m());
+}
+
+[numthreads(1, 1, 1)]
+void unused_entry_point() {
+}
+
diff --git a/test/tint/expressions/type_conv/vec2/literal/bool-f16.wgsl.expected.ir.dxc.hlsl b/test/tint/expressions/type_conv/vec2/literal/bool-f16.wgsl.expected.ir.dxc.hlsl
index 9acd2d7..bdc3590 100644
--- a/test/tint/expressions/type_conv/vec2/literal/bool-f16.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/expressions/type_conv/vec2/literal/bool-f16.wgsl.expected.ir.dxc.hlsl
@@ -1,3 +1,5 @@
+
+static vector<float16_t, 2> u = (float16_t(1.0h)).xx;
 [numthreads(1, 1, 1)]
 void unused_entry_point() {
 }
diff --git a/test/tint/expressions/type_conv/vec2/literal/bool-f16.wgsl.expected.ir.fxc.hlsl b/test/tint/expressions/type_conv/vec2/literal/bool-f16.wgsl.expected.ir.fxc.hlsl
index 9acd2d7..3bfa6ae 100644
--- a/test/tint/expressions/type_conv/vec2/literal/bool-f16.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/expressions/type_conv/vec2/literal/bool-f16.wgsl.expected.ir.fxc.hlsl
@@ -1,4 +1,11 @@
+SKIP: FAILED
+
+
+static vector<float16_t, 2> u = (float16_t(1.0h)).xx;
 [numthreads(1, 1, 1)]
 void unused_entry_point() {
 }
 
+FXC validation failure:
+c:\src\dawn\Shader@0x000001D20C1CCC50(2,15-23): error X3000: syntax error: unexpected token 'float16_t'
+
diff --git a/test/tint/expressions/type_conv/vec2/literal/bool-f32.wgsl.expected.ir.dxc.hlsl b/test/tint/expressions/type_conv/vec2/literal/bool-f32.wgsl.expected.ir.dxc.hlsl
index 9acd2d7..61b917e 100644
--- a/test/tint/expressions/type_conv/vec2/literal/bool-f32.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/expressions/type_conv/vec2/literal/bool-f32.wgsl.expected.ir.dxc.hlsl
@@ -1,3 +1,5 @@
+
+static float2 u = (1.0f).xx;
 [numthreads(1, 1, 1)]
 void unused_entry_point() {
 }
diff --git a/test/tint/expressions/type_conv/vec2/literal/bool-f32.wgsl.expected.ir.fxc.hlsl b/test/tint/expressions/type_conv/vec2/literal/bool-f32.wgsl.expected.ir.fxc.hlsl
index 9acd2d7..61b917e 100644
--- a/test/tint/expressions/type_conv/vec2/literal/bool-f32.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/expressions/type_conv/vec2/literal/bool-f32.wgsl.expected.ir.fxc.hlsl
@@ -1,3 +1,5 @@
+
+static float2 u = (1.0f).xx;
 [numthreads(1, 1, 1)]
 void unused_entry_point() {
 }
diff --git a/test/tint/expressions/type_conv/vec2/literal/bool-i32.wgsl.expected.ir.dxc.hlsl b/test/tint/expressions/type_conv/vec2/literal/bool-i32.wgsl.expected.ir.dxc.hlsl
index 9acd2d7..8cef421 100644
--- a/test/tint/expressions/type_conv/vec2/literal/bool-i32.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/expressions/type_conv/vec2/literal/bool-i32.wgsl.expected.ir.dxc.hlsl
@@ -1,3 +1,5 @@
+
+static int2 u = (1).xx;
 [numthreads(1, 1, 1)]
 void unused_entry_point() {
 }
diff --git a/test/tint/expressions/type_conv/vec2/literal/bool-i32.wgsl.expected.ir.fxc.hlsl b/test/tint/expressions/type_conv/vec2/literal/bool-i32.wgsl.expected.ir.fxc.hlsl
index 9acd2d7..8cef421 100644
--- a/test/tint/expressions/type_conv/vec2/literal/bool-i32.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/expressions/type_conv/vec2/literal/bool-i32.wgsl.expected.ir.fxc.hlsl
@@ -1,3 +1,5 @@
+
+static int2 u = (1).xx;
 [numthreads(1, 1, 1)]
 void unused_entry_point() {
 }
diff --git a/test/tint/expressions/type_conv/vec2/literal/bool-u32.wgsl.expected.ir.dxc.hlsl b/test/tint/expressions/type_conv/vec2/literal/bool-u32.wgsl.expected.ir.dxc.hlsl
index 9acd2d7..bc577df 100644
--- a/test/tint/expressions/type_conv/vec2/literal/bool-u32.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/expressions/type_conv/vec2/literal/bool-u32.wgsl.expected.ir.dxc.hlsl
@@ -1,3 +1,5 @@
+
+static uint2 u = (1u).xx;
 [numthreads(1, 1, 1)]
 void unused_entry_point() {
 }
diff --git a/test/tint/expressions/type_conv/vec2/literal/bool-u32.wgsl.expected.ir.fxc.hlsl b/test/tint/expressions/type_conv/vec2/literal/bool-u32.wgsl.expected.ir.fxc.hlsl
index 9acd2d7..bc577df 100644
--- a/test/tint/expressions/type_conv/vec2/literal/bool-u32.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/expressions/type_conv/vec2/literal/bool-u32.wgsl.expected.ir.fxc.hlsl
@@ -1,3 +1,5 @@
+
+static uint2 u = (1u).xx;
 [numthreads(1, 1, 1)]
 void unused_entry_point() {
 }
diff --git a/test/tint/expressions/type_conv/vec2/literal/f16-bool.wgsl.expected.ir.dxc.hlsl b/test/tint/expressions/type_conv/vec2/literal/f16-bool.wgsl.expected.ir.dxc.hlsl
index 9acd2d7..77009d6 100644
--- a/test/tint/expressions/type_conv/vec2/literal/f16-bool.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/expressions/type_conv/vec2/literal/f16-bool.wgsl.expected.ir.dxc.hlsl
@@ -1,3 +1,5 @@
+
+static bool2 u = (true).xx;
 [numthreads(1, 1, 1)]
 void unused_entry_point() {
 }
diff --git a/test/tint/expressions/type_conv/vec2/literal/f16-bool.wgsl.expected.ir.fxc.hlsl b/test/tint/expressions/type_conv/vec2/literal/f16-bool.wgsl.expected.ir.fxc.hlsl
index 9acd2d7..77009d6 100644
--- a/test/tint/expressions/type_conv/vec2/literal/f16-bool.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/expressions/type_conv/vec2/literal/f16-bool.wgsl.expected.ir.fxc.hlsl
@@ -1,3 +1,5 @@
+
+static bool2 u = (true).xx;
 [numthreads(1, 1, 1)]
 void unused_entry_point() {
 }
diff --git a/test/tint/expressions/type_conv/vec2/literal/f16-f32.wgsl.expected.ir.dxc.hlsl b/test/tint/expressions/type_conv/vec2/literal/f16-f32.wgsl.expected.ir.dxc.hlsl
index 9acd2d7..61b917e 100644
--- a/test/tint/expressions/type_conv/vec2/literal/f16-f32.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/expressions/type_conv/vec2/literal/f16-f32.wgsl.expected.ir.dxc.hlsl
@@ -1,3 +1,5 @@
+
+static float2 u = (1.0f).xx;
 [numthreads(1, 1, 1)]
 void unused_entry_point() {
 }
diff --git a/test/tint/expressions/type_conv/vec2/literal/f16-f32.wgsl.expected.ir.fxc.hlsl b/test/tint/expressions/type_conv/vec2/literal/f16-f32.wgsl.expected.ir.fxc.hlsl
index 9acd2d7..61b917e 100644
--- a/test/tint/expressions/type_conv/vec2/literal/f16-f32.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/expressions/type_conv/vec2/literal/f16-f32.wgsl.expected.ir.fxc.hlsl
@@ -1,3 +1,5 @@
+
+static float2 u = (1.0f).xx;
 [numthreads(1, 1, 1)]
 void unused_entry_point() {
 }
diff --git a/test/tint/expressions/type_conv/vec2/literal/f16-i32.wgsl.expected.ir.dxc.hlsl b/test/tint/expressions/type_conv/vec2/literal/f16-i32.wgsl.expected.ir.dxc.hlsl
index 9acd2d7..8cef421 100644
--- a/test/tint/expressions/type_conv/vec2/literal/f16-i32.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/expressions/type_conv/vec2/literal/f16-i32.wgsl.expected.ir.dxc.hlsl
@@ -1,3 +1,5 @@
+
+static int2 u = (1).xx;
 [numthreads(1, 1, 1)]
 void unused_entry_point() {
 }
diff --git a/test/tint/expressions/type_conv/vec2/literal/f16-i32.wgsl.expected.ir.fxc.hlsl b/test/tint/expressions/type_conv/vec2/literal/f16-i32.wgsl.expected.ir.fxc.hlsl
index 9acd2d7..8cef421 100644
--- a/test/tint/expressions/type_conv/vec2/literal/f16-i32.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/expressions/type_conv/vec2/literal/f16-i32.wgsl.expected.ir.fxc.hlsl
@@ -1,3 +1,5 @@
+
+static int2 u = (1).xx;
 [numthreads(1, 1, 1)]
 void unused_entry_point() {
 }
diff --git a/test/tint/expressions/type_conv/vec2/literal/f16-u32.wgsl.expected.ir.dxc.hlsl b/test/tint/expressions/type_conv/vec2/literal/f16-u32.wgsl.expected.ir.dxc.hlsl
index 9acd2d7..bc577df 100644
--- a/test/tint/expressions/type_conv/vec2/literal/f16-u32.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/expressions/type_conv/vec2/literal/f16-u32.wgsl.expected.ir.dxc.hlsl
@@ -1,3 +1,5 @@
+
+static uint2 u = (1u).xx;
 [numthreads(1, 1, 1)]
 void unused_entry_point() {
 }
diff --git a/test/tint/expressions/type_conv/vec2/literal/f16-u32.wgsl.expected.ir.fxc.hlsl b/test/tint/expressions/type_conv/vec2/literal/f16-u32.wgsl.expected.ir.fxc.hlsl
index 9acd2d7..bc577df 100644
--- a/test/tint/expressions/type_conv/vec2/literal/f16-u32.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/expressions/type_conv/vec2/literal/f16-u32.wgsl.expected.ir.fxc.hlsl
@@ -1,3 +1,5 @@
+
+static uint2 u = (1u).xx;
 [numthreads(1, 1, 1)]
 void unused_entry_point() {
 }
diff --git a/test/tint/expressions/type_conv/vec2/literal/f32-bool.wgsl.expected.ir.dxc.hlsl b/test/tint/expressions/type_conv/vec2/literal/f32-bool.wgsl.expected.ir.dxc.hlsl
index 9acd2d7..77009d6 100644
--- a/test/tint/expressions/type_conv/vec2/literal/f32-bool.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/expressions/type_conv/vec2/literal/f32-bool.wgsl.expected.ir.dxc.hlsl
@@ -1,3 +1,5 @@
+
+static bool2 u = (true).xx;
 [numthreads(1, 1, 1)]
 void unused_entry_point() {
 }
diff --git a/test/tint/expressions/type_conv/vec2/literal/f32-bool.wgsl.expected.ir.fxc.hlsl b/test/tint/expressions/type_conv/vec2/literal/f32-bool.wgsl.expected.ir.fxc.hlsl
index 9acd2d7..77009d6 100644
--- a/test/tint/expressions/type_conv/vec2/literal/f32-bool.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/expressions/type_conv/vec2/literal/f32-bool.wgsl.expected.ir.fxc.hlsl
@@ -1,3 +1,5 @@
+
+static bool2 u = (true).xx;
 [numthreads(1, 1, 1)]
 void unused_entry_point() {
 }
diff --git a/test/tint/expressions/type_conv/vec2/literal/f32-f16.wgsl.expected.ir.dxc.hlsl b/test/tint/expressions/type_conv/vec2/literal/f32-f16.wgsl.expected.ir.dxc.hlsl
index 9acd2d7..bdc3590 100644
--- a/test/tint/expressions/type_conv/vec2/literal/f32-f16.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/expressions/type_conv/vec2/literal/f32-f16.wgsl.expected.ir.dxc.hlsl
@@ -1,3 +1,5 @@
+
+static vector<float16_t, 2> u = (float16_t(1.0h)).xx;
 [numthreads(1, 1, 1)]
 void unused_entry_point() {
 }
diff --git a/test/tint/expressions/type_conv/vec2/literal/f32-f16.wgsl.expected.ir.fxc.hlsl b/test/tint/expressions/type_conv/vec2/literal/f32-f16.wgsl.expected.ir.fxc.hlsl
index 9acd2d7..04447a8 100644
--- a/test/tint/expressions/type_conv/vec2/literal/f32-f16.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/expressions/type_conv/vec2/literal/f32-f16.wgsl.expected.ir.fxc.hlsl
@@ -1,4 +1,11 @@
+SKIP: FAILED
+
+
+static vector<float16_t, 2> u = (float16_t(1.0h)).xx;
 [numthreads(1, 1, 1)]
 void unused_entry_point() {
 }
 
+FXC validation failure:
+c:\src\dawn\Shader@0x000002935EE55980(2,15-23): error X3000: syntax error: unexpected token 'float16_t'
+
diff --git a/test/tint/expressions/type_conv/vec2/literal/f32-i32.wgsl.expected.ir.dxc.hlsl b/test/tint/expressions/type_conv/vec2/literal/f32-i32.wgsl.expected.ir.dxc.hlsl
index 9acd2d7..8cef421 100644
--- a/test/tint/expressions/type_conv/vec2/literal/f32-i32.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/expressions/type_conv/vec2/literal/f32-i32.wgsl.expected.ir.dxc.hlsl
@@ -1,3 +1,5 @@
+
+static int2 u = (1).xx;
 [numthreads(1, 1, 1)]
 void unused_entry_point() {
 }
diff --git a/test/tint/expressions/type_conv/vec2/literal/f32-i32.wgsl.expected.ir.fxc.hlsl b/test/tint/expressions/type_conv/vec2/literal/f32-i32.wgsl.expected.ir.fxc.hlsl
index 9acd2d7..8cef421 100644
--- a/test/tint/expressions/type_conv/vec2/literal/f32-i32.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/expressions/type_conv/vec2/literal/f32-i32.wgsl.expected.ir.fxc.hlsl
@@ -1,3 +1,5 @@
+
+static int2 u = (1).xx;
 [numthreads(1, 1, 1)]
 void unused_entry_point() {
 }
diff --git a/test/tint/expressions/type_conv/vec2/literal/f32-u32.wgsl.expected.ir.dxc.hlsl b/test/tint/expressions/type_conv/vec2/literal/f32-u32.wgsl.expected.ir.dxc.hlsl
index 9acd2d7..bc577df 100644
--- a/test/tint/expressions/type_conv/vec2/literal/f32-u32.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/expressions/type_conv/vec2/literal/f32-u32.wgsl.expected.ir.dxc.hlsl
@@ -1,3 +1,5 @@
+
+static uint2 u = (1u).xx;
 [numthreads(1, 1, 1)]
 void unused_entry_point() {
 }
diff --git a/test/tint/expressions/type_conv/vec2/literal/f32-u32.wgsl.expected.ir.fxc.hlsl b/test/tint/expressions/type_conv/vec2/literal/f32-u32.wgsl.expected.ir.fxc.hlsl
index 9acd2d7..bc577df 100644
--- a/test/tint/expressions/type_conv/vec2/literal/f32-u32.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/expressions/type_conv/vec2/literal/f32-u32.wgsl.expected.ir.fxc.hlsl
@@ -1,3 +1,5 @@
+
+static uint2 u = (1u).xx;
 [numthreads(1, 1, 1)]
 void unused_entry_point() {
 }
diff --git a/test/tint/expressions/type_conv/vec2/literal/i32-bool.wgsl.expected.ir.dxc.hlsl b/test/tint/expressions/type_conv/vec2/literal/i32-bool.wgsl.expected.ir.dxc.hlsl
index 9acd2d7..77009d6 100644
--- a/test/tint/expressions/type_conv/vec2/literal/i32-bool.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/expressions/type_conv/vec2/literal/i32-bool.wgsl.expected.ir.dxc.hlsl
@@ -1,3 +1,5 @@
+
+static bool2 u = (true).xx;
 [numthreads(1, 1, 1)]
 void unused_entry_point() {
 }
diff --git a/test/tint/expressions/type_conv/vec2/literal/i32-bool.wgsl.expected.ir.fxc.hlsl b/test/tint/expressions/type_conv/vec2/literal/i32-bool.wgsl.expected.ir.fxc.hlsl
index 9acd2d7..77009d6 100644
--- a/test/tint/expressions/type_conv/vec2/literal/i32-bool.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/expressions/type_conv/vec2/literal/i32-bool.wgsl.expected.ir.fxc.hlsl
@@ -1,3 +1,5 @@
+
+static bool2 u = (true).xx;
 [numthreads(1, 1, 1)]
 void unused_entry_point() {
 }
diff --git a/test/tint/expressions/type_conv/vec2/literal/i32-f16.wgsl.expected.ir.dxc.hlsl b/test/tint/expressions/type_conv/vec2/literal/i32-f16.wgsl.expected.ir.dxc.hlsl
index 9acd2d7..bdc3590 100644
--- a/test/tint/expressions/type_conv/vec2/literal/i32-f16.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/expressions/type_conv/vec2/literal/i32-f16.wgsl.expected.ir.dxc.hlsl
@@ -1,3 +1,5 @@
+
+static vector<float16_t, 2> u = (float16_t(1.0h)).xx;
 [numthreads(1, 1, 1)]
 void unused_entry_point() {
 }
diff --git a/test/tint/expressions/type_conv/vec2/literal/i32-f16.wgsl.expected.ir.fxc.hlsl b/test/tint/expressions/type_conv/vec2/literal/i32-f16.wgsl.expected.ir.fxc.hlsl
index 9acd2d7..0db9c83 100644
--- a/test/tint/expressions/type_conv/vec2/literal/i32-f16.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/expressions/type_conv/vec2/literal/i32-f16.wgsl.expected.ir.fxc.hlsl
@@ -1,4 +1,11 @@
+SKIP: FAILED
+
+
+static vector<float16_t, 2> u = (float16_t(1.0h)).xx;
 [numthreads(1, 1, 1)]
 void unused_entry_point() {
 }
 
+FXC validation failure:
+c:\src\dawn\Shader@0x00000271AD840450(2,15-23): error X3000: syntax error: unexpected token 'float16_t'
+
diff --git a/test/tint/expressions/type_conv/vec2/literal/i32-f32.wgsl.expected.ir.dxc.hlsl b/test/tint/expressions/type_conv/vec2/literal/i32-f32.wgsl.expected.ir.dxc.hlsl
index 9acd2d7..61b917e 100644
--- a/test/tint/expressions/type_conv/vec2/literal/i32-f32.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/expressions/type_conv/vec2/literal/i32-f32.wgsl.expected.ir.dxc.hlsl
@@ -1,3 +1,5 @@
+
+static float2 u = (1.0f).xx;
 [numthreads(1, 1, 1)]
 void unused_entry_point() {
 }
diff --git a/test/tint/expressions/type_conv/vec2/literal/i32-f32.wgsl.expected.ir.fxc.hlsl b/test/tint/expressions/type_conv/vec2/literal/i32-f32.wgsl.expected.ir.fxc.hlsl
index 9acd2d7..61b917e 100644
--- a/test/tint/expressions/type_conv/vec2/literal/i32-f32.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/expressions/type_conv/vec2/literal/i32-f32.wgsl.expected.ir.fxc.hlsl
@@ -1,3 +1,5 @@
+
+static float2 u = (1.0f).xx;
 [numthreads(1, 1, 1)]
 void unused_entry_point() {
 }
diff --git a/test/tint/expressions/type_conv/vec2/literal/i32-u32.wgsl.expected.ir.dxc.hlsl b/test/tint/expressions/type_conv/vec2/literal/i32-u32.wgsl.expected.ir.dxc.hlsl
index 9acd2d7..bc577df 100644
--- a/test/tint/expressions/type_conv/vec2/literal/i32-u32.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/expressions/type_conv/vec2/literal/i32-u32.wgsl.expected.ir.dxc.hlsl
@@ -1,3 +1,5 @@
+
+static uint2 u = (1u).xx;
 [numthreads(1, 1, 1)]
 void unused_entry_point() {
 }
diff --git a/test/tint/expressions/type_conv/vec2/literal/i32-u32.wgsl.expected.ir.fxc.hlsl b/test/tint/expressions/type_conv/vec2/literal/i32-u32.wgsl.expected.ir.fxc.hlsl
index 9acd2d7..bc577df 100644
--- a/test/tint/expressions/type_conv/vec2/literal/i32-u32.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/expressions/type_conv/vec2/literal/i32-u32.wgsl.expected.ir.fxc.hlsl
@@ -1,3 +1,5 @@
+
+static uint2 u = (1u).xx;
 [numthreads(1, 1, 1)]
 void unused_entry_point() {
 }
diff --git a/test/tint/expressions/type_conv/vec2/literal/u32-bool.wgsl.expected.ir.dxc.hlsl b/test/tint/expressions/type_conv/vec2/literal/u32-bool.wgsl.expected.ir.dxc.hlsl
index 9acd2d7..77009d6 100644
--- a/test/tint/expressions/type_conv/vec2/literal/u32-bool.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/expressions/type_conv/vec2/literal/u32-bool.wgsl.expected.ir.dxc.hlsl
@@ -1,3 +1,5 @@
+
+static bool2 u = (true).xx;
 [numthreads(1, 1, 1)]
 void unused_entry_point() {
 }
diff --git a/test/tint/expressions/type_conv/vec2/literal/u32-bool.wgsl.expected.ir.fxc.hlsl b/test/tint/expressions/type_conv/vec2/literal/u32-bool.wgsl.expected.ir.fxc.hlsl
index 9acd2d7..77009d6 100644
--- a/test/tint/expressions/type_conv/vec2/literal/u32-bool.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/expressions/type_conv/vec2/literal/u32-bool.wgsl.expected.ir.fxc.hlsl
@@ -1,3 +1,5 @@
+
+static bool2 u = (true).xx;
 [numthreads(1, 1, 1)]
 void unused_entry_point() {
 }
diff --git a/test/tint/expressions/type_conv/vec2/literal/u32-f16.wgsl.expected.ir.dxc.hlsl b/test/tint/expressions/type_conv/vec2/literal/u32-f16.wgsl.expected.ir.dxc.hlsl
index 9acd2d7..bdc3590 100644
--- a/test/tint/expressions/type_conv/vec2/literal/u32-f16.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/expressions/type_conv/vec2/literal/u32-f16.wgsl.expected.ir.dxc.hlsl
@@ -1,3 +1,5 @@
+
+static vector<float16_t, 2> u = (float16_t(1.0h)).xx;
 [numthreads(1, 1, 1)]
 void unused_entry_point() {
 }
diff --git a/test/tint/expressions/type_conv/vec2/literal/u32-f16.wgsl.expected.ir.fxc.hlsl b/test/tint/expressions/type_conv/vec2/literal/u32-f16.wgsl.expected.ir.fxc.hlsl
index 9acd2d7..391a4a7 100644
--- a/test/tint/expressions/type_conv/vec2/literal/u32-f16.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/expressions/type_conv/vec2/literal/u32-f16.wgsl.expected.ir.fxc.hlsl
@@ -1,4 +1,11 @@
+SKIP: FAILED
+
+
+static vector<float16_t, 2> u = (float16_t(1.0h)).xx;
 [numthreads(1, 1, 1)]
 void unused_entry_point() {
 }
 
+FXC validation failure:
+c:\src\dawn\Shader@0x000001B31360CD50(2,15-23): error X3000: syntax error: unexpected token 'float16_t'
+
diff --git a/test/tint/expressions/type_conv/vec2/literal/u32-f32.wgsl.expected.ir.dxc.hlsl b/test/tint/expressions/type_conv/vec2/literal/u32-f32.wgsl.expected.ir.dxc.hlsl
index 9acd2d7..61b917e 100644
--- a/test/tint/expressions/type_conv/vec2/literal/u32-f32.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/expressions/type_conv/vec2/literal/u32-f32.wgsl.expected.ir.dxc.hlsl
@@ -1,3 +1,5 @@
+
+static float2 u = (1.0f).xx;
 [numthreads(1, 1, 1)]
 void unused_entry_point() {
 }
diff --git a/test/tint/expressions/type_conv/vec2/literal/u32-f32.wgsl.expected.ir.fxc.hlsl b/test/tint/expressions/type_conv/vec2/literal/u32-f32.wgsl.expected.ir.fxc.hlsl
index 9acd2d7..61b917e 100644
--- a/test/tint/expressions/type_conv/vec2/literal/u32-f32.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/expressions/type_conv/vec2/literal/u32-f32.wgsl.expected.ir.fxc.hlsl
@@ -1,3 +1,5 @@
+
+static float2 u = (1.0f).xx;
 [numthreads(1, 1, 1)]
 void unused_entry_point() {
 }
diff --git a/test/tint/expressions/type_conv/vec2/literal/u32-i32.wgsl.expected.ir.dxc.hlsl b/test/tint/expressions/type_conv/vec2/literal/u32-i32.wgsl.expected.ir.dxc.hlsl
index 9acd2d7..8cef421 100644
--- a/test/tint/expressions/type_conv/vec2/literal/u32-i32.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/expressions/type_conv/vec2/literal/u32-i32.wgsl.expected.ir.dxc.hlsl
@@ -1,3 +1,5 @@
+
+static int2 u = (1).xx;
 [numthreads(1, 1, 1)]
 void unused_entry_point() {
 }
diff --git a/test/tint/expressions/type_conv/vec2/literal/u32-i32.wgsl.expected.ir.fxc.hlsl b/test/tint/expressions/type_conv/vec2/literal/u32-i32.wgsl.expected.ir.fxc.hlsl
index 9acd2d7..8cef421 100644
--- a/test/tint/expressions/type_conv/vec2/literal/u32-i32.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/expressions/type_conv/vec2/literal/u32-i32.wgsl.expected.ir.fxc.hlsl
@@ -1,3 +1,5 @@
+
+static int2 u = (1).xx;
 [numthreads(1, 1, 1)]
 void unused_entry_point() {
 }
diff --git a/test/tint/expressions/type_conv/vec2/var/bool-f16.wgsl.expected.ir.dxc.hlsl b/test/tint/expressions/type_conv/vec2/var/bool-f16.wgsl.expected.ir.dxc.hlsl
index 48e23f4..f16e3a1 100644
--- a/test/tint/expressions/type_conv/vec2/var/bool-f16.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/expressions/type_conv/vec2/var/bool-f16.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,10 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Convert
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+static bool2 u = (true).xx;
+void f() {
+  vector<float16_t, 2> v = vector<float16_t, 2>(u);
+}
+
+[numthreads(1, 1, 1)]
+void unused_entry_point() {
+}
+
diff --git a/test/tint/expressions/type_conv/vec2/var/bool-f16.wgsl.expected.ir.fxc.hlsl b/test/tint/expressions/type_conv/vec2/var/bool-f16.wgsl.expected.ir.fxc.hlsl
index 48e23f4..0db784b 100644
--- a/test/tint/expressions/type_conv/vec2/var/bool-f16.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/expressions/type_conv/vec2/var/bool-f16.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,15 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Convert
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+
+static bool2 u = (true).xx;
+void f() {
+  vector<float16_t, 2> v = vector<float16_t, 2>(u);
+}
+
+[numthreads(1, 1, 1)]
+void unused_entry_point() {
+}
+
+FXC validation failure:
+c:\src\dawn\Shader@0x000002070F6E70A0(4,10-18): error X3000: syntax error: unexpected token 'float16_t'
+
diff --git a/test/tint/expressions/type_conv/vec2/var/bool-f32.wgsl.expected.ir.dxc.hlsl b/test/tint/expressions/type_conv/vec2/var/bool-f32.wgsl.expected.ir.dxc.hlsl
index 48e23f4..0d5f022 100644
--- a/test/tint/expressions/type_conv/vec2/var/bool-f32.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/expressions/type_conv/vec2/var/bool-f32.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,10 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Convert
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+static bool2 u = (true).xx;
+void f() {
+  float2 v = float2(u);
+}
+
+[numthreads(1, 1, 1)]
+void unused_entry_point() {
+}
+
diff --git a/test/tint/expressions/type_conv/vec2/var/bool-f32.wgsl.expected.ir.fxc.hlsl b/test/tint/expressions/type_conv/vec2/var/bool-f32.wgsl.expected.ir.fxc.hlsl
index 48e23f4..0d5f022 100644
--- a/test/tint/expressions/type_conv/vec2/var/bool-f32.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/expressions/type_conv/vec2/var/bool-f32.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,10 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Convert
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+static bool2 u = (true).xx;
+void f() {
+  float2 v = float2(u);
+}
+
+[numthreads(1, 1, 1)]
+void unused_entry_point() {
+}
+
diff --git a/test/tint/expressions/type_conv/vec2/var/bool-i32.wgsl.expected.ir.dxc.hlsl b/test/tint/expressions/type_conv/vec2/var/bool-i32.wgsl.expected.ir.dxc.hlsl
index 48e23f4..d89e2c5 100644
--- a/test/tint/expressions/type_conv/vec2/var/bool-i32.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/expressions/type_conv/vec2/var/bool-i32.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,10 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Convert
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+static bool2 u = (true).xx;
+void f() {
+  int2 v = int2(u);
+}
+
+[numthreads(1, 1, 1)]
+void unused_entry_point() {
+}
+
diff --git a/test/tint/expressions/type_conv/vec2/var/bool-i32.wgsl.expected.ir.fxc.hlsl b/test/tint/expressions/type_conv/vec2/var/bool-i32.wgsl.expected.ir.fxc.hlsl
index 48e23f4..d89e2c5 100644
--- a/test/tint/expressions/type_conv/vec2/var/bool-i32.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/expressions/type_conv/vec2/var/bool-i32.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,10 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Convert
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+static bool2 u = (true).xx;
+void f() {
+  int2 v = int2(u);
+}
+
+[numthreads(1, 1, 1)]
+void unused_entry_point() {
+}
+
diff --git a/test/tint/expressions/type_conv/vec2/var/bool-u32.wgsl.expected.ir.dxc.hlsl b/test/tint/expressions/type_conv/vec2/var/bool-u32.wgsl.expected.ir.dxc.hlsl
index 48e23f4..65a8568 100644
--- a/test/tint/expressions/type_conv/vec2/var/bool-u32.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/expressions/type_conv/vec2/var/bool-u32.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,10 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Convert
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+static bool2 u = (true).xx;
+void f() {
+  uint2 v = uint2(u);
+}
+
+[numthreads(1, 1, 1)]
+void unused_entry_point() {
+}
+
diff --git a/test/tint/expressions/type_conv/vec2/var/bool-u32.wgsl.expected.ir.fxc.hlsl b/test/tint/expressions/type_conv/vec2/var/bool-u32.wgsl.expected.ir.fxc.hlsl
index 48e23f4..65a8568 100644
--- a/test/tint/expressions/type_conv/vec2/var/bool-u32.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/expressions/type_conv/vec2/var/bool-u32.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,10 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Convert
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+static bool2 u = (true).xx;
+void f() {
+  uint2 v = uint2(u);
+}
+
+[numthreads(1, 1, 1)]
+void unused_entry_point() {
+}
+
diff --git a/test/tint/expressions/type_conv/vec2/var/f16-bool.wgsl.expected.ir.dxc.hlsl b/test/tint/expressions/type_conv/vec2/var/f16-bool.wgsl.expected.ir.dxc.hlsl
index 48e23f4..6b77c98 100644
--- a/test/tint/expressions/type_conv/vec2/var/f16-bool.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/expressions/type_conv/vec2/var/f16-bool.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,10 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Convert
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+static vector<float16_t, 2> u = (float16_t(1.0h)).xx;
+void f() {
+  bool2 v = bool2(u);
+}
+
+[numthreads(1, 1, 1)]
+void unused_entry_point() {
+}
+
diff --git a/test/tint/expressions/type_conv/vec2/var/f16-bool.wgsl.expected.ir.fxc.hlsl b/test/tint/expressions/type_conv/vec2/var/f16-bool.wgsl.expected.ir.fxc.hlsl
index 48e23f4..feebc72 100644
--- a/test/tint/expressions/type_conv/vec2/var/f16-bool.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/expressions/type_conv/vec2/var/f16-bool.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,15 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Convert
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+
+static vector<float16_t, 2> u = (float16_t(1.0h)).xx;
+void f() {
+  bool2 v = bool2(u);
+}
+
+[numthreads(1, 1, 1)]
+void unused_entry_point() {
+}
+
+FXC validation failure:
+c:\src\dawn\Shader@0x0000019F5F7076D0(2,15-23): error X3000: syntax error: unexpected token 'float16_t'
+
diff --git a/test/tint/expressions/type_conv/vec2/var/f16-f32.wgsl.expected.ir.dxc.hlsl b/test/tint/expressions/type_conv/vec2/var/f16-f32.wgsl.expected.ir.dxc.hlsl
index 48e23f4..786cea5 100644
--- a/test/tint/expressions/type_conv/vec2/var/f16-f32.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/expressions/type_conv/vec2/var/f16-f32.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,10 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Convert
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+static vector<float16_t, 2> u = (float16_t(1.0h)).xx;
+void f() {
+  float2 v = float2(u);
+}
+
+[numthreads(1, 1, 1)]
+void unused_entry_point() {
+}
+
diff --git a/test/tint/expressions/type_conv/vec2/var/f16-f32.wgsl.expected.ir.fxc.hlsl b/test/tint/expressions/type_conv/vec2/var/f16-f32.wgsl.expected.ir.fxc.hlsl
index 48e23f4..088a842 100644
--- a/test/tint/expressions/type_conv/vec2/var/f16-f32.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/expressions/type_conv/vec2/var/f16-f32.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,15 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Convert
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+
+static vector<float16_t, 2> u = (float16_t(1.0h)).xx;
+void f() {
+  float2 v = float2(u);
+}
+
+[numthreads(1, 1, 1)]
+void unused_entry_point() {
+}
+
+FXC validation failure:
+c:\src\dawn\Shader@0x00000221B10C5980(2,15-23): error X3000: syntax error: unexpected token 'float16_t'
+
diff --git a/test/tint/expressions/type_conv/vec2/var/f16-i32.wgsl.expected.ir.dxc.hlsl b/test/tint/expressions/type_conv/vec2/var/f16-i32.wgsl.expected.ir.dxc.hlsl
index 48e23f4..ab593e6 100644
--- a/test/tint/expressions/type_conv/vec2/var/f16-i32.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/expressions/type_conv/vec2/var/f16-i32.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,14 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Convert
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+static vector<float16_t, 2> u = (float16_t(1.0h)).xx;
+int2 tint_v2f16_to_v2i32(vector<float16_t, 2> value) {
+  return (((value <= (float16_t(65504.0h)).xx)) ? ((((value >= (float16_t(-65504.0h)).xx)) ? (int2(value)) : ((-2147483648).xx))) : ((2147483647).xx));
+}
+
+void f() {
+  int2 v = tint_v2f16_to_v2i32(u);
+}
+
+[numthreads(1, 1, 1)]
+void unused_entry_point() {
+}
+
diff --git a/test/tint/expressions/type_conv/vec2/var/f16-i32.wgsl.expected.ir.fxc.hlsl b/test/tint/expressions/type_conv/vec2/var/f16-i32.wgsl.expected.ir.fxc.hlsl
index 48e23f4..f2faab6 100644
--- a/test/tint/expressions/type_conv/vec2/var/f16-i32.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/expressions/type_conv/vec2/var/f16-i32.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,19 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Convert
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+
+static vector<float16_t, 2> u = (float16_t(1.0h)).xx;
+int2 tint_v2f16_to_v2i32(vector<float16_t, 2> value) {
+  return (((value <= (float16_t(65504.0h)).xx)) ? ((((value >= (float16_t(-65504.0h)).xx)) ? (int2(value)) : ((-2147483648).xx))) : ((2147483647).xx));
+}
+
+void f() {
+  int2 v = tint_v2f16_to_v2i32(u);
+}
+
+[numthreads(1, 1, 1)]
+void unused_entry_point() {
+}
+
+FXC validation failure:
+c:\src\dawn\Shader@0x000002ACAC545C70(2,15-23): error X3000: syntax error: unexpected token 'float16_t'
+
diff --git a/test/tint/expressions/type_conv/vec2/var/f16-u32.wgsl.expected.ir.dxc.hlsl b/test/tint/expressions/type_conv/vec2/var/f16-u32.wgsl.expected.ir.dxc.hlsl
index 48e23f4..889426a 100644
--- a/test/tint/expressions/type_conv/vec2/var/f16-u32.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/expressions/type_conv/vec2/var/f16-u32.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,14 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Convert
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+static vector<float16_t, 2> u = (float16_t(1.0h)).xx;
+uint2 tint_v2f16_to_v2u32(vector<float16_t, 2> value) {
+  return (((value <= (float16_t(65504.0h)).xx)) ? ((((value >= (float16_t(0.0h)).xx)) ? (uint2(value)) : ((0u).xx))) : ((4294967295u).xx));
+}
+
+void f() {
+  uint2 v = tint_v2f16_to_v2u32(u);
+}
+
+[numthreads(1, 1, 1)]
+void unused_entry_point() {
+}
+
diff --git a/test/tint/expressions/type_conv/vec2/var/f16-u32.wgsl.expected.ir.fxc.hlsl b/test/tint/expressions/type_conv/vec2/var/f16-u32.wgsl.expected.ir.fxc.hlsl
index 48e23f4..e27d52b 100644
--- a/test/tint/expressions/type_conv/vec2/var/f16-u32.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/expressions/type_conv/vec2/var/f16-u32.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,19 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Convert
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+
+static vector<float16_t, 2> u = (float16_t(1.0h)).xx;
+uint2 tint_v2f16_to_v2u32(vector<float16_t, 2> value) {
+  return (((value <= (float16_t(65504.0h)).xx)) ? ((((value >= (float16_t(0.0h)).xx)) ? (uint2(value)) : ((0u).xx))) : ((4294967295u).xx));
+}
+
+void f() {
+  uint2 v = tint_v2f16_to_v2u32(u);
+}
+
+[numthreads(1, 1, 1)]
+void unused_entry_point() {
+}
+
+FXC validation failure:
+c:\src\dawn\Shader@0x00000187779F5B80(2,15-23): error X3000: syntax error: unexpected token 'float16_t'
+
diff --git a/test/tint/expressions/type_conv/vec2/var/f32-bool.wgsl.expected.ir.dxc.hlsl b/test/tint/expressions/type_conv/vec2/var/f32-bool.wgsl.expected.ir.dxc.hlsl
index 48e23f4..a47bb72 100644
--- a/test/tint/expressions/type_conv/vec2/var/f32-bool.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/expressions/type_conv/vec2/var/f32-bool.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,10 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Convert
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+static float2 u = (1.0f).xx;
+void f() {
+  bool2 v = bool2(u);
+}
+
+[numthreads(1, 1, 1)]
+void unused_entry_point() {
+}
+
diff --git a/test/tint/expressions/type_conv/vec2/var/f32-bool.wgsl.expected.ir.fxc.hlsl b/test/tint/expressions/type_conv/vec2/var/f32-bool.wgsl.expected.ir.fxc.hlsl
index 48e23f4..a47bb72 100644
--- a/test/tint/expressions/type_conv/vec2/var/f32-bool.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/expressions/type_conv/vec2/var/f32-bool.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,10 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Convert
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+static float2 u = (1.0f).xx;
+void f() {
+  bool2 v = bool2(u);
+}
+
+[numthreads(1, 1, 1)]
+void unused_entry_point() {
+}
+
diff --git a/test/tint/expressions/type_conv/vec2/var/f32-f16.wgsl.expected.ir.dxc.hlsl b/test/tint/expressions/type_conv/vec2/var/f32-f16.wgsl.expected.ir.dxc.hlsl
index 48e23f4..fb38281 100644
--- a/test/tint/expressions/type_conv/vec2/var/f32-f16.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/expressions/type_conv/vec2/var/f32-f16.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,10 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Convert
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+static float2 u = (1.0f).xx;
+void f() {
+  vector<float16_t, 2> v = vector<float16_t, 2>(u);
+}
+
+[numthreads(1, 1, 1)]
+void unused_entry_point() {
+}
+
diff --git a/test/tint/expressions/type_conv/vec2/var/f32-f16.wgsl.expected.ir.fxc.hlsl b/test/tint/expressions/type_conv/vec2/var/f32-f16.wgsl.expected.ir.fxc.hlsl
index 48e23f4..c1bfd31 100644
--- a/test/tint/expressions/type_conv/vec2/var/f32-f16.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/expressions/type_conv/vec2/var/f32-f16.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,15 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Convert
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+
+static float2 u = (1.0f).xx;
+void f() {
+  vector<float16_t, 2> v = vector<float16_t, 2>(u);
+}
+
+[numthreads(1, 1, 1)]
+void unused_entry_point() {
+}
+
+FXC validation failure:
+c:\src\dawn\Shader@0x000001A81E115980(4,10-18): error X3000: syntax error: unexpected token 'float16_t'
+
diff --git a/test/tint/expressions/type_conv/vec2/var/f32-i32.wgsl.expected.ir.dxc.hlsl b/test/tint/expressions/type_conv/vec2/var/f32-i32.wgsl.expected.ir.dxc.hlsl
index 48e23f4..fbe9691 100644
--- a/test/tint/expressions/type_conv/vec2/var/f32-i32.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/expressions/type_conv/vec2/var/f32-i32.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,14 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Convert
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+static float2 u = (1.0f).xx;
+int2 tint_v2f32_to_v2i32(float2 value) {
+  return (((value <= (2147483520.0f).xx)) ? ((((value >= (-2147483648.0f).xx)) ? (int2(value)) : ((-2147483648).xx))) : ((2147483647).xx));
+}
+
+void f() {
+  int2 v = tint_v2f32_to_v2i32(u);
+}
+
+[numthreads(1, 1, 1)]
+void unused_entry_point() {
+}
+
diff --git a/test/tint/expressions/type_conv/vec2/var/f32-i32.wgsl.expected.ir.fxc.hlsl b/test/tint/expressions/type_conv/vec2/var/f32-i32.wgsl.expected.ir.fxc.hlsl
index 48e23f4..fbe9691 100644
--- a/test/tint/expressions/type_conv/vec2/var/f32-i32.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/expressions/type_conv/vec2/var/f32-i32.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,14 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Convert
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+static float2 u = (1.0f).xx;
+int2 tint_v2f32_to_v2i32(float2 value) {
+  return (((value <= (2147483520.0f).xx)) ? ((((value >= (-2147483648.0f).xx)) ? (int2(value)) : ((-2147483648).xx))) : ((2147483647).xx));
+}
+
+void f() {
+  int2 v = tint_v2f32_to_v2i32(u);
+}
+
+[numthreads(1, 1, 1)]
+void unused_entry_point() {
+}
+
diff --git a/test/tint/expressions/type_conv/vec2/var/f32-u32.wgsl.expected.ir.dxc.hlsl b/test/tint/expressions/type_conv/vec2/var/f32-u32.wgsl.expected.ir.dxc.hlsl
index 48e23f4..653662a 100644
--- a/test/tint/expressions/type_conv/vec2/var/f32-u32.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/expressions/type_conv/vec2/var/f32-u32.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,14 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Convert
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+static float2 u = (1.0f).xx;
+uint2 tint_v2f32_to_v2u32(float2 value) {
+  return (((value <= (4294967040.0f).xx)) ? ((((value >= (0.0f).xx)) ? (uint2(value)) : ((0u).xx))) : ((4294967295u).xx));
+}
+
+void f() {
+  uint2 v = tint_v2f32_to_v2u32(u);
+}
+
+[numthreads(1, 1, 1)]
+void unused_entry_point() {
+}
+
diff --git a/test/tint/expressions/type_conv/vec2/var/f32-u32.wgsl.expected.ir.fxc.hlsl b/test/tint/expressions/type_conv/vec2/var/f32-u32.wgsl.expected.ir.fxc.hlsl
index 48e23f4..653662a 100644
--- a/test/tint/expressions/type_conv/vec2/var/f32-u32.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/expressions/type_conv/vec2/var/f32-u32.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,14 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Convert
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+static float2 u = (1.0f).xx;
+uint2 tint_v2f32_to_v2u32(float2 value) {
+  return (((value <= (4294967040.0f).xx)) ? ((((value >= (0.0f).xx)) ? (uint2(value)) : ((0u).xx))) : ((4294967295u).xx));
+}
+
+void f() {
+  uint2 v = tint_v2f32_to_v2u32(u);
+}
+
+[numthreads(1, 1, 1)]
+void unused_entry_point() {
+}
+
diff --git a/test/tint/expressions/type_conv/vec2/var/i32-bool.wgsl.expected.ir.dxc.hlsl b/test/tint/expressions/type_conv/vec2/var/i32-bool.wgsl.expected.ir.dxc.hlsl
index 48e23f4..6e68964 100644
--- a/test/tint/expressions/type_conv/vec2/var/i32-bool.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/expressions/type_conv/vec2/var/i32-bool.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,10 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Convert
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+static int2 u = (1).xx;
+void f() {
+  bool2 v = bool2(u);
+}
+
+[numthreads(1, 1, 1)]
+void unused_entry_point() {
+}
+
diff --git a/test/tint/expressions/type_conv/vec2/var/i32-bool.wgsl.expected.ir.fxc.hlsl b/test/tint/expressions/type_conv/vec2/var/i32-bool.wgsl.expected.ir.fxc.hlsl
index 48e23f4..6e68964 100644
--- a/test/tint/expressions/type_conv/vec2/var/i32-bool.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/expressions/type_conv/vec2/var/i32-bool.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,10 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Convert
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+static int2 u = (1).xx;
+void f() {
+  bool2 v = bool2(u);
+}
+
+[numthreads(1, 1, 1)]
+void unused_entry_point() {
+}
+
diff --git a/test/tint/expressions/type_conv/vec2/var/i32-f16.wgsl.expected.ir.dxc.hlsl b/test/tint/expressions/type_conv/vec2/var/i32-f16.wgsl.expected.ir.dxc.hlsl
index 48e23f4..5502dc7 100644
--- a/test/tint/expressions/type_conv/vec2/var/i32-f16.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/expressions/type_conv/vec2/var/i32-f16.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,10 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Convert
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+static int2 u = (1).xx;
+void f() {
+  vector<float16_t, 2> v = vector<float16_t, 2>(u);
+}
+
+[numthreads(1, 1, 1)]
+void unused_entry_point() {
+}
+
diff --git a/test/tint/expressions/type_conv/vec2/var/i32-f16.wgsl.expected.ir.fxc.hlsl b/test/tint/expressions/type_conv/vec2/var/i32-f16.wgsl.expected.ir.fxc.hlsl
index 48e23f4..6737a31 100644
--- a/test/tint/expressions/type_conv/vec2/var/i32-f16.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/expressions/type_conv/vec2/var/i32-f16.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,15 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Convert
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+
+static int2 u = (1).xx;
+void f() {
+  vector<float16_t, 2> v = vector<float16_t, 2>(u);
+}
+
+[numthreads(1, 1, 1)]
+void unused_entry_point() {
+}
+
+FXC validation failure:
+c:\src\dawn\Shader@0x000001FC574F5290(4,10-18): error X3000: syntax error: unexpected token 'float16_t'
+
diff --git a/test/tint/expressions/type_conv/vec2/var/i32-f32.wgsl.expected.ir.dxc.hlsl b/test/tint/expressions/type_conv/vec2/var/i32-f32.wgsl.expected.ir.dxc.hlsl
index 48e23f4..d1c9c6c 100644
--- a/test/tint/expressions/type_conv/vec2/var/i32-f32.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/expressions/type_conv/vec2/var/i32-f32.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,10 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Convert
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+static int2 u = (1).xx;
+void f() {
+  float2 v = float2(u);
+}
+
+[numthreads(1, 1, 1)]
+void unused_entry_point() {
+}
+
diff --git a/test/tint/expressions/type_conv/vec2/var/i32-f32.wgsl.expected.ir.fxc.hlsl b/test/tint/expressions/type_conv/vec2/var/i32-f32.wgsl.expected.ir.fxc.hlsl
index 48e23f4..d1c9c6c 100644
--- a/test/tint/expressions/type_conv/vec2/var/i32-f32.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/expressions/type_conv/vec2/var/i32-f32.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,10 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Convert
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+static int2 u = (1).xx;
+void f() {
+  float2 v = float2(u);
+}
+
+[numthreads(1, 1, 1)]
+void unused_entry_point() {
+}
+
diff --git a/test/tint/expressions/type_conv/vec2/var/i32-u32.wgsl.expected.ir.dxc.hlsl b/test/tint/expressions/type_conv/vec2/var/i32-u32.wgsl.expected.ir.dxc.hlsl
index 48e23f4..8448469 100644
--- a/test/tint/expressions/type_conv/vec2/var/i32-u32.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/expressions/type_conv/vec2/var/i32-u32.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,10 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Convert
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+static int2 u = (1).xx;
+void f() {
+  uint2 v = uint2(u);
+}
+
+[numthreads(1, 1, 1)]
+void unused_entry_point() {
+}
+
diff --git a/test/tint/expressions/type_conv/vec2/var/i32-u32.wgsl.expected.ir.fxc.hlsl b/test/tint/expressions/type_conv/vec2/var/i32-u32.wgsl.expected.ir.fxc.hlsl
index 48e23f4..8448469 100644
--- a/test/tint/expressions/type_conv/vec2/var/i32-u32.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/expressions/type_conv/vec2/var/i32-u32.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,10 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Convert
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+static int2 u = (1).xx;
+void f() {
+  uint2 v = uint2(u);
+}
+
+[numthreads(1, 1, 1)]
+void unused_entry_point() {
+}
+
diff --git a/test/tint/expressions/type_conv/vec2/var/u32-bool.wgsl.expected.ir.dxc.hlsl b/test/tint/expressions/type_conv/vec2/var/u32-bool.wgsl.expected.ir.dxc.hlsl
index 48e23f4..bbba1d7 100644
--- a/test/tint/expressions/type_conv/vec2/var/u32-bool.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/expressions/type_conv/vec2/var/u32-bool.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,10 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Convert
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+static uint2 u = (1u).xx;
+void f() {
+  bool2 v = bool2(u);
+}
+
+[numthreads(1, 1, 1)]
+void unused_entry_point() {
+}
+
diff --git a/test/tint/expressions/type_conv/vec2/var/u32-bool.wgsl.expected.ir.fxc.hlsl b/test/tint/expressions/type_conv/vec2/var/u32-bool.wgsl.expected.ir.fxc.hlsl
index 48e23f4..bbba1d7 100644
--- a/test/tint/expressions/type_conv/vec2/var/u32-bool.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/expressions/type_conv/vec2/var/u32-bool.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,10 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Convert
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+static uint2 u = (1u).xx;
+void f() {
+  bool2 v = bool2(u);
+}
+
+[numthreads(1, 1, 1)]
+void unused_entry_point() {
+}
+
diff --git a/test/tint/expressions/type_conv/vec2/var/u32-f16.wgsl.expected.ir.dxc.hlsl b/test/tint/expressions/type_conv/vec2/var/u32-f16.wgsl.expected.ir.dxc.hlsl
index 48e23f4..c4bbdb2 100644
--- a/test/tint/expressions/type_conv/vec2/var/u32-f16.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/expressions/type_conv/vec2/var/u32-f16.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,10 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Convert
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+static uint2 u = (1u).xx;
+void f() {
+  vector<float16_t, 2> v = vector<float16_t, 2>(u);
+}
+
+[numthreads(1, 1, 1)]
+void unused_entry_point() {
+}
+
diff --git a/test/tint/expressions/type_conv/vec2/var/u32-f16.wgsl.expected.ir.fxc.hlsl b/test/tint/expressions/type_conv/vec2/var/u32-f16.wgsl.expected.ir.fxc.hlsl
index 48e23f4..781a66c 100644
--- a/test/tint/expressions/type_conv/vec2/var/u32-f16.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/expressions/type_conv/vec2/var/u32-f16.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,15 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Convert
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+
+static uint2 u = (1u).xx;
+void f() {
+  vector<float16_t, 2> v = vector<float16_t, 2>(u);
+}
+
+[numthreads(1, 1, 1)]
+void unused_entry_point() {
+}
+
+FXC validation failure:
+c:\src\dawn\Shader@0x0000019DF37B5980(4,10-18): error X3000: syntax error: unexpected token 'float16_t'
+
diff --git a/test/tint/expressions/type_conv/vec2/var/u32-f32.wgsl.expected.ir.dxc.hlsl b/test/tint/expressions/type_conv/vec2/var/u32-f32.wgsl.expected.ir.dxc.hlsl
index 48e23f4..bef6380 100644
--- a/test/tint/expressions/type_conv/vec2/var/u32-f32.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/expressions/type_conv/vec2/var/u32-f32.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,10 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Convert
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+static uint2 u = (1u).xx;
+void f() {
+  float2 v = float2(u);
+}
+
+[numthreads(1, 1, 1)]
+void unused_entry_point() {
+}
+
diff --git a/test/tint/expressions/type_conv/vec2/var/u32-f32.wgsl.expected.ir.fxc.hlsl b/test/tint/expressions/type_conv/vec2/var/u32-f32.wgsl.expected.ir.fxc.hlsl
index 48e23f4..bef6380 100644
--- a/test/tint/expressions/type_conv/vec2/var/u32-f32.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/expressions/type_conv/vec2/var/u32-f32.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,10 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Convert
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+static uint2 u = (1u).xx;
+void f() {
+  float2 v = float2(u);
+}
+
+[numthreads(1, 1, 1)]
+void unused_entry_point() {
+}
+
diff --git a/test/tint/expressions/type_conv/vec2/var/u32-i32.wgsl.expected.ir.dxc.hlsl b/test/tint/expressions/type_conv/vec2/var/u32-i32.wgsl.expected.ir.dxc.hlsl
index 48e23f4..7eb48f6 100644
--- a/test/tint/expressions/type_conv/vec2/var/u32-i32.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/expressions/type_conv/vec2/var/u32-i32.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,10 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Convert
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+static uint2 u = (1u).xx;
+void f() {
+  int2 v = int2(u);
+}
+
+[numthreads(1, 1, 1)]
+void unused_entry_point() {
+}
+
diff --git a/test/tint/expressions/type_conv/vec2/var/u32-i32.wgsl.expected.ir.fxc.hlsl b/test/tint/expressions/type_conv/vec2/var/u32-i32.wgsl.expected.ir.fxc.hlsl
index 48e23f4..7eb48f6 100644
--- a/test/tint/expressions/type_conv/vec2/var/u32-i32.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/expressions/type_conv/vec2/var/u32-i32.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,10 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Convert
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+static uint2 u = (1u).xx;
+void f() {
+  int2 v = int2(u);
+}
+
+[numthreads(1, 1, 1)]
+void unused_entry_point() {
+}
+
diff --git a/test/tint/expressions/type_conv/vec3/function/bool-f16.wgsl.expected.ir.dxc.hlsl b/test/tint/expressions/type_conv/vec3/function/bool-f16.wgsl.expected.ir.dxc.hlsl
index c6e1d96..14f4126 100644
--- a/test/tint/expressions/type_conv/vec3/function/bool-f16.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/expressions/type_conv/vec3/function/bool-f16.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,15 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Construct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+static bool t = false;
+bool3 m() {
+  t = true;
+  return bool3((t).xxx);
+}
+
+void f() {
+  vector<float16_t, 3> v = vector<float16_t, 3>(m());
+}
+
+[numthreads(1, 1, 1)]
+void unused_entry_point() {
+}
+
diff --git a/test/tint/expressions/type_conv/vec3/function/bool-f16.wgsl.expected.ir.fxc.hlsl b/test/tint/expressions/type_conv/vec3/function/bool-f16.wgsl.expected.ir.fxc.hlsl
index c6e1d96..36b865d 100644
--- a/test/tint/expressions/type_conv/vec3/function/bool-f16.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/expressions/type_conv/vec3/function/bool-f16.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,20 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Construct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+
+static bool t = false;
+bool3 m() {
+  t = true;
+  return bool3((t).xxx);
+}
+
+void f() {
+  vector<float16_t, 3> v = vector<float16_t, 3>(m());
+}
+
+[numthreads(1, 1, 1)]
+void unused_entry_point() {
+}
+
+FXC validation failure:
+c:\src\dawn\Shader@0x000001A76A4BF280(9,10-18): error X3000: syntax error: unexpected token 'float16_t'
+
diff --git a/test/tint/expressions/type_conv/vec3/function/bool-f32.wgsl.expected.ir.dxc.hlsl b/test/tint/expressions/type_conv/vec3/function/bool-f32.wgsl.expected.ir.dxc.hlsl
index c6e1d96..76cf713 100644
--- a/test/tint/expressions/type_conv/vec3/function/bool-f32.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/expressions/type_conv/vec3/function/bool-f32.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,15 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Construct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+static bool t = false;
+bool3 m() {
+  t = true;
+  return bool3((t).xxx);
+}
+
+void f() {
+  float3 v = float3(m());
+}
+
+[numthreads(1, 1, 1)]
+void unused_entry_point() {
+}
+
diff --git a/test/tint/expressions/type_conv/vec3/function/bool-f32.wgsl.expected.ir.fxc.hlsl b/test/tint/expressions/type_conv/vec3/function/bool-f32.wgsl.expected.ir.fxc.hlsl
index c6e1d96..76cf713 100644
--- a/test/tint/expressions/type_conv/vec3/function/bool-f32.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/expressions/type_conv/vec3/function/bool-f32.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,15 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Construct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+static bool t = false;
+bool3 m() {
+  t = true;
+  return bool3((t).xxx);
+}
+
+void f() {
+  float3 v = float3(m());
+}
+
+[numthreads(1, 1, 1)]
+void unused_entry_point() {
+}
+
diff --git a/test/tint/expressions/type_conv/vec3/function/bool-i32.wgsl.expected.ir.dxc.hlsl b/test/tint/expressions/type_conv/vec3/function/bool-i32.wgsl.expected.ir.dxc.hlsl
index c6e1d96..20ef35e 100644
--- a/test/tint/expressions/type_conv/vec3/function/bool-i32.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/expressions/type_conv/vec3/function/bool-i32.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,15 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Construct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+static bool t = false;
+bool3 m() {
+  t = true;
+  return bool3((t).xxx);
+}
+
+void f() {
+  int3 v = int3(m());
+}
+
+[numthreads(1, 1, 1)]
+void unused_entry_point() {
+}
+
diff --git a/test/tint/expressions/type_conv/vec3/function/bool-i32.wgsl.expected.ir.fxc.hlsl b/test/tint/expressions/type_conv/vec3/function/bool-i32.wgsl.expected.ir.fxc.hlsl
index c6e1d96..20ef35e 100644
--- a/test/tint/expressions/type_conv/vec3/function/bool-i32.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/expressions/type_conv/vec3/function/bool-i32.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,15 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Construct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+static bool t = false;
+bool3 m() {
+  t = true;
+  return bool3((t).xxx);
+}
+
+void f() {
+  int3 v = int3(m());
+}
+
+[numthreads(1, 1, 1)]
+void unused_entry_point() {
+}
+
diff --git a/test/tint/expressions/type_conv/vec3/function/bool-u32.wgsl.expected.ir.dxc.hlsl b/test/tint/expressions/type_conv/vec3/function/bool-u32.wgsl.expected.ir.dxc.hlsl
index c6e1d96..7981a49 100644
--- a/test/tint/expressions/type_conv/vec3/function/bool-u32.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/expressions/type_conv/vec3/function/bool-u32.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,15 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Construct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+static bool t = false;
+bool3 m() {
+  t = true;
+  return bool3((t).xxx);
+}
+
+void f() {
+  uint3 v = uint3(m());
+}
+
+[numthreads(1, 1, 1)]
+void unused_entry_point() {
+}
+
diff --git a/test/tint/expressions/type_conv/vec3/function/bool-u32.wgsl.expected.ir.fxc.hlsl b/test/tint/expressions/type_conv/vec3/function/bool-u32.wgsl.expected.ir.fxc.hlsl
index c6e1d96..7981a49 100644
--- a/test/tint/expressions/type_conv/vec3/function/bool-u32.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/expressions/type_conv/vec3/function/bool-u32.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,15 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Construct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+static bool t = false;
+bool3 m() {
+  t = true;
+  return bool3((t).xxx);
+}
+
+void f() {
+  uint3 v = uint3(m());
+}
+
+[numthreads(1, 1, 1)]
+void unused_entry_point() {
+}
+
diff --git a/test/tint/expressions/type_conv/vec3/function/f16-bool.wgsl.expected.ir.dxc.hlsl b/test/tint/expressions/type_conv/vec3/function/f16-bool.wgsl.expected.ir.dxc.hlsl
index c6e1d96..f4309c8 100644
--- a/test/tint/expressions/type_conv/vec3/function/f16-bool.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/expressions/type_conv/vec3/function/f16-bool.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,15 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Construct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+static float16_t t = float16_t(0.0h);
+vector<float16_t, 3> m() {
+  t = float16_t(1.0h);
+  return vector<float16_t, 3>((t).xxx);
+}
+
+void f() {
+  bool3 v = bool3(m());
+}
+
+[numthreads(1, 1, 1)]
+void unused_entry_point() {
+}
+
diff --git a/test/tint/expressions/type_conv/vec3/function/f16-bool.wgsl.expected.ir.fxc.hlsl b/test/tint/expressions/type_conv/vec3/function/f16-bool.wgsl.expected.ir.fxc.hlsl
index c6e1d96..b5499d2 100644
--- a/test/tint/expressions/type_conv/vec3/function/f16-bool.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/expressions/type_conv/vec3/function/f16-bool.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,20 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Construct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+
+static float16_t t = float16_t(0.0h);
+vector<float16_t, 3> m() {
+  t = float16_t(1.0h);
+  return vector<float16_t, 3>((t).xxx);
+}
+
+void f() {
+  bool3 v = bool3(m());
+}
+
+[numthreads(1, 1, 1)]
+void unused_entry_point() {
+}
+
+FXC validation failure:
+c:\src\dawn\Shader@0x000001946CAFB920(2,8-16): error X3000: unrecognized identifier 'float16_t'
+
diff --git a/test/tint/expressions/type_conv/vec3/function/f16-f32.wgsl.expected.ir.dxc.hlsl b/test/tint/expressions/type_conv/vec3/function/f16-f32.wgsl.expected.ir.dxc.hlsl
index c6e1d96..6c49a37 100644
--- a/test/tint/expressions/type_conv/vec3/function/f16-f32.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/expressions/type_conv/vec3/function/f16-f32.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,15 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Construct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+static float16_t t = float16_t(0.0h);
+vector<float16_t, 3> m() {
+  t = float16_t(1.0h);
+  return vector<float16_t, 3>((t).xxx);
+}
+
+void f() {
+  float3 v = float3(m());
+}
+
+[numthreads(1, 1, 1)]
+void unused_entry_point() {
+}
+
diff --git a/test/tint/expressions/type_conv/vec3/function/f16-f32.wgsl.expected.ir.fxc.hlsl b/test/tint/expressions/type_conv/vec3/function/f16-f32.wgsl.expected.ir.fxc.hlsl
index c6e1d96..6645f4f 100644
--- a/test/tint/expressions/type_conv/vec3/function/f16-f32.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/expressions/type_conv/vec3/function/f16-f32.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,20 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Construct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+
+static float16_t t = float16_t(0.0h);
+vector<float16_t, 3> m() {
+  t = float16_t(1.0h);
+  return vector<float16_t, 3>((t).xxx);
+}
+
+void f() {
+  float3 v = float3(m());
+}
+
+[numthreads(1, 1, 1)]
+void unused_entry_point() {
+}
+
+FXC validation failure:
+c:\src\dawn\Shader@0x000001B93BFC0500(2,8-16): error X3000: unrecognized identifier 'float16_t'
+
diff --git a/test/tint/expressions/type_conv/vec3/function/f16-i32.wgsl.expected.ir.dxc.hlsl b/test/tint/expressions/type_conv/vec3/function/f16-i32.wgsl.expected.ir.dxc.hlsl
index c6e1d96..2fc65a8 100644
--- a/test/tint/expressions/type_conv/vec3/function/f16-i32.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/expressions/type_conv/vec3/function/f16-i32.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,19 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Construct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+static float16_t t = float16_t(0.0h);
+vector<float16_t, 3> m() {
+  t = float16_t(1.0h);
+  return vector<float16_t, 3>((t).xxx);
+}
+
+int3 tint_v3f16_to_v3i32(vector<float16_t, 3> value) {
+  return (((value <= (float16_t(65504.0h)).xxx)) ? ((((value >= (float16_t(-65504.0h)).xxx)) ? (int3(value)) : ((-2147483648).xxx))) : ((2147483647).xxx));
+}
+
+void f() {
+  int3 v = tint_v3f16_to_v3i32(m());
+}
+
+[numthreads(1, 1, 1)]
+void unused_entry_point() {
+}
+
diff --git a/test/tint/expressions/type_conv/vec3/function/f16-i32.wgsl.expected.ir.fxc.hlsl b/test/tint/expressions/type_conv/vec3/function/f16-i32.wgsl.expected.ir.fxc.hlsl
index c6e1d96..bc78c90 100644
--- a/test/tint/expressions/type_conv/vec3/function/f16-i32.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/expressions/type_conv/vec3/function/f16-i32.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,24 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Construct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+
+static float16_t t = float16_t(0.0h);
+vector<float16_t, 3> m() {
+  t = float16_t(1.0h);
+  return vector<float16_t, 3>((t).xxx);
+}
+
+int3 tint_v3f16_to_v3i32(vector<float16_t, 3> value) {
+  return (((value <= (float16_t(65504.0h)).xxx)) ? ((((value >= (float16_t(-65504.0h)).xxx)) ? (int3(value)) : ((-2147483648).xxx))) : ((2147483647).xxx));
+}
+
+void f() {
+  int3 v = tint_v3f16_to_v3i32(m());
+}
+
+[numthreads(1, 1, 1)]
+void unused_entry_point() {
+}
+
+FXC validation failure:
+c:\src\dawn\Shader@0x000002B2D709FC30(2,8-16): error X3000: unrecognized identifier 'float16_t'
+
diff --git a/test/tint/expressions/type_conv/vec3/function/f16-u32.wgsl.expected.ir.dxc.hlsl b/test/tint/expressions/type_conv/vec3/function/f16-u32.wgsl.expected.ir.dxc.hlsl
index c6e1d96..0200ab7 100644
--- a/test/tint/expressions/type_conv/vec3/function/f16-u32.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/expressions/type_conv/vec3/function/f16-u32.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,19 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Construct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+static float16_t t = float16_t(0.0h);
+vector<float16_t, 3> m() {
+  t = float16_t(1.0h);
+  return vector<float16_t, 3>((t).xxx);
+}
+
+uint3 tint_v3f16_to_v3u32(vector<float16_t, 3> value) {
+  return (((value <= (float16_t(65504.0h)).xxx)) ? ((((value >= (float16_t(0.0h)).xxx)) ? (uint3(value)) : ((0u).xxx))) : ((4294967295u).xxx));
+}
+
+void f() {
+  uint3 v = tint_v3f16_to_v3u32(m());
+}
+
+[numthreads(1, 1, 1)]
+void unused_entry_point() {
+}
+
diff --git a/test/tint/expressions/type_conv/vec3/function/f16-u32.wgsl.expected.ir.fxc.hlsl b/test/tint/expressions/type_conv/vec3/function/f16-u32.wgsl.expected.ir.fxc.hlsl
index c6e1d96..a8f8343 100644
--- a/test/tint/expressions/type_conv/vec3/function/f16-u32.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/expressions/type_conv/vec3/function/f16-u32.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,24 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Construct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+
+static float16_t t = float16_t(0.0h);
+vector<float16_t, 3> m() {
+  t = float16_t(1.0h);
+  return vector<float16_t, 3>((t).xxx);
+}
+
+uint3 tint_v3f16_to_v3u32(vector<float16_t, 3> value) {
+  return (((value <= (float16_t(65504.0h)).xxx)) ? ((((value >= (float16_t(0.0h)).xxx)) ? (uint3(value)) : ((0u).xxx))) : ((4294967295u).xxx));
+}
+
+void f() {
+  uint3 v = tint_v3f16_to_v3u32(m());
+}
+
+[numthreads(1, 1, 1)]
+void unused_entry_point() {
+}
+
+FXC validation failure:
+c:\src\dawn\Shader@0x0000023D1D22F3C0(2,8-16): error X3000: unrecognized identifier 'float16_t'
+
diff --git a/test/tint/expressions/type_conv/vec3/function/f32-bool.wgsl.expected.ir.dxc.hlsl b/test/tint/expressions/type_conv/vec3/function/f32-bool.wgsl.expected.ir.dxc.hlsl
index c6e1d96..e76d461 100644
--- a/test/tint/expressions/type_conv/vec3/function/f32-bool.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/expressions/type_conv/vec3/function/f32-bool.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,15 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Construct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+static float t = 0.0f;
+float3 m() {
+  t = 1.0f;
+  return float3((t).xxx);
+}
+
+void f() {
+  bool3 v = bool3(m());
+}
+
+[numthreads(1, 1, 1)]
+void unused_entry_point() {
+}
+
diff --git a/test/tint/expressions/type_conv/vec3/function/f32-bool.wgsl.expected.ir.fxc.hlsl b/test/tint/expressions/type_conv/vec3/function/f32-bool.wgsl.expected.ir.fxc.hlsl
index c6e1d96..e76d461 100644
--- a/test/tint/expressions/type_conv/vec3/function/f32-bool.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/expressions/type_conv/vec3/function/f32-bool.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,15 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Construct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+static float t = 0.0f;
+float3 m() {
+  t = 1.0f;
+  return float3((t).xxx);
+}
+
+void f() {
+  bool3 v = bool3(m());
+}
+
+[numthreads(1, 1, 1)]
+void unused_entry_point() {
+}
+
diff --git a/test/tint/expressions/type_conv/vec3/function/f32-f16.wgsl.expected.ir.dxc.hlsl b/test/tint/expressions/type_conv/vec3/function/f32-f16.wgsl.expected.ir.dxc.hlsl
index c6e1d96..bbe09b2 100644
--- a/test/tint/expressions/type_conv/vec3/function/f32-f16.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/expressions/type_conv/vec3/function/f32-f16.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,15 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Construct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+static float t = 0.0f;
+float3 m() {
+  t = 1.0f;
+  return float3((t).xxx);
+}
+
+void f() {
+  vector<float16_t, 3> v = vector<float16_t, 3>(m());
+}
+
+[numthreads(1, 1, 1)]
+void unused_entry_point() {
+}
+
diff --git a/test/tint/expressions/type_conv/vec3/function/f32-f16.wgsl.expected.ir.fxc.hlsl b/test/tint/expressions/type_conv/vec3/function/f32-f16.wgsl.expected.ir.fxc.hlsl
index c6e1d96..077fbbc 100644
--- a/test/tint/expressions/type_conv/vec3/function/f32-f16.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/expressions/type_conv/vec3/function/f32-f16.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,20 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Construct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+
+static float t = 0.0f;
+float3 m() {
+  t = 1.0f;
+  return float3((t).xxx);
+}
+
+void f() {
+  vector<float16_t, 3> v = vector<float16_t, 3>(m());
+}
+
+[numthreads(1, 1, 1)]
+void unused_entry_point() {
+}
+
+FXC validation failure:
+c:\src\dawn\Shader@0x0000025E89B2F300(9,10-18): error X3000: syntax error: unexpected token 'float16_t'
+
diff --git a/test/tint/expressions/type_conv/vec3/function/f32-i32.wgsl.expected.ir.dxc.hlsl b/test/tint/expressions/type_conv/vec3/function/f32-i32.wgsl.expected.ir.dxc.hlsl
index c6e1d96..cbbbce0 100644
--- a/test/tint/expressions/type_conv/vec3/function/f32-i32.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/expressions/type_conv/vec3/function/f32-i32.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,19 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Construct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+static float t = 0.0f;
+float3 m() {
+  t = 1.0f;
+  return float3((t).xxx);
+}
+
+int3 tint_v3f32_to_v3i32(float3 value) {
+  return (((value <= (2147483520.0f).xxx)) ? ((((value >= (-2147483648.0f).xxx)) ? (int3(value)) : ((-2147483648).xxx))) : ((2147483647).xxx));
+}
+
+void f() {
+  int3 v = tint_v3f32_to_v3i32(m());
+}
+
+[numthreads(1, 1, 1)]
+void unused_entry_point() {
+}
+
diff --git a/test/tint/expressions/type_conv/vec3/function/f32-i32.wgsl.expected.ir.fxc.hlsl b/test/tint/expressions/type_conv/vec3/function/f32-i32.wgsl.expected.ir.fxc.hlsl
index c6e1d96..cbbbce0 100644
--- a/test/tint/expressions/type_conv/vec3/function/f32-i32.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/expressions/type_conv/vec3/function/f32-i32.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,19 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Construct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+static float t = 0.0f;
+float3 m() {
+  t = 1.0f;
+  return float3((t).xxx);
+}
+
+int3 tint_v3f32_to_v3i32(float3 value) {
+  return (((value <= (2147483520.0f).xxx)) ? ((((value >= (-2147483648.0f).xxx)) ? (int3(value)) : ((-2147483648).xxx))) : ((2147483647).xxx));
+}
+
+void f() {
+  int3 v = tint_v3f32_to_v3i32(m());
+}
+
+[numthreads(1, 1, 1)]
+void unused_entry_point() {
+}
+
diff --git a/test/tint/expressions/type_conv/vec3/function/f32-u32.wgsl.expected.ir.dxc.hlsl b/test/tint/expressions/type_conv/vec3/function/f32-u32.wgsl.expected.ir.dxc.hlsl
index c6e1d96..d6e3a5c 100644
--- a/test/tint/expressions/type_conv/vec3/function/f32-u32.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/expressions/type_conv/vec3/function/f32-u32.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,19 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Construct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+static float t = 0.0f;
+float3 m() {
+  t = 1.0f;
+  return float3((t).xxx);
+}
+
+uint3 tint_v3f32_to_v3u32(float3 value) {
+  return (((value <= (4294967040.0f).xxx)) ? ((((value >= (0.0f).xxx)) ? (uint3(value)) : ((0u).xxx))) : ((4294967295u).xxx));
+}
+
+void f() {
+  uint3 v = tint_v3f32_to_v3u32(m());
+}
+
+[numthreads(1, 1, 1)]
+void unused_entry_point() {
+}
+
diff --git a/test/tint/expressions/type_conv/vec3/function/f32-u32.wgsl.expected.ir.fxc.hlsl b/test/tint/expressions/type_conv/vec3/function/f32-u32.wgsl.expected.ir.fxc.hlsl
index c6e1d96..d6e3a5c 100644
--- a/test/tint/expressions/type_conv/vec3/function/f32-u32.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/expressions/type_conv/vec3/function/f32-u32.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,19 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Construct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+static float t = 0.0f;
+float3 m() {
+  t = 1.0f;
+  return float3((t).xxx);
+}
+
+uint3 tint_v3f32_to_v3u32(float3 value) {
+  return (((value <= (4294967040.0f).xxx)) ? ((((value >= (0.0f).xxx)) ? (uint3(value)) : ((0u).xxx))) : ((4294967295u).xxx));
+}
+
+void f() {
+  uint3 v = tint_v3f32_to_v3u32(m());
+}
+
+[numthreads(1, 1, 1)]
+void unused_entry_point() {
+}
+
diff --git a/test/tint/expressions/type_conv/vec3/function/i32-bool.wgsl.expected.ir.dxc.hlsl b/test/tint/expressions/type_conv/vec3/function/i32-bool.wgsl.expected.ir.dxc.hlsl
index c6e1d96..64a4a8a 100644
--- a/test/tint/expressions/type_conv/vec3/function/i32-bool.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/expressions/type_conv/vec3/function/i32-bool.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,15 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Construct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+static int t = 0;
+int3 m() {
+  t = 1;
+  return int3((t).xxx);
+}
+
+void f() {
+  bool3 v = bool3(m());
+}
+
+[numthreads(1, 1, 1)]
+void unused_entry_point() {
+}
+
diff --git a/test/tint/expressions/type_conv/vec3/function/i32-bool.wgsl.expected.ir.fxc.hlsl b/test/tint/expressions/type_conv/vec3/function/i32-bool.wgsl.expected.ir.fxc.hlsl
index c6e1d96..64a4a8a 100644
--- a/test/tint/expressions/type_conv/vec3/function/i32-bool.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/expressions/type_conv/vec3/function/i32-bool.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,15 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Construct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+static int t = 0;
+int3 m() {
+  t = 1;
+  return int3((t).xxx);
+}
+
+void f() {
+  bool3 v = bool3(m());
+}
+
+[numthreads(1, 1, 1)]
+void unused_entry_point() {
+}
+
diff --git a/test/tint/expressions/type_conv/vec3/function/i32-f16.wgsl.expected.ir.dxc.hlsl b/test/tint/expressions/type_conv/vec3/function/i32-f16.wgsl.expected.ir.dxc.hlsl
index c6e1d96..f7cdc4d 100644
--- a/test/tint/expressions/type_conv/vec3/function/i32-f16.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/expressions/type_conv/vec3/function/i32-f16.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,15 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Construct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+static int t = 0;
+int3 m() {
+  t = 1;
+  return int3((t).xxx);
+}
+
+void f() {
+  vector<float16_t, 3> v = vector<float16_t, 3>(m());
+}
+
+[numthreads(1, 1, 1)]
+void unused_entry_point() {
+}
+
diff --git a/test/tint/expressions/type_conv/vec3/function/i32-f16.wgsl.expected.ir.fxc.hlsl b/test/tint/expressions/type_conv/vec3/function/i32-f16.wgsl.expected.ir.fxc.hlsl
index c6e1d96..0821094 100644
--- a/test/tint/expressions/type_conv/vec3/function/i32-f16.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/expressions/type_conv/vec3/function/i32-f16.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,20 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Construct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+
+static int t = 0;
+int3 m() {
+  t = 1;
+  return int3((t).xxx);
+}
+
+void f() {
+  vector<float16_t, 3> v = vector<float16_t, 3>(m());
+}
+
+[numthreads(1, 1, 1)]
+void unused_entry_point() {
+}
+
+FXC validation failure:
+c:\src\dawn\Shader@0x000001838D4C5C00(9,10-18): error X3000: syntax error: unexpected token 'float16_t'
+
diff --git a/test/tint/expressions/type_conv/vec3/function/i32-f32.wgsl.expected.ir.dxc.hlsl b/test/tint/expressions/type_conv/vec3/function/i32-f32.wgsl.expected.ir.dxc.hlsl
index c6e1d96..3ce7acd 100644
--- a/test/tint/expressions/type_conv/vec3/function/i32-f32.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/expressions/type_conv/vec3/function/i32-f32.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,15 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Construct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+static int t = 0;
+int3 m() {
+  t = 1;
+  return int3((t).xxx);
+}
+
+void f() {
+  float3 v = float3(m());
+}
+
+[numthreads(1, 1, 1)]
+void unused_entry_point() {
+}
+
diff --git a/test/tint/expressions/type_conv/vec3/function/i32-f32.wgsl.expected.ir.fxc.hlsl b/test/tint/expressions/type_conv/vec3/function/i32-f32.wgsl.expected.ir.fxc.hlsl
index c6e1d96..3ce7acd 100644
--- a/test/tint/expressions/type_conv/vec3/function/i32-f32.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/expressions/type_conv/vec3/function/i32-f32.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,15 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Construct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+static int t = 0;
+int3 m() {
+  t = 1;
+  return int3((t).xxx);
+}
+
+void f() {
+  float3 v = float3(m());
+}
+
+[numthreads(1, 1, 1)]
+void unused_entry_point() {
+}
+
diff --git a/test/tint/expressions/type_conv/vec3/function/i32-u32.wgsl.expected.ir.dxc.hlsl b/test/tint/expressions/type_conv/vec3/function/i32-u32.wgsl.expected.ir.dxc.hlsl
index c6e1d96..ee48dd3 100644
--- a/test/tint/expressions/type_conv/vec3/function/i32-u32.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/expressions/type_conv/vec3/function/i32-u32.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,15 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Construct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+static int t = 0;
+int3 m() {
+  t = 1;
+  return int3((t).xxx);
+}
+
+void f() {
+  uint3 v = uint3(m());
+}
+
+[numthreads(1, 1, 1)]
+void unused_entry_point() {
+}
+
diff --git a/test/tint/expressions/type_conv/vec3/function/i32-u32.wgsl.expected.ir.fxc.hlsl b/test/tint/expressions/type_conv/vec3/function/i32-u32.wgsl.expected.ir.fxc.hlsl
index c6e1d96..ee48dd3 100644
--- a/test/tint/expressions/type_conv/vec3/function/i32-u32.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/expressions/type_conv/vec3/function/i32-u32.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,15 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Construct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+static int t = 0;
+int3 m() {
+  t = 1;
+  return int3((t).xxx);
+}
+
+void f() {
+  uint3 v = uint3(m());
+}
+
+[numthreads(1, 1, 1)]
+void unused_entry_point() {
+}
+
diff --git a/test/tint/expressions/type_conv/vec3/function/u32-bool.wgsl.expected.ir.dxc.hlsl b/test/tint/expressions/type_conv/vec3/function/u32-bool.wgsl.expected.ir.dxc.hlsl
index c6e1d96..c1c6174 100644
--- a/test/tint/expressions/type_conv/vec3/function/u32-bool.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/expressions/type_conv/vec3/function/u32-bool.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,15 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Construct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+static uint t = 0u;
+uint3 m() {
+  t = 1u;
+  return uint3((t).xxx);
+}
+
+void f() {
+  bool3 v = bool3(m());
+}
+
+[numthreads(1, 1, 1)]
+void unused_entry_point() {
+}
+
diff --git a/test/tint/expressions/type_conv/vec3/function/u32-bool.wgsl.expected.ir.fxc.hlsl b/test/tint/expressions/type_conv/vec3/function/u32-bool.wgsl.expected.ir.fxc.hlsl
index c6e1d96..c1c6174 100644
--- a/test/tint/expressions/type_conv/vec3/function/u32-bool.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/expressions/type_conv/vec3/function/u32-bool.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,15 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Construct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+static uint t = 0u;
+uint3 m() {
+  t = 1u;
+  return uint3((t).xxx);
+}
+
+void f() {
+  bool3 v = bool3(m());
+}
+
+[numthreads(1, 1, 1)]
+void unused_entry_point() {
+}
+
diff --git a/test/tint/expressions/type_conv/vec3/function/u32-f16.wgsl.expected.ir.dxc.hlsl b/test/tint/expressions/type_conv/vec3/function/u32-f16.wgsl.expected.ir.dxc.hlsl
index c6e1d96..7397851 100644
--- a/test/tint/expressions/type_conv/vec3/function/u32-f16.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/expressions/type_conv/vec3/function/u32-f16.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,15 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Construct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+static uint t = 0u;
+uint3 m() {
+  t = 1u;
+  return uint3((t).xxx);
+}
+
+void f() {
+  vector<float16_t, 3> v = vector<float16_t, 3>(m());
+}
+
+[numthreads(1, 1, 1)]
+void unused_entry_point() {
+}
+
diff --git a/test/tint/expressions/type_conv/vec3/function/u32-f16.wgsl.expected.ir.fxc.hlsl b/test/tint/expressions/type_conv/vec3/function/u32-f16.wgsl.expected.ir.fxc.hlsl
index c6e1d96..7f350d8 100644
--- a/test/tint/expressions/type_conv/vec3/function/u32-f16.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/expressions/type_conv/vec3/function/u32-f16.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,20 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Construct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+
+static uint t = 0u;
+uint3 m() {
+  t = 1u;
+  return uint3((t).xxx);
+}
+
+void f() {
+  vector<float16_t, 3> v = vector<float16_t, 3>(m());
+}
+
+[numthreads(1, 1, 1)]
+void unused_entry_point() {
+}
+
+FXC validation failure:
+c:\src\dawn\Shader@0x000002955500E390(9,10-18): error X3000: syntax error: unexpected token 'float16_t'
+
diff --git a/test/tint/expressions/type_conv/vec3/function/u32-f32.wgsl.expected.ir.dxc.hlsl b/test/tint/expressions/type_conv/vec3/function/u32-f32.wgsl.expected.ir.dxc.hlsl
index c6e1d96..9f97366 100644
--- a/test/tint/expressions/type_conv/vec3/function/u32-f32.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/expressions/type_conv/vec3/function/u32-f32.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,15 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Construct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+static uint t = 0u;
+uint3 m() {
+  t = 1u;
+  return uint3((t).xxx);
+}
+
+void f() {
+  float3 v = float3(m());
+}
+
+[numthreads(1, 1, 1)]
+void unused_entry_point() {
+}
+
diff --git a/test/tint/expressions/type_conv/vec3/function/u32-f32.wgsl.expected.ir.fxc.hlsl b/test/tint/expressions/type_conv/vec3/function/u32-f32.wgsl.expected.ir.fxc.hlsl
index c6e1d96..9f97366 100644
--- a/test/tint/expressions/type_conv/vec3/function/u32-f32.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/expressions/type_conv/vec3/function/u32-f32.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,15 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Construct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+static uint t = 0u;
+uint3 m() {
+  t = 1u;
+  return uint3((t).xxx);
+}
+
+void f() {
+  float3 v = float3(m());
+}
+
+[numthreads(1, 1, 1)]
+void unused_entry_point() {
+}
+
diff --git a/test/tint/expressions/type_conv/vec3/function/u32-i32.wgsl.expected.ir.dxc.hlsl b/test/tint/expressions/type_conv/vec3/function/u32-i32.wgsl.expected.ir.dxc.hlsl
index c6e1d96..bc7325d 100644
--- a/test/tint/expressions/type_conv/vec3/function/u32-i32.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/expressions/type_conv/vec3/function/u32-i32.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,15 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Construct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+static uint t = 0u;
+uint3 m() {
+  t = 1u;
+  return uint3((t).xxx);
+}
+
+void f() {
+  int3 v = int3(m());
+}
+
+[numthreads(1, 1, 1)]
+void unused_entry_point() {
+}
+
diff --git a/test/tint/expressions/type_conv/vec3/function/u32-i32.wgsl.expected.ir.fxc.hlsl b/test/tint/expressions/type_conv/vec3/function/u32-i32.wgsl.expected.ir.fxc.hlsl
index c6e1d96..bc7325d 100644
--- a/test/tint/expressions/type_conv/vec3/function/u32-i32.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/expressions/type_conv/vec3/function/u32-i32.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,15 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Construct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+static uint t = 0u;
+uint3 m() {
+  t = 1u;
+  return uint3((t).xxx);
+}
+
+void f() {
+  int3 v = int3(m());
+}
+
+[numthreads(1, 1, 1)]
+void unused_entry_point() {
+}
+
diff --git a/test/tint/expressions/type_conv/vec3/literal/bool-f16.wgsl.expected.ir.dxc.hlsl b/test/tint/expressions/type_conv/vec3/literal/bool-f16.wgsl.expected.ir.dxc.hlsl
index 9acd2d7..5810188 100644
--- a/test/tint/expressions/type_conv/vec3/literal/bool-f16.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/expressions/type_conv/vec3/literal/bool-f16.wgsl.expected.ir.dxc.hlsl
@@ -1,3 +1,5 @@
+
+static vector<float16_t, 3> u = (float16_t(1.0h)).xxx;
 [numthreads(1, 1, 1)]
 void unused_entry_point() {
 }
diff --git a/test/tint/expressions/type_conv/vec3/literal/bool-f16.wgsl.expected.ir.fxc.hlsl b/test/tint/expressions/type_conv/vec3/literal/bool-f16.wgsl.expected.ir.fxc.hlsl
index 9acd2d7..8f24aa7 100644
--- a/test/tint/expressions/type_conv/vec3/literal/bool-f16.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/expressions/type_conv/vec3/literal/bool-f16.wgsl.expected.ir.fxc.hlsl
@@ -1,4 +1,11 @@
+SKIP: FAILED
+
+
+static vector<float16_t, 3> u = (float16_t(1.0h)).xxx;
 [numthreads(1, 1, 1)]
 void unused_entry_point() {
 }
 
+FXC validation failure:
+c:\src\dawn\Shader@0x000001ED2C31D680(2,15-23): error X3000: syntax error: unexpected token 'float16_t'
+
diff --git a/test/tint/expressions/type_conv/vec3/literal/bool-f32.wgsl.expected.ir.dxc.hlsl b/test/tint/expressions/type_conv/vec3/literal/bool-f32.wgsl.expected.ir.dxc.hlsl
index 9acd2d7..f122dc1 100644
--- a/test/tint/expressions/type_conv/vec3/literal/bool-f32.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/expressions/type_conv/vec3/literal/bool-f32.wgsl.expected.ir.dxc.hlsl
@@ -1,3 +1,5 @@
+
+static float3 u = (1.0f).xxx;
 [numthreads(1, 1, 1)]
 void unused_entry_point() {
 }
diff --git a/test/tint/expressions/type_conv/vec3/literal/bool-f32.wgsl.expected.ir.fxc.hlsl b/test/tint/expressions/type_conv/vec3/literal/bool-f32.wgsl.expected.ir.fxc.hlsl
index 9acd2d7..f122dc1 100644
--- a/test/tint/expressions/type_conv/vec3/literal/bool-f32.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/expressions/type_conv/vec3/literal/bool-f32.wgsl.expected.ir.fxc.hlsl
@@ -1,3 +1,5 @@
+
+static float3 u = (1.0f).xxx;
 [numthreads(1, 1, 1)]
 void unused_entry_point() {
 }
diff --git a/test/tint/expressions/type_conv/vec3/literal/bool-i32.wgsl.expected.ir.dxc.hlsl b/test/tint/expressions/type_conv/vec3/literal/bool-i32.wgsl.expected.ir.dxc.hlsl
index 9acd2d7..a5cfba1 100644
--- a/test/tint/expressions/type_conv/vec3/literal/bool-i32.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/expressions/type_conv/vec3/literal/bool-i32.wgsl.expected.ir.dxc.hlsl
@@ -1,3 +1,5 @@
+
+static int3 u = (1).xxx;
 [numthreads(1, 1, 1)]
 void unused_entry_point() {
 }
diff --git a/test/tint/expressions/type_conv/vec3/literal/bool-i32.wgsl.expected.ir.fxc.hlsl b/test/tint/expressions/type_conv/vec3/literal/bool-i32.wgsl.expected.ir.fxc.hlsl
index 9acd2d7..a5cfba1 100644
--- a/test/tint/expressions/type_conv/vec3/literal/bool-i32.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/expressions/type_conv/vec3/literal/bool-i32.wgsl.expected.ir.fxc.hlsl
@@ -1,3 +1,5 @@
+
+static int3 u = (1).xxx;
 [numthreads(1, 1, 1)]
 void unused_entry_point() {
 }
diff --git a/test/tint/expressions/type_conv/vec3/literal/bool-u32.wgsl.expected.ir.dxc.hlsl b/test/tint/expressions/type_conv/vec3/literal/bool-u32.wgsl.expected.ir.dxc.hlsl
index 9acd2d7..affc5b3 100644
--- a/test/tint/expressions/type_conv/vec3/literal/bool-u32.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/expressions/type_conv/vec3/literal/bool-u32.wgsl.expected.ir.dxc.hlsl
@@ -1,3 +1,5 @@
+
+static uint3 u = (1u).xxx;
 [numthreads(1, 1, 1)]
 void unused_entry_point() {
 }
diff --git a/test/tint/expressions/type_conv/vec3/literal/bool-u32.wgsl.expected.ir.fxc.hlsl b/test/tint/expressions/type_conv/vec3/literal/bool-u32.wgsl.expected.ir.fxc.hlsl
index 9acd2d7..affc5b3 100644
--- a/test/tint/expressions/type_conv/vec3/literal/bool-u32.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/expressions/type_conv/vec3/literal/bool-u32.wgsl.expected.ir.fxc.hlsl
@@ -1,3 +1,5 @@
+
+static uint3 u = (1u).xxx;
 [numthreads(1, 1, 1)]
 void unused_entry_point() {
 }
diff --git a/test/tint/expressions/type_conv/vec3/literal/f16-bool.wgsl.expected.ir.dxc.hlsl b/test/tint/expressions/type_conv/vec3/literal/f16-bool.wgsl.expected.ir.dxc.hlsl
index 9acd2d7..72f7988 100644
--- a/test/tint/expressions/type_conv/vec3/literal/f16-bool.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/expressions/type_conv/vec3/literal/f16-bool.wgsl.expected.ir.dxc.hlsl
@@ -1,3 +1,5 @@
+
+static bool3 u = (true).xxx;
 [numthreads(1, 1, 1)]
 void unused_entry_point() {
 }
diff --git a/test/tint/expressions/type_conv/vec3/literal/f16-bool.wgsl.expected.ir.fxc.hlsl b/test/tint/expressions/type_conv/vec3/literal/f16-bool.wgsl.expected.ir.fxc.hlsl
index 9acd2d7..72f7988 100644
--- a/test/tint/expressions/type_conv/vec3/literal/f16-bool.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/expressions/type_conv/vec3/literal/f16-bool.wgsl.expected.ir.fxc.hlsl
@@ -1,3 +1,5 @@
+
+static bool3 u = (true).xxx;
 [numthreads(1, 1, 1)]
 void unused_entry_point() {
 }
diff --git a/test/tint/expressions/type_conv/vec3/literal/f16-f32.wgsl.expected.ir.dxc.hlsl b/test/tint/expressions/type_conv/vec3/literal/f16-f32.wgsl.expected.ir.dxc.hlsl
index 9acd2d7..f122dc1 100644
--- a/test/tint/expressions/type_conv/vec3/literal/f16-f32.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/expressions/type_conv/vec3/literal/f16-f32.wgsl.expected.ir.dxc.hlsl
@@ -1,3 +1,5 @@
+
+static float3 u = (1.0f).xxx;
 [numthreads(1, 1, 1)]
 void unused_entry_point() {
 }
diff --git a/test/tint/expressions/type_conv/vec3/literal/f16-f32.wgsl.expected.ir.fxc.hlsl b/test/tint/expressions/type_conv/vec3/literal/f16-f32.wgsl.expected.ir.fxc.hlsl
index 9acd2d7..f122dc1 100644
--- a/test/tint/expressions/type_conv/vec3/literal/f16-f32.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/expressions/type_conv/vec3/literal/f16-f32.wgsl.expected.ir.fxc.hlsl
@@ -1,3 +1,5 @@
+
+static float3 u = (1.0f).xxx;
 [numthreads(1, 1, 1)]
 void unused_entry_point() {
 }
diff --git a/test/tint/expressions/type_conv/vec3/literal/f16-i32.wgsl.expected.ir.dxc.hlsl b/test/tint/expressions/type_conv/vec3/literal/f16-i32.wgsl.expected.ir.dxc.hlsl
index 9acd2d7..a5cfba1 100644
--- a/test/tint/expressions/type_conv/vec3/literal/f16-i32.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/expressions/type_conv/vec3/literal/f16-i32.wgsl.expected.ir.dxc.hlsl
@@ -1,3 +1,5 @@
+
+static int3 u = (1).xxx;
 [numthreads(1, 1, 1)]
 void unused_entry_point() {
 }
diff --git a/test/tint/expressions/type_conv/vec3/literal/f16-i32.wgsl.expected.ir.fxc.hlsl b/test/tint/expressions/type_conv/vec3/literal/f16-i32.wgsl.expected.ir.fxc.hlsl
index 9acd2d7..a5cfba1 100644
--- a/test/tint/expressions/type_conv/vec3/literal/f16-i32.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/expressions/type_conv/vec3/literal/f16-i32.wgsl.expected.ir.fxc.hlsl
@@ -1,3 +1,5 @@
+
+static int3 u = (1).xxx;
 [numthreads(1, 1, 1)]
 void unused_entry_point() {
 }
diff --git a/test/tint/expressions/type_conv/vec3/literal/f16-u32.wgsl.expected.ir.dxc.hlsl b/test/tint/expressions/type_conv/vec3/literal/f16-u32.wgsl.expected.ir.dxc.hlsl
index 9acd2d7..affc5b3 100644
--- a/test/tint/expressions/type_conv/vec3/literal/f16-u32.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/expressions/type_conv/vec3/literal/f16-u32.wgsl.expected.ir.dxc.hlsl
@@ -1,3 +1,5 @@
+
+static uint3 u = (1u).xxx;
 [numthreads(1, 1, 1)]
 void unused_entry_point() {
 }
diff --git a/test/tint/expressions/type_conv/vec3/literal/f16-u32.wgsl.expected.ir.fxc.hlsl b/test/tint/expressions/type_conv/vec3/literal/f16-u32.wgsl.expected.ir.fxc.hlsl
index 9acd2d7..affc5b3 100644
--- a/test/tint/expressions/type_conv/vec3/literal/f16-u32.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/expressions/type_conv/vec3/literal/f16-u32.wgsl.expected.ir.fxc.hlsl
@@ -1,3 +1,5 @@
+
+static uint3 u = (1u).xxx;
 [numthreads(1, 1, 1)]
 void unused_entry_point() {
 }
diff --git a/test/tint/expressions/type_conv/vec3/literal/f32-bool.wgsl.expected.ir.dxc.hlsl b/test/tint/expressions/type_conv/vec3/literal/f32-bool.wgsl.expected.ir.dxc.hlsl
index 9acd2d7..72f7988 100644
--- a/test/tint/expressions/type_conv/vec3/literal/f32-bool.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/expressions/type_conv/vec3/literal/f32-bool.wgsl.expected.ir.dxc.hlsl
@@ -1,3 +1,5 @@
+
+static bool3 u = (true).xxx;
 [numthreads(1, 1, 1)]
 void unused_entry_point() {
 }
diff --git a/test/tint/expressions/type_conv/vec3/literal/f32-bool.wgsl.expected.ir.fxc.hlsl b/test/tint/expressions/type_conv/vec3/literal/f32-bool.wgsl.expected.ir.fxc.hlsl
index 9acd2d7..72f7988 100644
--- a/test/tint/expressions/type_conv/vec3/literal/f32-bool.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/expressions/type_conv/vec3/literal/f32-bool.wgsl.expected.ir.fxc.hlsl
@@ -1,3 +1,5 @@
+
+static bool3 u = (true).xxx;
 [numthreads(1, 1, 1)]
 void unused_entry_point() {
 }
diff --git a/test/tint/expressions/type_conv/vec3/literal/f32-f16.wgsl.expected.ir.dxc.hlsl b/test/tint/expressions/type_conv/vec3/literal/f32-f16.wgsl.expected.ir.dxc.hlsl
index 9acd2d7..5810188 100644
--- a/test/tint/expressions/type_conv/vec3/literal/f32-f16.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/expressions/type_conv/vec3/literal/f32-f16.wgsl.expected.ir.dxc.hlsl
@@ -1,3 +1,5 @@
+
+static vector<float16_t, 3> u = (float16_t(1.0h)).xxx;
 [numthreads(1, 1, 1)]
 void unused_entry_point() {
 }
diff --git a/test/tint/expressions/type_conv/vec3/literal/f32-f16.wgsl.expected.ir.fxc.hlsl b/test/tint/expressions/type_conv/vec3/literal/f32-f16.wgsl.expected.ir.fxc.hlsl
index 9acd2d7..476a2f6 100644
--- a/test/tint/expressions/type_conv/vec3/literal/f32-f16.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/expressions/type_conv/vec3/literal/f32-f16.wgsl.expected.ir.fxc.hlsl
@@ -1,4 +1,11 @@
+SKIP: FAILED
+
+
+static vector<float16_t, 3> u = (float16_t(1.0h)).xxx;
 [numthreads(1, 1, 1)]
 void unused_entry_point() {
 }
 
+FXC validation failure:
+c:\src\dawn\Shader@0x0000023261D8D0A0(2,15-23): error X3000: syntax error: unexpected token 'float16_t'
+
diff --git a/test/tint/expressions/type_conv/vec3/literal/f32-i32.wgsl.expected.ir.dxc.hlsl b/test/tint/expressions/type_conv/vec3/literal/f32-i32.wgsl.expected.ir.dxc.hlsl
index 9acd2d7..a5cfba1 100644
--- a/test/tint/expressions/type_conv/vec3/literal/f32-i32.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/expressions/type_conv/vec3/literal/f32-i32.wgsl.expected.ir.dxc.hlsl
@@ -1,3 +1,5 @@
+
+static int3 u = (1).xxx;
 [numthreads(1, 1, 1)]
 void unused_entry_point() {
 }
diff --git a/test/tint/expressions/type_conv/vec3/literal/f32-i32.wgsl.expected.ir.fxc.hlsl b/test/tint/expressions/type_conv/vec3/literal/f32-i32.wgsl.expected.ir.fxc.hlsl
index 9acd2d7..a5cfba1 100644
--- a/test/tint/expressions/type_conv/vec3/literal/f32-i32.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/expressions/type_conv/vec3/literal/f32-i32.wgsl.expected.ir.fxc.hlsl
@@ -1,3 +1,5 @@
+
+static int3 u = (1).xxx;
 [numthreads(1, 1, 1)]
 void unused_entry_point() {
 }
diff --git a/test/tint/expressions/type_conv/vec3/literal/f32-u32.wgsl.expected.ir.dxc.hlsl b/test/tint/expressions/type_conv/vec3/literal/f32-u32.wgsl.expected.ir.dxc.hlsl
index 9acd2d7..affc5b3 100644
--- a/test/tint/expressions/type_conv/vec3/literal/f32-u32.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/expressions/type_conv/vec3/literal/f32-u32.wgsl.expected.ir.dxc.hlsl
@@ -1,3 +1,5 @@
+
+static uint3 u = (1u).xxx;
 [numthreads(1, 1, 1)]
 void unused_entry_point() {
 }
diff --git a/test/tint/expressions/type_conv/vec3/literal/f32-u32.wgsl.expected.ir.fxc.hlsl b/test/tint/expressions/type_conv/vec3/literal/f32-u32.wgsl.expected.ir.fxc.hlsl
index 9acd2d7..affc5b3 100644
--- a/test/tint/expressions/type_conv/vec3/literal/f32-u32.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/expressions/type_conv/vec3/literal/f32-u32.wgsl.expected.ir.fxc.hlsl
@@ -1,3 +1,5 @@
+
+static uint3 u = (1u).xxx;
 [numthreads(1, 1, 1)]
 void unused_entry_point() {
 }
diff --git a/test/tint/expressions/type_conv/vec3/literal/i32-bool.wgsl.expected.ir.dxc.hlsl b/test/tint/expressions/type_conv/vec3/literal/i32-bool.wgsl.expected.ir.dxc.hlsl
index 9acd2d7..72f7988 100644
--- a/test/tint/expressions/type_conv/vec3/literal/i32-bool.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/expressions/type_conv/vec3/literal/i32-bool.wgsl.expected.ir.dxc.hlsl
@@ -1,3 +1,5 @@
+
+static bool3 u = (true).xxx;
 [numthreads(1, 1, 1)]
 void unused_entry_point() {
 }
diff --git a/test/tint/expressions/type_conv/vec3/literal/i32-bool.wgsl.expected.ir.fxc.hlsl b/test/tint/expressions/type_conv/vec3/literal/i32-bool.wgsl.expected.ir.fxc.hlsl
index 9acd2d7..72f7988 100644
--- a/test/tint/expressions/type_conv/vec3/literal/i32-bool.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/expressions/type_conv/vec3/literal/i32-bool.wgsl.expected.ir.fxc.hlsl
@@ -1,3 +1,5 @@
+
+static bool3 u = (true).xxx;
 [numthreads(1, 1, 1)]
 void unused_entry_point() {
 }
diff --git a/test/tint/expressions/type_conv/vec3/literal/i32-f16.wgsl.expected.ir.dxc.hlsl b/test/tint/expressions/type_conv/vec3/literal/i32-f16.wgsl.expected.ir.dxc.hlsl
index 9acd2d7..5810188 100644
--- a/test/tint/expressions/type_conv/vec3/literal/i32-f16.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/expressions/type_conv/vec3/literal/i32-f16.wgsl.expected.ir.dxc.hlsl
@@ -1,3 +1,5 @@
+
+static vector<float16_t, 3> u = (float16_t(1.0h)).xxx;
 [numthreads(1, 1, 1)]
 void unused_entry_point() {
 }
diff --git a/test/tint/expressions/type_conv/vec3/literal/i32-f16.wgsl.expected.ir.fxc.hlsl b/test/tint/expressions/type_conv/vec3/literal/i32-f16.wgsl.expected.ir.fxc.hlsl
index 9acd2d7..4c697a6 100644
--- a/test/tint/expressions/type_conv/vec3/literal/i32-f16.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/expressions/type_conv/vec3/literal/i32-f16.wgsl.expected.ir.fxc.hlsl
@@ -1,4 +1,11 @@
+SKIP: FAILED
+
+
+static vector<float16_t, 3> u = (float16_t(1.0h)).xxx;
 [numthreads(1, 1, 1)]
 void unused_entry_point() {
 }
 
+FXC validation failure:
+c:\src\dawn\Shader@0x000002666956D500(2,15-23): error X3000: syntax error: unexpected token 'float16_t'
+
diff --git a/test/tint/expressions/type_conv/vec3/literal/i32-f32.wgsl.expected.ir.dxc.hlsl b/test/tint/expressions/type_conv/vec3/literal/i32-f32.wgsl.expected.ir.dxc.hlsl
index 9acd2d7..f122dc1 100644
--- a/test/tint/expressions/type_conv/vec3/literal/i32-f32.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/expressions/type_conv/vec3/literal/i32-f32.wgsl.expected.ir.dxc.hlsl
@@ -1,3 +1,5 @@
+
+static float3 u = (1.0f).xxx;
 [numthreads(1, 1, 1)]
 void unused_entry_point() {
 }
diff --git a/test/tint/expressions/type_conv/vec3/literal/i32-f32.wgsl.expected.ir.fxc.hlsl b/test/tint/expressions/type_conv/vec3/literal/i32-f32.wgsl.expected.ir.fxc.hlsl
index 9acd2d7..f122dc1 100644
--- a/test/tint/expressions/type_conv/vec3/literal/i32-f32.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/expressions/type_conv/vec3/literal/i32-f32.wgsl.expected.ir.fxc.hlsl
@@ -1,3 +1,5 @@
+
+static float3 u = (1.0f).xxx;
 [numthreads(1, 1, 1)]
 void unused_entry_point() {
 }
diff --git a/test/tint/expressions/type_conv/vec3/literal/i32-u32.wgsl.expected.ir.dxc.hlsl b/test/tint/expressions/type_conv/vec3/literal/i32-u32.wgsl.expected.ir.dxc.hlsl
index 9acd2d7..affc5b3 100644
--- a/test/tint/expressions/type_conv/vec3/literal/i32-u32.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/expressions/type_conv/vec3/literal/i32-u32.wgsl.expected.ir.dxc.hlsl
@@ -1,3 +1,5 @@
+
+static uint3 u = (1u).xxx;
 [numthreads(1, 1, 1)]
 void unused_entry_point() {
 }
diff --git a/test/tint/expressions/type_conv/vec3/literal/i32-u32.wgsl.expected.ir.fxc.hlsl b/test/tint/expressions/type_conv/vec3/literal/i32-u32.wgsl.expected.ir.fxc.hlsl
index 9acd2d7..affc5b3 100644
--- a/test/tint/expressions/type_conv/vec3/literal/i32-u32.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/expressions/type_conv/vec3/literal/i32-u32.wgsl.expected.ir.fxc.hlsl
@@ -1,3 +1,5 @@
+
+static uint3 u = (1u).xxx;
 [numthreads(1, 1, 1)]
 void unused_entry_point() {
 }
diff --git a/test/tint/expressions/type_conv/vec3/literal/u32-bool.wgsl.expected.ir.dxc.hlsl b/test/tint/expressions/type_conv/vec3/literal/u32-bool.wgsl.expected.ir.dxc.hlsl
index 9acd2d7..72f7988 100644
--- a/test/tint/expressions/type_conv/vec3/literal/u32-bool.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/expressions/type_conv/vec3/literal/u32-bool.wgsl.expected.ir.dxc.hlsl
@@ -1,3 +1,5 @@
+
+static bool3 u = (true).xxx;
 [numthreads(1, 1, 1)]
 void unused_entry_point() {
 }
diff --git a/test/tint/expressions/type_conv/vec3/literal/u32-bool.wgsl.expected.ir.fxc.hlsl b/test/tint/expressions/type_conv/vec3/literal/u32-bool.wgsl.expected.ir.fxc.hlsl
index 9acd2d7..72f7988 100644
--- a/test/tint/expressions/type_conv/vec3/literal/u32-bool.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/expressions/type_conv/vec3/literal/u32-bool.wgsl.expected.ir.fxc.hlsl
@@ -1,3 +1,5 @@
+
+static bool3 u = (true).xxx;
 [numthreads(1, 1, 1)]
 void unused_entry_point() {
 }
diff --git a/test/tint/expressions/type_conv/vec3/literal/u32-f16.wgsl.expected.ir.dxc.hlsl b/test/tint/expressions/type_conv/vec3/literal/u32-f16.wgsl.expected.ir.dxc.hlsl
index 9acd2d7..5810188 100644
--- a/test/tint/expressions/type_conv/vec3/literal/u32-f16.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/expressions/type_conv/vec3/literal/u32-f16.wgsl.expected.ir.dxc.hlsl
@@ -1,3 +1,5 @@
+
+static vector<float16_t, 3> u = (float16_t(1.0h)).xxx;
 [numthreads(1, 1, 1)]
 void unused_entry_point() {
 }
diff --git a/test/tint/expressions/type_conv/vec3/literal/u32-f16.wgsl.expected.ir.fxc.hlsl b/test/tint/expressions/type_conv/vec3/literal/u32-f16.wgsl.expected.ir.fxc.hlsl
index 9acd2d7..3c2df40 100644
--- a/test/tint/expressions/type_conv/vec3/literal/u32-f16.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/expressions/type_conv/vec3/literal/u32-f16.wgsl.expected.ir.fxc.hlsl
@@ -1,4 +1,11 @@
+SKIP: FAILED
+
+
+static vector<float16_t, 3> u = (float16_t(1.0h)).xxx;
 [numthreads(1, 1, 1)]
 void unused_entry_point() {
 }
 
+FXC validation failure:
+c:\src\dawn\Shader@0x0000020DEE5343E0(2,15-23): error X3000: syntax error: unexpected token 'float16_t'
+
diff --git a/test/tint/expressions/type_conv/vec3/literal/u32-f32.wgsl.expected.ir.dxc.hlsl b/test/tint/expressions/type_conv/vec3/literal/u32-f32.wgsl.expected.ir.dxc.hlsl
index 9acd2d7..f122dc1 100644
--- a/test/tint/expressions/type_conv/vec3/literal/u32-f32.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/expressions/type_conv/vec3/literal/u32-f32.wgsl.expected.ir.dxc.hlsl
@@ -1,3 +1,5 @@
+
+static float3 u = (1.0f).xxx;
 [numthreads(1, 1, 1)]
 void unused_entry_point() {
 }
diff --git a/test/tint/expressions/type_conv/vec3/literal/u32-f32.wgsl.expected.ir.fxc.hlsl b/test/tint/expressions/type_conv/vec3/literal/u32-f32.wgsl.expected.ir.fxc.hlsl
index 9acd2d7..f122dc1 100644
--- a/test/tint/expressions/type_conv/vec3/literal/u32-f32.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/expressions/type_conv/vec3/literal/u32-f32.wgsl.expected.ir.fxc.hlsl
@@ -1,3 +1,5 @@
+
+static float3 u = (1.0f).xxx;
 [numthreads(1, 1, 1)]
 void unused_entry_point() {
 }
diff --git a/test/tint/expressions/type_conv/vec3/literal/u32-i32.wgsl.expected.ir.dxc.hlsl b/test/tint/expressions/type_conv/vec3/literal/u32-i32.wgsl.expected.ir.dxc.hlsl
index 9acd2d7..a5cfba1 100644
--- a/test/tint/expressions/type_conv/vec3/literal/u32-i32.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/expressions/type_conv/vec3/literal/u32-i32.wgsl.expected.ir.dxc.hlsl
@@ -1,3 +1,5 @@
+
+static int3 u = (1).xxx;
 [numthreads(1, 1, 1)]
 void unused_entry_point() {
 }
diff --git a/test/tint/expressions/type_conv/vec3/literal/u32-i32.wgsl.expected.ir.fxc.hlsl b/test/tint/expressions/type_conv/vec3/literal/u32-i32.wgsl.expected.ir.fxc.hlsl
index 9acd2d7..a5cfba1 100644
--- a/test/tint/expressions/type_conv/vec3/literal/u32-i32.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/expressions/type_conv/vec3/literal/u32-i32.wgsl.expected.ir.fxc.hlsl
@@ -1,3 +1,5 @@
+
+static int3 u = (1).xxx;
 [numthreads(1, 1, 1)]
 void unused_entry_point() {
 }
diff --git a/test/tint/expressions/type_conv/vec3/var/bool-f16.wgsl.expected.ir.dxc.hlsl b/test/tint/expressions/type_conv/vec3/var/bool-f16.wgsl.expected.ir.dxc.hlsl
index 48e23f4..c8e452a 100644
--- a/test/tint/expressions/type_conv/vec3/var/bool-f16.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/expressions/type_conv/vec3/var/bool-f16.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,10 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Convert
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+static bool3 u = (true).xxx;
+void f() {
+  vector<float16_t, 3> v = vector<float16_t, 3>(u);
+}
+
+[numthreads(1, 1, 1)]
+void unused_entry_point() {
+}
+
diff --git a/test/tint/expressions/type_conv/vec3/var/bool-f16.wgsl.expected.ir.fxc.hlsl b/test/tint/expressions/type_conv/vec3/var/bool-f16.wgsl.expected.ir.fxc.hlsl
index 48e23f4..97db3c2 100644
--- a/test/tint/expressions/type_conv/vec3/var/bool-f16.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/expressions/type_conv/vec3/var/bool-f16.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,15 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Convert
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+
+static bool3 u = (true).xxx;
+void f() {
+  vector<float16_t, 3> v = vector<float16_t, 3>(u);
+}
+
+[numthreads(1, 1, 1)]
+void unused_entry_point() {
+}
+
+FXC validation failure:
+c:\src\dawn\Shader@0x000001866D7F7670(4,10-18): error X3000: syntax error: unexpected token 'float16_t'
+
diff --git a/test/tint/expressions/type_conv/vec3/var/bool-f32.wgsl.expected.ir.dxc.hlsl b/test/tint/expressions/type_conv/vec3/var/bool-f32.wgsl.expected.ir.dxc.hlsl
index 48e23f4..cacab30 100644
--- a/test/tint/expressions/type_conv/vec3/var/bool-f32.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/expressions/type_conv/vec3/var/bool-f32.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,10 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Convert
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+static bool3 u = (true).xxx;
+void f() {
+  float3 v = float3(u);
+}
+
+[numthreads(1, 1, 1)]
+void unused_entry_point() {
+}
+
diff --git a/test/tint/expressions/type_conv/vec3/var/bool-f32.wgsl.expected.ir.fxc.hlsl b/test/tint/expressions/type_conv/vec3/var/bool-f32.wgsl.expected.ir.fxc.hlsl
index 48e23f4..cacab30 100644
--- a/test/tint/expressions/type_conv/vec3/var/bool-f32.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/expressions/type_conv/vec3/var/bool-f32.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,10 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Convert
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+static bool3 u = (true).xxx;
+void f() {
+  float3 v = float3(u);
+}
+
+[numthreads(1, 1, 1)]
+void unused_entry_point() {
+}
+
diff --git a/test/tint/expressions/type_conv/vec3/var/bool-i32.wgsl.expected.ir.dxc.hlsl b/test/tint/expressions/type_conv/vec3/var/bool-i32.wgsl.expected.ir.dxc.hlsl
index 48e23f4..8e5d574 100644
--- a/test/tint/expressions/type_conv/vec3/var/bool-i32.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/expressions/type_conv/vec3/var/bool-i32.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,10 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Convert
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+static bool3 u = (true).xxx;
+void f() {
+  int3 v = int3(u);
+}
+
+[numthreads(1, 1, 1)]
+void unused_entry_point() {
+}
+
diff --git a/test/tint/expressions/type_conv/vec3/var/bool-i32.wgsl.expected.ir.fxc.hlsl b/test/tint/expressions/type_conv/vec3/var/bool-i32.wgsl.expected.ir.fxc.hlsl
index 48e23f4..8e5d574 100644
--- a/test/tint/expressions/type_conv/vec3/var/bool-i32.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/expressions/type_conv/vec3/var/bool-i32.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,10 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Convert
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+static bool3 u = (true).xxx;
+void f() {
+  int3 v = int3(u);
+}
+
+[numthreads(1, 1, 1)]
+void unused_entry_point() {
+}
+
diff --git a/test/tint/expressions/type_conv/vec3/var/bool-u32.wgsl.expected.ir.dxc.hlsl b/test/tint/expressions/type_conv/vec3/var/bool-u32.wgsl.expected.ir.dxc.hlsl
index 48e23f4..10cff40 100644
--- a/test/tint/expressions/type_conv/vec3/var/bool-u32.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/expressions/type_conv/vec3/var/bool-u32.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,10 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Convert
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+static bool3 u = (true).xxx;
+void f() {
+  uint3 v = uint3(u);
+}
+
+[numthreads(1, 1, 1)]
+void unused_entry_point() {
+}
+
diff --git a/test/tint/expressions/type_conv/vec3/var/bool-u32.wgsl.expected.ir.fxc.hlsl b/test/tint/expressions/type_conv/vec3/var/bool-u32.wgsl.expected.ir.fxc.hlsl
index 48e23f4..10cff40 100644
--- a/test/tint/expressions/type_conv/vec3/var/bool-u32.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/expressions/type_conv/vec3/var/bool-u32.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,10 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Convert
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+static bool3 u = (true).xxx;
+void f() {
+  uint3 v = uint3(u);
+}
+
+[numthreads(1, 1, 1)]
+void unused_entry_point() {
+}
+
diff --git a/test/tint/expressions/type_conv/vec3/var/f16-bool.wgsl.expected.ir.dxc.hlsl b/test/tint/expressions/type_conv/vec3/var/f16-bool.wgsl.expected.ir.dxc.hlsl
index 48e23f4..f545f8b 100644
--- a/test/tint/expressions/type_conv/vec3/var/f16-bool.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/expressions/type_conv/vec3/var/f16-bool.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,10 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Convert
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+static vector<float16_t, 3> u = (float16_t(1.0h)).xxx;
+void f() {
+  bool3 v = bool3(u);
+}
+
+[numthreads(1, 1, 1)]
+void unused_entry_point() {
+}
+
diff --git a/test/tint/expressions/type_conv/vec3/var/f16-bool.wgsl.expected.ir.fxc.hlsl b/test/tint/expressions/type_conv/vec3/var/f16-bool.wgsl.expected.ir.fxc.hlsl
index 48e23f4..6ebbc4f 100644
--- a/test/tint/expressions/type_conv/vec3/var/f16-bool.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/expressions/type_conv/vec3/var/f16-bool.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,15 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Convert
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+
+static vector<float16_t, 3> u = (float16_t(1.0h)).xxx;
+void f() {
+  bool3 v = bool3(u);
+}
+
+[numthreads(1, 1, 1)]
+void unused_entry_point() {
+}
+
+FXC validation failure:
+c:\src\dawn\Shader@0x00000288A1525980(2,15-23): error X3000: syntax error: unexpected token 'float16_t'
+
diff --git a/test/tint/expressions/type_conv/vec3/var/f16-f32.wgsl.expected.ir.dxc.hlsl b/test/tint/expressions/type_conv/vec3/var/f16-f32.wgsl.expected.ir.dxc.hlsl
index 48e23f4..272c1e8 100644
--- a/test/tint/expressions/type_conv/vec3/var/f16-f32.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/expressions/type_conv/vec3/var/f16-f32.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,10 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Convert
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+static vector<float16_t, 3> u = (float16_t(1.0h)).xxx;
+void f() {
+  float3 v = float3(u);
+}
+
+[numthreads(1, 1, 1)]
+void unused_entry_point() {
+}
+
diff --git a/test/tint/expressions/type_conv/vec3/var/f16-f32.wgsl.expected.ir.fxc.hlsl b/test/tint/expressions/type_conv/vec3/var/f16-f32.wgsl.expected.ir.fxc.hlsl
index 48e23f4..f9d8bc3 100644
--- a/test/tint/expressions/type_conv/vec3/var/f16-f32.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/expressions/type_conv/vec3/var/f16-f32.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,15 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Convert
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+
+static vector<float16_t, 3> u = (float16_t(1.0h)).xxx;
+void f() {
+  float3 v = float3(u);
+}
+
+[numthreads(1, 1, 1)]
+void unused_entry_point() {
+}
+
+FXC validation failure:
+c:\src\dawn\Shader@0x00000282F21C5980(2,15-23): error X3000: syntax error: unexpected token 'float16_t'
+
diff --git a/test/tint/expressions/type_conv/vec3/var/f16-i32.wgsl.expected.ir.dxc.hlsl b/test/tint/expressions/type_conv/vec3/var/f16-i32.wgsl.expected.ir.dxc.hlsl
index 48e23f4..a5e83e2 100644
--- a/test/tint/expressions/type_conv/vec3/var/f16-i32.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/expressions/type_conv/vec3/var/f16-i32.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,14 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Convert
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+static vector<float16_t, 3> u = (float16_t(1.0h)).xxx;
+int3 tint_v3f16_to_v3i32(vector<float16_t, 3> value) {
+  return (((value <= (float16_t(65504.0h)).xxx)) ? ((((value >= (float16_t(-65504.0h)).xxx)) ? (int3(value)) : ((-2147483648).xxx))) : ((2147483647).xxx));
+}
+
+void f() {
+  int3 v = tint_v3f16_to_v3i32(u);
+}
+
+[numthreads(1, 1, 1)]
+void unused_entry_point() {
+}
+
diff --git a/test/tint/expressions/type_conv/vec3/var/f16-i32.wgsl.expected.ir.fxc.hlsl b/test/tint/expressions/type_conv/vec3/var/f16-i32.wgsl.expected.ir.fxc.hlsl
index 48e23f4..d541caf 100644
--- a/test/tint/expressions/type_conv/vec3/var/f16-i32.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/expressions/type_conv/vec3/var/f16-i32.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,19 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Convert
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+
+static vector<float16_t, 3> u = (float16_t(1.0h)).xxx;
+int3 tint_v3f16_to_v3i32(vector<float16_t, 3> value) {
+  return (((value <= (float16_t(65504.0h)).xxx)) ? ((((value >= (float16_t(-65504.0h)).xxx)) ? (int3(value)) : ((-2147483648).xxx))) : ((2147483647).xxx));
+}
+
+void f() {
+  int3 v = tint_v3f16_to_v3i32(u);
+}
+
+[numthreads(1, 1, 1)]
+void unused_entry_point() {
+}
+
+FXC validation failure:
+c:\src\dawn\Shader@0x000002C2077F4240(2,15-23): error X3000: syntax error: unexpected token 'float16_t'
+
diff --git a/test/tint/expressions/type_conv/vec3/var/f16-u32.wgsl.expected.ir.dxc.hlsl b/test/tint/expressions/type_conv/vec3/var/f16-u32.wgsl.expected.ir.dxc.hlsl
index 48e23f4..6b3eb51 100644
--- a/test/tint/expressions/type_conv/vec3/var/f16-u32.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/expressions/type_conv/vec3/var/f16-u32.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,14 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Convert
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+static vector<float16_t, 3> u = (float16_t(1.0h)).xxx;
+uint3 tint_v3f16_to_v3u32(vector<float16_t, 3> value) {
+  return (((value <= (float16_t(65504.0h)).xxx)) ? ((((value >= (float16_t(0.0h)).xxx)) ? (uint3(value)) : ((0u).xxx))) : ((4294967295u).xxx));
+}
+
+void f() {
+  uint3 v = tint_v3f16_to_v3u32(u);
+}
+
+[numthreads(1, 1, 1)]
+void unused_entry_point() {
+}
+
diff --git a/test/tint/expressions/type_conv/vec3/var/f16-u32.wgsl.expected.ir.fxc.hlsl b/test/tint/expressions/type_conv/vec3/var/f16-u32.wgsl.expected.ir.fxc.hlsl
index 48e23f4..437b5f2 100644
--- a/test/tint/expressions/type_conv/vec3/var/f16-u32.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/expressions/type_conv/vec3/var/f16-u32.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,19 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Convert
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+
+static vector<float16_t, 3> u = (float16_t(1.0h)).xxx;
+uint3 tint_v3f16_to_v3u32(vector<float16_t, 3> value) {
+  return (((value <= (float16_t(65504.0h)).xxx)) ? ((((value >= (float16_t(0.0h)).xxx)) ? (uint3(value)) : ((0u).xxx))) : ((4294967295u).xxx));
+}
+
+void f() {
+  uint3 v = tint_v3f16_to_v3u32(u);
+}
+
+[numthreads(1, 1, 1)]
+void unused_entry_point() {
+}
+
+FXC validation failure:
+c:\src\dawn\Shader@0x00000166D54B3080(2,15-23): error X3000: syntax error: unexpected token 'float16_t'
+
diff --git a/test/tint/expressions/type_conv/vec3/var/f32-bool.wgsl.expected.ir.dxc.hlsl b/test/tint/expressions/type_conv/vec3/var/f32-bool.wgsl.expected.ir.dxc.hlsl
index 48e23f4..5ac8735 100644
--- a/test/tint/expressions/type_conv/vec3/var/f32-bool.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/expressions/type_conv/vec3/var/f32-bool.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,10 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Convert
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+static float3 u = (1.0f).xxx;
+void f() {
+  bool3 v = bool3(u);
+}
+
+[numthreads(1, 1, 1)]
+void unused_entry_point() {
+}
+
diff --git a/test/tint/expressions/type_conv/vec3/var/f32-bool.wgsl.expected.ir.fxc.hlsl b/test/tint/expressions/type_conv/vec3/var/f32-bool.wgsl.expected.ir.fxc.hlsl
index 48e23f4..5ac8735 100644
--- a/test/tint/expressions/type_conv/vec3/var/f32-bool.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/expressions/type_conv/vec3/var/f32-bool.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,10 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Convert
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+static float3 u = (1.0f).xxx;
+void f() {
+  bool3 v = bool3(u);
+}
+
+[numthreads(1, 1, 1)]
+void unused_entry_point() {
+}
+
diff --git a/test/tint/expressions/type_conv/vec3/var/f32-f16.wgsl.expected.ir.dxc.hlsl b/test/tint/expressions/type_conv/vec3/var/f32-f16.wgsl.expected.ir.dxc.hlsl
index 48e23f4..3f8fbfb 100644
--- a/test/tint/expressions/type_conv/vec3/var/f32-f16.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/expressions/type_conv/vec3/var/f32-f16.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,10 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Convert
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+static float3 u = (1.0f).xxx;
+void f() {
+  vector<float16_t, 3> v = vector<float16_t, 3>(u);
+}
+
+[numthreads(1, 1, 1)]
+void unused_entry_point() {
+}
+
diff --git a/test/tint/expressions/type_conv/vec3/var/f32-f16.wgsl.expected.ir.fxc.hlsl b/test/tint/expressions/type_conv/vec3/var/f32-f16.wgsl.expected.ir.fxc.hlsl
index 48e23f4..ae398af 100644
--- a/test/tint/expressions/type_conv/vec3/var/f32-f16.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/expressions/type_conv/vec3/var/f32-f16.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,15 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Convert
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+
+static float3 u = (1.0f).xxx;
+void f() {
+  vector<float16_t, 3> v = vector<float16_t, 3>(u);
+}
+
+[numthreads(1, 1, 1)]
+void unused_entry_point() {
+}
+
+FXC validation failure:
+c:\src\dawn\Shader@0x00000271C0525980(4,10-18): error X3000: syntax error: unexpected token 'float16_t'
+
diff --git a/test/tint/expressions/type_conv/vec3/var/f32-i32.wgsl.expected.ir.dxc.hlsl b/test/tint/expressions/type_conv/vec3/var/f32-i32.wgsl.expected.ir.dxc.hlsl
index 48e23f4..be618e8 100644
--- a/test/tint/expressions/type_conv/vec3/var/f32-i32.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/expressions/type_conv/vec3/var/f32-i32.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,14 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Convert
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+static float3 u = (1.0f).xxx;
+int3 tint_v3f32_to_v3i32(float3 value) {
+  return (((value <= (2147483520.0f).xxx)) ? ((((value >= (-2147483648.0f).xxx)) ? (int3(value)) : ((-2147483648).xxx))) : ((2147483647).xxx));
+}
+
+void f() {
+  int3 v = tint_v3f32_to_v3i32(u);
+}
+
+[numthreads(1, 1, 1)]
+void unused_entry_point() {
+}
+
diff --git a/test/tint/expressions/type_conv/vec3/var/f32-i32.wgsl.expected.ir.fxc.hlsl b/test/tint/expressions/type_conv/vec3/var/f32-i32.wgsl.expected.ir.fxc.hlsl
index 48e23f4..be618e8 100644
--- a/test/tint/expressions/type_conv/vec3/var/f32-i32.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/expressions/type_conv/vec3/var/f32-i32.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,14 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Convert
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+static float3 u = (1.0f).xxx;
+int3 tint_v3f32_to_v3i32(float3 value) {
+  return (((value <= (2147483520.0f).xxx)) ? ((((value >= (-2147483648.0f).xxx)) ? (int3(value)) : ((-2147483648).xxx))) : ((2147483647).xxx));
+}
+
+void f() {
+  int3 v = tint_v3f32_to_v3i32(u);
+}
+
+[numthreads(1, 1, 1)]
+void unused_entry_point() {
+}
+
diff --git a/test/tint/expressions/type_conv/vec3/var/f32-u32.wgsl.expected.ir.dxc.hlsl b/test/tint/expressions/type_conv/vec3/var/f32-u32.wgsl.expected.ir.dxc.hlsl
index 48e23f4..cf1a2f5 100644
--- a/test/tint/expressions/type_conv/vec3/var/f32-u32.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/expressions/type_conv/vec3/var/f32-u32.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,14 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Convert
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+static float3 u = (1.0f).xxx;
+uint3 tint_v3f32_to_v3u32(float3 value) {
+  return (((value <= (4294967040.0f).xxx)) ? ((((value >= (0.0f).xxx)) ? (uint3(value)) : ((0u).xxx))) : ((4294967295u).xxx));
+}
+
+void f() {
+  uint3 v = tint_v3f32_to_v3u32(u);
+}
+
+[numthreads(1, 1, 1)]
+void unused_entry_point() {
+}
+
diff --git a/test/tint/expressions/type_conv/vec3/var/f32-u32.wgsl.expected.ir.fxc.hlsl b/test/tint/expressions/type_conv/vec3/var/f32-u32.wgsl.expected.ir.fxc.hlsl
index 48e23f4..cf1a2f5 100644
--- a/test/tint/expressions/type_conv/vec3/var/f32-u32.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/expressions/type_conv/vec3/var/f32-u32.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,14 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Convert
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+static float3 u = (1.0f).xxx;
+uint3 tint_v3f32_to_v3u32(float3 value) {
+  return (((value <= (4294967040.0f).xxx)) ? ((((value >= (0.0f).xxx)) ? (uint3(value)) : ((0u).xxx))) : ((4294967295u).xxx));
+}
+
+void f() {
+  uint3 v = tint_v3f32_to_v3u32(u);
+}
+
+[numthreads(1, 1, 1)]
+void unused_entry_point() {
+}
+
diff --git a/test/tint/expressions/type_conv/vec3/var/i32-bool.wgsl.expected.ir.dxc.hlsl b/test/tint/expressions/type_conv/vec3/var/i32-bool.wgsl.expected.ir.dxc.hlsl
index 48e23f4..7466282 100644
--- a/test/tint/expressions/type_conv/vec3/var/i32-bool.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/expressions/type_conv/vec3/var/i32-bool.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,10 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Convert
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+static int3 u = (1).xxx;
+void f() {
+  bool3 v = bool3(u);
+}
+
+[numthreads(1, 1, 1)]
+void unused_entry_point() {
+}
+
diff --git a/test/tint/expressions/type_conv/vec3/var/i32-bool.wgsl.expected.ir.fxc.hlsl b/test/tint/expressions/type_conv/vec3/var/i32-bool.wgsl.expected.ir.fxc.hlsl
index 48e23f4..7466282 100644
--- a/test/tint/expressions/type_conv/vec3/var/i32-bool.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/expressions/type_conv/vec3/var/i32-bool.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,10 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Convert
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+static int3 u = (1).xxx;
+void f() {
+  bool3 v = bool3(u);
+}
+
+[numthreads(1, 1, 1)]
+void unused_entry_point() {
+}
+
diff --git a/test/tint/expressions/type_conv/vec3/var/i32-f16.wgsl.expected.ir.dxc.hlsl b/test/tint/expressions/type_conv/vec3/var/i32-f16.wgsl.expected.ir.dxc.hlsl
index 48e23f4..a43d98d 100644
--- a/test/tint/expressions/type_conv/vec3/var/i32-f16.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/expressions/type_conv/vec3/var/i32-f16.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,10 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Convert
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+static int3 u = (1).xxx;
+void f() {
+  vector<float16_t, 3> v = vector<float16_t, 3>(u);
+}
+
+[numthreads(1, 1, 1)]
+void unused_entry_point() {
+}
+
diff --git a/test/tint/expressions/type_conv/vec3/var/i32-f16.wgsl.expected.ir.fxc.hlsl b/test/tint/expressions/type_conv/vec3/var/i32-f16.wgsl.expected.ir.fxc.hlsl
index 48e23f4..963682e 100644
--- a/test/tint/expressions/type_conv/vec3/var/i32-f16.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/expressions/type_conv/vec3/var/i32-f16.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,15 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Convert
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+
+static int3 u = (1).xxx;
+void f() {
+  vector<float16_t, 3> v = vector<float16_t, 3>(u);
+}
+
+[numthreads(1, 1, 1)]
+void unused_entry_point() {
+}
+
+FXC validation failure:
+c:\src\dawn\Shader@0x0000017DE66AD710(4,10-18): error X3000: syntax error: unexpected token 'float16_t'
+
diff --git a/test/tint/expressions/type_conv/vec3/var/i32-f32.wgsl.expected.ir.dxc.hlsl b/test/tint/expressions/type_conv/vec3/var/i32-f32.wgsl.expected.ir.dxc.hlsl
index 48e23f4..6f2836b 100644
--- a/test/tint/expressions/type_conv/vec3/var/i32-f32.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/expressions/type_conv/vec3/var/i32-f32.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,10 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Convert
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+static int3 u = (1).xxx;
+void f() {
+  float3 v = float3(u);
+}
+
+[numthreads(1, 1, 1)]
+void unused_entry_point() {
+}
+
diff --git a/test/tint/expressions/type_conv/vec3/var/i32-f32.wgsl.expected.ir.fxc.hlsl b/test/tint/expressions/type_conv/vec3/var/i32-f32.wgsl.expected.ir.fxc.hlsl
index 48e23f4..6f2836b 100644
--- a/test/tint/expressions/type_conv/vec3/var/i32-f32.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/expressions/type_conv/vec3/var/i32-f32.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,10 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Convert
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+static int3 u = (1).xxx;
+void f() {
+  float3 v = float3(u);
+}
+
+[numthreads(1, 1, 1)]
+void unused_entry_point() {
+}
+
diff --git a/test/tint/expressions/type_conv/vec3/var/i32-u32.wgsl.expected.ir.dxc.hlsl b/test/tint/expressions/type_conv/vec3/var/i32-u32.wgsl.expected.ir.dxc.hlsl
index 48e23f4..685c96a 100644
--- a/test/tint/expressions/type_conv/vec3/var/i32-u32.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/expressions/type_conv/vec3/var/i32-u32.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,10 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Convert
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+static int3 u = (1).xxx;
+void f() {
+  uint3 v = uint3(u);
+}
+
+[numthreads(1, 1, 1)]
+void unused_entry_point() {
+}
+
diff --git a/test/tint/expressions/type_conv/vec3/var/i32-u32.wgsl.expected.ir.fxc.hlsl b/test/tint/expressions/type_conv/vec3/var/i32-u32.wgsl.expected.ir.fxc.hlsl
index 48e23f4..685c96a 100644
--- a/test/tint/expressions/type_conv/vec3/var/i32-u32.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/expressions/type_conv/vec3/var/i32-u32.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,10 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Convert
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+static int3 u = (1).xxx;
+void f() {
+  uint3 v = uint3(u);
+}
+
+[numthreads(1, 1, 1)]
+void unused_entry_point() {
+}
+
diff --git a/test/tint/expressions/type_conv/vec3/var/u32-bool.wgsl.expected.ir.dxc.hlsl b/test/tint/expressions/type_conv/vec3/var/u32-bool.wgsl.expected.ir.dxc.hlsl
index 48e23f4..4168fe9 100644
--- a/test/tint/expressions/type_conv/vec3/var/u32-bool.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/expressions/type_conv/vec3/var/u32-bool.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,10 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Convert
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+static uint3 u = (1u).xxx;
+void f() {
+  bool3 v = bool3(u);
+}
+
+[numthreads(1, 1, 1)]
+void unused_entry_point() {
+}
+
diff --git a/test/tint/expressions/type_conv/vec3/var/u32-bool.wgsl.expected.ir.fxc.hlsl b/test/tint/expressions/type_conv/vec3/var/u32-bool.wgsl.expected.ir.fxc.hlsl
index 48e23f4..4168fe9 100644
--- a/test/tint/expressions/type_conv/vec3/var/u32-bool.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/expressions/type_conv/vec3/var/u32-bool.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,10 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Convert
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+static uint3 u = (1u).xxx;
+void f() {
+  bool3 v = bool3(u);
+}
+
+[numthreads(1, 1, 1)]
+void unused_entry_point() {
+}
+
diff --git a/test/tint/expressions/type_conv/vec3/var/u32-f16.wgsl.expected.ir.dxc.hlsl b/test/tint/expressions/type_conv/vec3/var/u32-f16.wgsl.expected.ir.dxc.hlsl
index 48e23f4..6cd55d1 100644
--- a/test/tint/expressions/type_conv/vec3/var/u32-f16.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/expressions/type_conv/vec3/var/u32-f16.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,10 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Convert
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+static uint3 u = (1u).xxx;
+void f() {
+  vector<float16_t, 3> v = vector<float16_t, 3>(u);
+}
+
+[numthreads(1, 1, 1)]
+void unused_entry_point() {
+}
+
diff --git a/test/tint/expressions/type_conv/vec3/var/u32-f16.wgsl.expected.ir.fxc.hlsl b/test/tint/expressions/type_conv/vec3/var/u32-f16.wgsl.expected.ir.fxc.hlsl
index 48e23f4..3991e9f 100644
--- a/test/tint/expressions/type_conv/vec3/var/u32-f16.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/expressions/type_conv/vec3/var/u32-f16.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,15 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Convert
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+
+static uint3 u = (1u).xxx;
+void f() {
+  vector<float16_t, 3> v = vector<float16_t, 3>(u);
+}
+
+[numthreads(1, 1, 1)]
+void unused_entry_point() {
+}
+
+FXC validation failure:
+c:\src\dawn\Shader@0x000001CB048F3760(4,10-18): error X3000: syntax error: unexpected token 'float16_t'
+
diff --git a/test/tint/expressions/type_conv/vec3/var/u32-f32.wgsl.expected.ir.dxc.hlsl b/test/tint/expressions/type_conv/vec3/var/u32-f32.wgsl.expected.ir.dxc.hlsl
index 48e23f4..8e20e6f 100644
--- a/test/tint/expressions/type_conv/vec3/var/u32-f32.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/expressions/type_conv/vec3/var/u32-f32.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,10 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Convert
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+static uint3 u = (1u).xxx;
+void f() {
+  float3 v = float3(u);
+}
+
+[numthreads(1, 1, 1)]
+void unused_entry_point() {
+}
+
diff --git a/test/tint/expressions/type_conv/vec3/var/u32-f32.wgsl.expected.ir.fxc.hlsl b/test/tint/expressions/type_conv/vec3/var/u32-f32.wgsl.expected.ir.fxc.hlsl
index 48e23f4..8e20e6f 100644
--- a/test/tint/expressions/type_conv/vec3/var/u32-f32.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/expressions/type_conv/vec3/var/u32-f32.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,10 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Convert
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+static uint3 u = (1u).xxx;
+void f() {
+  float3 v = float3(u);
+}
+
+[numthreads(1, 1, 1)]
+void unused_entry_point() {
+}
+
diff --git a/test/tint/expressions/type_conv/vec3/var/u32-i32.wgsl.expected.ir.dxc.hlsl b/test/tint/expressions/type_conv/vec3/var/u32-i32.wgsl.expected.ir.dxc.hlsl
index 48e23f4..d62d023 100644
--- a/test/tint/expressions/type_conv/vec3/var/u32-i32.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/expressions/type_conv/vec3/var/u32-i32.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,10 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Convert
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+static uint3 u = (1u).xxx;
+void f() {
+  int3 v = int3(u);
+}
+
+[numthreads(1, 1, 1)]
+void unused_entry_point() {
+}
+
diff --git a/test/tint/expressions/type_conv/vec3/var/u32-i32.wgsl.expected.ir.fxc.hlsl b/test/tint/expressions/type_conv/vec3/var/u32-i32.wgsl.expected.ir.fxc.hlsl
index 48e23f4..d62d023 100644
--- a/test/tint/expressions/type_conv/vec3/var/u32-i32.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/expressions/type_conv/vec3/var/u32-i32.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,10 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Convert
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+static uint3 u = (1u).xxx;
+void f() {
+  int3 v = int3(u);
+}
+
+[numthreads(1, 1, 1)]
+void unused_entry_point() {
+}
+
diff --git a/test/tint/expressions/type_conv/vec4/function/bool-f16.wgsl.expected.ir.dxc.hlsl b/test/tint/expressions/type_conv/vec4/function/bool-f16.wgsl.expected.ir.dxc.hlsl
index c6e1d96..816bf52 100644
--- a/test/tint/expressions/type_conv/vec4/function/bool-f16.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/expressions/type_conv/vec4/function/bool-f16.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,15 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Construct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+static bool t = false;
+bool4 m() {
+  t = true;
+  return bool4((t).xxxx);
+}
+
+void f() {
+  vector<float16_t, 4> v = vector<float16_t, 4>(m());
+}
+
+[numthreads(1, 1, 1)]
+void unused_entry_point() {
+}
+
diff --git a/test/tint/expressions/type_conv/vec4/function/bool-f16.wgsl.expected.ir.fxc.hlsl b/test/tint/expressions/type_conv/vec4/function/bool-f16.wgsl.expected.ir.fxc.hlsl
index c6e1d96..6dfe837 100644
--- a/test/tint/expressions/type_conv/vec4/function/bool-f16.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/expressions/type_conv/vec4/function/bool-f16.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,20 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Construct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+
+static bool t = false;
+bool4 m() {
+  t = true;
+  return bool4((t).xxxx);
+}
+
+void f() {
+  vector<float16_t, 4> v = vector<float16_t, 4>(m());
+}
+
+[numthreads(1, 1, 1)]
+void unused_entry_point() {
+}
+
+FXC validation failure:
+c:\src\dawn\Shader@0x0000028D8CA2E860(9,10-18): error X3000: syntax error: unexpected token 'float16_t'
+
diff --git a/test/tint/expressions/type_conv/vec4/function/bool-f32.wgsl.expected.ir.dxc.hlsl b/test/tint/expressions/type_conv/vec4/function/bool-f32.wgsl.expected.ir.dxc.hlsl
index c6e1d96..a98f0e8 100644
--- a/test/tint/expressions/type_conv/vec4/function/bool-f32.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/expressions/type_conv/vec4/function/bool-f32.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,15 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Construct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+static bool t = false;
+bool4 m() {
+  t = true;
+  return bool4((t).xxxx);
+}
+
+void f() {
+  float4 v = float4(m());
+}
+
+[numthreads(1, 1, 1)]
+void unused_entry_point() {
+}
+
diff --git a/test/tint/expressions/type_conv/vec4/function/bool-f32.wgsl.expected.ir.fxc.hlsl b/test/tint/expressions/type_conv/vec4/function/bool-f32.wgsl.expected.ir.fxc.hlsl
index c6e1d96..a98f0e8 100644
--- a/test/tint/expressions/type_conv/vec4/function/bool-f32.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/expressions/type_conv/vec4/function/bool-f32.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,15 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Construct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+static bool t = false;
+bool4 m() {
+  t = true;
+  return bool4((t).xxxx);
+}
+
+void f() {
+  float4 v = float4(m());
+}
+
+[numthreads(1, 1, 1)]
+void unused_entry_point() {
+}
+
diff --git a/test/tint/expressions/type_conv/vec4/function/bool-i32.wgsl.expected.ir.dxc.hlsl b/test/tint/expressions/type_conv/vec4/function/bool-i32.wgsl.expected.ir.dxc.hlsl
index c6e1d96..78398d1 100644
--- a/test/tint/expressions/type_conv/vec4/function/bool-i32.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/expressions/type_conv/vec4/function/bool-i32.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,15 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Construct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+static bool t = false;
+bool4 m() {
+  t = true;
+  return bool4((t).xxxx);
+}
+
+void f() {
+  int4 v = int4(m());
+}
+
+[numthreads(1, 1, 1)]
+void unused_entry_point() {
+}
+
diff --git a/test/tint/expressions/type_conv/vec4/function/bool-i32.wgsl.expected.ir.fxc.hlsl b/test/tint/expressions/type_conv/vec4/function/bool-i32.wgsl.expected.ir.fxc.hlsl
index c6e1d96..78398d1 100644
--- a/test/tint/expressions/type_conv/vec4/function/bool-i32.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/expressions/type_conv/vec4/function/bool-i32.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,15 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Construct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+static bool t = false;
+bool4 m() {
+  t = true;
+  return bool4((t).xxxx);
+}
+
+void f() {
+  int4 v = int4(m());
+}
+
+[numthreads(1, 1, 1)]
+void unused_entry_point() {
+}
+
diff --git a/test/tint/expressions/type_conv/vec4/function/bool-u32.wgsl.expected.ir.dxc.hlsl b/test/tint/expressions/type_conv/vec4/function/bool-u32.wgsl.expected.ir.dxc.hlsl
index c6e1d96..22f57e0 100644
--- a/test/tint/expressions/type_conv/vec4/function/bool-u32.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/expressions/type_conv/vec4/function/bool-u32.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,15 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Construct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+static bool t = false;
+bool4 m() {
+  t = true;
+  return bool4((t).xxxx);
+}
+
+void f() {
+  uint4 v = uint4(m());
+}
+
+[numthreads(1, 1, 1)]
+void unused_entry_point() {
+}
+
diff --git a/test/tint/expressions/type_conv/vec4/function/bool-u32.wgsl.expected.ir.fxc.hlsl b/test/tint/expressions/type_conv/vec4/function/bool-u32.wgsl.expected.ir.fxc.hlsl
index c6e1d96..22f57e0 100644
--- a/test/tint/expressions/type_conv/vec4/function/bool-u32.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/expressions/type_conv/vec4/function/bool-u32.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,15 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Construct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+static bool t = false;
+bool4 m() {
+  t = true;
+  return bool4((t).xxxx);
+}
+
+void f() {
+  uint4 v = uint4(m());
+}
+
+[numthreads(1, 1, 1)]
+void unused_entry_point() {
+}
+
diff --git a/test/tint/expressions/type_conv/vec4/function/f16-bool.wgsl.expected.ir.dxc.hlsl b/test/tint/expressions/type_conv/vec4/function/f16-bool.wgsl.expected.ir.dxc.hlsl
index c6e1d96..ea982e3 100644
--- a/test/tint/expressions/type_conv/vec4/function/f16-bool.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/expressions/type_conv/vec4/function/f16-bool.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,15 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Construct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+static float16_t t = float16_t(0.0h);
+vector<float16_t, 4> m() {
+  t = float16_t(1.0h);
+  return vector<float16_t, 4>((t).xxxx);
+}
+
+void f() {
+  bool4 v = bool4(m());
+}
+
+[numthreads(1, 1, 1)]
+void unused_entry_point() {
+}
+
diff --git a/test/tint/expressions/type_conv/vec4/function/f16-bool.wgsl.expected.ir.fxc.hlsl b/test/tint/expressions/type_conv/vec4/function/f16-bool.wgsl.expected.ir.fxc.hlsl
index c6e1d96..f20e20a 100644
--- a/test/tint/expressions/type_conv/vec4/function/f16-bool.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/expressions/type_conv/vec4/function/f16-bool.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,20 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Construct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+
+static float16_t t = float16_t(0.0h);
+vector<float16_t, 4> m() {
+  t = float16_t(1.0h);
+  return vector<float16_t, 4>((t).xxxx);
+}
+
+void f() {
+  bool4 v = bool4(m());
+}
+
+[numthreads(1, 1, 1)]
+void unused_entry_point() {
+}
+
+FXC validation failure:
+c:\src\dawn\Shader@0x00000143FAE90AE0(2,8-16): error X3000: unrecognized identifier 'float16_t'
+
diff --git a/test/tint/expressions/type_conv/vec4/function/f16-f32.wgsl.expected.ir.dxc.hlsl b/test/tint/expressions/type_conv/vec4/function/f16-f32.wgsl.expected.ir.dxc.hlsl
index c6e1d96..059bbec 100644
--- a/test/tint/expressions/type_conv/vec4/function/f16-f32.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/expressions/type_conv/vec4/function/f16-f32.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,15 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Construct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+static float16_t t = float16_t(0.0h);
+vector<float16_t, 4> m() {
+  t = float16_t(1.0h);
+  return vector<float16_t, 4>((t).xxxx);
+}
+
+void f() {
+  float4 v = float4(m());
+}
+
+[numthreads(1, 1, 1)]
+void unused_entry_point() {
+}
+
diff --git a/test/tint/expressions/type_conv/vec4/function/f16-f32.wgsl.expected.ir.fxc.hlsl b/test/tint/expressions/type_conv/vec4/function/f16-f32.wgsl.expected.ir.fxc.hlsl
index c6e1d96..90bfce0 100644
--- a/test/tint/expressions/type_conv/vec4/function/f16-f32.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/expressions/type_conv/vec4/function/f16-f32.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,20 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Construct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+
+static float16_t t = float16_t(0.0h);
+vector<float16_t, 4> m() {
+  t = float16_t(1.0h);
+  return vector<float16_t, 4>((t).xxxx);
+}
+
+void f() {
+  float4 v = float4(m());
+}
+
+[numthreads(1, 1, 1)]
+void unused_entry_point() {
+}
+
+FXC validation failure:
+c:\src\dawn\Shader@0x000001BE85E507C0(2,8-16): error X3000: unrecognized identifier 'float16_t'
+
diff --git a/test/tint/expressions/type_conv/vec4/function/f16-i32.wgsl.expected.ir.dxc.hlsl b/test/tint/expressions/type_conv/vec4/function/f16-i32.wgsl.expected.ir.dxc.hlsl
index c6e1d96..1acb408 100644
--- a/test/tint/expressions/type_conv/vec4/function/f16-i32.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/expressions/type_conv/vec4/function/f16-i32.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,19 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Construct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+static float16_t t = float16_t(0.0h);
+vector<float16_t, 4> m() {
+  t = float16_t(1.0h);
+  return vector<float16_t, 4>((t).xxxx);
+}
+
+int4 tint_v4f16_to_v4i32(vector<float16_t, 4> value) {
+  return (((value <= (float16_t(65504.0h)).xxxx)) ? ((((value >= (float16_t(-65504.0h)).xxxx)) ? (int4(value)) : ((-2147483648).xxxx))) : ((2147483647).xxxx));
+}
+
+void f() {
+  int4 v = tint_v4f16_to_v4i32(m());
+}
+
+[numthreads(1, 1, 1)]
+void unused_entry_point() {
+}
+
diff --git a/test/tint/expressions/type_conv/vec4/function/f16-i32.wgsl.expected.ir.fxc.hlsl b/test/tint/expressions/type_conv/vec4/function/f16-i32.wgsl.expected.ir.fxc.hlsl
index c6e1d96..3ffb663 100644
--- a/test/tint/expressions/type_conv/vec4/function/f16-i32.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/expressions/type_conv/vec4/function/f16-i32.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,24 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Construct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+
+static float16_t t = float16_t(0.0h);
+vector<float16_t, 4> m() {
+  t = float16_t(1.0h);
+  return vector<float16_t, 4>((t).xxxx);
+}
+
+int4 tint_v4f16_to_v4i32(vector<float16_t, 4> value) {
+  return (((value <= (float16_t(65504.0h)).xxxx)) ? ((((value >= (float16_t(-65504.0h)).xxxx)) ? (int4(value)) : ((-2147483648).xxxx))) : ((2147483647).xxxx));
+}
+
+void f() {
+  int4 v = tint_v4f16_to_v4i32(m());
+}
+
+[numthreads(1, 1, 1)]
+void unused_entry_point() {
+}
+
+FXC validation failure:
+c:\src\dawn\Shader@0x000002A9B5A03E30(2,8-16): error X3000: unrecognized identifier 'float16_t'
+
diff --git a/test/tint/expressions/type_conv/vec4/function/f16-u32.wgsl.expected.ir.dxc.hlsl b/test/tint/expressions/type_conv/vec4/function/f16-u32.wgsl.expected.ir.dxc.hlsl
index c6e1d96..fb43d38 100644
--- a/test/tint/expressions/type_conv/vec4/function/f16-u32.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/expressions/type_conv/vec4/function/f16-u32.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,19 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Construct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+static float16_t t = float16_t(0.0h);
+vector<float16_t, 4> m() {
+  t = float16_t(1.0h);
+  return vector<float16_t, 4>((t).xxxx);
+}
+
+uint4 tint_v4f16_to_v4u32(vector<float16_t, 4> value) {
+  return (((value <= (float16_t(65504.0h)).xxxx)) ? ((((value >= (float16_t(0.0h)).xxxx)) ? (uint4(value)) : ((0u).xxxx))) : ((4294967295u).xxxx));
+}
+
+void f() {
+  uint4 v = tint_v4f16_to_v4u32(m());
+}
+
+[numthreads(1, 1, 1)]
+void unused_entry_point() {
+}
+
diff --git a/test/tint/expressions/type_conv/vec4/function/f16-u32.wgsl.expected.ir.fxc.hlsl b/test/tint/expressions/type_conv/vec4/function/f16-u32.wgsl.expected.ir.fxc.hlsl
index c6e1d96..5e0a8e3 100644
--- a/test/tint/expressions/type_conv/vec4/function/f16-u32.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/expressions/type_conv/vec4/function/f16-u32.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,24 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Construct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+
+static float16_t t = float16_t(0.0h);
+vector<float16_t, 4> m() {
+  t = float16_t(1.0h);
+  return vector<float16_t, 4>((t).xxxx);
+}
+
+uint4 tint_v4f16_to_v4u32(vector<float16_t, 4> value) {
+  return (((value <= (float16_t(65504.0h)).xxxx)) ? ((((value >= (float16_t(0.0h)).xxxx)) ? (uint4(value)) : ((0u).xxxx))) : ((4294967295u).xxxx));
+}
+
+void f() {
+  uint4 v = tint_v4f16_to_v4u32(m());
+}
+
+[numthreads(1, 1, 1)]
+void unused_entry_point() {
+}
+
+FXC validation failure:
+c:\src\dawn\Shader@0x0000025033DDF7C0(2,8-16): error X3000: unrecognized identifier 'float16_t'
+
diff --git a/test/tint/expressions/type_conv/vec4/function/f32-bool.wgsl.expected.ir.dxc.hlsl b/test/tint/expressions/type_conv/vec4/function/f32-bool.wgsl.expected.ir.dxc.hlsl
index c6e1d96..4807bfc 100644
--- a/test/tint/expressions/type_conv/vec4/function/f32-bool.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/expressions/type_conv/vec4/function/f32-bool.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,15 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Construct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+static float t = 0.0f;
+float4 m() {
+  t = 1.0f;
+  return float4((t).xxxx);
+}
+
+void f() {
+  bool4 v = bool4(m());
+}
+
+[numthreads(1, 1, 1)]
+void unused_entry_point() {
+}
+
diff --git a/test/tint/expressions/type_conv/vec4/function/f32-bool.wgsl.expected.ir.fxc.hlsl b/test/tint/expressions/type_conv/vec4/function/f32-bool.wgsl.expected.ir.fxc.hlsl
index c6e1d96..4807bfc 100644
--- a/test/tint/expressions/type_conv/vec4/function/f32-bool.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/expressions/type_conv/vec4/function/f32-bool.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,15 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Construct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+static float t = 0.0f;
+float4 m() {
+  t = 1.0f;
+  return float4((t).xxxx);
+}
+
+void f() {
+  bool4 v = bool4(m());
+}
+
+[numthreads(1, 1, 1)]
+void unused_entry_point() {
+}
+
diff --git a/test/tint/expressions/type_conv/vec4/function/f32-f16.wgsl.expected.ir.dxc.hlsl b/test/tint/expressions/type_conv/vec4/function/f32-f16.wgsl.expected.ir.dxc.hlsl
index c6e1d96..22878e1 100644
--- a/test/tint/expressions/type_conv/vec4/function/f32-f16.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/expressions/type_conv/vec4/function/f32-f16.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,15 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Construct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+static float t = 0.0f;
+float4 m() {
+  t = 1.0f;
+  return float4((t).xxxx);
+}
+
+void f() {
+  vector<float16_t, 4> v = vector<float16_t, 4>(m());
+}
+
+[numthreads(1, 1, 1)]
+void unused_entry_point() {
+}
+
diff --git a/test/tint/expressions/type_conv/vec4/function/f32-f16.wgsl.expected.ir.fxc.hlsl b/test/tint/expressions/type_conv/vec4/function/f32-f16.wgsl.expected.ir.fxc.hlsl
index c6e1d96..987aab8 100644
--- a/test/tint/expressions/type_conv/vec4/function/f32-f16.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/expressions/type_conv/vec4/function/f32-f16.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,20 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Construct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+
+static float t = 0.0f;
+float4 m() {
+  t = 1.0f;
+  return float4((t).xxxx);
+}
+
+void f() {
+  vector<float16_t, 4> v = vector<float16_t, 4>(m());
+}
+
+[numthreads(1, 1, 1)]
+void unused_entry_point() {
+}
+
+FXC validation failure:
+c:\src\dawn\Shader@0x0000022E8D8AF250(9,10-18): error X3000: syntax error: unexpected token 'float16_t'
+
diff --git a/test/tint/expressions/type_conv/vec4/function/f32-i32.wgsl.expected.ir.dxc.hlsl b/test/tint/expressions/type_conv/vec4/function/f32-i32.wgsl.expected.ir.dxc.hlsl
index c6e1d96..4aac016 100644
--- a/test/tint/expressions/type_conv/vec4/function/f32-i32.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/expressions/type_conv/vec4/function/f32-i32.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,19 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Construct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+static float t = 0.0f;
+float4 m() {
+  t = 1.0f;
+  return float4((t).xxxx);
+}
+
+int4 tint_v4f32_to_v4i32(float4 value) {
+  return (((value <= (2147483520.0f).xxxx)) ? ((((value >= (-2147483648.0f).xxxx)) ? (int4(value)) : ((-2147483648).xxxx))) : ((2147483647).xxxx));
+}
+
+void f() {
+  int4 v = tint_v4f32_to_v4i32(m());
+}
+
+[numthreads(1, 1, 1)]
+void unused_entry_point() {
+}
+
diff --git a/test/tint/expressions/type_conv/vec4/function/f32-i32.wgsl.expected.ir.fxc.hlsl b/test/tint/expressions/type_conv/vec4/function/f32-i32.wgsl.expected.ir.fxc.hlsl
index c6e1d96..4aac016 100644
--- a/test/tint/expressions/type_conv/vec4/function/f32-i32.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/expressions/type_conv/vec4/function/f32-i32.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,19 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Construct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+static float t = 0.0f;
+float4 m() {
+  t = 1.0f;
+  return float4((t).xxxx);
+}
+
+int4 tint_v4f32_to_v4i32(float4 value) {
+  return (((value <= (2147483520.0f).xxxx)) ? ((((value >= (-2147483648.0f).xxxx)) ? (int4(value)) : ((-2147483648).xxxx))) : ((2147483647).xxxx));
+}
+
+void f() {
+  int4 v = tint_v4f32_to_v4i32(m());
+}
+
+[numthreads(1, 1, 1)]
+void unused_entry_point() {
+}
+
diff --git a/test/tint/expressions/type_conv/vec4/function/f32-u32.wgsl.expected.ir.dxc.hlsl b/test/tint/expressions/type_conv/vec4/function/f32-u32.wgsl.expected.ir.dxc.hlsl
index c6e1d96..cb53ebd 100644
--- a/test/tint/expressions/type_conv/vec4/function/f32-u32.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/expressions/type_conv/vec4/function/f32-u32.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,19 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Construct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+static float t = 0.0f;
+float4 m() {
+  t = 1.0f;
+  return float4((t).xxxx);
+}
+
+uint4 tint_v4f32_to_v4u32(float4 value) {
+  return (((value <= (4294967040.0f).xxxx)) ? ((((value >= (0.0f).xxxx)) ? (uint4(value)) : ((0u).xxxx))) : ((4294967295u).xxxx));
+}
+
+void f() {
+  uint4 v = tint_v4f32_to_v4u32(m());
+}
+
+[numthreads(1, 1, 1)]
+void unused_entry_point() {
+}
+
diff --git a/test/tint/expressions/type_conv/vec4/function/f32-u32.wgsl.expected.ir.fxc.hlsl b/test/tint/expressions/type_conv/vec4/function/f32-u32.wgsl.expected.ir.fxc.hlsl
index c6e1d96..cb53ebd 100644
--- a/test/tint/expressions/type_conv/vec4/function/f32-u32.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/expressions/type_conv/vec4/function/f32-u32.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,19 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Construct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+static float t = 0.0f;
+float4 m() {
+  t = 1.0f;
+  return float4((t).xxxx);
+}
+
+uint4 tint_v4f32_to_v4u32(float4 value) {
+  return (((value <= (4294967040.0f).xxxx)) ? ((((value >= (0.0f).xxxx)) ? (uint4(value)) : ((0u).xxxx))) : ((4294967295u).xxxx));
+}
+
+void f() {
+  uint4 v = tint_v4f32_to_v4u32(m());
+}
+
+[numthreads(1, 1, 1)]
+void unused_entry_point() {
+}
+
diff --git a/test/tint/expressions/type_conv/vec4/function/i32-bool.wgsl.expected.ir.dxc.hlsl b/test/tint/expressions/type_conv/vec4/function/i32-bool.wgsl.expected.ir.dxc.hlsl
index c6e1d96..0965e03 100644
--- a/test/tint/expressions/type_conv/vec4/function/i32-bool.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/expressions/type_conv/vec4/function/i32-bool.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,15 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Construct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+static int t = 0;
+int4 m() {
+  t = 1;
+  return int4((t).xxxx);
+}
+
+void f() {
+  bool4 v = bool4(m());
+}
+
+[numthreads(1, 1, 1)]
+void unused_entry_point() {
+}
+
diff --git a/test/tint/expressions/type_conv/vec4/function/i32-bool.wgsl.expected.ir.fxc.hlsl b/test/tint/expressions/type_conv/vec4/function/i32-bool.wgsl.expected.ir.fxc.hlsl
index c6e1d96..0965e03 100644
--- a/test/tint/expressions/type_conv/vec4/function/i32-bool.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/expressions/type_conv/vec4/function/i32-bool.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,15 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Construct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+static int t = 0;
+int4 m() {
+  t = 1;
+  return int4((t).xxxx);
+}
+
+void f() {
+  bool4 v = bool4(m());
+}
+
+[numthreads(1, 1, 1)]
+void unused_entry_point() {
+}
+
diff --git a/test/tint/expressions/type_conv/vec4/function/i32-f16.wgsl.expected.ir.dxc.hlsl b/test/tint/expressions/type_conv/vec4/function/i32-f16.wgsl.expected.ir.dxc.hlsl
index c6e1d96..de57ef7 100644
--- a/test/tint/expressions/type_conv/vec4/function/i32-f16.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/expressions/type_conv/vec4/function/i32-f16.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,15 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Construct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+static int t = 0;
+int4 m() {
+  t = 1;
+  return int4((t).xxxx);
+}
+
+void f() {
+  vector<float16_t, 4> v = vector<float16_t, 4>(m());
+}
+
+[numthreads(1, 1, 1)]
+void unused_entry_point() {
+}
+
diff --git a/test/tint/expressions/type_conv/vec4/function/i32-f16.wgsl.expected.ir.fxc.hlsl b/test/tint/expressions/type_conv/vec4/function/i32-f16.wgsl.expected.ir.fxc.hlsl
index c6e1d96..c05f575 100644
--- a/test/tint/expressions/type_conv/vec4/function/i32-f16.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/expressions/type_conv/vec4/function/i32-f16.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,20 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Construct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+
+static int t = 0;
+int4 m() {
+  t = 1;
+  return int4((t).xxxx);
+}
+
+void f() {
+  vector<float16_t, 4> v = vector<float16_t, 4>(m());
+}
+
+[numthreads(1, 1, 1)]
+void unused_entry_point() {
+}
+
+FXC validation failure:
+c:\src\dawn\Shader@0x00000162F3A15CF0(9,10-18): error X3000: syntax error: unexpected token 'float16_t'
+
diff --git a/test/tint/expressions/type_conv/vec4/function/i32-f32.wgsl.expected.ir.dxc.hlsl b/test/tint/expressions/type_conv/vec4/function/i32-f32.wgsl.expected.ir.dxc.hlsl
index c6e1d96..c341deb 100644
--- a/test/tint/expressions/type_conv/vec4/function/i32-f32.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/expressions/type_conv/vec4/function/i32-f32.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,15 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Construct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+static int t = 0;
+int4 m() {
+  t = 1;
+  return int4((t).xxxx);
+}
+
+void f() {
+  float4 v = float4(m());
+}
+
+[numthreads(1, 1, 1)]
+void unused_entry_point() {
+}
+
diff --git a/test/tint/expressions/type_conv/vec4/function/i32-f32.wgsl.expected.ir.fxc.hlsl b/test/tint/expressions/type_conv/vec4/function/i32-f32.wgsl.expected.ir.fxc.hlsl
index c6e1d96..c341deb 100644
--- a/test/tint/expressions/type_conv/vec4/function/i32-f32.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/expressions/type_conv/vec4/function/i32-f32.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,15 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Construct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+static int t = 0;
+int4 m() {
+  t = 1;
+  return int4((t).xxxx);
+}
+
+void f() {
+  float4 v = float4(m());
+}
+
+[numthreads(1, 1, 1)]
+void unused_entry_point() {
+}
+
diff --git a/test/tint/expressions/type_conv/vec4/function/i32-u32.wgsl.expected.ir.dxc.hlsl b/test/tint/expressions/type_conv/vec4/function/i32-u32.wgsl.expected.ir.dxc.hlsl
index c6e1d96..a5a7403 100644
--- a/test/tint/expressions/type_conv/vec4/function/i32-u32.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/expressions/type_conv/vec4/function/i32-u32.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,15 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Construct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+static int t = 0;
+int4 m() {
+  t = 1;
+  return int4((t).xxxx);
+}
+
+void f() {
+  uint4 v = uint4(m());
+}
+
+[numthreads(1, 1, 1)]
+void unused_entry_point() {
+}
+
diff --git a/test/tint/expressions/type_conv/vec4/function/i32-u32.wgsl.expected.ir.fxc.hlsl b/test/tint/expressions/type_conv/vec4/function/i32-u32.wgsl.expected.ir.fxc.hlsl
index c6e1d96..a5a7403 100644
--- a/test/tint/expressions/type_conv/vec4/function/i32-u32.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/expressions/type_conv/vec4/function/i32-u32.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,15 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Construct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+static int t = 0;
+int4 m() {
+  t = 1;
+  return int4((t).xxxx);
+}
+
+void f() {
+  uint4 v = uint4(m());
+}
+
+[numthreads(1, 1, 1)]
+void unused_entry_point() {
+}
+
diff --git a/test/tint/expressions/type_conv/vec4/function/u32-bool.wgsl.expected.ir.dxc.hlsl b/test/tint/expressions/type_conv/vec4/function/u32-bool.wgsl.expected.ir.dxc.hlsl
index c6e1d96..fd53064 100644
--- a/test/tint/expressions/type_conv/vec4/function/u32-bool.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/expressions/type_conv/vec4/function/u32-bool.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,15 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Construct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+static uint t = 0u;
+uint4 m() {
+  t = 1u;
+  return uint4((t).xxxx);
+}
+
+void f() {
+  bool4 v = bool4(m());
+}
+
+[numthreads(1, 1, 1)]
+void unused_entry_point() {
+}
+
diff --git a/test/tint/expressions/type_conv/vec4/function/u32-bool.wgsl.expected.ir.fxc.hlsl b/test/tint/expressions/type_conv/vec4/function/u32-bool.wgsl.expected.ir.fxc.hlsl
index c6e1d96..fd53064 100644
--- a/test/tint/expressions/type_conv/vec4/function/u32-bool.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/expressions/type_conv/vec4/function/u32-bool.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,15 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Construct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+static uint t = 0u;
+uint4 m() {
+  t = 1u;
+  return uint4((t).xxxx);
+}
+
+void f() {
+  bool4 v = bool4(m());
+}
+
+[numthreads(1, 1, 1)]
+void unused_entry_point() {
+}
+
diff --git a/test/tint/expressions/type_conv/vec4/function/u32-f16.wgsl.expected.ir.dxc.hlsl b/test/tint/expressions/type_conv/vec4/function/u32-f16.wgsl.expected.ir.dxc.hlsl
index c6e1d96..68871b6 100644
--- a/test/tint/expressions/type_conv/vec4/function/u32-f16.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/expressions/type_conv/vec4/function/u32-f16.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,15 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Construct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+static uint t = 0u;
+uint4 m() {
+  t = 1u;
+  return uint4((t).xxxx);
+}
+
+void f() {
+  vector<float16_t, 4> v = vector<float16_t, 4>(m());
+}
+
+[numthreads(1, 1, 1)]
+void unused_entry_point() {
+}
+
diff --git a/test/tint/expressions/type_conv/vec4/function/u32-f16.wgsl.expected.ir.fxc.hlsl b/test/tint/expressions/type_conv/vec4/function/u32-f16.wgsl.expected.ir.fxc.hlsl
index c6e1d96..06e2d40 100644
--- a/test/tint/expressions/type_conv/vec4/function/u32-f16.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/expressions/type_conv/vec4/function/u32-f16.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,20 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Construct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+
+static uint t = 0u;
+uint4 m() {
+  t = 1u;
+  return uint4((t).xxxx);
+}
+
+void f() {
+  vector<float16_t, 4> v = vector<float16_t, 4>(m());
+}
+
+[numthreads(1, 1, 1)]
+void unused_entry_point() {
+}
+
+FXC validation failure:
+c:\src\dawn\Shader@0x000002482535F5C0(9,10-18): error X3000: syntax error: unexpected token 'float16_t'
+
diff --git a/test/tint/expressions/type_conv/vec4/function/u32-f32.wgsl.expected.ir.dxc.hlsl b/test/tint/expressions/type_conv/vec4/function/u32-f32.wgsl.expected.ir.dxc.hlsl
index c6e1d96..62c48be 100644
--- a/test/tint/expressions/type_conv/vec4/function/u32-f32.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/expressions/type_conv/vec4/function/u32-f32.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,15 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Construct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+static uint t = 0u;
+uint4 m() {
+  t = 1u;
+  return uint4((t).xxxx);
+}
+
+void f() {
+  float4 v = float4(m());
+}
+
+[numthreads(1, 1, 1)]
+void unused_entry_point() {
+}
+
diff --git a/test/tint/expressions/type_conv/vec4/function/u32-f32.wgsl.expected.ir.fxc.hlsl b/test/tint/expressions/type_conv/vec4/function/u32-f32.wgsl.expected.ir.fxc.hlsl
index c6e1d96..62c48be 100644
--- a/test/tint/expressions/type_conv/vec4/function/u32-f32.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/expressions/type_conv/vec4/function/u32-f32.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,15 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Construct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+static uint t = 0u;
+uint4 m() {
+  t = 1u;
+  return uint4((t).xxxx);
+}
+
+void f() {
+  float4 v = float4(m());
+}
+
+[numthreads(1, 1, 1)]
+void unused_entry_point() {
+}
+
diff --git a/test/tint/expressions/type_conv/vec4/function/u32-i32.wgsl.expected.ir.dxc.hlsl b/test/tint/expressions/type_conv/vec4/function/u32-i32.wgsl.expected.ir.dxc.hlsl
index c6e1d96..33afbcc 100644
--- a/test/tint/expressions/type_conv/vec4/function/u32-i32.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/expressions/type_conv/vec4/function/u32-i32.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,15 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Construct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+static uint t = 0u;
+uint4 m() {
+  t = 1u;
+  return uint4((t).xxxx);
+}
+
+void f() {
+  int4 v = int4(m());
+}
+
+[numthreads(1, 1, 1)]
+void unused_entry_point() {
+}
+
diff --git a/test/tint/expressions/type_conv/vec4/function/u32-i32.wgsl.expected.ir.fxc.hlsl b/test/tint/expressions/type_conv/vec4/function/u32-i32.wgsl.expected.ir.fxc.hlsl
index c6e1d96..33afbcc 100644
--- a/test/tint/expressions/type_conv/vec4/function/u32-i32.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/expressions/type_conv/vec4/function/u32-i32.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,15 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Construct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+static uint t = 0u;
+uint4 m() {
+  t = 1u;
+  return uint4((t).xxxx);
+}
+
+void f() {
+  int4 v = int4(m());
+}
+
+[numthreads(1, 1, 1)]
+void unused_entry_point() {
+}
+
diff --git a/test/tint/expressions/type_conv/vec4/literal/bool-f16.wgsl.expected.ir.dxc.hlsl b/test/tint/expressions/type_conv/vec4/literal/bool-f16.wgsl.expected.ir.dxc.hlsl
index 9acd2d7..0c04150 100644
--- a/test/tint/expressions/type_conv/vec4/literal/bool-f16.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/expressions/type_conv/vec4/literal/bool-f16.wgsl.expected.ir.dxc.hlsl
@@ -1,3 +1,5 @@
+
+static vector<float16_t, 4> u = (float16_t(1.0h)).xxxx;
 [numthreads(1, 1, 1)]
 void unused_entry_point() {
 }
diff --git a/test/tint/expressions/type_conv/vec4/literal/bool-f16.wgsl.expected.ir.fxc.hlsl b/test/tint/expressions/type_conv/vec4/literal/bool-f16.wgsl.expected.ir.fxc.hlsl
index 9acd2d7..23f883d 100644
--- a/test/tint/expressions/type_conv/vec4/literal/bool-f16.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/expressions/type_conv/vec4/literal/bool-f16.wgsl.expected.ir.fxc.hlsl
@@ -1,4 +1,11 @@
+SKIP: FAILED
+
+
+static vector<float16_t, 4> u = (float16_t(1.0h)).xxxx;
 [numthreads(1, 1, 1)]
 void unused_entry_point() {
 }
 
+FXC validation failure:
+c:\src\dawn\Shader@0x000001E3BA62D3B0(2,15-23): error X3000: syntax error: unexpected token 'float16_t'
+
diff --git a/test/tint/expressions/type_conv/vec4/literal/bool-f32.wgsl.expected.ir.dxc.hlsl b/test/tint/expressions/type_conv/vec4/literal/bool-f32.wgsl.expected.ir.dxc.hlsl
index 9acd2d7..ba7f9df 100644
--- a/test/tint/expressions/type_conv/vec4/literal/bool-f32.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/expressions/type_conv/vec4/literal/bool-f32.wgsl.expected.ir.dxc.hlsl
@@ -1,3 +1,5 @@
+
+static float4 u = (1.0f).xxxx;
 [numthreads(1, 1, 1)]
 void unused_entry_point() {
 }
diff --git a/test/tint/expressions/type_conv/vec4/literal/bool-f32.wgsl.expected.ir.fxc.hlsl b/test/tint/expressions/type_conv/vec4/literal/bool-f32.wgsl.expected.ir.fxc.hlsl
index 9acd2d7..ba7f9df 100644
--- a/test/tint/expressions/type_conv/vec4/literal/bool-f32.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/expressions/type_conv/vec4/literal/bool-f32.wgsl.expected.ir.fxc.hlsl
@@ -1,3 +1,5 @@
+
+static float4 u = (1.0f).xxxx;
 [numthreads(1, 1, 1)]
 void unused_entry_point() {
 }
diff --git a/test/tint/expressions/type_conv/vec4/literal/bool-i32.wgsl.expected.ir.dxc.hlsl b/test/tint/expressions/type_conv/vec4/literal/bool-i32.wgsl.expected.ir.dxc.hlsl
index 9acd2d7..64d5058 100644
--- a/test/tint/expressions/type_conv/vec4/literal/bool-i32.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/expressions/type_conv/vec4/literal/bool-i32.wgsl.expected.ir.dxc.hlsl
@@ -1,3 +1,5 @@
+
+static int4 u = (1).xxxx;
 [numthreads(1, 1, 1)]
 void unused_entry_point() {
 }
diff --git a/test/tint/expressions/type_conv/vec4/literal/bool-i32.wgsl.expected.ir.fxc.hlsl b/test/tint/expressions/type_conv/vec4/literal/bool-i32.wgsl.expected.ir.fxc.hlsl
index 9acd2d7..64d5058 100644
--- a/test/tint/expressions/type_conv/vec4/literal/bool-i32.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/expressions/type_conv/vec4/literal/bool-i32.wgsl.expected.ir.fxc.hlsl
@@ -1,3 +1,5 @@
+
+static int4 u = (1).xxxx;
 [numthreads(1, 1, 1)]
 void unused_entry_point() {
 }
diff --git a/test/tint/expressions/type_conv/vec4/literal/bool-u32.wgsl.expected.ir.dxc.hlsl b/test/tint/expressions/type_conv/vec4/literal/bool-u32.wgsl.expected.ir.dxc.hlsl
index 9acd2d7..997f008 100644
--- a/test/tint/expressions/type_conv/vec4/literal/bool-u32.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/expressions/type_conv/vec4/literal/bool-u32.wgsl.expected.ir.dxc.hlsl
@@ -1,3 +1,5 @@
+
+static uint4 u = (1u).xxxx;
 [numthreads(1, 1, 1)]
 void unused_entry_point() {
 }
diff --git a/test/tint/expressions/type_conv/vec4/literal/bool-u32.wgsl.expected.ir.fxc.hlsl b/test/tint/expressions/type_conv/vec4/literal/bool-u32.wgsl.expected.ir.fxc.hlsl
index 9acd2d7..997f008 100644
--- a/test/tint/expressions/type_conv/vec4/literal/bool-u32.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/expressions/type_conv/vec4/literal/bool-u32.wgsl.expected.ir.fxc.hlsl
@@ -1,3 +1,5 @@
+
+static uint4 u = (1u).xxxx;
 [numthreads(1, 1, 1)]
 void unused_entry_point() {
 }
diff --git a/test/tint/expressions/type_conv/vec4/literal/f16-bool.wgsl.expected.ir.dxc.hlsl b/test/tint/expressions/type_conv/vec4/literal/f16-bool.wgsl.expected.ir.dxc.hlsl
index 9acd2d7..76e0531 100644
--- a/test/tint/expressions/type_conv/vec4/literal/f16-bool.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/expressions/type_conv/vec4/literal/f16-bool.wgsl.expected.ir.dxc.hlsl
@@ -1,3 +1,5 @@
+
+static bool4 u = (true).xxxx;
 [numthreads(1, 1, 1)]
 void unused_entry_point() {
 }
diff --git a/test/tint/expressions/type_conv/vec4/literal/f16-bool.wgsl.expected.ir.fxc.hlsl b/test/tint/expressions/type_conv/vec4/literal/f16-bool.wgsl.expected.ir.fxc.hlsl
index 9acd2d7..76e0531 100644
--- a/test/tint/expressions/type_conv/vec4/literal/f16-bool.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/expressions/type_conv/vec4/literal/f16-bool.wgsl.expected.ir.fxc.hlsl
@@ -1,3 +1,5 @@
+
+static bool4 u = (true).xxxx;
 [numthreads(1, 1, 1)]
 void unused_entry_point() {
 }
diff --git a/test/tint/expressions/type_conv/vec4/literal/f16-f32.wgsl.expected.ir.dxc.hlsl b/test/tint/expressions/type_conv/vec4/literal/f16-f32.wgsl.expected.ir.dxc.hlsl
index 9acd2d7..ba7f9df 100644
--- a/test/tint/expressions/type_conv/vec4/literal/f16-f32.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/expressions/type_conv/vec4/literal/f16-f32.wgsl.expected.ir.dxc.hlsl
@@ -1,3 +1,5 @@
+
+static float4 u = (1.0f).xxxx;
 [numthreads(1, 1, 1)]
 void unused_entry_point() {
 }
diff --git a/test/tint/expressions/type_conv/vec4/literal/f16-f32.wgsl.expected.ir.fxc.hlsl b/test/tint/expressions/type_conv/vec4/literal/f16-f32.wgsl.expected.ir.fxc.hlsl
index 9acd2d7..ba7f9df 100644
--- a/test/tint/expressions/type_conv/vec4/literal/f16-f32.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/expressions/type_conv/vec4/literal/f16-f32.wgsl.expected.ir.fxc.hlsl
@@ -1,3 +1,5 @@
+
+static float4 u = (1.0f).xxxx;
 [numthreads(1, 1, 1)]
 void unused_entry_point() {
 }
diff --git a/test/tint/expressions/type_conv/vec4/literal/f16-i32.wgsl.expected.ir.dxc.hlsl b/test/tint/expressions/type_conv/vec4/literal/f16-i32.wgsl.expected.ir.dxc.hlsl
index 9acd2d7..64d5058 100644
--- a/test/tint/expressions/type_conv/vec4/literal/f16-i32.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/expressions/type_conv/vec4/literal/f16-i32.wgsl.expected.ir.dxc.hlsl
@@ -1,3 +1,5 @@
+
+static int4 u = (1).xxxx;
 [numthreads(1, 1, 1)]
 void unused_entry_point() {
 }
diff --git a/test/tint/expressions/type_conv/vec4/literal/f16-i32.wgsl.expected.ir.fxc.hlsl b/test/tint/expressions/type_conv/vec4/literal/f16-i32.wgsl.expected.ir.fxc.hlsl
index 9acd2d7..64d5058 100644
--- a/test/tint/expressions/type_conv/vec4/literal/f16-i32.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/expressions/type_conv/vec4/literal/f16-i32.wgsl.expected.ir.fxc.hlsl
@@ -1,3 +1,5 @@
+
+static int4 u = (1).xxxx;
 [numthreads(1, 1, 1)]
 void unused_entry_point() {
 }
diff --git a/test/tint/expressions/type_conv/vec4/literal/f16-u32.wgsl.expected.ir.dxc.hlsl b/test/tint/expressions/type_conv/vec4/literal/f16-u32.wgsl.expected.ir.dxc.hlsl
index 9acd2d7..997f008 100644
--- a/test/tint/expressions/type_conv/vec4/literal/f16-u32.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/expressions/type_conv/vec4/literal/f16-u32.wgsl.expected.ir.dxc.hlsl
@@ -1,3 +1,5 @@
+
+static uint4 u = (1u).xxxx;
 [numthreads(1, 1, 1)]
 void unused_entry_point() {
 }
diff --git a/test/tint/expressions/type_conv/vec4/literal/f16-u32.wgsl.expected.ir.fxc.hlsl b/test/tint/expressions/type_conv/vec4/literal/f16-u32.wgsl.expected.ir.fxc.hlsl
index 9acd2d7..997f008 100644
--- a/test/tint/expressions/type_conv/vec4/literal/f16-u32.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/expressions/type_conv/vec4/literal/f16-u32.wgsl.expected.ir.fxc.hlsl
@@ -1,3 +1,5 @@
+
+static uint4 u = (1u).xxxx;
 [numthreads(1, 1, 1)]
 void unused_entry_point() {
 }
diff --git a/test/tint/expressions/type_conv/vec4/literal/f32-bool.wgsl.expected.ir.dxc.hlsl b/test/tint/expressions/type_conv/vec4/literal/f32-bool.wgsl.expected.ir.dxc.hlsl
index 9acd2d7..76e0531 100644
--- a/test/tint/expressions/type_conv/vec4/literal/f32-bool.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/expressions/type_conv/vec4/literal/f32-bool.wgsl.expected.ir.dxc.hlsl
@@ -1,3 +1,5 @@
+
+static bool4 u = (true).xxxx;
 [numthreads(1, 1, 1)]
 void unused_entry_point() {
 }
diff --git a/test/tint/expressions/type_conv/vec4/literal/f32-bool.wgsl.expected.ir.fxc.hlsl b/test/tint/expressions/type_conv/vec4/literal/f32-bool.wgsl.expected.ir.fxc.hlsl
index 9acd2d7..76e0531 100644
--- a/test/tint/expressions/type_conv/vec4/literal/f32-bool.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/expressions/type_conv/vec4/literal/f32-bool.wgsl.expected.ir.fxc.hlsl
@@ -1,3 +1,5 @@
+
+static bool4 u = (true).xxxx;
 [numthreads(1, 1, 1)]
 void unused_entry_point() {
 }
diff --git a/test/tint/expressions/type_conv/vec4/literal/f32-f16.wgsl.expected.ir.dxc.hlsl b/test/tint/expressions/type_conv/vec4/literal/f32-f16.wgsl.expected.ir.dxc.hlsl
index 9acd2d7..0c04150 100644
--- a/test/tint/expressions/type_conv/vec4/literal/f32-f16.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/expressions/type_conv/vec4/literal/f32-f16.wgsl.expected.ir.dxc.hlsl
@@ -1,3 +1,5 @@
+
+static vector<float16_t, 4> u = (float16_t(1.0h)).xxxx;
 [numthreads(1, 1, 1)]
 void unused_entry_point() {
 }
diff --git a/test/tint/expressions/type_conv/vec4/literal/f32-f16.wgsl.expected.ir.fxc.hlsl b/test/tint/expressions/type_conv/vec4/literal/f32-f16.wgsl.expected.ir.fxc.hlsl
index 9acd2d7..d721fe9 100644
--- a/test/tint/expressions/type_conv/vec4/literal/f32-f16.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/expressions/type_conv/vec4/literal/f32-f16.wgsl.expected.ir.fxc.hlsl
@@ -1,4 +1,11 @@
+SKIP: FAILED
+
+
+static vector<float16_t, 4> u = (float16_t(1.0h)).xxxx;
 [numthreads(1, 1, 1)]
 void unused_entry_point() {
 }
 
+FXC validation failure:
+c:\src\dawn\Shader@0x0000028944CC5980(2,15-23): error X3000: syntax error: unexpected token 'float16_t'
+
diff --git a/test/tint/expressions/type_conv/vec4/literal/f32-i32.wgsl.expected.ir.dxc.hlsl b/test/tint/expressions/type_conv/vec4/literal/f32-i32.wgsl.expected.ir.dxc.hlsl
index 9acd2d7..64d5058 100644
--- a/test/tint/expressions/type_conv/vec4/literal/f32-i32.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/expressions/type_conv/vec4/literal/f32-i32.wgsl.expected.ir.dxc.hlsl
@@ -1,3 +1,5 @@
+
+static int4 u = (1).xxxx;
 [numthreads(1, 1, 1)]
 void unused_entry_point() {
 }
diff --git a/test/tint/expressions/type_conv/vec4/literal/f32-i32.wgsl.expected.ir.fxc.hlsl b/test/tint/expressions/type_conv/vec4/literal/f32-i32.wgsl.expected.ir.fxc.hlsl
index 9acd2d7..64d5058 100644
--- a/test/tint/expressions/type_conv/vec4/literal/f32-i32.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/expressions/type_conv/vec4/literal/f32-i32.wgsl.expected.ir.fxc.hlsl
@@ -1,3 +1,5 @@
+
+static int4 u = (1).xxxx;
 [numthreads(1, 1, 1)]
 void unused_entry_point() {
 }
diff --git a/test/tint/expressions/type_conv/vec4/literal/f32-u32.wgsl.expected.ir.dxc.hlsl b/test/tint/expressions/type_conv/vec4/literal/f32-u32.wgsl.expected.ir.dxc.hlsl
index 9acd2d7..997f008 100644
--- a/test/tint/expressions/type_conv/vec4/literal/f32-u32.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/expressions/type_conv/vec4/literal/f32-u32.wgsl.expected.ir.dxc.hlsl
@@ -1,3 +1,5 @@
+
+static uint4 u = (1u).xxxx;
 [numthreads(1, 1, 1)]
 void unused_entry_point() {
 }
diff --git a/test/tint/expressions/type_conv/vec4/literal/f32-u32.wgsl.expected.ir.fxc.hlsl b/test/tint/expressions/type_conv/vec4/literal/f32-u32.wgsl.expected.ir.fxc.hlsl
index 9acd2d7..997f008 100644
--- a/test/tint/expressions/type_conv/vec4/literal/f32-u32.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/expressions/type_conv/vec4/literal/f32-u32.wgsl.expected.ir.fxc.hlsl
@@ -1,3 +1,5 @@
+
+static uint4 u = (1u).xxxx;
 [numthreads(1, 1, 1)]
 void unused_entry_point() {
 }
diff --git a/test/tint/expressions/type_conv/vec4/literal/i32-bool.wgsl.expected.ir.dxc.hlsl b/test/tint/expressions/type_conv/vec4/literal/i32-bool.wgsl.expected.ir.dxc.hlsl
index 9acd2d7..76e0531 100644
--- a/test/tint/expressions/type_conv/vec4/literal/i32-bool.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/expressions/type_conv/vec4/literal/i32-bool.wgsl.expected.ir.dxc.hlsl
@@ -1,3 +1,5 @@
+
+static bool4 u = (true).xxxx;
 [numthreads(1, 1, 1)]
 void unused_entry_point() {
 }
diff --git a/test/tint/expressions/type_conv/vec4/literal/i32-bool.wgsl.expected.ir.fxc.hlsl b/test/tint/expressions/type_conv/vec4/literal/i32-bool.wgsl.expected.ir.fxc.hlsl
index 9acd2d7..76e0531 100644
--- a/test/tint/expressions/type_conv/vec4/literal/i32-bool.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/expressions/type_conv/vec4/literal/i32-bool.wgsl.expected.ir.fxc.hlsl
@@ -1,3 +1,5 @@
+
+static bool4 u = (true).xxxx;
 [numthreads(1, 1, 1)]
 void unused_entry_point() {
 }
diff --git a/test/tint/expressions/type_conv/vec4/literal/i32-f16.wgsl.expected.ir.dxc.hlsl b/test/tint/expressions/type_conv/vec4/literal/i32-f16.wgsl.expected.ir.dxc.hlsl
index 9acd2d7..0c04150 100644
--- a/test/tint/expressions/type_conv/vec4/literal/i32-f16.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/expressions/type_conv/vec4/literal/i32-f16.wgsl.expected.ir.dxc.hlsl
@@ -1,3 +1,5 @@
+
+static vector<float16_t, 4> u = (float16_t(1.0h)).xxxx;
 [numthreads(1, 1, 1)]
 void unused_entry_point() {
 }
diff --git a/test/tint/expressions/type_conv/vec4/literal/i32-f16.wgsl.expected.ir.fxc.hlsl b/test/tint/expressions/type_conv/vec4/literal/i32-f16.wgsl.expected.ir.fxc.hlsl
index 9acd2d7..fa0d07c 100644
--- a/test/tint/expressions/type_conv/vec4/literal/i32-f16.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/expressions/type_conv/vec4/literal/i32-f16.wgsl.expected.ir.fxc.hlsl
@@ -1,4 +1,11 @@
+SKIP: FAILED
+
+
+static vector<float16_t, 4> u = (float16_t(1.0h)).xxxx;
 [numthreads(1, 1, 1)]
 void unused_entry_point() {
 }
 
+FXC validation failure:
+c:\src\dawn\Shader@0x000002E39EDF1450(2,15-23): error X3000: syntax error: unexpected token 'float16_t'
+
diff --git a/test/tint/expressions/type_conv/vec4/literal/i32-f32.wgsl.expected.ir.dxc.hlsl b/test/tint/expressions/type_conv/vec4/literal/i32-f32.wgsl.expected.ir.dxc.hlsl
index 9acd2d7..ba7f9df 100644
--- a/test/tint/expressions/type_conv/vec4/literal/i32-f32.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/expressions/type_conv/vec4/literal/i32-f32.wgsl.expected.ir.dxc.hlsl
@@ -1,3 +1,5 @@
+
+static float4 u = (1.0f).xxxx;
 [numthreads(1, 1, 1)]
 void unused_entry_point() {
 }
diff --git a/test/tint/expressions/type_conv/vec4/literal/i32-f32.wgsl.expected.ir.fxc.hlsl b/test/tint/expressions/type_conv/vec4/literal/i32-f32.wgsl.expected.ir.fxc.hlsl
index 9acd2d7..ba7f9df 100644
--- a/test/tint/expressions/type_conv/vec4/literal/i32-f32.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/expressions/type_conv/vec4/literal/i32-f32.wgsl.expected.ir.fxc.hlsl
@@ -1,3 +1,5 @@
+
+static float4 u = (1.0f).xxxx;
 [numthreads(1, 1, 1)]
 void unused_entry_point() {
 }
diff --git a/test/tint/expressions/type_conv/vec4/literal/i32-u32.wgsl.expected.ir.dxc.hlsl b/test/tint/expressions/type_conv/vec4/literal/i32-u32.wgsl.expected.ir.dxc.hlsl
index 9acd2d7..997f008 100644
--- a/test/tint/expressions/type_conv/vec4/literal/i32-u32.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/expressions/type_conv/vec4/literal/i32-u32.wgsl.expected.ir.dxc.hlsl
@@ -1,3 +1,5 @@
+
+static uint4 u = (1u).xxxx;
 [numthreads(1, 1, 1)]
 void unused_entry_point() {
 }
diff --git a/test/tint/expressions/type_conv/vec4/literal/i32-u32.wgsl.expected.ir.fxc.hlsl b/test/tint/expressions/type_conv/vec4/literal/i32-u32.wgsl.expected.ir.fxc.hlsl
index 9acd2d7..997f008 100644
--- a/test/tint/expressions/type_conv/vec4/literal/i32-u32.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/expressions/type_conv/vec4/literal/i32-u32.wgsl.expected.ir.fxc.hlsl
@@ -1,3 +1,5 @@
+
+static uint4 u = (1u).xxxx;
 [numthreads(1, 1, 1)]
 void unused_entry_point() {
 }
diff --git a/test/tint/expressions/type_conv/vec4/literal/u32-bool.wgsl.expected.ir.dxc.hlsl b/test/tint/expressions/type_conv/vec4/literal/u32-bool.wgsl.expected.ir.dxc.hlsl
index 9acd2d7..76e0531 100644
--- a/test/tint/expressions/type_conv/vec4/literal/u32-bool.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/expressions/type_conv/vec4/literal/u32-bool.wgsl.expected.ir.dxc.hlsl
@@ -1,3 +1,5 @@
+
+static bool4 u = (true).xxxx;
 [numthreads(1, 1, 1)]
 void unused_entry_point() {
 }
diff --git a/test/tint/expressions/type_conv/vec4/literal/u32-bool.wgsl.expected.ir.fxc.hlsl b/test/tint/expressions/type_conv/vec4/literal/u32-bool.wgsl.expected.ir.fxc.hlsl
index 9acd2d7..76e0531 100644
--- a/test/tint/expressions/type_conv/vec4/literal/u32-bool.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/expressions/type_conv/vec4/literal/u32-bool.wgsl.expected.ir.fxc.hlsl
@@ -1,3 +1,5 @@
+
+static bool4 u = (true).xxxx;
 [numthreads(1, 1, 1)]
 void unused_entry_point() {
 }
diff --git a/test/tint/expressions/type_conv/vec4/literal/u32-f16.wgsl.expected.ir.dxc.hlsl b/test/tint/expressions/type_conv/vec4/literal/u32-f16.wgsl.expected.ir.dxc.hlsl
index 9acd2d7..0c04150 100644
--- a/test/tint/expressions/type_conv/vec4/literal/u32-f16.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/expressions/type_conv/vec4/literal/u32-f16.wgsl.expected.ir.dxc.hlsl
@@ -1,3 +1,5 @@
+
+static vector<float16_t, 4> u = (float16_t(1.0h)).xxxx;
 [numthreads(1, 1, 1)]
 void unused_entry_point() {
 }
diff --git a/test/tint/expressions/type_conv/vec4/literal/u32-f16.wgsl.expected.ir.fxc.hlsl b/test/tint/expressions/type_conv/vec4/literal/u32-f16.wgsl.expected.ir.fxc.hlsl
index 9acd2d7..2d40264 100644
--- a/test/tint/expressions/type_conv/vec4/literal/u32-f16.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/expressions/type_conv/vec4/literal/u32-f16.wgsl.expected.ir.fxc.hlsl
@@ -1,4 +1,11 @@
+SKIP: FAILED
+
+
+static vector<float16_t, 4> u = (float16_t(1.0h)).xxxx;
 [numthreads(1, 1, 1)]
 void unused_entry_point() {
 }
 
+FXC validation failure:
+c:\src\dawn\Shader@0x00000241749E23C0(2,15-23): error X3000: syntax error: unexpected token 'float16_t'
+
diff --git a/test/tint/expressions/type_conv/vec4/literal/u32-f32.wgsl.expected.ir.dxc.hlsl b/test/tint/expressions/type_conv/vec4/literal/u32-f32.wgsl.expected.ir.dxc.hlsl
index 9acd2d7..ba7f9df 100644
--- a/test/tint/expressions/type_conv/vec4/literal/u32-f32.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/expressions/type_conv/vec4/literal/u32-f32.wgsl.expected.ir.dxc.hlsl
@@ -1,3 +1,5 @@
+
+static float4 u = (1.0f).xxxx;
 [numthreads(1, 1, 1)]
 void unused_entry_point() {
 }
diff --git a/test/tint/expressions/type_conv/vec4/literal/u32-f32.wgsl.expected.ir.fxc.hlsl b/test/tint/expressions/type_conv/vec4/literal/u32-f32.wgsl.expected.ir.fxc.hlsl
index 9acd2d7..ba7f9df 100644
--- a/test/tint/expressions/type_conv/vec4/literal/u32-f32.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/expressions/type_conv/vec4/literal/u32-f32.wgsl.expected.ir.fxc.hlsl
@@ -1,3 +1,5 @@
+
+static float4 u = (1.0f).xxxx;
 [numthreads(1, 1, 1)]
 void unused_entry_point() {
 }
diff --git a/test/tint/expressions/type_conv/vec4/literal/u32-i32.wgsl.expected.ir.dxc.hlsl b/test/tint/expressions/type_conv/vec4/literal/u32-i32.wgsl.expected.ir.dxc.hlsl
index 9acd2d7..64d5058 100644
--- a/test/tint/expressions/type_conv/vec4/literal/u32-i32.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/expressions/type_conv/vec4/literal/u32-i32.wgsl.expected.ir.dxc.hlsl
@@ -1,3 +1,5 @@
+
+static int4 u = (1).xxxx;
 [numthreads(1, 1, 1)]
 void unused_entry_point() {
 }
diff --git a/test/tint/expressions/type_conv/vec4/literal/u32-i32.wgsl.expected.ir.fxc.hlsl b/test/tint/expressions/type_conv/vec4/literal/u32-i32.wgsl.expected.ir.fxc.hlsl
index 9acd2d7..64d5058 100644
--- a/test/tint/expressions/type_conv/vec4/literal/u32-i32.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/expressions/type_conv/vec4/literal/u32-i32.wgsl.expected.ir.fxc.hlsl
@@ -1,3 +1,5 @@
+
+static int4 u = (1).xxxx;
 [numthreads(1, 1, 1)]
 void unused_entry_point() {
 }
diff --git a/test/tint/expressions/type_conv/vec4/var/bool-f16.wgsl.expected.ir.dxc.hlsl b/test/tint/expressions/type_conv/vec4/var/bool-f16.wgsl.expected.ir.dxc.hlsl
index 48e23f4..4415686 100644
--- a/test/tint/expressions/type_conv/vec4/var/bool-f16.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/expressions/type_conv/vec4/var/bool-f16.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,10 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Convert
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+static bool4 u = (true).xxxx;
+void f() {
+  vector<float16_t, 4> v = vector<float16_t, 4>(u);
+}
+
+[numthreads(1, 1, 1)]
+void unused_entry_point() {
+}
+
diff --git a/test/tint/expressions/type_conv/vec4/var/bool-f16.wgsl.expected.ir.fxc.hlsl b/test/tint/expressions/type_conv/vec4/var/bool-f16.wgsl.expected.ir.fxc.hlsl
index 48e23f4..0dd86d4 100644
--- a/test/tint/expressions/type_conv/vec4/var/bool-f16.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/expressions/type_conv/vec4/var/bool-f16.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,15 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Convert
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+
+static bool4 u = (true).xxxx;
+void f() {
+  vector<float16_t, 4> v = vector<float16_t, 4>(u);
+}
+
+[numthreads(1, 1, 1)]
+void unused_entry_point() {
+}
+
+FXC validation failure:
+c:\src\dawn\Shader@0x000001CEA9545980(4,10-18): error X3000: syntax error: unexpected token 'float16_t'
+
diff --git a/test/tint/expressions/type_conv/vec4/var/bool-f32.wgsl.expected.ir.dxc.hlsl b/test/tint/expressions/type_conv/vec4/var/bool-f32.wgsl.expected.ir.dxc.hlsl
index 48e23f4..0077927 100644
--- a/test/tint/expressions/type_conv/vec4/var/bool-f32.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/expressions/type_conv/vec4/var/bool-f32.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,10 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Convert
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+static bool4 u = (true).xxxx;
+void f() {
+  float4 v = float4(u);
+}
+
+[numthreads(1, 1, 1)]
+void unused_entry_point() {
+}
+
diff --git a/test/tint/expressions/type_conv/vec4/var/bool-f32.wgsl.expected.ir.fxc.hlsl b/test/tint/expressions/type_conv/vec4/var/bool-f32.wgsl.expected.ir.fxc.hlsl
index 48e23f4..0077927 100644
--- a/test/tint/expressions/type_conv/vec4/var/bool-f32.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/expressions/type_conv/vec4/var/bool-f32.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,10 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Convert
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+static bool4 u = (true).xxxx;
+void f() {
+  float4 v = float4(u);
+}
+
+[numthreads(1, 1, 1)]
+void unused_entry_point() {
+}
+
diff --git a/test/tint/expressions/type_conv/vec4/var/bool-i32.wgsl.expected.ir.dxc.hlsl b/test/tint/expressions/type_conv/vec4/var/bool-i32.wgsl.expected.ir.dxc.hlsl
index 48e23f4..c179236 100644
--- a/test/tint/expressions/type_conv/vec4/var/bool-i32.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/expressions/type_conv/vec4/var/bool-i32.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,10 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Convert
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+static bool4 u = (true).xxxx;
+void f() {
+  int4 v = int4(u);
+}
+
+[numthreads(1, 1, 1)]
+void unused_entry_point() {
+}
+
diff --git a/test/tint/expressions/type_conv/vec4/var/bool-i32.wgsl.expected.ir.fxc.hlsl b/test/tint/expressions/type_conv/vec4/var/bool-i32.wgsl.expected.ir.fxc.hlsl
index 48e23f4..c179236 100644
--- a/test/tint/expressions/type_conv/vec4/var/bool-i32.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/expressions/type_conv/vec4/var/bool-i32.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,10 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Convert
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+static bool4 u = (true).xxxx;
+void f() {
+  int4 v = int4(u);
+}
+
+[numthreads(1, 1, 1)]
+void unused_entry_point() {
+}
+
diff --git a/test/tint/expressions/type_conv/vec4/var/bool-u32.wgsl.expected.ir.dxc.hlsl b/test/tint/expressions/type_conv/vec4/var/bool-u32.wgsl.expected.ir.dxc.hlsl
index 48e23f4..aa42222 100644
--- a/test/tint/expressions/type_conv/vec4/var/bool-u32.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/expressions/type_conv/vec4/var/bool-u32.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,10 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Convert
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+static bool4 u = (true).xxxx;
+void f() {
+  uint4 v = uint4(u);
+}
+
+[numthreads(1, 1, 1)]
+void unused_entry_point() {
+}
+
diff --git a/test/tint/expressions/type_conv/vec4/var/bool-u32.wgsl.expected.ir.fxc.hlsl b/test/tint/expressions/type_conv/vec4/var/bool-u32.wgsl.expected.ir.fxc.hlsl
index 48e23f4..aa42222 100644
--- a/test/tint/expressions/type_conv/vec4/var/bool-u32.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/expressions/type_conv/vec4/var/bool-u32.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,10 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Convert
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+static bool4 u = (true).xxxx;
+void f() {
+  uint4 v = uint4(u);
+}
+
+[numthreads(1, 1, 1)]
+void unused_entry_point() {
+}
+
diff --git a/test/tint/expressions/type_conv/vec4/var/f16-bool.wgsl.expected.ir.dxc.hlsl b/test/tint/expressions/type_conv/vec4/var/f16-bool.wgsl.expected.ir.dxc.hlsl
index 48e23f4..c5e115d 100644
--- a/test/tint/expressions/type_conv/vec4/var/f16-bool.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/expressions/type_conv/vec4/var/f16-bool.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,10 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Convert
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+static vector<float16_t, 4> u = (float16_t(1.0h)).xxxx;
+void f() {
+  bool4 v = bool4(u);
+}
+
+[numthreads(1, 1, 1)]
+void unused_entry_point() {
+}
+
diff --git a/test/tint/expressions/type_conv/vec4/var/f16-bool.wgsl.expected.ir.fxc.hlsl b/test/tint/expressions/type_conv/vec4/var/f16-bool.wgsl.expected.ir.fxc.hlsl
index 48e23f4..2ad8847 100644
--- a/test/tint/expressions/type_conv/vec4/var/f16-bool.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/expressions/type_conv/vec4/var/f16-bool.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,15 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Convert
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+
+static vector<float16_t, 4> u = (float16_t(1.0h)).xxxx;
+void f() {
+  bool4 v = bool4(u);
+}
+
+[numthreads(1, 1, 1)]
+void unused_entry_point() {
+}
+
+FXC validation failure:
+c:\src\dawn\Shader@0x000002286ED546E0(2,15-23): error X3000: syntax error: unexpected token 'float16_t'
+
diff --git a/test/tint/expressions/type_conv/vec4/var/f16-f32.wgsl.expected.ir.dxc.hlsl b/test/tint/expressions/type_conv/vec4/var/f16-f32.wgsl.expected.ir.dxc.hlsl
index 48e23f4..1ec1fc9 100644
--- a/test/tint/expressions/type_conv/vec4/var/f16-f32.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/expressions/type_conv/vec4/var/f16-f32.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,10 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Convert
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+static vector<float16_t, 4> u = (float16_t(1.0h)).xxxx;
+void f() {
+  float4 v = float4(u);
+}
+
+[numthreads(1, 1, 1)]
+void unused_entry_point() {
+}
+
diff --git a/test/tint/expressions/type_conv/vec4/var/f16-f32.wgsl.expected.ir.fxc.hlsl b/test/tint/expressions/type_conv/vec4/var/f16-f32.wgsl.expected.ir.fxc.hlsl
index 48e23f4..e50a006 100644
--- a/test/tint/expressions/type_conv/vec4/var/f16-f32.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/expressions/type_conv/vec4/var/f16-f32.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,15 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Convert
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+
+static vector<float16_t, 4> u = (float16_t(1.0h)).xxxx;
+void f() {
+  float4 v = float4(u);
+}
+
+[numthreads(1, 1, 1)]
+void unused_entry_point() {
+}
+
+FXC validation failure:
+c:\src\dawn\Shader@0x000001AE1E855290(2,15-23): error X3000: syntax error: unexpected token 'float16_t'
+
diff --git a/test/tint/expressions/type_conv/vec4/var/f16-i32.wgsl.expected.ir.dxc.hlsl b/test/tint/expressions/type_conv/vec4/var/f16-i32.wgsl.expected.ir.dxc.hlsl
index 48e23f4..06b638a 100644
--- a/test/tint/expressions/type_conv/vec4/var/f16-i32.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/expressions/type_conv/vec4/var/f16-i32.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,14 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Convert
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+static vector<float16_t, 4> u = (float16_t(1.0h)).xxxx;
+int4 tint_v4f16_to_v4i32(vector<float16_t, 4> value) {
+  return (((value <= (float16_t(65504.0h)).xxxx)) ? ((((value >= (float16_t(-65504.0h)).xxxx)) ? (int4(value)) : ((-2147483648).xxxx))) : ((2147483647).xxxx));
+}
+
+void f() {
+  int4 v = tint_v4f16_to_v4i32(u);
+}
+
+[numthreads(1, 1, 1)]
+void unused_entry_point() {
+}
+
diff --git a/test/tint/expressions/type_conv/vec4/var/f16-i32.wgsl.expected.ir.fxc.hlsl b/test/tint/expressions/type_conv/vec4/var/f16-i32.wgsl.expected.ir.fxc.hlsl
index 48e23f4..de5a7fb 100644
--- a/test/tint/expressions/type_conv/vec4/var/f16-i32.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/expressions/type_conv/vec4/var/f16-i32.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,19 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Convert
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+
+static vector<float16_t, 4> u = (float16_t(1.0h)).xxxx;
+int4 tint_v4f16_to_v4i32(vector<float16_t, 4> value) {
+  return (((value <= (float16_t(65504.0h)).xxxx)) ? ((((value >= (float16_t(-65504.0h)).xxxx)) ? (int4(value)) : ((-2147483648).xxxx))) : ((2147483647).xxxx));
+}
+
+void f() {
+  int4 v = tint_v4f16_to_v4i32(u);
+}
+
+[numthreads(1, 1, 1)]
+void unused_entry_point() {
+}
+
+FXC validation failure:
+c:\src\dawn\Shader@0x000001BDE7CE5B30(2,15-23): error X3000: syntax error: unexpected token 'float16_t'
+
diff --git a/test/tint/expressions/type_conv/vec4/var/f16-u32.wgsl.expected.ir.dxc.hlsl b/test/tint/expressions/type_conv/vec4/var/f16-u32.wgsl.expected.ir.dxc.hlsl
index 48e23f4..7fe27f4 100644
--- a/test/tint/expressions/type_conv/vec4/var/f16-u32.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/expressions/type_conv/vec4/var/f16-u32.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,14 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Convert
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+static vector<float16_t, 4> u = (float16_t(1.0h)).xxxx;
+uint4 tint_v4f16_to_v4u32(vector<float16_t, 4> value) {
+  return (((value <= (float16_t(65504.0h)).xxxx)) ? ((((value >= (float16_t(0.0h)).xxxx)) ? (uint4(value)) : ((0u).xxxx))) : ((4294967295u).xxxx));
+}
+
+void f() {
+  uint4 v = tint_v4f16_to_v4u32(u);
+}
+
+[numthreads(1, 1, 1)]
+void unused_entry_point() {
+}
+
diff --git a/test/tint/expressions/type_conv/vec4/var/f16-u32.wgsl.expected.ir.fxc.hlsl b/test/tint/expressions/type_conv/vec4/var/f16-u32.wgsl.expected.ir.fxc.hlsl
index 48e23f4..3fb0707 100644
--- a/test/tint/expressions/type_conv/vec4/var/f16-u32.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/expressions/type_conv/vec4/var/f16-u32.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,19 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Convert
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+
+static vector<float16_t, 4> u = (float16_t(1.0h)).xxxx;
+uint4 tint_v4f16_to_v4u32(vector<float16_t, 4> value) {
+  return (((value <= (float16_t(65504.0h)).xxxx)) ? ((((value >= (float16_t(0.0h)).xxxx)) ? (uint4(value)) : ((0u).xxxx))) : ((4294967295u).xxxx));
+}
+
+void f() {
+  uint4 v = tint_v4f16_to_v4u32(u);
+}
+
+[numthreads(1, 1, 1)]
+void unused_entry_point() {
+}
+
+FXC validation failure:
+c:\src\dawn\Shader@0x0000021D1958E3D0(2,15-23): error X3000: syntax error: unexpected token 'float16_t'
+
diff --git a/test/tint/expressions/type_conv/vec4/var/f32-bool.wgsl.expected.ir.dxc.hlsl b/test/tint/expressions/type_conv/vec4/var/f32-bool.wgsl.expected.ir.dxc.hlsl
index 48e23f4..a676fb9 100644
--- a/test/tint/expressions/type_conv/vec4/var/f32-bool.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/expressions/type_conv/vec4/var/f32-bool.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,10 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Convert
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+static float4 u = (1.0f).xxxx;
+void f() {
+  bool4 v = bool4(u);
+}
+
+[numthreads(1, 1, 1)]
+void unused_entry_point() {
+}
+
diff --git a/test/tint/expressions/type_conv/vec4/var/f32-bool.wgsl.expected.ir.fxc.hlsl b/test/tint/expressions/type_conv/vec4/var/f32-bool.wgsl.expected.ir.fxc.hlsl
index 48e23f4..a676fb9 100644
--- a/test/tint/expressions/type_conv/vec4/var/f32-bool.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/expressions/type_conv/vec4/var/f32-bool.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,10 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Convert
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+static float4 u = (1.0f).xxxx;
+void f() {
+  bool4 v = bool4(u);
+}
+
+[numthreads(1, 1, 1)]
+void unused_entry_point() {
+}
+
diff --git a/test/tint/expressions/type_conv/vec4/var/f32-f16.wgsl.expected.ir.dxc.hlsl b/test/tint/expressions/type_conv/vec4/var/f32-f16.wgsl.expected.ir.dxc.hlsl
index 48e23f4..f99cc45 100644
--- a/test/tint/expressions/type_conv/vec4/var/f32-f16.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/expressions/type_conv/vec4/var/f32-f16.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,10 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Convert
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+static float4 u = (1.0f).xxxx;
+void f() {
+  vector<float16_t, 4> v = vector<float16_t, 4>(u);
+}
+
+[numthreads(1, 1, 1)]
+void unused_entry_point() {
+}
+
diff --git a/test/tint/expressions/type_conv/vec4/var/f32-f16.wgsl.expected.ir.fxc.hlsl b/test/tint/expressions/type_conv/vec4/var/f32-f16.wgsl.expected.ir.fxc.hlsl
index 48e23f4..f301ab6 100644
--- a/test/tint/expressions/type_conv/vec4/var/f32-f16.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/expressions/type_conv/vec4/var/f32-f16.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,15 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Convert
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+
+static float4 u = (1.0f).xxxx;
+void f() {
+  vector<float16_t, 4> v = vector<float16_t, 4>(u);
+}
+
+[numthreads(1, 1, 1)]
+void unused_entry_point() {
+}
+
+FXC validation failure:
+c:\src\dawn\Shader@0x0000022F0BF05980(4,10-18): error X3000: syntax error: unexpected token 'float16_t'
+
diff --git a/test/tint/expressions/type_conv/vec4/var/f32-i32.wgsl.expected.ir.dxc.hlsl b/test/tint/expressions/type_conv/vec4/var/f32-i32.wgsl.expected.ir.dxc.hlsl
index 48e23f4..e19a398 100644
--- a/test/tint/expressions/type_conv/vec4/var/f32-i32.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/expressions/type_conv/vec4/var/f32-i32.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,14 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Convert
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+static float4 u = (1.0f).xxxx;
+int4 tint_v4f32_to_v4i32(float4 value) {
+  return (((value <= (2147483520.0f).xxxx)) ? ((((value >= (-2147483648.0f).xxxx)) ? (int4(value)) : ((-2147483648).xxxx))) : ((2147483647).xxxx));
+}
+
+void f() {
+  int4 v = tint_v4f32_to_v4i32(u);
+}
+
+[numthreads(1, 1, 1)]
+void unused_entry_point() {
+}
+
diff --git a/test/tint/expressions/type_conv/vec4/var/f32-i32.wgsl.expected.ir.fxc.hlsl b/test/tint/expressions/type_conv/vec4/var/f32-i32.wgsl.expected.ir.fxc.hlsl
index 48e23f4..e19a398 100644
--- a/test/tint/expressions/type_conv/vec4/var/f32-i32.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/expressions/type_conv/vec4/var/f32-i32.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,14 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Convert
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+static float4 u = (1.0f).xxxx;
+int4 tint_v4f32_to_v4i32(float4 value) {
+  return (((value <= (2147483520.0f).xxxx)) ? ((((value >= (-2147483648.0f).xxxx)) ? (int4(value)) : ((-2147483648).xxxx))) : ((2147483647).xxxx));
+}
+
+void f() {
+  int4 v = tint_v4f32_to_v4i32(u);
+}
+
+[numthreads(1, 1, 1)]
+void unused_entry_point() {
+}
+
diff --git a/test/tint/expressions/type_conv/vec4/var/f32-u32.wgsl.expected.ir.dxc.hlsl b/test/tint/expressions/type_conv/vec4/var/f32-u32.wgsl.expected.ir.dxc.hlsl
index 48e23f4..9a3c46b 100644
--- a/test/tint/expressions/type_conv/vec4/var/f32-u32.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/expressions/type_conv/vec4/var/f32-u32.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,14 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Convert
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+static float4 u = (1.0f).xxxx;
+uint4 tint_v4f32_to_v4u32(float4 value) {
+  return (((value <= (4294967040.0f).xxxx)) ? ((((value >= (0.0f).xxxx)) ? (uint4(value)) : ((0u).xxxx))) : ((4294967295u).xxxx));
+}
+
+void f() {
+  uint4 v = tint_v4f32_to_v4u32(u);
+}
+
+[numthreads(1, 1, 1)]
+void unused_entry_point() {
+}
+
diff --git a/test/tint/expressions/type_conv/vec4/var/f32-u32.wgsl.expected.ir.fxc.hlsl b/test/tint/expressions/type_conv/vec4/var/f32-u32.wgsl.expected.ir.fxc.hlsl
index 48e23f4..9a3c46b 100644
--- a/test/tint/expressions/type_conv/vec4/var/f32-u32.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/expressions/type_conv/vec4/var/f32-u32.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,14 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Convert
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+static float4 u = (1.0f).xxxx;
+uint4 tint_v4f32_to_v4u32(float4 value) {
+  return (((value <= (4294967040.0f).xxxx)) ? ((((value >= (0.0f).xxxx)) ? (uint4(value)) : ((0u).xxxx))) : ((4294967295u).xxxx));
+}
+
+void f() {
+  uint4 v = tint_v4f32_to_v4u32(u);
+}
+
+[numthreads(1, 1, 1)]
+void unused_entry_point() {
+}
+
diff --git a/test/tint/expressions/type_conv/vec4/var/i32-bool.wgsl.expected.ir.dxc.hlsl b/test/tint/expressions/type_conv/vec4/var/i32-bool.wgsl.expected.ir.dxc.hlsl
index 48e23f4..c5edab0 100644
--- a/test/tint/expressions/type_conv/vec4/var/i32-bool.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/expressions/type_conv/vec4/var/i32-bool.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,10 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Convert
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+static int4 u = (1).xxxx;
+void f() {
+  bool4 v = bool4(u);
+}
+
+[numthreads(1, 1, 1)]
+void unused_entry_point() {
+}
+
diff --git a/test/tint/expressions/type_conv/vec4/var/i32-bool.wgsl.expected.ir.fxc.hlsl b/test/tint/expressions/type_conv/vec4/var/i32-bool.wgsl.expected.ir.fxc.hlsl
index 48e23f4..c5edab0 100644
--- a/test/tint/expressions/type_conv/vec4/var/i32-bool.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/expressions/type_conv/vec4/var/i32-bool.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,10 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Convert
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+static int4 u = (1).xxxx;
+void f() {
+  bool4 v = bool4(u);
+}
+
+[numthreads(1, 1, 1)]
+void unused_entry_point() {
+}
+
diff --git a/test/tint/expressions/type_conv/vec4/var/i32-f16.wgsl.expected.ir.dxc.hlsl b/test/tint/expressions/type_conv/vec4/var/i32-f16.wgsl.expected.ir.dxc.hlsl
index 48e23f4..669e6f0 100644
--- a/test/tint/expressions/type_conv/vec4/var/i32-f16.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/expressions/type_conv/vec4/var/i32-f16.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,10 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Convert
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+static int4 u = (1).xxxx;
+void f() {
+  vector<float16_t, 4> v = vector<float16_t, 4>(u);
+}
+
+[numthreads(1, 1, 1)]
+void unused_entry_point() {
+}
+
diff --git a/test/tint/expressions/type_conv/vec4/var/i32-f16.wgsl.expected.ir.fxc.hlsl b/test/tint/expressions/type_conv/vec4/var/i32-f16.wgsl.expected.ir.fxc.hlsl
index 48e23f4..78efca2 100644
--- a/test/tint/expressions/type_conv/vec4/var/i32-f16.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/expressions/type_conv/vec4/var/i32-f16.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,15 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Convert
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+
+static int4 u = (1).xxxx;
+void f() {
+  vector<float16_t, 4> v = vector<float16_t, 4>(u);
+}
+
+[numthreads(1, 1, 1)]
+void unused_entry_point() {
+}
+
+FXC validation failure:
+c:\src\dawn\Shader@0x0000018924B416F0(4,10-18): error X3000: syntax error: unexpected token 'float16_t'
+
diff --git a/test/tint/expressions/type_conv/vec4/var/i32-f32.wgsl.expected.ir.dxc.hlsl b/test/tint/expressions/type_conv/vec4/var/i32-f32.wgsl.expected.ir.dxc.hlsl
index 48e23f4..10bf8c6 100644
--- a/test/tint/expressions/type_conv/vec4/var/i32-f32.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/expressions/type_conv/vec4/var/i32-f32.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,10 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Convert
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+static int4 u = (1).xxxx;
+void f() {
+  float4 v = float4(u);
+}
+
+[numthreads(1, 1, 1)]
+void unused_entry_point() {
+}
+
diff --git a/test/tint/expressions/type_conv/vec4/var/i32-f32.wgsl.expected.ir.fxc.hlsl b/test/tint/expressions/type_conv/vec4/var/i32-f32.wgsl.expected.ir.fxc.hlsl
index 48e23f4..10bf8c6 100644
--- a/test/tint/expressions/type_conv/vec4/var/i32-f32.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/expressions/type_conv/vec4/var/i32-f32.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,10 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Convert
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+static int4 u = (1).xxxx;
+void f() {
+  float4 v = float4(u);
+}
+
+[numthreads(1, 1, 1)]
+void unused_entry_point() {
+}
+
diff --git a/test/tint/expressions/type_conv/vec4/var/i32-u32.wgsl.expected.ir.dxc.hlsl b/test/tint/expressions/type_conv/vec4/var/i32-u32.wgsl.expected.ir.dxc.hlsl
index 48e23f4..42b4a56 100644
--- a/test/tint/expressions/type_conv/vec4/var/i32-u32.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/expressions/type_conv/vec4/var/i32-u32.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,10 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Convert
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+static int4 u = (1).xxxx;
+void f() {
+  uint4 v = uint4(u);
+}
+
+[numthreads(1, 1, 1)]
+void unused_entry_point() {
+}
+
diff --git a/test/tint/expressions/type_conv/vec4/var/i32-u32.wgsl.expected.ir.fxc.hlsl b/test/tint/expressions/type_conv/vec4/var/i32-u32.wgsl.expected.ir.fxc.hlsl
index 48e23f4..42b4a56 100644
--- a/test/tint/expressions/type_conv/vec4/var/i32-u32.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/expressions/type_conv/vec4/var/i32-u32.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,10 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Convert
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+static int4 u = (1).xxxx;
+void f() {
+  uint4 v = uint4(u);
+}
+
+[numthreads(1, 1, 1)]
+void unused_entry_point() {
+}
+
diff --git a/test/tint/expressions/type_conv/vec4/var/u32-bool.wgsl.expected.ir.dxc.hlsl b/test/tint/expressions/type_conv/vec4/var/u32-bool.wgsl.expected.ir.dxc.hlsl
index 48e23f4..694318c 100644
--- a/test/tint/expressions/type_conv/vec4/var/u32-bool.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/expressions/type_conv/vec4/var/u32-bool.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,10 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Convert
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+static uint4 u = (1u).xxxx;
+void f() {
+  bool4 v = bool4(u);
+}
+
+[numthreads(1, 1, 1)]
+void unused_entry_point() {
+}
+
diff --git a/test/tint/expressions/type_conv/vec4/var/u32-bool.wgsl.expected.ir.fxc.hlsl b/test/tint/expressions/type_conv/vec4/var/u32-bool.wgsl.expected.ir.fxc.hlsl
index 48e23f4..694318c 100644
--- a/test/tint/expressions/type_conv/vec4/var/u32-bool.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/expressions/type_conv/vec4/var/u32-bool.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,10 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Convert
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+static uint4 u = (1u).xxxx;
+void f() {
+  bool4 v = bool4(u);
+}
+
+[numthreads(1, 1, 1)]
+void unused_entry_point() {
+}
+
diff --git a/test/tint/expressions/type_conv/vec4/var/u32-f16.wgsl.expected.ir.dxc.hlsl b/test/tint/expressions/type_conv/vec4/var/u32-f16.wgsl.expected.ir.dxc.hlsl
index 48e23f4..262e73e 100644
--- a/test/tint/expressions/type_conv/vec4/var/u32-f16.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/expressions/type_conv/vec4/var/u32-f16.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,10 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Convert
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+static uint4 u = (1u).xxxx;
+void f() {
+  vector<float16_t, 4> v = vector<float16_t, 4>(u);
+}
+
+[numthreads(1, 1, 1)]
+void unused_entry_point() {
+}
+
diff --git a/test/tint/expressions/type_conv/vec4/var/u32-f16.wgsl.expected.ir.fxc.hlsl b/test/tint/expressions/type_conv/vec4/var/u32-f16.wgsl.expected.ir.fxc.hlsl
index 48e23f4..cced9d0 100644
--- a/test/tint/expressions/type_conv/vec4/var/u32-f16.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/expressions/type_conv/vec4/var/u32-f16.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,15 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Convert
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+
+static uint4 u = (1u).xxxx;
+void f() {
+  vector<float16_t, 4> v = vector<float16_t, 4>(u);
+}
+
+[numthreads(1, 1, 1)]
+void unused_entry_point() {
+}
+
+FXC validation failure:
+c:\src\dawn\Shader@0x000001E48E335290(4,10-18): error X3000: syntax error: unexpected token 'float16_t'
+
diff --git a/test/tint/expressions/type_conv/vec4/var/u32-f32.wgsl.expected.ir.dxc.hlsl b/test/tint/expressions/type_conv/vec4/var/u32-f32.wgsl.expected.ir.dxc.hlsl
index 48e23f4..6b4c6ab 100644
--- a/test/tint/expressions/type_conv/vec4/var/u32-f32.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/expressions/type_conv/vec4/var/u32-f32.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,10 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Convert
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+static uint4 u = (1u).xxxx;
+void f() {
+  float4 v = float4(u);
+}
+
+[numthreads(1, 1, 1)]
+void unused_entry_point() {
+}
+
diff --git a/test/tint/expressions/type_conv/vec4/var/u32-f32.wgsl.expected.ir.fxc.hlsl b/test/tint/expressions/type_conv/vec4/var/u32-f32.wgsl.expected.ir.fxc.hlsl
index 48e23f4..6b4c6ab 100644
--- a/test/tint/expressions/type_conv/vec4/var/u32-f32.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/expressions/type_conv/vec4/var/u32-f32.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,10 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Convert
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+static uint4 u = (1u).xxxx;
+void f() {
+  float4 v = float4(u);
+}
+
+[numthreads(1, 1, 1)]
+void unused_entry_point() {
+}
+
diff --git a/test/tint/expressions/type_conv/vec4/var/u32-i32.wgsl.expected.ir.dxc.hlsl b/test/tint/expressions/type_conv/vec4/var/u32-i32.wgsl.expected.ir.dxc.hlsl
index 48e23f4..4c8a751 100644
--- a/test/tint/expressions/type_conv/vec4/var/u32-i32.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/expressions/type_conv/vec4/var/u32-i32.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,10 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Convert
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+static uint4 u = (1u).xxxx;
+void f() {
+  int4 v = int4(u);
+}
+
+[numthreads(1, 1, 1)]
+void unused_entry_point() {
+}
+
diff --git a/test/tint/expressions/type_conv/vec4/var/u32-i32.wgsl.expected.ir.fxc.hlsl b/test/tint/expressions/type_conv/vec4/var/u32-i32.wgsl.expected.ir.fxc.hlsl
index 48e23f4..4c8a751 100644
--- a/test/tint/expressions/type_conv/vec4/var/u32-i32.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/expressions/type_conv/vec4/var/u32-i32.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,10 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Convert
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+static uint4 u = (1u).xxxx;
+void f() {
+  int4 v = int4(u);
+}
+
+[numthreads(1, 1, 1)]
+void unused_entry_point() {
+}
+
diff --git a/test/tint/expressions/type_ctor/array/explicit/abstract.wgsl.expected.ir.dxc.hlsl b/test/tint/expressions/type_ctor/array/explicit/abstract.wgsl.expected.ir.dxc.hlsl
index da6cd0e..f0b22bb 100644
--- a/test/tint/expressions/type_ctor/array/explicit/abstract.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/expressions/type_ctor/array/explicit/abstract.wgsl.expected.ir.dxc.hlsl
@@ -1,19 +1,11 @@
-SKIP: FAILED
 
+static const float v_1[2] = {1.0f, 2.0f};
+static float arr[2] = v_1;
 void f() {
-  float[2] v = arr;
+  float v[2] = arr;
 }
 
 [numthreads(1, 1, 1)]
 void unused_entry_point() {
 }
 
-DXC validation failure:
-hlsl.hlsl:2:13: error: brackets are not allowed here; to declare an array, place the brackets after the name
-  float[2] v = arr;
-       ~~~  ^
-            [2]
-hlsl.hlsl:2:16: error: use of undeclared identifier 'arr'
-  float[2] v = arr;
-               ^
-
diff --git a/test/tint/expressions/type_ctor/array/explicit/abstract.wgsl.expected.ir.fxc.hlsl b/test/tint/expressions/type_ctor/array/explicit/abstract.wgsl.expected.ir.fxc.hlsl
index ed747d4..f0b22bb 100644
--- a/test/tint/expressions/type_ctor/array/explicit/abstract.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/expressions/type_ctor/array/explicit/abstract.wgsl.expected.ir.fxc.hlsl
@@ -1,7 +1,8 @@
-SKIP: FAILED
 
+static const float v_1[2] = {1.0f, 2.0f};
+static float arr[2] = v_1;
 void f() {
-  float[2] v = arr;
+  float v[2] = arr;
 }
 
 [numthreads(1, 1, 1)]
diff --git a/test/tint/expressions/type_ctor/array/explicit/array/abstract.wgsl.expected.ir.dxc.hlsl b/test/tint/expressions/type_ctor/array/explicit/array/abstract.wgsl.expected.ir.dxc.hlsl
index 3614d9a..5336731 100644
--- a/test/tint/expressions/type_ctor/array/explicit/array/abstract.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/expressions/type_ctor/array/explicit/array/abstract.wgsl.expected.ir.dxc.hlsl
@@ -1,19 +1,11 @@
-SKIP: FAILED
 
+static const float v_1[2][2] = {{1.0f, 2.0f}, {3.0f, 4.0f}};
+static float arr[2][2] = v_1;
 void f() {
-  float[2][2] v = arr;
+  float v[2][2] = arr;
 }
 
 [numthreads(1, 1, 1)]
 void unused_entry_point() {
 }
 
-DXC validation failure:
-hlsl.hlsl:2:16: error: brackets are not allowed here; to declare an array, place the brackets after the name
-  float[2][2] v = arr;
-       ~~~~~~  ^
-               [2][2]
-hlsl.hlsl:2:19: error: use of undeclared identifier 'arr'
-  float[2][2] v = arr;
-                  ^
-
diff --git a/test/tint/expressions/type_ctor/array/explicit/array/abstract.wgsl.expected.ir.fxc.hlsl b/test/tint/expressions/type_ctor/array/explicit/array/abstract.wgsl.expected.ir.fxc.hlsl
index d6ea12f..5336731 100644
--- a/test/tint/expressions/type_ctor/array/explicit/array/abstract.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/expressions/type_ctor/array/explicit/array/abstract.wgsl.expected.ir.fxc.hlsl
@@ -1,7 +1,8 @@
-SKIP: FAILED
 
+static const float v_1[2][2] = {{1.0f, 2.0f}, {3.0f, 4.0f}};
+static float arr[2][2] = v_1;
 void f() {
-  float[2][2] v = arr;
+  float v[2][2] = arr;
 }
 
 [numthreads(1, 1, 1)]
diff --git a/test/tint/expressions/type_ctor/array/explicit/array/f32.wgsl.expected.ir.dxc.hlsl b/test/tint/expressions/type_ctor/array/explicit/array/f32.wgsl.expected.ir.dxc.hlsl
index 3614d9a..5336731 100644
--- a/test/tint/expressions/type_ctor/array/explicit/array/f32.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/expressions/type_ctor/array/explicit/array/f32.wgsl.expected.ir.dxc.hlsl
@@ -1,19 +1,11 @@
-SKIP: FAILED
 
+static const float v_1[2][2] = {{1.0f, 2.0f}, {3.0f, 4.0f}};
+static float arr[2][2] = v_1;
 void f() {
-  float[2][2] v = arr;
+  float v[2][2] = arr;
 }
 
 [numthreads(1, 1, 1)]
 void unused_entry_point() {
 }
 
-DXC validation failure:
-hlsl.hlsl:2:16: error: brackets are not allowed here; to declare an array, place the brackets after the name
-  float[2][2] v = arr;
-       ~~~~~~  ^
-               [2][2]
-hlsl.hlsl:2:19: error: use of undeclared identifier 'arr'
-  float[2][2] v = arr;
-                  ^
-
diff --git a/test/tint/expressions/type_ctor/array/explicit/array/f32.wgsl.expected.ir.fxc.hlsl b/test/tint/expressions/type_ctor/array/explicit/array/f32.wgsl.expected.ir.fxc.hlsl
index d6ea12f..5336731 100644
--- a/test/tint/expressions/type_ctor/array/explicit/array/f32.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/expressions/type_ctor/array/explicit/array/f32.wgsl.expected.ir.fxc.hlsl
@@ -1,7 +1,8 @@
-SKIP: FAILED
 
+static const float v_1[2][2] = {{1.0f, 2.0f}, {3.0f, 4.0f}};
+static float arr[2][2] = v_1;
 void f() {
-  float[2][2] v = arr;
+  float v[2][2] = arr;
 }
 
 [numthreads(1, 1, 1)]
diff --git a/test/tint/expressions/type_ctor/array/explicit/f32.wgsl.expected.ir.dxc.hlsl b/test/tint/expressions/type_ctor/array/explicit/f32.wgsl.expected.ir.dxc.hlsl
index da6cd0e..f0b22bb 100644
--- a/test/tint/expressions/type_ctor/array/explicit/f32.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/expressions/type_ctor/array/explicit/f32.wgsl.expected.ir.dxc.hlsl
@@ -1,19 +1,11 @@
-SKIP: FAILED
 
+static const float v_1[2] = {1.0f, 2.0f};
+static float arr[2] = v_1;
 void f() {
-  float[2] v = arr;
+  float v[2] = arr;
 }
 
 [numthreads(1, 1, 1)]
 void unused_entry_point() {
 }
 
-DXC validation failure:
-hlsl.hlsl:2:13: error: brackets are not allowed here; to declare an array, place the brackets after the name
-  float[2] v = arr;
-       ~~~  ^
-            [2]
-hlsl.hlsl:2:16: error: use of undeclared identifier 'arr'
-  float[2] v = arr;
-               ^
-
diff --git a/test/tint/expressions/type_ctor/array/explicit/f32.wgsl.expected.ir.fxc.hlsl b/test/tint/expressions/type_ctor/array/explicit/f32.wgsl.expected.ir.fxc.hlsl
index ed747d4..f0b22bb 100644
--- a/test/tint/expressions/type_ctor/array/explicit/f32.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/expressions/type_ctor/array/explicit/f32.wgsl.expected.ir.fxc.hlsl
@@ -1,7 +1,8 @@
-SKIP: FAILED
 
+static const float v_1[2] = {1.0f, 2.0f};
+static float arr[2] = v_1;
 void f() {
-  float[2] v = arr;
+  float v[2] = arr;
 }
 
 [numthreads(1, 1, 1)]
diff --git a/test/tint/expressions/type_ctor/array/explicit/i32.wgsl.expected.ir.dxc.hlsl b/test/tint/expressions/type_ctor/array/explicit/i32.wgsl.expected.ir.dxc.hlsl
index 2e8158e..b866e26 100644
--- a/test/tint/expressions/type_ctor/array/explicit/i32.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/expressions/type_ctor/array/explicit/i32.wgsl.expected.ir.dxc.hlsl
@@ -1,19 +1,11 @@
-SKIP: FAILED
 
+static const int v_1[2] = {1, 2};
+static int arr[2] = v_1;
 void f() {
-  int[2] v = arr;
+  int v[2] = arr;
 }
 
 [numthreads(1, 1, 1)]
 void unused_entry_point() {
 }
 
-DXC validation failure:
-hlsl.hlsl:2:11: error: brackets are not allowed here; to declare an array, place the brackets after the name
-  int[2] v = arr;
-     ~~~  ^
-          [2]
-hlsl.hlsl:2:14: error: use of undeclared identifier 'arr'
-  int[2] v = arr;
-             ^
-
diff --git a/test/tint/expressions/type_ctor/array/explicit/i32.wgsl.expected.ir.fxc.hlsl b/test/tint/expressions/type_ctor/array/explicit/i32.wgsl.expected.ir.fxc.hlsl
index 8b4d57e..b866e26 100644
--- a/test/tint/expressions/type_ctor/array/explicit/i32.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/expressions/type_ctor/array/explicit/i32.wgsl.expected.ir.fxc.hlsl
@@ -1,7 +1,8 @@
-SKIP: FAILED
 
+static const int v_1[2] = {1, 2};
+static int arr[2] = v_1;
 void f() {
-  int[2] v = arr;
+  int v[2] = arr;
 }
 
 [numthreads(1, 1, 1)]
diff --git a/test/tint/expressions/type_ctor/array/explicit/mat2x2/abstract.wgsl.expected.ir.dxc.hlsl b/test/tint/expressions/type_ctor/array/explicit/mat2x2/abstract.wgsl.expected.ir.dxc.hlsl
index d272032..168f6dd 100644
--- a/test/tint/expressions/type_ctor/array/explicit/mat2x2/abstract.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/expressions/type_ctor/array/explicit/mat2x2/abstract.wgsl.expected.ir.dxc.hlsl
@@ -1,19 +1,11 @@
-SKIP: FAILED
 
+static const float2x2 v_1[2] = {float2x2(float2(1.0f, 2.0f), float2(3.0f, 4.0f)), float2x2(float2(5.0f, 6.0f), float2(7.0f, 8.0f))};
+static float2x2 arr[2] = v_1;
 void f() {
-  float2x2[2] v = arr;
+  float2x2 v[2] = arr;
 }
 
 [numthreads(1, 1, 1)]
 void unused_entry_point() {
 }
 
-DXC validation failure:
-hlsl.hlsl:2:16: error: brackets are not allowed here; to declare an array, place the brackets after the name
-  float2x2[2] v = arr;
-          ~~~  ^
-               [2]
-hlsl.hlsl:2:19: error: use of undeclared identifier 'arr'
-  float2x2[2] v = arr;
-                  ^
-
diff --git a/test/tint/expressions/type_ctor/array/explicit/mat2x2/abstract.wgsl.expected.ir.fxc.hlsl b/test/tint/expressions/type_ctor/array/explicit/mat2x2/abstract.wgsl.expected.ir.fxc.hlsl
index 6cd6faf..168f6dd 100644
--- a/test/tint/expressions/type_ctor/array/explicit/mat2x2/abstract.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/expressions/type_ctor/array/explicit/mat2x2/abstract.wgsl.expected.ir.fxc.hlsl
@@ -1,7 +1,8 @@
-SKIP: FAILED
 
+static const float2x2 v_1[2] = {float2x2(float2(1.0f, 2.0f), float2(3.0f, 4.0f)), float2x2(float2(5.0f, 6.0f), float2(7.0f, 8.0f))};
+static float2x2 arr[2] = v_1;
 void f() {
-  float2x2[2] v = arr;
+  float2x2 v[2] = arr;
 }
 
 [numthreads(1, 1, 1)]
diff --git a/test/tint/expressions/type_ctor/array/explicit/mat2x2/f32.wgsl.expected.ir.dxc.hlsl b/test/tint/expressions/type_ctor/array/explicit/mat2x2/f32.wgsl.expected.ir.dxc.hlsl
index d272032..168f6dd 100644
--- a/test/tint/expressions/type_ctor/array/explicit/mat2x2/f32.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/expressions/type_ctor/array/explicit/mat2x2/f32.wgsl.expected.ir.dxc.hlsl
@@ -1,19 +1,11 @@
-SKIP: FAILED
 
+static const float2x2 v_1[2] = {float2x2(float2(1.0f, 2.0f), float2(3.0f, 4.0f)), float2x2(float2(5.0f, 6.0f), float2(7.0f, 8.0f))};
+static float2x2 arr[2] = v_1;
 void f() {
-  float2x2[2] v = arr;
+  float2x2 v[2] = arr;
 }
 
 [numthreads(1, 1, 1)]
 void unused_entry_point() {
 }
 
-DXC validation failure:
-hlsl.hlsl:2:16: error: brackets are not allowed here; to declare an array, place the brackets after the name
-  float2x2[2] v = arr;
-          ~~~  ^
-               [2]
-hlsl.hlsl:2:19: error: use of undeclared identifier 'arr'
-  float2x2[2] v = arr;
-                  ^
-
diff --git a/test/tint/expressions/type_ctor/array/explicit/mat2x2/f32.wgsl.expected.ir.fxc.hlsl b/test/tint/expressions/type_ctor/array/explicit/mat2x2/f32.wgsl.expected.ir.fxc.hlsl
index 6cd6faf..168f6dd 100644
--- a/test/tint/expressions/type_ctor/array/explicit/mat2x2/f32.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/expressions/type_ctor/array/explicit/mat2x2/f32.wgsl.expected.ir.fxc.hlsl
@@ -1,7 +1,8 @@
-SKIP: FAILED
 
+static const float2x2 v_1[2] = {float2x2(float2(1.0f, 2.0f), float2(3.0f, 4.0f)), float2x2(float2(5.0f, 6.0f), float2(7.0f, 8.0f))};
+static float2x2 arr[2] = v_1;
 void f() {
-  float2x2[2] v = arr;
+  float2x2 v[2] = arr;
 }
 
 [numthreads(1, 1, 1)]
diff --git a/test/tint/expressions/type_ctor/array/explicit/u32.wgsl.expected.ir.dxc.hlsl b/test/tint/expressions/type_ctor/array/explicit/u32.wgsl.expected.ir.dxc.hlsl
index 65fd63f..0d61a79 100644
--- a/test/tint/expressions/type_ctor/array/explicit/u32.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/expressions/type_ctor/array/explicit/u32.wgsl.expected.ir.dxc.hlsl
@@ -1,19 +1,11 @@
-SKIP: FAILED
 
+static const uint v_1[2] = {1u, 2u};
+static uint arr[2] = v_1;
 void f() {
-  uint[2] v = arr;
+  uint v[2] = arr;
 }
 
 [numthreads(1, 1, 1)]
 void unused_entry_point() {
 }
 
-DXC validation failure:
-hlsl.hlsl:2:12: error: brackets are not allowed here; to declare an array, place the brackets after the name
-  uint[2] v = arr;
-      ~~~  ^
-           [2]
-hlsl.hlsl:2:15: error: use of undeclared identifier 'arr'
-  uint[2] v = arr;
-              ^
-
diff --git a/test/tint/expressions/type_ctor/array/explicit/u32.wgsl.expected.ir.fxc.hlsl b/test/tint/expressions/type_ctor/array/explicit/u32.wgsl.expected.ir.fxc.hlsl
index e30597b..0d61a79 100644
--- a/test/tint/expressions/type_ctor/array/explicit/u32.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/expressions/type_ctor/array/explicit/u32.wgsl.expected.ir.fxc.hlsl
@@ -1,7 +1,8 @@
-SKIP: FAILED
 
+static const uint v_1[2] = {1u, 2u};
+static uint arr[2] = v_1;
 void f() {
-  uint[2] v = arr;
+  uint v[2] = arr;
 }
 
 [numthreads(1, 1, 1)]
diff --git a/test/tint/expressions/type_ctor/array/explicit/vec2/abstract.wgsl.expected.ir.dxc.hlsl b/test/tint/expressions/type_ctor/array/explicit/vec2/abstract.wgsl.expected.ir.dxc.hlsl
index b7fbff5..c121053 100644
--- a/test/tint/expressions/type_ctor/array/explicit/vec2/abstract.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/expressions/type_ctor/array/explicit/vec2/abstract.wgsl.expected.ir.dxc.hlsl
@@ -1,19 +1,11 @@
-SKIP: FAILED
 
+static const float2 v_1[2] = {(1.0f).xx, (2.0f).xx};
+static float2 arr[2] = v_1;
 void f() {
-  float2[2] v = arr;
+  float2 v[2] = arr;
 }
 
 [numthreads(1, 1, 1)]
 void unused_entry_point() {
 }
 
-DXC validation failure:
-hlsl.hlsl:2:14: error: brackets are not allowed here; to declare an array, place the brackets after the name
-  float2[2] v = arr;
-        ~~~  ^
-             [2]
-hlsl.hlsl:2:17: error: use of undeclared identifier 'arr'
-  float2[2] v = arr;
-                ^
-
diff --git a/test/tint/expressions/type_ctor/array/explicit/vec2/abstract.wgsl.expected.ir.fxc.hlsl b/test/tint/expressions/type_ctor/array/explicit/vec2/abstract.wgsl.expected.ir.fxc.hlsl
index b117a20..c121053 100644
--- a/test/tint/expressions/type_ctor/array/explicit/vec2/abstract.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/expressions/type_ctor/array/explicit/vec2/abstract.wgsl.expected.ir.fxc.hlsl
@@ -1,7 +1,8 @@
-SKIP: FAILED
 
+static const float2 v_1[2] = {(1.0f).xx, (2.0f).xx};
+static float2 arr[2] = v_1;
 void f() {
-  float2[2] v = arr;
+  float2 v[2] = arr;
 }
 
 [numthreads(1, 1, 1)]
diff --git a/test/tint/expressions/type_ctor/array/explicit/vec2/f32.wgsl.expected.ir.dxc.hlsl b/test/tint/expressions/type_ctor/array/explicit/vec2/f32.wgsl.expected.ir.dxc.hlsl
index b7fbff5..c121053 100644
--- a/test/tint/expressions/type_ctor/array/explicit/vec2/f32.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/expressions/type_ctor/array/explicit/vec2/f32.wgsl.expected.ir.dxc.hlsl
@@ -1,19 +1,11 @@
-SKIP: FAILED
 
+static const float2 v_1[2] = {(1.0f).xx, (2.0f).xx};
+static float2 arr[2] = v_1;
 void f() {
-  float2[2] v = arr;
+  float2 v[2] = arr;
 }
 
 [numthreads(1, 1, 1)]
 void unused_entry_point() {
 }
 
-DXC validation failure:
-hlsl.hlsl:2:14: error: brackets are not allowed here; to declare an array, place the brackets after the name
-  float2[2] v = arr;
-        ~~~  ^
-             [2]
-hlsl.hlsl:2:17: error: use of undeclared identifier 'arr'
-  float2[2] v = arr;
-                ^
-
diff --git a/test/tint/expressions/type_ctor/array/explicit/vec2/f32.wgsl.expected.ir.fxc.hlsl b/test/tint/expressions/type_ctor/array/explicit/vec2/f32.wgsl.expected.ir.fxc.hlsl
index b117a20..c121053 100644
--- a/test/tint/expressions/type_ctor/array/explicit/vec2/f32.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/expressions/type_ctor/array/explicit/vec2/f32.wgsl.expected.ir.fxc.hlsl
@@ -1,7 +1,8 @@
-SKIP: FAILED
 
+static const float2 v_1[2] = {(1.0f).xx, (2.0f).xx};
+static float2 arr[2] = v_1;
 void f() {
-  float2[2] v = arr;
+  float2 v[2] = arr;
 }
 
 [numthreads(1, 1, 1)]
diff --git a/test/tint/expressions/type_ctor/array/explicit/vec2/i32.wgsl.expected.ir.dxc.hlsl b/test/tint/expressions/type_ctor/array/explicit/vec2/i32.wgsl.expected.ir.dxc.hlsl
index 83599ac..19f073b 100644
--- a/test/tint/expressions/type_ctor/array/explicit/vec2/i32.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/expressions/type_ctor/array/explicit/vec2/i32.wgsl.expected.ir.dxc.hlsl
@@ -1,19 +1,11 @@
-SKIP: FAILED
 
+static const int2 v_1[2] = {(1).xx, (2).xx};
+static int2 arr[2] = v_1;
 void f() {
-  int2[2] v = arr;
+  int2 v[2] = arr;
 }
 
 [numthreads(1, 1, 1)]
 void unused_entry_point() {
 }
 
-DXC validation failure:
-hlsl.hlsl:2:12: error: brackets are not allowed here; to declare an array, place the brackets after the name
-  int2[2] v = arr;
-      ~~~  ^
-           [2]
-hlsl.hlsl:2:15: error: use of undeclared identifier 'arr'
-  int2[2] v = arr;
-              ^
-
diff --git a/test/tint/expressions/type_ctor/array/explicit/vec2/i32.wgsl.expected.ir.fxc.hlsl b/test/tint/expressions/type_ctor/array/explicit/vec2/i32.wgsl.expected.ir.fxc.hlsl
index 0c345b8..19f073b 100644
--- a/test/tint/expressions/type_ctor/array/explicit/vec2/i32.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/expressions/type_ctor/array/explicit/vec2/i32.wgsl.expected.ir.fxc.hlsl
@@ -1,7 +1,8 @@
-SKIP: FAILED
 
+static const int2 v_1[2] = {(1).xx, (2).xx};
+static int2 arr[2] = v_1;
 void f() {
-  int2[2] v = arr;
+  int2 v[2] = arr;
 }
 
 [numthreads(1, 1, 1)]
diff --git a/test/tint/expressions/type_ctor/array/explicit/vec2/u32.wgsl.expected.ir.dxc.hlsl b/test/tint/expressions/type_ctor/array/explicit/vec2/u32.wgsl.expected.ir.dxc.hlsl
index 9b4f4a2..28bad11 100644
--- a/test/tint/expressions/type_ctor/array/explicit/vec2/u32.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/expressions/type_ctor/array/explicit/vec2/u32.wgsl.expected.ir.dxc.hlsl
@@ -1,19 +1,11 @@
-SKIP: FAILED
 
+static const uint2 v_1[2] = {(1u).xx, (2u).xx};
+static uint2 arr[2] = v_1;
 void f() {
-  uint2[2] v = arr;
+  uint2 v[2] = arr;
 }
 
 [numthreads(1, 1, 1)]
 void unused_entry_point() {
 }
 
-DXC validation failure:
-hlsl.hlsl:2:13: error: brackets are not allowed here; to declare an array, place the brackets after the name
-  uint2[2] v = arr;
-       ~~~  ^
-            [2]
-hlsl.hlsl:2:16: error: use of undeclared identifier 'arr'
-  uint2[2] v = arr;
-               ^
-
diff --git a/test/tint/expressions/type_ctor/array/explicit/vec2/u32.wgsl.expected.ir.fxc.hlsl b/test/tint/expressions/type_ctor/array/explicit/vec2/u32.wgsl.expected.ir.fxc.hlsl
index 06629d7..28bad11 100644
--- a/test/tint/expressions/type_ctor/array/explicit/vec2/u32.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/expressions/type_ctor/array/explicit/vec2/u32.wgsl.expected.ir.fxc.hlsl
@@ -1,7 +1,8 @@
-SKIP: FAILED
 
+static const uint2 v_1[2] = {(1u).xx, (2u).xx};
+static uint2 arr[2] = v_1;
 void f() {
-  uint2[2] v = arr;
+  uint2 v[2] = arr;
 }
 
 [numthreads(1, 1, 1)]
diff --git a/test/tint/expressions/type_ctor/array/inferred/abstract.wgsl.expected.ir.dxc.hlsl b/test/tint/expressions/type_ctor/array/inferred/abstract.wgsl.expected.ir.dxc.hlsl
index 2e8158e..b866e26 100644
--- a/test/tint/expressions/type_ctor/array/inferred/abstract.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/expressions/type_ctor/array/inferred/abstract.wgsl.expected.ir.dxc.hlsl
@@ -1,19 +1,11 @@
-SKIP: FAILED
 
+static const int v_1[2] = {1, 2};
+static int arr[2] = v_1;
 void f() {
-  int[2] v = arr;
+  int v[2] = arr;
 }
 
 [numthreads(1, 1, 1)]
 void unused_entry_point() {
 }
 
-DXC validation failure:
-hlsl.hlsl:2:11: error: brackets are not allowed here; to declare an array, place the brackets after the name
-  int[2] v = arr;
-     ~~~  ^
-          [2]
-hlsl.hlsl:2:14: error: use of undeclared identifier 'arr'
-  int[2] v = arr;
-             ^
-
diff --git a/test/tint/expressions/type_ctor/array/inferred/abstract.wgsl.expected.ir.fxc.hlsl b/test/tint/expressions/type_ctor/array/inferred/abstract.wgsl.expected.ir.fxc.hlsl
index 8b4d57e..b866e26 100644
--- a/test/tint/expressions/type_ctor/array/inferred/abstract.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/expressions/type_ctor/array/inferred/abstract.wgsl.expected.ir.fxc.hlsl
@@ -1,7 +1,8 @@
-SKIP: FAILED
 
+static const int v_1[2] = {1, 2};
+static int arr[2] = v_1;
 void f() {
-  int[2] v = arr;
+  int v[2] = arr;
 }
 
 [numthreads(1, 1, 1)]
diff --git a/test/tint/expressions/type_ctor/array/inferred/array/abstract.wgsl.expected.ir.dxc.hlsl b/test/tint/expressions/type_ctor/array/inferred/array/abstract.wgsl.expected.ir.dxc.hlsl
index 7f004b9..c0d508c 100644
--- a/test/tint/expressions/type_ctor/array/inferred/array/abstract.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/expressions/type_ctor/array/inferred/array/abstract.wgsl.expected.ir.dxc.hlsl
@@ -1,19 +1,11 @@
-SKIP: FAILED
 
+static const int v_1[2][2] = {{1, 2}, {3, 4}};
+static int arr[2][2] = v_1;
 void f() {
-  int[2][2] v = arr;
+  int v[2][2] = arr;
 }
 
 [numthreads(1, 1, 1)]
 void unused_entry_point() {
 }
 
-DXC validation failure:
-hlsl.hlsl:2:14: error: brackets are not allowed here; to declare an array, place the brackets after the name
-  int[2][2] v = arr;
-     ~~~~~~  ^
-             [2][2]
-hlsl.hlsl:2:17: error: use of undeclared identifier 'arr'
-  int[2][2] v = arr;
-                ^
-
diff --git a/test/tint/expressions/type_ctor/array/inferred/array/abstract.wgsl.expected.ir.fxc.hlsl b/test/tint/expressions/type_ctor/array/inferred/array/abstract.wgsl.expected.ir.fxc.hlsl
index c37ec4e..c0d508c 100644
--- a/test/tint/expressions/type_ctor/array/inferred/array/abstract.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/expressions/type_ctor/array/inferred/array/abstract.wgsl.expected.ir.fxc.hlsl
@@ -1,7 +1,8 @@
-SKIP: FAILED
 
+static const int v_1[2][2] = {{1, 2}, {3, 4}};
+static int arr[2][2] = v_1;
 void f() {
-  int[2][2] v = arr;
+  int v[2][2] = arr;
 }
 
 [numthreads(1, 1, 1)]
diff --git a/test/tint/expressions/type_ctor/array/inferred/array/f32.wgsl.expected.ir.dxc.hlsl b/test/tint/expressions/type_ctor/array/inferred/array/f32.wgsl.expected.ir.dxc.hlsl
index 3614d9a..5336731 100644
--- a/test/tint/expressions/type_ctor/array/inferred/array/f32.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/expressions/type_ctor/array/inferred/array/f32.wgsl.expected.ir.dxc.hlsl
@@ -1,19 +1,11 @@
-SKIP: FAILED
 
+static const float v_1[2][2] = {{1.0f, 2.0f}, {3.0f, 4.0f}};
+static float arr[2][2] = v_1;
 void f() {
-  float[2][2] v = arr;
+  float v[2][2] = arr;
 }
 
 [numthreads(1, 1, 1)]
 void unused_entry_point() {
 }
 
-DXC validation failure:
-hlsl.hlsl:2:16: error: brackets are not allowed here; to declare an array, place the brackets after the name
-  float[2][2] v = arr;
-       ~~~~~~  ^
-               [2][2]
-hlsl.hlsl:2:19: error: use of undeclared identifier 'arr'
-  float[2][2] v = arr;
-                  ^
-
diff --git a/test/tint/expressions/type_ctor/array/inferred/array/f32.wgsl.expected.ir.fxc.hlsl b/test/tint/expressions/type_ctor/array/inferred/array/f32.wgsl.expected.ir.fxc.hlsl
index d6ea12f..5336731 100644
--- a/test/tint/expressions/type_ctor/array/inferred/array/f32.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/expressions/type_ctor/array/inferred/array/f32.wgsl.expected.ir.fxc.hlsl
@@ -1,7 +1,8 @@
-SKIP: FAILED
 
+static const float v_1[2][2] = {{1.0f, 2.0f}, {3.0f, 4.0f}};
+static float arr[2][2] = v_1;
 void f() {
-  float[2][2] v = arr;
+  float v[2][2] = arr;
 }
 
 [numthreads(1, 1, 1)]
diff --git a/test/tint/expressions/type_ctor/array/inferred/f32.wgsl.expected.ir.dxc.hlsl b/test/tint/expressions/type_ctor/array/inferred/f32.wgsl.expected.ir.dxc.hlsl
index da6cd0e..f0b22bb 100644
--- a/test/tint/expressions/type_ctor/array/inferred/f32.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/expressions/type_ctor/array/inferred/f32.wgsl.expected.ir.dxc.hlsl
@@ -1,19 +1,11 @@
-SKIP: FAILED
 
+static const float v_1[2] = {1.0f, 2.0f};
+static float arr[2] = v_1;
 void f() {
-  float[2] v = arr;
+  float v[2] = arr;
 }
 
 [numthreads(1, 1, 1)]
 void unused_entry_point() {
 }
 
-DXC validation failure:
-hlsl.hlsl:2:13: error: brackets are not allowed here; to declare an array, place the brackets after the name
-  float[2] v = arr;
-       ~~~  ^
-            [2]
-hlsl.hlsl:2:16: error: use of undeclared identifier 'arr'
-  float[2] v = arr;
-               ^
-
diff --git a/test/tint/expressions/type_ctor/array/inferred/f32.wgsl.expected.ir.fxc.hlsl b/test/tint/expressions/type_ctor/array/inferred/f32.wgsl.expected.ir.fxc.hlsl
index ed747d4..f0b22bb 100644
--- a/test/tint/expressions/type_ctor/array/inferred/f32.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/expressions/type_ctor/array/inferred/f32.wgsl.expected.ir.fxc.hlsl
@@ -1,7 +1,8 @@
-SKIP: FAILED
 
+static const float v_1[2] = {1.0f, 2.0f};
+static float arr[2] = v_1;
 void f() {
-  float[2] v = arr;
+  float v[2] = arr;
 }
 
 [numthreads(1, 1, 1)]
diff --git a/test/tint/expressions/type_ctor/array/inferred/i32.wgsl.expected.ir.dxc.hlsl b/test/tint/expressions/type_ctor/array/inferred/i32.wgsl.expected.ir.dxc.hlsl
index 2e8158e..b866e26 100644
--- a/test/tint/expressions/type_ctor/array/inferred/i32.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/expressions/type_ctor/array/inferred/i32.wgsl.expected.ir.dxc.hlsl
@@ -1,19 +1,11 @@
-SKIP: FAILED
 
+static const int v_1[2] = {1, 2};
+static int arr[2] = v_1;
 void f() {
-  int[2] v = arr;
+  int v[2] = arr;
 }
 
 [numthreads(1, 1, 1)]
 void unused_entry_point() {
 }
 
-DXC validation failure:
-hlsl.hlsl:2:11: error: brackets are not allowed here; to declare an array, place the brackets after the name
-  int[2] v = arr;
-     ~~~  ^
-          [2]
-hlsl.hlsl:2:14: error: use of undeclared identifier 'arr'
-  int[2] v = arr;
-             ^
-
diff --git a/test/tint/expressions/type_ctor/array/inferred/i32.wgsl.expected.ir.fxc.hlsl b/test/tint/expressions/type_ctor/array/inferred/i32.wgsl.expected.ir.fxc.hlsl
index 8b4d57e..b866e26 100644
--- a/test/tint/expressions/type_ctor/array/inferred/i32.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/expressions/type_ctor/array/inferred/i32.wgsl.expected.ir.fxc.hlsl
@@ -1,7 +1,8 @@
-SKIP: FAILED
 
+static const int v_1[2] = {1, 2};
+static int arr[2] = v_1;
 void f() {
-  int[2] v = arr;
+  int v[2] = arr;
 }
 
 [numthreads(1, 1, 1)]
diff --git a/test/tint/expressions/type_ctor/array/inferred/mat2x2/abstract.wgsl.expected.ir.dxc.hlsl b/test/tint/expressions/type_ctor/array/inferred/mat2x2/abstract.wgsl.expected.ir.dxc.hlsl
index d272032..168f6dd 100644
--- a/test/tint/expressions/type_ctor/array/inferred/mat2x2/abstract.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/expressions/type_ctor/array/inferred/mat2x2/abstract.wgsl.expected.ir.dxc.hlsl
@@ -1,19 +1,11 @@
-SKIP: FAILED
 
+static const float2x2 v_1[2] = {float2x2(float2(1.0f, 2.0f), float2(3.0f, 4.0f)), float2x2(float2(5.0f, 6.0f), float2(7.0f, 8.0f))};
+static float2x2 arr[2] = v_1;
 void f() {
-  float2x2[2] v = arr;
+  float2x2 v[2] = arr;
 }
 
 [numthreads(1, 1, 1)]
 void unused_entry_point() {
 }
 
-DXC validation failure:
-hlsl.hlsl:2:16: error: brackets are not allowed here; to declare an array, place the brackets after the name
-  float2x2[2] v = arr;
-          ~~~  ^
-               [2]
-hlsl.hlsl:2:19: error: use of undeclared identifier 'arr'
-  float2x2[2] v = arr;
-                  ^
-
diff --git a/test/tint/expressions/type_ctor/array/inferred/mat2x2/abstract.wgsl.expected.ir.fxc.hlsl b/test/tint/expressions/type_ctor/array/inferred/mat2x2/abstract.wgsl.expected.ir.fxc.hlsl
index 6cd6faf..168f6dd 100644
--- a/test/tint/expressions/type_ctor/array/inferred/mat2x2/abstract.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/expressions/type_ctor/array/inferred/mat2x2/abstract.wgsl.expected.ir.fxc.hlsl
@@ -1,7 +1,8 @@
-SKIP: FAILED
 
+static const float2x2 v_1[2] = {float2x2(float2(1.0f, 2.0f), float2(3.0f, 4.0f)), float2x2(float2(5.0f, 6.0f), float2(7.0f, 8.0f))};
+static float2x2 arr[2] = v_1;
 void f() {
-  float2x2[2] v = arr;
+  float2x2 v[2] = arr;
 }
 
 [numthreads(1, 1, 1)]
diff --git a/test/tint/expressions/type_ctor/array/inferred/mat2x2/f32.wgsl.expected.ir.dxc.hlsl b/test/tint/expressions/type_ctor/array/inferred/mat2x2/f32.wgsl.expected.ir.dxc.hlsl
index d272032..168f6dd 100644
--- a/test/tint/expressions/type_ctor/array/inferred/mat2x2/f32.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/expressions/type_ctor/array/inferred/mat2x2/f32.wgsl.expected.ir.dxc.hlsl
@@ -1,19 +1,11 @@
-SKIP: FAILED
 
+static const float2x2 v_1[2] = {float2x2(float2(1.0f, 2.0f), float2(3.0f, 4.0f)), float2x2(float2(5.0f, 6.0f), float2(7.0f, 8.0f))};
+static float2x2 arr[2] = v_1;
 void f() {
-  float2x2[2] v = arr;
+  float2x2 v[2] = arr;
 }
 
 [numthreads(1, 1, 1)]
 void unused_entry_point() {
 }
 
-DXC validation failure:
-hlsl.hlsl:2:16: error: brackets are not allowed here; to declare an array, place the brackets after the name
-  float2x2[2] v = arr;
-          ~~~  ^
-               [2]
-hlsl.hlsl:2:19: error: use of undeclared identifier 'arr'
-  float2x2[2] v = arr;
-                  ^
-
diff --git a/test/tint/expressions/type_ctor/array/inferred/mat2x2/f32.wgsl.expected.ir.fxc.hlsl b/test/tint/expressions/type_ctor/array/inferred/mat2x2/f32.wgsl.expected.ir.fxc.hlsl
index 6cd6faf..168f6dd 100644
--- a/test/tint/expressions/type_ctor/array/inferred/mat2x2/f32.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/expressions/type_ctor/array/inferred/mat2x2/f32.wgsl.expected.ir.fxc.hlsl
@@ -1,7 +1,8 @@
-SKIP: FAILED
 
+static const float2x2 v_1[2] = {float2x2(float2(1.0f, 2.0f), float2(3.0f, 4.0f)), float2x2(float2(5.0f, 6.0f), float2(7.0f, 8.0f))};
+static float2x2 arr[2] = v_1;
 void f() {
-  float2x2[2] v = arr;
+  float2x2 v[2] = arr;
 }
 
 [numthreads(1, 1, 1)]
diff --git a/test/tint/expressions/type_ctor/array/inferred/u32.wgsl.expected.ir.dxc.hlsl b/test/tint/expressions/type_ctor/array/inferred/u32.wgsl.expected.ir.dxc.hlsl
index 65fd63f..0d61a79 100644
--- a/test/tint/expressions/type_ctor/array/inferred/u32.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/expressions/type_ctor/array/inferred/u32.wgsl.expected.ir.dxc.hlsl
@@ -1,19 +1,11 @@
-SKIP: FAILED
 
+static const uint v_1[2] = {1u, 2u};
+static uint arr[2] = v_1;
 void f() {
-  uint[2] v = arr;
+  uint v[2] = arr;
 }
 
 [numthreads(1, 1, 1)]
 void unused_entry_point() {
 }
 
-DXC validation failure:
-hlsl.hlsl:2:12: error: brackets are not allowed here; to declare an array, place the brackets after the name
-  uint[2] v = arr;
-      ~~~  ^
-           [2]
-hlsl.hlsl:2:15: error: use of undeclared identifier 'arr'
-  uint[2] v = arr;
-              ^
-
diff --git a/test/tint/expressions/type_ctor/array/inferred/u32.wgsl.expected.ir.fxc.hlsl b/test/tint/expressions/type_ctor/array/inferred/u32.wgsl.expected.ir.fxc.hlsl
index e30597b..0d61a79 100644
--- a/test/tint/expressions/type_ctor/array/inferred/u32.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/expressions/type_ctor/array/inferred/u32.wgsl.expected.ir.fxc.hlsl
@@ -1,7 +1,8 @@
-SKIP: FAILED
 
+static const uint v_1[2] = {1u, 2u};
+static uint arr[2] = v_1;
 void f() {
-  uint[2] v = arr;
+  uint v[2] = arr;
 }
 
 [numthreads(1, 1, 1)]
diff --git a/test/tint/expressions/type_ctor/array/inferred/vec2/abstract.wgsl.expected.ir.dxc.hlsl b/test/tint/expressions/type_ctor/array/inferred/vec2/abstract.wgsl.expected.ir.dxc.hlsl
index b7fbff5..c121053 100644
--- a/test/tint/expressions/type_ctor/array/inferred/vec2/abstract.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/expressions/type_ctor/array/inferred/vec2/abstract.wgsl.expected.ir.dxc.hlsl
@@ -1,19 +1,11 @@
-SKIP: FAILED
 
+static const float2 v_1[2] = {(1.0f).xx, (2.0f).xx};
+static float2 arr[2] = v_1;
 void f() {
-  float2[2] v = arr;
+  float2 v[2] = arr;
 }
 
 [numthreads(1, 1, 1)]
 void unused_entry_point() {
 }
 
-DXC validation failure:
-hlsl.hlsl:2:14: error: brackets are not allowed here; to declare an array, place the brackets after the name
-  float2[2] v = arr;
-        ~~~  ^
-             [2]
-hlsl.hlsl:2:17: error: use of undeclared identifier 'arr'
-  float2[2] v = arr;
-                ^
-
diff --git a/test/tint/expressions/type_ctor/array/inferred/vec2/abstract.wgsl.expected.ir.fxc.hlsl b/test/tint/expressions/type_ctor/array/inferred/vec2/abstract.wgsl.expected.ir.fxc.hlsl
index b117a20..c121053 100644
--- a/test/tint/expressions/type_ctor/array/inferred/vec2/abstract.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/expressions/type_ctor/array/inferred/vec2/abstract.wgsl.expected.ir.fxc.hlsl
@@ -1,7 +1,8 @@
-SKIP: FAILED
 
+static const float2 v_1[2] = {(1.0f).xx, (2.0f).xx};
+static float2 arr[2] = v_1;
 void f() {
-  float2[2] v = arr;
+  float2 v[2] = arr;
 }
 
 [numthreads(1, 1, 1)]
diff --git a/test/tint/expressions/type_ctor/array/inferred/vec2/f32.wgsl.expected.ir.dxc.hlsl b/test/tint/expressions/type_ctor/array/inferred/vec2/f32.wgsl.expected.ir.dxc.hlsl
index b7fbff5..c121053 100644
--- a/test/tint/expressions/type_ctor/array/inferred/vec2/f32.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/expressions/type_ctor/array/inferred/vec2/f32.wgsl.expected.ir.dxc.hlsl
@@ -1,19 +1,11 @@
-SKIP: FAILED
 
+static const float2 v_1[2] = {(1.0f).xx, (2.0f).xx};
+static float2 arr[2] = v_1;
 void f() {
-  float2[2] v = arr;
+  float2 v[2] = arr;
 }
 
 [numthreads(1, 1, 1)]
 void unused_entry_point() {
 }
 
-DXC validation failure:
-hlsl.hlsl:2:14: error: brackets are not allowed here; to declare an array, place the brackets after the name
-  float2[2] v = arr;
-        ~~~  ^
-             [2]
-hlsl.hlsl:2:17: error: use of undeclared identifier 'arr'
-  float2[2] v = arr;
-                ^
-
diff --git a/test/tint/expressions/type_ctor/array/inferred/vec2/f32.wgsl.expected.ir.fxc.hlsl b/test/tint/expressions/type_ctor/array/inferred/vec2/f32.wgsl.expected.ir.fxc.hlsl
index b117a20..c121053 100644
--- a/test/tint/expressions/type_ctor/array/inferred/vec2/f32.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/expressions/type_ctor/array/inferred/vec2/f32.wgsl.expected.ir.fxc.hlsl
@@ -1,7 +1,8 @@
-SKIP: FAILED
 
+static const float2 v_1[2] = {(1.0f).xx, (2.0f).xx};
+static float2 arr[2] = v_1;
 void f() {
-  float2[2] v = arr;
+  float2 v[2] = arr;
 }
 
 [numthreads(1, 1, 1)]
diff --git a/test/tint/expressions/type_ctor/array/inferred/vec2/i32.wgsl.expected.ir.dxc.hlsl b/test/tint/expressions/type_ctor/array/inferred/vec2/i32.wgsl.expected.ir.dxc.hlsl
index 83599ac..19f073b 100644
--- a/test/tint/expressions/type_ctor/array/inferred/vec2/i32.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/expressions/type_ctor/array/inferred/vec2/i32.wgsl.expected.ir.dxc.hlsl
@@ -1,19 +1,11 @@
-SKIP: FAILED
 
+static const int2 v_1[2] = {(1).xx, (2).xx};
+static int2 arr[2] = v_1;
 void f() {
-  int2[2] v = arr;
+  int2 v[2] = arr;
 }
 
 [numthreads(1, 1, 1)]
 void unused_entry_point() {
 }
 
-DXC validation failure:
-hlsl.hlsl:2:12: error: brackets are not allowed here; to declare an array, place the brackets after the name
-  int2[2] v = arr;
-      ~~~  ^
-           [2]
-hlsl.hlsl:2:15: error: use of undeclared identifier 'arr'
-  int2[2] v = arr;
-              ^
-
diff --git a/test/tint/expressions/type_ctor/array/inferred/vec2/i32.wgsl.expected.ir.fxc.hlsl b/test/tint/expressions/type_ctor/array/inferred/vec2/i32.wgsl.expected.ir.fxc.hlsl
index 0c345b8..19f073b 100644
--- a/test/tint/expressions/type_ctor/array/inferred/vec2/i32.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/expressions/type_ctor/array/inferred/vec2/i32.wgsl.expected.ir.fxc.hlsl
@@ -1,7 +1,8 @@
-SKIP: FAILED
 
+static const int2 v_1[2] = {(1).xx, (2).xx};
+static int2 arr[2] = v_1;
 void f() {
-  int2[2] v = arr;
+  int2 v[2] = arr;
 }
 
 [numthreads(1, 1, 1)]
diff --git a/test/tint/expressions/type_ctor/array/inferred/vec2/u32.wgsl.expected.ir.dxc.hlsl b/test/tint/expressions/type_ctor/array/inferred/vec2/u32.wgsl.expected.ir.dxc.hlsl
index 9b4f4a2..28bad11 100644
--- a/test/tint/expressions/type_ctor/array/inferred/vec2/u32.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/expressions/type_ctor/array/inferred/vec2/u32.wgsl.expected.ir.dxc.hlsl
@@ -1,19 +1,11 @@
-SKIP: FAILED
 
+static const uint2 v_1[2] = {(1u).xx, (2u).xx};
+static uint2 arr[2] = v_1;
 void f() {
-  uint2[2] v = arr;
+  uint2 v[2] = arr;
 }
 
 [numthreads(1, 1, 1)]
 void unused_entry_point() {
 }
 
-DXC validation failure:
-hlsl.hlsl:2:13: error: brackets are not allowed here; to declare an array, place the brackets after the name
-  uint2[2] v = arr;
-       ~~~  ^
-            [2]
-hlsl.hlsl:2:16: error: use of undeclared identifier 'arr'
-  uint2[2] v = arr;
-               ^
-
diff --git a/test/tint/expressions/type_ctor/array/inferred/vec2/u32.wgsl.expected.ir.fxc.hlsl b/test/tint/expressions/type_ctor/array/inferred/vec2/u32.wgsl.expected.ir.fxc.hlsl
index 06629d7..28bad11 100644
--- a/test/tint/expressions/type_ctor/array/inferred/vec2/u32.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/expressions/type_ctor/array/inferred/vec2/u32.wgsl.expected.ir.fxc.hlsl
@@ -1,7 +1,8 @@
-SKIP: FAILED
 
+static const uint2 v_1[2] = {(1u).xx, (2u).xx};
+static uint2 arr[2] = v_1;
 void f() {
-  uint2[2] v = arr;
+  uint2 v[2] = arr;
 }
 
 [numthreads(1, 1, 1)]
diff --git a/test/tint/expressions/type_ctor/mat2x2/explicit/identity/f16.wgsl.expected.ir.dxc.hlsl b/test/tint/expressions/type_ctor/mat2x2/explicit/identity/f16.wgsl.expected.ir.dxc.hlsl
index c6e1d96..61b430c 100644
--- a/test/tint/expressions/type_ctor/mat2x2/explicit/identity/f16.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/expressions/type_ctor/mat2x2/explicit/identity/f16.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,13 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Construct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+static matrix<float16_t, 2, 2> m = matrix<float16_t, 2, 2>(vector<float16_t, 2>(float16_t(0.0h), float16_t(1.0h)), vector<float16_t, 2>(float16_t(2.0h), float16_t(3.0h)));
+RWByteAddressBuffer tint_symbol : register(u0);
+void v(uint offset, matrix<float16_t, 2, 2> obj) {
+  tint_symbol.Store<vector<float16_t, 2> >((offset + 0u), obj[0u]);
+  tint_symbol.Store<vector<float16_t, 2> >((offset + 4u), obj[1u]);
+}
+
+[numthreads(1, 1, 1)]
+void f() {
+  v(0u, matrix<float16_t, 2, 2>(m));
+}
+
diff --git a/test/tint/expressions/type_ctor/mat2x2/explicit/identity/f16.wgsl.expected.ir.fxc.hlsl b/test/tint/expressions/type_ctor/mat2x2/explicit/identity/f16.wgsl.expected.ir.fxc.hlsl
index c6e1d96..26ed56b 100644
--- a/test/tint/expressions/type_ctor/mat2x2/explicit/identity/f16.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/expressions/type_ctor/mat2x2/explicit/identity/f16.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,18 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Construct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+
+static matrix<float16_t, 2, 2> m = matrix<float16_t, 2, 2>(vector<float16_t, 2>(float16_t(0.0h), float16_t(1.0h)), vector<float16_t, 2>(float16_t(2.0h), float16_t(3.0h)));
+RWByteAddressBuffer tint_symbol : register(u0);
+void v(uint offset, matrix<float16_t, 2, 2> obj) {
+  tint_symbol.Store<vector<float16_t, 2> >((offset + 0u), obj[0u]);
+  tint_symbol.Store<vector<float16_t, 2> >((offset + 4u), obj[1u]);
+}
+
+[numthreads(1, 1, 1)]
+void f() {
+  v(0u, matrix<float16_t, 2, 2>(m));
+}
+
+FXC validation failure:
+c:\src\dawn\Shader@0x0000020218995D60(2,15-23): error X3000: syntax error: unexpected token 'float16_t'
+
diff --git a/test/tint/expressions/type_ctor/mat2x2/explicit/identity/f32.wgsl.expected.ir.dxc.hlsl b/test/tint/expressions/type_ctor/mat2x2/explicit/identity/f32.wgsl.expected.ir.dxc.hlsl
index c6e1d96..780c74e 100644
--- a/test/tint/expressions/type_ctor/mat2x2/explicit/identity/f32.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/expressions/type_ctor/mat2x2/explicit/identity/f32.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,13 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Construct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+static float2x2 m = float2x2(float2(0.0f, 1.0f), float2(2.0f, 3.0f));
+RWByteAddressBuffer tint_symbol : register(u0);
+void v(uint offset, float2x2 obj) {
+  tint_symbol.Store2((offset + 0u), asuint(obj[0u]));
+  tint_symbol.Store2((offset + 8u), asuint(obj[1u]));
+}
+
+[numthreads(1, 1, 1)]
+void f() {
+  v(0u, float2x2(m));
+}
+
diff --git a/test/tint/expressions/type_ctor/mat2x2/explicit/identity/f32.wgsl.expected.ir.fxc.hlsl b/test/tint/expressions/type_ctor/mat2x2/explicit/identity/f32.wgsl.expected.ir.fxc.hlsl
index c6e1d96..780c74e 100644
--- a/test/tint/expressions/type_ctor/mat2x2/explicit/identity/f32.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/expressions/type_ctor/mat2x2/explicit/identity/f32.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,13 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Construct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+static float2x2 m = float2x2(float2(0.0f, 1.0f), float2(2.0f, 3.0f));
+RWByteAddressBuffer tint_symbol : register(u0);
+void v(uint offset, float2x2 obj) {
+  tint_symbol.Store2((offset + 0u), asuint(obj[0u]));
+  tint_symbol.Store2((offset + 8u), asuint(obj[1u]));
+}
+
+[numthreads(1, 1, 1)]
+void f() {
+  v(0u, float2x2(m));
+}
+
diff --git a/test/tint/expressions/type_ctor/mat2x2/explicit/scalars/f16.wgsl.expected.ir.dxc.hlsl b/test/tint/expressions/type_ctor/mat2x2/explicit/scalars/f16.wgsl.expected.ir.dxc.hlsl
index 1616cea..d8db7e8 100644
--- a/test/tint/expressions/type_ctor/mat2x2/explicit/scalars/f16.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/expressions/type_ctor/mat2x2/explicit/scalars/f16.wgsl.expected.ir.dxc.hlsl
@@ -1,15 +1,13 @@
-SKIP: FAILED
+
+static matrix<float16_t, 2, 2> m = matrix<float16_t, 2, 2>(vector<float16_t, 2>(float16_t(0.0h), float16_t(1.0h)), vector<float16_t, 2>(float16_t(2.0h), float16_t(3.0h)));
+RWByteAddressBuffer tint_symbol : register(u0);
+void v(uint offset, matrix<float16_t, 2, 2> obj) {
+  tint_symbol.Store<vector<float16_t, 2> >((offset + 0u), obj[0u]);
+  tint_symbol.Store<vector<float16_t, 2> >((offset + 4u), obj[1u]);
+}
 
 [numthreads(1, 1, 1)]
 void f() {
-  tint_symbol = m;
+  v(0u, m);
 }
 
-DXC validation failure:
-hlsl.hlsl:3:3: error: use of undeclared identifier 'tint_symbol'
-  tint_symbol = m;
-  ^
-hlsl.hlsl:3:17: error: use of undeclared identifier 'm'
-  tint_symbol = m;
-                ^
-
diff --git a/test/tint/expressions/type_ctor/mat2x2/explicit/scalars/f16.wgsl.expected.ir.fxc.hlsl b/test/tint/expressions/type_ctor/mat2x2/explicit/scalars/f16.wgsl.expected.ir.fxc.hlsl
index 08b893f..935ccce 100644
--- a/test/tint/expressions/type_ctor/mat2x2/explicit/scalars/f16.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/expressions/type_ctor/mat2x2/explicit/scalars/f16.wgsl.expected.ir.fxc.hlsl
@@ -1,7 +1,18 @@
 SKIP: FAILED
 
+
+static matrix<float16_t, 2, 2> m = matrix<float16_t, 2, 2>(vector<float16_t, 2>(float16_t(0.0h), float16_t(1.0h)), vector<float16_t, 2>(float16_t(2.0h), float16_t(3.0h)));
+RWByteAddressBuffer tint_symbol : register(u0);
+void v(uint offset, matrix<float16_t, 2, 2> obj) {
+  tint_symbol.Store<vector<float16_t, 2> >((offset + 0u), obj[0u]);
+  tint_symbol.Store<vector<float16_t, 2> >((offset + 4u), obj[1u]);
+}
+
 [numthreads(1, 1, 1)]
 void f() {
-  tint_symbol = m;
+  v(0u, m);
 }
 
+FXC validation failure:
+c:\src\dawn\Shader@0x000001A15DE43920(2,15-23): error X3000: syntax error: unexpected token 'float16_t'
+
diff --git a/test/tint/expressions/type_ctor/mat2x2/explicit/scalars/f32.wgsl.expected.ir.dxc.hlsl b/test/tint/expressions/type_ctor/mat2x2/explicit/scalars/f32.wgsl.expected.ir.dxc.hlsl
index 1616cea..9d5277d 100644
--- a/test/tint/expressions/type_ctor/mat2x2/explicit/scalars/f32.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/expressions/type_ctor/mat2x2/explicit/scalars/f32.wgsl.expected.ir.dxc.hlsl
@@ -1,15 +1,13 @@
-SKIP: FAILED
+
+static float2x2 m = float2x2(float2(0.0f, 1.0f), float2(2.0f, 3.0f));
+RWByteAddressBuffer tint_symbol : register(u0);
+void v(uint offset, float2x2 obj) {
+  tint_symbol.Store2((offset + 0u), asuint(obj[0u]));
+  tint_symbol.Store2((offset + 8u), asuint(obj[1u]));
+}
 
 [numthreads(1, 1, 1)]
 void f() {
-  tint_symbol = m;
+  v(0u, m);
 }
 
-DXC validation failure:
-hlsl.hlsl:3:3: error: use of undeclared identifier 'tint_symbol'
-  tint_symbol = m;
-  ^
-hlsl.hlsl:3:17: error: use of undeclared identifier 'm'
-  tint_symbol = m;
-                ^
-
diff --git a/test/tint/expressions/type_ctor/mat2x2/explicit/scalars/f32.wgsl.expected.ir.fxc.hlsl b/test/tint/expressions/type_ctor/mat2x2/explicit/scalars/f32.wgsl.expected.ir.fxc.hlsl
index 08b893f..9d5277d 100644
--- a/test/tint/expressions/type_ctor/mat2x2/explicit/scalars/f32.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/expressions/type_ctor/mat2x2/explicit/scalars/f32.wgsl.expected.ir.fxc.hlsl
@@ -1,7 +1,13 @@
-SKIP: FAILED
+
+static float2x2 m = float2x2(float2(0.0f, 1.0f), float2(2.0f, 3.0f));
+RWByteAddressBuffer tint_symbol : register(u0);
+void v(uint offset, float2x2 obj) {
+  tint_symbol.Store2((offset + 0u), asuint(obj[0u]));
+  tint_symbol.Store2((offset + 8u), asuint(obj[1u]));
+}
 
 [numthreads(1, 1, 1)]
 void f() {
-  tint_symbol = m;
+  v(0u, m);
 }
 
diff --git a/test/tint/expressions/type_ctor/mat2x2/explicit/vectors/f16.wgsl.expected.ir.dxc.hlsl b/test/tint/expressions/type_ctor/mat2x2/explicit/vectors/f16.wgsl.expected.ir.dxc.hlsl
index 1616cea..d8db7e8 100644
--- a/test/tint/expressions/type_ctor/mat2x2/explicit/vectors/f16.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/expressions/type_ctor/mat2x2/explicit/vectors/f16.wgsl.expected.ir.dxc.hlsl
@@ -1,15 +1,13 @@
-SKIP: FAILED
+
+static matrix<float16_t, 2, 2> m = matrix<float16_t, 2, 2>(vector<float16_t, 2>(float16_t(0.0h), float16_t(1.0h)), vector<float16_t, 2>(float16_t(2.0h), float16_t(3.0h)));
+RWByteAddressBuffer tint_symbol : register(u0);
+void v(uint offset, matrix<float16_t, 2, 2> obj) {
+  tint_symbol.Store<vector<float16_t, 2> >((offset + 0u), obj[0u]);
+  tint_symbol.Store<vector<float16_t, 2> >((offset + 4u), obj[1u]);
+}
 
 [numthreads(1, 1, 1)]
 void f() {
-  tint_symbol = m;
+  v(0u, m);
 }
 
-DXC validation failure:
-hlsl.hlsl:3:3: error: use of undeclared identifier 'tint_symbol'
-  tint_symbol = m;
-  ^
-hlsl.hlsl:3:17: error: use of undeclared identifier 'm'
-  tint_symbol = m;
-                ^
-
diff --git a/test/tint/expressions/type_ctor/mat2x2/explicit/vectors/f16.wgsl.expected.ir.fxc.hlsl b/test/tint/expressions/type_ctor/mat2x2/explicit/vectors/f16.wgsl.expected.ir.fxc.hlsl
index 08b893f..eda6642 100644
--- a/test/tint/expressions/type_ctor/mat2x2/explicit/vectors/f16.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/expressions/type_ctor/mat2x2/explicit/vectors/f16.wgsl.expected.ir.fxc.hlsl
@@ -1,7 +1,18 @@
 SKIP: FAILED
 
+
+static matrix<float16_t, 2, 2> m = matrix<float16_t, 2, 2>(vector<float16_t, 2>(float16_t(0.0h), float16_t(1.0h)), vector<float16_t, 2>(float16_t(2.0h), float16_t(3.0h)));
+RWByteAddressBuffer tint_symbol : register(u0);
+void v(uint offset, matrix<float16_t, 2, 2> obj) {
+  tint_symbol.Store<vector<float16_t, 2> >((offset + 0u), obj[0u]);
+  tint_symbol.Store<vector<float16_t, 2> >((offset + 4u), obj[1u]);
+}
+
 [numthreads(1, 1, 1)]
 void f() {
-  tint_symbol = m;
+  v(0u, m);
 }
 
+FXC validation failure:
+c:\src\dawn\Shader@0x000001C365A33E40(2,15-23): error X3000: syntax error: unexpected token 'float16_t'
+
diff --git a/test/tint/expressions/type_ctor/mat2x2/explicit/vectors/f32.wgsl.expected.ir.dxc.hlsl b/test/tint/expressions/type_ctor/mat2x2/explicit/vectors/f32.wgsl.expected.ir.dxc.hlsl
index 1616cea..9d5277d 100644
--- a/test/tint/expressions/type_ctor/mat2x2/explicit/vectors/f32.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/expressions/type_ctor/mat2x2/explicit/vectors/f32.wgsl.expected.ir.dxc.hlsl
@@ -1,15 +1,13 @@
-SKIP: FAILED
+
+static float2x2 m = float2x2(float2(0.0f, 1.0f), float2(2.0f, 3.0f));
+RWByteAddressBuffer tint_symbol : register(u0);
+void v(uint offset, float2x2 obj) {
+  tint_symbol.Store2((offset + 0u), asuint(obj[0u]));
+  tint_symbol.Store2((offset + 8u), asuint(obj[1u]));
+}
 
 [numthreads(1, 1, 1)]
 void f() {
-  tint_symbol = m;
+  v(0u, m);
 }
 
-DXC validation failure:
-hlsl.hlsl:3:3: error: use of undeclared identifier 'tint_symbol'
-  tint_symbol = m;
-  ^
-hlsl.hlsl:3:17: error: use of undeclared identifier 'm'
-  tint_symbol = m;
-                ^
-
diff --git a/test/tint/expressions/type_ctor/mat2x2/explicit/vectors/f32.wgsl.expected.ir.fxc.hlsl b/test/tint/expressions/type_ctor/mat2x2/explicit/vectors/f32.wgsl.expected.ir.fxc.hlsl
index 08b893f..9d5277d 100644
--- a/test/tint/expressions/type_ctor/mat2x2/explicit/vectors/f32.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/expressions/type_ctor/mat2x2/explicit/vectors/f32.wgsl.expected.ir.fxc.hlsl
@@ -1,7 +1,13 @@
-SKIP: FAILED
+
+static float2x2 m = float2x2(float2(0.0f, 1.0f), float2(2.0f, 3.0f));
+RWByteAddressBuffer tint_symbol : register(u0);
+void v(uint offset, float2x2 obj) {
+  tint_symbol.Store2((offset + 0u), asuint(obj[0u]));
+  tint_symbol.Store2((offset + 8u), asuint(obj[1u]));
+}
 
 [numthreads(1, 1, 1)]
 void f() {
-  tint_symbol = m;
+  v(0u, m);
 }
 
diff --git a/test/tint/expressions/type_ctor/mat2x2/inferred/identity/f16.wgsl.expected.ir.dxc.hlsl b/test/tint/expressions/type_ctor/mat2x2/inferred/identity/f16.wgsl.expected.ir.dxc.hlsl
index c6e1d96..61b430c 100644
--- a/test/tint/expressions/type_ctor/mat2x2/inferred/identity/f16.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/expressions/type_ctor/mat2x2/inferred/identity/f16.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,13 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Construct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+static matrix<float16_t, 2, 2> m = matrix<float16_t, 2, 2>(vector<float16_t, 2>(float16_t(0.0h), float16_t(1.0h)), vector<float16_t, 2>(float16_t(2.0h), float16_t(3.0h)));
+RWByteAddressBuffer tint_symbol : register(u0);
+void v(uint offset, matrix<float16_t, 2, 2> obj) {
+  tint_symbol.Store<vector<float16_t, 2> >((offset + 0u), obj[0u]);
+  tint_symbol.Store<vector<float16_t, 2> >((offset + 4u), obj[1u]);
+}
+
+[numthreads(1, 1, 1)]
+void f() {
+  v(0u, matrix<float16_t, 2, 2>(m));
+}
+
diff --git a/test/tint/expressions/type_ctor/mat2x2/inferred/identity/f16.wgsl.expected.ir.fxc.hlsl b/test/tint/expressions/type_ctor/mat2x2/inferred/identity/f16.wgsl.expected.ir.fxc.hlsl
index c6e1d96..85726fc 100644
--- a/test/tint/expressions/type_ctor/mat2x2/inferred/identity/f16.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/expressions/type_ctor/mat2x2/inferred/identity/f16.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,18 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Construct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+
+static matrix<float16_t, 2, 2> m = matrix<float16_t, 2, 2>(vector<float16_t, 2>(float16_t(0.0h), float16_t(1.0h)), vector<float16_t, 2>(float16_t(2.0h), float16_t(3.0h)));
+RWByteAddressBuffer tint_symbol : register(u0);
+void v(uint offset, matrix<float16_t, 2, 2> obj) {
+  tint_symbol.Store<vector<float16_t, 2> >((offset + 0u), obj[0u]);
+  tint_symbol.Store<vector<float16_t, 2> >((offset + 4u), obj[1u]);
+}
+
+[numthreads(1, 1, 1)]
+void f() {
+  v(0u, matrix<float16_t, 2, 2>(m));
+}
+
+FXC validation failure:
+c:\src\dawn\Shader@0x000002C2919345B0(2,15-23): error X3000: syntax error: unexpected token 'float16_t'
+
diff --git a/test/tint/expressions/type_ctor/mat2x2/inferred/identity/f32.wgsl.expected.ir.dxc.hlsl b/test/tint/expressions/type_ctor/mat2x2/inferred/identity/f32.wgsl.expected.ir.dxc.hlsl
index c6e1d96..780c74e 100644
--- a/test/tint/expressions/type_ctor/mat2x2/inferred/identity/f32.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/expressions/type_ctor/mat2x2/inferred/identity/f32.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,13 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Construct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+static float2x2 m = float2x2(float2(0.0f, 1.0f), float2(2.0f, 3.0f));
+RWByteAddressBuffer tint_symbol : register(u0);
+void v(uint offset, float2x2 obj) {
+  tint_symbol.Store2((offset + 0u), asuint(obj[0u]));
+  tint_symbol.Store2((offset + 8u), asuint(obj[1u]));
+}
+
+[numthreads(1, 1, 1)]
+void f() {
+  v(0u, float2x2(m));
+}
+
diff --git a/test/tint/expressions/type_ctor/mat2x2/inferred/identity/f32.wgsl.expected.ir.fxc.hlsl b/test/tint/expressions/type_ctor/mat2x2/inferred/identity/f32.wgsl.expected.ir.fxc.hlsl
index c6e1d96..780c74e 100644
--- a/test/tint/expressions/type_ctor/mat2x2/inferred/identity/f32.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/expressions/type_ctor/mat2x2/inferred/identity/f32.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,13 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Construct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+static float2x2 m = float2x2(float2(0.0f, 1.0f), float2(2.0f, 3.0f));
+RWByteAddressBuffer tint_symbol : register(u0);
+void v(uint offset, float2x2 obj) {
+  tint_symbol.Store2((offset + 0u), asuint(obj[0u]));
+  tint_symbol.Store2((offset + 8u), asuint(obj[1u]));
+}
+
+[numthreads(1, 1, 1)]
+void f() {
+  v(0u, float2x2(m));
+}
+
diff --git a/test/tint/expressions/type_ctor/mat2x2/inferred/scalars/abstract-float.wgsl.expected.ir.dxc.hlsl b/test/tint/expressions/type_ctor/mat2x2/inferred/scalars/abstract-float.wgsl.expected.ir.dxc.hlsl
index 2765d63..082fe1c 100644
--- a/test/tint/expressions/type_ctor/mat2x2/inferred/scalars/abstract-float.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/expressions/type_ctor/mat2x2/inferred/scalars/abstract-float.wgsl.expected.ir.dxc.hlsl
@@ -1,12 +1,12 @@
-SKIP: FAILED
+
+RWByteAddressBuffer tint_symbol : register(u0);
+void v(uint offset, float2x2 obj) {
+  tint_symbol.Store2((offset + 0u), asuint(obj[0u]));
+  tint_symbol.Store2((offset + 8u), asuint(obj[1u]));
+}
 
 [numthreads(1, 1, 1)]
 void f() {
-  tint_symbol = float2x2(float2(0.0f, 1.0f), float2(2.0f, 3.0f));
+  v(0u, float2x2(float2(0.0f, 1.0f), float2(2.0f, 3.0f)));
 }
 
-DXC validation failure:
-hlsl.hlsl:3:3: error: use of undeclared identifier 'tint_symbol'
-  tint_symbol = float2x2(float2(0.0f, 1.0f), float2(2.0f, 3.0f));
-  ^
-
diff --git a/test/tint/expressions/type_ctor/mat2x2/inferred/scalars/abstract-float.wgsl.expected.ir.fxc.hlsl b/test/tint/expressions/type_ctor/mat2x2/inferred/scalars/abstract-float.wgsl.expected.ir.fxc.hlsl
index 58465f3..082fe1c 100644
--- a/test/tint/expressions/type_ctor/mat2x2/inferred/scalars/abstract-float.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/expressions/type_ctor/mat2x2/inferred/scalars/abstract-float.wgsl.expected.ir.fxc.hlsl
@@ -1,7 +1,12 @@
-SKIP: FAILED
+
+RWByteAddressBuffer tint_symbol : register(u0);
+void v(uint offset, float2x2 obj) {
+  tint_symbol.Store2((offset + 0u), asuint(obj[0u]));
+  tint_symbol.Store2((offset + 8u), asuint(obj[1u]));
+}
 
 [numthreads(1, 1, 1)]
 void f() {
-  tint_symbol = float2x2(float2(0.0f, 1.0f), float2(2.0f, 3.0f));
+  v(0u, float2x2(float2(0.0f, 1.0f), float2(2.0f, 3.0f)));
 }
 
diff --git a/test/tint/expressions/type_ctor/mat2x2/inferred/scalars/f16.wgsl.expected.ir.dxc.hlsl b/test/tint/expressions/type_ctor/mat2x2/inferred/scalars/f16.wgsl.expected.ir.dxc.hlsl
index 1616cea..d8db7e8 100644
--- a/test/tint/expressions/type_ctor/mat2x2/inferred/scalars/f16.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/expressions/type_ctor/mat2x2/inferred/scalars/f16.wgsl.expected.ir.dxc.hlsl
@@ -1,15 +1,13 @@
-SKIP: FAILED
+
+static matrix<float16_t, 2, 2> m = matrix<float16_t, 2, 2>(vector<float16_t, 2>(float16_t(0.0h), float16_t(1.0h)), vector<float16_t, 2>(float16_t(2.0h), float16_t(3.0h)));
+RWByteAddressBuffer tint_symbol : register(u0);
+void v(uint offset, matrix<float16_t, 2, 2> obj) {
+  tint_symbol.Store<vector<float16_t, 2> >((offset + 0u), obj[0u]);
+  tint_symbol.Store<vector<float16_t, 2> >((offset + 4u), obj[1u]);
+}
 
 [numthreads(1, 1, 1)]
 void f() {
-  tint_symbol = m;
+  v(0u, m);
 }
 
-DXC validation failure:
-hlsl.hlsl:3:3: error: use of undeclared identifier 'tint_symbol'
-  tint_symbol = m;
-  ^
-hlsl.hlsl:3:17: error: use of undeclared identifier 'm'
-  tint_symbol = m;
-                ^
-
diff --git a/test/tint/expressions/type_ctor/mat2x2/inferred/scalars/f16.wgsl.expected.ir.fxc.hlsl b/test/tint/expressions/type_ctor/mat2x2/inferred/scalars/f16.wgsl.expected.ir.fxc.hlsl
index 08b893f..f211bad 100644
--- a/test/tint/expressions/type_ctor/mat2x2/inferred/scalars/f16.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/expressions/type_ctor/mat2x2/inferred/scalars/f16.wgsl.expected.ir.fxc.hlsl
@@ -1,7 +1,18 @@
 SKIP: FAILED
 
+
+static matrix<float16_t, 2, 2> m = matrix<float16_t, 2, 2>(vector<float16_t, 2>(float16_t(0.0h), float16_t(1.0h)), vector<float16_t, 2>(float16_t(2.0h), float16_t(3.0h)));
+RWByteAddressBuffer tint_symbol : register(u0);
+void v(uint offset, matrix<float16_t, 2, 2> obj) {
+  tint_symbol.Store<vector<float16_t, 2> >((offset + 0u), obj[0u]);
+  tint_symbol.Store<vector<float16_t, 2> >((offset + 4u), obj[1u]);
+}
+
 [numthreads(1, 1, 1)]
 void f() {
-  tint_symbol = m;
+  v(0u, m);
 }
 
+FXC validation failure:
+c:\src\dawn\Shader@0x000001838B97F4A0(2,15-23): error X3000: syntax error: unexpected token 'float16_t'
+
diff --git a/test/tint/expressions/type_ctor/mat2x2/inferred/scalars/f32.wgsl.expected.ir.dxc.hlsl b/test/tint/expressions/type_ctor/mat2x2/inferred/scalars/f32.wgsl.expected.ir.dxc.hlsl
index 1616cea..9d5277d 100644
--- a/test/tint/expressions/type_ctor/mat2x2/inferred/scalars/f32.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/expressions/type_ctor/mat2x2/inferred/scalars/f32.wgsl.expected.ir.dxc.hlsl
@@ -1,15 +1,13 @@
-SKIP: FAILED
+
+static float2x2 m = float2x2(float2(0.0f, 1.0f), float2(2.0f, 3.0f));
+RWByteAddressBuffer tint_symbol : register(u0);
+void v(uint offset, float2x2 obj) {
+  tint_symbol.Store2((offset + 0u), asuint(obj[0u]));
+  tint_symbol.Store2((offset + 8u), asuint(obj[1u]));
+}
 
 [numthreads(1, 1, 1)]
 void f() {
-  tint_symbol = m;
+  v(0u, m);
 }
 
-DXC validation failure:
-hlsl.hlsl:3:3: error: use of undeclared identifier 'tint_symbol'
-  tint_symbol = m;
-  ^
-hlsl.hlsl:3:17: error: use of undeclared identifier 'm'
-  tint_symbol = m;
-                ^
-
diff --git a/test/tint/expressions/type_ctor/mat2x2/inferred/scalars/f32.wgsl.expected.ir.fxc.hlsl b/test/tint/expressions/type_ctor/mat2x2/inferred/scalars/f32.wgsl.expected.ir.fxc.hlsl
index 08b893f..9d5277d 100644
--- a/test/tint/expressions/type_ctor/mat2x2/inferred/scalars/f32.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/expressions/type_ctor/mat2x2/inferred/scalars/f32.wgsl.expected.ir.fxc.hlsl
@@ -1,7 +1,13 @@
-SKIP: FAILED
+
+static float2x2 m = float2x2(float2(0.0f, 1.0f), float2(2.0f, 3.0f));
+RWByteAddressBuffer tint_symbol : register(u0);
+void v(uint offset, float2x2 obj) {
+  tint_symbol.Store2((offset + 0u), asuint(obj[0u]));
+  tint_symbol.Store2((offset + 8u), asuint(obj[1u]));
+}
 
 [numthreads(1, 1, 1)]
 void f() {
-  tint_symbol = m;
+  v(0u, m);
 }
 
diff --git a/test/tint/expressions/type_ctor/mat2x2/inferred/vectors/abstract-float.wgsl.expected.ir.dxc.hlsl b/test/tint/expressions/type_ctor/mat2x2/inferred/vectors/abstract-float.wgsl.expected.ir.dxc.hlsl
index 2765d63..082fe1c 100644
--- a/test/tint/expressions/type_ctor/mat2x2/inferred/vectors/abstract-float.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/expressions/type_ctor/mat2x2/inferred/vectors/abstract-float.wgsl.expected.ir.dxc.hlsl
@@ -1,12 +1,12 @@
-SKIP: FAILED
+
+RWByteAddressBuffer tint_symbol : register(u0);
+void v(uint offset, float2x2 obj) {
+  tint_symbol.Store2((offset + 0u), asuint(obj[0u]));
+  tint_symbol.Store2((offset + 8u), asuint(obj[1u]));
+}
 
 [numthreads(1, 1, 1)]
 void f() {
-  tint_symbol = float2x2(float2(0.0f, 1.0f), float2(2.0f, 3.0f));
+  v(0u, float2x2(float2(0.0f, 1.0f), float2(2.0f, 3.0f)));
 }
 
-DXC validation failure:
-hlsl.hlsl:3:3: error: use of undeclared identifier 'tint_symbol'
-  tint_symbol = float2x2(float2(0.0f, 1.0f), float2(2.0f, 3.0f));
-  ^
-
diff --git a/test/tint/expressions/type_ctor/mat2x2/inferred/vectors/abstract-float.wgsl.expected.ir.fxc.hlsl b/test/tint/expressions/type_ctor/mat2x2/inferred/vectors/abstract-float.wgsl.expected.ir.fxc.hlsl
index 58465f3..082fe1c 100644
--- a/test/tint/expressions/type_ctor/mat2x2/inferred/vectors/abstract-float.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/expressions/type_ctor/mat2x2/inferred/vectors/abstract-float.wgsl.expected.ir.fxc.hlsl
@@ -1,7 +1,12 @@
-SKIP: FAILED
+
+RWByteAddressBuffer tint_symbol : register(u0);
+void v(uint offset, float2x2 obj) {
+  tint_symbol.Store2((offset + 0u), asuint(obj[0u]));
+  tint_symbol.Store2((offset + 8u), asuint(obj[1u]));
+}
 
 [numthreads(1, 1, 1)]
 void f() {
-  tint_symbol = float2x2(float2(0.0f, 1.0f), float2(2.0f, 3.0f));
+  v(0u, float2x2(float2(0.0f, 1.0f), float2(2.0f, 3.0f)));
 }
 
diff --git a/test/tint/expressions/type_ctor/mat2x2/inferred/vectors/f16.wgsl.expected.ir.dxc.hlsl b/test/tint/expressions/type_ctor/mat2x2/inferred/vectors/f16.wgsl.expected.ir.dxc.hlsl
index 1616cea..d8db7e8 100644
--- a/test/tint/expressions/type_ctor/mat2x2/inferred/vectors/f16.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/expressions/type_ctor/mat2x2/inferred/vectors/f16.wgsl.expected.ir.dxc.hlsl
@@ -1,15 +1,13 @@
-SKIP: FAILED
+
+static matrix<float16_t, 2, 2> m = matrix<float16_t, 2, 2>(vector<float16_t, 2>(float16_t(0.0h), float16_t(1.0h)), vector<float16_t, 2>(float16_t(2.0h), float16_t(3.0h)));
+RWByteAddressBuffer tint_symbol : register(u0);
+void v(uint offset, matrix<float16_t, 2, 2> obj) {
+  tint_symbol.Store<vector<float16_t, 2> >((offset + 0u), obj[0u]);
+  tint_symbol.Store<vector<float16_t, 2> >((offset + 4u), obj[1u]);
+}
 
 [numthreads(1, 1, 1)]
 void f() {
-  tint_symbol = m;
+  v(0u, m);
 }
 
-DXC validation failure:
-hlsl.hlsl:3:3: error: use of undeclared identifier 'tint_symbol'
-  tint_symbol = m;
-  ^
-hlsl.hlsl:3:17: error: use of undeclared identifier 'm'
-  tint_symbol = m;
-                ^
-
diff --git a/test/tint/expressions/type_ctor/mat2x2/inferred/vectors/f16.wgsl.expected.ir.fxc.hlsl b/test/tint/expressions/type_ctor/mat2x2/inferred/vectors/f16.wgsl.expected.ir.fxc.hlsl
index 08b893f..0947b01 100644
--- a/test/tint/expressions/type_ctor/mat2x2/inferred/vectors/f16.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/expressions/type_ctor/mat2x2/inferred/vectors/f16.wgsl.expected.ir.fxc.hlsl
@@ -1,7 +1,18 @@
 SKIP: FAILED
 
+
+static matrix<float16_t, 2, 2> m = matrix<float16_t, 2, 2>(vector<float16_t, 2>(float16_t(0.0h), float16_t(1.0h)), vector<float16_t, 2>(float16_t(2.0h), float16_t(3.0h)));
+RWByteAddressBuffer tint_symbol : register(u0);
+void v(uint offset, matrix<float16_t, 2, 2> obj) {
+  tint_symbol.Store<vector<float16_t, 2> >((offset + 0u), obj[0u]);
+  tint_symbol.Store<vector<float16_t, 2> >((offset + 4u), obj[1u]);
+}
+
 [numthreads(1, 1, 1)]
 void f() {
-  tint_symbol = m;
+  v(0u, m);
 }
 
+FXC validation failure:
+c:\src\dawn\Shader@0x000001A8AD4348D0(2,15-23): error X3000: syntax error: unexpected token 'float16_t'
+
diff --git a/test/tint/expressions/type_ctor/mat2x2/inferred/vectors/f32.wgsl.expected.ir.dxc.hlsl b/test/tint/expressions/type_ctor/mat2x2/inferred/vectors/f32.wgsl.expected.ir.dxc.hlsl
index 1616cea..9d5277d 100644
--- a/test/tint/expressions/type_ctor/mat2x2/inferred/vectors/f32.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/expressions/type_ctor/mat2x2/inferred/vectors/f32.wgsl.expected.ir.dxc.hlsl
@@ -1,15 +1,13 @@
-SKIP: FAILED
+
+static float2x2 m = float2x2(float2(0.0f, 1.0f), float2(2.0f, 3.0f));
+RWByteAddressBuffer tint_symbol : register(u0);
+void v(uint offset, float2x2 obj) {
+  tint_symbol.Store2((offset + 0u), asuint(obj[0u]));
+  tint_symbol.Store2((offset + 8u), asuint(obj[1u]));
+}
 
 [numthreads(1, 1, 1)]
 void f() {
-  tint_symbol = m;
+  v(0u, m);
 }
 
-DXC validation failure:
-hlsl.hlsl:3:3: error: use of undeclared identifier 'tint_symbol'
-  tint_symbol = m;
-  ^
-hlsl.hlsl:3:17: error: use of undeclared identifier 'm'
-  tint_symbol = m;
-                ^
-
diff --git a/test/tint/expressions/type_ctor/mat2x2/inferred/vectors/f32.wgsl.expected.ir.fxc.hlsl b/test/tint/expressions/type_ctor/mat2x2/inferred/vectors/f32.wgsl.expected.ir.fxc.hlsl
index 08b893f..9d5277d 100644
--- a/test/tint/expressions/type_ctor/mat2x2/inferred/vectors/f32.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/expressions/type_ctor/mat2x2/inferred/vectors/f32.wgsl.expected.ir.fxc.hlsl
@@ -1,7 +1,13 @@
-SKIP: FAILED
+
+static float2x2 m = float2x2(float2(0.0f, 1.0f), float2(2.0f, 3.0f));
+RWByteAddressBuffer tint_symbol : register(u0);
+void v(uint offset, float2x2 obj) {
+  tint_symbol.Store2((offset + 0u), asuint(obj[0u]));
+  tint_symbol.Store2((offset + 8u), asuint(obj[1u]));
+}
 
 [numthreads(1, 1, 1)]
 void f() {
-  tint_symbol = m;
+  v(0u, m);
 }
 
diff --git a/test/tint/expressions/type_ctor/mat2x2/load/f16.wgsl.expected.ir.dxc.hlsl b/test/tint/expressions/type_ctor/mat2x2/load/f16.wgsl.expected.ir.dxc.hlsl
index c6e1d96..0b2c276 100644
--- a/test/tint/expressions/type_ctor/mat2x2/load/f16.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/expressions/type_ctor/mat2x2/load/f16.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,13 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Construct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWByteAddressBuffer tint_symbol : register(u0);
+void v(uint offset, matrix<float16_t, 2, 2> obj) {
+  tint_symbol.Store<vector<float16_t, 2> >((offset + 0u), obj[0u]);
+  tint_symbol.Store<vector<float16_t, 2> >((offset + 4u), obj[1u]);
+}
+
+[numthreads(1, 1, 1)]
+void f() {
+  matrix<float16_t, 2, 2> m = matrix<float16_t, 2, 2>((float16_t(0.0h)).xx, (float16_t(0.0h)).xx);
+  v(0u, matrix<float16_t, 2, 2>(m));
+}
+
diff --git a/test/tint/expressions/type_ctor/mat2x2/load/f16.wgsl.expected.ir.fxc.hlsl b/test/tint/expressions/type_ctor/mat2x2/load/f16.wgsl.expected.ir.fxc.hlsl
index c6e1d96..11dfe97 100644
--- a/test/tint/expressions/type_ctor/mat2x2/load/f16.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/expressions/type_ctor/mat2x2/load/f16.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,19 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Construct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+
+RWByteAddressBuffer tint_symbol : register(u0);
+void v(uint offset, matrix<float16_t, 2, 2> obj) {
+  tint_symbol.Store<vector<float16_t, 2> >((offset + 0u), obj[0u]);
+  tint_symbol.Store<vector<float16_t, 2> >((offset + 4u), obj[1u]);
+}
+
+[numthreads(1, 1, 1)]
+void f() {
+  matrix<float16_t, 2, 2> m = matrix<float16_t, 2, 2>((float16_t(0.0h)).xx, (float16_t(0.0h)).xx);
+  v(0u, matrix<float16_t, 2, 2>(m));
+}
+
+FXC validation failure:
+c:\src\dawn\Shader@0x000002BA7DADD070(3,28-36): error X3000: syntax error: unexpected token 'float16_t'
+c:\src\dawn\Shader@0x000002BA7DADD070(4,3-19): error X3018: invalid subscript 'Store'
+
diff --git a/test/tint/expressions/type_ctor/mat2x2/load/f32.wgsl.expected.ir.dxc.hlsl b/test/tint/expressions/type_ctor/mat2x2/load/f32.wgsl.expected.ir.dxc.hlsl
index c6e1d96..32797ce 100644
--- a/test/tint/expressions/type_ctor/mat2x2/load/f32.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/expressions/type_ctor/mat2x2/load/f32.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,13 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Construct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWByteAddressBuffer tint_symbol : register(u0);
+void v(uint offset, float2x2 obj) {
+  tint_symbol.Store2((offset + 0u), asuint(obj[0u]));
+  tint_symbol.Store2((offset + 8u), asuint(obj[1u]));
+}
+
+[numthreads(1, 1, 1)]
+void f() {
+  float2x2 m = float2x2((0.0f).xx, (0.0f).xx);
+  v(0u, float2x2(m));
+}
+
diff --git a/test/tint/expressions/type_ctor/mat2x2/load/f32.wgsl.expected.ir.fxc.hlsl b/test/tint/expressions/type_ctor/mat2x2/load/f32.wgsl.expected.ir.fxc.hlsl
index c6e1d96..32797ce 100644
--- a/test/tint/expressions/type_ctor/mat2x2/load/f32.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/expressions/type_ctor/mat2x2/load/f32.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,13 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Construct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWByteAddressBuffer tint_symbol : register(u0);
+void v(uint offset, float2x2 obj) {
+  tint_symbol.Store2((offset + 0u), asuint(obj[0u]));
+  tint_symbol.Store2((offset + 8u), asuint(obj[1u]));
+}
+
+[numthreads(1, 1, 1)]
+void f() {
+  float2x2 m = float2x2((0.0f).xx, (0.0f).xx);
+  v(0u, float2x2(m));
+}
+
diff --git a/test/tint/expressions/type_ctor/mat2x2/zero/f16.wgsl.expected.ir.dxc.hlsl b/test/tint/expressions/type_ctor/mat2x2/zero/f16.wgsl.expected.ir.dxc.hlsl
index 1616cea..70472d1 100644
--- a/test/tint/expressions/type_ctor/mat2x2/zero/f16.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/expressions/type_ctor/mat2x2/zero/f16.wgsl.expected.ir.dxc.hlsl
@@ -1,15 +1,13 @@
-SKIP: FAILED
+
+static matrix<float16_t, 2, 2> m = matrix<float16_t, 2, 2>((float16_t(0.0h)).xx, (float16_t(0.0h)).xx);
+RWByteAddressBuffer tint_symbol : register(u0);
+void v(uint offset, matrix<float16_t, 2, 2> obj) {
+  tint_symbol.Store<vector<float16_t, 2> >((offset + 0u), obj[0u]);
+  tint_symbol.Store<vector<float16_t, 2> >((offset + 4u), obj[1u]);
+}
 
 [numthreads(1, 1, 1)]
 void f() {
-  tint_symbol = m;
+  v(0u, m);
 }
 
-DXC validation failure:
-hlsl.hlsl:3:3: error: use of undeclared identifier 'tint_symbol'
-  tint_symbol = m;
-  ^
-hlsl.hlsl:3:17: error: use of undeclared identifier 'm'
-  tint_symbol = m;
-                ^
-
diff --git a/test/tint/expressions/type_ctor/mat2x2/zero/f16.wgsl.expected.ir.fxc.hlsl b/test/tint/expressions/type_ctor/mat2x2/zero/f16.wgsl.expected.ir.fxc.hlsl
index 08b893f..2b626be 100644
--- a/test/tint/expressions/type_ctor/mat2x2/zero/f16.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/expressions/type_ctor/mat2x2/zero/f16.wgsl.expected.ir.fxc.hlsl
@@ -1,7 +1,18 @@
 SKIP: FAILED
 
+
+static matrix<float16_t, 2, 2> m = matrix<float16_t, 2, 2>((float16_t(0.0h)).xx, (float16_t(0.0h)).xx);
+RWByteAddressBuffer tint_symbol : register(u0);
+void v(uint offset, matrix<float16_t, 2, 2> obj) {
+  tint_symbol.Store<vector<float16_t, 2> >((offset + 0u), obj[0u]);
+  tint_symbol.Store<vector<float16_t, 2> >((offset + 4u), obj[1u]);
+}
+
 [numthreads(1, 1, 1)]
 void f() {
-  tint_symbol = m;
+  v(0u, m);
 }
 
+FXC validation failure:
+c:\src\dawn\Shader@0x0000015C20B0C400(2,15-23): error X3000: syntax error: unexpected token 'float16_t'
+
diff --git a/test/tint/expressions/type_ctor/mat2x2/zero/f32.wgsl.expected.ir.dxc.hlsl b/test/tint/expressions/type_ctor/mat2x2/zero/f32.wgsl.expected.ir.dxc.hlsl
index 1616cea..059538e 100644
--- a/test/tint/expressions/type_ctor/mat2x2/zero/f32.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/expressions/type_ctor/mat2x2/zero/f32.wgsl.expected.ir.dxc.hlsl
@@ -1,15 +1,13 @@
-SKIP: FAILED
+
+static float2x2 m = float2x2((0.0f).xx, (0.0f).xx);
+RWByteAddressBuffer tint_symbol : register(u0);
+void v(uint offset, float2x2 obj) {
+  tint_symbol.Store2((offset + 0u), asuint(obj[0u]));
+  tint_symbol.Store2((offset + 8u), asuint(obj[1u]));
+}
 
 [numthreads(1, 1, 1)]
 void f() {
-  tint_symbol = m;
+  v(0u, m);
 }
 
-DXC validation failure:
-hlsl.hlsl:3:3: error: use of undeclared identifier 'tint_symbol'
-  tint_symbol = m;
-  ^
-hlsl.hlsl:3:17: error: use of undeclared identifier 'm'
-  tint_symbol = m;
-                ^
-
diff --git a/test/tint/expressions/type_ctor/mat2x2/zero/f32.wgsl.expected.ir.fxc.hlsl b/test/tint/expressions/type_ctor/mat2x2/zero/f32.wgsl.expected.ir.fxc.hlsl
index 08b893f..059538e 100644
--- a/test/tint/expressions/type_ctor/mat2x2/zero/f32.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/expressions/type_ctor/mat2x2/zero/f32.wgsl.expected.ir.fxc.hlsl
@@ -1,7 +1,13 @@
-SKIP: FAILED
+
+static float2x2 m = float2x2((0.0f).xx, (0.0f).xx);
+RWByteAddressBuffer tint_symbol : register(u0);
+void v(uint offset, float2x2 obj) {
+  tint_symbol.Store2((offset + 0u), asuint(obj[0u]));
+  tint_symbol.Store2((offset + 8u), asuint(obj[1u]));
+}
 
 [numthreads(1, 1, 1)]
 void f() {
-  tint_symbol = m;
+  v(0u, m);
 }
 
diff --git a/test/tint/expressions/type_ctor/mat2x3/explicit/identity/f16.wgsl.expected.ir.dxc.hlsl b/test/tint/expressions/type_ctor/mat2x3/explicit/identity/f16.wgsl.expected.ir.dxc.hlsl
index c6e1d96..6a72fe7 100644
--- a/test/tint/expressions/type_ctor/mat2x3/explicit/identity/f16.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/expressions/type_ctor/mat2x3/explicit/identity/f16.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,13 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Construct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+static matrix<float16_t, 2, 3> m = matrix<float16_t, 2, 3>(vector<float16_t, 3>(float16_t(0.0h), float16_t(1.0h), float16_t(2.0h)), vector<float16_t, 3>(float16_t(3.0h), float16_t(4.0h), float16_t(5.0h)));
+RWByteAddressBuffer tint_symbol : register(u0);
+void v(uint offset, matrix<float16_t, 2, 3> obj) {
+  tint_symbol.Store<vector<float16_t, 3> >((offset + 0u), obj[0u]);
+  tint_symbol.Store<vector<float16_t, 3> >((offset + 8u), obj[1u]);
+}
+
+[numthreads(1, 1, 1)]
+void f() {
+  v(0u, matrix<float16_t, 2, 3>(m));
+}
+
diff --git a/test/tint/expressions/type_ctor/mat2x3/explicit/identity/f16.wgsl.expected.ir.fxc.hlsl b/test/tint/expressions/type_ctor/mat2x3/explicit/identity/f16.wgsl.expected.ir.fxc.hlsl
index c6e1d96..485a218 100644
--- a/test/tint/expressions/type_ctor/mat2x3/explicit/identity/f16.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/expressions/type_ctor/mat2x3/explicit/identity/f16.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,18 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Construct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+
+static matrix<float16_t, 2, 3> m = matrix<float16_t, 2, 3>(vector<float16_t, 3>(float16_t(0.0h), float16_t(1.0h), float16_t(2.0h)), vector<float16_t, 3>(float16_t(3.0h), float16_t(4.0h), float16_t(5.0h)));
+RWByteAddressBuffer tint_symbol : register(u0);
+void v(uint offset, matrix<float16_t, 2, 3> obj) {
+  tint_symbol.Store<vector<float16_t, 3> >((offset + 0u), obj[0u]);
+  tint_symbol.Store<vector<float16_t, 3> >((offset + 8u), obj[1u]);
+}
+
+[numthreads(1, 1, 1)]
+void f() {
+  v(0u, matrix<float16_t, 2, 3>(m));
+}
+
+FXC validation failure:
+c:\src\dawn\Shader@0x00000186AF4D67A0(2,15-23): error X3000: syntax error: unexpected token 'float16_t'
+
diff --git a/test/tint/expressions/type_ctor/mat2x3/explicit/identity/f32.wgsl.expected.ir.dxc.hlsl b/test/tint/expressions/type_ctor/mat2x3/explicit/identity/f32.wgsl.expected.ir.dxc.hlsl
index c6e1d96..6daba68 100644
--- a/test/tint/expressions/type_ctor/mat2x3/explicit/identity/f32.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/expressions/type_ctor/mat2x3/explicit/identity/f32.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,13 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Construct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+static float2x3 m = float2x3(float3(0.0f, 1.0f, 2.0f), float3(3.0f, 4.0f, 5.0f));
+RWByteAddressBuffer tint_symbol : register(u0);
+void v(uint offset, float2x3 obj) {
+  tint_symbol.Store3((offset + 0u), asuint(obj[0u]));
+  tint_symbol.Store3((offset + 16u), asuint(obj[1u]));
+}
+
+[numthreads(1, 1, 1)]
+void f() {
+  v(0u, float2x3(m));
+}
+
diff --git a/test/tint/expressions/type_ctor/mat2x3/explicit/identity/f32.wgsl.expected.ir.fxc.hlsl b/test/tint/expressions/type_ctor/mat2x3/explicit/identity/f32.wgsl.expected.ir.fxc.hlsl
index c6e1d96..6daba68 100644
--- a/test/tint/expressions/type_ctor/mat2x3/explicit/identity/f32.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/expressions/type_ctor/mat2x3/explicit/identity/f32.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,13 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Construct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+static float2x3 m = float2x3(float3(0.0f, 1.0f, 2.0f), float3(3.0f, 4.0f, 5.0f));
+RWByteAddressBuffer tint_symbol : register(u0);
+void v(uint offset, float2x3 obj) {
+  tint_symbol.Store3((offset + 0u), asuint(obj[0u]));
+  tint_symbol.Store3((offset + 16u), asuint(obj[1u]));
+}
+
+[numthreads(1, 1, 1)]
+void f() {
+  v(0u, float2x3(m));
+}
+
diff --git a/test/tint/expressions/type_ctor/mat2x3/explicit/scalars/f16.wgsl.expected.ir.dxc.hlsl b/test/tint/expressions/type_ctor/mat2x3/explicit/scalars/f16.wgsl.expected.ir.dxc.hlsl
index 1616cea..07526d3 100644
--- a/test/tint/expressions/type_ctor/mat2x3/explicit/scalars/f16.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/expressions/type_ctor/mat2x3/explicit/scalars/f16.wgsl.expected.ir.dxc.hlsl
@@ -1,15 +1,13 @@
-SKIP: FAILED
+
+static matrix<float16_t, 2, 3> m = matrix<float16_t, 2, 3>(vector<float16_t, 3>(float16_t(0.0h), float16_t(1.0h), float16_t(2.0h)), vector<float16_t, 3>(float16_t(3.0h), float16_t(4.0h), float16_t(5.0h)));
+RWByteAddressBuffer tint_symbol : register(u0);
+void v(uint offset, matrix<float16_t, 2, 3> obj) {
+  tint_symbol.Store<vector<float16_t, 3> >((offset + 0u), obj[0u]);
+  tint_symbol.Store<vector<float16_t, 3> >((offset + 8u), obj[1u]);
+}
 
 [numthreads(1, 1, 1)]
 void f() {
-  tint_symbol = m;
+  v(0u, m);
 }
 
-DXC validation failure:
-hlsl.hlsl:3:3: error: use of undeclared identifier 'tint_symbol'
-  tint_symbol = m;
-  ^
-hlsl.hlsl:3:17: error: use of undeclared identifier 'm'
-  tint_symbol = m;
-                ^
-
diff --git a/test/tint/expressions/type_ctor/mat2x3/explicit/scalars/f16.wgsl.expected.ir.fxc.hlsl b/test/tint/expressions/type_ctor/mat2x3/explicit/scalars/f16.wgsl.expected.ir.fxc.hlsl
index 08b893f..9c3680a 100644
--- a/test/tint/expressions/type_ctor/mat2x3/explicit/scalars/f16.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/expressions/type_ctor/mat2x3/explicit/scalars/f16.wgsl.expected.ir.fxc.hlsl
@@ -1,7 +1,18 @@
 SKIP: FAILED
 
+
+static matrix<float16_t, 2, 3> m = matrix<float16_t, 2, 3>(vector<float16_t, 3>(float16_t(0.0h), float16_t(1.0h), float16_t(2.0h)), vector<float16_t, 3>(float16_t(3.0h), float16_t(4.0h), float16_t(5.0h)));
+RWByteAddressBuffer tint_symbol : register(u0);
+void v(uint offset, matrix<float16_t, 2, 3> obj) {
+  tint_symbol.Store<vector<float16_t, 3> >((offset + 0u), obj[0u]);
+  tint_symbol.Store<vector<float16_t, 3> >((offset + 8u), obj[1u]);
+}
+
 [numthreads(1, 1, 1)]
 void f() {
-  tint_symbol = m;
+  v(0u, m);
 }
 
+FXC validation failure:
+c:\src\dawn\Shader@0x0000019F268E58E0(2,15-23): error X3000: syntax error: unexpected token 'float16_t'
+
diff --git a/test/tint/expressions/type_ctor/mat2x3/explicit/scalars/f32.wgsl.expected.ir.dxc.hlsl b/test/tint/expressions/type_ctor/mat2x3/explicit/scalars/f32.wgsl.expected.ir.dxc.hlsl
index 1616cea..788c2ca 100644
--- a/test/tint/expressions/type_ctor/mat2x3/explicit/scalars/f32.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/expressions/type_ctor/mat2x3/explicit/scalars/f32.wgsl.expected.ir.dxc.hlsl
@@ -1,15 +1,13 @@
-SKIP: FAILED
+
+static float2x3 m = float2x3(float3(0.0f, 1.0f, 2.0f), float3(3.0f, 4.0f, 5.0f));
+RWByteAddressBuffer tint_symbol : register(u0);
+void v(uint offset, float2x3 obj) {
+  tint_symbol.Store3((offset + 0u), asuint(obj[0u]));
+  tint_symbol.Store3((offset + 16u), asuint(obj[1u]));
+}
 
 [numthreads(1, 1, 1)]
 void f() {
-  tint_symbol = m;
+  v(0u, m);
 }
 
-DXC validation failure:
-hlsl.hlsl:3:3: error: use of undeclared identifier 'tint_symbol'
-  tint_symbol = m;
-  ^
-hlsl.hlsl:3:17: error: use of undeclared identifier 'm'
-  tint_symbol = m;
-                ^
-
diff --git a/test/tint/expressions/type_ctor/mat2x3/explicit/scalars/f32.wgsl.expected.ir.fxc.hlsl b/test/tint/expressions/type_ctor/mat2x3/explicit/scalars/f32.wgsl.expected.ir.fxc.hlsl
index 08b893f..788c2ca 100644
--- a/test/tint/expressions/type_ctor/mat2x3/explicit/scalars/f32.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/expressions/type_ctor/mat2x3/explicit/scalars/f32.wgsl.expected.ir.fxc.hlsl
@@ -1,7 +1,13 @@
-SKIP: FAILED
+
+static float2x3 m = float2x3(float3(0.0f, 1.0f, 2.0f), float3(3.0f, 4.0f, 5.0f));
+RWByteAddressBuffer tint_symbol : register(u0);
+void v(uint offset, float2x3 obj) {
+  tint_symbol.Store3((offset + 0u), asuint(obj[0u]));
+  tint_symbol.Store3((offset + 16u), asuint(obj[1u]));
+}
 
 [numthreads(1, 1, 1)]
 void f() {
-  tint_symbol = m;
+  v(0u, m);
 }
 
diff --git a/test/tint/expressions/type_ctor/mat2x3/explicit/vectors/f16.wgsl.expected.ir.dxc.hlsl b/test/tint/expressions/type_ctor/mat2x3/explicit/vectors/f16.wgsl.expected.ir.dxc.hlsl
index 1616cea..07526d3 100644
--- a/test/tint/expressions/type_ctor/mat2x3/explicit/vectors/f16.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/expressions/type_ctor/mat2x3/explicit/vectors/f16.wgsl.expected.ir.dxc.hlsl
@@ -1,15 +1,13 @@
-SKIP: FAILED
+
+static matrix<float16_t, 2, 3> m = matrix<float16_t, 2, 3>(vector<float16_t, 3>(float16_t(0.0h), float16_t(1.0h), float16_t(2.0h)), vector<float16_t, 3>(float16_t(3.0h), float16_t(4.0h), float16_t(5.0h)));
+RWByteAddressBuffer tint_symbol : register(u0);
+void v(uint offset, matrix<float16_t, 2, 3> obj) {
+  tint_symbol.Store<vector<float16_t, 3> >((offset + 0u), obj[0u]);
+  tint_symbol.Store<vector<float16_t, 3> >((offset + 8u), obj[1u]);
+}
 
 [numthreads(1, 1, 1)]
 void f() {
-  tint_symbol = m;
+  v(0u, m);
 }
 
-DXC validation failure:
-hlsl.hlsl:3:3: error: use of undeclared identifier 'tint_symbol'
-  tint_symbol = m;
-  ^
-hlsl.hlsl:3:17: error: use of undeclared identifier 'm'
-  tint_symbol = m;
-                ^
-
diff --git a/test/tint/expressions/type_ctor/mat2x3/explicit/vectors/f16.wgsl.expected.ir.fxc.hlsl b/test/tint/expressions/type_ctor/mat2x3/explicit/vectors/f16.wgsl.expected.ir.fxc.hlsl
index 08b893f..e7841f0 100644
--- a/test/tint/expressions/type_ctor/mat2x3/explicit/vectors/f16.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/expressions/type_ctor/mat2x3/explicit/vectors/f16.wgsl.expected.ir.fxc.hlsl
@@ -1,7 +1,18 @@
 SKIP: FAILED
 
+
+static matrix<float16_t, 2, 3> m = matrix<float16_t, 2, 3>(vector<float16_t, 3>(float16_t(0.0h), float16_t(1.0h), float16_t(2.0h)), vector<float16_t, 3>(float16_t(3.0h), float16_t(4.0h), float16_t(5.0h)));
+RWByteAddressBuffer tint_symbol : register(u0);
+void v(uint offset, matrix<float16_t, 2, 3> obj) {
+  tint_symbol.Store<vector<float16_t, 3> >((offset + 0u), obj[0u]);
+  tint_symbol.Store<vector<float16_t, 3> >((offset + 8u), obj[1u]);
+}
+
 [numthreads(1, 1, 1)]
 void f() {
-  tint_symbol = m;
+  v(0u, m);
 }
 
+FXC validation failure:
+c:\src\dawn\Shader@0x000001D8225A3E80(2,15-23): error X3000: syntax error: unexpected token 'float16_t'
+
diff --git a/test/tint/expressions/type_ctor/mat2x3/explicit/vectors/f32.wgsl.expected.ir.dxc.hlsl b/test/tint/expressions/type_ctor/mat2x3/explicit/vectors/f32.wgsl.expected.ir.dxc.hlsl
index 1616cea..788c2ca 100644
--- a/test/tint/expressions/type_ctor/mat2x3/explicit/vectors/f32.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/expressions/type_ctor/mat2x3/explicit/vectors/f32.wgsl.expected.ir.dxc.hlsl
@@ -1,15 +1,13 @@
-SKIP: FAILED
+
+static float2x3 m = float2x3(float3(0.0f, 1.0f, 2.0f), float3(3.0f, 4.0f, 5.0f));
+RWByteAddressBuffer tint_symbol : register(u0);
+void v(uint offset, float2x3 obj) {
+  tint_symbol.Store3((offset + 0u), asuint(obj[0u]));
+  tint_symbol.Store3((offset + 16u), asuint(obj[1u]));
+}
 
 [numthreads(1, 1, 1)]
 void f() {
-  tint_symbol = m;
+  v(0u, m);
 }
 
-DXC validation failure:
-hlsl.hlsl:3:3: error: use of undeclared identifier 'tint_symbol'
-  tint_symbol = m;
-  ^
-hlsl.hlsl:3:17: error: use of undeclared identifier 'm'
-  tint_symbol = m;
-                ^
-
diff --git a/test/tint/expressions/type_ctor/mat2x3/explicit/vectors/f32.wgsl.expected.ir.fxc.hlsl b/test/tint/expressions/type_ctor/mat2x3/explicit/vectors/f32.wgsl.expected.ir.fxc.hlsl
index 08b893f..788c2ca 100644
--- a/test/tint/expressions/type_ctor/mat2x3/explicit/vectors/f32.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/expressions/type_ctor/mat2x3/explicit/vectors/f32.wgsl.expected.ir.fxc.hlsl
@@ -1,7 +1,13 @@
-SKIP: FAILED
+
+static float2x3 m = float2x3(float3(0.0f, 1.0f, 2.0f), float3(3.0f, 4.0f, 5.0f));
+RWByteAddressBuffer tint_symbol : register(u0);
+void v(uint offset, float2x3 obj) {
+  tint_symbol.Store3((offset + 0u), asuint(obj[0u]));
+  tint_symbol.Store3((offset + 16u), asuint(obj[1u]));
+}
 
 [numthreads(1, 1, 1)]
 void f() {
-  tint_symbol = m;
+  v(0u, m);
 }
 
diff --git a/test/tint/expressions/type_ctor/mat2x3/inferred/identity/f16.wgsl.expected.ir.dxc.hlsl b/test/tint/expressions/type_ctor/mat2x3/inferred/identity/f16.wgsl.expected.ir.dxc.hlsl
index c6e1d96..6a72fe7 100644
--- a/test/tint/expressions/type_ctor/mat2x3/inferred/identity/f16.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/expressions/type_ctor/mat2x3/inferred/identity/f16.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,13 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Construct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+static matrix<float16_t, 2, 3> m = matrix<float16_t, 2, 3>(vector<float16_t, 3>(float16_t(0.0h), float16_t(1.0h), float16_t(2.0h)), vector<float16_t, 3>(float16_t(3.0h), float16_t(4.0h), float16_t(5.0h)));
+RWByteAddressBuffer tint_symbol : register(u0);
+void v(uint offset, matrix<float16_t, 2, 3> obj) {
+  tint_symbol.Store<vector<float16_t, 3> >((offset + 0u), obj[0u]);
+  tint_symbol.Store<vector<float16_t, 3> >((offset + 8u), obj[1u]);
+}
+
+[numthreads(1, 1, 1)]
+void f() {
+  v(0u, matrix<float16_t, 2, 3>(m));
+}
+
diff --git a/test/tint/expressions/type_ctor/mat2x3/inferred/identity/f16.wgsl.expected.ir.fxc.hlsl b/test/tint/expressions/type_ctor/mat2x3/inferred/identity/f16.wgsl.expected.ir.fxc.hlsl
index c6e1d96..2083ed8 100644
--- a/test/tint/expressions/type_ctor/mat2x3/inferred/identity/f16.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/expressions/type_ctor/mat2x3/inferred/identity/f16.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,18 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Construct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+
+static matrix<float16_t, 2, 3> m = matrix<float16_t, 2, 3>(vector<float16_t, 3>(float16_t(0.0h), float16_t(1.0h), float16_t(2.0h)), vector<float16_t, 3>(float16_t(3.0h), float16_t(4.0h), float16_t(5.0h)));
+RWByteAddressBuffer tint_symbol : register(u0);
+void v(uint offset, matrix<float16_t, 2, 3> obj) {
+  tint_symbol.Store<vector<float16_t, 3> >((offset + 0u), obj[0u]);
+  tint_symbol.Store<vector<float16_t, 3> >((offset + 8u), obj[1u]);
+}
+
+[numthreads(1, 1, 1)]
+void f() {
+  v(0u, matrix<float16_t, 2, 3>(m));
+}
+
+FXC validation failure:
+c:\src\dawn\Shader@0x0000024ADE761600(2,15-23): error X3000: syntax error: unexpected token 'float16_t'
+
diff --git a/test/tint/expressions/type_ctor/mat2x3/inferred/identity/f32.wgsl.expected.ir.dxc.hlsl b/test/tint/expressions/type_ctor/mat2x3/inferred/identity/f32.wgsl.expected.ir.dxc.hlsl
index c6e1d96..6daba68 100644
--- a/test/tint/expressions/type_ctor/mat2x3/inferred/identity/f32.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/expressions/type_ctor/mat2x3/inferred/identity/f32.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,13 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Construct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+static float2x3 m = float2x3(float3(0.0f, 1.0f, 2.0f), float3(3.0f, 4.0f, 5.0f));
+RWByteAddressBuffer tint_symbol : register(u0);
+void v(uint offset, float2x3 obj) {
+  tint_symbol.Store3((offset + 0u), asuint(obj[0u]));
+  tint_symbol.Store3((offset + 16u), asuint(obj[1u]));
+}
+
+[numthreads(1, 1, 1)]
+void f() {
+  v(0u, float2x3(m));
+}
+
diff --git a/test/tint/expressions/type_ctor/mat2x3/inferred/identity/f32.wgsl.expected.ir.fxc.hlsl b/test/tint/expressions/type_ctor/mat2x3/inferred/identity/f32.wgsl.expected.ir.fxc.hlsl
index c6e1d96..6daba68 100644
--- a/test/tint/expressions/type_ctor/mat2x3/inferred/identity/f32.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/expressions/type_ctor/mat2x3/inferred/identity/f32.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,13 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Construct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+static float2x3 m = float2x3(float3(0.0f, 1.0f, 2.0f), float3(3.0f, 4.0f, 5.0f));
+RWByteAddressBuffer tint_symbol : register(u0);
+void v(uint offset, float2x3 obj) {
+  tint_symbol.Store3((offset + 0u), asuint(obj[0u]));
+  tint_symbol.Store3((offset + 16u), asuint(obj[1u]));
+}
+
+[numthreads(1, 1, 1)]
+void f() {
+  v(0u, float2x3(m));
+}
+
diff --git a/test/tint/expressions/type_ctor/mat2x3/inferred/scalars/abstract-float.wgsl.expected.ir.dxc.hlsl b/test/tint/expressions/type_ctor/mat2x3/inferred/scalars/abstract-float.wgsl.expected.ir.dxc.hlsl
index f955cd9..295fc0e 100644
--- a/test/tint/expressions/type_ctor/mat2x3/inferred/scalars/abstract-float.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/expressions/type_ctor/mat2x3/inferred/scalars/abstract-float.wgsl.expected.ir.dxc.hlsl
@@ -1,12 +1,12 @@
-SKIP: FAILED
+
+RWByteAddressBuffer tint_symbol : register(u0);
+void v(uint offset, float2x3 obj) {
+  tint_symbol.Store3((offset + 0u), asuint(obj[0u]));
+  tint_symbol.Store3((offset + 16u), asuint(obj[1u]));
+}
 
 [numthreads(1, 1, 1)]
 void f() {
-  tint_symbol = float2x3(float3(0.0f, 1.0f, 2.0f), float3(3.0f, 4.0f, 5.0f));
+  v(0u, float2x3(float3(0.0f, 1.0f, 2.0f), float3(3.0f, 4.0f, 5.0f)));
 }
 
-DXC validation failure:
-hlsl.hlsl:3:3: error: use of undeclared identifier 'tint_symbol'
-  tint_symbol = float2x3(float3(0.0f, 1.0f, 2.0f), float3(3.0f, 4.0f, 5.0f));
-  ^
-
diff --git a/test/tint/expressions/type_ctor/mat2x3/inferred/scalars/abstract-float.wgsl.expected.ir.fxc.hlsl b/test/tint/expressions/type_ctor/mat2x3/inferred/scalars/abstract-float.wgsl.expected.ir.fxc.hlsl
index 2b0bbe2..295fc0e 100644
--- a/test/tint/expressions/type_ctor/mat2x3/inferred/scalars/abstract-float.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/expressions/type_ctor/mat2x3/inferred/scalars/abstract-float.wgsl.expected.ir.fxc.hlsl
@@ -1,7 +1,12 @@
-SKIP: FAILED
+
+RWByteAddressBuffer tint_symbol : register(u0);
+void v(uint offset, float2x3 obj) {
+  tint_symbol.Store3((offset + 0u), asuint(obj[0u]));
+  tint_symbol.Store3((offset + 16u), asuint(obj[1u]));
+}
 
 [numthreads(1, 1, 1)]
 void f() {
-  tint_symbol = float2x3(float3(0.0f, 1.0f, 2.0f), float3(3.0f, 4.0f, 5.0f));
+  v(0u, float2x3(float3(0.0f, 1.0f, 2.0f), float3(3.0f, 4.0f, 5.0f)));
 }
 
diff --git a/test/tint/expressions/type_ctor/mat2x3/inferred/scalars/f16.wgsl.expected.ir.dxc.hlsl b/test/tint/expressions/type_ctor/mat2x3/inferred/scalars/f16.wgsl.expected.ir.dxc.hlsl
index 1616cea..07526d3 100644
--- a/test/tint/expressions/type_ctor/mat2x3/inferred/scalars/f16.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/expressions/type_ctor/mat2x3/inferred/scalars/f16.wgsl.expected.ir.dxc.hlsl
@@ -1,15 +1,13 @@
-SKIP: FAILED
+
+static matrix<float16_t, 2, 3> m = matrix<float16_t, 2, 3>(vector<float16_t, 3>(float16_t(0.0h), float16_t(1.0h), float16_t(2.0h)), vector<float16_t, 3>(float16_t(3.0h), float16_t(4.0h), float16_t(5.0h)));
+RWByteAddressBuffer tint_symbol : register(u0);
+void v(uint offset, matrix<float16_t, 2, 3> obj) {
+  tint_symbol.Store<vector<float16_t, 3> >((offset + 0u), obj[0u]);
+  tint_symbol.Store<vector<float16_t, 3> >((offset + 8u), obj[1u]);
+}
 
 [numthreads(1, 1, 1)]
 void f() {
-  tint_symbol = m;
+  v(0u, m);
 }
 
-DXC validation failure:
-hlsl.hlsl:3:3: error: use of undeclared identifier 'tint_symbol'
-  tint_symbol = m;
-  ^
-hlsl.hlsl:3:17: error: use of undeclared identifier 'm'
-  tint_symbol = m;
-                ^
-
diff --git a/test/tint/expressions/type_ctor/mat2x3/inferred/scalars/f16.wgsl.expected.ir.fxc.hlsl b/test/tint/expressions/type_ctor/mat2x3/inferred/scalars/f16.wgsl.expected.ir.fxc.hlsl
index 08b893f..f9ebb4a 100644
--- a/test/tint/expressions/type_ctor/mat2x3/inferred/scalars/f16.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/expressions/type_ctor/mat2x3/inferred/scalars/f16.wgsl.expected.ir.fxc.hlsl
@@ -1,7 +1,18 @@
 SKIP: FAILED
 
+
+static matrix<float16_t, 2, 3> m = matrix<float16_t, 2, 3>(vector<float16_t, 3>(float16_t(0.0h), float16_t(1.0h), float16_t(2.0h)), vector<float16_t, 3>(float16_t(3.0h), float16_t(4.0h), float16_t(5.0h)));
+RWByteAddressBuffer tint_symbol : register(u0);
+void v(uint offset, matrix<float16_t, 2, 3> obj) {
+  tint_symbol.Store<vector<float16_t, 3> >((offset + 0u), obj[0u]);
+  tint_symbol.Store<vector<float16_t, 3> >((offset + 8u), obj[1u]);
+}
+
 [numthreads(1, 1, 1)]
 void f() {
-  tint_symbol = m;
+  v(0u, m);
 }
 
+FXC validation failure:
+c:\src\dawn\Shader@0x000001E7F63927F0(2,15-23): error X3000: syntax error: unexpected token 'float16_t'
+
diff --git a/test/tint/expressions/type_ctor/mat2x3/inferred/scalars/f32.wgsl.expected.ir.dxc.hlsl b/test/tint/expressions/type_ctor/mat2x3/inferred/scalars/f32.wgsl.expected.ir.dxc.hlsl
index 1616cea..788c2ca 100644
--- a/test/tint/expressions/type_ctor/mat2x3/inferred/scalars/f32.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/expressions/type_ctor/mat2x3/inferred/scalars/f32.wgsl.expected.ir.dxc.hlsl
@@ -1,15 +1,13 @@
-SKIP: FAILED
+
+static float2x3 m = float2x3(float3(0.0f, 1.0f, 2.0f), float3(3.0f, 4.0f, 5.0f));
+RWByteAddressBuffer tint_symbol : register(u0);
+void v(uint offset, float2x3 obj) {
+  tint_symbol.Store3((offset + 0u), asuint(obj[0u]));
+  tint_symbol.Store3((offset + 16u), asuint(obj[1u]));
+}
 
 [numthreads(1, 1, 1)]
 void f() {
-  tint_symbol = m;
+  v(0u, m);
 }
 
-DXC validation failure:
-hlsl.hlsl:3:3: error: use of undeclared identifier 'tint_symbol'
-  tint_symbol = m;
-  ^
-hlsl.hlsl:3:17: error: use of undeclared identifier 'm'
-  tint_symbol = m;
-                ^
-
diff --git a/test/tint/expressions/type_ctor/mat2x3/inferred/scalars/f32.wgsl.expected.ir.fxc.hlsl b/test/tint/expressions/type_ctor/mat2x3/inferred/scalars/f32.wgsl.expected.ir.fxc.hlsl
index 08b893f..788c2ca 100644
--- a/test/tint/expressions/type_ctor/mat2x3/inferred/scalars/f32.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/expressions/type_ctor/mat2x3/inferred/scalars/f32.wgsl.expected.ir.fxc.hlsl
@@ -1,7 +1,13 @@
-SKIP: FAILED
+
+static float2x3 m = float2x3(float3(0.0f, 1.0f, 2.0f), float3(3.0f, 4.0f, 5.0f));
+RWByteAddressBuffer tint_symbol : register(u0);
+void v(uint offset, float2x3 obj) {
+  tint_symbol.Store3((offset + 0u), asuint(obj[0u]));
+  tint_symbol.Store3((offset + 16u), asuint(obj[1u]));
+}
 
 [numthreads(1, 1, 1)]
 void f() {
-  tint_symbol = m;
+  v(0u, m);
 }
 
diff --git a/test/tint/expressions/type_ctor/mat2x3/inferred/vectors/abstract-float.wgsl.expected.ir.dxc.hlsl b/test/tint/expressions/type_ctor/mat2x3/inferred/vectors/abstract-float.wgsl.expected.ir.dxc.hlsl
index f955cd9..295fc0e 100644
--- a/test/tint/expressions/type_ctor/mat2x3/inferred/vectors/abstract-float.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/expressions/type_ctor/mat2x3/inferred/vectors/abstract-float.wgsl.expected.ir.dxc.hlsl
@@ -1,12 +1,12 @@
-SKIP: FAILED
+
+RWByteAddressBuffer tint_symbol : register(u0);
+void v(uint offset, float2x3 obj) {
+  tint_symbol.Store3((offset + 0u), asuint(obj[0u]));
+  tint_symbol.Store3((offset + 16u), asuint(obj[1u]));
+}
 
 [numthreads(1, 1, 1)]
 void f() {
-  tint_symbol = float2x3(float3(0.0f, 1.0f, 2.0f), float3(3.0f, 4.0f, 5.0f));
+  v(0u, float2x3(float3(0.0f, 1.0f, 2.0f), float3(3.0f, 4.0f, 5.0f)));
 }
 
-DXC validation failure:
-hlsl.hlsl:3:3: error: use of undeclared identifier 'tint_symbol'
-  tint_symbol = float2x3(float3(0.0f, 1.0f, 2.0f), float3(3.0f, 4.0f, 5.0f));
-  ^
-
diff --git a/test/tint/expressions/type_ctor/mat2x3/inferred/vectors/abstract-float.wgsl.expected.ir.fxc.hlsl b/test/tint/expressions/type_ctor/mat2x3/inferred/vectors/abstract-float.wgsl.expected.ir.fxc.hlsl
index 2b0bbe2..295fc0e 100644
--- a/test/tint/expressions/type_ctor/mat2x3/inferred/vectors/abstract-float.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/expressions/type_ctor/mat2x3/inferred/vectors/abstract-float.wgsl.expected.ir.fxc.hlsl
@@ -1,7 +1,12 @@
-SKIP: FAILED
+
+RWByteAddressBuffer tint_symbol : register(u0);
+void v(uint offset, float2x3 obj) {
+  tint_symbol.Store3((offset + 0u), asuint(obj[0u]));
+  tint_symbol.Store3((offset + 16u), asuint(obj[1u]));
+}
 
 [numthreads(1, 1, 1)]
 void f() {
-  tint_symbol = float2x3(float3(0.0f, 1.0f, 2.0f), float3(3.0f, 4.0f, 5.0f));
+  v(0u, float2x3(float3(0.0f, 1.0f, 2.0f), float3(3.0f, 4.0f, 5.0f)));
 }
 
diff --git a/test/tint/expressions/type_ctor/mat2x3/inferred/vectors/f16.wgsl.expected.ir.dxc.hlsl b/test/tint/expressions/type_ctor/mat2x3/inferred/vectors/f16.wgsl.expected.ir.dxc.hlsl
index 1616cea..07526d3 100644
--- a/test/tint/expressions/type_ctor/mat2x3/inferred/vectors/f16.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/expressions/type_ctor/mat2x3/inferred/vectors/f16.wgsl.expected.ir.dxc.hlsl
@@ -1,15 +1,13 @@
-SKIP: FAILED
+
+static matrix<float16_t, 2, 3> m = matrix<float16_t, 2, 3>(vector<float16_t, 3>(float16_t(0.0h), float16_t(1.0h), float16_t(2.0h)), vector<float16_t, 3>(float16_t(3.0h), float16_t(4.0h), float16_t(5.0h)));
+RWByteAddressBuffer tint_symbol : register(u0);
+void v(uint offset, matrix<float16_t, 2, 3> obj) {
+  tint_symbol.Store<vector<float16_t, 3> >((offset + 0u), obj[0u]);
+  tint_symbol.Store<vector<float16_t, 3> >((offset + 8u), obj[1u]);
+}
 
 [numthreads(1, 1, 1)]
 void f() {
-  tint_symbol = m;
+  v(0u, m);
 }
 
-DXC validation failure:
-hlsl.hlsl:3:3: error: use of undeclared identifier 'tint_symbol'
-  tint_symbol = m;
-  ^
-hlsl.hlsl:3:17: error: use of undeclared identifier 'm'
-  tint_symbol = m;
-                ^
-
diff --git a/test/tint/expressions/type_ctor/mat2x3/inferred/vectors/f16.wgsl.expected.ir.fxc.hlsl b/test/tint/expressions/type_ctor/mat2x3/inferred/vectors/f16.wgsl.expected.ir.fxc.hlsl
index 08b893f..802dc59 100644
--- a/test/tint/expressions/type_ctor/mat2x3/inferred/vectors/f16.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/expressions/type_ctor/mat2x3/inferred/vectors/f16.wgsl.expected.ir.fxc.hlsl
@@ -1,7 +1,18 @@
 SKIP: FAILED
 
+
+static matrix<float16_t, 2, 3> m = matrix<float16_t, 2, 3>(vector<float16_t, 3>(float16_t(0.0h), float16_t(1.0h), float16_t(2.0h)), vector<float16_t, 3>(float16_t(3.0h), float16_t(4.0h), float16_t(5.0h)));
+RWByteAddressBuffer tint_symbol : register(u0);
+void v(uint offset, matrix<float16_t, 2, 3> obj) {
+  tint_symbol.Store<vector<float16_t, 3> >((offset + 0u), obj[0u]);
+  tint_symbol.Store<vector<float16_t, 3> >((offset + 8u), obj[1u]);
+}
+
 [numthreads(1, 1, 1)]
 void f() {
-  tint_symbol = m;
+  v(0u, m);
 }
 
+FXC validation failure:
+c:\src\dawn\Shader@0x00000263FE2050D0(2,15-23): error X3000: syntax error: unexpected token 'float16_t'
+
diff --git a/test/tint/expressions/type_ctor/mat2x3/inferred/vectors/f32.wgsl.expected.ir.dxc.hlsl b/test/tint/expressions/type_ctor/mat2x3/inferred/vectors/f32.wgsl.expected.ir.dxc.hlsl
index 1616cea..788c2ca 100644
--- a/test/tint/expressions/type_ctor/mat2x3/inferred/vectors/f32.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/expressions/type_ctor/mat2x3/inferred/vectors/f32.wgsl.expected.ir.dxc.hlsl
@@ -1,15 +1,13 @@
-SKIP: FAILED
+
+static float2x3 m = float2x3(float3(0.0f, 1.0f, 2.0f), float3(3.0f, 4.0f, 5.0f));
+RWByteAddressBuffer tint_symbol : register(u0);
+void v(uint offset, float2x3 obj) {
+  tint_symbol.Store3((offset + 0u), asuint(obj[0u]));
+  tint_symbol.Store3((offset + 16u), asuint(obj[1u]));
+}
 
 [numthreads(1, 1, 1)]
 void f() {
-  tint_symbol = m;
+  v(0u, m);
 }
 
-DXC validation failure:
-hlsl.hlsl:3:3: error: use of undeclared identifier 'tint_symbol'
-  tint_symbol = m;
-  ^
-hlsl.hlsl:3:17: error: use of undeclared identifier 'm'
-  tint_symbol = m;
-                ^
-
diff --git a/test/tint/expressions/type_ctor/mat2x3/inferred/vectors/f32.wgsl.expected.ir.fxc.hlsl b/test/tint/expressions/type_ctor/mat2x3/inferred/vectors/f32.wgsl.expected.ir.fxc.hlsl
index 08b893f..788c2ca 100644
--- a/test/tint/expressions/type_ctor/mat2x3/inferred/vectors/f32.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/expressions/type_ctor/mat2x3/inferred/vectors/f32.wgsl.expected.ir.fxc.hlsl
@@ -1,7 +1,13 @@
-SKIP: FAILED
+
+static float2x3 m = float2x3(float3(0.0f, 1.0f, 2.0f), float3(3.0f, 4.0f, 5.0f));
+RWByteAddressBuffer tint_symbol : register(u0);
+void v(uint offset, float2x3 obj) {
+  tint_symbol.Store3((offset + 0u), asuint(obj[0u]));
+  tint_symbol.Store3((offset + 16u), asuint(obj[1u]));
+}
 
 [numthreads(1, 1, 1)]
 void f() {
-  tint_symbol = m;
+  v(0u, m);
 }
 
diff --git a/test/tint/expressions/type_ctor/mat2x3/load/f16.wgsl.expected.ir.dxc.hlsl b/test/tint/expressions/type_ctor/mat2x3/load/f16.wgsl.expected.ir.dxc.hlsl
index c6e1d96..71825b7 100644
--- a/test/tint/expressions/type_ctor/mat2x3/load/f16.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/expressions/type_ctor/mat2x3/load/f16.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,13 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Construct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWByteAddressBuffer tint_symbol : register(u0);
+void v(uint offset, matrix<float16_t, 2, 3> obj) {
+  tint_symbol.Store<vector<float16_t, 3> >((offset + 0u), obj[0u]);
+  tint_symbol.Store<vector<float16_t, 3> >((offset + 8u), obj[1u]);
+}
+
+[numthreads(1, 1, 1)]
+void f() {
+  matrix<float16_t, 2, 3> m = matrix<float16_t, 2, 3>((float16_t(0.0h)).xxx, (float16_t(0.0h)).xxx);
+  v(0u, matrix<float16_t, 2, 3>(m));
+}
+
diff --git a/test/tint/expressions/type_ctor/mat2x3/load/f16.wgsl.expected.ir.fxc.hlsl b/test/tint/expressions/type_ctor/mat2x3/load/f16.wgsl.expected.ir.fxc.hlsl
index c6e1d96..d328753 100644
--- a/test/tint/expressions/type_ctor/mat2x3/load/f16.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/expressions/type_ctor/mat2x3/load/f16.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,19 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Construct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+
+RWByteAddressBuffer tint_symbol : register(u0);
+void v(uint offset, matrix<float16_t, 2, 3> obj) {
+  tint_symbol.Store<vector<float16_t, 3> >((offset + 0u), obj[0u]);
+  tint_symbol.Store<vector<float16_t, 3> >((offset + 8u), obj[1u]);
+}
+
+[numthreads(1, 1, 1)]
+void f() {
+  matrix<float16_t, 2, 3> m = matrix<float16_t, 2, 3>((float16_t(0.0h)).xxx, (float16_t(0.0h)).xxx);
+  v(0u, matrix<float16_t, 2, 3>(m));
+}
+
+FXC validation failure:
+c:\src\dawn\Shader@0x0000022BB2EA6390(3,28-36): error X3000: syntax error: unexpected token 'float16_t'
+c:\src\dawn\Shader@0x0000022BB2EA6390(4,3-19): error X3018: invalid subscript 'Store'
+
diff --git a/test/tint/expressions/type_ctor/mat2x3/load/f32.wgsl.expected.ir.dxc.hlsl b/test/tint/expressions/type_ctor/mat2x3/load/f32.wgsl.expected.ir.dxc.hlsl
index c6e1d96..e2ab825 100644
--- a/test/tint/expressions/type_ctor/mat2x3/load/f32.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/expressions/type_ctor/mat2x3/load/f32.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,13 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Construct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWByteAddressBuffer tint_symbol : register(u0);
+void v(uint offset, float2x3 obj) {
+  tint_symbol.Store3((offset + 0u), asuint(obj[0u]));
+  tint_symbol.Store3((offset + 16u), asuint(obj[1u]));
+}
+
+[numthreads(1, 1, 1)]
+void f() {
+  float2x3 m = float2x3((0.0f).xxx, (0.0f).xxx);
+  v(0u, float2x3(m));
+}
+
diff --git a/test/tint/expressions/type_ctor/mat2x3/load/f32.wgsl.expected.ir.fxc.hlsl b/test/tint/expressions/type_ctor/mat2x3/load/f32.wgsl.expected.ir.fxc.hlsl
index c6e1d96..e2ab825 100644
--- a/test/tint/expressions/type_ctor/mat2x3/load/f32.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/expressions/type_ctor/mat2x3/load/f32.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,13 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Construct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWByteAddressBuffer tint_symbol : register(u0);
+void v(uint offset, float2x3 obj) {
+  tint_symbol.Store3((offset + 0u), asuint(obj[0u]));
+  tint_symbol.Store3((offset + 16u), asuint(obj[1u]));
+}
+
+[numthreads(1, 1, 1)]
+void f() {
+  float2x3 m = float2x3((0.0f).xxx, (0.0f).xxx);
+  v(0u, float2x3(m));
+}
+
diff --git a/test/tint/expressions/type_ctor/mat2x3/zero/f16.wgsl.expected.ir.dxc.hlsl b/test/tint/expressions/type_ctor/mat2x3/zero/f16.wgsl.expected.ir.dxc.hlsl
index 1616cea..5b1deb3 100644
--- a/test/tint/expressions/type_ctor/mat2x3/zero/f16.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/expressions/type_ctor/mat2x3/zero/f16.wgsl.expected.ir.dxc.hlsl
@@ -1,15 +1,13 @@
-SKIP: FAILED
+
+static matrix<float16_t, 2, 3> m = matrix<float16_t, 2, 3>((float16_t(0.0h)).xxx, (float16_t(0.0h)).xxx);
+RWByteAddressBuffer tint_symbol : register(u0);
+void v(uint offset, matrix<float16_t, 2, 3> obj) {
+  tint_symbol.Store<vector<float16_t, 3> >((offset + 0u), obj[0u]);
+  tint_symbol.Store<vector<float16_t, 3> >((offset + 8u), obj[1u]);
+}
 
 [numthreads(1, 1, 1)]
 void f() {
-  tint_symbol = m;
+  v(0u, m);
 }
 
-DXC validation failure:
-hlsl.hlsl:3:3: error: use of undeclared identifier 'tint_symbol'
-  tint_symbol = m;
-  ^
-hlsl.hlsl:3:17: error: use of undeclared identifier 'm'
-  tint_symbol = m;
-                ^
-
diff --git a/test/tint/expressions/type_ctor/mat2x3/zero/f16.wgsl.expected.ir.fxc.hlsl b/test/tint/expressions/type_ctor/mat2x3/zero/f16.wgsl.expected.ir.fxc.hlsl
index 08b893f..8be4abf 100644
--- a/test/tint/expressions/type_ctor/mat2x3/zero/f16.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/expressions/type_ctor/mat2x3/zero/f16.wgsl.expected.ir.fxc.hlsl
@@ -1,7 +1,18 @@
 SKIP: FAILED
 
+
+static matrix<float16_t, 2, 3> m = matrix<float16_t, 2, 3>((float16_t(0.0h)).xxx, (float16_t(0.0h)).xxx);
+RWByteAddressBuffer tint_symbol : register(u0);
+void v(uint offset, matrix<float16_t, 2, 3> obj) {
+  tint_symbol.Store<vector<float16_t, 3> >((offset + 0u), obj[0u]);
+  tint_symbol.Store<vector<float16_t, 3> >((offset + 8u), obj[1u]);
+}
+
 [numthreads(1, 1, 1)]
 void f() {
-  tint_symbol = m;
+  v(0u, m);
 }
 
+FXC validation failure:
+c:\src\dawn\Shader@0x00000226C78DFBE0(2,15-23): error X3000: syntax error: unexpected token 'float16_t'
+
diff --git a/test/tint/expressions/type_ctor/mat2x3/zero/f32.wgsl.expected.ir.dxc.hlsl b/test/tint/expressions/type_ctor/mat2x3/zero/f32.wgsl.expected.ir.dxc.hlsl
index 1616cea..24e5467 100644
--- a/test/tint/expressions/type_ctor/mat2x3/zero/f32.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/expressions/type_ctor/mat2x3/zero/f32.wgsl.expected.ir.dxc.hlsl
@@ -1,15 +1,13 @@
-SKIP: FAILED
+
+static float2x3 m = float2x3((0.0f).xxx, (0.0f).xxx);
+RWByteAddressBuffer tint_symbol : register(u0);
+void v(uint offset, float2x3 obj) {
+  tint_symbol.Store3((offset + 0u), asuint(obj[0u]));
+  tint_symbol.Store3((offset + 16u), asuint(obj[1u]));
+}
 
 [numthreads(1, 1, 1)]
 void f() {
-  tint_symbol = m;
+  v(0u, m);
 }
 
-DXC validation failure:
-hlsl.hlsl:3:3: error: use of undeclared identifier 'tint_symbol'
-  tint_symbol = m;
-  ^
-hlsl.hlsl:3:17: error: use of undeclared identifier 'm'
-  tint_symbol = m;
-                ^
-
diff --git a/test/tint/expressions/type_ctor/mat2x3/zero/f32.wgsl.expected.ir.fxc.hlsl b/test/tint/expressions/type_ctor/mat2x3/zero/f32.wgsl.expected.ir.fxc.hlsl
index 08b893f..24e5467 100644
--- a/test/tint/expressions/type_ctor/mat2x3/zero/f32.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/expressions/type_ctor/mat2x3/zero/f32.wgsl.expected.ir.fxc.hlsl
@@ -1,7 +1,13 @@
-SKIP: FAILED
+
+static float2x3 m = float2x3((0.0f).xxx, (0.0f).xxx);
+RWByteAddressBuffer tint_symbol : register(u0);
+void v(uint offset, float2x3 obj) {
+  tint_symbol.Store3((offset + 0u), asuint(obj[0u]));
+  tint_symbol.Store3((offset + 16u), asuint(obj[1u]));
+}
 
 [numthreads(1, 1, 1)]
 void f() {
-  tint_symbol = m;
+  v(0u, m);
 }
 
diff --git a/test/tint/expressions/type_ctor/mat2x4/explicit/identity/f16.wgsl.expected.ir.dxc.hlsl b/test/tint/expressions/type_ctor/mat2x4/explicit/identity/f16.wgsl.expected.ir.dxc.hlsl
index c6e1d96..2e9a258 100644
--- a/test/tint/expressions/type_ctor/mat2x4/explicit/identity/f16.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/expressions/type_ctor/mat2x4/explicit/identity/f16.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,13 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Construct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+static matrix<float16_t, 2, 4> m = matrix<float16_t, 2, 4>(vector<float16_t, 4>(float16_t(0.0h), float16_t(1.0h), float16_t(2.0h), float16_t(3.0h)), vector<float16_t, 4>(float16_t(4.0h), float16_t(5.0h), float16_t(6.0h), float16_t(7.0h)));
+RWByteAddressBuffer tint_symbol : register(u0);
+void v(uint offset, matrix<float16_t, 2, 4> obj) {
+  tint_symbol.Store<vector<float16_t, 4> >((offset + 0u), obj[0u]);
+  tint_symbol.Store<vector<float16_t, 4> >((offset + 8u), obj[1u]);
+}
+
+[numthreads(1, 1, 1)]
+void f() {
+  v(0u, matrix<float16_t, 2, 4>(m));
+}
+
diff --git a/test/tint/expressions/type_ctor/mat2x4/explicit/identity/f16.wgsl.expected.ir.fxc.hlsl b/test/tint/expressions/type_ctor/mat2x4/explicit/identity/f16.wgsl.expected.ir.fxc.hlsl
index c6e1d96..4aedf92 100644
--- a/test/tint/expressions/type_ctor/mat2x4/explicit/identity/f16.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/expressions/type_ctor/mat2x4/explicit/identity/f16.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,18 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Construct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+
+static matrix<float16_t, 2, 4> m = matrix<float16_t, 2, 4>(vector<float16_t, 4>(float16_t(0.0h), float16_t(1.0h), float16_t(2.0h), float16_t(3.0h)), vector<float16_t, 4>(float16_t(4.0h), float16_t(5.0h), float16_t(6.0h), float16_t(7.0h)));
+RWByteAddressBuffer tint_symbol : register(u0);
+void v(uint offset, matrix<float16_t, 2, 4> obj) {
+  tint_symbol.Store<vector<float16_t, 4> >((offset + 0u), obj[0u]);
+  tint_symbol.Store<vector<float16_t, 4> >((offset + 8u), obj[1u]);
+}
+
+[numthreads(1, 1, 1)]
+void f() {
+  v(0u, matrix<float16_t, 2, 4>(m));
+}
+
+FXC validation failure:
+c:\src\dawn\Shader@0x000001922CD1FF50(2,15-23): error X3000: syntax error: unexpected token 'float16_t'
+
diff --git a/test/tint/expressions/type_ctor/mat2x4/explicit/identity/f32.wgsl.expected.ir.dxc.hlsl b/test/tint/expressions/type_ctor/mat2x4/explicit/identity/f32.wgsl.expected.ir.dxc.hlsl
index c6e1d96..032ed92 100644
--- a/test/tint/expressions/type_ctor/mat2x4/explicit/identity/f32.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/expressions/type_ctor/mat2x4/explicit/identity/f32.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,13 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Construct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+static float2x4 m = float2x4(float4(0.0f, 1.0f, 2.0f, 3.0f), float4(4.0f, 5.0f, 6.0f, 7.0f));
+RWByteAddressBuffer tint_symbol : register(u0);
+void v(uint offset, float2x4 obj) {
+  tint_symbol.Store4((offset + 0u), asuint(obj[0u]));
+  tint_symbol.Store4((offset + 16u), asuint(obj[1u]));
+}
+
+[numthreads(1, 1, 1)]
+void f() {
+  v(0u, float2x4(m));
+}
+
diff --git a/test/tint/expressions/type_ctor/mat2x4/explicit/identity/f32.wgsl.expected.ir.fxc.hlsl b/test/tint/expressions/type_ctor/mat2x4/explicit/identity/f32.wgsl.expected.ir.fxc.hlsl
index c6e1d96..032ed92 100644
--- a/test/tint/expressions/type_ctor/mat2x4/explicit/identity/f32.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/expressions/type_ctor/mat2x4/explicit/identity/f32.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,13 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Construct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+static float2x4 m = float2x4(float4(0.0f, 1.0f, 2.0f, 3.0f), float4(4.0f, 5.0f, 6.0f, 7.0f));
+RWByteAddressBuffer tint_symbol : register(u0);
+void v(uint offset, float2x4 obj) {
+  tint_symbol.Store4((offset + 0u), asuint(obj[0u]));
+  tint_symbol.Store4((offset + 16u), asuint(obj[1u]));
+}
+
+[numthreads(1, 1, 1)]
+void f() {
+  v(0u, float2x4(m));
+}
+
diff --git a/test/tint/expressions/type_ctor/mat2x4/explicit/scalars/f16.wgsl.expected.ir.dxc.hlsl b/test/tint/expressions/type_ctor/mat2x4/explicit/scalars/f16.wgsl.expected.ir.dxc.hlsl
index 1616cea..a3b6092 100644
--- a/test/tint/expressions/type_ctor/mat2x4/explicit/scalars/f16.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/expressions/type_ctor/mat2x4/explicit/scalars/f16.wgsl.expected.ir.dxc.hlsl
@@ -1,15 +1,13 @@
-SKIP: FAILED
+
+static matrix<float16_t, 2, 4> m = matrix<float16_t, 2, 4>(vector<float16_t, 4>(float16_t(0.0h), float16_t(1.0h), float16_t(2.0h), float16_t(3.0h)), vector<float16_t, 4>(float16_t(4.0h), float16_t(5.0h), float16_t(6.0h), float16_t(7.0h)));
+RWByteAddressBuffer tint_symbol : register(u0);
+void v(uint offset, matrix<float16_t, 2, 4> obj) {
+  tint_symbol.Store<vector<float16_t, 4> >((offset + 0u), obj[0u]);
+  tint_symbol.Store<vector<float16_t, 4> >((offset + 8u), obj[1u]);
+}
 
 [numthreads(1, 1, 1)]
 void f() {
-  tint_symbol = m;
+  v(0u, m);
 }
 
-DXC validation failure:
-hlsl.hlsl:3:3: error: use of undeclared identifier 'tint_symbol'
-  tint_symbol = m;
-  ^
-hlsl.hlsl:3:17: error: use of undeclared identifier 'm'
-  tint_symbol = m;
-                ^
-
diff --git a/test/tint/expressions/type_ctor/mat2x4/explicit/scalars/f16.wgsl.expected.ir.fxc.hlsl b/test/tint/expressions/type_ctor/mat2x4/explicit/scalars/f16.wgsl.expected.ir.fxc.hlsl
index 08b893f..30233bd 100644
--- a/test/tint/expressions/type_ctor/mat2x4/explicit/scalars/f16.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/expressions/type_ctor/mat2x4/explicit/scalars/f16.wgsl.expected.ir.fxc.hlsl
@@ -1,7 +1,18 @@
 SKIP: FAILED
 
+
+static matrix<float16_t, 2, 4> m = matrix<float16_t, 2, 4>(vector<float16_t, 4>(float16_t(0.0h), float16_t(1.0h), float16_t(2.0h), float16_t(3.0h)), vector<float16_t, 4>(float16_t(4.0h), float16_t(5.0h), float16_t(6.0h), float16_t(7.0h)));
+RWByteAddressBuffer tint_symbol : register(u0);
+void v(uint offset, matrix<float16_t, 2, 4> obj) {
+  tint_symbol.Store<vector<float16_t, 4> >((offset + 0u), obj[0u]);
+  tint_symbol.Store<vector<float16_t, 4> >((offset + 8u), obj[1u]);
+}
+
 [numthreads(1, 1, 1)]
 void f() {
-  tint_symbol = m;
+  v(0u, m);
 }
 
+FXC validation failure:
+c:\src\dawn\Shader@0x0000029FBBD41020(2,15-23): error X3000: syntax error: unexpected token 'float16_t'
+
diff --git a/test/tint/expressions/type_ctor/mat2x4/explicit/scalars/f32.wgsl.expected.ir.dxc.hlsl b/test/tint/expressions/type_ctor/mat2x4/explicit/scalars/f32.wgsl.expected.ir.dxc.hlsl
index 1616cea..597ed5e 100644
--- a/test/tint/expressions/type_ctor/mat2x4/explicit/scalars/f32.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/expressions/type_ctor/mat2x4/explicit/scalars/f32.wgsl.expected.ir.dxc.hlsl
@@ -1,15 +1,13 @@
-SKIP: FAILED
+
+static float2x4 m = float2x4(float4(0.0f, 1.0f, 2.0f, 3.0f), float4(4.0f, 5.0f, 6.0f, 7.0f));
+RWByteAddressBuffer tint_symbol : register(u0);
+void v(uint offset, float2x4 obj) {
+  tint_symbol.Store4((offset + 0u), asuint(obj[0u]));
+  tint_symbol.Store4((offset + 16u), asuint(obj[1u]));
+}
 
 [numthreads(1, 1, 1)]
 void f() {
-  tint_symbol = m;
+  v(0u, m);
 }
 
-DXC validation failure:
-hlsl.hlsl:3:3: error: use of undeclared identifier 'tint_symbol'
-  tint_symbol = m;
-  ^
-hlsl.hlsl:3:17: error: use of undeclared identifier 'm'
-  tint_symbol = m;
-                ^
-
diff --git a/test/tint/expressions/type_ctor/mat2x4/explicit/scalars/f32.wgsl.expected.ir.fxc.hlsl b/test/tint/expressions/type_ctor/mat2x4/explicit/scalars/f32.wgsl.expected.ir.fxc.hlsl
index 08b893f..597ed5e 100644
--- a/test/tint/expressions/type_ctor/mat2x4/explicit/scalars/f32.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/expressions/type_ctor/mat2x4/explicit/scalars/f32.wgsl.expected.ir.fxc.hlsl
@@ -1,7 +1,13 @@
-SKIP: FAILED
+
+static float2x4 m = float2x4(float4(0.0f, 1.0f, 2.0f, 3.0f), float4(4.0f, 5.0f, 6.0f, 7.0f));
+RWByteAddressBuffer tint_symbol : register(u0);
+void v(uint offset, float2x4 obj) {
+  tint_symbol.Store4((offset + 0u), asuint(obj[0u]));
+  tint_symbol.Store4((offset + 16u), asuint(obj[1u]));
+}
 
 [numthreads(1, 1, 1)]
 void f() {
-  tint_symbol = m;
+  v(0u, m);
 }
 
diff --git a/test/tint/expressions/type_ctor/mat2x4/explicit/vectors/f16.wgsl.expected.ir.dxc.hlsl b/test/tint/expressions/type_ctor/mat2x4/explicit/vectors/f16.wgsl.expected.ir.dxc.hlsl
index 1616cea..a3b6092 100644
--- a/test/tint/expressions/type_ctor/mat2x4/explicit/vectors/f16.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/expressions/type_ctor/mat2x4/explicit/vectors/f16.wgsl.expected.ir.dxc.hlsl
@@ -1,15 +1,13 @@
-SKIP: FAILED
+
+static matrix<float16_t, 2, 4> m = matrix<float16_t, 2, 4>(vector<float16_t, 4>(float16_t(0.0h), float16_t(1.0h), float16_t(2.0h), float16_t(3.0h)), vector<float16_t, 4>(float16_t(4.0h), float16_t(5.0h), float16_t(6.0h), float16_t(7.0h)));
+RWByteAddressBuffer tint_symbol : register(u0);
+void v(uint offset, matrix<float16_t, 2, 4> obj) {
+  tint_symbol.Store<vector<float16_t, 4> >((offset + 0u), obj[0u]);
+  tint_symbol.Store<vector<float16_t, 4> >((offset + 8u), obj[1u]);
+}
 
 [numthreads(1, 1, 1)]
 void f() {
-  tint_symbol = m;
+  v(0u, m);
 }
 
-DXC validation failure:
-hlsl.hlsl:3:3: error: use of undeclared identifier 'tint_symbol'
-  tint_symbol = m;
-  ^
-hlsl.hlsl:3:17: error: use of undeclared identifier 'm'
-  tint_symbol = m;
-                ^
-
diff --git a/test/tint/expressions/type_ctor/mat2x4/explicit/vectors/f16.wgsl.expected.ir.fxc.hlsl b/test/tint/expressions/type_ctor/mat2x4/explicit/vectors/f16.wgsl.expected.ir.fxc.hlsl
index 08b893f..01d9ae4 100644
--- a/test/tint/expressions/type_ctor/mat2x4/explicit/vectors/f16.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/expressions/type_ctor/mat2x4/explicit/vectors/f16.wgsl.expected.ir.fxc.hlsl
@@ -1,7 +1,18 @@
 SKIP: FAILED
 
+
+static matrix<float16_t, 2, 4> m = matrix<float16_t, 2, 4>(vector<float16_t, 4>(float16_t(0.0h), float16_t(1.0h), float16_t(2.0h), float16_t(3.0h)), vector<float16_t, 4>(float16_t(4.0h), float16_t(5.0h), float16_t(6.0h), float16_t(7.0h)));
+RWByteAddressBuffer tint_symbol : register(u0);
+void v(uint offset, matrix<float16_t, 2, 4> obj) {
+  tint_symbol.Store<vector<float16_t, 4> >((offset + 0u), obj[0u]);
+  tint_symbol.Store<vector<float16_t, 4> >((offset + 8u), obj[1u]);
+}
+
 [numthreads(1, 1, 1)]
 void f() {
-  tint_symbol = m;
+  v(0u, m);
 }
 
+FXC validation failure:
+c:\src\dawn\Shader@0x000001705E765540(2,15-23): error X3000: syntax error: unexpected token 'float16_t'
+
diff --git a/test/tint/expressions/type_ctor/mat2x4/explicit/vectors/f32.wgsl.expected.ir.dxc.hlsl b/test/tint/expressions/type_ctor/mat2x4/explicit/vectors/f32.wgsl.expected.ir.dxc.hlsl
index 1616cea..597ed5e 100644
--- a/test/tint/expressions/type_ctor/mat2x4/explicit/vectors/f32.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/expressions/type_ctor/mat2x4/explicit/vectors/f32.wgsl.expected.ir.dxc.hlsl
@@ -1,15 +1,13 @@
-SKIP: FAILED
+
+static float2x4 m = float2x4(float4(0.0f, 1.0f, 2.0f, 3.0f), float4(4.0f, 5.0f, 6.0f, 7.0f));
+RWByteAddressBuffer tint_symbol : register(u0);
+void v(uint offset, float2x4 obj) {
+  tint_symbol.Store4((offset + 0u), asuint(obj[0u]));
+  tint_symbol.Store4((offset + 16u), asuint(obj[1u]));
+}
 
 [numthreads(1, 1, 1)]
 void f() {
-  tint_symbol = m;
+  v(0u, m);
 }
 
-DXC validation failure:
-hlsl.hlsl:3:3: error: use of undeclared identifier 'tint_symbol'
-  tint_symbol = m;
-  ^
-hlsl.hlsl:3:17: error: use of undeclared identifier 'm'
-  tint_symbol = m;
-                ^
-
diff --git a/test/tint/expressions/type_ctor/mat2x4/explicit/vectors/f32.wgsl.expected.ir.fxc.hlsl b/test/tint/expressions/type_ctor/mat2x4/explicit/vectors/f32.wgsl.expected.ir.fxc.hlsl
index 08b893f..597ed5e 100644
--- a/test/tint/expressions/type_ctor/mat2x4/explicit/vectors/f32.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/expressions/type_ctor/mat2x4/explicit/vectors/f32.wgsl.expected.ir.fxc.hlsl
@@ -1,7 +1,13 @@
-SKIP: FAILED
+
+static float2x4 m = float2x4(float4(0.0f, 1.0f, 2.0f, 3.0f), float4(4.0f, 5.0f, 6.0f, 7.0f));
+RWByteAddressBuffer tint_symbol : register(u0);
+void v(uint offset, float2x4 obj) {
+  tint_symbol.Store4((offset + 0u), asuint(obj[0u]));
+  tint_symbol.Store4((offset + 16u), asuint(obj[1u]));
+}
 
 [numthreads(1, 1, 1)]
 void f() {
-  tint_symbol = m;
+  v(0u, m);
 }
 
diff --git a/test/tint/expressions/type_ctor/mat2x4/inferred/identity/f16.wgsl.expected.ir.dxc.hlsl b/test/tint/expressions/type_ctor/mat2x4/inferred/identity/f16.wgsl.expected.ir.dxc.hlsl
index c6e1d96..2e9a258 100644
--- a/test/tint/expressions/type_ctor/mat2x4/inferred/identity/f16.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/expressions/type_ctor/mat2x4/inferred/identity/f16.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,13 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Construct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+static matrix<float16_t, 2, 4> m = matrix<float16_t, 2, 4>(vector<float16_t, 4>(float16_t(0.0h), float16_t(1.0h), float16_t(2.0h), float16_t(3.0h)), vector<float16_t, 4>(float16_t(4.0h), float16_t(5.0h), float16_t(6.0h), float16_t(7.0h)));
+RWByteAddressBuffer tint_symbol : register(u0);
+void v(uint offset, matrix<float16_t, 2, 4> obj) {
+  tint_symbol.Store<vector<float16_t, 4> >((offset + 0u), obj[0u]);
+  tint_symbol.Store<vector<float16_t, 4> >((offset + 8u), obj[1u]);
+}
+
+[numthreads(1, 1, 1)]
+void f() {
+  v(0u, matrix<float16_t, 2, 4>(m));
+}
+
diff --git a/test/tint/expressions/type_ctor/mat2x4/inferred/identity/f16.wgsl.expected.ir.fxc.hlsl b/test/tint/expressions/type_ctor/mat2x4/inferred/identity/f16.wgsl.expected.ir.fxc.hlsl
index c6e1d96..fdacb1d 100644
--- a/test/tint/expressions/type_ctor/mat2x4/inferred/identity/f16.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/expressions/type_ctor/mat2x4/inferred/identity/f16.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,18 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Construct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+
+static matrix<float16_t, 2, 4> m = matrix<float16_t, 2, 4>(vector<float16_t, 4>(float16_t(0.0h), float16_t(1.0h), float16_t(2.0h), float16_t(3.0h)), vector<float16_t, 4>(float16_t(4.0h), float16_t(5.0h), float16_t(6.0h), float16_t(7.0h)));
+RWByteAddressBuffer tint_symbol : register(u0);
+void v(uint offset, matrix<float16_t, 2, 4> obj) {
+  tint_symbol.Store<vector<float16_t, 4> >((offset + 0u), obj[0u]);
+  tint_symbol.Store<vector<float16_t, 4> >((offset + 8u), obj[1u]);
+}
+
+[numthreads(1, 1, 1)]
+void f() {
+  v(0u, matrix<float16_t, 2, 4>(m));
+}
+
+FXC validation failure:
+c:\src\dawn\Shader@0x000001B69132DDB0(2,15-23): error X3000: syntax error: unexpected token 'float16_t'
+
diff --git a/test/tint/expressions/type_ctor/mat2x4/inferred/identity/f32.wgsl.expected.ir.dxc.hlsl b/test/tint/expressions/type_ctor/mat2x4/inferred/identity/f32.wgsl.expected.ir.dxc.hlsl
index c6e1d96..032ed92 100644
--- a/test/tint/expressions/type_ctor/mat2x4/inferred/identity/f32.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/expressions/type_ctor/mat2x4/inferred/identity/f32.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,13 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Construct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+static float2x4 m = float2x4(float4(0.0f, 1.0f, 2.0f, 3.0f), float4(4.0f, 5.0f, 6.0f, 7.0f));
+RWByteAddressBuffer tint_symbol : register(u0);
+void v(uint offset, float2x4 obj) {
+  tint_symbol.Store4((offset + 0u), asuint(obj[0u]));
+  tint_symbol.Store4((offset + 16u), asuint(obj[1u]));
+}
+
+[numthreads(1, 1, 1)]
+void f() {
+  v(0u, float2x4(m));
+}
+
diff --git a/test/tint/expressions/type_ctor/mat2x4/inferred/identity/f32.wgsl.expected.ir.fxc.hlsl b/test/tint/expressions/type_ctor/mat2x4/inferred/identity/f32.wgsl.expected.ir.fxc.hlsl
index c6e1d96..032ed92 100644
--- a/test/tint/expressions/type_ctor/mat2x4/inferred/identity/f32.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/expressions/type_ctor/mat2x4/inferred/identity/f32.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,13 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Construct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+static float2x4 m = float2x4(float4(0.0f, 1.0f, 2.0f, 3.0f), float4(4.0f, 5.0f, 6.0f, 7.0f));
+RWByteAddressBuffer tint_symbol : register(u0);
+void v(uint offset, float2x4 obj) {
+  tint_symbol.Store4((offset + 0u), asuint(obj[0u]));
+  tint_symbol.Store4((offset + 16u), asuint(obj[1u]));
+}
+
+[numthreads(1, 1, 1)]
+void f() {
+  v(0u, float2x4(m));
+}
+
diff --git a/test/tint/expressions/type_ctor/mat2x4/inferred/scalars/abstract-float.wgsl.expected.ir.dxc.hlsl b/test/tint/expressions/type_ctor/mat2x4/inferred/scalars/abstract-float.wgsl.expected.ir.dxc.hlsl
index a725db1..392661d 100644
--- a/test/tint/expressions/type_ctor/mat2x4/inferred/scalars/abstract-float.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/expressions/type_ctor/mat2x4/inferred/scalars/abstract-float.wgsl.expected.ir.dxc.hlsl
@@ -1,12 +1,12 @@
-SKIP: FAILED
+
+RWByteAddressBuffer tint_symbol : register(u0);
+void v(uint offset, float2x4 obj) {
+  tint_symbol.Store4((offset + 0u), asuint(obj[0u]));
+  tint_symbol.Store4((offset + 16u), asuint(obj[1u]));
+}
 
 [numthreads(1, 1, 1)]
 void f() {
-  tint_symbol = float2x4(float4(0.0f, 1.0f, 2.0f, 3.0f), float4(4.0f, 5.0f, 6.0f, 7.0f));
+  v(0u, float2x4(float4(0.0f, 1.0f, 2.0f, 3.0f), float4(4.0f, 5.0f, 6.0f, 7.0f)));
 }
 
-DXC validation failure:
-hlsl.hlsl:3:3: error: use of undeclared identifier 'tint_symbol'
-  tint_symbol = float2x4(float4(0.0f, 1.0f, 2.0f, 3.0f), float4(4.0f, 5.0f, 6.0f, 7.0f));
-  ^
-
diff --git a/test/tint/expressions/type_ctor/mat2x4/inferred/scalars/abstract-float.wgsl.expected.ir.fxc.hlsl b/test/tint/expressions/type_ctor/mat2x4/inferred/scalars/abstract-float.wgsl.expected.ir.fxc.hlsl
index 8f3fd48..392661d 100644
--- a/test/tint/expressions/type_ctor/mat2x4/inferred/scalars/abstract-float.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/expressions/type_ctor/mat2x4/inferred/scalars/abstract-float.wgsl.expected.ir.fxc.hlsl
@@ -1,7 +1,12 @@
-SKIP: FAILED
+
+RWByteAddressBuffer tint_symbol : register(u0);
+void v(uint offset, float2x4 obj) {
+  tint_symbol.Store4((offset + 0u), asuint(obj[0u]));
+  tint_symbol.Store4((offset + 16u), asuint(obj[1u]));
+}
 
 [numthreads(1, 1, 1)]
 void f() {
-  tint_symbol = float2x4(float4(0.0f, 1.0f, 2.0f, 3.0f), float4(4.0f, 5.0f, 6.0f, 7.0f));
+  v(0u, float2x4(float4(0.0f, 1.0f, 2.0f, 3.0f), float4(4.0f, 5.0f, 6.0f, 7.0f)));
 }
 
diff --git a/test/tint/expressions/type_ctor/mat2x4/inferred/scalars/f16.wgsl.expected.ir.dxc.hlsl b/test/tint/expressions/type_ctor/mat2x4/inferred/scalars/f16.wgsl.expected.ir.dxc.hlsl
index 1616cea..a3b6092 100644
--- a/test/tint/expressions/type_ctor/mat2x4/inferred/scalars/f16.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/expressions/type_ctor/mat2x4/inferred/scalars/f16.wgsl.expected.ir.dxc.hlsl
@@ -1,15 +1,13 @@
-SKIP: FAILED
+
+static matrix<float16_t, 2, 4> m = matrix<float16_t, 2, 4>(vector<float16_t, 4>(float16_t(0.0h), float16_t(1.0h), float16_t(2.0h), float16_t(3.0h)), vector<float16_t, 4>(float16_t(4.0h), float16_t(5.0h), float16_t(6.0h), float16_t(7.0h)));
+RWByteAddressBuffer tint_symbol : register(u0);
+void v(uint offset, matrix<float16_t, 2, 4> obj) {
+  tint_symbol.Store<vector<float16_t, 4> >((offset + 0u), obj[0u]);
+  tint_symbol.Store<vector<float16_t, 4> >((offset + 8u), obj[1u]);
+}
 
 [numthreads(1, 1, 1)]
 void f() {
-  tint_symbol = m;
+  v(0u, m);
 }
 
-DXC validation failure:
-hlsl.hlsl:3:3: error: use of undeclared identifier 'tint_symbol'
-  tint_symbol = m;
-  ^
-hlsl.hlsl:3:17: error: use of undeclared identifier 'm'
-  tint_symbol = m;
-                ^
-
diff --git a/test/tint/expressions/type_ctor/mat2x4/inferred/scalars/f16.wgsl.expected.ir.fxc.hlsl b/test/tint/expressions/type_ctor/mat2x4/inferred/scalars/f16.wgsl.expected.ir.fxc.hlsl
index 08b893f..a24e1c4 100644
--- a/test/tint/expressions/type_ctor/mat2x4/inferred/scalars/f16.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/expressions/type_ctor/mat2x4/inferred/scalars/f16.wgsl.expected.ir.fxc.hlsl
@@ -1,7 +1,18 @@
 SKIP: FAILED
 
+
+static matrix<float16_t, 2, 4> m = matrix<float16_t, 2, 4>(vector<float16_t, 4>(float16_t(0.0h), float16_t(1.0h), float16_t(2.0h), float16_t(3.0h)), vector<float16_t, 4>(float16_t(4.0h), float16_t(5.0h), float16_t(6.0h), float16_t(7.0h)));
+RWByteAddressBuffer tint_symbol : register(u0);
+void v(uint offset, matrix<float16_t, 2, 4> obj) {
+  tint_symbol.Store<vector<float16_t, 4> >((offset + 0u), obj[0u]);
+  tint_symbol.Store<vector<float16_t, 4> >((offset + 8u), obj[1u]);
+}
+
 [numthreads(1, 1, 1)]
 void f() {
-  tint_symbol = m;
+  v(0u, m);
 }
 
+FXC validation failure:
+c:\src\dawn\Shader@0x0000017C89FE9FE0(2,15-23): error X3000: syntax error: unexpected token 'float16_t'
+
diff --git a/test/tint/expressions/type_ctor/mat2x4/inferred/scalars/f32.wgsl.expected.ir.dxc.hlsl b/test/tint/expressions/type_ctor/mat2x4/inferred/scalars/f32.wgsl.expected.ir.dxc.hlsl
index 1616cea..597ed5e 100644
--- a/test/tint/expressions/type_ctor/mat2x4/inferred/scalars/f32.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/expressions/type_ctor/mat2x4/inferred/scalars/f32.wgsl.expected.ir.dxc.hlsl
@@ -1,15 +1,13 @@
-SKIP: FAILED
+
+static float2x4 m = float2x4(float4(0.0f, 1.0f, 2.0f, 3.0f), float4(4.0f, 5.0f, 6.0f, 7.0f));
+RWByteAddressBuffer tint_symbol : register(u0);
+void v(uint offset, float2x4 obj) {
+  tint_symbol.Store4((offset + 0u), asuint(obj[0u]));
+  tint_symbol.Store4((offset + 16u), asuint(obj[1u]));
+}
 
 [numthreads(1, 1, 1)]
 void f() {
-  tint_symbol = m;
+  v(0u, m);
 }
 
-DXC validation failure:
-hlsl.hlsl:3:3: error: use of undeclared identifier 'tint_symbol'
-  tint_symbol = m;
-  ^
-hlsl.hlsl:3:17: error: use of undeclared identifier 'm'
-  tint_symbol = m;
-                ^
-
diff --git a/test/tint/expressions/type_ctor/mat2x4/inferred/scalars/f32.wgsl.expected.ir.fxc.hlsl b/test/tint/expressions/type_ctor/mat2x4/inferred/scalars/f32.wgsl.expected.ir.fxc.hlsl
index 08b893f..597ed5e 100644
--- a/test/tint/expressions/type_ctor/mat2x4/inferred/scalars/f32.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/expressions/type_ctor/mat2x4/inferred/scalars/f32.wgsl.expected.ir.fxc.hlsl
@@ -1,7 +1,13 @@
-SKIP: FAILED
+
+static float2x4 m = float2x4(float4(0.0f, 1.0f, 2.0f, 3.0f), float4(4.0f, 5.0f, 6.0f, 7.0f));
+RWByteAddressBuffer tint_symbol : register(u0);
+void v(uint offset, float2x4 obj) {
+  tint_symbol.Store4((offset + 0u), asuint(obj[0u]));
+  tint_symbol.Store4((offset + 16u), asuint(obj[1u]));
+}
 
 [numthreads(1, 1, 1)]
 void f() {
-  tint_symbol = m;
+  v(0u, m);
 }
 
diff --git a/test/tint/expressions/type_ctor/mat2x4/inferred/vectors/abstract-float.wgsl.expected.ir.dxc.hlsl b/test/tint/expressions/type_ctor/mat2x4/inferred/vectors/abstract-float.wgsl.expected.ir.dxc.hlsl
index a725db1..392661d 100644
--- a/test/tint/expressions/type_ctor/mat2x4/inferred/vectors/abstract-float.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/expressions/type_ctor/mat2x4/inferred/vectors/abstract-float.wgsl.expected.ir.dxc.hlsl
@@ -1,12 +1,12 @@
-SKIP: FAILED
+
+RWByteAddressBuffer tint_symbol : register(u0);
+void v(uint offset, float2x4 obj) {
+  tint_symbol.Store4((offset + 0u), asuint(obj[0u]));
+  tint_symbol.Store4((offset + 16u), asuint(obj[1u]));
+}
 
 [numthreads(1, 1, 1)]
 void f() {
-  tint_symbol = float2x4(float4(0.0f, 1.0f, 2.0f, 3.0f), float4(4.0f, 5.0f, 6.0f, 7.0f));
+  v(0u, float2x4(float4(0.0f, 1.0f, 2.0f, 3.0f), float4(4.0f, 5.0f, 6.0f, 7.0f)));
 }
 
-DXC validation failure:
-hlsl.hlsl:3:3: error: use of undeclared identifier 'tint_symbol'
-  tint_symbol = float2x4(float4(0.0f, 1.0f, 2.0f, 3.0f), float4(4.0f, 5.0f, 6.0f, 7.0f));
-  ^
-
diff --git a/test/tint/expressions/type_ctor/mat2x4/inferred/vectors/abstract-float.wgsl.expected.ir.fxc.hlsl b/test/tint/expressions/type_ctor/mat2x4/inferred/vectors/abstract-float.wgsl.expected.ir.fxc.hlsl
index 8f3fd48..392661d 100644
--- a/test/tint/expressions/type_ctor/mat2x4/inferred/vectors/abstract-float.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/expressions/type_ctor/mat2x4/inferred/vectors/abstract-float.wgsl.expected.ir.fxc.hlsl
@@ -1,7 +1,12 @@
-SKIP: FAILED
+
+RWByteAddressBuffer tint_symbol : register(u0);
+void v(uint offset, float2x4 obj) {
+  tint_symbol.Store4((offset + 0u), asuint(obj[0u]));
+  tint_symbol.Store4((offset + 16u), asuint(obj[1u]));
+}
 
 [numthreads(1, 1, 1)]
 void f() {
-  tint_symbol = float2x4(float4(0.0f, 1.0f, 2.0f, 3.0f), float4(4.0f, 5.0f, 6.0f, 7.0f));
+  v(0u, float2x4(float4(0.0f, 1.0f, 2.0f, 3.0f), float4(4.0f, 5.0f, 6.0f, 7.0f)));
 }
 
diff --git a/test/tint/expressions/type_ctor/mat2x4/inferred/vectors/f16.wgsl.expected.ir.dxc.hlsl b/test/tint/expressions/type_ctor/mat2x4/inferred/vectors/f16.wgsl.expected.ir.dxc.hlsl
index 1616cea..a3b6092 100644
--- a/test/tint/expressions/type_ctor/mat2x4/inferred/vectors/f16.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/expressions/type_ctor/mat2x4/inferred/vectors/f16.wgsl.expected.ir.dxc.hlsl
@@ -1,15 +1,13 @@
-SKIP: FAILED
+
+static matrix<float16_t, 2, 4> m = matrix<float16_t, 2, 4>(vector<float16_t, 4>(float16_t(0.0h), float16_t(1.0h), float16_t(2.0h), float16_t(3.0h)), vector<float16_t, 4>(float16_t(4.0h), float16_t(5.0h), float16_t(6.0h), float16_t(7.0h)));
+RWByteAddressBuffer tint_symbol : register(u0);
+void v(uint offset, matrix<float16_t, 2, 4> obj) {
+  tint_symbol.Store<vector<float16_t, 4> >((offset + 0u), obj[0u]);
+  tint_symbol.Store<vector<float16_t, 4> >((offset + 8u), obj[1u]);
+}
 
 [numthreads(1, 1, 1)]
 void f() {
-  tint_symbol = m;
+  v(0u, m);
 }
 
-DXC validation failure:
-hlsl.hlsl:3:3: error: use of undeclared identifier 'tint_symbol'
-  tint_symbol = m;
-  ^
-hlsl.hlsl:3:17: error: use of undeclared identifier 'm'
-  tint_symbol = m;
-                ^
-
diff --git a/test/tint/expressions/type_ctor/mat2x4/inferred/vectors/f16.wgsl.expected.ir.fxc.hlsl b/test/tint/expressions/type_ctor/mat2x4/inferred/vectors/f16.wgsl.expected.ir.fxc.hlsl
index 08b893f..85e82d1 100644
--- a/test/tint/expressions/type_ctor/mat2x4/inferred/vectors/f16.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/expressions/type_ctor/mat2x4/inferred/vectors/f16.wgsl.expected.ir.fxc.hlsl
@@ -1,7 +1,18 @@
 SKIP: FAILED
 
+
+static matrix<float16_t, 2, 4> m = matrix<float16_t, 2, 4>(vector<float16_t, 4>(float16_t(0.0h), float16_t(1.0h), float16_t(2.0h), float16_t(3.0h)), vector<float16_t, 4>(float16_t(4.0h), float16_t(5.0h), float16_t(6.0h), float16_t(7.0h)));
+RWByteAddressBuffer tint_symbol : register(u0);
+void v(uint offset, matrix<float16_t, 2, 4> obj) {
+  tint_symbol.Store<vector<float16_t, 4> >((offset + 0u), obj[0u]);
+  tint_symbol.Store<vector<float16_t, 4> >((offset + 8u), obj[1u]);
+}
+
 [numthreads(1, 1, 1)]
 void f() {
-  tint_symbol = m;
+  v(0u, m);
 }
 
+FXC validation failure:
+c:\src\dawn\Shader@0x0000022A86713DC0(2,15-23): error X3000: syntax error: unexpected token 'float16_t'
+
diff --git a/test/tint/expressions/type_ctor/mat2x4/inferred/vectors/f32.wgsl.expected.ir.dxc.hlsl b/test/tint/expressions/type_ctor/mat2x4/inferred/vectors/f32.wgsl.expected.ir.dxc.hlsl
index 1616cea..597ed5e 100644
--- a/test/tint/expressions/type_ctor/mat2x4/inferred/vectors/f32.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/expressions/type_ctor/mat2x4/inferred/vectors/f32.wgsl.expected.ir.dxc.hlsl
@@ -1,15 +1,13 @@
-SKIP: FAILED
+
+static float2x4 m = float2x4(float4(0.0f, 1.0f, 2.0f, 3.0f), float4(4.0f, 5.0f, 6.0f, 7.0f));
+RWByteAddressBuffer tint_symbol : register(u0);
+void v(uint offset, float2x4 obj) {
+  tint_symbol.Store4((offset + 0u), asuint(obj[0u]));
+  tint_symbol.Store4((offset + 16u), asuint(obj[1u]));
+}
 
 [numthreads(1, 1, 1)]
 void f() {
-  tint_symbol = m;
+  v(0u, m);
 }
 
-DXC validation failure:
-hlsl.hlsl:3:3: error: use of undeclared identifier 'tint_symbol'
-  tint_symbol = m;
-  ^
-hlsl.hlsl:3:17: error: use of undeclared identifier 'm'
-  tint_symbol = m;
-                ^
-
diff --git a/test/tint/expressions/type_ctor/mat2x4/inferred/vectors/f32.wgsl.expected.ir.fxc.hlsl b/test/tint/expressions/type_ctor/mat2x4/inferred/vectors/f32.wgsl.expected.ir.fxc.hlsl
index 08b893f..597ed5e 100644
--- a/test/tint/expressions/type_ctor/mat2x4/inferred/vectors/f32.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/expressions/type_ctor/mat2x4/inferred/vectors/f32.wgsl.expected.ir.fxc.hlsl
@@ -1,7 +1,13 @@
-SKIP: FAILED
+
+static float2x4 m = float2x4(float4(0.0f, 1.0f, 2.0f, 3.0f), float4(4.0f, 5.0f, 6.0f, 7.0f));
+RWByteAddressBuffer tint_symbol : register(u0);
+void v(uint offset, float2x4 obj) {
+  tint_symbol.Store4((offset + 0u), asuint(obj[0u]));
+  tint_symbol.Store4((offset + 16u), asuint(obj[1u]));
+}
 
 [numthreads(1, 1, 1)]
 void f() {
-  tint_symbol = m;
+  v(0u, m);
 }
 
diff --git a/test/tint/expressions/type_ctor/mat2x4/load/f16.wgsl.expected.ir.dxc.hlsl b/test/tint/expressions/type_ctor/mat2x4/load/f16.wgsl.expected.ir.dxc.hlsl
index c6e1d96..453f13d 100644
--- a/test/tint/expressions/type_ctor/mat2x4/load/f16.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/expressions/type_ctor/mat2x4/load/f16.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,13 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Construct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWByteAddressBuffer tint_symbol : register(u0);
+void v(uint offset, matrix<float16_t, 2, 4> obj) {
+  tint_symbol.Store<vector<float16_t, 4> >((offset + 0u), obj[0u]);
+  tint_symbol.Store<vector<float16_t, 4> >((offset + 8u), obj[1u]);
+}
+
+[numthreads(1, 1, 1)]
+void f() {
+  matrix<float16_t, 2, 4> m = matrix<float16_t, 2, 4>((float16_t(0.0h)).xxxx, (float16_t(0.0h)).xxxx);
+  v(0u, matrix<float16_t, 2, 4>(m));
+}
+
diff --git a/test/tint/expressions/type_ctor/mat2x4/load/f16.wgsl.expected.ir.fxc.hlsl b/test/tint/expressions/type_ctor/mat2x4/load/f16.wgsl.expected.ir.fxc.hlsl
index c6e1d96..10cd793 100644
--- a/test/tint/expressions/type_ctor/mat2x4/load/f16.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/expressions/type_ctor/mat2x4/load/f16.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,19 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Construct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+
+RWByteAddressBuffer tint_symbol : register(u0);
+void v(uint offset, matrix<float16_t, 2, 4> obj) {
+  tint_symbol.Store<vector<float16_t, 4> >((offset + 0u), obj[0u]);
+  tint_symbol.Store<vector<float16_t, 4> >((offset + 8u), obj[1u]);
+}
+
+[numthreads(1, 1, 1)]
+void f() {
+  matrix<float16_t, 2, 4> m = matrix<float16_t, 2, 4>((float16_t(0.0h)).xxxx, (float16_t(0.0h)).xxxx);
+  v(0u, matrix<float16_t, 2, 4>(m));
+}
+
+FXC validation failure:
+c:\src\dawn\Shader@0x00000216A9E35D80(3,28-36): error X3000: syntax error: unexpected token 'float16_t'
+c:\src\dawn\Shader@0x00000216A9E35D80(4,3-19): error X3018: invalid subscript 'Store'
+
diff --git a/test/tint/expressions/type_ctor/mat2x4/load/f32.wgsl.expected.ir.dxc.hlsl b/test/tint/expressions/type_ctor/mat2x4/load/f32.wgsl.expected.ir.dxc.hlsl
index c6e1d96..67c14bb 100644
--- a/test/tint/expressions/type_ctor/mat2x4/load/f32.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/expressions/type_ctor/mat2x4/load/f32.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,13 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Construct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWByteAddressBuffer tint_symbol : register(u0);
+void v(uint offset, float2x4 obj) {
+  tint_symbol.Store4((offset + 0u), asuint(obj[0u]));
+  tint_symbol.Store4((offset + 16u), asuint(obj[1u]));
+}
+
+[numthreads(1, 1, 1)]
+void f() {
+  float2x4 m = float2x4((0.0f).xxxx, (0.0f).xxxx);
+  v(0u, float2x4(m));
+}
+
diff --git a/test/tint/expressions/type_ctor/mat2x4/load/f32.wgsl.expected.ir.fxc.hlsl b/test/tint/expressions/type_ctor/mat2x4/load/f32.wgsl.expected.ir.fxc.hlsl
index c6e1d96..67c14bb 100644
--- a/test/tint/expressions/type_ctor/mat2x4/load/f32.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/expressions/type_ctor/mat2x4/load/f32.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,13 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Construct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWByteAddressBuffer tint_symbol : register(u0);
+void v(uint offset, float2x4 obj) {
+  tint_symbol.Store4((offset + 0u), asuint(obj[0u]));
+  tint_symbol.Store4((offset + 16u), asuint(obj[1u]));
+}
+
+[numthreads(1, 1, 1)]
+void f() {
+  float2x4 m = float2x4((0.0f).xxxx, (0.0f).xxxx);
+  v(0u, float2x4(m));
+}
+
diff --git a/test/tint/expressions/type_ctor/mat2x4/zero/f16.wgsl.expected.ir.dxc.hlsl b/test/tint/expressions/type_ctor/mat2x4/zero/f16.wgsl.expected.ir.dxc.hlsl
index 1616cea..2c506e8 100644
--- a/test/tint/expressions/type_ctor/mat2x4/zero/f16.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/expressions/type_ctor/mat2x4/zero/f16.wgsl.expected.ir.dxc.hlsl
@@ -1,15 +1,13 @@
-SKIP: FAILED
+
+static matrix<float16_t, 2, 4> m = matrix<float16_t, 2, 4>((float16_t(0.0h)).xxxx, (float16_t(0.0h)).xxxx);
+RWByteAddressBuffer tint_symbol : register(u0);
+void v(uint offset, matrix<float16_t, 2, 4> obj) {
+  tint_symbol.Store<vector<float16_t, 4> >((offset + 0u), obj[0u]);
+  tint_symbol.Store<vector<float16_t, 4> >((offset + 8u), obj[1u]);
+}
 
 [numthreads(1, 1, 1)]
 void f() {
-  tint_symbol = m;
+  v(0u, m);
 }
 
-DXC validation failure:
-hlsl.hlsl:3:3: error: use of undeclared identifier 'tint_symbol'
-  tint_symbol = m;
-  ^
-hlsl.hlsl:3:17: error: use of undeclared identifier 'm'
-  tint_symbol = m;
-                ^
-
diff --git a/test/tint/expressions/type_ctor/mat2x4/zero/f16.wgsl.expected.ir.fxc.hlsl b/test/tint/expressions/type_ctor/mat2x4/zero/f16.wgsl.expected.ir.fxc.hlsl
index 08b893f..f131fd8 100644
--- a/test/tint/expressions/type_ctor/mat2x4/zero/f16.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/expressions/type_ctor/mat2x4/zero/f16.wgsl.expected.ir.fxc.hlsl
@@ -1,7 +1,18 @@
 SKIP: FAILED
 
+
+static matrix<float16_t, 2, 4> m = matrix<float16_t, 2, 4>((float16_t(0.0h)).xxxx, (float16_t(0.0h)).xxxx);
+RWByteAddressBuffer tint_symbol : register(u0);
+void v(uint offset, matrix<float16_t, 2, 4> obj) {
+  tint_symbol.Store<vector<float16_t, 4> >((offset + 0u), obj[0u]);
+  tint_symbol.Store<vector<float16_t, 4> >((offset + 8u), obj[1u]);
+}
+
 [numthreads(1, 1, 1)]
 void f() {
-  tint_symbol = m;
+  v(0u, m);
 }
 
+FXC validation failure:
+c:\src\dawn\Shader@0x000001E61C42D4B0(2,15-23): error X3000: syntax error: unexpected token 'float16_t'
+
diff --git a/test/tint/expressions/type_ctor/mat2x4/zero/f32.wgsl.expected.ir.dxc.hlsl b/test/tint/expressions/type_ctor/mat2x4/zero/f32.wgsl.expected.ir.dxc.hlsl
index 1616cea..75b2002 100644
--- a/test/tint/expressions/type_ctor/mat2x4/zero/f32.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/expressions/type_ctor/mat2x4/zero/f32.wgsl.expected.ir.dxc.hlsl
@@ -1,15 +1,13 @@
-SKIP: FAILED
+
+static float2x4 m = float2x4((0.0f).xxxx, (0.0f).xxxx);
+RWByteAddressBuffer tint_symbol : register(u0);
+void v(uint offset, float2x4 obj) {
+  tint_symbol.Store4((offset + 0u), asuint(obj[0u]));
+  tint_symbol.Store4((offset + 16u), asuint(obj[1u]));
+}
 
 [numthreads(1, 1, 1)]
 void f() {
-  tint_symbol = m;
+  v(0u, m);
 }
 
-DXC validation failure:
-hlsl.hlsl:3:3: error: use of undeclared identifier 'tint_symbol'
-  tint_symbol = m;
-  ^
-hlsl.hlsl:3:17: error: use of undeclared identifier 'm'
-  tint_symbol = m;
-                ^
-
diff --git a/test/tint/expressions/type_ctor/mat2x4/zero/f32.wgsl.expected.ir.fxc.hlsl b/test/tint/expressions/type_ctor/mat2x4/zero/f32.wgsl.expected.ir.fxc.hlsl
index 08b893f..75b2002 100644
--- a/test/tint/expressions/type_ctor/mat2x4/zero/f32.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/expressions/type_ctor/mat2x4/zero/f32.wgsl.expected.ir.fxc.hlsl
@@ -1,7 +1,13 @@
-SKIP: FAILED
+
+static float2x4 m = float2x4((0.0f).xxxx, (0.0f).xxxx);
+RWByteAddressBuffer tint_symbol : register(u0);
+void v(uint offset, float2x4 obj) {
+  tint_symbol.Store4((offset + 0u), asuint(obj[0u]));
+  tint_symbol.Store4((offset + 16u), asuint(obj[1u]));
+}
 
 [numthreads(1, 1, 1)]
 void f() {
-  tint_symbol = m;
+  v(0u, m);
 }
 
diff --git a/test/tint/expressions/type_ctor/mat3x2/explicit/identity/f16.wgsl.expected.ir.dxc.hlsl b/test/tint/expressions/type_ctor/mat3x2/explicit/identity/f16.wgsl.expected.ir.dxc.hlsl
index c6e1d96..708ff28 100644
--- a/test/tint/expressions/type_ctor/mat3x2/explicit/identity/f16.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/expressions/type_ctor/mat3x2/explicit/identity/f16.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,14 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Construct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+static matrix<float16_t, 3, 2> m = matrix<float16_t, 3, 2>(vector<float16_t, 2>(float16_t(0.0h), float16_t(1.0h)), vector<float16_t, 2>(float16_t(2.0h), float16_t(3.0h)), vector<float16_t, 2>(float16_t(4.0h), float16_t(5.0h)));
+RWByteAddressBuffer tint_symbol : register(u0);
+void v(uint offset, matrix<float16_t, 3, 2> obj) {
+  tint_symbol.Store<vector<float16_t, 2> >((offset + 0u), obj[0u]);
+  tint_symbol.Store<vector<float16_t, 2> >((offset + 4u), obj[1u]);
+  tint_symbol.Store<vector<float16_t, 2> >((offset + 8u), obj[2u]);
+}
+
+[numthreads(1, 1, 1)]
+void f() {
+  v(0u, matrix<float16_t, 3, 2>(m));
+}
+
diff --git a/test/tint/expressions/type_ctor/mat3x2/explicit/identity/f16.wgsl.expected.ir.fxc.hlsl b/test/tint/expressions/type_ctor/mat3x2/explicit/identity/f16.wgsl.expected.ir.fxc.hlsl
index c6e1d96..0c5f66b 100644
--- a/test/tint/expressions/type_ctor/mat3x2/explicit/identity/f16.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/expressions/type_ctor/mat3x2/explicit/identity/f16.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,19 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Construct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+
+static matrix<float16_t, 3, 2> m = matrix<float16_t, 3, 2>(vector<float16_t, 2>(float16_t(0.0h), float16_t(1.0h)), vector<float16_t, 2>(float16_t(2.0h), float16_t(3.0h)), vector<float16_t, 2>(float16_t(4.0h), float16_t(5.0h)));
+RWByteAddressBuffer tint_symbol : register(u0);
+void v(uint offset, matrix<float16_t, 3, 2> obj) {
+  tint_symbol.Store<vector<float16_t, 2> >((offset + 0u), obj[0u]);
+  tint_symbol.Store<vector<float16_t, 2> >((offset + 4u), obj[1u]);
+  tint_symbol.Store<vector<float16_t, 2> >((offset + 8u), obj[2u]);
+}
+
+[numthreads(1, 1, 1)]
+void f() {
+  v(0u, matrix<float16_t, 3, 2>(m));
+}
+
+FXC validation failure:
+c:\src\dawn\Shader@0x00000128CF8960C0(2,15-23): error X3000: syntax error: unexpected token 'float16_t'
+
diff --git a/test/tint/expressions/type_ctor/mat3x2/explicit/identity/f32.wgsl.expected.ir.dxc.hlsl b/test/tint/expressions/type_ctor/mat3x2/explicit/identity/f32.wgsl.expected.ir.dxc.hlsl
index c6e1d96..c772ce5 100644
--- a/test/tint/expressions/type_ctor/mat3x2/explicit/identity/f32.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/expressions/type_ctor/mat3x2/explicit/identity/f32.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,14 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Construct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+static float3x2 m = float3x2(float2(0.0f, 1.0f), float2(2.0f, 3.0f), float2(4.0f, 5.0f));
+RWByteAddressBuffer tint_symbol : register(u0);
+void v(uint offset, float3x2 obj) {
+  tint_symbol.Store2((offset + 0u), asuint(obj[0u]));
+  tint_symbol.Store2((offset + 8u), asuint(obj[1u]));
+  tint_symbol.Store2((offset + 16u), asuint(obj[2u]));
+}
+
+[numthreads(1, 1, 1)]
+void f() {
+  v(0u, float3x2(m));
+}
+
diff --git a/test/tint/expressions/type_ctor/mat3x2/explicit/identity/f32.wgsl.expected.ir.fxc.hlsl b/test/tint/expressions/type_ctor/mat3x2/explicit/identity/f32.wgsl.expected.ir.fxc.hlsl
index c6e1d96..c772ce5 100644
--- a/test/tint/expressions/type_ctor/mat3x2/explicit/identity/f32.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/expressions/type_ctor/mat3x2/explicit/identity/f32.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,14 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Construct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+static float3x2 m = float3x2(float2(0.0f, 1.0f), float2(2.0f, 3.0f), float2(4.0f, 5.0f));
+RWByteAddressBuffer tint_symbol : register(u0);
+void v(uint offset, float3x2 obj) {
+  tint_symbol.Store2((offset + 0u), asuint(obj[0u]));
+  tint_symbol.Store2((offset + 8u), asuint(obj[1u]));
+  tint_symbol.Store2((offset + 16u), asuint(obj[2u]));
+}
+
+[numthreads(1, 1, 1)]
+void f() {
+  v(0u, float3x2(m));
+}
+
diff --git a/test/tint/expressions/type_ctor/mat3x2/explicit/scalars/f16.wgsl.expected.ir.dxc.hlsl b/test/tint/expressions/type_ctor/mat3x2/explicit/scalars/f16.wgsl.expected.ir.dxc.hlsl
index 1616cea..1bc891c 100644
--- a/test/tint/expressions/type_ctor/mat3x2/explicit/scalars/f16.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/expressions/type_ctor/mat3x2/explicit/scalars/f16.wgsl.expected.ir.dxc.hlsl
@@ -1,15 +1,14 @@
-SKIP: FAILED
+
+static matrix<float16_t, 3, 2> m = matrix<float16_t, 3, 2>(vector<float16_t, 2>(float16_t(0.0h), float16_t(1.0h)), vector<float16_t, 2>(float16_t(2.0h), float16_t(3.0h)), vector<float16_t, 2>(float16_t(4.0h), float16_t(5.0h)));
+RWByteAddressBuffer tint_symbol : register(u0);
+void v(uint offset, matrix<float16_t, 3, 2> obj) {
+  tint_symbol.Store<vector<float16_t, 2> >((offset + 0u), obj[0u]);
+  tint_symbol.Store<vector<float16_t, 2> >((offset + 4u), obj[1u]);
+  tint_symbol.Store<vector<float16_t, 2> >((offset + 8u), obj[2u]);
+}
 
 [numthreads(1, 1, 1)]
 void f() {
-  tint_symbol = m;
+  v(0u, m);
 }
 
-DXC validation failure:
-hlsl.hlsl:3:3: error: use of undeclared identifier 'tint_symbol'
-  tint_symbol = m;
-  ^
-hlsl.hlsl:3:17: error: use of undeclared identifier 'm'
-  tint_symbol = m;
-                ^
-
diff --git a/test/tint/expressions/type_ctor/mat3x2/explicit/scalars/f16.wgsl.expected.ir.fxc.hlsl b/test/tint/expressions/type_ctor/mat3x2/explicit/scalars/f16.wgsl.expected.ir.fxc.hlsl
index 08b893f..a99dfe2 100644
--- a/test/tint/expressions/type_ctor/mat3x2/explicit/scalars/f16.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/expressions/type_ctor/mat3x2/explicit/scalars/f16.wgsl.expected.ir.fxc.hlsl
@@ -1,7 +1,19 @@
 SKIP: FAILED
 
+
+static matrix<float16_t, 3, 2> m = matrix<float16_t, 3, 2>(vector<float16_t, 2>(float16_t(0.0h), float16_t(1.0h)), vector<float16_t, 2>(float16_t(2.0h), float16_t(3.0h)), vector<float16_t, 2>(float16_t(4.0h), float16_t(5.0h)));
+RWByteAddressBuffer tint_symbol : register(u0);
+void v(uint offset, matrix<float16_t, 3, 2> obj) {
+  tint_symbol.Store<vector<float16_t, 2> >((offset + 0u), obj[0u]);
+  tint_symbol.Store<vector<float16_t, 2> >((offset + 4u), obj[1u]);
+  tint_symbol.Store<vector<float16_t, 2> >((offset + 8u), obj[2u]);
+}
+
 [numthreads(1, 1, 1)]
 void f() {
-  tint_symbol = m;
+  v(0u, m);
 }
 
+FXC validation failure:
+c:\src\dawn\Shader@0x000002965CB07170(2,15-23): error X3000: syntax error: unexpected token 'float16_t'
+
diff --git a/test/tint/expressions/type_ctor/mat3x2/explicit/scalars/f32.wgsl.expected.ir.dxc.hlsl b/test/tint/expressions/type_ctor/mat3x2/explicit/scalars/f32.wgsl.expected.ir.dxc.hlsl
index 1616cea..6fd664e 100644
--- a/test/tint/expressions/type_ctor/mat3x2/explicit/scalars/f32.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/expressions/type_ctor/mat3x2/explicit/scalars/f32.wgsl.expected.ir.dxc.hlsl
@@ -1,15 +1,14 @@
-SKIP: FAILED
+
+static float3x2 m = float3x2(float2(0.0f, 1.0f), float2(2.0f, 3.0f), float2(4.0f, 5.0f));
+RWByteAddressBuffer tint_symbol : register(u0);
+void v(uint offset, float3x2 obj) {
+  tint_symbol.Store2((offset + 0u), asuint(obj[0u]));
+  tint_symbol.Store2((offset + 8u), asuint(obj[1u]));
+  tint_symbol.Store2((offset + 16u), asuint(obj[2u]));
+}
 
 [numthreads(1, 1, 1)]
 void f() {
-  tint_symbol = m;
+  v(0u, m);
 }
 
-DXC validation failure:
-hlsl.hlsl:3:3: error: use of undeclared identifier 'tint_symbol'
-  tint_symbol = m;
-  ^
-hlsl.hlsl:3:17: error: use of undeclared identifier 'm'
-  tint_symbol = m;
-                ^
-
diff --git a/test/tint/expressions/type_ctor/mat3x2/explicit/scalars/f32.wgsl.expected.ir.fxc.hlsl b/test/tint/expressions/type_ctor/mat3x2/explicit/scalars/f32.wgsl.expected.ir.fxc.hlsl
index 08b893f..6fd664e 100644
--- a/test/tint/expressions/type_ctor/mat3x2/explicit/scalars/f32.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/expressions/type_ctor/mat3x2/explicit/scalars/f32.wgsl.expected.ir.fxc.hlsl
@@ -1,7 +1,14 @@
-SKIP: FAILED
+
+static float3x2 m = float3x2(float2(0.0f, 1.0f), float2(2.0f, 3.0f), float2(4.0f, 5.0f));
+RWByteAddressBuffer tint_symbol : register(u0);
+void v(uint offset, float3x2 obj) {
+  tint_symbol.Store2((offset + 0u), asuint(obj[0u]));
+  tint_symbol.Store2((offset + 8u), asuint(obj[1u]));
+  tint_symbol.Store2((offset + 16u), asuint(obj[2u]));
+}
 
 [numthreads(1, 1, 1)]
 void f() {
-  tint_symbol = m;
+  v(0u, m);
 }
 
diff --git a/test/tint/expressions/type_ctor/mat3x2/explicit/vectors/f16.wgsl.expected.ir.dxc.hlsl b/test/tint/expressions/type_ctor/mat3x2/explicit/vectors/f16.wgsl.expected.ir.dxc.hlsl
index 1616cea..1bc891c 100644
--- a/test/tint/expressions/type_ctor/mat3x2/explicit/vectors/f16.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/expressions/type_ctor/mat3x2/explicit/vectors/f16.wgsl.expected.ir.dxc.hlsl
@@ -1,15 +1,14 @@
-SKIP: FAILED
+
+static matrix<float16_t, 3, 2> m = matrix<float16_t, 3, 2>(vector<float16_t, 2>(float16_t(0.0h), float16_t(1.0h)), vector<float16_t, 2>(float16_t(2.0h), float16_t(3.0h)), vector<float16_t, 2>(float16_t(4.0h), float16_t(5.0h)));
+RWByteAddressBuffer tint_symbol : register(u0);
+void v(uint offset, matrix<float16_t, 3, 2> obj) {
+  tint_symbol.Store<vector<float16_t, 2> >((offset + 0u), obj[0u]);
+  tint_symbol.Store<vector<float16_t, 2> >((offset + 4u), obj[1u]);
+  tint_symbol.Store<vector<float16_t, 2> >((offset + 8u), obj[2u]);
+}
 
 [numthreads(1, 1, 1)]
 void f() {
-  tint_symbol = m;
+  v(0u, m);
 }
 
-DXC validation failure:
-hlsl.hlsl:3:3: error: use of undeclared identifier 'tint_symbol'
-  tint_symbol = m;
-  ^
-hlsl.hlsl:3:17: error: use of undeclared identifier 'm'
-  tint_symbol = m;
-                ^
-
diff --git a/test/tint/expressions/type_ctor/mat3x2/explicit/vectors/f16.wgsl.expected.ir.fxc.hlsl b/test/tint/expressions/type_ctor/mat3x2/explicit/vectors/f16.wgsl.expected.ir.fxc.hlsl
index 08b893f..77e26cb 100644
--- a/test/tint/expressions/type_ctor/mat3x2/explicit/vectors/f16.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/expressions/type_ctor/mat3x2/explicit/vectors/f16.wgsl.expected.ir.fxc.hlsl
@@ -1,7 +1,19 @@
 SKIP: FAILED
 
+
+static matrix<float16_t, 3, 2> m = matrix<float16_t, 3, 2>(vector<float16_t, 2>(float16_t(0.0h), float16_t(1.0h)), vector<float16_t, 2>(float16_t(2.0h), float16_t(3.0h)), vector<float16_t, 2>(float16_t(4.0h), float16_t(5.0h)));
+RWByteAddressBuffer tint_symbol : register(u0);
+void v(uint offset, matrix<float16_t, 3, 2> obj) {
+  tint_symbol.Store<vector<float16_t, 2> >((offset + 0u), obj[0u]);
+  tint_symbol.Store<vector<float16_t, 2> >((offset + 4u), obj[1u]);
+  tint_symbol.Store<vector<float16_t, 2> >((offset + 8u), obj[2u]);
+}
+
 [numthreads(1, 1, 1)]
 void f() {
-  tint_symbol = m;
+  v(0u, m);
 }
 
+FXC validation failure:
+c:\src\dawn\Shader@0x00000299E1C0F8B0(2,15-23): error X3000: syntax error: unexpected token 'float16_t'
+
diff --git a/test/tint/expressions/type_ctor/mat3x2/explicit/vectors/f32.wgsl.expected.ir.dxc.hlsl b/test/tint/expressions/type_ctor/mat3x2/explicit/vectors/f32.wgsl.expected.ir.dxc.hlsl
index 1616cea..6fd664e 100644
--- a/test/tint/expressions/type_ctor/mat3x2/explicit/vectors/f32.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/expressions/type_ctor/mat3x2/explicit/vectors/f32.wgsl.expected.ir.dxc.hlsl
@@ -1,15 +1,14 @@
-SKIP: FAILED
+
+static float3x2 m = float3x2(float2(0.0f, 1.0f), float2(2.0f, 3.0f), float2(4.0f, 5.0f));
+RWByteAddressBuffer tint_symbol : register(u0);
+void v(uint offset, float3x2 obj) {
+  tint_symbol.Store2((offset + 0u), asuint(obj[0u]));
+  tint_symbol.Store2((offset + 8u), asuint(obj[1u]));
+  tint_symbol.Store2((offset + 16u), asuint(obj[2u]));
+}
 
 [numthreads(1, 1, 1)]
 void f() {
-  tint_symbol = m;
+  v(0u, m);
 }
 
-DXC validation failure:
-hlsl.hlsl:3:3: error: use of undeclared identifier 'tint_symbol'
-  tint_symbol = m;
-  ^
-hlsl.hlsl:3:17: error: use of undeclared identifier 'm'
-  tint_symbol = m;
-                ^
-
diff --git a/test/tint/expressions/type_ctor/mat3x2/explicit/vectors/f32.wgsl.expected.ir.fxc.hlsl b/test/tint/expressions/type_ctor/mat3x2/explicit/vectors/f32.wgsl.expected.ir.fxc.hlsl
index 08b893f..6fd664e 100644
--- a/test/tint/expressions/type_ctor/mat3x2/explicit/vectors/f32.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/expressions/type_ctor/mat3x2/explicit/vectors/f32.wgsl.expected.ir.fxc.hlsl
@@ -1,7 +1,14 @@
-SKIP: FAILED
+
+static float3x2 m = float3x2(float2(0.0f, 1.0f), float2(2.0f, 3.0f), float2(4.0f, 5.0f));
+RWByteAddressBuffer tint_symbol : register(u0);
+void v(uint offset, float3x2 obj) {
+  tint_symbol.Store2((offset + 0u), asuint(obj[0u]));
+  tint_symbol.Store2((offset + 8u), asuint(obj[1u]));
+  tint_symbol.Store2((offset + 16u), asuint(obj[2u]));
+}
 
 [numthreads(1, 1, 1)]
 void f() {
-  tint_symbol = m;
+  v(0u, m);
 }
 
diff --git a/test/tint/expressions/type_ctor/mat3x2/inferred/identity/f16.wgsl.expected.ir.dxc.hlsl b/test/tint/expressions/type_ctor/mat3x2/inferred/identity/f16.wgsl.expected.ir.dxc.hlsl
index c6e1d96..708ff28 100644
--- a/test/tint/expressions/type_ctor/mat3x2/inferred/identity/f16.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/expressions/type_ctor/mat3x2/inferred/identity/f16.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,14 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Construct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+static matrix<float16_t, 3, 2> m = matrix<float16_t, 3, 2>(vector<float16_t, 2>(float16_t(0.0h), float16_t(1.0h)), vector<float16_t, 2>(float16_t(2.0h), float16_t(3.0h)), vector<float16_t, 2>(float16_t(4.0h), float16_t(5.0h)));
+RWByteAddressBuffer tint_symbol : register(u0);
+void v(uint offset, matrix<float16_t, 3, 2> obj) {
+  tint_symbol.Store<vector<float16_t, 2> >((offset + 0u), obj[0u]);
+  tint_symbol.Store<vector<float16_t, 2> >((offset + 4u), obj[1u]);
+  tint_symbol.Store<vector<float16_t, 2> >((offset + 8u), obj[2u]);
+}
+
+[numthreads(1, 1, 1)]
+void f() {
+  v(0u, matrix<float16_t, 3, 2>(m));
+}
+
diff --git a/test/tint/expressions/type_ctor/mat3x2/inferred/identity/f16.wgsl.expected.ir.fxc.hlsl b/test/tint/expressions/type_ctor/mat3x2/inferred/identity/f16.wgsl.expected.ir.fxc.hlsl
index c6e1d96..c2fff82 100644
--- a/test/tint/expressions/type_ctor/mat3x2/inferred/identity/f16.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/expressions/type_ctor/mat3x2/inferred/identity/f16.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,19 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Construct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+
+static matrix<float16_t, 3, 2> m = matrix<float16_t, 3, 2>(vector<float16_t, 2>(float16_t(0.0h), float16_t(1.0h)), vector<float16_t, 2>(float16_t(2.0h), float16_t(3.0h)), vector<float16_t, 2>(float16_t(4.0h), float16_t(5.0h)));
+RWByteAddressBuffer tint_symbol : register(u0);
+void v(uint offset, matrix<float16_t, 3, 2> obj) {
+  tint_symbol.Store<vector<float16_t, 2> >((offset + 0u), obj[0u]);
+  tint_symbol.Store<vector<float16_t, 2> >((offset + 4u), obj[1u]);
+  tint_symbol.Store<vector<float16_t, 2> >((offset + 8u), obj[2u]);
+}
+
+[numthreads(1, 1, 1)]
+void f() {
+  v(0u, matrix<float16_t, 3, 2>(m));
+}
+
+FXC validation failure:
+c:\src\dawn\Shader@0x0000025F5D681820(2,15-23): error X3000: syntax error: unexpected token 'float16_t'
+
diff --git a/test/tint/expressions/type_ctor/mat3x2/inferred/identity/f32.wgsl.expected.ir.dxc.hlsl b/test/tint/expressions/type_ctor/mat3x2/inferred/identity/f32.wgsl.expected.ir.dxc.hlsl
index c6e1d96..c772ce5 100644
--- a/test/tint/expressions/type_ctor/mat3x2/inferred/identity/f32.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/expressions/type_ctor/mat3x2/inferred/identity/f32.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,14 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Construct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+static float3x2 m = float3x2(float2(0.0f, 1.0f), float2(2.0f, 3.0f), float2(4.0f, 5.0f));
+RWByteAddressBuffer tint_symbol : register(u0);
+void v(uint offset, float3x2 obj) {
+  tint_symbol.Store2((offset + 0u), asuint(obj[0u]));
+  tint_symbol.Store2((offset + 8u), asuint(obj[1u]));
+  tint_symbol.Store2((offset + 16u), asuint(obj[2u]));
+}
+
+[numthreads(1, 1, 1)]
+void f() {
+  v(0u, float3x2(m));
+}
+
diff --git a/test/tint/expressions/type_ctor/mat3x2/inferred/identity/f32.wgsl.expected.ir.fxc.hlsl b/test/tint/expressions/type_ctor/mat3x2/inferred/identity/f32.wgsl.expected.ir.fxc.hlsl
index c6e1d96..c772ce5 100644
--- a/test/tint/expressions/type_ctor/mat3x2/inferred/identity/f32.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/expressions/type_ctor/mat3x2/inferred/identity/f32.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,14 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Construct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+static float3x2 m = float3x2(float2(0.0f, 1.0f), float2(2.0f, 3.0f), float2(4.0f, 5.0f));
+RWByteAddressBuffer tint_symbol : register(u0);
+void v(uint offset, float3x2 obj) {
+  tint_symbol.Store2((offset + 0u), asuint(obj[0u]));
+  tint_symbol.Store2((offset + 8u), asuint(obj[1u]));
+  tint_symbol.Store2((offset + 16u), asuint(obj[2u]));
+}
+
+[numthreads(1, 1, 1)]
+void f() {
+  v(0u, float3x2(m));
+}
+
diff --git a/test/tint/expressions/type_ctor/mat3x2/inferred/scalars/abstract-float.wgsl.expected.ir.dxc.hlsl b/test/tint/expressions/type_ctor/mat3x2/inferred/scalars/abstract-float.wgsl.expected.ir.dxc.hlsl
index 47b46ff..d66b8e2 100644
--- a/test/tint/expressions/type_ctor/mat3x2/inferred/scalars/abstract-float.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/expressions/type_ctor/mat3x2/inferred/scalars/abstract-float.wgsl.expected.ir.dxc.hlsl
@@ -1,12 +1,13 @@
-SKIP: FAILED
+
+RWByteAddressBuffer tint_symbol : register(u0);
+void v(uint offset, float3x2 obj) {
+  tint_symbol.Store2((offset + 0u), asuint(obj[0u]));
+  tint_symbol.Store2((offset + 8u), asuint(obj[1u]));
+  tint_symbol.Store2((offset + 16u), asuint(obj[2u]));
+}
 
 [numthreads(1, 1, 1)]
 void f() {
-  tint_symbol = float3x2(float2(0.0f, 1.0f), float2(2.0f, 3.0f), float2(4.0f, 5.0f));
+  v(0u, float3x2(float2(0.0f, 1.0f), float2(2.0f, 3.0f), float2(4.0f, 5.0f)));
 }
 
-DXC validation failure:
-hlsl.hlsl:3:3: error: use of undeclared identifier 'tint_symbol'
-  tint_symbol = float3x2(float2(0.0f, 1.0f), float2(2.0f, 3.0f), float2(4.0f, 5.0f));
-  ^
-
diff --git a/test/tint/expressions/type_ctor/mat3x2/inferred/scalars/abstract-float.wgsl.expected.ir.fxc.hlsl b/test/tint/expressions/type_ctor/mat3x2/inferred/scalars/abstract-float.wgsl.expected.ir.fxc.hlsl
index a9b2a77..d66b8e2 100644
--- a/test/tint/expressions/type_ctor/mat3x2/inferred/scalars/abstract-float.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/expressions/type_ctor/mat3x2/inferred/scalars/abstract-float.wgsl.expected.ir.fxc.hlsl
@@ -1,7 +1,13 @@
-SKIP: FAILED
+
+RWByteAddressBuffer tint_symbol : register(u0);
+void v(uint offset, float3x2 obj) {
+  tint_symbol.Store2((offset + 0u), asuint(obj[0u]));
+  tint_symbol.Store2((offset + 8u), asuint(obj[1u]));
+  tint_symbol.Store2((offset + 16u), asuint(obj[2u]));
+}
 
 [numthreads(1, 1, 1)]
 void f() {
-  tint_symbol = float3x2(float2(0.0f, 1.0f), float2(2.0f, 3.0f), float2(4.0f, 5.0f));
+  v(0u, float3x2(float2(0.0f, 1.0f), float2(2.0f, 3.0f), float2(4.0f, 5.0f)));
 }
 
diff --git a/test/tint/expressions/type_ctor/mat3x2/inferred/scalars/f16.wgsl.expected.ir.dxc.hlsl b/test/tint/expressions/type_ctor/mat3x2/inferred/scalars/f16.wgsl.expected.ir.dxc.hlsl
index 1616cea..1bc891c 100644
--- a/test/tint/expressions/type_ctor/mat3x2/inferred/scalars/f16.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/expressions/type_ctor/mat3x2/inferred/scalars/f16.wgsl.expected.ir.dxc.hlsl
@@ -1,15 +1,14 @@
-SKIP: FAILED
+
+static matrix<float16_t, 3, 2> m = matrix<float16_t, 3, 2>(vector<float16_t, 2>(float16_t(0.0h), float16_t(1.0h)), vector<float16_t, 2>(float16_t(2.0h), float16_t(3.0h)), vector<float16_t, 2>(float16_t(4.0h), float16_t(5.0h)));
+RWByteAddressBuffer tint_symbol : register(u0);
+void v(uint offset, matrix<float16_t, 3, 2> obj) {
+  tint_symbol.Store<vector<float16_t, 2> >((offset + 0u), obj[0u]);
+  tint_symbol.Store<vector<float16_t, 2> >((offset + 4u), obj[1u]);
+  tint_symbol.Store<vector<float16_t, 2> >((offset + 8u), obj[2u]);
+}
 
 [numthreads(1, 1, 1)]
 void f() {
-  tint_symbol = m;
+  v(0u, m);
 }
 
-DXC validation failure:
-hlsl.hlsl:3:3: error: use of undeclared identifier 'tint_symbol'
-  tint_symbol = m;
-  ^
-hlsl.hlsl:3:17: error: use of undeclared identifier 'm'
-  tint_symbol = m;
-                ^
-
diff --git a/test/tint/expressions/type_ctor/mat3x2/inferred/scalars/f16.wgsl.expected.ir.fxc.hlsl b/test/tint/expressions/type_ctor/mat3x2/inferred/scalars/f16.wgsl.expected.ir.fxc.hlsl
index 08b893f..711985d 100644
--- a/test/tint/expressions/type_ctor/mat3x2/inferred/scalars/f16.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/expressions/type_ctor/mat3x2/inferred/scalars/f16.wgsl.expected.ir.fxc.hlsl
@@ -1,7 +1,19 @@
 SKIP: FAILED
 
+
+static matrix<float16_t, 3, 2> m = matrix<float16_t, 3, 2>(vector<float16_t, 2>(float16_t(0.0h), float16_t(1.0h)), vector<float16_t, 2>(float16_t(2.0h), float16_t(3.0h)), vector<float16_t, 2>(float16_t(4.0h), float16_t(5.0h)));
+RWByteAddressBuffer tint_symbol : register(u0);
+void v(uint offset, matrix<float16_t, 3, 2> obj) {
+  tint_symbol.Store<vector<float16_t, 2> >((offset + 0u), obj[0u]);
+  tint_symbol.Store<vector<float16_t, 2> >((offset + 4u), obj[1u]);
+  tint_symbol.Store<vector<float16_t, 2> >((offset + 8u), obj[2u]);
+}
+
 [numthreads(1, 1, 1)]
 void f() {
-  tint_symbol = m;
+  v(0u, m);
 }
 
+FXC validation failure:
+c:\src\dawn\Shader@0x000001EB2205AA90(2,15-23): error X3000: syntax error: unexpected token 'float16_t'
+
diff --git a/test/tint/expressions/type_ctor/mat3x2/inferred/scalars/f32.wgsl.expected.ir.dxc.hlsl b/test/tint/expressions/type_ctor/mat3x2/inferred/scalars/f32.wgsl.expected.ir.dxc.hlsl
index 1616cea..6fd664e 100644
--- a/test/tint/expressions/type_ctor/mat3x2/inferred/scalars/f32.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/expressions/type_ctor/mat3x2/inferred/scalars/f32.wgsl.expected.ir.dxc.hlsl
@@ -1,15 +1,14 @@
-SKIP: FAILED
+
+static float3x2 m = float3x2(float2(0.0f, 1.0f), float2(2.0f, 3.0f), float2(4.0f, 5.0f));
+RWByteAddressBuffer tint_symbol : register(u0);
+void v(uint offset, float3x2 obj) {
+  tint_symbol.Store2((offset + 0u), asuint(obj[0u]));
+  tint_symbol.Store2((offset + 8u), asuint(obj[1u]));
+  tint_symbol.Store2((offset + 16u), asuint(obj[2u]));
+}
 
 [numthreads(1, 1, 1)]
 void f() {
-  tint_symbol = m;
+  v(0u, m);
 }
 
-DXC validation failure:
-hlsl.hlsl:3:3: error: use of undeclared identifier 'tint_symbol'
-  tint_symbol = m;
-  ^
-hlsl.hlsl:3:17: error: use of undeclared identifier 'm'
-  tint_symbol = m;
-                ^
-
diff --git a/test/tint/expressions/type_ctor/mat3x2/inferred/scalars/f32.wgsl.expected.ir.fxc.hlsl b/test/tint/expressions/type_ctor/mat3x2/inferred/scalars/f32.wgsl.expected.ir.fxc.hlsl
index 08b893f..6fd664e 100644
--- a/test/tint/expressions/type_ctor/mat3x2/inferred/scalars/f32.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/expressions/type_ctor/mat3x2/inferred/scalars/f32.wgsl.expected.ir.fxc.hlsl
@@ -1,7 +1,14 @@
-SKIP: FAILED
+
+static float3x2 m = float3x2(float2(0.0f, 1.0f), float2(2.0f, 3.0f), float2(4.0f, 5.0f));
+RWByteAddressBuffer tint_symbol : register(u0);
+void v(uint offset, float3x2 obj) {
+  tint_symbol.Store2((offset + 0u), asuint(obj[0u]));
+  tint_symbol.Store2((offset + 8u), asuint(obj[1u]));
+  tint_symbol.Store2((offset + 16u), asuint(obj[2u]));
+}
 
 [numthreads(1, 1, 1)]
 void f() {
-  tint_symbol = m;
+  v(0u, m);
 }
 
diff --git a/test/tint/expressions/type_ctor/mat3x2/inferred/vectors/abstract-float.wgsl.expected.ir.dxc.hlsl b/test/tint/expressions/type_ctor/mat3x2/inferred/vectors/abstract-float.wgsl.expected.ir.dxc.hlsl
index 47b46ff..d66b8e2 100644
--- a/test/tint/expressions/type_ctor/mat3x2/inferred/vectors/abstract-float.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/expressions/type_ctor/mat3x2/inferred/vectors/abstract-float.wgsl.expected.ir.dxc.hlsl
@@ -1,12 +1,13 @@
-SKIP: FAILED
+
+RWByteAddressBuffer tint_symbol : register(u0);
+void v(uint offset, float3x2 obj) {
+  tint_symbol.Store2((offset + 0u), asuint(obj[0u]));
+  tint_symbol.Store2((offset + 8u), asuint(obj[1u]));
+  tint_symbol.Store2((offset + 16u), asuint(obj[2u]));
+}
 
 [numthreads(1, 1, 1)]
 void f() {
-  tint_symbol = float3x2(float2(0.0f, 1.0f), float2(2.0f, 3.0f), float2(4.0f, 5.0f));
+  v(0u, float3x2(float2(0.0f, 1.0f), float2(2.0f, 3.0f), float2(4.0f, 5.0f)));
 }
 
-DXC validation failure:
-hlsl.hlsl:3:3: error: use of undeclared identifier 'tint_symbol'
-  tint_symbol = float3x2(float2(0.0f, 1.0f), float2(2.0f, 3.0f), float2(4.0f, 5.0f));
-  ^
-
diff --git a/test/tint/expressions/type_ctor/mat3x2/inferred/vectors/abstract-float.wgsl.expected.ir.fxc.hlsl b/test/tint/expressions/type_ctor/mat3x2/inferred/vectors/abstract-float.wgsl.expected.ir.fxc.hlsl
index a9b2a77..d66b8e2 100644
--- a/test/tint/expressions/type_ctor/mat3x2/inferred/vectors/abstract-float.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/expressions/type_ctor/mat3x2/inferred/vectors/abstract-float.wgsl.expected.ir.fxc.hlsl
@@ -1,7 +1,13 @@
-SKIP: FAILED
+
+RWByteAddressBuffer tint_symbol : register(u0);
+void v(uint offset, float3x2 obj) {
+  tint_symbol.Store2((offset + 0u), asuint(obj[0u]));
+  tint_symbol.Store2((offset + 8u), asuint(obj[1u]));
+  tint_symbol.Store2((offset + 16u), asuint(obj[2u]));
+}
 
 [numthreads(1, 1, 1)]
 void f() {
-  tint_symbol = float3x2(float2(0.0f, 1.0f), float2(2.0f, 3.0f), float2(4.0f, 5.0f));
+  v(0u, float3x2(float2(0.0f, 1.0f), float2(2.0f, 3.0f), float2(4.0f, 5.0f)));
 }
 
diff --git a/test/tint/expressions/type_ctor/mat3x2/inferred/vectors/f16.wgsl.expected.ir.dxc.hlsl b/test/tint/expressions/type_ctor/mat3x2/inferred/vectors/f16.wgsl.expected.ir.dxc.hlsl
index 1616cea..1bc891c 100644
--- a/test/tint/expressions/type_ctor/mat3x2/inferred/vectors/f16.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/expressions/type_ctor/mat3x2/inferred/vectors/f16.wgsl.expected.ir.dxc.hlsl
@@ -1,15 +1,14 @@
-SKIP: FAILED
+
+static matrix<float16_t, 3, 2> m = matrix<float16_t, 3, 2>(vector<float16_t, 2>(float16_t(0.0h), float16_t(1.0h)), vector<float16_t, 2>(float16_t(2.0h), float16_t(3.0h)), vector<float16_t, 2>(float16_t(4.0h), float16_t(5.0h)));
+RWByteAddressBuffer tint_symbol : register(u0);
+void v(uint offset, matrix<float16_t, 3, 2> obj) {
+  tint_symbol.Store<vector<float16_t, 2> >((offset + 0u), obj[0u]);
+  tint_symbol.Store<vector<float16_t, 2> >((offset + 4u), obj[1u]);
+  tint_symbol.Store<vector<float16_t, 2> >((offset + 8u), obj[2u]);
+}
 
 [numthreads(1, 1, 1)]
 void f() {
-  tint_symbol = m;
+  v(0u, m);
 }
 
-DXC validation failure:
-hlsl.hlsl:3:3: error: use of undeclared identifier 'tint_symbol'
-  tint_symbol = m;
-  ^
-hlsl.hlsl:3:17: error: use of undeclared identifier 'm'
-  tint_symbol = m;
-                ^
-
diff --git a/test/tint/expressions/type_ctor/mat3x2/inferred/vectors/f16.wgsl.expected.ir.fxc.hlsl b/test/tint/expressions/type_ctor/mat3x2/inferred/vectors/f16.wgsl.expected.ir.fxc.hlsl
index 08b893f..ac1a7f5 100644
--- a/test/tint/expressions/type_ctor/mat3x2/inferred/vectors/f16.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/expressions/type_ctor/mat3x2/inferred/vectors/f16.wgsl.expected.ir.fxc.hlsl
@@ -1,7 +1,19 @@
 SKIP: FAILED
 
+
+static matrix<float16_t, 3, 2> m = matrix<float16_t, 3, 2>(vector<float16_t, 2>(float16_t(0.0h), float16_t(1.0h)), vector<float16_t, 2>(float16_t(2.0h), float16_t(3.0h)), vector<float16_t, 2>(float16_t(4.0h), float16_t(5.0h)));
+RWByteAddressBuffer tint_symbol : register(u0);
+void v(uint offset, matrix<float16_t, 3, 2> obj) {
+  tint_symbol.Store<vector<float16_t, 2> >((offset + 0u), obj[0u]);
+  tint_symbol.Store<vector<float16_t, 2> >((offset + 4u), obj[1u]);
+  tint_symbol.Store<vector<float16_t, 2> >((offset + 8u), obj[2u]);
+}
+
 [numthreads(1, 1, 1)]
 void f() {
-  tint_symbol = m;
+  v(0u, m);
 }
 
+FXC validation failure:
+c:\src\dawn\Shader@0x000001C3D68FD460(2,15-23): error X3000: syntax error: unexpected token 'float16_t'
+
diff --git a/test/tint/expressions/type_ctor/mat3x2/inferred/vectors/f32.wgsl.expected.ir.dxc.hlsl b/test/tint/expressions/type_ctor/mat3x2/inferred/vectors/f32.wgsl.expected.ir.dxc.hlsl
index 1616cea..6fd664e 100644
--- a/test/tint/expressions/type_ctor/mat3x2/inferred/vectors/f32.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/expressions/type_ctor/mat3x2/inferred/vectors/f32.wgsl.expected.ir.dxc.hlsl
@@ -1,15 +1,14 @@
-SKIP: FAILED
+
+static float3x2 m = float3x2(float2(0.0f, 1.0f), float2(2.0f, 3.0f), float2(4.0f, 5.0f));
+RWByteAddressBuffer tint_symbol : register(u0);
+void v(uint offset, float3x2 obj) {
+  tint_symbol.Store2((offset + 0u), asuint(obj[0u]));
+  tint_symbol.Store2((offset + 8u), asuint(obj[1u]));
+  tint_symbol.Store2((offset + 16u), asuint(obj[2u]));
+}
 
 [numthreads(1, 1, 1)]
 void f() {
-  tint_symbol = m;
+  v(0u, m);
 }
 
-DXC validation failure:
-hlsl.hlsl:3:3: error: use of undeclared identifier 'tint_symbol'
-  tint_symbol = m;
-  ^
-hlsl.hlsl:3:17: error: use of undeclared identifier 'm'
-  tint_symbol = m;
-                ^
-
diff --git a/test/tint/expressions/type_ctor/mat3x2/inferred/vectors/f32.wgsl.expected.ir.fxc.hlsl b/test/tint/expressions/type_ctor/mat3x2/inferred/vectors/f32.wgsl.expected.ir.fxc.hlsl
index 08b893f..6fd664e 100644
--- a/test/tint/expressions/type_ctor/mat3x2/inferred/vectors/f32.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/expressions/type_ctor/mat3x2/inferred/vectors/f32.wgsl.expected.ir.fxc.hlsl
@@ -1,7 +1,14 @@
-SKIP: FAILED
+
+static float3x2 m = float3x2(float2(0.0f, 1.0f), float2(2.0f, 3.0f), float2(4.0f, 5.0f));
+RWByteAddressBuffer tint_symbol : register(u0);
+void v(uint offset, float3x2 obj) {
+  tint_symbol.Store2((offset + 0u), asuint(obj[0u]));
+  tint_symbol.Store2((offset + 8u), asuint(obj[1u]));
+  tint_symbol.Store2((offset + 16u), asuint(obj[2u]));
+}
 
 [numthreads(1, 1, 1)]
 void f() {
-  tint_symbol = m;
+  v(0u, m);
 }
 
diff --git a/test/tint/expressions/type_ctor/mat3x2/load/f16.wgsl.expected.ir.dxc.hlsl b/test/tint/expressions/type_ctor/mat3x2/load/f16.wgsl.expected.ir.dxc.hlsl
index c6e1d96..e2fb641 100644
--- a/test/tint/expressions/type_ctor/mat3x2/load/f16.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/expressions/type_ctor/mat3x2/load/f16.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,14 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Construct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWByteAddressBuffer tint_symbol : register(u0);
+void v(uint offset, matrix<float16_t, 3, 2> obj) {
+  tint_symbol.Store<vector<float16_t, 2> >((offset + 0u), obj[0u]);
+  tint_symbol.Store<vector<float16_t, 2> >((offset + 4u), obj[1u]);
+  tint_symbol.Store<vector<float16_t, 2> >((offset + 8u), obj[2u]);
+}
+
+[numthreads(1, 1, 1)]
+void f() {
+  matrix<float16_t, 3, 2> m = matrix<float16_t, 3, 2>((float16_t(0.0h)).xx, (float16_t(0.0h)).xx, (float16_t(0.0h)).xx);
+  v(0u, matrix<float16_t, 3, 2>(m));
+}
+
diff --git a/test/tint/expressions/type_ctor/mat3x2/load/f16.wgsl.expected.ir.fxc.hlsl b/test/tint/expressions/type_ctor/mat3x2/load/f16.wgsl.expected.ir.fxc.hlsl
index c6e1d96..4b4bd0b 100644
--- a/test/tint/expressions/type_ctor/mat3x2/load/f16.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/expressions/type_ctor/mat3x2/load/f16.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,20 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Construct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+
+RWByteAddressBuffer tint_symbol : register(u0);
+void v(uint offset, matrix<float16_t, 3, 2> obj) {
+  tint_symbol.Store<vector<float16_t, 2> >((offset + 0u), obj[0u]);
+  tint_symbol.Store<vector<float16_t, 2> >((offset + 4u), obj[1u]);
+  tint_symbol.Store<vector<float16_t, 2> >((offset + 8u), obj[2u]);
+}
+
+[numthreads(1, 1, 1)]
+void f() {
+  matrix<float16_t, 3, 2> m = matrix<float16_t, 3, 2>((float16_t(0.0h)).xx, (float16_t(0.0h)).xx, (float16_t(0.0h)).xx);
+  v(0u, matrix<float16_t, 3, 2>(m));
+}
+
+FXC validation failure:
+c:\src\dawn\Shader@0x0000020800D36E00(3,28-36): error X3000: syntax error: unexpected token 'float16_t'
+c:\src\dawn\Shader@0x0000020800D36E00(4,3-19): error X3018: invalid subscript 'Store'
+
diff --git a/test/tint/expressions/type_ctor/mat3x2/load/f32.wgsl.expected.ir.dxc.hlsl b/test/tint/expressions/type_ctor/mat3x2/load/f32.wgsl.expected.ir.dxc.hlsl
index c6e1d96..348817e 100644
--- a/test/tint/expressions/type_ctor/mat3x2/load/f32.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/expressions/type_ctor/mat3x2/load/f32.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,14 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Construct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWByteAddressBuffer tint_symbol : register(u0);
+void v(uint offset, float3x2 obj) {
+  tint_symbol.Store2((offset + 0u), asuint(obj[0u]));
+  tint_symbol.Store2((offset + 8u), asuint(obj[1u]));
+  tint_symbol.Store2((offset + 16u), asuint(obj[2u]));
+}
+
+[numthreads(1, 1, 1)]
+void f() {
+  float3x2 m = float3x2((0.0f).xx, (0.0f).xx, (0.0f).xx);
+  v(0u, float3x2(m));
+}
+
diff --git a/test/tint/expressions/type_ctor/mat3x2/load/f32.wgsl.expected.ir.fxc.hlsl b/test/tint/expressions/type_ctor/mat3x2/load/f32.wgsl.expected.ir.fxc.hlsl
index c6e1d96..348817e 100644
--- a/test/tint/expressions/type_ctor/mat3x2/load/f32.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/expressions/type_ctor/mat3x2/load/f32.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,14 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Construct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWByteAddressBuffer tint_symbol : register(u0);
+void v(uint offset, float3x2 obj) {
+  tint_symbol.Store2((offset + 0u), asuint(obj[0u]));
+  tint_symbol.Store2((offset + 8u), asuint(obj[1u]));
+  tint_symbol.Store2((offset + 16u), asuint(obj[2u]));
+}
+
+[numthreads(1, 1, 1)]
+void f() {
+  float3x2 m = float3x2((0.0f).xx, (0.0f).xx, (0.0f).xx);
+  v(0u, float3x2(m));
+}
+
diff --git a/test/tint/expressions/type_ctor/mat3x2/zero/f16.wgsl.expected.ir.dxc.hlsl b/test/tint/expressions/type_ctor/mat3x2/zero/f16.wgsl.expected.ir.dxc.hlsl
index 1616cea..47cebe4 100644
--- a/test/tint/expressions/type_ctor/mat3x2/zero/f16.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/expressions/type_ctor/mat3x2/zero/f16.wgsl.expected.ir.dxc.hlsl
@@ -1,15 +1,14 @@
-SKIP: FAILED
+
+static matrix<float16_t, 3, 2> m = matrix<float16_t, 3, 2>((float16_t(0.0h)).xx, (float16_t(0.0h)).xx, (float16_t(0.0h)).xx);
+RWByteAddressBuffer tint_symbol : register(u0);
+void v(uint offset, matrix<float16_t, 3, 2> obj) {
+  tint_symbol.Store<vector<float16_t, 2> >((offset + 0u), obj[0u]);
+  tint_symbol.Store<vector<float16_t, 2> >((offset + 4u), obj[1u]);
+  tint_symbol.Store<vector<float16_t, 2> >((offset + 8u), obj[2u]);
+}
 
 [numthreads(1, 1, 1)]
 void f() {
-  tint_symbol = m;
+  v(0u, m);
 }
 
-DXC validation failure:
-hlsl.hlsl:3:3: error: use of undeclared identifier 'tint_symbol'
-  tint_symbol = m;
-  ^
-hlsl.hlsl:3:17: error: use of undeclared identifier 'm'
-  tint_symbol = m;
-                ^
-
diff --git a/test/tint/expressions/type_ctor/mat3x2/zero/f16.wgsl.expected.ir.fxc.hlsl b/test/tint/expressions/type_ctor/mat3x2/zero/f16.wgsl.expected.ir.fxc.hlsl
index 08b893f..768ddb6 100644
--- a/test/tint/expressions/type_ctor/mat3x2/zero/f16.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/expressions/type_ctor/mat3x2/zero/f16.wgsl.expected.ir.fxc.hlsl
@@ -1,7 +1,19 @@
 SKIP: FAILED
 
+
+static matrix<float16_t, 3, 2> m = matrix<float16_t, 3, 2>((float16_t(0.0h)).xx, (float16_t(0.0h)).xx, (float16_t(0.0h)).xx);
+RWByteAddressBuffer tint_symbol : register(u0);
+void v(uint offset, matrix<float16_t, 3, 2> obj) {
+  tint_symbol.Store<vector<float16_t, 2> >((offset + 0u), obj[0u]);
+  tint_symbol.Store<vector<float16_t, 2> >((offset + 4u), obj[1u]);
+  tint_symbol.Store<vector<float16_t, 2> >((offset + 8u), obj[2u]);
+}
+
 [numthreads(1, 1, 1)]
 void f() {
-  tint_symbol = m;
+  v(0u, m);
 }
 
+FXC validation failure:
+c:\src\dawn\Shader@0x0000026034764A40(2,15-23): error X3000: syntax error: unexpected token 'float16_t'
+
diff --git a/test/tint/expressions/type_ctor/mat3x2/zero/f32.wgsl.expected.ir.dxc.hlsl b/test/tint/expressions/type_ctor/mat3x2/zero/f32.wgsl.expected.ir.dxc.hlsl
index 1616cea..71fccbb 100644
--- a/test/tint/expressions/type_ctor/mat3x2/zero/f32.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/expressions/type_ctor/mat3x2/zero/f32.wgsl.expected.ir.dxc.hlsl
@@ -1,15 +1,14 @@
-SKIP: FAILED
+
+static float3x2 m = float3x2((0.0f).xx, (0.0f).xx, (0.0f).xx);
+RWByteAddressBuffer tint_symbol : register(u0);
+void v(uint offset, float3x2 obj) {
+  tint_symbol.Store2((offset + 0u), asuint(obj[0u]));
+  tint_symbol.Store2((offset + 8u), asuint(obj[1u]));
+  tint_symbol.Store2((offset + 16u), asuint(obj[2u]));
+}
 
 [numthreads(1, 1, 1)]
 void f() {
-  tint_symbol = m;
+  v(0u, m);
 }
 
-DXC validation failure:
-hlsl.hlsl:3:3: error: use of undeclared identifier 'tint_symbol'
-  tint_symbol = m;
-  ^
-hlsl.hlsl:3:17: error: use of undeclared identifier 'm'
-  tint_symbol = m;
-                ^
-
diff --git a/test/tint/expressions/type_ctor/mat3x2/zero/f32.wgsl.expected.ir.fxc.hlsl b/test/tint/expressions/type_ctor/mat3x2/zero/f32.wgsl.expected.ir.fxc.hlsl
index 08b893f..71fccbb 100644
--- a/test/tint/expressions/type_ctor/mat3x2/zero/f32.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/expressions/type_ctor/mat3x2/zero/f32.wgsl.expected.ir.fxc.hlsl
@@ -1,7 +1,14 @@
-SKIP: FAILED
+
+static float3x2 m = float3x2((0.0f).xx, (0.0f).xx, (0.0f).xx);
+RWByteAddressBuffer tint_symbol : register(u0);
+void v(uint offset, float3x2 obj) {
+  tint_symbol.Store2((offset + 0u), asuint(obj[0u]));
+  tint_symbol.Store2((offset + 8u), asuint(obj[1u]));
+  tint_symbol.Store2((offset + 16u), asuint(obj[2u]));
+}
 
 [numthreads(1, 1, 1)]
 void f() {
-  tint_symbol = m;
+  v(0u, m);
 }
 
diff --git a/test/tint/expressions/type_ctor/mat3x3/explicit/identity/f16.wgsl.expected.ir.dxc.hlsl b/test/tint/expressions/type_ctor/mat3x3/explicit/identity/f16.wgsl.expected.ir.dxc.hlsl
index c6e1d96..43b3f32 100644
--- a/test/tint/expressions/type_ctor/mat3x3/explicit/identity/f16.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/expressions/type_ctor/mat3x3/explicit/identity/f16.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,14 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Construct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+static matrix<float16_t, 3, 3> m = matrix<float16_t, 3, 3>(vector<float16_t, 3>(float16_t(0.0h), float16_t(1.0h), float16_t(2.0h)), vector<float16_t, 3>(float16_t(3.0h), float16_t(4.0h), float16_t(5.0h)), vector<float16_t, 3>(float16_t(6.0h), float16_t(7.0h), float16_t(8.0h)));
+RWByteAddressBuffer tint_symbol : register(u0);
+void v(uint offset, matrix<float16_t, 3, 3> obj) {
+  tint_symbol.Store<vector<float16_t, 3> >((offset + 0u), obj[0u]);
+  tint_symbol.Store<vector<float16_t, 3> >((offset + 8u), obj[1u]);
+  tint_symbol.Store<vector<float16_t, 3> >((offset + 16u), obj[2u]);
+}
+
+[numthreads(1, 1, 1)]
+void f() {
+  v(0u, matrix<float16_t, 3, 3>(m));
+}
+
diff --git a/test/tint/expressions/type_ctor/mat3x3/explicit/identity/f16.wgsl.expected.ir.fxc.hlsl b/test/tint/expressions/type_ctor/mat3x3/explicit/identity/f16.wgsl.expected.ir.fxc.hlsl
index c6e1d96..55a2ac1 100644
--- a/test/tint/expressions/type_ctor/mat3x3/explicit/identity/f16.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/expressions/type_ctor/mat3x3/explicit/identity/f16.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,19 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Construct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+
+static matrix<float16_t, 3, 3> m = matrix<float16_t, 3, 3>(vector<float16_t, 3>(float16_t(0.0h), float16_t(1.0h), float16_t(2.0h)), vector<float16_t, 3>(float16_t(3.0h), float16_t(4.0h), float16_t(5.0h)), vector<float16_t, 3>(float16_t(6.0h), float16_t(7.0h), float16_t(8.0h)));
+RWByteAddressBuffer tint_symbol : register(u0);
+void v(uint offset, matrix<float16_t, 3, 3> obj) {
+  tint_symbol.Store<vector<float16_t, 3> >((offset + 0u), obj[0u]);
+  tint_symbol.Store<vector<float16_t, 3> >((offset + 8u), obj[1u]);
+  tint_symbol.Store<vector<float16_t, 3> >((offset + 16u), obj[2u]);
+}
+
+[numthreads(1, 1, 1)]
+void f() {
+  v(0u, matrix<float16_t, 3, 3>(m));
+}
+
+FXC validation failure:
+c:\src\dawn\Shader@0x00000233461017F0(2,15-23): error X3000: syntax error: unexpected token 'float16_t'
+
diff --git a/test/tint/expressions/type_ctor/mat3x3/explicit/identity/f32.wgsl.expected.ir.dxc.hlsl b/test/tint/expressions/type_ctor/mat3x3/explicit/identity/f32.wgsl.expected.ir.dxc.hlsl
index c6e1d96..ca137cc 100644
--- a/test/tint/expressions/type_ctor/mat3x3/explicit/identity/f32.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/expressions/type_ctor/mat3x3/explicit/identity/f32.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,14 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Construct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+static float3x3 m = float3x3(float3(0.0f, 1.0f, 2.0f), float3(3.0f, 4.0f, 5.0f), float3(6.0f, 7.0f, 8.0f));
+RWByteAddressBuffer tint_symbol : register(u0);
+void v(uint offset, float3x3 obj) {
+  tint_symbol.Store3((offset + 0u), asuint(obj[0u]));
+  tint_symbol.Store3((offset + 16u), asuint(obj[1u]));
+  tint_symbol.Store3((offset + 32u), asuint(obj[2u]));
+}
+
+[numthreads(1, 1, 1)]
+void f() {
+  v(0u, float3x3(m));
+}
+
diff --git a/test/tint/expressions/type_ctor/mat3x3/explicit/identity/f32.wgsl.expected.ir.fxc.hlsl b/test/tint/expressions/type_ctor/mat3x3/explicit/identity/f32.wgsl.expected.ir.fxc.hlsl
index c6e1d96..ca137cc 100644
--- a/test/tint/expressions/type_ctor/mat3x3/explicit/identity/f32.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/expressions/type_ctor/mat3x3/explicit/identity/f32.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,14 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Construct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+static float3x3 m = float3x3(float3(0.0f, 1.0f, 2.0f), float3(3.0f, 4.0f, 5.0f), float3(6.0f, 7.0f, 8.0f));
+RWByteAddressBuffer tint_symbol : register(u0);
+void v(uint offset, float3x3 obj) {
+  tint_symbol.Store3((offset + 0u), asuint(obj[0u]));
+  tint_symbol.Store3((offset + 16u), asuint(obj[1u]));
+  tint_symbol.Store3((offset + 32u), asuint(obj[2u]));
+}
+
+[numthreads(1, 1, 1)]
+void f() {
+  v(0u, float3x3(m));
+}
+
diff --git a/test/tint/expressions/type_ctor/mat3x3/explicit/scalars/f16.wgsl.expected.ir.dxc.hlsl b/test/tint/expressions/type_ctor/mat3x3/explicit/scalars/f16.wgsl.expected.ir.dxc.hlsl
index 1616cea..d7fb7a7 100644
--- a/test/tint/expressions/type_ctor/mat3x3/explicit/scalars/f16.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/expressions/type_ctor/mat3x3/explicit/scalars/f16.wgsl.expected.ir.dxc.hlsl
@@ -1,15 +1,14 @@
-SKIP: FAILED
+
+static matrix<float16_t, 3, 3> m = matrix<float16_t, 3, 3>(vector<float16_t, 3>(float16_t(0.0h), float16_t(1.0h), float16_t(2.0h)), vector<float16_t, 3>(float16_t(3.0h), float16_t(4.0h), float16_t(5.0h)), vector<float16_t, 3>(float16_t(6.0h), float16_t(7.0h), float16_t(8.0h)));
+RWByteAddressBuffer tint_symbol : register(u0);
+void v(uint offset, matrix<float16_t, 3, 3> obj) {
+  tint_symbol.Store<vector<float16_t, 3> >((offset + 0u), obj[0u]);
+  tint_symbol.Store<vector<float16_t, 3> >((offset + 8u), obj[1u]);
+  tint_symbol.Store<vector<float16_t, 3> >((offset + 16u), obj[2u]);
+}
 
 [numthreads(1, 1, 1)]
 void f() {
-  tint_symbol = m;
+  v(0u, m);
 }
 
-DXC validation failure:
-hlsl.hlsl:3:3: error: use of undeclared identifier 'tint_symbol'
-  tint_symbol = m;
-  ^
-hlsl.hlsl:3:17: error: use of undeclared identifier 'm'
-  tint_symbol = m;
-                ^
-
diff --git a/test/tint/expressions/type_ctor/mat3x3/explicit/scalars/f16.wgsl.expected.ir.fxc.hlsl b/test/tint/expressions/type_ctor/mat3x3/explicit/scalars/f16.wgsl.expected.ir.fxc.hlsl
index 08b893f..dc80eaa 100644
--- a/test/tint/expressions/type_ctor/mat3x3/explicit/scalars/f16.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/expressions/type_ctor/mat3x3/explicit/scalars/f16.wgsl.expected.ir.fxc.hlsl
@@ -1,7 +1,19 @@
 SKIP: FAILED
 
+
+static matrix<float16_t, 3, 3> m = matrix<float16_t, 3, 3>(vector<float16_t, 3>(float16_t(0.0h), float16_t(1.0h), float16_t(2.0h)), vector<float16_t, 3>(float16_t(3.0h), float16_t(4.0h), float16_t(5.0h)), vector<float16_t, 3>(float16_t(6.0h), float16_t(7.0h), float16_t(8.0h)));
+RWByteAddressBuffer tint_symbol : register(u0);
+void v(uint offset, matrix<float16_t, 3, 3> obj) {
+  tint_symbol.Store<vector<float16_t, 3> >((offset + 0u), obj[0u]);
+  tint_symbol.Store<vector<float16_t, 3> >((offset + 8u), obj[1u]);
+  tint_symbol.Store<vector<float16_t, 3> >((offset + 16u), obj[2u]);
+}
+
 [numthreads(1, 1, 1)]
 void f() {
-  tint_symbol = m;
+  v(0u, m);
 }
 
+FXC validation failure:
+c:\src\dawn\Shader@0x000001816A423BF0(2,15-23): error X3000: syntax error: unexpected token 'float16_t'
+
diff --git a/test/tint/expressions/type_ctor/mat3x3/explicit/scalars/f32.wgsl.expected.ir.dxc.hlsl b/test/tint/expressions/type_ctor/mat3x3/explicit/scalars/f32.wgsl.expected.ir.dxc.hlsl
index 1616cea..83b3fc7 100644
--- a/test/tint/expressions/type_ctor/mat3x3/explicit/scalars/f32.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/expressions/type_ctor/mat3x3/explicit/scalars/f32.wgsl.expected.ir.dxc.hlsl
@@ -1,15 +1,14 @@
-SKIP: FAILED
+
+static float3x3 m = float3x3(float3(0.0f, 1.0f, 2.0f), float3(3.0f, 4.0f, 5.0f), float3(6.0f, 7.0f, 8.0f));
+RWByteAddressBuffer tint_symbol : register(u0);
+void v(uint offset, float3x3 obj) {
+  tint_symbol.Store3((offset + 0u), asuint(obj[0u]));
+  tint_symbol.Store3((offset + 16u), asuint(obj[1u]));
+  tint_symbol.Store3((offset + 32u), asuint(obj[2u]));
+}
 
 [numthreads(1, 1, 1)]
 void f() {
-  tint_symbol = m;
+  v(0u, m);
 }
 
-DXC validation failure:
-hlsl.hlsl:3:3: error: use of undeclared identifier 'tint_symbol'
-  tint_symbol = m;
-  ^
-hlsl.hlsl:3:17: error: use of undeclared identifier 'm'
-  tint_symbol = m;
-                ^
-
diff --git a/test/tint/expressions/type_ctor/mat3x3/explicit/scalars/f32.wgsl.expected.ir.fxc.hlsl b/test/tint/expressions/type_ctor/mat3x3/explicit/scalars/f32.wgsl.expected.ir.fxc.hlsl
index 08b893f..83b3fc7 100644
--- a/test/tint/expressions/type_ctor/mat3x3/explicit/scalars/f32.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/expressions/type_ctor/mat3x3/explicit/scalars/f32.wgsl.expected.ir.fxc.hlsl
@@ -1,7 +1,14 @@
-SKIP: FAILED
+
+static float3x3 m = float3x3(float3(0.0f, 1.0f, 2.0f), float3(3.0f, 4.0f, 5.0f), float3(6.0f, 7.0f, 8.0f));
+RWByteAddressBuffer tint_symbol : register(u0);
+void v(uint offset, float3x3 obj) {
+  tint_symbol.Store3((offset + 0u), asuint(obj[0u]));
+  tint_symbol.Store3((offset + 16u), asuint(obj[1u]));
+  tint_symbol.Store3((offset + 32u), asuint(obj[2u]));
+}
 
 [numthreads(1, 1, 1)]
 void f() {
-  tint_symbol = m;
+  v(0u, m);
 }
 
diff --git a/test/tint/expressions/type_ctor/mat3x3/explicit/vectors/f16.wgsl.expected.ir.dxc.hlsl b/test/tint/expressions/type_ctor/mat3x3/explicit/vectors/f16.wgsl.expected.ir.dxc.hlsl
index 1616cea..d7fb7a7 100644
--- a/test/tint/expressions/type_ctor/mat3x3/explicit/vectors/f16.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/expressions/type_ctor/mat3x3/explicit/vectors/f16.wgsl.expected.ir.dxc.hlsl
@@ -1,15 +1,14 @@
-SKIP: FAILED
+
+static matrix<float16_t, 3, 3> m = matrix<float16_t, 3, 3>(vector<float16_t, 3>(float16_t(0.0h), float16_t(1.0h), float16_t(2.0h)), vector<float16_t, 3>(float16_t(3.0h), float16_t(4.0h), float16_t(5.0h)), vector<float16_t, 3>(float16_t(6.0h), float16_t(7.0h), float16_t(8.0h)));
+RWByteAddressBuffer tint_symbol : register(u0);
+void v(uint offset, matrix<float16_t, 3, 3> obj) {
+  tint_symbol.Store<vector<float16_t, 3> >((offset + 0u), obj[0u]);
+  tint_symbol.Store<vector<float16_t, 3> >((offset + 8u), obj[1u]);
+  tint_symbol.Store<vector<float16_t, 3> >((offset + 16u), obj[2u]);
+}
 
 [numthreads(1, 1, 1)]
 void f() {
-  tint_symbol = m;
+  v(0u, m);
 }
 
-DXC validation failure:
-hlsl.hlsl:3:3: error: use of undeclared identifier 'tint_symbol'
-  tint_symbol = m;
-  ^
-hlsl.hlsl:3:17: error: use of undeclared identifier 'm'
-  tint_symbol = m;
-                ^
-
diff --git a/test/tint/expressions/type_ctor/mat3x3/explicit/vectors/f16.wgsl.expected.ir.fxc.hlsl b/test/tint/expressions/type_ctor/mat3x3/explicit/vectors/f16.wgsl.expected.ir.fxc.hlsl
index 08b893f..ede871c 100644
--- a/test/tint/expressions/type_ctor/mat3x3/explicit/vectors/f16.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/expressions/type_ctor/mat3x3/explicit/vectors/f16.wgsl.expected.ir.fxc.hlsl
@@ -1,7 +1,19 @@
 SKIP: FAILED
 
+
+static matrix<float16_t, 3, 3> m = matrix<float16_t, 3, 3>(vector<float16_t, 3>(float16_t(0.0h), float16_t(1.0h), float16_t(2.0h)), vector<float16_t, 3>(float16_t(3.0h), float16_t(4.0h), float16_t(5.0h)), vector<float16_t, 3>(float16_t(6.0h), float16_t(7.0h), float16_t(8.0h)));
+RWByteAddressBuffer tint_symbol : register(u0);
+void v(uint offset, matrix<float16_t, 3, 3> obj) {
+  tint_symbol.Store<vector<float16_t, 3> >((offset + 0u), obj[0u]);
+  tint_symbol.Store<vector<float16_t, 3> >((offset + 8u), obj[1u]);
+  tint_symbol.Store<vector<float16_t, 3> >((offset + 16u), obj[2u]);
+}
+
 [numthreads(1, 1, 1)]
 void f() {
-  tint_symbol = m;
+  v(0u, m);
 }
 
+FXC validation failure:
+c:\src\dawn\Shader@0x0000016D7037E2B0(2,15-23): error X3000: syntax error: unexpected token 'float16_t'
+
diff --git a/test/tint/expressions/type_ctor/mat3x3/explicit/vectors/f32.wgsl.expected.ir.dxc.hlsl b/test/tint/expressions/type_ctor/mat3x3/explicit/vectors/f32.wgsl.expected.ir.dxc.hlsl
index 1616cea..83b3fc7 100644
--- a/test/tint/expressions/type_ctor/mat3x3/explicit/vectors/f32.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/expressions/type_ctor/mat3x3/explicit/vectors/f32.wgsl.expected.ir.dxc.hlsl
@@ -1,15 +1,14 @@
-SKIP: FAILED
+
+static float3x3 m = float3x3(float3(0.0f, 1.0f, 2.0f), float3(3.0f, 4.0f, 5.0f), float3(6.0f, 7.0f, 8.0f));
+RWByteAddressBuffer tint_symbol : register(u0);
+void v(uint offset, float3x3 obj) {
+  tint_symbol.Store3((offset + 0u), asuint(obj[0u]));
+  tint_symbol.Store3((offset + 16u), asuint(obj[1u]));
+  tint_symbol.Store3((offset + 32u), asuint(obj[2u]));
+}
 
 [numthreads(1, 1, 1)]
 void f() {
-  tint_symbol = m;
+  v(0u, m);
 }
 
-DXC validation failure:
-hlsl.hlsl:3:3: error: use of undeclared identifier 'tint_symbol'
-  tint_symbol = m;
-  ^
-hlsl.hlsl:3:17: error: use of undeclared identifier 'm'
-  tint_symbol = m;
-                ^
-
diff --git a/test/tint/expressions/type_ctor/mat3x3/explicit/vectors/f32.wgsl.expected.ir.fxc.hlsl b/test/tint/expressions/type_ctor/mat3x3/explicit/vectors/f32.wgsl.expected.ir.fxc.hlsl
index 08b893f..83b3fc7 100644
--- a/test/tint/expressions/type_ctor/mat3x3/explicit/vectors/f32.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/expressions/type_ctor/mat3x3/explicit/vectors/f32.wgsl.expected.ir.fxc.hlsl
@@ -1,7 +1,14 @@
-SKIP: FAILED
+
+static float3x3 m = float3x3(float3(0.0f, 1.0f, 2.0f), float3(3.0f, 4.0f, 5.0f), float3(6.0f, 7.0f, 8.0f));
+RWByteAddressBuffer tint_symbol : register(u0);
+void v(uint offset, float3x3 obj) {
+  tint_symbol.Store3((offset + 0u), asuint(obj[0u]));
+  tint_symbol.Store3((offset + 16u), asuint(obj[1u]));
+  tint_symbol.Store3((offset + 32u), asuint(obj[2u]));
+}
 
 [numthreads(1, 1, 1)]
 void f() {
-  tint_symbol = m;
+  v(0u, m);
 }
 
diff --git a/test/tint/expressions/type_ctor/mat3x3/inferred/identity/f16.wgsl.expected.ir.dxc.hlsl b/test/tint/expressions/type_ctor/mat3x3/inferred/identity/f16.wgsl.expected.ir.dxc.hlsl
index c6e1d96..43b3f32 100644
--- a/test/tint/expressions/type_ctor/mat3x3/inferred/identity/f16.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/expressions/type_ctor/mat3x3/inferred/identity/f16.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,14 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Construct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+static matrix<float16_t, 3, 3> m = matrix<float16_t, 3, 3>(vector<float16_t, 3>(float16_t(0.0h), float16_t(1.0h), float16_t(2.0h)), vector<float16_t, 3>(float16_t(3.0h), float16_t(4.0h), float16_t(5.0h)), vector<float16_t, 3>(float16_t(6.0h), float16_t(7.0h), float16_t(8.0h)));
+RWByteAddressBuffer tint_symbol : register(u0);
+void v(uint offset, matrix<float16_t, 3, 3> obj) {
+  tint_symbol.Store<vector<float16_t, 3> >((offset + 0u), obj[0u]);
+  tint_symbol.Store<vector<float16_t, 3> >((offset + 8u), obj[1u]);
+  tint_symbol.Store<vector<float16_t, 3> >((offset + 16u), obj[2u]);
+}
+
+[numthreads(1, 1, 1)]
+void f() {
+  v(0u, matrix<float16_t, 3, 3>(m));
+}
+
diff --git a/test/tint/expressions/type_ctor/mat3x3/inferred/identity/f16.wgsl.expected.ir.fxc.hlsl b/test/tint/expressions/type_ctor/mat3x3/inferred/identity/f16.wgsl.expected.ir.fxc.hlsl
index c6e1d96..487e426 100644
--- a/test/tint/expressions/type_ctor/mat3x3/inferred/identity/f16.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/expressions/type_ctor/mat3x3/inferred/identity/f16.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,19 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Construct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+
+static matrix<float16_t, 3, 3> m = matrix<float16_t, 3, 3>(vector<float16_t, 3>(float16_t(0.0h), float16_t(1.0h), float16_t(2.0h)), vector<float16_t, 3>(float16_t(3.0h), float16_t(4.0h), float16_t(5.0h)), vector<float16_t, 3>(float16_t(6.0h), float16_t(7.0h), float16_t(8.0h)));
+RWByteAddressBuffer tint_symbol : register(u0);
+void v(uint offset, matrix<float16_t, 3, 3> obj) {
+  tint_symbol.Store<vector<float16_t, 3> >((offset + 0u), obj[0u]);
+  tint_symbol.Store<vector<float16_t, 3> >((offset + 8u), obj[1u]);
+  tint_symbol.Store<vector<float16_t, 3> >((offset + 16u), obj[2u]);
+}
+
+[numthreads(1, 1, 1)]
+void f() {
+  v(0u, matrix<float16_t, 3, 3>(m));
+}
+
+FXC validation failure:
+c:\src\dawn\Shader@0x000001CA111C10B0(2,15-23): error X3000: syntax error: unexpected token 'float16_t'
+
diff --git a/test/tint/expressions/type_ctor/mat3x3/inferred/identity/f32.wgsl.expected.ir.dxc.hlsl b/test/tint/expressions/type_ctor/mat3x3/inferred/identity/f32.wgsl.expected.ir.dxc.hlsl
index c6e1d96..ca137cc 100644
--- a/test/tint/expressions/type_ctor/mat3x3/inferred/identity/f32.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/expressions/type_ctor/mat3x3/inferred/identity/f32.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,14 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Construct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+static float3x3 m = float3x3(float3(0.0f, 1.0f, 2.0f), float3(3.0f, 4.0f, 5.0f), float3(6.0f, 7.0f, 8.0f));
+RWByteAddressBuffer tint_symbol : register(u0);
+void v(uint offset, float3x3 obj) {
+  tint_symbol.Store3((offset + 0u), asuint(obj[0u]));
+  tint_symbol.Store3((offset + 16u), asuint(obj[1u]));
+  tint_symbol.Store3((offset + 32u), asuint(obj[2u]));
+}
+
+[numthreads(1, 1, 1)]
+void f() {
+  v(0u, float3x3(m));
+}
+
diff --git a/test/tint/expressions/type_ctor/mat3x3/inferred/identity/f32.wgsl.expected.ir.fxc.hlsl b/test/tint/expressions/type_ctor/mat3x3/inferred/identity/f32.wgsl.expected.ir.fxc.hlsl
index c6e1d96..ca137cc 100644
--- a/test/tint/expressions/type_ctor/mat3x3/inferred/identity/f32.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/expressions/type_ctor/mat3x3/inferred/identity/f32.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,14 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Construct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+static float3x3 m = float3x3(float3(0.0f, 1.0f, 2.0f), float3(3.0f, 4.0f, 5.0f), float3(6.0f, 7.0f, 8.0f));
+RWByteAddressBuffer tint_symbol : register(u0);
+void v(uint offset, float3x3 obj) {
+  tint_symbol.Store3((offset + 0u), asuint(obj[0u]));
+  tint_symbol.Store3((offset + 16u), asuint(obj[1u]));
+  tint_symbol.Store3((offset + 32u), asuint(obj[2u]));
+}
+
+[numthreads(1, 1, 1)]
+void f() {
+  v(0u, float3x3(m));
+}
+
diff --git a/test/tint/expressions/type_ctor/mat3x3/inferred/scalars/abstract-float.wgsl.expected.ir.dxc.hlsl b/test/tint/expressions/type_ctor/mat3x3/inferred/scalars/abstract-float.wgsl.expected.ir.dxc.hlsl
index 54efbd6..22770c2 100644
--- a/test/tint/expressions/type_ctor/mat3x3/inferred/scalars/abstract-float.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/expressions/type_ctor/mat3x3/inferred/scalars/abstract-float.wgsl.expected.ir.dxc.hlsl
@@ -1,12 +1,13 @@
-SKIP: FAILED
+
+RWByteAddressBuffer tint_symbol : register(u0);
+void v(uint offset, float3x3 obj) {
+  tint_symbol.Store3((offset + 0u), asuint(obj[0u]));
+  tint_symbol.Store3((offset + 16u), asuint(obj[1u]));
+  tint_symbol.Store3((offset + 32u), asuint(obj[2u]));
+}
 
 [numthreads(1, 1, 1)]
 void f() {
-  tint_symbol = float3x3(float3(0.0f, 1.0f, 2.0f), float3(3.0f, 4.0f, 5.0f), float3(6.0f, 7.0f, 8.0f));
+  v(0u, float3x3(float3(0.0f, 1.0f, 2.0f), float3(3.0f, 4.0f, 5.0f), float3(6.0f, 7.0f, 8.0f)));
 }
 
-DXC validation failure:
-hlsl.hlsl:3:3: error: use of undeclared identifier 'tint_symbol'
-  tint_symbol = float3x3(float3(0.0f, 1.0f, 2.0f), float3(3.0f, 4.0f, 5.0f), float3(6.0f, 7.0f, 8.0f));
-  ^
-
diff --git a/test/tint/expressions/type_ctor/mat3x3/inferred/scalars/abstract-float.wgsl.expected.ir.fxc.hlsl b/test/tint/expressions/type_ctor/mat3x3/inferred/scalars/abstract-float.wgsl.expected.ir.fxc.hlsl
index fc65bb7..22770c2 100644
--- a/test/tint/expressions/type_ctor/mat3x3/inferred/scalars/abstract-float.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/expressions/type_ctor/mat3x3/inferred/scalars/abstract-float.wgsl.expected.ir.fxc.hlsl
@@ -1,7 +1,13 @@
-SKIP: FAILED
+
+RWByteAddressBuffer tint_symbol : register(u0);
+void v(uint offset, float3x3 obj) {
+  tint_symbol.Store3((offset + 0u), asuint(obj[0u]));
+  tint_symbol.Store3((offset + 16u), asuint(obj[1u]));
+  tint_symbol.Store3((offset + 32u), asuint(obj[2u]));
+}
 
 [numthreads(1, 1, 1)]
 void f() {
-  tint_symbol = float3x3(float3(0.0f, 1.0f, 2.0f), float3(3.0f, 4.0f, 5.0f), float3(6.0f, 7.0f, 8.0f));
+  v(0u, float3x3(float3(0.0f, 1.0f, 2.0f), float3(3.0f, 4.0f, 5.0f), float3(6.0f, 7.0f, 8.0f)));
 }
 
diff --git a/test/tint/expressions/type_ctor/mat3x3/inferred/scalars/f16.wgsl.expected.ir.dxc.hlsl b/test/tint/expressions/type_ctor/mat3x3/inferred/scalars/f16.wgsl.expected.ir.dxc.hlsl
index 1616cea..d7fb7a7 100644
--- a/test/tint/expressions/type_ctor/mat3x3/inferred/scalars/f16.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/expressions/type_ctor/mat3x3/inferred/scalars/f16.wgsl.expected.ir.dxc.hlsl
@@ -1,15 +1,14 @@
-SKIP: FAILED
+
+static matrix<float16_t, 3, 3> m = matrix<float16_t, 3, 3>(vector<float16_t, 3>(float16_t(0.0h), float16_t(1.0h), float16_t(2.0h)), vector<float16_t, 3>(float16_t(3.0h), float16_t(4.0h), float16_t(5.0h)), vector<float16_t, 3>(float16_t(6.0h), float16_t(7.0h), float16_t(8.0h)));
+RWByteAddressBuffer tint_symbol : register(u0);
+void v(uint offset, matrix<float16_t, 3, 3> obj) {
+  tint_symbol.Store<vector<float16_t, 3> >((offset + 0u), obj[0u]);
+  tint_symbol.Store<vector<float16_t, 3> >((offset + 8u), obj[1u]);
+  tint_symbol.Store<vector<float16_t, 3> >((offset + 16u), obj[2u]);
+}
 
 [numthreads(1, 1, 1)]
 void f() {
-  tint_symbol = m;
+  v(0u, m);
 }
 
-DXC validation failure:
-hlsl.hlsl:3:3: error: use of undeclared identifier 'tint_symbol'
-  tint_symbol = m;
-  ^
-hlsl.hlsl:3:17: error: use of undeclared identifier 'm'
-  tint_symbol = m;
-                ^
-
diff --git a/test/tint/expressions/type_ctor/mat3x3/inferred/scalars/f16.wgsl.expected.ir.fxc.hlsl b/test/tint/expressions/type_ctor/mat3x3/inferred/scalars/f16.wgsl.expected.ir.fxc.hlsl
index 08b893f..e33cd47 100644
--- a/test/tint/expressions/type_ctor/mat3x3/inferred/scalars/f16.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/expressions/type_ctor/mat3x3/inferred/scalars/f16.wgsl.expected.ir.fxc.hlsl
@@ -1,7 +1,19 @@
 SKIP: FAILED
 
+
+static matrix<float16_t, 3, 3> m = matrix<float16_t, 3, 3>(vector<float16_t, 3>(float16_t(0.0h), float16_t(1.0h), float16_t(2.0h)), vector<float16_t, 3>(float16_t(3.0h), float16_t(4.0h), float16_t(5.0h)), vector<float16_t, 3>(float16_t(6.0h), float16_t(7.0h), float16_t(8.0h)));
+RWByteAddressBuffer tint_symbol : register(u0);
+void v(uint offset, matrix<float16_t, 3, 3> obj) {
+  tint_symbol.Store<vector<float16_t, 3> >((offset + 0u), obj[0u]);
+  tint_symbol.Store<vector<float16_t, 3> >((offset + 8u), obj[1u]);
+  tint_symbol.Store<vector<float16_t, 3> >((offset + 16u), obj[2u]);
+}
+
 [numthreads(1, 1, 1)]
 void f() {
-  tint_symbol = m;
+  v(0u, m);
 }
 
+FXC validation failure:
+c:\src\dawn\Shader@0x00000146293B6090(2,15-23): error X3000: syntax error: unexpected token 'float16_t'
+
diff --git a/test/tint/expressions/type_ctor/mat3x3/inferred/scalars/f32.wgsl.expected.ir.dxc.hlsl b/test/tint/expressions/type_ctor/mat3x3/inferred/scalars/f32.wgsl.expected.ir.dxc.hlsl
index 1616cea..83b3fc7 100644
--- a/test/tint/expressions/type_ctor/mat3x3/inferred/scalars/f32.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/expressions/type_ctor/mat3x3/inferred/scalars/f32.wgsl.expected.ir.dxc.hlsl
@@ -1,15 +1,14 @@
-SKIP: FAILED
+
+static float3x3 m = float3x3(float3(0.0f, 1.0f, 2.0f), float3(3.0f, 4.0f, 5.0f), float3(6.0f, 7.0f, 8.0f));
+RWByteAddressBuffer tint_symbol : register(u0);
+void v(uint offset, float3x3 obj) {
+  tint_symbol.Store3((offset + 0u), asuint(obj[0u]));
+  tint_symbol.Store3((offset + 16u), asuint(obj[1u]));
+  tint_symbol.Store3((offset + 32u), asuint(obj[2u]));
+}
 
 [numthreads(1, 1, 1)]
 void f() {
-  tint_symbol = m;
+  v(0u, m);
 }
 
-DXC validation failure:
-hlsl.hlsl:3:3: error: use of undeclared identifier 'tint_symbol'
-  tint_symbol = m;
-  ^
-hlsl.hlsl:3:17: error: use of undeclared identifier 'm'
-  tint_symbol = m;
-                ^
-
diff --git a/test/tint/expressions/type_ctor/mat3x3/inferred/scalars/f32.wgsl.expected.ir.fxc.hlsl b/test/tint/expressions/type_ctor/mat3x3/inferred/scalars/f32.wgsl.expected.ir.fxc.hlsl
index 08b893f..83b3fc7 100644
--- a/test/tint/expressions/type_ctor/mat3x3/inferred/scalars/f32.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/expressions/type_ctor/mat3x3/inferred/scalars/f32.wgsl.expected.ir.fxc.hlsl
@@ -1,7 +1,14 @@
-SKIP: FAILED
+
+static float3x3 m = float3x3(float3(0.0f, 1.0f, 2.0f), float3(3.0f, 4.0f, 5.0f), float3(6.0f, 7.0f, 8.0f));
+RWByteAddressBuffer tint_symbol : register(u0);
+void v(uint offset, float3x3 obj) {
+  tint_symbol.Store3((offset + 0u), asuint(obj[0u]));
+  tint_symbol.Store3((offset + 16u), asuint(obj[1u]));
+  tint_symbol.Store3((offset + 32u), asuint(obj[2u]));
+}
 
 [numthreads(1, 1, 1)]
 void f() {
-  tint_symbol = m;
+  v(0u, m);
 }
 
diff --git a/test/tint/expressions/type_ctor/mat3x3/inferred/vectors/abstract-float.wgsl.expected.ir.dxc.hlsl b/test/tint/expressions/type_ctor/mat3x3/inferred/vectors/abstract-float.wgsl.expected.ir.dxc.hlsl
index 54efbd6..22770c2 100644
--- a/test/tint/expressions/type_ctor/mat3x3/inferred/vectors/abstract-float.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/expressions/type_ctor/mat3x3/inferred/vectors/abstract-float.wgsl.expected.ir.dxc.hlsl
@@ -1,12 +1,13 @@
-SKIP: FAILED
+
+RWByteAddressBuffer tint_symbol : register(u0);
+void v(uint offset, float3x3 obj) {
+  tint_symbol.Store3((offset + 0u), asuint(obj[0u]));
+  tint_symbol.Store3((offset + 16u), asuint(obj[1u]));
+  tint_symbol.Store3((offset + 32u), asuint(obj[2u]));
+}
 
 [numthreads(1, 1, 1)]
 void f() {
-  tint_symbol = float3x3(float3(0.0f, 1.0f, 2.0f), float3(3.0f, 4.0f, 5.0f), float3(6.0f, 7.0f, 8.0f));
+  v(0u, float3x3(float3(0.0f, 1.0f, 2.0f), float3(3.0f, 4.0f, 5.0f), float3(6.0f, 7.0f, 8.0f)));
 }
 
-DXC validation failure:
-hlsl.hlsl:3:3: error: use of undeclared identifier 'tint_symbol'
-  tint_symbol = float3x3(float3(0.0f, 1.0f, 2.0f), float3(3.0f, 4.0f, 5.0f), float3(6.0f, 7.0f, 8.0f));
-  ^
-
diff --git a/test/tint/expressions/type_ctor/mat3x3/inferred/vectors/abstract-float.wgsl.expected.ir.fxc.hlsl b/test/tint/expressions/type_ctor/mat3x3/inferred/vectors/abstract-float.wgsl.expected.ir.fxc.hlsl
index fc65bb7..22770c2 100644
--- a/test/tint/expressions/type_ctor/mat3x3/inferred/vectors/abstract-float.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/expressions/type_ctor/mat3x3/inferred/vectors/abstract-float.wgsl.expected.ir.fxc.hlsl
@@ -1,7 +1,13 @@
-SKIP: FAILED
+
+RWByteAddressBuffer tint_symbol : register(u0);
+void v(uint offset, float3x3 obj) {
+  tint_symbol.Store3((offset + 0u), asuint(obj[0u]));
+  tint_symbol.Store3((offset + 16u), asuint(obj[1u]));
+  tint_symbol.Store3((offset + 32u), asuint(obj[2u]));
+}
 
 [numthreads(1, 1, 1)]
 void f() {
-  tint_symbol = float3x3(float3(0.0f, 1.0f, 2.0f), float3(3.0f, 4.0f, 5.0f), float3(6.0f, 7.0f, 8.0f));
+  v(0u, float3x3(float3(0.0f, 1.0f, 2.0f), float3(3.0f, 4.0f, 5.0f), float3(6.0f, 7.0f, 8.0f)));
 }
 
diff --git a/test/tint/expressions/type_ctor/mat3x3/inferred/vectors/f16.wgsl.expected.ir.dxc.hlsl b/test/tint/expressions/type_ctor/mat3x3/inferred/vectors/f16.wgsl.expected.ir.dxc.hlsl
index 1616cea..d7fb7a7 100644
--- a/test/tint/expressions/type_ctor/mat3x3/inferred/vectors/f16.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/expressions/type_ctor/mat3x3/inferred/vectors/f16.wgsl.expected.ir.dxc.hlsl
@@ -1,15 +1,14 @@
-SKIP: FAILED
+
+static matrix<float16_t, 3, 3> m = matrix<float16_t, 3, 3>(vector<float16_t, 3>(float16_t(0.0h), float16_t(1.0h), float16_t(2.0h)), vector<float16_t, 3>(float16_t(3.0h), float16_t(4.0h), float16_t(5.0h)), vector<float16_t, 3>(float16_t(6.0h), float16_t(7.0h), float16_t(8.0h)));
+RWByteAddressBuffer tint_symbol : register(u0);
+void v(uint offset, matrix<float16_t, 3, 3> obj) {
+  tint_symbol.Store<vector<float16_t, 3> >((offset + 0u), obj[0u]);
+  tint_symbol.Store<vector<float16_t, 3> >((offset + 8u), obj[1u]);
+  tint_symbol.Store<vector<float16_t, 3> >((offset + 16u), obj[2u]);
+}
 
 [numthreads(1, 1, 1)]
 void f() {
-  tint_symbol = m;
+  v(0u, m);
 }
 
-DXC validation failure:
-hlsl.hlsl:3:3: error: use of undeclared identifier 'tint_symbol'
-  tint_symbol = m;
-  ^
-hlsl.hlsl:3:17: error: use of undeclared identifier 'm'
-  tint_symbol = m;
-                ^
-
diff --git a/test/tint/expressions/type_ctor/mat3x3/inferred/vectors/f16.wgsl.expected.ir.fxc.hlsl b/test/tint/expressions/type_ctor/mat3x3/inferred/vectors/f16.wgsl.expected.ir.fxc.hlsl
index 08b893f..9d069f3 100644
--- a/test/tint/expressions/type_ctor/mat3x3/inferred/vectors/f16.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/expressions/type_ctor/mat3x3/inferred/vectors/f16.wgsl.expected.ir.fxc.hlsl
@@ -1,7 +1,19 @@
 SKIP: FAILED
 
+
+static matrix<float16_t, 3, 3> m = matrix<float16_t, 3, 3>(vector<float16_t, 3>(float16_t(0.0h), float16_t(1.0h), float16_t(2.0h)), vector<float16_t, 3>(float16_t(3.0h), float16_t(4.0h), float16_t(5.0h)), vector<float16_t, 3>(float16_t(6.0h), float16_t(7.0h), float16_t(8.0h)));
+RWByteAddressBuffer tint_symbol : register(u0);
+void v(uint offset, matrix<float16_t, 3, 3> obj) {
+  tint_symbol.Store<vector<float16_t, 3> >((offset + 0u), obj[0u]);
+  tint_symbol.Store<vector<float16_t, 3> >((offset + 8u), obj[1u]);
+  tint_symbol.Store<vector<float16_t, 3> >((offset + 16u), obj[2u]);
+}
+
 [numthreads(1, 1, 1)]
 void f() {
-  tint_symbol = m;
+  v(0u, m);
 }
 
+FXC validation failure:
+c:\src\dawn\Shader@0x000002786E943880(2,15-23): error X3000: syntax error: unexpected token 'float16_t'
+
diff --git a/test/tint/expressions/type_ctor/mat3x3/inferred/vectors/f32.wgsl.expected.ir.dxc.hlsl b/test/tint/expressions/type_ctor/mat3x3/inferred/vectors/f32.wgsl.expected.ir.dxc.hlsl
index 1616cea..83b3fc7 100644
--- a/test/tint/expressions/type_ctor/mat3x3/inferred/vectors/f32.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/expressions/type_ctor/mat3x3/inferred/vectors/f32.wgsl.expected.ir.dxc.hlsl
@@ -1,15 +1,14 @@
-SKIP: FAILED
+
+static float3x3 m = float3x3(float3(0.0f, 1.0f, 2.0f), float3(3.0f, 4.0f, 5.0f), float3(6.0f, 7.0f, 8.0f));
+RWByteAddressBuffer tint_symbol : register(u0);
+void v(uint offset, float3x3 obj) {
+  tint_symbol.Store3((offset + 0u), asuint(obj[0u]));
+  tint_symbol.Store3((offset + 16u), asuint(obj[1u]));
+  tint_symbol.Store3((offset + 32u), asuint(obj[2u]));
+}
 
 [numthreads(1, 1, 1)]
 void f() {
-  tint_symbol = m;
+  v(0u, m);
 }
 
-DXC validation failure:
-hlsl.hlsl:3:3: error: use of undeclared identifier 'tint_symbol'
-  tint_symbol = m;
-  ^
-hlsl.hlsl:3:17: error: use of undeclared identifier 'm'
-  tint_symbol = m;
-                ^
-
diff --git a/test/tint/expressions/type_ctor/mat3x3/inferred/vectors/f32.wgsl.expected.ir.fxc.hlsl b/test/tint/expressions/type_ctor/mat3x3/inferred/vectors/f32.wgsl.expected.ir.fxc.hlsl
index 08b893f..83b3fc7 100644
--- a/test/tint/expressions/type_ctor/mat3x3/inferred/vectors/f32.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/expressions/type_ctor/mat3x3/inferred/vectors/f32.wgsl.expected.ir.fxc.hlsl
@@ -1,7 +1,14 @@
-SKIP: FAILED
+
+static float3x3 m = float3x3(float3(0.0f, 1.0f, 2.0f), float3(3.0f, 4.0f, 5.0f), float3(6.0f, 7.0f, 8.0f));
+RWByteAddressBuffer tint_symbol : register(u0);
+void v(uint offset, float3x3 obj) {
+  tint_symbol.Store3((offset + 0u), asuint(obj[0u]));
+  tint_symbol.Store3((offset + 16u), asuint(obj[1u]));
+  tint_symbol.Store3((offset + 32u), asuint(obj[2u]));
+}
 
 [numthreads(1, 1, 1)]
 void f() {
-  tint_symbol = m;
+  v(0u, m);
 }
 
diff --git a/test/tint/expressions/type_ctor/mat3x3/load/f16.wgsl.expected.ir.dxc.hlsl b/test/tint/expressions/type_ctor/mat3x3/load/f16.wgsl.expected.ir.dxc.hlsl
index c6e1d96..2fadcf7 100644
--- a/test/tint/expressions/type_ctor/mat3x3/load/f16.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/expressions/type_ctor/mat3x3/load/f16.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,14 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Construct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWByteAddressBuffer tint_symbol : register(u0);
+void v(uint offset, matrix<float16_t, 3, 3> obj) {
+  tint_symbol.Store<vector<float16_t, 3> >((offset + 0u), obj[0u]);
+  tint_symbol.Store<vector<float16_t, 3> >((offset + 8u), obj[1u]);
+  tint_symbol.Store<vector<float16_t, 3> >((offset + 16u), obj[2u]);
+}
+
+[numthreads(1, 1, 1)]
+void f() {
+  matrix<float16_t, 3, 3> m = matrix<float16_t, 3, 3>((float16_t(0.0h)).xxx, (float16_t(0.0h)).xxx, (float16_t(0.0h)).xxx);
+  v(0u, matrix<float16_t, 3, 3>(m));
+}
+
diff --git a/test/tint/expressions/type_ctor/mat3x3/load/f16.wgsl.expected.ir.fxc.hlsl b/test/tint/expressions/type_ctor/mat3x3/load/f16.wgsl.expected.ir.fxc.hlsl
index c6e1d96..a1b32f8 100644
--- a/test/tint/expressions/type_ctor/mat3x3/load/f16.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/expressions/type_ctor/mat3x3/load/f16.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,20 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Construct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+
+RWByteAddressBuffer tint_symbol : register(u0);
+void v(uint offset, matrix<float16_t, 3, 3> obj) {
+  tint_symbol.Store<vector<float16_t, 3> >((offset + 0u), obj[0u]);
+  tint_symbol.Store<vector<float16_t, 3> >((offset + 8u), obj[1u]);
+  tint_symbol.Store<vector<float16_t, 3> >((offset + 16u), obj[2u]);
+}
+
+[numthreads(1, 1, 1)]
+void f() {
+  matrix<float16_t, 3, 3> m = matrix<float16_t, 3, 3>((float16_t(0.0h)).xxx, (float16_t(0.0h)).xxx, (float16_t(0.0h)).xxx);
+  v(0u, matrix<float16_t, 3, 3>(m));
+}
+
+FXC validation failure:
+c:\src\dawn\Shader@0x0000022C33A3F5F0(3,28-36): error X3000: syntax error: unexpected token 'float16_t'
+c:\src\dawn\Shader@0x0000022C33A3F5F0(4,3-19): error X3018: invalid subscript 'Store'
+
diff --git a/test/tint/expressions/type_ctor/mat3x3/load/f32.wgsl.expected.ir.dxc.hlsl b/test/tint/expressions/type_ctor/mat3x3/load/f32.wgsl.expected.ir.dxc.hlsl
index c6e1d96..c8deb95 100644
--- a/test/tint/expressions/type_ctor/mat3x3/load/f32.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/expressions/type_ctor/mat3x3/load/f32.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,14 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Construct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWByteAddressBuffer tint_symbol : register(u0);
+void v(uint offset, float3x3 obj) {
+  tint_symbol.Store3((offset + 0u), asuint(obj[0u]));
+  tint_symbol.Store3((offset + 16u), asuint(obj[1u]));
+  tint_symbol.Store3((offset + 32u), asuint(obj[2u]));
+}
+
+[numthreads(1, 1, 1)]
+void f() {
+  float3x3 m = float3x3((0.0f).xxx, (0.0f).xxx, (0.0f).xxx);
+  v(0u, float3x3(m));
+}
+
diff --git a/test/tint/expressions/type_ctor/mat3x3/load/f32.wgsl.expected.ir.fxc.hlsl b/test/tint/expressions/type_ctor/mat3x3/load/f32.wgsl.expected.ir.fxc.hlsl
index c6e1d96..c8deb95 100644
--- a/test/tint/expressions/type_ctor/mat3x3/load/f32.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/expressions/type_ctor/mat3x3/load/f32.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,14 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Construct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWByteAddressBuffer tint_symbol : register(u0);
+void v(uint offset, float3x3 obj) {
+  tint_symbol.Store3((offset + 0u), asuint(obj[0u]));
+  tint_symbol.Store3((offset + 16u), asuint(obj[1u]));
+  tint_symbol.Store3((offset + 32u), asuint(obj[2u]));
+}
+
+[numthreads(1, 1, 1)]
+void f() {
+  float3x3 m = float3x3((0.0f).xxx, (0.0f).xxx, (0.0f).xxx);
+  v(0u, float3x3(m));
+}
+
diff --git a/test/tint/expressions/type_ctor/mat3x3/zero/f16.wgsl.expected.ir.dxc.hlsl b/test/tint/expressions/type_ctor/mat3x3/zero/f16.wgsl.expected.ir.dxc.hlsl
index 1616cea..a67a849 100644
--- a/test/tint/expressions/type_ctor/mat3x3/zero/f16.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/expressions/type_ctor/mat3x3/zero/f16.wgsl.expected.ir.dxc.hlsl
@@ -1,15 +1,14 @@
-SKIP: FAILED
+
+static matrix<float16_t, 3, 3> m = matrix<float16_t, 3, 3>((float16_t(0.0h)).xxx, (float16_t(0.0h)).xxx, (float16_t(0.0h)).xxx);
+RWByteAddressBuffer tint_symbol : register(u0);
+void v(uint offset, matrix<float16_t, 3, 3> obj) {
+  tint_symbol.Store<vector<float16_t, 3> >((offset + 0u), obj[0u]);
+  tint_symbol.Store<vector<float16_t, 3> >((offset + 8u), obj[1u]);
+  tint_symbol.Store<vector<float16_t, 3> >((offset + 16u), obj[2u]);
+}
 
 [numthreads(1, 1, 1)]
 void f() {
-  tint_symbol = m;
+  v(0u, m);
 }
 
-DXC validation failure:
-hlsl.hlsl:3:3: error: use of undeclared identifier 'tint_symbol'
-  tint_symbol = m;
-  ^
-hlsl.hlsl:3:17: error: use of undeclared identifier 'm'
-  tint_symbol = m;
-                ^
-
diff --git a/test/tint/expressions/type_ctor/mat3x3/zero/f16.wgsl.expected.ir.fxc.hlsl b/test/tint/expressions/type_ctor/mat3x3/zero/f16.wgsl.expected.ir.fxc.hlsl
index 08b893f..7af5917 100644
--- a/test/tint/expressions/type_ctor/mat3x3/zero/f16.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/expressions/type_ctor/mat3x3/zero/f16.wgsl.expected.ir.fxc.hlsl
@@ -1,7 +1,19 @@
 SKIP: FAILED
 
+
+static matrix<float16_t, 3, 3> m = matrix<float16_t, 3, 3>((float16_t(0.0h)).xxx, (float16_t(0.0h)).xxx, (float16_t(0.0h)).xxx);
+RWByteAddressBuffer tint_symbol : register(u0);
+void v(uint offset, matrix<float16_t, 3, 3> obj) {
+  tint_symbol.Store<vector<float16_t, 3> >((offset + 0u), obj[0u]);
+  tint_symbol.Store<vector<float16_t, 3> >((offset + 8u), obj[1u]);
+  tint_symbol.Store<vector<float16_t, 3> >((offset + 16u), obj[2u]);
+}
+
 [numthreads(1, 1, 1)]
 void f() {
-  tint_symbol = m;
+  v(0u, m);
 }
 
+FXC validation failure:
+c:\src\dawn\Shader@0x0000021ADA066D20(2,15-23): error X3000: syntax error: unexpected token 'float16_t'
+
diff --git a/test/tint/expressions/type_ctor/mat3x3/zero/f32.wgsl.expected.ir.dxc.hlsl b/test/tint/expressions/type_ctor/mat3x3/zero/f32.wgsl.expected.ir.dxc.hlsl
index 1616cea..0365b54 100644
--- a/test/tint/expressions/type_ctor/mat3x3/zero/f32.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/expressions/type_ctor/mat3x3/zero/f32.wgsl.expected.ir.dxc.hlsl
@@ -1,15 +1,14 @@
-SKIP: FAILED
+
+static float3x3 m = float3x3((0.0f).xxx, (0.0f).xxx, (0.0f).xxx);
+RWByteAddressBuffer tint_symbol : register(u0);
+void v(uint offset, float3x3 obj) {
+  tint_symbol.Store3((offset + 0u), asuint(obj[0u]));
+  tint_symbol.Store3((offset + 16u), asuint(obj[1u]));
+  tint_symbol.Store3((offset + 32u), asuint(obj[2u]));
+}
 
 [numthreads(1, 1, 1)]
 void f() {
-  tint_symbol = m;
+  v(0u, m);
 }
 
-DXC validation failure:
-hlsl.hlsl:3:3: error: use of undeclared identifier 'tint_symbol'
-  tint_symbol = m;
-  ^
-hlsl.hlsl:3:17: error: use of undeclared identifier 'm'
-  tint_symbol = m;
-                ^
-
diff --git a/test/tint/expressions/type_ctor/mat3x3/zero/f32.wgsl.expected.ir.fxc.hlsl b/test/tint/expressions/type_ctor/mat3x3/zero/f32.wgsl.expected.ir.fxc.hlsl
index 08b893f..0365b54 100644
--- a/test/tint/expressions/type_ctor/mat3x3/zero/f32.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/expressions/type_ctor/mat3x3/zero/f32.wgsl.expected.ir.fxc.hlsl
@@ -1,7 +1,14 @@
-SKIP: FAILED
+
+static float3x3 m = float3x3((0.0f).xxx, (0.0f).xxx, (0.0f).xxx);
+RWByteAddressBuffer tint_symbol : register(u0);
+void v(uint offset, float3x3 obj) {
+  tint_symbol.Store3((offset + 0u), asuint(obj[0u]));
+  tint_symbol.Store3((offset + 16u), asuint(obj[1u]));
+  tint_symbol.Store3((offset + 32u), asuint(obj[2u]));
+}
 
 [numthreads(1, 1, 1)]
 void f() {
-  tint_symbol = m;
+  v(0u, m);
 }
 
diff --git a/test/tint/expressions/type_ctor/mat3x4/explicit/identity/f16.wgsl.expected.ir.dxc.hlsl b/test/tint/expressions/type_ctor/mat3x4/explicit/identity/f16.wgsl.expected.ir.dxc.hlsl
index c6e1d96..62f957c 100644
--- a/test/tint/expressions/type_ctor/mat3x4/explicit/identity/f16.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/expressions/type_ctor/mat3x4/explicit/identity/f16.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,14 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Construct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+static matrix<float16_t, 3, 4> m = matrix<float16_t, 3, 4>(vector<float16_t, 4>(float16_t(0.0h), float16_t(1.0h), float16_t(2.0h), float16_t(3.0h)), vector<float16_t, 4>(float16_t(4.0h), float16_t(5.0h), float16_t(6.0h), float16_t(7.0h)), vector<float16_t, 4>(float16_t(8.0h), float16_t(9.0h), float16_t(10.0h), float16_t(11.0h)));
+RWByteAddressBuffer tint_symbol : register(u0);
+void v(uint offset, matrix<float16_t, 3, 4> obj) {
+  tint_symbol.Store<vector<float16_t, 4> >((offset + 0u), obj[0u]);
+  tint_symbol.Store<vector<float16_t, 4> >((offset + 8u), obj[1u]);
+  tint_symbol.Store<vector<float16_t, 4> >((offset + 16u), obj[2u]);
+}
+
+[numthreads(1, 1, 1)]
+void f() {
+  v(0u, matrix<float16_t, 3, 4>(m));
+}
+
diff --git a/test/tint/expressions/type_ctor/mat3x4/explicit/identity/f16.wgsl.expected.ir.fxc.hlsl b/test/tint/expressions/type_ctor/mat3x4/explicit/identity/f16.wgsl.expected.ir.fxc.hlsl
index c6e1d96..267a30e 100644
--- a/test/tint/expressions/type_ctor/mat3x4/explicit/identity/f16.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/expressions/type_ctor/mat3x4/explicit/identity/f16.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,19 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Construct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+
+static matrix<float16_t, 3, 4> m = matrix<float16_t, 3, 4>(vector<float16_t, 4>(float16_t(0.0h), float16_t(1.0h), float16_t(2.0h), float16_t(3.0h)), vector<float16_t, 4>(float16_t(4.0h), float16_t(5.0h), float16_t(6.0h), float16_t(7.0h)), vector<float16_t, 4>(float16_t(8.0h), float16_t(9.0h), float16_t(10.0h), float16_t(11.0h)));
+RWByteAddressBuffer tint_symbol : register(u0);
+void v(uint offset, matrix<float16_t, 3, 4> obj) {
+  tint_symbol.Store<vector<float16_t, 4> >((offset + 0u), obj[0u]);
+  tint_symbol.Store<vector<float16_t, 4> >((offset + 8u), obj[1u]);
+  tint_symbol.Store<vector<float16_t, 4> >((offset + 16u), obj[2u]);
+}
+
+[numthreads(1, 1, 1)]
+void f() {
+  v(0u, matrix<float16_t, 3, 4>(m));
+}
+
+FXC validation failure:
+c:\src\dawn\Shader@0x00000239C6AF0450(2,15-23): error X3000: syntax error: unexpected token 'float16_t'
+
diff --git a/test/tint/expressions/type_ctor/mat3x4/explicit/identity/f32.wgsl.expected.ir.dxc.hlsl b/test/tint/expressions/type_ctor/mat3x4/explicit/identity/f32.wgsl.expected.ir.dxc.hlsl
index c6e1d96..f450927 100644
--- a/test/tint/expressions/type_ctor/mat3x4/explicit/identity/f32.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/expressions/type_ctor/mat3x4/explicit/identity/f32.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,14 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Construct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+static float3x4 m = float3x4(float4(0.0f, 1.0f, 2.0f, 3.0f), float4(4.0f, 5.0f, 6.0f, 7.0f), float4(8.0f, 9.0f, 10.0f, 11.0f));
+RWByteAddressBuffer tint_symbol : register(u0);
+void v(uint offset, float3x4 obj) {
+  tint_symbol.Store4((offset + 0u), asuint(obj[0u]));
+  tint_symbol.Store4((offset + 16u), asuint(obj[1u]));
+  tint_symbol.Store4((offset + 32u), asuint(obj[2u]));
+}
+
+[numthreads(1, 1, 1)]
+void f() {
+  v(0u, float3x4(m));
+}
+
diff --git a/test/tint/expressions/type_ctor/mat3x4/explicit/identity/f32.wgsl.expected.ir.fxc.hlsl b/test/tint/expressions/type_ctor/mat3x4/explicit/identity/f32.wgsl.expected.ir.fxc.hlsl
index c6e1d96..f450927 100644
--- a/test/tint/expressions/type_ctor/mat3x4/explicit/identity/f32.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/expressions/type_ctor/mat3x4/explicit/identity/f32.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,14 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Construct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+static float3x4 m = float3x4(float4(0.0f, 1.0f, 2.0f, 3.0f), float4(4.0f, 5.0f, 6.0f, 7.0f), float4(8.0f, 9.0f, 10.0f, 11.0f));
+RWByteAddressBuffer tint_symbol : register(u0);
+void v(uint offset, float3x4 obj) {
+  tint_symbol.Store4((offset + 0u), asuint(obj[0u]));
+  tint_symbol.Store4((offset + 16u), asuint(obj[1u]));
+  tint_symbol.Store4((offset + 32u), asuint(obj[2u]));
+}
+
+[numthreads(1, 1, 1)]
+void f() {
+  v(0u, float3x4(m));
+}
+
diff --git a/test/tint/expressions/type_ctor/mat3x4/explicit/scalars/f16.wgsl.expected.ir.dxc.hlsl b/test/tint/expressions/type_ctor/mat3x4/explicit/scalars/f16.wgsl.expected.ir.dxc.hlsl
index 1616cea..953a763 100644
--- a/test/tint/expressions/type_ctor/mat3x4/explicit/scalars/f16.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/expressions/type_ctor/mat3x4/explicit/scalars/f16.wgsl.expected.ir.dxc.hlsl
@@ -1,15 +1,14 @@
-SKIP: FAILED
+
+static matrix<float16_t, 3, 4> m = matrix<float16_t, 3, 4>(vector<float16_t, 4>(float16_t(0.0h), float16_t(1.0h), float16_t(2.0h), float16_t(3.0h)), vector<float16_t, 4>(float16_t(4.0h), float16_t(5.0h), float16_t(6.0h), float16_t(7.0h)), vector<float16_t, 4>(float16_t(8.0h), float16_t(9.0h), float16_t(10.0h), float16_t(11.0h)));
+RWByteAddressBuffer tint_symbol : register(u0);
+void v(uint offset, matrix<float16_t, 3, 4> obj) {
+  tint_symbol.Store<vector<float16_t, 4> >((offset + 0u), obj[0u]);
+  tint_symbol.Store<vector<float16_t, 4> >((offset + 8u), obj[1u]);
+  tint_symbol.Store<vector<float16_t, 4> >((offset + 16u), obj[2u]);
+}
 
 [numthreads(1, 1, 1)]
 void f() {
-  tint_symbol = m;
+  v(0u, m);
 }
 
-DXC validation failure:
-hlsl.hlsl:3:3: error: use of undeclared identifier 'tint_symbol'
-  tint_symbol = m;
-  ^
-hlsl.hlsl:3:17: error: use of undeclared identifier 'm'
-  tint_symbol = m;
-                ^
-
diff --git a/test/tint/expressions/type_ctor/mat3x4/explicit/scalars/f16.wgsl.expected.ir.fxc.hlsl b/test/tint/expressions/type_ctor/mat3x4/explicit/scalars/f16.wgsl.expected.ir.fxc.hlsl
index 08b893f..23bd6e3 100644
--- a/test/tint/expressions/type_ctor/mat3x4/explicit/scalars/f16.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/expressions/type_ctor/mat3x4/explicit/scalars/f16.wgsl.expected.ir.fxc.hlsl
@@ -1,7 +1,19 @@
 SKIP: FAILED
 
+
+static matrix<float16_t, 3, 4> m = matrix<float16_t, 3, 4>(vector<float16_t, 4>(float16_t(0.0h), float16_t(1.0h), float16_t(2.0h), float16_t(3.0h)), vector<float16_t, 4>(float16_t(4.0h), float16_t(5.0h), float16_t(6.0h), float16_t(7.0h)), vector<float16_t, 4>(float16_t(8.0h), float16_t(9.0h), float16_t(10.0h), float16_t(11.0h)));
+RWByteAddressBuffer tint_symbol : register(u0);
+void v(uint offset, matrix<float16_t, 3, 4> obj) {
+  tint_symbol.Store<vector<float16_t, 4> >((offset + 0u), obj[0u]);
+  tint_symbol.Store<vector<float16_t, 4> >((offset + 8u), obj[1u]);
+  tint_symbol.Store<vector<float16_t, 4> >((offset + 16u), obj[2u]);
+}
+
 [numthreads(1, 1, 1)]
 void f() {
-  tint_symbol = m;
+  v(0u, m);
 }
 
+FXC validation failure:
+c:\src\dawn\Shader@0x00000262633B4450(2,15-23): error X3000: syntax error: unexpected token 'float16_t'
+
diff --git a/test/tint/expressions/type_ctor/mat3x4/explicit/scalars/f32.wgsl.expected.ir.dxc.hlsl b/test/tint/expressions/type_ctor/mat3x4/explicit/scalars/f32.wgsl.expected.ir.dxc.hlsl
index 1616cea..dd69730 100644
--- a/test/tint/expressions/type_ctor/mat3x4/explicit/scalars/f32.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/expressions/type_ctor/mat3x4/explicit/scalars/f32.wgsl.expected.ir.dxc.hlsl
@@ -1,15 +1,14 @@
-SKIP: FAILED
+
+static float3x4 m = float3x4(float4(0.0f, 1.0f, 2.0f, 3.0f), float4(4.0f, 5.0f, 6.0f, 7.0f), float4(8.0f, 9.0f, 10.0f, 11.0f));
+RWByteAddressBuffer tint_symbol : register(u0);
+void v(uint offset, float3x4 obj) {
+  tint_symbol.Store4((offset + 0u), asuint(obj[0u]));
+  tint_symbol.Store4((offset + 16u), asuint(obj[1u]));
+  tint_symbol.Store4((offset + 32u), asuint(obj[2u]));
+}
 
 [numthreads(1, 1, 1)]
 void f() {
-  tint_symbol = m;
+  v(0u, m);
 }
 
-DXC validation failure:
-hlsl.hlsl:3:3: error: use of undeclared identifier 'tint_symbol'
-  tint_symbol = m;
-  ^
-hlsl.hlsl:3:17: error: use of undeclared identifier 'm'
-  tint_symbol = m;
-                ^
-
diff --git a/test/tint/expressions/type_ctor/mat3x4/explicit/scalars/f32.wgsl.expected.ir.fxc.hlsl b/test/tint/expressions/type_ctor/mat3x4/explicit/scalars/f32.wgsl.expected.ir.fxc.hlsl
index 08b893f..dd69730 100644
--- a/test/tint/expressions/type_ctor/mat3x4/explicit/scalars/f32.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/expressions/type_ctor/mat3x4/explicit/scalars/f32.wgsl.expected.ir.fxc.hlsl
@@ -1,7 +1,14 @@
-SKIP: FAILED
+
+static float3x4 m = float3x4(float4(0.0f, 1.0f, 2.0f, 3.0f), float4(4.0f, 5.0f, 6.0f, 7.0f), float4(8.0f, 9.0f, 10.0f, 11.0f));
+RWByteAddressBuffer tint_symbol : register(u0);
+void v(uint offset, float3x4 obj) {
+  tint_symbol.Store4((offset + 0u), asuint(obj[0u]));
+  tint_symbol.Store4((offset + 16u), asuint(obj[1u]));
+  tint_symbol.Store4((offset + 32u), asuint(obj[2u]));
+}
 
 [numthreads(1, 1, 1)]
 void f() {
-  tint_symbol = m;
+  v(0u, m);
 }
 
diff --git a/test/tint/expressions/type_ctor/mat3x4/explicit/vectors/f16.wgsl.expected.ir.dxc.hlsl b/test/tint/expressions/type_ctor/mat3x4/explicit/vectors/f16.wgsl.expected.ir.dxc.hlsl
index 1616cea..953a763 100644
--- a/test/tint/expressions/type_ctor/mat3x4/explicit/vectors/f16.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/expressions/type_ctor/mat3x4/explicit/vectors/f16.wgsl.expected.ir.dxc.hlsl
@@ -1,15 +1,14 @@
-SKIP: FAILED
+
+static matrix<float16_t, 3, 4> m = matrix<float16_t, 3, 4>(vector<float16_t, 4>(float16_t(0.0h), float16_t(1.0h), float16_t(2.0h), float16_t(3.0h)), vector<float16_t, 4>(float16_t(4.0h), float16_t(5.0h), float16_t(6.0h), float16_t(7.0h)), vector<float16_t, 4>(float16_t(8.0h), float16_t(9.0h), float16_t(10.0h), float16_t(11.0h)));
+RWByteAddressBuffer tint_symbol : register(u0);
+void v(uint offset, matrix<float16_t, 3, 4> obj) {
+  tint_symbol.Store<vector<float16_t, 4> >((offset + 0u), obj[0u]);
+  tint_symbol.Store<vector<float16_t, 4> >((offset + 8u), obj[1u]);
+  tint_symbol.Store<vector<float16_t, 4> >((offset + 16u), obj[2u]);
+}
 
 [numthreads(1, 1, 1)]
 void f() {
-  tint_symbol = m;
+  v(0u, m);
 }
 
-DXC validation failure:
-hlsl.hlsl:3:3: error: use of undeclared identifier 'tint_symbol'
-  tint_symbol = m;
-  ^
-hlsl.hlsl:3:17: error: use of undeclared identifier 'm'
-  tint_symbol = m;
-                ^
-
diff --git a/test/tint/expressions/type_ctor/mat3x4/explicit/vectors/f16.wgsl.expected.ir.fxc.hlsl b/test/tint/expressions/type_ctor/mat3x4/explicit/vectors/f16.wgsl.expected.ir.fxc.hlsl
index 08b893f..e0d1698 100644
--- a/test/tint/expressions/type_ctor/mat3x4/explicit/vectors/f16.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/expressions/type_ctor/mat3x4/explicit/vectors/f16.wgsl.expected.ir.fxc.hlsl
@@ -1,7 +1,19 @@
 SKIP: FAILED
 
+
+static matrix<float16_t, 3, 4> m = matrix<float16_t, 3, 4>(vector<float16_t, 4>(float16_t(0.0h), float16_t(1.0h), float16_t(2.0h), float16_t(3.0h)), vector<float16_t, 4>(float16_t(4.0h), float16_t(5.0h), float16_t(6.0h), float16_t(7.0h)), vector<float16_t, 4>(float16_t(8.0h), float16_t(9.0h), float16_t(10.0h), float16_t(11.0h)));
+RWByteAddressBuffer tint_symbol : register(u0);
+void v(uint offset, matrix<float16_t, 3, 4> obj) {
+  tint_symbol.Store<vector<float16_t, 4> >((offset + 0u), obj[0u]);
+  tint_symbol.Store<vector<float16_t, 4> >((offset + 8u), obj[1u]);
+  tint_symbol.Store<vector<float16_t, 4> >((offset + 16u), obj[2u]);
+}
+
 [numthreads(1, 1, 1)]
 void f() {
-  tint_symbol = m;
+  v(0u, m);
 }
 
+FXC validation failure:
+c:\src\dawn\Shader@0x0000019C9BE52DD0(2,15-23): error X3000: syntax error: unexpected token 'float16_t'
+
diff --git a/test/tint/expressions/type_ctor/mat3x4/explicit/vectors/f32.wgsl.expected.ir.dxc.hlsl b/test/tint/expressions/type_ctor/mat3x4/explicit/vectors/f32.wgsl.expected.ir.dxc.hlsl
index 1616cea..dd69730 100644
--- a/test/tint/expressions/type_ctor/mat3x4/explicit/vectors/f32.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/expressions/type_ctor/mat3x4/explicit/vectors/f32.wgsl.expected.ir.dxc.hlsl
@@ -1,15 +1,14 @@
-SKIP: FAILED
+
+static float3x4 m = float3x4(float4(0.0f, 1.0f, 2.0f, 3.0f), float4(4.0f, 5.0f, 6.0f, 7.0f), float4(8.0f, 9.0f, 10.0f, 11.0f));
+RWByteAddressBuffer tint_symbol : register(u0);
+void v(uint offset, float3x4 obj) {
+  tint_symbol.Store4((offset + 0u), asuint(obj[0u]));
+  tint_symbol.Store4((offset + 16u), asuint(obj[1u]));
+  tint_symbol.Store4((offset + 32u), asuint(obj[2u]));
+}
 
 [numthreads(1, 1, 1)]
 void f() {
-  tint_symbol = m;
+  v(0u, m);
 }
 
-DXC validation failure:
-hlsl.hlsl:3:3: error: use of undeclared identifier 'tint_symbol'
-  tint_symbol = m;
-  ^
-hlsl.hlsl:3:17: error: use of undeclared identifier 'm'
-  tint_symbol = m;
-                ^
-
diff --git a/test/tint/expressions/type_ctor/mat3x4/explicit/vectors/f32.wgsl.expected.ir.fxc.hlsl b/test/tint/expressions/type_ctor/mat3x4/explicit/vectors/f32.wgsl.expected.ir.fxc.hlsl
index 08b893f..dd69730 100644
--- a/test/tint/expressions/type_ctor/mat3x4/explicit/vectors/f32.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/expressions/type_ctor/mat3x4/explicit/vectors/f32.wgsl.expected.ir.fxc.hlsl
@@ -1,7 +1,14 @@
-SKIP: FAILED
+
+static float3x4 m = float3x4(float4(0.0f, 1.0f, 2.0f, 3.0f), float4(4.0f, 5.0f, 6.0f, 7.0f), float4(8.0f, 9.0f, 10.0f, 11.0f));
+RWByteAddressBuffer tint_symbol : register(u0);
+void v(uint offset, float3x4 obj) {
+  tint_symbol.Store4((offset + 0u), asuint(obj[0u]));
+  tint_symbol.Store4((offset + 16u), asuint(obj[1u]));
+  tint_symbol.Store4((offset + 32u), asuint(obj[2u]));
+}
 
 [numthreads(1, 1, 1)]
 void f() {
-  tint_symbol = m;
+  v(0u, m);
 }
 
diff --git a/test/tint/expressions/type_ctor/mat3x4/inferred/identity/f16.wgsl.expected.ir.dxc.hlsl b/test/tint/expressions/type_ctor/mat3x4/inferred/identity/f16.wgsl.expected.ir.dxc.hlsl
index c6e1d96..62f957c 100644
--- a/test/tint/expressions/type_ctor/mat3x4/inferred/identity/f16.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/expressions/type_ctor/mat3x4/inferred/identity/f16.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,14 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Construct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+static matrix<float16_t, 3, 4> m = matrix<float16_t, 3, 4>(vector<float16_t, 4>(float16_t(0.0h), float16_t(1.0h), float16_t(2.0h), float16_t(3.0h)), vector<float16_t, 4>(float16_t(4.0h), float16_t(5.0h), float16_t(6.0h), float16_t(7.0h)), vector<float16_t, 4>(float16_t(8.0h), float16_t(9.0h), float16_t(10.0h), float16_t(11.0h)));
+RWByteAddressBuffer tint_symbol : register(u0);
+void v(uint offset, matrix<float16_t, 3, 4> obj) {
+  tint_symbol.Store<vector<float16_t, 4> >((offset + 0u), obj[0u]);
+  tint_symbol.Store<vector<float16_t, 4> >((offset + 8u), obj[1u]);
+  tint_symbol.Store<vector<float16_t, 4> >((offset + 16u), obj[2u]);
+}
+
+[numthreads(1, 1, 1)]
+void f() {
+  v(0u, matrix<float16_t, 3, 4>(m));
+}
+
diff --git a/test/tint/expressions/type_ctor/mat3x4/inferred/identity/f16.wgsl.expected.ir.fxc.hlsl b/test/tint/expressions/type_ctor/mat3x4/inferred/identity/f16.wgsl.expected.ir.fxc.hlsl
index c6e1d96..34f5a7f 100644
--- a/test/tint/expressions/type_ctor/mat3x4/inferred/identity/f16.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/expressions/type_ctor/mat3x4/inferred/identity/f16.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,19 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Construct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+
+static matrix<float16_t, 3, 4> m = matrix<float16_t, 3, 4>(vector<float16_t, 4>(float16_t(0.0h), float16_t(1.0h), float16_t(2.0h), float16_t(3.0h)), vector<float16_t, 4>(float16_t(4.0h), float16_t(5.0h), float16_t(6.0h), float16_t(7.0h)), vector<float16_t, 4>(float16_t(8.0h), float16_t(9.0h), float16_t(10.0h), float16_t(11.0h)));
+RWByteAddressBuffer tint_symbol : register(u0);
+void v(uint offset, matrix<float16_t, 3, 4> obj) {
+  tint_symbol.Store<vector<float16_t, 4> >((offset + 0u), obj[0u]);
+  tint_symbol.Store<vector<float16_t, 4> >((offset + 8u), obj[1u]);
+  tint_symbol.Store<vector<float16_t, 4> >((offset + 16u), obj[2u]);
+}
+
+[numthreads(1, 1, 1)]
+void f() {
+  v(0u, matrix<float16_t, 3, 4>(m));
+}
+
+FXC validation failure:
+c:\src\dawn\Shader@0x000002EB22EBD030(2,15-23): error X3000: syntax error: unexpected token 'float16_t'
+
diff --git a/test/tint/expressions/type_ctor/mat3x4/inferred/identity/f32.wgsl.expected.ir.dxc.hlsl b/test/tint/expressions/type_ctor/mat3x4/inferred/identity/f32.wgsl.expected.ir.dxc.hlsl
index c6e1d96..f450927 100644
--- a/test/tint/expressions/type_ctor/mat3x4/inferred/identity/f32.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/expressions/type_ctor/mat3x4/inferred/identity/f32.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,14 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Construct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+static float3x4 m = float3x4(float4(0.0f, 1.0f, 2.0f, 3.0f), float4(4.0f, 5.0f, 6.0f, 7.0f), float4(8.0f, 9.0f, 10.0f, 11.0f));
+RWByteAddressBuffer tint_symbol : register(u0);
+void v(uint offset, float3x4 obj) {
+  tint_symbol.Store4((offset + 0u), asuint(obj[0u]));
+  tint_symbol.Store4((offset + 16u), asuint(obj[1u]));
+  tint_symbol.Store4((offset + 32u), asuint(obj[2u]));
+}
+
+[numthreads(1, 1, 1)]
+void f() {
+  v(0u, float3x4(m));
+}
+
diff --git a/test/tint/expressions/type_ctor/mat3x4/inferred/identity/f32.wgsl.expected.ir.fxc.hlsl b/test/tint/expressions/type_ctor/mat3x4/inferred/identity/f32.wgsl.expected.ir.fxc.hlsl
index c6e1d96..f450927 100644
--- a/test/tint/expressions/type_ctor/mat3x4/inferred/identity/f32.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/expressions/type_ctor/mat3x4/inferred/identity/f32.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,14 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Construct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+static float3x4 m = float3x4(float4(0.0f, 1.0f, 2.0f, 3.0f), float4(4.0f, 5.0f, 6.0f, 7.0f), float4(8.0f, 9.0f, 10.0f, 11.0f));
+RWByteAddressBuffer tint_symbol : register(u0);
+void v(uint offset, float3x4 obj) {
+  tint_symbol.Store4((offset + 0u), asuint(obj[0u]));
+  tint_symbol.Store4((offset + 16u), asuint(obj[1u]));
+  tint_symbol.Store4((offset + 32u), asuint(obj[2u]));
+}
+
+[numthreads(1, 1, 1)]
+void f() {
+  v(0u, float3x4(m));
+}
+
diff --git a/test/tint/expressions/type_ctor/mat3x4/inferred/scalars/abstract-float.wgsl.expected.ir.dxc.hlsl b/test/tint/expressions/type_ctor/mat3x4/inferred/scalars/abstract-float.wgsl.expected.ir.dxc.hlsl
index 32bed45..6e964e8 100644
--- a/test/tint/expressions/type_ctor/mat3x4/inferred/scalars/abstract-float.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/expressions/type_ctor/mat3x4/inferred/scalars/abstract-float.wgsl.expected.ir.dxc.hlsl
@@ -1,12 +1,13 @@
-SKIP: FAILED
+
+RWByteAddressBuffer tint_symbol : register(u0);
+void v(uint offset, float3x4 obj) {
+  tint_symbol.Store4((offset + 0u), asuint(obj[0u]));
+  tint_symbol.Store4((offset + 16u), asuint(obj[1u]));
+  tint_symbol.Store4((offset + 32u), asuint(obj[2u]));
+}
 
 [numthreads(1, 1, 1)]
 void f() {
-  tint_symbol = float3x4(float4(0.0f, 1.0f, 2.0f, 3.0f), float4(4.0f, 5.0f, 6.0f, 7.0f), float4(8.0f, 9.0f, 10.0f, 11.0f));
+  v(0u, float3x4(float4(0.0f, 1.0f, 2.0f, 3.0f), float4(4.0f, 5.0f, 6.0f, 7.0f), float4(8.0f, 9.0f, 10.0f, 11.0f)));
 }
 
-DXC validation failure:
-hlsl.hlsl:3:3: error: use of undeclared identifier 'tint_symbol'
-  tint_symbol = float3x4(float4(0.0f, 1.0f, 2.0f, 3.0f), float4(4.0f, 5.0f, 6.0f, 7.0f), float4(8.0f, 9.0f, 10.0f, 11.0f));
-  ^
-
diff --git a/test/tint/expressions/type_ctor/mat3x4/inferred/scalars/abstract-float.wgsl.expected.ir.fxc.hlsl b/test/tint/expressions/type_ctor/mat3x4/inferred/scalars/abstract-float.wgsl.expected.ir.fxc.hlsl
index a22fa13..6e964e8 100644
--- a/test/tint/expressions/type_ctor/mat3x4/inferred/scalars/abstract-float.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/expressions/type_ctor/mat3x4/inferred/scalars/abstract-float.wgsl.expected.ir.fxc.hlsl
@@ -1,7 +1,13 @@
-SKIP: FAILED
+
+RWByteAddressBuffer tint_symbol : register(u0);
+void v(uint offset, float3x4 obj) {
+  tint_symbol.Store4((offset + 0u), asuint(obj[0u]));
+  tint_symbol.Store4((offset + 16u), asuint(obj[1u]));
+  tint_symbol.Store4((offset + 32u), asuint(obj[2u]));
+}
 
 [numthreads(1, 1, 1)]
 void f() {
-  tint_symbol = float3x4(float4(0.0f, 1.0f, 2.0f, 3.0f), float4(4.0f, 5.0f, 6.0f, 7.0f), float4(8.0f, 9.0f, 10.0f, 11.0f));
+  v(0u, float3x4(float4(0.0f, 1.0f, 2.0f, 3.0f), float4(4.0f, 5.0f, 6.0f, 7.0f), float4(8.0f, 9.0f, 10.0f, 11.0f)));
 }
 
diff --git a/test/tint/expressions/type_ctor/mat3x4/inferred/scalars/f16.wgsl.expected.ir.dxc.hlsl b/test/tint/expressions/type_ctor/mat3x4/inferred/scalars/f16.wgsl.expected.ir.dxc.hlsl
index 1616cea..953a763 100644
--- a/test/tint/expressions/type_ctor/mat3x4/inferred/scalars/f16.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/expressions/type_ctor/mat3x4/inferred/scalars/f16.wgsl.expected.ir.dxc.hlsl
@@ -1,15 +1,14 @@
-SKIP: FAILED
+
+static matrix<float16_t, 3, 4> m = matrix<float16_t, 3, 4>(vector<float16_t, 4>(float16_t(0.0h), float16_t(1.0h), float16_t(2.0h), float16_t(3.0h)), vector<float16_t, 4>(float16_t(4.0h), float16_t(5.0h), float16_t(6.0h), float16_t(7.0h)), vector<float16_t, 4>(float16_t(8.0h), float16_t(9.0h), float16_t(10.0h), float16_t(11.0h)));
+RWByteAddressBuffer tint_symbol : register(u0);
+void v(uint offset, matrix<float16_t, 3, 4> obj) {
+  tint_symbol.Store<vector<float16_t, 4> >((offset + 0u), obj[0u]);
+  tint_symbol.Store<vector<float16_t, 4> >((offset + 8u), obj[1u]);
+  tint_symbol.Store<vector<float16_t, 4> >((offset + 16u), obj[2u]);
+}
 
 [numthreads(1, 1, 1)]
 void f() {
-  tint_symbol = m;
+  v(0u, m);
 }
 
-DXC validation failure:
-hlsl.hlsl:3:3: error: use of undeclared identifier 'tint_symbol'
-  tint_symbol = m;
-  ^
-hlsl.hlsl:3:17: error: use of undeclared identifier 'm'
-  tint_symbol = m;
-                ^
-
diff --git a/test/tint/expressions/type_ctor/mat3x4/inferred/scalars/f16.wgsl.expected.ir.fxc.hlsl b/test/tint/expressions/type_ctor/mat3x4/inferred/scalars/f16.wgsl.expected.ir.fxc.hlsl
index 08b893f..9d4d203 100644
--- a/test/tint/expressions/type_ctor/mat3x4/inferred/scalars/f16.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/expressions/type_ctor/mat3x4/inferred/scalars/f16.wgsl.expected.ir.fxc.hlsl
@@ -1,7 +1,19 @@
 SKIP: FAILED
 
+
+static matrix<float16_t, 3, 4> m = matrix<float16_t, 3, 4>(vector<float16_t, 4>(float16_t(0.0h), float16_t(1.0h), float16_t(2.0h), float16_t(3.0h)), vector<float16_t, 4>(float16_t(4.0h), float16_t(5.0h), float16_t(6.0h), float16_t(7.0h)), vector<float16_t, 4>(float16_t(8.0h), float16_t(9.0h), float16_t(10.0h), float16_t(11.0h)));
+RWByteAddressBuffer tint_symbol : register(u0);
+void v(uint offset, matrix<float16_t, 3, 4> obj) {
+  tint_symbol.Store<vector<float16_t, 4> >((offset + 0u), obj[0u]);
+  tint_symbol.Store<vector<float16_t, 4> >((offset + 8u), obj[1u]);
+  tint_symbol.Store<vector<float16_t, 4> >((offset + 16u), obj[2u]);
+}
+
 [numthreads(1, 1, 1)]
 void f() {
-  tint_symbol = m;
+  v(0u, m);
 }
 
+FXC validation failure:
+c:\src\dawn\Shader@0x000001EA10E6D5E0(2,15-23): error X3000: syntax error: unexpected token 'float16_t'
+
diff --git a/test/tint/expressions/type_ctor/mat3x4/inferred/scalars/f32.wgsl.expected.ir.dxc.hlsl b/test/tint/expressions/type_ctor/mat3x4/inferred/scalars/f32.wgsl.expected.ir.dxc.hlsl
index 1616cea..dd69730 100644
--- a/test/tint/expressions/type_ctor/mat3x4/inferred/scalars/f32.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/expressions/type_ctor/mat3x4/inferred/scalars/f32.wgsl.expected.ir.dxc.hlsl
@@ -1,15 +1,14 @@
-SKIP: FAILED
+
+static float3x4 m = float3x4(float4(0.0f, 1.0f, 2.0f, 3.0f), float4(4.0f, 5.0f, 6.0f, 7.0f), float4(8.0f, 9.0f, 10.0f, 11.0f));
+RWByteAddressBuffer tint_symbol : register(u0);
+void v(uint offset, float3x4 obj) {
+  tint_symbol.Store4((offset + 0u), asuint(obj[0u]));
+  tint_symbol.Store4((offset + 16u), asuint(obj[1u]));
+  tint_symbol.Store4((offset + 32u), asuint(obj[2u]));
+}
 
 [numthreads(1, 1, 1)]
 void f() {
-  tint_symbol = m;
+  v(0u, m);
 }
 
-DXC validation failure:
-hlsl.hlsl:3:3: error: use of undeclared identifier 'tint_symbol'
-  tint_symbol = m;
-  ^
-hlsl.hlsl:3:17: error: use of undeclared identifier 'm'
-  tint_symbol = m;
-                ^
-
diff --git a/test/tint/expressions/type_ctor/mat3x4/inferred/scalars/f32.wgsl.expected.ir.fxc.hlsl b/test/tint/expressions/type_ctor/mat3x4/inferred/scalars/f32.wgsl.expected.ir.fxc.hlsl
index 08b893f..dd69730 100644
--- a/test/tint/expressions/type_ctor/mat3x4/inferred/scalars/f32.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/expressions/type_ctor/mat3x4/inferred/scalars/f32.wgsl.expected.ir.fxc.hlsl
@@ -1,7 +1,14 @@
-SKIP: FAILED
+
+static float3x4 m = float3x4(float4(0.0f, 1.0f, 2.0f, 3.0f), float4(4.0f, 5.0f, 6.0f, 7.0f), float4(8.0f, 9.0f, 10.0f, 11.0f));
+RWByteAddressBuffer tint_symbol : register(u0);
+void v(uint offset, float3x4 obj) {
+  tint_symbol.Store4((offset + 0u), asuint(obj[0u]));
+  tint_symbol.Store4((offset + 16u), asuint(obj[1u]));
+  tint_symbol.Store4((offset + 32u), asuint(obj[2u]));
+}
 
 [numthreads(1, 1, 1)]
 void f() {
-  tint_symbol = m;
+  v(0u, m);
 }
 
diff --git a/test/tint/expressions/type_ctor/mat3x4/inferred/vectors/abstract-float.wgsl.expected.ir.dxc.hlsl b/test/tint/expressions/type_ctor/mat3x4/inferred/vectors/abstract-float.wgsl.expected.ir.dxc.hlsl
index 32bed45..6e964e8 100644
--- a/test/tint/expressions/type_ctor/mat3x4/inferred/vectors/abstract-float.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/expressions/type_ctor/mat3x4/inferred/vectors/abstract-float.wgsl.expected.ir.dxc.hlsl
@@ -1,12 +1,13 @@
-SKIP: FAILED
+
+RWByteAddressBuffer tint_symbol : register(u0);
+void v(uint offset, float3x4 obj) {
+  tint_symbol.Store4((offset + 0u), asuint(obj[0u]));
+  tint_symbol.Store4((offset + 16u), asuint(obj[1u]));
+  tint_symbol.Store4((offset + 32u), asuint(obj[2u]));
+}
 
 [numthreads(1, 1, 1)]
 void f() {
-  tint_symbol = float3x4(float4(0.0f, 1.0f, 2.0f, 3.0f), float4(4.0f, 5.0f, 6.0f, 7.0f), float4(8.0f, 9.0f, 10.0f, 11.0f));
+  v(0u, float3x4(float4(0.0f, 1.0f, 2.0f, 3.0f), float4(4.0f, 5.0f, 6.0f, 7.0f), float4(8.0f, 9.0f, 10.0f, 11.0f)));
 }
 
-DXC validation failure:
-hlsl.hlsl:3:3: error: use of undeclared identifier 'tint_symbol'
-  tint_symbol = float3x4(float4(0.0f, 1.0f, 2.0f, 3.0f), float4(4.0f, 5.0f, 6.0f, 7.0f), float4(8.0f, 9.0f, 10.0f, 11.0f));
-  ^
-
diff --git a/test/tint/expressions/type_ctor/mat3x4/inferred/vectors/abstract-float.wgsl.expected.ir.fxc.hlsl b/test/tint/expressions/type_ctor/mat3x4/inferred/vectors/abstract-float.wgsl.expected.ir.fxc.hlsl
index a22fa13..6e964e8 100644
--- a/test/tint/expressions/type_ctor/mat3x4/inferred/vectors/abstract-float.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/expressions/type_ctor/mat3x4/inferred/vectors/abstract-float.wgsl.expected.ir.fxc.hlsl
@@ -1,7 +1,13 @@
-SKIP: FAILED
+
+RWByteAddressBuffer tint_symbol : register(u0);
+void v(uint offset, float3x4 obj) {
+  tint_symbol.Store4((offset + 0u), asuint(obj[0u]));
+  tint_symbol.Store4((offset + 16u), asuint(obj[1u]));
+  tint_symbol.Store4((offset + 32u), asuint(obj[2u]));
+}
 
 [numthreads(1, 1, 1)]
 void f() {
-  tint_symbol = float3x4(float4(0.0f, 1.0f, 2.0f, 3.0f), float4(4.0f, 5.0f, 6.0f, 7.0f), float4(8.0f, 9.0f, 10.0f, 11.0f));
+  v(0u, float3x4(float4(0.0f, 1.0f, 2.0f, 3.0f), float4(4.0f, 5.0f, 6.0f, 7.0f), float4(8.0f, 9.0f, 10.0f, 11.0f)));
 }
 
diff --git a/test/tint/expressions/type_ctor/mat3x4/inferred/vectors/f16.wgsl.expected.ir.dxc.hlsl b/test/tint/expressions/type_ctor/mat3x4/inferred/vectors/f16.wgsl.expected.ir.dxc.hlsl
index 1616cea..953a763 100644
--- a/test/tint/expressions/type_ctor/mat3x4/inferred/vectors/f16.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/expressions/type_ctor/mat3x4/inferred/vectors/f16.wgsl.expected.ir.dxc.hlsl
@@ -1,15 +1,14 @@
-SKIP: FAILED
+
+static matrix<float16_t, 3, 4> m = matrix<float16_t, 3, 4>(vector<float16_t, 4>(float16_t(0.0h), float16_t(1.0h), float16_t(2.0h), float16_t(3.0h)), vector<float16_t, 4>(float16_t(4.0h), float16_t(5.0h), float16_t(6.0h), float16_t(7.0h)), vector<float16_t, 4>(float16_t(8.0h), float16_t(9.0h), float16_t(10.0h), float16_t(11.0h)));
+RWByteAddressBuffer tint_symbol : register(u0);
+void v(uint offset, matrix<float16_t, 3, 4> obj) {
+  tint_symbol.Store<vector<float16_t, 4> >((offset + 0u), obj[0u]);
+  tint_symbol.Store<vector<float16_t, 4> >((offset + 8u), obj[1u]);
+  tint_symbol.Store<vector<float16_t, 4> >((offset + 16u), obj[2u]);
+}
 
 [numthreads(1, 1, 1)]
 void f() {
-  tint_symbol = m;
+  v(0u, m);
 }
 
-DXC validation failure:
-hlsl.hlsl:3:3: error: use of undeclared identifier 'tint_symbol'
-  tint_symbol = m;
-  ^
-hlsl.hlsl:3:17: error: use of undeclared identifier 'm'
-  tint_symbol = m;
-                ^
-
diff --git a/test/tint/expressions/type_ctor/mat3x4/inferred/vectors/f16.wgsl.expected.ir.fxc.hlsl b/test/tint/expressions/type_ctor/mat3x4/inferred/vectors/f16.wgsl.expected.ir.fxc.hlsl
index 08b893f..707e3e5 100644
--- a/test/tint/expressions/type_ctor/mat3x4/inferred/vectors/f16.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/expressions/type_ctor/mat3x4/inferred/vectors/f16.wgsl.expected.ir.fxc.hlsl
@@ -1,7 +1,19 @@
 SKIP: FAILED
 
+
+static matrix<float16_t, 3, 4> m = matrix<float16_t, 3, 4>(vector<float16_t, 4>(float16_t(0.0h), float16_t(1.0h), float16_t(2.0h), float16_t(3.0h)), vector<float16_t, 4>(float16_t(4.0h), float16_t(5.0h), float16_t(6.0h), float16_t(7.0h)), vector<float16_t, 4>(float16_t(8.0h), float16_t(9.0h), float16_t(10.0h), float16_t(11.0h)));
+RWByteAddressBuffer tint_symbol : register(u0);
+void v(uint offset, matrix<float16_t, 3, 4> obj) {
+  tint_symbol.Store<vector<float16_t, 4> >((offset + 0u), obj[0u]);
+  tint_symbol.Store<vector<float16_t, 4> >((offset + 8u), obj[1u]);
+  tint_symbol.Store<vector<float16_t, 4> >((offset + 16u), obj[2u]);
+}
+
 [numthreads(1, 1, 1)]
 void f() {
-  tint_symbol = m;
+  v(0u, m);
 }
 
+FXC validation failure:
+c:\src\dawn\Shader@0x000001FEF3DFE2F0(2,15-23): error X3000: syntax error: unexpected token 'float16_t'
+
diff --git a/test/tint/expressions/type_ctor/mat3x4/inferred/vectors/f32.wgsl.expected.ir.dxc.hlsl b/test/tint/expressions/type_ctor/mat3x4/inferred/vectors/f32.wgsl.expected.ir.dxc.hlsl
index 1616cea..dd69730 100644
--- a/test/tint/expressions/type_ctor/mat3x4/inferred/vectors/f32.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/expressions/type_ctor/mat3x4/inferred/vectors/f32.wgsl.expected.ir.dxc.hlsl
@@ -1,15 +1,14 @@
-SKIP: FAILED
+
+static float3x4 m = float3x4(float4(0.0f, 1.0f, 2.0f, 3.0f), float4(4.0f, 5.0f, 6.0f, 7.0f), float4(8.0f, 9.0f, 10.0f, 11.0f));
+RWByteAddressBuffer tint_symbol : register(u0);
+void v(uint offset, float3x4 obj) {
+  tint_symbol.Store4((offset + 0u), asuint(obj[0u]));
+  tint_symbol.Store4((offset + 16u), asuint(obj[1u]));
+  tint_symbol.Store4((offset + 32u), asuint(obj[2u]));
+}
 
 [numthreads(1, 1, 1)]
 void f() {
-  tint_symbol = m;
+  v(0u, m);
 }
 
-DXC validation failure:
-hlsl.hlsl:3:3: error: use of undeclared identifier 'tint_symbol'
-  tint_symbol = m;
-  ^
-hlsl.hlsl:3:17: error: use of undeclared identifier 'm'
-  tint_symbol = m;
-                ^
-
diff --git a/test/tint/expressions/type_ctor/mat3x4/inferred/vectors/f32.wgsl.expected.ir.fxc.hlsl b/test/tint/expressions/type_ctor/mat3x4/inferred/vectors/f32.wgsl.expected.ir.fxc.hlsl
index 08b893f..dd69730 100644
--- a/test/tint/expressions/type_ctor/mat3x4/inferred/vectors/f32.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/expressions/type_ctor/mat3x4/inferred/vectors/f32.wgsl.expected.ir.fxc.hlsl
@@ -1,7 +1,14 @@
-SKIP: FAILED
+
+static float3x4 m = float3x4(float4(0.0f, 1.0f, 2.0f, 3.0f), float4(4.0f, 5.0f, 6.0f, 7.0f), float4(8.0f, 9.0f, 10.0f, 11.0f));
+RWByteAddressBuffer tint_symbol : register(u0);
+void v(uint offset, float3x4 obj) {
+  tint_symbol.Store4((offset + 0u), asuint(obj[0u]));
+  tint_symbol.Store4((offset + 16u), asuint(obj[1u]));
+  tint_symbol.Store4((offset + 32u), asuint(obj[2u]));
+}
 
 [numthreads(1, 1, 1)]
 void f() {
-  tint_symbol = m;
+  v(0u, m);
 }
 
diff --git a/test/tint/expressions/type_ctor/mat3x4/load/f16.wgsl.expected.ir.dxc.hlsl b/test/tint/expressions/type_ctor/mat3x4/load/f16.wgsl.expected.ir.dxc.hlsl
index c6e1d96..0441a4f 100644
--- a/test/tint/expressions/type_ctor/mat3x4/load/f16.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/expressions/type_ctor/mat3x4/load/f16.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,14 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Construct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWByteAddressBuffer tint_symbol : register(u0);
+void v(uint offset, matrix<float16_t, 3, 4> obj) {
+  tint_symbol.Store<vector<float16_t, 4> >((offset + 0u), obj[0u]);
+  tint_symbol.Store<vector<float16_t, 4> >((offset + 8u), obj[1u]);
+  tint_symbol.Store<vector<float16_t, 4> >((offset + 16u), obj[2u]);
+}
+
+[numthreads(1, 1, 1)]
+void f() {
+  matrix<float16_t, 3, 4> m = matrix<float16_t, 3, 4>((float16_t(0.0h)).xxxx, (float16_t(0.0h)).xxxx, (float16_t(0.0h)).xxxx);
+  v(0u, matrix<float16_t, 3, 4>(m));
+}
+
diff --git a/test/tint/expressions/type_ctor/mat3x4/load/f16.wgsl.expected.ir.fxc.hlsl b/test/tint/expressions/type_ctor/mat3x4/load/f16.wgsl.expected.ir.fxc.hlsl
index c6e1d96..21fc360 100644
--- a/test/tint/expressions/type_ctor/mat3x4/load/f16.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/expressions/type_ctor/mat3x4/load/f16.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,20 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Construct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+
+RWByteAddressBuffer tint_symbol : register(u0);
+void v(uint offset, matrix<float16_t, 3, 4> obj) {
+  tint_symbol.Store<vector<float16_t, 4> >((offset + 0u), obj[0u]);
+  tint_symbol.Store<vector<float16_t, 4> >((offset + 8u), obj[1u]);
+  tint_symbol.Store<vector<float16_t, 4> >((offset + 16u), obj[2u]);
+}
+
+[numthreads(1, 1, 1)]
+void f() {
+  matrix<float16_t, 3, 4> m = matrix<float16_t, 3, 4>((float16_t(0.0h)).xxxx, (float16_t(0.0h)).xxxx, (float16_t(0.0h)).xxxx);
+  v(0u, matrix<float16_t, 3, 4>(m));
+}
+
+FXC validation failure:
+c:\src\dawn\Shader@0x0000018984637810(3,28-36): error X3000: syntax error: unexpected token 'float16_t'
+c:\src\dawn\Shader@0x0000018984637810(4,3-19): error X3018: invalid subscript 'Store'
+
diff --git a/test/tint/expressions/type_ctor/mat3x4/load/f32.wgsl.expected.ir.dxc.hlsl b/test/tint/expressions/type_ctor/mat3x4/load/f32.wgsl.expected.ir.dxc.hlsl
index c6e1d96..7720c36 100644
--- a/test/tint/expressions/type_ctor/mat3x4/load/f32.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/expressions/type_ctor/mat3x4/load/f32.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,14 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Construct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWByteAddressBuffer tint_symbol : register(u0);
+void v(uint offset, float3x4 obj) {
+  tint_symbol.Store4((offset + 0u), asuint(obj[0u]));
+  tint_symbol.Store4((offset + 16u), asuint(obj[1u]));
+  tint_symbol.Store4((offset + 32u), asuint(obj[2u]));
+}
+
+[numthreads(1, 1, 1)]
+void f() {
+  float3x4 m = float3x4((0.0f).xxxx, (0.0f).xxxx, (0.0f).xxxx);
+  v(0u, float3x4(m));
+}
+
diff --git a/test/tint/expressions/type_ctor/mat3x4/load/f32.wgsl.expected.ir.fxc.hlsl b/test/tint/expressions/type_ctor/mat3x4/load/f32.wgsl.expected.ir.fxc.hlsl
index c6e1d96..7720c36 100644
--- a/test/tint/expressions/type_ctor/mat3x4/load/f32.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/expressions/type_ctor/mat3x4/load/f32.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,14 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Construct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWByteAddressBuffer tint_symbol : register(u0);
+void v(uint offset, float3x4 obj) {
+  tint_symbol.Store4((offset + 0u), asuint(obj[0u]));
+  tint_symbol.Store4((offset + 16u), asuint(obj[1u]));
+  tint_symbol.Store4((offset + 32u), asuint(obj[2u]));
+}
+
+[numthreads(1, 1, 1)]
+void f() {
+  float3x4 m = float3x4((0.0f).xxxx, (0.0f).xxxx, (0.0f).xxxx);
+  v(0u, float3x4(m));
+}
+
diff --git a/test/tint/expressions/type_ctor/mat3x4/zero/f16.wgsl.expected.ir.dxc.hlsl b/test/tint/expressions/type_ctor/mat3x4/zero/f16.wgsl.expected.ir.dxc.hlsl
index 1616cea..b7791b6 100644
--- a/test/tint/expressions/type_ctor/mat3x4/zero/f16.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/expressions/type_ctor/mat3x4/zero/f16.wgsl.expected.ir.dxc.hlsl
@@ -1,15 +1,14 @@
-SKIP: FAILED
+
+static matrix<float16_t, 3, 4> m = matrix<float16_t, 3, 4>((float16_t(0.0h)).xxxx, (float16_t(0.0h)).xxxx, (float16_t(0.0h)).xxxx);
+RWByteAddressBuffer tint_symbol : register(u0);
+void v(uint offset, matrix<float16_t, 3, 4> obj) {
+  tint_symbol.Store<vector<float16_t, 4> >((offset + 0u), obj[0u]);
+  tint_symbol.Store<vector<float16_t, 4> >((offset + 8u), obj[1u]);
+  tint_symbol.Store<vector<float16_t, 4> >((offset + 16u), obj[2u]);
+}
 
 [numthreads(1, 1, 1)]
 void f() {
-  tint_symbol = m;
+  v(0u, m);
 }
 
-DXC validation failure:
-hlsl.hlsl:3:3: error: use of undeclared identifier 'tint_symbol'
-  tint_symbol = m;
-  ^
-hlsl.hlsl:3:17: error: use of undeclared identifier 'm'
-  tint_symbol = m;
-                ^
-
diff --git a/test/tint/expressions/type_ctor/mat3x4/zero/f16.wgsl.expected.ir.fxc.hlsl b/test/tint/expressions/type_ctor/mat3x4/zero/f16.wgsl.expected.ir.fxc.hlsl
index 08b893f..29396a2 100644
--- a/test/tint/expressions/type_ctor/mat3x4/zero/f16.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/expressions/type_ctor/mat3x4/zero/f16.wgsl.expected.ir.fxc.hlsl
@@ -1,7 +1,19 @@
 SKIP: FAILED
 
+
+static matrix<float16_t, 3, 4> m = matrix<float16_t, 3, 4>((float16_t(0.0h)).xxxx, (float16_t(0.0h)).xxxx, (float16_t(0.0h)).xxxx);
+RWByteAddressBuffer tint_symbol : register(u0);
+void v(uint offset, matrix<float16_t, 3, 4> obj) {
+  tint_symbol.Store<vector<float16_t, 4> >((offset + 0u), obj[0u]);
+  tint_symbol.Store<vector<float16_t, 4> >((offset + 8u), obj[1u]);
+  tint_symbol.Store<vector<float16_t, 4> >((offset + 16u), obj[2u]);
+}
+
 [numthreads(1, 1, 1)]
 void f() {
-  tint_symbol = m;
+  v(0u, m);
 }
 
+FXC validation failure:
+c:\src\dawn\Shader@0x0000023168886E80(2,15-23): error X3000: syntax error: unexpected token 'float16_t'
+
diff --git a/test/tint/expressions/type_ctor/mat3x4/zero/f32.wgsl.expected.ir.dxc.hlsl b/test/tint/expressions/type_ctor/mat3x4/zero/f32.wgsl.expected.ir.dxc.hlsl
index 1616cea..aabff94 100644
--- a/test/tint/expressions/type_ctor/mat3x4/zero/f32.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/expressions/type_ctor/mat3x4/zero/f32.wgsl.expected.ir.dxc.hlsl
@@ -1,15 +1,14 @@
-SKIP: FAILED
+
+static float3x4 m = float3x4((0.0f).xxxx, (0.0f).xxxx, (0.0f).xxxx);
+RWByteAddressBuffer tint_symbol : register(u0);
+void v(uint offset, float3x4 obj) {
+  tint_symbol.Store4((offset + 0u), asuint(obj[0u]));
+  tint_symbol.Store4((offset + 16u), asuint(obj[1u]));
+  tint_symbol.Store4((offset + 32u), asuint(obj[2u]));
+}
 
 [numthreads(1, 1, 1)]
 void f() {
-  tint_symbol = m;
+  v(0u, m);
 }
 
-DXC validation failure:
-hlsl.hlsl:3:3: error: use of undeclared identifier 'tint_symbol'
-  tint_symbol = m;
-  ^
-hlsl.hlsl:3:17: error: use of undeclared identifier 'm'
-  tint_symbol = m;
-                ^
-
diff --git a/test/tint/expressions/type_ctor/mat3x4/zero/f32.wgsl.expected.ir.fxc.hlsl b/test/tint/expressions/type_ctor/mat3x4/zero/f32.wgsl.expected.ir.fxc.hlsl
index 08b893f..aabff94 100644
--- a/test/tint/expressions/type_ctor/mat3x4/zero/f32.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/expressions/type_ctor/mat3x4/zero/f32.wgsl.expected.ir.fxc.hlsl
@@ -1,7 +1,14 @@
-SKIP: FAILED
+
+static float3x4 m = float3x4((0.0f).xxxx, (0.0f).xxxx, (0.0f).xxxx);
+RWByteAddressBuffer tint_symbol : register(u0);
+void v(uint offset, float3x4 obj) {
+  tint_symbol.Store4((offset + 0u), asuint(obj[0u]));
+  tint_symbol.Store4((offset + 16u), asuint(obj[1u]));
+  tint_symbol.Store4((offset + 32u), asuint(obj[2u]));
+}
 
 [numthreads(1, 1, 1)]
 void f() {
-  tint_symbol = m;
+  v(0u, m);
 }
 
diff --git a/test/tint/expressions/type_ctor/mat4x2/explicit/identity/f16.wgsl.expected.ir.dxc.hlsl b/test/tint/expressions/type_ctor/mat4x2/explicit/identity/f16.wgsl.expected.ir.dxc.hlsl
index c6e1d96..63cf64e 100644
--- a/test/tint/expressions/type_ctor/mat4x2/explicit/identity/f16.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/expressions/type_ctor/mat4x2/explicit/identity/f16.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,15 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Construct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+static matrix<float16_t, 4, 2> m = matrix<float16_t, 4, 2>(vector<float16_t, 2>(float16_t(0.0h), float16_t(1.0h)), vector<float16_t, 2>(float16_t(2.0h), float16_t(3.0h)), vector<float16_t, 2>(float16_t(4.0h), float16_t(5.0h)), vector<float16_t, 2>(float16_t(6.0h), float16_t(7.0h)));
+RWByteAddressBuffer tint_symbol : register(u0);
+void v(uint offset, matrix<float16_t, 4, 2> obj) {
+  tint_symbol.Store<vector<float16_t, 2> >((offset + 0u), obj[0u]);
+  tint_symbol.Store<vector<float16_t, 2> >((offset + 4u), obj[1u]);
+  tint_symbol.Store<vector<float16_t, 2> >((offset + 8u), obj[2u]);
+  tint_symbol.Store<vector<float16_t, 2> >((offset + 12u), obj[3u]);
+}
+
+[numthreads(1, 1, 1)]
+void f() {
+  v(0u, matrix<float16_t, 4, 2>(m));
+}
+
diff --git a/test/tint/expressions/type_ctor/mat4x2/explicit/identity/f16.wgsl.expected.ir.fxc.hlsl b/test/tint/expressions/type_ctor/mat4x2/explicit/identity/f16.wgsl.expected.ir.fxc.hlsl
index c6e1d96..690448e 100644
--- a/test/tint/expressions/type_ctor/mat4x2/explicit/identity/f16.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/expressions/type_ctor/mat4x2/explicit/identity/f16.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,20 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Construct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+
+static matrix<float16_t, 4, 2> m = matrix<float16_t, 4, 2>(vector<float16_t, 2>(float16_t(0.0h), float16_t(1.0h)), vector<float16_t, 2>(float16_t(2.0h), float16_t(3.0h)), vector<float16_t, 2>(float16_t(4.0h), float16_t(5.0h)), vector<float16_t, 2>(float16_t(6.0h), float16_t(7.0h)));
+RWByteAddressBuffer tint_symbol : register(u0);
+void v(uint offset, matrix<float16_t, 4, 2> obj) {
+  tint_symbol.Store<vector<float16_t, 2> >((offset + 0u), obj[0u]);
+  tint_symbol.Store<vector<float16_t, 2> >((offset + 4u), obj[1u]);
+  tint_symbol.Store<vector<float16_t, 2> >((offset + 8u), obj[2u]);
+  tint_symbol.Store<vector<float16_t, 2> >((offset + 12u), obj[3u]);
+}
+
+[numthreads(1, 1, 1)]
+void f() {
+  v(0u, matrix<float16_t, 4, 2>(m));
+}
+
+FXC validation failure:
+c:\src\dawn\Shader@0x0000021B6C70E3E0(2,15-23): error X3000: syntax error: unexpected token 'float16_t'
+
diff --git a/test/tint/expressions/type_ctor/mat4x2/explicit/identity/f32.wgsl.expected.ir.dxc.hlsl b/test/tint/expressions/type_ctor/mat4x2/explicit/identity/f32.wgsl.expected.ir.dxc.hlsl
index c6e1d96..1ca3ef6 100644
--- a/test/tint/expressions/type_ctor/mat4x2/explicit/identity/f32.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/expressions/type_ctor/mat4x2/explicit/identity/f32.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,15 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Construct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+static float4x2 m = float4x2(float2(0.0f, 1.0f), float2(2.0f, 3.0f), float2(4.0f, 5.0f), float2(6.0f, 7.0f));
+RWByteAddressBuffer tint_symbol : register(u0);
+void v(uint offset, float4x2 obj) {
+  tint_symbol.Store2((offset + 0u), asuint(obj[0u]));
+  tint_symbol.Store2((offset + 8u), asuint(obj[1u]));
+  tint_symbol.Store2((offset + 16u), asuint(obj[2u]));
+  tint_symbol.Store2((offset + 24u), asuint(obj[3u]));
+}
+
+[numthreads(1, 1, 1)]
+void f() {
+  v(0u, float4x2(m));
+}
+
diff --git a/test/tint/expressions/type_ctor/mat4x2/explicit/identity/f32.wgsl.expected.ir.fxc.hlsl b/test/tint/expressions/type_ctor/mat4x2/explicit/identity/f32.wgsl.expected.ir.fxc.hlsl
index c6e1d96..1ca3ef6 100644
--- a/test/tint/expressions/type_ctor/mat4x2/explicit/identity/f32.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/expressions/type_ctor/mat4x2/explicit/identity/f32.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,15 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Construct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+static float4x2 m = float4x2(float2(0.0f, 1.0f), float2(2.0f, 3.0f), float2(4.0f, 5.0f), float2(6.0f, 7.0f));
+RWByteAddressBuffer tint_symbol : register(u0);
+void v(uint offset, float4x2 obj) {
+  tint_symbol.Store2((offset + 0u), asuint(obj[0u]));
+  tint_symbol.Store2((offset + 8u), asuint(obj[1u]));
+  tint_symbol.Store2((offset + 16u), asuint(obj[2u]));
+  tint_symbol.Store2((offset + 24u), asuint(obj[3u]));
+}
+
+[numthreads(1, 1, 1)]
+void f() {
+  v(0u, float4x2(m));
+}
+
diff --git a/test/tint/expressions/type_ctor/mat4x2/explicit/scalars/f16.wgsl.expected.ir.dxc.hlsl b/test/tint/expressions/type_ctor/mat4x2/explicit/scalars/f16.wgsl.expected.ir.dxc.hlsl
index 1616cea..0e27210 100644
--- a/test/tint/expressions/type_ctor/mat4x2/explicit/scalars/f16.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/expressions/type_ctor/mat4x2/explicit/scalars/f16.wgsl.expected.ir.dxc.hlsl
@@ -1,15 +1,15 @@
-SKIP: FAILED
+
+static matrix<float16_t, 4, 2> m = matrix<float16_t, 4, 2>(vector<float16_t, 2>(float16_t(0.0h), float16_t(1.0h)), vector<float16_t, 2>(float16_t(2.0h), float16_t(3.0h)), vector<float16_t, 2>(float16_t(4.0h), float16_t(5.0h)), vector<float16_t, 2>(float16_t(6.0h), float16_t(7.0h)));
+RWByteAddressBuffer tint_symbol : register(u0);
+void v(uint offset, matrix<float16_t, 4, 2> obj) {
+  tint_symbol.Store<vector<float16_t, 2> >((offset + 0u), obj[0u]);
+  tint_symbol.Store<vector<float16_t, 2> >((offset + 4u), obj[1u]);
+  tint_symbol.Store<vector<float16_t, 2> >((offset + 8u), obj[2u]);
+  tint_symbol.Store<vector<float16_t, 2> >((offset + 12u), obj[3u]);
+}
 
 [numthreads(1, 1, 1)]
 void f() {
-  tint_symbol = m;
+  v(0u, m);
 }
 
-DXC validation failure:
-hlsl.hlsl:3:3: error: use of undeclared identifier 'tint_symbol'
-  tint_symbol = m;
-  ^
-hlsl.hlsl:3:17: error: use of undeclared identifier 'm'
-  tint_symbol = m;
-                ^
-
diff --git a/test/tint/expressions/type_ctor/mat4x2/explicit/scalars/f16.wgsl.expected.ir.fxc.hlsl b/test/tint/expressions/type_ctor/mat4x2/explicit/scalars/f16.wgsl.expected.ir.fxc.hlsl
index 08b893f..d408fad 100644
--- a/test/tint/expressions/type_ctor/mat4x2/explicit/scalars/f16.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/expressions/type_ctor/mat4x2/explicit/scalars/f16.wgsl.expected.ir.fxc.hlsl
@@ -1,7 +1,20 @@
 SKIP: FAILED
 
+
+static matrix<float16_t, 4, 2> m = matrix<float16_t, 4, 2>(vector<float16_t, 2>(float16_t(0.0h), float16_t(1.0h)), vector<float16_t, 2>(float16_t(2.0h), float16_t(3.0h)), vector<float16_t, 2>(float16_t(4.0h), float16_t(5.0h)), vector<float16_t, 2>(float16_t(6.0h), float16_t(7.0h)));
+RWByteAddressBuffer tint_symbol : register(u0);
+void v(uint offset, matrix<float16_t, 4, 2> obj) {
+  tint_symbol.Store<vector<float16_t, 2> >((offset + 0u), obj[0u]);
+  tint_symbol.Store<vector<float16_t, 2> >((offset + 4u), obj[1u]);
+  tint_symbol.Store<vector<float16_t, 2> >((offset + 8u), obj[2u]);
+  tint_symbol.Store<vector<float16_t, 2> >((offset + 12u), obj[3u]);
+}
+
 [numthreads(1, 1, 1)]
 void f() {
-  tint_symbol = m;
+  v(0u, m);
 }
 
+FXC validation failure:
+c:\src\dawn\Shader@0x00000149EAE5E8B0(2,15-23): error X3000: syntax error: unexpected token 'float16_t'
+
diff --git a/test/tint/expressions/type_ctor/mat4x2/explicit/scalars/f32.wgsl.expected.ir.dxc.hlsl b/test/tint/expressions/type_ctor/mat4x2/explicit/scalars/f32.wgsl.expected.ir.dxc.hlsl
index 1616cea..922bfa0 100644
--- a/test/tint/expressions/type_ctor/mat4x2/explicit/scalars/f32.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/expressions/type_ctor/mat4x2/explicit/scalars/f32.wgsl.expected.ir.dxc.hlsl
@@ -1,15 +1,15 @@
-SKIP: FAILED
+
+static float4x2 m = float4x2(float2(0.0f, 1.0f), float2(2.0f, 3.0f), float2(4.0f, 5.0f), float2(6.0f, 7.0f));
+RWByteAddressBuffer tint_symbol : register(u0);
+void v(uint offset, float4x2 obj) {
+  tint_symbol.Store2((offset + 0u), asuint(obj[0u]));
+  tint_symbol.Store2((offset + 8u), asuint(obj[1u]));
+  tint_symbol.Store2((offset + 16u), asuint(obj[2u]));
+  tint_symbol.Store2((offset + 24u), asuint(obj[3u]));
+}
 
 [numthreads(1, 1, 1)]
 void f() {
-  tint_symbol = m;
+  v(0u, m);
 }
 
-DXC validation failure:
-hlsl.hlsl:3:3: error: use of undeclared identifier 'tint_symbol'
-  tint_symbol = m;
-  ^
-hlsl.hlsl:3:17: error: use of undeclared identifier 'm'
-  tint_symbol = m;
-                ^
-
diff --git a/test/tint/expressions/type_ctor/mat4x2/explicit/scalars/f32.wgsl.expected.ir.fxc.hlsl b/test/tint/expressions/type_ctor/mat4x2/explicit/scalars/f32.wgsl.expected.ir.fxc.hlsl
index 08b893f..922bfa0 100644
--- a/test/tint/expressions/type_ctor/mat4x2/explicit/scalars/f32.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/expressions/type_ctor/mat4x2/explicit/scalars/f32.wgsl.expected.ir.fxc.hlsl
@@ -1,7 +1,15 @@
-SKIP: FAILED
+
+static float4x2 m = float4x2(float2(0.0f, 1.0f), float2(2.0f, 3.0f), float2(4.0f, 5.0f), float2(6.0f, 7.0f));
+RWByteAddressBuffer tint_symbol : register(u0);
+void v(uint offset, float4x2 obj) {
+  tint_symbol.Store2((offset + 0u), asuint(obj[0u]));
+  tint_symbol.Store2((offset + 8u), asuint(obj[1u]));
+  tint_symbol.Store2((offset + 16u), asuint(obj[2u]));
+  tint_symbol.Store2((offset + 24u), asuint(obj[3u]));
+}
 
 [numthreads(1, 1, 1)]
 void f() {
-  tint_symbol = m;
+  v(0u, m);
 }
 
diff --git a/test/tint/expressions/type_ctor/mat4x2/explicit/vectors/f16.wgsl.expected.ir.dxc.hlsl b/test/tint/expressions/type_ctor/mat4x2/explicit/vectors/f16.wgsl.expected.ir.dxc.hlsl
index 1616cea..0e27210 100644
--- a/test/tint/expressions/type_ctor/mat4x2/explicit/vectors/f16.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/expressions/type_ctor/mat4x2/explicit/vectors/f16.wgsl.expected.ir.dxc.hlsl
@@ -1,15 +1,15 @@
-SKIP: FAILED
+
+static matrix<float16_t, 4, 2> m = matrix<float16_t, 4, 2>(vector<float16_t, 2>(float16_t(0.0h), float16_t(1.0h)), vector<float16_t, 2>(float16_t(2.0h), float16_t(3.0h)), vector<float16_t, 2>(float16_t(4.0h), float16_t(5.0h)), vector<float16_t, 2>(float16_t(6.0h), float16_t(7.0h)));
+RWByteAddressBuffer tint_symbol : register(u0);
+void v(uint offset, matrix<float16_t, 4, 2> obj) {
+  tint_symbol.Store<vector<float16_t, 2> >((offset + 0u), obj[0u]);
+  tint_symbol.Store<vector<float16_t, 2> >((offset + 4u), obj[1u]);
+  tint_symbol.Store<vector<float16_t, 2> >((offset + 8u), obj[2u]);
+  tint_symbol.Store<vector<float16_t, 2> >((offset + 12u), obj[3u]);
+}
 
 [numthreads(1, 1, 1)]
 void f() {
-  tint_symbol = m;
+  v(0u, m);
 }
 
-DXC validation failure:
-hlsl.hlsl:3:3: error: use of undeclared identifier 'tint_symbol'
-  tint_symbol = m;
-  ^
-hlsl.hlsl:3:17: error: use of undeclared identifier 'm'
-  tint_symbol = m;
-                ^
-
diff --git a/test/tint/expressions/type_ctor/mat4x2/explicit/vectors/f16.wgsl.expected.ir.fxc.hlsl b/test/tint/expressions/type_ctor/mat4x2/explicit/vectors/f16.wgsl.expected.ir.fxc.hlsl
index 08b893f..bea0662 100644
--- a/test/tint/expressions/type_ctor/mat4x2/explicit/vectors/f16.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/expressions/type_ctor/mat4x2/explicit/vectors/f16.wgsl.expected.ir.fxc.hlsl
@@ -1,7 +1,20 @@
 SKIP: FAILED
 
+
+static matrix<float16_t, 4, 2> m = matrix<float16_t, 4, 2>(vector<float16_t, 2>(float16_t(0.0h), float16_t(1.0h)), vector<float16_t, 2>(float16_t(2.0h), float16_t(3.0h)), vector<float16_t, 2>(float16_t(4.0h), float16_t(5.0h)), vector<float16_t, 2>(float16_t(6.0h), float16_t(7.0h)));
+RWByteAddressBuffer tint_symbol : register(u0);
+void v(uint offset, matrix<float16_t, 4, 2> obj) {
+  tint_symbol.Store<vector<float16_t, 2> >((offset + 0u), obj[0u]);
+  tint_symbol.Store<vector<float16_t, 2> >((offset + 4u), obj[1u]);
+  tint_symbol.Store<vector<float16_t, 2> >((offset + 8u), obj[2u]);
+  tint_symbol.Store<vector<float16_t, 2> >((offset + 12u), obj[3u]);
+}
+
 [numthreads(1, 1, 1)]
 void f() {
-  tint_symbol = m;
+  v(0u, m);
 }
 
+FXC validation failure:
+c:\src\dawn\Shader@0x00000288380BF4A0(2,15-23): error X3000: syntax error: unexpected token 'float16_t'
+
diff --git a/test/tint/expressions/type_ctor/mat4x2/explicit/vectors/f32.wgsl.expected.ir.dxc.hlsl b/test/tint/expressions/type_ctor/mat4x2/explicit/vectors/f32.wgsl.expected.ir.dxc.hlsl
index 1616cea..922bfa0 100644
--- a/test/tint/expressions/type_ctor/mat4x2/explicit/vectors/f32.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/expressions/type_ctor/mat4x2/explicit/vectors/f32.wgsl.expected.ir.dxc.hlsl
@@ -1,15 +1,15 @@
-SKIP: FAILED
+
+static float4x2 m = float4x2(float2(0.0f, 1.0f), float2(2.0f, 3.0f), float2(4.0f, 5.0f), float2(6.0f, 7.0f));
+RWByteAddressBuffer tint_symbol : register(u0);
+void v(uint offset, float4x2 obj) {
+  tint_symbol.Store2((offset + 0u), asuint(obj[0u]));
+  tint_symbol.Store2((offset + 8u), asuint(obj[1u]));
+  tint_symbol.Store2((offset + 16u), asuint(obj[2u]));
+  tint_symbol.Store2((offset + 24u), asuint(obj[3u]));
+}
 
 [numthreads(1, 1, 1)]
 void f() {
-  tint_symbol = m;
+  v(0u, m);
 }
 
-DXC validation failure:
-hlsl.hlsl:3:3: error: use of undeclared identifier 'tint_symbol'
-  tint_symbol = m;
-  ^
-hlsl.hlsl:3:17: error: use of undeclared identifier 'm'
-  tint_symbol = m;
-                ^
-
diff --git a/test/tint/expressions/type_ctor/mat4x2/explicit/vectors/f32.wgsl.expected.ir.fxc.hlsl b/test/tint/expressions/type_ctor/mat4x2/explicit/vectors/f32.wgsl.expected.ir.fxc.hlsl
index 08b893f..922bfa0 100644
--- a/test/tint/expressions/type_ctor/mat4x2/explicit/vectors/f32.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/expressions/type_ctor/mat4x2/explicit/vectors/f32.wgsl.expected.ir.fxc.hlsl
@@ -1,7 +1,15 @@
-SKIP: FAILED
+
+static float4x2 m = float4x2(float2(0.0f, 1.0f), float2(2.0f, 3.0f), float2(4.0f, 5.0f), float2(6.0f, 7.0f));
+RWByteAddressBuffer tint_symbol : register(u0);
+void v(uint offset, float4x2 obj) {
+  tint_symbol.Store2((offset + 0u), asuint(obj[0u]));
+  tint_symbol.Store2((offset + 8u), asuint(obj[1u]));
+  tint_symbol.Store2((offset + 16u), asuint(obj[2u]));
+  tint_symbol.Store2((offset + 24u), asuint(obj[3u]));
+}
 
 [numthreads(1, 1, 1)]
 void f() {
-  tint_symbol = m;
+  v(0u, m);
 }
 
diff --git a/test/tint/expressions/type_ctor/mat4x2/inferred/identity/f16.wgsl.expected.ir.dxc.hlsl b/test/tint/expressions/type_ctor/mat4x2/inferred/identity/f16.wgsl.expected.ir.dxc.hlsl
index c6e1d96..63cf64e 100644
--- a/test/tint/expressions/type_ctor/mat4x2/inferred/identity/f16.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/expressions/type_ctor/mat4x2/inferred/identity/f16.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,15 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Construct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+static matrix<float16_t, 4, 2> m = matrix<float16_t, 4, 2>(vector<float16_t, 2>(float16_t(0.0h), float16_t(1.0h)), vector<float16_t, 2>(float16_t(2.0h), float16_t(3.0h)), vector<float16_t, 2>(float16_t(4.0h), float16_t(5.0h)), vector<float16_t, 2>(float16_t(6.0h), float16_t(7.0h)));
+RWByteAddressBuffer tint_symbol : register(u0);
+void v(uint offset, matrix<float16_t, 4, 2> obj) {
+  tint_symbol.Store<vector<float16_t, 2> >((offset + 0u), obj[0u]);
+  tint_symbol.Store<vector<float16_t, 2> >((offset + 4u), obj[1u]);
+  tint_symbol.Store<vector<float16_t, 2> >((offset + 8u), obj[2u]);
+  tint_symbol.Store<vector<float16_t, 2> >((offset + 12u), obj[3u]);
+}
+
+[numthreads(1, 1, 1)]
+void f() {
+  v(0u, matrix<float16_t, 4, 2>(m));
+}
+
diff --git a/test/tint/expressions/type_ctor/mat4x2/inferred/identity/f16.wgsl.expected.ir.fxc.hlsl b/test/tint/expressions/type_ctor/mat4x2/inferred/identity/f16.wgsl.expected.ir.fxc.hlsl
index c6e1d96..d08b628 100644
--- a/test/tint/expressions/type_ctor/mat4x2/inferred/identity/f16.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/expressions/type_ctor/mat4x2/inferred/identity/f16.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,20 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Construct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+
+static matrix<float16_t, 4, 2> m = matrix<float16_t, 4, 2>(vector<float16_t, 2>(float16_t(0.0h), float16_t(1.0h)), vector<float16_t, 2>(float16_t(2.0h), float16_t(3.0h)), vector<float16_t, 2>(float16_t(4.0h), float16_t(5.0h)), vector<float16_t, 2>(float16_t(6.0h), float16_t(7.0h)));
+RWByteAddressBuffer tint_symbol : register(u0);
+void v(uint offset, matrix<float16_t, 4, 2> obj) {
+  tint_symbol.Store<vector<float16_t, 2> >((offset + 0u), obj[0u]);
+  tint_symbol.Store<vector<float16_t, 2> >((offset + 4u), obj[1u]);
+  tint_symbol.Store<vector<float16_t, 2> >((offset + 8u), obj[2u]);
+  tint_symbol.Store<vector<float16_t, 2> >((offset + 12u), obj[3u]);
+}
+
+[numthreads(1, 1, 1)]
+void f() {
+  v(0u, matrix<float16_t, 4, 2>(m));
+}
+
+FXC validation failure:
+c:\src\dawn\Shader@0x000001B572C60730(2,15-23): error X3000: syntax error: unexpected token 'float16_t'
+
diff --git a/test/tint/expressions/type_ctor/mat4x2/inferred/identity/f32.wgsl.expected.ir.dxc.hlsl b/test/tint/expressions/type_ctor/mat4x2/inferred/identity/f32.wgsl.expected.ir.dxc.hlsl
index c6e1d96..1ca3ef6 100644
--- a/test/tint/expressions/type_ctor/mat4x2/inferred/identity/f32.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/expressions/type_ctor/mat4x2/inferred/identity/f32.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,15 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Construct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+static float4x2 m = float4x2(float2(0.0f, 1.0f), float2(2.0f, 3.0f), float2(4.0f, 5.0f), float2(6.0f, 7.0f));
+RWByteAddressBuffer tint_symbol : register(u0);
+void v(uint offset, float4x2 obj) {
+  tint_symbol.Store2((offset + 0u), asuint(obj[0u]));
+  tint_symbol.Store2((offset + 8u), asuint(obj[1u]));
+  tint_symbol.Store2((offset + 16u), asuint(obj[2u]));
+  tint_symbol.Store2((offset + 24u), asuint(obj[3u]));
+}
+
+[numthreads(1, 1, 1)]
+void f() {
+  v(0u, float4x2(m));
+}
+
diff --git a/test/tint/expressions/type_ctor/mat4x2/inferred/identity/f32.wgsl.expected.ir.fxc.hlsl b/test/tint/expressions/type_ctor/mat4x2/inferred/identity/f32.wgsl.expected.ir.fxc.hlsl
index c6e1d96..1ca3ef6 100644
--- a/test/tint/expressions/type_ctor/mat4x2/inferred/identity/f32.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/expressions/type_ctor/mat4x2/inferred/identity/f32.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,15 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Construct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+static float4x2 m = float4x2(float2(0.0f, 1.0f), float2(2.0f, 3.0f), float2(4.0f, 5.0f), float2(6.0f, 7.0f));
+RWByteAddressBuffer tint_symbol : register(u0);
+void v(uint offset, float4x2 obj) {
+  tint_symbol.Store2((offset + 0u), asuint(obj[0u]));
+  tint_symbol.Store2((offset + 8u), asuint(obj[1u]));
+  tint_symbol.Store2((offset + 16u), asuint(obj[2u]));
+  tint_symbol.Store2((offset + 24u), asuint(obj[3u]));
+}
+
+[numthreads(1, 1, 1)]
+void f() {
+  v(0u, float4x2(m));
+}
+
diff --git a/test/tint/expressions/type_ctor/mat4x2/inferred/scalars/abstract-float.wgsl.expected.ir.dxc.hlsl b/test/tint/expressions/type_ctor/mat4x2/inferred/scalars/abstract-float.wgsl.expected.ir.dxc.hlsl
index a583aa2..52a7670 100644
--- a/test/tint/expressions/type_ctor/mat4x2/inferred/scalars/abstract-float.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/expressions/type_ctor/mat4x2/inferred/scalars/abstract-float.wgsl.expected.ir.dxc.hlsl
@@ -1,12 +1,14 @@
-SKIP: FAILED
+
+RWByteAddressBuffer tint_symbol : register(u0);
+void v(uint offset, float4x2 obj) {
+  tint_symbol.Store2((offset + 0u), asuint(obj[0u]));
+  tint_symbol.Store2((offset + 8u), asuint(obj[1u]));
+  tint_symbol.Store2((offset + 16u), asuint(obj[2u]));
+  tint_symbol.Store2((offset + 24u), asuint(obj[3u]));
+}
 
 [numthreads(1, 1, 1)]
 void f() {
-  tint_symbol = float4x2(float2(0.0f, 1.0f), float2(2.0f, 3.0f), float2(4.0f, 5.0f), float2(6.0f, 7.0f));
+  v(0u, float4x2(float2(0.0f, 1.0f), float2(2.0f, 3.0f), float2(4.0f, 5.0f), float2(6.0f, 7.0f)));
 }
 
-DXC validation failure:
-hlsl.hlsl:3:3: error: use of undeclared identifier 'tint_symbol'
-  tint_symbol = float4x2(float2(0.0f, 1.0f), float2(2.0f, 3.0f), float2(4.0f, 5.0f), float2(6.0f, 7.0f));
-  ^
-
diff --git a/test/tint/expressions/type_ctor/mat4x2/inferred/scalars/abstract-float.wgsl.expected.ir.fxc.hlsl b/test/tint/expressions/type_ctor/mat4x2/inferred/scalars/abstract-float.wgsl.expected.ir.fxc.hlsl
index 92c8819..52a7670 100644
--- a/test/tint/expressions/type_ctor/mat4x2/inferred/scalars/abstract-float.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/expressions/type_ctor/mat4x2/inferred/scalars/abstract-float.wgsl.expected.ir.fxc.hlsl
@@ -1,7 +1,14 @@
-SKIP: FAILED
+
+RWByteAddressBuffer tint_symbol : register(u0);
+void v(uint offset, float4x2 obj) {
+  tint_symbol.Store2((offset + 0u), asuint(obj[0u]));
+  tint_symbol.Store2((offset + 8u), asuint(obj[1u]));
+  tint_symbol.Store2((offset + 16u), asuint(obj[2u]));
+  tint_symbol.Store2((offset + 24u), asuint(obj[3u]));
+}
 
 [numthreads(1, 1, 1)]
 void f() {
-  tint_symbol = float4x2(float2(0.0f, 1.0f), float2(2.0f, 3.0f), float2(4.0f, 5.0f), float2(6.0f, 7.0f));
+  v(0u, float4x2(float2(0.0f, 1.0f), float2(2.0f, 3.0f), float2(4.0f, 5.0f), float2(6.0f, 7.0f)));
 }
 
diff --git a/test/tint/expressions/type_ctor/mat4x2/inferred/scalars/f16.wgsl.expected.ir.dxc.hlsl b/test/tint/expressions/type_ctor/mat4x2/inferred/scalars/f16.wgsl.expected.ir.dxc.hlsl
index 1616cea..0e27210 100644
--- a/test/tint/expressions/type_ctor/mat4x2/inferred/scalars/f16.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/expressions/type_ctor/mat4x2/inferred/scalars/f16.wgsl.expected.ir.dxc.hlsl
@@ -1,15 +1,15 @@
-SKIP: FAILED
+
+static matrix<float16_t, 4, 2> m = matrix<float16_t, 4, 2>(vector<float16_t, 2>(float16_t(0.0h), float16_t(1.0h)), vector<float16_t, 2>(float16_t(2.0h), float16_t(3.0h)), vector<float16_t, 2>(float16_t(4.0h), float16_t(5.0h)), vector<float16_t, 2>(float16_t(6.0h), float16_t(7.0h)));
+RWByteAddressBuffer tint_symbol : register(u0);
+void v(uint offset, matrix<float16_t, 4, 2> obj) {
+  tint_symbol.Store<vector<float16_t, 2> >((offset + 0u), obj[0u]);
+  tint_symbol.Store<vector<float16_t, 2> >((offset + 4u), obj[1u]);
+  tint_symbol.Store<vector<float16_t, 2> >((offset + 8u), obj[2u]);
+  tint_symbol.Store<vector<float16_t, 2> >((offset + 12u), obj[3u]);
+}
 
 [numthreads(1, 1, 1)]
 void f() {
-  tint_symbol = m;
+  v(0u, m);
 }
 
-DXC validation failure:
-hlsl.hlsl:3:3: error: use of undeclared identifier 'tint_symbol'
-  tint_symbol = m;
-  ^
-hlsl.hlsl:3:17: error: use of undeclared identifier 'm'
-  tint_symbol = m;
-                ^
-
diff --git a/test/tint/expressions/type_ctor/mat4x2/inferred/scalars/f16.wgsl.expected.ir.fxc.hlsl b/test/tint/expressions/type_ctor/mat4x2/inferred/scalars/f16.wgsl.expected.ir.fxc.hlsl
index 08b893f..d76eaba 100644
--- a/test/tint/expressions/type_ctor/mat4x2/inferred/scalars/f16.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/expressions/type_ctor/mat4x2/inferred/scalars/f16.wgsl.expected.ir.fxc.hlsl
@@ -1,7 +1,20 @@
 SKIP: FAILED
 
+
+static matrix<float16_t, 4, 2> m = matrix<float16_t, 4, 2>(vector<float16_t, 2>(float16_t(0.0h), float16_t(1.0h)), vector<float16_t, 2>(float16_t(2.0h), float16_t(3.0h)), vector<float16_t, 2>(float16_t(4.0h), float16_t(5.0h)), vector<float16_t, 2>(float16_t(6.0h), float16_t(7.0h)));
+RWByteAddressBuffer tint_symbol : register(u0);
+void v(uint offset, matrix<float16_t, 4, 2> obj) {
+  tint_symbol.Store<vector<float16_t, 2> >((offset + 0u), obj[0u]);
+  tint_symbol.Store<vector<float16_t, 2> >((offset + 4u), obj[1u]);
+  tint_symbol.Store<vector<float16_t, 2> >((offset + 8u), obj[2u]);
+  tint_symbol.Store<vector<float16_t, 2> >((offset + 12u), obj[3u]);
+}
+
 [numthreads(1, 1, 1)]
 void f() {
-  tint_symbol = m;
+  v(0u, m);
 }
 
+FXC validation failure:
+c:\src\dawn\Shader@0x0000012A42B00780(2,15-23): error X3000: syntax error: unexpected token 'float16_t'
+
diff --git a/test/tint/expressions/type_ctor/mat4x2/inferred/scalars/f32.wgsl.expected.ir.dxc.hlsl b/test/tint/expressions/type_ctor/mat4x2/inferred/scalars/f32.wgsl.expected.ir.dxc.hlsl
index 1616cea..922bfa0 100644
--- a/test/tint/expressions/type_ctor/mat4x2/inferred/scalars/f32.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/expressions/type_ctor/mat4x2/inferred/scalars/f32.wgsl.expected.ir.dxc.hlsl
@@ -1,15 +1,15 @@
-SKIP: FAILED
+
+static float4x2 m = float4x2(float2(0.0f, 1.0f), float2(2.0f, 3.0f), float2(4.0f, 5.0f), float2(6.0f, 7.0f));
+RWByteAddressBuffer tint_symbol : register(u0);
+void v(uint offset, float4x2 obj) {
+  tint_symbol.Store2((offset + 0u), asuint(obj[0u]));
+  tint_symbol.Store2((offset + 8u), asuint(obj[1u]));
+  tint_symbol.Store2((offset + 16u), asuint(obj[2u]));
+  tint_symbol.Store2((offset + 24u), asuint(obj[3u]));
+}
 
 [numthreads(1, 1, 1)]
 void f() {
-  tint_symbol = m;
+  v(0u, m);
 }
 
-DXC validation failure:
-hlsl.hlsl:3:3: error: use of undeclared identifier 'tint_symbol'
-  tint_symbol = m;
-  ^
-hlsl.hlsl:3:17: error: use of undeclared identifier 'm'
-  tint_symbol = m;
-                ^
-
diff --git a/test/tint/expressions/type_ctor/mat4x2/inferred/scalars/f32.wgsl.expected.ir.fxc.hlsl b/test/tint/expressions/type_ctor/mat4x2/inferred/scalars/f32.wgsl.expected.ir.fxc.hlsl
index 08b893f..922bfa0 100644
--- a/test/tint/expressions/type_ctor/mat4x2/inferred/scalars/f32.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/expressions/type_ctor/mat4x2/inferred/scalars/f32.wgsl.expected.ir.fxc.hlsl
@@ -1,7 +1,15 @@
-SKIP: FAILED
+
+static float4x2 m = float4x2(float2(0.0f, 1.0f), float2(2.0f, 3.0f), float2(4.0f, 5.0f), float2(6.0f, 7.0f));
+RWByteAddressBuffer tint_symbol : register(u0);
+void v(uint offset, float4x2 obj) {
+  tint_symbol.Store2((offset + 0u), asuint(obj[0u]));
+  tint_symbol.Store2((offset + 8u), asuint(obj[1u]));
+  tint_symbol.Store2((offset + 16u), asuint(obj[2u]));
+  tint_symbol.Store2((offset + 24u), asuint(obj[3u]));
+}
 
 [numthreads(1, 1, 1)]
 void f() {
-  tint_symbol = m;
+  v(0u, m);
 }
 
diff --git a/test/tint/expressions/type_ctor/mat4x2/inferred/vectors/abstract-float.wgsl.expected.ir.dxc.hlsl b/test/tint/expressions/type_ctor/mat4x2/inferred/vectors/abstract-float.wgsl.expected.ir.dxc.hlsl
index a583aa2..52a7670 100644
--- a/test/tint/expressions/type_ctor/mat4x2/inferred/vectors/abstract-float.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/expressions/type_ctor/mat4x2/inferred/vectors/abstract-float.wgsl.expected.ir.dxc.hlsl
@@ -1,12 +1,14 @@
-SKIP: FAILED
+
+RWByteAddressBuffer tint_symbol : register(u0);
+void v(uint offset, float4x2 obj) {
+  tint_symbol.Store2((offset + 0u), asuint(obj[0u]));
+  tint_symbol.Store2((offset + 8u), asuint(obj[1u]));
+  tint_symbol.Store2((offset + 16u), asuint(obj[2u]));
+  tint_symbol.Store2((offset + 24u), asuint(obj[3u]));
+}
 
 [numthreads(1, 1, 1)]
 void f() {
-  tint_symbol = float4x2(float2(0.0f, 1.0f), float2(2.0f, 3.0f), float2(4.0f, 5.0f), float2(6.0f, 7.0f));
+  v(0u, float4x2(float2(0.0f, 1.0f), float2(2.0f, 3.0f), float2(4.0f, 5.0f), float2(6.0f, 7.0f)));
 }
 
-DXC validation failure:
-hlsl.hlsl:3:3: error: use of undeclared identifier 'tint_symbol'
-  tint_symbol = float4x2(float2(0.0f, 1.0f), float2(2.0f, 3.0f), float2(4.0f, 5.0f), float2(6.0f, 7.0f));
-  ^
-
diff --git a/test/tint/expressions/type_ctor/mat4x2/inferred/vectors/abstract-float.wgsl.expected.ir.fxc.hlsl b/test/tint/expressions/type_ctor/mat4x2/inferred/vectors/abstract-float.wgsl.expected.ir.fxc.hlsl
index 92c8819..52a7670 100644
--- a/test/tint/expressions/type_ctor/mat4x2/inferred/vectors/abstract-float.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/expressions/type_ctor/mat4x2/inferred/vectors/abstract-float.wgsl.expected.ir.fxc.hlsl
@@ -1,7 +1,14 @@
-SKIP: FAILED
+
+RWByteAddressBuffer tint_symbol : register(u0);
+void v(uint offset, float4x2 obj) {
+  tint_symbol.Store2((offset + 0u), asuint(obj[0u]));
+  tint_symbol.Store2((offset + 8u), asuint(obj[1u]));
+  tint_symbol.Store2((offset + 16u), asuint(obj[2u]));
+  tint_symbol.Store2((offset + 24u), asuint(obj[3u]));
+}
 
 [numthreads(1, 1, 1)]
 void f() {
-  tint_symbol = float4x2(float2(0.0f, 1.0f), float2(2.0f, 3.0f), float2(4.0f, 5.0f), float2(6.0f, 7.0f));
+  v(0u, float4x2(float2(0.0f, 1.0f), float2(2.0f, 3.0f), float2(4.0f, 5.0f), float2(6.0f, 7.0f)));
 }
 
diff --git a/test/tint/expressions/type_ctor/mat4x2/inferred/vectors/f16.wgsl.expected.ir.dxc.hlsl b/test/tint/expressions/type_ctor/mat4x2/inferred/vectors/f16.wgsl.expected.ir.dxc.hlsl
index 1616cea..0e27210 100644
--- a/test/tint/expressions/type_ctor/mat4x2/inferred/vectors/f16.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/expressions/type_ctor/mat4x2/inferred/vectors/f16.wgsl.expected.ir.dxc.hlsl
@@ -1,15 +1,15 @@
-SKIP: FAILED
+
+static matrix<float16_t, 4, 2> m = matrix<float16_t, 4, 2>(vector<float16_t, 2>(float16_t(0.0h), float16_t(1.0h)), vector<float16_t, 2>(float16_t(2.0h), float16_t(3.0h)), vector<float16_t, 2>(float16_t(4.0h), float16_t(5.0h)), vector<float16_t, 2>(float16_t(6.0h), float16_t(7.0h)));
+RWByteAddressBuffer tint_symbol : register(u0);
+void v(uint offset, matrix<float16_t, 4, 2> obj) {
+  tint_symbol.Store<vector<float16_t, 2> >((offset + 0u), obj[0u]);
+  tint_symbol.Store<vector<float16_t, 2> >((offset + 4u), obj[1u]);
+  tint_symbol.Store<vector<float16_t, 2> >((offset + 8u), obj[2u]);
+  tint_symbol.Store<vector<float16_t, 2> >((offset + 12u), obj[3u]);
+}
 
 [numthreads(1, 1, 1)]
 void f() {
-  tint_symbol = m;
+  v(0u, m);
 }
 
-DXC validation failure:
-hlsl.hlsl:3:3: error: use of undeclared identifier 'tint_symbol'
-  tint_symbol = m;
-  ^
-hlsl.hlsl:3:17: error: use of undeclared identifier 'm'
-  tint_symbol = m;
-                ^
-
diff --git a/test/tint/expressions/type_ctor/mat4x2/inferred/vectors/f16.wgsl.expected.ir.fxc.hlsl b/test/tint/expressions/type_ctor/mat4x2/inferred/vectors/f16.wgsl.expected.ir.fxc.hlsl
index 08b893f..fe04d82 100644
--- a/test/tint/expressions/type_ctor/mat4x2/inferred/vectors/f16.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/expressions/type_ctor/mat4x2/inferred/vectors/f16.wgsl.expected.ir.fxc.hlsl
@@ -1,7 +1,20 @@
 SKIP: FAILED
 
+
+static matrix<float16_t, 4, 2> m = matrix<float16_t, 4, 2>(vector<float16_t, 2>(float16_t(0.0h), float16_t(1.0h)), vector<float16_t, 2>(float16_t(2.0h), float16_t(3.0h)), vector<float16_t, 2>(float16_t(4.0h), float16_t(5.0h)), vector<float16_t, 2>(float16_t(6.0h), float16_t(7.0h)));
+RWByteAddressBuffer tint_symbol : register(u0);
+void v(uint offset, matrix<float16_t, 4, 2> obj) {
+  tint_symbol.Store<vector<float16_t, 2> >((offset + 0u), obj[0u]);
+  tint_symbol.Store<vector<float16_t, 2> >((offset + 4u), obj[1u]);
+  tint_symbol.Store<vector<float16_t, 2> >((offset + 8u), obj[2u]);
+  tint_symbol.Store<vector<float16_t, 2> >((offset + 12u), obj[3u]);
+}
+
 [numthreads(1, 1, 1)]
 void f() {
-  tint_symbol = m;
+  v(0u, m);
 }
 
+FXC validation failure:
+c:\src\dawn\Shader@0x000001FFAA8AD790(2,15-23): error X3000: syntax error: unexpected token 'float16_t'
+
diff --git a/test/tint/expressions/type_ctor/mat4x2/inferred/vectors/f32.wgsl.expected.ir.dxc.hlsl b/test/tint/expressions/type_ctor/mat4x2/inferred/vectors/f32.wgsl.expected.ir.dxc.hlsl
index 1616cea..922bfa0 100644
--- a/test/tint/expressions/type_ctor/mat4x2/inferred/vectors/f32.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/expressions/type_ctor/mat4x2/inferred/vectors/f32.wgsl.expected.ir.dxc.hlsl
@@ -1,15 +1,15 @@
-SKIP: FAILED
+
+static float4x2 m = float4x2(float2(0.0f, 1.0f), float2(2.0f, 3.0f), float2(4.0f, 5.0f), float2(6.0f, 7.0f));
+RWByteAddressBuffer tint_symbol : register(u0);
+void v(uint offset, float4x2 obj) {
+  tint_symbol.Store2((offset + 0u), asuint(obj[0u]));
+  tint_symbol.Store2((offset + 8u), asuint(obj[1u]));
+  tint_symbol.Store2((offset + 16u), asuint(obj[2u]));
+  tint_symbol.Store2((offset + 24u), asuint(obj[3u]));
+}
 
 [numthreads(1, 1, 1)]
 void f() {
-  tint_symbol = m;
+  v(0u, m);
 }
 
-DXC validation failure:
-hlsl.hlsl:3:3: error: use of undeclared identifier 'tint_symbol'
-  tint_symbol = m;
-  ^
-hlsl.hlsl:3:17: error: use of undeclared identifier 'm'
-  tint_symbol = m;
-                ^
-
diff --git a/test/tint/expressions/type_ctor/mat4x2/inferred/vectors/f32.wgsl.expected.ir.fxc.hlsl b/test/tint/expressions/type_ctor/mat4x2/inferred/vectors/f32.wgsl.expected.ir.fxc.hlsl
index 08b893f..922bfa0 100644
--- a/test/tint/expressions/type_ctor/mat4x2/inferred/vectors/f32.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/expressions/type_ctor/mat4x2/inferred/vectors/f32.wgsl.expected.ir.fxc.hlsl
@@ -1,7 +1,15 @@
-SKIP: FAILED
+
+static float4x2 m = float4x2(float2(0.0f, 1.0f), float2(2.0f, 3.0f), float2(4.0f, 5.0f), float2(6.0f, 7.0f));
+RWByteAddressBuffer tint_symbol : register(u0);
+void v(uint offset, float4x2 obj) {
+  tint_symbol.Store2((offset + 0u), asuint(obj[0u]));
+  tint_symbol.Store2((offset + 8u), asuint(obj[1u]));
+  tint_symbol.Store2((offset + 16u), asuint(obj[2u]));
+  tint_symbol.Store2((offset + 24u), asuint(obj[3u]));
+}
 
 [numthreads(1, 1, 1)]
 void f() {
-  tint_symbol = m;
+  v(0u, m);
 }
 
diff --git a/test/tint/expressions/type_ctor/mat4x2/load/f16.wgsl.expected.ir.dxc.hlsl b/test/tint/expressions/type_ctor/mat4x2/load/f16.wgsl.expected.ir.dxc.hlsl
index c6e1d96..393fd2d 100644
--- a/test/tint/expressions/type_ctor/mat4x2/load/f16.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/expressions/type_ctor/mat4x2/load/f16.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,15 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Construct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWByteAddressBuffer tint_symbol : register(u0);
+void v(uint offset, matrix<float16_t, 4, 2> obj) {
+  tint_symbol.Store<vector<float16_t, 2> >((offset + 0u), obj[0u]);
+  tint_symbol.Store<vector<float16_t, 2> >((offset + 4u), obj[1u]);
+  tint_symbol.Store<vector<float16_t, 2> >((offset + 8u), obj[2u]);
+  tint_symbol.Store<vector<float16_t, 2> >((offset + 12u), obj[3u]);
+}
+
+[numthreads(1, 1, 1)]
+void f() {
+  matrix<float16_t, 4, 2> m = matrix<float16_t, 4, 2>((float16_t(0.0h)).xx, (float16_t(0.0h)).xx, (float16_t(0.0h)).xx, (float16_t(0.0h)).xx);
+  v(0u, matrix<float16_t, 4, 2>(m));
+}
+
diff --git a/test/tint/expressions/type_ctor/mat4x2/load/f16.wgsl.expected.ir.fxc.hlsl b/test/tint/expressions/type_ctor/mat4x2/load/f16.wgsl.expected.ir.fxc.hlsl
index c6e1d96..c5bd6b2 100644
--- a/test/tint/expressions/type_ctor/mat4x2/load/f16.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/expressions/type_ctor/mat4x2/load/f16.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,21 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Construct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+
+RWByteAddressBuffer tint_symbol : register(u0);
+void v(uint offset, matrix<float16_t, 4, 2> obj) {
+  tint_symbol.Store<vector<float16_t, 2> >((offset + 0u), obj[0u]);
+  tint_symbol.Store<vector<float16_t, 2> >((offset + 4u), obj[1u]);
+  tint_symbol.Store<vector<float16_t, 2> >((offset + 8u), obj[2u]);
+  tint_symbol.Store<vector<float16_t, 2> >((offset + 12u), obj[3u]);
+}
+
+[numthreads(1, 1, 1)]
+void f() {
+  matrix<float16_t, 4, 2> m = matrix<float16_t, 4, 2>((float16_t(0.0h)).xx, (float16_t(0.0h)).xx, (float16_t(0.0h)).xx, (float16_t(0.0h)).xx);
+  v(0u, matrix<float16_t, 4, 2>(m));
+}
+
+FXC validation failure:
+c:\src\dawn\Shader@0x0000028C7F49CDA0(3,28-36): error X3000: syntax error: unexpected token 'float16_t'
+c:\src\dawn\Shader@0x0000028C7F49CDA0(4,3-19): error X3018: invalid subscript 'Store'
+
diff --git a/test/tint/expressions/type_ctor/mat4x2/load/f32.wgsl.expected.ir.dxc.hlsl b/test/tint/expressions/type_ctor/mat4x2/load/f32.wgsl.expected.ir.dxc.hlsl
index c6e1d96..254eb18 100644
--- a/test/tint/expressions/type_ctor/mat4x2/load/f32.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/expressions/type_ctor/mat4x2/load/f32.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,15 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Construct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWByteAddressBuffer tint_symbol : register(u0);
+void v(uint offset, float4x2 obj) {
+  tint_symbol.Store2((offset + 0u), asuint(obj[0u]));
+  tint_symbol.Store2((offset + 8u), asuint(obj[1u]));
+  tint_symbol.Store2((offset + 16u), asuint(obj[2u]));
+  tint_symbol.Store2((offset + 24u), asuint(obj[3u]));
+}
+
+[numthreads(1, 1, 1)]
+void f() {
+  float4x2 m = float4x2((0.0f).xx, (0.0f).xx, (0.0f).xx, (0.0f).xx);
+  v(0u, float4x2(m));
+}
+
diff --git a/test/tint/expressions/type_ctor/mat4x2/load/f32.wgsl.expected.ir.fxc.hlsl b/test/tint/expressions/type_ctor/mat4x2/load/f32.wgsl.expected.ir.fxc.hlsl
index c6e1d96..254eb18 100644
--- a/test/tint/expressions/type_ctor/mat4x2/load/f32.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/expressions/type_ctor/mat4x2/load/f32.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,15 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Construct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWByteAddressBuffer tint_symbol : register(u0);
+void v(uint offset, float4x2 obj) {
+  tint_symbol.Store2((offset + 0u), asuint(obj[0u]));
+  tint_symbol.Store2((offset + 8u), asuint(obj[1u]));
+  tint_symbol.Store2((offset + 16u), asuint(obj[2u]));
+  tint_symbol.Store2((offset + 24u), asuint(obj[3u]));
+}
+
+[numthreads(1, 1, 1)]
+void f() {
+  float4x2 m = float4x2((0.0f).xx, (0.0f).xx, (0.0f).xx, (0.0f).xx);
+  v(0u, float4x2(m));
+}
+
diff --git a/test/tint/expressions/type_ctor/mat4x2/zero/f16.wgsl.expected.ir.dxc.hlsl b/test/tint/expressions/type_ctor/mat4x2/zero/f16.wgsl.expected.ir.dxc.hlsl
index 1616cea..e18ed9e 100644
--- a/test/tint/expressions/type_ctor/mat4x2/zero/f16.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/expressions/type_ctor/mat4x2/zero/f16.wgsl.expected.ir.dxc.hlsl
@@ -1,15 +1,15 @@
-SKIP: FAILED
+
+static matrix<float16_t, 4, 2> m = matrix<float16_t, 4, 2>((float16_t(0.0h)).xx, (float16_t(0.0h)).xx, (float16_t(0.0h)).xx, (float16_t(0.0h)).xx);
+RWByteAddressBuffer tint_symbol : register(u0);
+void v(uint offset, matrix<float16_t, 4, 2> obj) {
+  tint_symbol.Store<vector<float16_t, 2> >((offset + 0u), obj[0u]);
+  tint_symbol.Store<vector<float16_t, 2> >((offset + 4u), obj[1u]);
+  tint_symbol.Store<vector<float16_t, 2> >((offset + 8u), obj[2u]);
+  tint_symbol.Store<vector<float16_t, 2> >((offset + 12u), obj[3u]);
+}
 
 [numthreads(1, 1, 1)]
 void f() {
-  tint_symbol = m;
+  v(0u, m);
 }
 
-DXC validation failure:
-hlsl.hlsl:3:3: error: use of undeclared identifier 'tint_symbol'
-  tint_symbol = m;
-  ^
-hlsl.hlsl:3:17: error: use of undeclared identifier 'm'
-  tint_symbol = m;
-                ^
-
diff --git a/test/tint/expressions/type_ctor/mat4x2/zero/f16.wgsl.expected.ir.fxc.hlsl b/test/tint/expressions/type_ctor/mat4x2/zero/f16.wgsl.expected.ir.fxc.hlsl
index 08b893f..0460c64 100644
--- a/test/tint/expressions/type_ctor/mat4x2/zero/f16.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/expressions/type_ctor/mat4x2/zero/f16.wgsl.expected.ir.fxc.hlsl
@@ -1,7 +1,20 @@
 SKIP: FAILED
 
+
+static matrix<float16_t, 4, 2> m = matrix<float16_t, 4, 2>((float16_t(0.0h)).xx, (float16_t(0.0h)).xx, (float16_t(0.0h)).xx, (float16_t(0.0h)).xx);
+RWByteAddressBuffer tint_symbol : register(u0);
+void v(uint offset, matrix<float16_t, 4, 2> obj) {
+  tint_symbol.Store<vector<float16_t, 2> >((offset + 0u), obj[0u]);
+  tint_symbol.Store<vector<float16_t, 2> >((offset + 4u), obj[1u]);
+  tint_symbol.Store<vector<float16_t, 2> >((offset + 8u), obj[2u]);
+  tint_symbol.Store<vector<float16_t, 2> >((offset + 12u), obj[3u]);
+}
+
 [numthreads(1, 1, 1)]
 void f() {
-  tint_symbol = m;
+  v(0u, m);
 }
 
+FXC validation failure:
+c:\src\dawn\Shader@0x00000172BA780A40(2,15-23): error X3000: syntax error: unexpected token 'float16_t'
+
diff --git a/test/tint/expressions/type_ctor/mat4x2/zero/f32.wgsl.expected.ir.dxc.hlsl b/test/tint/expressions/type_ctor/mat4x2/zero/f32.wgsl.expected.ir.dxc.hlsl
index 1616cea..5bb4a2c 100644
--- a/test/tint/expressions/type_ctor/mat4x2/zero/f32.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/expressions/type_ctor/mat4x2/zero/f32.wgsl.expected.ir.dxc.hlsl
@@ -1,15 +1,15 @@
-SKIP: FAILED
+
+static float4x2 m = float4x2((0.0f).xx, (0.0f).xx, (0.0f).xx, (0.0f).xx);
+RWByteAddressBuffer tint_symbol : register(u0);
+void v(uint offset, float4x2 obj) {
+  tint_symbol.Store2((offset + 0u), asuint(obj[0u]));
+  tint_symbol.Store2((offset + 8u), asuint(obj[1u]));
+  tint_symbol.Store2((offset + 16u), asuint(obj[2u]));
+  tint_symbol.Store2((offset + 24u), asuint(obj[3u]));
+}
 
 [numthreads(1, 1, 1)]
 void f() {
-  tint_symbol = m;
+  v(0u, m);
 }
 
-DXC validation failure:
-hlsl.hlsl:3:3: error: use of undeclared identifier 'tint_symbol'
-  tint_symbol = m;
-  ^
-hlsl.hlsl:3:17: error: use of undeclared identifier 'm'
-  tint_symbol = m;
-                ^
-
diff --git a/test/tint/expressions/type_ctor/mat4x2/zero/f32.wgsl.expected.ir.fxc.hlsl b/test/tint/expressions/type_ctor/mat4x2/zero/f32.wgsl.expected.ir.fxc.hlsl
index 08b893f..5bb4a2c 100644
--- a/test/tint/expressions/type_ctor/mat4x2/zero/f32.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/expressions/type_ctor/mat4x2/zero/f32.wgsl.expected.ir.fxc.hlsl
@@ -1,7 +1,15 @@
-SKIP: FAILED
+
+static float4x2 m = float4x2((0.0f).xx, (0.0f).xx, (0.0f).xx, (0.0f).xx);
+RWByteAddressBuffer tint_symbol : register(u0);
+void v(uint offset, float4x2 obj) {
+  tint_symbol.Store2((offset + 0u), asuint(obj[0u]));
+  tint_symbol.Store2((offset + 8u), asuint(obj[1u]));
+  tint_symbol.Store2((offset + 16u), asuint(obj[2u]));
+  tint_symbol.Store2((offset + 24u), asuint(obj[3u]));
+}
 
 [numthreads(1, 1, 1)]
 void f() {
-  tint_symbol = m;
+  v(0u, m);
 }
 
diff --git a/test/tint/expressions/type_ctor/mat4x3/explicit/identity/f16.wgsl.expected.ir.dxc.hlsl b/test/tint/expressions/type_ctor/mat4x3/explicit/identity/f16.wgsl.expected.ir.dxc.hlsl
index c6e1d96..150d71f 100644
--- a/test/tint/expressions/type_ctor/mat4x3/explicit/identity/f16.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/expressions/type_ctor/mat4x3/explicit/identity/f16.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,15 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Construct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+static matrix<float16_t, 4, 3> m = matrix<float16_t, 4, 3>(vector<float16_t, 3>(float16_t(0.0h), float16_t(1.0h), float16_t(2.0h)), vector<float16_t, 3>(float16_t(3.0h), float16_t(4.0h), float16_t(5.0h)), vector<float16_t, 3>(float16_t(6.0h), float16_t(7.0h), float16_t(8.0h)), vector<float16_t, 3>(float16_t(9.0h), float16_t(10.0h), float16_t(11.0h)));
+RWByteAddressBuffer tint_symbol : register(u0);
+void v(uint offset, matrix<float16_t, 4, 3> obj) {
+  tint_symbol.Store<vector<float16_t, 3> >((offset + 0u), obj[0u]);
+  tint_symbol.Store<vector<float16_t, 3> >((offset + 8u), obj[1u]);
+  tint_symbol.Store<vector<float16_t, 3> >((offset + 16u), obj[2u]);
+  tint_symbol.Store<vector<float16_t, 3> >((offset + 24u), obj[3u]);
+}
+
+[numthreads(1, 1, 1)]
+void f() {
+  v(0u, matrix<float16_t, 4, 3>(m));
+}
+
diff --git a/test/tint/expressions/type_ctor/mat4x3/explicit/identity/f16.wgsl.expected.ir.fxc.hlsl b/test/tint/expressions/type_ctor/mat4x3/explicit/identity/f16.wgsl.expected.ir.fxc.hlsl
index c6e1d96..fd59388 100644
--- a/test/tint/expressions/type_ctor/mat4x3/explicit/identity/f16.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/expressions/type_ctor/mat4x3/explicit/identity/f16.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,20 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Construct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+
+static matrix<float16_t, 4, 3> m = matrix<float16_t, 4, 3>(vector<float16_t, 3>(float16_t(0.0h), float16_t(1.0h), float16_t(2.0h)), vector<float16_t, 3>(float16_t(3.0h), float16_t(4.0h), float16_t(5.0h)), vector<float16_t, 3>(float16_t(6.0h), float16_t(7.0h), float16_t(8.0h)), vector<float16_t, 3>(float16_t(9.0h), float16_t(10.0h), float16_t(11.0h)));
+RWByteAddressBuffer tint_symbol : register(u0);
+void v(uint offset, matrix<float16_t, 4, 3> obj) {
+  tint_symbol.Store<vector<float16_t, 3> >((offset + 0u), obj[0u]);
+  tint_symbol.Store<vector<float16_t, 3> >((offset + 8u), obj[1u]);
+  tint_symbol.Store<vector<float16_t, 3> >((offset + 16u), obj[2u]);
+  tint_symbol.Store<vector<float16_t, 3> >((offset + 24u), obj[3u]);
+}
+
+[numthreads(1, 1, 1)]
+void f() {
+  v(0u, matrix<float16_t, 4, 3>(m));
+}
+
+FXC validation failure:
+c:\src\dawn\Shader@0x0000011D28D80F70(2,15-23): error X3000: syntax error: unexpected token 'float16_t'
+
diff --git a/test/tint/expressions/type_ctor/mat4x3/explicit/identity/f32.wgsl.expected.ir.dxc.hlsl b/test/tint/expressions/type_ctor/mat4x3/explicit/identity/f32.wgsl.expected.ir.dxc.hlsl
index c6e1d96..3d42c79 100644
--- a/test/tint/expressions/type_ctor/mat4x3/explicit/identity/f32.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/expressions/type_ctor/mat4x3/explicit/identity/f32.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,15 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Construct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+static float4x3 m = float4x3(float3(0.0f, 1.0f, 2.0f), float3(3.0f, 4.0f, 5.0f), float3(6.0f, 7.0f, 8.0f), float3(9.0f, 10.0f, 11.0f));
+RWByteAddressBuffer tint_symbol : register(u0);
+void v(uint offset, float4x3 obj) {
+  tint_symbol.Store3((offset + 0u), asuint(obj[0u]));
+  tint_symbol.Store3((offset + 16u), asuint(obj[1u]));
+  tint_symbol.Store3((offset + 32u), asuint(obj[2u]));
+  tint_symbol.Store3((offset + 48u), asuint(obj[3u]));
+}
+
+[numthreads(1, 1, 1)]
+void f() {
+  v(0u, float4x3(m));
+}
+
diff --git a/test/tint/expressions/type_ctor/mat4x3/explicit/identity/f32.wgsl.expected.ir.fxc.hlsl b/test/tint/expressions/type_ctor/mat4x3/explicit/identity/f32.wgsl.expected.ir.fxc.hlsl
index c6e1d96..3d42c79 100644
--- a/test/tint/expressions/type_ctor/mat4x3/explicit/identity/f32.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/expressions/type_ctor/mat4x3/explicit/identity/f32.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,15 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Construct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+static float4x3 m = float4x3(float3(0.0f, 1.0f, 2.0f), float3(3.0f, 4.0f, 5.0f), float3(6.0f, 7.0f, 8.0f), float3(9.0f, 10.0f, 11.0f));
+RWByteAddressBuffer tint_symbol : register(u0);
+void v(uint offset, float4x3 obj) {
+  tint_symbol.Store3((offset + 0u), asuint(obj[0u]));
+  tint_symbol.Store3((offset + 16u), asuint(obj[1u]));
+  tint_symbol.Store3((offset + 32u), asuint(obj[2u]));
+  tint_symbol.Store3((offset + 48u), asuint(obj[3u]));
+}
+
+[numthreads(1, 1, 1)]
+void f() {
+  v(0u, float4x3(m));
+}
+
diff --git a/test/tint/expressions/type_ctor/mat4x3/explicit/scalars/f16.wgsl.expected.ir.dxc.hlsl b/test/tint/expressions/type_ctor/mat4x3/explicit/scalars/f16.wgsl.expected.ir.dxc.hlsl
index 1616cea..5981043 100644
--- a/test/tint/expressions/type_ctor/mat4x3/explicit/scalars/f16.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/expressions/type_ctor/mat4x3/explicit/scalars/f16.wgsl.expected.ir.dxc.hlsl
@@ -1,15 +1,15 @@
-SKIP: FAILED
+
+static matrix<float16_t, 4, 3> m = matrix<float16_t, 4, 3>(vector<float16_t, 3>(float16_t(0.0h), float16_t(1.0h), float16_t(2.0h)), vector<float16_t, 3>(float16_t(3.0h), float16_t(4.0h), float16_t(5.0h)), vector<float16_t, 3>(float16_t(6.0h), float16_t(7.0h), float16_t(8.0h)), vector<float16_t, 3>(float16_t(9.0h), float16_t(10.0h), float16_t(11.0h)));
+RWByteAddressBuffer tint_symbol : register(u0);
+void v(uint offset, matrix<float16_t, 4, 3> obj) {
+  tint_symbol.Store<vector<float16_t, 3> >((offset + 0u), obj[0u]);
+  tint_symbol.Store<vector<float16_t, 3> >((offset + 8u), obj[1u]);
+  tint_symbol.Store<vector<float16_t, 3> >((offset + 16u), obj[2u]);
+  tint_symbol.Store<vector<float16_t, 3> >((offset + 24u), obj[3u]);
+}
 
 [numthreads(1, 1, 1)]
 void f() {
-  tint_symbol = m;
+  v(0u, m);
 }
 
-DXC validation failure:
-hlsl.hlsl:3:3: error: use of undeclared identifier 'tint_symbol'
-  tint_symbol = m;
-  ^
-hlsl.hlsl:3:17: error: use of undeclared identifier 'm'
-  tint_symbol = m;
-                ^
-
diff --git a/test/tint/expressions/type_ctor/mat4x3/explicit/scalars/f16.wgsl.expected.ir.fxc.hlsl b/test/tint/expressions/type_ctor/mat4x3/explicit/scalars/f16.wgsl.expected.ir.fxc.hlsl
index 08b893f..f9e736c 100644
--- a/test/tint/expressions/type_ctor/mat4x3/explicit/scalars/f16.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/expressions/type_ctor/mat4x3/explicit/scalars/f16.wgsl.expected.ir.fxc.hlsl
@@ -1,7 +1,20 @@
 SKIP: FAILED
 
+
+static matrix<float16_t, 4, 3> m = matrix<float16_t, 4, 3>(vector<float16_t, 3>(float16_t(0.0h), float16_t(1.0h), float16_t(2.0h)), vector<float16_t, 3>(float16_t(3.0h), float16_t(4.0h), float16_t(5.0h)), vector<float16_t, 3>(float16_t(6.0h), float16_t(7.0h), float16_t(8.0h)), vector<float16_t, 3>(float16_t(9.0h), float16_t(10.0h), float16_t(11.0h)));
+RWByteAddressBuffer tint_symbol : register(u0);
+void v(uint offset, matrix<float16_t, 4, 3> obj) {
+  tint_symbol.Store<vector<float16_t, 3> >((offset + 0u), obj[0u]);
+  tint_symbol.Store<vector<float16_t, 3> >((offset + 8u), obj[1u]);
+  tint_symbol.Store<vector<float16_t, 3> >((offset + 16u), obj[2u]);
+  tint_symbol.Store<vector<float16_t, 3> >((offset + 24u), obj[3u]);
+}
+
 [numthreads(1, 1, 1)]
 void f() {
-  tint_symbol = m;
+  v(0u, m);
 }
 
+FXC validation failure:
+c:\src\dawn\Shader@0x00000212C0F63AA0(2,15-23): error X3000: syntax error: unexpected token 'float16_t'
+
diff --git a/test/tint/expressions/type_ctor/mat4x3/explicit/scalars/f32.wgsl.expected.ir.dxc.hlsl b/test/tint/expressions/type_ctor/mat4x3/explicit/scalars/f32.wgsl.expected.ir.dxc.hlsl
index 1616cea..89762fc 100644
--- a/test/tint/expressions/type_ctor/mat4x3/explicit/scalars/f32.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/expressions/type_ctor/mat4x3/explicit/scalars/f32.wgsl.expected.ir.dxc.hlsl
@@ -1,15 +1,15 @@
-SKIP: FAILED
+
+static float4x3 m = float4x3(float3(0.0f, 1.0f, 2.0f), float3(3.0f, 4.0f, 5.0f), float3(6.0f, 7.0f, 8.0f), float3(9.0f, 10.0f, 11.0f));
+RWByteAddressBuffer tint_symbol : register(u0);
+void v(uint offset, float4x3 obj) {
+  tint_symbol.Store3((offset + 0u), asuint(obj[0u]));
+  tint_symbol.Store3((offset + 16u), asuint(obj[1u]));
+  tint_symbol.Store3((offset + 32u), asuint(obj[2u]));
+  tint_symbol.Store3((offset + 48u), asuint(obj[3u]));
+}
 
 [numthreads(1, 1, 1)]
 void f() {
-  tint_symbol = m;
+  v(0u, m);
 }
 
-DXC validation failure:
-hlsl.hlsl:3:3: error: use of undeclared identifier 'tint_symbol'
-  tint_symbol = m;
-  ^
-hlsl.hlsl:3:17: error: use of undeclared identifier 'm'
-  tint_symbol = m;
-                ^
-
diff --git a/test/tint/expressions/type_ctor/mat4x3/explicit/scalars/f32.wgsl.expected.ir.fxc.hlsl b/test/tint/expressions/type_ctor/mat4x3/explicit/scalars/f32.wgsl.expected.ir.fxc.hlsl
index 08b893f..89762fc 100644
--- a/test/tint/expressions/type_ctor/mat4x3/explicit/scalars/f32.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/expressions/type_ctor/mat4x3/explicit/scalars/f32.wgsl.expected.ir.fxc.hlsl
@@ -1,7 +1,15 @@
-SKIP: FAILED
+
+static float4x3 m = float4x3(float3(0.0f, 1.0f, 2.0f), float3(3.0f, 4.0f, 5.0f), float3(6.0f, 7.0f, 8.0f), float3(9.0f, 10.0f, 11.0f));
+RWByteAddressBuffer tint_symbol : register(u0);
+void v(uint offset, float4x3 obj) {
+  tint_symbol.Store3((offset + 0u), asuint(obj[0u]));
+  tint_symbol.Store3((offset + 16u), asuint(obj[1u]));
+  tint_symbol.Store3((offset + 32u), asuint(obj[2u]));
+  tint_symbol.Store3((offset + 48u), asuint(obj[3u]));
+}
 
 [numthreads(1, 1, 1)]
 void f() {
-  tint_symbol = m;
+  v(0u, m);
 }
 
diff --git a/test/tint/expressions/type_ctor/mat4x3/explicit/vectors/f16.wgsl.expected.ir.dxc.hlsl b/test/tint/expressions/type_ctor/mat4x3/explicit/vectors/f16.wgsl.expected.ir.dxc.hlsl
index 1616cea..5981043 100644
--- a/test/tint/expressions/type_ctor/mat4x3/explicit/vectors/f16.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/expressions/type_ctor/mat4x3/explicit/vectors/f16.wgsl.expected.ir.dxc.hlsl
@@ -1,15 +1,15 @@
-SKIP: FAILED
+
+static matrix<float16_t, 4, 3> m = matrix<float16_t, 4, 3>(vector<float16_t, 3>(float16_t(0.0h), float16_t(1.0h), float16_t(2.0h)), vector<float16_t, 3>(float16_t(3.0h), float16_t(4.0h), float16_t(5.0h)), vector<float16_t, 3>(float16_t(6.0h), float16_t(7.0h), float16_t(8.0h)), vector<float16_t, 3>(float16_t(9.0h), float16_t(10.0h), float16_t(11.0h)));
+RWByteAddressBuffer tint_symbol : register(u0);
+void v(uint offset, matrix<float16_t, 4, 3> obj) {
+  tint_symbol.Store<vector<float16_t, 3> >((offset + 0u), obj[0u]);
+  tint_symbol.Store<vector<float16_t, 3> >((offset + 8u), obj[1u]);
+  tint_symbol.Store<vector<float16_t, 3> >((offset + 16u), obj[2u]);
+  tint_symbol.Store<vector<float16_t, 3> >((offset + 24u), obj[3u]);
+}
 
 [numthreads(1, 1, 1)]
 void f() {
-  tint_symbol = m;
+  v(0u, m);
 }
 
-DXC validation failure:
-hlsl.hlsl:3:3: error: use of undeclared identifier 'tint_symbol'
-  tint_symbol = m;
-  ^
-hlsl.hlsl:3:17: error: use of undeclared identifier 'm'
-  tint_symbol = m;
-                ^
-
diff --git a/test/tint/expressions/type_ctor/mat4x3/explicit/vectors/f16.wgsl.expected.ir.fxc.hlsl b/test/tint/expressions/type_ctor/mat4x3/explicit/vectors/f16.wgsl.expected.ir.fxc.hlsl
index 08b893f..e8c12b9 100644
--- a/test/tint/expressions/type_ctor/mat4x3/explicit/vectors/f16.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/expressions/type_ctor/mat4x3/explicit/vectors/f16.wgsl.expected.ir.fxc.hlsl
@@ -1,7 +1,20 @@
 SKIP: FAILED
 
+
+static matrix<float16_t, 4, 3> m = matrix<float16_t, 4, 3>(vector<float16_t, 3>(float16_t(0.0h), float16_t(1.0h), float16_t(2.0h)), vector<float16_t, 3>(float16_t(3.0h), float16_t(4.0h), float16_t(5.0h)), vector<float16_t, 3>(float16_t(6.0h), float16_t(7.0h), float16_t(8.0h)), vector<float16_t, 3>(float16_t(9.0h), float16_t(10.0h), float16_t(11.0h)));
+RWByteAddressBuffer tint_symbol : register(u0);
+void v(uint offset, matrix<float16_t, 4, 3> obj) {
+  tint_symbol.Store<vector<float16_t, 3> >((offset + 0u), obj[0u]);
+  tint_symbol.Store<vector<float16_t, 3> >((offset + 8u), obj[1u]);
+  tint_symbol.Store<vector<float16_t, 3> >((offset + 16u), obj[2u]);
+  tint_symbol.Store<vector<float16_t, 3> >((offset + 24u), obj[3u]);
+}
+
 [numthreads(1, 1, 1)]
 void f() {
-  tint_symbol = m;
+  v(0u, m);
 }
 
+FXC validation failure:
+c:\src\dawn\Shader@0x000001FACA5D4940(2,15-23): error X3000: syntax error: unexpected token 'float16_t'
+
diff --git a/test/tint/expressions/type_ctor/mat4x3/explicit/vectors/f32.wgsl.expected.ir.dxc.hlsl b/test/tint/expressions/type_ctor/mat4x3/explicit/vectors/f32.wgsl.expected.ir.dxc.hlsl
index 1616cea..89762fc 100644
--- a/test/tint/expressions/type_ctor/mat4x3/explicit/vectors/f32.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/expressions/type_ctor/mat4x3/explicit/vectors/f32.wgsl.expected.ir.dxc.hlsl
@@ -1,15 +1,15 @@
-SKIP: FAILED
+
+static float4x3 m = float4x3(float3(0.0f, 1.0f, 2.0f), float3(3.0f, 4.0f, 5.0f), float3(6.0f, 7.0f, 8.0f), float3(9.0f, 10.0f, 11.0f));
+RWByteAddressBuffer tint_symbol : register(u0);
+void v(uint offset, float4x3 obj) {
+  tint_symbol.Store3((offset + 0u), asuint(obj[0u]));
+  tint_symbol.Store3((offset + 16u), asuint(obj[1u]));
+  tint_symbol.Store3((offset + 32u), asuint(obj[2u]));
+  tint_symbol.Store3((offset + 48u), asuint(obj[3u]));
+}
 
 [numthreads(1, 1, 1)]
 void f() {
-  tint_symbol = m;
+  v(0u, m);
 }
 
-DXC validation failure:
-hlsl.hlsl:3:3: error: use of undeclared identifier 'tint_symbol'
-  tint_symbol = m;
-  ^
-hlsl.hlsl:3:17: error: use of undeclared identifier 'm'
-  tint_symbol = m;
-                ^
-
diff --git a/test/tint/expressions/type_ctor/mat4x3/explicit/vectors/f32.wgsl.expected.ir.fxc.hlsl b/test/tint/expressions/type_ctor/mat4x3/explicit/vectors/f32.wgsl.expected.ir.fxc.hlsl
index 08b893f..89762fc 100644
--- a/test/tint/expressions/type_ctor/mat4x3/explicit/vectors/f32.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/expressions/type_ctor/mat4x3/explicit/vectors/f32.wgsl.expected.ir.fxc.hlsl
@@ -1,7 +1,15 @@
-SKIP: FAILED
+
+static float4x3 m = float4x3(float3(0.0f, 1.0f, 2.0f), float3(3.0f, 4.0f, 5.0f), float3(6.0f, 7.0f, 8.0f), float3(9.0f, 10.0f, 11.0f));
+RWByteAddressBuffer tint_symbol : register(u0);
+void v(uint offset, float4x3 obj) {
+  tint_symbol.Store3((offset + 0u), asuint(obj[0u]));
+  tint_symbol.Store3((offset + 16u), asuint(obj[1u]));
+  tint_symbol.Store3((offset + 32u), asuint(obj[2u]));
+  tint_symbol.Store3((offset + 48u), asuint(obj[3u]));
+}
 
 [numthreads(1, 1, 1)]
 void f() {
-  tint_symbol = m;
+  v(0u, m);
 }
 
diff --git a/test/tint/expressions/type_ctor/mat4x3/inferred/identity/f16.wgsl.expected.ir.dxc.hlsl b/test/tint/expressions/type_ctor/mat4x3/inferred/identity/f16.wgsl.expected.ir.dxc.hlsl
index c6e1d96..150d71f 100644
--- a/test/tint/expressions/type_ctor/mat4x3/inferred/identity/f16.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/expressions/type_ctor/mat4x3/inferred/identity/f16.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,15 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Construct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+static matrix<float16_t, 4, 3> m = matrix<float16_t, 4, 3>(vector<float16_t, 3>(float16_t(0.0h), float16_t(1.0h), float16_t(2.0h)), vector<float16_t, 3>(float16_t(3.0h), float16_t(4.0h), float16_t(5.0h)), vector<float16_t, 3>(float16_t(6.0h), float16_t(7.0h), float16_t(8.0h)), vector<float16_t, 3>(float16_t(9.0h), float16_t(10.0h), float16_t(11.0h)));
+RWByteAddressBuffer tint_symbol : register(u0);
+void v(uint offset, matrix<float16_t, 4, 3> obj) {
+  tint_symbol.Store<vector<float16_t, 3> >((offset + 0u), obj[0u]);
+  tint_symbol.Store<vector<float16_t, 3> >((offset + 8u), obj[1u]);
+  tint_symbol.Store<vector<float16_t, 3> >((offset + 16u), obj[2u]);
+  tint_symbol.Store<vector<float16_t, 3> >((offset + 24u), obj[3u]);
+}
+
+[numthreads(1, 1, 1)]
+void f() {
+  v(0u, matrix<float16_t, 4, 3>(m));
+}
+
diff --git a/test/tint/expressions/type_ctor/mat4x3/inferred/identity/f16.wgsl.expected.ir.fxc.hlsl b/test/tint/expressions/type_ctor/mat4x3/inferred/identity/f16.wgsl.expected.ir.fxc.hlsl
index c6e1d96..00c52ec 100644
--- a/test/tint/expressions/type_ctor/mat4x3/inferred/identity/f16.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/expressions/type_ctor/mat4x3/inferred/identity/f16.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,20 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Construct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+
+static matrix<float16_t, 4, 3> m = matrix<float16_t, 4, 3>(vector<float16_t, 3>(float16_t(0.0h), float16_t(1.0h), float16_t(2.0h)), vector<float16_t, 3>(float16_t(3.0h), float16_t(4.0h), float16_t(5.0h)), vector<float16_t, 3>(float16_t(6.0h), float16_t(7.0h), float16_t(8.0h)), vector<float16_t, 3>(float16_t(9.0h), float16_t(10.0h), float16_t(11.0h)));
+RWByteAddressBuffer tint_symbol : register(u0);
+void v(uint offset, matrix<float16_t, 4, 3> obj) {
+  tint_symbol.Store<vector<float16_t, 3> >((offset + 0u), obj[0u]);
+  tint_symbol.Store<vector<float16_t, 3> >((offset + 8u), obj[1u]);
+  tint_symbol.Store<vector<float16_t, 3> >((offset + 16u), obj[2u]);
+  tint_symbol.Store<vector<float16_t, 3> >((offset + 24u), obj[3u]);
+}
+
+[numthreads(1, 1, 1)]
+void f() {
+  v(0u, matrix<float16_t, 4, 3>(m));
+}
+
+FXC validation failure:
+c:\src\dawn\Shader@0x000002B9C0F70F30(2,15-23): error X3000: syntax error: unexpected token 'float16_t'
+
diff --git a/test/tint/expressions/type_ctor/mat4x3/inferred/identity/f32.wgsl.expected.ir.dxc.hlsl b/test/tint/expressions/type_ctor/mat4x3/inferred/identity/f32.wgsl.expected.ir.dxc.hlsl
index c6e1d96..3d42c79 100644
--- a/test/tint/expressions/type_ctor/mat4x3/inferred/identity/f32.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/expressions/type_ctor/mat4x3/inferred/identity/f32.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,15 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Construct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+static float4x3 m = float4x3(float3(0.0f, 1.0f, 2.0f), float3(3.0f, 4.0f, 5.0f), float3(6.0f, 7.0f, 8.0f), float3(9.0f, 10.0f, 11.0f));
+RWByteAddressBuffer tint_symbol : register(u0);
+void v(uint offset, float4x3 obj) {
+  tint_symbol.Store3((offset + 0u), asuint(obj[0u]));
+  tint_symbol.Store3((offset + 16u), asuint(obj[1u]));
+  tint_symbol.Store3((offset + 32u), asuint(obj[2u]));
+  tint_symbol.Store3((offset + 48u), asuint(obj[3u]));
+}
+
+[numthreads(1, 1, 1)]
+void f() {
+  v(0u, float4x3(m));
+}
+
diff --git a/test/tint/expressions/type_ctor/mat4x3/inferred/identity/f32.wgsl.expected.ir.fxc.hlsl b/test/tint/expressions/type_ctor/mat4x3/inferred/identity/f32.wgsl.expected.ir.fxc.hlsl
index c6e1d96..3d42c79 100644
--- a/test/tint/expressions/type_ctor/mat4x3/inferred/identity/f32.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/expressions/type_ctor/mat4x3/inferred/identity/f32.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,15 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Construct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+static float4x3 m = float4x3(float3(0.0f, 1.0f, 2.0f), float3(3.0f, 4.0f, 5.0f), float3(6.0f, 7.0f, 8.0f), float3(9.0f, 10.0f, 11.0f));
+RWByteAddressBuffer tint_symbol : register(u0);
+void v(uint offset, float4x3 obj) {
+  tint_symbol.Store3((offset + 0u), asuint(obj[0u]));
+  tint_symbol.Store3((offset + 16u), asuint(obj[1u]));
+  tint_symbol.Store3((offset + 32u), asuint(obj[2u]));
+  tint_symbol.Store3((offset + 48u), asuint(obj[3u]));
+}
+
+[numthreads(1, 1, 1)]
+void f() {
+  v(0u, float4x3(m));
+}
+
diff --git a/test/tint/expressions/type_ctor/mat4x3/inferred/scalars/abstract-float.wgsl.expected.ir.dxc.hlsl b/test/tint/expressions/type_ctor/mat4x3/inferred/scalars/abstract-float.wgsl.expected.ir.dxc.hlsl
index 2f8afa5..4e9c4d6 100644
--- a/test/tint/expressions/type_ctor/mat4x3/inferred/scalars/abstract-float.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/expressions/type_ctor/mat4x3/inferred/scalars/abstract-float.wgsl.expected.ir.dxc.hlsl
@@ -1,12 +1,14 @@
-SKIP: FAILED
+
+RWByteAddressBuffer tint_symbol : register(u0);
+void v(uint offset, float4x3 obj) {
+  tint_symbol.Store3((offset + 0u), asuint(obj[0u]));
+  tint_symbol.Store3((offset + 16u), asuint(obj[1u]));
+  tint_symbol.Store3((offset + 32u), asuint(obj[2u]));
+  tint_symbol.Store3((offset + 48u), asuint(obj[3u]));
+}
 
 [numthreads(1, 1, 1)]
 void f() {
-  tint_symbol = float4x3(float3(0.0f, 1.0f, 2.0f), float3(3.0f, 4.0f, 5.0f), float3(6.0f, 7.0f, 8.0f), float3(9.0f, 10.0f, 11.0f));
+  v(0u, float4x3(float3(0.0f, 1.0f, 2.0f), float3(3.0f, 4.0f, 5.0f), float3(6.0f, 7.0f, 8.0f), float3(9.0f, 10.0f, 11.0f)));
 }
 
-DXC validation failure:
-hlsl.hlsl:3:3: error: use of undeclared identifier 'tint_symbol'
-  tint_symbol = float4x3(float3(0.0f, 1.0f, 2.0f), float3(3.0f, 4.0f, 5.0f), float3(6.0f, 7.0f, 8.0f), float3(9.0f, 10.0f, 11.0f));
-  ^
-
diff --git a/test/tint/expressions/type_ctor/mat4x3/inferred/scalars/abstract-float.wgsl.expected.ir.fxc.hlsl b/test/tint/expressions/type_ctor/mat4x3/inferred/scalars/abstract-float.wgsl.expected.ir.fxc.hlsl
index 9326298..4e9c4d6 100644
--- a/test/tint/expressions/type_ctor/mat4x3/inferred/scalars/abstract-float.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/expressions/type_ctor/mat4x3/inferred/scalars/abstract-float.wgsl.expected.ir.fxc.hlsl
@@ -1,7 +1,14 @@
-SKIP: FAILED
+
+RWByteAddressBuffer tint_symbol : register(u0);
+void v(uint offset, float4x3 obj) {
+  tint_symbol.Store3((offset + 0u), asuint(obj[0u]));
+  tint_symbol.Store3((offset + 16u), asuint(obj[1u]));
+  tint_symbol.Store3((offset + 32u), asuint(obj[2u]));
+  tint_symbol.Store3((offset + 48u), asuint(obj[3u]));
+}
 
 [numthreads(1, 1, 1)]
 void f() {
-  tint_symbol = float4x3(float3(0.0f, 1.0f, 2.0f), float3(3.0f, 4.0f, 5.0f), float3(6.0f, 7.0f, 8.0f), float3(9.0f, 10.0f, 11.0f));
+  v(0u, float4x3(float3(0.0f, 1.0f, 2.0f), float3(3.0f, 4.0f, 5.0f), float3(6.0f, 7.0f, 8.0f), float3(9.0f, 10.0f, 11.0f)));
 }
 
diff --git a/test/tint/expressions/type_ctor/mat4x3/inferred/scalars/f16.wgsl.expected.ir.dxc.hlsl b/test/tint/expressions/type_ctor/mat4x3/inferred/scalars/f16.wgsl.expected.ir.dxc.hlsl
index 1616cea..5981043 100644
--- a/test/tint/expressions/type_ctor/mat4x3/inferred/scalars/f16.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/expressions/type_ctor/mat4x3/inferred/scalars/f16.wgsl.expected.ir.dxc.hlsl
@@ -1,15 +1,15 @@
-SKIP: FAILED
+
+static matrix<float16_t, 4, 3> m = matrix<float16_t, 4, 3>(vector<float16_t, 3>(float16_t(0.0h), float16_t(1.0h), float16_t(2.0h)), vector<float16_t, 3>(float16_t(3.0h), float16_t(4.0h), float16_t(5.0h)), vector<float16_t, 3>(float16_t(6.0h), float16_t(7.0h), float16_t(8.0h)), vector<float16_t, 3>(float16_t(9.0h), float16_t(10.0h), float16_t(11.0h)));
+RWByteAddressBuffer tint_symbol : register(u0);
+void v(uint offset, matrix<float16_t, 4, 3> obj) {
+  tint_symbol.Store<vector<float16_t, 3> >((offset + 0u), obj[0u]);
+  tint_symbol.Store<vector<float16_t, 3> >((offset + 8u), obj[1u]);
+  tint_symbol.Store<vector<float16_t, 3> >((offset + 16u), obj[2u]);
+  tint_symbol.Store<vector<float16_t, 3> >((offset + 24u), obj[3u]);
+}
 
 [numthreads(1, 1, 1)]
 void f() {
-  tint_symbol = m;
+  v(0u, m);
 }
 
-DXC validation failure:
-hlsl.hlsl:3:3: error: use of undeclared identifier 'tint_symbol'
-  tint_symbol = m;
-  ^
-hlsl.hlsl:3:17: error: use of undeclared identifier 'm'
-  tint_symbol = m;
-                ^
-
diff --git a/test/tint/expressions/type_ctor/mat4x3/inferred/scalars/f16.wgsl.expected.ir.fxc.hlsl b/test/tint/expressions/type_ctor/mat4x3/inferred/scalars/f16.wgsl.expected.ir.fxc.hlsl
index 08b893f..7f54cfb 100644
--- a/test/tint/expressions/type_ctor/mat4x3/inferred/scalars/f16.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/expressions/type_ctor/mat4x3/inferred/scalars/f16.wgsl.expected.ir.fxc.hlsl
@@ -1,7 +1,20 @@
 SKIP: FAILED
 
+
+static matrix<float16_t, 4, 3> m = matrix<float16_t, 4, 3>(vector<float16_t, 3>(float16_t(0.0h), float16_t(1.0h), float16_t(2.0h)), vector<float16_t, 3>(float16_t(3.0h), float16_t(4.0h), float16_t(5.0h)), vector<float16_t, 3>(float16_t(6.0h), float16_t(7.0h), float16_t(8.0h)), vector<float16_t, 3>(float16_t(9.0h), float16_t(10.0h), float16_t(11.0h)));
+RWByteAddressBuffer tint_symbol : register(u0);
+void v(uint offset, matrix<float16_t, 4, 3> obj) {
+  tint_symbol.Store<vector<float16_t, 3> >((offset + 0u), obj[0u]);
+  tint_symbol.Store<vector<float16_t, 3> >((offset + 8u), obj[1u]);
+  tint_symbol.Store<vector<float16_t, 3> >((offset + 16u), obj[2u]);
+  tint_symbol.Store<vector<float16_t, 3> >((offset + 24u), obj[3u]);
+}
+
 [numthreads(1, 1, 1)]
 void f() {
-  tint_symbol = m;
+  v(0u, m);
 }
 
+FXC validation failure:
+c:\src\dawn\Shader@0x000001CA8CBA12F0(2,15-23): error X3000: syntax error: unexpected token 'float16_t'
+
diff --git a/test/tint/expressions/type_ctor/mat4x3/inferred/scalars/f32.wgsl.expected.ir.dxc.hlsl b/test/tint/expressions/type_ctor/mat4x3/inferred/scalars/f32.wgsl.expected.ir.dxc.hlsl
index 1616cea..89762fc 100644
--- a/test/tint/expressions/type_ctor/mat4x3/inferred/scalars/f32.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/expressions/type_ctor/mat4x3/inferred/scalars/f32.wgsl.expected.ir.dxc.hlsl
@@ -1,15 +1,15 @@
-SKIP: FAILED
+
+static float4x3 m = float4x3(float3(0.0f, 1.0f, 2.0f), float3(3.0f, 4.0f, 5.0f), float3(6.0f, 7.0f, 8.0f), float3(9.0f, 10.0f, 11.0f));
+RWByteAddressBuffer tint_symbol : register(u0);
+void v(uint offset, float4x3 obj) {
+  tint_symbol.Store3((offset + 0u), asuint(obj[0u]));
+  tint_symbol.Store3((offset + 16u), asuint(obj[1u]));
+  tint_symbol.Store3((offset + 32u), asuint(obj[2u]));
+  tint_symbol.Store3((offset + 48u), asuint(obj[3u]));
+}
 
 [numthreads(1, 1, 1)]
 void f() {
-  tint_symbol = m;
+  v(0u, m);
 }
 
-DXC validation failure:
-hlsl.hlsl:3:3: error: use of undeclared identifier 'tint_symbol'
-  tint_symbol = m;
-  ^
-hlsl.hlsl:3:17: error: use of undeclared identifier 'm'
-  tint_symbol = m;
-                ^
-
diff --git a/test/tint/expressions/type_ctor/mat4x3/inferred/scalars/f32.wgsl.expected.ir.fxc.hlsl b/test/tint/expressions/type_ctor/mat4x3/inferred/scalars/f32.wgsl.expected.ir.fxc.hlsl
index 08b893f..89762fc 100644
--- a/test/tint/expressions/type_ctor/mat4x3/inferred/scalars/f32.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/expressions/type_ctor/mat4x3/inferred/scalars/f32.wgsl.expected.ir.fxc.hlsl
@@ -1,7 +1,15 @@
-SKIP: FAILED
+
+static float4x3 m = float4x3(float3(0.0f, 1.0f, 2.0f), float3(3.0f, 4.0f, 5.0f), float3(6.0f, 7.0f, 8.0f), float3(9.0f, 10.0f, 11.0f));
+RWByteAddressBuffer tint_symbol : register(u0);
+void v(uint offset, float4x3 obj) {
+  tint_symbol.Store3((offset + 0u), asuint(obj[0u]));
+  tint_symbol.Store3((offset + 16u), asuint(obj[1u]));
+  tint_symbol.Store3((offset + 32u), asuint(obj[2u]));
+  tint_symbol.Store3((offset + 48u), asuint(obj[3u]));
+}
 
 [numthreads(1, 1, 1)]
 void f() {
-  tint_symbol = m;
+  v(0u, m);
 }
 
diff --git a/test/tint/expressions/type_ctor/mat4x3/inferred/vectors/abstract-float.wgsl.expected.ir.dxc.hlsl b/test/tint/expressions/type_ctor/mat4x3/inferred/vectors/abstract-float.wgsl.expected.ir.dxc.hlsl
index 2f8afa5..4e9c4d6 100644
--- a/test/tint/expressions/type_ctor/mat4x3/inferred/vectors/abstract-float.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/expressions/type_ctor/mat4x3/inferred/vectors/abstract-float.wgsl.expected.ir.dxc.hlsl
@@ -1,12 +1,14 @@
-SKIP: FAILED
+
+RWByteAddressBuffer tint_symbol : register(u0);
+void v(uint offset, float4x3 obj) {
+  tint_symbol.Store3((offset + 0u), asuint(obj[0u]));
+  tint_symbol.Store3((offset + 16u), asuint(obj[1u]));
+  tint_symbol.Store3((offset + 32u), asuint(obj[2u]));
+  tint_symbol.Store3((offset + 48u), asuint(obj[3u]));
+}
 
 [numthreads(1, 1, 1)]
 void f() {
-  tint_symbol = float4x3(float3(0.0f, 1.0f, 2.0f), float3(3.0f, 4.0f, 5.0f), float3(6.0f, 7.0f, 8.0f), float3(9.0f, 10.0f, 11.0f));
+  v(0u, float4x3(float3(0.0f, 1.0f, 2.0f), float3(3.0f, 4.0f, 5.0f), float3(6.0f, 7.0f, 8.0f), float3(9.0f, 10.0f, 11.0f)));
 }
 
-DXC validation failure:
-hlsl.hlsl:3:3: error: use of undeclared identifier 'tint_symbol'
-  tint_symbol = float4x3(float3(0.0f, 1.0f, 2.0f), float3(3.0f, 4.0f, 5.0f), float3(6.0f, 7.0f, 8.0f), float3(9.0f, 10.0f, 11.0f));
-  ^
-
diff --git a/test/tint/expressions/type_ctor/mat4x3/inferred/vectors/abstract-float.wgsl.expected.ir.fxc.hlsl b/test/tint/expressions/type_ctor/mat4x3/inferred/vectors/abstract-float.wgsl.expected.ir.fxc.hlsl
index 9326298..4e9c4d6 100644
--- a/test/tint/expressions/type_ctor/mat4x3/inferred/vectors/abstract-float.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/expressions/type_ctor/mat4x3/inferred/vectors/abstract-float.wgsl.expected.ir.fxc.hlsl
@@ -1,7 +1,14 @@
-SKIP: FAILED
+
+RWByteAddressBuffer tint_symbol : register(u0);
+void v(uint offset, float4x3 obj) {
+  tint_symbol.Store3((offset + 0u), asuint(obj[0u]));
+  tint_symbol.Store3((offset + 16u), asuint(obj[1u]));
+  tint_symbol.Store3((offset + 32u), asuint(obj[2u]));
+  tint_symbol.Store3((offset + 48u), asuint(obj[3u]));
+}
 
 [numthreads(1, 1, 1)]
 void f() {
-  tint_symbol = float4x3(float3(0.0f, 1.0f, 2.0f), float3(3.0f, 4.0f, 5.0f), float3(6.0f, 7.0f, 8.0f), float3(9.0f, 10.0f, 11.0f));
+  v(0u, float4x3(float3(0.0f, 1.0f, 2.0f), float3(3.0f, 4.0f, 5.0f), float3(6.0f, 7.0f, 8.0f), float3(9.0f, 10.0f, 11.0f)));
 }
 
diff --git a/test/tint/expressions/type_ctor/mat4x3/inferred/vectors/f16.wgsl.expected.ir.dxc.hlsl b/test/tint/expressions/type_ctor/mat4x3/inferred/vectors/f16.wgsl.expected.ir.dxc.hlsl
index 1616cea..5981043 100644
--- a/test/tint/expressions/type_ctor/mat4x3/inferred/vectors/f16.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/expressions/type_ctor/mat4x3/inferred/vectors/f16.wgsl.expected.ir.dxc.hlsl
@@ -1,15 +1,15 @@
-SKIP: FAILED
+
+static matrix<float16_t, 4, 3> m = matrix<float16_t, 4, 3>(vector<float16_t, 3>(float16_t(0.0h), float16_t(1.0h), float16_t(2.0h)), vector<float16_t, 3>(float16_t(3.0h), float16_t(4.0h), float16_t(5.0h)), vector<float16_t, 3>(float16_t(6.0h), float16_t(7.0h), float16_t(8.0h)), vector<float16_t, 3>(float16_t(9.0h), float16_t(10.0h), float16_t(11.0h)));
+RWByteAddressBuffer tint_symbol : register(u0);
+void v(uint offset, matrix<float16_t, 4, 3> obj) {
+  tint_symbol.Store<vector<float16_t, 3> >((offset + 0u), obj[0u]);
+  tint_symbol.Store<vector<float16_t, 3> >((offset + 8u), obj[1u]);
+  tint_symbol.Store<vector<float16_t, 3> >((offset + 16u), obj[2u]);
+  tint_symbol.Store<vector<float16_t, 3> >((offset + 24u), obj[3u]);
+}
 
 [numthreads(1, 1, 1)]
 void f() {
-  tint_symbol = m;
+  v(0u, m);
 }
 
-DXC validation failure:
-hlsl.hlsl:3:3: error: use of undeclared identifier 'tint_symbol'
-  tint_symbol = m;
-  ^
-hlsl.hlsl:3:17: error: use of undeclared identifier 'm'
-  tint_symbol = m;
-                ^
-
diff --git a/test/tint/expressions/type_ctor/mat4x3/inferred/vectors/f16.wgsl.expected.ir.fxc.hlsl b/test/tint/expressions/type_ctor/mat4x3/inferred/vectors/f16.wgsl.expected.ir.fxc.hlsl
index 08b893f..4540987 100644
--- a/test/tint/expressions/type_ctor/mat4x3/inferred/vectors/f16.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/expressions/type_ctor/mat4x3/inferred/vectors/f16.wgsl.expected.ir.fxc.hlsl
@@ -1,7 +1,20 @@
 SKIP: FAILED
 
+
+static matrix<float16_t, 4, 3> m = matrix<float16_t, 4, 3>(vector<float16_t, 3>(float16_t(0.0h), float16_t(1.0h), float16_t(2.0h)), vector<float16_t, 3>(float16_t(3.0h), float16_t(4.0h), float16_t(5.0h)), vector<float16_t, 3>(float16_t(6.0h), float16_t(7.0h), float16_t(8.0h)), vector<float16_t, 3>(float16_t(9.0h), float16_t(10.0h), float16_t(11.0h)));
+RWByteAddressBuffer tint_symbol : register(u0);
+void v(uint offset, matrix<float16_t, 4, 3> obj) {
+  tint_symbol.Store<vector<float16_t, 3> >((offset + 0u), obj[0u]);
+  tint_symbol.Store<vector<float16_t, 3> >((offset + 8u), obj[1u]);
+  tint_symbol.Store<vector<float16_t, 3> >((offset + 16u), obj[2u]);
+  tint_symbol.Store<vector<float16_t, 3> >((offset + 24u), obj[3u]);
+}
+
 [numthreads(1, 1, 1)]
 void f() {
-  tint_symbol = m;
+  v(0u, m);
 }
 
+FXC validation failure:
+c:\src\dawn\Shader@0x00000230361E39B0(2,15-23): error X3000: syntax error: unexpected token 'float16_t'
+
diff --git a/test/tint/expressions/type_ctor/mat4x3/inferred/vectors/f32.wgsl.expected.ir.dxc.hlsl b/test/tint/expressions/type_ctor/mat4x3/inferred/vectors/f32.wgsl.expected.ir.dxc.hlsl
index 1616cea..89762fc 100644
--- a/test/tint/expressions/type_ctor/mat4x3/inferred/vectors/f32.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/expressions/type_ctor/mat4x3/inferred/vectors/f32.wgsl.expected.ir.dxc.hlsl
@@ -1,15 +1,15 @@
-SKIP: FAILED
+
+static float4x3 m = float4x3(float3(0.0f, 1.0f, 2.0f), float3(3.0f, 4.0f, 5.0f), float3(6.0f, 7.0f, 8.0f), float3(9.0f, 10.0f, 11.0f));
+RWByteAddressBuffer tint_symbol : register(u0);
+void v(uint offset, float4x3 obj) {
+  tint_symbol.Store3((offset + 0u), asuint(obj[0u]));
+  tint_symbol.Store3((offset + 16u), asuint(obj[1u]));
+  tint_symbol.Store3((offset + 32u), asuint(obj[2u]));
+  tint_symbol.Store3((offset + 48u), asuint(obj[3u]));
+}
 
 [numthreads(1, 1, 1)]
 void f() {
-  tint_symbol = m;
+  v(0u, m);
 }
 
-DXC validation failure:
-hlsl.hlsl:3:3: error: use of undeclared identifier 'tint_symbol'
-  tint_symbol = m;
-  ^
-hlsl.hlsl:3:17: error: use of undeclared identifier 'm'
-  tint_symbol = m;
-                ^
-
diff --git a/test/tint/expressions/type_ctor/mat4x3/inferred/vectors/f32.wgsl.expected.ir.fxc.hlsl b/test/tint/expressions/type_ctor/mat4x3/inferred/vectors/f32.wgsl.expected.ir.fxc.hlsl
index 08b893f..89762fc 100644
--- a/test/tint/expressions/type_ctor/mat4x3/inferred/vectors/f32.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/expressions/type_ctor/mat4x3/inferred/vectors/f32.wgsl.expected.ir.fxc.hlsl
@@ -1,7 +1,15 @@
-SKIP: FAILED
+
+static float4x3 m = float4x3(float3(0.0f, 1.0f, 2.0f), float3(3.0f, 4.0f, 5.0f), float3(6.0f, 7.0f, 8.0f), float3(9.0f, 10.0f, 11.0f));
+RWByteAddressBuffer tint_symbol : register(u0);
+void v(uint offset, float4x3 obj) {
+  tint_symbol.Store3((offset + 0u), asuint(obj[0u]));
+  tint_symbol.Store3((offset + 16u), asuint(obj[1u]));
+  tint_symbol.Store3((offset + 32u), asuint(obj[2u]));
+  tint_symbol.Store3((offset + 48u), asuint(obj[3u]));
+}
 
 [numthreads(1, 1, 1)]
 void f() {
-  tint_symbol = m;
+  v(0u, m);
 }
 
diff --git a/test/tint/expressions/type_ctor/mat4x3/load/f16.wgsl.expected.ir.dxc.hlsl b/test/tint/expressions/type_ctor/mat4x3/load/f16.wgsl.expected.ir.dxc.hlsl
index c6e1d96..26f038f 100644
--- a/test/tint/expressions/type_ctor/mat4x3/load/f16.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/expressions/type_ctor/mat4x3/load/f16.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,15 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Construct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWByteAddressBuffer tint_symbol : register(u0);
+void v(uint offset, matrix<float16_t, 4, 3> obj) {
+  tint_symbol.Store<vector<float16_t, 3> >((offset + 0u), obj[0u]);
+  tint_symbol.Store<vector<float16_t, 3> >((offset + 8u), obj[1u]);
+  tint_symbol.Store<vector<float16_t, 3> >((offset + 16u), obj[2u]);
+  tint_symbol.Store<vector<float16_t, 3> >((offset + 24u), obj[3u]);
+}
+
+[numthreads(1, 1, 1)]
+void f() {
+  matrix<float16_t, 4, 3> m = matrix<float16_t, 4, 3>((float16_t(0.0h)).xxx, (float16_t(0.0h)).xxx, (float16_t(0.0h)).xxx, (float16_t(0.0h)).xxx);
+  v(0u, matrix<float16_t, 4, 3>(m));
+}
+
diff --git a/test/tint/expressions/type_ctor/mat4x3/load/f16.wgsl.expected.ir.fxc.hlsl b/test/tint/expressions/type_ctor/mat4x3/load/f16.wgsl.expected.ir.fxc.hlsl
index c6e1d96..5acec6f 100644
--- a/test/tint/expressions/type_ctor/mat4x3/load/f16.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/expressions/type_ctor/mat4x3/load/f16.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,21 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Construct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+
+RWByteAddressBuffer tint_symbol : register(u0);
+void v(uint offset, matrix<float16_t, 4, 3> obj) {
+  tint_symbol.Store<vector<float16_t, 3> >((offset + 0u), obj[0u]);
+  tint_symbol.Store<vector<float16_t, 3> >((offset + 8u), obj[1u]);
+  tint_symbol.Store<vector<float16_t, 3> >((offset + 16u), obj[2u]);
+  tint_symbol.Store<vector<float16_t, 3> >((offset + 24u), obj[3u]);
+}
+
+[numthreads(1, 1, 1)]
+void f() {
+  matrix<float16_t, 4, 3> m = matrix<float16_t, 4, 3>((float16_t(0.0h)).xxx, (float16_t(0.0h)).xxx, (float16_t(0.0h)).xxx, (float16_t(0.0h)).xxx);
+  v(0u, matrix<float16_t, 4, 3>(m));
+}
+
+FXC validation failure:
+c:\src\dawn\Shader@0x000001A52C5AE770(3,28-36): error X3000: syntax error: unexpected token 'float16_t'
+c:\src\dawn\Shader@0x000001A52C5AE770(4,3-19): error X3018: invalid subscript 'Store'
+
diff --git a/test/tint/expressions/type_ctor/mat4x3/load/f32.wgsl.expected.ir.dxc.hlsl b/test/tint/expressions/type_ctor/mat4x3/load/f32.wgsl.expected.ir.dxc.hlsl
index c6e1d96..55662ad 100644
--- a/test/tint/expressions/type_ctor/mat4x3/load/f32.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/expressions/type_ctor/mat4x3/load/f32.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,15 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Construct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWByteAddressBuffer tint_symbol : register(u0);
+void v(uint offset, float4x3 obj) {
+  tint_symbol.Store3((offset + 0u), asuint(obj[0u]));
+  tint_symbol.Store3((offset + 16u), asuint(obj[1u]));
+  tint_symbol.Store3((offset + 32u), asuint(obj[2u]));
+  tint_symbol.Store3((offset + 48u), asuint(obj[3u]));
+}
+
+[numthreads(1, 1, 1)]
+void f() {
+  float4x3 m = float4x3((0.0f).xxx, (0.0f).xxx, (0.0f).xxx, (0.0f).xxx);
+  v(0u, float4x3(m));
+}
+
diff --git a/test/tint/expressions/type_ctor/mat4x3/load/f32.wgsl.expected.ir.fxc.hlsl b/test/tint/expressions/type_ctor/mat4x3/load/f32.wgsl.expected.ir.fxc.hlsl
index c6e1d96..55662ad 100644
--- a/test/tint/expressions/type_ctor/mat4x3/load/f32.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/expressions/type_ctor/mat4x3/load/f32.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,15 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Construct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWByteAddressBuffer tint_symbol : register(u0);
+void v(uint offset, float4x3 obj) {
+  tint_symbol.Store3((offset + 0u), asuint(obj[0u]));
+  tint_symbol.Store3((offset + 16u), asuint(obj[1u]));
+  tint_symbol.Store3((offset + 32u), asuint(obj[2u]));
+  tint_symbol.Store3((offset + 48u), asuint(obj[3u]));
+}
+
+[numthreads(1, 1, 1)]
+void f() {
+  float4x3 m = float4x3((0.0f).xxx, (0.0f).xxx, (0.0f).xxx, (0.0f).xxx);
+  v(0u, float4x3(m));
+}
+
diff --git a/test/tint/expressions/type_ctor/mat4x3/zero/f16.wgsl.expected.ir.dxc.hlsl b/test/tint/expressions/type_ctor/mat4x3/zero/f16.wgsl.expected.ir.dxc.hlsl
index 1616cea..b31b860 100644
--- a/test/tint/expressions/type_ctor/mat4x3/zero/f16.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/expressions/type_ctor/mat4x3/zero/f16.wgsl.expected.ir.dxc.hlsl
@@ -1,15 +1,15 @@
-SKIP: FAILED
+
+static matrix<float16_t, 4, 3> m = matrix<float16_t, 4, 3>((float16_t(0.0h)).xxx, (float16_t(0.0h)).xxx, (float16_t(0.0h)).xxx, (float16_t(0.0h)).xxx);
+RWByteAddressBuffer tint_symbol : register(u0);
+void v(uint offset, matrix<float16_t, 4, 3> obj) {
+  tint_symbol.Store<vector<float16_t, 3> >((offset + 0u), obj[0u]);
+  tint_symbol.Store<vector<float16_t, 3> >((offset + 8u), obj[1u]);
+  tint_symbol.Store<vector<float16_t, 3> >((offset + 16u), obj[2u]);
+  tint_symbol.Store<vector<float16_t, 3> >((offset + 24u), obj[3u]);
+}
 
 [numthreads(1, 1, 1)]
 void f() {
-  tint_symbol = m;
+  v(0u, m);
 }
 
-DXC validation failure:
-hlsl.hlsl:3:3: error: use of undeclared identifier 'tint_symbol'
-  tint_symbol = m;
-  ^
-hlsl.hlsl:3:17: error: use of undeclared identifier 'm'
-  tint_symbol = m;
-                ^
-
diff --git a/test/tint/expressions/type_ctor/mat4x3/zero/f16.wgsl.expected.ir.fxc.hlsl b/test/tint/expressions/type_ctor/mat4x3/zero/f16.wgsl.expected.ir.fxc.hlsl
index 08b893f..abcf077 100644
--- a/test/tint/expressions/type_ctor/mat4x3/zero/f16.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/expressions/type_ctor/mat4x3/zero/f16.wgsl.expected.ir.fxc.hlsl
@@ -1,7 +1,20 @@
 SKIP: FAILED
 
+
+static matrix<float16_t, 4, 3> m = matrix<float16_t, 4, 3>((float16_t(0.0h)).xxx, (float16_t(0.0h)).xxx, (float16_t(0.0h)).xxx, (float16_t(0.0h)).xxx);
+RWByteAddressBuffer tint_symbol : register(u0);
+void v(uint offset, matrix<float16_t, 4, 3> obj) {
+  tint_symbol.Store<vector<float16_t, 3> >((offset + 0u), obj[0u]);
+  tint_symbol.Store<vector<float16_t, 3> >((offset + 8u), obj[1u]);
+  tint_symbol.Store<vector<float16_t, 3> >((offset + 16u), obj[2u]);
+  tint_symbol.Store<vector<float16_t, 3> >((offset + 24u), obj[3u]);
+}
+
 [numthreads(1, 1, 1)]
 void f() {
-  tint_symbol = m;
+  v(0u, m);
 }
 
+FXC validation failure:
+c:\src\dawn\Shader@0x0000019B7DAA6A40(2,15-23): error X3000: syntax error: unexpected token 'float16_t'
+
diff --git a/test/tint/expressions/type_ctor/mat4x3/zero/f32.wgsl.expected.ir.dxc.hlsl b/test/tint/expressions/type_ctor/mat4x3/zero/f32.wgsl.expected.ir.dxc.hlsl
index 1616cea..c281e8c 100644
--- a/test/tint/expressions/type_ctor/mat4x3/zero/f32.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/expressions/type_ctor/mat4x3/zero/f32.wgsl.expected.ir.dxc.hlsl
@@ -1,15 +1,15 @@
-SKIP: FAILED
+
+static float4x3 m = float4x3((0.0f).xxx, (0.0f).xxx, (0.0f).xxx, (0.0f).xxx);
+RWByteAddressBuffer tint_symbol : register(u0);
+void v(uint offset, float4x3 obj) {
+  tint_symbol.Store3((offset + 0u), asuint(obj[0u]));
+  tint_symbol.Store3((offset + 16u), asuint(obj[1u]));
+  tint_symbol.Store3((offset + 32u), asuint(obj[2u]));
+  tint_symbol.Store3((offset + 48u), asuint(obj[3u]));
+}
 
 [numthreads(1, 1, 1)]
 void f() {
-  tint_symbol = m;
+  v(0u, m);
 }
 
-DXC validation failure:
-hlsl.hlsl:3:3: error: use of undeclared identifier 'tint_symbol'
-  tint_symbol = m;
-  ^
-hlsl.hlsl:3:17: error: use of undeclared identifier 'm'
-  tint_symbol = m;
-                ^
-
diff --git a/test/tint/expressions/type_ctor/mat4x3/zero/f32.wgsl.expected.ir.fxc.hlsl b/test/tint/expressions/type_ctor/mat4x3/zero/f32.wgsl.expected.ir.fxc.hlsl
index 08b893f..c281e8c 100644
--- a/test/tint/expressions/type_ctor/mat4x3/zero/f32.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/expressions/type_ctor/mat4x3/zero/f32.wgsl.expected.ir.fxc.hlsl
@@ -1,7 +1,15 @@
-SKIP: FAILED
+
+static float4x3 m = float4x3((0.0f).xxx, (0.0f).xxx, (0.0f).xxx, (0.0f).xxx);
+RWByteAddressBuffer tint_symbol : register(u0);
+void v(uint offset, float4x3 obj) {
+  tint_symbol.Store3((offset + 0u), asuint(obj[0u]));
+  tint_symbol.Store3((offset + 16u), asuint(obj[1u]));
+  tint_symbol.Store3((offset + 32u), asuint(obj[2u]));
+  tint_symbol.Store3((offset + 48u), asuint(obj[3u]));
+}
 
 [numthreads(1, 1, 1)]
 void f() {
-  tint_symbol = m;
+  v(0u, m);
 }
 
diff --git a/test/tint/expressions/type_ctor/mat4x4/explicit/identity/f16.wgsl.expected.ir.dxc.hlsl b/test/tint/expressions/type_ctor/mat4x4/explicit/identity/f16.wgsl.expected.ir.dxc.hlsl
index c6e1d96..42d43af 100644
--- a/test/tint/expressions/type_ctor/mat4x4/explicit/identity/f16.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/expressions/type_ctor/mat4x4/explicit/identity/f16.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,15 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Construct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+static matrix<float16_t, 4, 4> m = matrix<float16_t, 4, 4>(vector<float16_t, 4>(float16_t(0.0h), float16_t(1.0h), float16_t(2.0h), float16_t(3.0h)), vector<float16_t, 4>(float16_t(4.0h), float16_t(5.0h), float16_t(6.0h), float16_t(7.0h)), vector<float16_t, 4>(float16_t(8.0h), float16_t(9.0h), float16_t(10.0h), float16_t(11.0h)), vector<float16_t, 4>(float16_t(12.0h), float16_t(13.0h), float16_t(14.0h), float16_t(15.0h)));
+RWByteAddressBuffer tint_symbol : register(u0);
+void v(uint offset, matrix<float16_t, 4, 4> obj) {
+  tint_symbol.Store<vector<float16_t, 4> >((offset + 0u), obj[0u]);
+  tint_symbol.Store<vector<float16_t, 4> >((offset + 8u), obj[1u]);
+  tint_symbol.Store<vector<float16_t, 4> >((offset + 16u), obj[2u]);
+  tint_symbol.Store<vector<float16_t, 4> >((offset + 24u), obj[3u]);
+}
+
+[numthreads(1, 1, 1)]
+void f() {
+  v(0u, matrix<float16_t, 4, 4>(m));
+}
+
diff --git a/test/tint/expressions/type_ctor/mat4x4/explicit/identity/f16.wgsl.expected.ir.fxc.hlsl b/test/tint/expressions/type_ctor/mat4x4/explicit/identity/f16.wgsl.expected.ir.fxc.hlsl
index c6e1d96..7aaf00d 100644
--- a/test/tint/expressions/type_ctor/mat4x4/explicit/identity/f16.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/expressions/type_ctor/mat4x4/explicit/identity/f16.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,20 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Construct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+
+static matrix<float16_t, 4, 4> m = matrix<float16_t, 4, 4>(vector<float16_t, 4>(float16_t(0.0h), float16_t(1.0h), float16_t(2.0h), float16_t(3.0h)), vector<float16_t, 4>(float16_t(4.0h), float16_t(5.0h), float16_t(6.0h), float16_t(7.0h)), vector<float16_t, 4>(float16_t(8.0h), float16_t(9.0h), float16_t(10.0h), float16_t(11.0h)), vector<float16_t, 4>(float16_t(12.0h), float16_t(13.0h), float16_t(14.0h), float16_t(15.0h)));
+RWByteAddressBuffer tint_symbol : register(u0);
+void v(uint offset, matrix<float16_t, 4, 4> obj) {
+  tint_symbol.Store<vector<float16_t, 4> >((offset + 0u), obj[0u]);
+  tint_symbol.Store<vector<float16_t, 4> >((offset + 8u), obj[1u]);
+  tint_symbol.Store<vector<float16_t, 4> >((offset + 16u), obj[2u]);
+  tint_symbol.Store<vector<float16_t, 4> >((offset + 24u), obj[3u]);
+}
+
+[numthreads(1, 1, 1)]
+void f() {
+  v(0u, matrix<float16_t, 4, 4>(m));
+}
+
+FXC validation failure:
+c:\src\dawn\Shader@0x0000020E20DD5850(2,15-23): error X3000: syntax error: unexpected token 'float16_t'
+
diff --git a/test/tint/expressions/type_ctor/mat4x4/explicit/identity/f32.wgsl.expected.ir.dxc.hlsl b/test/tint/expressions/type_ctor/mat4x4/explicit/identity/f32.wgsl.expected.ir.dxc.hlsl
index c6e1d96..b852206 100644
--- a/test/tint/expressions/type_ctor/mat4x4/explicit/identity/f32.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/expressions/type_ctor/mat4x4/explicit/identity/f32.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,15 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Construct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+static float4x4 m = float4x4(float4(0.0f, 1.0f, 2.0f, 3.0f), float4(4.0f, 5.0f, 6.0f, 7.0f), float4(8.0f, 9.0f, 10.0f, 11.0f), float4(12.0f, 13.0f, 14.0f, 15.0f));
+RWByteAddressBuffer tint_symbol : register(u0);
+void v(uint offset, float4x4 obj) {
+  tint_symbol.Store4((offset + 0u), asuint(obj[0u]));
+  tint_symbol.Store4((offset + 16u), asuint(obj[1u]));
+  tint_symbol.Store4((offset + 32u), asuint(obj[2u]));
+  tint_symbol.Store4((offset + 48u), asuint(obj[3u]));
+}
+
+[numthreads(1, 1, 1)]
+void f() {
+  v(0u, float4x4(m));
+}
+
diff --git a/test/tint/expressions/type_ctor/mat4x4/explicit/identity/f32.wgsl.expected.ir.fxc.hlsl b/test/tint/expressions/type_ctor/mat4x4/explicit/identity/f32.wgsl.expected.ir.fxc.hlsl
index c6e1d96..b852206 100644
--- a/test/tint/expressions/type_ctor/mat4x4/explicit/identity/f32.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/expressions/type_ctor/mat4x4/explicit/identity/f32.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,15 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Construct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+static float4x4 m = float4x4(float4(0.0f, 1.0f, 2.0f, 3.0f), float4(4.0f, 5.0f, 6.0f, 7.0f), float4(8.0f, 9.0f, 10.0f, 11.0f), float4(12.0f, 13.0f, 14.0f, 15.0f));
+RWByteAddressBuffer tint_symbol : register(u0);
+void v(uint offset, float4x4 obj) {
+  tint_symbol.Store4((offset + 0u), asuint(obj[0u]));
+  tint_symbol.Store4((offset + 16u), asuint(obj[1u]));
+  tint_symbol.Store4((offset + 32u), asuint(obj[2u]));
+  tint_symbol.Store4((offset + 48u), asuint(obj[3u]));
+}
+
+[numthreads(1, 1, 1)]
+void f() {
+  v(0u, float4x4(m));
+}
+
diff --git a/test/tint/expressions/type_ctor/mat4x4/explicit/scalars/f16.wgsl.expected.ir.dxc.hlsl b/test/tint/expressions/type_ctor/mat4x4/explicit/scalars/f16.wgsl.expected.ir.dxc.hlsl
index 1616cea..3c200d8 100644
--- a/test/tint/expressions/type_ctor/mat4x4/explicit/scalars/f16.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/expressions/type_ctor/mat4x4/explicit/scalars/f16.wgsl.expected.ir.dxc.hlsl
@@ -1,15 +1,15 @@
-SKIP: FAILED
+
+static matrix<float16_t, 4, 4> m = matrix<float16_t, 4, 4>(vector<float16_t, 4>(float16_t(0.0h), float16_t(1.0h), float16_t(2.0h), float16_t(3.0h)), vector<float16_t, 4>(float16_t(4.0h), float16_t(5.0h), float16_t(6.0h), float16_t(7.0h)), vector<float16_t, 4>(float16_t(8.0h), float16_t(9.0h), float16_t(10.0h), float16_t(11.0h)), vector<float16_t, 4>(float16_t(12.0h), float16_t(13.0h), float16_t(14.0h), float16_t(15.0h)));
+RWByteAddressBuffer tint_symbol : register(u0);
+void v(uint offset, matrix<float16_t, 4, 4> obj) {
+  tint_symbol.Store<vector<float16_t, 4> >((offset + 0u), obj[0u]);
+  tint_symbol.Store<vector<float16_t, 4> >((offset + 8u), obj[1u]);
+  tint_symbol.Store<vector<float16_t, 4> >((offset + 16u), obj[2u]);
+  tint_symbol.Store<vector<float16_t, 4> >((offset + 24u), obj[3u]);
+}
 
 [numthreads(1, 1, 1)]
 void f() {
-  tint_symbol = m;
+  v(0u, m);
 }
 
-DXC validation failure:
-hlsl.hlsl:3:3: error: use of undeclared identifier 'tint_symbol'
-  tint_symbol = m;
-  ^
-hlsl.hlsl:3:17: error: use of undeclared identifier 'm'
-  tint_symbol = m;
-                ^
-
diff --git a/test/tint/expressions/type_ctor/mat4x4/explicit/scalars/f16.wgsl.expected.ir.fxc.hlsl b/test/tint/expressions/type_ctor/mat4x4/explicit/scalars/f16.wgsl.expected.ir.fxc.hlsl
index 08b893f..4aa75c6 100644
--- a/test/tint/expressions/type_ctor/mat4x4/explicit/scalars/f16.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/expressions/type_ctor/mat4x4/explicit/scalars/f16.wgsl.expected.ir.fxc.hlsl
@@ -1,7 +1,20 @@
 SKIP: FAILED
 
+
+static matrix<float16_t, 4, 4> m = matrix<float16_t, 4, 4>(vector<float16_t, 4>(float16_t(0.0h), float16_t(1.0h), float16_t(2.0h), float16_t(3.0h)), vector<float16_t, 4>(float16_t(4.0h), float16_t(5.0h), float16_t(6.0h), float16_t(7.0h)), vector<float16_t, 4>(float16_t(8.0h), float16_t(9.0h), float16_t(10.0h), float16_t(11.0h)), vector<float16_t, 4>(float16_t(12.0h), float16_t(13.0h), float16_t(14.0h), float16_t(15.0h)));
+RWByteAddressBuffer tint_symbol : register(u0);
+void v(uint offset, matrix<float16_t, 4, 4> obj) {
+  tint_symbol.Store<vector<float16_t, 4> >((offset + 0u), obj[0u]);
+  tint_symbol.Store<vector<float16_t, 4> >((offset + 8u), obj[1u]);
+  tint_symbol.Store<vector<float16_t, 4> >((offset + 16u), obj[2u]);
+  tint_symbol.Store<vector<float16_t, 4> >((offset + 24u), obj[3u]);
+}
+
 [numthreads(1, 1, 1)]
 void f() {
-  tint_symbol = m;
+  v(0u, m);
 }
 
+FXC validation failure:
+c:\src\dawn\Shader@0x000001D0E2DB3AC0(2,15-23): error X3000: syntax error: unexpected token 'float16_t'
+
diff --git a/test/tint/expressions/type_ctor/mat4x4/explicit/scalars/f32.wgsl.expected.ir.dxc.hlsl b/test/tint/expressions/type_ctor/mat4x4/explicit/scalars/f32.wgsl.expected.ir.dxc.hlsl
index 1616cea..fc96e56 100644
--- a/test/tint/expressions/type_ctor/mat4x4/explicit/scalars/f32.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/expressions/type_ctor/mat4x4/explicit/scalars/f32.wgsl.expected.ir.dxc.hlsl
@@ -1,15 +1,15 @@
-SKIP: FAILED
+
+static float4x4 m = float4x4(float4(0.0f, 1.0f, 2.0f, 3.0f), float4(4.0f, 5.0f, 6.0f, 7.0f), float4(8.0f, 9.0f, 10.0f, 11.0f), float4(12.0f, 13.0f, 14.0f, 15.0f));
+RWByteAddressBuffer tint_symbol : register(u0);
+void v(uint offset, float4x4 obj) {
+  tint_symbol.Store4((offset + 0u), asuint(obj[0u]));
+  tint_symbol.Store4((offset + 16u), asuint(obj[1u]));
+  tint_symbol.Store4((offset + 32u), asuint(obj[2u]));
+  tint_symbol.Store4((offset + 48u), asuint(obj[3u]));
+}
 
 [numthreads(1, 1, 1)]
 void f() {
-  tint_symbol = m;
+  v(0u, m);
 }
 
-DXC validation failure:
-hlsl.hlsl:3:3: error: use of undeclared identifier 'tint_symbol'
-  tint_symbol = m;
-  ^
-hlsl.hlsl:3:17: error: use of undeclared identifier 'm'
-  tint_symbol = m;
-                ^
-
diff --git a/test/tint/expressions/type_ctor/mat4x4/explicit/scalars/f32.wgsl.expected.ir.fxc.hlsl b/test/tint/expressions/type_ctor/mat4x4/explicit/scalars/f32.wgsl.expected.ir.fxc.hlsl
index 08b893f..fc96e56 100644
--- a/test/tint/expressions/type_ctor/mat4x4/explicit/scalars/f32.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/expressions/type_ctor/mat4x4/explicit/scalars/f32.wgsl.expected.ir.fxc.hlsl
@@ -1,7 +1,15 @@
-SKIP: FAILED
+
+static float4x4 m = float4x4(float4(0.0f, 1.0f, 2.0f, 3.0f), float4(4.0f, 5.0f, 6.0f, 7.0f), float4(8.0f, 9.0f, 10.0f, 11.0f), float4(12.0f, 13.0f, 14.0f, 15.0f));
+RWByteAddressBuffer tint_symbol : register(u0);
+void v(uint offset, float4x4 obj) {
+  tint_symbol.Store4((offset + 0u), asuint(obj[0u]));
+  tint_symbol.Store4((offset + 16u), asuint(obj[1u]));
+  tint_symbol.Store4((offset + 32u), asuint(obj[2u]));
+  tint_symbol.Store4((offset + 48u), asuint(obj[3u]));
+}
 
 [numthreads(1, 1, 1)]
 void f() {
-  tint_symbol = m;
+  v(0u, m);
 }
 
diff --git a/test/tint/expressions/type_ctor/mat4x4/explicit/vectors/f16.wgsl.expected.ir.dxc.hlsl b/test/tint/expressions/type_ctor/mat4x4/explicit/vectors/f16.wgsl.expected.ir.dxc.hlsl
index 1616cea..3c200d8 100644
--- a/test/tint/expressions/type_ctor/mat4x4/explicit/vectors/f16.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/expressions/type_ctor/mat4x4/explicit/vectors/f16.wgsl.expected.ir.dxc.hlsl
@@ -1,15 +1,15 @@
-SKIP: FAILED
+
+static matrix<float16_t, 4, 4> m = matrix<float16_t, 4, 4>(vector<float16_t, 4>(float16_t(0.0h), float16_t(1.0h), float16_t(2.0h), float16_t(3.0h)), vector<float16_t, 4>(float16_t(4.0h), float16_t(5.0h), float16_t(6.0h), float16_t(7.0h)), vector<float16_t, 4>(float16_t(8.0h), float16_t(9.0h), float16_t(10.0h), float16_t(11.0h)), vector<float16_t, 4>(float16_t(12.0h), float16_t(13.0h), float16_t(14.0h), float16_t(15.0h)));
+RWByteAddressBuffer tint_symbol : register(u0);
+void v(uint offset, matrix<float16_t, 4, 4> obj) {
+  tint_symbol.Store<vector<float16_t, 4> >((offset + 0u), obj[0u]);
+  tint_symbol.Store<vector<float16_t, 4> >((offset + 8u), obj[1u]);
+  tint_symbol.Store<vector<float16_t, 4> >((offset + 16u), obj[2u]);
+  tint_symbol.Store<vector<float16_t, 4> >((offset + 24u), obj[3u]);
+}
 
 [numthreads(1, 1, 1)]
 void f() {
-  tint_symbol = m;
+  v(0u, m);
 }
 
-DXC validation failure:
-hlsl.hlsl:3:3: error: use of undeclared identifier 'tint_symbol'
-  tint_symbol = m;
-  ^
-hlsl.hlsl:3:17: error: use of undeclared identifier 'm'
-  tint_symbol = m;
-                ^
-
diff --git a/test/tint/expressions/type_ctor/mat4x4/explicit/vectors/f16.wgsl.expected.ir.fxc.hlsl b/test/tint/expressions/type_ctor/mat4x4/explicit/vectors/f16.wgsl.expected.ir.fxc.hlsl
index 08b893f..7bc133a 100644
--- a/test/tint/expressions/type_ctor/mat4x4/explicit/vectors/f16.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/expressions/type_ctor/mat4x4/explicit/vectors/f16.wgsl.expected.ir.fxc.hlsl
@@ -1,7 +1,20 @@
 SKIP: FAILED
 
+
+static matrix<float16_t, 4, 4> m = matrix<float16_t, 4, 4>(vector<float16_t, 4>(float16_t(0.0h), float16_t(1.0h), float16_t(2.0h), float16_t(3.0h)), vector<float16_t, 4>(float16_t(4.0h), float16_t(5.0h), float16_t(6.0h), float16_t(7.0h)), vector<float16_t, 4>(float16_t(8.0h), float16_t(9.0h), float16_t(10.0h), float16_t(11.0h)), vector<float16_t, 4>(float16_t(12.0h), float16_t(13.0h), float16_t(14.0h), float16_t(15.0h)));
+RWByteAddressBuffer tint_symbol : register(u0);
+void v(uint offset, matrix<float16_t, 4, 4> obj) {
+  tint_symbol.Store<vector<float16_t, 4> >((offset + 0u), obj[0u]);
+  tint_symbol.Store<vector<float16_t, 4> >((offset + 8u), obj[1u]);
+  tint_symbol.Store<vector<float16_t, 4> >((offset + 16u), obj[2u]);
+  tint_symbol.Store<vector<float16_t, 4> >((offset + 24u), obj[3u]);
+}
+
 [numthreads(1, 1, 1)]
 void f() {
-  tint_symbol = m;
+  v(0u, m);
 }
 
+FXC validation failure:
+c:\src\dawn\Shader@0x0000012805A4FFB0(2,15-23): error X3000: syntax error: unexpected token 'float16_t'
+
diff --git a/test/tint/expressions/type_ctor/mat4x4/explicit/vectors/f32.wgsl.expected.ir.dxc.hlsl b/test/tint/expressions/type_ctor/mat4x4/explicit/vectors/f32.wgsl.expected.ir.dxc.hlsl
index 1616cea..fc96e56 100644
--- a/test/tint/expressions/type_ctor/mat4x4/explicit/vectors/f32.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/expressions/type_ctor/mat4x4/explicit/vectors/f32.wgsl.expected.ir.dxc.hlsl
@@ -1,15 +1,15 @@
-SKIP: FAILED
+
+static float4x4 m = float4x4(float4(0.0f, 1.0f, 2.0f, 3.0f), float4(4.0f, 5.0f, 6.0f, 7.0f), float4(8.0f, 9.0f, 10.0f, 11.0f), float4(12.0f, 13.0f, 14.0f, 15.0f));
+RWByteAddressBuffer tint_symbol : register(u0);
+void v(uint offset, float4x4 obj) {
+  tint_symbol.Store4((offset + 0u), asuint(obj[0u]));
+  tint_symbol.Store4((offset + 16u), asuint(obj[1u]));
+  tint_symbol.Store4((offset + 32u), asuint(obj[2u]));
+  tint_symbol.Store4((offset + 48u), asuint(obj[3u]));
+}
 
 [numthreads(1, 1, 1)]
 void f() {
-  tint_symbol = m;
+  v(0u, m);
 }
 
-DXC validation failure:
-hlsl.hlsl:3:3: error: use of undeclared identifier 'tint_symbol'
-  tint_symbol = m;
-  ^
-hlsl.hlsl:3:17: error: use of undeclared identifier 'm'
-  tint_symbol = m;
-                ^
-
diff --git a/test/tint/expressions/type_ctor/mat4x4/explicit/vectors/f32.wgsl.expected.ir.fxc.hlsl b/test/tint/expressions/type_ctor/mat4x4/explicit/vectors/f32.wgsl.expected.ir.fxc.hlsl
index 08b893f..fc96e56 100644
--- a/test/tint/expressions/type_ctor/mat4x4/explicit/vectors/f32.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/expressions/type_ctor/mat4x4/explicit/vectors/f32.wgsl.expected.ir.fxc.hlsl
@@ -1,7 +1,15 @@
-SKIP: FAILED
+
+static float4x4 m = float4x4(float4(0.0f, 1.0f, 2.0f, 3.0f), float4(4.0f, 5.0f, 6.0f, 7.0f), float4(8.0f, 9.0f, 10.0f, 11.0f), float4(12.0f, 13.0f, 14.0f, 15.0f));
+RWByteAddressBuffer tint_symbol : register(u0);
+void v(uint offset, float4x4 obj) {
+  tint_symbol.Store4((offset + 0u), asuint(obj[0u]));
+  tint_symbol.Store4((offset + 16u), asuint(obj[1u]));
+  tint_symbol.Store4((offset + 32u), asuint(obj[2u]));
+  tint_symbol.Store4((offset + 48u), asuint(obj[3u]));
+}
 
 [numthreads(1, 1, 1)]
 void f() {
-  tint_symbol = m;
+  v(0u, m);
 }
 
diff --git a/test/tint/expressions/type_ctor/mat4x4/inferred/identity/f16.wgsl.expected.ir.dxc.hlsl b/test/tint/expressions/type_ctor/mat4x4/inferred/identity/f16.wgsl.expected.ir.dxc.hlsl
index c6e1d96..42d43af 100644
--- a/test/tint/expressions/type_ctor/mat4x4/inferred/identity/f16.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/expressions/type_ctor/mat4x4/inferred/identity/f16.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,15 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Construct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+static matrix<float16_t, 4, 4> m = matrix<float16_t, 4, 4>(vector<float16_t, 4>(float16_t(0.0h), float16_t(1.0h), float16_t(2.0h), float16_t(3.0h)), vector<float16_t, 4>(float16_t(4.0h), float16_t(5.0h), float16_t(6.0h), float16_t(7.0h)), vector<float16_t, 4>(float16_t(8.0h), float16_t(9.0h), float16_t(10.0h), float16_t(11.0h)), vector<float16_t, 4>(float16_t(12.0h), float16_t(13.0h), float16_t(14.0h), float16_t(15.0h)));
+RWByteAddressBuffer tint_symbol : register(u0);
+void v(uint offset, matrix<float16_t, 4, 4> obj) {
+  tint_symbol.Store<vector<float16_t, 4> >((offset + 0u), obj[0u]);
+  tint_symbol.Store<vector<float16_t, 4> >((offset + 8u), obj[1u]);
+  tint_symbol.Store<vector<float16_t, 4> >((offset + 16u), obj[2u]);
+  tint_symbol.Store<vector<float16_t, 4> >((offset + 24u), obj[3u]);
+}
+
+[numthreads(1, 1, 1)]
+void f() {
+  v(0u, matrix<float16_t, 4, 4>(m));
+}
+
diff --git a/test/tint/expressions/type_ctor/mat4x4/inferred/identity/f16.wgsl.expected.ir.fxc.hlsl b/test/tint/expressions/type_ctor/mat4x4/inferred/identity/f16.wgsl.expected.ir.fxc.hlsl
index c6e1d96..3b5b67a 100644
--- a/test/tint/expressions/type_ctor/mat4x4/inferred/identity/f16.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/expressions/type_ctor/mat4x4/inferred/identity/f16.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,20 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Construct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+
+static matrix<float16_t, 4, 4> m = matrix<float16_t, 4, 4>(vector<float16_t, 4>(float16_t(0.0h), float16_t(1.0h), float16_t(2.0h), float16_t(3.0h)), vector<float16_t, 4>(float16_t(4.0h), float16_t(5.0h), float16_t(6.0h), float16_t(7.0h)), vector<float16_t, 4>(float16_t(8.0h), float16_t(9.0h), float16_t(10.0h), float16_t(11.0h)), vector<float16_t, 4>(float16_t(12.0h), float16_t(13.0h), float16_t(14.0h), float16_t(15.0h)));
+RWByteAddressBuffer tint_symbol : register(u0);
+void v(uint offset, matrix<float16_t, 4, 4> obj) {
+  tint_symbol.Store<vector<float16_t, 4> >((offset + 0u), obj[0u]);
+  tint_symbol.Store<vector<float16_t, 4> >((offset + 8u), obj[1u]);
+  tint_symbol.Store<vector<float16_t, 4> >((offset + 16u), obj[2u]);
+  tint_symbol.Store<vector<float16_t, 4> >((offset + 24u), obj[3u]);
+}
+
+[numthreads(1, 1, 1)]
+void f() {
+  v(0u, matrix<float16_t, 4, 4>(m));
+}
+
+FXC validation failure:
+c:\src\dawn\Shader@0x0000029727374000(2,15-23): error X3000: syntax error: unexpected token 'float16_t'
+
diff --git a/test/tint/expressions/type_ctor/mat4x4/inferred/identity/f32.wgsl.expected.ir.dxc.hlsl b/test/tint/expressions/type_ctor/mat4x4/inferred/identity/f32.wgsl.expected.ir.dxc.hlsl
index c6e1d96..b852206 100644
--- a/test/tint/expressions/type_ctor/mat4x4/inferred/identity/f32.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/expressions/type_ctor/mat4x4/inferred/identity/f32.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,15 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Construct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+static float4x4 m = float4x4(float4(0.0f, 1.0f, 2.0f, 3.0f), float4(4.0f, 5.0f, 6.0f, 7.0f), float4(8.0f, 9.0f, 10.0f, 11.0f), float4(12.0f, 13.0f, 14.0f, 15.0f));
+RWByteAddressBuffer tint_symbol : register(u0);
+void v(uint offset, float4x4 obj) {
+  tint_symbol.Store4((offset + 0u), asuint(obj[0u]));
+  tint_symbol.Store4((offset + 16u), asuint(obj[1u]));
+  tint_symbol.Store4((offset + 32u), asuint(obj[2u]));
+  tint_symbol.Store4((offset + 48u), asuint(obj[3u]));
+}
+
+[numthreads(1, 1, 1)]
+void f() {
+  v(0u, float4x4(m));
+}
+
diff --git a/test/tint/expressions/type_ctor/mat4x4/inferred/identity/f32.wgsl.expected.ir.fxc.hlsl b/test/tint/expressions/type_ctor/mat4x4/inferred/identity/f32.wgsl.expected.ir.fxc.hlsl
index c6e1d96..b852206 100644
--- a/test/tint/expressions/type_ctor/mat4x4/inferred/identity/f32.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/expressions/type_ctor/mat4x4/inferred/identity/f32.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,15 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Construct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+static float4x4 m = float4x4(float4(0.0f, 1.0f, 2.0f, 3.0f), float4(4.0f, 5.0f, 6.0f, 7.0f), float4(8.0f, 9.0f, 10.0f, 11.0f), float4(12.0f, 13.0f, 14.0f, 15.0f));
+RWByteAddressBuffer tint_symbol : register(u0);
+void v(uint offset, float4x4 obj) {
+  tint_symbol.Store4((offset + 0u), asuint(obj[0u]));
+  tint_symbol.Store4((offset + 16u), asuint(obj[1u]));
+  tint_symbol.Store4((offset + 32u), asuint(obj[2u]));
+  tint_symbol.Store4((offset + 48u), asuint(obj[3u]));
+}
+
+[numthreads(1, 1, 1)]
+void f() {
+  v(0u, float4x4(m));
+}
+
diff --git a/test/tint/expressions/type_ctor/mat4x4/inferred/scalars/abstract-float.wgsl.expected.ir.dxc.hlsl b/test/tint/expressions/type_ctor/mat4x4/inferred/scalars/abstract-float.wgsl.expected.ir.dxc.hlsl
index 917659a..bc81f16 100644
--- a/test/tint/expressions/type_ctor/mat4x4/inferred/scalars/abstract-float.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/expressions/type_ctor/mat4x4/inferred/scalars/abstract-float.wgsl.expected.ir.dxc.hlsl
@@ -1,12 +1,14 @@
-SKIP: FAILED
+
+RWByteAddressBuffer tint_symbol : register(u0);
+void v(uint offset, float4x4 obj) {
+  tint_symbol.Store4((offset + 0u), asuint(obj[0u]));
+  tint_symbol.Store4((offset + 16u), asuint(obj[1u]));
+  tint_symbol.Store4((offset + 32u), asuint(obj[2u]));
+  tint_symbol.Store4((offset + 48u), asuint(obj[3u]));
+}
 
 [numthreads(1, 1, 1)]
 void f() {
-  tint_symbol = float4x4(float4(0.0f, 1.0f, 2.0f, 3.0f), float4(4.0f, 5.0f, 6.0f, 7.0f), float4(8.0f, 9.0f, 10.0f, 11.0f), float4(12.0f, 13.0f, 14.0f, 15.0f));
+  v(0u, float4x4(float4(0.0f, 1.0f, 2.0f, 3.0f), float4(4.0f, 5.0f, 6.0f, 7.0f), float4(8.0f, 9.0f, 10.0f, 11.0f), float4(12.0f, 13.0f, 14.0f, 15.0f)));
 }
 
-DXC validation failure:
-hlsl.hlsl:3:3: error: use of undeclared identifier 'tint_symbol'
-  tint_symbol = float4x4(float4(0.0f, 1.0f, 2.0f, 3.0f), float4(4.0f, 5.0f, 6.0f, 7.0f), float4(8.0f, 9.0f, 10.0f, 11.0f), float4(12.0f, 13.0f, 14.0f, 15.0f));
-  ^
-
diff --git a/test/tint/expressions/type_ctor/mat4x4/inferred/scalars/abstract-float.wgsl.expected.ir.fxc.hlsl b/test/tint/expressions/type_ctor/mat4x4/inferred/scalars/abstract-float.wgsl.expected.ir.fxc.hlsl
index a1ba064..bc81f16 100644
--- a/test/tint/expressions/type_ctor/mat4x4/inferred/scalars/abstract-float.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/expressions/type_ctor/mat4x4/inferred/scalars/abstract-float.wgsl.expected.ir.fxc.hlsl
@@ -1,7 +1,14 @@
-SKIP: FAILED
+
+RWByteAddressBuffer tint_symbol : register(u0);
+void v(uint offset, float4x4 obj) {
+  tint_symbol.Store4((offset + 0u), asuint(obj[0u]));
+  tint_symbol.Store4((offset + 16u), asuint(obj[1u]));
+  tint_symbol.Store4((offset + 32u), asuint(obj[2u]));
+  tint_symbol.Store4((offset + 48u), asuint(obj[3u]));
+}
 
 [numthreads(1, 1, 1)]
 void f() {
-  tint_symbol = float4x4(float4(0.0f, 1.0f, 2.0f, 3.0f), float4(4.0f, 5.0f, 6.0f, 7.0f), float4(8.0f, 9.0f, 10.0f, 11.0f), float4(12.0f, 13.0f, 14.0f, 15.0f));
+  v(0u, float4x4(float4(0.0f, 1.0f, 2.0f, 3.0f), float4(4.0f, 5.0f, 6.0f, 7.0f), float4(8.0f, 9.0f, 10.0f, 11.0f), float4(12.0f, 13.0f, 14.0f, 15.0f)));
 }
 
diff --git a/test/tint/expressions/type_ctor/mat4x4/inferred/scalars/f16.wgsl.expected.ir.dxc.hlsl b/test/tint/expressions/type_ctor/mat4x4/inferred/scalars/f16.wgsl.expected.ir.dxc.hlsl
index 1616cea..3c200d8 100644
--- a/test/tint/expressions/type_ctor/mat4x4/inferred/scalars/f16.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/expressions/type_ctor/mat4x4/inferred/scalars/f16.wgsl.expected.ir.dxc.hlsl
@@ -1,15 +1,15 @@
-SKIP: FAILED
+
+static matrix<float16_t, 4, 4> m = matrix<float16_t, 4, 4>(vector<float16_t, 4>(float16_t(0.0h), float16_t(1.0h), float16_t(2.0h), float16_t(3.0h)), vector<float16_t, 4>(float16_t(4.0h), float16_t(5.0h), float16_t(6.0h), float16_t(7.0h)), vector<float16_t, 4>(float16_t(8.0h), float16_t(9.0h), float16_t(10.0h), float16_t(11.0h)), vector<float16_t, 4>(float16_t(12.0h), float16_t(13.0h), float16_t(14.0h), float16_t(15.0h)));
+RWByteAddressBuffer tint_symbol : register(u0);
+void v(uint offset, matrix<float16_t, 4, 4> obj) {
+  tint_symbol.Store<vector<float16_t, 4> >((offset + 0u), obj[0u]);
+  tint_symbol.Store<vector<float16_t, 4> >((offset + 8u), obj[1u]);
+  tint_symbol.Store<vector<float16_t, 4> >((offset + 16u), obj[2u]);
+  tint_symbol.Store<vector<float16_t, 4> >((offset + 24u), obj[3u]);
+}
 
 [numthreads(1, 1, 1)]
 void f() {
-  tint_symbol = m;
+  v(0u, m);
 }
 
-DXC validation failure:
-hlsl.hlsl:3:3: error: use of undeclared identifier 'tint_symbol'
-  tint_symbol = m;
-  ^
-hlsl.hlsl:3:17: error: use of undeclared identifier 'm'
-  tint_symbol = m;
-                ^
-
diff --git a/test/tint/expressions/type_ctor/mat4x4/inferred/scalars/f16.wgsl.expected.ir.fxc.hlsl b/test/tint/expressions/type_ctor/mat4x4/inferred/scalars/f16.wgsl.expected.ir.fxc.hlsl
index 08b893f..2e70cd4 100644
--- a/test/tint/expressions/type_ctor/mat4x4/inferred/scalars/f16.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/expressions/type_ctor/mat4x4/inferred/scalars/f16.wgsl.expected.ir.fxc.hlsl
@@ -1,7 +1,20 @@
 SKIP: FAILED
 
+
+static matrix<float16_t, 4, 4> m = matrix<float16_t, 4, 4>(vector<float16_t, 4>(float16_t(0.0h), float16_t(1.0h), float16_t(2.0h), float16_t(3.0h)), vector<float16_t, 4>(float16_t(4.0h), float16_t(5.0h), float16_t(6.0h), float16_t(7.0h)), vector<float16_t, 4>(float16_t(8.0h), float16_t(9.0h), float16_t(10.0h), float16_t(11.0h)), vector<float16_t, 4>(float16_t(12.0h), float16_t(13.0h), float16_t(14.0h), float16_t(15.0h)));
+RWByteAddressBuffer tint_symbol : register(u0);
+void v(uint offset, matrix<float16_t, 4, 4> obj) {
+  tint_symbol.Store<vector<float16_t, 4> >((offset + 0u), obj[0u]);
+  tint_symbol.Store<vector<float16_t, 4> >((offset + 8u), obj[1u]);
+  tint_symbol.Store<vector<float16_t, 4> >((offset + 16u), obj[2u]);
+  tint_symbol.Store<vector<float16_t, 4> >((offset + 24u), obj[3u]);
+}
+
 [numthreads(1, 1, 1)]
 void f() {
-  tint_symbol = m;
+  v(0u, m);
 }
 
+FXC validation failure:
+c:\src\dawn\Shader@0x000001BBA4F60870(2,15-23): error X3000: syntax error: unexpected token 'float16_t'
+
diff --git a/test/tint/expressions/type_ctor/mat4x4/inferred/scalars/f32.wgsl.expected.ir.dxc.hlsl b/test/tint/expressions/type_ctor/mat4x4/inferred/scalars/f32.wgsl.expected.ir.dxc.hlsl
index 1616cea..fc96e56 100644
--- a/test/tint/expressions/type_ctor/mat4x4/inferred/scalars/f32.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/expressions/type_ctor/mat4x4/inferred/scalars/f32.wgsl.expected.ir.dxc.hlsl
@@ -1,15 +1,15 @@
-SKIP: FAILED
+
+static float4x4 m = float4x4(float4(0.0f, 1.0f, 2.0f, 3.0f), float4(4.0f, 5.0f, 6.0f, 7.0f), float4(8.0f, 9.0f, 10.0f, 11.0f), float4(12.0f, 13.0f, 14.0f, 15.0f));
+RWByteAddressBuffer tint_symbol : register(u0);
+void v(uint offset, float4x4 obj) {
+  tint_symbol.Store4((offset + 0u), asuint(obj[0u]));
+  tint_symbol.Store4((offset + 16u), asuint(obj[1u]));
+  tint_symbol.Store4((offset + 32u), asuint(obj[2u]));
+  tint_symbol.Store4((offset + 48u), asuint(obj[3u]));
+}
 
 [numthreads(1, 1, 1)]
 void f() {
-  tint_symbol = m;
+  v(0u, m);
 }
 
-DXC validation failure:
-hlsl.hlsl:3:3: error: use of undeclared identifier 'tint_symbol'
-  tint_symbol = m;
-  ^
-hlsl.hlsl:3:17: error: use of undeclared identifier 'm'
-  tint_symbol = m;
-                ^
-
diff --git a/test/tint/expressions/type_ctor/mat4x4/inferred/scalars/f32.wgsl.expected.ir.fxc.hlsl b/test/tint/expressions/type_ctor/mat4x4/inferred/scalars/f32.wgsl.expected.ir.fxc.hlsl
index 08b893f..fc96e56 100644
--- a/test/tint/expressions/type_ctor/mat4x4/inferred/scalars/f32.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/expressions/type_ctor/mat4x4/inferred/scalars/f32.wgsl.expected.ir.fxc.hlsl
@@ -1,7 +1,15 @@
-SKIP: FAILED
+
+static float4x4 m = float4x4(float4(0.0f, 1.0f, 2.0f, 3.0f), float4(4.0f, 5.0f, 6.0f, 7.0f), float4(8.0f, 9.0f, 10.0f, 11.0f), float4(12.0f, 13.0f, 14.0f, 15.0f));
+RWByteAddressBuffer tint_symbol : register(u0);
+void v(uint offset, float4x4 obj) {
+  tint_symbol.Store4((offset + 0u), asuint(obj[0u]));
+  tint_symbol.Store4((offset + 16u), asuint(obj[1u]));
+  tint_symbol.Store4((offset + 32u), asuint(obj[2u]));
+  tint_symbol.Store4((offset + 48u), asuint(obj[3u]));
+}
 
 [numthreads(1, 1, 1)]
 void f() {
-  tint_symbol = m;
+  v(0u, m);
 }
 
diff --git a/test/tint/expressions/type_ctor/mat4x4/inferred/vectors/abstract-float.wgsl.expected.ir.dxc.hlsl b/test/tint/expressions/type_ctor/mat4x4/inferred/vectors/abstract-float.wgsl.expected.ir.dxc.hlsl
index 917659a..bc81f16 100644
--- a/test/tint/expressions/type_ctor/mat4x4/inferred/vectors/abstract-float.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/expressions/type_ctor/mat4x4/inferred/vectors/abstract-float.wgsl.expected.ir.dxc.hlsl
@@ -1,12 +1,14 @@
-SKIP: FAILED
+
+RWByteAddressBuffer tint_symbol : register(u0);
+void v(uint offset, float4x4 obj) {
+  tint_symbol.Store4((offset + 0u), asuint(obj[0u]));
+  tint_symbol.Store4((offset + 16u), asuint(obj[1u]));
+  tint_symbol.Store4((offset + 32u), asuint(obj[2u]));
+  tint_symbol.Store4((offset + 48u), asuint(obj[3u]));
+}
 
 [numthreads(1, 1, 1)]
 void f() {
-  tint_symbol = float4x4(float4(0.0f, 1.0f, 2.0f, 3.0f), float4(4.0f, 5.0f, 6.0f, 7.0f), float4(8.0f, 9.0f, 10.0f, 11.0f), float4(12.0f, 13.0f, 14.0f, 15.0f));
+  v(0u, float4x4(float4(0.0f, 1.0f, 2.0f, 3.0f), float4(4.0f, 5.0f, 6.0f, 7.0f), float4(8.0f, 9.0f, 10.0f, 11.0f), float4(12.0f, 13.0f, 14.0f, 15.0f)));
 }
 
-DXC validation failure:
-hlsl.hlsl:3:3: error: use of undeclared identifier 'tint_symbol'
-  tint_symbol = float4x4(float4(0.0f, 1.0f, 2.0f, 3.0f), float4(4.0f, 5.0f, 6.0f, 7.0f), float4(8.0f, 9.0f, 10.0f, 11.0f), float4(12.0f, 13.0f, 14.0f, 15.0f));
-  ^
-
diff --git a/test/tint/expressions/type_ctor/mat4x4/inferred/vectors/abstract-float.wgsl.expected.ir.fxc.hlsl b/test/tint/expressions/type_ctor/mat4x4/inferred/vectors/abstract-float.wgsl.expected.ir.fxc.hlsl
index a1ba064..bc81f16 100644
--- a/test/tint/expressions/type_ctor/mat4x4/inferred/vectors/abstract-float.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/expressions/type_ctor/mat4x4/inferred/vectors/abstract-float.wgsl.expected.ir.fxc.hlsl
@@ -1,7 +1,14 @@
-SKIP: FAILED
+
+RWByteAddressBuffer tint_symbol : register(u0);
+void v(uint offset, float4x4 obj) {
+  tint_symbol.Store4((offset + 0u), asuint(obj[0u]));
+  tint_symbol.Store4((offset + 16u), asuint(obj[1u]));
+  tint_symbol.Store4((offset + 32u), asuint(obj[2u]));
+  tint_symbol.Store4((offset + 48u), asuint(obj[3u]));
+}
 
 [numthreads(1, 1, 1)]
 void f() {
-  tint_symbol = float4x4(float4(0.0f, 1.0f, 2.0f, 3.0f), float4(4.0f, 5.0f, 6.0f, 7.0f), float4(8.0f, 9.0f, 10.0f, 11.0f), float4(12.0f, 13.0f, 14.0f, 15.0f));
+  v(0u, float4x4(float4(0.0f, 1.0f, 2.0f, 3.0f), float4(4.0f, 5.0f, 6.0f, 7.0f), float4(8.0f, 9.0f, 10.0f, 11.0f), float4(12.0f, 13.0f, 14.0f, 15.0f)));
 }
 
diff --git a/test/tint/expressions/type_ctor/mat4x4/inferred/vectors/f16.wgsl.expected.ir.dxc.hlsl b/test/tint/expressions/type_ctor/mat4x4/inferred/vectors/f16.wgsl.expected.ir.dxc.hlsl
index 1616cea..3c200d8 100644
--- a/test/tint/expressions/type_ctor/mat4x4/inferred/vectors/f16.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/expressions/type_ctor/mat4x4/inferred/vectors/f16.wgsl.expected.ir.dxc.hlsl
@@ -1,15 +1,15 @@
-SKIP: FAILED
+
+static matrix<float16_t, 4, 4> m = matrix<float16_t, 4, 4>(vector<float16_t, 4>(float16_t(0.0h), float16_t(1.0h), float16_t(2.0h), float16_t(3.0h)), vector<float16_t, 4>(float16_t(4.0h), float16_t(5.0h), float16_t(6.0h), float16_t(7.0h)), vector<float16_t, 4>(float16_t(8.0h), float16_t(9.0h), float16_t(10.0h), float16_t(11.0h)), vector<float16_t, 4>(float16_t(12.0h), float16_t(13.0h), float16_t(14.0h), float16_t(15.0h)));
+RWByteAddressBuffer tint_symbol : register(u0);
+void v(uint offset, matrix<float16_t, 4, 4> obj) {
+  tint_symbol.Store<vector<float16_t, 4> >((offset + 0u), obj[0u]);
+  tint_symbol.Store<vector<float16_t, 4> >((offset + 8u), obj[1u]);
+  tint_symbol.Store<vector<float16_t, 4> >((offset + 16u), obj[2u]);
+  tint_symbol.Store<vector<float16_t, 4> >((offset + 24u), obj[3u]);
+}
 
 [numthreads(1, 1, 1)]
 void f() {
-  tint_symbol = m;
+  v(0u, m);
 }
 
-DXC validation failure:
-hlsl.hlsl:3:3: error: use of undeclared identifier 'tint_symbol'
-  tint_symbol = m;
-  ^
-hlsl.hlsl:3:17: error: use of undeclared identifier 'm'
-  tint_symbol = m;
-                ^
-
diff --git a/test/tint/expressions/type_ctor/mat4x4/inferred/vectors/f16.wgsl.expected.ir.fxc.hlsl b/test/tint/expressions/type_ctor/mat4x4/inferred/vectors/f16.wgsl.expected.ir.fxc.hlsl
index 08b893f..794ea93 100644
--- a/test/tint/expressions/type_ctor/mat4x4/inferred/vectors/f16.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/expressions/type_ctor/mat4x4/inferred/vectors/f16.wgsl.expected.ir.fxc.hlsl
@@ -1,7 +1,20 @@
 SKIP: FAILED
 
+
+static matrix<float16_t, 4, 4> m = matrix<float16_t, 4, 4>(vector<float16_t, 4>(float16_t(0.0h), float16_t(1.0h), float16_t(2.0h), float16_t(3.0h)), vector<float16_t, 4>(float16_t(4.0h), float16_t(5.0h), float16_t(6.0h), float16_t(7.0h)), vector<float16_t, 4>(float16_t(8.0h), float16_t(9.0h), float16_t(10.0h), float16_t(11.0h)), vector<float16_t, 4>(float16_t(12.0h), float16_t(13.0h), float16_t(14.0h), float16_t(15.0h)));
+RWByteAddressBuffer tint_symbol : register(u0);
+void v(uint offset, matrix<float16_t, 4, 4> obj) {
+  tint_symbol.Store<vector<float16_t, 4> >((offset + 0u), obj[0u]);
+  tint_symbol.Store<vector<float16_t, 4> >((offset + 8u), obj[1u]);
+  tint_symbol.Store<vector<float16_t, 4> >((offset + 16u), obj[2u]);
+  tint_symbol.Store<vector<float16_t, 4> >((offset + 24u), obj[3u]);
+}
+
 [numthreads(1, 1, 1)]
 void f() {
-  tint_symbol = m;
+  v(0u, m);
 }
 
+FXC validation failure:
+c:\src\dawn\Shader@0x000001FA287B17B0(2,15-23): error X3000: syntax error: unexpected token 'float16_t'
+
diff --git a/test/tint/expressions/type_ctor/mat4x4/inferred/vectors/f32.wgsl.expected.ir.dxc.hlsl b/test/tint/expressions/type_ctor/mat4x4/inferred/vectors/f32.wgsl.expected.ir.dxc.hlsl
index 1616cea..fc96e56 100644
--- a/test/tint/expressions/type_ctor/mat4x4/inferred/vectors/f32.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/expressions/type_ctor/mat4x4/inferred/vectors/f32.wgsl.expected.ir.dxc.hlsl
@@ -1,15 +1,15 @@
-SKIP: FAILED
+
+static float4x4 m = float4x4(float4(0.0f, 1.0f, 2.0f, 3.0f), float4(4.0f, 5.0f, 6.0f, 7.0f), float4(8.0f, 9.0f, 10.0f, 11.0f), float4(12.0f, 13.0f, 14.0f, 15.0f));
+RWByteAddressBuffer tint_symbol : register(u0);
+void v(uint offset, float4x4 obj) {
+  tint_symbol.Store4((offset + 0u), asuint(obj[0u]));
+  tint_symbol.Store4((offset + 16u), asuint(obj[1u]));
+  tint_symbol.Store4((offset + 32u), asuint(obj[2u]));
+  tint_symbol.Store4((offset + 48u), asuint(obj[3u]));
+}
 
 [numthreads(1, 1, 1)]
 void f() {
-  tint_symbol = m;
+  v(0u, m);
 }
 
-DXC validation failure:
-hlsl.hlsl:3:3: error: use of undeclared identifier 'tint_symbol'
-  tint_symbol = m;
-  ^
-hlsl.hlsl:3:17: error: use of undeclared identifier 'm'
-  tint_symbol = m;
-                ^
-
diff --git a/test/tint/expressions/type_ctor/mat4x4/inferred/vectors/f32.wgsl.expected.ir.fxc.hlsl b/test/tint/expressions/type_ctor/mat4x4/inferred/vectors/f32.wgsl.expected.ir.fxc.hlsl
index 08b893f..fc96e56 100644
--- a/test/tint/expressions/type_ctor/mat4x4/inferred/vectors/f32.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/expressions/type_ctor/mat4x4/inferred/vectors/f32.wgsl.expected.ir.fxc.hlsl
@@ -1,7 +1,15 @@
-SKIP: FAILED
+
+static float4x4 m = float4x4(float4(0.0f, 1.0f, 2.0f, 3.0f), float4(4.0f, 5.0f, 6.0f, 7.0f), float4(8.0f, 9.0f, 10.0f, 11.0f), float4(12.0f, 13.0f, 14.0f, 15.0f));
+RWByteAddressBuffer tint_symbol : register(u0);
+void v(uint offset, float4x4 obj) {
+  tint_symbol.Store4((offset + 0u), asuint(obj[0u]));
+  tint_symbol.Store4((offset + 16u), asuint(obj[1u]));
+  tint_symbol.Store4((offset + 32u), asuint(obj[2u]));
+  tint_symbol.Store4((offset + 48u), asuint(obj[3u]));
+}
 
 [numthreads(1, 1, 1)]
 void f() {
-  tint_symbol = m;
+  v(0u, m);
 }
 
diff --git a/test/tint/expressions/type_ctor/mat4x4/load/f16.wgsl.expected.ir.dxc.hlsl b/test/tint/expressions/type_ctor/mat4x4/load/f16.wgsl.expected.ir.dxc.hlsl
index c6e1d96..33fc4c1 100644
--- a/test/tint/expressions/type_ctor/mat4x4/load/f16.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/expressions/type_ctor/mat4x4/load/f16.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,15 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Construct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWByteAddressBuffer tint_symbol : register(u0);
+void v(uint offset, matrix<float16_t, 4, 4> obj) {
+  tint_symbol.Store<vector<float16_t, 4> >((offset + 0u), obj[0u]);
+  tint_symbol.Store<vector<float16_t, 4> >((offset + 8u), obj[1u]);
+  tint_symbol.Store<vector<float16_t, 4> >((offset + 16u), obj[2u]);
+  tint_symbol.Store<vector<float16_t, 4> >((offset + 24u), obj[3u]);
+}
+
+[numthreads(1, 1, 1)]
+void f() {
+  matrix<float16_t, 4, 4> m = matrix<float16_t, 4, 4>((float16_t(0.0h)).xxxx, (float16_t(0.0h)).xxxx, (float16_t(0.0h)).xxxx, (float16_t(0.0h)).xxxx);
+  v(0u, matrix<float16_t, 4, 4>(m));
+}
+
diff --git a/test/tint/expressions/type_ctor/mat4x4/load/f16.wgsl.expected.ir.fxc.hlsl b/test/tint/expressions/type_ctor/mat4x4/load/f16.wgsl.expected.ir.fxc.hlsl
index c6e1d96..bb668e8 100644
--- a/test/tint/expressions/type_ctor/mat4x4/load/f16.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/expressions/type_ctor/mat4x4/load/f16.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,21 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Construct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+
+RWByteAddressBuffer tint_symbol : register(u0);
+void v(uint offset, matrix<float16_t, 4, 4> obj) {
+  tint_symbol.Store<vector<float16_t, 4> >((offset + 0u), obj[0u]);
+  tint_symbol.Store<vector<float16_t, 4> >((offset + 8u), obj[1u]);
+  tint_symbol.Store<vector<float16_t, 4> >((offset + 16u), obj[2u]);
+  tint_symbol.Store<vector<float16_t, 4> >((offset + 24u), obj[3u]);
+}
+
+[numthreads(1, 1, 1)]
+void f() {
+  matrix<float16_t, 4, 4> m = matrix<float16_t, 4, 4>((float16_t(0.0h)).xxxx, (float16_t(0.0h)).xxxx, (float16_t(0.0h)).xxxx, (float16_t(0.0h)).xxxx);
+  v(0u, matrix<float16_t, 4, 4>(m));
+}
+
+FXC validation failure:
+c:\src\dawn\Shader@0x000002A5B6933B80(3,28-36): error X3000: syntax error: unexpected token 'float16_t'
+c:\src\dawn\Shader@0x000002A5B6933B80(4,3-19): error X3018: invalid subscript 'Store'
+
diff --git a/test/tint/expressions/type_ctor/mat4x4/load/f32.wgsl.expected.ir.dxc.hlsl b/test/tint/expressions/type_ctor/mat4x4/load/f32.wgsl.expected.ir.dxc.hlsl
index c6e1d96..4ba6343 100644
--- a/test/tint/expressions/type_ctor/mat4x4/load/f32.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/expressions/type_ctor/mat4x4/load/f32.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,15 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Construct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWByteAddressBuffer tint_symbol : register(u0);
+void v(uint offset, float4x4 obj) {
+  tint_symbol.Store4((offset + 0u), asuint(obj[0u]));
+  tint_symbol.Store4((offset + 16u), asuint(obj[1u]));
+  tint_symbol.Store4((offset + 32u), asuint(obj[2u]));
+  tint_symbol.Store4((offset + 48u), asuint(obj[3u]));
+}
+
+[numthreads(1, 1, 1)]
+void f() {
+  float4x4 m = float4x4((0.0f).xxxx, (0.0f).xxxx, (0.0f).xxxx, (0.0f).xxxx);
+  v(0u, float4x4(m));
+}
+
diff --git a/test/tint/expressions/type_ctor/mat4x4/load/f32.wgsl.expected.ir.fxc.hlsl b/test/tint/expressions/type_ctor/mat4x4/load/f32.wgsl.expected.ir.fxc.hlsl
index c6e1d96..4ba6343 100644
--- a/test/tint/expressions/type_ctor/mat4x4/load/f32.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/expressions/type_ctor/mat4x4/load/f32.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,15 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Construct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWByteAddressBuffer tint_symbol : register(u0);
+void v(uint offset, float4x4 obj) {
+  tint_symbol.Store4((offset + 0u), asuint(obj[0u]));
+  tint_symbol.Store4((offset + 16u), asuint(obj[1u]));
+  tint_symbol.Store4((offset + 32u), asuint(obj[2u]));
+  tint_symbol.Store4((offset + 48u), asuint(obj[3u]));
+}
+
+[numthreads(1, 1, 1)]
+void f() {
+  float4x4 m = float4x4((0.0f).xxxx, (0.0f).xxxx, (0.0f).xxxx, (0.0f).xxxx);
+  v(0u, float4x4(m));
+}
+
diff --git a/test/tint/expressions/type_ctor/mat4x4/zero/f16.wgsl.expected.ir.dxc.hlsl b/test/tint/expressions/type_ctor/mat4x4/zero/f16.wgsl.expected.ir.dxc.hlsl
index 1616cea..0bef0dc 100644
--- a/test/tint/expressions/type_ctor/mat4x4/zero/f16.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/expressions/type_ctor/mat4x4/zero/f16.wgsl.expected.ir.dxc.hlsl
@@ -1,15 +1,15 @@
-SKIP: FAILED
+
+static matrix<float16_t, 4, 4> m = matrix<float16_t, 4, 4>((float16_t(0.0h)).xxxx, (float16_t(0.0h)).xxxx, (float16_t(0.0h)).xxxx, (float16_t(0.0h)).xxxx);
+RWByteAddressBuffer tint_symbol : register(u0);
+void v(uint offset, matrix<float16_t, 4, 4> obj) {
+  tint_symbol.Store<vector<float16_t, 4> >((offset + 0u), obj[0u]);
+  tint_symbol.Store<vector<float16_t, 4> >((offset + 8u), obj[1u]);
+  tint_symbol.Store<vector<float16_t, 4> >((offset + 16u), obj[2u]);
+  tint_symbol.Store<vector<float16_t, 4> >((offset + 24u), obj[3u]);
+}
 
 [numthreads(1, 1, 1)]
 void f() {
-  tint_symbol = m;
+  v(0u, m);
 }
 
-DXC validation failure:
-hlsl.hlsl:3:3: error: use of undeclared identifier 'tint_symbol'
-  tint_symbol = m;
-  ^
-hlsl.hlsl:3:17: error: use of undeclared identifier 'm'
-  tint_symbol = m;
-                ^
-
diff --git a/test/tint/expressions/type_ctor/mat4x4/zero/f16.wgsl.expected.ir.fxc.hlsl b/test/tint/expressions/type_ctor/mat4x4/zero/f16.wgsl.expected.ir.fxc.hlsl
index 08b893f..edcf5a9 100644
--- a/test/tint/expressions/type_ctor/mat4x4/zero/f16.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/expressions/type_ctor/mat4x4/zero/f16.wgsl.expected.ir.fxc.hlsl
@@ -1,7 +1,20 @@
 SKIP: FAILED
 
+
+static matrix<float16_t, 4, 4> m = matrix<float16_t, 4, 4>((float16_t(0.0h)).xxxx, (float16_t(0.0h)).xxxx, (float16_t(0.0h)).xxxx, (float16_t(0.0h)).xxxx);
+RWByteAddressBuffer tint_symbol : register(u0);
+void v(uint offset, matrix<float16_t, 4, 4> obj) {
+  tint_symbol.Store<vector<float16_t, 4> >((offset + 0u), obj[0u]);
+  tint_symbol.Store<vector<float16_t, 4> >((offset + 8u), obj[1u]);
+  tint_symbol.Store<vector<float16_t, 4> >((offset + 16u), obj[2u]);
+  tint_symbol.Store<vector<float16_t, 4> >((offset + 24u), obj[3u]);
+}
+
 [numthreads(1, 1, 1)]
 void f() {
-  tint_symbol = m;
+  v(0u, m);
 }
 
+FXC validation failure:
+c:\src\dawn\Shader@0x0000022BE230A5A0(2,15-23): error X3000: syntax error: unexpected token 'float16_t'
+
diff --git a/test/tint/expressions/type_ctor/mat4x4/zero/f32.wgsl.expected.ir.dxc.hlsl b/test/tint/expressions/type_ctor/mat4x4/zero/f32.wgsl.expected.ir.dxc.hlsl
index 1616cea..7c01c61 100644
--- a/test/tint/expressions/type_ctor/mat4x4/zero/f32.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/expressions/type_ctor/mat4x4/zero/f32.wgsl.expected.ir.dxc.hlsl
@@ -1,15 +1,15 @@
-SKIP: FAILED
+
+static float4x4 m = float4x4((0.0f).xxxx, (0.0f).xxxx, (0.0f).xxxx, (0.0f).xxxx);
+RWByteAddressBuffer tint_symbol : register(u0);
+void v(uint offset, float4x4 obj) {
+  tint_symbol.Store4((offset + 0u), asuint(obj[0u]));
+  tint_symbol.Store4((offset + 16u), asuint(obj[1u]));
+  tint_symbol.Store4((offset + 32u), asuint(obj[2u]));
+  tint_symbol.Store4((offset + 48u), asuint(obj[3u]));
+}
 
 [numthreads(1, 1, 1)]
 void f() {
-  tint_symbol = m;
+  v(0u, m);
 }
 
-DXC validation failure:
-hlsl.hlsl:3:3: error: use of undeclared identifier 'tint_symbol'
-  tint_symbol = m;
-  ^
-hlsl.hlsl:3:17: error: use of undeclared identifier 'm'
-  tint_symbol = m;
-                ^
-
diff --git a/test/tint/expressions/type_ctor/mat4x4/zero/f32.wgsl.expected.ir.fxc.hlsl b/test/tint/expressions/type_ctor/mat4x4/zero/f32.wgsl.expected.ir.fxc.hlsl
index 08b893f..7c01c61 100644
--- a/test/tint/expressions/type_ctor/mat4x4/zero/f32.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/expressions/type_ctor/mat4x4/zero/f32.wgsl.expected.ir.fxc.hlsl
@@ -1,7 +1,15 @@
-SKIP: FAILED
+
+static float4x4 m = float4x4((0.0f).xxxx, (0.0f).xxxx, (0.0f).xxxx, (0.0f).xxxx);
+RWByteAddressBuffer tint_symbol : register(u0);
+void v(uint offset, float4x4 obj) {
+  tint_symbol.Store4((offset + 0u), asuint(obj[0u]));
+  tint_symbol.Store4((offset + 16u), asuint(obj[1u]));
+  tint_symbol.Store4((offset + 32u), asuint(obj[2u]));
+  tint_symbol.Store4((offset + 48u), asuint(obj[3u]));
+}
 
 [numthreads(1, 1, 1)]
 void f() {
-  tint_symbol = m;
+  v(0u, m);
 }
 
diff --git a/test/tint/expressions/type_ctor/vec2/explicit/bool.wgsl.expected.ir.dxc.hlsl b/test/tint/expressions/type_ctor/vec2/explicit/bool.wgsl.expected.ir.dxc.hlsl
index 9acd2d7..7bf6a9a 100644
--- a/test/tint/expressions/type_ctor/vec2/explicit/bool.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/expressions/type_ctor/vec2/explicit/bool.wgsl.expected.ir.dxc.hlsl
@@ -1,3 +1,5 @@
+
+static bool2 v = bool2(false, true);
 [numthreads(1, 1, 1)]
 void unused_entry_point() {
 }
diff --git a/test/tint/expressions/type_ctor/vec2/explicit/bool.wgsl.expected.ir.fxc.hlsl b/test/tint/expressions/type_ctor/vec2/explicit/bool.wgsl.expected.ir.fxc.hlsl
index 9acd2d7..7bf6a9a 100644
--- a/test/tint/expressions/type_ctor/vec2/explicit/bool.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/expressions/type_ctor/vec2/explicit/bool.wgsl.expected.ir.fxc.hlsl
@@ -1,3 +1,5 @@
+
+static bool2 v = bool2(false, true);
 [numthreads(1, 1, 1)]
 void unused_entry_point() {
 }
diff --git a/test/tint/expressions/type_ctor/vec2/explicit/f16.wgsl.expected.ir.dxc.hlsl b/test/tint/expressions/type_ctor/vec2/explicit/f16.wgsl.expected.ir.dxc.hlsl
index 9acd2d7..be90573 100644
--- a/test/tint/expressions/type_ctor/vec2/explicit/f16.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/expressions/type_ctor/vec2/explicit/f16.wgsl.expected.ir.dxc.hlsl
@@ -1,3 +1,5 @@
+
+static vector<float16_t, 2> v = vector<float16_t, 2>(float16_t(0.0h), float16_t(1.0h));
 [numthreads(1, 1, 1)]
 void unused_entry_point() {
 }
diff --git a/test/tint/expressions/type_ctor/vec2/explicit/f16.wgsl.expected.ir.fxc.hlsl b/test/tint/expressions/type_ctor/vec2/explicit/f16.wgsl.expected.ir.fxc.hlsl
index 9acd2d7..84bce95 100644
--- a/test/tint/expressions/type_ctor/vec2/explicit/f16.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/expressions/type_ctor/vec2/explicit/f16.wgsl.expected.ir.fxc.hlsl
@@ -1,4 +1,11 @@
+SKIP: FAILED
+
+
+static vector<float16_t, 2> v = vector<float16_t, 2>(float16_t(0.0h), float16_t(1.0h));
 [numthreads(1, 1, 1)]
 void unused_entry_point() {
 }
 
+FXC validation failure:
+c:\src\dawn\Shader@0x000001EA62910610(2,15-23): error X3000: syntax error: unexpected token 'float16_t'
+
diff --git a/test/tint/expressions/type_ctor/vec2/explicit/f32.wgsl.expected.ir.dxc.hlsl b/test/tint/expressions/type_ctor/vec2/explicit/f32.wgsl.expected.ir.dxc.hlsl
index 9acd2d7..5153707 100644
--- a/test/tint/expressions/type_ctor/vec2/explicit/f32.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/expressions/type_ctor/vec2/explicit/f32.wgsl.expected.ir.dxc.hlsl
@@ -1,3 +1,5 @@
+
+static float2 v = float2(0.0f, 1.0f);
 [numthreads(1, 1, 1)]
 void unused_entry_point() {
 }
diff --git a/test/tint/expressions/type_ctor/vec2/explicit/f32.wgsl.expected.ir.fxc.hlsl b/test/tint/expressions/type_ctor/vec2/explicit/f32.wgsl.expected.ir.fxc.hlsl
index 9acd2d7..5153707 100644
--- a/test/tint/expressions/type_ctor/vec2/explicit/f32.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/expressions/type_ctor/vec2/explicit/f32.wgsl.expected.ir.fxc.hlsl
@@ -1,3 +1,5 @@
+
+static float2 v = float2(0.0f, 1.0f);
 [numthreads(1, 1, 1)]
 void unused_entry_point() {
 }
diff --git a/test/tint/expressions/type_ctor/vec2/explicit/i32.wgsl.expected.ir.dxc.hlsl b/test/tint/expressions/type_ctor/vec2/explicit/i32.wgsl.expected.ir.dxc.hlsl
index 9acd2d7..1404461 100644
--- a/test/tint/expressions/type_ctor/vec2/explicit/i32.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/expressions/type_ctor/vec2/explicit/i32.wgsl.expected.ir.dxc.hlsl
@@ -1,3 +1,5 @@
+
+static int2 v = int2(0, 1);
 [numthreads(1, 1, 1)]
 void unused_entry_point() {
 }
diff --git a/test/tint/expressions/type_ctor/vec2/explicit/i32.wgsl.expected.ir.fxc.hlsl b/test/tint/expressions/type_ctor/vec2/explicit/i32.wgsl.expected.ir.fxc.hlsl
index 9acd2d7..1404461 100644
--- a/test/tint/expressions/type_ctor/vec2/explicit/i32.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/expressions/type_ctor/vec2/explicit/i32.wgsl.expected.ir.fxc.hlsl
@@ -1,3 +1,5 @@
+
+static int2 v = int2(0, 1);
 [numthreads(1, 1, 1)]
 void unused_entry_point() {
 }
diff --git a/test/tint/expressions/type_ctor/vec2/explicit/u32.wgsl.expected.ir.dxc.hlsl b/test/tint/expressions/type_ctor/vec2/explicit/u32.wgsl.expected.ir.dxc.hlsl
index 9acd2d7..210b9aa 100644
--- a/test/tint/expressions/type_ctor/vec2/explicit/u32.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/expressions/type_ctor/vec2/explicit/u32.wgsl.expected.ir.dxc.hlsl
@@ -1,3 +1,5 @@
+
+static uint2 v = uint2(0u, 1u);
 [numthreads(1, 1, 1)]
 void unused_entry_point() {
 }
diff --git a/test/tint/expressions/type_ctor/vec2/explicit/u32.wgsl.expected.ir.fxc.hlsl b/test/tint/expressions/type_ctor/vec2/explicit/u32.wgsl.expected.ir.fxc.hlsl
index 9acd2d7..210b9aa 100644
--- a/test/tint/expressions/type_ctor/vec2/explicit/u32.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/expressions/type_ctor/vec2/explicit/u32.wgsl.expected.ir.fxc.hlsl
@@ -1,3 +1,5 @@
+
+static uint2 v = uint2(0u, 1u);
 [numthreads(1, 1, 1)]
 void unused_entry_point() {
 }
diff --git a/test/tint/expressions/type_ctor/vec2/inferred/abstract-float.wgsl.expected.ir.dxc.hlsl b/test/tint/expressions/type_ctor/vec2/inferred/abstract-float.wgsl.expected.ir.dxc.hlsl
index 9acd2d7..5153707 100644
--- a/test/tint/expressions/type_ctor/vec2/inferred/abstract-float.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/expressions/type_ctor/vec2/inferred/abstract-float.wgsl.expected.ir.dxc.hlsl
@@ -1,3 +1,5 @@
+
+static float2 v = float2(0.0f, 1.0f);
 [numthreads(1, 1, 1)]
 void unused_entry_point() {
 }
diff --git a/test/tint/expressions/type_ctor/vec2/inferred/abstract-float.wgsl.expected.ir.fxc.hlsl b/test/tint/expressions/type_ctor/vec2/inferred/abstract-float.wgsl.expected.ir.fxc.hlsl
index 9acd2d7..5153707 100644
--- a/test/tint/expressions/type_ctor/vec2/inferred/abstract-float.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/expressions/type_ctor/vec2/inferred/abstract-float.wgsl.expected.ir.fxc.hlsl
@@ -1,3 +1,5 @@
+
+static float2 v = float2(0.0f, 1.0f);
 [numthreads(1, 1, 1)]
 void unused_entry_point() {
 }
diff --git a/test/tint/expressions/type_ctor/vec2/inferred/abstract-int.wgsl.expected.ir.dxc.hlsl b/test/tint/expressions/type_ctor/vec2/inferred/abstract-int.wgsl.expected.ir.dxc.hlsl
index 9acd2d7..1404461 100644
--- a/test/tint/expressions/type_ctor/vec2/inferred/abstract-int.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/expressions/type_ctor/vec2/inferred/abstract-int.wgsl.expected.ir.dxc.hlsl
@@ -1,3 +1,5 @@
+
+static int2 v = int2(0, 1);
 [numthreads(1, 1, 1)]
 void unused_entry_point() {
 }
diff --git a/test/tint/expressions/type_ctor/vec2/inferred/abstract-int.wgsl.expected.ir.fxc.hlsl b/test/tint/expressions/type_ctor/vec2/inferred/abstract-int.wgsl.expected.ir.fxc.hlsl
index 9acd2d7..1404461 100644
--- a/test/tint/expressions/type_ctor/vec2/inferred/abstract-int.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/expressions/type_ctor/vec2/inferred/abstract-int.wgsl.expected.ir.fxc.hlsl
@@ -1,3 +1,5 @@
+
+static int2 v = int2(0, 1);
 [numthreads(1, 1, 1)]
 void unused_entry_point() {
 }
diff --git a/test/tint/expressions/type_ctor/vec2/inferred/bool.wgsl.expected.ir.dxc.hlsl b/test/tint/expressions/type_ctor/vec2/inferred/bool.wgsl.expected.ir.dxc.hlsl
index 9acd2d7..7bf6a9a 100644
--- a/test/tint/expressions/type_ctor/vec2/inferred/bool.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/expressions/type_ctor/vec2/inferred/bool.wgsl.expected.ir.dxc.hlsl
@@ -1,3 +1,5 @@
+
+static bool2 v = bool2(false, true);
 [numthreads(1, 1, 1)]
 void unused_entry_point() {
 }
diff --git a/test/tint/expressions/type_ctor/vec2/inferred/bool.wgsl.expected.ir.fxc.hlsl b/test/tint/expressions/type_ctor/vec2/inferred/bool.wgsl.expected.ir.fxc.hlsl
index 9acd2d7..7bf6a9a 100644
--- a/test/tint/expressions/type_ctor/vec2/inferred/bool.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/expressions/type_ctor/vec2/inferred/bool.wgsl.expected.ir.fxc.hlsl
@@ -1,3 +1,5 @@
+
+static bool2 v = bool2(false, true);
 [numthreads(1, 1, 1)]
 void unused_entry_point() {
 }
diff --git a/test/tint/expressions/type_ctor/vec2/inferred/f16.wgsl.expected.ir.dxc.hlsl b/test/tint/expressions/type_ctor/vec2/inferred/f16.wgsl.expected.ir.dxc.hlsl
index 9acd2d7..be90573 100644
--- a/test/tint/expressions/type_ctor/vec2/inferred/f16.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/expressions/type_ctor/vec2/inferred/f16.wgsl.expected.ir.dxc.hlsl
@@ -1,3 +1,5 @@
+
+static vector<float16_t, 2> v = vector<float16_t, 2>(float16_t(0.0h), float16_t(1.0h));
 [numthreads(1, 1, 1)]
 void unused_entry_point() {
 }
diff --git a/test/tint/expressions/type_ctor/vec2/inferred/f16.wgsl.expected.ir.fxc.hlsl b/test/tint/expressions/type_ctor/vec2/inferred/f16.wgsl.expected.ir.fxc.hlsl
index 9acd2d7..8f81e0d 100644
--- a/test/tint/expressions/type_ctor/vec2/inferred/f16.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/expressions/type_ctor/vec2/inferred/f16.wgsl.expected.ir.fxc.hlsl
@@ -1,4 +1,11 @@
+SKIP: FAILED
+
+
+static vector<float16_t, 2> v = vector<float16_t, 2>(float16_t(0.0h), float16_t(1.0h));
 [numthreads(1, 1, 1)]
 void unused_entry_point() {
 }
 
+FXC validation failure:
+c:\src\dawn\Shader@0x000001CAEC502E10(2,15-23): error X3000: syntax error: unexpected token 'float16_t'
+
diff --git a/test/tint/expressions/type_ctor/vec2/inferred/f32.wgsl.expected.ir.dxc.hlsl b/test/tint/expressions/type_ctor/vec2/inferred/f32.wgsl.expected.ir.dxc.hlsl
index 9acd2d7..5153707 100644
--- a/test/tint/expressions/type_ctor/vec2/inferred/f32.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/expressions/type_ctor/vec2/inferred/f32.wgsl.expected.ir.dxc.hlsl
@@ -1,3 +1,5 @@
+
+static float2 v = float2(0.0f, 1.0f);
 [numthreads(1, 1, 1)]
 void unused_entry_point() {
 }
diff --git a/test/tint/expressions/type_ctor/vec2/inferred/f32.wgsl.expected.ir.fxc.hlsl b/test/tint/expressions/type_ctor/vec2/inferred/f32.wgsl.expected.ir.fxc.hlsl
index 9acd2d7..5153707 100644
--- a/test/tint/expressions/type_ctor/vec2/inferred/f32.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/expressions/type_ctor/vec2/inferred/f32.wgsl.expected.ir.fxc.hlsl
@@ -1,3 +1,5 @@
+
+static float2 v = float2(0.0f, 1.0f);
 [numthreads(1, 1, 1)]
 void unused_entry_point() {
 }
diff --git a/test/tint/expressions/type_ctor/vec2/inferred/i32.wgsl.expected.ir.dxc.hlsl b/test/tint/expressions/type_ctor/vec2/inferred/i32.wgsl.expected.ir.dxc.hlsl
index 9acd2d7..1404461 100644
--- a/test/tint/expressions/type_ctor/vec2/inferred/i32.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/expressions/type_ctor/vec2/inferred/i32.wgsl.expected.ir.dxc.hlsl
@@ -1,3 +1,5 @@
+
+static int2 v = int2(0, 1);
 [numthreads(1, 1, 1)]
 void unused_entry_point() {
 }
diff --git a/test/tint/expressions/type_ctor/vec2/inferred/i32.wgsl.expected.ir.fxc.hlsl b/test/tint/expressions/type_ctor/vec2/inferred/i32.wgsl.expected.ir.fxc.hlsl
index 9acd2d7..1404461 100644
--- a/test/tint/expressions/type_ctor/vec2/inferred/i32.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/expressions/type_ctor/vec2/inferred/i32.wgsl.expected.ir.fxc.hlsl
@@ -1,3 +1,5 @@
+
+static int2 v = int2(0, 1);
 [numthreads(1, 1, 1)]
 void unused_entry_point() {
 }
diff --git a/test/tint/expressions/type_ctor/vec2/inferred/u32.wgsl.expected.ir.dxc.hlsl b/test/tint/expressions/type_ctor/vec2/inferred/u32.wgsl.expected.ir.dxc.hlsl
index 9acd2d7..210b9aa 100644
--- a/test/tint/expressions/type_ctor/vec2/inferred/u32.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/expressions/type_ctor/vec2/inferred/u32.wgsl.expected.ir.dxc.hlsl
@@ -1,3 +1,5 @@
+
+static uint2 v = uint2(0u, 1u);
 [numthreads(1, 1, 1)]
 void unused_entry_point() {
 }
diff --git a/test/tint/expressions/type_ctor/vec2/inferred/u32.wgsl.expected.ir.fxc.hlsl b/test/tint/expressions/type_ctor/vec2/inferred/u32.wgsl.expected.ir.fxc.hlsl
index 9acd2d7..210b9aa 100644
--- a/test/tint/expressions/type_ctor/vec2/inferred/u32.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/expressions/type_ctor/vec2/inferred/u32.wgsl.expected.ir.fxc.hlsl
@@ -1,3 +1,5 @@
+
+static uint2 v = uint2(0u, 1u);
 [numthreads(1, 1, 1)]
 void unused_entry_point() {
 }
diff --git a/test/tint/expressions/type_ctor/vec2/inferred/zero.wgsl.expected.ir.dxc.hlsl b/test/tint/expressions/type_ctor/vec2/inferred/zero.wgsl.expected.ir.dxc.hlsl
index 9acd2d7..d8e404c 100644
--- a/test/tint/expressions/type_ctor/vec2/inferred/zero.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/expressions/type_ctor/vec2/inferred/zero.wgsl.expected.ir.dxc.hlsl
@@ -1,3 +1,7 @@
+
+static float2 f = (0.0f).xx;
+static int2 i = (0).xx;
+static uint2 u = (0u).xx;
 [numthreads(1, 1, 1)]
 void unused_entry_point() {
 }
diff --git a/test/tint/expressions/type_ctor/vec2/inferred/zero.wgsl.expected.ir.fxc.hlsl b/test/tint/expressions/type_ctor/vec2/inferred/zero.wgsl.expected.ir.fxc.hlsl
index 9acd2d7..d8e404c 100644
--- a/test/tint/expressions/type_ctor/vec2/inferred/zero.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/expressions/type_ctor/vec2/inferred/zero.wgsl.expected.ir.fxc.hlsl
@@ -1,3 +1,7 @@
+
+static float2 f = (0.0f).xx;
+static int2 i = (0).xx;
+static uint2 u = (0u).xx;
 [numthreads(1, 1, 1)]
 void unused_entry_point() {
 }
diff --git a/test/tint/expressions/type_ctor/vec3/explicit/bool.wgsl.expected.ir.dxc.hlsl b/test/tint/expressions/type_ctor/vec3/explicit/bool.wgsl.expected.ir.dxc.hlsl
index 9acd2d7..91ae066 100644
--- a/test/tint/expressions/type_ctor/vec3/explicit/bool.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/expressions/type_ctor/vec3/explicit/bool.wgsl.expected.ir.dxc.hlsl
@@ -1,3 +1,5 @@
+
+static bool3 v = bool3(false, true, false);
 [numthreads(1, 1, 1)]
 void unused_entry_point() {
 }
diff --git a/test/tint/expressions/type_ctor/vec3/explicit/bool.wgsl.expected.ir.fxc.hlsl b/test/tint/expressions/type_ctor/vec3/explicit/bool.wgsl.expected.ir.fxc.hlsl
index 9acd2d7..91ae066 100644
--- a/test/tint/expressions/type_ctor/vec3/explicit/bool.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/expressions/type_ctor/vec3/explicit/bool.wgsl.expected.ir.fxc.hlsl
@@ -1,3 +1,5 @@
+
+static bool3 v = bool3(false, true, false);
 [numthreads(1, 1, 1)]
 void unused_entry_point() {
 }
diff --git a/test/tint/expressions/type_ctor/vec3/explicit/f16.wgsl.expected.ir.dxc.hlsl b/test/tint/expressions/type_ctor/vec3/explicit/f16.wgsl.expected.ir.dxc.hlsl
index 9acd2d7..9079eee 100644
--- a/test/tint/expressions/type_ctor/vec3/explicit/f16.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/expressions/type_ctor/vec3/explicit/f16.wgsl.expected.ir.dxc.hlsl
@@ -1,3 +1,5 @@
+
+static vector<float16_t, 3> v = vector<float16_t, 3>(float16_t(0.0h), float16_t(1.0h), float16_t(2.0h));
 [numthreads(1, 1, 1)]
 void unused_entry_point() {
 }
diff --git a/test/tint/expressions/type_ctor/vec3/explicit/f16.wgsl.expected.ir.fxc.hlsl b/test/tint/expressions/type_ctor/vec3/explicit/f16.wgsl.expected.ir.fxc.hlsl
index 9acd2d7..5913e21 100644
--- a/test/tint/expressions/type_ctor/vec3/explicit/f16.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/expressions/type_ctor/vec3/explicit/f16.wgsl.expected.ir.fxc.hlsl
@@ -1,4 +1,11 @@
+SKIP: FAILED
+
+
+static vector<float16_t, 3> v = vector<float16_t, 3>(float16_t(0.0h), float16_t(1.0h), float16_t(2.0h));
 [numthreads(1, 1, 1)]
 void unused_entry_point() {
 }
 
+FXC validation failure:
+c:\src\dawn\Shader@0x00000281DA475290(2,15-23): error X3000: syntax error: unexpected token 'float16_t'
+
diff --git a/test/tint/expressions/type_ctor/vec3/explicit/f32.wgsl.expected.ir.dxc.hlsl b/test/tint/expressions/type_ctor/vec3/explicit/f32.wgsl.expected.ir.dxc.hlsl
index 9acd2d7..a56fdd3 100644
--- a/test/tint/expressions/type_ctor/vec3/explicit/f32.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/expressions/type_ctor/vec3/explicit/f32.wgsl.expected.ir.dxc.hlsl
@@ -1,3 +1,5 @@
+
+static float3 v = float3(0.0f, 1.0f, 2.0f);
 [numthreads(1, 1, 1)]
 void unused_entry_point() {
 }
diff --git a/test/tint/expressions/type_ctor/vec3/explicit/f32.wgsl.expected.ir.fxc.hlsl b/test/tint/expressions/type_ctor/vec3/explicit/f32.wgsl.expected.ir.fxc.hlsl
index 9acd2d7..a56fdd3 100644
--- a/test/tint/expressions/type_ctor/vec3/explicit/f32.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/expressions/type_ctor/vec3/explicit/f32.wgsl.expected.ir.fxc.hlsl
@@ -1,3 +1,5 @@
+
+static float3 v = float3(0.0f, 1.0f, 2.0f);
 [numthreads(1, 1, 1)]
 void unused_entry_point() {
 }
diff --git a/test/tint/expressions/type_ctor/vec3/explicit/i32.wgsl.expected.ir.dxc.hlsl b/test/tint/expressions/type_ctor/vec3/explicit/i32.wgsl.expected.ir.dxc.hlsl
index 9acd2d7..95b071f 100644
--- a/test/tint/expressions/type_ctor/vec3/explicit/i32.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/expressions/type_ctor/vec3/explicit/i32.wgsl.expected.ir.dxc.hlsl
@@ -1,3 +1,5 @@
+
+static int3 v = int3(0, 1, 2);
 [numthreads(1, 1, 1)]
 void unused_entry_point() {
 }
diff --git a/test/tint/expressions/type_ctor/vec3/explicit/i32.wgsl.expected.ir.fxc.hlsl b/test/tint/expressions/type_ctor/vec3/explicit/i32.wgsl.expected.ir.fxc.hlsl
index 9acd2d7..95b071f 100644
--- a/test/tint/expressions/type_ctor/vec3/explicit/i32.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/expressions/type_ctor/vec3/explicit/i32.wgsl.expected.ir.fxc.hlsl
@@ -1,3 +1,5 @@
+
+static int3 v = int3(0, 1, 2);
 [numthreads(1, 1, 1)]
 void unused_entry_point() {
 }
diff --git a/test/tint/expressions/type_ctor/vec3/explicit/u32.wgsl.expected.ir.dxc.hlsl b/test/tint/expressions/type_ctor/vec3/explicit/u32.wgsl.expected.ir.dxc.hlsl
index 9acd2d7..eb8e1be 100644
--- a/test/tint/expressions/type_ctor/vec3/explicit/u32.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/expressions/type_ctor/vec3/explicit/u32.wgsl.expected.ir.dxc.hlsl
@@ -1,3 +1,5 @@
+
+static uint3 v = uint3(0u, 1u, 2u);
 [numthreads(1, 1, 1)]
 void unused_entry_point() {
 }
diff --git a/test/tint/expressions/type_ctor/vec3/explicit/u32.wgsl.expected.ir.fxc.hlsl b/test/tint/expressions/type_ctor/vec3/explicit/u32.wgsl.expected.ir.fxc.hlsl
index 9acd2d7..eb8e1be 100644
--- a/test/tint/expressions/type_ctor/vec3/explicit/u32.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/expressions/type_ctor/vec3/explicit/u32.wgsl.expected.ir.fxc.hlsl
@@ -1,3 +1,5 @@
+
+static uint3 v = uint3(0u, 1u, 2u);
 [numthreads(1, 1, 1)]
 void unused_entry_point() {
 }
diff --git a/test/tint/expressions/type_ctor/vec3/inferred/abstract-float.wgsl.expected.ir.dxc.hlsl b/test/tint/expressions/type_ctor/vec3/inferred/abstract-float.wgsl.expected.ir.dxc.hlsl
index 9acd2d7..a56fdd3 100644
--- a/test/tint/expressions/type_ctor/vec3/inferred/abstract-float.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/expressions/type_ctor/vec3/inferred/abstract-float.wgsl.expected.ir.dxc.hlsl
@@ -1,3 +1,5 @@
+
+static float3 v = float3(0.0f, 1.0f, 2.0f);
 [numthreads(1, 1, 1)]
 void unused_entry_point() {
 }
diff --git a/test/tint/expressions/type_ctor/vec3/inferred/abstract-float.wgsl.expected.ir.fxc.hlsl b/test/tint/expressions/type_ctor/vec3/inferred/abstract-float.wgsl.expected.ir.fxc.hlsl
index 9acd2d7..a56fdd3 100644
--- a/test/tint/expressions/type_ctor/vec3/inferred/abstract-float.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/expressions/type_ctor/vec3/inferred/abstract-float.wgsl.expected.ir.fxc.hlsl
@@ -1,3 +1,5 @@
+
+static float3 v = float3(0.0f, 1.0f, 2.0f);
 [numthreads(1, 1, 1)]
 void unused_entry_point() {
 }
diff --git a/test/tint/expressions/type_ctor/vec3/inferred/abstract-int.wgsl.expected.ir.dxc.hlsl b/test/tint/expressions/type_ctor/vec3/inferred/abstract-int.wgsl.expected.ir.dxc.hlsl
index 9acd2d7..95b071f 100644
--- a/test/tint/expressions/type_ctor/vec3/inferred/abstract-int.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/expressions/type_ctor/vec3/inferred/abstract-int.wgsl.expected.ir.dxc.hlsl
@@ -1,3 +1,5 @@
+
+static int3 v = int3(0, 1, 2);
 [numthreads(1, 1, 1)]
 void unused_entry_point() {
 }
diff --git a/test/tint/expressions/type_ctor/vec3/inferred/abstract-int.wgsl.expected.ir.fxc.hlsl b/test/tint/expressions/type_ctor/vec3/inferred/abstract-int.wgsl.expected.ir.fxc.hlsl
index 9acd2d7..95b071f 100644
--- a/test/tint/expressions/type_ctor/vec3/inferred/abstract-int.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/expressions/type_ctor/vec3/inferred/abstract-int.wgsl.expected.ir.fxc.hlsl
@@ -1,3 +1,5 @@
+
+static int3 v = int3(0, 1, 2);
 [numthreads(1, 1, 1)]
 void unused_entry_point() {
 }
diff --git a/test/tint/expressions/type_ctor/vec3/inferred/bool.wgsl.expected.ir.dxc.hlsl b/test/tint/expressions/type_ctor/vec3/inferred/bool.wgsl.expected.ir.dxc.hlsl
index 9acd2d7..91ae066 100644
--- a/test/tint/expressions/type_ctor/vec3/inferred/bool.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/expressions/type_ctor/vec3/inferred/bool.wgsl.expected.ir.dxc.hlsl
@@ -1,3 +1,5 @@
+
+static bool3 v = bool3(false, true, false);
 [numthreads(1, 1, 1)]
 void unused_entry_point() {
 }
diff --git a/test/tint/expressions/type_ctor/vec3/inferred/bool.wgsl.expected.ir.fxc.hlsl b/test/tint/expressions/type_ctor/vec3/inferred/bool.wgsl.expected.ir.fxc.hlsl
index 9acd2d7..91ae066 100644
--- a/test/tint/expressions/type_ctor/vec3/inferred/bool.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/expressions/type_ctor/vec3/inferred/bool.wgsl.expected.ir.fxc.hlsl
@@ -1,3 +1,5 @@
+
+static bool3 v = bool3(false, true, false);
 [numthreads(1, 1, 1)]
 void unused_entry_point() {
 }
diff --git a/test/tint/expressions/type_ctor/vec3/inferred/f16.wgsl.expected.ir.dxc.hlsl b/test/tint/expressions/type_ctor/vec3/inferred/f16.wgsl.expected.ir.dxc.hlsl
index 9acd2d7..9079eee 100644
--- a/test/tint/expressions/type_ctor/vec3/inferred/f16.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/expressions/type_ctor/vec3/inferred/f16.wgsl.expected.ir.dxc.hlsl
@@ -1,3 +1,5 @@
+
+static vector<float16_t, 3> v = vector<float16_t, 3>(float16_t(0.0h), float16_t(1.0h), float16_t(2.0h));
 [numthreads(1, 1, 1)]
 void unused_entry_point() {
 }
diff --git a/test/tint/expressions/type_ctor/vec3/inferred/f16.wgsl.expected.ir.fxc.hlsl b/test/tint/expressions/type_ctor/vec3/inferred/f16.wgsl.expected.ir.fxc.hlsl
index 9acd2d7..da8a780 100644
--- a/test/tint/expressions/type_ctor/vec3/inferred/f16.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/expressions/type_ctor/vec3/inferred/f16.wgsl.expected.ir.fxc.hlsl
@@ -1,4 +1,11 @@
+SKIP: FAILED
+
+
+static vector<float16_t, 3> v = vector<float16_t, 3>(float16_t(0.0h), float16_t(1.0h), float16_t(2.0h));
 [numthreads(1, 1, 1)]
 void unused_entry_point() {
 }
 
+FXC validation failure:
+c:\src\dawn\Shader@0x000001ED5B9713E0(2,15-23): error X3000: syntax error: unexpected token 'float16_t'
+
diff --git a/test/tint/expressions/type_ctor/vec3/inferred/f32.wgsl.expected.ir.dxc.hlsl b/test/tint/expressions/type_ctor/vec3/inferred/f32.wgsl.expected.ir.dxc.hlsl
index 9acd2d7..a56fdd3 100644
--- a/test/tint/expressions/type_ctor/vec3/inferred/f32.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/expressions/type_ctor/vec3/inferred/f32.wgsl.expected.ir.dxc.hlsl
@@ -1,3 +1,5 @@
+
+static float3 v = float3(0.0f, 1.0f, 2.0f);
 [numthreads(1, 1, 1)]
 void unused_entry_point() {
 }
diff --git a/test/tint/expressions/type_ctor/vec3/inferred/f32.wgsl.expected.ir.fxc.hlsl b/test/tint/expressions/type_ctor/vec3/inferred/f32.wgsl.expected.ir.fxc.hlsl
index 9acd2d7..a56fdd3 100644
--- a/test/tint/expressions/type_ctor/vec3/inferred/f32.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/expressions/type_ctor/vec3/inferred/f32.wgsl.expected.ir.fxc.hlsl
@@ -1,3 +1,5 @@
+
+static float3 v = float3(0.0f, 1.0f, 2.0f);
 [numthreads(1, 1, 1)]
 void unused_entry_point() {
 }
diff --git a/test/tint/expressions/type_ctor/vec3/inferred/i32.wgsl.expected.ir.dxc.hlsl b/test/tint/expressions/type_ctor/vec3/inferred/i32.wgsl.expected.ir.dxc.hlsl
index 9acd2d7..95b071f 100644
--- a/test/tint/expressions/type_ctor/vec3/inferred/i32.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/expressions/type_ctor/vec3/inferred/i32.wgsl.expected.ir.dxc.hlsl
@@ -1,3 +1,5 @@
+
+static int3 v = int3(0, 1, 2);
 [numthreads(1, 1, 1)]
 void unused_entry_point() {
 }
diff --git a/test/tint/expressions/type_ctor/vec3/inferred/i32.wgsl.expected.ir.fxc.hlsl b/test/tint/expressions/type_ctor/vec3/inferred/i32.wgsl.expected.ir.fxc.hlsl
index 9acd2d7..95b071f 100644
--- a/test/tint/expressions/type_ctor/vec3/inferred/i32.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/expressions/type_ctor/vec3/inferred/i32.wgsl.expected.ir.fxc.hlsl
@@ -1,3 +1,5 @@
+
+static int3 v = int3(0, 1, 2);
 [numthreads(1, 1, 1)]
 void unused_entry_point() {
 }
diff --git a/test/tint/expressions/type_ctor/vec3/inferred/u32.wgsl.expected.ir.dxc.hlsl b/test/tint/expressions/type_ctor/vec3/inferred/u32.wgsl.expected.ir.dxc.hlsl
index 9acd2d7..eb8e1be 100644
--- a/test/tint/expressions/type_ctor/vec3/inferred/u32.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/expressions/type_ctor/vec3/inferred/u32.wgsl.expected.ir.dxc.hlsl
@@ -1,3 +1,5 @@
+
+static uint3 v = uint3(0u, 1u, 2u);
 [numthreads(1, 1, 1)]
 void unused_entry_point() {
 }
diff --git a/test/tint/expressions/type_ctor/vec3/inferred/u32.wgsl.expected.ir.fxc.hlsl b/test/tint/expressions/type_ctor/vec3/inferred/u32.wgsl.expected.ir.fxc.hlsl
index 9acd2d7..eb8e1be 100644
--- a/test/tint/expressions/type_ctor/vec3/inferred/u32.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/expressions/type_ctor/vec3/inferred/u32.wgsl.expected.ir.fxc.hlsl
@@ -1,3 +1,5 @@
+
+static uint3 v = uint3(0u, 1u, 2u);
 [numthreads(1, 1, 1)]
 void unused_entry_point() {
 }
diff --git a/test/tint/expressions/type_ctor/vec3/inferred/zero.wgsl.expected.ir.dxc.hlsl b/test/tint/expressions/type_ctor/vec3/inferred/zero.wgsl.expected.ir.dxc.hlsl
index 9acd2d7..8f006b8 100644
--- a/test/tint/expressions/type_ctor/vec3/inferred/zero.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/expressions/type_ctor/vec3/inferred/zero.wgsl.expected.ir.dxc.hlsl
@@ -1,3 +1,7 @@
+
+static float3 f = (0.0f).xxx;
+static int3 i = (0).xxx;
+static uint3 u = (0u).xxx;
 [numthreads(1, 1, 1)]
 void unused_entry_point() {
 }
diff --git a/test/tint/expressions/type_ctor/vec3/inferred/zero.wgsl.expected.ir.fxc.hlsl b/test/tint/expressions/type_ctor/vec3/inferred/zero.wgsl.expected.ir.fxc.hlsl
index 9acd2d7..8f006b8 100644
--- a/test/tint/expressions/type_ctor/vec3/inferred/zero.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/expressions/type_ctor/vec3/inferred/zero.wgsl.expected.ir.fxc.hlsl
@@ -1,3 +1,7 @@
+
+static float3 f = (0.0f).xxx;
+static int3 i = (0).xxx;
+static uint3 u = (0u).xxx;
 [numthreads(1, 1, 1)]
 void unused_entry_point() {
 }
diff --git a/test/tint/expressions/type_ctor/vec4/explicit/bool.wgsl.expected.ir.dxc.hlsl b/test/tint/expressions/type_ctor/vec4/explicit/bool.wgsl.expected.ir.dxc.hlsl
index 9acd2d7..0252e16 100644
--- a/test/tint/expressions/type_ctor/vec4/explicit/bool.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/expressions/type_ctor/vec4/explicit/bool.wgsl.expected.ir.dxc.hlsl
@@ -1,3 +1,5 @@
+
+static bool4 v = bool4(false, true, false, true);
 [numthreads(1, 1, 1)]
 void unused_entry_point() {
 }
diff --git a/test/tint/expressions/type_ctor/vec4/explicit/bool.wgsl.expected.ir.fxc.hlsl b/test/tint/expressions/type_ctor/vec4/explicit/bool.wgsl.expected.ir.fxc.hlsl
index 9acd2d7..0252e16 100644
--- a/test/tint/expressions/type_ctor/vec4/explicit/bool.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/expressions/type_ctor/vec4/explicit/bool.wgsl.expected.ir.fxc.hlsl
@@ -1,3 +1,5 @@
+
+static bool4 v = bool4(false, true, false, true);
 [numthreads(1, 1, 1)]
 void unused_entry_point() {
 }
diff --git a/test/tint/expressions/type_ctor/vec4/explicit/f16.wgsl.expected.ir.dxc.hlsl b/test/tint/expressions/type_ctor/vec4/explicit/f16.wgsl.expected.ir.dxc.hlsl
index 9acd2d7..e36ec4c 100644
--- a/test/tint/expressions/type_ctor/vec4/explicit/f16.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/expressions/type_ctor/vec4/explicit/f16.wgsl.expected.ir.dxc.hlsl
@@ -1,3 +1,5 @@
+
+static vector<float16_t, 4> v = vector<float16_t, 4>(float16_t(0.0h), float16_t(1.0h), float16_t(2.0h), float16_t(3.0h));
 [numthreads(1, 1, 1)]
 void unused_entry_point() {
 }
diff --git a/test/tint/expressions/type_ctor/vec4/explicit/f16.wgsl.expected.ir.fxc.hlsl b/test/tint/expressions/type_ctor/vec4/explicit/f16.wgsl.expected.ir.fxc.hlsl
index 9acd2d7..e7e0f0a 100644
--- a/test/tint/expressions/type_ctor/vec4/explicit/f16.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/expressions/type_ctor/vec4/explicit/f16.wgsl.expected.ir.fxc.hlsl
@@ -1,4 +1,11 @@
+SKIP: FAILED
+
+
+static vector<float16_t, 4> v = vector<float16_t, 4>(float16_t(0.0h), float16_t(1.0h), float16_t(2.0h), float16_t(3.0h));
 [numthreads(1, 1, 1)]
 void unused_entry_point() {
 }
 
+FXC validation failure:
+c:\src\dawn\Shader@0x000001BBCCD05BA0(2,15-23): error X3000: syntax error: unexpected token 'float16_t'
+
diff --git a/test/tint/expressions/type_ctor/vec4/explicit/f32.wgsl.expected.ir.dxc.hlsl b/test/tint/expressions/type_ctor/vec4/explicit/f32.wgsl.expected.ir.dxc.hlsl
index 9acd2d7..d0fd008 100644
--- a/test/tint/expressions/type_ctor/vec4/explicit/f32.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/expressions/type_ctor/vec4/explicit/f32.wgsl.expected.ir.dxc.hlsl
@@ -1,3 +1,5 @@
+
+static float4 v = float4(0.0f, 1.0f, 2.0f, 3.0f);
 [numthreads(1, 1, 1)]
 void unused_entry_point() {
 }
diff --git a/test/tint/expressions/type_ctor/vec4/explicit/f32.wgsl.expected.ir.fxc.hlsl b/test/tint/expressions/type_ctor/vec4/explicit/f32.wgsl.expected.ir.fxc.hlsl
index 9acd2d7..d0fd008 100644
--- a/test/tint/expressions/type_ctor/vec4/explicit/f32.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/expressions/type_ctor/vec4/explicit/f32.wgsl.expected.ir.fxc.hlsl
@@ -1,3 +1,5 @@
+
+static float4 v = float4(0.0f, 1.0f, 2.0f, 3.0f);
 [numthreads(1, 1, 1)]
 void unused_entry_point() {
 }
diff --git a/test/tint/expressions/type_ctor/vec4/explicit/i32.wgsl.expected.ir.dxc.hlsl b/test/tint/expressions/type_ctor/vec4/explicit/i32.wgsl.expected.ir.dxc.hlsl
index 9acd2d7..02efc24 100644
--- a/test/tint/expressions/type_ctor/vec4/explicit/i32.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/expressions/type_ctor/vec4/explicit/i32.wgsl.expected.ir.dxc.hlsl
@@ -1,3 +1,5 @@
+
+static int4 v = int4(0, 1, 2, 3);
 [numthreads(1, 1, 1)]
 void unused_entry_point() {
 }
diff --git a/test/tint/expressions/type_ctor/vec4/explicit/i32.wgsl.expected.ir.fxc.hlsl b/test/tint/expressions/type_ctor/vec4/explicit/i32.wgsl.expected.ir.fxc.hlsl
index 9acd2d7..02efc24 100644
--- a/test/tint/expressions/type_ctor/vec4/explicit/i32.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/expressions/type_ctor/vec4/explicit/i32.wgsl.expected.ir.fxc.hlsl
@@ -1,3 +1,5 @@
+
+static int4 v = int4(0, 1, 2, 3);
 [numthreads(1, 1, 1)]
 void unused_entry_point() {
 }
diff --git a/test/tint/expressions/type_ctor/vec4/explicit/u32.wgsl.expected.ir.dxc.hlsl b/test/tint/expressions/type_ctor/vec4/explicit/u32.wgsl.expected.ir.dxc.hlsl
index 9acd2d7..33e3ea7 100644
--- a/test/tint/expressions/type_ctor/vec4/explicit/u32.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/expressions/type_ctor/vec4/explicit/u32.wgsl.expected.ir.dxc.hlsl
@@ -1,3 +1,5 @@
+
+static uint4 v = uint4(0u, 1u, 2u, 3u);
 [numthreads(1, 1, 1)]
 void unused_entry_point() {
 }
diff --git a/test/tint/expressions/type_ctor/vec4/explicit/u32.wgsl.expected.ir.fxc.hlsl b/test/tint/expressions/type_ctor/vec4/explicit/u32.wgsl.expected.ir.fxc.hlsl
index 9acd2d7..33e3ea7 100644
--- a/test/tint/expressions/type_ctor/vec4/explicit/u32.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/expressions/type_ctor/vec4/explicit/u32.wgsl.expected.ir.fxc.hlsl
@@ -1,3 +1,5 @@
+
+static uint4 v = uint4(0u, 1u, 2u, 3u);
 [numthreads(1, 1, 1)]
 void unused_entry_point() {
 }
diff --git a/test/tint/expressions/type_ctor/vec4/inferred/abstract-float.wgsl.expected.ir.dxc.hlsl b/test/tint/expressions/type_ctor/vec4/inferred/abstract-float.wgsl.expected.ir.dxc.hlsl
index 9acd2d7..d0fd008 100644
--- a/test/tint/expressions/type_ctor/vec4/inferred/abstract-float.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/expressions/type_ctor/vec4/inferred/abstract-float.wgsl.expected.ir.dxc.hlsl
@@ -1,3 +1,5 @@
+
+static float4 v = float4(0.0f, 1.0f, 2.0f, 3.0f);
 [numthreads(1, 1, 1)]
 void unused_entry_point() {
 }
diff --git a/test/tint/expressions/type_ctor/vec4/inferred/abstract-float.wgsl.expected.ir.fxc.hlsl b/test/tint/expressions/type_ctor/vec4/inferred/abstract-float.wgsl.expected.ir.fxc.hlsl
index 9acd2d7..d0fd008 100644
--- a/test/tint/expressions/type_ctor/vec4/inferred/abstract-float.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/expressions/type_ctor/vec4/inferred/abstract-float.wgsl.expected.ir.fxc.hlsl
@@ -1,3 +1,5 @@
+
+static float4 v = float4(0.0f, 1.0f, 2.0f, 3.0f);
 [numthreads(1, 1, 1)]
 void unused_entry_point() {
 }
diff --git a/test/tint/expressions/type_ctor/vec4/inferred/abstract-int.wgsl.expected.ir.dxc.hlsl b/test/tint/expressions/type_ctor/vec4/inferred/abstract-int.wgsl.expected.ir.dxc.hlsl
index 9acd2d7..02efc24 100644
--- a/test/tint/expressions/type_ctor/vec4/inferred/abstract-int.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/expressions/type_ctor/vec4/inferred/abstract-int.wgsl.expected.ir.dxc.hlsl
@@ -1,3 +1,5 @@
+
+static int4 v = int4(0, 1, 2, 3);
 [numthreads(1, 1, 1)]
 void unused_entry_point() {
 }
diff --git a/test/tint/expressions/type_ctor/vec4/inferred/abstract-int.wgsl.expected.ir.fxc.hlsl b/test/tint/expressions/type_ctor/vec4/inferred/abstract-int.wgsl.expected.ir.fxc.hlsl
index 9acd2d7..02efc24 100644
--- a/test/tint/expressions/type_ctor/vec4/inferred/abstract-int.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/expressions/type_ctor/vec4/inferred/abstract-int.wgsl.expected.ir.fxc.hlsl
@@ -1,3 +1,5 @@
+
+static int4 v = int4(0, 1, 2, 3);
 [numthreads(1, 1, 1)]
 void unused_entry_point() {
 }
diff --git a/test/tint/expressions/type_ctor/vec4/inferred/bool.wgsl.expected.ir.dxc.hlsl b/test/tint/expressions/type_ctor/vec4/inferred/bool.wgsl.expected.ir.dxc.hlsl
index 9acd2d7..0252e16 100644
--- a/test/tint/expressions/type_ctor/vec4/inferred/bool.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/expressions/type_ctor/vec4/inferred/bool.wgsl.expected.ir.dxc.hlsl
@@ -1,3 +1,5 @@
+
+static bool4 v = bool4(false, true, false, true);
 [numthreads(1, 1, 1)]
 void unused_entry_point() {
 }
diff --git a/test/tint/expressions/type_ctor/vec4/inferred/bool.wgsl.expected.ir.fxc.hlsl b/test/tint/expressions/type_ctor/vec4/inferred/bool.wgsl.expected.ir.fxc.hlsl
index 9acd2d7..0252e16 100644
--- a/test/tint/expressions/type_ctor/vec4/inferred/bool.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/expressions/type_ctor/vec4/inferred/bool.wgsl.expected.ir.fxc.hlsl
@@ -1,3 +1,5 @@
+
+static bool4 v = bool4(false, true, false, true);
 [numthreads(1, 1, 1)]
 void unused_entry_point() {
 }
diff --git a/test/tint/expressions/type_ctor/vec4/inferred/f16.wgsl.expected.ir.dxc.hlsl b/test/tint/expressions/type_ctor/vec4/inferred/f16.wgsl.expected.ir.dxc.hlsl
index 9acd2d7..e36ec4c 100644
--- a/test/tint/expressions/type_ctor/vec4/inferred/f16.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/expressions/type_ctor/vec4/inferred/f16.wgsl.expected.ir.dxc.hlsl
@@ -1,3 +1,5 @@
+
+static vector<float16_t, 4> v = vector<float16_t, 4>(float16_t(0.0h), float16_t(1.0h), float16_t(2.0h), float16_t(3.0h));
 [numthreads(1, 1, 1)]
 void unused_entry_point() {
 }
diff --git a/test/tint/expressions/type_ctor/vec4/inferred/f16.wgsl.expected.ir.fxc.hlsl b/test/tint/expressions/type_ctor/vec4/inferred/f16.wgsl.expected.ir.fxc.hlsl
index 9acd2d7..bb13630 100644
--- a/test/tint/expressions/type_ctor/vec4/inferred/f16.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/expressions/type_ctor/vec4/inferred/f16.wgsl.expected.ir.fxc.hlsl
@@ -1,4 +1,11 @@
+SKIP: FAILED
+
+
+static vector<float16_t, 4> v = vector<float16_t, 4>(float16_t(0.0h), float16_t(1.0h), float16_t(2.0h), float16_t(3.0h));
 [numthreads(1, 1, 1)]
 void unused_entry_point() {
 }
 
+FXC validation failure:
+c:\src\dawn\Shader@0x000002864ACE5E80(2,15-23): error X3000: syntax error: unexpected token 'float16_t'
+
diff --git a/test/tint/expressions/type_ctor/vec4/inferred/f32.wgsl.expected.ir.dxc.hlsl b/test/tint/expressions/type_ctor/vec4/inferred/f32.wgsl.expected.ir.dxc.hlsl
index 9acd2d7..d0fd008 100644
--- a/test/tint/expressions/type_ctor/vec4/inferred/f32.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/expressions/type_ctor/vec4/inferred/f32.wgsl.expected.ir.dxc.hlsl
@@ -1,3 +1,5 @@
+
+static float4 v = float4(0.0f, 1.0f, 2.0f, 3.0f);
 [numthreads(1, 1, 1)]
 void unused_entry_point() {
 }
diff --git a/test/tint/expressions/type_ctor/vec4/inferred/f32.wgsl.expected.ir.fxc.hlsl b/test/tint/expressions/type_ctor/vec4/inferred/f32.wgsl.expected.ir.fxc.hlsl
index 9acd2d7..d0fd008 100644
--- a/test/tint/expressions/type_ctor/vec4/inferred/f32.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/expressions/type_ctor/vec4/inferred/f32.wgsl.expected.ir.fxc.hlsl
@@ -1,3 +1,5 @@
+
+static float4 v = float4(0.0f, 1.0f, 2.0f, 3.0f);
 [numthreads(1, 1, 1)]
 void unused_entry_point() {
 }
diff --git a/test/tint/expressions/type_ctor/vec4/inferred/i32.wgsl.expected.ir.dxc.hlsl b/test/tint/expressions/type_ctor/vec4/inferred/i32.wgsl.expected.ir.dxc.hlsl
index 9acd2d7..02efc24 100644
--- a/test/tint/expressions/type_ctor/vec4/inferred/i32.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/expressions/type_ctor/vec4/inferred/i32.wgsl.expected.ir.dxc.hlsl
@@ -1,3 +1,5 @@
+
+static int4 v = int4(0, 1, 2, 3);
 [numthreads(1, 1, 1)]
 void unused_entry_point() {
 }
diff --git a/test/tint/expressions/type_ctor/vec4/inferred/i32.wgsl.expected.ir.fxc.hlsl b/test/tint/expressions/type_ctor/vec4/inferred/i32.wgsl.expected.ir.fxc.hlsl
index 9acd2d7..02efc24 100644
--- a/test/tint/expressions/type_ctor/vec4/inferred/i32.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/expressions/type_ctor/vec4/inferred/i32.wgsl.expected.ir.fxc.hlsl
@@ -1,3 +1,5 @@
+
+static int4 v = int4(0, 1, 2, 3);
 [numthreads(1, 1, 1)]
 void unused_entry_point() {
 }
diff --git a/test/tint/expressions/type_ctor/vec4/inferred/u32.wgsl.expected.ir.dxc.hlsl b/test/tint/expressions/type_ctor/vec4/inferred/u32.wgsl.expected.ir.dxc.hlsl
index 9acd2d7..33e3ea7 100644
--- a/test/tint/expressions/type_ctor/vec4/inferred/u32.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/expressions/type_ctor/vec4/inferred/u32.wgsl.expected.ir.dxc.hlsl
@@ -1,3 +1,5 @@
+
+static uint4 v = uint4(0u, 1u, 2u, 3u);
 [numthreads(1, 1, 1)]
 void unused_entry_point() {
 }
diff --git a/test/tint/expressions/type_ctor/vec4/inferred/u32.wgsl.expected.ir.fxc.hlsl b/test/tint/expressions/type_ctor/vec4/inferred/u32.wgsl.expected.ir.fxc.hlsl
index 9acd2d7..33e3ea7 100644
--- a/test/tint/expressions/type_ctor/vec4/inferred/u32.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/expressions/type_ctor/vec4/inferred/u32.wgsl.expected.ir.fxc.hlsl
@@ -1,3 +1,5 @@
+
+static uint4 v = uint4(0u, 1u, 2u, 3u);
 [numthreads(1, 1, 1)]
 void unused_entry_point() {
 }
diff --git a/test/tint/expressions/type_ctor/vec4/inferred/zero.wgsl.expected.ir.dxc.hlsl b/test/tint/expressions/type_ctor/vec4/inferred/zero.wgsl.expected.ir.dxc.hlsl
index 9acd2d7..2ca4f58 100644
--- a/test/tint/expressions/type_ctor/vec4/inferred/zero.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/expressions/type_ctor/vec4/inferred/zero.wgsl.expected.ir.dxc.hlsl
@@ -1,3 +1,7 @@
+
+static float4 f = (0.0f).xxxx;
+static int4 i = (0).xxxx;
+static uint4 u = (0u).xxxx;
 [numthreads(1, 1, 1)]
 void unused_entry_point() {
 }
diff --git a/test/tint/expressions/type_ctor/vec4/inferred/zero.wgsl.expected.ir.fxc.hlsl b/test/tint/expressions/type_ctor/vec4/inferred/zero.wgsl.expected.ir.fxc.hlsl
index 9acd2d7..2ca4f58 100644
--- a/test/tint/expressions/type_ctor/vec4/inferred/zero.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/expressions/type_ctor/vec4/inferred/zero.wgsl.expected.ir.fxc.hlsl
@@ -1,3 +1,7 @@
+
+static float4 f = (0.0f).xxxx;
+static int4 i = (0).xxxx;
+static uint4 u = (0u).xxxx;
 [numthreads(1, 1, 1)]
 void unused_entry_point() {
 }
diff --git a/test/tint/expressions/unary/complement/complement.wgsl.expected.ir.dxc.hlsl b/test/tint/expressions/unary/complement/complement.wgsl.expected.ir.dxc.hlsl
index cf7df04..3d6d70b 100644
--- a/test/tint/expressions/unary/complement/complement.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/expressions/unary/complement/complement.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,21 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::CoreUnary
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+int i(int x) {
+  return ~(x);
+}
+
+uint u(uint x) {
+  return ~(x);
+}
+
+int4 vi(int4 x) {
+  return ~(x);
+}
+
+uint4 vu(uint4 x) {
+  return ~(x);
+}
+
+[numthreads(1, 1, 1)]
+void unused_entry_point() {
+}
+
diff --git a/test/tint/expressions/unary/complement/complement.wgsl.expected.ir.fxc.hlsl b/test/tint/expressions/unary/complement/complement.wgsl.expected.ir.fxc.hlsl
index cf7df04..3d6d70b 100644
--- a/test/tint/expressions/unary/complement/complement.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/expressions/unary/complement/complement.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,21 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::CoreUnary
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+int i(int x) {
+  return ~(x);
+}
+
+uint u(uint x) {
+  return ~(x);
+}
+
+int4 vi(int4 x) {
+  return ~(x);
+}
+
+uint4 vu(uint4 x) {
+  return ~(x);
+}
+
+[numthreads(1, 1, 1)]
+void unused_entry_point() {
+}
+
diff --git a/test/tint/expressions/unary/negate/negate.wgsl.expected.ir.dxc.hlsl b/test/tint/expressions/unary/negate/negate.wgsl.expected.ir.dxc.hlsl
index cf7df04..9bc1110 100644
--- a/test/tint/expressions/unary/negate/negate.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/expressions/unary/negate/negate.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,13 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::CoreUnary
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+int i(int x) {
+  return -(x);
+}
+
+int4 vi(int4 x) {
+  return -(x);
+}
+
+[numthreads(1, 1, 1)]
+void unused_entry_point() {
+}
+
diff --git a/test/tint/expressions/unary/negate/negate.wgsl.expected.ir.fxc.hlsl b/test/tint/expressions/unary/negate/negate.wgsl.expected.ir.fxc.hlsl
index cf7df04..9bc1110 100644
--- a/test/tint/expressions/unary/negate/negate.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/expressions/unary/negate/negate.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,13 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::CoreUnary
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+int i(int x) {
+  return -(x);
+}
+
+int4 vi(int4 x) {
+  return -(x);
+}
+
+[numthreads(1, 1, 1)]
+void unused_entry_point() {
+}
+
diff --git a/test/tint/expressions/user_call/call_with_call_param.wgsl.expected.ir.dxc.hlsl b/test/tint/expressions/user_call/call_with_call_param.wgsl.expected.ir.dxc.hlsl
index 6f84919..ba94d1f 100644
--- a/test/tint/expressions/user_call/call_with_call_param.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/expressions/user_call/call_with_call_param.wgsl.expected.ir.dxc.hlsl
@@ -1,26 +1,17 @@
-SKIP: FAILED
 
-float b() {
+float b(int i) {
   return 2.29999995231628417969f;
 }
 
-int c() {
+int c(uint u) {
   return 1;
 }
 
 void a() {
-  float a = b(c(2u));
+  float a_1 = b(c(2u));
 }
 
 [numthreads(1, 1, 1)]
 void unused_entry_point() {
 }
 
-DXC validation failure:
-hlsl.hlsl:10:15: error: no matching function for call to 'c'
-  float a = b(c(2u));
-              ^
-hlsl.hlsl:5:5: note: candidate function not viable: requires 0 arguments, but 1 was provided
-int c() {
-    ^
-
diff --git a/test/tint/expressions/user_call/call_with_call_param.wgsl.expected.ir.fxc.hlsl b/test/tint/expressions/user_call/call_with_call_param.wgsl.expected.ir.fxc.hlsl
index 260f64d..ba94d1f 100644
--- a/test/tint/expressions/user_call/call_with_call_param.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/expressions/user_call/call_with_call_param.wgsl.expected.ir.fxc.hlsl
@@ -1,15 +1,14 @@
-SKIP: FAILED
 
-float b() {
+float b(int i) {
   return 2.29999995231628417969f;
 }
 
-int c() {
+int c(uint u) {
   return 1;
 }
 
 void a() {
-  float a = b(c(2u));
+  float a_1 = b(c(2u));
 }
 
 [numthreads(1, 1, 1)]
diff --git a/test/tint/expressions/user_call/multi_param_no_return.wgsl.expected.ir.dxc.hlsl b/test/tint/expressions/user_call/multi_param_no_return.wgsl.expected.ir.dxc.hlsl
index 6b047b4..ed0c750 100644
--- a/test/tint/expressions/user_call/multi_param_no_return.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/expressions/user_call/multi_param_no_return.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,15 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:287 internal compiler error: Switch() matched no cases. Type: tint::core::ir::FunctionParam
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+void c(int x, int y, int z) {
+  int a = (((1 + x) + y) + z);
+  a = (a + 2);
+}
+
+void b() {
+  c(1, 2, 3);
+  c(4, 5, 6);
+}
+
+[numthreads(1, 1, 1)]
+void unused_entry_point() {
+}
+
diff --git a/test/tint/expressions/user_call/multi_param_no_return.wgsl.expected.ir.fxc.hlsl b/test/tint/expressions/user_call/multi_param_no_return.wgsl.expected.ir.fxc.hlsl
index 6b047b4..ed0c750 100644
--- a/test/tint/expressions/user_call/multi_param_no_return.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/expressions/user_call/multi_param_no_return.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,15 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:287 internal compiler error: Switch() matched no cases. Type: tint::core::ir::FunctionParam
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+void c(int x, int y, int z) {
+  int a = (((1 + x) + y) + z);
+  a = (a + 2);
+}
+
+void b() {
+  c(1, 2, 3);
+  c(4, 5, 6);
+}
+
+[numthreads(1, 1, 1)]
+void unused_entry_point() {
+}
+
diff --git a/test/tint/expressions/user_call/multi_param_return.wgsl.expected.ir.dxc.hlsl b/test/tint/expressions/user_call/multi_param_return.wgsl.expected.ir.dxc.hlsl
index 6b047b4..2f1f77d 100644
--- a/test/tint/expressions/user_call/multi_param_return.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/expressions/user_call/multi_param_return.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,17 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:287 internal compiler error: Switch() matched no cases. Type: tint::core::ir::FunctionParam
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+int c(int x, int y, int z) {
+  int a = (((1 + x) + y) + z);
+  a = (a + 2);
+  return a;
+}
+
+void b() {
+  int b_1 = c(2, 3, 4);
+  int v = c(3, 4, 5);
+  b_1 = (b_1 + v);
+}
+
+[numthreads(1, 1, 1)]
+void unused_entry_point() {
+}
+
diff --git a/test/tint/expressions/user_call/multi_param_return.wgsl.expected.ir.fxc.hlsl b/test/tint/expressions/user_call/multi_param_return.wgsl.expected.ir.fxc.hlsl
index 6b047b4..2f1f77d 100644
--- a/test/tint/expressions/user_call/multi_param_return.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/expressions/user_call/multi_param_return.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,17 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:287 internal compiler error: Switch() matched no cases. Type: tint::core::ir::FunctionParam
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+int c(int x, int y, int z) {
+  int a = (((1 + x) + y) + z);
+  a = (a + 2);
+  return a;
+}
+
+void b() {
+  int b_1 = c(2, 3, 4);
+  int v = c(3, 4, 5);
+  b_1 = (b_1 + v);
+}
+
+[numthreads(1, 1, 1)]
+void unused_entry_point() {
+}
+
diff --git a/test/tint/expressions/user_call/nested.wgsl.expected.ir.dxc.hlsl b/test/tint/expressions/user_call/nested.wgsl.expected.ir.dxc.hlsl
index 5a8bb09..dd39668 100644
--- a/test/tint/expressions/user_call/nested.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/expressions/user_call/nested.wgsl.expected.ir.dxc.hlsl
@@ -1,3 +1,4 @@
+
 void d() {
 }
 
diff --git a/test/tint/expressions/user_call/nested.wgsl.expected.ir.fxc.hlsl b/test/tint/expressions/user_call/nested.wgsl.expected.ir.fxc.hlsl
index a64abcc..dd39668 100644
--- a/test/tint/expressions/user_call/nested.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/expressions/user_call/nested.wgsl.expected.ir.fxc.hlsl
@@ -1,4 +1,3 @@
-SKIP: FAILED
 
 void d() {
 }
diff --git a/test/tint/expressions/user_call/no_params_no_return.wgsl.expected.ir.dxc.hlsl b/test/tint/expressions/user_call/no_params_no_return.wgsl.expected.ir.dxc.hlsl
index 1724477..4b38e63 100644
--- a/test/tint/expressions/user_call/no_params_no_return.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/expressions/user_call/no_params_no_return.wgsl.expected.ir.dxc.hlsl
@@ -1,3 +1,4 @@
+
 void c() {
   int a = 1;
   a = (a + 2);
diff --git a/test/tint/expressions/user_call/no_params_no_return.wgsl.expected.ir.fxc.hlsl b/test/tint/expressions/user_call/no_params_no_return.wgsl.expected.ir.fxc.hlsl
index 4761c35..4b38e63 100644
--- a/test/tint/expressions/user_call/no_params_no_return.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/expressions/user_call/no_params_no_return.wgsl.expected.ir.fxc.hlsl
@@ -1,4 +1,3 @@
-SKIP: FAILED
 
 void c() {
   int a = 1;
diff --git a/test/tint/expressions/user_call/no_params_return.wgsl.expected.ir.dxc.hlsl b/test/tint/expressions/user_call/no_params_return.wgsl.expected.ir.dxc.hlsl
index 8d6a0a9..4d25e2eb 100644
--- a/test/tint/expressions/user_call/no_params_return.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/expressions/user_call/no_params_return.wgsl.expected.ir.dxc.hlsl
@@ -1,3 +1,4 @@
+
 int c() {
   int a = 1;
   a = (a + 2);
@@ -5,8 +6,9 @@
 }
 
 void b() {
-  int b = c();
-  b = (b + c());
+  int b_1 = c();
+  int v = c();
+  b_1 = (b_1 + v);
 }
 
 [numthreads(1, 1, 1)]
diff --git a/test/tint/expressions/user_call/no_params_return.wgsl.expected.ir.fxc.hlsl b/test/tint/expressions/user_call/no_params_return.wgsl.expected.ir.fxc.hlsl
index 98ab32b..4d25e2eb 100644
--- a/test/tint/expressions/user_call/no_params_return.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/expressions/user_call/no_params_return.wgsl.expected.ir.fxc.hlsl
@@ -1,4 +1,3 @@
-SKIP: FAILED
 
 int c() {
   int a = 1;
@@ -7,8 +6,9 @@
 }
 
 void b() {
-  int b = c();
-  b = (b + c());
+  int b_1 = c();
+  int v = c();
+  b_1 = (b_1 + v);
 }
 
 [numthreads(1, 1, 1)]
diff --git a/test/tint/expressions/user_call/one_param_no_return.wgsl.expected.ir.dxc.hlsl b/test/tint/expressions/user_call/one_param_no_return.wgsl.expected.ir.dxc.hlsl
index 6b047b4..e63044c 100644
--- a/test/tint/expressions/user_call/one_param_no_return.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/expressions/user_call/one_param_no_return.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,15 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:287 internal compiler error: Switch() matched no cases. Type: tint::core::ir::FunctionParam
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+void c(int z) {
+  int a = (1 + z);
+  a = (a + 2);
+}
+
+void b() {
+  c(2);
+  c(3);
+}
+
+[numthreads(1, 1, 1)]
+void unused_entry_point() {
+}
+
diff --git a/test/tint/expressions/user_call/one_param_no_return.wgsl.expected.ir.fxc.hlsl b/test/tint/expressions/user_call/one_param_no_return.wgsl.expected.ir.fxc.hlsl
index 6b047b4..e63044c 100644
--- a/test/tint/expressions/user_call/one_param_no_return.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/expressions/user_call/one_param_no_return.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,15 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:287 internal compiler error: Switch() matched no cases. Type: tint::core::ir::FunctionParam
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+void c(int z) {
+  int a = (1 + z);
+  a = (a + 2);
+}
+
+void b() {
+  c(2);
+  c(3);
+}
+
+[numthreads(1, 1, 1)]
+void unused_entry_point() {
+}
+
diff --git a/test/tint/expressions/user_call/one_param_return.wgsl.expected.ir.dxc.hlsl b/test/tint/expressions/user_call/one_param_return.wgsl.expected.ir.dxc.hlsl
index 6b047b4..e71449b 100644
--- a/test/tint/expressions/user_call/one_param_return.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/expressions/user_call/one_param_return.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,17 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:287 internal compiler error: Switch() matched no cases. Type: tint::core::ir::FunctionParam
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+int c(int z) {
+  int a = (1 + z);
+  a = (a + 2);
+  return a;
+}
+
+void b() {
+  int b_1 = c(2);
+  int v = c(3);
+  b_1 = (b_1 + v);
+}
+
+[numthreads(1, 1, 1)]
+void unused_entry_point() {
+}
+
diff --git a/test/tint/expressions/user_call/one_param_return.wgsl.expected.ir.fxc.hlsl b/test/tint/expressions/user_call/one_param_return.wgsl.expected.ir.fxc.hlsl
index 6b047b4..e71449b 100644
--- a/test/tint/expressions/user_call/one_param_return.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/expressions/user_call/one_param_return.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,17 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:287 internal compiler error: Switch() matched no cases. Type: tint::core::ir::FunctionParam
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+int c(int z) {
+  int a = (1 + z);
+  a = (a + 2);
+  return a;
+}
+
+void b() {
+  int b_1 = c(2);
+  int v = c(3);
+  b_1 = (b_1 + v);
+}
+
+[numthreads(1, 1, 1)]
+void unused_entry_point() {
+}
+
diff --git a/test/tint/expressions/zero_init/array/bool.wgsl.expected.ir.dxc.hlsl b/test/tint/expressions/zero_init/array/bool.wgsl.expected.ir.dxc.hlsl
index c6d4955..b0148d7 100644
--- a/test/tint/expressions/zero_init/array/bool.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/expressions/zero_init/array/bool.wgsl.expected.ir.dxc.hlsl
@@ -1,16 +1,9 @@
-SKIP: FAILED
 
 void f() {
-  bool[4] v = (bool[4])0;
+  bool v[4] = (bool[4])0;
 }
 
 [numthreads(1, 1, 1)]
 void unused_entry_point() {
 }
 
-DXC validation failure:
-hlsl.hlsl:2:12: error: brackets are not allowed here; to declare an array, place the brackets after the name
-  bool[4] v = (bool[4])0;
-      ~~~  ^
-           [4]
-
diff --git a/test/tint/expressions/zero_init/array/bool.wgsl.expected.ir.fxc.hlsl b/test/tint/expressions/zero_init/array/bool.wgsl.expected.ir.fxc.hlsl
index 99577e0..b0148d7 100644
--- a/test/tint/expressions/zero_init/array/bool.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/expressions/zero_init/array/bool.wgsl.expected.ir.fxc.hlsl
@@ -1,5 +1,6 @@
+
 void f() {
-  bool[4] v = (bool[4])0;
+  bool v[4] = (bool[4])0;
 }
 
 [numthreads(1, 1, 1)]
diff --git a/test/tint/expressions/zero_init/array/f16.wgsl.expected.ir.dxc.hlsl b/test/tint/expressions/zero_init/array/f16.wgsl.expected.ir.dxc.hlsl
index 4b8e78f..114c547 100644
--- a/test/tint/expressions/zero_init/array/f16.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/expressions/zero_init/array/f16.wgsl.expected.ir.dxc.hlsl
@@ -1,16 +1,9 @@
-SKIP: FAILED
 
 void f() {
-  float16_t[4] v = (float16_t[4])0;
+  float16_t v[4] = (float16_t[4])0;
 }
 
 [numthreads(1, 1, 1)]
 void unused_entry_point() {
 }
 
-DXC validation failure:
-hlsl.hlsl:2:17: error: brackets are not allowed here; to declare an array, place the brackets after the name
-  float16_t[4] v = (float16_t[4])0;
-           ~~~  ^
-                [4]
-
diff --git a/test/tint/expressions/zero_init/array/f16.wgsl.expected.ir.fxc.hlsl b/test/tint/expressions/zero_init/array/f16.wgsl.expected.ir.fxc.hlsl
index 27c9477..85d5622 100644
--- a/test/tint/expressions/zero_init/array/f16.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/expressions/zero_init/array/f16.wgsl.expected.ir.fxc.hlsl
@@ -1,8 +1,15 @@
+SKIP: FAILED
+
+
 void f() {
-  float16_t[4] v = (float16_t[4])0;
+  float16_t v[4] = (float16_t[4])0;
 }
 
 [numthreads(1, 1, 1)]
 void unused_entry_point() {
 }
 
+FXC validation failure:
+c:\src\dawn\Shader@0x000001A2490BD400(3,3-11): error X3000: unrecognized identifier 'float16_t'
+c:\src\dawn\Shader@0x000001A2490BD400(3,13): error X3000: unrecognized identifier 'v'
+
diff --git a/test/tint/expressions/zero_init/array/f32.wgsl.expected.ir.dxc.hlsl b/test/tint/expressions/zero_init/array/f32.wgsl.expected.ir.dxc.hlsl
index eca6471..7af8126 100644
--- a/test/tint/expressions/zero_init/array/f32.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/expressions/zero_init/array/f32.wgsl.expected.ir.dxc.hlsl
@@ -1,16 +1,9 @@
-SKIP: FAILED
 
 void f() {
-  float[4] v = (float[4])0;
+  float v[4] = (float[4])0;
 }
 
 [numthreads(1, 1, 1)]
 void unused_entry_point() {
 }
 
-DXC validation failure:
-hlsl.hlsl:2:13: error: brackets are not allowed here; to declare an array, place the brackets after the name
-  float[4] v = (float[4])0;
-       ~~~  ^
-            [4]
-
diff --git a/test/tint/expressions/zero_init/array/f32.wgsl.expected.ir.fxc.hlsl b/test/tint/expressions/zero_init/array/f32.wgsl.expected.ir.fxc.hlsl
index 4c3ddb8..7af8126 100644
--- a/test/tint/expressions/zero_init/array/f32.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/expressions/zero_init/array/f32.wgsl.expected.ir.fxc.hlsl
@@ -1,5 +1,6 @@
+
 void f() {
-  float[4] v = (float[4])0;
+  float v[4] = (float[4])0;
 }
 
 [numthreads(1, 1, 1)]
diff --git a/test/tint/expressions/zero_init/array/i32.wgsl.expected.ir.dxc.hlsl b/test/tint/expressions/zero_init/array/i32.wgsl.expected.ir.dxc.hlsl
index a846837..bdef646 100644
--- a/test/tint/expressions/zero_init/array/i32.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/expressions/zero_init/array/i32.wgsl.expected.ir.dxc.hlsl
@@ -1,16 +1,9 @@
-SKIP: FAILED
 
 void f() {
-  int[4] v = (int[4])0;
+  int v[4] = (int[4])0;
 }
 
 [numthreads(1, 1, 1)]
 void unused_entry_point() {
 }
 
-DXC validation failure:
-hlsl.hlsl:2:11: error: brackets are not allowed here; to declare an array, place the brackets after the name
-  int[4] v = (int[4])0;
-     ~~~  ^
-          [4]
-
diff --git a/test/tint/expressions/zero_init/array/i32.wgsl.expected.ir.fxc.hlsl b/test/tint/expressions/zero_init/array/i32.wgsl.expected.ir.fxc.hlsl
index 43eca47..bdef646 100644
--- a/test/tint/expressions/zero_init/array/i32.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/expressions/zero_init/array/i32.wgsl.expected.ir.fxc.hlsl
@@ -1,5 +1,6 @@
+
 void f() {
-  int[4] v = (int[4])0;
+  int v[4] = (int[4])0;
 }
 
 [numthreads(1, 1, 1)]
diff --git a/test/tint/expressions/zero_init/array/struct.wgsl.expected.ir.dxc.hlsl b/test/tint/expressions/zero_init/array/struct.wgsl.expected.ir.dxc.hlsl
index 21f551b..519e051 100644
--- a/test/tint/expressions/zero_init/array/struct.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/expressions/zero_init/array/struct.wgsl.expected.ir.dxc.hlsl
@@ -1,15 +1,16 @@
-SKIP: FAILED
+struct S {
+  int i;
+  uint u;
+  float f;
+  bool b;
+};
+
 
 void f() {
-  S[4] v = (S[4])0;
+  S v[4] = (S[4])0;
 }
 
 [numthreads(1, 1, 1)]
 void unused_entry_point() {
 }
 
-DXC validation failure:
-hlsl.hlsl:2:3: error: use of undeclared identifier 'S'
-  S[4] v = (S[4])0;
-  ^
-
diff --git a/test/tint/expressions/zero_init/array/struct.wgsl.expected.ir.fxc.hlsl b/test/tint/expressions/zero_init/array/struct.wgsl.expected.ir.fxc.hlsl
index 9deedb4..519e051 100644
--- a/test/tint/expressions/zero_init/array/struct.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/expressions/zero_init/array/struct.wgsl.expected.ir.fxc.hlsl
@@ -1,5 +1,13 @@
+struct S {
+  int i;
+  uint u;
+  float f;
+  bool b;
+};
+
+
 void f() {
-  S[4] v = (S[4])0;
+  S v[4] = (S[4])0;
 }
 
 [numthreads(1, 1, 1)]
diff --git a/test/tint/expressions/zero_init/array/u32.wgsl.expected.ir.dxc.hlsl b/test/tint/expressions/zero_init/array/u32.wgsl.expected.ir.dxc.hlsl
index ddf85c2..c49d41d 100644
--- a/test/tint/expressions/zero_init/array/u32.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/expressions/zero_init/array/u32.wgsl.expected.ir.dxc.hlsl
@@ -1,16 +1,9 @@
-SKIP: FAILED
 
 void f() {
-  uint[4] v = (uint[4])0;
+  uint v[4] = (uint[4])0;
 }
 
 [numthreads(1, 1, 1)]
 void unused_entry_point() {
 }
 
-DXC validation failure:
-hlsl.hlsl:2:12: error: brackets are not allowed here; to declare an array, place the brackets after the name
-  uint[4] v = (uint[4])0;
-      ~~~  ^
-           [4]
-
diff --git a/test/tint/expressions/zero_init/array/u32.wgsl.expected.ir.fxc.hlsl b/test/tint/expressions/zero_init/array/u32.wgsl.expected.ir.fxc.hlsl
index 00c94c8..c49d41d 100644
--- a/test/tint/expressions/zero_init/array/u32.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/expressions/zero_init/array/u32.wgsl.expected.ir.fxc.hlsl
@@ -1,5 +1,6 @@
+
 void f() {
-  uint[4] v = (uint[4])0;
+  uint v[4] = (uint[4])0;
 }
 
 [numthreads(1, 1, 1)]
diff --git a/test/tint/expressions/zero_init/mat2x2/f16.wgsl.expected.ir.dxc.hlsl b/test/tint/expressions/zero_init/mat2x2/f16.wgsl.expected.ir.dxc.hlsl
index 99306ed..21ad18d 100644
--- a/test/tint/expressions/zero_init/mat2x2/f16.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/expressions/zero_init/mat2x2/f16.wgsl.expected.ir.dxc.hlsl
@@ -1,3 +1,4 @@
+
 void f() {
   matrix<float16_t, 2, 2> v = matrix<float16_t, 2, 2>((float16_t(0.0h)).xx, (float16_t(0.0h)).xx);
 }
diff --git a/test/tint/expressions/zero_init/mat2x2/f16.wgsl.expected.ir.fxc.hlsl b/test/tint/expressions/zero_init/mat2x2/f16.wgsl.expected.ir.fxc.hlsl
index 99306ed..29f6caa 100644
--- a/test/tint/expressions/zero_init/mat2x2/f16.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/expressions/zero_init/mat2x2/f16.wgsl.expected.ir.fxc.hlsl
@@ -1,3 +1,6 @@
+SKIP: FAILED
+
+
 void f() {
   matrix<float16_t, 2, 2> v = matrix<float16_t, 2, 2>((float16_t(0.0h)).xx, (float16_t(0.0h)).xx);
 }
@@ -6,3 +9,6 @@
 void unused_entry_point() {
 }
 
+FXC validation failure:
+c:\src\dawn\Shader@0x000001B4E309DB00(3,10-18): error X3000: syntax error: unexpected token 'float16_t'
+
diff --git a/test/tint/expressions/zero_init/mat2x2/f32.wgsl.expected.ir.dxc.hlsl b/test/tint/expressions/zero_init/mat2x2/f32.wgsl.expected.ir.dxc.hlsl
index 9ed64e8..4aa80f3 100644
--- a/test/tint/expressions/zero_init/mat2x2/f32.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/expressions/zero_init/mat2x2/f32.wgsl.expected.ir.dxc.hlsl
@@ -1,3 +1,4 @@
+
 void f() {
   float2x2 v = float2x2((0.0f).xx, (0.0f).xx);
 }
diff --git a/test/tint/expressions/zero_init/mat2x2/f32.wgsl.expected.ir.fxc.hlsl b/test/tint/expressions/zero_init/mat2x2/f32.wgsl.expected.ir.fxc.hlsl
index 9ed64e8..4aa80f3 100644
--- a/test/tint/expressions/zero_init/mat2x2/f32.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/expressions/zero_init/mat2x2/f32.wgsl.expected.ir.fxc.hlsl
@@ -1,3 +1,4 @@
+
 void f() {
   float2x2 v = float2x2((0.0f).xx, (0.0f).xx);
 }
diff --git a/test/tint/expressions/zero_init/mat2x3/f16.wgsl.expected.ir.dxc.hlsl b/test/tint/expressions/zero_init/mat2x3/f16.wgsl.expected.ir.dxc.hlsl
index a1d18e0..b3aef5e 100644
--- a/test/tint/expressions/zero_init/mat2x3/f16.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/expressions/zero_init/mat2x3/f16.wgsl.expected.ir.dxc.hlsl
@@ -1,3 +1,4 @@
+
 void f() {
   matrix<float16_t, 2, 3> v = matrix<float16_t, 2, 3>((float16_t(0.0h)).xxx, (float16_t(0.0h)).xxx);
 }
diff --git a/test/tint/expressions/zero_init/mat2x3/f16.wgsl.expected.ir.fxc.hlsl b/test/tint/expressions/zero_init/mat2x3/f16.wgsl.expected.ir.fxc.hlsl
index a1d18e0..3fd74d4 100644
--- a/test/tint/expressions/zero_init/mat2x3/f16.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/expressions/zero_init/mat2x3/f16.wgsl.expected.ir.fxc.hlsl
@@ -1,3 +1,6 @@
+SKIP: FAILED
+
+
 void f() {
   matrix<float16_t, 2, 3> v = matrix<float16_t, 2, 3>((float16_t(0.0h)).xxx, (float16_t(0.0h)).xxx);
 }
@@ -6,3 +9,6 @@
 void unused_entry_point() {
 }
 
+FXC validation failure:
+c:\src\dawn\Shader@0x000001E64D0AE9B0(3,10-18): error X3000: syntax error: unexpected token 'float16_t'
+
diff --git a/test/tint/expressions/zero_init/mat2x3/f32.wgsl.expected.ir.dxc.hlsl b/test/tint/expressions/zero_init/mat2x3/f32.wgsl.expected.ir.dxc.hlsl
index a4c94bc..3d3a3a5 100644
--- a/test/tint/expressions/zero_init/mat2x3/f32.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/expressions/zero_init/mat2x3/f32.wgsl.expected.ir.dxc.hlsl
@@ -1,3 +1,4 @@
+
 void f() {
   float2x3 v = float2x3((0.0f).xxx, (0.0f).xxx);
 }
diff --git a/test/tint/expressions/zero_init/mat2x3/f32.wgsl.expected.ir.fxc.hlsl b/test/tint/expressions/zero_init/mat2x3/f32.wgsl.expected.ir.fxc.hlsl
index a4c94bc..3d3a3a5 100644
--- a/test/tint/expressions/zero_init/mat2x3/f32.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/expressions/zero_init/mat2x3/f32.wgsl.expected.ir.fxc.hlsl
@@ -1,3 +1,4 @@
+
 void f() {
   float2x3 v = float2x3((0.0f).xxx, (0.0f).xxx);
 }
diff --git a/test/tint/expressions/zero_init/mat2x4/f16.wgsl.expected.ir.dxc.hlsl b/test/tint/expressions/zero_init/mat2x4/f16.wgsl.expected.ir.dxc.hlsl
index dbf0ff6..439481f 100644
--- a/test/tint/expressions/zero_init/mat2x4/f16.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/expressions/zero_init/mat2x4/f16.wgsl.expected.ir.dxc.hlsl
@@ -1,3 +1,4 @@
+
 void f() {
   matrix<float16_t, 2, 4> v = matrix<float16_t, 2, 4>((float16_t(0.0h)).xxxx, (float16_t(0.0h)).xxxx);
 }
diff --git a/test/tint/expressions/zero_init/mat2x4/f16.wgsl.expected.ir.fxc.hlsl b/test/tint/expressions/zero_init/mat2x4/f16.wgsl.expected.ir.fxc.hlsl
index dbf0ff6..08b8fda 100644
--- a/test/tint/expressions/zero_init/mat2x4/f16.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/expressions/zero_init/mat2x4/f16.wgsl.expected.ir.fxc.hlsl
@@ -1,3 +1,6 @@
+SKIP: FAILED
+
+
 void f() {
   matrix<float16_t, 2, 4> v = matrix<float16_t, 2, 4>((float16_t(0.0h)).xxxx, (float16_t(0.0h)).xxxx);
 }
@@ -6,3 +9,6 @@
 void unused_entry_point() {
 }
 
+FXC validation failure:
+c:\src\dawn\Shader@0x000002B810BC2CD0(3,10-18): error X3000: syntax error: unexpected token 'float16_t'
+
diff --git a/test/tint/expressions/zero_init/mat2x4/f32.wgsl.expected.ir.dxc.hlsl b/test/tint/expressions/zero_init/mat2x4/f32.wgsl.expected.ir.dxc.hlsl
index c997660..0a39830 100644
--- a/test/tint/expressions/zero_init/mat2x4/f32.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/expressions/zero_init/mat2x4/f32.wgsl.expected.ir.dxc.hlsl
@@ -1,3 +1,4 @@
+
 void f() {
   float2x4 v = float2x4((0.0f).xxxx, (0.0f).xxxx);
 }
diff --git a/test/tint/expressions/zero_init/mat2x4/f32.wgsl.expected.ir.fxc.hlsl b/test/tint/expressions/zero_init/mat2x4/f32.wgsl.expected.ir.fxc.hlsl
index c997660..0a39830 100644
--- a/test/tint/expressions/zero_init/mat2x4/f32.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/expressions/zero_init/mat2x4/f32.wgsl.expected.ir.fxc.hlsl
@@ -1,3 +1,4 @@
+
 void f() {
   float2x4 v = float2x4((0.0f).xxxx, (0.0f).xxxx);
 }
diff --git a/test/tint/expressions/zero_init/mat3x2/f16.wgsl.expected.ir.dxc.hlsl b/test/tint/expressions/zero_init/mat3x2/f16.wgsl.expected.ir.dxc.hlsl
index deefb26..e32a7d5 100644
--- a/test/tint/expressions/zero_init/mat3x2/f16.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/expressions/zero_init/mat3x2/f16.wgsl.expected.ir.dxc.hlsl
@@ -1,3 +1,4 @@
+
 void f() {
   matrix<float16_t, 3, 2> v = matrix<float16_t, 3, 2>((float16_t(0.0h)).xx, (float16_t(0.0h)).xx, (float16_t(0.0h)).xx);
 }
diff --git a/test/tint/expressions/zero_init/mat3x2/f16.wgsl.expected.ir.fxc.hlsl b/test/tint/expressions/zero_init/mat3x2/f16.wgsl.expected.ir.fxc.hlsl
index deefb26..750561b 100644
--- a/test/tint/expressions/zero_init/mat3x2/f16.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/expressions/zero_init/mat3x2/f16.wgsl.expected.ir.fxc.hlsl
@@ -1,3 +1,6 @@
+SKIP: FAILED
+
+
 void f() {
   matrix<float16_t, 3, 2> v = matrix<float16_t, 3, 2>((float16_t(0.0h)).xx, (float16_t(0.0h)).xx, (float16_t(0.0h)).xx);
 }
@@ -6,3 +9,6 @@
 void unused_entry_point() {
 }
 
+FXC validation failure:
+c:\src\dawn\Shader@0x000001CC2E90DC70(3,10-18): error X3000: syntax error: unexpected token 'float16_t'
+
diff --git a/test/tint/expressions/zero_init/mat3x2/f32.wgsl.expected.ir.dxc.hlsl b/test/tint/expressions/zero_init/mat3x2/f32.wgsl.expected.ir.dxc.hlsl
index 9f6ed01..cf3f8c2 100644
--- a/test/tint/expressions/zero_init/mat3x2/f32.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/expressions/zero_init/mat3x2/f32.wgsl.expected.ir.dxc.hlsl
@@ -1,3 +1,4 @@
+
 void f() {
   float3x2 v = float3x2((0.0f).xx, (0.0f).xx, (0.0f).xx);
 }
diff --git a/test/tint/expressions/zero_init/mat3x2/f32.wgsl.expected.ir.fxc.hlsl b/test/tint/expressions/zero_init/mat3x2/f32.wgsl.expected.ir.fxc.hlsl
index 9f6ed01..cf3f8c2 100644
--- a/test/tint/expressions/zero_init/mat3x2/f32.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/expressions/zero_init/mat3x2/f32.wgsl.expected.ir.fxc.hlsl
@@ -1,3 +1,4 @@
+
 void f() {
   float3x2 v = float3x2((0.0f).xx, (0.0f).xx, (0.0f).xx);
 }
diff --git a/test/tint/expressions/zero_init/mat3x3/f16.wgsl.expected.ir.dxc.hlsl b/test/tint/expressions/zero_init/mat3x3/f16.wgsl.expected.ir.dxc.hlsl
index a3b37f1..8be2d9e 100644
--- a/test/tint/expressions/zero_init/mat3x3/f16.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/expressions/zero_init/mat3x3/f16.wgsl.expected.ir.dxc.hlsl
@@ -1,3 +1,4 @@
+
 void f() {
   matrix<float16_t, 3, 3> v = matrix<float16_t, 3, 3>((float16_t(0.0h)).xxx, (float16_t(0.0h)).xxx, (float16_t(0.0h)).xxx);
 }
diff --git a/test/tint/expressions/zero_init/mat3x3/f16.wgsl.expected.ir.fxc.hlsl b/test/tint/expressions/zero_init/mat3x3/f16.wgsl.expected.ir.fxc.hlsl
index a3b37f1..9aa9cbb 100644
--- a/test/tint/expressions/zero_init/mat3x3/f16.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/expressions/zero_init/mat3x3/f16.wgsl.expected.ir.fxc.hlsl
@@ -1,3 +1,6 @@
+SKIP: FAILED
+
+
 void f() {
   matrix<float16_t, 3, 3> v = matrix<float16_t, 3, 3>((float16_t(0.0h)).xxx, (float16_t(0.0h)).xxx, (float16_t(0.0h)).xxx);
 }
@@ -6,3 +9,6 @@
 void unused_entry_point() {
 }
 
+FXC validation failure:
+c:\src\dawn\Shader@0x0000022B6845F1B0(3,10-18): error X3000: syntax error: unexpected token 'float16_t'
+
diff --git a/test/tint/expressions/zero_init/mat3x3/f32.wgsl.expected.ir.dxc.hlsl b/test/tint/expressions/zero_init/mat3x3/f32.wgsl.expected.ir.dxc.hlsl
index e317a4f..3612266 100644
--- a/test/tint/expressions/zero_init/mat3x3/f32.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/expressions/zero_init/mat3x3/f32.wgsl.expected.ir.dxc.hlsl
@@ -1,3 +1,4 @@
+
 void f() {
   float3x3 v = float3x3((0.0f).xxx, (0.0f).xxx, (0.0f).xxx);
 }
diff --git a/test/tint/expressions/zero_init/mat3x3/f32.wgsl.expected.ir.fxc.hlsl b/test/tint/expressions/zero_init/mat3x3/f32.wgsl.expected.ir.fxc.hlsl
index e317a4f..3612266 100644
--- a/test/tint/expressions/zero_init/mat3x3/f32.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/expressions/zero_init/mat3x3/f32.wgsl.expected.ir.fxc.hlsl
@@ -1,3 +1,4 @@
+
 void f() {
   float3x3 v = float3x3((0.0f).xxx, (0.0f).xxx, (0.0f).xxx);
 }
diff --git a/test/tint/expressions/zero_init/mat3x4/f16.wgsl.expected.ir.dxc.hlsl b/test/tint/expressions/zero_init/mat3x4/f16.wgsl.expected.ir.dxc.hlsl
index 64704a4..63d4d2a 100644
--- a/test/tint/expressions/zero_init/mat3x4/f16.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/expressions/zero_init/mat3x4/f16.wgsl.expected.ir.dxc.hlsl
@@ -1,3 +1,4 @@
+
 void f() {
   matrix<float16_t, 3, 4> v = matrix<float16_t, 3, 4>((float16_t(0.0h)).xxxx, (float16_t(0.0h)).xxxx, (float16_t(0.0h)).xxxx);
 }
diff --git a/test/tint/expressions/zero_init/mat3x4/f16.wgsl.expected.ir.fxc.hlsl b/test/tint/expressions/zero_init/mat3x4/f16.wgsl.expected.ir.fxc.hlsl
index 64704a4..4477b0f 100644
--- a/test/tint/expressions/zero_init/mat3x4/f16.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/expressions/zero_init/mat3x4/f16.wgsl.expected.ir.fxc.hlsl
@@ -1,3 +1,6 @@
+SKIP: FAILED
+
+
 void f() {
   matrix<float16_t, 3, 4> v = matrix<float16_t, 3, 4>((float16_t(0.0h)).xxxx, (float16_t(0.0h)).xxxx, (float16_t(0.0h)).xxxx);
 }
@@ -6,3 +9,6 @@
 void unused_entry_point() {
 }
 
+FXC validation failure:
+c:\src\dawn\Shader@0x000001668305E720(3,10-18): error X3000: syntax error: unexpected token 'float16_t'
+
diff --git a/test/tint/expressions/zero_init/mat3x4/f32.wgsl.expected.ir.dxc.hlsl b/test/tint/expressions/zero_init/mat3x4/f32.wgsl.expected.ir.dxc.hlsl
index c921cf4..8e3c5b4 100644
--- a/test/tint/expressions/zero_init/mat3x4/f32.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/expressions/zero_init/mat3x4/f32.wgsl.expected.ir.dxc.hlsl
@@ -1,3 +1,4 @@
+
 void f() {
   float3x4 v = float3x4((0.0f).xxxx, (0.0f).xxxx, (0.0f).xxxx);
 }
diff --git a/test/tint/expressions/zero_init/mat3x4/f32.wgsl.expected.ir.fxc.hlsl b/test/tint/expressions/zero_init/mat3x4/f32.wgsl.expected.ir.fxc.hlsl
index c921cf4..8e3c5b4 100644
--- a/test/tint/expressions/zero_init/mat3x4/f32.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/expressions/zero_init/mat3x4/f32.wgsl.expected.ir.fxc.hlsl
@@ -1,3 +1,4 @@
+
 void f() {
   float3x4 v = float3x4((0.0f).xxxx, (0.0f).xxxx, (0.0f).xxxx);
 }
diff --git a/test/tint/expressions/zero_init/mat4x2/f16.wgsl.expected.ir.dxc.hlsl b/test/tint/expressions/zero_init/mat4x2/f16.wgsl.expected.ir.dxc.hlsl
index 374bdb2..cc4e0a9 100644
--- a/test/tint/expressions/zero_init/mat4x2/f16.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/expressions/zero_init/mat4x2/f16.wgsl.expected.ir.dxc.hlsl
@@ -1,3 +1,4 @@
+
 void f() {
   matrix<float16_t, 4, 2> v = matrix<float16_t, 4, 2>((float16_t(0.0h)).xx, (float16_t(0.0h)).xx, (float16_t(0.0h)).xx, (float16_t(0.0h)).xx);
 }
diff --git a/test/tint/expressions/zero_init/mat4x2/f16.wgsl.expected.ir.fxc.hlsl b/test/tint/expressions/zero_init/mat4x2/f16.wgsl.expected.ir.fxc.hlsl
index 374bdb2..c1a1824 100644
--- a/test/tint/expressions/zero_init/mat4x2/f16.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/expressions/zero_init/mat4x2/f16.wgsl.expected.ir.fxc.hlsl
@@ -1,3 +1,6 @@
+SKIP: FAILED
+
+
 void f() {
   matrix<float16_t, 4, 2> v = matrix<float16_t, 4, 2>((float16_t(0.0h)).xx, (float16_t(0.0h)).xx, (float16_t(0.0h)).xx, (float16_t(0.0h)).xx);
 }
@@ -6,3 +9,6 @@
 void unused_entry_point() {
 }
 
+FXC validation failure:
+c:\src\dawn\Shader@0x000001CC16AC0270(3,10-18): error X3000: syntax error: unexpected token 'float16_t'
+
diff --git a/test/tint/expressions/zero_init/mat4x2/f32.wgsl.expected.ir.dxc.hlsl b/test/tint/expressions/zero_init/mat4x2/f32.wgsl.expected.ir.dxc.hlsl
index 4e98bc4..2c590b3 100644
--- a/test/tint/expressions/zero_init/mat4x2/f32.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/expressions/zero_init/mat4x2/f32.wgsl.expected.ir.dxc.hlsl
@@ -1,3 +1,4 @@
+
 void f() {
   float4x2 v = float4x2((0.0f).xx, (0.0f).xx, (0.0f).xx, (0.0f).xx);
 }
diff --git a/test/tint/expressions/zero_init/mat4x2/f32.wgsl.expected.ir.fxc.hlsl b/test/tint/expressions/zero_init/mat4x2/f32.wgsl.expected.ir.fxc.hlsl
index 4e98bc4..2c590b3 100644
--- a/test/tint/expressions/zero_init/mat4x2/f32.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/expressions/zero_init/mat4x2/f32.wgsl.expected.ir.fxc.hlsl
@@ -1,3 +1,4 @@
+
 void f() {
   float4x2 v = float4x2((0.0f).xx, (0.0f).xx, (0.0f).xx, (0.0f).xx);
 }
diff --git a/test/tint/expressions/zero_init/mat4x3/f16.wgsl.expected.ir.dxc.hlsl b/test/tint/expressions/zero_init/mat4x3/f16.wgsl.expected.ir.dxc.hlsl
index a51bed3..dd0762d 100644
--- a/test/tint/expressions/zero_init/mat4x3/f16.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/expressions/zero_init/mat4x3/f16.wgsl.expected.ir.dxc.hlsl
@@ -1,3 +1,4 @@
+
 void f() {
   matrix<float16_t, 4, 3> v = matrix<float16_t, 4, 3>((float16_t(0.0h)).xxx, (float16_t(0.0h)).xxx, (float16_t(0.0h)).xxx, (float16_t(0.0h)).xxx);
 }
diff --git a/test/tint/expressions/zero_init/mat4x3/f16.wgsl.expected.ir.fxc.hlsl b/test/tint/expressions/zero_init/mat4x3/f16.wgsl.expected.ir.fxc.hlsl
index a51bed3..83aab97 100644
--- a/test/tint/expressions/zero_init/mat4x3/f16.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/expressions/zero_init/mat4x3/f16.wgsl.expected.ir.fxc.hlsl
@@ -1,3 +1,6 @@
+SKIP: FAILED
+
+
 void f() {
   matrix<float16_t, 4, 3> v = matrix<float16_t, 4, 3>((float16_t(0.0h)).xxx, (float16_t(0.0h)).xxx, (float16_t(0.0h)).xxx, (float16_t(0.0h)).xxx);
 }
@@ -6,3 +9,6 @@
 void unused_entry_point() {
 }
 
+FXC validation failure:
+c:\src\dawn\Shader@0x00000284242D01E0(3,10-18): error X3000: syntax error: unexpected token 'float16_t'
+
diff --git a/test/tint/expressions/zero_init/mat4x3/f32.wgsl.expected.ir.dxc.hlsl b/test/tint/expressions/zero_init/mat4x3/f32.wgsl.expected.ir.dxc.hlsl
index 0ad0ff4..af95e6d 100644
--- a/test/tint/expressions/zero_init/mat4x3/f32.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/expressions/zero_init/mat4x3/f32.wgsl.expected.ir.dxc.hlsl
@@ -1,3 +1,4 @@
+
 void f() {
   float4x3 v = float4x3((0.0f).xxx, (0.0f).xxx, (0.0f).xxx, (0.0f).xxx);
 }
diff --git a/test/tint/expressions/zero_init/mat4x3/f32.wgsl.expected.ir.fxc.hlsl b/test/tint/expressions/zero_init/mat4x3/f32.wgsl.expected.ir.fxc.hlsl
index 0ad0ff4..af95e6d 100644
--- a/test/tint/expressions/zero_init/mat4x3/f32.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/expressions/zero_init/mat4x3/f32.wgsl.expected.ir.fxc.hlsl
@@ -1,3 +1,4 @@
+
 void f() {
   float4x3 v = float4x3((0.0f).xxx, (0.0f).xxx, (0.0f).xxx, (0.0f).xxx);
 }
diff --git a/test/tint/expressions/zero_init/mat4x4/f16.wgsl.expected.ir.dxc.hlsl b/test/tint/expressions/zero_init/mat4x4/f16.wgsl.expected.ir.dxc.hlsl
index 3076468..0103297 100644
--- a/test/tint/expressions/zero_init/mat4x4/f16.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/expressions/zero_init/mat4x4/f16.wgsl.expected.ir.dxc.hlsl
@@ -1,3 +1,4 @@
+
 void f() {
   matrix<float16_t, 4, 4> v = matrix<float16_t, 4, 4>((float16_t(0.0h)).xxxx, (float16_t(0.0h)).xxxx, (float16_t(0.0h)).xxxx, (float16_t(0.0h)).xxxx);
 }
diff --git a/test/tint/expressions/zero_init/mat4x4/f16.wgsl.expected.ir.fxc.hlsl b/test/tint/expressions/zero_init/mat4x4/f16.wgsl.expected.ir.fxc.hlsl
index 3076468..472a478 100644
--- a/test/tint/expressions/zero_init/mat4x4/f16.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/expressions/zero_init/mat4x4/f16.wgsl.expected.ir.fxc.hlsl
@@ -1,3 +1,6 @@
+SKIP: FAILED
+
+
 void f() {
   matrix<float16_t, 4, 4> v = matrix<float16_t, 4, 4>((float16_t(0.0h)).xxxx, (float16_t(0.0h)).xxxx, (float16_t(0.0h)).xxxx, (float16_t(0.0h)).xxxx);
 }
@@ -6,3 +9,6 @@
 void unused_entry_point() {
 }
 
+FXC validation failure:
+c:\src\dawn\Shader@0x0000026A11D70280(3,10-18): error X3000: syntax error: unexpected token 'float16_t'
+
diff --git a/test/tint/expressions/zero_init/mat4x4/f32.wgsl.expected.ir.dxc.hlsl b/test/tint/expressions/zero_init/mat4x4/f32.wgsl.expected.ir.dxc.hlsl
index e8b38d9..04e7f59 100644
--- a/test/tint/expressions/zero_init/mat4x4/f32.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/expressions/zero_init/mat4x4/f32.wgsl.expected.ir.dxc.hlsl
@@ -1,3 +1,4 @@
+
 void f() {
   float4x4 v = float4x4((0.0f).xxxx, (0.0f).xxxx, (0.0f).xxxx, (0.0f).xxxx);
 }
diff --git a/test/tint/expressions/zero_init/mat4x4/f32.wgsl.expected.ir.fxc.hlsl b/test/tint/expressions/zero_init/mat4x4/f32.wgsl.expected.ir.fxc.hlsl
index e8b38d9..04e7f59 100644
--- a/test/tint/expressions/zero_init/mat4x4/f32.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/expressions/zero_init/mat4x4/f32.wgsl.expected.ir.fxc.hlsl
@@ -1,3 +1,4 @@
+
 void f() {
   float4x4 v = float4x4((0.0f).xxxx, (0.0f).xxxx, (0.0f).xxxx, (0.0f).xxxx);
 }
diff --git a/test/tint/expressions/zero_init/scalar/bool.wgsl.expected.ir.dxc.hlsl b/test/tint/expressions/zero_init/scalar/bool.wgsl.expected.ir.dxc.hlsl
index 6fdd166..71ad0a8 100644
--- a/test/tint/expressions/zero_init/scalar/bool.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/expressions/zero_init/scalar/bool.wgsl.expected.ir.dxc.hlsl
@@ -1,3 +1,4 @@
+
 void f() {
   bool v = false;
 }
diff --git a/test/tint/expressions/zero_init/scalar/bool.wgsl.expected.ir.fxc.hlsl b/test/tint/expressions/zero_init/scalar/bool.wgsl.expected.ir.fxc.hlsl
index 6fdd166..71ad0a8 100644
--- a/test/tint/expressions/zero_init/scalar/bool.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/expressions/zero_init/scalar/bool.wgsl.expected.ir.fxc.hlsl
@@ -1,3 +1,4 @@
+
 void f() {
   bool v = false;
 }
diff --git a/test/tint/expressions/zero_init/scalar/f16.wgsl.expected.ir.dxc.hlsl b/test/tint/expressions/zero_init/scalar/f16.wgsl.expected.ir.dxc.hlsl
index 9805cd9..a801984 100644
--- a/test/tint/expressions/zero_init/scalar/f16.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/expressions/zero_init/scalar/f16.wgsl.expected.ir.dxc.hlsl
@@ -1,3 +1,4 @@
+
 void f() {
   float16_t v = float16_t(0.0h);
 }
diff --git a/test/tint/expressions/zero_init/scalar/f16.wgsl.expected.ir.fxc.hlsl b/test/tint/expressions/zero_init/scalar/f16.wgsl.expected.ir.fxc.hlsl
index 9805cd9..9517c4c 100644
--- a/test/tint/expressions/zero_init/scalar/f16.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/expressions/zero_init/scalar/f16.wgsl.expected.ir.fxc.hlsl
@@ -1,3 +1,6 @@
+SKIP: FAILED
+
+
 void f() {
   float16_t v = float16_t(0.0h);
 }
@@ -6,3 +9,7 @@
 void unused_entry_point() {
 }
 
+FXC validation failure:
+c:\src\dawn\Shader@0x0000014437E6F890(3,3-11): error X3000: unrecognized identifier 'float16_t'
+c:\src\dawn\Shader@0x0000014437E6F890(3,13): error X3000: unrecognized identifier 'v'
+
diff --git a/test/tint/expressions/zero_init/scalar/f32.wgsl.expected.ir.dxc.hlsl b/test/tint/expressions/zero_init/scalar/f32.wgsl.expected.ir.dxc.hlsl
index 44d2e12..5bf2d04 100644
--- a/test/tint/expressions/zero_init/scalar/f32.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/expressions/zero_init/scalar/f32.wgsl.expected.ir.dxc.hlsl
@@ -1,3 +1,4 @@
+
 void f() {
   float v = 0.0f;
 }
diff --git a/test/tint/expressions/zero_init/scalar/f32.wgsl.expected.ir.fxc.hlsl b/test/tint/expressions/zero_init/scalar/f32.wgsl.expected.ir.fxc.hlsl
index 44d2e12..5bf2d04 100644
--- a/test/tint/expressions/zero_init/scalar/f32.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/expressions/zero_init/scalar/f32.wgsl.expected.ir.fxc.hlsl
@@ -1,3 +1,4 @@
+
 void f() {
   float v = 0.0f;
 }
diff --git a/test/tint/expressions/zero_init/scalar/i32.wgsl.expected.ir.dxc.hlsl b/test/tint/expressions/zero_init/scalar/i32.wgsl.expected.ir.dxc.hlsl
index d553e3d..f69e659 100644
--- a/test/tint/expressions/zero_init/scalar/i32.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/expressions/zero_init/scalar/i32.wgsl.expected.ir.dxc.hlsl
@@ -1,3 +1,4 @@
+
 void f() {
   int v = 0;
 }
diff --git a/test/tint/expressions/zero_init/scalar/i32.wgsl.expected.ir.fxc.hlsl b/test/tint/expressions/zero_init/scalar/i32.wgsl.expected.ir.fxc.hlsl
index d553e3d..f69e659 100644
--- a/test/tint/expressions/zero_init/scalar/i32.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/expressions/zero_init/scalar/i32.wgsl.expected.ir.fxc.hlsl
@@ -1,3 +1,4 @@
+
 void f() {
   int v = 0;
 }
diff --git a/test/tint/expressions/zero_init/scalar/u32.wgsl.expected.ir.dxc.hlsl b/test/tint/expressions/zero_init/scalar/u32.wgsl.expected.ir.dxc.hlsl
index 6f3e2f8..fc614c5 100644
--- a/test/tint/expressions/zero_init/scalar/u32.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/expressions/zero_init/scalar/u32.wgsl.expected.ir.dxc.hlsl
@@ -1,3 +1,4 @@
+
 void f() {
   uint v = 0u;
 }
diff --git a/test/tint/expressions/zero_init/scalar/u32.wgsl.expected.ir.fxc.hlsl b/test/tint/expressions/zero_init/scalar/u32.wgsl.expected.ir.fxc.hlsl
index 6f3e2f8..fc614c5 100644
--- a/test/tint/expressions/zero_init/scalar/u32.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/expressions/zero_init/scalar/u32.wgsl.expected.ir.fxc.hlsl
@@ -1,3 +1,4 @@
+
 void f() {
   uint v = 0u;
 }
diff --git a/test/tint/expressions/zero_init/struct/array.wgsl.expected.ir.dxc.hlsl b/test/tint/expressions/zero_init/struct/array.wgsl.expected.ir.dxc.hlsl
index 0ba40c6..f17fba1 100644
--- a/test/tint/expressions/zero_init/struct/array.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/expressions/zero_init/struct/array.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,13 @@
-SKIP: FAILED
+struct S {
+  float a[4];
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+
+void f() {
+  S v = (S)0;
+}
+
+[numthreads(1, 1, 1)]
+void unused_entry_point() {
+}
+
diff --git a/test/tint/expressions/zero_init/struct/array.wgsl.expected.ir.fxc.hlsl b/test/tint/expressions/zero_init/struct/array.wgsl.expected.ir.fxc.hlsl
index 0ba40c6..f17fba1 100644
--- a/test/tint/expressions/zero_init/struct/array.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/expressions/zero_init/struct/array.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,13 @@
-SKIP: FAILED
+struct S {
+  float a[4];
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+
+void f() {
+  S v = (S)0;
+}
+
+[numthreads(1, 1, 1)]
+void unused_entry_point() {
+}
+
diff --git a/test/tint/expressions/zero_init/struct/scalar.wgsl.expected.ir.dxc.hlsl b/test/tint/expressions/zero_init/struct/scalar.wgsl.expected.ir.dxc.hlsl
index 0ba40c6..ac27b0f 100644
--- a/test/tint/expressions/zero_init/struct/scalar.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/expressions/zero_init/struct/scalar.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,16 @@
-SKIP: FAILED
+struct S {
+  int i;
+  uint u;
+  float f;
+  bool b;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+
+void f() {
+  S v = (S)0;
+}
+
+[numthreads(1, 1, 1)]
+void unused_entry_point() {
+}
+
diff --git a/test/tint/expressions/zero_init/struct/scalar.wgsl.expected.ir.fxc.hlsl b/test/tint/expressions/zero_init/struct/scalar.wgsl.expected.ir.fxc.hlsl
index 0ba40c6..ac27b0f 100644
--- a/test/tint/expressions/zero_init/struct/scalar.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/expressions/zero_init/struct/scalar.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,16 @@
-SKIP: FAILED
+struct S {
+  int i;
+  uint u;
+  float f;
+  bool b;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+
+void f() {
+  S v = (S)0;
+}
+
+[numthreads(1, 1, 1)]
+void unused_entry_point() {
+}
+
diff --git a/test/tint/expressions/zero_init/vec2/bool.wgsl.expected.ir.dxc.hlsl b/test/tint/expressions/zero_init/vec2/bool.wgsl.expected.ir.dxc.hlsl
index d11813f..1e537de 100644
--- a/test/tint/expressions/zero_init/vec2/bool.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/expressions/zero_init/vec2/bool.wgsl.expected.ir.dxc.hlsl
@@ -1,3 +1,4 @@
+
 void f() {
   bool2 v = (false).xx;
 }
diff --git a/test/tint/expressions/zero_init/vec2/bool.wgsl.expected.ir.fxc.hlsl b/test/tint/expressions/zero_init/vec2/bool.wgsl.expected.ir.fxc.hlsl
index d11813f..1e537de 100644
--- a/test/tint/expressions/zero_init/vec2/bool.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/expressions/zero_init/vec2/bool.wgsl.expected.ir.fxc.hlsl
@@ -1,3 +1,4 @@
+
 void f() {
   bool2 v = (false).xx;
 }
diff --git a/test/tint/expressions/zero_init/vec2/f16.wgsl.expected.ir.dxc.hlsl b/test/tint/expressions/zero_init/vec2/f16.wgsl.expected.ir.dxc.hlsl
index ed33991..ac2ee43 100644
--- a/test/tint/expressions/zero_init/vec2/f16.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/expressions/zero_init/vec2/f16.wgsl.expected.ir.dxc.hlsl
@@ -1,3 +1,4 @@
+
 void f() {
   vector<float16_t, 2> v = (float16_t(0.0h)).xx;
 }
diff --git a/test/tint/expressions/zero_init/vec2/f16.wgsl.expected.ir.fxc.hlsl b/test/tint/expressions/zero_init/vec2/f16.wgsl.expected.ir.fxc.hlsl
index ed33991..6ed6480 100644
--- a/test/tint/expressions/zero_init/vec2/f16.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/expressions/zero_init/vec2/f16.wgsl.expected.ir.fxc.hlsl
@@ -1,3 +1,6 @@
+SKIP: FAILED
+
+
 void f() {
   vector<float16_t, 2> v = (float16_t(0.0h)).xx;
 }
@@ -6,3 +9,6 @@
 void unused_entry_point() {
 }
 
+FXC validation failure:
+c:\src\dawn\Shader@0x0000017D974812F0(3,10-18): error X3000: syntax error: unexpected token 'float16_t'
+
diff --git a/test/tint/expressions/zero_init/vec2/f32.wgsl.expected.ir.dxc.hlsl b/test/tint/expressions/zero_init/vec2/f32.wgsl.expected.ir.dxc.hlsl
index f352c05..24ea5b6 100644
--- a/test/tint/expressions/zero_init/vec2/f32.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/expressions/zero_init/vec2/f32.wgsl.expected.ir.dxc.hlsl
@@ -1,3 +1,4 @@
+
 void f() {
   float2 v = (0.0f).xx;
 }
diff --git a/test/tint/expressions/zero_init/vec2/f32.wgsl.expected.ir.fxc.hlsl b/test/tint/expressions/zero_init/vec2/f32.wgsl.expected.ir.fxc.hlsl
index f352c05..24ea5b6 100644
--- a/test/tint/expressions/zero_init/vec2/f32.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/expressions/zero_init/vec2/f32.wgsl.expected.ir.fxc.hlsl
@@ -1,3 +1,4 @@
+
 void f() {
   float2 v = (0.0f).xx;
 }
diff --git a/test/tint/expressions/zero_init/vec2/i32.wgsl.expected.ir.dxc.hlsl b/test/tint/expressions/zero_init/vec2/i32.wgsl.expected.ir.dxc.hlsl
index d98cb58..68281d4 100644
--- a/test/tint/expressions/zero_init/vec2/i32.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/expressions/zero_init/vec2/i32.wgsl.expected.ir.dxc.hlsl
@@ -1,3 +1,4 @@
+
 void f() {
   int2 v = (0).xx;
 }
diff --git a/test/tint/expressions/zero_init/vec2/i32.wgsl.expected.ir.fxc.hlsl b/test/tint/expressions/zero_init/vec2/i32.wgsl.expected.ir.fxc.hlsl
index d98cb58..68281d4 100644
--- a/test/tint/expressions/zero_init/vec2/i32.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/expressions/zero_init/vec2/i32.wgsl.expected.ir.fxc.hlsl
@@ -1,3 +1,4 @@
+
 void f() {
   int2 v = (0).xx;
 }
diff --git a/test/tint/expressions/zero_init/vec2/u32.wgsl.expected.ir.dxc.hlsl b/test/tint/expressions/zero_init/vec2/u32.wgsl.expected.ir.dxc.hlsl
index a844d2c..7dbc846 100644
--- a/test/tint/expressions/zero_init/vec2/u32.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/expressions/zero_init/vec2/u32.wgsl.expected.ir.dxc.hlsl
@@ -1,3 +1,4 @@
+
 void f() {
   uint2 v = (0u).xx;
 }
diff --git a/test/tint/expressions/zero_init/vec2/u32.wgsl.expected.ir.fxc.hlsl b/test/tint/expressions/zero_init/vec2/u32.wgsl.expected.ir.fxc.hlsl
index a844d2c..7dbc846 100644
--- a/test/tint/expressions/zero_init/vec2/u32.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/expressions/zero_init/vec2/u32.wgsl.expected.ir.fxc.hlsl
@@ -1,3 +1,4 @@
+
 void f() {
   uint2 v = (0u).xx;
 }
diff --git a/test/tint/expressions/zero_init/vec3/bool.wgsl.expected.ir.dxc.hlsl b/test/tint/expressions/zero_init/vec3/bool.wgsl.expected.ir.dxc.hlsl
index 10102b1..f939f70 100644
--- a/test/tint/expressions/zero_init/vec3/bool.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/expressions/zero_init/vec3/bool.wgsl.expected.ir.dxc.hlsl
@@ -1,3 +1,4 @@
+
 void f() {
   bool3 v = (false).xxx;
 }
diff --git a/test/tint/expressions/zero_init/vec3/bool.wgsl.expected.ir.fxc.hlsl b/test/tint/expressions/zero_init/vec3/bool.wgsl.expected.ir.fxc.hlsl
index 10102b1..f939f70 100644
--- a/test/tint/expressions/zero_init/vec3/bool.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/expressions/zero_init/vec3/bool.wgsl.expected.ir.fxc.hlsl
@@ -1,3 +1,4 @@
+
 void f() {
   bool3 v = (false).xxx;
 }
diff --git a/test/tint/expressions/zero_init/vec3/f16.wgsl.expected.ir.dxc.hlsl b/test/tint/expressions/zero_init/vec3/f16.wgsl.expected.ir.dxc.hlsl
index a116307..fa7bec6 100644
--- a/test/tint/expressions/zero_init/vec3/f16.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/expressions/zero_init/vec3/f16.wgsl.expected.ir.dxc.hlsl
@@ -1,3 +1,4 @@
+
 void f() {
   vector<float16_t, 3> v = (float16_t(0.0h)).xxx;
 }
diff --git a/test/tint/expressions/zero_init/vec3/f16.wgsl.expected.ir.fxc.hlsl b/test/tint/expressions/zero_init/vec3/f16.wgsl.expected.ir.fxc.hlsl
index a116307..b6fb351 100644
--- a/test/tint/expressions/zero_init/vec3/f16.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/expressions/zero_init/vec3/f16.wgsl.expected.ir.fxc.hlsl
@@ -1,3 +1,6 @@
+SKIP: FAILED
+
+
 void f() {
   vector<float16_t, 3> v = (float16_t(0.0h)).xxx;
 }
@@ -6,3 +9,6 @@
 void unused_entry_point() {
 }
 
+FXC validation failure:
+c:\src\dawn\Shader@0x000001EFB9045270(3,10-18): error X3000: syntax error: unexpected token 'float16_t'
+
diff --git a/test/tint/expressions/zero_init/vec3/f32.wgsl.expected.ir.dxc.hlsl b/test/tint/expressions/zero_init/vec3/f32.wgsl.expected.ir.dxc.hlsl
index 2dc4d8a..e78de15 100644
--- a/test/tint/expressions/zero_init/vec3/f32.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/expressions/zero_init/vec3/f32.wgsl.expected.ir.dxc.hlsl
@@ -1,3 +1,4 @@
+
 void f() {
   float3 v = (0.0f).xxx;
 }
diff --git a/test/tint/expressions/zero_init/vec3/f32.wgsl.expected.ir.fxc.hlsl b/test/tint/expressions/zero_init/vec3/f32.wgsl.expected.ir.fxc.hlsl
index 2dc4d8a..e78de15 100644
--- a/test/tint/expressions/zero_init/vec3/f32.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/expressions/zero_init/vec3/f32.wgsl.expected.ir.fxc.hlsl
@@ -1,3 +1,4 @@
+
 void f() {
   float3 v = (0.0f).xxx;
 }
diff --git a/test/tint/expressions/zero_init/vec3/i32.wgsl.expected.ir.dxc.hlsl b/test/tint/expressions/zero_init/vec3/i32.wgsl.expected.ir.dxc.hlsl
index 6aaa1dd..bae4171 100644
--- a/test/tint/expressions/zero_init/vec3/i32.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/expressions/zero_init/vec3/i32.wgsl.expected.ir.dxc.hlsl
@@ -1,3 +1,4 @@
+
 void f() {
   int3 v = (0).xxx;
 }
diff --git a/test/tint/expressions/zero_init/vec3/i32.wgsl.expected.ir.fxc.hlsl b/test/tint/expressions/zero_init/vec3/i32.wgsl.expected.ir.fxc.hlsl
index 6aaa1dd..bae4171 100644
--- a/test/tint/expressions/zero_init/vec3/i32.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/expressions/zero_init/vec3/i32.wgsl.expected.ir.fxc.hlsl
@@ -1,3 +1,4 @@
+
 void f() {
   int3 v = (0).xxx;
 }
diff --git a/test/tint/expressions/zero_init/vec3/u32.wgsl.expected.ir.dxc.hlsl b/test/tint/expressions/zero_init/vec3/u32.wgsl.expected.ir.dxc.hlsl
index df84979..d8f84fe 100644
--- a/test/tint/expressions/zero_init/vec3/u32.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/expressions/zero_init/vec3/u32.wgsl.expected.ir.dxc.hlsl
@@ -1,3 +1,4 @@
+
 void f() {
   uint3 v = (0u).xxx;
 }
diff --git a/test/tint/expressions/zero_init/vec3/u32.wgsl.expected.ir.fxc.hlsl b/test/tint/expressions/zero_init/vec3/u32.wgsl.expected.ir.fxc.hlsl
index df84979..d8f84fe 100644
--- a/test/tint/expressions/zero_init/vec3/u32.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/expressions/zero_init/vec3/u32.wgsl.expected.ir.fxc.hlsl
@@ -1,3 +1,4 @@
+
 void f() {
   uint3 v = (0u).xxx;
 }
diff --git a/test/tint/expressions/zero_init/vec4/bool.wgsl.expected.ir.dxc.hlsl b/test/tint/expressions/zero_init/vec4/bool.wgsl.expected.ir.dxc.hlsl
index a45eb54..f7a17ce 100644
--- a/test/tint/expressions/zero_init/vec4/bool.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/expressions/zero_init/vec4/bool.wgsl.expected.ir.dxc.hlsl
@@ -1,3 +1,4 @@
+
 void f() {
   bool4 v = (false).xxxx;
 }
diff --git a/test/tint/expressions/zero_init/vec4/bool.wgsl.expected.ir.fxc.hlsl b/test/tint/expressions/zero_init/vec4/bool.wgsl.expected.ir.fxc.hlsl
index a45eb54..f7a17ce 100644
--- a/test/tint/expressions/zero_init/vec4/bool.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/expressions/zero_init/vec4/bool.wgsl.expected.ir.fxc.hlsl
@@ -1,3 +1,4 @@
+
 void f() {
   bool4 v = (false).xxxx;
 }
diff --git a/test/tint/expressions/zero_init/vec4/f16.wgsl.expected.ir.dxc.hlsl b/test/tint/expressions/zero_init/vec4/f16.wgsl.expected.ir.dxc.hlsl
index 2c0cce8..b764f2b 100644
--- a/test/tint/expressions/zero_init/vec4/f16.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/expressions/zero_init/vec4/f16.wgsl.expected.ir.dxc.hlsl
@@ -1,3 +1,4 @@
+
 void f() {
   vector<float16_t, 4> v = (float16_t(0.0h)).xxxx;
 }
diff --git a/test/tint/expressions/zero_init/vec4/f16.wgsl.expected.ir.fxc.hlsl b/test/tint/expressions/zero_init/vec4/f16.wgsl.expected.ir.fxc.hlsl
index 2c0cce8..525923e 100644
--- a/test/tint/expressions/zero_init/vec4/f16.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/expressions/zero_init/vec4/f16.wgsl.expected.ir.fxc.hlsl
@@ -1,3 +1,6 @@
+SKIP: FAILED
+
+
 void f() {
   vector<float16_t, 4> v = (float16_t(0.0h)).xxxx;
 }
@@ -6,3 +9,6 @@
 void unused_entry_point() {
 }
 
+FXC validation failure:
+c:\src\dawn\Shader@0x0000022DA59C2100(3,10-18): error X3000: syntax error: unexpected token 'float16_t'
+
diff --git a/test/tint/expressions/zero_init/vec4/f32.wgsl.expected.ir.dxc.hlsl b/test/tint/expressions/zero_init/vec4/f32.wgsl.expected.ir.dxc.hlsl
index 00d58ec..b811023 100644
--- a/test/tint/expressions/zero_init/vec4/f32.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/expressions/zero_init/vec4/f32.wgsl.expected.ir.dxc.hlsl
@@ -1,3 +1,4 @@
+
 void f() {
   float4 v = (0.0f).xxxx;
 }
diff --git a/test/tint/expressions/zero_init/vec4/f32.wgsl.expected.ir.fxc.hlsl b/test/tint/expressions/zero_init/vec4/f32.wgsl.expected.ir.fxc.hlsl
index 00d58ec..b811023 100644
--- a/test/tint/expressions/zero_init/vec4/f32.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/expressions/zero_init/vec4/f32.wgsl.expected.ir.fxc.hlsl
@@ -1,3 +1,4 @@
+
 void f() {
   float4 v = (0.0f).xxxx;
 }
diff --git a/test/tint/expressions/zero_init/vec4/i32.wgsl.expected.ir.dxc.hlsl b/test/tint/expressions/zero_init/vec4/i32.wgsl.expected.ir.dxc.hlsl
index 0881d7e..0a7d34e 100644
--- a/test/tint/expressions/zero_init/vec4/i32.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/expressions/zero_init/vec4/i32.wgsl.expected.ir.dxc.hlsl
@@ -1,3 +1,4 @@
+
 void f() {
   int4 v = (0).xxxx;
 }
diff --git a/test/tint/expressions/zero_init/vec4/i32.wgsl.expected.ir.fxc.hlsl b/test/tint/expressions/zero_init/vec4/i32.wgsl.expected.ir.fxc.hlsl
index 0881d7e..0a7d34e 100644
--- a/test/tint/expressions/zero_init/vec4/i32.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/expressions/zero_init/vec4/i32.wgsl.expected.ir.fxc.hlsl
@@ -1,3 +1,4 @@
+
 void f() {
   int4 v = (0).xxxx;
 }
diff --git a/test/tint/expressions/zero_init/vec4/u32.wgsl.expected.ir.dxc.hlsl b/test/tint/expressions/zero_init/vec4/u32.wgsl.expected.ir.dxc.hlsl
index 4c6d921..e28a545 100644
--- a/test/tint/expressions/zero_init/vec4/u32.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/expressions/zero_init/vec4/u32.wgsl.expected.ir.dxc.hlsl
@@ -1,3 +1,4 @@
+
 void f() {
   uint4 v = (0u).xxxx;
 }
diff --git a/test/tint/expressions/zero_init/vec4/u32.wgsl.expected.ir.fxc.hlsl b/test/tint/expressions/zero_init/vec4/u32.wgsl.expected.ir.fxc.hlsl
index 4c6d921..e28a545 100644
--- a/test/tint/expressions/zero_init/vec4/u32.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/expressions/zero_init/vec4/u32.wgsl.expected.ir.fxc.hlsl
@@ -1,3 +1,4 @@
+
 void f() {
   uint4 v = (0u).xxxx;
 }
diff --git a/test/tint/extensions/dual_source_blending/input_output.wgsl.expected.ir.dxc.hlsl b/test/tint/extensions/dual_source_blending/input_output.wgsl.expected.ir.dxc.hlsl
index 0ba40c6..48f330c 100644
--- a/test/tint/extensions/dual_source_blending/input_output.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/extensions/dual_source_blending/input_output.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,38 @@
-SKIP: FAILED
+struct FragOutput {
+  float4 color;
+  float4 blend;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct FragInput {
+  float4 a;
+  float4 b;
+};
+
+struct frag_main_outputs {
+  float4 FragOutput_color : SV_Target0;
+  float4 FragOutput_blend : SV_Target1;
+};
+
+struct frag_main_inputs {
+  float4 FragInput_a : TEXCOORD0;
+  float4 FragInput_b : TEXCOORD1;
+};
+
+
+FragOutput frag_main_inner(FragInput tint_symbol) {
+  FragOutput output = (FragOutput)0;
+  output.color = tint_symbol.a;
+  output.blend = tint_symbol.b;
+  FragOutput v = output;
+  return v;
+}
+
+frag_main_outputs frag_main(frag_main_inputs inputs) {
+  FragInput v_1 = {inputs.FragInput_a, inputs.FragInput_b};
+  FragOutput v_2 = frag_main_inner(v_1);
+  FragOutput v_3 = v_2;
+  FragOutput v_4 = v_2;
+  frag_main_outputs v_5 = {v_3.color, v_4.blend};
+  return v_5;
+}
+
diff --git a/test/tint/extensions/dual_source_blending/input_output.wgsl.expected.ir.fxc.hlsl b/test/tint/extensions/dual_source_blending/input_output.wgsl.expected.ir.fxc.hlsl
index 0ba40c6..48f330c 100644
--- a/test/tint/extensions/dual_source_blending/input_output.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/extensions/dual_source_blending/input_output.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,38 @@
-SKIP: FAILED
+struct FragOutput {
+  float4 color;
+  float4 blend;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct FragInput {
+  float4 a;
+  float4 b;
+};
+
+struct frag_main_outputs {
+  float4 FragOutput_color : SV_Target0;
+  float4 FragOutput_blend : SV_Target1;
+};
+
+struct frag_main_inputs {
+  float4 FragInput_a : TEXCOORD0;
+  float4 FragInput_b : TEXCOORD1;
+};
+
+
+FragOutput frag_main_inner(FragInput tint_symbol) {
+  FragOutput output = (FragOutput)0;
+  output.color = tint_symbol.a;
+  output.blend = tint_symbol.b;
+  FragOutput v = output;
+  return v;
+}
+
+frag_main_outputs frag_main(frag_main_inputs inputs) {
+  FragInput v_1 = {inputs.FragInput_a, inputs.FragInput_b};
+  FragOutput v_2 = frag_main_inner(v_1);
+  FragOutput v_3 = v_2;
+  FragOutput v_4 = v_2;
+  frag_main_outputs v_5 = {v_3.color, v_4.blend};
+  return v_5;
+}
+
diff --git a/test/tint/extensions/dual_source_blending/output.wgsl.expected.ir.dxc.hlsl b/test/tint/extensions/dual_source_blending/output.wgsl.expected.ir.dxc.hlsl
index 0ba40c6..747ebb1 100644
--- a/test/tint/extensions/dual_source_blending/output.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/extensions/dual_source_blending/output.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,27 @@
-SKIP: FAILED
+struct FragOutput {
+  float4 color;
+  float4 blend;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct frag_main_outputs {
+  float4 FragOutput_color : SV_Target0;
+  float4 FragOutput_blend : SV_Target1;
+};
+
+
+FragOutput frag_main_inner() {
+  FragOutput output = (FragOutput)0;
+  output.color = float4(0.5f, 0.5f, 0.5f, 1.0f);
+  output.blend = float4(0.5f, 0.5f, 0.5f, 1.0f);
+  FragOutput v = output;
+  return v;
+}
+
+frag_main_outputs frag_main() {
+  FragOutput v_1 = frag_main_inner();
+  FragOutput v_2 = v_1;
+  FragOutput v_3 = v_1;
+  frag_main_outputs v_4 = {v_2.color, v_3.blend};
+  return v_4;
+}
+
diff --git a/test/tint/extensions/dual_source_blending/output.wgsl.expected.ir.fxc.hlsl b/test/tint/extensions/dual_source_blending/output.wgsl.expected.ir.fxc.hlsl
index 0ba40c6..747ebb1 100644
--- a/test/tint/extensions/dual_source_blending/output.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/extensions/dual_source_blending/output.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,27 @@
-SKIP: FAILED
+struct FragOutput {
+  float4 color;
+  float4 blend;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct frag_main_outputs {
+  float4 FragOutput_color : SV_Target0;
+  float4 FragOutput_blend : SV_Target1;
+};
+
+
+FragOutput frag_main_inner() {
+  FragOutput output = (FragOutput)0;
+  output.color = float4(0.5f, 0.5f, 0.5f, 1.0f);
+  output.blend = float4(0.5f, 0.5f, 0.5f, 1.0f);
+  FragOutput v = output;
+  return v;
+}
+
+frag_main_outputs frag_main() {
+  FragOutput v_1 = frag_main_inner();
+  FragOutput v_2 = v_1;
+  FragOutput v_3 = v_1;
+  frag_main_outputs v_4 = {v_2.color, v_3.blend};
+  return v_4;
+}
+
diff --git a/test/tint/extensions/parsing/basic.wgsl.expected.ir.dxc.hlsl b/test/tint/extensions/parsing/basic.wgsl.expected.ir.dxc.hlsl
index 8a29b44..4cfb4ce 100644
--- a/test/tint/extensions/parsing/basic.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/extensions/parsing/basic.wgsl.expected.ir.dxc.hlsl
@@ -1,11 +1,14 @@
-SKIP: FAILED
+struct main_outputs {
+  float4 tint_symbol : SV_Target0;
+};
 
-float4 main() {
+
+float4 main_inner() {
   return float4(0.10000000149011611938f, 0.20000000298023223877f, 0.30000001192092895508f, 0.40000000596046447754f);
 }
 
-DXC validation failure:
-hlsl.hlsl:1:1: error: Semantic must be defined for all outputs of an entry function or patch constant function
-float4 main() {
-^
+main_outputs main() {
+  main_outputs v = {main_inner()};
+  return v;
+}
 
diff --git a/test/tint/extensions/parsing/basic.wgsl.expected.ir.fxc.hlsl b/test/tint/extensions/parsing/basic.wgsl.expected.ir.fxc.hlsl
index 7a40f36..4cfb4ce 100644
--- a/test/tint/extensions/parsing/basic.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/extensions/parsing/basic.wgsl.expected.ir.fxc.hlsl
@@ -1,4 +1,14 @@
-float4 main() {
+struct main_outputs {
+  float4 tint_symbol : SV_Target0;
+};
+
+
+float4 main_inner() {
   return float4(0.10000000149011611938f, 0.20000000298023223877f, 0.30000001192092895508f, 0.40000000596046447754f);
 }
 
+main_outputs main() {
+  main_outputs v = {main_inner()};
+  return v;
+}
+
diff --git a/test/tint/extensions/parsing/duplicated_extensions.wgsl.expected.ir.dxc.hlsl b/test/tint/extensions/parsing/duplicated_extensions.wgsl.expected.ir.dxc.hlsl
index 8a29b44..4cfb4ce 100644
--- a/test/tint/extensions/parsing/duplicated_extensions.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/extensions/parsing/duplicated_extensions.wgsl.expected.ir.dxc.hlsl
@@ -1,11 +1,14 @@
-SKIP: FAILED
+struct main_outputs {
+  float4 tint_symbol : SV_Target0;
+};
 
-float4 main() {
+
+float4 main_inner() {
   return float4(0.10000000149011611938f, 0.20000000298023223877f, 0.30000001192092895508f, 0.40000000596046447754f);
 }
 
-DXC validation failure:
-hlsl.hlsl:1:1: error: Semantic must be defined for all outputs of an entry function or patch constant function
-float4 main() {
-^
+main_outputs main() {
+  main_outputs v = {main_inner()};
+  return v;
+}
 
diff --git a/test/tint/extensions/parsing/duplicated_extensions.wgsl.expected.ir.fxc.hlsl b/test/tint/extensions/parsing/duplicated_extensions.wgsl.expected.ir.fxc.hlsl
index 7a40f36..4cfb4ce 100644
--- a/test/tint/extensions/parsing/duplicated_extensions.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/extensions/parsing/duplicated_extensions.wgsl.expected.ir.fxc.hlsl
@@ -1,4 +1,14 @@
-float4 main() {
+struct main_outputs {
+  float4 tint_symbol : SV_Target0;
+};
+
+
+float4 main_inner() {
   return float4(0.10000000149011611938f, 0.20000000298023223877f, 0.30000001192092895508f, 0.40000000596046447754f);
 }
 
+main_outputs main() {
+  main_outputs v = {main_inner()};
+  return v;
+}
+
diff --git a/test/tint/extensions/parsing/multiple.wgsl.expected.ir.dxc.hlsl b/test/tint/extensions/parsing/multiple.wgsl.expected.ir.dxc.hlsl
index 8a29b44..4cfb4ce 100644
--- a/test/tint/extensions/parsing/multiple.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/extensions/parsing/multiple.wgsl.expected.ir.dxc.hlsl
@@ -1,11 +1,14 @@
-SKIP: FAILED
+struct main_outputs {
+  float4 tint_symbol : SV_Target0;
+};
 
-float4 main() {
+
+float4 main_inner() {
   return float4(0.10000000149011611938f, 0.20000000298023223877f, 0.30000001192092895508f, 0.40000000596046447754f);
 }
 
-DXC validation failure:
-hlsl.hlsl:1:1: error: Semantic must be defined for all outputs of an entry function or patch constant function
-float4 main() {
-^
+main_outputs main() {
+  main_outputs v = {main_inner()};
+  return v;
+}
 
diff --git a/test/tint/extensions/parsing/multiple.wgsl.expected.ir.fxc.hlsl b/test/tint/extensions/parsing/multiple.wgsl.expected.ir.fxc.hlsl
index 7a40f36..4cfb4ce 100644
--- a/test/tint/extensions/parsing/multiple.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/extensions/parsing/multiple.wgsl.expected.ir.fxc.hlsl
@@ -1,4 +1,14 @@
-float4 main() {
+struct main_outputs {
+  float4 tint_symbol : SV_Target0;
+};
+
+
+float4 main_inner() {
   return float4(0.10000000149011611938f, 0.20000000298023223877f, 0.30000001192092895508f, 0.40000000596046447754f);
 }
 
+main_outputs main() {
+  main_outputs v = {main_inner()};
+  return v;
+}
+
diff --git a/test/tint/extensions/pixel_local/entry_point_use/additional_params/builtin.wgsl.expected.ir.dxc.hlsl b/test/tint/extensions/pixel_local/entry_point_use/additional_params/builtin.wgsl.expected.ir.dxc.hlsl
index 3f437dc..2f26e32 100644
--- a/test/tint/extensions/pixel_local/entry_point_use/additional_params/builtin.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/extensions/pixel_local/entry_point_use/additional_params/builtin.wgsl.expected.ir.dxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Access
+..\..\src\tint\lang\hlsl\writer\printer\printer.cc:524 internal compiler error: unhandled address space pixel_local
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/extensions/pixel_local/entry_point_use/additional_params/builtin.wgsl.expected.ir.fxc.hlsl b/test/tint/extensions/pixel_local/entry_point_use/additional_params/builtin.wgsl.expected.ir.fxc.hlsl
index 3f437dc..2f26e32 100644
--- a/test/tint/extensions/pixel_local/entry_point_use/additional_params/builtin.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/extensions/pixel_local/entry_point_use/additional_params/builtin.wgsl.expected.ir.fxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Access
+..\..\src\tint\lang\hlsl\writer\printer\printer.cc:524 internal compiler error: unhandled address space pixel_local
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/extensions/pixel_local/entry_point_use/additional_params/builtin_and_location.wgsl.expected.ir.dxc.hlsl b/test/tint/extensions/pixel_local/entry_point_use/additional_params/builtin_and_location.wgsl.expected.ir.dxc.hlsl
index 3f437dc..2f26e32 100644
--- a/test/tint/extensions/pixel_local/entry_point_use/additional_params/builtin_and_location.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/extensions/pixel_local/entry_point_use/additional_params/builtin_and_location.wgsl.expected.ir.dxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Access
+..\..\src\tint\lang\hlsl\writer\printer\printer.cc:524 internal compiler error: unhandled address space pixel_local
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/extensions/pixel_local/entry_point_use/additional_params/builtin_and_location.wgsl.expected.ir.fxc.hlsl b/test/tint/extensions/pixel_local/entry_point_use/additional_params/builtin_and_location.wgsl.expected.ir.fxc.hlsl
index 3f437dc..2f26e32 100644
--- a/test/tint/extensions/pixel_local/entry_point_use/additional_params/builtin_and_location.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/extensions/pixel_local/entry_point_use/additional_params/builtin_and_location.wgsl.expected.ir.fxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Access
+..\..\src\tint\lang\hlsl\writer\printer\printer.cc:524 internal compiler error: unhandled address space pixel_local
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/extensions/pixel_local/entry_point_use/additional_params/builtin_and_location_in_struct.wgsl.expected.ir.dxc.hlsl b/test/tint/extensions/pixel_local/entry_point_use/additional_params/builtin_and_location_in_struct.wgsl.expected.ir.dxc.hlsl
index 3f437dc..2f26e32 100644
--- a/test/tint/extensions/pixel_local/entry_point_use/additional_params/builtin_and_location_in_struct.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/extensions/pixel_local/entry_point_use/additional_params/builtin_and_location_in_struct.wgsl.expected.ir.dxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Access
+..\..\src\tint\lang\hlsl\writer\printer\printer.cc:524 internal compiler error: unhandled address space pixel_local
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/extensions/pixel_local/entry_point_use/additional_params/builtin_and_location_in_struct.wgsl.expected.ir.fxc.hlsl b/test/tint/extensions/pixel_local/entry_point_use/additional_params/builtin_and_location_in_struct.wgsl.expected.ir.fxc.hlsl
index 3f437dc..2f26e32 100644
--- a/test/tint/extensions/pixel_local/entry_point_use/additional_params/builtin_and_location_in_struct.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/extensions/pixel_local/entry_point_use/additional_params/builtin_and_location_in_struct.wgsl.expected.ir.fxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Access
+..\..\src\tint\lang\hlsl\writer\printer\printer.cc:524 internal compiler error: unhandled address space pixel_local
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/extensions/pixel_local/entry_point_use/additional_params/builtin_in_struct.wgsl.expected.ir.dxc.hlsl b/test/tint/extensions/pixel_local/entry_point_use/additional_params/builtin_in_struct.wgsl.expected.ir.dxc.hlsl
index 3f437dc..2f26e32 100644
--- a/test/tint/extensions/pixel_local/entry_point_use/additional_params/builtin_in_struct.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/extensions/pixel_local/entry_point_use/additional_params/builtin_in_struct.wgsl.expected.ir.dxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Access
+..\..\src\tint\lang\hlsl\writer\printer\printer.cc:524 internal compiler error: unhandled address space pixel_local
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/extensions/pixel_local/entry_point_use/additional_params/builtin_in_struct.wgsl.expected.ir.fxc.hlsl b/test/tint/extensions/pixel_local/entry_point_use/additional_params/builtin_in_struct.wgsl.expected.ir.fxc.hlsl
index 3f437dc..2f26e32 100644
--- a/test/tint/extensions/pixel_local/entry_point_use/additional_params/builtin_in_struct.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/extensions/pixel_local/entry_point_use/additional_params/builtin_in_struct.wgsl.expected.ir.fxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Access
+..\..\src\tint\lang\hlsl\writer\printer\printer.cc:524 internal compiler error: unhandled address space pixel_local
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/extensions/pixel_local/entry_point_use/additional_params/builtin_in_struct_and_location.wgsl.expected.ir.dxc.hlsl b/test/tint/extensions/pixel_local/entry_point_use/additional_params/builtin_in_struct_and_location.wgsl.expected.ir.dxc.hlsl
index 3f437dc..2f26e32 100644
--- a/test/tint/extensions/pixel_local/entry_point_use/additional_params/builtin_in_struct_and_location.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/extensions/pixel_local/entry_point_use/additional_params/builtin_in_struct_and_location.wgsl.expected.ir.dxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Access
+..\..\src\tint\lang\hlsl\writer\printer\printer.cc:524 internal compiler error: unhandled address space pixel_local
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/extensions/pixel_local/entry_point_use/additional_params/builtin_in_struct_and_location.wgsl.expected.ir.fxc.hlsl b/test/tint/extensions/pixel_local/entry_point_use/additional_params/builtin_in_struct_and_location.wgsl.expected.ir.fxc.hlsl
index 3f437dc..2f26e32 100644
--- a/test/tint/extensions/pixel_local/entry_point_use/additional_params/builtin_in_struct_and_location.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/extensions/pixel_local/entry_point_use/additional_params/builtin_in_struct_and_location.wgsl.expected.ir.fxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Access
+..\..\src\tint\lang\hlsl\writer\printer\printer.cc:524 internal compiler error: unhandled address space pixel_local
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/extensions/pixel_local/entry_point_use/additional_params/builtin_in_struct_and_location_in_struct.wgsl.expected.ir.dxc.hlsl b/test/tint/extensions/pixel_local/entry_point_use/additional_params/builtin_in_struct_and_location_in_struct.wgsl.expected.ir.dxc.hlsl
index 3f437dc..2f26e32 100644
--- a/test/tint/extensions/pixel_local/entry_point_use/additional_params/builtin_in_struct_and_location_in_struct.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/extensions/pixel_local/entry_point_use/additional_params/builtin_in_struct_and_location_in_struct.wgsl.expected.ir.dxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Access
+..\..\src\tint\lang\hlsl\writer\printer\printer.cc:524 internal compiler error: unhandled address space pixel_local
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/extensions/pixel_local/entry_point_use/additional_params/builtin_in_struct_and_location_in_struct.wgsl.expected.ir.fxc.hlsl b/test/tint/extensions/pixel_local/entry_point_use/additional_params/builtin_in_struct_and_location_in_struct.wgsl.expected.ir.fxc.hlsl
index 3f437dc..2f26e32 100644
--- a/test/tint/extensions/pixel_local/entry_point_use/additional_params/builtin_in_struct_and_location_in_struct.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/extensions/pixel_local/entry_point_use/additional_params/builtin_in_struct_and_location_in_struct.wgsl.expected.ir.fxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Access
+..\..\src\tint\lang\hlsl\writer\printer\printer.cc:524 internal compiler error: unhandled address space pixel_local
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/extensions/pixel_local/entry_point_use/additional_params/invariant_builtin.wgsl.expected.ir.dxc.hlsl b/test/tint/extensions/pixel_local/entry_point_use/additional_params/invariant_builtin.wgsl.expected.ir.dxc.hlsl
index 3f437dc..2f26e32 100644
--- a/test/tint/extensions/pixel_local/entry_point_use/additional_params/invariant_builtin.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/extensions/pixel_local/entry_point_use/additional_params/invariant_builtin.wgsl.expected.ir.dxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Access
+..\..\src\tint\lang\hlsl\writer\printer\printer.cc:524 internal compiler error: unhandled address space pixel_local
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/extensions/pixel_local/entry_point_use/additional_params/invariant_builtin.wgsl.expected.ir.fxc.hlsl b/test/tint/extensions/pixel_local/entry_point_use/additional_params/invariant_builtin.wgsl.expected.ir.fxc.hlsl
index 3f437dc..2f26e32 100644
--- a/test/tint/extensions/pixel_local/entry_point_use/additional_params/invariant_builtin.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/extensions/pixel_local/entry_point_use/additional_params/invariant_builtin.wgsl.expected.ir.fxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Access
+..\..\src\tint\lang\hlsl\writer\printer\printer.cc:524 internal compiler error: unhandled address space pixel_local
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/extensions/pixel_local/entry_point_use/additional_params/invariant_builtin_in_struct.wgsl.expected.ir.dxc.hlsl b/test/tint/extensions/pixel_local/entry_point_use/additional_params/invariant_builtin_in_struct.wgsl.expected.ir.dxc.hlsl
index 3f437dc..2f26e32 100644
--- a/test/tint/extensions/pixel_local/entry_point_use/additional_params/invariant_builtin_in_struct.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/extensions/pixel_local/entry_point_use/additional_params/invariant_builtin_in_struct.wgsl.expected.ir.dxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Access
+..\..\src\tint\lang\hlsl\writer\printer\printer.cc:524 internal compiler error: unhandled address space pixel_local
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/extensions/pixel_local/entry_point_use/additional_params/invariant_builtin_in_struct.wgsl.expected.ir.fxc.hlsl b/test/tint/extensions/pixel_local/entry_point_use/additional_params/invariant_builtin_in_struct.wgsl.expected.ir.fxc.hlsl
index 3f437dc..2f26e32 100644
--- a/test/tint/extensions/pixel_local/entry_point_use/additional_params/invariant_builtin_in_struct.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/extensions/pixel_local/entry_point_use/additional_params/invariant_builtin_in_struct.wgsl.expected.ir.fxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Access
+..\..\src\tint\lang\hlsl\writer\printer\printer.cc:524 internal compiler error: unhandled address space pixel_local
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/extensions/pixel_local/entry_point_use/additional_params/location.wgsl.expected.ir.dxc.hlsl b/test/tint/extensions/pixel_local/entry_point_use/additional_params/location.wgsl.expected.ir.dxc.hlsl
index 3f437dc..2f26e32 100644
--- a/test/tint/extensions/pixel_local/entry_point_use/additional_params/location.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/extensions/pixel_local/entry_point_use/additional_params/location.wgsl.expected.ir.dxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Access
+..\..\src\tint\lang\hlsl\writer\printer\printer.cc:524 internal compiler error: unhandled address space pixel_local
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/extensions/pixel_local/entry_point_use/additional_params/location.wgsl.expected.ir.fxc.hlsl b/test/tint/extensions/pixel_local/entry_point_use/additional_params/location.wgsl.expected.ir.fxc.hlsl
index 3f437dc..2f26e32 100644
--- a/test/tint/extensions/pixel_local/entry_point_use/additional_params/location.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/extensions/pixel_local/entry_point_use/additional_params/location.wgsl.expected.ir.fxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Access
+..\..\src\tint\lang\hlsl\writer\printer\printer.cc:524 internal compiler error: unhandled address space pixel_local
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/extensions/pixel_local/entry_point_use/additional_params/location_in_struct.wgsl.expected.ir.dxc.hlsl b/test/tint/extensions/pixel_local/entry_point_use/additional_params/location_in_struct.wgsl.expected.ir.dxc.hlsl
index 3f437dc..2f26e32 100644
--- a/test/tint/extensions/pixel_local/entry_point_use/additional_params/location_in_struct.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/extensions/pixel_local/entry_point_use/additional_params/location_in_struct.wgsl.expected.ir.dxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Access
+..\..\src\tint\lang\hlsl\writer\printer\printer.cc:524 internal compiler error: unhandled address space pixel_local
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/extensions/pixel_local/entry_point_use/additional_params/location_in_struct.wgsl.expected.ir.fxc.hlsl b/test/tint/extensions/pixel_local/entry_point_use/additional_params/location_in_struct.wgsl.expected.ir.fxc.hlsl
index 3f437dc..2f26e32 100644
--- a/test/tint/extensions/pixel_local/entry_point_use/additional_params/location_in_struct.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/extensions/pixel_local/entry_point_use/additional_params/location_in_struct.wgsl.expected.ir.fxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Access
+..\..\src\tint\lang\hlsl\writer\printer\printer.cc:524 internal compiler error: unhandled address space pixel_local
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/extensions/pixel_local/entry_point_use/multiple_outputs/multiple_attachments.wgsl.expected.ir.dxc.hlsl b/test/tint/extensions/pixel_local/entry_point_use/multiple_outputs/multiple_attachments.wgsl.expected.ir.dxc.hlsl
index 3f437dc..2f26e32 100644
--- a/test/tint/extensions/pixel_local/entry_point_use/multiple_outputs/multiple_attachments.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/extensions/pixel_local/entry_point_use/multiple_outputs/multiple_attachments.wgsl.expected.ir.dxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Access
+..\..\src\tint\lang\hlsl\writer\printer\printer.cc:524 internal compiler error: unhandled address space pixel_local
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/extensions/pixel_local/entry_point_use/multiple_outputs/multiple_attachments.wgsl.expected.ir.fxc.hlsl b/test/tint/extensions/pixel_local/entry_point_use/multiple_outputs/multiple_attachments.wgsl.expected.ir.fxc.hlsl
index 3f437dc..2f26e32 100644
--- a/test/tint/extensions/pixel_local/entry_point_use/multiple_outputs/multiple_attachments.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/extensions/pixel_local/entry_point_use/multiple_outputs/multiple_attachments.wgsl.expected.ir.fxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Access
+..\..\src\tint\lang\hlsl\writer\printer\printer.cc:524 internal compiler error: unhandled address space pixel_local
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/extensions/pixel_local/entry_point_use/multiple_outputs/single_attachment.wgsl.expected.ir.dxc.hlsl b/test/tint/extensions/pixel_local/entry_point_use/multiple_outputs/single_attachment.wgsl.expected.ir.dxc.hlsl
index 3f437dc..2f26e32 100644
--- a/test/tint/extensions/pixel_local/entry_point_use/multiple_outputs/single_attachment.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/extensions/pixel_local/entry_point_use/multiple_outputs/single_attachment.wgsl.expected.ir.dxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Access
+..\..\src\tint\lang\hlsl\writer\printer\printer.cc:524 internal compiler error: unhandled address space pixel_local
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/extensions/pixel_local/entry_point_use/multiple_outputs/single_attachment.wgsl.expected.ir.fxc.hlsl b/test/tint/extensions/pixel_local/entry_point_use/multiple_outputs/single_attachment.wgsl.expected.ir.fxc.hlsl
index 3f437dc..2f26e32 100644
--- a/test/tint/extensions/pixel_local/entry_point_use/multiple_outputs/single_attachment.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/extensions/pixel_local/entry_point_use/multiple_outputs/single_attachment.wgsl.expected.ir.fxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Access
+..\..\src\tint\lang\hlsl\writer\printer\printer.cc:524 internal compiler error: unhandled address space pixel_local
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/extensions/pixel_local/entry_point_use/one_output/multiple_attachments.wgsl.expected.ir.dxc.hlsl b/test/tint/extensions/pixel_local/entry_point_use/one_output/multiple_attachments.wgsl.expected.ir.dxc.hlsl
index 3f437dc..2f26e32 100644
--- a/test/tint/extensions/pixel_local/entry_point_use/one_output/multiple_attachments.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/extensions/pixel_local/entry_point_use/one_output/multiple_attachments.wgsl.expected.ir.dxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Access
+..\..\src\tint\lang\hlsl\writer\printer\printer.cc:524 internal compiler error: unhandled address space pixel_local
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/extensions/pixel_local/entry_point_use/one_output/multiple_attachments.wgsl.expected.ir.fxc.hlsl b/test/tint/extensions/pixel_local/entry_point_use/one_output/multiple_attachments.wgsl.expected.ir.fxc.hlsl
index 3f437dc..2f26e32 100644
--- a/test/tint/extensions/pixel_local/entry_point_use/one_output/multiple_attachments.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/extensions/pixel_local/entry_point_use/one_output/multiple_attachments.wgsl.expected.ir.fxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Access
+..\..\src\tint\lang\hlsl\writer\printer\printer.cc:524 internal compiler error: unhandled address space pixel_local
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/extensions/pixel_local/entry_point_use/one_output/single_attachment.wgsl.expected.ir.dxc.hlsl b/test/tint/extensions/pixel_local/entry_point_use/one_output/single_attachment.wgsl.expected.ir.dxc.hlsl
index 3f437dc..2f26e32 100644
--- a/test/tint/extensions/pixel_local/entry_point_use/one_output/single_attachment.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/extensions/pixel_local/entry_point_use/one_output/single_attachment.wgsl.expected.ir.dxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Access
+..\..\src\tint\lang\hlsl\writer\printer\printer.cc:524 internal compiler error: unhandled address space pixel_local
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/extensions/pixel_local/entry_point_use/one_output/single_attachment.wgsl.expected.ir.fxc.hlsl b/test/tint/extensions/pixel_local/entry_point_use/one_output/single_attachment.wgsl.expected.ir.fxc.hlsl
index 3f437dc..2f26e32 100644
--- a/test/tint/extensions/pixel_local/entry_point_use/one_output/single_attachment.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/extensions/pixel_local/entry_point_use/one_output/single_attachment.wgsl.expected.ir.fxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Access
+..\..\src\tint\lang\hlsl\writer\printer\printer.cc:524 internal compiler error: unhandled address space pixel_local
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/extensions/pixel_local/entry_point_use/zero_outputs/multiple_attachments.wgsl.expected.ir.dxc.hlsl b/test/tint/extensions/pixel_local/entry_point_use/zero_outputs/multiple_attachments.wgsl.expected.ir.dxc.hlsl
index 3f437dc..2f26e32 100644
--- a/test/tint/extensions/pixel_local/entry_point_use/zero_outputs/multiple_attachments.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/extensions/pixel_local/entry_point_use/zero_outputs/multiple_attachments.wgsl.expected.ir.dxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Access
+..\..\src\tint\lang\hlsl\writer\printer\printer.cc:524 internal compiler error: unhandled address space pixel_local
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/extensions/pixel_local/entry_point_use/zero_outputs/multiple_attachments.wgsl.expected.ir.fxc.hlsl b/test/tint/extensions/pixel_local/entry_point_use/zero_outputs/multiple_attachments.wgsl.expected.ir.fxc.hlsl
index 3f437dc..2f26e32 100644
--- a/test/tint/extensions/pixel_local/entry_point_use/zero_outputs/multiple_attachments.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/extensions/pixel_local/entry_point_use/zero_outputs/multiple_attachments.wgsl.expected.ir.fxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Access
+..\..\src\tint\lang\hlsl\writer\printer\printer.cc:524 internal compiler error: unhandled address space pixel_local
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/extensions/pixel_local/entry_point_use/zero_outputs/single_attachment.wgsl.expected.ir.dxc.hlsl b/test/tint/extensions/pixel_local/entry_point_use/zero_outputs/single_attachment.wgsl.expected.ir.dxc.hlsl
index 3f437dc..2f26e32 100644
--- a/test/tint/extensions/pixel_local/entry_point_use/zero_outputs/single_attachment.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/extensions/pixel_local/entry_point_use/zero_outputs/single_attachment.wgsl.expected.ir.dxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Access
+..\..\src\tint\lang\hlsl\writer\printer\printer.cc:524 internal compiler error: unhandled address space pixel_local
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/extensions/pixel_local/entry_point_use/zero_outputs/single_attachment.wgsl.expected.ir.fxc.hlsl b/test/tint/extensions/pixel_local/entry_point_use/zero_outputs/single_attachment.wgsl.expected.ir.fxc.hlsl
index 3f437dc..2f26e32 100644
--- a/test/tint/extensions/pixel_local/entry_point_use/zero_outputs/single_attachment.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/extensions/pixel_local/entry_point_use/zero_outputs/single_attachment.wgsl.expected.ir.fxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Access
+..\..\src\tint\lang\hlsl\writer\printer\printer.cc:524 internal compiler error: unhandled address space pixel_local
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/extensions/pixel_local/indirect_use/multiple_outputs/multiple_attachments.wgsl.expected.ir.dxc.hlsl b/test/tint/extensions/pixel_local/indirect_use/multiple_outputs/multiple_attachments.wgsl.expected.ir.dxc.hlsl
index 3f437dc..2f26e32 100644
--- a/test/tint/extensions/pixel_local/indirect_use/multiple_outputs/multiple_attachments.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/extensions/pixel_local/indirect_use/multiple_outputs/multiple_attachments.wgsl.expected.ir.dxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Access
+..\..\src\tint\lang\hlsl\writer\printer\printer.cc:524 internal compiler error: unhandled address space pixel_local
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/extensions/pixel_local/indirect_use/multiple_outputs/multiple_attachments.wgsl.expected.ir.fxc.hlsl b/test/tint/extensions/pixel_local/indirect_use/multiple_outputs/multiple_attachments.wgsl.expected.ir.fxc.hlsl
index 3f437dc..2f26e32 100644
--- a/test/tint/extensions/pixel_local/indirect_use/multiple_outputs/multiple_attachments.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/extensions/pixel_local/indirect_use/multiple_outputs/multiple_attachments.wgsl.expected.ir.fxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Access
+..\..\src\tint\lang\hlsl\writer\printer\printer.cc:524 internal compiler error: unhandled address space pixel_local
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/extensions/pixel_local/indirect_use/multiple_outputs/single_attachment.wgsl.expected.ir.dxc.hlsl b/test/tint/extensions/pixel_local/indirect_use/multiple_outputs/single_attachment.wgsl.expected.ir.dxc.hlsl
index 3f437dc..2f26e32 100644
--- a/test/tint/extensions/pixel_local/indirect_use/multiple_outputs/single_attachment.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/extensions/pixel_local/indirect_use/multiple_outputs/single_attachment.wgsl.expected.ir.dxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Access
+..\..\src\tint\lang\hlsl\writer\printer\printer.cc:524 internal compiler error: unhandled address space pixel_local
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/extensions/pixel_local/indirect_use/multiple_outputs/single_attachment.wgsl.expected.ir.fxc.hlsl b/test/tint/extensions/pixel_local/indirect_use/multiple_outputs/single_attachment.wgsl.expected.ir.fxc.hlsl
index 3f437dc..2f26e32 100644
--- a/test/tint/extensions/pixel_local/indirect_use/multiple_outputs/single_attachment.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/extensions/pixel_local/indirect_use/multiple_outputs/single_attachment.wgsl.expected.ir.fxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Access
+..\..\src\tint\lang\hlsl\writer\printer\printer.cc:524 internal compiler error: unhandled address space pixel_local
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/extensions/pixel_local/indirect_use/one_output/multiple_attachments.wgsl.expected.ir.dxc.hlsl b/test/tint/extensions/pixel_local/indirect_use/one_output/multiple_attachments.wgsl.expected.ir.dxc.hlsl
index 3f437dc..2f26e32 100644
--- a/test/tint/extensions/pixel_local/indirect_use/one_output/multiple_attachments.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/extensions/pixel_local/indirect_use/one_output/multiple_attachments.wgsl.expected.ir.dxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Access
+..\..\src\tint\lang\hlsl\writer\printer\printer.cc:524 internal compiler error: unhandled address space pixel_local
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/extensions/pixel_local/indirect_use/one_output/multiple_attachments.wgsl.expected.ir.fxc.hlsl b/test/tint/extensions/pixel_local/indirect_use/one_output/multiple_attachments.wgsl.expected.ir.fxc.hlsl
index 3f437dc..2f26e32 100644
--- a/test/tint/extensions/pixel_local/indirect_use/one_output/multiple_attachments.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/extensions/pixel_local/indirect_use/one_output/multiple_attachments.wgsl.expected.ir.fxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Access
+..\..\src\tint\lang\hlsl\writer\printer\printer.cc:524 internal compiler error: unhandled address space pixel_local
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/extensions/pixel_local/indirect_use/one_output/single_attachment.wgsl.expected.ir.dxc.hlsl b/test/tint/extensions/pixel_local/indirect_use/one_output/single_attachment.wgsl.expected.ir.dxc.hlsl
index 3f437dc..2f26e32 100644
--- a/test/tint/extensions/pixel_local/indirect_use/one_output/single_attachment.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/extensions/pixel_local/indirect_use/one_output/single_attachment.wgsl.expected.ir.dxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Access
+..\..\src\tint\lang\hlsl\writer\printer\printer.cc:524 internal compiler error: unhandled address space pixel_local
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/extensions/pixel_local/indirect_use/one_output/single_attachment.wgsl.expected.ir.fxc.hlsl b/test/tint/extensions/pixel_local/indirect_use/one_output/single_attachment.wgsl.expected.ir.fxc.hlsl
index 3f437dc..2f26e32 100644
--- a/test/tint/extensions/pixel_local/indirect_use/one_output/single_attachment.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/extensions/pixel_local/indirect_use/one_output/single_attachment.wgsl.expected.ir.fxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Access
+..\..\src\tint\lang\hlsl\writer\printer\printer.cc:524 internal compiler error: unhandled address space pixel_local
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/extensions/pixel_local/indirect_use/zero_outputs/multiple_attachments.wgsl.expected.ir.dxc.hlsl b/test/tint/extensions/pixel_local/indirect_use/zero_outputs/multiple_attachments.wgsl.expected.ir.dxc.hlsl
index 3f437dc..2f26e32 100644
--- a/test/tint/extensions/pixel_local/indirect_use/zero_outputs/multiple_attachments.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/extensions/pixel_local/indirect_use/zero_outputs/multiple_attachments.wgsl.expected.ir.dxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Access
+..\..\src\tint\lang\hlsl\writer\printer\printer.cc:524 internal compiler error: unhandled address space pixel_local
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/extensions/pixel_local/indirect_use/zero_outputs/multiple_attachments.wgsl.expected.ir.fxc.hlsl b/test/tint/extensions/pixel_local/indirect_use/zero_outputs/multiple_attachments.wgsl.expected.ir.fxc.hlsl
index 3f437dc..2f26e32 100644
--- a/test/tint/extensions/pixel_local/indirect_use/zero_outputs/multiple_attachments.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/extensions/pixel_local/indirect_use/zero_outputs/multiple_attachments.wgsl.expected.ir.fxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Access
+..\..\src\tint\lang\hlsl\writer\printer\printer.cc:524 internal compiler error: unhandled address space pixel_local
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/extensions/pixel_local/indirect_use/zero_outputs/single_attachment.wgsl.expected.ir.dxc.hlsl b/test/tint/extensions/pixel_local/indirect_use/zero_outputs/single_attachment.wgsl.expected.ir.dxc.hlsl
index 3f437dc..2f26e32 100644
--- a/test/tint/extensions/pixel_local/indirect_use/zero_outputs/single_attachment.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/extensions/pixel_local/indirect_use/zero_outputs/single_attachment.wgsl.expected.ir.dxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Access
+..\..\src\tint\lang\hlsl\writer\printer\printer.cc:524 internal compiler error: unhandled address space pixel_local
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/extensions/pixel_local/indirect_use/zero_outputs/single_attachment.wgsl.expected.ir.fxc.hlsl b/test/tint/extensions/pixel_local/indirect_use/zero_outputs/single_attachment.wgsl.expected.ir.fxc.hlsl
index 3f437dc..2f26e32 100644
--- a/test/tint/extensions/pixel_local/indirect_use/zero_outputs/single_attachment.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/extensions/pixel_local/indirect_use/zero_outputs/single_attachment.wgsl.expected.ir.fxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Access
+..\..\src\tint\lang\hlsl\writer\printer\printer.cc:524 internal compiler error: unhandled address space pixel_local
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/extensions/pixel_local/ptr/local.wgsl.expected.ir.dxc.hlsl b/test/tint/extensions/pixel_local/ptr/local.wgsl.expected.ir.dxc.hlsl
index 3f437dc..2f26e32 100644
--- a/test/tint/extensions/pixel_local/ptr/local.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/extensions/pixel_local/ptr/local.wgsl.expected.ir.dxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Access
+..\..\src\tint\lang\hlsl\writer\printer\printer.cc:524 internal compiler error: unhandled address space pixel_local
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/extensions/pixel_local/ptr/local.wgsl.expected.ir.fxc.hlsl b/test/tint/extensions/pixel_local/ptr/local.wgsl.expected.ir.fxc.hlsl
index 3f437dc..2f26e32 100644
--- a/test/tint/extensions/pixel_local/ptr/local.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/extensions/pixel_local/ptr/local.wgsl.expected.ir.fxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Access
+..\..\src\tint\lang\hlsl\writer\printer\printer.cc:524 internal compiler error: unhandled address space pixel_local
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/extensions/texel_fetch/additional_params/a.wgsl.expected.ir.dxc.hlsl b/test/tint/extensions/texel_fetch/additional_params/a.wgsl.expected.ir.dxc.hlsl
index a4950c2..38b3458 100644
--- a/test/tint/extensions/texel_fetch/additional_params/a.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/extensions/texel_fetch/additional_params/a.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,31 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/wgsl/reader/program_to_ir/program_to_ir.cc:371 internal compiler error: TINT_UNIMPLEMENTED IR does not currently support texel fetch extension
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct In {
+  float4 uv;
+};
+
+struct f_inputs {
+  float4 fbf;
+  float4 In_uv : TEXCOORD0;
+  float4 pos : SV_Position;
+};
+
+
+void g(float a, float b, float c) {
+}
+
+void f_inner(float4 pos, float4 fbf, In tint_symbol) {
+  g(pos[0u], fbf[0u], tint_symbol.uv[0u]);
+}
+
+void f(f_inputs inputs) {
+  float4 v = float4(inputs.pos.xyz, (1.0f / inputs.pos[3u]));
+  In v_1 = {inputs.In_uv};
+  f_inner(v, inputs.fbf, v_1);
+}
+
+DXC validation failure:
+hlsl.hlsl:19:1: error: Semantic must be defined for all parameters of an entry function or patch constant function
+void f(f_inputs inputs) {
+^
+
diff --git a/test/tint/extensions/texel_fetch/additional_params/a.wgsl.expected.ir.fxc.hlsl b/test/tint/extensions/texel_fetch/additional_params/a.wgsl.expected.ir.fxc.hlsl
index a4950c2..b065721 100644
--- a/test/tint/extensions/texel_fetch/additional_params/a.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/extensions/texel_fetch/additional_params/a.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,29 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/wgsl/reader/program_to_ir/program_to_ir.cc:371 internal compiler error: TINT_UNIMPLEMENTED IR does not currently support texel fetch extension
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct In {
+  float4 uv;
+};
+
+struct f_inputs {
+  float4 fbf;
+  float4 In_uv : TEXCOORD0;
+  float4 pos : SV_Position;
+};
+
+
+void g(float a, float b, float c) {
+}
+
+void f_inner(float4 pos, float4 fbf, In tint_symbol) {
+  g(pos[0u], fbf[0u], tint_symbol.uv[0u]);
+}
+
+void f(f_inputs inputs) {
+  float4 v = float4(inputs.pos.xyz, (1.0f / inputs.pos[3u]));
+  In v_1 = {inputs.In_uv};
+  f_inner(v, inputs.fbf, v_1);
+}
+
+FXC validation failure:
+c:\src\dawn\Shader@0x000002D0BB70C760(19,17-22): error X3502: 'f': input parameter 'inputs' missing semantics
+
diff --git a/test/tint/extensions/texel_fetch/additional_params/b.wgsl.expected.ir.dxc.hlsl b/test/tint/extensions/texel_fetch/additional_params/b.wgsl.expected.ir.dxc.hlsl
index a4950c2..0c96952 100644
--- a/test/tint/extensions/texel_fetch/additional_params/b.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/extensions/texel_fetch/additional_params/b.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,25 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/wgsl/reader/program_to_ir/program_to_ir.cc:371 internal compiler error: TINT_UNIMPLEMENTED IR does not currently support texel fetch extension
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct f_inputs {
+  float4 fbf;
+  float4 uv : TEXCOORD0;
+  float4 pos : SV_Position;
+};
+
+
+void g(float a, float b, float c) {
+}
+
+void f_inner(float4 pos, float4 uv, float4 fbf) {
+  g(pos[0u], uv[0u], fbf[0u]);
+}
+
+void f(f_inputs inputs) {
+  f_inner(float4(inputs.pos.xyz, (1.0f / inputs.pos[3u])), inputs.uv, inputs.fbf);
+}
+
+DXC validation failure:
+hlsl.hlsl:15:1: error: Semantic must be defined for all parameters of an entry function or patch constant function
+void f(f_inputs inputs) {
+^
+
diff --git a/test/tint/extensions/texel_fetch/additional_params/b.wgsl.expected.ir.fxc.hlsl b/test/tint/extensions/texel_fetch/additional_params/b.wgsl.expected.ir.fxc.hlsl
index a4950c2..7bd134b 100644
--- a/test/tint/extensions/texel_fetch/additional_params/b.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/extensions/texel_fetch/additional_params/b.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,23 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/wgsl/reader/program_to_ir/program_to_ir.cc:371 internal compiler error: TINT_UNIMPLEMENTED IR does not currently support texel fetch extension
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct f_inputs {
+  float4 fbf;
+  float4 uv : TEXCOORD0;
+  float4 pos : SV_Position;
+};
+
+
+void g(float a, float b, float c) {
+}
+
+void f_inner(float4 pos, float4 uv, float4 fbf) {
+  g(pos[0u], uv[0u], fbf[0u]);
+}
+
+void f(f_inputs inputs) {
+  f_inner(float4(inputs.pos.xyz, (1.0f / inputs.pos[3u])), inputs.uv, inputs.fbf);
+}
+
+FXC validation failure:
+c:\src\dawn\Shader@0x0000015F3D53F610(15,17-22): error X3502: 'f': input parameter 'inputs' missing semantics
+
diff --git a/test/tint/extensions/texel_fetch/additional_params/c.wgsl.expected.ir.dxc.hlsl b/test/tint/extensions/texel_fetch/additional_params/c.wgsl.expected.ir.dxc.hlsl
index 3f437dc..668d746 100644
--- a/test/tint/extensions/texel_fetch/additional_params/c.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/extensions/texel_fetch/additional_params/c.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,32 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Access
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct In {
+  float4 pos;
+  float4 uv;
+  float4 fbf;
+};
+
+struct f_inputs {
+  float4 In_fbf;
+  float4 In_uv : TEXCOORD0;
+  float4 In_pos : SV_Position;
+};
+
+
+void g(float a, float b, float c) {
+}
+
+void f_inner(In tint_symbol) {
+  g(tint_symbol.pos[0u], tint_symbol.uv[0u], tint_symbol.fbf[1u]);
+}
+
+void f(f_inputs inputs) {
+  In v = {float4(inputs.In_pos.xyz, (1.0f / inputs.In_pos[3u])), inputs.In_uv, inputs.In_fbf};
+  f_inner(v);
+}
+
+DXC validation failure:
+hlsl.hlsl:21:1: error: Semantic must be defined for all parameters of an entry function or patch constant function
+void f(f_inputs inputs) {
+^
+
diff --git a/test/tint/extensions/texel_fetch/additional_params/c.wgsl.expected.ir.fxc.hlsl b/test/tint/extensions/texel_fetch/additional_params/c.wgsl.expected.ir.fxc.hlsl
index 3f437dc..4c183f3 100644
--- a/test/tint/extensions/texel_fetch/additional_params/c.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/extensions/texel_fetch/additional_params/c.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,30 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Access
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct In {
+  float4 pos;
+  float4 uv;
+  float4 fbf;
+};
+
+struct f_inputs {
+  float4 In_fbf;
+  float4 In_uv : TEXCOORD0;
+  float4 In_pos : SV_Position;
+};
+
+
+void g(float a, float b, float c) {
+}
+
+void f_inner(In tint_symbol) {
+  g(tint_symbol.pos[0u], tint_symbol.uv[0u], tint_symbol.fbf[1u]);
+}
+
+void f(f_inputs inputs) {
+  In v = {float4(inputs.In_pos.xyz, (1.0f / inputs.In_pos[3u])), inputs.In_uv, inputs.In_fbf};
+  f_inner(v);
+}
+
+FXC validation failure:
+c:\src\dawn\Shader@0x000001C06EDE0240(21,17-22): error X3502: 'f': input parameter 'inputs' missing semantics
+
diff --git a/test/tint/extensions/texel_fetch/additional_params/d.wgsl.expected.ir.dxc.hlsl b/test/tint/extensions/texel_fetch/additional_params/d.wgsl.expected.ir.dxc.hlsl
index a4950c2..cfaadd6 100644
--- a/test/tint/extensions/texel_fetch/additional_params/d.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/extensions/texel_fetch/additional_params/d.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,32 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/wgsl/reader/program_to_ir/program_to_ir.cc:371 internal compiler error: TINT_UNIMPLEMENTED IR does not currently support texel fetch extension
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct In {
+  float4 pos;
+};
+
+struct f_inputs {
+  uint4 fbf_0;
+  int4 fbf_2;
+  float4 uv : TEXCOORD0;
+  float4 In_pos : SV_Position;
+};
+
+
+void g(int a, float b, float c, uint d) {
+}
+
+void f_inner(int4 fbf_2, In tint_symbol, float4 uv, uint4 fbf_0) {
+  g(fbf_2[2u], tint_symbol.pos[0u], uv[0u], fbf_0[1u]);
+}
+
+void f(f_inputs inputs) {
+  In v = {float4(inputs.In_pos.xyz, (1.0f / inputs.In_pos[3u]))};
+  f_inner(inputs.fbf_2, v, inputs.uv, inputs.fbf_0);
+}
+
+DXC validation failure:
+hlsl.hlsl:20:1: error: Semantic must be defined for all parameters of an entry function or patch constant function
+void f(f_inputs inputs) {
+^
+hlsl.hlsl:20:1: error: Semantic must be defined for all parameters of an entry function or patch constant function
+
diff --git a/test/tint/extensions/texel_fetch/additional_params/d.wgsl.expected.ir.fxc.hlsl b/test/tint/extensions/texel_fetch/additional_params/d.wgsl.expected.ir.fxc.hlsl
index a4950c2..03080e3 100644
--- a/test/tint/extensions/texel_fetch/additional_params/d.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/extensions/texel_fetch/additional_params/d.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,29 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/wgsl/reader/program_to_ir/program_to_ir.cc:371 internal compiler error: TINT_UNIMPLEMENTED IR does not currently support texel fetch extension
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct In {
+  float4 pos;
+};
+
+struct f_inputs {
+  uint4 fbf_0;
+  int4 fbf_2;
+  float4 uv : TEXCOORD0;
+  float4 In_pos : SV_Position;
+};
+
+
+void g(int a, float b, float c, uint d) {
+}
+
+void f_inner(int4 fbf_2, In tint_symbol, float4 uv, uint4 fbf_0) {
+  g(fbf_2[2u], tint_symbol.pos[0u], uv[0u], fbf_0[1u]);
+}
+
+void f(f_inputs inputs) {
+  In v = {float4(inputs.In_pos.xyz, (1.0f / inputs.In_pos[3u]))};
+  f_inner(inputs.fbf_2, v, inputs.uv, inputs.fbf_0);
+}
+
+FXC validation failure:
+c:\src\dawn\Shader@0x00000269CE621210(20,17-22): error X3502: 'f': input parameter 'inputs' missing semantics
+
diff --git a/test/tint/extensions/texel_fetch/additional_params/e.wgsl.expected.ir.dxc.hlsl b/test/tint/extensions/texel_fetch/additional_params/e.wgsl.expected.ir.dxc.hlsl
index 3f437dc..97306a0 100644
--- a/test/tint/extensions/texel_fetch/additional_params/e.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/extensions/texel_fetch/additional_params/e.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,30 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Access
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct In {
+  int4 fbf;
+  float4 pos;
+};
+
+struct f_inputs {
+  int4 In_fbf;
+  float4 In_pos : SV_Position;
+};
+
+
+void g(int a, float b) {
+}
+
+void f_inner(In tint_symbol) {
+  g(tint_symbol.fbf[3u], tint_symbol.pos[0u]);
+}
+
+void f(f_inputs inputs) {
+  In v = {inputs.In_fbf, float4(inputs.In_pos.xyz, (1.0f / inputs.In_pos[3u]))};
+  f_inner(v);
+}
+
+DXC validation failure:
+hlsl.hlsl:19:1: error: Semantic must be defined for all parameters of an entry function or patch constant function
+void f(f_inputs inputs) {
+^
+
diff --git a/test/tint/extensions/texel_fetch/additional_params/e.wgsl.expected.ir.fxc.hlsl b/test/tint/extensions/texel_fetch/additional_params/e.wgsl.expected.ir.fxc.hlsl
index 3f437dc..a59266c 100644
--- a/test/tint/extensions/texel_fetch/additional_params/e.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/extensions/texel_fetch/additional_params/e.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,28 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Access
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct In {
+  int4 fbf;
+  float4 pos;
+};
+
+struct f_inputs {
+  int4 In_fbf;
+  float4 In_pos : SV_Position;
+};
+
+
+void g(int a, float b) {
+}
+
+void f_inner(In tint_symbol) {
+  g(tint_symbol.fbf[3u], tint_symbol.pos[0u]);
+}
+
+void f(f_inputs inputs) {
+  In v = {inputs.In_fbf, float4(inputs.In_pos.xyz, (1.0f / inputs.In_pos[3u]))};
+  f_inner(v);
+}
+
+FXC validation failure:
+c:\src\dawn\Shader@0x000001B0B2823D00(19,17-22): error X3502: 'f': input parameter 'inputs' missing semantics
+
diff --git a/test/tint/extensions/texel_fetch/additional_params/f.wgsl.expected.ir.dxc.hlsl b/test/tint/extensions/texel_fetch/additional_params/f.wgsl.expected.ir.dxc.hlsl
index a4950c2..7a2a73e 100644
--- a/test/tint/extensions/texel_fetch/additional_params/f.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/extensions/texel_fetch/additional_params/f.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,29 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/wgsl/reader/program_to_ir/program_to_ir.cc:371 internal compiler error: TINT_UNIMPLEMENTED IR does not currently support texel fetch extension
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct In {
+  float4 pos;
+};
+
+struct f_inputs {
+  float4 fbf;
+  precise float4 In_pos : SV_Position;
+};
+
+
+void g(float a, float b) {
+}
+
+void f_inner(In tint_symbol, float4 fbf) {
+  g(tint_symbol.pos[0u], fbf[1u]);
+}
+
+void f(f_inputs inputs) {
+  In v = {float4(inputs.In_pos.xyz, (1.0f / inputs.In_pos[3u]))};
+  f_inner(v, inputs.fbf);
+}
+
+DXC validation failure:
+hlsl.hlsl:18:1: error: Semantic must be defined for all parameters of an entry function or patch constant function
+void f(f_inputs inputs) {
+^
+
diff --git a/test/tint/extensions/texel_fetch/additional_params/f.wgsl.expected.ir.fxc.hlsl b/test/tint/extensions/texel_fetch/additional_params/f.wgsl.expected.ir.fxc.hlsl
index a4950c2..ce9ab4a 100644
--- a/test/tint/extensions/texel_fetch/additional_params/f.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/extensions/texel_fetch/additional_params/f.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,27 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/wgsl/reader/program_to_ir/program_to_ir.cc:371 internal compiler error: TINT_UNIMPLEMENTED IR does not currently support texel fetch extension
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct In {
+  float4 pos;
+};
+
+struct f_inputs {
+  float4 fbf;
+  precise float4 In_pos : SV_Position;
+};
+
+
+void g(float a, float b) {
+}
+
+void f_inner(In tint_symbol, float4 fbf) {
+  g(tint_symbol.pos[0u], fbf[1u]);
+}
+
+void f(f_inputs inputs) {
+  In v = {float4(inputs.In_pos.xyz, (1.0f / inputs.In_pos[3u]))};
+  f_inner(v, inputs.fbf);
+}
+
+FXC validation failure:
+c:\src\dawn\Shader@0x000002008B0C2C80(18,17-22): error X3502: 'f': input parameter 'inputs' missing semantics
+
diff --git a/test/tint/extensions/texel_fetch/additional_params/g.wgsl.expected.ir.dxc.hlsl b/test/tint/extensions/texel_fetch/additional_params/g.wgsl.expected.ir.dxc.hlsl
index a4950c2..5aa2978 100644
--- a/test/tint/extensions/texel_fetch/additional_params/g.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/extensions/texel_fetch/additional_params/g.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,24 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/wgsl/reader/program_to_ir/program_to_ir.cc:371 internal compiler error: TINT_UNIMPLEMENTED IR does not currently support texel fetch extension
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct f_inputs {
+  float4 fbf;
+  float4 pos : SV_Position;
+};
+
+
+void g(float a, float b) {
+}
+
+void f_inner(float4 fbf, float4 pos) {
+  g(fbf[3u], pos[0u]);
+}
+
+void f(f_inputs inputs) {
+  f_inner(inputs.fbf, float4(inputs.pos.xyz, (1.0f / inputs.pos[3u])));
+}
+
+DXC validation failure:
+hlsl.hlsl:14:1: error: Semantic must be defined for all parameters of an entry function or patch constant function
+void f(f_inputs inputs) {
+^
+
diff --git a/test/tint/extensions/texel_fetch/additional_params/g.wgsl.expected.ir.fxc.hlsl b/test/tint/extensions/texel_fetch/additional_params/g.wgsl.expected.ir.fxc.hlsl
index a4950c2..3c299dd 100644
--- a/test/tint/extensions/texel_fetch/additional_params/g.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/extensions/texel_fetch/additional_params/g.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,22 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/wgsl/reader/program_to_ir/program_to_ir.cc:371 internal compiler error: TINT_UNIMPLEMENTED IR does not currently support texel fetch extension
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct f_inputs {
+  float4 fbf;
+  float4 pos : SV_Position;
+};
+
+
+void g(float a, float b) {
+}
+
+void f_inner(float4 fbf, float4 pos) {
+  g(fbf[3u], pos[0u]);
+}
+
+void f(f_inputs inputs) {
+  f_inner(inputs.fbf, float4(inputs.pos.xyz, (1.0f / inputs.pos[3u])));
+}
+
+FXC validation failure:
+c:\src\dawn\Shader@0x000001A846BAD6B0(14,17-22): error X3502: 'f': input parameter 'inputs' missing semantics
+
diff --git a/test/tint/extensions/texel_fetch/additional_params/h.wgsl.expected.ir.dxc.hlsl b/test/tint/extensions/texel_fetch/additional_params/h.wgsl.expected.ir.dxc.hlsl
index 3f437dc..10273bc 100644
--- a/test/tint/extensions/texel_fetch/additional_params/h.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/extensions/texel_fetch/additional_params/h.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,33 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Access
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct FBF {
+  float4 c1;
+  int4 c3;
+};
+
+struct f_inputs {
+  float4 FBF_c1;
+  int4 FBF_c3;
+  precise float4 pos : SV_Position;
+};
+
+
+void g(float a, float b, int c) {
+}
+
+void f_inner(float4 pos, FBF fbf) {
+  g(fbf.c1[0u], pos[1u], fbf.c3[2u]);
+}
+
+void f(f_inputs inputs) {
+  float4 v = float4(inputs.pos.xyz, (1.0f / inputs.pos[3u]));
+  FBF v_1 = {inputs.FBF_c1, inputs.FBF_c3};
+  f_inner(v, v_1);
+}
+
+DXC validation failure:
+hlsl.hlsl:20:1: error: Semantic must be defined for all parameters of an entry function or patch constant function
+void f(f_inputs inputs) {
+^
+hlsl.hlsl:20:1: error: Semantic must be defined for all parameters of an entry function or patch constant function
+
diff --git a/test/tint/extensions/texel_fetch/additional_params/h.wgsl.expected.ir.fxc.hlsl b/test/tint/extensions/texel_fetch/additional_params/h.wgsl.expected.ir.fxc.hlsl
index 3f437dc..29563a4 100644
--- a/test/tint/extensions/texel_fetch/additional_params/h.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/extensions/texel_fetch/additional_params/h.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,30 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Access
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct FBF {
+  float4 c1;
+  int4 c3;
+};
+
+struct f_inputs {
+  float4 FBF_c1;
+  int4 FBF_c3;
+  precise float4 pos : SV_Position;
+};
+
+
+void g(float a, float b, int c) {
+}
+
+void f_inner(float4 pos, FBF fbf) {
+  g(fbf.c1[0u], pos[1u], fbf.c3[2u]);
+}
+
+void f(f_inputs inputs) {
+  float4 v = float4(inputs.pos.xyz, (1.0f / inputs.pos[3u]));
+  FBF v_1 = {inputs.FBF_c1, inputs.FBF_c3};
+  f_inner(v, v_1);
+}
+
+FXC validation failure:
+c:\src\dawn\Shader@0x0000026BF19C3950(20,17-22): error X3502: 'f': input parameter 'inputs' missing semantics
+
diff --git a/test/tint/extensions/texel_fetch/additional_params/i.wgsl.expected.ir.dxc.hlsl b/test/tint/extensions/texel_fetch/additional_params/i.wgsl.expected.ir.dxc.hlsl
index 3f437dc..2c95bb4 100644
--- a/test/tint/extensions/texel_fetch/additional_params/i.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/extensions/texel_fetch/additional_params/i.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,32 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Access
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct In {
+  float4 a;
+  float4 b;
+  int4 fbf;
+};
+
+struct f_inputs {
+  int4 In_fbf;
+  float4 In_a : TEXCOORD0;
+  nointerpolation float4 In_b : TEXCOORD1;
+};
+
+
+void g(float a, float b, int c) {
+}
+
+void f_inner(In tint_symbol) {
+  g(tint_symbol.a[0u], tint_symbol.b[1u], tint_symbol.fbf[0u]);
+}
+
+void f(f_inputs inputs) {
+  In v = {inputs.In_a, inputs.In_b, inputs.In_fbf};
+  f_inner(v);
+}
+
+DXC validation failure:
+hlsl.hlsl:21:1: error: Semantic must be defined for all parameters of an entry function or patch constant function
+void f(f_inputs inputs) {
+^
+
diff --git a/test/tint/extensions/texel_fetch/additional_params/i.wgsl.expected.ir.fxc.hlsl b/test/tint/extensions/texel_fetch/additional_params/i.wgsl.expected.ir.fxc.hlsl
index 3f437dc..4e0338f 100644
--- a/test/tint/extensions/texel_fetch/additional_params/i.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/extensions/texel_fetch/additional_params/i.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,30 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Access
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct In {
+  float4 a;
+  float4 b;
+  int4 fbf;
+};
+
+struct f_inputs {
+  int4 In_fbf;
+  float4 In_a : TEXCOORD0;
+  nointerpolation float4 In_b : TEXCOORD1;
+};
+
+
+void g(float a, float b, int c) {
+}
+
+void f_inner(In tint_symbol) {
+  g(tint_symbol.a[0u], tint_symbol.b[1u], tint_symbol.fbf[0u]);
+}
+
+void f(f_inputs inputs) {
+  In v = {inputs.In_a, inputs.In_b, inputs.In_fbf};
+  f_inner(v);
+}
+
+FXC validation failure:
+c:\src\dawn\Shader@0x0000021FC3333270(21,17-22): error X3502: 'f': input parameter 'inputs' missing semantics
+
diff --git a/test/tint/extensions/texel_fetch/additional_params/j.wgsl.expected.ir.dxc.hlsl b/test/tint/extensions/texel_fetch/additional_params/j.wgsl.expected.ir.dxc.hlsl
index a4950c2..3e53520 100644
--- a/test/tint/extensions/texel_fetch/additional_params/j.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/extensions/texel_fetch/additional_params/j.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,25 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/wgsl/reader/program_to_ir/program_to_ir.cc:371 internal compiler error: TINT_UNIMPLEMENTED IR does not currently support texel fetch extension
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct f_inputs {
+  float4 fbf;
+  float4 a : TEXCOORD0;
+  nointerpolation float4 b : TEXCOORD1;
+};
+
+
+void g(float a, float b, float c) {
+}
+
+void f_inner(float4 a, float4 b, float4 fbf) {
+  g(a[0u], b[1u], fbf[0u]);
+}
+
+void f(f_inputs inputs) {
+  f_inner(inputs.a, inputs.b, inputs.fbf);
+}
+
+DXC validation failure:
+hlsl.hlsl:15:1: error: Semantic must be defined for all parameters of an entry function or patch constant function
+void f(f_inputs inputs) {
+^
+
diff --git a/test/tint/extensions/texel_fetch/additional_params/j.wgsl.expected.ir.fxc.hlsl b/test/tint/extensions/texel_fetch/additional_params/j.wgsl.expected.ir.fxc.hlsl
index a4950c2..2248a08 100644
--- a/test/tint/extensions/texel_fetch/additional_params/j.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/extensions/texel_fetch/additional_params/j.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,23 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/wgsl/reader/program_to_ir/program_to_ir.cc:371 internal compiler error: TINT_UNIMPLEMENTED IR does not currently support texel fetch extension
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct f_inputs {
+  float4 fbf;
+  float4 a : TEXCOORD0;
+  nointerpolation float4 b : TEXCOORD1;
+};
+
+
+void g(float a, float b, float c) {
+}
+
+void f_inner(float4 a, float4 b, float4 fbf) {
+  g(a[0u], b[1u], fbf[0u]);
+}
+
+void f(f_inputs inputs) {
+  f_inner(inputs.a, inputs.b, inputs.fbf);
+}
+
+FXC validation failure:
+c:\src\dawn\Shader@0x000002C44D9FF380(15,17-22): error X3502: 'f': input parameter 'inputs' missing semantics
+
diff --git a/test/tint/extensions/texel_fetch/multiple_outputs/multiple_inputs.wgsl.expected.ir.dxc.hlsl b/test/tint/extensions/texel_fetch/multiple_outputs/multiple_inputs.wgsl.expected.ir.dxc.hlsl
index a4950c2..34ebb04 100644
--- a/test/tint/extensions/texel_fetch/multiple_outputs/multiple_inputs.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/extensions/texel_fetch/multiple_outputs/multiple_inputs.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,40 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/wgsl/reader/program_to_ir/program_to_ir.cc:371 internal compiler error: TINT_UNIMPLEMENTED IR does not currently support texel fetch extension
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct Out {
+  float4 x;
+  float4 y;
+  float4 z;
+};
+
+struct f_outputs {
+  float4 Out_x : SV_Target0;
+  float4 Out_y : SV_Target2;
+  float4 Out_z : SV_Target4;
+};
+
+struct f_inputs {
+  float4 fbf_1;
+  float4 fbf_3;
+};
+
+
+Out f_inner(float4 fbf_1, float4 fbf_3) {
+  Out v = {fbf_1, (20.0f).xxxx, fbf_3};
+  return v;
+}
+
+f_outputs f(f_inputs inputs) {
+  Out v_1 = f_inner(inputs.fbf_1, inputs.fbf_3);
+  Out v_2 = v_1;
+  Out v_3 = v_1;
+  Out v_4 = v_1;
+  f_outputs v_5 = {v_2.x, v_3.y, v_4.z};
+  return v_5;
+}
+
+DXC validation failure:
+hlsl.hlsl:24:1: error: Semantic must be defined for all parameters of an entry function or patch constant function
+f_outputs f(f_inputs inputs) {
+^
+hlsl.hlsl:24:1: error: Semantic must be defined for all parameters of an entry function or patch constant function
+
diff --git a/test/tint/extensions/texel_fetch/multiple_outputs/multiple_inputs.wgsl.expected.ir.fxc.hlsl b/test/tint/extensions/texel_fetch/multiple_outputs/multiple_inputs.wgsl.expected.ir.fxc.hlsl
index a4950c2..7b343de 100644
--- a/test/tint/extensions/texel_fetch/multiple_outputs/multiple_inputs.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/extensions/texel_fetch/multiple_outputs/multiple_inputs.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,37 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/wgsl/reader/program_to_ir/program_to_ir.cc:371 internal compiler error: TINT_UNIMPLEMENTED IR does not currently support texel fetch extension
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct Out {
+  float4 x;
+  float4 y;
+  float4 z;
+};
+
+struct f_outputs {
+  float4 Out_x : SV_Target0;
+  float4 Out_y : SV_Target2;
+  float4 Out_z : SV_Target4;
+};
+
+struct f_inputs {
+  float4 fbf_1;
+  float4 fbf_3;
+};
+
+
+Out f_inner(float4 fbf_1, float4 fbf_3) {
+  Out v = {fbf_1, (20.0f).xxxx, fbf_3};
+  return v;
+}
+
+f_outputs f(f_inputs inputs) {
+  Out v_1 = f_inner(inputs.fbf_1, inputs.fbf_3);
+  Out v_2 = v_1;
+  Out v_3 = v_1;
+  Out v_4 = v_1;
+  f_outputs v_5 = {v_2.x, v_3.y, v_4.z};
+  return v_5;
+}
+
+FXC validation failure:
+c:\src\dawn\Shader@0x000001F494FB6AB0(24,22-27): error X3502: 'f': input parameter 'inputs' missing semantics
+
diff --git a/test/tint/extensions/texel_fetch/multiple_outputs/single_input.wgsl.expected.ir.dxc.hlsl b/test/tint/extensions/texel_fetch/multiple_outputs/single_input.wgsl.expected.ir.dxc.hlsl
index a4950c2..a755306 100644
--- a/test/tint/extensions/texel_fetch/multiple_outputs/single_input.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/extensions/texel_fetch/multiple_outputs/single_input.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,38 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/wgsl/reader/program_to_ir/program_to_ir.cc:371 internal compiler error: TINT_UNIMPLEMENTED IR does not currently support texel fetch extension
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct Out {
+  float4 x;
+  float4 y;
+  float4 z;
+};
+
+struct f_outputs {
+  float4 Out_x : SV_Target0;
+  float4 Out_y : SV_Target2;
+  float4 Out_z : SV_Target3;
+};
+
+struct f_inputs {
+  float4 fbf;
+};
+
+
+Out f_inner(float4 fbf) {
+  Out v = {(10.0f).xxxx, fbf, (30.0f).xxxx};
+  return v;
+}
+
+f_outputs f(f_inputs inputs) {
+  Out v_1 = f_inner(inputs.fbf);
+  Out v_2 = v_1;
+  Out v_3 = v_1;
+  Out v_4 = v_1;
+  f_outputs v_5 = {v_2.x, v_3.y, v_4.z};
+  return v_5;
+}
+
+DXC validation failure:
+hlsl.hlsl:23:1: error: Semantic must be defined for all parameters of an entry function or patch constant function
+f_outputs f(f_inputs inputs) {
+^
+
diff --git a/test/tint/extensions/texel_fetch/multiple_outputs/single_input.wgsl.expected.ir.fxc.hlsl b/test/tint/extensions/texel_fetch/multiple_outputs/single_input.wgsl.expected.ir.fxc.hlsl
index a4950c2..6a05e9e 100644
--- a/test/tint/extensions/texel_fetch/multiple_outputs/single_input.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/extensions/texel_fetch/multiple_outputs/single_input.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,36 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/wgsl/reader/program_to_ir/program_to_ir.cc:371 internal compiler error: TINT_UNIMPLEMENTED IR does not currently support texel fetch extension
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct Out {
+  float4 x;
+  float4 y;
+  float4 z;
+};
+
+struct f_outputs {
+  float4 Out_x : SV_Target0;
+  float4 Out_y : SV_Target2;
+  float4 Out_z : SV_Target3;
+};
+
+struct f_inputs {
+  float4 fbf;
+};
+
+
+Out f_inner(float4 fbf) {
+  Out v = {(10.0f).xxxx, fbf, (30.0f).xxxx};
+  return v;
+}
+
+f_outputs f(f_inputs inputs) {
+  Out v_1 = f_inner(inputs.fbf);
+  Out v_2 = v_1;
+  Out v_3 = v_1;
+  Out v_4 = v_1;
+  f_outputs v_5 = {v_2.x, v_3.y, v_4.z};
+  return v_5;
+}
+
+FXC validation failure:
+c:\src\dawn\Shader@0x00000189DB6D0F00(23,22-27): error X3502: 'f': input parameter 'inputs' missing semantics
+
diff --git a/test/tint/extensions/texel_fetch/one_output/multiple_inputs.wgsl.expected.ir.dxc.hlsl b/test/tint/extensions/texel_fetch/one_output/multiple_inputs.wgsl.expected.ir.dxc.hlsl
index a4950c2..43d965e 100644
--- a/test/tint/extensions/texel_fetch/one_output/multiple_inputs.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/extensions/texel_fetch/one_output/multiple_inputs.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,27 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/wgsl/reader/program_to_ir/program_to_ir.cc:371 internal compiler error: TINT_UNIMPLEMENTED IR does not currently support texel fetch extension
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct f_outputs {
+  float4 tint_symbol : SV_Target0;
+};
+
+struct f_inputs {
+  float4 fbf_1;
+  float4 fbf_3;
+};
+
+
+float4 f_inner(float4 fbf_1, float4 fbf_3) {
+  return (fbf_1 + fbf_3);
+}
+
+f_outputs f(f_inputs inputs) {
+  f_outputs v = {f_inner(inputs.fbf_1, inputs.fbf_3)};
+  return v;
+}
+
+DXC validation failure:
+hlsl.hlsl:15:1: error: Semantic must be defined for all parameters of an entry function or patch constant function
+f_outputs f(f_inputs inputs) {
+^
+hlsl.hlsl:15:1: error: Semantic must be defined for all parameters of an entry function or patch constant function
+
diff --git a/test/tint/extensions/texel_fetch/one_output/multiple_inputs.wgsl.expected.ir.fxc.hlsl b/test/tint/extensions/texel_fetch/one_output/multiple_inputs.wgsl.expected.ir.fxc.hlsl
index a4950c2..e21c801 100644
--- a/test/tint/extensions/texel_fetch/one_output/multiple_inputs.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/extensions/texel_fetch/one_output/multiple_inputs.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,24 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/wgsl/reader/program_to_ir/program_to_ir.cc:371 internal compiler error: TINT_UNIMPLEMENTED IR does not currently support texel fetch extension
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct f_outputs {
+  float4 tint_symbol : SV_Target0;
+};
+
+struct f_inputs {
+  float4 fbf_1;
+  float4 fbf_3;
+};
+
+
+float4 f_inner(float4 fbf_1, float4 fbf_3) {
+  return (fbf_1 + fbf_3);
+}
+
+f_outputs f(f_inputs inputs) {
+  f_outputs v = {f_inner(inputs.fbf_1, inputs.fbf_3)};
+  return v;
+}
+
+FXC validation failure:
+c:\src\dawn\Shader@0x000001E1992D3770(15,22-27): error X3502: 'f': input parameter 'inputs' missing semantics
+
diff --git a/test/tint/extensions/texel_fetch/one_output/single_input.wgsl.expected.ir.dxc.hlsl b/test/tint/extensions/texel_fetch/one_output/single_input.wgsl.expected.ir.dxc.hlsl
index a4950c2..a1c577e 100644
--- a/test/tint/extensions/texel_fetch/one_output/single_input.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/extensions/texel_fetch/one_output/single_input.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,25 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/wgsl/reader/program_to_ir/program_to_ir.cc:371 internal compiler error: TINT_UNIMPLEMENTED IR does not currently support texel fetch extension
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct f_outputs {
+  float4 tint_symbol : SV_Target0;
+};
+
+struct f_inputs {
+  float4 fbf;
+};
+
+
+float4 f_inner(float4 fbf) {
+  return fbf;
+}
+
+f_outputs f(f_inputs inputs) {
+  f_outputs v = {f_inner(inputs.fbf)};
+  return v;
+}
+
+DXC validation failure:
+hlsl.hlsl:14:1: error: Semantic must be defined for all parameters of an entry function or patch constant function
+f_outputs f(f_inputs inputs) {
+^
+
diff --git a/test/tint/extensions/texel_fetch/one_output/single_input.wgsl.expected.ir.fxc.hlsl b/test/tint/extensions/texel_fetch/one_output/single_input.wgsl.expected.ir.fxc.hlsl
index a4950c2..18b0c8f 100644
--- a/test/tint/extensions/texel_fetch/one_output/single_input.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/extensions/texel_fetch/one_output/single_input.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,23 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/wgsl/reader/program_to_ir/program_to_ir.cc:371 internal compiler error: TINT_UNIMPLEMENTED IR does not currently support texel fetch extension
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct f_outputs {
+  float4 tint_symbol : SV_Target0;
+};
+
+struct f_inputs {
+  float4 fbf;
+};
+
+
+float4 f_inner(float4 fbf) {
+  return fbf;
+}
+
+f_outputs f(f_inputs inputs) {
+  f_outputs v = {f_inner(inputs.fbf)};
+  return v;
+}
+
+FXC validation failure:
+c:\src\dawn\Shader@0x0000021B5AA40280(14,22-27): error X3502: 'f': input parameter 'inputs' missing semantics
+
diff --git a/test/tint/extensions/texel_fetch/zero_outputs/multiple_inputs.wgsl.expected.ir.dxc.hlsl b/test/tint/extensions/texel_fetch/zero_outputs/multiple_inputs.wgsl.expected.ir.dxc.hlsl
index a4950c2..861206e 100644
--- a/test/tint/extensions/texel_fetch/zero_outputs/multiple_inputs.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/extensions/texel_fetch/zero_outputs/multiple_inputs.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,25 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/wgsl/reader/program_to_ir/program_to_ir.cc:371 internal compiler error: TINT_UNIMPLEMENTED IR does not currently support texel fetch extension
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct f_inputs {
+  float4 fbf_1;
+  float4 fbf_3;
+};
+
+
+void g(float a, float b) {
+}
+
+void f_inner(float4 fbf_1, float4 fbf_3) {
+  g(fbf_1[0u], fbf_3[1u]);
+}
+
+void f(f_inputs inputs) {
+  f_inner(inputs.fbf_1, inputs.fbf_3);
+}
+
+DXC validation failure:
+hlsl.hlsl:14:1: error: Semantic must be defined for all parameters of an entry function or patch constant function
+void f(f_inputs inputs) {
+^
+hlsl.hlsl:14:1: error: Semantic must be defined for all parameters of an entry function or patch constant function
+
diff --git a/test/tint/extensions/texel_fetch/zero_outputs/multiple_inputs.wgsl.expected.ir.fxc.hlsl b/test/tint/extensions/texel_fetch/zero_outputs/multiple_inputs.wgsl.expected.ir.fxc.hlsl
index a4950c2..777a3fc 100644
--- a/test/tint/extensions/texel_fetch/zero_outputs/multiple_inputs.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/extensions/texel_fetch/zero_outputs/multiple_inputs.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,22 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/wgsl/reader/program_to_ir/program_to_ir.cc:371 internal compiler error: TINT_UNIMPLEMENTED IR does not currently support texel fetch extension
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct f_inputs {
+  float4 fbf_1;
+  float4 fbf_3;
+};
+
+
+void g(float a, float b) {
+}
+
+void f_inner(float4 fbf_1, float4 fbf_3) {
+  g(fbf_1[0u], fbf_3[1u]);
+}
+
+void f(f_inputs inputs) {
+  f_inner(inputs.fbf_1, inputs.fbf_3);
+}
+
+FXC validation failure:
+c:\src\dawn\Shader@0x0000022BD30B0F50(14,17-22): error X3502: 'f': input parameter 'inputs' missing semantics
+
diff --git a/test/tint/extensions/texel_fetch/zero_outputs/single_input.wgsl.expected.ir.dxc.hlsl b/test/tint/extensions/texel_fetch/zero_outputs/single_input.wgsl.expected.ir.dxc.hlsl
index a4950c2..32ef986 100644
--- a/test/tint/extensions/texel_fetch/zero_outputs/single_input.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/extensions/texel_fetch/zero_outputs/single_input.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,23 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/wgsl/reader/program_to_ir/program_to_ir.cc:371 internal compiler error: TINT_UNIMPLEMENTED IR does not currently support texel fetch extension
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct f_inputs {
+  float4 fbf;
+};
+
+
+void g(float a) {
+}
+
+void f_inner(float4 fbf) {
+  g(fbf[1u]);
+}
+
+void f(f_inputs inputs) {
+  f_inner(inputs.fbf);
+}
+
+DXC validation failure:
+hlsl.hlsl:13:1: error: Semantic must be defined for all parameters of an entry function or patch constant function
+void f(f_inputs inputs) {
+^
+
diff --git a/test/tint/extensions/texel_fetch/zero_outputs/single_input.wgsl.expected.ir.fxc.hlsl b/test/tint/extensions/texel_fetch/zero_outputs/single_input.wgsl.expected.ir.fxc.hlsl
index a4950c2..a04c3a8 100644
--- a/test/tint/extensions/texel_fetch/zero_outputs/single_input.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/extensions/texel_fetch/zero_outputs/single_input.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,21 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/wgsl/reader/program_to_ir/program_to_ir.cc:371 internal compiler error: TINT_UNIMPLEMENTED IR does not currently support texel fetch extension
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct f_inputs {
+  float4 fbf;
+};
+
+
+void g(float a) {
+}
+
+void f_inner(float4 fbf) {
+  g(fbf[1u]);
+}
+
+void f(f_inputs inputs) {
+  f_inner(inputs.fbf);
+}
+
+FXC validation failure:
+c:\src\dawn\Shader@0x000001B287621C60(13,17-22): error X3502: 'f': input parameter 'inputs' missing semantics
+
diff --git a/test/tint/identifiers/underscore/double/alias.wgsl.expected.ir.dxc.hlsl b/test/tint/identifiers/underscore/double/alias.wgsl.expected.ir.dxc.hlsl
index 1453aa2..a10e1ac 100644
--- a/test/tint/identifiers/underscore/double/alias.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/identifiers/underscore/double/alias.wgsl.expected.ir.dxc.hlsl
@@ -1,14 +1,9 @@
-SKIP: FAILED
 
+RWByteAddressBuffer s : register(u0);
 [numthreads(1, 1, 1)]
 void f() {
   int c = 0;
   int d = 0;
-  s = (c + d);
+  s.Store(0u, asuint((c + d)));
 }
 
-DXC validation failure:
-hlsl.hlsl:5:3: error: use of undeclared identifier 's'
-  s = (c + d);
-  ^
-
diff --git a/test/tint/identifiers/underscore/double/alias.wgsl.expected.ir.fxc.hlsl b/test/tint/identifiers/underscore/double/alias.wgsl.expected.ir.fxc.hlsl
index 03e50e9..a10e1ac 100644
--- a/test/tint/identifiers/underscore/double/alias.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/identifiers/underscore/double/alias.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,9 @@
-SKIP: FAILED
 
+RWByteAddressBuffer s : register(u0);
 [numthreads(1, 1, 1)]
 void f() {
   int c = 0;
   int d = 0;
-  s = (c + d);
+  s.Store(0u, asuint((c + d)));
 }
 
diff --git a/test/tint/identifiers/underscore/double/const.wgsl.expected.ir.dxc.hlsl b/test/tint/identifiers/underscore/double/const.wgsl.expected.ir.dxc.hlsl
index 85e1f7a..55b6c71 100644
--- a/test/tint/identifiers/underscore/double/const.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/identifiers/underscore/double/const.wgsl.expected.ir.dxc.hlsl
@@ -1,12 +1,7 @@
-SKIP: FAILED
 
+RWByteAddressBuffer s : register(u0);
 [numthreads(1, 1, 1)]
 void f() {
-  s = 3;
+  s.Store(0u, asuint(3));
 }
 
-DXC validation failure:
-hlsl.hlsl:3:3: error: use of undeclared identifier 's'
-  s = 3;
-  ^
-
diff --git a/test/tint/identifiers/underscore/double/const.wgsl.expected.ir.fxc.hlsl b/test/tint/identifiers/underscore/double/const.wgsl.expected.ir.fxc.hlsl
index 69b7090..55b6c71 100644
--- a/test/tint/identifiers/underscore/double/const.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/identifiers/underscore/double/const.wgsl.expected.ir.fxc.hlsl
@@ -1,7 +1,7 @@
-SKIP: FAILED
 
+RWByteAddressBuffer s : register(u0);
 [numthreads(1, 1, 1)]
 void f() {
-  s = 3;
+  s.Store(0u, asuint(3));
 }
 
diff --git a/test/tint/identifiers/underscore/double/fn.wgsl.expected.ir.dxc.hlsl b/test/tint/identifiers/underscore/double/fn.wgsl.expected.ir.dxc.hlsl
index 44aca17..e76b06d 100644
--- a/test/tint/identifiers/underscore/double/fn.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/identifiers/underscore/double/fn.wgsl.expected.ir.dxc.hlsl
@@ -1,3 +1,4 @@
+
 void a() {
 }
 
diff --git a/test/tint/identifiers/underscore/double/fn.wgsl.expected.ir.fxc.hlsl b/test/tint/identifiers/underscore/double/fn.wgsl.expected.ir.fxc.hlsl
index b87d8e1..e76b06d 100644
--- a/test/tint/identifiers/underscore/double/fn.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/identifiers/underscore/double/fn.wgsl.expected.ir.fxc.hlsl
@@ -1,4 +1,3 @@
-SKIP: FAILED
 
 void a() {
 }
diff --git a/test/tint/identifiers/underscore/double/let.wgsl.expected.ir.dxc.hlsl b/test/tint/identifiers/underscore/double/let.wgsl.expected.ir.dxc.hlsl
index 93e4799..7eb7751 100644
--- a/test/tint/identifiers/underscore/double/let.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/identifiers/underscore/double/let.wgsl.expected.ir.dxc.hlsl
@@ -1,16 +1,11 @@
-SKIP: FAILED
 
+RWByteAddressBuffer s : register(u0);
 [numthreads(1, 1, 1)]
 void f() {
   int a = 1;
   int a__ = a;
   int b = a;
   int b__ = a__;
-  s = (((a + a__) + b) + b__);
+  s.Store(0u, asuint((((a + a__) + b) + b__)));
 }
 
-DXC validation failure:
-hlsl.hlsl:7:3: error: use of undeclared identifier 's'
-  s = (((a + a__) + b) + b__);
-  ^
-
diff --git a/test/tint/identifiers/underscore/double/let.wgsl.expected.ir.fxc.hlsl b/test/tint/identifiers/underscore/double/let.wgsl.expected.ir.fxc.hlsl
index e5d312b..7eb7751 100644
--- a/test/tint/identifiers/underscore/double/let.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/identifiers/underscore/double/let.wgsl.expected.ir.fxc.hlsl
@@ -1,11 +1,11 @@
-SKIP: FAILED
 
+RWByteAddressBuffer s : register(u0);
 [numthreads(1, 1, 1)]
 void f() {
   int a = 1;
   int a__ = a;
   int b = a;
   int b__ = a__;
-  s = (((a + a__) + b) + b__);
+  s.Store(0u, asuint((((a + a__) + b) + b__)));
 }
 
diff --git a/test/tint/identifiers/underscore/double/parameter.wgsl.expected.ir.dxc.hlsl b/test/tint/identifiers/underscore/double/parameter.wgsl.expected.ir.dxc.hlsl
index 6b047b4..ef6f006 100644
--- a/test/tint/identifiers/underscore/double/parameter.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/identifiers/underscore/double/parameter.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,12 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:287 internal compiler error: Switch() matched no cases. Type: tint::core::ir::FunctionParam
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWByteAddressBuffer s : register(u0);
+void f(int a__) {
+  int b = a__;
+  s.Store(0u, asuint(b));
+}
+
+[numthreads(1, 1, 1)]
+void main() {
+  f(1);
+}
+
diff --git a/test/tint/identifiers/underscore/double/parameter.wgsl.expected.ir.fxc.hlsl b/test/tint/identifiers/underscore/double/parameter.wgsl.expected.ir.fxc.hlsl
index 6b047b4..ef6f006 100644
--- a/test/tint/identifiers/underscore/double/parameter.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/identifiers/underscore/double/parameter.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,12 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:287 internal compiler error: Switch() matched no cases. Type: tint::core::ir::FunctionParam
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWByteAddressBuffer s : register(u0);
+void f(int a__) {
+  int b = a__;
+  s.Store(0u, asuint(b));
+}
+
+[numthreads(1, 1, 1)]
+void main() {
+  f(1);
+}
+
diff --git a/test/tint/identifiers/underscore/double/struct.wgsl.expected.ir.dxc.hlsl b/test/tint/identifiers/underscore/double/struct.wgsl.expected.ir.dxc.hlsl
index 0ba40c6..c653dc9 100644
--- a/test/tint/identifiers/underscore/double/struct.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/identifiers/underscore/double/struct.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,15 @@
-SKIP: FAILED
+struct a__ {
+  int b__;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+
+RWByteAddressBuffer s : register(u0);
+[numthreads(1, 1, 1)]
+void f() {
+  a__ v = (a__)0;
+  a__ c = v;
+  int d = c.b__;
+  a__ v_1 = v;
+  s.Store(0u, asuint((v_1.b__ + d)));
+}
+
diff --git a/test/tint/identifiers/underscore/double/struct.wgsl.expected.ir.fxc.hlsl b/test/tint/identifiers/underscore/double/struct.wgsl.expected.ir.fxc.hlsl
index 0ba40c6..c653dc9 100644
--- a/test/tint/identifiers/underscore/double/struct.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/identifiers/underscore/double/struct.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,15 @@
-SKIP: FAILED
+struct a__ {
+  int b__;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+
+RWByteAddressBuffer s : register(u0);
+[numthreads(1, 1, 1)]
+void f() {
+  a__ v = (a__)0;
+  a__ c = v;
+  int d = c.b__;
+  a__ v_1 = v;
+  s.Store(0u, asuint((v_1.b__ + d)));
+}
+
diff --git a/test/tint/identifiers/underscore/double/var.wgsl.expected.ir.dxc.hlsl b/test/tint/identifiers/underscore/double/var.wgsl.expected.ir.dxc.hlsl
index f4ac14d..dc04584 100644
--- a/test/tint/identifiers/underscore/double/var.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/identifiers/underscore/double/var.wgsl.expected.ir.dxc.hlsl
@@ -1,20 +1,11 @@
-SKIP: FAILED
 
+RWByteAddressBuffer s : register(u0);
+static int a = 1;
+static int a__ = 2;
 [numthreads(1, 1, 1)]
 void f() {
   int b = a;
   int b__ = a__;
-  s = (b + b__);
+  s.Store(0u, asuint((b + b__)));
 }
 
-DXC validation failure:
-hlsl.hlsl:3:11: error: use of undeclared identifier 'a'
-  int b = a;
-          ^
-hlsl.hlsl:4:13: error: use of undeclared identifier 'a__'
-  int b__ = a__;
-            ^
-hlsl.hlsl:5:3: error: use of undeclared identifier 's'
-  s = (b + b__);
-  ^
-
diff --git a/test/tint/identifiers/underscore/double/var.wgsl.expected.ir.fxc.hlsl b/test/tint/identifiers/underscore/double/var.wgsl.expected.ir.fxc.hlsl
index 55fa870..dc04584 100644
--- a/test/tint/identifiers/underscore/double/var.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/identifiers/underscore/double/var.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,11 @@
-SKIP: FAILED
 
+RWByteAddressBuffer s : register(u0);
+static int a = 1;
+static int a__ = 2;
 [numthreads(1, 1, 1)]
 void f() {
   int b = a;
   int b__ = a__;
-  s = (b + b__);
+  s.Store(0u, asuint((b + b__)));
 }
 
diff --git a/test/tint/identifiers/underscore/prefix/lower/alias.wgsl.expected.ir.dxc.hlsl b/test/tint/identifiers/underscore/prefix/lower/alias.wgsl.expected.ir.dxc.hlsl
index 1453aa2..a10e1ac 100644
--- a/test/tint/identifiers/underscore/prefix/lower/alias.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/identifiers/underscore/prefix/lower/alias.wgsl.expected.ir.dxc.hlsl
@@ -1,14 +1,9 @@
-SKIP: FAILED
 
+RWByteAddressBuffer s : register(u0);
 [numthreads(1, 1, 1)]
 void f() {
   int c = 0;
   int d = 0;
-  s = (c + d);
+  s.Store(0u, asuint((c + d)));
 }
 
-DXC validation failure:
-hlsl.hlsl:5:3: error: use of undeclared identifier 's'
-  s = (c + d);
-  ^
-
diff --git a/test/tint/identifiers/underscore/prefix/lower/alias.wgsl.expected.ir.fxc.hlsl b/test/tint/identifiers/underscore/prefix/lower/alias.wgsl.expected.ir.fxc.hlsl
index 03e50e9..a10e1ac 100644
--- a/test/tint/identifiers/underscore/prefix/lower/alias.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/identifiers/underscore/prefix/lower/alias.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,9 @@
-SKIP: FAILED
 
+RWByteAddressBuffer s : register(u0);
 [numthreads(1, 1, 1)]
 void f() {
   int c = 0;
   int d = 0;
-  s = (c + d);
+  s.Store(0u, asuint((c + d)));
 }
 
diff --git a/test/tint/identifiers/underscore/prefix/lower/const.wgsl.expected.ir.dxc.hlsl b/test/tint/identifiers/underscore/prefix/lower/const.wgsl.expected.ir.dxc.hlsl
index 85e1f7a..55b6c71 100644
--- a/test/tint/identifiers/underscore/prefix/lower/const.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/identifiers/underscore/prefix/lower/const.wgsl.expected.ir.dxc.hlsl
@@ -1,12 +1,7 @@
-SKIP: FAILED
 
+RWByteAddressBuffer s : register(u0);
 [numthreads(1, 1, 1)]
 void f() {
-  s = 3;
+  s.Store(0u, asuint(3));
 }
 
-DXC validation failure:
-hlsl.hlsl:3:3: error: use of undeclared identifier 's'
-  s = 3;
-  ^
-
diff --git a/test/tint/identifiers/underscore/prefix/lower/const.wgsl.expected.ir.fxc.hlsl b/test/tint/identifiers/underscore/prefix/lower/const.wgsl.expected.ir.fxc.hlsl
index 69b7090..55b6c71 100644
--- a/test/tint/identifiers/underscore/prefix/lower/const.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/identifiers/underscore/prefix/lower/const.wgsl.expected.ir.fxc.hlsl
@@ -1,7 +1,7 @@
-SKIP: FAILED
 
+RWByteAddressBuffer s : register(u0);
 [numthreads(1, 1, 1)]
 void f() {
-  s = 3;
+  s.Store(0u, asuint(3));
 }
 
diff --git a/test/tint/identifiers/underscore/prefix/lower/fn.wgsl.expected.ir.dxc.hlsl b/test/tint/identifiers/underscore/prefix/lower/fn.wgsl.expected.ir.dxc.hlsl
index 219e717..7f2de99 100644
--- a/test/tint/identifiers/underscore/prefix/lower/fn.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/identifiers/underscore/prefix/lower/fn.wgsl.expected.ir.dxc.hlsl
@@ -1,3 +1,4 @@
+
 void a() {
 }
 
diff --git a/test/tint/identifiers/underscore/prefix/lower/fn.wgsl.expected.ir.fxc.hlsl b/test/tint/identifiers/underscore/prefix/lower/fn.wgsl.expected.ir.fxc.hlsl
index 31820b1..7f2de99 100644
--- a/test/tint/identifiers/underscore/prefix/lower/fn.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/identifiers/underscore/prefix/lower/fn.wgsl.expected.ir.fxc.hlsl
@@ -1,4 +1,3 @@
-SKIP: FAILED
 
 void a() {
 }
diff --git a/test/tint/identifiers/underscore/prefix/lower/let.wgsl.expected.ir.dxc.hlsl b/test/tint/identifiers/underscore/prefix/lower/let.wgsl.expected.ir.dxc.hlsl
index 6f0ce34..5cb83c3 100644
--- a/test/tint/identifiers/underscore/prefix/lower/let.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/identifiers/underscore/prefix/lower/let.wgsl.expected.ir.dxc.hlsl
@@ -1,16 +1,11 @@
-SKIP: FAILED
 
+RWByteAddressBuffer s : register(u0);
 [numthreads(1, 1, 1)]
 void f() {
   int a = 1;
   int _a = a;
   int b = a;
   int _b = _a;
-  s = (((a + _a) + b) + _b);
+  s.Store(0u, asuint((((a + _a) + b) + _b)));
 }
 
-DXC validation failure:
-hlsl.hlsl:7:3: error: use of undeclared identifier 's'
-  s = (((a + _a) + b) + _b);
-  ^
-
diff --git a/test/tint/identifiers/underscore/prefix/lower/let.wgsl.expected.ir.fxc.hlsl b/test/tint/identifiers/underscore/prefix/lower/let.wgsl.expected.ir.fxc.hlsl
index 887a500..5cb83c3 100644
--- a/test/tint/identifiers/underscore/prefix/lower/let.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/identifiers/underscore/prefix/lower/let.wgsl.expected.ir.fxc.hlsl
@@ -1,11 +1,11 @@
-SKIP: FAILED
 
+RWByteAddressBuffer s : register(u0);
 [numthreads(1, 1, 1)]
 void f() {
   int a = 1;
   int _a = a;
   int b = a;
   int _b = _a;
-  s = (((a + _a) + b) + _b);
+  s.Store(0u, asuint((((a + _a) + b) + _b)));
 }
 
diff --git a/test/tint/identifiers/underscore/prefix/lower/parameter.wgsl.expected.ir.dxc.hlsl b/test/tint/identifiers/underscore/prefix/lower/parameter.wgsl.expected.ir.dxc.hlsl
index 6b047b4..af6fd5c 100644
--- a/test/tint/identifiers/underscore/prefix/lower/parameter.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/identifiers/underscore/prefix/lower/parameter.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,12 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:287 internal compiler error: Switch() matched no cases. Type: tint::core::ir::FunctionParam
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWByteAddressBuffer s : register(u0);
+void f(int _a) {
+  int b = _a;
+  s.Store(0u, asuint(b));
+}
+
+[numthreads(1, 1, 1)]
+void main() {
+  f(1);
+}
+
diff --git a/test/tint/identifiers/underscore/prefix/lower/parameter.wgsl.expected.ir.fxc.hlsl b/test/tint/identifiers/underscore/prefix/lower/parameter.wgsl.expected.ir.fxc.hlsl
index 6b047b4..af6fd5c 100644
--- a/test/tint/identifiers/underscore/prefix/lower/parameter.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/identifiers/underscore/prefix/lower/parameter.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,12 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:287 internal compiler error: Switch() matched no cases. Type: tint::core::ir::FunctionParam
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWByteAddressBuffer s : register(u0);
+void f(int _a) {
+  int b = _a;
+  s.Store(0u, asuint(b));
+}
+
+[numthreads(1, 1, 1)]
+void main() {
+  f(1);
+}
+
diff --git a/test/tint/identifiers/underscore/prefix/lower/struct.wgsl.expected.ir.dxc.hlsl b/test/tint/identifiers/underscore/prefix/lower/struct.wgsl.expected.ir.dxc.hlsl
index 0ba40c6..1f12040 100644
--- a/test/tint/identifiers/underscore/prefix/lower/struct.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/identifiers/underscore/prefix/lower/struct.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,15 @@
-SKIP: FAILED
+struct _a {
+  int _b;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+
+RWByteAddressBuffer s : register(u0);
+[numthreads(1, 1, 1)]
+void f() {
+  _a v = (_a)0;
+  _a c = v;
+  int d = c._b;
+  _a v_1 = v;
+  s.Store(0u, asuint((v_1._b + d)));
+}
+
diff --git a/test/tint/identifiers/underscore/prefix/lower/struct.wgsl.expected.ir.fxc.hlsl b/test/tint/identifiers/underscore/prefix/lower/struct.wgsl.expected.ir.fxc.hlsl
index 0ba40c6..1f12040 100644
--- a/test/tint/identifiers/underscore/prefix/lower/struct.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/identifiers/underscore/prefix/lower/struct.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,15 @@
-SKIP: FAILED
+struct _a {
+  int _b;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+
+RWByteAddressBuffer s : register(u0);
+[numthreads(1, 1, 1)]
+void f() {
+  _a v = (_a)0;
+  _a c = v;
+  int d = c._b;
+  _a v_1 = v;
+  s.Store(0u, asuint((v_1._b + d)));
+}
+
diff --git a/test/tint/identifiers/underscore/prefix/lower/var.wgsl.expected.ir.dxc.hlsl b/test/tint/identifiers/underscore/prefix/lower/var.wgsl.expected.ir.dxc.hlsl
index dc7bce6..0fefc7f 100644
--- a/test/tint/identifiers/underscore/prefix/lower/var.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/identifiers/underscore/prefix/lower/var.wgsl.expected.ir.dxc.hlsl
@@ -1,20 +1,11 @@
-SKIP: FAILED
 
+RWByteAddressBuffer s : register(u0);
+static int a = 1;
+static int _a = 2;
 [numthreads(1, 1, 1)]
 void f() {
   int b = a;
   int _b = _a;
-  s = (b + _b);
+  s.Store(0u, asuint((b + _b)));
 }
 
-DXC validation failure:
-hlsl.hlsl:3:11: error: use of undeclared identifier 'a'
-  int b = a;
-          ^
-hlsl.hlsl:4:12: error: use of undeclared identifier '_a'
-  int _b = _a;
-           ^
-hlsl.hlsl:5:3: error: use of undeclared identifier 's'
-  s = (b + _b);
-  ^
-
diff --git a/test/tint/identifiers/underscore/prefix/lower/var.wgsl.expected.ir.fxc.hlsl b/test/tint/identifiers/underscore/prefix/lower/var.wgsl.expected.ir.fxc.hlsl
index cbd01f7..0fefc7f 100644
--- a/test/tint/identifiers/underscore/prefix/lower/var.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/identifiers/underscore/prefix/lower/var.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,11 @@
-SKIP: FAILED
 
+RWByteAddressBuffer s : register(u0);
+static int a = 1;
+static int _a = 2;
 [numthreads(1, 1, 1)]
 void f() {
   int b = a;
   int _b = _a;
-  s = (b + _b);
+  s.Store(0u, asuint((b + _b)));
 }
 
diff --git a/test/tint/identifiers/underscore/prefix/upper/alias.wgsl.expected.ir.dxc.hlsl b/test/tint/identifiers/underscore/prefix/upper/alias.wgsl.expected.ir.dxc.hlsl
index 1453aa2..a10e1ac 100644
--- a/test/tint/identifiers/underscore/prefix/upper/alias.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/identifiers/underscore/prefix/upper/alias.wgsl.expected.ir.dxc.hlsl
@@ -1,14 +1,9 @@
-SKIP: FAILED
 
+RWByteAddressBuffer s : register(u0);
 [numthreads(1, 1, 1)]
 void f() {
   int c = 0;
   int d = 0;
-  s = (c + d);
+  s.Store(0u, asuint((c + d)));
 }
 
-DXC validation failure:
-hlsl.hlsl:5:3: error: use of undeclared identifier 's'
-  s = (c + d);
-  ^
-
diff --git a/test/tint/identifiers/underscore/prefix/upper/alias.wgsl.expected.ir.fxc.hlsl b/test/tint/identifiers/underscore/prefix/upper/alias.wgsl.expected.ir.fxc.hlsl
index 03e50e9..a10e1ac 100644
--- a/test/tint/identifiers/underscore/prefix/upper/alias.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/identifiers/underscore/prefix/upper/alias.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,9 @@
-SKIP: FAILED
 
+RWByteAddressBuffer s : register(u0);
 [numthreads(1, 1, 1)]
 void f() {
   int c = 0;
   int d = 0;
-  s = (c + d);
+  s.Store(0u, asuint((c + d)));
 }
 
diff --git a/test/tint/identifiers/underscore/prefix/upper/fn.wgsl.expected.ir.dxc.hlsl b/test/tint/identifiers/underscore/prefix/upper/fn.wgsl.expected.ir.dxc.hlsl
index a7ea685..8bcdd5f 100644
--- a/test/tint/identifiers/underscore/prefix/upper/fn.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/identifiers/underscore/prefix/upper/fn.wgsl.expected.ir.dxc.hlsl
@@ -1,3 +1,4 @@
+
 void A() {
 }
 
diff --git a/test/tint/identifiers/underscore/prefix/upper/fn.wgsl.expected.ir.fxc.hlsl b/test/tint/identifiers/underscore/prefix/upper/fn.wgsl.expected.ir.fxc.hlsl
index b0c181e..8bcdd5f 100644
--- a/test/tint/identifiers/underscore/prefix/upper/fn.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/identifiers/underscore/prefix/upper/fn.wgsl.expected.ir.fxc.hlsl
@@ -1,4 +1,3 @@
-SKIP: FAILED
 
 void A() {
 }
diff --git a/test/tint/identifiers/underscore/prefix/upper/let.wgsl.expected.ir.dxc.hlsl b/test/tint/identifiers/underscore/prefix/upper/let.wgsl.expected.ir.dxc.hlsl
index 2fe0e46..d250ab9 100644
--- a/test/tint/identifiers/underscore/prefix/upper/let.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/identifiers/underscore/prefix/upper/let.wgsl.expected.ir.dxc.hlsl
@@ -1,16 +1,11 @@
-SKIP: FAILED
 
+RWByteAddressBuffer s : register(u0);
 [numthreads(1, 1, 1)]
 void f() {
   int A = 1;
   int _A = 2;
   int B = A;
   int _B = _A;
-  s = (((A + _A) + B) + _B);
+  s.Store(0u, asuint((((A + _A) + B) + _B)));
 }
 
-DXC validation failure:
-hlsl.hlsl:7:3: error: use of undeclared identifier 's'
-  s = (((A + _A) + B) + _B);
-  ^
-
diff --git a/test/tint/identifiers/underscore/prefix/upper/let.wgsl.expected.ir.fxc.hlsl b/test/tint/identifiers/underscore/prefix/upper/let.wgsl.expected.ir.fxc.hlsl
index b74062e..d250ab9 100644
--- a/test/tint/identifiers/underscore/prefix/upper/let.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/identifiers/underscore/prefix/upper/let.wgsl.expected.ir.fxc.hlsl
@@ -1,11 +1,11 @@
-SKIP: FAILED
 
+RWByteAddressBuffer s : register(u0);
 [numthreads(1, 1, 1)]
 void f() {
   int A = 1;
   int _A = 2;
   int B = A;
   int _B = _A;
-  s = (((A + _A) + B) + _B);
+  s.Store(0u, asuint((((A + _A) + B) + _B)));
 }
 
diff --git a/test/tint/identifiers/underscore/prefix/upper/parameter.wgsl.expected.ir.dxc.hlsl b/test/tint/identifiers/underscore/prefix/upper/parameter.wgsl.expected.ir.dxc.hlsl
index 6b047b4..a8b4827 100644
--- a/test/tint/identifiers/underscore/prefix/upper/parameter.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/identifiers/underscore/prefix/upper/parameter.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,12 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:287 internal compiler error: Switch() matched no cases. Type: tint::core::ir::FunctionParam
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWByteAddressBuffer s : register(u0);
+void f(int _A) {
+  int B = _A;
+  s.Store(0u, asuint(B));
+}
+
+[numthreads(1, 1, 1)]
+void main() {
+  f(1);
+}
+
diff --git a/test/tint/identifiers/underscore/prefix/upper/parameter.wgsl.expected.ir.fxc.hlsl b/test/tint/identifiers/underscore/prefix/upper/parameter.wgsl.expected.ir.fxc.hlsl
index 6b047b4..a8b4827 100644
--- a/test/tint/identifiers/underscore/prefix/upper/parameter.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/identifiers/underscore/prefix/upper/parameter.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,12 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:287 internal compiler error: Switch() matched no cases. Type: tint::core::ir::FunctionParam
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWByteAddressBuffer s : register(u0);
+void f(int _A) {
+  int B = _A;
+  s.Store(0u, asuint(B));
+}
+
+[numthreads(1, 1, 1)]
+void main() {
+  f(1);
+}
+
diff --git a/test/tint/identifiers/underscore/prefix/upper/struct.wgsl.expected.ir.dxc.hlsl b/test/tint/identifiers/underscore/prefix/upper/struct.wgsl.expected.ir.dxc.hlsl
index 0ba40c6..004a570 100644
--- a/test/tint/identifiers/underscore/prefix/upper/struct.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/identifiers/underscore/prefix/upper/struct.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,15 @@
-SKIP: FAILED
+struct _A {
+  int _B;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+
+RWByteAddressBuffer s : register(u0);
+[numthreads(1, 1, 1)]
+void f() {
+  _A v = (_A)0;
+  _A c = v;
+  int d = c._B;
+  _A v_1 = v;
+  s.Store(0u, asuint((v_1._B + d)));
+}
+
diff --git a/test/tint/identifiers/underscore/prefix/upper/struct.wgsl.expected.ir.fxc.hlsl b/test/tint/identifiers/underscore/prefix/upper/struct.wgsl.expected.ir.fxc.hlsl
index 0ba40c6..004a570 100644
--- a/test/tint/identifiers/underscore/prefix/upper/struct.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/identifiers/underscore/prefix/upper/struct.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,15 @@
-SKIP: FAILED
+struct _A {
+  int _B;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+
+RWByteAddressBuffer s : register(u0);
+[numthreads(1, 1, 1)]
+void f() {
+  _A v = (_A)0;
+  _A c = v;
+  int d = c._B;
+  _A v_1 = v;
+  s.Store(0u, asuint((v_1._B + d)));
+}
+
diff --git a/test/tint/identifiers/underscore/prefix/upper/var.wgsl.expected.ir.dxc.hlsl b/test/tint/identifiers/underscore/prefix/upper/var.wgsl.expected.ir.dxc.hlsl
index 599db04..1d356ed 100644
--- a/test/tint/identifiers/underscore/prefix/upper/var.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/identifiers/underscore/prefix/upper/var.wgsl.expected.ir.dxc.hlsl
@@ -1,20 +1,11 @@
-SKIP: FAILED
 
+RWByteAddressBuffer s : register(u0);
+static int A = 1;
+static int _A = 2;
 [numthreads(1, 1, 1)]
 void f() {
   int B = A;
   int _B = _A;
-  s = (B + _B);
+  s.Store(0u, asuint((B + _B)));
 }
 
-DXC validation failure:
-hlsl.hlsl:3:11: error: use of undeclared identifier 'A'
-  int B = A;
-          ^
-hlsl.hlsl:4:12: error: use of undeclared identifier '_A'
-  int _B = _A;
-           ^
-hlsl.hlsl:5:3: error: use of undeclared identifier 's'
-  s = (B + _B);
-  ^
-
diff --git a/test/tint/identifiers/underscore/prefix/upper/var.wgsl.expected.ir.fxc.hlsl b/test/tint/identifiers/underscore/prefix/upper/var.wgsl.expected.ir.fxc.hlsl
index 9402e84..1d356ed 100644
--- a/test/tint/identifiers/underscore/prefix/upper/var.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/identifiers/underscore/prefix/upper/var.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,11 @@
-SKIP: FAILED
 
+RWByteAddressBuffer s : register(u0);
+static int A = 1;
+static int _A = 2;
 [numthreads(1, 1, 1)]
 void f() {
   int B = A;
   int _B = _A;
-  s = (B + _B);
+  s.Store(0u, asuint((B + _B)));
 }
 
diff --git a/test/tint/layout/storage/mat2x2/f32.wgsl.expected.ir.dxc.hlsl b/test/tint/layout/storage/mat2x2/f32.wgsl.expected.ir.dxc.hlsl
index 3f437dc..ec5c7a2 100644
--- a/test/tint/layout/storage/mat2x2/f32.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/layout/storage/mat2x2/f32.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,18 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Access
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWByteAddressBuffer ssbo : register(u0);
+void v_1(uint offset, float2x2 obj) {
+  ssbo.Store2((offset + 0u), asuint(obj[0u]));
+  ssbo.Store2((offset + 8u), asuint(obj[1u]));
+}
+
+float2x2 v_2(uint offset) {
+  float2 v_3 = asfloat(ssbo.Load2((offset + 0u)));
+  return float2x2(v_3, asfloat(ssbo.Load2((offset + 8u))));
+}
+
+[numthreads(1, 1, 1)]
+void f() {
+  float2x2 v = v_2(0u);
+  v_1(0u, v);
+}
+
diff --git a/test/tint/layout/storage/mat2x2/f32.wgsl.expected.ir.fxc.hlsl b/test/tint/layout/storage/mat2x2/f32.wgsl.expected.ir.fxc.hlsl
index 3f437dc..ec5c7a2 100644
--- a/test/tint/layout/storage/mat2x2/f32.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/layout/storage/mat2x2/f32.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,18 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Access
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWByteAddressBuffer ssbo : register(u0);
+void v_1(uint offset, float2x2 obj) {
+  ssbo.Store2((offset + 0u), asuint(obj[0u]));
+  ssbo.Store2((offset + 8u), asuint(obj[1u]));
+}
+
+float2x2 v_2(uint offset) {
+  float2 v_3 = asfloat(ssbo.Load2((offset + 0u)));
+  return float2x2(v_3, asfloat(ssbo.Load2((offset + 8u))));
+}
+
+[numthreads(1, 1, 1)]
+void f() {
+  float2x2 v = v_2(0u);
+  v_1(0u, v);
+}
+
diff --git a/test/tint/layout/storage/mat2x2/stride/16.spvasm.expected.ir.dxc.hlsl b/test/tint/layout/storage/mat2x2/stride/16.spvasm.expected.ir.dxc.hlsl
index c6e1d96..50982f9 100644
--- a/test/tint/layout/storage/mat2x2/stride/16.spvasm.expected.ir.dxc.hlsl
+++ b/test/tint/layout/storage/mat2x2/stride/16.spvasm.expected.ir.dxc.hlsl
@@ -1,9 +1,81 @@
-SKIP: FAILED
+struct strided_arr {
+  float2 el;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Construct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+
+RWByteAddressBuffer ssbo : register(u0);
+typedef strided_arr ary_ret[2];
+ary_ret mat2x2_stride_16_to_arr(float2x2 m) {
+  strided_arr v = {m[0u]};
+  strided_arr v_1 = v;
+  strided_arr v_2 = {m[1u]};
+  strided_arr v_3[2] = {v_1, v_2};
+  return v_3;
+}
+
+float2x2 arr_to_mat2x2_stride_16(strided_arr arr[2]) {
+  return float2x2(arr[0u].el, arr[1u].el);
+}
+
+void v_4(uint offset, strided_arr obj) {
+  ssbo.Store2((offset + 0u), asuint(obj.el));
+}
+
+void v_5(uint offset, strided_arr obj[2]) {
+  {
+    uint v_6 = 0u;
+    v_6 = 0u;
+    while(true) {
+      uint v_7 = v_6;
+      if ((v_7 >= 2u)) {
+        break;
+      }
+      strided_arr v_8 = obj[v_7];
+      v_4((offset + (v_7 * 16u)), v_8);
+      {
+        v_6 = (v_7 + 1u);
+      }
+      continue;
+    }
+  }
+}
+
+strided_arr v_9(uint offset) {
+  strided_arr v_10 = {asfloat(ssbo.Load2((offset + 0u)))};
+  return v_10;
+}
+
+typedef strided_arr ary_ret_1[2];
+ary_ret_1 v_11(uint offset) {
+  strided_arr a[2] = (strided_arr[2])0;
+  {
+    uint v_12 = 0u;
+    v_12 = 0u;
+    while(true) {
+      uint v_13 = v_12;
+      if ((v_13 >= 2u)) {
+        break;
+      }
+      strided_arr v_14 = v_9((offset + (v_13 * 16u)));
+      a[v_13] = v_14;
+      {
+        v_12 = (v_13 + 1u);
+      }
+      continue;
+    }
+  }
+  strided_arr v_15[2] = a;
+  return v_15;
+}
+
+void f_1() {
+  strided_arr v_16[2] = v_11(0u);
+  strided_arr v_17[2] = mat2x2_stride_16_to_arr(arr_to_mat2x2_stride_16(v_16));
+  v_5(0u, v_17);
+}
+
+[numthreads(1, 1, 1)]
+void f() {
+  f_1();
+}
+
diff --git a/test/tint/layout/storage/mat2x2/stride/16.spvasm.expected.ir.fxc.hlsl b/test/tint/layout/storage/mat2x2/stride/16.spvasm.expected.ir.fxc.hlsl
index c6e1d96..50982f9 100644
--- a/test/tint/layout/storage/mat2x2/stride/16.spvasm.expected.ir.fxc.hlsl
+++ b/test/tint/layout/storage/mat2x2/stride/16.spvasm.expected.ir.fxc.hlsl
@@ -1,9 +1,81 @@
-SKIP: FAILED
+struct strided_arr {
+  float2 el;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Construct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+
+RWByteAddressBuffer ssbo : register(u0);
+typedef strided_arr ary_ret[2];
+ary_ret mat2x2_stride_16_to_arr(float2x2 m) {
+  strided_arr v = {m[0u]};
+  strided_arr v_1 = v;
+  strided_arr v_2 = {m[1u]};
+  strided_arr v_3[2] = {v_1, v_2};
+  return v_3;
+}
+
+float2x2 arr_to_mat2x2_stride_16(strided_arr arr[2]) {
+  return float2x2(arr[0u].el, arr[1u].el);
+}
+
+void v_4(uint offset, strided_arr obj) {
+  ssbo.Store2((offset + 0u), asuint(obj.el));
+}
+
+void v_5(uint offset, strided_arr obj[2]) {
+  {
+    uint v_6 = 0u;
+    v_6 = 0u;
+    while(true) {
+      uint v_7 = v_6;
+      if ((v_7 >= 2u)) {
+        break;
+      }
+      strided_arr v_8 = obj[v_7];
+      v_4((offset + (v_7 * 16u)), v_8);
+      {
+        v_6 = (v_7 + 1u);
+      }
+      continue;
+    }
+  }
+}
+
+strided_arr v_9(uint offset) {
+  strided_arr v_10 = {asfloat(ssbo.Load2((offset + 0u)))};
+  return v_10;
+}
+
+typedef strided_arr ary_ret_1[2];
+ary_ret_1 v_11(uint offset) {
+  strided_arr a[2] = (strided_arr[2])0;
+  {
+    uint v_12 = 0u;
+    v_12 = 0u;
+    while(true) {
+      uint v_13 = v_12;
+      if ((v_13 >= 2u)) {
+        break;
+      }
+      strided_arr v_14 = v_9((offset + (v_13 * 16u)));
+      a[v_13] = v_14;
+      {
+        v_12 = (v_13 + 1u);
+      }
+      continue;
+    }
+  }
+  strided_arr v_15[2] = a;
+  return v_15;
+}
+
+void f_1() {
+  strided_arr v_16[2] = v_11(0u);
+  strided_arr v_17[2] = mat2x2_stride_16_to_arr(arr_to_mat2x2_stride_16(v_16));
+  v_5(0u, v_17);
+}
+
+[numthreads(1, 1, 1)]
+void f() {
+  f_1();
+}
+
diff --git a/test/tint/let/inferred/function.wgsl.expected.ir.dxc.hlsl b/test/tint/let/inferred/function.wgsl.expected.ir.dxc.hlsl
index 0ba40c6..9e7bb7f 100644
--- a/test/tint/let/inferred/function.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/let/inferred/function.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,59 @@
-SKIP: FAILED
+struct MyStruct {
+  float f1;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct main_outputs {
+  float4 tint_symbol : SV_Target0;
+};
+
+
+int ret_i32() {
+  return 1;
+}
+
+uint ret_u32() {
+  return 1u;
+}
+
+float ret_f32() {
+  return 1.0f;
+}
+
+MyStruct ret_MyStruct() {
+  MyStruct v = (MyStruct)0;
+  return v;
+}
+
+typedef float ary_ret[10];
+ary_ret ret_MyArray() {
+  float v_1[10] = (float[10])0;
+  return v_1;
+}
+
+void let_decls() {
+  int v1 = 1;
+  uint v2 = 1u;
+  float v3 = 1.0f;
+  int3 v4 = (1).xxx;
+  uint3 v5 = (1u).xxx;
+  float3 v6 = (1.0f).xxx;
+  float3x3 v7 = float3x3(v6, v6, v6);
+  MyStruct v8 = {1.0f};
+  float v9[10] = (float[10])0;
+  int v10 = ret_i32();
+  uint v11 = ret_u32();
+  float v12 = ret_f32();
+  MyStruct v13 = ret_MyStruct();
+  MyStruct v14 = ret_MyStruct();
+  float v15[10] = ret_MyArray();
+}
+
+float4 main_inner() {
+  return (0.0f).xxxx;
+}
+
+main_outputs main() {
+  main_outputs v_2 = {main_inner()};
+  return v_2;
+}
+
diff --git a/test/tint/let/inferred/function.wgsl.expected.ir.fxc.hlsl b/test/tint/let/inferred/function.wgsl.expected.ir.fxc.hlsl
index 0ba40c6..9e7bb7f 100644
--- a/test/tint/let/inferred/function.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/let/inferred/function.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,59 @@
-SKIP: FAILED
+struct MyStruct {
+  float f1;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct main_outputs {
+  float4 tint_symbol : SV_Target0;
+};
+
+
+int ret_i32() {
+  return 1;
+}
+
+uint ret_u32() {
+  return 1u;
+}
+
+float ret_f32() {
+  return 1.0f;
+}
+
+MyStruct ret_MyStruct() {
+  MyStruct v = (MyStruct)0;
+  return v;
+}
+
+typedef float ary_ret[10];
+ary_ret ret_MyArray() {
+  float v_1[10] = (float[10])0;
+  return v_1;
+}
+
+void let_decls() {
+  int v1 = 1;
+  uint v2 = 1u;
+  float v3 = 1.0f;
+  int3 v4 = (1).xxx;
+  uint3 v5 = (1u).xxx;
+  float3 v6 = (1.0f).xxx;
+  float3x3 v7 = float3x3(v6, v6, v6);
+  MyStruct v8 = {1.0f};
+  float v9[10] = (float[10])0;
+  int v10 = ret_i32();
+  uint v11 = ret_u32();
+  float v12 = ret_f32();
+  MyStruct v13 = ret_MyStruct();
+  MyStruct v14 = ret_MyStruct();
+  float v15[10] = ret_MyArray();
+}
+
+float4 main_inner() {
+  return (0.0f).xxxx;
+}
+
+main_outputs main() {
+  main_outputs v_2 = {main_inner()};
+  return v_2;
+}
+
diff --git a/test/tint/loops/continue_in_switch.wgsl.expected.ir.dxc.hlsl b/test/tint/loops/continue_in_switch.wgsl.expected.ir.dxc.hlsl
index adbb0c1..289f0c4 100644
--- a/test/tint/loops/continue_in_switch.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/loops/continue_in_switch.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,31 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:198 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Loop
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+[numthreads(1, 1, 1)]
+void f() {
+  {
+    int i = 0;
+    while(true) {
+      if ((i < 4)) {
+      } else {
+        break;
+      }
+      switch(i) {
+        case 0:
+        {
+          {
+            i = (i + 1);
+          }
+          continue;
+        }
+        default:
+        {
+          break;
+        }
+      }
+      {
+        i = (i + 1);
+      }
+      continue;
+    }
+  }
+}
+
diff --git a/test/tint/loops/continue_in_switch.wgsl.expected.ir.fxc.hlsl b/test/tint/loops/continue_in_switch.wgsl.expected.ir.fxc.hlsl
index adbb0c1..25ad44c 100644
--- a/test/tint/loops/continue_in_switch.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/loops/continue_in_switch.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,36 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:198 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Loop
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+
+[numthreads(1, 1, 1)]
+void f() {
+  {
+    int i = 0;
+    while(true) {
+      if ((i < 4)) {
+      } else {
+        break;
+      }
+      switch(i) {
+        case 0:
+        {
+          {
+            i = (i + 1);
+          }
+          continue;
+        }
+        default:
+        {
+          break;
+        }
+      }
+      {
+        i = (i + 1);
+      }
+      continue;
+    }
+  }
+}
+
+FXC validation failure:
+c:\src\dawn\Shader@0x0000028661043900(17,11-19): error X3708: continue cannot be used in a switch
+
diff --git a/test/tint/loops/loop.wgsl.expected.ir.dxc.hlsl b/test/tint/loops/loop.wgsl.expected.ir.dxc.hlsl
index adbb0c1..155b22d 100644
--- a/test/tint/loops/loop.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/loops/loop.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,21 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:198 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Loop
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+int f() {
+  int i = 0;
+  {
+    while(true) {
+      i = (i + 1);
+      if ((i > 4)) {
+        return i;
+      }
+      {
+      }
+      continue;
+    }
+  }
+  /* unreachable */
+}
+
+[numthreads(1, 1, 1)]
+void unused_entry_point() {
+}
+
diff --git a/test/tint/loops/loop.wgsl.expected.ir.fxc.hlsl b/test/tint/loops/loop.wgsl.expected.ir.fxc.hlsl
index adbb0c1..155b22d 100644
--- a/test/tint/loops/loop.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/loops/loop.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,21 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:198 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Loop
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+int f() {
+  int i = 0;
+  {
+    while(true) {
+      i = (i + 1);
+      if ((i > 4)) {
+        return i;
+      }
+      {
+      }
+      continue;
+    }
+  }
+  /* unreachable */
+}
+
+[numthreads(1, 1, 1)]
+void unused_entry_point() {
+}
+
diff --git a/test/tint/loops/loop_with_break_if.wgsl.expected.ir.dxc.hlsl b/test/tint/loops/loop_with_break_if.wgsl.expected.ir.dxc.hlsl
index adbb0c1..78a8184 100644
--- a/test/tint/loops/loop_with_break_if.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/loops/loop_with_break_if.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,22 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:198 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Loop
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+int f() {
+  int i = 0;
+  {
+    while(true) {
+      if ((i > 4)) {
+        return i;
+      }
+      {
+        i = (i + 1);
+        if ((i == 4)) { break; }
+      }
+      continue;
+    }
+  }
+  return i;
+}
+
+[numthreads(1, 1, 1)]
+void unused_entry_point() {
+}
+
diff --git a/test/tint/loops/loop_with_break_if.wgsl.expected.ir.fxc.hlsl b/test/tint/loops/loop_with_break_if.wgsl.expected.ir.fxc.hlsl
index adbb0c1..78a8184 100644
--- a/test/tint/loops/loop_with_break_if.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/loops/loop_with_break_if.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,22 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:198 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Loop
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+int f() {
+  int i = 0;
+  {
+    while(true) {
+      if ((i > 4)) {
+        return i;
+      }
+      {
+        i = (i + 1);
+        if ((i == 4)) { break; }
+      }
+      continue;
+    }
+  }
+  return i;
+}
+
+[numthreads(1, 1, 1)]
+void unused_entry_point() {
+}
+
diff --git a/test/tint/loops/loop_with_continuing.wgsl.expected.ir.dxc.hlsl b/test/tint/loops/loop_with_continuing.wgsl.expected.ir.dxc.hlsl
index adbb0c1..f22c7ed 100644
--- a/test/tint/loops/loop_with_continuing.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/loops/loop_with_continuing.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,21 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:198 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Loop
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+int f() {
+  int i = 0;
+  {
+    while(true) {
+      if ((i > 4)) {
+        return i;
+      }
+      {
+        i = (i + 1);
+      }
+      continue;
+    }
+  }
+  /* unreachable */
+}
+
+[numthreads(1, 1, 1)]
+void unused_entry_point() {
+}
+
diff --git a/test/tint/loops/loop_with_continuing.wgsl.expected.ir.fxc.hlsl b/test/tint/loops/loop_with_continuing.wgsl.expected.ir.fxc.hlsl
index adbb0c1..f22c7ed 100644
--- a/test/tint/loops/loop_with_continuing.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/loops/loop_with_continuing.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,21 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:198 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Loop
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+int f() {
+  int i = 0;
+  {
+    while(true) {
+      if ((i > 4)) {
+        return i;
+      }
+      {
+        i = (i + 1);
+      }
+      continue;
+    }
+  }
+  /* unreachable */
+}
+
+[numthreads(1, 1, 1)]
+void unused_entry_point() {
+}
+
diff --git a/test/tint/loops/multiple_continues.wgsl.expected.ir.dxc.hlsl b/test/tint/loops/multiple_continues.wgsl.expected.ir.dxc.hlsl
index adbb0c1..b610083 100644
--- a/test/tint/loops/multiple_continues.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/loops/multiple_continues.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,45 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:198 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Loop
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+[numthreads(1, 1, 1)]
+void main() {
+  {
+    int i = 0;
+    while(true) {
+      if ((i < 2)) {
+      } else {
+        break;
+      }
+      switch(i) {
+        case 0:
+        {
+          {
+            i = (i + 1);
+          }
+          continue;
+        }
+        case 1:
+        {
+          {
+            i = (i + 1);
+          }
+          continue;
+        }
+        case 2:
+        {
+          {
+            i = (i + 1);
+          }
+          continue;
+        }
+        default:
+        {
+          break;
+        }
+      }
+      {
+        i = (i + 1);
+      }
+      continue;
+    }
+  }
+}
+
diff --git a/test/tint/loops/multiple_continues.wgsl.expected.ir.fxc.hlsl b/test/tint/loops/multiple_continues.wgsl.expected.ir.fxc.hlsl
index adbb0c1..1728ba2 100644
--- a/test/tint/loops/multiple_continues.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/loops/multiple_continues.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,50 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:198 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Loop
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+
+[numthreads(1, 1, 1)]
+void main() {
+  {
+    int i = 0;
+    while(true) {
+      if ((i < 2)) {
+      } else {
+        break;
+      }
+      switch(i) {
+        case 0:
+        {
+          {
+            i = (i + 1);
+          }
+          continue;
+        }
+        case 1:
+        {
+          {
+            i = (i + 1);
+          }
+          continue;
+        }
+        case 2:
+        {
+          {
+            i = (i + 1);
+          }
+          continue;
+        }
+        default:
+        {
+          break;
+        }
+      }
+      {
+        i = (i + 1);
+      }
+      continue;
+    }
+  }
+}
+
+FXC validation failure:
+c:\src\dawn\Shader@0x000002D89A881430(17,11-19): error X3708: continue cannot be used in a switch
+
diff --git a/test/tint/loops/multiple_switch.wgsl.expected.ir.dxc.hlsl b/test/tint/loops/multiple_switch.wgsl.expected.ir.dxc.hlsl
index adbb0c1..214dc9a 100644
--- a/test/tint/loops/multiple_switch.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/loops/multiple_switch.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,45 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:198 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Loop
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+[numthreads(1, 1, 1)]
+void main() {
+  int i = 0;
+  {
+    int i = 0;
+    while(true) {
+      if ((i < 2)) {
+      } else {
+        break;
+      }
+      switch(i) {
+        case 0:
+        {
+          {
+            i = (i + 1);
+          }
+          continue;
+        }
+        default:
+        {
+          break;
+        }
+      }
+      switch(i) {
+        case 0:
+        {
+          {
+            i = (i + 1);
+          }
+          continue;
+        }
+        default:
+        {
+          break;
+        }
+      }
+      {
+        i = (i + 1);
+      }
+      continue;
+    }
+  }
+}
+
diff --git a/test/tint/loops/multiple_switch.wgsl.expected.ir.fxc.hlsl b/test/tint/loops/multiple_switch.wgsl.expected.ir.fxc.hlsl
index adbb0c1..e4952b7 100644
--- a/test/tint/loops/multiple_switch.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/loops/multiple_switch.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,50 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:198 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Loop
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+
+[numthreads(1, 1, 1)]
+void main() {
+  int i = 0;
+  {
+    int i = 0;
+    while(true) {
+      if ((i < 2)) {
+      } else {
+        break;
+      }
+      switch(i) {
+        case 0:
+        {
+          {
+            i = (i + 1);
+          }
+          continue;
+        }
+        default:
+        {
+          break;
+        }
+      }
+      switch(i) {
+        case 0:
+        {
+          {
+            i = (i + 1);
+          }
+          continue;
+        }
+        default:
+        {
+          break;
+        }
+      }
+      {
+        i = (i + 1);
+      }
+      continue;
+    }
+  }
+}
+
+FXC validation failure:
+c:\src\dawn\Shader@0x000001BB3C910330(18,11-19): error X3708: continue cannot be used in a switch
+
diff --git a/test/tint/loops/nested_loop_loop_switch.wgsl.expected.ir.dxc.hlsl b/test/tint/loops/nested_loop_loop_switch.wgsl.expected.ir.dxc.hlsl
index adbb0c1..2655498 100644
--- a/test/tint/loops/nested_loop_loop_switch.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/loops/nested_loop_loop_switch.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,44 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:198 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Loop
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+[numthreads(1, 1, 1)]
+void main() {
+  {
+    int i = 0;
+    while(true) {
+      if ((i < 2)) {
+      } else {
+        break;
+      }
+      {
+        int j = 0;
+        while(true) {
+          if ((j < 2)) {
+          } else {
+            break;
+          }
+          switch(i) {
+            case 0:
+            {
+              {
+                j = (j + 2);
+              }
+              continue;
+            }
+            default:
+            {
+              break;
+            }
+          }
+          {
+            j = (j + 2);
+          }
+          continue;
+        }
+      }
+      {
+        i = (i + 2);
+      }
+      continue;
+    }
+  }
+}
+
diff --git a/test/tint/loops/nested_loop_loop_switch.wgsl.expected.ir.fxc.hlsl b/test/tint/loops/nested_loop_loop_switch.wgsl.expected.ir.fxc.hlsl
index adbb0c1..d53dcff 100644
--- a/test/tint/loops/nested_loop_loop_switch.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/loops/nested_loop_loop_switch.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,49 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:198 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Loop
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+
+[numthreads(1, 1, 1)]
+void main() {
+  {
+    int i = 0;
+    while(true) {
+      if ((i < 2)) {
+      } else {
+        break;
+      }
+      {
+        int j = 0;
+        while(true) {
+          if ((j < 2)) {
+          } else {
+            break;
+          }
+          switch(i) {
+            case 0:
+            {
+              {
+                j = (j + 2);
+              }
+              continue;
+            }
+            default:
+            {
+              break;
+            }
+          }
+          {
+            j = (j + 2);
+          }
+          continue;
+        }
+      }
+      {
+        i = (i + 2);
+      }
+      continue;
+    }
+  }
+}
+
+FXC validation failure:
+c:\src\dawn\Shader@0x0000016C57E63C20(24,15-23): error X3708: continue cannot be used in a switch
+
diff --git a/test/tint/loops/nested_loop_switch_loop_switch.wgsl.expected.ir.dxc.hlsl b/test/tint/loops/nested_loop_switch_loop_switch.wgsl.expected.ir.dxc.hlsl
index adbb0c1..471bf74 100644
--- a/test/tint/loops/nested_loop_switch_loop_switch.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/loops/nested_loop_switch_loop_switch.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,57 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:198 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Loop
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+[numthreads(1, 1, 1)]
+void main() {
+  {
+    int i = 0;
+    while(true) {
+      if ((i < 2)) {
+      } else {
+        break;
+      }
+      switch(i) {
+        case 0:
+        {
+          {
+            int j = 0;
+            while(true) {
+              if ((j < 2)) {
+              } else {
+                break;
+              }
+              switch(j) {
+                case 0:
+                {
+                  {
+                    j = (j + 2);
+                  }
+                  continue;
+                }
+                default:
+                {
+                  break;
+                }
+              }
+              {
+                j = (j + 2);
+              }
+              continue;
+            }
+          }
+          {
+            i = (i + 2);
+          }
+          continue;
+        }
+        default:
+        {
+          break;
+        }
+      }
+      {
+        i = (i + 2);
+      }
+      continue;
+    }
+  }
+}
+
diff --git a/test/tint/loops/nested_loop_switch_loop_switch.wgsl.expected.ir.fxc.hlsl b/test/tint/loops/nested_loop_switch_loop_switch.wgsl.expected.ir.fxc.hlsl
index adbb0c1..0032972 100644
--- a/test/tint/loops/nested_loop_switch_loop_switch.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/loops/nested_loop_switch_loop_switch.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,62 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:198 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Loop
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+
+[numthreads(1, 1, 1)]
+void main() {
+  {
+    int i = 0;
+    while(true) {
+      if ((i < 2)) {
+      } else {
+        break;
+      }
+      switch(i) {
+        case 0:
+        {
+          {
+            int j = 0;
+            while(true) {
+              if ((j < 2)) {
+              } else {
+                break;
+              }
+              switch(j) {
+                case 0:
+                {
+                  {
+                    j = (j + 2);
+                  }
+                  continue;
+                }
+                default:
+                {
+                  break;
+                }
+              }
+              {
+                j = (j + 2);
+              }
+              continue;
+            }
+          }
+          {
+            i = (i + 2);
+          }
+          continue;
+        }
+        default:
+        {
+          break;
+        }
+      }
+      {
+        i = (i + 2);
+      }
+      continue;
+    }
+  }
+}
+
+FXC validation failure:
+c:\src\dawn\Shader@0x0000022595993FB0(27,19-27): error X3708: continue cannot be used in a switch
+
diff --git a/test/tint/loops/nested_loop_switch_loop_switch_switch.wgsl.expected.ir.dxc.hlsl b/test/tint/loops/nested_loop_switch_loop_switch_switch.wgsl.expected.ir.dxc.hlsl
index adbb0c1..fa08218 100644
--- a/test/tint/loops/nested_loop_switch_loop_switch_switch.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/loops/nested_loop_switch_loop_switch_switch.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,75 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:198 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Loop
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+[numthreads(1, 1, 1)]
+void main() {
+  int k = 0;
+  {
+    int i = 0;
+    while(true) {
+      if ((i < 2)) {
+      } else {
+        break;
+      }
+      switch(i) {
+        case 0:
+        {
+          {
+            int j = 0;
+            while(true) {
+              if ((j < 2)) {
+              } else {
+                break;
+              }
+              switch(j) {
+                case 0:
+                {
+                  {
+                    j = (j + 2);
+                  }
+                  continue;
+                }
+                case 1:
+                {
+                  switch(k) {
+                    case 0:
+                    {
+                      {
+                        j = (j + 2);
+                      }
+                      continue;
+                    }
+                    default:
+                    {
+                      break;
+                    }
+                  }
+                  break;
+                }
+                default:
+                {
+                  break;
+                }
+              }
+              {
+                j = (j + 2);
+              }
+              continue;
+            }
+          }
+          {
+            i = (i + 2);
+          }
+          continue;
+        }
+        default:
+        {
+          break;
+        }
+      }
+      {
+        i = (i + 2);
+      }
+      continue;
+    }
+  }
+}
+
diff --git a/test/tint/loops/nested_loop_switch_loop_switch_switch.wgsl.expected.ir.fxc.hlsl b/test/tint/loops/nested_loop_switch_loop_switch_switch.wgsl.expected.ir.fxc.hlsl
index adbb0c1..3152c19 100644
--- a/test/tint/loops/nested_loop_switch_loop_switch_switch.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/loops/nested_loop_switch_loop_switch_switch.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,80 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:198 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Loop
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+
+[numthreads(1, 1, 1)]
+void main() {
+  int k = 0;
+  {
+    int i = 0;
+    while(true) {
+      if ((i < 2)) {
+      } else {
+        break;
+      }
+      switch(i) {
+        case 0:
+        {
+          {
+            int j = 0;
+            while(true) {
+              if ((j < 2)) {
+              } else {
+                break;
+              }
+              switch(j) {
+                case 0:
+                {
+                  {
+                    j = (j + 2);
+                  }
+                  continue;
+                }
+                case 1:
+                {
+                  switch(k) {
+                    case 0:
+                    {
+                      {
+                        j = (j + 2);
+                      }
+                      continue;
+                    }
+                    default:
+                    {
+                      break;
+                    }
+                  }
+                  break;
+                }
+                default:
+                {
+                  break;
+                }
+              }
+              {
+                j = (j + 2);
+              }
+              continue;
+            }
+          }
+          {
+            i = (i + 2);
+          }
+          continue;
+        }
+        default:
+        {
+          break;
+        }
+      }
+      {
+        i = (i + 2);
+      }
+      continue;
+    }
+  }
+}
+
+FXC validation failure:
+c:\src\dawn\Shader@0x000001CB9A8AC650(28,19-27): error X3708: continue cannot be used in a switch
+
diff --git a/test/tint/loops/nested_loop_switch_switch.wgsl.expected.ir.dxc.hlsl b/test/tint/loops/nested_loop_switch_switch.wgsl.expected.ir.dxc.hlsl
index adbb0c1..0869bbb 100644
--- a/test/tint/loops/nested_loop_switch_switch.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/loops/nested_loop_switch_switch.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,42 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:198 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Loop
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+[numthreads(1, 1, 1)]
+void main() {
+  int j = 0;
+  {
+    int i = 0;
+    while(true) {
+      if ((i < 2)) {
+      } else {
+        break;
+      }
+      switch(i) {
+        case 0:
+        {
+          switch(j) {
+            case 0:
+            {
+              {
+                i = (i + 2);
+              }
+              continue;
+            }
+            default:
+            {
+              break;
+            }
+          }
+          break;
+        }
+        default:
+        {
+          break;
+        }
+      }
+      {
+        i = (i + 2);
+      }
+      continue;
+    }
+  }
+}
+
diff --git a/test/tint/loops/nested_loop_switch_switch.wgsl.expected.ir.fxc.hlsl b/test/tint/loops/nested_loop_switch_switch.wgsl.expected.ir.fxc.hlsl
index adbb0c1..ba82e1d 100644
--- a/test/tint/loops/nested_loop_switch_switch.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/loops/nested_loop_switch_switch.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,47 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:198 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Loop
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+
+[numthreads(1, 1, 1)]
+void main() {
+  int j = 0;
+  {
+    int i = 0;
+    while(true) {
+      if ((i < 2)) {
+      } else {
+        break;
+      }
+      switch(i) {
+        case 0:
+        {
+          switch(j) {
+            case 0:
+            {
+              {
+                i = (i + 2);
+              }
+              continue;
+            }
+            default:
+            {
+              break;
+            }
+          }
+          break;
+        }
+        default:
+        {
+          break;
+        }
+      }
+      {
+        i = (i + 2);
+      }
+      continue;
+    }
+  }
+}
+
+FXC validation failure:
+c:\src\dawn\Shader@0x000002665D442960(21,15-23): error X3708: continue cannot be used in a switch
+
diff --git a/test/tint/loops/nested_loops.wgsl.expected.ir.dxc.hlsl b/test/tint/loops/nested_loops.wgsl.expected.ir.dxc.hlsl
index adbb0c1..0208abd 100644
--- a/test/tint/loops/nested_loops.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/loops/nested_loops.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,31 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:198 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Loop
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+int f() {
+  int i = 0;
+  int j = 0;
+  {
+    while(true) {
+      i = (i + 1);
+      if ((i > 4)) {
+        return 1;
+      }
+      {
+        while(true) {
+          j = (j + 1);
+          if ((j > 4)) {
+            return 2;
+          }
+          {
+          }
+          continue;
+        }
+      }
+      /* unreachable */
+    }
+  }
+  /* unreachable */
+}
+
+[numthreads(1, 1, 1)]
+void unused_entry_point() {
+}
+
diff --git a/test/tint/loops/nested_loops.wgsl.expected.ir.fxc.hlsl b/test/tint/loops/nested_loops.wgsl.expected.ir.fxc.hlsl
index adbb0c1..0208abd 100644
--- a/test/tint/loops/nested_loops.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/loops/nested_loops.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,31 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:198 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Loop
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+int f() {
+  int i = 0;
+  int j = 0;
+  {
+    while(true) {
+      i = (i + 1);
+      if ((i > 4)) {
+        return 1;
+      }
+      {
+        while(true) {
+          j = (j + 1);
+          if ((j > 4)) {
+            return 2;
+          }
+          {
+          }
+          continue;
+        }
+      }
+      /* unreachable */
+    }
+  }
+  /* unreachable */
+}
+
+[numthreads(1, 1, 1)]
+void unused_entry_point() {
+}
+
diff --git a/test/tint/loops/nested_loops_with_continuing.wgsl.expected.ir.dxc.hlsl b/test/tint/loops/nested_loops_with_continuing.wgsl.expected.ir.dxc.hlsl
index adbb0c1..b8b2ddb 100644
--- a/test/tint/loops/nested_loops_with_continuing.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/loops/nested_loops_with_continuing.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,30 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:198 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Loop
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+int f() {
+  int i = 0;
+  int j = 0;
+  {
+    while(true) {
+      if ((i > 4)) {
+        return 1;
+      }
+      {
+        while(true) {
+          if ((j > 4)) {
+            return 2;
+          }
+          {
+            j = (j + 1);
+          }
+          continue;
+        }
+      }
+      /* unreachable */
+    }
+  }
+  /* unreachable */
+}
+
+[numthreads(1, 1, 1)]
+void unused_entry_point() {
+}
+
diff --git a/test/tint/loops/nested_loops_with_continuing.wgsl.expected.ir.fxc.hlsl b/test/tint/loops/nested_loops_with_continuing.wgsl.expected.ir.fxc.hlsl
index adbb0c1..b8b2ddb 100644
--- a/test/tint/loops/nested_loops_with_continuing.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/loops/nested_loops_with_continuing.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,30 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:198 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Loop
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+int f() {
+  int i = 0;
+  int j = 0;
+  {
+    while(true) {
+      if ((i > 4)) {
+        return 1;
+      }
+      {
+        while(true) {
+          if ((j > 4)) {
+            return 2;
+          }
+          {
+            j = (j + 1);
+          }
+          continue;
+        }
+      }
+      /* unreachable */
+    }
+  }
+  /* unreachable */
+}
+
+[numthreads(1, 1, 1)]
+void unused_entry_point() {
+}
+
diff --git a/test/tint/loops/single_continue.wgsl.expected.ir.dxc.hlsl b/test/tint/loops/single_continue.wgsl.expected.ir.dxc.hlsl
index adbb0c1..0e51bab 100644
--- a/test/tint/loops/single_continue.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/loops/single_continue.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,31 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:198 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Loop
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+[numthreads(1, 1, 1)]
+void main() {
+  {
+    int i = 0;
+    while(true) {
+      if ((i < 2)) {
+      } else {
+        break;
+      }
+      switch(i) {
+        case 0:
+        {
+          {
+            i = (i + 1);
+          }
+          continue;
+        }
+        default:
+        {
+          break;
+        }
+      }
+      {
+        i = (i + 1);
+      }
+      continue;
+    }
+  }
+}
+
diff --git a/test/tint/loops/single_continue.wgsl.expected.ir.fxc.hlsl b/test/tint/loops/single_continue.wgsl.expected.ir.fxc.hlsl
index adbb0c1..4d5e0e9 100644
--- a/test/tint/loops/single_continue.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/loops/single_continue.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,36 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:198 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Loop
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+
+[numthreads(1, 1, 1)]
+void main() {
+  {
+    int i = 0;
+    while(true) {
+      if ((i < 2)) {
+      } else {
+        break;
+      }
+      switch(i) {
+        case 0:
+        {
+          {
+            i = (i + 1);
+          }
+          continue;
+        }
+        default:
+        {
+          break;
+        }
+      }
+      {
+        i = (i + 1);
+      }
+      continue;
+    }
+  }
+}
+
+FXC validation failure:
+c:\src\dawn\Shader@0x000001AEF7F55760(17,11-19): error X3708: continue cannot be used in a switch
+
diff --git a/test/tint/loops/while.wgsl.expected.ir.dxc.hlsl b/test/tint/loops/while.wgsl.expected.ir.dxc.hlsl
index adbb0c1..cfb5a46 100644
--- a/test/tint/loops/while.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/loops/while.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,22 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:198 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Loop
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+int f() {
+  int i = 0;
+  {
+    while(true) {
+      if ((i < 4)) {
+      } else {
+        break;
+      }
+      i = (i + 1);
+      {
+      }
+      continue;
+    }
+  }
+  return i;
+}
+
+[numthreads(1, 1, 1)]
+void unused_entry_point() {
+}
+
diff --git a/test/tint/loops/while.wgsl.expected.ir.fxc.hlsl b/test/tint/loops/while.wgsl.expected.ir.fxc.hlsl
index adbb0c1..cfb5a46 100644
--- a/test/tint/loops/while.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/loops/while.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,22 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:198 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Loop
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+int f() {
+  int i = 0;
+  {
+    while(true) {
+      if ((i < 4)) {
+      } else {
+        break;
+      }
+      i = (i + 1);
+      {
+      }
+      continue;
+    }
+  }
+  return i;
+}
+
+[numthreads(1, 1, 1)]
+void unused_entry_point() {
+}
+
diff --git a/test/tint/loops/while_with_continue.wgsl.expected.ir.dxc.hlsl b/test/tint/loops/while_with_continue.wgsl.expected.ir.dxc.hlsl
index adbb0c1..cfb5a46 100644
--- a/test/tint/loops/while_with_continue.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/loops/while_with_continue.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,22 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:198 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Loop
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+int f() {
+  int i = 0;
+  {
+    while(true) {
+      if ((i < 4)) {
+      } else {
+        break;
+      }
+      i = (i + 1);
+      {
+      }
+      continue;
+    }
+  }
+  return i;
+}
+
+[numthreads(1, 1, 1)]
+void unused_entry_point() {
+}
+
diff --git a/test/tint/loops/while_with_continue.wgsl.expected.ir.fxc.hlsl b/test/tint/loops/while_with_continue.wgsl.expected.ir.fxc.hlsl
index adbb0c1..cfb5a46 100644
--- a/test/tint/loops/while_with_continue.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/loops/while_with_continue.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,22 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:198 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Loop
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+int f() {
+  int i = 0;
+  {
+    while(true) {
+      if ((i < 4)) {
+      } else {
+        break;
+      }
+      i = (i + 1);
+      {
+      }
+      continue;
+    }
+  }
+  return i;
+}
+
+[numthreads(1, 1, 1)]
+void unused_entry_point() {
+}
+
diff --git a/test/tint/out_of_order_decls/alias/alias.wgsl.expected.ir.dxc.hlsl b/test/tint/out_of_order_decls/alias/alias.wgsl.expected.ir.dxc.hlsl
index 6e1848a..63f6f60 100644
--- a/test/tint/out_of_order_decls/alias/alias.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/out_of_order_decls/alias/alias.wgsl.expected.ir.dxc.hlsl
@@ -1,3 +1,4 @@
+
 void f() {
   int v = 0;
 }
diff --git a/test/tint/out_of_order_decls/alias/alias.wgsl.expected.ir.fxc.hlsl b/test/tint/out_of_order_decls/alias/alias.wgsl.expected.ir.fxc.hlsl
index 8e55854..63f6f60 100644
--- a/test/tint/out_of_order_decls/alias/alias.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/out_of_order_decls/alias/alias.wgsl.expected.ir.fxc.hlsl
@@ -1,4 +1,3 @@
-SKIP: FAILED
 
 void f() {
   int v = 0;
diff --git a/test/tint/out_of_order_decls/alias/struct.wgsl.expected.ir.dxc.hlsl b/test/tint/out_of_order_decls/alias/struct.wgsl.expected.ir.dxc.hlsl
index 0ba40c6..37bad71 100644
--- a/test/tint/out_of_order_decls/alias/struct.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/out_of_order_decls/alias/struct.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,9 @@
-SKIP: FAILED
+struct S {
+  int m;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+
+void f() {
+  S v = (S)0;
+}
+
diff --git a/test/tint/out_of_order_decls/alias/struct.wgsl.expected.ir.fxc.hlsl b/test/tint/out_of_order_decls/alias/struct.wgsl.expected.ir.fxc.hlsl
index 0ba40c6..37bad71 100644
--- a/test/tint/out_of_order_decls/alias/struct.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/out_of_order_decls/alias/struct.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,9 @@
-SKIP: FAILED
+struct S {
+  int m;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+
+void f() {
+  S v = (S)0;
+}
+
diff --git a/test/tint/out_of_order_decls/array/alias.wgsl.expected.ir.dxc.hlsl b/test/tint/out_of_order_decls/array/alias.wgsl.expected.ir.dxc.hlsl
index 3f437dc..a0c85e9 100644
--- a/test/tint/out_of_order_decls/array/alias.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/out_of_order_decls/array/alias.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,6 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Access
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+static int A[4] = (int[4])0;
+void f() {
+  A[0] = 1;
+}
+
diff --git a/test/tint/out_of_order_decls/array/alias.wgsl.expected.ir.fxc.hlsl b/test/tint/out_of_order_decls/array/alias.wgsl.expected.ir.fxc.hlsl
index 3f437dc..a0c85e9 100644
--- a/test/tint/out_of_order_decls/array/alias.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/out_of_order_decls/array/alias.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,6 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Access
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+static int A[4] = (int[4])0;
+void f() {
+  A[0] = 1;
+}
+
diff --git a/test/tint/out_of_order_decls/array/struct.wgsl.expected.ir.dxc.hlsl b/test/tint/out_of_order_decls/array/struct.wgsl.expected.ir.dxc.hlsl
index 3f437dc..1ade188 100644
--- a/test/tint/out_of_order_decls/array/struct.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/out_of_order_decls/array/struct.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,11 @@
-SKIP: FAILED
+struct S {
+  int m;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Access
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+
+static S A[4] = (S[4])0;
+void f() {
+  S v = {1};
+  A[0] = v;
+}
+
diff --git a/test/tint/out_of_order_decls/array/struct.wgsl.expected.ir.fxc.hlsl b/test/tint/out_of_order_decls/array/struct.wgsl.expected.ir.fxc.hlsl
index 3f437dc..1ade188 100644
--- a/test/tint/out_of_order_decls/array/struct.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/out_of_order_decls/array/struct.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,11 @@
-SKIP: FAILED
+struct S {
+  int m;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Access
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+
+static S A[4] = (S[4])0;
+void f() {
+  S v = {1};
+  A[0] = v;
+}
+
diff --git a/test/tint/out_of_order_decls/func/const.wgsl.expected.ir.dxc.hlsl b/test/tint/out_of_order_decls/func/const.wgsl.expected.ir.dxc.hlsl
index 67c6dca..c4baa3f 100644
--- a/test/tint/out_of_order_decls/func/const.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/out_of_order_decls/func/const.wgsl.expected.ir.dxc.hlsl
@@ -1,3 +1,4 @@
+
 void f() {
 }
 
diff --git a/test/tint/out_of_order_decls/func/const.wgsl.expected.ir.fxc.hlsl b/test/tint/out_of_order_decls/func/const.wgsl.expected.ir.fxc.hlsl
index 67c6dca..c4baa3f 100644
--- a/test/tint/out_of_order_decls/func/const.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/out_of_order_decls/func/const.wgsl.expected.ir.fxc.hlsl
@@ -1,3 +1,4 @@
+
 void f() {
 }
 
diff --git a/test/tint/out_of_order_decls/func/func.wgsl.expected.ir.dxc.hlsl b/test/tint/out_of_order_decls/func/func.wgsl.expected.ir.dxc.hlsl
index 5344d3c..cdb2c7e 100644
--- a/test/tint/out_of_order_decls/func/func.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/out_of_order_decls/func/func.wgsl.expected.ir.dxc.hlsl
@@ -1,3 +1,4 @@
+
 void f2() {
 }
 
diff --git a/test/tint/out_of_order_decls/func/func.wgsl.expected.ir.fxc.hlsl b/test/tint/out_of_order_decls/func/func.wgsl.expected.ir.fxc.hlsl
index 0219aa7..cdb2c7e 100644
--- a/test/tint/out_of_order_decls/func/func.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/out_of_order_decls/func/func.wgsl.expected.ir.fxc.hlsl
@@ -1,4 +1,3 @@
-SKIP: FAILED
 
 void f2() {
 }
diff --git a/test/tint/out_of_order_decls/func/type.wgsl.expected.ir.dxc.hlsl b/test/tint/out_of_order_decls/func/type.wgsl.expected.ir.dxc.hlsl
index 030c470..148d083 100644
--- a/test/tint/out_of_order_decls/func/type.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/out_of_order_decls/func/type.wgsl.expected.ir.dxc.hlsl
@@ -1,3 +1,4 @@
+
 void f() {
   int b = 0;
 }
diff --git a/test/tint/out_of_order_decls/func/type.wgsl.expected.ir.fxc.hlsl b/test/tint/out_of_order_decls/func/type.wgsl.expected.ir.fxc.hlsl
index 5f4b1e1..148d083 100644
--- a/test/tint/out_of_order_decls/func/type.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/out_of_order_decls/func/type.wgsl.expected.ir.fxc.hlsl
@@ -1,4 +1,3 @@
-SKIP: FAILED
 
 void f() {
   int b = 0;
diff --git a/test/tint/out_of_order_decls/func/var.wgsl.expected.ir.dxc.hlsl b/test/tint/out_of_order_decls/func/var.wgsl.expected.ir.dxc.hlsl
index 1691982..763bd4e 100644
--- a/test/tint/out_of_order_decls/func/var.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/out_of_order_decls/func/var.wgsl.expected.ir.dxc.hlsl
@@ -1,11 +1,6 @@
-SKIP: FAILED
 
+static int a = 1;
 void f() {
   int b = a;
 }
 
-DXC validation failure:
-hlsl.hlsl:2:11: error: use of undeclared identifier 'a'
-  int b = a;
-          ^
-
diff --git a/test/tint/out_of_order_decls/func/var.wgsl.expected.ir.fxc.hlsl b/test/tint/out_of_order_decls/func/var.wgsl.expected.ir.fxc.hlsl
index 5460f8b..763bd4e 100644
--- a/test/tint/out_of_order_decls/func/var.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/out_of_order_decls/func/var.wgsl.expected.ir.fxc.hlsl
@@ -1,5 +1,5 @@
-SKIP: FAILED
 
+static int a = 1;
 void f() {
   int b = a;
 }
diff --git a/test/tint/out_of_order_decls/struct/alias.wgsl.expected.ir.dxc.hlsl b/test/tint/out_of_order_decls/struct/alias.wgsl.expected.ir.dxc.hlsl
index 0ba40c6..37bad71 100644
--- a/test/tint/out_of_order_decls/struct/alias.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/out_of_order_decls/struct/alias.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,9 @@
-SKIP: FAILED
+struct S {
+  int m;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+
+void f() {
+  S v = (S)0;
+}
+
diff --git a/test/tint/out_of_order_decls/struct/alias.wgsl.expected.ir.fxc.hlsl b/test/tint/out_of_order_decls/struct/alias.wgsl.expected.ir.fxc.hlsl
index 0ba40c6..37bad71 100644
--- a/test/tint/out_of_order_decls/struct/alias.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/out_of_order_decls/struct/alias.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,9 @@
-SKIP: FAILED
+struct S {
+  int m;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+
+void f() {
+  S v = (S)0;
+}
+
diff --git a/test/tint/out_of_order_decls/struct/struct.wgsl.expected.ir.dxc.hlsl b/test/tint/out_of_order_decls/struct/struct.wgsl.expected.ir.dxc.hlsl
index 0ba40c6..56bba68 100644
--- a/test/tint/out_of_order_decls/struct/struct.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/out_of_order_decls/struct/struct.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,13 @@
-SKIP: FAILED
+struct S2 {
+  int m;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct S1 {
+  S2 m;
+};
+
+
+void f() {
+  S1 v = (S1)0;
+}
+
diff --git a/test/tint/out_of_order_decls/struct/struct.wgsl.expected.ir.fxc.hlsl b/test/tint/out_of_order_decls/struct/struct.wgsl.expected.ir.fxc.hlsl
index 0ba40c6..56bba68 100644
--- a/test/tint/out_of_order_decls/struct/struct.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/out_of_order_decls/struct/struct.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,13 @@
-SKIP: FAILED
+struct S2 {
+  int m;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct S1 {
+  S2 m;
+};
+
+
+void f() {
+  S1 v = (S1)0;
+}
+
diff --git a/test/tint/ptr_ref/access/matrix.spvasm.expected.ir.dxc.hlsl b/test/tint/ptr_ref/access/matrix.spvasm.expected.ir.dxc.hlsl
index 3f437dc..40e41ef 100644
--- a/test/tint/ptr_ref/access/matrix.spvasm.expected.ir.dxc.hlsl
+++ b/test/tint/ptr_ref/access/matrix.spvasm.expected.ir.dxc.hlsl
@@ -1,9 +1,12 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Access
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+void main_1() {
+  float3x3 m = float3x3((0.0f).xxx, (0.0f).xxx, (0.0f).xxx);
+  m = float3x3(float3(1.0f, 2.0f, 3.0f), float3(4.0f, 5.0f, 6.0f), float3(7.0f, 8.0f, 9.0f));
+  m[1] = (5.0f).xxx;
+}
+
+[numthreads(1, 1, 1)]
+void main() {
+  main_1();
+}
+
diff --git a/test/tint/ptr_ref/access/matrix.spvasm.expected.ir.fxc.hlsl b/test/tint/ptr_ref/access/matrix.spvasm.expected.ir.fxc.hlsl
index 3f437dc..40e41ef 100644
--- a/test/tint/ptr_ref/access/matrix.spvasm.expected.ir.fxc.hlsl
+++ b/test/tint/ptr_ref/access/matrix.spvasm.expected.ir.fxc.hlsl
@@ -1,9 +1,12 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Access
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+void main_1() {
+  float3x3 m = float3x3((0.0f).xxx, (0.0f).xxx, (0.0f).xxx);
+  m = float3x3(float3(1.0f, 2.0f, 3.0f), float3(4.0f, 5.0f, 6.0f), float3(7.0f, 8.0f, 9.0f));
+  m[1] = (5.0f).xxx;
+}
+
+[numthreads(1, 1, 1)]
+void main() {
+  main_1();
+}
+
diff --git a/test/tint/ptr_ref/access/matrix.wgsl.expected.ir.dxc.hlsl b/test/tint/ptr_ref/access/matrix.wgsl.expected.ir.dxc.hlsl
index 3f437dc..4d3e139 100644
--- a/test/tint/ptr_ref/access/matrix.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/ptr_ref/access/matrix.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,8 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Access
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+[numthreads(1, 1, 1)]
+void main() {
+  float3x3 m = float3x3(float3(1.0f, 2.0f, 3.0f), float3(4.0f, 5.0f, 6.0f), float3(7.0f, 8.0f, 9.0f));
+  float3 v = m[1];
+  v = (5.0f).xxx;
+}
+
diff --git a/test/tint/ptr_ref/access/matrix.wgsl.expected.ir.fxc.hlsl b/test/tint/ptr_ref/access/matrix.wgsl.expected.ir.fxc.hlsl
index 3f437dc..4d3e139 100644
--- a/test/tint/ptr_ref/access/matrix.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/ptr_ref/access/matrix.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,8 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Access
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+[numthreads(1, 1, 1)]
+void main() {
+  float3x3 m = float3x3(float3(1.0f, 2.0f, 3.0f), float3(4.0f, 5.0f, 6.0f), float3(7.0f, 8.0f, 9.0f));
+  float3 v = m[1];
+  v = (5.0f).xxx;
+}
+
diff --git a/test/tint/ptr_ref/copy/ptr_copy.spvasm.expected.ir.dxc.hlsl b/test/tint/ptr_ref/copy/ptr_copy.spvasm.expected.ir.dxc.hlsl
index 01e9972..3fa6cef 100644
--- a/test/tint/ptr_ref/copy/ptr_copy.spvasm.expected.ir.dxc.hlsl
+++ b/test/tint/ptr_ref/copy/ptr_copy.spvasm.expected.ir.dxc.hlsl
@@ -1,3 +1,4 @@
+
 void main_1() {
   uint x_10 = 0u;
 }
diff --git a/test/tint/ptr_ref/copy/ptr_copy.spvasm.expected.ir.fxc.hlsl b/test/tint/ptr_ref/copy/ptr_copy.spvasm.expected.ir.fxc.hlsl
index 5510828..3fa6cef 100644
--- a/test/tint/ptr_ref/copy/ptr_copy.spvasm.expected.ir.fxc.hlsl
+++ b/test/tint/ptr_ref/copy/ptr_copy.spvasm.expected.ir.fxc.hlsl
@@ -1,4 +1,3 @@
-SKIP: FAILED
 
 void main_1() {
   uint x_10 = 0u;
diff --git a/test/tint/ptr_ref/load/global/i32.spvasm.expected.ir.dxc.hlsl b/test/tint/ptr_ref/load/global/i32.spvasm.expected.ir.dxc.hlsl
index a7ed02b..6de615f 100644
--- a/test/tint/ptr_ref/load/global/i32.spvasm.expected.ir.dxc.hlsl
+++ b/test/tint/ptr_ref/load/global/i32.spvasm.expected.ir.dxc.hlsl
@@ -1,5 +1,5 @@
-SKIP: FAILED
 
+static int I = 0;
 void main_1() {
   int x_11 = (I + 1);
 }
@@ -9,8 +9,3 @@
   main_1();
 }
 
-DXC validation failure:
-hlsl.hlsl:2:15: error: use of undeclared identifier 'I'
-  int x_11 = (I + 1);
-              ^
-
diff --git a/test/tint/ptr_ref/load/global/i32.spvasm.expected.ir.fxc.hlsl b/test/tint/ptr_ref/load/global/i32.spvasm.expected.ir.fxc.hlsl
index a32551a..6de615f 100644
--- a/test/tint/ptr_ref/load/global/i32.spvasm.expected.ir.fxc.hlsl
+++ b/test/tint/ptr_ref/load/global/i32.spvasm.expected.ir.fxc.hlsl
@@ -1,5 +1,5 @@
-SKIP: FAILED
 
+static int I = 0;
 void main_1() {
   int x_11 = (I + 1);
 }
diff --git a/test/tint/ptr_ref/load/global/i32.wgsl.expected.ir.dxc.hlsl b/test/tint/ptr_ref/load/global/i32.wgsl.expected.ir.dxc.hlsl
index 65dd82b..a00755c 100644
--- a/test/tint/ptr_ref/load/global/i32.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/ptr_ref/load/global/i32.wgsl.expected.ir.dxc.hlsl
@@ -1,13 +1,8 @@
-SKIP: FAILED
 
+static int I = 0;
 [numthreads(1, 1, 1)]
 void main() {
   int i = I;
   int u = (i + 1);
 }
 
-DXC validation failure:
-hlsl.hlsl:3:11: error: use of undeclared identifier 'I'
-  int i = I;
-          ^
-
diff --git a/test/tint/ptr_ref/load/global/i32.wgsl.expected.ir.fxc.hlsl b/test/tint/ptr_ref/load/global/i32.wgsl.expected.ir.fxc.hlsl
index f4e7d01..a00755c 100644
--- a/test/tint/ptr_ref/load/global/i32.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/ptr_ref/load/global/i32.wgsl.expected.ir.fxc.hlsl
@@ -1,5 +1,5 @@
-SKIP: FAILED
 
+static int I = 0;
 [numthreads(1, 1, 1)]
 void main() {
   int i = I;
diff --git a/test/tint/ptr_ref/load/global/struct_field.spvasm.expected.ir.dxc.hlsl b/test/tint/ptr_ref/load/global/struct_field.spvasm.expected.ir.dxc.hlsl
index 3f437dc..3f5233d 100644
--- a/test/tint/ptr_ref/load/global/struct_field.spvasm.expected.ir.dxc.hlsl
+++ b/test/tint/ptr_ref/load/global/struct_field.spvasm.expected.ir.dxc.hlsl
@@ -1,9 +1,16 @@
-SKIP: FAILED
+struct S {
+  int i;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Access
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+
+static S V = (S)0;
+void main_1() {
+  int i = 0;
+  i = V.i;
+}
+
+[numthreads(1, 1, 1)]
+void main() {
+  main_1();
+}
+
diff --git a/test/tint/ptr_ref/load/global/struct_field.spvasm.expected.ir.fxc.hlsl b/test/tint/ptr_ref/load/global/struct_field.spvasm.expected.ir.fxc.hlsl
index 3f437dc..3f5233d 100644
--- a/test/tint/ptr_ref/load/global/struct_field.spvasm.expected.ir.fxc.hlsl
+++ b/test/tint/ptr_ref/load/global/struct_field.spvasm.expected.ir.fxc.hlsl
@@ -1,9 +1,16 @@
-SKIP: FAILED
+struct S {
+  int i;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Access
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+
+static S V = (S)0;
+void main_1() {
+  int i = 0;
+  i = V.i;
+}
+
+[numthreads(1, 1, 1)]
+void main() {
+  main_1();
+}
+
diff --git a/test/tint/ptr_ref/load/global/struct_field.wgsl.expected.ir.dxc.hlsl b/test/tint/ptr_ref/load/global/struct_field.wgsl.expected.ir.dxc.hlsl
index 3f437dc..3f8b134 100644
--- a/test/tint/ptr_ref/load/global/struct_field.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/ptr_ref/load/global/struct_field.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,11 @@
-SKIP: FAILED
+struct S {
+  int i;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Access
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+
+static S V = (S)0;
+[numthreads(1, 1, 1)]
+void main() {
+  int i = V.i;
+}
+
diff --git a/test/tint/ptr_ref/load/global/struct_field.wgsl.expected.ir.fxc.hlsl b/test/tint/ptr_ref/load/global/struct_field.wgsl.expected.ir.fxc.hlsl
index 3f437dc..3f8b134 100644
--- a/test/tint/ptr_ref/load/global/struct_field.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/ptr_ref/load/global/struct_field.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,11 @@
-SKIP: FAILED
+struct S {
+  int i;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Access
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+
+static S V = (S)0;
+[numthreads(1, 1, 1)]
+void main() {
+  int i = V.i;
+}
+
diff --git a/test/tint/ptr_ref/load/local/i32.spvasm.expected.ir.dxc.hlsl b/test/tint/ptr_ref/load/local/i32.spvasm.expected.ir.dxc.hlsl
index 6663da5..24787de 100644
--- a/test/tint/ptr_ref/load/local/i32.spvasm.expected.ir.dxc.hlsl
+++ b/test/tint/ptr_ref/load/local/i32.spvasm.expected.ir.dxc.hlsl
@@ -1,3 +1,4 @@
+
 void main_1() {
   int i = 0;
   i = 123;
diff --git a/test/tint/ptr_ref/load/local/i32.spvasm.expected.ir.fxc.hlsl b/test/tint/ptr_ref/load/local/i32.spvasm.expected.ir.fxc.hlsl
index ee3923a..24787de 100644
--- a/test/tint/ptr_ref/load/local/i32.spvasm.expected.ir.fxc.hlsl
+++ b/test/tint/ptr_ref/load/local/i32.spvasm.expected.ir.fxc.hlsl
@@ -1,4 +1,3 @@
-SKIP: FAILED
 
 void main_1() {
   int i = 0;
diff --git a/test/tint/ptr_ref/load/local/i32.wgsl.expected.ir.dxc.hlsl b/test/tint/ptr_ref/load/local/i32.wgsl.expected.ir.dxc.hlsl
index 870f65e..f026c6f 100644
--- a/test/tint/ptr_ref/load/local/i32.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/ptr_ref/load/local/i32.wgsl.expected.ir.dxc.hlsl
@@ -1,3 +1,4 @@
+
 [numthreads(1, 1, 1)]
 void main() {
   int i = 123;
diff --git a/test/tint/ptr_ref/load/local/i32.wgsl.expected.ir.fxc.hlsl b/test/tint/ptr_ref/load/local/i32.wgsl.expected.ir.fxc.hlsl
index 126275b..f026c6f 100644
--- a/test/tint/ptr_ref/load/local/i32.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/ptr_ref/load/local/i32.wgsl.expected.ir.fxc.hlsl
@@ -1,4 +1,3 @@
-SKIP: FAILED
 
 [numthreads(1, 1, 1)]
 void main() {
diff --git a/test/tint/ptr_ref/load/local/ptr_function.wgsl.expected.ir.dxc.hlsl b/test/tint/ptr_ref/load/local/ptr_function.wgsl.expected.ir.dxc.hlsl
index 21cba87..3c2a631 100644
--- a/test/tint/ptr_ref/load/local/ptr_function.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/ptr_ref/load/local/ptr_function.wgsl.expected.ir.dxc.hlsl
@@ -1,3 +1,4 @@
+
 [numthreads(1, 1, 1)]
 void main() {
   int i = 123;
diff --git a/test/tint/ptr_ref/load/local/ptr_function.wgsl.expected.ir.fxc.hlsl b/test/tint/ptr_ref/load/local/ptr_function.wgsl.expected.ir.fxc.hlsl
index 9c684c3..3c2a631 100644
--- a/test/tint/ptr_ref/load/local/ptr_function.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/ptr_ref/load/local/ptr_function.wgsl.expected.ir.fxc.hlsl
@@ -1,4 +1,3 @@
-SKIP: FAILED
 
 [numthreads(1, 1, 1)]
 void main() {
diff --git a/test/tint/ptr_ref/load/local/ptr_private.wgsl.expected.ir.dxc.hlsl b/test/tint/ptr_ref/load/local/ptr_private.wgsl.expected.ir.dxc.hlsl
index 882312e..8301cb1 100644
--- a/test/tint/ptr_ref/load/local/ptr_private.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/ptr_ref/load/local/ptr_private.wgsl.expected.ir.dxc.hlsl
@@ -1,13 +1,8 @@
-SKIP: FAILED
 
+static int i = 123;
 [numthreads(1, 1, 1)]
 void main() {
   int p = i;
   int u = (p + 1);
 }
 
-DXC validation failure:
-hlsl.hlsl:3:11: error: use of undeclared identifier 'i'
-  int p = i;
-          ^
-
diff --git a/test/tint/ptr_ref/load/local/ptr_private.wgsl.expected.ir.fxc.hlsl b/test/tint/ptr_ref/load/local/ptr_private.wgsl.expected.ir.fxc.hlsl
index 11d24ae..8301cb1 100644
--- a/test/tint/ptr_ref/load/local/ptr_private.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/ptr_ref/load/local/ptr_private.wgsl.expected.ir.fxc.hlsl
@@ -1,5 +1,5 @@
-SKIP: FAILED
 
+static int i = 123;
 [numthreads(1, 1, 1)]
 void main() {
   int p = i;
diff --git a/test/tint/ptr_ref/load/local/ptr_storage.wgsl.expected.ir.dxc.hlsl b/test/tint/ptr_ref/load/local/ptr_storage.wgsl.expected.ir.dxc.hlsl
index 3f437dc..9bd1a62 100644
--- a/test/tint/ptr_ref/load/local/ptr_storage.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/ptr_ref/load/local/ptr_storage.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,7 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Access
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWByteAddressBuffer v : register(u0);
+[numthreads(1, 1, 1)]
+void main() {
+  int u = (asint(v.Load(0u)) + 1);
+}
+
diff --git a/test/tint/ptr_ref/load/local/ptr_storage.wgsl.expected.ir.fxc.hlsl b/test/tint/ptr_ref/load/local/ptr_storage.wgsl.expected.ir.fxc.hlsl
index 3f437dc..9bd1a62 100644
--- a/test/tint/ptr_ref/load/local/ptr_storage.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/ptr_ref/load/local/ptr_storage.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,7 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Access
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWByteAddressBuffer v : register(u0);
+[numthreads(1, 1, 1)]
+void main() {
+  int u = (asint(v.Load(0u)) + 1);
+}
+
diff --git a/test/tint/ptr_ref/load/local/ptr_uniform.wgsl.expected.ir.dxc.hlsl b/test/tint/ptr_ref/load/local/ptr_uniform.wgsl.expected.ir.dxc.hlsl
index 3f437dc..9b8c5fc 100644
--- a/test/tint/ptr_ref/load/local/ptr_uniform.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/ptr_ref/load/local/ptr_uniform.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,9 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Access
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+cbuffer cbuffer_v : register(b0) {
+  uint4 v[1];
+};
+[numthreads(1, 1, 1)]
+void main() {
+  int u = (asint(v[0u].x) + 1);
+}
+
diff --git a/test/tint/ptr_ref/load/local/ptr_uniform.wgsl.expected.ir.fxc.hlsl b/test/tint/ptr_ref/load/local/ptr_uniform.wgsl.expected.ir.fxc.hlsl
index 3f437dc..9b8c5fc 100644
--- a/test/tint/ptr_ref/load/local/ptr_uniform.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/ptr_ref/load/local/ptr_uniform.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,9 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Access
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+cbuffer cbuffer_v : register(b0) {
+  uint4 v[1];
+};
+[numthreads(1, 1, 1)]
+void main() {
+  int u = (asint(v[0u].x) + 1);
+}
+
diff --git a/test/tint/ptr_ref/load/local/ptr_workgroup.wgsl.expected.ir.dxc.hlsl b/test/tint/ptr_ref/load/local/ptr_workgroup.wgsl.expected.ir.dxc.hlsl
index 9a7b8de..52ea5f2 100644
--- a/test/tint/ptr_ref/load/local/ptr_workgroup.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/ptr_ref/load/local/ptr_workgroup.wgsl.expected.ir.dxc.hlsl
@@ -1,17 +1,21 @@
-SKIP: FAILED
+struct main_inputs {
+  uint tint_local_index : SV_GroupIndex;
+};
 
-[numthreads(1, 1, 1)]
-void main() {
+
+groupshared int i;
+void main_inner(uint tint_local_index) {
+  if ((tint_local_index == 0u)) {
+    i = 0;
+  }
+  GroupMemoryBarrierWithGroupSync();
   i = 123;
   int p = i;
   int u = (p + 1);
 }
 
-DXC validation failure:
-hlsl.hlsl:3:3: error: use of undeclared identifier 'i'
-  i = 123;
-  ^
-hlsl.hlsl:4:11: error: use of undeclared identifier 'i'
-  int p = i;
-          ^
+[numthreads(1, 1, 1)]
+void main(main_inputs inputs) {
+  main_inner(inputs.tint_local_index);
+}
 
diff --git a/test/tint/ptr_ref/load/local/ptr_workgroup.wgsl.expected.ir.fxc.hlsl b/test/tint/ptr_ref/load/local/ptr_workgroup.wgsl.expected.ir.fxc.hlsl
index 46fbfbf..52ea5f2 100644
--- a/test/tint/ptr_ref/load/local/ptr_workgroup.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/ptr_ref/load/local/ptr_workgroup.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,21 @@
-SKIP: FAILED
+struct main_inputs {
+  uint tint_local_index : SV_GroupIndex;
+};
 
-[numthreads(1, 1, 1)]
-void main() {
+
+groupshared int i;
+void main_inner(uint tint_local_index) {
+  if ((tint_local_index == 0u)) {
+    i = 0;
+  }
+  GroupMemoryBarrierWithGroupSync();
   i = 123;
   int p = i;
   int u = (p + 1);
 }
 
+[numthreads(1, 1, 1)]
+void main(main_inputs inputs) {
+  main_inner(inputs.tint_local_index);
+}
+
diff --git a/test/tint/ptr_ref/load/local/struct_field.spvasm.expected.ir.dxc.hlsl b/test/tint/ptr_ref/load/local/struct_field.spvasm.expected.ir.dxc.hlsl
index 0ba40c6..5b18cc7 100644
--- a/test/tint/ptr_ref/load/local/struct_field.spvasm.expected.ir.dxc.hlsl
+++ b/test/tint/ptr_ref/load/local/struct_field.spvasm.expected.ir.dxc.hlsl
@@ -1,9 +1,16 @@
-SKIP: FAILED
+struct S {
+  int i;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+
+void main_1() {
+  int i = 0;
+  S V = (S)0;
+  i = V.i;
+}
+
+[numthreads(1, 1, 1)]
+void main() {
+  main_1();
+}
+
diff --git a/test/tint/ptr_ref/load/local/struct_field.spvasm.expected.ir.fxc.hlsl b/test/tint/ptr_ref/load/local/struct_field.spvasm.expected.ir.fxc.hlsl
index 0ba40c6..5b18cc7 100644
--- a/test/tint/ptr_ref/load/local/struct_field.spvasm.expected.ir.fxc.hlsl
+++ b/test/tint/ptr_ref/load/local/struct_field.spvasm.expected.ir.fxc.hlsl
@@ -1,9 +1,16 @@
-SKIP: FAILED
+struct S {
+  int i;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+
+void main_1() {
+  int i = 0;
+  S V = (S)0;
+  i = V.i;
+}
+
+[numthreads(1, 1, 1)]
+void main() {
+  main_1();
+}
+
diff --git a/test/tint/ptr_ref/load/local/struct_field.wgsl.expected.ir.dxc.hlsl b/test/tint/ptr_ref/load/local/struct_field.wgsl.expected.ir.dxc.hlsl
index 0ba40c6..6ecada8 100644
--- a/test/tint/ptr_ref/load/local/struct_field.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/ptr_ref/load/local/struct_field.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,11 @@
-SKIP: FAILED
+struct S {
+  int i;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+
+[numthreads(1, 1, 1)]
+void main() {
+  S V = (S)0;
+  int i = V.i;
+}
+
diff --git a/test/tint/ptr_ref/load/local/struct_field.wgsl.expected.ir.fxc.hlsl b/test/tint/ptr_ref/load/local/struct_field.wgsl.expected.ir.fxc.hlsl
index 0ba40c6..6ecada8 100644
--- a/test/tint/ptr_ref/load/local/struct_field.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/ptr_ref/load/local/struct_field.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,11 @@
-SKIP: FAILED
+struct S {
+  int i;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+
+[numthreads(1, 1, 1)]
+void main() {
+  S V = (S)0;
+  int i = V.i;
+}
+
diff --git a/test/tint/ptr_ref/load/param/function/array_in_struct.wgsl.expected.ir.dxc.hlsl b/test/tint/ptr_ref/load/param/function/array_in_struct.wgsl.expected.ir.dxc.hlsl
index 6b047b4..d852c97 100644
--- a/test/tint/ptr_ref/load/param/function/array_in_struct.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/ptr_ref/load/param/function/array_in_struct.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,17 @@
-SKIP: FAILED
+struct str {
+  int arr[4];
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:287 internal compiler error: Switch() matched no cases. Type: tint::core::ir::FunctionParam
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+
+typedef int ary_ret[4];
+ary_ret func(inout int pointer[4]) {
+  int v[4] = pointer;
+  return v;
+}
+
+[numthreads(1, 1, 1)]
+void main() {
+  str F = (str)0;
+  int r[4] = func(F.arr);
+}
+
diff --git a/test/tint/ptr_ref/load/param/function/array_in_struct.wgsl.expected.ir.fxc.hlsl b/test/tint/ptr_ref/load/param/function/array_in_struct.wgsl.expected.ir.fxc.hlsl
index 6b047b4..d852c97 100644
--- a/test/tint/ptr_ref/load/param/function/array_in_struct.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/ptr_ref/load/param/function/array_in_struct.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,17 @@
-SKIP: FAILED
+struct str {
+  int arr[4];
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:287 internal compiler error: Switch() matched no cases. Type: tint::core::ir::FunctionParam
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+
+typedef int ary_ret[4];
+ary_ret func(inout int pointer[4]) {
+  int v[4] = pointer;
+  return v;
+}
+
+[numthreads(1, 1, 1)]
+void main() {
+  str F = (str)0;
+  int r[4] = func(F.arr);
+}
+
diff --git a/test/tint/ptr_ref/load/param/function/i32.wgsl.expected.ir.dxc.hlsl b/test/tint/ptr_ref/load/param/function/i32.wgsl.expected.ir.dxc.hlsl
index 6b047b4..b8877d1 100644
--- a/test/tint/ptr_ref/load/param/function/i32.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/ptr_ref/load/param/function/i32.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,11 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:287 internal compiler error: Switch() matched no cases. Type: tint::core::ir::FunctionParam
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+int func(inout int pointer) {
+  return pointer;
+}
+
+[numthreads(1, 1, 1)]
+void main() {
+  int F = 0;
+  int r = func(F);
+}
+
diff --git a/test/tint/ptr_ref/load/param/function/i32.wgsl.expected.ir.fxc.hlsl b/test/tint/ptr_ref/load/param/function/i32.wgsl.expected.ir.fxc.hlsl
index 6b047b4..b8877d1 100644
--- a/test/tint/ptr_ref/load/param/function/i32.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/ptr_ref/load/param/function/i32.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,11 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:287 internal compiler error: Switch() matched no cases. Type: tint::core::ir::FunctionParam
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+int func(inout int pointer) {
+  return pointer;
+}
+
+[numthreads(1, 1, 1)]
+void main() {
+  int F = 0;
+  int r = func(F);
+}
+
diff --git a/test/tint/ptr_ref/load/param/function/i32_in_struct.wgsl.expected.ir.dxc.hlsl b/test/tint/ptr_ref/load/param/function/i32_in_struct.wgsl.expected.ir.dxc.hlsl
index 6b047b4..af37024 100644
--- a/test/tint/ptr_ref/load/param/function/i32_in_struct.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/ptr_ref/load/param/function/i32_in_struct.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,15 @@
-SKIP: FAILED
+struct str {
+  int i;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:287 internal compiler error: Switch() matched no cases. Type: tint::core::ir::FunctionParam
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+
+int func(inout int pointer) {
+  return pointer;
+}
+
+[numthreads(1, 1, 1)]
+void main() {
+  str F = (str)0;
+  int r = func(F.i);
+}
+
diff --git a/test/tint/ptr_ref/load/param/function/i32_in_struct.wgsl.expected.ir.fxc.hlsl b/test/tint/ptr_ref/load/param/function/i32_in_struct.wgsl.expected.ir.fxc.hlsl
index 6b047b4..af37024 100644
--- a/test/tint/ptr_ref/load/param/function/i32_in_struct.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/ptr_ref/load/param/function/i32_in_struct.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,15 @@
-SKIP: FAILED
+struct str {
+  int i;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:287 internal compiler error: Switch() matched no cases. Type: tint::core::ir::FunctionParam
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+
+int func(inout int pointer) {
+  return pointer;
+}
+
+[numthreads(1, 1, 1)]
+void main() {
+  str F = (str)0;
+  int r = func(F.i);
+}
+
diff --git a/test/tint/ptr_ref/load/param/function/struct_in_array.wgsl.expected.ir.dxc.hlsl b/test/tint/ptr_ref/load/param/function/struct_in_array.wgsl.expected.ir.dxc.hlsl
index 6b047b4..f55f58e 100644
--- a/test/tint/ptr_ref/load/param/function/struct_in_array.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/ptr_ref/load/param/function/struct_in_array.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,16 @@
-SKIP: FAILED
+struct str {
+  int i;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:287 internal compiler error: Switch() matched no cases. Type: tint::core::ir::FunctionParam
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+
+str func(inout str pointer) {
+  str v = pointer;
+  return v;
+}
+
+[numthreads(1, 1, 1)]
+void main() {
+  str F[4] = (str[4])0;
+  str r = func(F[2]);
+}
+
diff --git a/test/tint/ptr_ref/load/param/function/struct_in_array.wgsl.expected.ir.fxc.hlsl b/test/tint/ptr_ref/load/param/function/struct_in_array.wgsl.expected.ir.fxc.hlsl
index 6b047b4..f55f58e 100644
--- a/test/tint/ptr_ref/load/param/function/struct_in_array.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/ptr_ref/load/param/function/struct_in_array.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,16 @@
-SKIP: FAILED
+struct str {
+  int i;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:287 internal compiler error: Switch() matched no cases. Type: tint::core::ir::FunctionParam
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+
+str func(inout str pointer) {
+  str v = pointer;
+  return v;
+}
+
+[numthreads(1, 1, 1)]
+void main() {
+  str F[4] = (str[4])0;
+  str r = func(F[2]);
+}
+
diff --git a/test/tint/ptr_ref/load/param/function/vec2_f32_in_mat2x2.wgsl.expected.ir.dxc.hlsl b/test/tint/ptr_ref/load/param/function/vec2_f32_in_mat2x2.wgsl.expected.ir.dxc.hlsl
index 6b047b4..066d981 100644
--- a/test/tint/ptr_ref/load/param/function/vec2_f32_in_mat2x2.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/ptr_ref/load/param/function/vec2_f32_in_mat2x2.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,11 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:287 internal compiler error: Switch() matched no cases. Type: tint::core::ir::FunctionParam
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+float2 func(inout float2 pointer) {
+  return pointer;
+}
+
+[numthreads(1, 1, 1)]
+void main() {
+  float2x2 F = float2x2((0.0f).xx, (0.0f).xx);
+  float2 r = func(F[1]);
+}
+
diff --git a/test/tint/ptr_ref/load/param/function/vec2_f32_in_mat2x2.wgsl.expected.ir.fxc.hlsl b/test/tint/ptr_ref/load/param/function/vec2_f32_in_mat2x2.wgsl.expected.ir.fxc.hlsl
index 6b047b4..066d981 100644
--- a/test/tint/ptr_ref/load/param/function/vec2_f32_in_mat2x2.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/ptr_ref/load/param/function/vec2_f32_in_mat2x2.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,11 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:287 internal compiler error: Switch() matched no cases. Type: tint::core::ir::FunctionParam
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+float2 func(inout float2 pointer) {
+  return pointer;
+}
+
+[numthreads(1, 1, 1)]
+void main() {
+  float2x2 F = float2x2((0.0f).xx, (0.0f).xx);
+  float2 r = func(F[1]);
+}
+
diff --git a/test/tint/ptr_ref/load/param/function/vec4_f32.wgsl.expected.ir.dxc.hlsl b/test/tint/ptr_ref/load/param/function/vec4_f32.wgsl.expected.ir.dxc.hlsl
index 6b047b4..e9b86ec 100644
--- a/test/tint/ptr_ref/load/param/function/vec4_f32.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/ptr_ref/load/param/function/vec4_f32.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,11 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:287 internal compiler error: Switch() matched no cases. Type: tint::core::ir::FunctionParam
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+float4 func(inout float4 pointer) {
+  return pointer;
+}
+
+[numthreads(1, 1, 1)]
+void main() {
+  float4 F = (0.0f).xxxx;
+  float4 r = func(F);
+}
+
diff --git a/test/tint/ptr_ref/load/param/function/vec4_f32.wgsl.expected.ir.fxc.hlsl b/test/tint/ptr_ref/load/param/function/vec4_f32.wgsl.expected.ir.fxc.hlsl
index 6b047b4..e9b86ec 100644
--- a/test/tint/ptr_ref/load/param/function/vec4_f32.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/ptr_ref/load/param/function/vec4_f32.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,11 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:287 internal compiler error: Switch() matched no cases. Type: tint::core::ir::FunctionParam
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+float4 func(inout float4 pointer) {
+  return pointer;
+}
+
+[numthreads(1, 1, 1)]
+void main() {
+  float4 F = (0.0f).xxxx;
+  float4 r = func(F);
+}
+
diff --git a/test/tint/ptr_ref/load/param/function/vec4_f32_in_mat2x4.wgsl.expected.ir.dxc.hlsl b/test/tint/ptr_ref/load/param/function/vec4_f32_in_mat2x4.wgsl.expected.ir.dxc.hlsl
index 6b047b4..5f9b4fa 100644
--- a/test/tint/ptr_ref/load/param/function/vec4_f32_in_mat2x4.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/ptr_ref/load/param/function/vec4_f32_in_mat2x4.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,11 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:287 internal compiler error: Switch() matched no cases. Type: tint::core::ir::FunctionParam
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+float4 func(inout float4 pointer) {
+  return pointer;
+}
+
+[numthreads(1, 1, 1)]
+void main() {
+  float2x4 F = float2x4((0.0f).xxxx, (0.0f).xxxx);
+  float4 r = func(F[1]);
+}
+
diff --git a/test/tint/ptr_ref/load/param/function/vec4_f32_in_mat2x4.wgsl.expected.ir.fxc.hlsl b/test/tint/ptr_ref/load/param/function/vec4_f32_in_mat2x4.wgsl.expected.ir.fxc.hlsl
index 6b047b4..5f9b4fa 100644
--- a/test/tint/ptr_ref/load/param/function/vec4_f32_in_mat2x4.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/ptr_ref/load/param/function/vec4_f32_in_mat2x4.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,11 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:287 internal compiler error: Switch() matched no cases. Type: tint::core::ir::FunctionParam
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+float4 func(inout float4 pointer) {
+  return pointer;
+}
+
+[numthreads(1, 1, 1)]
+void main() {
+  float2x4 F = float2x4((0.0f).xxxx, (0.0f).xxxx);
+  float4 r = func(F[1]);
+}
+
diff --git a/test/tint/ptr_ref/load/param/function/vec4_f32_in_struct.wgsl.expected.ir.dxc.hlsl b/test/tint/ptr_ref/load/param/function/vec4_f32_in_struct.wgsl.expected.ir.dxc.hlsl
index 6b047b4..fa3fbc2 100644
--- a/test/tint/ptr_ref/load/param/function/vec4_f32_in_struct.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/ptr_ref/load/param/function/vec4_f32_in_struct.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,15 @@
-SKIP: FAILED
+struct str {
+  float4 i;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:287 internal compiler error: Switch() matched no cases. Type: tint::core::ir::FunctionParam
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+
+float4 func(inout float4 pointer) {
+  return pointer;
+}
+
+[numthreads(1, 1, 1)]
+void main() {
+  str F = (str)0;
+  float4 r = func(F.i);
+}
+
diff --git a/test/tint/ptr_ref/load/param/function/vec4_f32_in_struct.wgsl.expected.ir.fxc.hlsl b/test/tint/ptr_ref/load/param/function/vec4_f32_in_struct.wgsl.expected.ir.fxc.hlsl
index 6b047b4..fa3fbc2 100644
--- a/test/tint/ptr_ref/load/param/function/vec4_f32_in_struct.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/ptr_ref/load/param/function/vec4_f32_in_struct.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,15 @@
-SKIP: FAILED
+struct str {
+  float4 i;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:287 internal compiler error: Switch() matched no cases. Type: tint::core::ir::FunctionParam
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+
+float4 func(inout float4 pointer) {
+  return pointer;
+}
+
+[numthreads(1, 1, 1)]
+void main() {
+  str F = (str)0;
+  float4 r = func(F.i);
+}
+
diff --git a/test/tint/ptr_ref/load/param/private/array_in_struct.wgsl.expected.ir.dxc.hlsl b/test/tint/ptr_ref/load/param/private/array_in_struct.wgsl.expected.ir.dxc.hlsl
index 6b047b4..d7c8555 100644
--- a/test/tint/ptr_ref/load/param/private/array_in_struct.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/ptr_ref/load/param/private/array_in_struct.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,17 @@
-SKIP: FAILED
+struct str {
+  int arr[4];
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:287 internal compiler error: Switch() matched no cases. Type: tint::core::ir::FunctionParam
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+
+static str P = (str)0;
+typedef int ary_ret[4];
+ary_ret func(inout int pointer[4]) {
+  int v[4] = pointer;
+  return v;
+}
+
+[numthreads(1, 1, 1)]
+void main() {
+  int r[4] = func(P.arr);
+}
+
diff --git a/test/tint/ptr_ref/load/param/private/array_in_struct.wgsl.expected.ir.fxc.hlsl b/test/tint/ptr_ref/load/param/private/array_in_struct.wgsl.expected.ir.fxc.hlsl
index 6b047b4..d7c8555 100644
--- a/test/tint/ptr_ref/load/param/private/array_in_struct.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/ptr_ref/load/param/private/array_in_struct.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,17 @@
-SKIP: FAILED
+struct str {
+  int arr[4];
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:287 internal compiler error: Switch() matched no cases. Type: tint::core::ir::FunctionParam
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+
+static str P = (str)0;
+typedef int ary_ret[4];
+ary_ret func(inout int pointer[4]) {
+  int v[4] = pointer;
+  return v;
+}
+
+[numthreads(1, 1, 1)]
+void main() {
+  int r[4] = func(P.arr);
+}
+
diff --git a/test/tint/ptr_ref/load/param/private/i32.wgsl.expected.ir.dxc.hlsl b/test/tint/ptr_ref/load/param/private/i32.wgsl.expected.ir.dxc.hlsl
index 6b047b4..d2d7604 100644
--- a/test/tint/ptr_ref/load/param/private/i32.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/ptr_ref/load/param/private/i32.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,11 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:287 internal compiler error: Switch() matched no cases. Type: tint::core::ir::FunctionParam
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+static int P = 0;
+int func(inout int pointer) {
+  return pointer;
+}
+
+[numthreads(1, 1, 1)]
+void main() {
+  int r = func(P);
+}
+
diff --git a/test/tint/ptr_ref/load/param/private/i32.wgsl.expected.ir.fxc.hlsl b/test/tint/ptr_ref/load/param/private/i32.wgsl.expected.ir.fxc.hlsl
index 6b047b4..d2d7604 100644
--- a/test/tint/ptr_ref/load/param/private/i32.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/ptr_ref/load/param/private/i32.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,11 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:287 internal compiler error: Switch() matched no cases. Type: tint::core::ir::FunctionParam
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+static int P = 0;
+int func(inout int pointer) {
+  return pointer;
+}
+
+[numthreads(1, 1, 1)]
+void main() {
+  int r = func(P);
+}
+
diff --git a/test/tint/ptr_ref/load/param/private/i32_in_struct.wgsl.expected.ir.dxc.hlsl b/test/tint/ptr_ref/load/param/private/i32_in_struct.wgsl.expected.ir.dxc.hlsl
index 6b047b4..e8bc009 100644
--- a/test/tint/ptr_ref/load/param/private/i32_in_struct.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/ptr_ref/load/param/private/i32_in_struct.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,15 @@
-SKIP: FAILED
+struct str {
+  int i;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:287 internal compiler error: Switch() matched no cases. Type: tint::core::ir::FunctionParam
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+
+static str P = (str)0;
+int func(inout int pointer) {
+  return pointer;
+}
+
+[numthreads(1, 1, 1)]
+void main() {
+  int r = func(P.i);
+}
+
diff --git a/test/tint/ptr_ref/load/param/private/i32_in_struct.wgsl.expected.ir.fxc.hlsl b/test/tint/ptr_ref/load/param/private/i32_in_struct.wgsl.expected.ir.fxc.hlsl
index 6b047b4..e8bc009 100644
--- a/test/tint/ptr_ref/load/param/private/i32_in_struct.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/ptr_ref/load/param/private/i32_in_struct.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,15 @@
-SKIP: FAILED
+struct str {
+  int i;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:287 internal compiler error: Switch() matched no cases. Type: tint::core::ir::FunctionParam
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+
+static str P = (str)0;
+int func(inout int pointer) {
+  return pointer;
+}
+
+[numthreads(1, 1, 1)]
+void main() {
+  int r = func(P.i);
+}
+
diff --git a/test/tint/ptr_ref/load/param/private/struct_in_array.wgsl.expected.ir.dxc.hlsl b/test/tint/ptr_ref/load/param/private/struct_in_array.wgsl.expected.ir.dxc.hlsl
index 6b047b4..75ea3ea 100644
--- a/test/tint/ptr_ref/load/param/private/struct_in_array.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/ptr_ref/load/param/private/struct_in_array.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,16 @@
-SKIP: FAILED
+struct str {
+  int i;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:287 internal compiler error: Switch() matched no cases. Type: tint::core::ir::FunctionParam
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+
+static str P[4] = (str[4])0;
+str func(inout str pointer) {
+  str v = pointer;
+  return v;
+}
+
+[numthreads(1, 1, 1)]
+void main() {
+  str r = func(P[2]);
+}
+
diff --git a/test/tint/ptr_ref/load/param/private/struct_in_array.wgsl.expected.ir.fxc.hlsl b/test/tint/ptr_ref/load/param/private/struct_in_array.wgsl.expected.ir.fxc.hlsl
index 6b047b4..75ea3ea 100644
--- a/test/tint/ptr_ref/load/param/private/struct_in_array.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/ptr_ref/load/param/private/struct_in_array.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,16 @@
-SKIP: FAILED
+struct str {
+  int i;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:287 internal compiler error: Switch() matched no cases. Type: tint::core::ir::FunctionParam
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+
+static str P[4] = (str[4])0;
+str func(inout str pointer) {
+  str v = pointer;
+  return v;
+}
+
+[numthreads(1, 1, 1)]
+void main() {
+  str r = func(P[2]);
+}
+
diff --git a/test/tint/ptr_ref/load/param/private/vec2_f32_in_mat2x2.wgsl.expected.ir.dxc.hlsl b/test/tint/ptr_ref/load/param/private/vec2_f32_in_mat2x2.wgsl.expected.ir.dxc.hlsl
index 6b047b4..d0ac27f 100644
--- a/test/tint/ptr_ref/load/param/private/vec2_f32_in_mat2x2.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/ptr_ref/load/param/private/vec2_f32_in_mat2x2.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,11 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:287 internal compiler error: Switch() matched no cases. Type: tint::core::ir::FunctionParam
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+static float2x2 P = float2x2((0.0f).xx, (0.0f).xx);
+float2 func(inout float2 pointer) {
+  return pointer;
+}
+
+[numthreads(1, 1, 1)]
+void main() {
+  float2 r = func(P[1]);
+}
+
diff --git a/test/tint/ptr_ref/load/param/private/vec2_f32_in_mat2x2.wgsl.expected.ir.fxc.hlsl b/test/tint/ptr_ref/load/param/private/vec2_f32_in_mat2x2.wgsl.expected.ir.fxc.hlsl
index 6b047b4..d0ac27f 100644
--- a/test/tint/ptr_ref/load/param/private/vec2_f32_in_mat2x2.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/ptr_ref/load/param/private/vec2_f32_in_mat2x2.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,11 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:287 internal compiler error: Switch() matched no cases. Type: tint::core::ir::FunctionParam
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+static float2x2 P = float2x2((0.0f).xx, (0.0f).xx);
+float2 func(inout float2 pointer) {
+  return pointer;
+}
+
+[numthreads(1, 1, 1)]
+void main() {
+  float2 r = func(P[1]);
+}
+
diff --git a/test/tint/ptr_ref/load/param/private/vec4_f32.wgsl.expected.ir.dxc.hlsl b/test/tint/ptr_ref/load/param/private/vec4_f32.wgsl.expected.ir.dxc.hlsl
index 6b047b4..c63de19 100644
--- a/test/tint/ptr_ref/load/param/private/vec4_f32.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/ptr_ref/load/param/private/vec4_f32.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,11 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:287 internal compiler error: Switch() matched no cases. Type: tint::core::ir::FunctionParam
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+static float4 P = (0.0f).xxxx;
+float4 func(inout float4 pointer) {
+  return pointer;
+}
+
+[numthreads(1, 1, 1)]
+void main() {
+  float4 r = func(P);
+}
+
diff --git a/test/tint/ptr_ref/load/param/private/vec4_f32.wgsl.expected.ir.fxc.hlsl b/test/tint/ptr_ref/load/param/private/vec4_f32.wgsl.expected.ir.fxc.hlsl
index 6b047b4..c63de19 100644
--- a/test/tint/ptr_ref/load/param/private/vec4_f32.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/ptr_ref/load/param/private/vec4_f32.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,11 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:287 internal compiler error: Switch() matched no cases. Type: tint::core::ir::FunctionParam
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+static float4 P = (0.0f).xxxx;
+float4 func(inout float4 pointer) {
+  return pointer;
+}
+
+[numthreads(1, 1, 1)]
+void main() {
+  float4 r = func(P);
+}
+
diff --git a/test/tint/ptr_ref/load/param/private/vec4_f32_in_mat2x4.wgsl.expected.ir.dxc.hlsl b/test/tint/ptr_ref/load/param/private/vec4_f32_in_mat2x4.wgsl.expected.ir.dxc.hlsl
index 6b047b4..f27544e 100644
--- a/test/tint/ptr_ref/load/param/private/vec4_f32_in_mat2x4.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/ptr_ref/load/param/private/vec4_f32_in_mat2x4.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,11 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:287 internal compiler error: Switch() matched no cases. Type: tint::core::ir::FunctionParam
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+static float2x4 P = float2x4((0.0f).xxxx, (0.0f).xxxx);
+float4 func(inout float4 pointer) {
+  return pointer;
+}
+
+[numthreads(1, 1, 1)]
+void main() {
+  float4 r = func(P[1]);
+}
+
diff --git a/test/tint/ptr_ref/load/param/private/vec4_f32_in_mat2x4.wgsl.expected.ir.fxc.hlsl b/test/tint/ptr_ref/load/param/private/vec4_f32_in_mat2x4.wgsl.expected.ir.fxc.hlsl
index 6b047b4..f27544e 100644
--- a/test/tint/ptr_ref/load/param/private/vec4_f32_in_mat2x4.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/ptr_ref/load/param/private/vec4_f32_in_mat2x4.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,11 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:287 internal compiler error: Switch() matched no cases. Type: tint::core::ir::FunctionParam
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+static float2x4 P = float2x4((0.0f).xxxx, (0.0f).xxxx);
+float4 func(inout float4 pointer) {
+  return pointer;
+}
+
+[numthreads(1, 1, 1)]
+void main() {
+  float4 r = func(P[1]);
+}
+
diff --git a/test/tint/ptr_ref/load/param/private/vec4_f32_in_struct.wgsl.expected.ir.dxc.hlsl b/test/tint/ptr_ref/load/param/private/vec4_f32_in_struct.wgsl.expected.ir.dxc.hlsl
index 6b047b4..319c82a 100644
--- a/test/tint/ptr_ref/load/param/private/vec4_f32_in_struct.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/ptr_ref/load/param/private/vec4_f32_in_struct.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,15 @@
-SKIP: FAILED
+struct str {
+  float4 i;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:287 internal compiler error: Switch() matched no cases. Type: tint::core::ir::FunctionParam
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+
+static str P = (str)0;
+float4 func(inout float4 pointer) {
+  return pointer;
+}
+
+[numthreads(1, 1, 1)]
+void main() {
+  float4 r = func(P.i);
+}
+
diff --git a/test/tint/ptr_ref/load/param/private/vec4_f32_in_struct.wgsl.expected.ir.fxc.hlsl b/test/tint/ptr_ref/load/param/private/vec4_f32_in_struct.wgsl.expected.ir.fxc.hlsl
index 6b047b4..319c82a 100644
--- a/test/tint/ptr_ref/load/param/private/vec4_f32_in_struct.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/ptr_ref/load/param/private/vec4_f32_in_struct.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,15 @@
-SKIP: FAILED
+struct str {
+  float4 i;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:287 internal compiler error: Switch() matched no cases. Type: tint::core::ir::FunctionParam
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+
+static str P = (str)0;
+float4 func(inout float4 pointer) {
+  return pointer;
+}
+
+[numthreads(1, 1, 1)]
+void main() {
+  float4 r = func(P.i);
+}
+
diff --git a/test/tint/ptr_ref/load/param/ptr.spvasm.expected.ir.dxc.hlsl b/test/tint/ptr_ref/load/param/ptr.spvasm.expected.ir.dxc.hlsl
index 6b047b4..a278116 100644
--- a/test/tint/ptr_ref/load/param/ptr.spvasm.expected.ir.dxc.hlsl
+++ b/test/tint/ptr_ref/load/param/ptr.spvasm.expected.ir.dxc.hlsl
@@ -1,9 +1,18 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:287 internal compiler error: Switch() matched no cases. Type: tint::core::ir::FunctionParam
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+int func(int value, inout int pointer) {
+  int x_9 = pointer;
+  return (value + x_9);
+}
+
+void main_1() {
+  int i = 0;
+  i = 123;
+  int x_19 = i;
+  int x_18 = func(x_19, i);
+}
+
+[numthreads(1, 1, 1)]
+void main() {
+  main_1();
+}
+
diff --git a/test/tint/ptr_ref/load/param/ptr.spvasm.expected.ir.fxc.hlsl b/test/tint/ptr_ref/load/param/ptr.spvasm.expected.ir.fxc.hlsl
index 6b047b4..a278116 100644
--- a/test/tint/ptr_ref/load/param/ptr.spvasm.expected.ir.fxc.hlsl
+++ b/test/tint/ptr_ref/load/param/ptr.spvasm.expected.ir.fxc.hlsl
@@ -1,9 +1,18 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:287 internal compiler error: Switch() matched no cases. Type: tint::core::ir::FunctionParam
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+int func(int value, inout int pointer) {
+  int x_9 = pointer;
+  return (value + x_9);
+}
+
+void main_1() {
+  int i = 0;
+  i = 123;
+  int x_19 = i;
+  int x_18 = func(x_19, i);
+}
+
+[numthreads(1, 1, 1)]
+void main() {
+  main_1();
+}
+
diff --git a/test/tint/ptr_ref/load/param/ptr.wgsl.expected.ir.dxc.hlsl b/test/tint/ptr_ref/load/param/ptr.wgsl.expected.ir.dxc.hlsl
index 6b047b4..fadec7f 100644
--- a/test/tint/ptr_ref/load/param/ptr.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/ptr_ref/load/param/ptr.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,11 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:287 internal compiler error: Switch() matched no cases. Type: tint::core::ir::FunctionParam
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+int func(int value, inout int pointer) {
+  return (value + pointer);
+}
+
+[numthreads(1, 1, 1)]
+void main() {
+  int i = 123;
+  int r = func(i, i);
+}
+
diff --git a/test/tint/ptr_ref/load/param/ptr.wgsl.expected.ir.fxc.hlsl b/test/tint/ptr_ref/load/param/ptr.wgsl.expected.ir.fxc.hlsl
index 6b047b4..fadec7f 100644
--- a/test/tint/ptr_ref/load/param/ptr.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/ptr_ref/load/param/ptr.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,11 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:287 internal compiler error: Switch() matched no cases. Type: tint::core::ir::FunctionParam
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+int func(int value, inout int pointer) {
+  return (value + pointer);
+}
+
+[numthreads(1, 1, 1)]
+void main() {
+  int i = 123;
+  int r = func(i, i);
+}
+
diff --git a/test/tint/ptr_ref/load/param/storage/array_in_struct.wgsl.expected.ir.dxc.hlsl b/test/tint/ptr_ref/load/param/storage/array_in_struct.wgsl.expected.ir.dxc.hlsl
index 6b047b4..1abbe3e 100644
--- a/test/tint/ptr_ref/load/param/storage/array_in_struct.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/ptr_ref/load/param/storage/array_in_struct.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,35 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:287 internal compiler error: Switch() matched no cases. Type: tint::core::ir::FunctionParam
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+ByteAddressBuffer S : register(t0);
+typedef int ary_ret[4];
+ary_ret v(uint offset) {
+  int a[4] = (int[4])0;
+  {
+    uint v_1 = 0u;
+    v_1 = 0u;
+    while(true) {
+      uint v_2 = v_1;
+      if ((v_2 >= 4u)) {
+        break;
+      }
+      a[v_2] = asint(S.Load((offset + (v_2 * 4u))));
+      {
+        v_1 = (v_2 + 1u);
+      }
+      continue;
+    }
+  }
+  int v_3[4] = a;
+  return v_3;
+}
+
+typedef int ary_ret_1[4];
+ary_ret_1 func() {
+  int v_4[4] = v(0u);
+  return v_4;
+}
+
+[numthreads(1, 1, 1)]
+void main() {
+  int r[4] = func();
+}
+
diff --git a/test/tint/ptr_ref/load/param/storage/array_in_struct.wgsl.expected.ir.fxc.hlsl b/test/tint/ptr_ref/load/param/storage/array_in_struct.wgsl.expected.ir.fxc.hlsl
index 6b047b4..1abbe3e 100644
--- a/test/tint/ptr_ref/load/param/storage/array_in_struct.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/ptr_ref/load/param/storage/array_in_struct.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,35 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:287 internal compiler error: Switch() matched no cases. Type: tint::core::ir::FunctionParam
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+ByteAddressBuffer S : register(t0);
+typedef int ary_ret[4];
+ary_ret v(uint offset) {
+  int a[4] = (int[4])0;
+  {
+    uint v_1 = 0u;
+    v_1 = 0u;
+    while(true) {
+      uint v_2 = v_1;
+      if ((v_2 >= 4u)) {
+        break;
+      }
+      a[v_2] = asint(S.Load((offset + (v_2 * 4u))));
+      {
+        v_1 = (v_2 + 1u);
+      }
+      continue;
+    }
+  }
+  int v_3[4] = a;
+  return v_3;
+}
+
+typedef int ary_ret_1[4];
+ary_ret_1 func() {
+  int v_4[4] = v(0u);
+  return v_4;
+}
+
+[numthreads(1, 1, 1)]
+void main() {
+  int r[4] = func();
+}
+
diff --git a/test/tint/ptr_ref/load/param/storage/i32.wgsl.expected.ir.dxc.hlsl b/test/tint/ptr_ref/load/param/storage/i32.wgsl.expected.ir.dxc.hlsl
index 6b047b4..6de5422 100644
--- a/test/tint/ptr_ref/load/param/storage/i32.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/ptr_ref/load/param/storage/i32.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,11 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:287 internal compiler error: Switch() matched no cases. Type: tint::core::ir::FunctionParam
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+ByteAddressBuffer S : register(t0);
+int func() {
+  return asint(S.Load(0u));
+}
+
+[numthreads(1, 1, 1)]
+void main() {
+  int r = func();
+}
+
diff --git a/test/tint/ptr_ref/load/param/storage/i32.wgsl.expected.ir.fxc.hlsl b/test/tint/ptr_ref/load/param/storage/i32.wgsl.expected.ir.fxc.hlsl
index 6b047b4..6de5422 100644
--- a/test/tint/ptr_ref/load/param/storage/i32.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/ptr_ref/load/param/storage/i32.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,11 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:287 internal compiler error: Switch() matched no cases. Type: tint::core::ir::FunctionParam
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+ByteAddressBuffer S : register(t0);
+int func() {
+  return asint(S.Load(0u));
+}
+
+[numthreads(1, 1, 1)]
+void main() {
+  int r = func();
+}
+
diff --git a/test/tint/ptr_ref/load/param/storage/i32_in_struct.wgsl.expected.ir.dxc.hlsl b/test/tint/ptr_ref/load/param/storage/i32_in_struct.wgsl.expected.ir.dxc.hlsl
index 6b047b4..6de5422 100644
--- a/test/tint/ptr_ref/load/param/storage/i32_in_struct.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/ptr_ref/load/param/storage/i32_in_struct.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,11 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:287 internal compiler error: Switch() matched no cases. Type: tint::core::ir::FunctionParam
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+ByteAddressBuffer S : register(t0);
+int func() {
+  return asint(S.Load(0u));
+}
+
+[numthreads(1, 1, 1)]
+void main() {
+  int r = func();
+}
+
diff --git a/test/tint/ptr_ref/load/param/storage/i32_in_struct.wgsl.expected.ir.fxc.hlsl b/test/tint/ptr_ref/load/param/storage/i32_in_struct.wgsl.expected.ir.fxc.hlsl
index 6b047b4..6de5422 100644
--- a/test/tint/ptr_ref/load/param/storage/i32_in_struct.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/ptr_ref/load/param/storage/i32_in_struct.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,11 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:287 internal compiler error: Switch() matched no cases. Type: tint::core::ir::FunctionParam
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+ByteAddressBuffer S : register(t0);
+int func() {
+  return asint(S.Load(0u));
+}
+
+[numthreads(1, 1, 1)]
+void main() {
+  int r = func();
+}
+
diff --git a/test/tint/ptr_ref/load/param/storage/struct_in_array.wgsl.expected.ir.dxc.hlsl b/test/tint/ptr_ref/load/param/storage/struct_in_array.wgsl.expected.ir.dxc.hlsl
index 6b047b4..4465345 100644
--- a/test/tint/ptr_ref/load/param/storage/struct_in_array.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/ptr_ref/load/param/storage/struct_in_array.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,22 @@
-SKIP: FAILED
+struct str {
+  int i;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:287 internal compiler error: Switch() matched no cases. Type: tint::core::ir::FunctionParam
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+
+ByteAddressBuffer S : register(t0);
+str v(uint offset) {
+  str v_1 = {asint(S.Load((offset + 0u)))};
+  return v_1;
+}
+
+str func(uint pointer_indices[1]) {
+  str v_2 = v((0u + (uint(pointer_indices[0u]) * 4u)));
+  return v_2;
+}
+
+[numthreads(1, 1, 1)]
+void main() {
+  uint v_3[1] = (uint[1])0;
+  str r = func(v_3);
+}
+
diff --git a/test/tint/ptr_ref/load/param/storage/struct_in_array.wgsl.expected.ir.fxc.hlsl b/test/tint/ptr_ref/load/param/storage/struct_in_array.wgsl.expected.ir.fxc.hlsl
index 6b047b4..4465345 100644
--- a/test/tint/ptr_ref/load/param/storage/struct_in_array.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/ptr_ref/load/param/storage/struct_in_array.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,22 @@
-SKIP: FAILED
+struct str {
+  int i;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:287 internal compiler error: Switch() matched no cases. Type: tint::core::ir::FunctionParam
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+
+ByteAddressBuffer S : register(t0);
+str v(uint offset) {
+  str v_1 = {asint(S.Load((offset + 0u)))};
+  return v_1;
+}
+
+str func(uint pointer_indices[1]) {
+  str v_2 = v((0u + (uint(pointer_indices[0u]) * 4u)));
+  return v_2;
+}
+
+[numthreads(1, 1, 1)]
+void main() {
+  uint v_3[1] = (uint[1])0;
+  str r = func(v_3);
+}
+
diff --git a/test/tint/ptr_ref/load/param/storage/vec2_f32_in_mat2x2.wgsl.expected.ir.dxc.hlsl b/test/tint/ptr_ref/load/param/storage/vec2_f32_in_mat2x2.wgsl.expected.ir.dxc.hlsl
index 6b047b4..fff9464 100644
--- a/test/tint/ptr_ref/load/param/storage/vec2_f32_in_mat2x2.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/ptr_ref/load/param/storage/vec2_f32_in_mat2x2.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,12 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:287 internal compiler error: Switch() matched no cases. Type: tint::core::ir::FunctionParam
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+ByteAddressBuffer S : register(t0);
+float2 func(uint pointer_indices[1]) {
+  return asfloat(S.Load2((0u + (uint(pointer_indices[0u]) * 8u))));
+}
+
+[numthreads(1, 1, 1)]
+void main() {
+  uint v[1] = (uint[1])0;
+  float2 r = func(v);
+}
+
diff --git a/test/tint/ptr_ref/load/param/storage/vec2_f32_in_mat2x2.wgsl.expected.ir.fxc.hlsl b/test/tint/ptr_ref/load/param/storage/vec2_f32_in_mat2x2.wgsl.expected.ir.fxc.hlsl
index 6b047b4..fff9464 100644
--- a/test/tint/ptr_ref/load/param/storage/vec2_f32_in_mat2x2.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/ptr_ref/load/param/storage/vec2_f32_in_mat2x2.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,12 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:287 internal compiler error: Switch() matched no cases. Type: tint::core::ir::FunctionParam
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+ByteAddressBuffer S : register(t0);
+float2 func(uint pointer_indices[1]) {
+  return asfloat(S.Load2((0u + (uint(pointer_indices[0u]) * 8u))));
+}
+
+[numthreads(1, 1, 1)]
+void main() {
+  uint v[1] = (uint[1])0;
+  float2 r = func(v);
+}
+
diff --git a/test/tint/ptr_ref/load/param/storage/vec4_f32.wgsl.expected.ir.dxc.hlsl b/test/tint/ptr_ref/load/param/storage/vec4_f32.wgsl.expected.ir.dxc.hlsl
index 6b047b4..a963b52 100644
--- a/test/tint/ptr_ref/load/param/storage/vec4_f32.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/ptr_ref/load/param/storage/vec4_f32.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,11 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:287 internal compiler error: Switch() matched no cases. Type: tint::core::ir::FunctionParam
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+ByteAddressBuffer S : register(t0);
+float4 func() {
+  return asfloat(S.Load4(0u));
+}
+
+[numthreads(1, 1, 1)]
+void main() {
+  float4 r = func();
+}
+
diff --git a/test/tint/ptr_ref/load/param/storage/vec4_f32.wgsl.expected.ir.fxc.hlsl b/test/tint/ptr_ref/load/param/storage/vec4_f32.wgsl.expected.ir.fxc.hlsl
index 6b047b4..a963b52 100644
--- a/test/tint/ptr_ref/load/param/storage/vec4_f32.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/ptr_ref/load/param/storage/vec4_f32.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,11 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:287 internal compiler error: Switch() matched no cases. Type: tint::core::ir::FunctionParam
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+ByteAddressBuffer S : register(t0);
+float4 func() {
+  return asfloat(S.Load4(0u));
+}
+
+[numthreads(1, 1, 1)]
+void main() {
+  float4 r = func();
+}
+
diff --git a/test/tint/ptr_ref/load/param/storage/vec4_f32_in_mat2x4.wgsl.expected.ir.dxc.hlsl b/test/tint/ptr_ref/load/param/storage/vec4_f32_in_mat2x4.wgsl.expected.ir.dxc.hlsl
index 6b047b4..0c48cb4 100644
--- a/test/tint/ptr_ref/load/param/storage/vec4_f32_in_mat2x4.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/ptr_ref/load/param/storage/vec4_f32_in_mat2x4.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,12 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:287 internal compiler error: Switch() matched no cases. Type: tint::core::ir::FunctionParam
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+ByteAddressBuffer S : register(t0);
+float4 func(uint pointer_indices[1]) {
+  return asfloat(S.Load4((0u + (uint(pointer_indices[0u]) * 16u))));
+}
+
+[numthreads(1, 1, 1)]
+void main() {
+  uint v[1] = (uint[1])0;
+  float4 r = func(v);
+}
+
diff --git a/test/tint/ptr_ref/load/param/storage/vec4_f32_in_mat2x4.wgsl.expected.ir.fxc.hlsl b/test/tint/ptr_ref/load/param/storage/vec4_f32_in_mat2x4.wgsl.expected.ir.fxc.hlsl
index 6b047b4..0c48cb4 100644
--- a/test/tint/ptr_ref/load/param/storage/vec4_f32_in_mat2x4.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/ptr_ref/load/param/storage/vec4_f32_in_mat2x4.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,12 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:287 internal compiler error: Switch() matched no cases. Type: tint::core::ir::FunctionParam
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+ByteAddressBuffer S : register(t0);
+float4 func(uint pointer_indices[1]) {
+  return asfloat(S.Load4((0u + (uint(pointer_indices[0u]) * 16u))));
+}
+
+[numthreads(1, 1, 1)]
+void main() {
+  uint v[1] = (uint[1])0;
+  float4 r = func(v);
+}
+
diff --git a/test/tint/ptr_ref/load/param/storage/vec4_f32_in_struct.wgsl.expected.ir.dxc.hlsl b/test/tint/ptr_ref/load/param/storage/vec4_f32_in_struct.wgsl.expected.ir.dxc.hlsl
index 6b047b4..a963b52 100644
--- a/test/tint/ptr_ref/load/param/storage/vec4_f32_in_struct.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/ptr_ref/load/param/storage/vec4_f32_in_struct.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,11 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:287 internal compiler error: Switch() matched no cases. Type: tint::core::ir::FunctionParam
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+ByteAddressBuffer S : register(t0);
+float4 func() {
+  return asfloat(S.Load4(0u));
+}
+
+[numthreads(1, 1, 1)]
+void main() {
+  float4 r = func();
+}
+
diff --git a/test/tint/ptr_ref/load/param/storage/vec4_f32_in_struct.wgsl.expected.ir.fxc.hlsl b/test/tint/ptr_ref/load/param/storage/vec4_f32_in_struct.wgsl.expected.ir.fxc.hlsl
index 6b047b4..a963b52 100644
--- a/test/tint/ptr_ref/load/param/storage/vec4_f32_in_struct.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/ptr_ref/load/param/storage/vec4_f32_in_struct.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,11 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:287 internal compiler error: Switch() matched no cases. Type: tint::core::ir::FunctionParam
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+ByteAddressBuffer S : register(t0);
+float4 func() {
+  return asfloat(S.Load4(0u));
+}
+
+[numthreads(1, 1, 1)]
+void main() {
+  float4 r = func();
+}
+
diff --git a/test/tint/ptr_ref/load/param/uniform/array_in_struct.wgsl.expected.ir.dxc.hlsl b/test/tint/ptr_ref/load/param/uniform/array_in_struct.wgsl.expected.ir.dxc.hlsl
index 6b047b4..40d6727 100644
--- a/test/tint/ptr_ref/load/param/uniform/array_in_struct.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/ptr_ref/load/param/uniform/array_in_struct.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,37 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:287 internal compiler error: Switch() matched no cases. Type: tint::core::ir::FunctionParam
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+cbuffer cbuffer_S : register(b0) {
+  uint4 S[4];
+};
+typedef int4 ary_ret[4];
+ary_ret v(uint start_byte_offset) {
+  int4 a[4] = (int4[4])0;
+  {
+    uint v_1 = 0u;
+    v_1 = 0u;
+    while(true) {
+      uint v_2 = v_1;
+      if ((v_2 >= 4u)) {
+        break;
+      }
+      a[v_2] = asint(S[((start_byte_offset + (v_2 * 16u)) / 16u)]);
+      {
+        v_1 = (v_2 + 1u);
+      }
+      continue;
+    }
+  }
+  int4 v_3[4] = a;
+  return v_3;
+}
+
+typedef int4 ary_ret_1[4];
+ary_ret_1 func() {
+  int4 v_4[4] = v(0u);
+  return v_4;
+}
+
+[numthreads(1, 1, 1)]
+void main() {
+  int4 r[4] = func();
+}
+
diff --git a/test/tint/ptr_ref/load/param/uniform/array_in_struct.wgsl.expected.ir.fxc.hlsl b/test/tint/ptr_ref/load/param/uniform/array_in_struct.wgsl.expected.ir.fxc.hlsl
index 6b047b4..40d6727 100644
--- a/test/tint/ptr_ref/load/param/uniform/array_in_struct.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/ptr_ref/load/param/uniform/array_in_struct.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,37 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:287 internal compiler error: Switch() matched no cases. Type: tint::core::ir::FunctionParam
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+cbuffer cbuffer_S : register(b0) {
+  uint4 S[4];
+};
+typedef int4 ary_ret[4];
+ary_ret v(uint start_byte_offset) {
+  int4 a[4] = (int4[4])0;
+  {
+    uint v_1 = 0u;
+    v_1 = 0u;
+    while(true) {
+      uint v_2 = v_1;
+      if ((v_2 >= 4u)) {
+        break;
+      }
+      a[v_2] = asint(S[((start_byte_offset + (v_2 * 16u)) / 16u)]);
+      {
+        v_1 = (v_2 + 1u);
+      }
+      continue;
+    }
+  }
+  int4 v_3[4] = a;
+  return v_3;
+}
+
+typedef int4 ary_ret_1[4];
+ary_ret_1 func() {
+  int4 v_4[4] = v(0u);
+  return v_4;
+}
+
+[numthreads(1, 1, 1)]
+void main() {
+  int4 r[4] = func();
+}
+
diff --git a/test/tint/ptr_ref/load/param/uniform/i32.wgsl.expected.ir.dxc.hlsl b/test/tint/ptr_ref/load/param/uniform/i32.wgsl.expected.ir.dxc.hlsl
index 6b047b4..c2c3319 100644
--- a/test/tint/ptr_ref/load/param/uniform/i32.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/ptr_ref/load/param/uniform/i32.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,13 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:287 internal compiler error: Switch() matched no cases. Type: tint::core::ir::FunctionParam
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+cbuffer cbuffer_S : register(b0) {
+  uint4 S[1];
+};
+int func() {
+  return asint(S[0u].x);
+}
+
+[numthreads(1, 1, 1)]
+void main() {
+  int r = func();
+}
+
diff --git a/test/tint/ptr_ref/load/param/uniform/i32.wgsl.expected.ir.fxc.hlsl b/test/tint/ptr_ref/load/param/uniform/i32.wgsl.expected.ir.fxc.hlsl
index 6b047b4..c2c3319 100644
--- a/test/tint/ptr_ref/load/param/uniform/i32.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/ptr_ref/load/param/uniform/i32.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,13 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:287 internal compiler error: Switch() matched no cases. Type: tint::core::ir::FunctionParam
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+cbuffer cbuffer_S : register(b0) {
+  uint4 S[1];
+};
+int func() {
+  return asint(S[0u].x);
+}
+
+[numthreads(1, 1, 1)]
+void main() {
+  int r = func();
+}
+
diff --git a/test/tint/ptr_ref/load/param/uniform/i32_in_struct.wgsl.expected.ir.dxc.hlsl b/test/tint/ptr_ref/load/param/uniform/i32_in_struct.wgsl.expected.ir.dxc.hlsl
index 6b047b4..c2c3319 100644
--- a/test/tint/ptr_ref/load/param/uniform/i32_in_struct.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/ptr_ref/load/param/uniform/i32_in_struct.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,13 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:287 internal compiler error: Switch() matched no cases. Type: tint::core::ir::FunctionParam
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+cbuffer cbuffer_S : register(b0) {
+  uint4 S[1];
+};
+int func() {
+  return asint(S[0u].x);
+}
+
+[numthreads(1, 1, 1)]
+void main() {
+  int r = func();
+}
+
diff --git a/test/tint/ptr_ref/load/param/uniform/i32_in_struct.wgsl.expected.ir.fxc.hlsl b/test/tint/ptr_ref/load/param/uniform/i32_in_struct.wgsl.expected.ir.fxc.hlsl
index 6b047b4..c2c3319 100644
--- a/test/tint/ptr_ref/load/param/uniform/i32_in_struct.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/ptr_ref/load/param/uniform/i32_in_struct.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,13 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:287 internal compiler error: Switch() matched no cases. Type: tint::core::ir::FunctionParam
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+cbuffer cbuffer_S : register(b0) {
+  uint4 S[1];
+};
+int func() {
+  return asint(S[0u].x);
+}
+
+[numthreads(1, 1, 1)]
+void main() {
+  int r = func();
+}
+
diff --git a/test/tint/ptr_ref/load/param/uniform/struct_in_array.wgsl.expected.ir.dxc.hlsl b/test/tint/ptr_ref/load/param/uniform/struct_in_array.wgsl.expected.ir.dxc.hlsl
index 6b047b4..acca4fd 100644
--- a/test/tint/ptr_ref/load/param/uniform/struct_in_array.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/ptr_ref/load/param/uniform/struct_in_array.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,24 @@
-SKIP: FAILED
+struct str {
+  int4 i;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:287 internal compiler error: Switch() matched no cases. Type: tint::core::ir::FunctionParam
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+
+cbuffer cbuffer_S : register(b0) {
+  uint4 S[4];
+};
+str v(uint start_byte_offset) {
+  str v_1 = {asint(S[(start_byte_offset / 16u)])};
+  return v_1;
+}
+
+str func(uint pointer_indices[1]) {
+  str v_2 = v((16u * uint(pointer_indices[0u])));
+  return v_2;
+}
+
+[numthreads(1, 1, 1)]
+void main() {
+  uint v_3[1] = (uint[1])0;
+  str r = func(v_3);
+}
+
diff --git a/test/tint/ptr_ref/load/param/uniform/struct_in_array.wgsl.expected.ir.fxc.hlsl b/test/tint/ptr_ref/load/param/uniform/struct_in_array.wgsl.expected.ir.fxc.hlsl
index 6b047b4..acca4fd 100644
--- a/test/tint/ptr_ref/load/param/uniform/struct_in_array.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/ptr_ref/load/param/uniform/struct_in_array.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,24 @@
-SKIP: FAILED
+struct str {
+  int4 i;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:287 internal compiler error: Switch() matched no cases. Type: tint::core::ir::FunctionParam
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+
+cbuffer cbuffer_S : register(b0) {
+  uint4 S[4];
+};
+str v(uint start_byte_offset) {
+  str v_1 = {asint(S[(start_byte_offset / 16u)])};
+  return v_1;
+}
+
+str func(uint pointer_indices[1]) {
+  str v_2 = v((16u * uint(pointer_indices[0u])));
+  return v_2;
+}
+
+[numthreads(1, 1, 1)]
+void main() {
+  uint v_3[1] = (uint[1])0;
+  str r = func(v_3);
+}
+
diff --git a/test/tint/ptr_ref/load/param/uniform/vec2_f32_in_mat2x2.wgsl.expected.ir.dxc.hlsl b/test/tint/ptr_ref/load/param/uniform/vec2_f32_in_mat2x2.wgsl.expected.ir.dxc.hlsl
index 6b047b4..8bb1ce3 100644
--- a/test/tint/ptr_ref/load/param/uniform/vec2_f32_in_mat2x2.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/ptr_ref/load/param/uniform/vec2_f32_in_mat2x2.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,16 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:287 internal compiler error: Switch() matched no cases. Type: tint::core::ir::FunctionParam
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+cbuffer cbuffer_S : register(b0) {
+  uint4 S[1];
+};
+float2 func(uint pointer_indices[1]) {
+  uint v = (8u * uint(pointer_indices[0u]));
+  uint4 v_1 = S[(v / 16u)];
+  return asfloat((((((v % 16u) / 4u) == 2u)) ? (v_1.zw) : (v_1.xy)));
+}
+
+[numthreads(1, 1, 1)]
+void main() {
+  uint v_2[1] = (uint[1])0;
+  float2 r = func(v_2);
+}
+
diff --git a/test/tint/ptr_ref/load/param/uniform/vec2_f32_in_mat2x2.wgsl.expected.ir.fxc.hlsl b/test/tint/ptr_ref/load/param/uniform/vec2_f32_in_mat2x2.wgsl.expected.ir.fxc.hlsl
index 6b047b4..8bb1ce3 100644
--- a/test/tint/ptr_ref/load/param/uniform/vec2_f32_in_mat2x2.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/ptr_ref/load/param/uniform/vec2_f32_in_mat2x2.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,16 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:287 internal compiler error: Switch() matched no cases. Type: tint::core::ir::FunctionParam
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+cbuffer cbuffer_S : register(b0) {
+  uint4 S[1];
+};
+float2 func(uint pointer_indices[1]) {
+  uint v = (8u * uint(pointer_indices[0u]));
+  uint4 v_1 = S[(v / 16u)];
+  return asfloat((((((v % 16u) / 4u) == 2u)) ? (v_1.zw) : (v_1.xy)));
+}
+
+[numthreads(1, 1, 1)]
+void main() {
+  uint v_2[1] = (uint[1])0;
+  float2 r = func(v_2);
+}
+
diff --git a/test/tint/ptr_ref/load/param/uniform/vec4_f32.wgsl.expected.ir.dxc.hlsl b/test/tint/ptr_ref/load/param/uniform/vec4_f32.wgsl.expected.ir.dxc.hlsl
index 6b047b4..0b85576 100644
--- a/test/tint/ptr_ref/load/param/uniform/vec4_f32.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/ptr_ref/load/param/uniform/vec4_f32.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,13 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:287 internal compiler error: Switch() matched no cases. Type: tint::core::ir::FunctionParam
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+cbuffer cbuffer_S : register(b0) {
+  uint4 S[1];
+};
+float4 func() {
+  return asfloat(S[0u]);
+}
+
+[numthreads(1, 1, 1)]
+void main() {
+  float4 r = func();
+}
+
diff --git a/test/tint/ptr_ref/load/param/uniform/vec4_f32.wgsl.expected.ir.fxc.hlsl b/test/tint/ptr_ref/load/param/uniform/vec4_f32.wgsl.expected.ir.fxc.hlsl
index 6b047b4..0b85576 100644
--- a/test/tint/ptr_ref/load/param/uniform/vec4_f32.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/ptr_ref/load/param/uniform/vec4_f32.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,13 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:287 internal compiler error: Switch() matched no cases. Type: tint::core::ir::FunctionParam
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+cbuffer cbuffer_S : register(b0) {
+  uint4 S[1];
+};
+float4 func() {
+  return asfloat(S[0u]);
+}
+
+[numthreads(1, 1, 1)]
+void main() {
+  float4 r = func();
+}
+
diff --git a/test/tint/ptr_ref/load/param/uniform/vec4_f32_in_mat2x4.wgsl.expected.ir.dxc.hlsl b/test/tint/ptr_ref/load/param/uniform/vec4_f32_in_mat2x4.wgsl.expected.ir.dxc.hlsl
index 6b047b4..d10214c 100644
--- a/test/tint/ptr_ref/load/param/uniform/vec4_f32_in_mat2x4.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/ptr_ref/load/param/uniform/vec4_f32_in_mat2x4.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,14 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:287 internal compiler error: Switch() matched no cases. Type: tint::core::ir::FunctionParam
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+cbuffer cbuffer_S : register(b0) {
+  uint4 S[2];
+};
+float4 func(uint pointer_indices[1]) {
+  return asfloat(S[((16u * uint(pointer_indices[0u])) / 16u)]);
+}
+
+[numthreads(1, 1, 1)]
+void main() {
+  uint v[1] = (uint[1])0;
+  float4 r = func(v);
+}
+
diff --git a/test/tint/ptr_ref/load/param/uniform/vec4_f32_in_mat2x4.wgsl.expected.ir.fxc.hlsl b/test/tint/ptr_ref/load/param/uniform/vec4_f32_in_mat2x4.wgsl.expected.ir.fxc.hlsl
index 6b047b4..d10214c 100644
--- a/test/tint/ptr_ref/load/param/uniform/vec4_f32_in_mat2x4.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/ptr_ref/load/param/uniform/vec4_f32_in_mat2x4.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,14 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:287 internal compiler error: Switch() matched no cases. Type: tint::core::ir::FunctionParam
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+cbuffer cbuffer_S : register(b0) {
+  uint4 S[2];
+};
+float4 func(uint pointer_indices[1]) {
+  return asfloat(S[((16u * uint(pointer_indices[0u])) / 16u)]);
+}
+
+[numthreads(1, 1, 1)]
+void main() {
+  uint v[1] = (uint[1])0;
+  float4 r = func(v);
+}
+
diff --git a/test/tint/ptr_ref/load/param/uniform/vec4_f32_in_struct.wgsl.expected.ir.dxc.hlsl b/test/tint/ptr_ref/load/param/uniform/vec4_f32_in_struct.wgsl.expected.ir.dxc.hlsl
index 6b047b4..0b85576 100644
--- a/test/tint/ptr_ref/load/param/uniform/vec4_f32_in_struct.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/ptr_ref/load/param/uniform/vec4_f32_in_struct.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,13 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:287 internal compiler error: Switch() matched no cases. Type: tint::core::ir::FunctionParam
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+cbuffer cbuffer_S : register(b0) {
+  uint4 S[1];
+};
+float4 func() {
+  return asfloat(S[0u]);
+}
+
+[numthreads(1, 1, 1)]
+void main() {
+  float4 r = func();
+}
+
diff --git a/test/tint/ptr_ref/load/param/uniform/vec4_f32_in_struct.wgsl.expected.ir.fxc.hlsl b/test/tint/ptr_ref/load/param/uniform/vec4_f32_in_struct.wgsl.expected.ir.fxc.hlsl
index 6b047b4..0b85576 100644
--- a/test/tint/ptr_ref/load/param/uniform/vec4_f32_in_struct.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/ptr_ref/load/param/uniform/vec4_f32_in_struct.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,13 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:287 internal compiler error: Switch() matched no cases. Type: tint::core::ir::FunctionParam
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+cbuffer cbuffer_S : register(b0) {
+  uint4 S[1];
+};
+float4 func() {
+  return asfloat(S[0u]);
+}
+
+[numthreads(1, 1, 1)]
+void main() {
+  float4 r = func();
+}
+
diff --git a/test/tint/ptr_ref/load/param/workgroup/array_in_struct.wgsl.expected.ir.dxc.hlsl b/test/tint/ptr_ref/load/param/workgroup/array_in_struct.wgsl.expected.ir.dxc.hlsl
index 6b047b4..b795bef 100644
--- a/test/tint/ptr_ref/load/param/workgroup/array_in_struct.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/ptr_ref/load/param/workgroup/array_in_struct.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,41 @@
-SKIP: FAILED
+struct str {
+  int arr[4];
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:287 internal compiler error: Switch() matched no cases. Type: tint::core::ir::FunctionParam
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct main_inputs {
+  uint tint_local_index : SV_GroupIndex;
+};
+
+
+groupshared str S;
+typedef int ary_ret[4];
+ary_ret func() {
+  int v[4] = S.arr;
+  return v;
+}
+
+void main_inner(uint tint_local_index) {
+  {
+    uint v_1 = 0u;
+    v_1 = tint_local_index;
+    while(true) {
+      uint v_2 = v_1;
+      if ((v_2 >= 4u)) {
+        break;
+      }
+      S.arr[v_2] = 0;
+      {
+        v_1 = (v_2 + 1u);
+      }
+      continue;
+    }
+  }
+  GroupMemoryBarrierWithGroupSync();
+  int r[4] = func();
+}
+
+[numthreads(1, 1, 1)]
+void main(main_inputs inputs) {
+  main_inner(inputs.tint_local_index);
+}
+
diff --git a/test/tint/ptr_ref/load/param/workgroup/array_in_struct.wgsl.expected.ir.fxc.hlsl b/test/tint/ptr_ref/load/param/workgroup/array_in_struct.wgsl.expected.ir.fxc.hlsl
index 6b047b4..b795bef 100644
--- a/test/tint/ptr_ref/load/param/workgroup/array_in_struct.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/ptr_ref/load/param/workgroup/array_in_struct.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,41 @@
-SKIP: FAILED
+struct str {
+  int arr[4];
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:287 internal compiler error: Switch() matched no cases. Type: tint::core::ir::FunctionParam
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct main_inputs {
+  uint tint_local_index : SV_GroupIndex;
+};
+
+
+groupshared str S;
+typedef int ary_ret[4];
+ary_ret func() {
+  int v[4] = S.arr;
+  return v;
+}
+
+void main_inner(uint tint_local_index) {
+  {
+    uint v_1 = 0u;
+    v_1 = tint_local_index;
+    while(true) {
+      uint v_2 = v_1;
+      if ((v_2 >= 4u)) {
+        break;
+      }
+      S.arr[v_2] = 0;
+      {
+        v_1 = (v_2 + 1u);
+      }
+      continue;
+    }
+  }
+  GroupMemoryBarrierWithGroupSync();
+  int r[4] = func();
+}
+
+[numthreads(1, 1, 1)]
+void main(main_inputs inputs) {
+  main_inner(inputs.tint_local_index);
+}
+
diff --git a/test/tint/ptr_ref/load/param/workgroup/i32.wgsl.expected.ir.dxc.hlsl b/test/tint/ptr_ref/load/param/workgroup/i32.wgsl.expected.ir.dxc.hlsl
index 6b047b4..c693a25 100644
--- a/test/tint/ptr_ref/load/param/workgroup/i32.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/ptr_ref/load/param/workgroup/i32.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,23 @@
-SKIP: FAILED
+struct main_inputs {
+  uint tint_local_index : SV_GroupIndex;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:287 internal compiler error: Switch() matched no cases. Type: tint::core::ir::FunctionParam
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+
+groupshared int S;
+int func() {
+  return S;
+}
+
+void main_inner(uint tint_local_index) {
+  if ((tint_local_index == 0u)) {
+    S = 0;
+  }
+  GroupMemoryBarrierWithGroupSync();
+  int r = func();
+}
+
+[numthreads(1, 1, 1)]
+void main(main_inputs inputs) {
+  main_inner(inputs.tint_local_index);
+}
+
diff --git a/test/tint/ptr_ref/load/param/workgroup/i32.wgsl.expected.ir.fxc.hlsl b/test/tint/ptr_ref/load/param/workgroup/i32.wgsl.expected.ir.fxc.hlsl
index 6b047b4..c693a25 100644
--- a/test/tint/ptr_ref/load/param/workgroup/i32.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/ptr_ref/load/param/workgroup/i32.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,23 @@
-SKIP: FAILED
+struct main_inputs {
+  uint tint_local_index : SV_GroupIndex;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:287 internal compiler error: Switch() matched no cases. Type: tint::core::ir::FunctionParam
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+
+groupshared int S;
+int func() {
+  return S;
+}
+
+void main_inner(uint tint_local_index) {
+  if ((tint_local_index == 0u)) {
+    S = 0;
+  }
+  GroupMemoryBarrierWithGroupSync();
+  int r = func();
+}
+
+[numthreads(1, 1, 1)]
+void main(main_inputs inputs) {
+  main_inner(inputs.tint_local_index);
+}
+
diff --git a/test/tint/ptr_ref/load/param/workgroup/i32_in_struct.wgsl.expected.ir.dxc.hlsl b/test/tint/ptr_ref/load/param/workgroup/i32_in_struct.wgsl.expected.ir.dxc.hlsl
index 6b047b4..dce8bcb 100644
--- a/test/tint/ptr_ref/load/param/workgroup/i32_in_struct.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/ptr_ref/load/param/workgroup/i32_in_struct.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,28 @@
-SKIP: FAILED
+struct str {
+  int i;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:287 internal compiler error: Switch() matched no cases. Type: tint::core::ir::FunctionParam
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct main_inputs {
+  uint tint_local_index : SV_GroupIndex;
+};
+
+
+groupshared str S;
+int func() {
+  return S.i;
+}
+
+void main_inner(uint tint_local_index) {
+  if ((tint_local_index == 0u)) {
+    str v = (str)0;
+    S = v;
+  }
+  GroupMemoryBarrierWithGroupSync();
+  int r = func();
+}
+
+[numthreads(1, 1, 1)]
+void main(main_inputs inputs) {
+  main_inner(inputs.tint_local_index);
+}
+
diff --git a/test/tint/ptr_ref/load/param/workgroup/i32_in_struct.wgsl.expected.ir.fxc.hlsl b/test/tint/ptr_ref/load/param/workgroup/i32_in_struct.wgsl.expected.ir.fxc.hlsl
index 6b047b4..dce8bcb 100644
--- a/test/tint/ptr_ref/load/param/workgroup/i32_in_struct.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/ptr_ref/load/param/workgroup/i32_in_struct.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,28 @@
-SKIP: FAILED
+struct str {
+  int i;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:287 internal compiler error: Switch() matched no cases. Type: tint::core::ir::FunctionParam
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct main_inputs {
+  uint tint_local_index : SV_GroupIndex;
+};
+
+
+groupshared str S;
+int func() {
+  return S.i;
+}
+
+void main_inner(uint tint_local_index) {
+  if ((tint_local_index == 0u)) {
+    str v = (str)0;
+    S = v;
+  }
+  GroupMemoryBarrierWithGroupSync();
+  int r = func();
+}
+
+[numthreads(1, 1, 1)]
+void main(main_inputs inputs) {
+  main_inner(inputs.tint_local_index);
+}
+
diff --git a/test/tint/ptr_ref/load/param/workgroup/struct_in_array.wgsl.expected.ir.dxc.hlsl b/test/tint/ptr_ref/load/param/workgroup/struct_in_array.wgsl.expected.ir.dxc.hlsl
index 6b047b4..9c0d3c7 100644
--- a/test/tint/ptr_ref/load/param/workgroup/struct_in_array.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/ptr_ref/load/param/workgroup/struct_in_array.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,42 @@
-SKIP: FAILED
+struct str {
+  int i;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:287 internal compiler error: Switch() matched no cases. Type: tint::core::ir::FunctionParam
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct main_inputs {
+  uint tint_local_index : SV_GroupIndex;
+};
+
+
+groupshared str S[4];
+str func(uint pointer_indices[1]) {
+  str v = S[pointer_indices[0u]];
+  return v;
+}
+
+void main_inner(uint tint_local_index) {
+  {
+    uint v_1 = 0u;
+    v_1 = tint_local_index;
+    while(true) {
+      uint v_2 = v_1;
+      if ((v_2 >= 4u)) {
+        break;
+      }
+      str v_3 = (str)0;
+      S[v_2] = v_3;
+      {
+        v_1 = (v_2 + 1u);
+      }
+      continue;
+    }
+  }
+  GroupMemoryBarrierWithGroupSync();
+  uint v_4[1] = (uint[1])0;
+  str r = func(v_4);
+}
+
+[numthreads(1, 1, 1)]
+void main(main_inputs inputs) {
+  main_inner(inputs.tint_local_index);
+}
+
diff --git a/test/tint/ptr_ref/load/param/workgroup/struct_in_array.wgsl.expected.ir.fxc.hlsl b/test/tint/ptr_ref/load/param/workgroup/struct_in_array.wgsl.expected.ir.fxc.hlsl
index 6b047b4..9c0d3c7 100644
--- a/test/tint/ptr_ref/load/param/workgroup/struct_in_array.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/ptr_ref/load/param/workgroup/struct_in_array.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,42 @@
-SKIP: FAILED
+struct str {
+  int i;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:287 internal compiler error: Switch() matched no cases. Type: tint::core::ir::FunctionParam
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct main_inputs {
+  uint tint_local_index : SV_GroupIndex;
+};
+
+
+groupshared str S[4];
+str func(uint pointer_indices[1]) {
+  str v = S[pointer_indices[0u]];
+  return v;
+}
+
+void main_inner(uint tint_local_index) {
+  {
+    uint v_1 = 0u;
+    v_1 = tint_local_index;
+    while(true) {
+      uint v_2 = v_1;
+      if ((v_2 >= 4u)) {
+        break;
+      }
+      str v_3 = (str)0;
+      S[v_2] = v_3;
+      {
+        v_1 = (v_2 + 1u);
+      }
+      continue;
+    }
+  }
+  GroupMemoryBarrierWithGroupSync();
+  uint v_4[1] = (uint[1])0;
+  str r = func(v_4);
+}
+
+[numthreads(1, 1, 1)]
+void main(main_inputs inputs) {
+  main_inner(inputs.tint_local_index);
+}
+
diff --git a/test/tint/ptr_ref/load/param/workgroup/vec2_f32_in_mat2x2.wgsl.expected.ir.dxc.hlsl b/test/tint/ptr_ref/load/param/workgroup/vec2_f32_in_mat2x2.wgsl.expected.ir.dxc.hlsl
index 6b047b4..0c2d798 100644
--- a/test/tint/ptr_ref/load/param/workgroup/vec2_f32_in_mat2x2.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/ptr_ref/load/param/workgroup/vec2_f32_in_mat2x2.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,24 @@
-SKIP: FAILED
+struct main_inputs {
+  uint tint_local_index : SV_GroupIndex;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:287 internal compiler error: Switch() matched no cases. Type: tint::core::ir::FunctionParam
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+
+groupshared float2x2 S;
+float2 func(uint pointer_indices[1]) {
+  return S[pointer_indices[0u]];
+}
+
+void main_inner(uint tint_local_index) {
+  if ((tint_local_index == 0u)) {
+    S = float2x2((0.0f).xx, (0.0f).xx);
+  }
+  GroupMemoryBarrierWithGroupSync();
+  uint v[1] = (uint[1])0;
+  float2 r = func(v);
+}
+
+[numthreads(1, 1, 1)]
+void main(main_inputs inputs) {
+  main_inner(inputs.tint_local_index);
+}
+
diff --git a/test/tint/ptr_ref/load/param/workgroup/vec2_f32_in_mat2x2.wgsl.expected.ir.fxc.hlsl b/test/tint/ptr_ref/load/param/workgroup/vec2_f32_in_mat2x2.wgsl.expected.ir.fxc.hlsl
index 6b047b4..0c2d798 100644
--- a/test/tint/ptr_ref/load/param/workgroup/vec2_f32_in_mat2x2.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/ptr_ref/load/param/workgroup/vec2_f32_in_mat2x2.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,24 @@
-SKIP: FAILED
+struct main_inputs {
+  uint tint_local_index : SV_GroupIndex;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:287 internal compiler error: Switch() matched no cases. Type: tint::core::ir::FunctionParam
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+
+groupshared float2x2 S;
+float2 func(uint pointer_indices[1]) {
+  return S[pointer_indices[0u]];
+}
+
+void main_inner(uint tint_local_index) {
+  if ((tint_local_index == 0u)) {
+    S = float2x2((0.0f).xx, (0.0f).xx);
+  }
+  GroupMemoryBarrierWithGroupSync();
+  uint v[1] = (uint[1])0;
+  float2 r = func(v);
+}
+
+[numthreads(1, 1, 1)]
+void main(main_inputs inputs) {
+  main_inner(inputs.tint_local_index);
+}
+
diff --git a/test/tint/ptr_ref/load/param/workgroup/vec4_f32.wgsl.expected.ir.dxc.hlsl b/test/tint/ptr_ref/load/param/workgroup/vec4_f32.wgsl.expected.ir.dxc.hlsl
index 6b047b4..6fa3edf 100644
--- a/test/tint/ptr_ref/load/param/workgroup/vec4_f32.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/ptr_ref/load/param/workgroup/vec4_f32.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,23 @@
-SKIP: FAILED
+struct main_inputs {
+  uint tint_local_index : SV_GroupIndex;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:287 internal compiler error: Switch() matched no cases. Type: tint::core::ir::FunctionParam
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+
+groupshared float4 S;
+float4 func() {
+  return S;
+}
+
+void main_inner(uint tint_local_index) {
+  if ((tint_local_index == 0u)) {
+    S = (0.0f).xxxx;
+  }
+  GroupMemoryBarrierWithGroupSync();
+  float4 r = func();
+}
+
+[numthreads(1, 1, 1)]
+void main(main_inputs inputs) {
+  main_inner(inputs.tint_local_index);
+}
+
diff --git a/test/tint/ptr_ref/load/param/workgroup/vec4_f32.wgsl.expected.ir.fxc.hlsl b/test/tint/ptr_ref/load/param/workgroup/vec4_f32.wgsl.expected.ir.fxc.hlsl
index 6b047b4..6fa3edf 100644
--- a/test/tint/ptr_ref/load/param/workgroup/vec4_f32.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/ptr_ref/load/param/workgroup/vec4_f32.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,23 @@
-SKIP: FAILED
+struct main_inputs {
+  uint tint_local_index : SV_GroupIndex;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:287 internal compiler error: Switch() matched no cases. Type: tint::core::ir::FunctionParam
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+
+groupshared float4 S;
+float4 func() {
+  return S;
+}
+
+void main_inner(uint tint_local_index) {
+  if ((tint_local_index == 0u)) {
+    S = (0.0f).xxxx;
+  }
+  GroupMemoryBarrierWithGroupSync();
+  float4 r = func();
+}
+
+[numthreads(1, 1, 1)]
+void main(main_inputs inputs) {
+  main_inner(inputs.tint_local_index);
+}
+
diff --git a/test/tint/ptr_ref/load/param/workgroup/vec4_f32_in_mat2x4.wgsl.expected.ir.dxc.hlsl b/test/tint/ptr_ref/load/param/workgroup/vec4_f32_in_mat2x4.wgsl.expected.ir.dxc.hlsl
index 6b047b4..2360fea 100644
--- a/test/tint/ptr_ref/load/param/workgroup/vec4_f32_in_mat2x4.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/ptr_ref/load/param/workgroup/vec4_f32_in_mat2x4.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,24 @@
-SKIP: FAILED
+struct main_inputs {
+  uint tint_local_index : SV_GroupIndex;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:287 internal compiler error: Switch() matched no cases. Type: tint::core::ir::FunctionParam
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+
+groupshared float2x4 S;
+float4 func(uint pointer_indices[1]) {
+  return S[pointer_indices[0u]];
+}
+
+void main_inner(uint tint_local_index) {
+  if ((tint_local_index == 0u)) {
+    S = float2x4((0.0f).xxxx, (0.0f).xxxx);
+  }
+  GroupMemoryBarrierWithGroupSync();
+  uint v[1] = (uint[1])0;
+  float4 r = func(v);
+}
+
+[numthreads(1, 1, 1)]
+void main(main_inputs inputs) {
+  main_inner(inputs.tint_local_index);
+}
+
diff --git a/test/tint/ptr_ref/load/param/workgroup/vec4_f32_in_mat2x4.wgsl.expected.ir.fxc.hlsl b/test/tint/ptr_ref/load/param/workgroup/vec4_f32_in_mat2x4.wgsl.expected.ir.fxc.hlsl
index 6b047b4..2360fea 100644
--- a/test/tint/ptr_ref/load/param/workgroup/vec4_f32_in_mat2x4.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/ptr_ref/load/param/workgroup/vec4_f32_in_mat2x4.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,24 @@
-SKIP: FAILED
+struct main_inputs {
+  uint tint_local_index : SV_GroupIndex;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:287 internal compiler error: Switch() matched no cases. Type: tint::core::ir::FunctionParam
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+
+groupshared float2x4 S;
+float4 func(uint pointer_indices[1]) {
+  return S[pointer_indices[0u]];
+}
+
+void main_inner(uint tint_local_index) {
+  if ((tint_local_index == 0u)) {
+    S = float2x4((0.0f).xxxx, (0.0f).xxxx);
+  }
+  GroupMemoryBarrierWithGroupSync();
+  uint v[1] = (uint[1])0;
+  float4 r = func(v);
+}
+
+[numthreads(1, 1, 1)]
+void main(main_inputs inputs) {
+  main_inner(inputs.tint_local_index);
+}
+
diff --git a/test/tint/ptr_ref/load/param/workgroup/vec4_f32_in_struct.wgsl.expected.ir.dxc.hlsl b/test/tint/ptr_ref/load/param/workgroup/vec4_f32_in_struct.wgsl.expected.ir.dxc.hlsl
index 6b047b4..465ec7d 100644
--- a/test/tint/ptr_ref/load/param/workgroup/vec4_f32_in_struct.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/ptr_ref/load/param/workgroup/vec4_f32_in_struct.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,28 @@
-SKIP: FAILED
+struct str {
+  float4 i;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:287 internal compiler error: Switch() matched no cases. Type: tint::core::ir::FunctionParam
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct main_inputs {
+  uint tint_local_index : SV_GroupIndex;
+};
+
+
+groupshared str S;
+float4 func() {
+  return S.i;
+}
+
+void main_inner(uint tint_local_index) {
+  if ((tint_local_index == 0u)) {
+    str v = (str)0;
+    S = v;
+  }
+  GroupMemoryBarrierWithGroupSync();
+  float4 r = func();
+}
+
+[numthreads(1, 1, 1)]
+void main(main_inputs inputs) {
+  main_inner(inputs.tint_local_index);
+}
+
diff --git a/test/tint/ptr_ref/load/param/workgroup/vec4_f32_in_struct.wgsl.expected.ir.fxc.hlsl b/test/tint/ptr_ref/load/param/workgroup/vec4_f32_in_struct.wgsl.expected.ir.fxc.hlsl
index 6b047b4..465ec7d 100644
--- a/test/tint/ptr_ref/load/param/workgroup/vec4_f32_in_struct.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/ptr_ref/load/param/workgroup/vec4_f32_in_struct.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,28 @@
-SKIP: FAILED
+struct str {
+  float4 i;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:287 internal compiler error: Switch() matched no cases. Type: tint::core::ir::FunctionParam
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct main_inputs {
+  uint tint_local_index : SV_GroupIndex;
+};
+
+
+groupshared str S;
+float4 func() {
+  return S.i;
+}
+
+void main_inner(uint tint_local_index) {
+  if ((tint_local_index == 0u)) {
+    str v = (str)0;
+    S = v;
+  }
+  GroupMemoryBarrierWithGroupSync();
+  float4 r = func();
+}
+
+[numthreads(1, 1, 1)]
+void main(main_inputs inputs) {
+  main_inner(inputs.tint_local_index);
+}
+
diff --git a/test/tint/ptr_ref/store/global/i32.spvasm.expected.ir.dxc.hlsl b/test/tint/ptr_ref/store/global/i32.spvasm.expected.ir.dxc.hlsl
index 7c7ea2d..fce2c62 100644
--- a/test/tint/ptr_ref/store/global/i32.spvasm.expected.ir.dxc.hlsl
+++ b/test/tint/ptr_ref/store/global/i32.spvasm.expected.ir.dxc.hlsl
@@ -1,5 +1,5 @@
-SKIP: FAILED
 
+static int I = 0;
 void main_1() {
   I = 123;
   I = 123;
@@ -10,11 +10,3 @@
   main_1();
 }
 
-DXC validation failure:
-hlsl.hlsl:2:3: error: use of undeclared identifier 'I'
-  I = 123;
-  ^
-hlsl.hlsl:3:3: error: use of undeclared identifier 'I'
-  I = 123;
-  ^
-
diff --git a/test/tint/ptr_ref/store/global/i32.spvasm.expected.ir.fxc.hlsl b/test/tint/ptr_ref/store/global/i32.spvasm.expected.ir.fxc.hlsl
index 81e83b6..fce2c62 100644
--- a/test/tint/ptr_ref/store/global/i32.spvasm.expected.ir.fxc.hlsl
+++ b/test/tint/ptr_ref/store/global/i32.spvasm.expected.ir.fxc.hlsl
@@ -1,5 +1,5 @@
-SKIP: FAILED
 
+static int I = 0;
 void main_1() {
   I = 123;
   I = 123;
diff --git a/test/tint/ptr_ref/store/global/i32.wgsl.expected.ir.dxc.hlsl b/test/tint/ptr_ref/store/global/i32.wgsl.expected.ir.dxc.hlsl
index 28e64a4..bfdf43e 100644
--- a/test/tint/ptr_ref/store/global/i32.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/ptr_ref/store/global/i32.wgsl.expected.ir.dxc.hlsl
@@ -1,16 +1,8 @@
-SKIP: FAILED
 
+static int I = 0;
 [numthreads(1, 1, 1)]
 void main() {
   I = 123;
   I = 123;
 }
 
-DXC validation failure:
-hlsl.hlsl:3:3: error: use of undeclared identifier 'I'
-  I = 123;
-  ^
-hlsl.hlsl:4:3: error: use of undeclared identifier 'I'
-  I = 123;
-  ^
-
diff --git a/test/tint/ptr_ref/store/global/i32.wgsl.expected.ir.fxc.hlsl b/test/tint/ptr_ref/store/global/i32.wgsl.expected.ir.fxc.hlsl
index 374aaa9..bfdf43e 100644
--- a/test/tint/ptr_ref/store/global/i32.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/ptr_ref/store/global/i32.wgsl.expected.ir.fxc.hlsl
@@ -1,5 +1,5 @@
-SKIP: FAILED
 
+static int I = 0;
 [numthreads(1, 1, 1)]
 void main() {
   I = 123;
diff --git a/test/tint/ptr_ref/store/global/struct_field.spvasm.expected.ir.dxc.hlsl b/test/tint/ptr_ref/store/global/struct_field.spvasm.expected.ir.dxc.hlsl
index 3f437dc..db86927 100644
--- a/test/tint/ptr_ref/store/global/struct_field.spvasm.expected.ir.dxc.hlsl
+++ b/test/tint/ptr_ref/store/global/struct_field.spvasm.expected.ir.dxc.hlsl
@@ -1,9 +1,15 @@
-SKIP: FAILED
+struct S {
+  int i;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Access
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+
+static S V = (S)0;
+void main_1() {
+  V.i = 5;
+}
+
+[numthreads(1, 1, 1)]
+void main() {
+  main_1();
+}
+
diff --git a/test/tint/ptr_ref/store/global/struct_field.spvasm.expected.ir.fxc.hlsl b/test/tint/ptr_ref/store/global/struct_field.spvasm.expected.ir.fxc.hlsl
index 3f437dc..db86927 100644
--- a/test/tint/ptr_ref/store/global/struct_field.spvasm.expected.ir.fxc.hlsl
+++ b/test/tint/ptr_ref/store/global/struct_field.spvasm.expected.ir.fxc.hlsl
@@ -1,9 +1,15 @@
-SKIP: FAILED
+struct S {
+  int i;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Access
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+
+static S V = (S)0;
+void main_1() {
+  V.i = 5;
+}
+
+[numthreads(1, 1, 1)]
+void main() {
+  main_1();
+}
+
diff --git a/test/tint/ptr_ref/store/local/i32.spvasm.expected.ir.dxc.hlsl b/test/tint/ptr_ref/store/local/i32.spvasm.expected.ir.dxc.hlsl
index d7486da..4afa737 100644
--- a/test/tint/ptr_ref/store/local/i32.spvasm.expected.ir.dxc.hlsl
+++ b/test/tint/ptr_ref/store/local/i32.spvasm.expected.ir.dxc.hlsl
@@ -1,3 +1,4 @@
+
 void main_1() {
   int i = 0;
   i = 123;
diff --git a/test/tint/ptr_ref/store/local/i32.spvasm.expected.ir.fxc.hlsl b/test/tint/ptr_ref/store/local/i32.spvasm.expected.ir.fxc.hlsl
index eca4d3f..4afa737 100644
--- a/test/tint/ptr_ref/store/local/i32.spvasm.expected.ir.fxc.hlsl
+++ b/test/tint/ptr_ref/store/local/i32.spvasm.expected.ir.fxc.hlsl
@@ -1,4 +1,3 @@
-SKIP: FAILED
 
 void main_1() {
   int i = 0;
diff --git a/test/tint/ptr_ref/store/local/i32.wgsl.expected.ir.dxc.hlsl b/test/tint/ptr_ref/store/local/i32.wgsl.expected.ir.dxc.hlsl
index 1eaad96..0159d74 100644
--- a/test/tint/ptr_ref/store/local/i32.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/ptr_ref/store/local/i32.wgsl.expected.ir.dxc.hlsl
@@ -1,3 +1,4 @@
+
 [numthreads(1, 1, 1)]
 void main() {
   int i = 123;
diff --git a/test/tint/ptr_ref/store/local/i32.wgsl.expected.ir.fxc.hlsl b/test/tint/ptr_ref/store/local/i32.wgsl.expected.ir.fxc.hlsl
index dec6e03..0159d74 100644
--- a/test/tint/ptr_ref/store/local/i32.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/ptr_ref/store/local/i32.wgsl.expected.ir.fxc.hlsl
@@ -1,4 +1,3 @@
-SKIP: FAILED
 
 [numthreads(1, 1, 1)]
 void main() {
diff --git a/test/tint/ptr_ref/store/local/struct_field.spvasm.expected.ir.dxc.hlsl b/test/tint/ptr_ref/store/local/struct_field.spvasm.expected.ir.dxc.hlsl
index 0ba40c6..db8cc92 100644
--- a/test/tint/ptr_ref/store/local/struct_field.spvasm.expected.ir.dxc.hlsl
+++ b/test/tint/ptr_ref/store/local/struct_field.spvasm.expected.ir.dxc.hlsl
@@ -1,9 +1,15 @@
-SKIP: FAILED
+struct S {
+  int i;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+
+void main_1() {
+  S V = (S)0;
+  V.i = 5;
+}
+
+[numthreads(1, 1, 1)]
+void main() {
+  main_1();
+}
+
diff --git a/test/tint/ptr_ref/store/local/struct_field.spvasm.expected.ir.fxc.hlsl b/test/tint/ptr_ref/store/local/struct_field.spvasm.expected.ir.fxc.hlsl
index 0ba40c6..db8cc92 100644
--- a/test/tint/ptr_ref/store/local/struct_field.spvasm.expected.ir.fxc.hlsl
+++ b/test/tint/ptr_ref/store/local/struct_field.spvasm.expected.ir.fxc.hlsl
@@ -1,9 +1,15 @@
-SKIP: FAILED
+struct S {
+  int i;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+
+void main_1() {
+  S V = (S)0;
+  V.i = 5;
+}
+
+[numthreads(1, 1, 1)]
+void main() {
+  main_1();
+}
+
diff --git a/test/tint/ptr_ref/store/param/function/array_in_struct.wgsl.expected.ir.dxc.hlsl b/test/tint/ptr_ref/store/param/function/array_in_struct.wgsl.expected.ir.dxc.hlsl
index 6b047b4..9dcb1fc 100644
--- a/test/tint/ptr_ref/store/param/function/array_in_struct.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/ptr_ref/store/param/function/array_in_struct.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,16 @@
-SKIP: FAILED
+struct str {
+  int arr[4];
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:287 internal compiler error: Switch() matched no cases. Type: tint::core::ir::FunctionParam
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+
+void func(inout int pointer[4]) {
+  int v[4] = (int[4])0;
+  pointer = v;
+}
+
+[numthreads(1, 1, 1)]
+void main() {
+  str F = (str)0;
+  func(F.arr);
+}
+
diff --git a/test/tint/ptr_ref/store/param/function/array_in_struct.wgsl.expected.ir.fxc.hlsl b/test/tint/ptr_ref/store/param/function/array_in_struct.wgsl.expected.ir.fxc.hlsl
index 6b047b4..9dcb1fc 100644
--- a/test/tint/ptr_ref/store/param/function/array_in_struct.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/ptr_ref/store/param/function/array_in_struct.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,16 @@
-SKIP: FAILED
+struct str {
+  int arr[4];
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:287 internal compiler error: Switch() matched no cases. Type: tint::core::ir::FunctionParam
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+
+void func(inout int pointer[4]) {
+  int v[4] = (int[4])0;
+  pointer = v;
+}
+
+[numthreads(1, 1, 1)]
+void main() {
+  str F = (str)0;
+  func(F.arr);
+}
+
diff --git a/test/tint/ptr_ref/store/param/function/i32.wgsl.expected.ir.dxc.hlsl b/test/tint/ptr_ref/store/param/function/i32.wgsl.expected.ir.dxc.hlsl
index 6b047b4..1568287 100644
--- a/test/tint/ptr_ref/store/param/function/i32.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/ptr_ref/store/param/function/i32.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,11 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:287 internal compiler error: Switch() matched no cases. Type: tint::core::ir::FunctionParam
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+void func(inout int pointer) {
+  pointer = 42;
+}
+
+[numthreads(1, 1, 1)]
+void main() {
+  int F = 0;
+  func(F);
+}
+
diff --git a/test/tint/ptr_ref/store/param/function/i32.wgsl.expected.ir.fxc.hlsl b/test/tint/ptr_ref/store/param/function/i32.wgsl.expected.ir.fxc.hlsl
index 6b047b4..1568287 100644
--- a/test/tint/ptr_ref/store/param/function/i32.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/ptr_ref/store/param/function/i32.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,11 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:287 internal compiler error: Switch() matched no cases. Type: tint::core::ir::FunctionParam
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+void func(inout int pointer) {
+  pointer = 42;
+}
+
+[numthreads(1, 1, 1)]
+void main() {
+  int F = 0;
+  func(F);
+}
+
diff --git a/test/tint/ptr_ref/store/param/function/i32_in_struct.wgsl.expected.ir.dxc.hlsl b/test/tint/ptr_ref/store/param/function/i32_in_struct.wgsl.expected.ir.dxc.hlsl
index 6b047b4..cb27496 100644
--- a/test/tint/ptr_ref/store/param/function/i32_in_struct.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/ptr_ref/store/param/function/i32_in_struct.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,15 @@
-SKIP: FAILED
+struct str {
+  int i;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:287 internal compiler error: Switch() matched no cases. Type: tint::core::ir::FunctionParam
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+
+void func(inout int pointer) {
+  pointer = 42;
+}
+
+[numthreads(1, 1, 1)]
+void main() {
+  str F = (str)0;
+  func(F.i);
+}
+
diff --git a/test/tint/ptr_ref/store/param/function/i32_in_struct.wgsl.expected.ir.fxc.hlsl b/test/tint/ptr_ref/store/param/function/i32_in_struct.wgsl.expected.ir.fxc.hlsl
index 6b047b4..cb27496 100644
--- a/test/tint/ptr_ref/store/param/function/i32_in_struct.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/ptr_ref/store/param/function/i32_in_struct.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,15 @@
-SKIP: FAILED
+struct str {
+  int i;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:287 internal compiler error: Switch() matched no cases. Type: tint::core::ir::FunctionParam
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+
+void func(inout int pointer) {
+  pointer = 42;
+}
+
+[numthreads(1, 1, 1)]
+void main() {
+  str F = (str)0;
+  func(F.i);
+}
+
diff --git a/test/tint/ptr_ref/store/param/function/struct_in_array.wgsl.expected.ir.dxc.hlsl b/test/tint/ptr_ref/store/param/function/struct_in_array.wgsl.expected.ir.dxc.hlsl
index 6b047b4..95db65e 100644
--- a/test/tint/ptr_ref/store/param/function/struct_in_array.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/ptr_ref/store/param/function/struct_in_array.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,16 @@
-SKIP: FAILED
+struct str {
+  int i;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:287 internal compiler error: Switch() matched no cases. Type: tint::core::ir::FunctionParam
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+
+void func(inout str pointer) {
+  str v = (str)0;
+  pointer = v;
+}
+
+[numthreads(1, 1, 1)]
+void main() {
+  str F[4] = (str[4])0;
+  func(F[2]);
+}
+
diff --git a/test/tint/ptr_ref/store/param/function/struct_in_array.wgsl.expected.ir.fxc.hlsl b/test/tint/ptr_ref/store/param/function/struct_in_array.wgsl.expected.ir.fxc.hlsl
index 6b047b4..95db65e 100644
--- a/test/tint/ptr_ref/store/param/function/struct_in_array.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/ptr_ref/store/param/function/struct_in_array.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,16 @@
-SKIP: FAILED
+struct str {
+  int i;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:287 internal compiler error: Switch() matched no cases. Type: tint::core::ir::FunctionParam
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+
+void func(inout str pointer) {
+  str v = (str)0;
+  pointer = v;
+}
+
+[numthreads(1, 1, 1)]
+void main() {
+  str F[4] = (str[4])0;
+  func(F[2]);
+}
+
diff --git a/test/tint/ptr_ref/store/param/function/vec2_f32_in_mat2x2.wgsl.expected.ir.dxc.hlsl b/test/tint/ptr_ref/store/param/function/vec2_f32_in_mat2x2.wgsl.expected.ir.dxc.hlsl
index 6b047b4..7e5fe60 100644
--- a/test/tint/ptr_ref/store/param/function/vec2_f32_in_mat2x2.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/ptr_ref/store/param/function/vec2_f32_in_mat2x2.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,11 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:287 internal compiler error: Switch() matched no cases. Type: tint::core::ir::FunctionParam
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+void func(inout float2 pointer) {
+  pointer = (0.0f).xx;
+}
+
+[numthreads(1, 1, 1)]
+void main() {
+  float2x2 F = float2x2((0.0f).xx, (0.0f).xx);
+  func(F[1]);
+}
+
diff --git a/test/tint/ptr_ref/store/param/function/vec2_f32_in_mat2x2.wgsl.expected.ir.fxc.hlsl b/test/tint/ptr_ref/store/param/function/vec2_f32_in_mat2x2.wgsl.expected.ir.fxc.hlsl
index 6b047b4..7e5fe60 100644
--- a/test/tint/ptr_ref/store/param/function/vec2_f32_in_mat2x2.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/ptr_ref/store/param/function/vec2_f32_in_mat2x2.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,11 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:287 internal compiler error: Switch() matched no cases. Type: tint::core::ir::FunctionParam
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+void func(inout float2 pointer) {
+  pointer = (0.0f).xx;
+}
+
+[numthreads(1, 1, 1)]
+void main() {
+  float2x2 F = float2x2((0.0f).xx, (0.0f).xx);
+  func(F[1]);
+}
+
diff --git a/test/tint/ptr_ref/store/param/function/vec4_f32.wgsl.expected.ir.dxc.hlsl b/test/tint/ptr_ref/store/param/function/vec4_f32.wgsl.expected.ir.dxc.hlsl
index 6b047b4..fdc15ec 100644
--- a/test/tint/ptr_ref/store/param/function/vec4_f32.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/ptr_ref/store/param/function/vec4_f32.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,11 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:287 internal compiler error: Switch() matched no cases. Type: tint::core::ir::FunctionParam
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+void func(inout float4 pointer) {
+  pointer = (0.0f).xxxx;
+}
+
+[numthreads(1, 1, 1)]
+void main() {
+  float4 F = (0.0f).xxxx;
+  func(F);
+}
+
diff --git a/test/tint/ptr_ref/store/param/function/vec4_f32.wgsl.expected.ir.fxc.hlsl b/test/tint/ptr_ref/store/param/function/vec4_f32.wgsl.expected.ir.fxc.hlsl
index 6b047b4..fdc15ec 100644
--- a/test/tint/ptr_ref/store/param/function/vec4_f32.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/ptr_ref/store/param/function/vec4_f32.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,11 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:287 internal compiler error: Switch() matched no cases. Type: tint::core::ir::FunctionParam
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+void func(inout float4 pointer) {
+  pointer = (0.0f).xxxx;
+}
+
+[numthreads(1, 1, 1)]
+void main() {
+  float4 F = (0.0f).xxxx;
+  func(F);
+}
+
diff --git a/test/tint/ptr_ref/store/param/function/vec4_f32_in_mat2x4.wgsl.expected.ir.dxc.hlsl b/test/tint/ptr_ref/store/param/function/vec4_f32_in_mat2x4.wgsl.expected.ir.dxc.hlsl
index 6b047b4..84253e3 100644
--- a/test/tint/ptr_ref/store/param/function/vec4_f32_in_mat2x4.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/ptr_ref/store/param/function/vec4_f32_in_mat2x4.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,11 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:287 internal compiler error: Switch() matched no cases. Type: tint::core::ir::FunctionParam
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+void func(inout float4 pointer) {
+  pointer = (0.0f).xxxx;
+}
+
+[numthreads(1, 1, 1)]
+void main() {
+  float2x4 F = float2x4((0.0f).xxxx, (0.0f).xxxx);
+  func(F[1]);
+}
+
diff --git a/test/tint/ptr_ref/store/param/function/vec4_f32_in_mat2x4.wgsl.expected.ir.fxc.hlsl b/test/tint/ptr_ref/store/param/function/vec4_f32_in_mat2x4.wgsl.expected.ir.fxc.hlsl
index 6b047b4..84253e3 100644
--- a/test/tint/ptr_ref/store/param/function/vec4_f32_in_mat2x4.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/ptr_ref/store/param/function/vec4_f32_in_mat2x4.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,11 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:287 internal compiler error: Switch() matched no cases. Type: tint::core::ir::FunctionParam
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+void func(inout float4 pointer) {
+  pointer = (0.0f).xxxx;
+}
+
+[numthreads(1, 1, 1)]
+void main() {
+  float2x4 F = float2x4((0.0f).xxxx, (0.0f).xxxx);
+  func(F[1]);
+}
+
diff --git a/test/tint/ptr_ref/store/param/function/vec4_f32_in_struct.wgsl.expected.ir.dxc.hlsl b/test/tint/ptr_ref/store/param/function/vec4_f32_in_struct.wgsl.expected.ir.dxc.hlsl
index 6b047b4..fac3b67 100644
--- a/test/tint/ptr_ref/store/param/function/vec4_f32_in_struct.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/ptr_ref/store/param/function/vec4_f32_in_struct.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,15 @@
-SKIP: FAILED
+struct str {
+  float4 i;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:287 internal compiler error: Switch() matched no cases. Type: tint::core::ir::FunctionParam
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+
+void func(inout float4 pointer) {
+  pointer = (0.0f).xxxx;
+}
+
+[numthreads(1, 1, 1)]
+void main() {
+  str F = (str)0;
+  func(F.i);
+}
+
diff --git a/test/tint/ptr_ref/store/param/function/vec4_f32_in_struct.wgsl.expected.ir.fxc.hlsl b/test/tint/ptr_ref/store/param/function/vec4_f32_in_struct.wgsl.expected.ir.fxc.hlsl
index 6b047b4..fac3b67 100644
--- a/test/tint/ptr_ref/store/param/function/vec4_f32_in_struct.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/ptr_ref/store/param/function/vec4_f32_in_struct.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,15 @@
-SKIP: FAILED
+struct str {
+  float4 i;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:287 internal compiler error: Switch() matched no cases. Type: tint::core::ir::FunctionParam
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+
+void func(inout float4 pointer) {
+  pointer = (0.0f).xxxx;
+}
+
+[numthreads(1, 1, 1)]
+void main() {
+  str F = (str)0;
+  func(F.i);
+}
+
diff --git a/test/tint/ptr_ref/store/param/private/array_in_struct.wgsl.expected.ir.dxc.hlsl b/test/tint/ptr_ref/store/param/private/array_in_struct.wgsl.expected.ir.dxc.hlsl
index 6b047b4..78e8f88 100644
--- a/test/tint/ptr_ref/store/param/private/array_in_struct.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/ptr_ref/store/param/private/array_in_struct.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,16 @@
-SKIP: FAILED
+struct str {
+  int arr[4];
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:287 internal compiler error: Switch() matched no cases. Type: tint::core::ir::FunctionParam
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+
+static str P = (str)0;
+void func(inout int pointer[4]) {
+  int v[4] = (int[4])0;
+  pointer = v;
+}
+
+[numthreads(1, 1, 1)]
+void main() {
+  func(P.arr);
+}
+
diff --git a/test/tint/ptr_ref/store/param/private/array_in_struct.wgsl.expected.ir.fxc.hlsl b/test/tint/ptr_ref/store/param/private/array_in_struct.wgsl.expected.ir.fxc.hlsl
index 6b047b4..78e8f88 100644
--- a/test/tint/ptr_ref/store/param/private/array_in_struct.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/ptr_ref/store/param/private/array_in_struct.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,16 @@
-SKIP: FAILED
+struct str {
+  int arr[4];
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:287 internal compiler error: Switch() matched no cases. Type: tint::core::ir::FunctionParam
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+
+static str P = (str)0;
+void func(inout int pointer[4]) {
+  int v[4] = (int[4])0;
+  pointer = v;
+}
+
+[numthreads(1, 1, 1)]
+void main() {
+  func(P.arr);
+}
+
diff --git a/test/tint/ptr_ref/store/param/private/i32.wgsl.expected.ir.dxc.hlsl b/test/tint/ptr_ref/store/param/private/i32.wgsl.expected.ir.dxc.hlsl
index 6b047b4..b08eda02 100644
--- a/test/tint/ptr_ref/store/param/private/i32.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/ptr_ref/store/param/private/i32.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,11 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:287 internal compiler error: Switch() matched no cases. Type: tint::core::ir::FunctionParam
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+static int P = 0;
+void func(inout int pointer) {
+  pointer = 42;
+}
+
+[numthreads(1, 1, 1)]
+void main() {
+  func(P);
+}
+
diff --git a/test/tint/ptr_ref/store/param/private/i32.wgsl.expected.ir.fxc.hlsl b/test/tint/ptr_ref/store/param/private/i32.wgsl.expected.ir.fxc.hlsl
index 6b047b4..b08eda02 100644
--- a/test/tint/ptr_ref/store/param/private/i32.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/ptr_ref/store/param/private/i32.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,11 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:287 internal compiler error: Switch() matched no cases. Type: tint::core::ir::FunctionParam
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+static int P = 0;
+void func(inout int pointer) {
+  pointer = 42;
+}
+
+[numthreads(1, 1, 1)]
+void main() {
+  func(P);
+}
+
diff --git a/test/tint/ptr_ref/store/param/private/i32_in_struct.wgsl.expected.ir.dxc.hlsl b/test/tint/ptr_ref/store/param/private/i32_in_struct.wgsl.expected.ir.dxc.hlsl
index 6b047b4..34738e4 100644
--- a/test/tint/ptr_ref/store/param/private/i32_in_struct.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/ptr_ref/store/param/private/i32_in_struct.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,15 @@
-SKIP: FAILED
+struct str {
+  int i;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:287 internal compiler error: Switch() matched no cases. Type: tint::core::ir::FunctionParam
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+
+static str P = (str)0;
+void func(inout int pointer) {
+  pointer = 42;
+}
+
+[numthreads(1, 1, 1)]
+void main() {
+  func(P.i);
+}
+
diff --git a/test/tint/ptr_ref/store/param/private/i32_in_struct.wgsl.expected.ir.fxc.hlsl b/test/tint/ptr_ref/store/param/private/i32_in_struct.wgsl.expected.ir.fxc.hlsl
index 6b047b4..34738e4 100644
--- a/test/tint/ptr_ref/store/param/private/i32_in_struct.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/ptr_ref/store/param/private/i32_in_struct.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,15 @@
-SKIP: FAILED
+struct str {
+  int i;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:287 internal compiler error: Switch() matched no cases. Type: tint::core::ir::FunctionParam
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+
+static str P = (str)0;
+void func(inout int pointer) {
+  pointer = 42;
+}
+
+[numthreads(1, 1, 1)]
+void main() {
+  func(P.i);
+}
+
diff --git a/test/tint/ptr_ref/store/param/private/struct_in_array.wgsl.expected.ir.dxc.hlsl b/test/tint/ptr_ref/store/param/private/struct_in_array.wgsl.expected.ir.dxc.hlsl
index 6b047b4..dc23d73 100644
--- a/test/tint/ptr_ref/store/param/private/struct_in_array.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/ptr_ref/store/param/private/struct_in_array.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,16 @@
-SKIP: FAILED
+struct str {
+  int i;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:287 internal compiler error: Switch() matched no cases. Type: tint::core::ir::FunctionParam
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+
+static str P[4] = (str[4])0;
+void func(inout str pointer) {
+  str v = (str)0;
+  pointer = v;
+}
+
+[numthreads(1, 1, 1)]
+void main() {
+  func(P[2]);
+}
+
diff --git a/test/tint/ptr_ref/store/param/private/struct_in_array.wgsl.expected.ir.fxc.hlsl b/test/tint/ptr_ref/store/param/private/struct_in_array.wgsl.expected.ir.fxc.hlsl
index 6b047b4..dc23d73 100644
--- a/test/tint/ptr_ref/store/param/private/struct_in_array.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/ptr_ref/store/param/private/struct_in_array.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,16 @@
-SKIP: FAILED
+struct str {
+  int i;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:287 internal compiler error: Switch() matched no cases. Type: tint::core::ir::FunctionParam
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+
+static str P[4] = (str[4])0;
+void func(inout str pointer) {
+  str v = (str)0;
+  pointer = v;
+}
+
+[numthreads(1, 1, 1)]
+void main() {
+  func(P[2]);
+}
+
diff --git a/test/tint/ptr_ref/store/param/private/vec2_f32_in_mat2x2.wgsl.expected.ir.dxc.hlsl b/test/tint/ptr_ref/store/param/private/vec2_f32_in_mat2x2.wgsl.expected.ir.dxc.hlsl
index 6b047b4..186a2d6 100644
--- a/test/tint/ptr_ref/store/param/private/vec2_f32_in_mat2x2.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/ptr_ref/store/param/private/vec2_f32_in_mat2x2.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,11 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:287 internal compiler error: Switch() matched no cases. Type: tint::core::ir::FunctionParam
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+static float2x2 P = float2x2((0.0f).xx, (0.0f).xx);
+void func(inout float2 pointer) {
+  pointer = (0.0f).xx;
+}
+
+[numthreads(1, 1, 1)]
+void main() {
+  func(P[1]);
+}
+
diff --git a/test/tint/ptr_ref/store/param/private/vec2_f32_in_mat2x2.wgsl.expected.ir.fxc.hlsl b/test/tint/ptr_ref/store/param/private/vec2_f32_in_mat2x2.wgsl.expected.ir.fxc.hlsl
index 6b047b4..186a2d6 100644
--- a/test/tint/ptr_ref/store/param/private/vec2_f32_in_mat2x2.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/ptr_ref/store/param/private/vec2_f32_in_mat2x2.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,11 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:287 internal compiler error: Switch() matched no cases. Type: tint::core::ir::FunctionParam
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+static float2x2 P = float2x2((0.0f).xx, (0.0f).xx);
+void func(inout float2 pointer) {
+  pointer = (0.0f).xx;
+}
+
+[numthreads(1, 1, 1)]
+void main() {
+  func(P[1]);
+}
+
diff --git a/test/tint/ptr_ref/store/param/private/vec4_f32.wgsl.expected.ir.dxc.hlsl b/test/tint/ptr_ref/store/param/private/vec4_f32.wgsl.expected.ir.dxc.hlsl
index 6b047b4..c085902 100644
--- a/test/tint/ptr_ref/store/param/private/vec4_f32.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/ptr_ref/store/param/private/vec4_f32.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,11 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:287 internal compiler error: Switch() matched no cases. Type: tint::core::ir::FunctionParam
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+static float4 P = (0.0f).xxxx;
+void func(inout float4 pointer) {
+  pointer = (0.0f).xxxx;
+}
+
+[numthreads(1, 1, 1)]
+void main() {
+  func(P);
+}
+
diff --git a/test/tint/ptr_ref/store/param/private/vec4_f32.wgsl.expected.ir.fxc.hlsl b/test/tint/ptr_ref/store/param/private/vec4_f32.wgsl.expected.ir.fxc.hlsl
index 6b047b4..c085902 100644
--- a/test/tint/ptr_ref/store/param/private/vec4_f32.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/ptr_ref/store/param/private/vec4_f32.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,11 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:287 internal compiler error: Switch() matched no cases. Type: tint::core::ir::FunctionParam
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+static float4 P = (0.0f).xxxx;
+void func(inout float4 pointer) {
+  pointer = (0.0f).xxxx;
+}
+
+[numthreads(1, 1, 1)]
+void main() {
+  func(P);
+}
+
diff --git a/test/tint/ptr_ref/store/param/private/vec4_f32_in_mat2x4.wgsl.expected.ir.dxc.hlsl b/test/tint/ptr_ref/store/param/private/vec4_f32_in_mat2x4.wgsl.expected.ir.dxc.hlsl
index 6b047b4..0e92ba3 100644
--- a/test/tint/ptr_ref/store/param/private/vec4_f32_in_mat2x4.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/ptr_ref/store/param/private/vec4_f32_in_mat2x4.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,11 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:287 internal compiler error: Switch() matched no cases. Type: tint::core::ir::FunctionParam
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+static float2x4 P = float2x4((0.0f).xxxx, (0.0f).xxxx);
+void func(inout float4 pointer) {
+  pointer = (0.0f).xxxx;
+}
+
+[numthreads(1, 1, 1)]
+void main() {
+  func(P[1]);
+}
+
diff --git a/test/tint/ptr_ref/store/param/private/vec4_f32_in_mat2x4.wgsl.expected.ir.fxc.hlsl b/test/tint/ptr_ref/store/param/private/vec4_f32_in_mat2x4.wgsl.expected.ir.fxc.hlsl
index 6b047b4..0e92ba3 100644
--- a/test/tint/ptr_ref/store/param/private/vec4_f32_in_mat2x4.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/ptr_ref/store/param/private/vec4_f32_in_mat2x4.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,11 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:287 internal compiler error: Switch() matched no cases. Type: tint::core::ir::FunctionParam
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+static float2x4 P = float2x4((0.0f).xxxx, (0.0f).xxxx);
+void func(inout float4 pointer) {
+  pointer = (0.0f).xxxx;
+}
+
+[numthreads(1, 1, 1)]
+void main() {
+  func(P[1]);
+}
+
diff --git a/test/tint/ptr_ref/store/param/private/vec4_f32_in_struct.wgsl.expected.ir.dxc.hlsl b/test/tint/ptr_ref/store/param/private/vec4_f32_in_struct.wgsl.expected.ir.dxc.hlsl
index 6b047b4..0c6596f 100644
--- a/test/tint/ptr_ref/store/param/private/vec4_f32_in_struct.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/ptr_ref/store/param/private/vec4_f32_in_struct.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,15 @@
-SKIP: FAILED
+struct str {
+  float4 i;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:287 internal compiler error: Switch() matched no cases. Type: tint::core::ir::FunctionParam
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+
+static str P = (str)0;
+void func(inout float4 pointer) {
+  pointer = (0.0f).xxxx;
+}
+
+[numthreads(1, 1, 1)]
+void main() {
+  func(P.i);
+}
+
diff --git a/test/tint/ptr_ref/store/param/private/vec4_f32_in_struct.wgsl.expected.ir.fxc.hlsl b/test/tint/ptr_ref/store/param/private/vec4_f32_in_struct.wgsl.expected.ir.fxc.hlsl
index 6b047b4..0c6596f 100644
--- a/test/tint/ptr_ref/store/param/private/vec4_f32_in_struct.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/ptr_ref/store/param/private/vec4_f32_in_struct.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,15 @@
-SKIP: FAILED
+struct str {
+  float4 i;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:287 internal compiler error: Switch() matched no cases. Type: tint::core::ir::FunctionParam
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+
+static str P = (str)0;
+void func(inout float4 pointer) {
+  pointer = (0.0f).xxxx;
+}
+
+[numthreads(1, 1, 1)]
+void main() {
+  func(P.i);
+}
+
diff --git a/test/tint/ptr_ref/store/param/ptr.wgsl.expected.ir.dxc.hlsl b/test/tint/ptr_ref/store/param/ptr.wgsl.expected.ir.dxc.hlsl
index 6b047b4..48e2c31 100644
--- a/test/tint/ptr_ref/store/param/ptr.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/ptr_ref/store/param/ptr.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,11 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:287 internal compiler error: Switch() matched no cases. Type: tint::core::ir::FunctionParam
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+void func(int value, inout int pointer) {
+  pointer = value;
+}
+
+[numthreads(1, 1, 1)]
+void main() {
+  int i = 123;
+  func(123, i);
+}
+
diff --git a/test/tint/ptr_ref/store/param/ptr.wgsl.expected.ir.fxc.hlsl b/test/tint/ptr_ref/store/param/ptr.wgsl.expected.ir.fxc.hlsl
index 6b047b4..48e2c31 100644
--- a/test/tint/ptr_ref/store/param/ptr.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/ptr_ref/store/param/ptr.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,11 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:287 internal compiler error: Switch() matched no cases. Type: tint::core::ir::FunctionParam
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+void func(int value, inout int pointer) {
+  pointer = value;
+}
+
+[numthreads(1, 1, 1)]
+void main() {
+  int i = 123;
+  func(123, i);
+}
+
diff --git a/test/tint/ptr_ref/store/param/storage/array_in_struct.wgsl.expected.ir.dxc.hlsl b/test/tint/ptr_ref/store/param/storage/array_in_struct.wgsl.expected.ir.dxc.hlsl
index 6b047b4..b376d62 100644
--- a/test/tint/ptr_ref/store/param/storage/array_in_struct.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/ptr_ref/store/param/storage/array_in_struct.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,30 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:287 internal compiler error: Switch() matched no cases. Type: tint::core::ir::FunctionParam
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWByteAddressBuffer S : register(u0);
+void v(uint offset, int obj[4]) {
+  {
+    uint v_1 = 0u;
+    v_1 = 0u;
+    while(true) {
+      uint v_2 = v_1;
+      if ((v_2 >= 4u)) {
+        break;
+      }
+      S.Store((offset + (v_2 * 4u)), asuint(obj[v_2]));
+      {
+        v_1 = (v_2 + 1u);
+      }
+      continue;
+    }
+  }
+}
+
+void func() {
+  int v_3[4] = (int[4])0;
+  v(0u, v_3);
+}
+
+[numthreads(1, 1, 1)]
+void main() {
+  func();
+}
+
diff --git a/test/tint/ptr_ref/store/param/storage/array_in_struct.wgsl.expected.ir.fxc.hlsl b/test/tint/ptr_ref/store/param/storage/array_in_struct.wgsl.expected.ir.fxc.hlsl
index 6b047b4..b376d62 100644
--- a/test/tint/ptr_ref/store/param/storage/array_in_struct.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/ptr_ref/store/param/storage/array_in_struct.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,30 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:287 internal compiler error: Switch() matched no cases. Type: tint::core::ir::FunctionParam
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWByteAddressBuffer S : register(u0);
+void v(uint offset, int obj[4]) {
+  {
+    uint v_1 = 0u;
+    v_1 = 0u;
+    while(true) {
+      uint v_2 = v_1;
+      if ((v_2 >= 4u)) {
+        break;
+      }
+      S.Store((offset + (v_2 * 4u)), asuint(obj[v_2]));
+      {
+        v_1 = (v_2 + 1u);
+      }
+      continue;
+    }
+  }
+}
+
+void func() {
+  int v_3[4] = (int[4])0;
+  v(0u, v_3);
+}
+
+[numthreads(1, 1, 1)]
+void main() {
+  func();
+}
+
diff --git a/test/tint/ptr_ref/store/param/storage/i32.wgsl.expected.ir.dxc.hlsl b/test/tint/ptr_ref/store/param/storage/i32.wgsl.expected.ir.dxc.hlsl
index 6b047b4..c5d4795 100644
--- a/test/tint/ptr_ref/store/param/storage/i32.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/ptr_ref/store/param/storage/i32.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,11 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:287 internal compiler error: Switch() matched no cases. Type: tint::core::ir::FunctionParam
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWByteAddressBuffer S : register(u0);
+void func() {
+  S.Store(0u, asuint(42));
+}
+
+[numthreads(1, 1, 1)]
+void main() {
+  func();
+}
+
diff --git a/test/tint/ptr_ref/store/param/storage/i32.wgsl.expected.ir.fxc.hlsl b/test/tint/ptr_ref/store/param/storage/i32.wgsl.expected.ir.fxc.hlsl
index 6b047b4..c5d4795 100644
--- a/test/tint/ptr_ref/store/param/storage/i32.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/ptr_ref/store/param/storage/i32.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,11 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:287 internal compiler error: Switch() matched no cases. Type: tint::core::ir::FunctionParam
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWByteAddressBuffer S : register(u0);
+void func() {
+  S.Store(0u, asuint(42));
+}
+
+[numthreads(1, 1, 1)]
+void main() {
+  func();
+}
+
diff --git a/test/tint/ptr_ref/store/param/storage/i32_in_struct.wgsl.expected.ir.dxc.hlsl b/test/tint/ptr_ref/store/param/storage/i32_in_struct.wgsl.expected.ir.dxc.hlsl
index 6b047b4..c5d4795 100644
--- a/test/tint/ptr_ref/store/param/storage/i32_in_struct.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/ptr_ref/store/param/storage/i32_in_struct.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,11 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:287 internal compiler error: Switch() matched no cases. Type: tint::core::ir::FunctionParam
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWByteAddressBuffer S : register(u0);
+void func() {
+  S.Store(0u, asuint(42));
+}
+
+[numthreads(1, 1, 1)]
+void main() {
+  func();
+}
+
diff --git a/test/tint/ptr_ref/store/param/storage/i32_in_struct.wgsl.expected.ir.fxc.hlsl b/test/tint/ptr_ref/store/param/storage/i32_in_struct.wgsl.expected.ir.fxc.hlsl
index 6b047b4..c5d4795 100644
--- a/test/tint/ptr_ref/store/param/storage/i32_in_struct.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/ptr_ref/store/param/storage/i32_in_struct.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,11 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:287 internal compiler error: Switch() matched no cases. Type: tint::core::ir::FunctionParam
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWByteAddressBuffer S : register(u0);
+void func() {
+  S.Store(0u, asuint(42));
+}
+
+[numthreads(1, 1, 1)]
+void main() {
+  func();
+}
+
diff --git a/test/tint/ptr_ref/store/param/storage/struct_in_array.wgsl.expected.ir.dxc.hlsl b/test/tint/ptr_ref/store/param/storage/struct_in_array.wgsl.expected.ir.dxc.hlsl
index 6b047b4..177f58c 100644
--- a/test/tint/ptr_ref/store/param/storage/struct_in_array.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/ptr_ref/store/param/storage/struct_in_array.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,21 @@
-SKIP: FAILED
+struct str {
+  int i;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:287 internal compiler error: Switch() matched no cases. Type: tint::core::ir::FunctionParam
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+
+RWByteAddressBuffer S : register(u0);
+void v(uint offset, str obj) {
+  S.Store((offset + 0u), asuint(obj.i));
+}
+
+void func(uint pointer_indices[1]) {
+  str v_1 = (str)0;
+  v((0u + (uint(pointer_indices[0u]) * 4u)), v_1);
+}
+
+[numthreads(1, 1, 1)]
+void main() {
+  uint v_2[1] = (uint[1])0;
+  func(v_2);
+}
+
diff --git a/test/tint/ptr_ref/store/param/storage/struct_in_array.wgsl.expected.ir.fxc.hlsl b/test/tint/ptr_ref/store/param/storage/struct_in_array.wgsl.expected.ir.fxc.hlsl
index 6b047b4..177f58c 100644
--- a/test/tint/ptr_ref/store/param/storage/struct_in_array.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/ptr_ref/store/param/storage/struct_in_array.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,21 @@
-SKIP: FAILED
+struct str {
+  int i;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:287 internal compiler error: Switch() matched no cases. Type: tint::core::ir::FunctionParam
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+
+RWByteAddressBuffer S : register(u0);
+void v(uint offset, str obj) {
+  S.Store((offset + 0u), asuint(obj.i));
+}
+
+void func(uint pointer_indices[1]) {
+  str v_1 = (str)0;
+  v((0u + (uint(pointer_indices[0u]) * 4u)), v_1);
+}
+
+[numthreads(1, 1, 1)]
+void main() {
+  uint v_2[1] = (uint[1])0;
+  func(v_2);
+}
+
diff --git a/test/tint/ptr_ref/store/param/storage/vec2_f32_in_mat2x2.wgsl.expected.ir.dxc.hlsl b/test/tint/ptr_ref/store/param/storage/vec2_f32_in_mat2x2.wgsl.expected.ir.dxc.hlsl
index 6b047b4..792d9b3 100644
--- a/test/tint/ptr_ref/store/param/storage/vec2_f32_in_mat2x2.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/ptr_ref/store/param/storage/vec2_f32_in_mat2x2.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,13 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:287 internal compiler error: Switch() matched no cases. Type: tint::core::ir::FunctionParam
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWByteAddressBuffer S : register(u0);
+void func(uint pointer_indices[1]) {
+  uint v = (0u + (uint(pointer_indices[0u]) * 8u));
+  S.Store2(v, asuint((0.0f).xx));
+}
+
+[numthreads(1, 1, 1)]
+void main() {
+  uint v_1[1] = (uint[1])0;
+  func(v_1);
+}
+
diff --git a/test/tint/ptr_ref/store/param/storage/vec2_f32_in_mat2x2.wgsl.expected.ir.fxc.hlsl b/test/tint/ptr_ref/store/param/storage/vec2_f32_in_mat2x2.wgsl.expected.ir.fxc.hlsl
index 6b047b4..792d9b3 100644
--- a/test/tint/ptr_ref/store/param/storage/vec2_f32_in_mat2x2.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/ptr_ref/store/param/storage/vec2_f32_in_mat2x2.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,13 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:287 internal compiler error: Switch() matched no cases. Type: tint::core::ir::FunctionParam
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWByteAddressBuffer S : register(u0);
+void func(uint pointer_indices[1]) {
+  uint v = (0u + (uint(pointer_indices[0u]) * 8u));
+  S.Store2(v, asuint((0.0f).xx));
+}
+
+[numthreads(1, 1, 1)]
+void main() {
+  uint v_1[1] = (uint[1])0;
+  func(v_1);
+}
+
diff --git a/test/tint/ptr_ref/store/param/storage/vec4_f32.wgsl.expected.ir.dxc.hlsl b/test/tint/ptr_ref/store/param/storage/vec4_f32.wgsl.expected.ir.dxc.hlsl
index 6b047b4..cb1810a 100644
--- a/test/tint/ptr_ref/store/param/storage/vec4_f32.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/ptr_ref/store/param/storage/vec4_f32.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,11 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:287 internal compiler error: Switch() matched no cases. Type: tint::core::ir::FunctionParam
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWByteAddressBuffer S : register(u0);
+void func() {
+  S.Store4(0u, asuint((0.0f).xxxx));
+}
+
+[numthreads(1, 1, 1)]
+void main() {
+  func();
+}
+
diff --git a/test/tint/ptr_ref/store/param/storage/vec4_f32.wgsl.expected.ir.fxc.hlsl b/test/tint/ptr_ref/store/param/storage/vec4_f32.wgsl.expected.ir.fxc.hlsl
index 6b047b4..cb1810a 100644
--- a/test/tint/ptr_ref/store/param/storage/vec4_f32.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/ptr_ref/store/param/storage/vec4_f32.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,11 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:287 internal compiler error: Switch() matched no cases. Type: tint::core::ir::FunctionParam
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWByteAddressBuffer S : register(u0);
+void func() {
+  S.Store4(0u, asuint((0.0f).xxxx));
+}
+
+[numthreads(1, 1, 1)]
+void main() {
+  func();
+}
+
diff --git a/test/tint/ptr_ref/store/param/storage/vec4_f32_in_mat2x4.wgsl.expected.ir.dxc.hlsl b/test/tint/ptr_ref/store/param/storage/vec4_f32_in_mat2x4.wgsl.expected.ir.dxc.hlsl
index 6b047b4..82c7061 100644
--- a/test/tint/ptr_ref/store/param/storage/vec4_f32_in_mat2x4.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/ptr_ref/store/param/storage/vec4_f32_in_mat2x4.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,13 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:287 internal compiler error: Switch() matched no cases. Type: tint::core::ir::FunctionParam
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWByteAddressBuffer S : register(u0);
+void func(uint pointer_indices[1]) {
+  uint v = (0u + (uint(pointer_indices[0u]) * 16u));
+  S.Store4(v, asuint((0.0f).xxxx));
+}
+
+[numthreads(1, 1, 1)]
+void main() {
+  uint v_1[1] = (uint[1])0;
+  func(v_1);
+}
+
diff --git a/test/tint/ptr_ref/store/param/storage/vec4_f32_in_mat2x4.wgsl.expected.ir.fxc.hlsl b/test/tint/ptr_ref/store/param/storage/vec4_f32_in_mat2x4.wgsl.expected.ir.fxc.hlsl
index 6b047b4..82c7061 100644
--- a/test/tint/ptr_ref/store/param/storage/vec4_f32_in_mat2x4.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/ptr_ref/store/param/storage/vec4_f32_in_mat2x4.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,13 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:287 internal compiler error: Switch() matched no cases. Type: tint::core::ir::FunctionParam
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWByteAddressBuffer S : register(u0);
+void func(uint pointer_indices[1]) {
+  uint v = (0u + (uint(pointer_indices[0u]) * 16u));
+  S.Store4(v, asuint((0.0f).xxxx));
+}
+
+[numthreads(1, 1, 1)]
+void main() {
+  uint v_1[1] = (uint[1])0;
+  func(v_1);
+}
+
diff --git a/test/tint/ptr_ref/store/param/storage/vec4_f32_in_struct.wgsl.expected.ir.dxc.hlsl b/test/tint/ptr_ref/store/param/storage/vec4_f32_in_struct.wgsl.expected.ir.dxc.hlsl
index 6b047b4..cb1810a 100644
--- a/test/tint/ptr_ref/store/param/storage/vec4_f32_in_struct.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/ptr_ref/store/param/storage/vec4_f32_in_struct.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,11 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:287 internal compiler error: Switch() matched no cases. Type: tint::core::ir::FunctionParam
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWByteAddressBuffer S : register(u0);
+void func() {
+  S.Store4(0u, asuint((0.0f).xxxx));
+}
+
+[numthreads(1, 1, 1)]
+void main() {
+  func();
+}
+
diff --git a/test/tint/ptr_ref/store/param/storage/vec4_f32_in_struct.wgsl.expected.ir.fxc.hlsl b/test/tint/ptr_ref/store/param/storage/vec4_f32_in_struct.wgsl.expected.ir.fxc.hlsl
index 6b047b4..cb1810a 100644
--- a/test/tint/ptr_ref/store/param/storage/vec4_f32_in_struct.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/ptr_ref/store/param/storage/vec4_f32_in_struct.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,11 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:287 internal compiler error: Switch() matched no cases. Type: tint::core::ir::FunctionParam
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWByteAddressBuffer S : register(u0);
+void func() {
+  S.Store4(0u, asuint((0.0f).xxxx));
+}
+
+[numthreads(1, 1, 1)]
+void main() {
+  func();
+}
+
diff --git a/test/tint/ptr_ref/store/param/workgroup/array_in_struct.wgsl.expected.ir.dxc.hlsl b/test/tint/ptr_ref/store/param/workgroup/array_in_struct.wgsl.expected.ir.dxc.hlsl
index 6b047b4..bfbb01b 100644
--- a/test/tint/ptr_ref/store/param/workgroup/array_in_struct.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/ptr_ref/store/param/workgroup/array_in_struct.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,40 @@
-SKIP: FAILED
+struct str {
+  int arr[4];
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:287 internal compiler error: Switch() matched no cases. Type: tint::core::ir::FunctionParam
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct main_inputs {
+  uint tint_local_index : SV_GroupIndex;
+};
+
+
+groupshared str S;
+void func() {
+  int v[4] = (int[4])0;
+  S.arr = v;
+}
+
+void main_inner(uint tint_local_index) {
+  {
+    uint v_1 = 0u;
+    v_1 = tint_local_index;
+    while(true) {
+      uint v_2 = v_1;
+      if ((v_2 >= 4u)) {
+        break;
+      }
+      S.arr[v_2] = 0;
+      {
+        v_1 = (v_2 + 1u);
+      }
+      continue;
+    }
+  }
+  GroupMemoryBarrierWithGroupSync();
+  func();
+}
+
+[numthreads(1, 1, 1)]
+void main(main_inputs inputs) {
+  main_inner(inputs.tint_local_index);
+}
+
diff --git a/test/tint/ptr_ref/store/param/workgroup/array_in_struct.wgsl.expected.ir.fxc.hlsl b/test/tint/ptr_ref/store/param/workgroup/array_in_struct.wgsl.expected.ir.fxc.hlsl
index 6b047b4..bfbb01b 100644
--- a/test/tint/ptr_ref/store/param/workgroup/array_in_struct.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/ptr_ref/store/param/workgroup/array_in_struct.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,40 @@
-SKIP: FAILED
+struct str {
+  int arr[4];
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:287 internal compiler error: Switch() matched no cases. Type: tint::core::ir::FunctionParam
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct main_inputs {
+  uint tint_local_index : SV_GroupIndex;
+};
+
+
+groupshared str S;
+void func() {
+  int v[4] = (int[4])0;
+  S.arr = v;
+}
+
+void main_inner(uint tint_local_index) {
+  {
+    uint v_1 = 0u;
+    v_1 = tint_local_index;
+    while(true) {
+      uint v_2 = v_1;
+      if ((v_2 >= 4u)) {
+        break;
+      }
+      S.arr[v_2] = 0;
+      {
+        v_1 = (v_2 + 1u);
+      }
+      continue;
+    }
+  }
+  GroupMemoryBarrierWithGroupSync();
+  func();
+}
+
+[numthreads(1, 1, 1)]
+void main(main_inputs inputs) {
+  main_inner(inputs.tint_local_index);
+}
+
diff --git a/test/tint/ptr_ref/store/param/workgroup/i32.wgsl.expected.ir.dxc.hlsl b/test/tint/ptr_ref/store/param/workgroup/i32.wgsl.expected.ir.dxc.hlsl
index 6b047b4..a0747f9 100644
--- a/test/tint/ptr_ref/store/param/workgroup/i32.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/ptr_ref/store/param/workgroup/i32.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,23 @@
-SKIP: FAILED
+struct main_inputs {
+  uint tint_local_index : SV_GroupIndex;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:287 internal compiler error: Switch() matched no cases. Type: tint::core::ir::FunctionParam
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+
+groupshared int S;
+void func() {
+  S = 42;
+}
+
+void main_inner(uint tint_local_index) {
+  if ((tint_local_index == 0u)) {
+    S = 0;
+  }
+  GroupMemoryBarrierWithGroupSync();
+  func();
+}
+
+[numthreads(1, 1, 1)]
+void main(main_inputs inputs) {
+  main_inner(inputs.tint_local_index);
+}
+
diff --git a/test/tint/ptr_ref/store/param/workgroup/i32.wgsl.expected.ir.fxc.hlsl b/test/tint/ptr_ref/store/param/workgroup/i32.wgsl.expected.ir.fxc.hlsl
index 6b047b4..a0747f9 100644
--- a/test/tint/ptr_ref/store/param/workgroup/i32.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/ptr_ref/store/param/workgroup/i32.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,23 @@
-SKIP: FAILED
+struct main_inputs {
+  uint tint_local_index : SV_GroupIndex;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:287 internal compiler error: Switch() matched no cases. Type: tint::core::ir::FunctionParam
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+
+groupshared int S;
+void func() {
+  S = 42;
+}
+
+void main_inner(uint tint_local_index) {
+  if ((tint_local_index == 0u)) {
+    S = 0;
+  }
+  GroupMemoryBarrierWithGroupSync();
+  func();
+}
+
+[numthreads(1, 1, 1)]
+void main(main_inputs inputs) {
+  main_inner(inputs.tint_local_index);
+}
+
diff --git a/test/tint/ptr_ref/store/param/workgroup/i32_in_struct.wgsl.expected.ir.dxc.hlsl b/test/tint/ptr_ref/store/param/workgroup/i32_in_struct.wgsl.expected.ir.dxc.hlsl
index 6b047b4..60e7385 100644
--- a/test/tint/ptr_ref/store/param/workgroup/i32_in_struct.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/ptr_ref/store/param/workgroup/i32_in_struct.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,28 @@
-SKIP: FAILED
+struct str {
+  int i;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:287 internal compiler error: Switch() matched no cases. Type: tint::core::ir::FunctionParam
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct main_inputs {
+  uint tint_local_index : SV_GroupIndex;
+};
+
+
+groupshared str S;
+void func() {
+  S.i = 42;
+}
+
+void main_inner(uint tint_local_index) {
+  if ((tint_local_index == 0u)) {
+    str v = (str)0;
+    S = v;
+  }
+  GroupMemoryBarrierWithGroupSync();
+  func();
+}
+
+[numthreads(1, 1, 1)]
+void main(main_inputs inputs) {
+  main_inner(inputs.tint_local_index);
+}
+
diff --git a/test/tint/ptr_ref/store/param/workgroup/i32_in_struct.wgsl.expected.ir.fxc.hlsl b/test/tint/ptr_ref/store/param/workgroup/i32_in_struct.wgsl.expected.ir.fxc.hlsl
index 6b047b4..60e7385 100644
--- a/test/tint/ptr_ref/store/param/workgroup/i32_in_struct.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/ptr_ref/store/param/workgroup/i32_in_struct.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,28 @@
-SKIP: FAILED
+struct str {
+  int i;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:287 internal compiler error: Switch() matched no cases. Type: tint::core::ir::FunctionParam
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct main_inputs {
+  uint tint_local_index : SV_GroupIndex;
+};
+
+
+groupshared str S;
+void func() {
+  S.i = 42;
+}
+
+void main_inner(uint tint_local_index) {
+  if ((tint_local_index == 0u)) {
+    str v = (str)0;
+    S = v;
+  }
+  GroupMemoryBarrierWithGroupSync();
+  func();
+}
+
+[numthreads(1, 1, 1)]
+void main(main_inputs inputs) {
+  main_inner(inputs.tint_local_index);
+}
+
diff --git a/test/tint/ptr_ref/store/param/workgroup/struct_in_array.wgsl.expected.ir.dxc.hlsl b/test/tint/ptr_ref/store/param/workgroup/struct_in_array.wgsl.expected.ir.dxc.hlsl
index 6b047b4..1d35e6d 100644
--- a/test/tint/ptr_ref/store/param/workgroup/struct_in_array.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/ptr_ref/store/param/workgroup/struct_in_array.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,42 @@
-SKIP: FAILED
+struct str {
+  int i;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:287 internal compiler error: Switch() matched no cases. Type: tint::core::ir::FunctionParam
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct main_inputs {
+  uint tint_local_index : SV_GroupIndex;
+};
+
+
+groupshared str S[4];
+void func(uint pointer_indices[1]) {
+  str v = (str)0;
+  S[pointer_indices[0u]] = v;
+}
+
+void main_inner(uint tint_local_index) {
+  {
+    uint v_1 = 0u;
+    v_1 = tint_local_index;
+    while(true) {
+      uint v_2 = v_1;
+      if ((v_2 >= 4u)) {
+        break;
+      }
+      str v_3 = (str)0;
+      S[v_2] = v_3;
+      {
+        v_1 = (v_2 + 1u);
+      }
+      continue;
+    }
+  }
+  GroupMemoryBarrierWithGroupSync();
+  uint v_4[1] = (uint[1])0;
+  func(v_4);
+}
+
+[numthreads(1, 1, 1)]
+void main(main_inputs inputs) {
+  main_inner(inputs.tint_local_index);
+}
+
diff --git a/test/tint/ptr_ref/store/param/workgroup/struct_in_array.wgsl.expected.ir.fxc.hlsl b/test/tint/ptr_ref/store/param/workgroup/struct_in_array.wgsl.expected.ir.fxc.hlsl
index 6b047b4..1d35e6d 100644
--- a/test/tint/ptr_ref/store/param/workgroup/struct_in_array.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/ptr_ref/store/param/workgroup/struct_in_array.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,42 @@
-SKIP: FAILED
+struct str {
+  int i;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:287 internal compiler error: Switch() matched no cases. Type: tint::core::ir::FunctionParam
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct main_inputs {
+  uint tint_local_index : SV_GroupIndex;
+};
+
+
+groupshared str S[4];
+void func(uint pointer_indices[1]) {
+  str v = (str)0;
+  S[pointer_indices[0u]] = v;
+}
+
+void main_inner(uint tint_local_index) {
+  {
+    uint v_1 = 0u;
+    v_1 = tint_local_index;
+    while(true) {
+      uint v_2 = v_1;
+      if ((v_2 >= 4u)) {
+        break;
+      }
+      str v_3 = (str)0;
+      S[v_2] = v_3;
+      {
+        v_1 = (v_2 + 1u);
+      }
+      continue;
+    }
+  }
+  GroupMemoryBarrierWithGroupSync();
+  uint v_4[1] = (uint[1])0;
+  func(v_4);
+}
+
+[numthreads(1, 1, 1)]
+void main(main_inputs inputs) {
+  main_inner(inputs.tint_local_index);
+}
+
diff --git a/test/tint/ptr_ref/store/param/workgroup/vec2_f32_in_mat2x2.wgsl.expected.ir.dxc.hlsl b/test/tint/ptr_ref/store/param/workgroup/vec2_f32_in_mat2x2.wgsl.expected.ir.dxc.hlsl
index 6b047b4..4a4be2d 100644
--- a/test/tint/ptr_ref/store/param/workgroup/vec2_f32_in_mat2x2.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/ptr_ref/store/param/workgroup/vec2_f32_in_mat2x2.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,24 @@
-SKIP: FAILED
+struct main_inputs {
+  uint tint_local_index : SV_GroupIndex;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:287 internal compiler error: Switch() matched no cases. Type: tint::core::ir::FunctionParam
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+
+groupshared float2x2 S;
+void func(uint pointer_indices[1]) {
+  S[pointer_indices[0u]] = (0.0f).xx;
+}
+
+void main_inner(uint tint_local_index) {
+  if ((tint_local_index == 0u)) {
+    S = float2x2((0.0f).xx, (0.0f).xx);
+  }
+  GroupMemoryBarrierWithGroupSync();
+  uint v[1] = (uint[1])0;
+  func(v);
+}
+
+[numthreads(1, 1, 1)]
+void main(main_inputs inputs) {
+  main_inner(inputs.tint_local_index);
+}
+
diff --git a/test/tint/ptr_ref/store/param/workgroup/vec2_f32_in_mat2x2.wgsl.expected.ir.fxc.hlsl b/test/tint/ptr_ref/store/param/workgroup/vec2_f32_in_mat2x2.wgsl.expected.ir.fxc.hlsl
index 6b047b4..4a4be2d 100644
--- a/test/tint/ptr_ref/store/param/workgroup/vec2_f32_in_mat2x2.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/ptr_ref/store/param/workgroup/vec2_f32_in_mat2x2.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,24 @@
-SKIP: FAILED
+struct main_inputs {
+  uint tint_local_index : SV_GroupIndex;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:287 internal compiler error: Switch() matched no cases. Type: tint::core::ir::FunctionParam
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+
+groupshared float2x2 S;
+void func(uint pointer_indices[1]) {
+  S[pointer_indices[0u]] = (0.0f).xx;
+}
+
+void main_inner(uint tint_local_index) {
+  if ((tint_local_index == 0u)) {
+    S = float2x2((0.0f).xx, (0.0f).xx);
+  }
+  GroupMemoryBarrierWithGroupSync();
+  uint v[1] = (uint[1])0;
+  func(v);
+}
+
+[numthreads(1, 1, 1)]
+void main(main_inputs inputs) {
+  main_inner(inputs.tint_local_index);
+}
+
diff --git a/test/tint/ptr_ref/store/param/workgroup/vec4_f32.wgsl.expected.ir.dxc.hlsl b/test/tint/ptr_ref/store/param/workgroup/vec4_f32.wgsl.expected.ir.dxc.hlsl
index 6b047b4..e2caeb9 100644
--- a/test/tint/ptr_ref/store/param/workgroup/vec4_f32.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/ptr_ref/store/param/workgroup/vec4_f32.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,23 @@
-SKIP: FAILED
+struct main_inputs {
+  uint tint_local_index : SV_GroupIndex;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:287 internal compiler error: Switch() matched no cases. Type: tint::core::ir::FunctionParam
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+
+groupshared float4 S;
+void func() {
+  S = (0.0f).xxxx;
+}
+
+void main_inner(uint tint_local_index) {
+  if ((tint_local_index == 0u)) {
+    S = (0.0f).xxxx;
+  }
+  GroupMemoryBarrierWithGroupSync();
+  func();
+}
+
+[numthreads(1, 1, 1)]
+void main(main_inputs inputs) {
+  main_inner(inputs.tint_local_index);
+}
+
diff --git a/test/tint/ptr_ref/store/param/workgroup/vec4_f32.wgsl.expected.ir.fxc.hlsl b/test/tint/ptr_ref/store/param/workgroup/vec4_f32.wgsl.expected.ir.fxc.hlsl
index 6b047b4..e2caeb9 100644
--- a/test/tint/ptr_ref/store/param/workgroup/vec4_f32.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/ptr_ref/store/param/workgroup/vec4_f32.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,23 @@
-SKIP: FAILED
+struct main_inputs {
+  uint tint_local_index : SV_GroupIndex;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:287 internal compiler error: Switch() matched no cases. Type: tint::core::ir::FunctionParam
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+
+groupshared float4 S;
+void func() {
+  S = (0.0f).xxxx;
+}
+
+void main_inner(uint tint_local_index) {
+  if ((tint_local_index == 0u)) {
+    S = (0.0f).xxxx;
+  }
+  GroupMemoryBarrierWithGroupSync();
+  func();
+}
+
+[numthreads(1, 1, 1)]
+void main(main_inputs inputs) {
+  main_inner(inputs.tint_local_index);
+}
+
diff --git a/test/tint/ptr_ref/store/param/workgroup/vec4_f32_in_mat2x4.wgsl.expected.ir.dxc.hlsl b/test/tint/ptr_ref/store/param/workgroup/vec4_f32_in_mat2x4.wgsl.expected.ir.dxc.hlsl
index 6b047b4..0b7148d 100644
--- a/test/tint/ptr_ref/store/param/workgroup/vec4_f32_in_mat2x4.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/ptr_ref/store/param/workgroup/vec4_f32_in_mat2x4.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,24 @@
-SKIP: FAILED
+struct main_inputs {
+  uint tint_local_index : SV_GroupIndex;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:287 internal compiler error: Switch() matched no cases. Type: tint::core::ir::FunctionParam
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+
+groupshared float2x4 S;
+void func(uint pointer_indices[1]) {
+  S[pointer_indices[0u]] = (0.0f).xxxx;
+}
+
+void main_inner(uint tint_local_index) {
+  if ((tint_local_index == 0u)) {
+    S = float2x4((0.0f).xxxx, (0.0f).xxxx);
+  }
+  GroupMemoryBarrierWithGroupSync();
+  uint v[1] = (uint[1])0;
+  func(v);
+}
+
+[numthreads(1, 1, 1)]
+void main(main_inputs inputs) {
+  main_inner(inputs.tint_local_index);
+}
+
diff --git a/test/tint/ptr_ref/store/param/workgroup/vec4_f32_in_mat2x4.wgsl.expected.ir.fxc.hlsl b/test/tint/ptr_ref/store/param/workgroup/vec4_f32_in_mat2x4.wgsl.expected.ir.fxc.hlsl
index 6b047b4..0b7148d 100644
--- a/test/tint/ptr_ref/store/param/workgroup/vec4_f32_in_mat2x4.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/ptr_ref/store/param/workgroup/vec4_f32_in_mat2x4.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,24 @@
-SKIP: FAILED
+struct main_inputs {
+  uint tint_local_index : SV_GroupIndex;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:287 internal compiler error: Switch() matched no cases. Type: tint::core::ir::FunctionParam
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+
+groupshared float2x4 S;
+void func(uint pointer_indices[1]) {
+  S[pointer_indices[0u]] = (0.0f).xxxx;
+}
+
+void main_inner(uint tint_local_index) {
+  if ((tint_local_index == 0u)) {
+    S = float2x4((0.0f).xxxx, (0.0f).xxxx);
+  }
+  GroupMemoryBarrierWithGroupSync();
+  uint v[1] = (uint[1])0;
+  func(v);
+}
+
+[numthreads(1, 1, 1)]
+void main(main_inputs inputs) {
+  main_inner(inputs.tint_local_index);
+}
+
diff --git a/test/tint/ptr_ref/store/param/workgroup/vec4_f32_in_struct.wgsl.expected.ir.dxc.hlsl b/test/tint/ptr_ref/store/param/workgroup/vec4_f32_in_struct.wgsl.expected.ir.dxc.hlsl
index 6b047b4..61ca3b5 100644
--- a/test/tint/ptr_ref/store/param/workgroup/vec4_f32_in_struct.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/ptr_ref/store/param/workgroup/vec4_f32_in_struct.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,28 @@
-SKIP: FAILED
+struct str {
+  float4 i;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:287 internal compiler error: Switch() matched no cases. Type: tint::core::ir::FunctionParam
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct main_inputs {
+  uint tint_local_index : SV_GroupIndex;
+};
+
+
+groupshared str S;
+void func() {
+  S.i = (0.0f).xxxx;
+}
+
+void main_inner(uint tint_local_index) {
+  if ((tint_local_index == 0u)) {
+    str v = (str)0;
+    S = v;
+  }
+  GroupMemoryBarrierWithGroupSync();
+  func();
+}
+
+[numthreads(1, 1, 1)]
+void main(main_inputs inputs) {
+  main_inner(inputs.tint_local_index);
+}
+
diff --git a/test/tint/ptr_ref/store/param/workgroup/vec4_f32_in_struct.wgsl.expected.ir.fxc.hlsl b/test/tint/ptr_ref/store/param/workgroup/vec4_f32_in_struct.wgsl.expected.ir.fxc.hlsl
index 6b047b4..61ca3b5 100644
--- a/test/tint/ptr_ref/store/param/workgroup/vec4_f32_in_struct.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/ptr_ref/store/param/workgroup/vec4_f32_in_struct.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,28 @@
-SKIP: FAILED
+struct str {
+  float4 i;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:287 internal compiler error: Switch() matched no cases. Type: tint::core::ir::FunctionParam
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct main_inputs {
+  uint tint_local_index : SV_GroupIndex;
+};
+
+
+groupshared str S;
+void func() {
+  S.i = (0.0f).xxxx;
+}
+
+void main_inner(uint tint_local_index) {
+  if ((tint_local_index == 0u)) {
+    str v = (str)0;
+    S = v;
+  }
+  GroupMemoryBarrierWithGroupSync();
+  func();
+}
+
+[numthreads(1, 1, 1)]
+void main(main_inputs inputs) {
+  main_inner(inputs.tint_local_index);
+}
+
diff --git a/test/tint/ptr_sugar/array.wgsl.expected.ir.dxc.hlsl b/test/tint/ptr_sugar/array.wgsl.expected.ir.dxc.hlsl
index 3f437dc..4e1a25f 100644
--- a/test/tint/ptr_sugar/array.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/ptr_sugar/array.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,57 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Access
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+void deref_const() {
+  int a[10] = (int[10])0;
+  int p[10] = a;
+  int b = p[0];
+  p[0] = 42;
+}
+
+void no_deref_const() {
+  int a[10] = (int[10])0;
+  int p[10] = a;
+  int b = p[0];
+  p[0] = 42;
+}
+
+void deref_let() {
+  int a[10] = (int[10])0;
+  int p[10] = a;
+  int i = 0;
+  int b = p[i];
+  p[0] = 42;
+}
+
+void no_deref_let() {
+  int a[10] = (int[10])0;
+  int p[10] = a;
+  int i = 0;
+  int b = p[i];
+  p[0] = 42;
+}
+
+void deref_var() {
+  int a[10] = (int[10])0;
+  int p[10] = a;
+  int i = 0;
+  int b = p[i];
+  p[0] = 42;
+}
+
+void no_deref_var() {
+  int a[10] = (int[10])0;
+  int p[10] = a;
+  int i = 0;
+  int b = p[i];
+  p[0] = 42;
+}
+
+[numthreads(1, 1, 1)]
+void main() {
+  deref_const();
+  no_deref_const();
+  deref_let();
+  no_deref_let();
+  deref_var();
+  no_deref_var();
+}
+
diff --git a/test/tint/ptr_sugar/array.wgsl.expected.ir.fxc.hlsl b/test/tint/ptr_sugar/array.wgsl.expected.ir.fxc.hlsl
index 3f437dc..4e1a25f 100644
--- a/test/tint/ptr_sugar/array.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/ptr_sugar/array.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,57 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Access
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+void deref_const() {
+  int a[10] = (int[10])0;
+  int p[10] = a;
+  int b = p[0];
+  p[0] = 42;
+}
+
+void no_deref_const() {
+  int a[10] = (int[10])0;
+  int p[10] = a;
+  int b = p[0];
+  p[0] = 42;
+}
+
+void deref_let() {
+  int a[10] = (int[10])0;
+  int p[10] = a;
+  int i = 0;
+  int b = p[i];
+  p[0] = 42;
+}
+
+void no_deref_let() {
+  int a[10] = (int[10])0;
+  int p[10] = a;
+  int i = 0;
+  int b = p[i];
+  p[0] = 42;
+}
+
+void deref_var() {
+  int a[10] = (int[10])0;
+  int p[10] = a;
+  int i = 0;
+  int b = p[i];
+  p[0] = 42;
+}
+
+void no_deref_var() {
+  int a[10] = (int[10])0;
+  int p[10] = a;
+  int i = 0;
+  int b = p[i];
+  p[0] = 42;
+}
+
+[numthreads(1, 1, 1)]
+void main() {
+  deref_const();
+  no_deref_const();
+  deref_let();
+  no_deref_let();
+  deref_var();
+  no_deref_var();
+}
+
diff --git a/test/tint/ptr_sugar/builtin_struct.wgsl.expected.ir.dxc.hlsl b/test/tint/ptr_sugar/builtin_struct.wgsl.expected.ir.dxc.hlsl
index 0ba40c6..f015fb4 100644
--- a/test/tint/ptr_sugar/builtin_struct.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/ptr_sugar/builtin_struct.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,47 @@
-SKIP: FAILED
+struct modf_result_f32 {
+  float fract;
+  float whole;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct frexp_result_f32 {
+  float fract;
+  int exp;
+};
+
+
+void deref_modf() {
+  modf_result_f32 a = {0.5f, 1.0f};
+  modf_result_f32 p = a;
+  float fract = p.fract;
+  float whole = p.whole;
+}
+
+void no_deref_modf() {
+  modf_result_f32 a = {0.5f, 1.0f};
+  modf_result_f32 p = a;
+  float fract = p.fract;
+  float whole = p.whole;
+}
+
+void deref_frexp() {
+  frexp_result_f32 a = {0.75f, 1};
+  frexp_result_f32 p = a;
+  float fract = p.fract;
+  int exp = p.exp;
+}
+
+void no_deref_frexp() {
+  frexp_result_f32 a = {0.75f, 1};
+  frexp_result_f32 p = a;
+  float fract = p.fract;
+  int exp = p.exp;
+}
+
+[numthreads(1, 1, 1)]
+void main() {
+  deref_modf();
+  no_deref_modf();
+  deref_frexp();
+  no_deref_frexp();
+}
+
diff --git a/test/tint/ptr_sugar/builtin_struct.wgsl.expected.ir.fxc.hlsl b/test/tint/ptr_sugar/builtin_struct.wgsl.expected.ir.fxc.hlsl
index 0ba40c6..f015fb4 100644
--- a/test/tint/ptr_sugar/builtin_struct.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/ptr_sugar/builtin_struct.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,47 @@
-SKIP: FAILED
+struct modf_result_f32 {
+  float fract;
+  float whole;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct frexp_result_f32 {
+  float fract;
+  int exp;
+};
+
+
+void deref_modf() {
+  modf_result_f32 a = {0.5f, 1.0f};
+  modf_result_f32 p = a;
+  float fract = p.fract;
+  float whole = p.whole;
+}
+
+void no_deref_modf() {
+  modf_result_f32 a = {0.5f, 1.0f};
+  modf_result_f32 p = a;
+  float fract = p.fract;
+  float whole = p.whole;
+}
+
+void deref_frexp() {
+  frexp_result_f32 a = {0.75f, 1};
+  frexp_result_f32 p = a;
+  float fract = p.fract;
+  int exp = p.exp;
+}
+
+void no_deref_frexp() {
+  frexp_result_f32 a = {0.75f, 1};
+  frexp_result_f32 p = a;
+  float fract = p.fract;
+  int exp = p.exp;
+}
+
+[numthreads(1, 1, 1)]
+void main() {
+  deref_modf();
+  no_deref_modf();
+  deref_frexp();
+  no_deref_frexp();
+}
+
diff --git a/test/tint/ptr_sugar/compound_assign_index.wgsl.expected.ir.dxc.hlsl b/test/tint/ptr_sugar/compound_assign_index.wgsl.expected.ir.dxc.hlsl
index c0935cc..860a919 100644
--- a/test/tint/ptr_sugar/compound_assign_index.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/ptr_sugar/compound_assign_index.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,33 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:198 internal compiler error: Switch() matched no cases. Type: tint::core::ir::StoreVectorElement
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+void deref() {
+  int3 a = (0).xxx;
+  int3 p = a;
+  p[0] = (p.x + 42);
+}
+
+void no_deref() {
+  int3 a = (0).xxx;
+  int3 p = a;
+  p[0] = (p.x + 42);
+}
+
+void deref_inc() {
+  int3 a = (0).xxx;
+  int3 p = a;
+  p[0] = (p.x + 1);
+}
+
+void no_deref_inc() {
+  int3 a = (0).xxx;
+  int3 p = a;
+  p[0] = (p.x + 1);
+}
+
+[numthreads(1, 1, 1)]
+void main() {
+  deref();
+  no_deref();
+  deref_inc();
+  no_deref_inc();
+}
+
diff --git a/test/tint/ptr_sugar/compound_assign_index.wgsl.expected.ir.fxc.hlsl b/test/tint/ptr_sugar/compound_assign_index.wgsl.expected.ir.fxc.hlsl
index c0935cc..860a919 100644
--- a/test/tint/ptr_sugar/compound_assign_index.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/ptr_sugar/compound_assign_index.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,33 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:198 internal compiler error: Switch() matched no cases. Type: tint::core::ir::StoreVectorElement
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+void deref() {
+  int3 a = (0).xxx;
+  int3 p = a;
+  p[0] = (p.x + 42);
+}
+
+void no_deref() {
+  int3 a = (0).xxx;
+  int3 p = a;
+  p[0] = (p.x + 42);
+}
+
+void deref_inc() {
+  int3 a = (0).xxx;
+  int3 p = a;
+  p[0] = (p.x + 1);
+}
+
+void no_deref_inc() {
+  int3 a = (0).xxx;
+  int3 p = a;
+  p[0] = (p.x + 1);
+}
+
+[numthreads(1, 1, 1)]
+void main() {
+  deref();
+  no_deref();
+  deref_inc();
+  no_deref_inc();
+}
+
diff --git a/test/tint/ptr_sugar/compound_assign_member.wgsl.expected.ir.dxc.hlsl b/test/tint/ptr_sugar/compound_assign_member.wgsl.expected.ir.dxc.hlsl
index c0935cc..adabda5 100644
--- a/test/tint/ptr_sugar/compound_assign_member.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/ptr_sugar/compound_assign_member.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,19 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:198 internal compiler error: Switch() matched no cases. Type: tint::core::ir::StoreVectorElement
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+void deref() {
+  int3 a = (0).xxx;
+  int3 p = a;
+  p[0u] = (p.x + 42);
+}
+
+void no_deref() {
+  int3 a = (0).xxx;
+  int3 p = a;
+  p[0u] = (p.x + 42);
+}
+
+[numthreads(1, 1, 1)]
+void main() {
+  deref();
+  no_deref();
+}
+
diff --git a/test/tint/ptr_sugar/compound_assign_member.wgsl.expected.ir.fxc.hlsl b/test/tint/ptr_sugar/compound_assign_member.wgsl.expected.ir.fxc.hlsl
index c0935cc..adabda5 100644
--- a/test/tint/ptr_sugar/compound_assign_member.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/ptr_sugar/compound_assign_member.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,19 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:198 internal compiler error: Switch() matched no cases. Type: tint::core::ir::StoreVectorElement
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+void deref() {
+  int3 a = (0).xxx;
+  int3 p = a;
+  p[0u] = (p.x + 42);
+}
+
+void no_deref() {
+  int3 a = (0).xxx;
+  int3 p = a;
+  p[0u] = (p.x + 42);
+}
+
+[numthreads(1, 1, 1)]
+void main() {
+  deref();
+  no_deref();
+}
+
diff --git a/test/tint/ptr_sugar/matrix.wgsl.expected.ir.dxc.hlsl b/test/tint/ptr_sugar/matrix.wgsl.expected.ir.dxc.hlsl
index 3f437dc..b97666d 100644
--- a/test/tint/ptr_sugar/matrix.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/ptr_sugar/matrix.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,21 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Access
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+void deref() {
+  float2x3 a = float2x3((0.0f).xxx, (0.0f).xxx);
+  float2x3 p = a;
+  float3 b = p[0];
+  p[0] = float3(1.0f, 2.0f, 3.0f);
+}
+
+void no_deref() {
+  float2x3 a = float2x3((0.0f).xxx, (0.0f).xxx);
+  float2x3 p = a;
+  float3 b = p[0];
+  p[0] = float3(1.0f, 2.0f, 3.0f);
+}
+
+[numthreads(1, 1, 1)]
+void main() {
+  deref();
+  no_deref();
+}
+
diff --git a/test/tint/ptr_sugar/matrix.wgsl.expected.ir.fxc.hlsl b/test/tint/ptr_sugar/matrix.wgsl.expected.ir.fxc.hlsl
index 3f437dc..b97666d 100644
--- a/test/tint/ptr_sugar/matrix.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/ptr_sugar/matrix.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,21 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Access
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+void deref() {
+  float2x3 a = float2x3((0.0f).xxx, (0.0f).xxx);
+  float2x3 p = a;
+  float3 b = p[0];
+  p[0] = float3(1.0f, 2.0f, 3.0f);
+}
+
+void no_deref() {
+  float2x3 a = float2x3((0.0f).xxx, (0.0f).xxx);
+  float2x3 p = a;
+  float3 b = p[0];
+  p[0] = float3(1.0f, 2.0f, 3.0f);
+}
+
+[numthreads(1, 1, 1)]
+void main() {
+  deref();
+  no_deref();
+}
+
diff --git a/test/tint/ptr_sugar/struct.wgsl.expected.ir.dxc.hlsl b/test/tint/ptr_sugar/struct.wgsl.expected.ir.dxc.hlsl
index 0ba40c6..daded68 100644
--- a/test/tint/ptr_sugar/struct.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/ptr_sugar/struct.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,25 @@
-SKIP: FAILED
+struct S {
+  int x;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+
+void deref() {
+  S a = (S)0;
+  S p = a;
+  int b = p.x;
+  p.x = 42;
+}
+
+void no_deref() {
+  S a = (S)0;
+  S p = a;
+  int b = p.x;
+  p.x = 42;
+}
+
+[numthreads(1, 1, 1)]
+void main() {
+  deref();
+  no_deref();
+}
+
diff --git a/test/tint/ptr_sugar/struct.wgsl.expected.ir.fxc.hlsl b/test/tint/ptr_sugar/struct.wgsl.expected.ir.fxc.hlsl
index 0ba40c6..daded68 100644
--- a/test/tint/ptr_sugar/struct.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/ptr_sugar/struct.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,25 @@
-SKIP: FAILED
+struct S {
+  int x;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+
+void deref() {
+  S a = (S)0;
+  S p = a;
+  int b = p.x;
+  p.x = 42;
+}
+
+void no_deref() {
+  S a = (S)0;
+  S p = a;
+  int b = p.x;
+  p.x = 42;
+}
+
+[numthreads(1, 1, 1)]
+void main() {
+  deref();
+  no_deref();
+}
+
diff --git a/test/tint/ptr_sugar/vector_index.wgsl.expected.ir.dxc.hlsl b/test/tint/ptr_sugar/vector_index.wgsl.expected.ir.dxc.hlsl
index 4a2c666..9ba5f67 100644
--- a/test/tint/ptr_sugar/vector_index.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/ptr_sugar/vector_index.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,57 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::LoadVectorElement
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+void deref_const() {
+  int3 a = (0).xxx;
+  int3 p = a;
+  int b = p.x;
+  p[0] = 42;
+}
+
+void no_deref_const() {
+  int3 a = (0).xxx;
+  int3 p = a;
+  int b = p.x;
+  p[0] = 42;
+}
+
+void deref_let() {
+  int3 a = (0).xxx;
+  int3 p = a;
+  int i = 0;
+  int b = p[i];
+  p[0] = 42;
+}
+
+void no_deref_let() {
+  int3 a = (0).xxx;
+  int3 p = a;
+  int i = 0;
+  int b = p[i];
+  p[0] = 42;
+}
+
+void deref_var() {
+  int3 a = (0).xxx;
+  int3 p = a;
+  int i = 0;
+  int b = p[i];
+  p[0] = 42;
+}
+
+void no_deref_var() {
+  int3 a = (0).xxx;
+  int3 p = a;
+  int i = 0;
+  int b = p[i];
+  p[0] = 42;
+}
+
+[numthreads(1, 1, 1)]
+void main() {
+  deref_const();
+  no_deref_const();
+  deref_let();
+  no_deref_let();
+  deref_var();
+  no_deref_var();
+}
+
diff --git a/test/tint/ptr_sugar/vector_index.wgsl.expected.ir.fxc.hlsl b/test/tint/ptr_sugar/vector_index.wgsl.expected.ir.fxc.hlsl
index 4a2c666..9ba5f67 100644
--- a/test/tint/ptr_sugar/vector_index.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/ptr_sugar/vector_index.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,57 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::LoadVectorElement
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+void deref_const() {
+  int3 a = (0).xxx;
+  int3 p = a;
+  int b = p.x;
+  p[0] = 42;
+}
+
+void no_deref_const() {
+  int3 a = (0).xxx;
+  int3 p = a;
+  int b = p.x;
+  p[0] = 42;
+}
+
+void deref_let() {
+  int3 a = (0).xxx;
+  int3 p = a;
+  int i = 0;
+  int b = p[i];
+  p[0] = 42;
+}
+
+void no_deref_let() {
+  int3 a = (0).xxx;
+  int3 p = a;
+  int i = 0;
+  int b = p[i];
+  p[0] = 42;
+}
+
+void deref_var() {
+  int3 a = (0).xxx;
+  int3 p = a;
+  int i = 0;
+  int b = p[i];
+  p[0] = 42;
+}
+
+void no_deref_var() {
+  int3 a = (0).xxx;
+  int3 p = a;
+  int i = 0;
+  int b = p[i];
+  p[0] = 42;
+}
+
+[numthreads(1, 1, 1)]
+void main() {
+  deref_const();
+  no_deref_const();
+  deref_let();
+  no_deref_let();
+  deref_var();
+  no_deref_var();
+}
+
diff --git a/test/tint/ptr_sugar/vector_member.wgsl.expected.ir.dxc.hlsl b/test/tint/ptr_sugar/vector_member.wgsl.expected.ir.dxc.hlsl
index 4a2c666..7e3b754 100644
--- a/test/tint/ptr_sugar/vector_member.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/ptr_sugar/vector_member.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,21 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::LoadVectorElement
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+void deref() {
+  int3 a = (0).xxx;
+  int3 p = a;
+  int b = p.x;
+  p[0u] = 42;
+}
+
+void no_deref() {
+  int3 a = (0).xxx;
+  int3 p = a;
+  int b = p.x;
+  p[0u] = 42;
+}
+
+[numthreads(1, 1, 1)]
+void main() {
+  deref();
+  no_deref();
+}
+
diff --git a/test/tint/ptr_sugar/vector_member.wgsl.expected.ir.fxc.hlsl b/test/tint/ptr_sugar/vector_member.wgsl.expected.ir.fxc.hlsl
index 4a2c666..7e3b754 100644
--- a/test/tint/ptr_sugar/vector_member.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/ptr_sugar/vector_member.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,21 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::LoadVectorElement
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+void deref() {
+  int3 a = (0).xxx;
+  int3 p = a;
+  int b = p.x;
+  p[0u] = 42;
+}
+
+void no_deref() {
+  int3 a = (0).xxx;
+  int3 p = a;
+  int b = p.x;
+  p[0u] = 42;
+}
+
+[numthreads(1, 1, 1)]
+void main() {
+  deref();
+  no_deref();
+}
+
diff --git a/test/tint/ptr_sugar/vector_swizzle.wgsl.expected.ir.dxc.hlsl b/test/tint/ptr_sugar/vector_swizzle.wgsl.expected.ir.dxc.hlsl
index 787f342..6073933 100644
--- a/test/tint/ptr_sugar/vector_swizzle.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/ptr_sugar/vector_swizzle.wgsl.expected.ir.dxc.hlsl
@@ -1,5 +1,3 @@
-SKIP: FAILED
-
 
 RWByteAddressBuffer buffer : register(u0);
 void deref() {
diff --git a/test/tint/ptr_sugar/vector_swizzle.wgsl.expected.ir.fxc.hlsl b/test/tint/ptr_sugar/vector_swizzle.wgsl.expected.ir.fxc.hlsl
index 787f342..6073933 100644
--- a/test/tint/ptr_sugar/vector_swizzle.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/ptr_sugar/vector_swizzle.wgsl.expected.ir.fxc.hlsl
@@ -1,5 +1,3 @@
-SKIP: FAILED
-
 
 RWByteAddressBuffer buffer : register(u0);
 void deref() {
diff --git a/test/tint/samples/compute_boids.wgsl.expected.ir.dxc.hlsl b/test/tint/samples/compute_boids.wgsl.expected.ir.dxc.hlsl
index cf7df04..efeb530 100644
--- a/test/tint/samples/compute_boids.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/samples/compute_boids.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,142 @@
-SKIP: FAILED
+struct vert_main_outputs {
+  float4 tint_symbol : SV_Position;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::CoreUnary
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vert_main_inputs {
+  float2 a_particlePos : TEXCOORD0;
+  float2 a_particleVel : TEXCOORD1;
+  float2 a_pos : TEXCOORD2;
+};
+
+struct frag_main_outputs {
+  float4 tint_symbol_1 : SV_Target0;
+};
+
+struct comp_main_inputs {
+  uint3 gl_GlobalInvocationID : SV_DispatchThreadID;
+};
+
+
+cbuffer cbuffer_params : register(b0) {
+  uint4 params[2];
+};
+RWByteAddressBuffer particlesA : register(u1);
+RWByteAddressBuffer particlesB : register(u2);
+float4 vert_main_inner(float2 a_particlePos, float2 a_particleVel, float2 a_pos) {
+  float angle = -(atan2(a_particleVel[0u], a_particleVel[1u]));
+  float v = (a_pos[0u] * cos(angle));
+  float v_1 = (v - (a_pos[1u] * sin(angle)));
+  float v_2 = (a_pos[0u] * sin(angle));
+  float2 pos = float2(v_1, (v_2 + (a_pos[1u] * cos(angle))));
+  return float4((pos + a_particlePos), 0.0f, 1.0f);
+}
+
+float4 frag_main_inner() {
+  return (1.0f).xxxx;
+}
+
+void comp_main_inner(uint3 gl_GlobalInvocationID) {
+  uint index = gl_GlobalInvocationID[0u];
+  if ((index >= 5u)) {
+    return;
+  }
+  float2 vPos = asfloat(particlesA.Load2((0u + (uint(index) * 16u))));
+  float2 vVel = asfloat(particlesA.Load2((8u + (uint(index) * 16u))));
+  float2 cMass = (0.0f).xx;
+  float2 cVel = (0.0f).xx;
+  float2 colVel = (0.0f).xx;
+  int cMassCount = 0;
+  int cVelCount = 0;
+  float2 pos = (0.0f).xx;
+  float2 vel = (0.0f).xx;
+  {
+    uint i = 0u;
+    while(true) {
+      if ((i < 5u)) {
+      } else {
+        break;
+      }
+      if ((i == index)) {
+        {
+          i = (i + 1u);
+        }
+        continue;
+      }
+      pos = asfloat(particlesA.Load2((0u + (uint(i) * 16u)))).xy;
+      vel = asfloat(particlesA.Load2((8u + (uint(i) * 16u)))).xy;
+      float v_3 = distance(pos, vPos);
+      if ((v_3 < asfloat(params[0u].y))) {
+        cMass = (cMass + pos);
+        cMassCount = (cMassCount + 1);
+      }
+      float v_4 = distance(pos, vPos);
+      if ((v_4 < asfloat(params[0u].z))) {
+        colVel = (colVel - (pos - vPos));
+      }
+      float v_5 = distance(pos, vPos);
+      if ((v_5 < asfloat(params[0u].w))) {
+        cVel = (cVel + vel);
+        cVelCount = (cVelCount + 1);
+      }
+      {
+        i = (i + 1u);
+      }
+      continue;
+    }
+  }
+  if ((cMassCount > 0)) {
+    float2 v_6 = cMass;
+    float v_7 = float(cMassCount);
+    float2 v_8 = (v_6 / float2(v_7, float(cMassCount)));
+    cMass = (v_8 - vPos);
+  }
+  if ((cVelCount > 0)) {
+    float2 v_9 = cVel;
+    float v_10 = float(cVelCount);
+    cVel = (v_9 / float2(v_10, float(cVelCount)));
+  }
+  float2 v_11 = vVel;
+  float2 v_12 = cMass;
+  float2 v_13 = (v_11 + (v_12 * asfloat(params[1u].x)));
+  float2 v_14 = colVel;
+  float2 v_15 = (v_13 + (v_14 * asfloat(params[1u].y)));
+  float2 v_16 = cVel;
+  vVel = (v_15 + (v_16 * asfloat(params[1u].z)));
+  float2 v_17 = normalize(vVel);
+  vVel = (v_17 * clamp(length(vVel), 0.0f, 0.10000000149011611938f));
+  float2 v_18 = vPos;
+  float2 v_19 = vVel;
+  vPos = (v_18 + (v_19 * asfloat(params[0u].x)));
+  if ((vPos.x < -1.0f)) {
+    vPos[0u] = 1.0f;
+  }
+  if ((vPos.x > 1.0f)) {
+    vPos[0u] = -1.0f;
+  }
+  if ((vPos.y < -1.0f)) {
+    vPos[1u] = 1.0f;
+  }
+  if ((vPos.y > 1.0f)) {
+    vPos[1u] = -1.0f;
+  }
+  uint v_20 = (uint(index) * 16u);
+  particlesB.Store2((0u + v_20), asuint(vPos));
+  uint v_21 = (uint(index) * 16u);
+  particlesB.Store2((8u + v_21), asuint(vVel));
+}
+
+vert_main_outputs vert_main(vert_main_inputs inputs) {
+  vert_main_outputs v_22 = {vert_main_inner(inputs.a_particlePos, inputs.a_particleVel, inputs.a_pos)};
+  return v_22;
+}
+
+frag_main_outputs frag_main() {
+  frag_main_outputs v_23 = {frag_main_inner()};
+  return v_23;
+}
+
+[numthreads(1, 1, 1)]
+void comp_main(comp_main_inputs inputs) {
+  comp_main_inner(inputs.gl_GlobalInvocationID);
+}
+
diff --git a/test/tint/samples/compute_boids.wgsl.expected.ir.fxc.hlsl b/test/tint/samples/compute_boids.wgsl.expected.ir.fxc.hlsl
index cf7df04..efeb530 100644
--- a/test/tint/samples/compute_boids.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/samples/compute_boids.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,142 @@
-SKIP: FAILED
+struct vert_main_outputs {
+  float4 tint_symbol : SV_Position;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::CoreUnary
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vert_main_inputs {
+  float2 a_particlePos : TEXCOORD0;
+  float2 a_particleVel : TEXCOORD1;
+  float2 a_pos : TEXCOORD2;
+};
+
+struct frag_main_outputs {
+  float4 tint_symbol_1 : SV_Target0;
+};
+
+struct comp_main_inputs {
+  uint3 gl_GlobalInvocationID : SV_DispatchThreadID;
+};
+
+
+cbuffer cbuffer_params : register(b0) {
+  uint4 params[2];
+};
+RWByteAddressBuffer particlesA : register(u1);
+RWByteAddressBuffer particlesB : register(u2);
+float4 vert_main_inner(float2 a_particlePos, float2 a_particleVel, float2 a_pos) {
+  float angle = -(atan2(a_particleVel[0u], a_particleVel[1u]));
+  float v = (a_pos[0u] * cos(angle));
+  float v_1 = (v - (a_pos[1u] * sin(angle)));
+  float v_2 = (a_pos[0u] * sin(angle));
+  float2 pos = float2(v_1, (v_2 + (a_pos[1u] * cos(angle))));
+  return float4((pos + a_particlePos), 0.0f, 1.0f);
+}
+
+float4 frag_main_inner() {
+  return (1.0f).xxxx;
+}
+
+void comp_main_inner(uint3 gl_GlobalInvocationID) {
+  uint index = gl_GlobalInvocationID[0u];
+  if ((index >= 5u)) {
+    return;
+  }
+  float2 vPos = asfloat(particlesA.Load2((0u + (uint(index) * 16u))));
+  float2 vVel = asfloat(particlesA.Load2((8u + (uint(index) * 16u))));
+  float2 cMass = (0.0f).xx;
+  float2 cVel = (0.0f).xx;
+  float2 colVel = (0.0f).xx;
+  int cMassCount = 0;
+  int cVelCount = 0;
+  float2 pos = (0.0f).xx;
+  float2 vel = (0.0f).xx;
+  {
+    uint i = 0u;
+    while(true) {
+      if ((i < 5u)) {
+      } else {
+        break;
+      }
+      if ((i == index)) {
+        {
+          i = (i + 1u);
+        }
+        continue;
+      }
+      pos = asfloat(particlesA.Load2((0u + (uint(i) * 16u)))).xy;
+      vel = asfloat(particlesA.Load2((8u + (uint(i) * 16u)))).xy;
+      float v_3 = distance(pos, vPos);
+      if ((v_3 < asfloat(params[0u].y))) {
+        cMass = (cMass + pos);
+        cMassCount = (cMassCount + 1);
+      }
+      float v_4 = distance(pos, vPos);
+      if ((v_4 < asfloat(params[0u].z))) {
+        colVel = (colVel - (pos - vPos));
+      }
+      float v_5 = distance(pos, vPos);
+      if ((v_5 < asfloat(params[0u].w))) {
+        cVel = (cVel + vel);
+        cVelCount = (cVelCount + 1);
+      }
+      {
+        i = (i + 1u);
+      }
+      continue;
+    }
+  }
+  if ((cMassCount > 0)) {
+    float2 v_6 = cMass;
+    float v_7 = float(cMassCount);
+    float2 v_8 = (v_6 / float2(v_7, float(cMassCount)));
+    cMass = (v_8 - vPos);
+  }
+  if ((cVelCount > 0)) {
+    float2 v_9 = cVel;
+    float v_10 = float(cVelCount);
+    cVel = (v_9 / float2(v_10, float(cVelCount)));
+  }
+  float2 v_11 = vVel;
+  float2 v_12 = cMass;
+  float2 v_13 = (v_11 + (v_12 * asfloat(params[1u].x)));
+  float2 v_14 = colVel;
+  float2 v_15 = (v_13 + (v_14 * asfloat(params[1u].y)));
+  float2 v_16 = cVel;
+  vVel = (v_15 + (v_16 * asfloat(params[1u].z)));
+  float2 v_17 = normalize(vVel);
+  vVel = (v_17 * clamp(length(vVel), 0.0f, 0.10000000149011611938f));
+  float2 v_18 = vPos;
+  float2 v_19 = vVel;
+  vPos = (v_18 + (v_19 * asfloat(params[0u].x)));
+  if ((vPos.x < -1.0f)) {
+    vPos[0u] = 1.0f;
+  }
+  if ((vPos.x > 1.0f)) {
+    vPos[0u] = -1.0f;
+  }
+  if ((vPos.y < -1.0f)) {
+    vPos[1u] = 1.0f;
+  }
+  if ((vPos.y > 1.0f)) {
+    vPos[1u] = -1.0f;
+  }
+  uint v_20 = (uint(index) * 16u);
+  particlesB.Store2((0u + v_20), asuint(vPos));
+  uint v_21 = (uint(index) * 16u);
+  particlesB.Store2((8u + v_21), asuint(vVel));
+}
+
+vert_main_outputs vert_main(vert_main_inputs inputs) {
+  vert_main_outputs v_22 = {vert_main_inner(inputs.a_particlePos, inputs.a_particleVel, inputs.a_pos)};
+  return v_22;
+}
+
+frag_main_outputs frag_main() {
+  frag_main_outputs v_23 = {frag_main_inner()};
+  return v_23;
+}
+
+[numthreads(1, 1, 1)]
+void comp_main(comp_main_inputs inputs) {
+  comp_main_inner(inputs.gl_GlobalInvocationID);
+}
+
diff --git a/test/tint/samples/cube.wgsl.expected.ir.dxc.hlsl b/test/tint/samples/cube.wgsl.expected.ir.dxc.hlsl
index 0ba40c6..8a866c9 100644
--- a/test/tint/samples/cube.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/samples/cube.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,65 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 vtxFragColor;
+  float4 Position;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct VertexInput {
+  float4 cur_position;
+  float4 color;
+};
+
+struct vtx_main_outputs {
+  float4 VertexOutput_vtxFragColor : TEXCOORD0;
+  float4 VertexOutput_Position : SV_Position;
+};
+
+struct vtx_main_inputs {
+  float4 VertexInput_cur_position : TEXCOORD0;
+  float4 VertexInput_color : TEXCOORD1;
+};
+
+struct frag_main_outputs {
+  float4 tint_symbol : SV_Target0;
+};
+
+struct frag_main_inputs {
+  float4 fragColor : TEXCOORD0;
+};
+
+
+cbuffer cbuffer_uniforms : register(b0) {
+  uint4 uniforms[4];
+};
+float4x4 v(uint start_byte_offset) {
+  float4 v_1 = asfloat(uniforms[(start_byte_offset / 16u)]);
+  float4 v_2 = asfloat(uniforms[((16u + start_byte_offset) / 16u)]);
+  float4 v_3 = asfloat(uniforms[((32u + start_byte_offset) / 16u)]);
+  return float4x4(v_1, v_2, v_3, asfloat(uniforms[((48u + start_byte_offset) / 16u)]));
+}
+
+VertexOutput vtx_main_inner(VertexInput input) {
+  VertexOutput output = (VertexOutput)0;
+  output.Position = mul(input.cur_position, v(0u));
+  output.vtxFragColor = input.color;
+  VertexOutput v_4 = output;
+  return v_4;
+}
+
+float4 frag_main_inner(float4 fragColor) {
+  return fragColor;
+}
+
+vtx_main_outputs vtx_main(vtx_main_inputs inputs) {
+  VertexInput v_5 = {inputs.VertexInput_cur_position, inputs.VertexInput_color};
+  VertexOutput v_6 = vtx_main_inner(v_5);
+  VertexOutput v_7 = v_6;
+  VertexOutput v_8 = v_6;
+  vtx_main_outputs v_9 = {v_7.vtxFragColor, v_8.Position};
+  return v_9;
+}
+
+frag_main_outputs frag_main(frag_main_inputs inputs) {
+  frag_main_outputs v_10 = {frag_main_inner(inputs.fragColor)};
+  return v_10;
+}
+
diff --git a/test/tint/samples/cube.wgsl.expected.ir.fxc.hlsl b/test/tint/samples/cube.wgsl.expected.ir.fxc.hlsl
index 0ba40c6..8a866c9 100644
--- a/test/tint/samples/cube.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/samples/cube.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,65 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 vtxFragColor;
+  float4 Position;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct VertexInput {
+  float4 cur_position;
+  float4 color;
+};
+
+struct vtx_main_outputs {
+  float4 VertexOutput_vtxFragColor : TEXCOORD0;
+  float4 VertexOutput_Position : SV_Position;
+};
+
+struct vtx_main_inputs {
+  float4 VertexInput_cur_position : TEXCOORD0;
+  float4 VertexInput_color : TEXCOORD1;
+};
+
+struct frag_main_outputs {
+  float4 tint_symbol : SV_Target0;
+};
+
+struct frag_main_inputs {
+  float4 fragColor : TEXCOORD0;
+};
+
+
+cbuffer cbuffer_uniforms : register(b0) {
+  uint4 uniforms[4];
+};
+float4x4 v(uint start_byte_offset) {
+  float4 v_1 = asfloat(uniforms[(start_byte_offset / 16u)]);
+  float4 v_2 = asfloat(uniforms[((16u + start_byte_offset) / 16u)]);
+  float4 v_3 = asfloat(uniforms[((32u + start_byte_offset) / 16u)]);
+  return float4x4(v_1, v_2, v_3, asfloat(uniforms[((48u + start_byte_offset) / 16u)]));
+}
+
+VertexOutput vtx_main_inner(VertexInput input) {
+  VertexOutput output = (VertexOutput)0;
+  output.Position = mul(input.cur_position, v(0u));
+  output.vtxFragColor = input.color;
+  VertexOutput v_4 = output;
+  return v_4;
+}
+
+float4 frag_main_inner(float4 fragColor) {
+  return fragColor;
+}
+
+vtx_main_outputs vtx_main(vtx_main_inputs inputs) {
+  VertexInput v_5 = {inputs.VertexInput_cur_position, inputs.VertexInput_color};
+  VertexOutput v_6 = vtx_main_inner(v_5);
+  VertexOutput v_7 = v_6;
+  VertexOutput v_8 = v_6;
+  vtx_main_outputs v_9 = {v_7.vtxFragColor, v_8.Position};
+  return v_9;
+}
+
+frag_main_outputs frag_main(frag_main_inputs inputs) {
+  frag_main_outputs v_10 = {frag_main_inner(inputs.fragColor)};
+  return v_10;
+}
+
diff --git a/test/tint/samples/function.wgsl.expected.ir.dxc.hlsl b/test/tint/samples/function.wgsl.expected.ir.dxc.hlsl
index b95c361..cbccf0f 100644
--- a/test/tint/samples/function.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/samples/function.wgsl.expected.ir.dxc.hlsl
@@ -1,3 +1,4 @@
+
 float main() {
   return 0.40000000596046447754f;
 }
diff --git a/test/tint/samples/function.wgsl.expected.ir.fxc.hlsl b/test/tint/samples/function.wgsl.expected.ir.fxc.hlsl
index b95c361..cbccf0f 100644
--- a/test/tint/samples/function.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/samples/function.wgsl.expected.ir.fxc.hlsl
@@ -1,3 +1,4 @@
+
 float main() {
   return 0.40000000596046447754f;
 }
diff --git a/test/tint/samples/simple.wgsl.expected.ir.dxc.hlsl b/test/tint/samples/simple.wgsl.expected.ir.dxc.hlsl
index 149db55..e0f743a 100644
--- a/test/tint/samples/simple.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/samples/simple.wgsl.expected.ir.dxc.hlsl
@@ -1,16 +1,19 @@
-SKIP: FAILED
+struct main_outputs {
+  float4 tint_symbol : SV_Target0;
+};
+
 
 void bar() {
 }
 
-float4 main() {
+float4 main_inner() {
   float2 a = (0.0f).xx;
   bar();
   return float4(0.40000000596046447754f, 0.40000000596046447754f, 0.80000001192092895508f, 1.0f);
 }
 
-DXC validation failure:
-hlsl.hlsl:4:1: error: Semantic must be defined for all outputs of an entry function or patch constant function
-float4 main() {
-^
+main_outputs main() {
+  main_outputs v = {main_inner()};
+  return v;
+}
 
diff --git a/test/tint/samples/simple.wgsl.expected.ir.fxc.hlsl b/test/tint/samples/simple.wgsl.expected.ir.fxc.hlsl
index e979455..e0f743a 100644
--- a/test/tint/samples/simple.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/samples/simple.wgsl.expected.ir.fxc.hlsl
@@ -1,11 +1,19 @@
-SKIP: FAILED
+struct main_outputs {
+  float4 tint_symbol : SV_Target0;
+};
+
 
 void bar() {
 }
 
-float4 main() {
+float4 main_inner() {
   float2 a = (0.0f).xx;
   bar();
   return float4(0.40000000596046447754f, 0.40000000596046447754f, 0.80000001192092895508f, 1.0f);
 }
 
+main_outputs main() {
+  main_outputs v = {main_inner()};
+  return v;
+}
+
diff --git a/test/tint/samples/simple_vertex.spvasm.expected.ir.dxc.hlsl b/test/tint/samples/simple_vertex.spvasm.expected.ir.dxc.hlsl
index c6e1d96..9944838 100644
--- a/test/tint/samples/simple_vertex.spvasm.expected.ir.dxc.hlsl
+++ b/test/tint/samples/simple_vertex.spvasm.expected.ir.dxc.hlsl
@@ -1,9 +1,26 @@
-SKIP: FAILED
+struct main_out {
+  float4 gl_Position;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Construct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct main_outputs {
+  float4 main_out_gl_Position : SV_Position;
+};
+
+
+static float4 gl_Position = (0.0f).xxxx;
+void main_1() {
+  gl_Position = (0.0f).xxxx;
+}
+
+main_out main_inner() {
+  main_1();
+  main_out v = {gl_Position};
+  return v;
+}
+
+main_outputs main() {
+  main_out v_1 = main_inner();
+  main_outputs v_2 = {v_1.gl_Position};
+  return v_2;
+}
+
diff --git a/test/tint/samples/simple_vertex.spvasm.expected.ir.fxc.hlsl b/test/tint/samples/simple_vertex.spvasm.expected.ir.fxc.hlsl
index c6e1d96..9944838 100644
--- a/test/tint/samples/simple_vertex.spvasm.expected.ir.fxc.hlsl
+++ b/test/tint/samples/simple_vertex.spvasm.expected.ir.fxc.hlsl
@@ -1,9 +1,26 @@
-SKIP: FAILED
+struct main_out {
+  float4 gl_Position;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Construct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct main_outputs {
+  float4 main_out_gl_Position : SV_Position;
+};
+
+
+static float4 gl_Position = (0.0f).xxxx;
+void main_1() {
+  gl_Position = (0.0f).xxxx;
+}
+
+main_out main_inner() {
+  main_1();
+  main_out v = {gl_Position};
+  return v;
+}
+
+main_outputs main() {
+  main_out v_1 = main_inner();
+  main_outputs v_2 = {v_1.gl_Position};
+  return v_2;
+}
+
diff --git a/test/tint/samples/triangle.wgsl.expected.ir.dxc.hlsl b/test/tint/samples/triangle.wgsl.expected.ir.dxc.hlsl
index c6e1d96..cd0e6b2 100644
--- a/test/tint/samples/triangle.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/samples/triangle.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,32 @@
-SKIP: FAILED
+struct vtx_main_outputs {
+  float4 tint_symbol : SV_Position;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Construct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vtx_main_inputs {
+  uint VertexIndex : SV_VertexID;
+};
+
+struct frag_main_outputs {
+  float4 tint_symbol_1 : SV_Target0;
+};
+
+
+float4 vtx_main_inner(uint VertexIndex) {
+  float2 v[3] = {float2(0.0f, 0.5f), (-0.5f).xx, float2(0.5f, -0.5f)};
+  return float4(v[VertexIndex], 0.0f, 1.0f);
+}
+
+float4 frag_main_inner() {
+  return float4(1.0f, 0.0f, 0.0f, 1.0f);
+}
+
+vtx_main_outputs vtx_main(vtx_main_inputs inputs) {
+  vtx_main_outputs v_1 = {vtx_main_inner(inputs.VertexIndex)};
+  return v_1;
+}
+
+frag_main_outputs frag_main() {
+  frag_main_outputs v_2 = {frag_main_inner()};
+  return v_2;
+}
+
diff --git a/test/tint/samples/triangle.wgsl.expected.ir.fxc.hlsl b/test/tint/samples/triangle.wgsl.expected.ir.fxc.hlsl
index c6e1d96..cd0e6b2 100644
--- a/test/tint/samples/triangle.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/samples/triangle.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,32 @@
-SKIP: FAILED
+struct vtx_main_outputs {
+  float4 tint_symbol : SV_Position;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Construct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vtx_main_inputs {
+  uint VertexIndex : SV_VertexID;
+};
+
+struct frag_main_outputs {
+  float4 tint_symbol_1 : SV_Target0;
+};
+
+
+float4 vtx_main_inner(uint VertexIndex) {
+  float2 v[3] = {float2(0.0f, 0.5f), (-0.5f).xx, float2(0.5f, -0.5f)};
+  return float4(v[VertexIndex], 0.0f, 1.0f);
+}
+
+float4 frag_main_inner() {
+  return float4(1.0f, 0.0f, 0.0f, 1.0f);
+}
+
+vtx_main_outputs vtx_main(vtx_main_inputs inputs) {
+  vtx_main_outputs v_1 = {vtx_main_inner(inputs.VertexIndex)};
+  return v_1;
+}
+
+frag_main_outputs frag_main() {
+  frag_main_outputs v_2 = {frag_main_inner()};
+  return v_2;
+}
+
diff --git a/test/tint/shadowing/alias/const.wgsl.expected.ir.dxc.hlsl b/test/tint/shadowing/alias/const.wgsl.expected.ir.dxc.hlsl
index 4d16a5a..4d81aa0 100644
--- a/test/tint/shadowing/alias/const.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/shadowing/alias/const.wgsl.expected.ir.dxc.hlsl
@@ -1,3 +1,4 @@
+
 void f() {
 }
 
diff --git a/test/tint/shadowing/alias/const.wgsl.expected.ir.fxc.hlsl b/test/tint/shadowing/alias/const.wgsl.expected.ir.fxc.hlsl
index 4d16a5a..4d81aa0 100644
--- a/test/tint/shadowing/alias/const.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/shadowing/alias/const.wgsl.expected.ir.fxc.hlsl
@@ -1,3 +1,4 @@
+
 void f() {
 }
 
diff --git a/test/tint/shadowing/alias/let.wgsl.expected.ir.dxc.hlsl b/test/tint/shadowing/alias/let.wgsl.expected.ir.dxc.hlsl
index ac129bb..14e4e13 100644
--- a/test/tint/shadowing/alias/let.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/shadowing/alias/let.wgsl.expected.ir.dxc.hlsl
@@ -1,27 +1,12 @@
-SKIP: FAILED
 
 void f() {
   int a = 0;
   int b = a;
-  int a = 0;
-  int b = a;
+  int a_1 = 0;
+  int b_1 = a_1;
 }
 
 [numthreads(1, 1, 1)]
 void unused_entry_point() {
 }
 
-DXC validation failure:
-hlsl.hlsl:4:7: error: redefinition of 'a'
-  int a = 0;
-      ^
-hlsl.hlsl:2:7: note: previous definition is here
-  int a = 0;
-      ^
-hlsl.hlsl:5:7: error: redefinition of 'b'
-  int b = a;
-      ^
-hlsl.hlsl:3:7: note: previous definition is here
-  int b = a;
-      ^
-
diff --git a/test/tint/shadowing/alias/let.wgsl.expected.ir.fxc.hlsl b/test/tint/shadowing/alias/let.wgsl.expected.ir.fxc.hlsl
index ac5c6f3..14e4e13 100644
--- a/test/tint/shadowing/alias/let.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/shadowing/alias/let.wgsl.expected.ir.fxc.hlsl
@@ -1,8 +1,9 @@
+
 void f() {
   int a = 0;
   int b = a;
-  int a = 0;
-  int b = a;
+  int a_1 = 0;
+  int b_1 = a_1;
 }
 
 [numthreads(1, 1, 1)]
diff --git a/test/tint/shadowing/alias/param.wgsl.expected.ir.dxc.hlsl b/test/tint/shadowing/alias/param.wgsl.expected.ir.dxc.hlsl
index 6b047b4..ed0ba1f 100644
--- a/test/tint/shadowing/alias/param.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/shadowing/alias/param.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,9 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:287 internal compiler error: Switch() matched no cases. Type: tint::core::ir::FunctionParam
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+void f(int a) {
+  int b = a;
+}
+
+[numthreads(1, 1, 1)]
+void unused_entry_point() {
+}
+
diff --git a/test/tint/shadowing/alias/param.wgsl.expected.ir.fxc.hlsl b/test/tint/shadowing/alias/param.wgsl.expected.ir.fxc.hlsl
index 6b047b4..ed0ba1f 100644
--- a/test/tint/shadowing/alias/param.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/shadowing/alias/param.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,9 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:287 internal compiler error: Switch() matched no cases. Type: tint::core::ir::FunctionParam
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+void f(int a) {
+  int b = a;
+}
+
+[numthreads(1, 1, 1)]
+void unused_entry_point() {
+}
+
diff --git a/test/tint/shadowing/alias/var.wgsl.expected.ir.dxc.hlsl b/test/tint/shadowing/alias/var.wgsl.expected.ir.dxc.hlsl
index ac129bb..14e4e13 100644
--- a/test/tint/shadowing/alias/var.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/shadowing/alias/var.wgsl.expected.ir.dxc.hlsl
@@ -1,27 +1,12 @@
-SKIP: FAILED
 
 void f() {
   int a = 0;
   int b = a;
-  int a = 0;
-  int b = a;
+  int a_1 = 0;
+  int b_1 = a_1;
 }
 
 [numthreads(1, 1, 1)]
 void unused_entry_point() {
 }
 
-DXC validation failure:
-hlsl.hlsl:4:7: error: redefinition of 'a'
-  int a = 0;
-      ^
-hlsl.hlsl:2:7: note: previous definition is here
-  int a = 0;
-      ^
-hlsl.hlsl:5:7: error: redefinition of 'b'
-  int b = a;
-      ^
-hlsl.hlsl:3:7: note: previous definition is here
-  int b = a;
-      ^
-
diff --git a/test/tint/shadowing/alias/var.wgsl.expected.ir.fxc.hlsl b/test/tint/shadowing/alias/var.wgsl.expected.ir.fxc.hlsl
index 448afa4..14e4e13 100644
--- a/test/tint/shadowing/alias/var.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/shadowing/alias/var.wgsl.expected.ir.fxc.hlsl
@@ -1,10 +1,9 @@
-SKIP: FAILED
 
 void f() {
   int a = 0;
   int b = a;
-  int a = 0;
-  int b = a;
+  int a_1 = 0;
+  int b_1 = a_1;
 }
 
 [numthreads(1, 1, 1)]
diff --git a/test/tint/shadowing/function/let.wgsl.expected.ir.dxc.hlsl b/test/tint/shadowing/function/let.wgsl.expected.ir.dxc.hlsl
index 8bc2f62..e0473b3 100644
--- a/test/tint/shadowing/function/let.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/shadowing/function/let.wgsl.expected.ir.dxc.hlsl
@@ -1,27 +1,12 @@
-SKIP: FAILED
 
 void a() {
-  int a = 1;
-  int b = a;
-  int a = 1;
-  int b = a;
+  int a_2 = 1;
+  int b = a_2;
+  int a_1 = 1;
+  int b_1 = a_1;
 }
 
 [numthreads(1, 1, 1)]
 void unused_entry_point() {
 }
 
-DXC validation failure:
-hlsl.hlsl:4:7: error: redefinition of 'a'
-  int a = 1;
-      ^
-hlsl.hlsl:2:7: note: previous definition is here
-  int a = 1;
-      ^
-hlsl.hlsl:5:7: error: redefinition of 'b'
-  int b = a;
-      ^
-hlsl.hlsl:3:7: note: previous definition is here
-  int b = a;
-      ^
-
diff --git a/test/tint/shadowing/function/let.wgsl.expected.ir.fxc.hlsl b/test/tint/shadowing/function/let.wgsl.expected.ir.fxc.hlsl
index a94be2b..e0473b3 100644
--- a/test/tint/shadowing/function/let.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/shadowing/function/let.wgsl.expected.ir.fxc.hlsl
@@ -1,10 +1,9 @@
-SKIP: FAILED
 
 void a() {
-  int a = 1;
-  int b = a;
-  int a = 1;
-  int b = a;
+  int a_2 = 1;
+  int b = a_2;
+  int a_1 = 1;
+  int b_1 = a_1;
 }
 
 [numthreads(1, 1, 1)]
diff --git a/test/tint/shadowing/function/param.wgsl.expected.ir.dxc.hlsl b/test/tint/shadowing/function/param.wgsl.expected.ir.dxc.hlsl
index 6b047b4..b7a4468 100644
--- a/test/tint/shadowing/function/param.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/shadowing/function/param.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,9 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:287 internal compiler error: Switch() matched no cases. Type: tint::core::ir::FunctionParam
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+void a(int a_1) {
+  int b = a_1;
+}
+
+[numthreads(1, 1, 1)]
+void unused_entry_point() {
+}
+
diff --git a/test/tint/shadowing/function/param.wgsl.expected.ir.fxc.hlsl b/test/tint/shadowing/function/param.wgsl.expected.ir.fxc.hlsl
index 6b047b4..b7a4468 100644
--- a/test/tint/shadowing/function/param.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/shadowing/function/param.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,9 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:287 internal compiler error: Switch() matched no cases. Type: tint::core::ir::FunctionParam
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+void a(int a_1) {
+  int b = a_1;
+}
+
+[numthreads(1, 1, 1)]
+void unused_entry_point() {
+}
+
diff --git a/test/tint/shadowing/function/var.wgsl.expected.ir.dxc.hlsl b/test/tint/shadowing/function/var.wgsl.expected.ir.dxc.hlsl
index 0ba40c6..70abcde 100644
--- a/test/tint/shadowing/function/var.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/shadowing/function/var.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,16 @@
-SKIP: FAILED
+struct a {
+  int a;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+
+void f() {
+  a a_1 = (a)0;
+  a b = a_1;
+  a a_2 = (a)0;
+  a b_1 = a_2;
+}
+
+[numthreads(1, 1, 1)]
+void unused_entry_point() {
+}
+
diff --git a/test/tint/shadowing/function/var.wgsl.expected.ir.fxc.hlsl b/test/tint/shadowing/function/var.wgsl.expected.ir.fxc.hlsl
index 0ba40c6..70abcde 100644
--- a/test/tint/shadowing/function/var.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/shadowing/function/var.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,16 @@
-SKIP: FAILED
+struct a {
+  int a;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+
+void f() {
+  a a_1 = (a)0;
+  a b = a_1;
+  a a_2 = (a)0;
+  a b_1 = a_2;
+}
+
+[numthreads(1, 1, 1)]
+void unused_entry_point() {
+}
+
diff --git a/test/tint/shadowing/loop.wgsl.expected.ir.dxc.hlsl b/test/tint/shadowing/loop.wgsl.expected.ir.dxc.hlsl
index adbb0c1..c1dc41d 100644
--- a/test/tint/shadowing/loop.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/shadowing/loop.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,19 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:198 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Loop
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWByteAddressBuffer output : register(u0);
+[numthreads(1, 1, 1)]
+void foo() {
+  int i = 0;
+  {
+    while(true) {
+      int x = asint(output.Load((0u + (uint(i) * 4u))));
+      {
+        int x = asint(output.Load((0u + (uint(x) * 4u))));
+        i = (i + x);
+        if ((i > 10)) { break; }
+      }
+      continue;
+    }
+  }
+  output.Store(0u, asuint(i));
+}
+
diff --git a/test/tint/shadowing/loop.wgsl.expected.ir.fxc.hlsl b/test/tint/shadowing/loop.wgsl.expected.ir.fxc.hlsl
index adbb0c1..c1a25d8 100644
--- a/test/tint/shadowing/loop.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/shadowing/loop.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,25 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:198 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Loop
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+
+RWByteAddressBuffer output : register(u0);
+[numthreads(1, 1, 1)]
+void foo() {
+  int i = 0;
+  {
+    while(true) {
+      int x = asint(output.Load((0u + (uint(i) * 4u))));
+      {
+        int x = asint(output.Load((0u + (uint(x) * 4u))));
+        i = (i + x);
+        if ((i > 10)) { break; }
+      }
+      continue;
+    }
+  }
+  output.Store(0u, asuint(i));
+}
+
+FXC validation failure:
+c:\src\dawn\Shader@0x000002226517F6E0(10,42-53): warning X4000: use of potentially uninitialized variable (x)
+c:\src\dawn\Shader@0x000002226517F6E0(10,42-53): error X4575: reading uninitialized value
+
diff --git a/test/tint/shadowing/param/function.wgsl.expected.ir.dxc.hlsl b/test/tint/shadowing/param/function.wgsl.expected.ir.dxc.hlsl
index 6b047b4..e42b49d 100644
--- a/test/tint/shadowing/param/function.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/shadowing/param/function.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,10 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:287 internal compiler error: Switch() matched no cases. Type: tint::core::ir::FunctionParam
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+void a(int a_2) {
+  int a_1 = a_2;
+  int b = a_1;
+}
+
+[numthreads(1, 1, 1)]
+void unused_entry_point() {
+}
+
diff --git a/test/tint/shadowing/param/function.wgsl.expected.ir.fxc.hlsl b/test/tint/shadowing/param/function.wgsl.expected.ir.fxc.hlsl
index 6b047b4..e42b49d 100644
--- a/test/tint/shadowing/param/function.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/shadowing/param/function.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,10 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:287 internal compiler error: Switch() matched no cases. Type: tint::core::ir::FunctionParam
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+void a(int a_2) {
+  int a_1 = a_2;
+  int b = a_1;
+}
+
+[numthreads(1, 1, 1)]
+void unused_entry_point() {
+}
+
diff --git a/test/tint/shadowing/param/let.wgsl.expected.ir.dxc.hlsl b/test/tint/shadowing/param/let.wgsl.expected.ir.dxc.hlsl
index 6b047b4..af6edea 100644
--- a/test/tint/shadowing/param/let.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/shadowing/param/let.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,10 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:287 internal compiler error: Switch() matched no cases. Type: tint::core::ir::FunctionParam
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+void f(int a) {
+  int a_1 = a;
+  int b = a_1;
+}
+
+[numthreads(1, 1, 1)]
+void unused_entry_point() {
+}
+
diff --git a/test/tint/shadowing/param/let.wgsl.expected.ir.fxc.hlsl b/test/tint/shadowing/param/let.wgsl.expected.ir.fxc.hlsl
index 6b047b4..af6edea 100644
--- a/test/tint/shadowing/param/let.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/shadowing/param/let.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,10 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:287 internal compiler error: Switch() matched no cases. Type: tint::core::ir::FunctionParam
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+void f(int a) {
+  int a_1 = a;
+  int b = a_1;
+}
+
+[numthreads(1, 1, 1)]
+void unused_entry_point() {
+}
+
diff --git a/test/tint/shadowing/param/var.wgsl.expected.ir.dxc.hlsl b/test/tint/shadowing/param/var.wgsl.expected.ir.dxc.hlsl
index 6b047b4..af6edea 100644
--- a/test/tint/shadowing/param/var.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/shadowing/param/var.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,10 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:287 internal compiler error: Switch() matched no cases. Type: tint::core::ir::FunctionParam
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+void f(int a) {
+  int a_1 = a;
+  int b = a_1;
+}
+
+[numthreads(1, 1, 1)]
+void unused_entry_point() {
+}
+
diff --git a/test/tint/shadowing/param/var.wgsl.expected.ir.fxc.hlsl b/test/tint/shadowing/param/var.wgsl.expected.ir.fxc.hlsl
index 6b047b4..af6edea 100644
--- a/test/tint/shadowing/param/var.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/shadowing/param/var.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,10 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:287 internal compiler error: Switch() matched no cases. Type: tint::core::ir::FunctionParam
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+void f(int a) {
+  int a_1 = a;
+  int b = a_1;
+}
+
+[numthreads(1, 1, 1)]
+void unused_entry_point() {
+}
+
diff --git a/test/tint/shadowing/short_names/const.wgsl.expected.ir.dxc.hlsl b/test/tint/shadowing/short_names/const.wgsl.expected.ir.dxc.hlsl
index 4d16a5a..4d81aa0 100644
--- a/test/tint/shadowing/short_names/const.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/shadowing/short_names/const.wgsl.expected.ir.dxc.hlsl
@@ -1,3 +1,4 @@
+
 void f() {
 }
 
diff --git a/test/tint/shadowing/short_names/const.wgsl.expected.ir.fxc.hlsl b/test/tint/shadowing/short_names/const.wgsl.expected.ir.fxc.hlsl
index 4d16a5a..4d81aa0 100644
--- a/test/tint/shadowing/short_names/const.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/shadowing/short_names/const.wgsl.expected.ir.fxc.hlsl
@@ -1,3 +1,4 @@
+
 void f() {
 }
 
diff --git a/test/tint/shadowing/short_names/let.wgsl.expected.ir.dxc.hlsl b/test/tint/shadowing/short_names/let.wgsl.expected.ir.dxc.hlsl
index d656f8e..5600784 100644
--- a/test/tint/shadowing/short_names/let.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/shadowing/short_names/let.wgsl.expected.ir.dxc.hlsl
@@ -1,3 +1,4 @@
+
 void f() {
   int vec3f = 1;
   int b = vec3f;
diff --git a/test/tint/shadowing/short_names/let.wgsl.expected.ir.fxc.hlsl b/test/tint/shadowing/short_names/let.wgsl.expected.ir.fxc.hlsl
index d656f8e..5600784 100644
--- a/test/tint/shadowing/short_names/let.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/shadowing/short_names/let.wgsl.expected.ir.fxc.hlsl
@@ -1,3 +1,4 @@
+
 void f() {
   int vec3f = 1;
   int b = vec3f;
diff --git a/test/tint/shadowing/short_names/param.wgsl.expected.ir.dxc.hlsl b/test/tint/shadowing/short_names/param.wgsl.expected.ir.dxc.hlsl
index 6b047b4..8740e77 100644
--- a/test/tint/shadowing/short_names/param.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/shadowing/short_names/param.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,9 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:287 internal compiler error: Switch() matched no cases. Type: tint::core::ir::FunctionParam
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+void f(float3 vec3f) {
+  float3 b = vec3f;
+}
+
+[numthreads(1, 1, 1)]
+void unused_entry_point() {
+}
+
diff --git a/test/tint/shadowing/short_names/param.wgsl.expected.ir.fxc.hlsl b/test/tint/shadowing/short_names/param.wgsl.expected.ir.fxc.hlsl
index 6b047b4..8740e77 100644
--- a/test/tint/shadowing/short_names/param.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/shadowing/short_names/param.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,9 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:287 internal compiler error: Switch() matched no cases. Type: tint::core::ir::FunctionParam
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+void f(float3 vec3f) {
+  float3 b = vec3f;
+}
+
+[numthreads(1, 1, 1)]
+void unused_entry_point() {
+}
+
diff --git a/test/tint/shadowing/short_names/renamer/function.wgsl.expected.ir.dxc.hlsl b/test/tint/shadowing/short_names/renamer/function.wgsl.expected.ir.dxc.hlsl
index 48e23f4..f13d339 100644
--- a/test/tint/shadowing/short_names/renamer/function.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/shadowing/short_names/renamer/function.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,30 @@
-SKIP: FAILED
+struct main_outputs {
+  float4 tint_symbol : SV_Position;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Convert
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct main_inputs {
+  uint VertexIndex : SV_VertexID;
+};
+
+
+int vec4f() {
+  return 0;
+}
+
+float vec2f(int i) {
+  return float(i);
+}
+
+bool vec2i(float f) {
+  return bool(f);
+}
+
+float4 main_inner(uint VertexIndex) {
+  return ((vec2i(vec2f(vec4f()))) ? ((1.0f).xxxx) : ((0.0f).xxxx));
+}
+
+main_outputs main(main_inputs inputs) {
+  main_outputs v = {main_inner(inputs.VertexIndex)};
+  return v;
+}
+
diff --git a/test/tint/shadowing/short_names/renamer/function.wgsl.expected.ir.fxc.hlsl b/test/tint/shadowing/short_names/renamer/function.wgsl.expected.ir.fxc.hlsl
index 48e23f4..f13d339 100644
--- a/test/tint/shadowing/short_names/renamer/function.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/shadowing/short_names/renamer/function.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,30 @@
-SKIP: FAILED
+struct main_outputs {
+  float4 tint_symbol : SV_Position;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Convert
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct main_inputs {
+  uint VertexIndex : SV_VertexID;
+};
+
+
+int vec4f() {
+  return 0;
+}
+
+float vec2f(int i) {
+  return float(i);
+}
+
+bool vec2i(float f) {
+  return bool(f);
+}
+
+float4 main_inner(uint VertexIndex) {
+  return ((vec2i(vec2f(vec4f()))) ? ((1.0f).xxxx) : ((0.0f).xxxx));
+}
+
+main_outputs main(main_inputs inputs) {
+  main_outputs v = {main_inner(inputs.VertexIndex)};
+  return v;
+}
+
diff --git a/test/tint/shadowing/short_names/renamer/renamer.wgsl.expected.ir.dxc.hlsl b/test/tint/shadowing/short_names/renamer/renamer.wgsl.expected.ir.dxc.hlsl
index 54fc7a0..690f09c 100644
--- a/test/tint/shadowing/short_names/renamer/renamer.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/shadowing/short_names/renamer/renamer.wgsl.expected.ir.dxc.hlsl
@@ -1,11 +1,18 @@
-SKIP: FAILED
+struct main_outputs {
+  float4 tint_symbol : SV_Position;
+};
 
-float4 main() {
+struct main_inputs {
+  uint VertexIndex : SV_VertexID;
+};
+
+
+float4 main_inner(uint VertexIndex) {
   return float4(0.0f, 0.0f, 0.0f, 1.0f);
 }
 
-DXC validation failure:
-hlsl.hlsl:1:1: error: Semantic must be defined for all outputs of an entry function or patch constant function
-float4 main() {
-^
+main_outputs main(main_inputs inputs) {
+  main_outputs v = {main_inner(inputs.VertexIndex)};
+  return v;
+}
 
diff --git a/test/tint/shadowing/short_names/renamer/renamer.wgsl.expected.ir.fxc.hlsl b/test/tint/shadowing/short_names/renamer/renamer.wgsl.expected.ir.fxc.hlsl
index d4824c6..690f09c 100644
--- a/test/tint/shadowing/short_names/renamer/renamer.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/shadowing/short_names/renamer/renamer.wgsl.expected.ir.fxc.hlsl
@@ -1,4 +1,18 @@
-float4 main() {
+struct main_outputs {
+  float4 tint_symbol : SV_Position;
+};
+
+struct main_inputs {
+  uint VertexIndex : SV_VertexID;
+};
+
+
+float4 main_inner(uint VertexIndex) {
   return float4(0.0f, 0.0f, 0.0f, 1.0f);
 }
 
+main_outputs main(main_inputs inputs) {
+  main_outputs v = {main_inner(inputs.VertexIndex)};
+  return v;
+}
+
diff --git a/test/tint/shadowing/short_names/renamer/type.wgsl.expected.ir.dxc.hlsl b/test/tint/shadowing/short_names/renamer/type.wgsl.expected.ir.dxc.hlsl
index 0ba40c6..51a9dd4 100644
--- a/test/tint/shadowing/short_names/renamer/type.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/shadowing/short_names/renamer/type.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,26 @@
-SKIP: FAILED
+struct vec4f {
+  int i;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct main_outputs {
+  float4 tint_symbol : SV_Position;
+};
+
+struct main_inputs {
+  uint VertexIndex : SV_VertexID;
+};
+
+
+float4 main_inner(uint VertexIndex) {
+  vec4f v = {1};
+  vec4f s = v;
+  float f = float(s.i);
+  bool b = bool(f);
+  return ((b) ? ((1.0f).xxxx) : ((0.0f).xxxx));
+}
+
+main_outputs main(main_inputs inputs) {
+  main_outputs v_1 = {main_inner(inputs.VertexIndex)};
+  return v_1;
+}
+
diff --git a/test/tint/shadowing/short_names/renamer/type.wgsl.expected.ir.fxc.hlsl b/test/tint/shadowing/short_names/renamer/type.wgsl.expected.ir.fxc.hlsl
index 0ba40c6..51a9dd4 100644
--- a/test/tint/shadowing/short_names/renamer/type.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/shadowing/short_names/renamer/type.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,26 @@
-SKIP: FAILED
+struct vec4f {
+  int i;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct main_outputs {
+  float4 tint_symbol : SV_Position;
+};
+
+struct main_inputs {
+  uint VertexIndex : SV_VertexID;
+};
+
+
+float4 main_inner(uint VertexIndex) {
+  vec4f v = {1};
+  vec4f s = v;
+  float f = float(s.i);
+  bool b = bool(f);
+  return ((b) ? ((1.0f).xxxx) : ((0.0f).xxxx));
+}
+
+main_outputs main(main_inputs inputs) {
+  main_outputs v_1 = {main_inner(inputs.VertexIndex)};
+  return v_1;
+}
+
diff --git a/test/tint/shadowing/short_names/var.wgsl.expected.ir.dxc.hlsl b/test/tint/shadowing/short_names/var.wgsl.expected.ir.dxc.hlsl
index d656f8e..5600784 100644
--- a/test/tint/shadowing/short_names/var.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/shadowing/short_names/var.wgsl.expected.ir.dxc.hlsl
@@ -1,3 +1,4 @@
+
 void f() {
   int vec3f = 1;
   int b = vec3f;
diff --git a/test/tint/shadowing/short_names/var.wgsl.expected.ir.fxc.hlsl b/test/tint/shadowing/short_names/var.wgsl.expected.ir.fxc.hlsl
index d966cc5..5600784 100644
--- a/test/tint/shadowing/short_names/var.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/shadowing/short_names/var.wgsl.expected.ir.fxc.hlsl
@@ -1,4 +1,3 @@
-SKIP: FAILED
 
 void f() {
   int vec3f = 1;
diff --git a/test/tint/shadowing/struct/let.wgsl.expected.ir.dxc.hlsl b/test/tint/shadowing/struct/let.wgsl.expected.ir.dxc.hlsl
index 0ba40c6..70abcde 100644
--- a/test/tint/shadowing/struct/let.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/shadowing/struct/let.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,16 @@
-SKIP: FAILED
+struct a {
+  int a;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+
+void f() {
+  a a_1 = (a)0;
+  a b = a_1;
+  a a_2 = (a)0;
+  a b_1 = a_2;
+}
+
+[numthreads(1, 1, 1)]
+void unused_entry_point() {
+}
+
diff --git a/test/tint/shadowing/struct/let.wgsl.expected.ir.fxc.hlsl b/test/tint/shadowing/struct/let.wgsl.expected.ir.fxc.hlsl
index 0ba40c6..70abcde 100644
--- a/test/tint/shadowing/struct/let.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/shadowing/struct/let.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,16 @@
-SKIP: FAILED
+struct a {
+  int a;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+
+void f() {
+  a a_1 = (a)0;
+  a b = a_1;
+  a a_2 = (a)0;
+  a b_1 = a_2;
+}
+
+[numthreads(1, 1, 1)]
+void unused_entry_point() {
+}
+
diff --git a/test/tint/shadowing/struct/param.wgsl.expected.ir.dxc.hlsl b/test/tint/shadowing/struct/param.wgsl.expected.ir.dxc.hlsl
index 6b047b4..7b23bda 100644
--- a/test/tint/shadowing/struct/param.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/shadowing/struct/param.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,13 @@
-SKIP: FAILED
+struct a {
+  int a;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:287 internal compiler error: Switch() matched no cases. Type: tint::core::ir::FunctionParam
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+
+void f(a a_1) {
+  a b = a_1;
+}
+
+[numthreads(1, 1, 1)]
+void unused_entry_point() {
+}
+
diff --git a/test/tint/shadowing/struct/param.wgsl.expected.ir.fxc.hlsl b/test/tint/shadowing/struct/param.wgsl.expected.ir.fxc.hlsl
index 6b047b4..7b23bda 100644
--- a/test/tint/shadowing/struct/param.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/shadowing/struct/param.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,13 @@
-SKIP: FAILED
+struct a {
+  int a;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:287 internal compiler error: Switch() matched no cases. Type: tint::core::ir::FunctionParam
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+
+void f(a a_1) {
+  a b = a_1;
+}
+
+[numthreads(1, 1, 1)]
+void unused_entry_point() {
+}
+
diff --git a/test/tint/shadowing/struct/var.wgsl.expected.ir.dxc.hlsl b/test/tint/shadowing/struct/var.wgsl.expected.ir.dxc.hlsl
index 0ba40c6..70abcde 100644
--- a/test/tint/shadowing/struct/var.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/shadowing/struct/var.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,16 @@
-SKIP: FAILED
+struct a {
+  int a;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+
+void f() {
+  a a_1 = (a)0;
+  a b = a_1;
+  a a_2 = (a)0;
+  a b_1 = a_2;
+}
+
+[numthreads(1, 1, 1)]
+void unused_entry_point() {
+}
+
diff --git a/test/tint/shadowing/struct/var.wgsl.expected.ir.fxc.hlsl b/test/tint/shadowing/struct/var.wgsl.expected.ir.fxc.hlsl
index 0ba40c6..70abcde 100644
--- a/test/tint/shadowing/struct/var.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/shadowing/struct/var.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,16 @@
-SKIP: FAILED
+struct a {
+  int a;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+
+void f() {
+  a a_1 = (a)0;
+  a b = a_1;
+  a a_2 = (a)0;
+  a b_1 = a_2;
+}
+
+[numthreads(1, 1, 1)]
+void unused_entry_point() {
+}
+
diff --git a/test/tint/statements/assign/indexed_assign_to_array_in_struct/in_for_loop_body.wgsl.expected.ir.dxc.hlsl b/test/tint/statements/assign/indexed_assign_to_array_in_struct/in_for_loop_body.wgsl.expected.ir.dxc.hlsl
index 0ba40c6..d22380c 100644
--- a/test/tint/statements/assign/indexed_assign_to_array_in_struct/in_for_loop_body.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/statements/assign/indexed_assign_to_array_in_struct/in_for_loop_body.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,33 @@
-SKIP: FAILED
+struct InnerS {
+  int v;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct OuterS {
+  InnerS a1[8];
+};
+
+
+cbuffer cbuffer_uniforms : register(b4, space1) {
+  uint4 uniforms[1];
+};
+[numthreads(1, 1, 1)]
+void main() {
+  InnerS v = (InnerS)0;
+  OuterS s1 = (OuterS)0;
+  {
+    int i = 0;
+    while(true) {
+      if ((i < 4)) {
+      } else {
+        break;
+      }
+      InnerS v_1 = v;
+      s1.a1[uniforms[0u].x] = v_1;
+      {
+        i = (i + 1);
+      }
+      continue;
+    }
+  }
+}
+
diff --git a/test/tint/statements/assign/indexed_assign_to_array_in_struct/in_for_loop_body.wgsl.expected.ir.fxc.hlsl b/test/tint/statements/assign/indexed_assign_to_array_in_struct/in_for_loop_body.wgsl.expected.ir.fxc.hlsl
index 0ba40c6..1d6ad28 100644
--- a/test/tint/statements/assign/indexed_assign_to_array_in_struct/in_for_loop_body.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/statements/assign/indexed_assign_to_array_in_struct/in_for_loop_body.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,39 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct InnerS {
+  int v;
+};
+
+struct OuterS {
+  InnerS a1[8];
+};
+
+
+cbuffer cbuffer_uniforms : register(b4, space1) {
+  uint4 uniforms[1];
+};
+[numthreads(1, 1, 1)]
+void main() {
+  InnerS v = (InnerS)0;
+  OuterS s1 = (OuterS)0;
+  {
+    int i = 0;
+    while(true) {
+      if ((i < 4)) {
+      } else {
+        break;
+      }
+      InnerS v_1 = v;
+      s1.a1[uniforms[0u].x] = v_1;
+      {
+        i = (i + 1);
+      }
+      continue;
+    }
+  }
+}
+
+FXC validation failure:
+c:\src\dawn\Shader@0x000001DB602A4100(25,7-27): error X3500: array reference cannot be used as an l-value; not natively addressable
+c:\src\dawn\Shader@0x000001DB602A4100(19,5-15): error X3511: forced to unroll loop, but unrolling failed.
+
diff --git a/test/tint/statements/assign/indexed_assign_to_array_in_struct/in_for_loop_continuing.wgsl.expected.ir.dxc.hlsl b/test/tint/statements/assign/indexed_assign_to_array_in_struct/in_for_loop_continuing.wgsl.expected.ir.dxc.hlsl
index 0ba40c6..28f0977 100644
--- a/test/tint/statements/assign/indexed_assign_to_array_in_struct/in_for_loop_continuing.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/statements/assign/indexed_assign_to_array_in_struct/in_for_loop_continuing.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,33 @@
-SKIP: FAILED
+struct InnerS {
+  int v;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct OuterS {
+  InnerS a1[8];
+};
+
+
+cbuffer cbuffer_uniforms : register(b4, space1) {
+  uint4 uniforms[1];
+};
+[numthreads(1, 1, 1)]
+void main() {
+  InnerS v = (InnerS)0;
+  OuterS s1 = (OuterS)0;
+  {
+    int i = 0;
+    while(true) {
+      if ((i < 4)) {
+      } else {
+        break;
+      }
+      i = (i + 1);
+      {
+        InnerS v_1 = v;
+        s1.a1[uniforms[0u].x] = v_1;
+      }
+      continue;
+    }
+  }
+}
+
diff --git a/test/tint/statements/assign/indexed_assign_to_array_in_struct/in_for_loop_continuing.wgsl.expected.ir.fxc.hlsl b/test/tint/statements/assign/indexed_assign_to_array_in_struct/in_for_loop_continuing.wgsl.expected.ir.fxc.hlsl
index 0ba40c6..7535da7 100644
--- a/test/tint/statements/assign/indexed_assign_to_array_in_struct/in_for_loop_continuing.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/statements/assign/indexed_assign_to_array_in_struct/in_for_loop_continuing.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,39 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct InnerS {
+  int v;
+};
+
+struct OuterS {
+  InnerS a1[8];
+};
+
+
+cbuffer cbuffer_uniforms : register(b4, space1) {
+  uint4 uniforms[1];
+};
+[numthreads(1, 1, 1)]
+void main() {
+  InnerS v = (InnerS)0;
+  OuterS s1 = (OuterS)0;
+  {
+    int i = 0;
+    while(true) {
+      if ((i < 4)) {
+      } else {
+        break;
+      }
+      i = (i + 1);
+      {
+        InnerS v_1 = v;
+        s1.a1[uniforms[0u].x] = v_1;
+      }
+      continue;
+    }
+  }
+}
+
+FXC validation failure:
+c:\src\dawn\Shader@0x0000019CCCC53960(27,9-29): error X3500: array reference cannot be used as an l-value; not natively addressable
+c:\src\dawn\Shader@0x0000019CCCC53960(19,5-15): error X3511: forced to unroll loop, but unrolling failed.
+
diff --git a/test/tint/statements/assign/indexed_assign_to_array_in_struct/in_for_loop_init.wgsl.expected.ir.dxc.hlsl b/test/tint/statements/assign/indexed_assign_to_array_in_struct/in_for_loop_init.wgsl.expected.ir.dxc.hlsl
index 0ba40c6..f065317 100644
--- a/test/tint/statements/assign/indexed_assign_to_array_in_struct/in_for_loop_init.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/statements/assign/indexed_assign_to_array_in_struct/in_for_loop_init.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,33 @@
-SKIP: FAILED
+struct InnerS {
+  int v;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct OuterS {
+  InnerS a1[8];
+};
+
+
+cbuffer cbuffer_uniforms : register(b4, space1) {
+  uint4 uniforms[1];
+};
+[numthreads(1, 1, 1)]
+void main() {
+  InnerS v = (InnerS)0;
+  OuterS s1 = (OuterS)0;
+  int i = 0;
+  {
+    InnerS v_1 = v;
+    s1.a1[uniforms[0u].x] = v_1;
+    while(true) {
+      if ((i < 4)) {
+      } else {
+        break;
+      }
+      {
+        i = (i + 1);
+      }
+      continue;
+    }
+  }
+}
+
diff --git a/test/tint/statements/assign/indexed_assign_to_array_in_struct/in_for_loop_init.wgsl.expected.ir.fxc.hlsl b/test/tint/statements/assign/indexed_assign_to_array_in_struct/in_for_loop_init.wgsl.expected.ir.fxc.hlsl
index 0ba40c6..f453101 100644
--- a/test/tint/statements/assign/indexed_assign_to_array_in_struct/in_for_loop_init.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/statements/assign/indexed_assign_to_array_in_struct/in_for_loop_init.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,38 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct InnerS {
+  int v;
+};
+
+struct OuterS {
+  InnerS a1[8];
+};
+
+
+cbuffer cbuffer_uniforms : register(b4, space1) {
+  uint4 uniforms[1];
+};
+[numthreads(1, 1, 1)]
+void main() {
+  InnerS v = (InnerS)0;
+  OuterS s1 = (OuterS)0;
+  int i = 0;
+  {
+    InnerS v_1 = v;
+    s1.a1[uniforms[0u].x] = v_1;
+    while(true) {
+      if ((i < 4)) {
+      } else {
+        break;
+      }
+      {
+        i = (i + 1);
+      }
+      continue;
+    }
+  }
+}
+
+FXC validation failure:
+c:\src\dawn\Shader@0x000001D42A8BF3B0(20,5-25): error X3500: array reference cannot be used as an l-value; not natively addressable
+
diff --git a/test/tint/statements/assign/indexed_assign_to_array_in_struct/indexing_with_side_effect_func.wgsl.expected.ir.dxc.hlsl b/test/tint/statements/assign/indexed_assign_to_array_in_struct/indexing_with_side_effect_func.wgsl.expected.ir.dxc.hlsl
index 0ba40c6..11c9231 100644
--- a/test/tint/statements/assign/indexed_assign_to_array_in_struct/indexing_with_side_effect_func.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/statements/assign/indexed_assign_to_array_in_struct/indexing_with_side_effect_func.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,31 @@
-SKIP: FAILED
+struct InnerS {
+  int v;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct S1 {
+  InnerS a2[8];
+};
+
+struct OuterS {
+  S1 a1[8];
+};
+
+
+static uint nextIndex = 0u;
+cbuffer cbuffer_uniforms : register(b4, space1) {
+  uint4 uniforms[1];
+};
+uint getNextIndex() {
+  nextIndex = (nextIndex + 1u);
+  return nextIndex;
+}
+
+[numthreads(1, 1, 1)]
+void main() {
+  InnerS v = (InnerS)0;
+  OuterS s = (OuterS)0;
+  uint v_1 = getNextIndex();
+  InnerS v_2 = v;
+  s.a1[v_1].a2[uniforms[0u].y] = v_2;
+}
+
diff --git a/test/tint/statements/assign/indexed_assign_to_array_in_struct/indexing_with_side_effect_func.wgsl.expected.ir.fxc.hlsl b/test/tint/statements/assign/indexed_assign_to_array_in_struct/indexing_with_side_effect_func.wgsl.expected.ir.fxc.hlsl
index 0ba40c6..2901010 100644
--- a/test/tint/statements/assign/indexed_assign_to_array_in_struct/indexing_with_side_effect_func.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/statements/assign/indexed_assign_to_array_in_struct/indexing_with_side_effect_func.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,36 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct InnerS {
+  int v;
+};
+
+struct S1 {
+  InnerS a2[8];
+};
+
+struct OuterS {
+  S1 a1[8];
+};
+
+
+static uint nextIndex = 0u;
+cbuffer cbuffer_uniforms : register(b4, space1) {
+  uint4 uniforms[1];
+};
+uint getNextIndex() {
+  nextIndex = (nextIndex + 1u);
+  return nextIndex;
+}
+
+[numthreads(1, 1, 1)]
+void main() {
+  InnerS v = (InnerS)0;
+  OuterS s = (OuterS)0;
+  uint v_1 = getNextIndex();
+  InnerS v_2 = v;
+  s.a1[v_1].a2[uniforms[0u].y] = v_2;
+}
+
+FXC validation failure:
+c:\src\dawn\Shader@0x00000103ABF04400(29,3-30): error X3500: array reference cannot be used as an l-value; not natively addressable
+
diff --git a/test/tint/statements/assign/indexed_assign_to_array_in_struct/struct_array.wgsl.expected.ir.dxc.hlsl b/test/tint/statements/assign/indexed_assign_to_array_in_struct/struct_array.wgsl.expected.ir.dxc.hlsl
index 0ba40c6..07174a1 100644
--- a/test/tint/statements/assign/indexed_assign_to_array_in_struct/struct_array.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/statements/assign/indexed_assign_to_array_in_struct/struct_array.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,20 @@
-SKIP: FAILED
+struct InnerS {
+  int v;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct OuterS {
+  InnerS a1[8];
+};
+
+
+cbuffer cbuffer_uniforms : register(b4, space1) {
+  uint4 uniforms[1];
+};
+[numthreads(1, 1, 1)]
+void main() {
+  InnerS v = (InnerS)0;
+  OuterS s1 = (OuterS)0;
+  InnerS v_1 = v;
+  s1.a1[uniforms[0u].x] = v_1;
+}
+
diff --git a/test/tint/statements/assign/indexed_assign_to_array_in_struct/struct_array.wgsl.expected.ir.fxc.hlsl b/test/tint/statements/assign/indexed_assign_to_array_in_struct/struct_array.wgsl.expected.ir.fxc.hlsl
index 0ba40c6..1d07deb 100644
--- a/test/tint/statements/assign/indexed_assign_to_array_in_struct/struct_array.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/statements/assign/indexed_assign_to_array_in_struct/struct_array.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,25 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct InnerS {
+  int v;
+};
+
+struct OuterS {
+  InnerS a1[8];
+};
+
+
+cbuffer cbuffer_uniforms : register(b4, space1) {
+  uint4 uniforms[1];
+};
+[numthreads(1, 1, 1)]
+void main() {
+  InnerS v = (InnerS)0;
+  OuterS s1 = (OuterS)0;
+  InnerS v_1 = v;
+  s1.a1[uniforms[0u].x] = v_1;
+}
+
+FXC validation failure:
+c:\src\dawn\Shader@0x0000020F87B54D20(18,3-23): error X3500: array reference cannot be used as an l-value; not natively addressable
+
diff --git a/test/tint/statements/assign/indexed_assign_to_array_in_struct/struct_array_array.wgsl.expected.ir.dxc.hlsl b/test/tint/statements/assign/indexed_assign_to_array_in_struct/struct_array_array.wgsl.expected.ir.dxc.hlsl
index 0ba40c6..f4d3670 100644
--- a/test/tint/statements/assign/indexed_assign_to_array_in_struct/struct_array_array.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/statements/assign/indexed_assign_to_array_in_struct/struct_array_array.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,20 @@
-SKIP: FAILED
+struct InnerS {
+  int v;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct OuterS {
+  InnerS a1[8][8];
+};
+
+
+cbuffer cbuffer_uniforms : register(b4, space1) {
+  uint4 uniforms[1];
+};
+[numthreads(1, 1, 1)]
+void main() {
+  InnerS v = (InnerS)0;
+  OuterS s1 = (OuterS)0;
+  InnerS v_1 = v;
+  s1.a1[uniforms[0u].x][uniforms[0u].y] = v_1;
+}
+
diff --git a/test/tint/statements/assign/indexed_assign_to_array_in_struct/struct_array_array.wgsl.expected.ir.fxc.hlsl b/test/tint/statements/assign/indexed_assign_to_array_in_struct/struct_array_array.wgsl.expected.ir.fxc.hlsl
index 0ba40c6..9a72955 100644
--- a/test/tint/statements/assign/indexed_assign_to_array_in_struct/struct_array_array.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/statements/assign/indexed_assign_to_array_in_struct/struct_array_array.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,25 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct InnerS {
+  int v;
+};
+
+struct OuterS {
+  InnerS a1[8][8];
+};
+
+
+cbuffer cbuffer_uniforms : register(b4, space1) {
+  uint4 uniforms[1];
+};
+[numthreads(1, 1, 1)]
+void main() {
+  InnerS v = (InnerS)0;
+  OuterS s1 = (OuterS)0;
+  InnerS v_1 = v;
+  s1.a1[uniforms[0u].x][uniforms[0u].y] = v_1;
+}
+
+FXC validation failure:
+c:\src\dawn\Shader@0x000001C1D0B948D0(18,3-23): error X3500: array reference cannot be used as an l-value; not natively addressable
+
diff --git a/test/tint/statements/assign/indexed_assign_to_array_in_struct/struct_array_struct.wgsl.expected.ir.dxc.hlsl b/test/tint/statements/assign/indexed_assign_to_array_in_struct/struct_array_struct.wgsl.expected.ir.dxc.hlsl
index 0ba40c6..e51ac33 100644
--- a/test/tint/statements/assign/indexed_assign_to_array_in_struct/struct_array_struct.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/statements/assign/indexed_assign_to_array_in_struct/struct_array_struct.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,24 @@
-SKIP: FAILED
+struct InnerS {
+  int v;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct S1 {
+  InnerS s2;
+};
+
+struct OuterS {
+  S1 a1[8];
+};
+
+
+cbuffer cbuffer_uniforms : register(b4, space1) {
+  uint4 uniforms[1];
+};
+[numthreads(1, 1, 1)]
+void main() {
+  InnerS v = (InnerS)0;
+  OuterS s1 = (OuterS)0;
+  InnerS v_1 = v;
+  s1.a1[uniforms[0u].x].s2 = v_1;
+}
+
diff --git a/test/tint/statements/assign/indexed_assign_to_array_in_struct/struct_array_struct.wgsl.expected.ir.fxc.hlsl b/test/tint/statements/assign/indexed_assign_to_array_in_struct/struct_array_struct.wgsl.expected.ir.fxc.hlsl
index 0ba40c6..d5169fe 100644
--- a/test/tint/statements/assign/indexed_assign_to_array_in_struct/struct_array_struct.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/statements/assign/indexed_assign_to_array_in_struct/struct_array_struct.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,29 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct InnerS {
+  int v;
+};
+
+struct S1 {
+  InnerS s2;
+};
+
+struct OuterS {
+  S1 a1[8];
+};
+
+
+cbuffer cbuffer_uniforms : register(b4, space1) {
+  uint4 uniforms[1];
+};
+[numthreads(1, 1, 1)]
+void main() {
+  InnerS v = (InnerS)0;
+  OuterS s1 = (OuterS)0;
+  InnerS v_1 = v;
+  s1.a1[uniforms[0u].x].s2 = v_1;
+}
+
+FXC validation failure:
+c:\src\dawn\Shader@0x00000119B40F6BC0(22,3-23): error X3500: array reference cannot be used as an l-value; not natively addressable
+
diff --git a/test/tint/statements/assign/indexed_assign_to_array_in_struct/struct_array_struct_array.wgsl.expected.ir.dxc.hlsl b/test/tint/statements/assign/indexed_assign_to_array_in_struct/struct_array_struct_array.wgsl.expected.ir.dxc.hlsl
index 0ba40c6..1461abb 100644
--- a/test/tint/statements/assign/indexed_assign_to_array_in_struct/struct_array_struct_array.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/statements/assign/indexed_assign_to_array_in_struct/struct_array_struct_array.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,24 @@
-SKIP: FAILED
+struct InnerS {
+  int v;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct S1 {
+  InnerS a2[8];
+};
+
+struct OuterS {
+  S1 a1[8];
+};
+
+
+cbuffer cbuffer_uniforms : register(b4, space1) {
+  uint4 uniforms[1];
+};
+[numthreads(1, 1, 1)]
+void main() {
+  InnerS v = (InnerS)0;
+  OuterS s = (OuterS)0;
+  InnerS v_1 = v;
+  s.a1[uniforms[0u].x].a2[uniforms[0u].y] = v_1;
+}
+
diff --git a/test/tint/statements/assign/indexed_assign_to_array_in_struct/struct_array_struct_array.wgsl.expected.ir.fxc.hlsl b/test/tint/statements/assign/indexed_assign_to_array_in_struct/struct_array_struct_array.wgsl.expected.ir.fxc.hlsl
index 0ba40c6..b6ba286 100644
--- a/test/tint/statements/assign/indexed_assign_to_array_in_struct/struct_array_struct_array.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/statements/assign/indexed_assign_to_array_in_struct/struct_array_struct_array.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,29 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct InnerS {
+  int v;
+};
+
+struct S1 {
+  InnerS a2[8];
+};
+
+struct OuterS {
+  S1 a1[8];
+};
+
+
+cbuffer cbuffer_uniforms : register(b4, space1) {
+  uint4 uniforms[1];
+};
+[numthreads(1, 1, 1)]
+void main() {
+  InnerS v = (InnerS)0;
+  OuterS s = (OuterS)0;
+  InnerS v_1 = v;
+  s.a1[uniforms[0u].x].a2[uniforms[0u].y] = v_1;
+}
+
+FXC validation failure:
+c:\src\dawn\Shader@0x000001D723F144A0(22,3-22): error X3500: array reference cannot be used as an l-value; not natively addressable
+
diff --git a/test/tint/statements/assign/indexed_assign_to_array_in_struct/struct_dynamic_array.wgsl.expected.ir.dxc.hlsl b/test/tint/statements/assign/indexed_assign_to_array_in_struct/struct_dynamic_array.wgsl.expected.ir.dxc.hlsl
index 0ba40c6..b1bb6bb 100644
--- a/test/tint/statements/assign/indexed_assign_to_array_in_struct/struct_dynamic_array.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/statements/assign/indexed_assign_to_array_in_struct/struct_dynamic_array.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,21 @@
-SKIP: FAILED
+struct InnerS {
+  int v;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+
+cbuffer cbuffer_uniforms : register(b4, space1) {
+  uint4 uniforms[1];
+};
+RWByteAddressBuffer s1 : register(u0);
+void v_1(uint offset, InnerS obj) {
+  s1.Store((offset + 0u), asuint(obj.v));
+}
+
+[numthreads(1, 1, 1)]
+void main() {
+  InnerS v = (InnerS)0;
+  uint v_2 = (uint(uniforms[0u].x) * 4u);
+  InnerS v_3 = v;
+  v_1((0u + v_2), v_3);
+}
+
diff --git a/test/tint/statements/assign/indexed_assign_to_array_in_struct/struct_dynamic_array.wgsl.expected.ir.fxc.hlsl b/test/tint/statements/assign/indexed_assign_to_array_in_struct/struct_dynamic_array.wgsl.expected.ir.fxc.hlsl
index 0ba40c6..b1bb6bb 100644
--- a/test/tint/statements/assign/indexed_assign_to_array_in_struct/struct_dynamic_array.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/statements/assign/indexed_assign_to_array_in_struct/struct_dynamic_array.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,21 @@
-SKIP: FAILED
+struct InnerS {
+  int v;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+
+cbuffer cbuffer_uniforms : register(b4, space1) {
+  uint4 uniforms[1];
+};
+RWByteAddressBuffer s1 : register(u0);
+void v_1(uint offset, InnerS obj) {
+  s1.Store((offset + 0u), asuint(obj.v));
+}
+
+[numthreads(1, 1, 1)]
+void main() {
+  InnerS v = (InnerS)0;
+  uint v_2 = (uint(uniforms[0u].x) * 4u);
+  InnerS v_3 = v;
+  v_1((0u + v_2), v_3);
+}
+
diff --git a/test/tint/statements/assign/indexed_assign_to_array_in_struct/struct_dynamic_array_struct_array.wgsl.expected.ir.dxc.hlsl b/test/tint/statements/assign/indexed_assign_to_array_in_struct/struct_dynamic_array_struct_array.wgsl.expected.ir.dxc.hlsl
index 0ba40c6..3583560 100644
--- a/test/tint/statements/assign/indexed_assign_to_array_in_struct/struct_dynamic_array_struct_array.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/statements/assign/indexed_assign_to_array_in_struct/struct_dynamic_array_struct_array.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,23 @@
-SKIP: FAILED
+struct InnerS {
+  int v;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+
+cbuffer cbuffer_uniforms : register(b4, space1) {
+  uint4 uniforms[1];
+};
+RWByteAddressBuffer s : register(u0);
+void v_1(uint offset, InnerS obj) {
+  s.Store((offset + 0u), asuint(obj.v));
+}
+
+[numthreads(1, 1, 1)]
+void main() {
+  InnerS v = (InnerS)0;
+  uint v_2 = uniforms[0u].y;
+  uint v_3 = (uint(uniforms[0u].x) * 32u);
+  uint v_4 = (uint(v_2) * 4u);
+  InnerS v_5 = v;
+  v_1(((0u + v_3) + v_4), v_5);
+}
+
diff --git a/test/tint/statements/assign/indexed_assign_to_array_in_struct/struct_dynamic_array_struct_array.wgsl.expected.ir.fxc.hlsl b/test/tint/statements/assign/indexed_assign_to_array_in_struct/struct_dynamic_array_struct_array.wgsl.expected.ir.fxc.hlsl
index 0ba40c6..3583560 100644
--- a/test/tint/statements/assign/indexed_assign_to_array_in_struct/struct_dynamic_array_struct_array.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/statements/assign/indexed_assign_to_array_in_struct/struct_dynamic_array_struct_array.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,23 @@
-SKIP: FAILED
+struct InnerS {
+  int v;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+
+cbuffer cbuffer_uniforms : register(b4, space1) {
+  uint4 uniforms[1];
+};
+RWByteAddressBuffer s : register(u0);
+void v_1(uint offset, InnerS obj) {
+  s.Store((offset + 0u), asuint(obj.v));
+}
+
+[numthreads(1, 1, 1)]
+void main() {
+  InnerS v = (InnerS)0;
+  uint v_2 = uniforms[0u].y;
+  uint v_3 = (uint(uniforms[0u].x) * 32u);
+  uint v_4 = (uint(v_2) * 4u);
+  InnerS v_5 = v;
+  v_1(((0u + v_3) + v_4), v_5);
+}
+
diff --git a/test/tint/statements/assign/indexed_assign_to_array_in_struct/struct_matrix.wgsl.expected.ir.dxc.hlsl b/test/tint/statements/assign/indexed_assign_to_array_in_struct/struct_matrix.wgsl.expected.ir.dxc.hlsl
index 0ba40c6..953df93 100644
--- a/test/tint/statements/assign/indexed_assign_to_array_in_struct/struct_matrix.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/statements/assign/indexed_assign_to_array_in_struct/struct_matrix.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,15 @@
-SKIP: FAILED
+struct OuterS {
+  float2x4 m1;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+
+cbuffer cbuffer_uniforms : register(b4, space1) {
+  uint4 uniforms[1];
+};
+[numthreads(1, 1, 1)]
+void main() {
+  OuterS s1 = (OuterS)0;
+  s1.m1[uniforms[0u].x] = (1.0f).xxxx;
+  s1.m1[uniforms[0u].x][uniforms[0u].x] = 1.0f;
+}
+
diff --git a/test/tint/statements/assign/indexed_assign_to_array_in_struct/struct_matrix.wgsl.expected.ir.fxc.hlsl b/test/tint/statements/assign/indexed_assign_to_array_in_struct/struct_matrix.wgsl.expected.ir.fxc.hlsl
index 0ba40c6..5eccb1a 100644
--- a/test/tint/statements/assign/indexed_assign_to_array_in_struct/struct_matrix.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/statements/assign/indexed_assign_to_array_in_struct/struct_matrix.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,20 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct OuterS {
+  float2x4 m1;
+};
+
+
+cbuffer cbuffer_uniforms : register(b4, space1) {
+  uint4 uniforms[1];
+};
+[numthreads(1, 1, 1)]
+void main() {
+  OuterS s1 = (OuterS)0;
+  s1.m1[uniforms[0u].x] = (1.0f).xxxx;
+  s1.m1[uniforms[0u].x][uniforms[0u].x] = 1.0f;
+}
+
+FXC validation failure:
+c:\src\dawn\Shader@0x00000215137E0550(12,3-23): error X3500: array reference cannot be used as an l-value; not natively addressable
+
diff --git a/test/tint/statements/assign/indexed_assign_to_array_in_struct/struct_multiple_arrays.wgsl.expected.ir.dxc.hlsl b/test/tint/statements/assign/indexed_assign_to_array_in_struct/struct_multiple_arrays.wgsl.expected.ir.dxc.hlsl
index 0ba40c6..ec3f8b2 100644
--- a/test/tint/statements/assign/indexed_assign_to_array_in_struct/struct_multiple_arrays.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/statements/assign/indexed_assign_to_array_in_struct/struct_multiple_arrays.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,23 @@
-SKIP: FAILED
+struct InnerS {
+  int v;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct OuterS {
+  InnerS a1[8];
+  InnerS a2[8];
+};
+
+
+cbuffer cbuffer_uniforms : register(b4, space1) {
+  uint4 uniforms[1];
+};
+[numthreads(1, 1, 1)]
+void main() {
+  InnerS v = (InnerS)0;
+  OuterS s1 = (OuterS)0;
+  InnerS v_1 = v;
+  s1.a1[uniforms[0u].x] = v_1;
+  InnerS v_2 = v;
+  s1.a2[uniforms[0u].x] = v_2;
+}
+
diff --git a/test/tint/statements/assign/indexed_assign_to_array_in_struct/struct_multiple_arrays.wgsl.expected.ir.fxc.hlsl b/test/tint/statements/assign/indexed_assign_to_array_in_struct/struct_multiple_arrays.wgsl.expected.ir.fxc.hlsl
index 0ba40c6..e017d11 100644
--- a/test/tint/statements/assign/indexed_assign_to_array_in_struct/struct_multiple_arrays.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/statements/assign/indexed_assign_to_array_in_struct/struct_multiple_arrays.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,28 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct InnerS {
+  int v;
+};
+
+struct OuterS {
+  InnerS a1[8];
+  InnerS a2[8];
+};
+
+
+cbuffer cbuffer_uniforms : register(b4, space1) {
+  uint4 uniforms[1];
+};
+[numthreads(1, 1, 1)]
+void main() {
+  InnerS v = (InnerS)0;
+  OuterS s1 = (OuterS)0;
+  InnerS v_1 = v;
+  s1.a1[uniforms[0u].x] = v_1;
+  InnerS v_2 = v;
+  s1.a2[uniforms[0u].x] = v_2;
+}
+
+FXC validation failure:
+c:\src\dawn\Shader@0x000002B1982C5F50(19,3-23): error X3500: array reference cannot be used as an l-value; not natively addressable
+
diff --git a/test/tint/statements/assign/indexed_assign_to_array_in_struct/struct_struct_array.wgsl.expected.ir.dxc.hlsl b/test/tint/statements/assign/indexed_assign_to_array_in_struct/struct_struct_array.wgsl.expected.ir.dxc.hlsl
index 0ba40c6..c57629c 100644
--- a/test/tint/statements/assign/indexed_assign_to_array_in_struct/struct_struct_array.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/statements/assign/indexed_assign_to_array_in_struct/struct_struct_array.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,24 @@
-SKIP: FAILED
+struct InnerS {
+  int v;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct S1 {
+  InnerS a[8];
+};
+
+struct OuterS {
+  S1 s2;
+};
+
+
+cbuffer cbuffer_uniforms : register(b4, space1) {
+  uint4 uniforms[1];
+};
+[numthreads(1, 1, 1)]
+void main() {
+  InnerS v = (InnerS)0;
+  OuterS s1 = (OuterS)0;
+  InnerS v_1 = v;
+  s1.s2.a[uniforms[0u].x] = v_1;
+}
+
diff --git a/test/tint/statements/assign/indexed_assign_to_array_in_struct/struct_struct_array.wgsl.expected.ir.fxc.hlsl b/test/tint/statements/assign/indexed_assign_to_array_in_struct/struct_struct_array.wgsl.expected.ir.fxc.hlsl
index 0ba40c6..76070bf 100644
--- a/test/tint/statements/assign/indexed_assign_to_array_in_struct/struct_struct_array.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/statements/assign/indexed_assign_to_array_in_struct/struct_struct_array.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,29 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct InnerS {
+  int v;
+};
+
+struct S1 {
+  InnerS a[8];
+};
+
+struct OuterS {
+  S1 s2;
+};
+
+
+cbuffer cbuffer_uniforms : register(b4, space1) {
+  uint4 uniforms[1];
+};
+[numthreads(1, 1, 1)]
+void main() {
+  InnerS v = (InnerS)0;
+  OuterS s1 = (OuterS)0;
+  InnerS v_1 = v;
+  s1.s2.a[uniforms[0u].x] = v_1;
+}
+
+FXC validation failure:
+c:\src\dawn\Shader@0x000001AAE87B5BA0(22,3-25): error X3500: array reference cannot be used as an l-value; not natively addressable
+
diff --git a/test/tint/statements/assign/indexed_assign_to_array_in_struct/struct_vector.wgsl.expected.ir.dxc.hlsl b/test/tint/statements/assign/indexed_assign_to_array_in_struct/struct_vector.wgsl.expected.ir.dxc.hlsl
index 0ba40c6..3509301 100644
--- a/test/tint/statements/assign/indexed_assign_to_array_in_struct/struct_vector.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/statements/assign/indexed_assign_to_array_in_struct/struct_vector.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,14 @@
-SKIP: FAILED
+struct OuterS {
+  float3 v1;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+
+cbuffer cbuffer_uniforms : register(b4, space1) {
+  uint4 uniforms[1];
+};
+[numthreads(1, 1, 1)]
+void main() {
+  OuterS s1 = (OuterS)0;
+  s1.v1[uniforms[0u].x] = 1.0f;
+}
+
diff --git a/test/tint/statements/assign/indexed_assign_to_array_in_struct/struct_vector.wgsl.expected.ir.fxc.hlsl b/test/tint/statements/assign/indexed_assign_to_array_in_struct/struct_vector.wgsl.expected.ir.fxc.hlsl
index 0ba40c6..c30cd44 100644
--- a/test/tint/statements/assign/indexed_assign_to_array_in_struct/struct_vector.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/statements/assign/indexed_assign_to_array_in_struct/struct_vector.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,19 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct OuterS {
+  float3 v1;
+};
+
+
+cbuffer cbuffer_uniforms : register(b4, space1) {
+  uint4 uniforms[1];
+};
+[numthreads(1, 1, 1)]
+void main() {
+  OuterS s1 = (OuterS)0;
+  s1.v1[uniforms[0u].x] = 1.0f;
+}
+
+FXC validation failure:
+c:\src\dawn\Shader@0x0000014BF1BDE620(12,3-23): error X3500: array reference cannot be used as an l-value; not natively addressable
+
diff --git a/test/tint/statements/assign/indexed_assign_to_array_in_struct/vector_assign.wgsl.expected.ir.dxc.hlsl b/test/tint/statements/assign/indexed_assign_to_array_in_struct/vector_assign.wgsl.expected.ir.dxc.hlsl
index 6b047b4..9341da6 100644
--- a/test/tint/statements/assign/indexed_assign_to_array_in_struct/vector_assign.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/statements/assign/indexed_assign_to_array_in_struct/vector_assign.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,20 @@
-SKIP: FAILED
+struct OuterS {
+  uint a1[8];
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:287 internal compiler error: Switch() matched no cases. Type: tint::core::ir::FunctionParam
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+
+cbuffer cbuffer_uniforms : register(b4, space1) {
+  uint4 uniforms[1];
+};
+uint f(uint i) {
+  return (i + 1u);
+}
+
+[numthreads(1, 1, 1)]
+void main() {
+  OuterS s1 = (OuterS)0;
+  float3 v = (0.0f).xxx;
+  v[s1.a1[uniforms[0u].x]] = 1.0f;
+  v[f(s1.a1[uniforms[0u].x])] = 1.0f;
+}
+
diff --git a/test/tint/statements/assign/indexed_assign_to_array_in_struct/vector_assign.wgsl.expected.ir.fxc.hlsl b/test/tint/statements/assign/indexed_assign_to_array_in_struct/vector_assign.wgsl.expected.ir.fxc.hlsl
index 6b047b4..9341da6 100644
--- a/test/tint/statements/assign/indexed_assign_to_array_in_struct/vector_assign.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/statements/assign/indexed_assign_to_array_in_struct/vector_assign.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,20 @@
-SKIP: FAILED
+struct OuterS {
+  uint a1[8];
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:287 internal compiler error: Switch() matched no cases. Type: tint::core::ir::FunctionParam
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+
+cbuffer cbuffer_uniforms : register(b4, space1) {
+  uint4 uniforms[1];
+};
+uint f(uint i) {
+  return (i + 1u);
+}
+
+[numthreads(1, 1, 1)]
+void main() {
+  OuterS s1 = (OuterS)0;
+  float3 v = (0.0f).xxx;
+  v[s1.a1[uniforms[0u].x]] = 1.0f;
+  v[f(s1.a1[uniforms[0u].x])] = 1.0f;
+}
+
diff --git a/test/tint/statements/assign/indexed_assign_to_array_in_struct/via_pointer.wgsl.expected.ir.dxc.hlsl b/test/tint/statements/assign/indexed_assign_to_array_in_struct/via_pointer.wgsl.expected.ir.dxc.hlsl
index 0ba40c6..aa66407 100644
--- a/test/tint/statements/assign/indexed_assign_to_array_in_struct/via_pointer.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/statements/assign/indexed_assign_to_array_in_struct/via_pointer.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,21 @@
-SKIP: FAILED
+struct InnerS {
+  int v;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct OuterS {
+  InnerS a1[8];
+};
+
+
+cbuffer cbuffer_uniforms : register(b4, space1) {
+  uint4 uniforms[1];
+};
+[numthreads(1, 1, 1)]
+void main() {
+  InnerS v = (InnerS)0;
+  OuterS s1 = (OuterS)0;
+  InnerS p = s1.a1[uniforms[0u].x];
+  InnerS v_1 = v;
+  p = v_1;
+}
+
diff --git a/test/tint/statements/assign/indexed_assign_to_array_in_struct/via_pointer.wgsl.expected.ir.fxc.hlsl b/test/tint/statements/assign/indexed_assign_to_array_in_struct/via_pointer.wgsl.expected.ir.fxc.hlsl
index 0ba40c6..aa66407 100644
--- a/test/tint/statements/assign/indexed_assign_to_array_in_struct/via_pointer.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/statements/assign/indexed_assign_to_array_in_struct/via_pointer.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,21 @@
-SKIP: FAILED
+struct InnerS {
+  int v;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct OuterS {
+  InnerS a1[8];
+};
+
+
+cbuffer cbuffer_uniforms : register(b4, space1) {
+  uint4 uniforms[1];
+};
+[numthreads(1, 1, 1)]
+void main() {
+  InnerS v = (InnerS)0;
+  OuterS s1 = (OuterS)0;
+  InnerS p = s1.a1[uniforms[0u].x];
+  InnerS v_1 = v;
+  p = v_1;
+}
+
diff --git a/test/tint/statements/assign/indexed_assign_to_array_in_struct/via_pointer_arg.wgsl.expected.ir.dxc.hlsl b/test/tint/statements/assign/indexed_assign_to_array_in_struct/via_pointer_arg.wgsl.expected.ir.dxc.hlsl
index 0ba40c6..ce150e6 100644
--- a/test/tint/statements/assign/indexed_assign_to_array_in_struct/via_pointer_arg.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/statements/assign/indexed_assign_to_array_in_struct/via_pointer_arg.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,24 @@
-SKIP: FAILED
+struct InnerS {
+  int v;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct OuterS {
+  InnerS a1[8];
+};
+
+
+cbuffer cbuffer_uniforms : register(b4, space1) {
+  uint4 uniforms[1];
+};
+void f(inout OuterS p) {
+  InnerS v = (InnerS)0;
+  InnerS v_1 = v;
+  p.a1[uniforms[0u].x] = v_1;
+}
+
+[numthreads(1, 1, 1)]
+void main() {
+  OuterS s1 = (OuterS)0;
+  f(s1);
+}
+
diff --git a/test/tint/statements/assign/indexed_assign_to_array_in_struct/via_pointer_arg.wgsl.expected.ir.fxc.hlsl b/test/tint/statements/assign/indexed_assign_to_array_in_struct/via_pointer_arg.wgsl.expected.ir.fxc.hlsl
index 0ba40c6..f5785f2 100644
--- a/test/tint/statements/assign/indexed_assign_to_array_in_struct/via_pointer_arg.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/statements/assign/indexed_assign_to_array_in_struct/via_pointer_arg.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,29 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct InnerS {
+  int v;
+};
+
+struct OuterS {
+  InnerS a1[8];
+};
+
+
+cbuffer cbuffer_uniforms : register(b4, space1) {
+  uint4 uniforms[1];
+};
+void f(inout OuterS p) {
+  InnerS v = (InnerS)0;
+  InnerS v_1 = v;
+  p.a1[uniforms[0u].x] = v_1;
+}
+
+[numthreads(1, 1, 1)]
+void main() {
+  OuterS s1 = (OuterS)0;
+  f(s1);
+}
+
+FXC validation failure:
+c:\src\dawn\Shader@0x00000225DC940170(16,3-22): error X3500: array reference cannot be used as an l-value; not natively addressable
+
diff --git a/test/tint/statements/assign/phony/addr_of_non_constructable.wgsl.expected.ir.dxc.hlsl b/test/tint/statements/assign/phony/addr_of_non_constructable.wgsl.expected.ir.dxc.hlsl
index 91ea2dd..d849391 100644
--- a/test/tint/statements/assign/phony/addr_of_non_constructable.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/statements/assign/phony/addr_of_non_constructable.wgsl.expected.ir.dxc.hlsl
@@ -1,3 +1,5 @@
+
+RWByteAddressBuffer s : register(u0);
 [numthreads(1, 1, 1)]
 void main() {
 }
diff --git a/test/tint/statements/assign/phony/addr_of_non_constructable.wgsl.expected.ir.fxc.hlsl b/test/tint/statements/assign/phony/addr_of_non_constructable.wgsl.expected.ir.fxc.hlsl
index 91ea2dd..d849391 100644
--- a/test/tint/statements/assign/phony/addr_of_non_constructable.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/statements/assign/phony/addr_of_non_constructable.wgsl.expected.ir.fxc.hlsl
@@ -1,3 +1,5 @@
+
+RWByteAddressBuffer s : register(u0);
 [numthreads(1, 1, 1)]
 void main() {
 }
diff --git a/test/tint/statements/assign/phony/addr_of_runtime_array.wgsl.expected.ir.dxc.hlsl b/test/tint/statements/assign/phony/addr_of_runtime_array.wgsl.expected.ir.dxc.hlsl
index 91ea2dd..d849391 100644
--- a/test/tint/statements/assign/phony/addr_of_runtime_array.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/statements/assign/phony/addr_of_runtime_array.wgsl.expected.ir.dxc.hlsl
@@ -1,3 +1,5 @@
+
+RWByteAddressBuffer s : register(u0);
 [numthreads(1, 1, 1)]
 void main() {
 }
diff --git a/test/tint/statements/assign/phony/addr_of_runtime_array.wgsl.expected.ir.fxc.hlsl b/test/tint/statements/assign/phony/addr_of_runtime_array.wgsl.expected.ir.fxc.hlsl
index 73ac9d8..d849391 100644
--- a/test/tint/statements/assign/phony/addr_of_runtime_array.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/statements/assign/phony/addr_of_runtime_array.wgsl.expected.ir.fxc.hlsl
@@ -1,5 +1,5 @@
-SKIP: FAILED
 
+RWByteAddressBuffer s : register(u0);
 [numthreads(1, 1, 1)]
 void main() {
 }
diff --git a/test/tint/statements/assign/phony/call.wgsl.expected.ir.dxc.hlsl b/test/tint/statements/assign/phony/call.wgsl.expected.ir.dxc.hlsl
index 6b047b4..50e4d06 100644
--- a/test/tint/statements/assign/phony/call.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/statements/assign/phony/call.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,10 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:287 internal compiler error: Switch() matched no cases. Type: tint::core::ir::FunctionParam
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+int f(int a, int b, int c) {
+  return ((a * b) + c);
+}
+
+[numthreads(1, 1, 1)]
+void main() {
+  f(1, 2, 3);
+}
+
diff --git a/test/tint/statements/assign/phony/call.wgsl.expected.ir.fxc.hlsl b/test/tint/statements/assign/phony/call.wgsl.expected.ir.fxc.hlsl
index 6b047b4..50e4d06 100644
--- a/test/tint/statements/assign/phony/call.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/statements/assign/phony/call.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,10 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:287 internal compiler error: Switch() matched no cases. Type: tint::core::ir::FunctionParam
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+int f(int a, int b, int c) {
+  return ((a * b) + c);
+}
+
+[numthreads(1, 1, 1)]
+void main() {
+  f(1, 2, 3);
+}
+
diff --git a/test/tint/statements/assign/phony/multiple_side_effects.wgsl.expected.ir.dxc.hlsl b/test/tint/statements/assign/phony/multiple_side_effects.wgsl.expected.ir.dxc.hlsl
index 6b047b4..efead7a 100644
--- a/test/tint/statements/assign/phony/multiple_side_effects.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/statements/assign/phony/multiple_side_effects.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,11 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:287 internal compiler error: Switch() matched no cases. Type: tint::core::ir::FunctionParam
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+int f(int a, int b, int c) {
+  return ((a * b) + c);
+}
+
+[numthreads(1, 1, 1)]
+void main() {
+  int v = f(1, 2, 3);
+  int v_1 = f(4, 5, 6);
+}
+
diff --git a/test/tint/statements/assign/phony/multiple_side_effects.wgsl.expected.ir.fxc.hlsl b/test/tint/statements/assign/phony/multiple_side_effects.wgsl.expected.ir.fxc.hlsl
index 6b047b4..efead7a 100644
--- a/test/tint/statements/assign/phony/multiple_side_effects.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/statements/assign/phony/multiple_side_effects.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,11 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:287 internal compiler error: Switch() matched no cases. Type: tint::core::ir::FunctionParam
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+int f(int a, int b, int c) {
+  return ((a * b) + c);
+}
+
+[numthreads(1, 1, 1)]
+void main() {
+  int v = f(1, 2, 3);
+  int v_1 = f(4, 5, 6);
+}
+
diff --git a/test/tint/statements/assign/phony/storage_buffer.wgsl.expected.ir.dxc.hlsl b/test/tint/statements/assign/phony/storage_buffer.wgsl.expected.ir.dxc.hlsl
index 91ea2dd..6cd8154 100644
--- a/test/tint/statements/assign/phony/storage_buffer.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/statements/assign/phony/storage_buffer.wgsl.expected.ir.dxc.hlsl
@@ -1,4 +1,17 @@
+struct S {
+  int i;
+};
+
+
+RWByteAddressBuffer s : register(u0);
+S v(uint offset) {
+  S v_1 = {asint(s.Load((offset + 0u)))};
+  return v_1;
+}
+
 [numthreads(1, 1, 1)]
 void main() {
+  v(0u);
+  asint(s.Load(0u));
 }
 
diff --git a/test/tint/statements/assign/phony/storage_buffer.wgsl.expected.ir.fxc.hlsl b/test/tint/statements/assign/phony/storage_buffer.wgsl.expected.ir.fxc.hlsl
index 73ac9d8..6cd8154 100644
--- a/test/tint/statements/assign/phony/storage_buffer.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/statements/assign/phony/storage_buffer.wgsl.expected.ir.fxc.hlsl
@@ -1,6 +1,17 @@
-SKIP: FAILED
+struct S {
+  int i;
+};
+
+
+RWByteAddressBuffer s : register(u0);
+S v(uint offset) {
+  S v_1 = {asint(s.Load((offset + 0u)))};
+  return v_1;
+}
 
 [numthreads(1, 1, 1)]
 void main() {
+  v(0u);
+  asint(s.Load(0u));
 }
 
diff --git a/test/tint/statements/assign/phony/uniform_buffer.wgsl.expected.ir.dxc.hlsl b/test/tint/statements/assign/phony/uniform_buffer.wgsl.expected.ir.dxc.hlsl
index 91ea2dd..81098aa 100644
--- a/test/tint/statements/assign/phony/uniform_buffer.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/statements/assign/phony/uniform_buffer.wgsl.expected.ir.dxc.hlsl
@@ -1,4 +1,19 @@
+struct S {
+  int i;
+};
+
+
+cbuffer cbuffer_u : register(b0) {
+  uint4 u[1];
+};
+S v(uint start_byte_offset) {
+  S v_1 = {asint(u[(start_byte_offset / 16u)][((start_byte_offset % 16u) / 4u)])};
+  return v_1;
+}
+
 [numthreads(1, 1, 1)]
 void main() {
+  v(0u);
+  asint(u[0u].x);
 }
 
diff --git a/test/tint/statements/assign/phony/uniform_buffer.wgsl.expected.ir.fxc.hlsl b/test/tint/statements/assign/phony/uniform_buffer.wgsl.expected.ir.fxc.hlsl
index 73ac9d8..81098aa 100644
--- a/test/tint/statements/assign/phony/uniform_buffer.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/statements/assign/phony/uniform_buffer.wgsl.expected.ir.fxc.hlsl
@@ -1,6 +1,19 @@
-SKIP: FAILED
+struct S {
+  int i;
+};
+
+
+cbuffer cbuffer_u : register(b0) {
+  uint4 u[1];
+};
+S v(uint start_byte_offset) {
+  S v_1 = {asint(u[(start_byte_offset / 16u)][((start_byte_offset % 16u) / 4u)])};
+  return v_1;
+}
 
 [numthreads(1, 1, 1)]
 void main() {
+  v(0u);
+  asint(u[0u].x);
 }
 
diff --git a/test/tint/statements/compound_assign/complex_lhs.wgsl.expected.ir.dxc.hlsl b/test/tint/statements/compound_assign/complex_lhs.wgsl.expected.ir.dxc.hlsl
index 0ba40c6..a6a50f7 100644
--- a/test/tint/statements/compound_assign/complex_lhs.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/statements/compound_assign/complex_lhs.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,28 @@
-SKIP: FAILED
+struct S {
+  int4 a[4];
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+
+static int counter = 0;
+int foo() {
+  counter = (counter + 1);
+  return counter;
+}
+
+int bar() {
+  counter = (counter + 2);
+  return counter;
+}
+
+void main() {
+  S x = (S)0;
+  S p = x;
+  int4 v = p.a[foo()];
+  int v_1 = bar();
+  v[v_1] = (v[v_1] + 5);
+}
+
+[numthreads(1, 1, 1)]
+void unused_entry_point() {
+}
+
diff --git a/test/tint/statements/compound_assign/complex_lhs.wgsl.expected.ir.fxc.hlsl b/test/tint/statements/compound_assign/complex_lhs.wgsl.expected.ir.fxc.hlsl
index 0ba40c6..a6a50f7 100644
--- a/test/tint/statements/compound_assign/complex_lhs.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/statements/compound_assign/complex_lhs.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,28 @@
-SKIP: FAILED
+struct S {
+  int4 a[4];
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+
+static int counter = 0;
+int foo() {
+  counter = (counter + 1);
+  return counter;
+}
+
+int bar() {
+  counter = (counter + 2);
+  return counter;
+}
+
+void main() {
+  S x = (S)0;
+  S p = x;
+  int4 v = p.a[foo()];
+  int v_1 = bar();
+  v[v_1] = (v[v_1] + 5);
+}
+
+[numthreads(1, 1, 1)]
+void unused_entry_point() {
+}
+
diff --git a/test/tint/statements/compound_assign/divide_by_zero.wgsl.expected.ir.dxc.hlsl b/test/tint/statements/compound_assign/divide_by_zero.wgsl.expected.ir.dxc.hlsl
index 6b047b4..8c7ef24 100644
--- a/test/tint/statements/compound_assign/divide_by_zero.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/statements/compound_assign/divide_by_zero.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,33 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:287 internal compiler error: Switch() matched no cases. Type: tint::core::ir::FunctionParam
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+static int a = 0;
+static float b = 0.0f;
+int tint_mod_i32(int lhs, int rhs) {
+  int v = ((((rhs == 0) | ((lhs == -2147483648) & (rhs == -1)))) ? (1) : (rhs));
+  return (lhs - ((lhs / v) * v));
+}
+
+int tint_div_i32(int lhs, int rhs) {
+  return (lhs / ((((rhs == 0) | ((lhs == -2147483648) & (rhs == -1)))) ? (1) : (rhs)));
+}
+
+void foo(int maybe_zero) {
+  a = tint_div_i32(a, maybe_zero);
+  a = tint_mod_i32(a, maybe_zero);
+  b = (b / 0.0f);
+  float v_1 = b;
+  float v_2 = (v_1 / 0.0f);
+  float v_3 = floor(v_2);
+  b = ((v_1 - (((v_2 < 0.0f)) ? (ceil(v_2)) : (v_3))) * 0.0f);
+  float v_4 = float(maybe_zero);
+  b = (b / v_4);
+  float v_5 = float(maybe_zero);
+  float v_6 = b;
+  float v_7 = (v_6 / v_5);
+  float v_8 = floor(v_7);
+  b = ((v_6 - (((v_7 < 0.0f)) ? (ceil(v_7)) : (v_8))) * v_5);
+}
+
+[numthreads(1, 1, 1)]
+void unused_entry_point() {
+}
+
diff --git a/test/tint/statements/compound_assign/divide_by_zero.wgsl.expected.ir.fxc.hlsl b/test/tint/statements/compound_assign/divide_by_zero.wgsl.expected.ir.fxc.hlsl
index 6b047b4..8c7ef24 100644
--- a/test/tint/statements/compound_assign/divide_by_zero.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/statements/compound_assign/divide_by_zero.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,33 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:287 internal compiler error: Switch() matched no cases. Type: tint::core::ir::FunctionParam
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+static int a = 0;
+static float b = 0.0f;
+int tint_mod_i32(int lhs, int rhs) {
+  int v = ((((rhs == 0) | ((lhs == -2147483648) & (rhs == -1)))) ? (1) : (rhs));
+  return (lhs - ((lhs / v) * v));
+}
+
+int tint_div_i32(int lhs, int rhs) {
+  return (lhs / ((((rhs == 0) | ((lhs == -2147483648) & (rhs == -1)))) ? (1) : (rhs)));
+}
+
+void foo(int maybe_zero) {
+  a = tint_div_i32(a, maybe_zero);
+  a = tint_mod_i32(a, maybe_zero);
+  b = (b / 0.0f);
+  float v_1 = b;
+  float v_2 = (v_1 / 0.0f);
+  float v_3 = floor(v_2);
+  b = ((v_1 - (((v_2 < 0.0f)) ? (ceil(v_2)) : (v_3))) * 0.0f);
+  float v_4 = float(maybe_zero);
+  b = (b / v_4);
+  float v_5 = float(maybe_zero);
+  float v_6 = b;
+  float v_7 = (v_6 / v_5);
+  float v_8 = floor(v_7);
+  b = ((v_6 - (((v_7 < 0.0f)) ? (ceil(v_7)) : (v_8))) * v_5);
+}
+
+[numthreads(1, 1, 1)]
+void unused_entry_point() {
+}
+
diff --git a/test/tint/statements/compound_assign/for_loop.wgsl.expected.ir.dxc.hlsl b/test/tint/statements/compound_assign/for_loop.wgsl.expected.ir.dxc.hlsl
index adbb0c1..e3ade62 100644
--- a/test/tint/statements/compound_assign/for_loop.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/statements/compound_assign/for_loop.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,41 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:198 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Loop
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWByteAddressBuffer v : register(u0);
+static uint i = 0u;
+int idx1() {
+  i = (i + 1u);
+  return 1;
+}
+
+int idx2() {
+  i = (i + 2u);
+  return 1;
+}
+
+int idx3() {
+  i = (i + 3u);
+  return 1;
+}
+
+void foo() {
+  float a[4] = (float[4])0;
+  {
+    float v_1 = a[idx1()];
+    v_1 = (v_1 * 2.0f);
+    while(true) {
+      if ((a[idx2()] < 10.0f)) {
+      } else {
+        break;
+      }
+      {
+        float v_2 = a[idx3()];
+        v_2 = (v_2 + 1.0f);
+      }
+      continue;
+    }
+  }
+}
+
+[numthreads(1, 1, 1)]
+void unused_entry_point() {
+}
+
diff --git a/test/tint/statements/compound_assign/for_loop.wgsl.expected.ir.fxc.hlsl b/test/tint/statements/compound_assign/for_loop.wgsl.expected.ir.fxc.hlsl
index adbb0c1..e3ade62 100644
--- a/test/tint/statements/compound_assign/for_loop.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/statements/compound_assign/for_loop.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,41 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:198 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Loop
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWByteAddressBuffer v : register(u0);
+static uint i = 0u;
+int idx1() {
+  i = (i + 1u);
+  return 1;
+}
+
+int idx2() {
+  i = (i + 2u);
+  return 1;
+}
+
+int idx3() {
+  i = (i + 3u);
+  return 1;
+}
+
+void foo() {
+  float a[4] = (float[4])0;
+  {
+    float v_1 = a[idx1()];
+    v_1 = (v_1 * 2.0f);
+    while(true) {
+      if ((a[idx2()] < 10.0f)) {
+      } else {
+        break;
+      }
+      {
+        float v_2 = a[idx3()];
+        v_2 = (v_2 + 1.0f);
+      }
+      continue;
+    }
+  }
+}
+
+[numthreads(1, 1, 1)]
+void unused_entry_point() {
+}
+
diff --git a/test/tint/statements/compound_assign/function.wgsl.expected.ir.dxc.hlsl b/test/tint/statements/compound_assign/function.wgsl.expected.ir.dxc.hlsl
index b297464..d60df9a 100644
--- a/test/tint/statements/compound_assign/function.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/statements/compound_assign/function.wgsl.expected.ir.dxc.hlsl
@@ -1,11 +1,14 @@
-SKIP: FAILED
+
+int tint_div_i32(int lhs, int rhs) {
+  return (lhs / ((((rhs == 0) | ((lhs == -2147483648) & (rhs == -1)))) ? (1) : (rhs)));
+}
 
 void foo() {
   int a = 0;
   float4 b = (0.0f).xxxx;
   float2x2 c = float2x2((0.0f).xx, (0.0f).xx);
-  a = (a / 2);
-  b = (b * float4x4((0.0f).xxxx, (0.0f).xxxx, (0.0f).xxxx, (0.0f).xxxx));
+  a = tint_div_i32(a, 2);
+  b = mul(float4x4((0.0f).xxxx, (0.0f).xxxx, (0.0f).xxxx, (0.0f).xxxx), b);
   c = (c * 2.0f);
 }
 
@@ -13,8 +16,3 @@
 void unused_entry_point() {
 }
 
-DXC validation failure:
-hlsl.hlsl:6:12: error: cannot convert from 'float4x4' to 'float4'
-  b = (b * float4x4((0.0f).xxxx, (0.0f).xxxx, (0.0f).xxxx, (0.0f).xxxx));
-           ^
-
diff --git a/test/tint/statements/compound_assign/function.wgsl.expected.ir.fxc.hlsl b/test/tint/statements/compound_assign/function.wgsl.expected.ir.fxc.hlsl
index e5265e3..d60df9a 100644
--- a/test/tint/statements/compound_assign/function.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/statements/compound_assign/function.wgsl.expected.ir.fxc.hlsl
@@ -1,11 +1,14 @@
-SKIP: FAILED
+
+int tint_div_i32(int lhs, int rhs) {
+  return (lhs / ((((rhs == 0) | ((lhs == -2147483648) & (rhs == -1)))) ? (1) : (rhs)));
+}
 
 void foo() {
   int a = 0;
   float4 b = (0.0f).xxxx;
   float2x2 c = float2x2((0.0f).xx, (0.0f).xx);
-  a = (a / 2);
-  b = (b * float4x4((0.0f).xxxx, (0.0f).xxxx, (0.0f).xxxx, (0.0f).xxxx));
+  a = tint_div_i32(a, 2);
+  b = mul(float4x4((0.0f).xxxx, (0.0f).xxxx, (0.0f).xxxx, (0.0f).xxxx), b);
   c = (c * 2.0f);
 }
 
diff --git a/test/tint/statements/compound_assign/matrix/minus.wgsl.expected.ir.dxc.hlsl b/test/tint/statements/compound_assign/matrix/minus.wgsl.expected.ir.dxc.hlsl
index 3f437dc..6b5f64c 100644
--- a/test/tint/statements/compound_assign/matrix/minus.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/statements/compound_assign/matrix/minus.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,24 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Access
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWByteAddressBuffer v : register(u0);
+void v_1(uint offset, float4x4 obj) {
+  v.Store4((offset + 0u), asuint(obj[0u]));
+  v.Store4((offset + 16u), asuint(obj[1u]));
+  v.Store4((offset + 32u), asuint(obj[2u]));
+  v.Store4((offset + 48u), asuint(obj[3u]));
+}
+
+float4x4 v_2(uint offset) {
+  float4 v_3 = asfloat(v.Load4((offset + 0u)));
+  float4 v_4 = asfloat(v.Load4((offset + 16u)));
+  float4 v_5 = asfloat(v.Load4((offset + 32u)));
+  return float4x4(v_3, v_4, v_5, asfloat(v.Load4((offset + 48u))));
+}
+
+void foo() {
+  v_1(0u, (v_2(0u) - float4x4((0.0f).xxxx, (0.0f).xxxx, (0.0f).xxxx, (0.0f).xxxx)));
+}
+
+[numthreads(1, 1, 1)]
+void unused_entry_point() {
+}
+
diff --git a/test/tint/statements/compound_assign/matrix/minus.wgsl.expected.ir.fxc.hlsl b/test/tint/statements/compound_assign/matrix/minus.wgsl.expected.ir.fxc.hlsl
index 3f437dc..6b5f64c 100644
--- a/test/tint/statements/compound_assign/matrix/minus.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/statements/compound_assign/matrix/minus.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,24 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Access
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWByteAddressBuffer v : register(u0);
+void v_1(uint offset, float4x4 obj) {
+  v.Store4((offset + 0u), asuint(obj[0u]));
+  v.Store4((offset + 16u), asuint(obj[1u]));
+  v.Store4((offset + 32u), asuint(obj[2u]));
+  v.Store4((offset + 48u), asuint(obj[3u]));
+}
+
+float4x4 v_2(uint offset) {
+  float4 v_3 = asfloat(v.Load4((offset + 0u)));
+  float4 v_4 = asfloat(v.Load4((offset + 16u)));
+  float4 v_5 = asfloat(v.Load4((offset + 32u)));
+  return float4x4(v_3, v_4, v_5, asfloat(v.Load4((offset + 48u))));
+}
+
+void foo() {
+  v_1(0u, (v_2(0u) - float4x4((0.0f).xxxx, (0.0f).xxxx, (0.0f).xxxx, (0.0f).xxxx)));
+}
+
+[numthreads(1, 1, 1)]
+void unused_entry_point() {
+}
+
diff --git a/test/tint/statements/compound_assign/matrix/plus.wgsl.expected.ir.dxc.hlsl b/test/tint/statements/compound_assign/matrix/plus.wgsl.expected.ir.dxc.hlsl
index 3f437dc..c2f2a60 100644
--- a/test/tint/statements/compound_assign/matrix/plus.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/statements/compound_assign/matrix/plus.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,24 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Access
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWByteAddressBuffer v : register(u0);
+void v_1(uint offset, float4x4 obj) {
+  v.Store4((offset + 0u), asuint(obj[0u]));
+  v.Store4((offset + 16u), asuint(obj[1u]));
+  v.Store4((offset + 32u), asuint(obj[2u]));
+  v.Store4((offset + 48u), asuint(obj[3u]));
+}
+
+float4x4 v_2(uint offset) {
+  float4 v_3 = asfloat(v.Load4((offset + 0u)));
+  float4 v_4 = asfloat(v.Load4((offset + 16u)));
+  float4 v_5 = asfloat(v.Load4((offset + 32u)));
+  return float4x4(v_3, v_4, v_5, asfloat(v.Load4((offset + 48u))));
+}
+
+void foo() {
+  v_1(0u, (v_2(0u) + float4x4((0.0f).xxxx, (0.0f).xxxx, (0.0f).xxxx, (0.0f).xxxx)));
+}
+
+[numthreads(1, 1, 1)]
+void unused_entry_point() {
+}
+
diff --git a/test/tint/statements/compound_assign/matrix/plus.wgsl.expected.ir.fxc.hlsl b/test/tint/statements/compound_assign/matrix/plus.wgsl.expected.ir.fxc.hlsl
index 3f437dc..c2f2a60 100644
--- a/test/tint/statements/compound_assign/matrix/plus.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/statements/compound_assign/matrix/plus.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,24 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Access
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWByteAddressBuffer v : register(u0);
+void v_1(uint offset, float4x4 obj) {
+  v.Store4((offset + 0u), asuint(obj[0u]));
+  v.Store4((offset + 16u), asuint(obj[1u]));
+  v.Store4((offset + 32u), asuint(obj[2u]));
+  v.Store4((offset + 48u), asuint(obj[3u]));
+}
+
+float4x4 v_2(uint offset) {
+  float4 v_3 = asfloat(v.Load4((offset + 0u)));
+  float4 v_4 = asfloat(v.Load4((offset + 16u)));
+  float4 v_5 = asfloat(v.Load4((offset + 32u)));
+  return float4x4(v_3, v_4, v_5, asfloat(v.Load4((offset + 48u))));
+}
+
+void foo() {
+  v_1(0u, (v_2(0u) + float4x4((0.0f).xxxx, (0.0f).xxxx, (0.0f).xxxx, (0.0f).xxxx)));
+}
+
+[numthreads(1, 1, 1)]
+void unused_entry_point() {
+}
+
diff --git a/test/tint/statements/compound_assign/matrix/times-scalar.wgsl.expected.ir.dxc.hlsl b/test/tint/statements/compound_assign/matrix/times-scalar.wgsl.expected.ir.dxc.hlsl
index 3f437dc..84d297e 100644
--- a/test/tint/statements/compound_assign/matrix/times-scalar.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/statements/compound_assign/matrix/times-scalar.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,24 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Access
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWByteAddressBuffer v : register(u0);
+void v_1(uint offset, float4x4 obj) {
+  v.Store4((offset + 0u), asuint(obj[0u]));
+  v.Store4((offset + 16u), asuint(obj[1u]));
+  v.Store4((offset + 32u), asuint(obj[2u]));
+  v.Store4((offset + 48u), asuint(obj[3u]));
+}
+
+float4x4 v_2(uint offset) {
+  float4 v_3 = asfloat(v.Load4((offset + 0u)));
+  float4 v_4 = asfloat(v.Load4((offset + 16u)));
+  float4 v_5 = asfloat(v.Load4((offset + 32u)));
+  return float4x4(v_3, v_4, v_5, asfloat(v.Load4((offset + 48u))));
+}
+
+void foo() {
+  v_1(0u, (v_2(0u) * 2.0f));
+}
+
+[numthreads(1, 1, 1)]
+void unused_entry_point() {
+}
+
diff --git a/test/tint/statements/compound_assign/matrix/times-scalar.wgsl.expected.ir.fxc.hlsl b/test/tint/statements/compound_assign/matrix/times-scalar.wgsl.expected.ir.fxc.hlsl
index 3f437dc..84d297e 100644
--- a/test/tint/statements/compound_assign/matrix/times-scalar.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/statements/compound_assign/matrix/times-scalar.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,24 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Access
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWByteAddressBuffer v : register(u0);
+void v_1(uint offset, float4x4 obj) {
+  v.Store4((offset + 0u), asuint(obj[0u]));
+  v.Store4((offset + 16u), asuint(obj[1u]));
+  v.Store4((offset + 32u), asuint(obj[2u]));
+  v.Store4((offset + 48u), asuint(obj[3u]));
+}
+
+float4x4 v_2(uint offset) {
+  float4 v_3 = asfloat(v.Load4((offset + 0u)));
+  float4 v_4 = asfloat(v.Load4((offset + 16u)));
+  float4 v_5 = asfloat(v.Load4((offset + 32u)));
+  return float4x4(v_3, v_4, v_5, asfloat(v.Load4((offset + 48u))));
+}
+
+void foo() {
+  v_1(0u, (v_2(0u) * 2.0f));
+}
+
+[numthreads(1, 1, 1)]
+void unused_entry_point() {
+}
+
diff --git a/test/tint/statements/compound_assign/matrix/times.wgsl.expected.ir.dxc.hlsl b/test/tint/statements/compound_assign/matrix/times.wgsl.expected.ir.dxc.hlsl
index 3f437dc..2b4917b 100644
--- a/test/tint/statements/compound_assign/matrix/times.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/statements/compound_assign/matrix/times.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,24 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Access
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWByteAddressBuffer v : register(u0);
+void v_1(uint offset, float4x4 obj) {
+  v.Store4((offset + 0u), asuint(obj[0u]));
+  v.Store4((offset + 16u), asuint(obj[1u]));
+  v.Store4((offset + 32u), asuint(obj[2u]));
+  v.Store4((offset + 48u), asuint(obj[3u]));
+}
+
+float4x4 v_2(uint offset) {
+  float4 v_3 = asfloat(v.Load4((offset + 0u)));
+  float4 v_4 = asfloat(v.Load4((offset + 16u)));
+  float4 v_5 = asfloat(v.Load4((offset + 32u)));
+  return float4x4(v_3, v_4, v_5, asfloat(v.Load4((offset + 48u))));
+}
+
+void foo() {
+  v_1(0u, mul(float4x4((0.0f).xxxx, (0.0f).xxxx, (0.0f).xxxx, (0.0f).xxxx), v_2(0u)));
+}
+
+[numthreads(1, 1, 1)]
+void unused_entry_point() {
+}
+
diff --git a/test/tint/statements/compound_assign/matrix/times.wgsl.expected.ir.fxc.hlsl b/test/tint/statements/compound_assign/matrix/times.wgsl.expected.ir.fxc.hlsl
index 3f437dc..2b4917b 100644
--- a/test/tint/statements/compound_assign/matrix/times.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/statements/compound_assign/matrix/times.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,24 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Access
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWByteAddressBuffer v : register(u0);
+void v_1(uint offset, float4x4 obj) {
+  v.Store4((offset + 0u), asuint(obj[0u]));
+  v.Store4((offset + 16u), asuint(obj[1u]));
+  v.Store4((offset + 32u), asuint(obj[2u]));
+  v.Store4((offset + 48u), asuint(obj[3u]));
+}
+
+float4x4 v_2(uint offset) {
+  float4 v_3 = asfloat(v.Load4((offset + 0u)));
+  float4 v_4 = asfloat(v.Load4((offset + 16u)));
+  float4 v_5 = asfloat(v.Load4((offset + 32u)));
+  return float4x4(v_3, v_4, v_5, asfloat(v.Load4((offset + 48u))));
+}
+
+void foo() {
+  v_1(0u, mul(float4x4((0.0f).xxxx, (0.0f).xxxx, (0.0f).xxxx, (0.0f).xxxx), v_2(0u)));
+}
+
+[numthreads(1, 1, 1)]
+void unused_entry_point() {
+}
+
diff --git a/test/tint/statements/compound_assign/private.wgsl.expected.ir.dxc.hlsl b/test/tint/statements/compound_assign/private.wgsl.expected.ir.dxc.hlsl
index 63c2a08..2f0b293 100644
--- a/test/tint/statements/compound_assign/private.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/statements/compound_assign/private.wgsl.expected.ir.dxc.hlsl
@@ -1,8 +1,14 @@
-SKIP: FAILED
+
+static int a = 0;
+static float4 b = (0.0f).xxxx;
+static float2x2 c = float2x2((0.0f).xx, (0.0f).xx);
+int tint_div_i32(int lhs, int rhs) {
+  return (lhs / ((((rhs == 0) | ((lhs == -2147483648) & (rhs == -1)))) ? (1) : (rhs)));
+}
 
 void foo() {
-  a = (a / 2);
-  b = (b * float4x4((0.0f).xxxx, (0.0f).xxxx, (0.0f).xxxx, (0.0f).xxxx));
+  a = tint_div_i32(a, 2);
+  b = mul(float4x4((0.0f).xxxx, (0.0f).xxxx, (0.0f).xxxx, (0.0f).xxxx), b);
   c = (c * 2.0f);
 }
 
@@ -10,23 +16,3 @@
 void unused_entry_point() {
 }
 
-DXC validation failure:
-hlsl.hlsl:2:3: error: use of undeclared identifier 'a'
-  a = (a / 2);
-  ^
-hlsl.hlsl:2:8: error: use of undeclared identifier 'a'
-  a = (a / 2);
-       ^
-hlsl.hlsl:3:3: error: use of undeclared identifier 'b'
-  b = (b * float4x4((0.0f).xxxx, (0.0f).xxxx, (0.0f).xxxx, (0.0f).xxxx));
-  ^
-hlsl.hlsl:3:8: error: use of undeclared identifier 'b'
-  b = (b * float4x4((0.0f).xxxx, (0.0f).xxxx, (0.0f).xxxx, (0.0f).xxxx));
-       ^
-hlsl.hlsl:4:3: error: use of undeclared identifier 'c'
-  c = (c * 2.0f);
-  ^
-hlsl.hlsl:4:8: error: use of undeclared identifier 'c'
-  c = (c * 2.0f);
-       ^
-
diff --git a/test/tint/statements/compound_assign/private.wgsl.expected.ir.fxc.hlsl b/test/tint/statements/compound_assign/private.wgsl.expected.ir.fxc.hlsl
index f3480b8..2f0b293 100644
--- a/test/tint/statements/compound_assign/private.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/statements/compound_assign/private.wgsl.expected.ir.fxc.hlsl
@@ -1,8 +1,14 @@
-SKIP: FAILED
+
+static int a = 0;
+static float4 b = (0.0f).xxxx;
+static float2x2 c = float2x2((0.0f).xx, (0.0f).xx);
+int tint_div_i32(int lhs, int rhs) {
+  return (lhs / ((((rhs == 0) | ((lhs == -2147483648) & (rhs == -1)))) ? (1) : (rhs)));
+}
 
 void foo() {
-  a = (a / 2);
-  b = (b * float4x4((0.0f).xxxx, (0.0f).xxxx, (0.0f).xxxx, (0.0f).xxxx));
+  a = tint_div_i32(a, 2);
+  b = mul(float4x4((0.0f).xxxx, (0.0f).xxxx, (0.0f).xxxx, (0.0f).xxxx), b);
   c = (c * 2.0f);
 }
 
diff --git a/test/tint/statements/compound_assign/scalar/and.wgsl.expected.ir.dxc.hlsl b/test/tint/statements/compound_assign/scalar/and.wgsl.expected.ir.dxc.hlsl
index 3f437dc..2b7fd75 100644
--- a/test/tint/statements/compound_assign/scalar/and.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/statements/compound_assign/scalar/and.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,10 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Access
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWByteAddressBuffer v : register(u0);
+void foo() {
+  v.Store(0u, asuint((asint(v.Load(0u)) & 2)));
+}
+
+[numthreads(1, 1, 1)]
+void unused_entry_point() {
+}
+
diff --git a/test/tint/statements/compound_assign/scalar/and.wgsl.expected.ir.fxc.hlsl b/test/tint/statements/compound_assign/scalar/and.wgsl.expected.ir.fxc.hlsl
index 3f437dc..2b7fd75 100644
--- a/test/tint/statements/compound_assign/scalar/and.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/statements/compound_assign/scalar/and.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,10 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Access
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWByteAddressBuffer v : register(u0);
+void foo() {
+  v.Store(0u, asuint((asint(v.Load(0u)) & 2)));
+}
+
+[numthreads(1, 1, 1)]
+void unused_entry_point() {
+}
+
diff --git a/test/tint/statements/compound_assign/scalar/divide.wgsl.expected.ir.dxc.hlsl b/test/tint/statements/compound_assign/scalar/divide.wgsl.expected.ir.dxc.hlsl
index 3f437dc..f89528d 100644
--- a/test/tint/statements/compound_assign/scalar/divide.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/statements/compound_assign/scalar/divide.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,14 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Access
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWByteAddressBuffer v : register(u0);
+int tint_div_i32(int lhs, int rhs) {
+  return (lhs / ((((rhs == 0) | ((lhs == -2147483648) & (rhs == -1)))) ? (1) : (rhs)));
+}
+
+void foo() {
+  v.Store(0u, asuint(tint_div_i32(asint(v.Load(0u)), 2)));
+}
+
+[numthreads(1, 1, 1)]
+void unused_entry_point() {
+}
+
diff --git a/test/tint/statements/compound_assign/scalar/divide.wgsl.expected.ir.fxc.hlsl b/test/tint/statements/compound_assign/scalar/divide.wgsl.expected.ir.fxc.hlsl
index 3f437dc..f89528d 100644
--- a/test/tint/statements/compound_assign/scalar/divide.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/statements/compound_assign/scalar/divide.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,14 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Access
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWByteAddressBuffer v : register(u0);
+int tint_div_i32(int lhs, int rhs) {
+  return (lhs / ((((rhs == 0) | ((lhs == -2147483648) & (rhs == -1)))) ? (1) : (rhs)));
+}
+
+void foo() {
+  v.Store(0u, asuint(tint_div_i32(asint(v.Load(0u)), 2)));
+}
+
+[numthreads(1, 1, 1)]
+void unused_entry_point() {
+}
+
diff --git a/test/tint/statements/compound_assign/scalar/minus.wgsl.expected.ir.dxc.hlsl b/test/tint/statements/compound_assign/scalar/minus.wgsl.expected.ir.dxc.hlsl
index 3f437dc..d0e53a9 100644
--- a/test/tint/statements/compound_assign/scalar/minus.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/statements/compound_assign/scalar/minus.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,10 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Access
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWByteAddressBuffer v : register(u0);
+void foo() {
+  v.Store(0u, asuint((asint(v.Load(0u)) - 2)));
+}
+
+[numthreads(1, 1, 1)]
+void unused_entry_point() {
+}
+
diff --git a/test/tint/statements/compound_assign/scalar/minus.wgsl.expected.ir.fxc.hlsl b/test/tint/statements/compound_assign/scalar/minus.wgsl.expected.ir.fxc.hlsl
index 3f437dc..d0e53a9 100644
--- a/test/tint/statements/compound_assign/scalar/minus.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/statements/compound_assign/scalar/minus.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,10 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Access
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWByteAddressBuffer v : register(u0);
+void foo() {
+  v.Store(0u, asuint((asint(v.Load(0u)) - 2)));
+}
+
+[numthreads(1, 1, 1)]
+void unused_entry_point() {
+}
+
diff --git a/test/tint/statements/compound_assign/scalar/modulo.wgsl.expected.ir.dxc.hlsl b/test/tint/statements/compound_assign/scalar/modulo.wgsl.expected.ir.dxc.hlsl
index 3f437dc..74d4e1a 100644
--- a/test/tint/statements/compound_assign/scalar/modulo.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/statements/compound_assign/scalar/modulo.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,15 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Access
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWByteAddressBuffer v : register(u0);
+int tint_mod_i32(int lhs, int rhs) {
+  int v_1 = ((((rhs == 0) | ((lhs == -2147483648) & (rhs == -1)))) ? (1) : (rhs));
+  return (lhs - ((lhs / v_1) * v_1));
+}
+
+void foo() {
+  v.Store(0u, asuint(tint_mod_i32(asint(v.Load(0u)), 2)));
+}
+
+[numthreads(1, 1, 1)]
+void unused_entry_point() {
+}
+
diff --git a/test/tint/statements/compound_assign/scalar/modulo.wgsl.expected.ir.fxc.hlsl b/test/tint/statements/compound_assign/scalar/modulo.wgsl.expected.ir.fxc.hlsl
index 3f437dc..74d4e1a 100644
--- a/test/tint/statements/compound_assign/scalar/modulo.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/statements/compound_assign/scalar/modulo.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,15 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Access
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWByteAddressBuffer v : register(u0);
+int tint_mod_i32(int lhs, int rhs) {
+  int v_1 = ((((rhs == 0) | ((lhs == -2147483648) & (rhs == -1)))) ? (1) : (rhs));
+  return (lhs - ((lhs / v_1) * v_1));
+}
+
+void foo() {
+  v.Store(0u, asuint(tint_mod_i32(asint(v.Load(0u)), 2)));
+}
+
+[numthreads(1, 1, 1)]
+void unused_entry_point() {
+}
+
diff --git a/test/tint/statements/compound_assign/scalar/or.wgsl.expected.ir.dxc.hlsl b/test/tint/statements/compound_assign/scalar/or.wgsl.expected.ir.dxc.hlsl
index 3f437dc..1469454 100644
--- a/test/tint/statements/compound_assign/scalar/or.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/statements/compound_assign/scalar/or.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,10 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Access
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWByteAddressBuffer v : register(u0);
+void foo() {
+  v.Store(0u, asuint((asint(v.Load(0u)) | 2)));
+}
+
+[numthreads(1, 1, 1)]
+void unused_entry_point() {
+}
+
diff --git a/test/tint/statements/compound_assign/scalar/or.wgsl.expected.ir.fxc.hlsl b/test/tint/statements/compound_assign/scalar/or.wgsl.expected.ir.fxc.hlsl
index 3f437dc..1469454 100644
--- a/test/tint/statements/compound_assign/scalar/or.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/statements/compound_assign/scalar/or.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,10 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Access
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWByteAddressBuffer v : register(u0);
+void foo() {
+  v.Store(0u, asuint((asint(v.Load(0u)) | 2)));
+}
+
+[numthreads(1, 1, 1)]
+void unused_entry_point() {
+}
+
diff --git a/test/tint/statements/compound_assign/scalar/plus.wgsl.expected.ir.dxc.hlsl b/test/tint/statements/compound_assign/scalar/plus.wgsl.expected.ir.dxc.hlsl
index 3f437dc..c0d979a 100644
--- a/test/tint/statements/compound_assign/scalar/plus.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/statements/compound_assign/scalar/plus.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,10 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Access
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWByteAddressBuffer v : register(u0);
+void foo() {
+  v.Store(0u, asuint((asint(v.Load(0u)) + 2)));
+}
+
+[numthreads(1, 1, 1)]
+void unused_entry_point() {
+}
+
diff --git a/test/tint/statements/compound_assign/scalar/plus.wgsl.expected.ir.fxc.hlsl b/test/tint/statements/compound_assign/scalar/plus.wgsl.expected.ir.fxc.hlsl
index 3f437dc..c0d979a 100644
--- a/test/tint/statements/compound_assign/scalar/plus.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/statements/compound_assign/scalar/plus.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,10 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Access
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWByteAddressBuffer v : register(u0);
+void foo() {
+  v.Store(0u, asuint((asint(v.Load(0u)) + 2)));
+}
+
+[numthreads(1, 1, 1)]
+void unused_entry_point() {
+}
+
diff --git a/test/tint/statements/compound_assign/scalar/shift_left.wgsl.expected.ir.dxc.hlsl b/test/tint/statements/compound_assign/scalar/shift_left.wgsl.expected.ir.dxc.hlsl
index 3f437dc..59d6cac 100644
--- a/test/tint/statements/compound_assign/scalar/shift_left.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/statements/compound_assign/scalar/shift_left.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,10 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Access
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWByteAddressBuffer v : register(u0);
+void foo() {
+  v.Store(0u, asuint((asint(v.Load(0u)) << (2u & 31u))));
+}
+
+[numthreads(1, 1, 1)]
+void unused_entry_point() {
+}
+
diff --git a/test/tint/statements/compound_assign/scalar/shift_left.wgsl.expected.ir.fxc.hlsl b/test/tint/statements/compound_assign/scalar/shift_left.wgsl.expected.ir.fxc.hlsl
index 3f437dc..59d6cac 100644
--- a/test/tint/statements/compound_assign/scalar/shift_left.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/statements/compound_assign/scalar/shift_left.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,10 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Access
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWByteAddressBuffer v : register(u0);
+void foo() {
+  v.Store(0u, asuint((asint(v.Load(0u)) << (2u & 31u))));
+}
+
+[numthreads(1, 1, 1)]
+void unused_entry_point() {
+}
+
diff --git a/test/tint/statements/compound_assign/scalar/shift_right.wgsl.expected.ir.dxc.hlsl b/test/tint/statements/compound_assign/scalar/shift_right.wgsl.expected.ir.dxc.hlsl
index 3f437dc..657d1d2 100644
--- a/test/tint/statements/compound_assign/scalar/shift_right.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/statements/compound_assign/scalar/shift_right.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,10 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Access
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWByteAddressBuffer v : register(u0);
+void foo() {
+  v.Store(0u, asuint((asint(v.Load(0u)) >> (2u & 31u))));
+}
+
+[numthreads(1, 1, 1)]
+void unused_entry_point() {
+}
+
diff --git a/test/tint/statements/compound_assign/scalar/shift_right.wgsl.expected.ir.fxc.hlsl b/test/tint/statements/compound_assign/scalar/shift_right.wgsl.expected.ir.fxc.hlsl
index 3f437dc..657d1d2 100644
--- a/test/tint/statements/compound_assign/scalar/shift_right.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/statements/compound_assign/scalar/shift_right.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,10 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Access
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWByteAddressBuffer v : register(u0);
+void foo() {
+  v.Store(0u, asuint((asint(v.Load(0u)) >> (2u & 31u))));
+}
+
+[numthreads(1, 1, 1)]
+void unused_entry_point() {
+}
+
diff --git a/test/tint/statements/compound_assign/scalar/times.wgsl.expected.ir.dxc.hlsl b/test/tint/statements/compound_assign/scalar/times.wgsl.expected.ir.dxc.hlsl
index 3f437dc..72f89c5 100644
--- a/test/tint/statements/compound_assign/scalar/times.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/statements/compound_assign/scalar/times.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,10 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Access
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWByteAddressBuffer v : register(u0);
+void foo() {
+  v.Store(0u, asuint((asint(v.Load(0u)) * 2)));
+}
+
+[numthreads(1, 1, 1)]
+void unused_entry_point() {
+}
+
diff --git a/test/tint/statements/compound_assign/scalar/times.wgsl.expected.ir.fxc.hlsl b/test/tint/statements/compound_assign/scalar/times.wgsl.expected.ir.fxc.hlsl
index 3f437dc..72f89c5 100644
--- a/test/tint/statements/compound_assign/scalar/times.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/statements/compound_assign/scalar/times.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,10 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Access
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWByteAddressBuffer v : register(u0);
+void foo() {
+  v.Store(0u, asuint((asint(v.Load(0u)) * 2)));
+}
+
+[numthreads(1, 1, 1)]
+void unused_entry_point() {
+}
+
diff --git a/test/tint/statements/compound_assign/scalar/xor.wgsl.expected.ir.dxc.hlsl b/test/tint/statements/compound_assign/scalar/xor.wgsl.expected.ir.dxc.hlsl
index 3f437dc..63597e3 100644
--- a/test/tint/statements/compound_assign/scalar/xor.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/statements/compound_assign/scalar/xor.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,10 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Access
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWByteAddressBuffer v : register(u0);
+void foo() {
+  v.Store(0u, asuint((asint(v.Load(0u)) ^ 2)));
+}
+
+[numthreads(1, 1, 1)]
+void unused_entry_point() {
+}
+
diff --git a/test/tint/statements/compound_assign/scalar/xor.wgsl.expected.ir.fxc.hlsl b/test/tint/statements/compound_assign/scalar/xor.wgsl.expected.ir.fxc.hlsl
index 3f437dc..63597e3 100644
--- a/test/tint/statements/compound_assign/scalar/xor.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/statements/compound_assign/scalar/xor.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,10 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Access
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWByteAddressBuffer v : register(u0);
+void foo() {
+  v.Store(0u, asuint((asint(v.Load(0u)) ^ 2)));
+}
+
+[numthreads(1, 1, 1)]
+void unused_entry_point() {
+}
+
diff --git a/test/tint/statements/compound_assign/vector/and.wgsl.expected.ir.dxc.hlsl b/test/tint/statements/compound_assign/vector/and.wgsl.expected.ir.dxc.hlsl
index 3f437dc..22dd5d0 100644
--- a/test/tint/statements/compound_assign/vector/and.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/statements/compound_assign/vector/and.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,10 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Access
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWByteAddressBuffer v : register(u0);
+void foo() {
+  v.Store4(0u, asuint((asint(v.Load4(0u)) & (2).xxxx)));
+}
+
+[numthreads(1, 1, 1)]
+void unused_entry_point() {
+}
+
diff --git a/test/tint/statements/compound_assign/vector/and.wgsl.expected.ir.fxc.hlsl b/test/tint/statements/compound_assign/vector/and.wgsl.expected.ir.fxc.hlsl
index 3f437dc..22dd5d0 100644
--- a/test/tint/statements/compound_assign/vector/and.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/statements/compound_assign/vector/and.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,10 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Access
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWByteAddressBuffer v : register(u0);
+void foo() {
+  v.Store4(0u, asuint((asint(v.Load4(0u)) & (2).xxxx)));
+}
+
+[numthreads(1, 1, 1)]
+void unused_entry_point() {
+}
+
diff --git a/test/tint/statements/compound_assign/vector/divide-scalar.wgsl.expected.ir.dxc.hlsl b/test/tint/statements/compound_assign/vector/divide-scalar.wgsl.expected.ir.dxc.hlsl
index 3f437dc..c5b16a5 100644
--- a/test/tint/statements/compound_assign/vector/divide-scalar.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/statements/compound_assign/vector/divide-scalar.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,10 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Access
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWByteAddressBuffer v : register(u0);
+void foo() {
+  v.Store4(0u, asuint((asfloat(v.Load4(0u)) / 2.0f)));
+}
+
+[numthreads(1, 1, 1)]
+void unused_entry_point() {
+}
+
diff --git a/test/tint/statements/compound_assign/vector/divide-scalar.wgsl.expected.ir.fxc.hlsl b/test/tint/statements/compound_assign/vector/divide-scalar.wgsl.expected.ir.fxc.hlsl
index 3f437dc..c5b16a5 100644
--- a/test/tint/statements/compound_assign/vector/divide-scalar.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/statements/compound_assign/vector/divide-scalar.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,10 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Access
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWByteAddressBuffer v : register(u0);
+void foo() {
+  v.Store4(0u, asuint((asfloat(v.Load4(0u)) / 2.0f)));
+}
+
+[numthreads(1, 1, 1)]
+void unused_entry_point() {
+}
+
diff --git a/test/tint/statements/compound_assign/vector/divide.wgsl.expected.ir.dxc.hlsl b/test/tint/statements/compound_assign/vector/divide.wgsl.expected.ir.dxc.hlsl
index 3f437dc..208ce22 100644
--- a/test/tint/statements/compound_assign/vector/divide.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/statements/compound_assign/vector/divide.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,14 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Access
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWByteAddressBuffer v : register(u0);
+int4 tint_div_v4i32(int4 lhs, int4 rhs) {
+  return (lhs / ((((rhs == (0).xxxx) | ((lhs == (-2147483648).xxxx) & (rhs == (-1).xxxx)))) ? ((1).xxxx) : (rhs)));
+}
+
+void foo() {
+  v.Store4(0u, asuint(tint_div_v4i32(asint(v.Load4(0u)), (2).xxxx)));
+}
+
+[numthreads(1, 1, 1)]
+void unused_entry_point() {
+}
+
diff --git a/test/tint/statements/compound_assign/vector/divide.wgsl.expected.ir.fxc.hlsl b/test/tint/statements/compound_assign/vector/divide.wgsl.expected.ir.fxc.hlsl
index 3f437dc..208ce22 100644
--- a/test/tint/statements/compound_assign/vector/divide.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/statements/compound_assign/vector/divide.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,14 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Access
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWByteAddressBuffer v : register(u0);
+int4 tint_div_v4i32(int4 lhs, int4 rhs) {
+  return (lhs / ((((rhs == (0).xxxx) | ((lhs == (-2147483648).xxxx) & (rhs == (-1).xxxx)))) ? ((1).xxxx) : (rhs)));
+}
+
+void foo() {
+  v.Store4(0u, asuint(tint_div_v4i32(asint(v.Load4(0u)), (2).xxxx)));
+}
+
+[numthreads(1, 1, 1)]
+void unused_entry_point() {
+}
+
diff --git a/test/tint/statements/compound_assign/vector/minus-scalar.wgsl.expected.ir.dxc.hlsl b/test/tint/statements/compound_assign/vector/minus-scalar.wgsl.expected.ir.dxc.hlsl
index 3f437dc..249515d 100644
--- a/test/tint/statements/compound_assign/vector/minus-scalar.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/statements/compound_assign/vector/minus-scalar.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,10 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Access
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWByteAddressBuffer v : register(u0);
+void foo() {
+  v.Store4(0u, asuint((asfloat(v.Load4(0u)) - 2.0f)));
+}
+
+[numthreads(1, 1, 1)]
+void unused_entry_point() {
+}
+
diff --git a/test/tint/statements/compound_assign/vector/minus-scalar.wgsl.expected.ir.fxc.hlsl b/test/tint/statements/compound_assign/vector/minus-scalar.wgsl.expected.ir.fxc.hlsl
index 3f437dc..249515d 100644
--- a/test/tint/statements/compound_assign/vector/minus-scalar.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/statements/compound_assign/vector/minus-scalar.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,10 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Access
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWByteAddressBuffer v : register(u0);
+void foo() {
+  v.Store4(0u, asuint((asfloat(v.Load4(0u)) - 2.0f)));
+}
+
+[numthreads(1, 1, 1)]
+void unused_entry_point() {
+}
+
diff --git a/test/tint/statements/compound_assign/vector/minus.wgsl.expected.ir.dxc.hlsl b/test/tint/statements/compound_assign/vector/minus.wgsl.expected.ir.dxc.hlsl
index 3f437dc..2b6f50e 100644
--- a/test/tint/statements/compound_assign/vector/minus.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/statements/compound_assign/vector/minus.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,10 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Access
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWByteAddressBuffer v : register(u0);
+void foo() {
+  v.Store4(0u, asuint((asint(v.Load4(0u)) - (2).xxxx)));
+}
+
+[numthreads(1, 1, 1)]
+void unused_entry_point() {
+}
+
diff --git a/test/tint/statements/compound_assign/vector/minus.wgsl.expected.ir.fxc.hlsl b/test/tint/statements/compound_assign/vector/minus.wgsl.expected.ir.fxc.hlsl
index 3f437dc..2b6f50e 100644
--- a/test/tint/statements/compound_assign/vector/minus.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/statements/compound_assign/vector/minus.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,10 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Access
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWByteAddressBuffer v : register(u0);
+void foo() {
+  v.Store4(0u, asuint((asint(v.Load4(0u)) - (2).xxxx)));
+}
+
+[numthreads(1, 1, 1)]
+void unused_entry_point() {
+}
+
diff --git a/test/tint/statements/compound_assign/vector/modulo-scalar.wgsl.expected.ir.dxc.hlsl b/test/tint/statements/compound_assign/vector/modulo-scalar.wgsl.expected.ir.dxc.hlsl
index 3f437dc..2e865af 100644
--- a/test/tint/statements/compound_assign/vector/modulo-scalar.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/statements/compound_assign/vector/modulo-scalar.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,16 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Access
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWByteAddressBuffer v : register(u0);
+int4 tint_mod_v4i32(int4 lhs, int4 rhs) {
+  int4 v_1 = ((((rhs == (0).xxxx) | ((lhs == (-2147483648).xxxx) & (rhs == (-1).xxxx)))) ? ((1).xxxx) : (rhs));
+  return (lhs - ((lhs / v_1) * v_1));
+}
+
+void foo() {
+  int4 v_2 = asint(v.Load4(0u));
+  v.Store4(0u, asuint(tint_mod_v4i32(v_2, int4((2).xxxx))));
+}
+
+[numthreads(1, 1, 1)]
+void unused_entry_point() {
+}
+
diff --git a/test/tint/statements/compound_assign/vector/modulo-scalar.wgsl.expected.ir.fxc.hlsl b/test/tint/statements/compound_assign/vector/modulo-scalar.wgsl.expected.ir.fxc.hlsl
index 3f437dc..2e865af 100644
--- a/test/tint/statements/compound_assign/vector/modulo-scalar.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/statements/compound_assign/vector/modulo-scalar.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,16 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Access
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWByteAddressBuffer v : register(u0);
+int4 tint_mod_v4i32(int4 lhs, int4 rhs) {
+  int4 v_1 = ((((rhs == (0).xxxx) | ((lhs == (-2147483648).xxxx) & (rhs == (-1).xxxx)))) ? ((1).xxxx) : (rhs));
+  return (lhs - ((lhs / v_1) * v_1));
+}
+
+void foo() {
+  int4 v_2 = asint(v.Load4(0u));
+  v.Store4(0u, asuint(tint_mod_v4i32(v_2, int4((2).xxxx))));
+}
+
+[numthreads(1, 1, 1)]
+void unused_entry_point() {
+}
+
diff --git a/test/tint/statements/compound_assign/vector/modulo.wgsl.expected.ir.dxc.hlsl b/test/tint/statements/compound_assign/vector/modulo.wgsl.expected.ir.dxc.hlsl
index 3f437dc..cbb03ff 100644
--- a/test/tint/statements/compound_assign/vector/modulo.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/statements/compound_assign/vector/modulo.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,15 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Access
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWByteAddressBuffer v : register(u0);
+int4 tint_mod_v4i32(int4 lhs, int4 rhs) {
+  int4 v_1 = ((((rhs == (0).xxxx) | ((lhs == (-2147483648).xxxx) & (rhs == (-1).xxxx)))) ? ((1).xxxx) : (rhs));
+  return (lhs - ((lhs / v_1) * v_1));
+}
+
+void foo() {
+  v.Store4(0u, asuint(tint_mod_v4i32(asint(v.Load4(0u)), (2).xxxx)));
+}
+
+[numthreads(1, 1, 1)]
+void unused_entry_point() {
+}
+
diff --git a/test/tint/statements/compound_assign/vector/modulo.wgsl.expected.ir.fxc.hlsl b/test/tint/statements/compound_assign/vector/modulo.wgsl.expected.ir.fxc.hlsl
index 3f437dc..cbb03ff 100644
--- a/test/tint/statements/compound_assign/vector/modulo.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/statements/compound_assign/vector/modulo.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,15 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Access
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWByteAddressBuffer v : register(u0);
+int4 tint_mod_v4i32(int4 lhs, int4 rhs) {
+  int4 v_1 = ((((rhs == (0).xxxx) | ((lhs == (-2147483648).xxxx) & (rhs == (-1).xxxx)))) ? ((1).xxxx) : (rhs));
+  return (lhs - ((lhs / v_1) * v_1));
+}
+
+void foo() {
+  v.Store4(0u, asuint(tint_mod_v4i32(asint(v.Load4(0u)), (2).xxxx)));
+}
+
+[numthreads(1, 1, 1)]
+void unused_entry_point() {
+}
+
diff --git a/test/tint/statements/compound_assign/vector/or.wgsl.expected.ir.dxc.hlsl b/test/tint/statements/compound_assign/vector/or.wgsl.expected.ir.dxc.hlsl
index 3f437dc..70f887a 100644
--- a/test/tint/statements/compound_assign/vector/or.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/statements/compound_assign/vector/or.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,10 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Access
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWByteAddressBuffer v : register(u0);
+void foo() {
+  v.Store4(0u, asuint((asint(v.Load4(0u)) | (2).xxxx)));
+}
+
+[numthreads(1, 1, 1)]
+void unused_entry_point() {
+}
+
diff --git a/test/tint/statements/compound_assign/vector/or.wgsl.expected.ir.fxc.hlsl b/test/tint/statements/compound_assign/vector/or.wgsl.expected.ir.fxc.hlsl
index 3f437dc..70f887a 100644
--- a/test/tint/statements/compound_assign/vector/or.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/statements/compound_assign/vector/or.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,10 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Access
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWByteAddressBuffer v : register(u0);
+void foo() {
+  v.Store4(0u, asuint((asint(v.Load4(0u)) | (2).xxxx)));
+}
+
+[numthreads(1, 1, 1)]
+void unused_entry_point() {
+}
+
diff --git a/test/tint/statements/compound_assign/vector/plus-scalar.wgsl.expected.ir.dxc.hlsl b/test/tint/statements/compound_assign/vector/plus-scalar.wgsl.expected.ir.dxc.hlsl
index 3f437dc..309c772 100644
--- a/test/tint/statements/compound_assign/vector/plus-scalar.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/statements/compound_assign/vector/plus-scalar.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,10 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Access
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWByteAddressBuffer v : register(u0);
+void foo() {
+  v.Store4(0u, asuint((asfloat(v.Load4(0u)) + 2.0f)));
+}
+
+[numthreads(1, 1, 1)]
+void unused_entry_point() {
+}
+
diff --git a/test/tint/statements/compound_assign/vector/plus-scalar.wgsl.expected.ir.fxc.hlsl b/test/tint/statements/compound_assign/vector/plus-scalar.wgsl.expected.ir.fxc.hlsl
index 3f437dc..309c772 100644
--- a/test/tint/statements/compound_assign/vector/plus-scalar.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/statements/compound_assign/vector/plus-scalar.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,10 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Access
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWByteAddressBuffer v : register(u0);
+void foo() {
+  v.Store4(0u, asuint((asfloat(v.Load4(0u)) + 2.0f)));
+}
+
+[numthreads(1, 1, 1)]
+void unused_entry_point() {
+}
+
diff --git a/test/tint/statements/compound_assign/vector/plus.wgsl.expected.ir.dxc.hlsl b/test/tint/statements/compound_assign/vector/plus.wgsl.expected.ir.dxc.hlsl
index 3f437dc..22d199a 100644
--- a/test/tint/statements/compound_assign/vector/plus.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/statements/compound_assign/vector/plus.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,10 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Access
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWByteAddressBuffer v : register(u0);
+void foo() {
+  v.Store4(0u, asuint((asint(v.Load4(0u)) + (2).xxxx)));
+}
+
+[numthreads(1, 1, 1)]
+void unused_entry_point() {
+}
+
diff --git a/test/tint/statements/compound_assign/vector/plus.wgsl.expected.ir.fxc.hlsl b/test/tint/statements/compound_assign/vector/plus.wgsl.expected.ir.fxc.hlsl
index 3f437dc..22d199a 100644
--- a/test/tint/statements/compound_assign/vector/plus.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/statements/compound_assign/vector/plus.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,10 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Access
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWByteAddressBuffer v : register(u0);
+void foo() {
+  v.Store4(0u, asuint((asint(v.Load4(0u)) + (2).xxxx)));
+}
+
+[numthreads(1, 1, 1)]
+void unused_entry_point() {
+}
+
diff --git a/test/tint/statements/compound_assign/vector/shift_left.wgsl.expected.ir.dxc.hlsl b/test/tint/statements/compound_assign/vector/shift_left.wgsl.expected.ir.dxc.hlsl
index 3f437dc..8f0b210 100644
--- a/test/tint/statements/compound_assign/vector/shift_left.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/statements/compound_assign/vector/shift_left.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,10 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Access
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWByteAddressBuffer v : register(u0);
+void foo() {
+  v.Store4(0u, asuint((asint(v.Load4(0u)) << ((2u).xxxx & (31u).xxxx))));
+}
+
+[numthreads(1, 1, 1)]
+void unused_entry_point() {
+}
+
diff --git a/test/tint/statements/compound_assign/vector/shift_left.wgsl.expected.ir.fxc.hlsl b/test/tint/statements/compound_assign/vector/shift_left.wgsl.expected.ir.fxc.hlsl
index 3f437dc..8f0b210 100644
--- a/test/tint/statements/compound_assign/vector/shift_left.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/statements/compound_assign/vector/shift_left.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,10 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Access
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWByteAddressBuffer v : register(u0);
+void foo() {
+  v.Store4(0u, asuint((asint(v.Load4(0u)) << ((2u).xxxx & (31u).xxxx))));
+}
+
+[numthreads(1, 1, 1)]
+void unused_entry_point() {
+}
+
diff --git a/test/tint/statements/compound_assign/vector/shift_right.wgsl.expected.ir.dxc.hlsl b/test/tint/statements/compound_assign/vector/shift_right.wgsl.expected.ir.dxc.hlsl
index 3f437dc..9cb8d98 100644
--- a/test/tint/statements/compound_assign/vector/shift_right.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/statements/compound_assign/vector/shift_right.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,10 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Access
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWByteAddressBuffer v : register(u0);
+void foo() {
+  v.Store4(0u, asuint((asint(v.Load4(0u)) >> ((2u).xxxx & (31u).xxxx))));
+}
+
+[numthreads(1, 1, 1)]
+void unused_entry_point() {
+}
+
diff --git a/test/tint/statements/compound_assign/vector/shift_right.wgsl.expected.ir.fxc.hlsl b/test/tint/statements/compound_assign/vector/shift_right.wgsl.expected.ir.fxc.hlsl
index 3f437dc..9cb8d98 100644
--- a/test/tint/statements/compound_assign/vector/shift_right.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/statements/compound_assign/vector/shift_right.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,10 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Access
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWByteAddressBuffer v : register(u0);
+void foo() {
+  v.Store4(0u, asuint((asint(v.Load4(0u)) >> ((2u).xxxx & (31u).xxxx))));
+}
+
+[numthreads(1, 1, 1)]
+void unused_entry_point() {
+}
+
diff --git a/test/tint/statements/compound_assign/vector/times-matrix.wgsl.expected.ir.dxc.hlsl b/test/tint/statements/compound_assign/vector/times-matrix.wgsl.expected.ir.dxc.hlsl
index 3f437dc..87517b7 100644
--- a/test/tint/statements/compound_assign/vector/times-matrix.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/statements/compound_assign/vector/times-matrix.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,10 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Access
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWByteAddressBuffer v : register(u0);
+void foo() {
+  v.Store4(0u, asuint(mul(float4x4((0.0f).xxxx, (0.0f).xxxx, (0.0f).xxxx, (0.0f).xxxx), asfloat(v.Load4(0u)))));
+}
+
+[numthreads(1, 1, 1)]
+void unused_entry_point() {
+}
+
diff --git a/test/tint/statements/compound_assign/vector/times-matrix.wgsl.expected.ir.fxc.hlsl b/test/tint/statements/compound_assign/vector/times-matrix.wgsl.expected.ir.fxc.hlsl
index 3f437dc..87517b7 100644
--- a/test/tint/statements/compound_assign/vector/times-matrix.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/statements/compound_assign/vector/times-matrix.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,10 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Access
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWByteAddressBuffer v : register(u0);
+void foo() {
+  v.Store4(0u, asuint(mul(float4x4((0.0f).xxxx, (0.0f).xxxx, (0.0f).xxxx, (0.0f).xxxx), asfloat(v.Load4(0u)))));
+}
+
+[numthreads(1, 1, 1)]
+void unused_entry_point() {
+}
+
diff --git a/test/tint/statements/compound_assign/vector/times-scalar.wgsl.expected.ir.dxc.hlsl b/test/tint/statements/compound_assign/vector/times-scalar.wgsl.expected.ir.dxc.hlsl
index 3f437dc..ac52587 100644
--- a/test/tint/statements/compound_assign/vector/times-scalar.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/statements/compound_assign/vector/times-scalar.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,10 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Access
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWByteAddressBuffer v : register(u0);
+void foo() {
+  v.Store4(0u, asuint((asfloat(v.Load4(0u)) * 2.0f)));
+}
+
+[numthreads(1, 1, 1)]
+void unused_entry_point() {
+}
+
diff --git a/test/tint/statements/compound_assign/vector/times-scalar.wgsl.expected.ir.fxc.hlsl b/test/tint/statements/compound_assign/vector/times-scalar.wgsl.expected.ir.fxc.hlsl
index 3f437dc..ac52587 100644
--- a/test/tint/statements/compound_assign/vector/times-scalar.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/statements/compound_assign/vector/times-scalar.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,10 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Access
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWByteAddressBuffer v : register(u0);
+void foo() {
+  v.Store4(0u, asuint((asfloat(v.Load4(0u)) * 2.0f)));
+}
+
+[numthreads(1, 1, 1)]
+void unused_entry_point() {
+}
+
diff --git a/test/tint/statements/compound_assign/vector/times.wgsl.expected.ir.dxc.hlsl b/test/tint/statements/compound_assign/vector/times.wgsl.expected.ir.dxc.hlsl
index 3f437dc..7f1c9f5 100644
--- a/test/tint/statements/compound_assign/vector/times.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/statements/compound_assign/vector/times.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,10 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Access
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWByteAddressBuffer v : register(u0);
+void foo() {
+  v.Store4(0u, asuint((asint(v.Load4(0u)) * (2).xxxx)));
+}
+
+[numthreads(1, 1, 1)]
+void unused_entry_point() {
+}
+
diff --git a/test/tint/statements/compound_assign/vector/times.wgsl.expected.ir.fxc.hlsl b/test/tint/statements/compound_assign/vector/times.wgsl.expected.ir.fxc.hlsl
index 3f437dc..7f1c9f5 100644
--- a/test/tint/statements/compound_assign/vector/times.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/statements/compound_assign/vector/times.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,10 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Access
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWByteAddressBuffer v : register(u0);
+void foo() {
+  v.Store4(0u, asuint((asint(v.Load4(0u)) * (2).xxxx)));
+}
+
+[numthreads(1, 1, 1)]
+void unused_entry_point() {
+}
+
diff --git a/test/tint/statements/compound_assign/vector/xor.wgsl.expected.ir.dxc.hlsl b/test/tint/statements/compound_assign/vector/xor.wgsl.expected.ir.dxc.hlsl
index 3f437dc..86c5589 100644
--- a/test/tint/statements/compound_assign/vector/xor.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/statements/compound_assign/vector/xor.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,10 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Access
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWByteAddressBuffer v : register(u0);
+void foo() {
+  v.Store4(0u, asuint((asint(v.Load4(0u)) ^ (2).xxxx)));
+}
+
+[numthreads(1, 1, 1)]
+void unused_entry_point() {
+}
+
diff --git a/test/tint/statements/compound_assign/vector/xor.wgsl.expected.ir.fxc.hlsl b/test/tint/statements/compound_assign/vector/xor.wgsl.expected.ir.fxc.hlsl
index 3f437dc..86c5589 100644
--- a/test/tint/statements/compound_assign/vector/xor.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/statements/compound_assign/vector/xor.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,10 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Access
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWByteAddressBuffer v : register(u0);
+void foo() {
+  v.Store4(0u, asuint((asint(v.Load4(0u)) ^ (2).xxxx)));
+}
+
+[numthreads(1, 1, 1)]
+void unused_entry_point() {
+}
+
diff --git a/test/tint/statements/compound_assign/workgroup.wgsl.expected.ir.dxc.hlsl b/test/tint/statements/compound_assign/workgroup.wgsl.expected.ir.dxc.hlsl
index 63c2a08..1d021ff 100644
--- a/test/tint/statements/compound_assign/workgroup.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/statements/compound_assign/workgroup.wgsl.expected.ir.dxc.hlsl
@@ -1,8 +1,14 @@
-SKIP: FAILED
+
+groupshared int a;
+groupshared float4 b;
+groupshared float2x2 c;
+int tint_div_i32(int lhs, int rhs) {
+  return (lhs / ((((rhs == 0) | ((lhs == -2147483648) & (rhs == -1)))) ? (1) : (rhs)));
+}
 
 void foo() {
-  a = (a / 2);
-  b = (b * float4x4((0.0f).xxxx, (0.0f).xxxx, (0.0f).xxxx, (0.0f).xxxx));
+  a = tint_div_i32(a, 2);
+  b = mul(float4x4((0.0f).xxxx, (0.0f).xxxx, (0.0f).xxxx, (0.0f).xxxx), b);
   c = (c * 2.0f);
 }
 
@@ -10,23 +16,3 @@
 void unused_entry_point() {
 }
 
-DXC validation failure:
-hlsl.hlsl:2:3: error: use of undeclared identifier 'a'
-  a = (a / 2);
-  ^
-hlsl.hlsl:2:8: error: use of undeclared identifier 'a'
-  a = (a / 2);
-       ^
-hlsl.hlsl:3:3: error: use of undeclared identifier 'b'
-  b = (b * float4x4((0.0f).xxxx, (0.0f).xxxx, (0.0f).xxxx, (0.0f).xxxx));
-  ^
-hlsl.hlsl:3:8: error: use of undeclared identifier 'b'
-  b = (b * float4x4((0.0f).xxxx, (0.0f).xxxx, (0.0f).xxxx, (0.0f).xxxx));
-       ^
-hlsl.hlsl:4:3: error: use of undeclared identifier 'c'
-  c = (c * 2.0f);
-  ^
-hlsl.hlsl:4:8: error: use of undeclared identifier 'c'
-  c = (c * 2.0f);
-       ^
-
diff --git a/test/tint/statements/compound_assign/workgroup.wgsl.expected.ir.fxc.hlsl b/test/tint/statements/compound_assign/workgroup.wgsl.expected.ir.fxc.hlsl
index f3480b8..1d021ff 100644
--- a/test/tint/statements/compound_assign/workgroup.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/statements/compound_assign/workgroup.wgsl.expected.ir.fxc.hlsl
@@ -1,8 +1,14 @@
-SKIP: FAILED
+
+groupshared int a;
+groupshared float4 b;
+groupshared float2x2 c;
+int tint_div_i32(int lhs, int rhs) {
+  return (lhs / ((((rhs == 0) | ((lhs == -2147483648) & (rhs == -1)))) ? (1) : (rhs)));
+}
 
 void foo() {
-  a = (a / 2);
-  b = (b * float4x4((0.0f).xxxx, (0.0f).xxxx, (0.0f).xxxx, (0.0f).xxxx));
+  a = tint_div_i32(a, 2);
+  b = mul(float4x4((0.0f).xxxx, (0.0f).xxxx, (0.0f).xxxx, (0.0f).xxxx), b);
   c = (c * 2.0f);
 }
 
diff --git a/test/tint/statements/decrement/array_element.wgsl.expected.ir.dxc.hlsl b/test/tint/statements/decrement/array_element.wgsl.expected.ir.dxc.hlsl
index 3f437dc..a35e7d0 100644
--- a/test/tint/statements/decrement/array_element.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/statements/decrement/array_element.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,10 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Access
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWByteAddressBuffer a : register(u0);
+void main() {
+  a.Store(4u, (a.Load(4u) - 1u));
+}
+
+[numthreads(1, 1, 1)]
+void unused_entry_point() {
+}
+
diff --git a/test/tint/statements/decrement/array_element.wgsl.expected.ir.fxc.hlsl b/test/tint/statements/decrement/array_element.wgsl.expected.ir.fxc.hlsl
index 3f437dc..a35e7d0 100644
--- a/test/tint/statements/decrement/array_element.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/statements/decrement/array_element.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,10 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Access
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWByteAddressBuffer a : register(u0);
+void main() {
+  a.Store(4u, (a.Load(4u) - 1u));
+}
+
+[numthreads(1, 1, 1)]
+void unused_entry_point() {
+}
+
diff --git a/test/tint/statements/decrement/complex.wgsl.expected.ir.dxc.hlsl b/test/tint/statements/decrement/complex.wgsl.expected.ir.dxc.hlsl
index adbb0c1..324a03d 100644
--- a/test/tint/statements/decrement/complex.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/statements/decrement/complex.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,69 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:198 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Loop
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWByteAddressBuffer buffer : register(u0);
+static uint v = 0u;
+int idx1() {
+  v = (v - 1u);
+  return 1;
+}
+
+int idx2() {
+  v = (v - 1u);
+  return 2;
+}
+
+int idx3() {
+  v = (v - 1u);
+  return 3;
+}
+
+int idx4() {
+  v = (v - 1u);
+  return 4;
+}
+
+int idx5() {
+  v = (v - 1u);
+  return 0;
+}
+
+int idx6() {
+  v = (v - 1u);
+  return 2;
+}
+
+void main() {
+  {
+    int v_1 = idx1();
+    int v_2 = idx2();
+    uint v_3 = (uint(v_1) * 64u);
+    uint v_4 = (uint(v_2) * 16u);
+    int v_5 = idx3();
+    uint v_6 = (uint(v_5) * 4u);
+    int v_7 = (asint(buffer.Load((((0u + v_3) + v_4) + v_6))) - 1);
+    uint v_8 = ((((0u + v_3) + v_4) + v_6) + (uint(v_5) * 4u));
+    buffer.Store(v_8, asuint(v_7));
+    while(true) {
+      if ((v < 10u)) {
+      } else {
+        break;
+      }
+      {
+        int v_9 = idx4();
+        int v_10 = idx5();
+        uint v_11 = (uint(v_9) * 64u);
+        uint v_12 = (uint(v_10) * 16u);
+        int v_13 = idx6();
+        uint v_14 = (uint(v_13) * 4u);
+        int v_15 = (asint(buffer.Load((((0u + v_11) + v_12) + v_14))) - 1);
+        uint v_16 = ((((0u + v_11) + v_12) + v_14) + (uint(v_13) * 4u));
+        buffer.Store(v_16, asuint(v_15));
+      }
+      continue;
+    }
+  }
+}
+
+[numthreads(1, 1, 1)]
+void unused_entry_point() {
+}
+
diff --git a/test/tint/statements/decrement/complex.wgsl.expected.ir.fxc.hlsl b/test/tint/statements/decrement/complex.wgsl.expected.ir.fxc.hlsl
index adbb0c1..ac360ca 100644
--- a/test/tint/statements/decrement/complex.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/statements/decrement/complex.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,206 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:198 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Loop
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+
+struct S {
+  a : array<vec4<i32>, 4>,
+}
+
+@group(0) @binding(0) var<storage, read_write> buffer : array<S>;
+
+var<private> v : u32;
+
+fn idx1() -> i32 {
+  v--;
+  return 1;
+}
+
+fn idx2() -> i32 {
+  v--;
+  return 2;
+}
+
+fn idx3() -> i32 {
+  v--;
+  return 3;
+}
+
+fn idx4() -> i32 {
+  v--;
+  return 4;
+}
+
+fn idx5() -> i32 {
+  v--;
+  return 0;
+}
+
+fn idx6() -> i32 {
+  v--;
+  return 2;
+}
+
+fn main() {
+  for(buffer[idx1()].a[idx2()][idx3()]--; (v < 10u); buffer[idx4()].a[idx5()][idx6()]--) {
+  }
+}
+
+Failed to generate: :73:28 error: binary: %34 is not in scope
+        %33:u32 = add %32, %34
+                           ^^^
+
+:61:7 note: in block
+      $B9: {  # initializer
+      ^^^
+
+:79:9 note: %34 declared here
+        %34:u32 = mul %39, 4u
+        ^^^^^^^
+
+:112:28 error: binary: %59 is not in scope
+        %58:u32 = add %57, %59
+                           ^^^
+
+:100:7 note: in block
+      $B11: {  # continuing
+      ^^^^
+
+:118:9 note: %59 declared here
+        %59:u32 = mul %64, 4u
+        ^^^^^^^
+
+note: # Disassembly
+S = struct @align(16) {
+  a:array<vec4<i32>, 4> @offset(0)
+}
+
+$B1: {  # root
+  %buffer:hlsl.byte_address_buffer<read_write> = var @binding_point(0, 0)
+  %v:ptr<private, u32, read_write> = var
+}
+
+%idx1 = func():i32 {
+  $B2: {
+    %4:u32 = load %v
+    %5:u32 = sub %4, 1u
+    store %v, %5
+    ret 1i
+  }
+}
+%idx2 = func():i32 {
+  $B3: {
+    %7:u32 = load %v
+    %8:u32 = sub %7, 1u
+    store %v, %8
+    ret 2i
+  }
+}
+%idx3 = func():i32 {
+  $B4: {
+    %10:u32 = load %v
+    %11:u32 = sub %10, 1u
+    store %v, %11
+    ret 3i
+  }
+}
+%idx4 = func():i32 {
+  $B5: {
+    %13:u32 = load %v
+    %14:u32 = sub %13, 1u
+    store %v, %14
+    ret 4i
+  }
+}
+%idx5 = func():i32 {
+  $B6: {
+    %16:u32 = load %v
+    %17:u32 = sub %16, 1u
+    store %v, %17
+    ret 0i
+  }
+}
+%idx6 = func():i32 {
+  $B7: {
+    %19:u32 = load %v
+    %20:u32 = sub %19, 1u
+    store %v, %20
+    ret 2i
+  }
+}
+%main = func():void {
+  $B8: {
+    loop [i: $B9, b: $B10, c: $B11] {  # loop_1
+      $B9: {  # initializer
+        %22:i32 = call %idx1
+        %23:i32 = call %idx2
+        %24:u32 = convert %22
+        %25:u32 = mul %24, 64u
+        %26:u32 = convert %23
+        %27:u32 = mul %26, 16u
+        %28:i32 = call %idx3
+        %29:u32 = convert %28
+        %30:u32 = mul %29, 4u
+        %31:u32 = add 0u, %25
+        %32:u32 = add %31, %27
+        %33:u32 = add %32, %34
+        %35:u32 = add %33, %30
+        %36:u32 = %buffer.Load %35
+        %37:i32 = bitcast %36
+        %38:i32 = sub %37, 1i
+        %39:u32 = convert %28
+        %34:u32 = mul %39, 4u
+        %40:u32 = add 0u, %25
+        %41:u32 = add %40, %27
+        %42:u32 = add %41, %34
+        %43:u32 = bitcast %38
+        %44:void = %buffer.Store %42, %43
+        next_iteration  # -> $B10
+      }
+      $B10: {  # body
+        %45:u32 = load %v
+        %46:bool = lt %45, 10u
+        if %46 [t: $B12, f: $B13] {  # if_1
+          $B12: {  # true
+            exit_if  # if_1
+          }
+          $B13: {  # false
+            exit_loop  # loop_1
+          }
+        }
+        continue  # -> $B11
+      }
+      $B11: {  # continuing
+        %47:i32 = call %idx4
+        %48:i32 = call %idx5
+        %49:u32 = convert %47
+        %50:u32 = mul %49, 64u
+        %51:u32 = convert %48
+        %52:u32 = mul %51, 16u
+        %53:i32 = call %idx6
+        %54:u32 = convert %53
+        %55:u32 = mul %54, 4u
+        %56:u32 = add 0u, %50
+        %57:u32 = add %56, %52
+        %58:u32 = add %57, %59
+        %60:u32 = add %58, %55
+        %61:u32 = %buffer.Load %60
+        %62:i32 = bitcast %61
+        %63:i32 = sub %62, 1i
+        %64:u32 = convert %53
+        %59:u32 = mul %64, 4u
+        %65:u32 = add 0u, %50
+        %66:u32 = add %65, %52
+        %67:u32 = add %66, %59
+        %68:u32 = bitcast %63
+        %69:void = %buffer.Store %67, %68
+        next_iteration  # -> $B10
+      }
+    }
+    ret
+  }
+}
+%unused_entry_point = @compute @workgroup_size(1, 1, 1) func():void {
+  $B14: {
+    ret
+  }
+}
+
diff --git a/test/tint/statements/decrement/for_loop_continuing.wgsl.expected.ir.dxc.hlsl b/test/tint/statements/decrement/for_loop_continuing.wgsl.expected.ir.dxc.hlsl
index adbb0c1..8a35549 100644
--- a/test/tint/statements/decrement/for_loop_continuing.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/statements/decrement/for_loop_continuing.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,21 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:198 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Loop
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWByteAddressBuffer i : register(u0);
+void main() {
+  {
+    while(true) {
+      if ((i.Load(0u) < 10u)) {
+      } else {
+        break;
+      }
+      {
+        i.Store(0u, (i.Load(0u) - 1u));
+      }
+      continue;
+    }
+  }
+}
+
+[numthreads(1, 1, 1)]
+void unused_entry_point() {
+}
+
diff --git a/test/tint/statements/decrement/for_loop_continuing.wgsl.expected.ir.fxc.hlsl b/test/tint/statements/decrement/for_loop_continuing.wgsl.expected.ir.fxc.hlsl
index adbb0c1..8a35549 100644
--- a/test/tint/statements/decrement/for_loop_continuing.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/statements/decrement/for_loop_continuing.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,21 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:198 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Loop
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWByteAddressBuffer i : register(u0);
+void main() {
+  {
+    while(true) {
+      if ((i.Load(0u) < 10u)) {
+      } else {
+        break;
+      }
+      {
+        i.Store(0u, (i.Load(0u) - 1u));
+      }
+      continue;
+    }
+  }
+}
+
+[numthreads(1, 1, 1)]
+void unused_entry_point() {
+}
+
diff --git a/test/tint/statements/decrement/for_loop_initializer.wgsl.expected.ir.dxc.hlsl b/test/tint/statements/decrement/for_loop_initializer.wgsl.expected.ir.dxc.hlsl
index adbb0c1..370e876 100644
--- a/test/tint/statements/decrement/for_loop_initializer.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/statements/decrement/for_loop_initializer.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,21 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:198 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Loop
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWByteAddressBuffer i : register(u0);
+void main() {
+  {
+    i.Store(0u, (i.Load(0u) - 1u));
+    while(true) {
+      if ((i.Load(0u) < 10u)) {
+      } else {
+        break;
+      }
+      {
+      }
+      continue;
+    }
+  }
+}
+
+[numthreads(1, 1, 1)]
+void unused_entry_point() {
+}
+
diff --git a/test/tint/statements/decrement/for_loop_initializer.wgsl.expected.ir.fxc.hlsl b/test/tint/statements/decrement/for_loop_initializer.wgsl.expected.ir.fxc.hlsl
index adbb0c1..370e876 100644
--- a/test/tint/statements/decrement/for_loop_initializer.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/statements/decrement/for_loop_initializer.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,21 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:198 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Loop
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWByteAddressBuffer i : register(u0);
+void main() {
+  {
+    i.Store(0u, (i.Load(0u) - 1u));
+    while(true) {
+      if ((i.Load(0u) < 10u)) {
+      } else {
+        break;
+      }
+      {
+      }
+      continue;
+    }
+  }
+}
+
+[numthreads(1, 1, 1)]
+void unused_entry_point() {
+}
+
diff --git a/test/tint/statements/decrement/function.wgsl.expected.ir.dxc.hlsl b/test/tint/statements/decrement/function.wgsl.expected.ir.dxc.hlsl
index 038979d..e1e2bdd 100644
--- a/test/tint/statements/decrement/function.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/statements/decrement/function.wgsl.expected.ir.dxc.hlsl
@@ -1,3 +1,4 @@
+
 void main() {
   int i = 0;
   i = (i - 1);
diff --git a/test/tint/statements/decrement/function.wgsl.expected.ir.fxc.hlsl b/test/tint/statements/decrement/function.wgsl.expected.ir.fxc.hlsl
index 7a65dc7..e1e2bdd 100644
--- a/test/tint/statements/decrement/function.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/statements/decrement/function.wgsl.expected.ir.fxc.hlsl
@@ -1,4 +1,3 @@
-SKIP: FAILED
 
 void main() {
   int i = 0;
diff --git a/test/tint/statements/decrement/private.wgsl.expected.ir.dxc.hlsl b/test/tint/statements/decrement/private.wgsl.expected.ir.dxc.hlsl
index 613a43b..bbed5e2 100644
--- a/test/tint/statements/decrement/private.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/statements/decrement/private.wgsl.expected.ir.dxc.hlsl
@@ -1,5 +1,5 @@
-SKIP: FAILED
 
+static int i = 0;
 void main() {
   i = (i - 1);
 }
@@ -8,11 +8,3 @@
 void unused_entry_point() {
 }
 
-DXC validation failure:
-hlsl.hlsl:2:3: error: use of undeclared identifier 'i'
-  i = (i - 1);
-  ^
-hlsl.hlsl:2:8: error: use of undeclared identifier 'i'
-  i = (i - 1);
-       ^
-
diff --git a/test/tint/statements/decrement/private.wgsl.expected.ir.fxc.hlsl b/test/tint/statements/decrement/private.wgsl.expected.ir.fxc.hlsl
index 3e4eda1..bbed5e2 100644
--- a/test/tint/statements/decrement/private.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/statements/decrement/private.wgsl.expected.ir.fxc.hlsl
@@ -1,5 +1,5 @@
-SKIP: FAILED
 
+static int i = 0;
 void main() {
   i = (i - 1);
 }
diff --git a/test/tint/statements/decrement/split.wgsl.expected.ir.dxc.hlsl b/test/tint/statements/decrement/split.wgsl.expected.ir.dxc.hlsl
index cf7df04..a1cb908 100644
--- a/test/tint/statements/decrement/split.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/statements/decrement/split.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,10 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::CoreUnary
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+void main() {
+  int b = 2;
+  int c = (b - -(b));
+}
+
+[numthreads(1, 1, 1)]
+void unused_entry_point() {
+}
+
diff --git a/test/tint/statements/decrement/split.wgsl.expected.ir.fxc.hlsl b/test/tint/statements/decrement/split.wgsl.expected.ir.fxc.hlsl
index cf7df04..a1cb908 100644
--- a/test/tint/statements/decrement/split.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/statements/decrement/split.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,10 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::CoreUnary
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+void main() {
+  int b = 2;
+  int c = (b - -(b));
+}
+
+[numthreads(1, 1, 1)]
+void unused_entry_point() {
+}
+
diff --git a/test/tint/statements/decrement/storage.wgsl.expected.ir.dxc.hlsl b/test/tint/statements/decrement/storage.wgsl.expected.ir.dxc.hlsl
index 30e4ca3..7434829 100644
--- a/test/tint/statements/decrement/storage.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/statements/decrement/storage.wgsl.expected.ir.dxc.hlsl
@@ -1,18 +1,10 @@
-SKIP: FAILED
 
+RWByteAddressBuffer i : register(u0);
 void main() {
-  i = (i - 1u);
+  i.Store(0u, (i.Load(0u) - 1u));
 }
 
 [numthreads(1, 1, 1)]
 void unused_entry_point() {
 }
 
-DXC validation failure:
-hlsl.hlsl:2:3: error: use of undeclared identifier 'i'
-  i = (i - 1u);
-  ^
-hlsl.hlsl:2:8: error: use of undeclared identifier 'i'
-  i = (i - 1u);
-       ^
-
diff --git a/test/tint/statements/decrement/storage.wgsl.expected.ir.fxc.hlsl b/test/tint/statements/decrement/storage.wgsl.expected.ir.fxc.hlsl
index e3bac84..7434829 100644
--- a/test/tint/statements/decrement/storage.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/statements/decrement/storage.wgsl.expected.ir.fxc.hlsl
@@ -1,7 +1,7 @@
-SKIP: FAILED
 
+RWByteAddressBuffer i : register(u0);
 void main() {
-  i = (i - 1u);
+  i.Store(0u, (i.Load(0u) - 1u));
 }
 
 [numthreads(1, 1, 1)]
diff --git a/test/tint/statements/decrement/vector_component.wgsl.expected.ir.dxc.hlsl b/test/tint/statements/decrement/vector_component.wgsl.expected.ir.dxc.hlsl
index c0935cc..3d753f8 100644
--- a/test/tint/statements/decrement/vector_component.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/statements/decrement/vector_component.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,11 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:198 internal compiler error: Switch() matched no cases. Type: tint::core::ir::StoreVectorElement
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWByteAddressBuffer a : register(u0);
+void main() {
+  a.Store(4u, (a.Load(4u) - 1u));
+  a.Store(8u, (a.Load(8u) - 1u));
+}
+
+[numthreads(1, 1, 1)]
+void unused_entry_point() {
+}
+
diff --git a/test/tint/statements/decrement/vector_component.wgsl.expected.ir.fxc.hlsl b/test/tint/statements/decrement/vector_component.wgsl.expected.ir.fxc.hlsl
index c0935cc..3d753f8 100644
--- a/test/tint/statements/decrement/vector_component.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/statements/decrement/vector_component.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,11 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:198 internal compiler error: Switch() matched no cases. Type: tint::core::ir::StoreVectorElement
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWByteAddressBuffer a : register(u0);
+void main() {
+  a.Store(4u, (a.Load(4u) - 1u));
+  a.Store(8u, (a.Load(8u) - 1u));
+}
+
+[numthreads(1, 1, 1)]
+void unused_entry_point() {
+}
+
diff --git a/test/tint/statements/decrement/workgroup.wgsl.expected.ir.dxc.hlsl b/test/tint/statements/decrement/workgroup.wgsl.expected.ir.dxc.hlsl
index 613a43b..7612403 100644
--- a/test/tint/statements/decrement/workgroup.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/statements/decrement/workgroup.wgsl.expected.ir.dxc.hlsl
@@ -1,5 +1,5 @@
-SKIP: FAILED
 
+groupshared int i;
 void main() {
   i = (i - 1);
 }
@@ -8,11 +8,3 @@
 void unused_entry_point() {
 }
 
-DXC validation failure:
-hlsl.hlsl:2:3: error: use of undeclared identifier 'i'
-  i = (i - 1);
-  ^
-hlsl.hlsl:2:8: error: use of undeclared identifier 'i'
-  i = (i - 1);
-       ^
-
diff --git a/test/tint/statements/decrement/workgroup.wgsl.expected.ir.fxc.hlsl b/test/tint/statements/decrement/workgroup.wgsl.expected.ir.fxc.hlsl
index 3e4eda1..7612403 100644
--- a/test/tint/statements/decrement/workgroup.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/statements/decrement/workgroup.wgsl.expected.ir.fxc.hlsl
@@ -1,5 +1,5 @@
-SKIP: FAILED
 
+groupshared int i;
 void main() {
   i = (i - 1);
 }
diff --git a/test/tint/statements/discard/atomic_cmpxchg.wgsl.expected.ir.dxc.hlsl b/test/tint/statements/discard/atomic_cmpxchg.wgsl.expected.ir.dxc.hlsl
index 0da5df3..519975b 100644
--- a/test/tint/statements/discard/atomic_cmpxchg.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/statements/discard/atomic_cmpxchg.wgsl.expected.ir.dxc.hlsl
@@ -1,3 +1,36 @@
-SKIP: FAILED
+struct atomic_compare_exchange_result_i32 {
+  int old_value;
+  bool exchanged;
+};
 
-signal: segmentation fault
\ No newline at end of file
+struct foo_outputs {
+  int tint_symbol : SV_Target0;
+};
+
+
+RWByteAddressBuffer a : register(u0);
+static bool continue_execution = true;
+int foo_inner() {
+  continue_execution = false;
+  int x = 0;
+  int v = 0;
+  a.InterlockedCompareExchange(int(0u), 0, 1, v);
+  int v_1 = v;
+  atomic_compare_exchange_result_i32 v_2 = {v_1, (v_1 == 0)};
+  atomic_compare_exchange_result_i32 result = v_2;
+  if (result.exchanged) {
+    atomic_compare_exchange_result_i32 v_3 = v_2;
+    x = v_3.old_value;
+  }
+  return x;
+}
+
+foo_outputs foo() {
+  foo_outputs v_4 = {foo_inner()};
+  if (!(continue_execution)) {
+    discard;
+  }
+  foo_outputs v_5 = v_4;
+  return v_5;
+}
+
diff --git a/test/tint/statements/discard/atomic_cmpxchg.wgsl.expected.ir.fxc.hlsl b/test/tint/statements/discard/atomic_cmpxchg.wgsl.expected.ir.fxc.hlsl
index 0da5df3..519975b 100644
--- a/test/tint/statements/discard/atomic_cmpxchg.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/statements/discard/atomic_cmpxchg.wgsl.expected.ir.fxc.hlsl
@@ -1,3 +1,36 @@
-SKIP: FAILED
+struct atomic_compare_exchange_result_i32 {
+  int old_value;
+  bool exchanged;
+};
 
-signal: segmentation fault
\ No newline at end of file
+struct foo_outputs {
+  int tint_symbol : SV_Target0;
+};
+
+
+RWByteAddressBuffer a : register(u0);
+static bool continue_execution = true;
+int foo_inner() {
+  continue_execution = false;
+  int x = 0;
+  int v = 0;
+  a.InterlockedCompareExchange(int(0u), 0, 1, v);
+  int v_1 = v;
+  atomic_compare_exchange_result_i32 v_2 = {v_1, (v_1 == 0)};
+  atomic_compare_exchange_result_i32 result = v_2;
+  if (result.exchanged) {
+    atomic_compare_exchange_result_i32 v_3 = v_2;
+    x = v_3.old_value;
+  }
+  return x;
+}
+
+foo_outputs foo() {
+  foo_outputs v_4 = {foo_inner()};
+  if (!(continue_execution)) {
+    discard;
+  }
+  foo_outputs v_5 = v_4;
+  return v_5;
+}
+
diff --git a/test/tint/statements/discard/atomic_in_for_loop_continuing.wgsl.expected.ir.dxc.hlsl b/test/tint/statements/discard/atomic_in_for_loop_continuing.wgsl.expected.ir.dxc.hlsl
index bdeab23..58230f6 100644
--- a/test/tint/statements/discard/atomic_in_for_loop_continuing.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/statements/discard/atomic_in_for_loop_continuing.wgsl.expected.ir.dxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:198 internal compiler error: Switch() matched no cases. Type: tint::core::ir::If
+..\..\src\tint\lang\hlsl\writer\printer\printer.cc:1010 internal compiler error: TINT_UNREACHABLE unhandled: textureSample
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/statements/discard/atomic_in_for_loop_continuing.wgsl.expected.ir.fxc.hlsl b/test/tint/statements/discard/atomic_in_for_loop_continuing.wgsl.expected.ir.fxc.hlsl
index bdeab23..58230f6 100644
--- a/test/tint/statements/discard/atomic_in_for_loop_continuing.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/statements/discard/atomic_in_for_loop_continuing.wgsl.expected.ir.fxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:198 internal compiler error: Switch() matched no cases. Type: tint::core::ir::If
+..\..\src\tint\lang\hlsl\writer\printer\printer.cc:1010 internal compiler error: TINT_UNREACHABLE unhandled: textureSample
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/statements/discard/discard_return.wgsl.expected.ir.dxc.hlsl b/test/tint/statements/discard/discard_return.wgsl.expected.ir.dxc.hlsl
index 0da5df3..ce5761f 100644
--- a/test/tint/statements/discard/discard_return.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/statements/discard/discard_return.wgsl.expected.ir.dxc.hlsl
@@ -1,3 +1,10 @@
-SKIP: FAILED
 
-signal: segmentation fault
\ No newline at end of file
+static bool continue_execution = true;
+void f() {
+  continue_execution = false;
+}
+
+[numthreads(1, 1, 1)]
+void unused_entry_point() {
+}
+
diff --git a/test/tint/statements/discard/discard_return.wgsl.expected.ir.fxc.hlsl b/test/tint/statements/discard/discard_return.wgsl.expected.ir.fxc.hlsl
index 0da5df3..ce5761f 100644
--- a/test/tint/statements/discard/discard_return.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/statements/discard/discard_return.wgsl.expected.ir.fxc.hlsl
@@ -1,3 +1,10 @@
-SKIP: FAILED
 
-signal: segmentation fault
\ No newline at end of file
+static bool continue_execution = true;
+void f() {
+  continue_execution = false;
+}
+
+[numthreads(1, 1, 1)]
+void unused_entry_point() {
+}
+
diff --git a/test/tint/statements/discard/helper_functions.wgsl.expected.ir.dxc.hlsl b/test/tint/statements/discard/helper_functions.wgsl.expected.ir.dxc.hlsl
index bdeab23..d1ee477 100644
--- a/test/tint/statements/discard/helper_functions.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/statements/discard/helper_functions.wgsl.expected.ir.dxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:198 internal compiler error: Switch() matched no cases. Type: tint::core::ir::If
+..\..\src\tint\lang\core\ir\transform\demote_to_helper.cc:208 internal compiler error: TINT_UNREACHABLE unexpected non-core instruction
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/statements/discard/helper_functions.wgsl.expected.ir.fxc.hlsl b/test/tint/statements/discard/helper_functions.wgsl.expected.ir.fxc.hlsl
index bdeab23..d1ee477 100644
--- a/test/tint/statements/discard/helper_functions.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/statements/discard/helper_functions.wgsl.expected.ir.fxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:198 internal compiler error: Switch() matched no cases. Type: tint::core::ir::If
+..\..\src\tint\lang\core\ir\transform\demote_to_helper.cc:208 internal compiler error: TINT_UNREACHABLE unexpected non-core instruction
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/statements/discard/if_discard_return.wgsl.expected.ir.dxc.hlsl b/test/tint/statements/discard/if_discard_return.wgsl.expected.ir.dxc.hlsl
index bdeab23..f42f648 100644
--- a/test/tint/statements/discard/if_discard_return.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/statements/discard/if_discard_return.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,13 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:198 internal compiler error: Switch() matched no cases. Type: tint::core::ir::If
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+static bool continue_execution = true;
+void f(bool cond) {
+  if (cond) {
+    continue_execution = false;
+    return;
+  }
+}
+
+[numthreads(1, 1, 1)]
+void unused_entry_point() {
+}
+
diff --git a/test/tint/statements/discard/if_discard_return.wgsl.expected.ir.fxc.hlsl b/test/tint/statements/discard/if_discard_return.wgsl.expected.ir.fxc.hlsl
index bdeab23..f42f648 100644
--- a/test/tint/statements/discard/if_discard_return.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/statements/discard/if_discard_return.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,13 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:198 internal compiler error: Switch() matched no cases. Type: tint::core::ir::If
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+static bool continue_execution = true;
+void f(bool cond) {
+  if (cond) {
+    continue_execution = false;
+    return;
+  }
+}
+
+[numthreads(1, 1, 1)]
+void unused_entry_point() {
+}
+
diff --git a/test/tint/statements/discard/loop_discard_return.wgsl.expected.ir.dxc.hlsl b/test/tint/statements/discard/loop_discard_return.wgsl.expected.ir.dxc.hlsl
index adbb0c1..7bf75a1 100644
--- a/test/tint/statements/discard/loop_discard_return.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/statements/discard/loop_discard_return.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,16 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:198 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Loop
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+static bool continue_execution = true;
+void f() {
+  {
+    while(true) {
+      continue_execution = false;
+      return;
+    }
+  }
+  /* unreachable */
+}
+
+[numthreads(1, 1, 1)]
+void unused_entry_point() {
+}
+
diff --git a/test/tint/statements/discard/loop_discard_return.wgsl.expected.ir.fxc.hlsl b/test/tint/statements/discard/loop_discard_return.wgsl.expected.ir.fxc.hlsl
index adbb0c1..7bf75a1 100644
--- a/test/tint/statements/discard/loop_discard_return.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/statements/discard/loop_discard_return.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,16 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:198 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Loop
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+static bool continue_execution = true;
+void f() {
+  {
+    while(true) {
+      continue_execution = false;
+      return;
+    }
+  }
+  /* unreachable */
+}
+
+[numthreads(1, 1, 1)]
+void unused_entry_point() {
+}
+
diff --git a/test/tint/statements/discard/multiple_returns.wgsl.expected.ir.dxc.hlsl b/test/tint/statements/discard/multiple_returns.wgsl.expected.ir.dxc.hlsl
index bdeab23..d1ee477 100644
--- a/test/tint/statements/discard/multiple_returns.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/statements/discard/multiple_returns.wgsl.expected.ir.dxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:198 internal compiler error: Switch() matched no cases. Type: tint::core::ir::If
+..\..\src\tint\lang\core\ir\transform\demote_to_helper.cc:208 internal compiler error: TINT_UNREACHABLE unexpected non-core instruction
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/statements/discard/multiple_returns.wgsl.expected.ir.fxc.hlsl b/test/tint/statements/discard/multiple_returns.wgsl.expected.ir.fxc.hlsl
index bdeab23..d1ee477 100644
--- a/test/tint/statements/discard/multiple_returns.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/statements/discard/multiple_returns.wgsl.expected.ir.fxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:198 internal compiler error: Switch() matched no cases. Type: tint::core::ir::If
+..\..\src\tint\lang\core\ir\transform\demote_to_helper.cc:208 internal compiler error: TINT_UNREACHABLE unexpected non-core instruction
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/statements/discard/nested_return.wgsl.expected.ir.dxc.hlsl b/test/tint/statements/discard/nested_return.wgsl.expected.ir.dxc.hlsl
index bdeab23..d1ee477 100644
--- a/test/tint/statements/discard/nested_return.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/statements/discard/nested_return.wgsl.expected.ir.dxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:198 internal compiler error: Switch() matched no cases. Type: tint::core::ir::If
+..\..\src\tint\lang\core\ir\transform\demote_to_helper.cc:208 internal compiler error: TINT_UNREACHABLE unexpected non-core instruction
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/statements/discard/nested_return.wgsl.expected.ir.fxc.hlsl b/test/tint/statements/discard/nested_return.wgsl.expected.ir.fxc.hlsl
index bdeab23..d1ee477 100644
--- a/test/tint/statements/discard/nested_return.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/statements/discard/nested_return.wgsl.expected.ir.fxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:198 internal compiler error: Switch() matched no cases. Type: tint::core::ir::If
+..\..\src\tint\lang\core\ir\transform\demote_to_helper.cc:208 internal compiler error: TINT_UNREACHABLE unexpected non-core instruction
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/statements/discard/non_uniform.wgsl.expected.ir.dxc.hlsl b/test/tint/statements/discard/non_uniform.wgsl.expected.ir.dxc.hlsl
index bdeab23..d1ee477 100644
--- a/test/tint/statements/discard/non_uniform.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/statements/discard/non_uniform.wgsl.expected.ir.dxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:198 internal compiler error: Switch() matched no cases. Type: tint::core::ir::If
+..\..\src\tint\lang\core\ir\transform\demote_to_helper.cc:208 internal compiler error: TINT_UNREACHABLE unexpected non-core instruction
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/statements/discard/non_uniform.wgsl.expected.ir.fxc.hlsl b/test/tint/statements/discard/non_uniform.wgsl.expected.ir.fxc.hlsl
index bdeab23..d1ee477 100644
--- a/test/tint/statements/discard/non_uniform.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/statements/discard/non_uniform.wgsl.expected.ir.fxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:198 internal compiler error: Switch() matched no cases. Type: tint::core::ir::If
+..\..\src\tint\lang\core\ir\transform\demote_to_helper.cc:208 internal compiler error: TINT_UNREACHABLE unexpected non-core instruction
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/statements/for/basic.wgsl.expected.ir.dxc.hlsl b/test/tint/statements/for/basic.wgsl.expected.ir.dxc.hlsl
index adbb0c1..6f46bb3 100644
--- a/test/tint/statements/for/basic.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/statements/for/basic.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,25 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:198 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Loop
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+void some_loop_body() {
+}
+
+void f() {
+  {
+    int i = 0;
+    while(true) {
+      if ((i < 5)) {
+      } else {
+        break;
+      }
+      some_loop_body();
+      {
+        i = (i + 1);
+      }
+      continue;
+    }
+  }
+}
+
+[numthreads(1, 1, 1)]
+void unused_entry_point() {
+}
+
diff --git a/test/tint/statements/for/basic.wgsl.expected.ir.fxc.hlsl b/test/tint/statements/for/basic.wgsl.expected.ir.fxc.hlsl
index adbb0c1..6f46bb3 100644
--- a/test/tint/statements/for/basic.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/statements/for/basic.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,25 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:198 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Loop
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+void some_loop_body() {
+}
+
+void f() {
+  {
+    int i = 0;
+    while(true) {
+      if ((i < 5)) {
+      } else {
+        break;
+      }
+      some_loop_body();
+      {
+        i = (i + 1);
+      }
+      continue;
+    }
+  }
+}
+
+[numthreads(1, 1, 1)]
+void unused_entry_point() {
+}
+
diff --git a/test/tint/statements/for/complex.wgsl.expected.ir.dxc.hlsl b/test/tint/statements/for/complex.wgsl.expected.ir.dxc.hlsl
index adbb0c1..e848e02 100644
--- a/test/tint/statements/for/complex.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/statements/for/complex.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,33 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:198 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Loop
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+void some_loop_body() {
+}
+
+void f() {
+  int j = 0;
+  {
+    int i = 0;
+    while(true) {
+      bool v = false;
+      if ((i < 5)) {
+        v = (j < 10);
+      } else {
+        v = false;
+      }
+      if (v) {
+      } else {
+        break;
+      }
+      some_loop_body();
+      j = (i * 30);
+      {
+        i = (i + 1);
+      }
+      continue;
+    }
+  }
+}
+
+[numthreads(1, 1, 1)]
+void unused_entry_point() {
+}
+
diff --git a/test/tint/statements/for/complex.wgsl.expected.ir.fxc.hlsl b/test/tint/statements/for/complex.wgsl.expected.ir.fxc.hlsl
index adbb0c1..e848e02 100644
--- a/test/tint/statements/for/complex.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/statements/for/complex.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,33 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:198 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Loop
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+void some_loop_body() {
+}
+
+void f() {
+  int j = 0;
+  {
+    int i = 0;
+    while(true) {
+      bool v = false;
+      if ((i < 5)) {
+        v = (j < 10);
+      } else {
+        v = false;
+      }
+      if (v) {
+      } else {
+        break;
+      }
+      some_loop_body();
+      j = (i * 30);
+      {
+        i = (i + 1);
+      }
+      continue;
+    }
+  }
+}
+
+[numthreads(1, 1, 1)]
+void unused_entry_point() {
+}
+
diff --git a/test/tint/statements/for/condition/array_ctor.wgsl.expected.ir.dxc.hlsl b/test/tint/statements/for/condition/array_ctor.wgsl.expected.ir.dxc.hlsl
index adbb0c1..973918a 100644
--- a/test/tint/statements/for/condition/array_ctor.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/statements/for/condition/array_ctor.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,20 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:198 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Loop
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+void f() {
+  int i = 0;
+  {
+    while(true) {
+      if ((i < 1)) {
+      } else {
+        break;
+      }
+      {
+      }
+      continue;
+    }
+  }
+}
+
+[numthreads(1, 1, 1)]
+void unused_entry_point() {
+}
+
diff --git a/test/tint/statements/for/condition/array_ctor.wgsl.expected.ir.fxc.hlsl b/test/tint/statements/for/condition/array_ctor.wgsl.expected.ir.fxc.hlsl
index adbb0c1..973918a 100644
--- a/test/tint/statements/for/condition/array_ctor.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/statements/for/condition/array_ctor.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,20 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:198 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Loop
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+void f() {
+  int i = 0;
+  {
+    while(true) {
+      if ((i < 1)) {
+      } else {
+        break;
+      }
+      {
+      }
+      continue;
+    }
+  }
+}
+
+[numthreads(1, 1, 1)]
+void unused_entry_point() {
+}
+
diff --git a/test/tint/statements/for/condition/basic.wgsl.expected.ir.dxc.hlsl b/test/tint/statements/for/condition/basic.wgsl.expected.ir.dxc.hlsl
index adbb0c1..6046fb6 100644
--- a/test/tint/statements/for/condition/basic.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/statements/for/condition/basic.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,20 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:198 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Loop
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+void f() {
+  int i = 0;
+  {
+    while(true) {
+      if ((i < 4)) {
+      } else {
+        break;
+      }
+      {
+      }
+      continue;
+    }
+  }
+}
+
+[numthreads(1, 1, 1)]
+void unused_entry_point() {
+}
+
diff --git a/test/tint/statements/for/condition/basic.wgsl.expected.ir.fxc.hlsl b/test/tint/statements/for/condition/basic.wgsl.expected.ir.fxc.hlsl
index adbb0c1..6046fb6 100644
--- a/test/tint/statements/for/condition/basic.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/statements/for/condition/basic.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,20 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:198 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Loop
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+void f() {
+  int i = 0;
+  {
+    while(true) {
+      if ((i < 4)) {
+      } else {
+        break;
+      }
+      {
+      }
+      continue;
+    }
+  }
+}
+
+[numthreads(1, 1, 1)]
+void unused_entry_point() {
+}
+
diff --git a/test/tint/statements/for/condition/struct_ctor.wgsl.expected.ir.dxc.hlsl b/test/tint/statements/for/condition/struct_ctor.wgsl.expected.ir.dxc.hlsl
index adbb0c1..973918a 100644
--- a/test/tint/statements/for/condition/struct_ctor.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/statements/for/condition/struct_ctor.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,20 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:198 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Loop
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+void f() {
+  int i = 0;
+  {
+    while(true) {
+      if ((i < 1)) {
+      } else {
+        break;
+      }
+      {
+      }
+      continue;
+    }
+  }
+}
+
+[numthreads(1, 1, 1)]
+void unused_entry_point() {
+}
+
diff --git a/test/tint/statements/for/condition/struct_ctor.wgsl.expected.ir.fxc.hlsl b/test/tint/statements/for/condition/struct_ctor.wgsl.expected.ir.fxc.hlsl
index adbb0c1..973918a 100644
--- a/test/tint/statements/for/condition/struct_ctor.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/statements/for/condition/struct_ctor.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,20 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:198 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Loop
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+void f() {
+  int i = 0;
+  {
+    while(true) {
+      if ((i < 1)) {
+      } else {
+        break;
+      }
+      {
+      }
+      continue;
+    }
+  }
+}
+
+[numthreads(1, 1, 1)]
+void unused_entry_point() {
+}
+
diff --git a/test/tint/statements/for/continuing/array_ctor.wgsl.expected.ir.dxc.hlsl b/test/tint/statements/for/continuing/array_ctor.wgsl.expected.ir.dxc.hlsl
index adbb0c1..e2724cf 100644
--- a/test/tint/statements/for/continuing/array_ctor.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/statements/for/continuing/array_ctor.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,21 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:198 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Loop
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+void f() {
+  int i = 0;
+  {
+    while(true) {
+      if (false) {
+      } else {
+        break;
+      }
+      {
+        i = (i + 1);
+      }
+      continue;
+    }
+  }
+}
+
+[numthreads(1, 1, 1)]
+void unused_entry_point() {
+}
+
diff --git a/test/tint/statements/for/continuing/array_ctor.wgsl.expected.ir.fxc.hlsl b/test/tint/statements/for/continuing/array_ctor.wgsl.expected.ir.fxc.hlsl
index adbb0c1..e2724cf 100644
--- a/test/tint/statements/for/continuing/array_ctor.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/statements/for/continuing/array_ctor.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,21 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:198 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Loop
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+void f() {
+  int i = 0;
+  {
+    while(true) {
+      if (false) {
+      } else {
+        break;
+      }
+      {
+        i = (i + 1);
+      }
+      continue;
+    }
+  }
+}
+
+[numthreads(1, 1, 1)]
+void unused_entry_point() {
+}
+
diff --git a/test/tint/statements/for/continuing/basic.wgsl.expected.ir.dxc.hlsl b/test/tint/statements/for/continuing/basic.wgsl.expected.ir.dxc.hlsl
index adbb0c1..e2724cf 100644
--- a/test/tint/statements/for/continuing/basic.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/statements/for/continuing/basic.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,21 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:198 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Loop
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+void f() {
+  int i = 0;
+  {
+    while(true) {
+      if (false) {
+      } else {
+        break;
+      }
+      {
+        i = (i + 1);
+      }
+      continue;
+    }
+  }
+}
+
+[numthreads(1, 1, 1)]
+void unused_entry_point() {
+}
+
diff --git a/test/tint/statements/for/continuing/basic.wgsl.expected.ir.fxc.hlsl b/test/tint/statements/for/continuing/basic.wgsl.expected.ir.fxc.hlsl
index adbb0c1..e2724cf 100644
--- a/test/tint/statements/for/continuing/basic.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/statements/for/continuing/basic.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,21 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:198 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Loop
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+void f() {
+  int i = 0;
+  {
+    while(true) {
+      if (false) {
+      } else {
+        break;
+      }
+      {
+        i = (i + 1);
+      }
+      continue;
+    }
+  }
+}
+
+[numthreads(1, 1, 1)]
+void unused_entry_point() {
+}
+
diff --git a/test/tint/statements/for/continuing/struct_ctor.wgsl.expected.ir.dxc.hlsl b/test/tint/statements/for/continuing/struct_ctor.wgsl.expected.ir.dxc.hlsl
index adbb0c1..47fb9d8 100644
--- a/test/tint/statements/for/continuing/struct_ctor.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/statements/for/continuing/struct_ctor.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,21 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:198 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Loop
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+void f() {
+  {
+    int i = 0;
+    while(true) {
+      if (false) {
+      } else {
+        break;
+      }
+      {
+        i = (i + 1);
+      }
+      continue;
+    }
+  }
+}
+
+[numthreads(1, 1, 1)]
+void unused_entry_point() {
+}
+
diff --git a/test/tint/statements/for/continuing/struct_ctor.wgsl.expected.ir.fxc.hlsl b/test/tint/statements/for/continuing/struct_ctor.wgsl.expected.ir.fxc.hlsl
index adbb0c1..47fb9d8 100644
--- a/test/tint/statements/for/continuing/struct_ctor.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/statements/for/continuing/struct_ctor.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,21 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:198 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Loop
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+void f() {
+  {
+    int i = 0;
+    while(true) {
+      if (false) {
+      } else {
+        break;
+      }
+      {
+        i = (i + 1);
+      }
+      continue;
+    }
+  }
+}
+
+[numthreads(1, 1, 1)]
+void unused_entry_point() {
+}
+
diff --git a/test/tint/statements/for/empty.wgsl.expected.ir.dxc.hlsl b/test/tint/statements/for/empty.wgsl.expected.ir.dxc.hlsl
index adbb0c1..d8bd76e 100644
--- a/test/tint/statements/for/empty.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/statements/for/empty.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,19 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:198 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Loop
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+void f() {
+  {
+    while(true) {
+      if (false) {
+      } else {
+        break;
+      }
+      {
+      }
+      continue;
+    }
+  }
+}
+
+[numthreads(1, 1, 1)]
+void unused_entry_point() {
+}
+
diff --git a/test/tint/statements/for/empty.wgsl.expected.ir.fxc.hlsl b/test/tint/statements/for/empty.wgsl.expected.ir.fxc.hlsl
index adbb0c1..d8bd76e 100644
--- a/test/tint/statements/for/empty.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/statements/for/empty.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,19 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:198 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Loop
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+void f() {
+  {
+    while(true) {
+      if (false) {
+      } else {
+        break;
+      }
+      {
+      }
+      continue;
+    }
+  }
+}
+
+[numthreads(1, 1, 1)]
+void unused_entry_point() {
+}
+
diff --git a/test/tint/statements/for/initializer/array_ctor.wgsl.expected.ir.dxc.hlsl b/test/tint/statements/for/initializer/array_ctor.wgsl.expected.ir.dxc.hlsl
index adbb0c1..9353348 100644
--- a/test/tint/statements/for/initializer/array_ctor.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/statements/for/initializer/array_ctor.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,20 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:198 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Loop
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+void f() {
+  {
+    int i = 1;
+    while(true) {
+      if (false) {
+      } else {
+        break;
+      }
+      {
+      }
+      continue;
+    }
+  }
+}
+
+[numthreads(1, 1, 1)]
+void unused_entry_point() {
+}
+
diff --git a/test/tint/statements/for/initializer/array_ctor.wgsl.expected.ir.fxc.hlsl b/test/tint/statements/for/initializer/array_ctor.wgsl.expected.ir.fxc.hlsl
index adbb0c1..9353348 100644
--- a/test/tint/statements/for/initializer/array_ctor.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/statements/for/initializer/array_ctor.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,20 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:198 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Loop
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+void f() {
+  {
+    int i = 1;
+    while(true) {
+      if (false) {
+      } else {
+        break;
+      }
+      {
+      }
+      continue;
+    }
+  }
+}
+
+[numthreads(1, 1, 1)]
+void unused_entry_point() {
+}
+
diff --git a/test/tint/statements/for/initializer/basic.wgsl.expected.ir.dxc.hlsl b/test/tint/statements/for/initializer/basic.wgsl.expected.ir.dxc.hlsl
index adbb0c1..6570b68 100644
--- a/test/tint/statements/for/initializer/basic.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/statements/for/initializer/basic.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,20 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:198 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Loop
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+void f() {
+  {
+    int i = 0;
+    while(true) {
+      if (false) {
+      } else {
+        break;
+      }
+      {
+      }
+      continue;
+    }
+  }
+}
+
+[numthreads(1, 1, 1)]
+void unused_entry_point() {
+}
+
diff --git a/test/tint/statements/for/initializer/basic.wgsl.expected.ir.fxc.hlsl b/test/tint/statements/for/initializer/basic.wgsl.expected.ir.fxc.hlsl
index adbb0c1..6570b68 100644
--- a/test/tint/statements/for/initializer/basic.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/statements/for/initializer/basic.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,20 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:198 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Loop
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+void f() {
+  {
+    int i = 0;
+    while(true) {
+      if (false) {
+      } else {
+        break;
+      }
+      {
+      }
+      continue;
+    }
+  }
+}
+
+[numthreads(1, 1, 1)]
+void unused_entry_point() {
+}
+
diff --git a/test/tint/statements/for/initializer/struct_ctor.wgsl.expected.ir.dxc.hlsl b/test/tint/statements/for/initializer/struct_ctor.wgsl.expected.ir.dxc.hlsl
index adbb0c1..9353348 100644
--- a/test/tint/statements/for/initializer/struct_ctor.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/statements/for/initializer/struct_ctor.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,20 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:198 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Loop
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+void f() {
+  {
+    int i = 1;
+    while(true) {
+      if (false) {
+      } else {
+        break;
+      }
+      {
+      }
+      continue;
+    }
+  }
+}
+
+[numthreads(1, 1, 1)]
+void unused_entry_point() {
+}
+
diff --git a/test/tint/statements/for/initializer/struct_ctor.wgsl.expected.ir.fxc.hlsl b/test/tint/statements/for/initializer/struct_ctor.wgsl.expected.ir.fxc.hlsl
index adbb0c1..9353348 100644
--- a/test/tint/statements/for/initializer/struct_ctor.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/statements/for/initializer/struct_ctor.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,20 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:198 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Loop
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+void f() {
+  {
+    int i = 1;
+    while(true) {
+      if (false) {
+      } else {
+        break;
+      }
+      {
+      }
+      continue;
+    }
+  }
+}
+
+[numthreads(1, 1, 1)]
+void unused_entry_point() {
+}
+
diff --git a/test/tint/statements/for/scoping.wgsl.expected.ir.dxc.hlsl b/test/tint/statements/for/scoping.wgsl.expected.ir.dxc.hlsl
index adbb0c1..fd1154b 100644
--- a/test/tint/statements/for/scoping.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/statements/for/scoping.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,15 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:198 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Loop
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+void f() {
+  {
+    int must_not_collide = 0;
+    while(true) {
+      break;
+    }
+  }
+  int must_not_collide = 0;
+}
+
+[numthreads(1, 1, 1)]
+void unused_entry_point() {
+}
+
diff --git a/test/tint/statements/for/scoping.wgsl.expected.ir.fxc.hlsl b/test/tint/statements/for/scoping.wgsl.expected.ir.fxc.hlsl
index adbb0c1..fd1154b 100644
--- a/test/tint/statements/for/scoping.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/statements/for/scoping.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,15 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:198 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Loop
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+void f() {
+  {
+    int must_not_collide = 0;
+    while(true) {
+      break;
+    }
+  }
+  int must_not_collide = 0;
+}
+
+[numthreads(1, 1, 1)]
+void unused_entry_point() {
+}
+
diff --git a/test/tint/statements/increment/array_element.wgsl.expected.ir.dxc.hlsl b/test/tint/statements/increment/array_element.wgsl.expected.ir.dxc.hlsl
index 3f437dc..63cf2b0 100644
--- a/test/tint/statements/increment/array_element.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/statements/increment/array_element.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,10 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Access
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWByteAddressBuffer a : register(u0);
+void main() {
+  a.Store(4u, (a.Load(4u) + 1u));
+}
+
+[numthreads(1, 1, 1)]
+void unused_entry_point() {
+}
+
diff --git a/test/tint/statements/increment/array_element.wgsl.expected.ir.fxc.hlsl b/test/tint/statements/increment/array_element.wgsl.expected.ir.fxc.hlsl
index 3f437dc..63cf2b0 100644
--- a/test/tint/statements/increment/array_element.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/statements/increment/array_element.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,10 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Access
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWByteAddressBuffer a : register(u0);
+void main() {
+  a.Store(4u, (a.Load(4u) + 1u));
+}
+
+[numthreads(1, 1, 1)]
+void unused_entry_point() {
+}
+
diff --git a/test/tint/statements/increment/complex.wgsl.expected.ir.dxc.hlsl b/test/tint/statements/increment/complex.wgsl.expected.ir.dxc.hlsl
index adbb0c1..12d1d1b 100644
--- a/test/tint/statements/increment/complex.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/statements/increment/complex.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,69 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:198 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Loop
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWByteAddressBuffer buffer : register(u0);
+static uint v = 0u;
+int idx1() {
+  v = (v + 1u);
+  return 1;
+}
+
+int idx2() {
+  v = (v + 1u);
+  return 2;
+}
+
+int idx3() {
+  v = (v + 1u);
+  return 3;
+}
+
+int idx4() {
+  v = (v + 1u);
+  return 4;
+}
+
+int idx5() {
+  v = (v + 1u);
+  return 0;
+}
+
+int idx6() {
+  v = (v + 1u);
+  return 2;
+}
+
+void main() {
+  {
+    int v_1 = idx1();
+    int v_2 = idx2();
+    uint v_3 = (uint(v_1) * 64u);
+    uint v_4 = (uint(v_2) * 16u);
+    int v_5 = idx3();
+    uint v_6 = (uint(v_5) * 4u);
+    int v_7 = (asint(buffer.Load((((0u + v_3) + v_4) + v_6))) + 1);
+    uint v_8 = ((((0u + v_3) + v_4) + v_6) + (uint(v_5) * 4u));
+    buffer.Store(v_8, asuint(v_7));
+    while(true) {
+      if ((v < 10u)) {
+      } else {
+        break;
+      }
+      {
+        int v_9 = idx4();
+        int v_10 = idx5();
+        uint v_11 = (uint(v_9) * 64u);
+        uint v_12 = (uint(v_10) * 16u);
+        int v_13 = idx6();
+        uint v_14 = (uint(v_13) * 4u);
+        int v_15 = (asint(buffer.Load((((0u + v_11) + v_12) + v_14))) + 1);
+        uint v_16 = ((((0u + v_11) + v_12) + v_14) + (uint(v_13) * 4u));
+        buffer.Store(v_16, asuint(v_15));
+      }
+      continue;
+    }
+  }
+}
+
+[numthreads(1, 1, 1)]
+void unused_entry_point() {
+}
+
diff --git a/test/tint/statements/increment/complex.wgsl.expected.ir.fxc.hlsl b/test/tint/statements/increment/complex.wgsl.expected.ir.fxc.hlsl
index adbb0c1..baf0332 100644
--- a/test/tint/statements/increment/complex.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/statements/increment/complex.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,194 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:198 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Loop
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+
+struct S {
+  a : array<vec4<i32>, 4>,
+}
+
+@group(0) @binding(0) var<storage, read_write> buffer : array<S>;
+
+var<private> v : u32;
+
+fn idx1() -> i32 {
+  v++;
+  return 1;
+}
+
+fn idx2() -> i32 {
+  v++;
+  return 2;
+}
+
+fn idx3() -> i32 {
+  v++;
+  return 3;
+}
+
+fn idx4() -> i32 {
+  v++;
+  return 4;
+}
+
+fn idx5() -> i32 {
+  v++;
+  return 0;
+}
+
+fn idx6() -> i32 {
+  v++;
+  return 2;
+}
+
+fn main() {
+  for(buffer[idx1()].a[idx2()][idx3()]++; (v < 10u); buffer[idx4()].a[idx5()][idx6()]++) {
+  }
+}
+
+Failed to generate: :73:28 error: binary: %34 is not in scope
+        %33:u32 = add %32, %34
+                           ^^^
+
+:61:7 note: in block
+      $B9: {  # initializer
+      ^^^
+
+:79:9 note: %34 declared here
+        %34:u32 = mul %39, 4u
+        ^^^^^^^
+
+note: # Disassembly
+S = struct @align(16) {
+  a:array<vec4<i32>, 4> @offset(0)
+}
+
+$B1: {  # root
+  %buffer:hlsl.byte_address_buffer<read_write> = var @binding_point(0, 0)
+  %v:ptr<private, u32, read_write> = var
+}
+
+%idx1 = func():i32 {
+  $B2: {
+    %4:u32 = load %v
+    %5:u32 = add %4, 1u
+    store %v, %5
+    ret 1i
+  }
+}
+%idx2 = func():i32 {
+  $B3: {
+    %7:u32 = load %v
+    %8:u32 = add %7, 1u
+    store %v, %8
+    ret 2i
+  }
+}
+%idx3 = func():i32 {
+  $B4: {
+    %10:u32 = load %v
+    %11:u32 = add %10, 1u
+    store %v, %11
+    ret 3i
+  }
+}
+%idx4 = func():i32 {
+  $B5: {
+    %13:u32 = load %v
+    %14:u32 = add %13, 1u
+    store %v, %14
+    ret 4i
+  }
+}
+%idx5 = func():i32 {
+  $B6: {
+    %16:u32 = load %v
+    %17:u32 = add %16, 1u
+    store %v, %17
+    ret 0i
+  }
+}
+%idx6 = func():i32 {
+  $B7: {
+    %19:u32 = load %v
+    %20:u32 = add %19, 1u
+    store %v, %20
+    ret 2i
+  }
+}
+%main = func():void {
+  $B8: {
+    loop [i: $B9, b: $B10, c: $B11] {  # loop_1
+      $B9: {  # initializer
+        %22:i32 = call %idx1
+        %23:i32 = call %idx2
+        %24:u32 = convert %22
+        %25:u32 = mul %24, 64u
+        %26:u32 = convert %23
+        %27:u32 = mul %26, 16u
+        %28:i32 = call %idx3
+        %29:u32 = convert %28
+        %30:u32 = mul %29, 4u
+        %31:u32 = add 0u, %25
+        %32:u32 = add %31, %27
+        %33:u32 = add %32, %34
+        %35:u32 = add %33, %30
+        %36:u32 = %buffer.Load %35
+        %37:i32 = bitcast %36
+        %38:i32 = add %37, 1i
+        %39:u32 = convert %28
+        %34:u32 = mul %39, 4u
+        %40:u32 = add 0u, %25
+        %41:u32 = add %40, %27
+        %42:u32 = add %41, %34
+        %43:u32 = bitcast %38
+        %44:void = %buffer.Store %42, %43
+        next_iteration  # -> $B10
+      }
+      $B10: {  # body
+        %45:u32 = load %v
+        %46:bool = lt %45, 10u
+        if %46 [t: $B12, f: $B13] {  # if_1
+          $B12: {  # true
+            exit_if  # if_1
+          }
+          $B13: {  # false
+            exit_loop  # loop_1
+          }
+        }
+        continue  # -> $B11
+      }
+      $B11: {  # continuing
+        %47:i32 = call %idx4
+        %48:i32 = call %idx5
+        %49:u32 = convert %47
+        %50:u32 = mul %49, 64u
+        %51:u32 = convert %48
+        %52:u32 = mul %51, 16u
+        %53:i32 = call %idx6
+        %54:u32 = convert %53
+        %55:u32 = mul %54, 4u
+        %56:u32 = add 0u, %50
+        %57:u32 = add %56, %52
+        %58:u32 = add %57, %55
+        %59:u32 = %buffer.Load %58
+        %60:i32 = bitcast %59
+        %61:i32 = add %60, 1i
+        %62:u32 = convert %53
+        %63:u32 = mul %62, 4u
+        %64:u32 = add 0u, %50
+        %65:u32 = add %64, %52
+        %66:u32 = add %65, %55
+        %67:u32 = add %66, %63
+        %68:u32 = bitcast %61
+        %69:void = %buffer.Store %67, %68
+        next_iteration  # -> $B10
+      }
+    }
+    ret
+  }
+}
+%unused_entry_point = @compute @workgroup_size(1, 1, 1) func():void {
+  $B14: {
+    ret
+  }
+}
+
diff --git a/test/tint/statements/increment/for_loop_continuing.wgsl.expected.ir.dxc.hlsl b/test/tint/statements/increment/for_loop_continuing.wgsl.expected.ir.dxc.hlsl
index adbb0c1..8bb83a9 100644
--- a/test/tint/statements/increment/for_loop_continuing.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/statements/increment/for_loop_continuing.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,21 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:198 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Loop
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWByteAddressBuffer i : register(u0);
+void main() {
+  {
+    while(true) {
+      if ((i.Load(0u) < 10u)) {
+      } else {
+        break;
+      }
+      {
+        i.Store(0u, (i.Load(0u) + 1u));
+      }
+      continue;
+    }
+  }
+}
+
+[numthreads(1, 1, 1)]
+void unused_entry_point() {
+}
+
diff --git a/test/tint/statements/increment/for_loop_continuing.wgsl.expected.ir.fxc.hlsl b/test/tint/statements/increment/for_loop_continuing.wgsl.expected.ir.fxc.hlsl
index adbb0c1..8bb83a9 100644
--- a/test/tint/statements/increment/for_loop_continuing.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/statements/increment/for_loop_continuing.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,21 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:198 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Loop
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWByteAddressBuffer i : register(u0);
+void main() {
+  {
+    while(true) {
+      if ((i.Load(0u) < 10u)) {
+      } else {
+        break;
+      }
+      {
+        i.Store(0u, (i.Load(0u) + 1u));
+      }
+      continue;
+    }
+  }
+}
+
+[numthreads(1, 1, 1)]
+void unused_entry_point() {
+}
+
diff --git a/test/tint/statements/increment/for_loop_initializer.wgsl.expected.ir.dxc.hlsl b/test/tint/statements/increment/for_loop_initializer.wgsl.expected.ir.dxc.hlsl
index adbb0c1..a8b341a 100644
--- a/test/tint/statements/increment/for_loop_initializer.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/statements/increment/for_loop_initializer.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,21 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:198 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Loop
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWByteAddressBuffer i : register(u0);
+void main() {
+  {
+    i.Store(0u, (i.Load(0u) + 1u));
+    while(true) {
+      if ((i.Load(0u) < 10u)) {
+      } else {
+        break;
+      }
+      {
+      }
+      continue;
+    }
+  }
+}
+
+[numthreads(1, 1, 1)]
+void unused_entry_point() {
+}
+
diff --git a/test/tint/statements/increment/for_loop_initializer.wgsl.expected.ir.fxc.hlsl b/test/tint/statements/increment/for_loop_initializer.wgsl.expected.ir.fxc.hlsl
index adbb0c1..a8b341a 100644
--- a/test/tint/statements/increment/for_loop_initializer.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/statements/increment/for_loop_initializer.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,21 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:198 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Loop
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWByteAddressBuffer i : register(u0);
+void main() {
+  {
+    i.Store(0u, (i.Load(0u) + 1u));
+    while(true) {
+      if ((i.Load(0u) < 10u)) {
+      } else {
+        break;
+      }
+      {
+      }
+      continue;
+    }
+  }
+}
+
+[numthreads(1, 1, 1)]
+void unused_entry_point() {
+}
+
diff --git a/test/tint/statements/increment/function.wgsl.expected.ir.dxc.hlsl b/test/tint/statements/increment/function.wgsl.expected.ir.dxc.hlsl
index aeb9d59..3090dc6 100644
--- a/test/tint/statements/increment/function.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/statements/increment/function.wgsl.expected.ir.dxc.hlsl
@@ -1,3 +1,4 @@
+
 void main() {
   int i = 0;
   i = (i + 1);
diff --git a/test/tint/statements/increment/function.wgsl.expected.ir.fxc.hlsl b/test/tint/statements/increment/function.wgsl.expected.ir.fxc.hlsl
index a74b53b..3090dc6 100644
--- a/test/tint/statements/increment/function.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/statements/increment/function.wgsl.expected.ir.fxc.hlsl
@@ -1,4 +1,3 @@
-SKIP: FAILED
 
 void main() {
   int i = 0;
diff --git a/test/tint/statements/increment/private.wgsl.expected.ir.dxc.hlsl b/test/tint/statements/increment/private.wgsl.expected.ir.dxc.hlsl
index ea1413d..3d95c69 100644
--- a/test/tint/statements/increment/private.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/statements/increment/private.wgsl.expected.ir.dxc.hlsl
@@ -1,5 +1,5 @@
-SKIP: FAILED
 
+static int i = 0;
 void main() {
   i = (i + 1);
 }
@@ -8,11 +8,3 @@
 void unused_entry_point() {
 }
 
-DXC validation failure:
-hlsl.hlsl:2:3: error: use of undeclared identifier 'i'
-  i = (i + 1);
-  ^
-hlsl.hlsl:2:8: error: use of undeclared identifier 'i'
-  i = (i + 1);
-       ^
-
diff --git a/test/tint/statements/increment/private.wgsl.expected.ir.fxc.hlsl b/test/tint/statements/increment/private.wgsl.expected.ir.fxc.hlsl
index af27f18..3d95c69 100644
--- a/test/tint/statements/increment/private.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/statements/increment/private.wgsl.expected.ir.fxc.hlsl
@@ -1,5 +1,5 @@
-SKIP: FAILED
 
+static int i = 0;
 void main() {
   i = (i + 1);
 }
diff --git a/test/tint/statements/increment/storage.wgsl.expected.ir.dxc.hlsl b/test/tint/statements/increment/storage.wgsl.expected.ir.dxc.hlsl
index 96f823d..0c25e44 100644
--- a/test/tint/statements/increment/storage.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/statements/increment/storage.wgsl.expected.ir.dxc.hlsl
@@ -1,18 +1,10 @@
-SKIP: FAILED
 
+RWByteAddressBuffer i : register(u0);
 void main() {
-  i = (i + 1u);
+  i.Store(0u, (i.Load(0u) + 1u));
 }
 
 [numthreads(1, 1, 1)]
 void unused_entry_point() {
 }
 
-DXC validation failure:
-hlsl.hlsl:2:3: error: use of undeclared identifier 'i'
-  i = (i + 1u);
-  ^
-hlsl.hlsl:2:8: error: use of undeclared identifier 'i'
-  i = (i + 1u);
-       ^
-
diff --git a/test/tint/statements/increment/storage.wgsl.expected.ir.fxc.hlsl b/test/tint/statements/increment/storage.wgsl.expected.ir.fxc.hlsl
index a7c04a7..0c25e44 100644
--- a/test/tint/statements/increment/storage.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/statements/increment/storage.wgsl.expected.ir.fxc.hlsl
@@ -1,7 +1,7 @@
-SKIP: FAILED
 
+RWByteAddressBuffer i : register(u0);
 void main() {
-  i = (i + 1u);
+  i.Store(0u, (i.Load(0u) + 1u));
 }
 
 [numthreads(1, 1, 1)]
diff --git a/test/tint/statements/increment/vector_component.wgsl.expected.ir.dxc.hlsl b/test/tint/statements/increment/vector_component.wgsl.expected.ir.dxc.hlsl
index c0935cc..36d08ed 100644
--- a/test/tint/statements/increment/vector_component.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/statements/increment/vector_component.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,11 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:198 internal compiler error: Switch() matched no cases. Type: tint::core::ir::StoreVectorElement
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWByteAddressBuffer a : register(u0);
+void main() {
+  a.Store(4u, (a.Load(4u) + 1u));
+  a.Store(8u, (a.Load(8u) + 1u));
+}
+
+[numthreads(1, 1, 1)]
+void unused_entry_point() {
+}
+
diff --git a/test/tint/statements/increment/vector_component.wgsl.expected.ir.fxc.hlsl b/test/tint/statements/increment/vector_component.wgsl.expected.ir.fxc.hlsl
index c0935cc..36d08ed 100644
--- a/test/tint/statements/increment/vector_component.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/statements/increment/vector_component.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,11 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:198 internal compiler error: Switch() matched no cases. Type: tint::core::ir::StoreVectorElement
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWByteAddressBuffer a : register(u0);
+void main() {
+  a.Store(4u, (a.Load(4u) + 1u));
+  a.Store(8u, (a.Load(8u) + 1u));
+}
+
+[numthreads(1, 1, 1)]
+void unused_entry_point() {
+}
+
diff --git a/test/tint/statements/increment/workgroup.wgsl.expected.ir.dxc.hlsl b/test/tint/statements/increment/workgroup.wgsl.expected.ir.dxc.hlsl
index ea1413d..9870600 100644
--- a/test/tint/statements/increment/workgroup.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/statements/increment/workgroup.wgsl.expected.ir.dxc.hlsl
@@ -1,5 +1,5 @@
-SKIP: FAILED
 
+groupshared int i;
 void main() {
   i = (i + 1);
 }
@@ -8,11 +8,3 @@
 void unused_entry_point() {
 }
 
-DXC validation failure:
-hlsl.hlsl:2:3: error: use of undeclared identifier 'i'
-  i = (i + 1);
-  ^
-hlsl.hlsl:2:8: error: use of undeclared identifier 'i'
-  i = (i + 1);
-       ^
-
diff --git a/test/tint/statements/increment/workgroup.wgsl.expected.ir.fxc.hlsl b/test/tint/statements/increment/workgroup.wgsl.expected.ir.fxc.hlsl
index af27f18..9870600 100644
--- a/test/tint/statements/increment/workgroup.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/statements/increment/workgroup.wgsl.expected.ir.fxc.hlsl
@@ -1,5 +1,5 @@
-SKIP: FAILED
 
+groupshared int i;
 void main() {
   i = (i + 1);
 }
diff --git a/test/tint/statements/switch/case_default.wgsl.expected.ir.dxc.hlsl b/test/tint/statements/switch/case_default.wgsl.expected.ir.dxc.hlsl
index 27c824a..8419b3a 100644
--- a/test/tint/statements/switch/case_default.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/statements/switch/case_default.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,24 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:198 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Switch
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+[numthreads(1, 1, 1)]
+void f() {
+  int i = 0;
+  int result = 0;
+  switch(i) {
+    default:
+    {
+      result = 10;
+      break;
+    }
+    case 1:
+    {
+      result = 22;
+      break;
+    }
+    case 2:
+    {
+      result = 33;
+      break;
+    }
+  }
+}
+
diff --git a/test/tint/statements/switch/case_default.wgsl.expected.ir.fxc.hlsl b/test/tint/statements/switch/case_default.wgsl.expected.ir.fxc.hlsl
index 27c824a..8419b3a 100644
--- a/test/tint/statements/switch/case_default.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/statements/switch/case_default.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,24 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:198 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Switch
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+[numthreads(1, 1, 1)]
+void f() {
+  int i = 0;
+  int result = 0;
+  switch(i) {
+    default:
+    {
+      result = 10;
+      break;
+    }
+    case 1:
+    {
+      result = 22;
+      break;
+    }
+    case 2:
+    {
+      result = 33;
+      break;
+    }
+  }
+}
+
diff --git a/test/tint/statements/switch/case_default_mixed.wgsl.expected.ir.dxc.hlsl b/test/tint/statements/switch/case_default_mixed.wgsl.expected.ir.dxc.hlsl
index 27c824a..7bf7051 100644
--- a/test/tint/statements/switch/case_default_mixed.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/statements/switch/case_default_mixed.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,25 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:198 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Switch
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+[numthreads(1, 1, 1)]
+void f() {
+  int i = 0;
+  int result = 0;
+  switch(i) {
+    case 0:
+    {
+      result = 10;
+      break;
+    }
+    case 1:
+    default:
+    {
+      result = 22;
+      break;
+    }
+    case 2:
+    {
+      result = 33;
+      break;
+    }
+  }
+}
+
diff --git a/test/tint/statements/switch/case_default_mixed.wgsl.expected.ir.fxc.hlsl b/test/tint/statements/switch/case_default_mixed.wgsl.expected.ir.fxc.hlsl
index 27c824a..7bf7051 100644
--- a/test/tint/statements/switch/case_default_mixed.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/statements/switch/case_default_mixed.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,25 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:198 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Switch
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+[numthreads(1, 1, 1)]
+void f() {
+  int i = 0;
+  int result = 0;
+  switch(i) {
+    case 0:
+    {
+      result = 10;
+      break;
+    }
+    case 1:
+    default:
+    {
+      result = 22;
+      break;
+    }
+    case 2:
+    {
+      result = 33;
+      break;
+    }
+  }
+}
+
diff --git a/test/tint/statements/switch/common.wgsl.expected.ir.dxc.hlsl b/test/tint/statements/switch/common.wgsl.expected.ir.dxc.hlsl
index 27c824a..b6f3eaa 100644
--- a/test/tint/statements/switch/common.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/statements/switch/common.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,29 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:198 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Switch
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+[numthreads(1, 1, 1)]
+void f() {
+  int i = 0;
+  int result = 0;
+  switch(i) {
+    case 0:
+    {
+      result = 10;
+      break;
+    }
+    case 1:
+    {
+      result = 22;
+      break;
+    }
+    case 2:
+    {
+      result = 33;
+      break;
+    }
+    default:
+    {
+      result = 44;
+      break;
+    }
+  }
+}
+
diff --git a/test/tint/statements/switch/common.wgsl.expected.ir.fxc.hlsl b/test/tint/statements/switch/common.wgsl.expected.ir.fxc.hlsl
index 27c824a..b6f3eaa 100644
--- a/test/tint/statements/switch/common.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/statements/switch/common.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,29 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:198 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Switch
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+[numthreads(1, 1, 1)]
+void f() {
+  int i = 0;
+  int result = 0;
+  switch(i) {
+    case 0:
+    {
+      result = 10;
+      break;
+    }
+    case 1:
+    {
+      result = 22;
+      break;
+    }
+    case 2:
+    {
+      result = 33;
+      break;
+    }
+    default:
+    {
+      result = 44;
+      break;
+    }
+  }
+}
+
diff --git a/test/tint/statements/switch/only_default_case.wgsl.expected.ir.dxc.hlsl b/test/tint/statements/switch/only_default_case.wgsl.expected.ir.dxc.hlsl
index 27c824a..fc2f621 100644
--- a/test/tint/statements/switch/only_default_case.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/statements/switch/only_default_case.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,14 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:198 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Switch
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+[numthreads(1, 1, 1)]
+void f() {
+  int i = 0;
+  int result = 0;
+  switch(i) {
+    default:
+    {
+      result = 44;
+      break;
+    }
+  }
+}
+
diff --git a/test/tint/statements/switch/only_default_case.wgsl.expected.ir.fxc.hlsl b/test/tint/statements/switch/only_default_case.wgsl.expected.ir.fxc.hlsl
index 27c824a..fc2f621 100644
--- a/test/tint/statements/switch/only_default_case.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/statements/switch/only_default_case.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,14 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:198 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Switch
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+[numthreads(1, 1, 1)]
+void f() {
+  int i = 0;
+  int result = 0;
+  switch(i) {
+    default:
+    {
+      result = 44;
+      break;
+    }
+  }
+}
+
diff --git a/test/tint/struct/type_initializer.wgsl.expected.ir.dxc.hlsl b/test/tint/struct/type_initializer.wgsl.expected.ir.dxc.hlsl
index 0ba40c6..54f12f2 100644
--- a/test/tint/struct/type_initializer.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/struct/type_initializer.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,59 @@
-SKIP: FAILED
+struct S1 {
+  int a;
+  int b;
+  int c;
+  int d;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct S2 {
+  int e;
+  S1 f;
+};
+
+struct S3 {
+  int g;
+  S1 h;
+  S2 i;
+};
+
+struct T {
+  int a[2];
+};
+
+
+[numthreads(1, 1, 1)]
+void main() {
+  int x = 42;
+  S1 empty = (S1)0;
+  S1 v = {1, 2, 3, 4};
+  S1 nonempty = v;
+  S1 nonempty_with_expr = {1, x, (x + 1), nonempty.d};
+  S3 nested_empty = (S3)0;
+  S3 v_1 = {1, {2, 3, 4, 5}, {6, {7, 8, 9, 10}}};
+  S3 nested_nonempty = v_1;
+  S1 v_2 = {2, x, (x + 1), nested_nonempty.i.f.d};
+  S1 v_3 = v;
+  S1 v_4 = v_2;
+  S2 v_5 = {6, v_3};
+  S3 nested_nonempty_with_expr = {1, v_4, v_5};
+  int subexpr_empty = 0;
+  int subexpr_nonempty = 2;
+  S1 v_6 = v;
+  S1 v_7 = {1, x, (x + 1), v_6.d};
+  int subexpr_nonempty_with_expr = v_7.c;
+  S1 subexpr_nested_empty = (S1)0;
+  S1 subexpr_nested_nonempty = {2, 3, 4, 5};
+  S3 v_8 = v_1;
+  S1 v_9 = {2, x, (x + 1), v_8.i.f.d};
+  S2 v_10 = {1, v_9};
+  S1 subexpr_nested_nonempty_with_expr = v_10.f;
+  T aosoa_empty[2] = (T[2])0;
+  T v_11[2] = {{{1, 2}}, {{3, 4}}};
+  T aosoa_nonempty[2] = v_11;
+  int v_12[2] = {1, (aosoa_nonempty[0].a[0] + 1)};
+  T v_13[2] = v_11;
+  T v_14 = {v_12};
+  T v_15 = v_13[1];
+  T aosoa_nonempty_with_expr[2] = {v_14, v_15};
+}
+
diff --git a/test/tint/struct/type_initializer.wgsl.expected.ir.fxc.hlsl b/test/tint/struct/type_initializer.wgsl.expected.ir.fxc.hlsl
index 0ba40c6..54f12f2 100644
--- a/test/tint/struct/type_initializer.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/struct/type_initializer.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,59 @@
-SKIP: FAILED
+struct S1 {
+  int a;
+  int b;
+  int c;
+  int d;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct S2 {
+  int e;
+  S1 f;
+};
+
+struct S3 {
+  int g;
+  S1 h;
+  S2 i;
+};
+
+struct T {
+  int a[2];
+};
+
+
+[numthreads(1, 1, 1)]
+void main() {
+  int x = 42;
+  S1 empty = (S1)0;
+  S1 v = {1, 2, 3, 4};
+  S1 nonempty = v;
+  S1 nonempty_with_expr = {1, x, (x + 1), nonempty.d};
+  S3 nested_empty = (S3)0;
+  S3 v_1 = {1, {2, 3, 4, 5}, {6, {7, 8, 9, 10}}};
+  S3 nested_nonempty = v_1;
+  S1 v_2 = {2, x, (x + 1), nested_nonempty.i.f.d};
+  S1 v_3 = v;
+  S1 v_4 = v_2;
+  S2 v_5 = {6, v_3};
+  S3 nested_nonempty_with_expr = {1, v_4, v_5};
+  int subexpr_empty = 0;
+  int subexpr_nonempty = 2;
+  S1 v_6 = v;
+  S1 v_7 = {1, x, (x + 1), v_6.d};
+  int subexpr_nonempty_with_expr = v_7.c;
+  S1 subexpr_nested_empty = (S1)0;
+  S1 subexpr_nested_nonempty = {2, 3, 4, 5};
+  S3 v_8 = v_1;
+  S1 v_9 = {2, x, (x + 1), v_8.i.f.d};
+  S2 v_10 = {1, v_9};
+  S1 subexpr_nested_nonempty_with_expr = v_10.f;
+  T aosoa_empty[2] = (T[2])0;
+  T v_11[2] = {{{1, 2}}, {{3, 4}}};
+  T aosoa_nonempty[2] = v_11;
+  int v_12[2] = {1, (aosoa_nonempty[0].a[0] + 1)};
+  T v_13[2] = v_11;
+  T v_14 = {v_12};
+  T v_15 = v_13[1];
+  T aosoa_nonempty_with_expr[2] = {v_14, v_15};
+}
+
diff --git a/test/tint/switch/switch.wgsl.expected.ir.dxc.hlsl b/test/tint/switch/switch.wgsl.expected.ir.dxc.hlsl
index 27c824a..29be992 100644
--- a/test/tint/switch/switch.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/switch/switch.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,24 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:198 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Switch
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+void a() {
+  int a_1 = 0;
+  switch(a_1) {
+    case 0:
+    {
+      break;
+    }
+    case 1:
+    {
+      return;
+    }
+    default:
+    {
+      a_1 = (a_1 + 2);
+      break;
+    }
+  }
+}
+
+[numthreads(1, 1, 1)]
+void unused_entry_point() {
+}
+
diff --git a/test/tint/switch/switch.wgsl.expected.ir.fxc.hlsl b/test/tint/switch/switch.wgsl.expected.ir.fxc.hlsl
index 27c824a..29be992 100644
--- a/test/tint/switch/switch.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/switch/switch.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,24 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:198 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Switch
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+void a() {
+  int a_1 = 0;
+  switch(a_1) {
+    case 0:
+    {
+      break;
+    }
+    case 1:
+    {
+      return;
+    }
+    default:
+    {
+      a_1 = (a_1 + 2);
+      break;
+    }
+  }
+}
+
+[numthreads(1, 1, 1)]
+void unused_entry_point() {
+}
+
diff --git a/test/tint/switch/switch_multi_selector.wgsl.expected.ir.dxc.hlsl b/test/tint/switch/switch_multi_selector.wgsl.expected.ir.dxc.hlsl
index 27c824a..99c3e28 100644
--- a/test/tint/switch/switch_multi_selector.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/switch/switch_multi_selector.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,22 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:198 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Switch
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+void a() {
+  int a_1 = 0;
+  switch(a_1) {
+    case 0:
+    case 2:
+    case 4:
+    {
+      break;
+    }
+    case 1:
+    default:
+    {
+      return;
+    }
+  }
+}
+
+[numthreads(1, 1, 1)]
+void unused_entry_point() {
+}
+
diff --git a/test/tint/switch/switch_multi_selector.wgsl.expected.ir.fxc.hlsl b/test/tint/switch/switch_multi_selector.wgsl.expected.ir.fxc.hlsl
index 27c824a..99c3e28 100644
--- a/test/tint/switch/switch_multi_selector.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/switch/switch_multi_selector.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,22 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:198 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Switch
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+void a() {
+  int a_1 = 0;
+  switch(a_1) {
+    case 0:
+    case 2:
+    case 4:
+    {
+      break;
+    }
+    case 1:
+    default:
+    {
+      return;
+    }
+  }
+}
+
+[numthreads(1, 1, 1)]
+void unused_entry_point() {
+}
+
diff --git a/test/tint/switch/switch_nested.wgsl.expected.ir.dxc.hlsl b/test/tint/switch/switch_nested.wgsl.expected.ir.dxc.hlsl
index 27c824a..b4d02c1 100644
--- a/test/tint/switch/switch_nested.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/switch/switch_nested.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,47 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:198 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Switch
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+void a() {
+  int a_1 = 0;
+  switch(a_1) {
+    case 0:
+    case 2:
+    case 4:
+    {
+      uint b = 3u;
+      switch(b) {
+        case 0u:
+        {
+          break;
+        }
+        case 1u:
+        case 2u:
+        case 3u:
+        default:
+        {
+          uint c = 123u;
+          switch(c) {
+            case 0u:
+            {
+              break;
+            }
+            default:
+            {
+              return;
+            }
+          }
+          return;
+        }
+      }
+      break;
+    }
+    case 1:
+    default:
+    {
+      return;
+    }
+  }
+}
+
+[numthreads(1, 1, 1)]
+void unused_entry_point() {
+}
+
diff --git a/test/tint/switch/switch_nested.wgsl.expected.ir.fxc.hlsl b/test/tint/switch/switch_nested.wgsl.expected.ir.fxc.hlsl
index 27c824a..b4d02c1 100644
--- a/test/tint/switch/switch_nested.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/switch/switch_nested.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,47 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:198 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Switch
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+void a() {
+  int a_1 = 0;
+  switch(a_1) {
+    case 0:
+    case 2:
+    case 4:
+    {
+      uint b = 3u;
+      switch(b) {
+        case 0u:
+        {
+          break;
+        }
+        case 1u:
+        case 2u:
+        case 3u:
+        default:
+        {
+          uint c = 123u;
+          switch(c) {
+            case 0u:
+            {
+              break;
+            }
+            default:
+            {
+              return;
+            }
+          }
+          return;
+        }
+      }
+      break;
+    }
+    case 1:
+    default:
+    {
+      return;
+    }
+  }
+}
+
+[numthreads(1, 1, 1)]
+void unused_entry_point() {
+}
+
diff --git a/test/tint/switch/switch_only_default.wgsl.expected.ir.dxc.hlsl b/test/tint/switch/switch_only_default.wgsl.expected.ir.dxc.hlsl
index 27c824a..f905060 100644
--- a/test/tint/switch/switch_only_default.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/switch/switch_only_default.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,16 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:198 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Switch
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+void a() {
+  int a_1 = 0;
+  switch(a_1) {
+    default:
+    {
+      return;
+    }
+  }
+  /* unreachable */
+}
+
+[numthreads(1, 1, 1)]
+void unused_entry_point() {
+}
+
diff --git a/test/tint/switch/switch_only_default.wgsl.expected.ir.fxc.hlsl b/test/tint/switch/switch_only_default.wgsl.expected.ir.fxc.hlsl
index 27c824a..f905060 100644
--- a/test/tint/switch/switch_only_default.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/switch/switch_only_default.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,16 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:198 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Switch
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+void a() {
+  int a_1 = 0;
+  switch(a_1) {
+    default:
+    {
+      return;
+    }
+  }
+  /* unreachable */
+}
+
+[numthreads(1, 1, 1)]
+void unused_entry_point() {
+}
+
diff --git a/test/tint/types/buffers/storage.wgsl.expected.ir.dxc.hlsl b/test/tint/types/buffers/storage.wgsl.expected.ir.dxc.hlsl
index 3f437dc..d2144fa 100644
--- a/test/tint/types/buffers/storage.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/types/buffers/storage.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,6 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Access
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+ByteAddressBuffer weights : register(t0);
+void main() {
+  float a = asfloat(weights.Load(0u));
+}
+
diff --git a/test/tint/types/buffers/storage.wgsl.expected.ir.fxc.hlsl b/test/tint/types/buffers/storage.wgsl.expected.ir.fxc.hlsl
index 3f437dc..d2144fa 100644
--- a/test/tint/types/buffers/storage.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/types/buffers/storage.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,6 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Access
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+ByteAddressBuffer weights : register(t0);
+void main() {
+  float a = asfloat(weights.Load(0u));
+}
+
diff --git a/test/tint/types/buffers/uniform.wgsl.expected.ir.dxc.hlsl b/test/tint/types/buffers/uniform.wgsl.expected.ir.dxc.hlsl
index 4a2c666..c06ea78 100644
--- a/test/tint/types/buffers/uniform.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/types/buffers/uniform.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,8 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::LoadVectorElement
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+cbuffer cbuffer_weights : register(b0) {
+  uint4 weights[1];
+};
+void main() {
+  float a = asfloat(weights[0u].x);
+}
+
diff --git a/test/tint/types/buffers/uniform.wgsl.expected.ir.fxc.hlsl b/test/tint/types/buffers/uniform.wgsl.expected.ir.fxc.hlsl
index 4a2c666..c06ea78 100644
--- a/test/tint/types/buffers/uniform.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/types/buffers/uniform.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,8 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::LoadVectorElement
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+cbuffer cbuffer_weights : register(b0) {
+  uint4 weights[1];
+};
+void main() {
+  float a = asfloat(weights[0u].x);
+}
+
diff --git a/test/tint/types/function_scope_declarations.wgsl.expected.ir.dxc.hlsl b/test/tint/types/function_scope_declarations.wgsl.expected.ir.dxc.hlsl
index 0ba40c6..082ff0b 100644
--- a/test/tint/types/function_scope_declarations.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/types/function_scope_declarations.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,32 @@
-SKIP: FAILED
+struct S {
+  float a;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+
+[numthreads(1, 1, 1)]
+void main() {
+  bool bool_var = false;
+  bool bool_let = false;
+  int i32_var = 0;
+  int i32_let = 0;
+  uint u32_var = 0u;
+  uint u32_let = 0u;
+  float f32_var = 0.0f;
+  float f32_let = 0.0f;
+  int2 v2i32_var = (0).xx;
+  int2 v2i32_let = (0).xx;
+  uint3 v3u32_var = (0u).xxx;
+  uint3 v3u32_let = (0u).xxx;
+  float4 v4f32_var = (0.0f).xxxx;
+  float4 v4f32_let = (0.0f).xxxx;
+  float2x3 m2x3_var = float2x3((0.0f).xxx, (0.0f).xxx);
+  float3x4 m3x4_let = float3x4((0.0f).xxxx, (0.0f).xxxx, (0.0f).xxxx);
+  float arr_var[4] = (float[4])0;
+  float arr_let[4] = (float[4])0;
+  S struct_var = (S)0;
+  S struct_let = (S)0;
+  float ptr_f32 = f32_var;
+  float4 ptr_vec = v4f32_var;
+  float ptr_arr[4] = arr_var;
+}
+
diff --git a/test/tint/types/function_scope_declarations.wgsl.expected.ir.fxc.hlsl b/test/tint/types/function_scope_declarations.wgsl.expected.ir.fxc.hlsl
index 0ba40c6..082ff0b 100644
--- a/test/tint/types/function_scope_declarations.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/types/function_scope_declarations.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,32 @@
-SKIP: FAILED
+struct S {
+  float a;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+
+[numthreads(1, 1, 1)]
+void main() {
+  bool bool_var = false;
+  bool bool_let = false;
+  int i32_var = 0;
+  int i32_let = 0;
+  uint u32_var = 0u;
+  uint u32_let = 0u;
+  float f32_var = 0.0f;
+  float f32_let = 0.0f;
+  int2 v2i32_var = (0).xx;
+  int2 v2i32_let = (0).xx;
+  uint3 v3u32_var = (0u).xxx;
+  uint3 v3u32_let = (0u).xxx;
+  float4 v4f32_var = (0.0f).xxxx;
+  float4 v4f32_let = (0.0f).xxxx;
+  float2x3 m2x3_var = float2x3((0.0f).xxx, (0.0f).xxx);
+  float3x4 m3x4_let = float3x4((0.0f).xxxx, (0.0f).xxxx, (0.0f).xxxx);
+  float arr_var[4] = (float[4])0;
+  float arr_let[4] = (float[4])0;
+  S struct_var = (S)0;
+  S struct_let = (S)0;
+  float ptr_f32 = f32_var;
+  float4 ptr_vec = v4f32_var;
+  float ptr_arr[4] = arr_var;
+}
+
diff --git a/test/tint/types/function_scope_var_conversions.wgsl.expected.ir.dxc.hlsl b/test/tint/types/function_scope_var_conversions.wgsl.expected.ir.dxc.hlsl
index c6e1d96..cfb7934 100644
--- a/test/tint/types/function_scope_var_conversions.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/types/function_scope_var_conversions.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,31 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Construct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+void constant_with_non_constant() {
+  float a = 0.0f;
+  float2 b = float2(1.0f, a);
+}
+
+[numthreads(1, 1, 1)]
+void main() {
+  bool bool_var1 = true;
+  bool bool_var2 = true;
+  bool bool_var3 = true;
+  int i32_var1 = 123;
+  int i32_var2 = 123;
+  int i32_var3 = 1;
+  uint u32_var1 = 123u;
+  uint u32_var2 = 123u;
+  uint u32_var3 = 1u;
+  bool3 v3bool_var1 = (true).xxx;
+  bool3 v3bool_var11 = (true).xxx;
+  bool3 v3bool_var2 = (true).xxx;
+  bool3 v3bool_var3 = (true).xxx;
+  int3 v3i32_var1 = (123).xxx;
+  int3 v3i32_var2 = (123).xxx;
+  int3 v3i32_var3 = (1).xxx;
+  uint3 v3u32_var1 = (123u).xxx;
+  uint3 v3u32_var2 = (123u).xxx;
+  uint3 v3u32_var3 = (1u).xxx;
+  bool3 v3bool_var4 = (true).xxx;
+  bool4 v4bool_var5 = bool4(true, false, true, false);
+}
+
diff --git a/test/tint/types/function_scope_var_conversions.wgsl.expected.ir.fxc.hlsl b/test/tint/types/function_scope_var_conversions.wgsl.expected.ir.fxc.hlsl
index c6e1d96..cfb7934 100644
--- a/test/tint/types/function_scope_var_conversions.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/types/function_scope_var_conversions.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,31 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Construct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+void constant_with_non_constant() {
+  float a = 0.0f;
+  float2 b = float2(1.0f, a);
+}
+
+[numthreads(1, 1, 1)]
+void main() {
+  bool bool_var1 = true;
+  bool bool_var2 = true;
+  bool bool_var3 = true;
+  int i32_var1 = 123;
+  int i32_var2 = 123;
+  int i32_var3 = 1;
+  uint u32_var1 = 123u;
+  uint u32_var2 = 123u;
+  uint u32_var3 = 1u;
+  bool3 v3bool_var1 = (true).xxx;
+  bool3 v3bool_var11 = (true).xxx;
+  bool3 v3bool_var2 = (true).xxx;
+  bool3 v3bool_var3 = (true).xxx;
+  int3 v3i32_var1 = (123).xxx;
+  int3 v3i32_var2 = (123).xxx;
+  int3 v3i32_var3 = (1).xxx;
+  uint3 v3u32_var1 = (123u).xxx;
+  uint3 v3u32_var2 = (123u).xxx;
+  uint3 v3u32_var3 = (1u).xxx;
+  bool3 v3bool_var4 = (true).xxx;
+  bool4 v4bool_var5 = bool4(true, false, true, false);
+}
+
diff --git a/test/tint/types/functions/parameters.wgsl.expected.ir.dxc.hlsl b/test/tint/types/functions/parameters.wgsl.expected.ir.dxc.hlsl
index 9d9220f..556d8ab 100644
--- a/test/tint/types/functions/parameters.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/types/functions/parameters.wgsl.expected.ir.dxc.hlsl
@@ -1,4 +1,9 @@
-void foo() {
+struct S {
+  float a;
+};
+
+
+void foo(bool param_bool, int param_i32, uint param_u32, float param_f32, int2 param_v2i32, uint3 param_v3u32, float4 param_v4f32, float2x3 param_m2x3, float param_arr[4], S param_struct, inout float param_ptr_f32, inout float4 param_ptr_vec, inout float param_ptr_arr[4]) {
 }
 
 [numthreads(1, 1, 1)]
diff --git a/test/tint/types/functions/parameters.wgsl.expected.ir.fxc.hlsl b/test/tint/types/functions/parameters.wgsl.expected.ir.fxc.hlsl
index 9d9220f..556d8ab 100644
--- a/test/tint/types/functions/parameters.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/types/functions/parameters.wgsl.expected.ir.fxc.hlsl
@@ -1,4 +1,9 @@
-void foo() {
+struct S {
+  float a;
+};
+
+
+void foo(bool param_bool, int param_i32, uint param_u32, float param_f32, int2 param_v2i32, uint3 param_v3u32, float4 param_v4f32, float2x3 param_m2x3, float param_arr[4], S param_struct, inout float param_ptr_f32, inout float4 param_ptr_vec, inout float param_ptr_arr[4]) {
 }
 
 [numthreads(1, 1, 1)]
diff --git a/test/tint/types/functions/return_types.wgsl.expected.ir.dxc.hlsl b/test/tint/types/functions/return_types.wgsl.expected.ir.dxc.hlsl
index 0ba40c6..43cd472 100644
--- a/test/tint/types/functions/return_types.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/types/functions/return_types.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,52 @@
-SKIP: FAILED
+struct S {
+  float a;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+
+bool ret_bool() {
+  return false;
+}
+
+int ret_i32() {
+  return 0;
+}
+
+uint ret_u32() {
+  return 0u;
+}
+
+float ret_f32() {
+  return 0.0f;
+}
+
+int2 ret_v2i32() {
+  return (0).xx;
+}
+
+uint3 ret_v3u32() {
+  return (0u).xxx;
+}
+
+float4 ret_v4f32() {
+  return (0.0f).xxxx;
+}
+
+float2x3 ret_m2x3() {
+  return float2x3((0.0f).xxx, (0.0f).xxx);
+}
+
+typedef float ary_ret[4];
+ary_ret ret_arr() {
+  float v[4] = (float[4])0;
+  return v;
+}
+
+S ret_struct() {
+  S v_1 = (S)0;
+  return v_1;
+}
+
+[numthreads(1, 1, 1)]
+void main() {
+}
+
diff --git a/test/tint/types/functions/return_types.wgsl.expected.ir.fxc.hlsl b/test/tint/types/functions/return_types.wgsl.expected.ir.fxc.hlsl
index 0ba40c6..43cd472 100644
--- a/test/tint/types/functions/return_types.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/types/functions/return_types.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,52 @@
-SKIP: FAILED
+struct S {
+  float a;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+
+bool ret_bool() {
+  return false;
+}
+
+int ret_i32() {
+  return 0;
+}
+
+uint ret_u32() {
+  return 0u;
+}
+
+float ret_f32() {
+  return 0.0f;
+}
+
+int2 ret_v2i32() {
+  return (0).xx;
+}
+
+uint3 ret_v3u32() {
+  return (0u).xxx;
+}
+
+float4 ret_v4f32() {
+  return (0.0f).xxxx;
+}
+
+float2x3 ret_m2x3() {
+  return float2x3((0.0f).xxx, (0.0f).xxx);
+}
+
+typedef float ary_ret[4];
+ary_ret ret_arr() {
+  float v[4] = (float[4])0;
+  return v;
+}
+
+S ret_struct() {
+  S v_1 = (S)0;
+  return v_1;
+}
+
+[numthreads(1, 1, 1)]
+void main() {
+}
+
diff --git a/test/tint/types/functions/shader_io/attributes_on_struct_not_used_for_interface.wgsl.expected.ir.dxc.hlsl b/test/tint/types/functions/shader_io/attributes_on_struct_not_used_for_interface.wgsl.expected.ir.dxc.hlsl
index 0ba40c6..e3b5a0f 100644
--- a/test/tint/types/functions/shader_io/attributes_on_struct_not_used_for_interface.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/types/functions/shader_io/attributes_on_struct_not_used_for_interface.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,19 @@
-SKIP: FAILED
+struct S {
+  float f;
+  uint u;
+  float4 v;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+
+RWByteAddressBuffer output : register(u0);
+void v_1(uint offset, S obj) {
+  output.Store((offset + 0u), asuint(obj.f));
+  output.Store((offset + 4u), obj.u);
+  output.Store4((offset + 128u), asuint(obj.v));
+}
+
+void frag_main() {
+  S v_2 = {1.0f, 2u, (3.0f).xxxx};
+  v_1(0u, v_2);
+}
+
diff --git a/test/tint/types/functions/shader_io/attributes_on_struct_not_used_for_interface.wgsl.expected.ir.fxc.hlsl b/test/tint/types/functions/shader_io/attributes_on_struct_not_used_for_interface.wgsl.expected.ir.fxc.hlsl
index 0ba40c6..e3b5a0f 100644
--- a/test/tint/types/functions/shader_io/attributes_on_struct_not_used_for_interface.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/types/functions/shader_io/attributes_on_struct_not_used_for_interface.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,19 @@
-SKIP: FAILED
+struct S {
+  float f;
+  uint u;
+  float4 v;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+
+RWByteAddressBuffer output : register(u0);
+void v_1(uint offset, S obj) {
+  output.Store((offset + 0u), asuint(obj.f));
+  output.Store((offset + 4u), obj.u);
+  output.Store4((offset + 128u), asuint(obj.v));
+}
+
+void frag_main() {
+  S v_2 = {1.0f, 2u, (3.0f).xxxx};
+  v_1(0u, v_2);
+}
+
diff --git a/test/tint/types/functions/shader_io/compute_input_builtins.wgsl.expected.ir.dxc.hlsl b/test/tint/types/functions/shader_io/compute_input_builtins.wgsl.expected.ir.dxc.hlsl
index 3f437dc..216c128 100644
--- a/test/tint/types/functions/shader_io/compute_input_builtins.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/types/functions/shader_io/compute_input_builtins.wgsl.expected.ir.dxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Access
+..\..\src\tint\lang\hlsl\writer\printer\printer.cc:1452 internal compiler error: TINT_ASSERT(!name.empty())
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/types/functions/shader_io/compute_input_builtins.wgsl.expected.ir.fxc.hlsl b/test/tint/types/functions/shader_io/compute_input_builtins.wgsl.expected.ir.fxc.hlsl
index 3f437dc..216c128 100644
--- a/test/tint/types/functions/shader_io/compute_input_builtins.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/types/functions/shader_io/compute_input_builtins.wgsl.expected.ir.fxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Access
+..\..\src\tint\lang\hlsl\writer\printer\printer.cc:1452 internal compiler error: TINT_ASSERT(!name.empty())
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/types/functions/shader_io/compute_input_builtins_struct.wgsl.expected.ir.dxc.hlsl b/test/tint/types/functions/shader_io/compute_input_builtins_struct.wgsl.expected.ir.dxc.hlsl
index 3f437dc..216c128 100644
--- a/test/tint/types/functions/shader_io/compute_input_builtins_struct.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/types/functions/shader_io/compute_input_builtins_struct.wgsl.expected.ir.dxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Access
+..\..\src\tint\lang\hlsl\writer\printer\printer.cc:1452 internal compiler error: TINT_ASSERT(!name.empty())
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/types/functions/shader_io/compute_input_builtins_struct.wgsl.expected.ir.fxc.hlsl b/test/tint/types/functions/shader_io/compute_input_builtins_struct.wgsl.expected.ir.fxc.hlsl
index 3f437dc..216c128 100644
--- a/test/tint/types/functions/shader_io/compute_input_builtins_struct.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/types/functions/shader_io/compute_input_builtins_struct.wgsl.expected.ir.fxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Access
+..\..\src\tint\lang\hlsl\writer\printer\printer.cc:1452 internal compiler error: TINT_ASSERT(!name.empty())
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/types/functions/shader_io/compute_input_mixed.wgsl.expected.ir.dxc.hlsl b/test/tint/types/functions/shader_io/compute_input_mixed.wgsl.expected.ir.dxc.hlsl
index 3f437dc..a3a2695 100644
--- a/test/tint/types/functions/shader_io/compute_input_mixed.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/types/functions/shader_io/compute_input_mixed.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,28 @@
-SKIP: FAILED
+struct ComputeInputs0 {
+  uint3 local_invocation_id;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Access
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct ComputeInputs1 {
+  uint3 workgroup_id;
+};
+
+struct main_inputs {
+  uint3 ComputeInputs0_local_invocation_id : SV_GroupThreadID;
+  uint local_invocation_index : SV_GroupIndex;
+  uint3 global_invocation_id : SV_DispatchThreadID;
+  uint3 ComputeInputs1_workgroup_id : SV_GroupID;
+};
+
+
+void main_inner(ComputeInputs0 inputs0, uint local_invocation_index, uint3 global_invocation_id, ComputeInputs1 inputs1) {
+  uint foo = (((inputs0.local_invocation_id[0u] + local_invocation_index) + global_invocation_id[0u]) + inputs1.workgroup_id[0u]);
+}
+
+[numthreads(1, 1, 1)]
+void main(main_inputs inputs) {
+  ComputeInputs0 v = {inputs.ComputeInputs0_local_invocation_id};
+  ComputeInputs0 v_1 = v;
+  ComputeInputs1 v_2 = {inputs.ComputeInputs1_workgroup_id};
+  main_inner(v_1, inputs.local_invocation_index, inputs.global_invocation_id, v_2);
+}
+
diff --git a/test/tint/types/functions/shader_io/compute_input_mixed.wgsl.expected.ir.fxc.hlsl b/test/tint/types/functions/shader_io/compute_input_mixed.wgsl.expected.ir.fxc.hlsl
index 3f437dc..a3a2695 100644
--- a/test/tint/types/functions/shader_io/compute_input_mixed.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/types/functions/shader_io/compute_input_mixed.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,28 @@
-SKIP: FAILED
+struct ComputeInputs0 {
+  uint3 local_invocation_id;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Access
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct ComputeInputs1 {
+  uint3 workgroup_id;
+};
+
+struct main_inputs {
+  uint3 ComputeInputs0_local_invocation_id : SV_GroupThreadID;
+  uint local_invocation_index : SV_GroupIndex;
+  uint3 global_invocation_id : SV_DispatchThreadID;
+  uint3 ComputeInputs1_workgroup_id : SV_GroupID;
+};
+
+
+void main_inner(ComputeInputs0 inputs0, uint local_invocation_index, uint3 global_invocation_id, ComputeInputs1 inputs1) {
+  uint foo = (((inputs0.local_invocation_id[0u] + local_invocation_index) + global_invocation_id[0u]) + inputs1.workgroup_id[0u]);
+}
+
+[numthreads(1, 1, 1)]
+void main(main_inputs inputs) {
+  ComputeInputs0 v = {inputs.ComputeInputs0_local_invocation_id};
+  ComputeInputs0 v_1 = v;
+  ComputeInputs1 v_2 = {inputs.ComputeInputs1_workgroup_id};
+  main_inner(v_1, inputs.local_invocation_index, inputs.global_invocation_id, v_2);
+}
+
diff --git a/test/tint/types/functions/shader_io/compute_subgroup_builtins.wgsl.expected.ir.dxc.hlsl b/test/tint/types/functions/shader_io/compute_subgroup_builtins.wgsl.expected.ir.dxc.hlsl
index 3f437dc..3e59e2d 100644
--- a/test/tint/types/functions/shader_io/compute_subgroup_builtins.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/types/functions/shader_io/compute_subgroup_builtins.wgsl.expected.ir.dxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Access
+..\..\src\tint\lang\hlsl\writer\raise\shader_io.cc:101 internal compiler error: TINT_UNREACHABLE 
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/types/functions/shader_io/compute_subgroup_builtins.wgsl.expected.ir.fxc.hlsl b/test/tint/types/functions/shader_io/compute_subgroup_builtins.wgsl.expected.ir.fxc.hlsl
index 3f437dc..3e59e2d 100644
--- a/test/tint/types/functions/shader_io/compute_subgroup_builtins.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/types/functions/shader_io/compute_subgroup_builtins.wgsl.expected.ir.fxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Access
+..\..\src\tint\lang\hlsl\writer\raise\shader_io.cc:101 internal compiler error: TINT_UNREACHABLE 
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/types/functions/shader_io/compute_subgroup_builtins_struct.wgsl.expected.ir.dxc.hlsl b/test/tint/types/functions/shader_io/compute_subgroup_builtins_struct.wgsl.expected.ir.dxc.hlsl
index 3f437dc..3e59e2d 100644
--- a/test/tint/types/functions/shader_io/compute_subgroup_builtins_struct.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/types/functions/shader_io/compute_subgroup_builtins_struct.wgsl.expected.ir.dxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Access
+..\..\src\tint\lang\hlsl\writer\raise\shader_io.cc:101 internal compiler error: TINT_UNREACHABLE 
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/types/functions/shader_io/compute_subgroup_builtins_struct.wgsl.expected.ir.fxc.hlsl b/test/tint/types/functions/shader_io/compute_subgroup_builtins_struct.wgsl.expected.ir.fxc.hlsl
index 3f437dc..3e59e2d 100644
--- a/test/tint/types/functions/shader_io/compute_subgroup_builtins_struct.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/types/functions/shader_io/compute_subgroup_builtins_struct.wgsl.expected.ir.fxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Access
+..\..\src\tint\lang\hlsl\writer\raise\shader_io.cc:101 internal compiler error: TINT_UNREACHABLE 
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/types/functions/shader_io/compute_workgroup_expression.wgsl.expected.ir.dxc.hlsl b/test/tint/types/functions/shader_io/compute_workgroup_expression.wgsl.expected.ir.dxc.hlsl
index ec3d99f..78a9007 100644
--- a/test/tint/types/functions/shader_io/compute_workgroup_expression.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/types/functions/shader_io/compute_workgroup_expression.wgsl.expected.ir.dxc.hlsl
@@ -1,3 +1,4 @@
+
 [numthreads(3, 2, 3)]
 void main() {
 }
diff --git a/test/tint/types/functions/shader_io/compute_workgroup_expression.wgsl.expected.ir.fxc.hlsl b/test/tint/types/functions/shader_io/compute_workgroup_expression.wgsl.expected.ir.fxc.hlsl
index ec3d99f..78a9007 100644
--- a/test/tint/types/functions/shader_io/compute_workgroup_expression.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/types/functions/shader_io/compute_workgroup_expression.wgsl.expected.ir.fxc.hlsl
@@ -1,3 +1,4 @@
+
 [numthreads(3, 2, 3)]
 void main() {
 }
diff --git a/test/tint/types/functions/shader_io/fragment_f16_io_polyfill.wgsl.expected.ir.dxc.hlsl b/test/tint/types/functions/shader_io/fragment_f16_io_polyfill.wgsl.expected.ir.dxc.hlsl
index c6e1d96..53b8822 100644
--- a/test/tint/types/functions/shader_io/fragment_f16_io_polyfill.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/types/functions/shader_io/fragment_f16_io_polyfill.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,29 @@
-SKIP: FAILED
+struct Outputs {
+  float16_t a;
+  vector<float16_t, 4> b;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Construct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct frag_main_outputs {
+  float16_t Outputs_a : SV_Target1;
+  vector<float16_t, 4> Outputs_b : SV_Target2;
+};
+
+struct frag_main_inputs {
+  float16_t loc1 : TEXCOORD1;
+  vector<float16_t, 4> loc2 : TEXCOORD2;
+};
+
+
+Outputs frag_main_inner(float16_t loc1, vector<float16_t, 4> loc2) {
+  Outputs v = {(loc1 * float16_t(2.0h)), (loc2 * float16_t(3.0h))};
+  return v;
+}
+
+frag_main_outputs frag_main(frag_main_inputs inputs) {
+  Outputs v_1 = frag_main_inner(inputs.loc1, inputs.loc2);
+  Outputs v_2 = v_1;
+  Outputs v_3 = v_1;
+  frag_main_outputs v_4 = {v_2.a, v_3.b};
+  return v_4;
+}
+
diff --git a/test/tint/types/functions/shader_io/fragment_f16_io_polyfill.wgsl.expected.ir.fxc.hlsl b/test/tint/types/functions/shader_io/fragment_f16_io_polyfill.wgsl.expected.ir.fxc.hlsl
index c6e1d96..906bfc4 100644
--- a/test/tint/types/functions/shader_io/fragment_f16_io_polyfill.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/types/functions/shader_io/fragment_f16_io_polyfill.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,34 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Construct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct Outputs {
+  float16_t a;
+  vector<float16_t, 4> b;
+};
+
+struct frag_main_outputs {
+  float16_t Outputs_a : SV_Target1;
+  vector<float16_t, 4> Outputs_b : SV_Target2;
+};
+
+struct frag_main_inputs {
+  float16_t loc1 : TEXCOORD1;
+  vector<float16_t, 4> loc2 : TEXCOORD2;
+};
+
+
+Outputs frag_main_inner(float16_t loc1, vector<float16_t, 4> loc2) {
+  Outputs v = {(loc1 * float16_t(2.0h)), (loc2 * float16_t(3.0h))};
+  return v;
+}
+
+frag_main_outputs frag_main(frag_main_inputs inputs) {
+  Outputs v_1 = frag_main_inner(inputs.loc1, inputs.loc2);
+  Outputs v_2 = v_1;
+  Outputs v_3 = v_1;
+  frag_main_outputs v_4 = {v_2.a, v_3.b};
+  return v_4;
+}
+
+FXC validation failure:
+c:\src\dawn\Shader@0x000002090F418420(2,3-11): error X3000: unrecognized identifier 'float16_t'
+
diff --git a/test/tint/types/functions/shader_io/fragment_input_builtins.wgsl.expected.ir.dxc.hlsl b/test/tint/types/functions/shader_io/fragment_input_builtins.wgsl.expected.ir.dxc.hlsl
index bdeab23..b36ba34 100644
--- a/test/tint/types/functions/shader_io/fragment_input_builtins.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/types/functions/shader_io/fragment_input_builtins.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,19 @@
-SKIP: FAILED
+struct main_inputs {
+  float4 position : SV_Position;
+  bool front_facing : SV_IsFrontFace;
+  uint sample_index : SV_SampleIndex;
+  uint sample_mask : SV_Coverage;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:198 internal compiler error: Switch() matched no cases. Type: tint::core::ir::If
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+
+void main_inner(float4 position, bool front_facing, uint sample_index, uint sample_mask) {
+  if (front_facing) {
+    float4 foo = position;
+    uint bar = (sample_index + sample_mask);
+  }
+}
+
+void main(main_inputs inputs) {
+  main_inner(float4(inputs.position.xyz, (1.0f / inputs.position[3u])), inputs.front_facing, inputs.sample_index, inputs.sample_mask);
+}
+
diff --git a/test/tint/types/functions/shader_io/fragment_input_builtins.wgsl.expected.ir.fxc.hlsl b/test/tint/types/functions/shader_io/fragment_input_builtins.wgsl.expected.ir.fxc.hlsl
index bdeab23..b36ba34 100644
--- a/test/tint/types/functions/shader_io/fragment_input_builtins.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/types/functions/shader_io/fragment_input_builtins.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,19 @@
-SKIP: FAILED
+struct main_inputs {
+  float4 position : SV_Position;
+  bool front_facing : SV_IsFrontFace;
+  uint sample_index : SV_SampleIndex;
+  uint sample_mask : SV_Coverage;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:198 internal compiler error: Switch() matched no cases. Type: tint::core::ir::If
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+
+void main_inner(float4 position, bool front_facing, uint sample_index, uint sample_mask) {
+  if (front_facing) {
+    float4 foo = position;
+    uint bar = (sample_index + sample_mask);
+  }
+}
+
+void main(main_inputs inputs) {
+  main_inner(float4(inputs.position.xyz, (1.0f / inputs.position[3u])), inputs.front_facing, inputs.sample_index, inputs.sample_mask);
+}
+
diff --git a/test/tint/types/functions/shader_io/fragment_input_builtins_struct.wgsl.expected.ir.dxc.hlsl b/test/tint/types/functions/shader_io/fragment_input_builtins_struct.wgsl.expected.ir.dxc.hlsl
index bdeab23..38559be 100644
--- a/test/tint/types/functions/shader_io/fragment_input_builtins_struct.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/types/functions/shader_io/fragment_input_builtins_struct.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,27 @@
-SKIP: FAILED
+struct FragmentInputs {
+  float4 position;
+  bool front_facing;
+  uint sample_index;
+  uint sample_mask;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:198 internal compiler error: Switch() matched no cases. Type: tint::core::ir::If
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct main_inputs {
+  float4 FragmentInputs_position : SV_Position;
+  bool FragmentInputs_front_facing : SV_IsFrontFace;
+  uint FragmentInputs_sample_index : SV_SampleIndex;
+  uint FragmentInputs_sample_mask : SV_Coverage;
+};
+
+
+void main_inner(FragmentInputs inputs) {
+  if (inputs.front_facing) {
+    float4 foo = inputs.position;
+    uint bar = (inputs.sample_index + inputs.sample_mask);
+  }
+}
+
+void main(main_inputs inputs) {
+  FragmentInputs v = {float4(inputs.FragmentInputs_position.xyz, (1.0f / inputs.FragmentInputs_position[3u])), inputs.FragmentInputs_front_facing, inputs.FragmentInputs_sample_index, inputs.FragmentInputs_sample_mask};
+  main_inner(v);
+}
+
diff --git a/test/tint/types/functions/shader_io/fragment_input_builtins_struct.wgsl.expected.ir.fxc.hlsl b/test/tint/types/functions/shader_io/fragment_input_builtins_struct.wgsl.expected.ir.fxc.hlsl
index bdeab23..38559be 100644
--- a/test/tint/types/functions/shader_io/fragment_input_builtins_struct.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/types/functions/shader_io/fragment_input_builtins_struct.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,27 @@
-SKIP: FAILED
+struct FragmentInputs {
+  float4 position;
+  bool front_facing;
+  uint sample_index;
+  uint sample_mask;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:198 internal compiler error: Switch() matched no cases. Type: tint::core::ir::If
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct main_inputs {
+  float4 FragmentInputs_position : SV_Position;
+  bool FragmentInputs_front_facing : SV_IsFrontFace;
+  uint FragmentInputs_sample_index : SV_SampleIndex;
+  uint FragmentInputs_sample_mask : SV_Coverage;
+};
+
+
+void main_inner(FragmentInputs inputs) {
+  if (inputs.front_facing) {
+    float4 foo = inputs.position;
+    uint bar = (inputs.sample_index + inputs.sample_mask);
+  }
+}
+
+void main(main_inputs inputs) {
+  FragmentInputs v = {float4(inputs.FragmentInputs_position.xyz, (1.0f / inputs.FragmentInputs_position[3u])), inputs.FragmentInputs_front_facing, inputs.FragmentInputs_sample_index, inputs.FragmentInputs_sample_mask};
+  main_inner(v);
+}
+
diff --git a/test/tint/types/functions/shader_io/fragment_input_locations.wgsl.expected.ir.dxc.hlsl b/test/tint/types/functions/shader_io/fragment_input_locations.wgsl.expected.ir.dxc.hlsl
index 6b047b4..95be825 100644
--- a/test/tint/types/functions/shader_io/fragment_input_locations.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/types/functions/shader_io/fragment_input_locations.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,19 @@
-SKIP: FAILED
+struct main_inputs {
+  nointerpolation int loc0 : TEXCOORD0;
+  nointerpolation uint loc1 : TEXCOORD1;
+  float loc2 : TEXCOORD2;
+  float4 loc3 : TEXCOORD3;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:287 internal compiler error: Switch() matched no cases. Type: tint::core::ir::FunctionParam
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+
+void main_inner(int loc0, uint loc1, float loc2, float4 loc3) {
+  int i = loc0;
+  uint u = loc1;
+  float f = loc2;
+  float4 v = loc3;
+}
+
+void main(main_inputs inputs) {
+  main_inner(inputs.loc0, inputs.loc1, inputs.loc2, inputs.loc3);
+}
+
diff --git a/test/tint/types/functions/shader_io/fragment_input_locations.wgsl.expected.ir.fxc.hlsl b/test/tint/types/functions/shader_io/fragment_input_locations.wgsl.expected.ir.fxc.hlsl
index 6b047b4..95be825 100644
--- a/test/tint/types/functions/shader_io/fragment_input_locations.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/types/functions/shader_io/fragment_input_locations.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,19 @@
-SKIP: FAILED
+struct main_inputs {
+  nointerpolation int loc0 : TEXCOORD0;
+  nointerpolation uint loc1 : TEXCOORD1;
+  float loc2 : TEXCOORD2;
+  float4 loc3 : TEXCOORD3;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:287 internal compiler error: Switch() matched no cases. Type: tint::core::ir::FunctionParam
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+
+void main_inner(int loc0, uint loc1, float loc2, float4 loc3) {
+  int i = loc0;
+  uint u = loc1;
+  float f = loc2;
+  float4 v = loc3;
+}
+
+void main(main_inputs inputs) {
+  main_inner(inputs.loc0, inputs.loc1, inputs.loc2, inputs.loc3);
+}
+
diff --git a/test/tint/types/functions/shader_io/fragment_input_locations_f16.wgsl.expected.ir.dxc.hlsl b/test/tint/types/functions/shader_io/fragment_input_locations_f16.wgsl.expected.ir.dxc.hlsl
index 6b047b4..2c22c67 100644
--- a/test/tint/types/functions/shader_io/fragment_input_locations_f16.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/types/functions/shader_io/fragment_input_locations_f16.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,23 @@
-SKIP: FAILED
+struct main_inputs {
+  nointerpolation int loc0 : TEXCOORD0;
+  nointerpolation uint loc1 : TEXCOORD1;
+  float loc2 : TEXCOORD2;
+  float4 loc3 : TEXCOORD3;
+  float16_t loc4 : TEXCOORD4;
+  vector<float16_t, 3> loc5 : TEXCOORD5;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:287 internal compiler error: Switch() matched no cases. Type: tint::core::ir::FunctionParam
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+
+void main_inner(int loc0, uint loc1, float loc2, float4 loc3, float16_t loc4, vector<float16_t, 3> loc5) {
+  int i = loc0;
+  uint u = loc1;
+  float f = loc2;
+  float4 v = loc3;
+  float16_t x = loc4;
+  vector<float16_t, 3> y = loc5;
+}
+
+void main(main_inputs inputs) {
+  main_inner(inputs.loc0, inputs.loc1, inputs.loc2, inputs.loc3, inputs.loc4, inputs.loc5);
+}
+
diff --git a/test/tint/types/functions/shader_io/fragment_input_locations_f16.wgsl.expected.ir.fxc.hlsl b/test/tint/types/functions/shader_io/fragment_input_locations_f16.wgsl.expected.ir.fxc.hlsl
index 6b047b4..994263a 100644
--- a/test/tint/types/functions/shader_io/fragment_input_locations_f16.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/types/functions/shader_io/fragment_input_locations_f16.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,28 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:287 internal compiler error: Switch() matched no cases. Type: tint::core::ir::FunctionParam
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct main_inputs {
+  nointerpolation int loc0 : TEXCOORD0;
+  nointerpolation uint loc1 : TEXCOORD1;
+  float loc2 : TEXCOORD2;
+  float4 loc3 : TEXCOORD3;
+  float16_t loc4 : TEXCOORD4;
+  vector<float16_t, 3> loc5 : TEXCOORD5;
+};
+
+
+void main_inner(int loc0, uint loc1, float loc2, float4 loc3, float16_t loc4, vector<float16_t, 3> loc5) {
+  int i = loc0;
+  uint u = loc1;
+  float f = loc2;
+  float4 v = loc3;
+  float16_t x = loc4;
+  vector<float16_t, 3> y = loc5;
+}
+
+void main(main_inputs inputs) {
+  main_inner(inputs.loc0, inputs.loc1, inputs.loc2, inputs.loc3, inputs.loc4, inputs.loc5);
+}
+
+FXC validation failure:
+c:\src\dawn\Shader@0x0000024211311050(6,3-11): error X3000: unrecognized identifier 'float16_t'
+
diff --git a/test/tint/types/functions/shader_io/fragment_input_locations_struct.wgsl.expected.ir.dxc.hlsl b/test/tint/types/functions/shader_io/fragment_input_locations_struct.wgsl.expected.ir.dxc.hlsl
index 3f437dc..91cf9b4 100644
--- a/test/tint/types/functions/shader_io/fragment_input_locations_struct.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/types/functions/shader_io/fragment_input_locations_struct.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,27 @@
-SKIP: FAILED
+struct FragmentInputs {
+  int loc0;
+  uint loc1;
+  float loc2;
+  float4 loc3;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Access
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct main_inputs {
+  nointerpolation int FragmentInputs_loc0 : TEXCOORD0;
+  nointerpolation uint FragmentInputs_loc1 : TEXCOORD1;
+  float FragmentInputs_loc2 : TEXCOORD2;
+  float4 FragmentInputs_loc3 : TEXCOORD3;
+};
+
+
+void main_inner(FragmentInputs inputs) {
+  int i = inputs.loc0;
+  uint u = inputs.loc1;
+  float f = inputs.loc2;
+  float4 v = inputs.loc3;
+}
+
+void main(main_inputs inputs) {
+  FragmentInputs v_1 = {inputs.FragmentInputs_loc0, inputs.FragmentInputs_loc1, inputs.FragmentInputs_loc2, inputs.FragmentInputs_loc3};
+  main_inner(v_1);
+}
+
diff --git a/test/tint/types/functions/shader_io/fragment_input_locations_struct.wgsl.expected.ir.fxc.hlsl b/test/tint/types/functions/shader_io/fragment_input_locations_struct.wgsl.expected.ir.fxc.hlsl
index 3f437dc..91cf9b4 100644
--- a/test/tint/types/functions/shader_io/fragment_input_locations_struct.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/types/functions/shader_io/fragment_input_locations_struct.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,27 @@
-SKIP: FAILED
+struct FragmentInputs {
+  int loc0;
+  uint loc1;
+  float loc2;
+  float4 loc3;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Access
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct main_inputs {
+  nointerpolation int FragmentInputs_loc0 : TEXCOORD0;
+  nointerpolation uint FragmentInputs_loc1 : TEXCOORD1;
+  float FragmentInputs_loc2 : TEXCOORD2;
+  float4 FragmentInputs_loc3 : TEXCOORD3;
+};
+
+
+void main_inner(FragmentInputs inputs) {
+  int i = inputs.loc0;
+  uint u = inputs.loc1;
+  float f = inputs.loc2;
+  float4 v = inputs.loc3;
+}
+
+void main(main_inputs inputs) {
+  FragmentInputs v_1 = {inputs.FragmentInputs_loc0, inputs.FragmentInputs_loc1, inputs.FragmentInputs_loc2, inputs.FragmentInputs_loc3};
+  main_inner(v_1);
+}
+
diff --git a/test/tint/types/functions/shader_io/fragment_input_locations_struct_f16.wgsl.expected.ir.dxc.hlsl b/test/tint/types/functions/shader_io/fragment_input_locations_struct_f16.wgsl.expected.ir.dxc.hlsl
index 3f437dc..e451509 100644
--- a/test/tint/types/functions/shader_io/fragment_input_locations_struct_f16.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/types/functions/shader_io/fragment_input_locations_struct_f16.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,33 @@
-SKIP: FAILED
+struct FragmentInputs {
+  int loc0;
+  uint loc1;
+  float loc2;
+  float4 loc3;
+  float16_t loc4;
+  vector<float16_t, 3> loc5;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Access
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct main_inputs {
+  nointerpolation int FragmentInputs_loc0 : TEXCOORD0;
+  nointerpolation uint FragmentInputs_loc1 : TEXCOORD1;
+  float FragmentInputs_loc2 : TEXCOORD2;
+  float4 FragmentInputs_loc3 : TEXCOORD3;
+  float16_t FragmentInputs_loc4 : TEXCOORD4;
+  vector<float16_t, 3> FragmentInputs_loc5 : TEXCOORD5;
+};
+
+
+void main_inner(FragmentInputs inputs) {
+  int i = inputs.loc0;
+  uint u = inputs.loc1;
+  float f = inputs.loc2;
+  float4 v = inputs.loc3;
+  float16_t x = inputs.loc4;
+  vector<float16_t, 3> y = inputs.loc5;
+}
+
+void main(main_inputs inputs) {
+  FragmentInputs v_1 = {inputs.FragmentInputs_loc0, inputs.FragmentInputs_loc1, inputs.FragmentInputs_loc2, inputs.FragmentInputs_loc3, inputs.FragmentInputs_loc4, inputs.FragmentInputs_loc5};
+  main_inner(v_1);
+}
+
diff --git a/test/tint/types/functions/shader_io/fragment_input_locations_struct_f16.wgsl.expected.ir.fxc.hlsl b/test/tint/types/functions/shader_io/fragment_input_locations_struct_f16.wgsl.expected.ir.fxc.hlsl
index 3f437dc..eccdf8c 100644
--- a/test/tint/types/functions/shader_io/fragment_input_locations_struct_f16.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/types/functions/shader_io/fragment_input_locations_struct_f16.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,38 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Access
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct FragmentInputs {
+  int loc0;
+  uint loc1;
+  float loc2;
+  float4 loc3;
+  float16_t loc4;
+  vector<float16_t, 3> loc5;
+};
+
+struct main_inputs {
+  nointerpolation int FragmentInputs_loc0 : TEXCOORD0;
+  nointerpolation uint FragmentInputs_loc1 : TEXCOORD1;
+  float FragmentInputs_loc2 : TEXCOORD2;
+  float4 FragmentInputs_loc3 : TEXCOORD3;
+  float16_t FragmentInputs_loc4 : TEXCOORD4;
+  vector<float16_t, 3> FragmentInputs_loc5 : TEXCOORD5;
+};
+
+
+void main_inner(FragmentInputs inputs) {
+  int i = inputs.loc0;
+  uint u = inputs.loc1;
+  float f = inputs.loc2;
+  float4 v = inputs.loc3;
+  float16_t x = inputs.loc4;
+  vector<float16_t, 3> y = inputs.loc5;
+}
+
+void main(main_inputs inputs) {
+  FragmentInputs v_1 = {inputs.FragmentInputs_loc0, inputs.FragmentInputs_loc1, inputs.FragmentInputs_loc2, inputs.FragmentInputs_loc3, inputs.FragmentInputs_loc4, inputs.FragmentInputs_loc5};
+  main_inner(v_1);
+}
+
+FXC validation failure:
+c:\src\dawn\Shader@0x000002706E117D80(6,3-11): error X3000: unrecognized identifier 'float16_t'
+
diff --git a/test/tint/types/functions/shader_io/fragment_input_mixed.wgsl.expected.ir.dxc.hlsl b/test/tint/types/functions/shader_io/fragment_input_mixed.wgsl.expected.ir.dxc.hlsl
index bdeab23..55610f9 100644
--- a/test/tint/types/functions/shader_io/fragment_input_mixed.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/types/functions/shader_io/fragment_input_mixed.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,40 @@
-SKIP: FAILED
+struct FragmentInputs0 {
+  float4 position;
+  int loc0;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:198 internal compiler error: Switch() matched no cases. Type: tint::core::ir::If
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct FragmentInputs1 {
+  float4 loc3;
+  uint sample_mask;
+};
+
+struct main_inputs {
+  nointerpolation int FragmentInputs0_loc0 : TEXCOORD0;
+  nointerpolation uint loc1 : TEXCOORD1;
+  float loc2 : TEXCOORD2;
+  float4 FragmentInputs1_loc3 : TEXCOORD3;
+  float4 FragmentInputs0_position : SV_Position;
+  bool front_facing : SV_IsFrontFace;
+  uint sample_index : SV_SampleIndex;
+  uint FragmentInputs1_sample_mask : SV_Coverage;
+};
+
+
+void main_inner(FragmentInputs0 inputs0, bool front_facing, uint loc1, uint sample_index, FragmentInputs1 inputs1, float loc2) {
+  if (front_facing) {
+    float4 foo = inputs0.position;
+    uint bar = (sample_index + inputs1.sample_mask);
+    int i = inputs0.loc0;
+    uint u = loc1;
+    float f = loc2;
+    float4 v = inputs1.loc3;
+  }
+}
+
+void main(main_inputs inputs) {
+  FragmentInputs0 v_1 = {float4(inputs.FragmentInputs0_position.xyz, (1.0f / inputs.FragmentInputs0_position[3u])), inputs.FragmentInputs0_loc0};
+  FragmentInputs0 v_2 = v_1;
+  FragmentInputs1 v_3 = {inputs.FragmentInputs1_loc3, inputs.FragmentInputs1_sample_mask};
+  main_inner(v_2, inputs.front_facing, inputs.loc1, inputs.sample_index, v_3, inputs.loc2);
+}
+
diff --git a/test/tint/types/functions/shader_io/fragment_input_mixed.wgsl.expected.ir.fxc.hlsl b/test/tint/types/functions/shader_io/fragment_input_mixed.wgsl.expected.ir.fxc.hlsl
index bdeab23..55610f9 100644
--- a/test/tint/types/functions/shader_io/fragment_input_mixed.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/types/functions/shader_io/fragment_input_mixed.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,40 @@
-SKIP: FAILED
+struct FragmentInputs0 {
+  float4 position;
+  int loc0;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:198 internal compiler error: Switch() matched no cases. Type: tint::core::ir::If
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct FragmentInputs1 {
+  float4 loc3;
+  uint sample_mask;
+};
+
+struct main_inputs {
+  nointerpolation int FragmentInputs0_loc0 : TEXCOORD0;
+  nointerpolation uint loc1 : TEXCOORD1;
+  float loc2 : TEXCOORD2;
+  float4 FragmentInputs1_loc3 : TEXCOORD3;
+  float4 FragmentInputs0_position : SV_Position;
+  bool front_facing : SV_IsFrontFace;
+  uint sample_index : SV_SampleIndex;
+  uint FragmentInputs1_sample_mask : SV_Coverage;
+};
+
+
+void main_inner(FragmentInputs0 inputs0, bool front_facing, uint loc1, uint sample_index, FragmentInputs1 inputs1, float loc2) {
+  if (front_facing) {
+    float4 foo = inputs0.position;
+    uint bar = (sample_index + inputs1.sample_mask);
+    int i = inputs0.loc0;
+    uint u = loc1;
+    float f = loc2;
+    float4 v = inputs1.loc3;
+  }
+}
+
+void main(main_inputs inputs) {
+  FragmentInputs0 v_1 = {float4(inputs.FragmentInputs0_position.xyz, (1.0f / inputs.FragmentInputs0_position[3u])), inputs.FragmentInputs0_loc0};
+  FragmentInputs0 v_2 = v_1;
+  FragmentInputs1 v_3 = {inputs.FragmentInputs1_loc3, inputs.FragmentInputs1_sample_mask};
+  main_inner(v_2, inputs.front_facing, inputs.loc1, inputs.sample_index, v_3, inputs.loc2);
+}
+
diff --git a/test/tint/types/functions/shader_io/fragment_input_mixed_f16.wgsl.expected.ir.dxc.hlsl b/test/tint/types/functions/shader_io/fragment_input_mixed_f16.wgsl.expected.ir.dxc.hlsl
index bdeab23..3ea2436 100644
--- a/test/tint/types/functions/shader_io/fragment_input_mixed_f16.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/types/functions/shader_io/fragment_input_mixed_f16.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,45 @@
-SKIP: FAILED
+struct FragmentInputs0 {
+  float4 position;
+  int loc0;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:198 internal compiler error: Switch() matched no cases. Type: tint::core::ir::If
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct FragmentInputs1 {
+  float4 loc3;
+  vector<float16_t, 3> loc5;
+  uint sample_mask;
+};
+
+struct main_inputs {
+  nointerpolation int FragmentInputs0_loc0 : TEXCOORD0;
+  nointerpolation uint loc1 : TEXCOORD1;
+  float loc2 : TEXCOORD2;
+  float4 FragmentInputs1_loc3 : TEXCOORD3;
+  float16_t loc4 : TEXCOORD4;
+  vector<float16_t, 3> FragmentInputs1_loc5 : TEXCOORD5;
+  float4 FragmentInputs0_position : SV_Position;
+  bool front_facing : SV_IsFrontFace;
+  uint sample_index : SV_SampleIndex;
+  uint FragmentInputs1_sample_mask : SV_Coverage;
+};
+
+
+void main_inner(FragmentInputs0 inputs0, bool front_facing, uint loc1, uint sample_index, FragmentInputs1 inputs1, float loc2, float16_t loc4) {
+  if (front_facing) {
+    float4 foo = inputs0.position;
+    uint bar = (sample_index + inputs1.sample_mask);
+    int i = inputs0.loc0;
+    uint u = loc1;
+    float f = loc2;
+    float4 v = inputs1.loc3;
+    float16_t x = loc4;
+    vector<float16_t, 3> y = inputs1.loc5;
+  }
+}
+
+void main(main_inputs inputs) {
+  FragmentInputs0 v_1 = {float4(inputs.FragmentInputs0_position.xyz, (1.0f / inputs.FragmentInputs0_position[3u])), inputs.FragmentInputs0_loc0};
+  FragmentInputs0 v_2 = v_1;
+  FragmentInputs1 v_3 = {inputs.FragmentInputs1_loc3, inputs.FragmentInputs1_loc5, inputs.FragmentInputs1_sample_mask};
+  main_inner(v_2, inputs.front_facing, inputs.loc1, inputs.sample_index, v_3, inputs.loc2, inputs.loc4);
+}
+
diff --git a/test/tint/types/functions/shader_io/fragment_input_mixed_f16.wgsl.expected.ir.fxc.hlsl b/test/tint/types/functions/shader_io/fragment_input_mixed_f16.wgsl.expected.ir.fxc.hlsl
index bdeab23..527be50 100644
--- a/test/tint/types/functions/shader_io/fragment_input_mixed_f16.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/types/functions/shader_io/fragment_input_mixed_f16.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,50 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:198 internal compiler error: Switch() matched no cases. Type: tint::core::ir::If
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct FragmentInputs0 {
+  float4 position;
+  int loc0;
+};
+
+struct FragmentInputs1 {
+  float4 loc3;
+  vector<float16_t, 3> loc5;
+  uint sample_mask;
+};
+
+struct main_inputs {
+  nointerpolation int FragmentInputs0_loc0 : TEXCOORD0;
+  nointerpolation uint loc1 : TEXCOORD1;
+  float loc2 : TEXCOORD2;
+  float4 FragmentInputs1_loc3 : TEXCOORD3;
+  float16_t loc4 : TEXCOORD4;
+  vector<float16_t, 3> FragmentInputs1_loc5 : TEXCOORD5;
+  float4 FragmentInputs0_position : SV_Position;
+  bool front_facing : SV_IsFrontFace;
+  uint sample_index : SV_SampleIndex;
+  uint FragmentInputs1_sample_mask : SV_Coverage;
+};
+
+
+void main_inner(FragmentInputs0 inputs0, bool front_facing, uint loc1, uint sample_index, FragmentInputs1 inputs1, float loc2, float16_t loc4) {
+  if (front_facing) {
+    float4 foo = inputs0.position;
+    uint bar = (sample_index + inputs1.sample_mask);
+    int i = inputs0.loc0;
+    uint u = loc1;
+    float f = loc2;
+    float4 v = inputs1.loc3;
+    float16_t x = loc4;
+    vector<float16_t, 3> y = inputs1.loc5;
+  }
+}
+
+void main(main_inputs inputs) {
+  FragmentInputs0 v_1 = {float4(inputs.FragmentInputs0_position.xyz, (1.0f / inputs.FragmentInputs0_position[3u])), inputs.FragmentInputs0_loc0};
+  FragmentInputs0 v_2 = v_1;
+  FragmentInputs1 v_3 = {inputs.FragmentInputs1_loc3, inputs.FragmentInputs1_loc5, inputs.FragmentInputs1_sample_mask};
+  main_inner(v_2, inputs.front_facing, inputs.loc1, inputs.sample_index, v_3, inputs.loc2, inputs.loc4);
+}
+
+FXC validation failure:
+c:\src\dawn\Shader@0x00000130421B2D80(8,10-18): error X3000: syntax error: unexpected token 'float16_t'
+
diff --git a/test/tint/types/functions/shader_io/fragment_output_builtins.wgsl.expected.ir.dxc.hlsl b/test/tint/types/functions/shader_io/fragment_output_builtins.wgsl.expected.ir.dxc.hlsl
index 6c50e83..503cda4 100644
--- a/test/tint/types/functions/shader_io/fragment_output_builtins.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/types/functions/shader_io/fragment_output_builtins.wgsl.expected.ir.dxc.hlsl
@@ -1,15 +1,27 @@
-SKIP: FAILED
+struct main1_outputs {
+  float tint_symbol : SV_Depth;
+};
 
-float main1() {
+struct main2_outputs {
+  uint tint_symbol_1 : SV_Coverage;
+};
+
+
+float main1_inner() {
   return 1.0f;
 }
 
-uint main2() {
+uint main2_inner() {
   return 1u;
 }
 
-DXC validation failure:
-hlsl.hlsl:1:1: error: Semantic must be defined for all outputs of an entry function or patch constant function
-float main1() {
-^
+main1_outputs main1() {
+  main1_outputs v = {main1_inner()};
+  return v;
+}
+
+main2_outputs main2() {
+  main2_outputs v_1 = {main2_inner()};
+  return v_1;
+}
 
diff --git a/test/tint/types/functions/shader_io/fragment_output_builtins.wgsl.expected.ir.fxc.hlsl b/test/tint/types/functions/shader_io/fragment_output_builtins.wgsl.expected.ir.fxc.hlsl
index 551179f..503cda4 100644
--- a/test/tint/types/functions/shader_io/fragment_output_builtins.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/types/functions/shader_io/fragment_output_builtins.wgsl.expected.ir.fxc.hlsl
@@ -1,8 +1,27 @@
-float main1() {
+struct main1_outputs {
+  float tint_symbol : SV_Depth;
+};
+
+struct main2_outputs {
+  uint tint_symbol_1 : SV_Coverage;
+};
+
+
+float main1_inner() {
   return 1.0f;
 }
 
-uint main2() {
+uint main2_inner() {
   return 1u;
 }
 
+main1_outputs main1() {
+  main1_outputs v = {main1_inner()};
+  return v;
+}
+
+main2_outputs main2() {
+  main2_outputs v_1 = {main2_inner()};
+  return v_1;
+}
+
diff --git a/test/tint/types/functions/shader_io/fragment_output_builtins_struct.wgsl.expected.ir.dxc.hlsl b/test/tint/types/functions/shader_io/fragment_output_builtins_struct.wgsl.expected.ir.dxc.hlsl
index 0ba40c6..0fd7e61 100644
--- a/test/tint/types/functions/shader_io/fragment_output_builtins_struct.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/types/functions/shader_io/fragment_output_builtins_struct.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,24 @@
-SKIP: FAILED
+struct FragmentOutputs {
+  float frag_depth;
+  uint sample_mask;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct main_outputs {
+  float FragmentOutputs_frag_depth : SV_Depth;
+  uint FragmentOutputs_sample_mask : SV_Coverage;
+};
+
+
+FragmentOutputs main_inner() {
+  FragmentOutputs v = {1.0f, 1u};
+  return v;
+}
+
+main_outputs main() {
+  FragmentOutputs v_1 = main_inner();
+  FragmentOutputs v_2 = v_1;
+  FragmentOutputs v_3 = v_1;
+  main_outputs v_4 = {v_2.frag_depth, v_3.sample_mask};
+  return v_4;
+}
+
diff --git a/test/tint/types/functions/shader_io/fragment_output_builtins_struct.wgsl.expected.ir.fxc.hlsl b/test/tint/types/functions/shader_io/fragment_output_builtins_struct.wgsl.expected.ir.fxc.hlsl
index 0ba40c6..0fd7e61 100644
--- a/test/tint/types/functions/shader_io/fragment_output_builtins_struct.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/types/functions/shader_io/fragment_output_builtins_struct.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,24 @@
-SKIP: FAILED
+struct FragmentOutputs {
+  float frag_depth;
+  uint sample_mask;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct main_outputs {
+  float FragmentOutputs_frag_depth : SV_Depth;
+  uint FragmentOutputs_sample_mask : SV_Coverage;
+};
+
+
+FragmentOutputs main_inner() {
+  FragmentOutputs v = {1.0f, 1u};
+  return v;
+}
+
+main_outputs main() {
+  FragmentOutputs v_1 = main_inner();
+  FragmentOutputs v_2 = v_1;
+  FragmentOutputs v_3 = v_1;
+  main_outputs v_4 = {v_2.frag_depth, v_3.sample_mask};
+  return v_4;
+}
+
diff --git a/test/tint/types/functions/shader_io/fragment_output_locations.wgsl.expected.ir.dxc.hlsl b/test/tint/types/functions/shader_io/fragment_output_locations.wgsl.expected.ir.dxc.hlsl
index 90ea15b..47153ab 100644
--- a/test/tint/types/functions/shader_io/fragment_output_locations.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/types/functions/shader_io/fragment_output_locations.wgsl.expected.ir.dxc.hlsl
@@ -1,23 +1,53 @@
-SKIP: FAILED
+struct main0_outputs {
+  int tint_symbol : SV_Target0;
+};
 
-int main0() {
+struct main1_outputs {
+  uint tint_symbol_1 : SV_Target1;
+};
+
+struct main2_outputs {
+  float tint_symbol_2 : SV_Target2;
+};
+
+struct main3_outputs {
+  float4 tint_symbol_3 : SV_Target3;
+};
+
+
+int main0_inner() {
   return 1;
 }
 
-uint main1() {
+uint main1_inner() {
   return 1u;
 }
 
-float main2() {
+float main2_inner() {
   return 1.0f;
 }
 
-float4 main3() {
+float4 main3_inner() {
   return float4(1.0f, 2.0f, 3.0f, 4.0f);
 }
 
-DXC validation failure:
-hlsl.hlsl:1:1: error: Semantic must be defined for all outputs of an entry function or patch constant function
-int main0() {
-^
+main0_outputs main0() {
+  main0_outputs v = {main0_inner()};
+  return v;
+}
+
+main1_outputs main1() {
+  main1_outputs v_1 = {main1_inner()};
+  return v_1;
+}
+
+main2_outputs main2() {
+  main2_outputs v_2 = {main2_inner()};
+  return v_2;
+}
+
+main3_outputs main3() {
+  main3_outputs v_3 = {main3_inner()};
+  return v_3;
+}
 
diff --git a/test/tint/types/functions/shader_io/fragment_output_locations.wgsl.expected.ir.fxc.hlsl b/test/tint/types/functions/shader_io/fragment_output_locations.wgsl.expected.ir.fxc.hlsl
index 752d035..47153ab 100644
--- a/test/tint/types/functions/shader_io/fragment_output_locations.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/types/functions/shader_io/fragment_output_locations.wgsl.expected.ir.fxc.hlsl
@@ -1,16 +1,53 @@
-int main0() {
+struct main0_outputs {
+  int tint_symbol : SV_Target0;
+};
+
+struct main1_outputs {
+  uint tint_symbol_1 : SV_Target1;
+};
+
+struct main2_outputs {
+  float tint_symbol_2 : SV_Target2;
+};
+
+struct main3_outputs {
+  float4 tint_symbol_3 : SV_Target3;
+};
+
+
+int main0_inner() {
   return 1;
 }
 
-uint main1() {
+uint main1_inner() {
   return 1u;
 }
 
-float main2() {
+float main2_inner() {
   return 1.0f;
 }
 
-float4 main3() {
+float4 main3_inner() {
   return float4(1.0f, 2.0f, 3.0f, 4.0f);
 }
 
+main0_outputs main0() {
+  main0_outputs v = {main0_inner()};
+  return v;
+}
+
+main1_outputs main1() {
+  main1_outputs v_1 = {main1_inner()};
+  return v_1;
+}
+
+main2_outputs main2() {
+  main2_outputs v_2 = {main2_inner()};
+  return v_2;
+}
+
+main3_outputs main3() {
+  main3_outputs v_3 = {main3_inner()};
+  return v_3;
+}
+
diff --git a/test/tint/types/functions/shader_io/fragment_output_locations_f16.wgsl.expected.ir.dxc.hlsl b/test/tint/types/functions/shader_io/fragment_output_locations_f16.wgsl.expected.ir.dxc.hlsl
index 83f6c6a..a60eaa1 100644
--- a/test/tint/types/functions/shader_io/fragment_output_locations_f16.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/types/functions/shader_io/fragment_output_locations_f16.wgsl.expected.ir.dxc.hlsl
@@ -1,31 +1,79 @@
-SKIP: FAILED
+struct main0_outputs {
+  int tint_symbol : SV_Target0;
+};
 
-int main0() {
+struct main1_outputs {
+  uint tint_symbol_1 : SV_Target1;
+};
+
+struct main2_outputs {
+  float tint_symbol_2 : SV_Target2;
+};
+
+struct main3_outputs {
+  float4 tint_symbol_3 : SV_Target3;
+};
+
+struct main4_outputs {
+  float16_t tint_symbol_4 : SV_Target4;
+};
+
+struct main5_outputs {
+  vector<float16_t, 3> tint_symbol_5 : SV_Target5;
+};
+
+
+int main0_inner() {
   return 1;
 }
 
-uint main1() {
+uint main1_inner() {
   return 1u;
 }
 
-float main2() {
+float main2_inner() {
   return 1.0f;
 }
 
-float4 main3() {
+float4 main3_inner() {
   return float4(1.0f, 2.0f, 3.0f, 4.0f);
 }
 
-float16_t main4() {
+float16_t main4_inner() {
   return float16_t(2.25h);
 }
 
-vector<float16_t, 3> main5() {
+vector<float16_t, 3> main5_inner() {
   return vector<float16_t, 3>(float16_t(3.0h), float16_t(5.0h), float16_t(8.0h));
 }
 
-DXC validation failure:
-hlsl.hlsl:1:1: error: Semantic must be defined for all outputs of an entry function or patch constant function
-int main0() {
-^
+main0_outputs main0() {
+  main0_outputs v = {main0_inner()};
+  return v;
+}
+
+main1_outputs main1() {
+  main1_outputs v_1 = {main1_inner()};
+  return v_1;
+}
+
+main2_outputs main2() {
+  main2_outputs v_2 = {main2_inner()};
+  return v_2;
+}
+
+main3_outputs main3() {
+  main3_outputs v_3 = {main3_inner()};
+  return v_3;
+}
+
+main4_outputs main4() {
+  main4_outputs v_4 = {main4_inner()};
+  return v_4;
+}
+
+main5_outputs main5() {
+  main5_outputs v_5 = {main5_inner()};
+  return v_5;
+}
 
diff --git a/test/tint/types/functions/shader_io/fragment_output_locations_f16.wgsl.expected.ir.fxc.hlsl b/test/tint/types/functions/shader_io/fragment_output_locations_f16.wgsl.expected.ir.fxc.hlsl
index 5ed1397..a12a532 100644
--- a/test/tint/types/functions/shader_io/fragment_output_locations_f16.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/types/functions/shader_io/fragment_output_locations_f16.wgsl.expected.ir.fxc.hlsl
@@ -1,24 +1,84 @@
-int main0() {
+SKIP: FAILED
+
+struct main0_outputs {
+  int tint_symbol : SV_Target0;
+};
+
+struct main1_outputs {
+  uint tint_symbol_1 : SV_Target1;
+};
+
+struct main2_outputs {
+  float tint_symbol_2 : SV_Target2;
+};
+
+struct main3_outputs {
+  float4 tint_symbol_3 : SV_Target3;
+};
+
+struct main4_outputs {
+  float16_t tint_symbol_4 : SV_Target4;
+};
+
+struct main5_outputs {
+  vector<float16_t, 3> tint_symbol_5 : SV_Target5;
+};
+
+
+int main0_inner() {
   return 1;
 }
 
-uint main1() {
+uint main1_inner() {
   return 1u;
 }
 
-float main2() {
+float main2_inner() {
   return 1.0f;
 }
 
-float4 main3() {
+float4 main3_inner() {
   return float4(1.0f, 2.0f, 3.0f, 4.0f);
 }
 
-float16_t main4() {
+float16_t main4_inner() {
   return float16_t(2.25h);
 }
 
-vector<float16_t, 3> main5() {
+vector<float16_t, 3> main5_inner() {
   return vector<float16_t, 3>(float16_t(3.0h), float16_t(5.0h), float16_t(8.0h));
 }
 
+main0_outputs main0() {
+  main0_outputs v = {main0_inner()};
+  return v;
+}
+
+main1_outputs main1() {
+  main1_outputs v_1 = {main1_inner()};
+  return v_1;
+}
+
+main2_outputs main2() {
+  main2_outputs v_2 = {main2_inner()};
+  return v_2;
+}
+
+main3_outputs main3() {
+  main3_outputs v_3 = {main3_inner()};
+  return v_3;
+}
+
+main4_outputs main4() {
+  main4_outputs v_4 = {main4_inner()};
+  return v_4;
+}
+
+main5_outputs main5() {
+  main5_outputs v_5 = {main5_inner()};
+  return v_5;
+}
+
+FXC validation failure:
+c:\src\dawn\Shader@0x000002831F5B3ED0(18,3-11): error X3000: unrecognized identifier 'float16_t'
+
diff --git a/test/tint/types/functions/shader_io/fragment_output_locations_struct.wgsl.expected.ir.dxc.hlsl b/test/tint/types/functions/shader_io/fragment_output_locations_struct.wgsl.expected.ir.dxc.hlsl
index 0ba40c6..816f11d 100644
--- a/test/tint/types/functions/shader_io/fragment_output_locations_struct.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/types/functions/shader_io/fragment_output_locations_struct.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,30 @@
-SKIP: FAILED
+struct FragmentOutputs {
+  int loc0;
+  uint loc1;
+  float loc2;
+  float4 loc3;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct main_outputs {
+  int FragmentOutputs_loc0 : SV_Target0;
+  uint FragmentOutputs_loc1 : SV_Target1;
+  float FragmentOutputs_loc2 : SV_Target2;
+  float4 FragmentOutputs_loc3 : SV_Target3;
+};
+
+
+FragmentOutputs main_inner() {
+  FragmentOutputs v = {1, 1u, 1.0f, float4(1.0f, 2.0f, 3.0f, 4.0f)};
+  return v;
+}
+
+main_outputs main() {
+  FragmentOutputs v_1 = main_inner();
+  FragmentOutputs v_2 = v_1;
+  FragmentOutputs v_3 = v_1;
+  FragmentOutputs v_4 = v_1;
+  FragmentOutputs v_5 = v_1;
+  main_outputs v_6 = {v_2.loc0, v_3.loc1, v_4.loc2, v_5.loc3};
+  return v_6;
+}
+
diff --git a/test/tint/types/functions/shader_io/fragment_output_locations_struct.wgsl.expected.ir.fxc.hlsl b/test/tint/types/functions/shader_io/fragment_output_locations_struct.wgsl.expected.ir.fxc.hlsl
index 0ba40c6..816f11d 100644
--- a/test/tint/types/functions/shader_io/fragment_output_locations_struct.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/types/functions/shader_io/fragment_output_locations_struct.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,30 @@
-SKIP: FAILED
+struct FragmentOutputs {
+  int loc0;
+  uint loc1;
+  float loc2;
+  float4 loc3;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct main_outputs {
+  int FragmentOutputs_loc0 : SV_Target0;
+  uint FragmentOutputs_loc1 : SV_Target1;
+  float FragmentOutputs_loc2 : SV_Target2;
+  float4 FragmentOutputs_loc3 : SV_Target3;
+};
+
+
+FragmentOutputs main_inner() {
+  FragmentOutputs v = {1, 1u, 1.0f, float4(1.0f, 2.0f, 3.0f, 4.0f)};
+  return v;
+}
+
+main_outputs main() {
+  FragmentOutputs v_1 = main_inner();
+  FragmentOutputs v_2 = v_1;
+  FragmentOutputs v_3 = v_1;
+  FragmentOutputs v_4 = v_1;
+  FragmentOutputs v_5 = v_1;
+  main_outputs v_6 = {v_2.loc0, v_3.loc1, v_4.loc2, v_5.loc3};
+  return v_6;
+}
+
diff --git a/test/tint/types/functions/shader_io/fragment_output_locations_struct_f16.wgsl.expected.ir.dxc.hlsl b/test/tint/types/functions/shader_io/fragment_output_locations_struct_f16.wgsl.expected.ir.dxc.hlsl
index 0ba40c6..f7de07c 100644
--- a/test/tint/types/functions/shader_io/fragment_output_locations_struct_f16.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/types/functions/shader_io/fragment_output_locations_struct_f16.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,36 @@
-SKIP: FAILED
+struct FragmentOutputs {
+  int loc0;
+  uint loc1;
+  float loc2;
+  float4 loc3;
+  float16_t loc4;
+  vector<float16_t, 3> loc5;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct main_outputs {
+  int FragmentOutputs_loc0 : SV_Target0;
+  uint FragmentOutputs_loc1 : SV_Target1;
+  float FragmentOutputs_loc2 : SV_Target2;
+  float4 FragmentOutputs_loc3 : SV_Target3;
+  float16_t FragmentOutputs_loc4 : SV_Target4;
+  vector<float16_t, 3> FragmentOutputs_loc5 : SV_Target5;
+};
+
+
+FragmentOutputs main_inner() {
+  FragmentOutputs v = {1, 1u, 1.0f, float4(1.0f, 2.0f, 3.0f, 4.0f), float16_t(2.25h), vector<float16_t, 3>(float16_t(3.0h), float16_t(5.0h), float16_t(8.0h))};
+  return v;
+}
+
+main_outputs main() {
+  FragmentOutputs v_1 = main_inner();
+  FragmentOutputs v_2 = v_1;
+  FragmentOutputs v_3 = v_1;
+  FragmentOutputs v_4 = v_1;
+  FragmentOutputs v_5 = v_1;
+  FragmentOutputs v_6 = v_1;
+  FragmentOutputs v_7 = v_1;
+  main_outputs v_8 = {v_2.loc0, v_3.loc1, v_4.loc2, v_5.loc3, v_6.loc4, v_7.loc5};
+  return v_8;
+}
+
diff --git a/test/tint/types/functions/shader_io/fragment_output_locations_struct_f16.wgsl.expected.ir.fxc.hlsl b/test/tint/types/functions/shader_io/fragment_output_locations_struct_f16.wgsl.expected.ir.fxc.hlsl
index 0ba40c6..eba30a9 100644
--- a/test/tint/types/functions/shader_io/fragment_output_locations_struct_f16.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/types/functions/shader_io/fragment_output_locations_struct_f16.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,41 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct FragmentOutputs {
+  int loc0;
+  uint loc1;
+  float loc2;
+  float4 loc3;
+  float16_t loc4;
+  vector<float16_t, 3> loc5;
+};
+
+struct main_outputs {
+  int FragmentOutputs_loc0 : SV_Target0;
+  uint FragmentOutputs_loc1 : SV_Target1;
+  float FragmentOutputs_loc2 : SV_Target2;
+  float4 FragmentOutputs_loc3 : SV_Target3;
+  float16_t FragmentOutputs_loc4 : SV_Target4;
+  vector<float16_t, 3> FragmentOutputs_loc5 : SV_Target5;
+};
+
+
+FragmentOutputs main_inner() {
+  FragmentOutputs v = {1, 1u, 1.0f, float4(1.0f, 2.0f, 3.0f, 4.0f), float16_t(2.25h), vector<float16_t, 3>(float16_t(3.0h), float16_t(5.0h), float16_t(8.0h))};
+  return v;
+}
+
+main_outputs main() {
+  FragmentOutputs v_1 = main_inner();
+  FragmentOutputs v_2 = v_1;
+  FragmentOutputs v_3 = v_1;
+  FragmentOutputs v_4 = v_1;
+  FragmentOutputs v_5 = v_1;
+  FragmentOutputs v_6 = v_1;
+  FragmentOutputs v_7 = v_1;
+  main_outputs v_8 = {v_2.loc0, v_3.loc1, v_4.loc2, v_5.loc3, v_6.loc4, v_7.loc5};
+  return v_8;
+}
+
+FXC validation failure:
+c:\src\dawn\Shader@0x0000022F055467C0(6,3-11): error X3000: unrecognized identifier 'float16_t'
+
diff --git a/test/tint/types/functions/shader_io/fragment_output_mixed.wgsl.expected.ir.dxc.hlsl b/test/tint/types/functions/shader_io/fragment_output_mixed.wgsl.expected.ir.dxc.hlsl
index 0ba40c6..de03b63 100644
--- a/test/tint/types/functions/shader_io/fragment_output_mixed.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/types/functions/shader_io/fragment_output_mixed.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,36 @@
-SKIP: FAILED
+struct FragmentOutputs {
+  int loc0;
+  float frag_depth;
+  uint loc1;
+  float loc2;
+  uint sample_mask;
+  float4 loc3;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct main_outputs {
+  int FragmentOutputs_loc0 : SV_Target0;
+  uint FragmentOutputs_loc1 : SV_Target1;
+  float FragmentOutputs_loc2 : SV_Target2;
+  float4 FragmentOutputs_loc3 : SV_Target3;
+  float FragmentOutputs_frag_depth : SV_Depth;
+  uint FragmentOutputs_sample_mask : SV_Coverage;
+};
+
+
+FragmentOutputs main_inner() {
+  FragmentOutputs v = {1, 2.0f, 1u, 1.0f, 2u, float4(1.0f, 2.0f, 3.0f, 4.0f)};
+  return v;
+}
+
+main_outputs main() {
+  FragmentOutputs v_1 = main_inner();
+  FragmentOutputs v_2 = v_1;
+  FragmentOutputs v_3 = v_1;
+  FragmentOutputs v_4 = v_1;
+  FragmentOutputs v_5 = v_1;
+  FragmentOutputs v_6 = v_1;
+  FragmentOutputs v_7 = v_1;
+  main_outputs v_8 = {v_2.loc0, v_4.loc1, v_5.loc2, v_7.loc3, v_3.frag_depth, v_6.sample_mask};
+  return v_8;
+}
+
diff --git a/test/tint/types/functions/shader_io/fragment_output_mixed.wgsl.expected.ir.fxc.hlsl b/test/tint/types/functions/shader_io/fragment_output_mixed.wgsl.expected.ir.fxc.hlsl
index 0ba40c6..de03b63 100644
--- a/test/tint/types/functions/shader_io/fragment_output_mixed.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/types/functions/shader_io/fragment_output_mixed.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,36 @@
-SKIP: FAILED
+struct FragmentOutputs {
+  int loc0;
+  float frag_depth;
+  uint loc1;
+  float loc2;
+  uint sample_mask;
+  float4 loc3;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct main_outputs {
+  int FragmentOutputs_loc0 : SV_Target0;
+  uint FragmentOutputs_loc1 : SV_Target1;
+  float FragmentOutputs_loc2 : SV_Target2;
+  float4 FragmentOutputs_loc3 : SV_Target3;
+  float FragmentOutputs_frag_depth : SV_Depth;
+  uint FragmentOutputs_sample_mask : SV_Coverage;
+};
+
+
+FragmentOutputs main_inner() {
+  FragmentOutputs v = {1, 2.0f, 1u, 1.0f, 2u, float4(1.0f, 2.0f, 3.0f, 4.0f)};
+  return v;
+}
+
+main_outputs main() {
+  FragmentOutputs v_1 = main_inner();
+  FragmentOutputs v_2 = v_1;
+  FragmentOutputs v_3 = v_1;
+  FragmentOutputs v_4 = v_1;
+  FragmentOutputs v_5 = v_1;
+  FragmentOutputs v_6 = v_1;
+  FragmentOutputs v_7 = v_1;
+  main_outputs v_8 = {v_2.loc0, v_4.loc1, v_5.loc2, v_7.loc3, v_3.frag_depth, v_6.sample_mask};
+  return v_8;
+}
+
diff --git a/test/tint/types/functions/shader_io/fragment_output_mixed_f16.wgsl.expected.ir.dxc.hlsl b/test/tint/types/functions/shader_io/fragment_output_mixed_f16.wgsl.expected.ir.dxc.hlsl
index 0ba40c6..c5680f0 100644
--- a/test/tint/types/functions/shader_io/fragment_output_mixed_f16.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/types/functions/shader_io/fragment_output_mixed_f16.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,42 @@
-SKIP: FAILED
+struct FragmentOutputs {
+  int loc0;
+  float frag_depth;
+  uint loc1;
+  float loc2;
+  uint sample_mask;
+  float4 loc3;
+  float16_t loc4;
+  vector<float16_t, 3> loc5;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct main_outputs {
+  int FragmentOutputs_loc0 : SV_Target0;
+  uint FragmentOutputs_loc1 : SV_Target1;
+  float FragmentOutputs_loc2 : SV_Target2;
+  float4 FragmentOutputs_loc3 : SV_Target3;
+  float16_t FragmentOutputs_loc4 : SV_Target4;
+  vector<float16_t, 3> FragmentOutputs_loc5 : SV_Target5;
+  float FragmentOutputs_frag_depth : SV_Depth;
+  uint FragmentOutputs_sample_mask : SV_Coverage;
+};
+
+
+FragmentOutputs main_inner() {
+  FragmentOutputs v = {1, 2.0f, 1u, 1.0f, 2u, float4(1.0f, 2.0f, 3.0f, 4.0f), float16_t(2.25h), vector<float16_t, 3>(float16_t(3.0h), float16_t(5.0h), float16_t(8.0h))};
+  return v;
+}
+
+main_outputs main() {
+  FragmentOutputs v_1 = main_inner();
+  FragmentOutputs v_2 = v_1;
+  FragmentOutputs v_3 = v_1;
+  FragmentOutputs v_4 = v_1;
+  FragmentOutputs v_5 = v_1;
+  FragmentOutputs v_6 = v_1;
+  FragmentOutputs v_7 = v_1;
+  FragmentOutputs v_8 = v_1;
+  FragmentOutputs v_9 = v_1;
+  main_outputs v_10 = {v_2.loc0, v_4.loc1, v_5.loc2, v_7.loc3, v_8.loc4, v_9.loc5, v_3.frag_depth, v_6.sample_mask};
+  return v_10;
+}
+
diff --git a/test/tint/types/functions/shader_io/fragment_output_mixed_f16.wgsl.expected.ir.fxc.hlsl b/test/tint/types/functions/shader_io/fragment_output_mixed_f16.wgsl.expected.ir.fxc.hlsl
index 0ba40c6..9475951 100644
--- a/test/tint/types/functions/shader_io/fragment_output_mixed_f16.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/types/functions/shader_io/fragment_output_mixed_f16.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,47 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct FragmentOutputs {
+  int loc0;
+  float frag_depth;
+  uint loc1;
+  float loc2;
+  uint sample_mask;
+  float4 loc3;
+  float16_t loc4;
+  vector<float16_t, 3> loc5;
+};
+
+struct main_outputs {
+  int FragmentOutputs_loc0 : SV_Target0;
+  uint FragmentOutputs_loc1 : SV_Target1;
+  float FragmentOutputs_loc2 : SV_Target2;
+  float4 FragmentOutputs_loc3 : SV_Target3;
+  float16_t FragmentOutputs_loc4 : SV_Target4;
+  vector<float16_t, 3> FragmentOutputs_loc5 : SV_Target5;
+  float FragmentOutputs_frag_depth : SV_Depth;
+  uint FragmentOutputs_sample_mask : SV_Coverage;
+};
+
+
+FragmentOutputs main_inner() {
+  FragmentOutputs v = {1, 2.0f, 1u, 1.0f, 2u, float4(1.0f, 2.0f, 3.0f, 4.0f), float16_t(2.25h), vector<float16_t, 3>(float16_t(3.0h), float16_t(5.0h), float16_t(8.0h))};
+  return v;
+}
+
+main_outputs main() {
+  FragmentOutputs v_1 = main_inner();
+  FragmentOutputs v_2 = v_1;
+  FragmentOutputs v_3 = v_1;
+  FragmentOutputs v_4 = v_1;
+  FragmentOutputs v_5 = v_1;
+  FragmentOutputs v_6 = v_1;
+  FragmentOutputs v_7 = v_1;
+  FragmentOutputs v_8 = v_1;
+  FragmentOutputs v_9 = v_1;
+  main_outputs v_10 = {v_2.loc0, v_4.loc1, v_5.loc2, v_7.loc3, v_8.loc4, v_9.loc5, v_3.frag_depth, v_6.sample_mask};
+  return v_10;
+}
+
+FXC validation failure:
+c:\src\dawn\Shader@0x00000221867F8590(8,3-11): error X3000: unrecognized identifier 'float16_t'
+
diff --git a/test/tint/types/functions/shader_io/interpolate_input_parameters.wgsl.expected.ir.dxc.hlsl b/test/tint/types/functions/shader_io/interpolate_input_parameters.wgsl.expected.ir.dxc.hlsl
index b06e72e..229ffed 100644
--- a/test/tint/types/functions/shader_io/interpolate_input_parameters.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/types/functions/shader_io/interpolate_input_parameters.wgsl.expected.ir.dxc.hlsl
@@ -1,3 +1,21 @@
-void main() {
+struct main_inputs {
+  float none : TEXCOORD0;
+  nointerpolation float flat : TEXCOORD1;
+  linear float perspective_center : TEXCOORD2;
+  linear centroid float perspective_centroid : TEXCOORD3;
+  linear sample float perspective_sample : TEXCOORD4;
+  noperspective float linear_center : TEXCOORD5;
+  noperspective centroid float linear_centroid : TEXCOORD6;
+  noperspective sample float linear_sample : TEXCOORD7;
+  linear float perspective_default : TEXCOORD8;
+  noperspective float linear_default : TEXCOORD9;
+};
+
+
+void main_inner(float none, float flat, float perspective_center, float perspective_centroid, float perspective_sample, float linear_center, float linear_centroid, float linear_sample, float perspective_default, float linear_default) {
+}
+
+void main(main_inputs inputs) {
+  main_inner(inputs.none, inputs.flat, inputs.perspective_center, inputs.perspective_centroid, inputs.perspective_sample, inputs.linear_center, inputs.linear_centroid, inputs.linear_sample, inputs.perspective_default, inputs.linear_default);
 }
 
diff --git a/test/tint/types/functions/shader_io/interpolate_input_parameters.wgsl.expected.ir.fxc.hlsl b/test/tint/types/functions/shader_io/interpolate_input_parameters.wgsl.expected.ir.fxc.hlsl
index b06e72e..229ffed 100644
--- a/test/tint/types/functions/shader_io/interpolate_input_parameters.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/types/functions/shader_io/interpolate_input_parameters.wgsl.expected.ir.fxc.hlsl
@@ -1,3 +1,21 @@
-void main() {
+struct main_inputs {
+  float none : TEXCOORD0;
+  nointerpolation float flat : TEXCOORD1;
+  linear float perspective_center : TEXCOORD2;
+  linear centroid float perspective_centroid : TEXCOORD3;
+  linear sample float perspective_sample : TEXCOORD4;
+  noperspective float linear_center : TEXCOORD5;
+  noperspective centroid float linear_centroid : TEXCOORD6;
+  noperspective sample float linear_sample : TEXCOORD7;
+  linear float perspective_default : TEXCOORD8;
+  noperspective float linear_default : TEXCOORD9;
+};
+
+
+void main_inner(float none, float flat, float perspective_center, float perspective_centroid, float perspective_sample, float linear_center, float linear_centroid, float linear_sample, float perspective_default, float linear_default) {
+}
+
+void main(main_inputs inputs) {
+  main_inner(inputs.none, inputs.flat, inputs.perspective_center, inputs.perspective_centroid, inputs.perspective_sample, inputs.linear_center, inputs.linear_centroid, inputs.linear_sample, inputs.perspective_default, inputs.linear_default);
 }
 
diff --git a/test/tint/types/functions/shader_io/interpolate_input_struct.wgsl.expected.ir.dxc.hlsl b/test/tint/types/functions/shader_io/interpolate_input_struct.wgsl.expected.ir.dxc.hlsl
index b06e72e..0de46dc 100644
--- a/test/tint/types/functions/shader_io/interpolate_input_struct.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/types/functions/shader_io/interpolate_input_struct.wgsl.expected.ir.dxc.hlsl
@@ -1,3 +1,35 @@
-void main() {
+struct In {
+  float none;
+  float flat;
+  float perspective_center;
+  float perspective_centroid;
+  float perspective_sample;
+  float linear_center;
+  float linear_centroid;
+  float linear_sample;
+  float perspective_default;
+  float linear_default;
+};
+
+struct main_inputs {
+  float In_none : TEXCOORD0;
+  nointerpolation float In_flat : TEXCOORD1;
+  linear float In_perspective_center : TEXCOORD2;
+  linear centroid float In_perspective_centroid : TEXCOORD3;
+  linear sample float In_perspective_sample : TEXCOORD4;
+  noperspective float In_linear_center : TEXCOORD5;
+  noperspective centroid float In_linear_centroid : TEXCOORD6;
+  noperspective sample float In_linear_sample : TEXCOORD7;
+  linear float In_perspective_default : TEXCOORD8;
+  noperspective float In_linear_default : TEXCOORD9;
+};
+
+
+void main_inner(In tint_symbol) {
+}
+
+void main(main_inputs inputs) {
+  In v = {inputs.In_none, inputs.In_flat, inputs.In_perspective_center, inputs.In_perspective_centroid, inputs.In_perspective_sample, inputs.In_linear_center, inputs.In_linear_centroid, inputs.In_linear_sample, inputs.In_perspective_default, inputs.In_linear_default};
+  main_inner(v);
 }
 
diff --git a/test/tint/types/functions/shader_io/interpolate_input_struct.wgsl.expected.ir.fxc.hlsl b/test/tint/types/functions/shader_io/interpolate_input_struct.wgsl.expected.ir.fxc.hlsl
index b06e72e..0de46dc 100644
--- a/test/tint/types/functions/shader_io/interpolate_input_struct.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/types/functions/shader_io/interpolate_input_struct.wgsl.expected.ir.fxc.hlsl
@@ -1,3 +1,35 @@
-void main() {
+struct In {
+  float none;
+  float flat;
+  float perspective_center;
+  float perspective_centroid;
+  float perspective_sample;
+  float linear_center;
+  float linear_centroid;
+  float linear_sample;
+  float perspective_default;
+  float linear_default;
+};
+
+struct main_inputs {
+  float In_none : TEXCOORD0;
+  nointerpolation float In_flat : TEXCOORD1;
+  linear float In_perspective_center : TEXCOORD2;
+  linear centroid float In_perspective_centroid : TEXCOORD3;
+  linear sample float In_perspective_sample : TEXCOORD4;
+  noperspective float In_linear_center : TEXCOORD5;
+  noperspective centroid float In_linear_centroid : TEXCOORD6;
+  noperspective sample float In_linear_sample : TEXCOORD7;
+  linear float In_perspective_default : TEXCOORD8;
+  noperspective float In_linear_default : TEXCOORD9;
+};
+
+
+void main_inner(In tint_symbol) {
+}
+
+void main(main_inputs inputs) {
+  In v = {inputs.In_none, inputs.In_flat, inputs.In_perspective_center, inputs.In_perspective_centroid, inputs.In_perspective_sample, inputs.In_linear_center, inputs.In_linear_centroid, inputs.In_linear_sample, inputs.In_perspective_default, inputs.In_linear_default};
+  main_inner(v);
 }
 
diff --git a/test/tint/types/functions/shader_io/interpolate_integers.wgsl.expected.ir.dxc.hlsl b/test/tint/types/functions/shader_io/interpolate_integers.wgsl.expected.ir.dxc.hlsl
index 0ba40c6..36a2338 100644
--- a/test/tint/types/functions/shader_io/interpolate_integers.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/types/functions/shader_io/interpolate_integers.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,55 @@
-SKIP: FAILED
+struct Interface {
+  int i;
+  uint u;
+  int4 vi;
+  uint4 vu;
+  float4 pos;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vert_main_outputs {
+  nointerpolation int Interface_i : TEXCOORD0;
+  nointerpolation uint Interface_u : TEXCOORD1;
+  nointerpolation int4 Interface_vi : TEXCOORD2;
+  nointerpolation uint4 Interface_vu : TEXCOORD3;
+  float4 Interface_pos : SV_Position;
+};
+
+struct frag_main_outputs {
+  int tint_symbol : SV_Target0;
+};
+
+struct frag_main_inputs {
+  nointerpolation int Interface_i : TEXCOORD0;
+  nointerpolation uint Interface_u : TEXCOORD1;
+  nointerpolation int4 Interface_vi : TEXCOORD2;
+  nointerpolation uint4 Interface_vu : TEXCOORD3;
+  float4 Interface_pos : SV_Position;
+};
+
+
+Interface vert_main_inner() {
+  Interface v = (Interface)0;
+  return v;
+}
+
+int frag_main_inner(Interface inputs) {
+  return inputs.i;
+}
+
+vert_main_outputs vert_main() {
+  Interface v_1 = vert_main_inner();
+  Interface v_2 = v_1;
+  Interface v_3 = v_1;
+  Interface v_4 = v_1;
+  Interface v_5 = v_1;
+  Interface v_6 = v_1;
+  vert_main_outputs v_7 = {v_2.i, v_3.u, v_4.vi, v_5.vu, v_6.pos};
+  return v_7;
+}
+
+frag_main_outputs frag_main(frag_main_inputs inputs) {
+  Interface v_8 = {inputs.Interface_i, inputs.Interface_u, inputs.Interface_vi, inputs.Interface_vu, float4(inputs.Interface_pos.xyz, (1.0f / inputs.Interface_pos[3u]))};
+  frag_main_outputs v_9 = {frag_main_inner(v_8)};
+  return v_9;
+}
+
diff --git a/test/tint/types/functions/shader_io/interpolate_integers.wgsl.expected.ir.fxc.hlsl b/test/tint/types/functions/shader_io/interpolate_integers.wgsl.expected.ir.fxc.hlsl
index 0ba40c6..36a2338 100644
--- a/test/tint/types/functions/shader_io/interpolate_integers.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/types/functions/shader_io/interpolate_integers.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,55 @@
-SKIP: FAILED
+struct Interface {
+  int i;
+  uint u;
+  int4 vi;
+  uint4 vu;
+  float4 pos;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vert_main_outputs {
+  nointerpolation int Interface_i : TEXCOORD0;
+  nointerpolation uint Interface_u : TEXCOORD1;
+  nointerpolation int4 Interface_vi : TEXCOORD2;
+  nointerpolation uint4 Interface_vu : TEXCOORD3;
+  float4 Interface_pos : SV_Position;
+};
+
+struct frag_main_outputs {
+  int tint_symbol : SV_Target0;
+};
+
+struct frag_main_inputs {
+  nointerpolation int Interface_i : TEXCOORD0;
+  nointerpolation uint Interface_u : TEXCOORD1;
+  nointerpolation int4 Interface_vi : TEXCOORD2;
+  nointerpolation uint4 Interface_vu : TEXCOORD3;
+  float4 Interface_pos : SV_Position;
+};
+
+
+Interface vert_main_inner() {
+  Interface v = (Interface)0;
+  return v;
+}
+
+int frag_main_inner(Interface inputs) {
+  return inputs.i;
+}
+
+vert_main_outputs vert_main() {
+  Interface v_1 = vert_main_inner();
+  Interface v_2 = v_1;
+  Interface v_3 = v_1;
+  Interface v_4 = v_1;
+  Interface v_5 = v_1;
+  Interface v_6 = v_1;
+  vert_main_outputs v_7 = {v_2.i, v_3.u, v_4.vi, v_5.vu, v_6.pos};
+  return v_7;
+}
+
+frag_main_outputs frag_main(frag_main_inputs inputs) {
+  Interface v_8 = {inputs.Interface_i, inputs.Interface_u, inputs.Interface_vi, inputs.Interface_vu, float4(inputs.Interface_pos.xyz, (1.0f / inputs.Interface_pos[3u]))};
+  frag_main_outputs v_9 = {frag_main_inner(v_8)};
+  return v_9;
+}
+
diff --git a/test/tint/types/functions/shader_io/interpolate_return_struct.wgsl.expected.ir.dxc.hlsl b/test/tint/types/functions/shader_io/interpolate_return_struct.wgsl.expected.ir.dxc.hlsl
index 0ba40c6..9598d57 100644
--- a/test/tint/types/functions/shader_io/interpolate_return_struct.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/types/functions/shader_io/interpolate_return_struct.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,45 @@
-SKIP: FAILED
+struct Out {
+  float4 pos;
+  float none;
+  float flat;
+  float perspective_center;
+  float perspective_centroid;
+  float perspective_sample;
+  float linear_center;
+  float linear_centroid;
+  float linear_sample;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct main_outputs {
+  float Out_none : TEXCOORD0;
+  nointerpolation float Out_flat : TEXCOORD1;
+  linear float Out_perspective_center : TEXCOORD2;
+  linear centroid float Out_perspective_centroid : TEXCOORD3;
+  linear sample float Out_perspective_sample : TEXCOORD4;
+  noperspective float Out_linear_center : TEXCOORD5;
+  noperspective centroid float Out_linear_centroid : TEXCOORD6;
+  noperspective sample float Out_linear_sample : TEXCOORD7;
+  float4 Out_pos : SV_Position;
+};
+
+
+Out main_inner() {
+  Out v = (Out)0;
+  return v;
+}
+
+main_outputs main() {
+  Out v_1 = main_inner();
+  Out v_2 = v_1;
+  Out v_3 = v_1;
+  Out v_4 = v_1;
+  Out v_5 = v_1;
+  Out v_6 = v_1;
+  Out v_7 = v_1;
+  Out v_8 = v_1;
+  Out v_9 = v_1;
+  Out v_10 = v_1;
+  main_outputs v_11 = {v_3.none, v_4.flat, v_5.perspective_center, v_6.perspective_centroid, v_7.perspective_sample, v_8.linear_center, v_9.linear_centroid, v_10.linear_sample, v_2.pos};
+  return v_11;
+}
+
diff --git a/test/tint/types/functions/shader_io/interpolate_return_struct.wgsl.expected.ir.fxc.hlsl b/test/tint/types/functions/shader_io/interpolate_return_struct.wgsl.expected.ir.fxc.hlsl
index 0ba40c6..9598d57 100644
--- a/test/tint/types/functions/shader_io/interpolate_return_struct.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/types/functions/shader_io/interpolate_return_struct.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,45 @@
-SKIP: FAILED
+struct Out {
+  float4 pos;
+  float none;
+  float flat;
+  float perspective_center;
+  float perspective_centroid;
+  float perspective_sample;
+  float linear_center;
+  float linear_centroid;
+  float linear_sample;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct main_outputs {
+  float Out_none : TEXCOORD0;
+  nointerpolation float Out_flat : TEXCOORD1;
+  linear float Out_perspective_center : TEXCOORD2;
+  linear centroid float Out_perspective_centroid : TEXCOORD3;
+  linear sample float Out_perspective_sample : TEXCOORD4;
+  noperspective float Out_linear_center : TEXCOORD5;
+  noperspective centroid float Out_linear_centroid : TEXCOORD6;
+  noperspective sample float Out_linear_sample : TEXCOORD7;
+  float4 Out_pos : SV_Position;
+};
+
+
+Out main_inner() {
+  Out v = (Out)0;
+  return v;
+}
+
+main_outputs main() {
+  Out v_1 = main_inner();
+  Out v_2 = v_1;
+  Out v_3 = v_1;
+  Out v_4 = v_1;
+  Out v_5 = v_1;
+  Out v_6 = v_1;
+  Out v_7 = v_1;
+  Out v_8 = v_1;
+  Out v_9 = v_1;
+  Out v_10 = v_1;
+  main_outputs v_11 = {v_3.none, v_4.flat, v_5.perspective_center, v_6.perspective_centroid, v_7.perspective_sample, v_8.linear_center, v_9.linear_centroid, v_10.linear_sample, v_2.pos};
+  return v_11;
+}
+
diff --git a/test/tint/types/functions/shader_io/invariant.wgsl.expected.ir.dxc.hlsl b/test/tint/types/functions/shader_io/invariant.wgsl.expected.ir.dxc.hlsl
index 6798bc0..a045443 100644
--- a/test/tint/types/functions/shader_io/invariant.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/types/functions/shader_io/invariant.wgsl.expected.ir.dxc.hlsl
@@ -1,11 +1,14 @@
-SKIP: FAILED
+struct main_outputs {
+  precise float4 tint_symbol : SV_Position;
+};
 
-float4 main() {
+
+float4 main_inner() {
   return (0.0f).xxxx;
 }
 
-DXC validation failure:
-hlsl.hlsl:1:1: error: Semantic must be defined for all outputs of an entry function or patch constant function
-float4 main() {
-^
+main_outputs main() {
+  main_outputs v = {main_inner()};
+  return v;
+}
 
diff --git a/test/tint/types/functions/shader_io/invariant.wgsl.expected.ir.fxc.hlsl b/test/tint/types/functions/shader_io/invariant.wgsl.expected.ir.fxc.hlsl
index 0f39cbc..a045443 100644
--- a/test/tint/types/functions/shader_io/invariant.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/types/functions/shader_io/invariant.wgsl.expected.ir.fxc.hlsl
@@ -1,4 +1,14 @@
-float4 main() {
+struct main_outputs {
+  precise float4 tint_symbol : SV_Position;
+};
+
+
+float4 main_inner() {
   return (0.0f).xxxx;
 }
 
+main_outputs main() {
+  main_outputs v = {main_inner()};
+  return v;
+}
+
diff --git a/test/tint/types/functions/shader_io/invariant_struct_member.wgsl.expected.ir.dxc.hlsl b/test/tint/types/functions/shader_io/invariant_struct_member.wgsl.expected.ir.dxc.hlsl
index 0ba40c6..dc578a2 100644
--- a/test/tint/types/functions/shader_io/invariant_struct_member.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/types/functions/shader_io/invariant_struct_member.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,20 @@
-SKIP: FAILED
+struct Out {
+  float4 pos;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct main_outputs {
+  precise float4 Out_pos : SV_Position;
+};
+
+
+Out main_inner() {
+  Out v = (Out)0;
+  return v;
+}
+
+main_outputs main() {
+  Out v_1 = main_inner();
+  main_outputs v_2 = {v_1.pos};
+  return v_2;
+}
+
diff --git a/test/tint/types/functions/shader_io/invariant_struct_member.wgsl.expected.ir.fxc.hlsl b/test/tint/types/functions/shader_io/invariant_struct_member.wgsl.expected.ir.fxc.hlsl
index 0ba40c6..dc578a2 100644
--- a/test/tint/types/functions/shader_io/invariant_struct_member.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/types/functions/shader_io/invariant_struct_member.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,20 @@
-SKIP: FAILED
+struct Out {
+  float4 pos;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct main_outputs {
+  precise float4 Out_pos : SV_Position;
+};
+
+
+Out main_inner() {
+  Out v = (Out)0;
+  return v;
+}
+
+main_outputs main() {
+  Out v_1 = main_inner();
+  main_outputs v_2 = {v_1.pos};
+  return v_2;
+}
+
diff --git a/test/tint/types/functions/shader_io/shared_struct_different_stages.wgsl.expected.ir.dxc.hlsl b/test/tint/types/functions/shader_io/shared_struct_different_stages.wgsl.expected.ir.dxc.hlsl
index 0ba40c6..0763e93 100644
--- a/test/tint/types/functions/shader_io/shared_struct_different_stages.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/types/functions/shader_io/shared_struct_different_stages.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,43 @@
-SKIP: FAILED
+struct Interface {
+  float col1;
+  float col2;
+  float4 pos;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vert_main_outputs {
+  float Interface_col1 : TEXCOORD1;
+  float Interface_col2 : TEXCOORD2;
+  float4 Interface_pos : SV_Position;
+};
+
+struct frag_main_inputs {
+  float Interface_col1 : TEXCOORD1;
+  float Interface_col2 : TEXCOORD2;
+  float4 Interface_pos : SV_Position;
+};
+
+
+Interface vert_main_inner() {
+  Interface v = {0.40000000596046447754f, 0.60000002384185791016f, (0.0f).xxxx};
+  return v;
+}
+
+void frag_main_inner(Interface colors) {
+  float r = colors.col1;
+  float g = colors.col2;
+}
+
+vert_main_outputs vert_main() {
+  Interface v_1 = vert_main_inner();
+  Interface v_2 = v_1;
+  Interface v_3 = v_1;
+  Interface v_4 = v_1;
+  vert_main_outputs v_5 = {v_2.col1, v_3.col2, v_4.pos};
+  return v_5;
+}
+
+void frag_main(frag_main_inputs inputs) {
+  Interface v_6 = {inputs.Interface_col1, inputs.Interface_col2, float4(inputs.Interface_pos.xyz, (1.0f / inputs.Interface_pos[3u]))};
+  frag_main_inner(v_6);
+}
+
diff --git a/test/tint/types/functions/shader_io/shared_struct_different_stages.wgsl.expected.ir.fxc.hlsl b/test/tint/types/functions/shader_io/shared_struct_different_stages.wgsl.expected.ir.fxc.hlsl
index 0ba40c6..0763e93 100644
--- a/test/tint/types/functions/shader_io/shared_struct_different_stages.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/types/functions/shader_io/shared_struct_different_stages.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,43 @@
-SKIP: FAILED
+struct Interface {
+  float col1;
+  float col2;
+  float4 pos;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vert_main_outputs {
+  float Interface_col1 : TEXCOORD1;
+  float Interface_col2 : TEXCOORD2;
+  float4 Interface_pos : SV_Position;
+};
+
+struct frag_main_inputs {
+  float Interface_col1 : TEXCOORD1;
+  float Interface_col2 : TEXCOORD2;
+  float4 Interface_pos : SV_Position;
+};
+
+
+Interface vert_main_inner() {
+  Interface v = {0.40000000596046447754f, 0.60000002384185791016f, (0.0f).xxxx};
+  return v;
+}
+
+void frag_main_inner(Interface colors) {
+  float r = colors.col1;
+  float g = colors.col2;
+}
+
+vert_main_outputs vert_main() {
+  Interface v_1 = vert_main_inner();
+  Interface v_2 = v_1;
+  Interface v_3 = v_1;
+  Interface v_4 = v_1;
+  vert_main_outputs v_5 = {v_2.col1, v_3.col2, v_4.pos};
+  return v_5;
+}
+
+void frag_main(frag_main_inputs inputs) {
+  Interface v_6 = {inputs.Interface_col1, inputs.Interface_col2, float4(inputs.Interface_pos.xyz, (1.0f / inputs.Interface_pos[3u]))};
+  frag_main_inner(v_6);
+}
+
diff --git a/test/tint/types/functions/shader_io/shared_struct_different_stages_f16.wgsl.expected.ir.dxc.hlsl b/test/tint/types/functions/shader_io/shared_struct_different_stages_f16.wgsl.expected.ir.dxc.hlsl
index 0ba40c6..20bd5e1 100644
--- a/test/tint/types/functions/shader_io/shared_struct_different_stages_f16.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/types/functions/shader_io/shared_struct_different_stages_f16.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,43 @@
-SKIP: FAILED
+struct Interface {
+  float col1;
+  float16_t col2;
+  float4 pos;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vert_main_outputs {
+  float Interface_col1 : TEXCOORD1;
+  float16_t Interface_col2 : TEXCOORD2;
+  float4 Interface_pos : SV_Position;
+};
+
+struct frag_main_inputs {
+  float Interface_col1 : TEXCOORD1;
+  float16_t Interface_col2 : TEXCOORD2;
+  float4 Interface_pos : SV_Position;
+};
+
+
+Interface vert_main_inner() {
+  Interface v = {0.40000000596046447754f, float16_t(0.599609375h), (0.0f).xxxx};
+  return v;
+}
+
+void frag_main_inner(Interface colors) {
+  float r = colors.col1;
+  float16_t g = colors.col2;
+}
+
+vert_main_outputs vert_main() {
+  Interface v_1 = vert_main_inner();
+  Interface v_2 = v_1;
+  Interface v_3 = v_1;
+  Interface v_4 = v_1;
+  vert_main_outputs v_5 = {v_2.col1, v_3.col2, v_4.pos};
+  return v_5;
+}
+
+void frag_main(frag_main_inputs inputs) {
+  Interface v_6 = {inputs.Interface_col1, inputs.Interface_col2, float4(inputs.Interface_pos.xyz, (1.0f / inputs.Interface_pos[3u]))};
+  frag_main_inner(v_6);
+}
+
diff --git a/test/tint/types/functions/shader_io/shared_struct_different_stages_f16.wgsl.expected.ir.fxc.hlsl b/test/tint/types/functions/shader_io/shared_struct_different_stages_f16.wgsl.expected.ir.fxc.hlsl
index 0ba40c6..fda92f5 100644
--- a/test/tint/types/functions/shader_io/shared_struct_different_stages_f16.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/types/functions/shader_io/shared_struct_different_stages_f16.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,48 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct Interface {
+  float col1;
+  float16_t col2;
+  float4 pos;
+};
+
+struct vert_main_outputs {
+  float Interface_col1 : TEXCOORD1;
+  float16_t Interface_col2 : TEXCOORD2;
+  float4 Interface_pos : SV_Position;
+};
+
+struct frag_main_inputs {
+  float Interface_col1 : TEXCOORD1;
+  float16_t Interface_col2 : TEXCOORD2;
+  float4 Interface_pos : SV_Position;
+};
+
+
+Interface vert_main_inner() {
+  Interface v = {0.40000000596046447754f, float16_t(0.599609375h), (0.0f).xxxx};
+  return v;
+}
+
+void frag_main_inner(Interface colors) {
+  float r = colors.col1;
+  float16_t g = colors.col2;
+}
+
+vert_main_outputs vert_main() {
+  Interface v_1 = vert_main_inner();
+  Interface v_2 = v_1;
+  Interface v_3 = v_1;
+  Interface v_4 = v_1;
+  vert_main_outputs v_5 = {v_2.col1, v_3.col2, v_4.pos};
+  return v_5;
+}
+
+void frag_main(frag_main_inputs inputs) {
+  Interface v_6 = {inputs.Interface_col1, inputs.Interface_col2, float4(inputs.Interface_pos.xyz, (1.0f / inputs.Interface_pos[3u]))};
+  frag_main_inner(v_6);
+}
+
+FXC validation failure:
+c:\src\dawn\Shader@0x000001A830713A40(3,3-11): error X3000: unrecognized identifier 'float16_t'
+
diff --git a/test/tint/types/functions/shader_io/shared_struct_helper_function.wgsl.expected.ir.dxc.hlsl b/test/tint/types/functions/shader_io/shared_struct_helper_function.wgsl.expected.ir.dxc.hlsl
index c6e1d96..da586ab 100644
--- a/test/tint/types/functions/shader_io/shared_struct_helper_function.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/types/functions/shader_io/shared_struct_helper_function.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,47 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  int loc0;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Construct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vert_main1_outputs {
+  nointerpolation int VertexOutput_loc0 : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+struct vert_main2_outputs {
+  nointerpolation int VertexOutput_loc0 : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+VertexOutput foo(float x) {
+  VertexOutput v = {float4(x, x, x, 1.0f), 42};
+  return v;
+}
+
+VertexOutput vert_main1_inner() {
+  VertexOutput v_1 = foo(0.5f);
+  return v_1;
+}
+
+VertexOutput vert_main2_inner() {
+  VertexOutput v_2 = foo(0.25f);
+  return v_2;
+}
+
+vert_main1_outputs vert_main1() {
+  VertexOutput v_3 = vert_main1_inner();
+  VertexOutput v_4 = v_3;
+  VertexOutput v_5 = v_3;
+  vert_main1_outputs v_6 = {v_5.loc0, v_4.pos};
+  return v_6;
+}
+
+vert_main2_outputs vert_main2() {
+  VertexOutput v_7 = vert_main2_inner();
+  VertexOutput v_8 = v_7;
+  VertexOutput v_9 = v_7;
+  vert_main2_outputs v_10 = {v_9.loc0, v_8.pos};
+  return v_10;
+}
+
diff --git a/test/tint/types/functions/shader_io/shared_struct_helper_function.wgsl.expected.ir.fxc.hlsl b/test/tint/types/functions/shader_io/shared_struct_helper_function.wgsl.expected.ir.fxc.hlsl
index c6e1d96..da586ab 100644
--- a/test/tint/types/functions/shader_io/shared_struct_helper_function.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/types/functions/shader_io/shared_struct_helper_function.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,47 @@
-SKIP: FAILED
+struct VertexOutput {
+  float4 pos;
+  int loc0;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Construct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct vert_main1_outputs {
+  nointerpolation int VertexOutput_loc0 : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+struct vert_main2_outputs {
+  nointerpolation int VertexOutput_loc0 : TEXCOORD0;
+  float4 VertexOutput_pos : SV_Position;
+};
+
+
+VertexOutput foo(float x) {
+  VertexOutput v = {float4(x, x, x, 1.0f), 42};
+  return v;
+}
+
+VertexOutput vert_main1_inner() {
+  VertexOutput v_1 = foo(0.5f);
+  return v_1;
+}
+
+VertexOutput vert_main2_inner() {
+  VertexOutput v_2 = foo(0.25f);
+  return v_2;
+}
+
+vert_main1_outputs vert_main1() {
+  VertexOutput v_3 = vert_main1_inner();
+  VertexOutput v_4 = v_3;
+  VertexOutput v_5 = v_3;
+  vert_main1_outputs v_6 = {v_5.loc0, v_4.pos};
+  return v_6;
+}
+
+vert_main2_outputs vert_main2() {
+  VertexOutput v_7 = vert_main2_inner();
+  VertexOutput v_8 = v_7;
+  VertexOutput v_9 = v_7;
+  vert_main2_outputs v_10 = {v_9.loc0, v_8.pos};
+  return v_10;
+}
+
diff --git a/test/tint/types/functions/shader_io/shared_struct_storage_buffer.wgsl.expected.ir.dxc.hlsl b/test/tint/types/functions/shader_io/shared_struct_storage_buffer.wgsl.expected.ir.dxc.hlsl
index 3f437dc..4f05c25 100644
--- a/test/tint/types/functions/shader_io/shared_struct_storage_buffer.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/types/functions/shader_io/shared_struct_storage_buffer.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,32 @@
-SKIP: FAILED
+struct S {
+  float f;
+  uint u;
+  float4 v;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Access
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct frag_main_inputs {
+  float S_f : TEXCOORD0;
+  nointerpolation uint S_u : TEXCOORD1;
+  float4 S_v : SV_Position;
+};
+
+
+RWByteAddressBuffer output : register(u0);
+void v_1(uint offset, S obj) {
+  output.Store((offset + 0u), asuint(obj.f));
+  output.Store((offset + 4u), obj.u);
+  output.Store4((offset + 128u), asuint(obj.v));
+}
+
+void frag_main_inner(S input) {
+  float f = input.f;
+  uint u = input.u;
+  float4 v = input.v;
+  v_1(0u, input);
+}
+
+void frag_main(frag_main_inputs inputs) {
+  S v_2 = {inputs.S_f, inputs.S_u, float4(inputs.S_v.xyz, (1.0f / inputs.S_v[3u]))};
+  frag_main_inner(v_2);
+}
+
diff --git a/test/tint/types/functions/shader_io/shared_struct_storage_buffer.wgsl.expected.ir.fxc.hlsl b/test/tint/types/functions/shader_io/shared_struct_storage_buffer.wgsl.expected.ir.fxc.hlsl
index 3f437dc..4f05c25 100644
--- a/test/tint/types/functions/shader_io/shared_struct_storage_buffer.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/types/functions/shader_io/shared_struct_storage_buffer.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,32 @@
-SKIP: FAILED
+struct S {
+  float f;
+  uint u;
+  float4 v;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Access
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct frag_main_inputs {
+  float S_f : TEXCOORD0;
+  nointerpolation uint S_u : TEXCOORD1;
+  float4 S_v : SV_Position;
+};
+
+
+RWByteAddressBuffer output : register(u0);
+void v_1(uint offset, S obj) {
+  output.Store((offset + 0u), asuint(obj.f));
+  output.Store((offset + 4u), obj.u);
+  output.Store4((offset + 128u), asuint(obj.v));
+}
+
+void frag_main_inner(S input) {
+  float f = input.f;
+  uint u = input.u;
+  float4 v = input.v;
+  v_1(0u, input);
+}
+
+void frag_main(frag_main_inputs inputs) {
+  S v_2 = {inputs.S_f, inputs.S_u, float4(inputs.S_v.xyz, (1.0f / inputs.S_v[3u]))};
+  frag_main_inner(v_2);
+}
+
diff --git a/test/tint/types/functions/shader_io/shared_struct_storage_buffer_f16.wgsl.expected.ir.dxc.hlsl b/test/tint/types/functions/shader_io/shared_struct_storage_buffer_f16.wgsl.expected.ir.dxc.hlsl
index 3f437dc..89ad776 100644
--- a/test/tint/types/functions/shader_io/shared_struct_storage_buffer_f16.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/types/functions/shader_io/shared_struct_storage_buffer_f16.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,40 @@
-SKIP: FAILED
+struct S {
+  float f;
+  uint u;
+  float4 v;
+  float16_t x;
+  vector<float16_t, 3> y;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Access
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct frag_main_inputs {
+  float S_f : TEXCOORD0;
+  nointerpolation uint S_u : TEXCOORD1;
+  float16_t S_x : TEXCOORD2;
+  vector<float16_t, 3> S_y : TEXCOORD3;
+  float4 S_v : SV_Position;
+};
+
+
+RWByteAddressBuffer output : register(u0);
+void v_1(uint offset, S obj) {
+  output.Store((offset + 0u), asuint(obj.f));
+  output.Store((offset + 4u), obj.u);
+  output.Store4((offset + 128u), asuint(obj.v));
+  output.Store<float16_t>((offset + 160u), obj.x);
+  output.Store<vector<float16_t, 3> >((offset + 192u), obj.y);
+}
+
+void frag_main_inner(S input) {
+  float f = input.f;
+  uint u = input.u;
+  float4 v = input.v;
+  float16_t x = input.x;
+  vector<float16_t, 3> y = input.y;
+  v_1(0u, input);
+}
+
+void frag_main(frag_main_inputs inputs) {
+  S v_2 = {inputs.S_f, inputs.S_u, float4(inputs.S_v.xyz, (1.0f / inputs.S_v[3u])), inputs.S_x, inputs.S_y};
+  frag_main_inner(v_2);
+}
+
diff --git a/test/tint/types/functions/shader_io/shared_struct_storage_buffer_f16.wgsl.expected.ir.fxc.hlsl b/test/tint/types/functions/shader_io/shared_struct_storage_buffer_f16.wgsl.expected.ir.fxc.hlsl
index 3f437dc..dd68560 100644
--- a/test/tint/types/functions/shader_io/shared_struct_storage_buffer_f16.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/types/functions/shader_io/shared_struct_storage_buffer_f16.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,45 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Access
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct S {
+  float f;
+  uint u;
+  float4 v;
+  float16_t x;
+  vector<float16_t, 3> y;
+};
+
+struct frag_main_inputs {
+  float S_f : TEXCOORD0;
+  nointerpolation uint S_u : TEXCOORD1;
+  float16_t S_x : TEXCOORD2;
+  vector<float16_t, 3> S_y : TEXCOORD3;
+  float4 S_v : SV_Position;
+};
+
+
+RWByteAddressBuffer output : register(u0);
+void v_1(uint offset, S obj) {
+  output.Store((offset + 0u), asuint(obj.f));
+  output.Store((offset + 4u), obj.u);
+  output.Store4((offset + 128u), asuint(obj.v));
+  output.Store<float16_t>((offset + 160u), obj.x);
+  output.Store<vector<float16_t, 3> >((offset + 192u), obj.y);
+}
+
+void frag_main_inner(S input) {
+  float f = input.f;
+  uint u = input.u;
+  float4 v = input.v;
+  float16_t x = input.x;
+  vector<float16_t, 3> y = input.y;
+  v_1(0u, input);
+}
+
+void frag_main(frag_main_inputs inputs) {
+  S v_2 = {inputs.S_f, inputs.S_u, float4(inputs.S_v.xyz, (1.0f / inputs.S_v[3u])), inputs.S_x, inputs.S_y};
+  frag_main_inner(v_2);
+}
+
+FXC validation failure:
+c:\src\dawn\Shader@0x000002425550C030(5,3-11): error X3000: unrecognized identifier 'float16_t'
+
diff --git a/test/tint/types/functions/shader_io/vertex_input_builtins.wgsl.expected.ir.dxc.hlsl b/test/tint/types/functions/shader_io/vertex_input_builtins.wgsl.expected.ir.dxc.hlsl
index 6b047b4..b236e59 100644
--- a/test/tint/types/functions/shader_io/vertex_input_builtins.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/types/functions/shader_io/vertex_input_builtins.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,20 @@
-SKIP: FAILED
+struct main_outputs {
+  float4 tint_symbol : SV_Position;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:287 internal compiler error: Switch() matched no cases. Type: tint::core::ir::FunctionParam
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct main_inputs {
+  uint vertex_index : SV_VertexID;
+  uint instance_index : SV_InstanceID;
+};
+
+
+float4 main_inner(uint vertex_index, uint instance_index) {
+  uint foo = (vertex_index + instance_index);
+  return (0.0f).xxxx;
+}
+
+main_outputs main(main_inputs inputs) {
+  main_outputs v = {main_inner(inputs.vertex_index, inputs.instance_index)};
+  return v;
+}
+
diff --git a/test/tint/types/functions/shader_io/vertex_input_builtins.wgsl.expected.ir.fxc.hlsl b/test/tint/types/functions/shader_io/vertex_input_builtins.wgsl.expected.ir.fxc.hlsl
index 6b047b4..b236e59 100644
--- a/test/tint/types/functions/shader_io/vertex_input_builtins.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/types/functions/shader_io/vertex_input_builtins.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,20 @@
-SKIP: FAILED
+struct main_outputs {
+  float4 tint_symbol : SV_Position;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:287 internal compiler error: Switch() matched no cases. Type: tint::core::ir::FunctionParam
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct main_inputs {
+  uint vertex_index : SV_VertexID;
+  uint instance_index : SV_InstanceID;
+};
+
+
+float4 main_inner(uint vertex_index, uint instance_index) {
+  uint foo = (vertex_index + instance_index);
+  return (0.0f).xxxx;
+}
+
+main_outputs main(main_inputs inputs) {
+  main_outputs v = {main_inner(inputs.vertex_index, inputs.instance_index)};
+  return v;
+}
+
diff --git a/test/tint/types/functions/shader_io/vertex_input_builtins_struct.wgsl.expected.ir.dxc.hlsl b/test/tint/types/functions/shader_io/vertex_input_builtins_struct.wgsl.expected.ir.dxc.hlsl
index 3f437dc..d1bf84e 100644
--- a/test/tint/types/functions/shader_io/vertex_input_builtins_struct.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/types/functions/shader_io/vertex_input_builtins_struct.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,26 @@
-SKIP: FAILED
+struct VertexInputs {
+  uint vertex_index;
+  uint instance_index;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Access
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct main_outputs {
+  float4 tint_symbol : SV_Position;
+};
+
+struct main_inputs {
+  uint VertexInputs_vertex_index : SV_VertexID;
+  uint VertexInputs_instance_index : SV_InstanceID;
+};
+
+
+float4 main_inner(VertexInputs inputs) {
+  uint foo = (inputs.vertex_index + inputs.instance_index);
+  return (0.0f).xxxx;
+}
+
+main_outputs main(main_inputs inputs) {
+  VertexInputs v = {inputs.VertexInputs_vertex_index, inputs.VertexInputs_instance_index};
+  main_outputs v_1 = {main_inner(v)};
+  return v_1;
+}
+
diff --git a/test/tint/types/functions/shader_io/vertex_input_builtins_struct.wgsl.expected.ir.fxc.hlsl b/test/tint/types/functions/shader_io/vertex_input_builtins_struct.wgsl.expected.ir.fxc.hlsl
index 3f437dc..d1bf84e 100644
--- a/test/tint/types/functions/shader_io/vertex_input_builtins_struct.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/types/functions/shader_io/vertex_input_builtins_struct.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,26 @@
-SKIP: FAILED
+struct VertexInputs {
+  uint vertex_index;
+  uint instance_index;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Access
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct main_outputs {
+  float4 tint_symbol : SV_Position;
+};
+
+struct main_inputs {
+  uint VertexInputs_vertex_index : SV_VertexID;
+  uint VertexInputs_instance_index : SV_InstanceID;
+};
+
+
+float4 main_inner(VertexInputs inputs) {
+  uint foo = (inputs.vertex_index + inputs.instance_index);
+  return (0.0f).xxxx;
+}
+
+main_outputs main(main_inputs inputs) {
+  VertexInputs v = {inputs.VertexInputs_vertex_index, inputs.VertexInputs_instance_index};
+  main_outputs v_1 = {main_inner(v)};
+  return v_1;
+}
+
diff --git a/test/tint/types/functions/shader_io/vertex_input_locations.wgsl.expected.ir.dxc.hlsl b/test/tint/types/functions/shader_io/vertex_input_locations.wgsl.expected.ir.dxc.hlsl
index 6b047b4..9908585 100644
--- a/test/tint/types/functions/shader_io/vertex_input_locations.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/types/functions/shader_io/vertex_input_locations.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,25 @@
-SKIP: FAILED
+struct main_outputs {
+  float4 tint_symbol : SV_Position;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:287 internal compiler error: Switch() matched no cases. Type: tint::core::ir::FunctionParam
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct main_inputs {
+  int loc0 : TEXCOORD0;
+  uint loc1 : TEXCOORD1;
+  float loc2 : TEXCOORD2;
+  float4 loc3 : TEXCOORD3;
+};
+
+
+float4 main_inner(int loc0, uint loc1, float loc2, float4 loc3) {
+  int i = loc0;
+  uint u = loc1;
+  float f = loc2;
+  float4 v = loc3;
+  return (0.0f).xxxx;
+}
+
+main_outputs main(main_inputs inputs) {
+  main_outputs v_1 = {main_inner(inputs.loc0, inputs.loc1, inputs.loc2, inputs.loc3)};
+  return v_1;
+}
+
diff --git a/test/tint/types/functions/shader_io/vertex_input_locations.wgsl.expected.ir.fxc.hlsl b/test/tint/types/functions/shader_io/vertex_input_locations.wgsl.expected.ir.fxc.hlsl
index 6b047b4..9908585 100644
--- a/test/tint/types/functions/shader_io/vertex_input_locations.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/types/functions/shader_io/vertex_input_locations.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,25 @@
-SKIP: FAILED
+struct main_outputs {
+  float4 tint_symbol : SV_Position;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:287 internal compiler error: Switch() matched no cases. Type: tint::core::ir::FunctionParam
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct main_inputs {
+  int loc0 : TEXCOORD0;
+  uint loc1 : TEXCOORD1;
+  float loc2 : TEXCOORD2;
+  float4 loc3 : TEXCOORD3;
+};
+
+
+float4 main_inner(int loc0, uint loc1, float loc2, float4 loc3) {
+  int i = loc0;
+  uint u = loc1;
+  float f = loc2;
+  float4 v = loc3;
+  return (0.0f).xxxx;
+}
+
+main_outputs main(main_inputs inputs) {
+  main_outputs v_1 = {main_inner(inputs.loc0, inputs.loc1, inputs.loc2, inputs.loc3)};
+  return v_1;
+}
+
diff --git a/test/tint/types/functions/shader_io/vertex_input_locations_f16.wgsl.expected.ir.dxc.hlsl b/test/tint/types/functions/shader_io/vertex_input_locations_f16.wgsl.expected.ir.dxc.hlsl
index 6b047b4..20c1baf 100644
--- a/test/tint/types/functions/shader_io/vertex_input_locations_f16.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/types/functions/shader_io/vertex_input_locations_f16.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,29 @@
-SKIP: FAILED
+struct main_outputs {
+  float4 tint_symbol : SV_Position;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:287 internal compiler error: Switch() matched no cases. Type: tint::core::ir::FunctionParam
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct main_inputs {
+  int loc0 : TEXCOORD0;
+  uint loc1 : TEXCOORD1;
+  float loc2 : TEXCOORD2;
+  float4 loc3 : TEXCOORD3;
+  float16_t loc4 : TEXCOORD4;
+  vector<float16_t, 3> loc5 : TEXCOORD5;
+};
+
+
+float4 main_inner(int loc0, uint loc1, float loc2, float4 loc3, float16_t loc4, vector<float16_t, 3> loc5) {
+  int i = loc0;
+  uint u = loc1;
+  float f = loc2;
+  float4 v = loc3;
+  float16_t x = loc4;
+  vector<float16_t, 3> y = loc5;
+  return (0.0f).xxxx;
+}
+
+main_outputs main(main_inputs inputs) {
+  main_outputs v_1 = {main_inner(inputs.loc0, inputs.loc1, inputs.loc2, inputs.loc3, inputs.loc4, inputs.loc5)};
+  return v_1;
+}
+
diff --git a/test/tint/types/functions/shader_io/vertex_input_locations_f16.wgsl.expected.ir.fxc.hlsl b/test/tint/types/functions/shader_io/vertex_input_locations_f16.wgsl.expected.ir.fxc.hlsl
index 6b047b4..2390a34 100644
--- a/test/tint/types/functions/shader_io/vertex_input_locations_f16.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/types/functions/shader_io/vertex_input_locations_f16.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,34 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:287 internal compiler error: Switch() matched no cases. Type: tint::core::ir::FunctionParam
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct main_outputs {
+  float4 tint_symbol : SV_Position;
+};
+
+struct main_inputs {
+  int loc0 : TEXCOORD0;
+  uint loc1 : TEXCOORD1;
+  float loc2 : TEXCOORD2;
+  float4 loc3 : TEXCOORD3;
+  float16_t loc4 : TEXCOORD4;
+  vector<float16_t, 3> loc5 : TEXCOORD5;
+};
+
+
+float4 main_inner(int loc0, uint loc1, float loc2, float4 loc3, float16_t loc4, vector<float16_t, 3> loc5) {
+  int i = loc0;
+  uint u = loc1;
+  float f = loc2;
+  float4 v = loc3;
+  float16_t x = loc4;
+  vector<float16_t, 3> y = loc5;
+  return (0.0f).xxxx;
+}
+
+main_outputs main(main_inputs inputs) {
+  main_outputs v_1 = {main_inner(inputs.loc0, inputs.loc1, inputs.loc2, inputs.loc3, inputs.loc4, inputs.loc5)};
+  return v_1;
+}
+
+FXC validation failure:
+c:\src\dawn\Shader@0x000001FF902DDBC0(10,3-11): error X3000: unrecognized identifier 'float16_t'
+
diff --git a/test/tint/types/functions/shader_io/vertex_input_locations_struct.wgsl.expected.ir.dxc.hlsl b/test/tint/types/functions/shader_io/vertex_input_locations_struct.wgsl.expected.ir.dxc.hlsl
index 3f437dc..02f6c98 100644
--- a/test/tint/types/functions/shader_io/vertex_input_locations_struct.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/types/functions/shader_io/vertex_input_locations_struct.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,33 @@
-SKIP: FAILED
+struct VertexInputs {
+  int loc0;
+  uint loc1;
+  float loc2;
+  float4 loc3;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Access
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct main_outputs {
+  float4 tint_symbol : SV_Position;
+};
+
+struct main_inputs {
+  int VertexInputs_loc0 : TEXCOORD0;
+  uint VertexInputs_loc1 : TEXCOORD1;
+  float VertexInputs_loc2 : TEXCOORD2;
+  float4 VertexInputs_loc3 : TEXCOORD3;
+};
+
+
+float4 main_inner(VertexInputs inputs) {
+  int i = inputs.loc0;
+  uint u = inputs.loc1;
+  float f = inputs.loc2;
+  float4 v = inputs.loc3;
+  return (0.0f).xxxx;
+}
+
+main_outputs main(main_inputs inputs) {
+  VertexInputs v_1 = {inputs.VertexInputs_loc0, inputs.VertexInputs_loc1, inputs.VertexInputs_loc2, inputs.VertexInputs_loc3};
+  main_outputs v_2 = {main_inner(v_1)};
+  return v_2;
+}
+
diff --git a/test/tint/types/functions/shader_io/vertex_input_locations_struct.wgsl.expected.ir.fxc.hlsl b/test/tint/types/functions/shader_io/vertex_input_locations_struct.wgsl.expected.ir.fxc.hlsl
index 3f437dc..02f6c98 100644
--- a/test/tint/types/functions/shader_io/vertex_input_locations_struct.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/types/functions/shader_io/vertex_input_locations_struct.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,33 @@
-SKIP: FAILED
+struct VertexInputs {
+  int loc0;
+  uint loc1;
+  float loc2;
+  float4 loc3;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Access
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct main_outputs {
+  float4 tint_symbol : SV_Position;
+};
+
+struct main_inputs {
+  int VertexInputs_loc0 : TEXCOORD0;
+  uint VertexInputs_loc1 : TEXCOORD1;
+  float VertexInputs_loc2 : TEXCOORD2;
+  float4 VertexInputs_loc3 : TEXCOORD3;
+};
+
+
+float4 main_inner(VertexInputs inputs) {
+  int i = inputs.loc0;
+  uint u = inputs.loc1;
+  float f = inputs.loc2;
+  float4 v = inputs.loc3;
+  return (0.0f).xxxx;
+}
+
+main_outputs main(main_inputs inputs) {
+  VertexInputs v_1 = {inputs.VertexInputs_loc0, inputs.VertexInputs_loc1, inputs.VertexInputs_loc2, inputs.VertexInputs_loc3};
+  main_outputs v_2 = {main_inner(v_1)};
+  return v_2;
+}
+
diff --git a/test/tint/types/functions/shader_io/vertex_input_locations_struct_f16.wgsl.expected.ir.dxc.hlsl b/test/tint/types/functions/shader_io/vertex_input_locations_struct_f16.wgsl.expected.ir.dxc.hlsl
index 3f437dc..268734c 100644
--- a/test/tint/types/functions/shader_io/vertex_input_locations_struct_f16.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/types/functions/shader_io/vertex_input_locations_struct_f16.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,39 @@
-SKIP: FAILED
+struct VertexInputs {
+  int loc0;
+  uint loc1;
+  float loc2;
+  float4 loc3;
+  float16_t loc4;
+  vector<float16_t, 3> loc5;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Access
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct main_outputs {
+  float4 tint_symbol : SV_Position;
+};
+
+struct main_inputs {
+  int VertexInputs_loc0 : TEXCOORD0;
+  uint VertexInputs_loc1 : TEXCOORD1;
+  float VertexInputs_loc2 : TEXCOORD2;
+  float4 VertexInputs_loc3 : TEXCOORD3;
+  float16_t VertexInputs_loc4 : TEXCOORD4;
+  vector<float16_t, 3> VertexInputs_loc5 : TEXCOORD5;
+};
+
+
+float4 main_inner(VertexInputs inputs) {
+  int i = inputs.loc0;
+  uint u = inputs.loc1;
+  float f = inputs.loc2;
+  float4 v = inputs.loc3;
+  float16_t x = inputs.loc4;
+  vector<float16_t, 3> y = inputs.loc5;
+  return (0.0f).xxxx;
+}
+
+main_outputs main(main_inputs inputs) {
+  VertexInputs v_1 = {inputs.VertexInputs_loc0, inputs.VertexInputs_loc1, inputs.VertexInputs_loc2, inputs.VertexInputs_loc3, inputs.VertexInputs_loc4, inputs.VertexInputs_loc5};
+  main_outputs v_2 = {main_inner(v_1)};
+  return v_2;
+}
+
diff --git a/test/tint/types/functions/shader_io/vertex_input_locations_struct_f16.wgsl.expected.ir.fxc.hlsl b/test/tint/types/functions/shader_io/vertex_input_locations_struct_f16.wgsl.expected.ir.fxc.hlsl
index 3f437dc..2304dc3 100644
--- a/test/tint/types/functions/shader_io/vertex_input_locations_struct_f16.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/types/functions/shader_io/vertex_input_locations_struct_f16.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,44 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Access
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct VertexInputs {
+  int loc0;
+  uint loc1;
+  float loc2;
+  float4 loc3;
+  float16_t loc4;
+  vector<float16_t, 3> loc5;
+};
+
+struct main_outputs {
+  float4 tint_symbol : SV_Position;
+};
+
+struct main_inputs {
+  int VertexInputs_loc0 : TEXCOORD0;
+  uint VertexInputs_loc1 : TEXCOORD1;
+  float VertexInputs_loc2 : TEXCOORD2;
+  float4 VertexInputs_loc3 : TEXCOORD3;
+  float16_t VertexInputs_loc4 : TEXCOORD4;
+  vector<float16_t, 3> VertexInputs_loc5 : TEXCOORD5;
+};
+
+
+float4 main_inner(VertexInputs inputs) {
+  int i = inputs.loc0;
+  uint u = inputs.loc1;
+  float f = inputs.loc2;
+  float4 v = inputs.loc3;
+  float16_t x = inputs.loc4;
+  vector<float16_t, 3> y = inputs.loc5;
+  return (0.0f).xxxx;
+}
+
+main_outputs main(main_inputs inputs) {
+  VertexInputs v_1 = {inputs.VertexInputs_loc0, inputs.VertexInputs_loc1, inputs.VertexInputs_loc2, inputs.VertexInputs_loc3, inputs.VertexInputs_loc4, inputs.VertexInputs_loc5};
+  main_outputs v_2 = {main_inner(v_1)};
+  return v_2;
+}
+
+FXC validation failure:
+c:\src\dawn\Shader@0x00000178C361F440(6,3-11): error X3000: unrecognized identifier 'float16_t'
+
diff --git a/test/tint/types/functions/shader_io/vertex_input_mixed.wgsl.expected.ir.dxc.hlsl b/test/tint/types/functions/shader_io/vertex_input_mixed.wgsl.expected.ir.dxc.hlsl
index 3f437dc..a2092bb 100644
--- a/test/tint/types/functions/shader_io/vertex_input_mixed.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/types/functions/shader_io/vertex_input_mixed.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,41 @@
-SKIP: FAILED
+struct VertexInputs0 {
+  uint vertex_index;
+  int loc0;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Access
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct VertexInputs1 {
+  float loc2;
+  float4 loc3;
+};
+
+struct main_outputs {
+  float4 tint_symbol : SV_Position;
+};
+
+struct main_inputs {
+  int VertexInputs0_loc0 : TEXCOORD0;
+  uint loc1 : TEXCOORD1;
+  float VertexInputs1_loc2 : TEXCOORD2;
+  float4 VertexInputs1_loc3 : TEXCOORD3;
+  uint VertexInputs0_vertex_index : SV_VertexID;
+  uint instance_index : SV_InstanceID;
+};
+
+
+float4 main_inner(VertexInputs0 inputs0, uint loc1, uint instance_index, VertexInputs1 inputs1) {
+  uint foo = (inputs0.vertex_index + instance_index);
+  int i = inputs0.loc0;
+  uint u = loc1;
+  float f = inputs1.loc2;
+  float4 v = inputs1.loc3;
+  return (0.0f).xxxx;
+}
+
+main_outputs main(main_inputs inputs) {
+  VertexInputs0 v_1 = {inputs.VertexInputs0_vertex_index, inputs.VertexInputs0_loc0};
+  VertexInputs0 v_2 = v_1;
+  VertexInputs1 v_3 = {inputs.VertexInputs1_loc2, inputs.VertexInputs1_loc3};
+  main_outputs v_4 = {main_inner(v_2, inputs.loc1, inputs.instance_index, v_3)};
+  return v_4;
+}
+
diff --git a/test/tint/types/functions/shader_io/vertex_input_mixed.wgsl.expected.ir.fxc.hlsl b/test/tint/types/functions/shader_io/vertex_input_mixed.wgsl.expected.ir.fxc.hlsl
index 3f437dc..a2092bb 100644
--- a/test/tint/types/functions/shader_io/vertex_input_mixed.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/types/functions/shader_io/vertex_input_mixed.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,41 @@
-SKIP: FAILED
+struct VertexInputs0 {
+  uint vertex_index;
+  int loc0;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Access
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct VertexInputs1 {
+  float loc2;
+  float4 loc3;
+};
+
+struct main_outputs {
+  float4 tint_symbol : SV_Position;
+};
+
+struct main_inputs {
+  int VertexInputs0_loc0 : TEXCOORD0;
+  uint loc1 : TEXCOORD1;
+  float VertexInputs1_loc2 : TEXCOORD2;
+  float4 VertexInputs1_loc3 : TEXCOORD3;
+  uint VertexInputs0_vertex_index : SV_VertexID;
+  uint instance_index : SV_InstanceID;
+};
+
+
+float4 main_inner(VertexInputs0 inputs0, uint loc1, uint instance_index, VertexInputs1 inputs1) {
+  uint foo = (inputs0.vertex_index + instance_index);
+  int i = inputs0.loc0;
+  uint u = loc1;
+  float f = inputs1.loc2;
+  float4 v = inputs1.loc3;
+  return (0.0f).xxxx;
+}
+
+main_outputs main(main_inputs inputs) {
+  VertexInputs0 v_1 = {inputs.VertexInputs0_vertex_index, inputs.VertexInputs0_loc0};
+  VertexInputs0 v_2 = v_1;
+  VertexInputs1 v_3 = {inputs.VertexInputs1_loc2, inputs.VertexInputs1_loc3};
+  main_outputs v_4 = {main_inner(v_2, inputs.loc1, inputs.instance_index, v_3)};
+  return v_4;
+}
+
diff --git a/test/tint/types/functions/shader_io/vertex_input_mixed_f16.wgsl.expected.ir.dxc.hlsl b/test/tint/types/functions/shader_io/vertex_input_mixed_f16.wgsl.expected.ir.dxc.hlsl
index 3f437dc..e881e45 100644
--- a/test/tint/types/functions/shader_io/vertex_input_mixed_f16.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/types/functions/shader_io/vertex_input_mixed_f16.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,46 @@
-SKIP: FAILED
+struct VertexInputs0 {
+  uint vertex_index;
+  int loc0;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Access
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct VertexInputs1 {
+  float loc2;
+  float4 loc3;
+  vector<float16_t, 3> loc5;
+};
+
+struct main_outputs {
+  float4 tint_symbol : SV_Position;
+};
+
+struct main_inputs {
+  int VertexInputs0_loc0 : TEXCOORD0;
+  uint loc1 : TEXCOORD1;
+  float VertexInputs1_loc2 : TEXCOORD2;
+  float4 VertexInputs1_loc3 : TEXCOORD3;
+  float16_t loc4 : TEXCOORD4;
+  vector<float16_t, 3> VertexInputs1_loc5 : TEXCOORD5;
+  uint VertexInputs0_vertex_index : SV_VertexID;
+  uint instance_index : SV_InstanceID;
+};
+
+
+float4 main_inner(VertexInputs0 inputs0, uint loc1, uint instance_index, VertexInputs1 inputs1, float16_t loc4) {
+  uint foo = (inputs0.vertex_index + instance_index);
+  int i = inputs0.loc0;
+  uint u = loc1;
+  float f = inputs1.loc2;
+  float4 v = inputs1.loc3;
+  float16_t x = loc4;
+  vector<float16_t, 3> y = inputs1.loc5;
+  return (0.0f).xxxx;
+}
+
+main_outputs main(main_inputs inputs) {
+  VertexInputs0 v_1 = {inputs.VertexInputs0_vertex_index, inputs.VertexInputs0_loc0};
+  VertexInputs0 v_2 = v_1;
+  VertexInputs1 v_3 = {inputs.VertexInputs1_loc2, inputs.VertexInputs1_loc3, inputs.VertexInputs1_loc5};
+  main_outputs v_4 = {main_inner(v_2, inputs.loc1, inputs.instance_index, v_3, inputs.loc4)};
+  return v_4;
+}
+
diff --git a/test/tint/types/functions/shader_io/vertex_input_mixed_f16.wgsl.expected.ir.fxc.hlsl b/test/tint/types/functions/shader_io/vertex_input_mixed_f16.wgsl.expected.ir.fxc.hlsl
index 3f437dc..3b4170f 100644
--- a/test/tint/types/functions/shader_io/vertex_input_mixed_f16.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/types/functions/shader_io/vertex_input_mixed_f16.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,51 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Access
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct VertexInputs0 {
+  uint vertex_index;
+  int loc0;
+};
+
+struct VertexInputs1 {
+  float loc2;
+  float4 loc3;
+  vector<float16_t, 3> loc5;
+};
+
+struct main_outputs {
+  float4 tint_symbol : SV_Position;
+};
+
+struct main_inputs {
+  int VertexInputs0_loc0 : TEXCOORD0;
+  uint loc1 : TEXCOORD1;
+  float VertexInputs1_loc2 : TEXCOORD2;
+  float4 VertexInputs1_loc3 : TEXCOORD3;
+  float16_t loc4 : TEXCOORD4;
+  vector<float16_t, 3> VertexInputs1_loc5 : TEXCOORD5;
+  uint VertexInputs0_vertex_index : SV_VertexID;
+  uint instance_index : SV_InstanceID;
+};
+
+
+float4 main_inner(VertexInputs0 inputs0, uint loc1, uint instance_index, VertexInputs1 inputs1, float16_t loc4) {
+  uint foo = (inputs0.vertex_index + instance_index);
+  int i = inputs0.loc0;
+  uint u = loc1;
+  float f = inputs1.loc2;
+  float4 v = inputs1.loc3;
+  float16_t x = loc4;
+  vector<float16_t, 3> y = inputs1.loc5;
+  return (0.0f).xxxx;
+}
+
+main_outputs main(main_inputs inputs) {
+  VertexInputs0 v_1 = {inputs.VertexInputs0_vertex_index, inputs.VertexInputs0_loc0};
+  VertexInputs0 v_2 = v_1;
+  VertexInputs1 v_3 = {inputs.VertexInputs1_loc2, inputs.VertexInputs1_loc3, inputs.VertexInputs1_loc5};
+  main_outputs v_4 = {main_inner(v_2, inputs.loc1, inputs.instance_index, v_3, inputs.loc4)};
+  return v_4;
+}
+
+FXC validation failure:
+c:\src\dawn\Shader@0x000001680840AEB0(9,10-18): error X3000: syntax error: unexpected token 'float16_t'
+
diff --git a/test/tint/types/functions/shader_io/vertex_output_builtins.wgsl.expected.ir.dxc.hlsl b/test/tint/types/functions/shader_io/vertex_output_builtins.wgsl.expected.ir.dxc.hlsl
index 7b0f52b..e5517cf 100644
--- a/test/tint/types/functions/shader_io/vertex_output_builtins.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/types/functions/shader_io/vertex_output_builtins.wgsl.expected.ir.dxc.hlsl
@@ -1,11 +1,14 @@
-SKIP: FAILED
+struct main_outputs {
+  float4 tint_symbol : SV_Position;
+};
 
-float4 main() {
+
+float4 main_inner() {
   return float4(1.0f, 2.0f, 3.0f, 4.0f);
 }
 
-DXC validation failure:
-hlsl.hlsl:1:1: error: Semantic must be defined for all outputs of an entry function or patch constant function
-float4 main() {
-^
+main_outputs main() {
+  main_outputs v = {main_inner()};
+  return v;
+}
 
diff --git a/test/tint/types/functions/shader_io/vertex_output_builtins.wgsl.expected.ir.fxc.hlsl b/test/tint/types/functions/shader_io/vertex_output_builtins.wgsl.expected.ir.fxc.hlsl
index 68f586f..e5517cf 100644
--- a/test/tint/types/functions/shader_io/vertex_output_builtins.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/types/functions/shader_io/vertex_output_builtins.wgsl.expected.ir.fxc.hlsl
@@ -1,4 +1,14 @@
-float4 main() {
+struct main_outputs {
+  float4 tint_symbol : SV_Position;
+};
+
+
+float4 main_inner() {
   return float4(1.0f, 2.0f, 3.0f, 4.0f);
 }
 
+main_outputs main() {
+  main_outputs v = {main_inner()};
+  return v;
+}
+
diff --git a/test/tint/types/functions/shader_io/vertex_output_builtins_struct.wgsl.expected.ir.dxc.hlsl b/test/tint/types/functions/shader_io/vertex_output_builtins_struct.wgsl.expected.ir.dxc.hlsl
index 0ba40c6..f5d8687 100644
--- a/test/tint/types/functions/shader_io/vertex_output_builtins_struct.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/types/functions/shader_io/vertex_output_builtins_struct.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,20 @@
-SKIP: FAILED
+struct VertexOutputs {
+  float4 position;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct main_outputs {
+  float4 VertexOutputs_position : SV_Position;
+};
+
+
+VertexOutputs main_inner() {
+  VertexOutputs v = {float4(1.0f, 2.0f, 3.0f, 4.0f)};
+  return v;
+}
+
+main_outputs main() {
+  VertexOutputs v_1 = main_inner();
+  main_outputs v_2 = {v_1.position};
+  return v_2;
+}
+
diff --git a/test/tint/types/functions/shader_io/vertex_output_builtins_struct.wgsl.expected.ir.fxc.hlsl b/test/tint/types/functions/shader_io/vertex_output_builtins_struct.wgsl.expected.ir.fxc.hlsl
index 0ba40c6..f5d8687 100644
--- a/test/tint/types/functions/shader_io/vertex_output_builtins_struct.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/types/functions/shader_io/vertex_output_builtins_struct.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,20 @@
-SKIP: FAILED
+struct VertexOutputs {
+  float4 position;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct main_outputs {
+  float4 VertexOutputs_position : SV_Position;
+};
+
+
+VertexOutputs main_inner() {
+  VertexOutputs v = {float4(1.0f, 2.0f, 3.0f, 4.0f)};
+  return v;
+}
+
+main_outputs main() {
+  VertexOutputs v_1 = main_inner();
+  main_outputs v_2 = {v_1.position};
+  return v_2;
+}
+
diff --git a/test/tint/types/functions/shader_io/vertex_output_locations_struct.wgsl.expected.ir.dxc.hlsl b/test/tint/types/functions/shader_io/vertex_output_locations_struct.wgsl.expected.ir.dxc.hlsl
index 0ba40c6..6ada07c 100644
--- a/test/tint/types/functions/shader_io/vertex_output_locations_struct.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/types/functions/shader_io/vertex_output_locations_struct.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,33 @@
-SKIP: FAILED
+struct VertexOutputs {
+  int loc0;
+  uint loc1;
+  float loc2;
+  float4 loc3;
+  float4 position;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct main_outputs {
+  nointerpolation int VertexOutputs_loc0 : TEXCOORD0;
+  nointerpolation uint VertexOutputs_loc1 : TEXCOORD1;
+  float VertexOutputs_loc2 : TEXCOORD2;
+  float4 VertexOutputs_loc3 : TEXCOORD3;
+  float4 VertexOutputs_position : SV_Position;
+};
+
+
+VertexOutputs main_inner() {
+  VertexOutputs v = {1, 1u, 1.0f, float4(1.0f, 2.0f, 3.0f, 4.0f), (0.0f).xxxx};
+  return v;
+}
+
+main_outputs main() {
+  VertexOutputs v_1 = main_inner();
+  VertexOutputs v_2 = v_1;
+  VertexOutputs v_3 = v_1;
+  VertexOutputs v_4 = v_1;
+  VertexOutputs v_5 = v_1;
+  VertexOutputs v_6 = v_1;
+  main_outputs v_7 = {v_2.loc0, v_3.loc1, v_4.loc2, v_5.loc3, v_6.position};
+  return v_7;
+}
+
diff --git a/test/tint/types/functions/shader_io/vertex_output_locations_struct.wgsl.expected.ir.fxc.hlsl b/test/tint/types/functions/shader_io/vertex_output_locations_struct.wgsl.expected.ir.fxc.hlsl
index 0ba40c6..6ada07c 100644
--- a/test/tint/types/functions/shader_io/vertex_output_locations_struct.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/types/functions/shader_io/vertex_output_locations_struct.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,33 @@
-SKIP: FAILED
+struct VertexOutputs {
+  int loc0;
+  uint loc1;
+  float loc2;
+  float4 loc3;
+  float4 position;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct main_outputs {
+  nointerpolation int VertexOutputs_loc0 : TEXCOORD0;
+  nointerpolation uint VertexOutputs_loc1 : TEXCOORD1;
+  float VertexOutputs_loc2 : TEXCOORD2;
+  float4 VertexOutputs_loc3 : TEXCOORD3;
+  float4 VertexOutputs_position : SV_Position;
+};
+
+
+VertexOutputs main_inner() {
+  VertexOutputs v = {1, 1u, 1.0f, float4(1.0f, 2.0f, 3.0f, 4.0f), (0.0f).xxxx};
+  return v;
+}
+
+main_outputs main() {
+  VertexOutputs v_1 = main_inner();
+  VertexOutputs v_2 = v_1;
+  VertexOutputs v_3 = v_1;
+  VertexOutputs v_4 = v_1;
+  VertexOutputs v_5 = v_1;
+  VertexOutputs v_6 = v_1;
+  main_outputs v_7 = {v_2.loc0, v_3.loc1, v_4.loc2, v_5.loc3, v_6.position};
+  return v_7;
+}
+
diff --git a/test/tint/types/functions/shader_io/vertex_output_locations_struct_f16.wgsl.expected.ir.dxc.hlsl b/test/tint/types/functions/shader_io/vertex_output_locations_struct_f16.wgsl.expected.ir.dxc.hlsl
index 0ba40c6..96371de 100644
--- a/test/tint/types/functions/shader_io/vertex_output_locations_struct_f16.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/types/functions/shader_io/vertex_output_locations_struct_f16.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,39 @@
-SKIP: FAILED
+struct VertexOutputs {
+  int loc0;
+  uint loc1;
+  float loc2;
+  float4 loc3;
+  float4 position;
+  float16_t loc4;
+  vector<float16_t, 3> loc5;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct main_outputs {
+  nointerpolation int VertexOutputs_loc0 : TEXCOORD0;
+  nointerpolation uint VertexOutputs_loc1 : TEXCOORD1;
+  float VertexOutputs_loc2 : TEXCOORD2;
+  float4 VertexOutputs_loc3 : TEXCOORD3;
+  float16_t VertexOutputs_loc4 : TEXCOORD4;
+  vector<float16_t, 3> VertexOutputs_loc5 : TEXCOORD5;
+  float4 VertexOutputs_position : SV_Position;
+};
+
+
+VertexOutputs main_inner() {
+  VertexOutputs v = {1, 1u, 1.0f, float4(1.0f, 2.0f, 3.0f, 4.0f), (0.0f).xxxx, float16_t(2.25h), vector<float16_t, 3>(float16_t(3.0h), float16_t(5.0h), float16_t(8.0h))};
+  return v;
+}
+
+main_outputs main() {
+  VertexOutputs v_1 = main_inner();
+  VertexOutputs v_2 = v_1;
+  VertexOutputs v_3 = v_1;
+  VertexOutputs v_4 = v_1;
+  VertexOutputs v_5 = v_1;
+  VertexOutputs v_6 = v_1;
+  VertexOutputs v_7 = v_1;
+  VertexOutputs v_8 = v_1;
+  main_outputs v_9 = {v_2.loc0, v_3.loc1, v_4.loc2, v_5.loc3, v_7.loc4, v_8.loc5, v_6.position};
+  return v_9;
+}
+
diff --git a/test/tint/types/functions/shader_io/vertex_output_locations_struct_f16.wgsl.expected.ir.fxc.hlsl b/test/tint/types/functions/shader_io/vertex_output_locations_struct_f16.wgsl.expected.ir.fxc.hlsl
index 0ba40c6..6877c39 100644
--- a/test/tint/types/functions/shader_io/vertex_output_locations_struct_f16.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/types/functions/shader_io/vertex_output_locations_struct_f16.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,44 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct VertexOutputs {
+  int loc0;
+  uint loc1;
+  float loc2;
+  float4 loc3;
+  float4 position;
+  float16_t loc4;
+  vector<float16_t, 3> loc5;
+};
+
+struct main_outputs {
+  nointerpolation int VertexOutputs_loc0 : TEXCOORD0;
+  nointerpolation uint VertexOutputs_loc1 : TEXCOORD1;
+  float VertexOutputs_loc2 : TEXCOORD2;
+  float4 VertexOutputs_loc3 : TEXCOORD3;
+  float16_t VertexOutputs_loc4 : TEXCOORD4;
+  vector<float16_t, 3> VertexOutputs_loc5 : TEXCOORD5;
+  float4 VertexOutputs_position : SV_Position;
+};
+
+
+VertexOutputs main_inner() {
+  VertexOutputs v = {1, 1u, 1.0f, float4(1.0f, 2.0f, 3.0f, 4.0f), (0.0f).xxxx, float16_t(2.25h), vector<float16_t, 3>(float16_t(3.0h), float16_t(5.0h), float16_t(8.0h))};
+  return v;
+}
+
+main_outputs main() {
+  VertexOutputs v_1 = main_inner();
+  VertexOutputs v_2 = v_1;
+  VertexOutputs v_3 = v_1;
+  VertexOutputs v_4 = v_1;
+  VertexOutputs v_5 = v_1;
+  VertexOutputs v_6 = v_1;
+  VertexOutputs v_7 = v_1;
+  VertexOutputs v_8 = v_1;
+  main_outputs v_9 = {v_2.loc0, v_3.loc1, v_4.loc2, v_5.loc3, v_7.loc4, v_8.loc5, v_6.position};
+  return v_9;
+}
+
+FXC validation failure:
+c:\src\dawn\Shader@0x000001E602886E30(7,3-11): error X3000: unrecognized identifier 'float16_t'
+
diff --git a/test/tint/types/module_scope_const.wgsl.expected.ir.dxc.hlsl b/test/tint/types/module_scope_const.wgsl.expected.ir.dxc.hlsl
index 91ea2dd..a9bf89c 100644
--- a/test/tint/types/module_scope_const.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/types/module_scope_const.wgsl.expected.ir.dxc.hlsl
@@ -1,3 +1,4 @@
+
 [numthreads(1, 1, 1)]
 void main() {
 }
diff --git a/test/tint/types/module_scope_const.wgsl.expected.ir.fxc.hlsl b/test/tint/types/module_scope_const.wgsl.expected.ir.fxc.hlsl
index 91ea2dd..a9bf89c 100644
--- a/test/tint/types/module_scope_const.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/types/module_scope_const.wgsl.expected.ir.fxc.hlsl
@@ -1,3 +1,4 @@
+
 [numthreads(1, 1, 1)]
 void main() {
 }
diff --git a/test/tint/types/module_scope_private_initializers.wgsl.expected.ir.dxc.hlsl b/test/tint/types/module_scope_private_initializers.wgsl.expected.ir.dxc.hlsl
index faf29a8..0bfbcb2 100644
--- a/test/tint/types/module_scope_private_initializers.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/types/module_scope_private_initializers.wgsl.expected.ir.dxc.hlsl
@@ -1,15 +1,8 @@
-SKIP: FAILED
 
+static float a = 1.0f;
+static float b = 0.0f;
 [numthreads(1, 1, 1)]
 void main() {
   float x = (a + b);
 }
 
-DXC validation failure:
-hlsl.hlsl:3:14: error: use of undeclared identifier 'a'
-  float x = (a + b);
-             ^
-hlsl.hlsl:3:18: error: use of undeclared identifier 'b'
-  float x = (a + b);
-                 ^
-
diff --git a/test/tint/types/module_scope_private_initializers.wgsl.expected.ir.fxc.hlsl b/test/tint/types/module_scope_private_initializers.wgsl.expected.ir.fxc.hlsl
index c925d28..0bfbcb2 100644
--- a/test/tint/types/module_scope_private_initializers.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/types/module_scope_private_initializers.wgsl.expected.ir.fxc.hlsl
@@ -1,5 +1,6 @@
-SKIP: FAILED
 
+static float a = 1.0f;
+static float b = 0.0f;
 [numthreads(1, 1, 1)]
 void main() {
   float x = (a + b);
diff --git a/test/tint/types/module_scope_used_in_functions.wgsl.expected.ir.dxc.hlsl b/test/tint/types/module_scope_used_in_functions.wgsl.expected.ir.dxc.hlsl
index 6b047b4..e8316d4 100644
--- a/test/tint/types/module_scope_used_in_functions.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/types/module_scope_used_in_functions.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,42 @@
-SKIP: FAILED
+struct main_inputs {
+  uint tint_local_index : SV_GroupIndex;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:287 internal compiler error: Switch() matched no cases. Type: tint::core::ir::FunctionParam
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+
+static float p = 0.0f;
+groupshared float w;
+ByteAddressBuffer uniforms : register(t1);
+RWByteAddressBuffer storages : register(u0);
+void no_uses() {
+}
+
+void zoo() {
+  p = (p * 2.0f);
+}
+
+void bar(float a, float b) {
+  p = a;
+  w = b;
+  storages.Store(0u, asuint(asfloat(uniforms.Load(0u))));
+  zoo();
+}
+
+void foo(float a) {
+  float b = 2.0f;
+  bar(a, b);
+  no_uses();
+}
+
+void main_inner(uint tint_local_index) {
+  if ((tint_local_index == 0u)) {
+    w = 0.0f;
+  }
+  GroupMemoryBarrierWithGroupSync();
+  foo(1.0f);
+}
+
+[numthreads(1, 1, 1)]
+void main(main_inputs inputs) {
+  main_inner(inputs.tint_local_index);
+}
+
diff --git a/test/tint/types/module_scope_used_in_functions.wgsl.expected.ir.fxc.hlsl b/test/tint/types/module_scope_used_in_functions.wgsl.expected.ir.fxc.hlsl
index 6b047b4..e8316d4 100644
--- a/test/tint/types/module_scope_used_in_functions.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/types/module_scope_used_in_functions.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,42 @@
-SKIP: FAILED
+struct main_inputs {
+  uint tint_local_index : SV_GroupIndex;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:287 internal compiler error: Switch() matched no cases. Type: tint::core::ir::FunctionParam
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+
+static float p = 0.0f;
+groupshared float w;
+ByteAddressBuffer uniforms : register(t1);
+RWByteAddressBuffer storages : register(u0);
+void no_uses() {
+}
+
+void zoo() {
+  p = (p * 2.0f);
+}
+
+void bar(float a, float b) {
+  p = a;
+  w = b;
+  storages.Store(0u, asuint(asfloat(uniforms.Load(0u))));
+  zoo();
+}
+
+void foo(float a) {
+  float b = 2.0f;
+  bar(a, b);
+  no_uses();
+}
+
+void main_inner(uint tint_local_index) {
+  if ((tint_local_index == 0u)) {
+    w = 0.0f;
+  }
+  GroupMemoryBarrierWithGroupSync();
+  foo(1.0f);
+}
+
+[numthreads(1, 1, 1)]
+void main(main_inputs inputs) {
+  main_inner(inputs.tint_local_index);
+}
+
diff --git a/test/tint/types/module_scope_var.wgsl.expected.ir.dxc.hlsl b/test/tint/types/module_scope_var.wgsl.expected.ir.dxc.hlsl
index 0ba40c6..c78ea64 100644
--- a/test/tint/types/module_scope_var.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/types/module_scope_var.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,45 @@
-SKIP: FAILED
+struct S {
+  float a;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct main_inputs {
+  uint tint_local_index : SV_GroupIndex;
+};
+
+
+static bool bool_var = false;
+static int i32_var = 0;
+static uint u32_var = 0u;
+static float f32_var = 0.0f;
+static int2 v2i32_var = (0).xx;
+static uint3 v3u32_var = (0u).xxx;
+static float4 v4f32_var = (0.0f).xxxx;
+static float2x3 m2x3_var = float2x3((0.0f).xxx, (0.0f).xxx);
+static float arr_var[4] = (float[4])0;
+static S struct_var = (S)0;
+groupshared float wg_var;
+void main_inner(uint tint_local_index) {
+  if ((tint_local_index == 0u)) {
+    wg_var = 0.0f;
+  }
+  GroupMemoryBarrierWithGroupSync();
+  bool_var = false;
+  i32_var = 0;
+  u32_var = 0u;
+  f32_var = 0.0f;
+  v2i32_var = (0).xx;
+  v3u32_var = (0u).xxx;
+  v4f32_var = (0.0f).xxxx;
+  m2x3_var = float2x3((0.0f).xxx, (0.0f).xxx);
+  float v[4] = (float[4])0;
+  arr_var = v;
+  S v_1 = (S)0;
+  struct_var = v_1;
+  wg_var = 42.0f;
+}
+
+[numthreads(1, 1, 1)]
+void main(main_inputs inputs) {
+  main_inner(inputs.tint_local_index);
+}
+
diff --git a/test/tint/types/module_scope_var.wgsl.expected.ir.fxc.hlsl b/test/tint/types/module_scope_var.wgsl.expected.ir.fxc.hlsl
index 0ba40c6..c78ea64 100644
--- a/test/tint/types/module_scope_var.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/types/module_scope_var.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,45 @@
-SKIP: FAILED
+struct S {
+  float a;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct main_inputs {
+  uint tint_local_index : SV_GroupIndex;
+};
+
+
+static bool bool_var = false;
+static int i32_var = 0;
+static uint u32_var = 0u;
+static float f32_var = 0.0f;
+static int2 v2i32_var = (0).xx;
+static uint3 v3u32_var = (0u).xxx;
+static float4 v4f32_var = (0.0f).xxxx;
+static float2x3 m2x3_var = float2x3((0.0f).xxx, (0.0f).xxx);
+static float arr_var[4] = (float[4])0;
+static S struct_var = (S)0;
+groupshared float wg_var;
+void main_inner(uint tint_local_index) {
+  if ((tint_local_index == 0u)) {
+    wg_var = 0.0f;
+  }
+  GroupMemoryBarrierWithGroupSync();
+  bool_var = false;
+  i32_var = 0;
+  u32_var = 0u;
+  f32_var = 0.0f;
+  v2i32_var = (0).xx;
+  v3u32_var = (0u).xxx;
+  v4f32_var = (0.0f).xxxx;
+  m2x3_var = float2x3((0.0f).xxx, (0.0f).xxx);
+  float v[4] = (float[4])0;
+  arr_var = v;
+  S v_1 = (S)0;
+  struct_var = v_1;
+  wg_var = 42.0f;
+}
+
+[numthreads(1, 1, 1)]
+void main(main_inputs inputs) {
+  main_inner(inputs.tint_local_index);
+}
+
diff --git a/test/tint/types/module_scope_var_conversions.wgsl.expected.ir.dxc.hlsl b/test/tint/types/module_scope_var_conversions.wgsl.expected.ir.dxc.hlsl
index 1e98541..5bcaa20 100644
--- a/test/tint/types/module_scope_var_conversions.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/types/module_scope_var_conversions.wgsl.expected.ir.dxc.hlsl
@@ -1,5 +1,24 @@
-SKIP: FAILED
 
+static bool bool_var1 = true;
+static bool bool_var2 = true;
+static bool bool_var3 = true;
+static int i32_var1 = 1;
+static int i32_var2 = 1;
+static int i32_var3 = 1;
+static uint u32_var1 = 1u;
+static uint u32_var2 = 1u;
+static uint u32_var3 = 1u;
+static bool3 v3bool_var1 = (true).xxx;
+static bool3 v3bool_var2 = (true).xxx;
+static bool3 v3bool_var3 = (true).xxx;
+static int3 v3i32_var1 = (1).xxx;
+static int3 v3i32_var2 = (1).xxx;
+static int3 v3i32_var3 = (1).xxx;
+static uint3 v3u32_var1 = (1u).xxx;
+static uint3 v3u32_var2 = (1u).xxx;
+static uint3 v3u32_var3 = (1u).xxx;
+static bool3 v3bool_var4 = (true).xxx;
+static bool4 v4bool_var5 = bool4(true, false, true, false);
 [numthreads(1, 1, 1)]
 void main() {
   bool_var1 = false;
@@ -24,65 +43,3 @@
   v3u32_var3 = (0u).xxx;
 }
 
-DXC validation failure:
-hlsl.hlsl:3:3: error: use of undeclared identifier 'bool_var1'
-  bool_var1 = false;
-  ^
-hlsl.hlsl:4:3: error: use of undeclared identifier 'bool_var2'
-  bool_var2 = false;
-  ^
-hlsl.hlsl:5:3: error: use of undeclared identifier 'bool_var3'
-  bool_var3 = false;
-  ^
-hlsl.hlsl:6:3: error: use of undeclared identifier 'i32_var1'
-  i32_var1 = 0;
-  ^
-hlsl.hlsl:7:3: error: use of undeclared identifier 'i32_var2'
-  i32_var2 = 0;
-  ^
-hlsl.hlsl:8:3: error: use of undeclared identifier 'i32_var3'
-  i32_var3 = 0;
-  ^
-hlsl.hlsl:9:3: error: use of undeclared identifier 'u32_var1'
-  u32_var1 = 0u;
-  ^
-hlsl.hlsl:10:3: error: use of undeclared identifier 'u32_var2'
-  u32_var2 = 0u;
-  ^
-hlsl.hlsl:11:3: error: use of undeclared identifier 'u32_var3'
-  u32_var3 = 0u;
-  ^
-hlsl.hlsl:12:3: error: use of undeclared identifier 'v3bool_var1'
-  v3bool_var1 = (false).xxx;
-  ^
-hlsl.hlsl:13:3: error: use of undeclared identifier 'v3bool_var2'
-  v3bool_var2 = (false).xxx;
-  ^
-hlsl.hlsl:14:3: error: use of undeclared identifier 'v3bool_var3'
-  v3bool_var3 = (false).xxx;
-  ^
-hlsl.hlsl:15:3: error: use of undeclared identifier 'v3bool_var4'
-  v3bool_var4 = (false).xxx;
-  ^
-hlsl.hlsl:16:3: error: use of undeclared identifier 'v4bool_var5'
-  v4bool_var5 = (false).xxxx;
-  ^
-hlsl.hlsl:17:3: error: use of undeclared identifier 'v3i32_var1'
-  v3i32_var1 = (0).xxx;
-  ^
-hlsl.hlsl:18:3: error: use of undeclared identifier 'v3i32_var2'
-  v3i32_var2 = (0).xxx;
-  ^
-hlsl.hlsl:19:3: error: use of undeclared identifier 'v3i32_var3'
-  v3i32_var3 = (0).xxx;
-  ^
-hlsl.hlsl:20:3: error: use of undeclared identifier 'v3u32_var1'
-  v3u32_var1 = (0u).xxx;
-  ^
-hlsl.hlsl:21:3: error: use of undeclared identifier 'v3u32_var2'
-  v3u32_var2 = (0u).xxx;
-  ^
-hlsl.hlsl:22:3: error: use of undeclared identifier 'v3u32_var3'
-  v3u32_var3 = (0u).xxx;
-  ^
-
diff --git a/test/tint/types/module_scope_var_conversions.wgsl.expected.ir.fxc.hlsl b/test/tint/types/module_scope_var_conversions.wgsl.expected.ir.fxc.hlsl
index d2362e9..5bcaa20 100644
--- a/test/tint/types/module_scope_var_conversions.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/types/module_scope_var_conversions.wgsl.expected.ir.fxc.hlsl
@@ -1,5 +1,24 @@
-SKIP: FAILED
 
+static bool bool_var1 = true;
+static bool bool_var2 = true;
+static bool bool_var3 = true;
+static int i32_var1 = 1;
+static int i32_var2 = 1;
+static int i32_var3 = 1;
+static uint u32_var1 = 1u;
+static uint u32_var2 = 1u;
+static uint u32_var3 = 1u;
+static bool3 v3bool_var1 = (true).xxx;
+static bool3 v3bool_var2 = (true).xxx;
+static bool3 v3bool_var3 = (true).xxx;
+static int3 v3i32_var1 = (1).xxx;
+static int3 v3i32_var2 = (1).xxx;
+static int3 v3i32_var3 = (1).xxx;
+static uint3 v3u32_var1 = (1u).xxx;
+static uint3 v3u32_var2 = (1u).xxx;
+static uint3 v3u32_var3 = (1u).xxx;
+static bool3 v3bool_var4 = (true).xxx;
+static bool4 v4bool_var5 = bool4(true, false, true, false);
 [numthreads(1, 1, 1)]
 void main() {
   bool_var1 = false;
diff --git a/test/tint/types/module_scope_var_initializers.wgsl.expected.ir.dxc.hlsl b/test/tint/types/module_scope_var_initializers.wgsl.expected.ir.dxc.hlsl
index 0ba40c6..393d477 100644
--- a/test/tint/types/module_scope_var_initializers.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/types/module_scope_var_initializers.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,33 @@
-SKIP: FAILED
+struct S {
+  float a;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+
+static bool bool_var = false;
+static int i32_var = 0;
+static uint u32_var = 0u;
+static float f32_var = 0.0f;
+static int2 v2i32_var = (0).xx;
+static uint3 v3u32_var = (0u).xxx;
+static float4 v4f32_var = (0.0f).xxxx;
+static float2x3 m2x3_var = float2x3((0.0f).xxx, (0.0f).xxx);
+static const float v[4] = (float[4])0;
+static float arr_var[4] = v;
+static const S v_1 = {0.0f};
+static S struct_var = v_1;
+[numthreads(1, 1, 1)]
+void main() {
+  bool_var = false;
+  i32_var = 0;
+  u32_var = 0u;
+  f32_var = 0.0f;
+  v2i32_var = (0).xx;
+  v3u32_var = (0u).xxx;
+  v4f32_var = (0.0f).xxxx;
+  m2x3_var = float2x3((0.0f).xxx, (0.0f).xxx);
+  float v_2[4] = (float[4])0;
+  arr_var = v_2;
+  S v_3 = (S)0;
+  struct_var = v_3;
+}
+
diff --git a/test/tint/types/module_scope_var_initializers.wgsl.expected.ir.fxc.hlsl b/test/tint/types/module_scope_var_initializers.wgsl.expected.ir.fxc.hlsl
index 0ba40c6..393d477 100644
--- a/test/tint/types/module_scope_var_initializers.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/types/module_scope_var_initializers.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,33 @@
-SKIP: FAILED
+struct S {
+  float a;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+
+static bool bool_var = false;
+static int i32_var = 0;
+static uint u32_var = 0u;
+static float f32_var = 0.0f;
+static int2 v2i32_var = (0).xx;
+static uint3 v3u32_var = (0u).xxx;
+static float4 v4f32_var = (0.0f).xxxx;
+static float2x3 m2x3_var = float2x3((0.0f).xxx, (0.0f).xxx);
+static const float v[4] = (float[4])0;
+static float arr_var[4] = v;
+static const S v_1 = {0.0f};
+static S struct_var = v_1;
+[numthreads(1, 1, 1)]
+void main() {
+  bool_var = false;
+  i32_var = 0;
+  u32_var = 0u;
+  f32_var = 0.0f;
+  v2i32_var = (0).xx;
+  v3u32_var = (0u).xxx;
+  v4f32_var = (0.0f).xxxx;
+  m2x3_var = float2x3((0.0f).xxx, (0.0f).xxx);
+  float v_2[4] = (float[4])0;
+  arr_var = v_2;
+  S v_3 = (S)0;
+  struct_var = v_3;
+}
+
diff --git a/test/tint/types/module_scope_vars_pointers.wgsl.expected.ir.dxc.hlsl b/test/tint/types/module_scope_vars_pointers.wgsl.expected.ir.dxc.hlsl
index a139eef..74ad4fb 100644
--- a/test/tint/types/module_scope_vars_pointers.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/types/module_scope_vars_pointers.wgsl.expected.ir.dxc.hlsl
@@ -1,18 +1,23 @@
-SKIP: FAILED
+struct main_inputs {
+  uint tint_local_index : SV_GroupIndex;
+};
 
-[numthreads(1, 1, 1)]
-void main() {
+
+static float p = 0.0f;
+groupshared float w;
+void main_inner(uint tint_local_index) {
+  if ((tint_local_index == 0u)) {
+    w = 0.0f;
+  }
+  GroupMemoryBarrierWithGroupSync();
   float p_ptr = p;
   float w_ptr = w;
   float x = (p_ptr + w_ptr);
   p_ptr = x;
 }
 
-DXC validation failure:
-hlsl.hlsl:3:17: error: use of undeclared identifier 'p'
-  float p_ptr = p;
-                ^
-hlsl.hlsl:4:17: error: use of undeclared identifier 'w'
-  float w_ptr = w;
-                ^
+[numthreads(1, 1, 1)]
+void main(main_inputs inputs) {
+  main_inner(inputs.tint_local_index);
+}
 
diff --git a/test/tint/types/module_scope_vars_pointers.wgsl.expected.ir.fxc.hlsl b/test/tint/types/module_scope_vars_pointers.wgsl.expected.ir.fxc.hlsl
index 77d35e5..74ad4fb 100644
--- a/test/tint/types/module_scope_vars_pointers.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/types/module_scope_vars_pointers.wgsl.expected.ir.fxc.hlsl
@@ -1,10 +1,23 @@
-SKIP: FAILED
+struct main_inputs {
+  uint tint_local_index : SV_GroupIndex;
+};
 
-[numthreads(1, 1, 1)]
-void main() {
+
+static float p = 0.0f;
+groupshared float w;
+void main_inner(uint tint_local_index) {
+  if ((tint_local_index == 0u)) {
+    w = 0.0f;
+  }
+  GroupMemoryBarrierWithGroupSync();
   float p_ptr = p;
   float w_ptr = w;
   float x = (p_ptr + w_ptr);
   p_ptr = x;
 }
 
+[numthreads(1, 1, 1)]
+void main(main_inputs inputs) {
+  main_inner(inputs.tint_local_index);
+}
+
diff --git a/test/tint/types/sampler.wgsl.expected.ir.dxc.hlsl b/test/tint/types/sampler.wgsl.expected.ir.dxc.hlsl
index 6739938..58230f6 100644
--- a/test/tint/types/sampler.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/types/sampler.wgsl.expected.ir.dxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureSample
+..\..\src\tint\lang\hlsl\writer\printer\printer.cc:1010 internal compiler error: TINT_UNREACHABLE unhandled: textureSample
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/types/sampler.wgsl.expected.ir.fxc.hlsl b/test/tint/types/sampler.wgsl.expected.ir.fxc.hlsl
index 6739938..58230f6 100644
--- a/test/tint/types/sampler.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/types/sampler.wgsl.expected.ir.fxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureSample
+..\..\src\tint\lang\hlsl\writer\printer\printer.cc:1010 internal compiler error: TINT_UNREACHABLE unhandled: textureSample
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/types/short_names/short_names.wgsl.expected.ir.dxc.hlsl b/test/tint/types/short_names/short_names.wgsl.expected.ir.dxc.hlsl
index 54fc7a0..690f09c 100644
--- a/test/tint/types/short_names/short_names.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/types/short_names/short_names.wgsl.expected.ir.dxc.hlsl
@@ -1,11 +1,18 @@
-SKIP: FAILED
+struct main_outputs {
+  float4 tint_symbol : SV_Position;
+};
 
-float4 main() {
+struct main_inputs {
+  uint VertexIndex : SV_VertexID;
+};
+
+
+float4 main_inner(uint VertexIndex) {
   return float4(0.0f, 0.0f, 0.0f, 1.0f);
 }
 
-DXC validation failure:
-hlsl.hlsl:1:1: error: Semantic must be defined for all outputs of an entry function or patch constant function
-float4 main() {
-^
+main_outputs main(main_inputs inputs) {
+  main_outputs v = {main_inner(inputs.VertexIndex)};
+  return v;
+}
 
diff --git a/test/tint/types/short_names/short_names.wgsl.expected.ir.fxc.hlsl b/test/tint/types/short_names/short_names.wgsl.expected.ir.fxc.hlsl
index d4824c6..690f09c 100644
--- a/test/tint/types/short_names/short_names.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/types/short_names/short_names.wgsl.expected.ir.fxc.hlsl
@@ -1,4 +1,18 @@
-float4 main() {
+struct main_outputs {
+  float4 tint_symbol : SV_Position;
+};
+
+struct main_inputs {
+  uint VertexIndex : SV_VertexID;
+};
+
+
+float4 main_inner(uint VertexIndex) {
   return float4(0.0f, 0.0f, 0.0f, 1.0f);
 }
 
+main_outputs main(main_inputs inputs) {
+  main_outputs v = {main_inner(inputs.VertexIndex)};
+  return v;
+}
+
diff --git a/test/tint/types/struct_members.wgsl.expected.ir.dxc.hlsl b/test/tint/types/struct_members.wgsl.expected.ir.dxc.hlsl
index 0ba40c6..0f360cc 100644
--- a/test/tint/types/struct_members.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/types/struct_members.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,23 @@
-SKIP: FAILED
+struct S_inner {
+  float a;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct S {
+  bool member_bool;
+  int member_i32;
+  uint member_u32;
+  float member_f32;
+  int2 member_v2i32;
+  uint3 member_v3u32;
+  float4 member_v4f32;
+  float2x3 member_m2x3;
+  float member_arr[4];
+  S_inner member_struct;
+};
+
+
+[numthreads(1, 1, 1)]
+void main() {
+  S s = (S)0;
+}
+
diff --git a/test/tint/types/struct_members.wgsl.expected.ir.fxc.hlsl b/test/tint/types/struct_members.wgsl.expected.ir.fxc.hlsl
index 0ba40c6..0f360cc 100644
--- a/test/tint/types/struct_members.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/types/struct_members.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,23 @@
-SKIP: FAILED
+struct S_inner {
+  float a;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct S {
+  bool member_bool;
+  int member_i32;
+  uint member_u32;
+  float member_f32;
+  int2 member_v2i32;
+  uint3 member_v3u32;
+  float4 member_v4f32;
+  float2x3 member_m2x3;
+  float member_arr[4];
+  S_inner member_struct;
+};
+
+
+[numthreads(1, 1, 1)]
+void main() {
+  S s = (S)0;
+}
+
diff --git a/test/tint/types/texture/depth/2d.wgsl.expected.ir.dxc.hlsl b/test/tint/types/texture/depth/2d.wgsl.expected.ir.dxc.hlsl
index 1fac62e..564abe5 100644
--- a/test/tint/types/texture/depth/2d.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/types/texture/depth/2d.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,10 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureDimensions
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+Texture2D t_f : register(t0);
+[numthreads(1, 1, 1)]
+void main() {
+  Texture2D v = t_f;
+  uint3 v_1 = (0u).xxx;
+  v.GetDimensions(uint(0), v_1[0u], v_1[1u], v_1[2u]);
+  uint2 dims = v_1.xy;
+}
+
diff --git a/test/tint/types/texture/depth/2d.wgsl.expected.ir.fxc.hlsl b/test/tint/types/texture/depth/2d.wgsl.expected.ir.fxc.hlsl
index 1fac62e..564abe5 100644
--- a/test/tint/types/texture/depth/2d.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/types/texture/depth/2d.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,10 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureDimensions
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+Texture2D t_f : register(t0);
+[numthreads(1, 1, 1)]
+void main() {
+  Texture2D v = t_f;
+  uint3 v_1 = (0u).xxx;
+  v.GetDimensions(uint(0), v_1[0u], v_1[1u], v_1[2u]);
+  uint2 dims = v_1.xy;
+}
+
diff --git a/test/tint/types/texture/depth/2d_array.wgsl.expected.ir.dxc.hlsl b/test/tint/types/texture/depth/2d_array.wgsl.expected.ir.dxc.hlsl
index 1fac62e..f08a856 100644
--- a/test/tint/types/texture/depth/2d_array.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/types/texture/depth/2d_array.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,10 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureDimensions
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+Texture2DArray t_f : register(t0);
+[numthreads(1, 1, 1)]
+void main() {
+  Texture2DArray v = t_f;
+  uint4 v_1 = (0u).xxxx;
+  v.GetDimensions(uint(0), v_1[0u], v_1[1u], v_1[2u], v_1[3u]);
+  uint2 dims = v_1.xy;
+}
+
diff --git a/test/tint/types/texture/depth/2d_array.wgsl.expected.ir.fxc.hlsl b/test/tint/types/texture/depth/2d_array.wgsl.expected.ir.fxc.hlsl
index 1fac62e..f08a856 100644
--- a/test/tint/types/texture/depth/2d_array.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/types/texture/depth/2d_array.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,10 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureDimensions
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+Texture2DArray t_f : register(t0);
+[numthreads(1, 1, 1)]
+void main() {
+  Texture2DArray v = t_f;
+  uint4 v_1 = (0u).xxxx;
+  v.GetDimensions(uint(0), v_1[0u], v_1[1u], v_1[2u], v_1[3u]);
+  uint2 dims = v_1.xy;
+}
+
diff --git a/test/tint/types/texture/depth/cube.wgsl.expected.ir.dxc.hlsl b/test/tint/types/texture/depth/cube.wgsl.expected.ir.dxc.hlsl
index 1fac62e..0c29612 100644
--- a/test/tint/types/texture/depth/cube.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/types/texture/depth/cube.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,10 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureDimensions
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+TextureCube t_f : register(t0);
+[numthreads(1, 1, 1)]
+void main() {
+  TextureCube v = t_f;
+  uint3 v_1 = (0u).xxx;
+  v.GetDimensions(uint(0), v_1[0u], v_1[1u], v_1[2u]);
+  uint2 dims = v_1.xy;
+}
+
diff --git a/test/tint/types/texture/depth/cube.wgsl.expected.ir.fxc.hlsl b/test/tint/types/texture/depth/cube.wgsl.expected.ir.fxc.hlsl
index 1fac62e..0c29612 100644
--- a/test/tint/types/texture/depth/cube.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/types/texture/depth/cube.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,10 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureDimensions
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+TextureCube t_f : register(t0);
+[numthreads(1, 1, 1)]
+void main() {
+  TextureCube v = t_f;
+  uint3 v_1 = (0u).xxx;
+  v.GetDimensions(uint(0), v_1[0u], v_1[1u], v_1[2u]);
+  uint2 dims = v_1.xy;
+}
+
diff --git a/test/tint/types/texture/depth/cube_array.wgsl.expected.ir.dxc.hlsl b/test/tint/types/texture/depth/cube_array.wgsl.expected.ir.dxc.hlsl
index 1fac62e..4a68e30 100644
--- a/test/tint/types/texture/depth/cube_array.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/types/texture/depth/cube_array.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,10 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureDimensions
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+TextureCubeArray t_f : register(t0);
+[numthreads(1, 1, 1)]
+void main() {
+  TextureCubeArray v = t_f;
+  uint4 v_1 = (0u).xxxx;
+  v.GetDimensions(uint(0), v_1[0u], v_1[1u], v_1[2u], v_1[3u]);
+  uint2 dims = v_1.xy;
+}
+
diff --git a/test/tint/types/texture/depth/cube_array.wgsl.expected.ir.fxc.hlsl b/test/tint/types/texture/depth/cube_array.wgsl.expected.ir.fxc.hlsl
index 1fac62e..4a68e30 100644
--- a/test/tint/types/texture/depth/cube_array.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/types/texture/depth/cube_array.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,10 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureDimensions
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+TextureCubeArray t_f : register(t0);
+[numthreads(1, 1, 1)]
+void main() {
+  TextureCubeArray v = t_f;
+  uint4 v_1 = (0u).xxxx;
+  v.GetDimensions(uint(0), v_1[0u], v_1[1u], v_1[2u], v_1[3u]);
+  uint2 dims = v_1.xy;
+}
+
diff --git a/test/tint/types/texture/multisampled/2d.wgsl.expected.ir.dxc.hlsl b/test/tint/types/texture/multisampled/2d.wgsl.expected.ir.dxc.hlsl
index 1fac62e..1ff7a9b 100644
--- a/test/tint/types/texture/multisampled/2d.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/types/texture/multisampled/2d.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,17 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureDimensions
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+Texture2DMS<float4> t_f : register(t0);
+Texture2DMS<int4> t_i : register(t1);
+Texture2DMS<uint4> t_u : register(t2);
+[numthreads(1, 1, 1)]
+void main() {
+  uint3 v = (0u).xxx;
+  t_f.GetDimensions(v[0u], v[1u], v[2u]);
+  uint2 fdims = v.xy;
+  uint3 v_1 = (0u).xxx;
+  t_i.GetDimensions(v_1[0u], v_1[1u], v_1[2u]);
+  uint2 idims = v_1.xy;
+  uint3 v_2 = (0u).xxx;
+  t_u.GetDimensions(v_2[0u], v_2[1u], v_2[2u]);
+  uint2 udims = v_2.xy;
+}
+
diff --git a/test/tint/types/texture/multisampled/2d.wgsl.expected.ir.fxc.hlsl b/test/tint/types/texture/multisampled/2d.wgsl.expected.ir.fxc.hlsl
index 1fac62e..1ff7a9b 100644
--- a/test/tint/types/texture/multisampled/2d.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/types/texture/multisampled/2d.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,17 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureDimensions
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+Texture2DMS<float4> t_f : register(t0);
+Texture2DMS<int4> t_i : register(t1);
+Texture2DMS<uint4> t_u : register(t2);
+[numthreads(1, 1, 1)]
+void main() {
+  uint3 v = (0u).xxx;
+  t_f.GetDimensions(v[0u], v[1u], v[2u]);
+  uint2 fdims = v.xy;
+  uint3 v_1 = (0u).xxx;
+  t_i.GetDimensions(v_1[0u], v_1[1u], v_1[2u]);
+  uint2 idims = v_1.xy;
+  uint3 v_2 = (0u).xxx;
+  t_u.GetDimensions(v_2[0u], v_2[1u], v_2[2u]);
+  uint2 udims = v_2.xy;
+}
+
diff --git a/test/tint/types/texture/sampled/1d.wgsl.expected.ir.dxc.hlsl b/test/tint/types/texture/sampled/1d.wgsl.expected.ir.dxc.hlsl
index 1fac62e..4c5d754 100644
--- a/test/tint/types/texture/sampled/1d.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/types/texture/sampled/1d.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,80 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureDimensions
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+
+@group(0) @binding(0) var t_f : texture_1d<f32>;
+
+@group(0) @binding(1) var t_i : texture_1d<i32>;
+
+@group(0) @binding(2) var t_u : texture_1d<u32>;
+
+@compute @workgroup_size(1)
+fn main() {
+  var fdims = textureDimensions(t_f, 1);
+  var idims = textureDimensions(t_i, 1);
+  var udims = textureDimensions(t_u, 1);
+}
+
+Failed to generate: :17:45 error: var: initializer type 'vec2<u32>' does not match store type 'u32'
+    %fdims:ptr<function, u32, read_write> = var, %12
+                                            ^^^
+
+:8:3 note: in block
+  $B2: {
+  ^^^
+
+:26:45 error: var: initializer type 'vec2<u32>' does not match store type 'u32'
+    %idims:ptr<function, u32, read_write> = var, %21
+                                            ^^^
+
+:8:3 note: in block
+  $B2: {
+  ^^^
+
+:35:45 error: var: initializer type 'vec2<u32>' does not match store type 'u32'
+    %udims:ptr<function, u32, read_write> = var, %30
+                                            ^^^
+
+:8:3 note: in block
+  $B2: {
+  ^^^
+
+note: # Disassembly
+$B1: {  # root
+  %t_f:ptr<handle, texture_1d<f32>, read> = var @binding_point(0, 0)
+  %t_i:ptr<handle, texture_1d<i32>, read> = var @binding_point(0, 1)
+  %t_u:ptr<handle, texture_1d<u32>, read> = var @binding_point(0, 2)
+}
+
+%main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B2: {
+    %5:texture_1d<f32> = load %t_f
+    %6:u32 = convert 1i
+    %7:ptr<function, vec2<u32>, read_write> = var
+    %8:ptr<function, u32, read_write> = access %7, 0u
+    %9:ptr<function, u32, read_write> = access %7, 1u
+    %10:void = %5.GetDimensions %6, %8, %9
+    %11:vec2<u32> = load %7
+    %12:vec2<u32> = swizzle %11, x
+    %fdims:ptr<function, u32, read_write> = var, %12
+    %14:texture_1d<i32> = load %t_i
+    %15:u32 = convert 1i
+    %16:ptr<function, vec2<u32>, read_write> = var
+    %17:ptr<function, u32, read_write> = access %16, 0u
+    %18:ptr<function, u32, read_write> = access %16, 1u
+    %19:void = %14.GetDimensions %15, %17, %18
+    %20:vec2<u32> = load %16
+    %21:vec2<u32> = swizzle %20, x
+    %idims:ptr<function, u32, read_write> = var, %21
+    %23:texture_1d<u32> = load %t_u
+    %24:u32 = convert 1i
+    %25:ptr<function, vec2<u32>, read_write> = var
+    %26:ptr<function, u32, read_write> = access %25, 0u
+    %27:ptr<function, u32, read_write> = access %25, 1u
+    %28:void = %23.GetDimensions %24, %26, %27
+    %29:vec2<u32> = load %25
+    %30:vec2<u32> = swizzle %29, x
+    %udims:ptr<function, u32, read_write> = var, %30
+    ret
+  }
+}
+
diff --git a/test/tint/types/texture/sampled/1d.wgsl.expected.ir.fxc.hlsl b/test/tint/types/texture/sampled/1d.wgsl.expected.ir.fxc.hlsl
index 1fac62e..4c5d754 100644
--- a/test/tint/types/texture/sampled/1d.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/types/texture/sampled/1d.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,80 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureDimensions
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+
+@group(0) @binding(0) var t_f : texture_1d<f32>;
+
+@group(0) @binding(1) var t_i : texture_1d<i32>;
+
+@group(0) @binding(2) var t_u : texture_1d<u32>;
+
+@compute @workgroup_size(1)
+fn main() {
+  var fdims = textureDimensions(t_f, 1);
+  var idims = textureDimensions(t_i, 1);
+  var udims = textureDimensions(t_u, 1);
+}
+
+Failed to generate: :17:45 error: var: initializer type 'vec2<u32>' does not match store type 'u32'
+    %fdims:ptr<function, u32, read_write> = var, %12
+                                            ^^^
+
+:8:3 note: in block
+  $B2: {
+  ^^^
+
+:26:45 error: var: initializer type 'vec2<u32>' does not match store type 'u32'
+    %idims:ptr<function, u32, read_write> = var, %21
+                                            ^^^
+
+:8:3 note: in block
+  $B2: {
+  ^^^
+
+:35:45 error: var: initializer type 'vec2<u32>' does not match store type 'u32'
+    %udims:ptr<function, u32, read_write> = var, %30
+                                            ^^^
+
+:8:3 note: in block
+  $B2: {
+  ^^^
+
+note: # Disassembly
+$B1: {  # root
+  %t_f:ptr<handle, texture_1d<f32>, read> = var @binding_point(0, 0)
+  %t_i:ptr<handle, texture_1d<i32>, read> = var @binding_point(0, 1)
+  %t_u:ptr<handle, texture_1d<u32>, read> = var @binding_point(0, 2)
+}
+
+%main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B2: {
+    %5:texture_1d<f32> = load %t_f
+    %6:u32 = convert 1i
+    %7:ptr<function, vec2<u32>, read_write> = var
+    %8:ptr<function, u32, read_write> = access %7, 0u
+    %9:ptr<function, u32, read_write> = access %7, 1u
+    %10:void = %5.GetDimensions %6, %8, %9
+    %11:vec2<u32> = load %7
+    %12:vec2<u32> = swizzle %11, x
+    %fdims:ptr<function, u32, read_write> = var, %12
+    %14:texture_1d<i32> = load %t_i
+    %15:u32 = convert 1i
+    %16:ptr<function, vec2<u32>, read_write> = var
+    %17:ptr<function, u32, read_write> = access %16, 0u
+    %18:ptr<function, u32, read_write> = access %16, 1u
+    %19:void = %14.GetDimensions %15, %17, %18
+    %20:vec2<u32> = load %16
+    %21:vec2<u32> = swizzle %20, x
+    %idims:ptr<function, u32, read_write> = var, %21
+    %23:texture_1d<u32> = load %t_u
+    %24:u32 = convert 1i
+    %25:ptr<function, vec2<u32>, read_write> = var
+    %26:ptr<function, u32, read_write> = access %25, 0u
+    %27:ptr<function, u32, read_write> = access %25, 1u
+    %28:void = %23.GetDimensions %24, %26, %27
+    %29:vec2<u32> = load %25
+    %30:vec2<u32> = swizzle %29, x
+    %udims:ptr<function, u32, read_write> = var, %30
+    ret
+  }
+}
+
diff --git a/test/tint/types/texture/sampled/2d.wgsl.expected.ir.dxc.hlsl b/test/tint/types/texture/sampled/2d.wgsl.expected.ir.dxc.hlsl
index 1fac62e..03afd1a 100644
--- a/test/tint/types/texture/sampled/2d.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/types/texture/sampled/2d.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,20 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureDimensions
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+Texture2D<float4> t_f : register(t0);
+Texture2D<int4> t_i : register(t1);
+Texture2D<uint4> t_u : register(t2);
+[numthreads(1, 1, 1)]
+void main() {
+  Texture2D<float4> v = t_f;
+  uint3 v_1 = (0u).xxx;
+  v.GetDimensions(uint(1), v_1[0u], v_1[1u], v_1[2u]);
+  uint2 fdims = v_1.xy;
+  Texture2D<int4> v_2 = t_i;
+  uint3 v_3 = (0u).xxx;
+  v_2.GetDimensions(uint(1), v_3[0u], v_3[1u], v_3[2u]);
+  uint2 idims = v_3.xy;
+  Texture2D<uint4> v_4 = t_u;
+  uint3 v_5 = (0u).xxx;
+  v_4.GetDimensions(uint(1), v_5[0u], v_5[1u], v_5[2u]);
+  uint2 udims = v_5.xy;
+}
+
diff --git a/test/tint/types/texture/sampled/2d.wgsl.expected.ir.fxc.hlsl b/test/tint/types/texture/sampled/2d.wgsl.expected.ir.fxc.hlsl
index 1fac62e..03afd1a 100644
--- a/test/tint/types/texture/sampled/2d.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/types/texture/sampled/2d.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,20 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureDimensions
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+Texture2D<float4> t_f : register(t0);
+Texture2D<int4> t_i : register(t1);
+Texture2D<uint4> t_u : register(t2);
+[numthreads(1, 1, 1)]
+void main() {
+  Texture2D<float4> v = t_f;
+  uint3 v_1 = (0u).xxx;
+  v.GetDimensions(uint(1), v_1[0u], v_1[1u], v_1[2u]);
+  uint2 fdims = v_1.xy;
+  Texture2D<int4> v_2 = t_i;
+  uint3 v_3 = (0u).xxx;
+  v_2.GetDimensions(uint(1), v_3[0u], v_3[1u], v_3[2u]);
+  uint2 idims = v_3.xy;
+  Texture2D<uint4> v_4 = t_u;
+  uint3 v_5 = (0u).xxx;
+  v_4.GetDimensions(uint(1), v_5[0u], v_5[1u], v_5[2u]);
+  uint2 udims = v_5.xy;
+}
+
diff --git a/test/tint/types/texture/sampled/2d_array.wgsl.expected.ir.dxc.hlsl b/test/tint/types/texture/sampled/2d_array.wgsl.expected.ir.dxc.hlsl
index 1fac62e..0dde841 100644
--- a/test/tint/types/texture/sampled/2d_array.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/types/texture/sampled/2d_array.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,20 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureDimensions
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+Texture2DArray<float4> t_f : register(t0);
+Texture2DArray<int4> t_i : register(t1);
+Texture2DArray<uint4> t_u : register(t2);
+[numthreads(1, 1, 1)]
+void main() {
+  Texture2DArray<float4> v = t_f;
+  uint4 v_1 = (0u).xxxx;
+  v.GetDimensions(uint(1), v_1[0u], v_1[1u], v_1[2u], v_1[3u]);
+  uint2 fdims = v_1.xy;
+  Texture2DArray<int4> v_2 = t_i;
+  uint4 v_3 = (0u).xxxx;
+  v_2.GetDimensions(uint(1), v_3[0u], v_3[1u], v_3[2u], v_3[3u]);
+  uint2 idims = v_3.xy;
+  Texture2DArray<uint4> v_4 = t_u;
+  uint4 v_5 = (0u).xxxx;
+  v_4.GetDimensions(uint(1), v_5[0u], v_5[1u], v_5[2u], v_5[3u]);
+  uint2 udims = v_5.xy;
+}
+
diff --git a/test/tint/types/texture/sampled/2d_array.wgsl.expected.ir.fxc.hlsl b/test/tint/types/texture/sampled/2d_array.wgsl.expected.ir.fxc.hlsl
index 1fac62e..0dde841 100644
--- a/test/tint/types/texture/sampled/2d_array.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/types/texture/sampled/2d_array.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,20 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureDimensions
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+Texture2DArray<float4> t_f : register(t0);
+Texture2DArray<int4> t_i : register(t1);
+Texture2DArray<uint4> t_u : register(t2);
+[numthreads(1, 1, 1)]
+void main() {
+  Texture2DArray<float4> v = t_f;
+  uint4 v_1 = (0u).xxxx;
+  v.GetDimensions(uint(1), v_1[0u], v_1[1u], v_1[2u], v_1[3u]);
+  uint2 fdims = v_1.xy;
+  Texture2DArray<int4> v_2 = t_i;
+  uint4 v_3 = (0u).xxxx;
+  v_2.GetDimensions(uint(1), v_3[0u], v_3[1u], v_3[2u], v_3[3u]);
+  uint2 idims = v_3.xy;
+  Texture2DArray<uint4> v_4 = t_u;
+  uint4 v_5 = (0u).xxxx;
+  v_4.GetDimensions(uint(1), v_5[0u], v_5[1u], v_5[2u], v_5[3u]);
+  uint2 udims = v_5.xy;
+}
+
diff --git a/test/tint/types/texture/sampled/3d.wgsl.expected.ir.dxc.hlsl b/test/tint/types/texture/sampled/3d.wgsl.expected.ir.dxc.hlsl
index 1fac62e..d4d3cc9 100644
--- a/test/tint/types/texture/sampled/3d.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/types/texture/sampled/3d.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,86 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureDimensions
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+
+@group(0) @binding(0) var t_f : texture_3d<f32>;
+
+@group(0) @binding(1) var t_i : texture_3d<i32>;
+
+@group(0) @binding(2) var t_u : texture_3d<u32>;
+
+@compute @workgroup_size(1)
+fn main() {
+  var fdims = textureDimensions(t_f, 1);
+  var idims = textureDimensions(t_i, 1);
+  var udims = textureDimensions(t_u, 1);
+}
+
+Failed to generate: :19:51 error: var: initializer type 'vec2<u32>' does not match store type 'vec3<u32>'
+    %fdims:ptr<function, vec3<u32>, read_write> = var, %14
+                                                  ^^^
+
+:8:3 note: in block
+  $B2: {
+  ^^^
+
+:30:51 error: var: initializer type 'vec2<u32>' does not match store type 'vec3<u32>'
+    %idims:ptr<function, vec3<u32>, read_write> = var, %25
+                                                  ^^^
+
+:8:3 note: in block
+  $B2: {
+  ^^^
+
+:41:51 error: var: initializer type 'vec2<u32>' does not match store type 'vec3<u32>'
+    %udims:ptr<function, vec3<u32>, read_write> = var, %36
+                                                  ^^^
+
+:8:3 note: in block
+  $B2: {
+  ^^^
+
+note: # Disassembly
+$B1: {  # root
+  %t_f:ptr<handle, texture_3d<f32>, read> = var @binding_point(0, 0)
+  %t_i:ptr<handle, texture_3d<i32>, read> = var @binding_point(0, 1)
+  %t_u:ptr<handle, texture_3d<u32>, read> = var @binding_point(0, 2)
+}
+
+%main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B2: {
+    %5:texture_3d<f32> = load %t_f
+    %6:u32 = convert 1i
+    %7:ptr<function, vec4<u32>, read_write> = var
+    %8:ptr<function, u32, read_write> = access %7, 0u
+    %9:ptr<function, u32, read_write> = access %7, 1u
+    %10:ptr<function, u32, read_write> = access %7, 2u
+    %11:ptr<function, u32, read_write> = access %7, 3u
+    %12:void = %5.GetDimensions %6, %8, %9, %10, %11
+    %13:vec4<u32> = load %7
+    %14:vec2<u32> = swizzle %13, xyz
+    %fdims:ptr<function, vec3<u32>, read_write> = var, %14
+    %16:texture_3d<i32> = load %t_i
+    %17:u32 = convert 1i
+    %18:ptr<function, vec4<u32>, read_write> = var
+    %19:ptr<function, u32, read_write> = access %18, 0u
+    %20:ptr<function, u32, read_write> = access %18, 1u
+    %21:ptr<function, u32, read_write> = access %18, 2u
+    %22:ptr<function, u32, read_write> = access %18, 3u
+    %23:void = %16.GetDimensions %17, %19, %20, %21, %22
+    %24:vec4<u32> = load %18
+    %25:vec2<u32> = swizzle %24, xyz
+    %idims:ptr<function, vec3<u32>, read_write> = var, %25
+    %27:texture_3d<u32> = load %t_u
+    %28:u32 = convert 1i
+    %29:ptr<function, vec4<u32>, read_write> = var
+    %30:ptr<function, u32, read_write> = access %29, 0u
+    %31:ptr<function, u32, read_write> = access %29, 1u
+    %32:ptr<function, u32, read_write> = access %29, 2u
+    %33:ptr<function, u32, read_write> = access %29, 3u
+    %34:void = %27.GetDimensions %28, %30, %31, %32, %33
+    %35:vec4<u32> = load %29
+    %36:vec2<u32> = swizzle %35, xyz
+    %udims:ptr<function, vec3<u32>, read_write> = var, %36
+    ret
+  }
+}
+
diff --git a/test/tint/types/texture/sampled/3d.wgsl.expected.ir.fxc.hlsl b/test/tint/types/texture/sampled/3d.wgsl.expected.ir.fxc.hlsl
index 1fac62e..d4d3cc9 100644
--- a/test/tint/types/texture/sampled/3d.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/types/texture/sampled/3d.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,86 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureDimensions
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+
+@group(0) @binding(0) var t_f : texture_3d<f32>;
+
+@group(0) @binding(1) var t_i : texture_3d<i32>;
+
+@group(0) @binding(2) var t_u : texture_3d<u32>;
+
+@compute @workgroup_size(1)
+fn main() {
+  var fdims = textureDimensions(t_f, 1);
+  var idims = textureDimensions(t_i, 1);
+  var udims = textureDimensions(t_u, 1);
+}
+
+Failed to generate: :19:51 error: var: initializer type 'vec2<u32>' does not match store type 'vec3<u32>'
+    %fdims:ptr<function, vec3<u32>, read_write> = var, %14
+                                                  ^^^
+
+:8:3 note: in block
+  $B2: {
+  ^^^
+
+:30:51 error: var: initializer type 'vec2<u32>' does not match store type 'vec3<u32>'
+    %idims:ptr<function, vec3<u32>, read_write> = var, %25
+                                                  ^^^
+
+:8:3 note: in block
+  $B2: {
+  ^^^
+
+:41:51 error: var: initializer type 'vec2<u32>' does not match store type 'vec3<u32>'
+    %udims:ptr<function, vec3<u32>, read_write> = var, %36
+                                                  ^^^
+
+:8:3 note: in block
+  $B2: {
+  ^^^
+
+note: # Disassembly
+$B1: {  # root
+  %t_f:ptr<handle, texture_3d<f32>, read> = var @binding_point(0, 0)
+  %t_i:ptr<handle, texture_3d<i32>, read> = var @binding_point(0, 1)
+  %t_u:ptr<handle, texture_3d<u32>, read> = var @binding_point(0, 2)
+}
+
+%main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B2: {
+    %5:texture_3d<f32> = load %t_f
+    %6:u32 = convert 1i
+    %7:ptr<function, vec4<u32>, read_write> = var
+    %8:ptr<function, u32, read_write> = access %7, 0u
+    %9:ptr<function, u32, read_write> = access %7, 1u
+    %10:ptr<function, u32, read_write> = access %7, 2u
+    %11:ptr<function, u32, read_write> = access %7, 3u
+    %12:void = %5.GetDimensions %6, %8, %9, %10, %11
+    %13:vec4<u32> = load %7
+    %14:vec2<u32> = swizzle %13, xyz
+    %fdims:ptr<function, vec3<u32>, read_write> = var, %14
+    %16:texture_3d<i32> = load %t_i
+    %17:u32 = convert 1i
+    %18:ptr<function, vec4<u32>, read_write> = var
+    %19:ptr<function, u32, read_write> = access %18, 0u
+    %20:ptr<function, u32, read_write> = access %18, 1u
+    %21:ptr<function, u32, read_write> = access %18, 2u
+    %22:ptr<function, u32, read_write> = access %18, 3u
+    %23:void = %16.GetDimensions %17, %19, %20, %21, %22
+    %24:vec4<u32> = load %18
+    %25:vec2<u32> = swizzle %24, xyz
+    %idims:ptr<function, vec3<u32>, read_write> = var, %25
+    %27:texture_3d<u32> = load %t_u
+    %28:u32 = convert 1i
+    %29:ptr<function, vec4<u32>, read_write> = var
+    %30:ptr<function, u32, read_write> = access %29, 0u
+    %31:ptr<function, u32, read_write> = access %29, 1u
+    %32:ptr<function, u32, read_write> = access %29, 2u
+    %33:ptr<function, u32, read_write> = access %29, 3u
+    %34:void = %27.GetDimensions %28, %30, %31, %32, %33
+    %35:vec4<u32> = load %29
+    %36:vec2<u32> = swizzle %35, xyz
+    %udims:ptr<function, vec3<u32>, read_write> = var, %36
+    ret
+  }
+}
+
diff --git a/test/tint/types/texture/sampled/cube.wgsl.expected.ir.dxc.hlsl b/test/tint/types/texture/sampled/cube.wgsl.expected.ir.dxc.hlsl
index 1fac62e..7fc989b 100644
--- a/test/tint/types/texture/sampled/cube.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/types/texture/sampled/cube.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,20 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureDimensions
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+TextureCube<float4> t_f : register(t0);
+TextureCube<int4> t_i : register(t1);
+TextureCube<uint4> t_u : register(t2);
+[numthreads(1, 1, 1)]
+void main() {
+  TextureCube<float4> v = t_f;
+  uint3 v_1 = (0u).xxx;
+  v.GetDimensions(uint(1), v_1[0u], v_1[1u], v_1[2u]);
+  uint2 fdims = v_1.xy;
+  TextureCube<int4> v_2 = t_i;
+  uint3 v_3 = (0u).xxx;
+  v_2.GetDimensions(uint(1), v_3[0u], v_3[1u], v_3[2u]);
+  uint2 idims = v_3.xy;
+  TextureCube<uint4> v_4 = t_u;
+  uint3 v_5 = (0u).xxx;
+  v_4.GetDimensions(uint(1), v_5[0u], v_5[1u], v_5[2u]);
+  uint2 udims = v_5.xy;
+}
+
diff --git a/test/tint/types/texture/sampled/cube.wgsl.expected.ir.fxc.hlsl b/test/tint/types/texture/sampled/cube.wgsl.expected.ir.fxc.hlsl
index 1fac62e..7fc989b 100644
--- a/test/tint/types/texture/sampled/cube.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/types/texture/sampled/cube.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,20 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureDimensions
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+TextureCube<float4> t_f : register(t0);
+TextureCube<int4> t_i : register(t1);
+TextureCube<uint4> t_u : register(t2);
+[numthreads(1, 1, 1)]
+void main() {
+  TextureCube<float4> v = t_f;
+  uint3 v_1 = (0u).xxx;
+  v.GetDimensions(uint(1), v_1[0u], v_1[1u], v_1[2u]);
+  uint2 fdims = v_1.xy;
+  TextureCube<int4> v_2 = t_i;
+  uint3 v_3 = (0u).xxx;
+  v_2.GetDimensions(uint(1), v_3[0u], v_3[1u], v_3[2u]);
+  uint2 idims = v_3.xy;
+  TextureCube<uint4> v_4 = t_u;
+  uint3 v_5 = (0u).xxx;
+  v_4.GetDimensions(uint(1), v_5[0u], v_5[1u], v_5[2u]);
+  uint2 udims = v_5.xy;
+}
+
diff --git a/test/tint/types/texture/sampled/cube_array.wgsl.expected.ir.dxc.hlsl b/test/tint/types/texture/sampled/cube_array.wgsl.expected.ir.dxc.hlsl
index 1fac62e..96b7b64 100644
--- a/test/tint/types/texture/sampled/cube_array.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/types/texture/sampled/cube_array.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,20 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureDimensions
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+TextureCubeArray<float4> t_f : register(t0);
+TextureCubeArray<int4> t_i : register(t1);
+TextureCubeArray<uint4> t_u : register(t2);
+[numthreads(1, 1, 1)]
+void main() {
+  TextureCubeArray<float4> v = t_f;
+  uint4 v_1 = (0u).xxxx;
+  v.GetDimensions(uint(1), v_1[0u], v_1[1u], v_1[2u], v_1[3u]);
+  uint2 fdims = v_1.xy;
+  TextureCubeArray<int4> v_2 = t_i;
+  uint4 v_3 = (0u).xxxx;
+  v_2.GetDimensions(uint(1), v_3[0u], v_3[1u], v_3[2u], v_3[3u]);
+  uint2 idims = v_3.xy;
+  TextureCubeArray<uint4> v_4 = t_u;
+  uint4 v_5 = (0u).xxxx;
+  v_4.GetDimensions(uint(1), v_5[0u], v_5[1u], v_5[2u], v_5[3u]);
+  uint2 udims = v_5.xy;
+}
+
diff --git a/test/tint/types/texture/sampled/cube_array.wgsl.expected.ir.fxc.hlsl b/test/tint/types/texture/sampled/cube_array.wgsl.expected.ir.fxc.hlsl
index 1fac62e..96b7b64 100644
--- a/test/tint/types/texture/sampled/cube_array.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/types/texture/sampled/cube_array.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,20 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureDimensions
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+TextureCubeArray<float4> t_f : register(t0);
+TextureCubeArray<int4> t_i : register(t1);
+TextureCubeArray<uint4> t_u : register(t2);
+[numthreads(1, 1, 1)]
+void main() {
+  TextureCubeArray<float4> v = t_f;
+  uint4 v_1 = (0u).xxxx;
+  v.GetDimensions(uint(1), v_1[0u], v_1[1u], v_1[2u], v_1[3u]);
+  uint2 fdims = v_1.xy;
+  TextureCubeArray<int4> v_2 = t_i;
+  uint4 v_3 = (0u).xxxx;
+  v_2.GetDimensions(uint(1), v_3[0u], v_3[1u], v_3[2u], v_3[3u]);
+  uint2 idims = v_3.xy;
+  TextureCubeArray<uint4> v_4 = t_u;
+  uint4 v_5 = (0u).xxxx;
+  v_4.GetDimensions(uint(1), v_5[0u], v_5[1u], v_5[2u], v_5[3u]);
+  uint2 udims = v_5.xy;
+}
+
diff --git a/test/tint/types/texture/storage/1d.wgsl.expected.ir.dxc.hlsl b/test/tint/types/texture/storage/1d.wgsl.expected.ir.dxc.hlsl
index 1fac62e..4f1ba9d 100644
--- a/test/tint/types/texture/storage/1d.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/types/texture/storage/1d.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,69 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureDimensions
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWTexture1D<float4> t_rgba8unorm : register(u0);
+RWTexture1D<float4> t_rgba8snorm : register(u1);
+RWTexture1D<uint4> t_rgba8uint : register(u2);
+RWTexture1D<int4> t_rgba8sint : register(u3);
+RWTexture1D<uint4> t_rgba16uint : register(u4);
+RWTexture1D<int4> t_rgba16sint : register(u5);
+RWTexture1D<float4> t_rgba16float : register(u6);
+RWTexture1D<uint4> t_r32uint : register(u7);
+RWTexture1D<int4> t_r32sint : register(u8);
+RWTexture1D<float4> t_r32float : register(u9);
+RWTexture1D<uint4> t_rg32uint : register(u10);
+RWTexture1D<int4> t_rg32sint : register(u11);
+RWTexture1D<float4> t_rg32float : register(u12);
+RWTexture1D<uint4> t_rgba32uint : register(u13);
+RWTexture1D<int4> t_rgba32sint : register(u14);
+RWTexture1D<float4> t_rgba32float : register(u15);
+[numthreads(1, 1, 1)]
+void main() {
+  uint v = 0u;
+  t_rgba8unorm.GetDimensions(v);
+  uint dim1 = v;
+  uint v_1 = 0u;
+  t_rgba8snorm.GetDimensions(v_1);
+  uint dim2 = v_1;
+  uint v_2 = 0u;
+  t_rgba8uint.GetDimensions(v_2);
+  uint dim3 = v_2;
+  uint v_3 = 0u;
+  t_rgba8sint.GetDimensions(v_3);
+  uint dim4 = v_3;
+  uint v_4 = 0u;
+  t_rgba16uint.GetDimensions(v_4);
+  uint dim5 = v_4;
+  uint v_5 = 0u;
+  t_rgba16sint.GetDimensions(v_5);
+  uint dim6 = v_5;
+  uint v_6 = 0u;
+  t_rgba16float.GetDimensions(v_6);
+  uint dim7 = v_6;
+  uint v_7 = 0u;
+  t_r32uint.GetDimensions(v_7);
+  uint dim8 = v_7;
+  uint v_8 = 0u;
+  t_r32sint.GetDimensions(v_8);
+  uint dim9 = v_8;
+  uint v_9 = 0u;
+  t_r32float.GetDimensions(v_9);
+  uint dim10 = v_9;
+  uint v_10 = 0u;
+  t_rg32uint.GetDimensions(v_10);
+  uint dim11 = v_10;
+  uint v_11 = 0u;
+  t_rg32sint.GetDimensions(v_11);
+  uint dim12 = v_11;
+  uint v_12 = 0u;
+  t_rg32float.GetDimensions(v_12);
+  uint dim13 = v_12;
+  uint v_13 = 0u;
+  t_rgba32uint.GetDimensions(v_13);
+  uint dim14 = v_13;
+  uint v_14 = 0u;
+  t_rgba32sint.GetDimensions(v_14);
+  uint dim15 = v_14;
+  uint v_15 = 0u;
+  t_rgba32float.GetDimensions(v_15);
+  uint dim16 = v_15;
+}
+
diff --git a/test/tint/types/texture/storage/1d.wgsl.expected.ir.fxc.hlsl b/test/tint/types/texture/storage/1d.wgsl.expected.ir.fxc.hlsl
index 1fac62e..4f1ba9d 100644
--- a/test/tint/types/texture/storage/1d.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/types/texture/storage/1d.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,69 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureDimensions
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWTexture1D<float4> t_rgba8unorm : register(u0);
+RWTexture1D<float4> t_rgba8snorm : register(u1);
+RWTexture1D<uint4> t_rgba8uint : register(u2);
+RWTexture1D<int4> t_rgba8sint : register(u3);
+RWTexture1D<uint4> t_rgba16uint : register(u4);
+RWTexture1D<int4> t_rgba16sint : register(u5);
+RWTexture1D<float4> t_rgba16float : register(u6);
+RWTexture1D<uint4> t_r32uint : register(u7);
+RWTexture1D<int4> t_r32sint : register(u8);
+RWTexture1D<float4> t_r32float : register(u9);
+RWTexture1D<uint4> t_rg32uint : register(u10);
+RWTexture1D<int4> t_rg32sint : register(u11);
+RWTexture1D<float4> t_rg32float : register(u12);
+RWTexture1D<uint4> t_rgba32uint : register(u13);
+RWTexture1D<int4> t_rgba32sint : register(u14);
+RWTexture1D<float4> t_rgba32float : register(u15);
+[numthreads(1, 1, 1)]
+void main() {
+  uint v = 0u;
+  t_rgba8unorm.GetDimensions(v);
+  uint dim1 = v;
+  uint v_1 = 0u;
+  t_rgba8snorm.GetDimensions(v_1);
+  uint dim2 = v_1;
+  uint v_2 = 0u;
+  t_rgba8uint.GetDimensions(v_2);
+  uint dim3 = v_2;
+  uint v_3 = 0u;
+  t_rgba8sint.GetDimensions(v_3);
+  uint dim4 = v_3;
+  uint v_4 = 0u;
+  t_rgba16uint.GetDimensions(v_4);
+  uint dim5 = v_4;
+  uint v_5 = 0u;
+  t_rgba16sint.GetDimensions(v_5);
+  uint dim6 = v_5;
+  uint v_6 = 0u;
+  t_rgba16float.GetDimensions(v_6);
+  uint dim7 = v_6;
+  uint v_7 = 0u;
+  t_r32uint.GetDimensions(v_7);
+  uint dim8 = v_7;
+  uint v_8 = 0u;
+  t_r32sint.GetDimensions(v_8);
+  uint dim9 = v_8;
+  uint v_9 = 0u;
+  t_r32float.GetDimensions(v_9);
+  uint dim10 = v_9;
+  uint v_10 = 0u;
+  t_rg32uint.GetDimensions(v_10);
+  uint dim11 = v_10;
+  uint v_11 = 0u;
+  t_rg32sint.GetDimensions(v_11);
+  uint dim12 = v_11;
+  uint v_12 = 0u;
+  t_rg32float.GetDimensions(v_12);
+  uint dim13 = v_12;
+  uint v_13 = 0u;
+  t_rgba32uint.GetDimensions(v_13);
+  uint dim14 = v_13;
+  uint v_14 = 0u;
+  t_rgba32sint.GetDimensions(v_14);
+  uint dim15 = v_14;
+  uint v_15 = 0u;
+  t_rgba32float.GetDimensions(v_15);
+  uint dim16 = v_15;
+}
+
diff --git a/test/tint/types/texture/storage/2d.wgsl.expected.ir.dxc.hlsl b/test/tint/types/texture/storage/2d.wgsl.expected.ir.dxc.hlsl
index 1fac62e..643c740 100644
--- a/test/tint/types/texture/storage/2d.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/types/texture/storage/2d.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,69 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureDimensions
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWTexture2D<float4> t_rgba8unorm : register(u0);
+RWTexture2D<float4> t_rgba8snorm : register(u1);
+RWTexture2D<uint4> t_rgba8uint : register(u2);
+RWTexture2D<int4> t_rgba8sint : register(u3);
+RWTexture2D<uint4> t_rgba16uint : register(u4);
+RWTexture2D<int4> t_rgba16sint : register(u5);
+RWTexture2D<float4> t_rgba16float : register(u6);
+RWTexture2D<uint4> t_r32uint : register(u7);
+RWTexture2D<int4> t_r32sint : register(u8);
+RWTexture2D<float4> t_r32float : register(u9);
+RWTexture2D<uint4> t_rg32uint : register(u10);
+RWTexture2D<int4> t_rg32sint : register(u11);
+RWTexture2D<float4> t_rg32float : register(u12);
+RWTexture2D<uint4> t_rgba32uint : register(u13);
+RWTexture2D<int4> t_rgba32sint : register(u14);
+RWTexture2D<float4> t_rgba32float : register(u15);
+[numthreads(1, 1, 1)]
+void main() {
+  uint2 v = (0u).xx;
+  t_rgba8unorm.GetDimensions(v[0u], v[1u]);
+  uint2 dim1 = v;
+  uint2 v_1 = (0u).xx;
+  t_rgba8snorm.GetDimensions(v_1[0u], v_1[1u]);
+  uint2 dim2 = v_1;
+  uint2 v_2 = (0u).xx;
+  t_rgba8uint.GetDimensions(v_2[0u], v_2[1u]);
+  uint2 dim3 = v_2;
+  uint2 v_3 = (0u).xx;
+  t_rgba8sint.GetDimensions(v_3[0u], v_3[1u]);
+  uint2 dim4 = v_3;
+  uint2 v_4 = (0u).xx;
+  t_rgba16uint.GetDimensions(v_4[0u], v_4[1u]);
+  uint2 dim5 = v_4;
+  uint2 v_5 = (0u).xx;
+  t_rgba16sint.GetDimensions(v_5[0u], v_5[1u]);
+  uint2 dim6 = v_5;
+  uint2 v_6 = (0u).xx;
+  t_rgba16float.GetDimensions(v_6[0u], v_6[1u]);
+  uint2 dim7 = v_6;
+  uint2 v_7 = (0u).xx;
+  t_r32uint.GetDimensions(v_7[0u], v_7[1u]);
+  uint2 dim8 = v_7;
+  uint2 v_8 = (0u).xx;
+  t_r32sint.GetDimensions(v_8[0u], v_8[1u]);
+  uint2 dim9 = v_8;
+  uint2 v_9 = (0u).xx;
+  t_r32float.GetDimensions(v_9[0u], v_9[1u]);
+  uint2 dim10 = v_9;
+  uint2 v_10 = (0u).xx;
+  t_rg32uint.GetDimensions(v_10[0u], v_10[1u]);
+  uint2 dim11 = v_10;
+  uint2 v_11 = (0u).xx;
+  t_rg32sint.GetDimensions(v_11[0u], v_11[1u]);
+  uint2 dim12 = v_11;
+  uint2 v_12 = (0u).xx;
+  t_rg32float.GetDimensions(v_12[0u], v_12[1u]);
+  uint2 dim13 = v_12;
+  uint2 v_13 = (0u).xx;
+  t_rgba32uint.GetDimensions(v_13[0u], v_13[1u]);
+  uint2 dim14 = v_13;
+  uint2 v_14 = (0u).xx;
+  t_rgba32sint.GetDimensions(v_14[0u], v_14[1u]);
+  uint2 dim15 = v_14;
+  uint2 v_15 = (0u).xx;
+  t_rgba32float.GetDimensions(v_15[0u], v_15[1u]);
+  uint2 dim16 = v_15;
+}
+
diff --git a/test/tint/types/texture/storage/2d.wgsl.expected.ir.fxc.hlsl b/test/tint/types/texture/storage/2d.wgsl.expected.ir.fxc.hlsl
index 1fac62e..643c740 100644
--- a/test/tint/types/texture/storage/2d.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/types/texture/storage/2d.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,69 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureDimensions
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWTexture2D<float4> t_rgba8unorm : register(u0);
+RWTexture2D<float4> t_rgba8snorm : register(u1);
+RWTexture2D<uint4> t_rgba8uint : register(u2);
+RWTexture2D<int4> t_rgba8sint : register(u3);
+RWTexture2D<uint4> t_rgba16uint : register(u4);
+RWTexture2D<int4> t_rgba16sint : register(u5);
+RWTexture2D<float4> t_rgba16float : register(u6);
+RWTexture2D<uint4> t_r32uint : register(u7);
+RWTexture2D<int4> t_r32sint : register(u8);
+RWTexture2D<float4> t_r32float : register(u9);
+RWTexture2D<uint4> t_rg32uint : register(u10);
+RWTexture2D<int4> t_rg32sint : register(u11);
+RWTexture2D<float4> t_rg32float : register(u12);
+RWTexture2D<uint4> t_rgba32uint : register(u13);
+RWTexture2D<int4> t_rgba32sint : register(u14);
+RWTexture2D<float4> t_rgba32float : register(u15);
+[numthreads(1, 1, 1)]
+void main() {
+  uint2 v = (0u).xx;
+  t_rgba8unorm.GetDimensions(v[0u], v[1u]);
+  uint2 dim1 = v;
+  uint2 v_1 = (0u).xx;
+  t_rgba8snorm.GetDimensions(v_1[0u], v_1[1u]);
+  uint2 dim2 = v_1;
+  uint2 v_2 = (0u).xx;
+  t_rgba8uint.GetDimensions(v_2[0u], v_2[1u]);
+  uint2 dim3 = v_2;
+  uint2 v_3 = (0u).xx;
+  t_rgba8sint.GetDimensions(v_3[0u], v_3[1u]);
+  uint2 dim4 = v_3;
+  uint2 v_4 = (0u).xx;
+  t_rgba16uint.GetDimensions(v_4[0u], v_4[1u]);
+  uint2 dim5 = v_4;
+  uint2 v_5 = (0u).xx;
+  t_rgba16sint.GetDimensions(v_5[0u], v_5[1u]);
+  uint2 dim6 = v_5;
+  uint2 v_6 = (0u).xx;
+  t_rgba16float.GetDimensions(v_6[0u], v_6[1u]);
+  uint2 dim7 = v_6;
+  uint2 v_7 = (0u).xx;
+  t_r32uint.GetDimensions(v_7[0u], v_7[1u]);
+  uint2 dim8 = v_7;
+  uint2 v_8 = (0u).xx;
+  t_r32sint.GetDimensions(v_8[0u], v_8[1u]);
+  uint2 dim9 = v_8;
+  uint2 v_9 = (0u).xx;
+  t_r32float.GetDimensions(v_9[0u], v_9[1u]);
+  uint2 dim10 = v_9;
+  uint2 v_10 = (0u).xx;
+  t_rg32uint.GetDimensions(v_10[0u], v_10[1u]);
+  uint2 dim11 = v_10;
+  uint2 v_11 = (0u).xx;
+  t_rg32sint.GetDimensions(v_11[0u], v_11[1u]);
+  uint2 dim12 = v_11;
+  uint2 v_12 = (0u).xx;
+  t_rg32float.GetDimensions(v_12[0u], v_12[1u]);
+  uint2 dim13 = v_12;
+  uint2 v_13 = (0u).xx;
+  t_rgba32uint.GetDimensions(v_13[0u], v_13[1u]);
+  uint2 dim14 = v_13;
+  uint2 v_14 = (0u).xx;
+  t_rgba32sint.GetDimensions(v_14[0u], v_14[1u]);
+  uint2 dim15 = v_14;
+  uint2 v_15 = (0u).xx;
+  t_rgba32float.GetDimensions(v_15[0u], v_15[1u]);
+  uint2 dim16 = v_15;
+}
+
diff --git a/test/tint/types/texture/storage/2d_array.wgsl.expected.ir.dxc.hlsl b/test/tint/types/texture/storage/2d_array.wgsl.expected.ir.dxc.hlsl
index 1fac62e..d099886 100644
--- a/test/tint/types/texture/storage/2d_array.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/types/texture/storage/2d_array.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,69 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureDimensions
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWTexture2DArray<float4> t_rgba8unorm : register(u0);
+RWTexture2DArray<float4> t_rgba8snorm : register(u1);
+RWTexture2DArray<uint4> t_rgba8uint : register(u2);
+RWTexture2DArray<int4> t_rgba8sint : register(u3);
+RWTexture2DArray<uint4> t_rgba16uint : register(u4);
+RWTexture2DArray<int4> t_rgba16sint : register(u5);
+RWTexture2DArray<float4> t_rgba16float : register(u6);
+RWTexture2DArray<uint4> t_r32uint : register(u7);
+RWTexture2DArray<int4> t_r32sint : register(u8);
+RWTexture2DArray<float4> t_r32float : register(u9);
+RWTexture2DArray<uint4> t_rg32uint : register(u10);
+RWTexture2DArray<int4> t_rg32sint : register(u11);
+RWTexture2DArray<float4> t_rg32float : register(u12);
+RWTexture2DArray<uint4> t_rgba32uint : register(u13);
+RWTexture2DArray<int4> t_rgba32sint : register(u14);
+RWTexture2DArray<float4> t_rgba32float : register(u15);
+[numthreads(1, 1, 1)]
+void main() {
+  uint3 v = (0u).xxx;
+  t_rgba8unorm.GetDimensions(v[0u], v[1u], v[2u]);
+  uint2 dim1 = v.xy;
+  uint3 v_1 = (0u).xxx;
+  t_rgba8snorm.GetDimensions(v_1[0u], v_1[1u], v_1[2u]);
+  uint2 dim2 = v_1.xy;
+  uint3 v_2 = (0u).xxx;
+  t_rgba8uint.GetDimensions(v_2[0u], v_2[1u], v_2[2u]);
+  uint2 dim3 = v_2.xy;
+  uint3 v_3 = (0u).xxx;
+  t_rgba8sint.GetDimensions(v_3[0u], v_3[1u], v_3[2u]);
+  uint2 dim4 = v_3.xy;
+  uint3 v_4 = (0u).xxx;
+  t_rgba16uint.GetDimensions(v_4[0u], v_4[1u], v_4[2u]);
+  uint2 dim5 = v_4.xy;
+  uint3 v_5 = (0u).xxx;
+  t_rgba16sint.GetDimensions(v_5[0u], v_5[1u], v_5[2u]);
+  uint2 dim6 = v_5.xy;
+  uint3 v_6 = (0u).xxx;
+  t_rgba16float.GetDimensions(v_6[0u], v_6[1u], v_6[2u]);
+  uint2 dim7 = v_6.xy;
+  uint3 v_7 = (0u).xxx;
+  t_r32uint.GetDimensions(v_7[0u], v_7[1u], v_7[2u]);
+  uint2 dim8 = v_7.xy;
+  uint3 v_8 = (0u).xxx;
+  t_r32sint.GetDimensions(v_8[0u], v_8[1u], v_8[2u]);
+  uint2 dim9 = v_8.xy;
+  uint3 v_9 = (0u).xxx;
+  t_r32float.GetDimensions(v_9[0u], v_9[1u], v_9[2u]);
+  uint2 dim10 = v_9.xy;
+  uint3 v_10 = (0u).xxx;
+  t_rg32uint.GetDimensions(v_10[0u], v_10[1u], v_10[2u]);
+  uint2 dim11 = v_10.xy;
+  uint3 v_11 = (0u).xxx;
+  t_rg32sint.GetDimensions(v_11[0u], v_11[1u], v_11[2u]);
+  uint2 dim12 = v_11.xy;
+  uint3 v_12 = (0u).xxx;
+  t_rg32float.GetDimensions(v_12[0u], v_12[1u], v_12[2u]);
+  uint2 dim13 = v_12.xy;
+  uint3 v_13 = (0u).xxx;
+  t_rgba32uint.GetDimensions(v_13[0u], v_13[1u], v_13[2u]);
+  uint2 dim14 = v_13.xy;
+  uint3 v_14 = (0u).xxx;
+  t_rgba32sint.GetDimensions(v_14[0u], v_14[1u], v_14[2u]);
+  uint2 dim15 = v_14.xy;
+  uint3 v_15 = (0u).xxx;
+  t_rgba32float.GetDimensions(v_15[0u], v_15[1u], v_15[2u]);
+  uint2 dim16 = v_15.xy;
+}
+
diff --git a/test/tint/types/texture/storage/2d_array.wgsl.expected.ir.fxc.hlsl b/test/tint/types/texture/storage/2d_array.wgsl.expected.ir.fxc.hlsl
index 1fac62e..d099886 100644
--- a/test/tint/types/texture/storage/2d_array.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/types/texture/storage/2d_array.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,69 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureDimensions
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWTexture2DArray<float4> t_rgba8unorm : register(u0);
+RWTexture2DArray<float4> t_rgba8snorm : register(u1);
+RWTexture2DArray<uint4> t_rgba8uint : register(u2);
+RWTexture2DArray<int4> t_rgba8sint : register(u3);
+RWTexture2DArray<uint4> t_rgba16uint : register(u4);
+RWTexture2DArray<int4> t_rgba16sint : register(u5);
+RWTexture2DArray<float4> t_rgba16float : register(u6);
+RWTexture2DArray<uint4> t_r32uint : register(u7);
+RWTexture2DArray<int4> t_r32sint : register(u8);
+RWTexture2DArray<float4> t_r32float : register(u9);
+RWTexture2DArray<uint4> t_rg32uint : register(u10);
+RWTexture2DArray<int4> t_rg32sint : register(u11);
+RWTexture2DArray<float4> t_rg32float : register(u12);
+RWTexture2DArray<uint4> t_rgba32uint : register(u13);
+RWTexture2DArray<int4> t_rgba32sint : register(u14);
+RWTexture2DArray<float4> t_rgba32float : register(u15);
+[numthreads(1, 1, 1)]
+void main() {
+  uint3 v = (0u).xxx;
+  t_rgba8unorm.GetDimensions(v[0u], v[1u], v[2u]);
+  uint2 dim1 = v.xy;
+  uint3 v_1 = (0u).xxx;
+  t_rgba8snorm.GetDimensions(v_1[0u], v_1[1u], v_1[2u]);
+  uint2 dim2 = v_1.xy;
+  uint3 v_2 = (0u).xxx;
+  t_rgba8uint.GetDimensions(v_2[0u], v_2[1u], v_2[2u]);
+  uint2 dim3 = v_2.xy;
+  uint3 v_3 = (0u).xxx;
+  t_rgba8sint.GetDimensions(v_3[0u], v_3[1u], v_3[2u]);
+  uint2 dim4 = v_3.xy;
+  uint3 v_4 = (0u).xxx;
+  t_rgba16uint.GetDimensions(v_4[0u], v_4[1u], v_4[2u]);
+  uint2 dim5 = v_4.xy;
+  uint3 v_5 = (0u).xxx;
+  t_rgba16sint.GetDimensions(v_5[0u], v_5[1u], v_5[2u]);
+  uint2 dim6 = v_5.xy;
+  uint3 v_6 = (0u).xxx;
+  t_rgba16float.GetDimensions(v_6[0u], v_6[1u], v_6[2u]);
+  uint2 dim7 = v_6.xy;
+  uint3 v_7 = (0u).xxx;
+  t_r32uint.GetDimensions(v_7[0u], v_7[1u], v_7[2u]);
+  uint2 dim8 = v_7.xy;
+  uint3 v_8 = (0u).xxx;
+  t_r32sint.GetDimensions(v_8[0u], v_8[1u], v_8[2u]);
+  uint2 dim9 = v_8.xy;
+  uint3 v_9 = (0u).xxx;
+  t_r32float.GetDimensions(v_9[0u], v_9[1u], v_9[2u]);
+  uint2 dim10 = v_9.xy;
+  uint3 v_10 = (0u).xxx;
+  t_rg32uint.GetDimensions(v_10[0u], v_10[1u], v_10[2u]);
+  uint2 dim11 = v_10.xy;
+  uint3 v_11 = (0u).xxx;
+  t_rg32sint.GetDimensions(v_11[0u], v_11[1u], v_11[2u]);
+  uint2 dim12 = v_11.xy;
+  uint3 v_12 = (0u).xxx;
+  t_rg32float.GetDimensions(v_12[0u], v_12[1u], v_12[2u]);
+  uint2 dim13 = v_12.xy;
+  uint3 v_13 = (0u).xxx;
+  t_rgba32uint.GetDimensions(v_13[0u], v_13[1u], v_13[2u]);
+  uint2 dim14 = v_13.xy;
+  uint3 v_14 = (0u).xxx;
+  t_rgba32sint.GetDimensions(v_14[0u], v_14[1u], v_14[2u]);
+  uint2 dim15 = v_14.xy;
+  uint3 v_15 = (0u).xxx;
+  t_rgba32float.GetDimensions(v_15[0u], v_15[1u], v_15[2u]);
+  uint2 dim16 = v_15.xy;
+}
+
diff --git a/test/tint/types/texture/storage/3d.wgsl.expected.ir.dxc.hlsl b/test/tint/types/texture/storage/3d.wgsl.expected.ir.dxc.hlsl
index 1fac62e..78df5dc 100644
--- a/test/tint/types/texture/storage/3d.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/types/texture/storage/3d.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,69 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureDimensions
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWTexture3D<float4> t_rgba8unorm : register(u0);
+RWTexture3D<float4> t_rgba8snorm : register(u1);
+RWTexture3D<uint4> t_rgba8uint : register(u2);
+RWTexture3D<int4> t_rgba8sint : register(u3);
+RWTexture3D<uint4> t_rgba16uint : register(u4);
+RWTexture3D<int4> t_rgba16sint : register(u5);
+RWTexture3D<float4> t_rgba16float : register(u6);
+RWTexture3D<uint4> t_r32uint : register(u7);
+RWTexture3D<int4> t_r32sint : register(u8);
+RWTexture3D<float4> t_r32float : register(u9);
+RWTexture3D<uint4> t_rg32uint : register(u10);
+RWTexture3D<int4> t_rg32sint : register(u11);
+RWTexture3D<float4> t_rg32float : register(u12);
+RWTexture3D<uint4> t_rgba32uint : register(u13);
+RWTexture3D<int4> t_rgba32sint : register(u14);
+RWTexture3D<float4> t_rgba32float : register(u15);
+[numthreads(1, 1, 1)]
+void main() {
+  uint3 v = (0u).xxx;
+  t_rgba8unorm.GetDimensions(v[0u], v[1u], v[2u]);
+  uint3 dim1 = v;
+  uint3 v_1 = (0u).xxx;
+  t_rgba8snorm.GetDimensions(v_1[0u], v_1[1u], v_1[2u]);
+  uint3 dim2 = v_1;
+  uint3 v_2 = (0u).xxx;
+  t_rgba8uint.GetDimensions(v_2[0u], v_2[1u], v_2[2u]);
+  uint3 dim3 = v_2;
+  uint3 v_3 = (0u).xxx;
+  t_rgba8sint.GetDimensions(v_3[0u], v_3[1u], v_3[2u]);
+  uint3 dim4 = v_3;
+  uint3 v_4 = (0u).xxx;
+  t_rgba16uint.GetDimensions(v_4[0u], v_4[1u], v_4[2u]);
+  uint3 dim5 = v_4;
+  uint3 v_5 = (0u).xxx;
+  t_rgba16sint.GetDimensions(v_5[0u], v_5[1u], v_5[2u]);
+  uint3 dim6 = v_5;
+  uint3 v_6 = (0u).xxx;
+  t_rgba16float.GetDimensions(v_6[0u], v_6[1u], v_6[2u]);
+  uint3 dim7 = v_6;
+  uint3 v_7 = (0u).xxx;
+  t_r32uint.GetDimensions(v_7[0u], v_7[1u], v_7[2u]);
+  uint3 dim8 = v_7;
+  uint3 v_8 = (0u).xxx;
+  t_r32sint.GetDimensions(v_8[0u], v_8[1u], v_8[2u]);
+  uint3 dim9 = v_8;
+  uint3 v_9 = (0u).xxx;
+  t_r32float.GetDimensions(v_9[0u], v_9[1u], v_9[2u]);
+  uint3 dim10 = v_9;
+  uint3 v_10 = (0u).xxx;
+  t_rg32uint.GetDimensions(v_10[0u], v_10[1u], v_10[2u]);
+  uint3 dim11 = v_10;
+  uint3 v_11 = (0u).xxx;
+  t_rg32sint.GetDimensions(v_11[0u], v_11[1u], v_11[2u]);
+  uint3 dim12 = v_11;
+  uint3 v_12 = (0u).xxx;
+  t_rg32float.GetDimensions(v_12[0u], v_12[1u], v_12[2u]);
+  uint3 dim13 = v_12;
+  uint3 v_13 = (0u).xxx;
+  t_rgba32uint.GetDimensions(v_13[0u], v_13[1u], v_13[2u]);
+  uint3 dim14 = v_13;
+  uint3 v_14 = (0u).xxx;
+  t_rgba32sint.GetDimensions(v_14[0u], v_14[1u], v_14[2u]);
+  uint3 dim15 = v_14;
+  uint3 v_15 = (0u).xxx;
+  t_rgba32float.GetDimensions(v_15[0u], v_15[1u], v_15[2u]);
+  uint3 dim16 = v_15;
+}
+
diff --git a/test/tint/types/texture/storage/3d.wgsl.expected.ir.fxc.hlsl b/test/tint/types/texture/storage/3d.wgsl.expected.ir.fxc.hlsl
index 1fac62e..78df5dc 100644
--- a/test/tint/types/texture/storage/3d.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/types/texture/storage/3d.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,69 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureDimensions
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+RWTexture3D<float4> t_rgba8unorm : register(u0);
+RWTexture3D<float4> t_rgba8snorm : register(u1);
+RWTexture3D<uint4> t_rgba8uint : register(u2);
+RWTexture3D<int4> t_rgba8sint : register(u3);
+RWTexture3D<uint4> t_rgba16uint : register(u4);
+RWTexture3D<int4> t_rgba16sint : register(u5);
+RWTexture3D<float4> t_rgba16float : register(u6);
+RWTexture3D<uint4> t_r32uint : register(u7);
+RWTexture3D<int4> t_r32sint : register(u8);
+RWTexture3D<float4> t_r32float : register(u9);
+RWTexture3D<uint4> t_rg32uint : register(u10);
+RWTexture3D<int4> t_rg32sint : register(u11);
+RWTexture3D<float4> t_rg32float : register(u12);
+RWTexture3D<uint4> t_rgba32uint : register(u13);
+RWTexture3D<int4> t_rgba32sint : register(u14);
+RWTexture3D<float4> t_rgba32float : register(u15);
+[numthreads(1, 1, 1)]
+void main() {
+  uint3 v = (0u).xxx;
+  t_rgba8unorm.GetDimensions(v[0u], v[1u], v[2u]);
+  uint3 dim1 = v;
+  uint3 v_1 = (0u).xxx;
+  t_rgba8snorm.GetDimensions(v_1[0u], v_1[1u], v_1[2u]);
+  uint3 dim2 = v_1;
+  uint3 v_2 = (0u).xxx;
+  t_rgba8uint.GetDimensions(v_2[0u], v_2[1u], v_2[2u]);
+  uint3 dim3 = v_2;
+  uint3 v_3 = (0u).xxx;
+  t_rgba8sint.GetDimensions(v_3[0u], v_3[1u], v_3[2u]);
+  uint3 dim4 = v_3;
+  uint3 v_4 = (0u).xxx;
+  t_rgba16uint.GetDimensions(v_4[0u], v_4[1u], v_4[2u]);
+  uint3 dim5 = v_4;
+  uint3 v_5 = (0u).xxx;
+  t_rgba16sint.GetDimensions(v_5[0u], v_5[1u], v_5[2u]);
+  uint3 dim6 = v_5;
+  uint3 v_6 = (0u).xxx;
+  t_rgba16float.GetDimensions(v_6[0u], v_6[1u], v_6[2u]);
+  uint3 dim7 = v_6;
+  uint3 v_7 = (0u).xxx;
+  t_r32uint.GetDimensions(v_7[0u], v_7[1u], v_7[2u]);
+  uint3 dim8 = v_7;
+  uint3 v_8 = (0u).xxx;
+  t_r32sint.GetDimensions(v_8[0u], v_8[1u], v_8[2u]);
+  uint3 dim9 = v_8;
+  uint3 v_9 = (0u).xxx;
+  t_r32float.GetDimensions(v_9[0u], v_9[1u], v_9[2u]);
+  uint3 dim10 = v_9;
+  uint3 v_10 = (0u).xxx;
+  t_rg32uint.GetDimensions(v_10[0u], v_10[1u], v_10[2u]);
+  uint3 dim11 = v_10;
+  uint3 v_11 = (0u).xxx;
+  t_rg32sint.GetDimensions(v_11[0u], v_11[1u], v_11[2u]);
+  uint3 dim12 = v_11;
+  uint3 v_12 = (0u).xxx;
+  t_rg32float.GetDimensions(v_12[0u], v_12[1u], v_12[2u]);
+  uint3 dim13 = v_12;
+  uint3 v_13 = (0u).xxx;
+  t_rgba32uint.GetDimensions(v_13[0u], v_13[1u], v_13[2u]);
+  uint3 dim14 = v_13;
+  uint3 v_14 = (0u).xxx;
+  t_rgba32sint.GetDimensions(v_14[0u], v_14[1u], v_14[2u]);
+  uint3 dim15 = v_14;
+  uint3 v_15 = (0u).xxx;
+  t_rgba32float.GetDimensions(v_15[0u], v_15[1u], v_15[2u]);
+  uint3 dim16 = v_15;
+}
+
diff --git a/test/tint/unicode/comments.wgsl.expected.ir.dxc.hlsl b/test/tint/unicode/comments.wgsl.expected.ir.dxc.hlsl
index b06e72e..1e2e31f 100644
--- a/test/tint/unicode/comments.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/unicode/comments.wgsl.expected.ir.dxc.hlsl
@@ -1,3 +1,4 @@
+
 void main() {
 }
 
diff --git a/test/tint/unicode/comments.wgsl.expected.ir.fxc.hlsl b/test/tint/unicode/comments.wgsl.expected.ir.fxc.hlsl
index b06e72e..1e2e31f 100644
--- a/test/tint/unicode/comments.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/unicode/comments.wgsl.expected.ir.fxc.hlsl
@@ -1,3 +1,4 @@
+
 void main() {
 }
 
diff --git a/test/tint/unicode/identifiers.wgsl.expected.ir.dxc.hlsl b/test/tint/unicode/identifiers.wgsl.expected.ir.dxc.hlsl
index 48e23f4..bc1d43d 100644
--- a/test/tint/unicode/identifiers.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/unicode/identifiers.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,10 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Convert
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+float tint_symbol_2(int tint_symbol_3) {
+  return float(tint_symbol_3);
+}
+
+void tint_symbol_4() {
+  int tint_symbol_5 = 0;
+  float tint_symbol_6 = tint_symbol_2(tint_symbol_5);
+}
+
diff --git a/test/tint/unicode/identifiers.wgsl.expected.ir.fxc.hlsl b/test/tint/unicode/identifiers.wgsl.expected.ir.fxc.hlsl
index 48e23f4..bc1d43d 100644
--- a/test/tint/unicode/identifiers.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/unicode/identifiers.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,10 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Convert
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+float tint_symbol_2(int tint_symbol_3) {
+  return float(tint_symbol_3);
+}
+
+void tint_symbol_4() {
+  int tint_symbol_5 = 0;
+  float tint_symbol_6 = tint_symbol_2(tint_symbol_5);
+}
+
diff --git a/test/tint/unittest/reader/spirv/ConvertResultSignedness_SpvParserHandleTest_SampledImageAccessTest_Variable_0.spvasm.expected.ir.dxc.hlsl b/test/tint/unittest/reader/spirv/ConvertResultSignedness_SpvParserHandleTest_SampledImageAccessTest_Variable_0.spvasm.expected.ir.dxc.hlsl
deleted file mode 100644
index fd28383..0000000
--- a/test/tint/unittest/reader/spirv/ConvertResultSignedness_SpvParserHandleTest_SampledImageAccessTest_Variable_0.spvasm.expected.ir.dxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureLoad
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/unittest/reader/spirv/ConvertResultSignedness_SpvParserHandleTest_SampledImageAccessTest_Variable_0.spvasm.expected.ir.fxc.hlsl b/test/tint/unittest/reader/spirv/ConvertResultSignedness_SpvParserHandleTest_SampledImageAccessTest_Variable_0.spvasm.expected.ir.fxc.hlsl
deleted file mode 100644
index fd28383..0000000
--- a/test/tint/unittest/reader/spirv/ConvertResultSignedness_SpvParserHandleTest_SampledImageAccessTest_Variable_0.spvasm.expected.ir.fxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureLoad
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/unittest/reader/spirv/ConvertResultSignedness_SpvParserHandleTest_SampledImageAccessTest_Variable_1.spvasm.expected.ir.dxc.hlsl b/test/tint/unittest/reader/spirv/ConvertResultSignedness_SpvParserHandleTest_SampledImageAccessTest_Variable_1.spvasm.expected.ir.dxc.hlsl
deleted file mode 100644
index fd28383..0000000
--- a/test/tint/unittest/reader/spirv/ConvertResultSignedness_SpvParserHandleTest_SampledImageAccessTest_Variable_1.spvasm.expected.ir.dxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureLoad
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/unittest/reader/spirv/ConvertResultSignedness_SpvParserHandleTest_SampledImageAccessTest_Variable_1.spvasm.expected.ir.fxc.hlsl b/test/tint/unittest/reader/spirv/ConvertResultSignedness_SpvParserHandleTest_SampledImageAccessTest_Variable_1.spvasm.expected.ir.fxc.hlsl
deleted file mode 100644
index fd28383..0000000
--- a/test/tint/unittest/reader/spirv/ConvertResultSignedness_SpvParserHandleTest_SampledImageAccessTest_Variable_1.spvasm.expected.ir.fxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureLoad
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/unittest/reader/spirv/ConvertResultSignedness_SpvParserHandleTest_SampledImageAccessTest_Variable_2.spvasm.expected.ir.dxc.hlsl b/test/tint/unittest/reader/spirv/ConvertResultSignedness_SpvParserHandleTest_SampledImageAccessTest_Variable_2.spvasm.expected.ir.dxc.hlsl
deleted file mode 100644
index fd28383..0000000
--- a/test/tint/unittest/reader/spirv/ConvertResultSignedness_SpvParserHandleTest_SampledImageAccessTest_Variable_2.spvasm.expected.ir.dxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureLoad
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/unittest/reader/spirv/ConvertResultSignedness_SpvParserHandleTest_SampledImageAccessTest_Variable_2.spvasm.expected.ir.fxc.hlsl b/test/tint/unittest/reader/spirv/ConvertResultSignedness_SpvParserHandleTest_SampledImageAccessTest_Variable_2.spvasm.expected.ir.fxc.hlsl
deleted file mode 100644
index fd28383..0000000
--- a/test/tint/unittest/reader/spirv/ConvertResultSignedness_SpvParserHandleTest_SampledImageAccessTest_Variable_2.spvasm.expected.ir.fxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureLoad
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/unittest/reader/spirv/ConvertResultSignedness_SpvParserHandleTest_SampledImageAccessTest_Variable_3.spvasm.expected.ir.dxc.hlsl b/test/tint/unittest/reader/spirv/ConvertResultSignedness_SpvParserHandleTest_SampledImageAccessTest_Variable_3.spvasm.expected.ir.dxc.hlsl
deleted file mode 100644
index fd28383..0000000
--- a/test/tint/unittest/reader/spirv/ConvertResultSignedness_SpvParserHandleTest_SampledImageAccessTest_Variable_3.spvasm.expected.ir.dxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureLoad
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/unittest/reader/spirv/ConvertResultSignedness_SpvParserHandleTest_SampledImageAccessTest_Variable_3.spvasm.expected.ir.fxc.hlsl b/test/tint/unittest/reader/spirv/ConvertResultSignedness_SpvParserHandleTest_SampledImageAccessTest_Variable_3.spvasm.expected.ir.fxc.hlsl
deleted file mode 100644
index fd28383..0000000
--- a/test/tint/unittest/reader/spirv/ConvertResultSignedness_SpvParserHandleTest_SampledImageAccessTest_Variable_3.spvasm.expected.ir.fxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureLoad
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/unittest/reader/spirv/ConvertResultSignedness_SpvParserHandleTest_SampledImageAccessTest_Variable_4.spvasm.expected.ir.dxc.hlsl b/test/tint/unittest/reader/spirv/ConvertResultSignedness_SpvParserHandleTest_SampledImageAccessTest_Variable_4.spvasm.expected.ir.dxc.hlsl
deleted file mode 100644
index fd28383..0000000
--- a/test/tint/unittest/reader/spirv/ConvertResultSignedness_SpvParserHandleTest_SampledImageAccessTest_Variable_4.spvasm.expected.ir.dxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureLoad
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/unittest/reader/spirv/ConvertResultSignedness_SpvParserHandleTest_SampledImageAccessTest_Variable_4.spvasm.expected.ir.fxc.hlsl b/test/tint/unittest/reader/spirv/ConvertResultSignedness_SpvParserHandleTest_SampledImageAccessTest_Variable_4.spvasm.expected.ir.fxc.hlsl
deleted file mode 100644
index fd28383..0000000
--- a/test/tint/unittest/reader/spirv/ConvertResultSignedness_SpvParserHandleTest_SampledImageAccessTest_Variable_4.spvasm.expected.ir.fxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureLoad
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/unittest/reader/spirv/ConvertResultSignedness_SpvParserHandleTest_SampledImageAccessTest_Variable_5.spvasm.expected.ir.dxc.hlsl b/test/tint/unittest/reader/spirv/ConvertResultSignedness_SpvParserHandleTest_SampledImageAccessTest_Variable_5.spvasm.expected.ir.dxc.hlsl
deleted file mode 100644
index fd28383..0000000
--- a/test/tint/unittest/reader/spirv/ConvertResultSignedness_SpvParserHandleTest_SampledImageAccessTest_Variable_5.spvasm.expected.ir.dxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureLoad
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/unittest/reader/spirv/ConvertResultSignedness_SpvParserHandleTest_SampledImageAccessTest_Variable_5.spvasm.expected.ir.fxc.hlsl b/test/tint/unittest/reader/spirv/ConvertResultSignedness_SpvParserHandleTest_SampledImageAccessTest_Variable_5.spvasm.expected.ir.fxc.hlsl
deleted file mode 100644
index fd28383..0000000
--- a/test/tint/unittest/reader/spirv/ConvertResultSignedness_SpvParserHandleTest_SampledImageAccessTest_Variable_5.spvasm.expected.ir.fxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureLoad
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/unittest/reader/spirv/ConvertResultSignedness_SpvParserHandleTest_SampledImageAccessTest_Variable_6.spvasm.expected.ir.dxc.hlsl b/test/tint/unittest/reader/spirv/ConvertResultSignedness_SpvParserHandleTest_SampledImageAccessTest_Variable_6.spvasm.expected.ir.dxc.hlsl
index 6739938..58230f6 100644
--- a/test/tint/unittest/reader/spirv/ConvertResultSignedness_SpvParserHandleTest_SampledImageAccessTest_Variable_6.spvasm.expected.ir.dxc.hlsl
+++ b/test/tint/unittest/reader/spirv/ConvertResultSignedness_SpvParserHandleTest_SampledImageAccessTest_Variable_6.spvasm.expected.ir.dxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureSample
+..\..\src\tint\lang\hlsl\writer\printer\printer.cc:1010 internal compiler error: TINT_UNREACHABLE unhandled: textureSample
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/unittest/reader/spirv/ConvertResultSignedness_SpvParserHandleTest_SampledImageAccessTest_Variable_6.spvasm.expected.ir.fxc.hlsl b/test/tint/unittest/reader/spirv/ConvertResultSignedness_SpvParserHandleTest_SampledImageAccessTest_Variable_6.spvasm.expected.ir.fxc.hlsl
index 6739938..58230f6 100644
--- a/test/tint/unittest/reader/spirv/ConvertResultSignedness_SpvParserHandleTest_SampledImageAccessTest_Variable_6.spvasm.expected.ir.fxc.hlsl
+++ b/test/tint/unittest/reader/spirv/ConvertResultSignedness_SpvParserHandleTest_SampledImageAccessTest_Variable_6.spvasm.expected.ir.fxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureSample
+..\..\src\tint\lang\hlsl\writer\printer\printer.cc:1010 internal compiler error: TINT_UNREACHABLE unhandled: textureSample
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/unittest/reader/spirv/ConvertUintCoords_Arrayed_SpvParserHandleTest_ImageCoordsTest_MakeCoordinateOperandsForImageAccess_0.spvasm.expected.ir.dxc.hlsl b/test/tint/unittest/reader/spirv/ConvertUintCoords_Arrayed_SpvParserHandleTest_ImageCoordsTest_MakeCoordinateOperandsForImageAccess_0.spvasm.expected.ir.dxc.hlsl
deleted file mode 100644
index fd28383..0000000
--- a/test/tint/unittest/reader/spirv/ConvertUintCoords_Arrayed_SpvParserHandleTest_ImageCoordsTest_MakeCoordinateOperandsForImageAccess_0.spvasm.expected.ir.dxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureLoad
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix 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/ConvertUintCoords_Arrayed_SpvParserHandleTest_ImageCoordsTest_MakeCoordinateOperandsForImageAccess_0.spvasm.expected.ir.fxc.hlsl b/test/tint/unittest/reader/spirv/ConvertUintCoords_Arrayed_SpvParserHandleTest_ImageCoordsTest_MakeCoordinateOperandsForImageAccess_0.spvasm.expected.ir.fxc.hlsl
deleted file mode 100644
index fd28383..0000000
--- a/test/tint/unittest/reader/spirv/ConvertUintCoords_Arrayed_SpvParserHandleTest_ImageCoordsTest_MakeCoordinateOperandsForImageAccess_0.spvasm.expected.ir.fxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureLoad
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix 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/ConvertUintCoords_Arrayed_SpvParserHandleTest_ImageCoordsTest_MakeCoordinateOperandsForImageAccess_1.spvasm.expected.ir.dxc.hlsl b/test/tint/unittest/reader/spirv/ConvertUintCoords_Arrayed_SpvParserHandleTest_ImageCoordsTest_MakeCoordinateOperandsForImageAccess_1.spvasm.expected.ir.dxc.hlsl
deleted file mode 100644
index fd28383..0000000
--- a/test/tint/unittest/reader/spirv/ConvertUintCoords_Arrayed_SpvParserHandleTest_ImageCoordsTest_MakeCoordinateOperandsForImageAccess_1.spvasm.expected.ir.dxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureLoad
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix 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/ConvertUintCoords_Arrayed_SpvParserHandleTest_ImageCoordsTest_MakeCoordinateOperandsForImageAccess_1.spvasm.expected.ir.fxc.hlsl b/test/tint/unittest/reader/spirv/ConvertUintCoords_Arrayed_SpvParserHandleTest_ImageCoordsTest_MakeCoordinateOperandsForImageAccess_1.spvasm.expected.ir.fxc.hlsl
deleted file mode 100644
index fd28383..0000000
--- a/test/tint/unittest/reader/spirv/ConvertUintCoords_Arrayed_SpvParserHandleTest_ImageCoordsTest_MakeCoordinateOperandsForImageAccess_1.spvasm.expected.ir.fxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureLoad
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix 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/ConvertUintCoords_Arrayed_SpvParserHandleTest_ImageCoordsTest_MakeCoordinateOperandsForImageAccess_2.spvasm.expected.ir.dxc.hlsl b/test/tint/unittest/reader/spirv/ConvertUintCoords_Arrayed_SpvParserHandleTest_ImageCoordsTest_MakeCoordinateOperandsForImageAccess_2.spvasm.expected.ir.dxc.hlsl
deleted file mode 100644
index 685a9ee..0000000
--- a/test/tint/unittest/reader/spirv/ConvertUintCoords_Arrayed_SpvParserHandleTest_ImageCoordsTest_MakeCoordinateOperandsForImageAccess_2.spvasm.expected.ir.dxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix 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/ConvertUintCoords_Arrayed_SpvParserHandleTest_ImageCoordsTest_MakeCoordinateOperandsForImageAccess_2.spvasm.expected.ir.fxc.hlsl b/test/tint/unittest/reader/spirv/ConvertUintCoords_Arrayed_SpvParserHandleTest_ImageCoordsTest_MakeCoordinateOperandsForImageAccess_2.spvasm.expected.ir.fxc.hlsl
deleted file mode 100644
index 685a9ee..0000000
--- a/test/tint/unittest/reader/spirv/ConvertUintCoords_Arrayed_SpvParserHandleTest_ImageCoordsTest_MakeCoordinateOperandsForImageAccess_2.spvasm.expected.ir.fxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix 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/ConvertUintCoords_NonArrayed_SpvParserHandleTest_ImageCoordsTest_MakeCoordinateOperandsForImageAccess_0.spvasm.expected.ir.dxc.hlsl b/test/tint/unittest/reader/spirv/ConvertUintCoords_NonArrayed_SpvParserHandleTest_ImageCoordsTest_MakeCoordinateOperandsForImageAccess_0.spvasm.expected.ir.dxc.hlsl
deleted file mode 100644
index fd28383..0000000
--- a/test/tint/unittest/reader/spirv/ConvertUintCoords_NonArrayed_SpvParserHandleTest_ImageCoordsTest_MakeCoordinateOperandsForImageAccess_0.spvasm.expected.ir.dxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureLoad
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix 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/ConvertUintCoords_NonArrayed_SpvParserHandleTest_ImageCoordsTest_MakeCoordinateOperandsForImageAccess_0.spvasm.expected.ir.fxc.hlsl b/test/tint/unittest/reader/spirv/ConvertUintCoords_NonArrayed_SpvParserHandleTest_ImageCoordsTest_MakeCoordinateOperandsForImageAccess_0.spvasm.expected.ir.fxc.hlsl
deleted file mode 100644
index fd28383..0000000
--- a/test/tint/unittest/reader/spirv/ConvertUintCoords_NonArrayed_SpvParserHandleTest_ImageCoordsTest_MakeCoordinateOperandsForImageAccess_0.spvasm.expected.ir.fxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureLoad
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix 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/ConvertUintCoords_NonArrayed_SpvParserHandleTest_ImageCoordsTest_MakeCoordinateOperandsForImageAccess_1.spvasm.expected.ir.dxc.hlsl b/test/tint/unittest/reader/spirv/ConvertUintCoords_NonArrayed_SpvParserHandleTest_ImageCoordsTest_MakeCoordinateOperandsForImageAccess_1.spvasm.expected.ir.dxc.hlsl
deleted file mode 100644
index fd28383..0000000
--- a/test/tint/unittest/reader/spirv/ConvertUintCoords_NonArrayed_SpvParserHandleTest_ImageCoordsTest_MakeCoordinateOperandsForImageAccess_1.spvasm.expected.ir.dxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureLoad
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix 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/ConvertUintCoords_NonArrayed_SpvParserHandleTest_ImageCoordsTest_MakeCoordinateOperandsForImageAccess_1.spvasm.expected.ir.fxc.hlsl b/test/tint/unittest/reader/spirv/ConvertUintCoords_NonArrayed_SpvParserHandleTest_ImageCoordsTest_MakeCoordinateOperandsForImageAccess_1.spvasm.expected.ir.fxc.hlsl
deleted file mode 100644
index fd28383..0000000
--- a/test/tint/unittest/reader/spirv/ConvertUintCoords_NonArrayed_SpvParserHandleTest_ImageCoordsTest_MakeCoordinateOperandsForImageAccess_1.spvasm.expected.ir.fxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureLoad
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix 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/ConvertUintCoords_NonArrayed_SpvParserHandleTest_ImageCoordsTest_MakeCoordinateOperandsForImageAccess_2.spvasm.expected.ir.dxc.hlsl b/test/tint/unittest/reader/spirv/ConvertUintCoords_NonArrayed_SpvParserHandleTest_ImageCoordsTest_MakeCoordinateOperandsForImageAccess_2.spvasm.expected.ir.dxc.hlsl
deleted file mode 100644
index 685a9ee..0000000
--- a/test/tint/unittest/reader/spirv/ConvertUintCoords_NonArrayed_SpvParserHandleTest_ImageCoordsTest_MakeCoordinateOperandsForImageAccess_2.spvasm.expected.ir.dxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix 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/ConvertUintCoords_NonArrayed_SpvParserHandleTest_ImageCoordsTest_MakeCoordinateOperandsForImageAccess_2.spvasm.expected.ir.fxc.hlsl b/test/tint/unittest/reader/spirv/ConvertUintCoords_NonArrayed_SpvParserHandleTest_ImageCoordsTest_MakeCoordinateOperandsForImageAccess_2.spvasm.expected.ir.fxc.hlsl
deleted file mode 100644
index 685a9ee..0000000
--- a/test/tint/unittest/reader/spirv/ConvertUintCoords_NonArrayed_SpvParserHandleTest_ImageCoordsTest_MakeCoordinateOperandsForImageAccess_2.spvasm.expected.ir.fxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix 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/ConvertUintCoords_NonArrayed_SpvParserHandleTest_ImageCoordsTest_MakeCoordinateOperandsForImageAccess_3.spvasm.expected.ir.dxc.hlsl b/test/tint/unittest/reader/spirv/ConvertUintCoords_NonArrayed_SpvParserHandleTest_ImageCoordsTest_MakeCoordinateOperandsForImageAccess_3.spvasm.expected.ir.dxc.hlsl
deleted file mode 100644
index fd28383..0000000
--- a/test/tint/unittest/reader/spirv/ConvertUintCoords_NonArrayed_SpvParserHandleTest_ImageCoordsTest_MakeCoordinateOperandsForImageAccess_3.spvasm.expected.ir.dxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureLoad
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix 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/ConvertUintCoords_NonArrayed_SpvParserHandleTest_ImageCoordsTest_MakeCoordinateOperandsForImageAccess_3.spvasm.expected.ir.fxc.hlsl b/test/tint/unittest/reader/spirv/ConvertUintCoords_NonArrayed_SpvParserHandleTest_ImageCoordsTest_MakeCoordinateOperandsForImageAccess_3.spvasm.expected.ir.fxc.hlsl
deleted file mode 100644
index fd28383..0000000
--- a/test/tint/unittest/reader/spirv/ConvertUintCoords_NonArrayed_SpvParserHandleTest_ImageCoordsTest_MakeCoordinateOperandsForImageAccess_3.spvasm.expected.ir.fxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureLoad
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix 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/ConvertUintCoords_NonArrayed_SpvParserHandleTest_ImageCoordsTest_MakeCoordinateOperandsForImageAccess_4.spvasm.expected.ir.dxc.hlsl b/test/tint/unittest/reader/spirv/ConvertUintCoords_NonArrayed_SpvParserHandleTest_ImageCoordsTest_MakeCoordinateOperandsForImageAccess_4.spvasm.expected.ir.dxc.hlsl
deleted file mode 100644
index fd28383..0000000
--- a/test/tint/unittest/reader/spirv/ConvertUintCoords_NonArrayed_SpvParserHandleTest_ImageCoordsTest_MakeCoordinateOperandsForImageAccess_4.spvasm.expected.ir.dxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureLoad
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix 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/ConvertUintCoords_NonArrayed_SpvParserHandleTest_ImageCoordsTest_MakeCoordinateOperandsForImageAccess_4.spvasm.expected.ir.fxc.hlsl b/test/tint/unittest/reader/spirv/ConvertUintCoords_NonArrayed_SpvParserHandleTest_ImageCoordsTest_MakeCoordinateOperandsForImageAccess_4.spvasm.expected.ir.fxc.hlsl
deleted file mode 100644
index fd28383..0000000
--- a/test/tint/unittest/reader/spirv/ConvertUintCoords_NonArrayed_SpvParserHandleTest_ImageCoordsTest_MakeCoordinateOperandsForImageAccess_4.spvasm.expected.ir.fxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureLoad
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix 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/ConvertUintCoords_NonArrayed_SpvParserHandleTest_ImageCoordsTest_MakeCoordinateOperandsForImageAccess_5.spvasm.expected.ir.dxc.hlsl b/test/tint/unittest/reader/spirv/ConvertUintCoords_NonArrayed_SpvParserHandleTest_ImageCoordsTest_MakeCoordinateOperandsForImageAccess_5.spvasm.expected.ir.dxc.hlsl
deleted file mode 100644
index 685a9ee..0000000
--- a/test/tint/unittest/reader/spirv/ConvertUintCoords_NonArrayed_SpvParserHandleTest_ImageCoordsTest_MakeCoordinateOperandsForImageAccess_5.spvasm.expected.ir.dxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix 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/ConvertUintCoords_NonArrayed_SpvParserHandleTest_ImageCoordsTest_MakeCoordinateOperandsForImageAccess_5.spvasm.expected.ir.fxc.hlsl b/test/tint/unittest/reader/spirv/ConvertUintCoords_NonArrayed_SpvParserHandleTest_ImageCoordsTest_MakeCoordinateOperandsForImageAccess_5.spvasm.expected.ir.fxc.hlsl
deleted file mode 100644
index 685a9ee..0000000
--- a/test/tint/unittest/reader/spirv/ConvertUintCoords_NonArrayed_SpvParserHandleTest_ImageCoordsTest_MakeCoordinateOperandsForImageAccess_5.spvasm.expected.ir.fxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix 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/Good_1D_SpvParserHandleTest_ImageCoordsTest_MakeCoordinateOperandsForImageAccess_0.spvasm.expected.ir.dxc.hlsl b/test/tint/unittest/reader/spirv/Good_1D_SpvParserHandleTest_ImageCoordsTest_MakeCoordinateOperandsForImageAccess_0.spvasm.expected.ir.dxc.hlsl
index 6739938..58230f6 100644
--- a/test/tint/unittest/reader/spirv/Good_1D_SpvParserHandleTest_ImageCoordsTest_MakeCoordinateOperandsForImageAccess_0.spvasm.expected.ir.dxc.hlsl
+++ b/test/tint/unittest/reader/spirv/Good_1D_SpvParserHandleTest_ImageCoordsTest_MakeCoordinateOperandsForImageAccess_0.spvasm.expected.ir.dxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureSample
+..\..\src\tint\lang\hlsl\writer\printer\printer.cc:1010 internal compiler error: TINT_UNREACHABLE unhandled: textureSample
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/unittest/reader/spirv/Good_1D_SpvParserHandleTest_ImageCoordsTest_MakeCoordinateOperandsForImageAccess_0.spvasm.expected.ir.fxc.hlsl b/test/tint/unittest/reader/spirv/Good_1D_SpvParserHandleTest_ImageCoordsTest_MakeCoordinateOperandsForImageAccess_0.spvasm.expected.ir.fxc.hlsl
index 6739938..58230f6 100644
--- a/test/tint/unittest/reader/spirv/Good_1D_SpvParserHandleTest_ImageCoordsTest_MakeCoordinateOperandsForImageAccess_0.spvasm.expected.ir.fxc.hlsl
+++ b/test/tint/unittest/reader/spirv/Good_1D_SpvParserHandleTest_ImageCoordsTest_MakeCoordinateOperandsForImageAccess_0.spvasm.expected.ir.fxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureSample
+..\..\src\tint\lang\hlsl\writer\printer\printer.cc:1010 internal compiler error: TINT_UNREACHABLE unhandled: textureSample
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/unittest/reader/spirv/Good_1D_SpvParserHandleTest_ImageCoordsTest_MakeCoordinateOperandsForImageAccess_1.spvasm.expected.ir.dxc.hlsl b/test/tint/unittest/reader/spirv/Good_1D_SpvParserHandleTest_ImageCoordsTest_MakeCoordinateOperandsForImageAccess_1.spvasm.expected.ir.dxc.hlsl
index 6739938..58230f6 100644
--- a/test/tint/unittest/reader/spirv/Good_1D_SpvParserHandleTest_ImageCoordsTest_MakeCoordinateOperandsForImageAccess_1.spvasm.expected.ir.dxc.hlsl
+++ b/test/tint/unittest/reader/spirv/Good_1D_SpvParserHandleTest_ImageCoordsTest_MakeCoordinateOperandsForImageAccess_1.spvasm.expected.ir.dxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureSample
+..\..\src\tint\lang\hlsl\writer\printer\printer.cc:1010 internal compiler error: TINT_UNREACHABLE unhandled: textureSample
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/unittest/reader/spirv/Good_1D_SpvParserHandleTest_ImageCoordsTest_MakeCoordinateOperandsForImageAccess_1.spvasm.expected.ir.fxc.hlsl b/test/tint/unittest/reader/spirv/Good_1D_SpvParserHandleTest_ImageCoordsTest_MakeCoordinateOperandsForImageAccess_1.spvasm.expected.ir.fxc.hlsl
index 6739938..58230f6 100644
--- a/test/tint/unittest/reader/spirv/Good_1D_SpvParserHandleTest_ImageCoordsTest_MakeCoordinateOperandsForImageAccess_1.spvasm.expected.ir.fxc.hlsl
+++ b/test/tint/unittest/reader/spirv/Good_1D_SpvParserHandleTest_ImageCoordsTest_MakeCoordinateOperandsForImageAccess_1.spvasm.expected.ir.fxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureSample
+..\..\src\tint\lang\hlsl\writer\printer\printer.cc:1010 internal compiler error: TINT_UNREACHABLE unhandled: textureSample
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/unittest/reader/spirv/Good_1D_SpvParserHandleTest_ImageCoordsTest_MakeCoordinateOperandsForImageAccess_2.spvasm.expected.ir.dxc.hlsl b/test/tint/unittest/reader/spirv/Good_1D_SpvParserHandleTest_ImageCoordsTest_MakeCoordinateOperandsForImageAccess_2.spvasm.expected.ir.dxc.hlsl
index 6739938..58230f6 100644
--- a/test/tint/unittest/reader/spirv/Good_1D_SpvParserHandleTest_ImageCoordsTest_MakeCoordinateOperandsForImageAccess_2.spvasm.expected.ir.dxc.hlsl
+++ b/test/tint/unittest/reader/spirv/Good_1D_SpvParserHandleTest_ImageCoordsTest_MakeCoordinateOperandsForImageAccess_2.spvasm.expected.ir.dxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureSample
+..\..\src\tint\lang\hlsl\writer\printer\printer.cc:1010 internal compiler error: TINT_UNREACHABLE unhandled: textureSample
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/unittest/reader/spirv/Good_1D_SpvParserHandleTest_ImageCoordsTest_MakeCoordinateOperandsForImageAccess_2.spvasm.expected.ir.fxc.hlsl b/test/tint/unittest/reader/spirv/Good_1D_SpvParserHandleTest_ImageCoordsTest_MakeCoordinateOperandsForImageAccess_2.spvasm.expected.ir.fxc.hlsl
index 6739938..58230f6 100644
--- a/test/tint/unittest/reader/spirv/Good_1D_SpvParserHandleTest_ImageCoordsTest_MakeCoordinateOperandsForImageAccess_2.spvasm.expected.ir.fxc.hlsl
+++ b/test/tint/unittest/reader/spirv/Good_1D_SpvParserHandleTest_ImageCoordsTest_MakeCoordinateOperandsForImageAccess_2.spvasm.expected.ir.fxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureSample
+..\..\src\tint\lang\hlsl\writer\printer\printer.cc:1010 internal compiler error: TINT_UNREACHABLE unhandled: textureSample
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/unittest/reader/spirv/Good_1D_SpvParserHandleTest_ImageCoordsTest_MakeCoordinateOperandsForImageAccess_3.spvasm.expected.ir.dxc.hlsl b/test/tint/unittest/reader/spirv/Good_1D_SpvParserHandleTest_ImageCoordsTest_MakeCoordinateOperandsForImageAccess_3.spvasm.expected.ir.dxc.hlsl
index 6739938..58230f6 100644
--- a/test/tint/unittest/reader/spirv/Good_1D_SpvParserHandleTest_ImageCoordsTest_MakeCoordinateOperandsForImageAccess_3.spvasm.expected.ir.dxc.hlsl
+++ b/test/tint/unittest/reader/spirv/Good_1D_SpvParserHandleTest_ImageCoordsTest_MakeCoordinateOperandsForImageAccess_3.spvasm.expected.ir.dxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureSample
+..\..\src\tint\lang\hlsl\writer\printer\printer.cc:1010 internal compiler error: TINT_UNREACHABLE unhandled: textureSample
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/unittest/reader/spirv/Good_1D_SpvParserHandleTest_ImageCoordsTest_MakeCoordinateOperandsForImageAccess_3.spvasm.expected.ir.fxc.hlsl b/test/tint/unittest/reader/spirv/Good_1D_SpvParserHandleTest_ImageCoordsTest_MakeCoordinateOperandsForImageAccess_3.spvasm.expected.ir.fxc.hlsl
index 6739938..58230f6 100644
--- a/test/tint/unittest/reader/spirv/Good_1D_SpvParserHandleTest_ImageCoordsTest_MakeCoordinateOperandsForImageAccess_3.spvasm.expected.ir.fxc.hlsl
+++ b/test/tint/unittest/reader/spirv/Good_1D_SpvParserHandleTest_ImageCoordsTest_MakeCoordinateOperandsForImageAccess_3.spvasm.expected.ir.fxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureSample
+..\..\src\tint\lang\hlsl\writer\printer\printer.cc:1010 internal compiler error: TINT_UNREACHABLE unhandled: textureSample
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/unittest/reader/spirv/Good_2DArray_SpvParserHandleTest_ImageCoordsTest_MakeCoordinateOperandsForImageAccess_0.spvasm.expected.ir.dxc.hlsl b/test/tint/unittest/reader/spirv/Good_2DArray_SpvParserHandleTest_ImageCoordsTest_MakeCoordinateOperandsForImageAccess_0.spvasm.expected.ir.dxc.hlsl
index 6739938..58230f6 100644
--- a/test/tint/unittest/reader/spirv/Good_2DArray_SpvParserHandleTest_ImageCoordsTest_MakeCoordinateOperandsForImageAccess_0.spvasm.expected.ir.dxc.hlsl
+++ b/test/tint/unittest/reader/spirv/Good_2DArray_SpvParserHandleTest_ImageCoordsTest_MakeCoordinateOperandsForImageAccess_0.spvasm.expected.ir.dxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureSample
+..\..\src\tint\lang\hlsl\writer\printer\printer.cc:1010 internal compiler error: TINT_UNREACHABLE unhandled: textureSample
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/unittest/reader/spirv/Good_2DArray_SpvParserHandleTest_ImageCoordsTest_MakeCoordinateOperandsForImageAccess_0.spvasm.expected.ir.fxc.hlsl b/test/tint/unittest/reader/spirv/Good_2DArray_SpvParserHandleTest_ImageCoordsTest_MakeCoordinateOperandsForImageAccess_0.spvasm.expected.ir.fxc.hlsl
index 6739938..58230f6 100644
--- a/test/tint/unittest/reader/spirv/Good_2DArray_SpvParserHandleTest_ImageCoordsTest_MakeCoordinateOperandsForImageAccess_0.spvasm.expected.ir.fxc.hlsl
+++ b/test/tint/unittest/reader/spirv/Good_2DArray_SpvParserHandleTest_ImageCoordsTest_MakeCoordinateOperandsForImageAccess_0.spvasm.expected.ir.fxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureSample
+..\..\src\tint\lang\hlsl\writer\printer\printer.cc:1010 internal compiler error: TINT_UNREACHABLE unhandled: textureSample
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/unittest/reader/spirv/Good_2DArray_SpvParserHandleTest_ImageCoordsTest_MakeCoordinateOperandsForImageAccess_1.spvasm.expected.ir.dxc.hlsl b/test/tint/unittest/reader/spirv/Good_2DArray_SpvParserHandleTest_ImageCoordsTest_MakeCoordinateOperandsForImageAccess_1.spvasm.expected.ir.dxc.hlsl
index 6739938..58230f6 100644
--- a/test/tint/unittest/reader/spirv/Good_2DArray_SpvParserHandleTest_ImageCoordsTest_MakeCoordinateOperandsForImageAccess_1.spvasm.expected.ir.dxc.hlsl
+++ b/test/tint/unittest/reader/spirv/Good_2DArray_SpvParserHandleTest_ImageCoordsTest_MakeCoordinateOperandsForImageAccess_1.spvasm.expected.ir.dxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureSample
+..\..\src\tint\lang\hlsl\writer\printer\printer.cc:1010 internal compiler error: TINT_UNREACHABLE unhandled: textureSample
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/unittest/reader/spirv/Good_2DArray_SpvParserHandleTest_ImageCoordsTest_MakeCoordinateOperandsForImageAccess_1.spvasm.expected.ir.fxc.hlsl b/test/tint/unittest/reader/spirv/Good_2DArray_SpvParserHandleTest_ImageCoordsTest_MakeCoordinateOperandsForImageAccess_1.spvasm.expected.ir.fxc.hlsl
index 6739938..58230f6 100644
--- a/test/tint/unittest/reader/spirv/Good_2DArray_SpvParserHandleTest_ImageCoordsTest_MakeCoordinateOperandsForImageAccess_1.spvasm.expected.ir.fxc.hlsl
+++ b/test/tint/unittest/reader/spirv/Good_2DArray_SpvParserHandleTest_ImageCoordsTest_MakeCoordinateOperandsForImageAccess_1.spvasm.expected.ir.fxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureSample
+..\..\src\tint\lang\hlsl\writer\printer\printer.cc:1010 internal compiler error: TINT_UNREACHABLE unhandled: textureSample
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/unittest/reader/spirv/Good_2D_SpvParserHandleTest_ImageCoordsTest_MakeCoordinateOperandsForImageAccess_0.spvasm.expected.ir.dxc.hlsl b/test/tint/unittest/reader/spirv/Good_2D_SpvParserHandleTest_ImageCoordsTest_MakeCoordinateOperandsForImageAccess_0.spvasm.expected.ir.dxc.hlsl
index 6739938..58230f6 100644
--- a/test/tint/unittest/reader/spirv/Good_2D_SpvParserHandleTest_ImageCoordsTest_MakeCoordinateOperandsForImageAccess_0.spvasm.expected.ir.dxc.hlsl
+++ b/test/tint/unittest/reader/spirv/Good_2D_SpvParserHandleTest_ImageCoordsTest_MakeCoordinateOperandsForImageAccess_0.spvasm.expected.ir.dxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureSample
+..\..\src\tint\lang\hlsl\writer\printer\printer.cc:1010 internal compiler error: TINT_UNREACHABLE unhandled: textureSample
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/unittest/reader/spirv/Good_2D_SpvParserHandleTest_ImageCoordsTest_MakeCoordinateOperandsForImageAccess_0.spvasm.expected.ir.fxc.hlsl b/test/tint/unittest/reader/spirv/Good_2D_SpvParserHandleTest_ImageCoordsTest_MakeCoordinateOperandsForImageAccess_0.spvasm.expected.ir.fxc.hlsl
index 6739938..58230f6 100644
--- a/test/tint/unittest/reader/spirv/Good_2D_SpvParserHandleTest_ImageCoordsTest_MakeCoordinateOperandsForImageAccess_0.spvasm.expected.ir.fxc.hlsl
+++ b/test/tint/unittest/reader/spirv/Good_2D_SpvParserHandleTest_ImageCoordsTest_MakeCoordinateOperandsForImageAccess_0.spvasm.expected.ir.fxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureSample
+..\..\src\tint\lang\hlsl\writer\printer\printer.cc:1010 internal compiler error: TINT_UNREACHABLE unhandled: textureSample
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/unittest/reader/spirv/Good_2D_SpvParserHandleTest_ImageCoordsTest_MakeCoordinateOperandsForImageAccess_1.spvasm.expected.ir.dxc.hlsl b/test/tint/unittest/reader/spirv/Good_2D_SpvParserHandleTest_ImageCoordsTest_MakeCoordinateOperandsForImageAccess_1.spvasm.expected.ir.dxc.hlsl
index 6739938..58230f6 100644
--- a/test/tint/unittest/reader/spirv/Good_2D_SpvParserHandleTest_ImageCoordsTest_MakeCoordinateOperandsForImageAccess_1.spvasm.expected.ir.dxc.hlsl
+++ b/test/tint/unittest/reader/spirv/Good_2D_SpvParserHandleTest_ImageCoordsTest_MakeCoordinateOperandsForImageAccess_1.spvasm.expected.ir.dxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureSample
+..\..\src\tint\lang\hlsl\writer\printer\printer.cc:1010 internal compiler error: TINT_UNREACHABLE unhandled: textureSample
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/unittest/reader/spirv/Good_2D_SpvParserHandleTest_ImageCoordsTest_MakeCoordinateOperandsForImageAccess_1.spvasm.expected.ir.fxc.hlsl b/test/tint/unittest/reader/spirv/Good_2D_SpvParserHandleTest_ImageCoordsTest_MakeCoordinateOperandsForImageAccess_1.spvasm.expected.ir.fxc.hlsl
index 6739938..58230f6 100644
--- a/test/tint/unittest/reader/spirv/Good_2D_SpvParserHandleTest_ImageCoordsTest_MakeCoordinateOperandsForImageAccess_1.spvasm.expected.ir.fxc.hlsl
+++ b/test/tint/unittest/reader/spirv/Good_2D_SpvParserHandleTest_ImageCoordsTest_MakeCoordinateOperandsForImageAccess_1.spvasm.expected.ir.fxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureSample
+..\..\src\tint\lang\hlsl\writer\printer\printer.cc:1010 internal compiler error: TINT_UNREACHABLE unhandled: textureSample
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/unittest/reader/spirv/Good_2D_SpvParserHandleTest_ImageCoordsTest_MakeCoordinateOperandsForImageAccess_2.spvasm.expected.ir.dxc.hlsl b/test/tint/unittest/reader/spirv/Good_2D_SpvParserHandleTest_ImageCoordsTest_MakeCoordinateOperandsForImageAccess_2.spvasm.expected.ir.dxc.hlsl
index 6739938..58230f6 100644
--- a/test/tint/unittest/reader/spirv/Good_2D_SpvParserHandleTest_ImageCoordsTest_MakeCoordinateOperandsForImageAccess_2.spvasm.expected.ir.dxc.hlsl
+++ b/test/tint/unittest/reader/spirv/Good_2D_SpvParserHandleTest_ImageCoordsTest_MakeCoordinateOperandsForImageAccess_2.spvasm.expected.ir.dxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureSample
+..\..\src\tint\lang\hlsl\writer\printer\printer.cc:1010 internal compiler error: TINT_UNREACHABLE unhandled: textureSample
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/unittest/reader/spirv/Good_2D_SpvParserHandleTest_ImageCoordsTest_MakeCoordinateOperandsForImageAccess_2.spvasm.expected.ir.fxc.hlsl b/test/tint/unittest/reader/spirv/Good_2D_SpvParserHandleTest_ImageCoordsTest_MakeCoordinateOperandsForImageAccess_2.spvasm.expected.ir.fxc.hlsl
index 6739938..58230f6 100644
--- a/test/tint/unittest/reader/spirv/Good_2D_SpvParserHandleTest_ImageCoordsTest_MakeCoordinateOperandsForImageAccess_2.spvasm.expected.ir.fxc.hlsl
+++ b/test/tint/unittest/reader/spirv/Good_2D_SpvParserHandleTest_ImageCoordsTest_MakeCoordinateOperandsForImageAccess_2.spvasm.expected.ir.fxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureSample
+..\..\src\tint\lang\hlsl\writer\printer\printer.cc:1010 internal compiler error: TINT_UNREACHABLE unhandled: textureSample
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/unittest/reader/spirv/Good_3D_SpvParserHandleTest_ImageCoordsTest_MakeCoordinateOperandsForImageAccess_0.spvasm.expected.ir.dxc.hlsl b/test/tint/unittest/reader/spirv/Good_3D_SpvParserHandleTest_ImageCoordsTest_MakeCoordinateOperandsForImageAccess_0.spvasm.expected.ir.dxc.hlsl
index 6739938..58230f6 100644
--- a/test/tint/unittest/reader/spirv/Good_3D_SpvParserHandleTest_ImageCoordsTest_MakeCoordinateOperandsForImageAccess_0.spvasm.expected.ir.dxc.hlsl
+++ b/test/tint/unittest/reader/spirv/Good_3D_SpvParserHandleTest_ImageCoordsTest_MakeCoordinateOperandsForImageAccess_0.spvasm.expected.ir.dxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureSample
+..\..\src\tint\lang\hlsl\writer\printer\printer.cc:1010 internal compiler error: TINT_UNREACHABLE unhandled: textureSample
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/unittest/reader/spirv/Good_3D_SpvParserHandleTest_ImageCoordsTest_MakeCoordinateOperandsForImageAccess_0.spvasm.expected.ir.fxc.hlsl b/test/tint/unittest/reader/spirv/Good_3D_SpvParserHandleTest_ImageCoordsTest_MakeCoordinateOperandsForImageAccess_0.spvasm.expected.ir.fxc.hlsl
index 6739938..58230f6 100644
--- a/test/tint/unittest/reader/spirv/Good_3D_SpvParserHandleTest_ImageCoordsTest_MakeCoordinateOperandsForImageAccess_0.spvasm.expected.ir.fxc.hlsl
+++ b/test/tint/unittest/reader/spirv/Good_3D_SpvParserHandleTest_ImageCoordsTest_MakeCoordinateOperandsForImageAccess_0.spvasm.expected.ir.fxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureSample
+..\..\src\tint\lang\hlsl\writer\printer\printer.cc:1010 internal compiler error: TINT_UNREACHABLE unhandled: textureSample
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/unittest/reader/spirv/Good_3D_SpvParserHandleTest_ImageCoordsTest_MakeCoordinateOperandsForImageAccess_1.spvasm.expected.ir.dxc.hlsl b/test/tint/unittest/reader/spirv/Good_3D_SpvParserHandleTest_ImageCoordsTest_MakeCoordinateOperandsForImageAccess_1.spvasm.expected.ir.dxc.hlsl
index 6739938..58230f6 100644
--- a/test/tint/unittest/reader/spirv/Good_3D_SpvParserHandleTest_ImageCoordsTest_MakeCoordinateOperandsForImageAccess_1.spvasm.expected.ir.dxc.hlsl
+++ b/test/tint/unittest/reader/spirv/Good_3D_SpvParserHandleTest_ImageCoordsTest_MakeCoordinateOperandsForImageAccess_1.spvasm.expected.ir.dxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureSample
+..\..\src\tint\lang\hlsl\writer\printer\printer.cc:1010 internal compiler error: TINT_UNREACHABLE unhandled: textureSample
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/unittest/reader/spirv/Good_3D_SpvParserHandleTest_ImageCoordsTest_MakeCoordinateOperandsForImageAccess_1.spvasm.expected.ir.fxc.hlsl b/test/tint/unittest/reader/spirv/Good_3D_SpvParserHandleTest_ImageCoordsTest_MakeCoordinateOperandsForImageAccess_1.spvasm.expected.ir.fxc.hlsl
index 6739938..58230f6 100644
--- a/test/tint/unittest/reader/spirv/Good_3D_SpvParserHandleTest_ImageCoordsTest_MakeCoordinateOperandsForImageAccess_1.spvasm.expected.ir.fxc.hlsl
+++ b/test/tint/unittest/reader/spirv/Good_3D_SpvParserHandleTest_ImageCoordsTest_MakeCoordinateOperandsForImageAccess_1.spvasm.expected.ir.fxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureSample
+..\..\src\tint\lang\hlsl\writer\printer\printer.cc:1010 internal compiler error: TINT_UNREACHABLE unhandled: textureSample
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/unittest/reader/spirv/Good_CubeArray_SpvParserHandleTest_ImageCoordsTest_MakeCoordinateOperandsForImageAccess_0.spvasm.expected.ir.dxc.hlsl b/test/tint/unittest/reader/spirv/Good_CubeArray_SpvParserHandleTest_ImageCoordsTest_MakeCoordinateOperandsForImageAccess_0.spvasm.expected.ir.dxc.hlsl
index 6739938..58230f6 100644
--- a/test/tint/unittest/reader/spirv/Good_CubeArray_SpvParserHandleTest_ImageCoordsTest_MakeCoordinateOperandsForImageAccess_0.spvasm.expected.ir.dxc.hlsl
+++ b/test/tint/unittest/reader/spirv/Good_CubeArray_SpvParserHandleTest_ImageCoordsTest_MakeCoordinateOperandsForImageAccess_0.spvasm.expected.ir.dxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureSample
+..\..\src\tint\lang\hlsl\writer\printer\printer.cc:1010 internal compiler error: TINT_UNREACHABLE unhandled: textureSample
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/unittest/reader/spirv/Good_CubeArray_SpvParserHandleTest_ImageCoordsTest_MakeCoordinateOperandsForImageAccess_0.spvasm.expected.ir.fxc.hlsl b/test/tint/unittest/reader/spirv/Good_CubeArray_SpvParserHandleTest_ImageCoordsTest_MakeCoordinateOperandsForImageAccess_0.spvasm.expected.ir.fxc.hlsl
index 6739938..58230f6 100644
--- a/test/tint/unittest/reader/spirv/Good_CubeArray_SpvParserHandleTest_ImageCoordsTest_MakeCoordinateOperandsForImageAccess_0.spvasm.expected.ir.fxc.hlsl
+++ b/test/tint/unittest/reader/spirv/Good_CubeArray_SpvParserHandleTest_ImageCoordsTest_MakeCoordinateOperandsForImageAccess_0.spvasm.expected.ir.fxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureSample
+..\..\src\tint\lang\hlsl\writer\printer\printer.cc:1010 internal compiler error: TINT_UNREACHABLE unhandled: textureSample
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/unittest/reader/spirv/Good_Cube_SpvParserHandleTest_ImageCoordsTest_MakeCoordinateOperandsForImageAccess_0.spvasm.expected.ir.dxc.hlsl b/test/tint/unittest/reader/spirv/Good_Cube_SpvParserHandleTest_ImageCoordsTest_MakeCoordinateOperandsForImageAccess_0.spvasm.expected.ir.dxc.hlsl
index 6739938..58230f6 100644
--- a/test/tint/unittest/reader/spirv/Good_Cube_SpvParserHandleTest_ImageCoordsTest_MakeCoordinateOperandsForImageAccess_0.spvasm.expected.ir.dxc.hlsl
+++ b/test/tint/unittest/reader/spirv/Good_Cube_SpvParserHandleTest_ImageCoordsTest_MakeCoordinateOperandsForImageAccess_0.spvasm.expected.ir.dxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureSample
+..\..\src\tint\lang\hlsl\writer\printer\printer.cc:1010 internal compiler error: TINT_UNREACHABLE unhandled: textureSample
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/unittest/reader/spirv/Good_Cube_SpvParserHandleTest_ImageCoordsTest_MakeCoordinateOperandsForImageAccess_0.spvasm.expected.ir.fxc.hlsl b/test/tint/unittest/reader/spirv/Good_Cube_SpvParserHandleTest_ImageCoordsTest_MakeCoordinateOperandsForImageAccess_0.spvasm.expected.ir.fxc.hlsl
index 6739938..58230f6 100644
--- a/test/tint/unittest/reader/spirv/Good_Cube_SpvParserHandleTest_ImageCoordsTest_MakeCoordinateOperandsForImageAccess_0.spvasm.expected.ir.fxc.hlsl
+++ b/test/tint/unittest/reader/spirv/Good_Cube_SpvParserHandleTest_ImageCoordsTest_MakeCoordinateOperandsForImageAccess_0.spvasm.expected.ir.fxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureSample
+..\..\src\tint\lang\hlsl\writer\printer\printer.cc:1010 internal compiler error: TINT_UNREACHABLE unhandled: textureSample
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/unittest/reader/spirv/Good_Cube_SpvParserHandleTest_ImageCoordsTest_MakeCoordinateOperandsForImageAccess_1.spvasm.expected.ir.dxc.hlsl b/test/tint/unittest/reader/spirv/Good_Cube_SpvParserHandleTest_ImageCoordsTest_MakeCoordinateOperandsForImageAccess_1.spvasm.expected.ir.dxc.hlsl
index 6739938..58230f6 100644
--- a/test/tint/unittest/reader/spirv/Good_Cube_SpvParserHandleTest_ImageCoordsTest_MakeCoordinateOperandsForImageAccess_1.spvasm.expected.ir.dxc.hlsl
+++ b/test/tint/unittest/reader/spirv/Good_Cube_SpvParserHandleTest_ImageCoordsTest_MakeCoordinateOperandsForImageAccess_1.spvasm.expected.ir.dxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureSample
+..\..\src\tint\lang\hlsl\writer\printer\printer.cc:1010 internal compiler error: TINT_UNREACHABLE unhandled: textureSample
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/unittest/reader/spirv/Good_Cube_SpvParserHandleTest_ImageCoordsTest_MakeCoordinateOperandsForImageAccess_1.spvasm.expected.ir.fxc.hlsl b/test/tint/unittest/reader/spirv/Good_Cube_SpvParserHandleTest_ImageCoordsTest_MakeCoordinateOperandsForImageAccess_1.spvasm.expected.ir.fxc.hlsl
index 6739938..58230f6 100644
--- a/test/tint/unittest/reader/spirv/Good_Cube_SpvParserHandleTest_ImageCoordsTest_MakeCoordinateOperandsForImageAccess_1.spvasm.expected.ir.fxc.hlsl
+++ b/test/tint/unittest/reader/spirv/Good_Cube_SpvParserHandleTest_ImageCoordsTest_MakeCoordinateOperandsForImageAccess_1.spvasm.expected.ir.fxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureSample
+..\..\src\tint\lang\hlsl\writer\printer\printer.cc:1010 internal compiler error: TINT_UNREACHABLE unhandled: textureSample
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/unittest/reader/spirv/ImageFetch_DepthMultisampled_SpvParserHandleTest_ImageAccessTest_Variable_0.spvasm.expected.ir.dxc.hlsl b/test/tint/unittest/reader/spirv/ImageFetch_DepthMultisampled_SpvParserHandleTest_ImageAccessTest_Variable_0.spvasm.expected.ir.dxc.hlsl
deleted file mode 100644
index c6e1d96..0000000
--- a/test/tint/unittest/reader/spirv/ImageFetch_DepthMultisampled_SpvParserHandleTest_ImageAccessTest_Variable_0.spvasm.expected.ir.dxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Construct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix 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/ImageFetch_DepthMultisampled_SpvParserHandleTest_ImageAccessTest_Variable_0.spvasm.expected.ir.fxc.hlsl b/test/tint/unittest/reader/spirv/ImageFetch_DepthMultisampled_SpvParserHandleTest_ImageAccessTest_Variable_0.spvasm.expected.ir.fxc.hlsl
deleted file mode 100644
index c6e1d96..0000000
--- a/test/tint/unittest/reader/spirv/ImageFetch_DepthMultisampled_SpvParserHandleTest_ImageAccessTest_Variable_0.spvasm.expected.ir.fxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Construct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix 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/ImageFetch_Depth_SpvParserHandleTest_ImageAccessTest_Variable_0.spvasm.expected.ir.dxc.hlsl b/test/tint/unittest/reader/spirv/ImageFetch_Depth_SpvParserHandleTest_ImageAccessTest_Variable_0.spvasm.expected.ir.dxc.hlsl
deleted file mode 100644
index c6e1d96..0000000
--- a/test/tint/unittest/reader/spirv/ImageFetch_Depth_SpvParserHandleTest_ImageAccessTest_Variable_0.spvasm.expected.ir.dxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Construct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix 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/ImageFetch_Depth_SpvParserHandleTest_ImageAccessTest_Variable_0.spvasm.expected.ir.fxc.hlsl b/test/tint/unittest/reader/spirv/ImageFetch_Depth_SpvParserHandleTest_ImageAccessTest_Variable_0.spvasm.expected.ir.fxc.hlsl
deleted file mode 100644
index c6e1d96..0000000
--- a/test/tint/unittest/reader/spirv/ImageFetch_Depth_SpvParserHandleTest_ImageAccessTest_Variable_0.spvasm.expected.ir.fxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Construct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix 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/ImageFetch_Multisampled_ConvertSampleOperand_SpvParserHandleTest_ImageAccessTest_Variable_0.spvasm.expected.ir.dxc.hlsl b/test/tint/unittest/reader/spirv/ImageFetch_Multisampled_ConvertSampleOperand_SpvParserHandleTest_ImageAccessTest_Variable_0.spvasm.expected.ir.dxc.hlsl
deleted file mode 100644
index fd28383..0000000
--- a/test/tint/unittest/reader/spirv/ImageFetch_Multisampled_ConvertSampleOperand_SpvParserHandleTest_ImageAccessTest_Variable_0.spvasm.expected.ir.dxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureLoad
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix 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/ImageFetch_Multisampled_ConvertSampleOperand_SpvParserHandleTest_ImageAccessTest_Variable_0.spvasm.expected.ir.fxc.hlsl b/test/tint/unittest/reader/spirv/ImageFetch_Multisampled_ConvertSampleOperand_SpvParserHandleTest_ImageAccessTest_Variable_0.spvasm.expected.ir.fxc.hlsl
deleted file mode 100644
index fd28383..0000000
--- a/test/tint/unittest/reader/spirv/ImageFetch_Multisampled_ConvertSampleOperand_SpvParserHandleTest_ImageAccessTest_Variable_0.spvasm.expected.ir.fxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureLoad
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix 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/ImageFetch_Multisampled_SpvParserHandleTest_ImageAccessTest_Variable_0.spvasm.expected.ir.dxc.hlsl b/test/tint/unittest/reader/spirv/ImageFetch_Multisampled_SpvParserHandleTest_ImageAccessTest_Variable_0.spvasm.expected.ir.dxc.hlsl
deleted file mode 100644
index fd28383..0000000
--- a/test/tint/unittest/reader/spirv/ImageFetch_Multisampled_SpvParserHandleTest_ImageAccessTest_Variable_0.spvasm.expected.ir.dxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureLoad
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix 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/ImageFetch_Multisampled_SpvParserHandleTest_ImageAccessTest_Variable_0.spvasm.expected.ir.fxc.hlsl b/test/tint/unittest/reader/spirv/ImageFetch_Multisampled_SpvParserHandleTest_ImageAccessTest_Variable_0.spvasm.expected.ir.fxc.hlsl
deleted file mode 100644
index fd28383..0000000
--- a/test/tint/unittest/reader/spirv/ImageFetch_Multisampled_SpvParserHandleTest_ImageAccessTest_Variable_0.spvasm.expected.ir.fxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureLoad
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix 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/ImageFetch_OptionalParams_SpvParserHandleTest_ImageAccessTest_Variable_0.spvasm.expected.ir.dxc.hlsl b/test/tint/unittest/reader/spirv/ImageFetch_OptionalParams_SpvParserHandleTest_ImageAccessTest_Variable_0.spvasm.expected.ir.dxc.hlsl
deleted file mode 100644
index fd28383..0000000
--- a/test/tint/unittest/reader/spirv/ImageFetch_OptionalParams_SpvParserHandleTest_ImageAccessTest_Variable_0.spvasm.expected.ir.dxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureLoad
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix 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/ImageFetch_OptionalParams_SpvParserHandleTest_ImageAccessTest_Variable_0.spvasm.expected.ir.fxc.hlsl b/test/tint/unittest/reader/spirv/ImageFetch_OptionalParams_SpvParserHandleTest_ImageAccessTest_Variable_0.spvasm.expected.ir.fxc.hlsl
deleted file mode 100644
index fd28383..0000000
--- a/test/tint/unittest/reader/spirv/ImageFetch_OptionalParams_SpvParserHandleTest_ImageAccessTest_Variable_0.spvasm.expected.ir.fxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureLoad
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix 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/ImageFetch_OptionalParams_SpvParserHandleTest_ImageAccessTest_Variable_1.spvasm.expected.ir.dxc.hlsl b/test/tint/unittest/reader/spirv/ImageFetch_OptionalParams_SpvParserHandleTest_ImageAccessTest_Variable_1.spvasm.expected.ir.dxc.hlsl
deleted file mode 100644
index fd28383..0000000
--- a/test/tint/unittest/reader/spirv/ImageFetch_OptionalParams_SpvParserHandleTest_ImageAccessTest_Variable_1.spvasm.expected.ir.dxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureLoad
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix 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/ImageFetch_OptionalParams_SpvParserHandleTest_ImageAccessTest_Variable_1.spvasm.expected.ir.fxc.hlsl b/test/tint/unittest/reader/spirv/ImageFetch_OptionalParams_SpvParserHandleTest_ImageAccessTest_Variable_1.spvasm.expected.ir.fxc.hlsl
deleted file mode 100644
index fd28383..0000000
--- a/test/tint/unittest/reader/spirv/ImageFetch_OptionalParams_SpvParserHandleTest_ImageAccessTest_Variable_1.spvasm.expected.ir.fxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureLoad
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix 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/ImageFetch_OptionalParams_SpvParserHandleTest_ImageAccessTest_Variable_2.spvasm.expected.ir.dxc.hlsl b/test/tint/unittest/reader/spirv/ImageFetch_OptionalParams_SpvParserHandleTest_ImageAccessTest_Variable_2.spvasm.expected.ir.dxc.hlsl
deleted file mode 100644
index c6e1d96..0000000
--- a/test/tint/unittest/reader/spirv/ImageFetch_OptionalParams_SpvParserHandleTest_ImageAccessTest_Variable_2.spvasm.expected.ir.dxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Construct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix 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/ImageFetch_OptionalParams_SpvParserHandleTest_ImageAccessTest_Variable_2.spvasm.expected.ir.fxc.hlsl b/test/tint/unittest/reader/spirv/ImageFetch_OptionalParams_SpvParserHandleTest_ImageAccessTest_Variable_2.spvasm.expected.ir.fxc.hlsl
deleted file mode 100644
index c6e1d96..0000000
--- a/test/tint/unittest/reader/spirv/ImageFetch_OptionalParams_SpvParserHandleTest_ImageAccessTest_Variable_2.spvasm.expected.ir.fxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Construct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix 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/ImageFetch_OptionalParams_SpvParserHandleTest_ImageAccessTest_Variable_3.spvasm.expected.ir.dxc.hlsl b/test/tint/unittest/reader/spirv/ImageFetch_OptionalParams_SpvParserHandleTest_ImageAccessTest_Variable_3.spvasm.expected.ir.dxc.hlsl
deleted file mode 100644
index c6e1d96..0000000
--- a/test/tint/unittest/reader/spirv/ImageFetch_OptionalParams_SpvParserHandleTest_ImageAccessTest_Variable_3.spvasm.expected.ir.dxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Construct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix 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/ImageFetch_OptionalParams_SpvParserHandleTest_ImageAccessTest_Variable_3.spvasm.expected.ir.fxc.hlsl b/test/tint/unittest/reader/spirv/ImageFetch_OptionalParams_SpvParserHandleTest_ImageAccessTest_Variable_3.spvasm.expected.ir.fxc.hlsl
deleted file mode 100644
index c6e1d96..0000000
--- a/test/tint/unittest/reader/spirv/ImageFetch_OptionalParams_SpvParserHandleTest_ImageAccessTest_Variable_3.spvasm.expected.ir.fxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Construct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix 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/ImageQueryLevels_SignedResult_SpvParserHandleTest_SampledImageAccessTest_Variable_0.spvasm.expected.ir.dxc.hlsl b/test/tint/unittest/reader/spirv/ImageQueryLevels_SignedResult_SpvParserHandleTest_SampledImageAccessTest_Variable_0.spvasm.expected.ir.dxc.hlsl
deleted file mode 100644
index 48e23f4..0000000
--- a/test/tint/unittest/reader/spirv/ImageQueryLevels_SignedResult_SpvParserHandleTest_SampledImageAccessTest_Variable_0.spvasm.expected.ir.dxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Convert
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/unittest/reader/spirv/ImageQueryLevels_SignedResult_SpvParserHandleTest_SampledImageAccessTest_Variable_0.spvasm.expected.ir.fxc.hlsl b/test/tint/unittest/reader/spirv/ImageQueryLevels_SignedResult_SpvParserHandleTest_SampledImageAccessTest_Variable_0.spvasm.expected.ir.fxc.hlsl
deleted file mode 100644
index 48e23f4..0000000
--- a/test/tint/unittest/reader/spirv/ImageQueryLevels_SignedResult_SpvParserHandleTest_SampledImageAccessTest_Variable_0.spvasm.expected.ir.fxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Convert
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/unittest/reader/spirv/ImageQueryLevels_SignedResult_SpvParserHandleTest_SampledImageAccessTest_Variable_1.spvasm.expected.ir.dxc.hlsl b/test/tint/unittest/reader/spirv/ImageQueryLevels_SignedResult_SpvParserHandleTest_SampledImageAccessTest_Variable_1.spvasm.expected.ir.dxc.hlsl
deleted file mode 100644
index 48e23f4..0000000
--- a/test/tint/unittest/reader/spirv/ImageQueryLevels_SignedResult_SpvParserHandleTest_SampledImageAccessTest_Variable_1.spvasm.expected.ir.dxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Convert
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/unittest/reader/spirv/ImageQueryLevels_SignedResult_SpvParserHandleTest_SampledImageAccessTest_Variable_1.spvasm.expected.ir.fxc.hlsl b/test/tint/unittest/reader/spirv/ImageQueryLevels_SignedResult_SpvParserHandleTest_SampledImageAccessTest_Variable_1.spvasm.expected.ir.fxc.hlsl
deleted file mode 100644
index 48e23f4..0000000
--- a/test/tint/unittest/reader/spirv/ImageQueryLevels_SignedResult_SpvParserHandleTest_SampledImageAccessTest_Variable_1.spvasm.expected.ir.fxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Convert
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/unittest/reader/spirv/ImageQueryLevels_SignedResult_SpvParserHandleTest_SampledImageAccessTest_Variable_2.spvasm.expected.ir.dxc.hlsl b/test/tint/unittest/reader/spirv/ImageQueryLevels_SignedResult_SpvParserHandleTest_SampledImageAccessTest_Variable_2.spvasm.expected.ir.dxc.hlsl
deleted file mode 100644
index 48e23f4..0000000
--- a/test/tint/unittest/reader/spirv/ImageQueryLevels_SignedResult_SpvParserHandleTest_SampledImageAccessTest_Variable_2.spvasm.expected.ir.dxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Convert
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/unittest/reader/spirv/ImageQueryLevels_SignedResult_SpvParserHandleTest_SampledImageAccessTest_Variable_2.spvasm.expected.ir.fxc.hlsl b/test/tint/unittest/reader/spirv/ImageQueryLevels_SignedResult_SpvParserHandleTest_SampledImageAccessTest_Variable_2.spvasm.expected.ir.fxc.hlsl
deleted file mode 100644
index 48e23f4..0000000
--- a/test/tint/unittest/reader/spirv/ImageQueryLevels_SignedResult_SpvParserHandleTest_SampledImageAccessTest_Variable_2.spvasm.expected.ir.fxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Convert
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/unittest/reader/spirv/ImageQueryLevels_SignedResult_SpvParserHandleTest_SampledImageAccessTest_Variable_3.spvasm.expected.ir.dxc.hlsl b/test/tint/unittest/reader/spirv/ImageQueryLevels_SignedResult_SpvParserHandleTest_SampledImageAccessTest_Variable_3.spvasm.expected.ir.dxc.hlsl
deleted file mode 100644
index 48e23f4..0000000
--- a/test/tint/unittest/reader/spirv/ImageQueryLevels_SignedResult_SpvParserHandleTest_SampledImageAccessTest_Variable_3.spvasm.expected.ir.dxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Convert
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/unittest/reader/spirv/ImageQueryLevels_SignedResult_SpvParserHandleTest_SampledImageAccessTest_Variable_3.spvasm.expected.ir.fxc.hlsl b/test/tint/unittest/reader/spirv/ImageQueryLevels_SignedResult_SpvParserHandleTest_SampledImageAccessTest_Variable_3.spvasm.expected.ir.fxc.hlsl
deleted file mode 100644
index 48e23f4..0000000
--- a/test/tint/unittest/reader/spirv/ImageQueryLevels_SignedResult_SpvParserHandleTest_SampledImageAccessTest_Variable_3.spvasm.expected.ir.fxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Convert
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/unittest/reader/spirv/ImageQueryLevels_SignedResult_SpvParserHandleTest_SampledImageAccessTest_Variable_4.spvasm.expected.ir.dxc.hlsl b/test/tint/unittest/reader/spirv/ImageQueryLevels_SignedResult_SpvParserHandleTest_SampledImageAccessTest_Variable_4.spvasm.expected.ir.dxc.hlsl
deleted file mode 100644
index 48e23f4..0000000
--- a/test/tint/unittest/reader/spirv/ImageQueryLevels_SignedResult_SpvParserHandleTest_SampledImageAccessTest_Variable_4.spvasm.expected.ir.dxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Convert
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/unittest/reader/spirv/ImageQueryLevels_SignedResult_SpvParserHandleTest_SampledImageAccessTest_Variable_4.spvasm.expected.ir.fxc.hlsl b/test/tint/unittest/reader/spirv/ImageQueryLevels_SignedResult_SpvParserHandleTest_SampledImageAccessTest_Variable_4.spvasm.expected.ir.fxc.hlsl
deleted file mode 100644
index 48e23f4..0000000
--- a/test/tint/unittest/reader/spirv/ImageQueryLevels_SignedResult_SpvParserHandleTest_SampledImageAccessTest_Variable_4.spvasm.expected.ir.fxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Convert
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/unittest/reader/spirv/ImageQueryLevels_SignedResult_SpvParserHandleTest_SampledImageAccessTest_Variable_5.spvasm.expected.ir.dxc.hlsl b/test/tint/unittest/reader/spirv/ImageQueryLevels_SignedResult_SpvParserHandleTest_SampledImageAccessTest_Variable_5.spvasm.expected.ir.dxc.hlsl
deleted file mode 100644
index 48e23f4..0000000
--- a/test/tint/unittest/reader/spirv/ImageQueryLevels_SignedResult_SpvParserHandleTest_SampledImageAccessTest_Variable_5.spvasm.expected.ir.dxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Convert
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/unittest/reader/spirv/ImageQueryLevels_SignedResult_SpvParserHandleTest_SampledImageAccessTest_Variable_5.spvasm.expected.ir.fxc.hlsl b/test/tint/unittest/reader/spirv/ImageQueryLevels_SignedResult_SpvParserHandleTest_SampledImageAccessTest_Variable_5.spvasm.expected.ir.fxc.hlsl
deleted file mode 100644
index 48e23f4..0000000
--- a/test/tint/unittest/reader/spirv/ImageQueryLevels_SignedResult_SpvParserHandleTest_SampledImageAccessTest_Variable_5.spvasm.expected.ir.fxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Convert
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/unittest/reader/spirv/ImageQueryLevels_SignedResult_SpvParserHandleTest_SampledImageAccessTest_Variable_6.spvasm.expected.ir.dxc.hlsl b/test/tint/unittest/reader/spirv/ImageQueryLevels_SignedResult_SpvParserHandleTest_SampledImageAccessTest_Variable_6.spvasm.expected.ir.dxc.hlsl
deleted file mode 100644
index 48e23f4..0000000
--- a/test/tint/unittest/reader/spirv/ImageQueryLevels_SignedResult_SpvParserHandleTest_SampledImageAccessTest_Variable_6.spvasm.expected.ir.dxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Convert
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/unittest/reader/spirv/ImageQueryLevels_SignedResult_SpvParserHandleTest_SampledImageAccessTest_Variable_6.spvasm.expected.ir.fxc.hlsl b/test/tint/unittest/reader/spirv/ImageQueryLevels_SignedResult_SpvParserHandleTest_SampledImageAccessTest_Variable_6.spvasm.expected.ir.fxc.hlsl
deleted file mode 100644
index 48e23f4..0000000
--- a/test/tint/unittest/reader/spirv/ImageQueryLevels_SignedResult_SpvParserHandleTest_SampledImageAccessTest_Variable_6.spvasm.expected.ir.fxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Convert
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/unittest/reader/spirv/ImageQueryLevels_SignedResult_SpvParserHandleTest_SampledImageAccessTest_Variable_7.spvasm.expected.ir.dxc.hlsl b/test/tint/unittest/reader/spirv/ImageQueryLevels_SignedResult_SpvParserHandleTest_SampledImageAccessTest_Variable_7.spvasm.expected.ir.dxc.hlsl
deleted file mode 100644
index 48e23f4..0000000
--- a/test/tint/unittest/reader/spirv/ImageQueryLevels_SignedResult_SpvParserHandleTest_SampledImageAccessTest_Variable_7.spvasm.expected.ir.dxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Convert
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/unittest/reader/spirv/ImageQueryLevels_SignedResult_SpvParserHandleTest_SampledImageAccessTest_Variable_7.spvasm.expected.ir.fxc.hlsl b/test/tint/unittest/reader/spirv/ImageQueryLevels_SignedResult_SpvParserHandleTest_SampledImageAccessTest_Variable_7.spvasm.expected.ir.fxc.hlsl
deleted file mode 100644
index 48e23f4..0000000
--- a/test/tint/unittest/reader/spirv/ImageQueryLevels_SignedResult_SpvParserHandleTest_SampledImageAccessTest_Variable_7.spvasm.expected.ir.fxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Convert
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/unittest/reader/spirv/ImageQueryLevels_SignedResult_SpvParserHandleTest_SampledImageAccessTest_Variable_8.spvasm.expected.ir.dxc.hlsl b/test/tint/unittest/reader/spirv/ImageQueryLevels_SignedResult_SpvParserHandleTest_SampledImageAccessTest_Variable_8.spvasm.expected.ir.dxc.hlsl
deleted file mode 100644
index 48e23f4..0000000
--- a/test/tint/unittest/reader/spirv/ImageQueryLevels_SignedResult_SpvParserHandleTest_SampledImageAccessTest_Variable_8.spvasm.expected.ir.dxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Convert
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/unittest/reader/spirv/ImageQueryLevels_SignedResult_SpvParserHandleTest_SampledImageAccessTest_Variable_8.spvasm.expected.ir.fxc.hlsl b/test/tint/unittest/reader/spirv/ImageQueryLevels_SignedResult_SpvParserHandleTest_SampledImageAccessTest_Variable_8.spvasm.expected.ir.fxc.hlsl
deleted file mode 100644
index 48e23f4..0000000
--- a/test/tint/unittest/reader/spirv/ImageQueryLevels_SignedResult_SpvParserHandleTest_SampledImageAccessTest_Variable_8.spvasm.expected.ir.fxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Convert
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/unittest/reader/spirv/ImageQueryLevels_UnsignedResult_SpvParserHandleTest_SampledImageAccessTest_Variable_0.spvasm.expected.ir.dxc.hlsl b/test/tint/unittest/reader/spirv/ImageQueryLevels_UnsignedResult_SpvParserHandleTest_SampledImageAccessTest_Variable_0.spvasm.expected.ir.dxc.hlsl
deleted file mode 100644
index c5f3f6e..0000000
--- a/test/tint/unittest/reader/spirv/ImageQueryLevels_UnsignedResult_SpvParserHandleTest_SampledImageAccessTest_Variable_0.spvasm.expected.ir.dxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureNumLevels
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix 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/ImageQueryLevels_UnsignedResult_SpvParserHandleTest_SampledImageAccessTest_Variable_0.spvasm.expected.ir.fxc.hlsl b/test/tint/unittest/reader/spirv/ImageQueryLevels_UnsignedResult_SpvParserHandleTest_SampledImageAccessTest_Variable_0.spvasm.expected.ir.fxc.hlsl
deleted file mode 100644
index c5f3f6e..0000000
--- a/test/tint/unittest/reader/spirv/ImageQueryLevels_UnsignedResult_SpvParserHandleTest_SampledImageAccessTest_Variable_0.spvasm.expected.ir.fxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureNumLevels
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix 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/ImageQuerySamples_SignedResult_SpvParserHandleTest_SampledImageAccessTest_Variable_0.spvasm.expected.ir.dxc.hlsl b/test/tint/unittest/reader/spirv/ImageQuerySamples_SignedResult_SpvParserHandleTest_SampledImageAccessTest_Variable_0.spvasm.expected.ir.dxc.hlsl
deleted file mode 100644
index 48e23f4..0000000
--- a/test/tint/unittest/reader/spirv/ImageQuerySamples_SignedResult_SpvParserHandleTest_SampledImageAccessTest_Variable_0.spvasm.expected.ir.dxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Convert
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/unittest/reader/spirv/ImageQuerySamples_SignedResult_SpvParserHandleTest_SampledImageAccessTest_Variable_0.spvasm.expected.ir.fxc.hlsl b/test/tint/unittest/reader/spirv/ImageQuerySamples_SignedResult_SpvParserHandleTest_SampledImageAccessTest_Variable_0.spvasm.expected.ir.fxc.hlsl
deleted file mode 100644
index 48e23f4..0000000
--- a/test/tint/unittest/reader/spirv/ImageQuerySamples_SignedResult_SpvParserHandleTest_SampledImageAccessTest_Variable_0.spvasm.expected.ir.fxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Convert
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/unittest/reader/spirv/ImageQuerySamples_UnsignedResult_SpvParserHandleTest_SampledImageAccessTest_Variable_0.spvasm.expected.ir.dxc.hlsl b/test/tint/unittest/reader/spirv/ImageQuerySamples_UnsignedResult_SpvParserHandleTest_SampledImageAccessTest_Variable_0.spvasm.expected.ir.dxc.hlsl
deleted file mode 100644
index f9d5143..0000000
--- a/test/tint/unittest/reader/spirv/ImageQuerySamples_UnsignedResult_SpvParserHandleTest_SampledImageAccessTest_Variable_0.spvasm.expected.ir.dxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureNumSamples
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix 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/ImageQuerySamples_UnsignedResult_SpvParserHandleTest_SampledImageAccessTest_Variable_0.spvasm.expected.ir.fxc.hlsl b/test/tint/unittest/reader/spirv/ImageQuerySamples_UnsignedResult_SpvParserHandleTest_SampledImageAccessTest_Variable_0.spvasm.expected.ir.fxc.hlsl
deleted file mode 100644
index f9d5143..0000000
--- a/test/tint/unittest/reader/spirv/ImageQuerySamples_UnsignedResult_SpvParserHandleTest_SampledImageAccessTest_Variable_0.spvasm.expected.ir.fxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureNumSamples
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix 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/ImageQuerySizeLod_Arrayed_SignedResult_SignedLevel_SpvParserHandleTest_SampledImageAccessTest_Variable_0.spvasm.expected.ir.dxc.hlsl b/test/tint/unittest/reader/spirv/ImageQuerySizeLod_Arrayed_SignedResult_SignedLevel_SpvParserHandleTest_SampledImageAccessTest_Variable_0.spvasm.expected.ir.dxc.hlsl
deleted file mode 100644
index 48e23f4..0000000
--- a/test/tint/unittest/reader/spirv/ImageQuerySizeLod_Arrayed_SignedResult_SignedLevel_SpvParserHandleTest_SampledImageAccessTest_Variable_0.spvasm.expected.ir.dxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Convert
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/unittest/reader/spirv/ImageQuerySizeLod_Arrayed_SignedResult_SignedLevel_SpvParserHandleTest_SampledImageAccessTest_Variable_0.spvasm.expected.ir.fxc.hlsl b/test/tint/unittest/reader/spirv/ImageQuerySizeLod_Arrayed_SignedResult_SignedLevel_SpvParserHandleTest_SampledImageAccessTest_Variable_0.spvasm.expected.ir.fxc.hlsl
deleted file mode 100644
index 48e23f4..0000000
--- a/test/tint/unittest/reader/spirv/ImageQuerySizeLod_Arrayed_SignedResult_SignedLevel_SpvParserHandleTest_SampledImageAccessTest_Variable_0.spvasm.expected.ir.fxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Convert
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/unittest/reader/spirv/ImageQuerySizeLod_Arrayed_SignedResult_SignedLevel_SpvParserHandleTest_SampledImageAccessTest_Variable_1.spvasm.expected.ir.dxc.hlsl b/test/tint/unittest/reader/spirv/ImageQuerySizeLod_Arrayed_SignedResult_SignedLevel_SpvParserHandleTest_SampledImageAccessTest_Variable_1.spvasm.expected.ir.dxc.hlsl
deleted file mode 100644
index 48e23f4..0000000
--- a/test/tint/unittest/reader/spirv/ImageQuerySizeLod_Arrayed_SignedResult_SignedLevel_SpvParserHandleTest_SampledImageAccessTest_Variable_1.spvasm.expected.ir.dxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Convert
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/unittest/reader/spirv/ImageQuerySizeLod_Arrayed_SignedResult_SignedLevel_SpvParserHandleTest_SampledImageAccessTest_Variable_1.spvasm.expected.ir.fxc.hlsl b/test/tint/unittest/reader/spirv/ImageQuerySizeLod_Arrayed_SignedResult_SignedLevel_SpvParserHandleTest_SampledImageAccessTest_Variable_1.spvasm.expected.ir.fxc.hlsl
deleted file mode 100644
index 48e23f4..0000000
--- a/test/tint/unittest/reader/spirv/ImageQuerySizeLod_Arrayed_SignedResult_SignedLevel_SpvParserHandleTest_SampledImageAccessTest_Variable_1.spvasm.expected.ir.fxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Convert
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/unittest/reader/spirv/ImageQuerySizeLod_Arrayed_SignedResult_SignedLevel_SpvParserHandleTest_SampledImageAccessTest_Variable_2.spvasm.expected.ir.dxc.hlsl b/test/tint/unittest/reader/spirv/ImageQuerySizeLod_Arrayed_SignedResult_SignedLevel_SpvParserHandleTest_SampledImageAccessTest_Variable_2.spvasm.expected.ir.dxc.hlsl
deleted file mode 100644
index 48e23f4..0000000
--- a/test/tint/unittest/reader/spirv/ImageQuerySizeLod_Arrayed_SignedResult_SignedLevel_SpvParserHandleTest_SampledImageAccessTest_Variable_2.spvasm.expected.ir.dxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Convert
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/unittest/reader/spirv/ImageQuerySizeLod_Arrayed_SignedResult_SignedLevel_SpvParserHandleTest_SampledImageAccessTest_Variable_2.spvasm.expected.ir.fxc.hlsl b/test/tint/unittest/reader/spirv/ImageQuerySizeLod_Arrayed_SignedResult_SignedLevel_SpvParserHandleTest_SampledImageAccessTest_Variable_2.spvasm.expected.ir.fxc.hlsl
deleted file mode 100644
index 48e23f4..0000000
--- a/test/tint/unittest/reader/spirv/ImageQuerySizeLod_Arrayed_SignedResult_SignedLevel_SpvParserHandleTest_SampledImageAccessTest_Variable_2.spvasm.expected.ir.fxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Convert
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/unittest/reader/spirv/ImageQuerySizeLod_Arrayed_SignedResult_SignedLevel_SpvParserHandleTest_SampledImageAccessTest_Variable_3.spvasm.expected.ir.dxc.hlsl b/test/tint/unittest/reader/spirv/ImageQuerySizeLod_Arrayed_SignedResult_SignedLevel_SpvParserHandleTest_SampledImageAccessTest_Variable_3.spvasm.expected.ir.dxc.hlsl
deleted file mode 100644
index 48e23f4..0000000
--- a/test/tint/unittest/reader/spirv/ImageQuerySizeLod_Arrayed_SignedResult_SignedLevel_SpvParserHandleTest_SampledImageAccessTest_Variable_3.spvasm.expected.ir.dxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Convert
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/unittest/reader/spirv/ImageQuerySizeLod_Arrayed_SignedResult_SignedLevel_SpvParserHandleTest_SampledImageAccessTest_Variable_3.spvasm.expected.ir.fxc.hlsl b/test/tint/unittest/reader/spirv/ImageQuerySizeLod_Arrayed_SignedResult_SignedLevel_SpvParserHandleTest_SampledImageAccessTest_Variable_3.spvasm.expected.ir.fxc.hlsl
deleted file mode 100644
index 48e23f4..0000000
--- a/test/tint/unittest/reader/spirv/ImageQuerySizeLod_Arrayed_SignedResult_SignedLevel_SpvParserHandleTest_SampledImageAccessTest_Variable_3.spvasm.expected.ir.fxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Convert
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/unittest/reader/spirv/ImageQuerySizeLod_NonArrayed_SignedResult_SignedLevel_SpvParserHandleTest_SampledImageAccessTest_Variable_1.spvasm.expected.ir.dxc.hlsl b/test/tint/unittest/reader/spirv/ImageQuerySizeLod_NonArrayed_SignedResult_SignedLevel_SpvParserHandleTest_SampledImageAccessTest_Variable_1.spvasm.expected.ir.dxc.hlsl
deleted file mode 100644
index 48e23f4..0000000
--- a/test/tint/unittest/reader/spirv/ImageQuerySizeLod_NonArrayed_SignedResult_SignedLevel_SpvParserHandleTest_SampledImageAccessTest_Variable_1.spvasm.expected.ir.dxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Convert
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/unittest/reader/spirv/ImageQuerySizeLod_NonArrayed_SignedResult_SignedLevel_SpvParserHandleTest_SampledImageAccessTest_Variable_1.spvasm.expected.ir.fxc.hlsl b/test/tint/unittest/reader/spirv/ImageQuerySizeLod_NonArrayed_SignedResult_SignedLevel_SpvParserHandleTest_SampledImageAccessTest_Variable_1.spvasm.expected.ir.fxc.hlsl
deleted file mode 100644
index 48e23f4..0000000
--- a/test/tint/unittest/reader/spirv/ImageQuerySizeLod_NonArrayed_SignedResult_SignedLevel_SpvParserHandleTest_SampledImageAccessTest_Variable_1.spvasm.expected.ir.fxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Convert
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/unittest/reader/spirv/ImageQuerySizeLod_NonArrayed_SignedResult_SignedLevel_SpvParserHandleTest_SampledImageAccessTest_Variable_2.spvasm.expected.ir.dxc.hlsl b/test/tint/unittest/reader/spirv/ImageQuerySizeLod_NonArrayed_SignedResult_SignedLevel_SpvParserHandleTest_SampledImageAccessTest_Variable_2.spvasm.expected.ir.dxc.hlsl
deleted file mode 100644
index 48e23f4..0000000
--- a/test/tint/unittest/reader/spirv/ImageQuerySizeLod_NonArrayed_SignedResult_SignedLevel_SpvParserHandleTest_SampledImageAccessTest_Variable_2.spvasm.expected.ir.dxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Convert
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/unittest/reader/spirv/ImageQuerySizeLod_NonArrayed_SignedResult_SignedLevel_SpvParserHandleTest_SampledImageAccessTest_Variable_2.spvasm.expected.ir.fxc.hlsl b/test/tint/unittest/reader/spirv/ImageQuerySizeLod_NonArrayed_SignedResult_SignedLevel_SpvParserHandleTest_SampledImageAccessTest_Variable_2.spvasm.expected.ir.fxc.hlsl
deleted file mode 100644
index 48e23f4..0000000
--- a/test/tint/unittest/reader/spirv/ImageQuerySizeLod_NonArrayed_SignedResult_SignedLevel_SpvParserHandleTest_SampledImageAccessTest_Variable_2.spvasm.expected.ir.fxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Convert
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/unittest/reader/spirv/ImageQuerySizeLod_NonArrayed_SignedResult_SignedLevel_SpvParserHandleTest_SampledImageAccessTest_Variable_3.spvasm.expected.ir.dxc.hlsl b/test/tint/unittest/reader/spirv/ImageQuerySizeLod_NonArrayed_SignedResult_SignedLevel_SpvParserHandleTest_SampledImageAccessTest_Variable_3.spvasm.expected.ir.dxc.hlsl
deleted file mode 100644
index 48e23f4..0000000
--- a/test/tint/unittest/reader/spirv/ImageQuerySizeLod_NonArrayed_SignedResult_SignedLevel_SpvParserHandleTest_SampledImageAccessTest_Variable_3.spvasm.expected.ir.dxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Convert
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/unittest/reader/spirv/ImageQuerySizeLod_NonArrayed_SignedResult_SignedLevel_SpvParserHandleTest_SampledImageAccessTest_Variable_3.spvasm.expected.ir.fxc.hlsl b/test/tint/unittest/reader/spirv/ImageQuerySizeLod_NonArrayed_SignedResult_SignedLevel_SpvParserHandleTest_SampledImageAccessTest_Variable_3.spvasm.expected.ir.fxc.hlsl
deleted file mode 100644
index 48e23f4..0000000
--- a/test/tint/unittest/reader/spirv/ImageQuerySizeLod_NonArrayed_SignedResult_SignedLevel_SpvParserHandleTest_SampledImageAccessTest_Variable_3.spvasm.expected.ir.fxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Convert
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/unittest/reader/spirv/ImageQuerySizeLod_NonArrayed_SignedResult_SignedLevel_SpvParserHandleTest_SampledImageAccessTest_Variable_4.spvasm.expected.ir.dxc.hlsl b/test/tint/unittest/reader/spirv/ImageQuerySizeLod_NonArrayed_SignedResult_SignedLevel_SpvParserHandleTest_SampledImageAccessTest_Variable_4.spvasm.expected.ir.dxc.hlsl
deleted file mode 100644
index 48e23f4..0000000
--- a/test/tint/unittest/reader/spirv/ImageQuerySizeLod_NonArrayed_SignedResult_SignedLevel_SpvParserHandleTest_SampledImageAccessTest_Variable_4.spvasm.expected.ir.dxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Convert
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/unittest/reader/spirv/ImageQuerySizeLod_NonArrayed_SignedResult_SignedLevel_SpvParserHandleTest_SampledImageAccessTest_Variable_4.spvasm.expected.ir.fxc.hlsl b/test/tint/unittest/reader/spirv/ImageQuerySizeLod_NonArrayed_SignedResult_SignedLevel_SpvParserHandleTest_SampledImageAccessTest_Variable_4.spvasm.expected.ir.fxc.hlsl
deleted file mode 100644
index 48e23f4..0000000
--- a/test/tint/unittest/reader/spirv/ImageQuerySizeLod_NonArrayed_SignedResult_SignedLevel_SpvParserHandleTest_SampledImageAccessTest_Variable_4.spvasm.expected.ir.fxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Convert
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/unittest/reader/spirv/ImageQuerySizeLod_NonArrayed_SignedResult_SignedLevel_SpvParserHandleTest_SampledImageAccessTest_Variable_5.spvasm.expected.ir.dxc.hlsl b/test/tint/unittest/reader/spirv/ImageQuerySizeLod_NonArrayed_SignedResult_SignedLevel_SpvParserHandleTest_SampledImageAccessTest_Variable_5.spvasm.expected.ir.dxc.hlsl
deleted file mode 100644
index 48e23f4..0000000
--- a/test/tint/unittest/reader/spirv/ImageQuerySizeLod_NonArrayed_SignedResult_SignedLevel_SpvParserHandleTest_SampledImageAccessTest_Variable_5.spvasm.expected.ir.dxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Convert
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/unittest/reader/spirv/ImageQuerySizeLod_NonArrayed_SignedResult_SignedLevel_SpvParserHandleTest_SampledImageAccessTest_Variable_5.spvasm.expected.ir.fxc.hlsl b/test/tint/unittest/reader/spirv/ImageQuerySizeLod_NonArrayed_SignedResult_SignedLevel_SpvParserHandleTest_SampledImageAccessTest_Variable_5.spvasm.expected.ir.fxc.hlsl
deleted file mode 100644
index 48e23f4..0000000
--- a/test/tint/unittest/reader/spirv/ImageQuerySizeLod_NonArrayed_SignedResult_SignedLevel_SpvParserHandleTest_SampledImageAccessTest_Variable_5.spvasm.expected.ir.fxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Convert
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/unittest/reader/spirv/ImageQuerySize_Arrayed_SignedResult_SpvParserHandleTest_SampledImageAccessTest_Variable_0.spvasm.expected.ir.dxc.hlsl b/test/tint/unittest/reader/spirv/ImageQuerySize_Arrayed_SignedResult_SpvParserHandleTest_SampledImageAccessTest_Variable_0.spvasm.expected.ir.dxc.hlsl
deleted file mode 100644
index 48e23f4..0000000
--- a/test/tint/unittest/reader/spirv/ImageQuerySize_Arrayed_SignedResult_SpvParserHandleTest_SampledImageAccessTest_Variable_0.spvasm.expected.ir.dxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Convert
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/unittest/reader/spirv/ImageQuerySize_Arrayed_SignedResult_SpvParserHandleTest_SampledImageAccessTest_Variable_0.spvasm.expected.ir.fxc.hlsl b/test/tint/unittest/reader/spirv/ImageQuerySize_Arrayed_SignedResult_SpvParserHandleTest_SampledImageAccessTest_Variable_0.spvasm.expected.ir.fxc.hlsl
deleted file mode 100644
index 48e23f4..0000000
--- a/test/tint/unittest/reader/spirv/ImageQuerySize_Arrayed_SignedResult_SpvParserHandleTest_SampledImageAccessTest_Variable_0.spvasm.expected.ir.fxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Convert
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/unittest/reader/spirv/ImageQuerySize_NonArrayed_SignedResult_SpvParserHandleTest_SampledImageAccessTest_Variable_1.spvasm.expected.ir.dxc.hlsl b/test/tint/unittest/reader/spirv/ImageQuerySize_NonArrayed_SignedResult_SpvParserHandleTest_SampledImageAccessTest_Variable_1.spvasm.expected.ir.dxc.hlsl
deleted file mode 100644
index 48e23f4..0000000
--- a/test/tint/unittest/reader/spirv/ImageQuerySize_NonArrayed_SignedResult_SpvParserHandleTest_SampledImageAccessTest_Variable_1.spvasm.expected.ir.dxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Convert
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/unittest/reader/spirv/ImageQuerySize_NonArrayed_SignedResult_SpvParserHandleTest_SampledImageAccessTest_Variable_1.spvasm.expected.ir.fxc.hlsl b/test/tint/unittest/reader/spirv/ImageQuerySize_NonArrayed_SignedResult_SpvParserHandleTest_SampledImageAccessTest_Variable_1.spvasm.expected.ir.fxc.hlsl
deleted file mode 100644
index 48e23f4..0000000
--- a/test/tint/unittest/reader/spirv/ImageQuerySize_NonArrayed_SignedResult_SpvParserHandleTest_SampledImageAccessTest_Variable_1.spvasm.expected.ir.fxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Convert
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/unittest/reader/spirv/ImageQuerySize_NonArrayed_SignedResult_SpvParserHandleTest_SampledImageAccessTest_Variable_2.spvasm.expected.ir.dxc.hlsl b/test/tint/unittest/reader/spirv/ImageQuerySize_NonArrayed_SignedResult_SpvParserHandleTest_SampledImageAccessTest_Variable_2.spvasm.expected.ir.dxc.hlsl
deleted file mode 100644
index 48e23f4..0000000
--- a/test/tint/unittest/reader/spirv/ImageQuerySize_NonArrayed_SignedResult_SpvParserHandleTest_SampledImageAccessTest_Variable_2.spvasm.expected.ir.dxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Convert
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/unittest/reader/spirv/ImageQuerySize_NonArrayed_SignedResult_SpvParserHandleTest_SampledImageAccessTest_Variable_2.spvasm.expected.ir.fxc.hlsl b/test/tint/unittest/reader/spirv/ImageQuerySize_NonArrayed_SignedResult_SpvParserHandleTest_SampledImageAccessTest_Variable_2.spvasm.expected.ir.fxc.hlsl
deleted file mode 100644
index 48e23f4..0000000
--- a/test/tint/unittest/reader/spirv/ImageQuerySize_NonArrayed_SignedResult_SpvParserHandleTest_SampledImageAccessTest_Variable_2.spvasm.expected.ir.fxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Convert
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/unittest/reader/spirv/ImageQuerySize_NonArrayed_SignedResult_SpvParserHandleTest_SampledImageAccessTest_Variable_3.spvasm.expected.ir.dxc.hlsl b/test/tint/unittest/reader/spirv/ImageQuerySize_NonArrayed_SignedResult_SpvParserHandleTest_SampledImageAccessTest_Variable_3.spvasm.expected.ir.dxc.hlsl
deleted file mode 100644
index 48e23f4..0000000
--- a/test/tint/unittest/reader/spirv/ImageQuerySize_NonArrayed_SignedResult_SpvParserHandleTest_SampledImageAccessTest_Variable_3.spvasm.expected.ir.dxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Convert
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/unittest/reader/spirv/ImageQuerySize_NonArrayed_SignedResult_SpvParserHandleTest_SampledImageAccessTest_Variable_3.spvasm.expected.ir.fxc.hlsl b/test/tint/unittest/reader/spirv/ImageQuerySize_NonArrayed_SignedResult_SpvParserHandleTest_SampledImageAccessTest_Variable_3.spvasm.expected.ir.fxc.hlsl
deleted file mode 100644
index 48e23f4..0000000
--- a/test/tint/unittest/reader/spirv/ImageQuerySize_NonArrayed_SignedResult_SpvParserHandleTest_SampledImageAccessTest_Variable_3.spvasm.expected.ir.fxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Convert
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/unittest/reader/spirv/ImageRead_OptionalParams_SpvParserHandleTest_ImageAccessTest_Variable_0.spvasm.expected.ir.dxc.hlsl b/test/tint/unittest/reader/spirv/ImageRead_OptionalParams_SpvParserHandleTest_ImageAccessTest_Variable_0.spvasm.expected.ir.dxc.hlsl
deleted file mode 100644
index fd28383..0000000
--- a/test/tint/unittest/reader/spirv/ImageRead_OptionalParams_SpvParserHandleTest_ImageAccessTest_Variable_0.spvasm.expected.ir.dxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureLoad
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix 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/ImageRead_OptionalParams_SpvParserHandleTest_ImageAccessTest_Variable_0.spvasm.expected.ir.fxc.hlsl b/test/tint/unittest/reader/spirv/ImageRead_OptionalParams_SpvParserHandleTest_ImageAccessTest_Variable_0.spvasm.expected.ir.fxc.hlsl
deleted file mode 100644
index fd28383..0000000
--- a/test/tint/unittest/reader/spirv/ImageRead_OptionalParams_SpvParserHandleTest_ImageAccessTest_Variable_0.spvasm.expected.ir.fxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureLoad
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix 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/ImageSampleDrefExplicitLod_SpvParserHandleTest_SampledImageAccessTest_Variable_0.spvasm.expected.ir.dxc.hlsl b/test/tint/unittest/reader/spirv/ImageSampleDrefExplicitLod_SpvParserHandleTest_SampledImageAccessTest_Variable_0.spvasm.expected.ir.dxc.hlsl
index 09571e5..f8e283a 100644
--- a/test/tint/unittest/reader/spirv/ImageSampleDrefExplicitLod_SpvParserHandleTest_SampledImageAccessTest_Variable_0.spvasm.expected.ir.dxc.hlsl
+++ b/test/tint/unittest/reader/spirv/ImageSampleDrefExplicitLod_SpvParserHandleTest_SampledImageAccessTest_Variable_0.spvasm.expected.ir.dxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureSampleCompareLevel
+..\..\src\tint\lang\hlsl\writer\printer\printer.cc:1010 internal compiler error: TINT_UNREACHABLE unhandled: textureSampleCompareLevel
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/unittest/reader/spirv/ImageSampleDrefExplicitLod_SpvParserHandleTest_SampledImageAccessTest_Variable_0.spvasm.expected.ir.fxc.hlsl b/test/tint/unittest/reader/spirv/ImageSampleDrefExplicitLod_SpvParserHandleTest_SampledImageAccessTest_Variable_0.spvasm.expected.ir.fxc.hlsl
index 09571e5..f8e283a 100644
--- a/test/tint/unittest/reader/spirv/ImageSampleDrefExplicitLod_SpvParserHandleTest_SampledImageAccessTest_Variable_0.spvasm.expected.ir.fxc.hlsl
+++ b/test/tint/unittest/reader/spirv/ImageSampleDrefExplicitLod_SpvParserHandleTest_SampledImageAccessTest_Variable_0.spvasm.expected.ir.fxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureSampleCompareLevel
+..\..\src\tint\lang\hlsl\writer\printer\printer.cc:1010 internal compiler error: TINT_UNREACHABLE unhandled: textureSampleCompareLevel
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/unittest/reader/spirv/ImageSampleDrefExplicitLod_SpvParserHandleTest_SampledImageAccessTest_Variable_1.spvasm.expected.ir.dxc.hlsl b/test/tint/unittest/reader/spirv/ImageSampleDrefExplicitLod_SpvParserHandleTest_SampledImageAccessTest_Variable_1.spvasm.expected.ir.dxc.hlsl
index 09571e5..f8e283a 100644
--- a/test/tint/unittest/reader/spirv/ImageSampleDrefExplicitLod_SpvParserHandleTest_SampledImageAccessTest_Variable_1.spvasm.expected.ir.dxc.hlsl
+++ b/test/tint/unittest/reader/spirv/ImageSampleDrefExplicitLod_SpvParserHandleTest_SampledImageAccessTest_Variable_1.spvasm.expected.ir.dxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureSampleCompareLevel
+..\..\src\tint\lang\hlsl\writer\printer\printer.cc:1010 internal compiler error: TINT_UNREACHABLE unhandled: textureSampleCompareLevel
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/unittest/reader/spirv/ImageSampleDrefExplicitLod_SpvParserHandleTest_SampledImageAccessTest_Variable_1.spvasm.expected.ir.fxc.hlsl b/test/tint/unittest/reader/spirv/ImageSampleDrefExplicitLod_SpvParserHandleTest_SampledImageAccessTest_Variable_1.spvasm.expected.ir.fxc.hlsl
index 09571e5..f8e283a 100644
--- a/test/tint/unittest/reader/spirv/ImageSampleDrefExplicitLod_SpvParserHandleTest_SampledImageAccessTest_Variable_1.spvasm.expected.ir.fxc.hlsl
+++ b/test/tint/unittest/reader/spirv/ImageSampleDrefExplicitLod_SpvParserHandleTest_SampledImageAccessTest_Variable_1.spvasm.expected.ir.fxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureSampleCompareLevel
+..\..\src\tint\lang\hlsl\writer\printer\printer.cc:1010 internal compiler error: TINT_UNREACHABLE unhandled: textureSampleCompareLevel
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/unittest/reader/spirv/ImageSampleDrefExplicitLod_SpvParserHandleTest_SampledImageAccessTest_Variable_2.spvasm.expected.ir.dxc.hlsl b/test/tint/unittest/reader/spirv/ImageSampleDrefExplicitLod_SpvParserHandleTest_SampledImageAccessTest_Variable_2.spvasm.expected.ir.dxc.hlsl
index 09571e5..f8e283a 100644
--- a/test/tint/unittest/reader/spirv/ImageSampleDrefExplicitLod_SpvParserHandleTest_SampledImageAccessTest_Variable_2.spvasm.expected.ir.dxc.hlsl
+++ b/test/tint/unittest/reader/spirv/ImageSampleDrefExplicitLod_SpvParserHandleTest_SampledImageAccessTest_Variable_2.spvasm.expected.ir.dxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureSampleCompareLevel
+..\..\src\tint\lang\hlsl\writer\printer\printer.cc:1010 internal compiler error: TINT_UNREACHABLE unhandled: textureSampleCompareLevel
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/unittest/reader/spirv/ImageSampleDrefExplicitLod_SpvParserHandleTest_SampledImageAccessTest_Variable_2.spvasm.expected.ir.fxc.hlsl b/test/tint/unittest/reader/spirv/ImageSampleDrefExplicitLod_SpvParserHandleTest_SampledImageAccessTest_Variable_2.spvasm.expected.ir.fxc.hlsl
index 09571e5..f8e283a 100644
--- a/test/tint/unittest/reader/spirv/ImageSampleDrefExplicitLod_SpvParserHandleTest_SampledImageAccessTest_Variable_2.spvasm.expected.ir.fxc.hlsl
+++ b/test/tint/unittest/reader/spirv/ImageSampleDrefExplicitLod_SpvParserHandleTest_SampledImageAccessTest_Variable_2.spvasm.expected.ir.fxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureSampleCompareLevel
+..\..\src\tint\lang\hlsl\writer\printer\printer.cc:1010 internal compiler error: TINT_UNREACHABLE unhandled: textureSampleCompareLevel
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/unittest/reader/spirv/ImageSampleDrefExplicitLod_SpvParserHandleTest_SampledImageAccessTest_Variable_3.spvasm.expected.ir.dxc.hlsl b/test/tint/unittest/reader/spirv/ImageSampleDrefExplicitLod_SpvParserHandleTest_SampledImageAccessTest_Variable_3.spvasm.expected.ir.dxc.hlsl
index 09571e5..f8e283a 100644
--- a/test/tint/unittest/reader/spirv/ImageSampleDrefExplicitLod_SpvParserHandleTest_SampledImageAccessTest_Variable_3.spvasm.expected.ir.dxc.hlsl
+++ b/test/tint/unittest/reader/spirv/ImageSampleDrefExplicitLod_SpvParserHandleTest_SampledImageAccessTest_Variable_3.spvasm.expected.ir.dxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureSampleCompareLevel
+..\..\src\tint\lang\hlsl\writer\printer\printer.cc:1010 internal compiler error: TINT_UNREACHABLE unhandled: textureSampleCompareLevel
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/unittest/reader/spirv/ImageSampleDrefExplicitLod_SpvParserHandleTest_SampledImageAccessTest_Variable_3.spvasm.expected.ir.fxc.hlsl b/test/tint/unittest/reader/spirv/ImageSampleDrefExplicitLod_SpvParserHandleTest_SampledImageAccessTest_Variable_3.spvasm.expected.ir.fxc.hlsl
index 09571e5..f8e283a 100644
--- a/test/tint/unittest/reader/spirv/ImageSampleDrefExplicitLod_SpvParserHandleTest_SampledImageAccessTest_Variable_3.spvasm.expected.ir.fxc.hlsl
+++ b/test/tint/unittest/reader/spirv/ImageSampleDrefExplicitLod_SpvParserHandleTest_SampledImageAccessTest_Variable_3.spvasm.expected.ir.fxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureSampleCompareLevel
+..\..\src\tint\lang\hlsl\writer\printer\printer.cc:1010 internal compiler error: TINT_UNREACHABLE unhandled: textureSampleCompareLevel
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/unittest/reader/spirv/ImageSampleDrefExplicitLod_SpvParserHandleTest_SampledImageAccessTest_Variable_4.spvasm.expected.ir.dxc.hlsl b/test/tint/unittest/reader/spirv/ImageSampleDrefExplicitLod_SpvParserHandleTest_SampledImageAccessTest_Variable_4.spvasm.expected.ir.dxc.hlsl
index 09571e5..f8e283a 100644
--- a/test/tint/unittest/reader/spirv/ImageSampleDrefExplicitLod_SpvParserHandleTest_SampledImageAccessTest_Variable_4.spvasm.expected.ir.dxc.hlsl
+++ b/test/tint/unittest/reader/spirv/ImageSampleDrefExplicitLod_SpvParserHandleTest_SampledImageAccessTest_Variable_4.spvasm.expected.ir.dxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureSampleCompareLevel
+..\..\src\tint\lang\hlsl\writer\printer\printer.cc:1010 internal compiler error: TINT_UNREACHABLE unhandled: textureSampleCompareLevel
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/unittest/reader/spirv/ImageSampleDrefExplicitLod_SpvParserHandleTest_SampledImageAccessTest_Variable_4.spvasm.expected.ir.fxc.hlsl b/test/tint/unittest/reader/spirv/ImageSampleDrefExplicitLod_SpvParserHandleTest_SampledImageAccessTest_Variable_4.spvasm.expected.ir.fxc.hlsl
index 09571e5..f8e283a 100644
--- a/test/tint/unittest/reader/spirv/ImageSampleDrefExplicitLod_SpvParserHandleTest_SampledImageAccessTest_Variable_4.spvasm.expected.ir.fxc.hlsl
+++ b/test/tint/unittest/reader/spirv/ImageSampleDrefExplicitLod_SpvParserHandleTest_SampledImageAccessTest_Variable_4.spvasm.expected.ir.fxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureSampleCompareLevel
+..\..\src\tint\lang\hlsl\writer\printer\printer.cc:1010 internal compiler error: TINT_UNREACHABLE unhandled: textureSampleCompareLevel
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/unittest/reader/spirv/ImageSampleDrefExplicitLod_SpvParserHandleTest_SampledImageAccessTest_Variable_5.spvasm.expected.ir.dxc.hlsl b/test/tint/unittest/reader/spirv/ImageSampleDrefExplicitLod_SpvParserHandleTest_SampledImageAccessTest_Variable_5.spvasm.expected.ir.dxc.hlsl
index 09571e5..f8e283a 100644
--- a/test/tint/unittest/reader/spirv/ImageSampleDrefExplicitLod_SpvParserHandleTest_SampledImageAccessTest_Variable_5.spvasm.expected.ir.dxc.hlsl
+++ b/test/tint/unittest/reader/spirv/ImageSampleDrefExplicitLod_SpvParserHandleTest_SampledImageAccessTest_Variable_5.spvasm.expected.ir.dxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureSampleCompareLevel
+..\..\src\tint\lang\hlsl\writer\printer\printer.cc:1010 internal compiler error: TINT_UNREACHABLE unhandled: textureSampleCompareLevel
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/unittest/reader/spirv/ImageSampleDrefExplicitLod_SpvParserHandleTest_SampledImageAccessTest_Variable_5.spvasm.expected.ir.fxc.hlsl b/test/tint/unittest/reader/spirv/ImageSampleDrefExplicitLod_SpvParserHandleTest_SampledImageAccessTest_Variable_5.spvasm.expected.ir.fxc.hlsl
index 09571e5..f8e283a 100644
--- a/test/tint/unittest/reader/spirv/ImageSampleDrefExplicitLod_SpvParserHandleTest_SampledImageAccessTest_Variable_5.spvasm.expected.ir.fxc.hlsl
+++ b/test/tint/unittest/reader/spirv/ImageSampleDrefExplicitLod_SpvParserHandleTest_SampledImageAccessTest_Variable_5.spvasm.expected.ir.fxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureSampleCompareLevel
+..\..\src\tint\lang\hlsl\writer\printer\printer.cc:1010 internal compiler error: TINT_UNREACHABLE unhandled: textureSampleCompareLevel
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/unittest/reader/spirv/ImageSampleDrefImplicitLod_SpvParserHandleTest_SampledImageAccessTest_Variable_0.spvasm.expected.ir.dxc.hlsl b/test/tint/unittest/reader/spirv/ImageSampleDrefImplicitLod_SpvParserHandleTest_SampledImageAccessTest_Variable_0.spvasm.expected.ir.dxc.hlsl
index 16966cd..b7acf20 100644
--- a/test/tint/unittest/reader/spirv/ImageSampleDrefImplicitLod_SpvParserHandleTest_SampledImageAccessTest_Variable_0.spvasm.expected.ir.dxc.hlsl
+++ b/test/tint/unittest/reader/spirv/ImageSampleDrefImplicitLod_SpvParserHandleTest_SampledImageAccessTest_Variable_0.spvasm.expected.ir.dxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureSampleCompare
+..\..\src\tint\lang\hlsl\writer\printer\printer.cc:1010 internal compiler error: TINT_UNREACHABLE unhandled: textureSampleCompare
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/unittest/reader/spirv/ImageSampleDrefImplicitLod_SpvParserHandleTest_SampledImageAccessTest_Variable_0.spvasm.expected.ir.fxc.hlsl b/test/tint/unittest/reader/spirv/ImageSampleDrefImplicitLod_SpvParserHandleTest_SampledImageAccessTest_Variable_0.spvasm.expected.ir.fxc.hlsl
index 16966cd..b7acf20 100644
--- a/test/tint/unittest/reader/spirv/ImageSampleDrefImplicitLod_SpvParserHandleTest_SampledImageAccessTest_Variable_0.spvasm.expected.ir.fxc.hlsl
+++ b/test/tint/unittest/reader/spirv/ImageSampleDrefImplicitLod_SpvParserHandleTest_SampledImageAccessTest_Variable_0.spvasm.expected.ir.fxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureSampleCompare
+..\..\src\tint\lang\hlsl\writer\printer\printer.cc:1010 internal compiler error: TINT_UNREACHABLE unhandled: textureSampleCompare
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/unittest/reader/spirv/ImageSampleDrefImplicitLod_SpvParserHandleTest_SampledImageAccessTest_Variable_1.spvasm.expected.ir.dxc.hlsl b/test/tint/unittest/reader/spirv/ImageSampleDrefImplicitLod_SpvParserHandleTest_SampledImageAccessTest_Variable_1.spvasm.expected.ir.dxc.hlsl
index 16966cd..b7acf20 100644
--- a/test/tint/unittest/reader/spirv/ImageSampleDrefImplicitLod_SpvParserHandleTest_SampledImageAccessTest_Variable_1.spvasm.expected.ir.dxc.hlsl
+++ b/test/tint/unittest/reader/spirv/ImageSampleDrefImplicitLod_SpvParserHandleTest_SampledImageAccessTest_Variable_1.spvasm.expected.ir.dxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureSampleCompare
+..\..\src\tint\lang\hlsl\writer\printer\printer.cc:1010 internal compiler error: TINT_UNREACHABLE unhandled: textureSampleCompare
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/unittest/reader/spirv/ImageSampleDrefImplicitLod_SpvParserHandleTest_SampledImageAccessTest_Variable_1.spvasm.expected.ir.fxc.hlsl b/test/tint/unittest/reader/spirv/ImageSampleDrefImplicitLod_SpvParserHandleTest_SampledImageAccessTest_Variable_1.spvasm.expected.ir.fxc.hlsl
index 16966cd..b7acf20 100644
--- a/test/tint/unittest/reader/spirv/ImageSampleDrefImplicitLod_SpvParserHandleTest_SampledImageAccessTest_Variable_1.spvasm.expected.ir.fxc.hlsl
+++ b/test/tint/unittest/reader/spirv/ImageSampleDrefImplicitLod_SpvParserHandleTest_SampledImageAccessTest_Variable_1.spvasm.expected.ir.fxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureSampleCompare
+..\..\src\tint\lang\hlsl\writer\printer\printer.cc:1010 internal compiler error: TINT_UNREACHABLE unhandled: textureSampleCompare
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/unittest/reader/spirv/ImageSampleDrefImplicitLod_SpvParserHandleTest_SampledImageAccessTest_Variable_2.spvasm.expected.ir.dxc.hlsl b/test/tint/unittest/reader/spirv/ImageSampleDrefImplicitLod_SpvParserHandleTest_SampledImageAccessTest_Variable_2.spvasm.expected.ir.dxc.hlsl
index 16966cd..b7acf20 100644
--- a/test/tint/unittest/reader/spirv/ImageSampleDrefImplicitLod_SpvParserHandleTest_SampledImageAccessTest_Variable_2.spvasm.expected.ir.dxc.hlsl
+++ b/test/tint/unittest/reader/spirv/ImageSampleDrefImplicitLod_SpvParserHandleTest_SampledImageAccessTest_Variable_2.spvasm.expected.ir.dxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureSampleCompare
+..\..\src\tint\lang\hlsl\writer\printer\printer.cc:1010 internal compiler error: TINT_UNREACHABLE unhandled: textureSampleCompare
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/unittest/reader/spirv/ImageSampleDrefImplicitLod_SpvParserHandleTest_SampledImageAccessTest_Variable_2.spvasm.expected.ir.fxc.hlsl b/test/tint/unittest/reader/spirv/ImageSampleDrefImplicitLod_SpvParserHandleTest_SampledImageAccessTest_Variable_2.spvasm.expected.ir.fxc.hlsl
index 16966cd..b7acf20 100644
--- a/test/tint/unittest/reader/spirv/ImageSampleDrefImplicitLod_SpvParserHandleTest_SampledImageAccessTest_Variable_2.spvasm.expected.ir.fxc.hlsl
+++ b/test/tint/unittest/reader/spirv/ImageSampleDrefImplicitLod_SpvParserHandleTest_SampledImageAccessTest_Variable_2.spvasm.expected.ir.fxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureSampleCompare
+..\..\src\tint\lang\hlsl\writer\printer\printer.cc:1010 internal compiler error: TINT_UNREACHABLE unhandled: textureSampleCompare
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/unittest/reader/spirv/ImageSampleDrefImplicitLod_SpvParserHandleTest_SampledImageAccessTest_Variable_3.spvasm.expected.ir.dxc.hlsl b/test/tint/unittest/reader/spirv/ImageSampleDrefImplicitLod_SpvParserHandleTest_SampledImageAccessTest_Variable_3.spvasm.expected.ir.dxc.hlsl
index 16966cd..b7acf20 100644
--- a/test/tint/unittest/reader/spirv/ImageSampleDrefImplicitLod_SpvParserHandleTest_SampledImageAccessTest_Variable_3.spvasm.expected.ir.dxc.hlsl
+++ b/test/tint/unittest/reader/spirv/ImageSampleDrefImplicitLod_SpvParserHandleTest_SampledImageAccessTest_Variable_3.spvasm.expected.ir.dxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureSampleCompare
+..\..\src\tint\lang\hlsl\writer\printer\printer.cc:1010 internal compiler error: TINT_UNREACHABLE unhandled: textureSampleCompare
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/unittest/reader/spirv/ImageSampleDrefImplicitLod_SpvParserHandleTest_SampledImageAccessTest_Variable_3.spvasm.expected.ir.fxc.hlsl b/test/tint/unittest/reader/spirv/ImageSampleDrefImplicitLod_SpvParserHandleTest_SampledImageAccessTest_Variable_3.spvasm.expected.ir.fxc.hlsl
index 16966cd..b7acf20 100644
--- a/test/tint/unittest/reader/spirv/ImageSampleDrefImplicitLod_SpvParserHandleTest_SampledImageAccessTest_Variable_3.spvasm.expected.ir.fxc.hlsl
+++ b/test/tint/unittest/reader/spirv/ImageSampleDrefImplicitLod_SpvParserHandleTest_SampledImageAccessTest_Variable_3.spvasm.expected.ir.fxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureSampleCompare
+..\..\src\tint\lang\hlsl\writer\printer\printer.cc:1010 internal compiler error: TINT_UNREACHABLE unhandled: textureSampleCompare
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/unittest/reader/spirv/ImageSampleExplicitLod_DepthTexture_SpvParserHandleTest_SampledImageAccessTest_Variable_0.spvasm.expected.ir.dxc.hlsl b/test/tint/unittest/reader/spirv/ImageSampleExplicitLod_DepthTexture_SpvParserHandleTest_SampledImageAccessTest_Variable_0.spvasm.expected.ir.dxc.hlsl
index b903e3f..cf26da3 100644
--- a/test/tint/unittest/reader/spirv/ImageSampleExplicitLod_DepthTexture_SpvParserHandleTest_SampledImageAccessTest_Variable_0.spvasm.expected.ir.dxc.hlsl
+++ b/test/tint/unittest/reader/spirv/ImageSampleExplicitLod_DepthTexture_SpvParserHandleTest_SampledImageAccessTest_Variable_0.spvasm.expected.ir.dxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureSampleLevel
+..\..\src\tint\lang\hlsl\writer\printer\printer.cc:1010 internal compiler error: TINT_UNREACHABLE unhandled: textureSampleLevel
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/unittest/reader/spirv/ImageSampleExplicitLod_DepthTexture_SpvParserHandleTest_SampledImageAccessTest_Variable_0.spvasm.expected.ir.fxc.hlsl b/test/tint/unittest/reader/spirv/ImageSampleExplicitLod_DepthTexture_SpvParserHandleTest_SampledImageAccessTest_Variable_0.spvasm.expected.ir.fxc.hlsl
index b903e3f..cf26da3 100644
--- a/test/tint/unittest/reader/spirv/ImageSampleExplicitLod_DepthTexture_SpvParserHandleTest_SampledImageAccessTest_Variable_0.spvasm.expected.ir.fxc.hlsl
+++ b/test/tint/unittest/reader/spirv/ImageSampleExplicitLod_DepthTexture_SpvParserHandleTest_SampledImageAccessTest_Variable_0.spvasm.expected.ir.fxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureSampleLevel
+..\..\src\tint\lang\hlsl\writer\printer\printer.cc:1010 internal compiler error: TINT_UNREACHABLE unhandled: textureSampleLevel
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/unittest/reader/spirv/ImageSampleExplicitLod_DepthTexture_SpvParserHandleTest_SampledImageAccessTest_Variable_1.spvasm.expected.ir.dxc.hlsl b/test/tint/unittest/reader/spirv/ImageSampleExplicitLod_DepthTexture_SpvParserHandleTest_SampledImageAccessTest_Variable_1.spvasm.expected.ir.dxc.hlsl
index c6e1d96..cf26da3 100644
--- a/test/tint/unittest/reader/spirv/ImageSampleExplicitLod_DepthTexture_SpvParserHandleTest_SampledImageAccessTest_Variable_1.spvasm.expected.ir.dxc.hlsl
+++ b/test/tint/unittest/reader/spirv/ImageSampleExplicitLod_DepthTexture_SpvParserHandleTest_SampledImageAccessTest_Variable_1.spvasm.expected.ir.dxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Construct
+..\..\src\tint\lang\hlsl\writer\printer\printer.cc:1010 internal compiler error: TINT_UNREACHABLE unhandled: textureSampleLevel
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/unittest/reader/spirv/ImageSampleExplicitLod_DepthTexture_SpvParserHandleTest_SampledImageAccessTest_Variable_1.spvasm.expected.ir.fxc.hlsl b/test/tint/unittest/reader/spirv/ImageSampleExplicitLod_DepthTexture_SpvParserHandleTest_SampledImageAccessTest_Variable_1.spvasm.expected.ir.fxc.hlsl
index c6e1d96..cf26da3 100644
--- a/test/tint/unittest/reader/spirv/ImageSampleExplicitLod_DepthTexture_SpvParserHandleTest_SampledImageAccessTest_Variable_1.spvasm.expected.ir.fxc.hlsl
+++ b/test/tint/unittest/reader/spirv/ImageSampleExplicitLod_DepthTexture_SpvParserHandleTest_SampledImageAccessTest_Variable_1.spvasm.expected.ir.fxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Construct
+..\..\src\tint\lang\hlsl\writer\printer\printer.cc:1010 internal compiler error: TINT_UNREACHABLE unhandled: textureSampleLevel
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/unittest/reader/spirv/ImageSampleExplicitLod_UsingGrad_SpvParserHandleTest_SampledImageAccessTest_Variable_0.spvasm.expected.ir.dxc.hlsl b/test/tint/unittest/reader/spirv/ImageSampleExplicitLod_UsingGrad_SpvParserHandleTest_SampledImageAccessTest_Variable_0.spvasm.expected.ir.dxc.hlsl
index 1dd1a58..2729ab6 100644
--- a/test/tint/unittest/reader/spirv/ImageSampleExplicitLod_UsingGrad_SpvParserHandleTest_SampledImageAccessTest_Variable_0.spvasm.expected.ir.dxc.hlsl
+++ b/test/tint/unittest/reader/spirv/ImageSampleExplicitLod_UsingGrad_SpvParserHandleTest_SampledImageAccessTest_Variable_0.spvasm.expected.ir.dxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureSampleGrad
+..\..\src\tint\lang\hlsl\writer\printer\printer.cc:1010 internal compiler error: TINT_UNREACHABLE unhandled: textureSampleGrad
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/unittest/reader/spirv/ImageSampleExplicitLod_UsingGrad_SpvParserHandleTest_SampledImageAccessTest_Variable_0.spvasm.expected.ir.fxc.hlsl b/test/tint/unittest/reader/spirv/ImageSampleExplicitLod_UsingGrad_SpvParserHandleTest_SampledImageAccessTest_Variable_0.spvasm.expected.ir.fxc.hlsl
index 1dd1a58..2729ab6 100644
--- a/test/tint/unittest/reader/spirv/ImageSampleExplicitLod_UsingGrad_SpvParserHandleTest_SampledImageAccessTest_Variable_0.spvasm.expected.ir.fxc.hlsl
+++ b/test/tint/unittest/reader/spirv/ImageSampleExplicitLod_UsingGrad_SpvParserHandleTest_SampledImageAccessTest_Variable_0.spvasm.expected.ir.fxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureSampleGrad
+..\..\src\tint\lang\hlsl\writer\printer\printer.cc:1010 internal compiler error: TINT_UNREACHABLE unhandled: textureSampleGrad
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/unittest/reader/spirv/ImageSampleExplicitLod_UsingGrad_SpvParserHandleTest_SampledImageAccessTest_Variable_1.spvasm.expected.ir.dxc.hlsl b/test/tint/unittest/reader/spirv/ImageSampleExplicitLod_UsingGrad_SpvParserHandleTest_SampledImageAccessTest_Variable_1.spvasm.expected.ir.dxc.hlsl
index 1dd1a58..2729ab6 100644
--- a/test/tint/unittest/reader/spirv/ImageSampleExplicitLod_UsingGrad_SpvParserHandleTest_SampledImageAccessTest_Variable_1.spvasm.expected.ir.dxc.hlsl
+++ b/test/tint/unittest/reader/spirv/ImageSampleExplicitLod_UsingGrad_SpvParserHandleTest_SampledImageAccessTest_Variable_1.spvasm.expected.ir.dxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureSampleGrad
+..\..\src\tint\lang\hlsl\writer\printer\printer.cc:1010 internal compiler error: TINT_UNREACHABLE unhandled: textureSampleGrad
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/unittest/reader/spirv/ImageSampleExplicitLod_UsingGrad_SpvParserHandleTest_SampledImageAccessTest_Variable_1.spvasm.expected.ir.fxc.hlsl b/test/tint/unittest/reader/spirv/ImageSampleExplicitLod_UsingGrad_SpvParserHandleTest_SampledImageAccessTest_Variable_1.spvasm.expected.ir.fxc.hlsl
index 1dd1a58..2729ab6 100644
--- a/test/tint/unittest/reader/spirv/ImageSampleExplicitLod_UsingGrad_SpvParserHandleTest_SampledImageAccessTest_Variable_1.spvasm.expected.ir.fxc.hlsl
+++ b/test/tint/unittest/reader/spirv/ImageSampleExplicitLod_UsingGrad_SpvParserHandleTest_SampledImageAccessTest_Variable_1.spvasm.expected.ir.fxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureSampleGrad
+..\..\src\tint\lang\hlsl\writer\printer\printer.cc:1010 internal compiler error: TINT_UNREACHABLE unhandled: textureSampleGrad
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/unittest/reader/spirv/ImageSampleExplicitLod_UsingGrad_SpvParserHandleTest_SampledImageAccessTest_Variable_2.spvasm.expected.ir.dxc.hlsl b/test/tint/unittest/reader/spirv/ImageSampleExplicitLod_UsingGrad_SpvParserHandleTest_SampledImageAccessTest_Variable_2.spvasm.expected.ir.dxc.hlsl
index 1dd1a58..2729ab6 100644
--- a/test/tint/unittest/reader/spirv/ImageSampleExplicitLod_UsingGrad_SpvParserHandleTest_SampledImageAccessTest_Variable_2.spvasm.expected.ir.dxc.hlsl
+++ b/test/tint/unittest/reader/spirv/ImageSampleExplicitLod_UsingGrad_SpvParserHandleTest_SampledImageAccessTest_Variable_2.spvasm.expected.ir.dxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureSampleGrad
+..\..\src\tint\lang\hlsl\writer\printer\printer.cc:1010 internal compiler error: TINT_UNREACHABLE unhandled: textureSampleGrad
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/unittest/reader/spirv/ImageSampleExplicitLod_UsingGrad_SpvParserHandleTest_SampledImageAccessTest_Variable_2.spvasm.expected.ir.fxc.hlsl b/test/tint/unittest/reader/spirv/ImageSampleExplicitLod_UsingGrad_SpvParserHandleTest_SampledImageAccessTest_Variable_2.spvasm.expected.ir.fxc.hlsl
index 1dd1a58..2729ab6 100644
--- a/test/tint/unittest/reader/spirv/ImageSampleExplicitLod_UsingGrad_SpvParserHandleTest_SampledImageAccessTest_Variable_2.spvasm.expected.ir.fxc.hlsl
+++ b/test/tint/unittest/reader/spirv/ImageSampleExplicitLod_UsingGrad_SpvParserHandleTest_SampledImageAccessTest_Variable_2.spvasm.expected.ir.fxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureSampleGrad
+..\..\src\tint\lang\hlsl\writer\printer\printer.cc:1010 internal compiler error: TINT_UNREACHABLE unhandled: textureSampleGrad
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/unittest/reader/spirv/ImageSampleExplicitLod_UsingGrad_SpvParserHandleTest_SampledImageAccessTest_Variable_3.spvasm.expected.ir.dxc.hlsl b/test/tint/unittest/reader/spirv/ImageSampleExplicitLod_UsingGrad_SpvParserHandleTest_SampledImageAccessTest_Variable_3.spvasm.expected.ir.dxc.hlsl
index 1dd1a58..2729ab6 100644
--- a/test/tint/unittest/reader/spirv/ImageSampleExplicitLod_UsingGrad_SpvParserHandleTest_SampledImageAccessTest_Variable_3.spvasm.expected.ir.dxc.hlsl
+++ b/test/tint/unittest/reader/spirv/ImageSampleExplicitLod_UsingGrad_SpvParserHandleTest_SampledImageAccessTest_Variable_3.spvasm.expected.ir.dxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureSampleGrad
+..\..\src\tint\lang\hlsl\writer\printer\printer.cc:1010 internal compiler error: TINT_UNREACHABLE unhandled: textureSampleGrad
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/unittest/reader/spirv/ImageSampleExplicitLod_UsingGrad_SpvParserHandleTest_SampledImageAccessTest_Variable_3.spvasm.expected.ir.fxc.hlsl b/test/tint/unittest/reader/spirv/ImageSampleExplicitLod_UsingGrad_SpvParserHandleTest_SampledImageAccessTest_Variable_3.spvasm.expected.ir.fxc.hlsl
index 1dd1a58..2729ab6 100644
--- a/test/tint/unittest/reader/spirv/ImageSampleExplicitLod_UsingGrad_SpvParserHandleTest_SampledImageAccessTest_Variable_3.spvasm.expected.ir.fxc.hlsl
+++ b/test/tint/unittest/reader/spirv/ImageSampleExplicitLod_UsingGrad_SpvParserHandleTest_SampledImageAccessTest_Variable_3.spvasm.expected.ir.fxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureSampleGrad
+..\..\src\tint\lang\hlsl\writer\printer\printer.cc:1010 internal compiler error: TINT_UNREACHABLE unhandled: textureSampleGrad
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/unittest/reader/spirv/ImageSampleExplicitLod_UsingGrad_SpvParserHandleTest_SampledImageAccessTest_Variable_4.spvasm.expected.ir.dxc.hlsl b/test/tint/unittest/reader/spirv/ImageSampleExplicitLod_UsingGrad_SpvParserHandleTest_SampledImageAccessTest_Variable_4.spvasm.expected.ir.dxc.hlsl
index 1dd1a58..2729ab6 100644
--- a/test/tint/unittest/reader/spirv/ImageSampleExplicitLod_UsingGrad_SpvParserHandleTest_SampledImageAccessTest_Variable_4.spvasm.expected.ir.dxc.hlsl
+++ b/test/tint/unittest/reader/spirv/ImageSampleExplicitLod_UsingGrad_SpvParserHandleTest_SampledImageAccessTest_Variable_4.spvasm.expected.ir.dxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureSampleGrad
+..\..\src\tint\lang\hlsl\writer\printer\printer.cc:1010 internal compiler error: TINT_UNREACHABLE unhandled: textureSampleGrad
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/unittest/reader/spirv/ImageSampleExplicitLod_UsingGrad_SpvParserHandleTest_SampledImageAccessTest_Variable_4.spvasm.expected.ir.fxc.hlsl b/test/tint/unittest/reader/spirv/ImageSampleExplicitLod_UsingGrad_SpvParserHandleTest_SampledImageAccessTest_Variable_4.spvasm.expected.ir.fxc.hlsl
index 1dd1a58..2729ab6 100644
--- a/test/tint/unittest/reader/spirv/ImageSampleExplicitLod_UsingGrad_SpvParserHandleTest_SampledImageAccessTest_Variable_4.spvasm.expected.ir.fxc.hlsl
+++ b/test/tint/unittest/reader/spirv/ImageSampleExplicitLod_UsingGrad_SpvParserHandleTest_SampledImageAccessTest_Variable_4.spvasm.expected.ir.fxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureSampleGrad
+..\..\src\tint\lang\hlsl\writer\printer\printer.cc:1010 internal compiler error: TINT_UNREACHABLE unhandled: textureSampleGrad
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/unittest/reader/spirv/ImageSampleExplicitLod_UsingGrad_SpvParserHandleTest_SampledImageAccessTest_Variable_5.spvasm.expected.ir.dxc.hlsl b/test/tint/unittest/reader/spirv/ImageSampleExplicitLod_UsingGrad_SpvParserHandleTest_SampledImageAccessTest_Variable_5.spvasm.expected.ir.dxc.hlsl
index 1dd1a58..2729ab6 100644
--- a/test/tint/unittest/reader/spirv/ImageSampleExplicitLod_UsingGrad_SpvParserHandleTest_SampledImageAccessTest_Variable_5.spvasm.expected.ir.dxc.hlsl
+++ b/test/tint/unittest/reader/spirv/ImageSampleExplicitLod_UsingGrad_SpvParserHandleTest_SampledImageAccessTest_Variable_5.spvasm.expected.ir.dxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureSampleGrad
+..\..\src\tint\lang\hlsl\writer\printer\printer.cc:1010 internal compiler error: TINT_UNREACHABLE unhandled: textureSampleGrad
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/unittest/reader/spirv/ImageSampleExplicitLod_UsingGrad_SpvParserHandleTest_SampledImageAccessTest_Variable_5.spvasm.expected.ir.fxc.hlsl b/test/tint/unittest/reader/spirv/ImageSampleExplicitLod_UsingGrad_SpvParserHandleTest_SampledImageAccessTest_Variable_5.spvasm.expected.ir.fxc.hlsl
index 1dd1a58..2729ab6 100644
--- a/test/tint/unittest/reader/spirv/ImageSampleExplicitLod_UsingGrad_SpvParserHandleTest_SampledImageAccessTest_Variable_5.spvasm.expected.ir.fxc.hlsl
+++ b/test/tint/unittest/reader/spirv/ImageSampleExplicitLod_UsingGrad_SpvParserHandleTest_SampledImageAccessTest_Variable_5.spvasm.expected.ir.fxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureSampleGrad
+..\..\src\tint\lang\hlsl\writer\printer\printer.cc:1010 internal compiler error: TINT_UNREACHABLE unhandled: textureSampleGrad
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/unittest/reader/spirv/ImageSampleExplicitLod_UsingLod_SpvParserHandleTest_SampledImageAccessTest_Variable_0.spvasm.expected.ir.dxc.hlsl b/test/tint/unittest/reader/spirv/ImageSampleExplicitLod_UsingLod_SpvParserHandleTest_SampledImageAccessTest_Variable_0.spvasm.expected.ir.dxc.hlsl
index b903e3f..cf26da3 100644
--- a/test/tint/unittest/reader/spirv/ImageSampleExplicitLod_UsingLod_SpvParserHandleTest_SampledImageAccessTest_Variable_0.spvasm.expected.ir.dxc.hlsl
+++ b/test/tint/unittest/reader/spirv/ImageSampleExplicitLod_UsingLod_SpvParserHandleTest_SampledImageAccessTest_Variable_0.spvasm.expected.ir.dxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureSampleLevel
+..\..\src\tint\lang\hlsl\writer\printer\printer.cc:1010 internal compiler error: TINT_UNREACHABLE unhandled: textureSampleLevel
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/unittest/reader/spirv/ImageSampleExplicitLod_UsingLod_SpvParserHandleTest_SampledImageAccessTest_Variable_0.spvasm.expected.ir.fxc.hlsl b/test/tint/unittest/reader/spirv/ImageSampleExplicitLod_UsingLod_SpvParserHandleTest_SampledImageAccessTest_Variable_0.spvasm.expected.ir.fxc.hlsl
index b903e3f..cf26da3 100644
--- a/test/tint/unittest/reader/spirv/ImageSampleExplicitLod_UsingLod_SpvParserHandleTest_SampledImageAccessTest_Variable_0.spvasm.expected.ir.fxc.hlsl
+++ b/test/tint/unittest/reader/spirv/ImageSampleExplicitLod_UsingLod_SpvParserHandleTest_SampledImageAccessTest_Variable_0.spvasm.expected.ir.fxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureSampleLevel
+..\..\src\tint\lang\hlsl\writer\printer\printer.cc:1010 internal compiler error: TINT_UNREACHABLE unhandled: textureSampleLevel
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/unittest/reader/spirv/ImageSampleExplicitLod_UsingLod_SpvParserHandleTest_SampledImageAccessTest_Variable_1.spvasm.expected.ir.dxc.hlsl b/test/tint/unittest/reader/spirv/ImageSampleExplicitLod_UsingLod_SpvParserHandleTest_SampledImageAccessTest_Variable_1.spvasm.expected.ir.dxc.hlsl
index b903e3f..cf26da3 100644
--- a/test/tint/unittest/reader/spirv/ImageSampleExplicitLod_UsingLod_SpvParserHandleTest_SampledImageAccessTest_Variable_1.spvasm.expected.ir.dxc.hlsl
+++ b/test/tint/unittest/reader/spirv/ImageSampleExplicitLod_UsingLod_SpvParserHandleTest_SampledImageAccessTest_Variable_1.spvasm.expected.ir.dxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureSampleLevel
+..\..\src\tint\lang\hlsl\writer\printer\printer.cc:1010 internal compiler error: TINT_UNREACHABLE unhandled: textureSampleLevel
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/unittest/reader/spirv/ImageSampleExplicitLod_UsingLod_SpvParserHandleTest_SampledImageAccessTest_Variable_1.spvasm.expected.ir.fxc.hlsl b/test/tint/unittest/reader/spirv/ImageSampleExplicitLod_UsingLod_SpvParserHandleTest_SampledImageAccessTest_Variable_1.spvasm.expected.ir.fxc.hlsl
index b903e3f..cf26da3 100644
--- a/test/tint/unittest/reader/spirv/ImageSampleExplicitLod_UsingLod_SpvParserHandleTest_SampledImageAccessTest_Variable_1.spvasm.expected.ir.fxc.hlsl
+++ b/test/tint/unittest/reader/spirv/ImageSampleExplicitLod_UsingLod_SpvParserHandleTest_SampledImageAccessTest_Variable_1.spvasm.expected.ir.fxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureSampleLevel
+..\..\src\tint\lang\hlsl\writer\printer\printer.cc:1010 internal compiler error: TINT_UNREACHABLE unhandled: textureSampleLevel
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/unittest/reader/spirv/ImageSampleExplicitLod_UsingLod_SpvParserHandleTest_SampledImageAccessTest_Variable_2.spvasm.expected.ir.dxc.hlsl b/test/tint/unittest/reader/spirv/ImageSampleExplicitLod_UsingLod_SpvParserHandleTest_SampledImageAccessTest_Variable_2.spvasm.expected.ir.dxc.hlsl
index b903e3f..cf26da3 100644
--- a/test/tint/unittest/reader/spirv/ImageSampleExplicitLod_UsingLod_SpvParserHandleTest_SampledImageAccessTest_Variable_2.spvasm.expected.ir.dxc.hlsl
+++ b/test/tint/unittest/reader/spirv/ImageSampleExplicitLod_UsingLod_SpvParserHandleTest_SampledImageAccessTest_Variable_2.spvasm.expected.ir.dxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureSampleLevel
+..\..\src\tint\lang\hlsl\writer\printer\printer.cc:1010 internal compiler error: TINT_UNREACHABLE unhandled: textureSampleLevel
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/unittest/reader/spirv/ImageSampleExplicitLod_UsingLod_SpvParserHandleTest_SampledImageAccessTest_Variable_2.spvasm.expected.ir.fxc.hlsl b/test/tint/unittest/reader/spirv/ImageSampleExplicitLod_UsingLod_SpvParserHandleTest_SampledImageAccessTest_Variable_2.spvasm.expected.ir.fxc.hlsl
index b903e3f..cf26da3 100644
--- a/test/tint/unittest/reader/spirv/ImageSampleExplicitLod_UsingLod_SpvParserHandleTest_SampledImageAccessTest_Variable_2.spvasm.expected.ir.fxc.hlsl
+++ b/test/tint/unittest/reader/spirv/ImageSampleExplicitLod_UsingLod_SpvParserHandleTest_SampledImageAccessTest_Variable_2.spvasm.expected.ir.fxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureSampleLevel
+..\..\src\tint\lang\hlsl\writer\printer\printer.cc:1010 internal compiler error: TINT_UNREACHABLE unhandled: textureSampleLevel
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/unittest/reader/spirv/ImageSampleExplicitLod_UsingLod_SpvParserHandleTest_SampledImageAccessTest_Variable_3.spvasm.expected.ir.dxc.hlsl b/test/tint/unittest/reader/spirv/ImageSampleExplicitLod_UsingLod_SpvParserHandleTest_SampledImageAccessTest_Variable_3.spvasm.expected.ir.dxc.hlsl
index b903e3f..cf26da3 100644
--- a/test/tint/unittest/reader/spirv/ImageSampleExplicitLod_UsingLod_SpvParserHandleTest_SampledImageAccessTest_Variable_3.spvasm.expected.ir.dxc.hlsl
+++ b/test/tint/unittest/reader/spirv/ImageSampleExplicitLod_UsingLod_SpvParserHandleTest_SampledImageAccessTest_Variable_3.spvasm.expected.ir.dxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureSampleLevel
+..\..\src\tint\lang\hlsl\writer\printer\printer.cc:1010 internal compiler error: TINT_UNREACHABLE unhandled: textureSampleLevel
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/unittest/reader/spirv/ImageSampleExplicitLod_UsingLod_SpvParserHandleTest_SampledImageAccessTest_Variable_3.spvasm.expected.ir.fxc.hlsl b/test/tint/unittest/reader/spirv/ImageSampleExplicitLod_UsingLod_SpvParserHandleTest_SampledImageAccessTest_Variable_3.spvasm.expected.ir.fxc.hlsl
index b903e3f..cf26da3 100644
--- a/test/tint/unittest/reader/spirv/ImageSampleExplicitLod_UsingLod_SpvParserHandleTest_SampledImageAccessTest_Variable_3.spvasm.expected.ir.fxc.hlsl
+++ b/test/tint/unittest/reader/spirv/ImageSampleExplicitLod_UsingLod_SpvParserHandleTest_SampledImageAccessTest_Variable_3.spvasm.expected.ir.fxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureSampleLevel
+..\..\src\tint\lang\hlsl\writer\printer\printer.cc:1010 internal compiler error: TINT_UNREACHABLE unhandled: textureSampleLevel
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/unittest/reader/spirv/ImageSampleExplicitLod_UsingLod_SpvParserHandleTest_SampledImageAccessTest_Variable_4.spvasm.expected.ir.dxc.hlsl b/test/tint/unittest/reader/spirv/ImageSampleExplicitLod_UsingLod_SpvParserHandleTest_SampledImageAccessTest_Variable_4.spvasm.expected.ir.dxc.hlsl
index b903e3f..cf26da3 100644
--- a/test/tint/unittest/reader/spirv/ImageSampleExplicitLod_UsingLod_SpvParserHandleTest_SampledImageAccessTest_Variable_4.spvasm.expected.ir.dxc.hlsl
+++ b/test/tint/unittest/reader/spirv/ImageSampleExplicitLod_UsingLod_SpvParserHandleTest_SampledImageAccessTest_Variable_4.spvasm.expected.ir.dxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureSampleLevel
+..\..\src\tint\lang\hlsl\writer\printer\printer.cc:1010 internal compiler error: TINT_UNREACHABLE unhandled: textureSampleLevel
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/unittest/reader/spirv/ImageSampleExplicitLod_UsingLod_SpvParserHandleTest_SampledImageAccessTest_Variable_4.spvasm.expected.ir.fxc.hlsl b/test/tint/unittest/reader/spirv/ImageSampleExplicitLod_UsingLod_SpvParserHandleTest_SampledImageAccessTest_Variable_4.spvasm.expected.ir.fxc.hlsl
index b903e3f..cf26da3 100644
--- a/test/tint/unittest/reader/spirv/ImageSampleExplicitLod_UsingLod_SpvParserHandleTest_SampledImageAccessTest_Variable_4.spvasm.expected.ir.fxc.hlsl
+++ b/test/tint/unittest/reader/spirv/ImageSampleExplicitLod_UsingLod_SpvParserHandleTest_SampledImageAccessTest_Variable_4.spvasm.expected.ir.fxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureSampleLevel
+..\..\src\tint\lang\hlsl\writer\printer\printer.cc:1010 internal compiler error: TINT_UNREACHABLE unhandled: textureSampleLevel
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/unittest/reader/spirv/ImageSampleImplicitLod_BothDrefAndNonDref_SpvParserHandleTest_SampledImageAccessTest_Variable_0.spvasm.expected.ir.dxc.hlsl b/test/tint/unittest/reader/spirv/ImageSampleImplicitLod_BothDrefAndNonDref_SpvParserHandleTest_SampledImageAccessTest_Variable_0.spvasm.expected.ir.dxc.hlsl
index c6e1d96..58230f6 100644
--- a/test/tint/unittest/reader/spirv/ImageSampleImplicitLod_BothDrefAndNonDref_SpvParserHandleTest_SampledImageAccessTest_Variable_0.spvasm.expected.ir.dxc.hlsl
+++ b/test/tint/unittest/reader/spirv/ImageSampleImplicitLod_BothDrefAndNonDref_SpvParserHandleTest_SampledImageAccessTest_Variable_0.spvasm.expected.ir.dxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Construct
+..\..\src\tint\lang\hlsl\writer\printer\printer.cc:1010 internal compiler error: TINT_UNREACHABLE unhandled: textureSample
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/unittest/reader/spirv/ImageSampleImplicitLod_BothDrefAndNonDref_SpvParserHandleTest_SampledImageAccessTest_Variable_0.spvasm.expected.ir.fxc.hlsl b/test/tint/unittest/reader/spirv/ImageSampleImplicitLod_BothDrefAndNonDref_SpvParserHandleTest_SampledImageAccessTest_Variable_0.spvasm.expected.ir.fxc.hlsl
index c6e1d96..58230f6 100644
--- a/test/tint/unittest/reader/spirv/ImageSampleImplicitLod_BothDrefAndNonDref_SpvParserHandleTest_SampledImageAccessTest_Variable_0.spvasm.expected.ir.fxc.hlsl
+++ b/test/tint/unittest/reader/spirv/ImageSampleImplicitLod_BothDrefAndNonDref_SpvParserHandleTest_SampledImageAccessTest_Variable_0.spvasm.expected.ir.fxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Construct
+..\..\src\tint\lang\hlsl\writer\printer\printer.cc:1010 internal compiler error: TINT_UNREACHABLE unhandled: textureSample
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/unittest/reader/spirv/ImageSampleImplicitLod_SpvParserHandleTest_SampledImageAccessTest_Variable_0.spvasm.expected.ir.dxc.hlsl b/test/tint/unittest/reader/spirv/ImageSampleImplicitLod_SpvParserHandleTest_SampledImageAccessTest_Variable_0.spvasm.expected.ir.dxc.hlsl
index 6739938..58230f6 100644
--- a/test/tint/unittest/reader/spirv/ImageSampleImplicitLod_SpvParserHandleTest_SampledImageAccessTest_Variable_0.spvasm.expected.ir.dxc.hlsl
+++ b/test/tint/unittest/reader/spirv/ImageSampleImplicitLod_SpvParserHandleTest_SampledImageAccessTest_Variable_0.spvasm.expected.ir.dxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureSample
+..\..\src\tint\lang\hlsl\writer\printer\printer.cc:1010 internal compiler error: TINT_UNREACHABLE unhandled: textureSample
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/unittest/reader/spirv/ImageSampleImplicitLod_SpvParserHandleTest_SampledImageAccessTest_Variable_0.spvasm.expected.ir.fxc.hlsl b/test/tint/unittest/reader/spirv/ImageSampleImplicitLod_SpvParserHandleTest_SampledImageAccessTest_Variable_0.spvasm.expected.ir.fxc.hlsl
index 6739938..58230f6 100644
--- a/test/tint/unittest/reader/spirv/ImageSampleImplicitLod_SpvParserHandleTest_SampledImageAccessTest_Variable_0.spvasm.expected.ir.fxc.hlsl
+++ b/test/tint/unittest/reader/spirv/ImageSampleImplicitLod_SpvParserHandleTest_SampledImageAccessTest_Variable_0.spvasm.expected.ir.fxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureSample
+..\..\src\tint\lang\hlsl\writer\printer\printer.cc:1010 internal compiler error: TINT_UNREACHABLE unhandled: textureSample
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/unittest/reader/spirv/ImageSampleImplicitLod_SpvParserHandleTest_SampledImageAccessTest_Variable_1.spvasm.expected.ir.dxc.hlsl b/test/tint/unittest/reader/spirv/ImageSampleImplicitLod_SpvParserHandleTest_SampledImageAccessTest_Variable_1.spvasm.expected.ir.dxc.hlsl
index 6739938..58230f6 100644
--- a/test/tint/unittest/reader/spirv/ImageSampleImplicitLod_SpvParserHandleTest_SampledImageAccessTest_Variable_1.spvasm.expected.ir.dxc.hlsl
+++ b/test/tint/unittest/reader/spirv/ImageSampleImplicitLod_SpvParserHandleTest_SampledImageAccessTest_Variable_1.spvasm.expected.ir.dxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureSample
+..\..\src\tint\lang\hlsl\writer\printer\printer.cc:1010 internal compiler error: TINT_UNREACHABLE unhandled: textureSample
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/unittest/reader/spirv/ImageSampleImplicitLod_SpvParserHandleTest_SampledImageAccessTest_Variable_1.spvasm.expected.ir.fxc.hlsl b/test/tint/unittest/reader/spirv/ImageSampleImplicitLod_SpvParserHandleTest_SampledImageAccessTest_Variable_1.spvasm.expected.ir.fxc.hlsl
index 6739938..58230f6 100644
--- a/test/tint/unittest/reader/spirv/ImageSampleImplicitLod_SpvParserHandleTest_SampledImageAccessTest_Variable_1.spvasm.expected.ir.fxc.hlsl
+++ b/test/tint/unittest/reader/spirv/ImageSampleImplicitLod_SpvParserHandleTest_SampledImageAccessTest_Variable_1.spvasm.expected.ir.fxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureSample
+..\..\src\tint\lang\hlsl\writer\printer\printer.cc:1010 internal compiler error: TINT_UNREACHABLE unhandled: textureSample
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/unittest/reader/spirv/ImageSampleImplicitLod_SpvParserHandleTest_SampledImageAccessTest_Variable_2.spvasm.expected.ir.dxc.hlsl b/test/tint/unittest/reader/spirv/ImageSampleImplicitLod_SpvParserHandleTest_SampledImageAccessTest_Variable_2.spvasm.expected.ir.dxc.hlsl
index 6739938..58230f6 100644
--- a/test/tint/unittest/reader/spirv/ImageSampleImplicitLod_SpvParserHandleTest_SampledImageAccessTest_Variable_2.spvasm.expected.ir.dxc.hlsl
+++ b/test/tint/unittest/reader/spirv/ImageSampleImplicitLod_SpvParserHandleTest_SampledImageAccessTest_Variable_2.spvasm.expected.ir.dxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureSample
+..\..\src\tint\lang\hlsl\writer\printer\printer.cc:1010 internal compiler error: TINT_UNREACHABLE unhandled: textureSample
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/unittest/reader/spirv/ImageSampleImplicitLod_SpvParserHandleTest_SampledImageAccessTest_Variable_2.spvasm.expected.ir.fxc.hlsl b/test/tint/unittest/reader/spirv/ImageSampleImplicitLod_SpvParserHandleTest_SampledImageAccessTest_Variable_2.spvasm.expected.ir.fxc.hlsl
index 6739938..58230f6 100644
--- a/test/tint/unittest/reader/spirv/ImageSampleImplicitLod_SpvParserHandleTest_SampledImageAccessTest_Variable_2.spvasm.expected.ir.fxc.hlsl
+++ b/test/tint/unittest/reader/spirv/ImageSampleImplicitLod_SpvParserHandleTest_SampledImageAccessTest_Variable_2.spvasm.expected.ir.fxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureSample
+..\..\src\tint\lang\hlsl\writer\printer\printer.cc:1010 internal compiler error: TINT_UNREACHABLE unhandled: textureSample
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/unittest/reader/spirv/ImageSampleImplicitLod_SpvParserHandleTest_SampledImageAccessTest_Variable_3.spvasm.expected.ir.dxc.hlsl b/test/tint/unittest/reader/spirv/ImageSampleImplicitLod_SpvParserHandleTest_SampledImageAccessTest_Variable_3.spvasm.expected.ir.dxc.hlsl
index 6739938..58230f6 100644
--- a/test/tint/unittest/reader/spirv/ImageSampleImplicitLod_SpvParserHandleTest_SampledImageAccessTest_Variable_3.spvasm.expected.ir.dxc.hlsl
+++ b/test/tint/unittest/reader/spirv/ImageSampleImplicitLod_SpvParserHandleTest_SampledImageAccessTest_Variable_3.spvasm.expected.ir.dxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureSample
+..\..\src\tint\lang\hlsl\writer\printer\printer.cc:1010 internal compiler error: TINT_UNREACHABLE unhandled: textureSample
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/unittest/reader/spirv/ImageSampleImplicitLod_SpvParserHandleTest_SampledImageAccessTest_Variable_3.spvasm.expected.ir.fxc.hlsl b/test/tint/unittest/reader/spirv/ImageSampleImplicitLod_SpvParserHandleTest_SampledImageAccessTest_Variable_3.spvasm.expected.ir.fxc.hlsl
index 6739938..58230f6 100644
--- a/test/tint/unittest/reader/spirv/ImageSampleImplicitLod_SpvParserHandleTest_SampledImageAccessTest_Variable_3.spvasm.expected.ir.fxc.hlsl
+++ b/test/tint/unittest/reader/spirv/ImageSampleImplicitLod_SpvParserHandleTest_SampledImageAccessTest_Variable_3.spvasm.expected.ir.fxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureSample
+..\..\src\tint\lang\hlsl\writer\printer\printer.cc:1010 internal compiler error: TINT_UNREACHABLE unhandled: textureSample
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/unittest/reader/spirv/ImageSampleImplicitLod_SpvParserHandleTest_SampledImageAccessTest_Variable_4.spvasm.expected.ir.dxc.hlsl b/test/tint/unittest/reader/spirv/ImageSampleImplicitLod_SpvParserHandleTest_SampledImageAccessTest_Variable_4.spvasm.expected.ir.dxc.hlsl
index 1639ef2..49d2f50 100644
--- a/test/tint/unittest/reader/spirv/ImageSampleImplicitLod_SpvParserHandleTest_SampledImageAccessTest_Variable_4.spvasm.expected.ir.dxc.hlsl
+++ b/test/tint/unittest/reader/spirv/ImageSampleImplicitLod_SpvParserHandleTest_SampledImageAccessTest_Variable_4.spvasm.expected.ir.dxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureSampleBias
+..\..\src\tint\lang\hlsl\writer\printer\printer.cc:1010 internal compiler error: TINT_UNREACHABLE unhandled: textureSampleBias
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/unittest/reader/spirv/ImageSampleImplicitLod_SpvParserHandleTest_SampledImageAccessTest_Variable_4.spvasm.expected.ir.fxc.hlsl b/test/tint/unittest/reader/spirv/ImageSampleImplicitLod_SpvParserHandleTest_SampledImageAccessTest_Variable_4.spvasm.expected.ir.fxc.hlsl
index 1639ef2..49d2f50 100644
--- a/test/tint/unittest/reader/spirv/ImageSampleImplicitLod_SpvParserHandleTest_SampledImageAccessTest_Variable_4.spvasm.expected.ir.fxc.hlsl
+++ b/test/tint/unittest/reader/spirv/ImageSampleImplicitLod_SpvParserHandleTest_SampledImageAccessTest_Variable_4.spvasm.expected.ir.fxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureSampleBias
+..\..\src\tint\lang\hlsl\writer\printer\printer.cc:1010 internal compiler error: TINT_UNREACHABLE unhandled: textureSampleBias
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/unittest/reader/spirv/ImageSampleImplicitLod_SpvParserHandleTest_SampledImageAccessTest_Variable_5.spvasm.expected.ir.dxc.hlsl b/test/tint/unittest/reader/spirv/ImageSampleImplicitLod_SpvParserHandleTest_SampledImageAccessTest_Variable_5.spvasm.expected.ir.dxc.hlsl
index 1639ef2..49d2f50 100644
--- a/test/tint/unittest/reader/spirv/ImageSampleImplicitLod_SpvParserHandleTest_SampledImageAccessTest_Variable_5.spvasm.expected.ir.dxc.hlsl
+++ b/test/tint/unittest/reader/spirv/ImageSampleImplicitLod_SpvParserHandleTest_SampledImageAccessTest_Variable_5.spvasm.expected.ir.dxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureSampleBias
+..\..\src\tint\lang\hlsl\writer\printer\printer.cc:1010 internal compiler error: TINT_UNREACHABLE unhandled: textureSampleBias
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/unittest/reader/spirv/ImageSampleImplicitLod_SpvParserHandleTest_SampledImageAccessTest_Variable_5.spvasm.expected.ir.fxc.hlsl b/test/tint/unittest/reader/spirv/ImageSampleImplicitLod_SpvParserHandleTest_SampledImageAccessTest_Variable_5.spvasm.expected.ir.fxc.hlsl
index 1639ef2..49d2f50 100644
--- a/test/tint/unittest/reader/spirv/ImageSampleImplicitLod_SpvParserHandleTest_SampledImageAccessTest_Variable_5.spvasm.expected.ir.fxc.hlsl
+++ b/test/tint/unittest/reader/spirv/ImageSampleImplicitLod_SpvParserHandleTest_SampledImageAccessTest_Variable_5.spvasm.expected.ir.fxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureSampleBias
+..\..\src\tint\lang\hlsl\writer\printer\printer.cc:1010 internal compiler error: TINT_UNREACHABLE unhandled: textureSampleBias
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/unittest/reader/spirv/ImageSampleImplicitLod_SpvParserHandleTest_SampledImageAccessTest_Variable_6.spvasm.expected.ir.dxc.hlsl b/test/tint/unittest/reader/spirv/ImageSampleImplicitLod_SpvParserHandleTest_SampledImageAccessTest_Variable_6.spvasm.expected.ir.dxc.hlsl
index 1639ef2..49d2f50 100644
--- a/test/tint/unittest/reader/spirv/ImageSampleImplicitLod_SpvParserHandleTest_SampledImageAccessTest_Variable_6.spvasm.expected.ir.dxc.hlsl
+++ b/test/tint/unittest/reader/spirv/ImageSampleImplicitLod_SpvParserHandleTest_SampledImageAccessTest_Variable_6.spvasm.expected.ir.dxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureSampleBias
+..\..\src\tint\lang\hlsl\writer\printer\printer.cc:1010 internal compiler error: TINT_UNREACHABLE unhandled: textureSampleBias
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/unittest/reader/spirv/ImageSampleImplicitLod_SpvParserHandleTest_SampledImageAccessTest_Variable_6.spvasm.expected.ir.fxc.hlsl b/test/tint/unittest/reader/spirv/ImageSampleImplicitLod_SpvParserHandleTest_SampledImageAccessTest_Variable_6.spvasm.expected.ir.fxc.hlsl
index 1639ef2..49d2f50 100644
--- a/test/tint/unittest/reader/spirv/ImageSampleImplicitLod_SpvParserHandleTest_SampledImageAccessTest_Variable_6.spvasm.expected.ir.fxc.hlsl
+++ b/test/tint/unittest/reader/spirv/ImageSampleImplicitLod_SpvParserHandleTest_SampledImageAccessTest_Variable_6.spvasm.expected.ir.fxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureSampleBias
+..\..\src\tint\lang\hlsl\writer\printer\printer.cc:1010 internal compiler error: TINT_UNREACHABLE unhandled: textureSampleBias
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/unittest/reader/spirv/ImageSampleImplicitLod_SpvParserHandleTest_SampledImageAccessTest_Variable_7.spvasm.expected.ir.dxc.hlsl b/test/tint/unittest/reader/spirv/ImageSampleImplicitLod_SpvParserHandleTest_SampledImageAccessTest_Variable_7.spvasm.expected.ir.dxc.hlsl
index 1639ef2..49d2f50 100644
--- a/test/tint/unittest/reader/spirv/ImageSampleImplicitLod_SpvParserHandleTest_SampledImageAccessTest_Variable_7.spvasm.expected.ir.dxc.hlsl
+++ b/test/tint/unittest/reader/spirv/ImageSampleImplicitLod_SpvParserHandleTest_SampledImageAccessTest_Variable_7.spvasm.expected.ir.dxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureSampleBias
+..\..\src\tint\lang\hlsl\writer\printer\printer.cc:1010 internal compiler error: TINT_UNREACHABLE unhandled: textureSampleBias
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/unittest/reader/spirv/ImageSampleImplicitLod_SpvParserHandleTest_SampledImageAccessTest_Variable_7.spvasm.expected.ir.fxc.hlsl b/test/tint/unittest/reader/spirv/ImageSampleImplicitLod_SpvParserHandleTest_SampledImageAccessTest_Variable_7.spvasm.expected.ir.fxc.hlsl
index 1639ef2..49d2f50 100644
--- a/test/tint/unittest/reader/spirv/ImageSampleImplicitLod_SpvParserHandleTest_SampledImageAccessTest_Variable_7.spvasm.expected.ir.fxc.hlsl
+++ b/test/tint/unittest/reader/spirv/ImageSampleImplicitLod_SpvParserHandleTest_SampledImageAccessTest_Variable_7.spvasm.expected.ir.fxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureSampleBias
+..\..\src\tint\lang\hlsl\writer\printer\printer.cc:1010 internal compiler error: TINT_UNREACHABLE unhandled: textureSampleBias
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/unittest/reader/spirv/ImageSampleImplicitLod_SpvParserHandleTest_SampledImageAccessTest_Variable_8.spvasm.expected.ir.dxc.hlsl b/test/tint/unittest/reader/spirv/ImageSampleImplicitLod_SpvParserHandleTest_SampledImageAccessTest_Variable_8.spvasm.expected.ir.dxc.hlsl
index 1639ef2..49d2f50 100644
--- a/test/tint/unittest/reader/spirv/ImageSampleImplicitLod_SpvParserHandleTest_SampledImageAccessTest_Variable_8.spvasm.expected.ir.dxc.hlsl
+++ b/test/tint/unittest/reader/spirv/ImageSampleImplicitLod_SpvParserHandleTest_SampledImageAccessTest_Variable_8.spvasm.expected.ir.dxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureSampleBias
+..\..\src\tint\lang\hlsl\writer\printer\printer.cc:1010 internal compiler error: TINT_UNREACHABLE unhandled: textureSampleBias
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/unittest/reader/spirv/ImageSampleImplicitLod_SpvParserHandleTest_SampledImageAccessTest_Variable_8.spvasm.expected.ir.fxc.hlsl b/test/tint/unittest/reader/spirv/ImageSampleImplicitLod_SpvParserHandleTest_SampledImageAccessTest_Variable_8.spvasm.expected.ir.fxc.hlsl
index 1639ef2..49d2f50 100644
--- a/test/tint/unittest/reader/spirv/ImageSampleImplicitLod_SpvParserHandleTest_SampledImageAccessTest_Variable_8.spvasm.expected.ir.fxc.hlsl
+++ b/test/tint/unittest/reader/spirv/ImageSampleImplicitLod_SpvParserHandleTest_SampledImageAccessTest_Variable_8.spvasm.expected.ir.fxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureSampleBias
+..\..\src\tint\lang\hlsl\writer\printer\printer.cc:1010 internal compiler error: TINT_UNREACHABLE unhandled: textureSampleBias
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/unittest/reader/spirv/ImageSampleProjDrefExplicitLod_CheckForLod0_SpvParserHandleTest_ImageCoordsTest_MakeCoordinateOperandsForImageAccess_0.spvasm.expected.ir.dxc.hlsl b/test/tint/unittest/reader/spirv/ImageSampleProjDrefExplicitLod_CheckForLod0_SpvParserHandleTest_ImageCoordsTest_MakeCoordinateOperandsForImageAccess_0.spvasm.expected.ir.dxc.hlsl
index 09571e5..f8e283a 100644
--- a/test/tint/unittest/reader/spirv/ImageSampleProjDrefExplicitLod_CheckForLod0_SpvParserHandleTest_ImageCoordsTest_MakeCoordinateOperandsForImageAccess_0.spvasm.expected.ir.dxc.hlsl
+++ b/test/tint/unittest/reader/spirv/ImageSampleProjDrefExplicitLod_CheckForLod0_SpvParserHandleTest_ImageCoordsTest_MakeCoordinateOperandsForImageAccess_0.spvasm.expected.ir.dxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureSampleCompareLevel
+..\..\src\tint\lang\hlsl\writer\printer\printer.cc:1010 internal compiler error: TINT_UNREACHABLE unhandled: textureSampleCompareLevel
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/unittest/reader/spirv/ImageSampleProjDrefExplicitLod_CheckForLod0_SpvParserHandleTest_ImageCoordsTest_MakeCoordinateOperandsForImageAccess_0.spvasm.expected.ir.fxc.hlsl b/test/tint/unittest/reader/spirv/ImageSampleProjDrefExplicitLod_CheckForLod0_SpvParserHandleTest_ImageCoordsTest_MakeCoordinateOperandsForImageAccess_0.spvasm.expected.ir.fxc.hlsl
index 09571e5..f8e283a 100644
--- a/test/tint/unittest/reader/spirv/ImageSampleProjDrefExplicitLod_CheckForLod0_SpvParserHandleTest_ImageCoordsTest_MakeCoordinateOperandsForImageAccess_0.spvasm.expected.ir.fxc.hlsl
+++ b/test/tint/unittest/reader/spirv/ImageSampleProjDrefExplicitLod_CheckForLod0_SpvParserHandleTest_ImageCoordsTest_MakeCoordinateOperandsForImageAccess_0.spvasm.expected.ir.fxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureSampleCompareLevel
+..\..\src\tint\lang\hlsl\writer\printer\printer.cc:1010 internal compiler error: TINT_UNREACHABLE unhandled: textureSampleCompareLevel
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/unittest/reader/spirv/ImageSampleProjDrefExplicitLod_CheckForLod0_SpvParserHandleTest_ImageCoordsTest_MakeCoordinateOperandsForImageAccess_1.spvasm.expected.ir.dxc.hlsl b/test/tint/unittest/reader/spirv/ImageSampleProjDrefExplicitLod_CheckForLod0_SpvParserHandleTest_ImageCoordsTest_MakeCoordinateOperandsForImageAccess_1.spvasm.expected.ir.dxc.hlsl
index 09571e5..f8e283a 100644
--- a/test/tint/unittest/reader/spirv/ImageSampleProjDrefExplicitLod_CheckForLod0_SpvParserHandleTest_ImageCoordsTest_MakeCoordinateOperandsForImageAccess_1.spvasm.expected.ir.dxc.hlsl
+++ b/test/tint/unittest/reader/spirv/ImageSampleProjDrefExplicitLod_CheckForLod0_SpvParserHandleTest_ImageCoordsTest_MakeCoordinateOperandsForImageAccess_1.spvasm.expected.ir.dxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureSampleCompareLevel
+..\..\src\tint\lang\hlsl\writer\printer\printer.cc:1010 internal compiler error: TINT_UNREACHABLE unhandled: textureSampleCompareLevel
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/unittest/reader/spirv/ImageSampleProjDrefExplicitLod_CheckForLod0_SpvParserHandleTest_ImageCoordsTest_MakeCoordinateOperandsForImageAccess_1.spvasm.expected.ir.fxc.hlsl b/test/tint/unittest/reader/spirv/ImageSampleProjDrefExplicitLod_CheckForLod0_SpvParserHandleTest_ImageCoordsTest_MakeCoordinateOperandsForImageAccess_1.spvasm.expected.ir.fxc.hlsl
index 09571e5..f8e283a 100644
--- a/test/tint/unittest/reader/spirv/ImageSampleProjDrefExplicitLod_CheckForLod0_SpvParserHandleTest_ImageCoordsTest_MakeCoordinateOperandsForImageAccess_1.spvasm.expected.ir.fxc.hlsl
+++ b/test/tint/unittest/reader/spirv/ImageSampleProjDrefExplicitLod_CheckForLod0_SpvParserHandleTest_ImageCoordsTest_MakeCoordinateOperandsForImageAccess_1.spvasm.expected.ir.fxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureSampleCompareLevel
+..\..\src\tint\lang\hlsl\writer\printer\printer.cc:1010 internal compiler error: TINT_UNREACHABLE unhandled: textureSampleCompareLevel
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/unittest/reader/spirv/ImageSampleProjDrefImplicitLod_SpvParserHandleTest_SampledImageAccessTest_Variable_0.spvasm.expected.ir.dxc.hlsl b/test/tint/unittest/reader/spirv/ImageSampleProjDrefImplicitLod_SpvParserHandleTest_SampledImageAccessTest_Variable_0.spvasm.expected.ir.dxc.hlsl
index 16966cd..b7acf20 100644
--- a/test/tint/unittest/reader/spirv/ImageSampleProjDrefImplicitLod_SpvParserHandleTest_SampledImageAccessTest_Variable_0.spvasm.expected.ir.dxc.hlsl
+++ b/test/tint/unittest/reader/spirv/ImageSampleProjDrefImplicitLod_SpvParserHandleTest_SampledImageAccessTest_Variable_0.spvasm.expected.ir.dxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureSampleCompare
+..\..\src\tint\lang\hlsl\writer\printer\printer.cc:1010 internal compiler error: TINT_UNREACHABLE unhandled: textureSampleCompare
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/unittest/reader/spirv/ImageSampleProjDrefImplicitLod_SpvParserHandleTest_SampledImageAccessTest_Variable_0.spvasm.expected.ir.fxc.hlsl b/test/tint/unittest/reader/spirv/ImageSampleProjDrefImplicitLod_SpvParserHandleTest_SampledImageAccessTest_Variable_0.spvasm.expected.ir.fxc.hlsl
index 16966cd..b7acf20 100644
--- a/test/tint/unittest/reader/spirv/ImageSampleProjDrefImplicitLod_SpvParserHandleTest_SampledImageAccessTest_Variable_0.spvasm.expected.ir.fxc.hlsl
+++ b/test/tint/unittest/reader/spirv/ImageSampleProjDrefImplicitLod_SpvParserHandleTest_SampledImageAccessTest_Variable_0.spvasm.expected.ir.fxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureSampleCompare
+..\..\src\tint\lang\hlsl\writer\printer\printer.cc:1010 internal compiler error: TINT_UNREACHABLE unhandled: textureSampleCompare
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/unittest/reader/spirv/ImageSampleProjDrefImplicitLod_SpvParserHandleTest_SampledImageAccessTest_Variable_1.spvasm.expected.ir.dxc.hlsl b/test/tint/unittest/reader/spirv/ImageSampleProjDrefImplicitLod_SpvParserHandleTest_SampledImageAccessTest_Variable_1.spvasm.expected.ir.dxc.hlsl
index 16966cd..b7acf20 100644
--- a/test/tint/unittest/reader/spirv/ImageSampleProjDrefImplicitLod_SpvParserHandleTest_SampledImageAccessTest_Variable_1.spvasm.expected.ir.dxc.hlsl
+++ b/test/tint/unittest/reader/spirv/ImageSampleProjDrefImplicitLod_SpvParserHandleTest_SampledImageAccessTest_Variable_1.spvasm.expected.ir.dxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureSampleCompare
+..\..\src\tint\lang\hlsl\writer\printer\printer.cc:1010 internal compiler error: TINT_UNREACHABLE unhandled: textureSampleCompare
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/unittest/reader/spirv/ImageSampleProjDrefImplicitLod_SpvParserHandleTest_SampledImageAccessTest_Variable_1.spvasm.expected.ir.fxc.hlsl b/test/tint/unittest/reader/spirv/ImageSampleProjDrefImplicitLod_SpvParserHandleTest_SampledImageAccessTest_Variable_1.spvasm.expected.ir.fxc.hlsl
index 16966cd..b7acf20 100644
--- a/test/tint/unittest/reader/spirv/ImageSampleProjDrefImplicitLod_SpvParserHandleTest_SampledImageAccessTest_Variable_1.spvasm.expected.ir.fxc.hlsl
+++ b/test/tint/unittest/reader/spirv/ImageSampleProjDrefImplicitLod_SpvParserHandleTest_SampledImageAccessTest_Variable_1.spvasm.expected.ir.fxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureSampleCompare
+..\..\src\tint\lang\hlsl\writer\printer\printer.cc:1010 internal compiler error: TINT_UNREACHABLE unhandled: textureSampleCompare
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/unittest/reader/spirv/ImageSampleProjExplicitLod_Grad_SpvParserHandleTest_SampledImageAccessTest_Variable_0.spvasm.expected.ir.dxc.hlsl b/test/tint/unittest/reader/spirv/ImageSampleProjExplicitLod_Grad_SpvParserHandleTest_SampledImageAccessTest_Variable_0.spvasm.expected.ir.dxc.hlsl
index 1dd1a58..2729ab6 100644
--- a/test/tint/unittest/reader/spirv/ImageSampleProjExplicitLod_Grad_SpvParserHandleTest_SampledImageAccessTest_Variable_0.spvasm.expected.ir.dxc.hlsl
+++ b/test/tint/unittest/reader/spirv/ImageSampleProjExplicitLod_Grad_SpvParserHandleTest_SampledImageAccessTest_Variable_0.spvasm.expected.ir.dxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureSampleGrad
+..\..\src\tint\lang\hlsl\writer\printer\printer.cc:1010 internal compiler error: TINT_UNREACHABLE unhandled: textureSampleGrad
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/unittest/reader/spirv/ImageSampleProjExplicitLod_Grad_SpvParserHandleTest_SampledImageAccessTest_Variable_0.spvasm.expected.ir.fxc.hlsl b/test/tint/unittest/reader/spirv/ImageSampleProjExplicitLod_Grad_SpvParserHandleTest_SampledImageAccessTest_Variable_0.spvasm.expected.ir.fxc.hlsl
index 1dd1a58..2729ab6 100644
--- a/test/tint/unittest/reader/spirv/ImageSampleProjExplicitLod_Grad_SpvParserHandleTest_SampledImageAccessTest_Variable_0.spvasm.expected.ir.fxc.hlsl
+++ b/test/tint/unittest/reader/spirv/ImageSampleProjExplicitLod_Grad_SpvParserHandleTest_SampledImageAccessTest_Variable_0.spvasm.expected.ir.fxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureSampleGrad
+..\..\src\tint\lang\hlsl\writer\printer\printer.cc:1010 internal compiler error: TINT_UNREACHABLE unhandled: textureSampleGrad
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/unittest/reader/spirv/ImageSampleProjExplicitLod_Grad_SpvParserHandleTest_SampledImageAccessTest_Variable_1.spvasm.expected.ir.dxc.hlsl b/test/tint/unittest/reader/spirv/ImageSampleProjExplicitLod_Grad_SpvParserHandleTest_SampledImageAccessTest_Variable_1.spvasm.expected.ir.dxc.hlsl
index 1dd1a58..2729ab6 100644
--- a/test/tint/unittest/reader/spirv/ImageSampleProjExplicitLod_Grad_SpvParserHandleTest_SampledImageAccessTest_Variable_1.spvasm.expected.ir.dxc.hlsl
+++ b/test/tint/unittest/reader/spirv/ImageSampleProjExplicitLod_Grad_SpvParserHandleTest_SampledImageAccessTest_Variable_1.spvasm.expected.ir.dxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureSampleGrad
+..\..\src\tint\lang\hlsl\writer\printer\printer.cc:1010 internal compiler error: TINT_UNREACHABLE unhandled: textureSampleGrad
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/unittest/reader/spirv/ImageSampleProjExplicitLod_Grad_SpvParserHandleTest_SampledImageAccessTest_Variable_1.spvasm.expected.ir.fxc.hlsl b/test/tint/unittest/reader/spirv/ImageSampleProjExplicitLod_Grad_SpvParserHandleTest_SampledImageAccessTest_Variable_1.spvasm.expected.ir.fxc.hlsl
index 1dd1a58..2729ab6 100644
--- a/test/tint/unittest/reader/spirv/ImageSampleProjExplicitLod_Grad_SpvParserHandleTest_SampledImageAccessTest_Variable_1.spvasm.expected.ir.fxc.hlsl
+++ b/test/tint/unittest/reader/spirv/ImageSampleProjExplicitLod_Grad_SpvParserHandleTest_SampledImageAccessTest_Variable_1.spvasm.expected.ir.fxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureSampleGrad
+..\..\src\tint\lang\hlsl\writer\printer\printer.cc:1010 internal compiler error: TINT_UNREACHABLE unhandled: textureSampleGrad
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/unittest/reader/spirv/ImageSampleProjExplicitLod_Lod_SpvParserHandleTest_SampledImageAccessTest_Variable_0.spvasm.expected.ir.dxc.hlsl b/test/tint/unittest/reader/spirv/ImageSampleProjExplicitLod_Lod_SpvParserHandleTest_SampledImageAccessTest_Variable_0.spvasm.expected.ir.dxc.hlsl
index b903e3f..cf26da3 100644
--- a/test/tint/unittest/reader/spirv/ImageSampleProjExplicitLod_Lod_SpvParserHandleTest_SampledImageAccessTest_Variable_0.spvasm.expected.ir.dxc.hlsl
+++ b/test/tint/unittest/reader/spirv/ImageSampleProjExplicitLod_Lod_SpvParserHandleTest_SampledImageAccessTest_Variable_0.spvasm.expected.ir.dxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureSampleLevel
+..\..\src\tint\lang\hlsl\writer\printer\printer.cc:1010 internal compiler error: TINT_UNREACHABLE unhandled: textureSampleLevel
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/unittest/reader/spirv/ImageSampleProjExplicitLod_Lod_SpvParserHandleTest_SampledImageAccessTest_Variable_0.spvasm.expected.ir.fxc.hlsl b/test/tint/unittest/reader/spirv/ImageSampleProjExplicitLod_Lod_SpvParserHandleTest_SampledImageAccessTest_Variable_0.spvasm.expected.ir.fxc.hlsl
index b903e3f..cf26da3 100644
--- a/test/tint/unittest/reader/spirv/ImageSampleProjExplicitLod_Lod_SpvParserHandleTest_SampledImageAccessTest_Variable_0.spvasm.expected.ir.fxc.hlsl
+++ b/test/tint/unittest/reader/spirv/ImageSampleProjExplicitLod_Lod_SpvParserHandleTest_SampledImageAccessTest_Variable_0.spvasm.expected.ir.fxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureSampleLevel
+..\..\src\tint\lang\hlsl\writer\printer\printer.cc:1010 internal compiler error: TINT_UNREACHABLE unhandled: textureSampleLevel
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/unittest/reader/spirv/ImageSampleProjExplicitLod_Lod_SpvParserHandleTest_SampledImageAccessTest_Variable_1.spvasm.expected.ir.dxc.hlsl b/test/tint/unittest/reader/spirv/ImageSampleProjExplicitLod_Lod_SpvParserHandleTest_SampledImageAccessTest_Variable_1.spvasm.expected.ir.dxc.hlsl
index b903e3f..cf26da3 100644
--- a/test/tint/unittest/reader/spirv/ImageSampleProjExplicitLod_Lod_SpvParserHandleTest_SampledImageAccessTest_Variable_1.spvasm.expected.ir.dxc.hlsl
+++ b/test/tint/unittest/reader/spirv/ImageSampleProjExplicitLod_Lod_SpvParserHandleTest_SampledImageAccessTest_Variable_1.spvasm.expected.ir.dxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureSampleLevel
+..\..\src\tint\lang\hlsl\writer\printer\printer.cc:1010 internal compiler error: TINT_UNREACHABLE unhandled: textureSampleLevel
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/unittest/reader/spirv/ImageSampleProjExplicitLod_Lod_SpvParserHandleTest_SampledImageAccessTest_Variable_1.spvasm.expected.ir.fxc.hlsl b/test/tint/unittest/reader/spirv/ImageSampleProjExplicitLod_Lod_SpvParserHandleTest_SampledImageAccessTest_Variable_1.spvasm.expected.ir.fxc.hlsl
index b903e3f..cf26da3 100644
--- a/test/tint/unittest/reader/spirv/ImageSampleProjExplicitLod_Lod_SpvParserHandleTest_SampledImageAccessTest_Variable_1.spvasm.expected.ir.fxc.hlsl
+++ b/test/tint/unittest/reader/spirv/ImageSampleProjExplicitLod_Lod_SpvParserHandleTest_SampledImageAccessTest_Variable_1.spvasm.expected.ir.fxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureSampleLevel
+..\..\src\tint\lang\hlsl\writer\printer\printer.cc:1010 internal compiler error: TINT_UNREACHABLE unhandled: textureSampleLevel
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/unittest/reader/spirv/ImageSampleProjImplicitLod_Bias_SpvParserHandleTest_SampledImageAccessTest_Variable_0.spvasm.expected.ir.dxc.hlsl b/test/tint/unittest/reader/spirv/ImageSampleProjImplicitLod_Bias_SpvParserHandleTest_SampledImageAccessTest_Variable_0.spvasm.expected.ir.dxc.hlsl
index 1639ef2..49d2f50 100644
--- a/test/tint/unittest/reader/spirv/ImageSampleProjImplicitLod_Bias_SpvParserHandleTest_SampledImageAccessTest_Variable_0.spvasm.expected.ir.dxc.hlsl
+++ b/test/tint/unittest/reader/spirv/ImageSampleProjImplicitLod_Bias_SpvParserHandleTest_SampledImageAccessTest_Variable_0.spvasm.expected.ir.dxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureSampleBias
+..\..\src\tint\lang\hlsl\writer\printer\printer.cc:1010 internal compiler error: TINT_UNREACHABLE unhandled: textureSampleBias
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/unittest/reader/spirv/ImageSampleProjImplicitLod_Bias_SpvParserHandleTest_SampledImageAccessTest_Variable_0.spvasm.expected.ir.fxc.hlsl b/test/tint/unittest/reader/spirv/ImageSampleProjImplicitLod_Bias_SpvParserHandleTest_SampledImageAccessTest_Variable_0.spvasm.expected.ir.fxc.hlsl
index 1639ef2..49d2f50 100644
--- a/test/tint/unittest/reader/spirv/ImageSampleProjImplicitLod_Bias_SpvParserHandleTest_SampledImageAccessTest_Variable_0.spvasm.expected.ir.fxc.hlsl
+++ b/test/tint/unittest/reader/spirv/ImageSampleProjImplicitLod_Bias_SpvParserHandleTest_SampledImageAccessTest_Variable_0.spvasm.expected.ir.fxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureSampleBias
+..\..\src\tint\lang\hlsl\writer\printer\printer.cc:1010 internal compiler error: TINT_UNREACHABLE unhandled: textureSampleBias
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/unittest/reader/spirv/ImageSampleProjImplicitLod_Bias_SpvParserHandleTest_SampledImageAccessTest_Variable_1.spvasm.expected.ir.dxc.hlsl b/test/tint/unittest/reader/spirv/ImageSampleProjImplicitLod_Bias_SpvParserHandleTest_SampledImageAccessTest_Variable_1.spvasm.expected.ir.dxc.hlsl
index 1639ef2..49d2f50 100644
--- a/test/tint/unittest/reader/spirv/ImageSampleProjImplicitLod_Bias_SpvParserHandleTest_SampledImageAccessTest_Variable_1.spvasm.expected.ir.dxc.hlsl
+++ b/test/tint/unittest/reader/spirv/ImageSampleProjImplicitLod_Bias_SpvParserHandleTest_SampledImageAccessTest_Variable_1.spvasm.expected.ir.dxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureSampleBias
+..\..\src\tint\lang\hlsl\writer\printer\printer.cc:1010 internal compiler error: TINT_UNREACHABLE unhandled: textureSampleBias
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/unittest/reader/spirv/ImageSampleProjImplicitLod_Bias_SpvParserHandleTest_SampledImageAccessTest_Variable_1.spvasm.expected.ir.fxc.hlsl b/test/tint/unittest/reader/spirv/ImageSampleProjImplicitLod_Bias_SpvParserHandleTest_SampledImageAccessTest_Variable_1.spvasm.expected.ir.fxc.hlsl
index 1639ef2..49d2f50 100644
--- a/test/tint/unittest/reader/spirv/ImageSampleProjImplicitLod_Bias_SpvParserHandleTest_SampledImageAccessTest_Variable_1.spvasm.expected.ir.fxc.hlsl
+++ b/test/tint/unittest/reader/spirv/ImageSampleProjImplicitLod_Bias_SpvParserHandleTest_SampledImageAccessTest_Variable_1.spvasm.expected.ir.fxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureSampleBias
+..\..\src\tint\lang\hlsl\writer\printer\printer.cc:1010 internal compiler error: TINT_UNREACHABLE unhandled: textureSampleBias
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/unittest/reader/spirv/ImageSampleProjImplicitLod_Bias_SpvParserHandleTest_SampledImageAccessTest_Variable_2.spvasm.expected.ir.dxc.hlsl b/test/tint/unittest/reader/spirv/ImageSampleProjImplicitLod_Bias_SpvParserHandleTest_SampledImageAccessTest_Variable_2.spvasm.expected.ir.dxc.hlsl
index 1639ef2..49d2f50 100644
--- a/test/tint/unittest/reader/spirv/ImageSampleProjImplicitLod_Bias_SpvParserHandleTest_SampledImageAccessTest_Variable_2.spvasm.expected.ir.dxc.hlsl
+++ b/test/tint/unittest/reader/spirv/ImageSampleProjImplicitLod_Bias_SpvParserHandleTest_SampledImageAccessTest_Variable_2.spvasm.expected.ir.dxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureSampleBias
+..\..\src\tint\lang\hlsl\writer\printer\printer.cc:1010 internal compiler error: TINT_UNREACHABLE unhandled: textureSampleBias
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/unittest/reader/spirv/ImageSampleProjImplicitLod_Bias_SpvParserHandleTest_SampledImageAccessTest_Variable_2.spvasm.expected.ir.fxc.hlsl b/test/tint/unittest/reader/spirv/ImageSampleProjImplicitLod_Bias_SpvParserHandleTest_SampledImageAccessTest_Variable_2.spvasm.expected.ir.fxc.hlsl
index 1639ef2..49d2f50 100644
--- a/test/tint/unittest/reader/spirv/ImageSampleProjImplicitLod_Bias_SpvParserHandleTest_SampledImageAccessTest_Variable_2.spvasm.expected.ir.fxc.hlsl
+++ b/test/tint/unittest/reader/spirv/ImageSampleProjImplicitLod_Bias_SpvParserHandleTest_SampledImageAccessTest_Variable_2.spvasm.expected.ir.fxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureSampleBias
+..\..\src\tint\lang\hlsl\writer\printer\printer.cc:1010 internal compiler error: TINT_UNREACHABLE unhandled: textureSampleBias
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/unittest/reader/spirv/ImageSampleProjImplicitLod_DepthTexture_SpvParserHandleTest_SampledImageAccessTest_Variable_0.spvasm.expected.ir.dxc.hlsl b/test/tint/unittest/reader/spirv/ImageSampleProjImplicitLod_DepthTexture_SpvParserHandleTest_SampledImageAccessTest_Variable_0.spvasm.expected.ir.dxc.hlsl
index c6e1d96..58230f6 100644
--- a/test/tint/unittest/reader/spirv/ImageSampleProjImplicitLod_DepthTexture_SpvParserHandleTest_SampledImageAccessTest_Variable_0.spvasm.expected.ir.dxc.hlsl
+++ b/test/tint/unittest/reader/spirv/ImageSampleProjImplicitLod_DepthTexture_SpvParserHandleTest_SampledImageAccessTest_Variable_0.spvasm.expected.ir.dxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Construct
+..\..\src\tint\lang\hlsl\writer\printer\printer.cc:1010 internal compiler error: TINT_UNREACHABLE unhandled: textureSample
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/unittest/reader/spirv/ImageSampleProjImplicitLod_DepthTexture_SpvParserHandleTest_SampledImageAccessTest_Variable_0.spvasm.expected.ir.fxc.hlsl b/test/tint/unittest/reader/spirv/ImageSampleProjImplicitLod_DepthTexture_SpvParserHandleTest_SampledImageAccessTest_Variable_0.spvasm.expected.ir.fxc.hlsl
index c6e1d96..58230f6 100644
--- a/test/tint/unittest/reader/spirv/ImageSampleProjImplicitLod_DepthTexture_SpvParserHandleTest_SampledImageAccessTest_Variable_0.spvasm.expected.ir.fxc.hlsl
+++ b/test/tint/unittest/reader/spirv/ImageSampleProjImplicitLod_DepthTexture_SpvParserHandleTest_SampledImageAccessTest_Variable_0.spvasm.expected.ir.fxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Construct
+..\..\src\tint\lang\hlsl\writer\printer\printer.cc:1010 internal compiler error: TINT_UNREACHABLE unhandled: textureSample
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/unittest/reader/spirv/ImageSampleProjImplicitLod_SpvParserHandleTest_SampledImageAccessTest_Variable_0.spvasm.expected.ir.dxc.hlsl b/test/tint/unittest/reader/spirv/ImageSampleProjImplicitLod_SpvParserHandleTest_SampledImageAccessTest_Variable_0.spvasm.expected.ir.dxc.hlsl
index 6739938..58230f6 100644
--- a/test/tint/unittest/reader/spirv/ImageSampleProjImplicitLod_SpvParserHandleTest_SampledImageAccessTest_Variable_0.spvasm.expected.ir.dxc.hlsl
+++ b/test/tint/unittest/reader/spirv/ImageSampleProjImplicitLod_SpvParserHandleTest_SampledImageAccessTest_Variable_0.spvasm.expected.ir.dxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureSample
+..\..\src\tint\lang\hlsl\writer\printer\printer.cc:1010 internal compiler error: TINT_UNREACHABLE unhandled: textureSample
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/unittest/reader/spirv/ImageSampleProjImplicitLod_SpvParserHandleTest_SampledImageAccessTest_Variable_0.spvasm.expected.ir.fxc.hlsl b/test/tint/unittest/reader/spirv/ImageSampleProjImplicitLod_SpvParserHandleTest_SampledImageAccessTest_Variable_0.spvasm.expected.ir.fxc.hlsl
index 6739938..58230f6 100644
--- a/test/tint/unittest/reader/spirv/ImageSampleProjImplicitLod_SpvParserHandleTest_SampledImageAccessTest_Variable_0.spvasm.expected.ir.fxc.hlsl
+++ b/test/tint/unittest/reader/spirv/ImageSampleProjImplicitLod_SpvParserHandleTest_SampledImageAccessTest_Variable_0.spvasm.expected.ir.fxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureSample
+..\..\src\tint\lang\hlsl\writer\printer\printer.cc:1010 internal compiler error: TINT_UNREACHABLE unhandled: textureSample
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/unittest/reader/spirv/ImageSampleProjImplicitLod_SpvParserHandleTest_SampledImageAccessTest_Variable_1.spvasm.expected.ir.dxc.hlsl b/test/tint/unittest/reader/spirv/ImageSampleProjImplicitLod_SpvParserHandleTest_SampledImageAccessTest_Variable_1.spvasm.expected.ir.dxc.hlsl
index 6739938..58230f6 100644
--- a/test/tint/unittest/reader/spirv/ImageSampleProjImplicitLod_SpvParserHandleTest_SampledImageAccessTest_Variable_1.spvasm.expected.ir.dxc.hlsl
+++ b/test/tint/unittest/reader/spirv/ImageSampleProjImplicitLod_SpvParserHandleTest_SampledImageAccessTest_Variable_1.spvasm.expected.ir.dxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureSample
+..\..\src\tint\lang\hlsl\writer\printer\printer.cc:1010 internal compiler error: TINT_UNREACHABLE unhandled: textureSample
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/unittest/reader/spirv/ImageSampleProjImplicitLod_SpvParserHandleTest_SampledImageAccessTest_Variable_1.spvasm.expected.ir.fxc.hlsl b/test/tint/unittest/reader/spirv/ImageSampleProjImplicitLod_SpvParserHandleTest_SampledImageAccessTest_Variable_1.spvasm.expected.ir.fxc.hlsl
index 6739938..58230f6 100644
--- a/test/tint/unittest/reader/spirv/ImageSampleProjImplicitLod_SpvParserHandleTest_SampledImageAccessTest_Variable_1.spvasm.expected.ir.fxc.hlsl
+++ b/test/tint/unittest/reader/spirv/ImageSampleProjImplicitLod_SpvParserHandleTest_SampledImageAccessTest_Variable_1.spvasm.expected.ir.fxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureSample
+..\..\src\tint\lang\hlsl\writer\printer\printer.cc:1010 internal compiler error: TINT_UNREACHABLE unhandled: textureSample
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/unittest/reader/spirv/ImageSampleProjImplicitLod_SpvParserHandleTest_SampledImageAccessTest_Variable_2.spvasm.expected.ir.dxc.hlsl b/test/tint/unittest/reader/spirv/ImageSampleProjImplicitLod_SpvParserHandleTest_SampledImageAccessTest_Variable_2.spvasm.expected.ir.dxc.hlsl
index 6739938..58230f6 100644
--- a/test/tint/unittest/reader/spirv/ImageSampleProjImplicitLod_SpvParserHandleTest_SampledImageAccessTest_Variable_2.spvasm.expected.ir.dxc.hlsl
+++ b/test/tint/unittest/reader/spirv/ImageSampleProjImplicitLod_SpvParserHandleTest_SampledImageAccessTest_Variable_2.spvasm.expected.ir.dxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureSample
+..\..\src\tint\lang\hlsl\writer\printer\printer.cc:1010 internal compiler error: TINT_UNREACHABLE unhandled: textureSample
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/unittest/reader/spirv/ImageSampleProjImplicitLod_SpvParserHandleTest_SampledImageAccessTest_Variable_2.spvasm.expected.ir.fxc.hlsl b/test/tint/unittest/reader/spirv/ImageSampleProjImplicitLod_SpvParserHandleTest_SampledImageAccessTest_Variable_2.spvasm.expected.ir.fxc.hlsl
index 6739938..58230f6 100644
--- a/test/tint/unittest/reader/spirv/ImageSampleProjImplicitLod_SpvParserHandleTest_SampledImageAccessTest_Variable_2.spvasm.expected.ir.fxc.hlsl
+++ b/test/tint/unittest/reader/spirv/ImageSampleProjImplicitLod_SpvParserHandleTest_SampledImageAccessTest_Variable_2.spvasm.expected.ir.fxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureSample
+..\..\src\tint\lang\hlsl\writer\printer\printer.cc:1010 internal compiler error: TINT_UNREACHABLE unhandled: textureSample
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/unittest/reader/spirv/ImageSampleProjImplicitLod_SpvParserHandleTest_SampledImageAccessTest_Variable_3.spvasm.expected.ir.dxc.hlsl b/test/tint/unittest/reader/spirv/ImageSampleProjImplicitLod_SpvParserHandleTest_SampledImageAccessTest_Variable_3.spvasm.expected.ir.dxc.hlsl
index 6739938..58230f6 100644
--- a/test/tint/unittest/reader/spirv/ImageSampleProjImplicitLod_SpvParserHandleTest_SampledImageAccessTest_Variable_3.spvasm.expected.ir.dxc.hlsl
+++ b/test/tint/unittest/reader/spirv/ImageSampleProjImplicitLod_SpvParserHandleTest_SampledImageAccessTest_Variable_3.spvasm.expected.ir.dxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureSample
+..\..\src\tint\lang\hlsl\writer\printer\printer.cc:1010 internal compiler error: TINT_UNREACHABLE unhandled: textureSample
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/unittest/reader/spirv/ImageSampleProjImplicitLod_SpvParserHandleTest_SampledImageAccessTest_Variable_3.spvasm.expected.ir.fxc.hlsl b/test/tint/unittest/reader/spirv/ImageSampleProjImplicitLod_SpvParserHandleTest_SampledImageAccessTest_Variable_3.spvasm.expected.ir.fxc.hlsl
index 6739938..58230f6 100644
--- a/test/tint/unittest/reader/spirv/ImageSampleProjImplicitLod_SpvParserHandleTest_SampledImageAccessTest_Variable_3.spvasm.expected.ir.fxc.hlsl
+++ b/test/tint/unittest/reader/spirv/ImageSampleProjImplicitLod_SpvParserHandleTest_SampledImageAccessTest_Variable_3.spvasm.expected.ir.fxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureSample
+..\..\src\tint\lang\hlsl\writer\printer\printer.cc:1010 internal compiler error: TINT_UNREACHABLE unhandled: textureSample
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/unittest/reader/spirv/ImageWrite_ConvertTexelOperand_Arity_SpvParserHandleTest_ImageAccessTest_Variable_0.spvasm.expected.ir.dxc.hlsl b/test/tint/unittest/reader/spirv/ImageWrite_ConvertTexelOperand_Arity_SpvParserHandleTest_ImageAccessTest_Variable_0.spvasm.expected.ir.dxc.hlsl
deleted file mode 100644
index 685a9ee..0000000
--- a/test/tint/unittest/reader/spirv/ImageWrite_ConvertTexelOperand_Arity_SpvParserHandleTest_ImageAccessTest_Variable_0.spvasm.expected.ir.dxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix 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/ImageWrite_ConvertTexelOperand_Arity_SpvParserHandleTest_ImageAccessTest_Variable_0.spvasm.expected.ir.fxc.hlsl b/test/tint/unittest/reader/spirv/ImageWrite_ConvertTexelOperand_Arity_SpvParserHandleTest_ImageAccessTest_Variable_0.spvasm.expected.ir.fxc.hlsl
deleted file mode 100644
index 685a9ee..0000000
--- a/test/tint/unittest/reader/spirv/ImageWrite_ConvertTexelOperand_Arity_SpvParserHandleTest_ImageAccessTest_Variable_0.spvasm.expected.ir.fxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix 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/ImageWrite_ConvertTexelOperand_Arity_SpvParserHandleTest_ImageAccessTest_Variable_1.spvasm.expected.ir.dxc.hlsl b/test/tint/unittest/reader/spirv/ImageWrite_ConvertTexelOperand_Arity_SpvParserHandleTest_ImageAccessTest_Variable_1.spvasm.expected.ir.dxc.hlsl
deleted file mode 100644
index 685a9ee..0000000
--- a/test/tint/unittest/reader/spirv/ImageWrite_ConvertTexelOperand_Arity_SpvParserHandleTest_ImageAccessTest_Variable_1.spvasm.expected.ir.dxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix 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/ImageWrite_ConvertTexelOperand_Arity_SpvParserHandleTest_ImageAccessTest_Variable_1.spvasm.expected.ir.fxc.hlsl b/test/tint/unittest/reader/spirv/ImageWrite_ConvertTexelOperand_Arity_SpvParserHandleTest_ImageAccessTest_Variable_1.spvasm.expected.ir.fxc.hlsl
deleted file mode 100644
index 685a9ee..0000000
--- a/test/tint/unittest/reader/spirv/ImageWrite_ConvertTexelOperand_Arity_SpvParserHandleTest_ImageAccessTest_Variable_1.spvasm.expected.ir.fxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix 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/ImageWrite_ConvertTexelOperand_Arity_SpvParserHandleTest_ImageAccessTest_Variable_2.spvasm.expected.ir.dxc.hlsl b/test/tint/unittest/reader/spirv/ImageWrite_ConvertTexelOperand_Arity_SpvParserHandleTest_ImageAccessTest_Variable_2.spvasm.expected.ir.dxc.hlsl
deleted file mode 100644
index 685a9ee..0000000
--- a/test/tint/unittest/reader/spirv/ImageWrite_ConvertTexelOperand_Arity_SpvParserHandleTest_ImageAccessTest_Variable_2.spvasm.expected.ir.dxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix 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/ImageWrite_ConvertTexelOperand_Arity_SpvParserHandleTest_ImageAccessTest_Variable_2.spvasm.expected.ir.fxc.hlsl b/test/tint/unittest/reader/spirv/ImageWrite_ConvertTexelOperand_Arity_SpvParserHandleTest_ImageAccessTest_Variable_2.spvasm.expected.ir.fxc.hlsl
deleted file mode 100644
index 685a9ee..0000000
--- a/test/tint/unittest/reader/spirv/ImageWrite_ConvertTexelOperand_Arity_SpvParserHandleTest_ImageAccessTest_Variable_2.spvasm.expected.ir.fxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix 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/ImageWrite_ConvertTexelOperand_Arity_SpvParserHandleTest_ImageAccessTest_Variable_3.spvasm.expected.ir.dxc.hlsl b/test/tint/unittest/reader/spirv/ImageWrite_ConvertTexelOperand_Arity_SpvParserHandleTest_ImageAccessTest_Variable_3.spvasm.expected.ir.dxc.hlsl
deleted file mode 100644
index 685a9ee..0000000
--- a/test/tint/unittest/reader/spirv/ImageWrite_ConvertTexelOperand_Arity_SpvParserHandleTest_ImageAccessTest_Variable_3.spvasm.expected.ir.dxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix 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/ImageWrite_ConvertTexelOperand_Arity_SpvParserHandleTest_ImageAccessTest_Variable_3.spvasm.expected.ir.fxc.hlsl b/test/tint/unittest/reader/spirv/ImageWrite_ConvertTexelOperand_Arity_SpvParserHandleTest_ImageAccessTest_Variable_3.spvasm.expected.ir.fxc.hlsl
deleted file mode 100644
index 685a9ee..0000000
--- a/test/tint/unittest/reader/spirv/ImageWrite_ConvertTexelOperand_Arity_SpvParserHandleTest_ImageAccessTest_Variable_3.spvasm.expected.ir.fxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix 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/ImageWrite_ConvertTexelOperand_Arity_SpvParserHandleTest_ImageAccessTest_Variable_4.spvasm.expected.ir.dxc.hlsl b/test/tint/unittest/reader/spirv/ImageWrite_ConvertTexelOperand_Arity_SpvParserHandleTest_ImageAccessTest_Variable_4.spvasm.expected.ir.dxc.hlsl
deleted file mode 100644
index 685a9ee..0000000
--- a/test/tint/unittest/reader/spirv/ImageWrite_ConvertTexelOperand_Arity_SpvParserHandleTest_ImageAccessTest_Variable_4.spvasm.expected.ir.dxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix 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/ImageWrite_ConvertTexelOperand_Arity_SpvParserHandleTest_ImageAccessTest_Variable_4.spvasm.expected.ir.fxc.hlsl b/test/tint/unittest/reader/spirv/ImageWrite_ConvertTexelOperand_Arity_SpvParserHandleTest_ImageAccessTest_Variable_4.spvasm.expected.ir.fxc.hlsl
deleted file mode 100644
index 685a9ee..0000000
--- a/test/tint/unittest/reader/spirv/ImageWrite_ConvertTexelOperand_Arity_SpvParserHandleTest_ImageAccessTest_Variable_4.spvasm.expected.ir.fxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix 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/ImageWrite_ConvertTexelOperand_Arity_SpvParserHandleTest_ImageAccessTest_Variable_5.spvasm.expected.ir.dxc.hlsl b/test/tint/unittest/reader/spirv/ImageWrite_ConvertTexelOperand_Arity_SpvParserHandleTest_ImageAccessTest_Variable_5.spvasm.expected.ir.dxc.hlsl
deleted file mode 100644
index 685a9ee..0000000
--- a/test/tint/unittest/reader/spirv/ImageWrite_ConvertTexelOperand_Arity_SpvParserHandleTest_ImageAccessTest_Variable_5.spvasm.expected.ir.dxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix 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/ImageWrite_ConvertTexelOperand_Arity_SpvParserHandleTest_ImageAccessTest_Variable_5.spvasm.expected.ir.fxc.hlsl b/test/tint/unittest/reader/spirv/ImageWrite_ConvertTexelOperand_Arity_SpvParserHandleTest_ImageAccessTest_Variable_5.spvasm.expected.ir.fxc.hlsl
deleted file mode 100644
index 685a9ee..0000000
--- a/test/tint/unittest/reader/spirv/ImageWrite_ConvertTexelOperand_Arity_SpvParserHandleTest_ImageAccessTest_Variable_5.spvasm.expected.ir.fxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix 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/ImageWrite_ConvertTexelOperand_Arity_SpvParserHandleTest_ImageAccessTest_Variable_6.spvasm.expected.ir.dxc.hlsl b/test/tint/unittest/reader/spirv/ImageWrite_ConvertTexelOperand_Arity_SpvParserHandleTest_ImageAccessTest_Variable_6.spvasm.expected.ir.dxc.hlsl
deleted file mode 100644
index 685a9ee..0000000
--- a/test/tint/unittest/reader/spirv/ImageWrite_ConvertTexelOperand_Arity_SpvParserHandleTest_ImageAccessTest_Variable_6.spvasm.expected.ir.dxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix 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/ImageWrite_ConvertTexelOperand_Arity_SpvParserHandleTest_ImageAccessTest_Variable_6.spvasm.expected.ir.fxc.hlsl b/test/tint/unittest/reader/spirv/ImageWrite_ConvertTexelOperand_Arity_SpvParserHandleTest_ImageAccessTest_Variable_6.spvasm.expected.ir.fxc.hlsl
deleted file mode 100644
index 685a9ee..0000000
--- a/test/tint/unittest/reader/spirv/ImageWrite_ConvertTexelOperand_Arity_SpvParserHandleTest_ImageAccessTest_Variable_6.spvasm.expected.ir.fxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix 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/ImageWrite_ConvertTexelOperand_Arity_SpvParserHandleTest_ImageAccessTest_Variable_7.spvasm.expected.ir.dxc.hlsl b/test/tint/unittest/reader/spirv/ImageWrite_ConvertTexelOperand_Arity_SpvParserHandleTest_ImageAccessTest_Variable_7.spvasm.expected.ir.dxc.hlsl
deleted file mode 100644
index 685a9ee..0000000
--- a/test/tint/unittest/reader/spirv/ImageWrite_ConvertTexelOperand_Arity_SpvParserHandleTest_ImageAccessTest_Variable_7.spvasm.expected.ir.dxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix 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/ImageWrite_ConvertTexelOperand_Arity_SpvParserHandleTest_ImageAccessTest_Variable_7.spvasm.expected.ir.fxc.hlsl b/test/tint/unittest/reader/spirv/ImageWrite_ConvertTexelOperand_Arity_SpvParserHandleTest_ImageAccessTest_Variable_7.spvasm.expected.ir.fxc.hlsl
deleted file mode 100644
index 685a9ee..0000000
--- a/test/tint/unittest/reader/spirv/ImageWrite_ConvertTexelOperand_Arity_SpvParserHandleTest_ImageAccessTest_Variable_7.spvasm.expected.ir.fxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix 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/ImageWrite_ConvertTexelOperand_SameSignedness_SpvParserHandleTest_ImageAccessTest_Variable_0.spvasm.expected.ir.dxc.hlsl b/test/tint/unittest/reader/spirv/ImageWrite_ConvertTexelOperand_SameSignedness_SpvParserHandleTest_ImageAccessTest_Variable_0.spvasm.expected.ir.dxc.hlsl
deleted file mode 100644
index 685a9ee..0000000
--- a/test/tint/unittest/reader/spirv/ImageWrite_ConvertTexelOperand_SameSignedness_SpvParserHandleTest_ImageAccessTest_Variable_0.spvasm.expected.ir.dxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix 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/ImageWrite_ConvertTexelOperand_SameSignedness_SpvParserHandleTest_ImageAccessTest_Variable_0.spvasm.expected.ir.fxc.hlsl b/test/tint/unittest/reader/spirv/ImageWrite_ConvertTexelOperand_SameSignedness_SpvParserHandleTest_ImageAccessTest_Variable_0.spvasm.expected.ir.fxc.hlsl
deleted file mode 100644
index 685a9ee..0000000
--- a/test/tint/unittest/reader/spirv/ImageWrite_ConvertTexelOperand_SameSignedness_SpvParserHandleTest_ImageAccessTest_Variable_0.spvasm.expected.ir.fxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix 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/ImageWrite_ConvertTexelOperand_SameSignedness_SpvParserHandleTest_ImageAccessTest_Variable_1.spvasm.expected.ir.dxc.hlsl b/test/tint/unittest/reader/spirv/ImageWrite_ConvertTexelOperand_SameSignedness_SpvParserHandleTest_ImageAccessTest_Variable_1.spvasm.expected.ir.dxc.hlsl
deleted file mode 100644
index 685a9ee..0000000
--- a/test/tint/unittest/reader/spirv/ImageWrite_ConvertTexelOperand_SameSignedness_SpvParserHandleTest_ImageAccessTest_Variable_1.spvasm.expected.ir.dxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix 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/ImageWrite_ConvertTexelOperand_SameSignedness_SpvParserHandleTest_ImageAccessTest_Variable_1.spvasm.expected.ir.fxc.hlsl b/test/tint/unittest/reader/spirv/ImageWrite_ConvertTexelOperand_SameSignedness_SpvParserHandleTest_ImageAccessTest_Variable_1.spvasm.expected.ir.fxc.hlsl
deleted file mode 100644
index 685a9ee..0000000
--- a/test/tint/unittest/reader/spirv/ImageWrite_ConvertTexelOperand_SameSignedness_SpvParserHandleTest_ImageAccessTest_Variable_1.spvasm.expected.ir.fxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix 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/ImageWrite_ConvertTexelOperand_Signedness_AndWidening_SpvParserHandleTest_ImageAccessTest_Variable_0.spvasm.expected.ir.dxc.hlsl b/test/tint/unittest/reader/spirv/ImageWrite_ConvertTexelOperand_Signedness_AndWidening_SpvParserHandleTest_ImageAccessTest_Variable_0.spvasm.expected.ir.dxc.hlsl
deleted file mode 100644
index 685a9ee..0000000
--- a/test/tint/unittest/reader/spirv/ImageWrite_ConvertTexelOperand_Signedness_AndWidening_SpvParserHandleTest_ImageAccessTest_Variable_0.spvasm.expected.ir.dxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix 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/ImageWrite_ConvertTexelOperand_Signedness_AndWidening_SpvParserHandleTest_ImageAccessTest_Variable_0.spvasm.expected.ir.fxc.hlsl b/test/tint/unittest/reader/spirv/ImageWrite_ConvertTexelOperand_Signedness_AndWidening_SpvParserHandleTest_ImageAccessTest_Variable_0.spvasm.expected.ir.fxc.hlsl
deleted file mode 100644
index 685a9ee..0000000
--- a/test/tint/unittest/reader/spirv/ImageWrite_ConvertTexelOperand_Signedness_AndWidening_SpvParserHandleTest_ImageAccessTest_Variable_0.spvasm.expected.ir.fxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix 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/ImageWrite_ConvertTexelOperand_Signedness_AndWidening_SpvParserHandleTest_ImageAccessTest_Variable_1.spvasm.expected.ir.dxc.hlsl b/test/tint/unittest/reader/spirv/ImageWrite_ConvertTexelOperand_Signedness_AndWidening_SpvParserHandleTest_ImageAccessTest_Variable_1.spvasm.expected.ir.dxc.hlsl
deleted file mode 100644
index 685a9ee..0000000
--- a/test/tint/unittest/reader/spirv/ImageWrite_ConvertTexelOperand_Signedness_AndWidening_SpvParserHandleTest_ImageAccessTest_Variable_1.spvasm.expected.ir.dxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix 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/ImageWrite_ConvertTexelOperand_Signedness_AndWidening_SpvParserHandleTest_ImageAccessTest_Variable_1.spvasm.expected.ir.fxc.hlsl b/test/tint/unittest/reader/spirv/ImageWrite_ConvertTexelOperand_Signedness_AndWidening_SpvParserHandleTest_ImageAccessTest_Variable_1.spvasm.expected.ir.fxc.hlsl
deleted file mode 100644
index 685a9ee..0000000
--- a/test/tint/unittest/reader/spirv/ImageWrite_ConvertTexelOperand_Signedness_AndWidening_SpvParserHandleTest_ImageAccessTest_Variable_1.spvasm.expected.ir.fxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix 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/ImageWrite_OptionalParams_SpvParserHandleTest_ImageAccessTest_Variable_0.spvasm.expected.ir.dxc.hlsl b/test/tint/unittest/reader/spirv/ImageWrite_OptionalParams_SpvParserHandleTest_ImageAccessTest_Variable_0.spvasm.expected.ir.dxc.hlsl
deleted file mode 100644
index 685a9ee..0000000
--- a/test/tint/unittest/reader/spirv/ImageWrite_OptionalParams_SpvParserHandleTest_ImageAccessTest_Variable_0.spvasm.expected.ir.dxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix 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/ImageWrite_OptionalParams_SpvParserHandleTest_ImageAccessTest_Variable_0.spvasm.expected.ir.fxc.hlsl b/test/tint/unittest/reader/spirv/ImageWrite_OptionalParams_SpvParserHandleTest_ImageAccessTest_Variable_0.spvasm.expected.ir.fxc.hlsl
deleted file mode 100644
index 685a9ee..0000000
--- a/test/tint/unittest/reader/spirv/ImageWrite_OptionalParams_SpvParserHandleTest_ImageAccessTest_Variable_0.spvasm.expected.ir.fxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix 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/Images_SpvParserHandleTest_DeclUnderspecifiedHandle_Variable_0.spvasm.expected.ir.fxc.hlsl b/test/tint/unittest/reader/spirv/Images_SpvParserHandleTest_DeclUnderspecifiedHandle_Variable_0.spvasm.expected.ir.fxc.hlsl
deleted file mode 100644
index a096ece..0000000
--- a/test/tint/unittest/reader/spirv/Images_SpvParserHandleTest_DeclUnderspecifiedHandle_Variable_0.spvasm.expected.ir.fxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-void main_1() {
-}
-
-void main() {
-  main_1();
-}
-
diff --git a/test/tint/unittest/reader/spirv/Images_SpvParserHandleTest_DeclUnderspecifiedHandle_Variable_1.spvasm.expected.ir.fxc.hlsl b/test/tint/unittest/reader/spirv/Images_SpvParserHandleTest_DeclUnderspecifiedHandle_Variable_1.spvasm.expected.ir.fxc.hlsl
deleted file mode 100644
index a096ece..0000000
--- a/test/tint/unittest/reader/spirv/Images_SpvParserHandleTest_DeclUnderspecifiedHandle_Variable_1.spvasm.expected.ir.fxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-void main_1() {
-}
-
-void main() {
-  main_1();
-}
-
diff --git a/test/tint/unittest/reader/spirv/Images_SpvParserHandleTest_DeclUnderspecifiedHandle_Variable_2.spvasm.expected.ir.fxc.hlsl b/test/tint/unittest/reader/spirv/Images_SpvParserHandleTest_DeclUnderspecifiedHandle_Variable_2.spvasm.expected.ir.fxc.hlsl
deleted file mode 100644
index a096ece..0000000
--- a/test/tint/unittest/reader/spirv/Images_SpvParserHandleTest_DeclUnderspecifiedHandle_Variable_2.spvasm.expected.ir.fxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-void main_1() {
-}
-
-void main() {
-  main_1();
-}
-
diff --git a/test/tint/unittest/reader/spirv/Multisampled_Only2DNonArrayedIsValid_SpvParserHandleTest_ImageDeclTest_DeclareAndUseHandle_2.spvasm.expected.ir.dxc.hlsl b/test/tint/unittest/reader/spirv/Multisampled_Only2DNonArrayedIsValid_SpvParserHandleTest_ImageDeclTest_DeclareAndUseHandle_2.spvasm.expected.ir.dxc.hlsl
deleted file mode 100644
index f9d5143..0000000
--- a/test/tint/unittest/reader/spirv/Multisampled_Only2DNonArrayedIsValid_SpvParserHandleTest_ImageDeclTest_DeclareAndUseHandle_2.spvasm.expected.ir.dxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureNumSamples
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix 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/Multisampled_Only2DNonArrayedIsValid_SpvParserHandleTest_ImageDeclTest_DeclareAndUseHandle_2.spvasm.expected.ir.fxc.hlsl b/test/tint/unittest/reader/spirv/Multisampled_Only2DNonArrayedIsValid_SpvParserHandleTest_ImageDeclTest_DeclareAndUseHandle_2.spvasm.expected.ir.fxc.hlsl
deleted file mode 100644
index f9d5143..0000000
--- a/test/tint/unittest/reader/spirv/Multisampled_Only2DNonArrayedIsValid_SpvParserHandleTest_ImageDeclTest_DeclareAndUseHandle_2.spvasm.expected.ir.fxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureNumSamples
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix 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/PreserveFloatCoords_Arrayed_SpvParserHandleTest_ImageCoordsTest_MakeCoordinateOperandsForImageAccess_0.spvasm.expected.ir.dxc.hlsl b/test/tint/unittest/reader/spirv/PreserveFloatCoords_Arrayed_SpvParserHandleTest_ImageCoordsTest_MakeCoordinateOperandsForImageAccess_0.spvasm.expected.ir.dxc.hlsl
index 6739938..58230f6 100644
--- a/test/tint/unittest/reader/spirv/PreserveFloatCoords_Arrayed_SpvParserHandleTest_ImageCoordsTest_MakeCoordinateOperandsForImageAccess_0.spvasm.expected.ir.dxc.hlsl
+++ b/test/tint/unittest/reader/spirv/PreserveFloatCoords_Arrayed_SpvParserHandleTest_ImageCoordsTest_MakeCoordinateOperandsForImageAccess_0.spvasm.expected.ir.dxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureSample
+..\..\src\tint\lang\hlsl\writer\printer\printer.cc:1010 internal compiler error: TINT_UNREACHABLE unhandled: textureSample
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/unittest/reader/spirv/PreserveFloatCoords_Arrayed_SpvParserHandleTest_ImageCoordsTest_MakeCoordinateOperandsForImageAccess_0.spvasm.expected.ir.fxc.hlsl b/test/tint/unittest/reader/spirv/PreserveFloatCoords_Arrayed_SpvParserHandleTest_ImageCoordsTest_MakeCoordinateOperandsForImageAccess_0.spvasm.expected.ir.fxc.hlsl
index 6739938..58230f6 100644
--- a/test/tint/unittest/reader/spirv/PreserveFloatCoords_Arrayed_SpvParserHandleTest_ImageCoordsTest_MakeCoordinateOperandsForImageAccess_0.spvasm.expected.ir.fxc.hlsl
+++ b/test/tint/unittest/reader/spirv/PreserveFloatCoords_Arrayed_SpvParserHandleTest_ImageCoordsTest_MakeCoordinateOperandsForImageAccess_0.spvasm.expected.ir.fxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureSample
+..\..\src\tint\lang\hlsl\writer\printer\printer.cc:1010 internal compiler error: TINT_UNREACHABLE unhandled: textureSample
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/unittest/reader/spirv/PreserveFloatCoords_Arrayed_SpvParserHandleTest_ImageCoordsTest_MakeCoordinateOperandsForImageAccess_1.spvasm.expected.ir.dxc.hlsl b/test/tint/unittest/reader/spirv/PreserveFloatCoords_Arrayed_SpvParserHandleTest_ImageCoordsTest_MakeCoordinateOperandsForImageAccess_1.spvasm.expected.ir.dxc.hlsl
index b903e3f..cf26da3 100644
--- a/test/tint/unittest/reader/spirv/PreserveFloatCoords_Arrayed_SpvParserHandleTest_ImageCoordsTest_MakeCoordinateOperandsForImageAccess_1.spvasm.expected.ir.dxc.hlsl
+++ b/test/tint/unittest/reader/spirv/PreserveFloatCoords_Arrayed_SpvParserHandleTest_ImageCoordsTest_MakeCoordinateOperandsForImageAccess_1.spvasm.expected.ir.dxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureSampleLevel
+..\..\src\tint\lang\hlsl\writer\printer\printer.cc:1010 internal compiler error: TINT_UNREACHABLE unhandled: textureSampleLevel
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/unittest/reader/spirv/PreserveFloatCoords_Arrayed_SpvParserHandleTest_ImageCoordsTest_MakeCoordinateOperandsForImageAccess_1.spvasm.expected.ir.fxc.hlsl b/test/tint/unittest/reader/spirv/PreserveFloatCoords_Arrayed_SpvParserHandleTest_ImageCoordsTest_MakeCoordinateOperandsForImageAccess_1.spvasm.expected.ir.fxc.hlsl
index b903e3f..cf26da3 100644
--- a/test/tint/unittest/reader/spirv/PreserveFloatCoords_Arrayed_SpvParserHandleTest_ImageCoordsTest_MakeCoordinateOperandsForImageAccess_1.spvasm.expected.ir.fxc.hlsl
+++ b/test/tint/unittest/reader/spirv/PreserveFloatCoords_Arrayed_SpvParserHandleTest_ImageCoordsTest_MakeCoordinateOperandsForImageAccess_1.spvasm.expected.ir.fxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureSampleLevel
+..\..\src\tint\lang\hlsl\writer\printer\printer.cc:1010 internal compiler error: TINT_UNREACHABLE unhandled: textureSampleLevel
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/unittest/reader/spirv/PreserveFloatCoords_Arrayed_SpvParserHandleTest_ImageCoordsTest_MakeCoordinateOperandsForImageAccess_2.spvasm.expected.ir.dxc.hlsl b/test/tint/unittest/reader/spirv/PreserveFloatCoords_Arrayed_SpvParserHandleTest_ImageCoordsTest_MakeCoordinateOperandsForImageAccess_2.spvasm.expected.ir.dxc.hlsl
index 16966cd..b7acf20 100644
--- a/test/tint/unittest/reader/spirv/PreserveFloatCoords_Arrayed_SpvParserHandleTest_ImageCoordsTest_MakeCoordinateOperandsForImageAccess_2.spvasm.expected.ir.dxc.hlsl
+++ b/test/tint/unittest/reader/spirv/PreserveFloatCoords_Arrayed_SpvParserHandleTest_ImageCoordsTest_MakeCoordinateOperandsForImageAccess_2.spvasm.expected.ir.dxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureSampleCompare
+..\..\src\tint\lang\hlsl\writer\printer\printer.cc:1010 internal compiler error: TINT_UNREACHABLE unhandled: textureSampleCompare
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/unittest/reader/spirv/PreserveFloatCoords_Arrayed_SpvParserHandleTest_ImageCoordsTest_MakeCoordinateOperandsForImageAccess_2.spvasm.expected.ir.fxc.hlsl b/test/tint/unittest/reader/spirv/PreserveFloatCoords_Arrayed_SpvParserHandleTest_ImageCoordsTest_MakeCoordinateOperandsForImageAccess_2.spvasm.expected.ir.fxc.hlsl
index 16966cd..b7acf20 100644
--- a/test/tint/unittest/reader/spirv/PreserveFloatCoords_Arrayed_SpvParserHandleTest_ImageCoordsTest_MakeCoordinateOperandsForImageAccess_2.spvasm.expected.ir.fxc.hlsl
+++ b/test/tint/unittest/reader/spirv/PreserveFloatCoords_Arrayed_SpvParserHandleTest_ImageCoordsTest_MakeCoordinateOperandsForImageAccess_2.spvasm.expected.ir.fxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureSampleCompare
+..\..\src\tint\lang\hlsl\writer\printer\printer.cc:1010 internal compiler error: TINT_UNREACHABLE unhandled: textureSampleCompare
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/unittest/reader/spirv/PreserveFloatCoords_NonArrayed_SpvParserHandleTest_ImageCoordsTest_MakeCoordinateOperandsForImageAccess_0.spvasm.expected.ir.dxc.hlsl b/test/tint/unittest/reader/spirv/PreserveFloatCoords_NonArrayed_SpvParserHandleTest_ImageCoordsTest_MakeCoordinateOperandsForImageAccess_0.spvasm.expected.ir.dxc.hlsl
index 6739938..58230f6 100644
--- a/test/tint/unittest/reader/spirv/PreserveFloatCoords_NonArrayed_SpvParserHandleTest_ImageCoordsTest_MakeCoordinateOperandsForImageAccess_0.spvasm.expected.ir.dxc.hlsl
+++ b/test/tint/unittest/reader/spirv/PreserveFloatCoords_NonArrayed_SpvParserHandleTest_ImageCoordsTest_MakeCoordinateOperandsForImageAccess_0.spvasm.expected.ir.dxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureSample
+..\..\src\tint\lang\hlsl\writer\printer\printer.cc:1010 internal compiler error: TINT_UNREACHABLE unhandled: textureSample
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/unittest/reader/spirv/PreserveFloatCoords_NonArrayed_SpvParserHandleTest_ImageCoordsTest_MakeCoordinateOperandsForImageAccess_0.spvasm.expected.ir.fxc.hlsl b/test/tint/unittest/reader/spirv/PreserveFloatCoords_NonArrayed_SpvParserHandleTest_ImageCoordsTest_MakeCoordinateOperandsForImageAccess_0.spvasm.expected.ir.fxc.hlsl
index 6739938..58230f6 100644
--- a/test/tint/unittest/reader/spirv/PreserveFloatCoords_NonArrayed_SpvParserHandleTest_ImageCoordsTest_MakeCoordinateOperandsForImageAccess_0.spvasm.expected.ir.fxc.hlsl
+++ b/test/tint/unittest/reader/spirv/PreserveFloatCoords_NonArrayed_SpvParserHandleTest_ImageCoordsTest_MakeCoordinateOperandsForImageAccess_0.spvasm.expected.ir.fxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureSample
+..\..\src\tint\lang\hlsl\writer\printer\printer.cc:1010 internal compiler error: TINT_UNREACHABLE unhandled: textureSample
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/unittest/reader/spirv/PreserveFloatCoords_NonArrayed_SpvParserHandleTest_ImageCoordsTest_MakeCoordinateOperandsForImageAccess_2.spvasm.expected.ir.dxc.hlsl b/test/tint/unittest/reader/spirv/PreserveFloatCoords_NonArrayed_SpvParserHandleTest_ImageCoordsTest_MakeCoordinateOperandsForImageAccess_2.spvasm.expected.ir.dxc.hlsl
index 6739938..58230f6 100644
--- a/test/tint/unittest/reader/spirv/PreserveFloatCoords_NonArrayed_SpvParserHandleTest_ImageCoordsTest_MakeCoordinateOperandsForImageAccess_2.spvasm.expected.ir.dxc.hlsl
+++ b/test/tint/unittest/reader/spirv/PreserveFloatCoords_NonArrayed_SpvParserHandleTest_ImageCoordsTest_MakeCoordinateOperandsForImageAccess_2.spvasm.expected.ir.dxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureSample
+..\..\src\tint\lang\hlsl\writer\printer\printer.cc:1010 internal compiler error: TINT_UNREACHABLE unhandled: textureSample
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/unittest/reader/spirv/PreserveFloatCoords_NonArrayed_SpvParserHandleTest_ImageCoordsTest_MakeCoordinateOperandsForImageAccess_2.spvasm.expected.ir.fxc.hlsl b/test/tint/unittest/reader/spirv/PreserveFloatCoords_NonArrayed_SpvParserHandleTest_ImageCoordsTest_MakeCoordinateOperandsForImageAccess_2.spvasm.expected.ir.fxc.hlsl
index 6739938..58230f6 100644
--- a/test/tint/unittest/reader/spirv/PreserveFloatCoords_NonArrayed_SpvParserHandleTest_ImageCoordsTest_MakeCoordinateOperandsForImageAccess_2.spvasm.expected.ir.fxc.hlsl
+++ b/test/tint/unittest/reader/spirv/PreserveFloatCoords_NonArrayed_SpvParserHandleTest_ImageCoordsTest_MakeCoordinateOperandsForImageAccess_2.spvasm.expected.ir.fxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureSample
+..\..\src\tint\lang\hlsl\writer\printer\printer.cc:1010 internal compiler error: TINT_UNREACHABLE unhandled: textureSample
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/unittest/reader/spirv/PreserveFloatCoords_NonArrayed_SpvParserHandleTest_ImageCoordsTest_MakeCoordinateOperandsForImageAccess_3.spvasm.expected.ir.dxc.hlsl b/test/tint/unittest/reader/spirv/PreserveFloatCoords_NonArrayed_SpvParserHandleTest_ImageCoordsTest_MakeCoordinateOperandsForImageAccess_3.spvasm.expected.ir.dxc.hlsl
index b903e3f..cf26da3 100644
--- a/test/tint/unittest/reader/spirv/PreserveFloatCoords_NonArrayed_SpvParserHandleTest_ImageCoordsTest_MakeCoordinateOperandsForImageAccess_3.spvasm.expected.ir.dxc.hlsl
+++ b/test/tint/unittest/reader/spirv/PreserveFloatCoords_NonArrayed_SpvParserHandleTest_ImageCoordsTest_MakeCoordinateOperandsForImageAccess_3.spvasm.expected.ir.dxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureSampleLevel
+..\..\src\tint\lang\hlsl\writer\printer\printer.cc:1010 internal compiler error: TINT_UNREACHABLE unhandled: textureSampleLevel
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/unittest/reader/spirv/PreserveFloatCoords_NonArrayed_SpvParserHandleTest_ImageCoordsTest_MakeCoordinateOperandsForImageAccess_3.spvasm.expected.ir.fxc.hlsl b/test/tint/unittest/reader/spirv/PreserveFloatCoords_NonArrayed_SpvParserHandleTest_ImageCoordsTest_MakeCoordinateOperandsForImageAccess_3.spvasm.expected.ir.fxc.hlsl
index b903e3f..cf26da3 100644
--- a/test/tint/unittest/reader/spirv/PreserveFloatCoords_NonArrayed_SpvParserHandleTest_ImageCoordsTest_MakeCoordinateOperandsForImageAccess_3.spvasm.expected.ir.fxc.hlsl
+++ b/test/tint/unittest/reader/spirv/PreserveFloatCoords_NonArrayed_SpvParserHandleTest_ImageCoordsTest_MakeCoordinateOperandsForImageAccess_3.spvasm.expected.ir.fxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureSampleLevel
+..\..\src\tint\lang\hlsl\writer\printer\printer.cc:1010 internal compiler error: TINT_UNREACHABLE unhandled: textureSampleLevel
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/unittest/reader/spirv/PreserveFloatCoords_NonArrayed_SpvParserHandleTest_ImageCoordsTest_MakeCoordinateOperandsForImageAccess_4.spvasm.expected.ir.dxc.hlsl b/test/tint/unittest/reader/spirv/PreserveFloatCoords_NonArrayed_SpvParserHandleTest_ImageCoordsTest_MakeCoordinateOperandsForImageAccess_4.spvasm.expected.ir.dxc.hlsl
index 16966cd..b7acf20 100644
--- a/test/tint/unittest/reader/spirv/PreserveFloatCoords_NonArrayed_SpvParserHandleTest_ImageCoordsTest_MakeCoordinateOperandsForImageAccess_4.spvasm.expected.ir.dxc.hlsl
+++ b/test/tint/unittest/reader/spirv/PreserveFloatCoords_NonArrayed_SpvParserHandleTest_ImageCoordsTest_MakeCoordinateOperandsForImageAccess_4.spvasm.expected.ir.dxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureSampleCompare
+..\..\src\tint\lang\hlsl\writer\printer\printer.cc:1010 internal compiler error: TINT_UNREACHABLE unhandled: textureSampleCompare
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/unittest/reader/spirv/PreserveFloatCoords_NonArrayed_SpvParserHandleTest_ImageCoordsTest_MakeCoordinateOperandsForImageAccess_4.spvasm.expected.ir.fxc.hlsl b/test/tint/unittest/reader/spirv/PreserveFloatCoords_NonArrayed_SpvParserHandleTest_ImageCoordsTest_MakeCoordinateOperandsForImageAccess_4.spvasm.expected.ir.fxc.hlsl
index 16966cd..b7acf20 100644
--- a/test/tint/unittest/reader/spirv/PreserveFloatCoords_NonArrayed_SpvParserHandleTest_ImageCoordsTest_MakeCoordinateOperandsForImageAccess_4.spvasm.expected.ir.fxc.hlsl
+++ b/test/tint/unittest/reader/spirv/PreserveFloatCoords_NonArrayed_SpvParserHandleTest_ImageCoordsTest_MakeCoordinateOperandsForImageAccess_4.spvasm.expected.ir.fxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureSampleCompare
+..\..\src\tint\lang\hlsl\writer\printer\printer.cc:1010 internal compiler error: TINT_UNREACHABLE unhandled: textureSampleCompare
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/unittest/reader/spirv/PreserveIntCoords_Arrayed_SpvParserHandleTest_ImageCoordsTest_MakeCoordinateOperandsForImageAccess_0.spvasm.expected.ir.dxc.hlsl b/test/tint/unittest/reader/spirv/PreserveIntCoords_Arrayed_SpvParserHandleTest_ImageCoordsTest_MakeCoordinateOperandsForImageAccess_0.spvasm.expected.ir.dxc.hlsl
deleted file mode 100644
index fd28383..0000000
--- a/test/tint/unittest/reader/spirv/PreserveIntCoords_Arrayed_SpvParserHandleTest_ImageCoordsTest_MakeCoordinateOperandsForImageAccess_0.spvasm.expected.ir.dxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureLoad
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix 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/PreserveIntCoords_Arrayed_SpvParserHandleTest_ImageCoordsTest_MakeCoordinateOperandsForImageAccess_0.spvasm.expected.ir.fxc.hlsl b/test/tint/unittest/reader/spirv/PreserveIntCoords_Arrayed_SpvParserHandleTest_ImageCoordsTest_MakeCoordinateOperandsForImageAccess_0.spvasm.expected.ir.fxc.hlsl
deleted file mode 100644
index fd28383..0000000
--- a/test/tint/unittest/reader/spirv/PreserveIntCoords_Arrayed_SpvParserHandleTest_ImageCoordsTest_MakeCoordinateOperandsForImageAccess_0.spvasm.expected.ir.fxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureLoad
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix 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/PreserveIntCoords_Arrayed_SpvParserHandleTest_ImageCoordsTest_MakeCoordinateOperandsForImageAccess_1.spvasm.expected.ir.dxc.hlsl b/test/tint/unittest/reader/spirv/PreserveIntCoords_Arrayed_SpvParserHandleTest_ImageCoordsTest_MakeCoordinateOperandsForImageAccess_1.spvasm.expected.ir.dxc.hlsl
deleted file mode 100644
index fd28383..0000000
--- a/test/tint/unittest/reader/spirv/PreserveIntCoords_Arrayed_SpvParserHandleTest_ImageCoordsTest_MakeCoordinateOperandsForImageAccess_1.spvasm.expected.ir.dxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureLoad
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix 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/PreserveIntCoords_Arrayed_SpvParserHandleTest_ImageCoordsTest_MakeCoordinateOperandsForImageAccess_1.spvasm.expected.ir.fxc.hlsl b/test/tint/unittest/reader/spirv/PreserveIntCoords_Arrayed_SpvParserHandleTest_ImageCoordsTest_MakeCoordinateOperandsForImageAccess_1.spvasm.expected.ir.fxc.hlsl
deleted file mode 100644
index fd28383..0000000
--- a/test/tint/unittest/reader/spirv/PreserveIntCoords_Arrayed_SpvParserHandleTest_ImageCoordsTest_MakeCoordinateOperandsForImageAccess_1.spvasm.expected.ir.fxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureLoad
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix 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/PreserveIntCoords_Arrayed_SpvParserHandleTest_ImageCoordsTest_MakeCoordinateOperandsForImageAccess_2.spvasm.expected.ir.dxc.hlsl b/test/tint/unittest/reader/spirv/PreserveIntCoords_Arrayed_SpvParserHandleTest_ImageCoordsTest_MakeCoordinateOperandsForImageAccess_2.spvasm.expected.ir.dxc.hlsl
deleted file mode 100644
index 685a9ee..0000000
--- a/test/tint/unittest/reader/spirv/PreserveIntCoords_Arrayed_SpvParserHandleTest_ImageCoordsTest_MakeCoordinateOperandsForImageAccess_2.spvasm.expected.ir.dxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix 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/PreserveIntCoords_Arrayed_SpvParserHandleTest_ImageCoordsTest_MakeCoordinateOperandsForImageAccess_2.spvasm.expected.ir.fxc.hlsl b/test/tint/unittest/reader/spirv/PreserveIntCoords_Arrayed_SpvParserHandleTest_ImageCoordsTest_MakeCoordinateOperandsForImageAccess_2.spvasm.expected.ir.fxc.hlsl
deleted file mode 100644
index 685a9ee..0000000
--- a/test/tint/unittest/reader/spirv/PreserveIntCoords_Arrayed_SpvParserHandleTest_ImageCoordsTest_MakeCoordinateOperandsForImageAccess_2.spvasm.expected.ir.fxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix 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/PreserveIntCoords_NonArrayed_SpvParserHandleTest_ImageCoordsTest_MakeCoordinateOperandsForImageAccess_0.spvasm.expected.ir.dxc.hlsl b/test/tint/unittest/reader/spirv/PreserveIntCoords_NonArrayed_SpvParserHandleTest_ImageCoordsTest_MakeCoordinateOperandsForImageAccess_0.spvasm.expected.ir.dxc.hlsl
deleted file mode 100644
index fd28383..0000000
--- a/test/tint/unittest/reader/spirv/PreserveIntCoords_NonArrayed_SpvParserHandleTest_ImageCoordsTest_MakeCoordinateOperandsForImageAccess_0.spvasm.expected.ir.dxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureLoad
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix 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/PreserveIntCoords_NonArrayed_SpvParserHandleTest_ImageCoordsTest_MakeCoordinateOperandsForImageAccess_0.spvasm.expected.ir.fxc.hlsl b/test/tint/unittest/reader/spirv/PreserveIntCoords_NonArrayed_SpvParserHandleTest_ImageCoordsTest_MakeCoordinateOperandsForImageAccess_0.spvasm.expected.ir.fxc.hlsl
deleted file mode 100644
index fd28383..0000000
--- a/test/tint/unittest/reader/spirv/PreserveIntCoords_NonArrayed_SpvParserHandleTest_ImageCoordsTest_MakeCoordinateOperandsForImageAccess_0.spvasm.expected.ir.fxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureLoad
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix 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/PreserveIntCoords_NonArrayed_SpvParserHandleTest_ImageCoordsTest_MakeCoordinateOperandsForImageAccess_1.spvasm.expected.ir.dxc.hlsl b/test/tint/unittest/reader/spirv/PreserveIntCoords_NonArrayed_SpvParserHandleTest_ImageCoordsTest_MakeCoordinateOperandsForImageAccess_1.spvasm.expected.ir.dxc.hlsl
deleted file mode 100644
index fd28383..0000000
--- a/test/tint/unittest/reader/spirv/PreserveIntCoords_NonArrayed_SpvParserHandleTest_ImageCoordsTest_MakeCoordinateOperandsForImageAccess_1.spvasm.expected.ir.dxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureLoad
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix 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/PreserveIntCoords_NonArrayed_SpvParserHandleTest_ImageCoordsTest_MakeCoordinateOperandsForImageAccess_1.spvasm.expected.ir.fxc.hlsl b/test/tint/unittest/reader/spirv/PreserveIntCoords_NonArrayed_SpvParserHandleTest_ImageCoordsTest_MakeCoordinateOperandsForImageAccess_1.spvasm.expected.ir.fxc.hlsl
deleted file mode 100644
index fd28383..0000000
--- a/test/tint/unittest/reader/spirv/PreserveIntCoords_NonArrayed_SpvParserHandleTest_ImageCoordsTest_MakeCoordinateOperandsForImageAccess_1.spvasm.expected.ir.fxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureLoad
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix 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/PreserveIntCoords_NonArrayed_SpvParserHandleTest_ImageCoordsTest_MakeCoordinateOperandsForImageAccess_2.spvasm.expected.ir.dxc.hlsl b/test/tint/unittest/reader/spirv/PreserveIntCoords_NonArrayed_SpvParserHandleTest_ImageCoordsTest_MakeCoordinateOperandsForImageAccess_2.spvasm.expected.ir.dxc.hlsl
deleted file mode 100644
index 685a9ee..0000000
--- a/test/tint/unittest/reader/spirv/PreserveIntCoords_NonArrayed_SpvParserHandleTest_ImageCoordsTest_MakeCoordinateOperandsForImageAccess_2.spvasm.expected.ir.dxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix 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/PreserveIntCoords_NonArrayed_SpvParserHandleTest_ImageCoordsTest_MakeCoordinateOperandsForImageAccess_2.spvasm.expected.ir.fxc.hlsl b/test/tint/unittest/reader/spirv/PreserveIntCoords_NonArrayed_SpvParserHandleTest_ImageCoordsTest_MakeCoordinateOperandsForImageAccess_2.spvasm.expected.ir.fxc.hlsl
deleted file mode 100644
index 685a9ee..0000000
--- a/test/tint/unittest/reader/spirv/PreserveIntCoords_NonArrayed_SpvParserHandleTest_ImageCoordsTest_MakeCoordinateOperandsForImageAccess_2.spvasm.expected.ir.fxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix 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/PreserveIntCoords_NonArrayed_SpvParserHandleTest_ImageCoordsTest_MakeCoordinateOperandsForImageAccess_3.spvasm.expected.ir.dxc.hlsl b/test/tint/unittest/reader/spirv/PreserveIntCoords_NonArrayed_SpvParserHandleTest_ImageCoordsTest_MakeCoordinateOperandsForImageAccess_3.spvasm.expected.ir.dxc.hlsl
deleted file mode 100644
index fd28383..0000000
--- a/test/tint/unittest/reader/spirv/PreserveIntCoords_NonArrayed_SpvParserHandleTest_ImageCoordsTest_MakeCoordinateOperandsForImageAccess_3.spvasm.expected.ir.dxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureLoad
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix 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/PreserveIntCoords_NonArrayed_SpvParserHandleTest_ImageCoordsTest_MakeCoordinateOperandsForImageAccess_3.spvasm.expected.ir.fxc.hlsl b/test/tint/unittest/reader/spirv/PreserveIntCoords_NonArrayed_SpvParserHandleTest_ImageCoordsTest_MakeCoordinateOperandsForImageAccess_3.spvasm.expected.ir.fxc.hlsl
deleted file mode 100644
index fd28383..0000000
--- a/test/tint/unittest/reader/spirv/PreserveIntCoords_NonArrayed_SpvParserHandleTest_ImageCoordsTest_MakeCoordinateOperandsForImageAccess_3.spvasm.expected.ir.fxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureLoad
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix 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/PreserveIntCoords_NonArrayed_SpvParserHandleTest_ImageCoordsTest_MakeCoordinateOperandsForImageAccess_4.spvasm.expected.ir.dxc.hlsl b/test/tint/unittest/reader/spirv/PreserveIntCoords_NonArrayed_SpvParserHandleTest_ImageCoordsTest_MakeCoordinateOperandsForImageAccess_4.spvasm.expected.ir.dxc.hlsl
deleted file mode 100644
index fd28383..0000000
--- a/test/tint/unittest/reader/spirv/PreserveIntCoords_NonArrayed_SpvParserHandleTest_ImageCoordsTest_MakeCoordinateOperandsForImageAccess_4.spvasm.expected.ir.dxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureLoad
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix 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/PreserveIntCoords_NonArrayed_SpvParserHandleTest_ImageCoordsTest_MakeCoordinateOperandsForImageAccess_4.spvasm.expected.ir.fxc.hlsl b/test/tint/unittest/reader/spirv/PreserveIntCoords_NonArrayed_SpvParserHandleTest_ImageCoordsTest_MakeCoordinateOperandsForImageAccess_4.spvasm.expected.ir.fxc.hlsl
deleted file mode 100644
index fd28383..0000000
--- a/test/tint/unittest/reader/spirv/PreserveIntCoords_NonArrayed_SpvParserHandleTest_ImageCoordsTest_MakeCoordinateOperandsForImageAccess_4.spvasm.expected.ir.fxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureLoad
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix 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/PreserveIntCoords_NonArrayed_SpvParserHandleTest_ImageCoordsTest_MakeCoordinateOperandsForImageAccess_5.spvasm.expected.ir.dxc.hlsl b/test/tint/unittest/reader/spirv/PreserveIntCoords_NonArrayed_SpvParserHandleTest_ImageCoordsTest_MakeCoordinateOperandsForImageAccess_5.spvasm.expected.ir.dxc.hlsl
deleted file mode 100644
index 685a9ee..0000000
--- a/test/tint/unittest/reader/spirv/PreserveIntCoords_NonArrayed_SpvParserHandleTest_ImageCoordsTest_MakeCoordinateOperandsForImageAccess_5.spvasm.expected.ir.dxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix 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/PreserveIntCoords_NonArrayed_SpvParserHandleTest_ImageCoordsTest_MakeCoordinateOperandsForImageAccess_5.spvasm.expected.ir.fxc.hlsl b/test/tint/unittest/reader/spirv/PreserveIntCoords_NonArrayed_SpvParserHandleTest_ImageCoordsTest_MakeCoordinateOperandsForImageAccess_5.spvasm.expected.ir.fxc.hlsl
deleted file mode 100644
index 685a9ee..0000000
--- a/test/tint/unittest/reader/spirv/PreserveIntCoords_NonArrayed_SpvParserHandleTest_ImageCoordsTest_MakeCoordinateOperandsForImageAccess_5.spvasm.expected.ir.fxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix 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/Samplers_SpvParserHandleTest_DeclUnderspecifiedHandle_Variable_0.spvasm.expected.ir.fxc.hlsl b/test/tint/unittest/reader/spirv/Samplers_SpvParserHandleTest_DeclUnderspecifiedHandle_Variable_0.spvasm.expected.ir.fxc.hlsl
deleted file mode 100644
index a096ece..0000000
--- a/test/tint/unittest/reader/spirv/Samplers_SpvParserHandleTest_DeclUnderspecifiedHandle_Variable_0.spvasm.expected.ir.fxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-void main_1() {
-}
-
-void main() {
-  main_1();
-}
-
diff --git a/test/tint/unittest/reader/spirv/Samples_SpvModuleScopeVarParserTest_ComputeBuiltin_Load_AccessChain_0.spvasm.expected.ir.dxc.hlsl b/test/tint/unittest/reader/spirv/Samples_SpvModuleScopeVarParserTest_ComputeBuiltin_Load_AccessChain_0.spvasm.expected.ir.dxc.hlsl
deleted file mode 100644
index 6b047b4..0000000
--- a/test/tint/unittest/reader/spirv/Samples_SpvModuleScopeVarParserTest_ComputeBuiltin_Load_AccessChain_0.spvasm.expected.ir.dxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:287 internal compiler error: Switch() matched no cases. Type: tint::core::ir::FunctionParam
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/unittest/reader/spirv/Samples_SpvModuleScopeVarParserTest_ComputeBuiltin_Load_AccessChain_0.spvasm.expected.ir.fxc.hlsl b/test/tint/unittest/reader/spirv/Samples_SpvModuleScopeVarParserTest_ComputeBuiltin_Load_AccessChain_0.spvasm.expected.ir.fxc.hlsl
deleted file mode 100644
index 6b047b4..0000000
--- a/test/tint/unittest/reader/spirv/Samples_SpvModuleScopeVarParserTest_ComputeBuiltin_Load_AccessChain_0.spvasm.expected.ir.fxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:287 internal compiler error: Switch() matched no cases. Type: tint::core::ir::FunctionParam
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/unittest/reader/spirv/Samples_SpvModuleScopeVarParserTest_ComputeBuiltin_Load_AccessChain_1.spvasm.expected.ir.dxc.hlsl b/test/tint/unittest/reader/spirv/Samples_SpvModuleScopeVarParserTest_ComputeBuiltin_Load_AccessChain_1.spvasm.expected.ir.dxc.hlsl
deleted file mode 100644
index a249798..0000000
--- a/test/tint/unittest/reader/spirv/Samples_SpvModuleScopeVarParserTest_ComputeBuiltin_Load_AccessChain_1.spvasm.expected.ir.dxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Bitcast
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/unittest/reader/spirv/Samples_SpvModuleScopeVarParserTest_ComputeBuiltin_Load_AccessChain_1.spvasm.expected.ir.fxc.hlsl b/test/tint/unittest/reader/spirv/Samples_SpvModuleScopeVarParserTest_ComputeBuiltin_Load_AccessChain_1.spvasm.expected.ir.fxc.hlsl
deleted file mode 100644
index a249798..0000000
--- a/test/tint/unittest/reader/spirv/Samples_SpvModuleScopeVarParserTest_ComputeBuiltin_Load_AccessChain_1.spvasm.expected.ir.fxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Bitcast
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/unittest/reader/spirv/Samples_SpvModuleScopeVarParserTest_ComputeBuiltin_Load_AccessChain_2.spvasm.expected.ir.dxc.hlsl b/test/tint/unittest/reader/spirv/Samples_SpvModuleScopeVarParserTest_ComputeBuiltin_Load_AccessChain_2.spvasm.expected.ir.dxc.hlsl
deleted file mode 100644
index 6b047b4..0000000
--- a/test/tint/unittest/reader/spirv/Samples_SpvModuleScopeVarParserTest_ComputeBuiltin_Load_AccessChain_2.spvasm.expected.ir.dxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:287 internal compiler error: Switch() matched no cases. Type: tint::core::ir::FunctionParam
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/unittest/reader/spirv/Samples_SpvModuleScopeVarParserTest_ComputeBuiltin_Load_AccessChain_2.spvasm.expected.ir.fxc.hlsl b/test/tint/unittest/reader/spirv/Samples_SpvModuleScopeVarParserTest_ComputeBuiltin_Load_AccessChain_2.spvasm.expected.ir.fxc.hlsl
deleted file mode 100644
index 6b047b4..0000000
--- a/test/tint/unittest/reader/spirv/Samples_SpvModuleScopeVarParserTest_ComputeBuiltin_Load_AccessChain_2.spvasm.expected.ir.fxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:287 internal compiler error: Switch() matched no cases. Type: tint::core::ir::FunctionParam
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/unittest/reader/spirv/Samples_SpvModuleScopeVarParserTest_ComputeBuiltin_Load_AccessChain_3.spvasm.expected.ir.dxc.hlsl b/test/tint/unittest/reader/spirv/Samples_SpvModuleScopeVarParserTest_ComputeBuiltin_Load_AccessChain_3.spvasm.expected.ir.dxc.hlsl
deleted file mode 100644
index a249798..0000000
--- a/test/tint/unittest/reader/spirv/Samples_SpvModuleScopeVarParserTest_ComputeBuiltin_Load_AccessChain_3.spvasm.expected.ir.dxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Bitcast
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/unittest/reader/spirv/Samples_SpvModuleScopeVarParserTest_ComputeBuiltin_Load_AccessChain_3.spvasm.expected.ir.fxc.hlsl b/test/tint/unittest/reader/spirv/Samples_SpvModuleScopeVarParserTest_ComputeBuiltin_Load_AccessChain_3.spvasm.expected.ir.fxc.hlsl
deleted file mode 100644
index a249798..0000000
--- a/test/tint/unittest/reader/spirv/Samples_SpvModuleScopeVarParserTest_ComputeBuiltin_Load_AccessChain_3.spvasm.expected.ir.fxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Bitcast
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/unittest/reader/spirv/Samples_SpvModuleScopeVarParserTest_ComputeBuiltin_Load_AccessChain_4.spvasm.expected.ir.dxc.hlsl b/test/tint/unittest/reader/spirv/Samples_SpvModuleScopeVarParserTest_ComputeBuiltin_Load_AccessChain_4.spvasm.expected.ir.dxc.hlsl
deleted file mode 100644
index 6b047b4..0000000
--- a/test/tint/unittest/reader/spirv/Samples_SpvModuleScopeVarParserTest_ComputeBuiltin_Load_AccessChain_4.spvasm.expected.ir.dxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:287 internal compiler error: Switch() matched no cases. Type: tint::core::ir::FunctionParam
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/unittest/reader/spirv/Samples_SpvModuleScopeVarParserTest_ComputeBuiltin_Load_AccessChain_4.spvasm.expected.ir.fxc.hlsl b/test/tint/unittest/reader/spirv/Samples_SpvModuleScopeVarParserTest_ComputeBuiltin_Load_AccessChain_4.spvasm.expected.ir.fxc.hlsl
deleted file mode 100644
index 6b047b4..0000000
--- a/test/tint/unittest/reader/spirv/Samples_SpvModuleScopeVarParserTest_ComputeBuiltin_Load_AccessChain_4.spvasm.expected.ir.fxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:287 internal compiler error: Switch() matched no cases. Type: tint::core::ir::FunctionParam
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/unittest/reader/spirv/Samples_SpvModuleScopeVarParserTest_ComputeBuiltin_Load_AccessChain_5.spvasm.expected.ir.dxc.hlsl b/test/tint/unittest/reader/spirv/Samples_SpvModuleScopeVarParserTest_ComputeBuiltin_Load_AccessChain_5.spvasm.expected.ir.dxc.hlsl
deleted file mode 100644
index a249798..0000000
--- a/test/tint/unittest/reader/spirv/Samples_SpvModuleScopeVarParserTest_ComputeBuiltin_Load_AccessChain_5.spvasm.expected.ir.dxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Bitcast
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/unittest/reader/spirv/Samples_SpvModuleScopeVarParserTest_ComputeBuiltin_Load_AccessChain_5.spvasm.expected.ir.fxc.hlsl b/test/tint/unittest/reader/spirv/Samples_SpvModuleScopeVarParserTest_ComputeBuiltin_Load_AccessChain_5.spvasm.expected.ir.fxc.hlsl
deleted file mode 100644
index a249798..0000000
--- a/test/tint/unittest/reader/spirv/Samples_SpvModuleScopeVarParserTest_ComputeBuiltin_Load_AccessChain_5.spvasm.expected.ir.fxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Bitcast
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/unittest/reader/spirv/Samples_SpvModuleScopeVarParserTest_ComputeBuiltin_Load_AccessChain_6.spvasm.expected.ir.dxc.hlsl b/test/tint/unittest/reader/spirv/Samples_SpvModuleScopeVarParserTest_ComputeBuiltin_Load_AccessChain_6.spvasm.expected.ir.dxc.hlsl
deleted file mode 100644
index 6b047b4..0000000
--- a/test/tint/unittest/reader/spirv/Samples_SpvModuleScopeVarParserTest_ComputeBuiltin_Load_AccessChain_6.spvasm.expected.ir.dxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:287 internal compiler error: Switch() matched no cases. Type: tint::core::ir::FunctionParam
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/unittest/reader/spirv/Samples_SpvModuleScopeVarParserTest_ComputeBuiltin_Load_AccessChain_6.spvasm.expected.ir.fxc.hlsl b/test/tint/unittest/reader/spirv/Samples_SpvModuleScopeVarParserTest_ComputeBuiltin_Load_AccessChain_6.spvasm.expected.ir.fxc.hlsl
deleted file mode 100644
index 6b047b4..0000000
--- a/test/tint/unittest/reader/spirv/Samples_SpvModuleScopeVarParserTest_ComputeBuiltin_Load_AccessChain_6.spvasm.expected.ir.fxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:287 internal compiler error: Switch() matched no cases. Type: tint::core::ir::FunctionParam
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/unittest/reader/spirv/Samples_SpvModuleScopeVarParserTest_ComputeBuiltin_Load_AccessChain_7.spvasm.expected.ir.dxc.hlsl b/test/tint/unittest/reader/spirv/Samples_SpvModuleScopeVarParserTest_ComputeBuiltin_Load_AccessChain_7.spvasm.expected.ir.dxc.hlsl
deleted file mode 100644
index 6b047b4..0000000
--- a/test/tint/unittest/reader/spirv/Samples_SpvModuleScopeVarParserTest_ComputeBuiltin_Load_AccessChain_7.spvasm.expected.ir.dxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:287 internal compiler error: Switch() matched no cases. Type: tint::core::ir::FunctionParam
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/unittest/reader/spirv/Samples_SpvModuleScopeVarParserTest_ComputeBuiltin_Load_AccessChain_7.spvasm.expected.ir.fxc.hlsl b/test/tint/unittest/reader/spirv/Samples_SpvModuleScopeVarParserTest_ComputeBuiltin_Load_AccessChain_7.spvasm.expected.ir.fxc.hlsl
deleted file mode 100644
index 6b047b4..0000000
--- a/test/tint/unittest/reader/spirv/Samples_SpvModuleScopeVarParserTest_ComputeBuiltin_Load_AccessChain_7.spvasm.expected.ir.fxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:287 internal compiler error: Switch() matched no cases. Type: tint::core::ir::FunctionParam
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/unittest/reader/spirv/Samples_SpvModuleScopeVarParserTest_ComputeBuiltin_Load_CopyObject_0.spvasm.expected.ir.dxc.hlsl b/test/tint/unittest/reader/spirv/Samples_SpvModuleScopeVarParserTest_ComputeBuiltin_Load_CopyObject_0.spvasm.expected.ir.dxc.hlsl
deleted file mode 100644
index 6b047b4..0000000
--- a/test/tint/unittest/reader/spirv/Samples_SpvModuleScopeVarParserTest_ComputeBuiltin_Load_CopyObject_0.spvasm.expected.ir.dxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:287 internal compiler error: Switch() matched no cases. Type: tint::core::ir::FunctionParam
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/unittest/reader/spirv/Samples_SpvModuleScopeVarParserTest_ComputeBuiltin_Load_CopyObject_0.spvasm.expected.ir.fxc.hlsl b/test/tint/unittest/reader/spirv/Samples_SpvModuleScopeVarParserTest_ComputeBuiltin_Load_CopyObject_0.spvasm.expected.ir.fxc.hlsl
deleted file mode 100644
index 6b047b4..0000000
--- a/test/tint/unittest/reader/spirv/Samples_SpvModuleScopeVarParserTest_ComputeBuiltin_Load_CopyObject_0.spvasm.expected.ir.fxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:287 internal compiler error: Switch() matched no cases. Type: tint::core::ir::FunctionParam
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/unittest/reader/spirv/Samples_SpvModuleScopeVarParserTest_ComputeBuiltin_Load_CopyObject_1.spvasm.expected.ir.dxc.hlsl b/test/tint/unittest/reader/spirv/Samples_SpvModuleScopeVarParserTest_ComputeBuiltin_Load_CopyObject_1.spvasm.expected.ir.dxc.hlsl
deleted file mode 100644
index a249798..0000000
--- a/test/tint/unittest/reader/spirv/Samples_SpvModuleScopeVarParserTest_ComputeBuiltin_Load_CopyObject_1.spvasm.expected.ir.dxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Bitcast
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/unittest/reader/spirv/Samples_SpvModuleScopeVarParserTest_ComputeBuiltin_Load_CopyObject_1.spvasm.expected.ir.fxc.hlsl b/test/tint/unittest/reader/spirv/Samples_SpvModuleScopeVarParserTest_ComputeBuiltin_Load_CopyObject_1.spvasm.expected.ir.fxc.hlsl
deleted file mode 100644
index a249798..0000000
--- a/test/tint/unittest/reader/spirv/Samples_SpvModuleScopeVarParserTest_ComputeBuiltin_Load_CopyObject_1.spvasm.expected.ir.fxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Bitcast
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/unittest/reader/spirv/Samples_SpvModuleScopeVarParserTest_ComputeBuiltin_Load_CopyObject_2.spvasm.expected.ir.dxc.hlsl b/test/tint/unittest/reader/spirv/Samples_SpvModuleScopeVarParserTest_ComputeBuiltin_Load_CopyObject_2.spvasm.expected.ir.dxc.hlsl
deleted file mode 100644
index 6b047b4..0000000
--- a/test/tint/unittest/reader/spirv/Samples_SpvModuleScopeVarParserTest_ComputeBuiltin_Load_CopyObject_2.spvasm.expected.ir.dxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:287 internal compiler error: Switch() matched no cases. Type: tint::core::ir::FunctionParam
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/unittest/reader/spirv/Samples_SpvModuleScopeVarParserTest_ComputeBuiltin_Load_CopyObject_2.spvasm.expected.ir.fxc.hlsl b/test/tint/unittest/reader/spirv/Samples_SpvModuleScopeVarParserTest_ComputeBuiltin_Load_CopyObject_2.spvasm.expected.ir.fxc.hlsl
deleted file mode 100644
index 6b047b4..0000000
--- a/test/tint/unittest/reader/spirv/Samples_SpvModuleScopeVarParserTest_ComputeBuiltin_Load_CopyObject_2.spvasm.expected.ir.fxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:287 internal compiler error: Switch() matched no cases. Type: tint::core::ir::FunctionParam
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/unittest/reader/spirv/Samples_SpvModuleScopeVarParserTest_ComputeBuiltin_Load_CopyObject_3.spvasm.expected.ir.dxc.hlsl b/test/tint/unittest/reader/spirv/Samples_SpvModuleScopeVarParserTest_ComputeBuiltin_Load_CopyObject_3.spvasm.expected.ir.dxc.hlsl
deleted file mode 100644
index a249798..0000000
--- a/test/tint/unittest/reader/spirv/Samples_SpvModuleScopeVarParserTest_ComputeBuiltin_Load_CopyObject_3.spvasm.expected.ir.dxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Bitcast
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/unittest/reader/spirv/Samples_SpvModuleScopeVarParserTest_ComputeBuiltin_Load_CopyObject_3.spvasm.expected.ir.fxc.hlsl b/test/tint/unittest/reader/spirv/Samples_SpvModuleScopeVarParserTest_ComputeBuiltin_Load_CopyObject_3.spvasm.expected.ir.fxc.hlsl
deleted file mode 100644
index a249798..0000000
--- a/test/tint/unittest/reader/spirv/Samples_SpvModuleScopeVarParserTest_ComputeBuiltin_Load_CopyObject_3.spvasm.expected.ir.fxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Bitcast
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/unittest/reader/spirv/Samples_SpvModuleScopeVarParserTest_ComputeBuiltin_Load_CopyObject_4.spvasm.expected.ir.dxc.hlsl b/test/tint/unittest/reader/spirv/Samples_SpvModuleScopeVarParserTest_ComputeBuiltin_Load_CopyObject_4.spvasm.expected.ir.dxc.hlsl
deleted file mode 100644
index 6b047b4..0000000
--- a/test/tint/unittest/reader/spirv/Samples_SpvModuleScopeVarParserTest_ComputeBuiltin_Load_CopyObject_4.spvasm.expected.ir.dxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:287 internal compiler error: Switch() matched no cases. Type: tint::core::ir::FunctionParam
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/unittest/reader/spirv/Samples_SpvModuleScopeVarParserTest_ComputeBuiltin_Load_CopyObject_4.spvasm.expected.ir.fxc.hlsl b/test/tint/unittest/reader/spirv/Samples_SpvModuleScopeVarParserTest_ComputeBuiltin_Load_CopyObject_4.spvasm.expected.ir.fxc.hlsl
deleted file mode 100644
index 6b047b4..0000000
--- a/test/tint/unittest/reader/spirv/Samples_SpvModuleScopeVarParserTest_ComputeBuiltin_Load_CopyObject_4.spvasm.expected.ir.fxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:287 internal compiler error: Switch() matched no cases. Type: tint::core::ir::FunctionParam
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/unittest/reader/spirv/Samples_SpvModuleScopeVarParserTest_ComputeBuiltin_Load_CopyObject_5.spvasm.expected.ir.dxc.hlsl b/test/tint/unittest/reader/spirv/Samples_SpvModuleScopeVarParserTest_ComputeBuiltin_Load_CopyObject_5.spvasm.expected.ir.dxc.hlsl
deleted file mode 100644
index a249798..0000000
--- a/test/tint/unittest/reader/spirv/Samples_SpvModuleScopeVarParserTest_ComputeBuiltin_Load_CopyObject_5.spvasm.expected.ir.dxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Bitcast
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/unittest/reader/spirv/Samples_SpvModuleScopeVarParserTest_ComputeBuiltin_Load_CopyObject_5.spvasm.expected.ir.fxc.hlsl b/test/tint/unittest/reader/spirv/Samples_SpvModuleScopeVarParserTest_ComputeBuiltin_Load_CopyObject_5.spvasm.expected.ir.fxc.hlsl
deleted file mode 100644
index a249798..0000000
--- a/test/tint/unittest/reader/spirv/Samples_SpvModuleScopeVarParserTest_ComputeBuiltin_Load_CopyObject_5.spvasm.expected.ir.fxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Bitcast
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/unittest/reader/spirv/Samples_SpvModuleScopeVarParserTest_ComputeBuiltin_Load_CopyObject_6.spvasm.expected.ir.dxc.hlsl b/test/tint/unittest/reader/spirv/Samples_SpvModuleScopeVarParserTest_ComputeBuiltin_Load_CopyObject_6.spvasm.expected.ir.dxc.hlsl
deleted file mode 100644
index 6b047b4..0000000
--- a/test/tint/unittest/reader/spirv/Samples_SpvModuleScopeVarParserTest_ComputeBuiltin_Load_CopyObject_6.spvasm.expected.ir.dxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:287 internal compiler error: Switch() matched no cases. Type: tint::core::ir::FunctionParam
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/unittest/reader/spirv/Samples_SpvModuleScopeVarParserTest_ComputeBuiltin_Load_CopyObject_6.spvasm.expected.ir.fxc.hlsl b/test/tint/unittest/reader/spirv/Samples_SpvModuleScopeVarParserTest_ComputeBuiltin_Load_CopyObject_6.spvasm.expected.ir.fxc.hlsl
deleted file mode 100644
index 6b047b4..0000000
--- a/test/tint/unittest/reader/spirv/Samples_SpvModuleScopeVarParserTest_ComputeBuiltin_Load_CopyObject_6.spvasm.expected.ir.fxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:287 internal compiler error: Switch() matched no cases. Type: tint::core::ir::FunctionParam
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/unittest/reader/spirv/Samples_SpvModuleScopeVarParserTest_ComputeBuiltin_Load_CopyObject_7.spvasm.expected.ir.dxc.hlsl b/test/tint/unittest/reader/spirv/Samples_SpvModuleScopeVarParserTest_ComputeBuiltin_Load_CopyObject_7.spvasm.expected.ir.dxc.hlsl
deleted file mode 100644
index 6b047b4..0000000
--- a/test/tint/unittest/reader/spirv/Samples_SpvModuleScopeVarParserTest_ComputeBuiltin_Load_CopyObject_7.spvasm.expected.ir.dxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:287 internal compiler error: Switch() matched no cases. Type: tint::core::ir::FunctionParam
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/unittest/reader/spirv/Samples_SpvModuleScopeVarParserTest_ComputeBuiltin_Load_CopyObject_7.spvasm.expected.ir.fxc.hlsl b/test/tint/unittest/reader/spirv/Samples_SpvModuleScopeVarParserTest_ComputeBuiltin_Load_CopyObject_7.spvasm.expected.ir.fxc.hlsl
deleted file mode 100644
index 6b047b4..0000000
--- a/test/tint/unittest/reader/spirv/Samples_SpvModuleScopeVarParserTest_ComputeBuiltin_Load_CopyObject_7.spvasm.expected.ir.fxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:287 internal compiler error: Switch() matched no cases. Type: tint::core::ir::FunctionParam
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/unittest/reader/spirv/Samples_SpvModuleScopeVarParserTest_ComputeBuiltin_Load_Direct_0.spvasm.expected.ir.dxc.hlsl b/test/tint/unittest/reader/spirv/Samples_SpvModuleScopeVarParserTest_ComputeBuiltin_Load_Direct_0.spvasm.expected.ir.dxc.hlsl
deleted file mode 100644
index 6b047b4..0000000
--- a/test/tint/unittest/reader/spirv/Samples_SpvModuleScopeVarParserTest_ComputeBuiltin_Load_Direct_0.spvasm.expected.ir.dxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:287 internal compiler error: Switch() matched no cases. Type: tint::core::ir::FunctionParam
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/unittest/reader/spirv/Samples_SpvModuleScopeVarParserTest_ComputeBuiltin_Load_Direct_0.spvasm.expected.ir.fxc.hlsl b/test/tint/unittest/reader/spirv/Samples_SpvModuleScopeVarParserTest_ComputeBuiltin_Load_Direct_0.spvasm.expected.ir.fxc.hlsl
deleted file mode 100644
index 6b047b4..0000000
--- a/test/tint/unittest/reader/spirv/Samples_SpvModuleScopeVarParserTest_ComputeBuiltin_Load_Direct_0.spvasm.expected.ir.fxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:287 internal compiler error: Switch() matched no cases. Type: tint::core::ir::FunctionParam
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/unittest/reader/spirv/Samples_SpvModuleScopeVarParserTest_ComputeBuiltin_Load_Direct_1.spvasm.expected.ir.dxc.hlsl b/test/tint/unittest/reader/spirv/Samples_SpvModuleScopeVarParserTest_ComputeBuiltin_Load_Direct_1.spvasm.expected.ir.dxc.hlsl
deleted file mode 100644
index a249798..0000000
--- a/test/tint/unittest/reader/spirv/Samples_SpvModuleScopeVarParserTest_ComputeBuiltin_Load_Direct_1.spvasm.expected.ir.dxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Bitcast
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/unittest/reader/spirv/Samples_SpvModuleScopeVarParserTest_ComputeBuiltin_Load_Direct_1.spvasm.expected.ir.fxc.hlsl b/test/tint/unittest/reader/spirv/Samples_SpvModuleScopeVarParserTest_ComputeBuiltin_Load_Direct_1.spvasm.expected.ir.fxc.hlsl
deleted file mode 100644
index a249798..0000000
--- a/test/tint/unittest/reader/spirv/Samples_SpvModuleScopeVarParserTest_ComputeBuiltin_Load_Direct_1.spvasm.expected.ir.fxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Bitcast
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/unittest/reader/spirv/Samples_SpvModuleScopeVarParserTest_ComputeBuiltin_Load_Direct_2.spvasm.expected.ir.dxc.hlsl b/test/tint/unittest/reader/spirv/Samples_SpvModuleScopeVarParserTest_ComputeBuiltin_Load_Direct_2.spvasm.expected.ir.dxc.hlsl
deleted file mode 100644
index 6b047b4..0000000
--- a/test/tint/unittest/reader/spirv/Samples_SpvModuleScopeVarParserTest_ComputeBuiltin_Load_Direct_2.spvasm.expected.ir.dxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:287 internal compiler error: Switch() matched no cases. Type: tint::core::ir::FunctionParam
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/unittest/reader/spirv/Samples_SpvModuleScopeVarParserTest_ComputeBuiltin_Load_Direct_2.spvasm.expected.ir.fxc.hlsl b/test/tint/unittest/reader/spirv/Samples_SpvModuleScopeVarParserTest_ComputeBuiltin_Load_Direct_2.spvasm.expected.ir.fxc.hlsl
deleted file mode 100644
index 6b047b4..0000000
--- a/test/tint/unittest/reader/spirv/Samples_SpvModuleScopeVarParserTest_ComputeBuiltin_Load_Direct_2.spvasm.expected.ir.fxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:287 internal compiler error: Switch() matched no cases. Type: tint::core::ir::FunctionParam
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/unittest/reader/spirv/Samples_SpvModuleScopeVarParserTest_ComputeBuiltin_Load_Direct_3.spvasm.expected.ir.dxc.hlsl b/test/tint/unittest/reader/spirv/Samples_SpvModuleScopeVarParserTest_ComputeBuiltin_Load_Direct_3.spvasm.expected.ir.dxc.hlsl
deleted file mode 100644
index a249798..0000000
--- a/test/tint/unittest/reader/spirv/Samples_SpvModuleScopeVarParserTest_ComputeBuiltin_Load_Direct_3.spvasm.expected.ir.dxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Bitcast
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/unittest/reader/spirv/Samples_SpvModuleScopeVarParserTest_ComputeBuiltin_Load_Direct_3.spvasm.expected.ir.fxc.hlsl b/test/tint/unittest/reader/spirv/Samples_SpvModuleScopeVarParserTest_ComputeBuiltin_Load_Direct_3.spvasm.expected.ir.fxc.hlsl
deleted file mode 100644
index a249798..0000000
--- a/test/tint/unittest/reader/spirv/Samples_SpvModuleScopeVarParserTest_ComputeBuiltin_Load_Direct_3.spvasm.expected.ir.fxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Bitcast
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/unittest/reader/spirv/Samples_SpvModuleScopeVarParserTest_ComputeBuiltin_Load_Direct_4.spvasm.expected.ir.dxc.hlsl b/test/tint/unittest/reader/spirv/Samples_SpvModuleScopeVarParserTest_ComputeBuiltin_Load_Direct_4.spvasm.expected.ir.dxc.hlsl
deleted file mode 100644
index 6b047b4..0000000
--- a/test/tint/unittest/reader/spirv/Samples_SpvModuleScopeVarParserTest_ComputeBuiltin_Load_Direct_4.spvasm.expected.ir.dxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:287 internal compiler error: Switch() matched no cases. Type: tint::core::ir::FunctionParam
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/unittest/reader/spirv/Samples_SpvModuleScopeVarParserTest_ComputeBuiltin_Load_Direct_4.spvasm.expected.ir.fxc.hlsl b/test/tint/unittest/reader/spirv/Samples_SpvModuleScopeVarParserTest_ComputeBuiltin_Load_Direct_4.spvasm.expected.ir.fxc.hlsl
deleted file mode 100644
index 6b047b4..0000000
--- a/test/tint/unittest/reader/spirv/Samples_SpvModuleScopeVarParserTest_ComputeBuiltin_Load_Direct_4.spvasm.expected.ir.fxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:287 internal compiler error: Switch() matched no cases. Type: tint::core::ir::FunctionParam
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/unittest/reader/spirv/Samples_SpvModuleScopeVarParserTest_ComputeBuiltin_Load_Direct_5.spvasm.expected.ir.dxc.hlsl b/test/tint/unittest/reader/spirv/Samples_SpvModuleScopeVarParserTest_ComputeBuiltin_Load_Direct_5.spvasm.expected.ir.dxc.hlsl
deleted file mode 100644
index a249798..0000000
--- a/test/tint/unittest/reader/spirv/Samples_SpvModuleScopeVarParserTest_ComputeBuiltin_Load_Direct_5.spvasm.expected.ir.dxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Bitcast
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/unittest/reader/spirv/Samples_SpvModuleScopeVarParserTest_ComputeBuiltin_Load_Direct_5.spvasm.expected.ir.fxc.hlsl b/test/tint/unittest/reader/spirv/Samples_SpvModuleScopeVarParserTest_ComputeBuiltin_Load_Direct_5.spvasm.expected.ir.fxc.hlsl
deleted file mode 100644
index a249798..0000000
--- a/test/tint/unittest/reader/spirv/Samples_SpvModuleScopeVarParserTest_ComputeBuiltin_Load_Direct_5.spvasm.expected.ir.fxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Bitcast
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/unittest/reader/spirv/Samples_SpvModuleScopeVarParserTest_ComputeBuiltin_Load_Direct_6.spvasm.expected.ir.dxc.hlsl b/test/tint/unittest/reader/spirv/Samples_SpvModuleScopeVarParserTest_ComputeBuiltin_Load_Direct_6.spvasm.expected.ir.dxc.hlsl
deleted file mode 100644
index 6b047b4..0000000
--- a/test/tint/unittest/reader/spirv/Samples_SpvModuleScopeVarParserTest_ComputeBuiltin_Load_Direct_6.spvasm.expected.ir.dxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:287 internal compiler error: Switch() matched no cases. Type: tint::core::ir::FunctionParam
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/unittest/reader/spirv/Samples_SpvModuleScopeVarParserTest_ComputeBuiltin_Load_Direct_6.spvasm.expected.ir.fxc.hlsl b/test/tint/unittest/reader/spirv/Samples_SpvModuleScopeVarParserTest_ComputeBuiltin_Load_Direct_6.spvasm.expected.ir.fxc.hlsl
deleted file mode 100644
index 6b047b4..0000000
--- a/test/tint/unittest/reader/spirv/Samples_SpvModuleScopeVarParserTest_ComputeBuiltin_Load_Direct_6.spvasm.expected.ir.fxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:287 internal compiler error: Switch() matched no cases. Type: tint::core::ir::FunctionParam
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/unittest/reader/spirv/Samples_SpvModuleScopeVarParserTest_ComputeBuiltin_Load_Direct_7.spvasm.expected.ir.dxc.hlsl b/test/tint/unittest/reader/spirv/Samples_SpvModuleScopeVarParserTest_ComputeBuiltin_Load_Direct_7.spvasm.expected.ir.dxc.hlsl
deleted file mode 100644
index 6b047b4..0000000
--- a/test/tint/unittest/reader/spirv/Samples_SpvModuleScopeVarParserTest_ComputeBuiltin_Load_Direct_7.spvasm.expected.ir.dxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:287 internal compiler error: Switch() matched no cases. Type: tint::core::ir::FunctionParam
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/unittest/reader/spirv/Samples_SpvModuleScopeVarParserTest_ComputeBuiltin_Load_Direct_7.spvasm.expected.ir.fxc.hlsl b/test/tint/unittest/reader/spirv/Samples_SpvModuleScopeVarParserTest_ComputeBuiltin_Load_Direct_7.spvasm.expected.ir.fxc.hlsl
deleted file mode 100644
index 6b047b4..0000000
--- a/test/tint/unittest/reader/spirv/Samples_SpvModuleScopeVarParserTest_ComputeBuiltin_Load_Direct_7.spvasm.expected.ir.fxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:287 internal compiler error: Switch() matched no cases. Type: tint::core::ir::FunctionParam
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/unittest/reader/spirv/Samples_SpvParserHandleTest_RegisterHandleUsage_RawImage_Variable_0.spvasm.expected.ir.dxc.hlsl b/test/tint/unittest/reader/spirv/Samples_SpvParserHandleTest_RegisterHandleUsage_RawImage_Variable_0.spvasm.expected.ir.dxc.hlsl
deleted file mode 100644
index fd28383..0000000
--- a/test/tint/unittest/reader/spirv/Samples_SpvParserHandleTest_RegisterHandleUsage_RawImage_Variable_0.spvasm.expected.ir.dxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureLoad
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/unittest/reader/spirv/Samples_SpvParserHandleTest_RegisterHandleUsage_RawImage_Variable_0.spvasm.expected.ir.fxc.hlsl b/test/tint/unittest/reader/spirv/Samples_SpvParserHandleTest_RegisterHandleUsage_RawImage_Variable_0.spvasm.expected.ir.fxc.hlsl
deleted file mode 100644
index fd28383..0000000
--- a/test/tint/unittest/reader/spirv/Samples_SpvParserHandleTest_RegisterHandleUsage_RawImage_Variable_0.spvasm.expected.ir.fxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureLoad
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/unittest/reader/spirv/Samples_SpvParserHandleTest_RegisterHandleUsage_RawImage_Variable_1.spvasm.expected.ir.dxc.hlsl b/test/tint/unittest/reader/spirv/Samples_SpvParserHandleTest_RegisterHandleUsage_RawImage_Variable_1.spvasm.expected.ir.dxc.hlsl
deleted file mode 100644
index 685a9ee..0000000
--- a/test/tint/unittest/reader/spirv/Samples_SpvParserHandleTest_RegisterHandleUsage_RawImage_Variable_1.spvasm.expected.ir.dxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/unittest/reader/spirv/Samples_SpvParserHandleTest_RegisterHandleUsage_RawImage_Variable_1.spvasm.expected.ir.fxc.hlsl b/test/tint/unittest/reader/spirv/Samples_SpvParserHandleTest_RegisterHandleUsage_RawImage_Variable_1.spvasm.expected.ir.fxc.hlsl
deleted file mode 100644
index 685a9ee..0000000
--- a/test/tint/unittest/reader/spirv/Samples_SpvParserHandleTest_RegisterHandleUsage_RawImage_Variable_1.spvasm.expected.ir.fxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/unittest/reader/spirv/Samples_SpvParserHandleTest_RegisterHandleUsage_RawImage_Variable_2.spvasm.expected.ir.dxc.hlsl b/test/tint/unittest/reader/spirv/Samples_SpvParserHandleTest_RegisterHandleUsage_RawImage_Variable_2.spvasm.expected.ir.dxc.hlsl
deleted file mode 100644
index fd28383..0000000
--- a/test/tint/unittest/reader/spirv/Samples_SpvParserHandleTest_RegisterHandleUsage_RawImage_Variable_2.spvasm.expected.ir.dxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureLoad
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/unittest/reader/spirv/Samples_SpvParserHandleTest_RegisterHandleUsage_RawImage_Variable_2.spvasm.expected.ir.fxc.hlsl b/test/tint/unittest/reader/spirv/Samples_SpvParserHandleTest_RegisterHandleUsage_RawImage_Variable_2.spvasm.expected.ir.fxc.hlsl
deleted file mode 100644
index fd28383..0000000
--- a/test/tint/unittest/reader/spirv/Samples_SpvParserHandleTest_RegisterHandleUsage_RawImage_Variable_2.spvasm.expected.ir.fxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureLoad
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/unittest/reader/spirv/Samples_SpvParserHandleTest_RegisterHandleUsage_RawImage_Variable_3.spvasm.expected.ir.dxc.hlsl b/test/tint/unittest/reader/spirv/Samples_SpvParserHandleTest_RegisterHandleUsage_RawImage_Variable_3.spvasm.expected.ir.dxc.hlsl
deleted file mode 100644
index 1fac62e..0000000
--- a/test/tint/unittest/reader/spirv/Samples_SpvParserHandleTest_RegisterHandleUsage_RawImage_Variable_3.spvasm.expected.ir.dxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureDimensions
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/unittest/reader/spirv/Samples_SpvParserHandleTest_RegisterHandleUsage_RawImage_Variable_3.spvasm.expected.ir.fxc.hlsl b/test/tint/unittest/reader/spirv/Samples_SpvParserHandleTest_RegisterHandleUsage_RawImage_Variable_3.spvasm.expected.ir.fxc.hlsl
deleted file mode 100644
index 1fac62e..0000000
--- a/test/tint/unittest/reader/spirv/Samples_SpvParserHandleTest_RegisterHandleUsage_RawImage_Variable_3.spvasm.expected.ir.fxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureDimensions
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/unittest/reader/spirv/Samples_SpvParserHandleTest_RegisterHandleUsage_RawImage_Variable_4.spvasm.expected.ir.dxc.hlsl b/test/tint/unittest/reader/spirv/Samples_SpvParserHandleTest_RegisterHandleUsage_RawImage_Variable_4.spvasm.expected.ir.dxc.hlsl
deleted file mode 100644
index 1fac62e..0000000
--- a/test/tint/unittest/reader/spirv/Samples_SpvParserHandleTest_RegisterHandleUsage_RawImage_Variable_4.spvasm.expected.ir.dxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureDimensions
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/unittest/reader/spirv/Samples_SpvParserHandleTest_RegisterHandleUsage_RawImage_Variable_4.spvasm.expected.ir.fxc.hlsl b/test/tint/unittest/reader/spirv/Samples_SpvParserHandleTest_RegisterHandleUsage_RawImage_Variable_4.spvasm.expected.ir.fxc.hlsl
deleted file mode 100644
index 1fac62e..0000000
--- a/test/tint/unittest/reader/spirv/Samples_SpvParserHandleTest_RegisterHandleUsage_RawImage_Variable_4.spvasm.expected.ir.fxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureDimensions
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/unittest/reader/spirv/Samples_SpvParserHandleTest_RegisterHandleUsage_RawImage_Variable_5.spvasm.expected.ir.dxc.hlsl b/test/tint/unittest/reader/spirv/Samples_SpvParserHandleTest_RegisterHandleUsage_RawImage_Variable_5.spvasm.expected.ir.dxc.hlsl
deleted file mode 100644
index c5f3f6e..0000000
--- a/test/tint/unittest/reader/spirv/Samples_SpvParserHandleTest_RegisterHandleUsage_RawImage_Variable_5.spvasm.expected.ir.dxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureNumLevels
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/unittest/reader/spirv/Samples_SpvParserHandleTest_RegisterHandleUsage_RawImage_Variable_5.spvasm.expected.ir.fxc.hlsl b/test/tint/unittest/reader/spirv/Samples_SpvParserHandleTest_RegisterHandleUsage_RawImage_Variable_5.spvasm.expected.ir.fxc.hlsl
deleted file mode 100644
index c5f3f6e..0000000
--- a/test/tint/unittest/reader/spirv/Samples_SpvParserHandleTest_RegisterHandleUsage_RawImage_Variable_5.spvasm.expected.ir.fxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureNumLevels
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/unittest/reader/spirv/Samples_SpvParserHandleTest_RegisterHandleUsage_RawImage_Variable_6.spvasm.expected.ir.dxc.hlsl b/test/tint/unittest/reader/spirv/Samples_SpvParserHandleTest_RegisterHandleUsage_RawImage_Variable_6.spvasm.expected.ir.dxc.hlsl
deleted file mode 100644
index f9d5143..0000000
--- a/test/tint/unittest/reader/spirv/Samples_SpvParserHandleTest_RegisterHandleUsage_RawImage_Variable_6.spvasm.expected.ir.dxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureNumSamples
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/unittest/reader/spirv/Samples_SpvParserHandleTest_RegisterHandleUsage_RawImage_Variable_6.spvasm.expected.ir.fxc.hlsl b/test/tint/unittest/reader/spirv/Samples_SpvParserHandleTest_RegisterHandleUsage_RawImage_Variable_6.spvasm.expected.ir.fxc.hlsl
deleted file mode 100644
index f9d5143..0000000
--- a/test/tint/unittest/reader/spirv/Samples_SpvParserHandleTest_RegisterHandleUsage_RawImage_Variable_6.spvasm.expected.ir.fxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureNumSamples
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/unittest/reader/spirv/Samples_SpvParserHandleTest_RegisterHandleUsage_SampledImage_Variable_2.spvasm.expected.ir.dxc.hlsl b/test/tint/unittest/reader/spirv/Samples_SpvParserHandleTest_RegisterHandleUsage_SampledImage_Variable_2.spvasm.expected.ir.dxc.hlsl
index 6739938..58230f6 100644
--- a/test/tint/unittest/reader/spirv/Samples_SpvParserHandleTest_RegisterHandleUsage_SampledImage_Variable_2.spvasm.expected.ir.dxc.hlsl
+++ b/test/tint/unittest/reader/spirv/Samples_SpvParserHandleTest_RegisterHandleUsage_SampledImage_Variable_2.spvasm.expected.ir.dxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureSample
+..\..\src\tint\lang\hlsl\writer\printer\printer.cc:1010 internal compiler error: TINT_UNREACHABLE unhandled: textureSample
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/unittest/reader/spirv/Samples_SpvParserHandleTest_RegisterHandleUsage_SampledImage_Variable_2.spvasm.expected.ir.fxc.hlsl b/test/tint/unittest/reader/spirv/Samples_SpvParserHandleTest_RegisterHandleUsage_SampledImage_Variable_2.spvasm.expected.ir.fxc.hlsl
index 6739938..58230f6 100644
--- a/test/tint/unittest/reader/spirv/Samples_SpvParserHandleTest_RegisterHandleUsage_SampledImage_Variable_2.spvasm.expected.ir.fxc.hlsl
+++ b/test/tint/unittest/reader/spirv/Samples_SpvParserHandleTest_RegisterHandleUsage_SampledImage_Variable_2.spvasm.expected.ir.fxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureSample
+..\..\src\tint\lang\hlsl\writer\printer\printer.cc:1010 internal compiler error: TINT_UNREACHABLE unhandled: textureSample
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/unittest/reader/spirv/Samples_SpvParserHandleTest_RegisterHandleUsage_SampledImage_Variable_3.spvasm.expected.ir.dxc.hlsl b/test/tint/unittest/reader/spirv/Samples_SpvParserHandleTest_RegisterHandleUsage_SampledImage_Variable_3.spvasm.expected.ir.dxc.hlsl
index b903e3f..cf26da3 100644
--- a/test/tint/unittest/reader/spirv/Samples_SpvParserHandleTest_RegisterHandleUsage_SampledImage_Variable_3.spvasm.expected.ir.dxc.hlsl
+++ b/test/tint/unittest/reader/spirv/Samples_SpvParserHandleTest_RegisterHandleUsage_SampledImage_Variable_3.spvasm.expected.ir.dxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureSampleLevel
+..\..\src\tint\lang\hlsl\writer\printer\printer.cc:1010 internal compiler error: TINT_UNREACHABLE unhandled: textureSampleLevel
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/unittest/reader/spirv/Samples_SpvParserHandleTest_RegisterHandleUsage_SampledImage_Variable_3.spvasm.expected.ir.fxc.hlsl b/test/tint/unittest/reader/spirv/Samples_SpvParserHandleTest_RegisterHandleUsage_SampledImage_Variable_3.spvasm.expected.ir.fxc.hlsl
index b903e3f..cf26da3 100644
--- a/test/tint/unittest/reader/spirv/Samples_SpvParserHandleTest_RegisterHandleUsage_SampledImage_Variable_3.spvasm.expected.ir.fxc.hlsl
+++ b/test/tint/unittest/reader/spirv/Samples_SpvParserHandleTest_RegisterHandleUsage_SampledImage_Variable_3.spvasm.expected.ir.fxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureSampleLevel
+..\..\src\tint\lang\hlsl\writer\printer\printer.cc:1010 internal compiler error: TINT_UNREACHABLE unhandled: textureSampleLevel
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/unittest/reader/spirv/Samples_SpvParserHandleTest_RegisterHandleUsage_SampledImage_Variable_4.spvasm.expected.ir.dxc.hlsl b/test/tint/unittest/reader/spirv/Samples_SpvParserHandleTest_RegisterHandleUsage_SampledImage_Variable_4.spvasm.expected.ir.dxc.hlsl
index 16966cd..b7acf20 100644
--- a/test/tint/unittest/reader/spirv/Samples_SpvParserHandleTest_RegisterHandleUsage_SampledImage_Variable_4.spvasm.expected.ir.dxc.hlsl
+++ b/test/tint/unittest/reader/spirv/Samples_SpvParserHandleTest_RegisterHandleUsage_SampledImage_Variable_4.spvasm.expected.ir.dxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureSampleCompare
+..\..\src\tint\lang\hlsl\writer\printer\printer.cc:1010 internal compiler error: TINT_UNREACHABLE unhandled: textureSampleCompare
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/unittest/reader/spirv/Samples_SpvParserHandleTest_RegisterHandleUsage_SampledImage_Variable_4.spvasm.expected.ir.fxc.hlsl b/test/tint/unittest/reader/spirv/Samples_SpvParserHandleTest_RegisterHandleUsage_SampledImage_Variable_4.spvasm.expected.ir.fxc.hlsl
index 16966cd..b7acf20 100644
--- a/test/tint/unittest/reader/spirv/Samples_SpvParserHandleTest_RegisterHandleUsage_SampledImage_Variable_4.spvasm.expected.ir.fxc.hlsl
+++ b/test/tint/unittest/reader/spirv/Samples_SpvParserHandleTest_RegisterHandleUsage_SampledImage_Variable_4.spvasm.expected.ir.fxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureSampleCompare
+..\..\src\tint\lang\hlsl\writer\printer\printer.cc:1010 internal compiler error: TINT_UNREACHABLE unhandled: textureSampleCompare
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/unittest/reader/spirv/Samples_SpvParserHandleTest_RegisterHandleUsage_SampledImage_Variable_6.spvasm.expected.ir.dxc.hlsl b/test/tint/unittest/reader/spirv/Samples_SpvParserHandleTest_RegisterHandleUsage_SampledImage_Variable_6.spvasm.expected.ir.dxc.hlsl
index 6739938..58230f6 100644
--- a/test/tint/unittest/reader/spirv/Samples_SpvParserHandleTest_RegisterHandleUsage_SampledImage_Variable_6.spvasm.expected.ir.dxc.hlsl
+++ b/test/tint/unittest/reader/spirv/Samples_SpvParserHandleTest_RegisterHandleUsage_SampledImage_Variable_6.spvasm.expected.ir.dxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureSample
+..\..\src\tint\lang\hlsl\writer\printer\printer.cc:1010 internal compiler error: TINT_UNREACHABLE unhandled: textureSample
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/unittest/reader/spirv/Samples_SpvParserHandleTest_RegisterHandleUsage_SampledImage_Variable_6.spvasm.expected.ir.fxc.hlsl b/test/tint/unittest/reader/spirv/Samples_SpvParserHandleTest_RegisterHandleUsage_SampledImage_Variable_6.spvasm.expected.ir.fxc.hlsl
index 6739938..58230f6 100644
--- a/test/tint/unittest/reader/spirv/Samples_SpvParserHandleTest_RegisterHandleUsage_SampledImage_Variable_6.spvasm.expected.ir.fxc.hlsl
+++ b/test/tint/unittest/reader/spirv/Samples_SpvParserHandleTest_RegisterHandleUsage_SampledImage_Variable_6.spvasm.expected.ir.fxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureSample
+..\..\src\tint\lang\hlsl\writer\printer\printer.cc:1010 internal compiler error: TINT_UNREACHABLE unhandled: textureSample
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/unittest/reader/spirv/Samples_SpvParserHandleTest_RegisterHandleUsage_SampledImage_Variable_7.spvasm.expected.ir.dxc.hlsl b/test/tint/unittest/reader/spirv/Samples_SpvParserHandleTest_RegisterHandleUsage_SampledImage_Variable_7.spvasm.expected.ir.dxc.hlsl
index b903e3f..cf26da3 100644
--- a/test/tint/unittest/reader/spirv/Samples_SpvParserHandleTest_RegisterHandleUsage_SampledImage_Variable_7.spvasm.expected.ir.dxc.hlsl
+++ b/test/tint/unittest/reader/spirv/Samples_SpvParserHandleTest_RegisterHandleUsage_SampledImage_Variable_7.spvasm.expected.ir.dxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureSampleLevel
+..\..\src\tint\lang\hlsl\writer\printer\printer.cc:1010 internal compiler error: TINT_UNREACHABLE unhandled: textureSampleLevel
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/unittest/reader/spirv/Samples_SpvParserHandleTest_RegisterHandleUsage_SampledImage_Variable_7.spvasm.expected.ir.fxc.hlsl b/test/tint/unittest/reader/spirv/Samples_SpvParserHandleTest_RegisterHandleUsage_SampledImage_Variable_7.spvasm.expected.ir.fxc.hlsl
index b903e3f..cf26da3 100644
--- a/test/tint/unittest/reader/spirv/Samples_SpvParserHandleTest_RegisterHandleUsage_SampledImage_Variable_7.spvasm.expected.ir.fxc.hlsl
+++ b/test/tint/unittest/reader/spirv/Samples_SpvParserHandleTest_RegisterHandleUsage_SampledImage_Variable_7.spvasm.expected.ir.fxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureSampleLevel
+..\..\src\tint\lang\hlsl\writer\printer\printer.cc:1010 internal compiler error: TINT_UNREACHABLE unhandled: textureSampleLevel
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/unittest/reader/spirv/Samples_SpvParserHandleTest_RegisterHandleUsage_SampledImage_Variable_8.spvasm.expected.ir.dxc.hlsl b/test/tint/unittest/reader/spirv/Samples_SpvParserHandleTest_RegisterHandleUsage_SampledImage_Variable_8.spvasm.expected.ir.dxc.hlsl
index 16966cd..b7acf20 100644
--- a/test/tint/unittest/reader/spirv/Samples_SpvParserHandleTest_RegisterHandleUsage_SampledImage_Variable_8.spvasm.expected.ir.dxc.hlsl
+++ b/test/tint/unittest/reader/spirv/Samples_SpvParserHandleTest_RegisterHandleUsage_SampledImage_Variable_8.spvasm.expected.ir.dxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureSampleCompare
+..\..\src\tint\lang\hlsl\writer\printer\printer.cc:1010 internal compiler error: TINT_UNREACHABLE unhandled: textureSampleCompare
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/unittest/reader/spirv/Samples_SpvParserHandleTest_RegisterHandleUsage_SampledImage_Variable_8.spvasm.expected.ir.fxc.hlsl b/test/tint/unittest/reader/spirv/Samples_SpvParserHandleTest_RegisterHandleUsage_SampledImage_Variable_8.spvasm.expected.ir.fxc.hlsl
index 16966cd..b7acf20 100644
--- a/test/tint/unittest/reader/spirv/Samples_SpvParserHandleTest_RegisterHandleUsage_SampledImage_Variable_8.spvasm.expected.ir.fxc.hlsl
+++ b/test/tint/unittest/reader/spirv/Samples_SpvParserHandleTest_RegisterHandleUsage_SampledImage_Variable_8.spvasm.expected.ir.fxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureSampleCompare
+..\..\src\tint\lang\hlsl\writer\printer\printer.cc:1010 internal compiler error: TINT_UNREACHABLE unhandled: textureSampleCompare
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/unittest/reader/spirv/Samples_SpvParserHandleTest_RegisterHandleUsage_SampledImage_Variable_9.spvasm.expected.ir.dxc.hlsl b/test/tint/unittest/reader/spirv/Samples_SpvParserHandleTest_RegisterHandleUsage_SampledImage_Variable_9.spvasm.expected.ir.dxc.hlsl
index 09571e5..f8e283a 100644
--- a/test/tint/unittest/reader/spirv/Samples_SpvParserHandleTest_RegisterHandleUsage_SampledImage_Variable_9.spvasm.expected.ir.dxc.hlsl
+++ b/test/tint/unittest/reader/spirv/Samples_SpvParserHandleTest_RegisterHandleUsage_SampledImage_Variable_9.spvasm.expected.ir.dxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureSampleCompareLevel
+..\..\src\tint\lang\hlsl\writer\printer\printer.cc:1010 internal compiler error: TINT_UNREACHABLE unhandled: textureSampleCompareLevel
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/unittest/reader/spirv/Samples_SpvParserHandleTest_RegisterHandleUsage_SampledImage_Variable_9.spvasm.expected.ir.fxc.hlsl b/test/tint/unittest/reader/spirv/Samples_SpvParserHandleTest_RegisterHandleUsage_SampledImage_Variable_9.spvasm.expected.ir.fxc.hlsl
index 09571e5..f8e283a 100644
--- a/test/tint/unittest/reader/spirv/Samples_SpvParserHandleTest_RegisterHandleUsage_SampledImage_Variable_9.spvasm.expected.ir.fxc.hlsl
+++ b/test/tint/unittest/reader/spirv/Samples_SpvParserHandleTest_RegisterHandleUsage_SampledImage_Variable_9.spvasm.expected.ir.fxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureSampleCompareLevel
+..\..\src\tint\lang\hlsl\writer\printer\printer.cc:1010 internal compiler error: TINT_UNREACHABLE unhandled: textureSampleCompareLevel
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/unittest/reader/spirv/Samples_SpvParserTest_GlslStd450_DataPacking_Valid_0.spvasm.expected.ir.dxc.hlsl b/test/tint/unittest/reader/spirv/Samples_SpvParserTest_GlslStd450_DataPacking_Valid_0.spvasm.expected.ir.dxc.hlsl
deleted file mode 100644
index 4834dab..0000000
--- a/test/tint/unittest/reader/spirv/Samples_SpvParserTest_GlslStd450_DataPacking_Valid_0.spvasm.expected.ir.dxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: pack4x8snorm
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/unittest/reader/spirv/Samples_SpvParserTest_GlslStd450_DataPacking_Valid_0.spvasm.expected.ir.fxc.hlsl b/test/tint/unittest/reader/spirv/Samples_SpvParserTest_GlslStd450_DataPacking_Valid_0.spvasm.expected.ir.fxc.hlsl
deleted file mode 100644
index 4834dab..0000000
--- a/test/tint/unittest/reader/spirv/Samples_SpvParserTest_GlslStd450_DataPacking_Valid_0.spvasm.expected.ir.fxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: pack4x8snorm
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/unittest/reader/spirv/Samples_SpvParserTest_GlslStd450_DataPacking_Valid_1.spvasm.expected.ir.dxc.hlsl b/test/tint/unittest/reader/spirv/Samples_SpvParserTest_GlslStd450_DataPacking_Valid_1.spvasm.expected.ir.dxc.hlsl
deleted file mode 100644
index f30932b..0000000
--- a/test/tint/unittest/reader/spirv/Samples_SpvParserTest_GlslStd450_DataPacking_Valid_1.spvasm.expected.ir.dxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: pack4x8unorm
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/unittest/reader/spirv/Samples_SpvParserTest_GlslStd450_DataPacking_Valid_1.spvasm.expected.ir.fxc.hlsl b/test/tint/unittest/reader/spirv/Samples_SpvParserTest_GlslStd450_DataPacking_Valid_1.spvasm.expected.ir.fxc.hlsl
deleted file mode 100644
index f30932b..0000000
--- a/test/tint/unittest/reader/spirv/Samples_SpvParserTest_GlslStd450_DataPacking_Valid_1.spvasm.expected.ir.fxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: pack4x8unorm
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/unittest/reader/spirv/Samples_SpvParserTest_GlslStd450_DataPacking_Valid_2.spvasm.expected.ir.fxc.hlsl b/test/tint/unittest/reader/spirv/Samples_SpvParserTest_GlslStd450_DataPacking_Valid_2.spvasm.expected.ir.fxc.hlsl
deleted file mode 100644
index cb194be..0000000
--- a/test/tint/unittest/reader/spirv/Samples_SpvParserTest_GlslStd450_DataPacking_Valid_2.spvasm.expected.ir.fxc.hlsl
+++ /dev/null
@@ -1,32 +0,0 @@
-SKIP: FAILED
-
-void main_1() {
-  uint u1 = 10u;
-  uint u2 = 15u;
-  uint u3 = 20u;
-  int i1 = 30;
-  int i2 = 35;
-  int i3 = 40;
-  float f1 = 50.0f;
-  float f2 = 60.0f;
-  float f3 = 70.0f;
-  uint2 v2u1 = uint2(10u, 20u);
-  uint2 v2u2 = uint2(20u, 10u);
-  uint2 v2u3 = (15u).xx;
-  int2 v2i1 = int2(30, 40);
-  int2 v2i2 = int2(40, 30);
-  int2 v2i3 = (35).xx;
-  float2 v2f2 = float2(60.0f, 50.0f);
-  float2 v2f3 = (70.0f).xx;
-  float3 v3f1 = float3(50.0f, 60.0f, 70.0f);
-  float3 v3f2 = float3(60.0f, 70.0f, 50.0f);
-  float4 v4f1 = (50.0f).xxxx;
-  float4 v4f2 = v4f1;
-  uint x_1 = 2147450879u;
-}
-
-[numthreads(1, 1, 1)]
-void main() {
-  main_1();
-}
-
diff --git a/test/tint/unittest/reader/spirv/Samples_SpvParserTest_GlslStd450_DataPacking_Valid_3.spvasm.expected.ir.fxc.hlsl b/test/tint/unittest/reader/spirv/Samples_SpvParserTest_GlslStd450_DataPacking_Valid_3.spvasm.expected.ir.fxc.hlsl
deleted file mode 100644
index 64e596a..0000000
--- a/test/tint/unittest/reader/spirv/Samples_SpvParserTest_GlslStd450_DataPacking_Valid_3.spvasm.expected.ir.fxc.hlsl
+++ /dev/null
@@ -1,32 +0,0 @@
-SKIP: FAILED
-
-void main_1() {
-  uint u1 = 10u;
-  uint u2 = 15u;
-  uint u3 = 20u;
-  int i1 = 30;
-  int i2 = 35;
-  int i3 = 40;
-  float f1 = 50.0f;
-  float f2 = 60.0f;
-  float f3 = 70.0f;
-  uint2 v2u1 = uint2(10u, 20u);
-  uint2 v2u2 = uint2(20u, 10u);
-  uint2 v2u3 = (15u).xx;
-  int2 v2i1 = int2(30, 40);
-  int2 v2i2 = int2(40, 30);
-  int2 v2i3 = (35).xx;
-  float2 v2f2 = float2(60.0f, 50.0f);
-  float2 v2f3 = (70.0f).xx;
-  float3 v3f1 = float3(50.0f, 60.0f, 70.0f);
-  float3 v3f2 = float3(60.0f, 70.0f, 50.0f);
-  float4 v4f1 = (50.0f).xxxx;
-  float4 v4f2 = v4f1;
-  uint x_1 = 4294967295u;
-}
-
-[numthreads(1, 1, 1)]
-void main() {
-  main_1();
-}
-
diff --git a/test/tint/unittest/reader/spirv/Samples_SpvParserTest_GlslStd450_DataPacking_Valid_4.spvasm.expected.ir.fxc.hlsl b/test/tint/unittest/reader/spirv/Samples_SpvParserTest_GlslStd450_DataPacking_Valid_4.spvasm.expected.ir.fxc.hlsl
deleted file mode 100644
index c0016ac..0000000
--- a/test/tint/unittest/reader/spirv/Samples_SpvParserTest_GlslStd450_DataPacking_Valid_4.spvasm.expected.ir.fxc.hlsl
+++ /dev/null
@@ -1,32 +0,0 @@
-SKIP: FAILED
-
-void main_1() {
-  uint u1 = 10u;
-  uint u2 = 15u;
-  uint u3 = 20u;
-  int i1 = 30;
-  int i2 = 35;
-  int i3 = 40;
-  float f1 = 50.0f;
-  float f2 = 60.0f;
-  float f3 = 70.0f;
-  uint2 v2u1 = uint2(10u, 20u);
-  uint2 v2u2 = uint2(20u, 10u);
-  uint2 v2u3 = (15u).xx;
-  int2 v2i1 = int2(30, 40);
-  int2 v2i2 = int2(40, 30);
-  int2 v2i3 = (35).xx;
-  float2 v2f2 = float2(60.0f, 50.0f);
-  float2 v2f3 = (70.0f).xx;
-  float3 v3f1 = float3(50.0f, 60.0f, 70.0f);
-  float3 v3f2 = float3(60.0f, 70.0f, 50.0f);
-  float4 v4f1 = (50.0f).xxxx;
-  float4 v4f2 = v4f1;
-  uint x_1 = 1400918592u;
-}
-
-[numthreads(1, 1, 1)]
-void main() {
-  main_1();
-}
-
diff --git a/test/tint/unittest/reader/spirv/Samples_SpvParserTest_GlslStd450_DataUnpacking_Valid_0.spvasm.expected.ir.fxc.hlsl b/test/tint/unittest/reader/spirv/Samples_SpvParserTest_GlslStd450_DataUnpacking_Valid_0.spvasm.expected.ir.fxc.hlsl
deleted file mode 100644
index 360d7a6..0000000
--- a/test/tint/unittest/reader/spirv/Samples_SpvParserTest_GlslStd450_DataUnpacking_Valid_0.spvasm.expected.ir.fxc.hlsl
+++ /dev/null
@@ -1,32 +0,0 @@
-SKIP: FAILED
-
-void main_1() {
-  uint u2 = 15u;
-  uint u3 = 20u;
-  int i1 = 30;
-  int i2 = 35;
-  int i3 = 40;
-  float f1 = 50.0f;
-  float f2 = 60.0f;
-  float f3 = 70.0f;
-  uint2 v2u1 = uint2(10u, 20u);
-  uint2 v2u2 = uint2(20u, 10u);
-  uint2 v2u3 = (15u).xx;
-  int2 v2i1 = int2(30, 40);
-  int2 v2i2 = int2(40, 30);
-  int2 v2i3 = (35).xx;
-  float2 v2f1 = float2(50.0f, 60.0f);
-  float2 v2f2 = float2(60.0f, 50.0f);
-  float2 v2f3 = (70.0f).xx;
-  float3 v3f1 = float3(50.0f, 60.0f, 70.0f);
-  float3 v3f2 = float3(60.0f, 70.0f, 50.0f);
-  float4 v4f1 = (50.0f).xxxx;
-  float4 v4f2 = v4f1;
-  float4 x_1 = float4(0.07874015718698501587f, 0.0f, 0.0f, 0.0f);
-}
-
-[numthreads(1, 1, 1)]
-void main() {
-  main_1();
-}
-
diff --git a/test/tint/unittest/reader/spirv/Samples_SpvParserTest_GlslStd450_DataUnpacking_Valid_1.spvasm.expected.ir.fxc.hlsl b/test/tint/unittest/reader/spirv/Samples_SpvParserTest_GlslStd450_DataUnpacking_Valid_1.spvasm.expected.ir.fxc.hlsl
deleted file mode 100644
index bfb24e9..0000000
--- a/test/tint/unittest/reader/spirv/Samples_SpvParserTest_GlslStd450_DataUnpacking_Valid_1.spvasm.expected.ir.fxc.hlsl
+++ /dev/null
@@ -1,32 +0,0 @@
-SKIP: FAILED
-
-void main_1() {
-  uint u2 = 15u;
-  uint u3 = 20u;
-  int i1 = 30;
-  int i2 = 35;
-  int i3 = 40;
-  float f1 = 50.0f;
-  float f2 = 60.0f;
-  float f3 = 70.0f;
-  uint2 v2u1 = uint2(10u, 20u);
-  uint2 v2u2 = uint2(20u, 10u);
-  uint2 v2u3 = (15u).xx;
-  int2 v2i1 = int2(30, 40);
-  int2 v2i2 = int2(40, 30);
-  int2 v2i3 = (35).xx;
-  float2 v2f1 = float2(50.0f, 60.0f);
-  float2 v2f2 = float2(60.0f, 50.0f);
-  float2 v2f3 = (70.0f).xx;
-  float3 v3f1 = float3(50.0f, 60.0f, 70.0f);
-  float3 v3f2 = float3(60.0f, 70.0f, 50.0f);
-  float4 v4f1 = (50.0f).xxxx;
-  float4 v4f2 = v4f1;
-  float4 x_1 = float4(0.03921568766236305237f, 0.0f, 0.0f, 0.0f);
-}
-
-[numthreads(1, 1, 1)]
-void main() {
-  main_1();
-}
-
diff --git a/test/tint/unittest/reader/spirv/Samples_SpvParserTest_GlslStd450_DataUnpacking_Valid_2.spvasm.expected.ir.fxc.hlsl b/test/tint/unittest/reader/spirv/Samples_SpvParserTest_GlslStd450_DataUnpacking_Valid_2.spvasm.expected.ir.fxc.hlsl
deleted file mode 100644
index 5708081..0000000
--- a/test/tint/unittest/reader/spirv/Samples_SpvParserTest_GlslStd450_DataUnpacking_Valid_2.spvasm.expected.ir.fxc.hlsl
+++ /dev/null
@@ -1,32 +0,0 @@
-SKIP: FAILED
-
-void main_1() {
-  uint u2 = 15u;
-  uint u3 = 20u;
-  int i1 = 30;
-  int i2 = 35;
-  int i3 = 40;
-  float f1 = 50.0f;
-  float f2 = 60.0f;
-  float f3 = 70.0f;
-  uint2 v2u1 = uint2(10u, 20u);
-  uint2 v2u2 = uint2(20u, 10u);
-  uint2 v2u3 = (15u).xx;
-  int2 v2i1 = int2(30, 40);
-  int2 v2i2 = int2(40, 30);
-  int2 v2i3 = (35).xx;
-  float2 v2f1 = float2(50.0f, 60.0f);
-  float2 v2f2 = float2(60.0f, 50.0f);
-  float2 v2f3 = (70.0f).xx;
-  float3 v3f1 = float3(50.0f, 60.0f, 70.0f);
-  float3 v3f2 = float3(60.0f, 70.0f, 50.0f);
-  float4 v4f1 = (50.0f).xxxx;
-  float4 v4f2 = v4f1;
-  float2 x_1 = float2(0.00030518509447574615f, 0.0f);
-}
-
-[numthreads(1, 1, 1)]
-void main() {
-  main_1();
-}
-
diff --git a/test/tint/unittest/reader/spirv/Samples_SpvParserTest_GlslStd450_DataUnpacking_Valid_3.spvasm.expected.ir.fxc.hlsl b/test/tint/unittest/reader/spirv/Samples_SpvParserTest_GlslStd450_DataUnpacking_Valid_3.spvasm.expected.ir.fxc.hlsl
deleted file mode 100644
index 65abade..0000000
--- a/test/tint/unittest/reader/spirv/Samples_SpvParserTest_GlslStd450_DataUnpacking_Valid_3.spvasm.expected.ir.fxc.hlsl
+++ /dev/null
@@ -1,32 +0,0 @@
-SKIP: FAILED
-
-void main_1() {
-  uint u2 = 15u;
-  uint u3 = 20u;
-  int i1 = 30;
-  int i2 = 35;
-  int i3 = 40;
-  float f1 = 50.0f;
-  float f2 = 60.0f;
-  float f3 = 70.0f;
-  uint2 v2u1 = uint2(10u, 20u);
-  uint2 v2u2 = uint2(20u, 10u);
-  uint2 v2u3 = (15u).xx;
-  int2 v2i1 = int2(30, 40);
-  int2 v2i2 = int2(40, 30);
-  int2 v2i3 = (35).xx;
-  float2 v2f1 = float2(50.0f, 60.0f);
-  float2 v2f2 = float2(60.0f, 50.0f);
-  float2 v2f3 = (70.0f).xx;
-  float3 v3f1 = float3(50.0f, 60.0f, 70.0f);
-  float3 v3f2 = float3(60.0f, 70.0f, 50.0f);
-  float4 v4f1 = (50.0f).xxxx;
-  float4 v4f2 = v4f1;
-  float2 x_1 = float2(0.00015259021893143654f, 0.0f);
-}
-
-[numthreads(1, 1, 1)]
-void main() {
-  main_1();
-}
-
diff --git a/test/tint/unittest/reader/spirv/Samples_SpvParserTest_GlslStd450_DataUnpacking_Valid_4.spvasm.expected.ir.fxc.hlsl b/test/tint/unittest/reader/spirv/Samples_SpvParserTest_GlslStd450_DataUnpacking_Valid_4.spvasm.expected.ir.fxc.hlsl
deleted file mode 100644
index a0dc6a7..0000000
--- a/test/tint/unittest/reader/spirv/Samples_SpvParserTest_GlslStd450_DataUnpacking_Valid_4.spvasm.expected.ir.fxc.hlsl
+++ /dev/null
@@ -1,32 +0,0 @@
-SKIP: FAILED
-
-void main_1() {
-  uint u2 = 15u;
-  uint u3 = 20u;
-  int i1 = 30;
-  int i2 = 35;
-  int i3 = 40;
-  float f1 = 50.0f;
-  float f2 = 60.0f;
-  float f3 = 70.0f;
-  uint2 v2u1 = uint2(10u, 20u);
-  uint2 v2u2 = uint2(20u, 10u);
-  uint2 v2u3 = (15u).xx;
-  int2 v2i1 = int2(30, 40);
-  int2 v2i2 = int2(40, 30);
-  int2 v2i3 = (35).xx;
-  float2 v2f1 = float2(50.0f, 60.0f);
-  float2 v2f2 = float2(60.0f, 50.0f);
-  float2 v2f3 = (70.0f).xx;
-  float3 v3f1 = float3(50.0f, 60.0f, 70.0f);
-  float3 v3f2 = float3(60.0f, 70.0f, 50.0f);
-  float4 v4f1 = (50.0f).xxxx;
-  float4 v4f2 = v4f1;
-  float2 x_1 = float2(0.00000059604644775391f, 0.0f);
-}
-
-[numthreads(1, 1, 1)]
-void main() {
-  main_1();
-}
-
diff --git a/test/tint/unittest/reader/spirv/Samples_SpvParserTest_GlslStd450_Float3_Float3Float3_Samples_0.spvasm.expected.ir.fxc.hlsl b/test/tint/unittest/reader/spirv/Samples_SpvParserTest_GlslStd450_Float3_Float3Float3_Samples_0.spvasm.expected.ir.fxc.hlsl
deleted file mode 100644
index e92187a..0000000
--- a/test/tint/unittest/reader/spirv/Samples_SpvParserTest_GlslStd450_Float3_Float3Float3_Samples_0.spvasm.expected.ir.fxc.hlsl
+++ /dev/null
@@ -1,31 +0,0 @@
-SKIP: FAILED
-
-void main_1() {
-  uint u1 = 10u;
-  uint u2 = 15u;
-  uint u3 = 20u;
-  int i1 = 30;
-  int i2 = 35;
-  int i3 = 40;
-  float f1 = 50.0f;
-  float f2 = 60.0f;
-  float f3 = 70.0f;
-  uint2 v2u1 = uint2(10u, 20u);
-  uint2 v2u2 = uint2(20u, 10u);
-  uint2 v2u3 = (15u).xx;
-  int2 v2i1 = int2(30, 40);
-  int2 v2i2 = int2(40, 30);
-  int2 v2i3 = (35).xx;
-  float2 v2f1 = float2(50.0f, 60.0f);
-  float2 v2f2 = float2(60.0f, 50.0f);
-  float2 v2f3 = (70.0f).xx;
-  float4 v4f1 = (50.0f).xxxx;
-  float4 v4f2 = v4f1;
-  float3 x_1 = float3(-1900.0f, 1700.0f, -100.0f);
-}
-
-[numthreads(1, 1, 1)]
-void main() {
-  main_1();
-}
-
diff --git a/test/tint/unittest/reader/spirv/Samples_SpvParserTest_GlslStd450_Float_FloatingFloating_Scalar_0.spvasm.expected.ir.fxc.hlsl b/test/tint/unittest/reader/spirv/Samples_SpvParserTest_GlslStd450_Float_FloatingFloating_Scalar_0.spvasm.expected.ir.fxc.hlsl
deleted file mode 100644
index 38a3d43..0000000
--- a/test/tint/unittest/reader/spirv/Samples_SpvParserTest_GlslStd450_Float_FloatingFloating_Scalar_0.spvasm.expected.ir.fxc.hlsl
+++ /dev/null
@@ -1,31 +0,0 @@
-SKIP: FAILED
-
-void main_1() {
-  uint u1 = 10u;
-  uint u2 = 15u;
-  uint u3 = 20u;
-  int i1 = 30;
-  int i2 = 35;
-  int i3 = 40;
-  float f3 = 70.0f;
-  uint2 v2u1 = uint2(10u, 20u);
-  uint2 v2u2 = uint2(20u, 10u);
-  uint2 v2u3 = (15u).xx;
-  int2 v2i1 = int2(30, 40);
-  int2 v2i2 = int2(40, 30);
-  int2 v2i3 = (35).xx;
-  float2 v2f1 = float2(50.0f, 60.0f);
-  float2 v2f2 = float2(60.0f, 50.0f);
-  float2 v2f3 = (70.0f).xx;
-  float3 v3f1 = float3(50.0f, 60.0f, 70.0f);
-  float3 v3f2 = float3(60.0f, 70.0f, 50.0f);
-  float4 v4f1 = (50.0f).xxxx;
-  float4 v4f2 = v4f1;
-  float x_1 = 10.0f;
-}
-
-[numthreads(1, 1, 1)]
-void main() {
-  main_1();
-}
-
diff --git a/test/tint/unittest/reader/spirv/Samples_SpvParserTest_GlslStd450_Float_FloatingFloating_Vector_0.spvasm.expected.ir.fxc.hlsl b/test/tint/unittest/reader/spirv/Samples_SpvParserTest_GlslStd450_Float_FloatingFloating_Vector_0.spvasm.expected.ir.fxc.hlsl
deleted file mode 100644
index aa3d88c..0000000
--- a/test/tint/unittest/reader/spirv/Samples_SpvParserTest_GlslStd450_Float_FloatingFloating_Vector_0.spvasm.expected.ir.fxc.hlsl
+++ /dev/null
@@ -1,31 +0,0 @@
-SKIP: FAILED
-
-void main_1() {
-  uint u1 = 10u;
-  uint u2 = 15u;
-  uint u3 = 20u;
-  int i1 = 30;
-  int i2 = 35;
-  int i3 = 40;
-  float f1 = 50.0f;
-  float f2 = 60.0f;
-  float f3 = 70.0f;
-  uint2 v2u1 = uint2(10u, 20u);
-  uint2 v2u2 = uint2(20u, 10u);
-  uint2 v2u3 = (15u).xx;
-  int2 v2i1 = int2(30, 40);
-  int2 v2i2 = int2(40, 30);
-  int2 v2i3 = (35).xx;
-  float2 v2f3 = (70.0f).xx;
-  float3 v3f1 = float3(50.0f, 60.0f, 70.0f);
-  float3 v3f2 = float3(60.0f, 70.0f, 50.0f);
-  float4 v4f1 = (50.0f).xxxx;
-  float4 v4f2 = v4f1;
-  float x_1 = 14.1421356201171875f;
-}
-
-[numthreads(1, 1, 1)]
-void main() {
-  main_1();
-}
-
diff --git a/test/tint/unittest/reader/spirv/Samples_SpvParserTest_GlslStd450_Float_Floating_Scalar_0.spvasm.expected.ir.fxc.hlsl b/test/tint/unittest/reader/spirv/Samples_SpvParserTest_GlslStd450_Float_Floating_Scalar_0.spvasm.expected.ir.fxc.hlsl
deleted file mode 100644
index 3665ef0..0000000
--- a/test/tint/unittest/reader/spirv/Samples_SpvParserTest_GlslStd450_Float_Floating_Scalar_0.spvasm.expected.ir.fxc.hlsl
+++ /dev/null
@@ -1,32 +0,0 @@
-SKIP: FAILED
-
-void main_1() {
-  uint u1 = 10u;
-  uint u2 = 15u;
-  uint u3 = 20u;
-  int i1 = 30;
-  int i2 = 35;
-  int i3 = 40;
-  float f2 = 60.0f;
-  float f3 = 70.0f;
-  uint2 v2u1 = uint2(10u, 20u);
-  uint2 v2u2 = uint2(20u, 10u);
-  uint2 v2u3 = (15u).xx;
-  int2 v2i1 = int2(30, 40);
-  int2 v2i2 = int2(40, 30);
-  int2 v2i3 = (35).xx;
-  float2 v2f1 = float2(50.0f, 60.0f);
-  float2 v2f2 = float2(60.0f, 50.0f);
-  float2 v2f3 = (70.0f).xx;
-  float3 v3f1 = float3(50.0f, 60.0f, 70.0f);
-  float3 v3f2 = float3(60.0f, 70.0f, 50.0f);
-  float4 v4f1 = (50.0f).xxxx;
-  float4 v4f2 = v4f1;
-  float x_1 = 50.0f;
-}
-
-[numthreads(1, 1, 1)]
-void main() {
-  main_1();
-}
-
diff --git a/test/tint/unittest/reader/spirv/Samples_SpvParserTest_GlslStd450_Float_Floating_Vector_0.spvasm.expected.ir.fxc.hlsl b/test/tint/unittest/reader/spirv/Samples_SpvParserTest_GlslStd450_Float_Floating_Vector_0.spvasm.expected.ir.fxc.hlsl
deleted file mode 100644
index 6a474e6..0000000
--- a/test/tint/unittest/reader/spirv/Samples_SpvParserTest_GlslStd450_Float_Floating_Vector_0.spvasm.expected.ir.fxc.hlsl
+++ /dev/null
@@ -1,32 +0,0 @@
-SKIP: FAILED
-
-void main_1() {
-  uint u1 = 10u;
-  uint u2 = 15u;
-  uint u3 = 20u;
-  int i1 = 30;
-  int i2 = 35;
-  int i3 = 40;
-  float f1 = 50.0f;
-  float f2 = 60.0f;
-  float f3 = 70.0f;
-  uint2 v2u1 = uint2(10u, 20u);
-  uint2 v2u2 = uint2(20u, 10u);
-  uint2 v2u3 = (15u).xx;
-  int2 v2i1 = int2(30, 40);
-  int2 v2i2 = int2(40, 30);
-  int2 v2i3 = (35).xx;
-  float2 v2f2 = float2(60.0f, 50.0f);
-  float2 v2f3 = (70.0f).xx;
-  float3 v3f1 = float3(50.0f, 60.0f, 70.0f);
-  float3 v3f2 = float3(60.0f, 70.0f, 50.0f);
-  float4 v4f1 = (50.0f).xxxx;
-  float4 v4f2 = v4f1;
-  float x_1 = 78.1024932861328125f;
-}
-
-[numthreads(1, 1, 1)]
-void main() {
-  main_1();
-}
-
diff --git a/test/tint/unittest/reader/spirv/Samples_SpvParserTest_GlslStd450_Floating_FloatingFloatingFloating_Scalar_0.spvasm.expected.ir.fxc.hlsl b/test/tint/unittest/reader/spirv/Samples_SpvParserTest_GlslStd450_Floating_FloatingFloatingFloating_Scalar_0.spvasm.expected.ir.fxc.hlsl
deleted file mode 100644
index f16b01b..0000000
--- a/test/tint/unittest/reader/spirv/Samples_SpvParserTest_GlslStd450_Floating_FloatingFloatingFloating_Scalar_0.spvasm.expected.ir.fxc.hlsl
+++ /dev/null
@@ -1,30 +0,0 @@
-SKIP: FAILED
-
-void main_1() {
-  uint u1 = 10u;
-  uint u2 = 15u;
-  uint u3 = 20u;
-  int i1 = 30;
-  int i2 = 35;
-  int i3 = 40;
-  uint2 v2u1 = uint2(10u, 20u);
-  uint2 v2u2 = uint2(20u, 10u);
-  uint2 v2u3 = (15u).xx;
-  int2 v2i1 = int2(30, 40);
-  int2 v2i2 = int2(40, 30);
-  int2 v2i3 = (35).xx;
-  float2 v2f1 = float2(50.0f, 60.0f);
-  float2 v2f2 = float2(60.0f, 50.0f);
-  float2 v2f3 = (70.0f).xx;
-  float3 v3f1 = float3(50.0f, 60.0f, 70.0f);
-  float3 v3f2 = float3(60.0f, 70.0f, 50.0f);
-  float4 v4f1 = (50.0f).xxxx;
-  float4 v4f2 = v4f1;
-  float x_1 = 60.0f;
-}
-
-[numthreads(1, 1, 1)]
-void main() {
-  main_1();
-}
-
diff --git a/test/tint/unittest/reader/spirv/Samples_SpvParserTest_GlslStd450_Floating_FloatingFloatingFloating_Scalar_1.spvasm.expected.ir.fxc.hlsl b/test/tint/unittest/reader/spirv/Samples_SpvParserTest_GlslStd450_Floating_FloatingFloatingFloating_Scalar_1.spvasm.expected.ir.fxc.hlsl
deleted file mode 100644
index f16b01b..0000000
--- a/test/tint/unittest/reader/spirv/Samples_SpvParserTest_GlslStd450_Floating_FloatingFloatingFloating_Scalar_1.spvasm.expected.ir.fxc.hlsl
+++ /dev/null
@@ -1,30 +0,0 @@
-SKIP: FAILED
-
-void main_1() {
-  uint u1 = 10u;
-  uint u2 = 15u;
-  uint u3 = 20u;
-  int i1 = 30;
-  int i2 = 35;
-  int i3 = 40;
-  uint2 v2u1 = uint2(10u, 20u);
-  uint2 v2u2 = uint2(20u, 10u);
-  uint2 v2u3 = (15u).xx;
-  int2 v2i1 = int2(30, 40);
-  int2 v2i2 = int2(40, 30);
-  int2 v2i3 = (35).xx;
-  float2 v2f1 = float2(50.0f, 60.0f);
-  float2 v2f2 = float2(60.0f, 50.0f);
-  float2 v2f3 = (70.0f).xx;
-  float3 v3f1 = float3(50.0f, 60.0f, 70.0f);
-  float3 v3f2 = float3(60.0f, 70.0f, 50.0f);
-  float4 v4f1 = (50.0f).xxxx;
-  float4 v4f2 = v4f1;
-  float x_1 = 60.0f;
-}
-
-[numthreads(1, 1, 1)]
-void main() {
-  main_1();
-}
-
diff --git a/test/tint/unittest/reader/spirv/Samples_SpvParserTest_GlslStd450_Floating_FloatingFloatingFloating_Scalar_2.spvasm.expected.ir.fxc.hlsl b/test/tint/unittest/reader/spirv/Samples_SpvParserTest_GlslStd450_Floating_FloatingFloatingFloating_Scalar_2.spvasm.expected.ir.fxc.hlsl
deleted file mode 100644
index 33350ca..0000000
--- a/test/tint/unittest/reader/spirv/Samples_SpvParserTest_GlslStd450_Floating_FloatingFloatingFloating_Scalar_2.spvasm.expected.ir.fxc.hlsl
+++ /dev/null
@@ -1,30 +0,0 @@
-SKIP: FAILED
-
-void main_1() {
-  uint u1 = 10u;
-  uint u2 = 15u;
-  uint u3 = 20u;
-  int i1 = 30;
-  int i2 = 35;
-  int i3 = 40;
-  uint2 v2u1 = uint2(10u, 20u);
-  uint2 v2u2 = uint2(20u, 10u);
-  uint2 v2u3 = (15u).xx;
-  int2 v2i1 = int2(30, 40);
-  int2 v2i2 = int2(40, 30);
-  int2 v2i3 = (35).xx;
-  float2 v2f1 = float2(50.0f, 60.0f);
-  float2 v2f2 = float2(60.0f, 50.0f);
-  float2 v2f3 = (70.0f).xx;
-  float3 v3f1 = float3(50.0f, 60.0f, 70.0f);
-  float3 v3f2 = float3(60.0f, 70.0f, 50.0f);
-  float4 v4f1 = (50.0f).xxxx;
-  float4 v4f2 = v4f1;
-  float x_1 = 3070.0f;
-}
-
-[numthreads(1, 1, 1)]
-void main() {
-  main_1();
-}
-
diff --git a/test/tint/unittest/reader/spirv/Samples_SpvParserTest_GlslStd450_Floating_FloatingFloatingFloating_Scalar_3.spvasm.expected.ir.fxc.hlsl b/test/tint/unittest/reader/spirv/Samples_SpvParserTest_GlslStd450_Floating_FloatingFloatingFloating_Scalar_3.spvasm.expected.ir.fxc.hlsl
deleted file mode 100644
index 02a45ef..0000000
--- a/test/tint/unittest/reader/spirv/Samples_SpvParserTest_GlslStd450_Floating_FloatingFloatingFloating_Scalar_3.spvasm.expected.ir.fxc.hlsl
+++ /dev/null
@@ -1,30 +0,0 @@
-SKIP: FAILED
-
-void main_1() {
-  uint u1 = 10u;
-  uint u2 = 15u;
-  uint u3 = 20u;
-  int i1 = 30;
-  int i2 = 35;
-  int i3 = 40;
-  uint2 v2u1 = uint2(10u, 20u);
-  uint2 v2u2 = uint2(20u, 10u);
-  uint2 v2u3 = (15u).xx;
-  int2 v2i1 = int2(30, 40);
-  int2 v2i2 = int2(40, 30);
-  int2 v2i3 = (35).xx;
-  float2 v2f1 = float2(50.0f, 60.0f);
-  float2 v2f2 = float2(60.0f, 50.0f);
-  float2 v2f3 = (70.0f).xx;
-  float3 v3f1 = float3(50.0f, 60.0f, 70.0f);
-  float3 v3f2 = float3(60.0f, 70.0f, 50.0f);
-  float4 v4f1 = (50.0f).xxxx;
-  float4 v4f2 = v4f1;
-  float x_1 = 750.0f;
-}
-
-[numthreads(1, 1, 1)]
-void main() {
-  main_1();
-}
-
diff --git a/test/tint/unittest/reader/spirv/Samples_SpvParserTest_GlslStd450_Floating_FloatingFloatingFloating_Scalar_4.spvasm.expected.ir.fxc.hlsl b/test/tint/unittest/reader/spirv/Samples_SpvParserTest_GlslStd450_Floating_FloatingFloatingFloating_Scalar_4.spvasm.expected.ir.fxc.hlsl
deleted file mode 100644
index 18c10bf..0000000
--- a/test/tint/unittest/reader/spirv/Samples_SpvParserTest_GlslStd450_Floating_FloatingFloatingFloating_Scalar_4.spvasm.expected.ir.fxc.hlsl
+++ /dev/null
@@ -1,30 +0,0 @@
-SKIP: FAILED
-
-void main_1() {
-  uint u1 = 10u;
-  uint u2 = 15u;
-  uint u3 = 20u;
-  int i1 = 30;
-  int i2 = 35;
-  int i3 = 40;
-  uint2 v2u1 = uint2(10u, 20u);
-  uint2 v2u2 = uint2(20u, 10u);
-  uint2 v2u3 = (15u).xx;
-  int2 v2i1 = int2(30, 40);
-  int2 v2i2 = int2(40, 30);
-  int2 v2i3 = (35).xx;
-  float2 v2f1 = float2(50.0f, 60.0f);
-  float2 v2f2 = float2(60.0f, 50.0f);
-  float2 v2f3 = (70.0f).xx;
-  float3 v3f1 = float3(50.0f, 60.0f, 70.0f);
-  float3 v3f2 = float3(60.0f, 70.0f, 50.0f);
-  float4 v4f1 = (50.0f).xxxx;
-  float4 v4f2 = v4f1;
-  float x_1 = 1.0f;
-}
-
-[numthreads(1, 1, 1)]
-void main() {
-  main_1();
-}
-
diff --git a/test/tint/unittest/reader/spirv/Samples_SpvParserTest_GlslStd450_Floating_FloatingFloatingFloating_Vector_0.spvasm.expected.ir.fxc.hlsl b/test/tint/unittest/reader/spirv/Samples_SpvParserTest_GlslStd450_Floating_FloatingFloatingFloating_Vector_0.spvasm.expected.ir.fxc.hlsl
deleted file mode 100644
index 6d21ff1..0000000
--- a/test/tint/unittest/reader/spirv/Samples_SpvParserTest_GlslStd450_Floating_FloatingFloatingFloating_Vector_0.spvasm.expected.ir.fxc.hlsl
+++ /dev/null
@@ -1,30 +0,0 @@
-SKIP: FAILED
-
-void main_1() {
-  uint u1 = 10u;
-  uint u2 = 15u;
-  uint u3 = 20u;
-  int i1 = 30;
-  int i2 = 35;
-  int i3 = 40;
-  float f1 = 50.0f;
-  float f2 = 60.0f;
-  float f3 = 70.0f;
-  uint2 v2u1 = uint2(10u, 20u);
-  uint2 v2u2 = uint2(20u, 10u);
-  uint2 v2u3 = (15u).xx;
-  int2 v2i1 = int2(30, 40);
-  int2 v2i2 = int2(40, 30);
-  int2 v2i3 = (35).xx;
-  float3 v3f1 = float3(50.0f, 60.0f, 70.0f);
-  float3 v3f2 = float3(60.0f, 70.0f, 50.0f);
-  float4 v4f1 = (50.0f).xxxx;
-  float4 v4f2 = v4f1;
-  float2 x_1 = (60.0f).xx;
-}
-
-[numthreads(1, 1, 1)]
-void main() {
-  main_1();
-}
-
diff --git a/test/tint/unittest/reader/spirv/Samples_SpvParserTest_GlslStd450_Floating_FloatingFloatingFloating_Vector_1.spvasm.expected.ir.fxc.hlsl b/test/tint/unittest/reader/spirv/Samples_SpvParserTest_GlslStd450_Floating_FloatingFloatingFloating_Vector_1.spvasm.expected.ir.fxc.hlsl
deleted file mode 100644
index 6d21ff1..0000000
--- a/test/tint/unittest/reader/spirv/Samples_SpvParserTest_GlslStd450_Floating_FloatingFloatingFloating_Vector_1.spvasm.expected.ir.fxc.hlsl
+++ /dev/null
@@ -1,30 +0,0 @@
-SKIP: FAILED
-
-void main_1() {
-  uint u1 = 10u;
-  uint u2 = 15u;
-  uint u3 = 20u;
-  int i1 = 30;
-  int i2 = 35;
-  int i3 = 40;
-  float f1 = 50.0f;
-  float f2 = 60.0f;
-  float f3 = 70.0f;
-  uint2 v2u1 = uint2(10u, 20u);
-  uint2 v2u2 = uint2(20u, 10u);
-  uint2 v2u3 = (15u).xx;
-  int2 v2i1 = int2(30, 40);
-  int2 v2i2 = int2(40, 30);
-  int2 v2i3 = (35).xx;
-  float3 v3f1 = float3(50.0f, 60.0f, 70.0f);
-  float3 v3f2 = float3(60.0f, 70.0f, 50.0f);
-  float4 v4f1 = (50.0f).xxxx;
-  float4 v4f2 = v4f1;
-  float2 x_1 = (60.0f).xx;
-}
-
-[numthreads(1, 1, 1)]
-void main() {
-  main_1();
-}
-
diff --git a/test/tint/unittest/reader/spirv/Samples_SpvParserTest_GlslStd450_Floating_FloatingFloatingFloating_Vector_2.spvasm.expected.ir.fxc.hlsl b/test/tint/unittest/reader/spirv/Samples_SpvParserTest_GlslStd450_Floating_FloatingFloatingFloating_Vector_2.spvasm.expected.ir.fxc.hlsl
deleted file mode 100644
index 672a324..0000000
--- a/test/tint/unittest/reader/spirv/Samples_SpvParserTest_GlslStd450_Floating_FloatingFloatingFloating_Vector_2.spvasm.expected.ir.fxc.hlsl
+++ /dev/null
@@ -1,30 +0,0 @@
-SKIP: FAILED
-
-void main_1() {
-  uint u1 = 10u;
-  uint u2 = 15u;
-  uint u3 = 20u;
-  int i1 = 30;
-  int i2 = 35;
-  int i3 = 40;
-  float f1 = 50.0f;
-  float f2 = 60.0f;
-  float f3 = 70.0f;
-  uint2 v2u1 = uint2(10u, 20u);
-  uint2 v2u2 = uint2(20u, 10u);
-  uint2 v2u3 = (15u).xx;
-  int2 v2i1 = int2(30, 40);
-  int2 v2i2 = int2(40, 30);
-  int2 v2i3 = (35).xx;
-  float3 v3f1 = float3(50.0f, 60.0f, 70.0f);
-  float3 v3f2 = float3(60.0f, 70.0f, 50.0f);
-  float4 v4f1 = (50.0f).xxxx;
-  float4 v4f2 = v4f1;
-  float2 x_1 = (3070.0f).xx;
-}
-
-[numthreads(1, 1, 1)]
-void main() {
-  main_1();
-}
-
diff --git a/test/tint/unittest/reader/spirv/Samples_SpvParserTest_GlslStd450_Floating_FloatingFloatingFloating_Vector_3.spvasm.expected.ir.fxc.hlsl b/test/tint/unittest/reader/spirv/Samples_SpvParserTest_GlslStd450_Floating_FloatingFloatingFloating_Vector_3.spvasm.expected.ir.fxc.hlsl
deleted file mode 100644
index 55b9c0f..0000000
--- a/test/tint/unittest/reader/spirv/Samples_SpvParserTest_GlslStd450_Floating_FloatingFloatingFloating_Vector_3.spvasm.expected.ir.fxc.hlsl
+++ /dev/null
@@ -1,30 +0,0 @@
-SKIP: FAILED
-
-void main_1() {
-  uint u1 = 10u;
-  uint u2 = 15u;
-  uint u3 = 20u;
-  int i1 = 30;
-  int i2 = 35;
-  int i3 = 40;
-  float f1 = 50.0f;
-  float f2 = 60.0f;
-  float f3 = 70.0f;
-  uint2 v2u1 = uint2(10u, 20u);
-  uint2 v2u2 = uint2(20u, 10u);
-  uint2 v2u3 = (15u).xx;
-  int2 v2i1 = int2(30, 40);
-  int2 v2i2 = int2(40, 30);
-  int2 v2i3 = (35).xx;
-  float3 v3f1 = float3(50.0f, 60.0f, 70.0f);
-  float3 v3f2 = float3(60.0f, 70.0f, 50.0f);
-  float4 v4f1 = (50.0f).xxxx;
-  float4 v4f2 = v4f1;
-  float2 x_1 = float2(750.0f, -640.0f);
-}
-
-[numthreads(1, 1, 1)]
-void main() {
-  main_1();
-}
-
diff --git a/test/tint/unittest/reader/spirv/Samples_SpvParserTest_GlslStd450_Floating_FloatingFloatingFloating_Vector_4.spvasm.expected.ir.fxc.hlsl b/test/tint/unittest/reader/spirv/Samples_SpvParserTest_GlslStd450_Floating_FloatingFloatingFloating_Vector_4.spvasm.expected.ir.fxc.hlsl
deleted file mode 100644
index f99c0ef..0000000
--- a/test/tint/unittest/reader/spirv/Samples_SpvParserTest_GlslStd450_Floating_FloatingFloatingFloating_Vector_4.spvasm.expected.ir.fxc.hlsl
+++ /dev/null
@@ -1,30 +0,0 @@
-SKIP: FAILED
-
-void main_1() {
-  uint u1 = 10u;
-  uint u2 = 15u;
-  uint u3 = 20u;
-  int i1 = 30;
-  int i2 = 35;
-  int i3 = 40;
-  float f1 = 50.0f;
-  float f2 = 60.0f;
-  float f3 = 70.0f;
-  uint2 v2u1 = uint2(10u, 20u);
-  uint2 v2u2 = uint2(20u, 10u);
-  uint2 v2u3 = (15u).xx;
-  int2 v2i1 = int2(30, 40);
-  int2 v2i2 = int2(40, 30);
-  int2 v2i3 = (35).xx;
-  float3 v3f1 = float3(50.0f, 60.0f, 70.0f);
-  float3 v3f2 = float3(60.0f, 70.0f, 50.0f);
-  float4 v4f1 = (50.0f).xxxx;
-  float4 v4f2 = v4f1;
-  float2 x_1 = float2(1.0f, 0.0f);
-}
-
-[numthreads(1, 1, 1)]
-void main() {
-  main_1();
-}
-
diff --git a/test/tint/unittest/reader/spirv/Samples_SpvParserTest_GlslStd450_Floating_FloatingFloating_Scalar_0.spvasm.expected.ir.fxc.hlsl b/test/tint/unittest/reader/spirv/Samples_SpvParserTest_GlslStd450_Floating_FloatingFloating_Scalar_0.spvasm.expected.ir.fxc.hlsl
deleted file mode 100644
index 00a1419..0000000
--- a/test/tint/unittest/reader/spirv/Samples_SpvParserTest_GlslStd450_Floating_FloatingFloating_Scalar_0.spvasm.expected.ir.fxc.hlsl
+++ /dev/null
@@ -1,31 +0,0 @@
-SKIP: FAILED
-
-void main_1() {
-  uint u1 = 10u;
-  uint u2 = 15u;
-  uint u3 = 20u;
-  int i1 = 30;
-  int i2 = 35;
-  int i3 = 40;
-  float f3 = 70.0f;
-  uint2 v2u1 = uint2(10u, 20u);
-  uint2 v2u2 = uint2(20u, 10u);
-  uint2 v2u3 = (15u).xx;
-  int2 v2i1 = int2(30, 40);
-  int2 v2i2 = int2(40, 30);
-  int2 v2i3 = (35).xx;
-  float2 v2f1 = float2(50.0f, 60.0f);
-  float2 v2f2 = float2(60.0f, 50.0f);
-  float2 v2f3 = (70.0f).xx;
-  float3 v3f1 = float3(50.0f, 60.0f, 70.0f);
-  float3 v3f2 = float3(60.0f, 70.0f, 50.0f);
-  float4 v4f1 = (50.0f).xxxx;
-  float4 v4f2 = v4f1;
-  float x_1 = 0.69473826885223388672f;
-}
-
-[numthreads(1, 1, 1)]
-void main() {
-  main_1();
-}
-
diff --git a/test/tint/unittest/reader/spirv/Samples_SpvParserTest_GlslStd450_Floating_FloatingFloating_Scalar_1.spvasm.expected.ir.fxc.hlsl b/test/tint/unittest/reader/spirv/Samples_SpvParserTest_GlslStd450_Floating_FloatingFloating_Scalar_1.spvasm.expected.ir.fxc.hlsl
deleted file mode 100644
index d9ff005..0000000
--- a/test/tint/unittest/reader/spirv/Samples_SpvParserTest_GlslStd450_Floating_FloatingFloating_Scalar_1.spvasm.expected.ir.fxc.hlsl
+++ /dev/null
@@ -1,31 +0,0 @@
-SKIP: FAILED
-
-void main_1() {
-  uint u1 = 10u;
-  uint u2 = 15u;
-  uint u3 = 20u;
-  int i1 = 30;
-  int i2 = 35;
-  int i3 = 40;
-  float f3 = 70.0f;
-  uint2 v2u1 = uint2(10u, 20u);
-  uint2 v2u2 = uint2(20u, 10u);
-  uint2 v2u3 = (15u).xx;
-  int2 v2i1 = int2(30, 40);
-  int2 v2i2 = int2(40, 30);
-  int2 v2i3 = (35).xx;
-  float2 v2f1 = float2(50.0f, 60.0f);
-  float2 v2f2 = float2(60.0f, 50.0f);
-  float2 v2f3 = (70.0f).xx;
-  float3 v3f1 = float3(50.0f, 60.0f, 70.0f);
-  float3 v3f2 = float3(60.0f, 70.0f, 50.0f);
-  float4 v4f1 = (50.0f).xxxx;
-  float4 v4f2 = v4f1;
-  float x_1 = 60.0f;
-}
-
-[numthreads(1, 1, 1)]
-void main() {
-  main_1();
-}
-
diff --git a/test/tint/unittest/reader/spirv/Samples_SpvParserTest_GlslStd450_Floating_FloatingFloating_Scalar_2.spvasm.expected.ir.fxc.hlsl b/test/tint/unittest/reader/spirv/Samples_SpvParserTest_GlslStd450_Floating_FloatingFloating_Scalar_2.spvasm.expected.ir.fxc.hlsl
deleted file mode 100644
index f39da36..0000000
--- a/test/tint/unittest/reader/spirv/Samples_SpvParserTest_GlslStd450_Floating_FloatingFloating_Scalar_2.spvasm.expected.ir.fxc.hlsl
+++ /dev/null
@@ -1,31 +0,0 @@
-SKIP: FAILED
-
-void main_1() {
-  uint u1 = 10u;
-  uint u2 = 15u;
-  uint u3 = 20u;
-  int i1 = 30;
-  int i2 = 35;
-  int i3 = 40;
-  float f3 = 70.0f;
-  uint2 v2u1 = uint2(10u, 20u);
-  uint2 v2u2 = uint2(20u, 10u);
-  uint2 v2u3 = (15u).xx;
-  int2 v2i1 = int2(30, 40);
-  int2 v2i2 = int2(40, 30);
-  int2 v2i3 = (35).xx;
-  float2 v2f1 = float2(50.0f, 60.0f);
-  float2 v2f2 = float2(60.0f, 50.0f);
-  float2 v2f3 = (70.0f).xx;
-  float3 v3f1 = float3(50.0f, 60.0f, 70.0f);
-  float3 v3f2 = float3(60.0f, 70.0f, 50.0f);
-  float4 v4f1 = (50.0f).xxxx;
-  float4 v4f2 = v4f1;
-  float x_1 = 50.0f;
-}
-
-[numthreads(1, 1, 1)]
-void main() {
-  main_1();
-}
-
diff --git a/test/tint/unittest/reader/spirv/Samples_SpvParserTest_GlslStd450_Floating_FloatingFloating_Scalar_3.spvasm.expected.ir.fxc.hlsl b/test/tint/unittest/reader/spirv/Samples_SpvParserTest_GlslStd450_Floating_FloatingFloating_Scalar_3.spvasm.expected.ir.fxc.hlsl
deleted file mode 100644
index d9ff005..0000000
--- a/test/tint/unittest/reader/spirv/Samples_SpvParserTest_GlslStd450_Floating_FloatingFloating_Scalar_3.spvasm.expected.ir.fxc.hlsl
+++ /dev/null
@@ -1,31 +0,0 @@
-SKIP: FAILED
-
-void main_1() {
-  uint u1 = 10u;
-  uint u2 = 15u;
-  uint u3 = 20u;
-  int i1 = 30;
-  int i2 = 35;
-  int i3 = 40;
-  float f3 = 70.0f;
-  uint2 v2u1 = uint2(10u, 20u);
-  uint2 v2u2 = uint2(20u, 10u);
-  uint2 v2u3 = (15u).xx;
-  int2 v2i1 = int2(30, 40);
-  int2 v2i2 = int2(40, 30);
-  int2 v2i3 = (35).xx;
-  float2 v2f1 = float2(50.0f, 60.0f);
-  float2 v2f2 = float2(60.0f, 50.0f);
-  float2 v2f3 = (70.0f).xx;
-  float3 v3f1 = float3(50.0f, 60.0f, 70.0f);
-  float3 v3f2 = float3(60.0f, 70.0f, 50.0f);
-  float4 v4f1 = (50.0f).xxxx;
-  float4 v4f2 = v4f1;
-  float x_1 = 60.0f;
-}
-
-[numthreads(1, 1, 1)]
-void main() {
-  main_1();
-}
-
diff --git a/test/tint/unittest/reader/spirv/Samples_SpvParserTest_GlslStd450_Floating_FloatingFloating_Scalar_4.spvasm.expected.ir.fxc.hlsl b/test/tint/unittest/reader/spirv/Samples_SpvParserTest_GlslStd450_Floating_FloatingFloating_Scalar_4.spvasm.expected.ir.fxc.hlsl
deleted file mode 100644
index f39da36..0000000
--- a/test/tint/unittest/reader/spirv/Samples_SpvParserTest_GlslStd450_Floating_FloatingFloating_Scalar_4.spvasm.expected.ir.fxc.hlsl
+++ /dev/null
@@ -1,31 +0,0 @@
-SKIP: FAILED
-
-void main_1() {
-  uint u1 = 10u;
-  uint u2 = 15u;
-  uint u3 = 20u;
-  int i1 = 30;
-  int i2 = 35;
-  int i3 = 40;
-  float f3 = 70.0f;
-  uint2 v2u1 = uint2(10u, 20u);
-  uint2 v2u2 = uint2(20u, 10u);
-  uint2 v2u3 = (15u).xx;
-  int2 v2i1 = int2(30, 40);
-  int2 v2i2 = int2(40, 30);
-  int2 v2i3 = (35).xx;
-  float2 v2f1 = float2(50.0f, 60.0f);
-  float2 v2f2 = float2(60.0f, 50.0f);
-  float2 v2f3 = (70.0f).xx;
-  float3 v3f1 = float3(50.0f, 60.0f, 70.0f);
-  float3 v3f2 = float3(60.0f, 70.0f, 50.0f);
-  float4 v4f1 = (50.0f).xxxx;
-  float4 v4f2 = v4f1;
-  float x_1 = 50.0f;
-}
-
-[numthreads(1, 1, 1)]
-void main() {
-  main_1();
-}
-
diff --git a/test/tint/unittest/reader/spirv/Samples_SpvParserTest_GlslStd450_Floating_FloatingFloating_Scalar_5.spvasm.expected.ir.fxc.hlsl b/test/tint/unittest/reader/spirv/Samples_SpvParserTest_GlslStd450_Floating_FloatingFloating_Scalar_5.spvasm.expected.ir.fxc.hlsl
deleted file mode 100644
index 6907333..0000000
--- a/test/tint/unittest/reader/spirv/Samples_SpvParserTest_GlslStd450_Floating_FloatingFloating_Scalar_5.spvasm.expected.ir.fxc.hlsl
+++ /dev/null
@@ -1,31 +0,0 @@
-SKIP: FAILED
-
-void main_1() {
-  uint u1 = 10u;
-  uint u2 = 15u;
-  uint u3 = 20u;
-  int i1 = 30;
-  int i2 = 35;
-  int i3 = 40;
-  float f3 = 0.69999998807907104492f;
-  uint2 v2u1 = uint2(10u, 20u);
-  uint2 v2u2 = uint2(20u, 10u);
-  uint2 v2u3 = (15u).xx;
-  int2 v2i1 = int2(30, 40);
-  int2 v2i2 = int2(40, 30);
-  int2 v2i3 = (35).xx;
-  float2 v2f1 = float2(0.5f, 0.60000002384185791016f);
-  float2 v2f2 = float2(0.60000002384185791016f, 0.5f);
-  float2 v2f3 = (0.69999998807907104492f).xx;
-  float3 v3f1 = float3(0.5f, 0.60000002384185791016f, 0.69999998807907104492f);
-  float3 v3f2 = float3(0.60000002384185791016f, 0.69999998807907104492f, 0.5f);
-  float4 v4f1 = (0.5f).xxxx;
-  float4 v4f2 = v4f1;
-  float x_1 = 0.65975391864776611328f;
-}
-
-[numthreads(1, 1, 1)]
-void main() {
-  main_1();
-}
-
diff --git a/test/tint/unittest/reader/spirv/Samples_SpvParserTest_GlslStd450_Floating_FloatingFloating_Scalar_6.spvasm.expected.ir.fxc.hlsl b/test/tint/unittest/reader/spirv/Samples_SpvParserTest_GlslStd450_Floating_FloatingFloating_Scalar_6.spvasm.expected.ir.fxc.hlsl
deleted file mode 100644
index db28722..0000000
--- a/test/tint/unittest/reader/spirv/Samples_SpvParserTest_GlslStd450_Floating_FloatingFloating_Scalar_6.spvasm.expected.ir.fxc.hlsl
+++ /dev/null
@@ -1,31 +0,0 @@
-SKIP: FAILED
-
-void main_1() {
-  uint u1 = 10u;
-  uint u2 = 15u;
-  uint u3 = 20u;
-  int i1 = 30;
-  int i2 = 35;
-  int i3 = 40;
-  float f3 = 70.0f;
-  uint2 v2u1 = uint2(10u, 20u);
-  uint2 v2u2 = uint2(20u, 10u);
-  uint2 v2u3 = (15u).xx;
-  int2 v2i1 = int2(30, 40);
-  int2 v2i2 = int2(40, 30);
-  int2 v2i3 = (35).xx;
-  float2 v2f1 = float2(50.0f, 60.0f);
-  float2 v2f2 = float2(60.0f, 50.0f);
-  float2 v2f3 = (70.0f).xx;
-  float3 v3f1 = float3(50.0f, 60.0f, 70.0f);
-  float3 v3f2 = float3(60.0f, 70.0f, 50.0f);
-  float4 v4f1 = (50.0f).xxxx;
-  float4 v4f2 = v4f1;
-  float x_1 = 1.0f;
-}
-
-[numthreads(1, 1, 1)]
-void main() {
-  main_1();
-}
-
diff --git a/test/tint/unittest/reader/spirv/Samples_SpvParserTest_GlslStd450_Floating_FloatingFloating_Vector_0.spvasm.expected.ir.fxc.hlsl b/test/tint/unittest/reader/spirv/Samples_SpvParserTest_GlslStd450_Floating_FloatingFloating_Vector_0.spvasm.expected.ir.fxc.hlsl
deleted file mode 100644
index d02166a..0000000
--- a/test/tint/unittest/reader/spirv/Samples_SpvParserTest_GlslStd450_Floating_FloatingFloating_Vector_0.spvasm.expected.ir.fxc.hlsl
+++ /dev/null
@@ -1,31 +0,0 @@
-SKIP: FAILED
-
-void main_1() {
-  uint u1 = 10u;
-  uint u2 = 15u;
-  uint u3 = 20u;
-  int i1 = 30;
-  int i2 = 35;
-  int i3 = 40;
-  float f1 = 50.0f;
-  float f2 = 60.0f;
-  float f3 = 70.0f;
-  uint2 v2u1 = uint2(10u, 20u);
-  uint2 v2u2 = uint2(20u, 10u);
-  uint2 v2u3 = (15u).xx;
-  int2 v2i1 = int2(30, 40);
-  int2 v2i2 = int2(40, 30);
-  int2 v2i3 = (35).xx;
-  float2 v2f3 = (70.0f).xx;
-  float3 v3f1 = float3(50.0f, 60.0f, 70.0f);
-  float3 v3f2 = float3(60.0f, 70.0f, 50.0f);
-  float4 v4f1 = (50.0f).xxxx;
-  float4 v4f2 = v4f1;
-  float2 x_1 = float2(0.69473826885223388672f, 0.87605810165405273438f);
-}
-
-[numthreads(1, 1, 1)]
-void main() {
-  main_1();
-}
-
diff --git a/test/tint/unittest/reader/spirv/Samples_SpvParserTest_GlslStd450_Floating_FloatingFloating_Vector_1.spvasm.expected.ir.fxc.hlsl b/test/tint/unittest/reader/spirv/Samples_SpvParserTest_GlslStd450_Floating_FloatingFloating_Vector_1.spvasm.expected.ir.fxc.hlsl
deleted file mode 100644
index 913ab11..0000000
--- a/test/tint/unittest/reader/spirv/Samples_SpvParserTest_GlslStd450_Floating_FloatingFloating_Vector_1.spvasm.expected.ir.fxc.hlsl
+++ /dev/null
@@ -1,31 +0,0 @@
-SKIP: FAILED
-
-void main_1() {
-  uint u1 = 10u;
-  uint u2 = 15u;
-  uint u3 = 20u;
-  int i1 = 30;
-  int i2 = 35;
-  int i3 = 40;
-  float f1 = 50.0f;
-  float f2 = 60.0f;
-  float f3 = 70.0f;
-  uint2 v2u1 = uint2(10u, 20u);
-  uint2 v2u2 = uint2(20u, 10u);
-  uint2 v2u3 = (15u).xx;
-  int2 v2i1 = int2(30, 40);
-  int2 v2i2 = int2(40, 30);
-  int2 v2i3 = (35).xx;
-  float2 v2f3 = (70.0f).xx;
-  float3 v3f1 = float3(50.0f, 60.0f, 70.0f);
-  float3 v3f2 = float3(60.0f, 70.0f, 50.0f);
-  float4 v4f1 = (50.0f).xxxx;
-  float4 v4f2 = v4f1;
-  float2 x_1 = (60.0f).xx;
-}
-
-[numthreads(1, 1, 1)]
-void main() {
-  main_1();
-}
-
diff --git a/test/tint/unittest/reader/spirv/Samples_SpvParserTest_GlslStd450_Floating_FloatingFloating_Vector_2.spvasm.expected.ir.fxc.hlsl b/test/tint/unittest/reader/spirv/Samples_SpvParserTest_GlslStd450_Floating_FloatingFloating_Vector_2.spvasm.expected.ir.fxc.hlsl
deleted file mode 100644
index fd8a072..0000000
--- a/test/tint/unittest/reader/spirv/Samples_SpvParserTest_GlslStd450_Floating_FloatingFloating_Vector_2.spvasm.expected.ir.fxc.hlsl
+++ /dev/null
@@ -1,31 +0,0 @@
-SKIP: FAILED
-
-void main_1() {
-  uint u1 = 10u;
-  uint u2 = 15u;
-  uint u3 = 20u;
-  int i1 = 30;
-  int i2 = 35;
-  int i3 = 40;
-  float f1 = 50.0f;
-  float f2 = 60.0f;
-  float f3 = 70.0f;
-  uint2 v2u1 = uint2(10u, 20u);
-  uint2 v2u2 = uint2(20u, 10u);
-  uint2 v2u3 = (15u).xx;
-  int2 v2i1 = int2(30, 40);
-  int2 v2i2 = int2(40, 30);
-  int2 v2i3 = (35).xx;
-  float2 v2f3 = (70.0f).xx;
-  float3 v3f1 = float3(50.0f, 60.0f, 70.0f);
-  float3 v3f2 = float3(60.0f, 70.0f, 50.0f);
-  float4 v4f1 = (50.0f).xxxx;
-  float4 v4f2 = v4f1;
-  float2 x_1 = (50.0f).xx;
-}
-
-[numthreads(1, 1, 1)]
-void main() {
-  main_1();
-}
-
diff --git a/test/tint/unittest/reader/spirv/Samples_SpvParserTest_GlslStd450_Floating_FloatingFloating_Vector_3.spvasm.expected.ir.fxc.hlsl b/test/tint/unittest/reader/spirv/Samples_SpvParserTest_GlslStd450_Floating_FloatingFloating_Vector_3.spvasm.expected.ir.fxc.hlsl
deleted file mode 100644
index 913ab11..0000000
--- a/test/tint/unittest/reader/spirv/Samples_SpvParserTest_GlslStd450_Floating_FloatingFloating_Vector_3.spvasm.expected.ir.fxc.hlsl
+++ /dev/null
@@ -1,31 +0,0 @@
-SKIP: FAILED
-
-void main_1() {
-  uint u1 = 10u;
-  uint u2 = 15u;
-  uint u3 = 20u;
-  int i1 = 30;
-  int i2 = 35;
-  int i3 = 40;
-  float f1 = 50.0f;
-  float f2 = 60.0f;
-  float f3 = 70.0f;
-  uint2 v2u1 = uint2(10u, 20u);
-  uint2 v2u2 = uint2(20u, 10u);
-  uint2 v2u3 = (15u).xx;
-  int2 v2i1 = int2(30, 40);
-  int2 v2i2 = int2(40, 30);
-  int2 v2i3 = (35).xx;
-  float2 v2f3 = (70.0f).xx;
-  float3 v3f1 = float3(50.0f, 60.0f, 70.0f);
-  float3 v3f2 = float3(60.0f, 70.0f, 50.0f);
-  float4 v4f1 = (50.0f).xxxx;
-  float4 v4f2 = v4f1;
-  float2 x_1 = (60.0f).xx;
-}
-
-[numthreads(1, 1, 1)]
-void main() {
-  main_1();
-}
-
diff --git a/test/tint/unittest/reader/spirv/Samples_SpvParserTest_GlslStd450_Floating_FloatingFloating_Vector_4.spvasm.expected.ir.fxc.hlsl b/test/tint/unittest/reader/spirv/Samples_SpvParserTest_GlslStd450_Floating_FloatingFloating_Vector_4.spvasm.expected.ir.fxc.hlsl
deleted file mode 100644
index fd8a072..0000000
--- a/test/tint/unittest/reader/spirv/Samples_SpvParserTest_GlslStd450_Floating_FloatingFloating_Vector_4.spvasm.expected.ir.fxc.hlsl
+++ /dev/null
@@ -1,31 +0,0 @@
-SKIP: FAILED
-
-void main_1() {
-  uint u1 = 10u;
-  uint u2 = 15u;
-  uint u3 = 20u;
-  int i1 = 30;
-  int i2 = 35;
-  int i3 = 40;
-  float f1 = 50.0f;
-  float f2 = 60.0f;
-  float f3 = 70.0f;
-  uint2 v2u1 = uint2(10u, 20u);
-  uint2 v2u2 = uint2(20u, 10u);
-  uint2 v2u3 = (15u).xx;
-  int2 v2i1 = int2(30, 40);
-  int2 v2i2 = int2(40, 30);
-  int2 v2i3 = (35).xx;
-  float2 v2f3 = (70.0f).xx;
-  float3 v3f1 = float3(50.0f, 60.0f, 70.0f);
-  float3 v3f2 = float3(60.0f, 70.0f, 50.0f);
-  float4 v4f1 = (50.0f).xxxx;
-  float4 v4f2 = v4f1;
-  float2 x_1 = (50.0f).xx;
-}
-
-[numthreads(1, 1, 1)]
-void main() {
-  main_1();
-}
-
diff --git a/test/tint/unittest/reader/spirv/Samples_SpvParserTest_GlslStd450_Floating_FloatingFloating_Vector_5.spvasm.expected.ir.fxc.hlsl b/test/tint/unittest/reader/spirv/Samples_SpvParserTest_GlslStd450_Floating_FloatingFloating_Vector_5.spvasm.expected.ir.fxc.hlsl
deleted file mode 100644
index fd30bb6..0000000
--- a/test/tint/unittest/reader/spirv/Samples_SpvParserTest_GlslStd450_Floating_FloatingFloating_Vector_5.spvasm.expected.ir.fxc.hlsl
+++ /dev/null
@@ -1,31 +0,0 @@
-SKIP: FAILED
-
-void main_1() {
-  uint u1 = 10u;
-  uint u2 = 15u;
-  uint u3 = 20u;
-  int i1 = 30;
-  int i2 = 35;
-  int i3 = 40;
-  float f1 = 0.5f;
-  float f2 = 0.60000002384185791016f;
-  float f3 = 0.69999998807907104492f;
-  uint2 v2u1 = uint2(10u, 20u);
-  uint2 v2u2 = uint2(20u, 10u);
-  uint2 v2u3 = (15u).xx;
-  int2 v2i1 = int2(30, 40);
-  int2 v2i2 = int2(40, 30);
-  int2 v2i3 = (35).xx;
-  float2 v2f3 = (0.69999998807907104492f).xx;
-  float3 v3f1 = float3(0.5f, 0.60000002384185791016f, 0.69999998807907104492f);
-  float3 v3f2 = float3(0.60000002384185791016f, 0.69999998807907104492f, 0.5f);
-  float4 v4f1 = (0.5f).xxxx;
-  float4 v4f2 = v4f1;
-  float2 x_1 = float2(0.65975391864776611328f, 0.77459669113159179688f);
-}
-
-[numthreads(1, 1, 1)]
-void main() {
-  main_1();
-}
-
diff --git a/test/tint/unittest/reader/spirv/Samples_SpvParserTest_GlslStd450_Floating_FloatingFloating_Vector_6.spvasm.expected.ir.fxc.hlsl b/test/tint/unittest/reader/spirv/Samples_SpvParserTest_GlslStd450_Floating_FloatingFloating_Vector_6.spvasm.expected.ir.fxc.hlsl
deleted file mode 100644
index 8c51e9f..0000000
--- a/test/tint/unittest/reader/spirv/Samples_SpvParserTest_GlslStd450_Floating_FloatingFloating_Vector_6.spvasm.expected.ir.fxc.hlsl
+++ /dev/null
@@ -1,31 +0,0 @@
-SKIP: FAILED
-
-void main_1() {
-  uint u1 = 10u;
-  uint u2 = 15u;
-  uint u3 = 20u;
-  int i1 = 30;
-  int i2 = 35;
-  int i3 = 40;
-  float f1 = 50.0f;
-  float f2 = 60.0f;
-  float f3 = 70.0f;
-  uint2 v2u1 = uint2(10u, 20u);
-  uint2 v2u2 = uint2(20u, 10u);
-  uint2 v2u3 = (15u).xx;
-  int2 v2i1 = int2(30, 40);
-  int2 v2i2 = int2(40, 30);
-  int2 v2i3 = (35).xx;
-  float2 v2f3 = (70.0f).xx;
-  float3 v3f1 = float3(50.0f, 60.0f, 70.0f);
-  float3 v3f2 = float3(60.0f, 70.0f, 50.0f);
-  float4 v4f1 = (50.0f).xxxx;
-  float4 v4f2 = v4f1;
-  float2 x_1 = float2(1.0f, 0.0f);
-}
-
-[numthreads(1, 1, 1)]
-void main() {
-  main_1();
-}
-
diff --git a/test/tint/unittest/reader/spirv/Samples_SpvParserTest_GlslStd450_Floating_FloatingInting_Scalar_0.spvasm.expected.ir.fxc.hlsl b/test/tint/unittest/reader/spirv/Samples_SpvParserTest_GlslStd450_Floating_FloatingInting_Scalar_0.spvasm.expected.ir.fxc.hlsl
deleted file mode 100644
index 977333c..0000000
--- a/test/tint/unittest/reader/spirv/Samples_SpvParserTest_GlslStd450_Floating_FloatingInting_Scalar_0.spvasm.expected.ir.fxc.hlsl
+++ /dev/null
@@ -1,31 +0,0 @@
-SKIP: FAILED
-
-void main_1() {
-  uint u1 = 10u;
-  uint u2 = 15u;
-  uint u3 = 20u;
-  int i2 = 35;
-  int i3 = 40;
-  float f2 = 60.0f;
-  float f3 = 70.0f;
-  uint2 v2u1 = uint2(10u, 20u);
-  uint2 v2u2 = uint2(20u, 10u);
-  uint2 v2u3 = (15u).xx;
-  int2 v2i1 = int2(30, 40);
-  int2 v2i2 = int2(40, 30);
-  int2 v2i3 = (35).xx;
-  float2 v2f1 = float2(50.0f, 60.0f);
-  float2 v2f2 = float2(60.0f, 50.0f);
-  float2 v2f3 = (70.0f).xx;
-  float3 v3f1 = float3(50.0f, 60.0f, 70.0f);
-  float3 v3f2 = float3(60.0f, 70.0f, 50.0f);
-  float4 v4f1 = (50.0f).xxxx;
-  float4 v4f2 = v4f1;
-  float x_1 = 53687091200.0f;
-}
-
-[numthreads(1, 1, 1)]
-void main() {
-  main_1();
-}
-
diff --git a/test/tint/unittest/reader/spirv/Samples_SpvParserTest_GlslStd450_Floating_FloatingInting_Vector_0.spvasm.expected.ir.fxc.hlsl b/test/tint/unittest/reader/spirv/Samples_SpvParserTest_GlslStd450_Floating_FloatingInting_Vector_0.spvasm.expected.ir.fxc.hlsl
deleted file mode 100644
index aa894b2..0000000
--- a/test/tint/unittest/reader/spirv/Samples_SpvParserTest_GlslStd450_Floating_FloatingInting_Vector_0.spvasm.expected.ir.fxc.hlsl
+++ /dev/null
@@ -1,31 +0,0 @@
-SKIP: FAILED
-
-void main_1() {
-  uint u1 = 10u;
-  uint u2 = 15u;
-  uint u3 = 20u;
-  int i1 = 30;
-  int i2 = 35;
-  int i3 = 40;
-  float f1 = 50.0f;
-  float f2 = 60.0f;
-  float f3 = 70.0f;
-  uint2 v2u1 = uint2(10u, 20u);
-  uint2 v2u2 = uint2(20u, 10u);
-  uint2 v2u3 = (15u).xx;
-  int2 v2i2 = int2(40, 30);
-  int2 v2i3 = (35).xx;
-  float2 v2f2 = float2(60.0f, 50.0f);
-  float2 v2f3 = (70.0f).xx;
-  float3 v3f1 = float3(50.0f, 60.0f, 70.0f);
-  float3 v3f2 = float3(60.0f, 70.0f, 50.0f);
-  float4 v4f1 = (50.0f).xxxx;
-  float4 v4f2 = v4f1;
-  float2 x_1 = float2(53687091200.0f, 65970697666560.0f);
-}
-
-[numthreads(1, 1, 1)]
-void main() {
-  main_1();
-}
-
diff --git a/test/tint/unittest/reader/spirv/Samples_SpvParserTest_GlslStd450_Floating_FloatingUinting_Scalar_0.spvasm.expected.ir.fxc.hlsl b/test/tint/unittest/reader/spirv/Samples_SpvParserTest_GlslStd450_Floating_FloatingUinting_Scalar_0.spvasm.expected.ir.fxc.hlsl
deleted file mode 100644
index caea3e4..0000000
--- a/test/tint/unittest/reader/spirv/Samples_SpvParserTest_GlslStd450_Floating_FloatingUinting_Scalar_0.spvasm.expected.ir.fxc.hlsl
+++ /dev/null
@@ -1,31 +0,0 @@
-SKIP: FAILED
-
-void main_1() {
-  uint u2 = 15u;
-  uint u3 = 20u;
-  int i1 = 30;
-  int i2 = 35;
-  int i3 = 40;
-  float f2 = 60.0f;
-  float f3 = 70.0f;
-  uint2 v2u1 = uint2(10u, 20u);
-  uint2 v2u2 = uint2(20u, 10u);
-  uint2 v2u3 = (15u).xx;
-  int2 v2i1 = int2(30, 40);
-  int2 v2i2 = int2(40, 30);
-  int2 v2i3 = (35).xx;
-  float2 v2f1 = float2(50.0f, 60.0f);
-  float2 v2f2 = float2(60.0f, 50.0f);
-  float2 v2f3 = (70.0f).xx;
-  float3 v3f1 = float3(50.0f, 60.0f, 70.0f);
-  float3 v3f2 = float3(60.0f, 70.0f, 50.0f);
-  float4 v4f1 = (50.0f).xxxx;
-  float4 v4f2 = v4f1;
-  float x_1 = 51200.0f;
-}
-
-[numthreads(1, 1, 1)]
-void main() {
-  main_1();
-}
-
diff --git a/test/tint/unittest/reader/spirv/Samples_SpvParserTest_GlslStd450_Floating_FloatingUinting_Vector_0.spvasm.expected.ir.fxc.hlsl b/test/tint/unittest/reader/spirv/Samples_SpvParserTest_GlslStd450_Floating_FloatingUinting_Vector_0.spvasm.expected.ir.fxc.hlsl
deleted file mode 100644
index 2eadc05..0000000
--- a/test/tint/unittest/reader/spirv/Samples_SpvParserTest_GlslStd450_Floating_FloatingUinting_Vector_0.spvasm.expected.ir.fxc.hlsl
+++ /dev/null
@@ -1,31 +0,0 @@
-SKIP: FAILED
-
-void main_1() {
-  uint u1 = 10u;
-  uint u2 = 15u;
-  uint u3 = 20u;
-  int i1 = 30;
-  int i2 = 35;
-  int i3 = 40;
-  float f1 = 50.0f;
-  float f2 = 60.0f;
-  float f3 = 70.0f;
-  uint2 v2u2 = uint2(20u, 10u);
-  uint2 v2u3 = (15u).xx;
-  int2 v2i1 = int2(30, 40);
-  int2 v2i2 = int2(40, 30);
-  int2 v2i3 = (35).xx;
-  float2 v2f2 = float2(60.0f, 50.0f);
-  float2 v2f3 = (70.0f).xx;
-  float3 v3f1 = float3(50.0f, 60.0f, 70.0f);
-  float3 v3f2 = float3(60.0f, 70.0f, 50.0f);
-  float4 v4f1 = (50.0f).xxxx;
-  float4 v4f2 = v4f1;
-  float2 x_1 = float2(51200.0f, 62914560.0f);
-}
-
-[numthreads(1, 1, 1)]
-void main() {
-  main_1();
-}
-
diff --git a/test/tint/unittest/reader/spirv/Samples_SpvParserTest_GlslStd450_Floating_Floating_Scalar_0.spvasm.expected.ir.fxc.hlsl b/test/tint/unittest/reader/spirv/Samples_SpvParserTest_GlslStd450_Floating_Floating_Scalar_0.spvasm.expected.ir.fxc.hlsl
deleted file mode 100644
index 4113d1e..0000000
--- a/test/tint/unittest/reader/spirv/Samples_SpvParserTest_GlslStd450_Floating_Floating_Scalar_0.spvasm.expected.ir.fxc.hlsl
+++ /dev/null
@@ -1,32 +0,0 @@
-SKIP: FAILED
-
-void main_1() {
-  uint u1 = 10u;
-  uint u2 = 15u;
-  uint u3 = 20u;
-  int i1 = 30;
-  int i2 = 35;
-  int i3 = 40;
-  float f2 = 0.60000002384185791016f;
-  float f3 = 0.69999998807907104492f;
-  uint2 v2u1 = uint2(10u, 20u);
-  uint2 v2u2 = uint2(20u, 10u);
-  uint2 v2u3 = (15u).xx;
-  int2 v2i1 = int2(30, 40);
-  int2 v2i2 = int2(40, 30);
-  int2 v2i3 = (35).xx;
-  float2 v2f1 = float2(0.5f, 0.60000002384185791016f);
-  float2 v2f2 = float2(0.60000002384185791016f, 0.5f);
-  float2 v2f3 = (0.69999998807907104492f).xx;
-  float3 v3f1 = float3(0.5f, 0.60000002384185791016f, 0.69999998807907104492f);
-  float3 v3f2 = float3(0.60000002384185791016f, 0.69999998807907104492f, 0.5f);
-  float4 v4f1 = (0.5f).xxxx;
-  float4 v4f2 = v4f1;
-  float x_1 = 1.04719758033752441406f;
-}
-
-[numthreads(1, 1, 1)]
-void main() {
-  main_1();
-}
-
diff --git a/test/tint/unittest/reader/spirv/Samples_SpvParserTest_GlslStd450_Floating_Floating_Scalar_1.spvasm.expected.ir.fxc.hlsl b/test/tint/unittest/reader/spirv/Samples_SpvParserTest_GlslStd450_Floating_Floating_Scalar_1.spvasm.expected.ir.fxc.hlsl
deleted file mode 100644
index ce66c65..0000000
--- a/test/tint/unittest/reader/spirv/Samples_SpvParserTest_GlslStd450_Floating_Floating_Scalar_1.spvasm.expected.ir.fxc.hlsl
+++ /dev/null
@@ -1,32 +0,0 @@
-SKIP: FAILED
-
-void main_1() {
-  uint u1 = 10u;
-  uint u2 = 15u;
-  uint u3 = 20u;
-  int i1 = 30;
-  int i2 = 35;
-  int i3 = 40;
-  float f2 = 0.60000002384185791016f;
-  float f3 = 0.69999998807907104492f;
-  uint2 v2u1 = uint2(10u, 20u);
-  uint2 v2u2 = uint2(20u, 10u);
-  uint2 v2u3 = (15u).xx;
-  int2 v2i1 = int2(30, 40);
-  int2 v2i2 = int2(40, 30);
-  int2 v2i3 = (35).xx;
-  float2 v2f1 = float2(0.5f, 0.60000002384185791016f);
-  float2 v2f2 = float2(0.60000002384185791016f, 0.5f);
-  float2 v2f3 = (0.69999998807907104492f).xx;
-  float3 v3f1 = float3(0.5f, 0.60000002384185791016f, 0.69999998807907104492f);
-  float3 v3f2 = float3(0.60000002384185791016f, 0.69999998807907104492f, 0.5f);
-  float4 v4f1 = (0.5f).xxxx;
-  float4 v4f2 = v4f1;
-  float x_1 = 0.52359879016876220703f;
-}
-
-[numthreads(1, 1, 1)]
-void main() {
-  main_1();
-}
-
diff --git a/test/tint/unittest/reader/spirv/Samples_SpvParserTest_GlslStd450_Floating_Floating_Scalar_10.spvasm.expected.ir.fxc.hlsl b/test/tint/unittest/reader/spirv/Samples_SpvParserTest_GlslStd450_Floating_Floating_Scalar_10.spvasm.expected.ir.fxc.hlsl
deleted file mode 100644
index 3665ef0..0000000
--- a/test/tint/unittest/reader/spirv/Samples_SpvParserTest_GlslStd450_Floating_Floating_Scalar_10.spvasm.expected.ir.fxc.hlsl
+++ /dev/null
@@ -1,32 +0,0 @@
-SKIP: FAILED
-
-void main_1() {
-  uint u1 = 10u;
-  uint u2 = 15u;
-  uint u3 = 20u;
-  int i1 = 30;
-  int i2 = 35;
-  int i3 = 40;
-  float f2 = 60.0f;
-  float f3 = 70.0f;
-  uint2 v2u1 = uint2(10u, 20u);
-  uint2 v2u2 = uint2(20u, 10u);
-  uint2 v2u3 = (15u).xx;
-  int2 v2i1 = int2(30, 40);
-  int2 v2i2 = int2(40, 30);
-  int2 v2i3 = (35).xx;
-  float2 v2f1 = float2(50.0f, 60.0f);
-  float2 v2f2 = float2(60.0f, 50.0f);
-  float2 v2f3 = (70.0f).xx;
-  float3 v3f1 = float3(50.0f, 60.0f, 70.0f);
-  float3 v3f2 = float3(60.0f, 70.0f, 50.0f);
-  float4 v4f1 = (50.0f).xxxx;
-  float4 v4f2 = v4f1;
-  float x_1 = 50.0f;
-}
-
-[numthreads(1, 1, 1)]
-void main() {
-  main_1();
-}
-
diff --git a/test/tint/unittest/reader/spirv/Samples_SpvParserTest_GlslStd450_Floating_Floating_Scalar_11.spvasm.expected.ir.fxc.hlsl b/test/tint/unittest/reader/spirv/Samples_SpvParserTest_GlslStd450_Floating_Floating_Scalar_11.spvasm.expected.ir.fxc.hlsl
deleted file mode 100644
index 01e5be7..0000000
--- a/test/tint/unittest/reader/spirv/Samples_SpvParserTest_GlslStd450_Floating_Floating_Scalar_11.spvasm.expected.ir.fxc.hlsl
+++ /dev/null
@@ -1,32 +0,0 @@
-SKIP: FAILED
-
-void main_1() {
-  uint u1 = 10u;
-  uint u2 = 15u;
-  uint u3 = 20u;
-  int i1 = 30;
-  int i2 = 35;
-  int i3 = 40;
-  float f2 = 60.0f;
-  float f3 = 70.0f;
-  uint2 v2u1 = uint2(10u, 20u);
-  uint2 v2u2 = uint2(20u, 10u);
-  uint2 v2u3 = (15u).xx;
-  int2 v2i1 = int2(30, 40);
-  int2 v2i2 = int2(40, 30);
-  int2 v2i3 = (35).xx;
-  float2 v2f1 = float2(50.0f, 60.0f);
-  float2 v2f2 = float2(60.0f, 50.0f);
-  float2 v2f3 = (70.0f).xx;
-  float3 v3f1 = float3(50.0f, 60.0f, 70.0f);
-  float3 v3f2 = float3(60.0f, 70.0f, 50.0f);
-  float4 v4f1 = (50.0f).xxxx;
-  float4 v4f2 = v4f1;
-  float x_1 = 0.0f;
-}
-
-[numthreads(1, 1, 1)]
-void main() {
-  main_1();
-}
-
diff --git a/test/tint/unittest/reader/spirv/Samples_SpvParserTest_GlslStd450_Floating_Floating_Scalar_12.spvasm.expected.ir.fxc.hlsl b/test/tint/unittest/reader/spirv/Samples_SpvParserTest_GlslStd450_Floating_Floating_Scalar_12.spvasm.expected.ir.fxc.hlsl
deleted file mode 100644
index 8f667a2..0000000
--- a/test/tint/unittest/reader/spirv/Samples_SpvParserTest_GlslStd450_Floating_Floating_Scalar_12.spvasm.expected.ir.fxc.hlsl
+++ /dev/null
@@ -1,32 +0,0 @@
-SKIP: FAILED
-
-void main_1() {
-  uint u1 = 10u;
-  uint u2 = 15u;
-  uint u3 = 20u;
-  int i1 = 30;
-  int i2 = 35;
-  int i3 = 40;
-  float f2 = 60.0f;
-  float f3 = 70.0f;
-  uint2 v2u1 = uint2(10u, 20u);
-  uint2 v2u2 = uint2(20u, 10u);
-  uint2 v2u3 = (15u).xx;
-  int2 v2i1 = int2(30, 40);
-  int2 v2i2 = int2(40, 30);
-  int2 v2i3 = (35).xx;
-  float2 v2f1 = float2(50.0f, 60.0f);
-  float2 v2f2 = float2(60.0f, 50.0f);
-  float2 v2f3 = (70.0f).xx;
-  float3 v3f1 = float3(50.0f, 60.0f, 70.0f);
-  float3 v3f2 = float3(60.0f, 70.0f, 50.0f);
-  float4 v4f1 = (50.0f).xxxx;
-  float4 v4f2 = v4f1;
-  float x_1 = 0.14142136275768280029f;
-}
-
-[numthreads(1, 1, 1)]
-void main() {
-  main_1();
-}
-
diff --git a/test/tint/unittest/reader/spirv/Samples_SpvParserTest_GlslStd450_Floating_Floating_Scalar_13.spvasm.expected.ir.fxc.hlsl b/test/tint/unittest/reader/spirv/Samples_SpvParserTest_GlslStd450_Floating_Floating_Scalar_13.spvasm.expected.ir.fxc.hlsl
deleted file mode 100644
index d2c42a0..0000000
--- a/test/tint/unittest/reader/spirv/Samples_SpvParserTest_GlslStd450_Floating_Floating_Scalar_13.spvasm.expected.ir.fxc.hlsl
+++ /dev/null
@@ -1,32 +0,0 @@
-SKIP: FAILED
-
-void main_1() {
-  uint u1 = 10u;
-  uint u2 = 15u;
-  uint u3 = 20u;
-  int i1 = 30;
-  int i2 = 35;
-  int i3 = 40;
-  float f2 = 60.0f;
-  float f3 = 70.0f;
-  uint2 v2u1 = uint2(10u, 20u);
-  uint2 v2u2 = uint2(20u, 10u);
-  uint2 v2u3 = (15u).xx;
-  int2 v2i1 = int2(30, 40);
-  int2 v2i2 = int2(40, 30);
-  int2 v2i3 = (35).xx;
-  float2 v2f1 = float2(50.0f, 60.0f);
-  float2 v2f2 = float2(60.0f, 50.0f);
-  float2 v2f3 = (70.0f).xx;
-  float3 v3f1 = float3(50.0f, 60.0f, 70.0f);
-  float3 v3f2 = float3(60.0f, 70.0f, 50.0f);
-  float4 v4f1 = (50.0f).xxxx;
-  float4 v4f2 = v4f1;
-  float x_1 = 3.91202306747436523438f;
-}
-
-[numthreads(1, 1, 1)]
-void main() {
-  main_1();
-}
-
diff --git a/test/tint/unittest/reader/spirv/Samples_SpvParserTest_GlslStd450_Floating_Floating_Scalar_14.spvasm.expected.ir.fxc.hlsl b/test/tint/unittest/reader/spirv/Samples_SpvParserTest_GlslStd450_Floating_Floating_Scalar_14.spvasm.expected.ir.fxc.hlsl
deleted file mode 100644
index 11951aa..0000000
--- a/test/tint/unittest/reader/spirv/Samples_SpvParserTest_GlslStd450_Floating_Floating_Scalar_14.spvasm.expected.ir.fxc.hlsl
+++ /dev/null
@@ -1,32 +0,0 @@
-SKIP: FAILED
-
-void main_1() {
-  uint u1 = 10u;
-  uint u2 = 15u;
-  uint u3 = 20u;
-  int i1 = 30;
-  int i2 = 35;
-  int i3 = 40;
-  float f2 = 60.0f;
-  float f3 = 70.0f;
-  uint2 v2u1 = uint2(10u, 20u);
-  uint2 v2u2 = uint2(20u, 10u);
-  uint2 v2u3 = (15u).xx;
-  int2 v2i1 = int2(30, 40);
-  int2 v2i2 = int2(40, 30);
-  int2 v2i3 = (35).xx;
-  float2 v2f1 = float2(50.0f, 60.0f);
-  float2 v2f2 = float2(60.0f, 50.0f);
-  float2 v2f3 = (70.0f).xx;
-  float3 v3f1 = float3(50.0f, 60.0f, 70.0f);
-  float3 v3f2 = float3(60.0f, 70.0f, 50.0f);
-  float4 v4f1 = (50.0f).xxxx;
-  float4 v4f2 = v4f1;
-  float x_1 = 5.643856048583984375f;
-}
-
-[numthreads(1, 1, 1)]
-void main() {
-  main_1();
-}
-
diff --git a/test/tint/unittest/reader/spirv/Samples_SpvParserTest_GlslStd450_Floating_Floating_Scalar_15.spvasm.expected.ir.fxc.hlsl b/test/tint/unittest/reader/spirv/Samples_SpvParserTest_GlslStd450_Floating_Floating_Scalar_15.spvasm.expected.ir.fxc.hlsl
deleted file mode 100644
index 3665ef0..0000000
--- a/test/tint/unittest/reader/spirv/Samples_SpvParserTest_GlslStd450_Floating_Floating_Scalar_15.spvasm.expected.ir.fxc.hlsl
+++ /dev/null
@@ -1,32 +0,0 @@
-SKIP: FAILED
-
-void main_1() {
-  uint u1 = 10u;
-  uint u2 = 15u;
-  uint u3 = 20u;
-  int i1 = 30;
-  int i2 = 35;
-  int i3 = 40;
-  float f2 = 60.0f;
-  float f3 = 70.0f;
-  uint2 v2u1 = uint2(10u, 20u);
-  uint2 v2u2 = uint2(20u, 10u);
-  uint2 v2u3 = (15u).xx;
-  int2 v2i1 = int2(30, 40);
-  int2 v2i2 = int2(40, 30);
-  int2 v2i3 = (35).xx;
-  float2 v2f1 = float2(50.0f, 60.0f);
-  float2 v2f2 = float2(60.0f, 50.0f);
-  float2 v2f3 = (70.0f).xx;
-  float3 v3f1 = float3(50.0f, 60.0f, 70.0f);
-  float3 v3f2 = float3(60.0f, 70.0f, 50.0f);
-  float4 v4f1 = (50.0f).xxxx;
-  float4 v4f2 = v4f1;
-  float x_1 = 50.0f;
-}
-
-[numthreads(1, 1, 1)]
-void main() {
-  main_1();
-}
-
diff --git a/test/tint/unittest/reader/spirv/Samples_SpvParserTest_GlslStd450_Floating_Floating_Scalar_16.spvasm.expected.ir.fxc.hlsl b/test/tint/unittest/reader/spirv/Samples_SpvParserTest_GlslStd450_Floating_Floating_Scalar_16.spvasm.expected.ir.fxc.hlsl
deleted file mode 100644
index 3665ef0..0000000
--- a/test/tint/unittest/reader/spirv/Samples_SpvParserTest_GlslStd450_Floating_Floating_Scalar_16.spvasm.expected.ir.fxc.hlsl
+++ /dev/null
@@ -1,32 +0,0 @@
-SKIP: FAILED
-
-void main_1() {
-  uint u1 = 10u;
-  uint u2 = 15u;
-  uint u3 = 20u;
-  int i1 = 30;
-  int i2 = 35;
-  int i3 = 40;
-  float f2 = 60.0f;
-  float f3 = 70.0f;
-  uint2 v2u1 = uint2(10u, 20u);
-  uint2 v2u2 = uint2(20u, 10u);
-  uint2 v2u3 = (15u).xx;
-  int2 v2i1 = int2(30, 40);
-  int2 v2i2 = int2(40, 30);
-  int2 v2i3 = (35).xx;
-  float2 v2f1 = float2(50.0f, 60.0f);
-  float2 v2f2 = float2(60.0f, 50.0f);
-  float2 v2f3 = (70.0f).xx;
-  float3 v3f1 = float3(50.0f, 60.0f, 70.0f);
-  float3 v3f2 = float3(60.0f, 70.0f, 50.0f);
-  float4 v4f1 = (50.0f).xxxx;
-  float4 v4f2 = v4f1;
-  float x_1 = 50.0f;
-}
-
-[numthreads(1, 1, 1)]
-void main() {
-  main_1();
-}
-
diff --git a/test/tint/unittest/reader/spirv/Samples_SpvParserTest_GlslStd450_Floating_Floating_Scalar_17.spvasm.expected.ir.fxc.hlsl b/test/tint/unittest/reader/spirv/Samples_SpvParserTest_GlslStd450_Floating_Floating_Scalar_17.spvasm.expected.ir.fxc.hlsl
deleted file mode 100644
index 136fd5e..0000000
--- a/test/tint/unittest/reader/spirv/Samples_SpvParserTest_GlslStd450_Floating_Floating_Scalar_17.spvasm.expected.ir.fxc.hlsl
+++ /dev/null
@@ -1,32 +0,0 @@
-SKIP: FAILED
-
-void main_1() {
-  uint u1 = 10u;
-  uint u2 = 15u;
-  uint u3 = 20u;
-  int i1 = 30;
-  int i2 = 35;
-  int i3 = 40;
-  float f2 = 60.0f;
-  float f3 = 70.0f;
-  uint2 v2u1 = uint2(10u, 20u);
-  uint2 v2u2 = uint2(20u, 10u);
-  uint2 v2u3 = (15u).xx;
-  int2 v2i1 = int2(30, 40);
-  int2 v2i2 = int2(40, 30);
-  int2 v2i3 = (35).xx;
-  float2 v2f1 = float2(50.0f, 60.0f);
-  float2 v2f2 = float2(60.0f, 50.0f);
-  float2 v2f3 = (70.0f).xx;
-  float3 v3f1 = float3(50.0f, 60.0f, 70.0f);
-  float3 v3f2 = float3(60.0f, 70.0f, 50.0f);
-  float4 v4f1 = (50.0f).xxxx;
-  float4 v4f2 = v4f1;
-  float x_1 = -0.2623748481273651123f;
-}
-
-[numthreads(1, 1, 1)]
-void main() {
-  main_1();
-}
-
diff --git a/test/tint/unittest/reader/spirv/Samples_SpvParserTest_GlslStd450_Floating_Floating_Scalar_18.spvasm.expected.ir.fxc.hlsl b/test/tint/unittest/reader/spirv/Samples_SpvParserTest_GlslStd450_Floating_Floating_Scalar_18.spvasm.expected.ir.fxc.hlsl
deleted file mode 100644
index 64e19be..0000000
--- a/test/tint/unittest/reader/spirv/Samples_SpvParserTest_GlslStd450_Floating_Floating_Scalar_18.spvasm.expected.ir.fxc.hlsl
+++ /dev/null
@@ -1,32 +0,0 @@
-SKIP: FAILED
-
-void main_1() {
-  uint u1 = 10u;
-  uint u2 = 15u;
-  uint u3 = 20u;
-  int i1 = 30;
-  int i2 = 35;
-  int i3 = 40;
-  float f2 = 60.0f;
-  float f3 = 70.0f;
-  uint2 v2u1 = uint2(10u, 20u);
-  uint2 v2u2 = uint2(20u, 10u);
-  uint2 v2u3 = (15u).xx;
-  int2 v2i1 = int2(30, 40);
-  int2 v2i2 = int2(40, 30);
-  int2 v2i3 = (35).xx;
-  float2 v2f1 = float2(50.0f, 60.0f);
-  float2 v2f2 = float2(60.0f, 50.0f);
-  float2 v2f3 = (70.0f).xx;
-  float3 v3f1 = float3(50.0f, 60.0f, 70.0f);
-  float3 v3f2 = float3(60.0f, 70.0f, 50.0f);
-  float4 v4f1 = (50.0f).xxxx;
-  float4 v4f2 = v4f1;
-  float x_1 = 2592352728832773455872.0f;
-}
-
-[numthreads(1, 1, 1)]
-void main() {
-  main_1();
-}
-
diff --git a/test/tint/unittest/reader/spirv/Samples_SpvParserTest_GlslStd450_Floating_Floating_Scalar_19.spvasm.expected.ir.fxc.hlsl b/test/tint/unittest/reader/spirv/Samples_SpvParserTest_GlslStd450_Floating_Floating_Scalar_19.spvasm.expected.ir.fxc.hlsl
deleted file mode 100644
index 7550916..0000000
--- a/test/tint/unittest/reader/spirv/Samples_SpvParserTest_GlslStd450_Floating_Floating_Scalar_19.spvasm.expected.ir.fxc.hlsl
+++ /dev/null
@@ -1,32 +0,0 @@
-SKIP: FAILED
-
-void main_1() {
-  uint u1 = 10u;
-  uint u2 = 15u;
-  uint u3 = 20u;
-  int i1 = 30;
-  int i2 = 35;
-  int i3 = 40;
-  float f2 = 60.0f;
-  float f3 = 70.0f;
-  uint2 v2u1 = uint2(10u, 20u);
-  uint2 v2u2 = uint2(20u, 10u);
-  uint2 v2u3 = (15u).xx;
-  int2 v2i1 = int2(30, 40);
-  int2 v2i2 = int2(40, 30);
-  int2 v2i3 = (35).xx;
-  float2 v2f1 = float2(50.0f, 60.0f);
-  float2 v2f2 = float2(60.0f, 50.0f);
-  float2 v2f3 = (70.0f).xx;
-  float3 v3f1 = float3(50.0f, 60.0f, 70.0f);
-  float3 v3f2 = float3(60.0f, 70.0f, 50.0f);
-  float4 v4f1 = (50.0f).xxxx;
-  float4 v4f2 = v4f1;
-  float x_1 = 7.07106781005859375f;
-}
-
-[numthreads(1, 1, 1)]
-void main() {
-  main_1();
-}
-
diff --git a/test/tint/unittest/reader/spirv/Samples_SpvParserTest_GlslStd450_Floating_Floating_Scalar_2.spvasm.expected.ir.fxc.hlsl b/test/tint/unittest/reader/spirv/Samples_SpvParserTest_GlslStd450_Floating_Floating_Scalar_2.spvasm.expected.ir.fxc.hlsl
deleted file mode 100644
index beabf4a..0000000
--- a/test/tint/unittest/reader/spirv/Samples_SpvParserTest_GlslStd450_Floating_Floating_Scalar_2.spvasm.expected.ir.fxc.hlsl
+++ /dev/null
@@ -1,32 +0,0 @@
-SKIP: FAILED
-
-void main_1() {
-  uint u1 = 10u;
-  uint u2 = 15u;
-  uint u3 = 20u;
-  int i1 = 30;
-  int i2 = 35;
-  int i3 = 40;
-  float f2 = 60.0f;
-  float f3 = 70.0f;
-  uint2 v2u1 = uint2(10u, 20u);
-  uint2 v2u2 = uint2(20u, 10u);
-  uint2 v2u3 = (15u).xx;
-  int2 v2i1 = int2(30, 40);
-  int2 v2i2 = int2(40, 30);
-  int2 v2i3 = (35).xx;
-  float2 v2f1 = float2(50.0f, 60.0f);
-  float2 v2f2 = float2(60.0f, 50.0f);
-  float2 v2f3 = (70.0f).xx;
-  float3 v3f1 = float3(50.0f, 60.0f, 70.0f);
-  float3 v3f2 = float3(60.0f, 70.0f, 50.0f);
-  float4 v4f1 = (50.0f).xxxx;
-  float4 v4f2 = v4f1;
-  float x_1 = 1.55079901218414306641f;
-}
-
-[numthreads(1, 1, 1)]
-void main() {
-  main_1();
-}
-
diff --git a/test/tint/unittest/reader/spirv/Samples_SpvParserTest_GlslStd450_Floating_Floating_Scalar_20.spvasm.expected.ir.fxc.hlsl b/test/tint/unittest/reader/spirv/Samples_SpvParserTest_GlslStd450_Floating_Floating_Scalar_20.spvasm.expected.ir.fxc.hlsl
deleted file mode 100644
index 53c9e64..0000000
--- a/test/tint/unittest/reader/spirv/Samples_SpvParserTest_GlslStd450_Floating_Floating_Scalar_20.spvasm.expected.ir.fxc.hlsl
+++ /dev/null
@@ -1,32 +0,0 @@
-SKIP: FAILED
-
-void main_1() {
-  uint u1 = 10u;
-  uint u2 = 15u;
-  uint u3 = 20u;
-  int i1 = 30;
-  int i2 = 35;
-  int i3 = 40;
-  float f2 = 60.0f;
-  float f3 = 70.0f;
-  uint2 v2u1 = uint2(10u, 20u);
-  uint2 v2u2 = uint2(20u, 10u);
-  uint2 v2u3 = (15u).xx;
-  int2 v2i1 = int2(30, 40);
-  int2 v2i2 = int2(40, 30);
-  int2 v2i3 = (35).xx;
-  float2 v2f1 = float2(50.0f, 60.0f);
-  float2 v2f2 = float2(60.0f, 50.0f);
-  float2 v2f3 = (70.0f).xx;
-  float3 v3f1 = float3(50.0f, 60.0f, 70.0f);
-  float3 v3f2 = float3(60.0f, 70.0f, 50.0f);
-  float4 v4f1 = (50.0f).xxxx;
-  float4 v4f2 = v4f1;
-  float x_1 = -0.27190062403678894043f;
-}
-
-[numthreads(1, 1, 1)]
-void main() {
-  main_1();
-}
-
diff --git a/test/tint/unittest/reader/spirv/Samples_SpvParserTest_GlslStd450_Floating_Floating_Scalar_21.spvasm.expected.ir.fxc.hlsl b/test/tint/unittest/reader/spirv/Samples_SpvParserTest_GlslStd450_Floating_Floating_Scalar_21.spvasm.expected.ir.fxc.hlsl
deleted file mode 100644
index 5f923b5..0000000
--- a/test/tint/unittest/reader/spirv/Samples_SpvParserTest_GlslStd450_Floating_Floating_Scalar_21.spvasm.expected.ir.fxc.hlsl
+++ /dev/null
@@ -1,32 +0,0 @@
-SKIP: FAILED
-
-void main_1() {
-  uint u1 = 10u;
-  uint u2 = 15u;
-  uint u3 = 20u;
-  int i1 = 30;
-  int i2 = 35;
-  int i3 = 40;
-  float f2 = 60.0f;
-  float f3 = 70.0f;
-  uint2 v2u1 = uint2(10u, 20u);
-  uint2 v2u2 = uint2(20u, 10u);
-  uint2 v2u3 = (15u).xx;
-  int2 v2i1 = int2(30, 40);
-  int2 v2i2 = int2(40, 30);
-  int2 v2i3 = (35).xx;
-  float2 v2f1 = float2(50.0f, 60.0f);
-  float2 v2f2 = float2(60.0f, 50.0f);
-  float2 v2f3 = (70.0f).xx;
-  float3 v3f1 = float3(50.0f, 60.0f, 70.0f);
-  float3 v3f2 = float3(60.0f, 70.0f, 50.0f);
-  float4 v4f1 = (50.0f).xxxx;
-  float4 v4f2 = v4f1;
-  float x_1 = 1.0f;
-}
-
-[numthreads(1, 1, 1)]
-void main() {
-  main_1();
-}
-
diff --git a/test/tint/unittest/reader/spirv/Samples_SpvParserTest_GlslStd450_Floating_Floating_Scalar_22.spvasm.expected.ir.fxc.hlsl b/test/tint/unittest/reader/spirv/Samples_SpvParserTest_GlslStd450_Floating_Floating_Scalar_22.spvasm.expected.ir.fxc.hlsl
deleted file mode 100644
index 3665ef0..0000000
--- a/test/tint/unittest/reader/spirv/Samples_SpvParserTest_GlslStd450_Floating_Floating_Scalar_22.spvasm.expected.ir.fxc.hlsl
+++ /dev/null
@@ -1,32 +0,0 @@
-SKIP: FAILED
-
-void main_1() {
-  uint u1 = 10u;
-  uint u2 = 15u;
-  uint u3 = 20u;
-  int i1 = 30;
-  int i2 = 35;
-  int i3 = 40;
-  float f2 = 60.0f;
-  float f3 = 70.0f;
-  uint2 v2u1 = uint2(10u, 20u);
-  uint2 v2u2 = uint2(20u, 10u);
-  uint2 v2u3 = (15u).xx;
-  int2 v2i1 = int2(30, 40);
-  int2 v2i2 = int2(40, 30);
-  int2 v2i3 = (35).xx;
-  float2 v2f1 = float2(50.0f, 60.0f);
-  float2 v2f2 = float2(60.0f, 50.0f);
-  float2 v2f3 = (70.0f).xx;
-  float3 v3f1 = float3(50.0f, 60.0f, 70.0f);
-  float3 v3f2 = float3(60.0f, 70.0f, 50.0f);
-  float4 v4f1 = (50.0f).xxxx;
-  float4 v4f2 = v4f1;
-  float x_1 = 50.0f;
-}
-
-[numthreads(1, 1, 1)]
-void main() {
-  main_1();
-}
-
diff --git a/test/tint/unittest/reader/spirv/Samples_SpvParserTest_GlslStd450_Floating_Floating_Scalar_3.spvasm.expected.ir.fxc.hlsl b/test/tint/unittest/reader/spirv/Samples_SpvParserTest_GlslStd450_Floating_Floating_Scalar_3.spvasm.expected.ir.fxc.hlsl
deleted file mode 100644
index 3665ef0..0000000
--- a/test/tint/unittest/reader/spirv/Samples_SpvParserTest_GlslStd450_Floating_Floating_Scalar_3.spvasm.expected.ir.fxc.hlsl
+++ /dev/null
@@ -1,32 +0,0 @@
-SKIP: FAILED
-
-void main_1() {
-  uint u1 = 10u;
-  uint u2 = 15u;
-  uint u3 = 20u;
-  int i1 = 30;
-  int i2 = 35;
-  int i3 = 40;
-  float f2 = 60.0f;
-  float f3 = 70.0f;
-  uint2 v2u1 = uint2(10u, 20u);
-  uint2 v2u2 = uint2(20u, 10u);
-  uint2 v2u3 = (15u).xx;
-  int2 v2i1 = int2(30, 40);
-  int2 v2i2 = int2(40, 30);
-  int2 v2i3 = (35).xx;
-  float2 v2f1 = float2(50.0f, 60.0f);
-  float2 v2f2 = float2(60.0f, 50.0f);
-  float2 v2f3 = (70.0f).xx;
-  float3 v3f1 = float3(50.0f, 60.0f, 70.0f);
-  float3 v3f2 = float3(60.0f, 70.0f, 50.0f);
-  float4 v4f1 = (50.0f).xxxx;
-  float4 v4f2 = v4f1;
-  float x_1 = 50.0f;
-}
-
-[numthreads(1, 1, 1)]
-void main() {
-  main_1();
-}
-
diff --git a/test/tint/unittest/reader/spirv/Samples_SpvParserTest_GlslStd450_Floating_Floating_Scalar_4.spvasm.expected.ir.fxc.hlsl b/test/tint/unittest/reader/spirv/Samples_SpvParserTest_GlslStd450_Floating_Floating_Scalar_4.spvasm.expected.ir.fxc.hlsl
deleted file mode 100644
index b494030..0000000
--- a/test/tint/unittest/reader/spirv/Samples_SpvParserTest_GlslStd450_Floating_Floating_Scalar_4.spvasm.expected.ir.fxc.hlsl
+++ /dev/null
@@ -1,32 +0,0 @@
-SKIP: FAILED
-
-void main_1() {
-  uint u1 = 10u;
-  uint u2 = 15u;
-  uint u3 = 20u;
-  int i1 = 30;
-  int i2 = 35;
-  int i3 = 40;
-  float f2 = 60.0f;
-  float f3 = 70.0f;
-  uint2 v2u1 = uint2(10u, 20u);
-  uint2 v2u2 = uint2(20u, 10u);
-  uint2 v2u3 = (15u).xx;
-  int2 v2i1 = int2(30, 40);
-  int2 v2i2 = int2(40, 30);
-  int2 v2i3 = (35).xx;
-  float2 v2f1 = float2(50.0f, 60.0f);
-  float2 v2f2 = float2(60.0f, 50.0f);
-  float2 v2f3 = (70.0f).xx;
-  float3 v3f1 = float3(50.0f, 60.0f, 70.0f);
-  float3 v3f2 = float3(60.0f, 70.0f, 50.0f);
-  float4 v4f1 = (50.0f).xxxx;
-  float4 v4f2 = v4f1;
-  float x_1 = 0.96496599912643432617f;
-}
-
-[numthreads(1, 1, 1)]
-void main() {
-  main_1();
-}
-
diff --git a/test/tint/unittest/reader/spirv/Samples_SpvParserTest_GlslStd450_Floating_Floating_Scalar_5.spvasm.expected.ir.fxc.hlsl b/test/tint/unittest/reader/spirv/Samples_SpvParserTest_GlslStd450_Floating_Floating_Scalar_5.spvasm.expected.ir.fxc.hlsl
deleted file mode 100644
index 64e19be..0000000
--- a/test/tint/unittest/reader/spirv/Samples_SpvParserTest_GlslStd450_Floating_Floating_Scalar_5.spvasm.expected.ir.fxc.hlsl
+++ /dev/null
@@ -1,32 +0,0 @@
-SKIP: FAILED
-
-void main_1() {
-  uint u1 = 10u;
-  uint u2 = 15u;
-  uint u3 = 20u;
-  int i1 = 30;
-  int i2 = 35;
-  int i3 = 40;
-  float f2 = 60.0f;
-  float f3 = 70.0f;
-  uint2 v2u1 = uint2(10u, 20u);
-  uint2 v2u2 = uint2(20u, 10u);
-  uint2 v2u3 = (15u).xx;
-  int2 v2i1 = int2(30, 40);
-  int2 v2i2 = int2(40, 30);
-  int2 v2i3 = (35).xx;
-  float2 v2f1 = float2(50.0f, 60.0f);
-  float2 v2f2 = float2(60.0f, 50.0f);
-  float2 v2f3 = (70.0f).xx;
-  float3 v3f1 = float3(50.0f, 60.0f, 70.0f);
-  float3 v3f2 = float3(60.0f, 70.0f, 50.0f);
-  float4 v4f1 = (50.0f).xxxx;
-  float4 v4f2 = v4f1;
-  float x_1 = 2592352728832773455872.0f;
-}
-
-[numthreads(1, 1, 1)]
-void main() {
-  main_1();
-}
-
diff --git a/test/tint/unittest/reader/spirv/Samples_SpvParserTest_GlslStd450_Floating_Floating_Scalar_6.spvasm.expected.ir.fxc.hlsl b/test/tint/unittest/reader/spirv/Samples_SpvParserTest_GlslStd450_Floating_Floating_Scalar_6.spvasm.expected.ir.fxc.hlsl
deleted file mode 100644
index 59d373e..0000000
--- a/test/tint/unittest/reader/spirv/Samples_SpvParserTest_GlslStd450_Floating_Floating_Scalar_6.spvasm.expected.ir.fxc.hlsl
+++ /dev/null
@@ -1,32 +0,0 @@
-SKIP: FAILED
-
-void main_1() {
-  uint u1 = 10u;
-  uint u2 = 15u;
-  uint u3 = 20u;
-  int i1 = 30;
-  int i2 = 35;
-  int i3 = 40;
-  float f2 = 60.0f;
-  float f3 = 70.0f;
-  uint2 v2u1 = uint2(10u, 20u);
-  uint2 v2u2 = uint2(20u, 10u);
-  uint2 v2u3 = (15u).xx;
-  int2 v2i1 = int2(30, 40);
-  int2 v2i2 = int2(40, 30);
-  int2 v2i3 = (35).xx;
-  float2 v2f1 = float2(50.0f, 60.0f);
-  float2 v2f2 = float2(60.0f, 50.0f);
-  float2 v2f3 = (70.0f).xx;
-  float3 v3f1 = float3(50.0f, 60.0f, 70.0f);
-  float3 v3f2 = float3(60.0f, 70.0f, 50.0f);
-  float4 v4f1 = (50.0f).xxxx;
-  float4 v4f2 = v4f1;
-  float x_1 = 5184705457665546911744.0f;
-}
-
-[numthreads(1, 1, 1)]
-void main() {
-  main_1();
-}
-
diff --git a/test/tint/unittest/reader/spirv/Samples_SpvParserTest_GlslStd450_Floating_Floating_Scalar_7.spvasm.expected.ir.fxc.hlsl b/test/tint/unittest/reader/spirv/Samples_SpvParserTest_GlslStd450_Floating_Floating_Scalar_7.spvasm.expected.ir.fxc.hlsl
deleted file mode 100644
index b4fd6fd..0000000
--- a/test/tint/unittest/reader/spirv/Samples_SpvParserTest_GlslStd450_Floating_Floating_Scalar_7.spvasm.expected.ir.fxc.hlsl
+++ /dev/null
@@ -1,32 +0,0 @@
-SKIP: FAILED
-
-void main_1() {
-  uint u1 = 10u;
-  uint u2 = 15u;
-  uint u3 = 20u;
-  int i1 = 30;
-  int i2 = 35;
-  int i3 = 40;
-  float f2 = 60.0f;
-  float f3 = 70.0f;
-  uint2 v2u1 = uint2(10u, 20u);
-  uint2 v2u2 = uint2(20u, 10u);
-  uint2 v2u3 = (15u).xx;
-  int2 v2i1 = int2(30, 40);
-  int2 v2i2 = int2(40, 30);
-  int2 v2i3 = (35).xx;
-  float2 v2f1 = float2(50.0f, 60.0f);
-  float2 v2f2 = float2(60.0f, 50.0f);
-  float2 v2f3 = (70.0f).xx;
-  float3 v3f1 = float3(50.0f, 60.0f, 70.0f);
-  float3 v3f2 = float3(60.0f, 70.0f, 50.0f);
-  float4 v4f1 = (50.0f).xxxx;
-  float4 v4f2 = v4f1;
-  float x_1 = 1125899906842624.0f;
-}
-
-[numthreads(1, 1, 1)]
-void main() {
-  main_1();
-}
-
diff --git a/test/tint/unittest/reader/spirv/Samples_SpvParserTest_GlslStd450_Floating_Floating_Scalar_8.spvasm.expected.ir.fxc.hlsl b/test/tint/unittest/reader/spirv/Samples_SpvParserTest_GlslStd450_Floating_Floating_Scalar_8.spvasm.expected.ir.fxc.hlsl
deleted file mode 100644
index 3665ef0..0000000
--- a/test/tint/unittest/reader/spirv/Samples_SpvParserTest_GlslStd450_Floating_Floating_Scalar_8.spvasm.expected.ir.fxc.hlsl
+++ /dev/null
@@ -1,32 +0,0 @@
-SKIP: FAILED
-
-void main_1() {
-  uint u1 = 10u;
-  uint u2 = 15u;
-  uint u3 = 20u;
-  int i1 = 30;
-  int i2 = 35;
-  int i3 = 40;
-  float f2 = 60.0f;
-  float f3 = 70.0f;
-  uint2 v2u1 = uint2(10u, 20u);
-  uint2 v2u2 = uint2(20u, 10u);
-  uint2 v2u3 = (15u).xx;
-  int2 v2i1 = int2(30, 40);
-  int2 v2i2 = int2(40, 30);
-  int2 v2i3 = (35).xx;
-  float2 v2f1 = float2(50.0f, 60.0f);
-  float2 v2f2 = float2(60.0f, 50.0f);
-  float2 v2f3 = (70.0f).xx;
-  float3 v3f1 = float3(50.0f, 60.0f, 70.0f);
-  float3 v3f2 = float3(60.0f, 70.0f, 50.0f);
-  float4 v4f1 = (50.0f).xxxx;
-  float4 v4f2 = v4f1;
-  float x_1 = 50.0f;
-}
-
-[numthreads(1, 1, 1)]
-void main() {
-  main_1();
-}
-
diff --git a/test/tint/unittest/reader/spirv/Samples_SpvParserTest_GlslStd450_Floating_Floating_Scalar_9.spvasm.expected.ir.fxc.hlsl b/test/tint/unittest/reader/spirv/Samples_SpvParserTest_GlslStd450_Floating_Floating_Scalar_9.spvasm.expected.ir.fxc.hlsl
deleted file mode 100644
index 5f923b5..0000000
--- a/test/tint/unittest/reader/spirv/Samples_SpvParserTest_GlslStd450_Floating_Floating_Scalar_9.spvasm.expected.ir.fxc.hlsl
+++ /dev/null
@@ -1,32 +0,0 @@
-SKIP: FAILED
-
-void main_1() {
-  uint u1 = 10u;
-  uint u2 = 15u;
-  uint u3 = 20u;
-  int i1 = 30;
-  int i2 = 35;
-  int i3 = 40;
-  float f2 = 60.0f;
-  float f3 = 70.0f;
-  uint2 v2u1 = uint2(10u, 20u);
-  uint2 v2u2 = uint2(20u, 10u);
-  uint2 v2u3 = (15u).xx;
-  int2 v2i1 = int2(30, 40);
-  int2 v2i2 = int2(40, 30);
-  int2 v2i3 = (35).xx;
-  float2 v2f1 = float2(50.0f, 60.0f);
-  float2 v2f2 = float2(60.0f, 50.0f);
-  float2 v2f3 = (70.0f).xx;
-  float3 v3f1 = float3(50.0f, 60.0f, 70.0f);
-  float3 v3f2 = float3(60.0f, 70.0f, 50.0f);
-  float4 v4f1 = (50.0f).xxxx;
-  float4 v4f2 = v4f1;
-  float x_1 = 1.0f;
-}
-
-[numthreads(1, 1, 1)]
-void main() {
-  main_1();
-}
-
diff --git a/test/tint/unittest/reader/spirv/Samples_SpvParserTest_GlslStd450_Floating_Floating_Vector_0.spvasm.expected.ir.fxc.hlsl b/test/tint/unittest/reader/spirv/Samples_SpvParserTest_GlslStd450_Floating_Floating_Vector_0.spvasm.expected.ir.fxc.hlsl
deleted file mode 100644
index 76dbab8..0000000
--- a/test/tint/unittest/reader/spirv/Samples_SpvParserTest_GlslStd450_Floating_Floating_Vector_0.spvasm.expected.ir.fxc.hlsl
+++ /dev/null
@@ -1,32 +0,0 @@
-SKIP: FAILED
-
-void main_1() {
-  uint u1 = 10u;
-  uint u2 = 15u;
-  uint u3 = 20u;
-  int i1 = 30;
-  int i2 = 35;
-  int i3 = 40;
-  float f1 = 0.5f;
-  float f2 = 0.60000002384185791016f;
-  float f3 = 0.69999998807907104492f;
-  uint2 v2u1 = uint2(10u, 20u);
-  uint2 v2u2 = uint2(20u, 10u);
-  uint2 v2u3 = (15u).xx;
-  int2 v2i1 = int2(30, 40);
-  int2 v2i2 = int2(40, 30);
-  int2 v2i3 = (35).xx;
-  float2 v2f2 = float2(0.60000002384185791016f, 0.5f);
-  float2 v2f3 = (0.69999998807907104492f).xx;
-  float3 v3f1 = float3(0.5f, 0.60000002384185791016f, 0.69999998807907104492f);
-  float3 v3f2 = float3(0.60000002384185791016f, 0.69999998807907104492f, 0.5f);
-  float4 v4f1 = (0.5f).xxxx;
-  float4 v4f2 = v4f1;
-  float2 x_1 = float2(1.04719758033752441406f, 0.92729520797729492188f);
-}
-
-[numthreads(1, 1, 1)]
-void main() {
-  main_1();
-}
-
diff --git a/test/tint/unittest/reader/spirv/Samples_SpvParserTest_GlslStd450_Floating_Floating_Vector_1.spvasm.expected.ir.fxc.hlsl b/test/tint/unittest/reader/spirv/Samples_SpvParserTest_GlslStd450_Floating_Floating_Vector_1.spvasm.expected.ir.fxc.hlsl
deleted file mode 100644
index 4043a1b..0000000
--- a/test/tint/unittest/reader/spirv/Samples_SpvParserTest_GlslStd450_Floating_Floating_Vector_1.spvasm.expected.ir.fxc.hlsl
+++ /dev/null
@@ -1,32 +0,0 @@
-SKIP: FAILED
-
-void main_1() {
-  uint u1 = 10u;
-  uint u2 = 15u;
-  uint u3 = 20u;
-  int i1 = 30;
-  int i2 = 35;
-  int i3 = 40;
-  float f1 = 0.5f;
-  float f2 = 0.60000002384185791016f;
-  float f3 = 0.69999998807907104492f;
-  uint2 v2u1 = uint2(10u, 20u);
-  uint2 v2u2 = uint2(20u, 10u);
-  uint2 v2u3 = (15u).xx;
-  int2 v2i1 = int2(30, 40);
-  int2 v2i2 = int2(40, 30);
-  int2 v2i3 = (35).xx;
-  float2 v2f2 = float2(0.60000002384185791016f, 0.5f);
-  float2 v2f3 = (0.69999998807907104492f).xx;
-  float3 v3f1 = float3(0.5f, 0.60000002384185791016f, 0.69999998807907104492f);
-  float3 v3f2 = float3(0.60000002384185791016f, 0.69999998807907104492f, 0.5f);
-  float4 v4f1 = (0.5f).xxxx;
-  float4 v4f2 = v4f1;
-  float2 x_1 = float2(0.52359879016876220703f, 0.64350116252899169922f);
-}
-
-[numthreads(1, 1, 1)]
-void main() {
-  main_1();
-}
-
diff --git a/test/tint/unittest/reader/spirv/Samples_SpvParserTest_GlslStd450_Floating_Floating_Vector_10.spvasm.expected.ir.fxc.hlsl b/test/tint/unittest/reader/spirv/Samples_SpvParserTest_GlslStd450_Floating_Floating_Vector_10.spvasm.expected.ir.fxc.hlsl
deleted file mode 100644
index 8de8fe8..0000000
--- a/test/tint/unittest/reader/spirv/Samples_SpvParserTest_GlslStd450_Floating_Floating_Vector_10.spvasm.expected.ir.fxc.hlsl
+++ /dev/null
@@ -1,32 +0,0 @@
-SKIP: FAILED
-
-void main_1() {
-  uint u1 = 10u;
-  uint u2 = 15u;
-  uint u3 = 20u;
-  int i1 = 30;
-  int i2 = 35;
-  int i3 = 40;
-  float f1 = 50.0f;
-  float f2 = 60.0f;
-  float f3 = 70.0f;
-  uint2 v2u1 = uint2(10u, 20u);
-  uint2 v2u2 = uint2(20u, 10u);
-  uint2 v2u3 = (15u).xx;
-  int2 v2i1 = int2(30, 40);
-  int2 v2i2 = int2(40, 30);
-  int2 v2i3 = (35).xx;
-  float2 v2f2 = float2(60.0f, 50.0f);
-  float2 v2f3 = (70.0f).xx;
-  float3 v3f1 = float3(50.0f, 60.0f, 70.0f);
-  float3 v3f2 = float3(60.0f, 70.0f, 50.0f);
-  float4 v4f1 = (50.0f).xxxx;
-  float4 v4f2 = v4f1;
-  float2 x_1 = float2(50.0f, 60.0f);
-}
-
-[numthreads(1, 1, 1)]
-void main() {
-  main_1();
-}
-
diff --git a/test/tint/unittest/reader/spirv/Samples_SpvParserTest_GlslStd450_Floating_Floating_Vector_11.spvasm.expected.ir.fxc.hlsl b/test/tint/unittest/reader/spirv/Samples_SpvParserTest_GlslStd450_Floating_Floating_Vector_11.spvasm.expected.ir.fxc.hlsl
deleted file mode 100644
index e064936..0000000
--- a/test/tint/unittest/reader/spirv/Samples_SpvParserTest_GlslStd450_Floating_Floating_Vector_11.spvasm.expected.ir.fxc.hlsl
+++ /dev/null
@@ -1,32 +0,0 @@
-SKIP: FAILED
-
-void main_1() {
-  uint u1 = 10u;
-  uint u2 = 15u;
-  uint u3 = 20u;
-  int i1 = 30;
-  int i2 = 35;
-  int i3 = 40;
-  float f1 = 50.0f;
-  float f2 = 60.0f;
-  float f3 = 70.0f;
-  uint2 v2u1 = uint2(10u, 20u);
-  uint2 v2u2 = uint2(20u, 10u);
-  uint2 v2u3 = (15u).xx;
-  int2 v2i1 = int2(30, 40);
-  int2 v2i2 = int2(40, 30);
-  int2 v2i3 = (35).xx;
-  float2 v2f2 = float2(60.0f, 50.0f);
-  float2 v2f3 = (70.0f).xx;
-  float3 v3f1 = float3(50.0f, 60.0f, 70.0f);
-  float3 v3f2 = float3(60.0f, 70.0f, 50.0f);
-  float4 v4f1 = (50.0f).xxxx;
-  float4 v4f2 = v4f1;
-  float2 x_1 = (0.0f).xx;
-}
-
-[numthreads(1, 1, 1)]
-void main() {
-  main_1();
-}
-
diff --git a/test/tint/unittest/reader/spirv/Samples_SpvParserTest_GlslStd450_Floating_Floating_Vector_12.spvasm.expected.ir.fxc.hlsl b/test/tint/unittest/reader/spirv/Samples_SpvParserTest_GlslStd450_Floating_Floating_Vector_12.spvasm.expected.ir.fxc.hlsl
deleted file mode 100644
index df5b773..0000000
--- a/test/tint/unittest/reader/spirv/Samples_SpvParserTest_GlslStd450_Floating_Floating_Vector_12.spvasm.expected.ir.fxc.hlsl
+++ /dev/null
@@ -1,32 +0,0 @@
-SKIP: FAILED
-
-void main_1() {
-  uint u1 = 10u;
-  uint u2 = 15u;
-  uint u3 = 20u;
-  int i1 = 30;
-  int i2 = 35;
-  int i3 = 40;
-  float f1 = 50.0f;
-  float f2 = 60.0f;
-  float f3 = 70.0f;
-  uint2 v2u1 = uint2(10u, 20u);
-  uint2 v2u2 = uint2(20u, 10u);
-  uint2 v2u3 = (15u).xx;
-  int2 v2i1 = int2(30, 40);
-  int2 v2i2 = int2(40, 30);
-  int2 v2i3 = (35).xx;
-  float2 v2f2 = float2(60.0f, 50.0f);
-  float2 v2f3 = (70.0f).xx;
-  float3 v3f1 = float3(50.0f, 60.0f, 70.0f);
-  float3 v3f2 = float3(60.0f, 70.0f, 50.0f);
-  float4 v4f1 = (50.0f).xxxx;
-  float4 v4f2 = v4f1;
-  float2 x_1 = float2(0.14142136275768280029f, 0.12909944355487823486f);
-}
-
-[numthreads(1, 1, 1)]
-void main() {
-  main_1();
-}
-
diff --git a/test/tint/unittest/reader/spirv/Samples_SpvParserTest_GlslStd450_Floating_Floating_Vector_13.spvasm.expected.ir.fxc.hlsl b/test/tint/unittest/reader/spirv/Samples_SpvParserTest_GlslStd450_Floating_Floating_Vector_13.spvasm.expected.ir.fxc.hlsl
deleted file mode 100644
index 95551d5..0000000
--- a/test/tint/unittest/reader/spirv/Samples_SpvParserTest_GlslStd450_Floating_Floating_Vector_13.spvasm.expected.ir.fxc.hlsl
+++ /dev/null
@@ -1,32 +0,0 @@
-SKIP: FAILED
-
-void main_1() {
-  uint u1 = 10u;
-  uint u2 = 15u;
-  uint u3 = 20u;
-  int i1 = 30;
-  int i2 = 35;
-  int i3 = 40;
-  float f1 = 50.0f;
-  float f2 = 60.0f;
-  float f3 = 70.0f;
-  uint2 v2u1 = uint2(10u, 20u);
-  uint2 v2u2 = uint2(20u, 10u);
-  uint2 v2u3 = (15u).xx;
-  int2 v2i1 = int2(30, 40);
-  int2 v2i2 = int2(40, 30);
-  int2 v2i3 = (35).xx;
-  float2 v2f2 = float2(60.0f, 50.0f);
-  float2 v2f3 = (70.0f).xx;
-  float3 v3f1 = float3(50.0f, 60.0f, 70.0f);
-  float3 v3f2 = float3(60.0f, 70.0f, 50.0f);
-  float4 v4f1 = (50.0f).xxxx;
-  float4 v4f2 = v4f1;
-  float2 x_1 = float2(3.91202306747436523438f, 4.09434461593627929688f);
-}
-
-[numthreads(1, 1, 1)]
-void main() {
-  main_1();
-}
-
diff --git a/test/tint/unittest/reader/spirv/Samples_SpvParserTest_GlslStd450_Floating_Floating_Vector_14.spvasm.expected.ir.fxc.hlsl b/test/tint/unittest/reader/spirv/Samples_SpvParserTest_GlslStd450_Floating_Floating_Vector_14.spvasm.expected.ir.fxc.hlsl
deleted file mode 100644
index 96ca983..0000000
--- a/test/tint/unittest/reader/spirv/Samples_SpvParserTest_GlslStd450_Floating_Floating_Vector_14.spvasm.expected.ir.fxc.hlsl
+++ /dev/null
@@ -1,32 +0,0 @@
-SKIP: FAILED
-
-void main_1() {
-  uint u1 = 10u;
-  uint u2 = 15u;
-  uint u3 = 20u;
-  int i1 = 30;
-  int i2 = 35;
-  int i3 = 40;
-  float f1 = 50.0f;
-  float f2 = 60.0f;
-  float f3 = 70.0f;
-  uint2 v2u1 = uint2(10u, 20u);
-  uint2 v2u2 = uint2(20u, 10u);
-  uint2 v2u3 = (15u).xx;
-  int2 v2i1 = int2(30, 40);
-  int2 v2i2 = int2(40, 30);
-  int2 v2i3 = (35).xx;
-  float2 v2f2 = float2(60.0f, 50.0f);
-  float2 v2f3 = (70.0f).xx;
-  float3 v3f1 = float3(50.0f, 60.0f, 70.0f);
-  float3 v3f2 = float3(60.0f, 70.0f, 50.0f);
-  float4 v4f1 = (50.0f).xxxx;
-  float4 v4f2 = v4f1;
-  float2 x_1 = float2(5.643856048583984375f, 5.90689039230346679688f);
-}
-
-[numthreads(1, 1, 1)]
-void main() {
-  main_1();
-}
-
diff --git a/test/tint/unittest/reader/spirv/Samples_SpvParserTest_GlslStd450_Floating_Floating_Vector_15.spvasm.expected.ir.fxc.hlsl b/test/tint/unittest/reader/spirv/Samples_SpvParserTest_GlslStd450_Floating_Floating_Vector_15.spvasm.expected.ir.fxc.hlsl
deleted file mode 100644
index 8de8fe8..0000000
--- a/test/tint/unittest/reader/spirv/Samples_SpvParserTest_GlslStd450_Floating_Floating_Vector_15.spvasm.expected.ir.fxc.hlsl
+++ /dev/null
@@ -1,32 +0,0 @@
-SKIP: FAILED
-
-void main_1() {
-  uint u1 = 10u;
-  uint u2 = 15u;
-  uint u3 = 20u;
-  int i1 = 30;
-  int i2 = 35;
-  int i3 = 40;
-  float f1 = 50.0f;
-  float f2 = 60.0f;
-  float f3 = 70.0f;
-  uint2 v2u1 = uint2(10u, 20u);
-  uint2 v2u2 = uint2(20u, 10u);
-  uint2 v2u3 = (15u).xx;
-  int2 v2i1 = int2(30, 40);
-  int2 v2i2 = int2(40, 30);
-  int2 v2i3 = (35).xx;
-  float2 v2f2 = float2(60.0f, 50.0f);
-  float2 v2f3 = (70.0f).xx;
-  float3 v3f1 = float3(50.0f, 60.0f, 70.0f);
-  float3 v3f2 = float3(60.0f, 70.0f, 50.0f);
-  float4 v4f1 = (50.0f).xxxx;
-  float4 v4f2 = v4f1;
-  float2 x_1 = float2(50.0f, 60.0f);
-}
-
-[numthreads(1, 1, 1)]
-void main() {
-  main_1();
-}
-
diff --git a/test/tint/unittest/reader/spirv/Samples_SpvParserTest_GlslStd450_Floating_Floating_Vector_16.spvasm.expected.ir.fxc.hlsl b/test/tint/unittest/reader/spirv/Samples_SpvParserTest_GlslStd450_Floating_Floating_Vector_16.spvasm.expected.ir.fxc.hlsl
deleted file mode 100644
index 8de8fe8..0000000
--- a/test/tint/unittest/reader/spirv/Samples_SpvParserTest_GlslStd450_Floating_Floating_Vector_16.spvasm.expected.ir.fxc.hlsl
+++ /dev/null
@@ -1,32 +0,0 @@
-SKIP: FAILED
-
-void main_1() {
-  uint u1 = 10u;
-  uint u2 = 15u;
-  uint u3 = 20u;
-  int i1 = 30;
-  int i2 = 35;
-  int i3 = 40;
-  float f1 = 50.0f;
-  float f2 = 60.0f;
-  float f3 = 70.0f;
-  uint2 v2u1 = uint2(10u, 20u);
-  uint2 v2u2 = uint2(20u, 10u);
-  uint2 v2u3 = (15u).xx;
-  int2 v2i1 = int2(30, 40);
-  int2 v2i2 = int2(40, 30);
-  int2 v2i3 = (35).xx;
-  float2 v2f2 = float2(60.0f, 50.0f);
-  float2 v2f3 = (70.0f).xx;
-  float3 v3f1 = float3(50.0f, 60.0f, 70.0f);
-  float3 v3f2 = float3(60.0f, 70.0f, 50.0f);
-  float4 v4f1 = (50.0f).xxxx;
-  float4 v4f2 = v4f1;
-  float2 x_1 = float2(50.0f, 60.0f);
-}
-
-[numthreads(1, 1, 1)]
-void main() {
-  main_1();
-}
-
diff --git a/test/tint/unittest/reader/spirv/Samples_SpvParserTest_GlslStd450_Floating_Floating_Vector_17.spvasm.expected.ir.fxc.hlsl b/test/tint/unittest/reader/spirv/Samples_SpvParserTest_GlslStd450_Floating_Floating_Vector_17.spvasm.expected.ir.fxc.hlsl
deleted file mode 100644
index 42eeb74..0000000
--- a/test/tint/unittest/reader/spirv/Samples_SpvParserTest_GlslStd450_Floating_Floating_Vector_17.spvasm.expected.ir.fxc.hlsl
+++ /dev/null
@@ -1,32 +0,0 @@
-SKIP: FAILED
-
-void main_1() {
-  uint u1 = 10u;
-  uint u2 = 15u;
-  uint u3 = 20u;
-  int i1 = 30;
-  int i2 = 35;
-  int i3 = 40;
-  float f1 = 50.0f;
-  float f2 = 60.0f;
-  float f3 = 70.0f;
-  uint2 v2u1 = uint2(10u, 20u);
-  uint2 v2u2 = uint2(20u, 10u);
-  uint2 v2u3 = (15u).xx;
-  int2 v2i1 = int2(30, 40);
-  int2 v2i2 = int2(40, 30);
-  int2 v2i3 = (35).xx;
-  float2 v2f2 = float2(60.0f, 50.0f);
-  float2 v2f3 = (70.0f).xx;
-  float3 v3f1 = float3(50.0f, 60.0f, 70.0f);
-  float3 v3f2 = float3(60.0f, 70.0f, 50.0f);
-  float4 v4f1 = (50.0f).xxxx;
-  float4 v4f2 = v4f1;
-  float2 x_1 = float2(-0.2623748481273651123f, -0.30481061339378356934f);
-}
-
-[numthreads(1, 1, 1)]
-void main() {
-  main_1();
-}
-
diff --git a/test/tint/unittest/reader/spirv/Samples_SpvParserTest_GlslStd450_Floating_Floating_Vector_18.spvasm.expected.ir.fxc.hlsl b/test/tint/unittest/reader/spirv/Samples_SpvParserTest_GlslStd450_Floating_Floating_Vector_18.spvasm.expected.ir.fxc.hlsl
deleted file mode 100644
index be4bce3..0000000
--- a/test/tint/unittest/reader/spirv/Samples_SpvParserTest_GlslStd450_Floating_Floating_Vector_18.spvasm.expected.ir.fxc.hlsl
+++ /dev/null
@@ -1,32 +0,0 @@
-SKIP: FAILED
-
-void main_1() {
-  uint u1 = 10u;
-  uint u2 = 15u;
-  uint u3 = 20u;
-  int i1 = 30;
-  int i2 = 35;
-  int i3 = 40;
-  float f1 = 50.0f;
-  float f2 = 60.0f;
-  float f3 = 70.0f;
-  uint2 v2u1 = uint2(10u, 20u);
-  uint2 v2u2 = uint2(20u, 10u);
-  uint2 v2u3 = (15u).xx;
-  int2 v2i1 = int2(30, 40);
-  int2 v2i2 = int2(40, 30);
-  int2 v2i3 = (35).xx;
-  float2 v2f2 = float2(60.0f, 50.0f);
-  float2 v2f3 = (70.0f).xx;
-  float3 v3f1 = float3(50.0f, 60.0f, 70.0f);
-  float3 v3f2 = float3(60.0f, 70.0f, 50.0f);
-  float4 v4f1 = (50.0f).xxxx;
-  float4 v4f2 = v4f1;
-  float2 x_1 = float2(2592352728832773455872.0f, 57100369812095817561931776.0f);
-}
-
-[numthreads(1, 1, 1)]
-void main() {
-  main_1();
-}
-
diff --git a/test/tint/unittest/reader/spirv/Samples_SpvParserTest_GlslStd450_Floating_Floating_Vector_19.spvasm.expected.ir.fxc.hlsl b/test/tint/unittest/reader/spirv/Samples_SpvParserTest_GlslStd450_Floating_Floating_Vector_19.spvasm.expected.ir.fxc.hlsl
deleted file mode 100644
index 8079401..0000000
--- a/test/tint/unittest/reader/spirv/Samples_SpvParserTest_GlslStd450_Floating_Floating_Vector_19.spvasm.expected.ir.fxc.hlsl
+++ /dev/null
@@ -1,32 +0,0 @@
-SKIP: FAILED
-
-void main_1() {
-  uint u1 = 10u;
-  uint u2 = 15u;
-  uint u3 = 20u;
-  int i1 = 30;
-  int i2 = 35;
-  int i3 = 40;
-  float f1 = 50.0f;
-  float f2 = 60.0f;
-  float f3 = 70.0f;
-  uint2 v2u1 = uint2(10u, 20u);
-  uint2 v2u2 = uint2(20u, 10u);
-  uint2 v2u3 = (15u).xx;
-  int2 v2i1 = int2(30, 40);
-  int2 v2i2 = int2(40, 30);
-  int2 v2i3 = (35).xx;
-  float2 v2f2 = float2(60.0f, 50.0f);
-  float2 v2f3 = (70.0f).xx;
-  float3 v3f1 = float3(50.0f, 60.0f, 70.0f);
-  float3 v3f2 = float3(60.0f, 70.0f, 50.0f);
-  float4 v4f1 = (50.0f).xxxx;
-  float4 v4f2 = v4f1;
-  float2 x_1 = float2(7.07106781005859375f, 7.74596691131591796875f);
-}
-
-[numthreads(1, 1, 1)]
-void main() {
-  main_1();
-}
-
diff --git a/test/tint/unittest/reader/spirv/Samples_SpvParserTest_GlslStd450_Floating_Floating_Vector_2.spvasm.expected.ir.fxc.hlsl b/test/tint/unittest/reader/spirv/Samples_SpvParserTest_GlslStd450_Floating_Floating_Vector_2.spvasm.expected.ir.fxc.hlsl
deleted file mode 100644
index ebc844a..0000000
--- a/test/tint/unittest/reader/spirv/Samples_SpvParserTest_GlslStd450_Floating_Floating_Vector_2.spvasm.expected.ir.fxc.hlsl
+++ /dev/null
@@ -1,32 +0,0 @@
-SKIP: FAILED
-
-void main_1() {
-  uint u1 = 10u;
-  uint u2 = 15u;
-  uint u3 = 20u;
-  int i1 = 30;
-  int i2 = 35;
-  int i3 = 40;
-  float f1 = 50.0f;
-  float f2 = 60.0f;
-  float f3 = 70.0f;
-  uint2 v2u1 = uint2(10u, 20u);
-  uint2 v2u2 = uint2(20u, 10u);
-  uint2 v2u3 = (15u).xx;
-  int2 v2i1 = int2(30, 40);
-  int2 v2i2 = int2(40, 30);
-  int2 v2i3 = (35).xx;
-  float2 v2f2 = float2(60.0f, 50.0f);
-  float2 v2f3 = (70.0f).xx;
-  float3 v3f1 = float3(50.0f, 60.0f, 70.0f);
-  float3 v3f2 = float3(60.0f, 70.0f, 50.0f);
-  float4 v4f1 = (50.0f).xxxx;
-  float4 v4f2 = v4f1;
-  float2 x_1 = float2(1.55079901218414306641f, 1.55413115024566650391f);
-}
-
-[numthreads(1, 1, 1)]
-void main() {
-  main_1();
-}
-
diff --git a/test/tint/unittest/reader/spirv/Samples_SpvParserTest_GlslStd450_Floating_Floating_Vector_20.spvasm.expected.ir.fxc.hlsl b/test/tint/unittest/reader/spirv/Samples_SpvParserTest_GlslStd450_Floating_Floating_Vector_20.spvasm.expected.ir.fxc.hlsl
deleted file mode 100644
index c8e1c60..0000000
--- a/test/tint/unittest/reader/spirv/Samples_SpvParserTest_GlslStd450_Floating_Floating_Vector_20.spvasm.expected.ir.fxc.hlsl
+++ /dev/null
@@ -1,32 +0,0 @@
-SKIP: FAILED
-
-void main_1() {
-  uint u1 = 10u;
-  uint u2 = 15u;
-  uint u3 = 20u;
-  int i1 = 30;
-  int i2 = 35;
-  int i3 = 40;
-  float f1 = 50.0f;
-  float f2 = 60.0f;
-  float f3 = 70.0f;
-  uint2 v2u1 = uint2(10u, 20u);
-  uint2 v2u2 = uint2(20u, 10u);
-  uint2 v2u3 = (15u).xx;
-  int2 v2i1 = int2(30, 40);
-  int2 v2i2 = int2(40, 30);
-  int2 v2i3 = (35).xx;
-  float2 v2f2 = float2(60.0f, 50.0f);
-  float2 v2f3 = (70.0f).xx;
-  float3 v3f1 = float3(50.0f, 60.0f, 70.0f);
-  float3 v3f2 = float3(60.0f, 70.0f, 50.0f);
-  float4 v4f1 = (50.0f).xxxx;
-  float4 v4f2 = v4f1;
-  float2 x_1 = float2(-0.27190062403678894043f, 0.3200404047966003418f);
-}
-
-[numthreads(1, 1, 1)]
-void main() {
-  main_1();
-}
-
diff --git a/test/tint/unittest/reader/spirv/Samples_SpvParserTest_GlslStd450_Floating_Floating_Vector_21.spvasm.expected.ir.fxc.hlsl b/test/tint/unittest/reader/spirv/Samples_SpvParserTest_GlslStd450_Floating_Floating_Vector_21.spvasm.expected.ir.fxc.hlsl
deleted file mode 100644
index 6d98891..0000000
--- a/test/tint/unittest/reader/spirv/Samples_SpvParserTest_GlslStd450_Floating_Floating_Vector_21.spvasm.expected.ir.fxc.hlsl
+++ /dev/null
@@ -1,32 +0,0 @@
-SKIP: FAILED
-
-void main_1() {
-  uint u1 = 10u;
-  uint u2 = 15u;
-  uint u3 = 20u;
-  int i1 = 30;
-  int i2 = 35;
-  int i3 = 40;
-  float f1 = 50.0f;
-  float f2 = 60.0f;
-  float f3 = 70.0f;
-  uint2 v2u1 = uint2(10u, 20u);
-  uint2 v2u2 = uint2(20u, 10u);
-  uint2 v2u3 = (15u).xx;
-  int2 v2i1 = int2(30, 40);
-  int2 v2i2 = int2(40, 30);
-  int2 v2i3 = (35).xx;
-  float2 v2f2 = float2(60.0f, 50.0f);
-  float2 v2f3 = (70.0f).xx;
-  float3 v3f1 = float3(50.0f, 60.0f, 70.0f);
-  float3 v3f2 = float3(60.0f, 70.0f, 50.0f);
-  float4 v4f1 = (50.0f).xxxx;
-  float4 v4f2 = v4f1;
-  float2 x_1 = (1.0f).xx;
-}
-
-[numthreads(1, 1, 1)]
-void main() {
-  main_1();
-}
-
diff --git a/test/tint/unittest/reader/spirv/Samples_SpvParserTest_GlslStd450_Floating_Floating_Vector_22.spvasm.expected.ir.fxc.hlsl b/test/tint/unittest/reader/spirv/Samples_SpvParserTest_GlslStd450_Floating_Floating_Vector_22.spvasm.expected.ir.fxc.hlsl
deleted file mode 100644
index 8de8fe8..0000000
--- a/test/tint/unittest/reader/spirv/Samples_SpvParserTest_GlslStd450_Floating_Floating_Vector_22.spvasm.expected.ir.fxc.hlsl
+++ /dev/null
@@ -1,32 +0,0 @@
-SKIP: FAILED
-
-void main_1() {
-  uint u1 = 10u;
-  uint u2 = 15u;
-  uint u3 = 20u;
-  int i1 = 30;
-  int i2 = 35;
-  int i3 = 40;
-  float f1 = 50.0f;
-  float f2 = 60.0f;
-  float f3 = 70.0f;
-  uint2 v2u1 = uint2(10u, 20u);
-  uint2 v2u2 = uint2(20u, 10u);
-  uint2 v2u3 = (15u).xx;
-  int2 v2i1 = int2(30, 40);
-  int2 v2i2 = int2(40, 30);
-  int2 v2i3 = (35).xx;
-  float2 v2f2 = float2(60.0f, 50.0f);
-  float2 v2f3 = (70.0f).xx;
-  float3 v3f1 = float3(50.0f, 60.0f, 70.0f);
-  float3 v3f2 = float3(60.0f, 70.0f, 50.0f);
-  float4 v4f1 = (50.0f).xxxx;
-  float4 v4f2 = v4f1;
-  float2 x_1 = float2(50.0f, 60.0f);
-}
-
-[numthreads(1, 1, 1)]
-void main() {
-  main_1();
-}
-
diff --git a/test/tint/unittest/reader/spirv/Samples_SpvParserTest_GlslStd450_Floating_Floating_Vector_3.spvasm.expected.ir.fxc.hlsl b/test/tint/unittest/reader/spirv/Samples_SpvParserTest_GlslStd450_Floating_Floating_Vector_3.spvasm.expected.ir.fxc.hlsl
deleted file mode 100644
index 8de8fe8..0000000
--- a/test/tint/unittest/reader/spirv/Samples_SpvParserTest_GlslStd450_Floating_Floating_Vector_3.spvasm.expected.ir.fxc.hlsl
+++ /dev/null
@@ -1,32 +0,0 @@
-SKIP: FAILED
-
-void main_1() {
-  uint u1 = 10u;
-  uint u2 = 15u;
-  uint u3 = 20u;
-  int i1 = 30;
-  int i2 = 35;
-  int i3 = 40;
-  float f1 = 50.0f;
-  float f2 = 60.0f;
-  float f3 = 70.0f;
-  uint2 v2u1 = uint2(10u, 20u);
-  uint2 v2u2 = uint2(20u, 10u);
-  uint2 v2u3 = (15u).xx;
-  int2 v2i1 = int2(30, 40);
-  int2 v2i2 = int2(40, 30);
-  int2 v2i3 = (35).xx;
-  float2 v2f2 = float2(60.0f, 50.0f);
-  float2 v2f3 = (70.0f).xx;
-  float3 v3f1 = float3(50.0f, 60.0f, 70.0f);
-  float3 v3f2 = float3(60.0f, 70.0f, 50.0f);
-  float4 v4f1 = (50.0f).xxxx;
-  float4 v4f2 = v4f1;
-  float2 x_1 = float2(50.0f, 60.0f);
-}
-
-[numthreads(1, 1, 1)]
-void main() {
-  main_1();
-}
-
diff --git a/test/tint/unittest/reader/spirv/Samples_SpvParserTest_GlslStd450_Floating_Floating_Vector_4.spvasm.expected.ir.fxc.hlsl b/test/tint/unittest/reader/spirv/Samples_SpvParserTest_GlslStd450_Floating_Floating_Vector_4.spvasm.expected.ir.fxc.hlsl
deleted file mode 100644
index a622f5c..0000000
--- a/test/tint/unittest/reader/spirv/Samples_SpvParserTest_GlslStd450_Floating_Floating_Vector_4.spvasm.expected.ir.fxc.hlsl
+++ /dev/null
@@ -1,32 +0,0 @@
-SKIP: FAILED
-
-void main_1() {
-  uint u1 = 10u;
-  uint u2 = 15u;
-  uint u3 = 20u;
-  int i1 = 30;
-  int i2 = 35;
-  int i3 = 40;
-  float f1 = 50.0f;
-  float f2 = 60.0f;
-  float f3 = 70.0f;
-  uint2 v2u1 = uint2(10u, 20u);
-  uint2 v2u2 = uint2(20u, 10u);
-  uint2 v2u3 = (15u).xx;
-  int2 v2i1 = int2(30, 40);
-  int2 v2i2 = int2(40, 30);
-  int2 v2i3 = (35).xx;
-  float2 v2f2 = float2(60.0f, 50.0f);
-  float2 v2f3 = (70.0f).xx;
-  float3 v3f1 = float3(50.0f, 60.0f, 70.0f);
-  float3 v3f2 = float3(60.0f, 70.0f, 50.0f);
-  float4 v4f1 = (50.0f).xxxx;
-  float4 v4f2 = v4f1;
-  float2 x_1 = float2(0.96496599912643432617f, -0.95241296291351318359f);
-}
-
-[numthreads(1, 1, 1)]
-void main() {
-  main_1();
-}
-
diff --git a/test/tint/unittest/reader/spirv/Samples_SpvParserTest_GlslStd450_Floating_Floating_Vector_5.spvasm.expected.ir.fxc.hlsl b/test/tint/unittest/reader/spirv/Samples_SpvParserTest_GlslStd450_Floating_Floating_Vector_5.spvasm.expected.ir.fxc.hlsl
deleted file mode 100644
index be4bce3..0000000
--- a/test/tint/unittest/reader/spirv/Samples_SpvParserTest_GlslStd450_Floating_Floating_Vector_5.spvasm.expected.ir.fxc.hlsl
+++ /dev/null
@@ -1,32 +0,0 @@
-SKIP: FAILED
-
-void main_1() {
-  uint u1 = 10u;
-  uint u2 = 15u;
-  uint u3 = 20u;
-  int i1 = 30;
-  int i2 = 35;
-  int i3 = 40;
-  float f1 = 50.0f;
-  float f2 = 60.0f;
-  float f3 = 70.0f;
-  uint2 v2u1 = uint2(10u, 20u);
-  uint2 v2u2 = uint2(20u, 10u);
-  uint2 v2u3 = (15u).xx;
-  int2 v2i1 = int2(30, 40);
-  int2 v2i2 = int2(40, 30);
-  int2 v2i3 = (35).xx;
-  float2 v2f2 = float2(60.0f, 50.0f);
-  float2 v2f3 = (70.0f).xx;
-  float3 v3f1 = float3(50.0f, 60.0f, 70.0f);
-  float3 v3f2 = float3(60.0f, 70.0f, 50.0f);
-  float4 v4f1 = (50.0f).xxxx;
-  float4 v4f2 = v4f1;
-  float2 x_1 = float2(2592352728832773455872.0f, 57100369812095817561931776.0f);
-}
-
-[numthreads(1, 1, 1)]
-void main() {
-  main_1();
-}
-
diff --git a/test/tint/unittest/reader/spirv/Samples_SpvParserTest_GlslStd450_Floating_Floating_Vector_6.spvasm.expected.ir.fxc.hlsl b/test/tint/unittest/reader/spirv/Samples_SpvParserTest_GlslStd450_Floating_Floating_Vector_6.spvasm.expected.ir.fxc.hlsl
deleted file mode 100644
index ed4fdcf..0000000
--- a/test/tint/unittest/reader/spirv/Samples_SpvParserTest_GlslStd450_Floating_Floating_Vector_6.spvasm.expected.ir.fxc.hlsl
+++ /dev/null
@@ -1,32 +0,0 @@
-SKIP: FAILED
-
-void main_1() {
-  uint u1 = 10u;
-  uint u2 = 15u;
-  uint u3 = 20u;
-  int i1 = 30;
-  int i2 = 35;
-  int i3 = 40;
-  float f1 = 50.0f;
-  float f2 = 60.0f;
-  float f3 = 70.0f;
-  uint2 v2u1 = uint2(10u, 20u);
-  uint2 v2u2 = uint2(20u, 10u);
-  uint2 v2u3 = (15u).xx;
-  int2 v2i1 = int2(30, 40);
-  int2 v2i2 = int2(40, 30);
-  int2 v2i3 = (35).xx;
-  float2 v2f2 = float2(60.0f, 50.0f);
-  float2 v2f3 = (70.0f).xx;
-  float3 v3f1 = float3(50.0f, 60.0f, 70.0f);
-  float3 v3f2 = float3(60.0f, 70.0f, 50.0f);
-  float4 v4f1 = (50.0f).xxxx;
-  float4 v4f2 = v4f1;
-  float2 x_1 = float2(5184705457665546911744.0f, 114200739624191635123863552.0f);
-}
-
-[numthreads(1, 1, 1)]
-void main() {
-  main_1();
-}
-
diff --git a/test/tint/unittest/reader/spirv/Samples_SpvParserTest_GlslStd450_Floating_Floating_Vector_7.spvasm.expected.ir.fxc.hlsl b/test/tint/unittest/reader/spirv/Samples_SpvParserTest_GlslStd450_Floating_Floating_Vector_7.spvasm.expected.ir.fxc.hlsl
deleted file mode 100644
index 8ef52c9..0000000
--- a/test/tint/unittest/reader/spirv/Samples_SpvParserTest_GlslStd450_Floating_Floating_Vector_7.spvasm.expected.ir.fxc.hlsl
+++ /dev/null
@@ -1,32 +0,0 @@
-SKIP: FAILED
-
-void main_1() {
-  uint u1 = 10u;
-  uint u2 = 15u;
-  uint u3 = 20u;
-  int i1 = 30;
-  int i2 = 35;
-  int i3 = 40;
-  float f1 = 50.0f;
-  float f2 = 60.0f;
-  float f3 = 70.0f;
-  uint2 v2u1 = uint2(10u, 20u);
-  uint2 v2u2 = uint2(20u, 10u);
-  uint2 v2u3 = (15u).xx;
-  int2 v2i1 = int2(30, 40);
-  int2 v2i2 = int2(40, 30);
-  int2 v2i3 = (35).xx;
-  float2 v2f2 = float2(60.0f, 50.0f);
-  float2 v2f3 = (70.0f).xx;
-  float3 v3f1 = float3(50.0f, 60.0f, 70.0f);
-  float3 v3f2 = float3(60.0f, 70.0f, 50.0f);
-  float4 v4f1 = (50.0f).xxxx;
-  float4 v4f2 = v4f1;
-  float2 x_1 = float2(1125899906842624.0f, 1152921504606846976.0f);
-}
-
-[numthreads(1, 1, 1)]
-void main() {
-  main_1();
-}
-
diff --git a/test/tint/unittest/reader/spirv/Samples_SpvParserTest_GlslStd450_Floating_Floating_Vector_8.spvasm.expected.ir.fxc.hlsl b/test/tint/unittest/reader/spirv/Samples_SpvParserTest_GlslStd450_Floating_Floating_Vector_8.spvasm.expected.ir.fxc.hlsl
deleted file mode 100644
index 8de8fe8..0000000
--- a/test/tint/unittest/reader/spirv/Samples_SpvParserTest_GlslStd450_Floating_Floating_Vector_8.spvasm.expected.ir.fxc.hlsl
+++ /dev/null
@@ -1,32 +0,0 @@
-SKIP: FAILED
-
-void main_1() {
-  uint u1 = 10u;
-  uint u2 = 15u;
-  uint u3 = 20u;
-  int i1 = 30;
-  int i2 = 35;
-  int i3 = 40;
-  float f1 = 50.0f;
-  float f2 = 60.0f;
-  float f3 = 70.0f;
-  uint2 v2u1 = uint2(10u, 20u);
-  uint2 v2u2 = uint2(20u, 10u);
-  uint2 v2u3 = (15u).xx;
-  int2 v2i1 = int2(30, 40);
-  int2 v2i2 = int2(40, 30);
-  int2 v2i3 = (35).xx;
-  float2 v2f2 = float2(60.0f, 50.0f);
-  float2 v2f3 = (70.0f).xx;
-  float3 v3f1 = float3(50.0f, 60.0f, 70.0f);
-  float3 v3f2 = float3(60.0f, 70.0f, 50.0f);
-  float4 v4f1 = (50.0f).xxxx;
-  float4 v4f2 = v4f1;
-  float2 x_1 = float2(50.0f, 60.0f);
-}
-
-[numthreads(1, 1, 1)]
-void main() {
-  main_1();
-}
-
diff --git a/test/tint/unittest/reader/spirv/Samples_SpvParserTest_GlslStd450_Floating_Floating_Vector_9.spvasm.expected.ir.fxc.hlsl b/test/tint/unittest/reader/spirv/Samples_SpvParserTest_GlslStd450_Floating_Floating_Vector_9.spvasm.expected.ir.fxc.hlsl
deleted file mode 100644
index 6d98891..0000000
--- a/test/tint/unittest/reader/spirv/Samples_SpvParserTest_GlslStd450_Floating_Floating_Vector_9.spvasm.expected.ir.fxc.hlsl
+++ /dev/null
@@ -1,32 +0,0 @@
-SKIP: FAILED
-
-void main_1() {
-  uint u1 = 10u;
-  uint u2 = 15u;
-  uint u3 = 20u;
-  int i1 = 30;
-  int i2 = 35;
-  int i3 = 40;
-  float f1 = 50.0f;
-  float f2 = 60.0f;
-  float f3 = 70.0f;
-  uint2 v2u1 = uint2(10u, 20u);
-  uint2 v2u2 = uint2(20u, 10u);
-  uint2 v2u3 = (15u).xx;
-  int2 v2i1 = int2(30, 40);
-  int2 v2i2 = int2(40, 30);
-  int2 v2i3 = (35).xx;
-  float2 v2f2 = float2(60.0f, 50.0f);
-  float2 v2f3 = (70.0f).xx;
-  float3 v3f1 = float3(50.0f, 60.0f, 70.0f);
-  float3 v3f2 = float3(60.0f, 70.0f, 50.0f);
-  float4 v4f1 = (50.0f).xxxx;
-  float4 v4f2 = v4f1;
-  float2 x_1 = (1.0f).xx;
-}
-
-[numthreads(1, 1, 1)]
-void main() {
-  main_1();
-}
-
diff --git a/test/tint/unittest/reader/spirv/Samples_SpvParserTest_GlslStd450_Inting_IntingIntingInting_Scalar_0.spvasm.expected.ir.fxc.hlsl b/test/tint/unittest/reader/spirv/Samples_SpvParserTest_GlslStd450_Inting_IntingIntingInting_Scalar_0.spvasm.expected.ir.fxc.hlsl
deleted file mode 100644
index c433002..0000000
--- a/test/tint/unittest/reader/spirv/Samples_SpvParserTest_GlslStd450_Inting_IntingIntingInting_Scalar_0.spvasm.expected.ir.fxc.hlsl
+++ /dev/null
@@ -1,30 +0,0 @@
-SKIP: FAILED
-
-void main_1() {
-  uint u1 = 10u;
-  uint u2 = 15u;
-  uint u3 = 20u;
-  float f1 = 50.0f;
-  float f2 = 60.0f;
-  float f3 = 70.0f;
-  uint2 v2u1 = uint2(10u, 20u);
-  uint2 v2u2 = uint2(20u, 10u);
-  uint2 v2u3 = (15u).xx;
-  int2 v2i1 = int2(30, 40);
-  int2 v2i2 = int2(40, 30);
-  int2 v2i3 = (35).xx;
-  float2 v2f1 = float2(50.0f, 60.0f);
-  float2 v2f2 = float2(60.0f, 50.0f);
-  float2 v2f3 = (70.0f).xx;
-  float3 v3f1 = float3(50.0f, 60.0f, 70.0f);
-  float3 v3f2 = float3(60.0f, 70.0f, 50.0f);
-  float4 v4f1 = (50.0f).xxxx;
-  float4 v4f2 = v4f1;
-  int x_1 = 35;
-}
-
-[numthreads(1, 1, 1)]
-void main() {
-  main_1();
-}
-
diff --git a/test/tint/unittest/reader/spirv/Samples_SpvParserTest_GlslStd450_Inting_IntingIntingInting_Vector_0.spvasm.expected.ir.fxc.hlsl b/test/tint/unittest/reader/spirv/Samples_SpvParserTest_GlslStd450_Inting_IntingIntingInting_Vector_0.spvasm.expected.ir.fxc.hlsl
deleted file mode 100644
index c3604d0..0000000
--- a/test/tint/unittest/reader/spirv/Samples_SpvParserTest_GlslStd450_Inting_IntingIntingInting_Vector_0.spvasm.expected.ir.fxc.hlsl
+++ /dev/null
@@ -1,30 +0,0 @@
-SKIP: FAILED
-
-void main_1() {
-  uint u1 = 10u;
-  uint u2 = 15u;
-  uint u3 = 20u;
-  int i1 = 30;
-  int i2 = 35;
-  int i3 = 40;
-  float f1 = 50.0f;
-  float f2 = 60.0f;
-  float f3 = 70.0f;
-  uint2 v2u1 = uint2(10u, 20u);
-  uint2 v2u2 = uint2(20u, 10u);
-  uint2 v2u3 = (15u).xx;
-  float2 v2f1 = float2(50.0f, 60.0f);
-  float2 v2f2 = float2(60.0f, 50.0f);
-  float2 v2f3 = (70.0f).xx;
-  float3 v3f1 = float3(50.0f, 60.0f, 70.0f);
-  float3 v3f2 = float3(60.0f, 70.0f, 50.0f);
-  float4 v4f1 = (50.0f).xxxx;
-  float4 v4f2 = v4f1;
-  int2 x_1 = (35).xx;
-}
-
-[numthreads(1, 1, 1)]
-void main() {
-  main_1();
-}
-
diff --git a/test/tint/unittest/reader/spirv/Samples_SpvParserTest_GlslStd450_Inting_IntingInting_Scalar_0.spvasm.expected.ir.fxc.hlsl b/test/tint/unittest/reader/spirv/Samples_SpvParserTest_GlslStd450_Inting_IntingInting_Scalar_0.spvasm.expected.ir.fxc.hlsl
deleted file mode 100644
index a74760f..0000000
--- a/test/tint/unittest/reader/spirv/Samples_SpvParserTest_GlslStd450_Inting_IntingInting_Scalar_0.spvasm.expected.ir.fxc.hlsl
+++ /dev/null
@@ -1,31 +0,0 @@
-SKIP: FAILED
-
-void main_1() {
-  uint u1 = 10u;
-  uint u2 = 15u;
-  uint u3 = 20u;
-  int i3 = 40;
-  float f1 = 50.0f;
-  float f2 = 60.0f;
-  float f3 = 70.0f;
-  uint2 v2u1 = uint2(10u, 20u);
-  uint2 v2u2 = uint2(20u, 10u);
-  uint2 v2u3 = (15u).xx;
-  int2 v2i1 = int2(30, 40);
-  int2 v2i2 = int2(40, 30);
-  int2 v2i3 = (35).xx;
-  float2 v2f1 = float2(50.0f, 60.0f);
-  float2 v2f2 = float2(60.0f, 50.0f);
-  float2 v2f3 = (70.0f).xx;
-  float3 v3f1 = float3(50.0f, 60.0f, 70.0f);
-  float3 v3f2 = float3(60.0f, 70.0f, 50.0f);
-  float4 v4f1 = (50.0f).xxxx;
-  float4 v4f2 = v4f1;
-  int x_1 = 35;
-}
-
-[numthreads(1, 1, 1)]
-void main() {
-  main_1();
-}
-
diff --git a/test/tint/unittest/reader/spirv/Samples_SpvParserTest_GlslStd450_Inting_IntingInting_Scalar_1.spvasm.expected.ir.fxc.hlsl b/test/tint/unittest/reader/spirv/Samples_SpvParserTest_GlslStd450_Inting_IntingInting_Scalar_1.spvasm.expected.ir.fxc.hlsl
deleted file mode 100644
index b2e2cdb..0000000
--- a/test/tint/unittest/reader/spirv/Samples_SpvParserTest_GlslStd450_Inting_IntingInting_Scalar_1.spvasm.expected.ir.fxc.hlsl
+++ /dev/null
@@ -1,31 +0,0 @@
-SKIP: FAILED
-
-void main_1() {
-  uint u1 = 10u;
-  uint u2 = 15u;
-  uint u3 = 20u;
-  int i3 = 40;
-  float f1 = 50.0f;
-  float f2 = 60.0f;
-  float f3 = 70.0f;
-  uint2 v2u1 = uint2(10u, 20u);
-  uint2 v2u2 = uint2(20u, 10u);
-  uint2 v2u3 = (15u).xx;
-  int2 v2i1 = int2(30, 40);
-  int2 v2i2 = int2(40, 30);
-  int2 v2i3 = (35).xx;
-  float2 v2f1 = float2(50.0f, 60.0f);
-  float2 v2f2 = float2(60.0f, 50.0f);
-  float2 v2f3 = (70.0f).xx;
-  float3 v3f1 = float3(50.0f, 60.0f, 70.0f);
-  float3 v3f2 = float3(60.0f, 70.0f, 50.0f);
-  float4 v4f1 = (50.0f).xxxx;
-  float4 v4f2 = v4f1;
-  int x_1 = 30;
-}
-
-[numthreads(1, 1, 1)]
-void main() {
-  main_1();
-}
-
diff --git a/test/tint/unittest/reader/spirv/Samples_SpvParserTest_GlslStd450_Inting_IntingInting_Vector_0.spvasm.expected.ir.fxc.hlsl b/test/tint/unittest/reader/spirv/Samples_SpvParserTest_GlslStd450_Inting_IntingInting_Vector_0.spvasm.expected.ir.fxc.hlsl
deleted file mode 100644
index 1612fac..0000000
--- a/test/tint/unittest/reader/spirv/Samples_SpvParserTest_GlslStd450_Inting_IntingInting_Vector_0.spvasm.expected.ir.fxc.hlsl
+++ /dev/null
@@ -1,31 +0,0 @@
-SKIP: FAILED
-
-void main_1() {
-  uint u1 = 10u;
-  uint u2 = 15u;
-  uint u3 = 20u;
-  int i1 = 30;
-  int i2 = 35;
-  int i3 = 40;
-  float f1 = 50.0f;
-  float f2 = 60.0f;
-  float f3 = 70.0f;
-  uint2 v2u1 = uint2(10u, 20u);
-  uint2 v2u2 = uint2(20u, 10u);
-  uint2 v2u3 = (15u).xx;
-  int2 v2i3 = (35).xx;
-  float2 v2f1 = float2(50.0f, 60.0f);
-  float2 v2f2 = float2(60.0f, 50.0f);
-  float2 v2f3 = (70.0f).xx;
-  float3 v3f1 = float3(50.0f, 60.0f, 70.0f);
-  float3 v3f2 = float3(60.0f, 70.0f, 50.0f);
-  float4 v4f1 = (50.0f).xxxx;
-  float4 v4f2 = v4f1;
-  int2 x_1 = (40).xx;
-}
-
-[numthreads(1, 1, 1)]
-void main() {
-  main_1();
-}
-
diff --git a/test/tint/unittest/reader/spirv/Samples_SpvParserTest_GlslStd450_Inting_IntingInting_Vector_1.spvasm.expected.ir.fxc.hlsl b/test/tint/unittest/reader/spirv/Samples_SpvParserTest_GlslStd450_Inting_IntingInting_Vector_1.spvasm.expected.ir.fxc.hlsl
deleted file mode 100644
index 402b320..0000000
--- a/test/tint/unittest/reader/spirv/Samples_SpvParserTest_GlslStd450_Inting_IntingInting_Vector_1.spvasm.expected.ir.fxc.hlsl
+++ /dev/null
@@ -1,31 +0,0 @@
-SKIP: FAILED
-
-void main_1() {
-  uint u1 = 10u;
-  uint u2 = 15u;
-  uint u3 = 20u;
-  int i1 = 30;
-  int i2 = 35;
-  int i3 = 40;
-  float f1 = 50.0f;
-  float f2 = 60.0f;
-  float f3 = 70.0f;
-  uint2 v2u1 = uint2(10u, 20u);
-  uint2 v2u2 = uint2(20u, 10u);
-  uint2 v2u3 = (15u).xx;
-  int2 v2i3 = (35).xx;
-  float2 v2f1 = float2(50.0f, 60.0f);
-  float2 v2f2 = float2(60.0f, 50.0f);
-  float2 v2f3 = (70.0f).xx;
-  float3 v3f1 = float3(50.0f, 60.0f, 70.0f);
-  float3 v3f2 = float3(60.0f, 70.0f, 50.0f);
-  float4 v4f1 = (50.0f).xxxx;
-  float4 v4f2 = v4f1;
-  int2 x_1 = (30).xx;
-}
-
-[numthreads(1, 1, 1)]
-void main() {
-  main_1();
-}
-
diff --git a/test/tint/unittest/reader/spirv/Samples_SpvParserTest_GlslStd450_Inting_Inting_Scalar_0.spvasm.expected.ir.fxc.hlsl b/test/tint/unittest/reader/spirv/Samples_SpvParserTest_GlslStd450_Inting_Inting_Scalar_0.spvasm.expected.ir.fxc.hlsl
deleted file mode 100644
index db42346..0000000
--- a/test/tint/unittest/reader/spirv/Samples_SpvParserTest_GlslStd450_Inting_Inting_Scalar_0.spvasm.expected.ir.fxc.hlsl
+++ /dev/null
@@ -1,32 +0,0 @@
-SKIP: FAILED
-
-void main_1() {
-  uint u1 = 10u;
-  uint u2 = 15u;
-  uint u3 = 20u;
-  int i2 = 35;
-  int i3 = 40;
-  float f1 = 50.0f;
-  float f2 = 60.0f;
-  float f3 = 70.0f;
-  uint2 v2u1 = uint2(10u, 20u);
-  uint2 v2u2 = uint2(20u, 10u);
-  uint2 v2u3 = (15u).xx;
-  int2 v2i1 = int2(30, 40);
-  int2 v2i2 = int2(40, 30);
-  int2 v2i3 = (35).xx;
-  float2 v2f1 = float2(50.0f, 60.0f);
-  float2 v2f2 = float2(60.0f, 50.0f);
-  float2 v2f3 = (70.0f).xx;
-  float3 v3f1 = float3(50.0f, 60.0f, 70.0f);
-  float3 v3f2 = float3(60.0f, 70.0f, 50.0f);
-  float4 v4f1 = (50.0f).xxxx;
-  float4 v4f2 = v4f1;
-  int x_1 = 30;
-}
-
-[numthreads(1, 1, 1)]
-void main() {
-  main_1();
-}
-
diff --git a/test/tint/unittest/reader/spirv/Samples_SpvParserTest_GlslStd450_Inting_Inting_Vector_0.spvasm.expected.ir.fxc.hlsl b/test/tint/unittest/reader/spirv/Samples_SpvParserTest_GlslStd450_Inting_Inting_Vector_0.spvasm.expected.ir.fxc.hlsl
deleted file mode 100644
index 1d73a9d..0000000
--- a/test/tint/unittest/reader/spirv/Samples_SpvParserTest_GlslStd450_Inting_Inting_Vector_0.spvasm.expected.ir.fxc.hlsl
+++ /dev/null
@@ -1,32 +0,0 @@
-SKIP: FAILED
-
-void main_1() {
-  uint u1 = 10u;
-  uint u2 = 15u;
-  uint u3 = 20u;
-  int i1 = 30;
-  int i2 = 35;
-  int i3 = 40;
-  float f1 = 50.0f;
-  float f2 = 60.0f;
-  float f3 = 70.0f;
-  uint2 v2u1 = uint2(10u, 20u);
-  uint2 v2u2 = uint2(20u, 10u);
-  uint2 v2u3 = (15u).xx;
-  int2 v2i2 = int2(40, 30);
-  int2 v2i3 = (35).xx;
-  float2 v2f1 = float2(50.0f, 60.0f);
-  float2 v2f2 = float2(60.0f, 50.0f);
-  float2 v2f3 = (70.0f).xx;
-  float3 v3f1 = float3(50.0f, 60.0f, 70.0f);
-  float3 v3f2 = float3(60.0f, 70.0f, 50.0f);
-  float4 v4f1 = (50.0f).xxxx;
-  float4 v4f2 = v4f1;
-  int2 x_1 = int2(30, 40);
-}
-
-[numthreads(1, 1, 1)]
-void main() {
-  main_1();
-}
-
diff --git a/test/tint/unittest/reader/spirv/Samples_SpvParserTest_GlslStd450_Uinting_UintingUintingUinting_Scalar_0.spvasm.expected.ir.fxc.hlsl b/test/tint/unittest/reader/spirv/Samples_SpvParserTest_GlslStd450_Uinting_UintingUintingUinting_Scalar_0.spvasm.expected.ir.fxc.hlsl
deleted file mode 100644
index 31bc901..0000000
--- a/test/tint/unittest/reader/spirv/Samples_SpvParserTest_GlslStd450_Uinting_UintingUintingUinting_Scalar_0.spvasm.expected.ir.fxc.hlsl
+++ /dev/null
@@ -1,30 +0,0 @@
-SKIP: FAILED
-
-void main_1() {
-  int i1 = 30;
-  int i2 = 35;
-  int i3 = 40;
-  float f1 = 50.0f;
-  float f2 = 60.0f;
-  float f3 = 70.0f;
-  uint2 v2u1 = uint2(10u, 20u);
-  uint2 v2u2 = uint2(20u, 10u);
-  uint2 v2u3 = (15u).xx;
-  int2 v2i1 = int2(30, 40);
-  int2 v2i2 = int2(40, 30);
-  int2 v2i3 = (35).xx;
-  float2 v2f1 = float2(50.0f, 60.0f);
-  float2 v2f2 = float2(60.0f, 50.0f);
-  float2 v2f3 = (70.0f).xx;
-  float3 v3f1 = float3(50.0f, 60.0f, 70.0f);
-  float3 v3f2 = float3(60.0f, 70.0f, 50.0f);
-  float4 v4f1 = (50.0f).xxxx;
-  float4 v4f2 = v4f1;
-  uint x_1 = 15u;
-}
-
-[numthreads(1, 1, 1)]
-void main() {
-  main_1();
-}
-
diff --git a/test/tint/unittest/reader/spirv/Samples_SpvParserTest_GlslStd450_Uinting_UintingUintingUinting_Vector_0.spvasm.expected.ir.fxc.hlsl b/test/tint/unittest/reader/spirv/Samples_SpvParserTest_GlslStd450_Uinting_UintingUintingUinting_Vector_0.spvasm.expected.ir.fxc.hlsl
deleted file mode 100644
index deeaf6d..0000000
--- a/test/tint/unittest/reader/spirv/Samples_SpvParserTest_GlslStd450_Uinting_UintingUintingUinting_Vector_0.spvasm.expected.ir.fxc.hlsl
+++ /dev/null
@@ -1,30 +0,0 @@
-SKIP: FAILED
-
-void main_1() {
-  uint u1 = 10u;
-  uint u2 = 15u;
-  uint u3 = 20u;
-  int i1 = 30;
-  int i2 = 35;
-  int i3 = 40;
-  float f1 = 50.0f;
-  float f2 = 60.0f;
-  float f3 = 70.0f;
-  int2 v2i1 = int2(30, 40);
-  int2 v2i2 = int2(40, 30);
-  int2 v2i3 = (35).xx;
-  float2 v2f1 = float2(50.0f, 60.0f);
-  float2 v2f2 = float2(60.0f, 50.0f);
-  float2 v2f3 = (70.0f).xx;
-  float3 v3f1 = float3(50.0f, 60.0f, 70.0f);
-  float3 v3f2 = float3(60.0f, 70.0f, 50.0f);
-  float4 v4f1 = (50.0f).xxxx;
-  float4 v4f2 = v4f1;
-  uint2 x_1 = uint2(10u, 15u);
-}
-
-[numthreads(1, 1, 1)]
-void main() {
-  main_1();
-}
-
diff --git a/test/tint/unittest/reader/spirv/Samples_SpvParserTest_GlslStd450_Uinting_UintingUinting_Scalar_0.spvasm.expected.ir.fxc.hlsl b/test/tint/unittest/reader/spirv/Samples_SpvParserTest_GlslStd450_Uinting_UintingUinting_Scalar_0.spvasm.expected.ir.fxc.hlsl
deleted file mode 100644
index 5abf1de..0000000
--- a/test/tint/unittest/reader/spirv/Samples_SpvParserTest_GlslStd450_Uinting_UintingUinting_Scalar_0.spvasm.expected.ir.fxc.hlsl
+++ /dev/null
@@ -1,31 +0,0 @@
-SKIP: FAILED
-
-void main_1() {
-  uint u3 = 20u;
-  int i1 = 30;
-  int i2 = 35;
-  int i3 = 40;
-  float f1 = 50.0f;
-  float f2 = 60.0f;
-  float f3 = 70.0f;
-  uint2 v2u1 = uint2(10u, 20u);
-  uint2 v2u2 = uint2(20u, 10u);
-  uint2 v2u3 = (15u).xx;
-  int2 v2i1 = int2(30, 40);
-  int2 v2i2 = int2(40, 30);
-  int2 v2i3 = (35).xx;
-  float2 v2f1 = float2(50.0f, 60.0f);
-  float2 v2f2 = float2(60.0f, 50.0f);
-  float2 v2f3 = (70.0f).xx;
-  float3 v3f1 = float3(50.0f, 60.0f, 70.0f);
-  float3 v3f2 = float3(60.0f, 70.0f, 50.0f);
-  float4 v4f1 = (50.0f).xxxx;
-  float4 v4f2 = v4f1;
-  uint x_1 = 15u;
-}
-
-[numthreads(1, 1, 1)]
-void main() {
-  main_1();
-}
-
diff --git a/test/tint/unittest/reader/spirv/Samples_SpvParserTest_GlslStd450_Uinting_UintingUinting_Scalar_1.spvasm.expected.ir.fxc.hlsl b/test/tint/unittest/reader/spirv/Samples_SpvParserTest_GlslStd450_Uinting_UintingUinting_Scalar_1.spvasm.expected.ir.fxc.hlsl
deleted file mode 100644
index 269f9dc..0000000
--- a/test/tint/unittest/reader/spirv/Samples_SpvParserTest_GlslStd450_Uinting_UintingUinting_Scalar_1.spvasm.expected.ir.fxc.hlsl
+++ /dev/null
@@ -1,31 +0,0 @@
-SKIP: FAILED
-
-void main_1() {
-  uint u3 = 20u;
-  int i1 = 30;
-  int i2 = 35;
-  int i3 = 40;
-  float f1 = 50.0f;
-  float f2 = 60.0f;
-  float f3 = 70.0f;
-  uint2 v2u1 = uint2(10u, 20u);
-  uint2 v2u2 = uint2(20u, 10u);
-  uint2 v2u3 = (15u).xx;
-  int2 v2i1 = int2(30, 40);
-  int2 v2i2 = int2(40, 30);
-  int2 v2i3 = (35).xx;
-  float2 v2f1 = float2(50.0f, 60.0f);
-  float2 v2f2 = float2(60.0f, 50.0f);
-  float2 v2f3 = (70.0f).xx;
-  float3 v3f1 = float3(50.0f, 60.0f, 70.0f);
-  float3 v3f2 = float3(60.0f, 70.0f, 50.0f);
-  float4 v4f1 = (50.0f).xxxx;
-  float4 v4f2 = v4f1;
-  uint x_1 = 10u;
-}
-
-[numthreads(1, 1, 1)]
-void main() {
-  main_1();
-}
-
diff --git a/test/tint/unittest/reader/spirv/Samples_SpvParserTest_GlslStd450_Uinting_UintingUinting_Vector_0.spvasm.expected.ir.fxc.hlsl b/test/tint/unittest/reader/spirv/Samples_SpvParserTest_GlslStd450_Uinting_UintingUinting_Vector_0.spvasm.expected.ir.fxc.hlsl
deleted file mode 100644
index 244205a..0000000
--- a/test/tint/unittest/reader/spirv/Samples_SpvParserTest_GlslStd450_Uinting_UintingUinting_Vector_0.spvasm.expected.ir.fxc.hlsl
+++ /dev/null
@@ -1,31 +0,0 @@
-SKIP: FAILED
-
-void main_1() {
-  uint u1 = 10u;
-  uint u2 = 15u;
-  uint u3 = 20u;
-  int i1 = 30;
-  int i2 = 35;
-  int i3 = 40;
-  float f1 = 50.0f;
-  float f2 = 60.0f;
-  float f3 = 70.0f;
-  uint2 v2u3 = (15u).xx;
-  int2 v2i1 = int2(30, 40);
-  int2 v2i2 = int2(40, 30);
-  int2 v2i3 = (35).xx;
-  float2 v2f1 = float2(50.0f, 60.0f);
-  float2 v2f2 = float2(60.0f, 50.0f);
-  float2 v2f3 = (70.0f).xx;
-  float3 v3f1 = float3(50.0f, 60.0f, 70.0f);
-  float3 v3f2 = float3(60.0f, 70.0f, 50.0f);
-  float4 v4f1 = (50.0f).xxxx;
-  float4 v4f2 = v4f1;
-  uint2 x_1 = (20u).xx;
-}
-
-[numthreads(1, 1, 1)]
-void main() {
-  main_1();
-}
-
diff --git a/test/tint/unittest/reader/spirv/Samples_SpvParserTest_GlslStd450_Uinting_UintingUinting_Vector_1.spvasm.expected.ir.fxc.hlsl b/test/tint/unittest/reader/spirv/Samples_SpvParserTest_GlslStd450_Uinting_UintingUinting_Vector_1.spvasm.expected.ir.fxc.hlsl
deleted file mode 100644
index cf49600..0000000
--- a/test/tint/unittest/reader/spirv/Samples_SpvParserTest_GlslStd450_Uinting_UintingUinting_Vector_1.spvasm.expected.ir.fxc.hlsl
+++ /dev/null
@@ -1,31 +0,0 @@
-SKIP: FAILED
-
-void main_1() {
-  uint u1 = 10u;
-  uint u2 = 15u;
-  uint u3 = 20u;
-  int i1 = 30;
-  int i2 = 35;
-  int i3 = 40;
-  float f1 = 50.0f;
-  float f2 = 60.0f;
-  float f3 = 70.0f;
-  uint2 v2u3 = (15u).xx;
-  int2 v2i1 = int2(30, 40);
-  int2 v2i2 = int2(40, 30);
-  int2 v2i3 = (35).xx;
-  float2 v2f1 = float2(50.0f, 60.0f);
-  float2 v2f2 = float2(60.0f, 50.0f);
-  float2 v2f3 = (70.0f).xx;
-  float3 v3f1 = float3(50.0f, 60.0f, 70.0f);
-  float3 v3f2 = float3(60.0f, 70.0f, 50.0f);
-  float4 v4f1 = (50.0f).xxxx;
-  float4 v4f2 = v4f1;
-  uint2 x_1 = (10u).xx;
-}
-
-[numthreads(1, 1, 1)]
-void main() {
-  main_1();
-}
-
diff --git a/test/tint/unittest/reader/spirv/SpvBinaryArithTestBasic_Dot.spvasm.expected.ir.fxc.hlsl b/test/tint/unittest/reader/spirv/SpvBinaryArithTestBasic_Dot.spvasm.expected.ir.fxc.hlsl
deleted file mode 100644
index e72e340..0000000
--- a/test/tint/unittest/reader/spirv/SpvBinaryArithTestBasic_Dot.spvasm.expected.ir.fxc.hlsl
+++ /dev/null
@@ -1,10 +0,0 @@
-SKIP: FAILED
-
-void main_1() {
-  float x_3 = 6000.0f;
-}
-
-void main() {
-  main_1();
-}
-
diff --git a/test/tint/unittest/reader/spirv/SpvBinaryArithTestBasic_FMod_Scalar.spvasm.expected.ir.fxc.hlsl b/test/tint/unittest/reader/spirv/SpvBinaryArithTestBasic_FMod_Scalar.spvasm.expected.ir.fxc.hlsl
deleted file mode 100644
index b78ee37..0000000
--- a/test/tint/unittest/reader/spirv/SpvBinaryArithTestBasic_FMod_Scalar.spvasm.expected.ir.fxc.hlsl
+++ /dev/null
@@ -1,10 +0,0 @@
-SKIP: FAILED
-
-void main_1() {
-  float x_1 = 50.0f;
-}
-
-void main() {
-  main_1();
-}
-
diff --git a/test/tint/unittest/reader/spirv/SpvBinaryArithTestBasic_FMod_Vector.spvasm.expected.ir.fxc.hlsl b/test/tint/unittest/reader/spirv/SpvBinaryArithTestBasic_FMod_Vector.spvasm.expected.ir.fxc.hlsl
deleted file mode 100644
index 5c139b7..0000000
--- a/test/tint/unittest/reader/spirv/SpvBinaryArithTestBasic_FMod_Vector.spvasm.expected.ir.fxc.hlsl
+++ /dev/null
@@ -1,10 +0,0 @@
-SKIP: FAILED
-
-void main_1() {
-  float2 x_1 = float2(50.0f, 10.0f);
-}
-
-void main() {
-  main_1();
-}
-
diff --git a/test/tint/unittest/reader/spirv/SpvBinaryArithTestBasic_MatrixTimesMatrix.spvasm.expected.ir.fxc.hlsl b/test/tint/unittest/reader/spirv/SpvBinaryArithTestBasic_MatrixTimesMatrix.spvasm.expected.ir.fxc.hlsl
deleted file mode 100644
index 7f3cb4b..0000000
--- a/test/tint/unittest/reader/spirv/SpvBinaryArithTestBasic_MatrixTimesMatrix.spvasm.expected.ir.fxc.hlsl
+++ /dev/null
@@ -1,10 +0,0 @@
-SKIP: FAILED
-
-void main_1() {
-  float2x2 x_10 = float2x2(float2(6000.0f, 6100.0f), float2(6100.0f, 6000.0f));
-}
-
-void main() {
-  main_1();
-}
-
diff --git a/test/tint/unittest/reader/spirv/SpvBinaryArithTestBasic_MatrixTimesScalar.spvasm.expected.ir.fxc.hlsl b/test/tint/unittest/reader/spirv/SpvBinaryArithTestBasic_MatrixTimesScalar.spvasm.expected.ir.fxc.hlsl
deleted file mode 100644
index 6a6bba8..0000000
--- a/test/tint/unittest/reader/spirv/SpvBinaryArithTestBasic_MatrixTimesScalar.spvasm.expected.ir.fxc.hlsl
+++ /dev/null
@@ -1,10 +0,0 @@
-SKIP: FAILED
-
-void main_1() {
-  float2x2 x_10 = float2x2(float2(2500.0f, 3000.0f), float2(3000.0f, 2500.0f));
-}
-
-void main() {
-  main_1();
-}
-
diff --git a/test/tint/unittest/reader/spirv/SpvBinaryArithTestBasic_MatrixTimesVector.spvasm.expected.ir.fxc.hlsl b/test/tint/unittest/reader/spirv/SpvBinaryArithTestBasic_MatrixTimesVector.spvasm.expected.ir.fxc.hlsl
deleted file mode 100644
index 4f7063f..0000000
--- a/test/tint/unittest/reader/spirv/SpvBinaryArithTestBasic_MatrixTimesVector.spvasm.expected.ir.fxc.hlsl
+++ /dev/null
@@ -1,10 +0,0 @@
-SKIP: FAILED
-
-void main_1() {
-  float2 x_10 = float2(6100.0f, 6000.0f);
-}
-
-void main() {
-  main_1();
-}
-
diff --git a/test/tint/unittest/reader/spirv/SpvBinaryArithTestBasic_OuterProduct.spvasm.expected.ir.dxc.hlsl b/test/tint/unittest/reader/spirv/SpvBinaryArithTestBasic_OuterProduct.spvasm.expected.ir.dxc.hlsl
deleted file mode 100644
index c6e1d96..0000000
--- a/test/tint/unittest/reader/spirv/SpvBinaryArithTestBasic_OuterProduct.spvasm.expected.ir.dxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Construct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix 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/SpvBinaryArithTestBasic_OuterProduct.spvasm.expected.ir.fxc.hlsl b/test/tint/unittest/reader/spirv/SpvBinaryArithTestBasic_OuterProduct.spvasm.expected.ir.fxc.hlsl
deleted file mode 100644
index c6e1d96..0000000
--- a/test/tint/unittest/reader/spirv/SpvBinaryArithTestBasic_OuterProduct.spvasm.expected.ir.fxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Construct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix 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/SpvBinaryArithTestBasic_SDiv_Scalar_UnsignedResult.spvasm.expected.ir.fxc.hlsl b/test/tint/unittest/reader/spirv/SpvBinaryArithTestBasic_SDiv_Scalar_UnsignedResult.spvasm.expected.ir.fxc.hlsl
deleted file mode 100644
index 1e2c9e2..0000000
--- a/test/tint/unittest/reader/spirv/SpvBinaryArithTestBasic_SDiv_Scalar_UnsignedResult.spvasm.expected.ir.fxc.hlsl
+++ /dev/null
@@ -1,10 +0,0 @@
-SKIP: FAILED
-
-void main_1() {
-  uint x_1 = 0u;
-}
-
-void main() {
-  main_1();
-}
-
diff --git a/test/tint/unittest/reader/spirv/SpvBinaryArithTestBasic_SDiv_Vector_UnsignedResult.spvasm.expected.ir.fxc.hlsl b/test/tint/unittest/reader/spirv/SpvBinaryArithTestBasic_SDiv_Vector_UnsignedResult.spvasm.expected.ir.fxc.hlsl
deleted file mode 100644
index eef4e73..0000000
--- a/test/tint/unittest/reader/spirv/SpvBinaryArithTestBasic_SDiv_Vector_UnsignedResult.spvasm.expected.ir.fxc.hlsl
+++ /dev/null
@@ -1,10 +0,0 @@
-SKIP: FAILED
-
-void main_1() {
-  uint2 x_1 = uint2(0u, 1u);
-}
-
-void main() {
-  main_1();
-}
-
diff --git a/test/tint/unittest/reader/spirv/SpvBinaryArithTestBasic_SMod_Scalar_UnsignedResult.spvasm.expected.ir.fxc.hlsl b/test/tint/unittest/reader/spirv/SpvBinaryArithTestBasic_SMod_Scalar_UnsignedResult.spvasm.expected.ir.fxc.hlsl
deleted file mode 100644
index 23cd034..0000000
--- a/test/tint/unittest/reader/spirv/SpvBinaryArithTestBasic_SMod_Scalar_UnsignedResult.spvasm.expected.ir.fxc.hlsl
+++ /dev/null
@@ -1,10 +0,0 @@
-SKIP: FAILED
-
-void main_1() {
-  uint x_1 = 30u;
-}
-
-void main() {
-  main_1();
-}
-
diff --git a/test/tint/unittest/reader/spirv/SpvBinaryArithTestBasic_SMod_Vector_UnsignedResult.spvasm.expected.ir.fxc.hlsl b/test/tint/unittest/reader/spirv/SpvBinaryArithTestBasic_SMod_Vector_UnsignedResult.spvasm.expected.ir.fxc.hlsl
deleted file mode 100644
index 60a5d09..0000000
--- a/test/tint/unittest/reader/spirv/SpvBinaryArithTestBasic_SMod_Vector_UnsignedResult.spvasm.expected.ir.fxc.hlsl
+++ /dev/null
@@ -1,10 +0,0 @@
-SKIP: FAILED
-
-void main_1() {
-  uint2 x_1 = uint2(30u, 10u);
-}
-
-void main() {
-  main_1();
-}
-
diff --git a/test/tint/unittest/reader/spirv/SpvBinaryArithTestBasic_VectorTimesMatrix.spvasm.expected.ir.fxc.hlsl b/test/tint/unittest/reader/spirv/SpvBinaryArithTestBasic_VectorTimesMatrix.spvasm.expected.ir.fxc.hlsl
deleted file mode 100644
index 4f7063f..0000000
--- a/test/tint/unittest/reader/spirv/SpvBinaryArithTestBasic_VectorTimesMatrix.spvasm.expected.ir.fxc.hlsl
+++ /dev/null
@@ -1,10 +0,0 @@
-SKIP: FAILED
-
-void main_1() {
-  float2 x_10 = float2(6100.0f, 6000.0f);
-}
-
-void main() {
-  main_1();
-}
-
diff --git a/test/tint/unittest/reader/spirv/SpvBinaryArithTestBasic_VectorTimesScalar.spvasm.expected.ir.fxc.hlsl b/test/tint/unittest/reader/spirv/SpvBinaryArithTestBasic_VectorTimesScalar.spvasm.expected.ir.fxc.hlsl
deleted file mode 100644
index 135b373..0000000
--- a/test/tint/unittest/reader/spirv/SpvBinaryArithTestBasic_VectorTimesScalar.spvasm.expected.ir.fxc.hlsl
+++ /dev/null
@@ -1,10 +0,0 @@
-SKIP: FAILED
-
-void main_1() {
-  float2 x_10 = float2(2500.0f, 3000.0f);
-}
-
-void main() {
-  main_1();
-}
-
diff --git a/test/tint/unittest/reader/spirv/SpvBinaryDerivativeTest_SpvBinaryDerivativeTest_Derivatives_0.spvasm.expected.ir.fxc.hlsl b/test/tint/unittest/reader/spirv/SpvBinaryDerivativeTest_SpvBinaryDerivativeTest_Derivatives_0.spvasm.expected.ir.fxc.hlsl
deleted file mode 100644
index d759573..0000000
--- a/test/tint/unittest/reader/spirv/SpvBinaryDerivativeTest_SpvBinaryDerivativeTest_Derivatives_0.spvasm.expected.ir.fxc.hlsl
+++ /dev/null
@@ -1,11 +0,0 @@
-SKIP: FAILED
-
-void main_1() {
-  float x_1 = 50.0f;
-  float x_2 = ddx(x_1);
-}
-
-void main() {
-  main_1();
-}
-
diff --git a/test/tint/unittest/reader/spirv/SpvBinaryDerivativeTest_SpvBinaryDerivativeTest_Derivatives_1.spvasm.expected.ir.fxc.hlsl b/test/tint/unittest/reader/spirv/SpvBinaryDerivativeTest_SpvBinaryDerivativeTest_Derivatives_1.spvasm.expected.ir.fxc.hlsl
deleted file mode 100644
index c31a9df..0000000
--- a/test/tint/unittest/reader/spirv/SpvBinaryDerivativeTest_SpvBinaryDerivativeTest_Derivatives_1.spvasm.expected.ir.fxc.hlsl
+++ /dev/null
@@ -1,11 +0,0 @@
-SKIP: FAILED
-
-void main_1() {
-  float2 x_1 = float2(50.0f, 60.0f);
-  float2 x_2 = ddx(x_1);
-}
-
-void main() {
-  main_1();
-}
-
diff --git a/test/tint/unittest/reader/spirv/SpvBinaryDerivativeTest_SpvBinaryDerivativeTest_Derivatives_10.spvasm.expected.ir.fxc.hlsl b/test/tint/unittest/reader/spirv/SpvBinaryDerivativeTest_SpvBinaryDerivativeTest_Derivatives_10.spvasm.expected.ir.fxc.hlsl
deleted file mode 100644
index 4f6fa77..0000000
--- a/test/tint/unittest/reader/spirv/SpvBinaryDerivativeTest_SpvBinaryDerivativeTest_Derivatives_10.spvasm.expected.ir.fxc.hlsl
+++ /dev/null
@@ -1,11 +0,0 @@
-SKIP: FAILED
-
-void main_1() {
-  float2 x_1 = float2(50.0f, 60.0f);
-  float2 x_2 = ddx_fine(x_1);
-}
-
-void main() {
-  main_1();
-}
-
diff --git a/test/tint/unittest/reader/spirv/SpvBinaryDerivativeTest_SpvBinaryDerivativeTest_Derivatives_11.spvasm.expected.ir.fxc.hlsl b/test/tint/unittest/reader/spirv/SpvBinaryDerivativeTest_SpvBinaryDerivativeTest_Derivatives_11.spvasm.expected.ir.fxc.hlsl
deleted file mode 100644
index 4a891ad..0000000
--- a/test/tint/unittest/reader/spirv/SpvBinaryDerivativeTest_SpvBinaryDerivativeTest_Derivatives_11.spvasm.expected.ir.fxc.hlsl
+++ /dev/null
@@ -1,11 +0,0 @@
-SKIP: FAILED
-
-void main_1() {
-  float3 x_1 = float3(50.0f, 60.0f, 70.0f);
-  float3 x_2 = ddx_fine(x_1);
-}
-
-void main() {
-  main_1();
-}
-
diff --git a/test/tint/unittest/reader/spirv/SpvBinaryDerivativeTest_SpvBinaryDerivativeTest_Derivatives_12.spvasm.expected.ir.fxc.hlsl b/test/tint/unittest/reader/spirv/SpvBinaryDerivativeTest_SpvBinaryDerivativeTest_Derivatives_12.spvasm.expected.ir.fxc.hlsl
deleted file mode 100644
index 95089a6..0000000
--- a/test/tint/unittest/reader/spirv/SpvBinaryDerivativeTest_SpvBinaryDerivativeTest_Derivatives_12.spvasm.expected.ir.fxc.hlsl
+++ /dev/null
@@ -1,11 +0,0 @@
-SKIP: FAILED
-
-void main_1() {
-  float x_1 = 50.0f;
-  float x_2 = ddy_fine(x_1);
-}
-
-void main() {
-  main_1();
-}
-
diff --git a/test/tint/unittest/reader/spirv/SpvBinaryDerivativeTest_SpvBinaryDerivativeTest_Derivatives_13.spvasm.expected.ir.fxc.hlsl b/test/tint/unittest/reader/spirv/SpvBinaryDerivativeTest_SpvBinaryDerivativeTest_Derivatives_13.spvasm.expected.ir.fxc.hlsl
deleted file mode 100644
index 43dc2f3..0000000
--- a/test/tint/unittest/reader/spirv/SpvBinaryDerivativeTest_SpvBinaryDerivativeTest_Derivatives_13.spvasm.expected.ir.fxc.hlsl
+++ /dev/null
@@ -1,11 +0,0 @@
-SKIP: FAILED
-
-void main_1() {
-  float2 x_1 = float2(50.0f, 60.0f);
-  float2 x_2 = ddy_fine(x_1);
-}
-
-void main() {
-  main_1();
-}
-
diff --git a/test/tint/unittest/reader/spirv/SpvBinaryDerivativeTest_SpvBinaryDerivativeTest_Derivatives_14.spvasm.expected.ir.fxc.hlsl b/test/tint/unittest/reader/spirv/SpvBinaryDerivativeTest_SpvBinaryDerivativeTest_Derivatives_14.spvasm.expected.ir.fxc.hlsl
deleted file mode 100644
index 41bdb76..0000000
--- a/test/tint/unittest/reader/spirv/SpvBinaryDerivativeTest_SpvBinaryDerivativeTest_Derivatives_14.spvasm.expected.ir.fxc.hlsl
+++ /dev/null
@@ -1,11 +0,0 @@
-SKIP: FAILED
-
-void main_1() {
-  float3 x_1 = float3(50.0f, 60.0f, 70.0f);
-  float3 x_2 = ddy_fine(x_1);
-}
-
-void main() {
-  main_1();
-}
-
diff --git a/test/tint/unittest/reader/spirv/SpvBinaryDerivativeTest_SpvBinaryDerivativeTest_Derivatives_15.spvasm.expected.ir.fxc.hlsl b/test/tint/unittest/reader/spirv/SpvBinaryDerivativeTest_SpvBinaryDerivativeTest_Derivatives_15.spvasm.expected.ir.fxc.hlsl
deleted file mode 100644
index 3c5b103..0000000
--- a/test/tint/unittest/reader/spirv/SpvBinaryDerivativeTest_SpvBinaryDerivativeTest_Derivatives_15.spvasm.expected.ir.fxc.hlsl
+++ /dev/null
@@ -1,11 +0,0 @@
-SKIP: FAILED
-
-void main_1() {
-  float x_1 = 50.0f;
-  float x_2 = fwidth(x_1);
-}
-
-void main() {
-  main_1();
-}
-
diff --git a/test/tint/unittest/reader/spirv/SpvBinaryDerivativeTest_SpvBinaryDerivativeTest_Derivatives_16.spvasm.expected.ir.fxc.hlsl b/test/tint/unittest/reader/spirv/SpvBinaryDerivativeTest_SpvBinaryDerivativeTest_Derivatives_16.spvasm.expected.ir.fxc.hlsl
deleted file mode 100644
index d0a666d..0000000
--- a/test/tint/unittest/reader/spirv/SpvBinaryDerivativeTest_SpvBinaryDerivativeTest_Derivatives_16.spvasm.expected.ir.fxc.hlsl
+++ /dev/null
@@ -1,11 +0,0 @@
-SKIP: FAILED
-
-void main_1() {
-  float2 x_1 = float2(50.0f, 60.0f);
-  float2 x_2 = fwidth(x_1);
-}
-
-void main() {
-  main_1();
-}
-
diff --git a/test/tint/unittest/reader/spirv/SpvBinaryDerivativeTest_SpvBinaryDerivativeTest_Derivatives_17.spvasm.expected.ir.fxc.hlsl b/test/tint/unittest/reader/spirv/SpvBinaryDerivativeTest_SpvBinaryDerivativeTest_Derivatives_17.spvasm.expected.ir.fxc.hlsl
deleted file mode 100644
index e366def..0000000
--- a/test/tint/unittest/reader/spirv/SpvBinaryDerivativeTest_SpvBinaryDerivativeTest_Derivatives_17.spvasm.expected.ir.fxc.hlsl
+++ /dev/null
@@ -1,11 +0,0 @@
-SKIP: FAILED
-
-void main_1() {
-  float3 x_1 = float3(50.0f, 60.0f, 70.0f);
-  float3 x_2 = fwidth(x_1);
-}
-
-void main() {
-  main_1();
-}
-
diff --git a/test/tint/unittest/reader/spirv/SpvBinaryDerivativeTest_SpvBinaryDerivativeTest_Derivatives_18.spvasm.expected.ir.fxc.hlsl b/test/tint/unittest/reader/spirv/SpvBinaryDerivativeTest_SpvBinaryDerivativeTest_Derivatives_18.spvasm.expected.ir.fxc.hlsl
deleted file mode 100644
index a2c5320..0000000
--- a/test/tint/unittest/reader/spirv/SpvBinaryDerivativeTest_SpvBinaryDerivativeTest_Derivatives_18.spvasm.expected.ir.fxc.hlsl
+++ /dev/null
@@ -1,11 +0,0 @@
-SKIP: FAILED
-
-void main_1() {
-  float x_1 = 50.0f;
-  float x_2 = ddx_coarse(x_1);
-}
-
-void main() {
-  main_1();
-}
-
diff --git a/test/tint/unittest/reader/spirv/SpvBinaryDerivativeTest_SpvBinaryDerivativeTest_Derivatives_19.spvasm.expected.ir.fxc.hlsl b/test/tint/unittest/reader/spirv/SpvBinaryDerivativeTest_SpvBinaryDerivativeTest_Derivatives_19.spvasm.expected.ir.fxc.hlsl
deleted file mode 100644
index fb014e4..0000000
--- a/test/tint/unittest/reader/spirv/SpvBinaryDerivativeTest_SpvBinaryDerivativeTest_Derivatives_19.spvasm.expected.ir.fxc.hlsl
+++ /dev/null
@@ -1,11 +0,0 @@
-SKIP: FAILED
-
-void main_1() {
-  float2 x_1 = float2(50.0f, 60.0f);
-  float2 x_2 = ddx_coarse(x_1);
-}
-
-void main() {
-  main_1();
-}
-
diff --git a/test/tint/unittest/reader/spirv/SpvBinaryDerivativeTest_SpvBinaryDerivativeTest_Derivatives_2.spvasm.expected.ir.fxc.hlsl b/test/tint/unittest/reader/spirv/SpvBinaryDerivativeTest_SpvBinaryDerivativeTest_Derivatives_2.spvasm.expected.ir.fxc.hlsl
deleted file mode 100644
index 4f87300..0000000
--- a/test/tint/unittest/reader/spirv/SpvBinaryDerivativeTest_SpvBinaryDerivativeTest_Derivatives_2.spvasm.expected.ir.fxc.hlsl
+++ /dev/null
@@ -1,11 +0,0 @@
-SKIP: FAILED
-
-void main_1() {
-  float3 x_1 = float3(50.0f, 60.0f, 70.0f);
-  float3 x_2 = ddx(x_1);
-}
-
-void main() {
-  main_1();
-}
-
diff --git a/test/tint/unittest/reader/spirv/SpvBinaryDerivativeTest_SpvBinaryDerivativeTest_Derivatives_20.spvasm.expected.ir.fxc.hlsl b/test/tint/unittest/reader/spirv/SpvBinaryDerivativeTest_SpvBinaryDerivativeTest_Derivatives_20.spvasm.expected.ir.fxc.hlsl
deleted file mode 100644
index fb11bb4..0000000
--- a/test/tint/unittest/reader/spirv/SpvBinaryDerivativeTest_SpvBinaryDerivativeTest_Derivatives_20.spvasm.expected.ir.fxc.hlsl
+++ /dev/null
@@ -1,11 +0,0 @@
-SKIP: FAILED
-
-void main_1() {
-  float3 x_1 = float3(50.0f, 60.0f, 70.0f);
-  float3 x_2 = ddx_coarse(x_1);
-}
-
-void main() {
-  main_1();
-}
-
diff --git a/test/tint/unittest/reader/spirv/SpvBinaryDerivativeTest_SpvBinaryDerivativeTest_Derivatives_21.spvasm.expected.ir.fxc.hlsl b/test/tint/unittest/reader/spirv/SpvBinaryDerivativeTest_SpvBinaryDerivativeTest_Derivatives_21.spvasm.expected.ir.fxc.hlsl
deleted file mode 100644
index d5262b6..0000000
--- a/test/tint/unittest/reader/spirv/SpvBinaryDerivativeTest_SpvBinaryDerivativeTest_Derivatives_21.spvasm.expected.ir.fxc.hlsl
+++ /dev/null
@@ -1,11 +0,0 @@
-SKIP: FAILED
-
-void main_1() {
-  float x_1 = 50.0f;
-  float x_2 = ddy_coarse(x_1);
-}
-
-void main() {
-  main_1();
-}
-
diff --git a/test/tint/unittest/reader/spirv/SpvBinaryDerivativeTest_SpvBinaryDerivativeTest_Derivatives_22.spvasm.expected.ir.fxc.hlsl b/test/tint/unittest/reader/spirv/SpvBinaryDerivativeTest_SpvBinaryDerivativeTest_Derivatives_22.spvasm.expected.ir.fxc.hlsl
deleted file mode 100644
index 437bd27..0000000
--- a/test/tint/unittest/reader/spirv/SpvBinaryDerivativeTest_SpvBinaryDerivativeTest_Derivatives_22.spvasm.expected.ir.fxc.hlsl
+++ /dev/null
@@ -1,11 +0,0 @@
-SKIP: FAILED
-
-void main_1() {
-  float2 x_1 = float2(50.0f, 60.0f);
-  float2 x_2 = ddy_coarse(x_1);
-}
-
-void main() {
-  main_1();
-}
-
diff --git a/test/tint/unittest/reader/spirv/SpvBinaryDerivativeTest_SpvBinaryDerivativeTest_Derivatives_23.spvasm.expected.ir.fxc.hlsl b/test/tint/unittest/reader/spirv/SpvBinaryDerivativeTest_SpvBinaryDerivativeTest_Derivatives_23.spvasm.expected.ir.fxc.hlsl
deleted file mode 100644
index 11db204..0000000
--- a/test/tint/unittest/reader/spirv/SpvBinaryDerivativeTest_SpvBinaryDerivativeTest_Derivatives_23.spvasm.expected.ir.fxc.hlsl
+++ /dev/null
@@ -1,11 +0,0 @@
-SKIP: FAILED
-
-void main_1() {
-  float3 x_1 = float3(50.0f, 60.0f, 70.0f);
-  float3 x_2 = ddy_coarse(x_1);
-}
-
-void main() {
-  main_1();
-}
-
diff --git a/test/tint/unittest/reader/spirv/SpvBinaryDerivativeTest_SpvBinaryDerivativeTest_Derivatives_24.spvasm.expected.ir.fxc.hlsl b/test/tint/unittest/reader/spirv/SpvBinaryDerivativeTest_SpvBinaryDerivativeTest_Derivatives_24.spvasm.expected.ir.fxc.hlsl
deleted file mode 100644
index 3c5b103..0000000
--- a/test/tint/unittest/reader/spirv/SpvBinaryDerivativeTest_SpvBinaryDerivativeTest_Derivatives_24.spvasm.expected.ir.fxc.hlsl
+++ /dev/null
@@ -1,11 +0,0 @@
-SKIP: FAILED
-
-void main_1() {
-  float x_1 = 50.0f;
-  float x_2 = fwidth(x_1);
-}
-
-void main() {
-  main_1();
-}
-
diff --git a/test/tint/unittest/reader/spirv/SpvBinaryDerivativeTest_SpvBinaryDerivativeTest_Derivatives_25.spvasm.expected.ir.fxc.hlsl b/test/tint/unittest/reader/spirv/SpvBinaryDerivativeTest_SpvBinaryDerivativeTest_Derivatives_25.spvasm.expected.ir.fxc.hlsl
deleted file mode 100644
index d0a666d..0000000
--- a/test/tint/unittest/reader/spirv/SpvBinaryDerivativeTest_SpvBinaryDerivativeTest_Derivatives_25.spvasm.expected.ir.fxc.hlsl
+++ /dev/null
@@ -1,11 +0,0 @@
-SKIP: FAILED
-
-void main_1() {
-  float2 x_1 = float2(50.0f, 60.0f);
-  float2 x_2 = fwidth(x_1);
-}
-
-void main() {
-  main_1();
-}
-
diff --git a/test/tint/unittest/reader/spirv/SpvBinaryDerivativeTest_SpvBinaryDerivativeTest_Derivatives_26.spvasm.expected.ir.fxc.hlsl b/test/tint/unittest/reader/spirv/SpvBinaryDerivativeTest_SpvBinaryDerivativeTest_Derivatives_26.spvasm.expected.ir.fxc.hlsl
deleted file mode 100644
index e366def..0000000
--- a/test/tint/unittest/reader/spirv/SpvBinaryDerivativeTest_SpvBinaryDerivativeTest_Derivatives_26.spvasm.expected.ir.fxc.hlsl
+++ /dev/null
@@ -1,11 +0,0 @@
-SKIP: FAILED
-
-void main_1() {
-  float3 x_1 = float3(50.0f, 60.0f, 70.0f);
-  float3 x_2 = fwidth(x_1);
-}
-
-void main() {
-  main_1();
-}
-
diff --git a/test/tint/unittest/reader/spirv/SpvBinaryDerivativeTest_SpvBinaryDerivativeTest_Derivatives_3.spvasm.expected.ir.fxc.hlsl b/test/tint/unittest/reader/spirv/SpvBinaryDerivativeTest_SpvBinaryDerivativeTest_Derivatives_3.spvasm.expected.ir.fxc.hlsl
deleted file mode 100644
index 4eece90..0000000
--- a/test/tint/unittest/reader/spirv/SpvBinaryDerivativeTest_SpvBinaryDerivativeTest_Derivatives_3.spvasm.expected.ir.fxc.hlsl
+++ /dev/null
@@ -1,11 +0,0 @@
-SKIP: FAILED
-
-void main_1() {
-  float x_1 = 50.0f;
-  float x_2 = ddy(x_1);
-}
-
-void main() {
-  main_1();
-}
-
diff --git a/test/tint/unittest/reader/spirv/SpvBinaryDerivativeTest_SpvBinaryDerivativeTest_Derivatives_4.spvasm.expected.ir.fxc.hlsl b/test/tint/unittest/reader/spirv/SpvBinaryDerivativeTest_SpvBinaryDerivativeTest_Derivatives_4.spvasm.expected.ir.fxc.hlsl
deleted file mode 100644
index 9e27f97..0000000
--- a/test/tint/unittest/reader/spirv/SpvBinaryDerivativeTest_SpvBinaryDerivativeTest_Derivatives_4.spvasm.expected.ir.fxc.hlsl
+++ /dev/null
@@ -1,11 +0,0 @@
-SKIP: FAILED
-
-void main_1() {
-  float2 x_1 = float2(50.0f, 60.0f);
-  float2 x_2 = ddy(x_1);
-}
-
-void main() {
-  main_1();
-}
-
diff --git a/test/tint/unittest/reader/spirv/SpvBinaryDerivativeTest_SpvBinaryDerivativeTest_Derivatives_5.spvasm.expected.ir.fxc.hlsl b/test/tint/unittest/reader/spirv/SpvBinaryDerivativeTest_SpvBinaryDerivativeTest_Derivatives_5.spvasm.expected.ir.fxc.hlsl
deleted file mode 100644
index d31a7a7..0000000
--- a/test/tint/unittest/reader/spirv/SpvBinaryDerivativeTest_SpvBinaryDerivativeTest_Derivatives_5.spvasm.expected.ir.fxc.hlsl
+++ /dev/null
@@ -1,11 +0,0 @@
-SKIP: FAILED
-
-void main_1() {
-  float3 x_1 = float3(50.0f, 60.0f, 70.0f);
-  float3 x_2 = ddy(x_1);
-}
-
-void main() {
-  main_1();
-}
-
diff --git a/test/tint/unittest/reader/spirv/SpvBinaryDerivativeTest_SpvBinaryDerivativeTest_Derivatives_6.spvasm.expected.ir.fxc.hlsl b/test/tint/unittest/reader/spirv/SpvBinaryDerivativeTest_SpvBinaryDerivativeTest_Derivatives_6.spvasm.expected.ir.fxc.hlsl
deleted file mode 100644
index 3c5b103..0000000
--- a/test/tint/unittest/reader/spirv/SpvBinaryDerivativeTest_SpvBinaryDerivativeTest_Derivatives_6.spvasm.expected.ir.fxc.hlsl
+++ /dev/null
@@ -1,11 +0,0 @@
-SKIP: FAILED
-
-void main_1() {
-  float x_1 = 50.0f;
-  float x_2 = fwidth(x_1);
-}
-
-void main() {
-  main_1();
-}
-
diff --git a/test/tint/unittest/reader/spirv/SpvBinaryDerivativeTest_SpvBinaryDerivativeTest_Derivatives_7.spvasm.expected.ir.fxc.hlsl b/test/tint/unittest/reader/spirv/SpvBinaryDerivativeTest_SpvBinaryDerivativeTest_Derivatives_7.spvasm.expected.ir.fxc.hlsl
deleted file mode 100644
index d0a666d..0000000
--- a/test/tint/unittest/reader/spirv/SpvBinaryDerivativeTest_SpvBinaryDerivativeTest_Derivatives_7.spvasm.expected.ir.fxc.hlsl
+++ /dev/null
@@ -1,11 +0,0 @@
-SKIP: FAILED
-
-void main_1() {
-  float2 x_1 = float2(50.0f, 60.0f);
-  float2 x_2 = fwidth(x_1);
-}
-
-void main() {
-  main_1();
-}
-
diff --git a/test/tint/unittest/reader/spirv/SpvBinaryDerivativeTest_SpvBinaryDerivativeTest_Derivatives_8.spvasm.expected.ir.fxc.hlsl b/test/tint/unittest/reader/spirv/SpvBinaryDerivativeTest_SpvBinaryDerivativeTest_Derivatives_8.spvasm.expected.ir.fxc.hlsl
deleted file mode 100644
index e366def..0000000
--- a/test/tint/unittest/reader/spirv/SpvBinaryDerivativeTest_SpvBinaryDerivativeTest_Derivatives_8.spvasm.expected.ir.fxc.hlsl
+++ /dev/null
@@ -1,11 +0,0 @@
-SKIP: FAILED
-
-void main_1() {
-  float3 x_1 = float3(50.0f, 60.0f, 70.0f);
-  float3 x_2 = fwidth(x_1);
-}
-
-void main() {
-  main_1();
-}
-
diff --git a/test/tint/unittest/reader/spirv/SpvBinaryDerivativeTest_SpvBinaryDerivativeTest_Derivatives_9.spvasm.expected.ir.fxc.hlsl b/test/tint/unittest/reader/spirv/SpvBinaryDerivativeTest_SpvBinaryDerivativeTest_Derivatives_9.spvasm.expected.ir.fxc.hlsl
deleted file mode 100644
index 61e10c0..0000000
--- a/test/tint/unittest/reader/spirv/SpvBinaryDerivativeTest_SpvBinaryDerivativeTest_Derivatives_9.spvasm.expected.ir.fxc.hlsl
+++ /dev/null
@@ -1,11 +0,0 @@
-SKIP: FAILED
-
-void main_1() {
-  float x_1 = 50.0f;
-  float x_2 = ddx_fine(x_1);
-}
-
-void main() {
-  main_1();
-}
-
diff --git a/test/tint/unittest/reader/spirv/SpvFUnordTest_FUnordEqual_Scalar.spvasm.expected.ir.fxc.hlsl b/test/tint/unittest/reader/spirv/SpvFUnordTest_FUnordEqual_Scalar.spvasm.expected.ir.fxc.hlsl
deleted file mode 100644
index 969210b..0000000
--- a/test/tint/unittest/reader/spirv/SpvFUnordTest_FUnordEqual_Scalar.spvasm.expected.ir.fxc.hlsl
+++ /dev/null
@@ -1,10 +0,0 @@
-SKIP: FAILED
-
-void main_1() {
-  bool x_1 = false;
-}
-
-void main() {
-  main_1();
-}
-
diff --git a/test/tint/unittest/reader/spirv/SpvFUnordTest_FUnordEqual_Vector.spvasm.expected.ir.fxc.hlsl b/test/tint/unittest/reader/spirv/SpvFUnordTest_FUnordEqual_Vector.spvasm.expected.ir.fxc.hlsl
deleted file mode 100644
index a217ea8..0000000
--- a/test/tint/unittest/reader/spirv/SpvFUnordTest_FUnordEqual_Vector.spvasm.expected.ir.fxc.hlsl
+++ /dev/null
@@ -1,10 +0,0 @@
-SKIP: FAILED
-
-void main_1() {
-  bool2 x_1 = (false).xx;
-}
-
-void main() {
-  main_1();
-}
-
diff --git a/test/tint/unittest/reader/spirv/SpvFUnordTest_FUnordGreaterThanEqual_Scalar.spvasm.expected.ir.fxc.hlsl b/test/tint/unittest/reader/spirv/SpvFUnordTest_FUnordGreaterThanEqual_Scalar.spvasm.expected.ir.fxc.hlsl
deleted file mode 100644
index 969210b..0000000
--- a/test/tint/unittest/reader/spirv/SpvFUnordTest_FUnordGreaterThanEqual_Scalar.spvasm.expected.ir.fxc.hlsl
+++ /dev/null
@@ -1,10 +0,0 @@
-SKIP: FAILED
-
-void main_1() {
-  bool x_1 = false;
-}
-
-void main() {
-  main_1();
-}
-
diff --git a/test/tint/unittest/reader/spirv/SpvFUnordTest_FUnordGreaterThanEqual_Vector.spvasm.expected.ir.fxc.hlsl b/test/tint/unittest/reader/spirv/SpvFUnordTest_FUnordGreaterThanEqual_Vector.spvasm.expected.ir.fxc.hlsl
deleted file mode 100644
index b3adcc7..0000000
--- a/test/tint/unittest/reader/spirv/SpvFUnordTest_FUnordGreaterThanEqual_Vector.spvasm.expected.ir.fxc.hlsl
+++ /dev/null
@@ -1,10 +0,0 @@
-SKIP: FAILED
-
-void main_1() {
-  bool2 x_1 = bool2(false, true);
-}
-
-void main() {
-  main_1();
-}
-
diff --git a/test/tint/unittest/reader/spirv/SpvFUnordTest_FUnordGreaterThan_Scalar.spvasm.expected.ir.fxc.hlsl b/test/tint/unittest/reader/spirv/SpvFUnordTest_FUnordGreaterThan_Scalar.spvasm.expected.ir.fxc.hlsl
deleted file mode 100644
index 969210b..0000000
--- a/test/tint/unittest/reader/spirv/SpvFUnordTest_FUnordGreaterThan_Scalar.spvasm.expected.ir.fxc.hlsl
+++ /dev/null
@@ -1,10 +0,0 @@
-SKIP: FAILED
-
-void main_1() {
-  bool x_1 = false;
-}
-
-void main() {
-  main_1();
-}
-
diff --git a/test/tint/unittest/reader/spirv/SpvFUnordTest_FUnordGreaterThan_Vector.spvasm.expected.ir.fxc.hlsl b/test/tint/unittest/reader/spirv/SpvFUnordTest_FUnordGreaterThan_Vector.spvasm.expected.ir.fxc.hlsl
deleted file mode 100644
index b3adcc7..0000000
--- a/test/tint/unittest/reader/spirv/SpvFUnordTest_FUnordGreaterThan_Vector.spvasm.expected.ir.fxc.hlsl
+++ /dev/null
@@ -1,10 +0,0 @@
-SKIP: FAILED
-
-void main_1() {
-  bool2 x_1 = bool2(false, true);
-}
-
-void main() {
-  main_1();
-}
-
diff --git a/test/tint/unittest/reader/spirv/SpvFUnordTest_FUnordLessThanEqual_Scalar.spvasm.expected.ir.fxc.hlsl b/test/tint/unittest/reader/spirv/SpvFUnordTest_FUnordLessThanEqual_Scalar.spvasm.expected.ir.fxc.hlsl
deleted file mode 100644
index 00baddd..0000000
--- a/test/tint/unittest/reader/spirv/SpvFUnordTest_FUnordLessThanEqual_Scalar.spvasm.expected.ir.fxc.hlsl
+++ /dev/null
@@ -1,10 +0,0 @@
-SKIP: FAILED
-
-void main_1() {
-  bool x_1 = true;
-}
-
-void main() {
-  main_1();
-}
-
diff --git a/test/tint/unittest/reader/spirv/SpvFUnordTest_FUnordLessThanEqual_Vector.spvasm.expected.ir.fxc.hlsl b/test/tint/unittest/reader/spirv/SpvFUnordTest_FUnordLessThanEqual_Vector.spvasm.expected.ir.fxc.hlsl
deleted file mode 100644
index fecb7b9..0000000
--- a/test/tint/unittest/reader/spirv/SpvFUnordTest_FUnordLessThanEqual_Vector.spvasm.expected.ir.fxc.hlsl
+++ /dev/null
@@ -1,10 +0,0 @@
-SKIP: FAILED
-
-void main_1() {
-  bool2 x_1 = bool2(true, false);
-}
-
-void main() {
-  main_1();
-}
-
diff --git a/test/tint/unittest/reader/spirv/SpvFUnordTest_FUnordLessThan_Scalar.spvasm.expected.ir.fxc.hlsl b/test/tint/unittest/reader/spirv/SpvFUnordTest_FUnordLessThan_Scalar.spvasm.expected.ir.fxc.hlsl
deleted file mode 100644
index 00baddd..0000000
--- a/test/tint/unittest/reader/spirv/SpvFUnordTest_FUnordLessThan_Scalar.spvasm.expected.ir.fxc.hlsl
+++ /dev/null
@@ -1,10 +0,0 @@
-SKIP: FAILED
-
-void main_1() {
-  bool x_1 = true;
-}
-
-void main() {
-  main_1();
-}
-
diff --git a/test/tint/unittest/reader/spirv/SpvFUnordTest_FUnordLessThan_Vector.spvasm.expected.ir.fxc.hlsl b/test/tint/unittest/reader/spirv/SpvFUnordTest_FUnordLessThan_Vector.spvasm.expected.ir.fxc.hlsl
deleted file mode 100644
index fecb7b9..0000000
--- a/test/tint/unittest/reader/spirv/SpvFUnordTest_FUnordLessThan_Vector.spvasm.expected.ir.fxc.hlsl
+++ /dev/null
@@ -1,10 +0,0 @@
-SKIP: FAILED
-
-void main_1() {
-  bool2 x_1 = bool2(true, false);
-}
-
-void main() {
-  main_1();
-}
-
diff --git a/test/tint/unittest/reader/spirv/SpvFUnordTest_FUnordNotEqual_Scalar.spvasm.expected.ir.fxc.hlsl b/test/tint/unittest/reader/spirv/SpvFUnordTest_FUnordNotEqual_Scalar.spvasm.expected.ir.fxc.hlsl
deleted file mode 100644
index 00baddd..0000000
--- a/test/tint/unittest/reader/spirv/SpvFUnordTest_FUnordNotEqual_Scalar.spvasm.expected.ir.fxc.hlsl
+++ /dev/null
@@ -1,10 +0,0 @@
-SKIP: FAILED
-
-void main_1() {
-  bool x_1 = true;
-}
-
-void main() {
-  main_1();
-}
-
diff --git a/test/tint/unittest/reader/spirv/SpvFUnordTest_FUnordNotEqual_Vector.spvasm.expected.ir.fxc.hlsl b/test/tint/unittest/reader/spirv/SpvFUnordTest_FUnordNotEqual_Vector.spvasm.expected.ir.fxc.hlsl
deleted file mode 100644
index 311dd17..0000000
--- a/test/tint/unittest/reader/spirv/SpvFUnordTest_FUnordNotEqual_Vector.spvasm.expected.ir.fxc.hlsl
+++ /dev/null
@@ -1,10 +0,0 @@
-SKIP: FAILED
-
-void main_1() {
-  bool2 x_1 = (true).xx;
-}
-
-void main() {
-  main_1();
-}
-
diff --git a/test/tint/unittest/reader/spirv/SpvLogicalTest_All.spvasm.expected.ir.fxc.hlsl b/test/tint/unittest/reader/spirv/SpvLogicalTest_All.spvasm.expected.ir.fxc.hlsl
deleted file mode 100644
index 969210b..0000000
--- a/test/tint/unittest/reader/spirv/SpvLogicalTest_All.spvasm.expected.ir.fxc.hlsl
+++ /dev/null
@@ -1,10 +0,0 @@
-SKIP: FAILED
-
-void main_1() {
-  bool x_1 = false;
-}
-
-void main() {
-  main_1();
-}
-
diff --git a/test/tint/unittest/reader/spirv/SpvLogicalTest_Any.spvasm.expected.ir.fxc.hlsl b/test/tint/unittest/reader/spirv/SpvLogicalTest_Any.spvasm.expected.ir.fxc.hlsl
deleted file mode 100644
index 00baddd..0000000
--- a/test/tint/unittest/reader/spirv/SpvLogicalTest_Any.spvasm.expected.ir.fxc.hlsl
+++ /dev/null
@@ -1,10 +0,0 @@
-SKIP: FAILED
-
-void main_1() {
-  bool x_1 = true;
-}
-
-void main() {
-  main_1();
-}
-
diff --git a/test/tint/unittest/reader/spirv/SpvLogicalTest_Select_BoolCond_BoolParams.spvasm.expected.ir.fxc.hlsl b/test/tint/unittest/reader/spirv/SpvLogicalTest_Select_BoolCond_BoolParams.spvasm.expected.ir.fxc.hlsl
deleted file mode 100644
index 00baddd..0000000
--- a/test/tint/unittest/reader/spirv/SpvLogicalTest_Select_BoolCond_BoolParams.spvasm.expected.ir.fxc.hlsl
+++ /dev/null
@@ -1,10 +0,0 @@
-SKIP: FAILED
-
-void main_1() {
-  bool x_1 = true;
-}
-
-void main() {
-  main_1();
-}
-
diff --git a/test/tint/unittest/reader/spirv/SpvLogicalTest_Select_BoolCond_FloatScalarParams.spvasm.expected.ir.fxc.hlsl b/test/tint/unittest/reader/spirv/SpvLogicalTest_Select_BoolCond_FloatScalarParams.spvasm.expected.ir.fxc.hlsl
deleted file mode 100644
index b78ee37..0000000
--- a/test/tint/unittest/reader/spirv/SpvLogicalTest_Select_BoolCond_FloatScalarParams.spvasm.expected.ir.fxc.hlsl
+++ /dev/null
@@ -1,10 +0,0 @@
-SKIP: FAILED
-
-void main_1() {
-  float x_1 = 50.0f;
-}
-
-void main() {
-  main_1();
-}
-
diff --git a/test/tint/unittest/reader/spirv/SpvLogicalTest_Select_BoolCond_IntScalarParams.spvasm.expected.ir.fxc.hlsl b/test/tint/unittest/reader/spirv/SpvLogicalTest_Select_BoolCond_IntScalarParams.spvasm.expected.ir.fxc.hlsl
deleted file mode 100644
index eaee1f0..0000000
--- a/test/tint/unittest/reader/spirv/SpvLogicalTest_Select_BoolCond_IntScalarParams.spvasm.expected.ir.fxc.hlsl
+++ /dev/null
@@ -1,10 +0,0 @@
-SKIP: FAILED
-
-void main_1() {
-  uint x_1 = 10u;
-}
-
-void main() {
-  main_1();
-}
-
diff --git a/test/tint/unittest/reader/spirv/SpvLogicalTest_Select_VecBoolCond_VectorParams.spvasm.expected.ir.fxc.hlsl b/test/tint/unittest/reader/spirv/SpvLogicalTest_Select_VecBoolCond_VectorParams.spvasm.expected.ir.fxc.hlsl
deleted file mode 100644
index c5513ca..0000000
--- a/test/tint/unittest/reader/spirv/SpvLogicalTest_Select_VecBoolCond_VectorParams.spvasm.expected.ir.fxc.hlsl
+++ /dev/null
@@ -1,10 +0,0 @@
-SKIP: FAILED
-
-void main_1() {
-  uint2 x_1 = (10u).xx;
-}
-
-void main() {
-  main_1();
-}
-
diff --git a/test/tint/unittest/reader/spirv/SpvModuleScopeVarParserTest_AnonWorkgroupVar.spvasm.expected.ir.fxc.hlsl b/test/tint/unittest/reader/spirv/SpvModuleScopeVarParserTest_AnonWorkgroupVar.spvasm.expected.ir.fxc.hlsl
deleted file mode 100644
index a096ece..0000000
--- a/test/tint/unittest/reader/spirv/SpvModuleScopeVarParserTest_AnonWorkgroupVar.spvasm.expected.ir.fxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-void main_1() {
-}
-
-void main() {
-  main_1();
-}
-
diff --git a/test/tint/unittest/reader/spirv/SpvModuleScopeVarParserTest_ArrayInitializer.spvasm.expected.ir.fxc.hlsl b/test/tint/unittest/reader/spirv/SpvModuleScopeVarParserTest_ArrayInitializer.spvasm.expected.ir.fxc.hlsl
deleted file mode 100644
index a096ece..0000000
--- a/test/tint/unittest/reader/spirv/SpvModuleScopeVarParserTest_ArrayInitializer.spvasm.expected.ir.fxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-void main_1() {
-}
-
-void main() {
-  main_1();
-}
-
diff --git a/test/tint/unittest/reader/spirv/SpvModuleScopeVarParserTest_ArrayNullInitializer.spvasm.expected.ir.fxc.hlsl b/test/tint/unittest/reader/spirv/SpvModuleScopeVarParserTest_ArrayNullInitializer.spvasm.expected.ir.fxc.hlsl
deleted file mode 100644
index a096ece..0000000
--- a/test/tint/unittest/reader/spirv/SpvModuleScopeVarParserTest_ArrayNullInitializer.spvasm.expected.ir.fxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-void main_1() {
-}
-
-void main() {
-  main_1();
-}
-
diff --git a/test/tint/unittest/reader/spirv/SpvModuleScopeVarParserTest_BindingDecoration_Valid.spvasm.expected.ir.fxc.hlsl b/test/tint/unittest/reader/spirv/SpvModuleScopeVarParserTest_BindingDecoration_Valid.spvasm.expected.ir.fxc.hlsl
deleted file mode 100644
index a096ece..0000000
--- a/test/tint/unittest/reader/spirv/SpvModuleScopeVarParserTest_BindingDecoration_Valid.spvasm.expected.ir.fxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-void main_1() {
-}
-
-void main() {
-  main_1();
-}
-
diff --git a/test/tint/unittest/reader/spirv/SpvModuleScopeVarParserTest_BuiltinPointSize_Loose_ReadReplaced_Vertex.spvasm.expected.ir.dxc.hlsl b/test/tint/unittest/reader/spirv/SpvModuleScopeVarParserTest_BuiltinPointSize_Loose_ReadReplaced_Vertex.spvasm.expected.ir.dxc.hlsl
deleted file mode 100644
index c6e1d96..0000000
--- a/test/tint/unittest/reader/spirv/SpvModuleScopeVarParserTest_BuiltinPointSize_Loose_ReadReplaced_Vertex.spvasm.expected.ir.dxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Construct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix 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_BuiltinPointSize_Loose_ReadReplaced_Vertex.spvasm.expected.ir.fxc.hlsl b/test/tint/unittest/reader/spirv/SpvModuleScopeVarParserTest_BuiltinPointSize_Loose_ReadReplaced_Vertex.spvasm.expected.ir.fxc.hlsl
deleted file mode 100644
index c6e1d96..0000000
--- a/test/tint/unittest/reader/spirv/SpvModuleScopeVarParserTest_BuiltinPointSize_Loose_ReadReplaced_Vertex.spvasm.expected.ir.fxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Construct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix 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_BuiltinPointSize_Loose_Write1_IsErased.spvasm.expected.ir.dxc.hlsl b/test/tint/unittest/reader/spirv/SpvModuleScopeVarParserTest_BuiltinPointSize_Loose_Write1_IsErased.spvasm.expected.ir.dxc.hlsl
deleted file mode 100644
index c6e1d96..0000000
--- a/test/tint/unittest/reader/spirv/SpvModuleScopeVarParserTest_BuiltinPointSize_Loose_Write1_IsErased.spvasm.expected.ir.dxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Construct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix 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_BuiltinPointSize_Loose_Write1_IsErased.spvasm.expected.ir.fxc.hlsl b/test/tint/unittest/reader/spirv/SpvModuleScopeVarParserTest_BuiltinPointSize_Loose_Write1_IsErased.spvasm.expected.ir.fxc.hlsl
deleted file mode 100644
index c6e1d96..0000000
--- a/test/tint/unittest/reader/spirv/SpvModuleScopeVarParserTest_BuiltinPointSize_Loose_Write1_IsErased.spvasm.expected.ir.fxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Construct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix 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_BuiltinPointSize_Loose_WriteViaCopyObjectPostAccessChainErased.spvasm.expected.ir.dxc.hlsl b/test/tint/unittest/reader/spirv/SpvModuleScopeVarParserTest_BuiltinPointSize_Loose_WriteViaCopyObjectPostAccessChainErased.spvasm.expected.ir.dxc.hlsl
deleted file mode 100644
index c6e1d96..0000000
--- a/test/tint/unittest/reader/spirv/SpvModuleScopeVarParserTest_BuiltinPointSize_Loose_WriteViaCopyObjectPostAccessChainErased.spvasm.expected.ir.dxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Construct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix 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_BuiltinPointSize_Loose_WriteViaCopyObjectPostAccessChainErased.spvasm.expected.ir.fxc.hlsl b/test/tint/unittest/reader/spirv/SpvModuleScopeVarParserTest_BuiltinPointSize_Loose_WriteViaCopyObjectPostAccessChainErased.spvasm.expected.ir.fxc.hlsl
deleted file mode 100644
index c6e1d96..0000000
--- a/test/tint/unittest/reader/spirv/SpvModuleScopeVarParserTest_BuiltinPointSize_Loose_WriteViaCopyObjectPostAccessChainErased.spvasm.expected.ir.fxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Construct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix 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_BuiltinPointSize_Loose_WriteViaCopyObjectPriorAccess_Erased.spvasm.expected.ir.dxc.hlsl b/test/tint/unittest/reader/spirv/SpvModuleScopeVarParserTest_BuiltinPointSize_Loose_WriteViaCopyObjectPriorAccess_Erased.spvasm.expected.ir.dxc.hlsl
deleted file mode 100644
index c6e1d96..0000000
--- a/test/tint/unittest/reader/spirv/SpvModuleScopeVarParserTest_BuiltinPointSize_Loose_WriteViaCopyObjectPriorAccess_Erased.spvasm.expected.ir.dxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Construct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix 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_BuiltinPointSize_Loose_WriteViaCopyObjectPriorAccess_Erased.spvasm.expected.ir.fxc.hlsl b/test/tint/unittest/reader/spirv/SpvModuleScopeVarParserTest_BuiltinPointSize_Loose_WriteViaCopyObjectPriorAccess_Erased.spvasm.expected.ir.fxc.hlsl
deleted file mode 100644
index c6e1d96..0000000
--- a/test/tint/unittest/reader/spirv/SpvModuleScopeVarParserTest_BuiltinPointSize_Loose_WriteViaCopyObjectPriorAccess_Erased.spvasm.expected.ir.fxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Construct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix 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_BuiltinPointSize_ReadReplaced.spvasm.expected.ir.dxc.hlsl b/test/tint/unittest/reader/spirv/SpvModuleScopeVarParserTest_BuiltinPointSize_ReadReplaced.spvasm.expected.ir.dxc.hlsl
deleted file mode 100644
index c6e1d96..0000000
--- a/test/tint/unittest/reader/spirv/SpvModuleScopeVarParserTest_BuiltinPointSize_ReadReplaced.spvasm.expected.ir.dxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Construct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix 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_BuiltinPointSize_ReadReplaced.spvasm.expected.ir.fxc.hlsl b/test/tint/unittest/reader/spirv/SpvModuleScopeVarParserTest_BuiltinPointSize_ReadReplaced.spvasm.expected.ir.fxc.hlsl
deleted file mode 100644
index c6e1d96..0000000
--- a/test/tint/unittest/reader/spirv/SpvModuleScopeVarParserTest_BuiltinPointSize_ReadReplaced.spvasm.expected.ir.fxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Construct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix 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_BuiltinPointSize_Write1_IsErased.spvasm.expected.ir.dxc.hlsl b/test/tint/unittest/reader/spirv/SpvModuleScopeVarParserTest_BuiltinPointSize_Write1_IsErased.spvasm.expected.ir.dxc.hlsl
deleted file mode 100644
index c6e1d96..0000000
--- a/test/tint/unittest/reader/spirv/SpvModuleScopeVarParserTest_BuiltinPointSize_Write1_IsErased.spvasm.expected.ir.dxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Construct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix 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_BuiltinPointSize_Write1_IsErased.spvasm.expected.ir.fxc.hlsl b/test/tint/unittest/reader/spirv/SpvModuleScopeVarParserTest_BuiltinPointSize_Write1_IsErased.spvasm.expected.ir.fxc.hlsl
deleted file mode 100644
index c6e1d96..0000000
--- a/test/tint/unittest/reader/spirv/SpvModuleScopeVarParserTest_BuiltinPointSize_Write1_IsErased.spvasm.expected.ir.fxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Construct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix 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_BuiltinPointSize_WriteViaCopyObjectPostAccessChainErased.spvasm.expected.ir.dxc.hlsl b/test/tint/unittest/reader/spirv/SpvModuleScopeVarParserTest_BuiltinPointSize_WriteViaCopyObjectPostAccessChainErased.spvasm.expected.ir.dxc.hlsl
deleted file mode 100644
index c6e1d96..0000000
--- a/test/tint/unittest/reader/spirv/SpvModuleScopeVarParserTest_BuiltinPointSize_WriteViaCopyObjectPostAccessChainErased.spvasm.expected.ir.dxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Construct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix 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_BuiltinPointSize_WriteViaCopyObjectPostAccessChainErased.spvasm.expected.ir.fxc.hlsl b/test/tint/unittest/reader/spirv/SpvModuleScopeVarParserTest_BuiltinPointSize_WriteViaCopyObjectPostAccessChainErased.spvasm.expected.ir.fxc.hlsl
deleted file mode 100644
index c6e1d96..0000000
--- a/test/tint/unittest/reader/spirv/SpvModuleScopeVarParserTest_BuiltinPointSize_WriteViaCopyObjectPostAccessChainErased.spvasm.expected.ir.fxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Construct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix 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_BuiltinPosition_BuiltIn_Position.spvasm.expected.ir.dxc.hlsl b/test/tint/unittest/reader/spirv/SpvModuleScopeVarParserTest_BuiltinPosition_BuiltIn_Position.spvasm.expected.ir.dxc.hlsl
deleted file mode 100644
index c6e1d96..0000000
--- a/test/tint/unittest/reader/spirv/SpvModuleScopeVarParserTest_BuiltinPosition_BuiltIn_Position.spvasm.expected.ir.dxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Construct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix 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_BuiltinPosition_BuiltIn_Position.spvasm.expected.ir.fxc.hlsl b/test/tint/unittest/reader/spirv/SpvModuleScopeVarParserTest_BuiltinPosition_BuiltIn_Position.spvasm.expected.ir.fxc.hlsl
deleted file mode 100644
index c6e1d96..0000000
--- a/test/tint/unittest/reader/spirv/SpvModuleScopeVarParserTest_BuiltinPosition_BuiltIn_Position.spvasm.expected.ir.fxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Construct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix 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_BuiltinPosition_BuiltIn_Position_Initializer.spvasm.expected.ir.dxc.hlsl b/test/tint/unittest/reader/spirv/SpvModuleScopeVarParserTest_BuiltinPosition_BuiltIn_Position_Initializer.spvasm.expected.ir.dxc.hlsl
deleted file mode 100644
index c6e1d96..0000000
--- a/test/tint/unittest/reader/spirv/SpvModuleScopeVarParserTest_BuiltinPosition_BuiltIn_Position_Initializer.spvasm.expected.ir.dxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Construct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix 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_BuiltinPosition_BuiltIn_Position_Initializer.spvasm.expected.ir.fxc.hlsl b/test/tint/unittest/reader/spirv/SpvModuleScopeVarParserTest_BuiltinPosition_BuiltIn_Position_Initializer.spvasm.expected.ir.fxc.hlsl
deleted file mode 100644
index c6e1d96..0000000
--- a/test/tint/unittest/reader/spirv/SpvModuleScopeVarParserTest_BuiltinPosition_BuiltIn_Position_Initializer.spvasm.expected.ir.fxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Construct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix 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_BuiltinPosition_StorePosition.spvasm.expected.ir.dxc.hlsl b/test/tint/unittest/reader/spirv/SpvModuleScopeVarParserTest_BuiltinPosition_StorePosition.spvasm.expected.ir.dxc.hlsl
deleted file mode 100644
index c6e1d96..0000000
--- a/test/tint/unittest/reader/spirv/SpvModuleScopeVarParserTest_BuiltinPosition_StorePosition.spvasm.expected.ir.dxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Construct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix 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_BuiltinPosition_StorePosition.spvasm.expected.ir.fxc.hlsl b/test/tint/unittest/reader/spirv/SpvModuleScopeVarParserTest_BuiltinPosition_StorePosition.spvasm.expected.ir.fxc.hlsl
deleted file mode 100644
index c6e1d96..0000000
--- a/test/tint/unittest/reader/spirv/SpvModuleScopeVarParserTest_BuiltinPosition_StorePosition.spvasm.expected.ir.fxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Construct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix 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_BuiltinPosition_StorePositionMember_OneAccessChain.spvasm.expected.ir.dxc.hlsl b/test/tint/unittest/reader/spirv/SpvModuleScopeVarParserTest_BuiltinPosition_StorePositionMember_OneAccessChain.spvasm.expected.ir.dxc.hlsl
deleted file mode 100644
index c0935cc..0000000
--- a/test/tint/unittest/reader/spirv/SpvModuleScopeVarParserTest_BuiltinPosition_StorePositionMember_OneAccessChain.spvasm.expected.ir.dxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:198 internal compiler error: Switch() matched no cases. Type: tint::core::ir::StoreVectorElement
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/unittest/reader/spirv/SpvModuleScopeVarParserTest_BuiltinPosition_StorePositionMember_OneAccessChain.spvasm.expected.ir.fxc.hlsl b/test/tint/unittest/reader/spirv/SpvModuleScopeVarParserTest_BuiltinPosition_StorePositionMember_OneAccessChain.spvasm.expected.ir.fxc.hlsl
deleted file mode 100644
index c0935cc..0000000
--- a/test/tint/unittest/reader/spirv/SpvModuleScopeVarParserTest_BuiltinPosition_StorePositionMember_OneAccessChain.spvasm.expected.ir.fxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:198 internal compiler error: Switch() matched no cases. Type: tint::core::ir::StoreVectorElement
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/unittest/reader/spirv/SpvModuleScopeVarParserTest_BuiltinPosition_StorePositionMember_TwoAccessChain.spvasm.expected.ir.dxc.hlsl b/test/tint/unittest/reader/spirv/SpvModuleScopeVarParserTest_BuiltinPosition_StorePositionMember_TwoAccessChain.spvasm.expected.ir.dxc.hlsl
deleted file mode 100644
index c0935cc..0000000
--- a/test/tint/unittest/reader/spirv/SpvModuleScopeVarParserTest_BuiltinPosition_StorePositionMember_TwoAccessChain.spvasm.expected.ir.dxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:198 internal compiler error: Switch() matched no cases. Type: tint::core::ir::StoreVectorElement
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/unittest/reader/spirv/SpvModuleScopeVarParserTest_BuiltinPosition_StorePositionMember_TwoAccessChain.spvasm.expected.ir.fxc.hlsl b/test/tint/unittest/reader/spirv/SpvModuleScopeVarParserTest_BuiltinPosition_StorePositionMember_TwoAccessChain.spvasm.expected.ir.fxc.hlsl
deleted file mode 100644
index c0935cc..0000000
--- a/test/tint/unittest/reader/spirv/SpvModuleScopeVarParserTest_BuiltinPosition_StorePositionMember_TwoAccessChain.spvasm.expected.ir.fxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:198 internal compiler error: Switch() matched no cases. Type: tint::core::ir::StoreVectorElement
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/unittest/reader/spirv/SpvModuleScopeVarParserTest_BuiltinPosition_StorePosition_PerVertexStructOutOfOrderDecl.spvasm.expected.ir.dxc.hlsl b/test/tint/unittest/reader/spirv/SpvModuleScopeVarParserTest_BuiltinPosition_StorePosition_PerVertexStructOutOfOrderDecl.spvasm.expected.ir.dxc.hlsl
deleted file mode 100644
index c6e1d96..0000000
--- a/test/tint/unittest/reader/spirv/SpvModuleScopeVarParserTest_BuiltinPosition_StorePosition_PerVertexStructOutOfOrderDecl.spvasm.expected.ir.dxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Construct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix 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_BuiltinPosition_StorePosition_PerVertexStructOutOfOrderDecl.spvasm.expected.ir.fxc.hlsl b/test/tint/unittest/reader/spirv/SpvModuleScopeVarParserTest_BuiltinPosition_StorePosition_PerVertexStructOutOfOrderDecl.spvasm.expected.ir.fxc.hlsl
deleted file mode 100644
index c6e1d96..0000000
--- a/test/tint/unittest/reader/spirv/SpvModuleScopeVarParserTest_BuiltinPosition_StorePosition_PerVertexStructOutOfOrderDecl.spvasm.expected.ir.fxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Construct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix 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_BuiltinVertexIndex.spvasm.expected.ir.dxc.hlsl b/test/tint/unittest/reader/spirv/SpvModuleScopeVarParserTest_BuiltinVertexIndex.spvasm.expected.ir.dxc.hlsl
deleted file mode 100644
index 6b047b4..0000000
--- a/test/tint/unittest/reader/spirv/SpvModuleScopeVarParserTest_BuiltinVertexIndex.spvasm.expected.ir.dxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:287 internal compiler error: Switch() matched no cases. Type: tint::core::ir::FunctionParam
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/unittest/reader/spirv/SpvModuleScopeVarParserTest_BuiltinVertexIndex.spvasm.expected.ir.fxc.hlsl b/test/tint/unittest/reader/spirv/SpvModuleScopeVarParserTest_BuiltinVertexIndex.spvasm.expected.ir.fxc.hlsl
deleted file mode 100644
index 6b047b4..0000000
--- a/test/tint/unittest/reader/spirv/SpvModuleScopeVarParserTest_BuiltinVertexIndex.spvasm.expected.ir.fxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:287 internal compiler error: Switch() matched no cases. Type: tint::core::ir::FunctionParam
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/unittest/reader/spirv/SpvModuleScopeVarParserTest_Builtin_Input_OppositeSignednessAsWGSL.spvasm.expected.ir.fxc.hlsl b/test/tint/unittest/reader/spirv/SpvModuleScopeVarParserTest_Builtin_Input_OppositeSignednessAsWGSL.spvasm.expected.ir.fxc.hlsl
deleted file mode 100644
index a096ece..0000000
--- a/test/tint/unittest/reader/spirv/SpvModuleScopeVarParserTest_Builtin_Input_OppositeSignednessAsWGSL.spvasm.expected.ir.fxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-void main_1() {
-}
-
-void main() {
-  main_1();
-}
-
diff --git a/test/tint/unittest/reader/spirv/SpvModuleScopeVarParserTest_Builtin_Input_SameSignednessAsWGSL.spvasm.expected.ir.fxc.hlsl b/test/tint/unittest/reader/spirv/SpvModuleScopeVarParserTest_Builtin_Input_SameSignednessAsWGSL.spvasm.expected.ir.fxc.hlsl
deleted file mode 100644
index a096ece..0000000
--- a/test/tint/unittest/reader/spirv/SpvModuleScopeVarParserTest_Builtin_Input_SameSignednessAsWGSL.spvasm.expected.ir.fxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-void main_1() {
-}
-
-void main() {
-  main_1();
-}
-
diff --git a/test/tint/unittest/reader/spirv/SpvModuleScopeVarParserTest_Builtin_Output_Initializer_OppositeSignednessAsWGSL.spvasm.expected.ir.fxc.hlsl b/test/tint/unittest/reader/spirv/SpvModuleScopeVarParserTest_Builtin_Output_Initializer_OppositeSignednessAsWGSL.spvasm.expected.ir.fxc.hlsl
deleted file mode 100644
index a096ece..0000000
--- a/test/tint/unittest/reader/spirv/SpvModuleScopeVarParserTest_Builtin_Output_Initializer_OppositeSignednessAsWGSL.spvasm.expected.ir.fxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-void main_1() {
-}
-
-void main() {
-  main_1();
-}
-
diff --git a/test/tint/unittest/reader/spirv/SpvModuleScopeVarParserTest_Builtin_Output_Initializer_SameSignednessAsWGSL.spvasm.expected.ir.fxc.hlsl b/test/tint/unittest/reader/spirv/SpvModuleScopeVarParserTest_Builtin_Output_Initializer_SameSignednessAsWGSL.spvasm.expected.ir.fxc.hlsl
deleted file mode 100644
index a096ece..0000000
--- a/test/tint/unittest/reader/spirv/SpvModuleScopeVarParserTest_Builtin_Output_Initializer_SameSignednessAsWGSL.spvasm.expected.ir.fxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-void main_1() {
-}
-
-void main() {
-  main_1();
-}
-
diff --git a/test/tint/unittest/reader/spirv/SpvModuleScopeVarParserTest_ColMajorDecoration_Dropped.spvasm.expected.ir.fxc.hlsl b/test/tint/unittest/reader/spirv/SpvModuleScopeVarParserTest_ColMajorDecoration_Dropped.spvasm.expected.ir.fxc.hlsl
deleted file mode 100644
index a096ece..0000000
--- a/test/tint/unittest/reader/spirv/SpvModuleScopeVarParserTest_ColMajorDecoration_Dropped.spvasm.expected.ir.fxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-void main_1() {
-}
-
-void main() {
-  main_1();
-}
-
diff --git a/test/tint/unittest/reader/spirv/SpvModuleScopeVarParserTest_DescriptorGroupDecoration_Valid.spvasm.expected.ir.fxc.hlsl b/test/tint/unittest/reader/spirv/SpvModuleScopeVarParserTest_DescriptorGroupDecoration_Valid.spvasm.expected.ir.fxc.hlsl
deleted file mode 100644
index a096ece..0000000
--- a/test/tint/unittest/reader/spirv/SpvModuleScopeVarParserTest_DescriptorGroupDecoration_Valid.spvasm.expected.ir.fxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-void main_1() {
-}
-
-void main() {
-  main_1();
-}
-
diff --git a/test/tint/unittest/reader/spirv/SpvModuleScopeVarParserTest_EntryPointWrapping_BuiltinVar_FragDepth_Out_Initializer.spvasm.expected.ir.dxc.hlsl b/test/tint/unittest/reader/spirv/SpvModuleScopeVarParserTest_EntryPointWrapping_BuiltinVar_FragDepth_Out_Initializer.spvasm.expected.ir.dxc.hlsl
deleted file mode 100644
index c6e1d96..0000000
--- a/test/tint/unittest/reader/spirv/SpvModuleScopeVarParserTest_EntryPointWrapping_BuiltinVar_FragDepth_Out_Initializer.spvasm.expected.ir.dxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Construct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix 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_EntryPointWrapping_BuiltinVar_FragDepth_Out_Initializer.spvasm.expected.ir.fxc.hlsl b/test/tint/unittest/reader/spirv/SpvModuleScopeVarParserTest_EntryPointWrapping_BuiltinVar_FragDepth_Out_Initializer.spvasm.expected.ir.fxc.hlsl
deleted file mode 100644
index c6e1d96..0000000
--- a/test/tint/unittest/reader/spirv/SpvModuleScopeVarParserTest_EntryPointWrapping_BuiltinVar_FragDepth_Out_Initializer.spvasm.expected.ir.fxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Construct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix 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_EntryPointWrapping_BuiltinVar_Input_OppositeSignedness.spvasm.expected.ir.dxc.hlsl b/test/tint/unittest/reader/spirv/SpvModuleScopeVarParserTest_EntryPointWrapping_BuiltinVar_Input_OppositeSignedness.spvasm.expected.ir.dxc.hlsl
deleted file mode 100644
index a249798..0000000
--- a/test/tint/unittest/reader/spirv/SpvModuleScopeVarParserTest_EntryPointWrapping_BuiltinVar_Input_OppositeSignedness.spvasm.expected.ir.dxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Bitcast
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/unittest/reader/spirv/SpvModuleScopeVarParserTest_EntryPointWrapping_BuiltinVar_Input_OppositeSignedness.spvasm.expected.ir.fxc.hlsl b/test/tint/unittest/reader/spirv/SpvModuleScopeVarParserTest_EntryPointWrapping_BuiltinVar_Input_OppositeSignedness.spvasm.expected.ir.fxc.hlsl
deleted file mode 100644
index a249798..0000000
--- a/test/tint/unittest/reader/spirv/SpvModuleScopeVarParserTest_EntryPointWrapping_BuiltinVar_Input_OppositeSignedness.spvasm.expected.ir.fxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Bitcast
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/unittest/reader/spirv/SpvModuleScopeVarParserTest_EntryPointWrapping_BuiltinVar_Input_SameSignedness.spvasm.expected.ir.dxc.hlsl b/test/tint/unittest/reader/spirv/SpvModuleScopeVarParserTest_EntryPointWrapping_BuiltinVar_Input_SameSignedness.spvasm.expected.ir.dxc.hlsl
deleted file mode 100644
index 6b047b4..0000000
--- a/test/tint/unittest/reader/spirv/SpvModuleScopeVarParserTest_EntryPointWrapping_BuiltinVar_Input_SameSignedness.spvasm.expected.ir.dxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:287 internal compiler error: Switch() matched no cases. Type: tint::core::ir::FunctionParam
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/unittest/reader/spirv/SpvModuleScopeVarParserTest_EntryPointWrapping_BuiltinVar_Input_SameSignedness.spvasm.expected.ir.fxc.hlsl b/test/tint/unittest/reader/spirv/SpvModuleScopeVarParserTest_EntryPointWrapping_BuiltinVar_Input_SameSignedness.spvasm.expected.ir.fxc.hlsl
deleted file mode 100644
index 6b047b4..0000000
--- a/test/tint/unittest/reader/spirv/SpvModuleScopeVarParserTest_EntryPointWrapping_BuiltinVar_Input_SameSignedness.spvasm.expected.ir.fxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:287 internal compiler error: Switch() matched no cases. Type: tint::core::ir::FunctionParam
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/unittest/reader/spirv/SpvModuleScopeVarParserTest_EntryPointWrapping_BuiltinVar_SampleMask_In_Signed.spvasm.expected.ir.dxc.hlsl b/test/tint/unittest/reader/spirv/SpvModuleScopeVarParserTest_EntryPointWrapping_BuiltinVar_SampleMask_In_Signed.spvasm.expected.ir.dxc.hlsl
deleted file mode 100644
index 3f437dc..0000000
--- a/test/tint/unittest/reader/spirv/SpvModuleScopeVarParserTest_EntryPointWrapping_BuiltinVar_SampleMask_In_Signed.spvasm.expected.ir.dxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Access
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/unittest/reader/spirv/SpvModuleScopeVarParserTest_EntryPointWrapping_BuiltinVar_SampleMask_In_Signed.spvasm.expected.ir.fxc.hlsl b/test/tint/unittest/reader/spirv/SpvModuleScopeVarParserTest_EntryPointWrapping_BuiltinVar_SampleMask_In_Signed.spvasm.expected.ir.fxc.hlsl
deleted file mode 100644
index 3f437dc..0000000
--- a/test/tint/unittest/reader/spirv/SpvModuleScopeVarParserTest_EntryPointWrapping_BuiltinVar_SampleMask_In_Signed.spvasm.expected.ir.fxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Access
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/unittest/reader/spirv/SpvModuleScopeVarParserTest_EntryPointWrapping_BuiltinVar_SampleMask_In_Unsigned.spvasm.expected.ir.dxc.hlsl b/test/tint/unittest/reader/spirv/SpvModuleScopeVarParserTest_EntryPointWrapping_BuiltinVar_SampleMask_In_Unsigned.spvasm.expected.ir.dxc.hlsl
deleted file mode 100644
index 3f437dc..0000000
--- a/test/tint/unittest/reader/spirv/SpvModuleScopeVarParserTest_EntryPointWrapping_BuiltinVar_SampleMask_In_Unsigned.spvasm.expected.ir.dxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Access
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/unittest/reader/spirv/SpvModuleScopeVarParserTest_EntryPointWrapping_BuiltinVar_SampleMask_In_Unsigned.spvasm.expected.ir.fxc.hlsl b/test/tint/unittest/reader/spirv/SpvModuleScopeVarParserTest_EntryPointWrapping_BuiltinVar_SampleMask_In_Unsigned.spvasm.expected.ir.fxc.hlsl
deleted file mode 100644
index 3f437dc..0000000
--- a/test/tint/unittest/reader/spirv/SpvModuleScopeVarParserTest_EntryPointWrapping_BuiltinVar_SampleMask_In_Unsigned.spvasm.expected.ir.fxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Access
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/unittest/reader/spirv/SpvModuleScopeVarParserTest_EntryPointWrapping_BuiltinVar_SampleMask_Out_Signed_Initializer.spvasm.expected.ir.dxc.hlsl b/test/tint/unittest/reader/spirv/SpvModuleScopeVarParserTest_EntryPointWrapping_BuiltinVar_SampleMask_Out_Signed_Initializer.spvasm.expected.ir.dxc.hlsl
deleted file mode 100644
index c6e1d96..0000000
--- a/test/tint/unittest/reader/spirv/SpvModuleScopeVarParserTest_EntryPointWrapping_BuiltinVar_SampleMask_Out_Signed_Initializer.spvasm.expected.ir.dxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Construct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix 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_EntryPointWrapping_BuiltinVar_SampleMask_Out_Signed_Initializer.spvasm.expected.ir.fxc.hlsl b/test/tint/unittest/reader/spirv/SpvModuleScopeVarParserTest_EntryPointWrapping_BuiltinVar_SampleMask_Out_Signed_Initializer.spvasm.expected.ir.fxc.hlsl
deleted file mode 100644
index c6e1d96..0000000
--- a/test/tint/unittest/reader/spirv/SpvModuleScopeVarParserTest_EntryPointWrapping_BuiltinVar_SampleMask_Out_Signed_Initializer.spvasm.expected.ir.fxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Construct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix 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_EntryPointWrapping_BuiltinVar_SampleMask_Out_Unsigned_Initializer.spvasm.expected.ir.dxc.hlsl b/test/tint/unittest/reader/spirv/SpvModuleScopeVarParserTest_EntryPointWrapping_BuiltinVar_SampleMask_Out_Unsigned_Initializer.spvasm.expected.ir.dxc.hlsl
deleted file mode 100644
index c6e1d96..0000000
--- a/test/tint/unittest/reader/spirv/SpvModuleScopeVarParserTest_EntryPointWrapping_BuiltinVar_SampleMask_Out_Unsigned_Initializer.spvasm.expected.ir.dxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Construct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix 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_EntryPointWrapping_BuiltinVar_SampleMask_Out_Unsigned_Initializer.spvasm.expected.ir.fxc.hlsl b/test/tint/unittest/reader/spirv/SpvModuleScopeVarParserTest_EntryPointWrapping_BuiltinVar_SampleMask_Out_Unsigned_Initializer.spvasm.expected.ir.fxc.hlsl
deleted file mode 100644
index c6e1d96..0000000
--- a/test/tint/unittest/reader/spirv/SpvModuleScopeVarParserTest_EntryPointWrapping_BuiltinVar_SampleMask_Out_Unsigned_Initializer.spvasm.expected.ir.fxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Construct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix 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_EntryPointWrapping_Flatten_Interpolation_Flat_Fragment_In.spvasm.expected.ir.dxc.hlsl b/test/tint/unittest/reader/spirv/SpvModuleScopeVarParserTest_EntryPointWrapping_Flatten_Interpolation_Flat_Fragment_In.spvasm.expected.ir.dxc.hlsl
deleted file mode 100644
index 3f437dc..0000000
--- a/test/tint/unittest/reader/spirv/SpvModuleScopeVarParserTest_EntryPointWrapping_Flatten_Interpolation_Flat_Fragment_In.spvasm.expected.ir.dxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Access
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/unittest/reader/spirv/SpvModuleScopeVarParserTest_EntryPointWrapping_Flatten_Interpolation_Flat_Fragment_In.spvasm.expected.ir.fxc.hlsl b/test/tint/unittest/reader/spirv/SpvModuleScopeVarParserTest_EntryPointWrapping_Flatten_Interpolation_Flat_Fragment_In.spvasm.expected.ir.fxc.hlsl
deleted file mode 100644
index 3f437dc..0000000
--- a/test/tint/unittest/reader/spirv/SpvModuleScopeVarParserTest_EntryPointWrapping_Flatten_Interpolation_Flat_Fragment_In.spvasm.expected.ir.fxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Access
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/unittest/reader/spirv/SpvModuleScopeVarParserTest_EntryPointWrapping_Flatten_Interpolation_Floating_Fragment_In.spvasm.expected.ir.dxc.hlsl b/test/tint/unittest/reader/spirv/SpvModuleScopeVarParserTest_EntryPointWrapping_Flatten_Interpolation_Floating_Fragment_In.spvasm.expected.ir.dxc.hlsl
deleted file mode 100644
index 3f437dc..0000000
--- a/test/tint/unittest/reader/spirv/SpvModuleScopeVarParserTest_EntryPointWrapping_Flatten_Interpolation_Floating_Fragment_In.spvasm.expected.ir.dxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Access
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/unittest/reader/spirv/SpvModuleScopeVarParserTest_EntryPointWrapping_Flatten_Interpolation_Floating_Fragment_In.spvasm.expected.ir.fxc.hlsl b/test/tint/unittest/reader/spirv/SpvModuleScopeVarParserTest_EntryPointWrapping_Flatten_Interpolation_Floating_Fragment_In.spvasm.expected.ir.fxc.hlsl
deleted file mode 100644
index 3f437dc..0000000
--- a/test/tint/unittest/reader/spirv/SpvModuleScopeVarParserTest_EntryPointWrapping_Flatten_Interpolation_Floating_Fragment_In.spvasm.expected.ir.fxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Access
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/unittest/reader/spirv/SpvModuleScopeVarParserTest_EntryPointWrapping_Flatten_Interpolation_Floating_Fragment_Out.spvasm.expected.ir.dxc.hlsl b/test/tint/unittest/reader/spirv/SpvModuleScopeVarParserTest_EntryPointWrapping_Flatten_Interpolation_Floating_Fragment_Out.spvasm.expected.ir.dxc.hlsl
deleted file mode 100644
index c6e1d96..0000000
--- a/test/tint/unittest/reader/spirv/SpvModuleScopeVarParserTest_EntryPointWrapping_Flatten_Interpolation_Floating_Fragment_Out.spvasm.expected.ir.dxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Construct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix 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_EntryPointWrapping_Flatten_Interpolation_Floating_Fragment_Out.spvasm.expected.ir.fxc.hlsl b/test/tint/unittest/reader/spirv/SpvModuleScopeVarParserTest_EntryPointWrapping_Flatten_Interpolation_Floating_Fragment_Out.spvasm.expected.ir.fxc.hlsl
deleted file mode 100644
index c6e1d96..0000000
--- a/test/tint/unittest/reader/spirv/SpvModuleScopeVarParserTest_EntryPointWrapping_Flatten_Interpolation_Floating_Fragment_Out.spvasm.expected.ir.fxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Construct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix 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_EntryPointWrapping_IOLocations.spvasm.expected.ir.dxc.hlsl b/test/tint/unittest/reader/spirv/SpvModuleScopeVarParserTest_EntryPointWrapping_IOLocations.spvasm.expected.ir.dxc.hlsl
deleted file mode 100644
index 6b047b4..0000000
--- a/test/tint/unittest/reader/spirv/SpvModuleScopeVarParserTest_EntryPointWrapping_IOLocations.spvasm.expected.ir.dxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:287 internal compiler error: Switch() matched no cases. Type: tint::core::ir::FunctionParam
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/unittest/reader/spirv/SpvModuleScopeVarParserTest_EntryPointWrapping_IOLocations.spvasm.expected.ir.fxc.hlsl b/test/tint/unittest/reader/spirv/SpvModuleScopeVarParserTest_EntryPointWrapping_IOLocations.spvasm.expected.ir.fxc.hlsl
deleted file mode 100644
index 6b047b4..0000000
--- a/test/tint/unittest/reader/spirv/SpvModuleScopeVarParserTest_EntryPointWrapping_IOLocations.spvasm.expected.ir.fxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:287 internal compiler error: Switch() matched no cases. Type: tint::core::ir::FunctionParam
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/unittest/reader/spirv/SpvModuleScopeVarParserTest_EntryPointWrapping_Interpolation_Flat_Vertex_Output.spvasm.expected.ir.dxc.hlsl b/test/tint/unittest/reader/spirv/SpvModuleScopeVarParserTest_EntryPointWrapping_Interpolation_Flat_Vertex_Output.spvasm.expected.ir.dxc.hlsl
deleted file mode 100644
index c6e1d96..0000000
--- a/test/tint/unittest/reader/spirv/SpvModuleScopeVarParserTest_EntryPointWrapping_Interpolation_Flat_Vertex_Output.spvasm.expected.ir.dxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Construct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix 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_EntryPointWrapping_Interpolation_Flat_Vertex_Output.spvasm.expected.ir.fxc.hlsl b/test/tint/unittest/reader/spirv/SpvModuleScopeVarParserTest_EntryPointWrapping_Interpolation_Flat_Vertex_Output.spvasm.expected.ir.fxc.hlsl
deleted file mode 100644
index c6e1d96..0000000
--- a/test/tint/unittest/reader/spirv/SpvModuleScopeVarParserTest_EntryPointWrapping_Interpolation_Flat_Vertex_Output.spvasm.expected.ir.fxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Construct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix 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_EntryPointWrapping_Interpolation_Floating_Fragment_In.spvasm.expected.ir.dxc.hlsl b/test/tint/unittest/reader/spirv/SpvModuleScopeVarParserTest_EntryPointWrapping_Interpolation_Floating_Fragment_In.spvasm.expected.ir.dxc.hlsl
deleted file mode 100644
index 6b047b4..0000000
--- a/test/tint/unittest/reader/spirv/SpvModuleScopeVarParserTest_EntryPointWrapping_Interpolation_Floating_Fragment_In.spvasm.expected.ir.dxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:287 internal compiler error: Switch() matched no cases. Type: tint::core::ir::FunctionParam
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/unittest/reader/spirv/SpvModuleScopeVarParserTest_EntryPointWrapping_Interpolation_Floating_Fragment_In.spvasm.expected.ir.fxc.hlsl b/test/tint/unittest/reader/spirv/SpvModuleScopeVarParserTest_EntryPointWrapping_Interpolation_Floating_Fragment_In.spvasm.expected.ir.fxc.hlsl
deleted file mode 100644
index 6b047b4..0000000
--- a/test/tint/unittest/reader/spirv/SpvModuleScopeVarParserTest_EntryPointWrapping_Interpolation_Floating_Fragment_In.spvasm.expected.ir.fxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:287 internal compiler error: Switch() matched no cases. Type: tint::core::ir::FunctionParam
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/unittest/reader/spirv/SpvModuleScopeVarParserTest_FlattenStruct_LocOnMembers.spvasm.expected.ir.dxc.hlsl b/test/tint/unittest/reader/spirv/SpvModuleScopeVarParserTest_FlattenStruct_LocOnMembers.spvasm.expected.ir.dxc.hlsl
deleted file mode 100644
index 3f437dc..0000000
--- a/test/tint/unittest/reader/spirv/SpvModuleScopeVarParserTest_FlattenStruct_LocOnMembers.spvasm.expected.ir.dxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Access
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/unittest/reader/spirv/SpvModuleScopeVarParserTest_FlattenStruct_LocOnMembers.spvasm.expected.ir.fxc.hlsl b/test/tint/unittest/reader/spirv/SpvModuleScopeVarParserTest_FlattenStruct_LocOnMembers.spvasm.expected.ir.fxc.hlsl
deleted file mode 100644
index 3f437dc..0000000
--- a/test/tint/unittest/reader/spirv/SpvModuleScopeVarParserTest_FlattenStruct_LocOnMembers.spvasm.expected.ir.fxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Access
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/unittest/reader/spirv/SpvModuleScopeVarParserTest_InputVarsConvertedToPrivate.spvasm.expected.ir.fxc.hlsl b/test/tint/unittest/reader/spirv/SpvModuleScopeVarParserTest_InputVarsConvertedToPrivate.spvasm.expected.ir.fxc.hlsl
deleted file mode 100644
index a096ece..0000000
--- a/test/tint/unittest/reader/spirv/SpvModuleScopeVarParserTest_InputVarsConvertedToPrivate.spvasm.expected.ir.fxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-void main_1() {
-}
-
-void main() {
-  main_1();
-}
-
diff --git a/test/tint/unittest/reader/spirv/SpvModuleScopeVarParserTest_Input_FlattenArray_OneLevel.spvasm.expected.ir.dxc.hlsl b/test/tint/unittest/reader/spirv/SpvModuleScopeVarParserTest_Input_FlattenArray_OneLevel.spvasm.expected.ir.dxc.hlsl
deleted file mode 100644
index 3f437dc..0000000
--- a/test/tint/unittest/reader/spirv/SpvModuleScopeVarParserTest_Input_FlattenArray_OneLevel.spvasm.expected.ir.dxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Access
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/unittest/reader/spirv/SpvModuleScopeVarParserTest_Input_FlattenArray_OneLevel.spvasm.expected.ir.fxc.hlsl b/test/tint/unittest/reader/spirv/SpvModuleScopeVarParserTest_Input_FlattenArray_OneLevel.spvasm.expected.ir.fxc.hlsl
deleted file mode 100644
index 3f437dc..0000000
--- a/test/tint/unittest/reader/spirv/SpvModuleScopeVarParserTest_Input_FlattenArray_OneLevel.spvasm.expected.ir.fxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Access
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/unittest/reader/spirv/SpvModuleScopeVarParserTest_Input_FlattenMatrix.spvasm.expected.ir.dxc.hlsl b/test/tint/unittest/reader/spirv/SpvModuleScopeVarParserTest_Input_FlattenMatrix.spvasm.expected.ir.dxc.hlsl
deleted file mode 100644
index 3f437dc..0000000
--- a/test/tint/unittest/reader/spirv/SpvModuleScopeVarParserTest_Input_FlattenMatrix.spvasm.expected.ir.dxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Access
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/unittest/reader/spirv/SpvModuleScopeVarParserTest_Input_FlattenMatrix.spvasm.expected.ir.fxc.hlsl b/test/tint/unittest/reader/spirv/SpvModuleScopeVarParserTest_Input_FlattenMatrix.spvasm.expected.ir.fxc.hlsl
deleted file mode 100644
index 3f437dc..0000000
--- a/test/tint/unittest/reader/spirv/SpvModuleScopeVarParserTest_Input_FlattenMatrix.spvasm.expected.ir.fxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Access
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/unittest/reader/spirv/SpvModuleScopeVarParserTest_Input_FlattenNested.spvasm.expected.ir.dxc.hlsl b/test/tint/unittest/reader/spirv/SpvModuleScopeVarParserTest_Input_FlattenNested.spvasm.expected.ir.dxc.hlsl
deleted file mode 100644
index 3f437dc..0000000
--- a/test/tint/unittest/reader/spirv/SpvModuleScopeVarParserTest_Input_FlattenNested.spvasm.expected.ir.dxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Access
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/unittest/reader/spirv/SpvModuleScopeVarParserTest_Input_FlattenNested.spvasm.expected.ir.fxc.hlsl b/test/tint/unittest/reader/spirv/SpvModuleScopeVarParserTest_Input_FlattenNested.spvasm.expected.ir.fxc.hlsl
deleted file mode 100644
index 3f437dc..0000000
--- a/test/tint/unittest/reader/spirv/SpvModuleScopeVarParserTest_Input_FlattenNested.spvasm.expected.ir.fxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Access
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/unittest/reader/spirv/SpvModuleScopeVarParserTest_Input_FlattenStruct_LocOnVariable.spvasm.expected.ir.dxc.hlsl b/test/tint/unittest/reader/spirv/SpvModuleScopeVarParserTest_Input_FlattenStruct_LocOnVariable.spvasm.expected.ir.dxc.hlsl
deleted file mode 100644
index 3f437dc..0000000
--- a/test/tint/unittest/reader/spirv/SpvModuleScopeVarParserTest_Input_FlattenStruct_LocOnVariable.spvasm.expected.ir.dxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Access
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/unittest/reader/spirv/SpvModuleScopeVarParserTest_Input_FlattenStruct_LocOnVariable.spvasm.expected.ir.fxc.hlsl b/test/tint/unittest/reader/spirv/SpvModuleScopeVarParserTest_Input_FlattenStruct_LocOnVariable.spvasm.expected.ir.fxc.hlsl
deleted file mode 100644
index 3f437dc..0000000
--- a/test/tint/unittest/reader/spirv/SpvModuleScopeVarParserTest_Input_FlattenStruct_LocOnVariable.spvasm.expected.ir.fxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Access
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/unittest/reader/spirv/SpvModuleScopeVarParserTest_InstanceIndex_I32_Load_AccessChain.spvasm.expected.ir.dxc.hlsl b/test/tint/unittest/reader/spirv/SpvModuleScopeVarParserTest_InstanceIndex_I32_Load_AccessChain.spvasm.expected.ir.dxc.hlsl
deleted file mode 100644
index a249798..0000000
--- a/test/tint/unittest/reader/spirv/SpvModuleScopeVarParserTest_InstanceIndex_I32_Load_AccessChain.spvasm.expected.ir.dxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Bitcast
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/unittest/reader/spirv/SpvModuleScopeVarParserTest_InstanceIndex_I32_Load_AccessChain.spvasm.expected.ir.fxc.hlsl b/test/tint/unittest/reader/spirv/SpvModuleScopeVarParserTest_InstanceIndex_I32_Load_AccessChain.spvasm.expected.ir.fxc.hlsl
deleted file mode 100644
index a249798..0000000
--- a/test/tint/unittest/reader/spirv/SpvModuleScopeVarParserTest_InstanceIndex_I32_Load_AccessChain.spvasm.expected.ir.fxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Bitcast
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/unittest/reader/spirv/SpvModuleScopeVarParserTest_InstanceIndex_I32_Load_CopyObject.spvasm.expected.ir.dxc.hlsl b/test/tint/unittest/reader/spirv/SpvModuleScopeVarParserTest_InstanceIndex_I32_Load_CopyObject.spvasm.expected.ir.dxc.hlsl
deleted file mode 100644
index a249798..0000000
--- a/test/tint/unittest/reader/spirv/SpvModuleScopeVarParserTest_InstanceIndex_I32_Load_CopyObject.spvasm.expected.ir.dxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Bitcast
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/unittest/reader/spirv/SpvModuleScopeVarParserTest_InstanceIndex_I32_Load_CopyObject.spvasm.expected.ir.fxc.hlsl b/test/tint/unittest/reader/spirv/SpvModuleScopeVarParserTest_InstanceIndex_I32_Load_CopyObject.spvasm.expected.ir.fxc.hlsl
deleted file mode 100644
index a249798..0000000
--- a/test/tint/unittest/reader/spirv/SpvModuleScopeVarParserTest_InstanceIndex_I32_Load_CopyObject.spvasm.expected.ir.fxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Bitcast
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/unittest/reader/spirv/SpvModuleScopeVarParserTest_InstanceIndex_I32_Load_Direct.spvasm.expected.ir.dxc.hlsl b/test/tint/unittest/reader/spirv/SpvModuleScopeVarParserTest_InstanceIndex_I32_Load_Direct.spvasm.expected.ir.dxc.hlsl
deleted file mode 100644
index a249798..0000000
--- a/test/tint/unittest/reader/spirv/SpvModuleScopeVarParserTest_InstanceIndex_I32_Load_Direct.spvasm.expected.ir.dxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Bitcast
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/unittest/reader/spirv/SpvModuleScopeVarParserTest_InstanceIndex_I32_Load_Direct.spvasm.expected.ir.fxc.hlsl b/test/tint/unittest/reader/spirv/SpvModuleScopeVarParserTest_InstanceIndex_I32_Load_Direct.spvasm.expected.ir.fxc.hlsl
deleted file mode 100644
index a249798..0000000
--- a/test/tint/unittest/reader/spirv/SpvModuleScopeVarParserTest_InstanceIndex_I32_Load_Direct.spvasm.expected.ir.fxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Bitcast
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/unittest/reader/spirv/SpvModuleScopeVarParserTest_InstanceIndex_U32_Load_AccessChain.spvasm.expected.ir.dxc.hlsl b/test/tint/unittest/reader/spirv/SpvModuleScopeVarParserTest_InstanceIndex_U32_Load_AccessChain.spvasm.expected.ir.dxc.hlsl
deleted file mode 100644
index 6b047b4..0000000
--- a/test/tint/unittest/reader/spirv/SpvModuleScopeVarParserTest_InstanceIndex_U32_Load_AccessChain.spvasm.expected.ir.dxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:287 internal compiler error: Switch() matched no cases. Type: tint::core::ir::FunctionParam
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/unittest/reader/spirv/SpvModuleScopeVarParserTest_InstanceIndex_U32_Load_AccessChain.spvasm.expected.ir.fxc.hlsl b/test/tint/unittest/reader/spirv/SpvModuleScopeVarParserTest_InstanceIndex_U32_Load_AccessChain.spvasm.expected.ir.fxc.hlsl
deleted file mode 100644
index 6b047b4..0000000
--- a/test/tint/unittest/reader/spirv/SpvModuleScopeVarParserTest_InstanceIndex_U32_Load_AccessChain.spvasm.expected.ir.fxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:287 internal compiler error: Switch() matched no cases. Type: tint::core::ir::FunctionParam
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/unittest/reader/spirv/SpvModuleScopeVarParserTest_InstanceIndex_U32_Load_CopyObject.spvasm.expected.ir.dxc.hlsl b/test/tint/unittest/reader/spirv/SpvModuleScopeVarParserTest_InstanceIndex_U32_Load_CopyObject.spvasm.expected.ir.dxc.hlsl
deleted file mode 100644
index 6b047b4..0000000
--- a/test/tint/unittest/reader/spirv/SpvModuleScopeVarParserTest_InstanceIndex_U32_Load_CopyObject.spvasm.expected.ir.dxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:287 internal compiler error: Switch() matched no cases. Type: tint::core::ir::FunctionParam
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/unittest/reader/spirv/SpvModuleScopeVarParserTest_InstanceIndex_U32_Load_CopyObject.spvasm.expected.ir.fxc.hlsl b/test/tint/unittest/reader/spirv/SpvModuleScopeVarParserTest_InstanceIndex_U32_Load_CopyObject.spvasm.expected.ir.fxc.hlsl
deleted file mode 100644
index 6b047b4..0000000
--- a/test/tint/unittest/reader/spirv/SpvModuleScopeVarParserTest_InstanceIndex_U32_Load_CopyObject.spvasm.expected.ir.fxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:287 internal compiler error: Switch() matched no cases. Type: tint::core::ir::FunctionParam
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/unittest/reader/spirv/SpvModuleScopeVarParserTest_InstanceIndex_U32_Load_Direct.spvasm.expected.ir.dxc.hlsl b/test/tint/unittest/reader/spirv/SpvModuleScopeVarParserTest_InstanceIndex_U32_Load_Direct.spvasm.expected.ir.dxc.hlsl
deleted file mode 100644
index 6b047b4..0000000
--- a/test/tint/unittest/reader/spirv/SpvModuleScopeVarParserTest_InstanceIndex_U32_Load_Direct.spvasm.expected.ir.dxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:287 internal compiler error: Switch() matched no cases. Type: tint::core::ir::FunctionParam
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/unittest/reader/spirv/SpvModuleScopeVarParserTest_InstanceIndex_U32_Load_Direct.spvasm.expected.ir.fxc.hlsl b/test/tint/unittest/reader/spirv/SpvModuleScopeVarParserTest_InstanceIndex_U32_Load_Direct.spvasm.expected.ir.fxc.hlsl
deleted file mode 100644
index 6b047b4..0000000
--- a/test/tint/unittest/reader/spirv/SpvModuleScopeVarParserTest_InstanceIndex_U32_Load_Direct.spvasm.expected.ir.fxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:287 internal compiler error: Switch() matched no cases. Type: tint::core::ir::FunctionParam
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/unittest/reader/spirv/SpvModuleScopeVarParserTest_MatrixInitializer.spvasm.expected.ir.fxc.hlsl b/test/tint/unittest/reader/spirv/SpvModuleScopeVarParserTest_MatrixInitializer.spvasm.expected.ir.fxc.hlsl
deleted file mode 100644
index a096ece..0000000
--- a/test/tint/unittest/reader/spirv/SpvModuleScopeVarParserTest_MatrixInitializer.spvasm.expected.ir.fxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-void main_1() {
-}
-
-void main() {
-  main_1();
-}
-
diff --git a/test/tint/unittest/reader/spirv/SpvModuleScopeVarParserTest_MatrixNullInitializer.spvasm.expected.ir.fxc.hlsl b/test/tint/unittest/reader/spirv/SpvModuleScopeVarParserTest_MatrixNullInitializer.spvasm.expected.ir.fxc.hlsl
deleted file mode 100644
index a096ece..0000000
--- a/test/tint/unittest/reader/spirv/SpvModuleScopeVarParserTest_MatrixNullInitializer.spvasm.expected.ir.fxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-void main_1() {
-}
-
-void main() {
-  main_1();
-}
-
diff --git a/test/tint/unittest/reader/spirv/SpvModuleScopeVarParserTest_MatrixStrideDecoration.spvasm.expected.ir.fxc.hlsl b/test/tint/unittest/reader/spirv/SpvModuleScopeVarParserTest_MatrixStrideDecoration.spvasm.expected.ir.fxc.hlsl
deleted file mode 100644
index a096ece..0000000
--- a/test/tint/unittest/reader/spirv/SpvModuleScopeVarParserTest_MatrixStrideDecoration.spvasm.expected.ir.fxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-void main_1() {
-}
-
-void main() {
-  main_1();
-}
-
diff --git a/test/tint/unittest/reader/spirv/SpvModuleScopeVarParserTest_MatrixStrideDecoration_Dropped.spvasm.expected.ir.fxc.hlsl b/test/tint/unittest/reader/spirv/SpvModuleScopeVarParserTest_MatrixStrideDecoration_Dropped.spvasm.expected.ir.fxc.hlsl
deleted file mode 100644
index a096ece..0000000
--- a/test/tint/unittest/reader/spirv/SpvModuleScopeVarParserTest_MatrixStrideDecoration_Dropped.spvasm.expected.ir.fxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-void main_1() {
-}
-
-void main() {
-  main_1();
-}
-
diff --git a/test/tint/unittest/reader/spirv/SpvModuleScopeVarParserTest_MatrixStrideDecoration_Natural_Dropped.spvasm.expected.ir.fxc.hlsl b/test/tint/unittest/reader/spirv/SpvModuleScopeVarParserTest_MatrixStrideDecoration_Natural_Dropped.spvasm.expected.ir.fxc.hlsl
deleted file mode 100644
index a096ece..0000000
--- a/test/tint/unittest/reader/spirv/SpvModuleScopeVarParserTest_MatrixStrideDecoration_Natural_Dropped.spvasm.expected.ir.fxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-void main_1() {
-}
-
-void main() {
-  main_1();
-}
-
diff --git a/test/tint/unittest/reader/spirv/SpvModuleScopeVarParserTest_NamedWorkgroupVar.spvasm.expected.ir.fxc.hlsl b/test/tint/unittest/reader/spirv/SpvModuleScopeVarParserTest_NamedWorkgroupVar.spvasm.expected.ir.fxc.hlsl
deleted file mode 100644
index a096ece..0000000
--- a/test/tint/unittest/reader/spirv/SpvModuleScopeVarParserTest_NamedWorkgroupVar.spvasm.expected.ir.fxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-void main_1() {
-}
-
-void main() {
-  main_1();
-}
-
diff --git a/test/tint/unittest/reader/spirv/SpvModuleScopeVarParserTest_NoVar.spvasm.expected.ir.fxc.hlsl b/test/tint/unittest/reader/spirv/SpvModuleScopeVarParserTest_NoVar.spvasm.expected.ir.fxc.hlsl
deleted file mode 100644
index a096ece..0000000
--- a/test/tint/unittest/reader/spirv/SpvModuleScopeVarParserTest_NoVar.spvasm.expected.ir.fxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-void main_1() {
-}
-
-void main() {
-  main_1();
-}
-
diff --git a/test/tint/unittest/reader/spirv/SpvModuleScopeVarParserTest_OutputVarsConvertedToPrivate.spvasm.expected.ir.fxc.hlsl b/test/tint/unittest/reader/spirv/SpvModuleScopeVarParserTest_OutputVarsConvertedToPrivate.spvasm.expected.ir.fxc.hlsl
deleted file mode 100644
index a096ece..0000000
--- a/test/tint/unittest/reader/spirv/SpvModuleScopeVarParserTest_OutputVarsConvertedToPrivate.spvasm.expected.ir.fxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-void main_1() {
-}
-
-void main() {
-  main_1();
-}
-
diff --git a/test/tint/unittest/reader/spirv/SpvModuleScopeVarParserTest_OutputVarsConvertedToPrivate_WithInitializer.spvasm.expected.ir.fxc.hlsl b/test/tint/unittest/reader/spirv/SpvModuleScopeVarParserTest_OutputVarsConvertedToPrivate_WithInitializer.spvasm.expected.ir.fxc.hlsl
deleted file mode 100644
index a096ece..0000000
--- a/test/tint/unittest/reader/spirv/SpvModuleScopeVarParserTest_OutputVarsConvertedToPrivate_WithInitializer.spvasm.expected.ir.fxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-void main_1() {
-}
-
-void main() {
-  main_1();
-}
-
diff --git a/test/tint/unittest/reader/spirv/SpvModuleScopeVarParserTest_Output_FlattenArray_OneLevel.spvasm.expected.ir.dxc.hlsl b/test/tint/unittest/reader/spirv/SpvModuleScopeVarParserTest_Output_FlattenArray_OneLevel.spvasm.expected.ir.dxc.hlsl
deleted file mode 100644
index c6e1d96..0000000
--- a/test/tint/unittest/reader/spirv/SpvModuleScopeVarParserTest_Output_FlattenArray_OneLevel.spvasm.expected.ir.dxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Construct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix 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_Output_FlattenArray_OneLevel.spvasm.expected.ir.fxc.hlsl b/test/tint/unittest/reader/spirv/SpvModuleScopeVarParserTest_Output_FlattenArray_OneLevel.spvasm.expected.ir.fxc.hlsl
deleted file mode 100644
index c6e1d96..0000000
--- a/test/tint/unittest/reader/spirv/SpvModuleScopeVarParserTest_Output_FlattenArray_OneLevel.spvasm.expected.ir.fxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Construct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix 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_Output_FlattenMatrix.spvasm.expected.ir.dxc.hlsl b/test/tint/unittest/reader/spirv/SpvModuleScopeVarParserTest_Output_FlattenMatrix.spvasm.expected.ir.dxc.hlsl
deleted file mode 100644
index c6e1d96..0000000
--- a/test/tint/unittest/reader/spirv/SpvModuleScopeVarParserTest_Output_FlattenMatrix.spvasm.expected.ir.dxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Construct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix 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_Output_FlattenMatrix.spvasm.expected.ir.fxc.hlsl b/test/tint/unittest/reader/spirv/SpvModuleScopeVarParserTest_Output_FlattenMatrix.spvasm.expected.ir.fxc.hlsl
deleted file mode 100644
index c6e1d96..0000000
--- a/test/tint/unittest/reader/spirv/SpvModuleScopeVarParserTest_Output_FlattenMatrix.spvasm.expected.ir.fxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Construct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix 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_Output_FlattenStruct_LocOnVariable.spvasm.expected.ir.dxc.hlsl b/test/tint/unittest/reader/spirv/SpvModuleScopeVarParserTest_Output_FlattenStruct_LocOnVariable.spvasm.expected.ir.dxc.hlsl
deleted file mode 100644
index c6e1d96..0000000
--- a/test/tint/unittest/reader/spirv/SpvModuleScopeVarParserTest_Output_FlattenStruct_LocOnVariable.spvasm.expected.ir.dxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Construct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix 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_Output_FlattenStruct_LocOnVariable.spvasm.expected.ir.fxc.hlsl b/test/tint/unittest/reader/spirv/SpvModuleScopeVarParserTest_Output_FlattenStruct_LocOnVariable.spvasm.expected.ir.fxc.hlsl
deleted file mode 100644
index c6e1d96..0000000
--- a/test/tint/unittest/reader/spirv/SpvModuleScopeVarParserTest_Output_FlattenStruct_LocOnVariable.spvasm.expected.ir.fxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Construct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix 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_PrivateVar.spvasm.expected.ir.fxc.hlsl b/test/tint/unittest/reader/spirv/SpvModuleScopeVarParserTest_PrivateVar.spvasm.expected.ir.fxc.hlsl
deleted file mode 100644
index a096ece..0000000
--- a/test/tint/unittest/reader/spirv/SpvModuleScopeVarParserTest_PrivateVar.spvasm.expected.ir.fxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-void main_1() {
-}
-
-void main() {
-  main_1();
-}
-
diff --git a/test/tint/unittest/reader/spirv/SpvModuleScopeVarParserTest_SampleId_I32_Load_AccessChain.spvasm.expected.ir.dxc.hlsl b/test/tint/unittest/reader/spirv/SpvModuleScopeVarParserTest_SampleId_I32_Load_AccessChain.spvasm.expected.ir.dxc.hlsl
deleted file mode 100644
index a249798..0000000
--- a/test/tint/unittest/reader/spirv/SpvModuleScopeVarParserTest_SampleId_I32_Load_AccessChain.spvasm.expected.ir.dxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Bitcast
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/unittest/reader/spirv/SpvModuleScopeVarParserTest_SampleId_I32_Load_AccessChain.spvasm.expected.ir.fxc.hlsl b/test/tint/unittest/reader/spirv/SpvModuleScopeVarParserTest_SampleId_I32_Load_AccessChain.spvasm.expected.ir.fxc.hlsl
deleted file mode 100644
index a249798..0000000
--- a/test/tint/unittest/reader/spirv/SpvModuleScopeVarParserTest_SampleId_I32_Load_AccessChain.spvasm.expected.ir.fxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Bitcast
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/unittest/reader/spirv/SpvModuleScopeVarParserTest_SampleId_I32_Load_CopyObject.spvasm.expected.ir.dxc.hlsl b/test/tint/unittest/reader/spirv/SpvModuleScopeVarParserTest_SampleId_I32_Load_CopyObject.spvasm.expected.ir.dxc.hlsl
deleted file mode 100644
index a249798..0000000
--- a/test/tint/unittest/reader/spirv/SpvModuleScopeVarParserTest_SampleId_I32_Load_CopyObject.spvasm.expected.ir.dxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Bitcast
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/unittest/reader/spirv/SpvModuleScopeVarParserTest_SampleId_I32_Load_CopyObject.spvasm.expected.ir.fxc.hlsl b/test/tint/unittest/reader/spirv/SpvModuleScopeVarParserTest_SampleId_I32_Load_CopyObject.spvasm.expected.ir.fxc.hlsl
deleted file mode 100644
index a249798..0000000
--- a/test/tint/unittest/reader/spirv/SpvModuleScopeVarParserTest_SampleId_I32_Load_CopyObject.spvasm.expected.ir.fxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Bitcast
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/unittest/reader/spirv/SpvModuleScopeVarParserTest_SampleId_I32_Load_Direct.spvasm.expected.ir.dxc.hlsl b/test/tint/unittest/reader/spirv/SpvModuleScopeVarParserTest_SampleId_I32_Load_Direct.spvasm.expected.ir.dxc.hlsl
deleted file mode 100644
index a249798..0000000
--- a/test/tint/unittest/reader/spirv/SpvModuleScopeVarParserTest_SampleId_I32_Load_Direct.spvasm.expected.ir.dxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Bitcast
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/unittest/reader/spirv/SpvModuleScopeVarParserTest_SampleId_I32_Load_Direct.spvasm.expected.ir.fxc.hlsl b/test/tint/unittest/reader/spirv/SpvModuleScopeVarParserTest_SampleId_I32_Load_Direct.spvasm.expected.ir.fxc.hlsl
deleted file mode 100644
index a249798..0000000
--- a/test/tint/unittest/reader/spirv/SpvModuleScopeVarParserTest_SampleId_I32_Load_Direct.spvasm.expected.ir.fxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Bitcast
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/unittest/reader/spirv/SpvModuleScopeVarParserTest_SampleId_U32_Load_AccessChain.spvasm.expected.ir.dxc.hlsl b/test/tint/unittest/reader/spirv/SpvModuleScopeVarParserTest_SampleId_U32_Load_AccessChain.spvasm.expected.ir.dxc.hlsl
deleted file mode 100644
index 6b047b4..0000000
--- a/test/tint/unittest/reader/spirv/SpvModuleScopeVarParserTest_SampleId_U32_Load_AccessChain.spvasm.expected.ir.dxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:287 internal compiler error: Switch() matched no cases. Type: tint::core::ir::FunctionParam
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/unittest/reader/spirv/SpvModuleScopeVarParserTest_SampleId_U32_Load_AccessChain.spvasm.expected.ir.fxc.hlsl b/test/tint/unittest/reader/spirv/SpvModuleScopeVarParserTest_SampleId_U32_Load_AccessChain.spvasm.expected.ir.fxc.hlsl
deleted file mode 100644
index 6b047b4..0000000
--- a/test/tint/unittest/reader/spirv/SpvModuleScopeVarParserTest_SampleId_U32_Load_AccessChain.spvasm.expected.ir.fxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:287 internal compiler error: Switch() matched no cases. Type: tint::core::ir::FunctionParam
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/unittest/reader/spirv/SpvModuleScopeVarParserTest_SampleId_U32_Load_CopyObject.spvasm.expected.ir.dxc.hlsl b/test/tint/unittest/reader/spirv/SpvModuleScopeVarParserTest_SampleId_U32_Load_CopyObject.spvasm.expected.ir.dxc.hlsl
deleted file mode 100644
index 6b047b4..0000000
--- a/test/tint/unittest/reader/spirv/SpvModuleScopeVarParserTest_SampleId_U32_Load_CopyObject.spvasm.expected.ir.dxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:287 internal compiler error: Switch() matched no cases. Type: tint::core::ir::FunctionParam
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/unittest/reader/spirv/SpvModuleScopeVarParserTest_SampleId_U32_Load_CopyObject.spvasm.expected.ir.fxc.hlsl b/test/tint/unittest/reader/spirv/SpvModuleScopeVarParserTest_SampleId_U32_Load_CopyObject.spvasm.expected.ir.fxc.hlsl
deleted file mode 100644
index 6b047b4..0000000
--- a/test/tint/unittest/reader/spirv/SpvModuleScopeVarParserTest_SampleId_U32_Load_CopyObject.spvasm.expected.ir.fxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:287 internal compiler error: Switch() matched no cases. Type: tint::core::ir::FunctionParam
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/unittest/reader/spirv/SpvModuleScopeVarParserTest_SampleId_U32_Load_Direct.spvasm.expected.ir.dxc.hlsl b/test/tint/unittest/reader/spirv/SpvModuleScopeVarParserTest_SampleId_U32_Load_Direct.spvasm.expected.ir.dxc.hlsl
deleted file mode 100644
index 6b047b4..0000000
--- a/test/tint/unittest/reader/spirv/SpvModuleScopeVarParserTest_SampleId_U32_Load_Direct.spvasm.expected.ir.dxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:287 internal compiler error: Switch() matched no cases. Type: tint::core::ir::FunctionParam
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/unittest/reader/spirv/SpvModuleScopeVarParserTest_SampleId_U32_Load_Direct.spvasm.expected.ir.fxc.hlsl b/test/tint/unittest/reader/spirv/SpvModuleScopeVarParserTest_SampleId_U32_Load_Direct.spvasm.expected.ir.fxc.hlsl
deleted file mode 100644
index 6b047b4..0000000
--- a/test/tint/unittest/reader/spirv/SpvModuleScopeVarParserTest_SampleId_U32_Load_Direct.spvasm.expected.ir.fxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:287 internal compiler error: Switch() matched no cases. Type: tint::core::ir::FunctionParam
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/unittest/reader/spirv/SpvModuleScopeVarParserTest_SampleMask_In_I32_AccessChain.spvasm.expected.ir.dxc.hlsl b/test/tint/unittest/reader/spirv/SpvModuleScopeVarParserTest_SampleMask_In_I32_AccessChain.spvasm.expected.ir.dxc.hlsl
deleted file mode 100644
index 3f437dc..0000000
--- a/test/tint/unittest/reader/spirv/SpvModuleScopeVarParserTest_SampleMask_In_I32_AccessChain.spvasm.expected.ir.dxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Access
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/unittest/reader/spirv/SpvModuleScopeVarParserTest_SampleMask_In_I32_AccessChain.spvasm.expected.ir.fxc.hlsl b/test/tint/unittest/reader/spirv/SpvModuleScopeVarParserTest_SampleMask_In_I32_AccessChain.spvasm.expected.ir.fxc.hlsl
deleted file mode 100644
index 3f437dc..0000000
--- a/test/tint/unittest/reader/spirv/SpvModuleScopeVarParserTest_SampleMask_In_I32_AccessChain.spvasm.expected.ir.fxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Access
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/unittest/reader/spirv/SpvModuleScopeVarParserTest_SampleMask_In_I32_CopyObject.spvasm.expected.ir.dxc.hlsl b/test/tint/unittest/reader/spirv/SpvModuleScopeVarParserTest_SampleMask_In_I32_CopyObject.spvasm.expected.ir.dxc.hlsl
deleted file mode 100644
index 3f437dc..0000000
--- a/test/tint/unittest/reader/spirv/SpvModuleScopeVarParserTest_SampleMask_In_I32_CopyObject.spvasm.expected.ir.dxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Access
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/unittest/reader/spirv/SpvModuleScopeVarParserTest_SampleMask_In_I32_CopyObject.spvasm.expected.ir.fxc.hlsl b/test/tint/unittest/reader/spirv/SpvModuleScopeVarParserTest_SampleMask_In_I32_CopyObject.spvasm.expected.ir.fxc.hlsl
deleted file mode 100644
index 3f437dc..0000000
--- a/test/tint/unittest/reader/spirv/SpvModuleScopeVarParserTest_SampleMask_In_I32_CopyObject.spvasm.expected.ir.fxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Access
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/unittest/reader/spirv/SpvModuleScopeVarParserTest_SampleMask_In_I32_Direct.spvasm.expected.ir.dxc.hlsl b/test/tint/unittest/reader/spirv/SpvModuleScopeVarParserTest_SampleMask_In_I32_Direct.spvasm.expected.ir.dxc.hlsl
deleted file mode 100644
index 3f437dc..0000000
--- a/test/tint/unittest/reader/spirv/SpvModuleScopeVarParserTest_SampleMask_In_I32_Direct.spvasm.expected.ir.dxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Access
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/unittest/reader/spirv/SpvModuleScopeVarParserTest_SampleMask_In_I32_Direct.spvasm.expected.ir.fxc.hlsl b/test/tint/unittest/reader/spirv/SpvModuleScopeVarParserTest_SampleMask_In_I32_Direct.spvasm.expected.ir.fxc.hlsl
deleted file mode 100644
index 3f437dc..0000000
--- a/test/tint/unittest/reader/spirv/SpvModuleScopeVarParserTest_SampleMask_In_I32_Direct.spvasm.expected.ir.fxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Access
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/unittest/reader/spirv/SpvModuleScopeVarParserTest_SampleMask_In_U32_AccessChain.spvasm.expected.ir.dxc.hlsl b/test/tint/unittest/reader/spirv/SpvModuleScopeVarParserTest_SampleMask_In_U32_AccessChain.spvasm.expected.ir.dxc.hlsl
deleted file mode 100644
index 3f437dc..0000000
--- a/test/tint/unittest/reader/spirv/SpvModuleScopeVarParserTest_SampleMask_In_U32_AccessChain.spvasm.expected.ir.dxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Access
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/unittest/reader/spirv/SpvModuleScopeVarParserTest_SampleMask_In_U32_AccessChain.spvasm.expected.ir.fxc.hlsl b/test/tint/unittest/reader/spirv/SpvModuleScopeVarParserTest_SampleMask_In_U32_AccessChain.spvasm.expected.ir.fxc.hlsl
deleted file mode 100644
index 3f437dc..0000000
--- a/test/tint/unittest/reader/spirv/SpvModuleScopeVarParserTest_SampleMask_In_U32_AccessChain.spvasm.expected.ir.fxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Access
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/unittest/reader/spirv/SpvModuleScopeVarParserTest_SampleMask_In_U32_CopyObject.spvasm.expected.ir.dxc.hlsl b/test/tint/unittest/reader/spirv/SpvModuleScopeVarParserTest_SampleMask_In_U32_CopyObject.spvasm.expected.ir.dxc.hlsl
deleted file mode 100644
index 3f437dc..0000000
--- a/test/tint/unittest/reader/spirv/SpvModuleScopeVarParserTest_SampleMask_In_U32_CopyObject.spvasm.expected.ir.dxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Access
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/unittest/reader/spirv/SpvModuleScopeVarParserTest_SampleMask_In_U32_CopyObject.spvasm.expected.ir.fxc.hlsl b/test/tint/unittest/reader/spirv/SpvModuleScopeVarParserTest_SampleMask_In_U32_CopyObject.spvasm.expected.ir.fxc.hlsl
deleted file mode 100644
index 3f437dc..0000000
--- a/test/tint/unittest/reader/spirv/SpvModuleScopeVarParserTest_SampleMask_In_U32_CopyObject.spvasm.expected.ir.fxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Access
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/unittest/reader/spirv/SpvModuleScopeVarParserTest_SampleMask_In_U32_Direct.spvasm.expected.ir.dxc.hlsl b/test/tint/unittest/reader/spirv/SpvModuleScopeVarParserTest_SampleMask_In_U32_Direct.spvasm.expected.ir.dxc.hlsl
deleted file mode 100644
index 3f437dc..0000000
--- a/test/tint/unittest/reader/spirv/SpvModuleScopeVarParserTest_SampleMask_In_U32_Direct.spvasm.expected.ir.dxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Access
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/unittest/reader/spirv/SpvModuleScopeVarParserTest_SampleMask_In_U32_Direct.spvasm.expected.ir.fxc.hlsl b/test/tint/unittest/reader/spirv/SpvModuleScopeVarParserTest_SampleMask_In_U32_Direct.spvasm.expected.ir.fxc.hlsl
deleted file mode 100644
index 3f437dc..0000000
--- a/test/tint/unittest/reader/spirv/SpvModuleScopeVarParserTest_SampleMask_In_U32_Direct.spvasm.expected.ir.fxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Access
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/unittest/reader/spirv/SpvModuleScopeVarParserTest_SampleMask_In_WithStride.spvasm.expected.ir.dxc.hlsl b/test/tint/unittest/reader/spirv/SpvModuleScopeVarParserTest_SampleMask_In_WithStride.spvasm.expected.ir.dxc.hlsl
deleted file mode 100644
index 3f437dc..0000000
--- a/test/tint/unittest/reader/spirv/SpvModuleScopeVarParserTest_SampleMask_In_WithStride.spvasm.expected.ir.dxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Access
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/unittest/reader/spirv/SpvModuleScopeVarParserTest_SampleMask_In_WithStride.spvasm.expected.ir.fxc.hlsl b/test/tint/unittest/reader/spirv/SpvModuleScopeVarParserTest_SampleMask_In_WithStride.spvasm.expected.ir.fxc.hlsl
deleted file mode 100644
index 3f437dc..0000000
--- a/test/tint/unittest/reader/spirv/SpvModuleScopeVarParserTest_SampleMask_In_WithStride.spvasm.expected.ir.fxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Access
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/unittest/reader/spirv/SpvModuleScopeVarParserTest_SampleMask_Out_I32_AccessChain.spvasm.expected.ir.dxc.hlsl b/test/tint/unittest/reader/spirv/SpvModuleScopeVarParserTest_SampleMask_Out_I32_AccessChain.spvasm.expected.ir.dxc.hlsl
deleted file mode 100644
index 3f437dc..0000000
--- a/test/tint/unittest/reader/spirv/SpvModuleScopeVarParserTest_SampleMask_Out_I32_AccessChain.spvasm.expected.ir.dxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Access
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/unittest/reader/spirv/SpvModuleScopeVarParserTest_SampleMask_Out_I32_AccessChain.spvasm.expected.ir.fxc.hlsl b/test/tint/unittest/reader/spirv/SpvModuleScopeVarParserTest_SampleMask_Out_I32_AccessChain.spvasm.expected.ir.fxc.hlsl
deleted file mode 100644
index 3f437dc..0000000
--- a/test/tint/unittest/reader/spirv/SpvModuleScopeVarParserTest_SampleMask_Out_I32_AccessChain.spvasm.expected.ir.fxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Access
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/unittest/reader/spirv/SpvModuleScopeVarParserTest_SampleMask_Out_I32_CopyObject.spvasm.expected.ir.dxc.hlsl b/test/tint/unittest/reader/spirv/SpvModuleScopeVarParserTest_SampleMask_Out_I32_CopyObject.spvasm.expected.ir.dxc.hlsl
deleted file mode 100644
index 3f437dc..0000000
--- a/test/tint/unittest/reader/spirv/SpvModuleScopeVarParserTest_SampleMask_Out_I32_CopyObject.spvasm.expected.ir.dxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Access
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/unittest/reader/spirv/SpvModuleScopeVarParserTest_SampleMask_Out_I32_CopyObject.spvasm.expected.ir.fxc.hlsl b/test/tint/unittest/reader/spirv/SpvModuleScopeVarParserTest_SampleMask_Out_I32_CopyObject.spvasm.expected.ir.fxc.hlsl
deleted file mode 100644
index 3f437dc..0000000
--- a/test/tint/unittest/reader/spirv/SpvModuleScopeVarParserTest_SampleMask_Out_I32_CopyObject.spvasm.expected.ir.fxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Access
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/unittest/reader/spirv/SpvModuleScopeVarParserTest_SampleMask_Out_I32_Direct.spvasm.expected.ir.dxc.hlsl b/test/tint/unittest/reader/spirv/SpvModuleScopeVarParserTest_SampleMask_Out_I32_Direct.spvasm.expected.ir.dxc.hlsl
deleted file mode 100644
index 3f437dc..0000000
--- a/test/tint/unittest/reader/spirv/SpvModuleScopeVarParserTest_SampleMask_Out_I32_Direct.spvasm.expected.ir.dxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Access
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/unittest/reader/spirv/SpvModuleScopeVarParserTest_SampleMask_Out_I32_Direct.spvasm.expected.ir.fxc.hlsl b/test/tint/unittest/reader/spirv/SpvModuleScopeVarParserTest_SampleMask_Out_I32_Direct.spvasm.expected.ir.fxc.hlsl
deleted file mode 100644
index 3f437dc..0000000
--- a/test/tint/unittest/reader/spirv/SpvModuleScopeVarParserTest_SampleMask_Out_I32_Direct.spvasm.expected.ir.fxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Access
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/unittest/reader/spirv/SpvModuleScopeVarParserTest_SampleMask_Out_U32_AccessChain.spvasm.expected.ir.dxc.hlsl b/test/tint/unittest/reader/spirv/SpvModuleScopeVarParserTest_SampleMask_Out_U32_AccessChain.spvasm.expected.ir.dxc.hlsl
deleted file mode 100644
index 3f437dc..0000000
--- a/test/tint/unittest/reader/spirv/SpvModuleScopeVarParserTest_SampleMask_Out_U32_AccessChain.spvasm.expected.ir.dxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Access
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/unittest/reader/spirv/SpvModuleScopeVarParserTest_SampleMask_Out_U32_AccessChain.spvasm.expected.ir.fxc.hlsl b/test/tint/unittest/reader/spirv/SpvModuleScopeVarParserTest_SampleMask_Out_U32_AccessChain.spvasm.expected.ir.fxc.hlsl
deleted file mode 100644
index 3f437dc..0000000
--- a/test/tint/unittest/reader/spirv/SpvModuleScopeVarParserTest_SampleMask_Out_U32_AccessChain.spvasm.expected.ir.fxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Access
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/unittest/reader/spirv/SpvModuleScopeVarParserTest_SampleMask_Out_U32_CopyObject.spvasm.expected.ir.dxc.hlsl b/test/tint/unittest/reader/spirv/SpvModuleScopeVarParserTest_SampleMask_Out_U32_CopyObject.spvasm.expected.ir.dxc.hlsl
deleted file mode 100644
index 3f437dc..0000000
--- a/test/tint/unittest/reader/spirv/SpvModuleScopeVarParserTest_SampleMask_Out_U32_CopyObject.spvasm.expected.ir.dxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Access
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/unittest/reader/spirv/SpvModuleScopeVarParserTest_SampleMask_Out_U32_CopyObject.spvasm.expected.ir.fxc.hlsl b/test/tint/unittest/reader/spirv/SpvModuleScopeVarParserTest_SampleMask_Out_U32_CopyObject.spvasm.expected.ir.fxc.hlsl
deleted file mode 100644
index 3f437dc..0000000
--- a/test/tint/unittest/reader/spirv/SpvModuleScopeVarParserTest_SampleMask_Out_U32_CopyObject.spvasm.expected.ir.fxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Access
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/unittest/reader/spirv/SpvModuleScopeVarParserTest_SampleMask_Out_U32_Direct.spvasm.expected.ir.dxc.hlsl b/test/tint/unittest/reader/spirv/SpvModuleScopeVarParserTest_SampleMask_Out_U32_Direct.spvasm.expected.ir.dxc.hlsl
deleted file mode 100644
index 3f437dc..0000000
--- a/test/tint/unittest/reader/spirv/SpvModuleScopeVarParserTest_SampleMask_Out_U32_Direct.spvasm.expected.ir.dxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Access
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/unittest/reader/spirv/SpvModuleScopeVarParserTest_SampleMask_Out_U32_Direct.spvasm.expected.ir.fxc.hlsl b/test/tint/unittest/reader/spirv/SpvModuleScopeVarParserTest_SampleMask_Out_U32_Direct.spvasm.expected.ir.fxc.hlsl
deleted file mode 100644
index 3f437dc..0000000
--- a/test/tint/unittest/reader/spirv/SpvModuleScopeVarParserTest_SampleMask_Out_U32_Direct.spvasm.expected.ir.fxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Access
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/unittest/reader/spirv/SpvModuleScopeVarParserTest_SampleMask_Out_WithStride.spvasm.expected.ir.dxc.hlsl b/test/tint/unittest/reader/spirv/SpvModuleScopeVarParserTest_SampleMask_Out_WithStride.spvasm.expected.ir.dxc.hlsl
deleted file mode 100644
index 3f437dc..0000000
--- a/test/tint/unittest/reader/spirv/SpvModuleScopeVarParserTest_SampleMask_Out_WithStride.spvasm.expected.ir.dxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Access
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/unittest/reader/spirv/SpvModuleScopeVarParserTest_SampleMask_Out_WithStride.spvasm.expected.ir.fxc.hlsl b/test/tint/unittest/reader/spirv/SpvModuleScopeVarParserTest_SampleMask_Out_WithStride.spvasm.expected.ir.fxc.hlsl
deleted file mode 100644
index 3f437dc..0000000
--- a/test/tint/unittest/reader/spirv/SpvModuleScopeVarParserTest_SampleMask_Out_WithStride.spvasm.expected.ir.fxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Access
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/unittest/reader/spirv/SpvModuleScopeVarParserTest_ScalarInitializers.spvasm.expected.ir.fxc.hlsl b/test/tint/unittest/reader/spirv/SpvModuleScopeVarParserTest_ScalarInitializers.spvasm.expected.ir.fxc.hlsl
deleted file mode 100644
index a096ece..0000000
--- a/test/tint/unittest/reader/spirv/SpvModuleScopeVarParserTest_ScalarInitializers.spvasm.expected.ir.fxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-void main_1() {
-}
-
-void main() {
-  main_1();
-}
-
diff --git a/test/tint/unittest/reader/spirv/SpvModuleScopeVarParserTest_ScalarNullInitializers.spvasm.expected.ir.fxc.hlsl b/test/tint/unittest/reader/spirv/SpvModuleScopeVarParserTest_ScalarNullInitializers.spvasm.expected.ir.fxc.hlsl
deleted file mode 100644
index a096ece..0000000
--- a/test/tint/unittest/reader/spirv/SpvModuleScopeVarParserTest_ScalarNullInitializers.spvasm.expected.ir.fxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-void main_1() {
-}
-
-void main() {
-  main_1();
-}
-
diff --git a/test/tint/unittest/reader/spirv/SpvModuleScopeVarParserTest_ScalarSpecConstant_DeclareConst_F32.spvasm.expected.ir.fxc.hlsl b/test/tint/unittest/reader/spirv/SpvModuleScopeVarParserTest_ScalarSpecConstant_DeclareConst_F32.spvasm.expected.ir.fxc.hlsl
deleted file mode 100644
index a096ece..0000000
--- a/test/tint/unittest/reader/spirv/SpvModuleScopeVarParserTest_ScalarSpecConstant_DeclareConst_F32.spvasm.expected.ir.fxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-void main_1() {
-}
-
-void main() {
-  main_1();
-}
-
diff --git a/test/tint/unittest/reader/spirv/SpvModuleScopeVarParserTest_ScalarSpecConstant_DeclareConst_F32_WithoutSpecId.spvasm.expected.ir.fxc.hlsl b/test/tint/unittest/reader/spirv/SpvModuleScopeVarParserTest_ScalarSpecConstant_DeclareConst_F32_WithoutSpecId.spvasm.expected.ir.fxc.hlsl
deleted file mode 100644
index a096ece..0000000
--- a/test/tint/unittest/reader/spirv/SpvModuleScopeVarParserTest_ScalarSpecConstant_DeclareConst_F32_WithoutSpecId.spvasm.expected.ir.fxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-void main_1() {
-}
-
-void main() {
-  main_1();
-}
-
diff --git a/test/tint/unittest/reader/spirv/SpvModuleScopeVarParserTest_ScalarSpecConstant_DeclareConst_False.spvasm.expected.ir.fxc.hlsl b/test/tint/unittest/reader/spirv/SpvModuleScopeVarParserTest_ScalarSpecConstant_DeclareConst_False.spvasm.expected.ir.fxc.hlsl
deleted file mode 100644
index a096ece..0000000
--- a/test/tint/unittest/reader/spirv/SpvModuleScopeVarParserTest_ScalarSpecConstant_DeclareConst_False.spvasm.expected.ir.fxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-void main_1() {
-}
-
-void main() {
-  main_1();
-}
-
diff --git a/test/tint/unittest/reader/spirv/SpvModuleScopeVarParserTest_ScalarSpecConstant_DeclareConst_I32.spvasm.expected.ir.fxc.hlsl b/test/tint/unittest/reader/spirv/SpvModuleScopeVarParserTest_ScalarSpecConstant_DeclareConst_I32.spvasm.expected.ir.fxc.hlsl
deleted file mode 100644
index a096ece..0000000
--- a/test/tint/unittest/reader/spirv/SpvModuleScopeVarParserTest_ScalarSpecConstant_DeclareConst_I32.spvasm.expected.ir.fxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-void main_1() {
-}
-
-void main() {
-  main_1();
-}
-
diff --git a/test/tint/unittest/reader/spirv/SpvModuleScopeVarParserTest_ScalarSpecConstant_DeclareConst_Id_MaxValid.spvasm.expected.ir.fxc.hlsl b/test/tint/unittest/reader/spirv/SpvModuleScopeVarParserTest_ScalarSpecConstant_DeclareConst_Id_MaxValid.spvasm.expected.ir.fxc.hlsl
deleted file mode 100644
index a096ece..0000000
--- a/test/tint/unittest/reader/spirv/SpvModuleScopeVarParserTest_ScalarSpecConstant_DeclareConst_Id_MaxValid.spvasm.expected.ir.fxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-void main_1() {
-}
-
-void main() {
-  main_1();
-}
-
diff --git a/test/tint/unittest/reader/spirv/SpvModuleScopeVarParserTest_ScalarSpecConstant_DeclareConst_True.spvasm.expected.ir.fxc.hlsl b/test/tint/unittest/reader/spirv/SpvModuleScopeVarParserTest_ScalarSpecConstant_DeclareConst_True.spvasm.expected.ir.fxc.hlsl
deleted file mode 100644
index a096ece..0000000
--- a/test/tint/unittest/reader/spirv/SpvModuleScopeVarParserTest_ScalarSpecConstant_DeclareConst_True.spvasm.expected.ir.fxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-void main_1() {
-}
-
-void main() {
-  main_1();
-}
-
diff --git a/test/tint/unittest/reader/spirv/SpvModuleScopeVarParserTest_ScalarSpecConstant_DeclareConst_U32.spvasm.expected.ir.fxc.hlsl b/test/tint/unittest/reader/spirv/SpvModuleScopeVarParserTest_ScalarSpecConstant_DeclareConst_U32.spvasm.expected.ir.fxc.hlsl
deleted file mode 100644
index a096ece..0000000
--- a/test/tint/unittest/reader/spirv/SpvModuleScopeVarParserTest_ScalarSpecConstant_DeclareConst_U32.spvasm.expected.ir.fxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-void main_1() {
-}
-
-void main() {
-  main_1();
-}
-
diff --git a/test/tint/unittest/reader/spirv/SpvModuleScopeVarParserTest_ScalarSpecConstant_UsedInFunction.spvasm.expected.ir.fxc.hlsl b/test/tint/unittest/reader/spirv/SpvModuleScopeVarParserTest_ScalarSpecConstant_UsedInFunction.spvasm.expected.ir.fxc.hlsl
deleted file mode 100644
index 2a996bb..0000000
--- a/test/tint/unittest/reader/spirv/SpvModuleScopeVarParserTest_ScalarSpecConstant_UsedInFunction.spvasm.expected.ir.fxc.hlsl
+++ /dev/null
@@ -1,13 +0,0 @@
-SKIP: FAILED
-
-float x_100() {
-  return 5.0f;
-}
-
-void main_1() {
-}
-
-void main() {
-  main_1();
-}
-
diff --git a/test/tint/unittest/reader/spirv/SpvModuleScopeVarParserTest_StorageBuffer_NonWritable_AllMembers.spvasm.expected.ir.fxc.hlsl b/test/tint/unittest/reader/spirv/SpvModuleScopeVarParserTest_StorageBuffer_NonWritable_AllMembers.spvasm.expected.ir.fxc.hlsl
deleted file mode 100644
index a096ece..0000000
--- a/test/tint/unittest/reader/spirv/SpvModuleScopeVarParserTest_StorageBuffer_NonWritable_AllMembers.spvasm.expected.ir.fxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-void main_1() {
-}
-
-void main() {
-  main_1();
-}
-
diff --git a/test/tint/unittest/reader/spirv/SpvModuleScopeVarParserTest_StorageBuffer_NonWritable_NotAllMembers.spvasm.expected.ir.fxc.hlsl b/test/tint/unittest/reader/spirv/SpvModuleScopeVarParserTest_StorageBuffer_NonWritable_NotAllMembers.spvasm.expected.ir.fxc.hlsl
deleted file mode 100644
index a096ece..0000000
--- a/test/tint/unittest/reader/spirv/SpvModuleScopeVarParserTest_StorageBuffer_NonWritable_NotAllMembers.spvasm.expected.ir.fxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-void main_1() {
-}
-
-void main() {
-  main_1();
-}
-
diff --git a/test/tint/unittest/reader/spirv/SpvModuleScopeVarParserTest_StructInitializer.spvasm.expected.ir.fxc.hlsl b/test/tint/unittest/reader/spirv/SpvModuleScopeVarParserTest_StructInitializer.spvasm.expected.ir.fxc.hlsl
deleted file mode 100644
index a096ece..0000000
--- a/test/tint/unittest/reader/spirv/SpvModuleScopeVarParserTest_StructInitializer.spvasm.expected.ir.fxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-void main_1() {
-}
-
-void main() {
-  main_1();
-}
-
diff --git a/test/tint/unittest/reader/spirv/SpvModuleScopeVarParserTest_StructMember_NonReadableDecoration_Dropped.spvasm.expected.ir.fxc.hlsl b/test/tint/unittest/reader/spirv/SpvModuleScopeVarParserTest_StructMember_NonReadableDecoration_Dropped.spvasm.expected.ir.fxc.hlsl
deleted file mode 100644
index a096ece..0000000
--- a/test/tint/unittest/reader/spirv/SpvModuleScopeVarParserTest_StructMember_NonReadableDecoration_Dropped.spvasm.expected.ir.fxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-void main_1() {
-}
-
-void main() {
-  main_1();
-}
-
diff --git a/test/tint/unittest/reader/spirv/SpvModuleScopeVarParserTest_StructNullInitializer.spvasm.expected.ir.fxc.hlsl b/test/tint/unittest/reader/spirv/SpvModuleScopeVarParserTest_StructNullInitializer.spvasm.expected.ir.fxc.hlsl
deleted file mode 100644
index a096ece..0000000
--- a/test/tint/unittest/reader/spirv/SpvModuleScopeVarParserTest_StructNullInitializer.spvasm.expected.ir.fxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-void main_1() {
-}
-
-void main() {
-  main_1();
-}
-
diff --git a/test/tint/unittest/reader/spirv/SpvModuleScopeVarParserTest_VectorBoolNullInitializer.spvasm.expected.ir.fxc.hlsl b/test/tint/unittest/reader/spirv/SpvModuleScopeVarParserTest_VectorBoolNullInitializer.spvasm.expected.ir.fxc.hlsl
deleted file mode 100644
index a096ece..0000000
--- a/test/tint/unittest/reader/spirv/SpvModuleScopeVarParserTest_VectorBoolNullInitializer.spvasm.expected.ir.fxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-void main_1() {
-}
-
-void main() {
-  main_1();
-}
-
diff --git a/test/tint/unittest/reader/spirv/SpvModuleScopeVarParserTest_VectorFloatNullInitializer.spvasm.expected.ir.fxc.hlsl b/test/tint/unittest/reader/spirv/SpvModuleScopeVarParserTest_VectorFloatNullInitializer.spvasm.expected.ir.fxc.hlsl
deleted file mode 100644
index a096ece..0000000
--- a/test/tint/unittest/reader/spirv/SpvModuleScopeVarParserTest_VectorFloatNullInitializer.spvasm.expected.ir.fxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-void main_1() {
-}
-
-void main() {
-  main_1();
-}
-
diff --git a/test/tint/unittest/reader/spirv/SpvModuleScopeVarParserTest_VectorInitializer.spvasm.expected.ir.fxc.hlsl b/test/tint/unittest/reader/spirv/SpvModuleScopeVarParserTest_VectorInitializer.spvasm.expected.ir.fxc.hlsl
deleted file mode 100644
index a096ece..0000000
--- a/test/tint/unittest/reader/spirv/SpvModuleScopeVarParserTest_VectorInitializer.spvasm.expected.ir.fxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-void main_1() {
-}
-
-void main() {
-  main_1();
-}
-
diff --git a/test/tint/unittest/reader/spirv/SpvModuleScopeVarParserTest_VectorIntNullInitializer.spvasm.expected.ir.fxc.hlsl b/test/tint/unittest/reader/spirv/SpvModuleScopeVarParserTest_VectorIntNullInitializer.spvasm.expected.ir.fxc.hlsl
deleted file mode 100644
index a096ece..0000000
--- a/test/tint/unittest/reader/spirv/SpvModuleScopeVarParserTest_VectorIntNullInitializer.spvasm.expected.ir.fxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-void main_1() {
-}
-
-void main() {
-  main_1();
-}
-
diff --git a/test/tint/unittest/reader/spirv/SpvModuleScopeVarParserTest_VectorUintNullInitializer.spvasm.expected.ir.fxc.hlsl b/test/tint/unittest/reader/spirv/SpvModuleScopeVarParserTest_VectorUintNullInitializer.spvasm.expected.ir.fxc.hlsl
deleted file mode 100644
index a096ece..0000000
--- a/test/tint/unittest/reader/spirv/SpvModuleScopeVarParserTest_VectorUintNullInitializer.spvasm.expected.ir.fxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-void main_1() {
-}
-
-void main() {
-  main_1();
-}
-
diff --git a/test/tint/unittest/reader/spirv/SpvModuleScopeVarParserTest_VertexIndex_I32_Load_AccessChain.spvasm.expected.ir.dxc.hlsl b/test/tint/unittest/reader/spirv/SpvModuleScopeVarParserTest_VertexIndex_I32_Load_AccessChain.spvasm.expected.ir.dxc.hlsl
deleted file mode 100644
index a249798..0000000
--- a/test/tint/unittest/reader/spirv/SpvModuleScopeVarParserTest_VertexIndex_I32_Load_AccessChain.spvasm.expected.ir.dxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Bitcast
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/unittest/reader/spirv/SpvModuleScopeVarParserTest_VertexIndex_I32_Load_AccessChain.spvasm.expected.ir.fxc.hlsl b/test/tint/unittest/reader/spirv/SpvModuleScopeVarParserTest_VertexIndex_I32_Load_AccessChain.spvasm.expected.ir.fxc.hlsl
deleted file mode 100644
index a249798..0000000
--- a/test/tint/unittest/reader/spirv/SpvModuleScopeVarParserTest_VertexIndex_I32_Load_AccessChain.spvasm.expected.ir.fxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Bitcast
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/unittest/reader/spirv/SpvModuleScopeVarParserTest_VertexIndex_I32_Load_CopyObject.spvasm.expected.ir.dxc.hlsl b/test/tint/unittest/reader/spirv/SpvModuleScopeVarParserTest_VertexIndex_I32_Load_CopyObject.spvasm.expected.ir.dxc.hlsl
deleted file mode 100644
index a249798..0000000
--- a/test/tint/unittest/reader/spirv/SpvModuleScopeVarParserTest_VertexIndex_I32_Load_CopyObject.spvasm.expected.ir.dxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Bitcast
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/unittest/reader/spirv/SpvModuleScopeVarParserTest_VertexIndex_I32_Load_CopyObject.spvasm.expected.ir.fxc.hlsl b/test/tint/unittest/reader/spirv/SpvModuleScopeVarParserTest_VertexIndex_I32_Load_CopyObject.spvasm.expected.ir.fxc.hlsl
deleted file mode 100644
index a249798..0000000
--- a/test/tint/unittest/reader/spirv/SpvModuleScopeVarParserTest_VertexIndex_I32_Load_CopyObject.spvasm.expected.ir.fxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Bitcast
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/unittest/reader/spirv/SpvModuleScopeVarParserTest_VertexIndex_I32_Load_Direct.spvasm.expected.ir.dxc.hlsl b/test/tint/unittest/reader/spirv/SpvModuleScopeVarParserTest_VertexIndex_I32_Load_Direct.spvasm.expected.ir.dxc.hlsl
deleted file mode 100644
index a249798..0000000
--- a/test/tint/unittest/reader/spirv/SpvModuleScopeVarParserTest_VertexIndex_I32_Load_Direct.spvasm.expected.ir.dxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Bitcast
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/unittest/reader/spirv/SpvModuleScopeVarParserTest_VertexIndex_I32_Load_Direct.spvasm.expected.ir.fxc.hlsl b/test/tint/unittest/reader/spirv/SpvModuleScopeVarParserTest_VertexIndex_I32_Load_Direct.spvasm.expected.ir.fxc.hlsl
deleted file mode 100644
index a249798..0000000
--- a/test/tint/unittest/reader/spirv/SpvModuleScopeVarParserTest_VertexIndex_I32_Load_Direct.spvasm.expected.ir.fxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Bitcast
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/unittest/reader/spirv/SpvModuleScopeVarParserTest_VertexIndex_U32_Load_AccessChain.spvasm.expected.ir.dxc.hlsl b/test/tint/unittest/reader/spirv/SpvModuleScopeVarParserTest_VertexIndex_U32_Load_AccessChain.spvasm.expected.ir.dxc.hlsl
deleted file mode 100644
index 6b047b4..0000000
--- a/test/tint/unittest/reader/spirv/SpvModuleScopeVarParserTest_VertexIndex_U32_Load_AccessChain.spvasm.expected.ir.dxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:287 internal compiler error: Switch() matched no cases. Type: tint::core::ir::FunctionParam
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/unittest/reader/spirv/SpvModuleScopeVarParserTest_VertexIndex_U32_Load_AccessChain.spvasm.expected.ir.fxc.hlsl b/test/tint/unittest/reader/spirv/SpvModuleScopeVarParserTest_VertexIndex_U32_Load_AccessChain.spvasm.expected.ir.fxc.hlsl
deleted file mode 100644
index 6b047b4..0000000
--- a/test/tint/unittest/reader/spirv/SpvModuleScopeVarParserTest_VertexIndex_U32_Load_AccessChain.spvasm.expected.ir.fxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:287 internal compiler error: Switch() matched no cases. Type: tint::core::ir::FunctionParam
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/unittest/reader/spirv/SpvModuleScopeVarParserTest_VertexIndex_U32_Load_CopyObject.spvasm.expected.ir.dxc.hlsl b/test/tint/unittest/reader/spirv/SpvModuleScopeVarParserTest_VertexIndex_U32_Load_CopyObject.spvasm.expected.ir.dxc.hlsl
deleted file mode 100644
index 6b047b4..0000000
--- a/test/tint/unittest/reader/spirv/SpvModuleScopeVarParserTest_VertexIndex_U32_Load_CopyObject.spvasm.expected.ir.dxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:287 internal compiler error: Switch() matched no cases. Type: tint::core::ir::FunctionParam
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/unittest/reader/spirv/SpvModuleScopeVarParserTest_VertexIndex_U32_Load_CopyObject.spvasm.expected.ir.fxc.hlsl b/test/tint/unittest/reader/spirv/SpvModuleScopeVarParserTest_VertexIndex_U32_Load_CopyObject.spvasm.expected.ir.fxc.hlsl
deleted file mode 100644
index 6b047b4..0000000
--- a/test/tint/unittest/reader/spirv/SpvModuleScopeVarParserTest_VertexIndex_U32_Load_CopyObject.spvasm.expected.ir.fxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:287 internal compiler error: Switch() matched no cases. Type: tint::core::ir::FunctionParam
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/unittest/reader/spirv/SpvModuleScopeVarParserTest_VertexIndex_U32_Load_Direct.spvasm.expected.ir.dxc.hlsl b/test/tint/unittest/reader/spirv/SpvModuleScopeVarParserTest_VertexIndex_U32_Load_Direct.spvasm.expected.ir.dxc.hlsl
deleted file mode 100644
index 6b047b4..0000000
--- a/test/tint/unittest/reader/spirv/SpvModuleScopeVarParserTest_VertexIndex_U32_Load_Direct.spvasm.expected.ir.dxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:287 internal compiler error: Switch() matched no cases. Type: tint::core::ir::FunctionParam
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/unittest/reader/spirv/SpvModuleScopeVarParserTest_VertexIndex_U32_Load_Direct.spvasm.expected.ir.fxc.hlsl b/test/tint/unittest/reader/spirv/SpvModuleScopeVarParserTest_VertexIndex_U32_Load_Direct.spvasm.expected.ir.fxc.hlsl
deleted file mode 100644
index 6b047b4..0000000
--- a/test/tint/unittest/reader/spirv/SpvModuleScopeVarParserTest_VertexIndex_U32_Load_Direct.spvasm.expected.ir.fxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:287 internal compiler error: Switch() matched no cases. Type: tint::core::ir::FunctionParam
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/unittest/reader/spirv/SpvParserCFGTest_ClassifyCFGEdges_BackEdge_MultiBlockLoop_MultiBlockContinueConstruct_ContinueIsNotHeader.spvasm.expected.ir.dxc.hlsl b/test/tint/unittest/reader/spirv/SpvParserCFGTest_ClassifyCFGEdges_BackEdge_MultiBlockLoop_MultiBlockContinueConstruct_ContinueIsNotHeader.spvasm.expected.ir.dxc.hlsl
deleted file mode 100644
index adbb0c1..0000000
--- a/test/tint/unittest/reader/spirv/SpvParserCFGTest_ClassifyCFGEdges_BackEdge_MultiBlockLoop_MultiBlockContinueConstruct_ContinueIsNotHeader.spvasm.expected.ir.dxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:198 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Loop
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/unittest/reader/spirv/SpvParserCFGTest_ClassifyCFGEdges_BackEdge_MultiBlockLoop_MultiBlockContinueConstruct_ContinueIsNotHeader.spvasm.expected.ir.fxc.hlsl b/test/tint/unittest/reader/spirv/SpvParserCFGTest_ClassifyCFGEdges_BackEdge_MultiBlockLoop_MultiBlockContinueConstruct_ContinueIsNotHeader.spvasm.expected.ir.fxc.hlsl
deleted file mode 100644
index adbb0c1..0000000
--- a/test/tint/unittest/reader/spirv/SpvParserCFGTest_ClassifyCFGEdges_BackEdge_MultiBlockLoop_MultiBlockContinueConstruct_ContinueIsNotHeader.spvasm.expected.ir.fxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:198 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Loop
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/unittest/reader/spirv/SpvParserCFGTest_ClassifyCFGEdges_BackEdge_MultiBlockLoop_SingleBlockContinueConstruct.spvasm.expected.ir.dxc.hlsl b/test/tint/unittest/reader/spirv/SpvParserCFGTest_ClassifyCFGEdges_BackEdge_MultiBlockLoop_SingleBlockContinueConstruct.spvasm.expected.ir.dxc.hlsl
deleted file mode 100644
index adbb0c1..0000000
--- a/test/tint/unittest/reader/spirv/SpvParserCFGTest_ClassifyCFGEdges_BackEdge_MultiBlockLoop_SingleBlockContinueConstruct.spvasm.expected.ir.dxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:198 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Loop
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/unittest/reader/spirv/SpvParserCFGTest_ClassifyCFGEdges_BackEdge_MultiBlockLoop_SingleBlockContinueConstruct.spvasm.expected.ir.fxc.hlsl b/test/tint/unittest/reader/spirv/SpvParserCFGTest_ClassifyCFGEdges_BackEdge_MultiBlockLoop_SingleBlockContinueConstruct.spvasm.expected.ir.fxc.hlsl
deleted file mode 100644
index adbb0c1..0000000
--- a/test/tint/unittest/reader/spirv/SpvParserCFGTest_ClassifyCFGEdges_BackEdge_MultiBlockLoop_SingleBlockContinueConstruct.spvasm.expected.ir.fxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:198 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Loop
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/unittest/reader/spirv/SpvParserCFGTest_ClassifyCFGEdges_BackEdge_SingleBlockLoop.spvasm.expected.ir.dxc.hlsl b/test/tint/unittest/reader/spirv/SpvParserCFGTest_ClassifyCFGEdges_BackEdge_SingleBlockLoop.spvasm.expected.ir.dxc.hlsl
deleted file mode 100644
index adbb0c1..0000000
--- a/test/tint/unittest/reader/spirv/SpvParserCFGTest_ClassifyCFGEdges_BackEdge_SingleBlockLoop.spvasm.expected.ir.dxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:198 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Loop
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/unittest/reader/spirv/SpvParserCFGTest_ClassifyCFGEdges_BackEdge_SingleBlockLoop.spvasm.expected.ir.fxc.hlsl b/test/tint/unittest/reader/spirv/SpvParserCFGTest_ClassifyCFGEdges_BackEdge_SingleBlockLoop.spvasm.expected.ir.fxc.hlsl
deleted file mode 100644
index adbb0c1..0000000
--- a/test/tint/unittest/reader/spirv/SpvParserCFGTest_ClassifyCFGEdges_BackEdge_SingleBlockLoop.spvasm.expected.ir.fxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:198 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Loop
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/unittest/reader/spirv/SpvParserCFGTest_ClassifyCFGEdges_Forward_IfToElse.spvasm.expected.ir.dxc.hlsl b/test/tint/unittest/reader/spirv/SpvParserCFGTest_ClassifyCFGEdges_Forward_IfToElse.spvasm.expected.ir.dxc.hlsl
deleted file mode 100644
index bdeab23..0000000
--- a/test/tint/unittest/reader/spirv/SpvParserCFGTest_ClassifyCFGEdges_Forward_IfToElse.spvasm.expected.ir.dxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:198 internal compiler error: Switch() matched no cases. Type: tint::core::ir::If
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix 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/SpvParserCFGTest_ClassifyCFGEdges_Forward_IfToElse.spvasm.expected.ir.fxc.hlsl b/test/tint/unittest/reader/spirv/SpvParserCFGTest_ClassifyCFGEdges_Forward_IfToElse.spvasm.expected.ir.fxc.hlsl
deleted file mode 100644
index bdeab23..0000000
--- a/test/tint/unittest/reader/spirv/SpvParserCFGTest_ClassifyCFGEdges_Forward_IfToElse.spvasm.expected.ir.fxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:198 internal compiler error: Switch() matched no cases. Type: tint::core::ir::If
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix 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/SpvParserCFGTest_ClassifyCFGEdges_Forward_IfToThen.spvasm.expected.ir.dxc.hlsl b/test/tint/unittest/reader/spirv/SpvParserCFGTest_ClassifyCFGEdges_Forward_IfToThen.spvasm.expected.ir.dxc.hlsl
deleted file mode 100644
index bdeab23..0000000
--- a/test/tint/unittest/reader/spirv/SpvParserCFGTest_ClassifyCFGEdges_Forward_IfToThen.spvasm.expected.ir.dxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:198 internal compiler error: Switch() matched no cases. Type: tint::core::ir::If
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix 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/SpvParserCFGTest_ClassifyCFGEdges_Forward_IfToThen.spvasm.expected.ir.fxc.hlsl b/test/tint/unittest/reader/spirv/SpvParserCFGTest_ClassifyCFGEdges_Forward_IfToThen.spvasm.expected.ir.fxc.hlsl
deleted file mode 100644
index bdeab23..0000000
--- a/test/tint/unittest/reader/spirv/SpvParserCFGTest_ClassifyCFGEdges_Forward_IfToThen.spvasm.expected.ir.fxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:198 internal compiler error: Switch() matched no cases. Type: tint::core::ir::If
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix 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/SpvParserCFGTest_ClassifyCFGEdges_Forward_LoopHeadToBody.spvasm.expected.ir.dxc.hlsl b/test/tint/unittest/reader/spirv/SpvParserCFGTest_ClassifyCFGEdges_Forward_LoopHeadToBody.spvasm.expected.ir.dxc.hlsl
deleted file mode 100644
index adbb0c1..0000000
--- a/test/tint/unittest/reader/spirv/SpvParserCFGTest_ClassifyCFGEdges_Forward_LoopHeadToBody.spvasm.expected.ir.dxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:198 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Loop
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/unittest/reader/spirv/SpvParserCFGTest_ClassifyCFGEdges_Forward_LoopHeadToBody.spvasm.expected.ir.fxc.hlsl b/test/tint/unittest/reader/spirv/SpvParserCFGTest_ClassifyCFGEdges_Forward_LoopHeadToBody.spvasm.expected.ir.fxc.hlsl
deleted file mode 100644
index adbb0c1..0000000
--- a/test/tint/unittest/reader/spirv/SpvParserCFGTest_ClassifyCFGEdges_Forward_LoopHeadToBody.spvasm.expected.ir.fxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:198 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Loop
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/unittest/reader/spirv/SpvParserCFGTest_ClassifyCFGEdges_Forward_SwitchToCase.spvasm.expected.ir.dxc.hlsl b/test/tint/unittest/reader/spirv/SpvParserCFGTest_ClassifyCFGEdges_Forward_SwitchToCase.spvasm.expected.ir.dxc.hlsl
deleted file mode 100644
index 27c824a..0000000
--- a/test/tint/unittest/reader/spirv/SpvParserCFGTest_ClassifyCFGEdges_Forward_SwitchToCase.spvasm.expected.ir.dxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:198 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Switch
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/unittest/reader/spirv/SpvParserCFGTest_ClassifyCFGEdges_Forward_SwitchToCase.spvasm.expected.ir.fxc.hlsl b/test/tint/unittest/reader/spirv/SpvParserCFGTest_ClassifyCFGEdges_Forward_SwitchToCase.spvasm.expected.ir.fxc.hlsl
deleted file mode 100644
index 27c824a..0000000
--- a/test/tint/unittest/reader/spirv/SpvParserCFGTest_ClassifyCFGEdges_Forward_SwitchToCase.spvasm.expected.ir.fxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:198 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Switch
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/unittest/reader/spirv/SpvParserCFGTest_ClassifyCFGEdges_Forward_SwitchToDefaultNotMerge.spvasm.expected.ir.dxc.hlsl b/test/tint/unittest/reader/spirv/SpvParserCFGTest_ClassifyCFGEdges_Forward_SwitchToDefaultNotMerge.spvasm.expected.ir.dxc.hlsl
deleted file mode 100644
index 27c824a..0000000
--- a/test/tint/unittest/reader/spirv/SpvParserCFGTest_ClassifyCFGEdges_Forward_SwitchToDefaultNotMerge.spvasm.expected.ir.dxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:198 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Switch
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/unittest/reader/spirv/SpvParserCFGTest_ClassifyCFGEdges_Forward_SwitchToDefaultNotMerge.spvasm.expected.ir.fxc.hlsl b/test/tint/unittest/reader/spirv/SpvParserCFGTest_ClassifyCFGEdges_Forward_SwitchToDefaultNotMerge.spvasm.expected.ir.fxc.hlsl
deleted file mode 100644
index 27c824a..0000000
--- a/test/tint/unittest/reader/spirv/SpvParserCFGTest_ClassifyCFGEdges_Forward_SwitchToDefaultNotMerge.spvasm.expected.ir.fxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:198 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Switch
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/unittest/reader/spirv/SpvParserCFGTest_ClassifyCFGEdges_IfBreak_FromElse_ForwardWithinElse.spvasm.expected.ir.dxc.hlsl b/test/tint/unittest/reader/spirv/SpvParserCFGTest_ClassifyCFGEdges_IfBreak_FromElse_ForwardWithinElse.spvasm.expected.ir.dxc.hlsl
deleted file mode 100644
index bdeab23..0000000
--- a/test/tint/unittest/reader/spirv/SpvParserCFGTest_ClassifyCFGEdges_IfBreak_FromElse_ForwardWithinElse.spvasm.expected.ir.dxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:198 internal compiler error: Switch() matched no cases. Type: tint::core::ir::If
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix 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/SpvParserCFGTest_ClassifyCFGEdges_IfBreak_FromElse_ForwardWithinElse.spvasm.expected.ir.fxc.hlsl b/test/tint/unittest/reader/spirv/SpvParserCFGTest_ClassifyCFGEdges_IfBreak_FromElse_ForwardWithinElse.spvasm.expected.ir.fxc.hlsl
deleted file mode 100644
index bdeab23..0000000
--- a/test/tint/unittest/reader/spirv/SpvParserCFGTest_ClassifyCFGEdges_IfBreak_FromElse_ForwardWithinElse.spvasm.expected.ir.fxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:198 internal compiler error: Switch() matched no cases. Type: tint::core::ir::If
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix 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/SpvParserCFGTest_ClassifyCFGEdges_IfBreak_FromIfHeader.spvasm.expected.ir.dxc.hlsl b/test/tint/unittest/reader/spirv/SpvParserCFGTest_ClassifyCFGEdges_IfBreak_FromIfHeader.spvasm.expected.ir.dxc.hlsl
deleted file mode 100644
index bdeab23..0000000
--- a/test/tint/unittest/reader/spirv/SpvParserCFGTest_ClassifyCFGEdges_IfBreak_FromIfHeader.spvasm.expected.ir.dxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:198 internal compiler error: Switch() matched no cases. Type: tint::core::ir::If
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix 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/SpvParserCFGTest_ClassifyCFGEdges_IfBreak_FromIfHeader.spvasm.expected.ir.fxc.hlsl b/test/tint/unittest/reader/spirv/SpvParserCFGTest_ClassifyCFGEdges_IfBreak_FromIfHeader.spvasm.expected.ir.fxc.hlsl
deleted file mode 100644
index bdeab23..0000000
--- a/test/tint/unittest/reader/spirv/SpvParserCFGTest_ClassifyCFGEdges_IfBreak_FromIfHeader.spvasm.expected.ir.fxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:198 internal compiler error: Switch() matched no cases. Type: tint::core::ir::If
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix 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/SpvParserCFGTest_ClassifyCFGEdges_IfBreak_FromIfThenElse.spvasm.expected.ir.dxc.hlsl b/test/tint/unittest/reader/spirv/SpvParserCFGTest_ClassifyCFGEdges_IfBreak_FromIfThenElse.spvasm.expected.ir.dxc.hlsl
deleted file mode 100644
index bdeab23..0000000
--- a/test/tint/unittest/reader/spirv/SpvParserCFGTest_ClassifyCFGEdges_IfBreak_FromIfThenElse.spvasm.expected.ir.dxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:198 internal compiler error: Switch() matched no cases. Type: tint::core::ir::If
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix 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/SpvParserCFGTest_ClassifyCFGEdges_IfBreak_FromIfThenElse.spvasm.expected.ir.fxc.hlsl b/test/tint/unittest/reader/spirv/SpvParserCFGTest_ClassifyCFGEdges_IfBreak_FromIfThenElse.spvasm.expected.ir.fxc.hlsl
deleted file mode 100644
index bdeab23..0000000
--- a/test/tint/unittest/reader/spirv/SpvParserCFGTest_ClassifyCFGEdges_IfBreak_FromIfThenElse.spvasm.expected.ir.fxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:198 internal compiler error: Switch() matched no cases. Type: tint::core::ir::If
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix 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/SpvParserCFGTest_ClassifyCFGEdges_IfBreak_FromThen_ForwardWithinThen.spvasm.expected.ir.dxc.hlsl b/test/tint/unittest/reader/spirv/SpvParserCFGTest_ClassifyCFGEdges_IfBreak_FromThen_ForwardWithinThen.spvasm.expected.ir.dxc.hlsl
deleted file mode 100644
index bdeab23..0000000
--- a/test/tint/unittest/reader/spirv/SpvParserCFGTest_ClassifyCFGEdges_IfBreak_FromThen_ForwardWithinThen.spvasm.expected.ir.dxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:198 internal compiler error: Switch() matched no cases. Type: tint::core::ir::If
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix 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/SpvParserCFGTest_ClassifyCFGEdges_IfBreak_FromThen_ForwardWithinThen.spvasm.expected.ir.fxc.hlsl b/test/tint/unittest/reader/spirv/SpvParserCFGTest_ClassifyCFGEdges_IfBreak_FromThen_ForwardWithinThen.spvasm.expected.ir.fxc.hlsl
deleted file mode 100644
index bdeab23..0000000
--- a/test/tint/unittest/reader/spirv/SpvParserCFGTest_ClassifyCFGEdges_IfBreak_FromThen_ForwardWithinThen.spvasm.expected.ir.fxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:198 internal compiler error: Switch() matched no cases. Type: tint::core::ir::If
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix 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/SpvParserCFGTest_ClassifyCFGEdges_LoopBreak_FromContinueConstructHeader.spvasm.expected.ir.dxc.hlsl b/test/tint/unittest/reader/spirv/SpvParserCFGTest_ClassifyCFGEdges_LoopBreak_FromContinueConstructHeader.spvasm.expected.ir.dxc.hlsl
deleted file mode 100644
index adbb0c1..0000000
--- a/test/tint/unittest/reader/spirv/SpvParserCFGTest_ClassifyCFGEdges_LoopBreak_FromContinueConstructHeader.spvasm.expected.ir.dxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:198 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Loop
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/unittest/reader/spirv/SpvParserCFGTest_ClassifyCFGEdges_LoopBreak_FromContinueConstructHeader.spvasm.expected.ir.fxc.hlsl b/test/tint/unittest/reader/spirv/SpvParserCFGTest_ClassifyCFGEdges_LoopBreak_FromContinueConstructHeader.spvasm.expected.ir.fxc.hlsl
deleted file mode 100644
index adbb0c1..0000000
--- a/test/tint/unittest/reader/spirv/SpvParserCFGTest_ClassifyCFGEdges_LoopBreak_FromContinueConstructHeader.spvasm.expected.ir.fxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:198 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Loop
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/unittest/reader/spirv/SpvParserCFGTest_ClassifyCFGEdges_LoopBreak_FromContinueConstructTail.spvasm.expected.ir.dxc.hlsl b/test/tint/unittest/reader/spirv/SpvParserCFGTest_ClassifyCFGEdges_LoopBreak_FromContinueConstructTail.spvasm.expected.ir.dxc.hlsl
deleted file mode 100644
index adbb0c1..0000000
--- a/test/tint/unittest/reader/spirv/SpvParserCFGTest_ClassifyCFGEdges_LoopBreak_FromContinueConstructTail.spvasm.expected.ir.dxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:198 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Loop
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/unittest/reader/spirv/SpvParserCFGTest_ClassifyCFGEdges_LoopBreak_FromContinueConstructTail.spvasm.expected.ir.fxc.hlsl b/test/tint/unittest/reader/spirv/SpvParserCFGTest_ClassifyCFGEdges_LoopBreak_FromContinueConstructTail.spvasm.expected.ir.fxc.hlsl
deleted file mode 100644
index adbb0c1..0000000
--- a/test/tint/unittest/reader/spirv/SpvParserCFGTest_ClassifyCFGEdges_LoopBreak_FromContinueConstructTail.spvasm.expected.ir.fxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:198 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Loop
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/unittest/reader/spirv/SpvParserCFGTest_ClassifyCFGEdges_LoopBreak_FromLoopBody.spvasm.expected.ir.dxc.hlsl b/test/tint/unittest/reader/spirv/SpvParserCFGTest_ClassifyCFGEdges_LoopBreak_FromLoopBody.spvasm.expected.ir.dxc.hlsl
deleted file mode 100644
index adbb0c1..0000000
--- a/test/tint/unittest/reader/spirv/SpvParserCFGTest_ClassifyCFGEdges_LoopBreak_FromLoopBody.spvasm.expected.ir.dxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:198 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Loop
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/unittest/reader/spirv/SpvParserCFGTest_ClassifyCFGEdges_LoopBreak_FromLoopBody.spvasm.expected.ir.fxc.hlsl b/test/tint/unittest/reader/spirv/SpvParserCFGTest_ClassifyCFGEdges_LoopBreak_FromLoopBody.spvasm.expected.ir.fxc.hlsl
deleted file mode 100644
index adbb0c1..0000000
--- a/test/tint/unittest/reader/spirv/SpvParserCFGTest_ClassifyCFGEdges_LoopBreak_FromLoopBody.spvasm.expected.ir.fxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:198 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Loop
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/unittest/reader/spirv/SpvParserCFGTest_ClassifyCFGEdges_LoopBreak_FromLoopBodyDirect.spvasm.expected.ir.dxc.hlsl b/test/tint/unittest/reader/spirv/SpvParserCFGTest_ClassifyCFGEdges_LoopBreak_FromLoopBodyDirect.spvasm.expected.ir.dxc.hlsl
deleted file mode 100644
index adbb0c1..0000000
--- a/test/tint/unittest/reader/spirv/SpvParserCFGTest_ClassifyCFGEdges_LoopBreak_FromLoopBodyDirect.spvasm.expected.ir.dxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:198 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Loop
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/unittest/reader/spirv/SpvParserCFGTest_ClassifyCFGEdges_LoopBreak_FromLoopBodyDirect.spvasm.expected.ir.fxc.hlsl b/test/tint/unittest/reader/spirv/SpvParserCFGTest_ClassifyCFGEdges_LoopBreak_FromLoopBodyDirect.spvasm.expected.ir.fxc.hlsl
deleted file mode 100644
index adbb0c1..0000000
--- a/test/tint/unittest/reader/spirv/SpvParserCFGTest_ClassifyCFGEdges_LoopBreak_FromLoopBodyDirect.spvasm.expected.ir.fxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:198 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Loop
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/unittest/reader/spirv/SpvParserCFGTest_ClassifyCFGEdges_LoopBreak_FromLoopBodyNestedSelection_Conditional.spvasm.expected.ir.dxc.hlsl b/test/tint/unittest/reader/spirv/SpvParserCFGTest_ClassifyCFGEdges_LoopBreak_FromLoopBodyNestedSelection_Conditional.spvasm.expected.ir.dxc.hlsl
deleted file mode 100644
index adbb0c1..0000000
--- a/test/tint/unittest/reader/spirv/SpvParserCFGTest_ClassifyCFGEdges_LoopBreak_FromLoopBodyNestedSelection_Conditional.spvasm.expected.ir.dxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:198 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Loop
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/unittest/reader/spirv/SpvParserCFGTest_ClassifyCFGEdges_LoopBreak_FromLoopBodyNestedSelection_Conditional.spvasm.expected.ir.fxc.hlsl b/test/tint/unittest/reader/spirv/SpvParserCFGTest_ClassifyCFGEdges_LoopBreak_FromLoopBodyNestedSelection_Conditional.spvasm.expected.ir.fxc.hlsl
deleted file mode 100644
index adbb0c1..0000000
--- a/test/tint/unittest/reader/spirv/SpvParserCFGTest_ClassifyCFGEdges_LoopBreak_FromLoopBodyNestedSelection_Conditional.spvasm.expected.ir.fxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:198 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Loop
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/unittest/reader/spirv/SpvParserCFGTest_ClassifyCFGEdges_LoopBreak_FromLoopBodyNestedSelection_Unconditional.spvasm.expected.ir.dxc.hlsl b/test/tint/unittest/reader/spirv/SpvParserCFGTest_ClassifyCFGEdges_LoopBreak_FromLoopBodyNestedSelection_Unconditional.spvasm.expected.ir.dxc.hlsl
deleted file mode 100644
index adbb0c1..0000000
--- a/test/tint/unittest/reader/spirv/SpvParserCFGTest_ClassifyCFGEdges_LoopBreak_FromLoopBodyNestedSelection_Unconditional.spvasm.expected.ir.dxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:198 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Loop
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/unittest/reader/spirv/SpvParserCFGTest_ClassifyCFGEdges_LoopBreak_FromLoopBodyNestedSelection_Unconditional.spvasm.expected.ir.fxc.hlsl b/test/tint/unittest/reader/spirv/SpvParserCFGTest_ClassifyCFGEdges_LoopBreak_FromLoopBodyNestedSelection_Unconditional.spvasm.expected.ir.fxc.hlsl
deleted file mode 100644
index adbb0c1..0000000
--- a/test/tint/unittest/reader/spirv/SpvParserCFGTest_ClassifyCFGEdges_LoopBreak_FromLoopBodyNestedSelection_Unconditional.spvasm.expected.ir.fxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:198 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Loop
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/unittest/reader/spirv/SpvParserCFGTest_ClassifyCFGEdges_LoopBreak_FromLoopHeader_MultiBlockLoop.spvasm.expected.ir.dxc.hlsl b/test/tint/unittest/reader/spirv/SpvParserCFGTest_ClassifyCFGEdges_LoopBreak_FromLoopHeader_MultiBlockLoop.spvasm.expected.ir.dxc.hlsl
deleted file mode 100644
index adbb0c1..0000000
--- a/test/tint/unittest/reader/spirv/SpvParserCFGTest_ClassifyCFGEdges_LoopBreak_FromLoopHeader_MultiBlockLoop.spvasm.expected.ir.dxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:198 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Loop
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/unittest/reader/spirv/SpvParserCFGTest_ClassifyCFGEdges_LoopBreak_FromLoopHeader_MultiBlockLoop.spvasm.expected.ir.fxc.hlsl b/test/tint/unittest/reader/spirv/SpvParserCFGTest_ClassifyCFGEdges_LoopBreak_FromLoopHeader_MultiBlockLoop.spvasm.expected.ir.fxc.hlsl
deleted file mode 100644
index adbb0c1..0000000
--- a/test/tint/unittest/reader/spirv/SpvParserCFGTest_ClassifyCFGEdges_LoopBreak_FromLoopHeader_MultiBlockLoop.spvasm.expected.ir.fxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:198 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Loop
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/unittest/reader/spirv/SpvParserCFGTest_ClassifyCFGEdges_LoopBreak_FromLoopHeader_SingleBlockLoop_FalseBranch.spvasm.expected.ir.dxc.hlsl b/test/tint/unittest/reader/spirv/SpvParserCFGTest_ClassifyCFGEdges_LoopBreak_FromLoopHeader_SingleBlockLoop_FalseBranch.spvasm.expected.ir.dxc.hlsl
deleted file mode 100644
index adbb0c1..0000000
--- a/test/tint/unittest/reader/spirv/SpvParserCFGTest_ClassifyCFGEdges_LoopBreak_FromLoopHeader_SingleBlockLoop_FalseBranch.spvasm.expected.ir.dxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:198 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Loop
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/unittest/reader/spirv/SpvParserCFGTest_ClassifyCFGEdges_LoopBreak_FromLoopHeader_SingleBlockLoop_FalseBranch.spvasm.expected.ir.fxc.hlsl b/test/tint/unittest/reader/spirv/SpvParserCFGTest_ClassifyCFGEdges_LoopBreak_FromLoopHeader_SingleBlockLoop_FalseBranch.spvasm.expected.ir.fxc.hlsl
deleted file mode 100644
index adbb0c1..0000000
--- a/test/tint/unittest/reader/spirv/SpvParserCFGTest_ClassifyCFGEdges_LoopBreak_FromLoopHeader_SingleBlockLoop_FalseBranch.spvasm.expected.ir.fxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:198 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Loop
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/unittest/reader/spirv/SpvParserCFGTest_ClassifyCFGEdges_LoopBreak_FromLoopHeader_SingleBlockLoop_TrueBranch.spvasm.expected.ir.dxc.hlsl b/test/tint/unittest/reader/spirv/SpvParserCFGTest_ClassifyCFGEdges_LoopBreak_FromLoopHeader_SingleBlockLoop_TrueBranch.spvasm.expected.ir.dxc.hlsl
index adbb0c1..31b7623 100644
--- a/test/tint/unittest/reader/spirv/SpvParserCFGTest_ClassifyCFGEdges_LoopBreak_FromLoopHeader_SingleBlockLoop_TrueBranch.spvasm.expected.ir.dxc.hlsl
+++ b/test/tint/unittest/reader/spirv/SpvParserCFGTest_ClassifyCFGEdges_LoopBreak_FromLoopHeader_SingleBlockLoop_TrueBranch.spvasm.expected.ir.dxc.hlsl
@@ -1,9 +1,27 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:198 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Loop
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+
+static uint var_1 = 0u;
+void main_1() {
+  {
+    while(true) {
+      if (false) {
+        break;
+      }
+      {
+      }
+      continue;
+    }
+  }
+}
+
+void main() {
+  main_1();
+}
+
+DXC validation failure:
+error: validation errors
+hlsl.hlsl:16: error: Loop must have break.
+Validation failed.
+
+
diff --git a/test/tint/unittest/reader/spirv/SpvParserCFGTest_ClassifyCFGEdges_LoopBreak_FromLoopHeader_SingleBlockLoop_TrueBranch.spvasm.expected.ir.fxc.hlsl b/test/tint/unittest/reader/spirv/SpvParserCFGTest_ClassifyCFGEdges_LoopBreak_FromLoopHeader_SingleBlockLoop_TrueBranch.spvasm.expected.ir.fxc.hlsl
deleted file mode 100644
index adbb0c1..0000000
--- a/test/tint/unittest/reader/spirv/SpvParserCFGTest_ClassifyCFGEdges_LoopBreak_FromLoopHeader_SingleBlockLoop_TrueBranch.spvasm.expected.ir.fxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:198 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Loop
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/unittest/reader/spirv/SpvParserCFGTest_ClassifyCFGEdges_LoopContinue_ConditionalFromNestedIf.spvasm.expected.ir.dxc.hlsl b/test/tint/unittest/reader/spirv/SpvParserCFGTest_ClassifyCFGEdges_LoopContinue_ConditionalFromNestedIf.spvasm.expected.ir.dxc.hlsl
deleted file mode 100644
index adbb0c1..0000000
--- a/test/tint/unittest/reader/spirv/SpvParserCFGTest_ClassifyCFGEdges_LoopContinue_ConditionalFromNestedIf.spvasm.expected.ir.dxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:198 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Loop
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/unittest/reader/spirv/SpvParserCFGTest_ClassifyCFGEdges_LoopContinue_ConditionalFromNestedIf.spvasm.expected.ir.fxc.hlsl b/test/tint/unittest/reader/spirv/SpvParserCFGTest_ClassifyCFGEdges_LoopContinue_ConditionalFromNestedIf.spvasm.expected.ir.fxc.hlsl
deleted file mode 100644
index adbb0c1..0000000
--- a/test/tint/unittest/reader/spirv/SpvParserCFGTest_ClassifyCFGEdges_LoopContinue_ConditionalFromNestedIf.spvasm.expected.ir.fxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:198 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Loop
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/unittest/reader/spirv/SpvParserCFGTest_ClassifyCFGEdges_LoopContinue_FromNestedIf.spvasm.expected.ir.dxc.hlsl b/test/tint/unittest/reader/spirv/SpvParserCFGTest_ClassifyCFGEdges_LoopContinue_FromNestedIf.spvasm.expected.ir.dxc.hlsl
deleted file mode 100644
index adbb0c1..0000000
--- a/test/tint/unittest/reader/spirv/SpvParserCFGTest_ClassifyCFGEdges_LoopContinue_FromNestedIf.spvasm.expected.ir.dxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:198 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Loop
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/unittest/reader/spirv/SpvParserCFGTest_ClassifyCFGEdges_LoopContinue_FromNestedIf.spvasm.expected.ir.fxc.hlsl b/test/tint/unittest/reader/spirv/SpvParserCFGTest_ClassifyCFGEdges_LoopContinue_FromNestedIf.spvasm.expected.ir.fxc.hlsl
deleted file mode 100644
index adbb0c1..0000000
--- a/test/tint/unittest/reader/spirv/SpvParserCFGTest_ClassifyCFGEdges_LoopContinue_FromNestedIf.spvasm.expected.ir.fxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:198 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Loop
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/unittest/reader/spirv/SpvParserCFGTest_ClassifyCFGEdges_LoopContinue_FromNestedSwitchCaseBody_Unconditional.spvasm.expected.ir.dxc.hlsl b/test/tint/unittest/reader/spirv/SpvParserCFGTest_ClassifyCFGEdges_LoopContinue_FromNestedSwitchCaseBody_Unconditional.spvasm.expected.ir.dxc.hlsl
deleted file mode 100644
index adbb0c1..0000000
--- a/test/tint/unittest/reader/spirv/SpvParserCFGTest_ClassifyCFGEdges_LoopContinue_FromNestedSwitchCaseBody_Unconditional.spvasm.expected.ir.dxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:198 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Loop
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/unittest/reader/spirv/SpvParserCFGTest_ClassifyCFGEdges_LoopContinue_FromNestedSwitchCaseBody_Unconditional.spvasm.expected.ir.fxc.hlsl b/test/tint/unittest/reader/spirv/SpvParserCFGTest_ClassifyCFGEdges_LoopContinue_FromNestedSwitchCaseBody_Unconditional.spvasm.expected.ir.fxc.hlsl
deleted file mode 100644
index adbb0c1..0000000
--- a/test/tint/unittest/reader/spirv/SpvParserCFGTest_ClassifyCFGEdges_LoopContinue_FromNestedSwitchCaseBody_Unconditional.spvasm.expected.ir.fxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:198 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Loop
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/unittest/reader/spirv/SpvParserCFGTest_ClassifyCFGEdges_LoopContinue_FromNestedSwitchDefaultBody_Conditional.spvasm.expected.ir.dxc.hlsl b/test/tint/unittest/reader/spirv/SpvParserCFGTest_ClassifyCFGEdges_LoopContinue_FromNestedSwitchDefaultBody_Conditional.spvasm.expected.ir.dxc.hlsl
deleted file mode 100644
index adbb0c1..0000000
--- a/test/tint/unittest/reader/spirv/SpvParserCFGTest_ClassifyCFGEdges_LoopContinue_FromNestedSwitchDefaultBody_Conditional.spvasm.expected.ir.dxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:198 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Loop
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/unittest/reader/spirv/SpvParserCFGTest_ClassifyCFGEdges_LoopContinue_FromNestedSwitchDefaultBody_Conditional.spvasm.expected.ir.fxc.hlsl b/test/tint/unittest/reader/spirv/SpvParserCFGTest_ClassifyCFGEdges_LoopContinue_FromNestedSwitchDefaultBody_Conditional.spvasm.expected.ir.fxc.hlsl
deleted file mode 100644
index adbb0c1..0000000
--- a/test/tint/unittest/reader/spirv/SpvParserCFGTest_ClassifyCFGEdges_LoopContinue_FromNestedSwitchDefaultBody_Conditional.spvasm.expected.ir.fxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:198 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Loop
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/unittest/reader/spirv/SpvParserCFGTest_ClassifyCFGEdges_LoopContinue_FromNestedSwitchDefaultBody_Unconditional.spvasm.expected.ir.dxc.hlsl b/test/tint/unittest/reader/spirv/SpvParserCFGTest_ClassifyCFGEdges_LoopContinue_FromNestedSwitchDefaultBody_Unconditional.spvasm.expected.ir.dxc.hlsl
deleted file mode 100644
index adbb0c1..0000000
--- a/test/tint/unittest/reader/spirv/SpvParserCFGTest_ClassifyCFGEdges_LoopContinue_FromNestedSwitchDefaultBody_Unconditional.spvasm.expected.ir.dxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:198 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Loop
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/unittest/reader/spirv/SpvParserCFGTest_ClassifyCFGEdges_LoopContinue_FromNestedSwitchDefaultBody_Unconditional.spvasm.expected.ir.fxc.hlsl b/test/tint/unittest/reader/spirv/SpvParserCFGTest_ClassifyCFGEdges_LoopContinue_FromNestedSwitchDefaultBody_Unconditional.spvasm.expected.ir.fxc.hlsl
deleted file mode 100644
index adbb0c1..0000000
--- a/test/tint/unittest/reader/spirv/SpvParserCFGTest_ClassifyCFGEdges_LoopContinue_FromNestedSwitchDefaultBody_Unconditional.spvasm.expected.ir.fxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:198 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Loop
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/unittest/reader/spirv/SpvParserCFGTest_ClassifyCFGEdges_LoopContinue_LoopBodyToContinue.spvasm.expected.ir.dxc.hlsl b/test/tint/unittest/reader/spirv/SpvParserCFGTest_ClassifyCFGEdges_LoopContinue_LoopBodyToContinue.spvasm.expected.ir.dxc.hlsl
deleted file mode 100644
index adbb0c1..0000000
--- a/test/tint/unittest/reader/spirv/SpvParserCFGTest_ClassifyCFGEdges_LoopContinue_LoopBodyToContinue.spvasm.expected.ir.dxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:198 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Loop
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/unittest/reader/spirv/SpvParserCFGTest_ClassifyCFGEdges_LoopContinue_LoopBodyToContinue.spvasm.expected.ir.fxc.hlsl b/test/tint/unittest/reader/spirv/SpvParserCFGTest_ClassifyCFGEdges_LoopContinue_LoopBodyToContinue.spvasm.expected.ir.fxc.hlsl
deleted file mode 100644
index adbb0c1..0000000
--- a/test/tint/unittest/reader/spirv/SpvParserCFGTest_ClassifyCFGEdges_LoopContinue_LoopBodyToContinue.spvasm.expected.ir.fxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:198 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Loop
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/unittest/reader/spirv/SpvParserCFGTest_ClassifyCFGEdges_Pathological_Forward_Premerge.spvasm.expected.ir.dxc.hlsl b/test/tint/unittest/reader/spirv/SpvParserCFGTest_ClassifyCFGEdges_Pathological_Forward_Premerge.spvasm.expected.ir.dxc.hlsl
deleted file mode 100644
index bdeab23..0000000
--- a/test/tint/unittest/reader/spirv/SpvParserCFGTest_ClassifyCFGEdges_Pathological_Forward_Premerge.spvasm.expected.ir.dxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:198 internal compiler error: Switch() matched no cases. Type: tint::core::ir::If
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix 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/SpvParserCFGTest_ClassifyCFGEdges_Pathological_Forward_Premerge.spvasm.expected.ir.fxc.hlsl b/test/tint/unittest/reader/spirv/SpvParserCFGTest_ClassifyCFGEdges_Pathological_Forward_Premerge.spvasm.expected.ir.fxc.hlsl
deleted file mode 100644
index bdeab23..0000000
--- a/test/tint/unittest/reader/spirv/SpvParserCFGTest_ClassifyCFGEdges_Pathological_Forward_Premerge.spvasm.expected.ir.fxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:198 internal compiler error: Switch() matched no cases. Type: tint::core::ir::If
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix 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/SpvParserCFGTest_ClassifyCFGEdges_Pathological_Forward_Regardless.spvasm.expected.ir.dxc.hlsl b/test/tint/unittest/reader/spirv/SpvParserCFGTest_ClassifyCFGEdges_Pathological_Forward_Regardless.spvasm.expected.ir.dxc.hlsl
deleted file mode 100644
index bdeab23..0000000
--- a/test/tint/unittest/reader/spirv/SpvParserCFGTest_ClassifyCFGEdges_Pathological_Forward_Regardless.spvasm.expected.ir.dxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:198 internal compiler error: Switch() matched no cases. Type: tint::core::ir::If
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix 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/SpvParserCFGTest_ClassifyCFGEdges_Pathological_Forward_Regardless.spvasm.expected.ir.fxc.hlsl b/test/tint/unittest/reader/spirv/SpvParserCFGTest_ClassifyCFGEdges_Pathological_Forward_Regardless.spvasm.expected.ir.fxc.hlsl
deleted file mode 100644
index bdeab23..0000000
--- a/test/tint/unittest/reader/spirv/SpvParserCFGTest_ClassifyCFGEdges_Pathological_Forward_Regardless.spvasm.expected.ir.fxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:198 internal compiler error: Switch() matched no cases. Type: tint::core::ir::If
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix 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/SpvParserCFGTest_ClassifyCFGEdges_SwitchBreak_FromNestedIf_Conditional.spvasm.expected.ir.dxc.hlsl b/test/tint/unittest/reader/spirv/SpvParserCFGTest_ClassifyCFGEdges_SwitchBreak_FromNestedIf_Conditional.spvasm.expected.ir.dxc.hlsl
deleted file mode 100644
index 27c824a..0000000
--- a/test/tint/unittest/reader/spirv/SpvParserCFGTest_ClassifyCFGEdges_SwitchBreak_FromNestedIf_Conditional.spvasm.expected.ir.dxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:198 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Switch
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/unittest/reader/spirv/SpvParserCFGTest_ClassifyCFGEdges_SwitchBreak_FromNestedIf_Conditional.spvasm.expected.ir.fxc.hlsl b/test/tint/unittest/reader/spirv/SpvParserCFGTest_ClassifyCFGEdges_SwitchBreak_FromNestedIf_Conditional.spvasm.expected.ir.fxc.hlsl
deleted file mode 100644
index 27c824a..0000000
--- a/test/tint/unittest/reader/spirv/SpvParserCFGTest_ClassifyCFGEdges_SwitchBreak_FromNestedIf_Conditional.spvasm.expected.ir.fxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:198 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Switch
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/unittest/reader/spirv/SpvParserCFGTest_ClassifyCFGEdges_SwitchBreak_FromNestedIf_Unconditional.spvasm.expected.ir.dxc.hlsl b/test/tint/unittest/reader/spirv/SpvParserCFGTest_ClassifyCFGEdges_SwitchBreak_FromNestedIf_Unconditional.spvasm.expected.ir.dxc.hlsl
deleted file mode 100644
index 27c824a..0000000
--- a/test/tint/unittest/reader/spirv/SpvParserCFGTest_ClassifyCFGEdges_SwitchBreak_FromNestedIf_Unconditional.spvasm.expected.ir.dxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:198 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Switch
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/unittest/reader/spirv/SpvParserCFGTest_ClassifyCFGEdges_SwitchBreak_FromNestedIf_Unconditional.spvasm.expected.ir.fxc.hlsl b/test/tint/unittest/reader/spirv/SpvParserCFGTest_ClassifyCFGEdges_SwitchBreak_FromNestedIf_Unconditional.spvasm.expected.ir.fxc.hlsl
deleted file mode 100644
index 27c824a..0000000
--- a/test/tint/unittest/reader/spirv/SpvParserCFGTest_ClassifyCFGEdges_SwitchBreak_FromNestedIf_Unconditional.spvasm.expected.ir.fxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:198 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Switch
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/unittest/reader/spirv/SpvParserCFGTest_ClassifyCFGEdges_SwitchBreak_FromSwitchCaseBody.spvasm.expected.ir.dxc.hlsl b/test/tint/unittest/reader/spirv/SpvParserCFGTest_ClassifyCFGEdges_SwitchBreak_FromSwitchCaseBody.spvasm.expected.ir.dxc.hlsl
deleted file mode 100644
index 27c824a..0000000
--- a/test/tint/unittest/reader/spirv/SpvParserCFGTest_ClassifyCFGEdges_SwitchBreak_FromSwitchCaseBody.spvasm.expected.ir.dxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:198 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Switch
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/unittest/reader/spirv/SpvParserCFGTest_ClassifyCFGEdges_SwitchBreak_FromSwitchCaseBody.spvasm.expected.ir.fxc.hlsl b/test/tint/unittest/reader/spirv/SpvParserCFGTest_ClassifyCFGEdges_SwitchBreak_FromSwitchCaseBody.spvasm.expected.ir.fxc.hlsl
deleted file mode 100644
index 27c824a..0000000
--- a/test/tint/unittest/reader/spirv/SpvParserCFGTest_ClassifyCFGEdges_SwitchBreak_FromSwitchCaseBody.spvasm.expected.ir.fxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:198 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Switch
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/unittest/reader/spirv/SpvParserCFGTest_ClassifyCFGEdges_SwitchBreak_FromSwitchCaseDirect.spvasm.expected.ir.dxc.hlsl b/test/tint/unittest/reader/spirv/SpvParserCFGTest_ClassifyCFGEdges_SwitchBreak_FromSwitchCaseDirect.spvasm.expected.ir.dxc.hlsl
deleted file mode 100644
index 27c824a..0000000
--- a/test/tint/unittest/reader/spirv/SpvParserCFGTest_ClassifyCFGEdges_SwitchBreak_FromSwitchCaseDirect.spvasm.expected.ir.dxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:198 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Switch
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/unittest/reader/spirv/SpvParserCFGTest_ClassifyCFGEdges_SwitchBreak_FromSwitchCaseDirect.spvasm.expected.ir.fxc.hlsl b/test/tint/unittest/reader/spirv/SpvParserCFGTest_ClassifyCFGEdges_SwitchBreak_FromSwitchCaseDirect.spvasm.expected.ir.fxc.hlsl
deleted file mode 100644
index 27c824a..0000000
--- a/test/tint/unittest/reader/spirv/SpvParserCFGTest_ClassifyCFGEdges_SwitchBreak_FromSwitchCaseDirect.spvasm.expected.ir.fxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:198 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Switch
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/unittest/reader/spirv/SpvParserCFGTest_ClassifyCFGEdges_SwitchBreak_FromSwitchDefaultBody.spvasm.expected.ir.dxc.hlsl b/test/tint/unittest/reader/spirv/SpvParserCFGTest_ClassifyCFGEdges_SwitchBreak_FromSwitchDefaultBody.spvasm.expected.ir.dxc.hlsl
deleted file mode 100644
index 27c824a..0000000
--- a/test/tint/unittest/reader/spirv/SpvParserCFGTest_ClassifyCFGEdges_SwitchBreak_FromSwitchDefaultBody.spvasm.expected.ir.dxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:198 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Switch
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/unittest/reader/spirv/SpvParserCFGTest_ClassifyCFGEdges_SwitchBreak_FromSwitchDefaultBody.spvasm.expected.ir.fxc.hlsl b/test/tint/unittest/reader/spirv/SpvParserCFGTest_ClassifyCFGEdges_SwitchBreak_FromSwitchDefaultBody.spvasm.expected.ir.fxc.hlsl
deleted file mode 100644
index 27c824a..0000000
--- a/test/tint/unittest/reader/spirv/SpvParserCFGTest_ClassifyCFGEdges_SwitchBreak_FromSwitchDefaultBody.spvasm.expected.ir.fxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:198 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Switch
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/unittest/reader/spirv/SpvParserCFGTest_ClassifyCFGEdges_SwitchBreak_FromSwitchDefaultIsMerge.spvasm.expected.ir.dxc.hlsl b/test/tint/unittest/reader/spirv/SpvParserCFGTest_ClassifyCFGEdges_SwitchBreak_FromSwitchDefaultIsMerge.spvasm.expected.ir.dxc.hlsl
deleted file mode 100644
index 27c824a..0000000
--- a/test/tint/unittest/reader/spirv/SpvParserCFGTest_ClassifyCFGEdges_SwitchBreak_FromSwitchDefaultIsMerge.spvasm.expected.ir.dxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:198 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Switch
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/unittest/reader/spirv/SpvParserCFGTest_ClassifyCFGEdges_SwitchBreak_FromSwitchDefaultIsMerge.spvasm.expected.ir.fxc.hlsl b/test/tint/unittest/reader/spirv/SpvParserCFGTest_ClassifyCFGEdges_SwitchBreak_FromSwitchDefaultIsMerge.spvasm.expected.ir.fxc.hlsl
deleted file mode 100644
index 27c824a..0000000
--- a/test/tint/unittest/reader/spirv/SpvParserCFGTest_ClassifyCFGEdges_SwitchBreak_FromSwitchDefaultIsMerge.spvasm.expected.ir.fxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:198 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Switch
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/unittest/reader/spirv/SpvParserCFGTest_ComputeBlockOrder_DupConditionalBranch.spvasm.expected.ir.dxc.hlsl b/test/tint/unittest/reader/spirv/SpvParserCFGTest_ComputeBlockOrder_DupConditionalBranch.spvasm.expected.ir.dxc.hlsl
deleted file mode 100644
index bdeab23..0000000
--- a/test/tint/unittest/reader/spirv/SpvParserCFGTest_ComputeBlockOrder_DupConditionalBranch.spvasm.expected.ir.dxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:198 internal compiler error: Switch() matched no cases. Type: tint::core::ir::If
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix 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/SpvParserCFGTest_ComputeBlockOrder_DupConditionalBranch.spvasm.expected.ir.fxc.hlsl b/test/tint/unittest/reader/spirv/SpvParserCFGTest_ComputeBlockOrder_DupConditionalBranch.spvasm.expected.ir.fxc.hlsl
deleted file mode 100644
index bdeab23..0000000
--- a/test/tint/unittest/reader/spirv/SpvParserCFGTest_ComputeBlockOrder_DupConditionalBranch.spvasm.expected.ir.fxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:198 internal compiler error: Switch() matched no cases. Type: tint::core::ir::If
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix 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/SpvParserCFGTest_ComputeBlockOrder_FalseOnlyBranch.spvasm.expected.ir.dxc.hlsl b/test/tint/unittest/reader/spirv/SpvParserCFGTest_ComputeBlockOrder_FalseOnlyBranch.spvasm.expected.ir.dxc.hlsl
deleted file mode 100644
index bdeab23..0000000
--- a/test/tint/unittest/reader/spirv/SpvParserCFGTest_ComputeBlockOrder_FalseOnlyBranch.spvasm.expected.ir.dxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:198 internal compiler error: Switch() matched no cases. Type: tint::core::ir::If
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix 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/SpvParserCFGTest_ComputeBlockOrder_FalseOnlyBranch.spvasm.expected.ir.fxc.hlsl b/test/tint/unittest/reader/spirv/SpvParserCFGTest_ComputeBlockOrder_FalseOnlyBranch.spvasm.expected.ir.fxc.hlsl
deleted file mode 100644
index bdeab23..0000000
--- a/test/tint/unittest/reader/spirv/SpvParserCFGTest_ComputeBlockOrder_FalseOnlyBranch.spvasm.expected.ir.fxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:198 internal compiler error: Switch() matched no cases. Type: tint::core::ir::If
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix 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/SpvParserCFGTest_ComputeBlockOrder_IgnoreStaticalyUnreachable.spvasm.expected.ir.fxc.hlsl b/test/tint/unittest/reader/spirv/SpvParserCFGTest_ComputeBlockOrder_IgnoreStaticalyUnreachable.spvasm.expected.ir.fxc.hlsl
deleted file mode 100644
index a096ece..0000000
--- a/test/tint/unittest/reader/spirv/SpvParserCFGTest_ComputeBlockOrder_IgnoreStaticalyUnreachable.spvasm.expected.ir.fxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-void main_1() {
-}
-
-void main() {
-  main_1();
-}
-
diff --git a/test/tint/unittest/reader/spirv/SpvParserCFGTest_ComputeBlockOrder_KillIsDeadEnd.spvasm.expected.ir.dxc.hlsl b/test/tint/unittest/reader/spirv/SpvParserCFGTest_ComputeBlockOrder_KillIsDeadEnd.spvasm.expected.ir.dxc.hlsl
deleted file mode 100644
index 0da5df3..0000000
--- a/test/tint/unittest/reader/spirv/SpvParserCFGTest_ComputeBlockOrder_KillIsDeadEnd.spvasm.expected.ir.dxc.hlsl
+++ /dev/null
@@ -1,3 +0,0 @@
-SKIP: FAILED
-
-signal: segmentation fault
\ No newline at end of file
diff --git a/test/tint/unittest/reader/spirv/SpvParserCFGTest_ComputeBlockOrder_KillIsDeadEnd.spvasm.expected.ir.fxc.hlsl b/test/tint/unittest/reader/spirv/SpvParserCFGTest_ComputeBlockOrder_KillIsDeadEnd.spvasm.expected.ir.fxc.hlsl
deleted file mode 100644
index 0da5df3..0000000
--- a/test/tint/unittest/reader/spirv/SpvParserCFGTest_ComputeBlockOrder_KillIsDeadEnd.spvasm.expected.ir.fxc.hlsl
+++ /dev/null
@@ -1,3 +0,0 @@
-SKIP: FAILED
-
-signal: segmentation fault
\ No newline at end of file
diff --git a/test/tint/unittest/reader/spirv/SpvParserCFGTest_ComputeBlockOrder_Loop_BodyHasBreak.spvasm.expected.ir.dxc.hlsl b/test/tint/unittest/reader/spirv/SpvParserCFGTest_ComputeBlockOrder_Loop_BodyHasBreak.spvasm.expected.ir.dxc.hlsl
deleted file mode 100644
index adbb0c1..0000000
--- a/test/tint/unittest/reader/spirv/SpvParserCFGTest_ComputeBlockOrder_Loop_BodyHasBreak.spvasm.expected.ir.dxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:198 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Loop
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/unittest/reader/spirv/SpvParserCFGTest_ComputeBlockOrder_Loop_BodyHasBreak.spvasm.expected.ir.fxc.hlsl b/test/tint/unittest/reader/spirv/SpvParserCFGTest_ComputeBlockOrder_Loop_BodyHasBreak.spvasm.expected.ir.fxc.hlsl
deleted file mode 100644
index adbb0c1..0000000
--- a/test/tint/unittest/reader/spirv/SpvParserCFGTest_ComputeBlockOrder_Loop_BodyHasBreak.spvasm.expected.ir.fxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:198 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Loop
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/unittest/reader/spirv/SpvParserCFGTest_ComputeBlockOrder_Loop_BodyHasBreakIf.spvasm.expected.ir.dxc.hlsl b/test/tint/unittest/reader/spirv/SpvParserCFGTest_ComputeBlockOrder_Loop_BodyHasBreakIf.spvasm.expected.ir.dxc.hlsl
deleted file mode 100644
index adbb0c1..0000000
--- a/test/tint/unittest/reader/spirv/SpvParserCFGTest_ComputeBlockOrder_Loop_BodyHasBreakIf.spvasm.expected.ir.dxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:198 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Loop
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/unittest/reader/spirv/SpvParserCFGTest_ComputeBlockOrder_Loop_BodyHasBreakIf.spvasm.expected.ir.fxc.hlsl b/test/tint/unittest/reader/spirv/SpvParserCFGTest_ComputeBlockOrder_Loop_BodyHasBreakIf.spvasm.expected.ir.fxc.hlsl
deleted file mode 100644
index adbb0c1..0000000
--- a/test/tint/unittest/reader/spirv/SpvParserCFGTest_ComputeBlockOrder_Loop_BodyHasBreakIf.spvasm.expected.ir.fxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:198 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Loop
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/unittest/reader/spirv/SpvParserCFGTest_ComputeBlockOrder_Loop_BodyHasBreakUnless.spvasm.expected.ir.dxc.hlsl b/test/tint/unittest/reader/spirv/SpvParserCFGTest_ComputeBlockOrder_Loop_BodyHasBreakUnless.spvasm.expected.ir.dxc.hlsl
deleted file mode 100644
index adbb0c1..0000000
--- a/test/tint/unittest/reader/spirv/SpvParserCFGTest_ComputeBlockOrder_Loop_BodyHasBreakUnless.spvasm.expected.ir.dxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:198 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Loop
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/unittest/reader/spirv/SpvParserCFGTest_ComputeBlockOrder_Loop_BodyHasBreakUnless.spvasm.expected.ir.fxc.hlsl b/test/tint/unittest/reader/spirv/SpvParserCFGTest_ComputeBlockOrder_Loop_BodyHasBreakUnless.spvasm.expected.ir.fxc.hlsl
deleted file mode 100644
index adbb0c1..0000000
--- a/test/tint/unittest/reader/spirv/SpvParserCFGTest_ComputeBlockOrder_Loop_BodyHasBreakUnless.spvasm.expected.ir.fxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:198 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Loop
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/unittest/reader/spirv/SpvParserCFGTest_ComputeBlockOrder_Loop_BodyHasContinueIf.spvasm.expected.ir.dxc.hlsl b/test/tint/unittest/reader/spirv/SpvParserCFGTest_ComputeBlockOrder_Loop_BodyHasContinueIf.spvasm.expected.ir.dxc.hlsl
deleted file mode 100644
index adbb0c1..0000000
--- a/test/tint/unittest/reader/spirv/SpvParserCFGTest_ComputeBlockOrder_Loop_BodyHasContinueIf.spvasm.expected.ir.dxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:198 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Loop
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/unittest/reader/spirv/SpvParserCFGTest_ComputeBlockOrder_Loop_BodyHasContinueIf.spvasm.expected.ir.fxc.hlsl b/test/tint/unittest/reader/spirv/SpvParserCFGTest_ComputeBlockOrder_Loop_BodyHasContinueIf.spvasm.expected.ir.fxc.hlsl
deleted file mode 100644
index adbb0c1..0000000
--- a/test/tint/unittest/reader/spirv/SpvParserCFGTest_ComputeBlockOrder_Loop_BodyHasContinueIf.spvasm.expected.ir.fxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:198 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Loop
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/unittest/reader/spirv/SpvParserCFGTest_ComputeBlockOrder_Loop_BodyHasContinueUnless.spvasm.expected.ir.dxc.hlsl b/test/tint/unittest/reader/spirv/SpvParserCFGTest_ComputeBlockOrder_Loop_BodyHasContinueUnless.spvasm.expected.ir.dxc.hlsl
deleted file mode 100644
index adbb0c1..0000000
--- a/test/tint/unittest/reader/spirv/SpvParserCFGTest_ComputeBlockOrder_Loop_BodyHasContinueUnless.spvasm.expected.ir.dxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:198 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Loop
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/unittest/reader/spirv/SpvParserCFGTest_ComputeBlockOrder_Loop_BodyHasContinueUnless.spvasm.expected.ir.fxc.hlsl b/test/tint/unittest/reader/spirv/SpvParserCFGTest_ComputeBlockOrder_Loop_BodyHasContinueUnless.spvasm.expected.ir.fxc.hlsl
deleted file mode 100644
index adbb0c1..0000000
--- a/test/tint/unittest/reader/spirv/SpvParserCFGTest_ComputeBlockOrder_Loop_BodyHasContinueUnless.spvasm.expected.ir.fxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:198 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Loop
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/unittest/reader/spirv/SpvParserCFGTest_ComputeBlockOrder_Loop_Body_If.spvasm.expected.ir.dxc.hlsl b/test/tint/unittest/reader/spirv/SpvParserCFGTest_ComputeBlockOrder_Loop_Body_If.spvasm.expected.ir.dxc.hlsl
deleted file mode 100644
index adbb0c1..0000000
--- a/test/tint/unittest/reader/spirv/SpvParserCFGTest_ComputeBlockOrder_Loop_Body_If.spvasm.expected.ir.dxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:198 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Loop
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/unittest/reader/spirv/SpvParserCFGTest_ComputeBlockOrder_Loop_Body_If.spvasm.expected.ir.fxc.hlsl b/test/tint/unittest/reader/spirv/SpvParserCFGTest_ComputeBlockOrder_Loop_Body_If.spvasm.expected.ir.fxc.hlsl
deleted file mode 100644
index adbb0c1..0000000
--- a/test/tint/unittest/reader/spirv/SpvParserCFGTest_ComputeBlockOrder_Loop_Body_If.spvasm.expected.ir.fxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:198 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Loop
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/unittest/reader/spirv/SpvParserCFGTest_ComputeBlockOrder_Loop_Body_If_Break.spvasm.expected.ir.dxc.hlsl b/test/tint/unittest/reader/spirv/SpvParserCFGTest_ComputeBlockOrder_Loop_Body_If_Break.spvasm.expected.ir.dxc.hlsl
deleted file mode 100644
index adbb0c1..0000000
--- a/test/tint/unittest/reader/spirv/SpvParserCFGTest_ComputeBlockOrder_Loop_Body_If_Break.spvasm.expected.ir.dxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:198 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Loop
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/unittest/reader/spirv/SpvParserCFGTest_ComputeBlockOrder_Loop_Body_If_Break.spvasm.expected.ir.fxc.hlsl b/test/tint/unittest/reader/spirv/SpvParserCFGTest_ComputeBlockOrder_Loop_Body_If_Break.spvasm.expected.ir.fxc.hlsl
deleted file mode 100644
index adbb0c1..0000000
--- a/test/tint/unittest/reader/spirv/SpvParserCFGTest_ComputeBlockOrder_Loop_Body_If_Break.spvasm.expected.ir.fxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:198 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Loop
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/unittest/reader/spirv/SpvParserCFGTest_ComputeBlockOrder_Loop_Body_If_Continue.spvasm.expected.ir.dxc.hlsl b/test/tint/unittest/reader/spirv/SpvParserCFGTest_ComputeBlockOrder_Loop_Body_If_Continue.spvasm.expected.ir.dxc.hlsl
deleted file mode 100644
index adbb0c1..0000000
--- a/test/tint/unittest/reader/spirv/SpvParserCFGTest_ComputeBlockOrder_Loop_Body_If_Continue.spvasm.expected.ir.dxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:198 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Loop
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/unittest/reader/spirv/SpvParserCFGTest_ComputeBlockOrder_Loop_Body_If_Continue.spvasm.expected.ir.fxc.hlsl b/test/tint/unittest/reader/spirv/SpvParserCFGTest_ComputeBlockOrder_Loop_Body_If_Continue.spvasm.expected.ir.fxc.hlsl
deleted file mode 100644
index adbb0c1..0000000
--- a/test/tint/unittest/reader/spirv/SpvParserCFGTest_ComputeBlockOrder_Loop_Body_If_Continue.spvasm.expected.ir.fxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:198 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Loop
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/unittest/reader/spirv/SpvParserCFGTest_ComputeBlockOrder_Loop_Body_Switch.spvasm.expected.ir.dxc.hlsl b/test/tint/unittest/reader/spirv/SpvParserCFGTest_ComputeBlockOrder_Loop_Body_Switch.spvasm.expected.ir.dxc.hlsl
deleted file mode 100644
index adbb0c1..0000000
--- a/test/tint/unittest/reader/spirv/SpvParserCFGTest_ComputeBlockOrder_Loop_Body_Switch.spvasm.expected.ir.dxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:198 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Loop
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/unittest/reader/spirv/SpvParserCFGTest_ComputeBlockOrder_Loop_Body_Switch.spvasm.expected.ir.fxc.hlsl b/test/tint/unittest/reader/spirv/SpvParserCFGTest_ComputeBlockOrder_Loop_Body_Switch.spvasm.expected.ir.fxc.hlsl
deleted file mode 100644
index adbb0c1..0000000
--- a/test/tint/unittest/reader/spirv/SpvParserCFGTest_ComputeBlockOrder_Loop_Body_Switch.spvasm.expected.ir.fxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:198 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Loop
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/unittest/reader/spirv/SpvParserCFGTest_ComputeBlockOrder_Loop_Body_Switch_CaseContinues.spvasm.expected.ir.dxc.hlsl b/test/tint/unittest/reader/spirv/SpvParserCFGTest_ComputeBlockOrder_Loop_Body_Switch_CaseContinues.spvasm.expected.ir.dxc.hlsl
deleted file mode 100644
index adbb0c1..0000000
--- a/test/tint/unittest/reader/spirv/SpvParserCFGTest_ComputeBlockOrder_Loop_Body_Switch_CaseContinues.spvasm.expected.ir.dxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:198 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Loop
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/unittest/reader/spirv/SpvParserCFGTest_ComputeBlockOrder_Loop_Body_Switch_CaseContinues.spvasm.expected.ir.fxc.hlsl b/test/tint/unittest/reader/spirv/SpvParserCFGTest_ComputeBlockOrder_Loop_Body_Switch_CaseContinues.spvasm.expected.ir.fxc.hlsl
deleted file mode 100644
index adbb0c1..0000000
--- a/test/tint/unittest/reader/spirv/SpvParserCFGTest_ComputeBlockOrder_Loop_Body_Switch_CaseContinues.spvasm.expected.ir.fxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:198 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Loop
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/unittest/reader/spirv/SpvParserCFGTest_ComputeBlockOrder_Loop_Continue_ContainsIf.spvasm.expected.ir.dxc.hlsl b/test/tint/unittest/reader/spirv/SpvParserCFGTest_ComputeBlockOrder_Loop_Continue_ContainsIf.spvasm.expected.ir.dxc.hlsl
deleted file mode 100644
index adbb0c1..0000000
--- a/test/tint/unittest/reader/spirv/SpvParserCFGTest_ComputeBlockOrder_Loop_Continue_ContainsIf.spvasm.expected.ir.dxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:198 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Loop
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/unittest/reader/spirv/SpvParserCFGTest_ComputeBlockOrder_Loop_Continue_ContainsIf.spvasm.expected.ir.fxc.hlsl b/test/tint/unittest/reader/spirv/SpvParserCFGTest_ComputeBlockOrder_Loop_Continue_ContainsIf.spvasm.expected.ir.fxc.hlsl
deleted file mode 100644
index adbb0c1..0000000
--- a/test/tint/unittest/reader/spirv/SpvParserCFGTest_ComputeBlockOrder_Loop_Continue_ContainsIf.spvasm.expected.ir.fxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:198 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Loop
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/unittest/reader/spirv/SpvParserCFGTest_ComputeBlockOrder_Loop_Continue_HasBreakIf.spvasm.expected.ir.dxc.hlsl b/test/tint/unittest/reader/spirv/SpvParserCFGTest_ComputeBlockOrder_Loop_Continue_HasBreakIf.spvasm.expected.ir.dxc.hlsl
deleted file mode 100644
index adbb0c1..0000000
--- a/test/tint/unittest/reader/spirv/SpvParserCFGTest_ComputeBlockOrder_Loop_Continue_HasBreakIf.spvasm.expected.ir.dxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:198 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Loop
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/unittest/reader/spirv/SpvParserCFGTest_ComputeBlockOrder_Loop_Continue_HasBreakIf.spvasm.expected.ir.fxc.hlsl b/test/tint/unittest/reader/spirv/SpvParserCFGTest_ComputeBlockOrder_Loop_Continue_HasBreakIf.spvasm.expected.ir.fxc.hlsl
deleted file mode 100644
index adbb0c1..0000000
--- a/test/tint/unittest/reader/spirv/SpvParserCFGTest_ComputeBlockOrder_Loop_Continue_HasBreakIf.spvasm.expected.ir.fxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:198 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Loop
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/unittest/reader/spirv/SpvParserCFGTest_ComputeBlockOrder_Loop_Continue_HasBreakUnless.spvasm.expected.ir.dxc.hlsl b/test/tint/unittest/reader/spirv/SpvParserCFGTest_ComputeBlockOrder_Loop_Continue_HasBreakUnless.spvasm.expected.ir.dxc.hlsl
deleted file mode 100644
index adbb0c1..0000000
--- a/test/tint/unittest/reader/spirv/SpvParserCFGTest_ComputeBlockOrder_Loop_Continue_HasBreakUnless.spvasm.expected.ir.dxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:198 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Loop
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/unittest/reader/spirv/SpvParserCFGTest_ComputeBlockOrder_Loop_Continue_HasBreakUnless.spvasm.expected.ir.fxc.hlsl b/test/tint/unittest/reader/spirv/SpvParserCFGTest_ComputeBlockOrder_Loop_Continue_HasBreakUnless.spvasm.expected.ir.fxc.hlsl
deleted file mode 100644
index adbb0c1..0000000
--- a/test/tint/unittest/reader/spirv/SpvParserCFGTest_ComputeBlockOrder_Loop_Continue_HasBreakUnless.spvasm.expected.ir.fxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:198 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Loop
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/unittest/reader/spirv/SpvParserCFGTest_ComputeBlockOrder_Loop_Continue_Sequence.spvasm.expected.ir.dxc.hlsl b/test/tint/unittest/reader/spirv/SpvParserCFGTest_ComputeBlockOrder_Loop_Continue_Sequence.spvasm.expected.ir.dxc.hlsl
deleted file mode 100644
index adbb0c1..0000000
--- a/test/tint/unittest/reader/spirv/SpvParserCFGTest_ComputeBlockOrder_Loop_Continue_Sequence.spvasm.expected.ir.dxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:198 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Loop
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/unittest/reader/spirv/SpvParserCFGTest_ComputeBlockOrder_Loop_Continue_Sequence.spvasm.expected.ir.fxc.hlsl b/test/tint/unittest/reader/spirv/SpvParserCFGTest_ComputeBlockOrder_Loop_Continue_Sequence.spvasm.expected.ir.fxc.hlsl
deleted file mode 100644
index adbb0c1..0000000
--- a/test/tint/unittest/reader/spirv/SpvParserCFGTest_ComputeBlockOrder_Loop_Continue_Sequence.spvasm.expected.ir.fxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:198 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Loop
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/unittest/reader/spirv/SpvParserCFGTest_ComputeBlockOrder_Loop_HeaderHasBreakIf.spvasm.expected.ir.dxc.hlsl b/test/tint/unittest/reader/spirv/SpvParserCFGTest_ComputeBlockOrder_Loop_HeaderHasBreakIf.spvasm.expected.ir.dxc.hlsl
deleted file mode 100644
index adbb0c1..0000000
--- a/test/tint/unittest/reader/spirv/SpvParserCFGTest_ComputeBlockOrder_Loop_HeaderHasBreakIf.spvasm.expected.ir.dxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:198 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Loop
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/unittest/reader/spirv/SpvParserCFGTest_ComputeBlockOrder_Loop_HeaderHasBreakIf.spvasm.expected.ir.fxc.hlsl b/test/tint/unittest/reader/spirv/SpvParserCFGTest_ComputeBlockOrder_Loop_HeaderHasBreakIf.spvasm.expected.ir.fxc.hlsl
deleted file mode 100644
index adbb0c1..0000000
--- a/test/tint/unittest/reader/spirv/SpvParserCFGTest_ComputeBlockOrder_Loop_HeaderHasBreakIf.spvasm.expected.ir.fxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:198 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Loop
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/unittest/reader/spirv/SpvParserCFGTest_ComputeBlockOrder_Loop_HeaderHasBreakUnless.spvasm.expected.ir.dxc.hlsl b/test/tint/unittest/reader/spirv/SpvParserCFGTest_ComputeBlockOrder_Loop_HeaderHasBreakUnless.spvasm.expected.ir.dxc.hlsl
index adbb0c1..31b7623 100644
--- a/test/tint/unittest/reader/spirv/SpvParserCFGTest_ComputeBlockOrder_Loop_HeaderHasBreakUnless.spvasm.expected.ir.dxc.hlsl
+++ b/test/tint/unittest/reader/spirv/SpvParserCFGTest_ComputeBlockOrder_Loop_HeaderHasBreakUnless.spvasm.expected.ir.dxc.hlsl
@@ -1,9 +1,27 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:198 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Loop
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+
+static uint var_1 = 0u;
+void main_1() {
+  {
+    while(true) {
+      if (false) {
+        break;
+      }
+      {
+      }
+      continue;
+    }
+  }
+}
+
+void main() {
+  main_1();
+}
+
+DXC validation failure:
+error: validation errors
+hlsl.hlsl:16: error: Loop must have break.
+Validation failed.
+
+
diff --git a/test/tint/unittest/reader/spirv/SpvParserCFGTest_ComputeBlockOrder_Loop_HeaderHasBreakUnless.spvasm.expected.ir.fxc.hlsl b/test/tint/unittest/reader/spirv/SpvParserCFGTest_ComputeBlockOrder_Loop_HeaderHasBreakUnless.spvasm.expected.ir.fxc.hlsl
deleted file mode 100644
index adbb0c1..0000000
--- a/test/tint/unittest/reader/spirv/SpvParserCFGTest_ComputeBlockOrder_Loop_HeaderHasBreakUnless.spvasm.expected.ir.fxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:198 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Loop
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/unittest/reader/spirv/SpvParserCFGTest_ComputeBlockOrder_Loop_Loop.spvasm.expected.ir.dxc.hlsl b/test/tint/unittest/reader/spirv/SpvParserCFGTest_ComputeBlockOrder_Loop_Loop.spvasm.expected.ir.dxc.hlsl
deleted file mode 100644
index adbb0c1..0000000
--- a/test/tint/unittest/reader/spirv/SpvParserCFGTest_ComputeBlockOrder_Loop_Loop.spvasm.expected.ir.dxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:198 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Loop
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/unittest/reader/spirv/SpvParserCFGTest_ComputeBlockOrder_Loop_Loop.spvasm.expected.ir.fxc.hlsl b/test/tint/unittest/reader/spirv/SpvParserCFGTest_ComputeBlockOrder_Loop_Loop.spvasm.expected.ir.fxc.hlsl
deleted file mode 100644
index adbb0c1..0000000
--- a/test/tint/unittest/reader/spirv/SpvParserCFGTest_ComputeBlockOrder_Loop_Loop.spvasm.expected.ir.fxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:198 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Loop
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/unittest/reader/spirv/SpvParserCFGTest_ComputeBlockOrder_Loop_Loop_InnerBreak.spvasm.expected.ir.dxc.hlsl b/test/tint/unittest/reader/spirv/SpvParserCFGTest_ComputeBlockOrder_Loop_Loop_InnerBreak.spvasm.expected.ir.dxc.hlsl
deleted file mode 100644
index adbb0c1..0000000
--- a/test/tint/unittest/reader/spirv/SpvParserCFGTest_ComputeBlockOrder_Loop_Loop_InnerBreak.spvasm.expected.ir.dxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:198 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Loop
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/unittest/reader/spirv/SpvParserCFGTest_ComputeBlockOrder_Loop_Loop_InnerBreak.spvasm.expected.ir.fxc.hlsl b/test/tint/unittest/reader/spirv/SpvParserCFGTest_ComputeBlockOrder_Loop_Loop_InnerBreak.spvasm.expected.ir.fxc.hlsl
deleted file mode 100644
index adbb0c1..0000000
--- a/test/tint/unittest/reader/spirv/SpvParserCFGTest_ComputeBlockOrder_Loop_Loop_InnerBreak.spvasm.expected.ir.fxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:198 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Loop
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/unittest/reader/spirv/SpvParserCFGTest_ComputeBlockOrder_Loop_Loop_InnerContinue.spvasm.expected.ir.dxc.hlsl b/test/tint/unittest/reader/spirv/SpvParserCFGTest_ComputeBlockOrder_Loop_Loop_InnerContinue.spvasm.expected.ir.dxc.hlsl
deleted file mode 100644
index adbb0c1..0000000
--- a/test/tint/unittest/reader/spirv/SpvParserCFGTest_ComputeBlockOrder_Loop_Loop_InnerContinue.spvasm.expected.ir.dxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:198 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Loop
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/unittest/reader/spirv/SpvParserCFGTest_ComputeBlockOrder_Loop_Loop_InnerContinue.spvasm.expected.ir.fxc.hlsl b/test/tint/unittest/reader/spirv/SpvParserCFGTest_ComputeBlockOrder_Loop_Loop_InnerContinue.spvasm.expected.ir.fxc.hlsl
deleted file mode 100644
index adbb0c1..0000000
--- a/test/tint/unittest/reader/spirv/SpvParserCFGTest_ComputeBlockOrder_Loop_Loop_InnerContinue.spvasm.expected.ir.fxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:198 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Loop
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/unittest/reader/spirv/SpvParserCFGTest_ComputeBlockOrder_Loop_Loop_InnerContinueBreaks.spvasm.expected.ir.dxc.hlsl b/test/tint/unittest/reader/spirv/SpvParserCFGTest_ComputeBlockOrder_Loop_Loop_InnerContinueBreaks.spvasm.expected.ir.dxc.hlsl
deleted file mode 100644
index adbb0c1..0000000
--- a/test/tint/unittest/reader/spirv/SpvParserCFGTest_ComputeBlockOrder_Loop_Loop_InnerContinueBreaks.spvasm.expected.ir.dxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:198 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Loop
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/unittest/reader/spirv/SpvParserCFGTest_ComputeBlockOrder_Loop_Loop_InnerContinueBreaks.spvasm.expected.ir.fxc.hlsl b/test/tint/unittest/reader/spirv/SpvParserCFGTest_ComputeBlockOrder_Loop_Loop_InnerContinueBreaks.spvasm.expected.ir.fxc.hlsl
deleted file mode 100644
index adbb0c1..0000000
--- a/test/tint/unittest/reader/spirv/SpvParserCFGTest_ComputeBlockOrder_Loop_Loop_InnerContinueBreaks.spvasm.expected.ir.fxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:198 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Loop
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/unittest/reader/spirv/SpvParserCFGTest_ComputeBlockOrder_Loop_SingleBlock_Simple.spvasm.expected.ir.dxc.hlsl b/test/tint/unittest/reader/spirv/SpvParserCFGTest_ComputeBlockOrder_Loop_SingleBlock_Simple.spvasm.expected.ir.dxc.hlsl
deleted file mode 100644
index adbb0c1..0000000
--- a/test/tint/unittest/reader/spirv/SpvParserCFGTest_ComputeBlockOrder_Loop_SingleBlock_Simple.spvasm.expected.ir.dxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:198 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Loop
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/unittest/reader/spirv/SpvParserCFGTest_ComputeBlockOrder_Loop_SingleBlock_Simple.spvasm.expected.ir.fxc.hlsl b/test/tint/unittest/reader/spirv/SpvParserCFGTest_ComputeBlockOrder_Loop_SingleBlock_Simple.spvasm.expected.ir.fxc.hlsl
deleted file mode 100644
index adbb0c1..0000000
--- a/test/tint/unittest/reader/spirv/SpvParserCFGTest_ComputeBlockOrder_Loop_SingleBlock_Simple.spvasm.expected.ir.fxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:198 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Loop
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/unittest/reader/spirv/SpvParserCFGTest_ComputeBlockOrder_Nest_IfBreak_In_SwitchCase.spvasm.expected.ir.dxc.hlsl b/test/tint/unittest/reader/spirv/SpvParserCFGTest_ComputeBlockOrder_Nest_IfBreak_In_SwitchCase.spvasm.expected.ir.dxc.hlsl
deleted file mode 100644
index 27c824a..0000000
--- a/test/tint/unittest/reader/spirv/SpvParserCFGTest_ComputeBlockOrder_Nest_IfBreak_In_SwitchCase.spvasm.expected.ir.dxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:198 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Switch
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/unittest/reader/spirv/SpvParserCFGTest_ComputeBlockOrder_Nest_IfBreak_In_SwitchCase.spvasm.expected.ir.fxc.hlsl b/test/tint/unittest/reader/spirv/SpvParserCFGTest_ComputeBlockOrder_Nest_IfBreak_In_SwitchCase.spvasm.expected.ir.fxc.hlsl
deleted file mode 100644
index 27c824a..0000000
--- a/test/tint/unittest/reader/spirv/SpvParserCFGTest_ComputeBlockOrder_Nest_IfBreak_In_SwitchCase.spvasm.expected.ir.fxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:198 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Switch
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/unittest/reader/spirv/SpvParserCFGTest_ComputeBlockOrder_Nest_If_Contains_If.spvasm.expected.ir.dxc.hlsl b/test/tint/unittest/reader/spirv/SpvParserCFGTest_ComputeBlockOrder_Nest_If_Contains_If.spvasm.expected.ir.dxc.hlsl
deleted file mode 100644
index bdeab23..0000000
--- a/test/tint/unittest/reader/spirv/SpvParserCFGTest_ComputeBlockOrder_Nest_If_Contains_If.spvasm.expected.ir.dxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:198 internal compiler error: Switch() matched no cases. Type: tint::core::ir::If
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix 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/SpvParserCFGTest_ComputeBlockOrder_Nest_If_Contains_If.spvasm.expected.ir.fxc.hlsl b/test/tint/unittest/reader/spirv/SpvParserCFGTest_ComputeBlockOrder_Nest_If_Contains_If.spvasm.expected.ir.fxc.hlsl
deleted file mode 100644
index bdeab23..0000000
--- a/test/tint/unittest/reader/spirv/SpvParserCFGTest_ComputeBlockOrder_Nest_If_Contains_If.spvasm.expected.ir.fxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:198 internal compiler error: Switch() matched no cases. Type: tint::core::ir::If
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix 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/SpvParserCFGTest_ComputeBlockOrder_Nest_If_In_SwitchCase.spvasm.expected.ir.dxc.hlsl b/test/tint/unittest/reader/spirv/SpvParserCFGTest_ComputeBlockOrder_Nest_If_In_SwitchCase.spvasm.expected.ir.dxc.hlsl
deleted file mode 100644
index 27c824a..0000000
--- a/test/tint/unittest/reader/spirv/SpvParserCFGTest_ComputeBlockOrder_Nest_If_In_SwitchCase.spvasm.expected.ir.dxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:198 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Switch
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/unittest/reader/spirv/SpvParserCFGTest_ComputeBlockOrder_Nest_If_In_SwitchCase.spvasm.expected.ir.fxc.hlsl b/test/tint/unittest/reader/spirv/SpvParserCFGTest_ComputeBlockOrder_Nest_If_In_SwitchCase.spvasm.expected.ir.fxc.hlsl
deleted file mode 100644
index 27c824a..0000000
--- a/test/tint/unittest/reader/spirv/SpvParserCFGTest_ComputeBlockOrder_Nest_If_In_SwitchCase.spvasm.expected.ir.fxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:198 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Switch
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/unittest/reader/spirv/SpvParserCFGTest_ComputeBlockOrder_OneBlock.spvasm.expected.ir.fxc.hlsl b/test/tint/unittest/reader/spirv/SpvParserCFGTest_ComputeBlockOrder_OneBlock.spvasm.expected.ir.fxc.hlsl
deleted file mode 100644
index a096ece..0000000
--- a/test/tint/unittest/reader/spirv/SpvParserCFGTest_ComputeBlockOrder_OneBlock.spvasm.expected.ir.fxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-void main_1() {
-}
-
-void main() {
-  main_1();
-}
-
diff --git a/test/tint/unittest/reader/spirv/SpvParserCFGTest_ComputeBlockOrder_ReorderSequence.spvasm.expected.ir.dxc.hlsl b/test/tint/unittest/reader/spirv/SpvParserCFGTest_ComputeBlockOrder_ReorderSequence.spvasm.expected.ir.dxc.hlsl
deleted file mode 100644
index bdeab23..0000000
--- a/test/tint/unittest/reader/spirv/SpvParserCFGTest_ComputeBlockOrder_ReorderSequence.spvasm.expected.ir.dxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:198 internal compiler error: Switch() matched no cases. Type: tint::core::ir::If
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix 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/SpvParserCFGTest_ComputeBlockOrder_ReorderSequence.spvasm.expected.ir.fxc.hlsl b/test/tint/unittest/reader/spirv/SpvParserCFGTest_ComputeBlockOrder_ReorderSequence.spvasm.expected.ir.fxc.hlsl
deleted file mode 100644
index bdeab23..0000000
--- a/test/tint/unittest/reader/spirv/SpvParserCFGTest_ComputeBlockOrder_ReorderSequence.spvasm.expected.ir.fxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:198 internal compiler error: Switch() matched no cases. Type: tint::core::ir::If
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix 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/SpvParserCFGTest_ComputeBlockOrder_RespectConditionalBranchOrder.spvasm.expected.ir.dxc.hlsl b/test/tint/unittest/reader/spirv/SpvParserCFGTest_ComputeBlockOrder_RespectConditionalBranchOrder.spvasm.expected.ir.dxc.hlsl
deleted file mode 100644
index bdeab23..0000000
--- a/test/tint/unittest/reader/spirv/SpvParserCFGTest_ComputeBlockOrder_RespectConditionalBranchOrder.spvasm.expected.ir.dxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:198 internal compiler error: Switch() matched no cases. Type: tint::core::ir::If
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix 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/SpvParserCFGTest_ComputeBlockOrder_RespectConditionalBranchOrder.spvasm.expected.ir.fxc.hlsl b/test/tint/unittest/reader/spirv/SpvParserCFGTest_ComputeBlockOrder_RespectConditionalBranchOrder.spvasm.expected.ir.fxc.hlsl
deleted file mode 100644
index bdeab23..0000000
--- a/test/tint/unittest/reader/spirv/SpvParserCFGTest_ComputeBlockOrder_RespectConditionalBranchOrder.spvasm.expected.ir.fxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:198 internal compiler error: Switch() matched no cases. Type: tint::core::ir::If
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix 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/SpvParserCFGTest_ComputeBlockOrder_SwitchOrderNaturallyReversed.spvasm.expected.ir.dxc.hlsl b/test/tint/unittest/reader/spirv/SpvParserCFGTest_ComputeBlockOrder_SwitchOrderNaturallyReversed.spvasm.expected.ir.dxc.hlsl
deleted file mode 100644
index 27c824a..0000000
--- a/test/tint/unittest/reader/spirv/SpvParserCFGTest_ComputeBlockOrder_SwitchOrderNaturallyReversed.spvasm.expected.ir.dxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:198 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Switch
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/unittest/reader/spirv/SpvParserCFGTest_ComputeBlockOrder_SwitchOrderNaturallyReversed.spvasm.expected.ir.fxc.hlsl b/test/tint/unittest/reader/spirv/SpvParserCFGTest_ComputeBlockOrder_SwitchOrderNaturallyReversed.spvasm.expected.ir.fxc.hlsl
deleted file mode 100644
index 27c824a..0000000
--- a/test/tint/unittest/reader/spirv/SpvParserCFGTest_ComputeBlockOrder_SwitchOrderNaturallyReversed.spvasm.expected.ir.fxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:198 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Switch
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/unittest/reader/spirv/SpvParserCFGTest_ComputeBlockOrder_SwitchWithDefaultOrderNaturallyReversed.spvasm.expected.ir.dxc.hlsl b/test/tint/unittest/reader/spirv/SpvParserCFGTest_ComputeBlockOrder_SwitchWithDefaultOrderNaturallyReversed.spvasm.expected.ir.dxc.hlsl
deleted file mode 100644
index 27c824a..0000000
--- a/test/tint/unittest/reader/spirv/SpvParserCFGTest_ComputeBlockOrder_SwitchWithDefaultOrderNaturallyReversed.spvasm.expected.ir.dxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:198 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Switch
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/unittest/reader/spirv/SpvParserCFGTest_ComputeBlockOrder_SwitchWithDefaultOrderNaturallyReversed.spvasm.expected.ir.fxc.hlsl b/test/tint/unittest/reader/spirv/SpvParserCFGTest_ComputeBlockOrder_SwitchWithDefaultOrderNaturallyReversed.spvasm.expected.ir.fxc.hlsl
deleted file mode 100644
index 27c824a..0000000
--- a/test/tint/unittest/reader/spirv/SpvParserCFGTest_ComputeBlockOrder_SwitchWithDefaultOrderNaturallyReversed.spvasm.expected.ir.fxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:198 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Switch
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/unittest/reader/spirv/SpvParserCFGTest_ComputeBlockOrder_Switch_DefaultSameAsACase.spvasm.expected.ir.dxc.hlsl b/test/tint/unittest/reader/spirv/SpvParserCFGTest_ComputeBlockOrder_Switch_DefaultSameAsACase.spvasm.expected.ir.dxc.hlsl
deleted file mode 100644
index 27c824a..0000000
--- a/test/tint/unittest/reader/spirv/SpvParserCFGTest_ComputeBlockOrder_Switch_DefaultSameAsACase.spvasm.expected.ir.dxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:198 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Switch
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/unittest/reader/spirv/SpvParserCFGTest_ComputeBlockOrder_Switch_DefaultSameAsACase.spvasm.expected.ir.fxc.hlsl b/test/tint/unittest/reader/spirv/SpvParserCFGTest_ComputeBlockOrder_Switch_DefaultSameAsACase.spvasm.expected.ir.fxc.hlsl
deleted file mode 100644
index 27c824a..0000000
--- a/test/tint/unittest/reader/spirv/SpvParserCFGTest_ComputeBlockOrder_Switch_DefaultSameAsACase.spvasm.expected.ir.fxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:198 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Switch
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/unittest/reader/spirv/SpvParserCFGTest_ComputeBlockOrder_TrueOnlyBranch.spvasm.expected.ir.dxc.hlsl b/test/tint/unittest/reader/spirv/SpvParserCFGTest_ComputeBlockOrder_TrueOnlyBranch.spvasm.expected.ir.dxc.hlsl
deleted file mode 100644
index bdeab23..0000000
--- a/test/tint/unittest/reader/spirv/SpvParserCFGTest_ComputeBlockOrder_TrueOnlyBranch.spvasm.expected.ir.dxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:198 internal compiler error: Switch() matched no cases. Type: tint::core::ir::If
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix 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/SpvParserCFGTest_ComputeBlockOrder_TrueOnlyBranch.spvasm.expected.ir.fxc.hlsl b/test/tint/unittest/reader/spirv/SpvParserCFGTest_ComputeBlockOrder_TrueOnlyBranch.spvasm.expected.ir.fxc.hlsl
deleted file mode 100644
index bdeab23..0000000
--- a/test/tint/unittest/reader/spirv/SpvParserCFGTest_ComputeBlockOrder_TrueOnlyBranch.spvasm.expected.ir.fxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:198 internal compiler error: Switch() matched no cases. Type: tint::core::ir::If
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix 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/SpvParserCFGTest_ComputeBlockOrder_UnreachableIsDeadEnd.spvasm.expected.ir.fxc.hlsl b/test/tint/unittest/reader/spirv/SpvParserCFGTest_ComputeBlockOrder_UnreachableIsDeadEnd.spvasm.expected.ir.fxc.hlsl
deleted file mode 100644
index a096ece..0000000
--- a/test/tint/unittest/reader/spirv/SpvParserCFGTest_ComputeBlockOrder_UnreachableIsDeadEnd.spvasm.expected.ir.fxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-void main_1() {
-}
-
-void main() {
-  main_1();
-}
-
diff --git a/test/tint/unittest/reader/spirv/SpvParserCFGTest_EmitBody_BranchConditional_Back_MultiBlock_LoopBreak_OnFalse.spvasm.expected.ir.dxc.hlsl b/test/tint/unittest/reader/spirv/SpvParserCFGTest_EmitBody_BranchConditional_Back_MultiBlock_LoopBreak_OnFalse.spvasm.expected.ir.dxc.hlsl
deleted file mode 100644
index adbb0c1..0000000
--- a/test/tint/unittest/reader/spirv/SpvParserCFGTest_EmitBody_BranchConditional_Back_MultiBlock_LoopBreak_OnFalse.spvasm.expected.ir.dxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:198 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Loop
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/unittest/reader/spirv/SpvParserCFGTest_EmitBody_BranchConditional_Back_MultiBlock_LoopBreak_OnFalse.spvasm.expected.ir.fxc.hlsl b/test/tint/unittest/reader/spirv/SpvParserCFGTest_EmitBody_BranchConditional_Back_MultiBlock_LoopBreak_OnFalse.spvasm.expected.ir.fxc.hlsl
deleted file mode 100644
index adbb0c1..0000000
--- a/test/tint/unittest/reader/spirv/SpvParserCFGTest_EmitBody_BranchConditional_Back_MultiBlock_LoopBreak_OnFalse.spvasm.expected.ir.fxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:198 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Loop
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/unittest/reader/spirv/SpvParserCFGTest_EmitBody_BranchConditional_Back_MultiBlock_LoopBreak_OnTrue.spvasm.expected.ir.dxc.hlsl b/test/tint/unittest/reader/spirv/SpvParserCFGTest_EmitBody_BranchConditional_Back_MultiBlock_LoopBreak_OnTrue.spvasm.expected.ir.dxc.hlsl
index adbb0c1..5f88bbd 100644
--- a/test/tint/unittest/reader/spirv/SpvParserCFGTest_EmitBody_BranchConditional_Back_MultiBlock_LoopBreak_OnTrue.spvasm.expected.ir.dxc.hlsl
+++ b/test/tint/unittest/reader/spirv/SpvParserCFGTest_EmitBody_BranchConditional_Back_MultiBlock_LoopBreak_OnTrue.spvasm.expected.ir.dxc.hlsl
@@ -1,9 +1,28 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:198 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Loop
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+
+static uint var_1 = 0u;
+void main_1() {
+  var_1 = 0u;
+  {
+    while(true) {
+      var_1 = 1u;
+      {
+        if (false) { break; }
+      }
+      continue;
+    }
+  }
+  var_1 = 5u;
+}
+
+void main() {
+  main_1();
+}
+
+DXC validation failure:
+error: validation errors
+hlsl.hlsl:17: error: Loop must have break.
+Validation failed.
+
+
diff --git a/test/tint/unittest/reader/spirv/SpvParserCFGTest_EmitBody_BranchConditional_Back_MultiBlock_LoopBreak_OnTrue.spvasm.expected.ir.fxc.hlsl b/test/tint/unittest/reader/spirv/SpvParserCFGTest_EmitBody_BranchConditional_Back_MultiBlock_LoopBreak_OnTrue.spvasm.expected.ir.fxc.hlsl
index adbb0c1..804babe 100644
--- a/test/tint/unittest/reader/spirv/SpvParserCFGTest_EmitBody_BranchConditional_Back_MultiBlock_LoopBreak_OnTrue.spvasm.expected.ir.fxc.hlsl
+++ b/test/tint/unittest/reader/spirv/SpvParserCFGTest_EmitBody_BranchConditional_Back_MultiBlock_LoopBreak_OnTrue.spvasm.expected.ir.fxc.hlsl
@@ -1,9 +1,25 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:198 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Loop
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+
+static uint var_1 = 0u;
+void main_1() {
+  var_1 = 0u;
+  {
+    while(true) {
+      var_1 = 1u;
+      {
+        if (false) { break; }
+      }
+      continue;
+    }
+  }
+  var_1 = 5u;
+}
+
+void main() {
+  main_1();
+}
+
+FXC validation failure:
+c:\src\dawn\Shader@0x000001CFAE6AEC20(6,11-14): error X3696: infinite loop detected - loop never exits
+
diff --git a/test/tint/unittest/reader/spirv/SpvParserCFGTest_EmitBody_BranchConditional_Back_SingleBlock_LoopBreak_OnFalse.spvasm.expected.ir.dxc.hlsl b/test/tint/unittest/reader/spirv/SpvParserCFGTest_EmitBody_BranchConditional_Back_SingleBlock_LoopBreak_OnFalse.spvasm.expected.ir.dxc.hlsl
deleted file mode 100644
index adbb0c1..0000000
--- a/test/tint/unittest/reader/spirv/SpvParserCFGTest_EmitBody_BranchConditional_Back_SingleBlock_LoopBreak_OnFalse.spvasm.expected.ir.dxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:198 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Loop
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/unittest/reader/spirv/SpvParserCFGTest_EmitBody_BranchConditional_Back_SingleBlock_LoopBreak_OnFalse.spvasm.expected.ir.fxc.hlsl b/test/tint/unittest/reader/spirv/SpvParserCFGTest_EmitBody_BranchConditional_Back_SingleBlock_LoopBreak_OnFalse.spvasm.expected.ir.fxc.hlsl
deleted file mode 100644
index adbb0c1..0000000
--- a/test/tint/unittest/reader/spirv/SpvParserCFGTest_EmitBody_BranchConditional_Back_SingleBlock_LoopBreak_OnFalse.spvasm.expected.ir.fxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:198 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Loop
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/unittest/reader/spirv/SpvParserCFGTest_EmitBody_BranchConditional_Back_SingleBlock_LoopBreak_OnTrue.spvasm.expected.ir.dxc.hlsl b/test/tint/unittest/reader/spirv/SpvParserCFGTest_EmitBody_BranchConditional_Back_SingleBlock_LoopBreak_OnTrue.spvasm.expected.ir.dxc.hlsl
index adbb0c1..5bdf4d3 100644
--- a/test/tint/unittest/reader/spirv/SpvParserCFGTest_EmitBody_BranchConditional_Back_SingleBlock_LoopBreak_OnTrue.spvasm.expected.ir.dxc.hlsl
+++ b/test/tint/unittest/reader/spirv/SpvParserCFGTest_EmitBody_BranchConditional_Back_SingleBlock_LoopBreak_OnTrue.spvasm.expected.ir.dxc.hlsl
@@ -1,9 +1,30 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:198 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Loop
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+
+static uint var_1 = 0u;
+void main_1() {
+  var_1 = 0u;
+  {
+    while(true) {
+      var_1 = 1u;
+      if (false) {
+        break;
+      }
+      {
+      }
+      continue;
+    }
+  }
+  var_1 = 5u;
+}
+
+void main() {
+  main_1();
+}
+
+DXC validation failure:
+error: validation errors
+hlsl.hlsl:19: error: Loop must have break.
+Validation failed.
+
+
diff --git a/test/tint/unittest/reader/spirv/SpvParserCFGTest_EmitBody_BranchConditional_Back_SingleBlock_LoopBreak_OnTrue.spvasm.expected.ir.fxc.hlsl b/test/tint/unittest/reader/spirv/SpvParserCFGTest_EmitBody_BranchConditional_Back_SingleBlock_LoopBreak_OnTrue.spvasm.expected.ir.fxc.hlsl
index adbb0c1..febd5b0 100644
--- a/test/tint/unittest/reader/spirv/SpvParserCFGTest_EmitBody_BranchConditional_Back_SingleBlock_LoopBreak_OnTrue.spvasm.expected.ir.fxc.hlsl
+++ b/test/tint/unittest/reader/spirv/SpvParserCFGTest_EmitBody_BranchConditional_Back_SingleBlock_LoopBreak_OnTrue.spvasm.expected.ir.fxc.hlsl
@@ -1,9 +1,27 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:198 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Loop
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+
+static uint var_1 = 0u;
+void main_1() {
+  var_1 = 0u;
+  {
+    while(true) {
+      var_1 = 1u;
+      if (false) {
+        break;
+      }
+      {
+      }
+      continue;
+    }
+  }
+  var_1 = 5u;
+}
+
+void main() {
+  main_1();
+}
+
+FXC validation failure:
+c:\src\dawn\Shader@0x000001D411DF0730(6,11-14): error X3696: infinite loop detected - loop never exits
+
diff --git a/test/tint/unittest/reader/spirv/SpvParserCFGTest_EmitBody_BranchConditional_Forward_Forward_Same.spvasm.expected.ir.dxc.hlsl b/test/tint/unittest/reader/spirv/SpvParserCFGTest_EmitBody_BranchConditional_Forward_Forward_Same.spvasm.expected.ir.dxc.hlsl
deleted file mode 100644
index cd1085c..0000000
--- a/test/tint/unittest/reader/spirv/SpvParserCFGTest_EmitBody_BranchConditional_Forward_Forward_Same.spvasm.expected.ir.dxc.hlsl
+++ /dev/null
@@ -1,19 +0,0 @@
-SKIP: FAILED
-
-void main_1() {
-  var_1 = 1u;
-  var_1 = 2u;
-}
-
-void main() {
-  main_1();
-}
-
-DXC validation failure:
-hlsl.hlsl:2:3: error: use of undeclared identifier 'var_1'
-  var_1 = 1u;
-  ^
-hlsl.hlsl:3:3: error: use of undeclared identifier 'var_1'
-  var_1 = 2u;
-  ^
-
diff --git a/test/tint/unittest/reader/spirv/SpvParserCFGTest_EmitBody_BranchConditional_Forward_Forward_Same.spvasm.expected.ir.fxc.hlsl b/test/tint/unittest/reader/spirv/SpvParserCFGTest_EmitBody_BranchConditional_Forward_Forward_Same.spvasm.expected.ir.fxc.hlsl
deleted file mode 100644
index ecb4fd3..0000000
--- a/test/tint/unittest/reader/spirv/SpvParserCFGTest_EmitBody_BranchConditional_Forward_Forward_Same.spvasm.expected.ir.fxc.hlsl
+++ /dev/null
@@ -1,11 +0,0 @@
-SKIP: FAILED
-
-void main_1() {
-  var_1 = 1u;
-  var_1 = 2u;
-}
-
-void main() {
-  main_1();
-}
-
diff --git a/test/tint/unittest/reader/spirv/SpvParserCFGTest_EmitBody_BranchConditional_IfBreak_IfBreak_Same.spvasm.expected.ir.dxc.hlsl b/test/tint/unittest/reader/spirv/SpvParserCFGTest_EmitBody_BranchConditional_IfBreak_IfBreak_Same.spvasm.expected.ir.dxc.hlsl
deleted file mode 100644
index bdeab23..0000000
--- a/test/tint/unittest/reader/spirv/SpvParserCFGTest_EmitBody_BranchConditional_IfBreak_IfBreak_Same.spvasm.expected.ir.dxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:198 internal compiler error: Switch() matched no cases. Type: tint::core::ir::If
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix 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/SpvParserCFGTest_EmitBody_BranchConditional_IfBreak_IfBreak_Same.spvasm.expected.ir.fxc.hlsl b/test/tint/unittest/reader/spirv/SpvParserCFGTest_EmitBody_BranchConditional_IfBreak_IfBreak_Same.spvasm.expected.ir.fxc.hlsl
deleted file mode 100644
index bdeab23..0000000
--- a/test/tint/unittest/reader/spirv/SpvParserCFGTest_EmitBody_BranchConditional_IfBreak_IfBreak_Same.spvasm.expected.ir.fxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:198 internal compiler error: Switch() matched no cases. Type: tint::core::ir::If
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix 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/SpvParserCFGTest_EmitBody_BranchConditional_LoopBreak_Continue_OnFalse.spvasm.expected.ir.dxc.hlsl b/test/tint/unittest/reader/spirv/SpvParserCFGTest_EmitBody_BranchConditional_LoopBreak_Continue_OnFalse.spvasm.expected.ir.dxc.hlsl
index adbb0c1..4dcc94d 100644
--- a/test/tint/unittest/reader/spirv/SpvParserCFGTest_EmitBody_BranchConditional_LoopBreak_Continue_OnFalse.spvasm.expected.ir.dxc.hlsl
+++ b/test/tint/unittest/reader/spirv/SpvParserCFGTest_EmitBody_BranchConditional_LoopBreak_Continue_OnFalse.spvasm.expected.ir.dxc.hlsl
@@ -1,9 +1,40 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:198 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Loop
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+
+static uint var_1 = 0u;
+void main_1() {
+  var_1 = 0u;
+  {
+    while(true) {
+      var_1 = 1u;
+      if (true) {
+        var_1 = 2u;
+        if (false) {
+          break;
+        } else {
+          {
+            var_1 = 4u;
+          }
+          continue;
+        }
+      }
+      var_1 = 3u;
+      {
+        var_1 = 4u;
+      }
+      continue;
+    }
+  }
+  var_1 = 5u;
+}
+
+void main() {
+  main_1();
+}
+
+DXC validation failure:
+error: validation errors
+hlsl.hlsl:29: error: Loop must have break.
+Validation failed.
+
+
diff --git a/test/tint/unittest/reader/spirv/SpvParserCFGTest_EmitBody_BranchConditional_LoopBreak_Continue_OnFalse.spvasm.expected.ir.fxc.hlsl b/test/tint/unittest/reader/spirv/SpvParserCFGTest_EmitBody_BranchConditional_LoopBreak_Continue_OnFalse.spvasm.expected.ir.fxc.hlsl
index adbb0c1..479584c 100644
--- a/test/tint/unittest/reader/spirv/SpvParserCFGTest_EmitBody_BranchConditional_LoopBreak_Continue_OnFalse.spvasm.expected.ir.fxc.hlsl
+++ b/test/tint/unittest/reader/spirv/SpvParserCFGTest_EmitBody_BranchConditional_LoopBreak_Continue_OnFalse.spvasm.expected.ir.fxc.hlsl
@@ -1,9 +1,37 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:198 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Loop
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+
+static uint var_1 = 0u;
+void main_1() {
+  var_1 = 0u;
+  {
+    while(true) {
+      var_1 = 1u;
+      if (true) {
+        var_1 = 2u;
+        if (false) {
+          break;
+        } else {
+          {
+            var_1 = 4u;
+          }
+          continue;
+        }
+      }
+      var_1 = 3u;
+      {
+        var_1 = 4u;
+      }
+      continue;
+    }
+  }
+  var_1 = 5u;
+}
+
+void main() {
+  main_1();
+}
+
+FXC validation failure:
+c:\src\dawn\Shader@0x0000012AE9BB4930(6,11-14): error X3696: infinite loop detected - loop never exits
+
diff --git a/test/tint/unittest/reader/spirv/SpvParserCFGTest_EmitBody_BranchConditional_LoopBreak_Continue_OnTrue.spvasm.expected.ir.dxc.hlsl b/test/tint/unittest/reader/spirv/SpvParserCFGTest_EmitBody_BranchConditional_LoopBreak_Continue_OnTrue.spvasm.expected.ir.dxc.hlsl
deleted file mode 100644
index adbb0c1..0000000
--- a/test/tint/unittest/reader/spirv/SpvParserCFGTest_EmitBody_BranchConditional_LoopBreak_Continue_OnTrue.spvasm.expected.ir.dxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:198 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Loop
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/unittest/reader/spirv/SpvParserCFGTest_EmitBody_BranchConditional_LoopBreak_Continue_OnTrue.spvasm.expected.ir.fxc.hlsl b/test/tint/unittest/reader/spirv/SpvParserCFGTest_EmitBody_BranchConditional_LoopBreak_Continue_OnTrue.spvasm.expected.ir.fxc.hlsl
deleted file mode 100644
index adbb0c1..0000000
--- a/test/tint/unittest/reader/spirv/SpvParserCFGTest_EmitBody_BranchConditional_LoopBreak_Continue_OnTrue.spvasm.expected.ir.fxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:198 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Loop
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/unittest/reader/spirv/SpvParserCFGTest_EmitBody_BranchConditional_LoopBreak_Forward_OnFalse.spvasm.expected.ir.dxc.hlsl b/test/tint/unittest/reader/spirv/SpvParserCFGTest_EmitBody_BranchConditional_LoopBreak_Forward_OnFalse.spvasm.expected.ir.dxc.hlsl
index adbb0c1..85956ab 100644
--- a/test/tint/unittest/reader/spirv/SpvParserCFGTest_EmitBody_BranchConditional_LoopBreak_Forward_OnFalse.spvasm.expected.ir.dxc.hlsl
+++ b/test/tint/unittest/reader/spirv/SpvParserCFGTest_EmitBody_BranchConditional_LoopBreak_Forward_OnFalse.spvasm.expected.ir.dxc.hlsl
@@ -1,9 +1,33 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:198 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Loop
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+
+static uint var_1 = 0u;
+void main_1() {
+  var_1 = 0u;
+  {
+    while(true) {
+      var_1 = 1u;
+      var_1 = 2u;
+      if (false) {
+        break;
+      }
+      var_1 = 3u;
+      {
+        var_1 = 4u;
+      }
+      continue;
+    }
+  }
+  var_1 = 5u;
+}
+
+void main() {
+  main_1();
+}
+
+DXC validation failure:
+error: validation errors
+hlsl.hlsl:22: error: Loop must have break.
+Validation failed.
+
+
diff --git a/test/tint/unittest/reader/spirv/SpvParserCFGTest_EmitBody_BranchConditional_LoopBreak_Forward_OnFalse.spvasm.expected.ir.fxc.hlsl b/test/tint/unittest/reader/spirv/SpvParserCFGTest_EmitBody_BranchConditional_LoopBreak_Forward_OnFalse.spvasm.expected.ir.fxc.hlsl
index adbb0c1..3af292f 100644
--- a/test/tint/unittest/reader/spirv/SpvParserCFGTest_EmitBody_BranchConditional_LoopBreak_Forward_OnFalse.spvasm.expected.ir.fxc.hlsl
+++ b/test/tint/unittest/reader/spirv/SpvParserCFGTest_EmitBody_BranchConditional_LoopBreak_Forward_OnFalse.spvasm.expected.ir.fxc.hlsl
@@ -1,9 +1,30 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:198 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Loop
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+
+static uint var_1 = 0u;
+void main_1() {
+  var_1 = 0u;
+  {
+    while(true) {
+      var_1 = 1u;
+      var_1 = 2u;
+      if (false) {
+        break;
+      }
+      var_1 = 3u;
+      {
+        var_1 = 4u;
+      }
+      continue;
+    }
+  }
+  var_1 = 5u;
+}
+
+void main() {
+  main_1();
+}
+
+FXC validation failure:
+c:\src\dawn\Shader@0x0000025AB7E34A40(6,11-14): error X3696: infinite loop detected - loop never exits
+
diff --git a/test/tint/unittest/reader/spirv/SpvParserCFGTest_EmitBody_BranchConditional_LoopBreak_Forward_OnTrue.spvasm.expected.ir.dxc.hlsl b/test/tint/unittest/reader/spirv/SpvParserCFGTest_EmitBody_BranchConditional_LoopBreak_Forward_OnTrue.spvasm.expected.ir.dxc.hlsl
deleted file mode 100644
index adbb0c1..0000000
--- a/test/tint/unittest/reader/spirv/SpvParserCFGTest_EmitBody_BranchConditional_LoopBreak_Forward_OnTrue.spvasm.expected.ir.dxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:198 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Loop
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/unittest/reader/spirv/SpvParserCFGTest_EmitBody_BranchConditional_LoopBreak_Forward_OnTrue.spvasm.expected.ir.fxc.hlsl b/test/tint/unittest/reader/spirv/SpvParserCFGTest_EmitBody_BranchConditional_LoopBreak_Forward_OnTrue.spvasm.expected.ir.fxc.hlsl
deleted file mode 100644
index adbb0c1..0000000
--- a/test/tint/unittest/reader/spirv/SpvParserCFGTest_EmitBody_BranchConditional_LoopBreak_Forward_OnTrue.spvasm.expected.ir.fxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:198 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Loop
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/unittest/reader/spirv/SpvParserCFGTest_EmitBody_BranchConditional_LoopBreak_MultiBlock_LoopBreak.spvasm.expected.ir.dxc.hlsl b/test/tint/unittest/reader/spirv/SpvParserCFGTest_EmitBody_BranchConditional_LoopBreak_MultiBlock_LoopBreak.spvasm.expected.ir.dxc.hlsl
deleted file mode 100644
index adbb0c1..0000000
--- a/test/tint/unittest/reader/spirv/SpvParserCFGTest_EmitBody_BranchConditional_LoopBreak_MultiBlock_LoopBreak.spvasm.expected.ir.dxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:198 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Loop
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/unittest/reader/spirv/SpvParserCFGTest_EmitBody_BranchConditional_LoopBreak_MultiBlock_LoopBreak.spvasm.expected.ir.fxc.hlsl b/test/tint/unittest/reader/spirv/SpvParserCFGTest_EmitBody_BranchConditional_LoopBreak_MultiBlock_LoopBreak.spvasm.expected.ir.fxc.hlsl
deleted file mode 100644
index adbb0c1..0000000
--- a/test/tint/unittest/reader/spirv/SpvParserCFGTest_EmitBody_BranchConditional_LoopBreak_MultiBlock_LoopBreak.spvasm.expected.ir.fxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:198 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Loop
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/unittest/reader/spirv/SpvParserCFGTest_EmitBody_BranchConditional_LoopBreak_SingleBlock_LoopBreak.spvasm.expected.ir.dxc.hlsl b/test/tint/unittest/reader/spirv/SpvParserCFGTest_EmitBody_BranchConditional_LoopBreak_SingleBlock_LoopBreak.spvasm.expected.ir.dxc.hlsl
deleted file mode 100644
index adbb0c1..0000000
--- a/test/tint/unittest/reader/spirv/SpvParserCFGTest_EmitBody_BranchConditional_LoopBreak_SingleBlock_LoopBreak.spvasm.expected.ir.dxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:198 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Loop
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/unittest/reader/spirv/SpvParserCFGTest_EmitBody_BranchConditional_LoopBreak_SingleBlock_LoopBreak.spvasm.expected.ir.fxc.hlsl b/test/tint/unittest/reader/spirv/SpvParserCFGTest_EmitBody_BranchConditional_LoopBreak_SingleBlock_LoopBreak.spvasm.expected.ir.fxc.hlsl
deleted file mode 100644
index adbb0c1..0000000
--- a/test/tint/unittest/reader/spirv/SpvParserCFGTest_EmitBody_BranchConditional_LoopBreak_SingleBlock_LoopBreak.spvasm.expected.ir.fxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:198 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Loop
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/unittest/reader/spirv/SpvParserCFGTest_EmitBody_BranchConditional_SwitchBreak_Forward_OnFalse.spvasm.expected.ir.dxc.hlsl b/test/tint/unittest/reader/spirv/SpvParserCFGTest_EmitBody_BranchConditional_SwitchBreak_Forward_OnFalse.spvasm.expected.ir.dxc.hlsl
deleted file mode 100644
index 27c824a..0000000
--- a/test/tint/unittest/reader/spirv/SpvParserCFGTest_EmitBody_BranchConditional_SwitchBreak_Forward_OnFalse.spvasm.expected.ir.dxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:198 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Switch
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/unittest/reader/spirv/SpvParserCFGTest_EmitBody_BranchConditional_SwitchBreak_Forward_OnFalse.spvasm.expected.ir.fxc.hlsl b/test/tint/unittest/reader/spirv/SpvParserCFGTest_EmitBody_BranchConditional_SwitchBreak_Forward_OnFalse.spvasm.expected.ir.fxc.hlsl
deleted file mode 100644
index 27c824a..0000000
--- a/test/tint/unittest/reader/spirv/SpvParserCFGTest_EmitBody_BranchConditional_SwitchBreak_Forward_OnFalse.spvasm.expected.ir.fxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:198 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Switch
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/unittest/reader/spirv/SpvParserCFGTest_EmitBody_BranchConditional_SwitchBreak_Forward_OnTrue.spvasm.expected.ir.dxc.hlsl b/test/tint/unittest/reader/spirv/SpvParserCFGTest_EmitBody_BranchConditional_SwitchBreak_Forward_OnTrue.spvasm.expected.ir.dxc.hlsl
deleted file mode 100644
index 27c824a..0000000
--- a/test/tint/unittest/reader/spirv/SpvParserCFGTest_EmitBody_BranchConditional_SwitchBreak_Forward_OnTrue.spvasm.expected.ir.dxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:198 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Switch
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/unittest/reader/spirv/SpvParserCFGTest_EmitBody_BranchConditional_SwitchBreak_Forward_OnTrue.spvasm.expected.ir.fxc.hlsl b/test/tint/unittest/reader/spirv/SpvParserCFGTest_EmitBody_BranchConditional_SwitchBreak_Forward_OnTrue.spvasm.expected.ir.fxc.hlsl
deleted file mode 100644
index 27c824a..0000000
--- a/test/tint/unittest/reader/spirv/SpvParserCFGTest_EmitBody_BranchConditional_SwitchBreak_Forward_OnTrue.spvasm.expected.ir.fxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:198 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Switch
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/unittest/reader/spirv/SpvParserCFGTest_EmitBody_BranchConditional_SwitchBreak_SwitchBreak_LastInCase.spvasm.expected.ir.dxc.hlsl b/test/tint/unittest/reader/spirv/SpvParserCFGTest_EmitBody_BranchConditional_SwitchBreak_SwitchBreak_LastInCase.spvasm.expected.ir.dxc.hlsl
deleted file mode 100644
index 27c824a..0000000
--- a/test/tint/unittest/reader/spirv/SpvParserCFGTest_EmitBody_BranchConditional_SwitchBreak_SwitchBreak_LastInCase.spvasm.expected.ir.dxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:198 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Switch
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/unittest/reader/spirv/SpvParserCFGTest_EmitBody_BranchConditional_SwitchBreak_SwitchBreak_LastInCase.spvasm.expected.ir.fxc.hlsl b/test/tint/unittest/reader/spirv/SpvParserCFGTest_EmitBody_BranchConditional_SwitchBreak_SwitchBreak_LastInCase.spvasm.expected.ir.fxc.hlsl
deleted file mode 100644
index 27c824a..0000000
--- a/test/tint/unittest/reader/spirv/SpvParserCFGTest_EmitBody_BranchConditional_SwitchBreak_SwitchBreak_LastInCase.spvasm.expected.ir.fxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:198 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Switch
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/unittest/reader/spirv/SpvParserCFGTest_EmitBody_BranchConditional_SwitchBreak_SwitchBreak_NotLastInCase.spvasm.expected.ir.dxc.hlsl b/test/tint/unittest/reader/spirv/SpvParserCFGTest_EmitBody_BranchConditional_SwitchBreak_SwitchBreak_NotLastInCase.spvasm.expected.ir.dxc.hlsl
deleted file mode 100644
index 27c824a..0000000
--- a/test/tint/unittest/reader/spirv/SpvParserCFGTest_EmitBody_BranchConditional_SwitchBreak_SwitchBreak_NotLastInCase.spvasm.expected.ir.dxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:198 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Switch
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/unittest/reader/spirv/SpvParserCFGTest_EmitBody_BranchConditional_SwitchBreak_SwitchBreak_NotLastInCase.spvasm.expected.ir.fxc.hlsl b/test/tint/unittest/reader/spirv/SpvParserCFGTest_EmitBody_BranchConditional_SwitchBreak_SwitchBreak_NotLastInCase.spvasm.expected.ir.fxc.hlsl
deleted file mode 100644
index 27c824a..0000000
--- a/test/tint/unittest/reader/spirv/SpvParserCFGTest_EmitBody_BranchConditional_SwitchBreak_SwitchBreak_NotLastInCase.spvasm.expected.ir.fxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:198 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Switch
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/unittest/reader/spirv/SpvParserCFGTest_EmitBody_Branch_Forward.spvasm.expected.ir.dxc.hlsl b/test/tint/unittest/reader/spirv/SpvParserCFGTest_EmitBody_Branch_Forward.spvasm.expected.ir.dxc.hlsl
deleted file mode 100644
index cd1085c..0000000
--- a/test/tint/unittest/reader/spirv/SpvParserCFGTest_EmitBody_Branch_Forward.spvasm.expected.ir.dxc.hlsl
+++ /dev/null
@@ -1,19 +0,0 @@
-SKIP: FAILED
-
-void main_1() {
-  var_1 = 1u;
-  var_1 = 2u;
-}
-
-void main() {
-  main_1();
-}
-
-DXC validation failure:
-hlsl.hlsl:2:3: error: use of undeclared identifier 'var_1'
-  var_1 = 1u;
-  ^
-hlsl.hlsl:3:3: error: use of undeclared identifier 'var_1'
-  var_1 = 2u;
-  ^
-
diff --git a/test/tint/unittest/reader/spirv/SpvParserCFGTest_EmitBody_Branch_Forward.spvasm.expected.ir.fxc.hlsl b/test/tint/unittest/reader/spirv/SpvParserCFGTest_EmitBody_Branch_Forward.spvasm.expected.ir.fxc.hlsl
deleted file mode 100644
index ecb4fd3..0000000
--- a/test/tint/unittest/reader/spirv/SpvParserCFGTest_EmitBody_Branch_Forward.spvasm.expected.ir.fxc.hlsl
+++ /dev/null
@@ -1,11 +0,0 @@
-SKIP: FAILED
-
-void main_1() {
-  var_1 = 1u;
-  var_1 = 2u;
-}
-
-void main() {
-  main_1();
-}
-
diff --git a/test/tint/unittest/reader/spirv/SpvParserCFGTest_EmitBody_Branch_IfBreak_FromElse.spvasm.expected.ir.dxc.hlsl b/test/tint/unittest/reader/spirv/SpvParserCFGTest_EmitBody_Branch_IfBreak_FromElse.spvasm.expected.ir.dxc.hlsl
deleted file mode 100644
index bdeab23..0000000
--- a/test/tint/unittest/reader/spirv/SpvParserCFGTest_EmitBody_Branch_IfBreak_FromElse.spvasm.expected.ir.dxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:198 internal compiler error: Switch() matched no cases. Type: tint::core::ir::If
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix 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/SpvParserCFGTest_EmitBody_Branch_IfBreak_FromElse.spvasm.expected.ir.fxc.hlsl b/test/tint/unittest/reader/spirv/SpvParserCFGTest_EmitBody_Branch_IfBreak_FromElse.spvasm.expected.ir.fxc.hlsl
deleted file mode 100644
index bdeab23..0000000
--- a/test/tint/unittest/reader/spirv/SpvParserCFGTest_EmitBody_Branch_IfBreak_FromElse.spvasm.expected.ir.fxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:198 internal compiler error: Switch() matched no cases. Type: tint::core::ir::If
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix 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/SpvParserCFGTest_EmitBody_Branch_IfBreak_FromThen.spvasm.expected.ir.dxc.hlsl b/test/tint/unittest/reader/spirv/SpvParserCFGTest_EmitBody_Branch_IfBreak_FromThen.spvasm.expected.ir.dxc.hlsl
deleted file mode 100644
index bdeab23..0000000
--- a/test/tint/unittest/reader/spirv/SpvParserCFGTest_EmitBody_Branch_IfBreak_FromThen.spvasm.expected.ir.dxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:198 internal compiler error: Switch() matched no cases. Type: tint::core::ir::If
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix 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/SpvParserCFGTest_EmitBody_Branch_IfBreak_FromThen.spvasm.expected.ir.fxc.hlsl b/test/tint/unittest/reader/spirv/SpvParserCFGTest_EmitBody_Branch_IfBreak_FromThen.spvasm.expected.ir.fxc.hlsl
deleted file mode 100644
index bdeab23..0000000
--- a/test/tint/unittest/reader/spirv/SpvParserCFGTest_EmitBody_Branch_IfBreak_FromThen.spvasm.expected.ir.fxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:198 internal compiler error: Switch() matched no cases. Type: tint::core::ir::If
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix 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/SpvParserCFGTest_EmitBody_Branch_LoopBreak_MultiBlockLoop_FromBody.spvasm.expected.ir.dxc.hlsl b/test/tint/unittest/reader/spirv/SpvParserCFGTest_EmitBody_Branch_LoopBreak_MultiBlockLoop_FromBody.spvasm.expected.ir.dxc.hlsl
deleted file mode 100644
index adbb0c1..0000000
--- a/test/tint/unittest/reader/spirv/SpvParserCFGTest_EmitBody_Branch_LoopBreak_MultiBlockLoop_FromBody.spvasm.expected.ir.dxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:198 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Loop
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/unittest/reader/spirv/SpvParserCFGTest_EmitBody_Branch_LoopBreak_MultiBlockLoop_FromBody.spvasm.expected.ir.fxc.hlsl b/test/tint/unittest/reader/spirv/SpvParserCFGTest_EmitBody_Branch_LoopBreak_MultiBlockLoop_FromBody.spvasm.expected.ir.fxc.hlsl
deleted file mode 100644
index adbb0c1..0000000
--- a/test/tint/unittest/reader/spirv/SpvParserCFGTest_EmitBody_Branch_LoopBreak_MultiBlockLoop_FromBody.spvasm.expected.ir.fxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:198 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Loop
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/unittest/reader/spirv/SpvParserCFGTest_EmitBody_Branch_LoopBreak_MultiBlockLoop_FromContinueConstructEnd_Conditional.spvasm.expected.ir.dxc.hlsl b/test/tint/unittest/reader/spirv/SpvParserCFGTest_EmitBody_Branch_LoopBreak_MultiBlockLoop_FromContinueConstructEnd_Conditional.spvasm.expected.ir.dxc.hlsl
deleted file mode 100644
index adbb0c1..0000000
--- a/test/tint/unittest/reader/spirv/SpvParserCFGTest_EmitBody_Branch_LoopBreak_MultiBlockLoop_FromContinueConstructEnd_Conditional.spvasm.expected.ir.dxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:198 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Loop
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/unittest/reader/spirv/SpvParserCFGTest_EmitBody_Branch_LoopBreak_MultiBlockLoop_FromContinueConstructEnd_Conditional.spvasm.expected.ir.fxc.hlsl b/test/tint/unittest/reader/spirv/SpvParserCFGTest_EmitBody_Branch_LoopBreak_MultiBlockLoop_FromContinueConstructEnd_Conditional.spvasm.expected.ir.fxc.hlsl
deleted file mode 100644
index adbb0c1..0000000
--- a/test/tint/unittest/reader/spirv/SpvParserCFGTest_EmitBody_Branch_LoopBreak_MultiBlockLoop_FromContinueConstructEnd_Conditional.spvasm.expected.ir.fxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:198 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Loop
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/unittest/reader/spirv/SpvParserCFGTest_EmitBody_Branch_SwitchBreak_LastInCase.spvasm.expected.ir.dxc.hlsl b/test/tint/unittest/reader/spirv/SpvParserCFGTest_EmitBody_Branch_SwitchBreak_LastInCase.spvasm.expected.ir.dxc.hlsl
deleted file mode 100644
index 27c824a..0000000
--- a/test/tint/unittest/reader/spirv/SpvParserCFGTest_EmitBody_Branch_SwitchBreak_LastInCase.spvasm.expected.ir.dxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:198 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Switch
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/unittest/reader/spirv/SpvParserCFGTest_EmitBody_Branch_SwitchBreak_LastInCase.spvasm.expected.ir.fxc.hlsl b/test/tint/unittest/reader/spirv/SpvParserCFGTest_EmitBody_Branch_SwitchBreak_LastInCase.spvasm.expected.ir.fxc.hlsl
deleted file mode 100644
index 27c824a..0000000
--- a/test/tint/unittest/reader/spirv/SpvParserCFGTest_EmitBody_Branch_SwitchBreak_LastInCase.spvasm.expected.ir.fxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:198 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Switch
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/unittest/reader/spirv/SpvParserCFGTest_EmitBody_Branch_SwitchBreak_NotLastInCase.spvasm.expected.ir.dxc.hlsl b/test/tint/unittest/reader/spirv/SpvParserCFGTest_EmitBody_Branch_SwitchBreak_NotLastInCase.spvasm.expected.ir.dxc.hlsl
deleted file mode 100644
index 27c824a..0000000
--- a/test/tint/unittest/reader/spirv/SpvParserCFGTest_EmitBody_Branch_SwitchBreak_NotLastInCase.spvasm.expected.ir.dxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:198 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Switch
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/unittest/reader/spirv/SpvParserCFGTest_EmitBody_Branch_SwitchBreak_NotLastInCase.spvasm.expected.ir.fxc.hlsl b/test/tint/unittest/reader/spirv/SpvParserCFGTest_EmitBody_Branch_SwitchBreak_NotLastInCase.spvasm.expected.ir.fxc.hlsl
deleted file mode 100644
index 27c824a..0000000
--- a/test/tint/unittest/reader/spirv/SpvParserCFGTest_EmitBody_Branch_SwitchBreak_NotLastInCase.spvasm.expected.ir.fxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:198 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Switch
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/unittest/reader/spirv/SpvParserCFGTest_EmitBody_FalseBranch_LoopBreak.spvasm.expected.ir.dxc.hlsl b/test/tint/unittest/reader/spirv/SpvParserCFGTest_EmitBody_FalseBranch_LoopBreak.spvasm.expected.ir.dxc.hlsl
deleted file mode 100644
index adbb0c1..0000000
--- a/test/tint/unittest/reader/spirv/SpvParserCFGTest_EmitBody_FalseBranch_LoopBreak.spvasm.expected.ir.dxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:198 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Loop
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/unittest/reader/spirv/SpvParserCFGTest_EmitBody_FalseBranch_LoopBreak.spvasm.expected.ir.fxc.hlsl b/test/tint/unittest/reader/spirv/SpvParserCFGTest_EmitBody_FalseBranch_LoopBreak.spvasm.expected.ir.fxc.hlsl
deleted file mode 100644
index adbb0c1..0000000
--- a/test/tint/unittest/reader/spirv/SpvParserCFGTest_EmitBody_FalseBranch_LoopBreak.spvasm.expected.ir.fxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:198 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Loop
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/unittest/reader/spirv/SpvParserCFGTest_EmitBody_FalseBranch_SwitchBreak.spvasm.expected.ir.dxc.hlsl b/test/tint/unittest/reader/spirv/SpvParserCFGTest_EmitBody_FalseBranch_SwitchBreak.spvasm.expected.ir.dxc.hlsl
deleted file mode 100644
index 27c824a..0000000
--- a/test/tint/unittest/reader/spirv/SpvParserCFGTest_EmitBody_FalseBranch_SwitchBreak.spvasm.expected.ir.dxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:198 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Switch
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/unittest/reader/spirv/SpvParserCFGTest_EmitBody_FalseBranch_SwitchBreak.spvasm.expected.ir.fxc.hlsl b/test/tint/unittest/reader/spirv/SpvParserCFGTest_EmitBody_FalseBranch_SwitchBreak.spvasm.expected.ir.fxc.hlsl
deleted file mode 100644
index 27c824a..0000000
--- a/test/tint/unittest/reader/spirv/SpvParserCFGTest_EmitBody_FalseBranch_SwitchBreak.spvasm.expected.ir.fxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:198 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Switch
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/unittest/reader/spirv/SpvParserCFGTest_EmitBody_IfBreak_FromElse_ForwardWithinElse.spvasm.expected.ir.dxc.hlsl b/test/tint/unittest/reader/spirv/SpvParserCFGTest_EmitBody_IfBreak_FromElse_ForwardWithinElse.spvasm.expected.ir.dxc.hlsl
deleted file mode 100644
index bdeab23..0000000
--- a/test/tint/unittest/reader/spirv/SpvParserCFGTest_EmitBody_IfBreak_FromElse_ForwardWithinElse.spvasm.expected.ir.dxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:198 internal compiler error: Switch() matched no cases. Type: tint::core::ir::If
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix 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/SpvParserCFGTest_EmitBody_IfBreak_FromElse_ForwardWithinElse.spvasm.expected.ir.fxc.hlsl b/test/tint/unittest/reader/spirv/SpvParserCFGTest_EmitBody_IfBreak_FromElse_ForwardWithinElse.spvasm.expected.ir.fxc.hlsl
deleted file mode 100644
index bdeab23..0000000
--- a/test/tint/unittest/reader/spirv/SpvParserCFGTest_EmitBody_IfBreak_FromElse_ForwardWithinElse.spvasm.expected.ir.fxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:198 internal compiler error: Switch() matched no cases. Type: tint::core::ir::If
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix 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/SpvParserCFGTest_EmitBody_IfBreak_FromThenWithForward_FromElseWithForward_AlsoPremerge.spvasm.expected.ir.dxc.hlsl b/test/tint/unittest/reader/spirv/SpvParserCFGTest_EmitBody_IfBreak_FromThenWithForward_FromElseWithForward_AlsoPremerge.spvasm.expected.ir.dxc.hlsl
deleted file mode 100644
index bdeab23..0000000
--- a/test/tint/unittest/reader/spirv/SpvParserCFGTest_EmitBody_IfBreak_FromThenWithForward_FromElseWithForward_AlsoPremerge.spvasm.expected.ir.dxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:198 internal compiler error: Switch() matched no cases. Type: tint::core::ir::If
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix 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/SpvParserCFGTest_EmitBody_IfBreak_FromThenWithForward_FromElseWithForward_AlsoPremerge.spvasm.expected.ir.fxc.hlsl b/test/tint/unittest/reader/spirv/SpvParserCFGTest_EmitBody_IfBreak_FromThenWithForward_FromElseWithForward_AlsoPremerge.spvasm.expected.ir.fxc.hlsl
deleted file mode 100644
index bdeab23..0000000
--- a/test/tint/unittest/reader/spirv/SpvParserCFGTest_EmitBody_IfBreak_FromThenWithForward_FromElseWithForward_AlsoPremerge.spvasm.expected.ir.fxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:198 internal compiler error: Switch() matched no cases. Type: tint::core::ir::If
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix 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/SpvParserCFGTest_EmitBody_IfBreak_FromThen_ForwardWithinThen.spvasm.expected.ir.dxc.hlsl b/test/tint/unittest/reader/spirv/SpvParserCFGTest_EmitBody_IfBreak_FromThen_ForwardWithinThen.spvasm.expected.ir.dxc.hlsl
deleted file mode 100644
index bdeab23..0000000
--- a/test/tint/unittest/reader/spirv/SpvParserCFGTest_EmitBody_IfBreak_FromThen_ForwardWithinThen.spvasm.expected.ir.dxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:198 internal compiler error: Switch() matched no cases. Type: tint::core::ir::If
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix 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/SpvParserCFGTest_EmitBody_IfBreak_FromThen_ForwardWithinThen.spvasm.expected.ir.fxc.hlsl b/test/tint/unittest/reader/spirv/SpvParserCFGTest_EmitBody_IfBreak_FromThen_ForwardWithinThen.spvasm.expected.ir.fxc.hlsl
deleted file mode 100644
index bdeab23..0000000
--- a/test/tint/unittest/reader/spirv/SpvParserCFGTest_EmitBody_IfBreak_FromThen_ForwardWithinThen.spvasm.expected.ir.fxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:198 internal compiler error: Switch() matched no cases. Type: tint::core::ir::If
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix 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/SpvParserCFGTest_EmitBody_IfSelection_TrueBranch_LoopBreak.spvasm.expected.ir.dxc.hlsl b/test/tint/unittest/reader/spirv/SpvParserCFGTest_EmitBody_IfSelection_TrueBranch_LoopBreak.spvasm.expected.ir.dxc.hlsl
index adbb0c1..31b7623 100644
--- a/test/tint/unittest/reader/spirv/SpvParserCFGTest_EmitBody_IfSelection_TrueBranch_LoopBreak.spvasm.expected.ir.dxc.hlsl
+++ b/test/tint/unittest/reader/spirv/SpvParserCFGTest_EmitBody_IfSelection_TrueBranch_LoopBreak.spvasm.expected.ir.dxc.hlsl
@@ -1,9 +1,27 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:198 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Loop
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+
+static uint var_1 = 0u;
+void main_1() {
+  {
+    while(true) {
+      if (false) {
+        break;
+      }
+      {
+      }
+      continue;
+    }
+  }
+}
+
+void main() {
+  main_1();
+}
+
+DXC validation failure:
+error: validation errors
+hlsl.hlsl:16: error: Loop must have break.
+Validation failed.
+
+
diff --git a/test/tint/unittest/reader/spirv/SpvParserCFGTest_EmitBody_IfSelection_TrueBranch_LoopBreak.spvasm.expected.ir.fxc.hlsl b/test/tint/unittest/reader/spirv/SpvParserCFGTest_EmitBody_IfSelection_TrueBranch_LoopBreak.spvasm.expected.ir.fxc.hlsl
deleted file mode 100644
index adbb0c1..0000000
--- a/test/tint/unittest/reader/spirv/SpvParserCFGTest_EmitBody_IfSelection_TrueBranch_LoopBreak.spvasm.expected.ir.fxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:198 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Loop
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/unittest/reader/spirv/SpvParserCFGTest_EmitBody_If_Else_Premerge.spvasm.expected.ir.dxc.hlsl b/test/tint/unittest/reader/spirv/SpvParserCFGTest_EmitBody_If_Else_Premerge.spvasm.expected.ir.dxc.hlsl
deleted file mode 100644
index bdeab23..0000000
--- a/test/tint/unittest/reader/spirv/SpvParserCFGTest_EmitBody_If_Else_Premerge.spvasm.expected.ir.dxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:198 internal compiler error: Switch() matched no cases. Type: tint::core::ir::If
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix 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/SpvParserCFGTest_EmitBody_If_Else_Premerge.spvasm.expected.ir.fxc.hlsl b/test/tint/unittest/reader/spirv/SpvParserCFGTest_EmitBody_If_Else_Premerge.spvasm.expected.ir.fxc.hlsl
deleted file mode 100644
index bdeab23..0000000
--- a/test/tint/unittest/reader/spirv/SpvParserCFGTest_EmitBody_If_Else_Premerge.spvasm.expected.ir.fxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:198 internal compiler error: Switch() matched no cases. Type: tint::core::ir::If
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix 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/SpvParserCFGTest_EmitBody_If_Empty.spvasm.expected.ir.dxc.hlsl b/test/tint/unittest/reader/spirv/SpvParserCFGTest_EmitBody_If_Empty.spvasm.expected.ir.dxc.hlsl
deleted file mode 100644
index bdeab23..0000000
--- a/test/tint/unittest/reader/spirv/SpvParserCFGTest_EmitBody_If_Empty.spvasm.expected.ir.dxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:198 internal compiler error: Switch() matched no cases. Type: tint::core::ir::If
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix 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/SpvParserCFGTest_EmitBody_If_Empty.spvasm.expected.ir.fxc.hlsl b/test/tint/unittest/reader/spirv/SpvParserCFGTest_EmitBody_If_Empty.spvasm.expected.ir.fxc.hlsl
deleted file mode 100644
index bdeab23..0000000
--- a/test/tint/unittest/reader/spirv/SpvParserCFGTest_EmitBody_If_Empty.spvasm.expected.ir.fxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:198 internal compiler error: Switch() matched no cases. Type: tint::core::ir::If
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix 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/SpvParserCFGTest_EmitBody_If_Nest_If.spvasm.expected.ir.dxc.hlsl b/test/tint/unittest/reader/spirv/SpvParserCFGTest_EmitBody_If_Nest_If.spvasm.expected.ir.dxc.hlsl
deleted file mode 100644
index bdeab23..0000000
--- a/test/tint/unittest/reader/spirv/SpvParserCFGTest_EmitBody_If_Nest_If.spvasm.expected.ir.dxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:198 internal compiler error: Switch() matched no cases. Type: tint::core::ir::If
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix 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/SpvParserCFGTest_EmitBody_If_Nest_If.spvasm.expected.ir.fxc.hlsl b/test/tint/unittest/reader/spirv/SpvParserCFGTest_EmitBody_If_Nest_If.spvasm.expected.ir.fxc.hlsl
deleted file mode 100644
index bdeab23..0000000
--- a/test/tint/unittest/reader/spirv/SpvParserCFGTest_EmitBody_If_Nest_If.spvasm.expected.ir.fxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:198 internal compiler error: Switch() matched no cases. Type: tint::core::ir::If
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix 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/SpvParserCFGTest_EmitBody_If_NoThen_Else.spvasm.expected.ir.dxc.hlsl b/test/tint/unittest/reader/spirv/SpvParserCFGTest_EmitBody_If_NoThen_Else.spvasm.expected.ir.dxc.hlsl
deleted file mode 100644
index bdeab23..0000000
--- a/test/tint/unittest/reader/spirv/SpvParserCFGTest_EmitBody_If_NoThen_Else.spvasm.expected.ir.dxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:198 internal compiler error: Switch() matched no cases. Type: tint::core::ir::If
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix 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/SpvParserCFGTest_EmitBody_If_NoThen_Else.spvasm.expected.ir.fxc.hlsl b/test/tint/unittest/reader/spirv/SpvParserCFGTest_EmitBody_If_NoThen_Else.spvasm.expected.ir.fxc.hlsl
deleted file mode 100644
index bdeab23..0000000
--- a/test/tint/unittest/reader/spirv/SpvParserCFGTest_EmitBody_If_NoThen_Else.spvasm.expected.ir.fxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:198 internal compiler error: Switch() matched no cases. Type: tint::core::ir::If
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix 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/SpvParserCFGTest_EmitBody_If_Then_Else.spvasm.expected.ir.dxc.hlsl b/test/tint/unittest/reader/spirv/SpvParserCFGTest_EmitBody_If_Then_Else.spvasm.expected.ir.dxc.hlsl
deleted file mode 100644
index bdeab23..0000000
--- a/test/tint/unittest/reader/spirv/SpvParserCFGTest_EmitBody_If_Then_Else.spvasm.expected.ir.dxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:198 internal compiler error: Switch() matched no cases. Type: tint::core::ir::If
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix 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/SpvParserCFGTest_EmitBody_If_Then_Else.spvasm.expected.ir.fxc.hlsl b/test/tint/unittest/reader/spirv/SpvParserCFGTest_EmitBody_If_Then_Else.spvasm.expected.ir.fxc.hlsl
deleted file mode 100644
index bdeab23..0000000
--- a/test/tint/unittest/reader/spirv/SpvParserCFGTest_EmitBody_If_Then_Else.spvasm.expected.ir.fxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:198 internal compiler error: Switch() matched no cases. Type: tint::core::ir::If
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix 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/SpvParserCFGTest_EmitBody_If_Then_Else_Premerge.spvasm.expected.ir.dxc.hlsl b/test/tint/unittest/reader/spirv/SpvParserCFGTest_EmitBody_If_Then_Else_Premerge.spvasm.expected.ir.dxc.hlsl
deleted file mode 100644
index bdeab23..0000000
--- a/test/tint/unittest/reader/spirv/SpvParserCFGTest_EmitBody_If_Then_Else_Premerge.spvasm.expected.ir.dxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:198 internal compiler error: Switch() matched no cases. Type: tint::core::ir::If
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix 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/SpvParserCFGTest_EmitBody_If_Then_Else_Premerge.spvasm.expected.ir.fxc.hlsl b/test/tint/unittest/reader/spirv/SpvParserCFGTest_EmitBody_If_Then_Else_Premerge.spvasm.expected.ir.fxc.hlsl
deleted file mode 100644
index bdeab23..0000000
--- a/test/tint/unittest/reader/spirv/SpvParserCFGTest_EmitBody_If_Then_Else_Premerge.spvasm.expected.ir.fxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:198 internal compiler error: Switch() matched no cases. Type: tint::core::ir::If
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix 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/SpvParserCFGTest_EmitBody_If_Then_NoElse.spvasm.expected.ir.dxc.hlsl b/test/tint/unittest/reader/spirv/SpvParserCFGTest_EmitBody_If_Then_NoElse.spvasm.expected.ir.dxc.hlsl
deleted file mode 100644
index bdeab23..0000000
--- a/test/tint/unittest/reader/spirv/SpvParserCFGTest_EmitBody_If_Then_NoElse.spvasm.expected.ir.dxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:198 internal compiler error: Switch() matched no cases. Type: tint::core::ir::If
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix 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/SpvParserCFGTest_EmitBody_If_Then_NoElse.spvasm.expected.ir.fxc.hlsl b/test/tint/unittest/reader/spirv/SpvParserCFGTest_EmitBody_If_Then_NoElse.spvasm.expected.ir.fxc.hlsl
deleted file mode 100644
index bdeab23..0000000
--- a/test/tint/unittest/reader/spirv/SpvParserCFGTest_EmitBody_If_Then_NoElse.spvasm.expected.ir.fxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:198 internal compiler error: Switch() matched no cases. Type: tint::core::ir::If
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix 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/SpvParserCFGTest_EmitBody_If_Then_Premerge.spvasm.expected.ir.dxc.hlsl b/test/tint/unittest/reader/spirv/SpvParserCFGTest_EmitBody_If_Then_Premerge.spvasm.expected.ir.dxc.hlsl
deleted file mode 100644
index bdeab23..0000000
--- a/test/tint/unittest/reader/spirv/SpvParserCFGTest_EmitBody_If_Then_Premerge.spvasm.expected.ir.dxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:198 internal compiler error: Switch() matched no cases. Type: tint::core::ir::If
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix 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/SpvParserCFGTest_EmitBody_If_Then_Premerge.spvasm.expected.ir.fxc.hlsl b/test/tint/unittest/reader/spirv/SpvParserCFGTest_EmitBody_If_Then_Premerge.spvasm.expected.ir.fxc.hlsl
deleted file mode 100644
index bdeab23..0000000
--- a/test/tint/unittest/reader/spirv/SpvParserCFGTest_EmitBody_If_Then_Premerge.spvasm.expected.ir.fxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:198 internal compiler error: Switch() matched no cases. Type: tint::core::ir::If
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix 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/SpvParserCFGTest_EmitBody_Kill_InsideIf.spvasm.expected.ir.dxc.hlsl b/test/tint/unittest/reader/spirv/SpvParserCFGTest_EmitBody_Kill_InsideIf.spvasm.expected.ir.dxc.hlsl
deleted file mode 100644
index bdeab23..0000000
--- a/test/tint/unittest/reader/spirv/SpvParserCFGTest_EmitBody_Kill_InsideIf.spvasm.expected.ir.dxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:198 internal compiler error: Switch() matched no cases. Type: tint::core::ir::If
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix 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/SpvParserCFGTest_EmitBody_Kill_InsideIf.spvasm.expected.ir.fxc.hlsl b/test/tint/unittest/reader/spirv/SpvParserCFGTest_EmitBody_Kill_InsideIf.spvasm.expected.ir.fxc.hlsl
deleted file mode 100644
index bdeab23..0000000
--- a/test/tint/unittest/reader/spirv/SpvParserCFGTest_EmitBody_Kill_InsideIf.spvasm.expected.ir.fxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:198 internal compiler error: Switch() matched no cases. Type: tint::core::ir::If
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix 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/SpvParserCFGTest_EmitBody_Kill_TopLevel.spvasm.expected.ir.dxc.hlsl b/test/tint/unittest/reader/spirv/SpvParserCFGTest_EmitBody_Kill_TopLevel.spvasm.expected.ir.dxc.hlsl
deleted file mode 100644
index 0da5df3..0000000
--- a/test/tint/unittest/reader/spirv/SpvParserCFGTest_EmitBody_Kill_TopLevel.spvasm.expected.ir.dxc.hlsl
+++ /dev/null
@@ -1,3 +0,0 @@
-SKIP: FAILED
-
-signal: segmentation fault
\ No newline at end of file
diff --git a/test/tint/unittest/reader/spirv/SpvParserCFGTest_EmitBody_Kill_TopLevel.spvasm.expected.ir.fxc.hlsl b/test/tint/unittest/reader/spirv/SpvParserCFGTest_EmitBody_Kill_TopLevel.spvasm.expected.ir.fxc.hlsl
deleted file mode 100644
index 0da5df3..0000000
--- a/test/tint/unittest/reader/spirv/SpvParserCFGTest_EmitBody_Kill_TopLevel.spvasm.expected.ir.fxc.hlsl
+++ /dev/null
@@ -1,3 +0,0 @@
-SKIP: FAILED
-
-signal: segmentation fault
\ No newline at end of file
diff --git a/test/tint/unittest/reader/spirv/SpvParserCFGTest_EmitBody_Loop_BodyAlwaysBreaks.spvasm.expected.ir.dxc.hlsl b/test/tint/unittest/reader/spirv/SpvParserCFGTest_EmitBody_Loop_BodyAlwaysBreaks.spvasm.expected.ir.dxc.hlsl
deleted file mode 100644
index adbb0c1..0000000
--- a/test/tint/unittest/reader/spirv/SpvParserCFGTest_EmitBody_Loop_BodyAlwaysBreaks.spvasm.expected.ir.dxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:198 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Loop
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/unittest/reader/spirv/SpvParserCFGTest_EmitBody_Loop_BodyAlwaysBreaks.spvasm.expected.ir.fxc.hlsl b/test/tint/unittest/reader/spirv/SpvParserCFGTest_EmitBody_Loop_BodyAlwaysBreaks.spvasm.expected.ir.fxc.hlsl
deleted file mode 100644
index adbb0c1..0000000
--- a/test/tint/unittest/reader/spirv/SpvParserCFGTest_EmitBody_Loop_BodyAlwaysBreaks.spvasm.expected.ir.fxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:198 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Loop
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/unittest/reader/spirv/SpvParserCFGTest_EmitBody_Loop_BodyConditionallyBreaks_FromFalse.spvasm.expected.ir.dxc.hlsl b/test/tint/unittest/reader/spirv/SpvParserCFGTest_EmitBody_Loop_BodyConditionallyBreaks_FromFalse.spvasm.expected.ir.dxc.hlsl
deleted file mode 100644
index adbb0c1..0000000
--- a/test/tint/unittest/reader/spirv/SpvParserCFGTest_EmitBody_Loop_BodyConditionallyBreaks_FromFalse.spvasm.expected.ir.dxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:198 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Loop
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/unittest/reader/spirv/SpvParserCFGTest_EmitBody_Loop_BodyConditionallyBreaks_FromFalse.spvasm.expected.ir.fxc.hlsl b/test/tint/unittest/reader/spirv/SpvParserCFGTest_EmitBody_Loop_BodyConditionallyBreaks_FromFalse.spvasm.expected.ir.fxc.hlsl
deleted file mode 100644
index adbb0c1..0000000
--- a/test/tint/unittest/reader/spirv/SpvParserCFGTest_EmitBody_Loop_BodyConditionallyBreaks_FromFalse.spvasm.expected.ir.fxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:198 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Loop
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/unittest/reader/spirv/SpvParserCFGTest_EmitBody_Loop_BodyConditionallyBreaks_FromFalse_Early.spvasm.expected.ir.dxc.hlsl b/test/tint/unittest/reader/spirv/SpvParserCFGTest_EmitBody_Loop_BodyConditionallyBreaks_FromFalse_Early.spvasm.expected.ir.dxc.hlsl
deleted file mode 100644
index adbb0c1..0000000
--- a/test/tint/unittest/reader/spirv/SpvParserCFGTest_EmitBody_Loop_BodyConditionallyBreaks_FromFalse_Early.spvasm.expected.ir.dxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:198 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Loop
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/unittest/reader/spirv/SpvParserCFGTest_EmitBody_Loop_BodyConditionallyBreaks_FromFalse_Early.spvasm.expected.ir.fxc.hlsl b/test/tint/unittest/reader/spirv/SpvParserCFGTest_EmitBody_Loop_BodyConditionallyBreaks_FromFalse_Early.spvasm.expected.ir.fxc.hlsl
deleted file mode 100644
index adbb0c1..0000000
--- a/test/tint/unittest/reader/spirv/SpvParserCFGTest_EmitBody_Loop_BodyConditionallyBreaks_FromFalse_Early.spvasm.expected.ir.fxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:198 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Loop
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/unittest/reader/spirv/SpvParserCFGTest_EmitBody_Loop_BodyConditionallyBreaks_FromTrue.spvasm.expected.ir.dxc.hlsl b/test/tint/unittest/reader/spirv/SpvParserCFGTest_EmitBody_Loop_BodyConditionallyBreaks_FromTrue.spvasm.expected.ir.dxc.hlsl
index adbb0c1..4d92a5f 100644
--- a/test/tint/unittest/reader/spirv/SpvParserCFGTest_EmitBody_Loop_BodyConditionallyBreaks_FromTrue.spvasm.expected.ir.dxc.hlsl
+++ b/test/tint/unittest/reader/spirv/SpvParserCFGTest_EmitBody_Loop_BodyConditionallyBreaks_FromTrue.spvasm.expected.ir.dxc.hlsl
@@ -1,9 +1,29 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:198 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Loop
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+
+static uint var_1 = 0u;
+void main_1() {
+  {
+    while(true) {
+      var_1 = 1u;
+      if (false) {
+        break;
+      }
+      {
+        var_1 = 2u;
+      }
+      continue;
+    }
+  }
+}
+
+void main() {
+  main_1();
+}
+
+DXC validation failure:
+error: validation errors
+hlsl.hlsl:18: error: Loop must have break.
+Validation failed.
+
+
diff --git a/test/tint/unittest/reader/spirv/SpvParserCFGTest_EmitBody_Loop_BodyConditionallyBreaks_FromTrue.spvasm.expected.ir.fxc.hlsl b/test/tint/unittest/reader/spirv/SpvParserCFGTest_EmitBody_Loop_BodyConditionallyBreaks_FromTrue.spvasm.expected.ir.fxc.hlsl
index adbb0c1..dc51396 100644
--- a/test/tint/unittest/reader/spirv/SpvParserCFGTest_EmitBody_Loop_BodyConditionallyBreaks_FromTrue.spvasm.expected.ir.fxc.hlsl
+++ b/test/tint/unittest/reader/spirv/SpvParserCFGTest_EmitBody_Loop_BodyConditionallyBreaks_FromTrue.spvasm.expected.ir.fxc.hlsl
@@ -1,9 +1,26 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:198 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Loop
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+
+static uint var_1 = 0u;
+void main_1() {
+  {
+    while(true) {
+      var_1 = 1u;
+      if (false) {
+        break;
+      }
+      {
+        var_1 = 2u;
+      }
+      continue;
+    }
+  }
+}
+
+void main() {
+  main_1();
+}
+
+FXC validation failure:
+c:\src\dawn\Shader@0x000002096FB14620(5,11-14): error X3696: infinite loop detected - loop never exits
+
diff --git a/test/tint/unittest/reader/spirv/SpvParserCFGTest_EmitBody_Loop_BodyConditionallyBreaks_FromTrue_Early.spvasm.expected.ir.dxc.hlsl b/test/tint/unittest/reader/spirv/SpvParserCFGTest_EmitBody_Loop_BodyConditionallyBreaks_FromTrue_Early.spvasm.expected.ir.dxc.hlsl
index adbb0c1..1117015 100644
--- a/test/tint/unittest/reader/spirv/SpvParserCFGTest_EmitBody_Loop_BodyConditionallyBreaks_FromTrue_Early.spvasm.expected.ir.dxc.hlsl
+++ b/test/tint/unittest/reader/spirv/SpvParserCFGTest_EmitBody_Loop_BodyConditionallyBreaks_FromTrue_Early.spvasm.expected.ir.dxc.hlsl
@@ -1,9 +1,30 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:198 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Loop
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+
+static uint var_1 = 0u;
+void main_1() {
+  {
+    while(true) {
+      var_1 = 1u;
+      if (false) {
+        break;
+      }
+      var_1 = 3u;
+      {
+        var_1 = 2u;
+      }
+      continue;
+    }
+  }
+}
+
+void main() {
+  main_1();
+}
+
+DXC validation failure:
+error: validation errors
+hlsl.hlsl:19: error: Loop must have break.
+Validation failed.
+
+
diff --git a/test/tint/unittest/reader/spirv/SpvParserCFGTest_EmitBody_Loop_BodyConditionallyBreaks_FromTrue_Early.spvasm.expected.ir.fxc.hlsl b/test/tint/unittest/reader/spirv/SpvParserCFGTest_EmitBody_Loop_BodyConditionallyBreaks_FromTrue_Early.spvasm.expected.ir.fxc.hlsl
index adbb0c1..c677191 100644
--- a/test/tint/unittest/reader/spirv/SpvParserCFGTest_EmitBody_Loop_BodyConditionallyBreaks_FromTrue_Early.spvasm.expected.ir.fxc.hlsl
+++ b/test/tint/unittest/reader/spirv/SpvParserCFGTest_EmitBody_Loop_BodyConditionallyBreaks_FromTrue_Early.spvasm.expected.ir.fxc.hlsl
@@ -1,9 +1,27 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:198 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Loop
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+
+static uint var_1 = 0u;
+void main_1() {
+  {
+    while(true) {
+      var_1 = 1u;
+      if (false) {
+        break;
+      }
+      var_1 = 3u;
+      {
+        var_1 = 2u;
+      }
+      continue;
+    }
+  }
+}
+
+void main() {
+  main_1();
+}
+
+FXC validation failure:
+c:\src\dawn\Shader@0x000002259BAB0390(5,11-14): error X3696: infinite loop detected - loop never exits
+
diff --git a/test/tint/unittest/reader/spirv/SpvParserCFGTest_EmitBody_Loop_FalseToBody_TrueBreaks.spvasm.expected.ir.dxc.hlsl b/test/tint/unittest/reader/spirv/SpvParserCFGTest_EmitBody_Loop_FalseToBody_TrueBreaks.spvasm.expected.ir.dxc.hlsl
deleted file mode 100644
index adbb0c1..0000000
--- a/test/tint/unittest/reader/spirv/SpvParserCFGTest_EmitBody_Loop_FalseToBody_TrueBreaks.spvasm.expected.ir.dxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:198 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Loop
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/unittest/reader/spirv/SpvParserCFGTest_EmitBody_Loop_FalseToBody_TrueBreaks.spvasm.expected.ir.fxc.hlsl b/test/tint/unittest/reader/spirv/SpvParserCFGTest_EmitBody_Loop_FalseToBody_TrueBreaks.spvasm.expected.ir.fxc.hlsl
deleted file mode 100644
index adbb0c1..0000000
--- a/test/tint/unittest/reader/spirv/SpvParserCFGTest_EmitBody_Loop_FalseToBody_TrueBreaks.spvasm.expected.ir.fxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:198 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Loop
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/unittest/reader/spirv/SpvParserCFGTest_EmitBody_Loop_Never.spvasm.expected.ir.dxc.hlsl b/test/tint/unittest/reader/spirv/SpvParserCFGTest_EmitBody_Loop_Never.spvasm.expected.ir.dxc.hlsl
deleted file mode 100644
index adbb0c1..0000000
--- a/test/tint/unittest/reader/spirv/SpvParserCFGTest_EmitBody_Loop_Never.spvasm.expected.ir.dxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:198 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Loop
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/unittest/reader/spirv/SpvParserCFGTest_EmitBody_Loop_Never.spvasm.expected.ir.fxc.hlsl b/test/tint/unittest/reader/spirv/SpvParserCFGTest_EmitBody_Loop_Never.spvasm.expected.ir.fxc.hlsl
deleted file mode 100644
index adbb0c1..0000000
--- a/test/tint/unittest/reader/spirv/SpvParserCFGTest_EmitBody_Loop_Never.spvasm.expected.ir.fxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:198 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Loop
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/unittest/reader/spirv/SpvParserCFGTest_EmitBody_Loop_SingleBlock_FalseBackedge.spvasm.expected.ir.dxc.hlsl b/test/tint/unittest/reader/spirv/SpvParserCFGTest_EmitBody_Loop_SingleBlock_FalseBackedge.spvasm.expected.ir.dxc.hlsl
index adbb0c1..1fb2d8b 100644
--- a/test/tint/unittest/reader/spirv/SpvParserCFGTest_EmitBody_Loop_SingleBlock_FalseBackedge.spvasm.expected.ir.dxc.hlsl
+++ b/test/tint/unittest/reader/spirv/SpvParserCFGTest_EmitBody_Loop_SingleBlock_FalseBackedge.spvasm.expected.ir.dxc.hlsl
@@ -1,9 +1,30 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:198 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Loop
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+
+static uint var_1 = 0u;
+void main_1() {
+  var_1 = 0u;
+  {
+    while(true) {
+      var_1 = 1u;
+      if (false) {
+        break;
+      }
+      {
+      }
+      continue;
+    }
+  }
+  var_1 = 999u;
+}
+
+void main() {
+  main_1();
+}
+
+DXC validation failure:
+error: validation errors
+hlsl.hlsl:19: error: Loop must have break.
+Validation failed.
+
+
diff --git a/test/tint/unittest/reader/spirv/SpvParserCFGTest_EmitBody_Loop_SingleBlock_FalseBackedge.spvasm.expected.ir.fxc.hlsl b/test/tint/unittest/reader/spirv/SpvParserCFGTest_EmitBody_Loop_SingleBlock_FalseBackedge.spvasm.expected.ir.fxc.hlsl
index adbb0c1..4a0d903 100644
--- a/test/tint/unittest/reader/spirv/SpvParserCFGTest_EmitBody_Loop_SingleBlock_FalseBackedge.spvasm.expected.ir.fxc.hlsl
+++ b/test/tint/unittest/reader/spirv/SpvParserCFGTest_EmitBody_Loop_SingleBlock_FalseBackedge.spvasm.expected.ir.fxc.hlsl
@@ -1,9 +1,27 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:198 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Loop
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+
+static uint var_1 = 0u;
+void main_1() {
+  var_1 = 0u;
+  {
+    while(true) {
+      var_1 = 1u;
+      if (false) {
+        break;
+      }
+      {
+      }
+      continue;
+    }
+  }
+  var_1 = 999u;
+}
+
+void main() {
+  main_1();
+}
+
+FXC validation failure:
+c:\src\dawn\Shader@0x00000237A6430C00(6,11-14): error X3696: infinite loop detected - loop never exits
+
diff --git a/test/tint/unittest/reader/spirv/SpvParserCFGTest_EmitBody_Loop_SingleBlock_TrueBackedge.spvasm.expected.ir.dxc.hlsl b/test/tint/unittest/reader/spirv/SpvParserCFGTest_EmitBody_Loop_SingleBlock_TrueBackedge.spvasm.expected.ir.dxc.hlsl
deleted file mode 100644
index adbb0c1..0000000
--- a/test/tint/unittest/reader/spirv/SpvParserCFGTest_EmitBody_Loop_SingleBlock_TrueBackedge.spvasm.expected.ir.dxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:198 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Loop
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/unittest/reader/spirv/SpvParserCFGTest_EmitBody_Loop_SingleBlock_TrueBackedge.spvasm.expected.ir.fxc.hlsl b/test/tint/unittest/reader/spirv/SpvParserCFGTest_EmitBody_Loop_SingleBlock_TrueBackedge.spvasm.expected.ir.fxc.hlsl
deleted file mode 100644
index adbb0c1..0000000
--- a/test/tint/unittest/reader/spirv/SpvParserCFGTest_EmitBody_Loop_SingleBlock_TrueBackedge.spvasm.expected.ir.fxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:198 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Loop
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/unittest/reader/spirv/SpvParserCFGTest_EmitBody_Loop_TrueToBody_FalseBreaks.spvasm.expected.ir.dxc.hlsl b/test/tint/unittest/reader/spirv/SpvParserCFGTest_EmitBody_Loop_TrueToBody_FalseBreaks.spvasm.expected.ir.dxc.hlsl
deleted file mode 100644
index adbb0c1..0000000
--- a/test/tint/unittest/reader/spirv/SpvParserCFGTest_EmitBody_Loop_TrueToBody_FalseBreaks.spvasm.expected.ir.dxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:198 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Loop
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/unittest/reader/spirv/SpvParserCFGTest_EmitBody_Loop_TrueToBody_FalseBreaks.spvasm.expected.ir.fxc.hlsl b/test/tint/unittest/reader/spirv/SpvParserCFGTest_EmitBody_Loop_TrueToBody_FalseBreaks.spvasm.expected.ir.fxc.hlsl
deleted file mode 100644
index adbb0c1..0000000
--- a/test/tint/unittest/reader/spirv/SpvParserCFGTest_EmitBody_Loop_TrueToBody_FalseBreaks.spvasm.expected.ir.fxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:198 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Loop
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/unittest/reader/spirv/SpvParserCFGTest_EmitBody_ReturnValue_InsideIf.spvasm.expected.ir.dxc.hlsl b/test/tint/unittest/reader/spirv/SpvParserCFGTest_EmitBody_ReturnValue_InsideIf.spvasm.expected.ir.dxc.hlsl
deleted file mode 100644
index bdeab23..0000000
--- a/test/tint/unittest/reader/spirv/SpvParserCFGTest_EmitBody_ReturnValue_InsideIf.spvasm.expected.ir.dxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:198 internal compiler error: Switch() matched no cases. Type: tint::core::ir::If
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix 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/SpvParserCFGTest_EmitBody_ReturnValue_InsideIf.spvasm.expected.ir.fxc.hlsl b/test/tint/unittest/reader/spirv/SpvParserCFGTest_EmitBody_ReturnValue_InsideIf.spvasm.expected.ir.fxc.hlsl
deleted file mode 100644
index bdeab23..0000000
--- a/test/tint/unittest/reader/spirv/SpvParserCFGTest_EmitBody_ReturnValue_InsideIf.spvasm.expected.ir.fxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:198 internal compiler error: Switch() matched no cases. Type: tint::core::ir::If
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix 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/SpvParserCFGTest_EmitBody_ReturnValue_Loop.spvasm.expected.ir.dxc.hlsl b/test/tint/unittest/reader/spirv/SpvParserCFGTest_EmitBody_ReturnValue_Loop.spvasm.expected.ir.dxc.hlsl
deleted file mode 100644
index adbb0c1..0000000
--- a/test/tint/unittest/reader/spirv/SpvParserCFGTest_EmitBody_ReturnValue_Loop.spvasm.expected.ir.dxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:198 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Loop
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/unittest/reader/spirv/SpvParserCFGTest_EmitBody_ReturnValue_Loop.spvasm.expected.ir.fxc.hlsl b/test/tint/unittest/reader/spirv/SpvParserCFGTest_EmitBody_ReturnValue_Loop.spvasm.expected.ir.fxc.hlsl
deleted file mode 100644
index adbb0c1..0000000
--- a/test/tint/unittest/reader/spirv/SpvParserCFGTest_EmitBody_ReturnValue_Loop.spvasm.expected.ir.fxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:198 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Loop
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/unittest/reader/spirv/SpvParserCFGTest_EmitBody_ReturnValue_TopLevel.spvasm.expected.ir.fxc.hlsl b/test/tint/unittest/reader/spirv/SpvParserCFGTest_EmitBody_ReturnValue_TopLevel.spvasm.expected.ir.fxc.hlsl
deleted file mode 100644
index aaec164..0000000
--- a/test/tint/unittest/reader/spirv/SpvParserCFGTest_EmitBody_ReturnValue_TopLevel.spvasm.expected.ir.fxc.hlsl
+++ /dev/null
@@ -1,14 +0,0 @@
-SKIP: FAILED
-
-uint x_200() {
-  return 2u;
-}
-
-void main_1() {
-  uint x_11 = x_200();
-}
-
-void main() {
-  main_1();
-}
-
diff --git a/test/tint/unittest/reader/spirv/SpvParserCFGTest_EmitBody_Return_InsideIf.spvasm.expected.ir.dxc.hlsl b/test/tint/unittest/reader/spirv/SpvParserCFGTest_EmitBody_Return_InsideIf.spvasm.expected.ir.dxc.hlsl
deleted file mode 100644
index bdeab23..0000000
--- a/test/tint/unittest/reader/spirv/SpvParserCFGTest_EmitBody_Return_InsideIf.spvasm.expected.ir.dxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:198 internal compiler error: Switch() matched no cases. Type: tint::core::ir::If
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix 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/SpvParserCFGTest_EmitBody_Return_InsideIf.spvasm.expected.ir.fxc.hlsl b/test/tint/unittest/reader/spirv/SpvParserCFGTest_EmitBody_Return_InsideIf.spvasm.expected.ir.fxc.hlsl
deleted file mode 100644
index bdeab23..0000000
--- a/test/tint/unittest/reader/spirv/SpvParserCFGTest_EmitBody_Return_InsideIf.spvasm.expected.ir.fxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:198 internal compiler error: Switch() matched no cases. Type: tint::core::ir::If
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix 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/SpvParserCFGTest_EmitBody_Return_InsideLoop.spvasm.expected.ir.dxc.hlsl b/test/tint/unittest/reader/spirv/SpvParserCFGTest_EmitBody_Return_InsideLoop.spvasm.expected.ir.dxc.hlsl
deleted file mode 100644
index adbb0c1..0000000
--- a/test/tint/unittest/reader/spirv/SpvParserCFGTest_EmitBody_Return_InsideLoop.spvasm.expected.ir.dxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:198 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Loop
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/unittest/reader/spirv/SpvParserCFGTest_EmitBody_Return_InsideLoop.spvasm.expected.ir.fxc.hlsl b/test/tint/unittest/reader/spirv/SpvParserCFGTest_EmitBody_Return_InsideLoop.spvasm.expected.ir.fxc.hlsl
deleted file mode 100644
index adbb0c1..0000000
--- a/test/tint/unittest/reader/spirv/SpvParserCFGTest_EmitBody_Return_InsideLoop.spvasm.expected.ir.fxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:198 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Loop
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/unittest/reader/spirv/SpvParserCFGTest_EmitBody_Return_TopLevel.spvasm.expected.ir.fxc.hlsl b/test/tint/unittest/reader/spirv/SpvParserCFGTest_EmitBody_Return_TopLevel.spvasm.expected.ir.fxc.hlsl
deleted file mode 100644
index a096ece..0000000
--- a/test/tint/unittest/reader/spirv/SpvParserCFGTest_EmitBody_Return_TopLevel.spvasm.expected.ir.fxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-void main_1() {
-}
-
-void main() {
-  main_1();
-}
-
diff --git a/test/tint/unittest/reader/spirv/SpvParserCFGTest_EmitBody_Switch_Case_SintValue.spvasm.expected.ir.dxc.hlsl b/test/tint/unittest/reader/spirv/SpvParserCFGTest_EmitBody_Switch_Case_SintValue.spvasm.expected.ir.dxc.hlsl
deleted file mode 100644
index 27c824a..0000000
--- a/test/tint/unittest/reader/spirv/SpvParserCFGTest_EmitBody_Switch_Case_SintValue.spvasm.expected.ir.dxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:198 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Switch
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/unittest/reader/spirv/SpvParserCFGTest_EmitBody_Switch_Case_SintValue.spvasm.expected.ir.fxc.hlsl b/test/tint/unittest/reader/spirv/SpvParserCFGTest_EmitBody_Switch_Case_SintValue.spvasm.expected.ir.fxc.hlsl
deleted file mode 100644
index 27c824a..0000000
--- a/test/tint/unittest/reader/spirv/SpvParserCFGTest_EmitBody_Switch_Case_SintValue.spvasm.expected.ir.fxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:198 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Switch
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/unittest/reader/spirv/SpvParserCFGTest_EmitBody_Switch_Case_UintValue.spvasm.expected.ir.dxc.hlsl b/test/tint/unittest/reader/spirv/SpvParserCFGTest_EmitBody_Switch_Case_UintValue.spvasm.expected.ir.dxc.hlsl
deleted file mode 100644
index 27c824a..0000000
--- a/test/tint/unittest/reader/spirv/SpvParserCFGTest_EmitBody_Switch_Case_UintValue.spvasm.expected.ir.dxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:198 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Switch
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/unittest/reader/spirv/SpvParserCFGTest_EmitBody_Switch_Case_UintValue.spvasm.expected.ir.fxc.hlsl b/test/tint/unittest/reader/spirv/SpvParserCFGTest_EmitBody_Switch_Case_UintValue.spvasm.expected.ir.fxc.hlsl
deleted file mode 100644
index 27c824a..0000000
--- a/test/tint/unittest/reader/spirv/SpvParserCFGTest_EmitBody_Switch_Case_UintValue.spvasm.expected.ir.fxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:198 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Switch
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/unittest/reader/spirv/SpvParserCFGTest_EmitBody_Switch_DefaultIsCase_NoDupCases.spvasm.expected.ir.dxc.hlsl b/test/tint/unittest/reader/spirv/SpvParserCFGTest_EmitBody_Switch_DefaultIsCase_NoDupCases.spvasm.expected.ir.dxc.hlsl
deleted file mode 100644
index 27c824a..0000000
--- a/test/tint/unittest/reader/spirv/SpvParserCFGTest_EmitBody_Switch_DefaultIsCase_NoDupCases.spvasm.expected.ir.dxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:198 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Switch
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/unittest/reader/spirv/SpvParserCFGTest_EmitBody_Switch_DefaultIsCase_NoDupCases.spvasm.expected.ir.fxc.hlsl b/test/tint/unittest/reader/spirv/SpvParserCFGTest_EmitBody_Switch_DefaultIsCase_NoDupCases.spvasm.expected.ir.fxc.hlsl
deleted file mode 100644
index 27c824a..0000000
--- a/test/tint/unittest/reader/spirv/SpvParserCFGTest_EmitBody_Switch_DefaultIsCase_NoDupCases.spvasm.expected.ir.fxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:198 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Switch
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/unittest/reader/spirv/SpvParserCFGTest_EmitBody_Switch_DefaultIsCase_WithDupCase.spvasm.expected.ir.dxc.hlsl b/test/tint/unittest/reader/spirv/SpvParserCFGTest_EmitBody_Switch_DefaultIsCase_WithDupCase.spvasm.expected.ir.dxc.hlsl
deleted file mode 100644
index 27c824a..0000000
--- a/test/tint/unittest/reader/spirv/SpvParserCFGTest_EmitBody_Switch_DefaultIsCase_WithDupCase.spvasm.expected.ir.dxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:198 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Switch
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/unittest/reader/spirv/SpvParserCFGTest_EmitBody_Switch_DefaultIsCase_WithDupCase.spvasm.expected.ir.fxc.hlsl b/test/tint/unittest/reader/spirv/SpvParserCFGTest_EmitBody_Switch_DefaultIsCase_WithDupCase.spvasm.expected.ir.fxc.hlsl
deleted file mode 100644
index 27c824a..0000000
--- a/test/tint/unittest/reader/spirv/SpvParserCFGTest_EmitBody_Switch_DefaultIsCase_WithDupCase.spvasm.expected.ir.fxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:198 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Switch
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/unittest/reader/spirv/SpvParserCFGTest_EmitBody_Switch_DefaultIsMerge_CasesWithDup.spvasm.expected.ir.dxc.hlsl b/test/tint/unittest/reader/spirv/SpvParserCFGTest_EmitBody_Switch_DefaultIsMerge_CasesWithDup.spvasm.expected.ir.dxc.hlsl
deleted file mode 100644
index 27c824a..0000000
--- a/test/tint/unittest/reader/spirv/SpvParserCFGTest_EmitBody_Switch_DefaultIsMerge_CasesWithDup.spvasm.expected.ir.dxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:198 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Switch
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/unittest/reader/spirv/SpvParserCFGTest_EmitBody_Switch_DefaultIsMerge_CasesWithDup.spvasm.expected.ir.fxc.hlsl b/test/tint/unittest/reader/spirv/SpvParserCFGTest_EmitBody_Switch_DefaultIsMerge_CasesWithDup.spvasm.expected.ir.fxc.hlsl
deleted file mode 100644
index 27c824a..0000000
--- a/test/tint/unittest/reader/spirv/SpvParserCFGTest_EmitBody_Switch_DefaultIsMerge_CasesWithDup.spvasm.expected.ir.fxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:198 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Switch
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/unittest/reader/spirv/SpvParserCFGTest_EmitBody_Switch_DefaultIsMerge_NoCases.spvasm.expected.ir.dxc.hlsl b/test/tint/unittest/reader/spirv/SpvParserCFGTest_EmitBody_Switch_DefaultIsMerge_NoCases.spvasm.expected.ir.dxc.hlsl
deleted file mode 100644
index 27c824a..0000000
--- a/test/tint/unittest/reader/spirv/SpvParserCFGTest_EmitBody_Switch_DefaultIsMerge_NoCases.spvasm.expected.ir.dxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:198 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Switch
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/unittest/reader/spirv/SpvParserCFGTest_EmitBody_Switch_DefaultIsMerge_NoCases.spvasm.expected.ir.fxc.hlsl b/test/tint/unittest/reader/spirv/SpvParserCFGTest_EmitBody_Switch_DefaultIsMerge_NoCases.spvasm.expected.ir.fxc.hlsl
deleted file mode 100644
index 27c824a..0000000
--- a/test/tint/unittest/reader/spirv/SpvParserCFGTest_EmitBody_Switch_DefaultIsMerge_NoCases.spvasm.expected.ir.fxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:198 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Switch
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/unittest/reader/spirv/SpvParserCFGTest_EmitBody_Switch_DefaultIsMerge_OneCase.spvasm.expected.ir.dxc.hlsl b/test/tint/unittest/reader/spirv/SpvParserCFGTest_EmitBody_Switch_DefaultIsMerge_OneCase.spvasm.expected.ir.dxc.hlsl
deleted file mode 100644
index 27c824a..0000000
--- a/test/tint/unittest/reader/spirv/SpvParserCFGTest_EmitBody_Switch_DefaultIsMerge_OneCase.spvasm.expected.ir.dxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:198 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Switch
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/unittest/reader/spirv/SpvParserCFGTest_EmitBody_Switch_DefaultIsMerge_OneCase.spvasm.expected.ir.fxc.hlsl b/test/tint/unittest/reader/spirv/SpvParserCFGTest_EmitBody_Switch_DefaultIsMerge_OneCase.spvasm.expected.ir.fxc.hlsl
deleted file mode 100644
index 27c824a..0000000
--- a/test/tint/unittest/reader/spirv/SpvParserCFGTest_EmitBody_Switch_DefaultIsMerge_OneCase.spvasm.expected.ir.fxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:198 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Switch
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/unittest/reader/spirv/SpvParserCFGTest_EmitBody_Switch_DefaultIsMerge_TwoCases.spvasm.expected.ir.dxc.hlsl b/test/tint/unittest/reader/spirv/SpvParserCFGTest_EmitBody_Switch_DefaultIsMerge_TwoCases.spvasm.expected.ir.dxc.hlsl
deleted file mode 100644
index 27c824a..0000000
--- a/test/tint/unittest/reader/spirv/SpvParserCFGTest_EmitBody_Switch_DefaultIsMerge_TwoCases.spvasm.expected.ir.dxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:198 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Switch
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/unittest/reader/spirv/SpvParserCFGTest_EmitBody_Switch_DefaultIsMerge_TwoCases.spvasm.expected.ir.fxc.hlsl b/test/tint/unittest/reader/spirv/SpvParserCFGTest_EmitBody_Switch_DefaultIsMerge_TwoCases.spvasm.expected.ir.fxc.hlsl
deleted file mode 100644
index 27c824a..0000000
--- a/test/tint/unittest/reader/spirv/SpvParserCFGTest_EmitBody_Switch_DefaultIsMerge_TwoCases.spvasm.expected.ir.fxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:198 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Switch
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/unittest/reader/spirv/SpvParserCFGTest_EmitBody_TrueBranch_SwitchBreak.spvasm.expected.ir.dxc.hlsl b/test/tint/unittest/reader/spirv/SpvParserCFGTest_EmitBody_TrueBranch_SwitchBreak.spvasm.expected.ir.dxc.hlsl
deleted file mode 100644
index 27c824a..0000000
--- a/test/tint/unittest/reader/spirv/SpvParserCFGTest_EmitBody_TrueBranch_SwitchBreak.spvasm.expected.ir.dxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:198 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Switch
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/unittest/reader/spirv/SpvParserCFGTest_EmitBody_TrueBranch_SwitchBreak.spvasm.expected.ir.fxc.hlsl b/test/tint/unittest/reader/spirv/SpvParserCFGTest_EmitBody_TrueBranch_SwitchBreak.spvasm.expected.ir.fxc.hlsl
deleted file mode 100644
index 27c824a..0000000
--- a/test/tint/unittest/reader/spirv/SpvParserCFGTest_EmitBody_TrueBranch_SwitchBreak.spvasm.expected.ir.fxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:198 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Switch
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/unittest/reader/spirv/SpvParserCFGTest_EmitBody_Unreachable_InNonVoidFunction.spvasm.expected.ir.fxc.hlsl b/test/tint/unittest/reader/spirv/SpvParserCFGTest_EmitBody_Unreachable_InNonVoidFunction.spvasm.expected.ir.fxc.hlsl
deleted file mode 100644
index 05c75a1..0000000
--- a/test/tint/unittest/reader/spirv/SpvParserCFGTest_EmitBody_Unreachable_InNonVoidFunction.spvasm.expected.ir.fxc.hlsl
+++ /dev/null
@@ -1,14 +0,0 @@
-SKIP: FAILED
-
-uint x_200() {
-  return 0u;
-}
-
-void main_1() {
-  uint x_11 = x_200();
-}
-
-void main() {
-  main_1();
-}
-
diff --git a/test/tint/unittest/reader/spirv/SpvParserCFGTest_EmitBody_Unreachable_InsideIf.spvasm.expected.ir.dxc.hlsl b/test/tint/unittest/reader/spirv/SpvParserCFGTest_EmitBody_Unreachable_InsideIf.spvasm.expected.ir.dxc.hlsl
deleted file mode 100644
index bdeab23..0000000
--- a/test/tint/unittest/reader/spirv/SpvParserCFGTest_EmitBody_Unreachable_InsideIf.spvasm.expected.ir.dxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:198 internal compiler error: Switch() matched no cases. Type: tint::core::ir::If
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix 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/SpvParserCFGTest_EmitBody_Unreachable_InsideIf.spvasm.expected.ir.fxc.hlsl b/test/tint/unittest/reader/spirv/SpvParserCFGTest_EmitBody_Unreachable_InsideIf.spvasm.expected.ir.fxc.hlsl
deleted file mode 100644
index bdeab23..0000000
--- a/test/tint/unittest/reader/spirv/SpvParserCFGTest_EmitBody_Unreachable_InsideIf.spvasm.expected.ir.fxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:198 internal compiler error: Switch() matched no cases. Type: tint::core::ir::If
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix 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/SpvParserCFGTest_EmitBody_Unreachable_InsideLoop.spvasm.expected.ir.dxc.hlsl b/test/tint/unittest/reader/spirv/SpvParserCFGTest_EmitBody_Unreachable_InsideLoop.spvasm.expected.ir.dxc.hlsl
deleted file mode 100644
index adbb0c1..0000000
--- a/test/tint/unittest/reader/spirv/SpvParserCFGTest_EmitBody_Unreachable_InsideLoop.spvasm.expected.ir.dxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:198 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Loop
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/unittest/reader/spirv/SpvParserCFGTest_EmitBody_Unreachable_InsideLoop.spvasm.expected.ir.fxc.hlsl b/test/tint/unittest/reader/spirv/SpvParserCFGTest_EmitBody_Unreachable_InsideLoop.spvasm.expected.ir.fxc.hlsl
deleted file mode 100644
index adbb0c1..0000000
--- a/test/tint/unittest/reader/spirv/SpvParserCFGTest_EmitBody_Unreachable_InsideLoop.spvasm.expected.ir.fxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:198 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Loop
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/unittest/reader/spirv/SpvParserCFGTest_EmitBody_Unreachable_TopLevel.spvasm.expected.ir.fxc.hlsl b/test/tint/unittest/reader/spirv/SpvParserCFGTest_EmitBody_Unreachable_TopLevel.spvasm.expected.ir.fxc.hlsl
deleted file mode 100644
index a096ece..0000000
--- a/test/tint/unittest/reader/spirv/SpvParserCFGTest_EmitBody_Unreachable_TopLevel.spvasm.expected.ir.fxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-void main_1() {
-}
-
-void main() {
-  main_1();
-}
-
diff --git a/test/tint/unittest/reader/spirv/SpvParserCFGTest_FindIfSelectionInternalHeaders_ElseOnly.spvasm.expected.ir.dxc.hlsl b/test/tint/unittest/reader/spirv/SpvParserCFGTest_FindIfSelectionInternalHeaders_ElseOnly.spvasm.expected.ir.dxc.hlsl
deleted file mode 100644
index bdeab23..0000000
--- a/test/tint/unittest/reader/spirv/SpvParserCFGTest_FindIfSelectionInternalHeaders_ElseOnly.spvasm.expected.ir.dxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:198 internal compiler error: Switch() matched no cases. Type: tint::core::ir::If
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix 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/SpvParserCFGTest_FindIfSelectionInternalHeaders_ElseOnly.spvasm.expected.ir.fxc.hlsl b/test/tint/unittest/reader/spirv/SpvParserCFGTest_FindIfSelectionInternalHeaders_ElseOnly.spvasm.expected.ir.fxc.hlsl
deleted file mode 100644
index bdeab23..0000000
--- a/test/tint/unittest/reader/spirv/SpvParserCFGTest_FindIfSelectionInternalHeaders_ElseOnly.spvasm.expected.ir.fxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:198 internal compiler error: Switch() matched no cases. Type: tint::core::ir::If
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix 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/SpvParserCFGTest_FindIfSelectionInternalHeaders_FalseBranch_LoopBreak_Ok.spvasm.expected.ir.dxc.hlsl b/test/tint/unittest/reader/spirv/SpvParserCFGTest_FindIfSelectionInternalHeaders_FalseBranch_LoopBreak_Ok.spvasm.expected.ir.dxc.hlsl
deleted file mode 100644
index adbb0c1..0000000
--- a/test/tint/unittest/reader/spirv/SpvParserCFGTest_FindIfSelectionInternalHeaders_FalseBranch_LoopBreak_Ok.spvasm.expected.ir.dxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:198 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Loop
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/unittest/reader/spirv/SpvParserCFGTest_FindIfSelectionInternalHeaders_FalseBranch_LoopBreak_Ok.spvasm.expected.ir.fxc.hlsl b/test/tint/unittest/reader/spirv/SpvParserCFGTest_FindIfSelectionInternalHeaders_FalseBranch_LoopBreak_Ok.spvasm.expected.ir.fxc.hlsl
deleted file mode 100644
index adbb0c1..0000000
--- a/test/tint/unittest/reader/spirv/SpvParserCFGTest_FindIfSelectionInternalHeaders_FalseBranch_LoopBreak_Ok.spvasm.expected.ir.fxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:198 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Loop
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/unittest/reader/spirv/SpvParserCFGTest_FindIfSelectionInternalHeaders_FalseBranch_SwitchBreak_Ok.spvasm.expected.ir.dxc.hlsl b/test/tint/unittest/reader/spirv/SpvParserCFGTest_FindIfSelectionInternalHeaders_FalseBranch_SwitchBreak_Ok.spvasm.expected.ir.dxc.hlsl
deleted file mode 100644
index 27c824a..0000000
--- a/test/tint/unittest/reader/spirv/SpvParserCFGTest_FindIfSelectionInternalHeaders_FalseBranch_SwitchBreak_Ok.spvasm.expected.ir.dxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:198 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Switch
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/unittest/reader/spirv/SpvParserCFGTest_FindIfSelectionInternalHeaders_FalseBranch_SwitchBreak_Ok.spvasm.expected.ir.fxc.hlsl b/test/tint/unittest/reader/spirv/SpvParserCFGTest_FindIfSelectionInternalHeaders_FalseBranch_SwitchBreak_Ok.spvasm.expected.ir.fxc.hlsl
deleted file mode 100644
index 27c824a..0000000
--- a/test/tint/unittest/reader/spirv/SpvParserCFGTest_FindIfSelectionInternalHeaders_FalseBranch_SwitchBreak_Ok.spvasm.expected.ir.fxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:198 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Switch
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/unittest/reader/spirv/SpvParserCFGTest_FindIfSelectionInternalHeaders_IfOnly.spvasm.expected.ir.dxc.hlsl b/test/tint/unittest/reader/spirv/SpvParserCFGTest_FindIfSelectionInternalHeaders_IfOnly.spvasm.expected.ir.dxc.hlsl
deleted file mode 100644
index bdeab23..0000000
--- a/test/tint/unittest/reader/spirv/SpvParserCFGTest_FindIfSelectionInternalHeaders_IfOnly.spvasm.expected.ir.dxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:198 internal compiler error: Switch() matched no cases. Type: tint::core::ir::If
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix 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/SpvParserCFGTest_FindIfSelectionInternalHeaders_IfOnly.spvasm.expected.ir.fxc.hlsl b/test/tint/unittest/reader/spirv/SpvParserCFGTest_FindIfSelectionInternalHeaders_IfOnly.spvasm.expected.ir.fxc.hlsl
deleted file mode 100644
index bdeab23..0000000
--- a/test/tint/unittest/reader/spirv/SpvParserCFGTest_FindIfSelectionInternalHeaders_IfOnly.spvasm.expected.ir.fxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:198 internal compiler error: Switch() matched no cases. Type: tint::core::ir::If
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix 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/SpvParserCFGTest_FindIfSelectionInternalHeaders_NoIf.spvasm.expected.ir.fxc.hlsl b/test/tint/unittest/reader/spirv/SpvParserCFGTest_FindIfSelectionInternalHeaders_NoIf.spvasm.expected.ir.fxc.hlsl
deleted file mode 100644
index a096ece..0000000
--- a/test/tint/unittest/reader/spirv/SpvParserCFGTest_FindIfSelectionInternalHeaders_NoIf.spvasm.expected.ir.fxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-void main_1() {
-}
-
-void main() {
-  main_1();
-}
-
diff --git a/test/tint/unittest/reader/spirv/SpvParserCFGTest_FindIfSelectionInternalHeaders_Premerge_ElseDirectToThen.spvasm.expected.ir.dxc.hlsl b/test/tint/unittest/reader/spirv/SpvParserCFGTest_FindIfSelectionInternalHeaders_Premerge_ElseDirectToThen.spvasm.expected.ir.dxc.hlsl
deleted file mode 100644
index bdeab23..0000000
--- a/test/tint/unittest/reader/spirv/SpvParserCFGTest_FindIfSelectionInternalHeaders_Premerge_ElseDirectToThen.spvasm.expected.ir.dxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:198 internal compiler error: Switch() matched no cases. Type: tint::core::ir::If
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix 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/SpvParserCFGTest_FindIfSelectionInternalHeaders_Premerge_ElseDirectToThen.spvasm.expected.ir.fxc.hlsl b/test/tint/unittest/reader/spirv/SpvParserCFGTest_FindIfSelectionInternalHeaders_Premerge_ElseDirectToThen.spvasm.expected.ir.fxc.hlsl
deleted file mode 100644
index bdeab23..0000000
--- a/test/tint/unittest/reader/spirv/SpvParserCFGTest_FindIfSelectionInternalHeaders_Premerge_ElseDirectToThen.spvasm.expected.ir.fxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:198 internal compiler error: Switch() matched no cases. Type: tint::core::ir::If
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix 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/SpvParserCFGTest_FindIfSelectionInternalHeaders_Premerge_Simple.spvasm.expected.ir.dxc.hlsl b/test/tint/unittest/reader/spirv/SpvParserCFGTest_FindIfSelectionInternalHeaders_Premerge_Simple.spvasm.expected.ir.dxc.hlsl
deleted file mode 100644
index bdeab23..0000000
--- a/test/tint/unittest/reader/spirv/SpvParserCFGTest_FindIfSelectionInternalHeaders_Premerge_Simple.spvasm.expected.ir.dxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:198 internal compiler error: Switch() matched no cases. Type: tint::core::ir::If
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix 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/SpvParserCFGTest_FindIfSelectionInternalHeaders_Premerge_Simple.spvasm.expected.ir.fxc.hlsl b/test/tint/unittest/reader/spirv/SpvParserCFGTest_FindIfSelectionInternalHeaders_Premerge_Simple.spvasm.expected.ir.fxc.hlsl
deleted file mode 100644
index bdeab23..0000000
--- a/test/tint/unittest/reader/spirv/SpvParserCFGTest_FindIfSelectionInternalHeaders_Premerge_Simple.spvasm.expected.ir.fxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:198 internal compiler error: Switch() matched no cases. Type: tint::core::ir::If
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix 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/SpvParserCFGTest_FindIfSelectionInternalHeaders_Premerge_ThenDirectToElse.spvasm.expected.ir.dxc.hlsl b/test/tint/unittest/reader/spirv/SpvParserCFGTest_FindIfSelectionInternalHeaders_Premerge_ThenDirectToElse.spvasm.expected.ir.dxc.hlsl
deleted file mode 100644
index bdeab23..0000000
--- a/test/tint/unittest/reader/spirv/SpvParserCFGTest_FindIfSelectionInternalHeaders_Premerge_ThenDirectToElse.spvasm.expected.ir.dxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:198 internal compiler error: Switch() matched no cases. Type: tint::core::ir::If
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix 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/SpvParserCFGTest_FindIfSelectionInternalHeaders_Premerge_ThenDirectToElse.spvasm.expected.ir.fxc.hlsl b/test/tint/unittest/reader/spirv/SpvParserCFGTest_FindIfSelectionInternalHeaders_Premerge_ThenDirectToElse.spvasm.expected.ir.fxc.hlsl
deleted file mode 100644
index bdeab23..0000000
--- a/test/tint/unittest/reader/spirv/SpvParserCFGTest_FindIfSelectionInternalHeaders_Premerge_ThenDirectToElse.spvasm.expected.ir.fxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:198 internal compiler error: Switch() matched no cases. Type: tint::core::ir::If
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix 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/SpvParserCFGTest_FindIfSelectionInternalHeaders_Regardless.spvasm.expected.ir.dxc.hlsl b/test/tint/unittest/reader/spirv/SpvParserCFGTest_FindIfSelectionInternalHeaders_Regardless.spvasm.expected.ir.dxc.hlsl
deleted file mode 100644
index bdeab23..0000000
--- a/test/tint/unittest/reader/spirv/SpvParserCFGTest_FindIfSelectionInternalHeaders_Regardless.spvasm.expected.ir.dxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:198 internal compiler error: Switch() matched no cases. Type: tint::core::ir::If
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix 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/SpvParserCFGTest_FindIfSelectionInternalHeaders_Regardless.spvasm.expected.ir.fxc.hlsl b/test/tint/unittest/reader/spirv/SpvParserCFGTest_FindIfSelectionInternalHeaders_Regardless.spvasm.expected.ir.fxc.hlsl
deleted file mode 100644
index bdeab23..0000000
--- a/test/tint/unittest/reader/spirv/SpvParserCFGTest_FindIfSelectionInternalHeaders_Regardless.spvasm.expected.ir.fxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:198 internal compiler error: Switch() matched no cases. Type: tint::core::ir::If
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix 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/SpvParserCFGTest_FindIfSelectionInternalHeaders_ThenElse.spvasm.expected.ir.dxc.hlsl b/test/tint/unittest/reader/spirv/SpvParserCFGTest_FindIfSelectionInternalHeaders_ThenElse.spvasm.expected.ir.dxc.hlsl
deleted file mode 100644
index bdeab23..0000000
--- a/test/tint/unittest/reader/spirv/SpvParserCFGTest_FindIfSelectionInternalHeaders_ThenElse.spvasm.expected.ir.dxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:198 internal compiler error: Switch() matched no cases. Type: tint::core::ir::If
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix 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/SpvParserCFGTest_FindIfSelectionInternalHeaders_ThenElse.spvasm.expected.ir.fxc.hlsl b/test/tint/unittest/reader/spirv/SpvParserCFGTest_FindIfSelectionInternalHeaders_ThenElse.spvasm.expected.ir.fxc.hlsl
deleted file mode 100644
index bdeab23..0000000
--- a/test/tint/unittest/reader/spirv/SpvParserCFGTest_FindIfSelectionInternalHeaders_ThenElse.spvasm.expected.ir.fxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:198 internal compiler error: Switch() matched no cases. Type: tint::core::ir::If
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix 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/SpvParserCFGTest_FindIfSelectionInternalHeaders_TrueBranch_LoopBreak_Ok.spvasm.expected.ir.dxc.hlsl b/test/tint/unittest/reader/spirv/SpvParserCFGTest_FindIfSelectionInternalHeaders_TrueBranch_LoopBreak_Ok.spvasm.expected.ir.dxc.hlsl
index adbb0c1..31b7623 100644
--- a/test/tint/unittest/reader/spirv/SpvParserCFGTest_FindIfSelectionInternalHeaders_TrueBranch_LoopBreak_Ok.spvasm.expected.ir.dxc.hlsl
+++ b/test/tint/unittest/reader/spirv/SpvParserCFGTest_FindIfSelectionInternalHeaders_TrueBranch_LoopBreak_Ok.spvasm.expected.ir.dxc.hlsl
@@ -1,9 +1,27 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:198 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Loop
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+
+static uint var_1 = 0u;
+void main_1() {
+  {
+    while(true) {
+      if (false) {
+        break;
+      }
+      {
+      }
+      continue;
+    }
+  }
+}
+
+void main() {
+  main_1();
+}
+
+DXC validation failure:
+error: validation errors
+hlsl.hlsl:16: error: Loop must have break.
+Validation failed.
+
+
diff --git a/test/tint/unittest/reader/spirv/SpvParserCFGTest_FindIfSelectionInternalHeaders_TrueBranch_LoopBreak_Ok.spvasm.expected.ir.fxc.hlsl b/test/tint/unittest/reader/spirv/SpvParserCFGTest_FindIfSelectionInternalHeaders_TrueBranch_LoopBreak_Ok.spvasm.expected.ir.fxc.hlsl
deleted file mode 100644
index adbb0c1..0000000
--- a/test/tint/unittest/reader/spirv/SpvParserCFGTest_FindIfSelectionInternalHeaders_TrueBranch_LoopBreak_Ok.spvasm.expected.ir.fxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:198 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Loop
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/unittest/reader/spirv/SpvParserCFGTest_FindIfSelectionInternalHeaders_TrueBranch_SwitchBreak_Ok.spvasm.expected.ir.dxc.hlsl b/test/tint/unittest/reader/spirv/SpvParserCFGTest_FindIfSelectionInternalHeaders_TrueBranch_SwitchBreak_Ok.spvasm.expected.ir.dxc.hlsl
deleted file mode 100644
index 27c824a..0000000
--- a/test/tint/unittest/reader/spirv/SpvParserCFGTest_FindIfSelectionInternalHeaders_TrueBranch_SwitchBreak_Ok.spvasm.expected.ir.dxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:198 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Switch
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/unittest/reader/spirv/SpvParserCFGTest_FindIfSelectionInternalHeaders_TrueBranch_SwitchBreak_Ok.spvasm.expected.ir.fxc.hlsl b/test/tint/unittest/reader/spirv/SpvParserCFGTest_FindIfSelectionInternalHeaders_TrueBranch_SwitchBreak_Ok.spvasm.expected.ir.fxc.hlsl
deleted file mode 100644
index 27c824a..0000000
--- a/test/tint/unittest/reader/spirv/SpvParserCFGTest_FindIfSelectionInternalHeaders_TrueBranch_SwitchBreak_Ok.spvasm.expected.ir.fxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:198 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Switch
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/unittest/reader/spirv/SpvParserCFGTest_FindSwitchCaseHeaders_CaseIsDefault.spvasm.expected.ir.dxc.hlsl b/test/tint/unittest/reader/spirv/SpvParserCFGTest_FindSwitchCaseHeaders_CaseIsDefault.spvasm.expected.ir.dxc.hlsl
deleted file mode 100644
index 27c824a..0000000
--- a/test/tint/unittest/reader/spirv/SpvParserCFGTest_FindSwitchCaseHeaders_CaseIsDefault.spvasm.expected.ir.dxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:198 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Switch
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/unittest/reader/spirv/SpvParserCFGTest_FindSwitchCaseHeaders_CaseIsDefault.spvasm.expected.ir.fxc.hlsl b/test/tint/unittest/reader/spirv/SpvParserCFGTest_FindSwitchCaseHeaders_CaseIsDefault.spvasm.expected.ir.fxc.hlsl
deleted file mode 100644
index 27c824a..0000000
--- a/test/tint/unittest/reader/spirv/SpvParserCFGTest_FindSwitchCaseHeaders_CaseIsDefault.spvasm.expected.ir.fxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:198 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Switch
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/unittest/reader/spirv/SpvParserCFGTest_FindSwitchCaseHeaders_CaseIsNotDefault.spvasm.expected.ir.dxc.hlsl b/test/tint/unittest/reader/spirv/SpvParserCFGTest_FindSwitchCaseHeaders_CaseIsNotDefault.spvasm.expected.ir.dxc.hlsl
deleted file mode 100644
index 27c824a..0000000
--- a/test/tint/unittest/reader/spirv/SpvParserCFGTest_FindSwitchCaseHeaders_CaseIsNotDefault.spvasm.expected.ir.dxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:198 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Switch
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/unittest/reader/spirv/SpvParserCFGTest_FindSwitchCaseHeaders_CaseIsNotDefault.spvasm.expected.ir.fxc.hlsl b/test/tint/unittest/reader/spirv/SpvParserCFGTest_FindSwitchCaseHeaders_CaseIsNotDefault.spvasm.expected.ir.fxc.hlsl
deleted file mode 100644
index 27c824a..0000000
--- a/test/tint/unittest/reader/spirv/SpvParserCFGTest_FindSwitchCaseHeaders_CaseIsNotDefault.spvasm.expected.ir.fxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:198 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Switch
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/unittest/reader/spirv/SpvParserCFGTest_FindSwitchCaseHeaders_DefaultIsMerge.spvasm.expected.ir.dxc.hlsl b/test/tint/unittest/reader/spirv/SpvParserCFGTest_FindSwitchCaseHeaders_DefaultIsMerge.spvasm.expected.ir.dxc.hlsl
deleted file mode 100644
index 27c824a..0000000
--- a/test/tint/unittest/reader/spirv/SpvParserCFGTest_FindSwitchCaseHeaders_DefaultIsMerge.spvasm.expected.ir.dxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:198 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Switch
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/unittest/reader/spirv/SpvParserCFGTest_FindSwitchCaseHeaders_DefaultIsMerge.spvasm.expected.ir.fxc.hlsl b/test/tint/unittest/reader/spirv/SpvParserCFGTest_FindSwitchCaseHeaders_DefaultIsMerge.spvasm.expected.ir.fxc.hlsl
deleted file mode 100644
index 27c824a..0000000
--- a/test/tint/unittest/reader/spirv/SpvParserCFGTest_FindSwitchCaseHeaders_DefaultIsMerge.spvasm.expected.ir.fxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:198 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Switch
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/unittest/reader/spirv/SpvParserCFGTest_FindSwitchCaseHeaders_DefaultIsNotMerge.spvasm.expected.ir.dxc.hlsl b/test/tint/unittest/reader/spirv/SpvParserCFGTest_FindSwitchCaseHeaders_DefaultIsNotMerge.spvasm.expected.ir.dxc.hlsl
deleted file mode 100644
index 27c824a..0000000
--- a/test/tint/unittest/reader/spirv/SpvParserCFGTest_FindSwitchCaseHeaders_DefaultIsNotMerge.spvasm.expected.ir.dxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:198 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Switch
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/unittest/reader/spirv/SpvParserCFGTest_FindSwitchCaseHeaders_DefaultIsNotMerge.spvasm.expected.ir.fxc.hlsl b/test/tint/unittest/reader/spirv/SpvParserCFGTest_FindSwitchCaseHeaders_DefaultIsNotMerge.spvasm.expected.ir.fxc.hlsl
deleted file mode 100644
index 27c824a..0000000
--- a/test/tint/unittest/reader/spirv/SpvParserCFGTest_FindSwitchCaseHeaders_DefaultIsNotMerge.spvasm.expected.ir.fxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:198 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Switch
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/unittest/reader/spirv/SpvParserCFGTest_FindSwitchCaseHeaders_ManyValuesWithSameCase.spvasm.expected.ir.dxc.hlsl b/test/tint/unittest/reader/spirv/SpvParserCFGTest_FindSwitchCaseHeaders_ManyValuesWithSameCase.spvasm.expected.ir.dxc.hlsl
deleted file mode 100644
index 27c824a..0000000
--- a/test/tint/unittest/reader/spirv/SpvParserCFGTest_FindSwitchCaseHeaders_ManyValuesWithSameCase.spvasm.expected.ir.dxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:198 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Switch
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/unittest/reader/spirv/SpvParserCFGTest_FindSwitchCaseHeaders_ManyValuesWithSameCase.spvasm.expected.ir.fxc.hlsl b/test/tint/unittest/reader/spirv/SpvParserCFGTest_FindSwitchCaseHeaders_ManyValuesWithSameCase.spvasm.expected.ir.fxc.hlsl
deleted file mode 100644
index 27c824a..0000000
--- a/test/tint/unittest/reader/spirv/SpvParserCFGTest_FindSwitchCaseHeaders_ManyValuesWithSameCase.spvasm.expected.ir.fxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:198 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Switch
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/unittest/reader/spirv/SpvParserCFGTest_FindSwitchCaseHeaders_NoSwitch.spvasm.expected.ir.fxc.hlsl b/test/tint/unittest/reader/spirv/SpvParserCFGTest_FindSwitchCaseHeaders_NoSwitch.spvasm.expected.ir.fxc.hlsl
deleted file mode 100644
index a096ece..0000000
--- a/test/tint/unittest/reader/spirv/SpvParserCFGTest_FindSwitchCaseHeaders_NoSwitch.spvasm.expected.ir.fxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-void main_1() {
-}
-
-void main() {
-  main_1();
-}
-
diff --git a/test/tint/unittest/reader/spirv/SpvParserCFGTest_LabelControlFlowConstructs_FunctionIsOnlyIfSelectionAndItsMerge.spvasm.expected.ir.dxc.hlsl b/test/tint/unittest/reader/spirv/SpvParserCFGTest_LabelControlFlowConstructs_FunctionIsOnlyIfSelectionAndItsMerge.spvasm.expected.ir.dxc.hlsl
deleted file mode 100644
index bdeab23..0000000
--- a/test/tint/unittest/reader/spirv/SpvParserCFGTest_LabelControlFlowConstructs_FunctionIsOnlyIfSelectionAndItsMerge.spvasm.expected.ir.dxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:198 internal compiler error: Switch() matched no cases. Type: tint::core::ir::If
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix 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/SpvParserCFGTest_LabelControlFlowConstructs_FunctionIsOnlyIfSelectionAndItsMerge.spvasm.expected.ir.fxc.hlsl b/test/tint/unittest/reader/spirv/SpvParserCFGTest_LabelControlFlowConstructs_FunctionIsOnlyIfSelectionAndItsMerge.spvasm.expected.ir.fxc.hlsl
deleted file mode 100644
index bdeab23..0000000
--- a/test/tint/unittest/reader/spirv/SpvParserCFGTest_LabelControlFlowConstructs_FunctionIsOnlyIfSelectionAndItsMerge.spvasm.expected.ir.fxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:198 internal compiler error: Switch() matched no cases. Type: tint::core::ir::If
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix 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/SpvParserCFGTest_LabelControlFlowConstructs_MergeBlockIsAlsoMultiBlockLoopHeader.spvasm.expected.ir.dxc.hlsl b/test/tint/unittest/reader/spirv/SpvParserCFGTest_LabelControlFlowConstructs_MergeBlockIsAlsoMultiBlockLoopHeader.spvasm.expected.ir.dxc.hlsl
deleted file mode 100644
index bdeab23..0000000
--- a/test/tint/unittest/reader/spirv/SpvParserCFGTest_LabelControlFlowConstructs_MergeBlockIsAlsoMultiBlockLoopHeader.spvasm.expected.ir.dxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:198 internal compiler error: Switch() matched no cases. Type: tint::core::ir::If
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix 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/SpvParserCFGTest_LabelControlFlowConstructs_MergeBlockIsAlsoMultiBlockLoopHeader.spvasm.expected.ir.fxc.hlsl b/test/tint/unittest/reader/spirv/SpvParserCFGTest_LabelControlFlowConstructs_MergeBlockIsAlsoMultiBlockLoopHeader.spvasm.expected.ir.fxc.hlsl
deleted file mode 100644
index bdeab23..0000000
--- a/test/tint/unittest/reader/spirv/SpvParserCFGTest_LabelControlFlowConstructs_MergeBlockIsAlsoMultiBlockLoopHeader.spvasm.expected.ir.fxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:198 internal compiler error: Switch() matched no cases. Type: tint::core::ir::If
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix 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/SpvParserCFGTest_LabelControlFlowConstructs_MergeBlockIsAlsoSingleBlockLoop.spvasm.expected.ir.dxc.hlsl b/test/tint/unittest/reader/spirv/SpvParserCFGTest_LabelControlFlowConstructs_MergeBlockIsAlsoSingleBlockLoop.spvasm.expected.ir.dxc.hlsl
deleted file mode 100644
index bdeab23..0000000
--- a/test/tint/unittest/reader/spirv/SpvParserCFGTest_LabelControlFlowConstructs_MergeBlockIsAlsoSingleBlockLoop.spvasm.expected.ir.dxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:198 internal compiler error: Switch() matched no cases. Type: tint::core::ir::If
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix 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/SpvParserCFGTest_LabelControlFlowConstructs_MergeBlockIsAlsoSingleBlockLoop.spvasm.expected.ir.fxc.hlsl b/test/tint/unittest/reader/spirv/SpvParserCFGTest_LabelControlFlowConstructs_MergeBlockIsAlsoSingleBlockLoop.spvasm.expected.ir.fxc.hlsl
deleted file mode 100644
index bdeab23..0000000
--- a/test/tint/unittest/reader/spirv/SpvParserCFGTest_LabelControlFlowConstructs_MergeBlockIsAlsoSingleBlockLoop.spvasm.expected.ir.fxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:198 internal compiler error: Switch() matched no cases. Type: tint::core::ir::If
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix 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/SpvParserCFGTest_LabelControlFlowConstructs_MultiBlockLoop_HeaderIsNotContinue.spvasm.expected.ir.dxc.hlsl b/test/tint/unittest/reader/spirv/SpvParserCFGTest_LabelControlFlowConstructs_MultiBlockLoop_HeaderIsNotContinue.spvasm.expected.ir.dxc.hlsl
deleted file mode 100644
index adbb0c1..0000000
--- a/test/tint/unittest/reader/spirv/SpvParserCFGTest_LabelControlFlowConstructs_MultiBlockLoop_HeaderIsNotContinue.spvasm.expected.ir.dxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:198 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Loop
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/unittest/reader/spirv/SpvParserCFGTest_LabelControlFlowConstructs_MultiBlockLoop_HeaderIsNotContinue.spvasm.expected.ir.fxc.hlsl b/test/tint/unittest/reader/spirv/SpvParserCFGTest_LabelControlFlowConstructs_MultiBlockLoop_HeaderIsNotContinue.spvasm.expected.ir.fxc.hlsl
deleted file mode 100644
index adbb0c1..0000000
--- a/test/tint/unittest/reader/spirv/SpvParserCFGTest_LabelControlFlowConstructs_MultiBlockLoop_HeaderIsNotContinue.spvasm.expected.ir.fxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:198 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Loop
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/unittest/reader/spirv/SpvParserCFGTest_LabelControlFlowConstructs_Nest_If_If.spvasm.expected.ir.dxc.hlsl b/test/tint/unittest/reader/spirv/SpvParserCFGTest_LabelControlFlowConstructs_Nest_If_If.spvasm.expected.ir.dxc.hlsl
deleted file mode 100644
index bdeab23..0000000
--- a/test/tint/unittest/reader/spirv/SpvParserCFGTest_LabelControlFlowConstructs_Nest_If_If.spvasm.expected.ir.dxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:198 internal compiler error: Switch() matched no cases. Type: tint::core::ir::If
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix 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/SpvParserCFGTest_LabelControlFlowConstructs_Nest_If_If.spvasm.expected.ir.fxc.hlsl b/test/tint/unittest/reader/spirv/SpvParserCFGTest_LabelControlFlowConstructs_Nest_If_If.spvasm.expected.ir.fxc.hlsl
deleted file mode 100644
index bdeab23..0000000
--- a/test/tint/unittest/reader/spirv/SpvParserCFGTest_LabelControlFlowConstructs_Nest_If_If.spvasm.expected.ir.fxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:198 internal compiler error: Switch() matched no cases. Type: tint::core::ir::If
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix 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/SpvParserCFGTest_LabelControlFlowConstructs_Nest_If_MultiBlockLoop.spvasm.expected.ir.dxc.hlsl b/test/tint/unittest/reader/spirv/SpvParserCFGTest_LabelControlFlowConstructs_Nest_If_MultiBlockLoop.spvasm.expected.ir.dxc.hlsl
deleted file mode 100644
index bdeab23..0000000
--- a/test/tint/unittest/reader/spirv/SpvParserCFGTest_LabelControlFlowConstructs_Nest_If_MultiBlockLoop.spvasm.expected.ir.dxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:198 internal compiler error: Switch() matched no cases. Type: tint::core::ir::If
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix 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/SpvParserCFGTest_LabelControlFlowConstructs_Nest_If_MultiBlockLoop.spvasm.expected.ir.fxc.hlsl b/test/tint/unittest/reader/spirv/SpvParserCFGTest_LabelControlFlowConstructs_Nest_If_MultiBlockLoop.spvasm.expected.ir.fxc.hlsl
deleted file mode 100644
index bdeab23..0000000
--- a/test/tint/unittest/reader/spirv/SpvParserCFGTest_LabelControlFlowConstructs_Nest_If_MultiBlockLoop.spvasm.expected.ir.fxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:198 internal compiler error: Switch() matched no cases. Type: tint::core::ir::If
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix 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/SpvParserCFGTest_LabelControlFlowConstructs_Nest_If_SingleBlockLoop.spvasm.expected.ir.dxc.hlsl b/test/tint/unittest/reader/spirv/SpvParserCFGTest_LabelControlFlowConstructs_Nest_If_SingleBlockLoop.spvasm.expected.ir.dxc.hlsl
deleted file mode 100644
index bdeab23..0000000
--- a/test/tint/unittest/reader/spirv/SpvParserCFGTest_LabelControlFlowConstructs_Nest_If_SingleBlockLoop.spvasm.expected.ir.dxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:198 internal compiler error: Switch() matched no cases. Type: tint::core::ir::If
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix 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/SpvParserCFGTest_LabelControlFlowConstructs_Nest_If_SingleBlockLoop.spvasm.expected.ir.fxc.hlsl b/test/tint/unittest/reader/spirv/SpvParserCFGTest_LabelControlFlowConstructs_Nest_If_SingleBlockLoop.spvasm.expected.ir.fxc.hlsl
deleted file mode 100644
index bdeab23..0000000
--- a/test/tint/unittest/reader/spirv/SpvParserCFGTest_LabelControlFlowConstructs_Nest_If_SingleBlockLoop.spvasm.expected.ir.fxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:198 internal compiler error: Switch() matched no cases. Type: tint::core::ir::If
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix 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/SpvParserCFGTest_LabelControlFlowConstructs_Nest_If_Switch.spvasm.expected.ir.dxc.hlsl b/test/tint/unittest/reader/spirv/SpvParserCFGTest_LabelControlFlowConstructs_Nest_If_Switch.spvasm.expected.ir.dxc.hlsl
deleted file mode 100644
index bdeab23..0000000
--- a/test/tint/unittest/reader/spirv/SpvParserCFGTest_LabelControlFlowConstructs_Nest_If_Switch.spvasm.expected.ir.dxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:198 internal compiler error: Switch() matched no cases. Type: tint::core::ir::If
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix 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/SpvParserCFGTest_LabelControlFlowConstructs_Nest_If_Switch.spvasm.expected.ir.fxc.hlsl b/test/tint/unittest/reader/spirv/SpvParserCFGTest_LabelControlFlowConstructs_Nest_If_Switch.spvasm.expected.ir.fxc.hlsl
deleted file mode 100644
index bdeab23..0000000
--- a/test/tint/unittest/reader/spirv/SpvParserCFGTest_LabelControlFlowConstructs_Nest_If_Switch.spvasm.expected.ir.fxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:198 internal compiler error: Switch() matched no cases. Type: tint::core::ir::If
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix 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/SpvParserCFGTest_LabelControlFlowConstructs_Nest_LoopContinue_If.spvasm.expected.ir.dxc.hlsl b/test/tint/unittest/reader/spirv/SpvParserCFGTest_LabelControlFlowConstructs_Nest_LoopContinue_If.spvasm.expected.ir.dxc.hlsl
deleted file mode 100644
index adbb0c1..0000000
--- a/test/tint/unittest/reader/spirv/SpvParserCFGTest_LabelControlFlowConstructs_Nest_LoopContinue_If.spvasm.expected.ir.dxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:198 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Loop
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/unittest/reader/spirv/SpvParserCFGTest_LabelControlFlowConstructs_Nest_LoopContinue_If.spvasm.expected.ir.fxc.hlsl b/test/tint/unittest/reader/spirv/SpvParserCFGTest_LabelControlFlowConstructs_Nest_LoopContinue_If.spvasm.expected.ir.fxc.hlsl
deleted file mode 100644
index adbb0c1..0000000
--- a/test/tint/unittest/reader/spirv/SpvParserCFGTest_LabelControlFlowConstructs_Nest_LoopContinue_If.spvasm.expected.ir.fxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:198 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Loop
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/unittest/reader/spirv/SpvParserCFGTest_LabelControlFlowConstructs_Nest_Loop_If.spvasm.expected.ir.dxc.hlsl b/test/tint/unittest/reader/spirv/SpvParserCFGTest_LabelControlFlowConstructs_Nest_Loop_If.spvasm.expected.ir.dxc.hlsl
deleted file mode 100644
index adbb0c1..0000000
--- a/test/tint/unittest/reader/spirv/SpvParserCFGTest_LabelControlFlowConstructs_Nest_Loop_If.spvasm.expected.ir.dxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:198 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Loop
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/unittest/reader/spirv/SpvParserCFGTest_LabelControlFlowConstructs_Nest_Loop_If.spvasm.expected.ir.fxc.hlsl b/test/tint/unittest/reader/spirv/SpvParserCFGTest_LabelControlFlowConstructs_Nest_Loop_If.spvasm.expected.ir.fxc.hlsl
deleted file mode 100644
index adbb0c1..0000000
--- a/test/tint/unittest/reader/spirv/SpvParserCFGTest_LabelControlFlowConstructs_Nest_Loop_If.spvasm.expected.ir.fxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:198 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Loop
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/unittest/reader/spirv/SpvParserCFGTest_LabelControlFlowConstructs_Nest_Loop_Loop.spvasm.expected.ir.dxc.hlsl b/test/tint/unittest/reader/spirv/SpvParserCFGTest_LabelControlFlowConstructs_Nest_Loop_Loop.spvasm.expected.ir.dxc.hlsl
deleted file mode 100644
index adbb0c1..0000000
--- a/test/tint/unittest/reader/spirv/SpvParserCFGTest_LabelControlFlowConstructs_Nest_Loop_Loop.spvasm.expected.ir.dxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:198 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Loop
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/unittest/reader/spirv/SpvParserCFGTest_LabelControlFlowConstructs_Nest_Loop_Loop.spvasm.expected.ir.fxc.hlsl b/test/tint/unittest/reader/spirv/SpvParserCFGTest_LabelControlFlowConstructs_Nest_Loop_Loop.spvasm.expected.ir.fxc.hlsl
deleted file mode 100644
index adbb0c1..0000000
--- a/test/tint/unittest/reader/spirv/SpvParserCFGTest_LabelControlFlowConstructs_Nest_Loop_Loop.spvasm.expected.ir.fxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:198 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Loop
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/unittest/reader/spirv/SpvParserCFGTest_LabelControlFlowConstructs_Nest_Switch_If.spvasm.expected.ir.dxc.hlsl b/test/tint/unittest/reader/spirv/SpvParserCFGTest_LabelControlFlowConstructs_Nest_Switch_If.spvasm.expected.ir.dxc.hlsl
deleted file mode 100644
index 27c824a..0000000
--- a/test/tint/unittest/reader/spirv/SpvParserCFGTest_LabelControlFlowConstructs_Nest_Switch_If.spvasm.expected.ir.dxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:198 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Switch
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/unittest/reader/spirv/SpvParserCFGTest_LabelControlFlowConstructs_Nest_Switch_If.spvasm.expected.ir.fxc.hlsl b/test/tint/unittest/reader/spirv/SpvParserCFGTest_LabelControlFlowConstructs_Nest_Switch_If.spvasm.expected.ir.fxc.hlsl
deleted file mode 100644
index 27c824a..0000000
--- a/test/tint/unittest/reader/spirv/SpvParserCFGTest_LabelControlFlowConstructs_Nest_Switch_If.spvasm.expected.ir.fxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:198 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Switch
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/unittest/reader/spirv/SpvParserCFGTest_LabelControlFlowConstructs_OuterConstructIsFunction_MultiBlock.spvasm.expected.ir.fxc.hlsl b/test/tint/unittest/reader/spirv/SpvParserCFGTest_LabelControlFlowConstructs_OuterConstructIsFunction_MultiBlock.spvasm.expected.ir.fxc.hlsl
deleted file mode 100644
index a096ece..0000000
--- a/test/tint/unittest/reader/spirv/SpvParserCFGTest_LabelControlFlowConstructs_OuterConstructIsFunction_MultiBlock.spvasm.expected.ir.fxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-void main_1() {
-}
-
-void main() {
-  main_1();
-}
-
diff --git a/test/tint/unittest/reader/spirv/SpvParserCFGTest_LabelControlFlowConstructs_OuterConstructIsFunction_SingleBlock.spvasm.expected.ir.fxc.hlsl b/test/tint/unittest/reader/spirv/SpvParserCFGTest_LabelControlFlowConstructs_OuterConstructIsFunction_SingleBlock.spvasm.expected.ir.fxc.hlsl
deleted file mode 100644
index a096ece..0000000
--- a/test/tint/unittest/reader/spirv/SpvParserCFGTest_LabelControlFlowConstructs_OuterConstructIsFunction_SingleBlock.spvasm.expected.ir.fxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-void main_1() {
-}
-
-void main() {
-  main_1();
-}
-
diff --git a/test/tint/unittest/reader/spirv/SpvParserCFGTest_LabelControlFlowConstructs_PaddingBlocksBeforeAndAfterStructuredConstruct.spvasm.expected.ir.dxc.hlsl b/test/tint/unittest/reader/spirv/SpvParserCFGTest_LabelControlFlowConstructs_PaddingBlocksBeforeAndAfterStructuredConstruct.spvasm.expected.ir.dxc.hlsl
deleted file mode 100644
index bdeab23..0000000
--- a/test/tint/unittest/reader/spirv/SpvParserCFGTest_LabelControlFlowConstructs_PaddingBlocksBeforeAndAfterStructuredConstruct.spvasm.expected.ir.dxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:198 internal compiler error: Switch() matched no cases. Type: tint::core::ir::If
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix 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/SpvParserCFGTest_LabelControlFlowConstructs_PaddingBlocksBeforeAndAfterStructuredConstruct.spvasm.expected.ir.fxc.hlsl b/test/tint/unittest/reader/spirv/SpvParserCFGTest_LabelControlFlowConstructs_PaddingBlocksBeforeAndAfterStructuredConstruct.spvasm.expected.ir.fxc.hlsl
deleted file mode 100644
index bdeab23..0000000
--- a/test/tint/unittest/reader/spirv/SpvParserCFGTest_LabelControlFlowConstructs_PaddingBlocksBeforeAndAfterStructuredConstruct.spvasm.expected.ir.fxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:198 internal compiler error: Switch() matched no cases. Type: tint::core::ir::If
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix 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/SpvParserCFGTest_LabelControlFlowConstructs_SingleBlockLoop.spvasm.expected.ir.dxc.hlsl b/test/tint/unittest/reader/spirv/SpvParserCFGTest_LabelControlFlowConstructs_SingleBlockLoop.spvasm.expected.ir.dxc.hlsl
deleted file mode 100644
index adbb0c1..0000000
--- a/test/tint/unittest/reader/spirv/SpvParserCFGTest_LabelControlFlowConstructs_SingleBlockLoop.spvasm.expected.ir.dxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:198 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Loop
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/unittest/reader/spirv/SpvParserCFGTest_LabelControlFlowConstructs_SingleBlockLoop.spvasm.expected.ir.fxc.hlsl b/test/tint/unittest/reader/spirv/SpvParserCFGTest_LabelControlFlowConstructs_SingleBlockLoop.spvasm.expected.ir.fxc.hlsl
deleted file mode 100644
index adbb0c1..0000000
--- a/test/tint/unittest/reader/spirv/SpvParserCFGTest_LabelControlFlowConstructs_SingleBlockLoop.spvasm.expected.ir.fxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:198 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Loop
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/unittest/reader/spirv/SpvParserCFGTest_LabelControlFlowConstructs_SwitchSelection.spvasm.expected.ir.dxc.hlsl b/test/tint/unittest/reader/spirv/SpvParserCFGTest_LabelControlFlowConstructs_SwitchSelection.spvasm.expected.ir.dxc.hlsl
deleted file mode 100644
index 27c824a..0000000
--- a/test/tint/unittest/reader/spirv/SpvParserCFGTest_LabelControlFlowConstructs_SwitchSelection.spvasm.expected.ir.dxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:198 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Switch
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/unittest/reader/spirv/SpvParserCFGTest_LabelControlFlowConstructs_SwitchSelection.spvasm.expected.ir.fxc.hlsl b/test/tint/unittest/reader/spirv/SpvParserCFGTest_LabelControlFlowConstructs_SwitchSelection.spvasm.expected.ir.fxc.hlsl
deleted file mode 100644
index 27c824a..0000000
--- a/test/tint/unittest/reader/spirv/SpvParserCFGTest_LabelControlFlowConstructs_SwitchSelection.spvasm.expected.ir.fxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:198 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Switch
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/unittest/reader/spirv/SpvParserCFGTest_RegisterMerges_GoodLoopMerge_MultiBlockLoop_ContinueIsNotHeader_Branch.spvasm.expected.ir.dxc.hlsl b/test/tint/unittest/reader/spirv/SpvParserCFGTest_RegisterMerges_GoodLoopMerge_MultiBlockLoop_ContinueIsNotHeader_Branch.spvasm.expected.ir.dxc.hlsl
deleted file mode 100644
index adbb0c1..0000000
--- a/test/tint/unittest/reader/spirv/SpvParserCFGTest_RegisterMerges_GoodLoopMerge_MultiBlockLoop_ContinueIsNotHeader_Branch.spvasm.expected.ir.dxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:198 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Loop
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/unittest/reader/spirv/SpvParserCFGTest_RegisterMerges_GoodLoopMerge_MultiBlockLoop_ContinueIsNotHeader_Branch.spvasm.expected.ir.fxc.hlsl b/test/tint/unittest/reader/spirv/SpvParserCFGTest_RegisterMerges_GoodLoopMerge_MultiBlockLoop_ContinueIsNotHeader_Branch.spvasm.expected.ir.fxc.hlsl
deleted file mode 100644
index adbb0c1..0000000
--- a/test/tint/unittest/reader/spirv/SpvParserCFGTest_RegisterMerges_GoodLoopMerge_MultiBlockLoop_ContinueIsNotHeader_Branch.spvasm.expected.ir.fxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:198 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Loop
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/unittest/reader/spirv/SpvParserCFGTest_RegisterMerges_GoodLoopMerge_MultiBlockLoop_ContinueIsNotHeader_BranchConditional.spvasm.expected.ir.dxc.hlsl b/test/tint/unittest/reader/spirv/SpvParserCFGTest_RegisterMerges_GoodLoopMerge_MultiBlockLoop_ContinueIsNotHeader_BranchConditional.spvasm.expected.ir.dxc.hlsl
deleted file mode 100644
index adbb0c1..0000000
--- a/test/tint/unittest/reader/spirv/SpvParserCFGTest_RegisterMerges_GoodLoopMerge_MultiBlockLoop_ContinueIsNotHeader_BranchConditional.spvasm.expected.ir.dxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:198 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Loop
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/unittest/reader/spirv/SpvParserCFGTest_RegisterMerges_GoodLoopMerge_MultiBlockLoop_ContinueIsNotHeader_BranchConditional.spvasm.expected.ir.fxc.hlsl b/test/tint/unittest/reader/spirv/SpvParserCFGTest_RegisterMerges_GoodLoopMerge_MultiBlockLoop_ContinueIsNotHeader_BranchConditional.spvasm.expected.ir.fxc.hlsl
deleted file mode 100644
index adbb0c1..0000000
--- a/test/tint/unittest/reader/spirv/SpvParserCFGTest_RegisterMerges_GoodLoopMerge_MultiBlockLoop_ContinueIsNotHeader_BranchConditional.spvasm.expected.ir.fxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:198 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Loop
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/unittest/reader/spirv/SpvParserCFGTest_RegisterMerges_GoodLoopMerge_SingleBlockLoop.spvasm.expected.ir.dxc.hlsl b/test/tint/unittest/reader/spirv/SpvParserCFGTest_RegisterMerges_GoodLoopMerge_SingleBlockLoop.spvasm.expected.ir.dxc.hlsl
deleted file mode 100644
index adbb0c1..0000000
--- a/test/tint/unittest/reader/spirv/SpvParserCFGTest_RegisterMerges_GoodLoopMerge_SingleBlockLoop.spvasm.expected.ir.dxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:198 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Loop
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/unittest/reader/spirv/SpvParserCFGTest_RegisterMerges_GoodLoopMerge_SingleBlockLoop.spvasm.expected.ir.fxc.hlsl b/test/tint/unittest/reader/spirv/SpvParserCFGTest_RegisterMerges_GoodLoopMerge_SingleBlockLoop.spvasm.expected.ir.fxc.hlsl
deleted file mode 100644
index adbb0c1..0000000
--- a/test/tint/unittest/reader/spirv/SpvParserCFGTest_RegisterMerges_GoodLoopMerge_SingleBlockLoop.spvasm.expected.ir.fxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:198 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Loop
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/unittest/reader/spirv/SpvParserCFGTest_RegisterMerges_GoodSelectionMerge_BranchConditional.spvasm.expected.ir.dxc.hlsl b/test/tint/unittest/reader/spirv/SpvParserCFGTest_RegisterMerges_GoodSelectionMerge_BranchConditional.spvasm.expected.ir.dxc.hlsl
deleted file mode 100644
index bdeab23..0000000
--- a/test/tint/unittest/reader/spirv/SpvParserCFGTest_RegisterMerges_GoodSelectionMerge_BranchConditional.spvasm.expected.ir.dxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:198 internal compiler error: Switch() matched no cases. Type: tint::core::ir::If
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix 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/SpvParserCFGTest_RegisterMerges_GoodSelectionMerge_BranchConditional.spvasm.expected.ir.fxc.hlsl b/test/tint/unittest/reader/spirv/SpvParserCFGTest_RegisterMerges_GoodSelectionMerge_BranchConditional.spvasm.expected.ir.fxc.hlsl
deleted file mode 100644
index bdeab23..0000000
--- a/test/tint/unittest/reader/spirv/SpvParserCFGTest_RegisterMerges_GoodSelectionMerge_BranchConditional.spvasm.expected.ir.fxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:198 internal compiler error: Switch() matched no cases. Type: tint::core::ir::If
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix 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/SpvParserCFGTest_RegisterMerges_GoodSelectionMerge_Switch.spvasm.expected.ir.dxc.hlsl b/test/tint/unittest/reader/spirv/SpvParserCFGTest_RegisterMerges_GoodSelectionMerge_Switch.spvasm.expected.ir.dxc.hlsl
deleted file mode 100644
index 27c824a..0000000
--- a/test/tint/unittest/reader/spirv/SpvParserCFGTest_RegisterMerges_GoodSelectionMerge_Switch.spvasm.expected.ir.dxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:198 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Switch
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/unittest/reader/spirv/SpvParserCFGTest_RegisterMerges_GoodSelectionMerge_Switch.spvasm.expected.ir.fxc.hlsl b/test/tint/unittest/reader/spirv/SpvParserCFGTest_RegisterMerges_GoodSelectionMerge_Switch.spvasm.expected.ir.fxc.hlsl
deleted file mode 100644
index 27c824a..0000000
--- a/test/tint/unittest/reader/spirv/SpvParserCFGTest_RegisterMerges_GoodSelectionMerge_Switch.spvasm.expected.ir.fxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:198 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Switch
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/unittest/reader/spirv/SpvParserCFGTest_RegisterMerges_NoMerges.spvasm.expected.ir.fxc.hlsl b/test/tint/unittest/reader/spirv/SpvParserCFGTest_RegisterMerges_NoMerges.spvasm.expected.ir.fxc.hlsl
deleted file mode 100644
index a096ece..0000000
--- a/test/tint/unittest/reader/spirv/SpvParserCFGTest_RegisterMerges_NoMerges.spvasm.expected.ir.fxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-void main_1() {
-}
-
-void main() {
-  main_1();
-}
-
diff --git a/test/tint/unittest/reader/spirv/SpvParserCFGTest_SiblingLoopConstruct_HasSiblingLoop.spvasm.expected.ir.dxc.hlsl b/test/tint/unittest/reader/spirv/SpvParserCFGTest_SiblingLoopConstruct_HasSiblingLoop.spvasm.expected.ir.dxc.hlsl
deleted file mode 100644
index adbb0c1..0000000
--- a/test/tint/unittest/reader/spirv/SpvParserCFGTest_SiblingLoopConstruct_HasSiblingLoop.spvasm.expected.ir.dxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:198 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Loop
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/unittest/reader/spirv/SpvParserCFGTest_SiblingLoopConstruct_HasSiblingLoop.spvasm.expected.ir.fxc.hlsl b/test/tint/unittest/reader/spirv/SpvParserCFGTest_SiblingLoopConstruct_HasSiblingLoop.spvasm.expected.ir.fxc.hlsl
deleted file mode 100644
index adbb0c1..0000000
--- a/test/tint/unittest/reader/spirv/SpvParserCFGTest_SiblingLoopConstruct_HasSiblingLoop.spvasm.expected.ir.fxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:198 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Loop
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/unittest/reader/spirv/SpvParserCFGTest_SiblingLoopConstruct_NotAContinue.spvasm.expected.ir.fxc.hlsl b/test/tint/unittest/reader/spirv/SpvParserCFGTest_SiblingLoopConstruct_NotAContinue.spvasm.expected.ir.fxc.hlsl
deleted file mode 100644
index a096ece..0000000
--- a/test/tint/unittest/reader/spirv/SpvParserCFGTest_SiblingLoopConstruct_NotAContinue.spvasm.expected.ir.fxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-void main_1() {
-}
-
-void main() {
-  main_1();
-}
-
diff --git a/test/tint/unittest/reader/spirv/SpvParserCFGTest_SiblingLoopConstruct_Null.spvasm.expected.ir.fxc.hlsl b/test/tint/unittest/reader/spirv/SpvParserCFGTest_SiblingLoopConstruct_Null.spvasm.expected.ir.fxc.hlsl
deleted file mode 100644
index a096ece..0000000
--- a/test/tint/unittest/reader/spirv/SpvParserCFGTest_SiblingLoopConstruct_Null.spvasm.expected.ir.fxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-void main_1() {
-}
-
-void main() {
-  main_1();
-}
-
diff --git a/test/tint/unittest/reader/spirv/SpvParserCFGTest_SiblingLoopConstruct_SingleBlockLoop.spvasm.expected.ir.dxc.hlsl b/test/tint/unittest/reader/spirv/SpvParserCFGTest_SiblingLoopConstruct_SingleBlockLoop.spvasm.expected.ir.dxc.hlsl
deleted file mode 100644
index adbb0c1..0000000
--- a/test/tint/unittest/reader/spirv/SpvParserCFGTest_SiblingLoopConstruct_SingleBlockLoop.spvasm.expected.ir.dxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:198 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Loop
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/unittest/reader/spirv/SpvParserCFGTest_SiblingLoopConstruct_SingleBlockLoop.spvasm.expected.ir.fxc.hlsl b/test/tint/unittest/reader/spirv/SpvParserCFGTest_SiblingLoopConstruct_SingleBlockLoop.spvasm.expected.ir.fxc.hlsl
deleted file mode 100644
index adbb0c1..0000000
--- a/test/tint/unittest/reader/spirv/SpvParserCFGTest_SiblingLoopConstruct_SingleBlockLoop.spvasm.expected.ir.fxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:198 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Loop
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/unittest/reader/spirv/SpvParserCFGTest_TerminatorsAreValid_If.spvasm.expected.ir.dxc.hlsl b/test/tint/unittest/reader/spirv/SpvParserCFGTest_TerminatorsAreValid_If.spvasm.expected.ir.dxc.hlsl
deleted file mode 100644
index bdeab23..0000000
--- a/test/tint/unittest/reader/spirv/SpvParserCFGTest_TerminatorsAreValid_If.spvasm.expected.ir.dxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:198 internal compiler error: Switch() matched no cases. Type: tint::core::ir::If
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix 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/SpvParserCFGTest_TerminatorsAreValid_If.spvasm.expected.ir.fxc.hlsl b/test/tint/unittest/reader/spirv/SpvParserCFGTest_TerminatorsAreValid_If.spvasm.expected.ir.fxc.hlsl
deleted file mode 100644
index bdeab23..0000000
--- a/test/tint/unittest/reader/spirv/SpvParserCFGTest_TerminatorsAreValid_If.spvasm.expected.ir.fxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:198 internal compiler error: Switch() matched no cases. Type: tint::core::ir::If
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix 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/SpvParserCFGTest_TerminatorsAreValid_Kill.spvasm.expected.ir.dxc.hlsl b/test/tint/unittest/reader/spirv/SpvParserCFGTest_TerminatorsAreValid_Kill.spvasm.expected.ir.dxc.hlsl
deleted file mode 100644
index 0da5df3..0000000
--- a/test/tint/unittest/reader/spirv/SpvParserCFGTest_TerminatorsAreValid_Kill.spvasm.expected.ir.dxc.hlsl
+++ /dev/null
@@ -1,3 +0,0 @@
-SKIP: FAILED
-
-signal: segmentation fault
\ No newline at end of file
diff --git a/test/tint/unittest/reader/spirv/SpvParserCFGTest_TerminatorsAreValid_Kill.spvasm.expected.ir.fxc.hlsl b/test/tint/unittest/reader/spirv/SpvParserCFGTest_TerminatorsAreValid_Kill.spvasm.expected.ir.fxc.hlsl
deleted file mode 100644
index 0da5df3..0000000
--- a/test/tint/unittest/reader/spirv/SpvParserCFGTest_TerminatorsAreValid_Kill.spvasm.expected.ir.fxc.hlsl
+++ /dev/null
@@ -1,3 +0,0 @@
-SKIP: FAILED
-
-signal: segmentation fault
\ No newline at end of file
diff --git a/test/tint/unittest/reader/spirv/SpvParserCFGTest_TerminatorsAreValid_Loop_Simple.spvasm.expected.ir.dxc.hlsl b/test/tint/unittest/reader/spirv/SpvParserCFGTest_TerminatorsAreValid_Loop_Simple.spvasm.expected.ir.dxc.hlsl
deleted file mode 100644
index adbb0c1..0000000
--- a/test/tint/unittest/reader/spirv/SpvParserCFGTest_TerminatorsAreValid_Loop_Simple.spvasm.expected.ir.dxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:198 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Loop
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/unittest/reader/spirv/SpvParserCFGTest_TerminatorsAreValid_Loop_Simple.spvasm.expected.ir.fxc.hlsl b/test/tint/unittest/reader/spirv/SpvParserCFGTest_TerminatorsAreValid_Loop_Simple.spvasm.expected.ir.fxc.hlsl
deleted file mode 100644
index adbb0c1..0000000
--- a/test/tint/unittest/reader/spirv/SpvParserCFGTest_TerminatorsAreValid_Loop_Simple.spvasm.expected.ir.fxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:198 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Loop
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/unittest/reader/spirv/SpvParserCFGTest_TerminatorsAreValid_Loop_SingleBlock.spvasm.expected.ir.dxc.hlsl b/test/tint/unittest/reader/spirv/SpvParserCFGTest_TerminatorsAreValid_Loop_SingleBlock.spvasm.expected.ir.dxc.hlsl
deleted file mode 100644
index adbb0c1..0000000
--- a/test/tint/unittest/reader/spirv/SpvParserCFGTest_TerminatorsAreValid_Loop_SingleBlock.spvasm.expected.ir.dxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:198 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Loop
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/unittest/reader/spirv/SpvParserCFGTest_TerminatorsAreValid_Loop_SingleBlock.spvasm.expected.ir.fxc.hlsl b/test/tint/unittest/reader/spirv/SpvParserCFGTest_TerminatorsAreValid_Loop_SingleBlock.spvasm.expected.ir.fxc.hlsl
deleted file mode 100644
index adbb0c1..0000000
--- a/test/tint/unittest/reader/spirv/SpvParserCFGTest_TerminatorsAreValid_Loop_SingleBlock.spvasm.expected.ir.fxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:198 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Loop
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/unittest/reader/spirv/SpvParserCFGTest_TerminatorsAreValid_Sequence.spvasm.expected.ir.fxc.hlsl b/test/tint/unittest/reader/spirv/SpvParserCFGTest_TerminatorsAreValid_Sequence.spvasm.expected.ir.fxc.hlsl
deleted file mode 100644
index a096ece..0000000
--- a/test/tint/unittest/reader/spirv/SpvParserCFGTest_TerminatorsAreValid_Sequence.spvasm.expected.ir.fxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-void main_1() {
-}
-
-void main() {
-  main_1();
-}
-
diff --git a/test/tint/unittest/reader/spirv/SpvParserCFGTest_TerminatorsAreValid_SingleBlock.spvasm.expected.ir.fxc.hlsl b/test/tint/unittest/reader/spirv/SpvParserCFGTest_TerminatorsAreValid_SingleBlock.spvasm.expected.ir.fxc.hlsl
deleted file mode 100644
index a096ece..0000000
--- a/test/tint/unittest/reader/spirv/SpvParserCFGTest_TerminatorsAreValid_SingleBlock.spvasm.expected.ir.fxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-void main_1() {
-}
-
-void main() {
-  main_1();
-}
-
diff --git a/test/tint/unittest/reader/spirv/SpvParserCFGTest_TerminatorsAreValid_Unreachable.spvasm.expected.ir.fxc.hlsl b/test/tint/unittest/reader/spirv/SpvParserCFGTest_TerminatorsAreValid_Unreachable.spvasm.expected.ir.fxc.hlsl
deleted file mode 100644
index a096ece..0000000
--- a/test/tint/unittest/reader/spirv/SpvParserCFGTest_TerminatorsAreValid_Unreachable.spvasm.expected.ir.fxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-void main_1() {
-}
-
-void main() {
-  main_1();
-}
-
diff --git a/test/tint/unittest/reader/spirv/SpvParserCFGTest_VerifyHeaderContinueMergeOrder_MultiBlockLoop_Good.spvasm.expected.ir.dxc.hlsl b/test/tint/unittest/reader/spirv/SpvParserCFGTest_VerifyHeaderContinueMergeOrder_MultiBlockLoop_Good.spvasm.expected.ir.dxc.hlsl
deleted file mode 100644
index adbb0c1..0000000
--- a/test/tint/unittest/reader/spirv/SpvParserCFGTest_VerifyHeaderContinueMergeOrder_MultiBlockLoop_Good.spvasm.expected.ir.dxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:198 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Loop
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/unittest/reader/spirv/SpvParserCFGTest_VerifyHeaderContinueMergeOrder_MultiBlockLoop_Good.spvasm.expected.ir.fxc.hlsl b/test/tint/unittest/reader/spirv/SpvParserCFGTest_VerifyHeaderContinueMergeOrder_MultiBlockLoop_Good.spvasm.expected.ir.fxc.hlsl
deleted file mode 100644
index adbb0c1..0000000
--- a/test/tint/unittest/reader/spirv/SpvParserCFGTest_VerifyHeaderContinueMergeOrder_MultiBlockLoop_Good.spvasm.expected.ir.fxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:198 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Loop
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/unittest/reader/spirv/SpvParserCFGTest_VerifyHeaderContinueMergeOrder_Selection_Good.spvasm.expected.ir.dxc.hlsl b/test/tint/unittest/reader/spirv/SpvParserCFGTest_VerifyHeaderContinueMergeOrder_Selection_Good.spvasm.expected.ir.dxc.hlsl
deleted file mode 100644
index bdeab23..0000000
--- a/test/tint/unittest/reader/spirv/SpvParserCFGTest_VerifyHeaderContinueMergeOrder_Selection_Good.spvasm.expected.ir.dxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:198 internal compiler error: Switch() matched no cases. Type: tint::core::ir::If
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix 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/SpvParserCFGTest_VerifyHeaderContinueMergeOrder_Selection_Good.spvasm.expected.ir.fxc.hlsl b/test/tint/unittest/reader/spirv/SpvParserCFGTest_VerifyHeaderContinueMergeOrder_Selection_Good.spvasm.expected.ir.fxc.hlsl
deleted file mode 100644
index bdeab23..0000000
--- a/test/tint/unittest/reader/spirv/SpvParserCFGTest_VerifyHeaderContinueMergeOrder_Selection_Good.spvasm.expected.ir.fxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:198 internal compiler error: Switch() matched no cases. Type: tint::core::ir::If
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix 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/SpvParserCFGTest_VerifyHeaderContinueMergeOrder_SingleBlockLoop_Good.spvasm.expected.ir.dxc.hlsl b/test/tint/unittest/reader/spirv/SpvParserCFGTest_VerifyHeaderContinueMergeOrder_SingleBlockLoop_Good.spvasm.expected.ir.dxc.hlsl
deleted file mode 100644
index adbb0c1..0000000
--- a/test/tint/unittest/reader/spirv/SpvParserCFGTest_VerifyHeaderContinueMergeOrder_SingleBlockLoop_Good.spvasm.expected.ir.dxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:198 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Loop
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/unittest/reader/spirv/SpvParserCFGTest_VerifyHeaderContinueMergeOrder_SingleBlockLoop_Good.spvasm.expected.ir.fxc.hlsl b/test/tint/unittest/reader/spirv/SpvParserCFGTest_VerifyHeaderContinueMergeOrder_SingleBlockLoop_Good.spvasm.expected.ir.fxc.hlsl
deleted file mode 100644
index adbb0c1..0000000
--- a/test/tint/unittest/reader/spirv/SpvParserCFGTest_VerifyHeaderContinueMergeOrder_SingleBlockLoop_Good.spvasm.expected.ir.fxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:198 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Loop
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/unittest/reader/spirv/SpvParserFunctionVarTest_EmitFunctionVariables_AnonymousVars.spvasm.expected.ir.fxc.hlsl b/test/tint/unittest/reader/spirv/SpvParserFunctionVarTest_EmitFunctionVariables_AnonymousVars.spvasm.expected.ir.fxc.hlsl
deleted file mode 100644
index c648d76..0000000
--- a/test/tint/unittest/reader/spirv/SpvParserFunctionVarTest_EmitFunctionVariables_AnonymousVars.spvasm.expected.ir.fxc.hlsl
+++ /dev/null
@@ -1,12 +0,0 @@
-SKIP: FAILED
-
-void main_1() {
-  uint x_1 = 0u;
-  uint x_2 = 0u;
-  uint x_3 = 0u;
-}
-
-void main() {
-  main_1();
-}
-
diff --git a/test/tint/unittest/reader/spirv/SpvParserFunctionVarTest_EmitFunctionVariables_ArrayInitializer.spvasm.expected.ir.dxc.hlsl b/test/tint/unittest/reader/spirv/SpvParserFunctionVarTest_EmitFunctionVariables_ArrayInitializer.spvasm.expected.ir.dxc.hlsl
deleted file mode 100644
index cc5aa9e..0000000
--- a/test/tint/unittest/reader/spirv/SpvParserFunctionVarTest_EmitFunctionVariables_ArrayInitializer.spvasm.expected.ir.dxc.hlsl
+++ /dev/null
@@ -1,16 +0,0 @@
-SKIP: FAILED
-
-void main_1() {
-  uint[2] x_200 = {1u, 2u};
-}
-
-void main() {
-  main_1();
-}
-
-DXC validation failure:
-hlsl.hlsl:2:16: error: brackets are not allowed here; to declare an array, place the brackets after the name
-  uint[2] x_200 = {1u, 2u};
-      ~~~      ^
-               [2]
-
diff --git a/test/tint/unittest/reader/spirv/SpvParserFunctionVarTest_EmitFunctionVariables_ArrayInitializer.spvasm.expected.ir.fxc.hlsl b/test/tint/unittest/reader/spirv/SpvParserFunctionVarTest_EmitFunctionVariables_ArrayInitializer.spvasm.expected.ir.fxc.hlsl
deleted file mode 100644
index 349d07d..0000000
--- a/test/tint/unittest/reader/spirv/SpvParserFunctionVarTest_EmitFunctionVariables_ArrayInitializer.spvasm.expected.ir.fxc.hlsl
+++ /dev/null
@@ -1,10 +0,0 @@
-SKIP: FAILED
-
-void main_1() {
-  uint[2] x_200 = {1u, 2u};
-}
-
-void main() {
-  main_1();
-}
-
diff --git a/test/tint/unittest/reader/spirv/SpvParserFunctionVarTest_EmitFunctionVariables_ArrayInitializer_Alias.spvasm.expected.ir.dxc.hlsl b/test/tint/unittest/reader/spirv/SpvParserFunctionVarTest_EmitFunctionVariables_ArrayInitializer_Alias.spvasm.expected.ir.dxc.hlsl
deleted file mode 100644
index 0ba40c6..0000000
--- a/test/tint/unittest/reader/spirv/SpvParserFunctionVarTest_EmitFunctionVariables_ArrayInitializer_Alias.spvasm.expected.ir.dxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix 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/SpvParserFunctionVarTest_EmitFunctionVariables_ArrayInitializer_Alias.spvasm.expected.ir.fxc.hlsl b/test/tint/unittest/reader/spirv/SpvParserFunctionVarTest_EmitFunctionVariables_ArrayInitializer_Alias.spvasm.expected.ir.fxc.hlsl
deleted file mode 100644
index 0ba40c6..0000000
--- a/test/tint/unittest/reader/spirv/SpvParserFunctionVarTest_EmitFunctionVariables_ArrayInitializer_Alias.spvasm.expected.ir.fxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix 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/SpvParserFunctionVarTest_EmitFunctionVariables_ArrayInitializer_Alias_Null.spvasm.expected.ir.dxc.hlsl b/test/tint/unittest/reader/spirv/SpvParserFunctionVarTest_EmitFunctionVariables_ArrayInitializer_Alias_Null.spvasm.expected.ir.dxc.hlsl
deleted file mode 100644
index d7cce5b..0000000
--- a/test/tint/unittest/reader/spirv/SpvParserFunctionVarTest_EmitFunctionVariables_ArrayInitializer_Alias_Null.spvasm.expected.ir.dxc.hlsl
+++ /dev/null
@@ -1,15 +0,0 @@
-SKIP: FAILED
-
-void main_1() {
-  strided_arr[2] x_200 = (strided_arr[2])0;
-}
-
-void main() {
-  main_1();
-}
-
-DXC validation failure:
-hlsl.hlsl:2:3: error: use of undeclared identifier 'strided_arr'
-  strided_arr[2] x_200 = (strided_arr[2])0;
-  ^
-
diff --git a/test/tint/unittest/reader/spirv/SpvParserFunctionVarTest_EmitFunctionVariables_ArrayInitializer_Alias_Null.spvasm.expected.ir.fxc.hlsl b/test/tint/unittest/reader/spirv/SpvParserFunctionVarTest_EmitFunctionVariables_ArrayInitializer_Alias_Null.spvasm.expected.ir.fxc.hlsl
deleted file mode 100644
index e1085c4..0000000
--- a/test/tint/unittest/reader/spirv/SpvParserFunctionVarTest_EmitFunctionVariables_ArrayInitializer_Alias_Null.spvasm.expected.ir.fxc.hlsl
+++ /dev/null
@@ -1,10 +0,0 @@
-SKIP: FAILED
-
-void main_1() {
-  strided_arr[2] x_200 = (strided_arr[2])0;
-}
-
-void main() {
-  main_1();
-}
-
diff --git a/test/tint/unittest/reader/spirv/SpvParserFunctionVarTest_EmitFunctionVariables_ArrayInitializer_Null.spvasm.expected.ir.dxc.hlsl b/test/tint/unittest/reader/spirv/SpvParserFunctionVarTest_EmitFunctionVariables_ArrayInitializer_Null.spvasm.expected.ir.dxc.hlsl
deleted file mode 100644
index e5473f5..0000000
--- a/test/tint/unittest/reader/spirv/SpvParserFunctionVarTest_EmitFunctionVariables_ArrayInitializer_Null.spvasm.expected.ir.dxc.hlsl
+++ /dev/null
@@ -1,16 +0,0 @@
-SKIP: FAILED
-
-void main_1() {
-  uint[2] x_200 = (uint[2])0;
-}
-
-void main() {
-  main_1();
-}
-
-DXC validation failure:
-hlsl.hlsl:2:16: error: brackets are not allowed here; to declare an array, place the brackets after the name
-  uint[2] x_200 = (uint[2])0;
-      ~~~      ^
-               [2]
-
diff --git a/test/tint/unittest/reader/spirv/SpvParserFunctionVarTest_EmitFunctionVariables_ArrayInitializer_Null.spvasm.expected.ir.fxc.hlsl b/test/tint/unittest/reader/spirv/SpvParserFunctionVarTest_EmitFunctionVariables_ArrayInitializer_Null.spvasm.expected.ir.fxc.hlsl
deleted file mode 100644
index 6b38713..0000000
--- a/test/tint/unittest/reader/spirv/SpvParserFunctionVarTest_EmitFunctionVariables_ArrayInitializer_Null.spvasm.expected.ir.fxc.hlsl
+++ /dev/null
@@ -1,10 +0,0 @@
-SKIP: FAILED
-
-void main_1() {
-  uint[2] x_200 = (uint[2])0;
-}
-
-void main() {
-  main_1();
-}
-
diff --git a/test/tint/unittest/reader/spirv/SpvParserFunctionVarTest_EmitFunctionVariables_Decorate_RelaxedPrecision.spvasm.expected.ir.fxc.hlsl b/test/tint/unittest/reader/spirv/SpvParserFunctionVarTest_EmitFunctionVariables_Decorate_RelaxedPrecision.spvasm.expected.ir.fxc.hlsl
deleted file mode 100644
index 430d010..0000000
--- a/test/tint/unittest/reader/spirv/SpvParserFunctionVarTest_EmitFunctionVariables_Decorate_RelaxedPrecision.spvasm.expected.ir.fxc.hlsl
+++ /dev/null
@@ -1,10 +0,0 @@
-SKIP: FAILED
-
-void main_1() {
-  float myvar = 0.0f;
-}
-
-void main() {
-  main_1();
-}
-
diff --git a/test/tint/unittest/reader/spirv/SpvParserFunctionVarTest_EmitFunctionVariables_MatrixInitializer.spvasm.expected.ir.fxc.hlsl b/test/tint/unittest/reader/spirv/SpvParserFunctionVarTest_EmitFunctionVariables_MatrixInitializer.spvasm.expected.ir.fxc.hlsl
deleted file mode 100644
index 314d9cc..0000000
--- a/test/tint/unittest/reader/spirv/SpvParserFunctionVarTest_EmitFunctionVariables_MatrixInitializer.spvasm.expected.ir.fxc.hlsl
+++ /dev/null
@@ -1,10 +0,0 @@
-SKIP: FAILED
-
-void main_1() {
-  float3x2 x_200 = float3x2(float2(1.5f, 2.0f), float2(2.0f, 3.0f), float2(3.0f, 4.0f));
-}
-
-void main() {
-  main_1();
-}
-
diff --git a/test/tint/unittest/reader/spirv/SpvParserFunctionVarTest_EmitFunctionVariables_MemberDecorate_RelaxedPrecision.spvasm.expected.ir.dxc.hlsl b/test/tint/unittest/reader/spirv/SpvParserFunctionVarTest_EmitFunctionVariables_MemberDecorate_RelaxedPrecision.spvasm.expected.ir.dxc.hlsl
deleted file mode 100644
index 0ba40c6..0000000
--- a/test/tint/unittest/reader/spirv/SpvParserFunctionVarTest_EmitFunctionVariables_MemberDecorate_RelaxedPrecision.spvasm.expected.ir.dxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix 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/SpvParserFunctionVarTest_EmitFunctionVariables_MemberDecorate_RelaxedPrecision.spvasm.expected.ir.fxc.hlsl b/test/tint/unittest/reader/spirv/SpvParserFunctionVarTest_EmitFunctionVariables_MemberDecorate_RelaxedPrecision.spvasm.expected.ir.fxc.hlsl
deleted file mode 100644
index 0ba40c6..0000000
--- a/test/tint/unittest/reader/spirv/SpvParserFunctionVarTest_EmitFunctionVariables_MemberDecorate_RelaxedPrecision.spvasm.expected.ir.fxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix 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/SpvParserFunctionVarTest_EmitFunctionVariables_MixedTypes.spvasm.expected.ir.fxc.hlsl b/test/tint/unittest/reader/spirv/SpvParserFunctionVarTest_EmitFunctionVariables_MixedTypes.spvasm.expected.ir.fxc.hlsl
deleted file mode 100644
index 96464c1..0000000
--- a/test/tint/unittest/reader/spirv/SpvParserFunctionVarTest_EmitFunctionVariables_MixedTypes.spvasm.expected.ir.fxc.hlsl
+++ /dev/null
@@ -1,12 +0,0 @@
-SKIP: FAILED
-
-void main_1() {
-  uint a = 0u;
-  int b = 0;
-  float c = 0.0f;
-}
-
-void main() {
-  main_1();
-}
-
diff --git a/test/tint/unittest/reader/spirv/SpvParserFunctionVarTest_EmitFunctionVariables_NamedVars.spvasm.expected.ir.fxc.hlsl b/test/tint/unittest/reader/spirv/SpvParserFunctionVarTest_EmitFunctionVariables_NamedVars.spvasm.expected.ir.fxc.hlsl
deleted file mode 100644
index 2f61367..0000000
--- a/test/tint/unittest/reader/spirv/SpvParserFunctionVarTest_EmitFunctionVariables_NamedVars.spvasm.expected.ir.fxc.hlsl
+++ /dev/null
@@ -1,12 +0,0 @@
-SKIP: FAILED
-
-void main_1() {
-  uint a = 0u;
-  uint b = 0u;
-  uint c = 0u;
-}
-
-void main() {
-  main_1();
-}
-
diff --git a/test/tint/unittest/reader/spirv/SpvParserFunctionVarTest_EmitFunctionVariables_ScalarInitializers.spvasm.expected.ir.fxc.hlsl b/test/tint/unittest/reader/spirv/SpvParserFunctionVarTest_EmitFunctionVariables_ScalarInitializers.spvasm.expected.ir.fxc.hlsl
deleted file mode 100644
index 958283fc..0000000
--- a/test/tint/unittest/reader/spirv/SpvParserFunctionVarTest_EmitFunctionVariables_ScalarInitializers.spvasm.expected.ir.fxc.hlsl
+++ /dev/null
@@ -1,14 +0,0 @@
-SKIP: FAILED
-
-void main_1() {
-  bool a = true;
-  bool b = false;
-  int c = -1;
-  uint d = 1u;
-  float e = 1.5f;
-}
-
-void main() {
-  main_1();
-}
-
diff --git a/test/tint/unittest/reader/spirv/SpvParserFunctionVarTest_EmitFunctionVariables_ScalarNullInitializers.spvasm.expected.ir.fxc.hlsl b/test/tint/unittest/reader/spirv/SpvParserFunctionVarTest_EmitFunctionVariables_ScalarNullInitializers.spvasm.expected.ir.fxc.hlsl
deleted file mode 100644
index 8f7f662..0000000
--- a/test/tint/unittest/reader/spirv/SpvParserFunctionVarTest_EmitFunctionVariables_ScalarNullInitializers.spvasm.expected.ir.fxc.hlsl
+++ /dev/null
@@ -1,13 +0,0 @@
-SKIP: FAILED
-
-void main_1() {
-  bool a = false;
-  int b = 0;
-  uint c = 0u;
-  float d = 0.0f;
-}
-
-void main() {
-  main_1();
-}
-
diff --git a/test/tint/unittest/reader/spirv/SpvParserFunctionVarTest_EmitFunctionVariables_StructDifferOnlyInMemberName.spvasm.expected.ir.dxc.hlsl b/test/tint/unittest/reader/spirv/SpvParserFunctionVarTest_EmitFunctionVariables_StructDifferOnlyInMemberName.spvasm.expected.ir.dxc.hlsl
deleted file mode 100644
index 0ba40c6..0000000
--- a/test/tint/unittest/reader/spirv/SpvParserFunctionVarTest_EmitFunctionVariables_StructDifferOnlyInMemberName.spvasm.expected.ir.dxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix 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/SpvParserFunctionVarTest_EmitFunctionVariables_StructDifferOnlyInMemberName.spvasm.expected.ir.fxc.hlsl b/test/tint/unittest/reader/spirv/SpvParserFunctionVarTest_EmitFunctionVariables_StructDifferOnlyInMemberName.spvasm.expected.ir.fxc.hlsl
deleted file mode 100644
index 0ba40c6..0000000
--- a/test/tint/unittest/reader/spirv/SpvParserFunctionVarTest_EmitFunctionVariables_StructDifferOnlyInMemberName.spvasm.expected.ir.fxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix 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/SpvParserFunctionVarTest_EmitFunctionVariables_StructInitializer.spvasm.expected.ir.dxc.hlsl b/test/tint/unittest/reader/spirv/SpvParserFunctionVarTest_EmitFunctionVariables_StructInitializer.spvasm.expected.ir.dxc.hlsl
deleted file mode 100644
index 0ba40c6..0000000
--- a/test/tint/unittest/reader/spirv/SpvParserFunctionVarTest_EmitFunctionVariables_StructInitializer.spvasm.expected.ir.dxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix 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/SpvParserFunctionVarTest_EmitFunctionVariables_StructInitializer.spvasm.expected.ir.fxc.hlsl b/test/tint/unittest/reader/spirv/SpvParserFunctionVarTest_EmitFunctionVariables_StructInitializer.spvasm.expected.ir.fxc.hlsl
deleted file mode 100644
index 0ba40c6..0000000
--- a/test/tint/unittest/reader/spirv/SpvParserFunctionVarTest_EmitFunctionVariables_StructInitializer.spvasm.expected.ir.fxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix 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/SpvParserFunctionVarTest_EmitFunctionVariables_StructInitializer_Null.spvasm.expected.ir.dxc.hlsl b/test/tint/unittest/reader/spirv/SpvParserFunctionVarTest_EmitFunctionVariables_StructInitializer_Null.spvasm.expected.ir.dxc.hlsl
deleted file mode 100644
index 0ba40c6..0000000
--- a/test/tint/unittest/reader/spirv/SpvParserFunctionVarTest_EmitFunctionVariables_StructInitializer_Null.spvasm.expected.ir.dxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix 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/SpvParserFunctionVarTest_EmitFunctionVariables_StructInitializer_Null.spvasm.expected.ir.fxc.hlsl b/test/tint/unittest/reader/spirv/SpvParserFunctionVarTest_EmitFunctionVariables_StructInitializer_Null.spvasm.expected.ir.fxc.hlsl
deleted file mode 100644
index 0ba40c6..0000000
--- a/test/tint/unittest/reader/spirv/SpvParserFunctionVarTest_EmitFunctionVariables_StructInitializer_Null.spvasm.expected.ir.fxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix 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/SpvParserFunctionVarTest_EmitFunctionVariables_VectorInitializer.spvasm.expected.ir.fxc.hlsl b/test/tint/unittest/reader/spirv/SpvParserFunctionVarTest_EmitFunctionVariables_VectorInitializer.spvasm.expected.ir.fxc.hlsl
deleted file mode 100644
index 06576fd..0000000
--- a/test/tint/unittest/reader/spirv/SpvParserFunctionVarTest_EmitFunctionVariables_VectorInitializer.spvasm.expected.ir.fxc.hlsl
+++ /dev/null
@@ -1,10 +0,0 @@
-SKIP: FAILED
-
-void main_1() {
-  float2 x_200 = float2(1.5f, 2.0f);
-}
-
-void main() {
-  main_1();
-}
-
diff --git a/test/tint/unittest/reader/spirv/SpvParserFunctionVarTest_EmitStatement_CombinatorialNonPointer_DefConstruct_DoesNotEncloseAllUses.spvasm.expected.ir.dxc.hlsl b/test/tint/unittest/reader/spirv/SpvParserFunctionVarTest_EmitStatement_CombinatorialNonPointer_DefConstruct_DoesNotEncloseAllUses.spvasm.expected.ir.dxc.hlsl
index adbb0c1..fa5cf05 100644
--- a/test/tint/unittest/reader/spirv/SpvParserFunctionVarTest_EmitStatement_CombinatorialNonPointer_DefConstruct_DoesNotEncloseAllUses.spvasm.expected.ir.dxc.hlsl
+++ b/test/tint/unittest/reader/spirv/SpvParserFunctionVarTest_EmitStatement_CombinatorialNonPointer_DefConstruct_DoesNotEncloseAllUses.spvasm.expected.ir.dxc.hlsl
@@ -1,9 +1,40 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:198 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Loop
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+
+static uint x_1 = 0u;
+void main_1() {
+  x_1 = 0u;
+  {
+    while(true) {
+      uint x_2 = 0u;
+      x_1 = 1u;
+      if (false) {
+        break;
+      }
+      x_1 = 3u;
+      if (true) {
+        x_2 = 2u;
+      } else {
+        return;
+      }
+      x_1 = x_2;
+      {
+        x_1 = 4u;
+        if (false) { break; }
+      }
+      continue;
+    }
+  }
+  x_1 = 5u;
+}
+
+void main() {
+  main_1();
+}
+
+DXC validation failure:
+error: validation errors
+hlsl.hlsl:29: error: Loop must have break.
+Validation failed.
+
+
diff --git a/test/tint/unittest/reader/spirv/SpvParserFunctionVarTest_EmitStatement_CombinatorialNonPointer_DefConstruct_DoesNotEncloseAllUses.spvasm.expected.ir.fxc.hlsl b/test/tint/unittest/reader/spirv/SpvParserFunctionVarTest_EmitStatement_CombinatorialNonPointer_DefConstruct_DoesNotEncloseAllUses.spvasm.expected.ir.fxc.hlsl
index adbb0c1..e120550 100644
--- a/test/tint/unittest/reader/spirv/SpvParserFunctionVarTest_EmitStatement_CombinatorialNonPointer_DefConstruct_DoesNotEncloseAllUses.spvasm.expected.ir.fxc.hlsl
+++ b/test/tint/unittest/reader/spirv/SpvParserFunctionVarTest_EmitStatement_CombinatorialNonPointer_DefConstruct_DoesNotEncloseAllUses.spvasm.expected.ir.fxc.hlsl
@@ -1,9 +1,37 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:198 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Loop
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+
+static uint x_1 = 0u;
+void main_1() {
+  x_1 = 0u;
+  {
+    while(true) {
+      uint x_2 = 0u;
+      x_1 = 1u;
+      if (false) {
+        break;
+      }
+      x_1 = 3u;
+      if (true) {
+        x_2 = 2u;
+      } else {
+        return;
+      }
+      x_1 = x_2;
+      {
+        x_1 = 4u;
+        if (false) { break; }
+      }
+      continue;
+    }
+  }
+  x_1 = 5u;
+}
+
+void main() {
+  main_1();
+}
+
+FXC validation failure:
+c:\src\dawn\Shader@0x000001BAAC7BBD00(6,11-14): error X3696: infinite loop detected - loop never exits
+
diff --git a/test/tint/unittest/reader/spirv/SpvParserFunctionVarTest_EmitStatement_CombinatorialNonPointer_Hoisting_DefAndUseFirstBlockIf.spvasm.expected.ir.dxc.hlsl b/test/tint/unittest/reader/spirv/SpvParserFunctionVarTest_EmitStatement_CombinatorialNonPointer_Hoisting_DefAndUseFirstBlockIf.spvasm.expected.ir.dxc.hlsl
deleted file mode 100644
index bdeab23..0000000
--- a/test/tint/unittest/reader/spirv/SpvParserFunctionVarTest_EmitStatement_CombinatorialNonPointer_Hoisting_DefAndUseFirstBlockIf.spvasm.expected.ir.dxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:198 internal compiler error: Switch() matched no cases. Type: tint::core::ir::If
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix 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/SpvParserFunctionVarTest_EmitStatement_CombinatorialNonPointer_Hoisting_DefAndUseFirstBlockIf.spvasm.expected.ir.fxc.hlsl b/test/tint/unittest/reader/spirv/SpvParserFunctionVarTest_EmitStatement_CombinatorialNonPointer_Hoisting_DefAndUseFirstBlockIf.spvasm.expected.ir.fxc.hlsl
deleted file mode 100644
index bdeab23..0000000
--- a/test/tint/unittest/reader/spirv/SpvParserFunctionVarTest_EmitStatement_CombinatorialNonPointer_Hoisting_DefAndUseFirstBlockIf.spvasm.expected.ir.fxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:198 internal compiler error: Switch() matched no cases. Type: tint::core::ir::If
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix 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/SpvParserFunctionVarTest_EmitStatement_CombinatorialNonPointer_Hoisting_DefFirstBlockIf_InFunction.spvasm.expected.ir.dxc.hlsl b/test/tint/unittest/reader/spirv/SpvParserFunctionVarTest_EmitStatement_CombinatorialNonPointer_Hoisting_DefFirstBlockIf_InFunction.spvasm.expected.ir.dxc.hlsl
deleted file mode 100644
index bdeab23..0000000
--- a/test/tint/unittest/reader/spirv/SpvParserFunctionVarTest_EmitStatement_CombinatorialNonPointer_Hoisting_DefFirstBlockIf_InFunction.spvasm.expected.ir.dxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:198 internal compiler error: Switch() matched no cases. Type: tint::core::ir::If
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix 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/SpvParserFunctionVarTest_EmitStatement_CombinatorialNonPointer_Hoisting_DefFirstBlockIf_InFunction.spvasm.expected.ir.fxc.hlsl b/test/tint/unittest/reader/spirv/SpvParserFunctionVarTest_EmitStatement_CombinatorialNonPointer_Hoisting_DefFirstBlockIf_InFunction.spvasm.expected.ir.fxc.hlsl
deleted file mode 100644
index bdeab23..0000000
--- a/test/tint/unittest/reader/spirv/SpvParserFunctionVarTest_EmitStatement_CombinatorialNonPointer_Hoisting_DefFirstBlockIf_InFunction.spvasm.expected.ir.fxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:198 internal compiler error: Switch() matched no cases. Type: tint::core::ir::If
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix 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/SpvParserFunctionVarTest_EmitStatement_CombinatorialNonPointer_Hoisting_DefFirstBlockIf_InIf.spvasm.expected.ir.dxc.hlsl b/test/tint/unittest/reader/spirv/SpvParserFunctionVarTest_EmitStatement_CombinatorialNonPointer_Hoisting_DefFirstBlockIf_InIf.spvasm.expected.ir.dxc.hlsl
deleted file mode 100644
index bdeab23..0000000
--- a/test/tint/unittest/reader/spirv/SpvParserFunctionVarTest_EmitStatement_CombinatorialNonPointer_Hoisting_DefFirstBlockIf_InIf.spvasm.expected.ir.dxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:198 internal compiler error: Switch() matched no cases. Type: tint::core::ir::If
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix 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/SpvParserFunctionVarTest_EmitStatement_CombinatorialNonPointer_Hoisting_DefFirstBlockIf_InIf.spvasm.expected.ir.fxc.hlsl b/test/tint/unittest/reader/spirv/SpvParserFunctionVarTest_EmitStatement_CombinatorialNonPointer_Hoisting_DefFirstBlockIf_InIf.spvasm.expected.ir.fxc.hlsl
deleted file mode 100644
index bdeab23..0000000
--- a/test/tint/unittest/reader/spirv/SpvParserFunctionVarTest_EmitStatement_CombinatorialNonPointer_Hoisting_DefFirstBlockIf_InIf.spvasm.expected.ir.fxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:198 internal compiler error: Switch() matched no cases. Type: tint::core::ir::If
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix 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/SpvParserFunctionVarTest_EmitStatement_CombinatorialNonPointer_Hoisting_DefFirstBlockSwitch_InIf.spvasm.expected.ir.dxc.hlsl b/test/tint/unittest/reader/spirv/SpvParserFunctionVarTest_EmitStatement_CombinatorialNonPointer_Hoisting_DefFirstBlockSwitch_InIf.spvasm.expected.ir.dxc.hlsl
deleted file mode 100644
index bdeab23..0000000
--- a/test/tint/unittest/reader/spirv/SpvParserFunctionVarTest_EmitStatement_CombinatorialNonPointer_Hoisting_DefFirstBlockSwitch_InIf.spvasm.expected.ir.dxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:198 internal compiler error: Switch() matched no cases. Type: tint::core::ir::If
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix 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/SpvParserFunctionVarTest_EmitStatement_CombinatorialNonPointer_Hoisting_DefFirstBlockSwitch_InIf.spvasm.expected.ir.fxc.hlsl b/test/tint/unittest/reader/spirv/SpvParserFunctionVarTest_EmitStatement_CombinatorialNonPointer_Hoisting_DefFirstBlockSwitch_InIf.spvasm.expected.ir.fxc.hlsl
deleted file mode 100644
index bdeab23..0000000
--- a/test/tint/unittest/reader/spirv/SpvParserFunctionVarTest_EmitStatement_CombinatorialNonPointer_Hoisting_DefFirstBlockSwitch_InIf.spvasm.expected.ir.fxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:198 internal compiler error: Switch() matched no cases. Type: tint::core::ir::If
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix 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/SpvParserFunctionVarTest_EmitStatement_CombinatorialValue_Defer_UsedOnceSameConstruct.spvasm.expected.ir.fxc.hlsl b/test/tint/unittest/reader/spirv/SpvParserFunctionVarTest_EmitStatement_CombinatorialValue_Defer_UsedOnceSameConstruct.spvasm.expected.ir.fxc.hlsl
deleted file mode 100644
index cf592fc..0000000
--- a/test/tint/unittest/reader/spirv/SpvParserFunctionVarTest_EmitStatement_CombinatorialValue_Defer_UsedOnceSameConstruct.spvasm.expected.ir.fxc.hlsl
+++ /dev/null
@@ -1,12 +0,0 @@
-SKIP: FAILED
-
-void main_1() {
-  uint x_25 = 0u;
-  x_25 = 1u;
-  x_25 = 2u;
-}
-
-void main() {
-  main_1();
-}
-
diff --git a/test/tint/unittest/reader/spirv/SpvParserFunctionVarTest_EmitStatement_CombinatorialValue_Immediate_UsedTwice.spvasm.expected.ir.fxc.hlsl b/test/tint/unittest/reader/spirv/SpvParserFunctionVarTest_EmitStatement_CombinatorialValue_Immediate_UsedTwice.spvasm.expected.ir.fxc.hlsl
deleted file mode 100644
index eae9756..0000000
--- a/test/tint/unittest/reader/spirv/SpvParserFunctionVarTest_EmitStatement_CombinatorialValue_Immediate_UsedTwice.spvasm.expected.ir.fxc.hlsl
+++ /dev/null
@@ -1,14 +0,0 @@
-SKIP: FAILED
-
-void main_1() {
-  uint x_25 = 0u;
-  uint x_2 = 2u;
-  x_25 = 1u;
-  x_25 = x_2;
-  x_25 = x_2;
-}
-
-void main() {
-  main_1();
-}
-
diff --git a/test/tint/unittest/reader/spirv/SpvParserFunctionVarTest_EmitStatement_Hoist_CompositeInsert.spvasm.expected.ir.dxc.hlsl b/test/tint/unittest/reader/spirv/SpvParserFunctionVarTest_EmitStatement_Hoist_CompositeInsert.spvasm.expected.ir.dxc.hlsl
deleted file mode 100644
index bdeab23..0000000
--- a/test/tint/unittest/reader/spirv/SpvParserFunctionVarTest_EmitStatement_Hoist_CompositeInsert.spvasm.expected.ir.dxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:198 internal compiler error: Switch() matched no cases. Type: tint::core::ir::If
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix 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/SpvParserFunctionVarTest_EmitStatement_Hoist_CompositeInsert.spvasm.expected.ir.fxc.hlsl b/test/tint/unittest/reader/spirv/SpvParserFunctionVarTest_EmitStatement_Hoist_CompositeInsert.spvasm.expected.ir.fxc.hlsl
deleted file mode 100644
index bdeab23..0000000
--- a/test/tint/unittest/reader/spirv/SpvParserFunctionVarTest_EmitStatement_Hoist_CompositeInsert.spvasm.expected.ir.fxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:198 internal compiler error: Switch() matched no cases. Type: tint::core::ir::If
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix 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/SpvParserFunctionVarTest_EmitStatement_Hoist_UsedAsNonPtrArg.spvasm.expected.ir.dxc.hlsl b/test/tint/unittest/reader/spirv/SpvParserFunctionVarTest_EmitStatement_Hoist_UsedAsNonPtrArg.spvasm.expected.ir.dxc.hlsl
deleted file mode 100644
index bdeab23..0000000
--- a/test/tint/unittest/reader/spirv/SpvParserFunctionVarTest_EmitStatement_Hoist_UsedAsNonPtrArg.spvasm.expected.ir.dxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:198 internal compiler error: Switch() matched no cases. Type: tint::core::ir::If
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix 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/SpvParserFunctionVarTest_EmitStatement_Hoist_UsedAsNonPtrArg.spvasm.expected.ir.fxc.hlsl b/test/tint/unittest/reader/spirv/SpvParserFunctionVarTest_EmitStatement_Hoist_UsedAsNonPtrArg.spvasm.expected.ir.fxc.hlsl
deleted file mode 100644
index bdeab23..0000000
--- a/test/tint/unittest/reader/spirv/SpvParserFunctionVarTest_EmitStatement_Hoist_UsedAsNonPtrArg.spvasm.expected.ir.fxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:198 internal compiler error: Switch() matched no cases. Type: tint::core::ir::If
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix 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/SpvParserFunctionVarTest_EmitStatement_Hoist_VectorInsertDynamic.spvasm.expected.ir.dxc.hlsl b/test/tint/unittest/reader/spirv/SpvParserFunctionVarTest_EmitStatement_Hoist_VectorInsertDynamic.spvasm.expected.ir.dxc.hlsl
deleted file mode 100644
index bdeab23..0000000
--- a/test/tint/unittest/reader/spirv/SpvParserFunctionVarTest_EmitStatement_Hoist_VectorInsertDynamic.spvasm.expected.ir.dxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:198 internal compiler error: Switch() matched no cases. Type: tint::core::ir::If
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix 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/SpvParserFunctionVarTest_EmitStatement_Hoist_VectorInsertDynamic.spvasm.expected.ir.fxc.hlsl b/test/tint/unittest/reader/spirv/SpvParserFunctionVarTest_EmitStatement_Hoist_VectorInsertDynamic.spvasm.expected.ir.fxc.hlsl
deleted file mode 100644
index bdeab23..0000000
--- a/test/tint/unittest/reader/spirv/SpvParserFunctionVarTest_EmitStatement_Hoist_VectorInsertDynamic.spvasm.expected.ir.fxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:198 internal compiler error: Switch() matched no cases. Type: tint::core::ir::If
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix 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/SpvParserFunctionVarTest_EmitStatement_Phi_FromElseAndThen.spvasm.expected.ir.dxc.hlsl b/test/tint/unittest/reader/spirv/SpvParserFunctionVarTest_EmitStatement_Phi_FromElseAndThen.spvasm.expected.ir.dxc.hlsl
index adbb0c1..ebb685f 100644
--- a/test/tint/unittest/reader/spirv/SpvParserFunctionVarTest_EmitStatement_Phi_FromElseAndThen.spvasm.expected.ir.dxc.hlsl
+++ b/test/tint/unittest/reader/spirv/SpvParserFunctionVarTest_EmitStatement_Phi_FromElseAndThen.spvasm.expected.ir.dxc.hlsl
@@ -1,9 +1,43 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:198 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Loop
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+
+static uint x_1 = 0u;
+static bool x_7 = false;
+static bool x_8 = false;
+void main_1() {
+  bool x_101 = x_7;
+  bool x_102 = x_8;
+  {
+    while(true) {
+      uint x_2 = 0u;
+      if (x_101) {
+        break;
+      }
+      if (x_102) {
+        x_2 = 0u;
+        {
+          x_1 = x_2;
+        }
+        continue;
+      } else {
+        x_2 = 1u;
+        {
+          x_1 = x_2;
+        }
+        continue;
+      }
+      /* unreachable */
+    }
+  }
+}
+
+void main() {
+  main_1();
+}
+
+DXC validation failure:
+error: validation errors
+hlsl.hlsl:32: error: Loop must have break.
+Validation failed.
+
+
diff --git a/test/tint/unittest/reader/spirv/SpvParserFunctionVarTest_EmitStatement_Phi_FromElseAndThen.spvasm.expected.ir.fxc.hlsl b/test/tint/unittest/reader/spirv/SpvParserFunctionVarTest_EmitStatement_Phi_FromElseAndThen.spvasm.expected.ir.fxc.hlsl
index adbb0c1..2036645 100644
--- a/test/tint/unittest/reader/spirv/SpvParserFunctionVarTest_EmitStatement_Phi_FromElseAndThen.spvasm.expected.ir.fxc.hlsl
+++ b/test/tint/unittest/reader/spirv/SpvParserFunctionVarTest_EmitStatement_Phi_FromElseAndThen.spvasm.expected.ir.fxc.hlsl
@@ -1,9 +1,40 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:198 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Loop
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+
+static uint x_1 = 0u;
+static bool x_7 = false;
+static bool x_8 = false;
+void main_1() {
+  bool x_101 = x_7;
+  bool x_102 = x_8;
+  {
+    while(true) {
+      uint x_2 = 0u;
+      if (x_101) {
+        break;
+      }
+      if (x_102) {
+        x_2 = 0u;
+        {
+          x_1 = x_2;
+        }
+        continue;
+      } else {
+        x_2 = 1u;
+        {
+          x_1 = x_2;
+        }
+        continue;
+      }
+      /* unreachable */
+    }
+  }
+}
+
+void main() {
+  main_1();
+}
+
+FXC validation failure:
+c:\src\dawn\Shader@0x0000025DC299CAE0(9,11-14): error X3696: infinite loop detected - loop never exits
+
diff --git a/test/tint/unittest/reader/spirv/SpvParserFunctionVarTest_EmitStatement_Phi_FromHeaderAndThen.spvasm.expected.ir.dxc.hlsl b/test/tint/unittest/reader/spirv/SpvParserFunctionVarTest_EmitStatement_Phi_FromHeaderAndThen.spvasm.expected.ir.dxc.hlsl
index adbb0c1..bf18abb 100644
--- a/test/tint/unittest/reader/spirv/SpvParserFunctionVarTest_EmitStatement_Phi_FromHeaderAndThen.spvasm.expected.ir.dxc.hlsl
+++ b/test/tint/unittest/reader/spirv/SpvParserFunctionVarTest_EmitStatement_Phi_FromHeaderAndThen.spvasm.expected.ir.dxc.hlsl
@@ -1,9 +1,43 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:198 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Loop
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+
+static uint x_1 = 0u;
+static bool x_7 = false;
+static bool x_8 = false;
+void main_1() {
+  bool x_101 = x_7;
+  bool x_102 = x_8;
+  {
+    while(true) {
+      uint x_2 = 0u;
+      if (x_101) {
+        break;
+      }
+      x_2 = 0u;
+      if (x_102) {
+        x_2 = 1u;
+        {
+          x_1 = x_2;
+        }
+        continue;
+      } else {
+        {
+          x_1 = x_2;
+        }
+        continue;
+      }
+      /* unreachable */
+    }
+  }
+}
+
+void main() {
+  main_1();
+}
+
+DXC validation failure:
+error: validation errors
+hlsl.hlsl:32: error: Loop must have break.
+Validation failed.
+
+
diff --git a/test/tint/unittest/reader/spirv/SpvParserFunctionVarTest_EmitStatement_Phi_FromHeaderAndThen.spvasm.expected.ir.fxc.hlsl b/test/tint/unittest/reader/spirv/SpvParserFunctionVarTest_EmitStatement_Phi_FromHeaderAndThen.spvasm.expected.ir.fxc.hlsl
index adbb0c1..37cfc68 100644
--- a/test/tint/unittest/reader/spirv/SpvParserFunctionVarTest_EmitStatement_Phi_FromHeaderAndThen.spvasm.expected.ir.fxc.hlsl
+++ b/test/tint/unittest/reader/spirv/SpvParserFunctionVarTest_EmitStatement_Phi_FromHeaderAndThen.spvasm.expected.ir.fxc.hlsl
@@ -1,9 +1,40 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:198 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Loop
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+
+static uint x_1 = 0u;
+static bool x_7 = false;
+static bool x_8 = false;
+void main_1() {
+  bool x_101 = x_7;
+  bool x_102 = x_8;
+  {
+    while(true) {
+      uint x_2 = 0u;
+      if (x_101) {
+        break;
+      }
+      x_2 = 0u;
+      if (x_102) {
+        x_2 = 1u;
+        {
+          x_1 = x_2;
+        }
+        continue;
+      } else {
+        {
+          x_1 = x_2;
+        }
+        continue;
+      }
+      /* unreachable */
+    }
+  }
+}
+
+void main() {
+  main_1();
+}
+
+FXC validation failure:
+c:\src\dawn\Shader@0x000002CEEDB703C0(9,11-14): error X3696: infinite loop detected - loop never exits
+
diff --git a/test/tint/unittest/reader/spirv/SpvParserFunctionVarTest_EmitStatement_Phi_MultiBlockLoopIndex.spvasm.expected.ir.dxc.hlsl b/test/tint/unittest/reader/spirv/SpvParserFunctionVarTest_EmitStatement_Phi_MultiBlockLoopIndex.spvasm.expected.ir.dxc.hlsl
index adbb0c1..3e81068 100644
--- a/test/tint/unittest/reader/spirv/SpvParserFunctionVarTest_EmitStatement_Phi_MultiBlockLoopIndex.spvasm.expected.ir.dxc.hlsl
+++ b/test/tint/unittest/reader/spirv/SpvParserFunctionVarTest_EmitStatement_Phi_MultiBlockLoopIndex.spvasm.expected.ir.dxc.hlsl
@@ -1,9 +1,50 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:198 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Loop
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+
+static uint x_1 = 0u;
+static bool x_7 = false;
+static bool x_8 = false;
+void main_1() {
+  {
+    while(true) {
+      uint x_2 = 0u;
+      uint x_3 = 0u;
+      bool x_101 = x_7;
+      bool x_102 = x_8;
+      x_2 = 0u;
+      x_3 = 1u;
+      if (x_101) {
+        break;
+      }
+      {
+        while(true) {
+          uint x_4 = 0u;
+          if (x_102) {
+            break;
+          }
+          {
+            x_4 = (x_2 + 1u);
+            uint x_3_c30 = x_3;
+            x_2 = x_4;
+            x_3 = x_3_c30;
+          }
+          continue;
+        }
+      }
+      {
+      }
+      continue;
+    }
+  }
+}
+
+void main() {
+  main_1();
+}
+
+DXC validation failure:
+error: validation errors
+hlsl.hlsl:39: error: Loop must have break.
+Validation failed.
+
+
diff --git a/test/tint/unittest/reader/spirv/SpvParserFunctionVarTest_EmitStatement_Phi_MultiBlockLoopIndex.spvasm.expected.ir.fxc.hlsl b/test/tint/unittest/reader/spirv/SpvParserFunctionVarTest_EmitStatement_Phi_MultiBlockLoopIndex.spvasm.expected.ir.fxc.hlsl
deleted file mode 100644
index adbb0c1..0000000
--- a/test/tint/unittest/reader/spirv/SpvParserFunctionVarTest_EmitStatement_Phi_MultiBlockLoopIndex.spvasm.expected.ir.fxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:198 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Loop
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/unittest/reader/spirv/SpvParserFunctionVarTest_EmitStatement_Phi_SingleBlockLoopIndex.spvasm.expected.ir.dxc.hlsl b/test/tint/unittest/reader/spirv/SpvParserFunctionVarTest_EmitStatement_Phi_SingleBlockLoopIndex.spvasm.expected.ir.dxc.hlsl
index adbb0c1..a98c74b 100644
--- a/test/tint/unittest/reader/spirv/SpvParserFunctionVarTest_EmitStatement_Phi_SingleBlockLoopIndex.spvasm.expected.ir.dxc.hlsl
+++ b/test/tint/unittest/reader/spirv/SpvParserFunctionVarTest_EmitStatement_Phi_SingleBlockLoopIndex.spvasm.expected.ir.dxc.hlsl
@@ -1,9 +1,48 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:198 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Loop
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+
+static uint x_1 = 0u;
+static bool x_7 = false;
+static bool x_8 = false;
+void main_1() {
+  {
+    while(true) {
+      uint x_2 = 0u;
+      uint x_3 = 0u;
+      bool x_101 = x_7;
+      bool x_102 = x_8;
+      x_2 = 0u;
+      x_3 = 1u;
+      if (x_101) {
+        break;
+      }
+      {
+        while(true) {
+          uint x_3_c20 = x_3;
+          x_2 = (x_2 + 1u);
+          x_3 = x_3_c20;
+          if (x_102) {
+            break;
+          }
+          {
+          }
+          continue;
+        }
+      }
+      {
+      }
+      continue;
+    }
+  }
+}
+
+void main() {
+  main_1();
+}
+
+DXC validation failure:
+error: validation errors
+hlsl.hlsl:37: error: Loop must have break.
+Validation failed.
+
+
diff --git a/test/tint/unittest/reader/spirv/SpvParserFunctionVarTest_EmitStatement_Phi_SingleBlockLoopIndex.spvasm.expected.ir.fxc.hlsl b/test/tint/unittest/reader/spirv/SpvParserFunctionVarTest_EmitStatement_Phi_SingleBlockLoopIndex.spvasm.expected.ir.fxc.hlsl
deleted file mode 100644
index adbb0c1..0000000
--- a/test/tint/unittest/reader/spirv/SpvParserFunctionVarTest_EmitStatement_Phi_SingleBlockLoopIndex.spvasm.expected.ir.fxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:198 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Loop
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/unittest/reader/spirv/SpvParserFunctionVarTest_EmitStatement_UseInPhiCountsAsUse.spvasm.expected.ir.dxc.hlsl b/test/tint/unittest/reader/spirv/SpvParserFunctionVarTest_EmitStatement_UseInPhiCountsAsUse.spvasm.expected.ir.dxc.hlsl
deleted file mode 100644
index bdeab23..0000000
--- a/test/tint/unittest/reader/spirv/SpvParserFunctionVarTest_EmitStatement_UseInPhiCountsAsUse.spvasm.expected.ir.dxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:198 internal compiler error: Switch() matched no cases. Type: tint::core::ir::If
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix 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/SpvParserFunctionVarTest_EmitStatement_UseInPhiCountsAsUse.spvasm.expected.ir.fxc.hlsl b/test/tint/unittest/reader/spirv/SpvParserFunctionVarTest_EmitStatement_UseInPhiCountsAsUse.spvasm.expected.ir.fxc.hlsl
deleted file mode 100644
index bdeab23..0000000
--- a/test/tint/unittest/reader/spirv/SpvParserFunctionVarTest_EmitStatement_UseInPhiCountsAsUse.spvasm.expected.ir.fxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:198 internal compiler error: Switch() matched no cases. Type: tint::core::ir::If
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix 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/SpvParserHandleTest_GetMemoryObjectDeclarationForHandle_Variable_CopyObject.spvasm.expected.ir.fxc.hlsl b/test/tint/unittest/reader/spirv/SpvParserHandleTest_GetMemoryObjectDeclarationForHandle_Variable_CopyObject.spvasm.expected.ir.fxc.hlsl
deleted file mode 100644
index a096ece..0000000
--- a/test/tint/unittest/reader/spirv/SpvParserHandleTest_GetMemoryObjectDeclarationForHandle_Variable_CopyObject.spvasm.expected.ir.fxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-void main_1() {
-}
-
-void main() {
-  main_1();
-}
-
diff --git a/test/tint/unittest/reader/spirv/SpvParserHandleTest_GetMemoryObjectDeclarationForHandle_Variable_Direct.spvasm.expected.ir.fxc.hlsl b/test/tint/unittest/reader/spirv/SpvParserHandleTest_GetMemoryObjectDeclarationForHandle_Variable_Direct.spvasm.expected.ir.fxc.hlsl
deleted file mode 100644
index a096ece..0000000
--- a/test/tint/unittest/reader/spirv/SpvParserHandleTest_GetMemoryObjectDeclarationForHandle_Variable_Direct.spvasm.expected.ir.fxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-void main_1() {
-}
-
-void main() {
-  main_1();
-}
-
diff --git a/test/tint/unittest/reader/spirv/SpvParserHandleTest_GetMemoryObjectDeclarationForHandle_Variable_Image.spvasm.expected.ir.fxc.hlsl b/test/tint/unittest/reader/spirv/SpvParserHandleTest_GetMemoryObjectDeclarationForHandle_Variable_Image.spvasm.expected.ir.fxc.hlsl
deleted file mode 100644
index a096ece..0000000
--- a/test/tint/unittest/reader/spirv/SpvParserHandleTest_GetMemoryObjectDeclarationForHandle_Variable_Image.spvasm.expected.ir.fxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-void main_1() {
-}
-
-void main() {
-  main_1();
-}
-
diff --git a/test/tint/unittest/reader/spirv/SpvParserHandleTest_GetMemoryObjectDeclarationForHandle_Variable_Load.spvasm.expected.ir.fxc.hlsl b/test/tint/unittest/reader/spirv/SpvParserHandleTest_GetMemoryObjectDeclarationForHandle_Variable_Load.spvasm.expected.ir.fxc.hlsl
deleted file mode 100644
index a096ece..0000000
--- a/test/tint/unittest/reader/spirv/SpvParserHandleTest_GetMemoryObjectDeclarationForHandle_Variable_Load.spvasm.expected.ir.fxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-void main_1() {
-}
-
-void main() {
-  main_1();
-}
-
diff --git a/test/tint/unittest/reader/spirv/SpvParserHandleTest_GetMemoryObjectDeclarationForHandle_Variable_SampledImage.spvasm.expected.ir.fxc.hlsl b/test/tint/unittest/reader/spirv/SpvParserHandleTest_GetMemoryObjectDeclarationForHandle_Variable_SampledImage.spvasm.expected.ir.fxc.hlsl
deleted file mode 100644
index a096ece..0000000
--- a/test/tint/unittest/reader/spirv/SpvParserHandleTest_GetMemoryObjectDeclarationForHandle_Variable_SampledImage.spvasm.expected.ir.fxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-void main_1() {
-}
-
-void main() {
-  main_1();
-}
-
diff --git a/test/tint/unittest/reader/spirv/SpvParserHandleTest_NeverGenerateConstDeclForHandle_UseVariableDirectly.spvasm.expected.ir.dxc.hlsl b/test/tint/unittest/reader/spirv/SpvParserHandleTest_NeverGenerateConstDeclForHandle_UseVariableDirectly.spvasm.expected.ir.dxc.hlsl
index 6739938..58230f6 100644
--- a/test/tint/unittest/reader/spirv/SpvParserHandleTest_NeverGenerateConstDeclForHandle_UseVariableDirectly.spvasm.expected.ir.dxc.hlsl
+++ b/test/tint/unittest/reader/spirv/SpvParserHandleTest_NeverGenerateConstDeclForHandle_UseVariableDirectly.spvasm.expected.ir.dxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureSample
+..\..\src\tint\lang\hlsl\writer\printer\printer.cc:1010 internal compiler error: TINT_UNREACHABLE unhandled: textureSample
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/unittest/reader/spirv/SpvParserHandleTest_NeverGenerateConstDeclForHandle_UseVariableDirectly.spvasm.expected.ir.fxc.hlsl b/test/tint/unittest/reader/spirv/SpvParserHandleTest_NeverGenerateConstDeclForHandle_UseVariableDirectly.spvasm.expected.ir.fxc.hlsl
index 6739938..58230f6 100644
--- a/test/tint/unittest/reader/spirv/SpvParserHandleTest_NeverGenerateConstDeclForHandle_UseVariableDirectly.spvasm.expected.ir.fxc.hlsl
+++ b/test/tint/unittest/reader/spirv/SpvParserHandleTest_NeverGenerateConstDeclForHandle_UseVariableDirectly.spvasm.expected.ir.fxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureSample
+..\..\src\tint\lang\hlsl\writer\printer\printer.cc:1010 internal compiler error: TINT_UNREACHABLE unhandled: textureSample
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/unittest/reader/spirv/SpvParserMemoryTest_ArrayLength_FromAccessChain.spvasm.expected.ir.dxc.hlsl b/test/tint/unittest/reader/spirv/SpvParserMemoryTest_ArrayLength_FromAccessChain.spvasm.expected.ir.dxc.hlsl
deleted file mode 100644
index 7492c3a..0000000
--- a/test/tint/unittest/reader/spirv/SpvParserMemoryTest_ArrayLength_FromAccessChain.spvasm.expected.ir.dxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: arrayLength
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix 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/SpvParserMemoryTest_ArrayLength_FromAccessChain.spvasm.expected.ir.fxc.hlsl b/test/tint/unittest/reader/spirv/SpvParserMemoryTest_ArrayLength_FromAccessChain.spvasm.expected.ir.fxc.hlsl
deleted file mode 100644
index 7492c3a..0000000
--- a/test/tint/unittest/reader/spirv/SpvParserMemoryTest_ArrayLength_FromAccessChain.spvasm.expected.ir.fxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: arrayLength
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix 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/SpvParserMemoryTest_ArrayLength_FromVar.spvasm.expected.ir.dxc.hlsl b/test/tint/unittest/reader/spirv/SpvParserMemoryTest_ArrayLength_FromVar.spvasm.expected.ir.dxc.hlsl
deleted file mode 100644
index 7492c3a..0000000
--- a/test/tint/unittest/reader/spirv/SpvParserMemoryTest_ArrayLength_FromVar.spvasm.expected.ir.dxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: arrayLength
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix 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/SpvParserMemoryTest_ArrayLength_FromVar.spvasm.expected.ir.fxc.hlsl b/test/tint/unittest/reader/spirv/SpvParserMemoryTest_ArrayLength_FromVar.spvasm.expected.ir.fxc.hlsl
deleted file mode 100644
index 7492c3a..0000000
--- a/test/tint/unittest/reader/spirv/SpvParserMemoryTest_ArrayLength_FromVar.spvasm.expected.ir.fxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: arrayLength
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix 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/SpvParserMemoryTest_EmitStatement_AccessChain_Array.spvasm.expected.ir.dxc.hlsl b/test/tint/unittest/reader/spirv/SpvParserMemoryTest_EmitStatement_AccessChain_Array.spvasm.expected.ir.dxc.hlsl
deleted file mode 100644
index 3f437dc..0000000
--- a/test/tint/unittest/reader/spirv/SpvParserMemoryTest_EmitStatement_AccessChain_Array.spvasm.expected.ir.dxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Access
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/unittest/reader/spirv/SpvParserMemoryTest_EmitStatement_AccessChain_Array.spvasm.expected.ir.fxc.hlsl b/test/tint/unittest/reader/spirv/SpvParserMemoryTest_EmitStatement_AccessChain_Array.spvasm.expected.ir.fxc.hlsl
deleted file mode 100644
index 3f437dc..0000000
--- a/test/tint/unittest/reader/spirv/SpvParserMemoryTest_EmitStatement_AccessChain_Array.spvasm.expected.ir.fxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Access
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/unittest/reader/spirv/SpvParserMemoryTest_EmitStatement_AccessChain_Compound_Matrix_Vector.spvasm.expected.ir.dxc.hlsl b/test/tint/unittest/reader/spirv/SpvParserMemoryTest_EmitStatement_AccessChain_Compound_Matrix_Vector.spvasm.expected.ir.dxc.hlsl
deleted file mode 100644
index c0935cc..0000000
--- a/test/tint/unittest/reader/spirv/SpvParserMemoryTest_EmitStatement_AccessChain_Compound_Matrix_Vector.spvasm.expected.ir.dxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:198 internal compiler error: Switch() matched no cases. Type: tint::core::ir::StoreVectorElement
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/unittest/reader/spirv/SpvParserMemoryTest_EmitStatement_AccessChain_Compound_Matrix_Vector.spvasm.expected.ir.fxc.hlsl b/test/tint/unittest/reader/spirv/SpvParserMemoryTest_EmitStatement_AccessChain_Compound_Matrix_Vector.spvasm.expected.ir.fxc.hlsl
deleted file mode 100644
index c0935cc..0000000
--- a/test/tint/unittest/reader/spirv/SpvParserMemoryTest_EmitStatement_AccessChain_Compound_Matrix_Vector.spvasm.expected.ir.fxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:198 internal compiler error: Switch() matched no cases. Type: tint::core::ir::StoreVectorElement
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/unittest/reader/spirv/SpvParserMemoryTest_EmitStatement_AccessChain_DereferenceBase.spvasm.expected.ir.dxc.hlsl b/test/tint/unittest/reader/spirv/SpvParserMemoryTest_EmitStatement_AccessChain_DereferenceBase.spvasm.expected.ir.dxc.hlsl
deleted file mode 100644
index 4a2c666..0000000
--- a/test/tint/unittest/reader/spirv/SpvParserMemoryTest_EmitStatement_AccessChain_DereferenceBase.spvasm.expected.ir.dxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::LoadVectorElement
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/unittest/reader/spirv/SpvParserMemoryTest_EmitStatement_AccessChain_DereferenceBase.spvasm.expected.ir.fxc.hlsl b/test/tint/unittest/reader/spirv/SpvParserMemoryTest_EmitStatement_AccessChain_DereferenceBase.spvasm.expected.ir.fxc.hlsl
deleted file mode 100644
index 4a2c666..0000000
--- a/test/tint/unittest/reader/spirv/SpvParserMemoryTest_EmitStatement_AccessChain_DereferenceBase.spvasm.expected.ir.fxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::LoadVectorElement
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/unittest/reader/spirv/SpvParserMemoryTest_EmitStatement_AccessChain_InferFunctionStorageClass.spvasm.expected.ir.fxc.hlsl b/test/tint/unittest/reader/spirv/SpvParserMemoryTest_EmitStatement_AccessChain_InferFunctionStorageClass.spvasm.expected.ir.fxc.hlsl
deleted file mode 100644
index 1e2c9e2..0000000
--- a/test/tint/unittest/reader/spirv/SpvParserMemoryTest_EmitStatement_AccessChain_InferFunctionStorageClass.spvasm.expected.ir.fxc.hlsl
+++ /dev/null
@@ -1,10 +0,0 @@
-SKIP: FAILED
-
-void main_1() {
-  uint x_1 = 0u;
-}
-
-void main() {
-  main_1();
-}
-
diff --git a/test/tint/unittest/reader/spirv/SpvParserMemoryTest_EmitStatement_AccessChain_Matrix.spvasm.expected.ir.dxc.hlsl b/test/tint/unittest/reader/spirv/SpvParserMemoryTest_EmitStatement_AccessChain_Matrix.spvasm.expected.ir.dxc.hlsl
deleted file mode 100644
index 3f437dc..0000000
--- a/test/tint/unittest/reader/spirv/SpvParserMemoryTest_EmitStatement_AccessChain_Matrix.spvasm.expected.ir.dxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Access
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/unittest/reader/spirv/SpvParserMemoryTest_EmitStatement_AccessChain_Matrix.spvasm.expected.ir.fxc.hlsl b/test/tint/unittest/reader/spirv/SpvParserMemoryTest_EmitStatement_AccessChain_Matrix.spvasm.expected.ir.fxc.hlsl
deleted file mode 100644
index 3f437dc..0000000
--- a/test/tint/unittest/reader/spirv/SpvParserMemoryTest_EmitStatement_AccessChain_Matrix.spvasm.expected.ir.fxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Access
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/unittest/reader/spirv/SpvParserMemoryTest_EmitStatement_AccessChain_Struct.spvasm.expected.ir.dxc.hlsl b/test/tint/unittest/reader/spirv/SpvParserMemoryTest_EmitStatement_AccessChain_Struct.spvasm.expected.ir.dxc.hlsl
deleted file mode 100644
index 3f437dc..0000000
--- a/test/tint/unittest/reader/spirv/SpvParserMemoryTest_EmitStatement_AccessChain_Struct.spvasm.expected.ir.dxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Access
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/unittest/reader/spirv/SpvParserMemoryTest_EmitStatement_AccessChain_Struct.spvasm.expected.ir.fxc.hlsl b/test/tint/unittest/reader/spirv/SpvParserMemoryTest_EmitStatement_AccessChain_Struct.spvasm.expected.ir.fxc.hlsl
deleted file mode 100644
index 3f437dc..0000000
--- a/test/tint/unittest/reader/spirv/SpvParserMemoryTest_EmitStatement_AccessChain_Struct.spvasm.expected.ir.fxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Access
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/unittest/reader/spirv/SpvParserMemoryTest_EmitStatement_AccessChain_Struct_DifferOnlyMemberName.spvasm.expected.ir.dxc.hlsl b/test/tint/unittest/reader/spirv/SpvParserMemoryTest_EmitStatement_AccessChain_Struct_DifferOnlyMemberName.spvasm.expected.ir.dxc.hlsl
deleted file mode 100644
index 3f437dc..0000000
--- a/test/tint/unittest/reader/spirv/SpvParserMemoryTest_EmitStatement_AccessChain_Struct_DifferOnlyMemberName.spvasm.expected.ir.dxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Access
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/unittest/reader/spirv/SpvParserMemoryTest_EmitStatement_AccessChain_Struct_DifferOnlyMemberName.spvasm.expected.ir.fxc.hlsl b/test/tint/unittest/reader/spirv/SpvParserMemoryTest_EmitStatement_AccessChain_Struct_DifferOnlyMemberName.spvasm.expected.ir.fxc.hlsl
deleted file mode 100644
index 3f437dc..0000000
--- a/test/tint/unittest/reader/spirv/SpvParserMemoryTest_EmitStatement_AccessChain_Struct_DifferOnlyMemberName.spvasm.expected.ir.fxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Access
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/unittest/reader/spirv/SpvParserMemoryTest_EmitStatement_AccessChain_Struct_RuntimeArray.spvasm.expected.ir.dxc.hlsl b/test/tint/unittest/reader/spirv/SpvParserMemoryTest_EmitStatement_AccessChain_Struct_RuntimeArray.spvasm.expected.ir.dxc.hlsl
deleted file mode 100644
index 3f437dc..0000000
--- a/test/tint/unittest/reader/spirv/SpvParserMemoryTest_EmitStatement_AccessChain_Struct_RuntimeArray.spvasm.expected.ir.dxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Access
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/unittest/reader/spirv/SpvParserMemoryTest_EmitStatement_AccessChain_Struct_RuntimeArray.spvasm.expected.ir.fxc.hlsl b/test/tint/unittest/reader/spirv/SpvParserMemoryTest_EmitStatement_AccessChain_Struct_RuntimeArray.spvasm.expected.ir.fxc.hlsl
deleted file mode 100644
index 3f437dc..0000000
--- a/test/tint/unittest/reader/spirv/SpvParserMemoryTest_EmitStatement_AccessChain_Struct_RuntimeArray.spvasm.expected.ir.fxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Access
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/unittest/reader/spirv/SpvParserMemoryTest_EmitStatement_AccessChain_VectorNonConstIndex.spvasm.expected.ir.dxc.hlsl b/test/tint/unittest/reader/spirv/SpvParserMemoryTest_EmitStatement_AccessChain_VectorNonConstIndex.spvasm.expected.ir.dxc.hlsl
deleted file mode 100644
index 4a2c666..0000000
--- a/test/tint/unittest/reader/spirv/SpvParserMemoryTest_EmitStatement_AccessChain_VectorNonConstIndex.spvasm.expected.ir.dxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::LoadVectorElement
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/unittest/reader/spirv/SpvParserMemoryTest_EmitStatement_AccessChain_VectorNonConstIndex.spvasm.expected.ir.fxc.hlsl b/test/tint/unittest/reader/spirv/SpvParserMemoryTest_EmitStatement_AccessChain_VectorNonConstIndex.spvasm.expected.ir.fxc.hlsl
deleted file mode 100644
index 4a2c666..0000000
--- a/test/tint/unittest/reader/spirv/SpvParserMemoryTest_EmitStatement_AccessChain_VectorNonConstIndex.spvasm.expected.ir.fxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::LoadVectorElement
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/unittest/reader/spirv/SpvParserMemoryTest_EmitStatement_AccessChain_VectorSwizzle.spvasm.expected.ir.dxc.hlsl b/test/tint/unittest/reader/spirv/SpvParserMemoryTest_EmitStatement_AccessChain_VectorSwizzle.spvasm.expected.ir.dxc.hlsl
deleted file mode 100644
index c0935cc..0000000
--- a/test/tint/unittest/reader/spirv/SpvParserMemoryTest_EmitStatement_AccessChain_VectorSwizzle.spvasm.expected.ir.dxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:198 internal compiler error: Switch() matched no cases. Type: tint::core::ir::StoreVectorElement
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/unittest/reader/spirv/SpvParserMemoryTest_EmitStatement_AccessChain_VectorSwizzle.spvasm.expected.ir.fxc.hlsl b/test/tint/unittest/reader/spirv/SpvParserMemoryTest_EmitStatement_AccessChain_VectorSwizzle.spvasm.expected.ir.fxc.hlsl
deleted file mode 100644
index c0935cc..0000000
--- a/test/tint/unittest/reader/spirv/SpvParserMemoryTest_EmitStatement_AccessChain_VectorSwizzle.spvasm.expected.ir.fxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:198 internal compiler error: Switch() matched no cases. Type: tint::core::ir::StoreVectorElement
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/unittest/reader/spirv/SpvParserMemoryTest_EmitStatement_CopyMemory_Scalar_Function_To_Private.spvasm.expected.ir.dxc.hlsl b/test/tint/unittest/reader/spirv/SpvParserMemoryTest_EmitStatement_CopyMemory_Scalar_Function_To_Private.spvasm.expected.ir.dxc.hlsl
deleted file mode 100644
index 2c0ce5f..0000000
--- a/test/tint/unittest/reader/spirv/SpvParserMemoryTest_EmitStatement_CopyMemory_Scalar_Function_To_Private.spvasm.expected.ir.dxc.hlsl
+++ /dev/null
@@ -1,20 +0,0 @@
-SKIP: FAILED
-
-void main_1() {
-  uint x_1 = 0u;
-  x_2 = x_1;
-}
-
-void main() {
-  main_1();
-}
-
-DXC validation failure:
-hlsl.hlsl:3:3: error: use of undeclared identifier 'x_2'; did you mean 'x_1'?
-  x_2 = x_1;
-  ^~~
-  x_1
-hlsl.hlsl:2:8: note: 'x_1' declared here
-  uint x_1 = 0u;
-       ^
-
diff --git a/test/tint/unittest/reader/spirv/SpvParserMemoryTest_EmitStatement_CopyMemory_Scalar_Function_To_Private.spvasm.expected.ir.fxc.hlsl b/test/tint/unittest/reader/spirv/SpvParserMemoryTest_EmitStatement_CopyMemory_Scalar_Function_To_Private.spvasm.expected.ir.fxc.hlsl
deleted file mode 100644
index b68b896..0000000
--- a/test/tint/unittest/reader/spirv/SpvParserMemoryTest_EmitStatement_CopyMemory_Scalar_Function_To_Private.spvasm.expected.ir.fxc.hlsl
+++ /dev/null
@@ -1,11 +0,0 @@
-SKIP: FAILED
-
-void main_1() {
-  uint x_1 = 0u;
-  x_2 = x_1;
-}
-
-void main() {
-  main_1();
-}
-
diff --git a/test/tint/unittest/reader/spirv/SpvParserMemoryTest_EmitStatement_LoadBool.spvasm.expected.ir.fxc.hlsl b/test/tint/unittest/reader/spirv/SpvParserMemoryTest_EmitStatement_LoadBool.spvasm.expected.ir.fxc.hlsl
deleted file mode 100644
index 9e46605..0000000
--- a/test/tint/unittest/reader/spirv/SpvParserMemoryTest_EmitStatement_LoadBool.spvasm.expected.ir.fxc.hlsl
+++ /dev/null
@@ -1,11 +0,0 @@
-SKIP: FAILED
-
-void main_1() {
-  bool x_1 = true;
-  bool x_2 = x_1;
-}
-
-void main() {
-  main_1();
-}
-
diff --git a/test/tint/unittest/reader/spirv/SpvParserMemoryTest_EmitStatement_LoadScalar.spvasm.expected.ir.fxc.hlsl b/test/tint/unittest/reader/spirv/SpvParserMemoryTest_EmitStatement_LoadScalar.spvasm.expected.ir.fxc.hlsl
deleted file mode 100644
index 6ed5ada..0000000
--- a/test/tint/unittest/reader/spirv/SpvParserMemoryTest_EmitStatement_LoadScalar.spvasm.expected.ir.fxc.hlsl
+++ /dev/null
@@ -1,12 +0,0 @@
-SKIP: FAILED
-
-void main_1() {
-  uint x_1 = 42u;
-  uint x_2 = x_1;
-  uint x_3 = x_1;
-}
-
-void main() {
-  main_1();
-}
-
diff --git a/test/tint/unittest/reader/spirv/SpvParserMemoryTest_EmitStatement_StoreBoolConst.spvasm.expected.ir.fxc.hlsl b/test/tint/unittest/reader/spirv/SpvParserMemoryTest_EmitStatement_StoreBoolConst.spvasm.expected.ir.fxc.hlsl
deleted file mode 100644
index 673e727..0000000
--- a/test/tint/unittest/reader/spirv/SpvParserMemoryTest_EmitStatement_StoreBoolConst.spvasm.expected.ir.fxc.hlsl
+++ /dev/null
@@ -1,13 +0,0 @@
-SKIP: FAILED
-
-void main_1() {
-  bool x_1 = false;
-  x_1 = true;
-  x_1 = false;
-  x_1 = false;
-}
-
-void main() {
-  main_1();
-}
-
diff --git a/test/tint/unittest/reader/spirv/SpvParserMemoryTest_EmitStatement_StoreFloatConst.spvasm.expected.ir.fxc.hlsl b/test/tint/unittest/reader/spirv/SpvParserMemoryTest_EmitStatement_StoreFloatConst.spvasm.expected.ir.fxc.hlsl
deleted file mode 100644
index 76b1d58..0000000
--- a/test/tint/unittest/reader/spirv/SpvParserMemoryTest_EmitStatement_StoreFloatConst.spvasm.expected.ir.fxc.hlsl
+++ /dev/null
@@ -1,12 +0,0 @@
-SKIP: FAILED
-
-void main_1() {
-  float x_1 = 0.0f;
-  x_1 = 42.0f;
-  x_1 = 0.0f;
-}
-
-void main() {
-  main_1();
-}
-
diff --git a/test/tint/unittest/reader/spirv/SpvParserMemoryTest_EmitStatement_StoreIntConst.spvasm.expected.ir.fxc.hlsl b/test/tint/unittest/reader/spirv/SpvParserMemoryTest_EmitStatement_StoreIntConst.spvasm.expected.ir.fxc.hlsl
deleted file mode 100644
index e4d69ee..0000000
--- a/test/tint/unittest/reader/spirv/SpvParserMemoryTest_EmitStatement_StoreIntConst.spvasm.expected.ir.fxc.hlsl
+++ /dev/null
@@ -1,12 +0,0 @@
-SKIP: FAILED
-
-void main_1() {
-  int x_1 = 0;
-  x_1 = 42;
-  x_1 = 0;
-}
-
-void main() {
-  main_1();
-}
-
diff --git a/test/tint/unittest/reader/spirv/SpvParserMemoryTest_EmitStatement_StoreToModuleScopeVar.spvasm.expected.ir.dxc.hlsl b/test/tint/unittest/reader/spirv/SpvParserMemoryTest_EmitStatement_StoreToModuleScopeVar.spvasm.expected.ir.dxc.hlsl
deleted file mode 100644
index e9e8f33..0000000
--- a/test/tint/unittest/reader/spirv/SpvParserMemoryTest_EmitStatement_StoreToModuleScopeVar.spvasm.expected.ir.dxc.hlsl
+++ /dev/null
@@ -1,15 +0,0 @@
-SKIP: FAILED
-
-void main_1() {
-  x_1 = 42u;
-}
-
-void main() {
-  main_1();
-}
-
-DXC validation failure:
-hlsl.hlsl:2:3: error: use of undeclared identifier 'x_1'
-  x_1 = 42u;
-  ^
-
diff --git a/test/tint/unittest/reader/spirv/SpvParserMemoryTest_EmitStatement_StoreToModuleScopeVar.spvasm.expected.ir.fxc.hlsl b/test/tint/unittest/reader/spirv/SpvParserMemoryTest_EmitStatement_StoreToModuleScopeVar.spvasm.expected.ir.fxc.hlsl
deleted file mode 100644
index d1ebbf6..0000000
--- a/test/tint/unittest/reader/spirv/SpvParserMemoryTest_EmitStatement_StoreToModuleScopeVar.spvasm.expected.ir.fxc.hlsl
+++ /dev/null
@@ -1,10 +0,0 @@
-SKIP: FAILED
-
-void main_1() {
-  x_1 = 42u;
-}
-
-void main() {
-  main_1();
-}
-
diff --git a/test/tint/unittest/reader/spirv/SpvParserMemoryTest_EmitStatement_StoreUintConst.spvasm.expected.ir.fxc.hlsl b/test/tint/unittest/reader/spirv/SpvParserMemoryTest_EmitStatement_StoreUintConst.spvasm.expected.ir.fxc.hlsl
deleted file mode 100644
index 8a0140f..0000000
--- a/test/tint/unittest/reader/spirv/SpvParserMemoryTest_EmitStatement_StoreUintConst.spvasm.expected.ir.fxc.hlsl
+++ /dev/null
@@ -1,12 +0,0 @@
-SKIP: FAILED
-
-void main_1() {
-  uint x_1 = 0u;
-  x_1 = 42u;
-  x_1 = 0u;
-}
-
-void main() {
-  main_1();
-}
-
diff --git a/test/tint/unittest/reader/spirv/SpvParserMemoryTest_EmitStatement_UseLoadedScalarTwice.spvasm.expected.ir.fxc.hlsl b/test/tint/unittest/reader/spirv/SpvParserMemoryTest_EmitStatement_UseLoadedScalarTwice.spvasm.expected.ir.fxc.hlsl
deleted file mode 100644
index bbaa59c..0000000
--- a/test/tint/unittest/reader/spirv/SpvParserMemoryTest_EmitStatement_UseLoadedScalarTwice.spvasm.expected.ir.fxc.hlsl
+++ /dev/null
@@ -1,13 +0,0 @@
-SKIP: FAILED
-
-void main_1() {
-  uint x_1 = 42u;
-  uint x_2 = x_1;
-  x_1 = x_1;
-  x_1 = x_2;
-}
-
-void main() {
-  main_1();
-}
-
diff --git a/test/tint/unittest/reader/spirv/SpvParserMemoryTest_RemapStorageBuffer_ThroughAccessChain_Cascaded.spvasm.expected.ir.dxc.hlsl b/test/tint/unittest/reader/spirv/SpvParserMemoryTest_RemapStorageBuffer_ThroughAccessChain_Cascaded.spvasm.expected.ir.dxc.hlsl
deleted file mode 100644
index 3f437dc..0000000
--- a/test/tint/unittest/reader/spirv/SpvParserMemoryTest_RemapStorageBuffer_ThroughAccessChain_Cascaded.spvasm.expected.ir.dxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Access
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/unittest/reader/spirv/SpvParserMemoryTest_RemapStorageBuffer_ThroughAccessChain_Cascaded.spvasm.expected.ir.fxc.hlsl b/test/tint/unittest/reader/spirv/SpvParserMemoryTest_RemapStorageBuffer_ThroughAccessChain_Cascaded.spvasm.expected.ir.fxc.hlsl
deleted file mode 100644
index 3f437dc..0000000
--- a/test/tint/unittest/reader/spirv/SpvParserMemoryTest_RemapStorageBuffer_ThroughAccessChain_Cascaded.spvasm.expected.ir.fxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Access
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/unittest/reader/spirv/SpvParserMemoryTest_RemapStorageBuffer_ThroughAccessChain_NonCascaded.spvasm.expected.ir.dxc.hlsl b/test/tint/unittest/reader/spirv/SpvParserMemoryTest_RemapStorageBuffer_ThroughAccessChain_NonCascaded.spvasm.expected.ir.dxc.hlsl
deleted file mode 100644
index 3f437dc..0000000
--- a/test/tint/unittest/reader/spirv/SpvParserMemoryTest_RemapStorageBuffer_ThroughAccessChain_NonCascaded.spvasm.expected.ir.dxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Access
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/unittest/reader/spirv/SpvParserMemoryTest_RemapStorageBuffer_ThroughAccessChain_NonCascaded.spvasm.expected.ir.fxc.hlsl b/test/tint/unittest/reader/spirv/SpvParserMemoryTest_RemapStorageBuffer_ThroughAccessChain_NonCascaded.spvasm.expected.ir.fxc.hlsl
deleted file mode 100644
index 3f437dc..0000000
--- a/test/tint/unittest/reader/spirv/SpvParserMemoryTest_RemapStorageBuffer_ThroughAccessChain_NonCascaded.spvasm.expected.ir.fxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Access
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/unittest/reader/spirv/SpvParserMemoryTest_RemapStorageBuffer_ThroughAccessChain_NonCascaded_InBoundsAccessChain.spvasm.expected.ir.dxc.hlsl b/test/tint/unittest/reader/spirv/SpvParserMemoryTest_RemapStorageBuffer_ThroughAccessChain_NonCascaded_InBoundsAccessChain.spvasm.expected.ir.dxc.hlsl
deleted file mode 100644
index 3f437dc..0000000
--- a/test/tint/unittest/reader/spirv/SpvParserMemoryTest_RemapStorageBuffer_ThroughAccessChain_NonCascaded_InBoundsAccessChain.spvasm.expected.ir.dxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Access
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/unittest/reader/spirv/SpvParserMemoryTest_RemapStorageBuffer_ThroughAccessChain_NonCascaded_InBoundsAccessChain.spvasm.expected.ir.fxc.hlsl b/test/tint/unittest/reader/spirv/SpvParserMemoryTest_RemapStorageBuffer_ThroughAccessChain_NonCascaded_InBoundsAccessChain.spvasm.expected.ir.fxc.hlsl
deleted file mode 100644
index 3f437dc..0000000
--- a/test/tint/unittest/reader/spirv/SpvParserMemoryTest_RemapStorageBuffer_ThroughAccessChain_NonCascaded_InBoundsAccessChain.spvasm.expected.ir.fxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Access
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/unittest/reader/spirv/SpvParserMemoryTest_RemapStorageBuffer_TypesAndVarDeclarations.spvasm.expected.ir.fxc.hlsl b/test/tint/unittest/reader/spirv/SpvParserMemoryTest_RemapStorageBuffer_TypesAndVarDeclarations.spvasm.expected.ir.fxc.hlsl
deleted file mode 100644
index a096ece..0000000
--- a/test/tint/unittest/reader/spirv/SpvParserMemoryTest_RemapStorageBuffer_TypesAndVarDeclarations.spvasm.expected.ir.fxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-void main_1() {
-}
-
-void main() {
-  main_1();
-}
-
diff --git a/test/tint/unittest/reader/spirv/SpvParserTestMiscInstruction_OpNop.spvasm.expected.ir.fxc.hlsl b/test/tint/unittest/reader/spirv/SpvParserTestMiscInstruction_OpNop.spvasm.expected.ir.fxc.hlsl
deleted file mode 100644
index a096ece..0000000
--- a/test/tint/unittest/reader/spirv/SpvParserTestMiscInstruction_OpNop.spvasm.expected.ir.fxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-void main_1() {
-}
-
-void main() {
-  main_1();
-}
-
diff --git a/test/tint/unittest/reader/spirv/SpvParserTestMiscInstruction_OpUndef_BeforeFunction_Scalar.spvasm.expected.ir.fxc.hlsl b/test/tint/unittest/reader/spirv/SpvParserTestMiscInstruction_OpUndef_BeforeFunction_Scalar.spvasm.expected.ir.fxc.hlsl
deleted file mode 100644
index c152591..0000000
--- a/test/tint/unittest/reader/spirv/SpvParserTestMiscInstruction_OpUndef_BeforeFunction_Scalar.spvasm.expected.ir.fxc.hlsl
+++ /dev/null
@@ -1,13 +0,0 @@
-SKIP: FAILED
-
-void main_1() {
-  bool x_11 = false;
-  uint x_12 = 0u;
-  int x_13 = 0;
-  float x_14 = 0.0f;
-}
-
-void main() {
-  main_1();
-}
-
diff --git a/test/tint/unittest/reader/spirv/SpvParserTestMiscInstruction_OpUndef_BeforeFunction_Vector.spvasm.expected.ir.fxc.hlsl b/test/tint/unittest/reader/spirv/SpvParserTestMiscInstruction_OpUndef_BeforeFunction_Vector.spvasm.expected.ir.fxc.hlsl
deleted file mode 100644
index 1feb21f..0000000
--- a/test/tint/unittest/reader/spirv/SpvParserTestMiscInstruction_OpUndef_BeforeFunction_Vector.spvasm.expected.ir.fxc.hlsl
+++ /dev/null
@@ -1,13 +0,0 @@
-SKIP: FAILED
-
-void main_1() {
-  bool2 x_14 = (false).xx;
-  uint2 x_11 = (0u).xx;
-  int2 x_12 = (0).xx;
-  float2 x_13 = (0.0f).xx;
-}
-
-void main() {
-  main_1();
-}
-
diff --git a/test/tint/unittest/reader/spirv/SpvParserTestMiscInstruction_OpUndef_InFunction_Array.spvasm.expected.ir.dxc.hlsl b/test/tint/unittest/reader/spirv/SpvParserTestMiscInstruction_OpUndef_InFunction_Array.spvasm.expected.ir.dxc.hlsl
deleted file mode 100644
index 3a8cc1b..0000000
--- a/test/tint/unittest/reader/spirv/SpvParserTestMiscInstruction_OpUndef_InFunction_Array.spvasm.expected.ir.dxc.hlsl
+++ /dev/null
@@ -1,16 +0,0 @@
-SKIP: FAILED
-
-void main_1() {
-  uint[2] x_11 = (uint[2])0;
-}
-
-void main() {
-  main_1();
-}
-
-DXC validation failure:
-hlsl.hlsl:2:15: error: brackets are not allowed here; to declare an array, place the brackets after the name
-  uint[2] x_11 = (uint[2])0;
-      ~~~     ^
-              [2]
-
diff --git a/test/tint/unittest/reader/spirv/SpvParserTestMiscInstruction_OpUndef_InFunction_Array.spvasm.expected.ir.fxc.hlsl b/test/tint/unittest/reader/spirv/SpvParserTestMiscInstruction_OpUndef_InFunction_Array.spvasm.expected.ir.fxc.hlsl
deleted file mode 100644
index 3d11282..0000000
--- a/test/tint/unittest/reader/spirv/SpvParserTestMiscInstruction_OpUndef_InFunction_Array.spvasm.expected.ir.fxc.hlsl
+++ /dev/null
@@ -1,10 +0,0 @@
-SKIP: FAILED
-
-void main_1() {
-  uint[2] x_11 = (uint[2])0;
-}
-
-void main() {
-  main_1();
-}
-
diff --git a/test/tint/unittest/reader/spirv/SpvParserTestMiscInstruction_OpUndef_InFunction_Matrix.spvasm.expected.ir.fxc.hlsl b/test/tint/unittest/reader/spirv/SpvParserTestMiscInstruction_OpUndef_InFunction_Matrix.spvasm.expected.ir.fxc.hlsl
deleted file mode 100644
index c69f699..0000000
--- a/test/tint/unittest/reader/spirv/SpvParserTestMiscInstruction_OpUndef_InFunction_Matrix.spvasm.expected.ir.fxc.hlsl
+++ /dev/null
@@ -1,10 +0,0 @@
-SKIP: FAILED
-
-void main_1() {
-  float2x2 x_11 = float2x2((0.0f).xx, (0.0f).xx);
-}
-
-void main() {
-  main_1();
-}
-
diff --git a/test/tint/unittest/reader/spirv/SpvParserTestMiscInstruction_OpUndef_InFunction_Scalar.spvasm.expected.ir.fxc.hlsl b/test/tint/unittest/reader/spirv/SpvParserTestMiscInstruction_OpUndef_InFunction_Scalar.spvasm.expected.ir.fxc.hlsl
deleted file mode 100644
index c152591..0000000
--- a/test/tint/unittest/reader/spirv/SpvParserTestMiscInstruction_OpUndef_InFunction_Scalar.spvasm.expected.ir.fxc.hlsl
+++ /dev/null
@@ -1,13 +0,0 @@
-SKIP: FAILED
-
-void main_1() {
-  bool x_11 = false;
-  uint x_12 = 0u;
-  int x_13 = 0;
-  float x_14 = 0.0f;
-}
-
-void main() {
-  main_1();
-}
-
diff --git a/test/tint/unittest/reader/spirv/SpvParserTestMiscInstruction_OpUndef_InFunction_Struct.spvasm.expected.ir.dxc.hlsl b/test/tint/unittest/reader/spirv/SpvParserTestMiscInstruction_OpUndef_InFunction_Struct.spvasm.expected.ir.dxc.hlsl
deleted file mode 100644
index 0ba40c6..0000000
--- a/test/tint/unittest/reader/spirv/SpvParserTestMiscInstruction_OpUndef_InFunction_Struct.spvasm.expected.ir.dxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix 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/SpvParserTestMiscInstruction_OpUndef_InFunction_Struct.spvasm.expected.ir.fxc.hlsl b/test/tint/unittest/reader/spirv/SpvParserTestMiscInstruction_OpUndef_InFunction_Struct.spvasm.expected.ir.fxc.hlsl
deleted file mode 100644
index 0ba40c6..0000000
--- a/test/tint/unittest/reader/spirv/SpvParserTestMiscInstruction_OpUndef_InFunction_Struct.spvasm.expected.ir.fxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix 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/SpvParserTestMiscInstruction_OpUndef_InFunction_Vector.spvasm.expected.ir.fxc.hlsl b/test/tint/unittest/reader/spirv/SpvParserTestMiscInstruction_OpUndef_InFunction_Vector.spvasm.expected.ir.fxc.hlsl
deleted file mode 100644
index 2d5e971..0000000
--- a/test/tint/unittest/reader/spirv/SpvParserTestMiscInstruction_OpUndef_InFunction_Vector.spvasm.expected.ir.fxc.hlsl
+++ /dev/null
@@ -1,12 +0,0 @@
-SKIP: FAILED
-
-void main_1() {
-  uint2 x_11 = (0u).xx;
-  int2 x_12 = (0).xx;
-  float2 x_13 = (0.0f).xx;
-}
-
-void main() {
-  main_1();
-}
-
diff --git a/test/tint/unittest/reader/spirv/SpvParserTest_BitwiseAnd_MixedSignedness_SpvBinaryBitGeneralTest_EmitExpression_0.spvasm.expected.ir.fxc.hlsl b/test/tint/unittest/reader/spirv/SpvParserTest_BitwiseAnd_MixedSignedness_SpvBinaryBitGeneralTest_EmitExpression_0.spvasm.expected.ir.fxc.hlsl
deleted file mode 100644
index eaee1f0..0000000
--- a/test/tint/unittest/reader/spirv/SpvParserTest_BitwiseAnd_MixedSignedness_SpvBinaryBitGeneralTest_EmitExpression_0.spvasm.expected.ir.fxc.hlsl
+++ /dev/null
@@ -1,10 +0,0 @@
-SKIP: FAILED
-
-void main_1() {
-  uint x_1 = 10u;
-}
-
-void main() {
-  main_1();
-}
-
diff --git a/test/tint/unittest/reader/spirv/SpvParserTest_BitwiseAnd_MixedSignedness_SpvBinaryBitGeneralTest_EmitExpression_1.spvasm.expected.ir.fxc.hlsl b/test/tint/unittest/reader/spirv/SpvParserTest_BitwiseAnd_MixedSignedness_SpvBinaryBitGeneralTest_EmitExpression_1.spvasm.expected.ir.fxc.hlsl
deleted file mode 100644
index 297e60f..0000000
--- a/test/tint/unittest/reader/spirv/SpvParserTest_BitwiseAnd_MixedSignedness_SpvBinaryBitGeneralTest_EmitExpression_1.spvasm.expected.ir.fxc.hlsl
+++ /dev/null
@@ -1,10 +0,0 @@
-SKIP: FAILED
-
-void main_1() {
-  int x_1 = 10;
-}
-
-void main() {
-  main_1();
-}
-
diff --git a/test/tint/unittest/reader/spirv/SpvParserTest_BitwiseAnd_MixedSignedness_SpvBinaryBitGeneralTest_EmitExpression_2.spvasm.expected.ir.fxc.hlsl b/test/tint/unittest/reader/spirv/SpvParserTest_BitwiseAnd_MixedSignedness_SpvBinaryBitGeneralTest_EmitExpression_2.spvasm.expected.ir.fxc.hlsl
deleted file mode 100644
index eaee1f0..0000000
--- a/test/tint/unittest/reader/spirv/SpvParserTest_BitwiseAnd_MixedSignedness_SpvBinaryBitGeneralTest_EmitExpression_2.spvasm.expected.ir.fxc.hlsl
+++ /dev/null
@@ -1,10 +0,0 @@
-SKIP: FAILED
-
-void main_1() {
-  uint x_1 = 10u;
-}
-
-void main() {
-  main_1();
-}
-
diff --git a/test/tint/unittest/reader/spirv/SpvParserTest_BitwiseAnd_MixedSignedness_SpvBinaryBitGeneralTest_EmitExpression_3.spvasm.expected.ir.fxc.hlsl b/test/tint/unittest/reader/spirv/SpvParserTest_BitwiseAnd_MixedSignedness_SpvBinaryBitGeneralTest_EmitExpression_3.spvasm.expected.ir.fxc.hlsl
deleted file mode 100644
index ae4836b..0000000
--- a/test/tint/unittest/reader/spirv/SpvParserTest_BitwiseAnd_MixedSignedness_SpvBinaryBitGeneralTest_EmitExpression_3.spvasm.expected.ir.fxc.hlsl
+++ /dev/null
@@ -1,10 +0,0 @@
-SKIP: FAILED
-
-void main_1() {
-  int x_1 = 0;
-}
-
-void main() {
-  main_1();
-}
-
diff --git a/test/tint/unittest/reader/spirv/SpvParserTest_BitwiseAnd_MixedSignedness_SpvBinaryBitGeneralTest_EmitExpression_4.spvasm.expected.ir.fxc.hlsl b/test/tint/unittest/reader/spirv/SpvParserTest_BitwiseAnd_MixedSignedness_SpvBinaryBitGeneralTest_EmitExpression_4.spvasm.expected.ir.fxc.hlsl
deleted file mode 100644
index 9c49d3e..0000000
--- a/test/tint/unittest/reader/spirv/SpvParserTest_BitwiseAnd_MixedSignedness_SpvBinaryBitGeneralTest_EmitExpression_4.spvasm.expected.ir.fxc.hlsl
+++ /dev/null
@@ -1,10 +0,0 @@
-SKIP: FAILED
-
-void main_1() {
-  uint2 x_1 = uint2(10u, 0u);
-}
-
-void main() {
-  main_1();
-}
-
diff --git a/test/tint/unittest/reader/spirv/SpvParserTest_BitwiseAnd_MixedSignedness_SpvBinaryBitGeneralTest_EmitExpression_5.spvasm.expected.ir.fxc.hlsl b/test/tint/unittest/reader/spirv/SpvParserTest_BitwiseAnd_MixedSignedness_SpvBinaryBitGeneralTest_EmitExpression_5.spvasm.expected.ir.fxc.hlsl
deleted file mode 100644
index ed6c744..0000000
--- a/test/tint/unittest/reader/spirv/SpvParserTest_BitwiseAnd_MixedSignedness_SpvBinaryBitGeneralTest_EmitExpression_5.spvasm.expected.ir.fxc.hlsl
+++ /dev/null
@@ -1,10 +0,0 @@
-SKIP: FAILED
-
-void main_1() {
-  int2 x_1 = int2(8, 20);
-}
-
-void main() {
-  main_1();
-}
-
diff --git a/test/tint/unittest/reader/spirv/SpvParserTest_BitwiseAnd_SpvBinaryBitTest_EmitExpression_0.spvasm.expected.ir.fxc.hlsl b/test/tint/unittest/reader/spirv/SpvParserTest_BitwiseAnd_SpvBinaryBitTest_EmitExpression_0.spvasm.expected.ir.fxc.hlsl
deleted file mode 100644
index 1e2c9e2..0000000
--- a/test/tint/unittest/reader/spirv/SpvParserTest_BitwiseAnd_SpvBinaryBitTest_EmitExpression_0.spvasm.expected.ir.fxc.hlsl
+++ /dev/null
@@ -1,10 +0,0 @@
-SKIP: FAILED
-
-void main_1() {
-  uint x_1 = 0u;
-}
-
-void main() {
-  main_1();
-}
-
diff --git a/test/tint/unittest/reader/spirv/SpvParserTest_BitwiseAnd_SpvBinaryBitTest_EmitExpression_1.spvasm.expected.ir.fxc.hlsl b/test/tint/unittest/reader/spirv/SpvParserTest_BitwiseAnd_SpvBinaryBitTest_EmitExpression_1.spvasm.expected.ir.fxc.hlsl
deleted file mode 100644
index 708313f..0000000
--- a/test/tint/unittest/reader/spirv/SpvParserTest_BitwiseAnd_SpvBinaryBitTest_EmitExpression_1.spvasm.expected.ir.fxc.hlsl
+++ /dev/null
@@ -1,10 +0,0 @@
-SKIP: FAILED
-
-void main_1() {
-  int x_1 = 8;
-}
-
-void main() {
-  main_1();
-}
-
diff --git a/test/tint/unittest/reader/spirv/SpvParserTest_BitwiseAnd_SpvBinaryBitTest_EmitExpression_2.spvasm.expected.ir.fxc.hlsl b/test/tint/unittest/reader/spirv/SpvParserTest_BitwiseAnd_SpvBinaryBitTest_EmitExpression_2.spvasm.expected.ir.fxc.hlsl
deleted file mode 100644
index 08a65e5..0000000
--- a/test/tint/unittest/reader/spirv/SpvParserTest_BitwiseAnd_SpvBinaryBitTest_EmitExpression_2.spvasm.expected.ir.fxc.hlsl
+++ /dev/null
@@ -1,10 +0,0 @@
-SKIP: FAILED
-
-void main_1() {
-  uint2 x_1 = (0u).xx;
-}
-
-void main() {
-  main_1();
-}
-
diff --git a/test/tint/unittest/reader/spirv/SpvParserTest_BitwiseAnd_SpvBinaryBitTest_EmitExpression_3.spvasm.expected.ir.fxc.hlsl b/test/tint/unittest/reader/spirv/SpvParserTest_BitwiseAnd_SpvBinaryBitTest_EmitExpression_3.spvasm.expected.ir.fxc.hlsl
deleted file mode 100644
index bcc8229..0000000
--- a/test/tint/unittest/reader/spirv/SpvParserTest_BitwiseAnd_SpvBinaryBitTest_EmitExpression_3.spvasm.expected.ir.fxc.hlsl
+++ /dev/null
@@ -1,10 +0,0 @@
-SKIP: FAILED
-
-void main_1() {
-  int2 x_1 = (8).xx;
-}
-
-void main() {
-  main_1();
-}
-
diff --git a/test/tint/unittest/reader/spirv/SpvParserTest_BitwiseOr_MixedSignedness_SpvBinaryBitGeneralTest_EmitExpression_0.spvasm.expected.ir.fxc.hlsl b/test/tint/unittest/reader/spirv/SpvParserTest_BitwiseOr_MixedSignedness_SpvBinaryBitGeneralTest_EmitExpression_0.spvasm.expected.ir.fxc.hlsl
deleted file mode 100644
index 23cd034..0000000
--- a/test/tint/unittest/reader/spirv/SpvParserTest_BitwiseOr_MixedSignedness_SpvBinaryBitGeneralTest_EmitExpression_0.spvasm.expected.ir.fxc.hlsl
+++ /dev/null
@@ -1,10 +0,0 @@
-SKIP: FAILED
-
-void main_1() {
-  uint x_1 = 30u;
-}
-
-void main() {
-  main_1();
-}
-
diff --git a/test/tint/unittest/reader/spirv/SpvParserTest_BitwiseOr_MixedSignedness_SpvBinaryBitGeneralTest_EmitExpression_1.spvasm.expected.ir.fxc.hlsl b/test/tint/unittest/reader/spirv/SpvParserTest_BitwiseOr_MixedSignedness_SpvBinaryBitGeneralTest_EmitExpression_1.spvasm.expected.ir.fxc.hlsl
deleted file mode 100644
index 81c3c3d..0000000
--- a/test/tint/unittest/reader/spirv/SpvParserTest_BitwiseOr_MixedSignedness_SpvBinaryBitGeneralTest_EmitExpression_1.spvasm.expected.ir.fxc.hlsl
+++ /dev/null
@@ -1,10 +0,0 @@
-SKIP: FAILED
-
-void main_1() {
-  int x_1 = 30;
-}
-
-void main() {
-  main_1();
-}
-
diff --git a/test/tint/unittest/reader/spirv/SpvParserTest_BitwiseOr_MixedSignedness_SpvBinaryBitGeneralTest_EmitExpression_2.spvasm.expected.ir.fxc.hlsl b/test/tint/unittest/reader/spirv/SpvParserTest_BitwiseOr_MixedSignedness_SpvBinaryBitGeneralTest_EmitExpression_2.spvasm.expected.ir.fxc.hlsl
deleted file mode 100644
index 23cd034..0000000
--- a/test/tint/unittest/reader/spirv/SpvParserTest_BitwiseOr_MixedSignedness_SpvBinaryBitGeneralTest_EmitExpression_2.spvasm.expected.ir.fxc.hlsl
+++ /dev/null
@@ -1,10 +0,0 @@
-SKIP: FAILED
-
-void main_1() {
-  uint x_1 = 30u;
-}
-
-void main() {
-  main_1();
-}
-
diff --git a/test/tint/unittest/reader/spirv/SpvParserTest_BitwiseOr_MixedSignedness_SpvBinaryBitGeneralTest_EmitExpression_3.spvasm.expected.ir.fxc.hlsl b/test/tint/unittest/reader/spirv/SpvParserTest_BitwiseOr_MixedSignedness_SpvBinaryBitGeneralTest_EmitExpression_3.spvasm.expected.ir.fxc.hlsl
deleted file mode 100644
index 81c3c3d..0000000
--- a/test/tint/unittest/reader/spirv/SpvParserTest_BitwiseOr_MixedSignedness_SpvBinaryBitGeneralTest_EmitExpression_3.spvasm.expected.ir.fxc.hlsl
+++ /dev/null
@@ -1,10 +0,0 @@
-SKIP: FAILED
-
-void main_1() {
-  int x_1 = 30;
-}
-
-void main() {
-  main_1();
-}
-
diff --git a/test/tint/unittest/reader/spirv/SpvParserTest_BitwiseOr_MixedSignedness_SpvBinaryBitGeneralTest_EmitExpression_4.spvasm.expected.ir.fxc.hlsl b/test/tint/unittest/reader/spirv/SpvParserTest_BitwiseOr_MixedSignedness_SpvBinaryBitGeneralTest_EmitExpression_4.spvasm.expected.ir.fxc.hlsl
deleted file mode 100644
index 3e1bdb0..0000000
--- a/test/tint/unittest/reader/spirv/SpvParserTest_BitwiseOr_MixedSignedness_SpvBinaryBitGeneralTest_EmitExpression_4.spvasm.expected.ir.fxc.hlsl
+++ /dev/null
@@ -1,10 +0,0 @@
-SKIP: FAILED
-
-void main_1() {
-  uint2 x_1 = uint2(30u, 60u);
-}
-
-void main() {
-  main_1();
-}
-
diff --git a/test/tint/unittest/reader/spirv/SpvParserTest_BitwiseOr_MixedSignedness_SpvBinaryBitGeneralTest_EmitExpression_5.spvasm.expected.ir.fxc.hlsl b/test/tint/unittest/reader/spirv/SpvParserTest_BitwiseOr_MixedSignedness_SpvBinaryBitGeneralTest_EmitExpression_5.spvasm.expected.ir.fxc.hlsl
deleted file mode 100644
index 19f5fbb..0000000
--- a/test/tint/unittest/reader/spirv/SpvParserTest_BitwiseOr_MixedSignedness_SpvBinaryBitGeneralTest_EmitExpression_5.spvasm.expected.ir.fxc.hlsl
+++ /dev/null
@@ -1,10 +0,0 @@
-SKIP: FAILED
-
-void main_1() {
-  int2 x_1 = int2(42, 30);
-}
-
-void main() {
-  main_1();
-}
-
diff --git a/test/tint/unittest/reader/spirv/SpvParserTest_BitwiseOr_SpvBinaryBitTest_EmitExpression_0.spvasm.expected.ir.fxc.hlsl b/test/tint/unittest/reader/spirv/SpvParserTest_BitwiseOr_SpvBinaryBitTest_EmitExpression_0.spvasm.expected.ir.fxc.hlsl
deleted file mode 100644
index 23cd034..0000000
--- a/test/tint/unittest/reader/spirv/SpvParserTest_BitwiseOr_SpvBinaryBitTest_EmitExpression_0.spvasm.expected.ir.fxc.hlsl
+++ /dev/null
@@ -1,10 +0,0 @@
-SKIP: FAILED
-
-void main_1() {
-  uint x_1 = 30u;
-}
-
-void main() {
-  main_1();
-}
-
diff --git a/test/tint/unittest/reader/spirv/SpvParserTest_BitwiseOr_SpvBinaryBitTest_EmitExpression_1.spvasm.expected.ir.fxc.hlsl b/test/tint/unittest/reader/spirv/SpvParserTest_BitwiseOr_SpvBinaryBitTest_EmitExpression_1.spvasm.expected.ir.fxc.hlsl
deleted file mode 100644
index ab51f16..0000000
--- a/test/tint/unittest/reader/spirv/SpvParserTest_BitwiseOr_SpvBinaryBitTest_EmitExpression_1.spvasm.expected.ir.fxc.hlsl
+++ /dev/null
@@ -1,10 +0,0 @@
-SKIP: FAILED
-
-void main_1() {
-  int x_1 = 62;
-}
-
-void main() {
-  main_1();
-}
-
diff --git a/test/tint/unittest/reader/spirv/SpvParserTest_BitwiseOr_SpvBinaryBitTest_EmitExpression_2.spvasm.expected.ir.fxc.hlsl b/test/tint/unittest/reader/spirv/SpvParserTest_BitwiseOr_SpvBinaryBitTest_EmitExpression_2.spvasm.expected.ir.fxc.hlsl
deleted file mode 100644
index 923f0cf..0000000
--- a/test/tint/unittest/reader/spirv/SpvParserTest_BitwiseOr_SpvBinaryBitTest_EmitExpression_2.spvasm.expected.ir.fxc.hlsl
+++ /dev/null
@@ -1,10 +0,0 @@
-SKIP: FAILED
-
-void main_1() {
-  uint2 x_1 = (30u).xx;
-}
-
-void main() {
-  main_1();
-}
-
diff --git a/test/tint/unittest/reader/spirv/SpvParserTest_BitwiseOr_SpvBinaryBitTest_EmitExpression_3.spvasm.expected.ir.fxc.hlsl b/test/tint/unittest/reader/spirv/SpvParserTest_BitwiseOr_SpvBinaryBitTest_EmitExpression_3.spvasm.expected.ir.fxc.hlsl
deleted file mode 100644
index daae376..0000000
--- a/test/tint/unittest/reader/spirv/SpvParserTest_BitwiseOr_SpvBinaryBitTest_EmitExpression_3.spvasm.expected.ir.fxc.hlsl
+++ /dev/null
@@ -1,10 +0,0 @@
-SKIP: FAILED
-
-void main_1() {
-  int2 x_1 = (62).xx;
-}
-
-void main() {
-  main_1();
-}
-
diff --git a/test/tint/unittest/reader/spirv/SpvParserTest_BitwiseXor_MixedSignedness_SpvBinaryBitGeneralTest_EmitExpression_0.spvasm.expected.ir.fxc.hlsl b/test/tint/unittest/reader/spirv/SpvParserTest_BitwiseXor_MixedSignedness_SpvBinaryBitGeneralTest_EmitExpression_0.spvasm.expected.ir.fxc.hlsl
deleted file mode 100644
index 297fdee..0000000
--- a/test/tint/unittest/reader/spirv/SpvParserTest_BitwiseXor_MixedSignedness_SpvBinaryBitGeneralTest_EmitExpression_0.spvasm.expected.ir.fxc.hlsl
+++ /dev/null
@@ -1,10 +0,0 @@
-SKIP: FAILED
-
-void main_1() {
-  uint x_1 = 20u;
-}
-
-void main() {
-  main_1();
-}
-
diff --git a/test/tint/unittest/reader/spirv/SpvParserTest_BitwiseXor_MixedSignedness_SpvBinaryBitGeneralTest_EmitExpression_1.spvasm.expected.ir.fxc.hlsl b/test/tint/unittest/reader/spirv/SpvParserTest_BitwiseXor_MixedSignedness_SpvBinaryBitGeneralTest_EmitExpression_1.spvasm.expected.ir.fxc.hlsl
deleted file mode 100644
index f9b08ff..0000000
--- a/test/tint/unittest/reader/spirv/SpvParserTest_BitwiseXor_MixedSignedness_SpvBinaryBitGeneralTest_EmitExpression_1.spvasm.expected.ir.fxc.hlsl
+++ /dev/null
@@ -1,10 +0,0 @@
-SKIP: FAILED
-
-void main_1() {
-  int x_1 = 20;
-}
-
-void main() {
-  main_1();
-}
-
diff --git a/test/tint/unittest/reader/spirv/SpvParserTest_BitwiseXor_MixedSignedness_SpvBinaryBitGeneralTest_EmitExpression_2.spvasm.expected.ir.fxc.hlsl b/test/tint/unittest/reader/spirv/SpvParserTest_BitwiseXor_MixedSignedness_SpvBinaryBitGeneralTest_EmitExpression_2.spvasm.expected.ir.fxc.hlsl
deleted file mode 100644
index 297fdee..0000000
--- a/test/tint/unittest/reader/spirv/SpvParserTest_BitwiseXor_MixedSignedness_SpvBinaryBitGeneralTest_EmitExpression_2.spvasm.expected.ir.fxc.hlsl
+++ /dev/null
@@ -1,10 +0,0 @@
-SKIP: FAILED
-
-void main_1() {
-  uint x_1 = 20u;
-}
-
-void main() {
-  main_1();
-}
-
diff --git a/test/tint/unittest/reader/spirv/SpvParserTest_BitwiseXor_MixedSignedness_SpvBinaryBitGeneralTest_EmitExpression_3.spvasm.expected.ir.fxc.hlsl b/test/tint/unittest/reader/spirv/SpvParserTest_BitwiseXor_MixedSignedness_SpvBinaryBitGeneralTest_EmitExpression_3.spvasm.expected.ir.fxc.hlsl
deleted file mode 100644
index 81c3c3d..0000000
--- a/test/tint/unittest/reader/spirv/SpvParserTest_BitwiseXor_MixedSignedness_SpvBinaryBitGeneralTest_EmitExpression_3.spvasm.expected.ir.fxc.hlsl
+++ /dev/null
@@ -1,10 +0,0 @@
-SKIP: FAILED
-
-void main_1() {
-  int x_1 = 30;
-}
-
-void main() {
-  main_1();
-}
-
diff --git a/test/tint/unittest/reader/spirv/SpvParserTest_BitwiseXor_MixedSignedness_SpvBinaryBitGeneralTest_EmitExpression_4.spvasm.expected.ir.fxc.hlsl b/test/tint/unittest/reader/spirv/SpvParserTest_BitwiseXor_MixedSignedness_SpvBinaryBitGeneralTest_EmitExpression_4.spvasm.expected.ir.fxc.hlsl
deleted file mode 100644
index f018c86..0000000
--- a/test/tint/unittest/reader/spirv/SpvParserTest_BitwiseXor_MixedSignedness_SpvBinaryBitGeneralTest_EmitExpression_4.spvasm.expected.ir.fxc.hlsl
+++ /dev/null
@@ -1,10 +0,0 @@
-SKIP: FAILED
-
-void main_1() {
-  uint2 x_1 = uint2(20u, 60u);
-}
-
-void main() {
-  main_1();
-}
-
diff --git a/test/tint/unittest/reader/spirv/SpvParserTest_BitwiseXor_MixedSignedness_SpvBinaryBitGeneralTest_EmitExpression_5.spvasm.expected.ir.fxc.hlsl b/test/tint/unittest/reader/spirv/SpvParserTest_BitwiseXor_MixedSignedness_SpvBinaryBitGeneralTest_EmitExpression_5.spvasm.expected.ir.fxc.hlsl
deleted file mode 100644
index 33f0f8e..0000000
--- a/test/tint/unittest/reader/spirv/SpvParserTest_BitwiseXor_MixedSignedness_SpvBinaryBitGeneralTest_EmitExpression_5.spvasm.expected.ir.fxc.hlsl
+++ /dev/null
@@ -1,10 +0,0 @@
-SKIP: FAILED
-
-void main_1() {
-  int2 x_1 = int2(34, 10);
-}
-
-void main() {
-  main_1();
-}
-
diff --git a/test/tint/unittest/reader/spirv/SpvParserTest_BitwiseXor_SpvBinaryBitTest_EmitExpression_0.spvasm.expected.ir.fxc.hlsl b/test/tint/unittest/reader/spirv/SpvParserTest_BitwiseXor_SpvBinaryBitTest_EmitExpression_0.spvasm.expected.ir.fxc.hlsl
deleted file mode 100644
index 23cd034..0000000
--- a/test/tint/unittest/reader/spirv/SpvParserTest_BitwiseXor_SpvBinaryBitTest_EmitExpression_0.spvasm.expected.ir.fxc.hlsl
+++ /dev/null
@@ -1,10 +0,0 @@
-SKIP: FAILED
-
-void main_1() {
-  uint x_1 = 30u;
-}
-
-void main() {
-  main_1();
-}
-
diff --git a/test/tint/unittest/reader/spirv/SpvParserTest_BitwiseXor_SpvBinaryBitTest_EmitExpression_1.spvasm.expected.ir.fxc.hlsl b/test/tint/unittest/reader/spirv/SpvParserTest_BitwiseXor_SpvBinaryBitTest_EmitExpression_1.spvasm.expected.ir.fxc.hlsl
deleted file mode 100644
index 65d85c5..0000000
--- a/test/tint/unittest/reader/spirv/SpvParserTest_BitwiseXor_SpvBinaryBitTest_EmitExpression_1.spvasm.expected.ir.fxc.hlsl
+++ /dev/null
@@ -1,10 +0,0 @@
-SKIP: FAILED
-
-void main_1() {
-  int x_1 = 54;
-}
-
-void main() {
-  main_1();
-}
-
diff --git a/test/tint/unittest/reader/spirv/SpvParserTest_BitwiseXor_SpvBinaryBitTest_EmitExpression_2.spvasm.expected.ir.fxc.hlsl b/test/tint/unittest/reader/spirv/SpvParserTest_BitwiseXor_SpvBinaryBitTest_EmitExpression_2.spvasm.expected.ir.fxc.hlsl
deleted file mode 100644
index 923f0cf..0000000
--- a/test/tint/unittest/reader/spirv/SpvParserTest_BitwiseXor_SpvBinaryBitTest_EmitExpression_2.spvasm.expected.ir.fxc.hlsl
+++ /dev/null
@@ -1,10 +0,0 @@
-SKIP: FAILED
-
-void main_1() {
-  uint2 x_1 = (30u).xx;
-}
-
-void main() {
-  main_1();
-}
-
diff --git a/test/tint/unittest/reader/spirv/SpvParserTest_BitwiseXor_SpvBinaryBitTest_EmitExpression_3.spvasm.expected.ir.fxc.hlsl b/test/tint/unittest/reader/spirv/SpvParserTest_BitwiseXor_SpvBinaryBitTest_EmitExpression_3.spvasm.expected.ir.fxc.hlsl
deleted file mode 100644
index fc2ac18..0000000
--- a/test/tint/unittest/reader/spirv/SpvParserTest_BitwiseXor_SpvBinaryBitTest_EmitExpression_3.spvasm.expected.ir.fxc.hlsl
+++ /dev/null
@@ -1,10 +0,0 @@
-SKIP: FAILED
-
-void main_1() {
-  int2 x_1 = (54).xx;
-}
-
-void main() {
-  main_1();
-}
-
diff --git a/test/tint/unittest/reader/spirv/SpvParserTest_CompositeExtract_Array.spvasm.expected.ir.dxc.hlsl b/test/tint/unittest/reader/spirv/SpvParserTest_CompositeExtract_Array.spvasm.expected.ir.dxc.hlsl
deleted file mode 100644
index 3f437dc..0000000
--- a/test/tint/unittest/reader/spirv/SpvParserTest_CompositeExtract_Array.spvasm.expected.ir.dxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Access
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/unittest/reader/spirv/SpvParserTest_CompositeExtract_Array.spvasm.expected.ir.fxc.hlsl b/test/tint/unittest/reader/spirv/SpvParserTest_CompositeExtract_Array.spvasm.expected.ir.fxc.hlsl
deleted file mode 100644
index 3f437dc..0000000
--- a/test/tint/unittest/reader/spirv/SpvParserTest_CompositeExtract_Array.spvasm.expected.ir.fxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Access
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/unittest/reader/spirv/SpvParserTest_CompositeExtract_Matrix.spvasm.expected.ir.dxc.hlsl b/test/tint/unittest/reader/spirv/SpvParserTest_CompositeExtract_Matrix.spvasm.expected.ir.dxc.hlsl
deleted file mode 100644
index 3f437dc..0000000
--- a/test/tint/unittest/reader/spirv/SpvParserTest_CompositeExtract_Matrix.spvasm.expected.ir.dxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Access
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/unittest/reader/spirv/SpvParserTest_CompositeExtract_Matrix.spvasm.expected.ir.fxc.hlsl b/test/tint/unittest/reader/spirv/SpvParserTest_CompositeExtract_Matrix.spvasm.expected.ir.fxc.hlsl
deleted file mode 100644
index 3f437dc..0000000
--- a/test/tint/unittest/reader/spirv/SpvParserTest_CompositeExtract_Matrix.spvasm.expected.ir.fxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Access
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/unittest/reader/spirv/SpvParserTest_CompositeExtract_Matrix_Vector.spvasm.expected.ir.dxc.hlsl b/test/tint/unittest/reader/spirv/SpvParserTest_CompositeExtract_Matrix_Vector.spvasm.expected.ir.dxc.hlsl
deleted file mode 100644
index 4a2c666..0000000
--- a/test/tint/unittest/reader/spirv/SpvParserTest_CompositeExtract_Matrix_Vector.spvasm.expected.ir.dxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::LoadVectorElement
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/unittest/reader/spirv/SpvParserTest_CompositeExtract_Matrix_Vector.spvasm.expected.ir.fxc.hlsl b/test/tint/unittest/reader/spirv/SpvParserTest_CompositeExtract_Matrix_Vector.spvasm.expected.ir.fxc.hlsl
deleted file mode 100644
index 4a2c666..0000000
--- a/test/tint/unittest/reader/spirv/SpvParserTest_CompositeExtract_Matrix_Vector.spvasm.expected.ir.fxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::LoadVectorElement
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/unittest/reader/spirv/SpvParserTest_CompositeExtract_Struct.spvasm.expected.ir.dxc.hlsl b/test/tint/unittest/reader/spirv/SpvParserTest_CompositeExtract_Struct.spvasm.expected.ir.dxc.hlsl
deleted file mode 100644
index 0ba40c6..0000000
--- a/test/tint/unittest/reader/spirv/SpvParserTest_CompositeExtract_Struct.spvasm.expected.ir.dxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix 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/SpvParserTest_CompositeExtract_Struct.spvasm.expected.ir.fxc.hlsl b/test/tint/unittest/reader/spirv/SpvParserTest_CompositeExtract_Struct.spvasm.expected.ir.fxc.hlsl
deleted file mode 100644
index 0ba40c6..0000000
--- a/test/tint/unittest/reader/spirv/SpvParserTest_CompositeExtract_Struct.spvasm.expected.ir.fxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix 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/SpvParserTest_CompositeExtract_Struct_Array_Matrix_Vector.spvasm.expected.ir.dxc.hlsl b/test/tint/unittest/reader/spirv/SpvParserTest_CompositeExtract_Struct_Array_Matrix_Vector.spvasm.expected.ir.dxc.hlsl
deleted file mode 100644
index 0ba40c6..0000000
--- a/test/tint/unittest/reader/spirv/SpvParserTest_CompositeExtract_Struct_Array_Matrix_Vector.spvasm.expected.ir.dxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix 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/SpvParserTest_CompositeExtract_Struct_Array_Matrix_Vector.spvasm.expected.ir.fxc.hlsl b/test/tint/unittest/reader/spirv/SpvParserTest_CompositeExtract_Struct_Array_Matrix_Vector.spvasm.expected.ir.fxc.hlsl
deleted file mode 100644
index 0ba40c6..0000000
--- a/test/tint/unittest/reader/spirv/SpvParserTest_CompositeExtract_Struct_Array_Matrix_Vector.spvasm.expected.ir.fxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix 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/SpvParserTest_CompositeExtract_Vector.spvasm.expected.ir.fxc.hlsl b/test/tint/unittest/reader/spirv/SpvParserTest_CompositeExtract_Vector.spvasm.expected.ir.fxc.hlsl
deleted file mode 100644
index b7d4eb4..0000000
--- a/test/tint/unittest/reader/spirv/SpvParserTest_CompositeExtract_Vector.spvasm.expected.ir.fxc.hlsl
+++ /dev/null
@@ -1,11 +0,0 @@
-SKIP: FAILED
-
-void main_1() {
-  float x_1 = 60.0f;
-}
-
-[numthreads(1, 1, 1)]
-void main() {
-  main_1();
-}
-
diff --git a/test/tint/unittest/reader/spirv/SpvParserTest_CompositeInsert_Array.spvasm.expected.ir.dxc.hlsl b/test/tint/unittest/reader/spirv/SpvParserTest_CompositeInsert_Array.spvasm.expected.ir.dxc.hlsl
deleted file mode 100644
index 3f437dc..0000000
--- a/test/tint/unittest/reader/spirv/SpvParserTest_CompositeInsert_Array.spvasm.expected.ir.dxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Access
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/unittest/reader/spirv/SpvParserTest_CompositeInsert_Array.spvasm.expected.ir.fxc.hlsl b/test/tint/unittest/reader/spirv/SpvParserTest_CompositeInsert_Array.spvasm.expected.ir.fxc.hlsl
deleted file mode 100644
index 3f437dc..0000000
--- a/test/tint/unittest/reader/spirv/SpvParserTest_CompositeInsert_Array.spvasm.expected.ir.fxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Access
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/unittest/reader/spirv/SpvParserTest_CompositeInsert_Matrix.spvasm.expected.ir.dxc.hlsl b/test/tint/unittest/reader/spirv/SpvParserTest_CompositeInsert_Matrix.spvasm.expected.ir.dxc.hlsl
deleted file mode 100644
index 3f437dc..0000000
--- a/test/tint/unittest/reader/spirv/SpvParserTest_CompositeInsert_Matrix.spvasm.expected.ir.dxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Access
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/unittest/reader/spirv/SpvParserTest_CompositeInsert_Matrix.spvasm.expected.ir.fxc.hlsl b/test/tint/unittest/reader/spirv/SpvParserTest_CompositeInsert_Matrix.spvasm.expected.ir.fxc.hlsl
deleted file mode 100644
index 3f437dc..0000000
--- a/test/tint/unittest/reader/spirv/SpvParserTest_CompositeInsert_Matrix.spvasm.expected.ir.fxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Access
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/unittest/reader/spirv/SpvParserTest_CompositeInsert_Matrix_Vector.spvasm.expected.ir.dxc.hlsl b/test/tint/unittest/reader/spirv/SpvParserTest_CompositeInsert_Matrix_Vector.spvasm.expected.ir.dxc.hlsl
deleted file mode 100644
index 3f437dc..0000000
--- a/test/tint/unittest/reader/spirv/SpvParserTest_CompositeInsert_Matrix_Vector.spvasm.expected.ir.dxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Access
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/unittest/reader/spirv/SpvParserTest_CompositeInsert_Matrix_Vector.spvasm.expected.ir.fxc.hlsl b/test/tint/unittest/reader/spirv/SpvParserTest_CompositeInsert_Matrix_Vector.spvasm.expected.ir.fxc.hlsl
deleted file mode 100644
index 3f437dc..0000000
--- a/test/tint/unittest/reader/spirv/SpvParserTest_CompositeInsert_Matrix_Vector.spvasm.expected.ir.fxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Access
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/unittest/reader/spirv/SpvParserTest_CompositeInsert_Struct.spvasm.expected.ir.dxc.hlsl b/test/tint/unittest/reader/spirv/SpvParserTest_CompositeInsert_Struct.spvasm.expected.ir.dxc.hlsl
deleted file mode 100644
index 0ba40c6..0000000
--- a/test/tint/unittest/reader/spirv/SpvParserTest_CompositeInsert_Struct.spvasm.expected.ir.dxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix 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/SpvParserTest_CompositeInsert_Struct.spvasm.expected.ir.fxc.hlsl b/test/tint/unittest/reader/spirv/SpvParserTest_CompositeInsert_Struct.spvasm.expected.ir.fxc.hlsl
deleted file mode 100644
index 0ba40c6..0000000
--- a/test/tint/unittest/reader/spirv/SpvParserTest_CompositeInsert_Struct.spvasm.expected.ir.fxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix 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/SpvParserTest_CompositeInsert_Struct_Array_Matrix_Vector.spvasm.expected.ir.dxc.hlsl b/test/tint/unittest/reader/spirv/SpvParserTest_CompositeInsert_Struct_Array_Matrix_Vector.spvasm.expected.ir.dxc.hlsl
deleted file mode 100644
index 0ba40c6..0000000
--- a/test/tint/unittest/reader/spirv/SpvParserTest_CompositeInsert_Struct_Array_Matrix_Vector.spvasm.expected.ir.dxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix 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/SpvParserTest_CompositeInsert_Struct_Array_Matrix_Vector.spvasm.expected.ir.fxc.hlsl b/test/tint/unittest/reader/spirv/SpvParserTest_CompositeInsert_Struct_Array_Matrix_Vector.spvasm.expected.ir.fxc.hlsl
deleted file mode 100644
index 0ba40c6..0000000
--- a/test/tint/unittest/reader/spirv/SpvParserTest_CompositeInsert_Struct_Array_Matrix_Vector.spvasm.expected.ir.fxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix 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/SpvParserTest_CompositeInsert_Struct_DifferOnlyInMemberName.spvasm.expected.ir.dxc.hlsl b/test/tint/unittest/reader/spirv/SpvParserTest_CompositeInsert_Struct_DifferOnlyInMemberName.spvasm.expected.ir.dxc.hlsl
deleted file mode 100644
index 0ba40c6..0000000
--- a/test/tint/unittest/reader/spirv/SpvParserTest_CompositeInsert_Struct_DifferOnlyInMemberName.spvasm.expected.ir.dxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix 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/SpvParserTest_CompositeInsert_Struct_DifferOnlyInMemberName.spvasm.expected.ir.fxc.hlsl b/test/tint/unittest/reader/spirv/SpvParserTest_CompositeInsert_Struct_DifferOnlyInMemberName.spvasm.expected.ir.fxc.hlsl
deleted file mode 100644
index 0ba40c6..0000000
--- a/test/tint/unittest/reader/spirv/SpvParserTest_CompositeInsert_Struct_DifferOnlyInMemberName.spvasm.expected.ir.fxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix 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/SpvParserTest_CompositeInsert_Vector.spvasm.expected.ir.dxc.hlsl b/test/tint/unittest/reader/spirv/SpvParserTest_CompositeInsert_Vector.spvasm.expected.ir.dxc.hlsl
deleted file mode 100644
index c0935cc..0000000
--- a/test/tint/unittest/reader/spirv/SpvParserTest_CompositeInsert_Vector.spvasm.expected.ir.dxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:198 internal compiler error: Switch() matched no cases. Type: tint::core::ir::StoreVectorElement
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/unittest/reader/spirv/SpvParserTest_CompositeInsert_Vector.spvasm.expected.ir.fxc.hlsl b/test/tint/unittest/reader/spirv/SpvParserTest_CompositeInsert_Vector.spvasm.expected.ir.fxc.hlsl
deleted file mode 100644
index c0935cc..0000000
--- a/test/tint/unittest/reader/spirv/SpvParserTest_CompositeInsert_Vector.spvasm.expected.ir.fxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:198 internal compiler error: Switch() matched no cases. Type: tint::core::ir::StoreVectorElement
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/unittest/reader/spirv/SpvParserTest_Composite_Construct_Array.spvasm.expected.ir.dxc.hlsl b/test/tint/unittest/reader/spirv/SpvParserTest_Composite_Construct_Array.spvasm.expected.ir.dxc.hlsl
deleted file mode 100644
index 7bbb341..0000000
--- a/test/tint/unittest/reader/spirv/SpvParserTest_Composite_Construct_Array.spvasm.expected.ir.dxc.hlsl
+++ /dev/null
@@ -1,17 +0,0 @@
-SKIP: FAILED
-
-void main_1() {
-  uint[5] x_1 = {10u, 20u, 3u, 4u, 5u};
-}
-
-[numthreads(1, 1, 1)]
-void main() {
-  main_1();
-}
-
-DXC validation failure:
-hlsl.hlsl:2:14: error: brackets are not allowed here; to declare an array, place the brackets after the name
-  uint[5] x_1 = {10u, 20u, 3u, 4u, 5u};
-      ~~~    ^
-             [5]
-
diff --git a/test/tint/unittest/reader/spirv/SpvParserTest_Composite_Construct_Array.spvasm.expected.ir.fxc.hlsl b/test/tint/unittest/reader/spirv/SpvParserTest_Composite_Construct_Array.spvasm.expected.ir.fxc.hlsl
deleted file mode 100644
index 650897d..0000000
--- a/test/tint/unittest/reader/spirv/SpvParserTest_Composite_Construct_Array.spvasm.expected.ir.fxc.hlsl
+++ /dev/null
@@ -1,11 +0,0 @@
-SKIP: FAILED
-
-void main_1() {
-  uint[5] x_1 = {10u, 20u, 3u, 4u, 5u};
-}
-
-[numthreads(1, 1, 1)]
-void main() {
-  main_1();
-}
-
diff --git a/test/tint/unittest/reader/spirv/SpvParserTest_Composite_Construct_ConstantComposite_Struct_NoDeduplication.spvasm.expected.ir.dxc.hlsl b/test/tint/unittest/reader/spirv/SpvParserTest_Composite_Construct_ConstantComposite_Struct_NoDeduplication.spvasm.expected.ir.dxc.hlsl
deleted file mode 100644
index 0ba40c6..0000000
--- a/test/tint/unittest/reader/spirv/SpvParserTest_Composite_Construct_ConstantComposite_Struct_NoDeduplication.spvasm.expected.ir.dxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix 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/SpvParserTest_Composite_Construct_ConstantComposite_Struct_NoDeduplication.spvasm.expected.ir.fxc.hlsl b/test/tint/unittest/reader/spirv/SpvParserTest_Composite_Construct_ConstantComposite_Struct_NoDeduplication.spvasm.expected.ir.fxc.hlsl
deleted file mode 100644
index 0ba40c6..0000000
--- a/test/tint/unittest/reader/spirv/SpvParserTest_Composite_Construct_ConstantComposite_Struct_NoDeduplication.spvasm.expected.ir.fxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix 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/SpvParserTest_Composite_Construct_Matrix.spvasm.expected.ir.fxc.hlsl b/test/tint/unittest/reader/spirv/SpvParserTest_Composite_Construct_Matrix.spvasm.expected.ir.fxc.hlsl
deleted file mode 100644
index eb992e1..0000000
--- a/test/tint/unittest/reader/spirv/SpvParserTest_Composite_Construct_Matrix.spvasm.expected.ir.fxc.hlsl
+++ /dev/null
@@ -1,11 +0,0 @@
-SKIP: FAILED
-
-void main_1() {
-  float3x2 x_1 = float3x2(float2(50.0f, 60.0f), float2(60.0f, 50.0f), (70.0f).xx);
-}
-
-[numthreads(1, 1, 1)]
-void main() {
-  main_1();
-}
-
diff --git a/test/tint/unittest/reader/spirv/SpvParserTest_Composite_Construct_Struct.spvasm.expected.ir.dxc.hlsl b/test/tint/unittest/reader/spirv/SpvParserTest_Composite_Construct_Struct.spvasm.expected.ir.dxc.hlsl
deleted file mode 100644
index 0ba40c6..0000000
--- a/test/tint/unittest/reader/spirv/SpvParserTest_Composite_Construct_Struct.spvasm.expected.ir.dxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix 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/SpvParserTest_Composite_Construct_Struct.spvasm.expected.ir.fxc.hlsl b/test/tint/unittest/reader/spirv/SpvParserTest_Composite_Construct_Struct.spvasm.expected.ir.fxc.hlsl
deleted file mode 100644
index 0ba40c6..0000000
--- a/test/tint/unittest/reader/spirv/SpvParserTest_Composite_Construct_Struct.spvasm.expected.ir.fxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix 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/SpvParserTest_Composite_Construct_Vector.spvasm.expected.ir.fxc.hlsl b/test/tint/unittest/reader/spirv/SpvParserTest_Composite_Construct_Vector.spvasm.expected.ir.fxc.hlsl
deleted file mode 100644
index f2186e3..0000000
--- a/test/tint/unittest/reader/spirv/SpvParserTest_Composite_Construct_Vector.spvasm.expected.ir.fxc.hlsl
+++ /dev/null
@@ -1,13 +0,0 @@
-SKIP: FAILED
-
-void main_1() {
-  uint2 x_1 = uint2(10u, 20u);
-  int2 x_2 = int2(30, 40);
-  float2 x_3 = float2(50.0f, 60.0f);
-}
-
-[numthreads(1, 1, 1)]
-void main() {
-  main_1();
-}
-
diff --git a/test/tint/unittest/reader/spirv/SpvParserTest_ConvertType_Array.spvasm.expected.ir.fxc.hlsl b/test/tint/unittest/reader/spirv/SpvParserTest_ConvertType_Array.spvasm.expected.ir.fxc.hlsl
deleted file mode 100644
index 9991cb6..0000000
--- a/test/tint/unittest/reader/spirv/SpvParserTest_ConvertType_Array.spvasm.expected.ir.fxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-void x_100_1() {
-}
-
-void x_100() {
-  x_100_1();
-}
-
diff --git a/test/tint/unittest/reader/spirv/SpvParserTest_ConvertType_ArrayStride_Valid.spvasm.expected.ir.fxc.hlsl b/test/tint/unittest/reader/spirv/SpvParserTest_ConvertType_ArrayStride_Valid.spvasm.expected.ir.fxc.hlsl
deleted file mode 100644
index 9991cb6..0000000
--- a/test/tint/unittest/reader/spirv/SpvParserTest_ConvertType_ArrayStride_Valid.spvasm.expected.ir.fxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-void x_100_1() {
-}
-
-void x_100() {
-  x_100_1();
-}
-
diff --git a/test/tint/unittest/reader/spirv/SpvParserTest_ConvertType_Array_NoDeduplication.spvasm.expected.ir.fxc.hlsl b/test/tint/unittest/reader/spirv/SpvParserTest_ConvertType_Array_NoDeduplication.spvasm.expected.ir.fxc.hlsl
deleted file mode 100644
index 9991cb6..0000000
--- a/test/tint/unittest/reader/spirv/SpvParserTest_ConvertType_Array_NoDeduplication.spvasm.expected.ir.fxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-void x_100_1() {
-}
-
-void x_100() {
-  x_100_1();
-}
-
diff --git a/test/tint/unittest/reader/spirv/SpvParserTest_ConvertType_Bool.spvasm.expected.ir.fxc.hlsl b/test/tint/unittest/reader/spirv/SpvParserTest_ConvertType_Bool.spvasm.expected.ir.fxc.hlsl
deleted file mode 100644
index 9991cb6..0000000
--- a/test/tint/unittest/reader/spirv/SpvParserTest_ConvertType_Bool.spvasm.expected.ir.fxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-void x_100_1() {
-}
-
-void x_100() {
-  x_100_1();
-}
-
diff --git a/test/tint/unittest/reader/spirv/SpvParserTest_ConvertType_F32.spvasm.expected.ir.fxc.hlsl b/test/tint/unittest/reader/spirv/SpvParserTest_ConvertType_F32.spvasm.expected.ir.fxc.hlsl
deleted file mode 100644
index 9991cb6..0000000
--- a/test/tint/unittest/reader/spirv/SpvParserTest_ConvertType_F32.spvasm.expected.ir.fxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-void x_100_1() {
-}
-
-void x_100() {
-  x_100_1();
-}
-
diff --git a/test/tint/unittest/reader/spirv/SpvParserTest_ConvertType_I32.spvasm.expected.ir.fxc.hlsl b/test/tint/unittest/reader/spirv/SpvParserTest_ConvertType_I32.spvasm.expected.ir.fxc.hlsl
deleted file mode 100644
index 9991cb6..0000000
--- a/test/tint/unittest/reader/spirv/SpvParserTest_ConvertType_I32.spvasm.expected.ir.fxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-void x_100_1() {
-}
-
-void x_100() {
-  x_100_1();
-}
-
diff --git a/test/tint/unittest/reader/spirv/SpvParserTest_ConvertType_Image_PretendVoid.spvasm.expected.ir.fxc.hlsl b/test/tint/unittest/reader/spirv/SpvParserTest_ConvertType_Image_PretendVoid.spvasm.expected.ir.fxc.hlsl
deleted file mode 100644
index 9991cb6..0000000
--- a/test/tint/unittest/reader/spirv/SpvParserTest_ConvertType_Image_PretendVoid.spvasm.expected.ir.fxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-void x_100_1() {
-}
-
-void x_100() {
-  x_100_1();
-}
-
diff --git a/test/tint/unittest/reader/spirv/SpvParserTest_ConvertType_MatrixOverF32.spvasm.expected.ir.fxc.hlsl b/test/tint/unittest/reader/spirv/SpvParserTest_ConvertType_MatrixOverF32.spvasm.expected.ir.fxc.hlsl
deleted file mode 100644
index 9991cb6..0000000
--- a/test/tint/unittest/reader/spirv/SpvParserTest_ConvertType_MatrixOverF32.spvasm.expected.ir.fxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-void x_100_1() {
-}
-
-void x_100() {
-  x_100_1();
-}
-
diff --git a/test/tint/unittest/reader/spirv/SpvParserTest_ConvertType_PointerFunction.spvasm.expected.ir.fxc.hlsl b/test/tint/unittest/reader/spirv/SpvParserTest_ConvertType_PointerFunction.spvasm.expected.ir.fxc.hlsl
deleted file mode 100644
index 9991cb6..0000000
--- a/test/tint/unittest/reader/spirv/SpvParserTest_ConvertType_PointerFunction.spvasm.expected.ir.fxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-void x_100_1() {
-}
-
-void x_100() {
-  x_100_1();
-}
-
diff --git a/test/tint/unittest/reader/spirv/SpvParserTest_ConvertType_PointerInput.spvasm.expected.ir.fxc.hlsl b/test/tint/unittest/reader/spirv/SpvParserTest_ConvertType_PointerInput.spvasm.expected.ir.fxc.hlsl
deleted file mode 100644
index 9991cb6..0000000
--- a/test/tint/unittest/reader/spirv/SpvParserTest_ConvertType_PointerInput.spvasm.expected.ir.fxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-void x_100_1() {
-}
-
-void x_100() {
-  x_100_1();
-}
-
diff --git a/test/tint/unittest/reader/spirv/SpvParserTest_ConvertType_PointerOutput.spvasm.expected.ir.fxc.hlsl b/test/tint/unittest/reader/spirv/SpvParserTest_ConvertType_PointerOutput.spvasm.expected.ir.fxc.hlsl
deleted file mode 100644
index 9991cb6..0000000
--- a/test/tint/unittest/reader/spirv/SpvParserTest_ConvertType_PointerOutput.spvasm.expected.ir.fxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-void x_100_1() {
-}
-
-void x_100() {
-  x_100_1();
-}
-
diff --git a/test/tint/unittest/reader/spirv/SpvParserTest_ConvertType_PointerPrivate.spvasm.expected.ir.fxc.hlsl b/test/tint/unittest/reader/spirv/SpvParserTest_ConvertType_PointerPrivate.spvasm.expected.ir.fxc.hlsl
deleted file mode 100644
index 9991cb6..0000000
--- a/test/tint/unittest/reader/spirv/SpvParserTest_ConvertType_PointerPrivate.spvasm.expected.ir.fxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-void x_100_1() {
-}
-
-void x_100() {
-  x_100_1();
-}
-
diff --git a/test/tint/unittest/reader/spirv/SpvParserTest_ConvertType_PointerStorageBuffer.spvasm.expected.ir.fxc.hlsl b/test/tint/unittest/reader/spirv/SpvParserTest_ConvertType_PointerStorageBuffer.spvasm.expected.ir.fxc.hlsl
deleted file mode 100644
index 9991cb6..0000000
--- a/test/tint/unittest/reader/spirv/SpvParserTest_ConvertType_PointerStorageBuffer.spvasm.expected.ir.fxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-void x_100_1() {
-}
-
-void x_100() {
-  x_100_1();
-}
-
diff --git a/test/tint/unittest/reader/spirv/SpvParserTest_ConvertType_PointerToPointer.spvasm.expected.ir.fxc.hlsl b/test/tint/unittest/reader/spirv/SpvParserTest_ConvertType_PointerToPointer.spvasm.expected.ir.fxc.hlsl
deleted file mode 100644
index 9991cb6..0000000
--- a/test/tint/unittest/reader/spirv/SpvParserTest_ConvertType_PointerToPointer.spvasm.expected.ir.fxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-void x_100_1() {
-}
-
-void x_100() {
-  x_100_1();
-}
-
diff --git a/test/tint/unittest/reader/spirv/SpvParserTest_ConvertType_PointerUniform.spvasm.expected.ir.fxc.hlsl b/test/tint/unittest/reader/spirv/SpvParserTest_ConvertType_PointerUniform.spvasm.expected.ir.fxc.hlsl
deleted file mode 100644
index 9991cb6..0000000
--- a/test/tint/unittest/reader/spirv/SpvParserTest_ConvertType_PointerUniform.spvasm.expected.ir.fxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-void x_100_1() {
-}
-
-void x_100() {
-  x_100_1();
-}
-
diff --git a/test/tint/unittest/reader/spirv/SpvParserTest_ConvertType_PointerUniformConstant.spvasm.expected.ir.fxc.hlsl b/test/tint/unittest/reader/spirv/SpvParserTest_ConvertType_PointerUniformConstant.spvasm.expected.ir.fxc.hlsl
deleted file mode 100644
index 9991cb6..0000000
--- a/test/tint/unittest/reader/spirv/SpvParserTest_ConvertType_PointerUniformConstant.spvasm.expected.ir.fxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-void x_100_1() {
-}
-
-void x_100() {
-  x_100_1();
-}
-
diff --git a/test/tint/unittest/reader/spirv/SpvParserTest_ConvertType_PointerWorkgroup.spvasm.expected.ir.fxc.hlsl b/test/tint/unittest/reader/spirv/SpvParserTest_ConvertType_PointerWorkgroup.spvasm.expected.ir.fxc.hlsl
deleted file mode 100644
index 9991cb6..0000000
--- a/test/tint/unittest/reader/spirv/SpvParserTest_ConvertType_PointerWorkgroup.spvasm.expected.ir.fxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-void x_100_1() {
-}
-
-void x_100() {
-  x_100_1();
-}
-
diff --git a/test/tint/unittest/reader/spirv/SpvParserTest_ConvertType_RuntimeArray.spvasm.expected.ir.fxc.hlsl b/test/tint/unittest/reader/spirv/SpvParserTest_ConvertType_RuntimeArray.spvasm.expected.ir.fxc.hlsl
deleted file mode 100644
index 9991cb6..0000000
--- a/test/tint/unittest/reader/spirv/SpvParserTest_ConvertType_RuntimeArray.spvasm.expected.ir.fxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-void x_100_1() {
-}
-
-void x_100() {
-  x_100_1();
-}
-
diff --git a/test/tint/unittest/reader/spirv/SpvParserTest_ConvertType_RuntimeArray_ArrayStride_Valid.spvasm.expected.ir.fxc.hlsl b/test/tint/unittest/reader/spirv/SpvParserTest_ConvertType_RuntimeArray_ArrayStride_Valid.spvasm.expected.ir.fxc.hlsl
deleted file mode 100644
index 9991cb6..0000000
--- a/test/tint/unittest/reader/spirv/SpvParserTest_ConvertType_RuntimeArray_ArrayStride_Valid.spvasm.expected.ir.fxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-void x_100_1() {
-}
-
-void x_100() {
-  x_100_1();
-}
-
diff --git a/test/tint/unittest/reader/spirv/SpvParserTest_ConvertType_RuntimeArray_NoDeduplication.spvasm.expected.ir.fxc.hlsl b/test/tint/unittest/reader/spirv/SpvParserTest_ConvertType_RuntimeArray_NoDeduplication.spvasm.expected.ir.fxc.hlsl
deleted file mode 100644
index 9991cb6..0000000
--- a/test/tint/unittest/reader/spirv/SpvParserTest_ConvertType_RuntimeArray_NoDeduplication.spvasm.expected.ir.fxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-void x_100_1() {
-}
-
-void x_100() {
-  x_100_1();
-}
-
diff --git a/test/tint/unittest/reader/spirv/SpvParserTest_ConvertType_SampledImage_PretendVoid.spvasm.expected.ir.fxc.hlsl b/test/tint/unittest/reader/spirv/SpvParserTest_ConvertType_SampledImage_PretendVoid.spvasm.expected.ir.fxc.hlsl
deleted file mode 100644
index 9991cb6..0000000
--- a/test/tint/unittest/reader/spirv/SpvParserTest_ConvertType_SampledImage_PretendVoid.spvasm.expected.ir.fxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-void x_100_1() {
-}
-
-void x_100() {
-  x_100_1();
-}
-
diff --git a/test/tint/unittest/reader/spirv/SpvParserTest_ConvertType_Sampler_PretendVoid.spvasm.expected.ir.fxc.hlsl b/test/tint/unittest/reader/spirv/SpvParserTest_ConvertType_Sampler_PretendVoid.spvasm.expected.ir.fxc.hlsl
deleted file mode 100644
index 9991cb6..0000000
--- a/test/tint/unittest/reader/spirv/SpvParserTest_ConvertType_Sampler_PretendVoid.spvasm.expected.ir.fxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-void x_100_1() {
-}
-
-void x_100() {
-  x_100_1();
-}
-
diff --git a/test/tint/unittest/reader/spirv/SpvParserTest_ConvertType_StructTwoMembers.spvasm.expected.ir.fxc.hlsl b/test/tint/unittest/reader/spirv/SpvParserTest_ConvertType_StructTwoMembers.spvasm.expected.ir.fxc.hlsl
deleted file mode 100644
index 9991cb6..0000000
--- a/test/tint/unittest/reader/spirv/SpvParserTest_ConvertType_StructTwoMembers.spvasm.expected.ir.fxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-void x_100_1() {
-}
-
-void x_100() {
-  x_100_1();
-}
-
diff --git a/test/tint/unittest/reader/spirv/SpvParserTest_ConvertType_StructWithBlockDecoration.spvasm.expected.ir.fxc.hlsl b/test/tint/unittest/reader/spirv/SpvParserTest_ConvertType_StructWithBlockDecoration.spvasm.expected.ir.fxc.hlsl
deleted file mode 100644
index 9991cb6..0000000
--- a/test/tint/unittest/reader/spirv/SpvParserTest_ConvertType_StructWithBlockDecoration.spvasm.expected.ir.fxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-void x_100_1() {
-}
-
-void x_100() {
-  x_100_1();
-}
-
diff --git a/test/tint/unittest/reader/spirv/SpvParserTest_ConvertType_StructWithMemberDecorations.spvasm.expected.ir.fxc.hlsl b/test/tint/unittest/reader/spirv/SpvParserTest_ConvertType_StructWithMemberDecorations.spvasm.expected.ir.fxc.hlsl
deleted file mode 100644
index 9991cb6..0000000
--- a/test/tint/unittest/reader/spirv/SpvParserTest_ConvertType_StructWithMemberDecorations.spvasm.expected.ir.fxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-void x_100_1() {
-}
-
-void x_100() {
-  x_100_1();
-}
-
diff --git a/test/tint/unittest/reader/spirv/SpvParserTest_ConvertType_Struct_NoDeduplication.spvasm.expected.ir.fxc.hlsl b/test/tint/unittest/reader/spirv/SpvParserTest_ConvertType_Struct_NoDeduplication.spvasm.expected.ir.fxc.hlsl
deleted file mode 100644
index 9991cb6..0000000
--- a/test/tint/unittest/reader/spirv/SpvParserTest_ConvertType_Struct_NoDeduplication.spvasm.expected.ir.fxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-void x_100_1() {
-}
-
-void x_100() {
-  x_100_1();
-}
-
diff --git a/test/tint/unittest/reader/spirv/SpvParserTest_ConvertType_U32.spvasm.expected.ir.fxc.hlsl b/test/tint/unittest/reader/spirv/SpvParserTest_ConvertType_U32.spvasm.expected.ir.fxc.hlsl
deleted file mode 100644
index 9991cb6..0000000
--- a/test/tint/unittest/reader/spirv/SpvParserTest_ConvertType_U32.spvasm.expected.ir.fxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-void x_100_1() {
-}
-
-void x_100() {
-  x_100_1();
-}
-
diff --git a/test/tint/unittest/reader/spirv/SpvParserTest_ConvertType_VecOverF32.spvasm.expected.ir.fxc.hlsl b/test/tint/unittest/reader/spirv/SpvParserTest_ConvertType_VecOverF32.spvasm.expected.ir.fxc.hlsl
deleted file mode 100644
index 9991cb6..0000000
--- a/test/tint/unittest/reader/spirv/SpvParserTest_ConvertType_VecOverF32.spvasm.expected.ir.fxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-void x_100_1() {
-}
-
-void x_100() {
-  x_100_1();
-}
-
diff --git a/test/tint/unittest/reader/spirv/SpvParserTest_ConvertType_VecOverI32.spvasm.expected.ir.fxc.hlsl b/test/tint/unittest/reader/spirv/SpvParserTest_ConvertType_VecOverI32.spvasm.expected.ir.fxc.hlsl
deleted file mode 100644
index 9991cb6..0000000
--- a/test/tint/unittest/reader/spirv/SpvParserTest_ConvertType_VecOverI32.spvasm.expected.ir.fxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-void x_100_1() {
-}
-
-void x_100() {
-  x_100_1();
-}
-
diff --git a/test/tint/unittest/reader/spirv/SpvParserTest_ConvertType_VecOverU32.spvasm.expected.ir.fxc.hlsl b/test/tint/unittest/reader/spirv/SpvParserTest_ConvertType_VecOverU32.spvasm.expected.ir.fxc.hlsl
deleted file mode 100644
index 9991cb6..0000000
--- a/test/tint/unittest/reader/spirv/SpvParserTest_ConvertType_VecOverU32.spvasm.expected.ir.fxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-void x_100_1() {
-}
-
-void x_100() {
-  x_100_1();
-}
-
diff --git a/test/tint/unittest/reader/spirv/SpvParserTest_ConvertType_Void.spvasm.expected.ir.fxc.hlsl b/test/tint/unittest/reader/spirv/SpvParserTest_ConvertType_Void.spvasm.expected.ir.fxc.hlsl
deleted file mode 100644
index 9991cb6..0000000
--- a/test/tint/unittest/reader/spirv/SpvParserTest_ConvertType_Void.spvasm.expected.ir.fxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-void x_100_1() {
-}
-
-void x_100() {
-  x_100_1();
-}
-
diff --git a/test/tint/unittest/reader/spirv/SpvParserTest_CopyObject_Pointer.spvasm.expected.ir.fxc.hlsl b/test/tint/unittest/reader/spirv/SpvParserTest_CopyObject_Pointer.spvasm.expected.ir.fxc.hlsl
deleted file mode 100644
index 5510828..0000000
--- a/test/tint/unittest/reader/spirv/SpvParserTest_CopyObject_Pointer.spvasm.expected.ir.fxc.hlsl
+++ /dev/null
@@ -1,11 +0,0 @@
-SKIP: FAILED
-
-void main_1() {
-  uint x_10 = 0u;
-}
-
-[numthreads(1, 1, 1)]
-void main() {
-  main_1();
-}
-
diff --git a/test/tint/unittest/reader/spirv/SpvParserTest_CopyObject_Scalar.spvasm.expected.ir.fxc.hlsl b/test/tint/unittest/reader/spirv/SpvParserTest_CopyObject_Scalar.spvasm.expected.ir.fxc.hlsl
deleted file mode 100644
index 01eea23..0000000
--- a/test/tint/unittest/reader/spirv/SpvParserTest_CopyObject_Scalar.spvasm.expected.ir.fxc.hlsl
+++ /dev/null
@@ -1,12 +0,0 @@
-SKIP: FAILED
-
-void main_1() {
-  uint x_1 = 3u;
-  uint x_2 = x_1;
-}
-
-[numthreads(1, 1, 1)]
-void main() {
-  main_1();
-}
-
diff --git a/test/tint/unittest/reader/spirv/SpvParserTest_EmitFunctions_CalleePrecedesCaller.spvasm.expected.ir.fxc.hlsl b/test/tint/unittest/reader/spirv/SpvParserTest_EmitFunctions_CalleePrecedesCaller.spvasm.expected.ir.fxc.hlsl
deleted file mode 100644
index 5466a53..0000000
--- a/test/tint/unittest/reader/spirv/SpvParserTest_EmitFunctions_CalleePrecedesCaller.spvasm.expected.ir.fxc.hlsl
+++ /dev/null
@@ -1,22 +0,0 @@
-SKIP: FAILED
-
-uint leaf() {
-  return 0u;
-}
-
-uint tint_symbol() {
-  uint leaf_result = leaf();
-  return leaf_result;
-}
-
-void root() {
-  uint branch_result = tint_symbol();
-}
-
-void x_100_1() {
-}
-
-void x_100() {
-  x_100_1();
-}
-
diff --git a/test/tint/unittest/reader/spirv/SpvParserTest_EmitFunctions_Function_EntryPoint_Fragment.spvasm.expected.ir.fxc.hlsl b/test/tint/unittest/reader/spirv/SpvParserTest_EmitFunctions_Function_EntryPoint_Fragment.spvasm.expected.ir.fxc.hlsl
deleted file mode 100644
index a096ece..0000000
--- a/test/tint/unittest/reader/spirv/SpvParserTest_EmitFunctions_Function_EntryPoint_Fragment.spvasm.expected.ir.fxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-void main_1() {
-}
-
-void main() {
-  main_1();
-}
-
diff --git a/test/tint/unittest/reader/spirv/SpvParserTest_EmitFunctions_Function_EntryPoint_GLCompute.spvasm.expected.ir.fxc.hlsl b/test/tint/unittest/reader/spirv/SpvParserTest_EmitFunctions_Function_EntryPoint_GLCompute.spvasm.expected.ir.fxc.hlsl
deleted file mode 100644
index 9a57d99..0000000
--- a/test/tint/unittest/reader/spirv/SpvParserTest_EmitFunctions_Function_EntryPoint_GLCompute.spvasm.expected.ir.fxc.hlsl
+++ /dev/null
@@ -1,10 +0,0 @@
-SKIP: FAILED
-
-void main_1() {
-}
-
-[numthreads(1, 1, 1)]
-void main() {
-  main_1();
-}
-
diff --git a/test/tint/unittest/reader/spirv/SpvParserTest_EmitFunctions_Function_EntryPoint_GLCompute_LocalSize_Only.spvasm.expected.ir.fxc.hlsl b/test/tint/unittest/reader/spirv/SpvParserTest_EmitFunctions_Function_EntryPoint_GLCompute_LocalSize_Only.spvasm.expected.ir.fxc.hlsl
deleted file mode 100644
index 4e73aec..0000000
--- a/test/tint/unittest/reader/spirv/SpvParserTest_EmitFunctions_Function_EntryPoint_GLCompute_LocalSize_Only.spvasm.expected.ir.fxc.hlsl
+++ /dev/null
@@ -1,10 +0,0 @@
-SKIP: FAILED
-
-void comp_main_1() {
-}
-
-[numthreads(2, 4, 8)]
-void comp_main() {
-  comp_main_1();
-}
-
diff --git a/test/tint/unittest/reader/spirv/SpvParserTest_EmitFunctions_Function_EntryPoint_LocalSize_And_WGSBuiltin_SpecConstant.spvasm.expected.ir.fxc.hlsl b/test/tint/unittest/reader/spirv/SpvParserTest_EmitFunctions_Function_EntryPoint_LocalSize_And_WGSBuiltin_SpecConstant.spvasm.expected.ir.fxc.hlsl
deleted file mode 100644
index 719c6f0..0000000
--- a/test/tint/unittest/reader/spirv/SpvParserTest_EmitFunctions_Function_EntryPoint_LocalSize_And_WGSBuiltin_SpecConstant.spvasm.expected.ir.fxc.hlsl
+++ /dev/null
@@ -1,10 +0,0 @@
-SKIP: FAILED
-
-void comp_main_1() {
-}
-
-[numthreads(3, 5, 7)]
-void comp_main() {
-  comp_main_1();
-}
-
diff --git a/test/tint/unittest/reader/spirv/SpvParserTest_EmitFunctions_Function_EntryPoint_MultipleEntryPoints.spvasm.expected.ir.fxc.hlsl b/test/tint/unittest/reader/spirv/SpvParserTest_EmitFunctions_Function_EntryPoint_MultipleEntryPoints.spvasm.expected.ir.fxc.hlsl
deleted file mode 100644
index af0b581..0000000
--- a/test/tint/unittest/reader/spirv/SpvParserTest_EmitFunctions_Function_EntryPoint_MultipleEntryPoints.spvasm.expected.ir.fxc.hlsl
+++ /dev/null
@@ -1,13 +0,0 @@
-SKIP: FAILED
-
-void first_shader_1() {
-}
-
-void first_shader() {
-  first_shader_1();
-}
-
-void second_shader() {
-  first_shader_1();
-}
-
diff --git a/test/tint/unittest/reader/spirv/SpvParserTest_EmitFunctions_Function_EntryPoint_Vertex.spvasm.expected.ir.dxc.hlsl b/test/tint/unittest/reader/spirv/SpvParserTest_EmitFunctions_Function_EntryPoint_Vertex.spvasm.expected.ir.dxc.hlsl
deleted file mode 100644
index c6e1d96..0000000
--- a/test/tint/unittest/reader/spirv/SpvParserTest_EmitFunctions_Function_EntryPoint_Vertex.spvasm.expected.ir.dxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Construct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix 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/SpvParserTest_EmitFunctions_Function_EntryPoint_Vertex.spvasm.expected.ir.fxc.hlsl b/test/tint/unittest/reader/spirv/SpvParserTest_EmitFunctions_Function_EntryPoint_Vertex.spvasm.expected.ir.fxc.hlsl
deleted file mode 100644
index c6e1d96..0000000
--- a/test/tint/unittest/reader/spirv/SpvParserTest_EmitFunctions_Function_EntryPoint_Vertex.spvasm.expected.ir.fxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Construct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix 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/SpvParserTest_EmitFunctions_Function_EntryPoint_WorkgroupSizeBuiltin_Constant_Only.spvasm.expected.ir.fxc.hlsl b/test/tint/unittest/reader/spirv/SpvParserTest_EmitFunctions_Function_EntryPoint_WorkgroupSizeBuiltin_Constant_Only.spvasm.expected.ir.fxc.hlsl
deleted file mode 100644
index 719c6f0..0000000
--- a/test/tint/unittest/reader/spirv/SpvParserTest_EmitFunctions_Function_EntryPoint_WorkgroupSizeBuiltin_Constant_Only.spvasm.expected.ir.fxc.hlsl
+++ /dev/null
@@ -1,10 +0,0 @@
-SKIP: FAILED
-
-void comp_main_1() {
-}
-
-[numthreads(3, 5, 7)]
-void comp_main() {
-  comp_main_1();
-}
-
diff --git a/test/tint/unittest/reader/spirv/SpvParserTest_EmitFunctions_Function_EntryPoint_WorkgroupSizeBuiltin_SpecConstant_Only.spvasm.expected.ir.fxc.hlsl b/test/tint/unittest/reader/spirv/SpvParserTest_EmitFunctions_Function_EntryPoint_WorkgroupSizeBuiltin_SpecConstant_Only.spvasm.expected.ir.fxc.hlsl
deleted file mode 100644
index 719c6f0..0000000
--- a/test/tint/unittest/reader/spirv/SpvParserTest_EmitFunctions_Function_EntryPoint_WorkgroupSizeBuiltin_SpecConstant_Only.spvasm.expected.ir.fxc.hlsl
+++ /dev/null
@@ -1,10 +0,0 @@
-SKIP: FAILED
-
-void comp_main_1() {
-}
-
-[numthreads(3, 5, 7)]
-void comp_main() {
-  comp_main_1();
-}
-
diff --git a/test/tint/unittest/reader/spirv/SpvParserTest_EmitFunctions_Function_EntryPoint_WorkgroupSize_MixedConstantSpecConstant.spvasm.expected.ir.fxc.hlsl b/test/tint/unittest/reader/spirv/SpvParserTest_EmitFunctions_Function_EntryPoint_WorkgroupSize_MixedConstantSpecConstant.spvasm.expected.ir.fxc.hlsl
deleted file mode 100644
index 719c6f0..0000000
--- a/test/tint/unittest/reader/spirv/SpvParserTest_EmitFunctions_Function_EntryPoint_WorkgroupSize_MixedConstantSpecConstant.spvasm.expected.ir.fxc.hlsl
+++ /dev/null
@@ -1,10 +0,0 @@
-SKIP: FAILED
-
-void comp_main_1() {
-}
-
-[numthreads(3, 5, 7)]
-void comp_main() {
-  comp_main_1();
-}
-
diff --git a/test/tint/unittest/reader/spirv/SpvParserTest_EmitFunctions_GenerateParamNames.spvasm.expected.ir.fxc.hlsl b/test/tint/unittest/reader/spirv/SpvParserTest_EmitFunctions_GenerateParamNames.spvasm.expected.ir.fxc.hlsl
deleted file mode 100644
index 0cbd88f..0000000
--- a/test/tint/unittest/reader/spirv/SpvParserTest_EmitFunctions_GenerateParamNames.spvasm.expected.ir.fxc.hlsl
+++ /dev/null
@@ -1,12 +0,0 @@
-SKIP: FAILED
-
-void mixed_params() {
-}
-
-void x_100_1() {
-}
-
-void x_100() {
-  x_100_1();
-}
-
diff --git a/test/tint/unittest/reader/spirv/SpvParserTest_EmitFunctions_MixedParamTypes.spvasm.expected.ir.fxc.hlsl b/test/tint/unittest/reader/spirv/SpvParserTest_EmitFunctions_MixedParamTypes.spvasm.expected.ir.fxc.hlsl
deleted file mode 100644
index 0cbd88f..0000000
--- a/test/tint/unittest/reader/spirv/SpvParserTest_EmitFunctions_MixedParamTypes.spvasm.expected.ir.fxc.hlsl
+++ /dev/null
@@ -1,12 +0,0 @@
-SKIP: FAILED
-
-void mixed_params() {
-}
-
-void x_100_1() {
-}
-
-void x_100() {
-  x_100_1();
-}
-
diff --git a/test/tint/unittest/reader/spirv/SpvParserTest_EmitFunctions_NonVoidResultType.spvasm.expected.ir.fxc.hlsl b/test/tint/unittest/reader/spirv/SpvParserTest_EmitFunctions_NonVoidResultType.spvasm.expected.ir.fxc.hlsl
deleted file mode 100644
index 987fede..0000000
--- a/test/tint/unittest/reader/spirv/SpvParserTest_EmitFunctions_NonVoidResultType.spvasm.expected.ir.fxc.hlsl
+++ /dev/null
@@ -1,13 +0,0 @@
-SKIP: FAILED
-
-float ret_float() {
-  return 0.0f;
-}
-
-void x_100_1() {
-}
-
-void x_100() {
-  x_100_1();
-}
-
diff --git a/test/tint/unittest/reader/spirv/SpvParserTest_EmitFunctions_VoidFunctionWithoutParams.spvasm.expected.ir.fxc.hlsl b/test/tint/unittest/reader/spirv/SpvParserTest_EmitFunctions_VoidFunctionWithoutParams.spvasm.expected.ir.fxc.hlsl
deleted file mode 100644
index 802902c..0000000
--- a/test/tint/unittest/reader/spirv/SpvParserTest_EmitFunctions_VoidFunctionWithoutParams.spvasm.expected.ir.fxc.hlsl
+++ /dev/null
@@ -1,12 +0,0 @@
-SKIP: FAILED
-
-void another_function() {
-}
-
-void x_100_1() {
-}
-
-void x_100() {
-  x_100_1();
-}
-
diff --git a/test/tint/unittest/reader/spirv/SpvParserTest_EmitStatement_CallWithParams.spvasm.expected.ir.dxc.hlsl b/test/tint/unittest/reader/spirv/SpvParserTest_EmitStatement_CallWithParams.spvasm.expected.ir.dxc.hlsl
deleted file mode 100644
index 6b047b4..0000000
--- a/test/tint/unittest/reader/spirv/SpvParserTest_EmitStatement_CallWithParams.spvasm.expected.ir.dxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:287 internal compiler error: Switch() matched no cases. Type: tint::core::ir::FunctionParam
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/unittest/reader/spirv/SpvParserTest_EmitStatement_CallWithParams.spvasm.expected.ir.fxc.hlsl b/test/tint/unittest/reader/spirv/SpvParserTest_EmitStatement_CallWithParams.spvasm.expected.ir.fxc.hlsl
deleted file mode 100644
index 6b047b4..0000000
--- a/test/tint/unittest/reader/spirv/SpvParserTest_EmitStatement_CallWithParams.spvasm.expected.ir.fxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:287 internal compiler error: Switch() matched no cases. Type: tint::core::ir::FunctionParam
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/unittest/reader/spirv/SpvParserTest_EmitStatement_ScalarCallNoParams.spvasm.expected.ir.fxc.hlsl b/test/tint/unittest/reader/spirv/SpvParserTest_EmitStatement_ScalarCallNoParams.spvasm.expected.ir.fxc.hlsl
deleted file mode 100644
index 02a7220..0000000
--- a/test/tint/unittest/reader/spirv/SpvParserTest_EmitStatement_ScalarCallNoParams.spvasm.expected.ir.fxc.hlsl
+++ /dev/null
@@ -1,14 +0,0 @@
-SKIP: FAILED
-
-uint x_50() {
-  return 42u;
-}
-
-void x_100_1() {
-  uint x_1 = x_50();
-}
-
-void x_100() {
-  x_100_1();
-}
-
diff --git a/test/tint/unittest/reader/spirv/SpvParserTest_EmitStatement_ScalarCallNoParamsUsedTwice.spvasm.expected.ir.fxc.hlsl b/test/tint/unittest/reader/spirv/SpvParserTest_EmitStatement_ScalarCallNoParamsUsedTwice.spvasm.expected.ir.fxc.hlsl
deleted file mode 100644
index be8055d..0000000
--- a/test/tint/unittest/reader/spirv/SpvParserTest_EmitStatement_ScalarCallNoParamsUsedTwice.spvasm.expected.ir.fxc.hlsl
+++ /dev/null
@@ -1,17 +0,0 @@
-SKIP: FAILED
-
-uint x_50() {
-  return 42u;
-}
-
-void x_100_1() {
-  uint x_10 = 0u;
-  uint x_1 = x_50();
-  x_10 = x_1;
-  x_10 = x_1;
-}
-
-void x_100() {
-  x_100_1();
-}
-
diff --git a/test/tint/unittest/reader/spirv/SpvParserTest_EmitStatement_VoidCallNoParams.spvasm.expected.ir.fxc.hlsl b/test/tint/unittest/reader/spirv/SpvParserTest_EmitStatement_VoidCallNoParams.spvasm.expected.ir.fxc.hlsl
deleted file mode 100644
index 0aad501..0000000
--- a/test/tint/unittest/reader/spirv/SpvParserTest_EmitStatement_VoidCallNoParams.spvasm.expected.ir.fxc.hlsl
+++ /dev/null
@@ -1,13 +0,0 @@
-SKIP: FAILED
-
-void x_50() {
-}
-
-void x_100_1() {
-  x_50();
-}
-
-void x_100() {
-  x_100_1();
-}
-
diff --git a/test/tint/unittest/reader/spirv/SpvParserTest_Emit_GenerateParamNames.spvasm.expected.ir.fxc.hlsl b/test/tint/unittest/reader/spirv/SpvParserTest_Emit_GenerateParamNames.spvasm.expected.ir.fxc.hlsl
deleted file mode 100644
index fbc8a97..0000000
--- a/test/tint/unittest/reader/spirv/SpvParserTest_Emit_GenerateParamNames.spvasm.expected.ir.fxc.hlsl
+++ /dev/null
@@ -1,12 +0,0 @@
-SKIP: FAILED
-
-void x_200() {
-}
-
-void x_100_1() {
-}
-
-void x_100() {
-  x_100_1();
-}
-
diff --git a/test/tint/unittest/reader/spirv/SpvParserTest_Emit_MixedParamTypes.spvasm.expected.ir.fxc.hlsl b/test/tint/unittest/reader/spirv/SpvParserTest_Emit_MixedParamTypes.spvasm.expected.ir.fxc.hlsl
deleted file mode 100644
index fbc8a97..0000000
--- a/test/tint/unittest/reader/spirv/SpvParserTest_Emit_MixedParamTypes.spvasm.expected.ir.fxc.hlsl
+++ /dev/null
@@ -1,12 +0,0 @@
-SKIP: FAILED
-
-void x_200() {
-}
-
-void x_100_1() {
-}
-
-void x_100() {
-  x_100_1();
-}
-
diff --git a/test/tint/unittest/reader/spirv/SpvParserTest_Emit_NonVoidResultType.spvasm.expected.ir.fxc.hlsl b/test/tint/unittest/reader/spirv/SpvParserTest_Emit_NonVoidResultType.spvasm.expected.ir.fxc.hlsl
deleted file mode 100644
index 1f045fa..0000000
--- a/test/tint/unittest/reader/spirv/SpvParserTest_Emit_NonVoidResultType.spvasm.expected.ir.fxc.hlsl
+++ /dev/null
@@ -1,13 +0,0 @@
-SKIP: FAILED
-
-float x_200() {
-  return 0.0f;
-}
-
-void x_100_1() {
-}
-
-void x_100() {
-  x_100_1();
-}
-
diff --git a/test/tint/unittest/reader/spirv/SpvParserTest_Emit_VoidFunctionWithoutParams.spvasm.expected.ir.fxc.hlsl b/test/tint/unittest/reader/spirv/SpvParserTest_Emit_VoidFunctionWithoutParams.spvasm.expected.ir.fxc.hlsl
deleted file mode 100644
index 9991cb6..0000000
--- a/test/tint/unittest/reader/spirv/SpvParserTest_Emit_VoidFunctionWithoutParams.spvasm.expected.ir.fxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-void x_100_1() {
-}
-
-void x_100() {
-  x_100_1();
-}
-
diff --git a/test/tint/unittest/reader/spirv/SpvParserTest_FAdd_SpvBinaryArithTest_EmitExpression_0.spvasm.expected.ir.fxc.hlsl b/test/tint/unittest/reader/spirv/SpvParserTest_FAdd_SpvBinaryArithTest_EmitExpression_0.spvasm.expected.ir.fxc.hlsl
deleted file mode 100644
index de2ce29..0000000
--- a/test/tint/unittest/reader/spirv/SpvParserTest_FAdd_SpvBinaryArithTest_EmitExpression_0.spvasm.expected.ir.fxc.hlsl
+++ /dev/null
@@ -1,10 +0,0 @@
-SKIP: FAILED
-
-void main_1() {
-  float x_1 = 110.0f;
-}
-
-void main() {
-  main_1();
-}
-
diff --git a/test/tint/unittest/reader/spirv/SpvParserTest_FAdd_SpvBinaryArithTest_EmitExpression_1.spvasm.expected.ir.fxc.hlsl b/test/tint/unittest/reader/spirv/SpvParserTest_FAdd_SpvBinaryArithTest_EmitExpression_1.spvasm.expected.ir.fxc.hlsl
deleted file mode 100644
index ab448e1..0000000
--- a/test/tint/unittest/reader/spirv/SpvParserTest_FAdd_SpvBinaryArithTest_EmitExpression_1.spvasm.expected.ir.fxc.hlsl
+++ /dev/null
@@ -1,10 +0,0 @@
-SKIP: FAILED
-
-void main_1() {
-  float2 x_1 = (110.0f).xx;
-}
-
-void main() {
-  main_1();
-}
-
diff --git a/test/tint/unittest/reader/spirv/SpvParserTest_FDiv_SpvBinaryArithTest_EmitExpression_0.spvasm.expected.ir.fxc.hlsl b/test/tint/unittest/reader/spirv/SpvParserTest_FDiv_SpvBinaryArithTest_EmitExpression_0.spvasm.expected.ir.fxc.hlsl
deleted file mode 100644
index 3f25ef9..0000000
--- a/test/tint/unittest/reader/spirv/SpvParserTest_FDiv_SpvBinaryArithTest_EmitExpression_0.spvasm.expected.ir.fxc.hlsl
+++ /dev/null
@@ -1,10 +0,0 @@
-SKIP: FAILED
-
-void main_1() {
-  float x_1 = 0.8333333134651184082f;
-}
-
-void main() {
-  main_1();
-}
-
diff --git a/test/tint/unittest/reader/spirv/SpvParserTest_FDiv_SpvBinaryArithTest_EmitExpression_1.spvasm.expected.ir.fxc.hlsl b/test/tint/unittest/reader/spirv/SpvParserTest_FDiv_SpvBinaryArithTest_EmitExpression_1.spvasm.expected.ir.fxc.hlsl
deleted file mode 100644
index 6ee894e..0000000
--- a/test/tint/unittest/reader/spirv/SpvParserTest_FDiv_SpvBinaryArithTest_EmitExpression_1.spvasm.expected.ir.fxc.hlsl
+++ /dev/null
@@ -1,10 +0,0 @@
-SKIP: FAILED
-
-void main_1() {
-  float2 x_1 = float2(0.8333333134651184082f, 1.20000004768371582031f);
-}
-
-void main() {
-  main_1();
-}
-
diff --git a/test/tint/unittest/reader/spirv/SpvParserTest_FMul_SpvBinaryArithTest_EmitExpression_0.spvasm.expected.ir.fxc.hlsl b/test/tint/unittest/reader/spirv/SpvParserTest_FMul_SpvBinaryArithTest_EmitExpression_0.spvasm.expected.ir.fxc.hlsl
deleted file mode 100644
index aeedda0..0000000
--- a/test/tint/unittest/reader/spirv/SpvParserTest_FMul_SpvBinaryArithTest_EmitExpression_0.spvasm.expected.ir.fxc.hlsl
+++ /dev/null
@@ -1,10 +0,0 @@
-SKIP: FAILED
-
-void main_1() {
-  float x_1 = 3000.0f;
-}
-
-void main() {
-  main_1();
-}
-
diff --git a/test/tint/unittest/reader/spirv/SpvParserTest_FMul_SpvBinaryArithTest_EmitExpression_1.spvasm.expected.ir.fxc.hlsl b/test/tint/unittest/reader/spirv/SpvParserTest_FMul_SpvBinaryArithTest_EmitExpression_1.spvasm.expected.ir.fxc.hlsl
deleted file mode 100644
index df821eb..0000000
--- a/test/tint/unittest/reader/spirv/SpvParserTest_FMul_SpvBinaryArithTest_EmitExpression_1.spvasm.expected.ir.fxc.hlsl
+++ /dev/null
@@ -1,10 +0,0 @@
-SKIP: FAILED
-
-void main_1() {
-  float2 x_1 = (3000.0f).xx;
-}
-
-void main() {
-  main_1();
-}
-
diff --git a/test/tint/unittest/reader/spirv/SpvParserTest_FOrdEqual_SpvBinaryLogicalTest_EmitExpression_0.spvasm.expected.ir.fxc.hlsl b/test/tint/unittest/reader/spirv/SpvParserTest_FOrdEqual_SpvBinaryLogicalTest_EmitExpression_0.spvasm.expected.ir.fxc.hlsl
deleted file mode 100644
index 969210b..0000000
--- a/test/tint/unittest/reader/spirv/SpvParserTest_FOrdEqual_SpvBinaryLogicalTest_EmitExpression_0.spvasm.expected.ir.fxc.hlsl
+++ /dev/null
@@ -1,10 +0,0 @@
-SKIP: FAILED
-
-void main_1() {
-  bool x_1 = false;
-}
-
-void main() {
-  main_1();
-}
-
diff --git a/test/tint/unittest/reader/spirv/SpvParserTest_FOrdEqual_SpvBinaryLogicalTest_EmitExpression_1.spvasm.expected.ir.fxc.hlsl b/test/tint/unittest/reader/spirv/SpvParserTest_FOrdEqual_SpvBinaryLogicalTest_EmitExpression_1.spvasm.expected.ir.fxc.hlsl
deleted file mode 100644
index a217ea8..0000000
--- a/test/tint/unittest/reader/spirv/SpvParserTest_FOrdEqual_SpvBinaryLogicalTest_EmitExpression_1.spvasm.expected.ir.fxc.hlsl
+++ /dev/null
@@ -1,10 +0,0 @@
-SKIP: FAILED
-
-void main_1() {
-  bool2 x_1 = (false).xx;
-}
-
-void main() {
-  main_1();
-}
-
diff --git a/test/tint/unittest/reader/spirv/SpvParserTest_FOrdGreaterThanEqual_SpvBinaryLogicalTest_EmitExpression_0.spvasm.expected.ir.fxc.hlsl b/test/tint/unittest/reader/spirv/SpvParserTest_FOrdGreaterThanEqual_SpvBinaryLogicalTest_EmitExpression_0.spvasm.expected.ir.fxc.hlsl
deleted file mode 100644
index 969210b..0000000
--- a/test/tint/unittest/reader/spirv/SpvParserTest_FOrdGreaterThanEqual_SpvBinaryLogicalTest_EmitExpression_0.spvasm.expected.ir.fxc.hlsl
+++ /dev/null
@@ -1,10 +0,0 @@
-SKIP: FAILED
-
-void main_1() {
-  bool x_1 = false;
-}
-
-void main() {
-  main_1();
-}
-
diff --git a/test/tint/unittest/reader/spirv/SpvParserTest_FOrdGreaterThanEqual_SpvBinaryLogicalTest_EmitExpression_1.spvasm.expected.ir.fxc.hlsl b/test/tint/unittest/reader/spirv/SpvParserTest_FOrdGreaterThanEqual_SpvBinaryLogicalTest_EmitExpression_1.spvasm.expected.ir.fxc.hlsl
deleted file mode 100644
index b3adcc7..0000000
--- a/test/tint/unittest/reader/spirv/SpvParserTest_FOrdGreaterThanEqual_SpvBinaryLogicalTest_EmitExpression_1.spvasm.expected.ir.fxc.hlsl
+++ /dev/null
@@ -1,10 +0,0 @@
-SKIP: FAILED
-
-void main_1() {
-  bool2 x_1 = bool2(false, true);
-}
-
-void main() {
-  main_1();
-}
-
diff --git a/test/tint/unittest/reader/spirv/SpvParserTest_FOrdGreaterThan_SpvBinaryLogicalTest_EmitExpression_0.spvasm.expected.ir.fxc.hlsl b/test/tint/unittest/reader/spirv/SpvParserTest_FOrdGreaterThan_SpvBinaryLogicalTest_EmitExpression_0.spvasm.expected.ir.fxc.hlsl
deleted file mode 100644
index 969210b..0000000
--- a/test/tint/unittest/reader/spirv/SpvParserTest_FOrdGreaterThan_SpvBinaryLogicalTest_EmitExpression_0.spvasm.expected.ir.fxc.hlsl
+++ /dev/null
@@ -1,10 +0,0 @@
-SKIP: FAILED
-
-void main_1() {
-  bool x_1 = false;
-}
-
-void main() {
-  main_1();
-}
-
diff --git a/test/tint/unittest/reader/spirv/SpvParserTest_FOrdGreaterThan_SpvBinaryLogicalTest_EmitExpression_1.spvasm.expected.ir.fxc.hlsl b/test/tint/unittest/reader/spirv/SpvParserTest_FOrdGreaterThan_SpvBinaryLogicalTest_EmitExpression_1.spvasm.expected.ir.fxc.hlsl
deleted file mode 100644
index b3adcc7..0000000
--- a/test/tint/unittest/reader/spirv/SpvParserTest_FOrdGreaterThan_SpvBinaryLogicalTest_EmitExpression_1.spvasm.expected.ir.fxc.hlsl
+++ /dev/null
@@ -1,10 +0,0 @@
-SKIP: FAILED
-
-void main_1() {
-  bool2 x_1 = bool2(false, true);
-}
-
-void main() {
-  main_1();
-}
-
diff --git a/test/tint/unittest/reader/spirv/SpvParserTest_FOrdLessThanEqual_SpvBinaryLogicalTest_EmitExpression_0.spvasm.expected.ir.fxc.hlsl b/test/tint/unittest/reader/spirv/SpvParserTest_FOrdLessThanEqual_SpvBinaryLogicalTest_EmitExpression_0.spvasm.expected.ir.fxc.hlsl
deleted file mode 100644
index 00baddd..0000000
--- a/test/tint/unittest/reader/spirv/SpvParserTest_FOrdLessThanEqual_SpvBinaryLogicalTest_EmitExpression_0.spvasm.expected.ir.fxc.hlsl
+++ /dev/null
@@ -1,10 +0,0 @@
-SKIP: FAILED
-
-void main_1() {
-  bool x_1 = true;
-}
-
-void main() {
-  main_1();
-}
-
diff --git a/test/tint/unittest/reader/spirv/SpvParserTest_FOrdLessThanEqual_SpvBinaryLogicalTest_EmitExpression_1.spvasm.expected.ir.fxc.hlsl b/test/tint/unittest/reader/spirv/SpvParserTest_FOrdLessThanEqual_SpvBinaryLogicalTest_EmitExpression_1.spvasm.expected.ir.fxc.hlsl
deleted file mode 100644
index fecb7b9..0000000
--- a/test/tint/unittest/reader/spirv/SpvParserTest_FOrdLessThanEqual_SpvBinaryLogicalTest_EmitExpression_1.spvasm.expected.ir.fxc.hlsl
+++ /dev/null
@@ -1,10 +0,0 @@
-SKIP: FAILED
-
-void main_1() {
-  bool2 x_1 = bool2(true, false);
-}
-
-void main() {
-  main_1();
-}
-
diff --git a/test/tint/unittest/reader/spirv/SpvParserTest_FOrdLessThan_SpvBinaryLogicalTest_EmitExpression_0.spvasm.expected.ir.fxc.hlsl b/test/tint/unittest/reader/spirv/SpvParserTest_FOrdLessThan_SpvBinaryLogicalTest_EmitExpression_0.spvasm.expected.ir.fxc.hlsl
deleted file mode 100644
index 00baddd..0000000
--- a/test/tint/unittest/reader/spirv/SpvParserTest_FOrdLessThan_SpvBinaryLogicalTest_EmitExpression_0.spvasm.expected.ir.fxc.hlsl
+++ /dev/null
@@ -1,10 +0,0 @@
-SKIP: FAILED
-
-void main_1() {
-  bool x_1 = true;
-}
-
-void main() {
-  main_1();
-}
-
diff --git a/test/tint/unittest/reader/spirv/SpvParserTest_FOrdLessThan_SpvBinaryLogicalTest_EmitExpression_1.spvasm.expected.ir.fxc.hlsl b/test/tint/unittest/reader/spirv/SpvParserTest_FOrdLessThan_SpvBinaryLogicalTest_EmitExpression_1.spvasm.expected.ir.fxc.hlsl
deleted file mode 100644
index fecb7b9..0000000
--- a/test/tint/unittest/reader/spirv/SpvParserTest_FOrdLessThan_SpvBinaryLogicalTest_EmitExpression_1.spvasm.expected.ir.fxc.hlsl
+++ /dev/null
@@ -1,10 +0,0 @@
-SKIP: FAILED
-
-void main_1() {
-  bool2 x_1 = bool2(true, false);
-}
-
-void main() {
-  main_1();
-}
-
diff --git a/test/tint/unittest/reader/spirv/SpvParserTest_FOrdNotEqual_SpvBinaryLogicalTest_EmitExpression_0.spvasm.expected.ir.fxc.hlsl b/test/tint/unittest/reader/spirv/SpvParserTest_FOrdNotEqual_SpvBinaryLogicalTest_EmitExpression_0.spvasm.expected.ir.fxc.hlsl
deleted file mode 100644
index 00baddd..0000000
--- a/test/tint/unittest/reader/spirv/SpvParserTest_FOrdNotEqual_SpvBinaryLogicalTest_EmitExpression_0.spvasm.expected.ir.fxc.hlsl
+++ /dev/null
@@ -1,10 +0,0 @@
-SKIP: FAILED
-
-void main_1() {
-  bool x_1 = true;
-}
-
-void main() {
-  main_1();
-}
-
diff --git a/test/tint/unittest/reader/spirv/SpvParserTest_FOrdNotEqual_SpvBinaryLogicalTest_EmitExpression_1.spvasm.expected.ir.fxc.hlsl b/test/tint/unittest/reader/spirv/SpvParserTest_FOrdNotEqual_SpvBinaryLogicalTest_EmitExpression_1.spvasm.expected.ir.fxc.hlsl
deleted file mode 100644
index 311dd17..0000000
--- a/test/tint/unittest/reader/spirv/SpvParserTest_FOrdNotEqual_SpvBinaryLogicalTest_EmitExpression_1.spvasm.expected.ir.fxc.hlsl
+++ /dev/null
@@ -1,10 +0,0 @@
-SKIP: FAILED
-
-void main_1() {
-  bool2 x_1 = (true).xx;
-}
-
-void main() {
-  main_1();
-}
-
diff --git a/test/tint/unittest/reader/spirv/SpvParserTest_FRem_SpvBinaryArithTest_EmitExpression_0.spvasm.expected.ir.fxc.hlsl b/test/tint/unittest/reader/spirv/SpvParserTest_FRem_SpvBinaryArithTest_EmitExpression_0.spvasm.expected.ir.fxc.hlsl
deleted file mode 100644
index b78ee37..0000000
--- a/test/tint/unittest/reader/spirv/SpvParserTest_FRem_SpvBinaryArithTest_EmitExpression_0.spvasm.expected.ir.fxc.hlsl
+++ /dev/null
@@ -1,10 +0,0 @@
-SKIP: FAILED
-
-void main_1() {
-  float x_1 = 50.0f;
-}
-
-void main() {
-  main_1();
-}
-
diff --git a/test/tint/unittest/reader/spirv/SpvParserTest_FRem_SpvBinaryArithTest_EmitExpression_1.spvasm.expected.ir.fxc.hlsl b/test/tint/unittest/reader/spirv/SpvParserTest_FRem_SpvBinaryArithTest_EmitExpression_1.spvasm.expected.ir.fxc.hlsl
deleted file mode 100644
index 5c139b7..0000000
--- a/test/tint/unittest/reader/spirv/SpvParserTest_FRem_SpvBinaryArithTest_EmitExpression_1.spvasm.expected.ir.fxc.hlsl
+++ /dev/null
@@ -1,10 +0,0 @@
-SKIP: FAILED
-
-void main_1() {
-  float2 x_1 = float2(50.0f, 10.0f);
-}
-
-void main() {
-  main_1();
-}
-
diff --git a/test/tint/unittest/reader/spirv/SpvParserTest_FSub_SpvBinaryArithTest_EmitExpression_0.spvasm.expected.ir.fxc.hlsl b/test/tint/unittest/reader/spirv/SpvParserTest_FSub_SpvBinaryArithTest_EmitExpression_0.spvasm.expected.ir.fxc.hlsl
deleted file mode 100644
index 7ef4742..0000000
--- a/test/tint/unittest/reader/spirv/SpvParserTest_FSub_SpvBinaryArithTest_EmitExpression_0.spvasm.expected.ir.fxc.hlsl
+++ /dev/null
@@ -1,10 +0,0 @@
-SKIP: FAILED
-
-void main_1() {
-  float x_1 = -10.0f;
-}
-
-void main() {
-  main_1();
-}
-
diff --git a/test/tint/unittest/reader/spirv/SpvParserTest_FSub_SpvBinaryArithTest_EmitExpression_1.spvasm.expected.ir.fxc.hlsl b/test/tint/unittest/reader/spirv/SpvParserTest_FSub_SpvBinaryArithTest_EmitExpression_1.spvasm.expected.ir.fxc.hlsl
deleted file mode 100644
index 59d4149..0000000
--- a/test/tint/unittest/reader/spirv/SpvParserTest_FSub_SpvBinaryArithTest_EmitExpression_1.spvasm.expected.ir.fxc.hlsl
+++ /dev/null
@@ -1,10 +0,0 @@
-SKIP: FAILED
-
-void main_1() {
-  float2 x_1 = float2(-10.0f, 10.0f);
-}
-
-void main() {
-  main_1();
-}
-
diff --git a/test/tint/unittest/reader/spirv/SpvParserTest_GlslStd450_Degrees_Scalar.spvasm.expected.ir.fxc.hlsl b/test/tint/unittest/reader/spirv/SpvParserTest_GlslStd450_Degrees_Scalar.spvasm.expected.ir.fxc.hlsl
deleted file mode 100644
index 39709cc..0000000
--- a/test/tint/unittest/reader/spirv/SpvParserTest_GlslStd450_Degrees_Scalar.spvasm.expected.ir.fxc.hlsl
+++ /dev/null
@@ -1,33 +0,0 @@
-SKIP: FAILED
-
-void main_1() {
-  uint u1 = 10u;
-  uint u2 = 15u;
-  uint u3 = 20u;
-  int i1 = 30;
-  int i2 = 35;
-  int i3 = 40;
-  float f1 = 50.0f;
-  float f2 = 60.0f;
-  float f3 = 70.0f;
-  uint2 v2u1 = uint2(10u, 20u);
-  uint2 v2u2 = uint2(20u, 10u);
-  uint2 v2u3 = (15u).xx;
-  int2 v2i1 = int2(30, 40);
-  int2 v2i2 = int2(40, 30);
-  int2 v2i3 = (35).xx;
-  float2 v2f1 = float2(50.0f, 60.0f);
-  float2 v2f2 = float2(60.0f, 50.0f);
-  float2 v2f3 = (70.0f).xx;
-  float3 v3f1 = float3(50.0f, 60.0f, 70.0f);
-  float3 v3f2 = float3(60.0f, 70.0f, 50.0f);
-  float4 v4f1 = (50.0f).xxxx;
-  float4 v4f2 = v4f1;
-  float x_1 = 2864.788818359375f;
-}
-
-[numthreads(1, 1, 1)]
-void main() {
-  main_1();
-}
-
diff --git a/test/tint/unittest/reader/spirv/SpvParserTest_GlslStd450_Degrees_Vector.spvasm.expected.ir.fxc.hlsl b/test/tint/unittest/reader/spirv/SpvParserTest_GlslStd450_Degrees_Vector.spvasm.expected.ir.fxc.hlsl
deleted file mode 100644
index 68132db..0000000
--- a/test/tint/unittest/reader/spirv/SpvParserTest_GlslStd450_Degrees_Vector.spvasm.expected.ir.fxc.hlsl
+++ /dev/null
@@ -1,33 +0,0 @@
-SKIP: FAILED
-
-void main_1() {
-  uint u1 = 10u;
-  uint u2 = 15u;
-  uint u3 = 20u;
-  int i1 = 30;
-  int i2 = 35;
-  int i3 = 40;
-  float f1 = 50.0f;
-  float f2 = 60.0f;
-  float f3 = 70.0f;
-  uint2 v2u1 = uint2(10u, 20u);
-  uint2 v2u2 = uint2(20u, 10u);
-  uint2 v2u3 = (15u).xx;
-  int2 v2i1 = int2(30, 40);
-  int2 v2i2 = int2(40, 30);
-  int2 v2i3 = (35).xx;
-  float2 v2f1 = float2(50.0f, 60.0f);
-  float2 v2f2 = float2(60.0f, 50.0f);
-  float2 v2f3 = (70.0f).xx;
-  float3 v3f1 = float3(50.0f, 60.0f, 70.0f);
-  float3 v3f2 = float3(60.0f, 70.0f, 50.0f);
-  float4 v4f1 = (50.0f).xxxx;
-  float4 v4f2 = v4f1;
-  float3 x_1 = float3(3437.74658203125f, 4010.704345703125f, 2864.788818359375f);
-}
-
-[numthreads(1, 1, 1)]
-void main() {
-  main_1();
-}
-
diff --git a/test/tint/unittest/reader/spirv/SpvParserTest_GlslStd450_FaceForward_Scalar.spvasm.expected.ir.dxc.hlsl b/test/tint/unittest/reader/spirv/SpvParserTest_GlslStd450_FaceForward_Scalar.spvasm.expected.ir.dxc.hlsl
deleted file mode 100644
index ddf0424..0000000
--- a/test/tint/unittest/reader/spirv/SpvParserTest_GlslStd450_FaceForward_Scalar.spvasm.expected.ir.dxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: select
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix 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/SpvParserTest_GlslStd450_FaceForward_Scalar.spvasm.expected.ir.fxc.hlsl b/test/tint/unittest/reader/spirv/SpvParserTest_GlslStd450_FaceForward_Scalar.spvasm.expected.ir.fxc.hlsl
deleted file mode 100644
index ddf0424..0000000
--- a/test/tint/unittest/reader/spirv/SpvParserTest_GlslStd450_FaceForward_Scalar.spvasm.expected.ir.fxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: select
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix 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/SpvParserTest_GlslStd450_FaceForward_Vector.spvasm.expected.ir.fxc.hlsl b/test/tint/unittest/reader/spirv/SpvParserTest_GlslStd450_FaceForward_Vector.spvasm.expected.ir.fxc.hlsl
deleted file mode 100644
index 9846223..0000000
--- a/test/tint/unittest/reader/spirv/SpvParserTest_GlslStd450_FaceForward_Vector.spvasm.expected.ir.fxc.hlsl
+++ /dev/null
@@ -1,32 +0,0 @@
-SKIP: FAILED
-
-void main_1() {
-  uint u1 = 10u;
-  uint u2 = 15u;
-  uint u3 = 20u;
-  int i1 = 30;
-  int i2 = 35;
-  int i3 = 40;
-  float f1 = 50.0f;
-  float f2 = 60.0f;
-  float f3 = 70.0f;
-  uint2 v2u1 = uint2(10u, 20u);
-  uint2 v2u2 = uint2(20u, 10u);
-  uint2 v2u3 = (15u).xx;
-  int2 v2i1 = int2(30, 40);
-  int2 v2i2 = int2(40, 30);
-  int2 v2i3 = (35).xx;
-  float2 v2f1 = float2(50.0f, 60.0f);
-  float3 v3f1 = float3(50.0f, 60.0f, 70.0f);
-  float3 v3f2 = float3(60.0f, 70.0f, 50.0f);
-  float4 v4f1 = (50.0f).xxxx;
-  float4 v4f2 = v4f1;
-  float2 x_99 = (v2f1 + v2f1);
-  float2 x_1 = faceforward(v2f1, float2(60.0f, 50.0f), (70.0f).xx);
-}
-
-[numthreads(1, 1, 1)]
-void main() {
-  main_1();
-}
-
diff --git a/test/tint/unittest/reader/spirv/SpvParserTest_GlslStd450_Ldexp_Scalar_Float_Uint.spvasm.expected.ir.fxc.hlsl b/test/tint/unittest/reader/spirv/SpvParserTest_GlslStd450_Ldexp_Scalar_Float_Uint.spvasm.expected.ir.fxc.hlsl
deleted file mode 100644
index caea3e4..0000000
--- a/test/tint/unittest/reader/spirv/SpvParserTest_GlslStd450_Ldexp_Scalar_Float_Uint.spvasm.expected.ir.fxc.hlsl
+++ /dev/null
@@ -1,31 +0,0 @@
-SKIP: FAILED
-
-void main_1() {
-  uint u2 = 15u;
-  uint u3 = 20u;
-  int i1 = 30;
-  int i2 = 35;
-  int i3 = 40;
-  float f2 = 60.0f;
-  float f3 = 70.0f;
-  uint2 v2u1 = uint2(10u, 20u);
-  uint2 v2u2 = uint2(20u, 10u);
-  uint2 v2u3 = (15u).xx;
-  int2 v2i1 = int2(30, 40);
-  int2 v2i2 = int2(40, 30);
-  int2 v2i3 = (35).xx;
-  float2 v2f1 = float2(50.0f, 60.0f);
-  float2 v2f2 = float2(60.0f, 50.0f);
-  float2 v2f3 = (70.0f).xx;
-  float3 v3f1 = float3(50.0f, 60.0f, 70.0f);
-  float3 v3f2 = float3(60.0f, 70.0f, 50.0f);
-  float4 v4f1 = (50.0f).xxxx;
-  float4 v4f2 = v4f1;
-  float x_1 = 51200.0f;
-}
-
-[numthreads(1, 1, 1)]
-void main() {
-  main_1();
-}
-
diff --git a/test/tint/unittest/reader/spirv/SpvParserTest_GlslStd450_Ldexp_Vector_Floatvec_Uintvec.spvasm.expected.ir.fxc.hlsl b/test/tint/unittest/reader/spirv/SpvParserTest_GlslStd450_Ldexp_Vector_Floatvec_Uintvec.spvasm.expected.ir.fxc.hlsl
deleted file mode 100644
index 2eadc05..0000000
--- a/test/tint/unittest/reader/spirv/SpvParserTest_GlslStd450_Ldexp_Vector_Floatvec_Uintvec.spvasm.expected.ir.fxc.hlsl
+++ /dev/null
@@ -1,31 +0,0 @@
-SKIP: FAILED
-
-void main_1() {
-  uint u1 = 10u;
-  uint u2 = 15u;
-  uint u3 = 20u;
-  int i1 = 30;
-  int i2 = 35;
-  int i3 = 40;
-  float f1 = 50.0f;
-  float f2 = 60.0f;
-  float f3 = 70.0f;
-  uint2 v2u2 = uint2(20u, 10u);
-  uint2 v2u3 = (15u).xx;
-  int2 v2i1 = int2(30, 40);
-  int2 v2i2 = int2(40, 30);
-  int2 v2i3 = (35).xx;
-  float2 v2f2 = float2(60.0f, 50.0f);
-  float2 v2f3 = (70.0f).xx;
-  float3 v3f1 = float3(50.0f, 60.0f, 70.0f);
-  float3 v3f2 = float3(60.0f, 70.0f, 50.0f);
-  float4 v4f1 = (50.0f).xxxx;
-  float4 v4f2 = v4f1;
-  float2 x_1 = float2(51200.0f, 62914560.0f);
-}
-
-[numthreads(1, 1, 1)]
-void main() {
-  main_1();
-}
-
diff --git a/test/tint/unittest/reader/spirv/SpvParserTest_GlslStd450_Radians_Scalar.spvasm.expected.ir.fxc.hlsl b/test/tint/unittest/reader/spirv/SpvParserTest_GlslStd450_Radians_Scalar.spvasm.expected.ir.fxc.hlsl
deleted file mode 100644
index 820fab6..0000000
--- a/test/tint/unittest/reader/spirv/SpvParserTest_GlslStd450_Radians_Scalar.spvasm.expected.ir.fxc.hlsl
+++ /dev/null
@@ -1,33 +0,0 @@
-SKIP: FAILED
-
-void main_1() {
-  uint u1 = 10u;
-  uint u2 = 15u;
-  uint u3 = 20u;
-  int i1 = 30;
-  int i2 = 35;
-  int i3 = 40;
-  float f1 = 50.0f;
-  float f2 = 60.0f;
-  float f3 = 70.0f;
-  uint2 v2u1 = uint2(10u, 20u);
-  uint2 v2u2 = uint2(20u, 10u);
-  uint2 v2u3 = (15u).xx;
-  int2 v2i1 = int2(30, 40);
-  int2 v2i2 = int2(40, 30);
-  int2 v2i3 = (35).xx;
-  float2 v2f1 = float2(50.0f, 60.0f);
-  float2 v2f2 = float2(60.0f, 50.0f);
-  float2 v2f3 = (70.0f).xx;
-  float3 v3f1 = float3(50.0f, 60.0f, 70.0f);
-  float3 v3f2 = float3(60.0f, 70.0f, 50.0f);
-  float4 v4f1 = (50.0f).xxxx;
-  float4 v4f2 = v4f1;
-  float x_1 = 0.87266463041305541992f;
-}
-
-[numthreads(1, 1, 1)]
-void main() {
-  main_1();
-}
-
diff --git a/test/tint/unittest/reader/spirv/SpvParserTest_GlslStd450_Radians_Vector.spvasm.expected.ir.fxc.hlsl b/test/tint/unittest/reader/spirv/SpvParserTest_GlslStd450_Radians_Vector.spvasm.expected.ir.fxc.hlsl
deleted file mode 100644
index 612cf9e..0000000
--- a/test/tint/unittest/reader/spirv/SpvParserTest_GlslStd450_Radians_Vector.spvasm.expected.ir.fxc.hlsl
+++ /dev/null
@@ -1,33 +0,0 @@
-SKIP: FAILED
-
-void main_1() {
-  uint u1 = 10u;
-  uint u2 = 15u;
-  uint u3 = 20u;
-  int i1 = 30;
-  int i2 = 35;
-  int i3 = 40;
-  float f1 = 50.0f;
-  float f2 = 60.0f;
-  float f3 = 70.0f;
-  uint2 v2u1 = uint2(10u, 20u);
-  uint2 v2u2 = uint2(20u, 10u);
-  uint2 v2u3 = (15u).xx;
-  int2 v2i1 = int2(30, 40);
-  int2 v2i2 = int2(40, 30);
-  int2 v2i3 = (35).xx;
-  float2 v2f1 = float2(50.0f, 60.0f);
-  float2 v2f2 = float2(60.0f, 50.0f);
-  float2 v2f3 = (70.0f).xx;
-  float3 v3f1 = float3(50.0f, 60.0f, 70.0f);
-  float3 v3f2 = float3(60.0f, 70.0f, 50.0f);
-  float4 v4f1 = (50.0f).xxxx;
-  float4 v4f2 = v4f1;
-  float3 x_1 = float3(1.04719758033752441406f, 1.22173047065734863281f, 0.87266463041305541992f);
-}
-
-[numthreads(1, 1, 1)]
-void main() {
-  main_1();
-}
-
diff --git a/test/tint/unittest/reader/spirv/SpvParserTest_GlslStd450_Reflect_Scalar.spvasm.expected.ir.fxc.hlsl b/test/tint/unittest/reader/spirv/SpvParserTest_GlslStd450_Reflect_Scalar.spvasm.expected.ir.fxc.hlsl
deleted file mode 100644
index 085f244..0000000
--- a/test/tint/unittest/reader/spirv/SpvParserTest_GlslStd450_Reflect_Scalar.spvasm.expected.ir.fxc.hlsl
+++ /dev/null
@@ -1,35 +0,0 @@
-SKIP: FAILED
-
-void main_1() {
-  uint u1 = 10u;
-  uint u2 = 15u;
-  uint u3 = 20u;
-  int i1 = 30;
-  int i2 = 35;
-  int i3 = 40;
-  float f1 = 50.0f;
-  float f2 = 60.0f;
-  float f3 = 70.0f;
-  uint2 v2u1 = uint2(10u, 20u);
-  uint2 v2u2 = uint2(20u, 10u);
-  uint2 v2u3 = (15u).xx;
-  int2 v2i1 = int2(30, 40);
-  int2 v2i2 = int2(40, 30);
-  int2 v2i3 = (35).xx;
-  float2 v2f1 = float2(50.0f, 60.0f);
-  float2 v2f2 = float2(60.0f, 50.0f);
-  float2 v2f3 = (70.0f).xx;
-  float3 v3f1 = float3(50.0f, 60.0f, 70.0f);
-  float3 v3f2 = float3(60.0f, 70.0f, 50.0f);
-  float4 v4f1 = (50.0f).xxxx;
-  float4 v4f2 = v4f1;
-  float x_98 = (f1 + f1);
-  float x_99 = (f2 + f2);
-  float x_1 = (x_98 - (2.0f * (x_99 * (x_99 * x_98))));
-}
-
-[numthreads(1, 1, 1)]
-void main() {
-  main_1();
-}
-
diff --git a/test/tint/unittest/reader/spirv/SpvParserTest_GlslStd450_Reflect_Vector.spvasm.expected.ir.fxc.hlsl b/test/tint/unittest/reader/spirv/SpvParserTest_GlslStd450_Reflect_Vector.spvasm.expected.ir.fxc.hlsl
deleted file mode 100644
index 71e0eb1..0000000
--- a/test/tint/unittest/reader/spirv/SpvParserTest_GlslStd450_Reflect_Vector.spvasm.expected.ir.fxc.hlsl
+++ /dev/null
@@ -1,33 +0,0 @@
-SKIP: FAILED
-
-void main_1() {
-  uint u1 = 10u;
-  uint u2 = 15u;
-  uint u3 = 20u;
-  int i1 = 30;
-  int i2 = 35;
-  int i3 = 40;
-  float f1 = 50.0f;
-  float f2 = 60.0f;
-  float f3 = 70.0f;
-  uint2 v2u1 = uint2(10u, 20u);
-  uint2 v2u2 = uint2(20u, 10u);
-  uint2 v2u3 = (15u).xx;
-  int2 v2i1 = int2(30, 40);
-  int2 v2i2 = int2(40, 30);
-  int2 v2i3 = (35).xx;
-  float2 v2f1 = float2(50.0f, 60.0f);
-  float2 v2f2 = float2(60.0f, 50.0f);
-  float2 v2f3 = (70.0f).xx;
-  float3 v3f1 = float3(50.0f, 60.0f, 70.0f);
-  float3 v3f2 = float3(60.0f, 70.0f, 50.0f);
-  float4 v4f1 = (50.0f).xxxx;
-  float4 v4f2 = v4f1;
-  float2 x_1 = reflect((v2f1 + v2f1), (v2f2 + v2f2));
-}
-
-[numthreads(1, 1, 1)]
-void main() {
-  main_1();
-}
-
diff --git a/test/tint/unittest/reader/spirv/SpvParserTest_GlslStd450_Refract_Scalar.spvasm.expected.ir.fxc.hlsl b/test/tint/unittest/reader/spirv/SpvParserTest_GlslStd450_Refract_Scalar.spvasm.expected.ir.fxc.hlsl
deleted file mode 100644
index d798c89..0000000
--- a/test/tint/unittest/reader/spirv/SpvParserTest_GlslStd450_Refract_Scalar.spvasm.expected.ir.fxc.hlsl
+++ /dev/null
@@ -1,30 +0,0 @@
-SKIP: FAILED
-
-void main_1() {
-  uint u1 = 10u;
-  uint u2 = 15u;
-  uint u3 = 20u;
-  int i1 = 30;
-  int i2 = 35;
-  int i3 = 40;
-  uint2 v2u1 = uint2(10u, 20u);
-  uint2 v2u2 = uint2(20u, 10u);
-  uint2 v2u3 = (15u).xx;
-  int2 v2i1 = int2(30, 40);
-  int2 v2i2 = int2(40, 30);
-  int2 v2i3 = (35).xx;
-  float2 v2f1 = float2(50.0f, 60.0f);
-  float2 v2f2 = float2(60.0f, 50.0f);
-  float2 v2f3 = (70.0f).xx;
-  float3 v3f1 = float3(50.0f, 60.0f, 70.0f);
-  float3 v3f2 = float3(60.0f, 70.0f, 50.0f);
-  float4 v4f1 = (50.0f).xxxx;
-  float4 v4f2 = v4f1;
-  float x_1 = -25196500.0f;
-}
-
-[numthreads(1, 1, 1)]
-void main() {
-  main_1();
-}
-
diff --git a/test/tint/unittest/reader/spirv/SpvParserTest_GlslStd450_Refract_Vector.spvasm.expected.ir.fxc.hlsl b/test/tint/unittest/reader/spirv/SpvParserTest_GlslStd450_Refract_Vector.spvasm.expected.ir.fxc.hlsl
deleted file mode 100644
index 955d106..0000000
--- a/test/tint/unittest/reader/spirv/SpvParserTest_GlslStd450_Refract_Vector.spvasm.expected.ir.fxc.hlsl
+++ /dev/null
@@ -1,30 +0,0 @@
-SKIP: FAILED
-
-void main_1() {
-  uint u1 = 10u;
-  uint u2 = 15u;
-  uint u3 = 20u;
-  int i1 = 30;
-  int i2 = 35;
-  int i3 = 40;
-  float f1 = 50.0f;
-  float f2 = 60.0f;
-  uint2 v2u1 = uint2(10u, 20u);
-  uint2 v2u2 = uint2(20u, 10u);
-  uint2 v2u3 = (15u).xx;
-  int2 v2i1 = int2(30, 40);
-  int2 v2i2 = int2(40, 30);
-  int2 v2i3 = (35).xx;
-  float2 v2f3 = (70.0f).xx;
-  float3 v3f1 = float3(50.0f, 60.0f, 70.0f);
-  float3 v3f2 = float3(60.0f, 70.0f, 50.0f);
-  float4 v4f1 = (50.0f).xxxx;
-  float4 v4f2 = v4f1;
-  float2 x_1 = float2(-50396500.0f, -41995800.0f);
-}
-
-[numthreads(1, 1, 1)]
-void main() {
-  main_1();
-}
-
diff --git a/test/tint/unittest/reader/spirv/SpvParserTest_IAdd_MixedSignedness_SpvBinaryArithGeneralTest_EmitExpression_0.spvasm.expected.ir.fxc.hlsl b/test/tint/unittest/reader/spirv/SpvParserTest_IAdd_MixedSignedness_SpvBinaryArithGeneralTest_EmitExpression_0.spvasm.expected.ir.fxc.hlsl
deleted file mode 100644
index e502170..0000000
--- a/test/tint/unittest/reader/spirv/SpvParserTest_IAdd_MixedSignedness_SpvBinaryArithGeneralTest_EmitExpression_0.spvasm.expected.ir.fxc.hlsl
+++ /dev/null
@@ -1,10 +0,0 @@
-SKIP: FAILED
-
-void main_1() {
-  uint x_1 = 40u;
-}
-
-void main() {
-  main_1();
-}
-
diff --git a/test/tint/unittest/reader/spirv/SpvParserTest_IAdd_MixedSignedness_SpvBinaryArithGeneralTest_EmitExpression_1.spvasm.expected.ir.fxc.hlsl b/test/tint/unittest/reader/spirv/SpvParserTest_IAdd_MixedSignedness_SpvBinaryArithGeneralTest_EmitExpression_1.spvasm.expected.ir.fxc.hlsl
deleted file mode 100644
index c58b5b6..0000000
--- a/test/tint/unittest/reader/spirv/SpvParserTest_IAdd_MixedSignedness_SpvBinaryArithGeneralTest_EmitExpression_1.spvasm.expected.ir.fxc.hlsl
+++ /dev/null
@@ -1,10 +0,0 @@
-SKIP: FAILED
-
-void main_1() {
-  int x_1 = 40;
-}
-
-void main() {
-  main_1();
-}
-
diff --git a/test/tint/unittest/reader/spirv/SpvParserTest_IAdd_MixedSignedness_SpvBinaryArithGeneralTest_EmitExpression_2.spvasm.expected.ir.fxc.hlsl b/test/tint/unittest/reader/spirv/SpvParserTest_IAdd_MixedSignedness_SpvBinaryArithGeneralTest_EmitExpression_2.spvasm.expected.ir.fxc.hlsl
deleted file mode 100644
index e502170..0000000
--- a/test/tint/unittest/reader/spirv/SpvParserTest_IAdd_MixedSignedness_SpvBinaryArithGeneralTest_EmitExpression_2.spvasm.expected.ir.fxc.hlsl
+++ /dev/null
@@ -1,10 +0,0 @@
-SKIP: FAILED
-
-void main_1() {
-  uint x_1 = 40u;
-}
-
-void main() {
-  main_1();
-}
-
diff --git a/test/tint/unittest/reader/spirv/SpvParserTest_IAdd_MixedSignedness_SpvBinaryArithGeneralTest_EmitExpression_3.spvasm.expected.ir.fxc.hlsl b/test/tint/unittest/reader/spirv/SpvParserTest_IAdd_MixedSignedness_SpvBinaryArithGeneralTest_EmitExpression_3.spvasm.expected.ir.fxc.hlsl
deleted file mode 100644
index 81c3c3d..0000000
--- a/test/tint/unittest/reader/spirv/SpvParserTest_IAdd_MixedSignedness_SpvBinaryArithGeneralTest_EmitExpression_3.spvasm.expected.ir.fxc.hlsl
+++ /dev/null
@@ -1,10 +0,0 @@
-SKIP: FAILED
-
-void main_1() {
-  int x_1 = 30;
-}
-
-void main() {
-  main_1();
-}
-
diff --git a/test/tint/unittest/reader/spirv/SpvParserTest_IAdd_MixedSignedness_SpvBinaryArithGeneralTest_EmitExpression_4.spvasm.expected.ir.fxc.hlsl b/test/tint/unittest/reader/spirv/SpvParserTest_IAdd_MixedSignedness_SpvBinaryArithGeneralTest_EmitExpression_4.spvasm.expected.ir.fxc.hlsl
deleted file mode 100644
index 6303ab6..0000000
--- a/test/tint/unittest/reader/spirv/SpvParserTest_IAdd_MixedSignedness_SpvBinaryArithGeneralTest_EmitExpression_4.spvasm.expected.ir.fxc.hlsl
+++ /dev/null
@@ -1,10 +0,0 @@
-SKIP: FAILED
-
-void main_1() {
-  uint2 x_1 = uint2(40u, 60u);
-}
-
-void main() {
-  main_1();
-}
-
diff --git a/test/tint/unittest/reader/spirv/SpvParserTest_IAdd_MixedSignedness_SpvBinaryArithGeneralTest_EmitExpression_5.spvasm.expected.ir.fxc.hlsl b/test/tint/unittest/reader/spirv/SpvParserTest_IAdd_MixedSignedness_SpvBinaryArithGeneralTest_EmitExpression_5.spvasm.expected.ir.fxc.hlsl
deleted file mode 100644
index a69a40e..0000000
--- a/test/tint/unittest/reader/spirv/SpvParserTest_IAdd_MixedSignedness_SpvBinaryArithGeneralTest_EmitExpression_5.spvasm.expected.ir.fxc.hlsl
+++ /dev/null
@@ -1,10 +0,0 @@
-SKIP: FAILED
-
-void main_1() {
-  int2 x_1 = (50).xx;
-}
-
-void main() {
-  main_1();
-}
-
diff --git a/test/tint/unittest/reader/spirv/SpvParserTest_IAdd_SpvBinaryArithTest_EmitExpression_0.spvasm.expected.ir.fxc.hlsl b/test/tint/unittest/reader/spirv/SpvParserTest_IAdd_SpvBinaryArithTest_EmitExpression_0.spvasm.expected.ir.fxc.hlsl
deleted file mode 100644
index 23cd034..0000000
--- a/test/tint/unittest/reader/spirv/SpvParserTest_IAdd_SpvBinaryArithTest_EmitExpression_0.spvasm.expected.ir.fxc.hlsl
+++ /dev/null
@@ -1,10 +0,0 @@
-SKIP: FAILED
-
-void main_1() {
-  uint x_1 = 30u;
-}
-
-void main() {
-  main_1();
-}
-
diff --git a/test/tint/unittest/reader/spirv/SpvParserTest_IAdd_SpvBinaryArithTest_EmitExpression_1.spvasm.expected.ir.fxc.hlsl b/test/tint/unittest/reader/spirv/SpvParserTest_IAdd_SpvBinaryArithTest_EmitExpression_1.spvasm.expected.ir.fxc.hlsl
deleted file mode 100644
index bf0840b..0000000
--- a/test/tint/unittest/reader/spirv/SpvParserTest_IAdd_SpvBinaryArithTest_EmitExpression_1.spvasm.expected.ir.fxc.hlsl
+++ /dev/null
@@ -1,10 +0,0 @@
-SKIP: FAILED
-
-void main_1() {
-  int x_1 = 70;
-}
-
-void main() {
-  main_1();
-}
-
diff --git a/test/tint/unittest/reader/spirv/SpvParserTest_IAdd_SpvBinaryArithTest_EmitExpression_2.spvasm.expected.ir.fxc.hlsl b/test/tint/unittest/reader/spirv/SpvParserTest_IAdd_SpvBinaryArithTest_EmitExpression_2.spvasm.expected.ir.fxc.hlsl
deleted file mode 100644
index 923f0cf..0000000
--- a/test/tint/unittest/reader/spirv/SpvParserTest_IAdd_SpvBinaryArithTest_EmitExpression_2.spvasm.expected.ir.fxc.hlsl
+++ /dev/null
@@ -1,10 +0,0 @@
-SKIP: FAILED
-
-void main_1() {
-  uint2 x_1 = (30u).xx;
-}
-
-void main() {
-  main_1();
-}
-
diff --git a/test/tint/unittest/reader/spirv/SpvParserTest_IAdd_SpvBinaryArithTest_EmitExpression_3.spvasm.expected.ir.fxc.hlsl b/test/tint/unittest/reader/spirv/SpvParserTest_IAdd_SpvBinaryArithTest_EmitExpression_3.spvasm.expected.ir.fxc.hlsl
deleted file mode 100644
index bbe9681..0000000
--- a/test/tint/unittest/reader/spirv/SpvParserTest_IAdd_SpvBinaryArithTest_EmitExpression_3.spvasm.expected.ir.fxc.hlsl
+++ /dev/null
@@ -1,10 +0,0 @@
-SKIP: FAILED
-
-void main_1() {
-  int2 x_1 = (70).xx;
-}
-
-void main() {
-  main_1();
-}
-
diff --git a/test/tint/unittest/reader/spirv/SpvParserTest_IEqual_SpvBinaryLogicalTest_EmitExpression_0.spvasm.expected.ir.fxc.hlsl b/test/tint/unittest/reader/spirv/SpvParserTest_IEqual_SpvBinaryLogicalTest_EmitExpression_0.spvasm.expected.ir.fxc.hlsl
deleted file mode 100644
index 969210b..0000000
--- a/test/tint/unittest/reader/spirv/SpvParserTest_IEqual_SpvBinaryLogicalTest_EmitExpression_0.spvasm.expected.ir.fxc.hlsl
+++ /dev/null
@@ -1,10 +0,0 @@
-SKIP: FAILED
-
-void main_1() {
-  bool x_1 = false;
-}
-
-void main() {
-  main_1();
-}
-
diff --git a/test/tint/unittest/reader/spirv/SpvParserTest_IEqual_SpvBinaryLogicalTest_EmitExpression_1.spvasm.expected.ir.fxc.hlsl b/test/tint/unittest/reader/spirv/SpvParserTest_IEqual_SpvBinaryLogicalTest_EmitExpression_1.spvasm.expected.ir.fxc.hlsl
deleted file mode 100644
index 969210b..0000000
--- a/test/tint/unittest/reader/spirv/SpvParserTest_IEqual_SpvBinaryLogicalTest_EmitExpression_1.spvasm.expected.ir.fxc.hlsl
+++ /dev/null
@@ -1,10 +0,0 @@
-SKIP: FAILED
-
-void main_1() {
-  bool x_1 = false;
-}
-
-void main() {
-  main_1();
-}
-
diff --git a/test/tint/unittest/reader/spirv/SpvParserTest_IEqual_SpvBinaryLogicalTest_EmitExpression_2.spvasm.expected.ir.fxc.hlsl b/test/tint/unittest/reader/spirv/SpvParserTest_IEqual_SpvBinaryLogicalTest_EmitExpression_2.spvasm.expected.ir.fxc.hlsl
deleted file mode 100644
index 969210b..0000000
--- a/test/tint/unittest/reader/spirv/SpvParserTest_IEqual_SpvBinaryLogicalTest_EmitExpression_2.spvasm.expected.ir.fxc.hlsl
+++ /dev/null
@@ -1,10 +0,0 @@
-SKIP: FAILED
-
-void main_1() {
-  bool x_1 = false;
-}
-
-void main() {
-  main_1();
-}
-
diff --git a/test/tint/unittest/reader/spirv/SpvParserTest_IEqual_SpvBinaryLogicalTest_EmitExpression_3.spvasm.expected.ir.fxc.hlsl b/test/tint/unittest/reader/spirv/SpvParserTest_IEqual_SpvBinaryLogicalTest_EmitExpression_3.spvasm.expected.ir.fxc.hlsl
deleted file mode 100644
index 969210b..0000000
--- a/test/tint/unittest/reader/spirv/SpvParserTest_IEqual_SpvBinaryLogicalTest_EmitExpression_3.spvasm.expected.ir.fxc.hlsl
+++ /dev/null
@@ -1,10 +0,0 @@
-SKIP: FAILED
-
-void main_1() {
-  bool x_1 = false;
-}
-
-void main() {
-  main_1();
-}
-
diff --git a/test/tint/unittest/reader/spirv/SpvParserTest_IEqual_SpvBinaryLogicalTest_EmitExpression_4.spvasm.expected.ir.fxc.hlsl b/test/tint/unittest/reader/spirv/SpvParserTest_IEqual_SpvBinaryLogicalTest_EmitExpression_4.spvasm.expected.ir.fxc.hlsl
deleted file mode 100644
index a217ea8..0000000
--- a/test/tint/unittest/reader/spirv/SpvParserTest_IEqual_SpvBinaryLogicalTest_EmitExpression_4.spvasm.expected.ir.fxc.hlsl
+++ /dev/null
@@ -1,10 +0,0 @@
-SKIP: FAILED
-
-void main_1() {
-  bool2 x_1 = (false).xx;
-}
-
-void main() {
-  main_1();
-}
-
diff --git a/test/tint/unittest/reader/spirv/SpvParserTest_IEqual_SpvBinaryLogicalTest_EmitExpression_5.spvasm.expected.ir.fxc.hlsl b/test/tint/unittest/reader/spirv/SpvParserTest_IEqual_SpvBinaryLogicalTest_EmitExpression_5.spvasm.expected.ir.fxc.hlsl
deleted file mode 100644
index a217ea8..0000000
--- a/test/tint/unittest/reader/spirv/SpvParserTest_IEqual_SpvBinaryLogicalTest_EmitExpression_5.spvasm.expected.ir.fxc.hlsl
+++ /dev/null
@@ -1,10 +0,0 @@
-SKIP: FAILED
-
-void main_1() {
-  bool2 x_1 = (false).xx;
-}
-
-void main() {
-  main_1();
-}
-
diff --git a/test/tint/unittest/reader/spirv/SpvParserTest_IMul_MixedSignedness_SpvBinaryArithGeneralTest_EmitExpression_0.spvasm.expected.ir.fxc.hlsl b/test/tint/unittest/reader/spirv/SpvParserTest_IMul_MixedSignedness_SpvBinaryArithGeneralTest_EmitExpression_0.spvasm.expected.ir.fxc.hlsl
deleted file mode 100644
index 690a94f..0000000
--- a/test/tint/unittest/reader/spirv/SpvParserTest_IMul_MixedSignedness_SpvBinaryArithGeneralTest_EmitExpression_0.spvasm.expected.ir.fxc.hlsl
+++ /dev/null
@@ -1,10 +0,0 @@
-SKIP: FAILED
-
-void main_1() {
-  uint x_1 = 300u;
-}
-
-void main() {
-  main_1();
-}
-
diff --git a/test/tint/unittest/reader/spirv/SpvParserTest_IMul_MixedSignedness_SpvBinaryArithGeneralTest_EmitExpression_1.spvasm.expected.ir.fxc.hlsl b/test/tint/unittest/reader/spirv/SpvParserTest_IMul_MixedSignedness_SpvBinaryArithGeneralTest_EmitExpression_1.spvasm.expected.ir.fxc.hlsl
deleted file mode 100644
index f4ba875..0000000
--- a/test/tint/unittest/reader/spirv/SpvParserTest_IMul_MixedSignedness_SpvBinaryArithGeneralTest_EmitExpression_1.spvasm.expected.ir.fxc.hlsl
+++ /dev/null
@@ -1,10 +0,0 @@
-SKIP: FAILED
-
-void main_1() {
-  int x_1 = 300;
-}
-
-void main() {
-  main_1();
-}
-
diff --git a/test/tint/unittest/reader/spirv/SpvParserTest_IMul_MixedSignedness_SpvBinaryArithGeneralTest_EmitExpression_2.spvasm.expected.ir.fxc.hlsl b/test/tint/unittest/reader/spirv/SpvParserTest_IMul_MixedSignedness_SpvBinaryArithGeneralTest_EmitExpression_2.spvasm.expected.ir.fxc.hlsl
deleted file mode 100644
index 690a94f..0000000
--- a/test/tint/unittest/reader/spirv/SpvParserTest_IMul_MixedSignedness_SpvBinaryArithGeneralTest_EmitExpression_2.spvasm.expected.ir.fxc.hlsl
+++ /dev/null
@@ -1,10 +0,0 @@
-SKIP: FAILED
-
-void main_1() {
-  uint x_1 = 300u;
-}
-
-void main() {
-  main_1();
-}
-
diff --git a/test/tint/unittest/reader/spirv/SpvParserTest_IMul_MixedSignedness_SpvBinaryArithGeneralTest_EmitExpression_3.spvasm.expected.ir.fxc.hlsl b/test/tint/unittest/reader/spirv/SpvParserTest_IMul_MixedSignedness_SpvBinaryArithGeneralTest_EmitExpression_3.spvasm.expected.ir.fxc.hlsl
deleted file mode 100644
index eb2521b..0000000
--- a/test/tint/unittest/reader/spirv/SpvParserTest_IMul_MixedSignedness_SpvBinaryArithGeneralTest_EmitExpression_3.spvasm.expected.ir.fxc.hlsl
+++ /dev/null
@@ -1,10 +0,0 @@
-SKIP: FAILED
-
-void main_1() {
-  int x_1 = 200;
-}
-
-void main() {
-  main_1();
-}
-
diff --git a/test/tint/unittest/reader/spirv/SpvParserTest_IMul_MixedSignedness_SpvBinaryArithGeneralTest_EmitExpression_4.spvasm.expected.ir.fxc.hlsl b/test/tint/unittest/reader/spirv/SpvParserTest_IMul_MixedSignedness_SpvBinaryArithGeneralTest_EmitExpression_4.spvasm.expected.ir.fxc.hlsl
deleted file mode 100644
index 57e19fa..0000000
--- a/test/tint/unittest/reader/spirv/SpvParserTest_IMul_MixedSignedness_SpvBinaryArithGeneralTest_EmitExpression_4.spvasm.expected.ir.fxc.hlsl
+++ /dev/null
@@ -1,10 +0,0 @@
-SKIP: FAILED
-
-void main_1() {
-  uint2 x_1 = uint2(300u, 800u);
-}
-
-void main() {
-  main_1();
-}
-
diff --git a/test/tint/unittest/reader/spirv/SpvParserTest_IMul_MixedSignedness_SpvBinaryArithGeneralTest_EmitExpression_5.spvasm.expected.ir.fxc.hlsl b/test/tint/unittest/reader/spirv/SpvParserTest_IMul_MixedSignedness_SpvBinaryArithGeneralTest_EmitExpression_5.spvasm.expected.ir.fxc.hlsl
deleted file mode 100644
index b73caa8..0000000
--- a/test/tint/unittest/reader/spirv/SpvParserTest_IMul_MixedSignedness_SpvBinaryArithGeneralTest_EmitExpression_5.spvasm.expected.ir.fxc.hlsl
+++ /dev/null
@@ -1,10 +0,0 @@
-SKIP: FAILED
-
-void main_1() {
-  int2 x_1 = int2(400, 600);
-}
-
-void main() {
-  main_1();
-}
-
diff --git a/test/tint/unittest/reader/spirv/SpvParserTest_IMul_SpvBinaryArithTest_EmitExpression_0.spvasm.expected.ir.fxc.hlsl b/test/tint/unittest/reader/spirv/SpvParserTest_IMul_SpvBinaryArithTest_EmitExpression_0.spvasm.expected.ir.fxc.hlsl
deleted file mode 100644
index 5e9f104..0000000
--- a/test/tint/unittest/reader/spirv/SpvParserTest_IMul_SpvBinaryArithTest_EmitExpression_0.spvasm.expected.ir.fxc.hlsl
+++ /dev/null
@@ -1,10 +0,0 @@
-SKIP: FAILED
-
-void main_1() {
-  uint x_1 = 200u;
-}
-
-void main() {
-  main_1();
-}
-
diff --git a/test/tint/unittest/reader/spirv/SpvParserTest_IMul_SpvBinaryArithTest_EmitExpression_1.spvasm.expected.ir.fxc.hlsl b/test/tint/unittest/reader/spirv/SpvParserTest_IMul_SpvBinaryArithTest_EmitExpression_1.spvasm.expected.ir.fxc.hlsl
deleted file mode 100644
index 63a7edf..0000000
--- a/test/tint/unittest/reader/spirv/SpvParserTest_IMul_SpvBinaryArithTest_EmitExpression_1.spvasm.expected.ir.fxc.hlsl
+++ /dev/null
@@ -1,10 +0,0 @@
-SKIP: FAILED
-
-void main_1() {
-  int x_1 = 1200;
-}
-
-void main() {
-  main_1();
-}
-
diff --git a/test/tint/unittest/reader/spirv/SpvParserTest_IMul_SpvBinaryArithTest_EmitExpression_2.spvasm.expected.ir.fxc.hlsl b/test/tint/unittest/reader/spirv/SpvParserTest_IMul_SpvBinaryArithTest_EmitExpression_2.spvasm.expected.ir.fxc.hlsl
deleted file mode 100644
index 2f4fa00..0000000
--- a/test/tint/unittest/reader/spirv/SpvParserTest_IMul_SpvBinaryArithTest_EmitExpression_2.spvasm.expected.ir.fxc.hlsl
+++ /dev/null
@@ -1,10 +0,0 @@
-SKIP: FAILED
-
-void main_1() {
-  uint2 x_1 = (200u).xx;
-}
-
-void main() {
-  main_1();
-}
-
diff --git a/test/tint/unittest/reader/spirv/SpvParserTest_IMul_SpvBinaryArithTest_EmitExpression_3.spvasm.expected.ir.fxc.hlsl b/test/tint/unittest/reader/spirv/SpvParserTest_IMul_SpvBinaryArithTest_EmitExpression_3.spvasm.expected.ir.fxc.hlsl
deleted file mode 100644
index 8b0609d..0000000
--- a/test/tint/unittest/reader/spirv/SpvParserTest_IMul_SpvBinaryArithTest_EmitExpression_3.spvasm.expected.ir.fxc.hlsl
+++ /dev/null
@@ -1,10 +0,0 @@
-SKIP: FAILED
-
-void main_1() {
-  int2 x_1 = (1200).xx;
-}
-
-void main() {
-  main_1();
-}
-
diff --git a/test/tint/unittest/reader/spirv/SpvParserTest_INotEqual_SpvBinaryLogicalTest_EmitExpression_0.spvasm.expected.ir.fxc.hlsl b/test/tint/unittest/reader/spirv/SpvParserTest_INotEqual_SpvBinaryLogicalTest_EmitExpression_0.spvasm.expected.ir.fxc.hlsl
deleted file mode 100644
index 00baddd..0000000
--- a/test/tint/unittest/reader/spirv/SpvParserTest_INotEqual_SpvBinaryLogicalTest_EmitExpression_0.spvasm.expected.ir.fxc.hlsl
+++ /dev/null
@@ -1,10 +0,0 @@
-SKIP: FAILED
-
-void main_1() {
-  bool x_1 = true;
-}
-
-void main() {
-  main_1();
-}
-
diff --git a/test/tint/unittest/reader/spirv/SpvParserTest_INotEqual_SpvBinaryLogicalTest_EmitExpression_1.spvasm.expected.ir.fxc.hlsl b/test/tint/unittest/reader/spirv/SpvParserTest_INotEqual_SpvBinaryLogicalTest_EmitExpression_1.spvasm.expected.ir.fxc.hlsl
deleted file mode 100644
index 00baddd..0000000
--- a/test/tint/unittest/reader/spirv/SpvParserTest_INotEqual_SpvBinaryLogicalTest_EmitExpression_1.spvasm.expected.ir.fxc.hlsl
+++ /dev/null
@@ -1,10 +0,0 @@
-SKIP: FAILED
-
-void main_1() {
-  bool x_1 = true;
-}
-
-void main() {
-  main_1();
-}
-
diff --git a/test/tint/unittest/reader/spirv/SpvParserTest_INotEqual_SpvBinaryLogicalTest_EmitExpression_2.spvasm.expected.ir.fxc.hlsl b/test/tint/unittest/reader/spirv/SpvParserTest_INotEqual_SpvBinaryLogicalTest_EmitExpression_2.spvasm.expected.ir.fxc.hlsl
deleted file mode 100644
index 00baddd..0000000
--- a/test/tint/unittest/reader/spirv/SpvParserTest_INotEqual_SpvBinaryLogicalTest_EmitExpression_2.spvasm.expected.ir.fxc.hlsl
+++ /dev/null
@@ -1,10 +0,0 @@
-SKIP: FAILED
-
-void main_1() {
-  bool x_1 = true;
-}
-
-void main() {
-  main_1();
-}
-
diff --git a/test/tint/unittest/reader/spirv/SpvParserTest_INotEqual_SpvBinaryLogicalTest_EmitExpression_3.spvasm.expected.ir.fxc.hlsl b/test/tint/unittest/reader/spirv/SpvParserTest_INotEqual_SpvBinaryLogicalTest_EmitExpression_3.spvasm.expected.ir.fxc.hlsl
deleted file mode 100644
index 00baddd..0000000
--- a/test/tint/unittest/reader/spirv/SpvParserTest_INotEqual_SpvBinaryLogicalTest_EmitExpression_3.spvasm.expected.ir.fxc.hlsl
+++ /dev/null
@@ -1,10 +0,0 @@
-SKIP: FAILED
-
-void main_1() {
-  bool x_1 = true;
-}
-
-void main() {
-  main_1();
-}
-
diff --git a/test/tint/unittest/reader/spirv/SpvParserTest_INotEqual_SpvBinaryLogicalTest_EmitExpression_4.spvasm.expected.ir.fxc.hlsl b/test/tint/unittest/reader/spirv/SpvParserTest_INotEqual_SpvBinaryLogicalTest_EmitExpression_4.spvasm.expected.ir.fxc.hlsl
deleted file mode 100644
index 311dd17..0000000
--- a/test/tint/unittest/reader/spirv/SpvParserTest_INotEqual_SpvBinaryLogicalTest_EmitExpression_4.spvasm.expected.ir.fxc.hlsl
+++ /dev/null
@@ -1,10 +0,0 @@
-SKIP: FAILED
-
-void main_1() {
-  bool2 x_1 = (true).xx;
-}
-
-void main() {
-  main_1();
-}
-
diff --git a/test/tint/unittest/reader/spirv/SpvParserTest_INotEqual_SpvBinaryLogicalTest_EmitExpression_5.spvasm.expected.ir.fxc.hlsl b/test/tint/unittest/reader/spirv/SpvParserTest_INotEqual_SpvBinaryLogicalTest_EmitExpression_5.spvasm.expected.ir.fxc.hlsl
deleted file mode 100644
index 311dd17..0000000
--- a/test/tint/unittest/reader/spirv/SpvParserTest_INotEqual_SpvBinaryLogicalTest_EmitExpression_5.spvasm.expected.ir.fxc.hlsl
+++ /dev/null
@@ -1,10 +0,0 @@
-SKIP: FAILED
-
-void main_1() {
-  bool2 x_1 = (true).xx;
-}
-
-void main() {
-  main_1();
-}
-
diff --git a/test/tint/unittest/reader/spirv/SpvParserTest_ISub_MixedSignedness_SpvBinaryArithGeneralTest_EmitExpression_0.spvasm.expected.ir.fxc.hlsl b/test/tint/unittest/reader/spirv/SpvParserTest_ISub_MixedSignedness_SpvBinaryArithGeneralTest_EmitExpression_0.spvasm.expected.ir.fxc.hlsl
deleted file mode 100644
index 297fdee..0000000
--- a/test/tint/unittest/reader/spirv/SpvParserTest_ISub_MixedSignedness_SpvBinaryArithGeneralTest_EmitExpression_0.spvasm.expected.ir.fxc.hlsl
+++ /dev/null
@@ -1,10 +0,0 @@
-SKIP: FAILED
-
-void main_1() {
-  uint x_1 = 20u;
-}
-
-void main() {
-  main_1();
-}
-
diff --git a/test/tint/unittest/reader/spirv/SpvParserTest_ISub_MixedSignedness_SpvBinaryArithGeneralTest_EmitExpression_1.spvasm.expected.ir.fxc.hlsl b/test/tint/unittest/reader/spirv/SpvParserTest_ISub_MixedSignedness_SpvBinaryArithGeneralTest_EmitExpression_1.spvasm.expected.ir.fxc.hlsl
deleted file mode 100644
index f9b08ff..0000000
--- a/test/tint/unittest/reader/spirv/SpvParserTest_ISub_MixedSignedness_SpvBinaryArithGeneralTest_EmitExpression_1.spvasm.expected.ir.fxc.hlsl
+++ /dev/null
@@ -1,10 +0,0 @@
-SKIP: FAILED
-
-void main_1() {
-  int x_1 = 20;
-}
-
-void main() {
-  main_1();
-}
-
diff --git a/test/tint/unittest/reader/spirv/SpvParserTest_ISub_MixedSignedness_SpvBinaryArithGeneralTest_EmitExpression_2.spvasm.expected.ir.fxc.hlsl b/test/tint/unittest/reader/spirv/SpvParserTest_ISub_MixedSignedness_SpvBinaryArithGeneralTest_EmitExpression_2.spvasm.expected.ir.fxc.hlsl
deleted file mode 100644
index 014d3f6..0000000
--- a/test/tint/unittest/reader/spirv/SpvParserTest_ISub_MixedSignedness_SpvBinaryArithGeneralTest_EmitExpression_2.spvasm.expected.ir.fxc.hlsl
+++ /dev/null
@@ -1,10 +0,0 @@
-SKIP: FAILED
-
-void main_1() {
-  uint x_1 = 4294967276u;
-}
-
-void main() {
-  main_1();
-}
-
diff --git a/test/tint/unittest/reader/spirv/SpvParserTest_ISub_MixedSignedness_SpvBinaryArithGeneralTest_EmitExpression_3.spvasm.expected.ir.fxc.hlsl b/test/tint/unittest/reader/spirv/SpvParserTest_ISub_MixedSignedness_SpvBinaryArithGeneralTest_EmitExpression_3.spvasm.expected.ir.fxc.hlsl
deleted file mode 100644
index 297e60f..0000000
--- a/test/tint/unittest/reader/spirv/SpvParserTest_ISub_MixedSignedness_SpvBinaryArithGeneralTest_EmitExpression_3.spvasm.expected.ir.fxc.hlsl
+++ /dev/null
@@ -1,10 +0,0 @@
-SKIP: FAILED
-
-void main_1() {
-  int x_1 = 10;
-}
-
-void main() {
-  main_1();
-}
-
diff --git a/test/tint/unittest/reader/spirv/SpvParserTest_ISub_MixedSignedness_SpvBinaryArithGeneralTest_EmitExpression_4.spvasm.expected.ir.fxc.hlsl b/test/tint/unittest/reader/spirv/SpvParserTest_ISub_MixedSignedness_SpvBinaryArithGeneralTest_EmitExpression_4.spvasm.expected.ir.fxc.hlsl
deleted file mode 100644
index 8a76ab4..0000000
--- a/test/tint/unittest/reader/spirv/SpvParserTest_ISub_MixedSignedness_SpvBinaryArithGeneralTest_EmitExpression_4.spvasm.expected.ir.fxc.hlsl
+++ /dev/null
@@ -1,10 +0,0 @@
-SKIP: FAILED
-
-void main_1() {
-  uint2 x_1 = (20u).xx;
-}
-
-void main() {
-  main_1();
-}
-
diff --git a/test/tint/unittest/reader/spirv/SpvParserTest_ISub_MixedSignedness_SpvBinaryArithGeneralTest_EmitExpression_5.spvasm.expected.ir.fxc.hlsl b/test/tint/unittest/reader/spirv/SpvParserTest_ISub_MixedSignedness_SpvBinaryArithGeneralTest_EmitExpression_5.spvasm.expected.ir.fxc.hlsl
deleted file mode 100644
index f02638f..0000000
--- a/test/tint/unittest/reader/spirv/SpvParserTest_ISub_MixedSignedness_SpvBinaryArithGeneralTest_EmitExpression_5.spvasm.expected.ir.fxc.hlsl
+++ /dev/null
@@ -1,10 +0,0 @@
-SKIP: FAILED
-
-void main_1() {
-  int2 x_1 = int2(-30, -10);
-}
-
-void main() {
-  main_1();
-}
-
diff --git a/test/tint/unittest/reader/spirv/SpvParserTest_ISub_SpvBinaryArithTest_EmitExpression_0.spvasm.expected.ir.fxc.hlsl b/test/tint/unittest/reader/spirv/SpvParserTest_ISub_SpvBinaryArithTest_EmitExpression_0.spvasm.expected.ir.fxc.hlsl
deleted file mode 100644
index 2e2d9a1..0000000
--- a/test/tint/unittest/reader/spirv/SpvParserTest_ISub_SpvBinaryArithTest_EmitExpression_0.spvasm.expected.ir.fxc.hlsl
+++ /dev/null
@@ -1,10 +0,0 @@
-SKIP: FAILED
-
-void main_1() {
-  uint x_1 = 4294967286u;
-}
-
-void main() {
-  main_1();
-}
-
diff --git a/test/tint/unittest/reader/spirv/SpvParserTest_ISub_SpvBinaryArithTest_EmitExpression_1.spvasm.expected.ir.fxc.hlsl b/test/tint/unittest/reader/spirv/SpvParserTest_ISub_SpvBinaryArithTest_EmitExpression_1.spvasm.expected.ir.fxc.hlsl
deleted file mode 100644
index 938ad1a..0000000
--- a/test/tint/unittest/reader/spirv/SpvParserTest_ISub_SpvBinaryArithTest_EmitExpression_1.spvasm.expected.ir.fxc.hlsl
+++ /dev/null
@@ -1,10 +0,0 @@
-SKIP: FAILED
-
-void main_1() {
-  int x_1 = -10;
-}
-
-void main() {
-  main_1();
-}
-
diff --git a/test/tint/unittest/reader/spirv/SpvParserTest_ISub_SpvBinaryArithTest_EmitExpression_2.spvasm.expected.ir.fxc.hlsl b/test/tint/unittest/reader/spirv/SpvParserTest_ISub_SpvBinaryArithTest_EmitExpression_2.spvasm.expected.ir.fxc.hlsl
deleted file mode 100644
index 3596410..0000000
--- a/test/tint/unittest/reader/spirv/SpvParserTest_ISub_SpvBinaryArithTest_EmitExpression_2.spvasm.expected.ir.fxc.hlsl
+++ /dev/null
@@ -1,10 +0,0 @@
-SKIP: FAILED
-
-void main_1() {
-  uint2 x_1 = uint2(4294967286u, 10u);
-}
-
-void main() {
-  main_1();
-}
-
diff --git a/test/tint/unittest/reader/spirv/SpvParserTest_ISub_SpvBinaryArithTest_EmitExpression_3.spvasm.expected.ir.fxc.hlsl b/test/tint/unittest/reader/spirv/SpvParserTest_ISub_SpvBinaryArithTest_EmitExpression_3.spvasm.expected.ir.fxc.hlsl
deleted file mode 100644
index d34a77c..0000000
--- a/test/tint/unittest/reader/spirv/SpvParserTest_ISub_SpvBinaryArithTest_EmitExpression_3.spvasm.expected.ir.fxc.hlsl
+++ /dev/null
@@ -1,10 +0,0 @@
-SKIP: FAILED
-
-void main_1() {
-  int2 x_1 = int2(-10, 10);
-}
-
-void main() {
-  main_1();
-}
-
diff --git a/test/tint/unittest/reader/spirv/SpvParserTest_Impl_GenericVulkanShader_GLSL450MemoryModel.spvasm.expected.ir.fxc.hlsl b/test/tint/unittest/reader/spirv/SpvParserTest_Impl_GenericVulkanShader_GLSL450MemoryModel.spvasm.expected.ir.fxc.hlsl
deleted file mode 100644
index 9a57d99..0000000
--- a/test/tint/unittest/reader/spirv/SpvParserTest_Impl_GenericVulkanShader_GLSL450MemoryModel.spvasm.expected.ir.fxc.hlsl
+++ /dev/null
@@ -1,10 +0,0 @@
-SKIP: FAILED
-
-void main_1() {
-}
-
-[numthreads(1, 1, 1)]
-void main() {
-  main_1();
-}
-
diff --git a/test/tint/unittest/reader/spirv/SpvParserTest_Impl_GenericVulkanShader_SimpleMemoryModel.spvasm.expected.ir.fxc.hlsl b/test/tint/unittest/reader/spirv/SpvParserTest_Impl_GenericVulkanShader_SimpleMemoryModel.spvasm.expected.ir.fxc.hlsl
deleted file mode 100644
index 9a57d99..0000000
--- a/test/tint/unittest/reader/spirv/SpvParserTest_Impl_GenericVulkanShader_SimpleMemoryModel.spvasm.expected.ir.fxc.hlsl
+++ /dev/null
@@ -1,10 +0,0 @@
-SKIP: FAILED
-
-void main_1() {
-}
-
-[numthreads(1, 1, 1)]
-void main() {
-  main_1();
-}
-
diff --git a/test/tint/unittest/reader/spirv/SpvParserTest_Impl_GenericVulkanShader_VulkanMemoryModel.spvasm.expected.ir.fxc.hlsl b/test/tint/unittest/reader/spirv/SpvParserTest_Impl_GenericVulkanShader_VulkanMemoryModel.spvasm.expected.ir.fxc.hlsl
deleted file mode 100644
index 9a57d99..0000000
--- a/test/tint/unittest/reader/spirv/SpvParserTest_Impl_GenericVulkanShader_VulkanMemoryModel.spvasm.expected.ir.fxc.hlsl
+++ /dev/null
@@ -1,10 +0,0 @@
-SKIP: FAILED
-
-void main_1() {
-}
-
-[numthreads(1, 1, 1)]
-void main() {
-  main_1();
-}
-
diff --git a/test/tint/unittest/reader/spirv/SpvParserTest_Impl_Source_InvalidId.spvasm.expected.ir.fxc.hlsl b/test/tint/unittest/reader/spirv/SpvParserTest_Impl_Source_InvalidId.spvasm.expected.ir.fxc.hlsl
deleted file mode 100644
index 9a57d99..0000000
--- a/test/tint/unittest/reader/spirv/SpvParserTest_Impl_Source_InvalidId.spvasm.expected.ir.fxc.hlsl
+++ /dev/null
@@ -1,10 +0,0 @@
-SKIP: FAILED
-
-void main_1() {
-}
-
-[numthreads(1, 1, 1)]
-void main() {
-  main_1();
-}
-
diff --git a/test/tint/unittest/reader/spirv/SpvParserTest_Impl_Source_NoOpLine.spvasm.expected.ir.fxc.hlsl b/test/tint/unittest/reader/spirv/SpvParserTest_Impl_Source_NoOpLine.spvasm.expected.ir.fxc.hlsl
deleted file mode 100644
index 9a57d99..0000000
--- a/test/tint/unittest/reader/spirv/SpvParserTest_Impl_Source_NoOpLine.spvasm.expected.ir.fxc.hlsl
+++ /dev/null
@@ -1,10 +0,0 @@
-SKIP: FAILED
-
-void main_1() {
-}
-
-[numthreads(1, 1, 1)]
-void main() {
-  main_1();
-}
-
diff --git a/test/tint/unittest/reader/spirv/SpvParserTest_Impl_Source_WithOpLine_WithOpNoLine.spvasm.expected.ir.fxc.hlsl b/test/tint/unittest/reader/spirv/SpvParserTest_Impl_Source_WithOpLine_WithOpNoLine.spvasm.expected.ir.fxc.hlsl
deleted file mode 100644
index 9a57d99..0000000
--- a/test/tint/unittest/reader/spirv/SpvParserTest_Impl_Source_WithOpLine_WithOpNoLine.spvasm.expected.ir.fxc.hlsl
+++ /dev/null
@@ -1,10 +0,0 @@
-SKIP: FAILED
-
-void main_1() {
-}
-
-[numthreads(1, 1, 1)]
-void main() {
-  main_1();
-}
-
diff --git a/test/tint/unittest/reader/spirv/SpvParserTest_LogicalAnd_SpvBinaryLogicalTest_EmitExpression_0.spvasm.expected.ir.fxc.hlsl b/test/tint/unittest/reader/spirv/SpvParserTest_LogicalAnd_SpvBinaryLogicalTest_EmitExpression_0.spvasm.expected.ir.fxc.hlsl
deleted file mode 100644
index 969210b..0000000
--- a/test/tint/unittest/reader/spirv/SpvParserTest_LogicalAnd_SpvBinaryLogicalTest_EmitExpression_0.spvasm.expected.ir.fxc.hlsl
+++ /dev/null
@@ -1,10 +0,0 @@
-SKIP: FAILED
-
-void main_1() {
-  bool x_1 = false;
-}
-
-void main() {
-  main_1();
-}
-
diff --git a/test/tint/unittest/reader/spirv/SpvParserTest_LogicalAnd_SpvBinaryLogicalTest_EmitExpression_1.spvasm.expected.ir.fxc.hlsl b/test/tint/unittest/reader/spirv/SpvParserTest_LogicalAnd_SpvBinaryLogicalTest_EmitExpression_1.spvasm.expected.ir.fxc.hlsl
deleted file mode 100644
index a217ea8..0000000
--- a/test/tint/unittest/reader/spirv/SpvParserTest_LogicalAnd_SpvBinaryLogicalTest_EmitExpression_1.spvasm.expected.ir.fxc.hlsl
+++ /dev/null
@@ -1,10 +0,0 @@
-SKIP: FAILED
-
-void main_1() {
-  bool2 x_1 = (false).xx;
-}
-
-void main() {
-  main_1();
-}
-
diff --git a/test/tint/unittest/reader/spirv/SpvParserTest_LogicalEqual_SpvBinaryLogicalTest_EmitExpression_0.spvasm.expected.ir.fxc.hlsl b/test/tint/unittest/reader/spirv/SpvParserTest_LogicalEqual_SpvBinaryLogicalTest_EmitExpression_0.spvasm.expected.ir.fxc.hlsl
deleted file mode 100644
index 969210b..0000000
--- a/test/tint/unittest/reader/spirv/SpvParserTest_LogicalEqual_SpvBinaryLogicalTest_EmitExpression_0.spvasm.expected.ir.fxc.hlsl
+++ /dev/null
@@ -1,10 +0,0 @@
-SKIP: FAILED
-
-void main_1() {
-  bool x_1 = false;
-}
-
-void main() {
-  main_1();
-}
-
diff --git a/test/tint/unittest/reader/spirv/SpvParserTest_LogicalEqual_SpvBinaryLogicalTest_EmitExpression_1.spvasm.expected.ir.fxc.hlsl b/test/tint/unittest/reader/spirv/SpvParserTest_LogicalEqual_SpvBinaryLogicalTest_EmitExpression_1.spvasm.expected.ir.fxc.hlsl
deleted file mode 100644
index a217ea8..0000000
--- a/test/tint/unittest/reader/spirv/SpvParserTest_LogicalEqual_SpvBinaryLogicalTest_EmitExpression_1.spvasm.expected.ir.fxc.hlsl
+++ /dev/null
@@ -1,10 +0,0 @@
-SKIP: FAILED
-
-void main_1() {
-  bool2 x_1 = (false).xx;
-}
-
-void main() {
-  main_1();
-}
-
diff --git a/test/tint/unittest/reader/spirv/SpvParserTest_LogicalNotEqual_SpvBinaryLogicalTest_EmitExpression_0.spvasm.expected.ir.fxc.hlsl b/test/tint/unittest/reader/spirv/SpvParserTest_LogicalNotEqual_SpvBinaryLogicalTest_EmitExpression_0.spvasm.expected.ir.fxc.hlsl
deleted file mode 100644
index 00baddd..0000000
--- a/test/tint/unittest/reader/spirv/SpvParserTest_LogicalNotEqual_SpvBinaryLogicalTest_EmitExpression_0.spvasm.expected.ir.fxc.hlsl
+++ /dev/null
@@ -1,10 +0,0 @@
-SKIP: FAILED
-
-void main_1() {
-  bool x_1 = true;
-}
-
-void main() {
-  main_1();
-}
-
diff --git a/test/tint/unittest/reader/spirv/SpvParserTest_LogicalNotEqual_SpvBinaryLogicalTest_EmitExpression_1.spvasm.expected.ir.fxc.hlsl b/test/tint/unittest/reader/spirv/SpvParserTest_LogicalNotEqual_SpvBinaryLogicalTest_EmitExpression_1.spvasm.expected.ir.fxc.hlsl
deleted file mode 100644
index 311dd17..0000000
--- a/test/tint/unittest/reader/spirv/SpvParserTest_LogicalNotEqual_SpvBinaryLogicalTest_EmitExpression_1.spvasm.expected.ir.fxc.hlsl
+++ /dev/null
@@ -1,10 +0,0 @@
-SKIP: FAILED
-
-void main_1() {
-  bool2 x_1 = (true).xx;
-}
-
-void main() {
-  main_1();
-}
-
diff --git a/test/tint/unittest/reader/spirv/SpvParserTest_LogicalOr_SpvBinaryLogicalTest_EmitExpression_0.spvasm.expected.ir.fxc.hlsl b/test/tint/unittest/reader/spirv/SpvParserTest_LogicalOr_SpvBinaryLogicalTest_EmitExpression_0.spvasm.expected.ir.fxc.hlsl
deleted file mode 100644
index 00baddd..0000000
--- a/test/tint/unittest/reader/spirv/SpvParserTest_LogicalOr_SpvBinaryLogicalTest_EmitExpression_0.spvasm.expected.ir.fxc.hlsl
+++ /dev/null
@@ -1,10 +0,0 @@
-SKIP: FAILED
-
-void main_1() {
-  bool x_1 = true;
-}
-
-void main() {
-  main_1();
-}
-
diff --git a/test/tint/unittest/reader/spirv/SpvParserTest_LogicalOr_SpvBinaryLogicalTest_EmitExpression_1.spvasm.expected.ir.fxc.hlsl b/test/tint/unittest/reader/spirv/SpvParserTest_LogicalOr_SpvBinaryLogicalTest_EmitExpression_1.spvasm.expected.ir.fxc.hlsl
deleted file mode 100644
index 311dd17..0000000
--- a/test/tint/unittest/reader/spirv/SpvParserTest_LogicalOr_SpvBinaryLogicalTest_EmitExpression_1.spvasm.expected.ir.fxc.hlsl
+++ /dev/null
@@ -1,10 +0,0 @@
-SKIP: FAILED
-
-void main_1() {
-  bool2 x_1 = (true).xx;
-}
-
-void main() {
-  main_1();
-}
-
diff --git a/test/tint/unittest/reader/spirv/SpvParserTest_Normalize_Scalar.spvasm.expected.ir.fxc.hlsl b/test/tint/unittest/reader/spirv/SpvParserTest_Normalize_Scalar.spvasm.expected.ir.fxc.hlsl
deleted file mode 100644
index 5f923b5..0000000
--- a/test/tint/unittest/reader/spirv/SpvParserTest_Normalize_Scalar.spvasm.expected.ir.fxc.hlsl
+++ /dev/null
@@ -1,32 +0,0 @@
-SKIP: FAILED
-
-void main_1() {
-  uint u1 = 10u;
-  uint u2 = 15u;
-  uint u3 = 20u;
-  int i1 = 30;
-  int i2 = 35;
-  int i3 = 40;
-  float f2 = 60.0f;
-  float f3 = 70.0f;
-  uint2 v2u1 = uint2(10u, 20u);
-  uint2 v2u2 = uint2(20u, 10u);
-  uint2 v2u3 = (15u).xx;
-  int2 v2i1 = int2(30, 40);
-  int2 v2i2 = int2(40, 30);
-  int2 v2i3 = (35).xx;
-  float2 v2f1 = float2(50.0f, 60.0f);
-  float2 v2f2 = float2(60.0f, 50.0f);
-  float2 v2f3 = (70.0f).xx;
-  float3 v3f1 = float3(50.0f, 60.0f, 70.0f);
-  float3 v3f2 = float3(60.0f, 70.0f, 50.0f);
-  float4 v4f1 = (50.0f).xxxx;
-  float4 v4f2 = v4f1;
-  float x_1 = 1.0f;
-}
-
-[numthreads(1, 1, 1)]
-void main() {
-  main_1();
-}
-
diff --git a/test/tint/unittest/reader/spirv/SpvParserTest_Normalize_Vector2.spvasm.expected.ir.fxc.hlsl b/test/tint/unittest/reader/spirv/SpvParserTest_Normalize_Vector2.spvasm.expected.ir.fxc.hlsl
deleted file mode 100644
index 102f3c9..0000000
--- a/test/tint/unittest/reader/spirv/SpvParserTest_Normalize_Vector2.spvasm.expected.ir.fxc.hlsl
+++ /dev/null
@@ -1,32 +0,0 @@
-SKIP: FAILED
-
-void main_1() {
-  uint u1 = 10u;
-  uint u2 = 15u;
-  uint u3 = 20u;
-  int i1 = 30;
-  int i2 = 35;
-  int i3 = 40;
-  float f1 = 50.0f;
-  float f2 = 60.0f;
-  float f3 = 70.0f;
-  uint2 v2u1 = uint2(10u, 20u);
-  uint2 v2u2 = uint2(20u, 10u);
-  uint2 v2u3 = (15u).xx;
-  int2 v2i1 = int2(30, 40);
-  int2 v2i2 = int2(40, 30);
-  int2 v2i3 = (35).xx;
-  float2 v2f2 = float2(60.0f, 50.0f);
-  float2 v2f3 = (70.0f).xx;
-  float3 v3f1 = float3(50.0f, 60.0f, 70.0f);
-  float3 v3f2 = float3(60.0f, 70.0f, 50.0f);
-  float4 v4f1 = (50.0f).xxxx;
-  float4 v4f2 = v4f1;
-  float2 x_1 = float2(0.6401844024658203125f, 0.76822131872177124023f);
-}
-
-[numthreads(1, 1, 1)]
-void main() {
-  main_1();
-}
-
diff --git a/test/tint/unittest/reader/spirv/SpvParserTest_Normalize_Vector3.spvasm.expected.ir.fxc.hlsl b/test/tint/unittest/reader/spirv/SpvParserTest_Normalize_Vector3.spvasm.expected.ir.fxc.hlsl
deleted file mode 100644
index 478d986..0000000
--- a/test/tint/unittest/reader/spirv/SpvParserTest_Normalize_Vector3.spvasm.expected.ir.fxc.hlsl
+++ /dev/null
@@ -1,32 +0,0 @@
-SKIP: FAILED
-
-void main_1() {
-  uint u1 = 10u;
-  uint u2 = 15u;
-  uint u3 = 20u;
-  int i1 = 30;
-  int i2 = 35;
-  int i3 = 40;
-  float f1 = 50.0f;
-  float f2 = 60.0f;
-  float f3 = 70.0f;
-  uint2 v2u1 = uint2(10u, 20u);
-  uint2 v2u2 = uint2(20u, 10u);
-  uint2 v2u3 = (15u).xx;
-  int2 v2i1 = int2(30, 40);
-  int2 v2i2 = int2(40, 30);
-  int2 v2i3 = (35).xx;
-  float2 v2f1 = float2(50.0f, 60.0f);
-  float2 v2f2 = float2(60.0f, 50.0f);
-  float2 v2f3 = (70.0f).xx;
-  float3 v3f2 = float3(60.0f, 70.0f, 50.0f);
-  float4 v4f1 = (50.0f).xxxx;
-  float4 v4f2 = v4f1;
-  float3 x_1 = float3(0.47673130035400390625f, 0.57207757234573364258f, 0.66742384433746337891f);
-}
-
-[numthreads(1, 1, 1)]
-void main() {
-  main_1();
-}
-
diff --git a/test/tint/unittest/reader/spirv/SpvParserTest_Normalize_Vector4.spvasm.expected.ir.fxc.hlsl b/test/tint/unittest/reader/spirv/SpvParserTest_Normalize_Vector4.spvasm.expected.ir.fxc.hlsl
deleted file mode 100644
index 9998d44..0000000
--- a/test/tint/unittest/reader/spirv/SpvParserTest_Normalize_Vector4.spvasm.expected.ir.fxc.hlsl
+++ /dev/null
@@ -1,33 +0,0 @@
-SKIP: FAILED
-
-void main_1() {
-  uint u1 = 10u;
-  uint u2 = 15u;
-  uint u3 = 20u;
-  int i1 = 30;
-  int i2 = 35;
-  int i3 = 40;
-  float f1 = 50.0f;
-  float f2 = 60.0f;
-  float f3 = 70.0f;
-  uint2 v2u1 = uint2(10u, 20u);
-  uint2 v2u2 = uint2(20u, 10u);
-  uint2 v2u3 = (15u).xx;
-  int2 v2i1 = int2(30, 40);
-  int2 v2i2 = int2(40, 30);
-  int2 v2i3 = (35).xx;
-  float2 v2f1 = float2(50.0f, 60.0f);
-  float2 v2f2 = float2(60.0f, 50.0f);
-  float2 v2f3 = (70.0f).xx;
-  float3 v3f1 = float3(50.0f, 60.0f, 70.0f);
-  float3 v3f2 = float3(60.0f, 70.0f, 50.0f);
-  float4 v4f1 = (50.0f).xxxx;
-  float4 v4f2 = v4f1;
-  float4 x_1 = normalize(v4f1);
-}
-
-[numthreads(1, 1, 1)]
-void main() {
-  main_1();
-}
-
diff --git a/test/tint/unittest/reader/spirv/SpvParserTest_RectifyOperandsAndResult_SAbs.spvasm.expected.ir.fxc.hlsl b/test/tint/unittest/reader/spirv/SpvParserTest_RectifyOperandsAndResult_SAbs.spvasm.expected.ir.fxc.hlsl
deleted file mode 100644
index 5c908fe..0000000
--- a/test/tint/unittest/reader/spirv/SpvParserTest_RectifyOperandsAndResult_SAbs.spvasm.expected.ir.fxc.hlsl
+++ /dev/null
@@ -1,32 +0,0 @@
-SKIP: FAILED
-
-void main_1() {
-  uint u2 = 15u;
-  uint u3 = 20u;
-  int i1 = 30;
-  int i2 = 35;
-  int i3 = 40;
-  float f1 = 50.0f;
-  float f2 = 60.0f;
-  float f3 = 70.0f;
-  uint2 v2u2 = uint2(20u, 10u);
-  uint2 v2u3 = (15u).xx;
-  int2 v2i1 = int2(30, 40);
-  int2 v2i2 = int2(40, 30);
-  int2 v2i3 = (35).xx;
-  float2 v2f1 = float2(50.0f, 60.0f);
-  float2 v2f2 = float2(60.0f, 50.0f);
-  float2 v2f3 = (70.0f).xx;
-  float3 v3f1 = float3(50.0f, 60.0f, 70.0f);
-  float3 v3f2 = float3(60.0f, 70.0f, 50.0f);
-  float4 v4f1 = (50.0f).xxxx;
-  float4 v4f2 = v4f1;
-  uint x_1 = 10u;
-  uint2 x_2 = uint2(10u, 20u);
-}
-
-[numthreads(1, 1, 1)]
-void main() {
-  main_1();
-}
-
diff --git a/test/tint/unittest/reader/spirv/SpvParserTest_RectifyOperandsAndResult_SClamp.spvasm.expected.ir.fxc.hlsl b/test/tint/unittest/reader/spirv/SpvParserTest_RectifyOperandsAndResult_SClamp.spvasm.expected.ir.fxc.hlsl
deleted file mode 100644
index 49557a5..0000000
--- a/test/tint/unittest/reader/spirv/SpvParserTest_RectifyOperandsAndResult_SClamp.spvasm.expected.ir.fxc.hlsl
+++ /dev/null
@@ -1,28 +0,0 @@
-SKIP: FAILED
-
-void main_1() {
-  uint u2 = 15u;
-  int i1 = 30;
-  int i3 = 40;
-  float f1 = 50.0f;
-  float f2 = 60.0f;
-  float f3 = 70.0f;
-  uint2 v2u2 = uint2(20u, 10u);
-  int2 v2i1 = int2(30, 40);
-  int2 v2i3 = (35).xx;
-  float2 v2f1 = float2(50.0f, 60.0f);
-  float2 v2f2 = float2(60.0f, 50.0f);
-  float2 v2f3 = (70.0f).xx;
-  float3 v3f1 = float3(50.0f, 60.0f, 70.0f);
-  float3 v3f2 = float3(60.0f, 70.0f, 50.0f);
-  float4 v4f1 = (50.0f).xxxx;
-  float4 v4f2 = v4f1;
-  uint x_1 = 20u;
-  uint2 x_2 = uint2(15u, 20u);
-}
-
-[numthreads(1, 1, 1)]
-void main() {
-  main_1();
-}
-
diff --git a/test/tint/unittest/reader/spirv/SpvParserTest_RectifyOperandsAndResult_SMax.spvasm.expected.ir.fxc.hlsl b/test/tint/unittest/reader/spirv/SpvParserTest_RectifyOperandsAndResult_SMax.spvasm.expected.ir.fxc.hlsl
deleted file mode 100644
index a11f289..0000000
--- a/test/tint/unittest/reader/spirv/SpvParserTest_RectifyOperandsAndResult_SMax.spvasm.expected.ir.fxc.hlsl
+++ /dev/null
@@ -1,30 +0,0 @@
-SKIP: FAILED
-
-void main_1() {
-  uint u3 = 20u;
-  int i1 = 30;
-  int i2 = 35;
-  int i3 = 40;
-  float f1 = 50.0f;
-  float f2 = 60.0f;
-  float f3 = 70.0f;
-  uint2 v2u3 = (15u).xx;
-  int2 v2i1 = int2(30, 40);
-  int2 v2i2 = int2(40, 30);
-  int2 v2i3 = (35).xx;
-  float2 v2f1 = float2(50.0f, 60.0f);
-  float2 v2f2 = float2(60.0f, 50.0f);
-  float2 v2f3 = (70.0f).xx;
-  float3 v3f1 = float3(50.0f, 60.0f, 70.0f);
-  float3 v3f2 = float3(60.0f, 70.0f, 50.0f);
-  float4 v4f1 = (50.0f).xxxx;
-  float4 v4f2 = v4f1;
-  uint x_1 = 15u;
-  uint2 x_2 = (20u).xx;
-}
-
-[numthreads(1, 1, 1)]
-void main() {
-  main_1();
-}
-
diff --git a/test/tint/unittest/reader/spirv/SpvParserTest_RectifyOperandsAndResult_SMin.spvasm.expected.ir.fxc.hlsl b/test/tint/unittest/reader/spirv/SpvParserTest_RectifyOperandsAndResult_SMin.spvasm.expected.ir.fxc.hlsl
deleted file mode 100644
index 49452514..0000000
--- a/test/tint/unittest/reader/spirv/SpvParserTest_RectifyOperandsAndResult_SMin.spvasm.expected.ir.fxc.hlsl
+++ /dev/null
@@ -1,30 +0,0 @@
-SKIP: FAILED
-
-void main_1() {
-  uint u3 = 20u;
-  int i1 = 30;
-  int i2 = 35;
-  int i3 = 40;
-  float f1 = 50.0f;
-  float f2 = 60.0f;
-  float f3 = 70.0f;
-  uint2 v2u3 = (15u).xx;
-  int2 v2i1 = int2(30, 40);
-  int2 v2i2 = int2(40, 30);
-  int2 v2i3 = (35).xx;
-  float2 v2f1 = float2(50.0f, 60.0f);
-  float2 v2f2 = float2(60.0f, 50.0f);
-  float2 v2f3 = (70.0f).xx;
-  float3 v3f1 = float3(50.0f, 60.0f, 70.0f);
-  float3 v3f2 = float3(60.0f, 70.0f, 50.0f);
-  float4 v4f1 = (50.0f).xxxx;
-  float4 v4f2 = v4f1;
-  uint x_1 = 10u;
-  uint2 x_2 = (10u).xx;
-}
-
-[numthreads(1, 1, 1)]
-void main() {
-  main_1();
-}
-
diff --git a/test/tint/unittest/reader/spirv/SpvParserTest_RectifyOperandsAndResult_UClamp.spvasm.expected.ir.fxc.hlsl b/test/tint/unittest/reader/spirv/SpvParserTest_RectifyOperandsAndResult_UClamp.spvasm.expected.ir.fxc.hlsl
deleted file mode 100644
index 89829f2..0000000
--- a/test/tint/unittest/reader/spirv/SpvParserTest_RectifyOperandsAndResult_UClamp.spvasm.expected.ir.fxc.hlsl
+++ /dev/null
@@ -1,28 +0,0 @@
-SKIP: FAILED
-
-void main_1() {
-  uint u1 = 10u;
-  uint u3 = 20u;
-  int i2 = 35;
-  float f1 = 50.0f;
-  float f2 = 60.0f;
-  float f3 = 70.0f;
-  uint2 v2u1 = uint2(10u, 20u);
-  uint2 v2u3 = (15u).xx;
-  int2 v2i2 = int2(40, 30);
-  float2 v2f1 = float2(50.0f, 60.0f);
-  float2 v2f2 = float2(60.0f, 50.0f);
-  float2 v2f3 = (70.0f).xx;
-  float3 v3f1 = float3(50.0f, 60.0f, 70.0f);
-  float3 v3f2 = float3(60.0f, 70.0f, 50.0f);
-  float4 v4f1 = (50.0f).xxxx;
-  float4 v4f2 = v4f1;
-  int x_1 = 30;
-  int2 x_2 = int2(30, 35);
-}
-
-[numthreads(1, 1, 1)]
-void main() {
-  main_1();
-}
-
diff --git a/test/tint/unittest/reader/spirv/SpvParserTest_RectifyOperandsAndResult_UMax.spvasm.expected.ir.fxc.hlsl b/test/tint/unittest/reader/spirv/SpvParserTest_RectifyOperandsAndResult_UMax.spvasm.expected.ir.fxc.hlsl
deleted file mode 100644
index 76a6503..0000000
--- a/test/tint/unittest/reader/spirv/SpvParserTest_RectifyOperandsAndResult_UMax.spvasm.expected.ir.fxc.hlsl
+++ /dev/null
@@ -1,30 +0,0 @@
-SKIP: FAILED
-
-void main_1() {
-  uint u1 = 10u;
-  uint u2 = 15u;
-  uint u3 = 20u;
-  int i3 = 40;
-  float f1 = 50.0f;
-  float f2 = 60.0f;
-  float f3 = 70.0f;
-  uint2 v2u1 = uint2(10u, 20u);
-  uint2 v2u2 = uint2(20u, 10u);
-  uint2 v2u3 = (15u).xx;
-  int2 v2i3 = (35).xx;
-  float2 v2f1 = float2(50.0f, 60.0f);
-  float2 v2f2 = float2(60.0f, 50.0f);
-  float2 v2f3 = (70.0f).xx;
-  float3 v3f1 = float3(50.0f, 60.0f, 70.0f);
-  float3 v3f2 = float3(60.0f, 70.0f, 50.0f);
-  float4 v4f1 = (50.0f).xxxx;
-  float4 v4f2 = v4f1;
-  int x_1 = 35;
-  int2 x_2 = (40).xx;
-}
-
-[numthreads(1, 1, 1)]
-void main() {
-  main_1();
-}
-
diff --git a/test/tint/unittest/reader/spirv/SpvParserTest_RectifyOperandsAndResult_UMin.spvasm.expected.ir.fxc.hlsl b/test/tint/unittest/reader/spirv/SpvParserTest_RectifyOperandsAndResult_UMin.spvasm.expected.ir.fxc.hlsl
deleted file mode 100644
index 1116e49..0000000
--- a/test/tint/unittest/reader/spirv/SpvParserTest_RectifyOperandsAndResult_UMin.spvasm.expected.ir.fxc.hlsl
+++ /dev/null
@@ -1,30 +0,0 @@
-SKIP: FAILED
-
-void main_1() {
-  uint u1 = 10u;
-  uint u2 = 15u;
-  uint u3 = 20u;
-  int i3 = 40;
-  float f1 = 50.0f;
-  float f2 = 60.0f;
-  float f3 = 70.0f;
-  uint2 v2u1 = uint2(10u, 20u);
-  uint2 v2u2 = uint2(20u, 10u);
-  uint2 v2u3 = (15u).xx;
-  int2 v2i3 = (35).xx;
-  float2 v2f1 = float2(50.0f, 60.0f);
-  float2 v2f2 = float2(60.0f, 50.0f);
-  float2 v2f3 = (70.0f).xx;
-  float3 v3f1 = float3(50.0f, 60.0f, 70.0f);
-  float3 v3f2 = float3(60.0f, 70.0f, 50.0f);
-  float4 v4f1 = (50.0f).xxxx;
-  float4 v4f2 = v4f1;
-  int x_1 = 30;
-  int2 x_2 = (30).xx;
-}
-
-[numthreads(1, 1, 1)]
-void main() {
-  main_1();
-}
-
diff --git a/test/tint/unittest/reader/spirv/SpvParserTest_SDiv_MixedSignednessOperands_SpvBinaryArithTest_EmitExpression_0.spvasm.expected.ir.fxc.hlsl b/test/tint/unittest/reader/spirv/SpvParserTest_SDiv_MixedSignednessOperands_SpvBinaryArithTest_EmitExpression_0.spvasm.expected.ir.fxc.hlsl
deleted file mode 100644
index 9d6c843..0000000
--- a/test/tint/unittest/reader/spirv/SpvParserTest_SDiv_MixedSignednessOperands_SpvBinaryArithTest_EmitExpression_0.spvasm.expected.ir.fxc.hlsl
+++ /dev/null
@@ -1,10 +0,0 @@
-SKIP: FAILED
-
-void main_1() {
-  int x_1 = 3;
-}
-
-void main() {
-  main_1();
-}
-
diff --git a/test/tint/unittest/reader/spirv/SpvParserTest_SDiv_MixedSignednessOperands_SpvBinaryArithTest_EmitExpression_1.spvasm.expected.ir.fxc.hlsl b/test/tint/unittest/reader/spirv/SpvParserTest_SDiv_MixedSignednessOperands_SpvBinaryArithTest_EmitExpression_1.spvasm.expected.ir.fxc.hlsl
deleted file mode 100644
index ae4836b..0000000
--- a/test/tint/unittest/reader/spirv/SpvParserTest_SDiv_MixedSignednessOperands_SpvBinaryArithTest_EmitExpression_1.spvasm.expected.ir.fxc.hlsl
+++ /dev/null
@@ -1,10 +0,0 @@
-SKIP: FAILED
-
-void main_1() {
-  int x_1 = 0;
-}
-
-void main() {
-  main_1();
-}
-
diff --git a/test/tint/unittest/reader/spirv/SpvParserTest_SDiv_MixedSignednessOperands_SpvBinaryArithTest_EmitExpression_2.spvasm.expected.ir.fxc.hlsl b/test/tint/unittest/reader/spirv/SpvParserTest_SDiv_MixedSignednessOperands_SpvBinaryArithTest_EmitExpression_2.spvasm.expected.ir.fxc.hlsl
deleted file mode 100644
index 7481f08..0000000
--- a/test/tint/unittest/reader/spirv/SpvParserTest_SDiv_MixedSignednessOperands_SpvBinaryArithTest_EmitExpression_2.spvasm.expected.ir.fxc.hlsl
+++ /dev/null
@@ -1,10 +0,0 @@
-SKIP: FAILED
-
-void main_1() {
-  int2 x_1 = (0).xx;
-}
-
-void main() {
-  main_1();
-}
-
diff --git a/test/tint/unittest/reader/spirv/SpvParserTest_SDiv_MixedSignednessOperands_SpvBinaryArithTest_EmitExpression_3.spvasm.expected.ir.fxc.hlsl b/test/tint/unittest/reader/spirv/SpvParserTest_SDiv_MixedSignednessOperands_SpvBinaryArithTest_EmitExpression_3.spvasm.expected.ir.fxc.hlsl
deleted file mode 100644
index b567d2b..0000000
--- a/test/tint/unittest/reader/spirv/SpvParserTest_SDiv_MixedSignednessOperands_SpvBinaryArithTest_EmitExpression_3.spvasm.expected.ir.fxc.hlsl
+++ /dev/null
@@ -1,10 +0,0 @@
-SKIP: FAILED
-
-void main_1() {
-  int2 x_1 = int2(3, 2);
-}
-
-void main() {
-  main_1();
-}
-
diff --git a/test/tint/unittest/reader/spirv/SpvParserTest_SDiv_SpvBinaryArithTest_EmitExpression_0.spvasm.expected.ir.fxc.hlsl b/test/tint/unittest/reader/spirv/SpvParserTest_SDiv_SpvBinaryArithTest_EmitExpression_0.spvasm.expected.ir.fxc.hlsl
deleted file mode 100644
index ae4836b..0000000
--- a/test/tint/unittest/reader/spirv/SpvParserTest_SDiv_SpvBinaryArithTest_EmitExpression_0.spvasm.expected.ir.fxc.hlsl
+++ /dev/null
@@ -1,10 +0,0 @@
-SKIP: FAILED
-
-void main_1() {
-  int x_1 = 0;
-}
-
-void main() {
-  main_1();
-}
-
diff --git a/test/tint/unittest/reader/spirv/SpvParserTest_SDiv_SpvBinaryArithTest_EmitExpression_1.spvasm.expected.ir.fxc.hlsl b/test/tint/unittest/reader/spirv/SpvParserTest_SDiv_SpvBinaryArithTest_EmitExpression_1.spvasm.expected.ir.fxc.hlsl
deleted file mode 100644
index c728512..0000000
--- a/test/tint/unittest/reader/spirv/SpvParserTest_SDiv_SpvBinaryArithTest_EmitExpression_1.spvasm.expected.ir.fxc.hlsl
+++ /dev/null
@@ -1,10 +0,0 @@
-SKIP: FAILED
-
-void main_1() {
-  int2 x_1 = int2(0, 1);
-}
-
-void main() {
-  main_1();
-}
-
diff --git a/test/tint/unittest/reader/spirv/SpvParserTest_SGreaterThanEqual_SpvBinaryLogicalTest_EmitExpression_0.spvasm.expected.ir.fxc.hlsl b/test/tint/unittest/reader/spirv/SpvParserTest_SGreaterThanEqual_SpvBinaryLogicalTest_EmitExpression_0.spvasm.expected.ir.fxc.hlsl
deleted file mode 100644
index 969210b..0000000
--- a/test/tint/unittest/reader/spirv/SpvParserTest_SGreaterThanEqual_SpvBinaryLogicalTest_EmitExpression_0.spvasm.expected.ir.fxc.hlsl
+++ /dev/null
@@ -1,10 +0,0 @@
-SKIP: FAILED
-
-void main_1() {
-  bool x_1 = false;
-}
-
-void main() {
-  main_1();
-}
-
diff --git a/test/tint/unittest/reader/spirv/SpvParserTest_SGreaterThanEqual_SpvBinaryLogicalTest_EmitExpression_1.spvasm.expected.ir.fxc.hlsl b/test/tint/unittest/reader/spirv/SpvParserTest_SGreaterThanEqual_SpvBinaryLogicalTest_EmitExpression_1.spvasm.expected.ir.fxc.hlsl
deleted file mode 100644
index 969210b..0000000
--- a/test/tint/unittest/reader/spirv/SpvParserTest_SGreaterThanEqual_SpvBinaryLogicalTest_EmitExpression_1.spvasm.expected.ir.fxc.hlsl
+++ /dev/null
@@ -1,10 +0,0 @@
-SKIP: FAILED
-
-void main_1() {
-  bool x_1 = false;
-}
-
-void main() {
-  main_1();
-}
-
diff --git a/test/tint/unittest/reader/spirv/SpvParserTest_SGreaterThanEqual_SpvBinaryLogicalTest_EmitExpression_2.spvasm.expected.ir.fxc.hlsl b/test/tint/unittest/reader/spirv/SpvParserTest_SGreaterThanEqual_SpvBinaryLogicalTest_EmitExpression_2.spvasm.expected.ir.fxc.hlsl
deleted file mode 100644
index 00baddd..0000000
--- a/test/tint/unittest/reader/spirv/SpvParserTest_SGreaterThanEqual_SpvBinaryLogicalTest_EmitExpression_2.spvasm.expected.ir.fxc.hlsl
+++ /dev/null
@@ -1,10 +0,0 @@
-SKIP: FAILED
-
-void main_1() {
-  bool x_1 = true;
-}
-
-void main() {
-  main_1();
-}
-
diff --git a/test/tint/unittest/reader/spirv/SpvParserTest_SGreaterThanEqual_SpvBinaryLogicalTest_EmitExpression_3.spvasm.expected.ir.fxc.hlsl b/test/tint/unittest/reader/spirv/SpvParserTest_SGreaterThanEqual_SpvBinaryLogicalTest_EmitExpression_3.spvasm.expected.ir.fxc.hlsl
deleted file mode 100644
index b3adcc7..0000000
--- a/test/tint/unittest/reader/spirv/SpvParserTest_SGreaterThanEqual_SpvBinaryLogicalTest_EmitExpression_3.spvasm.expected.ir.fxc.hlsl
+++ /dev/null
@@ -1,10 +0,0 @@
-SKIP: FAILED
-
-void main_1() {
-  bool2 x_1 = bool2(false, true);
-}
-
-void main() {
-  main_1();
-}
-
diff --git a/test/tint/unittest/reader/spirv/SpvParserTest_SGreaterThanEqual_SpvBinaryLogicalTest_EmitExpression_4.spvasm.expected.ir.fxc.hlsl b/test/tint/unittest/reader/spirv/SpvParserTest_SGreaterThanEqual_SpvBinaryLogicalTest_EmitExpression_4.spvasm.expected.ir.fxc.hlsl
deleted file mode 100644
index a217ea8..0000000
--- a/test/tint/unittest/reader/spirv/SpvParserTest_SGreaterThanEqual_SpvBinaryLogicalTest_EmitExpression_4.spvasm.expected.ir.fxc.hlsl
+++ /dev/null
@@ -1,10 +0,0 @@
-SKIP: FAILED
-
-void main_1() {
-  bool2 x_1 = (false).xx;
-}
-
-void main() {
-  main_1();
-}
-
diff --git a/test/tint/unittest/reader/spirv/SpvParserTest_SGreaterThanEqual_SpvBinaryLogicalTest_EmitExpression_5.spvasm.expected.ir.fxc.hlsl b/test/tint/unittest/reader/spirv/SpvParserTest_SGreaterThanEqual_SpvBinaryLogicalTest_EmitExpression_5.spvasm.expected.ir.fxc.hlsl
deleted file mode 100644
index 311dd17..0000000
--- a/test/tint/unittest/reader/spirv/SpvParserTest_SGreaterThanEqual_SpvBinaryLogicalTest_EmitExpression_5.spvasm.expected.ir.fxc.hlsl
+++ /dev/null
@@ -1,10 +0,0 @@
-SKIP: FAILED
-
-void main_1() {
-  bool2 x_1 = (true).xx;
-}
-
-void main() {
-  main_1();
-}
-
diff --git a/test/tint/unittest/reader/spirv/SpvParserTest_SGreaterThan_SpvBinaryLogicalTest_EmitExpression_0.spvasm.expected.ir.fxc.hlsl b/test/tint/unittest/reader/spirv/SpvParserTest_SGreaterThan_SpvBinaryLogicalTest_EmitExpression_0.spvasm.expected.ir.fxc.hlsl
deleted file mode 100644
index 969210b..0000000
--- a/test/tint/unittest/reader/spirv/SpvParserTest_SGreaterThan_SpvBinaryLogicalTest_EmitExpression_0.spvasm.expected.ir.fxc.hlsl
+++ /dev/null
@@ -1,10 +0,0 @@
-SKIP: FAILED
-
-void main_1() {
-  bool x_1 = false;
-}
-
-void main() {
-  main_1();
-}
-
diff --git a/test/tint/unittest/reader/spirv/SpvParserTest_SGreaterThan_SpvBinaryLogicalTest_EmitExpression_1.spvasm.expected.ir.fxc.hlsl b/test/tint/unittest/reader/spirv/SpvParserTest_SGreaterThan_SpvBinaryLogicalTest_EmitExpression_1.spvasm.expected.ir.fxc.hlsl
deleted file mode 100644
index 969210b..0000000
--- a/test/tint/unittest/reader/spirv/SpvParserTest_SGreaterThan_SpvBinaryLogicalTest_EmitExpression_1.spvasm.expected.ir.fxc.hlsl
+++ /dev/null
@@ -1,10 +0,0 @@
-SKIP: FAILED
-
-void main_1() {
-  bool x_1 = false;
-}
-
-void main() {
-  main_1();
-}
-
diff --git a/test/tint/unittest/reader/spirv/SpvParserTest_SGreaterThan_SpvBinaryLogicalTest_EmitExpression_2.spvasm.expected.ir.fxc.hlsl b/test/tint/unittest/reader/spirv/SpvParserTest_SGreaterThan_SpvBinaryLogicalTest_EmitExpression_2.spvasm.expected.ir.fxc.hlsl
deleted file mode 100644
index 00baddd..0000000
--- a/test/tint/unittest/reader/spirv/SpvParserTest_SGreaterThan_SpvBinaryLogicalTest_EmitExpression_2.spvasm.expected.ir.fxc.hlsl
+++ /dev/null
@@ -1,10 +0,0 @@
-SKIP: FAILED
-
-void main_1() {
-  bool x_1 = true;
-}
-
-void main() {
-  main_1();
-}
-
diff --git a/test/tint/unittest/reader/spirv/SpvParserTest_SGreaterThan_SpvBinaryLogicalTest_EmitExpression_3.spvasm.expected.ir.fxc.hlsl b/test/tint/unittest/reader/spirv/SpvParserTest_SGreaterThan_SpvBinaryLogicalTest_EmitExpression_3.spvasm.expected.ir.fxc.hlsl
deleted file mode 100644
index b3adcc7..0000000
--- a/test/tint/unittest/reader/spirv/SpvParserTest_SGreaterThan_SpvBinaryLogicalTest_EmitExpression_3.spvasm.expected.ir.fxc.hlsl
+++ /dev/null
@@ -1,10 +0,0 @@
-SKIP: FAILED
-
-void main_1() {
-  bool2 x_1 = bool2(false, true);
-}
-
-void main() {
-  main_1();
-}
-
diff --git a/test/tint/unittest/reader/spirv/SpvParserTest_SGreaterThan_SpvBinaryLogicalTest_EmitExpression_4.spvasm.expected.ir.fxc.hlsl b/test/tint/unittest/reader/spirv/SpvParserTest_SGreaterThan_SpvBinaryLogicalTest_EmitExpression_4.spvasm.expected.ir.fxc.hlsl
deleted file mode 100644
index a217ea8..0000000
--- a/test/tint/unittest/reader/spirv/SpvParserTest_SGreaterThan_SpvBinaryLogicalTest_EmitExpression_4.spvasm.expected.ir.fxc.hlsl
+++ /dev/null
@@ -1,10 +0,0 @@
-SKIP: FAILED
-
-void main_1() {
-  bool2 x_1 = (false).xx;
-}
-
-void main() {
-  main_1();
-}
-
diff --git a/test/tint/unittest/reader/spirv/SpvParserTest_SGreaterThan_SpvBinaryLogicalTest_EmitExpression_5.spvasm.expected.ir.fxc.hlsl b/test/tint/unittest/reader/spirv/SpvParserTest_SGreaterThan_SpvBinaryLogicalTest_EmitExpression_5.spvasm.expected.ir.fxc.hlsl
deleted file mode 100644
index 311dd17..0000000
--- a/test/tint/unittest/reader/spirv/SpvParserTest_SGreaterThan_SpvBinaryLogicalTest_EmitExpression_5.spvasm.expected.ir.fxc.hlsl
+++ /dev/null
@@ -1,10 +0,0 @@
-SKIP: FAILED
-
-void main_1() {
-  bool2 x_1 = (true).xx;
-}
-
-void main() {
-  main_1();
-}
-
diff --git a/test/tint/unittest/reader/spirv/SpvParserTest_SLessThanEqual_SpvBinaryLogicalTest_EmitExpression_0.spvasm.expected.ir.fxc.hlsl b/test/tint/unittest/reader/spirv/SpvParserTest_SLessThanEqual_SpvBinaryLogicalTest_EmitExpression_0.spvasm.expected.ir.fxc.hlsl
deleted file mode 100644
index 00baddd..0000000
--- a/test/tint/unittest/reader/spirv/SpvParserTest_SLessThanEqual_SpvBinaryLogicalTest_EmitExpression_0.spvasm.expected.ir.fxc.hlsl
+++ /dev/null
@@ -1,10 +0,0 @@
-SKIP: FAILED
-
-void main_1() {
-  bool x_1 = true;
-}
-
-void main() {
-  main_1();
-}
-
diff --git a/test/tint/unittest/reader/spirv/SpvParserTest_SLessThanEqual_SpvBinaryLogicalTest_EmitExpression_1.spvasm.expected.ir.fxc.hlsl b/test/tint/unittest/reader/spirv/SpvParserTest_SLessThanEqual_SpvBinaryLogicalTest_EmitExpression_1.spvasm.expected.ir.fxc.hlsl
deleted file mode 100644
index 00baddd..0000000
--- a/test/tint/unittest/reader/spirv/SpvParserTest_SLessThanEqual_SpvBinaryLogicalTest_EmitExpression_1.spvasm.expected.ir.fxc.hlsl
+++ /dev/null
@@ -1,10 +0,0 @@
-SKIP: FAILED
-
-void main_1() {
-  bool x_1 = true;
-}
-
-void main() {
-  main_1();
-}
-
diff --git a/test/tint/unittest/reader/spirv/SpvParserTest_SLessThanEqual_SpvBinaryLogicalTest_EmitExpression_2.spvasm.expected.ir.fxc.hlsl b/test/tint/unittest/reader/spirv/SpvParserTest_SLessThanEqual_SpvBinaryLogicalTest_EmitExpression_2.spvasm.expected.ir.fxc.hlsl
deleted file mode 100644
index 969210b..0000000
--- a/test/tint/unittest/reader/spirv/SpvParserTest_SLessThanEqual_SpvBinaryLogicalTest_EmitExpression_2.spvasm.expected.ir.fxc.hlsl
+++ /dev/null
@@ -1,10 +0,0 @@
-SKIP: FAILED
-
-void main_1() {
-  bool x_1 = false;
-}
-
-void main() {
-  main_1();
-}
-
diff --git a/test/tint/unittest/reader/spirv/SpvParserTest_SLessThanEqual_SpvBinaryLogicalTest_EmitExpression_3.spvasm.expected.ir.fxc.hlsl b/test/tint/unittest/reader/spirv/SpvParserTest_SLessThanEqual_SpvBinaryLogicalTest_EmitExpression_3.spvasm.expected.ir.fxc.hlsl
deleted file mode 100644
index fecb7b9..0000000
--- a/test/tint/unittest/reader/spirv/SpvParserTest_SLessThanEqual_SpvBinaryLogicalTest_EmitExpression_3.spvasm.expected.ir.fxc.hlsl
+++ /dev/null
@@ -1,10 +0,0 @@
-SKIP: FAILED
-
-void main_1() {
-  bool2 x_1 = bool2(true, false);
-}
-
-void main() {
-  main_1();
-}
-
diff --git a/test/tint/unittest/reader/spirv/SpvParserTest_SLessThanEqual_SpvBinaryLogicalTest_EmitExpression_4.spvasm.expected.ir.fxc.hlsl b/test/tint/unittest/reader/spirv/SpvParserTest_SLessThanEqual_SpvBinaryLogicalTest_EmitExpression_4.spvasm.expected.ir.fxc.hlsl
deleted file mode 100644
index 311dd17..0000000
--- a/test/tint/unittest/reader/spirv/SpvParserTest_SLessThanEqual_SpvBinaryLogicalTest_EmitExpression_4.spvasm.expected.ir.fxc.hlsl
+++ /dev/null
@@ -1,10 +0,0 @@
-SKIP: FAILED
-
-void main_1() {
-  bool2 x_1 = (true).xx;
-}
-
-void main() {
-  main_1();
-}
-
diff --git a/test/tint/unittest/reader/spirv/SpvParserTest_SLessThanEqual_SpvBinaryLogicalTest_EmitExpression_5.spvasm.expected.ir.fxc.hlsl b/test/tint/unittest/reader/spirv/SpvParserTest_SLessThanEqual_SpvBinaryLogicalTest_EmitExpression_5.spvasm.expected.ir.fxc.hlsl
deleted file mode 100644
index a217ea8..0000000
--- a/test/tint/unittest/reader/spirv/SpvParserTest_SLessThanEqual_SpvBinaryLogicalTest_EmitExpression_5.spvasm.expected.ir.fxc.hlsl
+++ /dev/null
@@ -1,10 +0,0 @@
-SKIP: FAILED
-
-void main_1() {
-  bool2 x_1 = (false).xx;
-}
-
-void main() {
-  main_1();
-}
-
diff --git a/test/tint/unittest/reader/spirv/SpvParserTest_SLessThan_SpvBinaryLogicalTest_EmitExpression_0.spvasm.expected.ir.fxc.hlsl b/test/tint/unittest/reader/spirv/SpvParserTest_SLessThan_SpvBinaryLogicalTest_EmitExpression_0.spvasm.expected.ir.fxc.hlsl
deleted file mode 100644
index 00baddd..0000000
--- a/test/tint/unittest/reader/spirv/SpvParserTest_SLessThan_SpvBinaryLogicalTest_EmitExpression_0.spvasm.expected.ir.fxc.hlsl
+++ /dev/null
@@ -1,10 +0,0 @@
-SKIP: FAILED
-
-void main_1() {
-  bool x_1 = true;
-}
-
-void main() {
-  main_1();
-}
-
diff --git a/test/tint/unittest/reader/spirv/SpvParserTest_SLessThan_SpvBinaryLogicalTest_EmitExpression_1.spvasm.expected.ir.fxc.hlsl b/test/tint/unittest/reader/spirv/SpvParserTest_SLessThan_SpvBinaryLogicalTest_EmitExpression_1.spvasm.expected.ir.fxc.hlsl
deleted file mode 100644
index 00baddd..0000000
--- a/test/tint/unittest/reader/spirv/SpvParserTest_SLessThan_SpvBinaryLogicalTest_EmitExpression_1.spvasm.expected.ir.fxc.hlsl
+++ /dev/null
@@ -1,10 +0,0 @@
-SKIP: FAILED
-
-void main_1() {
-  bool x_1 = true;
-}
-
-void main() {
-  main_1();
-}
-
diff --git a/test/tint/unittest/reader/spirv/SpvParserTest_SLessThan_SpvBinaryLogicalTest_EmitExpression_2.spvasm.expected.ir.fxc.hlsl b/test/tint/unittest/reader/spirv/SpvParserTest_SLessThan_SpvBinaryLogicalTest_EmitExpression_2.spvasm.expected.ir.fxc.hlsl
deleted file mode 100644
index 969210b..0000000
--- a/test/tint/unittest/reader/spirv/SpvParserTest_SLessThan_SpvBinaryLogicalTest_EmitExpression_2.spvasm.expected.ir.fxc.hlsl
+++ /dev/null
@@ -1,10 +0,0 @@
-SKIP: FAILED
-
-void main_1() {
-  bool x_1 = false;
-}
-
-void main() {
-  main_1();
-}
-
diff --git a/test/tint/unittest/reader/spirv/SpvParserTest_SLessThan_SpvBinaryLogicalTest_EmitExpression_3.spvasm.expected.ir.fxc.hlsl b/test/tint/unittest/reader/spirv/SpvParserTest_SLessThan_SpvBinaryLogicalTest_EmitExpression_3.spvasm.expected.ir.fxc.hlsl
deleted file mode 100644
index fecb7b9..0000000
--- a/test/tint/unittest/reader/spirv/SpvParserTest_SLessThan_SpvBinaryLogicalTest_EmitExpression_3.spvasm.expected.ir.fxc.hlsl
+++ /dev/null
@@ -1,10 +0,0 @@
-SKIP: FAILED
-
-void main_1() {
-  bool2 x_1 = bool2(true, false);
-}
-
-void main() {
-  main_1();
-}
-
diff --git a/test/tint/unittest/reader/spirv/SpvParserTest_SLessThan_SpvBinaryLogicalTest_EmitExpression_4.spvasm.expected.ir.fxc.hlsl b/test/tint/unittest/reader/spirv/SpvParserTest_SLessThan_SpvBinaryLogicalTest_EmitExpression_4.spvasm.expected.ir.fxc.hlsl
deleted file mode 100644
index 311dd17..0000000
--- a/test/tint/unittest/reader/spirv/SpvParserTest_SLessThan_SpvBinaryLogicalTest_EmitExpression_4.spvasm.expected.ir.fxc.hlsl
+++ /dev/null
@@ -1,10 +0,0 @@
-SKIP: FAILED
-
-void main_1() {
-  bool2 x_1 = (true).xx;
-}
-
-void main() {
-  main_1();
-}
-
diff --git a/test/tint/unittest/reader/spirv/SpvParserTest_SLessThan_SpvBinaryLogicalTest_EmitExpression_5.spvasm.expected.ir.fxc.hlsl b/test/tint/unittest/reader/spirv/SpvParserTest_SLessThan_SpvBinaryLogicalTest_EmitExpression_5.spvasm.expected.ir.fxc.hlsl
deleted file mode 100644
index a217ea8..0000000
--- a/test/tint/unittest/reader/spirv/SpvParserTest_SLessThan_SpvBinaryLogicalTest_EmitExpression_5.spvasm.expected.ir.fxc.hlsl
+++ /dev/null
@@ -1,10 +0,0 @@
-SKIP: FAILED
-
-void main_1() {
-  bool2 x_1 = (false).xx;
-}
-
-void main() {
-  main_1();
-}
-
diff --git a/test/tint/unittest/reader/spirv/SpvParserTest_SMod_MixedSignednessOperands_SpvBinaryArithTest_EmitExpression_0.spvasm.expected.ir.fxc.hlsl b/test/tint/unittest/reader/spirv/SpvParserTest_SMod_MixedSignednessOperands_SpvBinaryArithTest_EmitExpression_0.spvasm.expected.ir.fxc.hlsl
deleted file mode 100644
index ae4836b..0000000
--- a/test/tint/unittest/reader/spirv/SpvParserTest_SMod_MixedSignednessOperands_SpvBinaryArithTest_EmitExpression_0.spvasm.expected.ir.fxc.hlsl
+++ /dev/null
@@ -1,10 +0,0 @@
-SKIP: FAILED
-
-void main_1() {
-  int x_1 = 0;
-}
-
-void main() {
-  main_1();
-}
-
diff --git a/test/tint/unittest/reader/spirv/SpvParserTest_SMod_MixedSignednessOperands_SpvBinaryArithTest_EmitExpression_1.spvasm.expected.ir.fxc.hlsl b/test/tint/unittest/reader/spirv/SpvParserTest_SMod_MixedSignednessOperands_SpvBinaryArithTest_EmitExpression_1.spvasm.expected.ir.fxc.hlsl
deleted file mode 100644
index 297e60f..0000000
--- a/test/tint/unittest/reader/spirv/SpvParserTest_SMod_MixedSignednessOperands_SpvBinaryArithTest_EmitExpression_1.spvasm.expected.ir.fxc.hlsl
+++ /dev/null
@@ -1,10 +0,0 @@
-SKIP: FAILED
-
-void main_1() {
-  int x_1 = 10;
-}
-
-void main() {
-  main_1();
-}
-
diff --git a/test/tint/unittest/reader/spirv/SpvParserTest_SMod_MixedSignednessOperands_SpvBinaryArithTest_EmitExpression_2.spvasm.expected.ir.fxc.hlsl b/test/tint/unittest/reader/spirv/SpvParserTest_SMod_MixedSignednessOperands_SpvBinaryArithTest_EmitExpression_2.spvasm.expected.ir.fxc.hlsl
deleted file mode 100644
index 1e665b9..0000000
--- a/test/tint/unittest/reader/spirv/SpvParserTest_SMod_MixedSignednessOperands_SpvBinaryArithTest_EmitExpression_2.spvasm.expected.ir.fxc.hlsl
+++ /dev/null
@@ -1,10 +0,0 @@
-SKIP: FAILED
-
-void main_1() {
-  int2 x_1 = int2(10, 20);
-}
-
-void main() {
-  main_1();
-}
-
diff --git a/test/tint/unittest/reader/spirv/SpvParserTest_SMod_MixedSignednessOperands_SpvBinaryArithTest_EmitExpression_3.spvasm.expected.ir.fxc.hlsl b/test/tint/unittest/reader/spirv/SpvParserTest_SMod_MixedSignednessOperands_SpvBinaryArithTest_EmitExpression_3.spvasm.expected.ir.fxc.hlsl
deleted file mode 100644
index 7481f08..0000000
--- a/test/tint/unittest/reader/spirv/SpvParserTest_SMod_MixedSignednessOperands_SpvBinaryArithTest_EmitExpression_3.spvasm.expected.ir.fxc.hlsl
+++ /dev/null
@@ -1,10 +0,0 @@
-SKIP: FAILED
-
-void main_1() {
-  int2 x_1 = (0).xx;
-}
-
-void main() {
-  main_1();
-}
-
diff --git a/test/tint/unittest/reader/spirv/SpvParserTest_SMod_SpvBinaryArithTest_EmitExpression_0.spvasm.expected.ir.fxc.hlsl b/test/tint/unittest/reader/spirv/SpvParserTest_SMod_SpvBinaryArithTest_EmitExpression_0.spvasm.expected.ir.fxc.hlsl
deleted file mode 100644
index 81c3c3d..0000000
--- a/test/tint/unittest/reader/spirv/SpvParserTest_SMod_SpvBinaryArithTest_EmitExpression_0.spvasm.expected.ir.fxc.hlsl
+++ /dev/null
@@ -1,10 +0,0 @@
-SKIP: FAILED
-
-void main_1() {
-  int x_1 = 30;
-}
-
-void main() {
-  main_1();
-}
-
diff --git a/test/tint/unittest/reader/spirv/SpvParserTest_SMod_SpvBinaryArithTest_EmitExpression_1.spvasm.expected.ir.fxc.hlsl b/test/tint/unittest/reader/spirv/SpvParserTest_SMod_SpvBinaryArithTest_EmitExpression_1.spvasm.expected.ir.fxc.hlsl
deleted file mode 100644
index c8a2ddc..0000000
--- a/test/tint/unittest/reader/spirv/SpvParserTest_SMod_SpvBinaryArithTest_EmitExpression_1.spvasm.expected.ir.fxc.hlsl
+++ /dev/null
@@ -1,10 +0,0 @@
-SKIP: FAILED
-
-void main_1() {
-  int2 x_1 = int2(30, 10);
-}
-
-void main() {
-  main_1();
-}
-
diff --git a/test/tint/unittest/reader/spirv/SpvParserTest_ShiftLeftLogical_Arg2Signed_SpvBinaryBitGeneralTest_EmitExpression_0.spvasm.expected.ir.fxc.hlsl b/test/tint/unittest/reader/spirv/SpvParserTest_ShiftLeftLogical_Arg2Signed_SpvBinaryBitGeneralTest_EmitExpression_0.spvasm.expected.ir.fxc.hlsl
deleted file mode 100644
index 43ceead..0000000
--- a/test/tint/unittest/reader/spirv/SpvParserTest_ShiftLeftLogical_Arg2Signed_SpvBinaryBitGeneralTest_EmitExpression_0.spvasm.expected.ir.fxc.hlsl
+++ /dev/null
@@ -1,10 +0,0 @@
-SKIP: FAILED
-
-void main_1() {
-  int x_1 = 60;
-}
-
-void main() {
-  main_1();
-}
-
diff --git a/test/tint/unittest/reader/spirv/SpvParserTest_ShiftLeftLogical_Arg2Signed_SpvBinaryBitGeneralTest_EmitExpression_1.spvasm.expected.ir.fxc.hlsl b/test/tint/unittest/reader/spirv/SpvParserTest_ShiftLeftLogical_Arg2Signed_SpvBinaryBitGeneralTest_EmitExpression_1.spvasm.expected.ir.fxc.hlsl
deleted file mode 100644
index 297fdee..0000000
--- a/test/tint/unittest/reader/spirv/SpvParserTest_ShiftLeftLogical_Arg2Signed_SpvBinaryBitGeneralTest_EmitExpression_1.spvasm.expected.ir.fxc.hlsl
+++ /dev/null
@@ -1,10 +0,0 @@
-SKIP: FAILED
-
-void main_1() {
-  uint x_1 = 20u;
-}
-
-void main() {
-  main_1();
-}
-
diff --git a/test/tint/unittest/reader/spirv/SpvParserTest_ShiftLeftLogical_Arg2Signed_SpvBinaryBitGeneralTest_EmitExpression_2.spvasm.expected.ir.fxc.hlsl b/test/tint/unittest/reader/spirv/SpvParserTest_ShiftLeftLogical_Arg2Signed_SpvBinaryBitGeneralTest_EmitExpression_2.spvasm.expected.ir.fxc.hlsl
deleted file mode 100644
index e5675d8..0000000
--- a/test/tint/unittest/reader/spirv/SpvParserTest_ShiftLeftLogical_Arg2Signed_SpvBinaryBitGeneralTest_EmitExpression_2.spvasm.expected.ir.fxc.hlsl
+++ /dev/null
@@ -1,10 +0,0 @@
-SKIP: FAILED
-
-void main_1() {
-  uint2 x_1 = uint2(10485760u, 20480u);
-}
-
-void main() {
-  main_1();
-}
-
diff --git a/test/tint/unittest/reader/spirv/SpvParserTest_ShiftLeftLogical_Arg2Signed_SpvBinaryBitGeneralTest_EmitExpression_3.spvasm.expected.ir.fxc.hlsl b/test/tint/unittest/reader/spirv/SpvParserTest_ShiftLeftLogical_Arg2Signed_SpvBinaryBitGeneralTest_EmitExpression_3.spvasm.expected.ir.fxc.hlsl
deleted file mode 100644
index 2db60f2..0000000
--- a/test/tint/unittest/reader/spirv/SpvParserTest_ShiftLeftLogical_Arg2Signed_SpvBinaryBitGeneralTest_EmitExpression_3.spvasm.expected.ir.fxc.hlsl
+++ /dev/null
@@ -1,10 +0,0 @@
-SKIP: FAILED
-
-void main_1() {
-  int2 x_1 = int2(60, 80);
-}
-
-void main() {
-  main_1();
-}
-
diff --git a/test/tint/unittest/reader/spirv/SpvParserTest_ShiftLeftLogical_Arg2Unsigned_SpvBinaryBitTest_EmitExpression_0.spvasm.expected.ir.fxc.hlsl b/test/tint/unittest/reader/spirv/SpvParserTest_ShiftLeftLogical_Arg2Unsigned_SpvBinaryBitTest_EmitExpression_0.spvasm.expected.ir.fxc.hlsl
deleted file mode 100644
index 8473457..0000000
--- a/test/tint/unittest/reader/spirv/SpvParserTest_ShiftLeftLogical_Arg2Unsigned_SpvBinaryBitTest_EmitExpression_0.spvasm.expected.ir.fxc.hlsl
+++ /dev/null
@@ -1,10 +0,0 @@
-SKIP: FAILED
-
-void main_1() {
-  uint x_1 = 10485760u;
-}
-
-void main() {
-  main_1();
-}
-
diff --git a/test/tint/unittest/reader/spirv/SpvParserTest_ShiftLeftLogical_Arg2Unsigned_SpvBinaryBitTest_EmitExpression_1.spvasm.expected.ir.fxc.hlsl b/test/tint/unittest/reader/spirv/SpvParserTest_ShiftLeftLogical_Arg2Unsigned_SpvBinaryBitTest_EmitExpression_1.spvasm.expected.ir.fxc.hlsl
deleted file mode 100644
index 914a8b7..0000000
--- a/test/tint/unittest/reader/spirv/SpvParserTest_ShiftLeftLogical_Arg2Unsigned_SpvBinaryBitTest_EmitExpression_1.spvasm.expected.ir.fxc.hlsl
+++ /dev/null
@@ -1,10 +0,0 @@
-SKIP: FAILED
-
-void main_1() {
-  int x_1 = 31457280;
-}
-
-void main() {
-  main_1();
-}
-
diff --git a/test/tint/unittest/reader/spirv/SpvParserTest_ShiftLeftLogical_Arg2Unsigned_SpvBinaryBitTest_EmitExpression_2.spvasm.expected.ir.fxc.hlsl b/test/tint/unittest/reader/spirv/SpvParserTest_ShiftLeftLogical_Arg2Unsigned_SpvBinaryBitTest_EmitExpression_2.spvasm.expected.ir.fxc.hlsl
deleted file mode 100644
index e5675d8..0000000
--- a/test/tint/unittest/reader/spirv/SpvParserTest_ShiftLeftLogical_Arg2Unsigned_SpvBinaryBitTest_EmitExpression_2.spvasm.expected.ir.fxc.hlsl
+++ /dev/null
@@ -1,10 +0,0 @@
-SKIP: FAILED
-
-void main_1() {
-  uint2 x_1 = uint2(10485760u, 20480u);
-}
-
-void main() {
-  main_1();
-}
-
diff --git a/test/tint/unittest/reader/spirv/SpvParserTest_ShiftLeftLogical_Arg2Unsigned_SpvBinaryBitTest_EmitExpression_3.spvasm.expected.ir.fxc.hlsl b/test/tint/unittest/reader/spirv/SpvParserTest_ShiftLeftLogical_Arg2Unsigned_SpvBinaryBitTest_EmitExpression_3.spvasm.expected.ir.fxc.hlsl
deleted file mode 100644
index 9814f75..0000000
--- a/test/tint/unittest/reader/spirv/SpvParserTest_ShiftLeftLogical_Arg2Unsigned_SpvBinaryBitTest_EmitExpression_3.spvasm.expected.ir.fxc.hlsl
+++ /dev/null
@@ -1,10 +0,0 @@
-SKIP: FAILED
-
-void main_1() {
-  int2 x_1 = int2(31457280, 40960);
-}
-
-void main() {
-  main_1();
-}
-
diff --git a/test/tint/unittest/reader/spirv/SpvParserTest_ShiftLeftLogical_BitcastResult_SpvBinaryBitGeneralTest_EmitExpression_0.spvasm.expected.ir.fxc.hlsl b/test/tint/unittest/reader/spirv/SpvParserTest_ShiftLeftLogical_BitcastResult_SpvBinaryBitGeneralTest_EmitExpression_0.spvasm.expected.ir.fxc.hlsl
deleted file mode 100644
index 355eb3b..0000000
--- a/test/tint/unittest/reader/spirv/SpvParserTest_ShiftLeftLogical_BitcastResult_SpvBinaryBitGeneralTest_EmitExpression_0.spvasm.expected.ir.fxc.hlsl
+++ /dev/null
@@ -1,10 +0,0 @@
-SKIP: FAILED
-
-void main_1() {
-  uint x_1 = 30720u;
-}
-
-void main() {
-  main_1();
-}
-
diff --git a/test/tint/unittest/reader/spirv/SpvParserTest_ShiftLeftLogical_BitcastResult_SpvBinaryBitGeneralTest_EmitExpression_1.spvasm.expected.ir.fxc.hlsl b/test/tint/unittest/reader/spirv/SpvParserTest_ShiftLeftLogical_BitcastResult_SpvBinaryBitGeneralTest_EmitExpression_1.spvasm.expected.ir.fxc.hlsl
deleted file mode 100644
index 7ba3f66..0000000
--- a/test/tint/unittest/reader/spirv/SpvParserTest_ShiftLeftLogical_BitcastResult_SpvBinaryBitGeneralTest_EmitExpression_1.spvasm.expected.ir.fxc.hlsl
+++ /dev/null
@@ -1,10 +0,0 @@
-SKIP: FAILED
-
-void main_1() {
-  uint2 x_1 = uint2(31457280u, 40960u);
-}
-
-void main() {
-  main_1();
-}
-
diff --git a/test/tint/unittest/reader/spirv/SpvParserTest_ShiftRightArithmetic_Arg2Signed_SpvBinaryBitGeneralTest_EmitExpression_0.spvasm.expected.ir.fxc.hlsl b/test/tint/unittest/reader/spirv/SpvParserTest_ShiftRightArithmetic_Arg2Signed_SpvBinaryBitGeneralTest_EmitExpression_0.spvasm.expected.ir.fxc.hlsl
deleted file mode 100644
index 1e2c9e2..0000000
--- a/test/tint/unittest/reader/spirv/SpvParserTest_ShiftRightArithmetic_Arg2Signed_SpvBinaryBitGeneralTest_EmitExpression_0.spvasm.expected.ir.fxc.hlsl
+++ /dev/null
@@ -1,10 +0,0 @@
-SKIP: FAILED
-
-void main_1() {
-  uint x_1 = 0u;
-}
-
-void main() {
-  main_1();
-}
-
diff --git a/test/tint/unittest/reader/spirv/SpvParserTest_ShiftRightArithmetic_Arg2Signed_SpvBinaryBitGeneralTest_EmitExpression_1.spvasm.expected.ir.fxc.hlsl b/test/tint/unittest/reader/spirv/SpvParserTest_ShiftRightArithmetic_Arg2Signed_SpvBinaryBitGeneralTest_EmitExpression_1.spvasm.expected.ir.fxc.hlsl
deleted file mode 100644
index 7f7e19f..0000000
--- a/test/tint/unittest/reader/spirv/SpvParserTest_ShiftRightArithmetic_Arg2Signed_SpvBinaryBitGeneralTest_EmitExpression_1.spvasm.expected.ir.fxc.hlsl
+++ /dev/null
@@ -1,10 +0,0 @@
-SKIP: FAILED
-
-void main_1() {
-  int x_1 = 15;
-}
-
-void main() {
-  main_1();
-}
-
diff --git a/test/tint/unittest/reader/spirv/SpvParserTest_ShiftRightArithmetic_Arg2Signed_SpvBinaryBitGeneralTest_EmitExpression_2.spvasm.expected.ir.fxc.hlsl b/test/tint/unittest/reader/spirv/SpvParserTest_ShiftRightArithmetic_Arg2Signed_SpvBinaryBitGeneralTest_EmitExpression_2.spvasm.expected.ir.fxc.hlsl
deleted file mode 100644
index f8c98b0..0000000
--- a/test/tint/unittest/reader/spirv/SpvParserTest_ShiftRightArithmetic_Arg2Signed_SpvBinaryBitGeneralTest_EmitExpression_2.spvasm.expected.ir.fxc.hlsl
+++ /dev/null
@@ -1,10 +0,0 @@
-SKIP: FAILED
-
-void main_1() {
-  uint2 x_1 = uint2(5u, 10u);
-}
-
-void main() {
-  main_1();
-}
-
diff --git a/test/tint/unittest/reader/spirv/SpvParserTest_ShiftRightArithmetic_Arg2Signed_SpvBinaryBitGeneralTest_EmitExpression_3.spvasm.expected.ir.fxc.hlsl b/test/tint/unittest/reader/spirv/SpvParserTest_ShiftRightArithmetic_Arg2Signed_SpvBinaryBitGeneralTest_EmitExpression_3.spvasm.expected.ir.fxc.hlsl
deleted file mode 100644
index 7e72bd9..0000000
--- a/test/tint/unittest/reader/spirv/SpvParserTest_ShiftRightArithmetic_Arg2Signed_SpvBinaryBitGeneralTest_EmitExpression_3.spvasm.expected.ir.fxc.hlsl
+++ /dev/null
@@ -1,10 +0,0 @@
-SKIP: FAILED
-
-void main_1() {
-  int2 x_1 = int2(20, 15);
-}
-
-void main() {
-  main_1();
-}
-
diff --git a/test/tint/unittest/reader/spirv/SpvParserTest_ShiftRightArithmetic_Arg2Unsigned_SpvBinaryBitGeneralTest_EmitExpression_0.spvasm.expected.ir.fxc.hlsl b/test/tint/unittest/reader/spirv/SpvParserTest_ShiftRightArithmetic_Arg2Unsigned_SpvBinaryBitGeneralTest_EmitExpression_0.spvasm.expected.ir.fxc.hlsl
deleted file mode 100644
index 1e2c9e2..0000000
--- a/test/tint/unittest/reader/spirv/SpvParserTest_ShiftRightArithmetic_Arg2Unsigned_SpvBinaryBitGeneralTest_EmitExpression_0.spvasm.expected.ir.fxc.hlsl
+++ /dev/null
@@ -1,10 +0,0 @@
-SKIP: FAILED
-
-void main_1() {
-  uint x_1 = 0u;
-}
-
-void main() {
-  main_1();
-}
-
diff --git a/test/tint/unittest/reader/spirv/SpvParserTest_ShiftRightArithmetic_Arg2Unsigned_SpvBinaryBitGeneralTest_EmitExpression_1.spvasm.expected.ir.fxc.hlsl b/test/tint/unittest/reader/spirv/SpvParserTest_ShiftRightArithmetic_Arg2Unsigned_SpvBinaryBitGeneralTest_EmitExpression_1.spvasm.expected.ir.fxc.hlsl
deleted file mode 100644
index ae4836b..0000000
--- a/test/tint/unittest/reader/spirv/SpvParserTest_ShiftRightArithmetic_Arg2Unsigned_SpvBinaryBitGeneralTest_EmitExpression_1.spvasm.expected.ir.fxc.hlsl
+++ /dev/null
@@ -1,10 +0,0 @@
-SKIP: FAILED
-
-void main_1() {
-  int x_1 = 0;
-}
-
-void main() {
-  main_1();
-}
-
diff --git a/test/tint/unittest/reader/spirv/SpvParserTest_ShiftRightArithmetic_Arg2Unsigned_SpvBinaryBitGeneralTest_EmitExpression_2.spvasm.expected.ir.fxc.hlsl b/test/tint/unittest/reader/spirv/SpvParserTest_ShiftRightArithmetic_Arg2Unsigned_SpvBinaryBitGeneralTest_EmitExpression_2.spvasm.expected.ir.fxc.hlsl
deleted file mode 100644
index 08a65e5..0000000
--- a/test/tint/unittest/reader/spirv/SpvParserTest_ShiftRightArithmetic_Arg2Unsigned_SpvBinaryBitGeneralTest_EmitExpression_2.spvasm.expected.ir.fxc.hlsl
+++ /dev/null
@@ -1,10 +0,0 @@
-SKIP: FAILED
-
-void main_1() {
-  uint2 x_1 = (0u).xx;
-}
-
-void main() {
-  main_1();
-}
-
diff --git a/test/tint/unittest/reader/spirv/SpvParserTest_ShiftRightArithmetic_Arg2Unsigned_SpvBinaryBitGeneralTest_EmitExpression_3.spvasm.expected.ir.fxc.hlsl b/test/tint/unittest/reader/spirv/SpvParserTest_ShiftRightArithmetic_Arg2Unsigned_SpvBinaryBitGeneralTest_EmitExpression_3.spvasm.expected.ir.fxc.hlsl
deleted file mode 100644
index 7481f08..0000000
--- a/test/tint/unittest/reader/spirv/SpvParserTest_ShiftRightArithmetic_Arg2Unsigned_SpvBinaryBitGeneralTest_EmitExpression_3.spvasm.expected.ir.fxc.hlsl
+++ /dev/null
@@ -1,10 +0,0 @@
-SKIP: FAILED
-
-void main_1() {
-  int2 x_1 = (0).xx;
-}
-
-void main() {
-  main_1();
-}
-
diff --git a/test/tint/unittest/reader/spirv/SpvParserTest_ShiftRightArithmetic_BitcastResult_SpvBinaryBitGeneralTest_EmitExpression_0.spvasm.expected.ir.fxc.hlsl b/test/tint/unittest/reader/spirv/SpvParserTest_ShiftRightArithmetic_BitcastResult_SpvBinaryBitGeneralTest_EmitExpression_0.spvasm.expected.ir.fxc.hlsl
deleted file mode 100644
index 1e2c9e2..0000000
--- a/test/tint/unittest/reader/spirv/SpvParserTest_ShiftRightArithmetic_BitcastResult_SpvBinaryBitGeneralTest_EmitExpression_0.spvasm.expected.ir.fxc.hlsl
+++ /dev/null
@@ -1,10 +0,0 @@
-SKIP: FAILED
-
-void main_1() {
-  uint x_1 = 0u;
-}
-
-void main() {
-  main_1();
-}
-
diff --git a/test/tint/unittest/reader/spirv/SpvParserTest_ShiftRightArithmetic_BitcastResult_SpvBinaryBitGeneralTest_EmitExpression_1.spvasm.expected.ir.fxc.hlsl b/test/tint/unittest/reader/spirv/SpvParserTest_ShiftRightArithmetic_BitcastResult_SpvBinaryBitGeneralTest_EmitExpression_1.spvasm.expected.ir.fxc.hlsl
deleted file mode 100644
index 08a65e5..0000000
--- a/test/tint/unittest/reader/spirv/SpvParserTest_ShiftRightArithmetic_BitcastResult_SpvBinaryBitGeneralTest_EmitExpression_1.spvasm.expected.ir.fxc.hlsl
+++ /dev/null
@@ -1,10 +0,0 @@
-SKIP: FAILED
-
-void main_1() {
-  uint2 x_1 = (0u).xx;
-}
-
-void main() {
-  main_1();
-}
-
diff --git a/test/tint/unittest/reader/spirv/SpvParserTest_ShiftRightLogical_Arg2Signed_SpvBinaryBitGeneralTest_EmitExpression_0.spvasm.expected.ir.fxc.hlsl b/test/tint/unittest/reader/spirv/SpvParserTest_ShiftRightLogical_Arg2Signed_SpvBinaryBitGeneralTest_EmitExpression_0.spvasm.expected.ir.fxc.hlsl
deleted file mode 100644
index 1e2c9e2..0000000
--- a/test/tint/unittest/reader/spirv/SpvParserTest_ShiftRightLogical_Arg2Signed_SpvBinaryBitGeneralTest_EmitExpression_0.spvasm.expected.ir.fxc.hlsl
+++ /dev/null
@@ -1,10 +0,0 @@
-SKIP: FAILED
-
-void main_1() {
-  uint x_1 = 0u;
-}
-
-void main() {
-  main_1();
-}
-
diff --git a/test/tint/unittest/reader/spirv/SpvParserTest_ShiftRightLogical_Arg2Signed_SpvBinaryBitGeneralTest_EmitExpression_1.spvasm.expected.ir.fxc.hlsl b/test/tint/unittest/reader/spirv/SpvParserTest_ShiftRightLogical_Arg2Signed_SpvBinaryBitGeneralTest_EmitExpression_1.spvasm.expected.ir.fxc.hlsl
deleted file mode 100644
index 7f7e19f..0000000
--- a/test/tint/unittest/reader/spirv/SpvParserTest_ShiftRightLogical_Arg2Signed_SpvBinaryBitGeneralTest_EmitExpression_1.spvasm.expected.ir.fxc.hlsl
+++ /dev/null
@@ -1,10 +0,0 @@
-SKIP: FAILED
-
-void main_1() {
-  int x_1 = 15;
-}
-
-void main() {
-  main_1();
-}
-
diff --git a/test/tint/unittest/reader/spirv/SpvParserTest_ShiftRightLogical_Arg2Signed_SpvBinaryBitGeneralTest_EmitExpression_2.spvasm.expected.ir.fxc.hlsl b/test/tint/unittest/reader/spirv/SpvParserTest_ShiftRightLogical_Arg2Signed_SpvBinaryBitGeneralTest_EmitExpression_2.spvasm.expected.ir.fxc.hlsl
deleted file mode 100644
index f8c98b0..0000000
--- a/test/tint/unittest/reader/spirv/SpvParserTest_ShiftRightLogical_Arg2Signed_SpvBinaryBitGeneralTest_EmitExpression_2.spvasm.expected.ir.fxc.hlsl
+++ /dev/null
@@ -1,10 +0,0 @@
-SKIP: FAILED
-
-void main_1() {
-  uint2 x_1 = uint2(5u, 10u);
-}
-
-void main() {
-  main_1();
-}
-
diff --git a/test/tint/unittest/reader/spirv/SpvParserTest_ShiftRightLogical_Arg2Signed_SpvBinaryBitGeneralTest_EmitExpression_3.spvasm.expected.ir.fxc.hlsl b/test/tint/unittest/reader/spirv/SpvParserTest_ShiftRightLogical_Arg2Signed_SpvBinaryBitGeneralTest_EmitExpression_3.spvasm.expected.ir.fxc.hlsl
deleted file mode 100644
index 7e72bd9..0000000
--- a/test/tint/unittest/reader/spirv/SpvParserTest_ShiftRightLogical_Arg2Signed_SpvBinaryBitGeneralTest_EmitExpression_3.spvasm.expected.ir.fxc.hlsl
+++ /dev/null
@@ -1,10 +0,0 @@
-SKIP: FAILED
-
-void main_1() {
-  int2 x_1 = int2(20, 15);
-}
-
-void main() {
-  main_1();
-}
-
diff --git a/test/tint/unittest/reader/spirv/SpvParserTest_ShiftRightLogical_Arg2Unsigned_SpvBinaryBitGeneralTest_EmitExpression_0.spvasm.expected.ir.fxc.hlsl b/test/tint/unittest/reader/spirv/SpvParserTest_ShiftRightLogical_Arg2Unsigned_SpvBinaryBitGeneralTest_EmitExpression_0.spvasm.expected.ir.fxc.hlsl
deleted file mode 100644
index 1e2c9e2..0000000
--- a/test/tint/unittest/reader/spirv/SpvParserTest_ShiftRightLogical_Arg2Unsigned_SpvBinaryBitGeneralTest_EmitExpression_0.spvasm.expected.ir.fxc.hlsl
+++ /dev/null
@@ -1,10 +0,0 @@
-SKIP: FAILED
-
-void main_1() {
-  uint x_1 = 0u;
-}
-
-void main() {
-  main_1();
-}
-
diff --git a/test/tint/unittest/reader/spirv/SpvParserTest_ShiftRightLogical_Arg2Unsigned_SpvBinaryBitGeneralTest_EmitExpression_1.spvasm.expected.ir.fxc.hlsl b/test/tint/unittest/reader/spirv/SpvParserTest_ShiftRightLogical_Arg2Unsigned_SpvBinaryBitGeneralTest_EmitExpression_1.spvasm.expected.ir.fxc.hlsl
deleted file mode 100644
index ae4836b..0000000
--- a/test/tint/unittest/reader/spirv/SpvParserTest_ShiftRightLogical_Arg2Unsigned_SpvBinaryBitGeneralTest_EmitExpression_1.spvasm.expected.ir.fxc.hlsl
+++ /dev/null
@@ -1,10 +0,0 @@
-SKIP: FAILED
-
-void main_1() {
-  int x_1 = 0;
-}
-
-void main() {
-  main_1();
-}
-
diff --git a/test/tint/unittest/reader/spirv/SpvParserTest_ShiftRightLogical_Arg2Unsigned_SpvBinaryBitGeneralTest_EmitExpression_2.spvasm.expected.ir.fxc.hlsl b/test/tint/unittest/reader/spirv/SpvParserTest_ShiftRightLogical_Arg2Unsigned_SpvBinaryBitGeneralTest_EmitExpression_2.spvasm.expected.ir.fxc.hlsl
deleted file mode 100644
index 08a65e5..0000000
--- a/test/tint/unittest/reader/spirv/SpvParserTest_ShiftRightLogical_Arg2Unsigned_SpvBinaryBitGeneralTest_EmitExpression_2.spvasm.expected.ir.fxc.hlsl
+++ /dev/null
@@ -1,10 +0,0 @@
-SKIP: FAILED
-
-void main_1() {
-  uint2 x_1 = (0u).xx;
-}
-
-void main() {
-  main_1();
-}
-
diff --git a/test/tint/unittest/reader/spirv/SpvParserTest_ShiftRightLogical_Arg2Unsigned_SpvBinaryBitGeneralTest_EmitExpression_3.spvasm.expected.ir.fxc.hlsl b/test/tint/unittest/reader/spirv/SpvParserTest_ShiftRightLogical_Arg2Unsigned_SpvBinaryBitGeneralTest_EmitExpression_3.spvasm.expected.ir.fxc.hlsl
deleted file mode 100644
index 7481f08..0000000
--- a/test/tint/unittest/reader/spirv/SpvParserTest_ShiftRightLogical_Arg2Unsigned_SpvBinaryBitGeneralTest_EmitExpression_3.spvasm.expected.ir.fxc.hlsl
+++ /dev/null
@@ -1,10 +0,0 @@
-SKIP: FAILED
-
-void main_1() {
-  int2 x_1 = (0).xx;
-}
-
-void main() {
-  main_1();
-}
-
diff --git a/test/tint/unittest/reader/spirv/SpvParserTest_ShiftRightLogical_BitcastResult_SpvBinaryBitGeneralTest_EmitExpression_0.spvasm.expected.ir.fxc.hlsl b/test/tint/unittest/reader/spirv/SpvParserTest_ShiftRightLogical_BitcastResult_SpvBinaryBitGeneralTest_EmitExpression_0.spvasm.expected.ir.fxc.hlsl
deleted file mode 100644
index ae4836b..0000000
--- a/test/tint/unittest/reader/spirv/SpvParserTest_ShiftRightLogical_BitcastResult_SpvBinaryBitGeneralTest_EmitExpression_0.spvasm.expected.ir.fxc.hlsl
+++ /dev/null
@@ -1,10 +0,0 @@
-SKIP: FAILED
-
-void main_1() {
-  int x_1 = 0;
-}
-
-void main() {
-  main_1();
-}
-
diff --git a/test/tint/unittest/reader/spirv/SpvParserTest_ShiftRightLogical_BitcastResult_SpvBinaryBitGeneralTest_EmitExpression_1.spvasm.expected.ir.fxc.hlsl b/test/tint/unittest/reader/spirv/SpvParserTest_ShiftRightLogical_BitcastResult_SpvBinaryBitGeneralTest_EmitExpression_1.spvasm.expected.ir.fxc.hlsl
deleted file mode 100644
index 7481f08..0000000
--- a/test/tint/unittest/reader/spirv/SpvParserTest_ShiftRightLogical_BitcastResult_SpvBinaryBitGeneralTest_EmitExpression_1.spvasm.expected.ir.fxc.hlsl
+++ /dev/null
@@ -1,10 +0,0 @@
-SKIP: FAILED
-
-void main_1() {
-  int2 x_1 = (0).xx;
-}
-
-void main() {
-  main_1();
-}
-
diff --git a/test/tint/unittest/reader/spirv/SpvParserTest_UDiv_SpvBinaryArithTest_EmitExpression_0.spvasm.expected.ir.fxc.hlsl b/test/tint/unittest/reader/spirv/SpvParserTest_UDiv_SpvBinaryArithTest_EmitExpression_0.spvasm.expected.ir.fxc.hlsl
deleted file mode 100644
index 1e2c9e2..0000000
--- a/test/tint/unittest/reader/spirv/SpvParserTest_UDiv_SpvBinaryArithTest_EmitExpression_0.spvasm.expected.ir.fxc.hlsl
+++ /dev/null
@@ -1,10 +0,0 @@
-SKIP: FAILED
-
-void main_1() {
-  uint x_1 = 0u;
-}
-
-void main() {
-  main_1();
-}
-
diff --git a/test/tint/unittest/reader/spirv/SpvParserTest_UDiv_SpvBinaryArithTest_EmitExpression_1.spvasm.expected.ir.fxc.hlsl b/test/tint/unittest/reader/spirv/SpvParserTest_UDiv_SpvBinaryArithTest_EmitExpression_1.spvasm.expected.ir.fxc.hlsl
deleted file mode 100644
index 29b9d35..0000000
--- a/test/tint/unittest/reader/spirv/SpvParserTest_UDiv_SpvBinaryArithTest_EmitExpression_1.spvasm.expected.ir.fxc.hlsl
+++ /dev/null
@@ -1,10 +0,0 @@
-SKIP: FAILED
-
-void main_1() {
-  uint2 x_1 = uint2(0u, 2u);
-}
-
-void main() {
-  main_1();
-}
-
diff --git a/test/tint/unittest/reader/spirv/SpvParserTest_UGreaterThanEqual_SpvBinaryLogicalTest_EmitExpression_0.spvasm.expected.ir.fxc.hlsl b/test/tint/unittest/reader/spirv/SpvParserTest_UGreaterThanEqual_SpvBinaryLogicalTest_EmitExpression_0.spvasm.expected.ir.fxc.hlsl
deleted file mode 100644
index 969210b..0000000
--- a/test/tint/unittest/reader/spirv/SpvParserTest_UGreaterThanEqual_SpvBinaryLogicalTest_EmitExpression_0.spvasm.expected.ir.fxc.hlsl
+++ /dev/null
@@ -1,10 +0,0 @@
-SKIP: FAILED
-
-void main_1() {
-  bool x_1 = false;
-}
-
-void main() {
-  main_1();
-}
-
diff --git a/test/tint/unittest/reader/spirv/SpvParserTest_UGreaterThanEqual_SpvBinaryLogicalTest_EmitExpression_1.spvasm.expected.ir.fxc.hlsl b/test/tint/unittest/reader/spirv/SpvParserTest_UGreaterThanEqual_SpvBinaryLogicalTest_EmitExpression_1.spvasm.expected.ir.fxc.hlsl
deleted file mode 100644
index 00baddd..0000000
--- a/test/tint/unittest/reader/spirv/SpvParserTest_UGreaterThanEqual_SpvBinaryLogicalTest_EmitExpression_1.spvasm.expected.ir.fxc.hlsl
+++ /dev/null
@@ -1,10 +0,0 @@
-SKIP: FAILED
-
-void main_1() {
-  bool x_1 = true;
-}
-
-void main() {
-  main_1();
-}
-
diff --git a/test/tint/unittest/reader/spirv/SpvParserTest_UGreaterThanEqual_SpvBinaryLogicalTest_EmitExpression_2.spvasm.expected.ir.fxc.hlsl b/test/tint/unittest/reader/spirv/SpvParserTest_UGreaterThanEqual_SpvBinaryLogicalTest_EmitExpression_2.spvasm.expected.ir.fxc.hlsl
deleted file mode 100644
index 969210b..0000000
--- a/test/tint/unittest/reader/spirv/SpvParserTest_UGreaterThanEqual_SpvBinaryLogicalTest_EmitExpression_2.spvasm.expected.ir.fxc.hlsl
+++ /dev/null
@@ -1,10 +0,0 @@
-SKIP: FAILED
-
-void main_1() {
-  bool x_1 = false;
-}
-
-void main() {
-  main_1();
-}
-
diff --git a/test/tint/unittest/reader/spirv/SpvParserTest_UGreaterThanEqual_SpvBinaryLogicalTest_EmitExpression_3.spvasm.expected.ir.fxc.hlsl b/test/tint/unittest/reader/spirv/SpvParserTest_UGreaterThanEqual_SpvBinaryLogicalTest_EmitExpression_3.spvasm.expected.ir.fxc.hlsl
deleted file mode 100644
index b3adcc7..0000000
--- a/test/tint/unittest/reader/spirv/SpvParserTest_UGreaterThanEqual_SpvBinaryLogicalTest_EmitExpression_3.spvasm.expected.ir.fxc.hlsl
+++ /dev/null
@@ -1,10 +0,0 @@
-SKIP: FAILED
-
-void main_1() {
-  bool2 x_1 = bool2(false, true);
-}
-
-void main() {
-  main_1();
-}
-
diff --git a/test/tint/unittest/reader/spirv/SpvParserTest_UGreaterThanEqual_SpvBinaryLogicalTest_EmitExpression_4.spvasm.expected.ir.fxc.hlsl b/test/tint/unittest/reader/spirv/SpvParserTest_UGreaterThanEqual_SpvBinaryLogicalTest_EmitExpression_4.spvasm.expected.ir.fxc.hlsl
deleted file mode 100644
index 311dd17..0000000
--- a/test/tint/unittest/reader/spirv/SpvParserTest_UGreaterThanEqual_SpvBinaryLogicalTest_EmitExpression_4.spvasm.expected.ir.fxc.hlsl
+++ /dev/null
@@ -1,10 +0,0 @@
-SKIP: FAILED
-
-void main_1() {
-  bool2 x_1 = (true).xx;
-}
-
-void main() {
-  main_1();
-}
-
diff --git a/test/tint/unittest/reader/spirv/SpvParserTest_UGreaterThanEqual_SpvBinaryLogicalTest_EmitExpression_5.spvasm.expected.ir.fxc.hlsl b/test/tint/unittest/reader/spirv/SpvParserTest_UGreaterThanEqual_SpvBinaryLogicalTest_EmitExpression_5.spvasm.expected.ir.fxc.hlsl
deleted file mode 100644
index a217ea8..0000000
--- a/test/tint/unittest/reader/spirv/SpvParserTest_UGreaterThanEqual_SpvBinaryLogicalTest_EmitExpression_5.spvasm.expected.ir.fxc.hlsl
+++ /dev/null
@@ -1,10 +0,0 @@
-SKIP: FAILED
-
-void main_1() {
-  bool2 x_1 = (false).xx;
-}
-
-void main() {
-  main_1();
-}
-
diff --git a/test/tint/unittest/reader/spirv/SpvParserTest_UGreaterThan_SpvBinaryLogicalTest_EmitExpression_0.spvasm.expected.ir.fxc.hlsl b/test/tint/unittest/reader/spirv/SpvParserTest_UGreaterThan_SpvBinaryLogicalTest_EmitExpression_0.spvasm.expected.ir.fxc.hlsl
deleted file mode 100644
index 969210b..0000000
--- a/test/tint/unittest/reader/spirv/SpvParserTest_UGreaterThan_SpvBinaryLogicalTest_EmitExpression_0.spvasm.expected.ir.fxc.hlsl
+++ /dev/null
@@ -1,10 +0,0 @@
-SKIP: FAILED
-
-void main_1() {
-  bool x_1 = false;
-}
-
-void main() {
-  main_1();
-}
-
diff --git a/test/tint/unittest/reader/spirv/SpvParserTest_UGreaterThan_SpvBinaryLogicalTest_EmitExpression_1.spvasm.expected.ir.fxc.hlsl b/test/tint/unittest/reader/spirv/SpvParserTest_UGreaterThan_SpvBinaryLogicalTest_EmitExpression_1.spvasm.expected.ir.fxc.hlsl
deleted file mode 100644
index 00baddd..0000000
--- a/test/tint/unittest/reader/spirv/SpvParserTest_UGreaterThan_SpvBinaryLogicalTest_EmitExpression_1.spvasm.expected.ir.fxc.hlsl
+++ /dev/null
@@ -1,10 +0,0 @@
-SKIP: FAILED
-
-void main_1() {
-  bool x_1 = true;
-}
-
-void main() {
-  main_1();
-}
-
diff --git a/test/tint/unittest/reader/spirv/SpvParserTest_UGreaterThan_SpvBinaryLogicalTest_EmitExpression_2.spvasm.expected.ir.fxc.hlsl b/test/tint/unittest/reader/spirv/SpvParserTest_UGreaterThan_SpvBinaryLogicalTest_EmitExpression_2.spvasm.expected.ir.fxc.hlsl
deleted file mode 100644
index 969210b..0000000
--- a/test/tint/unittest/reader/spirv/SpvParserTest_UGreaterThan_SpvBinaryLogicalTest_EmitExpression_2.spvasm.expected.ir.fxc.hlsl
+++ /dev/null
@@ -1,10 +0,0 @@
-SKIP: FAILED
-
-void main_1() {
-  bool x_1 = false;
-}
-
-void main() {
-  main_1();
-}
-
diff --git a/test/tint/unittest/reader/spirv/SpvParserTest_UGreaterThan_SpvBinaryLogicalTest_EmitExpression_3.spvasm.expected.ir.fxc.hlsl b/test/tint/unittest/reader/spirv/SpvParserTest_UGreaterThan_SpvBinaryLogicalTest_EmitExpression_3.spvasm.expected.ir.fxc.hlsl
deleted file mode 100644
index b3adcc7..0000000
--- a/test/tint/unittest/reader/spirv/SpvParserTest_UGreaterThan_SpvBinaryLogicalTest_EmitExpression_3.spvasm.expected.ir.fxc.hlsl
+++ /dev/null
@@ -1,10 +0,0 @@
-SKIP: FAILED
-
-void main_1() {
-  bool2 x_1 = bool2(false, true);
-}
-
-void main() {
-  main_1();
-}
-
diff --git a/test/tint/unittest/reader/spirv/SpvParserTest_UGreaterThan_SpvBinaryLogicalTest_EmitExpression_4.spvasm.expected.ir.fxc.hlsl b/test/tint/unittest/reader/spirv/SpvParserTest_UGreaterThan_SpvBinaryLogicalTest_EmitExpression_4.spvasm.expected.ir.fxc.hlsl
deleted file mode 100644
index 311dd17..0000000
--- a/test/tint/unittest/reader/spirv/SpvParserTest_UGreaterThan_SpvBinaryLogicalTest_EmitExpression_4.spvasm.expected.ir.fxc.hlsl
+++ /dev/null
@@ -1,10 +0,0 @@
-SKIP: FAILED
-
-void main_1() {
-  bool2 x_1 = (true).xx;
-}
-
-void main() {
-  main_1();
-}
-
diff --git a/test/tint/unittest/reader/spirv/SpvParserTest_UGreaterThan_SpvBinaryLogicalTest_EmitExpression_5.spvasm.expected.ir.fxc.hlsl b/test/tint/unittest/reader/spirv/SpvParserTest_UGreaterThan_SpvBinaryLogicalTest_EmitExpression_5.spvasm.expected.ir.fxc.hlsl
deleted file mode 100644
index a217ea8..0000000
--- a/test/tint/unittest/reader/spirv/SpvParserTest_UGreaterThan_SpvBinaryLogicalTest_EmitExpression_5.spvasm.expected.ir.fxc.hlsl
+++ /dev/null
@@ -1,10 +0,0 @@
-SKIP: FAILED
-
-void main_1() {
-  bool2 x_1 = (false).xx;
-}
-
-void main() {
-  main_1();
-}
-
diff --git a/test/tint/unittest/reader/spirv/SpvParserTest_ULessThanEqual_SpvBinaryLogicalTest_EmitExpression_0.spvasm.expected.ir.fxc.hlsl b/test/tint/unittest/reader/spirv/SpvParserTest_ULessThanEqual_SpvBinaryLogicalTest_EmitExpression_0.spvasm.expected.ir.fxc.hlsl
deleted file mode 100644
index 00baddd..0000000
--- a/test/tint/unittest/reader/spirv/SpvParserTest_ULessThanEqual_SpvBinaryLogicalTest_EmitExpression_0.spvasm.expected.ir.fxc.hlsl
+++ /dev/null
@@ -1,10 +0,0 @@
-SKIP: FAILED
-
-void main_1() {
-  bool x_1 = true;
-}
-
-void main() {
-  main_1();
-}
-
diff --git a/test/tint/unittest/reader/spirv/SpvParserTest_ULessThanEqual_SpvBinaryLogicalTest_EmitExpression_1.spvasm.expected.ir.fxc.hlsl b/test/tint/unittest/reader/spirv/SpvParserTest_ULessThanEqual_SpvBinaryLogicalTest_EmitExpression_1.spvasm.expected.ir.fxc.hlsl
deleted file mode 100644
index 969210b..0000000
--- a/test/tint/unittest/reader/spirv/SpvParserTest_ULessThanEqual_SpvBinaryLogicalTest_EmitExpression_1.spvasm.expected.ir.fxc.hlsl
+++ /dev/null
@@ -1,10 +0,0 @@
-SKIP: FAILED
-
-void main_1() {
-  bool x_1 = false;
-}
-
-void main() {
-  main_1();
-}
-
diff --git a/test/tint/unittest/reader/spirv/SpvParserTest_ULessThanEqual_SpvBinaryLogicalTest_EmitExpression_2.spvasm.expected.ir.fxc.hlsl b/test/tint/unittest/reader/spirv/SpvParserTest_ULessThanEqual_SpvBinaryLogicalTest_EmitExpression_2.spvasm.expected.ir.fxc.hlsl
deleted file mode 100644
index 00baddd..0000000
--- a/test/tint/unittest/reader/spirv/SpvParserTest_ULessThanEqual_SpvBinaryLogicalTest_EmitExpression_2.spvasm.expected.ir.fxc.hlsl
+++ /dev/null
@@ -1,10 +0,0 @@
-SKIP: FAILED
-
-void main_1() {
-  bool x_1 = true;
-}
-
-void main() {
-  main_1();
-}
-
diff --git a/test/tint/unittest/reader/spirv/SpvParserTest_ULessThanEqual_SpvBinaryLogicalTest_EmitExpression_3.spvasm.expected.ir.fxc.hlsl b/test/tint/unittest/reader/spirv/SpvParserTest_ULessThanEqual_SpvBinaryLogicalTest_EmitExpression_3.spvasm.expected.ir.fxc.hlsl
deleted file mode 100644
index fecb7b9..0000000
--- a/test/tint/unittest/reader/spirv/SpvParserTest_ULessThanEqual_SpvBinaryLogicalTest_EmitExpression_3.spvasm.expected.ir.fxc.hlsl
+++ /dev/null
@@ -1,10 +0,0 @@
-SKIP: FAILED
-
-void main_1() {
-  bool2 x_1 = bool2(true, false);
-}
-
-void main() {
-  main_1();
-}
-
diff --git a/test/tint/unittest/reader/spirv/SpvParserTest_ULessThanEqual_SpvBinaryLogicalTest_EmitExpression_4.spvasm.expected.ir.fxc.hlsl b/test/tint/unittest/reader/spirv/SpvParserTest_ULessThanEqual_SpvBinaryLogicalTest_EmitExpression_4.spvasm.expected.ir.fxc.hlsl
deleted file mode 100644
index a217ea8..0000000
--- a/test/tint/unittest/reader/spirv/SpvParserTest_ULessThanEqual_SpvBinaryLogicalTest_EmitExpression_4.spvasm.expected.ir.fxc.hlsl
+++ /dev/null
@@ -1,10 +0,0 @@
-SKIP: FAILED
-
-void main_1() {
-  bool2 x_1 = (false).xx;
-}
-
-void main() {
-  main_1();
-}
-
diff --git a/test/tint/unittest/reader/spirv/SpvParserTest_ULessThanEqual_SpvBinaryLogicalTest_EmitExpression_5.spvasm.expected.ir.fxc.hlsl b/test/tint/unittest/reader/spirv/SpvParserTest_ULessThanEqual_SpvBinaryLogicalTest_EmitExpression_5.spvasm.expected.ir.fxc.hlsl
deleted file mode 100644
index 311dd17..0000000
--- a/test/tint/unittest/reader/spirv/SpvParserTest_ULessThanEqual_SpvBinaryLogicalTest_EmitExpression_5.spvasm.expected.ir.fxc.hlsl
+++ /dev/null
@@ -1,10 +0,0 @@
-SKIP: FAILED
-
-void main_1() {
-  bool2 x_1 = (true).xx;
-}
-
-void main() {
-  main_1();
-}
-
diff --git a/test/tint/unittest/reader/spirv/SpvParserTest_ULessThan_SpvBinaryLogicalTest_EmitExpression_0.spvasm.expected.ir.fxc.hlsl b/test/tint/unittest/reader/spirv/SpvParserTest_ULessThan_SpvBinaryLogicalTest_EmitExpression_0.spvasm.expected.ir.fxc.hlsl
deleted file mode 100644
index 00baddd..0000000
--- a/test/tint/unittest/reader/spirv/SpvParserTest_ULessThan_SpvBinaryLogicalTest_EmitExpression_0.spvasm.expected.ir.fxc.hlsl
+++ /dev/null
@@ -1,10 +0,0 @@
-SKIP: FAILED
-
-void main_1() {
-  bool x_1 = true;
-}
-
-void main() {
-  main_1();
-}
-
diff --git a/test/tint/unittest/reader/spirv/SpvParserTest_ULessThan_SpvBinaryLogicalTest_EmitExpression_1.spvasm.expected.ir.fxc.hlsl b/test/tint/unittest/reader/spirv/SpvParserTest_ULessThan_SpvBinaryLogicalTest_EmitExpression_1.spvasm.expected.ir.fxc.hlsl
deleted file mode 100644
index 969210b..0000000
--- a/test/tint/unittest/reader/spirv/SpvParserTest_ULessThan_SpvBinaryLogicalTest_EmitExpression_1.spvasm.expected.ir.fxc.hlsl
+++ /dev/null
@@ -1,10 +0,0 @@
-SKIP: FAILED
-
-void main_1() {
-  bool x_1 = false;
-}
-
-void main() {
-  main_1();
-}
-
diff --git a/test/tint/unittest/reader/spirv/SpvParserTest_ULessThan_SpvBinaryLogicalTest_EmitExpression_2.spvasm.expected.ir.fxc.hlsl b/test/tint/unittest/reader/spirv/SpvParserTest_ULessThan_SpvBinaryLogicalTest_EmitExpression_2.spvasm.expected.ir.fxc.hlsl
deleted file mode 100644
index 00baddd..0000000
--- a/test/tint/unittest/reader/spirv/SpvParserTest_ULessThan_SpvBinaryLogicalTest_EmitExpression_2.spvasm.expected.ir.fxc.hlsl
+++ /dev/null
@@ -1,10 +0,0 @@
-SKIP: FAILED
-
-void main_1() {
-  bool x_1 = true;
-}
-
-void main() {
-  main_1();
-}
-
diff --git a/test/tint/unittest/reader/spirv/SpvParserTest_ULessThan_SpvBinaryLogicalTest_EmitExpression_3.spvasm.expected.ir.fxc.hlsl b/test/tint/unittest/reader/spirv/SpvParserTest_ULessThan_SpvBinaryLogicalTest_EmitExpression_3.spvasm.expected.ir.fxc.hlsl
deleted file mode 100644
index fecb7b9..0000000
--- a/test/tint/unittest/reader/spirv/SpvParserTest_ULessThan_SpvBinaryLogicalTest_EmitExpression_3.spvasm.expected.ir.fxc.hlsl
+++ /dev/null
@@ -1,10 +0,0 @@
-SKIP: FAILED
-
-void main_1() {
-  bool2 x_1 = bool2(true, false);
-}
-
-void main() {
-  main_1();
-}
-
diff --git a/test/tint/unittest/reader/spirv/SpvParserTest_ULessThan_SpvBinaryLogicalTest_EmitExpression_4.spvasm.expected.ir.fxc.hlsl b/test/tint/unittest/reader/spirv/SpvParserTest_ULessThan_SpvBinaryLogicalTest_EmitExpression_4.spvasm.expected.ir.fxc.hlsl
deleted file mode 100644
index a217ea8..0000000
--- a/test/tint/unittest/reader/spirv/SpvParserTest_ULessThan_SpvBinaryLogicalTest_EmitExpression_4.spvasm.expected.ir.fxc.hlsl
+++ /dev/null
@@ -1,10 +0,0 @@
-SKIP: FAILED
-
-void main_1() {
-  bool2 x_1 = (false).xx;
-}
-
-void main() {
-  main_1();
-}
-
diff --git a/test/tint/unittest/reader/spirv/SpvParserTest_ULessThan_SpvBinaryLogicalTest_EmitExpression_5.spvasm.expected.ir.fxc.hlsl b/test/tint/unittest/reader/spirv/SpvParserTest_ULessThan_SpvBinaryLogicalTest_EmitExpression_5.spvasm.expected.ir.fxc.hlsl
deleted file mode 100644
index 311dd17..0000000
--- a/test/tint/unittest/reader/spirv/SpvParserTest_ULessThan_SpvBinaryLogicalTest_EmitExpression_5.spvasm.expected.ir.fxc.hlsl
+++ /dev/null
@@ -1,10 +0,0 @@
-SKIP: FAILED
-
-void main_1() {
-  bool2 x_1 = (true).xx;
-}
-
-void main() {
-  main_1();
-}
-
diff --git a/test/tint/unittest/reader/spirv/SpvParserTest_UMod_SpvBinaryArithTest_EmitExpression_0.spvasm.expected.ir.fxc.hlsl b/test/tint/unittest/reader/spirv/SpvParserTest_UMod_SpvBinaryArithTest_EmitExpression_0.spvasm.expected.ir.fxc.hlsl
deleted file mode 100644
index eaee1f0..0000000
--- a/test/tint/unittest/reader/spirv/SpvParserTest_UMod_SpvBinaryArithTest_EmitExpression_0.spvasm.expected.ir.fxc.hlsl
+++ /dev/null
@@ -1,10 +0,0 @@
-SKIP: FAILED
-
-void main_1() {
-  uint x_1 = 10u;
-}
-
-void main() {
-  main_1();
-}
-
diff --git a/test/tint/unittest/reader/spirv/SpvParserTest_UMod_SpvBinaryArithTest_EmitExpression_1.spvasm.expected.ir.fxc.hlsl b/test/tint/unittest/reader/spirv/SpvParserTest_UMod_SpvBinaryArithTest_EmitExpression_1.spvasm.expected.ir.fxc.hlsl
deleted file mode 100644
index 9c49d3e..0000000
--- a/test/tint/unittest/reader/spirv/SpvParserTest_UMod_SpvBinaryArithTest_EmitExpression_1.spvasm.expected.ir.fxc.hlsl
+++ /dev/null
@@ -1,10 +0,0 @@
-SKIP: FAILED
-
-void main_1() {
-  uint2 x_1 = uint2(10u, 0u);
-}
-
-void main() {
-  main_1();
-}
-
diff --git a/test/tint/unittest/reader/spirv/SpvParserTest_VectorExtractDynamic_SignedIndex.spvasm.expected.ir.fxc.hlsl b/test/tint/unittest/reader/spirv/SpvParserTest_VectorExtractDynamic_SignedIndex.spvasm.expected.ir.fxc.hlsl
deleted file mode 100644
index 031dc0b..0000000
--- a/test/tint/unittest/reader/spirv/SpvParserTest_VectorExtractDynamic_SignedIndex.spvasm.expected.ir.fxc.hlsl
+++ /dev/null
@@ -1,11 +0,0 @@
-SKIP: FAILED
-
-void main_1() {
-  uint x_10 = 4u;
-}
-
-[numthreads(1, 1, 1)]
-void main() {
-  main_1();
-}
-
diff --git a/test/tint/unittest/reader/spirv/SpvParserTest_VectorExtractDynamic_UnsignedIndex.spvasm.expected.ir.fxc.hlsl b/test/tint/unittest/reader/spirv/SpvParserTest_VectorExtractDynamic_UnsignedIndex.spvasm.expected.ir.fxc.hlsl
deleted file mode 100644
index 031dc0b..0000000
--- a/test/tint/unittest/reader/spirv/SpvParserTest_VectorExtractDynamic_UnsignedIndex.spvasm.expected.ir.fxc.hlsl
+++ /dev/null
@@ -1,11 +0,0 @@
-SKIP: FAILED
-
-void main_1() {
-  uint x_10 = 4u;
-}
-
-[numthreads(1, 1, 1)]
-void main() {
-  main_1();
-}
-
diff --git a/test/tint/unittest/reader/spirv/SpvParserTest_VectorInsertDynamic_Sample.spvasm.expected.ir.dxc.hlsl b/test/tint/unittest/reader/spirv/SpvParserTest_VectorInsertDynamic_Sample.spvasm.expected.ir.dxc.hlsl
deleted file mode 100644
index c0935cc..0000000
--- a/test/tint/unittest/reader/spirv/SpvParserTest_VectorInsertDynamic_Sample.spvasm.expected.ir.dxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:198 internal compiler error: Switch() matched no cases. Type: tint::core::ir::StoreVectorElement
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/unittest/reader/spirv/SpvParserTest_VectorInsertDynamic_Sample.spvasm.expected.ir.fxc.hlsl b/test/tint/unittest/reader/spirv/SpvParserTest_VectorInsertDynamic_Sample.spvasm.expected.ir.fxc.hlsl
deleted file mode 100644
index c0935cc..0000000
--- a/test/tint/unittest/reader/spirv/SpvParserTest_VectorInsertDynamic_Sample.spvasm.expected.ir.fxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:198 internal compiler error: Switch() matched no cases. Type: tint::core::ir::StoreVectorElement
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/unittest/reader/spirv/SpvParserTest_VectorShuffle_ConstantOperands_AllOnesMapToNull.spvasm.expected.ir.fxc.hlsl b/test/tint/unittest/reader/spirv/SpvParserTest_VectorShuffle_ConstantOperands_AllOnesMapToNull.spvasm.expected.ir.fxc.hlsl
deleted file mode 100644
index 2a59bff..0000000
--- a/test/tint/unittest/reader/spirv/SpvParserTest_VectorShuffle_ConstantOperands_AllOnesMapToNull.spvasm.expected.ir.fxc.hlsl
+++ /dev/null
@@ -1,11 +0,0 @@
-SKIP: FAILED
-
-void main_1() {
-  uint2 x_10 = uint2(4u, 3u);
-}
-
-[numthreads(1, 1, 1)]
-void main() {
-  main_1();
-}
-
diff --git a/test/tint/unittest/reader/spirv/SpvParserTest_VectorShuffle_ConstantOperands_UseBoth.spvasm.expected.ir.fxc.hlsl b/test/tint/unittest/reader/spirv/SpvParserTest_VectorShuffle_ConstantOperands_UseBoth.spvasm.expected.ir.fxc.hlsl
deleted file mode 100644
index a47c4a4..0000000
--- a/test/tint/unittest/reader/spirv/SpvParserTest_VectorShuffle_ConstantOperands_UseBoth.spvasm.expected.ir.fxc.hlsl
+++ /dev/null
@@ -1,11 +0,0 @@
-SKIP: FAILED
-
-void main_1() {
-  uint4 x_10 = uint4(3u, 4u, 4u, 3u);
-}
-
-[numthreads(1, 1, 1)]
-void main() {
-  main_1();
-}
-
diff --git a/test/tint/unittest/reader/spirv/SpvParserTest_VectorShuffle_FunctionScopeOperands_UseBoth.spvasm.expected.ir.fxc.hlsl b/test/tint/unittest/reader/spirv/SpvParserTest_VectorShuffle_FunctionScopeOperands_UseBoth.spvasm.expected.ir.fxc.hlsl
deleted file mode 100644
index 999ea80..0000000
--- a/test/tint/unittest/reader/spirv/SpvParserTest_VectorShuffle_FunctionScopeOperands_UseBoth.spvasm.expected.ir.fxc.hlsl
+++ /dev/null
@@ -1,11 +0,0 @@
-SKIP: FAILED
-
-void main_1() {
-  uint4 x_10 = uint4(7u, 7u, 4u, 3u);
-}
-
-[numthreads(1, 1, 1)]
-void main() {
-  main_1();
-}
-
diff --git a/test/tint/unittest/reader/spirv/SpvUnaryArithTest_FNegate_Scalar.spvasm.expected.ir.fxc.hlsl b/test/tint/unittest/reader/spirv/SpvUnaryArithTest_FNegate_Scalar.spvasm.expected.ir.fxc.hlsl
deleted file mode 100644
index 61774fc..0000000
--- a/test/tint/unittest/reader/spirv/SpvUnaryArithTest_FNegate_Scalar.spvasm.expected.ir.fxc.hlsl
+++ /dev/null
@@ -1,10 +0,0 @@
-SKIP: FAILED
-
-void main_1() {
-  float x_1 = -50.0f;
-}
-
-void main() {
-  main_1();
-}
-
diff --git a/test/tint/unittest/reader/spirv/SpvUnaryArithTest_FNegate_Vector.spvasm.expected.ir.fxc.hlsl b/test/tint/unittest/reader/spirv/SpvUnaryArithTest_FNegate_Vector.spvasm.expected.ir.fxc.hlsl
deleted file mode 100644
index 433a80f..0000000
--- a/test/tint/unittest/reader/spirv/SpvUnaryArithTest_FNegate_Vector.spvasm.expected.ir.fxc.hlsl
+++ /dev/null
@@ -1,10 +0,0 @@
-SKIP: FAILED
-
-void main_1() {
-  float2 x_1 = float2(-50.0f, -60.0f);
-}
-
-void main() {
-  main_1();
-}
-
diff --git a/test/tint/unittest/reader/spirv/SpvUnaryArithTest_SNegate_Int_Int.spvasm.expected.ir.fxc.hlsl b/test/tint/unittest/reader/spirv/SpvUnaryArithTest_SNegate_Int_Int.spvasm.expected.ir.fxc.hlsl
deleted file mode 100644
index 463f4ef..0000000
--- a/test/tint/unittest/reader/spirv/SpvUnaryArithTest_SNegate_Int_Int.spvasm.expected.ir.fxc.hlsl
+++ /dev/null
@@ -1,10 +0,0 @@
-SKIP: FAILED
-
-void main_1() {
-  int x_1 = -30;
-}
-
-void main() {
-  main_1();
-}
-
diff --git a/test/tint/unittest/reader/spirv/SpvUnaryArithTest_SNegate_Int_Uint.spvasm.expected.ir.fxc.hlsl b/test/tint/unittest/reader/spirv/SpvUnaryArithTest_SNegate_Int_Uint.spvasm.expected.ir.fxc.hlsl
deleted file mode 100644
index 938ad1a..0000000
--- a/test/tint/unittest/reader/spirv/SpvUnaryArithTest_SNegate_Int_Uint.spvasm.expected.ir.fxc.hlsl
+++ /dev/null
@@ -1,10 +0,0 @@
-SKIP: FAILED
-
-void main_1() {
-  int x_1 = -10;
-}
-
-void main() {
-  main_1();
-}
-
diff --git a/test/tint/unittest/reader/spirv/SpvUnaryArithTest_SNegate_SignedVec_SignedVec.spvasm.expected.ir.fxc.hlsl b/test/tint/unittest/reader/spirv/SpvUnaryArithTest_SNegate_SignedVec_SignedVec.spvasm.expected.ir.fxc.hlsl
deleted file mode 100644
index 9c20cff..0000000
--- a/test/tint/unittest/reader/spirv/SpvUnaryArithTest_SNegate_SignedVec_SignedVec.spvasm.expected.ir.fxc.hlsl
+++ /dev/null
@@ -1,10 +0,0 @@
-SKIP: FAILED
-
-void main_1() {
-  int2 x_1 = int2(-30, -40);
-}
-
-void main() {
-  main_1();
-}
-
diff --git a/test/tint/unittest/reader/spirv/SpvUnaryArithTest_SNegate_SignedVec_UnsignedVec.spvasm.expected.ir.fxc.hlsl b/test/tint/unittest/reader/spirv/SpvUnaryArithTest_SNegate_SignedVec_UnsignedVec.spvasm.expected.ir.fxc.hlsl
deleted file mode 100644
index 5d5a167..0000000
--- a/test/tint/unittest/reader/spirv/SpvUnaryArithTest_SNegate_SignedVec_UnsignedVec.spvasm.expected.ir.fxc.hlsl
+++ /dev/null
@@ -1,10 +0,0 @@
-SKIP: FAILED
-
-void main_1() {
-  int2 x_1 = int2(-10, -20);
-}
-
-void main() {
-  main_1();
-}
-
diff --git a/test/tint/unittest/reader/spirv/SpvUnaryArithTest_SNegate_Uint_Int.spvasm.expected.ir.fxc.hlsl b/test/tint/unittest/reader/spirv/SpvUnaryArithTest_SNegate_Uint_Int.spvasm.expected.ir.fxc.hlsl
deleted file mode 100644
index ffd0837..0000000
--- a/test/tint/unittest/reader/spirv/SpvUnaryArithTest_SNegate_Uint_Int.spvasm.expected.ir.fxc.hlsl
+++ /dev/null
@@ -1,10 +0,0 @@
-SKIP: FAILED
-
-void main_1() {
-  uint x_1 = 4294967266u;
-}
-
-void main() {
-  main_1();
-}
-
diff --git a/test/tint/unittest/reader/spirv/SpvUnaryArithTest_SNegate_Uint_Uint.spvasm.expected.ir.fxc.hlsl b/test/tint/unittest/reader/spirv/SpvUnaryArithTest_SNegate_Uint_Uint.spvasm.expected.ir.fxc.hlsl
deleted file mode 100644
index 2e2d9a1..0000000
--- a/test/tint/unittest/reader/spirv/SpvUnaryArithTest_SNegate_Uint_Uint.spvasm.expected.ir.fxc.hlsl
+++ /dev/null
@@ -1,10 +0,0 @@
-SKIP: FAILED
-
-void main_1() {
-  uint x_1 = 4294967286u;
-}
-
-void main() {
-  main_1();
-}
-
diff --git a/test/tint/unittest/reader/spirv/SpvUnaryArithTest_SNegate_UnsignedVec_SignedVec.spvasm.expected.ir.fxc.hlsl b/test/tint/unittest/reader/spirv/SpvUnaryArithTest_SNegate_UnsignedVec_SignedVec.spvasm.expected.ir.fxc.hlsl
deleted file mode 100644
index a56f585..0000000
--- a/test/tint/unittest/reader/spirv/SpvUnaryArithTest_SNegate_UnsignedVec_SignedVec.spvasm.expected.ir.fxc.hlsl
+++ /dev/null
@@ -1,10 +0,0 @@
-SKIP: FAILED
-
-void main_1() {
-  uint2 x_1 = uint2(4294967266u, 4294967256u);
-}
-
-void main() {
-  main_1();
-}
-
diff --git a/test/tint/unittest/reader/spirv/SpvUnaryArithTest_SNegate_UnsignedVec_UnsignedVec.spvasm.expected.ir.fxc.hlsl b/test/tint/unittest/reader/spirv/SpvUnaryArithTest_SNegate_UnsignedVec_UnsignedVec.spvasm.expected.ir.fxc.hlsl
deleted file mode 100644
index 0be48e6..0000000
--- a/test/tint/unittest/reader/spirv/SpvUnaryArithTest_SNegate_UnsignedVec_UnsignedVec.spvasm.expected.ir.fxc.hlsl
+++ /dev/null
@@ -1,10 +0,0 @@
-SKIP: FAILED
-
-void main_1() {
-  uint2 x_1 = uint2(4294967286u, 4294967276u);
-}
-
-void main() {
-  main_1();
-}
-
diff --git a/test/tint/unittest/reader/spirv/SpvUnaryArithTest_Transpose_2x2.spvasm.expected.ir.fxc.hlsl b/test/tint/unittest/reader/spirv/SpvUnaryArithTest_Transpose_2x2.spvasm.expected.ir.fxc.hlsl
deleted file mode 100644
index 2abca91..0000000
--- a/test/tint/unittest/reader/spirv/SpvUnaryArithTest_Transpose_2x2.spvasm.expected.ir.fxc.hlsl
+++ /dev/null
@@ -1,10 +0,0 @@
-SKIP: FAILED
-
-void main_1() {
-  float2x2 x_2 = float2x2(float2(50.0f, 60.0f), float2(60.0f, 50.0f));
-}
-
-void main() {
-  main_1();
-}
-
diff --git a/test/tint/unittest/reader/spirv/SpvUnaryArithTest_Transpose_2x3.spvasm.expected.ir.fxc.hlsl b/test/tint/unittest/reader/spirv/SpvUnaryArithTest_Transpose_2x3.spvasm.expected.ir.fxc.hlsl
deleted file mode 100644
index 17c4816..0000000
--- a/test/tint/unittest/reader/spirv/SpvUnaryArithTest_Transpose_2x3.spvasm.expected.ir.fxc.hlsl
+++ /dev/null
@@ -1,10 +0,0 @@
-SKIP: FAILED
-
-void main_1() {
-  float3x2 x_2 = float3x2(float2(50.0f, 60.0f), float2(60.0f, 70.0f), float2(70.0f, 50.0f));
-}
-
-void main() {
-  main_1();
-}
-
diff --git a/test/tint/unittest/reader/spirv/SpvUnaryArithTest_Transpose_3x2.spvasm.expected.ir.fxc.hlsl b/test/tint/unittest/reader/spirv/SpvUnaryArithTest_Transpose_3x2.spvasm.expected.ir.fxc.hlsl
deleted file mode 100644
index 9962c2b..0000000
--- a/test/tint/unittest/reader/spirv/SpvUnaryArithTest_Transpose_3x2.spvasm.expected.ir.fxc.hlsl
+++ /dev/null
@@ -1,10 +0,0 @@
-SKIP: FAILED
-
-void main_1() {
-  float2x3 x_2 = float2x3(float3(50.0f, 60.0f, 50.0f), float3(60.0f, 50.0f, 60.0f));
-}
-
-void main() {
-  main_1();
-}
-
diff --git a/test/tint/unittest/reader/spirv/SpvUnaryBitTest_BitCount_IntVector_IntVector.spvasm.expected.ir.fxc.hlsl b/test/tint/unittest/reader/spirv/SpvUnaryBitTest_BitCount_IntVector_IntVector.spvasm.expected.ir.fxc.hlsl
deleted file mode 100644
index 467cfe1..0000000
--- a/test/tint/unittest/reader/spirv/SpvUnaryBitTest_BitCount_IntVector_IntVector.spvasm.expected.ir.fxc.hlsl
+++ /dev/null
@@ -1,14 +0,0 @@
-SKIP: FAILED
-
-void main_1() {
-  uint u1 = 10u;
-  int i1 = 30;
-  uint2 v2u1 = uint2(10u, 20u);
-  int2 x_1 = int2(4, 2);
-}
-
-[numthreads(1, 1, 1)]
-void main() {
-  main_1();
-}
-
diff --git a/test/tint/unittest/reader/spirv/SpvUnaryBitTest_BitCount_IntVector_UintVector.spvasm.expected.ir.fxc.hlsl b/test/tint/unittest/reader/spirv/SpvUnaryBitTest_BitCount_IntVector_UintVector.spvasm.expected.ir.fxc.hlsl
deleted file mode 100644
index fd069e7..0000000
--- a/test/tint/unittest/reader/spirv/SpvUnaryBitTest_BitCount_IntVector_UintVector.spvasm.expected.ir.fxc.hlsl
+++ /dev/null
@@ -1,14 +0,0 @@
-SKIP: FAILED
-
-void main_1() {
-  uint u1 = 10u;
-  int i1 = 30;
-  int2 v2i1 = int2(30, 40);
-  int2 x_1 = (2).xx;
-}
-
-[numthreads(1, 1, 1)]
-void main() {
-  main_1();
-}
-
diff --git a/test/tint/unittest/reader/spirv/SpvUnaryBitTest_BitCount_Int_Int.spvasm.expected.ir.fxc.hlsl b/test/tint/unittest/reader/spirv/SpvUnaryBitTest_BitCount_Int_Int.spvasm.expected.ir.fxc.hlsl
deleted file mode 100644
index 2424b6a..0000000
--- a/test/tint/unittest/reader/spirv/SpvUnaryBitTest_BitCount_Int_Int.spvasm.expected.ir.fxc.hlsl
+++ /dev/null
@@ -1,14 +0,0 @@
-SKIP: FAILED
-
-void main_1() {
-  uint u1 = 10u;
-  uint2 v2u1 = uint2(10u, 20u);
-  int2 v2i1 = int2(30, 40);
-  int x_1 = 4;
-}
-
-[numthreads(1, 1, 1)]
-void main() {
-  main_1();
-}
-
diff --git a/test/tint/unittest/reader/spirv/SpvUnaryBitTest_BitCount_Int_Uint.spvasm.expected.ir.fxc.hlsl b/test/tint/unittest/reader/spirv/SpvUnaryBitTest_BitCount_Int_Uint.spvasm.expected.ir.fxc.hlsl
deleted file mode 100644
index 14f8653..0000000
--- a/test/tint/unittest/reader/spirv/SpvUnaryBitTest_BitCount_Int_Uint.spvasm.expected.ir.fxc.hlsl
+++ /dev/null
@@ -1,14 +0,0 @@
-SKIP: FAILED
-
-void main_1() {
-  int i1 = 30;
-  uint2 v2u1 = uint2(10u, 20u);
-  int2 v2i1 = int2(30, 40);
-  int x_1 = 2;
-}
-
-[numthreads(1, 1, 1)]
-void main() {
-  main_1();
-}
-
diff --git a/test/tint/unittest/reader/spirv/SpvUnaryBitTest_BitCount_UintVector_IntVector.spvasm.expected.ir.fxc.hlsl b/test/tint/unittest/reader/spirv/SpvUnaryBitTest_BitCount_UintVector_IntVector.spvasm.expected.ir.fxc.hlsl
deleted file mode 100644
index 450f0ba..0000000
--- a/test/tint/unittest/reader/spirv/SpvUnaryBitTest_BitCount_UintVector_IntVector.spvasm.expected.ir.fxc.hlsl
+++ /dev/null
@@ -1,14 +0,0 @@
-SKIP: FAILED
-
-void main_1() {
-  uint u1 = 10u;
-  int i1 = 30;
-  uint2 v2u1 = uint2(10u, 20u);
-  uint2 x_1 = uint2(4u, 2u);
-}
-
-[numthreads(1, 1, 1)]
-void main() {
-  main_1();
-}
-
diff --git a/test/tint/unittest/reader/spirv/SpvUnaryBitTest_BitCount_UintVector_UintVector.spvasm.expected.ir.fxc.hlsl b/test/tint/unittest/reader/spirv/SpvUnaryBitTest_BitCount_UintVector_UintVector.spvasm.expected.ir.fxc.hlsl
deleted file mode 100644
index 13f07e2..0000000
--- a/test/tint/unittest/reader/spirv/SpvUnaryBitTest_BitCount_UintVector_UintVector.spvasm.expected.ir.fxc.hlsl
+++ /dev/null
@@ -1,14 +0,0 @@
-SKIP: FAILED
-
-void main_1() {
-  uint u1 = 10u;
-  int i1 = 30;
-  int2 v2i1 = int2(30, 40);
-  uint2 x_1 = (2u).xx;
-}
-
-[numthreads(1, 1, 1)]
-void main() {
-  main_1();
-}
-
diff --git a/test/tint/unittest/reader/spirv/SpvUnaryBitTest_BitCount_Uint_Int.spvasm.expected.ir.fxc.hlsl b/test/tint/unittest/reader/spirv/SpvUnaryBitTest_BitCount_Uint_Int.spvasm.expected.ir.fxc.hlsl
deleted file mode 100644
index 83f67cb..0000000
--- a/test/tint/unittest/reader/spirv/SpvUnaryBitTest_BitCount_Uint_Int.spvasm.expected.ir.fxc.hlsl
+++ /dev/null
@@ -1,14 +0,0 @@
-SKIP: FAILED
-
-void main_1() {
-  uint u1 = 10u;
-  uint2 v2u1 = uint2(10u, 20u);
-  int2 v2i1 = int2(30, 40);
-  uint x_1 = 4u;
-}
-
-[numthreads(1, 1, 1)]
-void main() {
-  main_1();
-}
-
diff --git a/test/tint/unittest/reader/spirv/SpvUnaryBitTest_BitCount_Uint_Uint.spvasm.expected.ir.fxc.hlsl b/test/tint/unittest/reader/spirv/SpvUnaryBitTest_BitCount_Uint_Uint.spvasm.expected.ir.fxc.hlsl
deleted file mode 100644
index 3ce0d79..0000000
--- a/test/tint/unittest/reader/spirv/SpvUnaryBitTest_BitCount_Uint_Uint.spvasm.expected.ir.fxc.hlsl
+++ /dev/null
@@ -1,14 +0,0 @@
-SKIP: FAILED
-
-void main_1() {
-  int i1 = 30;
-  uint2 v2u1 = uint2(10u, 20u);
-  int2 v2i1 = int2(30, 40);
-  uint x_1 = 2u;
-}
-
-[numthreads(1, 1, 1)]
-void main() {
-  main_1();
-}
-
diff --git a/test/tint/unittest/reader/spirv/SpvUnaryBitTest_BitReverse_IntVector_IntVector.spvasm.expected.ir.fxc.hlsl b/test/tint/unittest/reader/spirv/SpvUnaryBitTest_BitReverse_IntVector_IntVector.spvasm.expected.ir.fxc.hlsl
deleted file mode 100644
index dab8507..0000000
--- a/test/tint/unittest/reader/spirv/SpvUnaryBitTest_BitReverse_IntVector_IntVector.spvasm.expected.ir.fxc.hlsl
+++ /dev/null
@@ -1,14 +0,0 @@
-SKIP: FAILED
-
-void main_1() {
-  uint u1 = 10u;
-  int i1 = 30;
-  uint2 v2u1 = uint2(10u, 20u);
-  int2 x_1 = int2(2013265920, 335544320);
-}
-
-[numthreads(1, 1, 1)]
-void main() {
-  main_1();
-}
-
diff --git a/test/tint/unittest/reader/spirv/SpvUnaryBitTest_BitReverse_Int_Int.spvasm.expected.ir.fxc.hlsl b/test/tint/unittest/reader/spirv/SpvUnaryBitTest_BitReverse_Int_Int.spvasm.expected.ir.fxc.hlsl
deleted file mode 100644
index 6cd6338..0000000
--- a/test/tint/unittest/reader/spirv/SpvUnaryBitTest_BitReverse_Int_Int.spvasm.expected.ir.fxc.hlsl
+++ /dev/null
@@ -1,14 +0,0 @@
-SKIP: FAILED
-
-void main_1() {
-  uint u1 = 10u;
-  uint2 v2u1 = uint2(10u, 20u);
-  int2 v2i1 = int2(30, 40);
-  int x_1 = 2013265920;
-}
-
-[numthreads(1, 1, 1)]
-void main() {
-  main_1();
-}
-
diff --git a/test/tint/unittest/reader/spirv/SpvUnaryBitTest_BitReverse_UintVector_UintVector.spvasm.expected.ir.fxc.hlsl b/test/tint/unittest/reader/spirv/SpvUnaryBitTest_BitReverse_UintVector_UintVector.spvasm.expected.ir.fxc.hlsl
deleted file mode 100644
index d3d55cc..0000000
--- a/test/tint/unittest/reader/spirv/SpvUnaryBitTest_BitReverse_UintVector_UintVector.spvasm.expected.ir.fxc.hlsl
+++ /dev/null
@@ -1,14 +0,0 @@
-SKIP: FAILED
-
-void main_1() {
-  uint u1 = 10u;
-  int i1 = 30;
-  int2 v2i1 = int2(30, 40);
-  uint2 x_1 = uint2(1342177280u, 671088640u);
-}
-
-[numthreads(1, 1, 1)]
-void main() {
-  main_1();
-}
-
diff --git a/test/tint/unittest/reader/spirv/SpvUnaryBitTest_BitReverse_Uint_Uint.spvasm.expected.ir.fxc.hlsl b/test/tint/unittest/reader/spirv/SpvUnaryBitTest_BitReverse_Uint_Uint.spvasm.expected.ir.fxc.hlsl
deleted file mode 100644
index c63e434..0000000
--- a/test/tint/unittest/reader/spirv/SpvUnaryBitTest_BitReverse_Uint_Uint.spvasm.expected.ir.fxc.hlsl
+++ /dev/null
@@ -1,14 +0,0 @@
-SKIP: FAILED
-
-void main_1() {
-  int i1 = 30;
-  uint2 v2u1 = uint2(10u, 20u);
-  int2 v2i1 = int2(30, 40);
-  uint x_1 = 1342177280u;
-}
-
-[numthreads(1, 1, 1)]
-void main() {
-  main_1();
-}
-
diff --git a/test/tint/unittest/reader/spirv/SpvUnaryBitTest_Not_Int_Int.spvasm.expected.ir.fxc.hlsl b/test/tint/unittest/reader/spirv/SpvUnaryBitTest_Not_Int_Int.spvasm.expected.ir.fxc.hlsl
deleted file mode 100644
index 8b0e3da..0000000
--- a/test/tint/unittest/reader/spirv/SpvUnaryBitTest_Not_Int_Int.spvasm.expected.ir.fxc.hlsl
+++ /dev/null
@@ -1,10 +0,0 @@
-SKIP: FAILED
-
-void main_1() {
-  int x_1 = -31;
-}
-
-void main() {
-  main_1();
-}
-
diff --git a/test/tint/unittest/reader/spirv/SpvUnaryBitTest_Not_Int_Uint.spvasm.expected.ir.fxc.hlsl b/test/tint/unittest/reader/spirv/SpvUnaryBitTest_Not_Int_Uint.spvasm.expected.ir.fxc.hlsl
deleted file mode 100644
index d1c30ca..0000000
--- a/test/tint/unittest/reader/spirv/SpvUnaryBitTest_Not_Int_Uint.spvasm.expected.ir.fxc.hlsl
+++ /dev/null
@@ -1,10 +0,0 @@
-SKIP: FAILED
-
-void main_1() {
-  int x_1 = -11;
-}
-
-void main() {
-  main_1();
-}
-
diff --git a/test/tint/unittest/reader/spirv/SpvUnaryBitTest_Not_SignedVec_SignedVec.spvasm.expected.ir.fxc.hlsl b/test/tint/unittest/reader/spirv/SpvUnaryBitTest_Not_SignedVec_SignedVec.spvasm.expected.ir.fxc.hlsl
deleted file mode 100644
index ec81b8c..0000000
--- a/test/tint/unittest/reader/spirv/SpvUnaryBitTest_Not_SignedVec_SignedVec.spvasm.expected.ir.fxc.hlsl
+++ /dev/null
@@ -1,10 +0,0 @@
-SKIP: FAILED
-
-void main_1() {
-  int2 x_1 = int2(-31, -41);
-}
-
-void main() {
-  main_1();
-}
-
diff --git a/test/tint/unittest/reader/spirv/SpvUnaryBitTest_Not_SignedVec_UnsignedVec.spvasm.expected.ir.fxc.hlsl b/test/tint/unittest/reader/spirv/SpvUnaryBitTest_Not_SignedVec_UnsignedVec.spvasm.expected.ir.fxc.hlsl
deleted file mode 100644
index 4006d56..0000000
--- a/test/tint/unittest/reader/spirv/SpvUnaryBitTest_Not_SignedVec_UnsignedVec.spvasm.expected.ir.fxc.hlsl
+++ /dev/null
@@ -1,10 +0,0 @@
-SKIP: FAILED
-
-void main_1() {
-  int2 x_1 = int2(-11, -21);
-}
-
-void main() {
-  main_1();
-}
-
diff --git a/test/tint/unittest/reader/spirv/SpvUnaryBitTest_Not_Uint_Int.spvasm.expected.ir.fxc.hlsl b/test/tint/unittest/reader/spirv/SpvUnaryBitTest_Not_Uint_Int.spvasm.expected.ir.fxc.hlsl
deleted file mode 100644
index 83bc6ee..0000000
--- a/test/tint/unittest/reader/spirv/SpvUnaryBitTest_Not_Uint_Int.spvasm.expected.ir.fxc.hlsl
+++ /dev/null
@@ -1,10 +0,0 @@
-SKIP: FAILED
-
-void main_1() {
-  uint x_1 = 4294967265u;
-}
-
-void main() {
-  main_1();
-}
-
diff --git a/test/tint/unittest/reader/spirv/SpvUnaryBitTest_Not_Uint_Uint.spvasm.expected.ir.fxc.hlsl b/test/tint/unittest/reader/spirv/SpvUnaryBitTest_Not_Uint_Uint.spvasm.expected.ir.fxc.hlsl
deleted file mode 100644
index 893d0b9..0000000
--- a/test/tint/unittest/reader/spirv/SpvUnaryBitTest_Not_Uint_Uint.spvasm.expected.ir.fxc.hlsl
+++ /dev/null
@@ -1,10 +0,0 @@
-SKIP: FAILED
-
-void main_1() {
-  uint x_1 = 4294967285u;
-}
-
-void main() {
-  main_1();
-}
-
diff --git a/test/tint/unittest/reader/spirv/SpvUnaryBitTest_Not_UnsignedVec_SignedVec.spvasm.expected.ir.fxc.hlsl b/test/tint/unittest/reader/spirv/SpvUnaryBitTest_Not_UnsignedVec_SignedVec.spvasm.expected.ir.fxc.hlsl
deleted file mode 100644
index 941d992..0000000
--- a/test/tint/unittest/reader/spirv/SpvUnaryBitTest_Not_UnsignedVec_SignedVec.spvasm.expected.ir.fxc.hlsl
+++ /dev/null
@@ -1,10 +0,0 @@
-SKIP: FAILED
-
-void main_1() {
-  uint2 x_1 = uint2(4294967265u, 4294967255u);
-}
-
-void main() {
-  main_1();
-}
-
diff --git a/test/tint/unittest/reader/spirv/SpvUnaryBitTest_Not_UnsignedVec_UnsignedVec.spvasm.expected.ir.fxc.hlsl b/test/tint/unittest/reader/spirv/SpvUnaryBitTest_Not_UnsignedVec_UnsignedVec.spvasm.expected.ir.fxc.hlsl
deleted file mode 100644
index 296c7a9..0000000
--- a/test/tint/unittest/reader/spirv/SpvUnaryBitTest_Not_UnsignedVec_UnsignedVec.spvasm.expected.ir.fxc.hlsl
+++ /dev/null
@@ -1,10 +0,0 @@
-SKIP: FAILED
-
-void main_1() {
-  uint2 x_1 = uint2(4294967285u, 4294967275u);
-}
-
-void main() {
-  main_1();
-}
-
diff --git a/test/tint/unittest/reader/spirv/SpvUnaryConversionTest_Bitcast_Scalar.spvasm.expected.ir.fxc.hlsl b/test/tint/unittest/reader/spirv/SpvUnaryConversionTest_Bitcast_Scalar.spvasm.expected.ir.fxc.hlsl
deleted file mode 100644
index dea0835..0000000
--- a/test/tint/unittest/reader/spirv/SpvUnaryConversionTest_Bitcast_Scalar.spvasm.expected.ir.fxc.hlsl
+++ /dev/null
@@ -1,10 +0,0 @@
-SKIP: FAILED
-
-void main_1() {
-  uint x_1 = 1112014848u;
-}
-
-void main() {
-  main_1();
-}
-
diff --git a/test/tint/unittest/reader/spirv/SpvUnaryConversionTest_Bitcast_Vector.spvasm.expected.ir.fxc.hlsl b/test/tint/unittest/reader/spirv/SpvUnaryConversionTest_Bitcast_Vector.spvasm.expected.ir.fxc.hlsl
deleted file mode 100644
index efca86c..0000000
--- a/test/tint/unittest/reader/spirv/SpvUnaryConversionTest_Bitcast_Vector.spvasm.expected.ir.fxc.hlsl
+++ /dev/null
@@ -1,10 +0,0 @@
-SKIP: FAILED
-
-void main_1() {
-  float2 x_1 = float2(1.40129846e-44f, 2.80259693e-44f);
-}
-
-void main() {
-  main_1();
-}
-
diff --git a/test/tint/unittest/reader/spirv/SpvUnaryConversionTest_ConvertFToS_Scalar_ToSigned.spvasm.expected.ir.fxc.hlsl b/test/tint/unittest/reader/spirv/SpvUnaryConversionTest_ConvertFToS_Scalar_ToSigned.spvasm.expected.ir.fxc.hlsl
deleted file mode 100644
index 2df8d13..0000000
--- a/test/tint/unittest/reader/spirv/SpvUnaryConversionTest_ConvertFToS_Scalar_ToSigned.spvasm.expected.ir.fxc.hlsl
+++ /dev/null
@@ -1,10 +0,0 @@
-SKIP: FAILED
-
-void main_1() {
-  int x_1 = 50;
-}
-
-void main() {
-  main_1();
-}
-
diff --git a/test/tint/unittest/reader/spirv/SpvUnaryConversionTest_ConvertFToS_Scalar_ToUnsigned.spvasm.expected.ir.fxc.hlsl b/test/tint/unittest/reader/spirv/SpvUnaryConversionTest_ConvertFToS_Scalar_ToUnsigned.spvasm.expected.ir.fxc.hlsl
deleted file mode 100644
index 0fbb363..0000000
--- a/test/tint/unittest/reader/spirv/SpvUnaryConversionTest_ConvertFToS_Scalar_ToUnsigned.spvasm.expected.ir.fxc.hlsl
+++ /dev/null
@@ -1,10 +0,0 @@
-SKIP: FAILED
-
-void main_1() {
-  uint x_1 = 50u;
-}
-
-void main() {
-  main_1();
-}
-
diff --git a/test/tint/unittest/reader/spirv/SpvUnaryConversionTest_ConvertFToS_Vector_ToSigned.spvasm.expected.ir.fxc.hlsl b/test/tint/unittest/reader/spirv/SpvUnaryConversionTest_ConvertFToS_Vector_ToSigned.spvasm.expected.ir.fxc.hlsl
deleted file mode 100644
index 0805f07..0000000
--- a/test/tint/unittest/reader/spirv/SpvUnaryConversionTest_ConvertFToS_Vector_ToSigned.spvasm.expected.ir.fxc.hlsl
+++ /dev/null
@@ -1,10 +0,0 @@
-SKIP: FAILED
-
-void main_1() {
-  int2 x_1 = int2(50, 60);
-}
-
-void main() {
-  main_1();
-}
-
diff --git a/test/tint/unittest/reader/spirv/SpvUnaryConversionTest_ConvertFToS_Vector_ToUnsigned.spvasm.expected.ir.fxc.hlsl b/test/tint/unittest/reader/spirv/SpvUnaryConversionTest_ConvertFToS_Vector_ToUnsigned.spvasm.expected.ir.fxc.hlsl
deleted file mode 100644
index e2bf197..0000000
--- a/test/tint/unittest/reader/spirv/SpvUnaryConversionTest_ConvertFToS_Vector_ToUnsigned.spvasm.expected.ir.fxc.hlsl
+++ /dev/null
@@ -1,10 +0,0 @@
-SKIP: FAILED
-
-void main_1() {
-  uint2 x_1 = uint2(50u, 60u);
-}
-
-void main() {
-  main_1();
-}
-
diff --git a/test/tint/unittest/reader/spirv/SpvUnaryConversionTest_ConvertFToU_HoistedValue.spvasm.expected.ir.dxc.hlsl b/test/tint/unittest/reader/spirv/SpvUnaryConversionTest_ConvertFToU_HoistedValue.spvasm.expected.ir.dxc.hlsl
deleted file mode 100644
index adbb0c1..0000000
--- a/test/tint/unittest/reader/spirv/SpvUnaryConversionTest_ConvertFToU_HoistedValue.spvasm.expected.ir.dxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:198 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Loop
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/unittest/reader/spirv/SpvUnaryConversionTest_ConvertFToU_HoistedValue.spvasm.expected.ir.fxc.hlsl b/test/tint/unittest/reader/spirv/SpvUnaryConversionTest_ConvertFToU_HoistedValue.spvasm.expected.ir.fxc.hlsl
deleted file mode 100644
index adbb0c1..0000000
--- a/test/tint/unittest/reader/spirv/SpvUnaryConversionTest_ConvertFToU_HoistedValue.spvasm.expected.ir.fxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:198 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Loop
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/unittest/reader/spirv/SpvUnaryConversionTest_ConvertFToU_Scalar_ToUnsigned.spvasm.expected.ir.fxc.hlsl b/test/tint/unittest/reader/spirv/SpvUnaryConversionTest_ConvertFToU_Scalar_ToUnsigned.spvasm.expected.ir.fxc.hlsl
deleted file mode 100644
index 0fbb363..0000000
--- a/test/tint/unittest/reader/spirv/SpvUnaryConversionTest_ConvertFToU_Scalar_ToUnsigned.spvasm.expected.ir.fxc.hlsl
+++ /dev/null
@@ -1,10 +0,0 @@
-SKIP: FAILED
-
-void main_1() {
-  uint x_1 = 50u;
-}
-
-void main() {
-  main_1();
-}
-
diff --git a/test/tint/unittest/reader/spirv/SpvUnaryConversionTest_ConvertFToU_Vector_ToUnsigned.spvasm.expected.ir.fxc.hlsl b/test/tint/unittest/reader/spirv/SpvUnaryConversionTest_ConvertFToU_Vector_ToUnsigned.spvasm.expected.ir.fxc.hlsl
deleted file mode 100644
index e2bf197..0000000
--- a/test/tint/unittest/reader/spirv/SpvUnaryConversionTest_ConvertFToU_Vector_ToUnsigned.spvasm.expected.ir.fxc.hlsl
+++ /dev/null
@@ -1,10 +0,0 @@
-SKIP: FAILED
-
-void main_1() {
-  uint2 x_1 = uint2(50u, 60u);
-}
-
-void main() {
-  main_1();
-}
-
diff --git a/test/tint/unittest/reader/spirv/SpvUnaryConversionTest_ConvertSToF_Scalar_FromSigned.spvasm.expected.ir.fxc.hlsl b/test/tint/unittest/reader/spirv/SpvUnaryConversionTest_ConvertSToF_Scalar_FromSigned.spvasm.expected.ir.fxc.hlsl
deleted file mode 100644
index 6a563e0..0000000
--- a/test/tint/unittest/reader/spirv/SpvUnaryConversionTest_ConvertSToF_Scalar_FromSigned.spvasm.expected.ir.fxc.hlsl
+++ /dev/null
@@ -1,10 +0,0 @@
-SKIP: FAILED
-
-void main_1() {
-  float x_1 = 30.0f;
-}
-
-void main() {
-  main_1();
-}
-
diff --git a/test/tint/unittest/reader/spirv/SpvUnaryConversionTest_ConvertSToF_Scalar_FromUnsigned.spvasm.expected.ir.fxc.hlsl b/test/tint/unittest/reader/spirv/SpvUnaryConversionTest_ConvertSToF_Scalar_FromUnsigned.spvasm.expected.ir.fxc.hlsl
deleted file mode 100644
index 8a2aa50..0000000
--- a/test/tint/unittest/reader/spirv/SpvUnaryConversionTest_ConvertSToF_Scalar_FromUnsigned.spvasm.expected.ir.fxc.hlsl
+++ /dev/null
@@ -1,10 +0,0 @@
-SKIP: FAILED
-
-void main_1() {
-  float x_1 = 10.0f;
-}
-
-void main() {
-  main_1();
-}
-
diff --git a/test/tint/unittest/reader/spirv/SpvUnaryConversionTest_ConvertSToF_Vector_FromSigned.spvasm.expected.ir.fxc.hlsl b/test/tint/unittest/reader/spirv/SpvUnaryConversionTest_ConvertSToF_Vector_FromSigned.spvasm.expected.ir.fxc.hlsl
deleted file mode 100644
index a3abc82..0000000
--- a/test/tint/unittest/reader/spirv/SpvUnaryConversionTest_ConvertSToF_Vector_FromSigned.spvasm.expected.ir.fxc.hlsl
+++ /dev/null
@@ -1,10 +0,0 @@
-SKIP: FAILED
-
-void main_1() {
-  float2 x_1 = float2(30.0f, 40.0f);
-}
-
-void main() {
-  main_1();
-}
-
diff --git a/test/tint/unittest/reader/spirv/SpvUnaryConversionTest_ConvertSToF_Vector_FromUnsigned.spvasm.expected.ir.fxc.hlsl b/test/tint/unittest/reader/spirv/SpvUnaryConversionTest_ConvertSToF_Vector_FromUnsigned.spvasm.expected.ir.fxc.hlsl
deleted file mode 100644
index 782a11e..0000000
--- a/test/tint/unittest/reader/spirv/SpvUnaryConversionTest_ConvertSToF_Vector_FromUnsigned.spvasm.expected.ir.fxc.hlsl
+++ /dev/null
@@ -1,10 +0,0 @@
-SKIP: FAILED
-
-void main_1() {
-  float2 x_1 = float2(10.0f, 20.0f);
-}
-
-void main() {
-  main_1();
-}
-
diff --git a/test/tint/unittest/reader/spirv/SpvUnaryConversionTest_ConvertUToF_Scalar_FromSigned.spvasm.expected.ir.fxc.hlsl b/test/tint/unittest/reader/spirv/SpvUnaryConversionTest_ConvertUToF_Scalar_FromSigned.spvasm.expected.ir.fxc.hlsl
deleted file mode 100644
index 6a563e0..0000000
--- a/test/tint/unittest/reader/spirv/SpvUnaryConversionTest_ConvertUToF_Scalar_FromSigned.spvasm.expected.ir.fxc.hlsl
+++ /dev/null
@@ -1,10 +0,0 @@
-SKIP: FAILED
-
-void main_1() {
-  float x_1 = 30.0f;
-}
-
-void main() {
-  main_1();
-}
-
diff --git a/test/tint/unittest/reader/spirv/SpvUnaryConversionTest_ConvertUToF_Scalar_FromUnsigned.spvasm.expected.ir.fxc.hlsl b/test/tint/unittest/reader/spirv/SpvUnaryConversionTest_ConvertUToF_Scalar_FromUnsigned.spvasm.expected.ir.fxc.hlsl
deleted file mode 100644
index 8a2aa50..0000000
--- a/test/tint/unittest/reader/spirv/SpvUnaryConversionTest_ConvertUToF_Scalar_FromUnsigned.spvasm.expected.ir.fxc.hlsl
+++ /dev/null
@@ -1,10 +0,0 @@
-SKIP: FAILED
-
-void main_1() {
-  float x_1 = 10.0f;
-}
-
-void main() {
-  main_1();
-}
-
diff --git a/test/tint/unittest/reader/spirv/SpvUnaryConversionTest_ConvertUToF_Vector_FromSigned.spvasm.expected.ir.fxc.hlsl b/test/tint/unittest/reader/spirv/SpvUnaryConversionTest_ConvertUToF_Vector_FromSigned.spvasm.expected.ir.fxc.hlsl
deleted file mode 100644
index a3abc82..0000000
--- a/test/tint/unittest/reader/spirv/SpvUnaryConversionTest_ConvertUToF_Vector_FromSigned.spvasm.expected.ir.fxc.hlsl
+++ /dev/null
@@ -1,10 +0,0 @@
-SKIP: FAILED
-
-void main_1() {
-  float2 x_1 = float2(30.0f, 40.0f);
-}
-
-void main() {
-  main_1();
-}
-
diff --git a/test/tint/unittest/reader/spirv/SpvUnaryConversionTest_ConvertUToF_Vector_FromUnsigned.spvasm.expected.ir.fxc.hlsl b/test/tint/unittest/reader/spirv/SpvUnaryConversionTest_ConvertUToF_Vector_FromUnsigned.spvasm.expected.ir.fxc.hlsl
deleted file mode 100644
index 782a11e..0000000
--- a/test/tint/unittest/reader/spirv/SpvUnaryConversionTest_ConvertUToF_Vector_FromUnsigned.spvasm.expected.ir.fxc.hlsl
+++ /dev/null
@@ -1,10 +0,0 @@
-SKIP: FAILED
-
-void main_1() {
-  float2 x_1 = float2(10.0f, 20.0f);
-}
-
-void main() {
-  main_1();
-}
-
diff --git a/test/tint/unittest/reader/spirv/SpvUnaryLogicalTest_LogicalNot_Scalar.spvasm.expected.ir.fxc.hlsl b/test/tint/unittest/reader/spirv/SpvUnaryLogicalTest_LogicalNot_Scalar.spvasm.expected.ir.fxc.hlsl
deleted file mode 100644
index 969210b..0000000
--- a/test/tint/unittest/reader/spirv/SpvUnaryLogicalTest_LogicalNot_Scalar.spvasm.expected.ir.fxc.hlsl
+++ /dev/null
@@ -1,10 +0,0 @@
-SKIP: FAILED
-
-void main_1() {
-  bool x_1 = false;
-}
-
-void main() {
-  main_1();
-}
-
diff --git a/test/tint/unittest/reader/spirv/SpvUnaryLogicalTest_LogicalNot_Vector.spvasm.expected.ir.fxc.hlsl b/test/tint/unittest/reader/spirv/SpvUnaryLogicalTest_LogicalNot_Vector.spvasm.expected.ir.fxc.hlsl
deleted file mode 100644
index b3adcc7..0000000
--- a/test/tint/unittest/reader/spirv/SpvUnaryLogicalTest_LogicalNot_Vector.spvasm.expected.ir.fxc.hlsl
+++ /dev/null
@@ -1,10 +0,0 @@
-SKIP: FAILED
-
-void main_1() {
-  bool2 x_1 = bool2(false, true);
-}
-
-void main() {
-  main_1();
-}
-
diff --git a/test/tint/unittest/reader/spirv/ValidIndex_SpvParserSwizzleTest_Sample_0.spvasm.expected.ir.fxc.hlsl b/test/tint/unittest/reader/spirv/ValidIndex_SpvParserSwizzleTest_Sample_0.spvasm.expected.ir.fxc.hlsl
deleted file mode 100644
index a096ece..0000000
--- a/test/tint/unittest/reader/spirv/ValidIndex_SpvParserSwizzleTest_Sample_0.spvasm.expected.ir.fxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-void main_1() {
-}
-
-void main() {
-  main_1();
-}
-
diff --git a/test/tint/unittest/reader/spirv/ValidIndex_SpvParserSwizzleTest_Sample_1.spvasm.expected.ir.fxc.hlsl b/test/tint/unittest/reader/spirv/ValidIndex_SpvParserSwizzleTest_Sample_1.spvasm.expected.ir.fxc.hlsl
deleted file mode 100644
index a096ece..0000000
--- a/test/tint/unittest/reader/spirv/ValidIndex_SpvParserSwizzleTest_Sample_1.spvasm.expected.ir.fxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-void main_1() {
-}
-
-void main() {
-  main_1();
-}
-
diff --git a/test/tint/unittest/reader/spirv/ValidIndex_SpvParserSwizzleTest_Sample_2.spvasm.expected.ir.fxc.hlsl b/test/tint/unittest/reader/spirv/ValidIndex_SpvParserSwizzleTest_Sample_2.spvasm.expected.ir.fxc.hlsl
deleted file mode 100644
index a096ece..0000000
--- a/test/tint/unittest/reader/spirv/ValidIndex_SpvParserSwizzleTest_Sample_2.spvasm.expected.ir.fxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-void main_1() {
-}
-
-void main() {
-  main_1();
-}
-
diff --git a/test/tint/unittest/reader/spirv/ValidIndex_SpvParserSwizzleTest_Sample_3.spvasm.expected.ir.fxc.hlsl b/test/tint/unittest/reader/spirv/ValidIndex_SpvParserSwizzleTest_Sample_3.spvasm.expected.ir.fxc.hlsl
deleted file mode 100644
index a096ece..0000000
--- a/test/tint/unittest/reader/spirv/ValidIndex_SpvParserSwizzleTest_Sample_3.spvasm.expected.ir.fxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-void main_1() {
-}
-
-void main() {
-  main_1();
-}
-
diff --git a/test/tint/var/inferred/function.wgsl.expected.ir.dxc.hlsl b/test/tint/var/inferred/function.wgsl.expected.ir.dxc.hlsl
index 0ba40c6..ca77cd6 100644
--- a/test/tint/var/inferred/function.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/var/inferred/function.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,59 @@
-SKIP: FAILED
+struct MyStruct {
+  float f1;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct main_outputs {
+  float4 tint_symbol : SV_Target0;
+};
+
+
+int ret_i32() {
+  return 1;
+}
+
+uint ret_u32() {
+  return 1u;
+}
+
+float ret_f32() {
+  return 1.0f;
+}
+
+MyStruct ret_MyStruct() {
+  MyStruct v = (MyStruct)0;
+  return v;
+}
+
+typedef float ary_ret[10];
+ary_ret ret_MyArray() {
+  float v_1[10] = (float[10])0;
+  return v_1;
+}
+
+void var_decls() {
+  int v1 = 1;
+  uint v2 = 1u;
+  float v3 = 1.0f;
+  int3 v4 = (1).xxx;
+  uint3 v5 = (1u).xxx;
+  float3 v6 = (1.0f).xxx;
+  float3x3 v7 = float3x3(v6, v6, v6);
+  MyStruct v8 = {1.0f};
+  float v9[10] = (float[10])0;
+  int v10 = ret_i32();
+  uint v11 = ret_u32();
+  float v12 = ret_f32();
+  MyStruct v13 = ret_MyStruct();
+  MyStruct v14 = ret_MyStruct();
+  float v15[10] = ret_MyArray();
+}
+
+float4 main_inner() {
+  return (0.0f).xxxx;
+}
+
+main_outputs main() {
+  main_outputs v_2 = {main_inner()};
+  return v_2;
+}
+
diff --git a/test/tint/var/inferred/function.wgsl.expected.ir.fxc.hlsl b/test/tint/var/inferred/function.wgsl.expected.ir.fxc.hlsl
index 0ba40c6..ca77cd6 100644
--- a/test/tint/var/inferred/function.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/var/inferred/function.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,59 @@
-SKIP: FAILED
+struct MyStruct {
+  float f1;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct main_outputs {
+  float4 tint_symbol : SV_Target0;
+};
+
+
+int ret_i32() {
+  return 1;
+}
+
+uint ret_u32() {
+  return 1u;
+}
+
+float ret_f32() {
+  return 1.0f;
+}
+
+MyStruct ret_MyStruct() {
+  MyStruct v = (MyStruct)0;
+  return v;
+}
+
+typedef float ary_ret[10];
+ary_ret ret_MyArray() {
+  float v_1[10] = (float[10])0;
+  return v_1;
+}
+
+void var_decls() {
+  int v1 = 1;
+  uint v2 = 1u;
+  float v3 = 1.0f;
+  int3 v4 = (1).xxx;
+  uint3 v5 = (1u).xxx;
+  float3 v6 = (1.0f).xxx;
+  float3x3 v7 = float3x3(v6, v6, v6);
+  MyStruct v8 = {1.0f};
+  float v9[10] = (float[10])0;
+  int v10 = ret_i32();
+  uint v11 = ret_u32();
+  float v12 = ret_f32();
+  MyStruct v13 = ret_MyStruct();
+  MyStruct v14 = ret_MyStruct();
+  float v15[10] = ret_MyArray();
+}
+
+float4 main_inner() {
+  return (0.0f).xxxx;
+}
+
+main_outputs main() {
+  main_outputs v_2 = {main_inner()};
+  return v_2;
+}
+
diff --git a/test/tint/var/inferred/global.wgsl.expected.ir.dxc.hlsl b/test/tint/var/inferred/global.wgsl.expected.ir.dxc.hlsl
index 14eb7c8..b521ad7 100644
--- a/test/tint/var/inferred/global.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/var/inferred/global.wgsl.expected.ir.dxc.hlsl
@@ -1,5 +1,29 @@
-SKIP: FAILED
+struct MyStruct {
+  float f1;
+};
 
+
+static int v1 = 1;
+static uint v2 = 1u;
+static float v3 = 1.0f;
+static int3 v4 = (1).xxx;
+static uint3 v5 = uint3(1u, 2u, 3u);
+static float3 v6 = float3(1.0f, 2.0f, 3.0f);
+static const MyStruct v = {1.0f};
+static MyStruct v7 = v;
+static const float v_1[10] = (float[10])0;
+static float v8[10] = v_1;
+static int v9 = 0;
+static uint v10 = 0u;
+static float v11 = 0.0f;
+static const MyStruct v_2 = {0.0f};
+static MyStruct v12 = v_2;
+static const MyStruct v_3 = {0.0f};
+static MyStruct v13 = v_3;
+static const float v_4[10] = (float[10])0;
+static float v14[10] = v_4;
+static int3 v15 = int3(1, 2, 3);
+static float3 v16 = float3(1.0f, 2.0f, 3.0f);
 [numthreads(1, 1, 1)]
 void f() {
   int l1 = v1;
@@ -9,72 +33,14 @@
   uint3 l5 = v5;
   float3 l6 = v6;
   MyStruct l7 = v7;
-  float[10] l8 = v8;
+  float l8[10] = v8;
   int l9 = v9;
   uint l10 = v10;
   float l11 = v11;
   MyStruct l12 = v12;
   MyStruct l13 = v13;
-  float[10] l14 = v14;
+  float l14[10] = v14;
   int3 l15 = v15;
   float3 l16 = v16;
 }
 
-DXC validation failure:
-hlsl.hlsl:3:12: error: use of undeclared identifier 'v1'
-  int l1 = v1;
-           ^
-hlsl.hlsl:4:13: error: use of undeclared identifier 'v2'
-  uint l2 = v2;
-            ^
-hlsl.hlsl:5:14: error: use of undeclared identifier 'v3'
-  float l3 = v3;
-             ^
-hlsl.hlsl:6:13: error: use of undeclared identifier 'v4'
-  int3 l4 = v4;
-            ^
-hlsl.hlsl:7:14: error: use of undeclared identifier 'v5'
-  uint3 l5 = v5;
-             ^
-hlsl.hlsl:8:15: error: use of undeclared identifier 'v6'
-  float3 l6 = v6;
-              ^
-hlsl.hlsl:9:3: error: unknown type name 'MyStruct'
-  MyStruct l7 = v7;
-  ^
-hlsl.hlsl:10:15: error: brackets are not allowed here; to declare an array, place the brackets after the name
-  float[10] l8 = v8;
-       ~~~~   ^
-              [10]
-hlsl.hlsl:10:18: error: use of undeclared identifier 'v8'
-  float[10] l8 = v8;
-                 ^
-hlsl.hlsl:11:12: error: use of undeclared identifier 'v9'
-  int l9 = v9;
-           ^
-hlsl.hlsl:12:14: error: use of undeclared identifier 'v10'
-  uint l10 = v10;
-             ^
-hlsl.hlsl:13:15: error: use of undeclared identifier 'v11'
-  float l11 = v11;
-              ^
-hlsl.hlsl:14:3: error: unknown type name 'MyStruct'
-  MyStruct l12 = v12;
-  ^
-hlsl.hlsl:15:3: error: unknown type name 'MyStruct'
-  MyStruct l13 = v13;
-  ^
-hlsl.hlsl:16:16: error: brackets are not allowed here; to declare an array, place the brackets after the name
-  float[10] l14 = v14;
-       ~~~~    ^
-               [10]
-hlsl.hlsl:16:19: error: use of undeclared identifier 'v14'
-  float[10] l14 = v14;
-                  ^
-hlsl.hlsl:17:14: error: use of undeclared identifier 'v15'
-  int3 l15 = v15;
-             ^
-hlsl.hlsl:18:16: error: use of undeclared identifier 'v16'
-  float3 l16 = v16;
-               ^
-
diff --git a/test/tint/var/inferred/global.wgsl.expected.ir.fxc.hlsl b/test/tint/var/inferred/global.wgsl.expected.ir.fxc.hlsl
index 42a2cc4..b521ad7 100644
--- a/test/tint/var/inferred/global.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/var/inferred/global.wgsl.expected.ir.fxc.hlsl
@@ -1,5 +1,29 @@
-SKIP: FAILED
+struct MyStruct {
+  float f1;
+};
 
+
+static int v1 = 1;
+static uint v2 = 1u;
+static float v3 = 1.0f;
+static int3 v4 = (1).xxx;
+static uint3 v5 = uint3(1u, 2u, 3u);
+static float3 v6 = float3(1.0f, 2.0f, 3.0f);
+static const MyStruct v = {1.0f};
+static MyStruct v7 = v;
+static const float v_1[10] = (float[10])0;
+static float v8[10] = v_1;
+static int v9 = 0;
+static uint v10 = 0u;
+static float v11 = 0.0f;
+static const MyStruct v_2 = {0.0f};
+static MyStruct v12 = v_2;
+static const MyStruct v_3 = {0.0f};
+static MyStruct v13 = v_3;
+static const float v_4[10] = (float[10])0;
+static float v14[10] = v_4;
+static int3 v15 = int3(1, 2, 3);
+static float3 v16 = float3(1.0f, 2.0f, 3.0f);
 [numthreads(1, 1, 1)]
 void f() {
   int l1 = v1;
@@ -9,13 +33,13 @@
   uint3 l5 = v5;
   float3 l6 = v6;
   MyStruct l7 = v7;
-  float[10] l8 = v8;
+  float l8[10] = v8;
   int l9 = v9;
   uint l10 = v10;
   float l11 = v11;
   MyStruct l12 = v12;
   MyStruct l13 = v13;
-  float[10] l14 = v14;
+  float l14[10] = v14;
   int3 l15 = v15;
   float3 l16 = v16;
 }
diff --git a/test/tint/var/initialization/function/array/array_i32.wgsl.expected.ir.dxc.hlsl b/test/tint/var/initialization/function/array/array_i32.wgsl.expected.ir.dxc.hlsl
index 3fc31aa..6e6e841 100644
--- a/test/tint/var/initialization/function/array/array_i32.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/var/initialization/function/array/array_i32.wgsl.expected.ir.dxc.hlsl
@@ -1,18 +1,7 @@
-SKIP: FAILED
 
 [numthreads(1, 1, 1)]
 void main() {
-  int[2][3] zero = (int[2][3])0;
-  int[2][3] init = {{1, 2, 3}, {4, 5, 6}};
+  int zero[2][3] = (int[2][3])0;
+  int init[2][3] = {{1, 2, 3}, {4, 5, 6}};
 }
 
-DXC validation failure:
-hlsl.hlsl:3:17: error: brackets are not allowed here; to declare an array, place the brackets after the name
-  int[2][3] zero = (int[2][3])0;
-     ~~~~~~     ^
-                [2][3]
-hlsl.hlsl:4:17: error: brackets are not allowed here; to declare an array, place the brackets after the name
-  int[2][3] init = {{1, 2, 3}, {4, 5, 6}};
-     ~~~~~~     ^
-                [2][3]
-
diff --git a/test/tint/var/initialization/function/array/array_i32.wgsl.expected.ir.fxc.hlsl b/test/tint/var/initialization/function/array/array_i32.wgsl.expected.ir.fxc.hlsl
index c0cd599..6e6e841 100644
--- a/test/tint/var/initialization/function/array/array_i32.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/var/initialization/function/array/array_i32.wgsl.expected.ir.fxc.hlsl
@@ -1,8 +1,7 @@
-SKIP: FAILED
 
 [numthreads(1, 1, 1)]
 void main() {
-  int[2][3] zero = (int[2][3])0;
-  int[2][3] init = {{1, 2, 3}, {4, 5, 6}};
+  int zero[2][3] = (int[2][3])0;
+  int init[2][3] = {{1, 2, 3}, {4, 5, 6}};
 }
 
diff --git a/test/tint/var/initialization/function/array/i32.wgsl.expected.ir.dxc.hlsl b/test/tint/var/initialization/function/array/i32.wgsl.expected.ir.dxc.hlsl
index 2c21b11..0a9054b 100644
--- a/test/tint/var/initialization/function/array/i32.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/var/initialization/function/array/i32.wgsl.expected.ir.dxc.hlsl
@@ -1,18 +1,7 @@
-SKIP: FAILED
 
 [numthreads(1, 1, 1)]
 void main() {
-  int[3] zero = (int[3])0;
-  int[3] init = {1, 2, 3};
+  int zero[3] = (int[3])0;
+  int init[3] = {1, 2, 3};
 }
 
-DXC validation failure:
-hlsl.hlsl:3:14: error: brackets are not allowed here; to declare an array, place the brackets after the name
-  int[3] zero = (int[3])0;
-     ~~~     ^
-             [3]
-hlsl.hlsl:4:14: error: brackets are not allowed here; to declare an array, place the brackets after the name
-  int[3] init = {1, 2, 3};
-     ~~~     ^
-             [3]
-
diff --git a/test/tint/var/initialization/function/array/i32.wgsl.expected.ir.fxc.hlsl b/test/tint/var/initialization/function/array/i32.wgsl.expected.ir.fxc.hlsl
index 4f366d7..0a9054b 100644
--- a/test/tint/var/initialization/function/array/i32.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/var/initialization/function/array/i32.wgsl.expected.ir.fxc.hlsl
@@ -1,8 +1,7 @@
-SKIP: FAILED
 
 [numthreads(1, 1, 1)]
 void main() {
-  int[3] zero = (int[3])0;
-  int[3] init = {1, 2, 3};
+  int zero[3] = (int[3])0;
+  int init[3] = {1, 2, 3};
 }
 
diff --git a/test/tint/var/initialization/function/matrix.wgsl.expected.ir.dxc.hlsl b/test/tint/var/initialization/function/matrix.wgsl.expected.ir.dxc.hlsl
index cfe2763..4cd58ab 100644
--- a/test/tint/var/initialization/function/matrix.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/var/initialization/function/matrix.wgsl.expected.ir.dxc.hlsl
@@ -1,3 +1,4 @@
+
 [numthreads(1, 1, 1)]
 void main() {
   float2x3 v = float2x3((0.0f).xxx, (0.0f).xxx);
diff --git a/test/tint/var/initialization/function/matrix.wgsl.expected.ir.fxc.hlsl b/test/tint/var/initialization/function/matrix.wgsl.expected.ir.fxc.hlsl
index 56d72eb..4cd58ab 100644
--- a/test/tint/var/initialization/function/matrix.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/var/initialization/function/matrix.wgsl.expected.ir.fxc.hlsl
@@ -1,4 +1,3 @@
-SKIP: FAILED
 
 [numthreads(1, 1, 1)]
 void main() {
diff --git a/test/tint/var/initialization/function/nested_structs.wgsl.expected.ir.dxc.hlsl b/test/tint/var/initialization/function/nested_structs.wgsl.expected.ir.dxc.hlsl
index 3f437dc..67e0b39 100644
--- a/test/tint/var/initialization/function/nested_structs.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/var/initialization/function/nested_structs.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,24 @@
-SKIP: FAILED
+struct S1 {
+  int i;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Access
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct S2 {
+  S1 s1;
+};
+
+struct S3 {
+  S2 s2;
+};
+
+
+RWByteAddressBuffer tint_symbol : register(u0);
+int f(S3 s3) {
+  return s3.s2.s1.i;
+}
+
+[numthreads(1, 1, 1)]
+void main() {
+  S3 v = {{{42}}};
+  tint_symbol.Store(0u, asuint(f(v)));
+}
+
diff --git a/test/tint/var/initialization/function/nested_structs.wgsl.expected.ir.fxc.hlsl b/test/tint/var/initialization/function/nested_structs.wgsl.expected.ir.fxc.hlsl
index 3f437dc..67e0b39 100644
--- a/test/tint/var/initialization/function/nested_structs.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/var/initialization/function/nested_structs.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,24 @@
-SKIP: FAILED
+struct S1 {
+  int i;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Access
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct S2 {
+  S1 s1;
+};
+
+struct S3 {
+  S2 s2;
+};
+
+
+RWByteAddressBuffer tint_symbol : register(u0);
+int f(S3 s3) {
+  return s3.s2.s1.i;
+}
+
+[numthreads(1, 1, 1)]
+void main() {
+  S3 v = {{{42}}};
+  tint_symbol.Store(0u, asuint(f(v)));
+}
+
diff --git a/test/tint/var/initialization/function/scalar.wgsl.expected.ir.dxc.hlsl b/test/tint/var/initialization/function/scalar.wgsl.expected.ir.dxc.hlsl
index afa8a45..4e05add 100644
--- a/test/tint/var/initialization/function/scalar.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/var/initialization/function/scalar.wgsl.expected.ir.dxc.hlsl
@@ -1,3 +1,4 @@
+
 [numthreads(1, 1, 1)]
 void main() {
   int v = 0;
diff --git a/test/tint/var/initialization/function/scalar.wgsl.expected.ir.fxc.hlsl b/test/tint/var/initialization/function/scalar.wgsl.expected.ir.fxc.hlsl
index 3069206..4e05add 100644
--- a/test/tint/var/initialization/function/scalar.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/var/initialization/function/scalar.wgsl.expected.ir.fxc.hlsl
@@ -1,4 +1,3 @@
-SKIP: FAILED
 
 [numthreads(1, 1, 1)]
 void main() {
diff --git a/test/tint/var/initialization/function/struct.wgsl.expected.ir.dxc.hlsl b/test/tint/var/initialization/function/struct.wgsl.expected.ir.dxc.hlsl
index 0ba40c6..47bec01 100644
--- a/test/tint/var/initialization/function/struct.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/var/initialization/function/struct.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,11 @@
-SKIP: FAILED
+struct S {
+  int a;
+  float b;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+
+[numthreads(1, 1, 1)]
+void main() {
+  S v = (S)0;
+}
+
diff --git a/test/tint/var/initialization/function/struct.wgsl.expected.ir.fxc.hlsl b/test/tint/var/initialization/function/struct.wgsl.expected.ir.fxc.hlsl
index 0ba40c6..47bec01 100644
--- a/test/tint/var/initialization/function/struct.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/var/initialization/function/struct.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,11 @@
-SKIP: FAILED
+struct S {
+  int a;
+  float b;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+
+[numthreads(1, 1, 1)]
+void main() {
+  S v = (S)0;
+}
+
diff --git a/test/tint/var/initialization/function/vector.wgsl.expected.ir.dxc.hlsl b/test/tint/var/initialization/function/vector.wgsl.expected.ir.dxc.hlsl
index a768acb..ea856c5 100644
--- a/test/tint/var/initialization/function/vector.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/var/initialization/function/vector.wgsl.expected.ir.dxc.hlsl
@@ -1,3 +1,4 @@
+
 [numthreads(1, 1, 1)]
 void main() {
   int3 v = (0).xxx;
diff --git a/test/tint/var/initialization/function/vector.wgsl.expected.ir.fxc.hlsl b/test/tint/var/initialization/function/vector.wgsl.expected.ir.fxc.hlsl
index 78ddd38..ea856c5 100644
--- a/test/tint/var/initialization/function/vector.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/var/initialization/function/vector.wgsl.expected.ir.fxc.hlsl
@@ -1,4 +1,3 @@
-SKIP: FAILED
 
 [numthreads(1, 1, 1)]
 void main() {
diff --git a/test/tint/var/initialization/private/array/array_i32.wgsl.expected.ir.dxc.hlsl b/test/tint/var/initialization/private/array/array_i32.wgsl.expected.ir.dxc.hlsl
index adf986b..e720f9e 100644
--- a/test/tint/var/initialization/private/array/array_i32.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/var/initialization/private/array/array_i32.wgsl.expected.ir.dxc.hlsl
@@ -1,24 +1,10 @@
-SKIP: FAILED
 
+static int zero[2][3] = (int[2][3])0;
+static const int v[2][3] = {{1, 2, 3}, {4, 5, 6}};
+static int init[2][3] = v;
 [numthreads(1, 1, 1)]
 void main() {
-  int[2][3] v0 = zero;
-  int[2][3] v1 = init;
+  int v0[2][3] = zero;
+  int v1[2][3] = init;
 }
 
-DXC validation failure:
-hlsl.hlsl:3:15: error: brackets are not allowed here; to declare an array, place the brackets after the name
-  int[2][3] v0 = zero;
-     ~~~~~~   ^
-              [2][3]
-hlsl.hlsl:3:18: error: use of undeclared identifier 'zero'
-  int[2][3] v0 = zero;
-                 ^
-hlsl.hlsl:4:15: error: brackets are not allowed here; to declare an array, place the brackets after the name
-  int[2][3] v1 = init;
-     ~~~~~~   ^
-              [2][3]
-hlsl.hlsl:4:18: error: use of undeclared identifier 'init'
-  int[2][3] v1 = init;
-                 ^
-
diff --git a/test/tint/var/initialization/private/array/array_i32.wgsl.expected.ir.fxc.hlsl b/test/tint/var/initialization/private/array/array_i32.wgsl.expected.ir.fxc.hlsl
index 7e8a61d..e720f9e 100644
--- a/test/tint/var/initialization/private/array/array_i32.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/var/initialization/private/array/array_i32.wgsl.expected.ir.fxc.hlsl
@@ -1,8 +1,10 @@
-SKIP: FAILED
 
+static int zero[2][3] = (int[2][3])0;
+static const int v[2][3] = {{1, 2, 3}, {4, 5, 6}};
+static int init[2][3] = v;
 [numthreads(1, 1, 1)]
 void main() {
-  int[2][3] v0 = zero;
-  int[2][3] v1 = init;
+  int v0[2][3] = zero;
+  int v1[2][3] = init;
 }
 
diff --git a/test/tint/var/initialization/private/array/i32.wgsl.expected.ir.dxc.hlsl b/test/tint/var/initialization/private/array/i32.wgsl.expected.ir.dxc.hlsl
index ebc8550..778a954 100644
--- a/test/tint/var/initialization/private/array/i32.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/var/initialization/private/array/i32.wgsl.expected.ir.dxc.hlsl
@@ -1,24 +1,10 @@
-SKIP: FAILED
 
+static int zero[3] = (int[3])0;
+static const int v[3] = {1, 2, 3};
+static int init[3] = v;
 [numthreads(1, 1, 1)]
 void main() {
-  int[3] v0 = zero;
-  int[3] v1 = init;
+  int v0[3] = zero;
+  int v1[3] = init;
 }
 
-DXC validation failure:
-hlsl.hlsl:3:12: error: brackets are not allowed here; to declare an array, place the brackets after the name
-  int[3] v0 = zero;
-     ~~~   ^
-           [3]
-hlsl.hlsl:3:15: error: use of undeclared identifier 'zero'
-  int[3] v0 = zero;
-              ^
-hlsl.hlsl:4:12: error: brackets are not allowed here; to declare an array, place the brackets after the name
-  int[3] v1 = init;
-     ~~~   ^
-           [3]
-hlsl.hlsl:4:15: error: use of undeclared identifier 'init'
-  int[3] v1 = init;
-              ^
-
diff --git a/test/tint/var/initialization/private/array/i32.wgsl.expected.ir.fxc.hlsl b/test/tint/var/initialization/private/array/i32.wgsl.expected.ir.fxc.hlsl
index d2e7438..778a954 100644
--- a/test/tint/var/initialization/private/array/i32.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/var/initialization/private/array/i32.wgsl.expected.ir.fxc.hlsl
@@ -1,8 +1,10 @@
-SKIP: FAILED
 
+static int zero[3] = (int[3])0;
+static const int v[3] = {1, 2, 3};
+static int init[3] = v;
 [numthreads(1, 1, 1)]
 void main() {
-  int[3] v0 = zero;
-  int[3] v1 = init;
+  int v0[3] = zero;
+  int v1[3] = init;
 }
 
diff --git a/test/tint/var/initialization/private/matrix.wgsl.expected.ir.dxc.hlsl b/test/tint/var/initialization/private/matrix.wgsl.expected.ir.dxc.hlsl
index 91ea2dd..1ace907 100644
--- a/test/tint/var/initialization/private/matrix.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/var/initialization/private/matrix.wgsl.expected.ir.dxc.hlsl
@@ -1,3 +1,5 @@
+
+static float2x3 v = float2x3((0.0f).xxx, (0.0f).xxx);
 [numthreads(1, 1, 1)]
 void main() {
 }
diff --git a/test/tint/var/initialization/private/matrix.wgsl.expected.ir.fxc.hlsl b/test/tint/var/initialization/private/matrix.wgsl.expected.ir.fxc.hlsl
index 73ac9d8..1ace907 100644
--- a/test/tint/var/initialization/private/matrix.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/var/initialization/private/matrix.wgsl.expected.ir.fxc.hlsl
@@ -1,5 +1,5 @@
-SKIP: FAILED
 
+static float2x3 v = float2x3((0.0f).xxx, (0.0f).xxx);
 [numthreads(1, 1, 1)]
 void main() {
 }
diff --git a/test/tint/var/initialization/private/nested_structs.wgsl.expected.ir.dxc.hlsl b/test/tint/var/initialization/private/nested_structs.wgsl.expected.ir.dxc.hlsl
index 3f437dc..2b4ba3c 100644
--- a/test/tint/var/initialization/private/nested_structs.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/var/initialization/private/nested_structs.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,23 @@
-SKIP: FAILED
+struct S1 {
+  int i;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Access
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct S2 {
+  S1 s1;
+};
+
+struct S3 {
+  S2 s2;
+};
+
+
+static const S1 v = {42};
+static const S2 v_1 = {v};
+static const S3 v_2 = {v_1};
+static S3 P = v_2;
+RWByteAddressBuffer tint_symbol : register(u0);
+[numthreads(1, 1, 1)]
+void main() {
+  tint_symbol.Store(0u, asuint(P.s2.s1.i));
+}
+
diff --git a/test/tint/var/initialization/private/nested_structs.wgsl.expected.ir.fxc.hlsl b/test/tint/var/initialization/private/nested_structs.wgsl.expected.ir.fxc.hlsl
index 3f437dc..2b4ba3c 100644
--- a/test/tint/var/initialization/private/nested_structs.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/var/initialization/private/nested_structs.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,23 @@
-SKIP: FAILED
+struct S1 {
+  int i;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Access
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct S2 {
+  S1 s1;
+};
+
+struct S3 {
+  S2 s2;
+};
+
+
+static const S1 v = {42};
+static const S2 v_1 = {v};
+static const S3 v_2 = {v_1};
+static S3 P = v_2;
+RWByteAddressBuffer tint_symbol : register(u0);
+[numthreads(1, 1, 1)]
+void main() {
+  tint_symbol.Store(0u, asuint(P.s2.s1.i));
+}
+
diff --git a/test/tint/var/initialization/private/scalar.wgsl.expected.ir.dxc.hlsl b/test/tint/var/initialization/private/scalar.wgsl.expected.ir.dxc.hlsl
index 91ea2dd..28ec649 100644
--- a/test/tint/var/initialization/private/scalar.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/var/initialization/private/scalar.wgsl.expected.ir.dxc.hlsl
@@ -1,3 +1,5 @@
+
+static int v = 0;
 [numthreads(1, 1, 1)]
 void main() {
 }
diff --git a/test/tint/var/initialization/private/scalar.wgsl.expected.ir.fxc.hlsl b/test/tint/var/initialization/private/scalar.wgsl.expected.ir.fxc.hlsl
index 73ac9d8..28ec649 100644
--- a/test/tint/var/initialization/private/scalar.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/var/initialization/private/scalar.wgsl.expected.ir.fxc.hlsl
@@ -1,5 +1,5 @@
-SKIP: FAILED
 
+static int v = 0;
 [numthreads(1, 1, 1)]
 void main() {
 }
diff --git a/test/tint/var/initialization/private/struct.wgsl.expected.ir.dxc.hlsl b/test/tint/var/initialization/private/struct.wgsl.expected.ir.dxc.hlsl
index 91ea2dd..a4c629c 100644
--- a/test/tint/var/initialization/private/struct.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/var/initialization/private/struct.wgsl.expected.ir.dxc.hlsl
@@ -1,3 +1,10 @@
+struct S {
+  int a;
+  float b;
+};
+
+
+static S v = (S)0;
 [numthreads(1, 1, 1)]
 void main() {
 }
diff --git a/test/tint/var/initialization/private/struct.wgsl.expected.ir.fxc.hlsl b/test/tint/var/initialization/private/struct.wgsl.expected.ir.fxc.hlsl
index 73ac9d8..a4c629c 100644
--- a/test/tint/var/initialization/private/struct.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/var/initialization/private/struct.wgsl.expected.ir.fxc.hlsl
@@ -1,5 +1,10 @@
-SKIP: FAILED
+struct S {
+  int a;
+  float b;
+};
 
+
+static S v = (S)0;
 [numthreads(1, 1, 1)]
 void main() {
 }
diff --git a/test/tint/var/initialization/private/vector.wgsl.expected.ir.dxc.hlsl b/test/tint/var/initialization/private/vector.wgsl.expected.ir.dxc.hlsl
index 91ea2dd..7167737 100644
--- a/test/tint/var/initialization/private/vector.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/var/initialization/private/vector.wgsl.expected.ir.dxc.hlsl
@@ -1,3 +1,5 @@
+
+static int3 v = (0).xxx;
 [numthreads(1, 1, 1)]
 void main() {
 }
diff --git a/test/tint/var/initialization/private/vector.wgsl.expected.ir.fxc.hlsl b/test/tint/var/initialization/private/vector.wgsl.expected.ir.fxc.hlsl
index 73ac9d8..7167737 100644
--- a/test/tint/var/initialization/private/vector.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/var/initialization/private/vector.wgsl.expected.ir.fxc.hlsl
@@ -1,5 +1,5 @@
-SKIP: FAILED
 
+static int3 v = (0).xxx;
 [numthreads(1, 1, 1)]
 void main() {
 }
diff --git a/test/tint/var/initialization/workgroup/array/array_i32.wgsl.expected.ir.dxc.hlsl b/test/tint/var/initialization/workgroup/array/array_i32.wgsl.expected.ir.dxc.hlsl
index 34416f8..536f7e5 100644
--- a/test/tint/var/initialization/workgroup/array/array_i32.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/var/initialization/workgroup/array/array_i32.wgsl.expected.ir.dxc.hlsl
@@ -1,16 +1,31 @@
-SKIP: FAILED
+struct main_inputs {
+  uint tint_local_index : SV_GroupIndex;
+};
 
-[numthreads(1, 1, 1)]
-void main() {
-  int[2][3] v = zero;
+
+groupshared int zero[2][3];
+void main_inner(uint tint_local_index) {
+  {
+    uint v_1 = 0u;
+    v_1 = tint_local_index;
+    while(true) {
+      uint v_2 = v_1;
+      if ((v_2 >= 6u)) {
+        break;
+      }
+      zero[(v_2 / 3u)][(v_2 % 3u)] = 0;
+      {
+        v_1 = (v_2 + 1u);
+      }
+      continue;
+    }
+  }
+  GroupMemoryBarrierWithGroupSync();
+  int v[2][3] = zero;
 }
 
-DXC validation failure:
-hlsl.hlsl:3:14: error: brackets are not allowed here; to declare an array, place the brackets after the name
-  int[2][3] v = zero;
-     ~~~~~~  ^
-             [2][3]
-hlsl.hlsl:3:17: error: use of undeclared identifier 'zero'
-  int[2][3] v = zero;
-                ^
+[numthreads(1, 1, 1)]
+void main(main_inputs inputs) {
+  main_inner(inputs.tint_local_index);
+}
 
diff --git a/test/tint/var/initialization/workgroup/array/array_i32.wgsl.expected.ir.fxc.hlsl b/test/tint/var/initialization/workgroup/array/array_i32.wgsl.expected.ir.fxc.hlsl
index 9d8b151..536f7e5 100644
--- a/test/tint/var/initialization/workgroup/array/array_i32.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/var/initialization/workgroup/array/array_i32.wgsl.expected.ir.fxc.hlsl
@@ -1,7 +1,31 @@
-SKIP: FAILED
+struct main_inputs {
+  uint tint_local_index : SV_GroupIndex;
+};
+
+
+groupshared int zero[2][3];
+void main_inner(uint tint_local_index) {
+  {
+    uint v_1 = 0u;
+    v_1 = tint_local_index;
+    while(true) {
+      uint v_2 = v_1;
+      if ((v_2 >= 6u)) {
+        break;
+      }
+      zero[(v_2 / 3u)][(v_2 % 3u)] = 0;
+      {
+        v_1 = (v_2 + 1u);
+      }
+      continue;
+    }
+  }
+  GroupMemoryBarrierWithGroupSync();
+  int v[2][3] = zero;
+}
 
 [numthreads(1, 1, 1)]
-void main() {
-  int[2][3] v = zero;
+void main(main_inputs inputs) {
+  main_inner(inputs.tint_local_index);
 }
 
diff --git a/test/tint/var/initialization/workgroup/array/i32.wgsl.expected.ir.dxc.hlsl b/test/tint/var/initialization/workgroup/array/i32.wgsl.expected.ir.dxc.hlsl
index 3dc0689..2ca0ab8 100644
--- a/test/tint/var/initialization/workgroup/array/i32.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/var/initialization/workgroup/array/i32.wgsl.expected.ir.dxc.hlsl
@@ -1,16 +1,31 @@
-SKIP: FAILED
+struct main_inputs {
+  uint tint_local_index : SV_GroupIndex;
+};
 
-[numthreads(1, 1, 1)]
-void main() {
-  int[3] v = zero;
+
+groupshared int zero[3];
+void main_inner(uint tint_local_index) {
+  {
+    uint v_1 = 0u;
+    v_1 = tint_local_index;
+    while(true) {
+      uint v_2 = v_1;
+      if ((v_2 >= 3u)) {
+        break;
+      }
+      zero[v_2] = 0;
+      {
+        v_1 = (v_2 + 1u);
+      }
+      continue;
+    }
+  }
+  GroupMemoryBarrierWithGroupSync();
+  int v[3] = zero;
 }
 
-DXC validation failure:
-hlsl.hlsl:3:11: error: brackets are not allowed here; to declare an array, place the brackets after the name
-  int[3] v = zero;
-     ~~~  ^
-          [3]
-hlsl.hlsl:3:14: error: use of undeclared identifier 'zero'
-  int[3] v = zero;
-             ^
+[numthreads(1, 1, 1)]
+void main(main_inputs inputs) {
+  main_inner(inputs.tint_local_index);
+}
 
diff --git a/test/tint/var/initialization/workgroup/array/i32.wgsl.expected.ir.fxc.hlsl b/test/tint/var/initialization/workgroup/array/i32.wgsl.expected.ir.fxc.hlsl
index 23a92c0..2ca0ab8 100644
--- a/test/tint/var/initialization/workgroup/array/i32.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/var/initialization/workgroup/array/i32.wgsl.expected.ir.fxc.hlsl
@@ -1,7 +1,31 @@
-SKIP: FAILED
+struct main_inputs {
+  uint tint_local_index : SV_GroupIndex;
+};
+
+
+groupshared int zero[3];
+void main_inner(uint tint_local_index) {
+  {
+    uint v_1 = 0u;
+    v_1 = tint_local_index;
+    while(true) {
+      uint v_2 = v_1;
+      if ((v_2 >= 3u)) {
+        break;
+      }
+      zero[v_2] = 0;
+      {
+        v_1 = (v_2 + 1u);
+      }
+      continue;
+    }
+  }
+  GroupMemoryBarrierWithGroupSync();
+  int v[3] = zero;
+}
 
 [numthreads(1, 1, 1)]
-void main() {
-  int[3] v = zero;
+void main(main_inputs inputs) {
+  main_inner(inputs.tint_local_index);
 }
 
diff --git a/test/tint/var/initialization/workgroup/matrix.wgsl.expected.ir.dxc.hlsl b/test/tint/var/initialization/workgroup/matrix.wgsl.expected.ir.dxc.hlsl
index 91ea2dd..6d6da45 100644
--- a/test/tint/var/initialization/workgroup/matrix.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/var/initialization/workgroup/matrix.wgsl.expected.ir.dxc.hlsl
@@ -1,4 +1,18 @@
+struct main_inputs {
+  uint tint_local_index : SV_GroupIndex;
+};
+
+
+groupshared float2x3 v;
+void main_inner(uint tint_local_index) {
+  if ((tint_local_index == 0u)) {
+    v = float2x3((0.0f).xxx, (0.0f).xxx);
+  }
+  GroupMemoryBarrierWithGroupSync();
+}
+
 [numthreads(1, 1, 1)]
-void main() {
+void main(main_inputs inputs) {
+  main_inner(inputs.tint_local_index);
 }
 
diff --git a/test/tint/var/initialization/workgroup/matrix.wgsl.expected.ir.fxc.hlsl b/test/tint/var/initialization/workgroup/matrix.wgsl.expected.ir.fxc.hlsl
index 73ac9d8..6d6da45 100644
--- a/test/tint/var/initialization/workgroup/matrix.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/var/initialization/workgroup/matrix.wgsl.expected.ir.fxc.hlsl
@@ -1,6 +1,18 @@
-SKIP: FAILED
+struct main_inputs {
+  uint tint_local_index : SV_GroupIndex;
+};
+
+
+groupshared float2x3 v;
+void main_inner(uint tint_local_index) {
+  if ((tint_local_index == 0u)) {
+    v = float2x3((0.0f).xxx, (0.0f).xxx);
+  }
+  GroupMemoryBarrierWithGroupSync();
+}
 
 [numthreads(1, 1, 1)]
-void main() {
+void main(main_inputs inputs) {
+  main_inner(inputs.tint_local_index);
 }
 
diff --git a/test/tint/var/initialization/workgroup/scalar.wgsl.expected.ir.dxc.hlsl b/test/tint/var/initialization/workgroup/scalar.wgsl.expected.ir.dxc.hlsl
index 22809c9..557bd1e 100644
--- a/test/tint/var/initialization/workgroup/scalar.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/var/initialization/workgroup/scalar.wgsl.expected.ir.dxc.hlsl
@@ -1,12 +1,19 @@
-SKIP: FAILED
+struct main_inputs {
+  uint tint_local_index : SV_GroupIndex;
+};
 
-[numthreads(1, 1, 1)]
-void main() {
+
+groupshared int v;
+void main_inner(uint tint_local_index) {
+  if ((tint_local_index == 0u)) {
+    v = 0;
+  }
+  GroupMemoryBarrierWithGroupSync();
   int i = v;
 }
 
-DXC validation failure:
-hlsl.hlsl:3:11: error: use of undeclared identifier 'v'
-  int i = v;
-          ^
+[numthreads(1, 1, 1)]
+void main(main_inputs inputs) {
+  main_inner(inputs.tint_local_index);
+}
 
diff --git a/test/tint/var/initialization/workgroup/scalar.wgsl.expected.ir.fxc.hlsl b/test/tint/var/initialization/workgroup/scalar.wgsl.expected.ir.fxc.hlsl
index 88c1f81..557bd1e 100644
--- a/test/tint/var/initialization/workgroup/scalar.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/var/initialization/workgroup/scalar.wgsl.expected.ir.fxc.hlsl
@@ -1,7 +1,19 @@
-SKIP: FAILED
+struct main_inputs {
+  uint tint_local_index : SV_GroupIndex;
+};
+
+
+groupshared int v;
+void main_inner(uint tint_local_index) {
+  if ((tint_local_index == 0u)) {
+    v = 0;
+  }
+  GroupMemoryBarrierWithGroupSync();
+  int i = v;
+}
 
 [numthreads(1, 1, 1)]
-void main() {
-  int i = v;
+void main(main_inputs inputs) {
+  main_inner(inputs.tint_local_index);
 }
 
diff --git a/test/tint/var/initialization/workgroup/struct.wgsl.expected.ir.dxc.hlsl b/test/tint/var/initialization/workgroup/struct.wgsl.expected.ir.dxc.hlsl
index 91ea2dd..f147d3d 100644
--- a/test/tint/var/initialization/workgroup/struct.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/var/initialization/workgroup/struct.wgsl.expected.ir.dxc.hlsl
@@ -1,4 +1,24 @@
+struct S {
+  int a;
+  float b;
+};
+
+struct main_inputs {
+  uint tint_local_index : SV_GroupIndex;
+};
+
+
+groupshared S v;
+void main_inner(uint tint_local_index) {
+  if ((tint_local_index == 0u)) {
+    S v_1 = (S)0;
+    v = v_1;
+  }
+  GroupMemoryBarrierWithGroupSync();
+}
+
 [numthreads(1, 1, 1)]
-void main() {
+void main(main_inputs inputs) {
+  main_inner(inputs.tint_local_index);
 }
 
diff --git a/test/tint/var/initialization/workgroup/struct.wgsl.expected.ir.fxc.hlsl b/test/tint/var/initialization/workgroup/struct.wgsl.expected.ir.fxc.hlsl
index 73ac9d8..f147d3d 100644
--- a/test/tint/var/initialization/workgroup/struct.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/var/initialization/workgroup/struct.wgsl.expected.ir.fxc.hlsl
@@ -1,6 +1,24 @@
-SKIP: FAILED
+struct S {
+  int a;
+  float b;
+};
+
+struct main_inputs {
+  uint tint_local_index : SV_GroupIndex;
+};
+
+
+groupshared S v;
+void main_inner(uint tint_local_index) {
+  if ((tint_local_index == 0u)) {
+    S v_1 = (S)0;
+    v = v_1;
+  }
+  GroupMemoryBarrierWithGroupSync();
+}
 
 [numthreads(1, 1, 1)]
-void main() {
+void main(main_inputs inputs) {
+  main_inner(inputs.tint_local_index);
 }
 
diff --git a/test/tint/var/initialization/workgroup/vector.wgsl.expected.ir.dxc.hlsl b/test/tint/var/initialization/workgroup/vector.wgsl.expected.ir.dxc.hlsl
index 91ea2dd..4afc2d2 100644
--- a/test/tint/var/initialization/workgroup/vector.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/var/initialization/workgroup/vector.wgsl.expected.ir.dxc.hlsl
@@ -1,4 +1,18 @@
+struct main_inputs {
+  uint tint_local_index : SV_GroupIndex;
+};
+
+
+groupshared int3 v;
+void main_inner(uint tint_local_index) {
+  if ((tint_local_index == 0u)) {
+    v = (0).xxx;
+  }
+  GroupMemoryBarrierWithGroupSync();
+}
+
 [numthreads(1, 1, 1)]
-void main() {
+void main(main_inputs inputs) {
+  main_inner(inputs.tint_local_index);
 }
 
diff --git a/test/tint/var/initialization/workgroup/vector.wgsl.expected.ir.fxc.hlsl b/test/tint/var/initialization/workgroup/vector.wgsl.expected.ir.fxc.hlsl
index 73ac9d8..4afc2d2 100644
--- a/test/tint/var/initialization/workgroup/vector.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/var/initialization/workgroup/vector.wgsl.expected.ir.fxc.hlsl
@@ -1,6 +1,18 @@
-SKIP: FAILED
+struct main_inputs {
+  uint tint_local_index : SV_GroupIndex;
+};
+
+
+groupshared int3 v;
+void main_inner(uint tint_local_index) {
+  if ((tint_local_index == 0u)) {
+    v = (0).xxx;
+  }
+  GroupMemoryBarrierWithGroupSync();
+}
 
 [numthreads(1, 1, 1)]
-void main() {
+void main(main_inputs inputs) {
+  main_inner(inputs.tint_local_index);
 }
 
diff --git a/test/tint/var/override/named/no_init/bool.wgsl.expected.ir.dxc.hlsl b/test/tint/var/override/named/no_init/bool.wgsl.expected.ir.dxc.hlsl
index bdeab23..cf814ef 100644
--- a/test/tint/var/override/named/no_init/bool.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/var/override/named/no_init/bool.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,7 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:198 internal compiler error: Switch() matched no cases. Type: tint::core::ir::If
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+[numthreads(1, 1, 1)]
+void main() {
+  if (false) {
+  }
+}
+
diff --git a/test/tint/var/override/named/no_init/bool.wgsl.expected.ir.fxc.hlsl b/test/tint/var/override/named/no_init/bool.wgsl.expected.ir.fxc.hlsl
index bdeab23..cf814ef 100644
--- a/test/tint/var/override/named/no_init/bool.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/var/override/named/no_init/bool.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,7 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:198 internal compiler error: Switch() matched no cases. Type: tint::core::ir::If
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+[numthreads(1, 1, 1)]
+void main() {
+  if (false) {
+  }
+}
+
diff --git a/test/tint/var/override/named/no_init/f32.wgsl.expected.ir.dxc.hlsl b/test/tint/var/override/named/no_init/f32.wgsl.expected.ir.dxc.hlsl
index bdeab23..081392a 100644
--- a/test/tint/var/override/named/no_init/f32.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/var/override/named/no_init/f32.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,7 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:198 internal compiler error: Switch() matched no cases. Type: tint::core::ir::If
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+[numthreads(1, 1, 1)]
+void main() {
+  if (true) {
+  }
+}
+
diff --git a/test/tint/var/override/named/no_init/f32.wgsl.expected.ir.fxc.hlsl b/test/tint/var/override/named/no_init/f32.wgsl.expected.ir.fxc.hlsl
index bdeab23..081392a 100644
--- a/test/tint/var/override/named/no_init/f32.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/var/override/named/no_init/f32.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,7 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:198 internal compiler error: Switch() matched no cases. Type: tint::core::ir::If
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+[numthreads(1, 1, 1)]
+void main() {
+  if (true) {
+  }
+}
+
diff --git a/test/tint/var/override/named/no_init/i32.wgsl.expected.ir.dxc.hlsl b/test/tint/var/override/named/no_init/i32.wgsl.expected.ir.dxc.hlsl
index bdeab23..cf814ef 100644
--- a/test/tint/var/override/named/no_init/i32.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/var/override/named/no_init/i32.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,7 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:198 internal compiler error: Switch() matched no cases. Type: tint::core::ir::If
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+[numthreads(1, 1, 1)]
+void main() {
+  if (false) {
+  }
+}
+
diff --git a/test/tint/var/override/named/no_init/i32.wgsl.expected.ir.fxc.hlsl b/test/tint/var/override/named/no_init/i32.wgsl.expected.ir.fxc.hlsl
index bdeab23..cf814ef 100644
--- a/test/tint/var/override/named/no_init/i32.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/var/override/named/no_init/i32.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,7 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:198 internal compiler error: Switch() matched no cases. Type: tint::core::ir::If
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+[numthreads(1, 1, 1)]
+void main() {
+  if (false) {
+  }
+}
+
diff --git a/test/tint/var/override/named/no_init/u32.wgsl.expected.ir.dxc.hlsl b/test/tint/var/override/named/no_init/u32.wgsl.expected.ir.dxc.hlsl
index bdeab23..cf814ef 100644
--- a/test/tint/var/override/named/no_init/u32.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/var/override/named/no_init/u32.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,7 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:198 internal compiler error: Switch() matched no cases. Type: tint::core::ir::If
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+[numthreads(1, 1, 1)]
+void main() {
+  if (false) {
+  }
+}
+
diff --git a/test/tint/var/override/named/no_init/u32.wgsl.expected.ir.fxc.hlsl b/test/tint/var/override/named/no_init/u32.wgsl.expected.ir.fxc.hlsl
index bdeab23..cf814ef 100644
--- a/test/tint/var/override/named/no_init/u32.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/var/override/named/no_init/u32.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,7 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:198 internal compiler error: Switch() matched no cases. Type: tint::core::ir::If
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+[numthreads(1, 1, 1)]
+void main() {
+  if (false) {
+  }
+}
+
diff --git a/test/tint/var/override/named/val_init/bool.wgsl.expected.ir.dxc.hlsl b/test/tint/var/override/named/val_init/bool.wgsl.expected.ir.dxc.hlsl
index bdeab23..cf814ef 100644
--- a/test/tint/var/override/named/val_init/bool.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/var/override/named/val_init/bool.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,7 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:198 internal compiler error: Switch() matched no cases. Type: tint::core::ir::If
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+[numthreads(1, 1, 1)]
+void main() {
+  if (false) {
+  }
+}
+
diff --git a/test/tint/var/override/named/val_init/bool.wgsl.expected.ir.fxc.hlsl b/test/tint/var/override/named/val_init/bool.wgsl.expected.ir.fxc.hlsl
index bdeab23..cf814ef 100644
--- a/test/tint/var/override/named/val_init/bool.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/var/override/named/val_init/bool.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,7 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:198 internal compiler error: Switch() matched no cases. Type: tint::core::ir::If
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+[numthreads(1, 1, 1)]
+void main() {
+  if (false) {
+  }
+}
+
diff --git a/test/tint/var/override/named/val_init/f32.wgsl.expected.ir.dxc.hlsl b/test/tint/var/override/named/val_init/f32.wgsl.expected.ir.dxc.hlsl
index bdeab23..081392a 100644
--- a/test/tint/var/override/named/val_init/f32.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/var/override/named/val_init/f32.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,7 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:198 internal compiler error: Switch() matched no cases. Type: tint::core::ir::If
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+[numthreads(1, 1, 1)]
+void main() {
+  if (true) {
+  }
+}
+
diff --git a/test/tint/var/override/named/val_init/f32.wgsl.expected.ir.fxc.hlsl b/test/tint/var/override/named/val_init/f32.wgsl.expected.ir.fxc.hlsl
index bdeab23..081392a 100644
--- a/test/tint/var/override/named/val_init/f32.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/var/override/named/val_init/f32.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,7 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:198 internal compiler error: Switch() matched no cases. Type: tint::core::ir::If
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+[numthreads(1, 1, 1)]
+void main() {
+  if (true) {
+  }
+}
+
diff --git a/test/tint/var/override/named/val_init/i32.wgsl.expected.ir.dxc.hlsl b/test/tint/var/override/named/val_init/i32.wgsl.expected.ir.dxc.hlsl
index bdeab23..cf814ef 100644
--- a/test/tint/var/override/named/val_init/i32.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/var/override/named/val_init/i32.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,7 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:198 internal compiler error: Switch() matched no cases. Type: tint::core::ir::If
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+[numthreads(1, 1, 1)]
+void main() {
+  if (false) {
+  }
+}
+
diff --git a/test/tint/var/override/named/val_init/i32.wgsl.expected.ir.fxc.hlsl b/test/tint/var/override/named/val_init/i32.wgsl.expected.ir.fxc.hlsl
index bdeab23..cf814ef 100644
--- a/test/tint/var/override/named/val_init/i32.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/var/override/named/val_init/i32.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,7 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:198 internal compiler error: Switch() matched no cases. Type: tint::core::ir::If
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+[numthreads(1, 1, 1)]
+void main() {
+  if (false) {
+  }
+}
+
diff --git a/test/tint/var/override/named/val_init/u32.wgsl.expected.ir.dxc.hlsl b/test/tint/var/override/named/val_init/u32.wgsl.expected.ir.dxc.hlsl
index bdeab23..cf814ef 100644
--- a/test/tint/var/override/named/val_init/u32.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/var/override/named/val_init/u32.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,7 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:198 internal compiler error: Switch() matched no cases. Type: tint::core::ir::If
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+[numthreads(1, 1, 1)]
+void main() {
+  if (false) {
+  }
+}
+
diff --git a/test/tint/var/override/named/val_init/u32.wgsl.expected.ir.fxc.hlsl b/test/tint/var/override/named/val_init/u32.wgsl.expected.ir.fxc.hlsl
index bdeab23..cf814ef 100644
--- a/test/tint/var/override/named/val_init/u32.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/var/override/named/val_init/u32.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,7 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:198 internal compiler error: Switch() matched no cases. Type: tint::core::ir::If
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+[numthreads(1, 1, 1)]
+void main() {
+  if (false) {
+  }
+}
+
diff --git a/test/tint/var/override/named/zero_init/bool.wgsl.expected.ir.dxc.hlsl b/test/tint/var/override/named/zero_init/bool.wgsl.expected.ir.dxc.hlsl
index bdeab23..cf814ef 100644
--- a/test/tint/var/override/named/zero_init/bool.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/var/override/named/zero_init/bool.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,7 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:198 internal compiler error: Switch() matched no cases. Type: tint::core::ir::If
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+[numthreads(1, 1, 1)]
+void main() {
+  if (false) {
+  }
+}
+
diff --git a/test/tint/var/override/named/zero_init/bool.wgsl.expected.ir.fxc.hlsl b/test/tint/var/override/named/zero_init/bool.wgsl.expected.ir.fxc.hlsl
index bdeab23..cf814ef 100644
--- a/test/tint/var/override/named/zero_init/bool.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/var/override/named/zero_init/bool.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,7 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:198 internal compiler error: Switch() matched no cases. Type: tint::core::ir::If
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+[numthreads(1, 1, 1)]
+void main() {
+  if (false) {
+  }
+}
+
diff --git a/test/tint/var/override/named/zero_init/f32.wgsl.expected.ir.dxc.hlsl b/test/tint/var/override/named/zero_init/f32.wgsl.expected.ir.dxc.hlsl
index bdeab23..081392a 100644
--- a/test/tint/var/override/named/zero_init/f32.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/var/override/named/zero_init/f32.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,7 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:198 internal compiler error: Switch() matched no cases. Type: tint::core::ir::If
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+[numthreads(1, 1, 1)]
+void main() {
+  if (true) {
+  }
+}
+
diff --git a/test/tint/var/override/named/zero_init/f32.wgsl.expected.ir.fxc.hlsl b/test/tint/var/override/named/zero_init/f32.wgsl.expected.ir.fxc.hlsl
index bdeab23..081392a 100644
--- a/test/tint/var/override/named/zero_init/f32.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/var/override/named/zero_init/f32.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,7 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:198 internal compiler error: Switch() matched no cases. Type: tint::core::ir::If
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+[numthreads(1, 1, 1)]
+void main() {
+  if (true) {
+  }
+}
+
diff --git a/test/tint/var/override/named/zero_init/i32.wgsl.expected.ir.dxc.hlsl b/test/tint/var/override/named/zero_init/i32.wgsl.expected.ir.dxc.hlsl
index bdeab23..cf814ef 100644
--- a/test/tint/var/override/named/zero_init/i32.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/var/override/named/zero_init/i32.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,7 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:198 internal compiler error: Switch() matched no cases. Type: tint::core::ir::If
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+[numthreads(1, 1, 1)]
+void main() {
+  if (false) {
+  }
+}
+
diff --git a/test/tint/var/override/named/zero_init/i32.wgsl.expected.ir.fxc.hlsl b/test/tint/var/override/named/zero_init/i32.wgsl.expected.ir.fxc.hlsl
index bdeab23..cf814ef 100644
--- a/test/tint/var/override/named/zero_init/i32.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/var/override/named/zero_init/i32.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,7 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:198 internal compiler error: Switch() matched no cases. Type: tint::core::ir::If
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+[numthreads(1, 1, 1)]
+void main() {
+  if (false) {
+  }
+}
+
diff --git a/test/tint/var/override/named/zero_init/u32.wgsl.expected.ir.dxc.hlsl b/test/tint/var/override/named/zero_init/u32.wgsl.expected.ir.dxc.hlsl
index bdeab23..cf814ef 100644
--- a/test/tint/var/override/named/zero_init/u32.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/var/override/named/zero_init/u32.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,7 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:198 internal compiler error: Switch() matched no cases. Type: tint::core::ir::If
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+[numthreads(1, 1, 1)]
+void main() {
+  if (false) {
+  }
+}
+
diff --git a/test/tint/var/override/named/zero_init/u32.wgsl.expected.ir.fxc.hlsl b/test/tint/var/override/named/zero_init/u32.wgsl.expected.ir.fxc.hlsl
index bdeab23..cf814ef 100644
--- a/test/tint/var/override/named/zero_init/u32.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/var/override/named/zero_init/u32.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,7 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:198 internal compiler error: Switch() matched no cases. Type: tint::core::ir::If
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+[numthreads(1, 1, 1)]
+void main() {
+  if (false) {
+  }
+}
+
diff --git a/test/tint/var/override/numbered/no_init/bool.wgsl.expected.ir.dxc.hlsl b/test/tint/var/override/numbered/no_init/bool.wgsl.expected.ir.dxc.hlsl
index bdeab23..cf814ef 100644
--- a/test/tint/var/override/numbered/no_init/bool.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/var/override/numbered/no_init/bool.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,7 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:198 internal compiler error: Switch() matched no cases. Type: tint::core::ir::If
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+[numthreads(1, 1, 1)]
+void main() {
+  if (false) {
+  }
+}
+
diff --git a/test/tint/var/override/numbered/no_init/bool.wgsl.expected.ir.fxc.hlsl b/test/tint/var/override/numbered/no_init/bool.wgsl.expected.ir.fxc.hlsl
index bdeab23..cf814ef 100644
--- a/test/tint/var/override/numbered/no_init/bool.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/var/override/numbered/no_init/bool.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,7 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:198 internal compiler error: Switch() matched no cases. Type: tint::core::ir::If
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+[numthreads(1, 1, 1)]
+void main() {
+  if (false) {
+  }
+}
+
diff --git a/test/tint/var/override/numbered/no_init/f32.wgsl.expected.ir.dxc.hlsl b/test/tint/var/override/numbered/no_init/f32.wgsl.expected.ir.dxc.hlsl
index bdeab23..081392a 100644
--- a/test/tint/var/override/numbered/no_init/f32.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/var/override/numbered/no_init/f32.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,7 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:198 internal compiler error: Switch() matched no cases. Type: tint::core::ir::If
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+[numthreads(1, 1, 1)]
+void main() {
+  if (true) {
+  }
+}
+
diff --git a/test/tint/var/override/numbered/no_init/f32.wgsl.expected.ir.fxc.hlsl b/test/tint/var/override/numbered/no_init/f32.wgsl.expected.ir.fxc.hlsl
index bdeab23..081392a 100644
--- a/test/tint/var/override/numbered/no_init/f32.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/var/override/numbered/no_init/f32.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,7 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:198 internal compiler error: Switch() matched no cases. Type: tint::core::ir::If
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+[numthreads(1, 1, 1)]
+void main() {
+  if (true) {
+  }
+}
+
diff --git a/test/tint/var/override/numbered/no_init/i32.wgsl.expected.ir.dxc.hlsl b/test/tint/var/override/numbered/no_init/i32.wgsl.expected.ir.dxc.hlsl
index bdeab23..081392a 100644
--- a/test/tint/var/override/numbered/no_init/i32.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/var/override/numbered/no_init/i32.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,7 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:198 internal compiler error: Switch() matched no cases. Type: tint::core::ir::If
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+[numthreads(1, 1, 1)]
+void main() {
+  if (true) {
+  }
+}
+
diff --git a/test/tint/var/override/numbered/no_init/i32.wgsl.expected.ir.fxc.hlsl b/test/tint/var/override/numbered/no_init/i32.wgsl.expected.ir.fxc.hlsl
index bdeab23..081392a 100644
--- a/test/tint/var/override/numbered/no_init/i32.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/var/override/numbered/no_init/i32.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,7 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:198 internal compiler error: Switch() matched no cases. Type: tint::core::ir::If
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+[numthreads(1, 1, 1)]
+void main() {
+  if (true) {
+  }
+}
+
diff --git a/test/tint/var/override/numbered/no_init/u32.wgsl.expected.ir.dxc.hlsl b/test/tint/var/override/numbered/no_init/u32.wgsl.expected.ir.dxc.hlsl
index bdeab23..cf814ef 100644
--- a/test/tint/var/override/numbered/no_init/u32.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/var/override/numbered/no_init/u32.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,7 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:198 internal compiler error: Switch() matched no cases. Type: tint::core::ir::If
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+[numthreads(1, 1, 1)]
+void main() {
+  if (false) {
+  }
+}
+
diff --git a/test/tint/var/override/numbered/no_init/u32.wgsl.expected.ir.fxc.hlsl b/test/tint/var/override/numbered/no_init/u32.wgsl.expected.ir.fxc.hlsl
index bdeab23..cf814ef 100644
--- a/test/tint/var/override/numbered/no_init/u32.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/var/override/numbered/no_init/u32.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,7 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:198 internal compiler error: Switch() matched no cases. Type: tint::core::ir::If
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+[numthreads(1, 1, 1)]
+void main() {
+  if (false) {
+  }
+}
+
diff --git a/test/tint/var/override/numbered/val_init/bool.wgsl.expected.ir.dxc.hlsl b/test/tint/var/override/numbered/val_init/bool.wgsl.expected.ir.dxc.hlsl
index bdeab23..cf814ef 100644
--- a/test/tint/var/override/numbered/val_init/bool.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/var/override/numbered/val_init/bool.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,7 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:198 internal compiler error: Switch() matched no cases. Type: tint::core::ir::If
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+[numthreads(1, 1, 1)]
+void main() {
+  if (false) {
+  }
+}
+
diff --git a/test/tint/var/override/numbered/val_init/bool.wgsl.expected.ir.fxc.hlsl b/test/tint/var/override/numbered/val_init/bool.wgsl.expected.ir.fxc.hlsl
index bdeab23..cf814ef 100644
--- a/test/tint/var/override/numbered/val_init/bool.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/var/override/numbered/val_init/bool.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,7 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:198 internal compiler error: Switch() matched no cases. Type: tint::core::ir::If
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+[numthreads(1, 1, 1)]
+void main() {
+  if (false) {
+  }
+}
+
diff --git a/test/tint/var/override/numbered/val_init/f32.wgsl.expected.ir.dxc.hlsl b/test/tint/var/override/numbered/val_init/f32.wgsl.expected.ir.dxc.hlsl
index bdeab23..cf814ef 100644
--- a/test/tint/var/override/numbered/val_init/f32.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/var/override/numbered/val_init/f32.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,7 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:198 internal compiler error: Switch() matched no cases. Type: tint::core::ir::If
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+[numthreads(1, 1, 1)]
+void main() {
+  if (false) {
+  }
+}
+
diff --git a/test/tint/var/override/numbered/val_init/f32.wgsl.expected.ir.fxc.hlsl b/test/tint/var/override/numbered/val_init/f32.wgsl.expected.ir.fxc.hlsl
index bdeab23..cf814ef 100644
--- a/test/tint/var/override/numbered/val_init/f32.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/var/override/numbered/val_init/f32.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,7 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:198 internal compiler error: Switch() matched no cases. Type: tint::core::ir::If
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+[numthreads(1, 1, 1)]
+void main() {
+  if (false) {
+  }
+}
+
diff --git a/test/tint/var/override/numbered/val_init/i32.wgsl.expected.ir.dxc.hlsl b/test/tint/var/override/numbered/val_init/i32.wgsl.expected.ir.dxc.hlsl
index bdeab23..cf814ef 100644
--- a/test/tint/var/override/numbered/val_init/i32.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/var/override/numbered/val_init/i32.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,7 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:198 internal compiler error: Switch() matched no cases. Type: tint::core::ir::If
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+[numthreads(1, 1, 1)]
+void main() {
+  if (false) {
+  }
+}
+
diff --git a/test/tint/var/override/numbered/val_init/i32.wgsl.expected.ir.fxc.hlsl b/test/tint/var/override/numbered/val_init/i32.wgsl.expected.ir.fxc.hlsl
index bdeab23..cf814ef 100644
--- a/test/tint/var/override/numbered/val_init/i32.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/var/override/numbered/val_init/i32.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,7 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:198 internal compiler error: Switch() matched no cases. Type: tint::core::ir::If
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+[numthreads(1, 1, 1)]
+void main() {
+  if (false) {
+  }
+}
+
diff --git a/test/tint/var/override/numbered/val_init/u32.wgsl.expected.ir.dxc.hlsl b/test/tint/var/override/numbered/val_init/u32.wgsl.expected.ir.dxc.hlsl
index bdeab23..cf814ef 100644
--- a/test/tint/var/override/numbered/val_init/u32.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/var/override/numbered/val_init/u32.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,7 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:198 internal compiler error: Switch() matched no cases. Type: tint::core::ir::If
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+[numthreads(1, 1, 1)]
+void main() {
+  if (false) {
+  }
+}
+
diff --git a/test/tint/var/override/numbered/val_init/u32.wgsl.expected.ir.fxc.hlsl b/test/tint/var/override/numbered/val_init/u32.wgsl.expected.ir.fxc.hlsl
index bdeab23..cf814ef 100644
--- a/test/tint/var/override/numbered/val_init/u32.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/var/override/numbered/val_init/u32.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,7 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:198 internal compiler error: Switch() matched no cases. Type: tint::core::ir::If
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+[numthreads(1, 1, 1)]
+void main() {
+  if (false) {
+  }
+}
+
diff --git a/test/tint/var/override/numbered/zero_init/bool.wgsl.expected.ir.dxc.hlsl b/test/tint/var/override/numbered/zero_init/bool.wgsl.expected.ir.dxc.hlsl
index bdeab23..cf814ef 100644
--- a/test/tint/var/override/numbered/zero_init/bool.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/var/override/numbered/zero_init/bool.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,7 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:198 internal compiler error: Switch() matched no cases. Type: tint::core::ir::If
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+[numthreads(1, 1, 1)]
+void main() {
+  if (false) {
+  }
+}
+
diff --git a/test/tint/var/override/numbered/zero_init/bool.wgsl.expected.ir.fxc.hlsl b/test/tint/var/override/numbered/zero_init/bool.wgsl.expected.ir.fxc.hlsl
index bdeab23..cf814ef 100644
--- a/test/tint/var/override/numbered/zero_init/bool.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/var/override/numbered/zero_init/bool.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,7 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:198 internal compiler error: Switch() matched no cases. Type: tint::core::ir::If
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+[numthreads(1, 1, 1)]
+void main() {
+  if (false) {
+  }
+}
+
diff --git a/test/tint/var/override/numbered/zero_init/f32.wgsl.expected.ir.dxc.hlsl b/test/tint/var/override/numbered/zero_init/f32.wgsl.expected.ir.dxc.hlsl
index bdeab23..081392a 100644
--- a/test/tint/var/override/numbered/zero_init/f32.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/var/override/numbered/zero_init/f32.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,7 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:198 internal compiler error: Switch() matched no cases. Type: tint::core::ir::If
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+[numthreads(1, 1, 1)]
+void main() {
+  if (true) {
+  }
+}
+
diff --git a/test/tint/var/override/numbered/zero_init/f32.wgsl.expected.ir.fxc.hlsl b/test/tint/var/override/numbered/zero_init/f32.wgsl.expected.ir.fxc.hlsl
index bdeab23..081392a 100644
--- a/test/tint/var/override/numbered/zero_init/f32.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/var/override/numbered/zero_init/f32.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,7 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:198 internal compiler error: Switch() matched no cases. Type: tint::core::ir::If
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+[numthreads(1, 1, 1)]
+void main() {
+  if (true) {
+  }
+}
+
diff --git a/test/tint/var/override/numbered/zero_init/i32.wgsl.expected.ir.dxc.hlsl b/test/tint/var/override/numbered/zero_init/i32.wgsl.expected.ir.dxc.hlsl
index bdeab23..cf814ef 100644
--- a/test/tint/var/override/numbered/zero_init/i32.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/var/override/numbered/zero_init/i32.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,7 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:198 internal compiler error: Switch() matched no cases. Type: tint::core::ir::If
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+[numthreads(1, 1, 1)]
+void main() {
+  if (false) {
+  }
+}
+
diff --git a/test/tint/var/override/numbered/zero_init/i32.wgsl.expected.ir.fxc.hlsl b/test/tint/var/override/numbered/zero_init/i32.wgsl.expected.ir.fxc.hlsl
index bdeab23..cf814ef 100644
--- a/test/tint/var/override/numbered/zero_init/i32.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/var/override/numbered/zero_init/i32.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,7 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:198 internal compiler error: Switch() matched no cases. Type: tint::core::ir::If
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+[numthreads(1, 1, 1)]
+void main() {
+  if (false) {
+  }
+}
+
diff --git a/test/tint/var/override/numbered/zero_init/u32.wgsl.expected.ir.dxc.hlsl b/test/tint/var/override/numbered/zero_init/u32.wgsl.expected.ir.dxc.hlsl
index bdeab23..cf814ef 100644
--- a/test/tint/var/override/numbered/zero_init/u32.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/var/override/numbered/zero_init/u32.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,7 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:198 internal compiler error: Switch() matched no cases. Type: tint::core::ir::If
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+[numthreads(1, 1, 1)]
+void main() {
+  if (false) {
+  }
+}
+
diff --git a/test/tint/var/override/numbered/zero_init/u32.wgsl.expected.ir.fxc.hlsl b/test/tint/var/override/numbered/zero_init/u32.wgsl.expected.ir.fxc.hlsl
index bdeab23..cf814ef 100644
--- a/test/tint/var/override/numbered/zero_init/u32.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/var/override/numbered/zero_init/u32.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,7 @@
-SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:198 internal compiler error: Switch() matched no cases. Type: tint::core::ir::If
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+[numthreads(1, 1, 1)]
+void main() {
+  if (false) {
+  }
+}
+
diff --git a/test/tint/var/uses/instance_index.wgsl.expected.ir.dxc.hlsl b/test/tint/var/uses/instance_index.wgsl.expected.ir.dxc.hlsl
index c6e1d96..1f2fdb9 100644
--- a/test/tint/var/uses/instance_index.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/var/uses/instance_index.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,18 @@
-SKIP: FAILED
+struct main_outputs {
+  float4 tint_symbol : SV_Position;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Construct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct main_inputs {
+  uint b : SV_InstanceID;
+};
+
+
+float4 main_inner(uint b) {
+  return float4((float(b)).xxxx);
+}
+
+main_outputs main(main_inputs inputs) {
+  main_outputs v = {main_inner(inputs.b)};
+  return v;
+}
+
diff --git a/test/tint/var/uses/instance_index.wgsl.expected.ir.fxc.hlsl b/test/tint/var/uses/instance_index.wgsl.expected.ir.fxc.hlsl
index c6e1d96..1f2fdb9 100644
--- a/test/tint/var/uses/instance_index.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/var/uses/instance_index.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,18 @@
-SKIP: FAILED
+struct main_outputs {
+  float4 tint_symbol : SV_Position;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Construct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct main_inputs {
+  uint b : SV_InstanceID;
+};
+
+
+float4 main_inner(uint b) {
+  return float4((float(b)).xxxx);
+}
+
+main_outputs main(main_inputs inputs) {
+  main_outputs v = {main_inner(inputs.b)};
+  return v;
+}
+
diff --git a/test/tint/var/uses/many_workgroup_vars.wgsl.expected.ir.dxc.hlsl b/test/tint/var/uses/many_workgroup_vars.wgsl.expected.ir.dxc.hlsl
index c0935cc..5a1ce84 100644
--- a/test/tint/var/uses/many_workgroup_vars.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/var/uses/many_workgroup_vars.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,316 @@
-SKIP: FAILED
+struct tint_symbol_inputs {
+  uint idx : SV_GroupIndex;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:198 internal compiler error: Switch() matched no cases. Type: tint::core::ir::StoreVectorElement
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+
+groupshared float2x2 m00;
+groupshared float2x2 m01;
+groupshared float2x2 m02;
+groupshared float2x2 m03;
+groupshared float2x2 m04;
+groupshared float2x2 m05;
+groupshared float2x2 m06;
+groupshared float2x2 m07;
+groupshared float2x2 m08;
+groupshared float2x2 m09;
+groupshared float2x2 m10;
+groupshared float2x2 m11;
+groupshared float2x2 m12;
+groupshared float2x2 m13;
+groupshared float2x2 m14;
+groupshared float2x2 m15;
+groupshared float2x2 m16;
+groupshared float2x2 m17;
+groupshared float2x2 m18;
+groupshared float2x2 m19;
+groupshared float2x2 m20;
+groupshared float2x2 m21;
+groupshared float2x2 m22;
+groupshared float2x2 m23;
+groupshared float2x2 m24;
+groupshared float2x2 m25;
+groupshared float2x2 m26;
+groupshared float2x2 m27;
+groupshared float2x2 m28;
+groupshared float2x2 m29;
+groupshared float2x2 m30;
+groupshared float2x2 m31;
+groupshared float2x2 m32;
+groupshared float2x2 m33;
+groupshared float2x2 m34;
+groupshared float2x2 m35;
+groupshared float2x2 m36;
+groupshared float2x2 m37;
+groupshared float2x2 m38;
+groupshared float2x2 m39;
+groupshared float2x2 m40;
+groupshared float2x2 m41;
+groupshared float2x2 m42;
+groupshared float2x2 m43;
+groupshared float2x2 m44;
+groupshared float2x2 m45;
+groupshared float2x2 m46;
+groupshared float2x2 m47;
+groupshared float2x2 m48;
+groupshared float2x2 m49;
+groupshared float2x2 m50;
+groupshared float2x2 m51;
+groupshared float2x2 m52;
+groupshared float2x2 m53;
+groupshared float2x2 m54;
+groupshared float2x2 m55;
+groupshared float2x2 m56;
+groupshared float2x2 m57;
+groupshared float2x2 m58;
+groupshared float2x2 m59;
+groupshared float2x2 m60;
+groupshared float2x2 m61;
+groupshared float2x2 m62;
+groupshared float2x2 m63;
+groupshared float2x2 m64;
+groupshared float2x2 m65;
+groupshared float2x2 m66;
+groupshared float2x2 m67;
+groupshared float2x2 m68;
+groupshared float2x2 m69;
+groupshared float2x2 m70;
+groupshared float2x2 m71;
+groupshared float2x2 m72;
+groupshared float2x2 m73;
+groupshared float2x2 m74;
+groupshared float2x2 m75;
+groupshared float2x2 m76;
+groupshared float2x2 m77;
+groupshared float2x2 m78;
+groupshared float2x2 m79;
+groupshared float2x2 m80;
+groupshared float2x2 m81;
+groupshared float2x2 m82;
+groupshared float2x2 m83;
+groupshared float2x2 m84;
+groupshared float2x2 m85;
+groupshared float2x2 m86;
+groupshared float2x2 m87;
+groupshared float2x2 m88;
+groupshared float2x2 m89;
+groupshared float2x2 m90;
+groupshared float2x2 m91;
+groupshared float2x2 m92;
+groupshared float2x2 m93;
+groupshared float2x2 m94;
+groupshared float2x2 m95;
+groupshared float2x2 m96;
+groupshared float2x2 m97;
+groupshared float2x2 m98;
+groupshared float2x2 m99;
+void tint_symbol_inner(uint idx) {
+  if ((idx == 0u)) {
+    m00 = float2x2((0.0f).xx, (0.0f).xx);
+    m01 = float2x2((0.0f).xx, (0.0f).xx);
+    m02 = float2x2((0.0f).xx, (0.0f).xx);
+    m03 = float2x2((0.0f).xx, (0.0f).xx);
+    m04 = float2x2((0.0f).xx, (0.0f).xx);
+    m05 = float2x2((0.0f).xx, (0.0f).xx);
+    m06 = float2x2((0.0f).xx, (0.0f).xx);
+    m07 = float2x2((0.0f).xx, (0.0f).xx);
+    m08 = float2x2((0.0f).xx, (0.0f).xx);
+    m09 = float2x2((0.0f).xx, (0.0f).xx);
+    m10 = float2x2((0.0f).xx, (0.0f).xx);
+    m11 = float2x2((0.0f).xx, (0.0f).xx);
+    m12 = float2x2((0.0f).xx, (0.0f).xx);
+    m13 = float2x2((0.0f).xx, (0.0f).xx);
+    m14 = float2x2((0.0f).xx, (0.0f).xx);
+    m15 = float2x2((0.0f).xx, (0.0f).xx);
+    m16 = float2x2((0.0f).xx, (0.0f).xx);
+    m17 = float2x2((0.0f).xx, (0.0f).xx);
+    m18 = float2x2((0.0f).xx, (0.0f).xx);
+    m19 = float2x2((0.0f).xx, (0.0f).xx);
+    m20 = float2x2((0.0f).xx, (0.0f).xx);
+    m21 = float2x2((0.0f).xx, (0.0f).xx);
+    m22 = float2x2((0.0f).xx, (0.0f).xx);
+    m23 = float2x2((0.0f).xx, (0.0f).xx);
+    m24 = float2x2((0.0f).xx, (0.0f).xx);
+    m25 = float2x2((0.0f).xx, (0.0f).xx);
+    m26 = float2x2((0.0f).xx, (0.0f).xx);
+    m27 = float2x2((0.0f).xx, (0.0f).xx);
+    m28 = float2x2((0.0f).xx, (0.0f).xx);
+    m29 = float2x2((0.0f).xx, (0.0f).xx);
+    m30 = float2x2((0.0f).xx, (0.0f).xx);
+    m31 = float2x2((0.0f).xx, (0.0f).xx);
+    m32 = float2x2((0.0f).xx, (0.0f).xx);
+    m33 = float2x2((0.0f).xx, (0.0f).xx);
+    m34 = float2x2((0.0f).xx, (0.0f).xx);
+    m35 = float2x2((0.0f).xx, (0.0f).xx);
+    m36 = float2x2((0.0f).xx, (0.0f).xx);
+    m37 = float2x2((0.0f).xx, (0.0f).xx);
+    m38 = float2x2((0.0f).xx, (0.0f).xx);
+    m39 = float2x2((0.0f).xx, (0.0f).xx);
+    m40 = float2x2((0.0f).xx, (0.0f).xx);
+    m41 = float2x2((0.0f).xx, (0.0f).xx);
+    m42 = float2x2((0.0f).xx, (0.0f).xx);
+    m43 = float2x2((0.0f).xx, (0.0f).xx);
+    m44 = float2x2((0.0f).xx, (0.0f).xx);
+    m45 = float2x2((0.0f).xx, (0.0f).xx);
+    m46 = float2x2((0.0f).xx, (0.0f).xx);
+    m47 = float2x2((0.0f).xx, (0.0f).xx);
+    m48 = float2x2((0.0f).xx, (0.0f).xx);
+    m49 = float2x2((0.0f).xx, (0.0f).xx);
+    m50 = float2x2((0.0f).xx, (0.0f).xx);
+    m51 = float2x2((0.0f).xx, (0.0f).xx);
+    m52 = float2x2((0.0f).xx, (0.0f).xx);
+    m53 = float2x2((0.0f).xx, (0.0f).xx);
+    m54 = float2x2((0.0f).xx, (0.0f).xx);
+    m55 = float2x2((0.0f).xx, (0.0f).xx);
+    m56 = float2x2((0.0f).xx, (0.0f).xx);
+    m57 = float2x2((0.0f).xx, (0.0f).xx);
+    m58 = float2x2((0.0f).xx, (0.0f).xx);
+    m59 = float2x2((0.0f).xx, (0.0f).xx);
+    m60 = float2x2((0.0f).xx, (0.0f).xx);
+    m61 = float2x2((0.0f).xx, (0.0f).xx);
+    m62 = float2x2((0.0f).xx, (0.0f).xx);
+    m63 = float2x2((0.0f).xx, (0.0f).xx);
+    m64 = float2x2((0.0f).xx, (0.0f).xx);
+    m65 = float2x2((0.0f).xx, (0.0f).xx);
+    m66 = float2x2((0.0f).xx, (0.0f).xx);
+    m67 = float2x2((0.0f).xx, (0.0f).xx);
+    m68 = float2x2((0.0f).xx, (0.0f).xx);
+    m69 = float2x2((0.0f).xx, (0.0f).xx);
+    m70 = float2x2((0.0f).xx, (0.0f).xx);
+    m71 = float2x2((0.0f).xx, (0.0f).xx);
+    m72 = float2x2((0.0f).xx, (0.0f).xx);
+    m73 = float2x2((0.0f).xx, (0.0f).xx);
+    m74 = float2x2((0.0f).xx, (0.0f).xx);
+    m75 = float2x2((0.0f).xx, (0.0f).xx);
+    m76 = float2x2((0.0f).xx, (0.0f).xx);
+    m77 = float2x2((0.0f).xx, (0.0f).xx);
+    m78 = float2x2((0.0f).xx, (0.0f).xx);
+    m79 = float2x2((0.0f).xx, (0.0f).xx);
+    m80 = float2x2((0.0f).xx, (0.0f).xx);
+    m81 = float2x2((0.0f).xx, (0.0f).xx);
+    m82 = float2x2((0.0f).xx, (0.0f).xx);
+    m83 = float2x2((0.0f).xx, (0.0f).xx);
+    m84 = float2x2((0.0f).xx, (0.0f).xx);
+    m85 = float2x2((0.0f).xx, (0.0f).xx);
+    m86 = float2x2((0.0f).xx, (0.0f).xx);
+    m87 = float2x2((0.0f).xx, (0.0f).xx);
+    m88 = float2x2((0.0f).xx, (0.0f).xx);
+    m89 = float2x2((0.0f).xx, (0.0f).xx);
+    m90 = float2x2((0.0f).xx, (0.0f).xx);
+    m91 = float2x2((0.0f).xx, (0.0f).xx);
+    m92 = float2x2((0.0f).xx, (0.0f).xx);
+    m93 = float2x2((0.0f).xx, (0.0f).xx);
+    m94 = float2x2((0.0f).xx, (0.0f).xx);
+    m95 = float2x2((0.0f).xx, (0.0f).xx);
+    m96 = float2x2((0.0f).xx, (0.0f).xx);
+    m97 = float2x2((0.0f).xx, (0.0f).xx);
+    m98 = float2x2((0.0f).xx, (0.0f).xx);
+    m99 = float2x2((0.0f).xx, (0.0f).xx);
+  }
+  GroupMemoryBarrierWithGroupSync();
+  m00[0][0] = 1.0f;
+  m01[0][0] = 1.0f;
+  m02[0][0] = 1.0f;
+  m03[0][0] = 1.0f;
+  m04[0][0] = 1.0f;
+  m05[0][0] = 1.0f;
+  m06[0][0] = 1.0f;
+  m07[0][0] = 1.0f;
+  m08[0][0] = 1.0f;
+  m09[0][0] = 1.0f;
+  m10[0][0] = 1.0f;
+  m11[0][0] = 1.0f;
+  m12[0][0] = 1.0f;
+  m13[0][0] = 1.0f;
+  m14[0][0] = 1.0f;
+  m15[0][0] = 1.0f;
+  m16[0][0] = 1.0f;
+  m17[0][0] = 1.0f;
+  m18[0][0] = 1.0f;
+  m19[0][0] = 1.0f;
+  m20[0][0] = 1.0f;
+  m21[0][0] = 1.0f;
+  m22[0][0] = 1.0f;
+  m23[0][0] = 1.0f;
+  m24[0][0] = 1.0f;
+  m25[0][0] = 1.0f;
+  m26[0][0] = 1.0f;
+  m27[0][0] = 1.0f;
+  m28[0][0] = 1.0f;
+  m29[0][0] = 1.0f;
+  m30[0][0] = 1.0f;
+  m31[0][0] = 1.0f;
+  m32[0][0] = 1.0f;
+  m33[0][0] = 1.0f;
+  m34[0][0] = 1.0f;
+  m35[0][0] = 1.0f;
+  m36[0][0] = 1.0f;
+  m37[0][0] = 1.0f;
+  m38[0][0] = 1.0f;
+  m39[0][0] = 1.0f;
+  m40[0][0] = 1.0f;
+  m41[0][0] = 1.0f;
+  m42[0][0] = 1.0f;
+  m43[0][0] = 1.0f;
+  m44[0][0] = 1.0f;
+  m45[0][0] = 1.0f;
+  m46[0][0] = 1.0f;
+  m47[0][0] = 1.0f;
+  m48[0][0] = 1.0f;
+  m49[0][0] = 1.0f;
+  m50[0][0] = 1.0f;
+  m51[0][0] = 1.0f;
+  m52[0][0] = 1.0f;
+  m53[0][0] = 1.0f;
+  m54[0][0] = 1.0f;
+  m55[0][0] = 1.0f;
+  m56[0][0] = 1.0f;
+  m57[0][0] = 1.0f;
+  m58[0][0] = 1.0f;
+  m59[0][0] = 1.0f;
+  m60[0][0] = 1.0f;
+  m61[0][0] = 1.0f;
+  m62[0][0] = 1.0f;
+  m63[0][0] = 1.0f;
+  m64[0][0] = 1.0f;
+  m65[0][0] = 1.0f;
+  m66[0][0] = 1.0f;
+  m67[0][0] = 1.0f;
+  m68[0][0] = 1.0f;
+  m69[0][0] = 1.0f;
+  m70[0][0] = 1.0f;
+  m71[0][0] = 1.0f;
+  m72[0][0] = 1.0f;
+  m73[0][0] = 1.0f;
+  m74[0][0] = 1.0f;
+  m75[0][0] = 1.0f;
+  m76[0][0] = 1.0f;
+  m77[0][0] = 1.0f;
+  m78[0][0] = 1.0f;
+  m79[0][0] = 1.0f;
+  m80[0][0] = 1.0f;
+  m81[0][0] = 1.0f;
+  m82[0][0] = 1.0f;
+  m83[0][0] = 1.0f;
+  m84[0][0] = 1.0f;
+  m85[0][0] = 1.0f;
+  m86[0][0] = 1.0f;
+  m87[0][0] = 1.0f;
+  m88[0][0] = 1.0f;
+  m89[0][0] = 1.0f;
+  m90[0][0] = 1.0f;
+  m91[0][0] = 1.0f;
+  m92[0][0] = 1.0f;
+  m93[0][0] = 1.0f;
+  m94[0][0] = 1.0f;
+  m95[0][0] = 1.0f;
+  m96[0][0] = 1.0f;
+  m97[0][0] = 1.0f;
+  m98[0][0] = 1.0f;
+  m99[0][0] = 1.0f;
+}
+
+[numthreads(1, 1, 1)]
+void tint_symbol(tint_symbol_inputs inputs) {
+  tint_symbol_inner(inputs.idx);
+}
+
diff --git a/test/tint/var/uses/many_workgroup_vars.wgsl.expected.ir.fxc.hlsl b/test/tint/var/uses/many_workgroup_vars.wgsl.expected.ir.fxc.hlsl
index c0935cc..5a1ce84 100644
--- a/test/tint/var/uses/many_workgroup_vars.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/var/uses/many_workgroup_vars.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,316 @@
-SKIP: FAILED
+struct tint_symbol_inputs {
+  uint idx : SV_GroupIndex;
+};
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:198 internal compiler error: Switch() matched no cases. Type: tint::core::ir::StoreVectorElement
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+
+groupshared float2x2 m00;
+groupshared float2x2 m01;
+groupshared float2x2 m02;
+groupshared float2x2 m03;
+groupshared float2x2 m04;
+groupshared float2x2 m05;
+groupshared float2x2 m06;
+groupshared float2x2 m07;
+groupshared float2x2 m08;
+groupshared float2x2 m09;
+groupshared float2x2 m10;
+groupshared float2x2 m11;
+groupshared float2x2 m12;
+groupshared float2x2 m13;
+groupshared float2x2 m14;
+groupshared float2x2 m15;
+groupshared float2x2 m16;
+groupshared float2x2 m17;
+groupshared float2x2 m18;
+groupshared float2x2 m19;
+groupshared float2x2 m20;
+groupshared float2x2 m21;
+groupshared float2x2 m22;
+groupshared float2x2 m23;
+groupshared float2x2 m24;
+groupshared float2x2 m25;
+groupshared float2x2 m26;
+groupshared float2x2 m27;
+groupshared float2x2 m28;
+groupshared float2x2 m29;
+groupshared float2x2 m30;
+groupshared float2x2 m31;
+groupshared float2x2 m32;
+groupshared float2x2 m33;
+groupshared float2x2 m34;
+groupshared float2x2 m35;
+groupshared float2x2 m36;
+groupshared float2x2 m37;
+groupshared float2x2 m38;
+groupshared float2x2 m39;
+groupshared float2x2 m40;
+groupshared float2x2 m41;
+groupshared float2x2 m42;
+groupshared float2x2 m43;
+groupshared float2x2 m44;
+groupshared float2x2 m45;
+groupshared float2x2 m46;
+groupshared float2x2 m47;
+groupshared float2x2 m48;
+groupshared float2x2 m49;
+groupshared float2x2 m50;
+groupshared float2x2 m51;
+groupshared float2x2 m52;
+groupshared float2x2 m53;
+groupshared float2x2 m54;
+groupshared float2x2 m55;
+groupshared float2x2 m56;
+groupshared float2x2 m57;
+groupshared float2x2 m58;
+groupshared float2x2 m59;
+groupshared float2x2 m60;
+groupshared float2x2 m61;
+groupshared float2x2 m62;
+groupshared float2x2 m63;
+groupshared float2x2 m64;
+groupshared float2x2 m65;
+groupshared float2x2 m66;
+groupshared float2x2 m67;
+groupshared float2x2 m68;
+groupshared float2x2 m69;
+groupshared float2x2 m70;
+groupshared float2x2 m71;
+groupshared float2x2 m72;
+groupshared float2x2 m73;
+groupshared float2x2 m74;
+groupshared float2x2 m75;
+groupshared float2x2 m76;
+groupshared float2x2 m77;
+groupshared float2x2 m78;
+groupshared float2x2 m79;
+groupshared float2x2 m80;
+groupshared float2x2 m81;
+groupshared float2x2 m82;
+groupshared float2x2 m83;
+groupshared float2x2 m84;
+groupshared float2x2 m85;
+groupshared float2x2 m86;
+groupshared float2x2 m87;
+groupshared float2x2 m88;
+groupshared float2x2 m89;
+groupshared float2x2 m90;
+groupshared float2x2 m91;
+groupshared float2x2 m92;
+groupshared float2x2 m93;
+groupshared float2x2 m94;
+groupshared float2x2 m95;
+groupshared float2x2 m96;
+groupshared float2x2 m97;
+groupshared float2x2 m98;
+groupshared float2x2 m99;
+void tint_symbol_inner(uint idx) {
+  if ((idx == 0u)) {
+    m00 = float2x2((0.0f).xx, (0.0f).xx);
+    m01 = float2x2((0.0f).xx, (0.0f).xx);
+    m02 = float2x2((0.0f).xx, (0.0f).xx);
+    m03 = float2x2((0.0f).xx, (0.0f).xx);
+    m04 = float2x2((0.0f).xx, (0.0f).xx);
+    m05 = float2x2((0.0f).xx, (0.0f).xx);
+    m06 = float2x2((0.0f).xx, (0.0f).xx);
+    m07 = float2x2((0.0f).xx, (0.0f).xx);
+    m08 = float2x2((0.0f).xx, (0.0f).xx);
+    m09 = float2x2((0.0f).xx, (0.0f).xx);
+    m10 = float2x2((0.0f).xx, (0.0f).xx);
+    m11 = float2x2((0.0f).xx, (0.0f).xx);
+    m12 = float2x2((0.0f).xx, (0.0f).xx);
+    m13 = float2x2((0.0f).xx, (0.0f).xx);
+    m14 = float2x2((0.0f).xx, (0.0f).xx);
+    m15 = float2x2((0.0f).xx, (0.0f).xx);
+    m16 = float2x2((0.0f).xx, (0.0f).xx);
+    m17 = float2x2((0.0f).xx, (0.0f).xx);
+    m18 = float2x2((0.0f).xx, (0.0f).xx);
+    m19 = float2x2((0.0f).xx, (0.0f).xx);
+    m20 = float2x2((0.0f).xx, (0.0f).xx);
+    m21 = float2x2((0.0f).xx, (0.0f).xx);
+    m22 = float2x2((0.0f).xx, (0.0f).xx);
+    m23 = float2x2((0.0f).xx, (0.0f).xx);
+    m24 = float2x2((0.0f).xx, (0.0f).xx);
+    m25 = float2x2((0.0f).xx, (0.0f).xx);
+    m26 = float2x2((0.0f).xx, (0.0f).xx);
+    m27 = float2x2((0.0f).xx, (0.0f).xx);
+    m28 = float2x2((0.0f).xx, (0.0f).xx);
+    m29 = float2x2((0.0f).xx, (0.0f).xx);
+    m30 = float2x2((0.0f).xx, (0.0f).xx);
+    m31 = float2x2((0.0f).xx, (0.0f).xx);
+    m32 = float2x2((0.0f).xx, (0.0f).xx);
+    m33 = float2x2((0.0f).xx, (0.0f).xx);
+    m34 = float2x2((0.0f).xx, (0.0f).xx);
+    m35 = float2x2((0.0f).xx, (0.0f).xx);
+    m36 = float2x2((0.0f).xx, (0.0f).xx);
+    m37 = float2x2((0.0f).xx, (0.0f).xx);
+    m38 = float2x2((0.0f).xx, (0.0f).xx);
+    m39 = float2x2((0.0f).xx, (0.0f).xx);
+    m40 = float2x2((0.0f).xx, (0.0f).xx);
+    m41 = float2x2((0.0f).xx, (0.0f).xx);
+    m42 = float2x2((0.0f).xx, (0.0f).xx);
+    m43 = float2x2((0.0f).xx, (0.0f).xx);
+    m44 = float2x2((0.0f).xx, (0.0f).xx);
+    m45 = float2x2((0.0f).xx, (0.0f).xx);
+    m46 = float2x2((0.0f).xx, (0.0f).xx);
+    m47 = float2x2((0.0f).xx, (0.0f).xx);
+    m48 = float2x2((0.0f).xx, (0.0f).xx);
+    m49 = float2x2((0.0f).xx, (0.0f).xx);
+    m50 = float2x2((0.0f).xx, (0.0f).xx);
+    m51 = float2x2((0.0f).xx, (0.0f).xx);
+    m52 = float2x2((0.0f).xx, (0.0f).xx);
+    m53 = float2x2((0.0f).xx, (0.0f).xx);
+    m54 = float2x2((0.0f).xx, (0.0f).xx);
+    m55 = float2x2((0.0f).xx, (0.0f).xx);
+    m56 = float2x2((0.0f).xx, (0.0f).xx);
+    m57 = float2x2((0.0f).xx, (0.0f).xx);
+    m58 = float2x2((0.0f).xx, (0.0f).xx);
+    m59 = float2x2((0.0f).xx, (0.0f).xx);
+    m60 = float2x2((0.0f).xx, (0.0f).xx);
+    m61 = float2x2((0.0f).xx, (0.0f).xx);
+    m62 = float2x2((0.0f).xx, (0.0f).xx);
+    m63 = float2x2((0.0f).xx, (0.0f).xx);
+    m64 = float2x2((0.0f).xx, (0.0f).xx);
+    m65 = float2x2((0.0f).xx, (0.0f).xx);
+    m66 = float2x2((0.0f).xx, (0.0f).xx);
+    m67 = float2x2((0.0f).xx, (0.0f).xx);
+    m68 = float2x2((0.0f).xx, (0.0f).xx);
+    m69 = float2x2((0.0f).xx, (0.0f).xx);
+    m70 = float2x2((0.0f).xx, (0.0f).xx);
+    m71 = float2x2((0.0f).xx, (0.0f).xx);
+    m72 = float2x2((0.0f).xx, (0.0f).xx);
+    m73 = float2x2((0.0f).xx, (0.0f).xx);
+    m74 = float2x2((0.0f).xx, (0.0f).xx);
+    m75 = float2x2((0.0f).xx, (0.0f).xx);
+    m76 = float2x2((0.0f).xx, (0.0f).xx);
+    m77 = float2x2((0.0f).xx, (0.0f).xx);
+    m78 = float2x2((0.0f).xx, (0.0f).xx);
+    m79 = float2x2((0.0f).xx, (0.0f).xx);
+    m80 = float2x2((0.0f).xx, (0.0f).xx);
+    m81 = float2x2((0.0f).xx, (0.0f).xx);
+    m82 = float2x2((0.0f).xx, (0.0f).xx);
+    m83 = float2x2((0.0f).xx, (0.0f).xx);
+    m84 = float2x2((0.0f).xx, (0.0f).xx);
+    m85 = float2x2((0.0f).xx, (0.0f).xx);
+    m86 = float2x2((0.0f).xx, (0.0f).xx);
+    m87 = float2x2((0.0f).xx, (0.0f).xx);
+    m88 = float2x2((0.0f).xx, (0.0f).xx);
+    m89 = float2x2((0.0f).xx, (0.0f).xx);
+    m90 = float2x2((0.0f).xx, (0.0f).xx);
+    m91 = float2x2((0.0f).xx, (0.0f).xx);
+    m92 = float2x2((0.0f).xx, (0.0f).xx);
+    m93 = float2x2((0.0f).xx, (0.0f).xx);
+    m94 = float2x2((0.0f).xx, (0.0f).xx);
+    m95 = float2x2((0.0f).xx, (0.0f).xx);
+    m96 = float2x2((0.0f).xx, (0.0f).xx);
+    m97 = float2x2((0.0f).xx, (0.0f).xx);
+    m98 = float2x2((0.0f).xx, (0.0f).xx);
+    m99 = float2x2((0.0f).xx, (0.0f).xx);
+  }
+  GroupMemoryBarrierWithGroupSync();
+  m00[0][0] = 1.0f;
+  m01[0][0] = 1.0f;
+  m02[0][0] = 1.0f;
+  m03[0][0] = 1.0f;
+  m04[0][0] = 1.0f;
+  m05[0][0] = 1.0f;
+  m06[0][0] = 1.0f;
+  m07[0][0] = 1.0f;
+  m08[0][0] = 1.0f;
+  m09[0][0] = 1.0f;
+  m10[0][0] = 1.0f;
+  m11[0][0] = 1.0f;
+  m12[0][0] = 1.0f;
+  m13[0][0] = 1.0f;
+  m14[0][0] = 1.0f;
+  m15[0][0] = 1.0f;
+  m16[0][0] = 1.0f;
+  m17[0][0] = 1.0f;
+  m18[0][0] = 1.0f;
+  m19[0][0] = 1.0f;
+  m20[0][0] = 1.0f;
+  m21[0][0] = 1.0f;
+  m22[0][0] = 1.0f;
+  m23[0][0] = 1.0f;
+  m24[0][0] = 1.0f;
+  m25[0][0] = 1.0f;
+  m26[0][0] = 1.0f;
+  m27[0][0] = 1.0f;
+  m28[0][0] = 1.0f;
+  m29[0][0] = 1.0f;
+  m30[0][0] = 1.0f;
+  m31[0][0] = 1.0f;
+  m32[0][0] = 1.0f;
+  m33[0][0] = 1.0f;
+  m34[0][0] = 1.0f;
+  m35[0][0] = 1.0f;
+  m36[0][0] = 1.0f;
+  m37[0][0] = 1.0f;
+  m38[0][0] = 1.0f;
+  m39[0][0] = 1.0f;
+  m40[0][0] = 1.0f;
+  m41[0][0] = 1.0f;
+  m42[0][0] = 1.0f;
+  m43[0][0] = 1.0f;
+  m44[0][0] = 1.0f;
+  m45[0][0] = 1.0f;
+  m46[0][0] = 1.0f;
+  m47[0][0] = 1.0f;
+  m48[0][0] = 1.0f;
+  m49[0][0] = 1.0f;
+  m50[0][0] = 1.0f;
+  m51[0][0] = 1.0f;
+  m52[0][0] = 1.0f;
+  m53[0][0] = 1.0f;
+  m54[0][0] = 1.0f;
+  m55[0][0] = 1.0f;
+  m56[0][0] = 1.0f;
+  m57[0][0] = 1.0f;
+  m58[0][0] = 1.0f;
+  m59[0][0] = 1.0f;
+  m60[0][0] = 1.0f;
+  m61[0][0] = 1.0f;
+  m62[0][0] = 1.0f;
+  m63[0][0] = 1.0f;
+  m64[0][0] = 1.0f;
+  m65[0][0] = 1.0f;
+  m66[0][0] = 1.0f;
+  m67[0][0] = 1.0f;
+  m68[0][0] = 1.0f;
+  m69[0][0] = 1.0f;
+  m70[0][0] = 1.0f;
+  m71[0][0] = 1.0f;
+  m72[0][0] = 1.0f;
+  m73[0][0] = 1.0f;
+  m74[0][0] = 1.0f;
+  m75[0][0] = 1.0f;
+  m76[0][0] = 1.0f;
+  m77[0][0] = 1.0f;
+  m78[0][0] = 1.0f;
+  m79[0][0] = 1.0f;
+  m80[0][0] = 1.0f;
+  m81[0][0] = 1.0f;
+  m82[0][0] = 1.0f;
+  m83[0][0] = 1.0f;
+  m84[0][0] = 1.0f;
+  m85[0][0] = 1.0f;
+  m86[0][0] = 1.0f;
+  m87[0][0] = 1.0f;
+  m88[0][0] = 1.0f;
+  m89[0][0] = 1.0f;
+  m90[0][0] = 1.0f;
+  m91[0][0] = 1.0f;
+  m92[0][0] = 1.0f;
+  m93[0][0] = 1.0f;
+  m94[0][0] = 1.0f;
+  m95[0][0] = 1.0f;
+  m96[0][0] = 1.0f;
+  m97[0][0] = 1.0f;
+  m98[0][0] = 1.0f;
+  m99[0][0] = 1.0f;
+}
+
+[numthreads(1, 1, 1)]
+void tint_symbol(tint_symbol_inputs inputs) {
+  tint_symbol_inner(inputs.idx);
+}
+
diff --git a/test/tint/var/uses/private.wgsl.expected.ir.dxc.hlsl b/test/tint/var/uses/private.wgsl.expected.ir.dxc.hlsl
index 2c76750..7f25766 100644
--- a/test/tint/var/uses/private.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/var/uses/private.wgsl.expected.ir.dxc.hlsl
@@ -1,5 +1,7 @@
-SKIP: FAILED
 
+static int a = 0;
+static int b = 0;
+static int c = 0;
 void uses_a() {
   a = (a + 1);
 }
@@ -46,32 +48,3 @@
   no_uses();
 }
 
-DXC validation failure:
-hlsl.hlsl:2:3: error: use of undeclared identifier 'a'
-  a = (a + 1);
-  ^
-hlsl.hlsl:2:8: error: use of undeclared identifier 'a'
-  a = (a + 1);
-       ^
-hlsl.hlsl:6:3: error: use of undeclared identifier 'b'
-  b = (b * 2);
-  ^
-hlsl.hlsl:6:8: error: use of undeclared identifier 'b'
-  b = (b * 2);
-       ^
-hlsl.hlsl:10:3: error: use of undeclared identifier 'b'
-  b = a;
-  ^
-hlsl.hlsl:10:7: error: use of undeclared identifier 'a'
-  b = a;
-      ^
-hlsl.hlsl:17:3: error: use of undeclared identifier 'a'
-  a = 0;
-  ^
-hlsl.hlsl:26:3: error: use of undeclared identifier 'a'
-  a = 42;
-  ^
-hlsl.hlsl:32:3: error: use of undeclared identifier 'b'
-  b = 7;
-  ^
-
diff --git a/test/tint/var/uses/private.wgsl.expected.ir.fxc.hlsl b/test/tint/var/uses/private.wgsl.expected.ir.fxc.hlsl
index d00d2d3..7f25766 100644
--- a/test/tint/var/uses/private.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/var/uses/private.wgsl.expected.ir.fxc.hlsl
@@ -1,5 +1,7 @@
-SKIP: FAILED
 
+static int a = 0;
+static int b = 0;
+static int c = 0;
 void uses_a() {
   a = (a + 1);
 }
diff --git a/test/tint/var/uses/push_constant.wgsl.expected.ir.dxc.hlsl b/test/tint/var/uses/push_constant.wgsl.expected.ir.dxc.hlsl
index 1cf669e..37587d9 100644
--- a/test/tint/var/uses/push_constant.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/var/uses/push_constant.wgsl.expected.ir.dxc.hlsl
@@ -1,41 +1,9 @@
 SKIP: FAILED
 
-void uses_a() {
-  int foo = a;
-}
-
-void uses_uses_a() {
-  uses_a();
-}
-
-void uses_b() {
-  int foo = b;
-}
-
-[numthreads(1, 1, 1)]
-void main1() {
-  uses_a();
-}
-
-[numthreads(1, 1, 1)]
-void main2() {
-  uses_uses_a();
-}
-
-[numthreads(1, 1, 1)]
-void main3() {
-  uses_b();
-}
-
-[numthreads(1, 1, 1)]
-void main4() {
-}
-
-DXC validation failure:
-hlsl.hlsl:2:13: error: use of undeclared identifier 'a'
-  int foo = a;
-            ^
-hlsl.hlsl:10:13: error: use of undeclared identifier 'b'
-  int foo = b;
-            ^
-
+..\..\src\tint\lang\hlsl\writer\printer\printer.cc:524 internal compiler error: unhandled address space push_constant
+********************************************************************
+*  The tint shader compiler has encountered an unexpected error.   *
+*                                                                  *
+*  Please help us fix this issue by submitting a bug report at     *
+*  crbug.com/tint with the source program that triggered the bug.  *
+********************************************************************
diff --git a/test/tint/var/uses/push_constant.wgsl.expected.ir.fxc.hlsl b/test/tint/var/uses/push_constant.wgsl.expected.ir.fxc.hlsl
index 695b508..37587d9 100644
--- a/test/tint/var/uses/push_constant.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/var/uses/push_constant.wgsl.expected.ir.fxc.hlsl
@@ -1,33 +1,9 @@
 SKIP: FAILED
 
-void uses_a() {
-  int foo = a;
-}
-
-void uses_uses_a() {
-  uses_a();
-}
-
-void uses_b() {
-  int foo = b;
-}
-
-[numthreads(1, 1, 1)]
-void main1() {
-  uses_a();
-}
-
-[numthreads(1, 1, 1)]
-void main2() {
-  uses_uses_a();
-}
-
-[numthreads(1, 1, 1)]
-void main3() {
-  uses_b();
-}
-
-[numthreads(1, 1, 1)]
-void main4() {
-}
-
+..\..\src\tint\lang\hlsl\writer\printer\printer.cc:524 internal compiler error: unhandled address space push_constant
+********************************************************************
+*  The tint shader compiler has encountered an unexpected error.   *
+*                                                                  *
+*  Please help us fix this issue by submitting a bug report at     *
+*  crbug.com/tint with the source program that triggered the bug.  *
+********************************************************************
diff --git a/test/tint/var/uses/push_constant_and_instance_index.wgsl.expected.ir.dxc.hlsl b/test/tint/var/uses/push_constant_and_instance_index.wgsl.expected.ir.dxc.hlsl
index c6e1d96..37587d9 100644
--- a/test/tint/var/uses/push_constant_and_instance_index.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/var/uses/push_constant_and_instance_index.wgsl.expected.ir.dxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Construct
+..\..\src\tint\lang\hlsl\writer\printer\printer.cc:524 internal compiler error: unhandled address space push_constant
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/var/uses/push_constant_and_instance_index.wgsl.expected.ir.fxc.hlsl b/test/tint/var/uses/push_constant_and_instance_index.wgsl.expected.ir.fxc.hlsl
index c6e1d96..37587d9 100644
--- a/test/tint/var/uses/push_constant_and_instance_index.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/var/uses/push_constant_and_instance_index.wgsl.expected.ir.fxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Construct
+..\..\src\tint\lang\hlsl\writer\printer\printer.cc:524 internal compiler error: unhandled address space push_constant
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/var/uses/workgroup.wgsl.expected.ir.dxc.hlsl b/test/tint/var/uses/workgroup.wgsl.expected.ir.dxc.hlsl
index 2c76750..adab588 100644
--- a/test/tint/var/uses/workgroup.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/var/uses/workgroup.wgsl.expected.ir.dxc.hlsl
@@ -1,5 +1,19 @@
-SKIP: FAILED
+struct main1_inputs {
+  uint tint_local_index : SV_GroupIndex;
+};
 
+struct main2_inputs {
+  uint tint_local_index : SV_GroupIndex;
+};
+
+struct main3_inputs {
+  uint tint_local_index : SV_GroupIndex;
+};
+
+
+groupshared int a;
+groupshared int b;
+groupshared int c;
 void uses_a() {
   a = (a + 1);
 }
@@ -23,20 +37,30 @@
   no_uses();
 }
 
-[numthreads(1, 1, 1)]
-void main1() {
+void main1_inner(uint tint_local_index) {
+  if ((tint_local_index == 0u)) {
+    a = 0;
+  }
+  GroupMemoryBarrierWithGroupSync();
   a = 42;
   uses_a();
 }
 
-[numthreads(1, 1, 1)]
-void main2() {
+void main2_inner(uint tint_local_index) {
+  if ((tint_local_index == 0u)) {
+    b = 0;
+  }
+  GroupMemoryBarrierWithGroupSync();
   b = 7;
   uses_b();
 }
 
-[numthreads(1, 1, 1)]
-void main3() {
+void main3_inner(uint tint_local_index) {
+  if ((tint_local_index == 0u)) {
+    a = 0;
+    b = 0;
+  }
+  GroupMemoryBarrierWithGroupSync();
   outer();
   no_uses();
 }
@@ -46,32 +70,18 @@
   no_uses();
 }
 
-DXC validation failure:
-hlsl.hlsl:2:3: error: use of undeclared identifier 'a'
-  a = (a + 1);
-  ^
-hlsl.hlsl:2:8: error: use of undeclared identifier 'a'
-  a = (a + 1);
-       ^
-hlsl.hlsl:6:3: error: use of undeclared identifier 'b'
-  b = (b * 2);
-  ^
-hlsl.hlsl:6:8: error: use of undeclared identifier 'b'
-  b = (b * 2);
-       ^
-hlsl.hlsl:10:3: error: use of undeclared identifier 'b'
-  b = a;
-  ^
-hlsl.hlsl:10:7: error: use of undeclared identifier 'a'
-  b = a;
-      ^
-hlsl.hlsl:17:3: error: use of undeclared identifier 'a'
-  a = 0;
-  ^
-hlsl.hlsl:26:3: error: use of undeclared identifier 'a'
-  a = 42;
-  ^
-hlsl.hlsl:32:3: error: use of undeclared identifier 'b'
-  b = 7;
-  ^
+[numthreads(1, 1, 1)]
+void main1(main1_inputs inputs) {
+  main1_inner(inputs.tint_local_index);
+}
+
+[numthreads(1, 1, 1)]
+void main2(main2_inputs inputs) {
+  main2_inner(inputs.tint_local_index);
+}
+
+[numthreads(1, 1, 1)]
+void main3(main3_inputs inputs) {
+  main3_inner(inputs.tint_local_index);
+}
 
diff --git a/test/tint/var/uses/workgroup.wgsl.expected.ir.fxc.hlsl b/test/tint/var/uses/workgroup.wgsl.expected.ir.fxc.hlsl
index d00d2d3..adab588 100644
--- a/test/tint/var/uses/workgroup.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/var/uses/workgroup.wgsl.expected.ir.fxc.hlsl
@@ -1,5 +1,19 @@
-SKIP: FAILED
+struct main1_inputs {
+  uint tint_local_index : SV_GroupIndex;
+};
 
+struct main2_inputs {
+  uint tint_local_index : SV_GroupIndex;
+};
+
+struct main3_inputs {
+  uint tint_local_index : SV_GroupIndex;
+};
+
+
+groupshared int a;
+groupshared int b;
+groupshared int c;
 void uses_a() {
   a = (a + 1);
 }
@@ -23,20 +37,30 @@
   no_uses();
 }
 
-[numthreads(1, 1, 1)]
-void main1() {
+void main1_inner(uint tint_local_index) {
+  if ((tint_local_index == 0u)) {
+    a = 0;
+  }
+  GroupMemoryBarrierWithGroupSync();
   a = 42;
   uses_a();
 }
 
-[numthreads(1, 1, 1)]
-void main2() {
+void main2_inner(uint tint_local_index) {
+  if ((tint_local_index == 0u)) {
+    b = 0;
+  }
+  GroupMemoryBarrierWithGroupSync();
   b = 7;
   uses_b();
 }
 
-[numthreads(1, 1, 1)]
-void main3() {
+void main3_inner(uint tint_local_index) {
+  if ((tint_local_index == 0u)) {
+    a = 0;
+    b = 0;
+  }
+  GroupMemoryBarrierWithGroupSync();
   outer();
   no_uses();
 }
@@ -46,3 +70,18 @@
   no_uses();
 }
 
+[numthreads(1, 1, 1)]
+void main1(main1_inputs inputs) {
+  main1_inner(inputs.tint_local_index);
+}
+
+[numthreads(1, 1, 1)]
+void main2(main2_inputs inputs) {
+  main2_inner(inputs.tint_local_index);
+}
+
+[numthreads(1, 1, 1)]
+void main3(main3_inputs inputs) {
+  main3_inner(inputs.tint_local_index);
+}
+
diff --git a/test/tint/vk-gl-cts/api/descriptor_set/descriptor_set_layout_binding/layout_binding_order/0.spvasm.expected.ir.dxc.hlsl b/test/tint/vk-gl-cts/api/descriptor_set/descriptor_set_layout_binding/layout_binding_order/0.spvasm.expected.ir.dxc.hlsl
deleted file mode 100644
index 3f437dc..0000000
--- a/test/tint/vk-gl-cts/api/descriptor_set/descriptor_set_layout_binding/layout_binding_order/0.spvasm.expected.ir.dxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Access
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/vk-gl-cts/api/descriptor_set/descriptor_set_layout_binding/layout_binding_order/0.spvasm.expected.ir.fxc.hlsl b/test/tint/vk-gl-cts/api/descriptor_set/descriptor_set_layout_binding/layout_binding_order/0.spvasm.expected.ir.fxc.hlsl
deleted file mode 100644
index 3f437dc..0000000
--- a/test/tint/vk-gl-cts/api/descriptor_set/descriptor_set_layout_binding/layout_binding_order/0.spvasm.expected.ir.fxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Access
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/vk-gl-cts/api/descriptor_set/descriptor_set_layout_binding/layout_binding_order/0.wgsl.expected.ir.dxc.hlsl b/test/tint/vk-gl-cts/api/descriptor_set/descriptor_set_layout_binding/layout_binding_order/0.wgsl.expected.ir.dxc.hlsl
deleted file mode 100644
index 3f437dc..0000000
--- a/test/tint/vk-gl-cts/api/descriptor_set/descriptor_set_layout_binding/layout_binding_order/0.wgsl.expected.ir.dxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Access
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/vk-gl-cts/api/descriptor_set/descriptor_set_layout_binding/layout_binding_order/0.wgsl.expected.ir.fxc.hlsl b/test/tint/vk-gl-cts/api/descriptor_set/descriptor_set_layout_binding/layout_binding_order/0.wgsl.expected.ir.fxc.hlsl
deleted file mode 100644
index 3f437dc..0000000
--- a/test/tint/vk-gl-cts/api/descriptor_set/descriptor_set_layout_binding/layout_binding_order/0.wgsl.expected.ir.fxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Access
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/vk-gl-cts/binding_model/dynamic_offset/shader_reuse_differing_layout_compute/0.spvasm.expected.ir.dxc.hlsl b/test/tint/vk-gl-cts/binding_model/dynamic_offset/shader_reuse_differing_layout_compute/0.spvasm.expected.ir.dxc.hlsl
deleted file mode 100644
index 3f437dc..0000000
--- a/test/tint/vk-gl-cts/binding_model/dynamic_offset/shader_reuse_differing_layout_compute/0.spvasm.expected.ir.dxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Access
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/vk-gl-cts/binding_model/dynamic_offset/shader_reuse_differing_layout_compute/0.spvasm.expected.ir.fxc.hlsl b/test/tint/vk-gl-cts/binding_model/dynamic_offset/shader_reuse_differing_layout_compute/0.spvasm.expected.ir.fxc.hlsl
deleted file mode 100644
index 3f437dc..0000000
--- a/test/tint/vk-gl-cts/binding_model/dynamic_offset/shader_reuse_differing_layout_compute/0.spvasm.expected.ir.fxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Access
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/vk-gl-cts/binding_model/dynamic_offset/shader_reuse_differing_layout_compute/0.wgsl.expected.ir.dxc.hlsl b/test/tint/vk-gl-cts/binding_model/dynamic_offset/shader_reuse_differing_layout_compute/0.wgsl.expected.ir.dxc.hlsl
deleted file mode 100644
index 3f437dc..0000000
--- a/test/tint/vk-gl-cts/binding_model/dynamic_offset/shader_reuse_differing_layout_compute/0.wgsl.expected.ir.dxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Access
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/vk-gl-cts/binding_model/dynamic_offset/shader_reuse_differing_layout_compute/0.wgsl.expected.ir.fxc.hlsl b/test/tint/vk-gl-cts/binding_model/dynamic_offset/shader_reuse_differing_layout_compute/0.wgsl.expected.ir.fxc.hlsl
deleted file mode 100644
index 3f437dc..0000000
--- a/test/tint/vk-gl-cts/binding_model/dynamic_offset/shader_reuse_differing_layout_compute/0.wgsl.expected.ir.fxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Access
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/vk-gl-cts/binding_model/dynamic_offset/shader_reuse_differing_layout_graphics/0.spvasm.expected.ir.dxc.hlsl b/test/tint/vk-gl-cts/binding_model/dynamic_offset/shader_reuse_differing_layout_graphics/0.spvasm.expected.ir.dxc.hlsl
deleted file mode 100644
index 3f437dc..0000000
--- a/test/tint/vk-gl-cts/binding_model/dynamic_offset/shader_reuse_differing_layout_graphics/0.spvasm.expected.ir.dxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Access
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/vk-gl-cts/binding_model/dynamic_offset/shader_reuse_differing_layout_graphics/0.spvasm.expected.ir.fxc.hlsl b/test/tint/vk-gl-cts/binding_model/dynamic_offset/shader_reuse_differing_layout_graphics/0.spvasm.expected.ir.fxc.hlsl
deleted file mode 100644
index 3f437dc..0000000
--- a/test/tint/vk-gl-cts/binding_model/dynamic_offset/shader_reuse_differing_layout_graphics/0.spvasm.expected.ir.fxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Access
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/vk-gl-cts/binding_model/dynamic_offset/shader_reuse_differing_layout_graphics/0.wgsl.expected.ir.dxc.hlsl b/test/tint/vk-gl-cts/binding_model/dynamic_offset/shader_reuse_differing_layout_graphics/0.wgsl.expected.ir.dxc.hlsl
deleted file mode 100644
index 3f437dc..0000000
--- a/test/tint/vk-gl-cts/binding_model/dynamic_offset/shader_reuse_differing_layout_graphics/0.wgsl.expected.ir.dxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Access
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/vk-gl-cts/binding_model/dynamic_offset/shader_reuse_differing_layout_graphics/0.wgsl.expected.ir.fxc.hlsl b/test/tint/vk-gl-cts/binding_model/dynamic_offset/shader_reuse_differing_layout_graphics/0.wgsl.expected.ir.fxc.hlsl
deleted file mode 100644
index 3f437dc..0000000
--- a/test/tint/vk-gl-cts/binding_model/dynamic_offset/shader_reuse_differing_layout_graphics/0.wgsl.expected.ir.fxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Access
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/vk-gl-cts/binding_model/dynamic_offset/shader_reuse_differing_layout_graphics/1.spvasm.expected.ir.dxc.hlsl b/test/tint/vk-gl-cts/binding_model/dynamic_offset/shader_reuse_differing_layout_graphics/1.spvasm.expected.ir.dxc.hlsl
deleted file mode 100644
index 6b047b4..0000000
--- a/test/tint/vk-gl-cts/binding_model/dynamic_offset/shader_reuse_differing_layout_graphics/1.spvasm.expected.ir.dxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:287 internal compiler error: Switch() matched no cases. Type: tint::core::ir::FunctionParam
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/vk-gl-cts/binding_model/dynamic_offset/shader_reuse_differing_layout_graphics/1.spvasm.expected.ir.fxc.hlsl b/test/tint/vk-gl-cts/binding_model/dynamic_offset/shader_reuse_differing_layout_graphics/1.spvasm.expected.ir.fxc.hlsl
deleted file mode 100644
index 6b047b4..0000000
--- a/test/tint/vk-gl-cts/binding_model/dynamic_offset/shader_reuse_differing_layout_graphics/1.spvasm.expected.ir.fxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:287 internal compiler error: Switch() matched no cases. Type: tint::core::ir::FunctionParam
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/vk-gl-cts/binding_model/dynamic_offset/shader_reuse_differing_layout_graphics/1.wgsl.expected.ir.dxc.hlsl b/test/tint/vk-gl-cts/binding_model/dynamic_offset/shader_reuse_differing_layout_graphics/1.wgsl.expected.ir.dxc.hlsl
deleted file mode 100644
index 6b047b4..0000000
--- a/test/tint/vk-gl-cts/binding_model/dynamic_offset/shader_reuse_differing_layout_graphics/1.wgsl.expected.ir.dxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:287 internal compiler error: Switch() matched no cases. Type: tint::core::ir::FunctionParam
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/vk-gl-cts/binding_model/dynamic_offset/shader_reuse_differing_layout_graphics/1.wgsl.expected.ir.fxc.hlsl b/test/tint/vk-gl-cts/binding_model/dynamic_offset/shader_reuse_differing_layout_graphics/1.wgsl.expected.ir.fxc.hlsl
deleted file mode 100644
index 6b047b4..0000000
--- a/test/tint/vk-gl-cts/binding_model/dynamic_offset/shader_reuse_differing_layout_graphics/1.wgsl.expected.ir.fxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:287 internal compiler error: Switch() matched no cases. Type: tint::core::ir::FunctionParam
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/vk-gl-cts/combined_operations/negintdivand/0-opt.spvasm.expected.ir.dxc.hlsl b/test/tint/vk-gl-cts/combined_operations/negintdivand/0-opt.spvasm.expected.ir.dxc.hlsl
deleted file mode 100644
index 6b047b4..0000000
--- a/test/tint/vk-gl-cts/combined_operations/negintdivand/0-opt.spvasm.expected.ir.dxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:287 internal compiler error: Switch() matched no cases. Type: tint::core::ir::FunctionParam
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/vk-gl-cts/combined_operations/negintdivand/0-opt.spvasm.expected.ir.fxc.hlsl b/test/tint/vk-gl-cts/combined_operations/negintdivand/0-opt.spvasm.expected.ir.fxc.hlsl
deleted file mode 100644
index 6b047b4..0000000
--- a/test/tint/vk-gl-cts/combined_operations/negintdivand/0-opt.spvasm.expected.ir.fxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:287 internal compiler error: Switch() matched no cases. Type: tint::core::ir::FunctionParam
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/vk-gl-cts/combined_operations/negintdivand/0-opt.wgsl.expected.ir.dxc.hlsl b/test/tint/vk-gl-cts/combined_operations/negintdivand/0-opt.wgsl.expected.ir.dxc.hlsl
deleted file mode 100644
index 6b047b4..0000000
--- a/test/tint/vk-gl-cts/combined_operations/negintdivand/0-opt.wgsl.expected.ir.dxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:287 internal compiler error: Switch() matched no cases. Type: tint::core::ir::FunctionParam
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/vk-gl-cts/combined_operations/negintdivand/0-opt.wgsl.expected.ir.fxc.hlsl b/test/tint/vk-gl-cts/combined_operations/negintdivand/0-opt.wgsl.expected.ir.fxc.hlsl
deleted file mode 100644
index 6b047b4..0000000
--- a/test/tint/vk-gl-cts/combined_operations/negintdivand/0-opt.wgsl.expected.ir.fxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:287 internal compiler error: Switch() matched no cases. Type: tint::core::ir::FunctionParam
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/vk-gl-cts/combined_operations/negintdivand/1.spvasm.expected.ir.dxc.hlsl b/test/tint/vk-gl-cts/combined_operations/negintdivand/1.spvasm.expected.ir.dxc.hlsl
deleted file mode 100644
index 48e23f4..0000000
--- a/test/tint/vk-gl-cts/combined_operations/negintdivand/1.spvasm.expected.ir.dxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Convert
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/vk-gl-cts/combined_operations/negintdivand/1.spvasm.expected.ir.fxc.hlsl b/test/tint/vk-gl-cts/combined_operations/negintdivand/1.spvasm.expected.ir.fxc.hlsl
deleted file mode 100644
index 48e23f4..0000000
--- a/test/tint/vk-gl-cts/combined_operations/negintdivand/1.spvasm.expected.ir.fxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Convert
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/vk-gl-cts/combined_operations/negintdivand/1.wgsl.expected.ir.dxc.hlsl b/test/tint/vk-gl-cts/combined_operations/negintdivand/1.wgsl.expected.ir.dxc.hlsl
deleted file mode 100644
index 48e23f4..0000000
--- a/test/tint/vk-gl-cts/combined_operations/negintdivand/1.wgsl.expected.ir.dxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Convert
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/vk-gl-cts/combined_operations/negintdivand/1.wgsl.expected.ir.fxc.hlsl b/test/tint/vk-gl-cts/combined_operations/negintdivand/1.wgsl.expected.ir.fxc.hlsl
deleted file mode 100644
index 48e23f4..0000000
--- a/test/tint/vk-gl-cts/combined_operations/negintdivand/1.wgsl.expected.ir.fxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Convert
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/access-new-vector-inside-if-condition/0-opt.spvasm.expected.ir.dxc.hlsl b/test/tint/vk-gl-cts/graphicsfuzz/access-new-vector-inside-if-condition/0-opt.spvasm.expected.ir.dxc.hlsl
deleted file mode 100644
index bdeab23..0000000
--- a/test/tint/vk-gl-cts/graphicsfuzz/access-new-vector-inside-if-condition/0-opt.spvasm.expected.ir.dxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:198 internal compiler error: Switch() matched no cases. Type: tint::core::ir::If
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/access-new-vector-inside-if-condition/0-opt.spvasm.expected.ir.fxc.hlsl b/test/tint/vk-gl-cts/graphicsfuzz/access-new-vector-inside-if-condition/0-opt.spvasm.expected.ir.fxc.hlsl
deleted file mode 100644
index bdeab23..0000000
--- a/test/tint/vk-gl-cts/graphicsfuzz/access-new-vector-inside-if-condition/0-opt.spvasm.expected.ir.fxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:198 internal compiler error: Switch() matched no cases. Type: tint::core::ir::If
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/access-new-vector-inside-if-condition/0-opt.wgsl.expected.ir.dxc.hlsl b/test/tint/vk-gl-cts/graphicsfuzz/access-new-vector-inside-if-condition/0-opt.wgsl.expected.ir.dxc.hlsl
deleted file mode 100644
index bdeab23..0000000
--- a/test/tint/vk-gl-cts/graphicsfuzz/access-new-vector-inside-if-condition/0-opt.wgsl.expected.ir.dxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:198 internal compiler error: Switch() matched no cases. Type: tint::core::ir::If
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/access-new-vector-inside-if-condition/0-opt.wgsl.expected.ir.fxc.hlsl b/test/tint/vk-gl-cts/graphicsfuzz/access-new-vector-inside-if-condition/0-opt.wgsl.expected.ir.fxc.hlsl
deleted file mode 100644
index bdeab23..0000000
--- a/test/tint/vk-gl-cts/graphicsfuzz/access-new-vector-inside-if-condition/0-opt.wgsl.expected.ir.fxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:198 internal compiler error: Switch() matched no cases. Type: tint::core::ir::If
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/always-discarding-function/0-opt.spvasm.expected.ir.dxc.hlsl b/test/tint/vk-gl-cts/graphicsfuzz/always-discarding-function/0-opt.spvasm.expected.ir.dxc.hlsl
index adbb0c1..d1ee477 100644
--- a/test/tint/vk-gl-cts/graphicsfuzz/always-discarding-function/0-opt.spvasm.expected.ir.dxc.hlsl
+++ b/test/tint/vk-gl-cts/graphicsfuzz/always-discarding-function/0-opt.spvasm.expected.ir.dxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:198 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Loop
+..\..\src\tint\lang\core\ir\transform\demote_to_helper.cc:208 internal compiler error: TINT_UNREACHABLE unexpected non-core instruction
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/always-discarding-function/0-opt.spvasm.expected.ir.fxc.hlsl b/test/tint/vk-gl-cts/graphicsfuzz/always-discarding-function/0-opt.spvasm.expected.ir.fxc.hlsl
index adbb0c1..d1ee477 100644
--- a/test/tint/vk-gl-cts/graphicsfuzz/always-discarding-function/0-opt.spvasm.expected.ir.fxc.hlsl
+++ b/test/tint/vk-gl-cts/graphicsfuzz/always-discarding-function/0-opt.spvasm.expected.ir.fxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:198 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Loop
+..\..\src\tint\lang\core\ir\transform\demote_to_helper.cc:208 internal compiler error: TINT_UNREACHABLE unexpected non-core instruction
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/always-discarding-function/0-opt.wgsl.expected.ir.dxc.hlsl b/test/tint/vk-gl-cts/graphicsfuzz/always-discarding-function/0-opt.wgsl.expected.ir.dxc.hlsl
index adbb0c1..d1ee477 100644
--- a/test/tint/vk-gl-cts/graphicsfuzz/always-discarding-function/0-opt.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/vk-gl-cts/graphicsfuzz/always-discarding-function/0-opt.wgsl.expected.ir.dxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:198 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Loop
+..\..\src\tint\lang\core\ir\transform\demote_to_helper.cc:208 internal compiler error: TINT_UNREACHABLE unexpected non-core instruction
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/always-discarding-function/0-opt.wgsl.expected.ir.fxc.hlsl b/test/tint/vk-gl-cts/graphicsfuzz/always-discarding-function/0-opt.wgsl.expected.ir.fxc.hlsl
index adbb0c1..d1ee477 100644
--- a/test/tint/vk-gl-cts/graphicsfuzz/always-discarding-function/0-opt.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/vk-gl-cts/graphicsfuzz/always-discarding-function/0-opt.wgsl.expected.ir.fxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:198 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Loop
+..\..\src\tint\lang\core\ir\transform\demote_to_helper.cc:208 internal compiler error: TINT_UNREACHABLE unexpected non-core instruction
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/arr-value-set-to-arr-value-squared/0-opt.spvasm.expected.ir.dxc.hlsl b/test/tint/vk-gl-cts/graphicsfuzz/arr-value-set-to-arr-value-squared/0-opt.spvasm.expected.ir.dxc.hlsl
deleted file mode 100644
index 3f437dc..0000000
--- a/test/tint/vk-gl-cts/graphicsfuzz/arr-value-set-to-arr-value-squared/0-opt.spvasm.expected.ir.dxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Access
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/arr-value-set-to-arr-value-squared/0-opt.spvasm.expected.ir.fxc.hlsl b/test/tint/vk-gl-cts/graphicsfuzz/arr-value-set-to-arr-value-squared/0-opt.spvasm.expected.ir.fxc.hlsl
deleted file mode 100644
index 3f437dc..0000000
--- a/test/tint/vk-gl-cts/graphicsfuzz/arr-value-set-to-arr-value-squared/0-opt.spvasm.expected.ir.fxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Access
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/arr-value-set-to-arr-value-squared/0-opt.wgsl.expected.ir.dxc.hlsl b/test/tint/vk-gl-cts/graphicsfuzz/arr-value-set-to-arr-value-squared/0-opt.wgsl.expected.ir.dxc.hlsl
deleted file mode 100644
index 6b047b4..0000000
--- a/test/tint/vk-gl-cts/graphicsfuzz/arr-value-set-to-arr-value-squared/0-opt.wgsl.expected.ir.dxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:287 internal compiler error: Switch() matched no cases. Type: tint::core::ir::FunctionParam
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/arr-value-set-to-arr-value-squared/0-opt.wgsl.expected.ir.fxc.hlsl b/test/tint/vk-gl-cts/graphicsfuzz/arr-value-set-to-arr-value-squared/0-opt.wgsl.expected.ir.fxc.hlsl
deleted file mode 100644
index 6b047b4..0000000
--- a/test/tint/vk-gl-cts/graphicsfuzz/arr-value-set-to-arr-value-squared/0-opt.wgsl.expected.ir.fxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:287 internal compiler error: Switch() matched no cases. Type: tint::core::ir::FunctionParam
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/array-idx-multiplied-by-for-loop-idx/0-opt.spvasm.expected.ir.dxc.hlsl b/test/tint/vk-gl-cts/graphicsfuzz/array-idx-multiplied-by-for-loop-idx/0-opt.spvasm.expected.ir.dxc.hlsl
deleted file mode 100644
index bdeab23..0000000
--- a/test/tint/vk-gl-cts/graphicsfuzz/array-idx-multiplied-by-for-loop-idx/0-opt.spvasm.expected.ir.dxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:198 internal compiler error: Switch() matched no cases. Type: tint::core::ir::If
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/array-idx-multiplied-by-for-loop-idx/0-opt.spvasm.expected.ir.fxc.hlsl b/test/tint/vk-gl-cts/graphicsfuzz/array-idx-multiplied-by-for-loop-idx/0-opt.spvasm.expected.ir.fxc.hlsl
deleted file mode 100644
index bdeab23..0000000
--- a/test/tint/vk-gl-cts/graphicsfuzz/array-idx-multiplied-by-for-loop-idx/0-opt.spvasm.expected.ir.fxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:198 internal compiler error: Switch() matched no cases. Type: tint::core::ir::If
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/array-idx-multiplied-by-for-loop-idx/0-opt.wgsl.expected.ir.dxc.hlsl b/test/tint/vk-gl-cts/graphicsfuzz/array-idx-multiplied-by-for-loop-idx/0-opt.wgsl.expected.ir.dxc.hlsl
deleted file mode 100644
index 4a2c666..0000000
--- a/test/tint/vk-gl-cts/graphicsfuzz/array-idx-multiplied-by-for-loop-idx/0-opt.wgsl.expected.ir.dxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::LoadVectorElement
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/array-idx-multiplied-by-for-loop-idx/0-opt.wgsl.expected.ir.fxc.hlsl b/test/tint/vk-gl-cts/graphicsfuzz/array-idx-multiplied-by-for-loop-idx/0-opt.wgsl.expected.ir.fxc.hlsl
deleted file mode 100644
index 4a2c666..0000000
--- a/test/tint/vk-gl-cts/graphicsfuzz/array-idx-multiplied-by-for-loop-idx/0-opt.wgsl.expected.ir.fxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::LoadVectorElement
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/assign-array-value-to-another-array-2/0-opt.spvasm.expected.ir.dxc.hlsl b/test/tint/vk-gl-cts/graphicsfuzz/assign-array-value-to-another-array-2/0-opt.spvasm.expected.ir.dxc.hlsl
deleted file mode 100644
index 3f437dc..0000000
--- a/test/tint/vk-gl-cts/graphicsfuzz/assign-array-value-to-another-array-2/0-opt.spvasm.expected.ir.dxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Access
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/assign-array-value-to-another-array-2/0-opt.spvasm.expected.ir.fxc.hlsl b/test/tint/vk-gl-cts/graphicsfuzz/assign-array-value-to-another-array-2/0-opt.spvasm.expected.ir.fxc.hlsl
deleted file mode 100644
index 3f437dc..0000000
--- a/test/tint/vk-gl-cts/graphicsfuzz/assign-array-value-to-another-array-2/0-opt.spvasm.expected.ir.fxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Access
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/assign-array-value-to-another-array-2/0-opt.wgsl.expected.ir.dxc.hlsl b/test/tint/vk-gl-cts/graphicsfuzz/assign-array-value-to-another-array-2/0-opt.wgsl.expected.ir.dxc.hlsl
deleted file mode 100644
index 3f437dc..0000000
--- a/test/tint/vk-gl-cts/graphicsfuzz/assign-array-value-to-another-array-2/0-opt.wgsl.expected.ir.dxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Access
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/assign-array-value-to-another-array-2/0-opt.wgsl.expected.ir.fxc.hlsl b/test/tint/vk-gl-cts/graphicsfuzz/assign-array-value-to-another-array-2/0-opt.wgsl.expected.ir.fxc.hlsl
deleted file mode 100644
index 3f437dc..0000000
--- a/test/tint/vk-gl-cts/graphicsfuzz/assign-array-value-to-another-array-2/0-opt.wgsl.expected.ir.fxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Access
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/assign-array-value-to-another-array/0-opt.spvasm.expected.ir.dxc.hlsl b/test/tint/vk-gl-cts/graphicsfuzz/assign-array-value-to-another-array/0-opt.spvasm.expected.ir.dxc.hlsl
deleted file mode 100644
index 3f437dc..0000000
--- a/test/tint/vk-gl-cts/graphicsfuzz/assign-array-value-to-another-array/0-opt.spvasm.expected.ir.dxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Access
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/assign-array-value-to-another-array/0-opt.spvasm.expected.ir.fxc.hlsl b/test/tint/vk-gl-cts/graphicsfuzz/assign-array-value-to-another-array/0-opt.spvasm.expected.ir.fxc.hlsl
deleted file mode 100644
index 3f437dc..0000000
--- a/test/tint/vk-gl-cts/graphicsfuzz/assign-array-value-to-another-array/0-opt.spvasm.expected.ir.fxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Access
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/assign-array-value-to-another-array/0-opt.wgsl.expected.ir.dxc.hlsl b/test/tint/vk-gl-cts/graphicsfuzz/assign-array-value-to-another-array/0-opt.wgsl.expected.ir.dxc.hlsl
deleted file mode 100644
index 3f437dc..0000000
--- a/test/tint/vk-gl-cts/graphicsfuzz/assign-array-value-to-another-array/0-opt.wgsl.expected.ir.dxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Access
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/assign-array-value-to-another-array/0-opt.wgsl.expected.ir.fxc.hlsl b/test/tint/vk-gl-cts/graphicsfuzz/assign-array-value-to-another-array/0-opt.wgsl.expected.ir.fxc.hlsl
deleted file mode 100644
index 3f437dc..0000000
--- a/test/tint/vk-gl-cts/graphicsfuzz/assign-array-value-to-another-array/0-opt.wgsl.expected.ir.fxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Access
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/break-in-do-while-with-nested-if/0-opt.spvasm.expected.ir.dxc.hlsl b/test/tint/vk-gl-cts/graphicsfuzz/break-in-do-while-with-nested-if/0-opt.spvasm.expected.ir.dxc.hlsl
deleted file mode 100644
index adbb0c1..0000000
--- a/test/tint/vk-gl-cts/graphicsfuzz/break-in-do-while-with-nested-if/0-opt.spvasm.expected.ir.dxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:198 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Loop
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/break-in-do-while-with-nested-if/0-opt.spvasm.expected.ir.fxc.hlsl b/test/tint/vk-gl-cts/graphicsfuzz/break-in-do-while-with-nested-if/0-opt.spvasm.expected.ir.fxc.hlsl
deleted file mode 100644
index adbb0c1..0000000
--- a/test/tint/vk-gl-cts/graphicsfuzz/break-in-do-while-with-nested-if/0-opt.spvasm.expected.ir.fxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:198 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Loop
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/break-in-do-while-with-nested-if/0-opt.wgsl.expected.ir.dxc.hlsl b/test/tint/vk-gl-cts/graphicsfuzz/break-in-do-while-with-nested-if/0-opt.wgsl.expected.ir.dxc.hlsl
deleted file mode 100644
index adbb0c1..0000000
--- a/test/tint/vk-gl-cts/graphicsfuzz/break-in-do-while-with-nested-if/0-opt.wgsl.expected.ir.dxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:198 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Loop
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/break-in-do-while-with-nested-if/0-opt.wgsl.expected.ir.fxc.hlsl b/test/tint/vk-gl-cts/graphicsfuzz/break-in-do-while-with-nested-if/0-opt.wgsl.expected.ir.fxc.hlsl
deleted file mode 100644
index adbb0c1..0000000
--- a/test/tint/vk-gl-cts/graphicsfuzz/break-in-do-while-with-nested-if/0-opt.wgsl.expected.ir.fxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:198 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Loop
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/call-function-with-discard/0-opt.spvasm.expected.ir.dxc.hlsl b/test/tint/vk-gl-cts/graphicsfuzz/call-function-with-discard/0-opt.spvasm.expected.ir.dxc.hlsl
index bdeab23..d1ee477 100644
--- a/test/tint/vk-gl-cts/graphicsfuzz/call-function-with-discard/0-opt.spvasm.expected.ir.dxc.hlsl
+++ b/test/tint/vk-gl-cts/graphicsfuzz/call-function-with-discard/0-opt.spvasm.expected.ir.dxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:198 internal compiler error: Switch() matched no cases. Type: tint::core::ir::If
+..\..\src\tint\lang\core\ir\transform\demote_to_helper.cc:208 internal compiler error: TINT_UNREACHABLE unexpected non-core instruction
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/call-function-with-discard/0-opt.spvasm.expected.ir.fxc.hlsl b/test/tint/vk-gl-cts/graphicsfuzz/call-function-with-discard/0-opt.spvasm.expected.ir.fxc.hlsl
index bdeab23..d1ee477 100644
--- a/test/tint/vk-gl-cts/graphicsfuzz/call-function-with-discard/0-opt.spvasm.expected.ir.fxc.hlsl
+++ b/test/tint/vk-gl-cts/graphicsfuzz/call-function-with-discard/0-opt.spvasm.expected.ir.fxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:198 internal compiler error: Switch() matched no cases. Type: tint::core::ir::If
+..\..\src\tint\lang\core\ir\transform\demote_to_helper.cc:208 internal compiler error: TINT_UNREACHABLE unexpected non-core instruction
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/call-function-with-discard/0-opt.wgsl.expected.ir.dxc.hlsl b/test/tint/vk-gl-cts/graphicsfuzz/call-function-with-discard/0-opt.wgsl.expected.ir.dxc.hlsl
index 3f437dc..d1ee477 100644
--- a/test/tint/vk-gl-cts/graphicsfuzz/call-function-with-discard/0-opt.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/vk-gl-cts/graphicsfuzz/call-function-with-discard/0-opt.wgsl.expected.ir.dxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Access
+..\..\src\tint\lang\core\ir\transform\demote_to_helper.cc:208 internal compiler error: TINT_UNREACHABLE unexpected non-core instruction
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/call-function-with-discard/0-opt.wgsl.expected.ir.fxc.hlsl b/test/tint/vk-gl-cts/graphicsfuzz/call-function-with-discard/0-opt.wgsl.expected.ir.fxc.hlsl
index 3f437dc..d1ee477 100644
--- a/test/tint/vk-gl-cts/graphicsfuzz/call-function-with-discard/0-opt.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/vk-gl-cts/graphicsfuzz/call-function-with-discard/0-opt.wgsl.expected.ir.fxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Access
+..\..\src\tint\lang\core\ir\transform\demote_to_helper.cc:208 internal compiler error: TINT_UNREACHABLE unexpected non-core instruction
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/color-set-in-for-loop/0-opt.wgsl.expected.ir.dxc.hlsl b/test/tint/vk-gl-cts/graphicsfuzz/color-set-in-for-loop/0-opt.wgsl.expected.ir.dxc.hlsl
deleted file mode 100644
index 4a2c666..0000000
--- a/test/tint/vk-gl-cts/graphicsfuzz/color-set-in-for-loop/0-opt.wgsl.expected.ir.dxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::LoadVectorElement
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/color-set-in-for-loop/0-opt.wgsl.expected.ir.fxc.hlsl b/test/tint/vk-gl-cts/graphicsfuzz/color-set-in-for-loop/0-opt.wgsl.expected.ir.fxc.hlsl
deleted file mode 100644
index 4a2c666..0000000
--- a/test/tint/vk-gl-cts/graphicsfuzz/color-set-in-for-loop/0-opt.wgsl.expected.ir.fxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::LoadVectorElement
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/color-write-in-loop/0.spvasm.expected.ir.dxc.hlsl b/test/tint/vk-gl-cts/graphicsfuzz/color-write-in-loop/0.spvasm.expected.ir.dxc.hlsl
deleted file mode 100644
index adbb0c1..0000000
--- a/test/tint/vk-gl-cts/graphicsfuzz/color-write-in-loop/0.spvasm.expected.ir.dxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:198 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Loop
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/color-write-in-loop/0.spvasm.expected.ir.fxc.hlsl b/test/tint/vk-gl-cts/graphicsfuzz/color-write-in-loop/0.spvasm.expected.ir.fxc.hlsl
deleted file mode 100644
index adbb0c1..0000000
--- a/test/tint/vk-gl-cts/graphicsfuzz/color-write-in-loop/0.spvasm.expected.ir.fxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:198 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Loop
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/color-write-in-loop/0.wgsl.expected.ir.dxc.hlsl b/test/tint/vk-gl-cts/graphicsfuzz/color-write-in-loop/0.wgsl.expected.ir.dxc.hlsl
deleted file mode 100644
index adbb0c1..0000000
--- a/test/tint/vk-gl-cts/graphicsfuzz/color-write-in-loop/0.wgsl.expected.ir.dxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:198 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Loop
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/color-write-in-loop/0.wgsl.expected.ir.fxc.hlsl b/test/tint/vk-gl-cts/graphicsfuzz/color-write-in-loop/0.wgsl.expected.ir.fxc.hlsl
deleted file mode 100644
index adbb0c1..0000000
--- a/test/tint/vk-gl-cts/graphicsfuzz/color-write-in-loop/0.wgsl.expected.ir.fxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:198 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Loop
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/conditional-return-in-infinite-while/0-opt.spvasm.expected.ir.dxc.hlsl b/test/tint/vk-gl-cts/graphicsfuzz/conditional-return-in-infinite-while/0-opt.spvasm.expected.ir.dxc.hlsl
deleted file mode 100644
index adbb0c1..0000000
--- a/test/tint/vk-gl-cts/graphicsfuzz/conditional-return-in-infinite-while/0-opt.spvasm.expected.ir.dxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:198 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Loop
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/conditional-return-in-infinite-while/0-opt.spvasm.expected.ir.fxc.hlsl b/test/tint/vk-gl-cts/graphicsfuzz/conditional-return-in-infinite-while/0-opt.spvasm.expected.ir.fxc.hlsl
deleted file mode 100644
index adbb0c1..0000000
--- a/test/tint/vk-gl-cts/graphicsfuzz/conditional-return-in-infinite-while/0-opt.spvasm.expected.ir.fxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:198 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Loop
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/conditional-return-in-infinite-while/0-opt.wgsl.expected.ir.dxc.hlsl b/test/tint/vk-gl-cts/graphicsfuzz/conditional-return-in-infinite-while/0-opt.wgsl.expected.ir.dxc.hlsl
deleted file mode 100644
index adbb0c1..0000000
--- a/test/tint/vk-gl-cts/graphicsfuzz/conditional-return-in-infinite-while/0-opt.wgsl.expected.ir.dxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:198 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Loop
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/conditional-return-in-infinite-while/0-opt.wgsl.expected.ir.fxc.hlsl b/test/tint/vk-gl-cts/graphicsfuzz/conditional-return-in-infinite-while/0-opt.wgsl.expected.ir.fxc.hlsl
deleted file mode 100644
index adbb0c1..0000000
--- a/test/tint/vk-gl-cts/graphicsfuzz/conditional-return-in-infinite-while/0-opt.wgsl.expected.ir.fxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:198 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Loop
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/control-flow-in-function/0-opt.spvasm.expected.ir.dxc.hlsl b/test/tint/vk-gl-cts/graphicsfuzz/control-flow-in-function/0-opt.spvasm.expected.ir.dxc.hlsl
deleted file mode 100644
index 4a2c666..0000000
--- a/test/tint/vk-gl-cts/graphicsfuzz/control-flow-in-function/0-opt.spvasm.expected.ir.dxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::LoadVectorElement
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/control-flow-in-function/0-opt.spvasm.expected.ir.fxc.hlsl b/test/tint/vk-gl-cts/graphicsfuzz/control-flow-in-function/0-opt.spvasm.expected.ir.fxc.hlsl
index 4a2c666..90e9bef 100644
--- a/test/tint/vk-gl-cts/graphicsfuzz/control-flow-in-function/0-opt.spvasm.expected.ir.fxc.hlsl
+++ b/test/tint/vk-gl-cts/graphicsfuzz/control-flow-in-function/0-opt.spvasm.expected.ir.fxc.hlsl
@@ -1,9 +1,3 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::LoadVectorElement
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+test timed out after 2m0s
\ No newline at end of file
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/control-flow-in-function/0-opt.wgsl.expected.ir.dxc.hlsl b/test/tint/vk-gl-cts/graphicsfuzz/control-flow-in-function/0-opt.wgsl.expected.ir.dxc.hlsl
deleted file mode 100644
index 4a2c666..0000000
--- a/test/tint/vk-gl-cts/graphicsfuzz/control-flow-in-function/0-opt.wgsl.expected.ir.dxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::LoadVectorElement
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/control-flow-in-function/0-opt.wgsl.expected.ir.fxc.hlsl b/test/tint/vk-gl-cts/graphicsfuzz/control-flow-in-function/0-opt.wgsl.expected.ir.fxc.hlsl
index 4a2c666..90e9bef 100644
--- a/test/tint/vk-gl-cts/graphicsfuzz/control-flow-in-function/0-opt.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/vk-gl-cts/graphicsfuzz/control-flow-in-function/0-opt.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,3 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::LoadVectorElement
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+test timed out after 2m0s
\ No newline at end of file
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/cov-access-array-dot/0-opt.spvasm.expected.ir.dxc.hlsl b/test/tint/vk-gl-cts/graphicsfuzz/cov-access-array-dot/0-opt.spvasm.expected.ir.dxc.hlsl
deleted file mode 100644
index 3f437dc..0000000
--- a/test/tint/vk-gl-cts/graphicsfuzz/cov-access-array-dot/0-opt.spvasm.expected.ir.dxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Access
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/cov-access-array-dot/0-opt.spvasm.expected.ir.fxc.hlsl b/test/tint/vk-gl-cts/graphicsfuzz/cov-access-array-dot/0-opt.spvasm.expected.ir.fxc.hlsl
deleted file mode 100644
index 3f437dc..0000000
--- a/test/tint/vk-gl-cts/graphicsfuzz/cov-access-array-dot/0-opt.spvasm.expected.ir.fxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Access
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/cov-access-array-dot/0-opt.wgsl.expected.ir.dxc.hlsl b/test/tint/vk-gl-cts/graphicsfuzz/cov-access-array-dot/0-opt.wgsl.expected.ir.dxc.hlsl
deleted file mode 100644
index 3f437dc..0000000
--- a/test/tint/vk-gl-cts/graphicsfuzz/cov-access-array-dot/0-opt.wgsl.expected.ir.dxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Access
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/cov-access-array-dot/0-opt.wgsl.expected.ir.fxc.hlsl b/test/tint/vk-gl-cts/graphicsfuzz/cov-access-array-dot/0-opt.wgsl.expected.ir.fxc.hlsl
deleted file mode 100644
index 3f437dc..0000000
--- a/test/tint/vk-gl-cts/graphicsfuzz/cov-access-array-dot/0-opt.wgsl.expected.ir.fxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Access
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/cov-analysis-reachable-from-many/0-opt.spvasm.expected.ir.dxc.hlsl b/test/tint/vk-gl-cts/graphicsfuzz/cov-analysis-reachable-from-many/0-opt.spvasm.expected.ir.dxc.hlsl
index adbb0c1..d1ee477 100644
--- a/test/tint/vk-gl-cts/graphicsfuzz/cov-analysis-reachable-from-many/0-opt.spvasm.expected.ir.dxc.hlsl
+++ b/test/tint/vk-gl-cts/graphicsfuzz/cov-analysis-reachable-from-many/0-opt.spvasm.expected.ir.dxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:198 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Loop
+..\..\src\tint\lang\core\ir\transform\demote_to_helper.cc:208 internal compiler error: TINT_UNREACHABLE unexpected non-core instruction
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/cov-analysis-reachable-from-many/0-opt.spvasm.expected.ir.fxc.hlsl b/test/tint/vk-gl-cts/graphicsfuzz/cov-analysis-reachable-from-many/0-opt.spvasm.expected.ir.fxc.hlsl
index adbb0c1..d1ee477 100644
--- a/test/tint/vk-gl-cts/graphicsfuzz/cov-analysis-reachable-from-many/0-opt.spvasm.expected.ir.fxc.hlsl
+++ b/test/tint/vk-gl-cts/graphicsfuzz/cov-analysis-reachable-from-many/0-opt.spvasm.expected.ir.fxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:198 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Loop
+..\..\src\tint\lang\core\ir\transform\demote_to_helper.cc:208 internal compiler error: TINT_UNREACHABLE unexpected non-core instruction
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/cov-analysis-reachable-from-many/0-opt.wgsl.expected.ir.dxc.hlsl b/test/tint/vk-gl-cts/graphicsfuzz/cov-analysis-reachable-from-many/0-opt.wgsl.expected.ir.dxc.hlsl
index adbb0c1..d1ee477 100644
--- a/test/tint/vk-gl-cts/graphicsfuzz/cov-analysis-reachable-from-many/0-opt.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/vk-gl-cts/graphicsfuzz/cov-analysis-reachable-from-many/0-opt.wgsl.expected.ir.dxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:198 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Loop
+..\..\src\tint\lang\core\ir\transform\demote_to_helper.cc:208 internal compiler error: TINT_UNREACHABLE unexpected non-core instruction
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/cov-analysis-reachable-from-many/0-opt.wgsl.expected.ir.fxc.hlsl b/test/tint/vk-gl-cts/graphicsfuzz/cov-analysis-reachable-from-many/0-opt.wgsl.expected.ir.fxc.hlsl
index adbb0c1..d1ee477 100644
--- a/test/tint/vk-gl-cts/graphicsfuzz/cov-analysis-reachable-from-many/0-opt.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/vk-gl-cts/graphicsfuzz/cov-analysis-reachable-from-many/0-opt.wgsl.expected.ir.fxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:198 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Loop
+..\..\src\tint\lang\core\ir\transform\demote_to_helper.cc:208 internal compiler error: TINT_UNREACHABLE unexpected non-core instruction
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/cov-and-even-numbers-from-fragcoord/0-opt.spvasm.expected.ir.dxc.hlsl b/test/tint/vk-gl-cts/graphicsfuzz/cov-and-even-numbers-from-fragcoord/0-opt.spvasm.expected.ir.dxc.hlsl
deleted file mode 100644
index bdeab23..0000000
--- a/test/tint/vk-gl-cts/graphicsfuzz/cov-and-even-numbers-from-fragcoord/0-opt.spvasm.expected.ir.dxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:198 internal compiler error: Switch() matched no cases. Type: tint::core::ir::If
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/cov-and-even-numbers-from-fragcoord/0-opt.spvasm.expected.ir.fxc.hlsl b/test/tint/vk-gl-cts/graphicsfuzz/cov-and-even-numbers-from-fragcoord/0-opt.spvasm.expected.ir.fxc.hlsl
deleted file mode 100644
index bdeab23..0000000
--- a/test/tint/vk-gl-cts/graphicsfuzz/cov-and-even-numbers-from-fragcoord/0-opt.spvasm.expected.ir.fxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:198 internal compiler error: Switch() matched no cases. Type: tint::core::ir::If
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/cov-and-even-numbers-from-fragcoord/0-opt.wgsl.expected.ir.dxc.hlsl b/test/tint/vk-gl-cts/graphicsfuzz/cov-and-even-numbers-from-fragcoord/0-opt.wgsl.expected.ir.dxc.hlsl
deleted file mode 100644
index 4a2c666..0000000
--- a/test/tint/vk-gl-cts/graphicsfuzz/cov-and-even-numbers-from-fragcoord/0-opt.wgsl.expected.ir.dxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::LoadVectorElement
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/cov-and-even-numbers-from-fragcoord/0-opt.wgsl.expected.ir.fxc.hlsl b/test/tint/vk-gl-cts/graphicsfuzz/cov-and-even-numbers-from-fragcoord/0-opt.wgsl.expected.ir.fxc.hlsl
deleted file mode 100644
index 4a2c666..0000000
--- a/test/tint/vk-gl-cts/graphicsfuzz/cov-and-even-numbers-from-fragcoord/0-opt.wgsl.expected.ir.fxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::LoadVectorElement
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/cov-apfloat-acos-ldexp/0-opt.spvasm.expected.ir.dxc.hlsl b/test/tint/vk-gl-cts/graphicsfuzz/cov-apfloat-acos-ldexp/0-opt.spvasm.expected.ir.dxc.hlsl
deleted file mode 100644
index c6e1d96..0000000
--- a/test/tint/vk-gl-cts/graphicsfuzz/cov-apfloat-acos-ldexp/0-opt.spvasm.expected.ir.dxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Construct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/cov-apfloat-acos-ldexp/0-opt.spvasm.expected.ir.fxc.hlsl b/test/tint/vk-gl-cts/graphicsfuzz/cov-apfloat-acos-ldexp/0-opt.spvasm.expected.ir.fxc.hlsl
deleted file mode 100644
index c6e1d96..0000000
--- a/test/tint/vk-gl-cts/graphicsfuzz/cov-apfloat-acos-ldexp/0-opt.spvasm.expected.ir.fxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Construct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/cov-apfloat-acos-ldexp/0-opt.wgsl.expected.ir.dxc.hlsl b/test/tint/vk-gl-cts/graphicsfuzz/cov-apfloat-acos-ldexp/0-opt.wgsl.expected.ir.dxc.hlsl
deleted file mode 100644
index 3f437dc..0000000
--- a/test/tint/vk-gl-cts/graphicsfuzz/cov-apfloat-acos-ldexp/0-opt.wgsl.expected.ir.dxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Access
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/cov-apfloat-acos-ldexp/0-opt.wgsl.expected.ir.fxc.hlsl b/test/tint/vk-gl-cts/graphicsfuzz/cov-apfloat-acos-ldexp/0-opt.wgsl.expected.ir.fxc.hlsl
deleted file mode 100644
index 3f437dc..0000000
--- a/test/tint/vk-gl-cts/graphicsfuzz/cov-apfloat-acos-ldexp/0-opt.wgsl.expected.ir.fxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Access
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/cov-apfloat-mod-zero/0-opt.spvasm.expected.ir.dxc.hlsl b/test/tint/vk-gl-cts/graphicsfuzz/cov-apfloat-mod-zero/0-opt.spvasm.expected.ir.dxc.hlsl
deleted file mode 100644
index 3f437dc..0000000
--- a/test/tint/vk-gl-cts/graphicsfuzz/cov-apfloat-mod-zero/0-opt.spvasm.expected.ir.dxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Access
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/cov-apfloat-mod-zero/0-opt.spvasm.expected.ir.fxc.hlsl b/test/tint/vk-gl-cts/graphicsfuzz/cov-apfloat-mod-zero/0-opt.spvasm.expected.ir.fxc.hlsl
deleted file mode 100644
index 3f437dc..0000000
--- a/test/tint/vk-gl-cts/graphicsfuzz/cov-apfloat-mod-zero/0-opt.spvasm.expected.ir.fxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Access
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/cov-apfloat-mod-zero/0-opt.wgsl.expected.ir.dxc.hlsl b/test/tint/vk-gl-cts/graphicsfuzz/cov-apfloat-mod-zero/0-opt.wgsl.expected.ir.dxc.hlsl
deleted file mode 100644
index 3f437dc..0000000
--- a/test/tint/vk-gl-cts/graphicsfuzz/cov-apfloat-mod-zero/0-opt.wgsl.expected.ir.dxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Access
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/cov-apfloat-mod-zero/0-opt.wgsl.expected.ir.fxc.hlsl b/test/tint/vk-gl-cts/graphicsfuzz/cov-apfloat-mod-zero/0-opt.wgsl.expected.ir.fxc.hlsl
deleted file mode 100644
index 3f437dc..0000000
--- a/test/tint/vk-gl-cts/graphicsfuzz/cov-apfloat-mod-zero/0-opt.wgsl.expected.ir.fxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Access
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/cov-apfloat-reflect-denorm/0-opt.spvasm.expected.ir.dxc.hlsl b/test/tint/vk-gl-cts/graphicsfuzz/cov-apfloat-reflect-denorm/0-opt.spvasm.expected.ir.dxc.hlsl
deleted file mode 100644
index a249798..0000000
--- a/test/tint/vk-gl-cts/graphicsfuzz/cov-apfloat-reflect-denorm/0-opt.spvasm.expected.ir.dxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Bitcast
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/cov-apfloat-reflect-denorm/0-opt.spvasm.expected.ir.fxc.hlsl b/test/tint/vk-gl-cts/graphicsfuzz/cov-apfloat-reflect-denorm/0-opt.spvasm.expected.ir.fxc.hlsl
deleted file mode 100644
index a249798..0000000
--- a/test/tint/vk-gl-cts/graphicsfuzz/cov-apfloat-reflect-denorm/0-opt.spvasm.expected.ir.fxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Bitcast
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/cov-apfloat-reflect-denorm/0-opt.wgsl.expected.ir.dxc.hlsl b/test/tint/vk-gl-cts/graphicsfuzz/cov-apfloat-reflect-denorm/0-opt.wgsl.expected.ir.dxc.hlsl
deleted file mode 100644
index 3f437dc..0000000
--- a/test/tint/vk-gl-cts/graphicsfuzz/cov-apfloat-reflect-denorm/0-opt.wgsl.expected.ir.dxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Access
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/cov-apfloat-reflect-denorm/0-opt.wgsl.expected.ir.fxc.hlsl b/test/tint/vk-gl-cts/graphicsfuzz/cov-apfloat-reflect-denorm/0-opt.wgsl.expected.ir.fxc.hlsl
deleted file mode 100644
index 3f437dc..0000000
--- a/test/tint/vk-gl-cts/graphicsfuzz/cov-apfloat-reflect-denorm/0-opt.wgsl.expected.ir.fxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Access
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/cov-apfloat-sinh-negative-log2/0-opt.spvasm.expected.ir.dxc.hlsl b/test/tint/vk-gl-cts/graphicsfuzz/cov-apfloat-sinh-negative-log2/0-opt.spvasm.expected.ir.dxc.hlsl
deleted file mode 100644
index 3f437dc..0000000
--- a/test/tint/vk-gl-cts/graphicsfuzz/cov-apfloat-sinh-negative-log2/0-opt.spvasm.expected.ir.dxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Access
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/cov-apfloat-sinh-negative-log2/0-opt.spvasm.expected.ir.fxc.hlsl b/test/tint/vk-gl-cts/graphicsfuzz/cov-apfloat-sinh-negative-log2/0-opt.spvasm.expected.ir.fxc.hlsl
deleted file mode 100644
index 3f437dc..0000000
--- a/test/tint/vk-gl-cts/graphicsfuzz/cov-apfloat-sinh-negative-log2/0-opt.spvasm.expected.ir.fxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Access
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/cov-apfloat-sinh-negative-log2/0-opt.wgsl.expected.ir.dxc.hlsl b/test/tint/vk-gl-cts/graphicsfuzz/cov-apfloat-sinh-negative-log2/0-opt.wgsl.expected.ir.dxc.hlsl
deleted file mode 100644
index 3f437dc..0000000
--- a/test/tint/vk-gl-cts/graphicsfuzz/cov-apfloat-sinh-negative-log2/0-opt.wgsl.expected.ir.dxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Access
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/cov-apfloat-sinh-negative-log2/0-opt.wgsl.expected.ir.fxc.hlsl b/test/tint/vk-gl-cts/graphicsfuzz/cov-apfloat-sinh-negative-log2/0-opt.wgsl.expected.ir.fxc.hlsl
deleted file mode 100644
index 3f437dc..0000000
--- a/test/tint/vk-gl-cts/graphicsfuzz/cov-apfloat-sinh-negative-log2/0-opt.wgsl.expected.ir.fxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Access
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/cov-apfloat-tanh/0-opt.spvasm.expected.ir.dxc.hlsl b/test/tint/vk-gl-cts/graphicsfuzz/cov-apfloat-tanh/0-opt.spvasm.expected.ir.dxc.hlsl
deleted file mode 100644
index bdeab23..0000000
--- a/test/tint/vk-gl-cts/graphicsfuzz/cov-apfloat-tanh/0-opt.spvasm.expected.ir.dxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:198 internal compiler error: Switch() matched no cases. Type: tint::core::ir::If
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/cov-apfloat-tanh/0-opt.spvasm.expected.ir.fxc.hlsl b/test/tint/vk-gl-cts/graphicsfuzz/cov-apfloat-tanh/0-opt.spvasm.expected.ir.fxc.hlsl
deleted file mode 100644
index bdeab23..0000000
--- a/test/tint/vk-gl-cts/graphicsfuzz/cov-apfloat-tanh/0-opt.spvasm.expected.ir.fxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:198 internal compiler error: Switch() matched no cases. Type: tint::core::ir::If
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/cov-apfloat-tanh/0-opt.wgsl.expected.ir.dxc.hlsl b/test/tint/vk-gl-cts/graphicsfuzz/cov-apfloat-tanh/0-opt.wgsl.expected.ir.dxc.hlsl
deleted file mode 100644
index bdeab23..0000000
--- a/test/tint/vk-gl-cts/graphicsfuzz/cov-apfloat-tanh/0-opt.wgsl.expected.ir.dxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:198 internal compiler error: Switch() matched no cases. Type: tint::core::ir::If
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/cov-apfloat-tanh/0-opt.wgsl.expected.ir.fxc.hlsl b/test/tint/vk-gl-cts/graphicsfuzz/cov-apfloat-tanh/0-opt.wgsl.expected.ir.fxc.hlsl
deleted file mode 100644
index bdeab23..0000000
--- a/test/tint/vk-gl-cts/graphicsfuzz/cov-apfloat-tanh/0-opt.wgsl.expected.ir.fxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:198 internal compiler error: Switch() matched no cases. Type: tint::core::ir::If
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/cov-apfloat-undefined-matrix-mul/0-opt.spvasm.expected.ir.dxc.hlsl b/test/tint/vk-gl-cts/graphicsfuzz/cov-apfloat-undefined-matrix-mul/0-opt.spvasm.expected.ir.dxc.hlsl
deleted file mode 100644
index c6e1d96..0000000
--- a/test/tint/vk-gl-cts/graphicsfuzz/cov-apfloat-undefined-matrix-mul/0-opt.spvasm.expected.ir.dxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Construct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/cov-apfloat-undefined-matrix-mul/0-opt.spvasm.expected.ir.fxc.hlsl b/test/tint/vk-gl-cts/graphicsfuzz/cov-apfloat-undefined-matrix-mul/0-opt.spvasm.expected.ir.fxc.hlsl
deleted file mode 100644
index c6e1d96..0000000
--- a/test/tint/vk-gl-cts/graphicsfuzz/cov-apfloat-undefined-matrix-mul/0-opt.spvasm.expected.ir.fxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Construct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/cov-apfloat-undefined-matrix-mul/0-opt.wgsl.expected.ir.dxc.hlsl b/test/tint/vk-gl-cts/graphicsfuzz/cov-apfloat-undefined-matrix-mul/0-opt.wgsl.expected.ir.dxc.hlsl
deleted file mode 100644
index 3f437dc..0000000
--- a/test/tint/vk-gl-cts/graphicsfuzz/cov-apfloat-undefined-matrix-mul/0-opt.wgsl.expected.ir.dxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Access
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/cov-apfloat-undefined-matrix-mul/0-opt.wgsl.expected.ir.fxc.hlsl b/test/tint/vk-gl-cts/graphicsfuzz/cov-apfloat-undefined-matrix-mul/0-opt.wgsl.expected.ir.fxc.hlsl
deleted file mode 100644
index 3f437dc..0000000
--- a/test/tint/vk-gl-cts/graphicsfuzz/cov-apfloat-undefined-matrix-mul/0-opt.wgsl.expected.ir.fxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Access
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/cov-apfloat-unpackunorm-loop/0-opt.spvasm.expected.ir.dxc.hlsl b/test/tint/vk-gl-cts/graphicsfuzz/cov-apfloat-unpackunorm-loop/0-opt.spvasm.expected.ir.dxc.hlsl
deleted file mode 100644
index 3f437dc..0000000
--- a/test/tint/vk-gl-cts/graphicsfuzz/cov-apfloat-unpackunorm-loop/0-opt.spvasm.expected.ir.dxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Access
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/cov-apfloat-unpackunorm-loop/0-opt.spvasm.expected.ir.fxc.hlsl b/test/tint/vk-gl-cts/graphicsfuzz/cov-apfloat-unpackunorm-loop/0-opt.spvasm.expected.ir.fxc.hlsl
deleted file mode 100644
index 3f437dc..0000000
--- a/test/tint/vk-gl-cts/graphicsfuzz/cov-apfloat-unpackunorm-loop/0-opt.spvasm.expected.ir.fxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Access
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/cov-apfloat-unpackunorm-loop/0-opt.wgsl.expected.ir.dxc.hlsl b/test/tint/vk-gl-cts/graphicsfuzz/cov-apfloat-unpackunorm-loop/0-opt.wgsl.expected.ir.dxc.hlsl
deleted file mode 100644
index 3f437dc..0000000
--- a/test/tint/vk-gl-cts/graphicsfuzz/cov-apfloat-unpackunorm-loop/0-opt.wgsl.expected.ir.dxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Access
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/cov-apfloat-unpackunorm-loop/0-opt.wgsl.expected.ir.fxc.hlsl b/test/tint/vk-gl-cts/graphicsfuzz/cov-apfloat-unpackunorm-loop/0-opt.wgsl.expected.ir.fxc.hlsl
deleted file mode 100644
index 3f437dc..0000000
--- a/test/tint/vk-gl-cts/graphicsfuzz/cov-apfloat-unpackunorm-loop/0-opt.wgsl.expected.ir.fxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Access
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/cov-array-accesses-clamp/0-opt.spvasm.expected.ir.dxc.hlsl b/test/tint/vk-gl-cts/graphicsfuzz/cov-array-accesses-clamp/0-opt.spvasm.expected.ir.dxc.hlsl
deleted file mode 100644
index c6e1d96..0000000
--- a/test/tint/vk-gl-cts/graphicsfuzz/cov-array-accesses-clamp/0-opt.spvasm.expected.ir.dxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Construct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/cov-array-accesses-clamp/0-opt.spvasm.expected.ir.fxc.hlsl b/test/tint/vk-gl-cts/graphicsfuzz/cov-array-accesses-clamp/0-opt.spvasm.expected.ir.fxc.hlsl
deleted file mode 100644
index c6e1d96..0000000
--- a/test/tint/vk-gl-cts/graphicsfuzz/cov-array-accesses-clamp/0-opt.spvasm.expected.ir.fxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Construct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/cov-array-accesses-clamp/0-opt.wgsl.expected.ir.dxc.hlsl b/test/tint/vk-gl-cts/graphicsfuzz/cov-array-accesses-clamp/0-opt.wgsl.expected.ir.dxc.hlsl
deleted file mode 100644
index 3f437dc..0000000
--- a/test/tint/vk-gl-cts/graphicsfuzz/cov-array-accesses-clamp/0-opt.wgsl.expected.ir.dxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Access
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/cov-array-accesses-clamp/0-opt.wgsl.expected.ir.fxc.hlsl b/test/tint/vk-gl-cts/graphicsfuzz/cov-array-accesses-clamp/0-opt.wgsl.expected.ir.fxc.hlsl
deleted file mode 100644
index 3f437dc..0000000
--- a/test/tint/vk-gl-cts/graphicsfuzz/cov-array-accesses-clamp/0-opt.wgsl.expected.ir.fxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Access
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/cov-array-copies-loops-with-limiters/0-opt.spvasm.expected.ir.dxc.hlsl b/test/tint/vk-gl-cts/graphicsfuzz/cov-array-copies-loops-with-limiters/0-opt.spvasm.expected.ir.dxc.hlsl
deleted file mode 100644
index c6e1d96..0000000
--- a/test/tint/vk-gl-cts/graphicsfuzz/cov-array-copies-loops-with-limiters/0-opt.spvasm.expected.ir.dxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Construct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/cov-array-copies-loops-with-limiters/0-opt.spvasm.expected.ir.fxc.hlsl b/test/tint/vk-gl-cts/graphicsfuzz/cov-array-copies-loops-with-limiters/0-opt.spvasm.expected.ir.fxc.hlsl
deleted file mode 100644
index c6e1d96..0000000
--- a/test/tint/vk-gl-cts/graphicsfuzz/cov-array-copies-loops-with-limiters/0-opt.spvasm.expected.ir.fxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Construct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/cov-array-copies-loops-with-limiters/0-opt.wgsl.expected.ir.dxc.hlsl b/test/tint/vk-gl-cts/graphicsfuzz/cov-array-copies-loops-with-limiters/0-opt.wgsl.expected.ir.dxc.hlsl
deleted file mode 100644
index 3f437dc..0000000
--- a/test/tint/vk-gl-cts/graphicsfuzz/cov-array-copies-loops-with-limiters/0-opt.wgsl.expected.ir.dxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Access
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/cov-array-copies-loops-with-limiters/0-opt.wgsl.expected.ir.fxc.hlsl b/test/tint/vk-gl-cts/graphicsfuzz/cov-array-copies-loops-with-limiters/0-opt.wgsl.expected.ir.fxc.hlsl
deleted file mode 100644
index 3f437dc..0000000
--- a/test/tint/vk-gl-cts/graphicsfuzz/cov-array-copies-loops-with-limiters/0-opt.wgsl.expected.ir.fxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Access
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/cov-asin-undefined-smoothstep/0-opt.spvasm.expected.ir.dxc.hlsl b/test/tint/vk-gl-cts/graphicsfuzz/cov-asin-undefined-smoothstep/0-opt.spvasm.expected.ir.dxc.hlsl
deleted file mode 100644
index c6e1d96..0000000
--- a/test/tint/vk-gl-cts/graphicsfuzz/cov-asin-undefined-smoothstep/0-opt.spvasm.expected.ir.dxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Construct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/cov-asin-undefined-smoothstep/0-opt.spvasm.expected.ir.fxc.hlsl b/test/tint/vk-gl-cts/graphicsfuzz/cov-asin-undefined-smoothstep/0-opt.spvasm.expected.ir.fxc.hlsl
deleted file mode 100644
index c6e1d96..0000000
--- a/test/tint/vk-gl-cts/graphicsfuzz/cov-asin-undefined-smoothstep/0-opt.spvasm.expected.ir.fxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Construct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/cov-asin-undefined-smoothstep/0-opt.wgsl.expected.ir.dxc.hlsl b/test/tint/vk-gl-cts/graphicsfuzz/cov-asin-undefined-smoothstep/0-opt.wgsl.expected.ir.dxc.hlsl
deleted file mode 100644
index 3f437dc..0000000
--- a/test/tint/vk-gl-cts/graphicsfuzz/cov-asin-undefined-smoothstep/0-opt.wgsl.expected.ir.dxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Access
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/cov-asin-undefined-smoothstep/0-opt.wgsl.expected.ir.fxc.hlsl b/test/tint/vk-gl-cts/graphicsfuzz/cov-asin-undefined-smoothstep/0-opt.wgsl.expected.ir.fxc.hlsl
deleted file mode 100644
index 3f437dc..0000000
--- a/test/tint/vk-gl-cts/graphicsfuzz/cov-asin-undefined-smoothstep/0-opt.wgsl.expected.ir.fxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Access
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/cov-atan-trunc-vec4/0-opt.spvasm.expected.ir.dxc.hlsl b/test/tint/vk-gl-cts/graphicsfuzz/cov-atan-trunc-vec4/0-opt.spvasm.expected.ir.dxc.hlsl
deleted file mode 100644
index c6e1d96..0000000
--- a/test/tint/vk-gl-cts/graphicsfuzz/cov-atan-trunc-vec4/0-opt.spvasm.expected.ir.dxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Construct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/cov-atan-trunc-vec4/0-opt.spvasm.expected.ir.fxc.hlsl b/test/tint/vk-gl-cts/graphicsfuzz/cov-atan-trunc-vec4/0-opt.spvasm.expected.ir.fxc.hlsl
deleted file mode 100644
index c6e1d96..0000000
--- a/test/tint/vk-gl-cts/graphicsfuzz/cov-atan-trunc-vec4/0-opt.spvasm.expected.ir.fxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Construct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/cov-atan-trunc-vec4/0-opt.wgsl.expected.ir.dxc.hlsl b/test/tint/vk-gl-cts/graphicsfuzz/cov-atan-trunc-vec4/0-opt.wgsl.expected.ir.dxc.hlsl
deleted file mode 100644
index 3f437dc..0000000
--- a/test/tint/vk-gl-cts/graphicsfuzz/cov-atan-trunc-vec4/0-opt.wgsl.expected.ir.dxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Access
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/cov-atan-trunc-vec4/0-opt.wgsl.expected.ir.fxc.hlsl b/test/tint/vk-gl-cts/graphicsfuzz/cov-atan-trunc-vec4/0-opt.wgsl.expected.ir.fxc.hlsl
deleted file mode 100644
index 3f437dc..0000000
--- a/test/tint/vk-gl-cts/graphicsfuzz/cov-atan-trunc-vec4/0-opt.wgsl.expected.ir.fxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Access
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/cov-basic-block-discard-in-function/0-opt.spvasm.expected.ir.dxc.hlsl b/test/tint/vk-gl-cts/graphicsfuzz/cov-basic-block-discard-in-function/0-opt.spvasm.expected.ir.dxc.hlsl
index bdeab23..d1ee477 100644
--- a/test/tint/vk-gl-cts/graphicsfuzz/cov-basic-block-discard-in-function/0-opt.spvasm.expected.ir.dxc.hlsl
+++ b/test/tint/vk-gl-cts/graphicsfuzz/cov-basic-block-discard-in-function/0-opt.spvasm.expected.ir.dxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:198 internal compiler error: Switch() matched no cases. Type: tint::core::ir::If
+..\..\src\tint\lang\core\ir\transform\demote_to_helper.cc:208 internal compiler error: TINT_UNREACHABLE unexpected non-core instruction
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/cov-basic-block-discard-in-function/0-opt.spvasm.expected.ir.fxc.hlsl b/test/tint/vk-gl-cts/graphicsfuzz/cov-basic-block-discard-in-function/0-opt.spvasm.expected.ir.fxc.hlsl
index bdeab23..d1ee477 100644
--- a/test/tint/vk-gl-cts/graphicsfuzz/cov-basic-block-discard-in-function/0-opt.spvasm.expected.ir.fxc.hlsl
+++ b/test/tint/vk-gl-cts/graphicsfuzz/cov-basic-block-discard-in-function/0-opt.spvasm.expected.ir.fxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:198 internal compiler error: Switch() matched no cases. Type: tint::core::ir::If
+..\..\src\tint\lang\core\ir\transform\demote_to_helper.cc:208 internal compiler error: TINT_UNREACHABLE unexpected non-core instruction
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/cov-basic-block-discard-in-function/0-opt.wgsl.expected.ir.dxc.hlsl b/test/tint/vk-gl-cts/graphicsfuzz/cov-basic-block-discard-in-function/0-opt.wgsl.expected.ir.dxc.hlsl
index 6b047b4..d1ee477 100644
--- a/test/tint/vk-gl-cts/graphicsfuzz/cov-basic-block-discard-in-function/0-opt.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/vk-gl-cts/graphicsfuzz/cov-basic-block-discard-in-function/0-opt.wgsl.expected.ir.dxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:287 internal compiler error: Switch() matched no cases. Type: tint::core::ir::FunctionParam
+..\..\src\tint\lang\core\ir\transform\demote_to_helper.cc:208 internal compiler error: TINT_UNREACHABLE unexpected non-core instruction
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/cov-basic-block-discard-in-function/0-opt.wgsl.expected.ir.fxc.hlsl b/test/tint/vk-gl-cts/graphicsfuzz/cov-basic-block-discard-in-function/0-opt.wgsl.expected.ir.fxc.hlsl
index 6b047b4..d1ee477 100644
--- a/test/tint/vk-gl-cts/graphicsfuzz/cov-basic-block-discard-in-function/0-opt.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/vk-gl-cts/graphicsfuzz/cov-basic-block-discard-in-function/0-opt.wgsl.expected.ir.fxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:287 internal compiler error: Switch() matched no cases. Type: tint::core::ir::FunctionParam
+..\..\src\tint\lang\core\ir\transform\demote_to_helper.cc:208 internal compiler error: TINT_UNREACHABLE unexpected non-core instruction
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/cov-bitcount/0-opt.spvasm.expected.ir.dxc.hlsl b/test/tint/vk-gl-cts/graphicsfuzz/cov-bitcount/0-opt.spvasm.expected.ir.dxc.hlsl
deleted file mode 100644
index bdeab23..0000000
--- a/test/tint/vk-gl-cts/graphicsfuzz/cov-bitcount/0-opt.spvasm.expected.ir.dxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:198 internal compiler error: Switch() matched no cases. Type: tint::core::ir::If
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/cov-bitcount/0-opt.spvasm.expected.ir.fxc.hlsl b/test/tint/vk-gl-cts/graphicsfuzz/cov-bitcount/0-opt.spvasm.expected.ir.fxc.hlsl
deleted file mode 100644
index bdeab23..0000000
--- a/test/tint/vk-gl-cts/graphicsfuzz/cov-bitcount/0-opt.spvasm.expected.ir.fxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:198 internal compiler error: Switch() matched no cases. Type: tint::core::ir::If
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/cov-bitcount/0-opt.wgsl.expected.ir.dxc.hlsl b/test/tint/vk-gl-cts/graphicsfuzz/cov-bitcount/0-opt.wgsl.expected.ir.dxc.hlsl
deleted file mode 100644
index 4a2c666..0000000
--- a/test/tint/vk-gl-cts/graphicsfuzz/cov-bitcount/0-opt.wgsl.expected.ir.dxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::LoadVectorElement
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/cov-bitcount/0-opt.wgsl.expected.ir.fxc.hlsl b/test/tint/vk-gl-cts/graphicsfuzz/cov-bitcount/0-opt.wgsl.expected.ir.fxc.hlsl
deleted file mode 100644
index 4a2c666..0000000
--- a/test/tint/vk-gl-cts/graphicsfuzz/cov-bitcount/0-opt.wgsl.expected.ir.fxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::LoadVectorElement
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/cov-bitfieldreverse-loop-limit-underflow/0.spvasm.expected.ir.dxc.hlsl b/test/tint/vk-gl-cts/graphicsfuzz/cov-bitfieldreverse-loop-limit-underflow/0.spvasm.expected.ir.dxc.hlsl
deleted file mode 100644
index 3f437dc..0000000
--- a/test/tint/vk-gl-cts/graphicsfuzz/cov-bitfieldreverse-loop-limit-underflow/0.spvasm.expected.ir.dxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Access
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/cov-bitfieldreverse-loop-limit-underflow/0.spvasm.expected.ir.fxc.hlsl b/test/tint/vk-gl-cts/graphicsfuzz/cov-bitfieldreverse-loop-limit-underflow/0.spvasm.expected.ir.fxc.hlsl
deleted file mode 100644
index 3f437dc..0000000
--- a/test/tint/vk-gl-cts/graphicsfuzz/cov-bitfieldreverse-loop-limit-underflow/0.spvasm.expected.ir.fxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Access
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/cov-bitfieldreverse-loop-limit-underflow/0.wgsl.expected.ir.dxc.hlsl b/test/tint/vk-gl-cts/graphicsfuzz/cov-bitfieldreverse-loop-limit-underflow/0.wgsl.expected.ir.dxc.hlsl
deleted file mode 100644
index 3f437dc..0000000
--- a/test/tint/vk-gl-cts/graphicsfuzz/cov-bitfieldreverse-loop-limit-underflow/0.wgsl.expected.ir.dxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Access
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/cov-bitfieldreverse-loop-limit-underflow/0.wgsl.expected.ir.fxc.hlsl b/test/tint/vk-gl-cts/graphicsfuzz/cov-bitfieldreverse-loop-limit-underflow/0.wgsl.expected.ir.fxc.hlsl
deleted file mode 100644
index 3f437dc..0000000
--- a/test/tint/vk-gl-cts/graphicsfuzz/cov-bitfieldreverse-loop-limit-underflow/0.wgsl.expected.ir.fxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Access
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/cov-bitwise-inverse-uniform-condition/0-opt.spvasm.expected.ir.dxc.hlsl b/test/tint/vk-gl-cts/graphicsfuzz/cov-bitwise-inverse-uniform-condition/0-opt.spvasm.expected.ir.dxc.hlsl
deleted file mode 100644
index bdeab23..0000000
--- a/test/tint/vk-gl-cts/graphicsfuzz/cov-bitwise-inverse-uniform-condition/0-opt.spvasm.expected.ir.dxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:198 internal compiler error: Switch() matched no cases. Type: tint::core::ir::If
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/cov-bitwise-inverse-uniform-condition/0-opt.spvasm.expected.ir.fxc.hlsl b/test/tint/vk-gl-cts/graphicsfuzz/cov-bitwise-inverse-uniform-condition/0-opt.spvasm.expected.ir.fxc.hlsl
deleted file mode 100644
index bdeab23..0000000
--- a/test/tint/vk-gl-cts/graphicsfuzz/cov-bitwise-inverse-uniform-condition/0-opt.spvasm.expected.ir.fxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:198 internal compiler error: Switch() matched no cases. Type: tint::core::ir::If
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/cov-bitwise-inverse-uniform-condition/0-opt.wgsl.expected.ir.dxc.hlsl b/test/tint/vk-gl-cts/graphicsfuzz/cov-bitwise-inverse-uniform-condition/0-opt.wgsl.expected.ir.dxc.hlsl
deleted file mode 100644
index 3f437dc..0000000
--- a/test/tint/vk-gl-cts/graphicsfuzz/cov-bitwise-inverse-uniform-condition/0-opt.wgsl.expected.ir.dxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Access
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/cov-bitwise-inverse-uniform-condition/0-opt.wgsl.expected.ir.fxc.hlsl b/test/tint/vk-gl-cts/graphicsfuzz/cov-bitwise-inverse-uniform-condition/0-opt.wgsl.expected.ir.fxc.hlsl
deleted file mode 100644
index 3f437dc..0000000
--- a/test/tint/vk-gl-cts/graphicsfuzz/cov-bitwise-inverse-uniform-condition/0-opt.wgsl.expected.ir.fxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Access
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/cov-blockfrequency-several-for-loops/0-opt.spvasm.expected.ir.dxc.hlsl b/test/tint/vk-gl-cts/graphicsfuzz/cov-blockfrequency-several-for-loops/0-opt.spvasm.expected.ir.dxc.hlsl
deleted file mode 100644
index adbb0c1..0000000
--- a/test/tint/vk-gl-cts/graphicsfuzz/cov-blockfrequency-several-for-loops/0-opt.spvasm.expected.ir.dxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:198 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Loop
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/cov-blockfrequency-several-for-loops/0-opt.spvasm.expected.ir.fxc.hlsl b/test/tint/vk-gl-cts/graphicsfuzz/cov-blockfrequency-several-for-loops/0-opt.spvasm.expected.ir.fxc.hlsl
index adbb0c1..d04e7bc 100644
--- a/test/tint/vk-gl-cts/graphicsfuzz/cov-blockfrequency-several-for-loops/0-opt.spvasm.expected.ir.fxc.hlsl
+++ b/test/tint/vk-gl-cts/graphicsfuzz/cov-blockfrequency-several-for-loops/0-opt.spvasm.expected.ir.fxc.hlsl
@@ -1,9 +1,175 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:198 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Loop
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct main_out {
+  float4 x_GLF_color_1;
+};
+
+struct main_outputs {
+  float4 main_out_x_GLF_color_1 : SV_Target0;
+};
+
+struct main_inputs {
+  float4 gl_FragCoord_param : SV_Position;
+};
+
+
+static float4 gl_FragCoord = (0.0f).xxxx;
+static float4 x_GLF_color = (0.0f).xxxx;
+void main_1() {
+  float4 c = (0.0f).xxxx;
+  int a = 0;
+  int i1 = 0;
+  int i2 = 0;
+  int i3 = 0;
+  int i4 = 0;
+  int i5 = 0;
+  int i6 = 0;
+  int i7 = 0;
+  int i8_1 = 0;
+  c = float4(0.0f, 0.0f, 0.0f, 1.0f);
+  a = 0;
+  {
+    while(true) {
+      {
+        while(true) {
+          int x_46 = a;
+          c[x_46] = 1.0f;
+          i1 = 0;
+          {
+            while(true) {
+              if ((i1 < 1)) {
+              } else {
+                break;
+              }
+              i2 = 0;
+              {
+                while(true) {
+                  if ((i2 < 1)) {
+                  } else {
+                    break;
+                  }
+                  i3 = 0;
+                  {
+                    while(true) {
+                      if ((i3 < 1)) {
+                      } else {
+                        break;
+                      }
+                      i4 = 0;
+                      {
+                        while(true) {
+                          if ((i4 < 1)) {
+                          } else {
+                            break;
+                          }
+                          i5 = 0;
+                          {
+                            while(true) {
+                              if ((i5 < 1)) {
+                              } else {
+                                break;
+                              }
+                              i6 = 0;
+                              {
+                                while(true) {
+                                  if ((i6 < 1)) {
+                                  } else {
+                                    break;
+                                  }
+                                  i7 = 0;
+                                  {
+                                    while(true) {
+                                      if ((i7 < 1)) {
+                                      } else {
+                                        break;
+                                      }
+                                      i8_1 = 0;
+                                      {
+                                        while(true) {
+                                          if ((i8_1 < 17)) {
+                                          } else {
+                                            break;
+                                          }
+                                          a = (a + 1);
+                                          {
+                                            i8_1 = (i8_1 + 1);
+                                          }
+                                          continue;
+                                        }
+                                      }
+                                      {
+                                        i7 = (i7 + 1);
+                                      }
+                                      continue;
+                                    }
+                                  }
+                                  {
+                                    i6 = (i6 + 1);
+                                  }
+                                  continue;
+                                }
+                              }
+                              {
+                                i5 = (i5 + 1);
+                              }
+                              continue;
+                            }
+                          }
+                          {
+                            i4 = (i4 + 1);
+                          }
+                          continue;
+                        }
+                      }
+                      {
+                        i3 = (i3 + 1);
+                      }
+                      continue;
+                    }
+                  }
+                  {
+                    i2 = (i2 + 1);
+                  }
+                  continue;
+                }
+              }
+              {
+                i1 = (i1 + 1);
+              }
+              continue;
+            }
+          }
+          {
+            float x_123 = gl_FragCoord.x;
+            if (!((x_123 < -1.0f))) { break; }
+          }
+          continue;
+        }
+      }
+      {
+        float x_126 = gl_FragCoord.y;
+        if (!((x_126 < -1.0f))) { break; }
+      }
+      continue;
+    }
+  }
+  x_GLF_color = c;
+}
+
+main_out main_inner(float4 gl_FragCoord_param) {
+  gl_FragCoord = gl_FragCoord_param;
+  main_1();
+  main_out v = {x_GLF_color};
+  return v;
+}
+
+main_outputs main(main_inputs inputs) {
+  main_out v_1 = main_inner(float4(inputs.gl_FragCoord_param.xyz, (1.0f / inputs.gl_FragCoord_param[3u])));
+  main_outputs v_2 = {v_1.x_GLF_color_1};
+  return v_2;
+}
+
+FXC validation failure:
+c:\src\dawn\Shader@0x000001903018B3D0(32,9-19): error X3511: forced to unroll loop, but unrolling failed.
+c:\src\dawn\Shader@0x000001903018B3D0(30,5-15): error X3511: forced to unroll loop, but unrolling failed.
+
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/cov-blockfrequency-several-for-loops/0-opt.wgsl.expected.ir.dxc.hlsl b/test/tint/vk-gl-cts/graphicsfuzz/cov-blockfrequency-several-for-loops/0-opt.wgsl.expected.ir.dxc.hlsl
deleted file mode 100644
index adbb0c1..0000000
--- a/test/tint/vk-gl-cts/graphicsfuzz/cov-blockfrequency-several-for-loops/0-opt.wgsl.expected.ir.dxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:198 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Loop
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/cov-blockfrequency-several-for-loops/0-opt.wgsl.expected.ir.fxc.hlsl b/test/tint/vk-gl-cts/graphicsfuzz/cov-blockfrequency-several-for-loops/0-opt.wgsl.expected.ir.fxc.hlsl
index adbb0c1..8838945 100644
--- a/test/tint/vk-gl-cts/graphicsfuzz/cov-blockfrequency-several-for-loops/0-opt.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/vk-gl-cts/graphicsfuzz/cov-blockfrequency-several-for-loops/0-opt.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,193 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:198 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Loop
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct main_out {
+  float4 x_GLF_color_1;
+};
+
+struct main_outputs {
+  float4 main_out_x_GLF_color_1 : SV_Target0;
+};
+
+struct main_inputs {
+  float4 gl_FragCoord_param : SV_Position;
+};
+
+
+static float4 gl_FragCoord = (0.0f).xxxx;
+static float4 x_GLF_color = (0.0f).xxxx;
+void main_1() {
+  float4 c = (0.0f).xxxx;
+  int a = 0;
+  int i1 = 0;
+  int i2 = 0;
+  int i3 = 0;
+  int i4 = 0;
+  int i5 = 0;
+  int i6 = 0;
+  int i7 = 0;
+  int i8_1 = 0;
+  c = float4(0.0f, 0.0f, 0.0f, 1.0f);
+  a = 0;
+  {
+    while(true) {
+      {
+        while(true) {
+          int x_46 = a;
+          c[x_46] = 1.0f;
+          i1 = 0;
+          {
+            while(true) {
+              int x_52 = i1;
+              if ((x_52 < 1)) {
+              } else {
+                break;
+              }
+              i2 = 0;
+              {
+                while(true) {
+                  int x_59 = i2;
+                  if ((x_59 < 1)) {
+                  } else {
+                    break;
+                  }
+                  i3 = 0;
+                  {
+                    while(true) {
+                      int x_66 = i3;
+                      if ((x_66 < 1)) {
+                      } else {
+                        break;
+                      }
+                      i4 = 0;
+                      {
+                        while(true) {
+                          int x_73 = i4;
+                          if ((x_73 < 1)) {
+                          } else {
+                            break;
+                          }
+                          i5 = 0;
+                          {
+                            while(true) {
+                              int x_80 = i5;
+                              if ((x_80 < 1)) {
+                              } else {
+                                break;
+                              }
+                              i6 = 0;
+                              {
+                                while(true) {
+                                  int x_87 = i6;
+                                  if ((x_87 < 1)) {
+                                  } else {
+                                    break;
+                                  }
+                                  i7 = 0;
+                                  {
+                                    while(true) {
+                                      int x_94 = i7;
+                                      if ((x_94 < 1)) {
+                                      } else {
+                                        break;
+                                      }
+                                      i8_1 = 0;
+                                      {
+                                        while(true) {
+                                          int x_101 = i8_1;
+                                          if ((x_101 < 17)) {
+                                          } else {
+                                            break;
+                                          }
+                                          int x_104 = a;
+                                          a = (x_104 + 1);
+                                          {
+                                            int x_106 = i8_1;
+                                            i8_1 = (x_106 + 1);
+                                          }
+                                          continue;
+                                        }
+                                      }
+                                      {
+                                        int x_108 = i7;
+                                        i7 = (x_108 + 1);
+                                      }
+                                      continue;
+                                    }
+                                  }
+                                  {
+                                    int x_110 = i6;
+                                    i6 = (x_110 + 1);
+                                  }
+                                  continue;
+                                }
+                              }
+                              {
+                                int x_112 = i5;
+                                i5 = (x_112 + 1);
+                              }
+                              continue;
+                            }
+                          }
+                          {
+                            int x_114 = i4;
+                            i4 = (x_114 + 1);
+                          }
+                          continue;
+                        }
+                      }
+                      {
+                        int x_116 = i3;
+                        i3 = (x_116 + 1);
+                      }
+                      continue;
+                    }
+                  }
+                  {
+                    int x_118 = i2;
+                    i2 = (x_118 + 1);
+                  }
+                  continue;
+                }
+              }
+              {
+                int x_120 = i1;
+                i1 = (x_120 + 1);
+              }
+              continue;
+            }
+          }
+          {
+            float x_123 = gl_FragCoord.x;
+            if (!((x_123 < -1.0f))) { break; }
+          }
+          continue;
+        }
+      }
+      {
+        float x_126 = gl_FragCoord.y;
+        if (!((x_126 < -1.0f))) { break; }
+      }
+      continue;
+    }
+  }
+  float4 x_128 = c;
+  x_GLF_color = x_128;
+}
+
+main_out main_inner(float4 gl_FragCoord_param) {
+  gl_FragCoord = gl_FragCoord_param;
+  main_1();
+  main_out v = {x_GLF_color};
+  return v;
+}
+
+main_outputs main(main_inputs inputs) {
+  main_out v_1 = main_inner(float4(inputs.gl_FragCoord_param.xyz, (1.0f / inputs.gl_FragCoord_param[3u])));
+  main_outputs v_2 = {v_1.x_GLF_color_1};
+  return v_2;
+}
+
+FXC validation failure:
+c:\src\dawn\Shader@0x00000212E8AEC120(32,9-19): error X3511: forced to unroll loop, but unrolling failed.
+c:\src\dawn\Shader@0x00000212E8AEC120(30,5-15): error X3511: forced to unroll loop, but unrolling failed.
+
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/cov-branch-probability-identity-matrix/0-opt.spvasm.expected.ir.dxc.hlsl b/test/tint/vk-gl-cts/graphicsfuzz/cov-branch-probability-identity-matrix/0-opt.spvasm.expected.ir.dxc.hlsl
deleted file mode 100644
index 3f437dc..0000000
--- a/test/tint/vk-gl-cts/graphicsfuzz/cov-branch-probability-identity-matrix/0-opt.spvasm.expected.ir.dxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Access
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/cov-branch-probability-identity-matrix/0-opt.spvasm.expected.ir.fxc.hlsl b/test/tint/vk-gl-cts/graphicsfuzz/cov-branch-probability-identity-matrix/0-opt.spvasm.expected.ir.fxc.hlsl
deleted file mode 100644
index 3f437dc..0000000
--- a/test/tint/vk-gl-cts/graphicsfuzz/cov-branch-probability-identity-matrix/0-opt.spvasm.expected.ir.fxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Access
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/cov-branch-probability-identity-matrix/0-opt.wgsl.expected.ir.dxc.hlsl b/test/tint/vk-gl-cts/graphicsfuzz/cov-branch-probability-identity-matrix/0-opt.wgsl.expected.ir.dxc.hlsl
deleted file mode 100644
index 3f437dc..0000000
--- a/test/tint/vk-gl-cts/graphicsfuzz/cov-branch-probability-identity-matrix/0-opt.wgsl.expected.ir.dxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Access
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/cov-branch-probability-identity-matrix/0-opt.wgsl.expected.ir.fxc.hlsl b/test/tint/vk-gl-cts/graphicsfuzz/cov-branch-probability-identity-matrix/0-opt.wgsl.expected.ir.fxc.hlsl
deleted file mode 100644
index 3f437dc..0000000
--- a/test/tint/vk-gl-cts/graphicsfuzz/cov-branch-probability-identity-matrix/0-opt.wgsl.expected.ir.fxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Access
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/cov-cast-float-to-int-and-back/0-opt.spvasm.expected.ir.dxc.hlsl b/test/tint/vk-gl-cts/graphicsfuzz/cov-cast-float-to-int-and-back/0-opt.spvasm.expected.ir.dxc.hlsl
deleted file mode 100644
index bdeab23..0000000
--- a/test/tint/vk-gl-cts/graphicsfuzz/cov-cast-float-to-int-and-back/0-opt.spvasm.expected.ir.dxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:198 internal compiler error: Switch() matched no cases. Type: tint::core::ir::If
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/cov-cast-float-to-int-and-back/0-opt.spvasm.expected.ir.fxc.hlsl b/test/tint/vk-gl-cts/graphicsfuzz/cov-cast-float-to-int-and-back/0-opt.spvasm.expected.ir.fxc.hlsl
deleted file mode 100644
index bdeab23..0000000
--- a/test/tint/vk-gl-cts/graphicsfuzz/cov-cast-float-to-int-and-back/0-opt.spvasm.expected.ir.fxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:198 internal compiler error: Switch() matched no cases. Type: tint::core::ir::If
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/cov-cast-float-to-int-and-back/0-opt.wgsl.expected.ir.dxc.hlsl b/test/tint/vk-gl-cts/graphicsfuzz/cov-cast-float-to-int-and-back/0-opt.wgsl.expected.ir.dxc.hlsl
deleted file mode 100644
index bdeab23..0000000
--- a/test/tint/vk-gl-cts/graphicsfuzz/cov-cast-float-to-int-and-back/0-opt.wgsl.expected.ir.dxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:198 internal compiler error: Switch() matched no cases. Type: tint::core::ir::If
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/cov-cast-float-to-int-and-back/0-opt.wgsl.expected.ir.fxc.hlsl b/test/tint/vk-gl-cts/graphicsfuzz/cov-cast-float-to-int-and-back/0-opt.wgsl.expected.ir.fxc.hlsl
deleted file mode 100644
index bdeab23..0000000
--- a/test/tint/vk-gl-cts/graphicsfuzz/cov-cast-float-to-int-and-back/0-opt.wgsl.expected.ir.fxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:198 internal compiler error: Switch() matched no cases. Type: tint::core::ir::If
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/cov-clamp-loop-limit-increment-float-array/0-opt.spvasm.expected.ir.dxc.hlsl b/test/tint/vk-gl-cts/graphicsfuzz/cov-clamp-loop-limit-increment-float-array/0-opt.spvasm.expected.ir.dxc.hlsl
deleted file mode 100644
index c6e1d96..0000000
--- a/test/tint/vk-gl-cts/graphicsfuzz/cov-clamp-loop-limit-increment-float-array/0-opt.spvasm.expected.ir.dxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Construct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/cov-clamp-loop-limit-increment-float-array/0-opt.spvasm.expected.ir.fxc.hlsl b/test/tint/vk-gl-cts/graphicsfuzz/cov-clamp-loop-limit-increment-float-array/0-opt.spvasm.expected.ir.fxc.hlsl
deleted file mode 100644
index c6e1d96..0000000
--- a/test/tint/vk-gl-cts/graphicsfuzz/cov-clamp-loop-limit-increment-float-array/0-opt.spvasm.expected.ir.fxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Construct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/cov-clamp-loop-limit-increment-float-array/0-opt.wgsl.expected.ir.dxc.hlsl b/test/tint/vk-gl-cts/graphicsfuzz/cov-clamp-loop-limit-increment-float-array/0-opt.wgsl.expected.ir.dxc.hlsl
deleted file mode 100644
index 3f437dc..0000000
--- a/test/tint/vk-gl-cts/graphicsfuzz/cov-clamp-loop-limit-increment-float-array/0-opt.wgsl.expected.ir.dxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Access
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/cov-clamp-loop-limit-increment-float-array/0-opt.wgsl.expected.ir.fxc.hlsl b/test/tint/vk-gl-cts/graphicsfuzz/cov-clamp-loop-limit-increment-float-array/0-opt.wgsl.expected.ir.fxc.hlsl
deleted file mode 100644
index 3f437dc..0000000
--- a/test/tint/vk-gl-cts/graphicsfuzz/cov-clamp-loop-limit-increment-float-array/0-opt.wgsl.expected.ir.fxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Access
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/cov-clamp-lower-limit-from-always-false/0-opt.spvasm.expected.ir.dxc.hlsl b/test/tint/vk-gl-cts/graphicsfuzz/cov-clamp-lower-limit-from-always-false/0-opt.spvasm.expected.ir.dxc.hlsl
deleted file mode 100644
index 3f437dc..0000000
--- a/test/tint/vk-gl-cts/graphicsfuzz/cov-clamp-lower-limit-from-always-false/0-opt.spvasm.expected.ir.dxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Access
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/cov-clamp-lower-limit-from-always-false/0-opt.spvasm.expected.ir.fxc.hlsl b/test/tint/vk-gl-cts/graphicsfuzz/cov-clamp-lower-limit-from-always-false/0-opt.spvasm.expected.ir.fxc.hlsl
deleted file mode 100644
index 3f437dc..0000000
--- a/test/tint/vk-gl-cts/graphicsfuzz/cov-clamp-lower-limit-from-always-false/0-opt.spvasm.expected.ir.fxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Access
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/cov-clamp-lower-limit-from-always-false/0-opt.wgsl.expected.ir.dxc.hlsl b/test/tint/vk-gl-cts/graphicsfuzz/cov-clamp-lower-limit-from-always-false/0-opt.wgsl.expected.ir.dxc.hlsl
deleted file mode 100644
index 3f437dc..0000000
--- a/test/tint/vk-gl-cts/graphicsfuzz/cov-clamp-lower-limit-from-always-false/0-opt.wgsl.expected.ir.dxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Access
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/cov-clamp-lower-limit-from-always-false/0-opt.wgsl.expected.ir.fxc.hlsl b/test/tint/vk-gl-cts/graphicsfuzz/cov-clamp-lower-limit-from-always-false/0-opt.wgsl.expected.ir.fxc.hlsl
deleted file mode 100644
index 3f437dc..0000000
--- a/test/tint/vk-gl-cts/graphicsfuzz/cov-clamp-lower-limit-from-always-false/0-opt.wgsl.expected.ir.fxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Access
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/cov-clamp-vector-component-condition-using-matrix/0-opt.spvasm.expected.ir.dxc.hlsl b/test/tint/vk-gl-cts/graphicsfuzz/cov-clamp-vector-component-condition-using-matrix/0-opt.spvasm.expected.ir.dxc.hlsl
deleted file mode 100644
index c6e1d96..0000000
--- a/test/tint/vk-gl-cts/graphicsfuzz/cov-clamp-vector-component-condition-using-matrix/0-opt.spvasm.expected.ir.dxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Construct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/cov-clamp-vector-component-condition-using-matrix/0-opt.spvasm.expected.ir.fxc.hlsl b/test/tint/vk-gl-cts/graphicsfuzz/cov-clamp-vector-component-condition-using-matrix/0-opt.spvasm.expected.ir.fxc.hlsl
index c6e1d96..aeeb34c 100644
--- a/test/tint/vk-gl-cts/graphicsfuzz/cov-clamp-vector-component-condition-using-matrix/0-opt.spvasm.expected.ir.fxc.hlsl
+++ b/test/tint/vk-gl-cts/graphicsfuzz/cov-clamp-vector-component-condition-using-matrix/0-opt.spvasm.expected.ir.fxc.hlsl
@@ -1,9 +1,78 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Construct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct main_out {
+  float4 x_GLF_color_1;
+};
+
+struct main_outputs {
+  float4 main_out_x_GLF_color_1 : SV_Target0;
+};
+
+
+cbuffer cbuffer_x_6 : register(b1) {
+  uint4 x_6[5];
+};
+cbuffer cbuffer_x_9 : register(b0) {
+  uint4 x_9[2];
+};
+static float4 x_GLF_color = (0.0f).xxxx;
+void main_1() {
+  float4 v = (0.0f).xxxx;
+  int i = 0;
+  float v_1 = float(asint(x_6[1u].x));
+  float v_2 = float(asint(x_6[2u].x));
+  float v_3 = float(asint(x_6[3u].x));
+  v = float4(v_1, v_2, v_3, float(asint(x_6[0u].x)));
+  i = asint(x_6[4u].x);
+  {
+    while(true) {
+      int v_4 = i;
+      if ((v_4 < asint(x_6[0u].x))) {
+      } else {
+        break;
+      }
+      float4 v_5 = float4(v.x, v.y, v.z, v.w);
+      float4 v_6 = float4(v.x, v.y, v.z, v.w);
+      float4 v_7 = float4(v.x, v.y, v.z, v.w);
+      float4x4 v_8 = float4x4(v_5, v_6, v_7, float4(v.x, v.y, v.z, v.w));
+      float v_9 = v_8[0u][i];
+      if ((v_9 > asfloat(x_9[0u].x))) {
+        int x_96 = i;
+        float4 v_10 = v;
+        float4 v_11 = float4((asfloat(x_9[1u].x)).xxxx);
+        float4 v_12 = clamp(v_10, v_11, float4((asfloat(x_9[0u].x)).xxxx));
+        v[x_96] = v_12[asint(x_6[1u].x)];
+      }
+      {
+        i = (i + 1);
+      }
+      continue;
+    }
+  }
+  float4 v_13 = v;
+  if (all((v_13 == float4((float(asint(x_6[1u].x))).xxxx)))) {
+    float v_14 = float(asint(x_6[1u].x));
+    float v_15 = float(asint(x_6[4u].x));
+    float v_16 = float(asint(x_6[4u].x));
+    x_GLF_color = float4(v_14, v_15, v_16, float(asint(x_6[1u].x)));
+  } else {
+    x_GLF_color = float4((float(asint(x_6[4u].x))).xxxx);
+  }
+}
+
+main_out main_inner() {
+  main_1();
+  main_out v_17 = {x_GLF_color};
+  return v_17;
+}
+
+main_outputs main() {
+  main_out v_18 = main_inner();
+  main_outputs v_19 = {v_18.x_GLF_color_1};
+  return v_19;
+}
+
+FXC validation failure:
+c:\src\dawn\Shader@0x00000209C5A05BB0(42,9-15): error X3500: array reference cannot be used as an l-value; not natively addressable
+c:\src\dawn\Shader@0x00000209C5A05BB0(26,5-15): error X3511: forced to unroll loop, but unrolling failed.
+
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/cov-clamp-vector-component-condition-using-matrix/0-opt.wgsl.expected.ir.dxc.hlsl b/test/tint/vk-gl-cts/graphicsfuzz/cov-clamp-vector-component-condition-using-matrix/0-opt.wgsl.expected.ir.dxc.hlsl
deleted file mode 100644
index 3f437dc..0000000
--- a/test/tint/vk-gl-cts/graphicsfuzz/cov-clamp-vector-component-condition-using-matrix/0-opt.wgsl.expected.ir.dxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Access
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/cov-clamp-vector-component-condition-using-matrix/0-opt.wgsl.expected.ir.fxc.hlsl b/test/tint/vk-gl-cts/graphicsfuzz/cov-clamp-vector-component-condition-using-matrix/0-opt.wgsl.expected.ir.fxc.hlsl
index 3f437dc..8c755a6 100644
--- a/test/tint/vk-gl-cts/graphicsfuzz/cov-clamp-vector-component-condition-using-matrix/0-opt.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/vk-gl-cts/graphicsfuzz/cov-clamp-vector-component-condition-using-matrix/0-opt.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,99 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Access
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct main_out {
+  float4 x_GLF_color_1;
+};
+
+struct main_outputs {
+  float4 main_out_x_GLF_color_1 : SV_Target0;
+};
+
+
+cbuffer cbuffer_x_6 : register(b1) {
+  uint4 x_6[5];
+};
+cbuffer cbuffer_x_9 : register(b0) {
+  uint4 x_9[2];
+};
+static float4 x_GLF_color = (0.0f).xxxx;
+void main_1() {
+  float4 v = (0.0f).xxxx;
+  int i = 0;
+  int x_40 = asint(x_6[1u].x);
+  int x_43 = asint(x_6[2u].x);
+  int x_46 = asint(x_6[3u].x);
+  int x_49 = asint(x_6[0u].x);
+  float v_1 = float(x_40);
+  float v_2 = float(x_43);
+  float v_3 = float(x_46);
+  v = float4(v_1, v_2, v_3, float(x_49));
+  int x_53 = asint(x_6[4u].x);
+  i = x_53;
+  {
+    while(true) {
+      int x_58 = i;
+      int x_60 = asint(x_6[0u].x);
+      if ((x_58 < x_60)) {
+      } else {
+        break;
+      }
+      float4 x_63 = v;
+      float4 x_64 = v;
+      float4 x_65 = v;
+      float4 x_66 = v;
+      int x_88 = i;
+      float x_92 = asfloat(x_9[0u].x);
+      float4 v_4 = float4(x_63[0u], x_63[1u], x_63[2u], x_63[3u]);
+      float4 v_5 = float4(x_64[0u], x_64[1u], x_64[2u], x_64[3u]);
+      float4 v_6 = float4(x_65[0u], x_65[1u], x_65[2u], x_65[3u]);
+      if ((float4x4(v_4, v_5, v_6, float4(x_66[0u], x_66[1u], x_66[2u], x_66[3u]))[0u][x_88] > x_92)) {
+        int x_96 = i;
+        float4 x_97 = v;
+        float x_99 = asfloat(x_9[1u].x);
+        float x_102 = asfloat(x_9[0u].x);
+        int x_106 = asint(x_6[1u].x);
+        float4 v_7 = float4(x_99, x_99, x_99, x_99);
+        v[x_96] = clamp(x_97, v_7, float4(x_102, x_102, x_102, x_102))[x_106];
+      }
+      {
+        int x_109 = i;
+        i = (x_109 + 1);
+      }
+      continue;
+    }
+  }
+  float4 x_111 = v;
+  int x_113 = asint(x_6[1u].x);
+  float x_114 = float(x_113);
+  if (all((x_111 == float4(x_114, x_114, x_114, x_114)))) {
+    int x_122 = asint(x_6[1u].x);
+    int x_125 = asint(x_6[4u].x);
+    int x_128 = asint(x_6[4u].x);
+    int x_131 = asint(x_6[1u].x);
+    float v_8 = float(x_122);
+    float v_9 = float(x_125);
+    float v_10 = float(x_128);
+    x_GLF_color = float4(v_8, v_9, v_10, float(x_131));
+  } else {
+    int x_135 = asint(x_6[4u].x);
+    float x_136 = float(x_135);
+    x_GLF_color = float4(x_136, x_136, x_136, x_136);
+  }
+}
+
+main_out main_inner() {
+  main_1();
+  main_out v_11 = {x_GLF_color};
+  return v_11;
+}
+
+main_outputs main() {
+  main_out v_12 = main_inner();
+  main_outputs v_13 = {v_12.x_GLF_color_1};
+  return v_13;
+}
+
+FXC validation failure:
+c:\src\dawn\Shader@0x0000026F6A03EBA0(54,9-15): error X3500: array reference cannot be used as an l-value; not natively addressable
+c:\src\dawn\Shader@0x0000026F6A03EBA0(31,5-15): error X3511: forced to unroll loop, but unrolling failed.
+
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/cov-clamp-vector-element-ceil-negative/0-opt.spvasm.expected.ir.dxc.hlsl b/test/tint/vk-gl-cts/graphicsfuzz/cov-clamp-vector-element-ceil-negative/0-opt.spvasm.expected.ir.dxc.hlsl
deleted file mode 100644
index c6e1d96..0000000
--- a/test/tint/vk-gl-cts/graphicsfuzz/cov-clamp-vector-element-ceil-negative/0-opt.spvasm.expected.ir.dxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Construct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/cov-clamp-vector-element-ceil-negative/0-opt.spvasm.expected.ir.fxc.hlsl b/test/tint/vk-gl-cts/graphicsfuzz/cov-clamp-vector-element-ceil-negative/0-opt.spvasm.expected.ir.fxc.hlsl
deleted file mode 100644
index c6e1d96..0000000
--- a/test/tint/vk-gl-cts/graphicsfuzz/cov-clamp-vector-element-ceil-negative/0-opt.spvasm.expected.ir.fxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Construct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/cov-clamp-vector-element-ceil-negative/0-opt.wgsl.expected.ir.dxc.hlsl b/test/tint/vk-gl-cts/graphicsfuzz/cov-clamp-vector-element-ceil-negative/0-opt.wgsl.expected.ir.dxc.hlsl
deleted file mode 100644
index 3f437dc..0000000
--- a/test/tint/vk-gl-cts/graphicsfuzz/cov-clamp-vector-element-ceil-negative/0-opt.wgsl.expected.ir.dxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Access
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/cov-clamp-vector-element-ceil-negative/0-opt.wgsl.expected.ir.fxc.hlsl b/test/tint/vk-gl-cts/graphicsfuzz/cov-clamp-vector-element-ceil-negative/0-opt.wgsl.expected.ir.fxc.hlsl
deleted file mode 100644
index 3f437dc..0000000
--- a/test/tint/vk-gl-cts/graphicsfuzz/cov-clamp-vector-element-ceil-negative/0-opt.wgsl.expected.ir.fxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Access
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/cov-clamp-vector-variable-negative-offset/0-opt.spvasm.expected.ir.dxc.hlsl b/test/tint/vk-gl-cts/graphicsfuzz/cov-clamp-vector-variable-negative-offset/0-opt.spvasm.expected.ir.dxc.hlsl
deleted file mode 100644
index c6e1d96..0000000
--- a/test/tint/vk-gl-cts/graphicsfuzz/cov-clamp-vector-variable-negative-offset/0-opt.spvasm.expected.ir.dxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Construct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/cov-clamp-vector-variable-negative-offset/0-opt.spvasm.expected.ir.fxc.hlsl b/test/tint/vk-gl-cts/graphicsfuzz/cov-clamp-vector-variable-negative-offset/0-opt.spvasm.expected.ir.fxc.hlsl
deleted file mode 100644
index c6e1d96..0000000
--- a/test/tint/vk-gl-cts/graphicsfuzz/cov-clamp-vector-variable-negative-offset/0-opt.spvasm.expected.ir.fxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Construct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/cov-clamp-vector-variable-negative-offset/0-opt.wgsl.expected.ir.dxc.hlsl b/test/tint/vk-gl-cts/graphicsfuzz/cov-clamp-vector-variable-negative-offset/0-opt.wgsl.expected.ir.dxc.hlsl
deleted file mode 100644
index 3f437dc..0000000
--- a/test/tint/vk-gl-cts/graphicsfuzz/cov-clamp-vector-variable-negative-offset/0-opt.wgsl.expected.ir.dxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Access
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/cov-clamp-vector-variable-negative-offset/0-opt.wgsl.expected.ir.fxc.hlsl b/test/tint/vk-gl-cts/graphicsfuzz/cov-clamp-vector-variable-negative-offset/0-opt.wgsl.expected.ir.fxc.hlsl
deleted file mode 100644
index 3f437dc..0000000
--- a/test/tint/vk-gl-cts/graphicsfuzz/cov-clamp-vector-variable-negative-offset/0-opt.wgsl.expected.ir.fxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Access
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/cov-clear-yz-inside-condition/0-opt.spvasm.expected.ir.dxc.hlsl b/test/tint/vk-gl-cts/graphicsfuzz/cov-clear-yz-inside-condition/0-opt.spvasm.expected.ir.dxc.hlsl
index c6e1d96..d1ee477 100644
--- a/test/tint/vk-gl-cts/graphicsfuzz/cov-clear-yz-inside-condition/0-opt.spvasm.expected.ir.dxc.hlsl
+++ b/test/tint/vk-gl-cts/graphicsfuzz/cov-clear-yz-inside-condition/0-opt.spvasm.expected.ir.dxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Construct
+..\..\src\tint\lang\core\ir\transform\demote_to_helper.cc:208 internal compiler error: TINT_UNREACHABLE unexpected non-core instruction
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/cov-clear-yz-inside-condition/0-opt.spvasm.expected.ir.fxc.hlsl b/test/tint/vk-gl-cts/graphicsfuzz/cov-clear-yz-inside-condition/0-opt.spvasm.expected.ir.fxc.hlsl
index c6e1d96..d1ee477 100644
--- a/test/tint/vk-gl-cts/graphicsfuzz/cov-clear-yz-inside-condition/0-opt.spvasm.expected.ir.fxc.hlsl
+++ b/test/tint/vk-gl-cts/graphicsfuzz/cov-clear-yz-inside-condition/0-opt.spvasm.expected.ir.fxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Construct
+..\..\src\tint\lang\core\ir\transform\demote_to_helper.cc:208 internal compiler error: TINT_UNREACHABLE unexpected non-core instruction
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/cov-clear-yz-inside-condition/0-opt.wgsl.expected.ir.dxc.hlsl b/test/tint/vk-gl-cts/graphicsfuzz/cov-clear-yz-inside-condition/0-opt.wgsl.expected.ir.dxc.hlsl
index 3f437dc..d1ee477 100644
--- a/test/tint/vk-gl-cts/graphicsfuzz/cov-clear-yz-inside-condition/0-opt.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/vk-gl-cts/graphicsfuzz/cov-clear-yz-inside-condition/0-opt.wgsl.expected.ir.dxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Access
+..\..\src\tint\lang\core\ir\transform\demote_to_helper.cc:208 internal compiler error: TINT_UNREACHABLE unexpected non-core instruction
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/cov-clear-yz-inside-condition/0-opt.wgsl.expected.ir.fxc.hlsl b/test/tint/vk-gl-cts/graphicsfuzz/cov-clear-yz-inside-condition/0-opt.wgsl.expected.ir.fxc.hlsl
index 3f437dc..d1ee477 100644
--- a/test/tint/vk-gl-cts/graphicsfuzz/cov-clear-yz-inside-condition/0-opt.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/vk-gl-cts/graphicsfuzz/cov-clear-yz-inside-condition/0-opt.wgsl.expected.ir.fxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Access
+..\..\src\tint\lang\core\ir\transform\demote_to_helper.cc:208 internal compiler error: TINT_UNREACHABLE unexpected non-core instruction
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/cov-color-output-undefined-in-unexecuted-branch/0-opt.spvasm.expected.ir.dxc.hlsl b/test/tint/vk-gl-cts/graphicsfuzz/cov-color-output-undefined-in-unexecuted-branch/0-opt.spvasm.expected.ir.dxc.hlsl
deleted file mode 100644
index bdeab23..0000000
--- a/test/tint/vk-gl-cts/graphicsfuzz/cov-color-output-undefined-in-unexecuted-branch/0-opt.spvasm.expected.ir.dxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:198 internal compiler error: Switch() matched no cases. Type: tint::core::ir::If
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/cov-color-output-undefined-in-unexecuted-branch/0-opt.spvasm.expected.ir.fxc.hlsl b/test/tint/vk-gl-cts/graphicsfuzz/cov-color-output-undefined-in-unexecuted-branch/0-opt.spvasm.expected.ir.fxc.hlsl
deleted file mode 100644
index bdeab23..0000000
--- a/test/tint/vk-gl-cts/graphicsfuzz/cov-color-output-undefined-in-unexecuted-branch/0-opt.spvasm.expected.ir.fxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:198 internal compiler error: Switch() matched no cases. Type: tint::core::ir::If
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/cov-color-output-undefined-in-unexecuted-branch/0-opt.wgsl.expected.ir.dxc.hlsl b/test/tint/vk-gl-cts/graphicsfuzz/cov-color-output-undefined-in-unexecuted-branch/0-opt.wgsl.expected.ir.dxc.hlsl
deleted file mode 100644
index 4a2c666..0000000
--- a/test/tint/vk-gl-cts/graphicsfuzz/cov-color-output-undefined-in-unexecuted-branch/0-opt.wgsl.expected.ir.dxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::LoadVectorElement
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/cov-color-output-undefined-in-unexecuted-branch/0-opt.wgsl.expected.ir.fxc.hlsl b/test/tint/vk-gl-cts/graphicsfuzz/cov-color-output-undefined-in-unexecuted-branch/0-opt.wgsl.expected.ir.fxc.hlsl
deleted file mode 100644
index 4a2c666..0000000
--- a/test/tint/vk-gl-cts/graphicsfuzz/cov-color-output-undefined-in-unexecuted-branch/0-opt.wgsl.expected.ir.fxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::LoadVectorElement
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/cov-color-overwrite-identity-matrix-multiply/0.spvasm.expected.ir.dxc.hlsl b/test/tint/vk-gl-cts/graphicsfuzz/cov-color-overwrite-identity-matrix-multiply/0.spvasm.expected.ir.dxc.hlsl
deleted file mode 100644
index 3f437dc..0000000
--- a/test/tint/vk-gl-cts/graphicsfuzz/cov-color-overwrite-identity-matrix-multiply/0.spvasm.expected.ir.dxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Access
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/cov-color-overwrite-identity-matrix-multiply/0.spvasm.expected.ir.fxc.hlsl b/test/tint/vk-gl-cts/graphicsfuzz/cov-color-overwrite-identity-matrix-multiply/0.spvasm.expected.ir.fxc.hlsl
deleted file mode 100644
index 3f437dc..0000000
--- a/test/tint/vk-gl-cts/graphicsfuzz/cov-color-overwrite-identity-matrix-multiply/0.spvasm.expected.ir.fxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Access
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/cov-color-overwrite-identity-matrix-multiply/0.wgsl.expected.ir.dxc.hlsl b/test/tint/vk-gl-cts/graphicsfuzz/cov-color-overwrite-identity-matrix-multiply/0.wgsl.expected.ir.dxc.hlsl
deleted file mode 100644
index 4a2c666..0000000
--- a/test/tint/vk-gl-cts/graphicsfuzz/cov-color-overwrite-identity-matrix-multiply/0.wgsl.expected.ir.dxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::LoadVectorElement
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/cov-color-overwrite-identity-matrix-multiply/0.wgsl.expected.ir.fxc.hlsl b/test/tint/vk-gl-cts/graphicsfuzz/cov-color-overwrite-identity-matrix-multiply/0.wgsl.expected.ir.fxc.hlsl
deleted file mode 100644
index 4a2c666..0000000
--- a/test/tint/vk-gl-cts/graphicsfuzz/cov-color-overwrite-identity-matrix-multiply/0.wgsl.expected.ir.fxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::LoadVectorElement
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/cov-combine-and-or-xor-gt-lt/0-opt.spvasm.expected.ir.dxc.hlsl b/test/tint/vk-gl-cts/graphicsfuzz/cov-combine-and-or-xor-gt-lt/0-opt.spvasm.expected.ir.dxc.hlsl
deleted file mode 100644
index bdeab23..0000000
--- a/test/tint/vk-gl-cts/graphicsfuzz/cov-combine-and-or-xor-gt-lt/0-opt.spvasm.expected.ir.dxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:198 internal compiler error: Switch() matched no cases. Type: tint::core::ir::If
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/cov-combine-and-or-xor-gt-lt/0-opt.spvasm.expected.ir.fxc.hlsl b/test/tint/vk-gl-cts/graphicsfuzz/cov-combine-and-or-xor-gt-lt/0-opt.spvasm.expected.ir.fxc.hlsl
deleted file mode 100644
index bdeab23..0000000
--- a/test/tint/vk-gl-cts/graphicsfuzz/cov-combine-and-or-xor-gt-lt/0-opt.spvasm.expected.ir.fxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:198 internal compiler error: Switch() matched no cases. Type: tint::core::ir::If
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/cov-combine-and-or-xor-gt-lt/0-opt.wgsl.expected.ir.dxc.hlsl b/test/tint/vk-gl-cts/graphicsfuzz/cov-combine-and-or-xor-gt-lt/0-opt.wgsl.expected.ir.dxc.hlsl
deleted file mode 100644
index 4a2c666..0000000
--- a/test/tint/vk-gl-cts/graphicsfuzz/cov-combine-and-or-xor-gt-lt/0-opt.wgsl.expected.ir.dxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::LoadVectorElement
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/cov-combine-and-or-xor-gt-lt/0-opt.wgsl.expected.ir.fxc.hlsl b/test/tint/vk-gl-cts/graphicsfuzz/cov-combine-and-or-xor-gt-lt/0-opt.wgsl.expected.ir.fxc.hlsl
deleted file mode 100644
index 4a2c666..0000000
--- a/test/tint/vk-gl-cts/graphicsfuzz/cov-combine-and-or-xor-gt-lt/0-opt.wgsl.expected.ir.fxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::LoadVectorElement
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/cov-condition-loop-index-bitwise-not/0-opt.spvasm.expected.ir.dxc.hlsl b/test/tint/vk-gl-cts/graphicsfuzz/cov-condition-loop-index-bitwise-not/0-opt.spvasm.expected.ir.dxc.hlsl
deleted file mode 100644
index 3f437dc..0000000
--- a/test/tint/vk-gl-cts/graphicsfuzz/cov-condition-loop-index-bitwise-not/0-opt.spvasm.expected.ir.dxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Access
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/cov-condition-loop-index-bitwise-not/0-opt.spvasm.expected.ir.fxc.hlsl b/test/tint/vk-gl-cts/graphicsfuzz/cov-condition-loop-index-bitwise-not/0-opt.spvasm.expected.ir.fxc.hlsl
deleted file mode 100644
index 3f437dc..0000000
--- a/test/tint/vk-gl-cts/graphicsfuzz/cov-condition-loop-index-bitwise-not/0-opt.spvasm.expected.ir.fxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Access
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/cov-condition-loop-index-bitwise-not/0-opt.wgsl.expected.ir.dxc.hlsl b/test/tint/vk-gl-cts/graphicsfuzz/cov-condition-loop-index-bitwise-not/0-opt.wgsl.expected.ir.dxc.hlsl
deleted file mode 100644
index 3f437dc..0000000
--- a/test/tint/vk-gl-cts/graphicsfuzz/cov-condition-loop-index-bitwise-not/0-opt.wgsl.expected.ir.dxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Access
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/cov-condition-loop-index-bitwise-not/0-opt.wgsl.expected.ir.fxc.hlsl b/test/tint/vk-gl-cts/graphicsfuzz/cov-condition-loop-index-bitwise-not/0-opt.wgsl.expected.ir.fxc.hlsl
deleted file mode 100644
index 3f437dc..0000000
--- a/test/tint/vk-gl-cts/graphicsfuzz/cov-condition-loop-index-bitwise-not/0-opt.wgsl.expected.ir.fxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Access
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/cov-conditional-discard-inside-loop/0-opt.spvasm.expected.ir.dxc.hlsl b/test/tint/vk-gl-cts/graphicsfuzz/cov-conditional-discard-inside-loop/0-opt.spvasm.expected.ir.dxc.hlsl
index c6e1d96..d1ee477 100644
--- a/test/tint/vk-gl-cts/graphicsfuzz/cov-conditional-discard-inside-loop/0-opt.spvasm.expected.ir.dxc.hlsl
+++ b/test/tint/vk-gl-cts/graphicsfuzz/cov-conditional-discard-inside-loop/0-opt.spvasm.expected.ir.dxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Construct
+..\..\src\tint\lang\core\ir\transform\demote_to_helper.cc:208 internal compiler error: TINT_UNREACHABLE unexpected non-core instruction
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/cov-conditional-discard-inside-loop/0-opt.spvasm.expected.ir.fxc.hlsl b/test/tint/vk-gl-cts/graphicsfuzz/cov-conditional-discard-inside-loop/0-opt.spvasm.expected.ir.fxc.hlsl
index c6e1d96..d1ee477 100644
--- a/test/tint/vk-gl-cts/graphicsfuzz/cov-conditional-discard-inside-loop/0-opt.spvasm.expected.ir.fxc.hlsl
+++ b/test/tint/vk-gl-cts/graphicsfuzz/cov-conditional-discard-inside-loop/0-opt.spvasm.expected.ir.fxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Construct
+..\..\src\tint\lang\core\ir\transform\demote_to_helper.cc:208 internal compiler error: TINT_UNREACHABLE unexpected non-core instruction
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/cov-conditional-discard-inside-loop/0-opt.wgsl.expected.ir.dxc.hlsl b/test/tint/vk-gl-cts/graphicsfuzz/cov-conditional-discard-inside-loop/0-opt.wgsl.expected.ir.dxc.hlsl
index 3f437dc..d1ee477 100644
--- a/test/tint/vk-gl-cts/graphicsfuzz/cov-conditional-discard-inside-loop/0-opt.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/vk-gl-cts/graphicsfuzz/cov-conditional-discard-inside-loop/0-opt.wgsl.expected.ir.dxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Access
+..\..\src\tint\lang\core\ir\transform\demote_to_helper.cc:208 internal compiler error: TINT_UNREACHABLE unexpected non-core instruction
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/cov-conditional-discard-inside-loop/0-opt.wgsl.expected.ir.fxc.hlsl b/test/tint/vk-gl-cts/graphicsfuzz/cov-conditional-discard-inside-loop/0-opt.wgsl.expected.ir.fxc.hlsl
index 3f437dc..d1ee477 100644
--- a/test/tint/vk-gl-cts/graphicsfuzz/cov-conditional-discard-inside-loop/0-opt.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/vk-gl-cts/graphicsfuzz/cov-conditional-discard-inside-loop/0-opt.wgsl.expected.ir.fxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Access
+..\..\src\tint\lang\core\ir\transform\demote_to_helper.cc:208 internal compiler error: TINT_UNREACHABLE unexpected non-core instruction
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/cov-const-folding-ceil-vec4/0-opt.spvasm.expected.ir.dxc.hlsl b/test/tint/vk-gl-cts/graphicsfuzz/cov-const-folding-ceil-vec4/0-opt.spvasm.expected.ir.dxc.hlsl
deleted file mode 100644
index c6e1d96..0000000
--- a/test/tint/vk-gl-cts/graphicsfuzz/cov-const-folding-ceil-vec4/0-opt.spvasm.expected.ir.dxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Construct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/cov-const-folding-ceil-vec4/0-opt.spvasm.expected.ir.fxc.hlsl b/test/tint/vk-gl-cts/graphicsfuzz/cov-const-folding-ceil-vec4/0-opt.spvasm.expected.ir.fxc.hlsl
deleted file mode 100644
index c6e1d96..0000000
--- a/test/tint/vk-gl-cts/graphicsfuzz/cov-const-folding-ceil-vec4/0-opt.spvasm.expected.ir.fxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Construct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/cov-const-folding-ceil-vec4/0-opt.wgsl.expected.ir.dxc.hlsl b/test/tint/vk-gl-cts/graphicsfuzz/cov-const-folding-ceil-vec4/0-opt.wgsl.expected.ir.dxc.hlsl
deleted file mode 100644
index 3f437dc..0000000
--- a/test/tint/vk-gl-cts/graphicsfuzz/cov-const-folding-ceil-vec4/0-opt.wgsl.expected.ir.dxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Access
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/cov-const-folding-ceil-vec4/0-opt.wgsl.expected.ir.fxc.hlsl b/test/tint/vk-gl-cts/graphicsfuzz/cov-const-folding-ceil-vec4/0-opt.wgsl.expected.ir.fxc.hlsl
deleted file mode 100644
index 3f437dc..0000000
--- a/test/tint/vk-gl-cts/graphicsfuzz/cov-const-folding-ceil-vec4/0-opt.wgsl.expected.ir.fxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Access
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/cov-const-folding-clamp-inside-while/0-opt.spvasm.expected.ir.dxc.hlsl b/test/tint/vk-gl-cts/graphicsfuzz/cov-const-folding-clamp-inside-while/0-opt.spvasm.expected.ir.dxc.hlsl
deleted file mode 100644
index adbb0c1..0000000
--- a/test/tint/vk-gl-cts/graphicsfuzz/cov-const-folding-clamp-inside-while/0-opt.spvasm.expected.ir.dxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:198 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Loop
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/cov-const-folding-clamp-inside-while/0-opt.spvasm.expected.ir.fxc.hlsl b/test/tint/vk-gl-cts/graphicsfuzz/cov-const-folding-clamp-inside-while/0-opt.spvasm.expected.ir.fxc.hlsl
deleted file mode 100644
index adbb0c1..0000000
--- a/test/tint/vk-gl-cts/graphicsfuzz/cov-const-folding-clamp-inside-while/0-opt.spvasm.expected.ir.fxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:198 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Loop
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/cov-const-folding-clamp-inside-while/0-opt.wgsl.expected.ir.dxc.hlsl b/test/tint/vk-gl-cts/graphicsfuzz/cov-const-folding-clamp-inside-while/0-opt.wgsl.expected.ir.dxc.hlsl
deleted file mode 100644
index adbb0c1..0000000
--- a/test/tint/vk-gl-cts/graphicsfuzz/cov-const-folding-clamp-inside-while/0-opt.wgsl.expected.ir.dxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:198 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Loop
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/cov-const-folding-clamp-inside-while/0-opt.wgsl.expected.ir.fxc.hlsl b/test/tint/vk-gl-cts/graphicsfuzz/cov-const-folding-clamp-inside-while/0-opt.wgsl.expected.ir.fxc.hlsl
deleted file mode 100644
index adbb0c1..0000000
--- a/test/tint/vk-gl-cts/graphicsfuzz/cov-const-folding-clamp-inside-while/0-opt.wgsl.expected.ir.fxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:198 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Loop
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/cov-const-folding-clamp-min/0-opt.spvasm.expected.ir.dxc.hlsl b/test/tint/vk-gl-cts/graphicsfuzz/cov-const-folding-clamp-min/0-opt.spvasm.expected.ir.dxc.hlsl
deleted file mode 100644
index bdeab23..0000000
--- a/test/tint/vk-gl-cts/graphicsfuzz/cov-const-folding-clamp-min/0-opt.spvasm.expected.ir.dxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:198 internal compiler error: Switch() matched no cases. Type: tint::core::ir::If
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/cov-const-folding-clamp-min/0-opt.spvasm.expected.ir.fxc.hlsl b/test/tint/vk-gl-cts/graphicsfuzz/cov-const-folding-clamp-min/0-opt.spvasm.expected.ir.fxc.hlsl
deleted file mode 100644
index bdeab23..0000000
--- a/test/tint/vk-gl-cts/graphicsfuzz/cov-const-folding-clamp-min/0-opt.spvasm.expected.ir.fxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:198 internal compiler error: Switch() matched no cases. Type: tint::core::ir::If
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/cov-const-folding-clamp-min/0-opt.wgsl.expected.ir.dxc.hlsl b/test/tint/vk-gl-cts/graphicsfuzz/cov-const-folding-clamp-min/0-opt.wgsl.expected.ir.dxc.hlsl
deleted file mode 100644
index 3f437dc..0000000
--- a/test/tint/vk-gl-cts/graphicsfuzz/cov-const-folding-clamp-min/0-opt.wgsl.expected.ir.dxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Access
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/cov-const-folding-clamp-min/0-opt.wgsl.expected.ir.fxc.hlsl b/test/tint/vk-gl-cts/graphicsfuzz/cov-const-folding-clamp-min/0-opt.wgsl.expected.ir.fxc.hlsl
deleted file mode 100644
index 3f437dc..0000000
--- a/test/tint/vk-gl-cts/graphicsfuzz/cov-const-folding-clamp-min/0-opt.wgsl.expected.ir.fxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Access
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/cov-const-folding-clamp-vs-original/0-opt.spvasm.expected.ir.dxc.hlsl b/test/tint/vk-gl-cts/graphicsfuzz/cov-const-folding-clamp-vs-original/0-opt.spvasm.expected.ir.dxc.hlsl
deleted file mode 100644
index 3f437dc..0000000
--- a/test/tint/vk-gl-cts/graphicsfuzz/cov-const-folding-clamp-vs-original/0-opt.spvasm.expected.ir.dxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Access
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/cov-const-folding-clamp-vs-original/0-opt.spvasm.expected.ir.fxc.hlsl b/test/tint/vk-gl-cts/graphicsfuzz/cov-const-folding-clamp-vs-original/0-opt.spvasm.expected.ir.fxc.hlsl
deleted file mode 100644
index 3f437dc..0000000
--- a/test/tint/vk-gl-cts/graphicsfuzz/cov-const-folding-clamp-vs-original/0-opt.spvasm.expected.ir.fxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Access
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/cov-const-folding-clamp-vs-original/0-opt.wgsl.expected.ir.dxc.hlsl b/test/tint/vk-gl-cts/graphicsfuzz/cov-const-folding-clamp-vs-original/0-opt.wgsl.expected.ir.dxc.hlsl
deleted file mode 100644
index 3f437dc..0000000
--- a/test/tint/vk-gl-cts/graphicsfuzz/cov-const-folding-clamp-vs-original/0-opt.wgsl.expected.ir.dxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Access
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/cov-const-folding-clamp-vs-original/0-opt.wgsl.expected.ir.fxc.hlsl b/test/tint/vk-gl-cts/graphicsfuzz/cov-const-folding-clamp-vs-original/0-opt.wgsl.expected.ir.fxc.hlsl
deleted file mode 100644
index 3f437dc..0000000
--- a/test/tint/vk-gl-cts/graphicsfuzz/cov-const-folding-clamp-vs-original/0-opt.wgsl.expected.ir.fxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Access
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/cov-const-folding-clamp/0-opt.spvasm.expected.ir.dxc.hlsl b/test/tint/vk-gl-cts/graphicsfuzz/cov-const-folding-clamp/0-opt.spvasm.expected.ir.dxc.hlsl
deleted file mode 100644
index 3f437dc..0000000
--- a/test/tint/vk-gl-cts/graphicsfuzz/cov-const-folding-clamp/0-opt.spvasm.expected.ir.dxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Access
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/cov-const-folding-clamp/0-opt.spvasm.expected.ir.fxc.hlsl b/test/tint/vk-gl-cts/graphicsfuzz/cov-const-folding-clamp/0-opt.spvasm.expected.ir.fxc.hlsl
deleted file mode 100644
index 3f437dc..0000000
--- a/test/tint/vk-gl-cts/graphicsfuzz/cov-const-folding-clamp/0-opt.spvasm.expected.ir.fxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Access
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/cov-const-folding-clamp/0-opt.wgsl.expected.ir.dxc.hlsl b/test/tint/vk-gl-cts/graphicsfuzz/cov-const-folding-clamp/0-opt.wgsl.expected.ir.dxc.hlsl
deleted file mode 100644
index 3f437dc..0000000
--- a/test/tint/vk-gl-cts/graphicsfuzz/cov-const-folding-clamp/0-opt.wgsl.expected.ir.dxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Access
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/cov-const-folding-clamp/0-opt.wgsl.expected.ir.fxc.hlsl b/test/tint/vk-gl-cts/graphicsfuzz/cov-const-folding-clamp/0-opt.wgsl.expected.ir.fxc.hlsl
deleted file mode 100644
index 3f437dc..0000000
--- a/test/tint/vk-gl-cts/graphicsfuzz/cov-const-folding-clamp/0-opt.wgsl.expected.ir.fxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Access
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/cov-const-folding-dot-condition-true/0-opt.spvasm.expected.ir.dxc.hlsl b/test/tint/vk-gl-cts/graphicsfuzz/cov-const-folding-dot-condition-true/0-opt.spvasm.expected.ir.dxc.hlsl
deleted file mode 100644
index bdeab23..0000000
--- a/test/tint/vk-gl-cts/graphicsfuzz/cov-const-folding-dot-condition-true/0-opt.spvasm.expected.ir.dxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:198 internal compiler error: Switch() matched no cases. Type: tint::core::ir::If
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/cov-const-folding-dot-condition-true/0-opt.spvasm.expected.ir.fxc.hlsl b/test/tint/vk-gl-cts/graphicsfuzz/cov-const-folding-dot-condition-true/0-opt.spvasm.expected.ir.fxc.hlsl
deleted file mode 100644
index bdeab23..0000000
--- a/test/tint/vk-gl-cts/graphicsfuzz/cov-const-folding-dot-condition-true/0-opt.spvasm.expected.ir.fxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:198 internal compiler error: Switch() matched no cases. Type: tint::core::ir::If
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/cov-const-folding-dot-condition-true/0-opt.wgsl.expected.ir.dxc.hlsl b/test/tint/vk-gl-cts/graphicsfuzz/cov-const-folding-dot-condition-true/0-opt.wgsl.expected.ir.dxc.hlsl
deleted file mode 100644
index bdeab23..0000000
--- a/test/tint/vk-gl-cts/graphicsfuzz/cov-const-folding-dot-condition-true/0-opt.wgsl.expected.ir.dxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:198 internal compiler error: Switch() matched no cases. Type: tint::core::ir::If
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/cov-const-folding-dot-condition-true/0-opt.wgsl.expected.ir.fxc.hlsl b/test/tint/vk-gl-cts/graphicsfuzz/cov-const-folding-dot-condition-true/0-opt.wgsl.expected.ir.fxc.hlsl
deleted file mode 100644
index bdeab23..0000000
--- a/test/tint/vk-gl-cts/graphicsfuzz/cov-const-folding-dot-condition-true/0-opt.wgsl.expected.ir.fxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:198 internal compiler error: Switch() matched no cases. Type: tint::core::ir::If
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/cov-const-folding-gte-const-first/0.spvasm.expected.ir.dxc.hlsl b/test/tint/vk-gl-cts/graphicsfuzz/cov-const-folding-gte-const-first/0.spvasm.expected.ir.dxc.hlsl
deleted file mode 100644
index bdeab23..0000000
--- a/test/tint/vk-gl-cts/graphicsfuzz/cov-const-folding-gte-const-first/0.spvasm.expected.ir.dxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:198 internal compiler error: Switch() matched no cases. Type: tint::core::ir::If
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/cov-const-folding-gte-const-first/0.spvasm.expected.ir.fxc.hlsl b/test/tint/vk-gl-cts/graphicsfuzz/cov-const-folding-gte-const-first/0.spvasm.expected.ir.fxc.hlsl
deleted file mode 100644
index bdeab23..0000000
--- a/test/tint/vk-gl-cts/graphicsfuzz/cov-const-folding-gte-const-first/0.spvasm.expected.ir.fxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:198 internal compiler error: Switch() matched no cases. Type: tint::core::ir::If
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/cov-const-folding-gte-const-first/0.wgsl.expected.ir.dxc.hlsl b/test/tint/vk-gl-cts/graphicsfuzz/cov-const-folding-gte-const-first/0.wgsl.expected.ir.dxc.hlsl
deleted file mode 100644
index 4a2c666..0000000
--- a/test/tint/vk-gl-cts/graphicsfuzz/cov-const-folding-gte-const-first/0.wgsl.expected.ir.dxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::LoadVectorElement
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/cov-const-folding-gte-const-first/0.wgsl.expected.ir.fxc.hlsl b/test/tint/vk-gl-cts/graphicsfuzz/cov-const-folding-gte-const-first/0.wgsl.expected.ir.fxc.hlsl
deleted file mode 100644
index 4a2c666..0000000
--- a/test/tint/vk-gl-cts/graphicsfuzz/cov-const-folding-gte-const-first/0.wgsl.expected.ir.fxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::LoadVectorElement
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/cov-const-folding-min-as-loop-range/0-opt.spvasm.expected.ir.dxc.hlsl b/test/tint/vk-gl-cts/graphicsfuzz/cov-const-folding-min-as-loop-range/0-opt.spvasm.expected.ir.dxc.hlsl
deleted file mode 100644
index adbb0c1..0000000
--- a/test/tint/vk-gl-cts/graphicsfuzz/cov-const-folding-min-as-loop-range/0-opt.spvasm.expected.ir.dxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:198 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Loop
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/cov-const-folding-min-as-loop-range/0-opt.spvasm.expected.ir.fxc.hlsl b/test/tint/vk-gl-cts/graphicsfuzz/cov-const-folding-min-as-loop-range/0-opt.spvasm.expected.ir.fxc.hlsl
deleted file mode 100644
index adbb0c1..0000000
--- a/test/tint/vk-gl-cts/graphicsfuzz/cov-const-folding-min-as-loop-range/0-opt.spvasm.expected.ir.fxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:198 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Loop
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/cov-const-folding-min-as-loop-range/0-opt.wgsl.expected.ir.dxc.hlsl b/test/tint/vk-gl-cts/graphicsfuzz/cov-const-folding-min-as-loop-range/0-opt.wgsl.expected.ir.dxc.hlsl
deleted file mode 100644
index adbb0c1..0000000
--- a/test/tint/vk-gl-cts/graphicsfuzz/cov-const-folding-min-as-loop-range/0-opt.wgsl.expected.ir.dxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:198 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Loop
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/cov-const-folding-min-as-loop-range/0-opt.wgsl.expected.ir.fxc.hlsl b/test/tint/vk-gl-cts/graphicsfuzz/cov-const-folding-min-as-loop-range/0-opt.wgsl.expected.ir.fxc.hlsl
deleted file mode 100644
index adbb0c1..0000000
--- a/test/tint/vk-gl-cts/graphicsfuzz/cov-const-folding-min-as-loop-range/0-opt.wgsl.expected.ir.fxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:198 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Loop
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/cov-const-folding-mod-one-one-lte/0-opt.spvasm.expected.ir.dxc.hlsl b/test/tint/vk-gl-cts/graphicsfuzz/cov-const-folding-mod-one-one-lte/0-opt.spvasm.expected.ir.dxc.hlsl
deleted file mode 100644
index bdeab23..0000000
--- a/test/tint/vk-gl-cts/graphicsfuzz/cov-const-folding-mod-one-one-lte/0-opt.spvasm.expected.ir.dxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:198 internal compiler error: Switch() matched no cases. Type: tint::core::ir::If
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/cov-const-folding-mod-one-one-lte/0-opt.spvasm.expected.ir.fxc.hlsl b/test/tint/vk-gl-cts/graphicsfuzz/cov-const-folding-mod-one-one-lte/0-opt.spvasm.expected.ir.fxc.hlsl
deleted file mode 100644
index bdeab23..0000000
--- a/test/tint/vk-gl-cts/graphicsfuzz/cov-const-folding-mod-one-one-lte/0-opt.spvasm.expected.ir.fxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:198 internal compiler error: Switch() matched no cases. Type: tint::core::ir::If
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/cov-const-folding-mod-one-one-lte/0-opt.wgsl.expected.ir.dxc.hlsl b/test/tint/vk-gl-cts/graphicsfuzz/cov-const-folding-mod-one-one-lte/0-opt.wgsl.expected.ir.dxc.hlsl
deleted file mode 100644
index bdeab23..0000000
--- a/test/tint/vk-gl-cts/graphicsfuzz/cov-const-folding-mod-one-one-lte/0-opt.wgsl.expected.ir.dxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:198 internal compiler error: Switch() matched no cases. Type: tint::core::ir::If
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/cov-const-folding-mod-one-one-lte/0-opt.wgsl.expected.ir.fxc.hlsl b/test/tint/vk-gl-cts/graphicsfuzz/cov-const-folding-mod-one-one-lte/0-opt.wgsl.expected.ir.fxc.hlsl
deleted file mode 100644
index bdeab23..0000000
--- a/test/tint/vk-gl-cts/graphicsfuzz/cov-const-folding-mod-one-one-lte/0-opt.wgsl.expected.ir.fxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:198 internal compiler error: Switch() matched no cases. Type: tint::core::ir::If
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/cov-const-folding-pow-large-exp/0-opt.spvasm.expected.ir.dxc.hlsl b/test/tint/vk-gl-cts/graphicsfuzz/cov-const-folding-pow-large-exp/0-opt.spvasm.expected.ir.dxc.hlsl
deleted file mode 100644
index 3f437dc..0000000
--- a/test/tint/vk-gl-cts/graphicsfuzz/cov-const-folding-pow-large-exp/0-opt.spvasm.expected.ir.dxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Access
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/cov-const-folding-pow-large-exp/0-opt.spvasm.expected.ir.fxc.hlsl b/test/tint/vk-gl-cts/graphicsfuzz/cov-const-folding-pow-large-exp/0-opt.spvasm.expected.ir.fxc.hlsl
deleted file mode 100644
index 3f437dc..0000000
--- a/test/tint/vk-gl-cts/graphicsfuzz/cov-const-folding-pow-large-exp/0-opt.spvasm.expected.ir.fxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Access
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/cov-const-folding-pow-large-exp/0-opt.wgsl.expected.ir.dxc.hlsl b/test/tint/vk-gl-cts/graphicsfuzz/cov-const-folding-pow-large-exp/0-opt.wgsl.expected.ir.dxc.hlsl
deleted file mode 100644
index 3f437dc..0000000
--- a/test/tint/vk-gl-cts/graphicsfuzz/cov-const-folding-pow-large-exp/0-opt.wgsl.expected.ir.dxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Access
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/cov-const-folding-pow-large-exp/0-opt.wgsl.expected.ir.fxc.hlsl b/test/tint/vk-gl-cts/graphicsfuzz/cov-const-folding-pow-large-exp/0-opt.wgsl.expected.ir.fxc.hlsl
deleted file mode 100644
index 3f437dc..0000000
--- a/test/tint/vk-gl-cts/graphicsfuzz/cov-const-folding-pow-large-exp/0-opt.wgsl.expected.ir.fxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Access
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/cov-const-folding-same-condition/0-opt.spvasm.expected.ir.dxc.hlsl b/test/tint/vk-gl-cts/graphicsfuzz/cov-const-folding-same-condition/0-opt.spvasm.expected.ir.dxc.hlsl
deleted file mode 100644
index 3f437dc..0000000
--- a/test/tint/vk-gl-cts/graphicsfuzz/cov-const-folding-same-condition/0-opt.spvasm.expected.ir.dxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Access
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/cov-const-folding-same-condition/0-opt.spvasm.expected.ir.fxc.hlsl b/test/tint/vk-gl-cts/graphicsfuzz/cov-const-folding-same-condition/0-opt.spvasm.expected.ir.fxc.hlsl
deleted file mode 100644
index 3f437dc..0000000
--- a/test/tint/vk-gl-cts/graphicsfuzz/cov-const-folding-same-condition/0-opt.spvasm.expected.ir.fxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Access
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/cov-const-folding-same-condition/0-opt.wgsl.expected.ir.dxc.hlsl b/test/tint/vk-gl-cts/graphicsfuzz/cov-const-folding-same-condition/0-opt.wgsl.expected.ir.dxc.hlsl
deleted file mode 100644
index 3f437dc..0000000
--- a/test/tint/vk-gl-cts/graphicsfuzz/cov-const-folding-same-condition/0-opt.wgsl.expected.ir.dxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Access
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/cov-const-folding-same-condition/0-opt.wgsl.expected.ir.fxc.hlsl b/test/tint/vk-gl-cts/graphicsfuzz/cov-const-folding-same-condition/0-opt.wgsl.expected.ir.fxc.hlsl
deleted file mode 100644
index 3f437dc..0000000
--- a/test/tint/vk-gl-cts/graphicsfuzz/cov-const-folding-same-condition/0-opt.wgsl.expected.ir.fxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Access
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/cov-const-folding-vector-shuffle/0.spvasm.expected.ir.dxc.hlsl b/test/tint/vk-gl-cts/graphicsfuzz/cov-const-folding-vector-shuffle/0.spvasm.expected.ir.dxc.hlsl
deleted file mode 100644
index adbb0c1..0000000
--- a/test/tint/vk-gl-cts/graphicsfuzz/cov-const-folding-vector-shuffle/0.spvasm.expected.ir.dxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:198 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Loop
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/cov-const-folding-vector-shuffle/0.spvasm.expected.ir.fxc.hlsl b/test/tint/vk-gl-cts/graphicsfuzz/cov-const-folding-vector-shuffle/0.spvasm.expected.ir.fxc.hlsl
deleted file mode 100644
index adbb0c1..0000000
--- a/test/tint/vk-gl-cts/graphicsfuzz/cov-const-folding-vector-shuffle/0.spvasm.expected.ir.fxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:198 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Loop
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/cov-const-folding-vector-shuffle/0.wgsl.expected.ir.dxc.hlsl b/test/tint/vk-gl-cts/graphicsfuzz/cov-const-folding-vector-shuffle/0.wgsl.expected.ir.dxc.hlsl
deleted file mode 100644
index adbb0c1..0000000
--- a/test/tint/vk-gl-cts/graphicsfuzz/cov-const-folding-vector-shuffle/0.wgsl.expected.ir.dxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:198 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Loop
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/cov-const-folding-vector-shuffle/0.wgsl.expected.ir.fxc.hlsl b/test/tint/vk-gl-cts/graphicsfuzz/cov-const-folding-vector-shuffle/0.wgsl.expected.ir.fxc.hlsl
deleted file mode 100644
index adbb0c1..0000000
--- a/test/tint/vk-gl-cts/graphicsfuzz/cov-const-folding-vector-shuffle/0.wgsl.expected.ir.fxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:198 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Loop
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/cov-constant-folding-atan-over-tanh/0-opt.spvasm.expected.ir.dxc.hlsl b/test/tint/vk-gl-cts/graphicsfuzz/cov-constant-folding-atan-over-tanh/0-opt.spvasm.expected.ir.dxc.hlsl
deleted file mode 100644
index bdeab23..0000000
--- a/test/tint/vk-gl-cts/graphicsfuzz/cov-constant-folding-atan-over-tanh/0-opt.spvasm.expected.ir.dxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:198 internal compiler error: Switch() matched no cases. Type: tint::core::ir::If
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/cov-constant-folding-atan-over-tanh/0-opt.spvasm.expected.ir.fxc.hlsl b/test/tint/vk-gl-cts/graphicsfuzz/cov-constant-folding-atan-over-tanh/0-opt.spvasm.expected.ir.fxc.hlsl
deleted file mode 100644
index bdeab23..0000000
--- a/test/tint/vk-gl-cts/graphicsfuzz/cov-constant-folding-atan-over-tanh/0-opt.spvasm.expected.ir.fxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:198 internal compiler error: Switch() matched no cases. Type: tint::core::ir::If
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/cov-constant-folding-atan-over-tanh/0-opt.wgsl.expected.ir.dxc.hlsl b/test/tint/vk-gl-cts/graphicsfuzz/cov-constant-folding-atan-over-tanh/0-opt.wgsl.expected.ir.dxc.hlsl
deleted file mode 100644
index bdeab23..0000000
--- a/test/tint/vk-gl-cts/graphicsfuzz/cov-constant-folding-atan-over-tanh/0-opt.wgsl.expected.ir.dxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:198 internal compiler error: Switch() matched no cases. Type: tint::core::ir::If
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/cov-constant-folding-atan-over-tanh/0-opt.wgsl.expected.ir.fxc.hlsl b/test/tint/vk-gl-cts/graphicsfuzz/cov-constant-folding-atan-over-tanh/0-opt.wgsl.expected.ir.fxc.hlsl
deleted file mode 100644
index bdeab23..0000000
--- a/test/tint/vk-gl-cts/graphicsfuzz/cov-constant-folding-atan-over-tanh/0-opt.wgsl.expected.ir.fxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:198 internal compiler error: Switch() matched no cases. Type: tint::core::ir::If
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/cov-constants-combine-add-sub/0-opt.spvasm.expected.ir.dxc.hlsl b/test/tint/vk-gl-cts/graphicsfuzz/cov-constants-combine-add-sub/0-opt.spvasm.expected.ir.dxc.hlsl
deleted file mode 100644
index 3f437dc..0000000
--- a/test/tint/vk-gl-cts/graphicsfuzz/cov-constants-combine-add-sub/0-opt.spvasm.expected.ir.dxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Access
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/cov-constants-combine-add-sub/0-opt.spvasm.expected.ir.fxc.hlsl b/test/tint/vk-gl-cts/graphicsfuzz/cov-constants-combine-add-sub/0-opt.spvasm.expected.ir.fxc.hlsl
deleted file mode 100644
index 3f437dc..0000000
--- a/test/tint/vk-gl-cts/graphicsfuzz/cov-constants-combine-add-sub/0-opt.spvasm.expected.ir.fxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Access
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/cov-constants-combine-add-sub/0-opt.wgsl.expected.ir.dxc.hlsl b/test/tint/vk-gl-cts/graphicsfuzz/cov-constants-combine-add-sub/0-opt.wgsl.expected.ir.dxc.hlsl
deleted file mode 100644
index 3f437dc..0000000
--- a/test/tint/vk-gl-cts/graphicsfuzz/cov-constants-combine-add-sub/0-opt.wgsl.expected.ir.dxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Access
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/cov-constants-combine-add-sub/0-opt.wgsl.expected.ir.fxc.hlsl b/test/tint/vk-gl-cts/graphicsfuzz/cov-constants-combine-add-sub/0-opt.wgsl.expected.ir.fxc.hlsl
deleted file mode 100644
index 3f437dc..0000000
--- a/test/tint/vk-gl-cts/graphicsfuzz/cov-constants-combine-add-sub/0-opt.wgsl.expected.ir.fxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Access
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/cov-constants-mix-uniform/0-opt.spvasm.expected.ir.dxc.hlsl b/test/tint/vk-gl-cts/graphicsfuzz/cov-constants-mix-uniform/0-opt.spvasm.expected.ir.dxc.hlsl
deleted file mode 100644
index 3f437dc..0000000
--- a/test/tint/vk-gl-cts/graphicsfuzz/cov-constants-mix-uniform/0-opt.spvasm.expected.ir.dxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Access
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/cov-constants-mix-uniform/0-opt.spvasm.expected.ir.fxc.hlsl b/test/tint/vk-gl-cts/graphicsfuzz/cov-constants-mix-uniform/0-opt.spvasm.expected.ir.fxc.hlsl
deleted file mode 100644
index 3f437dc..0000000
--- a/test/tint/vk-gl-cts/graphicsfuzz/cov-constants-mix-uniform/0-opt.spvasm.expected.ir.fxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Access
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/cov-constants-mix-uniform/0-opt.wgsl.expected.ir.dxc.hlsl b/test/tint/vk-gl-cts/graphicsfuzz/cov-constants-mix-uniform/0-opt.wgsl.expected.ir.dxc.hlsl
deleted file mode 100644
index 3f437dc..0000000
--- a/test/tint/vk-gl-cts/graphicsfuzz/cov-constants-mix-uniform/0-opt.wgsl.expected.ir.dxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Access
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/cov-constants-mix-uniform/0-opt.wgsl.expected.ir.fxc.hlsl b/test/tint/vk-gl-cts/graphicsfuzz/cov-constants-mix-uniform/0-opt.wgsl.expected.ir.fxc.hlsl
deleted file mode 100644
index 3f437dc..0000000
--- a/test/tint/vk-gl-cts/graphicsfuzz/cov-constants-mix-uniform/0-opt.wgsl.expected.ir.fxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Access
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/cov-continue-break-discard-return-in-loop/0-opt.spvasm.expected.ir.dxc.hlsl b/test/tint/vk-gl-cts/graphicsfuzz/cov-continue-break-discard-return-in-loop/0-opt.spvasm.expected.ir.dxc.hlsl
index c6e1d96..d1ee477 100644
--- a/test/tint/vk-gl-cts/graphicsfuzz/cov-continue-break-discard-return-in-loop/0-opt.spvasm.expected.ir.dxc.hlsl
+++ b/test/tint/vk-gl-cts/graphicsfuzz/cov-continue-break-discard-return-in-loop/0-opt.spvasm.expected.ir.dxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Construct
+..\..\src\tint\lang\core\ir\transform\demote_to_helper.cc:208 internal compiler error: TINT_UNREACHABLE unexpected non-core instruction
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/cov-continue-break-discard-return-in-loop/0-opt.spvasm.expected.ir.fxc.hlsl b/test/tint/vk-gl-cts/graphicsfuzz/cov-continue-break-discard-return-in-loop/0-opt.spvasm.expected.ir.fxc.hlsl
index c6e1d96..d1ee477 100644
--- a/test/tint/vk-gl-cts/graphicsfuzz/cov-continue-break-discard-return-in-loop/0-opt.spvasm.expected.ir.fxc.hlsl
+++ b/test/tint/vk-gl-cts/graphicsfuzz/cov-continue-break-discard-return-in-loop/0-opt.spvasm.expected.ir.fxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Construct
+..\..\src\tint\lang\core\ir\transform\demote_to_helper.cc:208 internal compiler error: TINT_UNREACHABLE unexpected non-core instruction
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/cov-continue-break-discard-return-in-loop/0-opt.wgsl.expected.ir.dxc.hlsl b/test/tint/vk-gl-cts/graphicsfuzz/cov-continue-break-discard-return-in-loop/0-opt.wgsl.expected.ir.dxc.hlsl
index 3f437dc..d1ee477 100644
--- a/test/tint/vk-gl-cts/graphicsfuzz/cov-continue-break-discard-return-in-loop/0-opt.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/vk-gl-cts/graphicsfuzz/cov-continue-break-discard-return-in-loop/0-opt.wgsl.expected.ir.dxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Access
+..\..\src\tint\lang\core\ir\transform\demote_to_helper.cc:208 internal compiler error: TINT_UNREACHABLE unexpected non-core instruction
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/cov-continue-break-discard-return-in-loop/0-opt.wgsl.expected.ir.fxc.hlsl b/test/tint/vk-gl-cts/graphicsfuzz/cov-continue-break-discard-return-in-loop/0-opt.wgsl.expected.ir.fxc.hlsl
index 3f437dc..d1ee477 100644
--- a/test/tint/vk-gl-cts/graphicsfuzz/cov-continue-break-discard-return-in-loop/0-opt.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/vk-gl-cts/graphicsfuzz/cov-continue-break-discard-return-in-loop/0-opt.wgsl.expected.ir.fxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Access
+..\..\src\tint\lang\core\ir\transform\demote_to_helper.cc:208 internal compiler error: TINT_UNREACHABLE unexpected non-core instruction
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/cov-copy-prop-arrays-func-argument/0-opt.spvasm.expected.ir.dxc.hlsl b/test/tint/vk-gl-cts/graphicsfuzz/cov-copy-prop-arrays-func-argument/0-opt.spvasm.expected.ir.dxc.hlsl
deleted file mode 100644
index 0ba40c6..0000000
--- a/test/tint/vk-gl-cts/graphicsfuzz/cov-copy-prop-arrays-func-argument/0-opt.spvasm.expected.ir.dxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/cov-copy-prop-arrays-func-argument/0-opt.spvasm.expected.ir.fxc.hlsl b/test/tint/vk-gl-cts/graphicsfuzz/cov-copy-prop-arrays-func-argument/0-opt.spvasm.expected.ir.fxc.hlsl
deleted file mode 100644
index 0ba40c6..0000000
--- a/test/tint/vk-gl-cts/graphicsfuzz/cov-copy-prop-arrays-func-argument/0-opt.spvasm.expected.ir.fxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/cov-copy-prop-arrays-func-argument/0-opt.wgsl.expected.ir.dxc.hlsl b/test/tint/vk-gl-cts/graphicsfuzz/cov-copy-prop-arrays-func-argument/0-opt.wgsl.expected.ir.dxc.hlsl
deleted file mode 100644
index 0ba40c6..0000000
--- a/test/tint/vk-gl-cts/graphicsfuzz/cov-copy-prop-arrays-func-argument/0-opt.wgsl.expected.ir.dxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/cov-copy-prop-arrays-func-argument/0-opt.wgsl.expected.ir.fxc.hlsl b/test/tint/vk-gl-cts/graphicsfuzz/cov-copy-prop-arrays-func-argument/0-opt.wgsl.expected.ir.fxc.hlsl
deleted file mode 100644
index 0ba40c6..0000000
--- a/test/tint/vk-gl-cts/graphicsfuzz/cov-copy-prop-arrays-func-argument/0-opt.wgsl.expected.ir.fxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/cov-copy-prop-arrays-no-stores/0-opt.spvasm.expected.ir.dxc.hlsl b/test/tint/vk-gl-cts/graphicsfuzz/cov-copy-prop-arrays-no-stores/0-opt.spvasm.expected.ir.dxc.hlsl
deleted file mode 100644
index 0ba40c6..0000000
--- a/test/tint/vk-gl-cts/graphicsfuzz/cov-copy-prop-arrays-no-stores/0-opt.spvasm.expected.ir.dxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/cov-copy-prop-arrays-no-stores/0-opt.spvasm.expected.ir.fxc.hlsl b/test/tint/vk-gl-cts/graphicsfuzz/cov-copy-prop-arrays-no-stores/0-opt.spvasm.expected.ir.fxc.hlsl
index 0ba40c6..5faa18a 100644
--- a/test/tint/vk-gl-cts/graphicsfuzz/cov-copy-prop-arrays-no-stores/0-opt.spvasm.expected.ir.fxc.hlsl
+++ b/test/tint/vk-gl-cts/graphicsfuzz/cov-copy-prop-arrays-no-stores/0-opt.spvasm.expected.ir.fxc.hlsl
@@ -1,9 +1,49 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct Array {
+  int values[2];
+};
+
+struct main_out {
+  float4 x_GLF_color_1;
+};
+
+struct main_outputs {
+  float4 main_out_x_GLF_color_1 : SV_Target0;
+};
+
+
+cbuffer cbuffer_x_7 : register(b0) {
+  uint4 x_7[1];
+};
+static float4 x_GLF_color = (0.0f).xxxx;
+void main_1() {
+  Array a = (Array)0;
+  Array b = (Array)0;
+  float one = 0.0f;
+  int x_10 = asint(x_7[0u].x);
+  a.values[x_10] = 1;
+  Array v = a;
+  b = v;
+  one = 0.0f;
+  if ((b.values[asint(x_7[0u].x)] == 1)) {
+    one = 1.0f;
+  }
+  x_GLF_color = float4(one, 0.0f, 0.0f, 1.0f);
+}
+
+main_out main_inner() {
+  main_1();
+  main_out v_1 = {x_GLF_color};
+  return v_1;
+}
+
+main_outputs main() {
+  main_out v_2 = main_inner();
+  main_outputs v_3 = {v_2.x_GLF_color_1};
+  return v_3;
+}
+
+FXC validation failure:
+c:\src\dawn\Shader@0x000002065DA33C40(23,3-16): error X3500: array reference cannot be used as an l-value; not natively addressable
+
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/cov-copy-prop-arrays-no-stores/0-opt.wgsl.expected.ir.dxc.hlsl b/test/tint/vk-gl-cts/graphicsfuzz/cov-copy-prop-arrays-no-stores/0-opt.wgsl.expected.ir.dxc.hlsl
deleted file mode 100644
index 0ba40c6..0000000
--- a/test/tint/vk-gl-cts/graphicsfuzz/cov-copy-prop-arrays-no-stores/0-opt.wgsl.expected.ir.dxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/cov-copy-prop-arrays-no-stores/0-opt.wgsl.expected.ir.fxc.hlsl b/test/tint/vk-gl-cts/graphicsfuzz/cov-copy-prop-arrays-no-stores/0-opt.wgsl.expected.ir.fxc.hlsl
index 0ba40c6..7dcfb2c 100644
--- a/test/tint/vk-gl-cts/graphicsfuzz/cov-copy-prop-arrays-no-stores/0-opt.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/vk-gl-cts/graphicsfuzz/cov-copy-prop-arrays-no-stores/0-opt.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,53 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct Array {
+  int values[2];
+};
+
+struct main_out {
+  float4 x_GLF_color_1;
+};
+
+struct main_outputs {
+  float4 main_out_x_GLF_color_1 : SV_Target0;
+};
+
+
+cbuffer cbuffer_x_7 : register(b0) {
+  uint4 x_7[1];
+};
+static float4 x_GLF_color = (0.0f).xxxx;
+void main_1() {
+  Array a = (Array)0;
+  Array b = (Array)0;
+  float one = 0.0f;
+  int x_10 = asint(x_7[0u].x);
+  a.values[x_10] = 1;
+  Array v = a;
+  Array x_35 = v;
+  b = x_35;
+  one = 0.0f;
+  int x_11 = asint(x_7[0u].x);
+  int x_12 = b.values[x_11];
+  if ((x_12 == 1)) {
+    one = 1.0f;
+  }
+  float x_41 = one;
+  x_GLF_color = float4(x_41, 0.0f, 0.0f, 1.0f);
+}
+
+main_out main_inner() {
+  main_1();
+  main_out v_1 = {x_GLF_color};
+  return v_1;
+}
+
+main_outputs main() {
+  main_out v_2 = main_inner();
+  main_outputs v_3 = {v_2.x_GLF_color_1};
+  return v_3;
+}
+
+FXC validation failure:
+c:\src\dawn\Shader@0x0000015F3932CAB0(23,3-16): error X3500: array reference cannot be used as an l-value; not natively addressable
+
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/cov-copy-prop-arrays-param-uniform/0-opt.spvasm.expected.ir.dxc.hlsl b/test/tint/vk-gl-cts/graphicsfuzz/cov-copy-prop-arrays-param-uniform/0-opt.spvasm.expected.ir.dxc.hlsl
deleted file mode 100644
index 0ba40c6..0000000
--- a/test/tint/vk-gl-cts/graphicsfuzz/cov-copy-prop-arrays-param-uniform/0-opt.spvasm.expected.ir.dxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/cov-copy-prop-arrays-param-uniform/0-opt.spvasm.expected.ir.fxc.hlsl b/test/tint/vk-gl-cts/graphicsfuzz/cov-copy-prop-arrays-param-uniform/0-opt.spvasm.expected.ir.fxc.hlsl
deleted file mode 100644
index 0ba40c6..0000000
--- a/test/tint/vk-gl-cts/graphicsfuzz/cov-copy-prop-arrays-param-uniform/0-opt.spvasm.expected.ir.fxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/cov-copy-prop-arrays-param-uniform/0-opt.wgsl.expected.ir.dxc.hlsl b/test/tint/vk-gl-cts/graphicsfuzz/cov-copy-prop-arrays-param-uniform/0-opt.wgsl.expected.ir.dxc.hlsl
deleted file mode 100644
index 0ba40c6..0000000
--- a/test/tint/vk-gl-cts/graphicsfuzz/cov-copy-prop-arrays-param-uniform/0-opt.wgsl.expected.ir.dxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/cov-copy-prop-arrays-param-uniform/0-opt.wgsl.expected.ir.fxc.hlsl b/test/tint/vk-gl-cts/graphicsfuzz/cov-copy-prop-arrays-param-uniform/0-opt.wgsl.expected.ir.fxc.hlsl
deleted file mode 100644
index 0ba40c6..0000000
--- a/test/tint/vk-gl-cts/graphicsfuzz/cov-copy-prop-arrays-param-uniform/0-opt.wgsl.expected.ir.fxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/cov-cosh-clamped-to-one/0-opt.spvasm.expected.ir.dxc.hlsl b/test/tint/vk-gl-cts/graphicsfuzz/cov-cosh-clamped-to-one/0-opt.spvasm.expected.ir.dxc.hlsl
deleted file mode 100644
index c6e1d96..0000000
--- a/test/tint/vk-gl-cts/graphicsfuzz/cov-cosh-clamped-to-one/0-opt.spvasm.expected.ir.dxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Construct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/cov-cosh-clamped-to-one/0-opt.spvasm.expected.ir.fxc.hlsl b/test/tint/vk-gl-cts/graphicsfuzz/cov-cosh-clamped-to-one/0-opt.spvasm.expected.ir.fxc.hlsl
deleted file mode 100644
index c6e1d96..0000000
--- a/test/tint/vk-gl-cts/graphicsfuzz/cov-cosh-clamped-to-one/0-opt.spvasm.expected.ir.fxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Construct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/cov-cosh-clamped-to-one/0-opt.wgsl.expected.ir.dxc.hlsl b/test/tint/vk-gl-cts/graphicsfuzz/cov-cosh-clamped-to-one/0-opt.wgsl.expected.ir.dxc.hlsl
deleted file mode 100644
index 3f437dc..0000000
--- a/test/tint/vk-gl-cts/graphicsfuzz/cov-cosh-clamped-to-one/0-opt.wgsl.expected.ir.dxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Access
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/cov-cosh-clamped-to-one/0-opt.wgsl.expected.ir.fxc.hlsl b/test/tint/vk-gl-cts/graphicsfuzz/cov-cosh-clamped-to-one/0-opt.wgsl.expected.ir.fxc.hlsl
deleted file mode 100644
index 3f437dc..0000000
--- a/test/tint/vk-gl-cts/graphicsfuzz/cov-cosh-clamped-to-one/0-opt.wgsl.expected.ir.fxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Access
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/cov-cumulate-loops-unreachable/0-opt.spvasm.expected.ir.dxc.hlsl b/test/tint/vk-gl-cts/graphicsfuzz/cov-cumulate-loops-unreachable/0-opt.spvasm.expected.ir.dxc.hlsl
deleted file mode 100644
index 3f437dc..0000000
--- a/test/tint/vk-gl-cts/graphicsfuzz/cov-cumulate-loops-unreachable/0-opt.spvasm.expected.ir.dxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Access
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/cov-cumulate-loops-unreachable/0-opt.spvasm.expected.ir.fxc.hlsl b/test/tint/vk-gl-cts/graphicsfuzz/cov-cumulate-loops-unreachable/0-opt.spvasm.expected.ir.fxc.hlsl
deleted file mode 100644
index 3f437dc..0000000
--- a/test/tint/vk-gl-cts/graphicsfuzz/cov-cumulate-loops-unreachable/0-opt.spvasm.expected.ir.fxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Access
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/cov-cumulate-loops-unreachable/0-opt.wgsl.expected.ir.dxc.hlsl b/test/tint/vk-gl-cts/graphicsfuzz/cov-cumulate-loops-unreachable/0-opt.wgsl.expected.ir.dxc.hlsl
deleted file mode 100644
index 3f437dc..0000000
--- a/test/tint/vk-gl-cts/graphicsfuzz/cov-cumulate-loops-unreachable/0-opt.wgsl.expected.ir.dxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Access
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/cov-cumulate-loops-unreachable/0-opt.wgsl.expected.ir.fxc.hlsl b/test/tint/vk-gl-cts/graphicsfuzz/cov-cumulate-loops-unreachable/0-opt.wgsl.expected.ir.fxc.hlsl
deleted file mode 100644
index 3f437dc..0000000
--- a/test/tint/vk-gl-cts/graphicsfuzz/cov-cumulate-loops-unreachable/0-opt.wgsl.expected.ir.fxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Access
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/cov-cumulate-loops-unreachable/1.spvasm.expected.ir.dxc.hlsl b/test/tint/vk-gl-cts/graphicsfuzz/cov-cumulate-loops-unreachable/1.spvasm.expected.ir.dxc.hlsl
deleted file mode 100644
index adbb0c1..0000000
--- a/test/tint/vk-gl-cts/graphicsfuzz/cov-cumulate-loops-unreachable/1.spvasm.expected.ir.dxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:198 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Loop
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/cov-cumulate-loops-unreachable/1.spvasm.expected.ir.fxc.hlsl b/test/tint/vk-gl-cts/graphicsfuzz/cov-cumulate-loops-unreachable/1.spvasm.expected.ir.fxc.hlsl
deleted file mode 100644
index adbb0c1..0000000
--- a/test/tint/vk-gl-cts/graphicsfuzz/cov-cumulate-loops-unreachable/1.spvasm.expected.ir.fxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:198 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Loop
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/cov-cumulate-loops-unreachable/1.wgsl.expected.ir.dxc.hlsl b/test/tint/vk-gl-cts/graphicsfuzz/cov-cumulate-loops-unreachable/1.wgsl.expected.ir.dxc.hlsl
deleted file mode 100644
index adbb0c1..0000000
--- a/test/tint/vk-gl-cts/graphicsfuzz/cov-cumulate-loops-unreachable/1.wgsl.expected.ir.dxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:198 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Loop
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/cov-cumulate-loops-unreachable/1.wgsl.expected.ir.fxc.hlsl b/test/tint/vk-gl-cts/graphicsfuzz/cov-cumulate-loops-unreachable/1.wgsl.expected.ir.fxc.hlsl
deleted file mode 100644
index adbb0c1..0000000
--- a/test/tint/vk-gl-cts/graphicsfuzz/cov-cumulate-loops-unreachable/1.wgsl.expected.ir.fxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:198 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Loop
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/cov-dag-combiner-clamp-undefined-access-array/0-opt.spvasm.expected.ir.dxc.hlsl b/test/tint/vk-gl-cts/graphicsfuzz/cov-dag-combiner-clamp-undefined-access-array/0-opt.spvasm.expected.ir.dxc.hlsl
deleted file mode 100644
index c6e1d96..0000000
--- a/test/tint/vk-gl-cts/graphicsfuzz/cov-dag-combiner-clamp-undefined-access-array/0-opt.spvasm.expected.ir.dxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Construct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/cov-dag-combiner-clamp-undefined-access-array/0-opt.spvasm.expected.ir.fxc.hlsl b/test/tint/vk-gl-cts/graphicsfuzz/cov-dag-combiner-clamp-undefined-access-array/0-opt.spvasm.expected.ir.fxc.hlsl
deleted file mode 100644
index c6e1d96..0000000
--- a/test/tint/vk-gl-cts/graphicsfuzz/cov-dag-combiner-clamp-undefined-access-array/0-opt.spvasm.expected.ir.fxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Construct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/cov-dag-combiner-clamp-undefined-access-array/0-opt.wgsl.expected.ir.dxc.hlsl b/test/tint/vk-gl-cts/graphicsfuzz/cov-dag-combiner-clamp-undefined-access-array/0-opt.wgsl.expected.ir.dxc.hlsl
deleted file mode 100644
index 3f437dc..0000000
--- a/test/tint/vk-gl-cts/graphicsfuzz/cov-dag-combiner-clamp-undefined-access-array/0-opt.wgsl.expected.ir.dxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Access
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/cov-dag-combiner-clamp-undefined-access-array/0-opt.wgsl.expected.ir.fxc.hlsl b/test/tint/vk-gl-cts/graphicsfuzz/cov-dag-combiner-clamp-undefined-access-array/0-opt.wgsl.expected.ir.fxc.hlsl
deleted file mode 100644
index 3f437dc..0000000
--- a/test/tint/vk-gl-cts/graphicsfuzz/cov-dag-combiner-clamp-undefined-access-array/0-opt.wgsl.expected.ir.fxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Access
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/cov-dag-combiner-combine-casts-legalize-vector-types-xyz-swizzle-for-loop/0-opt.spvasm.expected.ir.dxc.hlsl b/test/tint/vk-gl-cts/graphicsfuzz/cov-dag-combiner-combine-casts-legalize-vector-types-xyz-swizzle-for-loop/0-opt.spvasm.expected.ir.dxc.hlsl
deleted file mode 100644
index c6e1d96..0000000
--- a/test/tint/vk-gl-cts/graphicsfuzz/cov-dag-combiner-combine-casts-legalize-vector-types-xyz-swizzle-for-loop/0-opt.spvasm.expected.ir.dxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Construct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/cov-dag-combiner-combine-casts-legalize-vector-types-xyz-swizzle-for-loop/0-opt.spvasm.expected.ir.fxc.hlsl b/test/tint/vk-gl-cts/graphicsfuzz/cov-dag-combiner-combine-casts-legalize-vector-types-xyz-swizzle-for-loop/0-opt.spvasm.expected.ir.fxc.hlsl
index c6e1d96..166668b 100644
--- a/test/tint/vk-gl-cts/graphicsfuzz/cov-dag-combiner-combine-casts-legalize-vector-types-xyz-swizzle-for-loop/0-opt.spvasm.expected.ir.fxc.hlsl
+++ b/test/tint/vk-gl-cts/graphicsfuzz/cov-dag-combiner-combine-casts-legalize-vector-types-xyz-swizzle-for-loop/0-opt.spvasm.expected.ir.fxc.hlsl
@@ -1,9 +1,65 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Construct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct main_out {
+  float4 x_GLF_color_1;
+};
+
+struct main_outputs {
+  float4 main_out_x_GLF_color_1 : SV_Target0;
+};
+
+
+cbuffer cbuffer_x_6 : register(b0) {
+  uint4 x_6[4];
+};
+static float4 x_GLF_color = (0.0f).xxxx;
+void main_1() {
+  float4 v = (0.0f).xxxx;
+  int i = 0;
+  v = float4((float(asint(x_6[3u].x))).xxxx);
+  i = asint(x_6[0u].x);
+  {
+    while(true) {
+      int v_1 = i;
+      if ((v_1 < asint(x_6[3u].x))) {
+      } else {
+        break;
+      }
+      int x_50 = i;
+      v[uint3(0u, 1u, 2u)[x_50]] = float(i);
+      {
+        i = (i + 1);
+      }
+      continue;
+    }
+  }
+  float4 v_2 = v;
+  float v_3 = float(asint(x_6[0u].x));
+  float v_4 = float(asint(x_6[1u].x));
+  float v_5 = float(asint(x_6[2u].x));
+  if (all((v_2 == float4(v_3, v_4, v_5, float(asint(x_6[3u].x)))))) {
+    float v_6 = float(asint(x_6[1u].x));
+    float v_7 = float(asint(x_6[0u].x));
+    float v_8 = float(asint(x_6[0u].x));
+    x_GLF_color = float4(v_6, v_7, v_8, float(asint(x_6[1u].x)));
+  } else {
+    x_GLF_color = float4((float(asint(x_6[0u].x))).xxxx);
+  }
+}
+
+main_out main_inner() {
+  main_1();
+  main_out v_9 = {x_GLF_color};
+  return v_9;
+}
+
+main_outputs main() {
+  main_out v_10 = main_inner();
+  main_outputs v_11 = {v_10.x_GLF_color_1};
+  return v_11;
+}
+
+FXC validation failure:
+c:\src\dawn\Shader@0x000002EA3D0CE810(27,7-32): error X3500: array reference cannot be used as an l-value; not natively addressable
+c:\src\dawn\Shader@0x000002EA3D0CE810(20,5-15): error X3511: forced to unroll loop, but unrolling failed.
+
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/cov-dag-combiner-combine-casts-legalize-vector-types-xyz-swizzle-for-loop/0-opt.wgsl.expected.ir.dxc.hlsl b/test/tint/vk-gl-cts/graphicsfuzz/cov-dag-combiner-combine-casts-legalize-vector-types-xyz-swizzle-for-loop/0-opt.wgsl.expected.ir.dxc.hlsl
deleted file mode 100644
index 3f437dc..0000000
--- a/test/tint/vk-gl-cts/graphicsfuzz/cov-dag-combiner-combine-casts-legalize-vector-types-xyz-swizzle-for-loop/0-opt.wgsl.expected.ir.dxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Access
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/cov-dag-combiner-combine-casts-legalize-vector-types-xyz-swizzle-for-loop/0-opt.wgsl.expected.ir.fxc.hlsl b/test/tint/vk-gl-cts/graphicsfuzz/cov-dag-combiner-combine-casts-legalize-vector-types-xyz-swizzle-for-loop/0-opt.wgsl.expected.ir.fxc.hlsl
index 3f437dc..6006fb8 100644
--- a/test/tint/vk-gl-cts/graphicsfuzz/cov-dag-combiner-combine-casts-legalize-vector-types-xyz-swizzle-for-loop/0-opt.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/vk-gl-cts/graphicsfuzz/cov-dag-combiner-combine-casts-legalize-vector-types-xyz-swizzle-for-loop/0-opt.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,81 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Access
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct main_out {
+  float4 x_GLF_color_1;
+};
+
+struct main_outputs {
+  float4 main_out_x_GLF_color_1 : SV_Target0;
+};
+
+
+cbuffer cbuffer_x_6 : register(b0) {
+  uint4 x_6[4];
+};
+static float4 x_GLF_color = (0.0f).xxxx;
+void main_1() {
+  float4 v = (0.0f).xxxx;
+  int i = 0;
+  int x_36 = asint(x_6[3u].x);
+  float x_37 = float(x_36);
+  v = float4(x_37, x_37, x_37, x_37);
+  int x_40 = asint(x_6[0u].x);
+  i = x_40;
+  {
+    while(true) {
+      int x_45 = i;
+      int x_47 = asint(x_6[3u].x);
+      if ((x_45 < x_47)) {
+      } else {
+        break;
+      }
+      int x_50 = i;
+      int x_51 = i;
+      v[uint3(0u, 1u, 2u)[x_50]] = float(x_51);
+      {
+        int x_55 = i;
+        i = (x_55 + 1);
+      }
+      continue;
+    }
+  }
+  float4 x_57 = v;
+  int x_59 = asint(x_6[0u].x);
+  int x_62 = asint(x_6[1u].x);
+  int x_65 = asint(x_6[2u].x);
+  int x_68 = asint(x_6[3u].x);
+  float v_1 = float(x_59);
+  float v_2 = float(x_62);
+  float v_3 = float(x_65);
+  if (all((x_57 == float4(v_1, v_2, v_3, float(x_68))))) {
+    int x_77 = asint(x_6[1u].x);
+    int x_80 = asint(x_6[0u].x);
+    int x_83 = asint(x_6[0u].x);
+    int x_86 = asint(x_6[1u].x);
+    float v_4 = float(x_77);
+    float v_5 = float(x_80);
+    float v_6 = float(x_83);
+    x_GLF_color = float4(v_4, v_5, v_6, float(x_86));
+  } else {
+    int x_90 = asint(x_6[0u].x);
+    float x_91 = float(x_90);
+    x_GLF_color = float4(x_91, x_91, x_91, x_91);
+  }
+}
+
+main_out main_inner() {
+  main_1();
+  main_out v_7 = {x_GLF_color};
+  return v_7;
+}
+
+main_outputs main() {
+  main_out v_8 = main_inner();
+  main_outputs v_9 = {v_8.x_GLF_color_1};
+  return v_9;
+}
+
+FXC validation failure:
+c:\src\dawn\Shader@0x000001B929642E40(32,7-32): error X3500: array reference cannot be used as an l-value; not natively addressable
+c:\src\dawn\Shader@0x000001B929642E40(23,5-15): error X3511: forced to unroll loop, but unrolling failed.
+
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/cov-dag-combiner-glf_color/0-opt.spvasm.expected.ir.dxc.hlsl b/test/tint/vk-gl-cts/graphicsfuzz/cov-dag-combiner-glf_color/0-opt.spvasm.expected.ir.dxc.hlsl
deleted file mode 100644
index c6e1d96..0000000
--- a/test/tint/vk-gl-cts/graphicsfuzz/cov-dag-combiner-glf_color/0-opt.spvasm.expected.ir.dxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Construct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/cov-dag-combiner-glf_color/0-opt.spvasm.expected.ir.fxc.hlsl b/test/tint/vk-gl-cts/graphicsfuzz/cov-dag-combiner-glf_color/0-opt.spvasm.expected.ir.fxc.hlsl
deleted file mode 100644
index c6e1d96..0000000
--- a/test/tint/vk-gl-cts/graphicsfuzz/cov-dag-combiner-glf_color/0-opt.spvasm.expected.ir.fxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Construct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/cov-dag-combiner-glf_color/0-opt.wgsl.expected.ir.dxc.hlsl b/test/tint/vk-gl-cts/graphicsfuzz/cov-dag-combiner-glf_color/0-opt.wgsl.expected.ir.dxc.hlsl
deleted file mode 100644
index 3f437dc..0000000
--- a/test/tint/vk-gl-cts/graphicsfuzz/cov-dag-combiner-glf_color/0-opt.wgsl.expected.ir.dxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Access
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/cov-dag-combiner-glf_color/0-opt.wgsl.expected.ir.fxc.hlsl b/test/tint/vk-gl-cts/graphicsfuzz/cov-dag-combiner-glf_color/0-opt.wgsl.expected.ir.fxc.hlsl
deleted file mode 100644
index 3f437dc..0000000
--- a/test/tint/vk-gl-cts/graphicsfuzz/cov-dag-combiner-glf_color/0-opt.wgsl.expected.ir.fxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Access
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/cov-dag-combiner-increment-color/0-opt.spvasm.expected.ir.dxc.hlsl b/test/tint/vk-gl-cts/graphicsfuzz/cov-dag-combiner-increment-color/0-opt.spvasm.expected.ir.dxc.hlsl
deleted file mode 100644
index 3f437dc..0000000
--- a/test/tint/vk-gl-cts/graphicsfuzz/cov-dag-combiner-increment-color/0-opt.spvasm.expected.ir.dxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Access
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/cov-dag-combiner-increment-color/0-opt.spvasm.expected.ir.fxc.hlsl b/test/tint/vk-gl-cts/graphicsfuzz/cov-dag-combiner-increment-color/0-opt.spvasm.expected.ir.fxc.hlsl
deleted file mode 100644
index 3f437dc..0000000
--- a/test/tint/vk-gl-cts/graphicsfuzz/cov-dag-combiner-increment-color/0-opt.spvasm.expected.ir.fxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Access
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/cov-dag-combiner-increment-color/0-opt.wgsl.expected.ir.dxc.hlsl b/test/tint/vk-gl-cts/graphicsfuzz/cov-dag-combiner-increment-color/0-opt.wgsl.expected.ir.dxc.hlsl
deleted file mode 100644
index 3f437dc..0000000
--- a/test/tint/vk-gl-cts/graphicsfuzz/cov-dag-combiner-increment-color/0-opt.wgsl.expected.ir.dxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Access
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/cov-dag-combiner-increment-color/0-opt.wgsl.expected.ir.fxc.hlsl b/test/tint/vk-gl-cts/graphicsfuzz/cov-dag-combiner-increment-color/0-opt.wgsl.expected.ir.fxc.hlsl
deleted file mode 100644
index 3f437dc..0000000
--- a/test/tint/vk-gl-cts/graphicsfuzz/cov-dag-combiner-increment-color/0-opt.wgsl.expected.ir.fxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Access
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/cov-dag-combiner-loop-bitfieldreverse/0-opt.spvasm.expected.ir.dxc.hlsl b/test/tint/vk-gl-cts/graphicsfuzz/cov-dag-combiner-loop-bitfieldreverse/0-opt.spvasm.expected.ir.dxc.hlsl
deleted file mode 100644
index 3f437dc..0000000
--- a/test/tint/vk-gl-cts/graphicsfuzz/cov-dag-combiner-loop-bitfieldreverse/0-opt.spvasm.expected.ir.dxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Access
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/cov-dag-combiner-loop-bitfieldreverse/0-opt.spvasm.expected.ir.fxc.hlsl b/test/tint/vk-gl-cts/graphicsfuzz/cov-dag-combiner-loop-bitfieldreverse/0-opt.spvasm.expected.ir.fxc.hlsl
deleted file mode 100644
index 3f437dc..0000000
--- a/test/tint/vk-gl-cts/graphicsfuzz/cov-dag-combiner-loop-bitfieldreverse/0-opt.spvasm.expected.ir.fxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Access
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/cov-dag-combiner-loop-bitfieldreverse/0-opt.wgsl.expected.ir.dxc.hlsl b/test/tint/vk-gl-cts/graphicsfuzz/cov-dag-combiner-loop-bitfieldreverse/0-opt.wgsl.expected.ir.dxc.hlsl
deleted file mode 100644
index 3f437dc..0000000
--- a/test/tint/vk-gl-cts/graphicsfuzz/cov-dag-combiner-loop-bitfieldreverse/0-opt.wgsl.expected.ir.dxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Access
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/cov-dag-combiner-loop-bitfieldreverse/0-opt.wgsl.expected.ir.fxc.hlsl b/test/tint/vk-gl-cts/graphicsfuzz/cov-dag-combiner-loop-bitfieldreverse/0-opt.wgsl.expected.ir.fxc.hlsl
deleted file mode 100644
index 3f437dc..0000000
--- a/test/tint/vk-gl-cts/graphicsfuzz/cov-dag-combiner-loop-bitfieldreverse/0-opt.wgsl.expected.ir.fxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Access
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/cov-dag-combiner-neg-div-pow2/0-opt.spvasm.expected.ir.dxc.hlsl b/test/tint/vk-gl-cts/graphicsfuzz/cov-dag-combiner-neg-div-pow2/0-opt.spvasm.expected.ir.dxc.hlsl
deleted file mode 100644
index adbb0c1..0000000
--- a/test/tint/vk-gl-cts/graphicsfuzz/cov-dag-combiner-neg-div-pow2/0-opt.spvasm.expected.ir.dxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:198 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Loop
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/cov-dag-combiner-neg-div-pow2/0-opt.spvasm.expected.ir.fxc.hlsl b/test/tint/vk-gl-cts/graphicsfuzz/cov-dag-combiner-neg-div-pow2/0-opt.spvasm.expected.ir.fxc.hlsl
deleted file mode 100644
index adbb0c1..0000000
--- a/test/tint/vk-gl-cts/graphicsfuzz/cov-dag-combiner-neg-div-pow2/0-opt.spvasm.expected.ir.fxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:198 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Loop
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/cov-dag-combiner-neg-div-pow2/0-opt.wgsl.expected.ir.dxc.hlsl b/test/tint/vk-gl-cts/graphicsfuzz/cov-dag-combiner-neg-div-pow2/0-opt.wgsl.expected.ir.dxc.hlsl
deleted file mode 100644
index adbb0c1..0000000
--- a/test/tint/vk-gl-cts/graphicsfuzz/cov-dag-combiner-neg-div-pow2/0-opt.wgsl.expected.ir.dxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:198 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Loop
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/cov-dag-combiner-neg-div-pow2/0-opt.wgsl.expected.ir.fxc.hlsl b/test/tint/vk-gl-cts/graphicsfuzz/cov-dag-combiner-neg-div-pow2/0-opt.wgsl.expected.ir.fxc.hlsl
deleted file mode 100644
index adbb0c1..0000000
--- a/test/tint/vk-gl-cts/graphicsfuzz/cov-dag-combiner-neg-div-pow2/0-opt.wgsl.expected.ir.fxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:198 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Loop
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/cov-dag-combiner-same-cond-nested/0-opt.spvasm.expected.ir.dxc.hlsl b/test/tint/vk-gl-cts/graphicsfuzz/cov-dag-combiner-same-cond-nested/0-opt.spvasm.expected.ir.dxc.hlsl
deleted file mode 100644
index 3f437dc..0000000
--- a/test/tint/vk-gl-cts/graphicsfuzz/cov-dag-combiner-same-cond-nested/0-opt.spvasm.expected.ir.dxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Access
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/cov-dag-combiner-same-cond-nested/0-opt.spvasm.expected.ir.fxc.hlsl b/test/tint/vk-gl-cts/graphicsfuzz/cov-dag-combiner-same-cond-nested/0-opt.spvasm.expected.ir.fxc.hlsl
deleted file mode 100644
index 3f437dc..0000000
--- a/test/tint/vk-gl-cts/graphicsfuzz/cov-dag-combiner-same-cond-nested/0-opt.spvasm.expected.ir.fxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Access
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/cov-dag-combiner-same-cond-nested/0-opt.wgsl.expected.ir.dxc.hlsl b/test/tint/vk-gl-cts/graphicsfuzz/cov-dag-combiner-same-cond-nested/0-opt.wgsl.expected.ir.dxc.hlsl
deleted file mode 100644
index 3f437dc..0000000
--- a/test/tint/vk-gl-cts/graphicsfuzz/cov-dag-combiner-same-cond-nested/0-opt.wgsl.expected.ir.dxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Access
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/cov-dag-combiner-same-cond-nested/0-opt.wgsl.expected.ir.fxc.hlsl b/test/tint/vk-gl-cts/graphicsfuzz/cov-dag-combiner-same-cond-nested/0-opt.wgsl.expected.ir.fxc.hlsl
deleted file mode 100644
index 3f437dc..0000000
--- a/test/tint/vk-gl-cts/graphicsfuzz/cov-dag-combiner-same-cond-nested/0-opt.wgsl.expected.ir.fxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Access
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/cov-derivative-uniform-vector-global-loop-count/0-opt.spvasm.expected.ir.dxc.hlsl b/test/tint/vk-gl-cts/graphicsfuzz/cov-derivative-uniform-vector-global-loop-count/0-opt.spvasm.expected.ir.dxc.hlsl
deleted file mode 100644
index 3f437dc..0000000
--- a/test/tint/vk-gl-cts/graphicsfuzz/cov-derivative-uniform-vector-global-loop-count/0-opt.spvasm.expected.ir.dxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Access
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/cov-derivative-uniform-vector-global-loop-count/0-opt.spvasm.expected.ir.fxc.hlsl b/test/tint/vk-gl-cts/graphicsfuzz/cov-derivative-uniform-vector-global-loop-count/0-opt.spvasm.expected.ir.fxc.hlsl
deleted file mode 100644
index 3f437dc..0000000
--- a/test/tint/vk-gl-cts/graphicsfuzz/cov-derivative-uniform-vector-global-loop-count/0-opt.spvasm.expected.ir.fxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Access
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/cov-derivative-uniform-vector-global-loop-count/0-opt.wgsl.expected.ir.dxc.hlsl b/test/tint/vk-gl-cts/graphicsfuzz/cov-derivative-uniform-vector-global-loop-count/0-opt.wgsl.expected.ir.dxc.hlsl
deleted file mode 100644
index 3f437dc..0000000
--- a/test/tint/vk-gl-cts/graphicsfuzz/cov-derivative-uniform-vector-global-loop-count/0-opt.wgsl.expected.ir.dxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Access
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/cov-derivative-uniform-vector-global-loop-count/0-opt.wgsl.expected.ir.fxc.hlsl b/test/tint/vk-gl-cts/graphicsfuzz/cov-derivative-uniform-vector-global-loop-count/0-opt.wgsl.expected.ir.fxc.hlsl
deleted file mode 100644
index 3f437dc..0000000
--- a/test/tint/vk-gl-cts/graphicsfuzz/cov-derivative-uniform-vector-global-loop-count/0-opt.wgsl.expected.ir.fxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Access
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/cov-descending-loop-min-max-always-zero/0-opt.spvasm.expected.ir.dxc.hlsl b/test/tint/vk-gl-cts/graphicsfuzz/cov-descending-loop-min-max-always-zero/0-opt.spvasm.expected.ir.dxc.hlsl
deleted file mode 100644
index 3f437dc..0000000
--- a/test/tint/vk-gl-cts/graphicsfuzz/cov-descending-loop-min-max-always-zero/0-opt.spvasm.expected.ir.dxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Access
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/cov-descending-loop-min-max-always-zero/0-opt.spvasm.expected.ir.fxc.hlsl b/test/tint/vk-gl-cts/graphicsfuzz/cov-descending-loop-min-max-always-zero/0-opt.spvasm.expected.ir.fxc.hlsl
deleted file mode 100644
index 3f437dc..0000000
--- a/test/tint/vk-gl-cts/graphicsfuzz/cov-descending-loop-min-max-always-zero/0-opt.spvasm.expected.ir.fxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Access
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/cov-descending-loop-min-max-always-zero/0-opt.wgsl.expected.ir.dxc.hlsl b/test/tint/vk-gl-cts/graphicsfuzz/cov-descending-loop-min-max-always-zero/0-opt.wgsl.expected.ir.dxc.hlsl
deleted file mode 100644
index 3f437dc..0000000
--- a/test/tint/vk-gl-cts/graphicsfuzz/cov-descending-loop-min-max-always-zero/0-opt.wgsl.expected.ir.dxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Access
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/cov-descending-loop-min-max-always-zero/0-opt.wgsl.expected.ir.fxc.hlsl b/test/tint/vk-gl-cts/graphicsfuzz/cov-descending-loop-min-max-always-zero/0-opt.wgsl.expected.ir.fxc.hlsl
deleted file mode 100644
index 3f437dc..0000000
--- a/test/tint/vk-gl-cts/graphicsfuzz/cov-descending-loop-min-max-always-zero/0-opt.wgsl.expected.ir.fxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Access
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/cov-divide-matrix-transpose-by-constant/0-opt.spvasm.expected.ir.dxc.hlsl b/test/tint/vk-gl-cts/graphicsfuzz/cov-divide-matrix-transpose-by-constant/0-opt.spvasm.expected.ir.dxc.hlsl
deleted file mode 100644
index bdeab23..0000000
--- a/test/tint/vk-gl-cts/graphicsfuzz/cov-divide-matrix-transpose-by-constant/0-opt.spvasm.expected.ir.dxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:198 internal compiler error: Switch() matched no cases. Type: tint::core::ir::If
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/cov-divide-matrix-transpose-by-constant/0-opt.spvasm.expected.ir.fxc.hlsl b/test/tint/vk-gl-cts/graphicsfuzz/cov-divide-matrix-transpose-by-constant/0-opt.spvasm.expected.ir.fxc.hlsl
deleted file mode 100644
index bdeab23..0000000
--- a/test/tint/vk-gl-cts/graphicsfuzz/cov-divide-matrix-transpose-by-constant/0-opt.spvasm.expected.ir.fxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:198 internal compiler error: Switch() matched no cases. Type: tint::core::ir::If
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/cov-divide-matrix-transpose-by-constant/0-opt.wgsl.expected.ir.dxc.hlsl b/test/tint/vk-gl-cts/graphicsfuzz/cov-divide-matrix-transpose-by-constant/0-opt.wgsl.expected.ir.dxc.hlsl
deleted file mode 100644
index bdeab23..0000000
--- a/test/tint/vk-gl-cts/graphicsfuzz/cov-divide-matrix-transpose-by-constant/0-opt.wgsl.expected.ir.dxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:198 internal compiler error: Switch() matched no cases. Type: tint::core::ir::If
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/cov-divide-matrix-transpose-by-constant/0-opt.wgsl.expected.ir.fxc.hlsl b/test/tint/vk-gl-cts/graphicsfuzz/cov-divide-matrix-transpose-by-constant/0-opt.wgsl.expected.ir.fxc.hlsl
deleted file mode 100644
index bdeab23..0000000
--- a/test/tint/vk-gl-cts/graphicsfuzz/cov-divide-matrix-transpose-by-constant/0-opt.wgsl.expected.ir.fxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:198 internal compiler error: Switch() matched no cases. Type: tint::core::ir::If
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/cov-double-if-true-in-loop/0-opt.spvasm.expected.ir.dxc.hlsl b/test/tint/vk-gl-cts/graphicsfuzz/cov-double-if-true-in-loop/0-opt.spvasm.expected.ir.dxc.hlsl
deleted file mode 100644
index 3f437dc..0000000
--- a/test/tint/vk-gl-cts/graphicsfuzz/cov-double-if-true-in-loop/0-opt.spvasm.expected.ir.dxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Access
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/cov-double-if-true-in-loop/0-opt.spvasm.expected.ir.fxc.hlsl b/test/tint/vk-gl-cts/graphicsfuzz/cov-double-if-true-in-loop/0-opt.spvasm.expected.ir.fxc.hlsl
deleted file mode 100644
index 3f437dc..0000000
--- a/test/tint/vk-gl-cts/graphicsfuzz/cov-double-if-true-in-loop/0-opt.spvasm.expected.ir.fxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Access
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/cov-double-if-true-in-loop/0-opt.wgsl.expected.ir.dxc.hlsl b/test/tint/vk-gl-cts/graphicsfuzz/cov-double-if-true-in-loop/0-opt.wgsl.expected.ir.dxc.hlsl
deleted file mode 100644
index 3f437dc..0000000
--- a/test/tint/vk-gl-cts/graphicsfuzz/cov-double-if-true-in-loop/0-opt.wgsl.expected.ir.dxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Access
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/cov-double-if-true-in-loop/0-opt.wgsl.expected.ir.fxc.hlsl b/test/tint/vk-gl-cts/graphicsfuzz/cov-double-if-true-in-loop/0-opt.wgsl.expected.ir.fxc.hlsl
deleted file mode 100644
index 3f437dc..0000000
--- a/test/tint/vk-gl-cts/graphicsfuzz/cov-double-if-true-in-loop/0-opt.wgsl.expected.ir.fxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Access
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/cov-empty-loop-minus-one-modulo-variable-one/0-opt.spvasm.expected.ir.dxc.hlsl b/test/tint/vk-gl-cts/graphicsfuzz/cov-empty-loop-minus-one-modulo-variable-one/0-opt.spvasm.expected.ir.dxc.hlsl
deleted file mode 100644
index bdeab23..0000000
--- a/test/tint/vk-gl-cts/graphicsfuzz/cov-empty-loop-minus-one-modulo-variable-one/0-opt.spvasm.expected.ir.dxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:198 internal compiler error: Switch() matched no cases. Type: tint::core::ir::If
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/cov-empty-loop-minus-one-modulo-variable-one/0-opt.spvasm.expected.ir.fxc.hlsl b/test/tint/vk-gl-cts/graphicsfuzz/cov-empty-loop-minus-one-modulo-variable-one/0-opt.spvasm.expected.ir.fxc.hlsl
deleted file mode 100644
index bdeab23..0000000
--- a/test/tint/vk-gl-cts/graphicsfuzz/cov-empty-loop-minus-one-modulo-variable-one/0-opt.spvasm.expected.ir.fxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:198 internal compiler error: Switch() matched no cases. Type: tint::core::ir::If
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/cov-empty-loop-minus-one-modulo-variable-one/0-opt.wgsl.expected.ir.dxc.hlsl b/test/tint/vk-gl-cts/graphicsfuzz/cov-empty-loop-minus-one-modulo-variable-one/0-opt.wgsl.expected.ir.dxc.hlsl
deleted file mode 100644
index 3f437dc..0000000
--- a/test/tint/vk-gl-cts/graphicsfuzz/cov-empty-loop-minus-one-modulo-variable-one/0-opt.wgsl.expected.ir.dxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Access
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/cov-empty-loop-minus-one-modulo-variable-one/0-opt.wgsl.expected.ir.fxc.hlsl b/test/tint/vk-gl-cts/graphicsfuzz/cov-empty-loop-minus-one-modulo-variable-one/0-opt.wgsl.expected.ir.fxc.hlsl
deleted file mode 100644
index 3f437dc..0000000
--- a/test/tint/vk-gl-cts/graphicsfuzz/cov-empty-loop-minus-one-modulo-variable-one/0-opt.wgsl.expected.ir.fxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Access
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/cov-exp2-two/0-opt.spvasm.expected.ir.dxc.hlsl b/test/tint/vk-gl-cts/graphicsfuzz/cov-exp2-two/0-opt.spvasm.expected.ir.dxc.hlsl
deleted file mode 100644
index bdeab23..0000000
--- a/test/tint/vk-gl-cts/graphicsfuzz/cov-exp2-two/0-opt.spvasm.expected.ir.dxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:198 internal compiler error: Switch() matched no cases. Type: tint::core::ir::If
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/cov-exp2-two/0-opt.spvasm.expected.ir.fxc.hlsl b/test/tint/vk-gl-cts/graphicsfuzz/cov-exp2-two/0-opt.spvasm.expected.ir.fxc.hlsl
deleted file mode 100644
index bdeab23..0000000
--- a/test/tint/vk-gl-cts/graphicsfuzz/cov-exp2-two/0-opt.spvasm.expected.ir.fxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:198 internal compiler error: Switch() matched no cases. Type: tint::core::ir::If
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/cov-exp2-two/0-opt.wgsl.expected.ir.dxc.hlsl b/test/tint/vk-gl-cts/graphicsfuzz/cov-exp2-two/0-opt.wgsl.expected.ir.dxc.hlsl
deleted file mode 100644
index bdeab23..0000000
--- a/test/tint/vk-gl-cts/graphicsfuzz/cov-exp2-two/0-opt.wgsl.expected.ir.dxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:198 internal compiler error: Switch() matched no cases. Type: tint::core::ir::If
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/cov-exp2-two/0-opt.wgsl.expected.ir.fxc.hlsl b/test/tint/vk-gl-cts/graphicsfuzz/cov-exp2-two/0-opt.wgsl.expected.ir.fxc.hlsl
deleted file mode 100644
index bdeab23..0000000
--- a/test/tint/vk-gl-cts/graphicsfuzz/cov-exp2-two/0-opt.wgsl.expected.ir.fxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:198 internal compiler error: Switch() matched no cases. Type: tint::core::ir::If
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/cov-float-array-init-pow/0-opt.spvasm.expected.ir.dxc.hlsl b/test/tint/vk-gl-cts/graphicsfuzz/cov-float-array-init-pow/0-opt.spvasm.expected.ir.dxc.hlsl
deleted file mode 100644
index c6e1d96..0000000
--- a/test/tint/vk-gl-cts/graphicsfuzz/cov-float-array-init-pow/0-opt.spvasm.expected.ir.dxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Construct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/cov-float-array-init-pow/0-opt.spvasm.expected.ir.fxc.hlsl b/test/tint/vk-gl-cts/graphicsfuzz/cov-float-array-init-pow/0-opt.spvasm.expected.ir.fxc.hlsl
deleted file mode 100644
index c6e1d96..0000000
--- a/test/tint/vk-gl-cts/graphicsfuzz/cov-float-array-init-pow/0-opt.spvasm.expected.ir.fxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Construct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/cov-float-array-init-pow/0-opt.wgsl.expected.ir.dxc.hlsl b/test/tint/vk-gl-cts/graphicsfuzz/cov-float-array-init-pow/0-opt.wgsl.expected.ir.dxc.hlsl
deleted file mode 100644
index 3f437dc..0000000
--- a/test/tint/vk-gl-cts/graphicsfuzz/cov-float-array-init-pow/0-opt.wgsl.expected.ir.dxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Access
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/cov-float-array-init-pow/0-opt.wgsl.expected.ir.fxc.hlsl b/test/tint/vk-gl-cts/graphicsfuzz/cov-float-array-init-pow/0-opt.wgsl.expected.ir.fxc.hlsl
deleted file mode 100644
index 3f437dc..0000000
--- a/test/tint/vk-gl-cts/graphicsfuzz/cov-float-array-init-pow/0-opt.wgsl.expected.ir.fxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Access
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/cov-fold-and-in-for-loop-range/0-opt.spvasm.expected.ir.dxc.hlsl b/test/tint/vk-gl-cts/graphicsfuzz/cov-fold-and-in-for-loop-range/0-opt.spvasm.expected.ir.dxc.hlsl
deleted file mode 100644
index adbb0c1..0000000
--- a/test/tint/vk-gl-cts/graphicsfuzz/cov-fold-and-in-for-loop-range/0-opt.spvasm.expected.ir.dxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:198 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Loop
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/cov-fold-and-in-for-loop-range/0-opt.spvasm.expected.ir.fxc.hlsl b/test/tint/vk-gl-cts/graphicsfuzz/cov-fold-and-in-for-loop-range/0-opt.spvasm.expected.ir.fxc.hlsl
deleted file mode 100644
index adbb0c1..0000000
--- a/test/tint/vk-gl-cts/graphicsfuzz/cov-fold-and-in-for-loop-range/0-opt.spvasm.expected.ir.fxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:198 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Loop
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/cov-fold-and-in-for-loop-range/0-opt.wgsl.expected.ir.dxc.hlsl b/test/tint/vk-gl-cts/graphicsfuzz/cov-fold-and-in-for-loop-range/0-opt.wgsl.expected.ir.dxc.hlsl
deleted file mode 100644
index adbb0c1..0000000
--- a/test/tint/vk-gl-cts/graphicsfuzz/cov-fold-and-in-for-loop-range/0-opt.wgsl.expected.ir.dxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:198 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Loop
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/cov-fold-and-in-for-loop-range/0-opt.wgsl.expected.ir.fxc.hlsl b/test/tint/vk-gl-cts/graphicsfuzz/cov-fold-and-in-for-loop-range/0-opt.wgsl.expected.ir.fxc.hlsl
deleted file mode 100644
index adbb0c1..0000000
--- a/test/tint/vk-gl-cts/graphicsfuzz/cov-fold-and-in-for-loop-range/0-opt.wgsl.expected.ir.fxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:198 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Loop
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/cov-fold-bitwise-and-zero/0.spvasm.expected.ir.dxc.hlsl b/test/tint/vk-gl-cts/graphicsfuzz/cov-fold-bitwise-and-zero/0.spvasm.expected.ir.dxc.hlsl
deleted file mode 100644
index bdeab23..0000000
--- a/test/tint/vk-gl-cts/graphicsfuzz/cov-fold-bitwise-and-zero/0.spvasm.expected.ir.dxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:198 internal compiler error: Switch() matched no cases. Type: tint::core::ir::If
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/cov-fold-bitwise-and-zero/0.spvasm.expected.ir.fxc.hlsl b/test/tint/vk-gl-cts/graphicsfuzz/cov-fold-bitwise-and-zero/0.spvasm.expected.ir.fxc.hlsl
deleted file mode 100644
index bdeab23..0000000
--- a/test/tint/vk-gl-cts/graphicsfuzz/cov-fold-bitwise-and-zero/0.spvasm.expected.ir.fxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:198 internal compiler error: Switch() matched no cases. Type: tint::core::ir::If
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/cov-fold-bitwise-and-zero/0.wgsl.expected.ir.dxc.hlsl b/test/tint/vk-gl-cts/graphicsfuzz/cov-fold-bitwise-and-zero/0.wgsl.expected.ir.dxc.hlsl
deleted file mode 100644
index 3f437dc..0000000
--- a/test/tint/vk-gl-cts/graphicsfuzz/cov-fold-bitwise-and-zero/0.wgsl.expected.ir.dxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Access
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/cov-fold-bitwise-and-zero/0.wgsl.expected.ir.fxc.hlsl b/test/tint/vk-gl-cts/graphicsfuzz/cov-fold-bitwise-and-zero/0.wgsl.expected.ir.fxc.hlsl
deleted file mode 100644
index 3f437dc..0000000
--- a/test/tint/vk-gl-cts/graphicsfuzz/cov-fold-bitwise-and-zero/0.wgsl.expected.ir.fxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Access
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/cov-fold-bitwise-or-full-mask/0.spvasm.expected.ir.dxc.hlsl b/test/tint/vk-gl-cts/graphicsfuzz/cov-fold-bitwise-or-full-mask/0.spvasm.expected.ir.dxc.hlsl
deleted file mode 100644
index bdeab23..0000000
--- a/test/tint/vk-gl-cts/graphicsfuzz/cov-fold-bitwise-or-full-mask/0.spvasm.expected.ir.dxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:198 internal compiler error: Switch() matched no cases. Type: tint::core::ir::If
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/cov-fold-bitwise-or-full-mask/0.spvasm.expected.ir.fxc.hlsl b/test/tint/vk-gl-cts/graphicsfuzz/cov-fold-bitwise-or-full-mask/0.spvasm.expected.ir.fxc.hlsl
deleted file mode 100644
index bdeab23..0000000
--- a/test/tint/vk-gl-cts/graphicsfuzz/cov-fold-bitwise-or-full-mask/0.spvasm.expected.ir.fxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:198 internal compiler error: Switch() matched no cases. Type: tint::core::ir::If
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/cov-fold-bitwise-or-full-mask/0.wgsl.expected.ir.dxc.hlsl b/test/tint/vk-gl-cts/graphicsfuzz/cov-fold-bitwise-or-full-mask/0.wgsl.expected.ir.dxc.hlsl
deleted file mode 100644
index 3f437dc..0000000
--- a/test/tint/vk-gl-cts/graphicsfuzz/cov-fold-bitwise-or-full-mask/0.wgsl.expected.ir.dxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Access
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/cov-fold-bitwise-or-full-mask/0.wgsl.expected.ir.fxc.hlsl b/test/tint/vk-gl-cts/graphicsfuzz/cov-fold-bitwise-or-full-mask/0.wgsl.expected.ir.fxc.hlsl
deleted file mode 100644
index 3f437dc..0000000
--- a/test/tint/vk-gl-cts/graphicsfuzz/cov-fold-bitwise-or-full-mask/0.wgsl.expected.ir.fxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Access
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/cov-fold-bitwise-xor/0-opt.spvasm.expected.ir.dxc.hlsl b/test/tint/vk-gl-cts/graphicsfuzz/cov-fold-bitwise-xor/0-opt.spvasm.expected.ir.dxc.hlsl
deleted file mode 100644
index bdeab23..0000000
--- a/test/tint/vk-gl-cts/graphicsfuzz/cov-fold-bitwise-xor/0-opt.spvasm.expected.ir.dxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:198 internal compiler error: Switch() matched no cases. Type: tint::core::ir::If
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/cov-fold-bitwise-xor/0-opt.spvasm.expected.ir.fxc.hlsl b/test/tint/vk-gl-cts/graphicsfuzz/cov-fold-bitwise-xor/0-opt.spvasm.expected.ir.fxc.hlsl
deleted file mode 100644
index bdeab23..0000000
--- a/test/tint/vk-gl-cts/graphicsfuzz/cov-fold-bitwise-xor/0-opt.spvasm.expected.ir.fxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:198 internal compiler error: Switch() matched no cases. Type: tint::core::ir::If
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/cov-fold-bitwise-xor/0-opt.wgsl.expected.ir.dxc.hlsl b/test/tint/vk-gl-cts/graphicsfuzz/cov-fold-bitwise-xor/0-opt.wgsl.expected.ir.dxc.hlsl
deleted file mode 100644
index bdeab23..0000000
--- a/test/tint/vk-gl-cts/graphicsfuzz/cov-fold-bitwise-xor/0-opt.wgsl.expected.ir.dxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:198 internal compiler error: Switch() matched no cases. Type: tint::core::ir::If
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/cov-fold-bitwise-xor/0-opt.wgsl.expected.ir.fxc.hlsl b/test/tint/vk-gl-cts/graphicsfuzz/cov-fold-bitwise-xor/0-opt.wgsl.expected.ir.fxc.hlsl
deleted file mode 100644
index bdeab23..0000000
--- a/test/tint/vk-gl-cts/graphicsfuzz/cov-fold-bitwise-xor/0-opt.wgsl.expected.ir.fxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:198 internal compiler error: Switch() matched no cases. Type: tint::core::ir::If
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/cov-fold-logical-and-const-variable/0.spvasm.expected.ir.dxc.hlsl b/test/tint/vk-gl-cts/graphicsfuzz/cov-fold-logical-and-const-variable/0.spvasm.expected.ir.dxc.hlsl
deleted file mode 100644
index bdeab23..0000000
--- a/test/tint/vk-gl-cts/graphicsfuzz/cov-fold-logical-and-const-variable/0.spvasm.expected.ir.dxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:198 internal compiler error: Switch() matched no cases. Type: tint::core::ir::If
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/cov-fold-logical-and-const-variable/0.spvasm.expected.ir.fxc.hlsl b/test/tint/vk-gl-cts/graphicsfuzz/cov-fold-logical-and-const-variable/0.spvasm.expected.ir.fxc.hlsl
deleted file mode 100644
index bdeab23..0000000
--- a/test/tint/vk-gl-cts/graphicsfuzz/cov-fold-logical-and-const-variable/0.spvasm.expected.ir.fxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:198 internal compiler error: Switch() matched no cases. Type: tint::core::ir::If
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/cov-fold-logical-and-const-variable/0.wgsl.expected.ir.dxc.hlsl b/test/tint/vk-gl-cts/graphicsfuzz/cov-fold-logical-and-const-variable/0.wgsl.expected.ir.dxc.hlsl
deleted file mode 100644
index bdeab23..0000000
--- a/test/tint/vk-gl-cts/graphicsfuzz/cov-fold-logical-and-const-variable/0.wgsl.expected.ir.dxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:198 internal compiler error: Switch() matched no cases. Type: tint::core::ir::If
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/cov-fold-logical-and-const-variable/0.wgsl.expected.ir.fxc.hlsl b/test/tint/vk-gl-cts/graphicsfuzz/cov-fold-logical-and-const-variable/0.wgsl.expected.ir.fxc.hlsl
deleted file mode 100644
index bdeab23..0000000
--- a/test/tint/vk-gl-cts/graphicsfuzz/cov-fold-logical-and-const-variable/0.wgsl.expected.ir.fxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:198 internal compiler error: Switch() matched no cases. Type: tint::core::ir::If
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/cov-fold-logical-and-constant/0-opt.spvasm.expected.ir.dxc.hlsl b/test/tint/vk-gl-cts/graphicsfuzz/cov-fold-logical-and-constant/0-opt.spvasm.expected.ir.dxc.hlsl
deleted file mode 100644
index adbb0c1..0000000
--- a/test/tint/vk-gl-cts/graphicsfuzz/cov-fold-logical-and-constant/0-opt.spvasm.expected.ir.dxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:198 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Loop
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/cov-fold-logical-and-constant/0-opt.spvasm.expected.ir.fxc.hlsl b/test/tint/vk-gl-cts/graphicsfuzz/cov-fold-logical-and-constant/0-opt.spvasm.expected.ir.fxc.hlsl
deleted file mode 100644
index adbb0c1..0000000
--- a/test/tint/vk-gl-cts/graphicsfuzz/cov-fold-logical-and-constant/0-opt.spvasm.expected.ir.fxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:198 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Loop
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/cov-fold-logical-and-constant/0-opt.wgsl.expected.ir.dxc.hlsl b/test/tint/vk-gl-cts/graphicsfuzz/cov-fold-logical-and-constant/0-opt.wgsl.expected.ir.dxc.hlsl
deleted file mode 100644
index adbb0c1..0000000
--- a/test/tint/vk-gl-cts/graphicsfuzz/cov-fold-logical-and-constant/0-opt.wgsl.expected.ir.dxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:198 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Loop
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/cov-fold-logical-and-constant/0-opt.wgsl.expected.ir.fxc.hlsl b/test/tint/vk-gl-cts/graphicsfuzz/cov-fold-logical-and-constant/0-opt.wgsl.expected.ir.fxc.hlsl
deleted file mode 100644
index adbb0c1..0000000
--- a/test/tint/vk-gl-cts/graphicsfuzz/cov-fold-logical-and-constant/0-opt.wgsl.expected.ir.fxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:198 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Loop
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/cov-fold-logical-or-constant/0.spvasm.expected.ir.dxc.hlsl b/test/tint/vk-gl-cts/graphicsfuzz/cov-fold-logical-or-constant/0.spvasm.expected.ir.dxc.hlsl
deleted file mode 100644
index bdeab23..0000000
--- a/test/tint/vk-gl-cts/graphicsfuzz/cov-fold-logical-or-constant/0.spvasm.expected.ir.dxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:198 internal compiler error: Switch() matched no cases. Type: tint::core::ir::If
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/cov-fold-logical-or-constant/0.spvasm.expected.ir.fxc.hlsl b/test/tint/vk-gl-cts/graphicsfuzz/cov-fold-logical-or-constant/0.spvasm.expected.ir.fxc.hlsl
deleted file mode 100644
index bdeab23..0000000
--- a/test/tint/vk-gl-cts/graphicsfuzz/cov-fold-logical-or-constant/0.spvasm.expected.ir.fxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:198 internal compiler error: Switch() matched no cases. Type: tint::core::ir::If
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/cov-fold-logical-or-constant/0.wgsl.expected.ir.dxc.hlsl b/test/tint/vk-gl-cts/graphicsfuzz/cov-fold-logical-or-constant/0.wgsl.expected.ir.dxc.hlsl
deleted file mode 100644
index 4a2c666..0000000
--- a/test/tint/vk-gl-cts/graphicsfuzz/cov-fold-logical-or-constant/0.wgsl.expected.ir.dxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::LoadVectorElement
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/cov-fold-logical-or-constant/0.wgsl.expected.ir.fxc.hlsl b/test/tint/vk-gl-cts/graphicsfuzz/cov-fold-logical-or-constant/0.wgsl.expected.ir.fxc.hlsl
deleted file mode 100644
index 4a2c666..0000000
--- a/test/tint/vk-gl-cts/graphicsfuzz/cov-fold-logical-or-constant/0.wgsl.expected.ir.fxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::LoadVectorElement
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/cov-fold-negate-min-int-value/0-opt.spvasm.expected.ir.dxc.hlsl b/test/tint/vk-gl-cts/graphicsfuzz/cov-fold-negate-min-int-value/0-opt.spvasm.expected.ir.dxc.hlsl
deleted file mode 100644
index cf7df04..0000000
--- a/test/tint/vk-gl-cts/graphicsfuzz/cov-fold-negate-min-int-value/0-opt.spvasm.expected.ir.dxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::CoreUnary
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/cov-fold-negate-min-int-value/0-opt.spvasm.expected.ir.fxc.hlsl b/test/tint/vk-gl-cts/graphicsfuzz/cov-fold-negate-min-int-value/0-opt.spvasm.expected.ir.fxc.hlsl
deleted file mode 100644
index cf7df04..0000000
--- a/test/tint/vk-gl-cts/graphicsfuzz/cov-fold-negate-min-int-value/0-opt.spvasm.expected.ir.fxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::CoreUnary
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/cov-fold-negate-min-int-value/0-opt.wgsl.expected.ir.dxc.hlsl b/test/tint/vk-gl-cts/graphicsfuzz/cov-fold-negate-min-int-value/0-opt.wgsl.expected.ir.dxc.hlsl
deleted file mode 100644
index cf7df04..0000000
--- a/test/tint/vk-gl-cts/graphicsfuzz/cov-fold-negate-min-int-value/0-opt.wgsl.expected.ir.dxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::CoreUnary
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/cov-fold-negate-min-int-value/0-opt.wgsl.expected.ir.fxc.hlsl b/test/tint/vk-gl-cts/graphicsfuzz/cov-fold-negate-min-int-value/0-opt.wgsl.expected.ir.fxc.hlsl
deleted file mode 100644
index cf7df04..0000000
--- a/test/tint/vk-gl-cts/graphicsfuzz/cov-fold-negate-min-int-value/0-opt.wgsl.expected.ir.fxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::CoreUnary
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/cov-fold-negate-variable/0.spvasm.expected.ir.dxc.hlsl b/test/tint/vk-gl-cts/graphicsfuzz/cov-fold-negate-variable/0.spvasm.expected.ir.dxc.hlsl
deleted file mode 100644
index bdeab23..0000000
--- a/test/tint/vk-gl-cts/graphicsfuzz/cov-fold-negate-variable/0.spvasm.expected.ir.dxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:198 internal compiler error: Switch() matched no cases. Type: tint::core::ir::If
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/cov-fold-negate-variable/0.spvasm.expected.ir.fxc.hlsl b/test/tint/vk-gl-cts/graphicsfuzz/cov-fold-negate-variable/0.spvasm.expected.ir.fxc.hlsl
deleted file mode 100644
index bdeab23..0000000
--- a/test/tint/vk-gl-cts/graphicsfuzz/cov-fold-negate-variable/0.spvasm.expected.ir.fxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:198 internal compiler error: Switch() matched no cases. Type: tint::core::ir::If
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/cov-fold-negate-variable/0.wgsl.expected.ir.dxc.hlsl b/test/tint/vk-gl-cts/graphicsfuzz/cov-fold-negate-variable/0.wgsl.expected.ir.dxc.hlsl
deleted file mode 100644
index bdeab23..0000000
--- a/test/tint/vk-gl-cts/graphicsfuzz/cov-fold-negate-variable/0.wgsl.expected.ir.dxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:198 internal compiler error: Switch() matched no cases. Type: tint::core::ir::If
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/cov-fold-negate-variable/0.wgsl.expected.ir.fxc.hlsl b/test/tint/vk-gl-cts/graphicsfuzz/cov-fold-negate-variable/0.wgsl.expected.ir.fxc.hlsl
deleted file mode 100644
index bdeab23..0000000
--- a/test/tint/vk-gl-cts/graphicsfuzz/cov-fold-negate-variable/0.wgsl.expected.ir.fxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:198 internal compiler error: Switch() matched no cases. Type: tint::core::ir::If
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/cov-fold-shift-right-arithmetic/0.spvasm.expected.ir.dxc.hlsl b/test/tint/vk-gl-cts/graphicsfuzz/cov-fold-shift-right-arithmetic/0.spvasm.expected.ir.dxc.hlsl
deleted file mode 100644
index bdeab23..0000000
--- a/test/tint/vk-gl-cts/graphicsfuzz/cov-fold-shift-right-arithmetic/0.spvasm.expected.ir.dxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:198 internal compiler error: Switch() matched no cases. Type: tint::core::ir::If
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/cov-fold-shift-right-arithmetic/0.spvasm.expected.ir.fxc.hlsl b/test/tint/vk-gl-cts/graphicsfuzz/cov-fold-shift-right-arithmetic/0.spvasm.expected.ir.fxc.hlsl
deleted file mode 100644
index bdeab23..0000000
--- a/test/tint/vk-gl-cts/graphicsfuzz/cov-fold-shift-right-arithmetic/0.spvasm.expected.ir.fxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:198 internal compiler error: Switch() matched no cases. Type: tint::core::ir::If
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/cov-fold-shift-right-arithmetic/0.wgsl.expected.ir.dxc.hlsl b/test/tint/vk-gl-cts/graphicsfuzz/cov-fold-shift-right-arithmetic/0.wgsl.expected.ir.dxc.hlsl
deleted file mode 100644
index bdeab23..0000000
--- a/test/tint/vk-gl-cts/graphicsfuzz/cov-fold-shift-right-arithmetic/0.wgsl.expected.ir.dxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:198 internal compiler error: Switch() matched no cases. Type: tint::core::ir::If
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/cov-fold-shift-right-arithmetic/0.wgsl.expected.ir.fxc.hlsl b/test/tint/vk-gl-cts/graphicsfuzz/cov-fold-shift-right-arithmetic/0.wgsl.expected.ir.fxc.hlsl
deleted file mode 100644
index bdeab23..0000000
--- a/test/tint/vk-gl-cts/graphicsfuzz/cov-fold-shift-right-arithmetic/0.wgsl.expected.ir.fxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:198 internal compiler error: Switch() matched no cases. Type: tint::core::ir::If
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/cov-fold-switch-udiv/0.spvasm.expected.ir.dxc.hlsl b/test/tint/vk-gl-cts/graphicsfuzz/cov-fold-switch-udiv/0.spvasm.expected.ir.dxc.hlsl
deleted file mode 100644
index 27c824a..0000000
--- a/test/tint/vk-gl-cts/graphicsfuzz/cov-fold-switch-udiv/0.spvasm.expected.ir.dxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:198 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Switch
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/cov-fold-switch-udiv/0.spvasm.expected.ir.fxc.hlsl b/test/tint/vk-gl-cts/graphicsfuzz/cov-fold-switch-udiv/0.spvasm.expected.ir.fxc.hlsl
deleted file mode 100644
index 27c824a..0000000
--- a/test/tint/vk-gl-cts/graphicsfuzz/cov-fold-switch-udiv/0.spvasm.expected.ir.fxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:198 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Switch
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/cov-fold-switch-udiv/0.wgsl.expected.ir.dxc.hlsl b/test/tint/vk-gl-cts/graphicsfuzz/cov-fold-switch-udiv/0.wgsl.expected.ir.dxc.hlsl
deleted file mode 100644
index 27c824a..0000000
--- a/test/tint/vk-gl-cts/graphicsfuzz/cov-fold-switch-udiv/0.wgsl.expected.ir.dxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:198 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Switch
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/cov-fold-switch-udiv/0.wgsl.expected.ir.fxc.hlsl b/test/tint/vk-gl-cts/graphicsfuzz/cov-fold-switch-udiv/0.wgsl.expected.ir.fxc.hlsl
deleted file mode 100644
index 27c824a..0000000
--- a/test/tint/vk-gl-cts/graphicsfuzz/cov-fold-switch-udiv/0.wgsl.expected.ir.fxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:198 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Switch
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/cov-folding-clamp-cmp-const-first/0-opt.spvasm.expected.ir.dxc.hlsl b/test/tint/vk-gl-cts/graphicsfuzz/cov-folding-clamp-cmp-const-first/0-opt.spvasm.expected.ir.dxc.hlsl
deleted file mode 100644
index adbb0c1..0000000
--- a/test/tint/vk-gl-cts/graphicsfuzz/cov-folding-clamp-cmp-const-first/0-opt.spvasm.expected.ir.dxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:198 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Loop
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/cov-folding-clamp-cmp-const-first/0-opt.spvasm.expected.ir.fxc.hlsl b/test/tint/vk-gl-cts/graphicsfuzz/cov-folding-clamp-cmp-const-first/0-opt.spvasm.expected.ir.fxc.hlsl
deleted file mode 100644
index adbb0c1..0000000
--- a/test/tint/vk-gl-cts/graphicsfuzz/cov-folding-clamp-cmp-const-first/0-opt.spvasm.expected.ir.fxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:198 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Loop
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/cov-folding-clamp-cmp-const-first/0-opt.wgsl.expected.ir.dxc.hlsl b/test/tint/vk-gl-cts/graphicsfuzz/cov-folding-clamp-cmp-const-first/0-opt.wgsl.expected.ir.dxc.hlsl
deleted file mode 100644
index adbb0c1..0000000
--- a/test/tint/vk-gl-cts/graphicsfuzz/cov-folding-clamp-cmp-const-first/0-opt.wgsl.expected.ir.dxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:198 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Loop
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/cov-folding-clamp-cmp-const-first/0-opt.wgsl.expected.ir.fxc.hlsl b/test/tint/vk-gl-cts/graphicsfuzz/cov-folding-clamp-cmp-const-first/0-opt.wgsl.expected.ir.fxc.hlsl
deleted file mode 100644
index adbb0c1..0000000
--- a/test/tint/vk-gl-cts/graphicsfuzz/cov-folding-clamp-cmp-const-first/0-opt.wgsl.expected.ir.fxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:198 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Loop
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/cov-folding-merge-add-sub-uniform/0-opt.spvasm.expected.ir.dxc.hlsl b/test/tint/vk-gl-cts/graphicsfuzz/cov-folding-merge-add-sub-uniform/0-opt.spvasm.expected.ir.dxc.hlsl
deleted file mode 100644
index bdeab23..0000000
--- a/test/tint/vk-gl-cts/graphicsfuzz/cov-folding-merge-add-sub-uniform/0-opt.spvasm.expected.ir.dxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:198 internal compiler error: Switch() matched no cases. Type: tint::core::ir::If
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/cov-folding-merge-add-sub-uniform/0-opt.spvasm.expected.ir.fxc.hlsl b/test/tint/vk-gl-cts/graphicsfuzz/cov-folding-merge-add-sub-uniform/0-opt.spvasm.expected.ir.fxc.hlsl
deleted file mode 100644
index bdeab23..0000000
--- a/test/tint/vk-gl-cts/graphicsfuzz/cov-folding-merge-add-sub-uniform/0-opt.spvasm.expected.ir.fxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:198 internal compiler error: Switch() matched no cases. Type: tint::core::ir::If
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/cov-folding-merge-add-sub-uniform/0-opt.wgsl.expected.ir.dxc.hlsl b/test/tint/vk-gl-cts/graphicsfuzz/cov-folding-merge-add-sub-uniform/0-opt.wgsl.expected.ir.dxc.hlsl
deleted file mode 100644
index 3f437dc..0000000
--- a/test/tint/vk-gl-cts/graphicsfuzz/cov-folding-merge-add-sub-uniform/0-opt.wgsl.expected.ir.dxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Access
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/cov-folding-merge-add-sub-uniform/0-opt.wgsl.expected.ir.fxc.hlsl b/test/tint/vk-gl-cts/graphicsfuzz/cov-folding-merge-add-sub-uniform/0-opt.wgsl.expected.ir.fxc.hlsl
deleted file mode 100644
index 3f437dc..0000000
--- a/test/tint/vk-gl-cts/graphicsfuzz/cov-folding-merge-add-sub-uniform/0-opt.wgsl.expected.ir.fxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Access
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/cov-folding-rules-construct-extract/0-opt.spvasm.expected.ir.dxc.hlsl b/test/tint/vk-gl-cts/graphicsfuzz/cov-folding-rules-construct-extract/0-opt.spvasm.expected.ir.dxc.hlsl
deleted file mode 100644
index 3f437dc..0000000
--- a/test/tint/vk-gl-cts/graphicsfuzz/cov-folding-rules-construct-extract/0-opt.spvasm.expected.ir.dxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Access
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/cov-folding-rules-construct-extract/0-opt.spvasm.expected.ir.fxc.hlsl b/test/tint/vk-gl-cts/graphicsfuzz/cov-folding-rules-construct-extract/0-opt.spvasm.expected.ir.fxc.hlsl
deleted file mode 100644
index 3f437dc..0000000
--- a/test/tint/vk-gl-cts/graphicsfuzz/cov-folding-rules-construct-extract/0-opt.spvasm.expected.ir.fxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Access
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/cov-folding-rules-construct-extract/0-opt.wgsl.expected.ir.dxc.hlsl b/test/tint/vk-gl-cts/graphicsfuzz/cov-folding-rules-construct-extract/0-opt.wgsl.expected.ir.dxc.hlsl
deleted file mode 100644
index 3f437dc..0000000
--- a/test/tint/vk-gl-cts/graphicsfuzz/cov-folding-rules-construct-extract/0-opt.wgsl.expected.ir.dxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Access
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/cov-folding-rules-construct-extract/0-opt.wgsl.expected.ir.fxc.hlsl b/test/tint/vk-gl-cts/graphicsfuzz/cov-folding-rules-construct-extract/0-opt.wgsl.expected.ir.fxc.hlsl
deleted file mode 100644
index 3f437dc..0000000
--- a/test/tint/vk-gl-cts/graphicsfuzz/cov-folding-rules-construct-extract/0-opt.wgsl.expected.ir.fxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Access
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/cov-folding-rules-dot-extract/0-opt.spvasm.expected.ir.dxc.hlsl b/test/tint/vk-gl-cts/graphicsfuzz/cov-folding-rules-dot-extract/0-opt.spvasm.expected.ir.dxc.hlsl
deleted file mode 100644
index bdeab23..0000000
--- a/test/tint/vk-gl-cts/graphicsfuzz/cov-folding-rules-dot-extract/0-opt.spvasm.expected.ir.dxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:198 internal compiler error: Switch() matched no cases. Type: tint::core::ir::If
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/cov-folding-rules-dot-extract/0-opt.spvasm.expected.ir.fxc.hlsl b/test/tint/vk-gl-cts/graphicsfuzz/cov-folding-rules-dot-extract/0-opt.spvasm.expected.ir.fxc.hlsl
deleted file mode 100644
index bdeab23..0000000
--- a/test/tint/vk-gl-cts/graphicsfuzz/cov-folding-rules-dot-extract/0-opt.spvasm.expected.ir.fxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:198 internal compiler error: Switch() matched no cases. Type: tint::core::ir::If
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/cov-folding-rules-dot-extract/0-opt.wgsl.expected.ir.dxc.hlsl b/test/tint/vk-gl-cts/graphicsfuzz/cov-folding-rules-dot-extract/0-opt.wgsl.expected.ir.dxc.hlsl
deleted file mode 100644
index 3f437dc..0000000
--- a/test/tint/vk-gl-cts/graphicsfuzz/cov-folding-rules-dot-extract/0-opt.wgsl.expected.ir.dxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Access
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/cov-folding-rules-dot-extract/0-opt.wgsl.expected.ir.fxc.hlsl b/test/tint/vk-gl-cts/graphicsfuzz/cov-folding-rules-dot-extract/0-opt.wgsl.expected.ir.fxc.hlsl
deleted file mode 100644
index 3f437dc..0000000
--- a/test/tint/vk-gl-cts/graphicsfuzz/cov-folding-rules-dot-extract/0-opt.wgsl.expected.ir.fxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Access
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/cov-folding-rules-dot-no-extract/0.spvasm.expected.ir.dxc.hlsl b/test/tint/vk-gl-cts/graphicsfuzz/cov-folding-rules-dot-no-extract/0.spvasm.expected.ir.dxc.hlsl
deleted file mode 100644
index bdeab23..0000000
--- a/test/tint/vk-gl-cts/graphicsfuzz/cov-folding-rules-dot-no-extract/0.spvasm.expected.ir.dxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:198 internal compiler error: Switch() matched no cases. Type: tint::core::ir::If
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/cov-folding-rules-dot-no-extract/0.spvasm.expected.ir.fxc.hlsl b/test/tint/vk-gl-cts/graphicsfuzz/cov-folding-rules-dot-no-extract/0.spvasm.expected.ir.fxc.hlsl
deleted file mode 100644
index bdeab23..0000000
--- a/test/tint/vk-gl-cts/graphicsfuzz/cov-folding-rules-dot-no-extract/0.spvasm.expected.ir.fxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:198 internal compiler error: Switch() matched no cases. Type: tint::core::ir::If
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/cov-folding-rules-dot-no-extract/0.wgsl.expected.ir.dxc.hlsl b/test/tint/vk-gl-cts/graphicsfuzz/cov-folding-rules-dot-no-extract/0.wgsl.expected.ir.dxc.hlsl
deleted file mode 100644
index 3f437dc..0000000
--- a/test/tint/vk-gl-cts/graphicsfuzz/cov-folding-rules-dot-no-extract/0.wgsl.expected.ir.dxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Access
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/cov-folding-rules-dot-no-extract/0.wgsl.expected.ir.fxc.hlsl b/test/tint/vk-gl-cts/graphicsfuzz/cov-folding-rules-dot-no-extract/0.wgsl.expected.ir.fxc.hlsl
deleted file mode 100644
index 3f437dc..0000000
--- a/test/tint/vk-gl-cts/graphicsfuzz/cov-folding-rules-dot-no-extract/0.wgsl.expected.ir.fxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Access
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/cov-folding-rules-merge-add-sub/0-opt.spvasm.expected.ir.dxc.hlsl b/test/tint/vk-gl-cts/graphicsfuzz/cov-folding-rules-merge-add-sub/0-opt.spvasm.expected.ir.dxc.hlsl
deleted file mode 100644
index adbb0c1..0000000
--- a/test/tint/vk-gl-cts/graphicsfuzz/cov-folding-rules-merge-add-sub/0-opt.spvasm.expected.ir.dxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:198 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Loop
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/cov-folding-rules-merge-add-sub/0-opt.spvasm.expected.ir.fxc.hlsl b/test/tint/vk-gl-cts/graphicsfuzz/cov-folding-rules-merge-add-sub/0-opt.spvasm.expected.ir.fxc.hlsl
deleted file mode 100644
index adbb0c1..0000000
--- a/test/tint/vk-gl-cts/graphicsfuzz/cov-folding-rules-merge-add-sub/0-opt.spvasm.expected.ir.fxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:198 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Loop
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/cov-folding-rules-merge-add-sub/0-opt.wgsl.expected.ir.dxc.hlsl b/test/tint/vk-gl-cts/graphicsfuzz/cov-folding-rules-merge-add-sub/0-opt.wgsl.expected.ir.dxc.hlsl
deleted file mode 100644
index adbb0c1..0000000
--- a/test/tint/vk-gl-cts/graphicsfuzz/cov-folding-rules-merge-add-sub/0-opt.wgsl.expected.ir.dxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:198 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Loop
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/cov-folding-rules-merge-add-sub/0-opt.wgsl.expected.ir.fxc.hlsl b/test/tint/vk-gl-cts/graphicsfuzz/cov-folding-rules-merge-add-sub/0-opt.wgsl.expected.ir.fxc.hlsl
deleted file mode 100644
index adbb0c1..0000000
--- a/test/tint/vk-gl-cts/graphicsfuzz/cov-folding-rules-merge-add-sub/0-opt.wgsl.expected.ir.fxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:198 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Loop
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/cov-folding-rules-merge-div-mul/0-opt.spvasm.expected.ir.dxc.hlsl b/test/tint/vk-gl-cts/graphicsfuzz/cov-folding-rules-merge-div-mul/0-opt.spvasm.expected.ir.dxc.hlsl
deleted file mode 100644
index 3f437dc..0000000
--- a/test/tint/vk-gl-cts/graphicsfuzz/cov-folding-rules-merge-div-mul/0-opt.spvasm.expected.ir.dxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Access
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/cov-folding-rules-merge-div-mul/0-opt.spvasm.expected.ir.fxc.hlsl b/test/tint/vk-gl-cts/graphicsfuzz/cov-folding-rules-merge-div-mul/0-opt.spvasm.expected.ir.fxc.hlsl
deleted file mode 100644
index 3f437dc..0000000
--- a/test/tint/vk-gl-cts/graphicsfuzz/cov-folding-rules-merge-div-mul/0-opt.spvasm.expected.ir.fxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Access
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/cov-folding-rules-merge-div-mul/0-opt.wgsl.expected.ir.dxc.hlsl b/test/tint/vk-gl-cts/graphicsfuzz/cov-folding-rules-merge-div-mul/0-opt.wgsl.expected.ir.dxc.hlsl
deleted file mode 100644
index 3f437dc..0000000
--- a/test/tint/vk-gl-cts/graphicsfuzz/cov-folding-rules-merge-div-mul/0-opt.wgsl.expected.ir.dxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Access
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/cov-folding-rules-merge-div-mul/0-opt.wgsl.expected.ir.fxc.hlsl b/test/tint/vk-gl-cts/graphicsfuzz/cov-folding-rules-merge-div-mul/0-opt.wgsl.expected.ir.fxc.hlsl
deleted file mode 100644
index 3f437dc..0000000
--- a/test/tint/vk-gl-cts/graphicsfuzz/cov-folding-rules-merge-div-mul/0-opt.wgsl.expected.ir.fxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Access
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/cov-folding-rules-merge-divs/0-opt.spvasm.expected.ir.dxc.hlsl b/test/tint/vk-gl-cts/graphicsfuzz/cov-folding-rules-merge-divs/0-opt.spvasm.expected.ir.dxc.hlsl
deleted file mode 100644
index 3f437dc..0000000
--- a/test/tint/vk-gl-cts/graphicsfuzz/cov-folding-rules-merge-divs/0-opt.spvasm.expected.ir.dxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Access
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/cov-folding-rules-merge-divs/0-opt.spvasm.expected.ir.fxc.hlsl b/test/tint/vk-gl-cts/graphicsfuzz/cov-folding-rules-merge-divs/0-opt.spvasm.expected.ir.fxc.hlsl
deleted file mode 100644
index 3f437dc..0000000
--- a/test/tint/vk-gl-cts/graphicsfuzz/cov-folding-rules-merge-divs/0-opt.spvasm.expected.ir.fxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Access
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/cov-folding-rules-merge-divs/0-opt.wgsl.expected.ir.dxc.hlsl b/test/tint/vk-gl-cts/graphicsfuzz/cov-folding-rules-merge-divs/0-opt.wgsl.expected.ir.dxc.hlsl
deleted file mode 100644
index 3f437dc..0000000
--- a/test/tint/vk-gl-cts/graphicsfuzz/cov-folding-rules-merge-divs/0-opt.wgsl.expected.ir.dxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Access
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/cov-folding-rules-merge-divs/0-opt.wgsl.expected.ir.fxc.hlsl b/test/tint/vk-gl-cts/graphicsfuzz/cov-folding-rules-merge-divs/0-opt.wgsl.expected.ir.fxc.hlsl
deleted file mode 100644
index 3f437dc..0000000
--- a/test/tint/vk-gl-cts/graphicsfuzz/cov-folding-rules-merge-divs/0-opt.wgsl.expected.ir.fxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Access
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/cov-folding-rules-merge-mul-div/0-opt.spvasm.expected.ir.dxc.hlsl b/test/tint/vk-gl-cts/graphicsfuzz/cov-folding-rules-merge-mul-div/0-opt.spvasm.expected.ir.dxc.hlsl
deleted file mode 100644
index 3f437dc..0000000
--- a/test/tint/vk-gl-cts/graphicsfuzz/cov-folding-rules-merge-mul-div/0-opt.spvasm.expected.ir.dxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Access
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/cov-folding-rules-merge-mul-div/0-opt.spvasm.expected.ir.fxc.hlsl b/test/tint/vk-gl-cts/graphicsfuzz/cov-folding-rules-merge-mul-div/0-opt.spvasm.expected.ir.fxc.hlsl
deleted file mode 100644
index 3f437dc..0000000
--- a/test/tint/vk-gl-cts/graphicsfuzz/cov-folding-rules-merge-mul-div/0-opt.spvasm.expected.ir.fxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Access
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/cov-folding-rules-merge-mul-div/0-opt.wgsl.expected.ir.dxc.hlsl b/test/tint/vk-gl-cts/graphicsfuzz/cov-folding-rules-merge-mul-div/0-opt.wgsl.expected.ir.dxc.hlsl
deleted file mode 100644
index 3f437dc..0000000
--- a/test/tint/vk-gl-cts/graphicsfuzz/cov-folding-rules-merge-mul-div/0-opt.wgsl.expected.ir.dxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Access
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/cov-folding-rules-merge-mul-div/0-opt.wgsl.expected.ir.fxc.hlsl b/test/tint/vk-gl-cts/graphicsfuzz/cov-folding-rules-merge-mul-div/0-opt.wgsl.expected.ir.fxc.hlsl
deleted file mode 100644
index 3f437dc..0000000
--- a/test/tint/vk-gl-cts/graphicsfuzz/cov-folding-rules-merge-mul-div/0-opt.wgsl.expected.ir.fxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Access
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/cov-folding-rules-merge-sub-add/0-opt.spvasm.expected.ir.dxc.hlsl b/test/tint/vk-gl-cts/graphicsfuzz/cov-folding-rules-merge-sub-add/0-opt.spvasm.expected.ir.dxc.hlsl
deleted file mode 100644
index adbb0c1..0000000
--- a/test/tint/vk-gl-cts/graphicsfuzz/cov-folding-rules-merge-sub-add/0-opt.spvasm.expected.ir.dxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:198 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Loop
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/cov-folding-rules-merge-sub-add/0-opt.spvasm.expected.ir.fxc.hlsl b/test/tint/vk-gl-cts/graphicsfuzz/cov-folding-rules-merge-sub-add/0-opt.spvasm.expected.ir.fxc.hlsl
deleted file mode 100644
index adbb0c1..0000000
--- a/test/tint/vk-gl-cts/graphicsfuzz/cov-folding-rules-merge-sub-add/0-opt.spvasm.expected.ir.fxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:198 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Loop
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/cov-folding-rules-merge-sub-add/0-opt.wgsl.expected.ir.dxc.hlsl b/test/tint/vk-gl-cts/graphicsfuzz/cov-folding-rules-merge-sub-add/0-opt.wgsl.expected.ir.dxc.hlsl
deleted file mode 100644
index adbb0c1..0000000
--- a/test/tint/vk-gl-cts/graphicsfuzz/cov-folding-rules-merge-sub-add/0-opt.wgsl.expected.ir.dxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:198 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Loop
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/cov-folding-rules-merge-sub-add/0-opt.wgsl.expected.ir.fxc.hlsl b/test/tint/vk-gl-cts/graphicsfuzz/cov-folding-rules-merge-sub-add/0-opt.wgsl.expected.ir.fxc.hlsl
deleted file mode 100644
index adbb0c1..0000000
--- a/test/tint/vk-gl-cts/graphicsfuzz/cov-folding-rules-merge-sub-add/0-opt.wgsl.expected.ir.fxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:198 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Loop
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/cov-folding-rules-merge-sub-sub/0-opt.spvasm.expected.ir.dxc.hlsl b/test/tint/vk-gl-cts/graphicsfuzz/cov-folding-rules-merge-sub-sub/0-opt.spvasm.expected.ir.dxc.hlsl
deleted file mode 100644
index adbb0c1..0000000
--- a/test/tint/vk-gl-cts/graphicsfuzz/cov-folding-rules-merge-sub-sub/0-opt.spvasm.expected.ir.dxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:198 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Loop
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/cov-folding-rules-merge-sub-sub/0-opt.spvasm.expected.ir.fxc.hlsl b/test/tint/vk-gl-cts/graphicsfuzz/cov-folding-rules-merge-sub-sub/0-opt.spvasm.expected.ir.fxc.hlsl
deleted file mode 100644
index adbb0c1..0000000
--- a/test/tint/vk-gl-cts/graphicsfuzz/cov-folding-rules-merge-sub-sub/0-opt.spvasm.expected.ir.fxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:198 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Loop
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/cov-folding-rules-merge-sub-sub/0-opt.wgsl.expected.ir.dxc.hlsl b/test/tint/vk-gl-cts/graphicsfuzz/cov-folding-rules-merge-sub-sub/0-opt.wgsl.expected.ir.dxc.hlsl
deleted file mode 100644
index adbb0c1..0000000
--- a/test/tint/vk-gl-cts/graphicsfuzz/cov-folding-rules-merge-sub-sub/0-opt.wgsl.expected.ir.dxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:198 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Loop
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/cov-folding-rules-merge-sub-sub/0-opt.wgsl.expected.ir.fxc.hlsl b/test/tint/vk-gl-cts/graphicsfuzz/cov-folding-rules-merge-sub-sub/0-opt.wgsl.expected.ir.fxc.hlsl
deleted file mode 100644
index adbb0c1..0000000
--- a/test/tint/vk-gl-cts/graphicsfuzz/cov-folding-rules-merge-sub-sub/0-opt.wgsl.expected.ir.fxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:198 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Loop
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/cov-folding-rules-merge-var-sub/0-opt.spvasm.expected.ir.dxc.hlsl b/test/tint/vk-gl-cts/graphicsfuzz/cov-folding-rules-merge-var-sub/0-opt.spvasm.expected.ir.dxc.hlsl
deleted file mode 100644
index 3f437dc..0000000
--- a/test/tint/vk-gl-cts/graphicsfuzz/cov-folding-rules-merge-var-sub/0-opt.spvasm.expected.ir.dxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Access
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/cov-folding-rules-merge-var-sub/0-opt.spvasm.expected.ir.fxc.hlsl b/test/tint/vk-gl-cts/graphicsfuzz/cov-folding-rules-merge-var-sub/0-opt.spvasm.expected.ir.fxc.hlsl
deleted file mode 100644
index 3f437dc..0000000
--- a/test/tint/vk-gl-cts/graphicsfuzz/cov-folding-rules-merge-var-sub/0-opt.spvasm.expected.ir.fxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Access
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/cov-folding-rules-merge-var-sub/0-opt.wgsl.expected.ir.dxc.hlsl b/test/tint/vk-gl-cts/graphicsfuzz/cov-folding-rules-merge-var-sub/0-opt.wgsl.expected.ir.dxc.hlsl
deleted file mode 100644
index 3f437dc..0000000
--- a/test/tint/vk-gl-cts/graphicsfuzz/cov-folding-rules-merge-var-sub/0-opt.wgsl.expected.ir.dxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Access
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/cov-folding-rules-merge-var-sub/0-opt.wgsl.expected.ir.fxc.hlsl b/test/tint/vk-gl-cts/graphicsfuzz/cov-folding-rules-merge-var-sub/0-opt.wgsl.expected.ir.fxc.hlsl
deleted file mode 100644
index 3f437dc..0000000
--- a/test/tint/vk-gl-cts/graphicsfuzz/cov-folding-rules-merge-var-sub/0-opt.wgsl.expected.ir.fxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Access
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/cov-folding-rules-mix-uniform-weight/0-opt.spvasm.expected.ir.dxc.hlsl b/test/tint/vk-gl-cts/graphicsfuzz/cov-folding-rules-mix-uniform-weight/0-opt.spvasm.expected.ir.dxc.hlsl
deleted file mode 100644
index c6e1d96..0000000
--- a/test/tint/vk-gl-cts/graphicsfuzz/cov-folding-rules-mix-uniform-weight/0-opt.spvasm.expected.ir.dxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Construct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/cov-folding-rules-mix-uniform-weight/0-opt.spvasm.expected.ir.fxc.hlsl b/test/tint/vk-gl-cts/graphicsfuzz/cov-folding-rules-mix-uniform-weight/0-opt.spvasm.expected.ir.fxc.hlsl
deleted file mode 100644
index c6e1d96..0000000
--- a/test/tint/vk-gl-cts/graphicsfuzz/cov-folding-rules-mix-uniform-weight/0-opt.spvasm.expected.ir.fxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Construct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/cov-folding-rules-mix-uniform-weight/0-opt.wgsl.expected.ir.dxc.hlsl b/test/tint/vk-gl-cts/graphicsfuzz/cov-folding-rules-mix-uniform-weight/0-opt.wgsl.expected.ir.dxc.hlsl
deleted file mode 100644
index 3f437dc..0000000
--- a/test/tint/vk-gl-cts/graphicsfuzz/cov-folding-rules-mix-uniform-weight/0-opt.wgsl.expected.ir.dxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Access
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/cov-folding-rules-mix-uniform-weight/0-opt.wgsl.expected.ir.fxc.hlsl b/test/tint/vk-gl-cts/graphicsfuzz/cov-folding-rules-mix-uniform-weight/0-opt.wgsl.expected.ir.fxc.hlsl
deleted file mode 100644
index 3f437dc..0000000
--- a/test/tint/vk-gl-cts/graphicsfuzz/cov-folding-rules-mix-uniform-weight/0-opt.wgsl.expected.ir.fxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Access
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/cov-folding-rules-negate-div/0-opt.spvasm.expected.ir.dxc.hlsl b/test/tint/vk-gl-cts/graphicsfuzz/cov-folding-rules-negate-div/0-opt.spvasm.expected.ir.dxc.hlsl
deleted file mode 100644
index bdeab23..0000000
--- a/test/tint/vk-gl-cts/graphicsfuzz/cov-folding-rules-negate-div/0-opt.spvasm.expected.ir.dxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:198 internal compiler error: Switch() matched no cases. Type: tint::core::ir::If
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/cov-folding-rules-negate-div/0-opt.spvasm.expected.ir.fxc.hlsl b/test/tint/vk-gl-cts/graphicsfuzz/cov-folding-rules-negate-div/0-opt.spvasm.expected.ir.fxc.hlsl
deleted file mode 100644
index bdeab23..0000000
--- a/test/tint/vk-gl-cts/graphicsfuzz/cov-folding-rules-negate-div/0-opt.spvasm.expected.ir.fxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:198 internal compiler error: Switch() matched no cases. Type: tint::core::ir::If
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/cov-folding-rules-negate-div/0-opt.wgsl.expected.ir.dxc.hlsl b/test/tint/vk-gl-cts/graphicsfuzz/cov-folding-rules-negate-div/0-opt.wgsl.expected.ir.dxc.hlsl
deleted file mode 100644
index 3f437dc..0000000
--- a/test/tint/vk-gl-cts/graphicsfuzz/cov-folding-rules-negate-div/0-opt.wgsl.expected.ir.dxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Access
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/cov-folding-rules-negate-div/0-opt.wgsl.expected.ir.fxc.hlsl b/test/tint/vk-gl-cts/graphicsfuzz/cov-folding-rules-negate-div/0-opt.wgsl.expected.ir.fxc.hlsl
deleted file mode 100644
index 3f437dc..0000000
--- a/test/tint/vk-gl-cts/graphicsfuzz/cov-folding-rules-negate-div/0-opt.wgsl.expected.ir.fxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Access
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/cov-folding-rules-negate-sub/0-opt.spvasm.expected.ir.dxc.hlsl b/test/tint/vk-gl-cts/graphicsfuzz/cov-folding-rules-negate-sub/0-opt.spvasm.expected.ir.dxc.hlsl
deleted file mode 100644
index cf7df04..0000000
--- a/test/tint/vk-gl-cts/graphicsfuzz/cov-folding-rules-negate-sub/0-opt.spvasm.expected.ir.dxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::CoreUnary
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/cov-folding-rules-negate-sub/0-opt.spvasm.expected.ir.fxc.hlsl b/test/tint/vk-gl-cts/graphicsfuzz/cov-folding-rules-negate-sub/0-opt.spvasm.expected.ir.fxc.hlsl
deleted file mode 100644
index cf7df04..0000000
--- a/test/tint/vk-gl-cts/graphicsfuzz/cov-folding-rules-negate-sub/0-opt.spvasm.expected.ir.fxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::CoreUnary
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/cov-folding-rules-negate-sub/0-opt.wgsl.expected.ir.dxc.hlsl b/test/tint/vk-gl-cts/graphicsfuzz/cov-folding-rules-negate-sub/0-opt.wgsl.expected.ir.dxc.hlsl
deleted file mode 100644
index 3f437dc..0000000
--- a/test/tint/vk-gl-cts/graphicsfuzz/cov-folding-rules-negate-sub/0-opt.wgsl.expected.ir.dxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Access
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/cov-folding-rules-negate-sub/0-opt.wgsl.expected.ir.fxc.hlsl b/test/tint/vk-gl-cts/graphicsfuzz/cov-folding-rules-negate-sub/0-opt.wgsl.expected.ir.fxc.hlsl
deleted file mode 100644
index 3f437dc..0000000
--- a/test/tint/vk-gl-cts/graphicsfuzz/cov-folding-rules-negate-sub/0-opt.wgsl.expected.ir.fxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Access
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/cov-folding-rules-redundant-mix/0-opt.spvasm.expected.ir.dxc.hlsl b/test/tint/vk-gl-cts/graphicsfuzz/cov-folding-rules-redundant-mix/0-opt.spvasm.expected.ir.dxc.hlsl
deleted file mode 100644
index bdeab23..0000000
--- a/test/tint/vk-gl-cts/graphicsfuzz/cov-folding-rules-redundant-mix/0-opt.spvasm.expected.ir.dxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:198 internal compiler error: Switch() matched no cases. Type: tint::core::ir::If
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/cov-folding-rules-redundant-mix/0-opt.spvasm.expected.ir.fxc.hlsl b/test/tint/vk-gl-cts/graphicsfuzz/cov-folding-rules-redundant-mix/0-opt.spvasm.expected.ir.fxc.hlsl
deleted file mode 100644
index bdeab23..0000000
--- a/test/tint/vk-gl-cts/graphicsfuzz/cov-folding-rules-redundant-mix/0-opt.spvasm.expected.ir.fxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:198 internal compiler error: Switch() matched no cases. Type: tint::core::ir::If
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/cov-folding-rules-redundant-mix/0-opt.wgsl.expected.ir.dxc.hlsl b/test/tint/vk-gl-cts/graphicsfuzz/cov-folding-rules-redundant-mix/0-opt.wgsl.expected.ir.dxc.hlsl
deleted file mode 100644
index 3f437dc..0000000
--- a/test/tint/vk-gl-cts/graphicsfuzz/cov-folding-rules-redundant-mix/0-opt.wgsl.expected.ir.dxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Access
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/cov-folding-rules-redundant-mix/0-opt.wgsl.expected.ir.fxc.hlsl b/test/tint/vk-gl-cts/graphicsfuzz/cov-folding-rules-redundant-mix/0-opt.wgsl.expected.ir.fxc.hlsl
deleted file mode 100644
index 3f437dc..0000000
--- a/test/tint/vk-gl-cts/graphicsfuzz/cov-folding-rules-redundant-mix/0-opt.wgsl.expected.ir.fxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Access
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/cov-folding-rules-shuffle-extract/0-opt.spvasm.expected.ir.dxc.hlsl b/test/tint/vk-gl-cts/graphicsfuzz/cov-folding-rules-shuffle-extract/0-opt.spvasm.expected.ir.dxc.hlsl
deleted file mode 100644
index bdeab23..0000000
--- a/test/tint/vk-gl-cts/graphicsfuzz/cov-folding-rules-shuffle-extract/0-opt.spvasm.expected.ir.dxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:198 internal compiler error: Switch() matched no cases. Type: tint::core::ir::If
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/cov-folding-rules-shuffle-extract/0-opt.spvasm.expected.ir.fxc.hlsl b/test/tint/vk-gl-cts/graphicsfuzz/cov-folding-rules-shuffle-extract/0-opt.spvasm.expected.ir.fxc.hlsl
deleted file mode 100644
index bdeab23..0000000
--- a/test/tint/vk-gl-cts/graphicsfuzz/cov-folding-rules-shuffle-extract/0-opt.spvasm.expected.ir.fxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:198 internal compiler error: Switch() matched no cases. Type: tint::core::ir::If
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/cov-folding-rules-shuffle-extract/0-opt.wgsl.expected.ir.dxc.hlsl b/test/tint/vk-gl-cts/graphicsfuzz/cov-folding-rules-shuffle-extract/0-opt.wgsl.expected.ir.dxc.hlsl
deleted file mode 100644
index 3f437dc..0000000
--- a/test/tint/vk-gl-cts/graphicsfuzz/cov-folding-rules-shuffle-extract/0-opt.wgsl.expected.ir.dxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Access
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/cov-folding-rules-shuffle-extract/0-opt.wgsl.expected.ir.fxc.hlsl b/test/tint/vk-gl-cts/graphicsfuzz/cov-folding-rules-shuffle-extract/0-opt.wgsl.expected.ir.fxc.hlsl
deleted file mode 100644
index 3f437dc..0000000
--- a/test/tint/vk-gl-cts/graphicsfuzz/cov-folding-rules-shuffle-extract/0-opt.wgsl.expected.ir.fxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Access
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/cov-folding-rules-shuffle-mix/0-opt.spvasm.expected.ir.dxc.hlsl b/test/tint/vk-gl-cts/graphicsfuzz/cov-folding-rules-shuffle-mix/0-opt.spvasm.expected.ir.dxc.hlsl
deleted file mode 100644
index c6e1d96..0000000
--- a/test/tint/vk-gl-cts/graphicsfuzz/cov-folding-rules-shuffle-mix/0-opt.spvasm.expected.ir.dxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Construct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/cov-folding-rules-shuffle-mix/0-opt.spvasm.expected.ir.fxc.hlsl b/test/tint/vk-gl-cts/graphicsfuzz/cov-folding-rules-shuffle-mix/0-opt.spvasm.expected.ir.fxc.hlsl
deleted file mode 100644
index c6e1d96..0000000
--- a/test/tint/vk-gl-cts/graphicsfuzz/cov-folding-rules-shuffle-mix/0-opt.spvasm.expected.ir.fxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Construct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/cov-folding-rules-shuffle-mix/0-opt.wgsl.expected.ir.dxc.hlsl b/test/tint/vk-gl-cts/graphicsfuzz/cov-folding-rules-shuffle-mix/0-opt.wgsl.expected.ir.dxc.hlsl
deleted file mode 100644
index 4a2c666..0000000
--- a/test/tint/vk-gl-cts/graphicsfuzz/cov-folding-rules-shuffle-mix/0-opt.wgsl.expected.ir.dxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::LoadVectorElement
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/cov-folding-rules-shuffle-mix/0-opt.wgsl.expected.ir.fxc.hlsl b/test/tint/vk-gl-cts/graphicsfuzz/cov-folding-rules-shuffle-mix/0-opt.wgsl.expected.ir.fxc.hlsl
deleted file mode 100644
index 4a2c666..0000000
--- a/test/tint/vk-gl-cts/graphicsfuzz/cov-folding-rules-shuffle-mix/0-opt.wgsl.expected.ir.fxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::LoadVectorElement
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/cov-folding-rules-split-vector-init/0-opt.spvasm.expected.ir.dxc.hlsl b/test/tint/vk-gl-cts/graphicsfuzz/cov-folding-rules-split-vector-init/0-opt.spvasm.expected.ir.dxc.hlsl
deleted file mode 100644
index c6e1d96..0000000
--- a/test/tint/vk-gl-cts/graphicsfuzz/cov-folding-rules-split-vector-init/0-opt.spvasm.expected.ir.dxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Construct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/cov-folding-rules-split-vector-init/0-opt.spvasm.expected.ir.fxc.hlsl b/test/tint/vk-gl-cts/graphicsfuzz/cov-folding-rules-split-vector-init/0-opt.spvasm.expected.ir.fxc.hlsl
deleted file mode 100644
index c6e1d96..0000000
--- a/test/tint/vk-gl-cts/graphicsfuzz/cov-folding-rules-split-vector-init/0-opt.spvasm.expected.ir.fxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Construct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/cov-folding-rules-split-vector-init/0-opt.wgsl.expected.ir.dxc.hlsl b/test/tint/vk-gl-cts/graphicsfuzz/cov-folding-rules-split-vector-init/0-opt.wgsl.expected.ir.dxc.hlsl
deleted file mode 100644
index c6e1d96..0000000
--- a/test/tint/vk-gl-cts/graphicsfuzz/cov-folding-rules-split-vector-init/0-opt.wgsl.expected.ir.dxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Construct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/cov-folding-rules-split-vector-init/0-opt.wgsl.expected.ir.fxc.hlsl b/test/tint/vk-gl-cts/graphicsfuzz/cov-folding-rules-split-vector-init/0-opt.wgsl.expected.ir.fxc.hlsl
deleted file mode 100644
index c6e1d96..0000000
--- a/test/tint/vk-gl-cts/graphicsfuzz/cov-folding-rules-split-vector-init/0-opt.wgsl.expected.ir.fxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Construct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/cov-folding-rules-vec-mix-uniform/0-opt.spvasm.expected.ir.dxc.hlsl b/test/tint/vk-gl-cts/graphicsfuzz/cov-folding-rules-vec-mix-uniform/0-opt.spvasm.expected.ir.dxc.hlsl
deleted file mode 100644
index 3f437dc..0000000
--- a/test/tint/vk-gl-cts/graphicsfuzz/cov-folding-rules-vec-mix-uniform/0-opt.spvasm.expected.ir.dxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Access
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/cov-folding-rules-vec-mix-uniform/0-opt.spvasm.expected.ir.fxc.hlsl b/test/tint/vk-gl-cts/graphicsfuzz/cov-folding-rules-vec-mix-uniform/0-opt.spvasm.expected.ir.fxc.hlsl
deleted file mode 100644
index 3f437dc..0000000
--- a/test/tint/vk-gl-cts/graphicsfuzz/cov-folding-rules-vec-mix-uniform/0-opt.spvasm.expected.ir.fxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Access
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/cov-folding-rules-vec-mix-uniform/0-opt.wgsl.expected.ir.dxc.hlsl b/test/tint/vk-gl-cts/graphicsfuzz/cov-folding-rules-vec-mix-uniform/0-opt.wgsl.expected.ir.dxc.hlsl
deleted file mode 100644
index 3f437dc..0000000
--- a/test/tint/vk-gl-cts/graphicsfuzz/cov-folding-rules-vec-mix-uniform/0-opt.wgsl.expected.ir.dxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Access
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/cov-folding-rules-vec-mix-uniform/0-opt.wgsl.expected.ir.fxc.hlsl b/test/tint/vk-gl-cts/graphicsfuzz/cov-folding-rules-vec-mix-uniform/0-opt.wgsl.expected.ir.fxc.hlsl
deleted file mode 100644
index 3f437dc..0000000
--- a/test/tint/vk-gl-cts/graphicsfuzz/cov-folding-rules-vec-mix-uniform/0-opt.wgsl.expected.ir.fxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Access
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/cov-for-array-initializing-modulo/0-opt.spvasm.expected.ir.dxc.hlsl b/test/tint/vk-gl-cts/graphicsfuzz/cov-for-array-initializing-modulo/0-opt.spvasm.expected.ir.dxc.hlsl
deleted file mode 100644
index 3f437dc..0000000
--- a/test/tint/vk-gl-cts/graphicsfuzz/cov-for-array-initializing-modulo/0-opt.spvasm.expected.ir.dxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Access
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/cov-for-array-initializing-modulo/0-opt.spvasm.expected.ir.fxc.hlsl b/test/tint/vk-gl-cts/graphicsfuzz/cov-for-array-initializing-modulo/0-opt.spvasm.expected.ir.fxc.hlsl
deleted file mode 100644
index 3f437dc..0000000
--- a/test/tint/vk-gl-cts/graphicsfuzz/cov-for-array-initializing-modulo/0-opt.spvasm.expected.ir.fxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Access
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/cov-for-array-initializing-modulo/0-opt.wgsl.expected.ir.dxc.hlsl b/test/tint/vk-gl-cts/graphicsfuzz/cov-for-array-initializing-modulo/0-opt.wgsl.expected.ir.dxc.hlsl
deleted file mode 100644
index 3f437dc..0000000
--- a/test/tint/vk-gl-cts/graphicsfuzz/cov-for-array-initializing-modulo/0-opt.wgsl.expected.ir.dxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Access
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/cov-for-array-initializing-modulo/0-opt.wgsl.expected.ir.fxc.hlsl b/test/tint/vk-gl-cts/graphicsfuzz/cov-for-array-initializing-modulo/0-opt.wgsl.expected.ir.fxc.hlsl
deleted file mode 100644
index 3f437dc..0000000
--- a/test/tint/vk-gl-cts/graphicsfuzz/cov-for-array-initializing-modulo/0-opt.wgsl.expected.ir.fxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Access
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/cov-for-loop-min-increment-array-element/0-opt.spvasm.expected.ir.dxc.hlsl b/test/tint/vk-gl-cts/graphicsfuzz/cov-for-loop-min-increment-array-element/0-opt.spvasm.expected.ir.dxc.hlsl
deleted file mode 100644
index c6e1d96..0000000
--- a/test/tint/vk-gl-cts/graphicsfuzz/cov-for-loop-min-increment-array-element/0-opt.spvasm.expected.ir.dxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Construct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/cov-for-loop-min-increment-array-element/0-opt.spvasm.expected.ir.fxc.hlsl b/test/tint/vk-gl-cts/graphicsfuzz/cov-for-loop-min-increment-array-element/0-opt.spvasm.expected.ir.fxc.hlsl
deleted file mode 100644
index c6e1d96..0000000
--- a/test/tint/vk-gl-cts/graphicsfuzz/cov-for-loop-min-increment-array-element/0-opt.spvasm.expected.ir.fxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Construct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/cov-for-loop-min-increment-array-element/0-opt.wgsl.expected.ir.dxc.hlsl b/test/tint/vk-gl-cts/graphicsfuzz/cov-for-loop-min-increment-array-element/0-opt.wgsl.expected.ir.dxc.hlsl
deleted file mode 100644
index 3f437dc..0000000
--- a/test/tint/vk-gl-cts/graphicsfuzz/cov-for-loop-min-increment-array-element/0-opt.wgsl.expected.ir.dxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Access
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/cov-for-loop-min-increment-array-element/0-opt.wgsl.expected.ir.fxc.hlsl b/test/tint/vk-gl-cts/graphicsfuzz/cov-for-loop-min-increment-array-element/0-opt.wgsl.expected.ir.fxc.hlsl
deleted file mode 100644
index 3f437dc..0000000
--- a/test/tint/vk-gl-cts/graphicsfuzz/cov-for-loop-min-increment-array-element/0-opt.wgsl.expected.ir.fxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Access
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/cov-for-switch-fallthrough/0-opt.spvasm.expected.ir.dxc.hlsl b/test/tint/vk-gl-cts/graphicsfuzz/cov-for-switch-fallthrough/0-opt.spvasm.expected.ir.dxc.hlsl
deleted file mode 100644
index 3f437dc..0000000
--- a/test/tint/vk-gl-cts/graphicsfuzz/cov-for-switch-fallthrough/0-opt.spvasm.expected.ir.dxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Access
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/cov-for-switch-fallthrough/0-opt.spvasm.expected.ir.fxc.hlsl b/test/tint/vk-gl-cts/graphicsfuzz/cov-for-switch-fallthrough/0-opt.spvasm.expected.ir.fxc.hlsl
deleted file mode 100644
index 3f437dc..0000000
--- a/test/tint/vk-gl-cts/graphicsfuzz/cov-for-switch-fallthrough/0-opt.spvasm.expected.ir.fxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Access
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/cov-for-switch-fallthrough/0-opt.wgsl.expected.ir.dxc.hlsl b/test/tint/vk-gl-cts/graphicsfuzz/cov-for-switch-fallthrough/0-opt.wgsl.expected.ir.dxc.hlsl
deleted file mode 100644
index 3f437dc..0000000
--- a/test/tint/vk-gl-cts/graphicsfuzz/cov-for-switch-fallthrough/0-opt.wgsl.expected.ir.dxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Access
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/cov-for-switch-fallthrough/0-opt.wgsl.expected.ir.fxc.hlsl b/test/tint/vk-gl-cts/graphicsfuzz/cov-for-switch-fallthrough/0-opt.wgsl.expected.ir.fxc.hlsl
deleted file mode 100644
index 3f437dc..0000000
--- a/test/tint/vk-gl-cts/graphicsfuzz/cov-for-switch-fallthrough/0-opt.wgsl.expected.ir.fxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Access
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/cov-fract-asin-undefined-never-used/0-opt.spvasm.expected.ir.dxc.hlsl b/test/tint/vk-gl-cts/graphicsfuzz/cov-fract-asin-undefined-never-used/0-opt.spvasm.expected.ir.dxc.hlsl
deleted file mode 100644
index bdeab23..0000000
--- a/test/tint/vk-gl-cts/graphicsfuzz/cov-fract-asin-undefined-never-used/0-opt.spvasm.expected.ir.dxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:198 internal compiler error: Switch() matched no cases. Type: tint::core::ir::If
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/cov-fract-asin-undefined-never-used/0-opt.spvasm.expected.ir.fxc.hlsl b/test/tint/vk-gl-cts/graphicsfuzz/cov-fract-asin-undefined-never-used/0-opt.spvasm.expected.ir.fxc.hlsl
deleted file mode 100644
index bdeab23..0000000
--- a/test/tint/vk-gl-cts/graphicsfuzz/cov-fract-asin-undefined-never-used/0-opt.spvasm.expected.ir.fxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:198 internal compiler error: Switch() matched no cases. Type: tint::core::ir::If
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/cov-fract-asin-undefined-never-used/0-opt.wgsl.expected.ir.dxc.hlsl b/test/tint/vk-gl-cts/graphicsfuzz/cov-fract-asin-undefined-never-used/0-opt.wgsl.expected.ir.dxc.hlsl
deleted file mode 100644
index 4a2c666..0000000
--- a/test/tint/vk-gl-cts/graphicsfuzz/cov-fract-asin-undefined-never-used/0-opt.wgsl.expected.ir.dxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::LoadVectorElement
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/cov-fract-asin-undefined-never-used/0-opt.wgsl.expected.ir.fxc.hlsl b/test/tint/vk-gl-cts/graphicsfuzz/cov-fract-asin-undefined-never-used/0-opt.wgsl.expected.ir.fxc.hlsl
deleted file mode 100644
index 4a2c666..0000000
--- a/test/tint/vk-gl-cts/graphicsfuzz/cov-fract-asin-undefined-never-used/0-opt.wgsl.expected.ir.fxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::LoadVectorElement
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/cov-fract-smoothstep-undefined/0-opt.spvasm.expected.ir.dxc.hlsl b/test/tint/vk-gl-cts/graphicsfuzz/cov-fract-smoothstep-undefined/0-opt.spvasm.expected.ir.dxc.hlsl
deleted file mode 100644
index c6e1d96..0000000
--- a/test/tint/vk-gl-cts/graphicsfuzz/cov-fract-smoothstep-undefined/0-opt.spvasm.expected.ir.dxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Construct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/cov-fract-smoothstep-undefined/0-opt.spvasm.expected.ir.fxc.hlsl b/test/tint/vk-gl-cts/graphicsfuzz/cov-fract-smoothstep-undefined/0-opt.spvasm.expected.ir.fxc.hlsl
deleted file mode 100644
index c6e1d96..0000000
--- a/test/tint/vk-gl-cts/graphicsfuzz/cov-fract-smoothstep-undefined/0-opt.spvasm.expected.ir.fxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Construct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/cov-fract-smoothstep-undefined/0-opt.wgsl.expected.ir.dxc.hlsl b/test/tint/vk-gl-cts/graphicsfuzz/cov-fract-smoothstep-undefined/0-opt.wgsl.expected.ir.dxc.hlsl
deleted file mode 100644
index 3f437dc..0000000
--- a/test/tint/vk-gl-cts/graphicsfuzz/cov-fract-smoothstep-undefined/0-opt.wgsl.expected.ir.dxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Access
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/cov-fract-smoothstep-undefined/0-opt.wgsl.expected.ir.fxc.hlsl b/test/tint/vk-gl-cts/graphicsfuzz/cov-fract-smoothstep-undefined/0-opt.wgsl.expected.ir.fxc.hlsl
deleted file mode 100644
index 3f437dc..0000000
--- a/test/tint/vk-gl-cts/graphicsfuzz/cov-fract-smoothstep-undefined/0-opt.wgsl.expected.ir.fxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Access
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/cov-fragcoord-bitwise-not/0-opt.spvasm.expected.ir.dxc.hlsl b/test/tint/vk-gl-cts/graphicsfuzz/cov-fragcoord-bitwise-not/0-opt.spvasm.expected.ir.dxc.hlsl
deleted file mode 100644
index 48e23f4..0000000
--- a/test/tint/vk-gl-cts/graphicsfuzz/cov-fragcoord-bitwise-not/0-opt.spvasm.expected.ir.dxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Convert
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/cov-fragcoord-bitwise-not/0-opt.spvasm.expected.ir.fxc.hlsl b/test/tint/vk-gl-cts/graphicsfuzz/cov-fragcoord-bitwise-not/0-opt.spvasm.expected.ir.fxc.hlsl
deleted file mode 100644
index 48e23f4..0000000
--- a/test/tint/vk-gl-cts/graphicsfuzz/cov-fragcoord-bitwise-not/0-opt.spvasm.expected.ir.fxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Convert
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/cov-fragcoord-bitwise-not/0-opt.wgsl.expected.ir.dxc.hlsl b/test/tint/vk-gl-cts/graphicsfuzz/cov-fragcoord-bitwise-not/0-opt.wgsl.expected.ir.dxc.hlsl
deleted file mode 100644
index 4a2c666..0000000
--- a/test/tint/vk-gl-cts/graphicsfuzz/cov-fragcoord-bitwise-not/0-opt.wgsl.expected.ir.dxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::LoadVectorElement
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/cov-fragcoord-bitwise-not/0-opt.wgsl.expected.ir.fxc.hlsl b/test/tint/vk-gl-cts/graphicsfuzz/cov-fragcoord-bitwise-not/0-opt.wgsl.expected.ir.fxc.hlsl
deleted file mode 100644
index 4a2c666..0000000
--- a/test/tint/vk-gl-cts/graphicsfuzz/cov-fragcoord-bitwise-not/0-opt.wgsl.expected.ir.fxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::LoadVectorElement
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/cov-fragcoord-clamp-array-access/0-opt.spvasm.expected.ir.dxc.hlsl b/test/tint/vk-gl-cts/graphicsfuzz/cov-fragcoord-clamp-array-access/0-opt.spvasm.expected.ir.dxc.hlsl
deleted file mode 100644
index c6e1d96..0000000
--- a/test/tint/vk-gl-cts/graphicsfuzz/cov-fragcoord-clamp-array-access/0-opt.spvasm.expected.ir.dxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Construct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/cov-fragcoord-clamp-array-access/0-opt.spvasm.expected.ir.fxc.hlsl b/test/tint/vk-gl-cts/graphicsfuzz/cov-fragcoord-clamp-array-access/0-opt.spvasm.expected.ir.fxc.hlsl
index c6e1d96..582837a 100644
--- a/test/tint/vk-gl-cts/graphicsfuzz/cov-fragcoord-clamp-array-access/0-opt.spvasm.expected.ir.fxc.hlsl
+++ b/test/tint/vk-gl-cts/graphicsfuzz/cov-fragcoord-clamp-array-access/0-opt.spvasm.expected.ir.fxc.hlsl
@@ -1,9 +1,3 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Construct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+exit status 0xc00000fd
\ No newline at end of file
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/cov-fragcoord-clamp-array-access/0-opt.wgsl.expected.ir.dxc.hlsl b/test/tint/vk-gl-cts/graphicsfuzz/cov-fragcoord-clamp-array-access/0-opt.wgsl.expected.ir.dxc.hlsl
deleted file mode 100644
index 3f437dc..0000000
--- a/test/tint/vk-gl-cts/graphicsfuzz/cov-fragcoord-clamp-array-access/0-opt.wgsl.expected.ir.dxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Access
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/cov-fragcoord-clamp-array-access/0-opt.wgsl.expected.ir.fxc.hlsl b/test/tint/vk-gl-cts/graphicsfuzz/cov-fragcoord-clamp-array-access/0-opt.wgsl.expected.ir.fxc.hlsl
index 3f437dc..582837a 100644
--- a/test/tint/vk-gl-cts/graphicsfuzz/cov-fragcoord-clamp-array-access/0-opt.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/vk-gl-cts/graphicsfuzz/cov-fragcoord-clamp-array-access/0-opt.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,3 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Access
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+exit status 0xc00000fd
\ No newline at end of file
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/cov-fragcoord-multiply/0-opt.spvasm.expected.ir.dxc.hlsl b/test/tint/vk-gl-cts/graphicsfuzz/cov-fragcoord-multiply/0-opt.spvasm.expected.ir.dxc.hlsl
deleted file mode 100644
index bdeab23..0000000
--- a/test/tint/vk-gl-cts/graphicsfuzz/cov-fragcoord-multiply/0-opt.spvasm.expected.ir.dxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:198 internal compiler error: Switch() matched no cases. Type: tint::core::ir::If
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/cov-fragcoord-multiply/0-opt.spvasm.expected.ir.fxc.hlsl b/test/tint/vk-gl-cts/graphicsfuzz/cov-fragcoord-multiply/0-opt.spvasm.expected.ir.fxc.hlsl
deleted file mode 100644
index bdeab23..0000000
--- a/test/tint/vk-gl-cts/graphicsfuzz/cov-fragcoord-multiply/0-opt.spvasm.expected.ir.fxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:198 internal compiler error: Switch() matched no cases. Type: tint::core::ir::If
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/cov-fragcoord-multiply/0-opt.wgsl.expected.ir.dxc.hlsl b/test/tint/vk-gl-cts/graphicsfuzz/cov-fragcoord-multiply/0-opt.wgsl.expected.ir.dxc.hlsl
deleted file mode 100644
index 4a2c666..0000000
--- a/test/tint/vk-gl-cts/graphicsfuzz/cov-fragcoord-multiply/0-opt.wgsl.expected.ir.dxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::LoadVectorElement
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/cov-fragcoord-multiply/0-opt.wgsl.expected.ir.fxc.hlsl b/test/tint/vk-gl-cts/graphicsfuzz/cov-fragcoord-multiply/0-opt.wgsl.expected.ir.fxc.hlsl
deleted file mode 100644
index 4a2c666..0000000
--- a/test/tint/vk-gl-cts/graphicsfuzz/cov-fragcoord-multiply/0-opt.wgsl.expected.ir.fxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::LoadVectorElement
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/cov-function-fragcoord-condition-always-return/0-opt.spvasm.expected.ir.dxc.hlsl b/test/tint/vk-gl-cts/graphicsfuzz/cov-function-fragcoord-condition-always-return/0-opt.spvasm.expected.ir.dxc.hlsl
deleted file mode 100644
index adbb0c1..0000000
--- a/test/tint/vk-gl-cts/graphicsfuzz/cov-function-fragcoord-condition-always-return/0-opt.spvasm.expected.ir.dxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:198 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Loop
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/cov-function-fragcoord-condition-always-return/0-opt.spvasm.expected.ir.fxc.hlsl b/test/tint/vk-gl-cts/graphicsfuzz/cov-function-fragcoord-condition-always-return/0-opt.spvasm.expected.ir.fxc.hlsl
deleted file mode 100644
index adbb0c1..0000000
--- a/test/tint/vk-gl-cts/graphicsfuzz/cov-function-fragcoord-condition-always-return/0-opt.spvasm.expected.ir.fxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:198 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Loop
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/cov-function-fragcoord-condition-always-return/0-opt.wgsl.expected.ir.dxc.hlsl b/test/tint/vk-gl-cts/graphicsfuzz/cov-function-fragcoord-condition-always-return/0-opt.wgsl.expected.ir.dxc.hlsl
deleted file mode 100644
index adbb0c1..0000000
--- a/test/tint/vk-gl-cts/graphicsfuzz/cov-function-fragcoord-condition-always-return/0-opt.wgsl.expected.ir.dxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:198 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Loop
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/cov-function-fragcoord-condition-always-return/0-opt.wgsl.expected.ir.fxc.hlsl b/test/tint/vk-gl-cts/graphicsfuzz/cov-function-fragcoord-condition-always-return/0-opt.wgsl.expected.ir.fxc.hlsl
deleted file mode 100644
index adbb0c1..0000000
--- a/test/tint/vk-gl-cts/graphicsfuzz/cov-function-fragcoord-condition-always-return/0-opt.wgsl.expected.ir.fxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:198 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Loop
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/cov-function-vec2-never-discard/0-opt.spvasm.expected.ir.dxc.hlsl b/test/tint/vk-gl-cts/graphicsfuzz/cov-function-vec2-never-discard/0-opt.spvasm.expected.ir.dxc.hlsl
index bdeab23..d1ee477 100644
--- a/test/tint/vk-gl-cts/graphicsfuzz/cov-function-vec2-never-discard/0-opt.spvasm.expected.ir.dxc.hlsl
+++ b/test/tint/vk-gl-cts/graphicsfuzz/cov-function-vec2-never-discard/0-opt.spvasm.expected.ir.dxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:198 internal compiler error: Switch() matched no cases. Type: tint::core::ir::If
+..\..\src\tint\lang\core\ir\transform\demote_to_helper.cc:208 internal compiler error: TINT_UNREACHABLE unexpected non-core instruction
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/cov-function-vec2-never-discard/0-opt.spvasm.expected.ir.fxc.hlsl b/test/tint/vk-gl-cts/graphicsfuzz/cov-function-vec2-never-discard/0-opt.spvasm.expected.ir.fxc.hlsl
index bdeab23..d1ee477 100644
--- a/test/tint/vk-gl-cts/graphicsfuzz/cov-function-vec2-never-discard/0-opt.spvasm.expected.ir.fxc.hlsl
+++ b/test/tint/vk-gl-cts/graphicsfuzz/cov-function-vec2-never-discard/0-opt.spvasm.expected.ir.fxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:198 internal compiler error: Switch() matched no cases. Type: tint::core::ir::If
+..\..\src\tint\lang\core\ir\transform\demote_to_helper.cc:208 internal compiler error: TINT_UNREACHABLE unexpected non-core instruction
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/cov-function-vec2-never-discard/0-opt.wgsl.expected.ir.dxc.hlsl b/test/tint/vk-gl-cts/graphicsfuzz/cov-function-vec2-never-discard/0-opt.wgsl.expected.ir.dxc.hlsl
index 4a2c666..d1ee477 100644
--- a/test/tint/vk-gl-cts/graphicsfuzz/cov-function-vec2-never-discard/0-opt.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/vk-gl-cts/graphicsfuzz/cov-function-vec2-never-discard/0-opt.wgsl.expected.ir.dxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::LoadVectorElement
+..\..\src\tint\lang\core\ir\transform\demote_to_helper.cc:208 internal compiler error: TINT_UNREACHABLE unexpected non-core instruction
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/cov-function-vec2-never-discard/0-opt.wgsl.expected.ir.fxc.hlsl b/test/tint/vk-gl-cts/graphicsfuzz/cov-function-vec2-never-discard/0-opt.wgsl.expected.ir.fxc.hlsl
index 4a2c666..d1ee477 100644
--- a/test/tint/vk-gl-cts/graphicsfuzz/cov-function-vec2-never-discard/0-opt.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/vk-gl-cts/graphicsfuzz/cov-function-vec2-never-discard/0-opt.wgsl.expected.ir.fxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::LoadVectorElement
+..\..\src\tint\lang\core\ir\transform\demote_to_helper.cc:208 internal compiler error: TINT_UNREACHABLE unexpected non-core instruction
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/cov-global-loop-bound-true-logical-or/0-opt.spvasm.expected.ir.dxc.hlsl b/test/tint/vk-gl-cts/graphicsfuzz/cov-global-loop-bound-true-logical-or/0-opt.spvasm.expected.ir.dxc.hlsl
deleted file mode 100644
index c6e1d96..0000000
--- a/test/tint/vk-gl-cts/graphicsfuzz/cov-global-loop-bound-true-logical-or/0-opt.spvasm.expected.ir.dxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Construct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/cov-global-loop-bound-true-logical-or/0-opt.spvasm.expected.ir.fxc.hlsl b/test/tint/vk-gl-cts/graphicsfuzz/cov-global-loop-bound-true-logical-or/0-opt.spvasm.expected.ir.fxc.hlsl
deleted file mode 100644
index c6e1d96..0000000
--- a/test/tint/vk-gl-cts/graphicsfuzz/cov-global-loop-bound-true-logical-or/0-opt.spvasm.expected.ir.fxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Construct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/cov-global-loop-bound-true-logical-or/0-opt.wgsl.expected.ir.dxc.hlsl b/test/tint/vk-gl-cts/graphicsfuzz/cov-global-loop-bound-true-logical-or/0-opt.wgsl.expected.ir.dxc.hlsl
deleted file mode 100644
index 3f437dc..0000000
--- a/test/tint/vk-gl-cts/graphicsfuzz/cov-global-loop-bound-true-logical-or/0-opt.wgsl.expected.ir.dxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Access
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/cov-global-loop-bound-true-logical-or/0-opt.wgsl.expected.ir.fxc.hlsl b/test/tint/vk-gl-cts/graphicsfuzz/cov-global-loop-bound-true-logical-or/0-opt.wgsl.expected.ir.fxc.hlsl
deleted file mode 100644
index 3f437dc..0000000
--- a/test/tint/vk-gl-cts/graphicsfuzz/cov-global-loop-bound-true-logical-or/0-opt.wgsl.expected.ir.fxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Access
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/cov-global-loop-counter-float-accumulate-matrix/0-opt.spvasm.expected.ir.dxc.hlsl b/test/tint/vk-gl-cts/graphicsfuzz/cov-global-loop-counter-float-accumulate-matrix/0-opt.spvasm.expected.ir.dxc.hlsl
index c6e1d96..d1ee477 100644
--- a/test/tint/vk-gl-cts/graphicsfuzz/cov-global-loop-counter-float-accumulate-matrix/0-opt.spvasm.expected.ir.dxc.hlsl
+++ b/test/tint/vk-gl-cts/graphicsfuzz/cov-global-loop-counter-float-accumulate-matrix/0-opt.spvasm.expected.ir.dxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Construct
+..\..\src\tint\lang\core\ir\transform\demote_to_helper.cc:208 internal compiler error: TINT_UNREACHABLE unexpected non-core instruction
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/cov-global-loop-counter-float-accumulate-matrix/0-opt.spvasm.expected.ir.fxc.hlsl b/test/tint/vk-gl-cts/graphicsfuzz/cov-global-loop-counter-float-accumulate-matrix/0-opt.spvasm.expected.ir.fxc.hlsl
index c6e1d96..d1ee477 100644
--- a/test/tint/vk-gl-cts/graphicsfuzz/cov-global-loop-counter-float-accumulate-matrix/0-opt.spvasm.expected.ir.fxc.hlsl
+++ b/test/tint/vk-gl-cts/graphicsfuzz/cov-global-loop-counter-float-accumulate-matrix/0-opt.spvasm.expected.ir.fxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Construct
+..\..\src\tint\lang\core\ir\transform\demote_to_helper.cc:208 internal compiler error: TINT_UNREACHABLE unexpected non-core instruction
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/cov-global-loop-counter-float-accumulate-matrix/0-opt.wgsl.expected.ir.dxc.hlsl b/test/tint/vk-gl-cts/graphicsfuzz/cov-global-loop-counter-float-accumulate-matrix/0-opt.wgsl.expected.ir.dxc.hlsl
index 3f437dc..d1ee477 100644
--- a/test/tint/vk-gl-cts/graphicsfuzz/cov-global-loop-counter-float-accumulate-matrix/0-opt.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/vk-gl-cts/graphicsfuzz/cov-global-loop-counter-float-accumulate-matrix/0-opt.wgsl.expected.ir.dxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Access
+..\..\src\tint\lang\core\ir\transform\demote_to_helper.cc:208 internal compiler error: TINT_UNREACHABLE unexpected non-core instruction
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/cov-global-loop-counter-float-accumulate-matrix/0-opt.wgsl.expected.ir.fxc.hlsl b/test/tint/vk-gl-cts/graphicsfuzz/cov-global-loop-counter-float-accumulate-matrix/0-opt.wgsl.expected.ir.fxc.hlsl
index 3f437dc..d1ee477 100644
--- a/test/tint/vk-gl-cts/graphicsfuzz/cov-global-loop-counter-float-accumulate-matrix/0-opt.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/vk-gl-cts/graphicsfuzz/cov-global-loop-counter-float-accumulate-matrix/0-opt.wgsl.expected.ir.fxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Access
+..\..\src\tint\lang\core\ir\transform\demote_to_helper.cc:208 internal compiler error: TINT_UNREACHABLE unexpected non-core instruction
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/cov-global-loop-counter-main-function-call/0-opt.spvasm.expected.ir.dxc.hlsl b/test/tint/vk-gl-cts/graphicsfuzz/cov-global-loop-counter-main-function-call/0-opt.spvasm.expected.ir.dxc.hlsl
deleted file mode 100644
index adbb0c1..0000000
--- a/test/tint/vk-gl-cts/graphicsfuzz/cov-global-loop-counter-main-function-call/0-opt.spvasm.expected.ir.dxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:198 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Loop
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/cov-global-loop-counter-main-function-call/0-opt.spvasm.expected.ir.fxc.hlsl b/test/tint/vk-gl-cts/graphicsfuzz/cov-global-loop-counter-main-function-call/0-opt.spvasm.expected.ir.fxc.hlsl
deleted file mode 100644
index adbb0c1..0000000
--- a/test/tint/vk-gl-cts/graphicsfuzz/cov-global-loop-counter-main-function-call/0-opt.spvasm.expected.ir.fxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:198 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Loop
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/cov-global-loop-counter-main-function-call/0-opt.wgsl.expected.ir.dxc.hlsl b/test/tint/vk-gl-cts/graphicsfuzz/cov-global-loop-counter-main-function-call/0-opt.wgsl.expected.ir.dxc.hlsl
deleted file mode 100644
index adbb0c1..0000000
--- a/test/tint/vk-gl-cts/graphicsfuzz/cov-global-loop-counter-main-function-call/0-opt.wgsl.expected.ir.dxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:198 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Loop
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/cov-global-loop-counter-main-function-call/0-opt.wgsl.expected.ir.fxc.hlsl b/test/tint/vk-gl-cts/graphicsfuzz/cov-global-loop-counter-main-function-call/0-opt.wgsl.expected.ir.fxc.hlsl
deleted file mode 100644
index adbb0c1..0000000
--- a/test/tint/vk-gl-cts/graphicsfuzz/cov-global-loop-counter-main-function-call/0-opt.wgsl.expected.ir.fxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:198 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Loop
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/cov-global-loop-counter-multiply-one-minus/0.spvasm.expected.ir.dxc.hlsl b/test/tint/vk-gl-cts/graphicsfuzz/cov-global-loop-counter-multiply-one-minus/0.spvasm.expected.ir.dxc.hlsl
deleted file mode 100644
index adbb0c1..0000000
--- a/test/tint/vk-gl-cts/graphicsfuzz/cov-global-loop-counter-multiply-one-minus/0.spvasm.expected.ir.dxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:198 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Loop
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/cov-global-loop-counter-multiply-one-minus/0.spvasm.expected.ir.fxc.hlsl b/test/tint/vk-gl-cts/graphicsfuzz/cov-global-loop-counter-multiply-one-minus/0.spvasm.expected.ir.fxc.hlsl
deleted file mode 100644
index adbb0c1..0000000
--- a/test/tint/vk-gl-cts/graphicsfuzz/cov-global-loop-counter-multiply-one-minus/0.spvasm.expected.ir.fxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:198 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Loop
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/cov-global-loop-counter-multiply-one-minus/0.wgsl.expected.ir.dxc.hlsl b/test/tint/vk-gl-cts/graphicsfuzz/cov-global-loop-counter-multiply-one-minus/0.wgsl.expected.ir.dxc.hlsl
deleted file mode 100644
index adbb0c1..0000000
--- a/test/tint/vk-gl-cts/graphicsfuzz/cov-global-loop-counter-multiply-one-minus/0.wgsl.expected.ir.dxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:198 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Loop
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/cov-global-loop-counter-multiply-one-minus/0.wgsl.expected.ir.fxc.hlsl b/test/tint/vk-gl-cts/graphicsfuzz/cov-global-loop-counter-multiply-one-minus/0.wgsl.expected.ir.fxc.hlsl
deleted file mode 100644
index adbb0c1..0000000
--- a/test/tint/vk-gl-cts/graphicsfuzz/cov-global-loop-counter-multiply-one-minus/0.wgsl.expected.ir.fxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:198 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Loop
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/cov-global-loop-counter-squared-comparison/0-opt.spvasm.expected.ir.dxc.hlsl b/test/tint/vk-gl-cts/graphicsfuzz/cov-global-loop-counter-squared-comparison/0-opt.spvasm.expected.ir.dxc.hlsl
deleted file mode 100644
index adbb0c1..0000000
--- a/test/tint/vk-gl-cts/graphicsfuzz/cov-global-loop-counter-squared-comparison/0-opt.spvasm.expected.ir.dxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:198 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Loop
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/cov-global-loop-counter-squared-comparison/0-opt.spvasm.expected.ir.fxc.hlsl b/test/tint/vk-gl-cts/graphicsfuzz/cov-global-loop-counter-squared-comparison/0-opt.spvasm.expected.ir.fxc.hlsl
deleted file mode 100644
index adbb0c1..0000000
--- a/test/tint/vk-gl-cts/graphicsfuzz/cov-global-loop-counter-squared-comparison/0-opt.spvasm.expected.ir.fxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:198 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Loop
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/cov-global-loop-counter-squared-comparison/0-opt.wgsl.expected.ir.dxc.hlsl b/test/tint/vk-gl-cts/graphicsfuzz/cov-global-loop-counter-squared-comparison/0-opt.wgsl.expected.ir.dxc.hlsl
deleted file mode 100644
index adbb0c1..0000000
--- a/test/tint/vk-gl-cts/graphicsfuzz/cov-global-loop-counter-squared-comparison/0-opt.wgsl.expected.ir.dxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:198 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Loop
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/cov-global-loop-counter-squared-comparison/0-opt.wgsl.expected.ir.fxc.hlsl b/test/tint/vk-gl-cts/graphicsfuzz/cov-global-loop-counter-squared-comparison/0-opt.wgsl.expected.ir.fxc.hlsl
deleted file mode 100644
index adbb0c1..0000000
--- a/test/tint/vk-gl-cts/graphicsfuzz/cov-global-loop-counter-squared-comparison/0-opt.wgsl.expected.ir.fxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:198 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Loop
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/cov-if-conversion-identical-branches/0-opt.spvasm.expected.ir.dxc.hlsl b/test/tint/vk-gl-cts/graphicsfuzz/cov-if-conversion-identical-branches/0-opt.spvasm.expected.ir.dxc.hlsl
deleted file mode 100644
index 3f437dc..0000000
--- a/test/tint/vk-gl-cts/graphicsfuzz/cov-if-conversion-identical-branches/0-opt.spvasm.expected.ir.dxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Access
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/cov-if-conversion-identical-branches/0-opt.spvasm.expected.ir.fxc.hlsl b/test/tint/vk-gl-cts/graphicsfuzz/cov-if-conversion-identical-branches/0-opt.spvasm.expected.ir.fxc.hlsl
deleted file mode 100644
index 3f437dc..0000000
--- a/test/tint/vk-gl-cts/graphicsfuzz/cov-if-conversion-identical-branches/0-opt.spvasm.expected.ir.fxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Access
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/cov-if-conversion-identical-branches/0-opt.wgsl.expected.ir.dxc.hlsl b/test/tint/vk-gl-cts/graphicsfuzz/cov-if-conversion-identical-branches/0-opt.wgsl.expected.ir.dxc.hlsl
deleted file mode 100644
index 3f437dc..0000000
--- a/test/tint/vk-gl-cts/graphicsfuzz/cov-if-conversion-identical-branches/0-opt.wgsl.expected.ir.dxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Access
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/cov-if-conversion-identical-branches/0-opt.wgsl.expected.ir.fxc.hlsl b/test/tint/vk-gl-cts/graphicsfuzz/cov-if-conversion-identical-branches/0-opt.wgsl.expected.ir.fxc.hlsl
deleted file mode 100644
index 3f437dc..0000000
--- a/test/tint/vk-gl-cts/graphicsfuzz/cov-if-conversion-identical-branches/0-opt.wgsl.expected.ir.fxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Access
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/cov-if-switch-fallthrough/0.spvasm.expected.ir.dxc.hlsl b/test/tint/vk-gl-cts/graphicsfuzz/cov-if-switch-fallthrough/0.spvasm.expected.ir.dxc.hlsl
deleted file mode 100644
index c6e1d96..0000000
--- a/test/tint/vk-gl-cts/graphicsfuzz/cov-if-switch-fallthrough/0.spvasm.expected.ir.dxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Construct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/cov-if-switch-fallthrough/0.spvasm.expected.ir.fxc.hlsl b/test/tint/vk-gl-cts/graphicsfuzz/cov-if-switch-fallthrough/0.spvasm.expected.ir.fxc.hlsl
deleted file mode 100644
index c6e1d96..0000000
--- a/test/tint/vk-gl-cts/graphicsfuzz/cov-if-switch-fallthrough/0.spvasm.expected.ir.fxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Construct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/cov-if-switch-fallthrough/0.wgsl.expected.ir.dxc.hlsl b/test/tint/vk-gl-cts/graphicsfuzz/cov-if-switch-fallthrough/0.wgsl.expected.ir.dxc.hlsl
deleted file mode 100644
index 3f437dc..0000000
--- a/test/tint/vk-gl-cts/graphicsfuzz/cov-if-switch-fallthrough/0.wgsl.expected.ir.dxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Access
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/cov-if-switch-fallthrough/0.wgsl.expected.ir.fxc.hlsl b/test/tint/vk-gl-cts/graphicsfuzz/cov-if-switch-fallthrough/0.wgsl.expected.ir.fxc.hlsl
deleted file mode 100644
index 3f437dc..0000000
--- a/test/tint/vk-gl-cts/graphicsfuzz/cov-if-switch-fallthrough/0.wgsl.expected.ir.fxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Access
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/cov-if-true-continue/0-opt.spvasm.expected.ir.dxc.hlsl b/test/tint/vk-gl-cts/graphicsfuzz/cov-if-true-continue/0-opt.spvasm.expected.ir.dxc.hlsl
deleted file mode 100644
index 3f437dc..0000000
--- a/test/tint/vk-gl-cts/graphicsfuzz/cov-if-true-continue/0-opt.spvasm.expected.ir.dxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Access
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/cov-if-true-continue/0-opt.spvasm.expected.ir.fxc.hlsl b/test/tint/vk-gl-cts/graphicsfuzz/cov-if-true-continue/0-opt.spvasm.expected.ir.fxc.hlsl
deleted file mode 100644
index 3f437dc..0000000
--- a/test/tint/vk-gl-cts/graphicsfuzz/cov-if-true-continue/0-opt.spvasm.expected.ir.fxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Access
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/cov-if-true-continue/0-opt.wgsl.expected.ir.dxc.hlsl b/test/tint/vk-gl-cts/graphicsfuzz/cov-if-true-continue/0-opt.wgsl.expected.ir.dxc.hlsl
deleted file mode 100644
index 3f437dc..0000000
--- a/test/tint/vk-gl-cts/graphicsfuzz/cov-if-true-continue/0-opt.wgsl.expected.ir.dxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Access
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/cov-if-true-continue/0-opt.wgsl.expected.ir.fxc.hlsl b/test/tint/vk-gl-cts/graphicsfuzz/cov-if-true-continue/0-opt.wgsl.expected.ir.fxc.hlsl
deleted file mode 100644
index 3f437dc..0000000
--- a/test/tint/vk-gl-cts/graphicsfuzz/cov-if-true-continue/0-opt.wgsl.expected.ir.fxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Access
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/cov-if-true-discard-in-do-while-never-reached/0-opt.spvasm.expected.ir.dxc.hlsl b/test/tint/vk-gl-cts/graphicsfuzz/cov-if-true-discard-in-do-while-never-reached/0-opt.spvasm.expected.ir.dxc.hlsl
index adbb0c1..d1ee477 100644
--- a/test/tint/vk-gl-cts/graphicsfuzz/cov-if-true-discard-in-do-while-never-reached/0-opt.spvasm.expected.ir.dxc.hlsl
+++ b/test/tint/vk-gl-cts/graphicsfuzz/cov-if-true-discard-in-do-while-never-reached/0-opt.spvasm.expected.ir.dxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:198 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Loop
+..\..\src\tint\lang\core\ir\transform\demote_to_helper.cc:208 internal compiler error: TINT_UNREACHABLE unexpected non-core instruction
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/cov-if-true-discard-in-do-while-never-reached/0-opt.spvasm.expected.ir.fxc.hlsl b/test/tint/vk-gl-cts/graphicsfuzz/cov-if-true-discard-in-do-while-never-reached/0-opt.spvasm.expected.ir.fxc.hlsl
index adbb0c1..d1ee477 100644
--- a/test/tint/vk-gl-cts/graphicsfuzz/cov-if-true-discard-in-do-while-never-reached/0-opt.spvasm.expected.ir.fxc.hlsl
+++ b/test/tint/vk-gl-cts/graphicsfuzz/cov-if-true-discard-in-do-while-never-reached/0-opt.spvasm.expected.ir.fxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:198 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Loop
+..\..\src\tint\lang\core\ir\transform\demote_to_helper.cc:208 internal compiler error: TINT_UNREACHABLE unexpected non-core instruction
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/cov-if-true-discard-in-do-while-never-reached/0-opt.wgsl.expected.ir.dxc.hlsl b/test/tint/vk-gl-cts/graphicsfuzz/cov-if-true-discard-in-do-while-never-reached/0-opt.wgsl.expected.ir.dxc.hlsl
index adbb0c1..d1ee477 100644
--- a/test/tint/vk-gl-cts/graphicsfuzz/cov-if-true-discard-in-do-while-never-reached/0-opt.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/vk-gl-cts/graphicsfuzz/cov-if-true-discard-in-do-while-never-reached/0-opt.wgsl.expected.ir.dxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:198 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Loop
+..\..\src\tint\lang\core\ir\transform\demote_to_helper.cc:208 internal compiler error: TINT_UNREACHABLE unexpected non-core instruction
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/cov-if-true-discard-in-do-while-never-reached/0-opt.wgsl.expected.ir.fxc.hlsl b/test/tint/vk-gl-cts/graphicsfuzz/cov-if-true-discard-in-do-while-never-reached/0-opt.wgsl.expected.ir.fxc.hlsl
index adbb0c1..d1ee477 100644
--- a/test/tint/vk-gl-cts/graphicsfuzz/cov-if-true-discard-in-do-while-never-reached/0-opt.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/vk-gl-cts/graphicsfuzz/cov-if-true-discard-in-do-while-never-reached/0-opt.wgsl.expected.ir.fxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:198 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Loop
+..\..\src\tint\lang\core\ir\transform\demote_to_helper.cc:208 internal compiler error: TINT_UNREACHABLE unexpected non-core instruction
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/cov-inc-inside-switch-and-for/0-opt.spvasm.expected.ir.dxc.hlsl b/test/tint/vk-gl-cts/graphicsfuzz/cov-inc-inside-switch-and-for/0-opt.spvasm.expected.ir.dxc.hlsl
deleted file mode 100644
index adbb0c1..0000000
--- a/test/tint/vk-gl-cts/graphicsfuzz/cov-inc-inside-switch-and-for/0-opt.spvasm.expected.ir.dxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:198 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Loop
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/cov-inc-inside-switch-and-for/0-opt.spvasm.expected.ir.fxc.hlsl b/test/tint/vk-gl-cts/graphicsfuzz/cov-inc-inside-switch-and-for/0-opt.spvasm.expected.ir.fxc.hlsl
deleted file mode 100644
index adbb0c1..0000000
--- a/test/tint/vk-gl-cts/graphicsfuzz/cov-inc-inside-switch-and-for/0-opt.spvasm.expected.ir.fxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:198 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Loop
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/cov-inc-inside-switch-and-for/0-opt.wgsl.expected.ir.dxc.hlsl b/test/tint/vk-gl-cts/graphicsfuzz/cov-inc-inside-switch-and-for/0-opt.wgsl.expected.ir.dxc.hlsl
deleted file mode 100644
index adbb0c1..0000000
--- a/test/tint/vk-gl-cts/graphicsfuzz/cov-inc-inside-switch-and-for/0-opt.wgsl.expected.ir.dxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:198 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Loop
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/cov-inc-inside-switch-and-for/0-opt.wgsl.expected.ir.fxc.hlsl b/test/tint/vk-gl-cts/graphicsfuzz/cov-inc-inside-switch-and-for/0-opt.wgsl.expected.ir.fxc.hlsl
deleted file mode 100644
index adbb0c1..0000000
--- a/test/tint/vk-gl-cts/graphicsfuzz/cov-inc-inside-switch-and-for/0-opt.wgsl.expected.ir.fxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:198 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Loop
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/cov-increment-array-element-in-loop/0-opt.spvasm.expected.ir.dxc.hlsl b/test/tint/vk-gl-cts/graphicsfuzz/cov-increment-array-element-in-loop/0-opt.spvasm.expected.ir.dxc.hlsl
deleted file mode 100644
index c6e1d96..0000000
--- a/test/tint/vk-gl-cts/graphicsfuzz/cov-increment-array-element-in-loop/0-opt.spvasm.expected.ir.dxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Construct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/cov-increment-array-element-in-loop/0-opt.spvasm.expected.ir.fxc.hlsl b/test/tint/vk-gl-cts/graphicsfuzz/cov-increment-array-element-in-loop/0-opt.spvasm.expected.ir.fxc.hlsl
deleted file mode 100644
index c6e1d96..0000000
--- a/test/tint/vk-gl-cts/graphicsfuzz/cov-increment-array-element-in-loop/0-opt.spvasm.expected.ir.fxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Construct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/cov-increment-array-element-in-loop/0-opt.wgsl.expected.ir.dxc.hlsl b/test/tint/vk-gl-cts/graphicsfuzz/cov-increment-array-element-in-loop/0-opt.wgsl.expected.ir.dxc.hlsl
deleted file mode 100644
index 3f437dc..0000000
--- a/test/tint/vk-gl-cts/graphicsfuzz/cov-increment-array-element-in-loop/0-opt.wgsl.expected.ir.dxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Access
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/cov-increment-array-element-in-loop/0-opt.wgsl.expected.ir.fxc.hlsl b/test/tint/vk-gl-cts/graphicsfuzz/cov-increment-array-element-in-loop/0-opt.wgsl.expected.ir.fxc.hlsl
deleted file mode 100644
index 3f437dc..0000000
--- a/test/tint/vk-gl-cts/graphicsfuzz/cov-increment-array-element-in-loop/0-opt.wgsl.expected.ir.fxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Access
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/cov-increment-float-in-loop-abs/0-opt.spvasm.expected.ir.dxc.hlsl b/test/tint/vk-gl-cts/graphicsfuzz/cov-increment-float-in-loop-abs/0-opt.spvasm.expected.ir.dxc.hlsl
deleted file mode 100644
index 3f437dc..0000000
--- a/test/tint/vk-gl-cts/graphicsfuzz/cov-increment-float-in-loop-abs/0-opt.spvasm.expected.ir.dxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Access
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/cov-increment-float-in-loop-abs/0-opt.spvasm.expected.ir.fxc.hlsl b/test/tint/vk-gl-cts/graphicsfuzz/cov-increment-float-in-loop-abs/0-opt.spvasm.expected.ir.fxc.hlsl
deleted file mode 100644
index 3f437dc..0000000
--- a/test/tint/vk-gl-cts/graphicsfuzz/cov-increment-float-in-loop-abs/0-opt.spvasm.expected.ir.fxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Access
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/cov-increment-float-in-loop-abs/0-opt.wgsl.expected.ir.dxc.hlsl b/test/tint/vk-gl-cts/graphicsfuzz/cov-increment-float-in-loop-abs/0-opt.wgsl.expected.ir.dxc.hlsl
deleted file mode 100644
index 3f437dc..0000000
--- a/test/tint/vk-gl-cts/graphicsfuzz/cov-increment-float-in-loop-abs/0-opt.wgsl.expected.ir.dxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Access
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/cov-increment-float-in-loop-abs/0-opt.wgsl.expected.ir.fxc.hlsl b/test/tint/vk-gl-cts/graphicsfuzz/cov-increment-float-in-loop-abs/0-opt.wgsl.expected.ir.fxc.hlsl
deleted file mode 100644
index 3f437dc..0000000
--- a/test/tint/vk-gl-cts/graphicsfuzz/cov-increment-float-in-loop-abs/0-opt.wgsl.expected.ir.fxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Access
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/cov-increment-global-counter-loop-function/0-opt.spvasm.expected.ir.dxc.hlsl b/test/tint/vk-gl-cts/graphicsfuzz/cov-increment-global-counter-loop-function/0-opt.spvasm.expected.ir.dxc.hlsl
deleted file mode 100644
index 3f437dc..0000000
--- a/test/tint/vk-gl-cts/graphicsfuzz/cov-increment-global-counter-loop-function/0-opt.spvasm.expected.ir.dxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Access
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/cov-increment-global-counter-loop-function/0-opt.spvasm.expected.ir.fxc.hlsl b/test/tint/vk-gl-cts/graphicsfuzz/cov-increment-global-counter-loop-function/0-opt.spvasm.expected.ir.fxc.hlsl
deleted file mode 100644
index 3f437dc..0000000
--- a/test/tint/vk-gl-cts/graphicsfuzz/cov-increment-global-counter-loop-function/0-opt.spvasm.expected.ir.fxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Access
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/cov-increment-global-counter-loop-function/0-opt.wgsl.expected.ir.dxc.hlsl b/test/tint/vk-gl-cts/graphicsfuzz/cov-increment-global-counter-loop-function/0-opt.wgsl.expected.ir.dxc.hlsl
deleted file mode 100644
index 3f437dc..0000000
--- a/test/tint/vk-gl-cts/graphicsfuzz/cov-increment-global-counter-loop-function/0-opt.wgsl.expected.ir.dxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Access
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/cov-increment-global-counter-loop-function/0-opt.wgsl.expected.ir.fxc.hlsl b/test/tint/vk-gl-cts/graphicsfuzz/cov-increment-global-counter-loop-function/0-opt.wgsl.expected.ir.fxc.hlsl
deleted file mode 100644
index 3f437dc..0000000
--- a/test/tint/vk-gl-cts/graphicsfuzz/cov-increment-global-counter-loop-function/0-opt.wgsl.expected.ir.fxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Access
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/cov-increment-inside-clamp/0-opt.spvasm.expected.ir.dxc.hlsl b/test/tint/vk-gl-cts/graphicsfuzz/cov-increment-inside-clamp/0-opt.spvasm.expected.ir.dxc.hlsl
deleted file mode 100644
index 3f437dc..0000000
--- a/test/tint/vk-gl-cts/graphicsfuzz/cov-increment-inside-clamp/0-opt.spvasm.expected.ir.dxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Access
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/cov-increment-inside-clamp/0-opt.spvasm.expected.ir.fxc.hlsl b/test/tint/vk-gl-cts/graphicsfuzz/cov-increment-inside-clamp/0-opt.spvasm.expected.ir.fxc.hlsl
deleted file mode 100644
index 3f437dc..0000000
--- a/test/tint/vk-gl-cts/graphicsfuzz/cov-increment-inside-clamp/0-opt.spvasm.expected.ir.fxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Access
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/cov-increment-inside-clamp/0-opt.wgsl.expected.ir.dxc.hlsl b/test/tint/vk-gl-cts/graphicsfuzz/cov-increment-inside-clamp/0-opt.wgsl.expected.ir.dxc.hlsl
deleted file mode 100644
index 3f437dc..0000000
--- a/test/tint/vk-gl-cts/graphicsfuzz/cov-increment-inside-clamp/0-opt.wgsl.expected.ir.dxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Access
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/cov-increment-inside-clamp/0-opt.wgsl.expected.ir.fxc.hlsl b/test/tint/vk-gl-cts/graphicsfuzz/cov-increment-inside-clamp/0-opt.wgsl.expected.ir.fxc.hlsl
deleted file mode 100644
index 3f437dc..0000000
--- a/test/tint/vk-gl-cts/graphicsfuzz/cov-increment-inside-clamp/0-opt.wgsl.expected.ir.fxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Access
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/cov-increment-int-loop-counter-mod-array/0-opt.spvasm.expected.ir.dxc.hlsl b/test/tint/vk-gl-cts/graphicsfuzz/cov-increment-int-loop-counter-mod-array/0-opt.spvasm.expected.ir.dxc.hlsl
deleted file mode 100644
index 3f437dc..0000000
--- a/test/tint/vk-gl-cts/graphicsfuzz/cov-increment-int-loop-counter-mod-array/0-opt.spvasm.expected.ir.dxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Access
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/cov-increment-int-loop-counter-mod-array/0-opt.spvasm.expected.ir.fxc.hlsl b/test/tint/vk-gl-cts/graphicsfuzz/cov-increment-int-loop-counter-mod-array/0-opt.spvasm.expected.ir.fxc.hlsl
deleted file mode 100644
index 3f437dc..0000000
--- a/test/tint/vk-gl-cts/graphicsfuzz/cov-increment-int-loop-counter-mod-array/0-opt.spvasm.expected.ir.fxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Access
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/cov-increment-int-loop-counter-mod-array/0-opt.wgsl.expected.ir.dxc.hlsl b/test/tint/vk-gl-cts/graphicsfuzz/cov-increment-int-loop-counter-mod-array/0-opt.wgsl.expected.ir.dxc.hlsl
deleted file mode 100644
index 3f437dc..0000000
--- a/test/tint/vk-gl-cts/graphicsfuzz/cov-increment-int-loop-counter-mod-array/0-opt.wgsl.expected.ir.dxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Access
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/cov-increment-int-loop-counter-mod-array/0-opt.wgsl.expected.ir.fxc.hlsl b/test/tint/vk-gl-cts/graphicsfuzz/cov-increment-int-loop-counter-mod-array/0-opt.wgsl.expected.ir.fxc.hlsl
deleted file mode 100644
index 3f437dc..0000000
--- a/test/tint/vk-gl-cts/graphicsfuzz/cov-increment-int-loop-counter-mod-array/0-opt.wgsl.expected.ir.fxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Access
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/cov-increment-multiple-integers/0-opt.spvasm.expected.ir.dxc.hlsl b/test/tint/vk-gl-cts/graphicsfuzz/cov-increment-multiple-integers/0-opt.spvasm.expected.ir.dxc.hlsl
deleted file mode 100644
index 3f437dc..0000000
--- a/test/tint/vk-gl-cts/graphicsfuzz/cov-increment-multiple-integers/0-opt.spvasm.expected.ir.dxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Access
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/cov-increment-multiple-integers/0-opt.spvasm.expected.ir.fxc.hlsl b/test/tint/vk-gl-cts/graphicsfuzz/cov-increment-multiple-integers/0-opt.spvasm.expected.ir.fxc.hlsl
deleted file mode 100644
index 3f437dc..0000000
--- a/test/tint/vk-gl-cts/graphicsfuzz/cov-increment-multiple-integers/0-opt.spvasm.expected.ir.fxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Access
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/cov-increment-multiple-integers/0-opt.wgsl.expected.ir.dxc.hlsl b/test/tint/vk-gl-cts/graphicsfuzz/cov-increment-multiple-integers/0-opt.wgsl.expected.ir.dxc.hlsl
deleted file mode 100644
index 3f437dc..0000000
--- a/test/tint/vk-gl-cts/graphicsfuzz/cov-increment-multiple-integers/0-opt.wgsl.expected.ir.dxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Access
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/cov-increment-multiple-integers/0-opt.wgsl.expected.ir.fxc.hlsl b/test/tint/vk-gl-cts/graphicsfuzz/cov-increment-multiple-integers/0-opt.wgsl.expected.ir.fxc.hlsl
deleted file mode 100644
index 3f437dc..0000000
--- a/test/tint/vk-gl-cts/graphicsfuzz/cov-increment-multiple-integers/0-opt.wgsl.expected.ir.fxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Access
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/cov-increment-vector-array-matrix-element/0-opt.spvasm.expected.ir.dxc.hlsl b/test/tint/vk-gl-cts/graphicsfuzz/cov-increment-vector-array-matrix-element/0-opt.spvasm.expected.ir.dxc.hlsl
deleted file mode 100644
index 48e23f4..0000000
--- a/test/tint/vk-gl-cts/graphicsfuzz/cov-increment-vector-array-matrix-element/0-opt.spvasm.expected.ir.dxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Convert
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/cov-increment-vector-array-matrix-element/0-opt.spvasm.expected.ir.fxc.hlsl b/test/tint/vk-gl-cts/graphicsfuzz/cov-increment-vector-array-matrix-element/0-opt.spvasm.expected.ir.fxc.hlsl
index 48e23f4..3b1b8cf 100644
--- a/test/tint/vk-gl-cts/graphicsfuzz/cov-increment-vector-array-matrix-element/0-opt.spvasm.expected.ir.fxc.hlsl
+++ b/test/tint/vk-gl-cts/graphicsfuzz/cov-increment-vector-array-matrix-element/0-opt.spvasm.expected.ir.fxc.hlsl
@@ -1,9 +1,63 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Convert
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct main_out {
+  float4 x_GLF_color_1;
+};
+
+struct main_outputs {
+  float4 main_out_x_GLF_color_1 : SV_Target0;
+};
+
+
+cbuffer cbuffer_x_6 : register(b0) {
+  uint4 x_6[4];
+};
+cbuffer cbuffer_x_9 : register(b1) {
+  uint4 x_9[2];
+};
+static float4 x_GLF_color = (0.0f).xxxx;
+void main_1() {
+  float3x3 m = float3x3((0.0f).xxx, (0.0f).xxx, (0.0f).xxx);
+  int a = 0;
+  float3 arr[2] = (float3[2])0;
+  float3 v = (0.0f).xxx;
+  float x_46 = float(asint(x_6[0u].x));
+  float3 v_1 = float3(x_46, 0.0f, 0.0f);
+  float3 v_2 = float3(0.0f, x_46, 0.0f);
+  m = float3x3(v_1, v_2, float3(0.0f, 0.0f, x_46));
+  a = asint(x_6[0u].x);
+  int x_53 = a;
+  int x_54 = a;
+  m[x_53][x_54] = asfloat(x_9[0u].x);
+  float3 v_3[2] = {m[1], m[1]};
+  arr = v_3;
+  v = float3((asfloat(x_9[1u].x)).xxx);
+  v = (v + arr[a]);
+  float3 v_4 = v;
+  float v_5 = float(asint(x_6[1u].x));
+  float v_6 = float(asint(x_6[2u].x));
+  if (all((v_4 == float3(v_5, v_6, float(asint(x_6[1u].x)))))) {
+    float v_7 = float(asint(x_6[0u].x));
+    float v_8 = float(asint(x_6[3u].x));
+    float v_9 = float(asint(x_6[3u].x));
+    x_GLF_color = float4(v_7, v_8, v_9, float(asint(x_6[0u].x)));
+  } else {
+    x_GLF_color = float4((float(asint(x_6[3u].x))).xxxx);
+  }
+}
+
+main_out main_inner() {
+  main_1();
+  main_out v_10 = {x_GLF_color};
+  return v_10;
+}
+
+main_outputs main() {
+  main_out v_11 = main_inner();
+  main_outputs v_12 = {v_11.x_GLF_color_1};
+  return v_12;
+}
+
+FXC validation failure:
+c:\src\dawn\Shader@0x000001DABE7C6970(29,3-9): error X3500: array reference cannot be used as an l-value; not natively addressable
+
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/cov-increment-vector-array-matrix-element/0-opt.wgsl.expected.ir.dxc.hlsl b/test/tint/vk-gl-cts/graphicsfuzz/cov-increment-vector-array-matrix-element/0-opt.wgsl.expected.ir.dxc.hlsl
deleted file mode 100644
index 3f437dc..0000000
--- a/test/tint/vk-gl-cts/graphicsfuzz/cov-increment-vector-array-matrix-element/0-opt.wgsl.expected.ir.dxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Access
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/cov-increment-vector-array-matrix-element/0-opt.wgsl.expected.ir.fxc.hlsl b/test/tint/vk-gl-cts/graphicsfuzz/cov-increment-vector-array-matrix-element/0-opt.wgsl.expected.ir.fxc.hlsl
index 3f437dc..1848783 100644
--- a/test/tint/vk-gl-cts/graphicsfuzz/cov-increment-vector-array-matrix-element/0-opt.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/vk-gl-cts/graphicsfuzz/cov-increment-vector-array-matrix-element/0-opt.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,81 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Access
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct main_out {
+  float4 x_GLF_color_1;
+};
+
+struct main_outputs {
+  float4 main_out_x_GLF_color_1 : SV_Target0;
+};
+
+
+cbuffer cbuffer_x_6 : register(b0) {
+  uint4 x_6[4];
+};
+cbuffer cbuffer_x_9 : register(b1) {
+  uint4 x_9[2];
+};
+static float4 x_GLF_color = (0.0f).xxxx;
+void main_1() {
+  float3x3 m = float3x3((0.0f).xxx, (0.0f).xxx, (0.0f).xxx);
+  int a = 0;
+  float3 arr[2] = (float3[2])0;
+  float3 v = (0.0f).xxx;
+  int x_45 = asint(x_6[0u].x);
+  float x_46 = float(x_45);
+  float3 v_1 = float3(x_46, 0.0f, 0.0f);
+  float3 v_2 = float3(0.0f, x_46, 0.0f);
+  m = float3x3(v_1, v_2, float3(0.0f, 0.0f, x_46));
+  int x_52 = asint(x_6[0u].x);
+  a = x_52;
+  int x_53 = a;
+  int x_54 = a;
+  float x_56 = asfloat(x_9[0u].x);
+  m[x_53][x_54] = x_56;
+  float3 x_59 = m[1];
+  float3 x_61 = m[1];
+  float3 v_3[2] = {x_59, x_61};
+  arr = v_3;
+  float x_64 = asfloat(x_9[1u].x);
+  v = float3(x_64, x_64, x_64);
+  int x_66 = a;
+  float3 x_68 = arr[x_66];
+  float3 x_69 = v;
+  v = (x_69 + x_68);
+  float3 x_71 = v;
+  int x_73 = asint(x_6[1u].x);
+  int x_76 = asint(x_6[2u].x);
+  int x_79 = asint(x_6[1u].x);
+  float v_4 = float(x_73);
+  float v_5 = float(x_76);
+  if (all((x_71 == float3(v_4, v_5, float(x_79))))) {
+    int x_88 = asint(x_6[0u].x);
+    int x_91 = asint(x_6[3u].x);
+    int x_94 = asint(x_6[3u].x);
+    int x_97 = asint(x_6[0u].x);
+    float v_6 = float(x_88);
+    float v_7 = float(x_91);
+    float v_8 = float(x_94);
+    x_GLF_color = float4(v_6, v_7, v_8, float(x_97));
+  } else {
+    int x_101 = asint(x_6[3u].x);
+    float x_102 = float(x_101);
+    x_GLF_color = float4(x_102, x_102, x_102, x_102);
+  }
+}
+
+main_out main_inner() {
+  main_1();
+  main_out v_9 = {x_GLF_color};
+  return v_9;
+}
+
+main_outputs main() {
+  main_out v_10 = main_inner();
+  main_outputs v_11 = {v_10.x_GLF_color_1};
+  return v_11;
+}
+
+FXC validation failure:
+c:\src\dawn\Shader@0x000002312C23D950(32,3-9): error X3500: array reference cannot be used as an l-value; not natively addressable
+
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/cov-increment-vector-component-with-matrix-copy/0-opt.spvasm.expected.ir.dxc.hlsl b/test/tint/vk-gl-cts/graphicsfuzz/cov-increment-vector-component-with-matrix-copy/0-opt.spvasm.expected.ir.dxc.hlsl
deleted file mode 100644
index 3f437dc..0000000
--- a/test/tint/vk-gl-cts/graphicsfuzz/cov-increment-vector-component-with-matrix-copy/0-opt.spvasm.expected.ir.dxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Access
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/cov-increment-vector-component-with-matrix-copy/0-opt.spvasm.expected.ir.fxc.hlsl b/test/tint/vk-gl-cts/graphicsfuzz/cov-increment-vector-component-with-matrix-copy/0-opt.spvasm.expected.ir.fxc.hlsl
index 3f437dc..b851e06 100644
--- a/test/tint/vk-gl-cts/graphicsfuzz/cov-increment-vector-component-with-matrix-copy/0-opt.spvasm.expected.ir.fxc.hlsl
+++ b/test/tint/vk-gl-cts/graphicsfuzz/cov-increment-vector-component-with-matrix-copy/0-opt.spvasm.expected.ir.fxc.hlsl
@@ -1,9 +1,65 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Access
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct main_out {
+  float4 x_GLF_color_1;
+};
+
+struct main_outputs {
+  float4 main_out_x_GLF_color_1 : SV_Target0;
+};
+
+
+cbuffer cbuffer_x_6 : register(b0) {
+  uint4 x_6[2];
+};
+cbuffer cbuffer_x_9 : register(b1) {
+  uint4 x_9[4];
+};
+static float4 x_GLF_color = (0.0f).xxxx;
+void main_1() {
+  int a = 0;
+  float4 v = (0.0f).xxxx;
+  float3x4 m = float3x4((0.0f).xxxx, (0.0f).xxxx, (0.0f).xxxx);
+  float4x4 indexable = float4x4((0.0f).xxxx, (0.0f).xxxx, (0.0f).xxxx, (0.0f).xxxx);
+  a = asint(x_6[0u].x);
+  v = float4((asfloat(x_9[2u].x)).xxxx);
+  float x_49 = asfloat(x_9[3u].x);
+  float4 v_1 = float4(x_49, 0.0f, 0.0f, 0.0f);
+  float4 v_2 = float4(0.0f, x_49, 0.0f, 0.0f);
+  m = float3x4(v_1, v_2, float4(0.0f, 0.0f, x_49, 0.0f));
+  int x_54 = a;
+  int x_55 = a;
+  m[x_54][x_55] = asfloat(x_9[0u].x);
+  int x_59 = a;
+  int x_78 = a;
+  int x_79 = a;
+  float4 v_3 = float4(m[0u].x, m[0u].y, m[0u].z, m[0u].w);
+  float4 v_4 = float4(m[1u].x, m[1u].y, m[1u].z, m[1u].w);
+  indexable = float4x4(v_3, v_4, float4(m[2u].x, m[2u].y, m[2u].z, m[2u].w), float4(0.0f, 0.0f, 0.0f, 1.0f));
+  v[x_59] = (v[x_59] + indexable[x_78][x_79]);
+  float v_5 = v.y;
+  if ((v_5 == asfloat(x_9[1u].x))) {
+    float v_6 = float(asint(x_6[0u].x));
+    float v_7 = float(asint(x_6[1u].x));
+    float v_8 = float(asint(x_6[1u].x));
+    x_GLF_color = float4(v_6, v_7, v_8, float(asint(x_6[0u].x)));
+  } else {
+    x_GLF_color = float4((float(asint(x_6[1u].x))).xxxx);
+  }
+}
+
+main_out main_inner() {
+  main_1();
+  main_out v_9 = {x_GLF_color};
+  return v_9;
+}
+
+main_outputs main() {
+  main_out v_10 = main_inner();
+  main_outputs v_11 = {v_10.x_GLF_color_1};
+  return v_11;
+}
+
+FXC validation failure:
+c:\src\dawn\Shader@0x00000244F0E76D70(30,3-9): error X3500: array reference cannot be used as an l-value; not natively addressable
+
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/cov-increment-vector-component-with-matrix-copy/0-opt.wgsl.expected.ir.dxc.hlsl b/test/tint/vk-gl-cts/graphicsfuzz/cov-increment-vector-component-with-matrix-copy/0-opt.wgsl.expected.ir.dxc.hlsl
deleted file mode 100644
index 3f437dc..0000000
--- a/test/tint/vk-gl-cts/graphicsfuzz/cov-increment-vector-component-with-matrix-copy/0-opt.wgsl.expected.ir.dxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Access
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/cov-increment-vector-component-with-matrix-copy/0-opt.wgsl.expected.ir.fxc.hlsl b/test/tint/vk-gl-cts/graphicsfuzz/cov-increment-vector-component-with-matrix-copy/0-opt.wgsl.expected.ir.fxc.hlsl
index 3f437dc..3b56496 100644
--- a/test/tint/vk-gl-cts/graphicsfuzz/cov-increment-vector-component-with-matrix-copy/0-opt.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/vk-gl-cts/graphicsfuzz/cov-increment-vector-component-with-matrix-copy/0-opt.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,78 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Access
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct main_out {
+  float4 x_GLF_color_1;
+};
+
+struct main_outputs {
+  float4 main_out_x_GLF_color_1 : SV_Target0;
+};
+
+
+cbuffer cbuffer_x_6 : register(b0) {
+  uint4 x_6[2];
+};
+cbuffer cbuffer_x_9 : register(b1) {
+  uint4 x_9[4];
+};
+static float4 x_GLF_color = (0.0f).xxxx;
+void main_1() {
+  int a = 0;
+  float4 v = (0.0f).xxxx;
+  float3x4 m = float3x4((0.0f).xxxx, (0.0f).xxxx, (0.0f).xxxx);
+  float4x4 indexable = float4x4((0.0f).xxxx, (0.0f).xxxx, (0.0f).xxxx, (0.0f).xxxx);
+  int x_44 = asint(x_6[0u].x);
+  a = x_44;
+  float x_46 = asfloat(x_9[2u].x);
+  v = float4(x_46, x_46, x_46, x_46);
+  float x_49 = asfloat(x_9[3u].x);
+  float4 v_1 = float4(x_49, 0.0f, 0.0f, 0.0f);
+  float4 v_2 = float4(0.0f, x_49, 0.0f, 0.0f);
+  m = float3x4(v_1, v_2, float4(0.0f, 0.0f, x_49, 0.0f));
+  int x_54 = a;
+  int x_55 = a;
+  float x_57 = asfloat(x_9[0u].x);
+  m[x_54][x_55] = x_57;
+  int x_59 = a;
+  float3x4 x_60 = m;
+  int x_78 = a;
+  int x_79 = a;
+  float4 v_3 = float4(x_60[0u][0u], x_60[0u][1u], x_60[0u][2u], x_60[0u][3u]);
+  float4 v_4 = float4(x_60[1u][0u], x_60[1u][1u], x_60[1u][2u], x_60[1u][3u]);
+  indexable = float4x4(v_3, v_4, float4(x_60[2u][0u], x_60[2u][1u], x_60[2u][2u], x_60[2u][3u]), float4(0.0f, 0.0f, 0.0f, 1.0f));
+  float x_81 = indexable[x_78][x_79];
+  float x_83 = v[x_59];
+  v[x_59] = (x_83 + x_81);
+  float x_87 = v.y;
+  float x_89 = asfloat(x_9[1u].x);
+  if ((x_87 == x_89)) {
+    int x_95 = asint(x_6[0u].x);
+    int x_98 = asint(x_6[1u].x);
+    int x_101 = asint(x_6[1u].x);
+    int x_104 = asint(x_6[0u].x);
+    float v_5 = float(x_95);
+    float v_6 = float(x_98);
+    float v_7 = float(x_101);
+    x_GLF_color = float4(v_5, v_6, v_7, float(x_104));
+  } else {
+    int x_108 = asint(x_6[1u].x);
+    float x_109 = float(x_108);
+    x_GLF_color = float4(x_109, x_109, x_109, x_109);
+  }
+}
+
+main_out main_inner() {
+  main_1();
+  main_out v_8 = {x_GLF_color};
+  return v_8;
+}
+
+main_outputs main() {
+  main_out v_9 = main_inner();
+  main_outputs v_10 = {v_9.x_GLF_color_1};
+  return v_10;
+}
+
+FXC validation failure:
+c:\src\dawn\Shader@0x0000021569822210(33,3-9): error X3500: array reference cannot be used as an l-value; not natively addressable
+
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/cov-inline-pass-empty-block/0-opt.spvasm.expected.ir.dxc.hlsl b/test/tint/vk-gl-cts/graphicsfuzz/cov-inline-pass-empty-block/0-opt.spvasm.expected.ir.dxc.hlsl
deleted file mode 100644
index bdeab23..0000000
--- a/test/tint/vk-gl-cts/graphicsfuzz/cov-inline-pass-empty-block/0-opt.spvasm.expected.ir.dxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:198 internal compiler error: Switch() matched no cases. Type: tint::core::ir::If
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/cov-inline-pass-empty-block/0-opt.spvasm.expected.ir.fxc.hlsl b/test/tint/vk-gl-cts/graphicsfuzz/cov-inline-pass-empty-block/0-opt.spvasm.expected.ir.fxc.hlsl
deleted file mode 100644
index bdeab23..0000000
--- a/test/tint/vk-gl-cts/graphicsfuzz/cov-inline-pass-empty-block/0-opt.spvasm.expected.ir.fxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:198 internal compiler error: Switch() matched no cases. Type: tint::core::ir::If
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/cov-inline-pass-empty-block/0-opt.wgsl.expected.ir.dxc.hlsl b/test/tint/vk-gl-cts/graphicsfuzz/cov-inline-pass-empty-block/0-opt.wgsl.expected.ir.dxc.hlsl
deleted file mode 100644
index 4a2c666..0000000
--- a/test/tint/vk-gl-cts/graphicsfuzz/cov-inline-pass-empty-block/0-opt.wgsl.expected.ir.dxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::LoadVectorElement
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/cov-inline-pass-empty-block/0-opt.wgsl.expected.ir.fxc.hlsl b/test/tint/vk-gl-cts/graphicsfuzz/cov-inline-pass-empty-block/0-opt.wgsl.expected.ir.fxc.hlsl
deleted file mode 100644
index 4a2c666..0000000
--- a/test/tint/vk-gl-cts/graphicsfuzz/cov-inline-pass-empty-block/0-opt.wgsl.expected.ir.fxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::LoadVectorElement
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/cov-inline-pass-nested-loops/0-opt.spvasm.expected.ir.dxc.hlsl b/test/tint/vk-gl-cts/graphicsfuzz/cov-inline-pass-nested-loops/0-opt.spvasm.expected.ir.dxc.hlsl
deleted file mode 100644
index adbb0c1..0000000
--- a/test/tint/vk-gl-cts/graphicsfuzz/cov-inline-pass-nested-loops/0-opt.spvasm.expected.ir.dxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:198 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Loop
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/cov-inline-pass-nested-loops/0-opt.spvasm.expected.ir.fxc.hlsl b/test/tint/vk-gl-cts/graphicsfuzz/cov-inline-pass-nested-loops/0-opt.spvasm.expected.ir.fxc.hlsl
deleted file mode 100644
index adbb0c1..0000000
--- a/test/tint/vk-gl-cts/graphicsfuzz/cov-inline-pass-nested-loops/0-opt.spvasm.expected.ir.fxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:198 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Loop
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/cov-inline-pass-nested-loops/0-opt.wgsl.expected.ir.dxc.hlsl b/test/tint/vk-gl-cts/graphicsfuzz/cov-inline-pass-nested-loops/0-opt.wgsl.expected.ir.dxc.hlsl
deleted file mode 100644
index adbb0c1..0000000
--- a/test/tint/vk-gl-cts/graphicsfuzz/cov-inline-pass-nested-loops/0-opt.wgsl.expected.ir.dxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:198 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Loop
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/cov-inline-pass-nested-loops/0-opt.wgsl.expected.ir.fxc.hlsl b/test/tint/vk-gl-cts/graphicsfuzz/cov-inline-pass-nested-loops/0-opt.wgsl.expected.ir.fxc.hlsl
deleted file mode 100644
index adbb0c1..0000000
--- a/test/tint/vk-gl-cts/graphicsfuzz/cov-inline-pass-nested-loops/0-opt.wgsl.expected.ir.fxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:198 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Loop
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/cov-inline-pass-return-in-loop/0-opt.spvasm.expected.ir.dxc.hlsl b/test/tint/vk-gl-cts/graphicsfuzz/cov-inline-pass-return-in-loop/0-opt.spvasm.expected.ir.dxc.hlsl
deleted file mode 100644
index adbb0c1..0000000
--- a/test/tint/vk-gl-cts/graphicsfuzz/cov-inline-pass-return-in-loop/0-opt.spvasm.expected.ir.dxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:198 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Loop
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/cov-inline-pass-return-in-loop/0-opt.spvasm.expected.ir.fxc.hlsl b/test/tint/vk-gl-cts/graphicsfuzz/cov-inline-pass-return-in-loop/0-opt.spvasm.expected.ir.fxc.hlsl
deleted file mode 100644
index adbb0c1..0000000
--- a/test/tint/vk-gl-cts/graphicsfuzz/cov-inline-pass-return-in-loop/0-opt.spvasm.expected.ir.fxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:198 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Loop
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/cov-inline-pass-return-in-loop/0-opt.wgsl.expected.ir.dxc.hlsl b/test/tint/vk-gl-cts/graphicsfuzz/cov-inline-pass-return-in-loop/0-opt.wgsl.expected.ir.dxc.hlsl
deleted file mode 100644
index adbb0c1..0000000
--- a/test/tint/vk-gl-cts/graphicsfuzz/cov-inline-pass-return-in-loop/0-opt.wgsl.expected.ir.dxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:198 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Loop
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/cov-inline-pass-return-in-loop/0-opt.wgsl.expected.ir.fxc.hlsl b/test/tint/vk-gl-cts/graphicsfuzz/cov-inline-pass-return-in-loop/0-opt.wgsl.expected.ir.fxc.hlsl
deleted file mode 100644
index adbb0c1..0000000
--- a/test/tint/vk-gl-cts/graphicsfuzz/cov-inline-pass-return-in-loop/0-opt.wgsl.expected.ir.fxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:198 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Loop
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/cov-inline-pass-unreachable-func/0-opt.spvasm.expected.ir.dxc.hlsl b/test/tint/vk-gl-cts/graphicsfuzz/cov-inline-pass-unreachable-func/0-opt.spvasm.expected.ir.dxc.hlsl
deleted file mode 100644
index bdeab23..0000000
--- a/test/tint/vk-gl-cts/graphicsfuzz/cov-inline-pass-unreachable-func/0-opt.spvasm.expected.ir.dxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:198 internal compiler error: Switch() matched no cases. Type: tint::core::ir::If
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/cov-inline-pass-unreachable-func/0-opt.spvasm.expected.ir.fxc.hlsl b/test/tint/vk-gl-cts/graphicsfuzz/cov-inline-pass-unreachable-func/0-opt.spvasm.expected.ir.fxc.hlsl
deleted file mode 100644
index bdeab23..0000000
--- a/test/tint/vk-gl-cts/graphicsfuzz/cov-inline-pass-unreachable-func/0-opt.spvasm.expected.ir.fxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:198 internal compiler error: Switch() matched no cases. Type: tint::core::ir::If
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/cov-inline-pass-unreachable-func/0-opt.wgsl.expected.ir.dxc.hlsl b/test/tint/vk-gl-cts/graphicsfuzz/cov-inline-pass-unreachable-func/0-opt.wgsl.expected.ir.dxc.hlsl
deleted file mode 100644
index 4a2c666..0000000
--- a/test/tint/vk-gl-cts/graphicsfuzz/cov-inline-pass-unreachable-func/0-opt.wgsl.expected.ir.dxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::LoadVectorElement
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/cov-inline-pass-unreachable-func/0-opt.wgsl.expected.ir.fxc.hlsl b/test/tint/vk-gl-cts/graphicsfuzz/cov-inline-pass-unreachable-func/0-opt.wgsl.expected.ir.fxc.hlsl
deleted file mode 100644
index 4a2c666..0000000
--- a/test/tint/vk-gl-cts/graphicsfuzz/cov-inline-pass-unreachable-func/0-opt.wgsl.expected.ir.fxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::LoadVectorElement
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/cov-inst-combine-add-sub-increase-negative/0-opt.spvasm.expected.ir.dxc.hlsl b/test/tint/vk-gl-cts/graphicsfuzz/cov-inst-combine-add-sub-increase-negative/0-opt.spvasm.expected.ir.dxc.hlsl
deleted file mode 100644
index 3f437dc..0000000
--- a/test/tint/vk-gl-cts/graphicsfuzz/cov-inst-combine-add-sub-increase-negative/0-opt.spvasm.expected.ir.dxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Access
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/cov-inst-combine-add-sub-increase-negative/0-opt.spvasm.expected.ir.fxc.hlsl b/test/tint/vk-gl-cts/graphicsfuzz/cov-inst-combine-add-sub-increase-negative/0-opt.spvasm.expected.ir.fxc.hlsl
deleted file mode 100644
index 3f437dc..0000000
--- a/test/tint/vk-gl-cts/graphicsfuzz/cov-inst-combine-add-sub-increase-negative/0-opt.spvasm.expected.ir.fxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Access
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/cov-inst-combine-add-sub-increase-negative/0-opt.wgsl.expected.ir.dxc.hlsl b/test/tint/vk-gl-cts/graphicsfuzz/cov-inst-combine-add-sub-increase-negative/0-opt.wgsl.expected.ir.dxc.hlsl
deleted file mode 100644
index 3f437dc..0000000
--- a/test/tint/vk-gl-cts/graphicsfuzz/cov-inst-combine-add-sub-increase-negative/0-opt.wgsl.expected.ir.dxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Access
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/cov-inst-combine-add-sub-increase-negative/0-opt.wgsl.expected.ir.fxc.hlsl b/test/tint/vk-gl-cts/graphicsfuzz/cov-inst-combine-add-sub-increase-negative/0-opt.wgsl.expected.ir.fxc.hlsl
deleted file mode 100644
index 3f437dc..0000000
--- a/test/tint/vk-gl-cts/graphicsfuzz/cov-inst-combine-add-sub-increase-negative/0-opt.wgsl.expected.ir.fxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Access
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/cov-inst-combine-add-sub-ldexp/0-opt.spvasm.expected.ir.dxc.hlsl b/test/tint/vk-gl-cts/graphicsfuzz/cov-inst-combine-add-sub-ldexp/0-opt.spvasm.expected.ir.dxc.hlsl
deleted file mode 100644
index 3f437dc..0000000
--- a/test/tint/vk-gl-cts/graphicsfuzz/cov-inst-combine-add-sub-ldexp/0-opt.spvasm.expected.ir.dxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Access
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/cov-inst-combine-add-sub-ldexp/0-opt.spvasm.expected.ir.fxc.hlsl b/test/tint/vk-gl-cts/graphicsfuzz/cov-inst-combine-add-sub-ldexp/0-opt.spvasm.expected.ir.fxc.hlsl
deleted file mode 100644
index 3f437dc..0000000
--- a/test/tint/vk-gl-cts/graphicsfuzz/cov-inst-combine-add-sub-ldexp/0-opt.spvasm.expected.ir.fxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Access
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/cov-inst-combine-add-sub-ldexp/0-opt.wgsl.expected.ir.dxc.hlsl b/test/tint/vk-gl-cts/graphicsfuzz/cov-inst-combine-add-sub-ldexp/0-opt.wgsl.expected.ir.dxc.hlsl
deleted file mode 100644
index 3f437dc..0000000
--- a/test/tint/vk-gl-cts/graphicsfuzz/cov-inst-combine-add-sub-ldexp/0-opt.wgsl.expected.ir.dxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Access
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/cov-inst-combine-add-sub-ldexp/0-opt.wgsl.expected.ir.fxc.hlsl b/test/tint/vk-gl-cts/graphicsfuzz/cov-inst-combine-add-sub-ldexp/0-opt.wgsl.expected.ir.fxc.hlsl
deleted file mode 100644
index 3f437dc..0000000
--- a/test/tint/vk-gl-cts/graphicsfuzz/cov-inst-combine-add-sub-ldexp/0-opt.wgsl.expected.ir.fxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Access
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/cov-inst-combine-add-sub-neg-func-arg/0-opt.spvasm.expected.ir.dxc.hlsl b/test/tint/vk-gl-cts/graphicsfuzz/cov-inst-combine-add-sub-neg-func-arg/0-opt.spvasm.expected.ir.dxc.hlsl
deleted file mode 100644
index 3f437dc..0000000
--- a/test/tint/vk-gl-cts/graphicsfuzz/cov-inst-combine-add-sub-neg-func-arg/0-opt.spvasm.expected.ir.dxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Access
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/cov-inst-combine-add-sub-neg-func-arg/0-opt.spvasm.expected.ir.fxc.hlsl b/test/tint/vk-gl-cts/graphicsfuzz/cov-inst-combine-add-sub-neg-func-arg/0-opt.spvasm.expected.ir.fxc.hlsl
deleted file mode 100644
index 3f437dc..0000000
--- a/test/tint/vk-gl-cts/graphicsfuzz/cov-inst-combine-add-sub-neg-func-arg/0-opt.spvasm.expected.ir.fxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Access
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/cov-inst-combine-add-sub-neg-func-arg/0-opt.wgsl.expected.ir.dxc.hlsl b/test/tint/vk-gl-cts/graphicsfuzz/cov-inst-combine-add-sub-neg-func-arg/0-opt.wgsl.expected.ir.dxc.hlsl
deleted file mode 100644
index 3f437dc..0000000
--- a/test/tint/vk-gl-cts/graphicsfuzz/cov-inst-combine-add-sub-neg-func-arg/0-opt.wgsl.expected.ir.dxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Access
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/cov-inst-combine-add-sub-neg-func-arg/0-opt.wgsl.expected.ir.fxc.hlsl b/test/tint/vk-gl-cts/graphicsfuzz/cov-inst-combine-add-sub-neg-func-arg/0-opt.wgsl.expected.ir.fxc.hlsl
deleted file mode 100644
index 3f437dc..0000000
--- a/test/tint/vk-gl-cts/graphicsfuzz/cov-inst-combine-add-sub-neg-func-arg/0-opt.wgsl.expected.ir.fxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Access
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/cov-inst-combine-add-sub-pre-increase/0-opt.spvasm.expected.ir.dxc.hlsl b/test/tint/vk-gl-cts/graphicsfuzz/cov-inst-combine-add-sub-pre-increase/0-opt.spvasm.expected.ir.dxc.hlsl
deleted file mode 100644
index 3f437dc..0000000
--- a/test/tint/vk-gl-cts/graphicsfuzz/cov-inst-combine-add-sub-pre-increase/0-opt.spvasm.expected.ir.dxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Access
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/cov-inst-combine-add-sub-pre-increase/0-opt.spvasm.expected.ir.fxc.hlsl b/test/tint/vk-gl-cts/graphicsfuzz/cov-inst-combine-add-sub-pre-increase/0-opt.spvasm.expected.ir.fxc.hlsl
deleted file mode 100644
index 3f437dc..0000000
--- a/test/tint/vk-gl-cts/graphicsfuzz/cov-inst-combine-add-sub-pre-increase/0-opt.spvasm.expected.ir.fxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Access
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/cov-inst-combine-add-sub-pre-increase/0-opt.wgsl.expected.ir.dxc.hlsl b/test/tint/vk-gl-cts/graphicsfuzz/cov-inst-combine-add-sub-pre-increase/0-opt.wgsl.expected.ir.dxc.hlsl
deleted file mode 100644
index 3f437dc..0000000
--- a/test/tint/vk-gl-cts/graphicsfuzz/cov-inst-combine-add-sub-pre-increase/0-opt.wgsl.expected.ir.dxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Access
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/cov-inst-combine-add-sub-pre-increase/0-opt.wgsl.expected.ir.fxc.hlsl b/test/tint/vk-gl-cts/graphicsfuzz/cov-inst-combine-add-sub-pre-increase/0-opt.wgsl.expected.ir.fxc.hlsl
deleted file mode 100644
index 3f437dc..0000000
--- a/test/tint/vk-gl-cts/graphicsfuzz/cov-inst-combine-add-sub-pre-increase/0-opt.wgsl.expected.ir.fxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Access
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/cov-inst-combine-and-or-xor-pack-unpack/0-opt.spvasm.expected.ir.dxc.hlsl b/test/tint/vk-gl-cts/graphicsfuzz/cov-inst-combine-and-or-xor-pack-unpack/0-opt.spvasm.expected.ir.dxc.hlsl
deleted file mode 100644
index f30932b..0000000
--- a/test/tint/vk-gl-cts/graphicsfuzz/cov-inst-combine-and-or-xor-pack-unpack/0-opt.spvasm.expected.ir.dxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: pack4x8unorm
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/cov-inst-combine-and-or-xor-pack-unpack/0-opt.spvasm.expected.ir.fxc.hlsl b/test/tint/vk-gl-cts/graphicsfuzz/cov-inst-combine-and-or-xor-pack-unpack/0-opt.spvasm.expected.ir.fxc.hlsl
deleted file mode 100644
index f30932b..0000000
--- a/test/tint/vk-gl-cts/graphicsfuzz/cov-inst-combine-and-or-xor-pack-unpack/0-opt.spvasm.expected.ir.fxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: pack4x8unorm
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/cov-inst-combine-and-or-xor-pack-unpack/0-opt.wgsl.expected.ir.dxc.hlsl b/test/tint/vk-gl-cts/graphicsfuzz/cov-inst-combine-and-or-xor-pack-unpack/0-opt.wgsl.expected.ir.dxc.hlsl
deleted file mode 100644
index 3f437dc..0000000
--- a/test/tint/vk-gl-cts/graphicsfuzz/cov-inst-combine-and-or-xor-pack-unpack/0-opt.wgsl.expected.ir.dxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Access
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/cov-inst-combine-and-or-xor-pack-unpack/0-opt.wgsl.expected.ir.fxc.hlsl b/test/tint/vk-gl-cts/graphicsfuzz/cov-inst-combine-and-or-xor-pack-unpack/0-opt.wgsl.expected.ir.fxc.hlsl
deleted file mode 100644
index 3f437dc..0000000
--- a/test/tint/vk-gl-cts/graphicsfuzz/cov-inst-combine-and-or-xor-pack-unpack/0-opt.wgsl.expected.ir.fxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Access
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/cov-inst-combine-and-or-xor-xor-add/0-opt.spvasm.expected.ir.dxc.hlsl b/test/tint/vk-gl-cts/graphicsfuzz/cov-inst-combine-and-or-xor-xor-add/0-opt.spvasm.expected.ir.dxc.hlsl
deleted file mode 100644
index 3f437dc..0000000
--- a/test/tint/vk-gl-cts/graphicsfuzz/cov-inst-combine-and-or-xor-xor-add/0-opt.spvasm.expected.ir.dxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Access
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/cov-inst-combine-and-or-xor-xor-add/0-opt.spvasm.expected.ir.fxc.hlsl b/test/tint/vk-gl-cts/graphicsfuzz/cov-inst-combine-and-or-xor-xor-add/0-opt.spvasm.expected.ir.fxc.hlsl
deleted file mode 100644
index 3f437dc..0000000
--- a/test/tint/vk-gl-cts/graphicsfuzz/cov-inst-combine-and-or-xor-xor-add/0-opt.spvasm.expected.ir.fxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Access
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/cov-inst-combine-and-or-xor-xor-add/0-opt.wgsl.expected.ir.dxc.hlsl b/test/tint/vk-gl-cts/graphicsfuzz/cov-inst-combine-and-or-xor-xor-add/0-opt.wgsl.expected.ir.dxc.hlsl
deleted file mode 100644
index 3f437dc..0000000
--- a/test/tint/vk-gl-cts/graphicsfuzz/cov-inst-combine-and-or-xor-xor-add/0-opt.wgsl.expected.ir.dxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Access
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/cov-inst-combine-and-or-xor-xor-add/0-opt.wgsl.expected.ir.fxc.hlsl b/test/tint/vk-gl-cts/graphicsfuzz/cov-inst-combine-and-or-xor-xor-add/0-opt.wgsl.expected.ir.fxc.hlsl
deleted file mode 100644
index 3f437dc..0000000
--- a/test/tint/vk-gl-cts/graphicsfuzz/cov-inst-combine-and-or-xor-xor-add/0-opt.wgsl.expected.ir.fxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Access
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/cov-inst-combine-compares-ldexp/0-opt.spvasm.expected.ir.dxc.hlsl b/test/tint/vk-gl-cts/graphicsfuzz/cov-inst-combine-compares-ldexp/0-opt.spvasm.expected.ir.dxc.hlsl
deleted file mode 100644
index bdeab23..0000000
--- a/test/tint/vk-gl-cts/graphicsfuzz/cov-inst-combine-compares-ldexp/0-opt.spvasm.expected.ir.dxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:198 internal compiler error: Switch() matched no cases. Type: tint::core::ir::If
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/cov-inst-combine-compares-ldexp/0-opt.spvasm.expected.ir.fxc.hlsl b/test/tint/vk-gl-cts/graphicsfuzz/cov-inst-combine-compares-ldexp/0-opt.spvasm.expected.ir.fxc.hlsl
deleted file mode 100644
index bdeab23..0000000
--- a/test/tint/vk-gl-cts/graphicsfuzz/cov-inst-combine-compares-ldexp/0-opt.spvasm.expected.ir.fxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:198 internal compiler error: Switch() matched no cases. Type: tint::core::ir::If
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/cov-inst-combine-compares-ldexp/0-opt.wgsl.expected.ir.dxc.hlsl b/test/tint/vk-gl-cts/graphicsfuzz/cov-inst-combine-compares-ldexp/0-opt.wgsl.expected.ir.dxc.hlsl
deleted file mode 100644
index 3f437dc..0000000
--- a/test/tint/vk-gl-cts/graphicsfuzz/cov-inst-combine-compares-ldexp/0-opt.wgsl.expected.ir.dxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Access
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/cov-inst-combine-compares-ldexp/0-opt.wgsl.expected.ir.fxc.hlsl b/test/tint/vk-gl-cts/graphicsfuzz/cov-inst-combine-compares-ldexp/0-opt.wgsl.expected.ir.fxc.hlsl
deleted file mode 100644
index 3f437dc..0000000
--- a/test/tint/vk-gl-cts/graphicsfuzz/cov-inst-combine-compares-ldexp/0-opt.wgsl.expected.ir.fxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Access
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/cov-inst-combine-compares-pre-increment-clamp/0-opt.spvasm.expected.ir.dxc.hlsl b/test/tint/vk-gl-cts/graphicsfuzz/cov-inst-combine-compares-pre-increment-clamp/0-opt.spvasm.expected.ir.dxc.hlsl
deleted file mode 100644
index bdeab23..0000000
--- a/test/tint/vk-gl-cts/graphicsfuzz/cov-inst-combine-compares-pre-increment-clamp/0-opt.spvasm.expected.ir.dxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:198 internal compiler error: Switch() matched no cases. Type: tint::core::ir::If
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/cov-inst-combine-compares-pre-increment-clamp/0-opt.spvasm.expected.ir.fxc.hlsl b/test/tint/vk-gl-cts/graphicsfuzz/cov-inst-combine-compares-pre-increment-clamp/0-opt.spvasm.expected.ir.fxc.hlsl
deleted file mode 100644
index bdeab23..0000000
--- a/test/tint/vk-gl-cts/graphicsfuzz/cov-inst-combine-compares-pre-increment-clamp/0-opt.spvasm.expected.ir.fxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:198 internal compiler error: Switch() matched no cases. Type: tint::core::ir::If
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/cov-inst-combine-compares-pre-increment-clamp/0-opt.wgsl.expected.ir.dxc.hlsl b/test/tint/vk-gl-cts/graphicsfuzz/cov-inst-combine-compares-pre-increment-clamp/0-opt.wgsl.expected.ir.dxc.hlsl
deleted file mode 100644
index 4a2c666..0000000
--- a/test/tint/vk-gl-cts/graphicsfuzz/cov-inst-combine-compares-pre-increment-clamp/0-opt.wgsl.expected.ir.dxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::LoadVectorElement
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/cov-inst-combine-compares-pre-increment-clamp/0-opt.wgsl.expected.ir.fxc.hlsl b/test/tint/vk-gl-cts/graphicsfuzz/cov-inst-combine-compares-pre-increment-clamp/0-opt.wgsl.expected.ir.fxc.hlsl
deleted file mode 100644
index 4a2c666..0000000
--- a/test/tint/vk-gl-cts/graphicsfuzz/cov-inst-combine-compares-pre-increment-clamp/0-opt.wgsl.expected.ir.fxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::LoadVectorElement
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/cov-inst-combine-compares-ternary-vector-access/0-opt.spvasm.expected.ir.dxc.hlsl b/test/tint/vk-gl-cts/graphicsfuzz/cov-inst-combine-compares-ternary-vector-access/0-opt.spvasm.expected.ir.dxc.hlsl
deleted file mode 100644
index ddf0424..0000000
--- a/test/tint/vk-gl-cts/graphicsfuzz/cov-inst-combine-compares-ternary-vector-access/0-opt.spvasm.expected.ir.dxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: select
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/cov-inst-combine-compares-ternary-vector-access/0-opt.spvasm.expected.ir.fxc.hlsl b/test/tint/vk-gl-cts/graphicsfuzz/cov-inst-combine-compares-ternary-vector-access/0-opt.spvasm.expected.ir.fxc.hlsl
deleted file mode 100644
index ddf0424..0000000
--- a/test/tint/vk-gl-cts/graphicsfuzz/cov-inst-combine-compares-ternary-vector-access/0-opt.spvasm.expected.ir.fxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: select
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/cov-inst-combine-compares-ternary-vector-access/0-opt.wgsl.expected.ir.dxc.hlsl b/test/tint/vk-gl-cts/graphicsfuzz/cov-inst-combine-compares-ternary-vector-access/0-opt.wgsl.expected.ir.dxc.hlsl
deleted file mode 100644
index 4a2c666..0000000
--- a/test/tint/vk-gl-cts/graphicsfuzz/cov-inst-combine-compares-ternary-vector-access/0-opt.wgsl.expected.ir.dxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::LoadVectorElement
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/cov-inst-combine-compares-ternary-vector-access/0-opt.wgsl.expected.ir.fxc.hlsl b/test/tint/vk-gl-cts/graphicsfuzz/cov-inst-combine-compares-ternary-vector-access/0-opt.wgsl.expected.ir.fxc.hlsl
deleted file mode 100644
index 4a2c666..0000000
--- a/test/tint/vk-gl-cts/graphicsfuzz/cov-inst-combine-compares-ternary-vector-access/0-opt.wgsl.expected.ir.fxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::LoadVectorElement
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/cov-inst-combine-compares-while-modulo/0-opt.spvasm.expected.ir.dxc.hlsl b/test/tint/vk-gl-cts/graphicsfuzz/cov-inst-combine-compares-while-modulo/0-opt.spvasm.expected.ir.dxc.hlsl
deleted file mode 100644
index 3f437dc..0000000
--- a/test/tint/vk-gl-cts/graphicsfuzz/cov-inst-combine-compares-while-modulo/0-opt.spvasm.expected.ir.dxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Access
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/cov-inst-combine-compares-while-modulo/0-opt.spvasm.expected.ir.fxc.hlsl b/test/tint/vk-gl-cts/graphicsfuzz/cov-inst-combine-compares-while-modulo/0-opt.spvasm.expected.ir.fxc.hlsl
deleted file mode 100644
index 3f437dc..0000000
--- a/test/tint/vk-gl-cts/graphicsfuzz/cov-inst-combine-compares-while-modulo/0-opt.spvasm.expected.ir.fxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Access
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/cov-inst-combine-compares-while-modulo/0-opt.wgsl.expected.ir.dxc.hlsl b/test/tint/vk-gl-cts/graphicsfuzz/cov-inst-combine-compares-while-modulo/0-opt.wgsl.expected.ir.dxc.hlsl
deleted file mode 100644
index 3f437dc..0000000
--- a/test/tint/vk-gl-cts/graphicsfuzz/cov-inst-combine-compares-while-modulo/0-opt.wgsl.expected.ir.dxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Access
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/cov-inst-combine-compares-while-modulo/0-opt.wgsl.expected.ir.fxc.hlsl b/test/tint/vk-gl-cts/graphicsfuzz/cov-inst-combine-compares-while-modulo/0-opt.wgsl.expected.ir.fxc.hlsl
deleted file mode 100644
index 3f437dc..0000000
--- a/test/tint/vk-gl-cts/graphicsfuzz/cov-inst-combine-compares-while-modulo/0-opt.wgsl.expected.ir.fxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Access
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/cov-inst-combine-pack-unpack/0-opt.spvasm.expected.ir.dxc.hlsl b/test/tint/vk-gl-cts/graphicsfuzz/cov-inst-combine-pack-unpack/0-opt.spvasm.expected.ir.dxc.hlsl
deleted file mode 100644
index 2722a4c..0000000
--- a/test/tint/vk-gl-cts/graphicsfuzz/cov-inst-combine-pack-unpack/0-opt.spvasm.expected.ir.dxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: pack2x16unorm
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/cov-inst-combine-pack-unpack/0-opt.spvasm.expected.ir.fxc.hlsl b/test/tint/vk-gl-cts/graphicsfuzz/cov-inst-combine-pack-unpack/0-opt.spvasm.expected.ir.fxc.hlsl
deleted file mode 100644
index 2722a4c..0000000
--- a/test/tint/vk-gl-cts/graphicsfuzz/cov-inst-combine-pack-unpack/0-opt.spvasm.expected.ir.fxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: pack2x16unorm
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/cov-inst-combine-pack-unpack/0-opt.wgsl.expected.ir.dxc.hlsl b/test/tint/vk-gl-cts/graphicsfuzz/cov-inst-combine-pack-unpack/0-opt.wgsl.expected.ir.dxc.hlsl
deleted file mode 100644
index 3f437dc..0000000
--- a/test/tint/vk-gl-cts/graphicsfuzz/cov-inst-combine-pack-unpack/0-opt.wgsl.expected.ir.dxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Access
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/cov-inst-combine-pack-unpack/0-opt.wgsl.expected.ir.fxc.hlsl b/test/tint/vk-gl-cts/graphicsfuzz/cov-inst-combine-pack-unpack/0-opt.wgsl.expected.ir.fxc.hlsl
deleted file mode 100644
index 3f437dc..0000000
--- a/test/tint/vk-gl-cts/graphicsfuzz/cov-inst-combine-pack-unpack/0-opt.wgsl.expected.ir.fxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Access
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/cov-inst-combine-shifts-left-shift-for/0-opt.spvasm.expected.ir.dxc.hlsl b/test/tint/vk-gl-cts/graphicsfuzz/cov-inst-combine-shifts-left-shift-for/0-opt.spvasm.expected.ir.dxc.hlsl
deleted file mode 100644
index c6e1d96..0000000
--- a/test/tint/vk-gl-cts/graphicsfuzz/cov-inst-combine-shifts-left-shift-for/0-opt.spvasm.expected.ir.dxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Construct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/cov-inst-combine-shifts-left-shift-for/0-opt.spvasm.expected.ir.fxc.hlsl b/test/tint/vk-gl-cts/graphicsfuzz/cov-inst-combine-shifts-left-shift-for/0-opt.spvasm.expected.ir.fxc.hlsl
deleted file mode 100644
index c6e1d96..0000000
--- a/test/tint/vk-gl-cts/graphicsfuzz/cov-inst-combine-shifts-left-shift-for/0-opt.spvasm.expected.ir.fxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Construct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/cov-inst-combine-shifts-left-shift-for/0-opt.wgsl.expected.ir.dxc.hlsl b/test/tint/vk-gl-cts/graphicsfuzz/cov-inst-combine-shifts-left-shift-for/0-opt.wgsl.expected.ir.dxc.hlsl
deleted file mode 100644
index 3f437dc..0000000
--- a/test/tint/vk-gl-cts/graphicsfuzz/cov-inst-combine-shifts-left-shift-for/0-opt.wgsl.expected.ir.dxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Access
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/cov-inst-combine-shifts-left-shift-for/0-opt.wgsl.expected.ir.fxc.hlsl b/test/tint/vk-gl-cts/graphicsfuzz/cov-inst-combine-shifts-left-shift-for/0-opt.wgsl.expected.ir.fxc.hlsl
deleted file mode 100644
index 3f437dc..0000000
--- a/test/tint/vk-gl-cts/graphicsfuzz/cov-inst-combine-shifts-left-shift-for/0-opt.wgsl.expected.ir.fxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Access
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/cov-inst-combine-shifts-mix-mix-clamp/0-opt.spvasm.expected.ir.dxc.hlsl b/test/tint/vk-gl-cts/graphicsfuzz/cov-inst-combine-shifts-mix-mix-clamp/0-opt.spvasm.expected.ir.dxc.hlsl
deleted file mode 100644
index 3f437dc..0000000
--- a/test/tint/vk-gl-cts/graphicsfuzz/cov-inst-combine-shifts-mix-mix-clamp/0-opt.spvasm.expected.ir.dxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Access
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/cov-inst-combine-shifts-mix-mix-clamp/0-opt.spvasm.expected.ir.fxc.hlsl b/test/tint/vk-gl-cts/graphicsfuzz/cov-inst-combine-shifts-mix-mix-clamp/0-opt.spvasm.expected.ir.fxc.hlsl
deleted file mode 100644
index 3f437dc..0000000
--- a/test/tint/vk-gl-cts/graphicsfuzz/cov-inst-combine-shifts-mix-mix-clamp/0-opt.spvasm.expected.ir.fxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Access
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/cov-inst-combine-shifts-mix-mix-clamp/0-opt.wgsl.expected.ir.dxc.hlsl b/test/tint/vk-gl-cts/graphicsfuzz/cov-inst-combine-shifts-mix-mix-clamp/0-opt.wgsl.expected.ir.dxc.hlsl
deleted file mode 100644
index 3f437dc..0000000
--- a/test/tint/vk-gl-cts/graphicsfuzz/cov-inst-combine-shifts-mix-mix-clamp/0-opt.wgsl.expected.ir.dxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Access
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/cov-inst-combine-shifts-mix-mix-clamp/0-opt.wgsl.expected.ir.fxc.hlsl b/test/tint/vk-gl-cts/graphicsfuzz/cov-inst-combine-shifts-mix-mix-clamp/0-opt.wgsl.expected.ir.fxc.hlsl
deleted file mode 100644
index 3f437dc..0000000
--- a/test/tint/vk-gl-cts/graphicsfuzz/cov-inst-combine-shifts-mix-mix-clamp/0-opt.wgsl.expected.ir.fxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Access
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/cov-inst-combine-simplify-demanded-pack-unpack/0-opt.spvasm.expected.ir.dxc.hlsl b/test/tint/vk-gl-cts/graphicsfuzz/cov-inst-combine-simplify-demanded-pack-unpack/0-opt.spvasm.expected.ir.dxc.hlsl
deleted file mode 100644
index 62fbcec..0000000
--- a/test/tint/vk-gl-cts/graphicsfuzz/cov-inst-combine-simplify-demanded-pack-unpack/0-opt.spvasm.expected.ir.dxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: unpack4x8snorm
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/cov-inst-combine-simplify-demanded-pack-unpack/0-opt.spvasm.expected.ir.fxc.hlsl b/test/tint/vk-gl-cts/graphicsfuzz/cov-inst-combine-simplify-demanded-pack-unpack/0-opt.spvasm.expected.ir.fxc.hlsl
deleted file mode 100644
index 62fbcec..0000000
--- a/test/tint/vk-gl-cts/graphicsfuzz/cov-inst-combine-simplify-demanded-pack-unpack/0-opt.spvasm.expected.ir.fxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: unpack4x8snorm
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/cov-inst-combine-simplify-demanded-pack-unpack/0-opt.wgsl.expected.ir.dxc.hlsl b/test/tint/vk-gl-cts/graphicsfuzz/cov-inst-combine-simplify-demanded-pack-unpack/0-opt.wgsl.expected.ir.dxc.hlsl
deleted file mode 100644
index 62fbcec..0000000
--- a/test/tint/vk-gl-cts/graphicsfuzz/cov-inst-combine-simplify-demanded-pack-unpack/0-opt.wgsl.expected.ir.dxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: unpack4x8snorm
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/cov-inst-combine-simplify-demanded-pack-unpack/0-opt.wgsl.expected.ir.fxc.hlsl b/test/tint/vk-gl-cts/graphicsfuzz/cov-inst-combine-simplify-demanded-pack-unpack/0-opt.wgsl.expected.ir.fxc.hlsl
deleted file mode 100644
index 62fbcec..0000000
--- a/test/tint/vk-gl-cts/graphicsfuzz/cov-inst-combine-simplify-demanded-pack-unpack/0-opt.wgsl.expected.ir.fxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: unpack4x8snorm
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/cov-inst-combine-simplify-demanded-packsnorm-unpackunorm/0-opt.spvasm.expected.ir.dxc.hlsl b/test/tint/vk-gl-cts/graphicsfuzz/cov-inst-combine-simplify-demanded-packsnorm-unpackunorm/0-opt.spvasm.expected.ir.dxc.hlsl
deleted file mode 100644
index 4834dab..0000000
--- a/test/tint/vk-gl-cts/graphicsfuzz/cov-inst-combine-simplify-demanded-packsnorm-unpackunorm/0-opt.spvasm.expected.ir.dxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: pack4x8snorm
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/cov-inst-combine-simplify-demanded-packsnorm-unpackunorm/0-opt.spvasm.expected.ir.fxc.hlsl b/test/tint/vk-gl-cts/graphicsfuzz/cov-inst-combine-simplify-demanded-packsnorm-unpackunorm/0-opt.spvasm.expected.ir.fxc.hlsl
deleted file mode 100644
index 4834dab..0000000
--- a/test/tint/vk-gl-cts/graphicsfuzz/cov-inst-combine-simplify-demanded-packsnorm-unpackunorm/0-opt.spvasm.expected.ir.fxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: pack4x8snorm
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/cov-inst-combine-simplify-demanded-packsnorm-unpackunorm/0-opt.wgsl.expected.ir.dxc.hlsl b/test/tint/vk-gl-cts/graphicsfuzz/cov-inst-combine-simplify-demanded-packsnorm-unpackunorm/0-opt.wgsl.expected.ir.dxc.hlsl
deleted file mode 100644
index 3f437dc..0000000
--- a/test/tint/vk-gl-cts/graphicsfuzz/cov-inst-combine-simplify-demanded-packsnorm-unpackunorm/0-opt.wgsl.expected.ir.dxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Access
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/cov-inst-combine-simplify-demanded-packsnorm-unpackunorm/0-opt.wgsl.expected.ir.fxc.hlsl b/test/tint/vk-gl-cts/graphicsfuzz/cov-inst-combine-simplify-demanded-packsnorm-unpackunorm/0-opt.wgsl.expected.ir.fxc.hlsl
deleted file mode 100644
index 3f437dc..0000000
--- a/test/tint/vk-gl-cts/graphicsfuzz/cov-inst-combine-simplify-demanded-packsnorm-unpackunorm/0-opt.wgsl.expected.ir.fxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Access
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/cov-inst-combine-simplify-demanded-switch-or-xor/0-opt.spvasm.expected.ir.dxc.hlsl b/test/tint/vk-gl-cts/graphicsfuzz/cov-inst-combine-simplify-demanded-switch-or-xor/0-opt.spvasm.expected.ir.dxc.hlsl
deleted file mode 100644
index c6e1d96..0000000
--- a/test/tint/vk-gl-cts/graphicsfuzz/cov-inst-combine-simplify-demanded-switch-or-xor/0-opt.spvasm.expected.ir.dxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Construct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/cov-inst-combine-simplify-demanded-switch-or-xor/0-opt.spvasm.expected.ir.fxc.hlsl b/test/tint/vk-gl-cts/graphicsfuzz/cov-inst-combine-simplify-demanded-switch-or-xor/0-opt.spvasm.expected.ir.fxc.hlsl
index c6e1d96..3244a14 100644
--- a/test/tint/vk-gl-cts/graphicsfuzz/cov-inst-combine-simplify-demanded-switch-or-xor/0-opt.spvasm.expected.ir.fxc.hlsl
+++ b/test/tint/vk-gl-cts/graphicsfuzz/cov-inst-combine-simplify-demanded-switch-or-xor/0-opt.spvasm.expected.ir.fxc.hlsl
@@ -1,9 +1,55 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Construct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct main_out {
+  float4 x_GLF_color_1;
+};
+
+struct main_outputs {
+  float4 main_out_x_GLF_color_1 : SV_Target0;
+};
+
+
+cbuffer cbuffer_x_6 : register(b0) {
+  uint4 x_6[2];
+};
+cbuffer cbuffer_x_8 : register(b1) {
+  uint4 x_8[2];
+};
+static float4 x_GLF_color = (0.0f).xxxx;
+void main_1() {
+  float4 color = (0.0f).xxxx;
+  float v = asfloat(x_6[0u].x);
+  float v_1 = asfloat(x_6[0u].x);
+  float v_2 = asfloat(x_6[0u].x);
+  color = float4(v, v_1, v_2, asfloat(x_6[1u].x));
+  int x_38 = asint(x_8[1u].x);
+  switch(((1 | x_38) ^ 1)) {
+    case 0:
+    {
+      int x_44 = asint(x_8[0u].x);
+      color[x_44] = asfloat(x_6[1u].x);
+      break;
+    }
+    default:
+    {
+      break;
+    }
+  }
+  x_GLF_color = color;
+}
+
+main_out main_inner() {
+  main_1();
+  main_out v_3 = {x_GLF_color};
+  return v_3;
+}
+
+main_outputs main() {
+  main_out v_4 = main_inner();
+  main_outputs v_5 = {v_4.x_GLF_color_1};
+  return v_5;
+}
+
+FXC validation failure:
+internal error: compilation aborted unexpectedly
+
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/cov-inst-combine-simplify-demanded-switch-or-xor/0-opt.wgsl.expected.ir.dxc.hlsl b/test/tint/vk-gl-cts/graphicsfuzz/cov-inst-combine-simplify-demanded-switch-or-xor/0-opt.wgsl.expected.ir.dxc.hlsl
deleted file mode 100644
index 3f437dc..0000000
--- a/test/tint/vk-gl-cts/graphicsfuzz/cov-inst-combine-simplify-demanded-switch-or-xor/0-opt.wgsl.expected.ir.dxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Access
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/cov-inst-combine-simplify-demanded-switch-or-xor/0-opt.wgsl.expected.ir.fxc.hlsl b/test/tint/vk-gl-cts/graphicsfuzz/cov-inst-combine-simplify-demanded-switch-or-xor/0-opt.wgsl.expected.ir.fxc.hlsl
index 3f437dc..59fd7bb 100644
--- a/test/tint/vk-gl-cts/graphicsfuzz/cov-inst-combine-simplify-demanded-switch-or-xor/0-opt.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/vk-gl-cts/graphicsfuzz/cov-inst-combine-simplify-demanded-switch-or-xor/0-opt.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,58 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Access
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct main_out {
+  float4 x_GLF_color_1;
+};
+
+struct main_outputs {
+  float4 main_out_x_GLF_color_1 : SV_Target0;
+};
+
+
+cbuffer cbuffer_x_6 : register(b0) {
+  uint4 x_6[2];
+};
+cbuffer cbuffer_x_8 : register(b1) {
+  uint4 x_8[2];
+};
+static float4 x_GLF_color = (0.0f).xxxx;
+void main_1() {
+  float4 color = (0.0f).xxxx;
+  float x_29 = asfloat(x_6[0u].x);
+  float x_31 = asfloat(x_6[0u].x);
+  float x_33 = asfloat(x_6[0u].x);
+  float x_35 = asfloat(x_6[1u].x);
+  color = float4(x_29, x_31, x_33, x_35);
+  int x_38 = asint(x_8[1u].x);
+  switch(((1 | x_38) ^ 1)) {
+    case 0:
+    {
+      int x_44 = asint(x_8[0u].x);
+      float x_46 = asfloat(x_6[1u].x);
+      color[x_44] = x_46;
+      break;
+    }
+    default:
+    {
+      break;
+    }
+  }
+  float4 x_48 = color;
+  x_GLF_color = x_48;
+}
+
+main_out main_inner() {
+  main_1();
+  main_out v = {x_GLF_color};
+  return v;
+}
+
+main_outputs main() {
+  main_out v_1 = main_inner();
+  main_outputs v_2 = {v_1.x_GLF_color_1};
+  return v_2;
+}
+
+FXC validation failure:
+internal error: compilation aborted unexpectedly
+
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/cov-inst-combine-vector-ops-asin/0-opt.spvasm.expected.ir.dxc.hlsl b/test/tint/vk-gl-cts/graphicsfuzz/cov-inst-combine-vector-ops-asin/0-opt.spvasm.expected.ir.dxc.hlsl
deleted file mode 100644
index 3f437dc..0000000
--- a/test/tint/vk-gl-cts/graphicsfuzz/cov-inst-combine-vector-ops-asin/0-opt.spvasm.expected.ir.dxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Access
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/cov-inst-combine-vector-ops-asin/0-opt.spvasm.expected.ir.fxc.hlsl b/test/tint/vk-gl-cts/graphicsfuzz/cov-inst-combine-vector-ops-asin/0-opt.spvasm.expected.ir.fxc.hlsl
deleted file mode 100644
index 3f437dc..0000000
--- a/test/tint/vk-gl-cts/graphicsfuzz/cov-inst-combine-vector-ops-asin/0-opt.spvasm.expected.ir.fxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Access
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/cov-inst-combine-vector-ops-asin/0-opt.wgsl.expected.ir.dxc.hlsl b/test/tint/vk-gl-cts/graphicsfuzz/cov-inst-combine-vector-ops-asin/0-opt.wgsl.expected.ir.dxc.hlsl
deleted file mode 100644
index 3f437dc..0000000
--- a/test/tint/vk-gl-cts/graphicsfuzz/cov-inst-combine-vector-ops-asin/0-opt.wgsl.expected.ir.dxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Access
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/cov-inst-combine-vector-ops-asin/0-opt.wgsl.expected.ir.fxc.hlsl b/test/tint/vk-gl-cts/graphicsfuzz/cov-inst-combine-vector-ops-asin/0-opt.wgsl.expected.ir.fxc.hlsl
deleted file mode 100644
index 3f437dc..0000000
--- a/test/tint/vk-gl-cts/graphicsfuzz/cov-inst-combine-vector-ops-asin/0-opt.wgsl.expected.ir.fxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Access
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/cov-inst-value-tracking-inversesqrt/0-opt.spvasm.expected.ir.dxc.hlsl b/test/tint/vk-gl-cts/graphicsfuzz/cov-inst-value-tracking-inversesqrt/0-opt.spvasm.expected.ir.dxc.hlsl
deleted file mode 100644
index bdeab23..0000000
--- a/test/tint/vk-gl-cts/graphicsfuzz/cov-inst-value-tracking-inversesqrt/0-opt.spvasm.expected.ir.dxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:198 internal compiler error: Switch() matched no cases. Type: tint::core::ir::If
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/cov-inst-value-tracking-inversesqrt/0-opt.spvasm.expected.ir.fxc.hlsl b/test/tint/vk-gl-cts/graphicsfuzz/cov-inst-value-tracking-inversesqrt/0-opt.spvasm.expected.ir.fxc.hlsl
deleted file mode 100644
index bdeab23..0000000
--- a/test/tint/vk-gl-cts/graphicsfuzz/cov-inst-value-tracking-inversesqrt/0-opt.spvasm.expected.ir.fxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:198 internal compiler error: Switch() matched no cases. Type: tint::core::ir::If
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/cov-inst-value-tracking-inversesqrt/0-opt.wgsl.expected.ir.dxc.hlsl b/test/tint/vk-gl-cts/graphicsfuzz/cov-inst-value-tracking-inversesqrt/0-opt.wgsl.expected.ir.dxc.hlsl
deleted file mode 100644
index 3f437dc..0000000
--- a/test/tint/vk-gl-cts/graphicsfuzz/cov-inst-value-tracking-inversesqrt/0-opt.wgsl.expected.ir.dxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Access
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/cov-inst-value-tracking-inversesqrt/0-opt.wgsl.expected.ir.fxc.hlsl b/test/tint/vk-gl-cts/graphicsfuzz/cov-inst-value-tracking-inversesqrt/0-opt.wgsl.expected.ir.fxc.hlsl
deleted file mode 100644
index 3f437dc..0000000
--- a/test/tint/vk-gl-cts/graphicsfuzz/cov-inst-value-tracking-inversesqrt/0-opt.wgsl.expected.ir.fxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Access
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/cov-instruction-simplify-bit-shifting/0-opt.spvasm.expected.ir.dxc.hlsl b/test/tint/vk-gl-cts/graphicsfuzz/cov-instruction-simplify-bit-shifting/0-opt.spvasm.expected.ir.dxc.hlsl
deleted file mode 100644
index a249798..0000000
--- a/test/tint/vk-gl-cts/graphicsfuzz/cov-instruction-simplify-bit-shifting/0-opt.spvasm.expected.ir.dxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Bitcast
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/cov-instruction-simplify-bit-shifting/0-opt.spvasm.expected.ir.fxc.hlsl b/test/tint/vk-gl-cts/graphicsfuzz/cov-instruction-simplify-bit-shifting/0-opt.spvasm.expected.ir.fxc.hlsl
deleted file mode 100644
index a249798..0000000
--- a/test/tint/vk-gl-cts/graphicsfuzz/cov-instruction-simplify-bit-shifting/0-opt.spvasm.expected.ir.fxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Bitcast
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/cov-instruction-simplify-bit-shifting/0-opt.wgsl.expected.ir.dxc.hlsl b/test/tint/vk-gl-cts/graphicsfuzz/cov-instruction-simplify-bit-shifting/0-opt.wgsl.expected.ir.dxc.hlsl
deleted file mode 100644
index 3f437dc..0000000
--- a/test/tint/vk-gl-cts/graphicsfuzz/cov-instruction-simplify-bit-shifting/0-opt.wgsl.expected.ir.dxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Access
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/cov-instruction-simplify-bit-shifting/0-opt.wgsl.expected.ir.fxc.hlsl b/test/tint/vk-gl-cts/graphicsfuzz/cov-instruction-simplify-bit-shifting/0-opt.wgsl.expected.ir.fxc.hlsl
deleted file mode 100644
index 3f437dc..0000000
--- a/test/tint/vk-gl-cts/graphicsfuzz/cov-instruction-simplify-bit-shifting/0-opt.wgsl.expected.ir.fxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Access
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/cov-instruction-simplify-inclusive-or/0-opt.spvasm.expected.ir.dxc.hlsl b/test/tint/vk-gl-cts/graphicsfuzz/cov-instruction-simplify-inclusive-or/0-opt.spvasm.expected.ir.dxc.hlsl
deleted file mode 100644
index 3f437dc..0000000
--- a/test/tint/vk-gl-cts/graphicsfuzz/cov-instruction-simplify-inclusive-or/0-opt.spvasm.expected.ir.dxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Access
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/cov-instruction-simplify-inclusive-or/0-opt.spvasm.expected.ir.fxc.hlsl b/test/tint/vk-gl-cts/graphicsfuzz/cov-instruction-simplify-inclusive-or/0-opt.spvasm.expected.ir.fxc.hlsl
deleted file mode 100644
index 3f437dc..0000000
--- a/test/tint/vk-gl-cts/graphicsfuzz/cov-instruction-simplify-inclusive-or/0-opt.spvasm.expected.ir.fxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Access
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/cov-instruction-simplify-inclusive-or/0-opt.wgsl.expected.ir.dxc.hlsl b/test/tint/vk-gl-cts/graphicsfuzz/cov-instruction-simplify-inclusive-or/0-opt.wgsl.expected.ir.dxc.hlsl
deleted file mode 100644
index 3f437dc..0000000
--- a/test/tint/vk-gl-cts/graphicsfuzz/cov-instruction-simplify-inclusive-or/0-opt.wgsl.expected.ir.dxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Access
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/cov-instruction-simplify-inclusive-or/0-opt.wgsl.expected.ir.fxc.hlsl b/test/tint/vk-gl-cts/graphicsfuzz/cov-instruction-simplify-inclusive-or/0-opt.wgsl.expected.ir.fxc.hlsl
deleted file mode 100644
index 3f437dc..0000000
--- a/test/tint/vk-gl-cts/graphicsfuzz/cov-instruction-simplify-inclusive-or/0-opt.wgsl.expected.ir.fxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Access
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/cov-instruction-simplify-inst-combine-calls-for-compare-function-call-result/0-opt.spvasm.expected.ir.dxc.hlsl b/test/tint/vk-gl-cts/graphicsfuzz/cov-instruction-simplify-inst-combine-calls-for-compare-function-call-result/0-opt.spvasm.expected.ir.dxc.hlsl
deleted file mode 100644
index 3f437dc..0000000
--- a/test/tint/vk-gl-cts/graphicsfuzz/cov-instruction-simplify-inst-combine-calls-for-compare-function-call-result/0-opt.spvasm.expected.ir.dxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Access
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/cov-instruction-simplify-inst-combine-calls-for-compare-function-call-result/0-opt.spvasm.expected.ir.fxc.hlsl b/test/tint/vk-gl-cts/graphicsfuzz/cov-instruction-simplify-inst-combine-calls-for-compare-function-call-result/0-opt.spvasm.expected.ir.fxc.hlsl
deleted file mode 100644
index 3f437dc..0000000
--- a/test/tint/vk-gl-cts/graphicsfuzz/cov-instruction-simplify-inst-combine-calls-for-compare-function-call-result/0-opt.spvasm.expected.ir.fxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Access
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/cov-instruction-simplify-inst-combine-calls-for-compare-function-call-result/0-opt.wgsl.expected.ir.dxc.hlsl b/test/tint/vk-gl-cts/graphicsfuzz/cov-instruction-simplify-inst-combine-calls-for-compare-function-call-result/0-opt.wgsl.expected.ir.dxc.hlsl
deleted file mode 100644
index 3f437dc..0000000
--- a/test/tint/vk-gl-cts/graphicsfuzz/cov-instruction-simplify-inst-combine-calls-for-compare-function-call-result/0-opt.wgsl.expected.ir.dxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Access
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/cov-instruction-simplify-inst-combine-calls-for-compare-function-call-result/0-opt.wgsl.expected.ir.fxc.hlsl b/test/tint/vk-gl-cts/graphicsfuzz/cov-instruction-simplify-inst-combine-calls-for-compare-function-call-result/0-opt.wgsl.expected.ir.fxc.hlsl
deleted file mode 100644
index 3f437dc..0000000
--- a/test/tint/vk-gl-cts/graphicsfuzz/cov-instruction-simplify-inst-combine-calls-for-compare-function-call-result/0-opt.wgsl.expected.ir.fxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Access
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/cov-instruction-simplify-mod-acos-undefined/0-opt.spvasm.expected.ir.dxc.hlsl b/test/tint/vk-gl-cts/graphicsfuzz/cov-instruction-simplify-mod-acos-undefined/0-opt.spvasm.expected.ir.dxc.hlsl
deleted file mode 100644
index c6e1d96..0000000
--- a/test/tint/vk-gl-cts/graphicsfuzz/cov-instruction-simplify-mod-acos-undefined/0-opt.spvasm.expected.ir.dxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Construct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/cov-instruction-simplify-mod-acos-undefined/0-opt.spvasm.expected.ir.fxc.hlsl b/test/tint/vk-gl-cts/graphicsfuzz/cov-instruction-simplify-mod-acos-undefined/0-opt.spvasm.expected.ir.fxc.hlsl
deleted file mode 100644
index c6e1d96..0000000
--- a/test/tint/vk-gl-cts/graphicsfuzz/cov-instruction-simplify-mod-acos-undefined/0-opt.spvasm.expected.ir.fxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Construct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/cov-instruction-simplify-mod-acos-undefined/0-opt.wgsl.expected.ir.dxc.hlsl b/test/tint/vk-gl-cts/graphicsfuzz/cov-instruction-simplify-mod-acos-undefined/0-opt.wgsl.expected.ir.dxc.hlsl
deleted file mode 100644
index 3f437dc..0000000
--- a/test/tint/vk-gl-cts/graphicsfuzz/cov-instruction-simplify-mod-acos-undefined/0-opt.wgsl.expected.ir.dxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Access
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/cov-instruction-simplify-mod-acos-undefined/0-opt.wgsl.expected.ir.fxc.hlsl b/test/tint/vk-gl-cts/graphicsfuzz/cov-instruction-simplify-mod-acos-undefined/0-opt.wgsl.expected.ir.fxc.hlsl
deleted file mode 100644
index 3f437dc..0000000
--- a/test/tint/vk-gl-cts/graphicsfuzz/cov-instruction-simplify-mod-acos-undefined/0-opt.wgsl.expected.ir.fxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Access
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/cov-instruction-simplify-mod-sqrt-undefined/0-opt.spvasm.expected.ir.dxc.hlsl b/test/tint/vk-gl-cts/graphicsfuzz/cov-instruction-simplify-mod-sqrt-undefined/0-opt.spvasm.expected.ir.dxc.hlsl
deleted file mode 100644
index c6e1d96..0000000
--- a/test/tint/vk-gl-cts/graphicsfuzz/cov-instruction-simplify-mod-sqrt-undefined/0-opt.spvasm.expected.ir.dxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Construct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/cov-instruction-simplify-mod-sqrt-undefined/0-opt.spvasm.expected.ir.fxc.hlsl b/test/tint/vk-gl-cts/graphicsfuzz/cov-instruction-simplify-mod-sqrt-undefined/0-opt.spvasm.expected.ir.fxc.hlsl
deleted file mode 100644
index c6e1d96..0000000
--- a/test/tint/vk-gl-cts/graphicsfuzz/cov-instruction-simplify-mod-sqrt-undefined/0-opt.spvasm.expected.ir.fxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Construct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/cov-instruction-simplify-mod-sqrt-undefined/0-opt.wgsl.expected.ir.dxc.hlsl b/test/tint/vk-gl-cts/graphicsfuzz/cov-instruction-simplify-mod-sqrt-undefined/0-opt.wgsl.expected.ir.dxc.hlsl
deleted file mode 100644
index 3f437dc..0000000
--- a/test/tint/vk-gl-cts/graphicsfuzz/cov-instruction-simplify-mod-sqrt-undefined/0-opt.wgsl.expected.ir.dxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Access
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/cov-instruction-simplify-mod-sqrt-undefined/0-opt.wgsl.expected.ir.fxc.hlsl b/test/tint/vk-gl-cts/graphicsfuzz/cov-instruction-simplify-mod-sqrt-undefined/0-opt.wgsl.expected.ir.fxc.hlsl
deleted file mode 100644
index 3f437dc..0000000
--- a/test/tint/vk-gl-cts/graphicsfuzz/cov-instruction-simplify-mod-sqrt-undefined/0-opt.wgsl.expected.ir.fxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Access
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/cov-instruction-simplify-sqrt/0.spvasm.expected.ir.dxc.hlsl b/test/tint/vk-gl-cts/graphicsfuzz/cov-instruction-simplify-sqrt/0.spvasm.expected.ir.dxc.hlsl
deleted file mode 100644
index bdeab23..0000000
--- a/test/tint/vk-gl-cts/graphicsfuzz/cov-instruction-simplify-sqrt/0.spvasm.expected.ir.dxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:198 internal compiler error: Switch() matched no cases. Type: tint::core::ir::If
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/cov-instruction-simplify-sqrt/0.spvasm.expected.ir.fxc.hlsl b/test/tint/vk-gl-cts/graphicsfuzz/cov-instruction-simplify-sqrt/0.spvasm.expected.ir.fxc.hlsl
deleted file mode 100644
index bdeab23..0000000
--- a/test/tint/vk-gl-cts/graphicsfuzz/cov-instruction-simplify-sqrt/0.spvasm.expected.ir.fxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:198 internal compiler error: Switch() matched no cases. Type: tint::core::ir::If
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/cov-instruction-simplify-sqrt/0.wgsl.expected.ir.dxc.hlsl b/test/tint/vk-gl-cts/graphicsfuzz/cov-instruction-simplify-sqrt/0.wgsl.expected.ir.dxc.hlsl
deleted file mode 100644
index 3f437dc..0000000
--- a/test/tint/vk-gl-cts/graphicsfuzz/cov-instruction-simplify-sqrt/0.wgsl.expected.ir.dxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Access
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/cov-instruction-simplify-sqrt/0.wgsl.expected.ir.fxc.hlsl b/test/tint/vk-gl-cts/graphicsfuzz/cov-instruction-simplify-sqrt/0.wgsl.expected.ir.fxc.hlsl
deleted file mode 100644
index 3f437dc..0000000
--- a/test/tint/vk-gl-cts/graphicsfuzz/cov-instruction-simplify-sqrt/0.wgsl.expected.ir.fxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Access
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/cov-instructions-first-value-phi/0-opt.spvasm.expected.ir.dxc.hlsl b/test/tint/vk-gl-cts/graphicsfuzz/cov-instructions-first-value-phi/0-opt.spvasm.expected.ir.dxc.hlsl
index bdeab23..d1ee477 100644
--- a/test/tint/vk-gl-cts/graphicsfuzz/cov-instructions-first-value-phi/0-opt.spvasm.expected.ir.dxc.hlsl
+++ b/test/tint/vk-gl-cts/graphicsfuzz/cov-instructions-first-value-phi/0-opt.spvasm.expected.ir.dxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:198 internal compiler error: Switch() matched no cases. Type: tint::core::ir::If
+..\..\src\tint\lang\core\ir\transform\demote_to_helper.cc:208 internal compiler error: TINT_UNREACHABLE unexpected non-core instruction
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/cov-instructions-first-value-phi/0-opt.spvasm.expected.ir.fxc.hlsl b/test/tint/vk-gl-cts/graphicsfuzz/cov-instructions-first-value-phi/0-opt.spvasm.expected.ir.fxc.hlsl
index bdeab23..d1ee477 100644
--- a/test/tint/vk-gl-cts/graphicsfuzz/cov-instructions-first-value-phi/0-opt.spvasm.expected.ir.fxc.hlsl
+++ b/test/tint/vk-gl-cts/graphicsfuzz/cov-instructions-first-value-phi/0-opt.spvasm.expected.ir.fxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:198 internal compiler error: Switch() matched no cases. Type: tint::core::ir::If
+..\..\src\tint\lang\core\ir\transform\demote_to_helper.cc:208 internal compiler error: TINT_UNREACHABLE unexpected non-core instruction
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/cov-instructions-first-value-phi/0-opt.wgsl.expected.ir.dxc.hlsl b/test/tint/vk-gl-cts/graphicsfuzz/cov-instructions-first-value-phi/0-opt.wgsl.expected.ir.dxc.hlsl
index 4a2c666..d1ee477 100644
--- a/test/tint/vk-gl-cts/graphicsfuzz/cov-instructions-first-value-phi/0-opt.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/vk-gl-cts/graphicsfuzz/cov-instructions-first-value-phi/0-opt.wgsl.expected.ir.dxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::LoadVectorElement
+..\..\src\tint\lang\core\ir\transform\demote_to_helper.cc:208 internal compiler error: TINT_UNREACHABLE unexpected non-core instruction
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/cov-instructions-first-value-phi/0-opt.wgsl.expected.ir.fxc.hlsl b/test/tint/vk-gl-cts/graphicsfuzz/cov-instructions-first-value-phi/0-opt.wgsl.expected.ir.fxc.hlsl
index 4a2c666..d1ee477 100644
--- a/test/tint/vk-gl-cts/graphicsfuzz/cov-instructions-first-value-phi/0-opt.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/vk-gl-cts/graphicsfuzz/cov-instructions-first-value-phi/0-opt.wgsl.expected.ir.fxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::LoadVectorElement
+..\..\src\tint\lang\core\ir\transform\demote_to_helper.cc:208 internal compiler error: TINT_UNREACHABLE unexpected non-core instruction
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/cov-instructions-for-if-less-than-equal/0-opt.spvasm.expected.ir.dxc.hlsl b/test/tint/vk-gl-cts/graphicsfuzz/cov-instructions-for-if-less-than-equal/0-opt.spvasm.expected.ir.dxc.hlsl
deleted file mode 100644
index c6e1d96..0000000
--- a/test/tint/vk-gl-cts/graphicsfuzz/cov-instructions-for-if-less-than-equal/0-opt.spvasm.expected.ir.dxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Construct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/cov-instructions-for-if-less-than-equal/0-opt.spvasm.expected.ir.fxc.hlsl b/test/tint/vk-gl-cts/graphicsfuzz/cov-instructions-for-if-less-than-equal/0-opt.spvasm.expected.ir.fxc.hlsl
deleted file mode 100644
index c6e1d96..0000000
--- a/test/tint/vk-gl-cts/graphicsfuzz/cov-instructions-for-if-less-than-equal/0-opt.spvasm.expected.ir.fxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Construct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/cov-instructions-for-if-less-than-equal/0-opt.wgsl.expected.ir.dxc.hlsl b/test/tint/vk-gl-cts/graphicsfuzz/cov-instructions-for-if-less-than-equal/0-opt.wgsl.expected.ir.dxc.hlsl
deleted file mode 100644
index 3f437dc..0000000
--- a/test/tint/vk-gl-cts/graphicsfuzz/cov-instructions-for-if-less-than-equal/0-opt.wgsl.expected.ir.dxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Access
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/cov-instructions-for-if-less-than-equal/0-opt.wgsl.expected.ir.fxc.hlsl b/test/tint/vk-gl-cts/graphicsfuzz/cov-instructions-for-if-less-than-equal/0-opt.wgsl.expected.ir.fxc.hlsl
deleted file mode 100644
index 3f437dc..0000000
--- a/test/tint/vk-gl-cts/graphicsfuzz/cov-instructions-for-if-less-than-equal/0-opt.wgsl.expected.ir.fxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Access
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/cov-int-div-round-to-zero/0-opt.spvasm.expected.ir.dxc.hlsl b/test/tint/vk-gl-cts/graphicsfuzz/cov-int-div-round-to-zero/0-opt.spvasm.expected.ir.dxc.hlsl
deleted file mode 100644
index 3f437dc..0000000
--- a/test/tint/vk-gl-cts/graphicsfuzz/cov-int-div-round-to-zero/0-opt.spvasm.expected.ir.dxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Access
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/cov-int-div-round-to-zero/0-opt.spvasm.expected.ir.fxc.hlsl b/test/tint/vk-gl-cts/graphicsfuzz/cov-int-div-round-to-zero/0-opt.spvasm.expected.ir.fxc.hlsl
deleted file mode 100644
index 3f437dc..0000000
--- a/test/tint/vk-gl-cts/graphicsfuzz/cov-int-div-round-to-zero/0-opt.spvasm.expected.ir.fxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Access
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/cov-int-div-round-to-zero/0-opt.wgsl.expected.ir.dxc.hlsl b/test/tint/vk-gl-cts/graphicsfuzz/cov-int-div-round-to-zero/0-opt.wgsl.expected.ir.dxc.hlsl
deleted file mode 100644
index 3f437dc..0000000
--- a/test/tint/vk-gl-cts/graphicsfuzz/cov-int-div-round-to-zero/0-opt.wgsl.expected.ir.dxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Access
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/cov-int-div-round-to-zero/0-opt.wgsl.expected.ir.fxc.hlsl b/test/tint/vk-gl-cts/graphicsfuzz/cov-int-div-round-to-zero/0-opt.wgsl.expected.ir.fxc.hlsl
deleted file mode 100644
index 3f437dc..0000000
--- a/test/tint/vk-gl-cts/graphicsfuzz/cov-int-div-round-to-zero/0-opt.wgsl.expected.ir.fxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Access
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/cov-int-full-bits-divide-by-two-loop/0-opt.spvasm.expected.ir.dxc.hlsl b/test/tint/vk-gl-cts/graphicsfuzz/cov-int-full-bits-divide-by-two-loop/0-opt.spvasm.expected.ir.dxc.hlsl
deleted file mode 100644
index ddf0424..0000000
--- a/test/tint/vk-gl-cts/graphicsfuzz/cov-int-full-bits-divide-by-two-loop/0-opt.spvasm.expected.ir.dxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: select
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/cov-int-full-bits-divide-by-two-loop/0-opt.spvasm.expected.ir.fxc.hlsl b/test/tint/vk-gl-cts/graphicsfuzz/cov-int-full-bits-divide-by-two-loop/0-opt.spvasm.expected.ir.fxc.hlsl
deleted file mode 100644
index ddf0424..0000000
--- a/test/tint/vk-gl-cts/graphicsfuzz/cov-int-full-bits-divide-by-two-loop/0-opt.spvasm.expected.ir.fxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: select
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/cov-int-full-bits-divide-by-two-loop/0-opt.wgsl.expected.ir.dxc.hlsl b/test/tint/vk-gl-cts/graphicsfuzz/cov-int-full-bits-divide-by-two-loop/0-opt.wgsl.expected.ir.dxc.hlsl
deleted file mode 100644
index 4a2c666..0000000
--- a/test/tint/vk-gl-cts/graphicsfuzz/cov-int-full-bits-divide-by-two-loop/0-opt.wgsl.expected.ir.dxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::LoadVectorElement
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/cov-int-full-bits-divide-by-two-loop/0-opt.wgsl.expected.ir.fxc.hlsl b/test/tint/vk-gl-cts/graphicsfuzz/cov-int-full-bits-divide-by-two-loop/0-opt.wgsl.expected.ir.fxc.hlsl
deleted file mode 100644
index 4a2c666..0000000
--- a/test/tint/vk-gl-cts/graphicsfuzz/cov-int-full-bits-divide-by-two-loop/0-opt.wgsl.expected.ir.fxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::LoadVectorElement
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/cov-integer-modulo-negative/0-opt.spvasm.expected.ir.dxc.hlsl b/test/tint/vk-gl-cts/graphicsfuzz/cov-integer-modulo-negative/0-opt.spvasm.expected.ir.dxc.hlsl
deleted file mode 100644
index 3f437dc..0000000
--- a/test/tint/vk-gl-cts/graphicsfuzz/cov-integer-modulo-negative/0-opt.spvasm.expected.ir.dxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Access
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/cov-integer-modulo-negative/0-opt.spvasm.expected.ir.fxc.hlsl b/test/tint/vk-gl-cts/graphicsfuzz/cov-integer-modulo-negative/0-opt.spvasm.expected.ir.fxc.hlsl
deleted file mode 100644
index 3f437dc..0000000
--- a/test/tint/vk-gl-cts/graphicsfuzz/cov-integer-modulo-negative/0-opt.spvasm.expected.ir.fxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Access
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/cov-integer-modulo-negative/0-opt.wgsl.expected.ir.dxc.hlsl b/test/tint/vk-gl-cts/graphicsfuzz/cov-integer-modulo-negative/0-opt.wgsl.expected.ir.dxc.hlsl
deleted file mode 100644
index 3f437dc..0000000
--- a/test/tint/vk-gl-cts/graphicsfuzz/cov-integer-modulo-negative/0-opt.wgsl.expected.ir.dxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Access
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/cov-integer-modulo-negative/0-opt.wgsl.expected.ir.fxc.hlsl b/test/tint/vk-gl-cts/graphicsfuzz/cov-integer-modulo-negative/0-opt.wgsl.expected.ir.fxc.hlsl
deleted file mode 100644
index 3f437dc..0000000
--- a/test/tint/vk-gl-cts/graphicsfuzz/cov-integer-modulo-negative/0-opt.wgsl.expected.ir.fxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Access
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/cov-intervalmap-set-stop/0-opt.spvasm.expected.ir.dxc.hlsl b/test/tint/vk-gl-cts/graphicsfuzz/cov-intervalmap-set-stop/0-opt.spvasm.expected.ir.dxc.hlsl
deleted file mode 100644
index adbb0c1..0000000
--- a/test/tint/vk-gl-cts/graphicsfuzz/cov-intervalmap-set-stop/0-opt.spvasm.expected.ir.dxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:198 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Loop
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/cov-intervalmap-set-stop/0-opt.spvasm.expected.ir.fxc.hlsl b/test/tint/vk-gl-cts/graphicsfuzz/cov-intervalmap-set-stop/0-opt.spvasm.expected.ir.fxc.hlsl
deleted file mode 100644
index adbb0c1..0000000
--- a/test/tint/vk-gl-cts/graphicsfuzz/cov-intervalmap-set-stop/0-opt.spvasm.expected.ir.fxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:198 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Loop
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/cov-intervalmap-set-stop/0-opt.wgsl.expected.ir.dxc.hlsl b/test/tint/vk-gl-cts/graphicsfuzz/cov-intervalmap-set-stop/0-opt.wgsl.expected.ir.dxc.hlsl
deleted file mode 100644
index adbb0c1..0000000
--- a/test/tint/vk-gl-cts/graphicsfuzz/cov-intervalmap-set-stop/0-opt.wgsl.expected.ir.dxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:198 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Loop
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/cov-intervalmap-set-stop/0-opt.wgsl.expected.ir.fxc.hlsl b/test/tint/vk-gl-cts/graphicsfuzz/cov-intervalmap-set-stop/0-opt.wgsl.expected.ir.fxc.hlsl
deleted file mode 100644
index adbb0c1..0000000
--- a/test/tint/vk-gl-cts/graphicsfuzz/cov-intervalmap-set-stop/0-opt.wgsl.expected.ir.fxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:198 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Loop
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/cov-ldexp-undefined-mat-vec-multiply/0.spvasm.expected.ir.dxc.hlsl b/test/tint/vk-gl-cts/graphicsfuzz/cov-ldexp-undefined-mat-vec-multiply/0.spvasm.expected.ir.dxc.hlsl
deleted file mode 100644
index 3f437dc..0000000
--- a/test/tint/vk-gl-cts/graphicsfuzz/cov-ldexp-undefined-mat-vec-multiply/0.spvasm.expected.ir.dxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Access
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/cov-ldexp-undefined-mat-vec-multiply/0.spvasm.expected.ir.fxc.hlsl b/test/tint/vk-gl-cts/graphicsfuzz/cov-ldexp-undefined-mat-vec-multiply/0.spvasm.expected.ir.fxc.hlsl
index 3f437dc..bc92fff 100644
--- a/test/tint/vk-gl-cts/graphicsfuzz/cov-ldexp-undefined-mat-vec-multiply/0.spvasm.expected.ir.fxc.hlsl
+++ b/test/tint/vk-gl-cts/graphicsfuzz/cov-ldexp-undefined-mat-vec-multiply/0.spvasm.expected.ir.fxc.hlsl
@@ -1,9 +1,50 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Access
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct main_out {
+  float4 x_GLF_color_1;
+};
+
+struct main_outputs {
+  float4 main_out_x_GLF_color_1 : SV_Target0;
+};
+
+
+cbuffer cbuffer_x_6 : register(b0) {
+  uint4 x_6[2];
+};
+cbuffer cbuffer_x_8 : register(b1) {
+  uint4 x_8[2];
+};
+static float4 x_GLF_color = (0.0f).xxxx;
+void main_1() {
+  float2 v1 = (0.0f).xx;
+  float x_35 = asfloat(x_6[0u].x);
+  v1 = float2((x_35).xx);
+  int x_38 = asint(x_8[0u].x);
+  v1[x_38] = ldexp(v1.y, -256);
+  float2 v = v1;
+  float2 v_1 = float2(x_35, 0.0f);
+  if ((mul(float2x2(v_1, float2(0.0f, x_35)), v)[0u] == x_35)) {
+    float x_53 = float(x_38);
+    float x_56 = float(asint(x_8[1u].x));
+    x_GLF_color = float4(x_53, x_56, x_56, x_53);
+  } else {
+    x_GLF_color = float4((float(asint(x_8[1u].x))).xxxx);
+  }
+}
+
+main_out main_inner() {
+  main_1();
+  main_out v_2 = {x_GLF_color};
+  return v_2;
+}
+
+main_outputs main() {
+  main_out v_3 = main_inner();
+  main_outputs v_4 = {v_3.x_GLF_color_1};
+  return v_4;
+}
+
+FXC validation failure:
+c:\src\dawn\Shader@0x000001E65E1EFF60(22,3-10): error X3500: array reference cannot be used as an l-value; not natively addressable
+
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/cov-ldexp-undefined-mat-vec-multiply/0.wgsl.expected.ir.dxc.hlsl b/test/tint/vk-gl-cts/graphicsfuzz/cov-ldexp-undefined-mat-vec-multiply/0.wgsl.expected.ir.dxc.hlsl
deleted file mode 100644
index 3f437dc..0000000
--- a/test/tint/vk-gl-cts/graphicsfuzz/cov-ldexp-undefined-mat-vec-multiply/0.wgsl.expected.ir.dxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Access
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/cov-ldexp-undefined-mat-vec-multiply/0.wgsl.expected.ir.fxc.hlsl b/test/tint/vk-gl-cts/graphicsfuzz/cov-ldexp-undefined-mat-vec-multiply/0.wgsl.expected.ir.fxc.hlsl
index 3f437dc..e1ab435 100644
--- a/test/tint/vk-gl-cts/graphicsfuzz/cov-ldexp-undefined-mat-vec-multiply/0.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/vk-gl-cts/graphicsfuzz/cov-ldexp-undefined-mat-vec-multiply/0.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,54 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Access
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct main_out {
+  float4 x_GLF_color_1;
+};
+
+struct main_outputs {
+  float4 main_out_x_GLF_color_1 : SV_Target0;
+};
+
+
+cbuffer cbuffer_x_6 : register(b0) {
+  uint4 x_6[2];
+};
+cbuffer cbuffer_x_8 : register(b1) {
+  uint4 x_8[2];
+};
+static float4 x_GLF_color = (0.0f).xxxx;
+void main_1() {
+  float2 v1 = (0.0f).xx;
+  float x_35 = asfloat(x_6[0u].x);
+  v1 = float2(x_35, x_35);
+  int x_38 = asint(x_8[0u].x);
+  float x_40 = v1.y;
+  v1[x_38] = ldexp(x_40, -256);
+  float2 x_43 = v1;
+  float2 v = float2(x_35, 0.0f);
+  if ((mul(float2x2(v, float2(0.0f, x_35)), x_43)[0u] == x_35)) {
+    float x_53 = float(x_38);
+    int x_55 = asint(x_8[1u].x);
+    float x_56 = float(x_55);
+    x_GLF_color = float4(x_53, x_56, x_56, x_53);
+  } else {
+    int x_59 = asint(x_8[1u].x);
+    float x_60 = float(x_59);
+    x_GLF_color = float4(x_60, x_60, x_60, x_60);
+  }
+}
+
+main_out main_inner() {
+  main_1();
+  main_out v_1 = {x_GLF_color};
+  return v_1;
+}
+
+main_outputs main() {
+  main_out v_2 = main_inner();
+  main_outputs v_3 = {v_2.x_GLF_color_1};
+  return v_3;
+}
+
+FXC validation failure:
+c:\src\dawn\Shader@0x0000014948FA4810(23,3-10): error X3500: array reference cannot be used as an l-value; not natively addressable
+
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/cov-left-shift-array-access/0-opt.spvasm.expected.ir.dxc.hlsl b/test/tint/vk-gl-cts/graphicsfuzz/cov-left-shift-array-access/0-opt.spvasm.expected.ir.dxc.hlsl
deleted file mode 100644
index a249798..0000000
--- a/test/tint/vk-gl-cts/graphicsfuzz/cov-left-shift-array-access/0-opt.spvasm.expected.ir.dxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Bitcast
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/cov-left-shift-array-access/0-opt.spvasm.expected.ir.fxc.hlsl b/test/tint/vk-gl-cts/graphicsfuzz/cov-left-shift-array-access/0-opt.spvasm.expected.ir.fxc.hlsl
deleted file mode 100644
index a249798..0000000
--- a/test/tint/vk-gl-cts/graphicsfuzz/cov-left-shift-array-access/0-opt.spvasm.expected.ir.fxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Bitcast
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/cov-left-shift-array-access/0-opt.wgsl.expected.ir.dxc.hlsl b/test/tint/vk-gl-cts/graphicsfuzz/cov-left-shift-array-access/0-opt.wgsl.expected.ir.dxc.hlsl
deleted file mode 100644
index 3f437dc..0000000
--- a/test/tint/vk-gl-cts/graphicsfuzz/cov-left-shift-array-access/0-opt.wgsl.expected.ir.dxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Access
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/cov-left-shift-array-access/0-opt.wgsl.expected.ir.fxc.hlsl b/test/tint/vk-gl-cts/graphicsfuzz/cov-left-shift-array-access/0-opt.wgsl.expected.ir.fxc.hlsl
deleted file mode 100644
index 3f437dc..0000000
--- a/test/tint/vk-gl-cts/graphicsfuzz/cov-left-shift-array-access/0-opt.wgsl.expected.ir.fxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Access
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/cov-left-shift-right-shift-compare/0.spvasm.expected.ir.dxc.hlsl b/test/tint/vk-gl-cts/graphicsfuzz/cov-left-shift-right-shift-compare/0.spvasm.expected.ir.dxc.hlsl
deleted file mode 100644
index 3f437dc..0000000
--- a/test/tint/vk-gl-cts/graphicsfuzz/cov-left-shift-right-shift-compare/0.spvasm.expected.ir.dxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Access
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/cov-left-shift-right-shift-compare/0.spvasm.expected.ir.fxc.hlsl b/test/tint/vk-gl-cts/graphicsfuzz/cov-left-shift-right-shift-compare/0.spvasm.expected.ir.fxc.hlsl
deleted file mode 100644
index 3f437dc..0000000
--- a/test/tint/vk-gl-cts/graphicsfuzz/cov-left-shift-right-shift-compare/0.spvasm.expected.ir.fxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Access
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/cov-left-shift-right-shift-compare/0.wgsl.expected.ir.dxc.hlsl b/test/tint/vk-gl-cts/graphicsfuzz/cov-left-shift-right-shift-compare/0.wgsl.expected.ir.dxc.hlsl
deleted file mode 100644
index 3f437dc..0000000
--- a/test/tint/vk-gl-cts/graphicsfuzz/cov-left-shift-right-shift-compare/0.wgsl.expected.ir.dxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Access
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/cov-left-shift-right-shift-compare/0.wgsl.expected.ir.fxc.hlsl b/test/tint/vk-gl-cts/graphicsfuzz/cov-left-shift-right-shift-compare/0.wgsl.expected.ir.fxc.hlsl
deleted file mode 100644
index 3f437dc..0000000
--- a/test/tint/vk-gl-cts/graphicsfuzz/cov-left-shift-right-shift-compare/0.wgsl.expected.ir.fxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Access
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/cov-liveinterval-different-dest/0-opt.spvasm.expected.ir.dxc.hlsl b/test/tint/vk-gl-cts/graphicsfuzz/cov-liveinterval-different-dest/0-opt.spvasm.expected.ir.dxc.hlsl
deleted file mode 100644
index adbb0c1..0000000
--- a/test/tint/vk-gl-cts/graphicsfuzz/cov-liveinterval-different-dest/0-opt.spvasm.expected.ir.dxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:198 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Loop
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/cov-liveinterval-different-dest/0-opt.spvasm.expected.ir.fxc.hlsl b/test/tint/vk-gl-cts/graphicsfuzz/cov-liveinterval-different-dest/0-opt.spvasm.expected.ir.fxc.hlsl
deleted file mode 100644
index adbb0c1..0000000
--- a/test/tint/vk-gl-cts/graphicsfuzz/cov-liveinterval-different-dest/0-opt.spvasm.expected.ir.fxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:198 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Loop
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/cov-liveinterval-different-dest/0-opt.wgsl.expected.ir.dxc.hlsl b/test/tint/vk-gl-cts/graphicsfuzz/cov-liveinterval-different-dest/0-opt.wgsl.expected.ir.dxc.hlsl
deleted file mode 100644
index adbb0c1..0000000
--- a/test/tint/vk-gl-cts/graphicsfuzz/cov-liveinterval-different-dest/0-opt.wgsl.expected.ir.dxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:198 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Loop
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/cov-liveinterval-different-dest/0-opt.wgsl.expected.ir.fxc.hlsl b/test/tint/vk-gl-cts/graphicsfuzz/cov-liveinterval-different-dest/0-opt.wgsl.expected.ir.fxc.hlsl
deleted file mode 100644
index adbb0c1..0000000
--- a/test/tint/vk-gl-cts/graphicsfuzz/cov-liveinterval-different-dest/0-opt.wgsl.expected.ir.fxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:198 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Loop
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/cov-loop-abs-multiply-offset/0-opt.spvasm.expected.ir.dxc.hlsl b/test/tint/vk-gl-cts/graphicsfuzz/cov-loop-abs-multiply-offset/0-opt.spvasm.expected.ir.dxc.hlsl
deleted file mode 100644
index 3f437dc..0000000
--- a/test/tint/vk-gl-cts/graphicsfuzz/cov-loop-abs-multiply-offset/0-opt.spvasm.expected.ir.dxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Access
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/cov-loop-abs-multiply-offset/0-opt.spvasm.expected.ir.fxc.hlsl b/test/tint/vk-gl-cts/graphicsfuzz/cov-loop-abs-multiply-offset/0-opt.spvasm.expected.ir.fxc.hlsl
deleted file mode 100644
index 3f437dc..0000000
--- a/test/tint/vk-gl-cts/graphicsfuzz/cov-loop-abs-multiply-offset/0-opt.spvasm.expected.ir.fxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Access
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/cov-loop-abs-multiply-offset/0-opt.wgsl.expected.ir.dxc.hlsl b/test/tint/vk-gl-cts/graphicsfuzz/cov-loop-abs-multiply-offset/0-opt.wgsl.expected.ir.dxc.hlsl
deleted file mode 100644
index 3f437dc..0000000
--- a/test/tint/vk-gl-cts/graphicsfuzz/cov-loop-abs-multiply-offset/0-opt.wgsl.expected.ir.dxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Access
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/cov-loop-abs-multiply-offset/0-opt.wgsl.expected.ir.fxc.hlsl b/test/tint/vk-gl-cts/graphicsfuzz/cov-loop-abs-multiply-offset/0-opt.wgsl.expected.ir.fxc.hlsl
deleted file mode 100644
index 3f437dc..0000000
--- a/test/tint/vk-gl-cts/graphicsfuzz/cov-loop-abs-multiply-offset/0-opt.wgsl.expected.ir.fxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Access
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/cov-loop-clamp-to-one-empty-condition/0-opt.spvasm.expected.ir.dxc.hlsl b/test/tint/vk-gl-cts/graphicsfuzz/cov-loop-clamp-to-one-empty-condition/0-opt.spvasm.expected.ir.dxc.hlsl
deleted file mode 100644
index 3f437dc..0000000
--- a/test/tint/vk-gl-cts/graphicsfuzz/cov-loop-clamp-to-one-empty-condition/0-opt.spvasm.expected.ir.dxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Access
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/cov-loop-clamp-to-one-empty-condition/0-opt.spvasm.expected.ir.fxc.hlsl b/test/tint/vk-gl-cts/graphicsfuzz/cov-loop-clamp-to-one-empty-condition/0-opt.spvasm.expected.ir.fxc.hlsl
deleted file mode 100644
index 3f437dc..0000000
--- a/test/tint/vk-gl-cts/graphicsfuzz/cov-loop-clamp-to-one-empty-condition/0-opt.spvasm.expected.ir.fxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Access
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/cov-loop-clamp-to-one-empty-condition/0-opt.wgsl.expected.ir.dxc.hlsl b/test/tint/vk-gl-cts/graphicsfuzz/cov-loop-clamp-to-one-empty-condition/0-opt.wgsl.expected.ir.dxc.hlsl
deleted file mode 100644
index 3f437dc..0000000
--- a/test/tint/vk-gl-cts/graphicsfuzz/cov-loop-clamp-to-one-empty-condition/0-opt.wgsl.expected.ir.dxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Access
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/cov-loop-clamp-to-one-empty-condition/0-opt.wgsl.expected.ir.fxc.hlsl b/test/tint/vk-gl-cts/graphicsfuzz/cov-loop-clamp-to-one-empty-condition/0-opt.wgsl.expected.ir.fxc.hlsl
deleted file mode 100644
index 3f437dc..0000000
--- a/test/tint/vk-gl-cts/graphicsfuzz/cov-loop-clamp-to-one-empty-condition/0-opt.wgsl.expected.ir.fxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Access
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/cov-loop-condition-double-negate/0-opt.spvasm.expected.ir.dxc.hlsl b/test/tint/vk-gl-cts/graphicsfuzz/cov-loop-condition-double-negate/0-opt.spvasm.expected.ir.dxc.hlsl
deleted file mode 100644
index c6e1d96..0000000
--- a/test/tint/vk-gl-cts/graphicsfuzz/cov-loop-condition-double-negate/0-opt.spvasm.expected.ir.dxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Construct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/cov-loop-condition-double-negate/0-opt.spvasm.expected.ir.fxc.hlsl b/test/tint/vk-gl-cts/graphicsfuzz/cov-loop-condition-double-negate/0-opt.spvasm.expected.ir.fxc.hlsl
deleted file mode 100644
index c6e1d96..0000000
--- a/test/tint/vk-gl-cts/graphicsfuzz/cov-loop-condition-double-negate/0-opt.spvasm.expected.ir.fxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Construct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/cov-loop-condition-double-negate/0-opt.wgsl.expected.ir.dxc.hlsl b/test/tint/vk-gl-cts/graphicsfuzz/cov-loop-condition-double-negate/0-opt.wgsl.expected.ir.dxc.hlsl
deleted file mode 100644
index 3f437dc..0000000
--- a/test/tint/vk-gl-cts/graphicsfuzz/cov-loop-condition-double-negate/0-opt.wgsl.expected.ir.dxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Access
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/cov-loop-condition-double-negate/0-opt.wgsl.expected.ir.fxc.hlsl b/test/tint/vk-gl-cts/graphicsfuzz/cov-loop-condition-double-negate/0-opt.wgsl.expected.ir.fxc.hlsl
deleted file mode 100644
index 3f437dc..0000000
--- a/test/tint/vk-gl-cts/graphicsfuzz/cov-loop-condition-double-negate/0-opt.wgsl.expected.ir.fxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Access
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/cov-loop-dfdx-constant-divide/0-opt.spvasm.expected.ir.dxc.hlsl b/test/tint/vk-gl-cts/graphicsfuzz/cov-loop-dfdx-constant-divide/0-opt.spvasm.expected.ir.dxc.hlsl
deleted file mode 100644
index 3f437dc..0000000
--- a/test/tint/vk-gl-cts/graphicsfuzz/cov-loop-dfdx-constant-divide/0-opt.spvasm.expected.ir.dxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Access
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/cov-loop-dfdx-constant-divide/0-opt.spvasm.expected.ir.fxc.hlsl b/test/tint/vk-gl-cts/graphicsfuzz/cov-loop-dfdx-constant-divide/0-opt.spvasm.expected.ir.fxc.hlsl
deleted file mode 100644
index 3f437dc..0000000
--- a/test/tint/vk-gl-cts/graphicsfuzz/cov-loop-dfdx-constant-divide/0-opt.spvasm.expected.ir.fxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Access
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/cov-loop-dfdx-constant-divide/0-opt.wgsl.expected.ir.dxc.hlsl b/test/tint/vk-gl-cts/graphicsfuzz/cov-loop-dfdx-constant-divide/0-opt.wgsl.expected.ir.dxc.hlsl
deleted file mode 100644
index 3f437dc..0000000
--- a/test/tint/vk-gl-cts/graphicsfuzz/cov-loop-dfdx-constant-divide/0-opt.wgsl.expected.ir.dxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Access
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/cov-loop-dfdx-constant-divide/0-opt.wgsl.expected.ir.fxc.hlsl b/test/tint/vk-gl-cts/graphicsfuzz/cov-loop-dfdx-constant-divide/0-opt.wgsl.expected.ir.fxc.hlsl
deleted file mode 100644
index 3f437dc..0000000
--- a/test/tint/vk-gl-cts/graphicsfuzz/cov-loop-dfdx-constant-divide/0-opt.wgsl.expected.ir.fxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Access
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/cov-loop-increment-matrix-element-break-after-first-iteration/0-opt.spvasm.expected.ir.dxc.hlsl b/test/tint/vk-gl-cts/graphicsfuzz/cov-loop-increment-matrix-element-break-after-first-iteration/0-opt.spvasm.expected.ir.dxc.hlsl
deleted file mode 100644
index 3f437dc..0000000
--- a/test/tint/vk-gl-cts/graphicsfuzz/cov-loop-increment-matrix-element-break-after-first-iteration/0-opt.spvasm.expected.ir.dxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Access
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/cov-loop-increment-matrix-element-break-after-first-iteration/0-opt.spvasm.expected.ir.fxc.hlsl b/test/tint/vk-gl-cts/graphicsfuzz/cov-loop-increment-matrix-element-break-after-first-iteration/0-opt.spvasm.expected.ir.fxc.hlsl
index 3f437dc..7cc8ba6 100644
--- a/test/tint/vk-gl-cts/graphicsfuzz/cov-loop-increment-matrix-element-break-after-first-iteration/0-opt.spvasm.expected.ir.fxc.hlsl
+++ b/test/tint/vk-gl-cts/graphicsfuzz/cov-loop-increment-matrix-element-break-after-first-iteration/0-opt.spvasm.expected.ir.fxc.hlsl
@@ -1,9 +1,94 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Access
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct main_out {
+  float4 x_GLF_color_1;
+};
+
+struct main_outputs {
+  float4 main_out_x_GLF_color_1 : SV_Target0;
+};
+
+struct main_inputs {
+  float4 gl_FragCoord_param : SV_Position;
+};
+
+
+cbuffer cbuffer_x_7 : register(b1) {
+  uint4 x_7[2];
+};
+cbuffer cbuffer_x_10 : register(b0) {
+  uint4 x_10[4];
+};
+static float4 gl_FragCoord = (0.0f).xxxx;
+static float4 x_GLF_color = (0.0f).xxxx;
+void main_1() {
+  float2x3 m23 = float2x3((0.0f).xxx, (0.0f).xxx);
+  int i = 0;
+  float x_46 = asfloat(x_7[1u].x);
+  float3 v = float3(x_46, 0.0f, 0.0f);
+  m23 = float2x3(v, float3(0.0f, x_46, 0.0f));
+  i = 1;
+  {
+    while(true) {
+      bool x_80 = false;
+      bool x_81 = false;
+      int v_1 = i;
+      if ((v_1 < asint(x_10[3u].x))) {
+      } else {
+        break;
+      }
+      int x_60 = asint(x_10[0u].x);
+      int x_62 = asint(x_10[2u].x);
+      float v_2 = m23[x_60][x_62];
+      m23[x_60][x_62] = (v_2 + asfloat(x_7[0u].x));
+      float v_3 = gl_FragCoord.y;
+      if ((v_3 < asfloat(x_7[0u].x))) {
+      }
+      x_81 = true;
+      if (true) {
+        x_80 = (gl_FragCoord.x < 0.0f);
+        x_81 = x_80;
+      }
+      if (!(x_81)) {
+        break;
+      }
+      {
+        i = (i + 1);
+      }
+      continue;
+    }
+  }
+  float v_4 = float(asint(x_10[1u].x));
+  float v_5 = float(asint(x_10[1u].x));
+  float3 v_6 = float3(v_4, v_5, float(asint(x_10[1u].x)));
+  float v_7 = float(asint(x_10[1u].x));
+  float v_8 = float(asint(x_10[1u].x));
+  float2x3 x_108 = float2x3(v_6, float3(v_7, v_8, float(asint(x_10[0u].x))));
+  bool v_9 = all((m23[0u] == x_108[0u]));
+  if ((v_9 & all((m23[1u] == x_108[1u])))) {
+    float v_10 = float(asint(x_10[0u].x));
+    float v_11 = float(asint(x_10[1u].x));
+    float v_12 = float(asint(x_10[1u].x));
+    x_GLF_color = float4(v_10, v_11, v_12, float(asint(x_10[0u].x)));
+  } else {
+    x_GLF_color = float4((float(asint(x_10[1u].x))).xxxx);
+  }
+}
+
+main_out main_inner(float4 gl_FragCoord_param) {
+  gl_FragCoord = gl_FragCoord_param;
+  main_1();
+  main_out v_13 = {x_GLF_color};
+  return v_13;
+}
+
+main_outputs main(main_inputs inputs) {
+  main_out v_14 = main_inner(float4(inputs.gl_FragCoord_param.xyz, (1.0f / inputs.gl_FragCoord_param[3u])));
+  main_outputs v_15 = {v_14.x_GLF_color_1};
+  return v_15;
+}
+
+FXC validation failure:
+c:\src\dawn\Shader@0x0000026CC60A32F0(41,7-15): error X3500: array reference cannot be used as an l-value; not natively addressable
+c:\src\dawn\Shader@0x0000026CC60A32F0(30,5-15): error X3511: forced to unroll loop, but unrolling failed.
+
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/cov-loop-increment-matrix-element-break-after-first-iteration/0-opt.wgsl.expected.ir.dxc.hlsl b/test/tint/vk-gl-cts/graphicsfuzz/cov-loop-increment-matrix-element-break-after-first-iteration/0-opt.wgsl.expected.ir.dxc.hlsl
deleted file mode 100644
index 3f437dc..0000000
--- a/test/tint/vk-gl-cts/graphicsfuzz/cov-loop-increment-matrix-element-break-after-first-iteration/0-opt.wgsl.expected.ir.dxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Access
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/cov-loop-increment-matrix-element-break-after-first-iteration/0-opt.wgsl.expected.ir.fxc.hlsl b/test/tint/vk-gl-cts/graphicsfuzz/cov-loop-increment-matrix-element-break-after-first-iteration/0-opt.wgsl.expected.ir.fxc.hlsl
index 3f437dc..432118a 100644
--- a/test/tint/vk-gl-cts/graphicsfuzz/cov-loop-increment-matrix-element-break-after-first-iteration/0-opt.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/vk-gl-cts/graphicsfuzz/cov-loop-increment-matrix-element-break-after-first-iteration/0-opt.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,113 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Access
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct main_out {
+  float4 x_GLF_color_1;
+};
+
+struct main_outputs {
+  float4 main_out_x_GLF_color_1 : SV_Target0;
+};
+
+struct main_inputs {
+  float4 gl_FragCoord_param : SV_Position;
+};
+
+
+cbuffer cbuffer_x_7 : register(b1) {
+  uint4 x_7[2];
+};
+cbuffer cbuffer_x_10 : register(b0) {
+  uint4 x_10[4];
+};
+static float4 gl_FragCoord = (0.0f).xxxx;
+static float4 x_GLF_color = (0.0f).xxxx;
+void main_1() {
+  float2x3 m23 = float2x3((0.0f).xxx, (0.0f).xxx);
+  int i = 0;
+  float x_46 = asfloat(x_7[1u].x);
+  float3 v = float3(x_46, 0.0f, 0.0f);
+  m23 = float2x3(v, float3(0.0f, x_46, 0.0f));
+  i = 1;
+  {
+    while(true) {
+      bool x_80 = false;
+      bool x_81_phi = false;
+      int x_54 = i;
+      int x_56 = asint(x_10[3u].x);
+      if ((x_54 < x_56)) {
+      } else {
+        break;
+      }
+      int x_60 = asint(x_10[0u].x);
+      int x_62 = asint(x_10[2u].x);
+      float x_64 = asfloat(x_7[0u].x);
+      float x_66 = m23[x_60][x_62];
+      m23[x_60][x_62] = (x_66 + x_64);
+      float x_70 = gl_FragCoord.y;
+      float x_72 = asfloat(x_7[0u].x);
+      if ((x_70 < x_72)) {
+      }
+      x_81_phi = true;
+      if (true) {
+        float x_79 = gl_FragCoord.x;
+        x_80 = (x_79 < 0.0f);
+        x_81_phi = x_80;
+      }
+      bool x_81 = x_81_phi;
+      if (!(x_81)) {
+        break;
+      }
+      {
+        int x_85 = i;
+        i = (x_85 + 1);
+      }
+      continue;
+    }
+  }
+  float2x3 x_87 = m23;
+  int x_89 = asint(x_10[1u].x);
+  int x_92 = asint(x_10[1u].x);
+  int x_95 = asint(x_10[1u].x);
+  int x_98 = asint(x_10[1u].x);
+  int x_101 = asint(x_10[1u].x);
+  int x_104 = asint(x_10[0u].x);
+  float v_1 = float(x_89);
+  float v_2 = float(x_92);
+  float3 v_3 = float3(v_1, v_2, float(x_95));
+  float v_4 = float(x_98);
+  float v_5 = float(x_101);
+  float2x3 x_108 = float2x3(v_3, float3(v_4, v_5, float(x_104)));
+  bool v_6 = all((x_87[0u] == x_108[0u]));
+  if ((v_6 & all((x_87[1u] == x_108[1u])))) {
+    int x_122 = asint(x_10[0u].x);
+    int x_125 = asint(x_10[1u].x);
+    int x_128 = asint(x_10[1u].x);
+    int x_131 = asint(x_10[0u].x);
+    float v_7 = float(x_122);
+    float v_8 = float(x_125);
+    float v_9 = float(x_128);
+    x_GLF_color = float4(v_7, v_8, v_9, float(x_131));
+  } else {
+    int x_135 = asint(x_10[1u].x);
+    float x_136 = float(x_135);
+    x_GLF_color = float4(x_136, x_136, x_136, x_136);
+  }
+}
+
+main_out main_inner(float4 gl_FragCoord_param) {
+  gl_FragCoord = gl_FragCoord_param;
+  main_1();
+  main_out v_10 = {x_GLF_color};
+  return v_10;
+}
+
+main_outputs main(main_inputs inputs) {
+  main_out v_11 = main_inner(float4(inputs.gl_FragCoord_param.xyz, (1.0f / inputs.gl_FragCoord_param[3u])));
+  main_outputs v_12 = {v_11.x_GLF_color_1};
+  return v_12;
+}
+
+FXC validation failure:
+c:\src\dawn\Shader@0x000001F00EE7F380(43,7-15): error X3500: array reference cannot be used as an l-value; not natively addressable
+c:\src\dawn\Shader@0x000001F00EE7F380(30,5-15): error X3511: forced to unroll loop, but unrolling failed.
+
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/cov-loop-increment-or-divide-by-loop-index/0-opt.spvasm.expected.ir.dxc.hlsl b/test/tint/vk-gl-cts/graphicsfuzz/cov-loop-increment-or-divide-by-loop-index/0-opt.spvasm.expected.ir.dxc.hlsl
deleted file mode 100644
index 3f437dc..0000000
--- a/test/tint/vk-gl-cts/graphicsfuzz/cov-loop-increment-or-divide-by-loop-index/0-opt.spvasm.expected.ir.dxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Access
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/cov-loop-increment-or-divide-by-loop-index/0-opt.spvasm.expected.ir.fxc.hlsl b/test/tint/vk-gl-cts/graphicsfuzz/cov-loop-increment-or-divide-by-loop-index/0-opt.spvasm.expected.ir.fxc.hlsl
deleted file mode 100644
index 3f437dc..0000000
--- a/test/tint/vk-gl-cts/graphicsfuzz/cov-loop-increment-or-divide-by-loop-index/0-opt.spvasm.expected.ir.fxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Access
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/cov-loop-increment-or-divide-by-loop-index/0-opt.wgsl.expected.ir.dxc.hlsl b/test/tint/vk-gl-cts/graphicsfuzz/cov-loop-increment-or-divide-by-loop-index/0-opt.wgsl.expected.ir.dxc.hlsl
deleted file mode 100644
index 3f437dc..0000000
--- a/test/tint/vk-gl-cts/graphicsfuzz/cov-loop-increment-or-divide-by-loop-index/0-opt.wgsl.expected.ir.dxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Access
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/cov-loop-increment-or-divide-by-loop-index/0-opt.wgsl.expected.ir.fxc.hlsl b/test/tint/vk-gl-cts/graphicsfuzz/cov-loop-increment-or-divide-by-loop-index/0-opt.wgsl.expected.ir.fxc.hlsl
deleted file mode 100644
index 3f437dc..0000000
--- a/test/tint/vk-gl-cts/graphicsfuzz/cov-loop-increment-or-divide-by-loop-index/0-opt.wgsl.expected.ir.fxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Access
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/cov-loop-integer-half-minus-one/0-opt.spvasm.expected.ir.dxc.hlsl b/test/tint/vk-gl-cts/graphicsfuzz/cov-loop-integer-half-minus-one/0-opt.spvasm.expected.ir.dxc.hlsl
deleted file mode 100644
index 3f437dc..0000000
--- a/test/tint/vk-gl-cts/graphicsfuzz/cov-loop-integer-half-minus-one/0-opt.spvasm.expected.ir.dxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Access
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/cov-loop-integer-half-minus-one/0-opt.spvasm.expected.ir.fxc.hlsl b/test/tint/vk-gl-cts/graphicsfuzz/cov-loop-integer-half-minus-one/0-opt.spvasm.expected.ir.fxc.hlsl
deleted file mode 100644
index 3f437dc..0000000
--- a/test/tint/vk-gl-cts/graphicsfuzz/cov-loop-integer-half-minus-one/0-opt.spvasm.expected.ir.fxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Access
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/cov-loop-integer-half-minus-one/0-opt.wgsl.expected.ir.dxc.hlsl b/test/tint/vk-gl-cts/graphicsfuzz/cov-loop-integer-half-minus-one/0-opt.wgsl.expected.ir.dxc.hlsl
deleted file mode 100644
index 3f437dc..0000000
--- a/test/tint/vk-gl-cts/graphicsfuzz/cov-loop-integer-half-minus-one/0-opt.wgsl.expected.ir.dxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Access
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/cov-loop-integer-half-minus-one/0-opt.wgsl.expected.ir.fxc.hlsl b/test/tint/vk-gl-cts/graphicsfuzz/cov-loop-integer-half-minus-one/0-opt.wgsl.expected.ir.fxc.hlsl
deleted file mode 100644
index 3f437dc..0000000
--- a/test/tint/vk-gl-cts/graphicsfuzz/cov-loop-integer-half-minus-one/0-opt.wgsl.expected.ir.fxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Access
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/cov-loop-logical-xor/0-opt.spvasm.expected.ir.dxc.hlsl b/test/tint/vk-gl-cts/graphicsfuzz/cov-loop-logical-xor/0-opt.spvasm.expected.ir.dxc.hlsl
deleted file mode 100644
index 3f437dc..0000000
--- a/test/tint/vk-gl-cts/graphicsfuzz/cov-loop-logical-xor/0-opt.spvasm.expected.ir.dxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Access
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/cov-loop-logical-xor/0-opt.spvasm.expected.ir.fxc.hlsl b/test/tint/vk-gl-cts/graphicsfuzz/cov-loop-logical-xor/0-opt.spvasm.expected.ir.fxc.hlsl
deleted file mode 100644
index 3f437dc..0000000
--- a/test/tint/vk-gl-cts/graphicsfuzz/cov-loop-logical-xor/0-opt.spvasm.expected.ir.fxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Access
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/cov-loop-logical-xor/0-opt.wgsl.expected.ir.dxc.hlsl b/test/tint/vk-gl-cts/graphicsfuzz/cov-loop-logical-xor/0-opt.wgsl.expected.ir.dxc.hlsl
deleted file mode 100644
index 3f437dc..0000000
--- a/test/tint/vk-gl-cts/graphicsfuzz/cov-loop-logical-xor/0-opt.wgsl.expected.ir.dxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Access
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/cov-loop-logical-xor/0-opt.wgsl.expected.ir.fxc.hlsl b/test/tint/vk-gl-cts/graphicsfuzz/cov-loop-logical-xor/0-opt.wgsl.expected.ir.fxc.hlsl
deleted file mode 100644
index 3f437dc..0000000
--- a/test/tint/vk-gl-cts/graphicsfuzz/cov-loop-logical-xor/0-opt.wgsl.expected.ir.fxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Access
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/cov-loop-with-two-integers/0-opt.spvasm.expected.ir.dxc.hlsl b/test/tint/vk-gl-cts/graphicsfuzz/cov-loop-with-two-integers/0-opt.spvasm.expected.ir.dxc.hlsl
deleted file mode 100644
index c6e1d96..0000000
--- a/test/tint/vk-gl-cts/graphicsfuzz/cov-loop-with-two-integers/0-opt.spvasm.expected.ir.dxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Construct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/cov-loop-with-two-integers/0-opt.spvasm.expected.ir.fxc.hlsl b/test/tint/vk-gl-cts/graphicsfuzz/cov-loop-with-two-integers/0-opt.spvasm.expected.ir.fxc.hlsl
deleted file mode 100644
index c6e1d96..0000000
--- a/test/tint/vk-gl-cts/graphicsfuzz/cov-loop-with-two-integers/0-opt.spvasm.expected.ir.fxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Construct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/cov-loop-with-two-integers/0-opt.wgsl.expected.ir.dxc.hlsl b/test/tint/vk-gl-cts/graphicsfuzz/cov-loop-with-two-integers/0-opt.wgsl.expected.ir.dxc.hlsl
deleted file mode 100644
index 3f437dc..0000000
--- a/test/tint/vk-gl-cts/graphicsfuzz/cov-loop-with-two-integers/0-opt.wgsl.expected.ir.dxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Access
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/cov-loop-with-two-integers/0-opt.wgsl.expected.ir.fxc.hlsl b/test/tint/vk-gl-cts/graphicsfuzz/cov-loop-with-two-integers/0-opt.wgsl.expected.ir.fxc.hlsl
deleted file mode 100644
index 3f437dc..0000000
--- a/test/tint/vk-gl-cts/graphicsfuzz/cov-loop-with-two-integers/0-opt.wgsl.expected.ir.fxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Access
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/cov-machine-basic-block-for-for-for-less-than/0-opt.spvasm.expected.ir.dxc.hlsl b/test/tint/vk-gl-cts/graphicsfuzz/cov-machine-basic-block-for-for-for-less-than/0-opt.spvasm.expected.ir.dxc.hlsl
deleted file mode 100644
index c6e1d96..0000000
--- a/test/tint/vk-gl-cts/graphicsfuzz/cov-machine-basic-block-for-for-for-less-than/0-opt.spvasm.expected.ir.dxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Construct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/cov-machine-basic-block-for-for-for-less-than/0-opt.spvasm.expected.ir.fxc.hlsl b/test/tint/vk-gl-cts/graphicsfuzz/cov-machine-basic-block-for-for-for-less-than/0-opt.spvasm.expected.ir.fxc.hlsl
deleted file mode 100644
index c6e1d96..0000000
--- a/test/tint/vk-gl-cts/graphicsfuzz/cov-machine-basic-block-for-for-for-less-than/0-opt.spvasm.expected.ir.fxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Construct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/cov-machine-basic-block-for-for-for-less-than/0-opt.wgsl.expected.ir.dxc.hlsl b/test/tint/vk-gl-cts/graphicsfuzz/cov-machine-basic-block-for-for-for-less-than/0-opt.wgsl.expected.ir.dxc.hlsl
deleted file mode 100644
index 3f437dc..0000000
--- a/test/tint/vk-gl-cts/graphicsfuzz/cov-machine-basic-block-for-for-for-less-than/0-opt.wgsl.expected.ir.dxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Access
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/cov-machine-basic-block-for-for-for-less-than/0-opt.wgsl.expected.ir.fxc.hlsl b/test/tint/vk-gl-cts/graphicsfuzz/cov-machine-basic-block-for-for-for-less-than/0-opt.wgsl.expected.ir.fxc.hlsl
deleted file mode 100644
index 3f437dc..0000000
--- a/test/tint/vk-gl-cts/graphicsfuzz/cov-machine-basic-block-for-for-for-less-than/0-opt.wgsl.expected.ir.fxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Access
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/cov-machine-scheduler-for-if-pow/0-opt.spvasm.expected.ir.dxc.hlsl b/test/tint/vk-gl-cts/graphicsfuzz/cov-machine-scheduler-for-if-pow/0-opt.spvasm.expected.ir.dxc.hlsl
index ba8c686..d1ee477 100644
--- a/test/tint/vk-gl-cts/graphicsfuzz/cov-machine-scheduler-for-if-pow/0-opt.spvasm.expected.ir.dxc.hlsl
+++ b/test/tint/vk-gl-cts/graphicsfuzz/cov-machine-scheduler-for-if-pow/0-opt.spvasm.expected.ir.dxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Swizzle
+..\..\src\tint\lang\core\ir\transform\demote_to_helper.cc:208 internal compiler error: TINT_UNREACHABLE unexpected non-core instruction
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/cov-machine-scheduler-for-if-pow/0-opt.spvasm.expected.ir.fxc.hlsl b/test/tint/vk-gl-cts/graphicsfuzz/cov-machine-scheduler-for-if-pow/0-opt.spvasm.expected.ir.fxc.hlsl
index ba8c686..d1ee477 100644
--- a/test/tint/vk-gl-cts/graphicsfuzz/cov-machine-scheduler-for-if-pow/0-opt.spvasm.expected.ir.fxc.hlsl
+++ b/test/tint/vk-gl-cts/graphicsfuzz/cov-machine-scheduler-for-if-pow/0-opt.spvasm.expected.ir.fxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Swizzle
+..\..\src\tint\lang\core\ir\transform\demote_to_helper.cc:208 internal compiler error: TINT_UNREACHABLE unexpected non-core instruction
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/cov-machine-scheduler-for-if-pow/0-opt.wgsl.expected.ir.dxc.hlsl b/test/tint/vk-gl-cts/graphicsfuzz/cov-machine-scheduler-for-if-pow/0-opt.wgsl.expected.ir.dxc.hlsl
index c6e1d96..d1ee477 100644
--- a/test/tint/vk-gl-cts/graphicsfuzz/cov-machine-scheduler-for-if-pow/0-opt.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/vk-gl-cts/graphicsfuzz/cov-machine-scheduler-for-if-pow/0-opt.wgsl.expected.ir.dxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Construct
+..\..\src\tint\lang\core\ir\transform\demote_to_helper.cc:208 internal compiler error: TINT_UNREACHABLE unexpected non-core instruction
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/cov-machine-scheduler-for-if-pow/0-opt.wgsl.expected.ir.fxc.hlsl b/test/tint/vk-gl-cts/graphicsfuzz/cov-machine-scheduler-for-if-pow/0-opt.wgsl.expected.ir.fxc.hlsl
index c6e1d96..d1ee477 100644
--- a/test/tint/vk-gl-cts/graphicsfuzz/cov-machine-scheduler-for-if-pow/0-opt.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/vk-gl-cts/graphicsfuzz/cov-machine-scheduler-for-if-pow/0-opt.wgsl.expected.ir.fxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Construct
+..\..\src\tint\lang\core\ir\transform\demote_to_helper.cc:208 internal compiler error: TINT_UNREACHABLE unexpected non-core instruction
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/cov-machinevaluetype-one-iter-loop/0-opt.spvasm.expected.ir.dxc.hlsl b/test/tint/vk-gl-cts/graphicsfuzz/cov-machinevaluetype-one-iter-loop/0-opt.spvasm.expected.ir.dxc.hlsl
deleted file mode 100644
index adbb0c1..0000000
--- a/test/tint/vk-gl-cts/graphicsfuzz/cov-machinevaluetype-one-iter-loop/0-opt.spvasm.expected.ir.dxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:198 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Loop
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/cov-machinevaluetype-one-iter-loop/0-opt.spvasm.expected.ir.fxc.hlsl b/test/tint/vk-gl-cts/graphicsfuzz/cov-machinevaluetype-one-iter-loop/0-opt.spvasm.expected.ir.fxc.hlsl
deleted file mode 100644
index adbb0c1..0000000
--- a/test/tint/vk-gl-cts/graphicsfuzz/cov-machinevaluetype-one-iter-loop/0-opt.spvasm.expected.ir.fxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:198 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Loop
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/cov-machinevaluetype-one-iter-loop/0-opt.wgsl.expected.ir.dxc.hlsl b/test/tint/vk-gl-cts/graphicsfuzz/cov-machinevaluetype-one-iter-loop/0-opt.wgsl.expected.ir.dxc.hlsl
deleted file mode 100644
index adbb0c1..0000000
--- a/test/tint/vk-gl-cts/graphicsfuzz/cov-machinevaluetype-one-iter-loop/0-opt.wgsl.expected.ir.dxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:198 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Loop
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/cov-machinevaluetype-one-iter-loop/0-opt.wgsl.expected.ir.fxc.hlsl b/test/tint/vk-gl-cts/graphicsfuzz/cov-machinevaluetype-one-iter-loop/0-opt.wgsl.expected.ir.fxc.hlsl
deleted file mode 100644
index adbb0c1..0000000
--- a/test/tint/vk-gl-cts/graphicsfuzz/cov-machinevaluetype-one-iter-loop/0-opt.wgsl.expected.ir.fxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:198 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Loop
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/cov-matching-conditions-break/0-opt.spvasm.expected.ir.dxc.hlsl b/test/tint/vk-gl-cts/graphicsfuzz/cov-matching-conditions-break/0-opt.spvasm.expected.ir.dxc.hlsl
deleted file mode 100644
index c6e1d96..0000000
--- a/test/tint/vk-gl-cts/graphicsfuzz/cov-matching-conditions-break/0-opt.spvasm.expected.ir.dxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Construct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/cov-matching-conditions-break/0-opt.spvasm.expected.ir.fxc.hlsl b/test/tint/vk-gl-cts/graphicsfuzz/cov-matching-conditions-break/0-opt.spvasm.expected.ir.fxc.hlsl
deleted file mode 100644
index c6e1d96..0000000
--- a/test/tint/vk-gl-cts/graphicsfuzz/cov-matching-conditions-break/0-opt.spvasm.expected.ir.fxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Construct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/cov-matching-conditions-break/0-opt.wgsl.expected.ir.dxc.hlsl b/test/tint/vk-gl-cts/graphicsfuzz/cov-matching-conditions-break/0-opt.wgsl.expected.ir.dxc.hlsl
deleted file mode 100644
index 3f437dc..0000000
--- a/test/tint/vk-gl-cts/graphicsfuzz/cov-matching-conditions-break/0-opt.wgsl.expected.ir.dxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Access
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/cov-matching-conditions-break/0-opt.wgsl.expected.ir.fxc.hlsl b/test/tint/vk-gl-cts/graphicsfuzz/cov-matching-conditions-break/0-opt.wgsl.expected.ir.fxc.hlsl
deleted file mode 100644
index 3f437dc..0000000
--- a/test/tint/vk-gl-cts/graphicsfuzz/cov-matching-conditions-break/0-opt.wgsl.expected.ir.fxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Access
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/cov-matching-if-always-true-inside-loop/0-opt.spvasm.expected.ir.dxc.hlsl b/test/tint/vk-gl-cts/graphicsfuzz/cov-matching-if-always-true-inside-loop/0-opt.spvasm.expected.ir.dxc.hlsl
deleted file mode 100644
index 3f437dc..0000000
--- a/test/tint/vk-gl-cts/graphicsfuzz/cov-matching-if-always-true-inside-loop/0-opt.spvasm.expected.ir.dxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Access
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/cov-matching-if-always-true-inside-loop/0-opt.spvasm.expected.ir.fxc.hlsl b/test/tint/vk-gl-cts/graphicsfuzz/cov-matching-if-always-true-inside-loop/0-opt.spvasm.expected.ir.fxc.hlsl
deleted file mode 100644
index 3f437dc..0000000
--- a/test/tint/vk-gl-cts/graphicsfuzz/cov-matching-if-always-true-inside-loop/0-opt.spvasm.expected.ir.fxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Access
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/cov-matching-if-always-true-inside-loop/0-opt.wgsl.expected.ir.dxc.hlsl b/test/tint/vk-gl-cts/graphicsfuzz/cov-matching-if-always-true-inside-loop/0-opt.wgsl.expected.ir.dxc.hlsl
deleted file mode 100644
index 3f437dc..0000000
--- a/test/tint/vk-gl-cts/graphicsfuzz/cov-matching-if-always-true-inside-loop/0-opt.wgsl.expected.ir.dxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Access
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/cov-matching-if-always-true-inside-loop/0-opt.wgsl.expected.ir.fxc.hlsl b/test/tint/vk-gl-cts/graphicsfuzz/cov-matching-if-always-true-inside-loop/0-opt.wgsl.expected.ir.fxc.hlsl
deleted file mode 100644
index 3f437dc..0000000
--- a/test/tint/vk-gl-cts/graphicsfuzz/cov-matching-if-always-true-inside-loop/0-opt.wgsl.expected.ir.fxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Access
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/cov-matrix-double-transpose/0-opt.spvasm.expected.ir.dxc.hlsl b/test/tint/vk-gl-cts/graphicsfuzz/cov-matrix-double-transpose/0-opt.spvasm.expected.ir.dxc.hlsl
deleted file mode 100644
index 48e23f4..0000000
--- a/test/tint/vk-gl-cts/graphicsfuzz/cov-matrix-double-transpose/0-opt.spvasm.expected.ir.dxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Convert
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/cov-matrix-double-transpose/0-opt.spvasm.expected.ir.fxc.hlsl b/test/tint/vk-gl-cts/graphicsfuzz/cov-matrix-double-transpose/0-opt.spvasm.expected.ir.fxc.hlsl
deleted file mode 100644
index 48e23f4..0000000
--- a/test/tint/vk-gl-cts/graphicsfuzz/cov-matrix-double-transpose/0-opt.spvasm.expected.ir.fxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Convert
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/cov-matrix-double-transpose/0-opt.wgsl.expected.ir.dxc.hlsl b/test/tint/vk-gl-cts/graphicsfuzz/cov-matrix-double-transpose/0-opt.wgsl.expected.ir.dxc.hlsl
deleted file mode 100644
index 3f437dc..0000000
--- a/test/tint/vk-gl-cts/graphicsfuzz/cov-matrix-double-transpose/0-opt.wgsl.expected.ir.dxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Access
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/cov-matrix-double-transpose/0-opt.wgsl.expected.ir.fxc.hlsl b/test/tint/vk-gl-cts/graphicsfuzz/cov-matrix-double-transpose/0-opt.wgsl.expected.ir.fxc.hlsl
deleted file mode 100644
index 3f437dc..0000000
--- a/test/tint/vk-gl-cts/graphicsfuzz/cov-matrix-double-transpose/0-opt.wgsl.expected.ir.fxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Access
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/cov-matrix-square-mul-with-vector/0-opt.spvasm.expected.ir.dxc.hlsl b/test/tint/vk-gl-cts/graphicsfuzz/cov-matrix-square-mul-with-vector/0-opt.spvasm.expected.ir.dxc.hlsl
deleted file mode 100644
index c6e1d96..0000000
--- a/test/tint/vk-gl-cts/graphicsfuzz/cov-matrix-square-mul-with-vector/0-opt.spvasm.expected.ir.dxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Construct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/cov-matrix-square-mul-with-vector/0-opt.spvasm.expected.ir.fxc.hlsl b/test/tint/vk-gl-cts/graphicsfuzz/cov-matrix-square-mul-with-vector/0-opt.spvasm.expected.ir.fxc.hlsl
deleted file mode 100644
index c6e1d96..0000000
--- a/test/tint/vk-gl-cts/graphicsfuzz/cov-matrix-square-mul-with-vector/0-opt.spvasm.expected.ir.fxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Construct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/cov-matrix-square-mul-with-vector/0-opt.wgsl.expected.ir.dxc.hlsl b/test/tint/vk-gl-cts/graphicsfuzz/cov-matrix-square-mul-with-vector/0-opt.wgsl.expected.ir.dxc.hlsl
deleted file mode 100644
index 3f437dc..0000000
--- a/test/tint/vk-gl-cts/graphicsfuzz/cov-matrix-square-mul-with-vector/0-opt.wgsl.expected.ir.dxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Access
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/cov-matrix-square-mul-with-vector/0-opt.wgsl.expected.ir.fxc.hlsl b/test/tint/vk-gl-cts/graphicsfuzz/cov-matrix-square-mul-with-vector/0-opt.wgsl.expected.ir.fxc.hlsl
deleted file mode 100644
index 3f437dc..0000000
--- a/test/tint/vk-gl-cts/graphicsfuzz/cov-matrix-square-mul-with-vector/0-opt.wgsl.expected.ir.fxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Access
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/cov-max-clamp-same-minval/0-opt.spvasm.expected.ir.dxc.hlsl b/test/tint/vk-gl-cts/graphicsfuzz/cov-max-clamp-same-minval/0-opt.spvasm.expected.ir.dxc.hlsl
deleted file mode 100644
index bdeab23..0000000
--- a/test/tint/vk-gl-cts/graphicsfuzz/cov-max-clamp-same-minval/0-opt.spvasm.expected.ir.dxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:198 internal compiler error: Switch() matched no cases. Type: tint::core::ir::If
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/cov-max-clamp-same-minval/0-opt.spvasm.expected.ir.fxc.hlsl b/test/tint/vk-gl-cts/graphicsfuzz/cov-max-clamp-same-minval/0-opt.spvasm.expected.ir.fxc.hlsl
deleted file mode 100644
index bdeab23..0000000
--- a/test/tint/vk-gl-cts/graphicsfuzz/cov-max-clamp-same-minval/0-opt.spvasm.expected.ir.fxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:198 internal compiler error: Switch() matched no cases. Type: tint::core::ir::If
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/cov-max-clamp-same-minval/0-opt.wgsl.expected.ir.dxc.hlsl b/test/tint/vk-gl-cts/graphicsfuzz/cov-max-clamp-same-minval/0-opt.wgsl.expected.ir.dxc.hlsl
deleted file mode 100644
index 3f437dc..0000000
--- a/test/tint/vk-gl-cts/graphicsfuzz/cov-max-clamp-same-minval/0-opt.wgsl.expected.ir.dxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Access
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/cov-max-clamp-same-minval/0-opt.wgsl.expected.ir.fxc.hlsl b/test/tint/vk-gl-cts/graphicsfuzz/cov-max-clamp-same-minval/0-opt.wgsl.expected.ir.fxc.hlsl
deleted file mode 100644
index 3f437dc..0000000
--- a/test/tint/vk-gl-cts/graphicsfuzz/cov-max-clamp-same-minval/0-opt.wgsl.expected.ir.fxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Access
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/cov-max-min-less-than/0-opt.spvasm.expected.ir.dxc.hlsl b/test/tint/vk-gl-cts/graphicsfuzz/cov-max-min-less-than/0-opt.spvasm.expected.ir.dxc.hlsl
deleted file mode 100644
index 48e23f4..0000000
--- a/test/tint/vk-gl-cts/graphicsfuzz/cov-max-min-less-than/0-opt.spvasm.expected.ir.dxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Convert
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/cov-max-min-less-than/0-opt.spvasm.expected.ir.fxc.hlsl b/test/tint/vk-gl-cts/graphicsfuzz/cov-max-min-less-than/0-opt.spvasm.expected.ir.fxc.hlsl
deleted file mode 100644
index 48e23f4..0000000
--- a/test/tint/vk-gl-cts/graphicsfuzz/cov-max-min-less-than/0-opt.spvasm.expected.ir.fxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Convert
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/cov-max-min-less-than/0-opt.wgsl.expected.ir.dxc.hlsl b/test/tint/vk-gl-cts/graphicsfuzz/cov-max-min-less-than/0-opt.wgsl.expected.ir.dxc.hlsl
deleted file mode 100644
index 4a2c666..0000000
--- a/test/tint/vk-gl-cts/graphicsfuzz/cov-max-min-less-than/0-opt.wgsl.expected.ir.dxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::LoadVectorElement
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/cov-max-min-less-than/0-opt.wgsl.expected.ir.fxc.hlsl b/test/tint/vk-gl-cts/graphicsfuzz/cov-max-min-less-than/0-opt.wgsl.expected.ir.fxc.hlsl
deleted file mode 100644
index 4a2c666..0000000
--- a/test/tint/vk-gl-cts/graphicsfuzz/cov-max-min-less-than/0-opt.wgsl.expected.ir.fxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::LoadVectorElement
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/cov-mem-pass-sum-struct-members/0-opt.spvasm.expected.ir.dxc.hlsl b/test/tint/vk-gl-cts/graphicsfuzz/cov-mem-pass-sum-struct-members/0-opt.spvasm.expected.ir.dxc.hlsl
deleted file mode 100644
index 0ba40c6..0000000
--- a/test/tint/vk-gl-cts/graphicsfuzz/cov-mem-pass-sum-struct-members/0-opt.spvasm.expected.ir.dxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/cov-mem-pass-sum-struct-members/0-opt.spvasm.expected.ir.fxc.hlsl b/test/tint/vk-gl-cts/graphicsfuzz/cov-mem-pass-sum-struct-members/0-opt.spvasm.expected.ir.fxc.hlsl
deleted file mode 100644
index 0ba40c6..0000000
--- a/test/tint/vk-gl-cts/graphicsfuzz/cov-mem-pass-sum-struct-members/0-opt.spvasm.expected.ir.fxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/cov-mem-pass-sum-struct-members/0-opt.wgsl.expected.ir.dxc.hlsl b/test/tint/vk-gl-cts/graphicsfuzz/cov-mem-pass-sum-struct-members/0-opt.wgsl.expected.ir.dxc.hlsl
deleted file mode 100644
index 0ba40c6..0000000
--- a/test/tint/vk-gl-cts/graphicsfuzz/cov-mem-pass-sum-struct-members/0-opt.wgsl.expected.ir.dxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/cov-mem-pass-sum-struct-members/0-opt.wgsl.expected.ir.fxc.hlsl b/test/tint/vk-gl-cts/graphicsfuzz/cov-mem-pass-sum-struct-members/0-opt.wgsl.expected.ir.fxc.hlsl
deleted file mode 100644
index 0ba40c6..0000000
--- a/test/tint/vk-gl-cts/graphicsfuzz/cov-mem-pass-sum-struct-members/0-opt.wgsl.expected.ir.fxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/cov-mem-pass-unused-component/0-opt.spvasm.expected.ir.dxc.hlsl b/test/tint/vk-gl-cts/graphicsfuzz/cov-mem-pass-unused-component/0-opt.spvasm.expected.ir.dxc.hlsl
deleted file mode 100644
index c0935cc..0000000
--- a/test/tint/vk-gl-cts/graphicsfuzz/cov-mem-pass-unused-component/0-opt.spvasm.expected.ir.dxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:198 internal compiler error: Switch() matched no cases. Type: tint::core::ir::StoreVectorElement
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/cov-mem-pass-unused-component/0-opt.spvasm.expected.ir.fxc.hlsl b/test/tint/vk-gl-cts/graphicsfuzz/cov-mem-pass-unused-component/0-opt.spvasm.expected.ir.fxc.hlsl
deleted file mode 100644
index c0935cc..0000000
--- a/test/tint/vk-gl-cts/graphicsfuzz/cov-mem-pass-unused-component/0-opt.spvasm.expected.ir.fxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:198 internal compiler error: Switch() matched no cases. Type: tint::core::ir::StoreVectorElement
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/cov-mem-pass-unused-component/0-opt.wgsl.expected.ir.dxc.hlsl b/test/tint/vk-gl-cts/graphicsfuzz/cov-mem-pass-unused-component/0-opt.wgsl.expected.ir.dxc.hlsl
deleted file mode 100644
index 3f437dc..0000000
--- a/test/tint/vk-gl-cts/graphicsfuzz/cov-mem-pass-unused-component/0-opt.wgsl.expected.ir.dxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Access
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/cov-mem-pass-unused-component/0-opt.wgsl.expected.ir.fxc.hlsl b/test/tint/vk-gl-cts/graphicsfuzz/cov-mem-pass-unused-component/0-opt.wgsl.expected.ir.fxc.hlsl
deleted file mode 100644
index 3f437dc..0000000
--- a/test/tint/vk-gl-cts/graphicsfuzz/cov-mem-pass-unused-component/0-opt.wgsl.expected.ir.fxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Access
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/cov-merge-return-condition-twice/0-opt.spvasm.expected.ir.dxc.hlsl b/test/tint/vk-gl-cts/graphicsfuzz/cov-merge-return-condition-twice/0-opt.spvasm.expected.ir.dxc.hlsl
deleted file mode 100644
index adbb0c1..0000000
--- a/test/tint/vk-gl-cts/graphicsfuzz/cov-merge-return-condition-twice/0-opt.spvasm.expected.ir.dxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:198 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Loop
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/cov-merge-return-condition-twice/0-opt.spvasm.expected.ir.fxc.hlsl b/test/tint/vk-gl-cts/graphicsfuzz/cov-merge-return-condition-twice/0-opt.spvasm.expected.ir.fxc.hlsl
deleted file mode 100644
index adbb0c1..0000000
--- a/test/tint/vk-gl-cts/graphicsfuzz/cov-merge-return-condition-twice/0-opt.spvasm.expected.ir.fxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:198 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Loop
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/cov-merge-return-condition-twice/0-opt.wgsl.expected.ir.dxc.hlsl b/test/tint/vk-gl-cts/graphicsfuzz/cov-merge-return-condition-twice/0-opt.wgsl.expected.ir.dxc.hlsl
deleted file mode 100644
index adbb0c1..0000000
--- a/test/tint/vk-gl-cts/graphicsfuzz/cov-merge-return-condition-twice/0-opt.wgsl.expected.ir.dxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:198 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Loop
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/cov-merge-return-condition-twice/0-opt.wgsl.expected.ir.fxc.hlsl b/test/tint/vk-gl-cts/graphicsfuzz/cov-merge-return-condition-twice/0-opt.wgsl.expected.ir.fxc.hlsl
deleted file mode 100644
index adbb0c1..0000000
--- a/test/tint/vk-gl-cts/graphicsfuzz/cov-merge-return-condition-twice/0-opt.wgsl.expected.ir.fxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:198 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Loop
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/cov-min-nested-loop-same-value-for-variables/0-opt.spvasm.expected.ir.dxc.hlsl b/test/tint/vk-gl-cts/graphicsfuzz/cov-min-nested-loop-same-value-for-variables/0-opt.spvasm.expected.ir.dxc.hlsl
deleted file mode 100644
index c6e1d96..0000000
--- a/test/tint/vk-gl-cts/graphicsfuzz/cov-min-nested-loop-same-value-for-variables/0-opt.spvasm.expected.ir.dxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Construct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/cov-min-nested-loop-same-value-for-variables/0-opt.spvasm.expected.ir.fxc.hlsl b/test/tint/vk-gl-cts/graphicsfuzz/cov-min-nested-loop-same-value-for-variables/0-opt.spvasm.expected.ir.fxc.hlsl
deleted file mode 100644
index c6e1d96..0000000
--- a/test/tint/vk-gl-cts/graphicsfuzz/cov-min-nested-loop-same-value-for-variables/0-opt.spvasm.expected.ir.fxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Construct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/cov-min-nested-loop-same-value-for-variables/0-opt.wgsl.expected.ir.dxc.hlsl b/test/tint/vk-gl-cts/graphicsfuzz/cov-min-nested-loop-same-value-for-variables/0-opt.wgsl.expected.ir.dxc.hlsl
deleted file mode 100644
index 4a2c666..0000000
--- a/test/tint/vk-gl-cts/graphicsfuzz/cov-min-nested-loop-same-value-for-variables/0-opt.wgsl.expected.ir.dxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::LoadVectorElement
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/cov-min-nested-loop-same-value-for-variables/0-opt.wgsl.expected.ir.fxc.hlsl b/test/tint/vk-gl-cts/graphicsfuzz/cov-min-nested-loop-same-value-for-variables/0-opt.wgsl.expected.ir.fxc.hlsl
deleted file mode 100644
index 4a2c666..0000000
--- a/test/tint/vk-gl-cts/graphicsfuzz/cov-min-nested-loop-same-value-for-variables/0-opt.wgsl.expected.ir.fxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::LoadVectorElement
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/cov-missing-return-value-function-never-called/0-opt.spvasm.expected.ir.dxc.hlsl b/test/tint/vk-gl-cts/graphicsfuzz/cov-missing-return-value-function-never-called/0-opt.spvasm.expected.ir.dxc.hlsl
deleted file mode 100644
index 27c824a..0000000
--- a/test/tint/vk-gl-cts/graphicsfuzz/cov-missing-return-value-function-never-called/0-opt.spvasm.expected.ir.dxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:198 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Switch
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/cov-missing-return-value-function-never-called/0-opt.spvasm.expected.ir.fxc.hlsl b/test/tint/vk-gl-cts/graphicsfuzz/cov-missing-return-value-function-never-called/0-opt.spvasm.expected.ir.fxc.hlsl
deleted file mode 100644
index 27c824a..0000000
--- a/test/tint/vk-gl-cts/graphicsfuzz/cov-missing-return-value-function-never-called/0-opt.spvasm.expected.ir.fxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:198 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Switch
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/cov-missing-return-value-function-never-called/0-opt.wgsl.expected.ir.dxc.hlsl b/test/tint/vk-gl-cts/graphicsfuzz/cov-missing-return-value-function-never-called/0-opt.wgsl.expected.ir.dxc.hlsl
deleted file mode 100644
index 27c824a..0000000
--- a/test/tint/vk-gl-cts/graphicsfuzz/cov-missing-return-value-function-never-called/0-opt.wgsl.expected.ir.dxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:198 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Switch
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/cov-missing-return-value-function-never-called/0-opt.wgsl.expected.ir.fxc.hlsl b/test/tint/vk-gl-cts/graphicsfuzz/cov-missing-return-value-function-never-called/0-opt.wgsl.expected.ir.fxc.hlsl
deleted file mode 100644
index 27c824a..0000000
--- a/test/tint/vk-gl-cts/graphicsfuzz/cov-missing-return-value-function-never-called/0-opt.wgsl.expected.ir.fxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:198 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Switch
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/cov-mod-uint-bits-float/0-opt.spvasm.expected.ir.dxc.hlsl b/test/tint/vk-gl-cts/graphicsfuzz/cov-mod-uint-bits-float/0-opt.spvasm.expected.ir.dxc.hlsl
deleted file mode 100644
index c6e1d96..0000000
--- a/test/tint/vk-gl-cts/graphicsfuzz/cov-mod-uint-bits-float/0-opt.spvasm.expected.ir.dxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Construct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/cov-mod-uint-bits-float/0-opt.spvasm.expected.ir.fxc.hlsl b/test/tint/vk-gl-cts/graphicsfuzz/cov-mod-uint-bits-float/0-opt.spvasm.expected.ir.fxc.hlsl
deleted file mode 100644
index c6e1d96..0000000
--- a/test/tint/vk-gl-cts/graphicsfuzz/cov-mod-uint-bits-float/0-opt.spvasm.expected.ir.fxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Construct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/cov-mod-uint-bits-float/0-opt.wgsl.expected.ir.dxc.hlsl b/test/tint/vk-gl-cts/graphicsfuzz/cov-mod-uint-bits-float/0-opt.wgsl.expected.ir.dxc.hlsl
deleted file mode 100644
index 3f437dc..0000000
--- a/test/tint/vk-gl-cts/graphicsfuzz/cov-mod-uint-bits-float/0-opt.wgsl.expected.ir.dxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Access
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/cov-mod-uint-bits-float/0-opt.wgsl.expected.ir.fxc.hlsl b/test/tint/vk-gl-cts/graphicsfuzz/cov-mod-uint-bits-float/0-opt.wgsl.expected.ir.fxc.hlsl
deleted file mode 100644
index 3f437dc..0000000
--- a/test/tint/vk-gl-cts/graphicsfuzz/cov-mod-uint-bits-float/0-opt.wgsl.expected.ir.fxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Access
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/cov-modulo-zero-never-executed/0-opt.spvasm.expected.ir.dxc.hlsl b/test/tint/vk-gl-cts/graphicsfuzz/cov-modulo-zero-never-executed/0-opt.spvasm.expected.ir.dxc.hlsl
deleted file mode 100644
index 3f437dc..0000000
--- a/test/tint/vk-gl-cts/graphicsfuzz/cov-modulo-zero-never-executed/0-opt.spvasm.expected.ir.dxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Access
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/cov-modulo-zero-never-executed/0-opt.spvasm.expected.ir.fxc.hlsl b/test/tint/vk-gl-cts/graphicsfuzz/cov-modulo-zero-never-executed/0-opt.spvasm.expected.ir.fxc.hlsl
deleted file mode 100644
index 3f437dc..0000000
--- a/test/tint/vk-gl-cts/graphicsfuzz/cov-modulo-zero-never-executed/0-opt.spvasm.expected.ir.fxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Access
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/cov-modulo-zero-never-executed/0-opt.wgsl.expected.ir.dxc.hlsl b/test/tint/vk-gl-cts/graphicsfuzz/cov-modulo-zero-never-executed/0-opt.wgsl.expected.ir.dxc.hlsl
deleted file mode 100644
index 3f437dc..0000000
--- a/test/tint/vk-gl-cts/graphicsfuzz/cov-modulo-zero-never-executed/0-opt.wgsl.expected.ir.dxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Access
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/cov-modulo-zero-never-executed/0-opt.wgsl.expected.ir.fxc.hlsl b/test/tint/vk-gl-cts/graphicsfuzz/cov-modulo-zero-never-executed/0-opt.wgsl.expected.ir.fxc.hlsl
deleted file mode 100644
index 3f437dc..0000000
--- a/test/tint/vk-gl-cts/graphicsfuzz/cov-modulo-zero-never-executed/0-opt.wgsl.expected.ir.fxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Access
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/cov-multiple-one-iteration-loops-global-counter-write-matrices/0-opt.spvasm.expected.ir.dxc.hlsl b/test/tint/vk-gl-cts/graphicsfuzz/cov-multiple-one-iteration-loops-global-counter-write-matrices/0-opt.spvasm.expected.ir.dxc.hlsl
deleted file mode 100644
index adbb0c1..0000000
--- a/test/tint/vk-gl-cts/graphicsfuzz/cov-multiple-one-iteration-loops-global-counter-write-matrices/0-opt.spvasm.expected.ir.dxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:198 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Loop
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/cov-multiple-one-iteration-loops-global-counter-write-matrices/0-opt.spvasm.expected.ir.fxc.hlsl b/test/tint/vk-gl-cts/graphicsfuzz/cov-multiple-one-iteration-loops-global-counter-write-matrices/0-opt.spvasm.expected.ir.fxc.hlsl
index adbb0c1..90e9bef 100644
--- a/test/tint/vk-gl-cts/graphicsfuzz/cov-multiple-one-iteration-loops-global-counter-write-matrices/0-opt.spvasm.expected.ir.fxc.hlsl
+++ b/test/tint/vk-gl-cts/graphicsfuzz/cov-multiple-one-iteration-loops-global-counter-write-matrices/0-opt.spvasm.expected.ir.fxc.hlsl
@@ -1,9 +1,3 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:198 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Loop
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+test timed out after 2m0s
\ No newline at end of file
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/cov-multiple-one-iteration-loops-global-counter-write-matrices/0-opt.wgsl.expected.ir.dxc.hlsl b/test/tint/vk-gl-cts/graphicsfuzz/cov-multiple-one-iteration-loops-global-counter-write-matrices/0-opt.wgsl.expected.ir.dxc.hlsl
deleted file mode 100644
index adbb0c1..0000000
--- a/test/tint/vk-gl-cts/graphicsfuzz/cov-multiple-one-iteration-loops-global-counter-write-matrices/0-opt.wgsl.expected.ir.dxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:198 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Loop
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/cov-multiple-one-iteration-loops-global-counter-write-matrices/0-opt.wgsl.expected.ir.fxc.hlsl b/test/tint/vk-gl-cts/graphicsfuzz/cov-multiple-one-iteration-loops-global-counter-write-matrices/0-opt.wgsl.expected.ir.fxc.hlsl
index adbb0c1..90e9bef 100644
--- a/test/tint/vk-gl-cts/graphicsfuzz/cov-multiple-one-iteration-loops-global-counter-write-matrices/0-opt.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/vk-gl-cts/graphicsfuzz/cov-multiple-one-iteration-loops-global-counter-write-matrices/0-opt.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,3 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:198 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Loop
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+test timed out after 2m0s
\ No newline at end of file
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/cov-nested-functions-accumulate-global-matrix/0-opt.spvasm.expected.ir.dxc.hlsl b/test/tint/vk-gl-cts/graphicsfuzz/cov-nested-functions-accumulate-global-matrix/0-opt.spvasm.expected.ir.dxc.hlsl
deleted file mode 100644
index 6b047b4..0000000
--- a/test/tint/vk-gl-cts/graphicsfuzz/cov-nested-functions-accumulate-global-matrix/0-opt.spvasm.expected.ir.dxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:287 internal compiler error: Switch() matched no cases. Type: tint::core::ir::FunctionParam
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/cov-nested-functions-accumulate-global-matrix/0-opt.spvasm.expected.ir.fxc.hlsl b/test/tint/vk-gl-cts/graphicsfuzz/cov-nested-functions-accumulate-global-matrix/0-opt.spvasm.expected.ir.fxc.hlsl
deleted file mode 100644
index 6b047b4..0000000
--- a/test/tint/vk-gl-cts/graphicsfuzz/cov-nested-functions-accumulate-global-matrix/0-opt.spvasm.expected.ir.fxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:287 internal compiler error: Switch() matched no cases. Type: tint::core::ir::FunctionParam
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/cov-nested-functions-accumulate-global-matrix/0-opt.wgsl.expected.ir.dxc.hlsl b/test/tint/vk-gl-cts/graphicsfuzz/cov-nested-functions-accumulate-global-matrix/0-opt.wgsl.expected.ir.dxc.hlsl
deleted file mode 100644
index 6b047b4..0000000
--- a/test/tint/vk-gl-cts/graphicsfuzz/cov-nested-functions-accumulate-global-matrix/0-opt.wgsl.expected.ir.dxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:287 internal compiler error: Switch() matched no cases. Type: tint::core::ir::FunctionParam
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/cov-nested-functions-accumulate-global-matrix/0-opt.wgsl.expected.ir.fxc.hlsl b/test/tint/vk-gl-cts/graphicsfuzz/cov-nested-functions-accumulate-global-matrix/0-opt.wgsl.expected.ir.fxc.hlsl
deleted file mode 100644
index 6b047b4..0000000
--- a/test/tint/vk-gl-cts/graphicsfuzz/cov-nested-functions-accumulate-global-matrix/0-opt.wgsl.expected.ir.fxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:287 internal compiler error: Switch() matched no cases. Type: tint::core::ir::FunctionParam
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/cov-nested-loop-undefined-smoothstep-never-executed/0-opt.spvasm.expected.ir.dxc.hlsl b/test/tint/vk-gl-cts/graphicsfuzz/cov-nested-loop-undefined-smoothstep-never-executed/0-opt.spvasm.expected.ir.dxc.hlsl
deleted file mode 100644
index c6e1d96..0000000
--- a/test/tint/vk-gl-cts/graphicsfuzz/cov-nested-loop-undefined-smoothstep-never-executed/0-opt.spvasm.expected.ir.dxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Construct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/cov-nested-loop-undefined-smoothstep-never-executed/0-opt.spvasm.expected.ir.fxc.hlsl b/test/tint/vk-gl-cts/graphicsfuzz/cov-nested-loop-undefined-smoothstep-never-executed/0-opt.spvasm.expected.ir.fxc.hlsl
index c6e1d96..3383d6d 100644
--- a/test/tint/vk-gl-cts/graphicsfuzz/cov-nested-loop-undefined-smoothstep-never-executed/0-opt.spvasm.expected.ir.fxc.hlsl
+++ b/test/tint/vk-gl-cts/graphicsfuzz/cov-nested-loop-undefined-smoothstep-never-executed/0-opt.spvasm.expected.ir.fxc.hlsl
@@ -1,9 +1,93 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Construct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct main_out {
+  float4 x_GLF_color_1;
+};
+
+struct main_outputs {
+  float4 main_out_x_GLF_color_1 : SV_Target0;
+};
+
+
+cbuffer cbuffer_x_6 : register(b0) {
+  uint4 x_6[2];
+};
+cbuffer cbuffer_x_10 : register(b1) {
+  uint4 x_10[4];
+};
+static float4 x_GLF_color = (0.0f).xxxx;
+void main_1() {
+  float4 v0 = (0.0f).xxxx;
+  float4 v1 = (0.0f).xxxx;
+  int a = 0;
+  int c = 0;
+  v0 = float4((asfloat(x_6[1u].x)).xxxx);
+  v1 = float4((asfloat(x_6[0u].x)).xxxx);
+  a = asint(x_10[1u].x);
+  {
+    while(true) {
+      int v = a;
+      if ((v < asint(x_10[0u].x))) {
+      } else {
+        break;
+      }
+      c = asint(x_10[3u].x);
+      {
+        while(true) {
+          int v_1 = c;
+          if ((v_1 < asint(x_10[2u].x))) {
+          } else {
+            break;
+          }
+          int x_69 = min(max(c, 0), 3);
+          float v_2 = v0[x_69];
+          v0[x_69] = (v_2 - asfloat(x_6[1u].x));
+          int v_3 = asint(x_10[1u].x);
+          if ((v_3 == asint(x_10[3u].x))) {
+            int x_83 = a;
+            float v_4 = asfloat(x_6[1u].x);
+            float v_5 = asfloat(x_6[1u].x);
+            float4 v_6 = float4(v_4, v_5, asfloat(x_6[1u].x), 3.0f);
+            float4 v_7 = smoothstep(v_6, (1.0f).xxxx, v0);
+            v1[x_83] = v_7[a];
+          }
+          {
+            c = (c + 1);
+          }
+          continue;
+        }
+      }
+      {
+        a = (a + 1);
+      }
+      continue;
+    }
+  }
+  float v_8 = v1.x;
+  if ((v_8 == asfloat(x_6[0u].x))) {
+    float v_9 = float(asint(x_10[1u].x));
+    float v_10 = float(asint(x_10[3u].x));
+    float v_11 = float(asint(x_10[3u].x));
+    x_GLF_color = float4(v_9, v_10, v_11, float(asint(x_10[1u].x)));
+  } else {
+    x_GLF_color = float4((float(asint(x_10[3u].x))).xxxx);
+  }
+}
+
+main_out main_inner() {
+  main_1();
+  main_out v_12 = {x_GLF_color};
+  return v_12;
+}
+
+main_outputs main() {
+  main_out v_13 = main_inner();
+  main_outputs v_14 = {v_13.x_GLF_color_1};
+  return v_14;
+}
+
+FXC validation failure:
+c:\src\dawn\Shader@0x000002C0441E6340(42,11-18): error X3500: array reference cannot be used as an l-value; not natively addressable
+c:\src\dawn\Shader@0x000002C0441E6340(34,9-19): error X3511: forced to unroll loop, but unrolling failed.
+c:\src\dawn\Shader@0x000002C0441E6340(26,5-15): error X3511: forced to unroll loop, but unrolling failed.
+
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/cov-nested-loop-undefined-smoothstep-never-executed/0-opt.wgsl.expected.ir.dxc.hlsl b/test/tint/vk-gl-cts/graphicsfuzz/cov-nested-loop-undefined-smoothstep-never-executed/0-opt.wgsl.expected.ir.dxc.hlsl
deleted file mode 100644
index 3f437dc..0000000
--- a/test/tint/vk-gl-cts/graphicsfuzz/cov-nested-loop-undefined-smoothstep-never-executed/0-opt.wgsl.expected.ir.dxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Access
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/cov-nested-loop-undefined-smoothstep-never-executed/0-opt.wgsl.expected.ir.fxc.hlsl b/test/tint/vk-gl-cts/graphicsfuzz/cov-nested-loop-undefined-smoothstep-never-executed/0-opt.wgsl.expected.ir.fxc.hlsl
index 3f437dc..ae1c1d6 100644
--- a/test/tint/vk-gl-cts/graphicsfuzz/cov-nested-loop-undefined-smoothstep-never-executed/0-opt.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/vk-gl-cts/graphicsfuzz/cov-nested-loop-undefined-smoothstep-never-executed/0-opt.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,112 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Access
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct main_out {
+  float4 x_GLF_color_1;
+};
+
+struct main_outputs {
+  float4 main_out_x_GLF_color_1 : SV_Target0;
+};
+
+
+cbuffer cbuffer_x_6 : register(b0) {
+  uint4 x_6[2];
+};
+cbuffer cbuffer_x_10 : register(b1) {
+  uint4 x_10[4];
+};
+static float4 x_GLF_color = (0.0f).xxxx;
+void main_1() {
+  float4 v0 = (0.0f).xxxx;
+  float4 v1 = (0.0f).xxxx;
+  int a = 0;
+  int c = 0;
+  float x_41 = asfloat(x_6[1u].x);
+  v0 = float4(x_41, x_41, x_41, x_41);
+  float x_44 = asfloat(x_6[0u].x);
+  v1 = float4(x_44, x_44, x_44, x_44);
+  int x_47 = asint(x_10[1u].x);
+  a = x_47;
+  {
+    while(true) {
+      int x_52 = a;
+      int x_54 = asint(x_10[0u].x);
+      if ((x_52 < x_54)) {
+      } else {
+        break;
+      }
+      int x_58 = asint(x_10[3u].x);
+      c = x_58;
+      {
+        while(true) {
+          int x_63 = c;
+          int x_65 = asint(x_10[2u].x);
+          if ((x_63 < x_65)) {
+          } else {
+            break;
+          }
+          int x_68 = c;
+          int x_69 = min(max(x_68, 0), 3);
+          float x_71 = asfloat(x_6[1u].x);
+          float x_73 = v0[x_69];
+          v0[x_69] = (x_73 - x_71);
+          int x_77 = asint(x_10[1u].x);
+          int x_79 = asint(x_10[3u].x);
+          if ((x_77 == x_79)) {
+            int x_83 = a;
+            float x_85 = asfloat(x_6[1u].x);
+            float x_87 = asfloat(x_6[1u].x);
+            float x_89 = asfloat(x_6[1u].x);
+            float4 x_91 = v0;
+            int x_93 = a;
+            v1[x_83] = smoothstep(float4(x_85, x_87, x_89, 3.0f), (1.0f).xxxx, x_91)[x_93];
+          }
+          {
+            int x_96 = c;
+            c = (x_96 + 1);
+          }
+          continue;
+        }
+      }
+      {
+        int x_98 = a;
+        a = (x_98 + 1);
+      }
+      continue;
+    }
+  }
+  float x_101 = v1.x;
+  float x_103 = asfloat(x_6[0u].x);
+  if ((x_101 == x_103)) {
+    int x_109 = asint(x_10[1u].x);
+    int x_112 = asint(x_10[3u].x);
+    int x_115 = asint(x_10[3u].x);
+    int x_118 = asint(x_10[1u].x);
+    float v = float(x_109);
+    float v_1 = float(x_112);
+    float v_2 = float(x_115);
+    x_GLF_color = float4(v, v_1, v_2, float(x_118));
+  } else {
+    int x_122 = asint(x_10[3u].x);
+    float x_123 = float(x_122);
+    x_GLF_color = float4(x_123, x_123, x_123, x_123);
+  }
+}
+
+main_out main_inner() {
+  main_1();
+  main_out v_3 = {x_GLF_color};
+  return v_3;
+}
+
+main_outputs main() {
+  main_out v_4 = main_inner();
+  main_outputs v_5 = {v_4.x_GLF_color_1};
+  return v_5;
+}
+
+FXC validation failure:
+c:\src\dawn\Shader@0x0000017B0F14D270(50,11-18): error X3500: array reference cannot be used as an l-value; not natively addressable
+c:\src\dawn\Shader@0x0000017B0F14D270(39,9-19): error X3511: forced to unroll loop, but unrolling failed.
+c:\src\dawn\Shader@0x0000017B0F14D270(29,5-15): error X3511: forced to unroll loop, but unrolling failed.
+
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/cov-nested-loops-global-loop-counter-do-while-accumulate-float/0-opt.spvasm.expected.ir.dxc.hlsl b/test/tint/vk-gl-cts/graphicsfuzz/cov-nested-loops-global-loop-counter-do-while-accumulate-float/0-opt.spvasm.expected.ir.dxc.hlsl
deleted file mode 100644
index 3f437dc..0000000
--- a/test/tint/vk-gl-cts/graphicsfuzz/cov-nested-loops-global-loop-counter-do-while-accumulate-float/0-opt.spvasm.expected.ir.dxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Access
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/cov-nested-loops-global-loop-counter-do-while-accumulate-float/0-opt.spvasm.expected.ir.fxc.hlsl b/test/tint/vk-gl-cts/graphicsfuzz/cov-nested-loops-global-loop-counter-do-while-accumulate-float/0-opt.spvasm.expected.ir.fxc.hlsl
deleted file mode 100644
index 3f437dc..0000000
--- a/test/tint/vk-gl-cts/graphicsfuzz/cov-nested-loops-global-loop-counter-do-while-accumulate-float/0-opt.spvasm.expected.ir.fxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Access
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/cov-nested-loops-global-loop-counter-do-while-accumulate-float/0-opt.wgsl.expected.ir.dxc.hlsl b/test/tint/vk-gl-cts/graphicsfuzz/cov-nested-loops-global-loop-counter-do-while-accumulate-float/0-opt.wgsl.expected.ir.dxc.hlsl
deleted file mode 100644
index 3f437dc..0000000
--- a/test/tint/vk-gl-cts/graphicsfuzz/cov-nested-loops-global-loop-counter-do-while-accumulate-float/0-opt.wgsl.expected.ir.dxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Access
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/cov-nested-loops-global-loop-counter-do-while-accumulate-float/0-opt.wgsl.expected.ir.fxc.hlsl b/test/tint/vk-gl-cts/graphicsfuzz/cov-nested-loops-global-loop-counter-do-while-accumulate-float/0-opt.wgsl.expected.ir.fxc.hlsl
deleted file mode 100644
index 3f437dc..0000000
--- a/test/tint/vk-gl-cts/graphicsfuzz/cov-nested-loops-global-loop-counter-do-while-accumulate-float/0-opt.wgsl.expected.ir.fxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Access
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/cov-nir-array-access/0-opt.spvasm.expected.ir.dxc.hlsl b/test/tint/vk-gl-cts/graphicsfuzz/cov-nir-array-access/0-opt.spvasm.expected.ir.dxc.hlsl
deleted file mode 100644
index c6e1d96..0000000
--- a/test/tint/vk-gl-cts/graphicsfuzz/cov-nir-array-access/0-opt.spvasm.expected.ir.dxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Construct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/cov-nir-array-access/0-opt.spvasm.expected.ir.fxc.hlsl b/test/tint/vk-gl-cts/graphicsfuzz/cov-nir-array-access/0-opt.spvasm.expected.ir.fxc.hlsl
deleted file mode 100644
index c6e1d96..0000000
--- a/test/tint/vk-gl-cts/graphicsfuzz/cov-nir-array-access/0-opt.spvasm.expected.ir.fxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Construct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/cov-nir-array-access/0-opt.wgsl.expected.ir.dxc.hlsl b/test/tint/vk-gl-cts/graphicsfuzz/cov-nir-array-access/0-opt.wgsl.expected.ir.dxc.hlsl
deleted file mode 100644
index 3f437dc..0000000
--- a/test/tint/vk-gl-cts/graphicsfuzz/cov-nir-array-access/0-opt.wgsl.expected.ir.dxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Access
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/cov-nir-array-access/0-opt.wgsl.expected.ir.fxc.hlsl b/test/tint/vk-gl-cts/graphicsfuzz/cov-nir-array-access/0-opt.wgsl.expected.ir.fxc.hlsl
deleted file mode 100644
index 3f437dc..0000000
--- a/test/tint/vk-gl-cts/graphicsfuzz/cov-nir-array-access/0-opt.wgsl.expected.ir.fxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Access
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/cov-nir-opt-large-constants-for-clamp-vector-access/0-opt.spvasm.expected.ir.dxc.hlsl b/test/tint/vk-gl-cts/graphicsfuzz/cov-nir-opt-large-constants-for-clamp-vector-access/0-opt.spvasm.expected.ir.dxc.hlsl
deleted file mode 100644
index c6e1d96..0000000
--- a/test/tint/vk-gl-cts/graphicsfuzz/cov-nir-opt-large-constants-for-clamp-vector-access/0-opt.spvasm.expected.ir.dxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Construct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/cov-nir-opt-large-constants-for-clamp-vector-access/0-opt.spvasm.expected.ir.fxc.hlsl b/test/tint/vk-gl-cts/graphicsfuzz/cov-nir-opt-large-constants-for-clamp-vector-access/0-opt.spvasm.expected.ir.fxc.hlsl
deleted file mode 100644
index c6e1d96..0000000
--- a/test/tint/vk-gl-cts/graphicsfuzz/cov-nir-opt-large-constants-for-clamp-vector-access/0-opt.spvasm.expected.ir.fxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Construct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/cov-nir-opt-large-constants-for-clamp-vector-access/0-opt.wgsl.expected.ir.dxc.hlsl b/test/tint/vk-gl-cts/graphicsfuzz/cov-nir-opt-large-constants-for-clamp-vector-access/0-opt.wgsl.expected.ir.dxc.hlsl
deleted file mode 100644
index 3f437dc..0000000
--- a/test/tint/vk-gl-cts/graphicsfuzz/cov-nir-opt-large-constants-for-clamp-vector-access/0-opt.wgsl.expected.ir.dxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Access
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/cov-nir-opt-large-constants-for-clamp-vector-access/0-opt.wgsl.expected.ir.fxc.hlsl b/test/tint/vk-gl-cts/graphicsfuzz/cov-nir-opt-large-constants-for-clamp-vector-access/0-opt.wgsl.expected.ir.fxc.hlsl
deleted file mode 100644
index 3f437dc..0000000
--- a/test/tint/vk-gl-cts/graphicsfuzz/cov-nir-opt-large-constants-for-clamp-vector-access/0-opt.wgsl.expected.ir.fxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Access
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/cov-nir-opt-loop-unroll-if-if-if-if-do-while/0-opt.spvasm.expected.ir.dxc.hlsl b/test/tint/vk-gl-cts/graphicsfuzz/cov-nir-opt-loop-unroll-if-if-if-if-do-while/0-opt.spvasm.expected.ir.dxc.hlsl
deleted file mode 100644
index c6e1d96..0000000
--- a/test/tint/vk-gl-cts/graphicsfuzz/cov-nir-opt-loop-unroll-if-if-if-if-do-while/0-opt.spvasm.expected.ir.dxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Construct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/cov-nir-opt-loop-unroll-if-if-if-if-do-while/0-opt.spvasm.expected.ir.fxc.hlsl b/test/tint/vk-gl-cts/graphicsfuzz/cov-nir-opt-loop-unroll-if-if-if-if-do-while/0-opt.spvasm.expected.ir.fxc.hlsl
deleted file mode 100644
index c6e1d96..0000000
--- a/test/tint/vk-gl-cts/graphicsfuzz/cov-nir-opt-loop-unroll-if-if-if-if-do-while/0-opt.spvasm.expected.ir.fxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Construct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/cov-nir-opt-loop-unroll-if-if-if-if-do-while/0-opt.wgsl.expected.ir.dxc.hlsl b/test/tint/vk-gl-cts/graphicsfuzz/cov-nir-opt-loop-unroll-if-if-if-if-do-while/0-opt.wgsl.expected.ir.dxc.hlsl
deleted file mode 100644
index 3f437dc..0000000
--- a/test/tint/vk-gl-cts/graphicsfuzz/cov-nir-opt-loop-unroll-if-if-if-if-do-while/0-opt.wgsl.expected.ir.dxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Access
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/cov-nir-opt-loop-unroll-if-if-if-if-do-while/0-opt.wgsl.expected.ir.fxc.hlsl b/test/tint/vk-gl-cts/graphicsfuzz/cov-nir-opt-loop-unroll-if-if-if-if-do-while/0-opt.wgsl.expected.ir.fxc.hlsl
deleted file mode 100644
index 3f437dc..0000000
--- a/test/tint/vk-gl-cts/graphicsfuzz/cov-nir-opt-loop-unroll-if-if-if-if-do-while/0-opt.wgsl.expected.ir.fxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Access
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/cov-not-clamp-matrix-access/0-opt.spvasm.expected.ir.dxc.hlsl b/test/tint/vk-gl-cts/graphicsfuzz/cov-not-clamp-matrix-access/0-opt.spvasm.expected.ir.dxc.hlsl
deleted file mode 100644
index c6e1d96..0000000
--- a/test/tint/vk-gl-cts/graphicsfuzz/cov-not-clamp-matrix-access/0-opt.spvasm.expected.ir.dxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Construct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/cov-not-clamp-matrix-access/0-opt.spvasm.expected.ir.fxc.hlsl b/test/tint/vk-gl-cts/graphicsfuzz/cov-not-clamp-matrix-access/0-opt.spvasm.expected.ir.fxc.hlsl
deleted file mode 100644
index c6e1d96..0000000
--- a/test/tint/vk-gl-cts/graphicsfuzz/cov-not-clamp-matrix-access/0-opt.spvasm.expected.ir.fxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Construct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/cov-not-clamp-matrix-access/0-opt.wgsl.expected.ir.dxc.hlsl b/test/tint/vk-gl-cts/graphicsfuzz/cov-not-clamp-matrix-access/0-opt.wgsl.expected.ir.dxc.hlsl
deleted file mode 100644
index 3f437dc..0000000
--- a/test/tint/vk-gl-cts/graphicsfuzz/cov-not-clamp-matrix-access/0-opt.wgsl.expected.ir.dxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Access
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/cov-not-clamp-matrix-access/0-opt.wgsl.expected.ir.fxc.hlsl b/test/tint/vk-gl-cts/graphicsfuzz/cov-not-clamp-matrix-access/0-opt.wgsl.expected.ir.fxc.hlsl
deleted file mode 100644
index 3f437dc..0000000
--- a/test/tint/vk-gl-cts/graphicsfuzz/cov-not-clamp-matrix-access/0-opt.wgsl.expected.ir.fxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Access
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/cov-one-minus-clamp-always-one-cast-to-int/0-opt.spvasm.expected.ir.dxc.hlsl b/test/tint/vk-gl-cts/graphicsfuzz/cov-one-minus-clamp-always-one-cast-to-int/0-opt.spvasm.expected.ir.dxc.hlsl
deleted file mode 100644
index 48e23f4..0000000
--- a/test/tint/vk-gl-cts/graphicsfuzz/cov-one-minus-clamp-always-one-cast-to-int/0-opt.spvasm.expected.ir.dxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Convert
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/cov-one-minus-clamp-always-one-cast-to-int/0-opt.spvasm.expected.ir.fxc.hlsl b/test/tint/vk-gl-cts/graphicsfuzz/cov-one-minus-clamp-always-one-cast-to-int/0-opt.spvasm.expected.ir.fxc.hlsl
deleted file mode 100644
index 48e23f4..0000000
--- a/test/tint/vk-gl-cts/graphicsfuzz/cov-one-minus-clamp-always-one-cast-to-int/0-opt.spvasm.expected.ir.fxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Convert
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/cov-one-minus-clamp-always-one-cast-to-int/0-opt.wgsl.expected.ir.dxc.hlsl b/test/tint/vk-gl-cts/graphicsfuzz/cov-one-minus-clamp-always-one-cast-to-int/0-opt.wgsl.expected.ir.dxc.hlsl
deleted file mode 100644
index 48e23f4..0000000
--- a/test/tint/vk-gl-cts/graphicsfuzz/cov-one-minus-clamp-always-one-cast-to-int/0-opt.wgsl.expected.ir.dxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Convert
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/cov-one-minus-clamp-always-one-cast-to-int/0-opt.wgsl.expected.ir.fxc.hlsl b/test/tint/vk-gl-cts/graphicsfuzz/cov-one-minus-clamp-always-one-cast-to-int/0-opt.wgsl.expected.ir.fxc.hlsl
deleted file mode 100644
index 48e23f4..0000000
--- a/test/tint/vk-gl-cts/graphicsfuzz/cov-one-minus-clamp-always-one-cast-to-int/0-opt.wgsl.expected.ir.fxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Convert
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/cov-optimize-phis-for-for-do-while-if-if/0-opt.spvasm.expected.ir.dxc.hlsl b/test/tint/vk-gl-cts/graphicsfuzz/cov-optimize-phis-for-for-do-while-if-if/0-opt.spvasm.expected.ir.dxc.hlsl
index 3f437dc..d1ee477 100644
--- a/test/tint/vk-gl-cts/graphicsfuzz/cov-optimize-phis-for-for-do-while-if-if/0-opt.spvasm.expected.ir.dxc.hlsl
+++ b/test/tint/vk-gl-cts/graphicsfuzz/cov-optimize-phis-for-for-do-while-if-if/0-opt.spvasm.expected.ir.dxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Access
+..\..\src\tint\lang\core\ir\transform\demote_to_helper.cc:208 internal compiler error: TINT_UNREACHABLE unexpected non-core instruction
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/cov-optimize-phis-for-for-do-while-if-if/0-opt.spvasm.expected.ir.fxc.hlsl b/test/tint/vk-gl-cts/graphicsfuzz/cov-optimize-phis-for-for-do-while-if-if/0-opt.spvasm.expected.ir.fxc.hlsl
index 3f437dc..d1ee477 100644
--- a/test/tint/vk-gl-cts/graphicsfuzz/cov-optimize-phis-for-for-do-while-if-if/0-opt.spvasm.expected.ir.fxc.hlsl
+++ b/test/tint/vk-gl-cts/graphicsfuzz/cov-optimize-phis-for-for-do-while-if-if/0-opt.spvasm.expected.ir.fxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Access
+..\..\src\tint\lang\core\ir\transform\demote_to_helper.cc:208 internal compiler error: TINT_UNREACHABLE unexpected non-core instruction
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/cov-optimize-phis-for-for-do-while-if-if/0-opt.wgsl.expected.ir.dxc.hlsl b/test/tint/vk-gl-cts/graphicsfuzz/cov-optimize-phis-for-for-do-while-if-if/0-opt.wgsl.expected.ir.dxc.hlsl
index 3f437dc..d1ee477 100644
--- a/test/tint/vk-gl-cts/graphicsfuzz/cov-optimize-phis-for-for-do-while-if-if/0-opt.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/vk-gl-cts/graphicsfuzz/cov-optimize-phis-for-for-do-while-if-if/0-opt.wgsl.expected.ir.dxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Access
+..\..\src\tint\lang\core\ir\transform\demote_to_helper.cc:208 internal compiler error: TINT_UNREACHABLE unexpected non-core instruction
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/cov-optimize-phis-for-for-do-while-if-if/0-opt.wgsl.expected.ir.fxc.hlsl b/test/tint/vk-gl-cts/graphicsfuzz/cov-optimize-phis-for-for-do-while-if-if/0-opt.wgsl.expected.ir.fxc.hlsl
index 3f437dc..d1ee477 100644
--- a/test/tint/vk-gl-cts/graphicsfuzz/cov-optimize-phis-for-for-do-while-if-if/0-opt.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/vk-gl-cts/graphicsfuzz/cov-optimize-phis-for-for-do-while-if-if/0-opt.wgsl.expected.ir.fxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Access
+..\..\src\tint\lang\core\ir\transform\demote_to_helper.cc:208 internal compiler error: TINT_UNREACHABLE unexpected non-core instruction
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/cov-optimize-phis-for/0-opt.spvasm.expected.ir.dxc.hlsl b/test/tint/vk-gl-cts/graphicsfuzz/cov-optimize-phis-for/0-opt.spvasm.expected.ir.dxc.hlsl
deleted file mode 100644
index 3f437dc..0000000
--- a/test/tint/vk-gl-cts/graphicsfuzz/cov-optimize-phis-for/0-opt.spvasm.expected.ir.dxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Access
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/cov-optimize-phis-for/0-opt.spvasm.expected.ir.fxc.hlsl b/test/tint/vk-gl-cts/graphicsfuzz/cov-optimize-phis-for/0-opt.spvasm.expected.ir.fxc.hlsl
deleted file mode 100644
index 3f437dc..0000000
--- a/test/tint/vk-gl-cts/graphicsfuzz/cov-optimize-phis-for/0-opt.spvasm.expected.ir.fxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Access
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/cov-optimize-phis-for/0-opt.wgsl.expected.ir.dxc.hlsl b/test/tint/vk-gl-cts/graphicsfuzz/cov-optimize-phis-for/0-opt.wgsl.expected.ir.dxc.hlsl
deleted file mode 100644
index 3f437dc..0000000
--- a/test/tint/vk-gl-cts/graphicsfuzz/cov-optimize-phis-for/0-opt.wgsl.expected.ir.dxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Access
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/cov-optimize-phis-for/0-opt.wgsl.expected.ir.fxc.hlsl b/test/tint/vk-gl-cts/graphicsfuzz/cov-optimize-phis-for/0-opt.wgsl.expected.ir.fxc.hlsl
deleted file mode 100644
index 3f437dc..0000000
--- a/test/tint/vk-gl-cts/graphicsfuzz/cov-optimize-phis-for/0-opt.wgsl.expected.ir.fxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Access
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/cov-packhalf-unpackunorm/0-opt.spvasm.expected.ir.dxc.hlsl b/test/tint/vk-gl-cts/graphicsfuzz/cov-packhalf-unpackunorm/0-opt.spvasm.expected.ir.dxc.hlsl
deleted file mode 100644
index 2dbdaf2..0000000
--- a/test/tint/vk-gl-cts/graphicsfuzz/cov-packhalf-unpackunorm/0-opt.spvasm.expected.ir.dxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: unpack4x8unorm
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/cov-packhalf-unpackunorm/0-opt.spvasm.expected.ir.fxc.hlsl b/test/tint/vk-gl-cts/graphicsfuzz/cov-packhalf-unpackunorm/0-opt.spvasm.expected.ir.fxc.hlsl
deleted file mode 100644
index 2dbdaf2..0000000
--- a/test/tint/vk-gl-cts/graphicsfuzz/cov-packhalf-unpackunorm/0-opt.spvasm.expected.ir.fxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: unpack4x8unorm
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/cov-packhalf-unpackunorm/0-opt.wgsl.expected.ir.dxc.hlsl b/test/tint/vk-gl-cts/graphicsfuzz/cov-packhalf-unpackunorm/0-opt.wgsl.expected.ir.dxc.hlsl
deleted file mode 100644
index 2dbdaf2..0000000
--- a/test/tint/vk-gl-cts/graphicsfuzz/cov-packhalf-unpackunorm/0-opt.wgsl.expected.ir.dxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: unpack4x8unorm
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/cov-packhalf-unpackunorm/0-opt.wgsl.expected.ir.fxc.hlsl b/test/tint/vk-gl-cts/graphicsfuzz/cov-packhalf-unpackunorm/0-opt.wgsl.expected.ir.fxc.hlsl
deleted file mode 100644
index 2dbdaf2..0000000
--- a/test/tint/vk-gl-cts/graphicsfuzz/cov-packhalf-unpackunorm/0-opt.wgsl.expected.ir.fxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: unpack4x8unorm
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/cov-pattern-match-signum/0-opt.spvasm.expected.ir.dxc.hlsl b/test/tint/vk-gl-cts/graphicsfuzz/cov-pattern-match-signum/0-opt.spvasm.expected.ir.dxc.hlsl
deleted file mode 100644
index bdeab23..0000000
--- a/test/tint/vk-gl-cts/graphicsfuzz/cov-pattern-match-signum/0-opt.spvasm.expected.ir.dxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:198 internal compiler error: Switch() matched no cases. Type: tint::core::ir::If
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/cov-pattern-match-signum/0-opt.spvasm.expected.ir.fxc.hlsl b/test/tint/vk-gl-cts/graphicsfuzz/cov-pattern-match-signum/0-opt.spvasm.expected.ir.fxc.hlsl
deleted file mode 100644
index bdeab23..0000000
--- a/test/tint/vk-gl-cts/graphicsfuzz/cov-pattern-match-signum/0-opt.spvasm.expected.ir.fxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:198 internal compiler error: Switch() matched no cases. Type: tint::core::ir::If
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/cov-pattern-match-signum/0-opt.wgsl.expected.ir.dxc.hlsl b/test/tint/vk-gl-cts/graphicsfuzz/cov-pattern-match-signum/0-opt.wgsl.expected.ir.dxc.hlsl
deleted file mode 100644
index 3f437dc..0000000
--- a/test/tint/vk-gl-cts/graphicsfuzz/cov-pattern-match-signum/0-opt.wgsl.expected.ir.dxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Access
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/cov-pattern-match-signum/0-opt.wgsl.expected.ir.fxc.hlsl b/test/tint/vk-gl-cts/graphicsfuzz/cov-pattern-match-signum/0-opt.wgsl.expected.ir.fxc.hlsl
deleted file mode 100644
index 3f437dc..0000000
--- a/test/tint/vk-gl-cts/graphicsfuzz/cov-pattern-match-signum/0-opt.wgsl.expected.ir.fxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Access
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/cov-pattern-match-single-bit/0.spvasm.expected.ir.dxc.hlsl b/test/tint/vk-gl-cts/graphicsfuzz/cov-pattern-match-single-bit/0.spvasm.expected.ir.dxc.hlsl
deleted file mode 100644
index bdeab23..0000000
--- a/test/tint/vk-gl-cts/graphicsfuzz/cov-pattern-match-single-bit/0.spvasm.expected.ir.dxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:198 internal compiler error: Switch() matched no cases. Type: tint::core::ir::If
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/cov-pattern-match-single-bit/0.spvasm.expected.ir.fxc.hlsl b/test/tint/vk-gl-cts/graphicsfuzz/cov-pattern-match-single-bit/0.spvasm.expected.ir.fxc.hlsl
deleted file mode 100644
index bdeab23..0000000
--- a/test/tint/vk-gl-cts/graphicsfuzz/cov-pattern-match-single-bit/0.spvasm.expected.ir.fxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:198 internal compiler error: Switch() matched no cases. Type: tint::core::ir::If
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/cov-pattern-match-single-bit/0.wgsl.expected.ir.dxc.hlsl b/test/tint/vk-gl-cts/graphicsfuzz/cov-pattern-match-single-bit/0.wgsl.expected.ir.dxc.hlsl
deleted file mode 100644
index 3f437dc..0000000
--- a/test/tint/vk-gl-cts/graphicsfuzz/cov-pattern-match-single-bit/0.wgsl.expected.ir.dxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Access
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/cov-pattern-match-single-bit/0.wgsl.expected.ir.fxc.hlsl b/test/tint/vk-gl-cts/graphicsfuzz/cov-pattern-match-single-bit/0.wgsl.expected.ir.fxc.hlsl
deleted file mode 100644
index 3f437dc..0000000
--- a/test/tint/vk-gl-cts/graphicsfuzz/cov-pattern-match-single-bit/0.wgsl.expected.ir.fxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Access
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/cov-peephole-optimizer-target-instr-info-for-if-if-if/0-opt.spvasm.expected.ir.dxc.hlsl b/test/tint/vk-gl-cts/graphicsfuzz/cov-peephole-optimizer-target-instr-info-for-if-if-if/0-opt.spvasm.expected.ir.dxc.hlsl
index c6e1d96..d1ee477 100644
--- a/test/tint/vk-gl-cts/graphicsfuzz/cov-peephole-optimizer-target-instr-info-for-if-if-if/0-opt.spvasm.expected.ir.dxc.hlsl
+++ b/test/tint/vk-gl-cts/graphicsfuzz/cov-peephole-optimizer-target-instr-info-for-if-if-if/0-opt.spvasm.expected.ir.dxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Construct
+..\..\src\tint\lang\core\ir\transform\demote_to_helper.cc:208 internal compiler error: TINT_UNREACHABLE unexpected non-core instruction
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/cov-peephole-optimizer-target-instr-info-for-if-if-if/0-opt.spvasm.expected.ir.fxc.hlsl b/test/tint/vk-gl-cts/graphicsfuzz/cov-peephole-optimizer-target-instr-info-for-if-if-if/0-opt.spvasm.expected.ir.fxc.hlsl
index c6e1d96..d1ee477 100644
--- a/test/tint/vk-gl-cts/graphicsfuzz/cov-peephole-optimizer-target-instr-info-for-if-if-if/0-opt.spvasm.expected.ir.fxc.hlsl
+++ b/test/tint/vk-gl-cts/graphicsfuzz/cov-peephole-optimizer-target-instr-info-for-if-if-if/0-opt.spvasm.expected.ir.fxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Construct
+..\..\src\tint\lang\core\ir\transform\demote_to_helper.cc:208 internal compiler error: TINT_UNREACHABLE unexpected non-core instruction
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/cov-peephole-optimizer-target-instr-info-for-if-if-if/0-opt.wgsl.expected.ir.dxc.hlsl b/test/tint/vk-gl-cts/graphicsfuzz/cov-peephole-optimizer-target-instr-info-for-if-if-if/0-opt.wgsl.expected.ir.dxc.hlsl
index 3f437dc..d1ee477 100644
--- a/test/tint/vk-gl-cts/graphicsfuzz/cov-peephole-optimizer-target-instr-info-for-if-if-if/0-opt.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/vk-gl-cts/graphicsfuzz/cov-peephole-optimizer-target-instr-info-for-if-if-if/0-opt.wgsl.expected.ir.dxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Access
+..\..\src\tint\lang\core\ir\transform\demote_to_helper.cc:208 internal compiler error: TINT_UNREACHABLE unexpected non-core instruction
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/cov-peephole-optimizer-target-instr-info-for-if-if-if/0-opt.wgsl.expected.ir.fxc.hlsl b/test/tint/vk-gl-cts/graphicsfuzz/cov-peephole-optimizer-target-instr-info-for-if-if-if/0-opt.wgsl.expected.ir.fxc.hlsl
index 3f437dc..d1ee477 100644
--- a/test/tint/vk-gl-cts/graphicsfuzz/cov-peephole-optimizer-target-instr-info-for-if-if-if/0-opt.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/vk-gl-cts/graphicsfuzz/cov-peephole-optimizer-target-instr-info-for-if-if-if/0-opt.wgsl.expected.ir.fxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Access
+..\..\src\tint\lang\core\ir\transform\demote_to_helper.cc:208 internal compiler error: TINT_UNREACHABLE unexpected non-core instruction
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/cov-pow-identical-value-sqrt/0-opt.spvasm.expected.ir.dxc.hlsl b/test/tint/vk-gl-cts/graphicsfuzz/cov-pow-identical-value-sqrt/0-opt.spvasm.expected.ir.dxc.hlsl
deleted file mode 100644
index 3f437dc..0000000
--- a/test/tint/vk-gl-cts/graphicsfuzz/cov-pow-identical-value-sqrt/0-opt.spvasm.expected.ir.dxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Access
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/cov-pow-identical-value-sqrt/0-opt.spvasm.expected.ir.fxc.hlsl b/test/tint/vk-gl-cts/graphicsfuzz/cov-pow-identical-value-sqrt/0-opt.spvasm.expected.ir.fxc.hlsl
deleted file mode 100644
index 3f437dc..0000000
--- a/test/tint/vk-gl-cts/graphicsfuzz/cov-pow-identical-value-sqrt/0-opt.spvasm.expected.ir.fxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Access
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/cov-pow-identical-value-sqrt/0-opt.wgsl.expected.ir.dxc.hlsl b/test/tint/vk-gl-cts/graphicsfuzz/cov-pow-identical-value-sqrt/0-opt.wgsl.expected.ir.dxc.hlsl
deleted file mode 100644
index 3f437dc..0000000
--- a/test/tint/vk-gl-cts/graphicsfuzz/cov-pow-identical-value-sqrt/0-opt.wgsl.expected.ir.dxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Access
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/cov-pow-identical-value-sqrt/0-opt.wgsl.expected.ir.fxc.hlsl b/test/tint/vk-gl-cts/graphicsfuzz/cov-pow-identical-value-sqrt/0-opt.wgsl.expected.ir.fxc.hlsl
deleted file mode 100644
index 3f437dc..0000000
--- a/test/tint/vk-gl-cts/graphicsfuzz/cov-pow-identical-value-sqrt/0-opt.wgsl.expected.ir.fxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Access
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/cov-pow-undefined-result-condition-with-always-true/0-opt.spvasm.expected.ir.dxc.hlsl b/test/tint/vk-gl-cts/graphicsfuzz/cov-pow-undefined-result-condition-with-always-true/0-opt.spvasm.expected.ir.dxc.hlsl
deleted file mode 100644
index cf7df04..0000000
--- a/test/tint/vk-gl-cts/graphicsfuzz/cov-pow-undefined-result-condition-with-always-true/0-opt.spvasm.expected.ir.dxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::CoreUnary
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/cov-pow-undefined-result-condition-with-always-true/0-opt.spvasm.expected.ir.fxc.hlsl b/test/tint/vk-gl-cts/graphicsfuzz/cov-pow-undefined-result-condition-with-always-true/0-opt.spvasm.expected.ir.fxc.hlsl
deleted file mode 100644
index cf7df04..0000000
--- a/test/tint/vk-gl-cts/graphicsfuzz/cov-pow-undefined-result-condition-with-always-true/0-opt.spvasm.expected.ir.fxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::CoreUnary
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/cov-pow-undefined-result-condition-with-always-true/0-opt.wgsl.expected.ir.dxc.hlsl b/test/tint/vk-gl-cts/graphicsfuzz/cov-pow-undefined-result-condition-with-always-true/0-opt.wgsl.expected.ir.dxc.hlsl
deleted file mode 100644
index 3f437dc..0000000
--- a/test/tint/vk-gl-cts/graphicsfuzz/cov-pow-undefined-result-condition-with-always-true/0-opt.wgsl.expected.ir.dxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Access
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/cov-pow-undefined-result-condition-with-always-true/0-opt.wgsl.expected.ir.fxc.hlsl b/test/tint/vk-gl-cts/graphicsfuzz/cov-pow-undefined-result-condition-with-always-true/0-opt.wgsl.expected.ir.fxc.hlsl
deleted file mode 100644
index 3f437dc..0000000
--- a/test/tint/vk-gl-cts/graphicsfuzz/cov-pow-undefined-result-condition-with-always-true/0-opt.wgsl.expected.ir.fxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Access
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/cov-pow-undefined/0-opt.spvasm.expected.ir.dxc.hlsl b/test/tint/vk-gl-cts/graphicsfuzz/cov-pow-undefined/0-opt.spvasm.expected.ir.dxc.hlsl
deleted file mode 100644
index c6e1d96..0000000
--- a/test/tint/vk-gl-cts/graphicsfuzz/cov-pow-undefined/0-opt.spvasm.expected.ir.dxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Construct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/cov-pow-undefined/0-opt.spvasm.expected.ir.fxc.hlsl b/test/tint/vk-gl-cts/graphicsfuzz/cov-pow-undefined/0-opt.spvasm.expected.ir.fxc.hlsl
deleted file mode 100644
index c6e1d96..0000000
--- a/test/tint/vk-gl-cts/graphicsfuzz/cov-pow-undefined/0-opt.spvasm.expected.ir.fxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Construct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/cov-pow-undefined/0-opt.wgsl.expected.ir.dxc.hlsl b/test/tint/vk-gl-cts/graphicsfuzz/cov-pow-undefined/0-opt.wgsl.expected.ir.dxc.hlsl
deleted file mode 100644
index c6e1d96..0000000
--- a/test/tint/vk-gl-cts/graphicsfuzz/cov-pow-undefined/0-opt.wgsl.expected.ir.dxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Construct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/cov-pow-undefined/0-opt.wgsl.expected.ir.fxc.hlsl b/test/tint/vk-gl-cts/graphicsfuzz/cov-pow-undefined/0-opt.wgsl.expected.ir.fxc.hlsl
deleted file mode 100644
index c6e1d96..0000000
--- a/test/tint/vk-gl-cts/graphicsfuzz/cov-pow-undefined/0-opt.wgsl.expected.ir.fxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Construct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/cov-rcp-negative-int/0-opt.spvasm.expected.ir.dxc.hlsl b/test/tint/vk-gl-cts/graphicsfuzz/cov-rcp-negative-int/0-opt.spvasm.expected.ir.dxc.hlsl
deleted file mode 100644
index bdeab23..0000000
--- a/test/tint/vk-gl-cts/graphicsfuzz/cov-rcp-negative-int/0-opt.spvasm.expected.ir.dxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:198 internal compiler error: Switch() matched no cases. Type: tint::core::ir::If
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/cov-rcp-negative-int/0-opt.spvasm.expected.ir.fxc.hlsl b/test/tint/vk-gl-cts/graphicsfuzz/cov-rcp-negative-int/0-opt.spvasm.expected.ir.fxc.hlsl
deleted file mode 100644
index bdeab23..0000000
--- a/test/tint/vk-gl-cts/graphicsfuzz/cov-rcp-negative-int/0-opt.spvasm.expected.ir.fxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:198 internal compiler error: Switch() matched no cases. Type: tint::core::ir::If
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/cov-rcp-negative-int/0-opt.wgsl.expected.ir.dxc.hlsl b/test/tint/vk-gl-cts/graphicsfuzz/cov-rcp-negative-int/0-opt.wgsl.expected.ir.dxc.hlsl
deleted file mode 100644
index 3f437dc..0000000
--- a/test/tint/vk-gl-cts/graphicsfuzz/cov-rcp-negative-int/0-opt.wgsl.expected.ir.dxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Access
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/cov-rcp-negative-int/0-opt.wgsl.expected.ir.fxc.hlsl b/test/tint/vk-gl-cts/graphicsfuzz/cov-rcp-negative-int/0-opt.wgsl.expected.ir.fxc.hlsl
deleted file mode 100644
index 3f437dc..0000000
--- a/test/tint/vk-gl-cts/graphicsfuzz/cov-rcp-negative-int/0-opt.wgsl.expected.ir.fxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Access
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/cov-reciprocal-var-minus-one/0-opt.spvasm.expected.ir.dxc.hlsl b/test/tint/vk-gl-cts/graphicsfuzz/cov-reciprocal-var-minus-one/0-opt.spvasm.expected.ir.dxc.hlsl
deleted file mode 100644
index bdeab23..0000000
--- a/test/tint/vk-gl-cts/graphicsfuzz/cov-reciprocal-var-minus-one/0-opt.spvasm.expected.ir.dxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:198 internal compiler error: Switch() matched no cases. Type: tint::core::ir::If
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/cov-reciprocal-var-minus-one/0-opt.spvasm.expected.ir.fxc.hlsl b/test/tint/vk-gl-cts/graphicsfuzz/cov-reciprocal-var-minus-one/0-opt.spvasm.expected.ir.fxc.hlsl
deleted file mode 100644
index bdeab23..0000000
--- a/test/tint/vk-gl-cts/graphicsfuzz/cov-reciprocal-var-minus-one/0-opt.spvasm.expected.ir.fxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:198 internal compiler error: Switch() matched no cases. Type: tint::core::ir::If
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/cov-reciprocal-var-minus-one/0-opt.wgsl.expected.ir.dxc.hlsl b/test/tint/vk-gl-cts/graphicsfuzz/cov-reciprocal-var-minus-one/0-opt.wgsl.expected.ir.dxc.hlsl
deleted file mode 100644
index 3f437dc..0000000
--- a/test/tint/vk-gl-cts/graphicsfuzz/cov-reciprocal-var-minus-one/0-opt.wgsl.expected.ir.dxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Access
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/cov-reciprocal-var-minus-one/0-opt.wgsl.expected.ir.fxc.hlsl b/test/tint/vk-gl-cts/graphicsfuzz/cov-reciprocal-var-minus-one/0-opt.wgsl.expected.ir.fxc.hlsl
deleted file mode 100644
index 3f437dc..0000000
--- a/test/tint/vk-gl-cts/graphicsfuzz/cov-reciprocal-var-minus-one/0-opt.wgsl.expected.ir.fxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Access
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/cov-reduce-load-array-replace-extract/0.spvasm.expected.ir.dxc.hlsl b/test/tint/vk-gl-cts/graphicsfuzz/cov-reduce-load-array-replace-extract/0.spvasm.expected.ir.dxc.hlsl
deleted file mode 100644
index 3f437dc..0000000
--- a/test/tint/vk-gl-cts/graphicsfuzz/cov-reduce-load-array-replace-extract/0.spvasm.expected.ir.dxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Access
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/cov-reduce-load-array-replace-extract/0.spvasm.expected.ir.fxc.hlsl b/test/tint/vk-gl-cts/graphicsfuzz/cov-reduce-load-array-replace-extract/0.spvasm.expected.ir.fxc.hlsl
deleted file mode 100644
index 3f437dc..0000000
--- a/test/tint/vk-gl-cts/graphicsfuzz/cov-reduce-load-array-replace-extract/0.spvasm.expected.ir.fxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Access
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/cov-reduce-load-array-replace-extract/0.wgsl.expected.ir.dxc.hlsl b/test/tint/vk-gl-cts/graphicsfuzz/cov-reduce-load-array-replace-extract/0.wgsl.expected.ir.dxc.hlsl
deleted file mode 100644
index 3f437dc..0000000
--- a/test/tint/vk-gl-cts/graphicsfuzz/cov-reduce-load-array-replace-extract/0.wgsl.expected.ir.dxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Access
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/cov-reduce-load-array-replace-extract/0.wgsl.expected.ir.fxc.hlsl b/test/tint/vk-gl-cts/graphicsfuzz/cov-reduce-load-array-replace-extract/0.wgsl.expected.ir.fxc.hlsl
deleted file mode 100644
index 3f437dc..0000000
--- a/test/tint/vk-gl-cts/graphicsfuzz/cov-reduce-load-array-replace-extract/0.wgsl.expected.ir.fxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Access
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/cov-reduce-load-replace-extract/0-opt.spvasm.expected.ir.dxc.hlsl b/test/tint/vk-gl-cts/graphicsfuzz/cov-reduce-load-replace-extract/0-opt.spvasm.expected.ir.dxc.hlsl
deleted file mode 100644
index 3f437dc..0000000
--- a/test/tint/vk-gl-cts/graphicsfuzz/cov-reduce-load-replace-extract/0-opt.spvasm.expected.ir.dxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Access
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/cov-reduce-load-replace-extract/0-opt.spvasm.expected.ir.fxc.hlsl b/test/tint/vk-gl-cts/graphicsfuzz/cov-reduce-load-replace-extract/0-opt.spvasm.expected.ir.fxc.hlsl
deleted file mode 100644
index 3f437dc..0000000
--- a/test/tint/vk-gl-cts/graphicsfuzz/cov-reduce-load-replace-extract/0-opt.spvasm.expected.ir.fxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Access
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/cov-reduce-load-replace-extract/0-opt.wgsl.expected.ir.dxc.hlsl b/test/tint/vk-gl-cts/graphicsfuzz/cov-reduce-load-replace-extract/0-opt.wgsl.expected.ir.dxc.hlsl
deleted file mode 100644
index 3f437dc..0000000
--- a/test/tint/vk-gl-cts/graphicsfuzz/cov-reduce-load-replace-extract/0-opt.wgsl.expected.ir.dxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Access
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/cov-reduce-load-replace-extract/0-opt.wgsl.expected.ir.fxc.hlsl b/test/tint/vk-gl-cts/graphicsfuzz/cov-reduce-load-replace-extract/0-opt.wgsl.expected.ir.fxc.hlsl
deleted file mode 100644
index 3f437dc..0000000
--- a/test/tint/vk-gl-cts/graphicsfuzz/cov-reduce-load-replace-extract/0-opt.wgsl.expected.ir.fxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Access
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/cov-register-coalescer-live-intervals-target-instr-info-for-discard-for-discard/0-opt.spvasm.expected.ir.dxc.hlsl b/test/tint/vk-gl-cts/graphicsfuzz/cov-register-coalescer-live-intervals-target-instr-info-for-discard-for-discard/0-opt.spvasm.expected.ir.dxc.hlsl
index 3f437dc..d1ee477 100644
--- a/test/tint/vk-gl-cts/graphicsfuzz/cov-register-coalescer-live-intervals-target-instr-info-for-discard-for-discard/0-opt.spvasm.expected.ir.dxc.hlsl
+++ b/test/tint/vk-gl-cts/graphicsfuzz/cov-register-coalescer-live-intervals-target-instr-info-for-discard-for-discard/0-opt.spvasm.expected.ir.dxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Access
+..\..\src\tint\lang\core\ir\transform\demote_to_helper.cc:208 internal compiler error: TINT_UNREACHABLE unexpected non-core instruction
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/cov-register-coalescer-live-intervals-target-instr-info-for-discard-for-discard/0-opt.spvasm.expected.ir.fxc.hlsl b/test/tint/vk-gl-cts/graphicsfuzz/cov-register-coalescer-live-intervals-target-instr-info-for-discard-for-discard/0-opt.spvasm.expected.ir.fxc.hlsl
index 3f437dc..d1ee477 100644
--- a/test/tint/vk-gl-cts/graphicsfuzz/cov-register-coalescer-live-intervals-target-instr-info-for-discard-for-discard/0-opt.spvasm.expected.ir.fxc.hlsl
+++ b/test/tint/vk-gl-cts/graphicsfuzz/cov-register-coalescer-live-intervals-target-instr-info-for-discard-for-discard/0-opt.spvasm.expected.ir.fxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Access
+..\..\src\tint\lang\core\ir\transform\demote_to_helper.cc:208 internal compiler error: TINT_UNREACHABLE unexpected non-core instruction
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/cov-register-coalescer-live-intervals-target-instr-info-for-discard-for-discard/0-opt.wgsl.expected.ir.dxc.hlsl b/test/tint/vk-gl-cts/graphicsfuzz/cov-register-coalescer-live-intervals-target-instr-info-for-discard-for-discard/0-opt.wgsl.expected.ir.dxc.hlsl
index 3f437dc..d1ee477 100644
--- a/test/tint/vk-gl-cts/graphicsfuzz/cov-register-coalescer-live-intervals-target-instr-info-for-discard-for-discard/0-opt.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/vk-gl-cts/graphicsfuzz/cov-register-coalescer-live-intervals-target-instr-info-for-discard-for-discard/0-opt.wgsl.expected.ir.dxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Access
+..\..\src\tint\lang\core\ir\transform\demote_to_helper.cc:208 internal compiler error: TINT_UNREACHABLE unexpected non-core instruction
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/cov-register-coalescer-live-intervals-target-instr-info-for-discard-for-discard/0-opt.wgsl.expected.ir.fxc.hlsl b/test/tint/vk-gl-cts/graphicsfuzz/cov-register-coalescer-live-intervals-target-instr-info-for-discard-for-discard/0-opt.wgsl.expected.ir.fxc.hlsl
index 3f437dc..d1ee477 100644
--- a/test/tint/vk-gl-cts/graphicsfuzz/cov-register-coalescer-live-intervals-target-instr-info-for-discard-for-discard/0-opt.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/vk-gl-cts/graphicsfuzz/cov-register-coalescer-live-intervals-target-instr-info-for-discard-for-discard/0-opt.wgsl.expected.ir.fxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Access
+..\..\src\tint\lang\core\ir\transform\demote_to_helper.cc:208 internal compiler error: TINT_UNREACHABLE unexpected non-core instruction
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/cov-reinitialize-matrix-after-undefined-value/0-opt.spvasm.expected.ir.dxc.hlsl b/test/tint/vk-gl-cts/graphicsfuzz/cov-reinitialize-matrix-after-undefined-value/0-opt.spvasm.expected.ir.dxc.hlsl
deleted file mode 100644
index bdeab23..0000000
--- a/test/tint/vk-gl-cts/graphicsfuzz/cov-reinitialize-matrix-after-undefined-value/0-opt.spvasm.expected.ir.dxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:198 internal compiler error: Switch() matched no cases. Type: tint::core::ir::If
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/cov-reinitialize-matrix-after-undefined-value/0-opt.spvasm.expected.ir.fxc.hlsl b/test/tint/vk-gl-cts/graphicsfuzz/cov-reinitialize-matrix-after-undefined-value/0-opt.spvasm.expected.ir.fxc.hlsl
index bdeab23..1cc8e5a 100644
--- a/test/tint/vk-gl-cts/graphicsfuzz/cov-reinitialize-matrix-after-undefined-value/0-opt.spvasm.expected.ir.fxc.hlsl
+++ b/test/tint/vk-gl-cts/graphicsfuzz/cov-reinitialize-matrix-after-undefined-value/0-opt.spvasm.expected.ir.fxc.hlsl
@@ -1,9 +1,89 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:198 internal compiler error: Switch() matched no cases. Type: tint::core::ir::If
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct main_out {
+  float4 x_GLF_color_1;
+};
+
+struct main_outputs {
+  float4 main_out_x_GLF_color_1 : SV_Target0;
+};
+
+
+cbuffer cbuffer_x_5 : register(b0) {
+  uint4 x_5[4];
+};
+static float4 x_GLF_color = (0.0f).xxxx;
+void main_1() {
+  float2x2 m = float2x2((0.0f).xx, (0.0f).xx);
+  float f = 0.0f;
+  int i = 0;
+  int j = 0;
+  if ((asint(x_5[1u].x) == 1)) {
+    float2 v = float2(f, 0.0f);
+    m = float2x2(v, float2(0.0f, f));
+  }
+  i = asint(x_5[1u].x);
+  {
+    while(true) {
+      int v_1 = i;
+      if ((v_1 < asint(x_5[0u].x))) {
+      } else {
+        break;
+      }
+      j = asint(x_5[1u].x);
+      {
+        while(true) {
+          int v_2 = j;
+          if ((v_2 < asint(x_5[0u].x))) {
+          } else {
+            break;
+          }
+          int x_66 = i;
+          int x_67 = j;
+          int v_3 = i;
+          int v_4 = (v_3 * asint(x_5[0u].x));
+          m[x_66][x_67] = float((v_4 + j));
+          {
+            j = (j + 1);
+          }
+          continue;
+        }
+      }
+      {
+        i = (i + 1);
+      }
+      continue;
+    }
+  }
+  float v_5 = float(asint(x_5[1u].x));
+  float2 v_6 = float2(v_5, float(asint(x_5[2u].x)));
+  float v_7 = float(asint(x_5[0u].x));
+  float2x2 x_95 = float2x2(v_6, float2(v_7, float(asint(x_5[3u].x))));
+  bool v_8 = all((m[0u] == x_95[0u]));
+  if ((v_8 & all((m[1u] == x_95[1u])))) {
+    float v_9 = float(asint(x_5[2u].x));
+    float v_10 = float(asint(x_5[1u].x));
+    float v_11 = float(asint(x_5[1u].x));
+    x_GLF_color = float4(v_9, v_10, v_11, float(asint(x_5[2u].x)));
+  } else {
+    x_GLF_color = float4((float(asint(x_5[1u].x))).xxxx);
+  }
+}
+
+main_out main_inner() {
+  main_1();
+  main_out v_12 = {x_GLF_color};
+  return v_12;
+}
+
+main_outputs main() {
+  main_out v_13 = main_inner();
+  main_outputs v_14 = {v_13.x_GLF_color_1};
+  return v_14;
+}
+
+FXC validation failure:
+c:\src\dawn\Shader@0x000002118EE11570(43,11-17): error X3500: array reference cannot be used as an l-value; not natively addressable
+c:\src\dawn\Shader@0x000002118EE11570(33,9-19): error X3511: forced to unroll loop, but unrolling failed.
+c:\src\dawn\Shader@0x000002118EE11570(25,5-15): error X3511: forced to unroll loop, but unrolling failed.
+
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/cov-reinitialize-matrix-after-undefined-value/0-opt.wgsl.expected.ir.dxc.hlsl b/test/tint/vk-gl-cts/graphicsfuzz/cov-reinitialize-matrix-after-undefined-value/0-opt.wgsl.expected.ir.dxc.hlsl
deleted file mode 100644
index 3f437dc..0000000
--- a/test/tint/vk-gl-cts/graphicsfuzz/cov-reinitialize-matrix-after-undefined-value/0-opt.wgsl.expected.ir.dxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Access
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/cov-reinitialize-matrix-after-undefined-value/0-opt.wgsl.expected.ir.fxc.hlsl b/test/tint/vk-gl-cts/graphicsfuzz/cov-reinitialize-matrix-after-undefined-value/0-opt.wgsl.expected.ir.fxc.hlsl
index 3f437dc..fc7179e 100644
--- a/test/tint/vk-gl-cts/graphicsfuzz/cov-reinitialize-matrix-after-undefined-value/0-opt.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/vk-gl-cts/graphicsfuzz/cov-reinitialize-matrix-after-undefined-value/0-opt.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,109 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Access
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct main_out {
+  float4 x_GLF_color_1;
+};
+
+struct main_outputs {
+  float4 main_out_x_GLF_color_1 : SV_Target0;
+};
+
+
+cbuffer cbuffer_x_5 : register(b0) {
+  uint4 x_5[4];
+};
+static float4 x_GLF_color = (0.0f).xxxx;
+void main_1() {
+  float2x2 m = float2x2((0.0f).xx, (0.0f).xx);
+  float f = 0.0f;
+  int i = 0;
+  int j = 0;
+  int x_36 = asint(x_5[1u].x);
+  if ((x_36 == 1)) {
+    float x_40 = f;
+    float2 v = float2(x_40, 0.0f);
+    m = float2x2(v, float2(0.0f, x_40));
+  }
+  int x_45 = asint(x_5[1u].x);
+  i = x_45;
+  {
+    while(true) {
+      int x_50 = i;
+      int x_52 = asint(x_5[0u].x);
+      if ((x_50 < x_52)) {
+      } else {
+        break;
+      }
+      int x_56 = asint(x_5[1u].x);
+      j = x_56;
+      {
+        while(true) {
+          int x_61 = j;
+          int x_63 = asint(x_5[0u].x);
+          if ((x_61 < x_63)) {
+          } else {
+            break;
+          }
+          int x_66 = i;
+          int x_67 = j;
+          int x_68 = i;
+          int x_70 = asint(x_5[0u].x);
+          int x_72 = j;
+          m[x_66][x_67] = float(((x_68 * x_70) + x_72));
+          {
+            int x_76 = j;
+            j = (x_76 + 1);
+          }
+          continue;
+        }
+      }
+      {
+        int x_78 = i;
+        i = (x_78 + 1);
+      }
+      continue;
+    }
+  }
+  float2x2 x_80 = m;
+  int x_82 = asint(x_5[1u].x);
+  int x_85 = asint(x_5[2u].x);
+  int x_88 = asint(x_5[0u].x);
+  int x_91 = asint(x_5[3u].x);
+  float v_1 = float(x_82);
+  float2 v_2 = float2(v_1, float(x_85));
+  float v_3 = float(x_88);
+  float2x2 x_95 = float2x2(v_2, float2(v_3, float(x_91)));
+  bool v_4 = all((x_80[0u] == x_95[0u]));
+  if ((v_4 & all((x_80[1u] == x_95[1u])))) {
+    int x_109 = asint(x_5[2u].x);
+    int x_112 = asint(x_5[1u].x);
+    int x_115 = asint(x_5[1u].x);
+    int x_118 = asint(x_5[2u].x);
+    float v_5 = float(x_109);
+    float v_6 = float(x_112);
+    float v_7 = float(x_115);
+    x_GLF_color = float4(v_5, v_6, v_7, float(x_118));
+  } else {
+    int x_122 = asint(x_5[1u].x);
+    float x_123 = float(x_122);
+    x_GLF_color = float4(x_123, x_123, x_123, x_123);
+  }
+}
+
+main_out main_inner() {
+  main_1();
+  main_out v_8 = {x_GLF_color};
+  return v_8;
+}
+
+main_outputs main() {
+  main_out v_9 = main_inner();
+  main_outputs v_10 = {v_9.x_GLF_color_1};
+  return v_10;
+}
+
+FXC validation failure:
+c:\src\dawn\Shader@0x0000023526EE2200(50,11-17): error X3500: array reference cannot be used as an l-value; not natively addressable
+c:\src\dawn\Shader@0x0000023526EE2200(38,9-19): error X3511: forced to unroll loop, but unrolling failed.
+c:\src\dawn\Shader@0x0000023526EE2200(28,5-15): error X3511: forced to unroll loop, but unrolling failed.
+
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/cov-replace-copy-object/0-opt.spvasm.expected.ir.dxc.hlsl b/test/tint/vk-gl-cts/graphicsfuzz/cov-replace-copy-object/0-opt.spvasm.expected.ir.dxc.hlsl
deleted file mode 100644
index bdeab23..0000000
--- a/test/tint/vk-gl-cts/graphicsfuzz/cov-replace-copy-object/0-opt.spvasm.expected.ir.dxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:198 internal compiler error: Switch() matched no cases. Type: tint::core::ir::If
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/cov-replace-copy-object/0-opt.spvasm.expected.ir.fxc.hlsl b/test/tint/vk-gl-cts/graphicsfuzz/cov-replace-copy-object/0-opt.spvasm.expected.ir.fxc.hlsl
deleted file mode 100644
index bdeab23..0000000
--- a/test/tint/vk-gl-cts/graphicsfuzz/cov-replace-copy-object/0-opt.spvasm.expected.ir.fxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:198 internal compiler error: Switch() matched no cases. Type: tint::core::ir::If
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/cov-replace-copy-object/0-opt.wgsl.expected.ir.dxc.hlsl b/test/tint/vk-gl-cts/graphicsfuzz/cov-replace-copy-object/0-opt.wgsl.expected.ir.dxc.hlsl
deleted file mode 100644
index 3f437dc..0000000
--- a/test/tint/vk-gl-cts/graphicsfuzz/cov-replace-copy-object/0-opt.wgsl.expected.ir.dxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Access
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/cov-replace-copy-object/0-opt.wgsl.expected.ir.fxc.hlsl b/test/tint/vk-gl-cts/graphicsfuzz/cov-replace-copy-object/0-opt.wgsl.expected.ir.fxc.hlsl
deleted file mode 100644
index 3f437dc..0000000
--- a/test/tint/vk-gl-cts/graphicsfuzz/cov-replace-copy-object/0-opt.wgsl.expected.ir.fxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Access
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/cov-return-after-do-while/0-opt.spvasm.expected.ir.dxc.hlsl b/test/tint/vk-gl-cts/graphicsfuzz/cov-return-after-do-while/0-opt.spvasm.expected.ir.dxc.hlsl
deleted file mode 100644
index c6e1d96..0000000
--- a/test/tint/vk-gl-cts/graphicsfuzz/cov-return-after-do-while/0-opt.spvasm.expected.ir.dxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Construct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/cov-return-after-do-while/0-opt.spvasm.expected.ir.fxc.hlsl b/test/tint/vk-gl-cts/graphicsfuzz/cov-return-after-do-while/0-opt.spvasm.expected.ir.fxc.hlsl
index c6e1d96..303ee18 100644
--- a/test/tint/vk-gl-cts/graphicsfuzz/cov-return-after-do-while/0-opt.spvasm.expected.ir.fxc.hlsl
+++ b/test/tint/vk-gl-cts/graphicsfuzz/cov-return-after-do-while/0-opt.spvasm.expected.ir.fxc.hlsl
@@ -1,9 +1,52 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Construct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct main_out {
+  float4 x_GLF_color_1;
+};
+
+struct main_outputs {
+  float4 main_out_x_GLF_color_1 : SV_Target0;
+};
+
+
+static float4 x_GLF_color = (0.0f).xxxx;
+cbuffer cbuffer_x_5 : register(b0) {
+  uint4 x_5[2];
+};
+void main_1() {
+  float v = float(asint(x_5[0u].x));
+  float v_1 = float(asint(x_5[1u].x));
+  float v_2 = float(asint(x_5[1u].x));
+  x_GLF_color = float4(v, v_1, v_2, float(asint(x_5[0u].x)));
+  int v_3 = asint(x_5[1u].x);
+  if ((v_3 > asint(x_5[0u].x))) {
+    {
+      while(true) {
+        x_GLF_color = float4((float(asint(x_5[0u].x))).xxxx);
+        {
+          int x_50 = asint(x_5[1u].x);
+          int x_52 = asint(x_5[0u].x);
+          if (!((x_50 > x_52))) { break; }
+        }
+        continue;
+      }
+    }
+    return;
+  }
+}
+
+main_out main_inner() {
+  main_1();
+  main_out v_4 = {x_GLF_color};
+  return v_4;
+}
+
+main_outputs main() {
+  main_out v_5 = main_inner();
+  main_outputs v_6 = {v_5.x_GLF_color_1};
+  return v_6;
+}
+
+FXC validation failure:
+c:\src\dawn\Shader@0x0000019CD83D1F10(22,13-16): error X3696: infinite loop detected - loop never exits
+
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/cov-return-after-do-while/0-opt.wgsl.expected.ir.dxc.hlsl b/test/tint/vk-gl-cts/graphicsfuzz/cov-return-after-do-while/0-opt.wgsl.expected.ir.dxc.hlsl
deleted file mode 100644
index 3f437dc..0000000
--- a/test/tint/vk-gl-cts/graphicsfuzz/cov-return-after-do-while/0-opt.wgsl.expected.ir.dxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Access
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/cov-return-after-do-while/0-opt.wgsl.expected.ir.fxc.hlsl b/test/tint/vk-gl-cts/graphicsfuzz/cov-return-after-do-while/0-opt.wgsl.expected.ir.fxc.hlsl
index 3f437dc..8b841f4 100644
--- a/test/tint/vk-gl-cts/graphicsfuzz/cov-return-after-do-while/0-opt.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/vk-gl-cts/graphicsfuzz/cov-return-after-do-while/0-opt.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,59 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Access
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct main_out {
+  float4 x_GLF_color_1;
+};
+
+struct main_outputs {
+  float4 main_out_x_GLF_color_1 : SV_Target0;
+};
+
+
+static float4 x_GLF_color = (0.0f).xxxx;
+cbuffer cbuffer_x_5 : register(b0) {
+  uint4 x_5[2];
+};
+void main_1() {
+  int x_22 = asint(x_5[0u].x);
+  int x_25 = asint(x_5[1u].x);
+  int x_28 = asint(x_5[1u].x);
+  int x_31 = asint(x_5[0u].x);
+  float v = float(x_22);
+  float v_1 = float(x_25);
+  float v_2 = float(x_28);
+  x_GLF_color = float4(v, v_1, v_2, float(x_31));
+  int x_35 = asint(x_5[1u].x);
+  int x_37 = asint(x_5[0u].x);
+  if ((x_35 > x_37)) {
+    {
+      while(true) {
+        int x_46 = asint(x_5[0u].x);
+        float x_47 = float(x_46);
+        x_GLF_color = float4(x_47, x_47, x_47, x_47);
+        {
+          int x_50 = asint(x_5[1u].x);
+          int x_52 = asint(x_5[0u].x);
+          if (!((x_50 > x_52))) { break; }
+        }
+        continue;
+      }
+    }
+    return;
+  }
+}
+
+main_out main_inner() {
+  main_1();
+  main_out v_3 = {x_GLF_color};
+  return v_3;
+}
+
+main_outputs main() {
+  main_out v_4 = main_inner();
+  main_outputs v_5 = {v_4.x_GLF_color_1};
+  return v_5;
+}
+
+FXC validation failure:
+c:\src\dawn\Shader@0x000001FAB0E8C270(27,13-16): error X3696: infinite loop detected - loop never exits
+
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/cov-return-after-first-iteration/0-opt.spvasm.expected.ir.dxc.hlsl b/test/tint/vk-gl-cts/graphicsfuzz/cov-return-after-first-iteration/0-opt.spvasm.expected.ir.dxc.hlsl
deleted file mode 100644
index 3f437dc..0000000
--- a/test/tint/vk-gl-cts/graphicsfuzz/cov-return-after-first-iteration/0-opt.spvasm.expected.ir.dxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Access
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/cov-return-after-first-iteration/0-opt.spvasm.expected.ir.fxc.hlsl b/test/tint/vk-gl-cts/graphicsfuzz/cov-return-after-first-iteration/0-opt.spvasm.expected.ir.fxc.hlsl
deleted file mode 100644
index 3f437dc..0000000
--- a/test/tint/vk-gl-cts/graphicsfuzz/cov-return-after-first-iteration/0-opt.spvasm.expected.ir.fxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Access
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/cov-return-after-first-iteration/0-opt.wgsl.expected.ir.dxc.hlsl b/test/tint/vk-gl-cts/graphicsfuzz/cov-return-after-first-iteration/0-opt.wgsl.expected.ir.dxc.hlsl
deleted file mode 100644
index 3f437dc..0000000
--- a/test/tint/vk-gl-cts/graphicsfuzz/cov-return-after-first-iteration/0-opt.wgsl.expected.ir.dxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Access
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/cov-return-after-first-iteration/0-opt.wgsl.expected.ir.fxc.hlsl b/test/tint/vk-gl-cts/graphicsfuzz/cov-return-after-first-iteration/0-opt.wgsl.expected.ir.fxc.hlsl
deleted file mode 100644
index 3f437dc..0000000
--- a/test/tint/vk-gl-cts/graphicsfuzz/cov-return-after-first-iteration/0-opt.wgsl.expected.ir.fxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Access
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/cov-return-partly-undefined-vector-from-array/0-opt.spvasm.expected.ir.dxc.hlsl b/test/tint/vk-gl-cts/graphicsfuzz/cov-return-partly-undefined-vector-from-array/0-opt.spvasm.expected.ir.dxc.hlsl
deleted file mode 100644
index c0935cc..0000000
--- a/test/tint/vk-gl-cts/graphicsfuzz/cov-return-partly-undefined-vector-from-array/0-opt.spvasm.expected.ir.dxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:198 internal compiler error: Switch() matched no cases. Type: tint::core::ir::StoreVectorElement
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/cov-return-partly-undefined-vector-from-array/0-opt.spvasm.expected.ir.fxc.hlsl b/test/tint/vk-gl-cts/graphicsfuzz/cov-return-partly-undefined-vector-from-array/0-opt.spvasm.expected.ir.fxc.hlsl
deleted file mode 100644
index c0935cc..0000000
--- a/test/tint/vk-gl-cts/graphicsfuzz/cov-return-partly-undefined-vector-from-array/0-opt.spvasm.expected.ir.fxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:198 internal compiler error: Switch() matched no cases. Type: tint::core::ir::StoreVectorElement
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/cov-return-partly-undefined-vector-from-array/0-opt.wgsl.expected.ir.dxc.hlsl b/test/tint/vk-gl-cts/graphicsfuzz/cov-return-partly-undefined-vector-from-array/0-opt.wgsl.expected.ir.dxc.hlsl
deleted file mode 100644
index 3f437dc..0000000
--- a/test/tint/vk-gl-cts/graphicsfuzz/cov-return-partly-undefined-vector-from-array/0-opt.wgsl.expected.ir.dxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Access
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/cov-return-partly-undefined-vector-from-array/0-opt.wgsl.expected.ir.fxc.hlsl b/test/tint/vk-gl-cts/graphicsfuzz/cov-return-partly-undefined-vector-from-array/0-opt.wgsl.expected.ir.fxc.hlsl
deleted file mode 100644
index 3f437dc..0000000
--- a/test/tint/vk-gl-cts/graphicsfuzz/cov-return-partly-undefined-vector-from-array/0-opt.wgsl.expected.ir.fxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Access
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/cov-scaled-number-nested-loops-array-access/0-opt.spvasm.expected.ir.dxc.hlsl b/test/tint/vk-gl-cts/graphicsfuzz/cov-scaled-number-nested-loops-array-access/0-opt.spvasm.expected.ir.dxc.hlsl
deleted file mode 100644
index 3f437dc..0000000
--- a/test/tint/vk-gl-cts/graphicsfuzz/cov-scaled-number-nested-loops-array-access/0-opt.spvasm.expected.ir.dxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Access
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/cov-scaled-number-nested-loops-array-access/0-opt.spvasm.expected.ir.fxc.hlsl b/test/tint/vk-gl-cts/graphicsfuzz/cov-scaled-number-nested-loops-array-access/0-opt.spvasm.expected.ir.fxc.hlsl
deleted file mode 100644
index 3f437dc..0000000
--- a/test/tint/vk-gl-cts/graphicsfuzz/cov-scaled-number-nested-loops-array-access/0-opt.spvasm.expected.ir.fxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Access
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/cov-scaled-number-nested-loops-array-access/0-opt.wgsl.expected.ir.dxc.hlsl b/test/tint/vk-gl-cts/graphicsfuzz/cov-scaled-number-nested-loops-array-access/0-opt.wgsl.expected.ir.dxc.hlsl
deleted file mode 100644
index 3f437dc..0000000
--- a/test/tint/vk-gl-cts/graphicsfuzz/cov-scaled-number-nested-loops-array-access/0-opt.wgsl.expected.ir.dxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Access
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/cov-scaled-number-nested-loops-array-access/0-opt.wgsl.expected.ir.fxc.hlsl b/test/tint/vk-gl-cts/graphicsfuzz/cov-scaled-number-nested-loops-array-access/0-opt.wgsl.expected.ir.fxc.hlsl
deleted file mode 100644
index 3f437dc..0000000
--- a/test/tint/vk-gl-cts/graphicsfuzz/cov-scaled-number-nested-loops-array-access/0-opt.wgsl.expected.ir.fxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Access
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/cov-scaled-number-nested-loops/0-opt.spvasm.expected.ir.dxc.hlsl b/test/tint/vk-gl-cts/graphicsfuzz/cov-scaled-number-nested-loops/0-opt.spvasm.expected.ir.dxc.hlsl
deleted file mode 100644
index adbb0c1..0000000
--- a/test/tint/vk-gl-cts/graphicsfuzz/cov-scaled-number-nested-loops/0-opt.spvasm.expected.ir.dxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:198 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Loop
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/cov-scaled-number-nested-loops/0-opt.spvasm.expected.ir.fxc.hlsl b/test/tint/vk-gl-cts/graphicsfuzz/cov-scaled-number-nested-loops/0-opt.spvasm.expected.ir.fxc.hlsl
deleted file mode 100644
index adbb0c1..0000000
--- a/test/tint/vk-gl-cts/graphicsfuzz/cov-scaled-number-nested-loops/0-opt.spvasm.expected.ir.fxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:198 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Loop
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/cov-scaled-number-nested-loops/0-opt.wgsl.expected.ir.dxc.hlsl b/test/tint/vk-gl-cts/graphicsfuzz/cov-scaled-number-nested-loops/0-opt.wgsl.expected.ir.dxc.hlsl
deleted file mode 100644
index adbb0c1..0000000
--- a/test/tint/vk-gl-cts/graphicsfuzz/cov-scaled-number-nested-loops/0-opt.wgsl.expected.ir.dxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:198 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Loop
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/cov-scaled-number-nested-loops/0-opt.wgsl.expected.ir.fxc.hlsl b/test/tint/vk-gl-cts/graphicsfuzz/cov-scaled-number-nested-loops/0-opt.wgsl.expected.ir.fxc.hlsl
deleted file mode 100644
index adbb0c1..0000000
--- a/test/tint/vk-gl-cts/graphicsfuzz/cov-scaled-number-nested-loops/0-opt.wgsl.expected.ir.fxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:198 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Loop
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/cov-schedule-dag-rrlist-mix-log-cos/0-opt.spvasm.expected.ir.dxc.hlsl b/test/tint/vk-gl-cts/graphicsfuzz/cov-schedule-dag-rrlist-mix-log-cos/0-opt.spvasm.expected.ir.dxc.hlsl
deleted file mode 100644
index ddf0424..0000000
--- a/test/tint/vk-gl-cts/graphicsfuzz/cov-schedule-dag-rrlist-mix-log-cos/0-opt.spvasm.expected.ir.dxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: select
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/cov-schedule-dag-rrlist-mix-log-cos/0-opt.spvasm.expected.ir.fxc.hlsl b/test/tint/vk-gl-cts/graphicsfuzz/cov-schedule-dag-rrlist-mix-log-cos/0-opt.spvasm.expected.ir.fxc.hlsl
deleted file mode 100644
index ddf0424..0000000
--- a/test/tint/vk-gl-cts/graphicsfuzz/cov-schedule-dag-rrlist-mix-log-cos/0-opt.spvasm.expected.ir.fxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: select
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/cov-schedule-dag-rrlist-mix-log-cos/0-opt.wgsl.expected.ir.dxc.hlsl b/test/tint/vk-gl-cts/graphicsfuzz/cov-schedule-dag-rrlist-mix-log-cos/0-opt.wgsl.expected.ir.dxc.hlsl
deleted file mode 100644
index 3f437dc..0000000
--- a/test/tint/vk-gl-cts/graphicsfuzz/cov-schedule-dag-rrlist-mix-log-cos/0-opt.wgsl.expected.ir.dxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Access
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/cov-schedule-dag-rrlist-mix-log-cos/0-opt.wgsl.expected.ir.fxc.hlsl b/test/tint/vk-gl-cts/graphicsfuzz/cov-schedule-dag-rrlist-mix-log-cos/0-opt.wgsl.expected.ir.fxc.hlsl
deleted file mode 100644
index 3f437dc..0000000
--- a/test/tint/vk-gl-cts/graphicsfuzz/cov-schedule-dag-rrlist-mix-log-cos/0-opt.wgsl.expected.ir.fxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Access
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/cov-selection-dag-assign-back-and-forth/0-opt.spvasm.expected.ir.dxc.hlsl b/test/tint/vk-gl-cts/graphicsfuzz/cov-selection-dag-assign-back-and-forth/0-opt.spvasm.expected.ir.dxc.hlsl
deleted file mode 100644
index c6e1d96..0000000
--- a/test/tint/vk-gl-cts/graphicsfuzz/cov-selection-dag-assign-back-and-forth/0-opt.spvasm.expected.ir.dxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Construct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/cov-selection-dag-assign-back-and-forth/0-opt.spvasm.expected.ir.fxc.hlsl b/test/tint/vk-gl-cts/graphicsfuzz/cov-selection-dag-assign-back-and-forth/0-opt.spvasm.expected.ir.fxc.hlsl
deleted file mode 100644
index c6e1d96..0000000
--- a/test/tint/vk-gl-cts/graphicsfuzz/cov-selection-dag-assign-back-and-forth/0-opt.spvasm.expected.ir.fxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Construct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/cov-selection-dag-assign-back-and-forth/0-opt.wgsl.expected.ir.dxc.hlsl b/test/tint/vk-gl-cts/graphicsfuzz/cov-selection-dag-assign-back-and-forth/0-opt.wgsl.expected.ir.dxc.hlsl
deleted file mode 100644
index 3f437dc..0000000
--- a/test/tint/vk-gl-cts/graphicsfuzz/cov-selection-dag-assign-back-and-forth/0-opt.wgsl.expected.ir.dxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Access
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/cov-selection-dag-assign-back-and-forth/0-opt.wgsl.expected.ir.fxc.hlsl b/test/tint/vk-gl-cts/graphicsfuzz/cov-selection-dag-assign-back-and-forth/0-opt.wgsl.expected.ir.fxc.hlsl
deleted file mode 100644
index 3f437dc..0000000
--- a/test/tint/vk-gl-cts/graphicsfuzz/cov-selection-dag-assign-back-and-forth/0-opt.wgsl.expected.ir.fxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Access
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/cov-selection-dag-inverse-clamp/0-opt.spvasm.expected.ir.dxc.hlsl b/test/tint/vk-gl-cts/graphicsfuzz/cov-selection-dag-inverse-clamp/0-opt.spvasm.expected.ir.dxc.hlsl
deleted file mode 100644
index 3f437dc..0000000
--- a/test/tint/vk-gl-cts/graphicsfuzz/cov-selection-dag-inverse-clamp/0-opt.spvasm.expected.ir.dxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Access
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/cov-selection-dag-inverse-clamp/0-opt.spvasm.expected.ir.fxc.hlsl b/test/tint/vk-gl-cts/graphicsfuzz/cov-selection-dag-inverse-clamp/0-opt.spvasm.expected.ir.fxc.hlsl
deleted file mode 100644
index 3f437dc..0000000
--- a/test/tint/vk-gl-cts/graphicsfuzz/cov-selection-dag-inverse-clamp/0-opt.spvasm.expected.ir.fxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Access
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/cov-selection-dag-inverse-clamp/0-opt.wgsl.expected.ir.dxc.hlsl b/test/tint/vk-gl-cts/graphicsfuzz/cov-selection-dag-inverse-clamp/0-opt.wgsl.expected.ir.dxc.hlsl
deleted file mode 100644
index 3f437dc..0000000
--- a/test/tint/vk-gl-cts/graphicsfuzz/cov-selection-dag-inverse-clamp/0-opt.wgsl.expected.ir.dxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Access
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/cov-selection-dag-inverse-clamp/0-opt.wgsl.expected.ir.fxc.hlsl b/test/tint/vk-gl-cts/graphicsfuzz/cov-selection-dag-inverse-clamp/0-opt.wgsl.expected.ir.fxc.hlsl
deleted file mode 100644
index 3f437dc..0000000
--- a/test/tint/vk-gl-cts/graphicsfuzz/cov-selection-dag-inverse-clamp/0-opt.wgsl.expected.ir.fxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Access
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/cov-selection-dag-lt-gt/0-opt.spvasm.expected.ir.dxc.hlsl b/test/tint/vk-gl-cts/graphicsfuzz/cov-selection-dag-lt-gt/0-opt.spvasm.expected.ir.dxc.hlsl
deleted file mode 100644
index bdeab23..0000000
--- a/test/tint/vk-gl-cts/graphicsfuzz/cov-selection-dag-lt-gt/0-opt.spvasm.expected.ir.dxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:198 internal compiler error: Switch() matched no cases. Type: tint::core::ir::If
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/cov-selection-dag-lt-gt/0-opt.spvasm.expected.ir.fxc.hlsl b/test/tint/vk-gl-cts/graphicsfuzz/cov-selection-dag-lt-gt/0-opt.spvasm.expected.ir.fxc.hlsl
deleted file mode 100644
index bdeab23..0000000
--- a/test/tint/vk-gl-cts/graphicsfuzz/cov-selection-dag-lt-gt/0-opt.spvasm.expected.ir.fxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:198 internal compiler error: Switch() matched no cases. Type: tint::core::ir::If
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/cov-selection-dag-lt-gt/0-opt.wgsl.expected.ir.dxc.hlsl b/test/tint/vk-gl-cts/graphicsfuzz/cov-selection-dag-lt-gt/0-opt.wgsl.expected.ir.dxc.hlsl
deleted file mode 100644
index 4a2c666..0000000
--- a/test/tint/vk-gl-cts/graphicsfuzz/cov-selection-dag-lt-gt/0-opt.wgsl.expected.ir.dxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::LoadVectorElement
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/cov-selection-dag-lt-gt/0-opt.wgsl.expected.ir.fxc.hlsl b/test/tint/vk-gl-cts/graphicsfuzz/cov-selection-dag-lt-gt/0-opt.wgsl.expected.ir.fxc.hlsl
deleted file mode 100644
index 4a2c666..0000000
--- a/test/tint/vk-gl-cts/graphicsfuzz/cov-selection-dag-lt-gt/0-opt.wgsl.expected.ir.fxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::LoadVectorElement
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/cov-selection-dag-same-cond-twice/0-opt.spvasm.expected.ir.dxc.hlsl b/test/tint/vk-gl-cts/graphicsfuzz/cov-selection-dag-same-cond-twice/0-opt.spvasm.expected.ir.dxc.hlsl
deleted file mode 100644
index 3f437dc..0000000
--- a/test/tint/vk-gl-cts/graphicsfuzz/cov-selection-dag-same-cond-twice/0-opt.spvasm.expected.ir.dxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Access
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/cov-selection-dag-same-cond-twice/0-opt.spvasm.expected.ir.fxc.hlsl b/test/tint/vk-gl-cts/graphicsfuzz/cov-selection-dag-same-cond-twice/0-opt.spvasm.expected.ir.fxc.hlsl
deleted file mode 100644
index 3f437dc..0000000
--- a/test/tint/vk-gl-cts/graphicsfuzz/cov-selection-dag-same-cond-twice/0-opt.spvasm.expected.ir.fxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Access
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/cov-selection-dag-same-cond-twice/0-opt.wgsl.expected.ir.dxc.hlsl b/test/tint/vk-gl-cts/graphicsfuzz/cov-selection-dag-same-cond-twice/0-opt.wgsl.expected.ir.dxc.hlsl
deleted file mode 100644
index 3f437dc..0000000
--- a/test/tint/vk-gl-cts/graphicsfuzz/cov-selection-dag-same-cond-twice/0-opt.wgsl.expected.ir.dxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Access
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/cov-selection-dag-same-cond-twice/0-opt.wgsl.expected.ir.fxc.hlsl b/test/tint/vk-gl-cts/graphicsfuzz/cov-selection-dag-same-cond-twice/0-opt.wgsl.expected.ir.fxc.hlsl
deleted file mode 100644
index 3f437dc..0000000
--- a/test/tint/vk-gl-cts/graphicsfuzz/cov-selection-dag-same-cond-twice/0-opt.wgsl.expected.ir.fxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Access
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/cov-set-output-color-function-call-nested-loop/0.spvasm.expected.ir.dxc.hlsl b/test/tint/vk-gl-cts/graphicsfuzz/cov-set-output-color-function-call-nested-loop/0.spvasm.expected.ir.dxc.hlsl
deleted file mode 100644
index 3f437dc..0000000
--- a/test/tint/vk-gl-cts/graphicsfuzz/cov-set-output-color-function-call-nested-loop/0.spvasm.expected.ir.dxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Access
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/cov-set-output-color-function-call-nested-loop/0.spvasm.expected.ir.fxc.hlsl b/test/tint/vk-gl-cts/graphicsfuzz/cov-set-output-color-function-call-nested-loop/0.spvasm.expected.ir.fxc.hlsl
deleted file mode 100644
index 3f437dc..0000000
--- a/test/tint/vk-gl-cts/graphicsfuzz/cov-set-output-color-function-call-nested-loop/0.spvasm.expected.ir.fxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Access
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/cov-set-output-color-function-call-nested-loop/0.wgsl.expected.ir.dxc.hlsl b/test/tint/vk-gl-cts/graphicsfuzz/cov-set-output-color-function-call-nested-loop/0.wgsl.expected.ir.dxc.hlsl
deleted file mode 100644
index 3f437dc..0000000
--- a/test/tint/vk-gl-cts/graphicsfuzz/cov-set-output-color-function-call-nested-loop/0.wgsl.expected.ir.dxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Access
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/cov-set-output-color-function-call-nested-loop/0.wgsl.expected.ir.fxc.hlsl b/test/tint/vk-gl-cts/graphicsfuzz/cov-set-output-color-function-call-nested-loop/0.wgsl.expected.ir.fxc.hlsl
deleted file mode 100644
index 3f437dc..0000000
--- a/test/tint/vk-gl-cts/graphicsfuzz/cov-set-output-color-function-call-nested-loop/0.wgsl.expected.ir.fxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Access
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/cov-set-vector-cos-fragcoord/0-opt.spvasm.expected.ir.dxc.hlsl b/test/tint/vk-gl-cts/graphicsfuzz/cov-set-vector-cos-fragcoord/0-opt.spvasm.expected.ir.dxc.hlsl
deleted file mode 100644
index bdeab23..0000000
--- a/test/tint/vk-gl-cts/graphicsfuzz/cov-set-vector-cos-fragcoord/0-opt.spvasm.expected.ir.dxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:198 internal compiler error: Switch() matched no cases. Type: tint::core::ir::If
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/cov-set-vector-cos-fragcoord/0-opt.spvasm.expected.ir.fxc.hlsl b/test/tint/vk-gl-cts/graphicsfuzz/cov-set-vector-cos-fragcoord/0-opt.spvasm.expected.ir.fxc.hlsl
deleted file mode 100644
index bdeab23..0000000
--- a/test/tint/vk-gl-cts/graphicsfuzz/cov-set-vector-cos-fragcoord/0-opt.spvasm.expected.ir.fxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:198 internal compiler error: Switch() matched no cases. Type: tint::core::ir::If
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/cov-set-vector-cos-fragcoord/0-opt.wgsl.expected.ir.dxc.hlsl b/test/tint/vk-gl-cts/graphicsfuzz/cov-set-vector-cos-fragcoord/0-opt.wgsl.expected.ir.dxc.hlsl
deleted file mode 100644
index 4a2c666..0000000
--- a/test/tint/vk-gl-cts/graphicsfuzz/cov-set-vector-cos-fragcoord/0-opt.wgsl.expected.ir.dxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::LoadVectorElement
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/cov-set-vector-cos-fragcoord/0-opt.wgsl.expected.ir.fxc.hlsl b/test/tint/vk-gl-cts/graphicsfuzz/cov-set-vector-cos-fragcoord/0-opt.wgsl.expected.ir.fxc.hlsl
deleted file mode 100644
index 4a2c666..0000000
--- a/test/tint/vk-gl-cts/graphicsfuzz/cov-set-vector-cos-fragcoord/0-opt.wgsl.expected.ir.fxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::LoadVectorElement
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/cov-simplification-unused-struct/0-opt.spvasm.expected.ir.dxc.hlsl b/test/tint/vk-gl-cts/graphicsfuzz/cov-simplification-unused-struct/0-opt.spvasm.expected.ir.dxc.hlsl
deleted file mode 100644
index 3f437dc..0000000
--- a/test/tint/vk-gl-cts/graphicsfuzz/cov-simplification-unused-struct/0-opt.spvasm.expected.ir.dxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Access
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/cov-simplification-unused-struct/0-opt.spvasm.expected.ir.fxc.hlsl b/test/tint/vk-gl-cts/graphicsfuzz/cov-simplification-unused-struct/0-opt.spvasm.expected.ir.fxc.hlsl
deleted file mode 100644
index 3f437dc..0000000
--- a/test/tint/vk-gl-cts/graphicsfuzz/cov-simplification-unused-struct/0-opt.spvasm.expected.ir.fxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Access
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/cov-simplification-unused-struct/0-opt.wgsl.expected.ir.dxc.hlsl b/test/tint/vk-gl-cts/graphicsfuzz/cov-simplification-unused-struct/0-opt.wgsl.expected.ir.dxc.hlsl
deleted file mode 100644
index 6b047b4..0000000
--- a/test/tint/vk-gl-cts/graphicsfuzz/cov-simplification-unused-struct/0-opt.wgsl.expected.ir.dxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:287 internal compiler error: Switch() matched no cases. Type: tint::core::ir::FunctionParam
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/cov-simplification-unused-struct/0-opt.wgsl.expected.ir.fxc.hlsl b/test/tint/vk-gl-cts/graphicsfuzz/cov-simplification-unused-struct/0-opt.wgsl.expected.ir.fxc.hlsl
deleted file mode 100644
index 6b047b4..0000000
--- a/test/tint/vk-gl-cts/graphicsfuzz/cov-simplification-unused-struct/0-opt.wgsl.expected.ir.fxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:287 internal compiler error: Switch() matched no cases. Type: tint::core::ir::FunctionParam
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/cov-simplification-while-inside-for/0-opt.spvasm.expected.ir.dxc.hlsl b/test/tint/vk-gl-cts/graphicsfuzz/cov-simplification-while-inside-for/0-opt.spvasm.expected.ir.dxc.hlsl
deleted file mode 100644
index adbb0c1..0000000
--- a/test/tint/vk-gl-cts/graphicsfuzz/cov-simplification-while-inside-for/0-opt.spvasm.expected.ir.dxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:198 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Loop
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/cov-simplification-while-inside-for/0-opt.spvasm.expected.ir.fxc.hlsl b/test/tint/vk-gl-cts/graphicsfuzz/cov-simplification-while-inside-for/0-opt.spvasm.expected.ir.fxc.hlsl
deleted file mode 100644
index adbb0c1..0000000
--- a/test/tint/vk-gl-cts/graphicsfuzz/cov-simplification-while-inside-for/0-opt.spvasm.expected.ir.fxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:198 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Loop
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/cov-simplification-while-inside-for/0-opt.wgsl.expected.ir.dxc.hlsl b/test/tint/vk-gl-cts/graphicsfuzz/cov-simplification-while-inside-for/0-opt.wgsl.expected.ir.dxc.hlsl
deleted file mode 100644
index adbb0c1..0000000
--- a/test/tint/vk-gl-cts/graphicsfuzz/cov-simplification-while-inside-for/0-opt.wgsl.expected.ir.dxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:198 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Loop
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/cov-simplification-while-inside-for/0-opt.wgsl.expected.ir.fxc.hlsl b/test/tint/vk-gl-cts/graphicsfuzz/cov-simplification-while-inside-for/0-opt.wgsl.expected.ir.fxc.hlsl
deleted file mode 100644
index adbb0c1..0000000
--- a/test/tint/vk-gl-cts/graphicsfuzz/cov-simplification-while-inside-for/0-opt.wgsl.expected.ir.fxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:198 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Loop
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/cov-simplify-clamp-max-itself/0-opt.spvasm.expected.ir.dxc.hlsl b/test/tint/vk-gl-cts/graphicsfuzz/cov-simplify-clamp-max-itself/0-opt.spvasm.expected.ir.dxc.hlsl
index adbb0c1..cb918d9 100644
--- a/test/tint/vk-gl-cts/graphicsfuzz/cov-simplify-clamp-max-itself/0-opt.spvasm.expected.ir.dxc.hlsl
+++ b/test/tint/vk-gl-cts/graphicsfuzz/cov-simplify-clamp-max-itself/0-opt.spvasm.expected.ir.dxc.hlsl
@@ -1,9 +1,192 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:198 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Loop
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+
+struct buf0 {
+  /* @offset(0) */
+  sequence : vec4i,
+}
+
+@group(0) @binding(0) var<uniform> x_7 : buf0;
+
+var<private> x_GLF_color : vec4f;
+
+fn main_1() {
+  var a : vec4i;
+  var i : i32;
+  var sum : i32;
+  a = vec4i();
+  i = 0i;
+  loop {
+    if ((i < (x_7.sequence.w + 1i))) {
+    } else {
+      break;
+    }
+    if ((x_7.sequence[clamp(i, x_7.sequence.x, i)] == 1i)) {
+      let x_57 = i;
+      a[x_57] = 5i;
+    } else {
+      let x_59 = i;
+      a[x_59] = i;
+    }
+
+    continuing {
+      i = (i + 1i);
+    }
+  }
+  sum = (((a.x + a.y) + a.z) + a.w);
+  if ((sum == 10i)) {
+    x_GLF_color = vec4f(1.0f, 0.0f, 0.0f, 1.0f);
+  } else {
+    x_GLF_color = vec4f();
+  }
+  return;
+}
+
+struct main_out {
+  @location(0)
+  x_GLF_color_1 : vec4f,
+}
+
+@fragment
+fn main() -> main_out {
+  main_1();
+  return main_out(x_GLF_color);
+}
+
+Failed to generate: :44:9 error: binary: no matching overload for 'operator * (i32, u32)'
+
+9 candidate operators:
+ • 'operator * (T  ✓ , T  ✗ ) -> T' where:
+      ✓  'T' is 'f32', 'i32', 'u32' or 'f16'
+ • 'operator * (vecN<T>  ✗ , T  ✓ ) -> vecN<T>' where:
+      ✓  'T' is 'f32', 'i32', 'u32' or 'f16'
+ • 'operator * (T  ✓ , vecN<T>  ✗ ) -> vecN<T>' where:
+      ✓  'T' is 'f32', 'i32', 'u32' or 'f16'
+ • 'operator * (T  ✗ , matNxM<T>  ✗ ) -> matNxM<T>' where:
+      ✗  'T' is 'f32' or 'f16'
+ • 'operator * (matNxM<T>  ✗ , T  ✗ ) -> matNxM<T>' where:
+      ✗  'T' is 'f32' or 'f16'
+ • 'operator * (vecN<T>  ✗ , vecN<T>  ✗ ) -> vecN<T>' where:
+      ✗  'T' is 'f32', 'i32', 'u32' or 'f16'
+ • 'operator * (matCxR<T>  ✗ , vecC<T>  ✗ ) -> vecR<T>' where:
+      ✗  'T' is 'f32' or 'f16'
+ • 'operator * (vecR<T>  ✗ , matCxR<T>  ✗ ) -> vecC<T>' where:
+      ✗  'T' is 'f32' or 'f16'
+ • 'operator * (matKxR<T>  ✗ , matCxK<T>  ✗ ) -> matCxR<T>' where:
+      ✗  'T' is 'f32' or 'f16'
+
+        %20:u32 = mul %19, 4u
+        ^^^^^^^^^^^^^^^^^^^^^
+
+:22:7 note: in block
+      $B3: {  # body
+      ^^^
+
+note: # Disassembly
+buf0 = struct @align(16) {
+  sequence:vec4<i32> @offset(0)
+}
+
+main_out = struct @align(16) {
+  x_GLF_color_1:vec4<f32> @offset(0), @location(0)
+}
+
+$B1: {  # root
+  %x_7:ptr<uniform, array<vec4<u32>, 1>, read> = var @binding_point(0, 0)
+  %x_GLF_color:ptr<private, vec4<f32>, read_write> = var
+}
+
+%main_1 = func():void {
+  $B2: {
+    %a:ptr<function, vec4<i32>, read_write> = var
+    %i:ptr<function, i32, read_write> = var
+    %sum:ptr<function, i32, read_write> = var
+    store %a, vec4<i32>(0i)
+    store %i, 0i
+    loop [b: $B3, c: $B4] {  # loop_1
+      $B3: {  # body
+        %7:i32 = load %i
+        %8:ptr<uniform, vec4<u32>, read> = access %x_7, 0u
+        %9:u32 = load_vector_element %8, 3u
+        %10:i32 = bitcast %9
+        %11:i32 = add %10, 1i
+        %12:bool = lt %7, %11
+        if %12 [t: $B5, f: $B6] {  # if_1
+          $B5: {  # true
+            exit_if  # if_1
+          }
+          $B6: {  # false
+            exit_loop  # loop_1
+          }
+        }
+        %13:i32 = load %i
+        %14:ptr<uniform, vec4<u32>, read> = access %x_7, 0u
+        %15:u32 = load_vector_element %14, 0u
+        %16:i32 = bitcast %15
+        %17:i32 = load %i
+        %18:i32 = max %13, %16
+        %19:i32 = min %18, %17
+        %20:u32 = mul %19, 4u
+        %21:u32 = div %20, 16u
+        %22:ptr<uniform, vec4<u32>, read> = access %x_7, %21
+        %23:u32 = mod %20, 16u
+        %24:u32 = div %23, 4u
+        %25:u32 = load_vector_element %22, %24
+        %26:i32 = bitcast %25
+        %27:bool = eq %26, 1i
+        if %27 [t: $B7, f: $B8] {  # if_2
+          $B7: {  # true
+            %28:i32 = load %i
+            %x_57:i32 = let %28
+            store_vector_element %a, %x_57, 5i
+            exit_if  # if_2
+          }
+          $B8: {  # false
+            %30:i32 = load %i
+            %x_59:i32 = let %30
+            %32:i32 = load %i
+            store_vector_element %a, %x_59, %32
+            exit_if  # if_2
+          }
+        }
+        continue  # -> $B4
+      }
+      $B4: {  # continuing
+        %33:i32 = load %i
+        %34:i32 = add %33, 1i
+        store %i, %34
+        next_iteration  # -> $B3
+      }
+    }
+    %35:i32 = load_vector_element %a, 0u
+    %36:i32 = load_vector_element %a, 1u
+    %37:i32 = add %35, %36
+    %38:i32 = load_vector_element %a, 2u
+    %39:i32 = add %37, %38
+    %40:i32 = load_vector_element %a, 3u
+    %41:i32 = add %39, %40
+    store %sum, %41
+    %42:i32 = load %sum
+    %43:bool = eq %42, 10i
+    if %43 [t: $B9, f: $B10] {  # if_3
+      $B9: {  # true
+        store %x_GLF_color, vec4<f32>(1.0f, 0.0f, 0.0f, 1.0f)
+        exit_if  # if_3
+      }
+      $B10: {  # false
+        store %x_GLF_color, vec4<f32>(0.0f)
+        exit_if  # if_3
+      }
+    }
+    ret
+  }
+}
+%main = @fragment func():main_out {
+  $B11: {
+    %45:void = call %main_1
+    %46:vec4<f32> = load %x_GLF_color
+    %47:main_out = construct %46
+    ret %47
+  }
+}
+
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/cov-simplify-clamp-max-itself/0-opt.spvasm.expected.ir.fxc.hlsl b/test/tint/vk-gl-cts/graphicsfuzz/cov-simplify-clamp-max-itself/0-opt.spvasm.expected.ir.fxc.hlsl
index adbb0c1..cb918d9 100644
--- a/test/tint/vk-gl-cts/graphicsfuzz/cov-simplify-clamp-max-itself/0-opt.spvasm.expected.ir.fxc.hlsl
+++ b/test/tint/vk-gl-cts/graphicsfuzz/cov-simplify-clamp-max-itself/0-opt.spvasm.expected.ir.fxc.hlsl
@@ -1,9 +1,192 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:198 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Loop
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+
+struct buf0 {
+  /* @offset(0) */
+  sequence : vec4i,
+}
+
+@group(0) @binding(0) var<uniform> x_7 : buf0;
+
+var<private> x_GLF_color : vec4f;
+
+fn main_1() {
+  var a : vec4i;
+  var i : i32;
+  var sum : i32;
+  a = vec4i();
+  i = 0i;
+  loop {
+    if ((i < (x_7.sequence.w + 1i))) {
+    } else {
+      break;
+    }
+    if ((x_7.sequence[clamp(i, x_7.sequence.x, i)] == 1i)) {
+      let x_57 = i;
+      a[x_57] = 5i;
+    } else {
+      let x_59 = i;
+      a[x_59] = i;
+    }
+
+    continuing {
+      i = (i + 1i);
+    }
+  }
+  sum = (((a.x + a.y) + a.z) + a.w);
+  if ((sum == 10i)) {
+    x_GLF_color = vec4f(1.0f, 0.0f, 0.0f, 1.0f);
+  } else {
+    x_GLF_color = vec4f();
+  }
+  return;
+}
+
+struct main_out {
+  @location(0)
+  x_GLF_color_1 : vec4f,
+}
+
+@fragment
+fn main() -> main_out {
+  main_1();
+  return main_out(x_GLF_color);
+}
+
+Failed to generate: :44:9 error: binary: no matching overload for 'operator * (i32, u32)'
+
+9 candidate operators:
+ • 'operator * (T  ✓ , T  ✗ ) -> T' where:
+      ✓  'T' is 'f32', 'i32', 'u32' or 'f16'
+ • 'operator * (vecN<T>  ✗ , T  ✓ ) -> vecN<T>' where:
+      ✓  'T' is 'f32', 'i32', 'u32' or 'f16'
+ • 'operator * (T  ✓ , vecN<T>  ✗ ) -> vecN<T>' where:
+      ✓  'T' is 'f32', 'i32', 'u32' or 'f16'
+ • 'operator * (T  ✗ , matNxM<T>  ✗ ) -> matNxM<T>' where:
+      ✗  'T' is 'f32' or 'f16'
+ • 'operator * (matNxM<T>  ✗ , T  ✗ ) -> matNxM<T>' where:
+      ✗  'T' is 'f32' or 'f16'
+ • 'operator * (vecN<T>  ✗ , vecN<T>  ✗ ) -> vecN<T>' where:
+      ✗  'T' is 'f32', 'i32', 'u32' or 'f16'
+ • 'operator * (matCxR<T>  ✗ , vecC<T>  ✗ ) -> vecR<T>' where:
+      ✗  'T' is 'f32' or 'f16'
+ • 'operator * (vecR<T>  ✗ , matCxR<T>  ✗ ) -> vecC<T>' where:
+      ✗  'T' is 'f32' or 'f16'
+ • 'operator * (matKxR<T>  ✗ , matCxK<T>  ✗ ) -> matCxR<T>' where:
+      ✗  'T' is 'f32' or 'f16'
+
+        %20:u32 = mul %19, 4u
+        ^^^^^^^^^^^^^^^^^^^^^
+
+:22:7 note: in block
+      $B3: {  # body
+      ^^^
+
+note: # Disassembly
+buf0 = struct @align(16) {
+  sequence:vec4<i32> @offset(0)
+}
+
+main_out = struct @align(16) {
+  x_GLF_color_1:vec4<f32> @offset(0), @location(0)
+}
+
+$B1: {  # root
+  %x_7:ptr<uniform, array<vec4<u32>, 1>, read> = var @binding_point(0, 0)
+  %x_GLF_color:ptr<private, vec4<f32>, read_write> = var
+}
+
+%main_1 = func():void {
+  $B2: {
+    %a:ptr<function, vec4<i32>, read_write> = var
+    %i:ptr<function, i32, read_write> = var
+    %sum:ptr<function, i32, read_write> = var
+    store %a, vec4<i32>(0i)
+    store %i, 0i
+    loop [b: $B3, c: $B4] {  # loop_1
+      $B3: {  # body
+        %7:i32 = load %i
+        %8:ptr<uniform, vec4<u32>, read> = access %x_7, 0u
+        %9:u32 = load_vector_element %8, 3u
+        %10:i32 = bitcast %9
+        %11:i32 = add %10, 1i
+        %12:bool = lt %7, %11
+        if %12 [t: $B5, f: $B6] {  # if_1
+          $B5: {  # true
+            exit_if  # if_1
+          }
+          $B6: {  # false
+            exit_loop  # loop_1
+          }
+        }
+        %13:i32 = load %i
+        %14:ptr<uniform, vec4<u32>, read> = access %x_7, 0u
+        %15:u32 = load_vector_element %14, 0u
+        %16:i32 = bitcast %15
+        %17:i32 = load %i
+        %18:i32 = max %13, %16
+        %19:i32 = min %18, %17
+        %20:u32 = mul %19, 4u
+        %21:u32 = div %20, 16u
+        %22:ptr<uniform, vec4<u32>, read> = access %x_7, %21
+        %23:u32 = mod %20, 16u
+        %24:u32 = div %23, 4u
+        %25:u32 = load_vector_element %22, %24
+        %26:i32 = bitcast %25
+        %27:bool = eq %26, 1i
+        if %27 [t: $B7, f: $B8] {  # if_2
+          $B7: {  # true
+            %28:i32 = load %i
+            %x_57:i32 = let %28
+            store_vector_element %a, %x_57, 5i
+            exit_if  # if_2
+          }
+          $B8: {  # false
+            %30:i32 = load %i
+            %x_59:i32 = let %30
+            %32:i32 = load %i
+            store_vector_element %a, %x_59, %32
+            exit_if  # if_2
+          }
+        }
+        continue  # -> $B4
+      }
+      $B4: {  # continuing
+        %33:i32 = load %i
+        %34:i32 = add %33, 1i
+        store %i, %34
+        next_iteration  # -> $B3
+      }
+    }
+    %35:i32 = load_vector_element %a, 0u
+    %36:i32 = load_vector_element %a, 1u
+    %37:i32 = add %35, %36
+    %38:i32 = load_vector_element %a, 2u
+    %39:i32 = add %37, %38
+    %40:i32 = load_vector_element %a, 3u
+    %41:i32 = add %39, %40
+    store %sum, %41
+    %42:i32 = load %sum
+    %43:bool = eq %42, 10i
+    if %43 [t: $B9, f: $B10] {  # if_3
+      $B9: {  # true
+        store %x_GLF_color, vec4<f32>(1.0f, 0.0f, 0.0f, 1.0f)
+        exit_if  # if_3
+      }
+      $B10: {  # false
+        store %x_GLF_color, vec4<f32>(0.0f)
+        exit_if  # if_3
+      }
+    }
+    ret
+  }
+}
+%main = @fragment func():main_out {
+  $B11: {
+    %45:void = call %main_1
+    %46:vec4<f32> = load %x_GLF_color
+    %47:main_out = construct %46
+    ret %47
+  }
+}
+
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/cov-simplify-clamp-max-itself/0-opt.wgsl.expected.ir.dxc.hlsl b/test/tint/vk-gl-cts/graphicsfuzz/cov-simplify-clamp-max-itself/0-opt.wgsl.expected.ir.dxc.hlsl
index adbb0c1..3f7ca96 100644
--- a/test/tint/vk-gl-cts/graphicsfuzz/cov-simplify-clamp-max-itself/0-opt.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/vk-gl-cts/graphicsfuzz/cov-simplify-clamp-max-itself/0-opt.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,217 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:198 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Loop
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+
+struct buf0 {
+  sequence : vec4<i32>,
+}
+
+@group(0) @binding(0) var<uniform> x_7 : buf0;
+
+var<private> x_GLF_color : vec4<f32>;
+
+fn main_1() {
+  var a : vec4<i32>;
+  var i : i32;
+  var sum : i32;
+  a = vec4<i32>(0, 0, 0, 0);
+  i = 0;
+  loop {
+    let x_40 : i32 = i;
+    let x_42 : i32 = x_7.sequence.w;
+    if ((x_40 < (x_42 + 1))) {
+    } else {
+      break;
+    }
+    let x_46 : i32 = i;
+    let x_48 : i32 = x_7.sequence.x;
+    let x_49 : i32 = i;
+    let x_52 : i32 = x_7.sequence[clamp(x_46, x_48, x_49)];
+    if ((x_52 == 1)) {
+      let x_57 : i32 = i;
+      a[x_57] = 5;
+    } else {
+      let x_59 : i32 = i;
+      let x_60 : i32 = i;
+      a[x_59] = x_60;
+    }
+
+    continuing {
+      let x_62 : i32 = i;
+      i = (x_62 + 1);
+    }
+  }
+  let x_65 : i32 = a.x;
+  let x_67 : i32 = a.y;
+  let x_70 : i32 = a.z;
+  let x_73 : i32 = a.w;
+  sum = (((x_65 + x_67) + x_70) + x_73);
+  let x_75 : i32 = sum;
+  if ((x_75 == 10)) {
+    x_GLF_color = vec4<f32>(1.0, 0.0, 0.0, 1.0);
+  } else {
+    x_GLF_color = vec4<f32>(0.0, 0.0, 0.0, 0.0);
+  }
+  return;
+}
+
+struct main_out {
+  @location(0)
+  x_GLF_color_1 : vec4<f32>,
+}
+
+@fragment
+fn main() -> main_out {
+  main_1();
+  return main_out(x_GLF_color);
+}
+
+Failed to generate: :49:9 error: binary: no matching overload for 'operator * (i32, u32)'
+
+9 candidate operators:
+ • 'operator * (T  ✓ , T  ✗ ) -> T' where:
+      ✓  'T' is 'f32', 'i32', 'u32' or 'f16'
+ • 'operator * (vecN<T>  ✗ , T  ✓ ) -> vecN<T>' where:
+      ✓  'T' is 'f32', 'i32', 'u32' or 'f16'
+ • 'operator * (T  ✓ , vecN<T>  ✗ ) -> vecN<T>' where:
+      ✓  'T' is 'f32', 'i32', 'u32' or 'f16'
+ • 'operator * (T  ✗ , matNxM<T>  ✗ ) -> matNxM<T>' where:
+      ✗  'T' is 'f32' or 'f16'
+ • 'operator * (matNxM<T>  ✗ , T  ✗ ) -> matNxM<T>' where:
+      ✗  'T' is 'f32' or 'f16'
+ • 'operator * (vecN<T>  ✗ , vecN<T>  ✗ ) -> vecN<T>' where:
+      ✗  'T' is 'f32', 'i32', 'u32' or 'f16'
+ • 'operator * (matCxR<T>  ✗ , vecC<T>  ✗ ) -> vecR<T>' where:
+      ✗  'T' is 'f32' or 'f16'
+ • 'operator * (vecR<T>  ✗ , matCxR<T>  ✗ ) -> vecC<T>' where:
+      ✗  'T' is 'f32' or 'f16'
+ • 'operator * (matKxR<T>  ✗ , matCxK<T>  ✗ ) -> matCxR<T>' where:
+      ✗  'T' is 'f32' or 'f16'
+
+        %25:u32 = mul %24, 4u
+        ^^^^^^^^^^^^^^^^^^^^^
+
+:22:7 note: in block
+      $B3: {  # body
+      ^^^
+
+note: # Disassembly
+buf0 = struct @align(16) {
+  sequence:vec4<i32> @offset(0)
+}
+
+main_out = struct @align(16) {
+  x_GLF_color_1:vec4<f32> @offset(0), @location(0)
+}
+
+$B1: {  # root
+  %x_7:ptr<uniform, array<vec4<u32>, 1>, read> = var @binding_point(0, 0)
+  %x_GLF_color:ptr<private, vec4<f32>, read_write> = var
+}
+
+%main_1 = func():void {
+  $B2: {
+    %a:ptr<function, vec4<i32>, read_write> = var
+    %i:ptr<function, i32, read_write> = var
+    %sum:ptr<function, i32, read_write> = var
+    store %a, vec4<i32>(0i)
+    store %i, 0i
+    loop [b: $B3, c: $B4] {  # loop_1
+      $B3: {  # body
+        %7:i32 = load %i
+        %x_40:i32 = let %7
+        %9:ptr<uniform, vec4<u32>, read> = access %x_7, 0u
+        %10:u32 = load_vector_element %9, 3u
+        %11:i32 = bitcast %10
+        %x_42:i32 = let %11
+        %13:i32 = add %x_42, 1i
+        %14:bool = lt %x_40, %13
+        if %14 [t: $B5, f: $B6] {  # if_1
+          $B5: {  # true
+            exit_if  # if_1
+          }
+          $B6: {  # false
+            exit_loop  # loop_1
+          }
+        }
+        %15:i32 = load %i
+        %x_46:i32 = let %15
+        %17:ptr<uniform, vec4<u32>, read> = access %x_7, 0u
+        %18:u32 = load_vector_element %17, 0u
+        %19:i32 = bitcast %18
+        %x_48:i32 = let %19
+        %21:i32 = load %i
+        %x_49:i32 = let %21
+        %23:i32 = max %x_46, %x_48
+        %24:i32 = min %23, %x_49
+        %25:u32 = mul %24, 4u
+        %26:u32 = div %25, 16u
+        %27:ptr<uniform, vec4<u32>, read> = access %x_7, %26
+        %28:u32 = mod %25, 16u
+        %29:u32 = div %28, 4u
+        %30:u32 = load_vector_element %27, %29
+        %31:i32 = bitcast %30
+        %x_52:i32 = let %31
+        %33:bool = eq %x_52, 1i
+        if %33 [t: $B7, f: $B8] {  # if_2
+          $B7: {  # true
+            %34:i32 = load %i
+            %x_57:i32 = let %34
+            store_vector_element %a, %x_57, 5i
+            exit_if  # if_2
+          }
+          $B8: {  # false
+            %36:i32 = load %i
+            %x_59:i32 = let %36
+            %38:i32 = load %i
+            %x_60:i32 = let %38
+            store_vector_element %a, %x_59, %x_60
+            exit_if  # if_2
+          }
+        }
+        continue  # -> $B4
+      }
+      $B4: {  # continuing
+        %40:i32 = load %i
+        %x_62:i32 = let %40
+        %42:i32 = add %x_62, 1i
+        store %i, %42
+        next_iteration  # -> $B3
+      }
+    }
+    %43:i32 = load_vector_element %a, 0u
+    %x_65:i32 = let %43
+    %45:i32 = load_vector_element %a, 1u
+    %x_67:i32 = let %45
+    %47:i32 = load_vector_element %a, 2u
+    %x_70:i32 = let %47
+    %49:i32 = load_vector_element %a, 3u
+    %x_73:i32 = let %49
+    %51:i32 = add %x_65, %x_67
+    %52:i32 = add %51, %x_70
+    %53:i32 = add %52, %x_73
+    store %sum, %53
+    %54:i32 = load %sum
+    %x_75:i32 = let %54
+    %56:bool = eq %x_75, 10i
+    if %56 [t: $B9, f: $B10] {  # if_3
+      $B9: {  # true
+        store %x_GLF_color, vec4<f32>(1.0f, 0.0f, 0.0f, 1.0f)
+        exit_if  # if_3
+      }
+      $B10: {  # false
+        store %x_GLF_color, vec4<f32>(0.0f)
+        exit_if  # if_3
+      }
+    }
+    ret
+  }
+}
+%main = @fragment func():main_out {
+  $B11: {
+    %58:void = call %main_1
+    %59:vec4<f32> = load %x_GLF_color
+    %60:main_out = construct %59
+    ret %60
+  }
+}
+
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/cov-simplify-clamp-max-itself/0-opt.wgsl.expected.ir.fxc.hlsl b/test/tint/vk-gl-cts/graphicsfuzz/cov-simplify-clamp-max-itself/0-opt.wgsl.expected.ir.fxc.hlsl
index adbb0c1..3f7ca96 100644
--- a/test/tint/vk-gl-cts/graphicsfuzz/cov-simplify-clamp-max-itself/0-opt.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/vk-gl-cts/graphicsfuzz/cov-simplify-clamp-max-itself/0-opt.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,217 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:198 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Loop
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+
+struct buf0 {
+  sequence : vec4<i32>,
+}
+
+@group(0) @binding(0) var<uniform> x_7 : buf0;
+
+var<private> x_GLF_color : vec4<f32>;
+
+fn main_1() {
+  var a : vec4<i32>;
+  var i : i32;
+  var sum : i32;
+  a = vec4<i32>(0, 0, 0, 0);
+  i = 0;
+  loop {
+    let x_40 : i32 = i;
+    let x_42 : i32 = x_7.sequence.w;
+    if ((x_40 < (x_42 + 1))) {
+    } else {
+      break;
+    }
+    let x_46 : i32 = i;
+    let x_48 : i32 = x_7.sequence.x;
+    let x_49 : i32 = i;
+    let x_52 : i32 = x_7.sequence[clamp(x_46, x_48, x_49)];
+    if ((x_52 == 1)) {
+      let x_57 : i32 = i;
+      a[x_57] = 5;
+    } else {
+      let x_59 : i32 = i;
+      let x_60 : i32 = i;
+      a[x_59] = x_60;
+    }
+
+    continuing {
+      let x_62 : i32 = i;
+      i = (x_62 + 1);
+    }
+  }
+  let x_65 : i32 = a.x;
+  let x_67 : i32 = a.y;
+  let x_70 : i32 = a.z;
+  let x_73 : i32 = a.w;
+  sum = (((x_65 + x_67) + x_70) + x_73);
+  let x_75 : i32 = sum;
+  if ((x_75 == 10)) {
+    x_GLF_color = vec4<f32>(1.0, 0.0, 0.0, 1.0);
+  } else {
+    x_GLF_color = vec4<f32>(0.0, 0.0, 0.0, 0.0);
+  }
+  return;
+}
+
+struct main_out {
+  @location(0)
+  x_GLF_color_1 : vec4<f32>,
+}
+
+@fragment
+fn main() -> main_out {
+  main_1();
+  return main_out(x_GLF_color);
+}
+
+Failed to generate: :49:9 error: binary: no matching overload for 'operator * (i32, u32)'
+
+9 candidate operators:
+ • 'operator * (T  ✓ , T  ✗ ) -> T' where:
+      ✓  'T' is 'f32', 'i32', 'u32' or 'f16'
+ • 'operator * (vecN<T>  ✗ , T  ✓ ) -> vecN<T>' where:
+      ✓  'T' is 'f32', 'i32', 'u32' or 'f16'
+ • 'operator * (T  ✓ , vecN<T>  ✗ ) -> vecN<T>' where:
+      ✓  'T' is 'f32', 'i32', 'u32' or 'f16'
+ • 'operator * (T  ✗ , matNxM<T>  ✗ ) -> matNxM<T>' where:
+      ✗  'T' is 'f32' or 'f16'
+ • 'operator * (matNxM<T>  ✗ , T  ✗ ) -> matNxM<T>' where:
+      ✗  'T' is 'f32' or 'f16'
+ • 'operator * (vecN<T>  ✗ , vecN<T>  ✗ ) -> vecN<T>' where:
+      ✗  'T' is 'f32', 'i32', 'u32' or 'f16'
+ • 'operator * (matCxR<T>  ✗ , vecC<T>  ✗ ) -> vecR<T>' where:
+      ✗  'T' is 'f32' or 'f16'
+ • 'operator * (vecR<T>  ✗ , matCxR<T>  ✗ ) -> vecC<T>' where:
+      ✗  'T' is 'f32' or 'f16'
+ • 'operator * (matKxR<T>  ✗ , matCxK<T>  ✗ ) -> matCxR<T>' where:
+      ✗  'T' is 'f32' or 'f16'
+
+        %25:u32 = mul %24, 4u
+        ^^^^^^^^^^^^^^^^^^^^^
+
+:22:7 note: in block
+      $B3: {  # body
+      ^^^
+
+note: # Disassembly
+buf0 = struct @align(16) {
+  sequence:vec4<i32> @offset(0)
+}
+
+main_out = struct @align(16) {
+  x_GLF_color_1:vec4<f32> @offset(0), @location(0)
+}
+
+$B1: {  # root
+  %x_7:ptr<uniform, array<vec4<u32>, 1>, read> = var @binding_point(0, 0)
+  %x_GLF_color:ptr<private, vec4<f32>, read_write> = var
+}
+
+%main_1 = func():void {
+  $B2: {
+    %a:ptr<function, vec4<i32>, read_write> = var
+    %i:ptr<function, i32, read_write> = var
+    %sum:ptr<function, i32, read_write> = var
+    store %a, vec4<i32>(0i)
+    store %i, 0i
+    loop [b: $B3, c: $B4] {  # loop_1
+      $B3: {  # body
+        %7:i32 = load %i
+        %x_40:i32 = let %7
+        %9:ptr<uniform, vec4<u32>, read> = access %x_7, 0u
+        %10:u32 = load_vector_element %9, 3u
+        %11:i32 = bitcast %10
+        %x_42:i32 = let %11
+        %13:i32 = add %x_42, 1i
+        %14:bool = lt %x_40, %13
+        if %14 [t: $B5, f: $B6] {  # if_1
+          $B5: {  # true
+            exit_if  # if_1
+          }
+          $B6: {  # false
+            exit_loop  # loop_1
+          }
+        }
+        %15:i32 = load %i
+        %x_46:i32 = let %15
+        %17:ptr<uniform, vec4<u32>, read> = access %x_7, 0u
+        %18:u32 = load_vector_element %17, 0u
+        %19:i32 = bitcast %18
+        %x_48:i32 = let %19
+        %21:i32 = load %i
+        %x_49:i32 = let %21
+        %23:i32 = max %x_46, %x_48
+        %24:i32 = min %23, %x_49
+        %25:u32 = mul %24, 4u
+        %26:u32 = div %25, 16u
+        %27:ptr<uniform, vec4<u32>, read> = access %x_7, %26
+        %28:u32 = mod %25, 16u
+        %29:u32 = div %28, 4u
+        %30:u32 = load_vector_element %27, %29
+        %31:i32 = bitcast %30
+        %x_52:i32 = let %31
+        %33:bool = eq %x_52, 1i
+        if %33 [t: $B7, f: $B8] {  # if_2
+          $B7: {  # true
+            %34:i32 = load %i
+            %x_57:i32 = let %34
+            store_vector_element %a, %x_57, 5i
+            exit_if  # if_2
+          }
+          $B8: {  # false
+            %36:i32 = load %i
+            %x_59:i32 = let %36
+            %38:i32 = load %i
+            %x_60:i32 = let %38
+            store_vector_element %a, %x_59, %x_60
+            exit_if  # if_2
+          }
+        }
+        continue  # -> $B4
+      }
+      $B4: {  # continuing
+        %40:i32 = load %i
+        %x_62:i32 = let %40
+        %42:i32 = add %x_62, 1i
+        store %i, %42
+        next_iteration  # -> $B3
+      }
+    }
+    %43:i32 = load_vector_element %a, 0u
+    %x_65:i32 = let %43
+    %45:i32 = load_vector_element %a, 1u
+    %x_67:i32 = let %45
+    %47:i32 = load_vector_element %a, 2u
+    %x_70:i32 = let %47
+    %49:i32 = load_vector_element %a, 3u
+    %x_73:i32 = let %49
+    %51:i32 = add %x_65, %x_67
+    %52:i32 = add %51, %x_70
+    %53:i32 = add %52, %x_73
+    store %sum, %53
+    %54:i32 = load %sum
+    %x_75:i32 = let %54
+    %56:bool = eq %x_75, 10i
+    if %56 [t: $B9, f: $B10] {  # if_3
+      $B9: {  # true
+        store %x_GLF_color, vec4<f32>(1.0f, 0.0f, 0.0f, 1.0f)
+        exit_if  # if_3
+      }
+      $B10: {  # false
+        store %x_GLF_color, vec4<f32>(0.0f)
+        exit_if  # if_3
+      }
+    }
+    ret
+  }
+}
+%main = @fragment func():main_out {
+  $B11: {
+    %58:void = call %main_1
+    %59:vec4<f32> = load %x_GLF_color
+    %60:main_out = construct %59
+    ret %60
+  }
+}
+
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/cov-simplify-combine-compares-max-max-one/0-opt.spvasm.expected.ir.dxc.hlsl b/test/tint/vk-gl-cts/graphicsfuzz/cov-simplify-combine-compares-max-max-one/0-opt.spvasm.expected.ir.dxc.hlsl
deleted file mode 100644
index 3f437dc..0000000
--- a/test/tint/vk-gl-cts/graphicsfuzz/cov-simplify-combine-compares-max-max-one/0-opt.spvasm.expected.ir.dxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Access
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/cov-simplify-combine-compares-max-max-one/0-opt.spvasm.expected.ir.fxc.hlsl b/test/tint/vk-gl-cts/graphicsfuzz/cov-simplify-combine-compares-max-max-one/0-opt.spvasm.expected.ir.fxc.hlsl
deleted file mode 100644
index 3f437dc..0000000
--- a/test/tint/vk-gl-cts/graphicsfuzz/cov-simplify-combine-compares-max-max-one/0-opt.spvasm.expected.ir.fxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Access
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/cov-simplify-combine-compares-max-max-one/0-opt.wgsl.expected.ir.dxc.hlsl b/test/tint/vk-gl-cts/graphicsfuzz/cov-simplify-combine-compares-max-max-one/0-opt.wgsl.expected.ir.dxc.hlsl
deleted file mode 100644
index 3f437dc..0000000
--- a/test/tint/vk-gl-cts/graphicsfuzz/cov-simplify-combine-compares-max-max-one/0-opt.wgsl.expected.ir.dxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Access
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/cov-simplify-combine-compares-max-max-one/0-opt.wgsl.expected.ir.fxc.hlsl b/test/tint/vk-gl-cts/graphicsfuzz/cov-simplify-combine-compares-max-max-one/0-opt.wgsl.expected.ir.fxc.hlsl
deleted file mode 100644
index 3f437dc..0000000
--- a/test/tint/vk-gl-cts/graphicsfuzz/cov-simplify-combine-compares-max-max-one/0-opt.wgsl.expected.ir.fxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Access
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/cov-simplify-component-uniform-idx/0-opt.spvasm.expected.ir.dxc.hlsl b/test/tint/vk-gl-cts/graphicsfuzz/cov-simplify-component-uniform-idx/0-opt.spvasm.expected.ir.dxc.hlsl
deleted file mode 100644
index adbb0c1..0000000
--- a/test/tint/vk-gl-cts/graphicsfuzz/cov-simplify-component-uniform-idx/0-opt.spvasm.expected.ir.dxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:198 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Loop
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/cov-simplify-component-uniform-idx/0-opt.spvasm.expected.ir.fxc.hlsl b/test/tint/vk-gl-cts/graphicsfuzz/cov-simplify-component-uniform-idx/0-opt.spvasm.expected.ir.fxc.hlsl
deleted file mode 100644
index adbb0c1..0000000
--- a/test/tint/vk-gl-cts/graphicsfuzz/cov-simplify-component-uniform-idx/0-opt.spvasm.expected.ir.fxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:198 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Loop
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/cov-simplify-component-uniform-idx/0-opt.wgsl.expected.ir.dxc.hlsl b/test/tint/vk-gl-cts/graphicsfuzz/cov-simplify-component-uniform-idx/0-opt.wgsl.expected.ir.dxc.hlsl
deleted file mode 100644
index adbb0c1..0000000
--- a/test/tint/vk-gl-cts/graphicsfuzz/cov-simplify-component-uniform-idx/0-opt.wgsl.expected.ir.dxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:198 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Loop
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/cov-simplify-component-uniform-idx/0-opt.wgsl.expected.ir.fxc.hlsl b/test/tint/vk-gl-cts/graphicsfuzz/cov-simplify-component-uniform-idx/0-opt.wgsl.expected.ir.fxc.hlsl
deleted file mode 100644
index adbb0c1..0000000
--- a/test/tint/vk-gl-cts/graphicsfuzz/cov-simplify-component-uniform-idx/0-opt.wgsl.expected.ir.fxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:198 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Loop
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/cov-simplify-div-by-uint-one/0-opt.spvasm.expected.ir.dxc.hlsl b/test/tint/vk-gl-cts/graphicsfuzz/cov-simplify-div-by-uint-one/0-opt.spvasm.expected.ir.dxc.hlsl
deleted file mode 100644
index 3f437dc..0000000
--- a/test/tint/vk-gl-cts/graphicsfuzz/cov-simplify-div-by-uint-one/0-opt.spvasm.expected.ir.dxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Access
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/cov-simplify-div-by-uint-one/0-opt.spvasm.expected.ir.fxc.hlsl b/test/tint/vk-gl-cts/graphicsfuzz/cov-simplify-div-by-uint-one/0-opt.spvasm.expected.ir.fxc.hlsl
deleted file mode 100644
index 3f437dc..0000000
--- a/test/tint/vk-gl-cts/graphicsfuzz/cov-simplify-div-by-uint-one/0-opt.spvasm.expected.ir.fxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Access
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/cov-simplify-div-by-uint-one/0-opt.wgsl.expected.ir.dxc.hlsl b/test/tint/vk-gl-cts/graphicsfuzz/cov-simplify-div-by-uint-one/0-opt.wgsl.expected.ir.dxc.hlsl
deleted file mode 100644
index 3f437dc..0000000
--- a/test/tint/vk-gl-cts/graphicsfuzz/cov-simplify-div-by-uint-one/0-opt.wgsl.expected.ir.dxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Access
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/cov-simplify-div-by-uint-one/0-opt.wgsl.expected.ir.fxc.hlsl b/test/tint/vk-gl-cts/graphicsfuzz/cov-simplify-div-by-uint-one/0-opt.wgsl.expected.ir.fxc.hlsl
deleted file mode 100644
index 3f437dc..0000000
--- a/test/tint/vk-gl-cts/graphicsfuzz/cov-simplify-div-by-uint-one/0-opt.wgsl.expected.ir.fxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Access
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/cov-simplify-for-bitwise-condition/0-opt.spvasm.expected.ir.dxc.hlsl b/test/tint/vk-gl-cts/graphicsfuzz/cov-simplify-for-bitwise-condition/0-opt.spvasm.expected.ir.dxc.hlsl
deleted file mode 100644
index 3f437dc..0000000
--- a/test/tint/vk-gl-cts/graphicsfuzz/cov-simplify-for-bitwise-condition/0-opt.spvasm.expected.ir.dxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Access
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/cov-simplify-for-bitwise-condition/0-opt.spvasm.expected.ir.fxc.hlsl b/test/tint/vk-gl-cts/graphicsfuzz/cov-simplify-for-bitwise-condition/0-opt.spvasm.expected.ir.fxc.hlsl
deleted file mode 100644
index 3f437dc..0000000
--- a/test/tint/vk-gl-cts/graphicsfuzz/cov-simplify-for-bitwise-condition/0-opt.spvasm.expected.ir.fxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Access
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/cov-simplify-for-bitwise-condition/0-opt.wgsl.expected.ir.dxc.hlsl b/test/tint/vk-gl-cts/graphicsfuzz/cov-simplify-for-bitwise-condition/0-opt.wgsl.expected.ir.dxc.hlsl
deleted file mode 100644
index 3f437dc..0000000
--- a/test/tint/vk-gl-cts/graphicsfuzz/cov-simplify-for-bitwise-condition/0-opt.wgsl.expected.ir.dxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Access
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/cov-simplify-for-bitwise-condition/0-opt.wgsl.expected.ir.fxc.hlsl b/test/tint/vk-gl-cts/graphicsfuzz/cov-simplify-for-bitwise-condition/0-opt.wgsl.expected.ir.fxc.hlsl
deleted file mode 100644
index 3f437dc..0000000
--- a/test/tint/vk-gl-cts/graphicsfuzz/cov-simplify-for-bitwise-condition/0-opt.wgsl.expected.ir.fxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Access
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/cov-simplify-ldexp-exponent-zero/0-opt.spvasm.expected.ir.dxc.hlsl b/test/tint/vk-gl-cts/graphicsfuzz/cov-simplify-ldexp-exponent-zero/0-opt.spvasm.expected.ir.dxc.hlsl
deleted file mode 100644
index 3f437dc..0000000
--- a/test/tint/vk-gl-cts/graphicsfuzz/cov-simplify-ldexp-exponent-zero/0-opt.spvasm.expected.ir.dxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Access
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/cov-simplify-ldexp-exponent-zero/0-opt.spvasm.expected.ir.fxc.hlsl b/test/tint/vk-gl-cts/graphicsfuzz/cov-simplify-ldexp-exponent-zero/0-opt.spvasm.expected.ir.fxc.hlsl
deleted file mode 100644
index 3f437dc..0000000
--- a/test/tint/vk-gl-cts/graphicsfuzz/cov-simplify-ldexp-exponent-zero/0-opt.spvasm.expected.ir.fxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Access
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/cov-simplify-ldexp-exponent-zero/0-opt.wgsl.expected.ir.dxc.hlsl b/test/tint/vk-gl-cts/graphicsfuzz/cov-simplify-ldexp-exponent-zero/0-opt.wgsl.expected.ir.dxc.hlsl
deleted file mode 100644
index 3f437dc..0000000
--- a/test/tint/vk-gl-cts/graphicsfuzz/cov-simplify-ldexp-exponent-zero/0-opt.wgsl.expected.ir.dxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Access
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/cov-simplify-ldexp-exponent-zero/0-opt.wgsl.expected.ir.fxc.hlsl b/test/tint/vk-gl-cts/graphicsfuzz/cov-simplify-ldexp-exponent-zero/0-opt.wgsl.expected.ir.fxc.hlsl
deleted file mode 100644
index 3f437dc..0000000
--- a/test/tint/vk-gl-cts/graphicsfuzz/cov-simplify-ldexp-exponent-zero/0-opt.wgsl.expected.ir.fxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Access
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/cov-simplify-max-multiplied-values/0-opt.spvasm.expected.ir.dxc.hlsl b/test/tint/vk-gl-cts/graphicsfuzz/cov-simplify-max-multiplied-values/0-opt.spvasm.expected.ir.dxc.hlsl
deleted file mode 100644
index 3f437dc..0000000
--- a/test/tint/vk-gl-cts/graphicsfuzz/cov-simplify-max-multiplied-values/0-opt.spvasm.expected.ir.dxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Access
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/cov-simplify-max-multiplied-values/0-opt.spvasm.expected.ir.fxc.hlsl b/test/tint/vk-gl-cts/graphicsfuzz/cov-simplify-max-multiplied-values/0-opt.spvasm.expected.ir.fxc.hlsl
deleted file mode 100644
index 3f437dc..0000000
--- a/test/tint/vk-gl-cts/graphicsfuzz/cov-simplify-max-multiplied-values/0-opt.spvasm.expected.ir.fxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Access
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/cov-simplify-max-multiplied-values/0-opt.wgsl.expected.ir.dxc.hlsl b/test/tint/vk-gl-cts/graphicsfuzz/cov-simplify-max-multiplied-values/0-opt.wgsl.expected.ir.dxc.hlsl
deleted file mode 100644
index 3f437dc..0000000
--- a/test/tint/vk-gl-cts/graphicsfuzz/cov-simplify-max-multiplied-values/0-opt.wgsl.expected.ir.dxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Access
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/cov-simplify-max-multiplied-values/0-opt.wgsl.expected.ir.fxc.hlsl b/test/tint/vk-gl-cts/graphicsfuzz/cov-simplify-max-multiplied-values/0-opt.wgsl.expected.ir.fxc.hlsl
deleted file mode 100644
index 3f437dc..0000000
--- a/test/tint/vk-gl-cts/graphicsfuzz/cov-simplify-max-multiplied-values/0-opt.wgsl.expected.ir.fxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Access
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/cov-simplify-modulo-1/0-opt.spvasm.expected.ir.dxc.hlsl b/test/tint/vk-gl-cts/graphicsfuzz/cov-simplify-modulo-1/0-opt.spvasm.expected.ir.dxc.hlsl
deleted file mode 100644
index 3f437dc..0000000
--- a/test/tint/vk-gl-cts/graphicsfuzz/cov-simplify-modulo-1/0-opt.spvasm.expected.ir.dxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Access
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/cov-simplify-modulo-1/0-opt.spvasm.expected.ir.fxc.hlsl b/test/tint/vk-gl-cts/graphicsfuzz/cov-simplify-modulo-1/0-opt.spvasm.expected.ir.fxc.hlsl
deleted file mode 100644
index 3f437dc..0000000
--- a/test/tint/vk-gl-cts/graphicsfuzz/cov-simplify-modulo-1/0-opt.spvasm.expected.ir.fxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Access
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/cov-simplify-modulo-1/0-opt.wgsl.expected.ir.dxc.hlsl b/test/tint/vk-gl-cts/graphicsfuzz/cov-simplify-modulo-1/0-opt.wgsl.expected.ir.dxc.hlsl
deleted file mode 100644
index 3f437dc..0000000
--- a/test/tint/vk-gl-cts/graphicsfuzz/cov-simplify-modulo-1/0-opt.wgsl.expected.ir.dxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Access
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/cov-simplify-modulo-1/0-opt.wgsl.expected.ir.fxc.hlsl b/test/tint/vk-gl-cts/graphicsfuzz/cov-simplify-modulo-1/0-opt.wgsl.expected.ir.fxc.hlsl
deleted file mode 100644
index 3f437dc..0000000
--- a/test/tint/vk-gl-cts/graphicsfuzz/cov-simplify-modulo-1/0-opt.wgsl.expected.ir.fxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Access
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/cov-simplify-mul-identity/0-opt.spvasm.expected.ir.dxc.hlsl b/test/tint/vk-gl-cts/graphicsfuzz/cov-simplify-mul-identity/0-opt.spvasm.expected.ir.dxc.hlsl
deleted file mode 100644
index 3f437dc..0000000
--- a/test/tint/vk-gl-cts/graphicsfuzz/cov-simplify-mul-identity/0-opt.spvasm.expected.ir.dxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Access
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/cov-simplify-mul-identity/0-opt.spvasm.expected.ir.fxc.hlsl b/test/tint/vk-gl-cts/graphicsfuzz/cov-simplify-mul-identity/0-opt.spvasm.expected.ir.fxc.hlsl
deleted file mode 100644
index 3f437dc..0000000
--- a/test/tint/vk-gl-cts/graphicsfuzz/cov-simplify-mul-identity/0-opt.spvasm.expected.ir.fxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Access
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/cov-simplify-mul-identity/0-opt.wgsl.expected.ir.dxc.hlsl b/test/tint/vk-gl-cts/graphicsfuzz/cov-simplify-mul-identity/0-opt.wgsl.expected.ir.dxc.hlsl
deleted file mode 100644
index 3f437dc..0000000
--- a/test/tint/vk-gl-cts/graphicsfuzz/cov-simplify-mul-identity/0-opt.wgsl.expected.ir.dxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Access
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/cov-simplify-mul-identity/0-opt.wgsl.expected.ir.fxc.hlsl b/test/tint/vk-gl-cts/graphicsfuzz/cov-simplify-mul-identity/0-opt.wgsl.expected.ir.fxc.hlsl
deleted file mode 100644
index 3f437dc..0000000
--- a/test/tint/vk-gl-cts/graphicsfuzz/cov-simplify-mul-identity/0-opt.wgsl.expected.ir.fxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Access
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/cov-simplify-not-less-than-neg/0.spvasm.expected.ir.dxc.hlsl b/test/tint/vk-gl-cts/graphicsfuzz/cov-simplify-not-less-than-neg/0.spvasm.expected.ir.dxc.hlsl
deleted file mode 100644
index 3f437dc..0000000
--- a/test/tint/vk-gl-cts/graphicsfuzz/cov-simplify-not-less-than-neg/0.spvasm.expected.ir.dxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Access
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/cov-simplify-not-less-than-neg/0.spvasm.expected.ir.fxc.hlsl b/test/tint/vk-gl-cts/graphicsfuzz/cov-simplify-not-less-than-neg/0.spvasm.expected.ir.fxc.hlsl
deleted file mode 100644
index 3f437dc..0000000
--- a/test/tint/vk-gl-cts/graphicsfuzz/cov-simplify-not-less-than-neg/0.spvasm.expected.ir.fxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Access
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/cov-simplify-not-less-than-neg/0.wgsl.expected.ir.dxc.hlsl b/test/tint/vk-gl-cts/graphicsfuzz/cov-simplify-not-less-than-neg/0.wgsl.expected.ir.dxc.hlsl
deleted file mode 100644
index 3f437dc..0000000
--- a/test/tint/vk-gl-cts/graphicsfuzz/cov-simplify-not-less-than-neg/0.wgsl.expected.ir.dxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Access
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/cov-simplify-not-less-than-neg/0.wgsl.expected.ir.fxc.hlsl b/test/tint/vk-gl-cts/graphicsfuzz/cov-simplify-not-less-than-neg/0.wgsl.expected.ir.fxc.hlsl
deleted file mode 100644
index 3f437dc..0000000
--- a/test/tint/vk-gl-cts/graphicsfuzz/cov-simplify-not-less-than-neg/0.wgsl.expected.ir.fxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Access
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/cov-simplify-right-shift-greater-than-zero/0-opt.spvasm.expected.ir.dxc.hlsl b/test/tint/vk-gl-cts/graphicsfuzz/cov-simplify-right-shift-greater-than-zero/0-opt.spvasm.expected.ir.dxc.hlsl
deleted file mode 100644
index bdeab23..0000000
--- a/test/tint/vk-gl-cts/graphicsfuzz/cov-simplify-right-shift-greater-than-zero/0-opt.spvasm.expected.ir.dxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:198 internal compiler error: Switch() matched no cases. Type: tint::core::ir::If
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/cov-simplify-right-shift-greater-than-zero/0-opt.spvasm.expected.ir.fxc.hlsl b/test/tint/vk-gl-cts/graphicsfuzz/cov-simplify-right-shift-greater-than-zero/0-opt.spvasm.expected.ir.fxc.hlsl
deleted file mode 100644
index bdeab23..0000000
--- a/test/tint/vk-gl-cts/graphicsfuzz/cov-simplify-right-shift-greater-than-zero/0-opt.spvasm.expected.ir.fxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:198 internal compiler error: Switch() matched no cases. Type: tint::core::ir::If
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/cov-simplify-right-shift-greater-than-zero/0-opt.wgsl.expected.ir.dxc.hlsl b/test/tint/vk-gl-cts/graphicsfuzz/cov-simplify-right-shift-greater-than-zero/0-opt.wgsl.expected.ir.dxc.hlsl
deleted file mode 100644
index 3f437dc..0000000
--- a/test/tint/vk-gl-cts/graphicsfuzz/cov-simplify-right-shift-greater-than-zero/0-opt.wgsl.expected.ir.dxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Access
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/cov-simplify-right-shift-greater-than-zero/0-opt.wgsl.expected.ir.fxc.hlsl b/test/tint/vk-gl-cts/graphicsfuzz/cov-simplify-right-shift-greater-than-zero/0-opt.wgsl.expected.ir.fxc.hlsl
deleted file mode 100644
index 3f437dc..0000000
--- a/test/tint/vk-gl-cts/graphicsfuzz/cov-simplify-right-shift-greater-than-zero/0-opt.wgsl.expected.ir.fxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Access
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/cov-simplify-sign-cosh/0.spvasm.expected.ir.dxc.hlsl b/test/tint/vk-gl-cts/graphicsfuzz/cov-simplify-sign-cosh/0.spvasm.expected.ir.dxc.hlsl
deleted file mode 100644
index bdeab23..0000000
--- a/test/tint/vk-gl-cts/graphicsfuzz/cov-simplify-sign-cosh/0.spvasm.expected.ir.dxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:198 internal compiler error: Switch() matched no cases. Type: tint::core::ir::If
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/cov-simplify-sign-cosh/0.spvasm.expected.ir.fxc.hlsl b/test/tint/vk-gl-cts/graphicsfuzz/cov-simplify-sign-cosh/0.spvasm.expected.ir.fxc.hlsl
deleted file mode 100644
index bdeab23..0000000
--- a/test/tint/vk-gl-cts/graphicsfuzz/cov-simplify-sign-cosh/0.spvasm.expected.ir.fxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:198 internal compiler error: Switch() matched no cases. Type: tint::core::ir::If
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/cov-simplify-sign-cosh/0.wgsl.expected.ir.dxc.hlsl b/test/tint/vk-gl-cts/graphicsfuzz/cov-simplify-sign-cosh/0.wgsl.expected.ir.dxc.hlsl
deleted file mode 100644
index bdeab23..0000000
--- a/test/tint/vk-gl-cts/graphicsfuzz/cov-simplify-sign-cosh/0.wgsl.expected.ir.dxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:198 internal compiler error: Switch() matched no cases. Type: tint::core::ir::If
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/cov-simplify-sign-cosh/0.wgsl.expected.ir.fxc.hlsl b/test/tint/vk-gl-cts/graphicsfuzz/cov-simplify-sign-cosh/0.wgsl.expected.ir.fxc.hlsl
deleted file mode 100644
index bdeab23..0000000
--- a/test/tint/vk-gl-cts/graphicsfuzz/cov-simplify-sign-cosh/0.wgsl.expected.ir.fxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:198 internal compiler error: Switch() matched no cases. Type: tint::core::ir::If
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/cov-sin-mul-mat-mat-mul-vec-mat/0-opt.spvasm.expected.ir.dxc.hlsl b/test/tint/vk-gl-cts/graphicsfuzz/cov-sin-mul-mat-mat-mul-vec-mat/0-opt.spvasm.expected.ir.dxc.hlsl
deleted file mode 100644
index 4a2c666..0000000
--- a/test/tint/vk-gl-cts/graphicsfuzz/cov-sin-mul-mat-mat-mul-vec-mat/0-opt.spvasm.expected.ir.dxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::LoadVectorElement
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/cov-sin-mul-mat-mat-mul-vec-mat/0-opt.spvasm.expected.ir.fxc.hlsl b/test/tint/vk-gl-cts/graphicsfuzz/cov-sin-mul-mat-mat-mul-vec-mat/0-opt.spvasm.expected.ir.fxc.hlsl
deleted file mode 100644
index 4a2c666..0000000
--- a/test/tint/vk-gl-cts/graphicsfuzz/cov-sin-mul-mat-mat-mul-vec-mat/0-opt.spvasm.expected.ir.fxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::LoadVectorElement
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/cov-sin-mul-mat-mat-mul-vec-mat/0-opt.wgsl.expected.ir.dxc.hlsl b/test/tint/vk-gl-cts/graphicsfuzz/cov-sin-mul-mat-mat-mul-vec-mat/0-opt.wgsl.expected.ir.dxc.hlsl
deleted file mode 100644
index 4a2c666..0000000
--- a/test/tint/vk-gl-cts/graphicsfuzz/cov-sin-mul-mat-mat-mul-vec-mat/0-opt.wgsl.expected.ir.dxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::LoadVectorElement
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/cov-sin-mul-mat-mat-mul-vec-mat/0-opt.wgsl.expected.ir.fxc.hlsl b/test/tint/vk-gl-cts/graphicsfuzz/cov-sin-mul-mat-mat-mul-vec-mat/0-opt.wgsl.expected.ir.fxc.hlsl
deleted file mode 100644
index 4a2c666..0000000
--- a/test/tint/vk-gl-cts/graphicsfuzz/cov-sin-mul-mat-mat-mul-vec-mat/0-opt.wgsl.expected.ir.fxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::LoadVectorElement
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/cov-single-block-elim-self-assign/0-opt.spvasm.expected.ir.dxc.hlsl b/test/tint/vk-gl-cts/graphicsfuzz/cov-single-block-elim-self-assign/0-opt.spvasm.expected.ir.dxc.hlsl
deleted file mode 100644
index adbb0c1..0000000
--- a/test/tint/vk-gl-cts/graphicsfuzz/cov-single-block-elim-self-assign/0-opt.spvasm.expected.ir.dxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:198 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Loop
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/cov-single-block-elim-self-assign/0-opt.spvasm.expected.ir.fxc.hlsl b/test/tint/vk-gl-cts/graphicsfuzz/cov-single-block-elim-self-assign/0-opt.spvasm.expected.ir.fxc.hlsl
deleted file mode 100644
index adbb0c1..0000000
--- a/test/tint/vk-gl-cts/graphicsfuzz/cov-single-block-elim-self-assign/0-opt.spvasm.expected.ir.fxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:198 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Loop
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/cov-single-block-elim-self-assign/0-opt.wgsl.expected.ir.dxc.hlsl b/test/tint/vk-gl-cts/graphicsfuzz/cov-single-block-elim-self-assign/0-opt.wgsl.expected.ir.dxc.hlsl
deleted file mode 100644
index adbb0c1..0000000
--- a/test/tint/vk-gl-cts/graphicsfuzz/cov-single-block-elim-self-assign/0-opt.wgsl.expected.ir.dxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:198 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Loop
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/cov-single-block-elim-self-assign/0-opt.wgsl.expected.ir.fxc.hlsl b/test/tint/vk-gl-cts/graphicsfuzz/cov-single-block-elim-self-assign/0-opt.wgsl.expected.ir.fxc.hlsl
deleted file mode 100644
index adbb0c1..0000000
--- a/test/tint/vk-gl-cts/graphicsfuzz/cov-single-block-elim-self-assign/0-opt.wgsl.expected.ir.fxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:198 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Loop
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/cov-sinh-ldexp/0-opt.spvasm.expected.ir.dxc.hlsl b/test/tint/vk-gl-cts/graphicsfuzz/cov-sinh-ldexp/0-opt.spvasm.expected.ir.dxc.hlsl
deleted file mode 100644
index c6e1d96..0000000
--- a/test/tint/vk-gl-cts/graphicsfuzz/cov-sinh-ldexp/0-opt.spvasm.expected.ir.dxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Construct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/cov-sinh-ldexp/0-opt.spvasm.expected.ir.fxc.hlsl b/test/tint/vk-gl-cts/graphicsfuzz/cov-sinh-ldexp/0-opt.spvasm.expected.ir.fxc.hlsl
deleted file mode 100644
index c6e1d96..0000000
--- a/test/tint/vk-gl-cts/graphicsfuzz/cov-sinh-ldexp/0-opt.spvasm.expected.ir.fxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Construct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/cov-sinh-ldexp/0-opt.wgsl.expected.ir.dxc.hlsl b/test/tint/vk-gl-cts/graphicsfuzz/cov-sinh-ldexp/0-opt.wgsl.expected.ir.dxc.hlsl
deleted file mode 100644
index 3f437dc..0000000
--- a/test/tint/vk-gl-cts/graphicsfuzz/cov-sinh-ldexp/0-opt.wgsl.expected.ir.dxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Access
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/cov-sinh-ldexp/0-opt.wgsl.expected.ir.fxc.hlsl b/test/tint/vk-gl-cts/graphicsfuzz/cov-sinh-ldexp/0-opt.wgsl.expected.ir.fxc.hlsl
deleted file mode 100644
index 3f437dc..0000000
--- a/test/tint/vk-gl-cts/graphicsfuzz/cov-sinh-ldexp/0-opt.wgsl.expected.ir.fxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Access
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/cov-step-sinh/0-opt.spvasm.expected.ir.dxc.hlsl b/test/tint/vk-gl-cts/graphicsfuzz/cov-step-sinh/0-opt.spvasm.expected.ir.dxc.hlsl
deleted file mode 100644
index c6e1d96..0000000
--- a/test/tint/vk-gl-cts/graphicsfuzz/cov-step-sinh/0-opt.spvasm.expected.ir.dxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Construct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/cov-step-sinh/0-opt.spvasm.expected.ir.fxc.hlsl b/test/tint/vk-gl-cts/graphicsfuzz/cov-step-sinh/0-opt.spvasm.expected.ir.fxc.hlsl
deleted file mode 100644
index c6e1d96..0000000
--- a/test/tint/vk-gl-cts/graphicsfuzz/cov-step-sinh/0-opt.spvasm.expected.ir.fxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Construct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/cov-step-sinh/0-opt.wgsl.expected.ir.dxc.hlsl b/test/tint/vk-gl-cts/graphicsfuzz/cov-step-sinh/0-opt.wgsl.expected.ir.dxc.hlsl
deleted file mode 100644
index 4a2c666..0000000
--- a/test/tint/vk-gl-cts/graphicsfuzz/cov-step-sinh/0-opt.wgsl.expected.ir.dxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::LoadVectorElement
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/cov-step-sinh/0-opt.wgsl.expected.ir.fxc.hlsl b/test/tint/vk-gl-cts/graphicsfuzz/cov-step-sinh/0-opt.wgsl.expected.ir.fxc.hlsl
deleted file mode 100644
index 4a2c666..0000000
--- a/test/tint/vk-gl-cts/graphicsfuzz/cov-step-sinh/0-opt.wgsl.expected.ir.fxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::LoadVectorElement
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/cov-struct-float-array-mix-uniform-vectors/0-opt.spvasm.expected.ir.dxc.hlsl b/test/tint/vk-gl-cts/graphicsfuzz/cov-struct-float-array-mix-uniform-vectors/0-opt.spvasm.expected.ir.dxc.hlsl
deleted file mode 100644
index 0ba40c6..0000000
--- a/test/tint/vk-gl-cts/graphicsfuzz/cov-struct-float-array-mix-uniform-vectors/0-opt.spvasm.expected.ir.dxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/cov-struct-float-array-mix-uniform-vectors/0-opt.spvasm.expected.ir.fxc.hlsl b/test/tint/vk-gl-cts/graphicsfuzz/cov-struct-float-array-mix-uniform-vectors/0-opt.spvasm.expected.ir.fxc.hlsl
deleted file mode 100644
index 0ba40c6..0000000
--- a/test/tint/vk-gl-cts/graphicsfuzz/cov-struct-float-array-mix-uniform-vectors/0-opt.spvasm.expected.ir.fxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/cov-struct-float-array-mix-uniform-vectors/0-opt.wgsl.expected.ir.dxc.hlsl b/test/tint/vk-gl-cts/graphicsfuzz/cov-struct-float-array-mix-uniform-vectors/0-opt.wgsl.expected.ir.dxc.hlsl
deleted file mode 100644
index 0ba40c6..0000000
--- a/test/tint/vk-gl-cts/graphicsfuzz/cov-struct-float-array-mix-uniform-vectors/0-opt.wgsl.expected.ir.dxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/cov-struct-float-array-mix-uniform-vectors/0-opt.wgsl.expected.ir.fxc.hlsl b/test/tint/vk-gl-cts/graphicsfuzz/cov-struct-float-array-mix-uniform-vectors/0-opt.wgsl.expected.ir.fxc.hlsl
index 0ba40c6..b29279f 100644
--- a/test/tint/vk-gl-cts/graphicsfuzz/cov-struct-float-array-mix-uniform-vectors/0-opt.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/vk-gl-cts/graphicsfuzz/cov-struct-float-array-mix-uniform-vectors/0-opt.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,96 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct S {
+  float numbers[3];
+};
+
+struct main_out {
+  float4 x_GLF_color_1;
+};
+
+struct main_outputs {
+  float4 main_out_x_GLF_color_1 : SV_Target0;
+};
+
+
+cbuffer cbuffer_x_7 : register(b1) {
+  uint4 x_7[5];
+};
+cbuffer cbuffer_x_9 : register(b2) {
+  uint4 x_9[1];
+};
+cbuffer cbuffer_x_12 : register(b3) {
+  uint4 x_12[1];
+};
+cbuffer cbuffer_x_15 : register(b0) {
+  uint4 x_15[2];
+};
+static float4 x_GLF_color = (0.0f).xxxx;
+int tint_f32_to_i32(float value) {
+  return (((value <= 2147483520.0f)) ? ((((value >= -2147483648.0f)) ? (int(value)) : (-2147483648))) : (2147483647));
+}
+
+void main_1() {
+  S obj = (S)0;
+  float a = 0.0f;
+  float2 x_49 = (0.0f).xx;
+  float b = 0.0f;
+  float x_51 = asfloat(x_7[3u].x);
+  float x_53 = asfloat(x_7[2u].x);
+  float x_55 = asfloat(x_7[4u].x);
+  float v[3] = {x_51, x_53, x_55};
+  S v_1 = {v};
+  obj = v_1;
+  float x_59 = asfloat(x_9[0u].x);
+  float x_62 = asfloat(x_7[0u].x);
+  obj.numbers[tint_f32_to_i32(x_59)] = x_62;
+  float x_65 = asfloat(x_9[0u].x);
+  float x_67 = asfloat(x_7[0u].x);
+  if ((x_65 > x_67)) {
+    float2 x_73 = asfloat(x_9[0u].xy);
+    x_49 = x_73;
+  } else {
+    float2 x_75 = asfloat(x_12[0u].xy);
+    x_49 = x_75;
+  }
+  float x_77 = x_49.y;
+  a = x_77;
+  float x_79 = asfloat(x_7[0u].x);
+  float x_80 = a;
+  int x_82 = asint(x_15[0u].x);
+  float x_84 = obj.numbers[x_82];
+  b = lerp(x_79, x_80, x_84);
+  float x_86 = b;
+  float x_88 = asfloat(x_7[2u].x);
+  float x_91 = asfloat(x_7[1u].x);
+  if ((distance(x_86, x_88) < x_91)) {
+    int x_97 = asint(x_15[0u].x);
+    int x_100 = asint(x_15[1u].x);
+    int x_103 = asint(x_15[1u].x);
+    int x_106 = asint(x_15[0u].x);
+    float v_2 = float(x_97);
+    float v_3 = float(x_100);
+    float v_4 = float(x_103);
+    x_GLF_color = float4(v_2, v_3, v_4, float(x_106));
+  } else {
+    int x_110 = asint(x_15[1u].x);
+    float x_111 = float(x_110);
+    x_GLF_color = float4(x_111, x_111, x_111, x_111);
+  }
+}
+
+main_out main_inner() {
+  main_1();
+  main_out v_5 = {x_GLF_color};
+  return v_5;
+}
+
+main_outputs main() {
+  main_out v_6 = main_inner();
+  main_outputs v_7 = {v_6.x_GLF_color_1};
+  return v_7;
+}
+
+FXC validation failure:
+c:\src\dawn\Shader@0x0000024F9CBE3E00(44,3-36): error X3500: array reference cannot be used as an l-value; not natively addressable
+
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/cov-sum-uniform-vector-components-round/0-opt.spvasm.expected.ir.dxc.hlsl b/test/tint/vk-gl-cts/graphicsfuzz/cov-sum-uniform-vector-components-round/0-opt.spvasm.expected.ir.dxc.hlsl
deleted file mode 100644
index 3f437dc..0000000
--- a/test/tint/vk-gl-cts/graphicsfuzz/cov-sum-uniform-vector-components-round/0-opt.spvasm.expected.ir.dxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Access
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/cov-sum-uniform-vector-components-round/0-opt.spvasm.expected.ir.fxc.hlsl b/test/tint/vk-gl-cts/graphicsfuzz/cov-sum-uniform-vector-components-round/0-opt.spvasm.expected.ir.fxc.hlsl
deleted file mode 100644
index 3f437dc..0000000
--- a/test/tint/vk-gl-cts/graphicsfuzz/cov-sum-uniform-vector-components-round/0-opt.spvasm.expected.ir.fxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Access
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/cov-sum-uniform-vector-components-round/0-opt.wgsl.expected.ir.dxc.hlsl b/test/tint/vk-gl-cts/graphicsfuzz/cov-sum-uniform-vector-components-round/0-opt.wgsl.expected.ir.dxc.hlsl
deleted file mode 100644
index 3f437dc..0000000
--- a/test/tint/vk-gl-cts/graphicsfuzz/cov-sum-uniform-vector-components-round/0-opt.wgsl.expected.ir.dxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Access
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/cov-sum-uniform-vector-components-round/0-opt.wgsl.expected.ir.fxc.hlsl b/test/tint/vk-gl-cts/graphicsfuzz/cov-sum-uniform-vector-components-round/0-opt.wgsl.expected.ir.fxc.hlsl
deleted file mode 100644
index 3f437dc..0000000
--- a/test/tint/vk-gl-cts/graphicsfuzz/cov-sum-uniform-vector-components-round/0-opt.wgsl.expected.ir.fxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Access
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/cov-tail-duplicator-for-for-for/0-opt.spvasm.expected.ir.dxc.hlsl b/test/tint/vk-gl-cts/graphicsfuzz/cov-tail-duplicator-for-for-for/0-opt.spvasm.expected.ir.dxc.hlsl
deleted file mode 100644
index 3f437dc..0000000
--- a/test/tint/vk-gl-cts/graphicsfuzz/cov-tail-duplicator-for-for-for/0-opt.spvasm.expected.ir.dxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Access
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/cov-tail-duplicator-for-for-for/0-opt.spvasm.expected.ir.fxc.hlsl b/test/tint/vk-gl-cts/graphicsfuzz/cov-tail-duplicator-for-for-for/0-opt.spvasm.expected.ir.fxc.hlsl
index 3f437dc..043ca49 100644
--- a/test/tint/vk-gl-cts/graphicsfuzz/cov-tail-duplicator-for-for-for/0-opt.spvasm.expected.ir.fxc.hlsl
+++ b/test/tint/vk-gl-cts/graphicsfuzz/cov-tail-duplicator-for-for-for/0-opt.spvasm.expected.ir.fxc.hlsl
@@ -1,9 +1,103 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Access
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct main_out {
+  float4 x_GLF_color_1;
+};
+
+struct main_outputs {
+  float4 main_out_x_GLF_color_1 : SV_Target0;
+};
+
+
+cbuffer cbuffer_x_7 : register(b0) {
+  uint4 x_7[2];
+};
+cbuffer cbuffer_x_11 : register(b1) {
+  uint4 x_11[1];
+};
+static float4 x_GLF_color = (0.0f).xxxx;
+void main_1() {
+  float4 color = (0.0f).xxxx;
+  int i = 0;
+  int j = 0;
+  int k = 0;
+  color = (1.0f).xxxx;
+  i = asint(x_7[0u].x);
+  {
+    while(true) {
+      int v = i;
+      if ((v < asint(x_7[1u].x))) {
+      } else {
+        break;
+      }
+      int x_47 = i;
+      switch(x_47) {
+        case 2:
+        {
+          int x_83 = i;
+          color[x_83] = asfloat(x_11[0u].x);
+          break;
+        }
+        case 1:
+        {
+          j = asint(x_7[0u].x);
+          {
+            while(true) {
+              if ((i > i)) {
+              } else {
+                break;
+              }
+              k = asint(x_7[0u].x);
+              {
+                while(true) {
+                  if ((k < i)) {
+                  } else {
+                    break;
+                  }
+                  int x_71 = k;
+                  color[x_71] = asfloat(x_11[0u].x);
+                  {
+                    k = (k + 1);
+                  }
+                  continue;
+                }
+              }
+              {
+                j = (j + 1);
+              }
+              continue;
+            }
+          }
+          int x_79 = i;
+          color[x_79] = asfloat(x_11[0u].x);
+          break;
+        }
+        default:
+        {
+          break;
+        }
+      }
+      {
+        i = (i + 1);
+      }
+      continue;
+    }
+  }
+  x_GLF_color = color;
+}
+
+main_out main_inner() {
+  main_1();
+  main_out v_1 = {x_GLF_color};
+  return v_1;
+}
+
+main_outputs main() {
+  main_out v_2 = main_inner();
+  main_outputs v_3 = {v_2.x_GLF_color_1};
+  return v_3;
+}
+
+FXC validation failure:
+c:\src\dawn\Shader@0x00000251E58E5C40(25,5-15): error X3511: forced to unroll loop, but unrolling failed.
+
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/cov-tail-duplicator-for-for-for/0-opt.wgsl.expected.ir.dxc.hlsl b/test/tint/vk-gl-cts/graphicsfuzz/cov-tail-duplicator-for-for-for/0-opt.wgsl.expected.ir.dxc.hlsl
deleted file mode 100644
index 3f437dc..0000000
--- a/test/tint/vk-gl-cts/graphicsfuzz/cov-tail-duplicator-for-for-for/0-opt.wgsl.expected.ir.dxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Access
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/cov-tail-duplicator-for-for-for/0-opt.wgsl.expected.ir.fxc.hlsl b/test/tint/vk-gl-cts/graphicsfuzz/cov-tail-duplicator-for-for-for/0-opt.wgsl.expected.ir.fxc.hlsl
index 3f437dc..b7bd9b8 100644
--- a/test/tint/vk-gl-cts/graphicsfuzz/cov-tail-duplicator-for-for-for/0-opt.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/vk-gl-cts/graphicsfuzz/cov-tail-duplicator-for-for-for/0-opt.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,118 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Access
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct main_out {
+  float4 x_GLF_color_1;
+};
+
+struct main_outputs {
+  float4 main_out_x_GLF_color_1 : SV_Target0;
+};
+
+
+cbuffer cbuffer_x_7 : register(b0) {
+  uint4 x_7[2];
+};
+cbuffer cbuffer_x_11 : register(b1) {
+  uint4 x_11[1];
+};
+static float4 x_GLF_color = (0.0f).xxxx;
+void main_1() {
+  float4 color = (0.0f).xxxx;
+  int i = 0;
+  int j = 0;
+  int k = 0;
+  color = (1.0f).xxxx;
+  int x_37 = asint(x_7[0u].x);
+  i = x_37;
+  {
+    while(true) {
+      int x_42 = i;
+      int x_44 = asint(x_7[1u].x);
+      if ((x_42 < x_44)) {
+      } else {
+        break;
+      }
+      int x_47 = i;
+      switch(x_47) {
+        case 2:
+        {
+          int x_83 = i;
+          float x_85 = asfloat(x_11[0u].x);
+          color[x_83] = x_85;
+          break;
+        }
+        case 1:
+        {
+          int x_52 = asint(x_7[0u].x);
+          j = x_52;
+          {
+            while(true) {
+              int x_57 = i;
+              int x_58 = i;
+              if ((x_57 > x_58)) {
+              } else {
+                break;
+              }
+              int x_62 = asint(x_7[0u].x);
+              k = x_62;
+              {
+                while(true) {
+                  int x_67 = k;
+                  int x_68 = i;
+                  if ((x_67 < x_68)) {
+                  } else {
+                    break;
+                  }
+                  int x_71 = k;
+                  float x_73 = asfloat(x_11[0u].x);
+                  color[x_71] = x_73;
+                  {
+                    int x_75 = k;
+                    k = (x_75 + 1);
+                  }
+                  continue;
+                }
+              }
+              {
+                int x_77 = j;
+                j = (x_77 + 1);
+              }
+              continue;
+            }
+          }
+          int x_79 = i;
+          float x_81 = asfloat(x_11[0u].x);
+          color[x_79] = x_81;
+          break;
+        }
+        default:
+        {
+          break;
+        }
+      }
+      {
+        int x_87 = i;
+        i = (x_87 + 1);
+      }
+      continue;
+    }
+  }
+  float4 x_89 = color;
+  x_GLF_color = x_89;
+}
+
+main_out main_inner() {
+  main_1();
+  main_out v = {x_GLF_color};
+  return v;
+}
+
+main_outputs main() {
+  main_out v_1 = main_inner();
+  main_outputs v_2 = {v_1.x_GLF_color_1};
+  return v_2;
+}
+
+FXC validation failure:
+c:\src\dawn\Shader@0x0000020EDEAA0230(26,5-15): error X3511: forced to unroll loop, but unrolling failed.
+
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/cov-tail-duplicator-infinite-loops/0-opt.spvasm.expected.ir.dxc.hlsl b/test/tint/vk-gl-cts/graphicsfuzz/cov-tail-duplicator-infinite-loops/0-opt.spvasm.expected.ir.dxc.hlsl
index c6e1d96..58fbfc0 100644
--- a/test/tint/vk-gl-cts/graphicsfuzz/cov-tail-duplicator-infinite-loops/0-opt.spvasm.expected.ir.dxc.hlsl
+++ b/test/tint/vk-gl-cts/graphicsfuzz/cov-tail-duplicator-infinite-loops/0-opt.spvasm.expected.ir.dxc.hlsl
@@ -1,9 +1,94 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Construct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct main_out {
+  float4 x_GLF_color_1;
+};
+
+struct main_outputs {
+  float4 main_out_x_GLF_color_1 : SV_Target0;
+};
+
+
+static float4 x_GLF_color = (0.0f).xxxx;
+cbuffer cbuffer_x_5 : register(b1) {
+  uint4 x_5[2];
+};
+cbuffer cbuffer_x_7 : register(b2) {
+  uint4 x_7[1];
+};
+cbuffer cbuffer_x_10 : register(b0) {
+  uint4 x_10[2];
+};
+void main_1() {
+  int i = 0;
+  x_GLF_color = float4((asfloat(x_5[0u].x)).xxxx);
+  float v = asfloat(x_7[0u].x);
+  if ((v > asfloat(x_5[0u].x))) {
+    {
+      while(true) {
+        x_GLF_color = float4((asfloat(x_5[1u].x)).xxxx);
+        {
+          if (false) { break; }
+        }
+        continue;
+      }
+    }
+  } else {
+    {
+      while(true) {
+        {
+          while(true) {
+            if (true) {
+            } else {
+              break;
+            }
+            i = asint(x_10[1u].x);
+            {
+              while(true) {
+                int v_1 = i;
+                if ((v_1 < asint(x_10[0u].x))) {
+                } else {
+                  break;
+                }
+                float v_2 = asfloat(x_5[1u].x);
+                float v_3 = asfloat(x_5[0u].x);
+                float v_4 = asfloat(x_5[0u].x);
+                x_GLF_color = float4(v_2, v_3, v_4, asfloat(x_5[1u].x));
+                {
+                  i = (i + 1);
+                }
+                continue;
+              }
+            }
+            break;
+          }
+        }
+        {
+          float x_82 = asfloat(x_7[0u].x);
+          float x_84 = asfloat(x_5[0u].x);
+          if (!((x_82 > x_84))) { break; }
+        }
+        continue;
+      }
+    }
+  }
+}
+
+main_out main_inner() {
+  main_1();
+  main_out v_5 = {x_GLF_color};
+  return v_5;
+}
+
+main_outputs main() {
+  main_out v_6 = main_inner();
+  main_outputs v_7 = {v_6.x_GLF_color_1};
+  return v_7;
+}
+
+DXC validation failure:
+error: validation errors
+hlsl.hlsl:81: error: Loop must have break.
+Validation failed.
+
+
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/cov-tail-duplicator-infinite-loops/0-opt.spvasm.expected.ir.fxc.hlsl b/test/tint/vk-gl-cts/graphicsfuzz/cov-tail-duplicator-infinite-loops/0-opt.spvasm.expected.ir.fxc.hlsl
index c6e1d96..e791671 100644
--- a/test/tint/vk-gl-cts/graphicsfuzz/cov-tail-duplicator-infinite-loops/0-opt.spvasm.expected.ir.fxc.hlsl
+++ b/test/tint/vk-gl-cts/graphicsfuzz/cov-tail-duplicator-infinite-loops/0-opt.spvasm.expected.ir.fxc.hlsl
@@ -1,9 +1,91 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Construct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct main_out {
+  float4 x_GLF_color_1;
+};
+
+struct main_outputs {
+  float4 main_out_x_GLF_color_1 : SV_Target0;
+};
+
+
+static float4 x_GLF_color = (0.0f).xxxx;
+cbuffer cbuffer_x_5 : register(b1) {
+  uint4 x_5[2];
+};
+cbuffer cbuffer_x_7 : register(b2) {
+  uint4 x_7[1];
+};
+cbuffer cbuffer_x_10 : register(b0) {
+  uint4 x_10[2];
+};
+void main_1() {
+  int i = 0;
+  x_GLF_color = float4((asfloat(x_5[0u].x)).xxxx);
+  float v = asfloat(x_7[0u].x);
+  if ((v > asfloat(x_5[0u].x))) {
+    {
+      while(true) {
+        x_GLF_color = float4((asfloat(x_5[1u].x)).xxxx);
+        {
+          if (false) { break; }
+        }
+        continue;
+      }
+    }
+  } else {
+    {
+      while(true) {
+        {
+          while(true) {
+            if (true) {
+            } else {
+              break;
+            }
+            i = asint(x_10[1u].x);
+            {
+              while(true) {
+                int v_1 = i;
+                if ((v_1 < asint(x_10[0u].x))) {
+                } else {
+                  break;
+                }
+                float v_2 = asfloat(x_5[1u].x);
+                float v_3 = asfloat(x_5[0u].x);
+                float v_4 = asfloat(x_5[0u].x);
+                x_GLF_color = float4(v_2, v_3, v_4, asfloat(x_5[1u].x));
+                {
+                  i = (i + 1);
+                }
+                continue;
+              }
+            }
+            break;
+          }
+        }
+        {
+          float x_82 = asfloat(x_7[0u].x);
+          float x_84 = asfloat(x_5[0u].x);
+          if (!((x_82 > x_84))) { break; }
+        }
+        continue;
+      }
+    }
+  }
+}
+
+main_out main_inner() {
+  main_1();
+  main_out v_5 = {x_GLF_color};
+  return v_5;
+}
+
+main_outputs main() {
+  main_out v_6 = main_inner();
+  main_outputs v_7 = {v_6.x_GLF_color_1};
+  return v_7;
+}
+
+FXC validation failure:
+c:\src\dawn\Shader@0x0000026B9DF12BB0(26,13-16): error X3696: infinite loop detected - loop never exits
+
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/cov-tail-duplicator-infinite-loops/0-opt.wgsl.expected.ir.dxc.hlsl b/test/tint/vk-gl-cts/graphicsfuzz/cov-tail-duplicator-infinite-loops/0-opt.wgsl.expected.ir.dxc.hlsl
index 3f437dc..e900838 100644
--- a/test/tint/vk-gl-cts/graphicsfuzz/cov-tail-duplicator-infinite-loops/0-opt.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/vk-gl-cts/graphicsfuzz/cov-tail-duplicator-infinite-loops/0-opt.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,101 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Access
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct main_out {
+  float4 x_GLF_color_1;
+};
+
+struct main_outputs {
+  float4 main_out_x_GLF_color_1 : SV_Target0;
+};
+
+
+static float4 x_GLF_color = (0.0f).xxxx;
+cbuffer cbuffer_x_5 : register(b1) {
+  uint4 x_5[2];
+};
+cbuffer cbuffer_x_7 : register(b2) {
+  uint4 x_7[1];
+};
+cbuffer cbuffer_x_10 : register(b0) {
+  uint4 x_10[2];
+};
+void main_1() {
+  int i = 0;
+  float x_38 = asfloat(x_5[0u].x);
+  x_GLF_color = float4(x_38, x_38, x_38, x_38);
+  float x_41 = asfloat(x_7[0u].x);
+  float x_43 = asfloat(x_5[0u].x);
+  if ((x_41 > x_43)) {
+    {
+      while(true) {
+        float x_53 = asfloat(x_5[1u].x);
+        x_GLF_color = float4(x_53, x_53, x_53, x_53);
+        {
+          if (false) { break; }
+        }
+        continue;
+      }
+    }
+  } else {
+    {
+      while(true) {
+        {
+          while(true) {
+            if (true) {
+            } else {
+              break;
+            }
+            int x_13 = asint(x_10[1u].x);
+            i = x_13;
+            {
+              while(true) {
+                int x_14 = i;
+                int x_15 = asint(x_10[0u].x);
+                if ((x_14 < x_15)) {
+                } else {
+                  break;
+                }
+                float x_73 = asfloat(x_5[1u].x);
+                float x_75 = asfloat(x_5[0u].x);
+                float x_77 = asfloat(x_5[0u].x);
+                float x_79 = asfloat(x_5[1u].x);
+                x_GLF_color = float4(x_73, x_75, x_77, x_79);
+                {
+                  int x_16 = i;
+                  i = (x_16 + 1);
+                }
+                continue;
+              }
+            }
+            break;
+          }
+        }
+        {
+          float x_82 = asfloat(x_7[0u].x);
+          float x_84 = asfloat(x_5[0u].x);
+          if (!((x_82 > x_84))) { break; }
+        }
+        continue;
+      }
+    }
+  }
+}
+
+main_out main_inner() {
+  main_1();
+  main_out v = {x_GLF_color};
+  return v;
+}
+
+main_outputs main() {
+  main_out v_1 = main_inner();
+  main_outputs v_2 = {v_1.x_GLF_color_1};
+  return v_2;
+}
+
+DXC validation failure:
+error: validation errors
+hlsl.hlsl:88: error: Loop must have break.
+Validation failed.
+
+
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/cov-tail-duplicator-infinite-loops/0-opt.wgsl.expected.ir.fxc.hlsl b/test/tint/vk-gl-cts/graphicsfuzz/cov-tail-duplicator-infinite-loops/0-opt.wgsl.expected.ir.fxc.hlsl
index 3f437dc..bcee3de 100644
--- a/test/tint/vk-gl-cts/graphicsfuzz/cov-tail-duplicator-infinite-loops/0-opt.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/vk-gl-cts/graphicsfuzz/cov-tail-duplicator-infinite-loops/0-opt.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,98 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Access
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct main_out {
+  float4 x_GLF_color_1;
+};
+
+struct main_outputs {
+  float4 main_out_x_GLF_color_1 : SV_Target0;
+};
+
+
+static float4 x_GLF_color = (0.0f).xxxx;
+cbuffer cbuffer_x_5 : register(b1) {
+  uint4 x_5[2];
+};
+cbuffer cbuffer_x_7 : register(b2) {
+  uint4 x_7[1];
+};
+cbuffer cbuffer_x_10 : register(b0) {
+  uint4 x_10[2];
+};
+void main_1() {
+  int i = 0;
+  float x_38 = asfloat(x_5[0u].x);
+  x_GLF_color = float4(x_38, x_38, x_38, x_38);
+  float x_41 = asfloat(x_7[0u].x);
+  float x_43 = asfloat(x_5[0u].x);
+  if ((x_41 > x_43)) {
+    {
+      while(true) {
+        float x_53 = asfloat(x_5[1u].x);
+        x_GLF_color = float4(x_53, x_53, x_53, x_53);
+        {
+          if (false) { break; }
+        }
+        continue;
+      }
+    }
+  } else {
+    {
+      while(true) {
+        {
+          while(true) {
+            if (true) {
+            } else {
+              break;
+            }
+            int x_13 = asint(x_10[1u].x);
+            i = x_13;
+            {
+              while(true) {
+                int x_14 = i;
+                int x_15 = asint(x_10[0u].x);
+                if ((x_14 < x_15)) {
+                } else {
+                  break;
+                }
+                float x_73 = asfloat(x_5[1u].x);
+                float x_75 = asfloat(x_5[0u].x);
+                float x_77 = asfloat(x_5[0u].x);
+                float x_79 = asfloat(x_5[1u].x);
+                x_GLF_color = float4(x_73, x_75, x_77, x_79);
+                {
+                  int x_16 = i;
+                  i = (x_16 + 1);
+                }
+                continue;
+              }
+            }
+            break;
+          }
+        }
+        {
+          float x_82 = asfloat(x_7[0u].x);
+          float x_84 = asfloat(x_5[0u].x);
+          if (!((x_82 > x_84))) { break; }
+        }
+        continue;
+      }
+    }
+  }
+}
+
+main_out main_inner() {
+  main_1();
+  main_out v = {x_GLF_color};
+  return v;
+}
+
+main_outputs main() {
+  main_out v_1 = main_inner();
+  main_outputs v_2 = {v_1.x_GLF_color_1};
+  return v_2;
+}
+
+FXC validation failure:
+c:\src\dawn\Shader@0x000001E028CEBE70(28,13-16): error X3696: infinite loop detected - loop never exits
+
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/cov-target-lowering-dfdx-cos/0-opt.spvasm.expected.ir.dxc.hlsl b/test/tint/vk-gl-cts/graphicsfuzz/cov-target-lowering-dfdx-cos/0-opt.spvasm.expected.ir.dxc.hlsl
deleted file mode 100644
index 4a2c666..0000000
--- a/test/tint/vk-gl-cts/graphicsfuzz/cov-target-lowering-dfdx-cos/0-opt.spvasm.expected.ir.dxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::LoadVectorElement
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/cov-target-lowering-dfdx-cos/0-opt.spvasm.expected.ir.fxc.hlsl b/test/tint/vk-gl-cts/graphicsfuzz/cov-target-lowering-dfdx-cos/0-opt.spvasm.expected.ir.fxc.hlsl
deleted file mode 100644
index 4a2c666..0000000
--- a/test/tint/vk-gl-cts/graphicsfuzz/cov-target-lowering-dfdx-cos/0-opt.spvasm.expected.ir.fxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::LoadVectorElement
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/cov-target-lowering-dfdx-cos/0-opt.wgsl.expected.ir.dxc.hlsl b/test/tint/vk-gl-cts/graphicsfuzz/cov-target-lowering-dfdx-cos/0-opt.wgsl.expected.ir.dxc.hlsl
deleted file mode 100644
index 4a2c666..0000000
--- a/test/tint/vk-gl-cts/graphicsfuzz/cov-target-lowering-dfdx-cos/0-opt.wgsl.expected.ir.dxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::LoadVectorElement
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/cov-target-lowering-dfdx-cos/0-opt.wgsl.expected.ir.fxc.hlsl b/test/tint/vk-gl-cts/graphicsfuzz/cov-target-lowering-dfdx-cos/0-opt.wgsl.expected.ir.fxc.hlsl
deleted file mode 100644
index 4a2c666..0000000
--- a/test/tint/vk-gl-cts/graphicsfuzz/cov-target-lowering-dfdx-cos/0-opt.wgsl.expected.ir.fxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::LoadVectorElement
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/cov-target-lowering-inst-combine-compares-struct-array-clamp-function-cal/0-opt.spvasm.expected.ir.dxc.hlsl b/test/tint/vk-gl-cts/graphicsfuzz/cov-target-lowering-inst-combine-compares-struct-array-clamp-function-cal/0-opt.spvasm.expected.ir.dxc.hlsl
index adbb0c1..d1ee477 100644
--- a/test/tint/vk-gl-cts/graphicsfuzz/cov-target-lowering-inst-combine-compares-struct-array-clamp-function-cal/0-opt.spvasm.expected.ir.dxc.hlsl
+++ b/test/tint/vk-gl-cts/graphicsfuzz/cov-target-lowering-inst-combine-compares-struct-array-clamp-function-cal/0-opt.spvasm.expected.ir.dxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:198 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Loop
+..\..\src\tint\lang\core\ir\transform\demote_to_helper.cc:208 internal compiler error: TINT_UNREACHABLE unexpected non-core instruction
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/cov-target-lowering-inst-combine-compares-struct-array-clamp-function-cal/0-opt.spvasm.expected.ir.fxc.hlsl b/test/tint/vk-gl-cts/graphicsfuzz/cov-target-lowering-inst-combine-compares-struct-array-clamp-function-cal/0-opt.spvasm.expected.ir.fxc.hlsl
index adbb0c1..d1ee477 100644
--- a/test/tint/vk-gl-cts/graphicsfuzz/cov-target-lowering-inst-combine-compares-struct-array-clamp-function-cal/0-opt.spvasm.expected.ir.fxc.hlsl
+++ b/test/tint/vk-gl-cts/graphicsfuzz/cov-target-lowering-inst-combine-compares-struct-array-clamp-function-cal/0-opt.spvasm.expected.ir.fxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:198 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Loop
+..\..\src\tint\lang\core\ir\transform\demote_to_helper.cc:208 internal compiler error: TINT_UNREACHABLE unexpected non-core instruction
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/cov-target-lowering-inst-combine-compares-struct-array-clamp-function-cal/0-opt.wgsl.expected.ir.dxc.hlsl b/test/tint/vk-gl-cts/graphicsfuzz/cov-target-lowering-inst-combine-compares-struct-array-clamp-function-cal/0-opt.wgsl.expected.ir.dxc.hlsl
index adbb0c1..d1ee477 100644
--- a/test/tint/vk-gl-cts/graphicsfuzz/cov-target-lowering-inst-combine-compares-struct-array-clamp-function-cal/0-opt.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/vk-gl-cts/graphicsfuzz/cov-target-lowering-inst-combine-compares-struct-array-clamp-function-cal/0-opt.wgsl.expected.ir.dxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:198 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Loop
+..\..\src\tint\lang\core\ir\transform\demote_to_helper.cc:208 internal compiler error: TINT_UNREACHABLE unexpected non-core instruction
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/cov-target-lowering-inst-combine-compares-struct-array-clamp-function-cal/0-opt.wgsl.expected.ir.fxc.hlsl b/test/tint/vk-gl-cts/graphicsfuzz/cov-target-lowering-inst-combine-compares-struct-array-clamp-function-cal/0-opt.wgsl.expected.ir.fxc.hlsl
index adbb0c1..d1ee477 100644
--- a/test/tint/vk-gl-cts/graphicsfuzz/cov-target-lowering-inst-combine-compares-struct-array-clamp-function-cal/0-opt.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/vk-gl-cts/graphicsfuzz/cov-target-lowering-inst-combine-compares-struct-array-clamp-function-cal/0-opt.wgsl.expected.ir.fxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:198 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Loop
+..\..\src\tint\lang\core\ir\transform\demote_to_helper.cc:208 internal compiler error: TINT_UNREACHABLE unexpected non-core instruction
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/cov-transpose-multiply/0-opt.spvasm.expected.ir.dxc.hlsl b/test/tint/vk-gl-cts/graphicsfuzz/cov-transpose-multiply/0-opt.spvasm.expected.ir.dxc.hlsl
deleted file mode 100644
index bdeab23..0000000
--- a/test/tint/vk-gl-cts/graphicsfuzz/cov-transpose-multiply/0-opt.spvasm.expected.ir.dxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:198 internal compiler error: Switch() matched no cases. Type: tint::core::ir::If
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/cov-transpose-multiply/0-opt.spvasm.expected.ir.fxc.hlsl b/test/tint/vk-gl-cts/graphicsfuzz/cov-transpose-multiply/0-opt.spvasm.expected.ir.fxc.hlsl
deleted file mode 100644
index bdeab23..0000000
--- a/test/tint/vk-gl-cts/graphicsfuzz/cov-transpose-multiply/0-opt.spvasm.expected.ir.fxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:198 internal compiler error: Switch() matched no cases. Type: tint::core::ir::If
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/cov-transpose-multiply/0-opt.wgsl.expected.ir.dxc.hlsl b/test/tint/vk-gl-cts/graphicsfuzz/cov-transpose-multiply/0-opt.wgsl.expected.ir.dxc.hlsl
deleted file mode 100644
index bdeab23..0000000
--- a/test/tint/vk-gl-cts/graphicsfuzz/cov-transpose-multiply/0-opt.wgsl.expected.ir.dxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:198 internal compiler error: Switch() matched no cases. Type: tint::core::ir::If
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/cov-transpose-multiply/0-opt.wgsl.expected.ir.fxc.hlsl b/test/tint/vk-gl-cts/graphicsfuzz/cov-transpose-multiply/0-opt.wgsl.expected.ir.fxc.hlsl
deleted file mode 100644
index bdeab23..0000000
--- a/test/tint/vk-gl-cts/graphicsfuzz/cov-transpose-multiply/0-opt.wgsl.expected.ir.fxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:198 internal compiler error: Switch() matched no cases. Type: tint::core::ir::If
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/cov-trunc-fract-always-zero/0-opt.spvasm.expected.ir.dxc.hlsl b/test/tint/vk-gl-cts/graphicsfuzz/cov-trunc-fract-always-zero/0-opt.spvasm.expected.ir.dxc.hlsl
deleted file mode 100644
index 4c48f71..0000000
--- a/test/tint/vk-gl-cts/graphicsfuzz/cov-trunc-fract-always-zero/0-opt.spvasm.expected.ir.dxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: trunc
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/cov-trunc-fract-always-zero/0-opt.spvasm.expected.ir.fxc.hlsl b/test/tint/vk-gl-cts/graphicsfuzz/cov-trunc-fract-always-zero/0-opt.spvasm.expected.ir.fxc.hlsl
deleted file mode 100644
index 4c48f71..0000000
--- a/test/tint/vk-gl-cts/graphicsfuzz/cov-trunc-fract-always-zero/0-opt.spvasm.expected.ir.fxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: trunc
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/cov-trunc-fract-always-zero/0-opt.wgsl.expected.ir.dxc.hlsl b/test/tint/vk-gl-cts/graphicsfuzz/cov-trunc-fract-always-zero/0-opt.wgsl.expected.ir.dxc.hlsl
deleted file mode 100644
index 4a2c666..0000000
--- a/test/tint/vk-gl-cts/graphicsfuzz/cov-trunc-fract-always-zero/0-opt.wgsl.expected.ir.dxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::LoadVectorElement
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/cov-trunc-fract-always-zero/0-opt.wgsl.expected.ir.fxc.hlsl b/test/tint/vk-gl-cts/graphicsfuzz/cov-trunc-fract-always-zero/0-opt.wgsl.expected.ir.fxc.hlsl
deleted file mode 100644
index 4a2c666..0000000
--- a/test/tint/vk-gl-cts/graphicsfuzz/cov-trunc-fract-always-zero/0-opt.wgsl.expected.ir.fxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::LoadVectorElement
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/cov-types-return-in-main-never-hit/0-opt.spvasm.expected.ir.dxc.hlsl b/test/tint/vk-gl-cts/graphicsfuzz/cov-types-return-in-main-never-hit/0-opt.spvasm.expected.ir.dxc.hlsl
deleted file mode 100644
index bdeab23..0000000
--- a/test/tint/vk-gl-cts/graphicsfuzz/cov-types-return-in-main-never-hit/0-opt.spvasm.expected.ir.dxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:198 internal compiler error: Switch() matched no cases. Type: tint::core::ir::If
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/cov-types-return-in-main-never-hit/0-opt.spvasm.expected.ir.fxc.hlsl b/test/tint/vk-gl-cts/graphicsfuzz/cov-types-return-in-main-never-hit/0-opt.spvasm.expected.ir.fxc.hlsl
deleted file mode 100644
index bdeab23..0000000
--- a/test/tint/vk-gl-cts/graphicsfuzz/cov-types-return-in-main-never-hit/0-opt.spvasm.expected.ir.fxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:198 internal compiler error: Switch() matched no cases. Type: tint::core::ir::If
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/cov-types-return-in-main-never-hit/0-opt.wgsl.expected.ir.dxc.hlsl b/test/tint/vk-gl-cts/graphicsfuzz/cov-types-return-in-main-never-hit/0-opt.wgsl.expected.ir.dxc.hlsl
deleted file mode 100644
index 3f437dc..0000000
--- a/test/tint/vk-gl-cts/graphicsfuzz/cov-types-return-in-main-never-hit/0-opt.wgsl.expected.ir.dxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Access
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/cov-types-return-in-main-never-hit/0-opt.wgsl.expected.ir.fxc.hlsl b/test/tint/vk-gl-cts/graphicsfuzz/cov-types-return-in-main-never-hit/0-opt.wgsl.expected.ir.fxc.hlsl
deleted file mode 100644
index 3f437dc..0000000
--- a/test/tint/vk-gl-cts/graphicsfuzz/cov-types-return-in-main-never-hit/0-opt.wgsl.expected.ir.fxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Access
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/cov-undefined-inversesqrt-reflect/0-opt.spvasm.expected.ir.dxc.hlsl b/test/tint/vk-gl-cts/graphicsfuzz/cov-undefined-inversesqrt-reflect/0-opt.spvasm.expected.ir.dxc.hlsl
deleted file mode 100644
index c6e1d96..0000000
--- a/test/tint/vk-gl-cts/graphicsfuzz/cov-undefined-inversesqrt-reflect/0-opt.spvasm.expected.ir.dxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Construct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/cov-undefined-inversesqrt-reflect/0-opt.spvasm.expected.ir.fxc.hlsl b/test/tint/vk-gl-cts/graphicsfuzz/cov-undefined-inversesqrt-reflect/0-opt.spvasm.expected.ir.fxc.hlsl
deleted file mode 100644
index c6e1d96..0000000
--- a/test/tint/vk-gl-cts/graphicsfuzz/cov-undefined-inversesqrt-reflect/0-opt.spvasm.expected.ir.fxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Construct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/cov-undefined-inversesqrt-reflect/0-opt.wgsl.expected.ir.dxc.hlsl b/test/tint/vk-gl-cts/graphicsfuzz/cov-undefined-inversesqrt-reflect/0-opt.wgsl.expected.ir.dxc.hlsl
deleted file mode 100644
index 3f437dc..0000000
--- a/test/tint/vk-gl-cts/graphicsfuzz/cov-undefined-inversesqrt-reflect/0-opt.wgsl.expected.ir.dxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Access
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/cov-undefined-inversesqrt-reflect/0-opt.wgsl.expected.ir.fxc.hlsl b/test/tint/vk-gl-cts/graphicsfuzz/cov-undefined-inversesqrt-reflect/0-opt.wgsl.expected.ir.fxc.hlsl
deleted file mode 100644
index 3f437dc..0000000
--- a/test/tint/vk-gl-cts/graphicsfuzz/cov-undefined-inversesqrt-reflect/0-opt.wgsl.expected.ir.fxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Access
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/cov-uninitialized-values-passed-to-function-never-executed/0-opt.spvasm.expected.ir.dxc.hlsl b/test/tint/vk-gl-cts/graphicsfuzz/cov-uninitialized-values-passed-to-function-never-executed/0-opt.spvasm.expected.ir.dxc.hlsl
deleted file mode 100644
index bdeab23..0000000
--- a/test/tint/vk-gl-cts/graphicsfuzz/cov-uninitialized-values-passed-to-function-never-executed/0-opt.spvasm.expected.ir.dxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:198 internal compiler error: Switch() matched no cases. Type: tint::core::ir::If
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/cov-uninitialized-values-passed-to-function-never-executed/0-opt.spvasm.expected.ir.fxc.hlsl b/test/tint/vk-gl-cts/graphicsfuzz/cov-uninitialized-values-passed-to-function-never-executed/0-opt.spvasm.expected.ir.fxc.hlsl
deleted file mode 100644
index bdeab23..0000000
--- a/test/tint/vk-gl-cts/graphicsfuzz/cov-uninitialized-values-passed-to-function-never-executed/0-opt.spvasm.expected.ir.fxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:198 internal compiler error: Switch() matched no cases. Type: tint::core::ir::If
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/cov-uninitialized-values-passed-to-function-never-executed/0-opt.wgsl.expected.ir.dxc.hlsl b/test/tint/vk-gl-cts/graphicsfuzz/cov-uninitialized-values-passed-to-function-never-executed/0-opt.wgsl.expected.ir.dxc.hlsl
deleted file mode 100644
index 3f437dc..0000000
--- a/test/tint/vk-gl-cts/graphicsfuzz/cov-uninitialized-values-passed-to-function-never-executed/0-opt.wgsl.expected.ir.dxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Access
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/cov-uninitialized-values-passed-to-function-never-executed/0-opt.wgsl.expected.ir.fxc.hlsl b/test/tint/vk-gl-cts/graphicsfuzz/cov-uninitialized-values-passed-to-function-never-executed/0-opt.wgsl.expected.ir.fxc.hlsl
deleted file mode 100644
index 3f437dc..0000000
--- a/test/tint/vk-gl-cts/graphicsfuzz/cov-uninitialized-values-passed-to-function-never-executed/0-opt.wgsl.expected.ir.fxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Access
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/cov-unpack-unorm-mix-always-one/0-opt.spvasm.expected.ir.dxc.hlsl b/test/tint/vk-gl-cts/graphicsfuzz/cov-unpack-unorm-mix-always-one/0-opt.spvasm.expected.ir.dxc.hlsl
deleted file mode 100644
index 2dbdaf2..0000000
--- a/test/tint/vk-gl-cts/graphicsfuzz/cov-unpack-unorm-mix-always-one/0-opt.spvasm.expected.ir.dxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: unpack4x8unorm
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/cov-unpack-unorm-mix-always-one/0-opt.spvasm.expected.ir.fxc.hlsl b/test/tint/vk-gl-cts/graphicsfuzz/cov-unpack-unorm-mix-always-one/0-opt.spvasm.expected.ir.fxc.hlsl
deleted file mode 100644
index 2dbdaf2..0000000
--- a/test/tint/vk-gl-cts/graphicsfuzz/cov-unpack-unorm-mix-always-one/0-opt.spvasm.expected.ir.fxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: unpack4x8unorm
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/cov-unpack-unorm-mix-always-one/0-opt.wgsl.expected.ir.dxc.hlsl b/test/tint/vk-gl-cts/graphicsfuzz/cov-unpack-unorm-mix-always-one/0-opt.wgsl.expected.ir.dxc.hlsl
deleted file mode 100644
index 3f437dc..0000000
--- a/test/tint/vk-gl-cts/graphicsfuzz/cov-unpack-unorm-mix-always-one/0-opt.wgsl.expected.ir.dxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Access
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/cov-unpack-unorm-mix-always-one/0-opt.wgsl.expected.ir.fxc.hlsl b/test/tint/vk-gl-cts/graphicsfuzz/cov-unpack-unorm-mix-always-one/0-opt.wgsl.expected.ir.fxc.hlsl
deleted file mode 100644
index 3f437dc..0000000
--- a/test/tint/vk-gl-cts/graphicsfuzz/cov-unpack-unorm-mix-always-one/0-opt.wgsl.expected.ir.fxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Access
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/cov-unused-matrix-copy-inside-loop/0-opt.spvasm.expected.ir.dxc.hlsl b/test/tint/vk-gl-cts/graphicsfuzz/cov-unused-matrix-copy-inside-loop/0-opt.spvasm.expected.ir.dxc.hlsl
deleted file mode 100644
index 48e23f4..0000000
--- a/test/tint/vk-gl-cts/graphicsfuzz/cov-unused-matrix-copy-inside-loop/0-opt.spvasm.expected.ir.dxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Convert
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/cov-unused-matrix-copy-inside-loop/0-opt.spvasm.expected.ir.fxc.hlsl b/test/tint/vk-gl-cts/graphicsfuzz/cov-unused-matrix-copy-inside-loop/0-opt.spvasm.expected.ir.fxc.hlsl
index 48e23f4..013cd16 100644
--- a/test/tint/vk-gl-cts/graphicsfuzz/cov-unused-matrix-copy-inside-loop/0-opt.spvasm.expected.ir.fxc.hlsl
+++ b/test/tint/vk-gl-cts/graphicsfuzz/cov-unused-matrix-copy-inside-loop/0-opt.spvasm.expected.ir.fxc.hlsl
@@ -1,9 +1,103 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Convert
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct main_out {
+  float4 x_GLF_color_1;
+};
+
+struct main_outputs {
+  float4 main_out_x_GLF_color_1 : SV_Target0;
+};
+
+
+cbuffer cbuffer_x_6 : register(b1) {
+  uint4 x_6[4];
+};
+cbuffer cbuffer_x_10 : register(b0) {
+  uint4 x_10[1];
+};
+static float4 x_GLF_color = (0.0f).xxxx;
+int tint_mod_i32(int lhs, int rhs) {
+  int v = ((((rhs == 0) | ((lhs == -2147483648) & (rhs == -1)))) ? (1) : (rhs));
+  return (lhs - ((lhs / v) * v));
+}
+
+void main_1() {
+  float4x4 m0 = float4x4((0.0f).xxxx, (0.0f).xxxx, (0.0f).xxxx, (0.0f).xxxx);
+  int c = 0;
+  float4x4 m1 = float4x4((0.0f).xxxx, (0.0f).xxxx, (0.0f).xxxx, (0.0f).xxxx);
+  float x_41 = float(asint(x_6[1u].x));
+  float4 v_1 = float4(x_41, 0.0f, 0.0f, 0.0f);
+  float4 v_2 = float4(0.0f, x_41, 0.0f, 0.0f);
+  float4 v_3 = float4(0.0f, 0.0f, x_41, 0.0f);
+  m0 = float4x4(v_1, v_2, v_3, float4(0.0f, 0.0f, 0.0f, x_41));
+  c = asint(x_6[2u].x);
+  {
+    while(true) {
+      int v_4 = c;
+      if ((v_4 < asint(x_6[0u].x))) {
+      } else {
+        break;
+      }
+      m1 = m0;
+      int x_59 = c;
+      int x_61 = asint(x_6[3u].x);
+      int x_64 = asint(x_6[2u].x);
+      float4 v_5 = m1[tint_mod_i32(x_59, x_61)];
+      v_5[x_64] = asfloat(x_10[0u].x);
+      int x_68 = c;
+      int x_70 = asint(x_6[3u].x);
+      int x_73 = asint(x_6[2u].x);
+      float4 v_6 = m0[tint_mod_i32(x_68, x_70)];
+      v_6[x_73] = asfloat(x_10[0u].x);
+      {
+        c = (c + 1);
+      }
+      continue;
+    }
+  }
+  float v_7 = float(asint(x_6[1u].x));
+  float v_8 = float(asint(x_6[2u].x));
+  float v_9 = float(asint(x_6[1u].x));
+  float4 v_10 = float4(v_7, v_8, v_9, float(asint(x_6[1u].x)));
+  float v_11 = float(asint(x_6[1u].x));
+  float v_12 = float(asint(x_6[2u].x));
+  float v_13 = float(asint(x_6[1u].x));
+  float4 v_14 = float4(v_11, v_12, v_13, float(asint(x_6[1u].x)));
+  float v_15 = float(asint(x_6[1u].x));
+  float v_16 = float(asint(x_6[2u].x));
+  float v_17 = float(asint(x_6[1u].x));
+  float4 v_18 = float4(v_15, v_16, v_17, float(asint(x_6[1u].x)));
+  float v_19 = float(asint(x_6[1u].x));
+  float v_20 = float(asint(x_6[2u].x));
+  float v_21 = float(asint(x_6[1u].x));
+  float4x4 x_132 = float4x4(v_10, v_14, v_18, float4(v_19, v_20, v_21, float(asint(x_6[1u].x))));
+  bool v_22 = all((m0[0u] == x_132[0u]));
+  bool v_23 = (v_22 & all((m0[1u] == x_132[1u])));
+  bool v_24 = (v_23 & all((m0[2u] == x_132[2u])));
+  if ((v_24 & all((m0[3u] == x_132[3u])))) {
+    float v_25 = float(asint(x_6[2u].x));
+    float v_26 = float(asint(x_6[1u].x));
+    float v_27 = float(asint(x_6[1u].x));
+    x_GLF_color = float4(v_25, v_26, v_27, float(asint(x_6[2u].x)));
+  } else {
+    x_GLF_color = float4((float(asint(x_6[1u].x))).xxxx);
+  }
+}
+
+main_out main_inner() {
+  main_1();
+  main_out v_28 = {x_GLF_color};
+  return v_28;
+}
+
+main_outputs main() {
+  main_out v_29 = main_inner();
+  main_outputs v_30 = {v_29.x_GLF_color_1};
+  return v_30;
+}
+
+FXC validation failure:
+c:\src\dawn\Shader@0x000001B28B58D5F0(19,19-25): warning X3556: integer divides may be much slower, try using uints if possible.
+c:\src\dawn\Shader@0x000001B28B58D5F0(44,7-15): error X3500: array reference cannot be used as an l-value; not natively addressable
+c:\src\dawn\Shader@0x000001B28B58D5F0(33,5-15): error X3511: forced to unroll loop, but unrolling failed.
+
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/cov-unused-matrix-copy-inside-loop/0-opt.wgsl.expected.ir.dxc.hlsl b/test/tint/vk-gl-cts/graphicsfuzz/cov-unused-matrix-copy-inside-loop/0-opt.wgsl.expected.ir.dxc.hlsl
deleted file mode 100644
index 3f437dc..0000000
--- a/test/tint/vk-gl-cts/graphicsfuzz/cov-unused-matrix-copy-inside-loop/0-opt.wgsl.expected.ir.dxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Access
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/cov-unused-matrix-copy-inside-loop/0-opt.wgsl.expected.ir.fxc.hlsl b/test/tint/vk-gl-cts/graphicsfuzz/cov-unused-matrix-copy-inside-loop/0-opt.wgsl.expected.ir.fxc.hlsl
index 3f437dc..6069cfa 100644
--- a/test/tint/vk-gl-cts/graphicsfuzz/cov-unused-matrix-copy-inside-loop/0-opt.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/vk-gl-cts/graphicsfuzz/cov-unused-matrix-copy-inside-loop/0-opt.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,131 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Access
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct main_out {
+  float4 x_GLF_color_1;
+};
+
+struct main_outputs {
+  float4 main_out_x_GLF_color_1 : SV_Target0;
+};
+
+
+cbuffer cbuffer_x_6 : register(b1) {
+  uint4 x_6[4];
+};
+cbuffer cbuffer_x_10 : register(b0) {
+  uint4 x_10[1];
+};
+static float4 x_GLF_color = (0.0f).xxxx;
+int tint_mod_i32(int lhs, int rhs) {
+  int v = ((((rhs == 0) | ((lhs == -2147483648) & (rhs == -1)))) ? (1) : (rhs));
+  return (lhs - ((lhs / v) * v));
+}
+
+void main_1() {
+  float4x4 m0 = float4x4((0.0f).xxxx, (0.0f).xxxx, (0.0f).xxxx, (0.0f).xxxx);
+  int c = 0;
+  float4x4 m1 = float4x4((0.0f).xxxx, (0.0f).xxxx, (0.0f).xxxx, (0.0f).xxxx);
+  int x_40 = asint(x_6[1u].x);
+  float x_41 = float(x_40);
+  float4 v_1 = float4(x_41, 0.0f, 0.0f, 0.0f);
+  float4 v_2 = float4(0.0f, x_41, 0.0f, 0.0f);
+  float4 v_3 = float4(0.0f, 0.0f, x_41, 0.0f);
+  m0 = float4x4(v_1, v_2, v_3, float4(0.0f, 0.0f, 0.0f, x_41));
+  int x_48 = asint(x_6[2u].x);
+  c = x_48;
+  {
+    while(true) {
+      int x_53 = c;
+      int x_55 = asint(x_6[0u].x);
+      if ((x_53 < x_55)) {
+      } else {
+        break;
+      }
+      float4x4 x_58 = m0;
+      m1 = x_58;
+      int x_59 = c;
+      int x_61 = asint(x_6[3u].x);
+      int x_64 = asint(x_6[2u].x);
+      float x_66 = asfloat(x_10[0u].x);
+      m1[tint_mod_i32(x_59, x_61)][x_64] = x_66;
+      int x_68 = c;
+      int x_70 = asint(x_6[3u].x);
+      int x_73 = asint(x_6[2u].x);
+      float x_75 = asfloat(x_10[0u].x);
+      m0[tint_mod_i32(x_68, x_70)][x_73] = x_75;
+      {
+        int x_77 = c;
+        c = (x_77 + 1);
+      }
+      continue;
+    }
+  }
+  float4x4 x_79 = m0;
+  int x_81 = asint(x_6[1u].x);
+  int x_84 = asint(x_6[2u].x);
+  int x_87 = asint(x_6[1u].x);
+  int x_90 = asint(x_6[1u].x);
+  int x_93 = asint(x_6[1u].x);
+  int x_96 = asint(x_6[2u].x);
+  int x_99 = asint(x_6[1u].x);
+  int x_102 = asint(x_6[1u].x);
+  int x_105 = asint(x_6[1u].x);
+  int x_108 = asint(x_6[2u].x);
+  int x_111 = asint(x_6[1u].x);
+  int x_114 = asint(x_6[1u].x);
+  int x_117 = asint(x_6[1u].x);
+  int x_120 = asint(x_6[2u].x);
+  int x_123 = asint(x_6[1u].x);
+  int x_126 = asint(x_6[1u].x);
+  float v_4 = float(x_81);
+  float v_5 = float(x_84);
+  float v_6 = float(x_87);
+  float4 v_7 = float4(v_4, v_5, v_6, float(x_90));
+  float v_8 = float(x_93);
+  float v_9 = float(x_96);
+  float v_10 = float(x_99);
+  float4 v_11 = float4(v_8, v_9, v_10, float(x_102));
+  float v_12 = float(x_105);
+  float v_13 = float(x_108);
+  float v_14 = float(x_111);
+  float4 v_15 = float4(v_12, v_13, v_14, float(x_114));
+  float v_16 = float(x_117);
+  float v_17 = float(x_120);
+  float v_18 = float(x_123);
+  float4x4 x_132 = float4x4(v_7, v_11, v_15, float4(v_16, v_17, v_18, float(x_126)));
+  bool v_19 = all((x_79[0u] == x_132[0u]));
+  bool v_20 = (v_19 & all((x_79[1u] == x_132[1u])));
+  bool v_21 = (v_20 & all((x_79[2u] == x_132[2u])));
+  if ((v_21 & all((x_79[3u] == x_132[3u])))) {
+    int x_156 = asint(x_6[2u].x);
+    int x_159 = asint(x_6[1u].x);
+    int x_162 = asint(x_6[1u].x);
+    int x_165 = asint(x_6[2u].x);
+    float v_22 = float(x_156);
+    float v_23 = float(x_159);
+    float v_24 = float(x_162);
+    x_GLF_color = float4(v_22, v_23, v_24, float(x_165));
+  } else {
+    int x_169 = asint(x_6[1u].x);
+    float x_170 = float(x_169);
+    x_GLF_color = float4(x_170, x_170, x_170, x_170);
+  }
+}
+
+main_out main_inner() {
+  main_1();
+  main_out v_25 = {x_GLF_color};
+  return v_25;
+}
+
+main_outputs main() {
+  main_out v_26 = main_inner();
+  main_outputs v_27 = {v_26.x_GLF_color_1};
+  return v_27;
+}
+
+FXC validation failure:
+c:\src\dawn\Shader@0x00000169FA4BCBF0(19,19-25): warning X3556: integer divides may be much slower, try using uints if possible.
+c:\src\dawn\Shader@0x00000169FA4BCBF0(48,7-34): error X3500: array reference cannot be used as an l-value; not natively addressable
+c:\src\dawn\Shader@0x00000169FA4BCBF0(35,5-15): error X3511: forced to unroll loop, but unrolling failed.
+
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/cov-value-inst-combine-select-value-tracking-flip-bits/0-opt.spvasm.expected.ir.dxc.hlsl b/test/tint/vk-gl-cts/graphicsfuzz/cov-value-inst-combine-select-value-tracking-flip-bits/0-opt.spvasm.expected.ir.dxc.hlsl
deleted file mode 100644
index 3f437dc..0000000
--- a/test/tint/vk-gl-cts/graphicsfuzz/cov-value-inst-combine-select-value-tracking-flip-bits/0-opt.spvasm.expected.ir.dxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Access
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/cov-value-inst-combine-select-value-tracking-flip-bits/0-opt.spvasm.expected.ir.fxc.hlsl b/test/tint/vk-gl-cts/graphicsfuzz/cov-value-inst-combine-select-value-tracking-flip-bits/0-opt.spvasm.expected.ir.fxc.hlsl
deleted file mode 100644
index 3f437dc..0000000
--- a/test/tint/vk-gl-cts/graphicsfuzz/cov-value-inst-combine-select-value-tracking-flip-bits/0-opt.spvasm.expected.ir.fxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Access
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/cov-value-inst-combine-select-value-tracking-flip-bits/0-opt.wgsl.expected.ir.dxc.hlsl b/test/tint/vk-gl-cts/graphicsfuzz/cov-value-inst-combine-select-value-tracking-flip-bits/0-opt.wgsl.expected.ir.dxc.hlsl
deleted file mode 100644
index 3f437dc..0000000
--- a/test/tint/vk-gl-cts/graphicsfuzz/cov-value-inst-combine-select-value-tracking-flip-bits/0-opt.wgsl.expected.ir.dxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Access
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/cov-value-inst-combine-select-value-tracking-flip-bits/0-opt.wgsl.expected.ir.fxc.hlsl b/test/tint/vk-gl-cts/graphicsfuzz/cov-value-inst-combine-select-value-tracking-flip-bits/0-opt.wgsl.expected.ir.fxc.hlsl
deleted file mode 100644
index 3f437dc..0000000
--- a/test/tint/vk-gl-cts/graphicsfuzz/cov-value-inst-combine-select-value-tracking-flip-bits/0-opt.wgsl.expected.ir.fxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Access
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/cov-value-tracking-apint-inst-combine-simplify-one-mod-loop-iterator/0-opt.spvasm.expected.ir.dxc.hlsl b/test/tint/vk-gl-cts/graphicsfuzz/cov-value-tracking-apint-inst-combine-simplify-one-mod-loop-iterator/0-opt.spvasm.expected.ir.dxc.hlsl
deleted file mode 100644
index 3f437dc..0000000
--- a/test/tint/vk-gl-cts/graphicsfuzz/cov-value-tracking-apint-inst-combine-simplify-one-mod-loop-iterator/0-opt.spvasm.expected.ir.dxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Access
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/cov-value-tracking-apint-inst-combine-simplify-one-mod-loop-iterator/0-opt.spvasm.expected.ir.fxc.hlsl b/test/tint/vk-gl-cts/graphicsfuzz/cov-value-tracking-apint-inst-combine-simplify-one-mod-loop-iterator/0-opt.spvasm.expected.ir.fxc.hlsl
deleted file mode 100644
index 3f437dc..0000000
--- a/test/tint/vk-gl-cts/graphicsfuzz/cov-value-tracking-apint-inst-combine-simplify-one-mod-loop-iterator/0-opt.spvasm.expected.ir.fxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Access
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/cov-value-tracking-apint-inst-combine-simplify-one-mod-loop-iterator/0-opt.wgsl.expected.ir.dxc.hlsl b/test/tint/vk-gl-cts/graphicsfuzz/cov-value-tracking-apint-inst-combine-simplify-one-mod-loop-iterator/0-opt.wgsl.expected.ir.dxc.hlsl
deleted file mode 100644
index 3f437dc..0000000
--- a/test/tint/vk-gl-cts/graphicsfuzz/cov-value-tracking-apint-inst-combine-simplify-one-mod-loop-iterator/0-opt.wgsl.expected.ir.dxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Access
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/cov-value-tracking-apint-inst-combine-simplify-one-mod-loop-iterator/0-opt.wgsl.expected.ir.fxc.hlsl b/test/tint/vk-gl-cts/graphicsfuzz/cov-value-tracking-apint-inst-combine-simplify-one-mod-loop-iterator/0-opt.wgsl.expected.ir.fxc.hlsl
deleted file mode 100644
index 3f437dc..0000000
--- a/test/tint/vk-gl-cts/graphicsfuzz/cov-value-tracking-apint-inst-combine-simplify-one-mod-loop-iterator/0-opt.wgsl.expected.ir.fxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Access
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/cov-value-tracking-inclusive-or/0-opt.spvasm.expected.ir.dxc.hlsl b/test/tint/vk-gl-cts/graphicsfuzz/cov-value-tracking-inclusive-or/0-opt.spvasm.expected.ir.dxc.hlsl
deleted file mode 100644
index adbb0c1..0000000
--- a/test/tint/vk-gl-cts/graphicsfuzz/cov-value-tracking-inclusive-or/0-opt.spvasm.expected.ir.dxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:198 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Loop
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/cov-value-tracking-inclusive-or/0-opt.spvasm.expected.ir.fxc.hlsl b/test/tint/vk-gl-cts/graphicsfuzz/cov-value-tracking-inclusive-or/0-opt.spvasm.expected.ir.fxc.hlsl
deleted file mode 100644
index adbb0c1..0000000
--- a/test/tint/vk-gl-cts/graphicsfuzz/cov-value-tracking-inclusive-or/0-opt.spvasm.expected.ir.fxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:198 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Loop
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/cov-value-tracking-inclusive-or/0-opt.wgsl.expected.ir.dxc.hlsl b/test/tint/vk-gl-cts/graphicsfuzz/cov-value-tracking-inclusive-or/0-opt.wgsl.expected.ir.dxc.hlsl
deleted file mode 100644
index adbb0c1..0000000
--- a/test/tint/vk-gl-cts/graphicsfuzz/cov-value-tracking-inclusive-or/0-opt.wgsl.expected.ir.dxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:198 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Loop
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/cov-value-tracking-inclusive-or/0-opt.wgsl.expected.ir.fxc.hlsl b/test/tint/vk-gl-cts/graphicsfuzz/cov-value-tracking-inclusive-or/0-opt.wgsl.expected.ir.fxc.hlsl
deleted file mode 100644
index adbb0c1..0000000
--- a/test/tint/vk-gl-cts/graphicsfuzz/cov-value-tracking-inclusive-or/0-opt.wgsl.expected.ir.fxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:198 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Loop
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/cov-value-tracking-known-nonzero/0-opt.spvasm.expected.ir.dxc.hlsl b/test/tint/vk-gl-cts/graphicsfuzz/cov-value-tracking-known-nonzero/0-opt.spvasm.expected.ir.dxc.hlsl
deleted file mode 100644
index 3f437dc..0000000
--- a/test/tint/vk-gl-cts/graphicsfuzz/cov-value-tracking-known-nonzero/0-opt.spvasm.expected.ir.dxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Access
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/cov-value-tracking-known-nonzero/0-opt.spvasm.expected.ir.fxc.hlsl b/test/tint/vk-gl-cts/graphicsfuzz/cov-value-tracking-known-nonzero/0-opt.spvasm.expected.ir.fxc.hlsl
deleted file mode 100644
index 3f437dc..0000000
--- a/test/tint/vk-gl-cts/graphicsfuzz/cov-value-tracking-known-nonzero/0-opt.spvasm.expected.ir.fxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Access
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/cov-value-tracking-known-nonzero/0-opt.wgsl.expected.ir.dxc.hlsl b/test/tint/vk-gl-cts/graphicsfuzz/cov-value-tracking-known-nonzero/0-opt.wgsl.expected.ir.dxc.hlsl
deleted file mode 100644
index 3f437dc..0000000
--- a/test/tint/vk-gl-cts/graphicsfuzz/cov-value-tracking-known-nonzero/0-opt.wgsl.expected.ir.dxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Access
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/cov-value-tracking-known-nonzero/0-opt.wgsl.expected.ir.fxc.hlsl b/test/tint/vk-gl-cts/graphicsfuzz/cov-value-tracking-known-nonzero/0-opt.wgsl.expected.ir.fxc.hlsl
deleted file mode 100644
index 3f437dc..0000000
--- a/test/tint/vk-gl-cts/graphicsfuzz/cov-value-tracking-known-nonzero/0-opt.wgsl.expected.ir.fxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Access
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/cov-value-tracking-max-uintbitstofloat/0-opt.spvasm.expected.ir.dxc.hlsl b/test/tint/vk-gl-cts/graphicsfuzz/cov-value-tracking-max-uintbitstofloat/0-opt.spvasm.expected.ir.dxc.hlsl
deleted file mode 100644
index a249798..0000000
--- a/test/tint/vk-gl-cts/graphicsfuzz/cov-value-tracking-max-uintbitstofloat/0-opt.spvasm.expected.ir.dxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Bitcast
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/cov-value-tracking-max-uintbitstofloat/0-opt.spvasm.expected.ir.fxc.hlsl b/test/tint/vk-gl-cts/graphicsfuzz/cov-value-tracking-max-uintbitstofloat/0-opt.spvasm.expected.ir.fxc.hlsl
deleted file mode 100644
index a249798..0000000
--- a/test/tint/vk-gl-cts/graphicsfuzz/cov-value-tracking-max-uintbitstofloat/0-opt.spvasm.expected.ir.fxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Bitcast
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/cov-value-tracking-max-uintbitstofloat/0-opt.wgsl.expected.ir.dxc.hlsl b/test/tint/vk-gl-cts/graphicsfuzz/cov-value-tracking-max-uintbitstofloat/0-opt.wgsl.expected.ir.dxc.hlsl
deleted file mode 100644
index 3f437dc..0000000
--- a/test/tint/vk-gl-cts/graphicsfuzz/cov-value-tracking-max-uintbitstofloat/0-opt.wgsl.expected.ir.dxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Access
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/cov-value-tracking-max-uintbitstofloat/0-opt.wgsl.expected.ir.fxc.hlsl b/test/tint/vk-gl-cts/graphicsfuzz/cov-value-tracking-max-uintbitstofloat/0-opt.wgsl.expected.ir.fxc.hlsl
deleted file mode 100644
index 3f437dc..0000000
--- a/test/tint/vk-gl-cts/graphicsfuzz/cov-value-tracking-max-uintbitstofloat/0-opt.wgsl.expected.ir.fxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Access
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/cov-value-tracking-selection-dag-negation-clamp-loop/0-opt.spvasm.expected.ir.dxc.hlsl b/test/tint/vk-gl-cts/graphicsfuzz/cov-value-tracking-selection-dag-negation-clamp-loop/0-opt.spvasm.expected.ir.dxc.hlsl
deleted file mode 100644
index 3f437dc..0000000
--- a/test/tint/vk-gl-cts/graphicsfuzz/cov-value-tracking-selection-dag-negation-clamp-loop/0-opt.spvasm.expected.ir.dxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Access
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/cov-value-tracking-selection-dag-negation-clamp-loop/0-opt.spvasm.expected.ir.fxc.hlsl b/test/tint/vk-gl-cts/graphicsfuzz/cov-value-tracking-selection-dag-negation-clamp-loop/0-opt.spvasm.expected.ir.fxc.hlsl
deleted file mode 100644
index 3f437dc..0000000
--- a/test/tint/vk-gl-cts/graphicsfuzz/cov-value-tracking-selection-dag-negation-clamp-loop/0-opt.spvasm.expected.ir.fxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Access
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/cov-value-tracking-selection-dag-negation-clamp-loop/0-opt.wgsl.expected.ir.dxc.hlsl b/test/tint/vk-gl-cts/graphicsfuzz/cov-value-tracking-selection-dag-negation-clamp-loop/0-opt.wgsl.expected.ir.dxc.hlsl
deleted file mode 100644
index 3f437dc..0000000
--- a/test/tint/vk-gl-cts/graphicsfuzz/cov-value-tracking-selection-dag-negation-clamp-loop/0-opt.wgsl.expected.ir.dxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Access
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/cov-value-tracking-selection-dag-negation-clamp-loop/0-opt.wgsl.expected.ir.fxc.hlsl b/test/tint/vk-gl-cts/graphicsfuzz/cov-value-tracking-selection-dag-negation-clamp-loop/0-opt.wgsl.expected.ir.fxc.hlsl
deleted file mode 100644
index 3f437dc..0000000
--- a/test/tint/vk-gl-cts/graphicsfuzz/cov-value-tracking-selection-dag-negation-clamp-loop/0-opt.wgsl.expected.ir.fxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Access
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/cov-value-tracking-uniform-incident/0-opt.spvasm.expected.ir.dxc.hlsl b/test/tint/vk-gl-cts/graphicsfuzz/cov-value-tracking-uniform-incident/0-opt.spvasm.expected.ir.dxc.hlsl
deleted file mode 100644
index c6e1d96..0000000
--- a/test/tint/vk-gl-cts/graphicsfuzz/cov-value-tracking-uniform-incident/0-opt.spvasm.expected.ir.dxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Construct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/cov-value-tracking-uniform-incident/0-opt.spvasm.expected.ir.fxc.hlsl b/test/tint/vk-gl-cts/graphicsfuzz/cov-value-tracking-uniform-incident/0-opt.spvasm.expected.ir.fxc.hlsl
deleted file mode 100644
index c6e1d96..0000000
--- a/test/tint/vk-gl-cts/graphicsfuzz/cov-value-tracking-uniform-incident/0-opt.spvasm.expected.ir.fxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Construct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/cov-value-tracking-uniform-incident/0-opt.wgsl.expected.ir.dxc.hlsl b/test/tint/vk-gl-cts/graphicsfuzz/cov-value-tracking-uniform-incident/0-opt.wgsl.expected.ir.dxc.hlsl
deleted file mode 100644
index 3f437dc..0000000
--- a/test/tint/vk-gl-cts/graphicsfuzz/cov-value-tracking-uniform-incident/0-opt.wgsl.expected.ir.dxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Access
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/cov-value-tracking-uniform-incident/0-opt.wgsl.expected.ir.fxc.hlsl b/test/tint/vk-gl-cts/graphicsfuzz/cov-value-tracking-uniform-incident/0-opt.wgsl.expected.ir.fxc.hlsl
deleted file mode 100644
index 3f437dc..0000000
--- a/test/tint/vk-gl-cts/graphicsfuzz/cov-value-tracking-uniform-incident/0-opt.wgsl.expected.ir.fxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Access
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/cov-vector-dce-inc-unused-comp/0-opt.spvasm.expected.ir.dxc.hlsl b/test/tint/vk-gl-cts/graphicsfuzz/cov-vector-dce-inc-unused-comp/0-opt.spvasm.expected.ir.dxc.hlsl
deleted file mode 100644
index bdeab23..0000000
--- a/test/tint/vk-gl-cts/graphicsfuzz/cov-vector-dce-inc-unused-comp/0-opt.spvasm.expected.ir.dxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:198 internal compiler error: Switch() matched no cases. Type: tint::core::ir::If
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/cov-vector-dce-inc-unused-comp/0-opt.spvasm.expected.ir.fxc.hlsl b/test/tint/vk-gl-cts/graphicsfuzz/cov-vector-dce-inc-unused-comp/0-opt.spvasm.expected.ir.fxc.hlsl
deleted file mode 100644
index bdeab23..0000000
--- a/test/tint/vk-gl-cts/graphicsfuzz/cov-vector-dce-inc-unused-comp/0-opt.spvasm.expected.ir.fxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:198 internal compiler error: Switch() matched no cases. Type: tint::core::ir::If
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/cov-vector-dce-inc-unused-comp/0-opt.wgsl.expected.ir.dxc.hlsl b/test/tint/vk-gl-cts/graphicsfuzz/cov-vector-dce-inc-unused-comp/0-opt.wgsl.expected.ir.dxc.hlsl
deleted file mode 100644
index 3f437dc..0000000
--- a/test/tint/vk-gl-cts/graphicsfuzz/cov-vector-dce-inc-unused-comp/0-opt.wgsl.expected.ir.dxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Access
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/cov-vector-dce-inc-unused-comp/0-opt.wgsl.expected.ir.fxc.hlsl b/test/tint/vk-gl-cts/graphicsfuzz/cov-vector-dce-inc-unused-comp/0-opt.wgsl.expected.ir.fxc.hlsl
deleted file mode 100644
index 3f437dc..0000000
--- a/test/tint/vk-gl-cts/graphicsfuzz/cov-vector-dce-inc-unused-comp/0-opt.wgsl.expected.ir.fxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Access
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/cov-vector-dce-unused-component/0-opt.spvasm.expected.ir.dxc.hlsl b/test/tint/vk-gl-cts/graphicsfuzz/cov-vector-dce-unused-component/0-opt.spvasm.expected.ir.dxc.hlsl
deleted file mode 100644
index c0935cc..0000000
--- a/test/tint/vk-gl-cts/graphicsfuzz/cov-vector-dce-unused-component/0-opt.spvasm.expected.ir.dxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:198 internal compiler error: Switch() matched no cases. Type: tint::core::ir::StoreVectorElement
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/cov-vector-dce-unused-component/0-opt.spvasm.expected.ir.fxc.hlsl b/test/tint/vk-gl-cts/graphicsfuzz/cov-vector-dce-unused-component/0-opt.spvasm.expected.ir.fxc.hlsl
deleted file mode 100644
index c0935cc..0000000
--- a/test/tint/vk-gl-cts/graphicsfuzz/cov-vector-dce-unused-component/0-opt.spvasm.expected.ir.fxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:198 internal compiler error: Switch() matched no cases. Type: tint::core::ir::StoreVectorElement
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/cov-vector-dce-unused-component/0-opt.wgsl.expected.ir.dxc.hlsl b/test/tint/vk-gl-cts/graphicsfuzz/cov-vector-dce-unused-component/0-opt.wgsl.expected.ir.dxc.hlsl
deleted file mode 100644
index 4a2c666..0000000
--- a/test/tint/vk-gl-cts/graphicsfuzz/cov-vector-dce-unused-component/0-opt.wgsl.expected.ir.dxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::LoadVectorElement
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/cov-vector-dce-unused-component/0-opt.wgsl.expected.ir.fxc.hlsl b/test/tint/vk-gl-cts/graphicsfuzz/cov-vector-dce-unused-component/0-opt.wgsl.expected.ir.fxc.hlsl
deleted file mode 100644
index 4a2c666..0000000
--- a/test/tint/vk-gl-cts/graphicsfuzz/cov-vector-dce-unused-component/0-opt.wgsl.expected.ir.fxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::LoadVectorElement
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/cov-vector-log2-cosh/0-opt.spvasm.expected.ir.dxc.hlsl b/test/tint/vk-gl-cts/graphicsfuzz/cov-vector-log2-cosh/0-opt.spvasm.expected.ir.dxc.hlsl
deleted file mode 100644
index bdeab23..0000000
--- a/test/tint/vk-gl-cts/graphicsfuzz/cov-vector-log2-cosh/0-opt.spvasm.expected.ir.dxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:198 internal compiler error: Switch() matched no cases. Type: tint::core::ir::If
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/cov-vector-log2-cosh/0-opt.spvasm.expected.ir.fxc.hlsl b/test/tint/vk-gl-cts/graphicsfuzz/cov-vector-log2-cosh/0-opt.spvasm.expected.ir.fxc.hlsl
deleted file mode 100644
index bdeab23..0000000
--- a/test/tint/vk-gl-cts/graphicsfuzz/cov-vector-log2-cosh/0-opt.spvasm.expected.ir.fxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:198 internal compiler error: Switch() matched no cases. Type: tint::core::ir::If
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/cov-vector-log2-cosh/0-opt.wgsl.expected.ir.dxc.hlsl b/test/tint/vk-gl-cts/graphicsfuzz/cov-vector-log2-cosh/0-opt.wgsl.expected.ir.dxc.hlsl
deleted file mode 100644
index 4a2c666..0000000
--- a/test/tint/vk-gl-cts/graphicsfuzz/cov-vector-log2-cosh/0-opt.wgsl.expected.ir.dxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::LoadVectorElement
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/cov-vector-log2-cosh/0-opt.wgsl.expected.ir.fxc.hlsl b/test/tint/vk-gl-cts/graphicsfuzz/cov-vector-log2-cosh/0-opt.wgsl.expected.ir.fxc.hlsl
deleted file mode 100644
index 4a2c666..0000000
--- a/test/tint/vk-gl-cts/graphicsfuzz/cov-vector-log2-cosh/0-opt.wgsl.expected.ir.fxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::LoadVectorElement
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/cov-x86-isel-lowering-apfloat-nan-cos-cos/0-opt.spvasm.expected.ir.dxc.hlsl b/test/tint/vk-gl-cts/graphicsfuzz/cov-x86-isel-lowering-apfloat-nan-cos-cos/0-opt.spvasm.expected.ir.dxc.hlsl
deleted file mode 100644
index a249798..0000000
--- a/test/tint/vk-gl-cts/graphicsfuzz/cov-x86-isel-lowering-apfloat-nan-cos-cos/0-opt.spvasm.expected.ir.dxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Bitcast
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/cov-x86-isel-lowering-apfloat-nan-cos-cos/0-opt.spvasm.expected.ir.fxc.hlsl b/test/tint/vk-gl-cts/graphicsfuzz/cov-x86-isel-lowering-apfloat-nan-cos-cos/0-opt.spvasm.expected.ir.fxc.hlsl
deleted file mode 100644
index a249798..0000000
--- a/test/tint/vk-gl-cts/graphicsfuzz/cov-x86-isel-lowering-apfloat-nan-cos-cos/0-opt.spvasm.expected.ir.fxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Bitcast
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/cov-x86-isel-lowering-apfloat-nan-cos-cos/0-opt.wgsl.expected.ir.dxc.hlsl b/test/tint/vk-gl-cts/graphicsfuzz/cov-x86-isel-lowering-apfloat-nan-cos-cos/0-opt.wgsl.expected.ir.dxc.hlsl
deleted file mode 100644
index 3f437dc..0000000
--- a/test/tint/vk-gl-cts/graphicsfuzz/cov-x86-isel-lowering-apfloat-nan-cos-cos/0-opt.wgsl.expected.ir.dxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Access
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/cov-x86-isel-lowering-apfloat-nan-cos-cos/0-opt.wgsl.expected.ir.fxc.hlsl b/test/tint/vk-gl-cts/graphicsfuzz/cov-x86-isel-lowering-apfloat-nan-cos-cos/0-opt.wgsl.expected.ir.fxc.hlsl
deleted file mode 100644
index 3f437dc..0000000
--- a/test/tint/vk-gl-cts/graphicsfuzz/cov-x86-isel-lowering-apfloat-nan-cos-cos/0-opt.wgsl.expected.ir.fxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Access
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/cov-x86-isel-lowering-machine-value-type-uint-to-float/0-opt.spvasm.expected.ir.dxc.hlsl b/test/tint/vk-gl-cts/graphicsfuzz/cov-x86-isel-lowering-machine-value-type-uint-to-float/0-opt.spvasm.expected.ir.dxc.hlsl
deleted file mode 100644
index 3f437dc..0000000
--- a/test/tint/vk-gl-cts/graphicsfuzz/cov-x86-isel-lowering-machine-value-type-uint-to-float/0-opt.spvasm.expected.ir.dxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Access
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/cov-x86-isel-lowering-machine-value-type-uint-to-float/0-opt.spvasm.expected.ir.fxc.hlsl b/test/tint/vk-gl-cts/graphicsfuzz/cov-x86-isel-lowering-machine-value-type-uint-to-float/0-opt.spvasm.expected.ir.fxc.hlsl
deleted file mode 100644
index 3f437dc..0000000
--- a/test/tint/vk-gl-cts/graphicsfuzz/cov-x86-isel-lowering-machine-value-type-uint-to-float/0-opt.spvasm.expected.ir.fxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Access
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/cov-x86-isel-lowering-machine-value-type-uint-to-float/0-opt.wgsl.expected.ir.dxc.hlsl b/test/tint/vk-gl-cts/graphicsfuzz/cov-x86-isel-lowering-machine-value-type-uint-to-float/0-opt.wgsl.expected.ir.dxc.hlsl
deleted file mode 100644
index 3f437dc..0000000
--- a/test/tint/vk-gl-cts/graphicsfuzz/cov-x86-isel-lowering-machine-value-type-uint-to-float/0-opt.wgsl.expected.ir.dxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Access
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/cov-x86-isel-lowering-machine-value-type-uint-to-float/0-opt.wgsl.expected.ir.fxc.hlsl b/test/tint/vk-gl-cts/graphicsfuzz/cov-x86-isel-lowering-machine-value-type-uint-to-float/0-opt.wgsl.expected.ir.fxc.hlsl
deleted file mode 100644
index 3f437dc..0000000
--- a/test/tint/vk-gl-cts/graphicsfuzz/cov-x86-isel-lowering-machine-value-type-uint-to-float/0-opt.wgsl.expected.ir.fxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Access
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/cov-x86-isel-lowering-negative-left-shift/0-opt.spvasm.expected.ir.dxc.hlsl b/test/tint/vk-gl-cts/graphicsfuzz/cov-x86-isel-lowering-negative-left-shift/0-opt.spvasm.expected.ir.dxc.hlsl
deleted file mode 100644
index 3f437dc..0000000
--- a/test/tint/vk-gl-cts/graphicsfuzz/cov-x86-isel-lowering-negative-left-shift/0-opt.spvasm.expected.ir.dxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Access
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/cov-x86-isel-lowering-negative-left-shift/0-opt.spvasm.expected.ir.fxc.hlsl b/test/tint/vk-gl-cts/graphicsfuzz/cov-x86-isel-lowering-negative-left-shift/0-opt.spvasm.expected.ir.fxc.hlsl
index 3f437dc..795f694 100644
--- a/test/tint/vk-gl-cts/graphicsfuzz/cov-x86-isel-lowering-negative-left-shift/0-opt.spvasm.expected.ir.fxc.hlsl
+++ b/test/tint/vk-gl-cts/graphicsfuzz/cov-x86-isel-lowering-negative-left-shift/0-opt.spvasm.expected.ir.fxc.hlsl
@@ -1,9 +1,112 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Access
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct main_out {
+  float4 x_GLF_color_1;
+};
+
+struct main_outputs {
+  float4 main_out_x_GLF_color_1 : SV_Target0;
+};
+
+
+cbuffer cbuffer_x_6 : register(b1) {
+  uint4 x_6[3];
+};
+cbuffer cbuffer_x_9 : register(b0) {
+  uint4 x_9[4];
+};
+static float4 x_GLF_color = (0.0f).xxxx;
+void main_1() {
+  float A[2] = (float[2])0;
+  int i = 0;
+  int j = 0;
+  bool x_101 = false;
+  bool x_102 = false;
+  A[0] = asfloat(x_6[1u].x);
+  A[1] = asfloat(x_6[1u].x);
+  i = asint(x_9[0u].x);
+  {
+    while(true) {
+      int v = i;
+      if ((v < asint(x_9[3u].x))) {
+      } else {
+        break;
+      }
+      j = asint(x_9[0u].x);
+      {
+        while(true) {
+          int v_1 = j;
+          if ((v_1 < asint(x_9[2u].x))) {
+          } else {
+            break;
+          }
+          int x_66 = j;
+          switch(x_66) {
+            case 1:
+            {
+              int x_78 = i;
+              A[x_78] = asfloat(x_6[0u].x);
+              break;
+            }
+            case 0:
+            {
+              if ((-2147483648 < i)) {
+                {
+                  j = (j + 1);
+                }
+                continue;
+              }
+              int x_74 = i;
+              A[x_74] = asfloat(x_6[2u].x);
+              break;
+            }
+            default:
+            {
+              break;
+            }
+          }
+          {
+            j = (j + 1);
+          }
+          continue;
+        }
+      }
+      {
+        i = (i + 1);
+      }
+      continue;
+    }
+  }
+  float v_2 = A[asint(x_9[0u].x)];
+  bool x_92 = (v_2 == asfloat(x_6[0u].x));
+  x_102 = x_92;
+  if (x_92) {
+    float v_3 = A[asint(x_9[1u].x)];
+    x_101 = (v_3 == asfloat(x_6[0u].x));
+    x_102 = x_101;
+  }
+  if (x_102) {
+    float v_4 = float(asint(x_9[1u].x));
+    float v_5 = float(asint(x_9[0u].x));
+    float v_6 = float(asint(x_9[0u].x));
+    x_GLF_color = float4(v_4, v_5, v_6, float(asint(x_9[1u].x)));
+  } else {
+    x_GLF_color = float4((float(asint(x_9[1u].x))).xxxx);
+  }
+}
+
+main_out main_inner() {
+  main_1();
+  main_out v_7 = {x_GLF_color};
+  return v_7;
+}
+
+main_outputs main() {
+  main_out v_8 = main_inner();
+  main_outputs v_9 = {v_8.x_GLF_color_1};
+  return v_9;
+}
+
+FXC validation failure:
+c:\src\dawn\Shader@0x000001B3093B8FA0(55,17-25): error X3708: continue cannot be used in a switch
+
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/cov-x86-isel-lowering-negative-left-shift/0-opt.wgsl.expected.ir.dxc.hlsl b/test/tint/vk-gl-cts/graphicsfuzz/cov-x86-isel-lowering-negative-left-shift/0-opt.wgsl.expected.ir.dxc.hlsl
deleted file mode 100644
index 3f437dc..0000000
--- a/test/tint/vk-gl-cts/graphicsfuzz/cov-x86-isel-lowering-negative-left-shift/0-opt.wgsl.expected.ir.dxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Access
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/cov-x86-isel-lowering-negative-left-shift/0-opt.wgsl.expected.ir.fxc.hlsl b/test/tint/vk-gl-cts/graphicsfuzz/cov-x86-isel-lowering-negative-left-shift/0-opt.wgsl.expected.ir.fxc.hlsl
index 3f437dc..9c011e7 100644
--- a/test/tint/vk-gl-cts/graphicsfuzz/cov-x86-isel-lowering-negative-left-shift/0-opt.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/vk-gl-cts/graphicsfuzz/cov-x86-isel-lowering-negative-left-shift/0-opt.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,135 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Access
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct main_out {
+  float4 x_GLF_color_1;
+};
+
+struct main_outputs {
+  float4 main_out_x_GLF_color_1 : SV_Target0;
+};
+
+
+cbuffer cbuffer_x_6 : register(b1) {
+  uint4 x_6[3];
+};
+cbuffer cbuffer_x_9 : register(b0) {
+  uint4 x_9[4];
+};
+static float4 x_GLF_color = (0.0f).xxxx;
+void main_1() {
+  float A[2] = (float[2])0;
+  int i = 0;
+  int j = 0;
+  bool x_101 = false;
+  bool x_102_phi = false;
+  float x_39 = asfloat(x_6[1u].x);
+  A[0] = x_39;
+  float x_42 = asfloat(x_6[1u].x);
+  A[1] = x_42;
+  int x_45 = asint(x_9[0u].x);
+  i = x_45;
+  {
+    while(true) {
+      int x_50 = i;
+      int x_52 = asint(x_9[3u].x);
+      if ((x_50 < x_52)) {
+      } else {
+        break;
+      }
+      int x_56 = asint(x_9[0u].x);
+      j = x_56;
+      {
+        while(true) {
+          int x_61 = j;
+          int x_63 = asint(x_9[2u].x);
+          if ((x_61 < x_63)) {
+          } else {
+            break;
+          }
+          int x_66 = j;
+          switch(x_66) {
+            case 1:
+            {
+              int x_78 = i;
+              float x_80 = asfloat(x_6[0u].x);
+              A[x_78] = x_80;
+              break;
+            }
+            case 0:
+            {
+              int x_70 = i;
+              if ((-2147483648 < x_70)) {
+                {
+                  int x_82 = j;
+                  j = (x_82 + 1);
+                }
+                continue;
+              }
+              int x_74 = i;
+              float x_76 = asfloat(x_6[2u].x);
+              A[x_74] = x_76;
+              break;
+            }
+            default:
+            {
+              break;
+            }
+          }
+          {
+            int x_82 = j;
+            j = (x_82 + 1);
+          }
+          continue;
+        }
+      }
+      {
+        int x_84 = i;
+        i = (x_84 + 1);
+      }
+      continue;
+    }
+  }
+  int x_87 = asint(x_9[0u].x);
+  float x_89 = A[x_87];
+  float x_91 = asfloat(x_6[0u].x);
+  bool x_92 = (x_89 == x_91);
+  x_102_phi = x_92;
+  if (x_92) {
+    int x_96 = asint(x_9[1u].x);
+    float x_98 = A[x_96];
+    float x_100 = asfloat(x_6[0u].x);
+    x_101 = (x_98 == x_100);
+    x_102_phi = x_101;
+  }
+  bool x_102 = x_102_phi;
+  if (x_102) {
+    int x_107 = asint(x_9[1u].x);
+    int x_110 = asint(x_9[0u].x);
+    int x_113 = asint(x_9[0u].x);
+    int x_116 = asint(x_9[1u].x);
+    float v = float(x_107);
+    float v_1 = float(x_110);
+    float v_2 = float(x_113);
+    x_GLF_color = float4(v, v_1, v_2, float(x_116));
+  } else {
+    int x_120 = asint(x_9[1u].x);
+    float x_121 = float(x_120);
+    x_GLF_color = float4(x_121, x_121, x_121, x_121);
+  }
+}
+
+main_out main_inner() {
+  main_1();
+  main_out v_3 = {x_GLF_color};
+  return v_3;
+}
+
+main_outputs main() {
+  main_out v_4 = main_inner();
+  main_outputs v_5 = {v_4.x_GLF_color_1};
+  return v_5;
+}
+
+FXC validation failure:
+c:\src\dawn\Shader@0x000001D026692E70(64,17-25): error X3708: continue cannot be used in a switch
+
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/cov-x86-isel-lowering-selection-dag-struct-array-clamp-index/0-opt.spvasm.expected.ir.dxc.hlsl b/test/tint/vk-gl-cts/graphicsfuzz/cov-x86-isel-lowering-selection-dag-struct-array-clamp-index/0-opt.spvasm.expected.ir.dxc.hlsl
deleted file mode 100644
index 3f437dc..0000000
--- a/test/tint/vk-gl-cts/graphicsfuzz/cov-x86-isel-lowering-selection-dag-struct-array-clamp-index/0-opt.spvasm.expected.ir.dxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Access
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/cov-x86-isel-lowering-selection-dag-struct-array-clamp-index/0-opt.spvasm.expected.ir.fxc.hlsl b/test/tint/vk-gl-cts/graphicsfuzz/cov-x86-isel-lowering-selection-dag-struct-array-clamp-index/0-opt.spvasm.expected.ir.fxc.hlsl
deleted file mode 100644
index 3f437dc..0000000
--- a/test/tint/vk-gl-cts/graphicsfuzz/cov-x86-isel-lowering-selection-dag-struct-array-clamp-index/0-opt.spvasm.expected.ir.fxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Access
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/cov-x86-isel-lowering-selection-dag-struct-array-clamp-index/0-opt.wgsl.expected.ir.dxc.hlsl b/test/tint/vk-gl-cts/graphicsfuzz/cov-x86-isel-lowering-selection-dag-struct-array-clamp-index/0-opt.wgsl.expected.ir.dxc.hlsl
deleted file mode 100644
index 3f437dc..0000000
--- a/test/tint/vk-gl-cts/graphicsfuzz/cov-x86-isel-lowering-selection-dag-struct-array-clamp-index/0-opt.wgsl.expected.ir.dxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Access
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/cov-x86-isel-lowering-selection-dag-struct-array-clamp-index/0-opt.wgsl.expected.ir.fxc.hlsl b/test/tint/vk-gl-cts/graphicsfuzz/cov-x86-isel-lowering-selection-dag-struct-array-clamp-index/0-opt.wgsl.expected.ir.fxc.hlsl
deleted file mode 100644
index 3f437dc..0000000
--- a/test/tint/vk-gl-cts/graphicsfuzz/cov-x86-isel-lowering-selection-dag-struct-array-clamp-index/0-opt.wgsl.expected.ir.fxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Access
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/create-color-in-do-while-for-loop/0-opt.spvasm.expected.ir.dxc.hlsl b/test/tint/vk-gl-cts/graphicsfuzz/create-color-in-do-while-for-loop/0-opt.spvasm.expected.ir.dxc.hlsl
index 3f437dc..d1ee477 100644
--- a/test/tint/vk-gl-cts/graphicsfuzz/create-color-in-do-while-for-loop/0-opt.spvasm.expected.ir.dxc.hlsl
+++ b/test/tint/vk-gl-cts/graphicsfuzz/create-color-in-do-while-for-loop/0-opt.spvasm.expected.ir.dxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Access
+..\..\src\tint\lang\core\ir\transform\demote_to_helper.cc:208 internal compiler error: TINT_UNREACHABLE unexpected non-core instruction
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/create-color-in-do-while-for-loop/0-opt.spvasm.expected.ir.fxc.hlsl b/test/tint/vk-gl-cts/graphicsfuzz/create-color-in-do-while-for-loop/0-opt.spvasm.expected.ir.fxc.hlsl
index 3f437dc..d1ee477 100644
--- a/test/tint/vk-gl-cts/graphicsfuzz/create-color-in-do-while-for-loop/0-opt.spvasm.expected.ir.fxc.hlsl
+++ b/test/tint/vk-gl-cts/graphicsfuzz/create-color-in-do-while-for-loop/0-opt.spvasm.expected.ir.fxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Access
+..\..\src\tint\lang\core\ir\transform\demote_to_helper.cc:208 internal compiler error: TINT_UNREACHABLE unexpected non-core instruction
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/create-color-in-do-while-for-loop/0-opt.wgsl.expected.ir.dxc.hlsl b/test/tint/vk-gl-cts/graphicsfuzz/create-color-in-do-while-for-loop/0-opt.wgsl.expected.ir.dxc.hlsl
index 3f437dc..d1ee477 100644
--- a/test/tint/vk-gl-cts/graphicsfuzz/create-color-in-do-while-for-loop/0-opt.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/vk-gl-cts/graphicsfuzz/create-color-in-do-while-for-loop/0-opt.wgsl.expected.ir.dxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Access
+..\..\src\tint\lang\core\ir\transform\demote_to_helper.cc:208 internal compiler error: TINT_UNREACHABLE unexpected non-core instruction
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/create-color-in-do-while-for-loop/0-opt.wgsl.expected.ir.fxc.hlsl b/test/tint/vk-gl-cts/graphicsfuzz/create-color-in-do-while-for-loop/0-opt.wgsl.expected.ir.fxc.hlsl
index 3f437dc..d1ee477 100644
--- a/test/tint/vk-gl-cts/graphicsfuzz/create-color-in-do-while-for-loop/0-opt.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/vk-gl-cts/graphicsfuzz/create-color-in-do-while-for-loop/0-opt.wgsl.expected.ir.fxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Access
+..\..\src\tint\lang\core\ir\transform\demote_to_helper.cc:208 internal compiler error: TINT_UNREACHABLE unexpected non-core instruction
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/dead-barriers-in-loops/0-opt.spvasm.expected.ir.dxc.hlsl b/test/tint/vk-gl-cts/graphicsfuzz/dead-barriers-in-loops/0-opt.spvasm.expected.ir.dxc.hlsl
deleted file mode 100644
index 3f437dc..0000000
--- a/test/tint/vk-gl-cts/graphicsfuzz/dead-barriers-in-loops/0-opt.spvasm.expected.ir.dxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Access
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/dead-barriers-in-loops/0-opt.spvasm.expected.ir.fxc.hlsl b/test/tint/vk-gl-cts/graphicsfuzz/dead-barriers-in-loops/0-opt.spvasm.expected.ir.fxc.hlsl
deleted file mode 100644
index 3f437dc..0000000
--- a/test/tint/vk-gl-cts/graphicsfuzz/dead-barriers-in-loops/0-opt.spvasm.expected.ir.fxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Access
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/dead-barriers-in-loops/0-opt.wgsl.expected.ir.dxc.hlsl b/test/tint/vk-gl-cts/graphicsfuzz/dead-barriers-in-loops/0-opt.wgsl.expected.ir.dxc.hlsl
deleted file mode 100644
index 3f437dc..0000000
--- a/test/tint/vk-gl-cts/graphicsfuzz/dead-barriers-in-loops/0-opt.wgsl.expected.ir.dxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Access
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/dead-barriers-in-loops/0-opt.wgsl.expected.ir.fxc.hlsl b/test/tint/vk-gl-cts/graphicsfuzz/dead-barriers-in-loops/0-opt.wgsl.expected.ir.fxc.hlsl
deleted file mode 100644
index 3f437dc..0000000
--- a/test/tint/vk-gl-cts/graphicsfuzz/dead-barriers-in-loops/0-opt.wgsl.expected.ir.fxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Access
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/disc-and-add-in-func-in-loop/0-opt.spvasm.expected.ir.dxc.hlsl b/test/tint/vk-gl-cts/graphicsfuzz/disc-and-add-in-func-in-loop/0-opt.spvasm.expected.ir.dxc.hlsl
index 0da5df3..d1ee477 100644
--- a/test/tint/vk-gl-cts/graphicsfuzz/disc-and-add-in-func-in-loop/0-opt.spvasm.expected.ir.dxc.hlsl
+++ b/test/tint/vk-gl-cts/graphicsfuzz/disc-and-add-in-func-in-loop/0-opt.spvasm.expected.ir.dxc.hlsl
@@ -1,3 +1,9 @@
 SKIP: FAILED
 
-signal: segmentation fault
\ No newline at end of file
+..\..\src\tint\lang\core\ir\transform\demote_to_helper.cc:208 internal compiler error: TINT_UNREACHABLE unexpected non-core instruction
+********************************************************************
+*  The tint shader compiler has encountered an unexpected error.   *
+*                                                                  *
+*  Please help us fix this issue by submitting a bug report at     *
+*  crbug.com/tint with the source program that triggered the bug.  *
+********************************************************************
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/disc-and-add-in-func-in-loop/0-opt.spvasm.expected.ir.fxc.hlsl b/test/tint/vk-gl-cts/graphicsfuzz/disc-and-add-in-func-in-loop/0-opt.spvasm.expected.ir.fxc.hlsl
index 0da5df3..d1ee477 100644
--- a/test/tint/vk-gl-cts/graphicsfuzz/disc-and-add-in-func-in-loop/0-opt.spvasm.expected.ir.fxc.hlsl
+++ b/test/tint/vk-gl-cts/graphicsfuzz/disc-and-add-in-func-in-loop/0-opt.spvasm.expected.ir.fxc.hlsl
@@ -1,3 +1,9 @@
 SKIP: FAILED
 
-signal: segmentation fault
\ No newline at end of file
+..\..\src\tint\lang\core\ir\transform\demote_to_helper.cc:208 internal compiler error: TINT_UNREACHABLE unexpected non-core instruction
+********************************************************************
+*  The tint shader compiler has encountered an unexpected error.   *
+*                                                                  *
+*  Please help us fix this issue by submitting a bug report at     *
+*  crbug.com/tint with the source program that triggered the bug.  *
+********************************************************************
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/disc-and-add-in-func-in-loop/0-opt.wgsl.expected.ir.dxc.hlsl b/test/tint/vk-gl-cts/graphicsfuzz/disc-and-add-in-func-in-loop/0-opt.wgsl.expected.ir.dxc.hlsl
index 0da5df3..d1ee477 100644
--- a/test/tint/vk-gl-cts/graphicsfuzz/disc-and-add-in-func-in-loop/0-opt.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/vk-gl-cts/graphicsfuzz/disc-and-add-in-func-in-loop/0-opt.wgsl.expected.ir.dxc.hlsl
@@ -1,3 +1,9 @@
 SKIP: FAILED
 
-signal: segmentation fault
\ No newline at end of file
+..\..\src\tint\lang\core\ir\transform\demote_to_helper.cc:208 internal compiler error: TINT_UNREACHABLE unexpected non-core instruction
+********************************************************************
+*  The tint shader compiler has encountered an unexpected error.   *
+*                                                                  *
+*  Please help us fix this issue by submitting a bug report at     *
+*  crbug.com/tint with the source program that triggered the bug.  *
+********************************************************************
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/disc-and-add-in-func-in-loop/0-opt.wgsl.expected.ir.fxc.hlsl b/test/tint/vk-gl-cts/graphicsfuzz/disc-and-add-in-func-in-loop/0-opt.wgsl.expected.ir.fxc.hlsl
index 0da5df3..d1ee477 100644
--- a/test/tint/vk-gl-cts/graphicsfuzz/disc-and-add-in-func-in-loop/0-opt.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/vk-gl-cts/graphicsfuzz/disc-and-add-in-func-in-loop/0-opt.wgsl.expected.ir.fxc.hlsl
@@ -1,3 +1,9 @@
 SKIP: FAILED
 
-signal: segmentation fault
\ No newline at end of file
+..\..\src\tint\lang\core\ir\transform\demote_to_helper.cc:208 internal compiler error: TINT_UNREACHABLE unexpected non-core instruction
+********************************************************************
+*  The tint shader compiler has encountered an unexpected error.   *
+*                                                                  *
+*  Please help us fix this issue by submitting a bug report at     *
+*  crbug.com/tint with the source program that triggered the bug.  *
+********************************************************************
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/discard-continue-return/0-opt.spvasm.expected.ir.dxc.hlsl b/test/tint/vk-gl-cts/graphicsfuzz/discard-continue-return/0-opt.spvasm.expected.ir.dxc.hlsl
index adbb0c1..d1ee477 100644
--- a/test/tint/vk-gl-cts/graphicsfuzz/discard-continue-return/0-opt.spvasm.expected.ir.dxc.hlsl
+++ b/test/tint/vk-gl-cts/graphicsfuzz/discard-continue-return/0-opt.spvasm.expected.ir.dxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:198 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Loop
+..\..\src\tint\lang\core\ir\transform\demote_to_helper.cc:208 internal compiler error: TINT_UNREACHABLE unexpected non-core instruction
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/discard-continue-return/0-opt.spvasm.expected.ir.fxc.hlsl b/test/tint/vk-gl-cts/graphicsfuzz/discard-continue-return/0-opt.spvasm.expected.ir.fxc.hlsl
index adbb0c1..d1ee477 100644
--- a/test/tint/vk-gl-cts/graphicsfuzz/discard-continue-return/0-opt.spvasm.expected.ir.fxc.hlsl
+++ b/test/tint/vk-gl-cts/graphicsfuzz/discard-continue-return/0-opt.spvasm.expected.ir.fxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:198 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Loop
+..\..\src\tint\lang\core\ir\transform\demote_to_helper.cc:208 internal compiler error: TINT_UNREACHABLE unexpected non-core instruction
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/discard-continue-return/0-opt.wgsl.expected.ir.dxc.hlsl b/test/tint/vk-gl-cts/graphicsfuzz/discard-continue-return/0-opt.wgsl.expected.ir.dxc.hlsl
index adbb0c1..d1ee477 100644
--- a/test/tint/vk-gl-cts/graphicsfuzz/discard-continue-return/0-opt.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/vk-gl-cts/graphicsfuzz/discard-continue-return/0-opt.wgsl.expected.ir.dxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:198 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Loop
+..\..\src\tint\lang\core\ir\transform\demote_to_helper.cc:208 internal compiler error: TINT_UNREACHABLE unexpected non-core instruction
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/discard-continue-return/0-opt.wgsl.expected.ir.fxc.hlsl b/test/tint/vk-gl-cts/graphicsfuzz/discard-continue-return/0-opt.wgsl.expected.ir.fxc.hlsl
index adbb0c1..d1ee477 100644
--- a/test/tint/vk-gl-cts/graphicsfuzz/discard-continue-return/0-opt.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/vk-gl-cts/graphicsfuzz/discard-continue-return/0-opt.wgsl.expected.ir.fxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:198 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Loop
+..\..\src\tint\lang\core\ir\transform\demote_to_helper.cc:208 internal compiler error: TINT_UNREACHABLE unexpected non-core instruction
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/discard-in-array-manipulating-loop/0-opt.spvasm.expected.ir.dxc.hlsl b/test/tint/vk-gl-cts/graphicsfuzz/discard-in-array-manipulating-loop/0-opt.spvasm.expected.ir.dxc.hlsl
deleted file mode 100644
index adbb0c1..0000000
--- a/test/tint/vk-gl-cts/graphicsfuzz/discard-in-array-manipulating-loop/0-opt.spvasm.expected.ir.dxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:198 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Loop
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/discard-in-array-manipulating-loop/0-opt.spvasm.expected.ir.fxc.hlsl b/test/tint/vk-gl-cts/graphicsfuzz/discard-in-array-manipulating-loop/0-opt.spvasm.expected.ir.fxc.hlsl
deleted file mode 100644
index adbb0c1..0000000
--- a/test/tint/vk-gl-cts/graphicsfuzz/discard-in-array-manipulating-loop/0-opt.spvasm.expected.ir.fxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:198 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Loop
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/discard-in-array-manipulating-loop/0-opt.wgsl.expected.ir.dxc.hlsl b/test/tint/vk-gl-cts/graphicsfuzz/discard-in-array-manipulating-loop/0-opt.wgsl.expected.ir.dxc.hlsl
deleted file mode 100644
index adbb0c1..0000000
--- a/test/tint/vk-gl-cts/graphicsfuzz/discard-in-array-manipulating-loop/0-opt.wgsl.expected.ir.dxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:198 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Loop
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/discard-in-array-manipulating-loop/0-opt.wgsl.expected.ir.fxc.hlsl b/test/tint/vk-gl-cts/graphicsfuzz/discard-in-array-manipulating-loop/0-opt.wgsl.expected.ir.fxc.hlsl
deleted file mode 100644
index adbb0c1..0000000
--- a/test/tint/vk-gl-cts/graphicsfuzz/discard-in-array-manipulating-loop/0-opt.wgsl.expected.ir.fxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:198 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Loop
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/discard-in-loop-in-function/0-opt.spvasm.expected.ir.dxc.hlsl b/test/tint/vk-gl-cts/graphicsfuzz/discard-in-loop-in-function/0-opt.spvasm.expected.ir.dxc.hlsl
index adbb0c1..d1ee477 100644
--- a/test/tint/vk-gl-cts/graphicsfuzz/discard-in-loop-in-function/0-opt.spvasm.expected.ir.dxc.hlsl
+++ b/test/tint/vk-gl-cts/graphicsfuzz/discard-in-loop-in-function/0-opt.spvasm.expected.ir.dxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:198 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Loop
+..\..\src\tint\lang\core\ir\transform\demote_to_helper.cc:208 internal compiler error: TINT_UNREACHABLE unexpected non-core instruction
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/discard-in-loop-in-function/0-opt.spvasm.expected.ir.fxc.hlsl b/test/tint/vk-gl-cts/graphicsfuzz/discard-in-loop-in-function/0-opt.spvasm.expected.ir.fxc.hlsl
index adbb0c1..d1ee477 100644
--- a/test/tint/vk-gl-cts/graphicsfuzz/discard-in-loop-in-function/0-opt.spvasm.expected.ir.fxc.hlsl
+++ b/test/tint/vk-gl-cts/graphicsfuzz/discard-in-loop-in-function/0-opt.spvasm.expected.ir.fxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:198 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Loop
+..\..\src\tint\lang\core\ir\transform\demote_to_helper.cc:208 internal compiler error: TINT_UNREACHABLE unexpected non-core instruction
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/discard-in-loop-in-function/0-opt.wgsl.expected.ir.dxc.hlsl b/test/tint/vk-gl-cts/graphicsfuzz/discard-in-loop-in-function/0-opt.wgsl.expected.ir.dxc.hlsl
index adbb0c1..d1ee477 100644
--- a/test/tint/vk-gl-cts/graphicsfuzz/discard-in-loop-in-function/0-opt.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/vk-gl-cts/graphicsfuzz/discard-in-loop-in-function/0-opt.wgsl.expected.ir.dxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:198 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Loop
+..\..\src\tint\lang\core\ir\transform\demote_to_helper.cc:208 internal compiler error: TINT_UNREACHABLE unexpected non-core instruction
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/discard-in-loop-in-function/0-opt.wgsl.expected.ir.fxc.hlsl b/test/tint/vk-gl-cts/graphicsfuzz/discard-in-loop-in-function/0-opt.wgsl.expected.ir.fxc.hlsl
index adbb0c1..d1ee477 100644
--- a/test/tint/vk-gl-cts/graphicsfuzz/discard-in-loop-in-function/0-opt.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/vk-gl-cts/graphicsfuzz/discard-in-loop-in-function/0-opt.wgsl.expected.ir.fxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:198 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Loop
+..\..\src\tint\lang\core\ir\transform\demote_to_helper.cc:208 internal compiler error: TINT_UNREACHABLE unexpected non-core instruction
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/discard-in-loop/0-opt.spvasm.expected.ir.dxc.hlsl b/test/tint/vk-gl-cts/graphicsfuzz/discard-in-loop/0-opt.spvasm.expected.ir.dxc.hlsl
deleted file mode 100644
index 0da5df3..0000000
--- a/test/tint/vk-gl-cts/graphicsfuzz/discard-in-loop/0-opt.spvasm.expected.ir.dxc.hlsl
+++ /dev/null
@@ -1,3 +0,0 @@
-SKIP: FAILED
-
-signal: segmentation fault
\ No newline at end of file
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/discard-in-loop/0-opt.spvasm.expected.ir.fxc.hlsl b/test/tint/vk-gl-cts/graphicsfuzz/discard-in-loop/0-opt.spvasm.expected.ir.fxc.hlsl
deleted file mode 100644
index 0da5df3..0000000
--- a/test/tint/vk-gl-cts/graphicsfuzz/discard-in-loop/0-opt.spvasm.expected.ir.fxc.hlsl
+++ /dev/null
@@ -1,3 +0,0 @@
-SKIP: FAILED
-
-signal: segmentation fault
\ No newline at end of file
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/discard-in-loop/0-opt.wgsl.expected.ir.dxc.hlsl b/test/tint/vk-gl-cts/graphicsfuzz/discard-in-loop/0-opt.wgsl.expected.ir.dxc.hlsl
deleted file mode 100644
index 0da5df3..0000000
--- a/test/tint/vk-gl-cts/graphicsfuzz/discard-in-loop/0-opt.wgsl.expected.ir.dxc.hlsl
+++ /dev/null
@@ -1,3 +0,0 @@
-SKIP: FAILED
-
-signal: segmentation fault
\ No newline at end of file
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/discard-in-loop/0-opt.wgsl.expected.ir.fxc.hlsl b/test/tint/vk-gl-cts/graphicsfuzz/discard-in-loop/0-opt.wgsl.expected.ir.fxc.hlsl
deleted file mode 100644
index 0da5df3..0000000
--- a/test/tint/vk-gl-cts/graphicsfuzz/discard-in-loop/0-opt.wgsl.expected.ir.fxc.hlsl
+++ /dev/null
@@ -1,3 +0,0 @@
-SKIP: FAILED
-
-signal: segmentation fault
\ No newline at end of file
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/discards-in-control-flow/0-opt.spvasm.expected.ir.dxc.hlsl b/test/tint/vk-gl-cts/graphicsfuzz/discards-in-control-flow/0-opt.spvasm.expected.ir.dxc.hlsl
deleted file mode 100644
index bdeab23..0000000
--- a/test/tint/vk-gl-cts/graphicsfuzz/discards-in-control-flow/0-opt.spvasm.expected.ir.dxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:198 internal compiler error: Switch() matched no cases. Type: tint::core::ir::If
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/discards-in-control-flow/0-opt.spvasm.expected.ir.fxc.hlsl b/test/tint/vk-gl-cts/graphicsfuzz/discards-in-control-flow/0-opt.spvasm.expected.ir.fxc.hlsl
deleted file mode 100644
index bdeab23..0000000
--- a/test/tint/vk-gl-cts/graphicsfuzz/discards-in-control-flow/0-opt.spvasm.expected.ir.fxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:198 internal compiler error: Switch() matched no cases. Type: tint::core::ir::If
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/discards-in-control-flow/0-opt.wgsl.expected.ir.dxc.hlsl b/test/tint/vk-gl-cts/graphicsfuzz/discards-in-control-flow/0-opt.wgsl.expected.ir.dxc.hlsl
deleted file mode 100644
index 4a2c666..0000000
--- a/test/tint/vk-gl-cts/graphicsfuzz/discards-in-control-flow/0-opt.wgsl.expected.ir.dxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::LoadVectorElement
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/discards-in-control-flow/0-opt.wgsl.expected.ir.fxc.hlsl b/test/tint/vk-gl-cts/graphicsfuzz/discards-in-control-flow/0-opt.wgsl.expected.ir.fxc.hlsl
deleted file mode 100644
index 4a2c666..0000000
--- a/test/tint/vk-gl-cts/graphicsfuzz/discards-in-control-flow/0-opt.wgsl.expected.ir.fxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::LoadVectorElement
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/do-while-false-loops/0-opt.spvasm.expected.ir.dxc.hlsl b/test/tint/vk-gl-cts/graphicsfuzz/do-while-false-loops/0-opt.spvasm.expected.ir.dxc.hlsl
deleted file mode 100644
index adbb0c1..0000000
--- a/test/tint/vk-gl-cts/graphicsfuzz/do-while-false-loops/0-opt.spvasm.expected.ir.dxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:198 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Loop
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/do-while-false-loops/0-opt.spvasm.expected.ir.fxc.hlsl b/test/tint/vk-gl-cts/graphicsfuzz/do-while-false-loops/0-opt.spvasm.expected.ir.fxc.hlsl
deleted file mode 100644
index adbb0c1..0000000
--- a/test/tint/vk-gl-cts/graphicsfuzz/do-while-false-loops/0-opt.spvasm.expected.ir.fxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:198 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Loop
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/do-while-false-loops/0-opt.wgsl.expected.ir.dxc.hlsl b/test/tint/vk-gl-cts/graphicsfuzz/do-while-false-loops/0-opt.wgsl.expected.ir.dxc.hlsl
deleted file mode 100644
index adbb0c1..0000000
--- a/test/tint/vk-gl-cts/graphicsfuzz/do-while-false-loops/0-opt.wgsl.expected.ir.dxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:198 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Loop
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/do-while-false-loops/0-opt.wgsl.expected.ir.fxc.hlsl b/test/tint/vk-gl-cts/graphicsfuzz/do-while-false-loops/0-opt.wgsl.expected.ir.fxc.hlsl
deleted file mode 100644
index adbb0c1..0000000
--- a/test/tint/vk-gl-cts/graphicsfuzz/do-while-false-loops/0-opt.wgsl.expected.ir.fxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:198 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Loop
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/do-while-if-return/0-opt.spvasm.expected.ir.dxc.hlsl b/test/tint/vk-gl-cts/graphicsfuzz/do-while-if-return/0-opt.spvasm.expected.ir.dxc.hlsl
deleted file mode 100644
index adbb0c1..0000000
--- a/test/tint/vk-gl-cts/graphicsfuzz/do-while-if-return/0-opt.spvasm.expected.ir.dxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:198 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Loop
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/do-while-if-return/0-opt.spvasm.expected.ir.fxc.hlsl b/test/tint/vk-gl-cts/graphicsfuzz/do-while-if-return/0-opt.spvasm.expected.ir.fxc.hlsl
deleted file mode 100644
index adbb0c1..0000000
--- a/test/tint/vk-gl-cts/graphicsfuzz/do-while-if-return/0-opt.spvasm.expected.ir.fxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:198 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Loop
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/do-while-if-return/0-opt.wgsl.expected.ir.dxc.hlsl b/test/tint/vk-gl-cts/graphicsfuzz/do-while-if-return/0-opt.wgsl.expected.ir.dxc.hlsl
deleted file mode 100644
index adbb0c1..0000000
--- a/test/tint/vk-gl-cts/graphicsfuzz/do-while-if-return/0-opt.wgsl.expected.ir.dxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:198 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Loop
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/do-while-if-return/0-opt.wgsl.expected.ir.fxc.hlsl b/test/tint/vk-gl-cts/graphicsfuzz/do-while-if-return/0-opt.wgsl.expected.ir.fxc.hlsl
deleted file mode 100644
index adbb0c1..0000000
--- a/test/tint/vk-gl-cts/graphicsfuzz/do-while-if-return/0-opt.wgsl.expected.ir.fxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:198 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Loop
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/do-while-loop-in-conditionals/0-opt.spvasm.expected.ir.dxc.hlsl b/test/tint/vk-gl-cts/graphicsfuzz/do-while-loop-in-conditionals/0-opt.spvasm.expected.ir.dxc.hlsl
deleted file mode 100644
index bdeab23..0000000
--- a/test/tint/vk-gl-cts/graphicsfuzz/do-while-loop-in-conditionals/0-opt.spvasm.expected.ir.dxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:198 internal compiler error: Switch() matched no cases. Type: tint::core::ir::If
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/do-while-loop-in-conditionals/0-opt.spvasm.expected.ir.fxc.hlsl b/test/tint/vk-gl-cts/graphicsfuzz/do-while-loop-in-conditionals/0-opt.spvasm.expected.ir.fxc.hlsl
deleted file mode 100644
index bdeab23..0000000
--- a/test/tint/vk-gl-cts/graphicsfuzz/do-while-loop-in-conditionals/0-opt.spvasm.expected.ir.fxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:198 internal compiler error: Switch() matched no cases. Type: tint::core::ir::If
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/do-while-loop-in-conditionals/0-opt.wgsl.expected.ir.dxc.hlsl b/test/tint/vk-gl-cts/graphicsfuzz/do-while-loop-in-conditionals/0-opt.wgsl.expected.ir.dxc.hlsl
deleted file mode 100644
index bdeab23..0000000
--- a/test/tint/vk-gl-cts/graphicsfuzz/do-while-loop-in-conditionals/0-opt.wgsl.expected.ir.dxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:198 internal compiler error: Switch() matched no cases. Type: tint::core::ir::If
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/do-while-loop-in-conditionals/0-opt.wgsl.expected.ir.fxc.hlsl b/test/tint/vk-gl-cts/graphicsfuzz/do-while-loop-in-conditionals/0-opt.wgsl.expected.ir.fxc.hlsl
deleted file mode 100644
index bdeab23..0000000
--- a/test/tint/vk-gl-cts/graphicsfuzz/do-while-loop-in-conditionals/0-opt.wgsl.expected.ir.fxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:198 internal compiler error: Switch() matched no cases. Type: tint::core::ir::If
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/early-return-and-barrier/0.spvasm.expected.ir.dxc.hlsl b/test/tint/vk-gl-cts/graphicsfuzz/early-return-and-barrier/0.spvasm.expected.ir.dxc.hlsl
deleted file mode 100644
index 3f437dc..0000000
--- a/test/tint/vk-gl-cts/graphicsfuzz/early-return-and-barrier/0.spvasm.expected.ir.dxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Access
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/early-return-and-barrier/0.spvasm.expected.ir.fxc.hlsl b/test/tint/vk-gl-cts/graphicsfuzz/early-return-and-barrier/0.spvasm.expected.ir.fxc.hlsl
deleted file mode 100644
index 3f437dc..0000000
--- a/test/tint/vk-gl-cts/graphicsfuzz/early-return-and-barrier/0.spvasm.expected.ir.fxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Access
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/early-return-and-barrier/0.wgsl.expected.ir.dxc.hlsl b/test/tint/vk-gl-cts/graphicsfuzz/early-return-and-barrier/0.wgsl.expected.ir.dxc.hlsl
deleted file mode 100644
index 3f437dc..0000000
--- a/test/tint/vk-gl-cts/graphicsfuzz/early-return-and-barrier/0.wgsl.expected.ir.dxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Access
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/early-return-and-barrier/0.wgsl.expected.ir.fxc.hlsl b/test/tint/vk-gl-cts/graphicsfuzz/early-return-and-barrier/0.wgsl.expected.ir.fxc.hlsl
deleted file mode 100644
index 3f437dc..0000000
--- a/test/tint/vk-gl-cts/graphicsfuzz/early-return-and-barrier/0.wgsl.expected.ir.fxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Access
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/flag-always-false-if/0-opt.spvasm.expected.ir.dxc.hlsl b/test/tint/vk-gl-cts/graphicsfuzz/flag-always-false-if/0-opt.spvasm.expected.ir.dxc.hlsl
deleted file mode 100644
index 4a2c666..0000000
--- a/test/tint/vk-gl-cts/graphicsfuzz/flag-always-false-if/0-opt.spvasm.expected.ir.dxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::LoadVectorElement
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/flag-always-false-if/0-opt.spvasm.expected.ir.fxc.hlsl b/test/tint/vk-gl-cts/graphicsfuzz/flag-always-false-if/0-opt.spvasm.expected.ir.fxc.hlsl
deleted file mode 100644
index 4a2c666..0000000
--- a/test/tint/vk-gl-cts/graphicsfuzz/flag-always-false-if/0-opt.spvasm.expected.ir.fxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::LoadVectorElement
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/flag-always-false-if/0-opt.wgsl.expected.ir.dxc.hlsl b/test/tint/vk-gl-cts/graphicsfuzz/flag-always-false-if/0-opt.wgsl.expected.ir.dxc.hlsl
deleted file mode 100644
index 4a2c666..0000000
--- a/test/tint/vk-gl-cts/graphicsfuzz/flag-always-false-if/0-opt.wgsl.expected.ir.dxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::LoadVectorElement
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/flag-always-false-if/0-opt.wgsl.expected.ir.fxc.hlsl b/test/tint/vk-gl-cts/graphicsfuzz/flag-always-false-if/0-opt.wgsl.expected.ir.fxc.hlsl
deleted file mode 100644
index 4a2c666..0000000
--- a/test/tint/vk-gl-cts/graphicsfuzz/flag-always-false-if/0-opt.wgsl.expected.ir.fxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::LoadVectorElement
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/for-condition-always-false/0-opt.spvasm.expected.ir.dxc.hlsl b/test/tint/vk-gl-cts/graphicsfuzz/for-condition-always-false/0-opt.spvasm.expected.ir.dxc.hlsl
deleted file mode 100644
index 4a2c666..0000000
--- a/test/tint/vk-gl-cts/graphicsfuzz/for-condition-always-false/0-opt.spvasm.expected.ir.dxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::LoadVectorElement
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/for-condition-always-false/0-opt.spvasm.expected.ir.fxc.hlsl b/test/tint/vk-gl-cts/graphicsfuzz/for-condition-always-false/0-opt.spvasm.expected.ir.fxc.hlsl
deleted file mode 100644
index 4a2c666..0000000
--- a/test/tint/vk-gl-cts/graphicsfuzz/for-condition-always-false/0-opt.spvasm.expected.ir.fxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::LoadVectorElement
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/for-condition-always-false/0-opt.wgsl.expected.ir.dxc.hlsl b/test/tint/vk-gl-cts/graphicsfuzz/for-condition-always-false/0-opt.wgsl.expected.ir.dxc.hlsl
deleted file mode 100644
index 4a2c666..0000000
--- a/test/tint/vk-gl-cts/graphicsfuzz/for-condition-always-false/0-opt.wgsl.expected.ir.dxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::LoadVectorElement
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/for-condition-always-false/0-opt.wgsl.expected.ir.fxc.hlsl b/test/tint/vk-gl-cts/graphicsfuzz/for-condition-always-false/0-opt.wgsl.expected.ir.fxc.hlsl
deleted file mode 100644
index 4a2c666..0000000
--- a/test/tint/vk-gl-cts/graphicsfuzz/for-condition-always-false/0-opt.wgsl.expected.ir.fxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::LoadVectorElement
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/for-loop-with-return/0.spvasm.expected.ir.dxc.hlsl b/test/tint/vk-gl-cts/graphicsfuzz/for-loop-with-return/0.spvasm.expected.ir.dxc.hlsl
deleted file mode 100644
index adbb0c1..0000000
--- a/test/tint/vk-gl-cts/graphicsfuzz/for-loop-with-return/0.spvasm.expected.ir.dxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:198 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Loop
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/for-loop-with-return/0.spvasm.expected.ir.fxc.hlsl b/test/tint/vk-gl-cts/graphicsfuzz/for-loop-with-return/0.spvasm.expected.ir.fxc.hlsl
deleted file mode 100644
index adbb0c1..0000000
--- a/test/tint/vk-gl-cts/graphicsfuzz/for-loop-with-return/0.spvasm.expected.ir.fxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:198 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Loop
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/for-loop-with-return/0.wgsl.expected.ir.dxc.hlsl b/test/tint/vk-gl-cts/graphicsfuzz/for-loop-with-return/0.wgsl.expected.ir.dxc.hlsl
deleted file mode 100644
index adbb0c1..0000000
--- a/test/tint/vk-gl-cts/graphicsfuzz/for-loop-with-return/0.wgsl.expected.ir.dxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:198 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Loop
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/for-loop-with-return/0.wgsl.expected.ir.fxc.hlsl b/test/tint/vk-gl-cts/graphicsfuzz/for-loop-with-return/0.wgsl.expected.ir.fxc.hlsl
deleted file mode 100644
index adbb0c1..0000000
--- a/test/tint/vk-gl-cts/graphicsfuzz/for-loop-with-return/0.wgsl.expected.ir.fxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:198 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Loop
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/for-with-ifs-and-return/0-opt.spvasm.expected.ir.dxc.hlsl b/test/tint/vk-gl-cts/graphicsfuzz/for-with-ifs-and-return/0-opt.spvasm.expected.ir.dxc.hlsl
deleted file mode 100644
index adbb0c1..0000000
--- a/test/tint/vk-gl-cts/graphicsfuzz/for-with-ifs-and-return/0-opt.spvasm.expected.ir.dxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:198 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Loop
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/for-with-ifs-and-return/0-opt.spvasm.expected.ir.fxc.hlsl b/test/tint/vk-gl-cts/graphicsfuzz/for-with-ifs-and-return/0-opt.spvasm.expected.ir.fxc.hlsl
deleted file mode 100644
index adbb0c1..0000000
--- a/test/tint/vk-gl-cts/graphicsfuzz/for-with-ifs-and-return/0-opt.spvasm.expected.ir.fxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:198 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Loop
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/for-with-ifs-and-return/0-opt.wgsl.expected.ir.dxc.hlsl b/test/tint/vk-gl-cts/graphicsfuzz/for-with-ifs-and-return/0-opt.wgsl.expected.ir.dxc.hlsl
deleted file mode 100644
index adbb0c1..0000000
--- a/test/tint/vk-gl-cts/graphicsfuzz/for-with-ifs-and-return/0-opt.wgsl.expected.ir.dxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:198 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Loop
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/for-with-ifs-and-return/0-opt.wgsl.expected.ir.fxc.hlsl b/test/tint/vk-gl-cts/graphicsfuzz/for-with-ifs-and-return/0-opt.wgsl.expected.ir.fxc.hlsl
deleted file mode 100644
index adbb0c1..0000000
--- a/test/tint/vk-gl-cts/graphicsfuzz/for-with-ifs-and-return/0-opt.wgsl.expected.ir.fxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:198 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Loop
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/frag-coord-func-call-and-ifs/0-opt.spvasm.expected.ir.dxc.hlsl b/test/tint/vk-gl-cts/graphicsfuzz/frag-coord-func-call-and-ifs/0-opt.spvasm.expected.ir.dxc.hlsl
deleted file mode 100644
index ba8c686..0000000
--- a/test/tint/vk-gl-cts/graphicsfuzz/frag-coord-func-call-and-ifs/0-opt.spvasm.expected.ir.dxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Swizzle
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/frag-coord-func-call-and-ifs/0-opt.spvasm.expected.ir.fxc.hlsl b/test/tint/vk-gl-cts/graphicsfuzz/frag-coord-func-call-and-ifs/0-opt.spvasm.expected.ir.fxc.hlsl
deleted file mode 100644
index ba8c686..0000000
--- a/test/tint/vk-gl-cts/graphicsfuzz/frag-coord-func-call-and-ifs/0-opt.spvasm.expected.ir.fxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Swizzle
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/frag-coord-func-call-and-ifs/0-opt.wgsl.expected.ir.dxc.hlsl b/test/tint/vk-gl-cts/graphicsfuzz/frag-coord-func-call-and-ifs/0-opt.wgsl.expected.ir.dxc.hlsl
deleted file mode 100644
index c6e1d96..0000000
--- a/test/tint/vk-gl-cts/graphicsfuzz/frag-coord-func-call-and-ifs/0-opt.wgsl.expected.ir.dxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Construct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/frag-coord-func-call-and-ifs/0-opt.wgsl.expected.ir.fxc.hlsl b/test/tint/vk-gl-cts/graphicsfuzz/frag-coord-func-call-and-ifs/0-opt.wgsl.expected.ir.fxc.hlsl
deleted file mode 100644
index c6e1d96..0000000
--- a/test/tint/vk-gl-cts/graphicsfuzz/frag-coord-func-call-and-ifs/0-opt.wgsl.expected.ir.fxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Construct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/function-with-uniform-return/0-opt.spvasm.expected.ir.dxc.hlsl b/test/tint/vk-gl-cts/graphicsfuzz/function-with-uniform-return/0-opt.spvasm.expected.ir.dxc.hlsl
index bdeab23..6f2e64d 100644
--- a/test/tint/vk-gl-cts/graphicsfuzz/function-with-uniform-return/0-opt.spvasm.expected.ir.dxc.hlsl
+++ b/test/tint/vk-gl-cts/graphicsfuzz/function-with-uniform-return/0-opt.spvasm.expected.ir.dxc.hlsl
@@ -1,9 +1,85 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:198 internal compiler error: Switch() matched no cases. Type: tint::core::ir::If
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct main_out {
+  float4 x_GLF_color_1;
+};
+
+struct main_outputs {
+  float4 main_out_x_GLF_color_1 : SV_Target0;
+};
+
+struct main_inputs {
+  float4 gl_FragCoord_param : SV_Position;
+};
+
+
+static float4 gl_FragCoord = (0.0f).xxxx;
+cbuffer cbuffer_x_7 : register(b0) {
+  uint4 x_7[1];
+};
+static float4 x_GLF_color = (0.0f).xxxx;
+float fx_() {
+  if ((gl_FragCoord.y >= 0.0f)) {
+    float x_55 = asfloat(x_7[0u].y);
+    return x_55;
+  }
+  {
+    while(true) {
+      if (true) {
+      } else {
+        break;
+      }
+      x_GLF_color = (1.0f).xxxx;
+      {
+      }
+      continue;
+    }
+  }
+  return 0.0f;
+}
+
+void main_1() {
+  float x2 = 0.0f;
+  float B = 0.0f;
+  float k0 = 0.0f;
+  x2 = 1.0f;
+  B = 1.0f;
+  float x_34 = fx_();
+  x_GLF_color = float4(x_34, 0.0f, 0.0f, 1.0f);
+  {
+    while(true) {
+      if ((x2 > 2.0f)) {
+      } else {
+        break;
+      }
+      float x_43 = fx_();
+      float x_44 = fx_();
+      k0 = (x_43 - x_44);
+      B = k0;
+      x2 = B;
+      {
+      }
+      continue;
+    }
+  }
+}
+
+main_out main_inner(float4 gl_FragCoord_param) {
+  gl_FragCoord = gl_FragCoord_param;
+  main_1();
+  main_out v = {x_GLF_color};
+  return v;
+}
+
+main_outputs main(main_inputs inputs) {
+  main_out v_1 = main_inner(float4(inputs.gl_FragCoord_param.xyz, (1.0f / inputs.gl_FragCoord_param[3u])));
+  main_outputs v_2 = {v_1.x_GLF_color_1};
+  return v_2;
+}
+
+DXC validation failure:
+error: validation errors
+hlsl.hlsl:72: error: Loop must have break.
+Validation failed.
+
+
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/function-with-uniform-return/0-opt.spvasm.expected.ir.fxc.hlsl b/test/tint/vk-gl-cts/graphicsfuzz/function-with-uniform-return/0-opt.spvasm.expected.ir.fxc.hlsl
index bdeab23..8405451 100644
--- a/test/tint/vk-gl-cts/graphicsfuzz/function-with-uniform-return/0-opt.spvasm.expected.ir.fxc.hlsl
+++ b/test/tint/vk-gl-cts/graphicsfuzz/function-with-uniform-return/0-opt.spvasm.expected.ir.fxc.hlsl
@@ -1,9 +1,82 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:198 internal compiler error: Switch() matched no cases. Type: tint::core::ir::If
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct main_out {
+  float4 x_GLF_color_1;
+};
+
+struct main_outputs {
+  float4 main_out_x_GLF_color_1 : SV_Target0;
+};
+
+struct main_inputs {
+  float4 gl_FragCoord_param : SV_Position;
+};
+
+
+static float4 gl_FragCoord = (0.0f).xxxx;
+cbuffer cbuffer_x_7 : register(b0) {
+  uint4 x_7[1];
+};
+static float4 x_GLF_color = (0.0f).xxxx;
+float fx_() {
+  if ((gl_FragCoord.y >= 0.0f)) {
+    float x_55 = asfloat(x_7[0u].y);
+    return x_55;
+  }
+  {
+    while(true) {
+      if (true) {
+      } else {
+        break;
+      }
+      x_GLF_color = (1.0f).xxxx;
+      {
+      }
+      continue;
+    }
+  }
+  return 0.0f;
+}
+
+void main_1() {
+  float x2 = 0.0f;
+  float B = 0.0f;
+  float k0 = 0.0f;
+  x2 = 1.0f;
+  B = 1.0f;
+  float x_34 = fx_();
+  x_GLF_color = float4(x_34, 0.0f, 0.0f, 1.0f);
+  {
+    while(true) {
+      if ((x2 > 2.0f)) {
+      } else {
+        break;
+      }
+      float x_43 = fx_();
+      float x_44 = fx_();
+      k0 = (x_43 - x_44);
+      B = k0;
+      x2 = B;
+      {
+      }
+      continue;
+    }
+  }
+}
+
+main_out main_inner(float4 gl_FragCoord_param) {
+  gl_FragCoord = gl_FragCoord_param;
+  main_1();
+  main_out v = {x_GLF_color};
+  return v;
+}
+
+main_outputs main(main_inputs inputs) {
+  main_out v_1 = main_inner(float4(inputs.gl_FragCoord_param.xyz, (1.0f / inputs.gl_FragCoord_param[3u])));
+  main_outputs v_2 = {v_1.x_GLF_color_1};
+  return v_2;
+}
+
+FXC validation failure:
+c:\src\dawn\Shader@0x0000014B40FABA00(25,11-14): error X3696: infinite loop detected - loop never exits
+
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/function-with-uniform-return/0-opt.wgsl.expected.ir.dxc.hlsl b/test/tint/vk-gl-cts/graphicsfuzz/function-with-uniform-return/0-opt.wgsl.expected.ir.dxc.hlsl
index 4a2c666..88fd88c3 100644
--- a/test/tint/vk-gl-cts/graphicsfuzz/function-with-uniform-return/0-opt.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/vk-gl-cts/graphicsfuzz/function-with-uniform-return/0-opt.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,89 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::LoadVectorElement
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct main_out {
+  float4 x_GLF_color_1;
+};
+
+struct main_outputs {
+  float4 main_out_x_GLF_color_1 : SV_Target0;
+};
+
+struct main_inputs {
+  float4 gl_FragCoord_param : SV_Position;
+};
+
+
+static float4 gl_FragCoord = (0.0f).xxxx;
+cbuffer cbuffer_x_7 : register(b0) {
+  uint4 x_7[1];
+};
+static float4 x_GLF_color = (0.0f).xxxx;
+float fx_() {
+  float x_50 = gl_FragCoord.y;
+  if ((x_50 >= 0.0f)) {
+    float x_55 = asfloat(x_7[0u].y);
+    return x_55;
+  }
+  {
+    while(true) {
+      if (true) {
+      } else {
+        break;
+      }
+      x_GLF_color = (1.0f).xxxx;
+      {
+      }
+      continue;
+    }
+  }
+  return 0.0f;
+}
+
+void main_1() {
+  float x2 = 0.0f;
+  float B = 0.0f;
+  float k0 = 0.0f;
+  x2 = 1.0f;
+  B = 1.0f;
+  float x_34 = fx_();
+  x_GLF_color = float4(x_34, 0.0f, 0.0f, 1.0f);
+  {
+    while(true) {
+      float x_40 = x2;
+      if ((x_40 > 2.0f)) {
+      } else {
+        break;
+      }
+      float x_43 = fx_();
+      float x_44 = fx_();
+      k0 = (x_43 - x_44);
+      float x_46 = k0;
+      B = x_46;
+      float x_47 = B;
+      x2 = x_47;
+      {
+      }
+      continue;
+    }
+  }
+}
+
+main_out main_inner(float4 gl_FragCoord_param) {
+  gl_FragCoord = gl_FragCoord_param;
+  main_1();
+  main_out v = {x_GLF_color};
+  return v;
+}
+
+main_outputs main(main_inputs inputs) {
+  main_out v_1 = main_inner(float4(inputs.gl_FragCoord_param.xyz, (1.0f / inputs.gl_FragCoord_param[3u])));
+  main_outputs v_2 = {v_1.x_GLF_color_1};
+  return v_2;
+}
+
+DXC validation failure:
+error: validation errors
+hlsl.hlsl:76: error: Loop must have break.
+Validation failed.
+
+
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/function-with-uniform-return/0-opt.wgsl.expected.ir.fxc.hlsl b/test/tint/vk-gl-cts/graphicsfuzz/function-with-uniform-return/0-opt.wgsl.expected.ir.fxc.hlsl
index 4a2c666..2566fe6 100644
--- a/test/tint/vk-gl-cts/graphicsfuzz/function-with-uniform-return/0-opt.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/vk-gl-cts/graphicsfuzz/function-with-uniform-return/0-opt.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,86 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::LoadVectorElement
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct main_out {
+  float4 x_GLF_color_1;
+};
+
+struct main_outputs {
+  float4 main_out_x_GLF_color_1 : SV_Target0;
+};
+
+struct main_inputs {
+  float4 gl_FragCoord_param : SV_Position;
+};
+
+
+static float4 gl_FragCoord = (0.0f).xxxx;
+cbuffer cbuffer_x_7 : register(b0) {
+  uint4 x_7[1];
+};
+static float4 x_GLF_color = (0.0f).xxxx;
+float fx_() {
+  float x_50 = gl_FragCoord.y;
+  if ((x_50 >= 0.0f)) {
+    float x_55 = asfloat(x_7[0u].y);
+    return x_55;
+  }
+  {
+    while(true) {
+      if (true) {
+      } else {
+        break;
+      }
+      x_GLF_color = (1.0f).xxxx;
+      {
+      }
+      continue;
+    }
+  }
+  return 0.0f;
+}
+
+void main_1() {
+  float x2 = 0.0f;
+  float B = 0.0f;
+  float k0 = 0.0f;
+  x2 = 1.0f;
+  B = 1.0f;
+  float x_34 = fx_();
+  x_GLF_color = float4(x_34, 0.0f, 0.0f, 1.0f);
+  {
+    while(true) {
+      float x_40 = x2;
+      if ((x_40 > 2.0f)) {
+      } else {
+        break;
+      }
+      float x_43 = fx_();
+      float x_44 = fx_();
+      k0 = (x_43 - x_44);
+      float x_46 = k0;
+      B = x_46;
+      float x_47 = B;
+      x2 = x_47;
+      {
+      }
+      continue;
+    }
+  }
+}
+
+main_out main_inner(float4 gl_FragCoord_param) {
+  gl_FragCoord = gl_FragCoord_param;
+  main_1();
+  main_out v = {x_GLF_color};
+  return v;
+}
+
+main_outputs main(main_inputs inputs) {
+  main_out v_1 = main_inner(float4(inputs.gl_FragCoord_param.xyz, (1.0f / inputs.gl_FragCoord_param[3u])));
+  main_outputs v_2 = {v_1.x_GLF_color_1};
+  return v_2;
+}
+
+FXC validation failure:
+c:\src\dawn\Shader@0x00000277527E3D10(26,11-14): error X3696: infinite loop detected - loop never exits
+
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/global-array-loops/0-opt.spvasm.expected.ir.dxc.hlsl b/test/tint/vk-gl-cts/graphicsfuzz/global-array-loops/0-opt.spvasm.expected.ir.dxc.hlsl
deleted file mode 100644
index adbb0c1..0000000
--- a/test/tint/vk-gl-cts/graphicsfuzz/global-array-loops/0-opt.spvasm.expected.ir.dxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:198 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Loop
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/global-array-loops/0-opt.spvasm.expected.ir.fxc.hlsl b/test/tint/vk-gl-cts/graphicsfuzz/global-array-loops/0-opt.spvasm.expected.ir.fxc.hlsl
deleted file mode 100644
index adbb0c1..0000000
--- a/test/tint/vk-gl-cts/graphicsfuzz/global-array-loops/0-opt.spvasm.expected.ir.fxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:198 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Loop
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/global-array-loops/0-opt.wgsl.expected.ir.dxc.hlsl b/test/tint/vk-gl-cts/graphicsfuzz/global-array-loops/0-opt.wgsl.expected.ir.dxc.hlsl
deleted file mode 100644
index adbb0c1..0000000
--- a/test/tint/vk-gl-cts/graphicsfuzz/global-array-loops/0-opt.wgsl.expected.ir.dxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:198 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Loop
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/global-array-loops/0-opt.wgsl.expected.ir.fxc.hlsl b/test/tint/vk-gl-cts/graphicsfuzz/global-array-loops/0-opt.wgsl.expected.ir.fxc.hlsl
deleted file mode 100644
index adbb0c1..0000000
--- a/test/tint/vk-gl-cts/graphicsfuzz/global-array-loops/0-opt.wgsl.expected.ir.fxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:198 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Loop
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/increment-value-in-nested-for-loop/0.spvasm.expected.ir.dxc.hlsl b/test/tint/vk-gl-cts/graphicsfuzz/increment-value-in-nested-for-loop/0.spvasm.expected.ir.dxc.hlsl
deleted file mode 100644
index adbb0c1..0000000
--- a/test/tint/vk-gl-cts/graphicsfuzz/increment-value-in-nested-for-loop/0.spvasm.expected.ir.dxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:198 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Loop
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/increment-value-in-nested-for-loop/0.spvasm.expected.ir.fxc.hlsl b/test/tint/vk-gl-cts/graphicsfuzz/increment-value-in-nested-for-loop/0.spvasm.expected.ir.fxc.hlsl
deleted file mode 100644
index adbb0c1..0000000
--- a/test/tint/vk-gl-cts/graphicsfuzz/increment-value-in-nested-for-loop/0.spvasm.expected.ir.fxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:198 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Loop
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/increment-value-in-nested-for-loop/0.wgsl.expected.ir.dxc.hlsl b/test/tint/vk-gl-cts/graphicsfuzz/increment-value-in-nested-for-loop/0.wgsl.expected.ir.dxc.hlsl
deleted file mode 100644
index adbb0c1..0000000
--- a/test/tint/vk-gl-cts/graphicsfuzz/increment-value-in-nested-for-loop/0.wgsl.expected.ir.dxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:198 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Loop
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/increment-value-in-nested-for-loop/0.wgsl.expected.ir.fxc.hlsl b/test/tint/vk-gl-cts/graphicsfuzz/increment-value-in-nested-for-loop/0.wgsl.expected.ir.fxc.hlsl
deleted file mode 100644
index adbb0c1..0000000
--- a/test/tint/vk-gl-cts/graphicsfuzz/increment-value-in-nested-for-loop/0.wgsl.expected.ir.fxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:198 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Loop
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/injection-switch-as-comparison/0.spvasm.expected.ir.dxc.hlsl b/test/tint/vk-gl-cts/graphicsfuzz/injection-switch-as-comparison/0.spvasm.expected.ir.dxc.hlsl
deleted file mode 100644
index adbb0c1..0000000
--- a/test/tint/vk-gl-cts/graphicsfuzz/injection-switch-as-comparison/0.spvasm.expected.ir.dxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:198 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Loop
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/injection-switch-as-comparison/0.spvasm.expected.ir.fxc.hlsl b/test/tint/vk-gl-cts/graphicsfuzz/injection-switch-as-comparison/0.spvasm.expected.ir.fxc.hlsl
deleted file mode 100644
index adbb0c1..0000000
--- a/test/tint/vk-gl-cts/graphicsfuzz/injection-switch-as-comparison/0.spvasm.expected.ir.fxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:198 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Loop
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/injection-switch-as-comparison/0.wgsl.expected.ir.dxc.hlsl b/test/tint/vk-gl-cts/graphicsfuzz/injection-switch-as-comparison/0.wgsl.expected.ir.dxc.hlsl
deleted file mode 100644
index adbb0c1..0000000
--- a/test/tint/vk-gl-cts/graphicsfuzz/injection-switch-as-comparison/0.wgsl.expected.ir.dxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:198 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Loop
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/injection-switch-as-comparison/0.wgsl.expected.ir.fxc.hlsl b/test/tint/vk-gl-cts/graphicsfuzz/injection-switch-as-comparison/0.wgsl.expected.ir.fxc.hlsl
deleted file mode 100644
index adbb0c1..0000000
--- a/test/tint/vk-gl-cts/graphicsfuzz/injection-switch-as-comparison/0.wgsl.expected.ir.fxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:198 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Loop
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/int-mat2-struct/0-opt.spvasm.expected.ir.dxc.hlsl b/test/tint/vk-gl-cts/graphicsfuzz/int-mat2-struct/0-opt.spvasm.expected.ir.dxc.hlsl
deleted file mode 100644
index bdeab23..0000000
--- a/test/tint/vk-gl-cts/graphicsfuzz/int-mat2-struct/0-opt.spvasm.expected.ir.dxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:198 internal compiler error: Switch() matched no cases. Type: tint::core::ir::If
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/int-mat2-struct/0-opt.spvasm.expected.ir.fxc.hlsl b/test/tint/vk-gl-cts/graphicsfuzz/int-mat2-struct/0-opt.spvasm.expected.ir.fxc.hlsl
deleted file mode 100644
index bdeab23..0000000
--- a/test/tint/vk-gl-cts/graphicsfuzz/int-mat2-struct/0-opt.spvasm.expected.ir.fxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:198 internal compiler error: Switch() matched no cases. Type: tint::core::ir::If
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/int-mat2-struct/0-opt.wgsl.expected.ir.dxc.hlsl b/test/tint/vk-gl-cts/graphicsfuzz/int-mat2-struct/0-opt.wgsl.expected.ir.dxc.hlsl
deleted file mode 100644
index 4a2c666..0000000
--- a/test/tint/vk-gl-cts/graphicsfuzz/int-mat2-struct/0-opt.wgsl.expected.ir.dxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::LoadVectorElement
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/int-mat2-struct/0-opt.wgsl.expected.ir.fxc.hlsl b/test/tint/vk-gl-cts/graphicsfuzz/int-mat2-struct/0-opt.wgsl.expected.ir.fxc.hlsl
deleted file mode 100644
index 4a2c666..0000000
--- a/test/tint/vk-gl-cts/graphicsfuzz/int-mat2-struct/0-opt.wgsl.expected.ir.fxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::LoadVectorElement
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/loop-dead-if-loop/0-opt.spvasm.expected.ir.dxc.hlsl b/test/tint/vk-gl-cts/graphicsfuzz/loop-dead-if-loop/0-opt.spvasm.expected.ir.dxc.hlsl
deleted file mode 100644
index adbb0c1..0000000
--- a/test/tint/vk-gl-cts/graphicsfuzz/loop-dead-if-loop/0-opt.spvasm.expected.ir.dxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:198 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Loop
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/loop-dead-if-loop/0-opt.spvasm.expected.ir.fxc.hlsl b/test/tint/vk-gl-cts/graphicsfuzz/loop-dead-if-loop/0-opt.spvasm.expected.ir.fxc.hlsl
deleted file mode 100644
index adbb0c1..0000000
--- a/test/tint/vk-gl-cts/graphicsfuzz/loop-dead-if-loop/0-opt.spvasm.expected.ir.fxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:198 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Loop
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/loop-dead-if-loop/0-opt.wgsl.expected.ir.dxc.hlsl b/test/tint/vk-gl-cts/graphicsfuzz/loop-dead-if-loop/0-opt.wgsl.expected.ir.dxc.hlsl
deleted file mode 100644
index adbb0c1..0000000
--- a/test/tint/vk-gl-cts/graphicsfuzz/loop-dead-if-loop/0-opt.wgsl.expected.ir.dxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:198 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Loop
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/loop-dead-if-loop/0-opt.wgsl.expected.ir.fxc.hlsl b/test/tint/vk-gl-cts/graphicsfuzz/loop-dead-if-loop/0-opt.wgsl.expected.ir.fxc.hlsl
deleted file mode 100644
index adbb0c1..0000000
--- a/test/tint/vk-gl-cts/graphicsfuzz/loop-dead-if-loop/0-opt.wgsl.expected.ir.fxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:198 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Loop
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/loop-nested-ifs/0-opt.spvasm.expected.ir.dxc.hlsl b/test/tint/vk-gl-cts/graphicsfuzz/loop-nested-ifs/0-opt.spvasm.expected.ir.dxc.hlsl
deleted file mode 100644
index adbb0c1..0000000
--- a/test/tint/vk-gl-cts/graphicsfuzz/loop-nested-ifs/0-opt.spvasm.expected.ir.dxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:198 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Loop
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/loop-nested-ifs/0-opt.spvasm.expected.ir.fxc.hlsl b/test/tint/vk-gl-cts/graphicsfuzz/loop-nested-ifs/0-opt.spvasm.expected.ir.fxc.hlsl
deleted file mode 100644
index adbb0c1..0000000
--- a/test/tint/vk-gl-cts/graphicsfuzz/loop-nested-ifs/0-opt.spvasm.expected.ir.fxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:198 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Loop
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/loop-nested-ifs/0-opt.wgsl.expected.ir.dxc.hlsl b/test/tint/vk-gl-cts/graphicsfuzz/loop-nested-ifs/0-opt.wgsl.expected.ir.dxc.hlsl
deleted file mode 100644
index adbb0c1..0000000
--- a/test/tint/vk-gl-cts/graphicsfuzz/loop-nested-ifs/0-opt.wgsl.expected.ir.dxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:198 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Loop
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/loop-nested-ifs/0-opt.wgsl.expected.ir.fxc.hlsl b/test/tint/vk-gl-cts/graphicsfuzz/loop-nested-ifs/0-opt.wgsl.expected.ir.fxc.hlsl
deleted file mode 100644
index adbb0c1..0000000
--- a/test/tint/vk-gl-cts/graphicsfuzz/loop-nested-ifs/0-opt.wgsl.expected.ir.fxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:198 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Loop
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/loops-ifs-continues-call/0.spvasm.expected.ir.dxc.hlsl b/test/tint/vk-gl-cts/graphicsfuzz/loops-ifs-continues-call/0.spvasm.expected.ir.dxc.hlsl
deleted file mode 100644
index adbb0c1..0000000
--- a/test/tint/vk-gl-cts/graphicsfuzz/loops-ifs-continues-call/0.spvasm.expected.ir.dxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:198 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Loop
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/loops-ifs-continues-call/0.spvasm.expected.ir.fxc.hlsl b/test/tint/vk-gl-cts/graphicsfuzz/loops-ifs-continues-call/0.spvasm.expected.ir.fxc.hlsl
index adbb0c1..ec8590c 100644
--- a/test/tint/vk-gl-cts/graphicsfuzz/loops-ifs-continues-call/0.spvasm.expected.ir.fxc.hlsl
+++ b/test/tint/vk-gl-cts/graphicsfuzz/loops-ifs-continues-call/0.spvasm.expected.ir.fxc.hlsl
@@ -1,9 +1,110 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:198 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Loop
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct BinarySearchObject {
+  int prime_numbers[10];
+};
+
+struct main_out {
+  float4 x_GLF_color_1;
+};
+
+struct main_outputs {
+  float4 main_out_x_GLF_color_1 : SV_Target0;
+};
+
+
+cbuffer cbuffer_x_8 : register(b0) {
+  uint4 x_8[1];
+};
+static float4 x_GLF_color = (0.0f).xxxx;
+int tint_f32_to_i32(float value) {
+  return (((value <= 2147483520.0f)) ? ((((value >= -2147483648.0f)) ? (int(value)) : (-2147483648))) : (2147483647));
+}
+
+int binarySearch_struct_BinarySearchObject_i1_10_1_(inout BinarySearchObject obj) {
+  int m = 0;
+  {
+    while(true) {
+      if ((asfloat(x_8[0u].x) > 1.0f)) {
+      } else {
+        break;
+      }
+      m = tint_f32_to_i32(asfloat(x_8[0u].x));
+      if ((obj.prime_numbers[m] == 1)) {
+        return 1;
+      }
+      {
+      }
+      continue;
+    }
+  }
+  return 1;
+}
+
+void main_1() {
+  int i = 0;
+  BinarySearchObject obj_1 = (BinarySearchObject)0;
+  BinarySearchObject param = (BinarySearchObject)0;
+  i = 0;
+  {
+    while(true) {
+      if ((i < 10)) {
+      } else {
+        break;
+      }
+      if ((i != 3)) {
+        int v = i;
+        if (((v - tint_f32_to_i32(asfloat(x_8[0u].x))) == 4)) {
+          int x_21 = i;
+          obj_1.prime_numbers[x_21] = 11;
+        } else {
+          if ((i == 6)) {
+            int x_23 = i;
+            obj_1.prime_numbers[x_23] = 17;
+          }
+          {
+            i = (i + 1);
+          }
+          continue;
+        }
+      }
+      {
+        while(true) {
+          {
+            float x_82 = asfloat(x_8[0u].y);
+            if (!((0.0f > x_82))) { break; }
+          }
+          continue;
+        }
+      }
+      {
+        i = (i + 1);
+      }
+      continue;
+    }
+  }
+  BinarySearchObject v_1 = obj_1;
+  param = v_1;
+  int x_26 = binarySearch_struct_BinarySearchObject_i1_10_1_(param);
+  x_GLF_color = float4(1.0f, 0.0f, 0.0f, 1.0f);
+}
+
+main_out main_inner() {
+  main_1();
+  main_out v_2 = {x_GLF_color};
+  return v_2;
+}
+
+main_outputs main() {
+  main_out v_3 = main_inner();
+  main_outputs v_4 = {v_3.x_GLF_color_1};
+  return v_4;
+}
+
+FXC validation failure:
+c:\src\dawn\Shader@0x00000122B9423EA0(70,9-19): warning X3557: loop doesn't seem to do anything, forcing loop to unroll
+c:\src\dawn\Shader@0x00000122B9423EA0(70,9-19): warning X3557: loop doesn't seem to do anything, forcing loop to unroll
+c:\src\dawn\Shader@0x00000122B9423EA0(70,9-19): warning X3557: loop doesn't seem to do anything, forcing loop to unroll
+c:\src\dawn\Shader@0x00000122B9423EA0(57,11-35): error X3500: array reference cannot be used as an l-value; not natively addressable
+c:\src\dawn\Shader@0x00000122B9423EA0(48,5-15): error X3511: forced to unroll loop, but unrolling failed.
+
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/loops-ifs-continues-call/0.wgsl.expected.ir.dxc.hlsl b/test/tint/vk-gl-cts/graphicsfuzz/loops-ifs-continues-call/0.wgsl.expected.ir.dxc.hlsl
deleted file mode 100644
index adbb0c1..0000000
--- a/test/tint/vk-gl-cts/graphicsfuzz/loops-ifs-continues-call/0.wgsl.expected.ir.dxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:198 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Loop
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/loops-ifs-continues-call/0.wgsl.expected.ir.fxc.hlsl b/test/tint/vk-gl-cts/graphicsfuzz/loops-ifs-continues-call/0.wgsl.expected.ir.fxc.hlsl
index adbb0c1..0d98fa4 100644
--- a/test/tint/vk-gl-cts/graphicsfuzz/loops-ifs-continues-call/0.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/vk-gl-cts/graphicsfuzz/loops-ifs-continues-call/0.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,121 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:198 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Loop
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct BinarySearchObject {
+  int prime_numbers[10];
+};
+
+struct main_out {
+  float4 x_GLF_color_1;
+};
+
+struct main_outputs {
+  float4 main_out_x_GLF_color_1 : SV_Target0;
+};
+
+
+cbuffer cbuffer_x_8 : register(b0) {
+  uint4 x_8[1];
+};
+static float4 x_GLF_color = (0.0f).xxxx;
+int tint_f32_to_i32(float value) {
+  return (((value <= 2147483520.0f)) ? ((((value >= -2147483648.0f)) ? (int(value)) : (-2147483648))) : (2147483647));
+}
+
+int binarySearch_struct_BinarySearchObject_i1_10_1_(inout BinarySearchObject obj) {
+  int m = 0;
+  {
+    while(true) {
+      float x_91 = asfloat(x_8[0u].x);
+      if ((x_91 > 1.0f)) {
+      } else {
+        break;
+      }
+      float x_95 = asfloat(x_8[0u].x);
+      m = tint_f32_to_i32(x_95);
+      int x_14 = m;
+      int x_15 = obj.prime_numbers[x_14];
+      if ((x_15 == 1)) {
+        return 1;
+      }
+      {
+      }
+      continue;
+    }
+  }
+  return 1;
+}
+
+void main_1() {
+  int i = 0;
+  BinarySearchObject obj_1 = (BinarySearchObject)0;
+  BinarySearchObject param = (BinarySearchObject)0;
+  i = 0;
+  {
+    while(true) {
+      int x_16 = i;
+      if ((x_16 < 10)) {
+      } else {
+        break;
+      }
+      int x_17 = i;
+      if ((x_17 != 3)) {
+        int x_18 = i;
+        float x_67 = asfloat(x_8[0u].x);
+        if (((x_18 - tint_f32_to_i32(x_67)) == 4)) {
+          int x_21 = i;
+          obj_1.prime_numbers[x_21] = 11;
+        } else {
+          int x_22 = i;
+          if ((x_22 == 6)) {
+            int x_23 = i;
+            obj_1.prime_numbers[x_23] = 17;
+          }
+          {
+            int x_24 = i;
+            i = (x_24 + 1);
+          }
+          continue;
+        }
+      }
+      {
+        while(true) {
+          {
+            float x_82 = asfloat(x_8[0u].y);
+            if (!((0.0f > x_82))) { break; }
+          }
+          continue;
+        }
+      }
+      {
+        int x_24 = i;
+        i = (x_24 + 1);
+      }
+      continue;
+    }
+  }
+  BinarySearchObject v = obj_1;
+  BinarySearchObject x_84 = v;
+  param = x_84;
+  int x_26 = binarySearch_struct_BinarySearchObject_i1_10_1_(param);
+  x_GLF_color = float4(1.0f, 0.0f, 0.0f, 1.0f);
+}
+
+main_out main_inner() {
+  main_1();
+  main_out v_1 = {x_GLF_color};
+  return v_1;
+}
+
+main_outputs main() {
+  main_out v_2 = main_inner();
+  main_outputs v_3 = {v_2.x_GLF_color_1};
+  return v_3;
+}
+
+FXC validation failure:
+c:\src\dawn\Shader@0x000002AFA13EDE90(79,9-19): warning X3557: loop doesn't seem to do anything, forcing loop to unroll
+c:\src\dawn\Shader@0x000002AFA13EDE90(79,9-19): warning X3557: loop doesn't seem to do anything, forcing loop to unroll
+c:\src\dawn\Shader@0x000002AFA13EDE90(79,9-19): warning X3557: loop doesn't seem to do anything, forcing loop to unroll
+c:\src\dawn\Shader@0x000002AFA13EDE90(64,11-35): error X3500: array reference cannot be used as an l-value; not natively addressable
+c:\src\dawn\Shader@0x000002AFA13EDE90(52,5-15): error X3511: forced to unroll loop, but unrolling failed.
+
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/matrices-and-return-in-loop/0.spvasm.expected.ir.dxc.hlsl b/test/tint/vk-gl-cts/graphicsfuzz/matrices-and-return-in-loop/0.spvasm.expected.ir.dxc.hlsl
deleted file mode 100644
index adbb0c1..0000000
--- a/test/tint/vk-gl-cts/graphicsfuzz/matrices-and-return-in-loop/0.spvasm.expected.ir.dxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:198 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Loop
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/matrices-and-return-in-loop/0.spvasm.expected.ir.fxc.hlsl b/test/tint/vk-gl-cts/graphicsfuzz/matrices-and-return-in-loop/0.spvasm.expected.ir.fxc.hlsl
deleted file mode 100644
index adbb0c1..0000000
--- a/test/tint/vk-gl-cts/graphicsfuzz/matrices-and-return-in-loop/0.spvasm.expected.ir.fxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:198 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Loop
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/matrices-and-return-in-loop/0.wgsl.expected.ir.dxc.hlsl b/test/tint/vk-gl-cts/graphicsfuzz/matrices-and-return-in-loop/0.wgsl.expected.ir.dxc.hlsl
deleted file mode 100644
index adbb0c1..0000000
--- a/test/tint/vk-gl-cts/graphicsfuzz/matrices-and-return-in-loop/0.wgsl.expected.ir.dxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:198 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Loop
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/matrices-and-return-in-loop/0.wgsl.expected.ir.fxc.hlsl b/test/tint/vk-gl-cts/graphicsfuzz/matrices-and-return-in-loop/0.wgsl.expected.ir.fxc.hlsl
deleted file mode 100644
index adbb0c1..0000000
--- a/test/tint/vk-gl-cts/graphicsfuzz/matrices-and-return-in-loop/0.wgsl.expected.ir.fxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:198 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Loop
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/max-mix-conditional-discard/0-opt.spvasm.expected.ir.dxc.hlsl b/test/tint/vk-gl-cts/graphicsfuzz/max-mix-conditional-discard/0-opt.spvasm.expected.ir.dxc.hlsl
index bdeab23..d1ee477 100644
--- a/test/tint/vk-gl-cts/graphicsfuzz/max-mix-conditional-discard/0-opt.spvasm.expected.ir.dxc.hlsl
+++ b/test/tint/vk-gl-cts/graphicsfuzz/max-mix-conditional-discard/0-opt.spvasm.expected.ir.dxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:198 internal compiler error: Switch() matched no cases. Type: tint::core::ir::If
+..\..\src\tint\lang\core\ir\transform\demote_to_helper.cc:208 internal compiler error: TINT_UNREACHABLE unexpected non-core instruction
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/max-mix-conditional-discard/0-opt.spvasm.expected.ir.fxc.hlsl b/test/tint/vk-gl-cts/graphicsfuzz/max-mix-conditional-discard/0-opt.spvasm.expected.ir.fxc.hlsl
index bdeab23..d1ee477 100644
--- a/test/tint/vk-gl-cts/graphicsfuzz/max-mix-conditional-discard/0-opt.spvasm.expected.ir.fxc.hlsl
+++ b/test/tint/vk-gl-cts/graphicsfuzz/max-mix-conditional-discard/0-opt.spvasm.expected.ir.fxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:198 internal compiler error: Switch() matched no cases. Type: tint::core::ir::If
+..\..\src\tint\lang\core\ir\transform\demote_to_helper.cc:208 internal compiler error: TINT_UNREACHABLE unexpected non-core instruction
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/max-mix-conditional-discard/0-opt.wgsl.expected.ir.dxc.hlsl b/test/tint/vk-gl-cts/graphicsfuzz/max-mix-conditional-discard/0-opt.wgsl.expected.ir.dxc.hlsl
index 4a2c666..d1ee477 100644
--- a/test/tint/vk-gl-cts/graphicsfuzz/max-mix-conditional-discard/0-opt.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/vk-gl-cts/graphicsfuzz/max-mix-conditional-discard/0-opt.wgsl.expected.ir.dxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::LoadVectorElement
+..\..\src\tint\lang\core\ir\transform\demote_to_helper.cc:208 internal compiler error: TINT_UNREACHABLE unexpected non-core instruction
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/max-mix-conditional-discard/0-opt.wgsl.expected.ir.fxc.hlsl b/test/tint/vk-gl-cts/graphicsfuzz/max-mix-conditional-discard/0-opt.wgsl.expected.ir.fxc.hlsl
index 4a2c666..d1ee477 100644
--- a/test/tint/vk-gl-cts/graphicsfuzz/max-mix-conditional-discard/0-opt.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/vk-gl-cts/graphicsfuzz/max-mix-conditional-discard/0-opt.wgsl.expected.ir.fxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::LoadVectorElement
+..\..\src\tint\lang\core\ir\transform\demote_to_helper.cc:208 internal compiler error: TINT_UNREACHABLE unexpected non-core instruction
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/mix-floor-add/0-opt.spvasm.expected.ir.dxc.hlsl b/test/tint/vk-gl-cts/graphicsfuzz/mix-floor-add/0-opt.spvasm.expected.ir.dxc.hlsl
deleted file mode 100644
index c6e1d96..0000000
--- a/test/tint/vk-gl-cts/graphicsfuzz/mix-floor-add/0-opt.spvasm.expected.ir.dxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Construct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/mix-floor-add/0-opt.spvasm.expected.ir.fxc.hlsl b/test/tint/vk-gl-cts/graphicsfuzz/mix-floor-add/0-opt.spvasm.expected.ir.fxc.hlsl
deleted file mode 100644
index c6e1d96..0000000
--- a/test/tint/vk-gl-cts/graphicsfuzz/mix-floor-add/0-opt.spvasm.expected.ir.fxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Construct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/mix-floor-add/0-opt.wgsl.expected.ir.dxc.hlsl b/test/tint/vk-gl-cts/graphicsfuzz/mix-floor-add/0-opt.wgsl.expected.ir.dxc.hlsl
deleted file mode 100644
index c6e1d96..0000000
--- a/test/tint/vk-gl-cts/graphicsfuzz/mix-floor-add/0-opt.wgsl.expected.ir.dxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Construct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/mix-floor-add/0-opt.wgsl.expected.ir.fxc.hlsl b/test/tint/vk-gl-cts/graphicsfuzz/mix-floor-add/0-opt.wgsl.expected.ir.fxc.hlsl
deleted file mode 100644
index c6e1d96..0000000
--- a/test/tint/vk-gl-cts/graphicsfuzz/mix-floor-add/0-opt.wgsl.expected.ir.fxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Construct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/nested-for-break-mat-color/0.spvasm.expected.ir.dxc.hlsl b/test/tint/vk-gl-cts/graphicsfuzz/nested-for-break-mat-color/0.spvasm.expected.ir.dxc.hlsl
deleted file mode 100644
index adbb0c1..0000000
--- a/test/tint/vk-gl-cts/graphicsfuzz/nested-for-break-mat-color/0.spvasm.expected.ir.dxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:198 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Loop
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/nested-for-break-mat-color/0.spvasm.expected.ir.fxc.hlsl b/test/tint/vk-gl-cts/graphicsfuzz/nested-for-break-mat-color/0.spvasm.expected.ir.fxc.hlsl
index adbb0c1..8914801 100644
--- a/test/tint/vk-gl-cts/graphicsfuzz/nested-for-break-mat-color/0.spvasm.expected.ir.fxc.hlsl
+++ b/test/tint/vk-gl-cts/graphicsfuzz/nested-for-break-mat-color/0.spvasm.expected.ir.fxc.hlsl
@@ -1,9 +1,88 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:198 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Loop
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct main_out {
+  float4 x_GLF_color_1;
+};
+
+struct main_outputs {
+  float4 main_out_x_GLF_color_1 : SV_Target0;
+};
+
+struct main_inputs {
+  float4 gl_FragCoord_param : SV_Position;
+};
+
+
+static float4 gl_FragCoord = (0.0f).xxxx;
+cbuffer cbuffer_x_7 : register(b0) {
+  uint4 x_7[1];
+};
+static float4 x_GLF_color = (0.0f).xxxx;
+void main_1() {
+  float4x4 m44 = float4x4((0.0f).xxxx, (0.0f).xxxx, (0.0f).xxxx, (0.0f).xxxx);
+  int x_10 = 0;
+  m44 = 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));
+  x_10 = 0;
+  {
+    while(true) {
+      int x_11 = 0;
+      int x_9 = 0;
+      if ((x_10 < 4)) {
+      } else {
+        break;
+      }
+      if ((gl_FragCoord.y < 0.0f)) {
+        break;
+      }
+      x_11 = 0;
+      {
+        while(true) {
+          int x_8 = 0;
+          if ((x_11 < 4)) {
+          } else {
+            break;
+          }
+          {
+            float4 v = m44[x_10];
+            int v_1 = x_11;
+            float v_2 = m44[x_10][x_11];
+            v[v_1] = (v_2 + asfloat(x_7[0u].x));
+            x_8 = (x_11 + 1);
+            x_11 = x_8;
+          }
+          continue;
+        }
+      }
+      {
+        x_9 = (x_10 + 1);
+        x_10 = x_9;
+      }
+      continue;
+    }
+  }
+  float x_77 = m44[1].y;
+  float4 x_79_1 = (0.0f).xxxx;
+  x_79_1[0u] = (x_77 - 6.0f);
+  float4 x_79 = x_79_1;
+  float x_81 = m44[2].z;
+  float4 x_83_1 = x_79;
+  x_83_1[3u] = (x_81 - 11.0f);
+  x_GLF_color = x_83_1;
+}
+
+main_out main_inner(float4 gl_FragCoord_param) {
+  gl_FragCoord = gl_FragCoord_param;
+  main_1();
+  main_out v_3 = {x_GLF_color};
+  return v_3;
+}
+
+main_outputs main(main_inputs inputs) {
+  main_out v_4 = main_inner(float4(inputs.gl_FragCoord_param.xyz, (1.0f / inputs.gl_FragCoord_param[3u])));
+  main_outputs v_5 = {v_4.x_GLF_color_1};
+  return v_5;
+}
+
+FXC validation failure:
+c:\src\dawn\Shader@0x0000025EB7111630(25,5-15): error X3511: unable to unroll loop, loop does not appear to terminate in a timely manner (435 iterations) or unrolled loop is too large, use the [unroll(n)] attribute to force an exact higher number
+
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/nested-for-break-mat-color/0.wgsl.expected.ir.dxc.hlsl b/test/tint/vk-gl-cts/graphicsfuzz/nested-for-break-mat-color/0.wgsl.expected.ir.dxc.hlsl
deleted file mode 100644
index adbb0c1..0000000
--- a/test/tint/vk-gl-cts/graphicsfuzz/nested-for-break-mat-color/0.wgsl.expected.ir.dxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:198 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Loop
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/nested-for-break-mat-color/0.wgsl.expected.ir.fxc.hlsl b/test/tint/vk-gl-cts/graphicsfuzz/nested-for-break-mat-color/0.wgsl.expected.ir.fxc.hlsl
index adbb0c1..1c4793f 100644
--- a/test/tint/vk-gl-cts/graphicsfuzz/nested-for-break-mat-color/0.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/vk-gl-cts/graphicsfuzz/nested-for-break-mat-color/0.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,91 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:198 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Loop
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct main_out {
+  float4 x_GLF_color_1;
+};
+
+struct main_outputs {
+  float4 main_out_x_GLF_color_1 : SV_Target0;
+};
+
+struct main_inputs {
+  float4 gl_FragCoord_param : SV_Position;
+};
+
+
+static float4 gl_FragCoord = (0.0f).xxxx;
+cbuffer cbuffer_x_7 : register(b0) {
+  uint4 x_7[1];
+};
+static float4 x_GLF_color = (0.0f).xxxx;
+void main_1() {
+  float4x4 m44 = float4x4((0.0f).xxxx, (0.0f).xxxx, (0.0f).xxxx, (0.0f).xxxx);
+  int x_10_phi = 0;
+  m44 = 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));
+  x_10_phi = 0;
+  {
+    while(true) {
+      int x_9 = 0;
+      int x_11_phi = 0;
+      int x_10 = x_10_phi;
+      if ((x_10 < 4)) {
+      } else {
+        break;
+      }
+      float x_63 = gl_FragCoord.y;
+      if ((x_63 < 0.0f)) {
+        break;
+      }
+      x_11_phi = 0;
+      {
+        while(true) {
+          int x_8 = 0;
+          int x_11 = x_11_phi;
+          if ((x_11 < 4)) {
+          } else {
+            break;
+          }
+          {
+            float x_72 = asfloat(x_7[0u].x);
+            float x_74 = m44[x_10][x_11];
+            m44[x_10][x_11] = (x_74 + x_72);
+            x_8 = (x_11 + 1);
+            x_11_phi = x_8;
+          }
+          continue;
+        }
+      }
+      {
+        x_9 = (x_10 + 1);
+        x_10_phi = x_9;
+      }
+      continue;
+    }
+  }
+  float x_77 = m44[1].y;
+  float4 x_79_1 = (0.0f).xxxx;
+  x_79_1[0u] = (x_77 - 6.0f);
+  float4 x_79 = x_79_1;
+  float x_81 = m44[2].z;
+  float4 x_83_1 = x_79;
+  x_83_1[3u] = (x_81 - 11.0f);
+  float4 x_83 = x_83_1;
+  x_GLF_color = x_83;
+}
+
+main_out main_inner(float4 gl_FragCoord_param) {
+  gl_FragCoord = gl_FragCoord_param;
+  main_1();
+  main_out v = {x_GLF_color};
+  return v;
+}
+
+main_outputs main(main_inputs inputs) {
+  main_out v_1 = main_inner(float4(inputs.gl_FragCoord_param.xyz, (1.0f / inputs.gl_FragCoord_param[3u])));
+  main_outputs v_2 = {v_1.x_GLF_color_1};
+  return v_2;
+}
+
+FXC validation failure:
+c:\src\dawn\Shader@0x000002AB6F67FEE0(25,5-15): error X3511: forced to unroll loop, but unrolling failed.
+
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/nested-ifs-and-return-in-for-loop/0-opt.spvasm.expected.ir.dxc.hlsl b/test/tint/vk-gl-cts/graphicsfuzz/nested-ifs-and-return-in-for-loop/0-opt.spvasm.expected.ir.dxc.hlsl
deleted file mode 100644
index adbb0c1..0000000
--- a/test/tint/vk-gl-cts/graphicsfuzz/nested-ifs-and-return-in-for-loop/0-opt.spvasm.expected.ir.dxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:198 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Loop
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/nested-ifs-and-return-in-for-loop/0-opt.spvasm.expected.ir.fxc.hlsl b/test/tint/vk-gl-cts/graphicsfuzz/nested-ifs-and-return-in-for-loop/0-opt.spvasm.expected.ir.fxc.hlsl
deleted file mode 100644
index adbb0c1..0000000
--- a/test/tint/vk-gl-cts/graphicsfuzz/nested-ifs-and-return-in-for-loop/0-opt.spvasm.expected.ir.fxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:198 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Loop
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/nested-ifs-and-return-in-for-loop/0-opt.wgsl.expected.ir.dxc.hlsl b/test/tint/vk-gl-cts/graphicsfuzz/nested-ifs-and-return-in-for-loop/0-opt.wgsl.expected.ir.dxc.hlsl
deleted file mode 100644
index adbb0c1..0000000
--- a/test/tint/vk-gl-cts/graphicsfuzz/nested-ifs-and-return-in-for-loop/0-opt.wgsl.expected.ir.dxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:198 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Loop
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/nested-ifs-and-return-in-for-loop/0-opt.wgsl.expected.ir.fxc.hlsl b/test/tint/vk-gl-cts/graphicsfuzz/nested-ifs-and-return-in-for-loop/0-opt.wgsl.expected.ir.fxc.hlsl
deleted file mode 100644
index adbb0c1..0000000
--- a/test/tint/vk-gl-cts/graphicsfuzz/nested-ifs-and-return-in-for-loop/0-opt.wgsl.expected.ir.fxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:198 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Loop
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/nested-loops-switch/0.spvasm.expected.ir.dxc.hlsl b/test/tint/vk-gl-cts/graphicsfuzz/nested-loops-switch/0.spvasm.expected.ir.dxc.hlsl
deleted file mode 100644
index adbb0c1..0000000
--- a/test/tint/vk-gl-cts/graphicsfuzz/nested-loops-switch/0.spvasm.expected.ir.dxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:198 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Loop
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/nested-loops-switch/0.spvasm.expected.ir.fxc.hlsl b/test/tint/vk-gl-cts/graphicsfuzz/nested-loops-switch/0.spvasm.expected.ir.fxc.hlsl
deleted file mode 100644
index adbb0c1..0000000
--- a/test/tint/vk-gl-cts/graphicsfuzz/nested-loops-switch/0.spvasm.expected.ir.fxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:198 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Loop
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/nested-loops-switch/0.wgsl.expected.ir.dxc.hlsl b/test/tint/vk-gl-cts/graphicsfuzz/nested-loops-switch/0.wgsl.expected.ir.dxc.hlsl
deleted file mode 100644
index adbb0c1..0000000
--- a/test/tint/vk-gl-cts/graphicsfuzz/nested-loops-switch/0.wgsl.expected.ir.dxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:198 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Loop
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/nested-loops-switch/0.wgsl.expected.ir.fxc.hlsl b/test/tint/vk-gl-cts/graphicsfuzz/nested-loops-switch/0.wgsl.expected.ir.fxc.hlsl
deleted file mode 100644
index adbb0c1..0000000
--- a/test/tint/vk-gl-cts/graphicsfuzz/nested-loops-switch/0.wgsl.expected.ir.fxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:198 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Loop
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/one-sized-array/0-opt.spvasm.expected.ir.dxc.hlsl b/test/tint/vk-gl-cts/graphicsfuzz/one-sized-array/0-opt.spvasm.expected.ir.dxc.hlsl
deleted file mode 100644
index 3f437dc..0000000
--- a/test/tint/vk-gl-cts/graphicsfuzz/one-sized-array/0-opt.spvasm.expected.ir.dxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Access
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/one-sized-array/0-opt.spvasm.expected.ir.fxc.hlsl b/test/tint/vk-gl-cts/graphicsfuzz/one-sized-array/0-opt.spvasm.expected.ir.fxc.hlsl
deleted file mode 100644
index 3f437dc..0000000
--- a/test/tint/vk-gl-cts/graphicsfuzz/one-sized-array/0-opt.spvasm.expected.ir.fxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Access
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/one-sized-array/0-opt.wgsl.expected.ir.dxc.hlsl b/test/tint/vk-gl-cts/graphicsfuzz/one-sized-array/0-opt.wgsl.expected.ir.dxc.hlsl
deleted file mode 100644
index 3f437dc..0000000
--- a/test/tint/vk-gl-cts/graphicsfuzz/one-sized-array/0-opt.wgsl.expected.ir.dxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Access
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/one-sized-array/0-opt.wgsl.expected.ir.fxc.hlsl b/test/tint/vk-gl-cts/graphicsfuzz/one-sized-array/0-opt.wgsl.expected.ir.fxc.hlsl
deleted file mode 100644
index 3f437dc..0000000
--- a/test/tint/vk-gl-cts/graphicsfuzz/one-sized-array/0-opt.wgsl.expected.ir.fxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Access
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/return-float-from-while-loop/0-opt.spvasm.expected.ir.dxc.hlsl b/test/tint/vk-gl-cts/graphicsfuzz/return-float-from-while-loop/0-opt.spvasm.expected.ir.dxc.hlsl
deleted file mode 100644
index 4a2c666..0000000
--- a/test/tint/vk-gl-cts/graphicsfuzz/return-float-from-while-loop/0-opt.spvasm.expected.ir.dxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::LoadVectorElement
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/return-float-from-while-loop/0-opt.spvasm.expected.ir.fxc.hlsl b/test/tint/vk-gl-cts/graphicsfuzz/return-float-from-while-loop/0-opt.spvasm.expected.ir.fxc.hlsl
deleted file mode 100644
index 4a2c666..0000000
--- a/test/tint/vk-gl-cts/graphicsfuzz/return-float-from-while-loop/0-opt.spvasm.expected.ir.fxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::LoadVectorElement
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/return-float-from-while-loop/0-opt.wgsl.expected.ir.dxc.hlsl b/test/tint/vk-gl-cts/graphicsfuzz/return-float-from-while-loop/0-opt.wgsl.expected.ir.dxc.hlsl
deleted file mode 100644
index 4a2c666..0000000
--- a/test/tint/vk-gl-cts/graphicsfuzz/return-float-from-while-loop/0-opt.wgsl.expected.ir.dxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::LoadVectorElement
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/return-float-from-while-loop/0-opt.wgsl.expected.ir.fxc.hlsl b/test/tint/vk-gl-cts/graphicsfuzz/return-float-from-while-loop/0-opt.wgsl.expected.ir.fxc.hlsl
deleted file mode 100644
index 4a2c666..0000000
--- a/test/tint/vk-gl-cts/graphicsfuzz/return-float-from-while-loop/0-opt.wgsl.expected.ir.fxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::LoadVectorElement
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/return-in-loop-in-function/0-opt.spvasm.expected.ir.dxc.hlsl b/test/tint/vk-gl-cts/graphicsfuzz/return-in-loop-in-function/0-opt.spvasm.expected.ir.dxc.hlsl
deleted file mode 100644
index adbb0c1..0000000
--- a/test/tint/vk-gl-cts/graphicsfuzz/return-in-loop-in-function/0-opt.spvasm.expected.ir.dxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:198 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Loop
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/return-in-loop-in-function/0-opt.spvasm.expected.ir.fxc.hlsl b/test/tint/vk-gl-cts/graphicsfuzz/return-in-loop-in-function/0-opt.spvasm.expected.ir.fxc.hlsl
deleted file mode 100644
index adbb0c1..0000000
--- a/test/tint/vk-gl-cts/graphicsfuzz/return-in-loop-in-function/0-opt.spvasm.expected.ir.fxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:198 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Loop
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/return-in-loop-in-function/0-opt.wgsl.expected.ir.dxc.hlsl b/test/tint/vk-gl-cts/graphicsfuzz/return-in-loop-in-function/0-opt.wgsl.expected.ir.dxc.hlsl
deleted file mode 100644
index adbb0c1..0000000
--- a/test/tint/vk-gl-cts/graphicsfuzz/return-in-loop-in-function/0-opt.wgsl.expected.ir.dxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:198 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Loop
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/return-in-loop-in-function/0-opt.wgsl.expected.ir.fxc.hlsl b/test/tint/vk-gl-cts/graphicsfuzz/return-in-loop-in-function/0-opt.wgsl.expected.ir.fxc.hlsl
deleted file mode 100644
index adbb0c1..0000000
--- a/test/tint/vk-gl-cts/graphicsfuzz/return-in-loop-in-function/0-opt.wgsl.expected.ir.fxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:198 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Loop
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/return-inside-loop-in-function/0.spvasm.expected.ir.dxc.hlsl b/test/tint/vk-gl-cts/graphicsfuzz/return-inside-loop-in-function/0.spvasm.expected.ir.dxc.hlsl
deleted file mode 100644
index adbb0c1..0000000
--- a/test/tint/vk-gl-cts/graphicsfuzz/return-inside-loop-in-function/0.spvasm.expected.ir.dxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:198 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Loop
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/return-inside-loop-in-function/0.spvasm.expected.ir.fxc.hlsl b/test/tint/vk-gl-cts/graphicsfuzz/return-inside-loop-in-function/0.spvasm.expected.ir.fxc.hlsl
deleted file mode 100644
index adbb0c1..0000000
--- a/test/tint/vk-gl-cts/graphicsfuzz/return-inside-loop-in-function/0.spvasm.expected.ir.fxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:198 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Loop
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/return-inside-loop-in-function/0.wgsl.expected.ir.dxc.hlsl b/test/tint/vk-gl-cts/graphicsfuzz/return-inside-loop-in-function/0.wgsl.expected.ir.dxc.hlsl
deleted file mode 100644
index adbb0c1..0000000
--- a/test/tint/vk-gl-cts/graphicsfuzz/return-inside-loop-in-function/0.wgsl.expected.ir.dxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:198 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Loop
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/return-inside-loop-in-function/0.wgsl.expected.ir.fxc.hlsl b/test/tint/vk-gl-cts/graphicsfuzz/return-inside-loop-in-function/0.wgsl.expected.ir.fxc.hlsl
deleted file mode 100644
index adbb0c1..0000000
--- a/test/tint/vk-gl-cts/graphicsfuzz/return-inside-loop-in-function/0.wgsl.expected.ir.fxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:198 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Loop
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/returned-boolean-in-vector/0-opt.spvasm.expected.ir.dxc.hlsl b/test/tint/vk-gl-cts/graphicsfuzz/returned-boolean-in-vector/0-opt.spvasm.expected.ir.dxc.hlsl
deleted file mode 100644
index adbb0c1..0000000
--- a/test/tint/vk-gl-cts/graphicsfuzz/returned-boolean-in-vector/0-opt.spvasm.expected.ir.dxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:198 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Loop
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/returned-boolean-in-vector/0-opt.spvasm.expected.ir.fxc.hlsl b/test/tint/vk-gl-cts/graphicsfuzz/returned-boolean-in-vector/0-opt.spvasm.expected.ir.fxc.hlsl
deleted file mode 100644
index adbb0c1..0000000
--- a/test/tint/vk-gl-cts/graphicsfuzz/returned-boolean-in-vector/0-opt.spvasm.expected.ir.fxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:198 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Loop
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/returned-boolean-in-vector/0-opt.wgsl.expected.ir.dxc.hlsl b/test/tint/vk-gl-cts/graphicsfuzz/returned-boolean-in-vector/0-opt.wgsl.expected.ir.dxc.hlsl
deleted file mode 100644
index adbb0c1..0000000
--- a/test/tint/vk-gl-cts/graphicsfuzz/returned-boolean-in-vector/0-opt.wgsl.expected.ir.dxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:198 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Loop
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/returned-boolean-in-vector/0-opt.wgsl.expected.ir.fxc.hlsl b/test/tint/vk-gl-cts/graphicsfuzz/returned-boolean-in-vector/0-opt.wgsl.expected.ir.fxc.hlsl
deleted file mode 100644
index adbb0c1..0000000
--- a/test/tint/vk-gl-cts/graphicsfuzz/returned-boolean-in-vector/0-opt.wgsl.expected.ir.fxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:198 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Loop
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/set-color-in-one-iteration-while-loop/0.spvasm.expected.ir.dxc.hlsl b/test/tint/vk-gl-cts/graphicsfuzz/set-color-in-one-iteration-while-loop/0.spvasm.expected.ir.dxc.hlsl
deleted file mode 100644
index adbb0c1..0000000
--- a/test/tint/vk-gl-cts/graphicsfuzz/set-color-in-one-iteration-while-loop/0.spvasm.expected.ir.dxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:198 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Loop
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/set-color-in-one-iteration-while-loop/0.spvasm.expected.ir.fxc.hlsl b/test/tint/vk-gl-cts/graphicsfuzz/set-color-in-one-iteration-while-loop/0.spvasm.expected.ir.fxc.hlsl
deleted file mode 100644
index adbb0c1..0000000
--- a/test/tint/vk-gl-cts/graphicsfuzz/set-color-in-one-iteration-while-loop/0.spvasm.expected.ir.fxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:198 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Loop
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/set-color-in-one-iteration-while-loop/0.wgsl.expected.ir.dxc.hlsl b/test/tint/vk-gl-cts/graphicsfuzz/set-color-in-one-iteration-while-loop/0.wgsl.expected.ir.dxc.hlsl
deleted file mode 100644
index adbb0c1..0000000
--- a/test/tint/vk-gl-cts/graphicsfuzz/set-color-in-one-iteration-while-loop/0.wgsl.expected.ir.dxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:198 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Loop
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/set-color-in-one-iteration-while-loop/0.wgsl.expected.ir.fxc.hlsl b/test/tint/vk-gl-cts/graphicsfuzz/set-color-in-one-iteration-while-loop/0.wgsl.expected.ir.fxc.hlsl
deleted file mode 100644
index adbb0c1..0000000
--- a/test/tint/vk-gl-cts/graphicsfuzz/set-color-in-one-iteration-while-loop/0.wgsl.expected.ir.fxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:198 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Loop
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/similar-nested-ifs/0-opt.spvasm.expected.ir.dxc.hlsl b/test/tint/vk-gl-cts/graphicsfuzz/similar-nested-ifs/0-opt.spvasm.expected.ir.dxc.hlsl
deleted file mode 100644
index bdeab23..0000000
--- a/test/tint/vk-gl-cts/graphicsfuzz/similar-nested-ifs/0-opt.spvasm.expected.ir.dxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:198 internal compiler error: Switch() matched no cases. Type: tint::core::ir::If
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/similar-nested-ifs/0-opt.spvasm.expected.ir.fxc.hlsl b/test/tint/vk-gl-cts/graphicsfuzz/similar-nested-ifs/0-opt.spvasm.expected.ir.fxc.hlsl
deleted file mode 100644
index bdeab23..0000000
--- a/test/tint/vk-gl-cts/graphicsfuzz/similar-nested-ifs/0-opt.spvasm.expected.ir.fxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:198 internal compiler error: Switch() matched no cases. Type: tint::core::ir::If
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/similar-nested-ifs/0-opt.wgsl.expected.ir.dxc.hlsl b/test/tint/vk-gl-cts/graphicsfuzz/similar-nested-ifs/0-opt.wgsl.expected.ir.dxc.hlsl
deleted file mode 100644
index 4a2c666..0000000
--- a/test/tint/vk-gl-cts/graphicsfuzz/similar-nested-ifs/0-opt.wgsl.expected.ir.dxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::LoadVectorElement
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/similar-nested-ifs/0-opt.wgsl.expected.ir.fxc.hlsl b/test/tint/vk-gl-cts/graphicsfuzz/similar-nested-ifs/0-opt.wgsl.expected.ir.fxc.hlsl
deleted file mode 100644
index 4a2c666..0000000
--- a/test/tint/vk-gl-cts/graphicsfuzz/similar-nested-ifs/0-opt.wgsl.expected.ir.fxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::LoadVectorElement
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/smoothstep-after-loop/0-opt.spvasm.expected.ir.dxc.hlsl b/test/tint/vk-gl-cts/graphicsfuzz/smoothstep-after-loop/0-opt.spvasm.expected.ir.dxc.hlsl
deleted file mode 100644
index adbb0c1..0000000
--- a/test/tint/vk-gl-cts/graphicsfuzz/smoothstep-after-loop/0-opt.spvasm.expected.ir.dxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:198 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Loop
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/smoothstep-after-loop/0-opt.spvasm.expected.ir.fxc.hlsl b/test/tint/vk-gl-cts/graphicsfuzz/smoothstep-after-loop/0-opt.spvasm.expected.ir.fxc.hlsl
deleted file mode 100644
index adbb0c1..0000000
--- a/test/tint/vk-gl-cts/graphicsfuzz/smoothstep-after-loop/0-opt.spvasm.expected.ir.fxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:198 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Loop
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/smoothstep-after-loop/0-opt.wgsl.expected.ir.dxc.hlsl b/test/tint/vk-gl-cts/graphicsfuzz/smoothstep-after-loop/0-opt.wgsl.expected.ir.dxc.hlsl
deleted file mode 100644
index adbb0c1..0000000
--- a/test/tint/vk-gl-cts/graphicsfuzz/smoothstep-after-loop/0-opt.wgsl.expected.ir.dxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:198 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Loop
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/smoothstep-after-loop/0-opt.wgsl.expected.ir.fxc.hlsl b/test/tint/vk-gl-cts/graphicsfuzz/smoothstep-after-loop/0-opt.wgsl.expected.ir.fxc.hlsl
deleted file mode 100644
index adbb0c1..0000000
--- a/test/tint/vk-gl-cts/graphicsfuzz/smoothstep-after-loop/0-opt.wgsl.expected.ir.fxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:198 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Loop
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/spv-access-chains/0-opt.spvasm.expected.ir.dxc.hlsl b/test/tint/vk-gl-cts/graphicsfuzz/spv-access-chains/0-opt.spvasm.expected.ir.dxc.hlsl
deleted file mode 100644
index ba8c686..0000000
--- a/test/tint/vk-gl-cts/graphicsfuzz/spv-access-chains/0-opt.spvasm.expected.ir.dxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Swizzle
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/spv-access-chains/0-opt.spvasm.expected.ir.fxc.hlsl b/test/tint/vk-gl-cts/graphicsfuzz/spv-access-chains/0-opt.spvasm.expected.ir.fxc.hlsl
deleted file mode 100644
index ba8c686..0000000
--- a/test/tint/vk-gl-cts/graphicsfuzz/spv-access-chains/0-opt.spvasm.expected.ir.fxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Swizzle
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/spv-access-chains/0-opt.wgsl.expected.ir.dxc.hlsl b/test/tint/vk-gl-cts/graphicsfuzz/spv-access-chains/0-opt.wgsl.expected.ir.dxc.hlsl
deleted file mode 100644
index 3f437dc..0000000
--- a/test/tint/vk-gl-cts/graphicsfuzz/spv-access-chains/0-opt.wgsl.expected.ir.dxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Access
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/spv-access-chains/0-opt.wgsl.expected.ir.fxc.hlsl b/test/tint/vk-gl-cts/graphicsfuzz/spv-access-chains/0-opt.wgsl.expected.ir.fxc.hlsl
deleted file mode 100644
index 3f437dc..0000000
--- a/test/tint/vk-gl-cts/graphicsfuzz/spv-access-chains/0-opt.wgsl.expected.ir.fxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Access
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/spv-composite-phi/0.spvasm.expected.ir.dxc.hlsl b/test/tint/vk-gl-cts/graphicsfuzz/spv-composite-phi/0.spvasm.expected.ir.dxc.hlsl
deleted file mode 100644
index 4a2c666..0000000
--- a/test/tint/vk-gl-cts/graphicsfuzz/spv-composite-phi/0.spvasm.expected.ir.dxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::LoadVectorElement
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/spv-composite-phi/0.spvasm.expected.ir.fxc.hlsl b/test/tint/vk-gl-cts/graphicsfuzz/spv-composite-phi/0.spvasm.expected.ir.fxc.hlsl
deleted file mode 100644
index 4a2c666..0000000
--- a/test/tint/vk-gl-cts/graphicsfuzz/spv-composite-phi/0.spvasm.expected.ir.fxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::LoadVectorElement
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/spv-composite-phi/0.wgsl.expected.ir.dxc.hlsl b/test/tint/vk-gl-cts/graphicsfuzz/spv-composite-phi/0.wgsl.expected.ir.dxc.hlsl
deleted file mode 100644
index 4a2c666..0000000
--- a/test/tint/vk-gl-cts/graphicsfuzz/spv-composite-phi/0.wgsl.expected.ir.dxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::LoadVectorElement
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/spv-composite-phi/0.wgsl.expected.ir.fxc.hlsl b/test/tint/vk-gl-cts/graphicsfuzz/spv-composite-phi/0.wgsl.expected.ir.fxc.hlsl
deleted file mode 100644
index 4a2c666..0000000
--- a/test/tint/vk-gl-cts/graphicsfuzz/spv-composite-phi/0.wgsl.expected.ir.fxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::LoadVectorElement
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/spv-composite-phi/1.spvasm.expected.ir.dxc.hlsl b/test/tint/vk-gl-cts/graphicsfuzz/spv-composite-phi/1.spvasm.expected.ir.dxc.hlsl
deleted file mode 100644
index 4a2c666..0000000
--- a/test/tint/vk-gl-cts/graphicsfuzz/spv-composite-phi/1.spvasm.expected.ir.dxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::LoadVectorElement
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/spv-composite-phi/1.spvasm.expected.ir.fxc.hlsl b/test/tint/vk-gl-cts/graphicsfuzz/spv-composite-phi/1.spvasm.expected.ir.fxc.hlsl
deleted file mode 100644
index 4a2c666..0000000
--- a/test/tint/vk-gl-cts/graphicsfuzz/spv-composite-phi/1.spvasm.expected.ir.fxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::LoadVectorElement
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/spv-composite-phi/1.wgsl.expected.ir.dxc.hlsl b/test/tint/vk-gl-cts/graphicsfuzz/spv-composite-phi/1.wgsl.expected.ir.dxc.hlsl
deleted file mode 100644
index 4a2c666..0000000
--- a/test/tint/vk-gl-cts/graphicsfuzz/spv-composite-phi/1.wgsl.expected.ir.dxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::LoadVectorElement
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/spv-composite-phi/1.wgsl.expected.ir.fxc.hlsl b/test/tint/vk-gl-cts/graphicsfuzz/spv-composite-phi/1.wgsl.expected.ir.fxc.hlsl
deleted file mode 100644
index 4a2c666..0000000
--- a/test/tint/vk-gl-cts/graphicsfuzz/spv-composite-phi/1.wgsl.expected.ir.fxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::LoadVectorElement
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/spv-composite2/0.spvasm.expected.ir.dxc.hlsl b/test/tint/vk-gl-cts/graphicsfuzz/spv-composite2/0.spvasm.expected.ir.dxc.hlsl
deleted file mode 100644
index ba8c686..0000000
--- a/test/tint/vk-gl-cts/graphicsfuzz/spv-composite2/0.spvasm.expected.ir.dxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Swizzle
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/spv-composite2/0.spvasm.expected.ir.fxc.hlsl b/test/tint/vk-gl-cts/graphicsfuzz/spv-composite2/0.spvasm.expected.ir.fxc.hlsl
deleted file mode 100644
index ba8c686..0000000
--- a/test/tint/vk-gl-cts/graphicsfuzz/spv-composite2/0.spvasm.expected.ir.fxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Swizzle
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/spv-composite2/0.wgsl.expected.ir.dxc.hlsl b/test/tint/vk-gl-cts/graphicsfuzz/spv-composite2/0.wgsl.expected.ir.dxc.hlsl
deleted file mode 100644
index 3f437dc..0000000
--- a/test/tint/vk-gl-cts/graphicsfuzz/spv-composite2/0.wgsl.expected.ir.dxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Access
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/spv-composite2/0.wgsl.expected.ir.fxc.hlsl b/test/tint/vk-gl-cts/graphicsfuzz/spv-composite2/0.wgsl.expected.ir.fxc.hlsl
deleted file mode 100644
index 3f437dc..0000000
--- a/test/tint/vk-gl-cts/graphicsfuzz/spv-composite2/0.wgsl.expected.ir.fxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Access
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/spv-composite2/1.spvasm.expected.ir.dxc.hlsl b/test/tint/vk-gl-cts/graphicsfuzz/spv-composite2/1.spvasm.expected.ir.dxc.hlsl
deleted file mode 100644
index ba8c686..0000000
--- a/test/tint/vk-gl-cts/graphicsfuzz/spv-composite2/1.spvasm.expected.ir.dxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Swizzle
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/spv-composite2/1.spvasm.expected.ir.fxc.hlsl b/test/tint/vk-gl-cts/graphicsfuzz/spv-composite2/1.spvasm.expected.ir.fxc.hlsl
deleted file mode 100644
index ba8c686..0000000
--- a/test/tint/vk-gl-cts/graphicsfuzz/spv-composite2/1.spvasm.expected.ir.fxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Swizzle
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/spv-composite2/1.wgsl.expected.ir.dxc.hlsl b/test/tint/vk-gl-cts/graphicsfuzz/spv-composite2/1.wgsl.expected.ir.dxc.hlsl
deleted file mode 100644
index c6e1d96..0000000
--- a/test/tint/vk-gl-cts/graphicsfuzz/spv-composite2/1.wgsl.expected.ir.dxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Construct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/spv-composite2/1.wgsl.expected.ir.fxc.hlsl b/test/tint/vk-gl-cts/graphicsfuzz/spv-composite2/1.wgsl.expected.ir.fxc.hlsl
deleted file mode 100644
index c6e1d96..0000000
--- a/test/tint/vk-gl-cts/graphicsfuzz/spv-composite2/1.wgsl.expected.ir.fxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Construct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/spv-composites/0.spvasm.expected.ir.dxc.hlsl b/test/tint/vk-gl-cts/graphicsfuzz/spv-composites/0.spvasm.expected.ir.dxc.hlsl
deleted file mode 100644
index ba8c686..0000000
--- a/test/tint/vk-gl-cts/graphicsfuzz/spv-composites/0.spvasm.expected.ir.dxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Swizzle
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/spv-composites/0.spvasm.expected.ir.fxc.hlsl b/test/tint/vk-gl-cts/graphicsfuzz/spv-composites/0.spvasm.expected.ir.fxc.hlsl
deleted file mode 100644
index ba8c686..0000000
--- a/test/tint/vk-gl-cts/graphicsfuzz/spv-composites/0.spvasm.expected.ir.fxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Swizzle
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/spv-composites/0.wgsl.expected.ir.dxc.hlsl b/test/tint/vk-gl-cts/graphicsfuzz/spv-composites/0.wgsl.expected.ir.dxc.hlsl
deleted file mode 100644
index 3f437dc..0000000
--- a/test/tint/vk-gl-cts/graphicsfuzz/spv-composites/0.wgsl.expected.ir.dxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Access
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/spv-composites/0.wgsl.expected.ir.fxc.hlsl b/test/tint/vk-gl-cts/graphicsfuzz/spv-composites/0.wgsl.expected.ir.fxc.hlsl
deleted file mode 100644
index 3f437dc..0000000
--- a/test/tint/vk-gl-cts/graphicsfuzz/spv-composites/0.wgsl.expected.ir.fxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Access
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/spv-composites/1.spvasm.expected.ir.dxc.hlsl b/test/tint/vk-gl-cts/graphicsfuzz/spv-composites/1.spvasm.expected.ir.dxc.hlsl
deleted file mode 100644
index 3f437dc..0000000
--- a/test/tint/vk-gl-cts/graphicsfuzz/spv-composites/1.spvasm.expected.ir.dxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Access
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/spv-composites/1.spvasm.expected.ir.fxc.hlsl b/test/tint/vk-gl-cts/graphicsfuzz/spv-composites/1.spvasm.expected.ir.fxc.hlsl
deleted file mode 100644
index 3f437dc..0000000
--- a/test/tint/vk-gl-cts/graphicsfuzz/spv-composites/1.spvasm.expected.ir.fxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Access
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/spv-composites/1.wgsl.expected.ir.dxc.hlsl b/test/tint/vk-gl-cts/graphicsfuzz/spv-composites/1.wgsl.expected.ir.dxc.hlsl
deleted file mode 100644
index 3f437dc..0000000
--- a/test/tint/vk-gl-cts/graphicsfuzz/spv-composites/1.wgsl.expected.ir.dxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Access
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/spv-composites/1.wgsl.expected.ir.fxc.hlsl b/test/tint/vk-gl-cts/graphicsfuzz/spv-composites/1.wgsl.expected.ir.fxc.hlsl
deleted file mode 100644
index 3f437dc..0000000
--- a/test/tint/vk-gl-cts/graphicsfuzz/spv-composites/1.wgsl.expected.ir.fxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Access
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/spv-dead-break-and-unroll/1.spvasm.expected.ir.dxc.hlsl b/test/tint/vk-gl-cts/graphicsfuzz/spv-dead-break-and-unroll/1.spvasm.expected.ir.dxc.hlsl
deleted file mode 100644
index ba8c686..0000000
--- a/test/tint/vk-gl-cts/graphicsfuzz/spv-dead-break-and-unroll/1.spvasm.expected.ir.dxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Swizzle
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/spv-dead-break-and-unroll/1.spvasm.expected.ir.fxc.hlsl b/test/tint/vk-gl-cts/graphicsfuzz/spv-dead-break-and-unroll/1.spvasm.expected.ir.fxc.hlsl
deleted file mode 100644
index ba8c686..0000000
--- a/test/tint/vk-gl-cts/graphicsfuzz/spv-dead-break-and-unroll/1.spvasm.expected.ir.fxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Swizzle
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/spv-dead-break-and-unroll/1.wgsl.expected.ir.dxc.hlsl b/test/tint/vk-gl-cts/graphicsfuzz/spv-dead-break-and-unroll/1.wgsl.expected.ir.dxc.hlsl
deleted file mode 100644
index 3f437dc..0000000
--- a/test/tint/vk-gl-cts/graphicsfuzz/spv-dead-break-and-unroll/1.wgsl.expected.ir.dxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Access
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/spv-dead-break-and-unroll/1.wgsl.expected.ir.fxc.hlsl b/test/tint/vk-gl-cts/graphicsfuzz/spv-dead-break-and-unroll/1.wgsl.expected.ir.fxc.hlsl
deleted file mode 100644
index 3f437dc..0000000
--- a/test/tint/vk-gl-cts/graphicsfuzz/spv-dead-break-and-unroll/1.wgsl.expected.ir.fxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Access
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/spv-declare-bvec4/0-opt.spvasm.expected.ir.dxc.hlsl b/test/tint/vk-gl-cts/graphicsfuzz/spv-declare-bvec4/0-opt.spvasm.expected.ir.dxc.hlsl
deleted file mode 100644
index bdeab23..0000000
--- a/test/tint/vk-gl-cts/graphicsfuzz/spv-declare-bvec4/0-opt.spvasm.expected.ir.dxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:198 internal compiler error: Switch() matched no cases. Type: tint::core::ir::If
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/spv-declare-bvec4/0-opt.spvasm.expected.ir.fxc.hlsl b/test/tint/vk-gl-cts/graphicsfuzz/spv-declare-bvec4/0-opt.spvasm.expected.ir.fxc.hlsl
deleted file mode 100644
index bdeab23..0000000
--- a/test/tint/vk-gl-cts/graphicsfuzz/spv-declare-bvec4/0-opt.spvasm.expected.ir.fxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:198 internal compiler error: Switch() matched no cases. Type: tint::core::ir::If
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/spv-declare-bvec4/0-opt.wgsl.expected.ir.dxc.hlsl b/test/tint/vk-gl-cts/graphicsfuzz/spv-declare-bvec4/0-opt.wgsl.expected.ir.dxc.hlsl
deleted file mode 100644
index 4a2c666..0000000
--- a/test/tint/vk-gl-cts/graphicsfuzz/spv-declare-bvec4/0-opt.wgsl.expected.ir.dxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::LoadVectorElement
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/spv-declare-bvec4/0-opt.wgsl.expected.ir.fxc.hlsl b/test/tint/vk-gl-cts/graphicsfuzz/spv-declare-bvec4/0-opt.wgsl.expected.ir.fxc.hlsl
deleted file mode 100644
index 4a2c666..0000000
--- a/test/tint/vk-gl-cts/graphicsfuzz/spv-declare-bvec4/0-opt.wgsl.expected.ir.fxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::LoadVectorElement
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/spv-declare-bvec4/1.spvasm.expected.ir.dxc.hlsl b/test/tint/vk-gl-cts/graphicsfuzz/spv-declare-bvec4/1.spvasm.expected.ir.dxc.hlsl
deleted file mode 100644
index bdeab23..0000000
--- a/test/tint/vk-gl-cts/graphicsfuzz/spv-declare-bvec4/1.spvasm.expected.ir.dxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:198 internal compiler error: Switch() matched no cases. Type: tint::core::ir::If
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/spv-declare-bvec4/1.spvasm.expected.ir.fxc.hlsl b/test/tint/vk-gl-cts/graphicsfuzz/spv-declare-bvec4/1.spvasm.expected.ir.fxc.hlsl
deleted file mode 100644
index bdeab23..0000000
--- a/test/tint/vk-gl-cts/graphicsfuzz/spv-declare-bvec4/1.spvasm.expected.ir.fxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:198 internal compiler error: Switch() matched no cases. Type: tint::core::ir::If
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/spv-declare-bvec4/1.wgsl.expected.ir.dxc.hlsl b/test/tint/vk-gl-cts/graphicsfuzz/spv-declare-bvec4/1.wgsl.expected.ir.dxc.hlsl
deleted file mode 100644
index 4a2c666..0000000
--- a/test/tint/vk-gl-cts/graphicsfuzz/spv-declare-bvec4/1.wgsl.expected.ir.dxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::LoadVectorElement
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/spv-declare-bvec4/1.wgsl.expected.ir.fxc.hlsl b/test/tint/vk-gl-cts/graphicsfuzz/spv-declare-bvec4/1.wgsl.expected.ir.fxc.hlsl
deleted file mode 100644
index 4a2c666..0000000
--- a/test/tint/vk-gl-cts/graphicsfuzz/spv-declare-bvec4/1.wgsl.expected.ir.fxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::LoadVectorElement
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/spv-double-branch-to-same-block/0-opt.spvasm.expected.ir.dxc.hlsl b/test/tint/vk-gl-cts/graphicsfuzz/spv-double-branch-to-same-block/0-opt.spvasm.expected.ir.dxc.hlsl
index 6b047b4..d1ee477 100644
--- a/test/tint/vk-gl-cts/graphicsfuzz/spv-double-branch-to-same-block/0-opt.spvasm.expected.ir.dxc.hlsl
+++ b/test/tint/vk-gl-cts/graphicsfuzz/spv-double-branch-to-same-block/0-opt.spvasm.expected.ir.dxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:287 internal compiler error: Switch() matched no cases. Type: tint::core::ir::FunctionParam
+..\..\src\tint\lang\core\ir\transform\demote_to_helper.cc:208 internal compiler error: TINT_UNREACHABLE unexpected non-core instruction
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/spv-double-branch-to-same-block/0-opt.spvasm.expected.ir.fxc.hlsl b/test/tint/vk-gl-cts/graphicsfuzz/spv-double-branch-to-same-block/0-opt.spvasm.expected.ir.fxc.hlsl
index 6b047b4..d1ee477 100644
--- a/test/tint/vk-gl-cts/graphicsfuzz/spv-double-branch-to-same-block/0-opt.spvasm.expected.ir.fxc.hlsl
+++ b/test/tint/vk-gl-cts/graphicsfuzz/spv-double-branch-to-same-block/0-opt.spvasm.expected.ir.fxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:287 internal compiler error: Switch() matched no cases. Type: tint::core::ir::FunctionParam
+..\..\src\tint\lang\core\ir\transform\demote_to_helper.cc:208 internal compiler error: TINT_UNREACHABLE unexpected non-core instruction
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/spv-double-branch-to-same-block/0-opt.wgsl.expected.ir.dxc.hlsl b/test/tint/vk-gl-cts/graphicsfuzz/spv-double-branch-to-same-block/0-opt.wgsl.expected.ir.dxc.hlsl
index 6b047b4..d1ee477 100644
--- a/test/tint/vk-gl-cts/graphicsfuzz/spv-double-branch-to-same-block/0-opt.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/vk-gl-cts/graphicsfuzz/spv-double-branch-to-same-block/0-opt.wgsl.expected.ir.dxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:287 internal compiler error: Switch() matched no cases. Type: tint::core::ir::FunctionParam
+..\..\src\tint\lang\core\ir\transform\demote_to_helper.cc:208 internal compiler error: TINT_UNREACHABLE unexpected non-core instruction
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/spv-double-branch-to-same-block/0-opt.wgsl.expected.ir.fxc.hlsl b/test/tint/vk-gl-cts/graphicsfuzz/spv-double-branch-to-same-block/0-opt.wgsl.expected.ir.fxc.hlsl
index 6b047b4..d1ee477 100644
--- a/test/tint/vk-gl-cts/graphicsfuzz/spv-double-branch-to-same-block/0-opt.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/vk-gl-cts/graphicsfuzz/spv-double-branch-to-same-block/0-opt.wgsl.expected.ir.fxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:287 internal compiler error: Switch() matched no cases. Type: tint::core::ir::FunctionParam
+..\..\src\tint\lang\core\ir\transform\demote_to_helper.cc:208 internal compiler error: TINT_UNREACHABLE unexpected non-core instruction
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/spv-double-branch-to-same-block/1.spvasm.expected.ir.dxc.hlsl b/test/tint/vk-gl-cts/graphicsfuzz/spv-double-branch-to-same-block/1.spvasm.expected.ir.dxc.hlsl
index 6b047b4..d1ee477 100644
--- a/test/tint/vk-gl-cts/graphicsfuzz/spv-double-branch-to-same-block/1.spvasm.expected.ir.dxc.hlsl
+++ b/test/tint/vk-gl-cts/graphicsfuzz/spv-double-branch-to-same-block/1.spvasm.expected.ir.dxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:287 internal compiler error: Switch() matched no cases. Type: tint::core::ir::FunctionParam
+..\..\src\tint\lang\core\ir\transform\demote_to_helper.cc:208 internal compiler error: TINT_UNREACHABLE unexpected non-core instruction
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/spv-double-branch-to-same-block/1.spvasm.expected.ir.fxc.hlsl b/test/tint/vk-gl-cts/graphicsfuzz/spv-double-branch-to-same-block/1.spvasm.expected.ir.fxc.hlsl
index 6b047b4..d1ee477 100644
--- a/test/tint/vk-gl-cts/graphicsfuzz/spv-double-branch-to-same-block/1.spvasm.expected.ir.fxc.hlsl
+++ b/test/tint/vk-gl-cts/graphicsfuzz/spv-double-branch-to-same-block/1.spvasm.expected.ir.fxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:287 internal compiler error: Switch() matched no cases. Type: tint::core::ir::FunctionParam
+..\..\src\tint\lang\core\ir\transform\demote_to_helper.cc:208 internal compiler error: TINT_UNREACHABLE unexpected non-core instruction
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/spv-double-branch-to-same-block/1.wgsl.expected.ir.dxc.hlsl b/test/tint/vk-gl-cts/graphicsfuzz/spv-double-branch-to-same-block/1.wgsl.expected.ir.dxc.hlsl
index 6b047b4..d1ee477 100644
--- a/test/tint/vk-gl-cts/graphicsfuzz/spv-double-branch-to-same-block/1.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/vk-gl-cts/graphicsfuzz/spv-double-branch-to-same-block/1.wgsl.expected.ir.dxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:287 internal compiler error: Switch() matched no cases. Type: tint::core::ir::FunctionParam
+..\..\src\tint\lang\core\ir\transform\demote_to_helper.cc:208 internal compiler error: TINT_UNREACHABLE unexpected non-core instruction
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/spv-double-branch-to-same-block/1.wgsl.expected.ir.fxc.hlsl b/test/tint/vk-gl-cts/graphicsfuzz/spv-double-branch-to-same-block/1.wgsl.expected.ir.fxc.hlsl
index 6b047b4..d1ee477 100644
--- a/test/tint/vk-gl-cts/graphicsfuzz/spv-double-branch-to-same-block/1.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/vk-gl-cts/graphicsfuzz/spv-double-branch-to-same-block/1.wgsl.expected.ir.fxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:287 internal compiler error: Switch() matched no cases. Type: tint::core::ir::FunctionParam
+..\..\src\tint\lang\core\ir\transform\demote_to_helper.cc:208 internal compiler error: TINT_UNREACHABLE unexpected non-core instruction
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/spv-double-branch-to-same-block2/0.spvasm.expected.ir.dxc.hlsl b/test/tint/vk-gl-cts/graphicsfuzz/spv-double-branch-to-same-block2/0.spvasm.expected.ir.dxc.hlsl
deleted file mode 100644
index adbb0c1..0000000
--- a/test/tint/vk-gl-cts/graphicsfuzz/spv-double-branch-to-same-block2/0.spvasm.expected.ir.dxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:198 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Loop
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/spv-double-branch-to-same-block2/0.spvasm.expected.ir.fxc.hlsl b/test/tint/vk-gl-cts/graphicsfuzz/spv-double-branch-to-same-block2/0.spvasm.expected.ir.fxc.hlsl
deleted file mode 100644
index adbb0c1..0000000
--- a/test/tint/vk-gl-cts/graphicsfuzz/spv-double-branch-to-same-block2/0.spvasm.expected.ir.fxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:198 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Loop
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/spv-double-branch-to-same-block2/0.wgsl.expected.ir.dxc.hlsl b/test/tint/vk-gl-cts/graphicsfuzz/spv-double-branch-to-same-block2/0.wgsl.expected.ir.dxc.hlsl
deleted file mode 100644
index adbb0c1..0000000
--- a/test/tint/vk-gl-cts/graphicsfuzz/spv-double-branch-to-same-block2/0.wgsl.expected.ir.dxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:198 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Loop
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/spv-double-branch-to-same-block2/0.wgsl.expected.ir.fxc.hlsl b/test/tint/vk-gl-cts/graphicsfuzz/spv-double-branch-to-same-block2/0.wgsl.expected.ir.fxc.hlsl
deleted file mode 100644
index adbb0c1..0000000
--- a/test/tint/vk-gl-cts/graphicsfuzz/spv-double-branch-to-same-block2/0.wgsl.expected.ir.fxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:198 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Loop
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/spv-double-branch-to-same-block2/1.spvasm.expected.ir.dxc.hlsl b/test/tint/vk-gl-cts/graphicsfuzz/spv-double-branch-to-same-block2/1.spvasm.expected.ir.dxc.hlsl
deleted file mode 100644
index adbb0c1..0000000
--- a/test/tint/vk-gl-cts/graphicsfuzz/spv-double-branch-to-same-block2/1.spvasm.expected.ir.dxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:198 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Loop
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/spv-double-branch-to-same-block2/1.spvasm.expected.ir.fxc.hlsl b/test/tint/vk-gl-cts/graphicsfuzz/spv-double-branch-to-same-block2/1.spvasm.expected.ir.fxc.hlsl
deleted file mode 100644
index adbb0c1..0000000
--- a/test/tint/vk-gl-cts/graphicsfuzz/spv-double-branch-to-same-block2/1.spvasm.expected.ir.fxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:198 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Loop
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/spv-double-branch-to-same-block2/1.wgsl.expected.ir.dxc.hlsl b/test/tint/vk-gl-cts/graphicsfuzz/spv-double-branch-to-same-block2/1.wgsl.expected.ir.dxc.hlsl
deleted file mode 100644
index adbb0c1..0000000
--- a/test/tint/vk-gl-cts/graphicsfuzz/spv-double-branch-to-same-block2/1.wgsl.expected.ir.dxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:198 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Loop
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/spv-double-branch-to-same-block2/1.wgsl.expected.ir.fxc.hlsl b/test/tint/vk-gl-cts/graphicsfuzz/spv-double-branch-to-same-block2/1.wgsl.expected.ir.fxc.hlsl
deleted file mode 100644
index adbb0c1..0000000
--- a/test/tint/vk-gl-cts/graphicsfuzz/spv-double-branch-to-same-block2/1.wgsl.expected.ir.fxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:198 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Loop
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/spv-double-branch-to-same-block3/1.spvasm.expected.ir.dxc.hlsl b/test/tint/vk-gl-cts/graphicsfuzz/spv-double-branch-to-same-block3/1.spvasm.expected.ir.dxc.hlsl
index 6b047b4..d1ee477 100644
--- a/test/tint/vk-gl-cts/graphicsfuzz/spv-double-branch-to-same-block3/1.spvasm.expected.ir.dxc.hlsl
+++ b/test/tint/vk-gl-cts/graphicsfuzz/spv-double-branch-to-same-block3/1.spvasm.expected.ir.dxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:287 internal compiler error: Switch() matched no cases. Type: tint::core::ir::FunctionParam
+..\..\src\tint\lang\core\ir\transform\demote_to_helper.cc:208 internal compiler error: TINT_UNREACHABLE unexpected non-core instruction
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/spv-double-branch-to-same-block3/1.spvasm.expected.ir.fxc.hlsl b/test/tint/vk-gl-cts/graphicsfuzz/spv-double-branch-to-same-block3/1.spvasm.expected.ir.fxc.hlsl
index 6b047b4..d1ee477 100644
--- a/test/tint/vk-gl-cts/graphicsfuzz/spv-double-branch-to-same-block3/1.spvasm.expected.ir.fxc.hlsl
+++ b/test/tint/vk-gl-cts/graphicsfuzz/spv-double-branch-to-same-block3/1.spvasm.expected.ir.fxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:287 internal compiler error: Switch() matched no cases. Type: tint::core::ir::FunctionParam
+..\..\src\tint\lang\core\ir\transform\demote_to_helper.cc:208 internal compiler error: TINT_UNREACHABLE unexpected non-core instruction
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/spv-double-branch-to-same-block3/1.wgsl.expected.ir.dxc.hlsl b/test/tint/vk-gl-cts/graphicsfuzz/spv-double-branch-to-same-block3/1.wgsl.expected.ir.dxc.hlsl
index 6b047b4..d1ee477 100644
--- a/test/tint/vk-gl-cts/graphicsfuzz/spv-double-branch-to-same-block3/1.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/vk-gl-cts/graphicsfuzz/spv-double-branch-to-same-block3/1.wgsl.expected.ir.dxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:287 internal compiler error: Switch() matched no cases. Type: tint::core::ir::FunctionParam
+..\..\src\tint\lang\core\ir\transform\demote_to_helper.cc:208 internal compiler error: TINT_UNREACHABLE unexpected non-core instruction
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/spv-double-branch-to-same-block3/1.wgsl.expected.ir.fxc.hlsl b/test/tint/vk-gl-cts/graphicsfuzz/spv-double-branch-to-same-block3/1.wgsl.expected.ir.fxc.hlsl
index 6b047b4..d1ee477 100644
--- a/test/tint/vk-gl-cts/graphicsfuzz/spv-double-branch-to-same-block3/1.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/vk-gl-cts/graphicsfuzz/spv-double-branch-to-same-block3/1.wgsl.expected.ir.fxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:287 internal compiler error: Switch() matched no cases. Type: tint::core::ir::FunctionParam
+..\..\src\tint\lang\core\ir\transform\demote_to_helper.cc:208 internal compiler error: TINT_UNREACHABLE unexpected non-core instruction
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/spv-load-from-frag-color/1.spvasm.expected.ir.dxc.hlsl b/test/tint/vk-gl-cts/graphicsfuzz/spv-load-from-frag-color/1.spvasm.expected.ir.dxc.hlsl
deleted file mode 100644
index 3f437dc..0000000
--- a/test/tint/vk-gl-cts/graphicsfuzz/spv-load-from-frag-color/1.spvasm.expected.ir.dxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Access
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/spv-load-from-frag-color/1.spvasm.expected.ir.fxc.hlsl b/test/tint/vk-gl-cts/graphicsfuzz/spv-load-from-frag-color/1.spvasm.expected.ir.fxc.hlsl
deleted file mode 100644
index 3f437dc..0000000
--- a/test/tint/vk-gl-cts/graphicsfuzz/spv-load-from-frag-color/1.spvasm.expected.ir.fxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Access
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/spv-load-from-frag-color/1.wgsl.expected.ir.dxc.hlsl b/test/tint/vk-gl-cts/graphicsfuzz/spv-load-from-frag-color/1.wgsl.expected.ir.dxc.hlsl
deleted file mode 100644
index 3f437dc..0000000
--- a/test/tint/vk-gl-cts/graphicsfuzz/spv-load-from-frag-color/1.wgsl.expected.ir.dxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Access
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/spv-load-from-frag-color/1.wgsl.expected.ir.fxc.hlsl b/test/tint/vk-gl-cts/graphicsfuzz/spv-load-from-frag-color/1.wgsl.expected.ir.fxc.hlsl
deleted file mode 100644
index 3f437dc..0000000
--- a/test/tint/vk-gl-cts/graphicsfuzz/spv-load-from-frag-color/1.wgsl.expected.ir.fxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Access
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/spv-null-in-phi-and-unroll/1.spvasm.expected.ir.dxc.hlsl b/test/tint/vk-gl-cts/graphicsfuzz/spv-null-in-phi-and-unroll/1.spvasm.expected.ir.dxc.hlsl
deleted file mode 100644
index ba8c686..0000000
--- a/test/tint/vk-gl-cts/graphicsfuzz/spv-null-in-phi-and-unroll/1.spvasm.expected.ir.dxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Swizzle
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/spv-null-in-phi-and-unroll/1.spvasm.expected.ir.fxc.hlsl b/test/tint/vk-gl-cts/graphicsfuzz/spv-null-in-phi-and-unroll/1.spvasm.expected.ir.fxc.hlsl
deleted file mode 100644
index ba8c686..0000000
--- a/test/tint/vk-gl-cts/graphicsfuzz/spv-null-in-phi-and-unroll/1.spvasm.expected.ir.fxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Swizzle
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/spv-null-in-phi-and-unroll/1.wgsl.expected.ir.dxc.hlsl b/test/tint/vk-gl-cts/graphicsfuzz/spv-null-in-phi-and-unroll/1.wgsl.expected.ir.dxc.hlsl
deleted file mode 100644
index 3f437dc..0000000
--- a/test/tint/vk-gl-cts/graphicsfuzz/spv-null-in-phi-and-unroll/1.wgsl.expected.ir.dxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Access
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/spv-null-in-phi-and-unroll/1.wgsl.expected.ir.fxc.hlsl b/test/tint/vk-gl-cts/graphicsfuzz/spv-null-in-phi-and-unroll/1.wgsl.expected.ir.fxc.hlsl
deleted file mode 100644
index 3f437dc..0000000
--- a/test/tint/vk-gl-cts/graphicsfuzz/spv-null-in-phi-and-unroll/1.wgsl.expected.ir.fxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Access
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/spv-stable-bifurcation-Os-mutate-var-vector-shuffle/1.spvasm.expected.ir.dxc.hlsl b/test/tint/vk-gl-cts/graphicsfuzz/spv-stable-bifurcation-Os-mutate-var-vector-shuffle/1.spvasm.expected.ir.dxc.hlsl
deleted file mode 100644
index ba8c686..0000000
--- a/test/tint/vk-gl-cts/graphicsfuzz/spv-stable-bifurcation-Os-mutate-var-vector-shuffle/1.spvasm.expected.ir.dxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Swizzle
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/spv-stable-bifurcation-Os-mutate-var-vector-shuffle/1.spvasm.expected.ir.fxc.hlsl b/test/tint/vk-gl-cts/graphicsfuzz/spv-stable-bifurcation-Os-mutate-var-vector-shuffle/1.spvasm.expected.ir.fxc.hlsl
deleted file mode 100644
index ba8c686..0000000
--- a/test/tint/vk-gl-cts/graphicsfuzz/spv-stable-bifurcation-Os-mutate-var-vector-shuffle/1.spvasm.expected.ir.fxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Swizzle
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/spv-stable-bifurcation-Os-mutate-var-vector-shuffle/1.wgsl.expected.ir.dxc.hlsl b/test/tint/vk-gl-cts/graphicsfuzz/spv-stable-bifurcation-Os-mutate-var-vector-shuffle/1.wgsl.expected.ir.dxc.hlsl
deleted file mode 100644
index 3f437dc..0000000
--- a/test/tint/vk-gl-cts/graphicsfuzz/spv-stable-bifurcation-Os-mutate-var-vector-shuffle/1.wgsl.expected.ir.dxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Access
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/spv-stable-bifurcation-Os-mutate-var-vector-shuffle/1.wgsl.expected.ir.fxc.hlsl b/test/tint/vk-gl-cts/graphicsfuzz/spv-stable-bifurcation-Os-mutate-var-vector-shuffle/1.wgsl.expected.ir.fxc.hlsl
deleted file mode 100644
index 3f437dc..0000000
--- a/test/tint/vk-gl-cts/graphicsfuzz/spv-stable-bifurcation-Os-mutate-var-vector-shuffle/1.wgsl.expected.ir.fxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Access
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/spv-stable-bifurcation-Os-mutate-var-vector-shuffle/2.spvasm.expected.ir.dxc.hlsl b/test/tint/vk-gl-cts/graphicsfuzz/spv-stable-bifurcation-Os-mutate-var-vector-shuffle/2.spvasm.expected.ir.dxc.hlsl
deleted file mode 100644
index ba8c686..0000000
--- a/test/tint/vk-gl-cts/graphicsfuzz/spv-stable-bifurcation-Os-mutate-var-vector-shuffle/2.spvasm.expected.ir.dxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Swizzle
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/spv-stable-bifurcation-Os-mutate-var-vector-shuffle/2.spvasm.expected.ir.fxc.hlsl b/test/tint/vk-gl-cts/graphicsfuzz/spv-stable-bifurcation-Os-mutate-var-vector-shuffle/2.spvasm.expected.ir.fxc.hlsl
deleted file mode 100644
index ba8c686..0000000
--- a/test/tint/vk-gl-cts/graphicsfuzz/spv-stable-bifurcation-Os-mutate-var-vector-shuffle/2.spvasm.expected.ir.fxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Swizzle
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/spv-stable-bifurcation-Os-mutate-var-vector-shuffle/2.wgsl.expected.ir.dxc.hlsl b/test/tint/vk-gl-cts/graphicsfuzz/spv-stable-bifurcation-Os-mutate-var-vector-shuffle/2.wgsl.expected.ir.dxc.hlsl
deleted file mode 100644
index 3f437dc..0000000
--- a/test/tint/vk-gl-cts/graphicsfuzz/spv-stable-bifurcation-Os-mutate-var-vector-shuffle/2.wgsl.expected.ir.dxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Access
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/spv-stable-bifurcation-Os-mutate-var-vector-shuffle/2.wgsl.expected.ir.fxc.hlsl b/test/tint/vk-gl-cts/graphicsfuzz/spv-stable-bifurcation-Os-mutate-var-vector-shuffle/2.wgsl.expected.ir.fxc.hlsl
deleted file mode 100644
index 3f437dc..0000000
--- a/test/tint/vk-gl-cts/graphicsfuzz/spv-stable-bifurcation-Os-mutate-var-vector-shuffle/2.wgsl.expected.ir.fxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Access
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/spv-stable-bubblesort-flag-complex-conditionals/0.spvasm.expected.ir.dxc.hlsl b/test/tint/vk-gl-cts/graphicsfuzz/spv-stable-bubblesort-flag-complex-conditionals/0.spvasm.expected.ir.dxc.hlsl
deleted file mode 100644
index bdeab23..0000000
--- a/test/tint/vk-gl-cts/graphicsfuzz/spv-stable-bubblesort-flag-complex-conditionals/0.spvasm.expected.ir.dxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:198 internal compiler error: Switch() matched no cases. Type: tint::core::ir::If
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/spv-stable-bubblesort-flag-complex-conditionals/0.spvasm.expected.ir.fxc.hlsl b/test/tint/vk-gl-cts/graphicsfuzz/spv-stable-bubblesort-flag-complex-conditionals/0.spvasm.expected.ir.fxc.hlsl
deleted file mode 100644
index bdeab23..0000000
--- a/test/tint/vk-gl-cts/graphicsfuzz/spv-stable-bubblesort-flag-complex-conditionals/0.spvasm.expected.ir.fxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:198 internal compiler error: Switch() matched no cases. Type: tint::core::ir::If
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/spv-stable-bubblesort-flag-complex-conditionals/0.wgsl.expected.ir.dxc.hlsl b/test/tint/vk-gl-cts/graphicsfuzz/spv-stable-bubblesort-flag-complex-conditionals/0.wgsl.expected.ir.dxc.hlsl
deleted file mode 100644
index 4a2c666..0000000
--- a/test/tint/vk-gl-cts/graphicsfuzz/spv-stable-bubblesort-flag-complex-conditionals/0.wgsl.expected.ir.dxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::LoadVectorElement
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/spv-stable-bubblesort-flag-complex-conditionals/0.wgsl.expected.ir.fxc.hlsl b/test/tint/vk-gl-cts/graphicsfuzz/spv-stable-bubblesort-flag-complex-conditionals/0.wgsl.expected.ir.fxc.hlsl
deleted file mode 100644
index 4a2c666..0000000
--- a/test/tint/vk-gl-cts/graphicsfuzz/spv-stable-bubblesort-flag-complex-conditionals/0.wgsl.expected.ir.fxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::LoadVectorElement
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/spv-stable-bubblesort-flag-complex-conditionals/1.spvasm.expected.ir.dxc.hlsl b/test/tint/vk-gl-cts/graphicsfuzz/spv-stable-bubblesort-flag-complex-conditionals/1.spvasm.expected.ir.dxc.hlsl
deleted file mode 100644
index 4a2c666..0000000
--- a/test/tint/vk-gl-cts/graphicsfuzz/spv-stable-bubblesort-flag-complex-conditionals/1.spvasm.expected.ir.dxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::LoadVectorElement
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/spv-stable-bubblesort-flag-complex-conditionals/1.spvasm.expected.ir.fxc.hlsl b/test/tint/vk-gl-cts/graphicsfuzz/spv-stable-bubblesort-flag-complex-conditionals/1.spvasm.expected.ir.fxc.hlsl
deleted file mode 100644
index 4a2c666..0000000
--- a/test/tint/vk-gl-cts/graphicsfuzz/spv-stable-bubblesort-flag-complex-conditionals/1.spvasm.expected.ir.fxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::LoadVectorElement
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/spv-stable-bubblesort-flag-complex-conditionals/1.wgsl.expected.ir.dxc.hlsl b/test/tint/vk-gl-cts/graphicsfuzz/spv-stable-bubblesort-flag-complex-conditionals/1.wgsl.expected.ir.dxc.hlsl
deleted file mode 100644
index 4a2c666..0000000
--- a/test/tint/vk-gl-cts/graphicsfuzz/spv-stable-bubblesort-flag-complex-conditionals/1.wgsl.expected.ir.dxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::LoadVectorElement
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/spv-stable-bubblesort-flag-complex-conditionals/1.wgsl.expected.ir.fxc.hlsl b/test/tint/vk-gl-cts/graphicsfuzz/spv-stable-bubblesort-flag-complex-conditionals/1.wgsl.expected.ir.fxc.hlsl
deleted file mode 100644
index 4a2c666..0000000
--- a/test/tint/vk-gl-cts/graphicsfuzz/spv-stable-bubblesort-flag-complex-conditionals/1.wgsl.expected.ir.fxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::LoadVectorElement
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/spv-stable-collatz-O-mutate-composite-construct-extract/0.spvasm.expected.ir.dxc.hlsl b/test/tint/vk-gl-cts/graphicsfuzz/spv-stable-collatz-O-mutate-composite-construct-extract/0.spvasm.expected.ir.dxc.hlsl
deleted file mode 100644
index ba8c686..0000000
--- a/test/tint/vk-gl-cts/graphicsfuzz/spv-stable-collatz-O-mutate-composite-construct-extract/0.spvasm.expected.ir.dxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Swizzle
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/spv-stable-collatz-O-mutate-composite-construct-extract/0.spvasm.expected.ir.fxc.hlsl b/test/tint/vk-gl-cts/graphicsfuzz/spv-stable-collatz-O-mutate-composite-construct-extract/0.spvasm.expected.ir.fxc.hlsl
deleted file mode 100644
index ba8c686..0000000
--- a/test/tint/vk-gl-cts/graphicsfuzz/spv-stable-collatz-O-mutate-composite-construct-extract/0.spvasm.expected.ir.fxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Swizzle
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/spv-stable-collatz-O-mutate-composite-construct-extract/0.wgsl.expected.ir.dxc.hlsl b/test/tint/vk-gl-cts/graphicsfuzz/spv-stable-collatz-O-mutate-composite-construct-extract/0.wgsl.expected.ir.dxc.hlsl
deleted file mode 100644
index 3f437dc..0000000
--- a/test/tint/vk-gl-cts/graphicsfuzz/spv-stable-collatz-O-mutate-composite-construct-extract/0.wgsl.expected.ir.dxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Access
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/spv-stable-collatz-O-mutate-composite-construct-extract/0.wgsl.expected.ir.fxc.hlsl b/test/tint/vk-gl-cts/graphicsfuzz/spv-stable-collatz-O-mutate-composite-construct-extract/0.wgsl.expected.ir.fxc.hlsl
deleted file mode 100644
index 3f437dc..0000000
--- a/test/tint/vk-gl-cts/graphicsfuzz/spv-stable-collatz-O-mutate-composite-construct-extract/0.wgsl.expected.ir.fxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Access
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/spv-stable-collatz-O-mutate-composite-construct-extract/1.spvasm.expected.ir.dxc.hlsl b/test/tint/vk-gl-cts/graphicsfuzz/spv-stable-collatz-O-mutate-composite-construct-extract/1.spvasm.expected.ir.dxc.hlsl
deleted file mode 100644
index ba8c686..0000000
--- a/test/tint/vk-gl-cts/graphicsfuzz/spv-stable-collatz-O-mutate-composite-construct-extract/1.spvasm.expected.ir.dxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Swizzle
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/spv-stable-collatz-O-mutate-composite-construct-extract/1.spvasm.expected.ir.fxc.hlsl b/test/tint/vk-gl-cts/graphicsfuzz/spv-stable-collatz-O-mutate-composite-construct-extract/1.spvasm.expected.ir.fxc.hlsl
deleted file mode 100644
index ba8c686..0000000
--- a/test/tint/vk-gl-cts/graphicsfuzz/spv-stable-collatz-O-mutate-composite-construct-extract/1.spvasm.expected.ir.fxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Swizzle
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/spv-stable-collatz-O-mutate-composite-construct-extract/1.wgsl.expected.ir.dxc.hlsl b/test/tint/vk-gl-cts/graphicsfuzz/spv-stable-collatz-O-mutate-composite-construct-extract/1.wgsl.expected.ir.dxc.hlsl
deleted file mode 100644
index c6e1d96..0000000
--- a/test/tint/vk-gl-cts/graphicsfuzz/spv-stable-collatz-O-mutate-composite-construct-extract/1.wgsl.expected.ir.dxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Construct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/spv-stable-collatz-O-mutate-composite-construct-extract/1.wgsl.expected.ir.fxc.hlsl b/test/tint/vk-gl-cts/graphicsfuzz/spv-stable-collatz-O-mutate-composite-construct-extract/1.wgsl.expected.ir.fxc.hlsl
deleted file mode 100644
index c6e1d96..0000000
--- a/test/tint/vk-gl-cts/graphicsfuzz/spv-stable-collatz-O-mutate-composite-construct-extract/1.wgsl.expected.ir.fxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Construct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/spv-stable-colorgrid-modulo-O-move-block-down/1.spvasm.expected.ir.dxc.hlsl b/test/tint/vk-gl-cts/graphicsfuzz/spv-stable-colorgrid-modulo-O-move-block-down/1.spvasm.expected.ir.dxc.hlsl
deleted file mode 100644
index 4a2c666..0000000
--- a/test/tint/vk-gl-cts/graphicsfuzz/spv-stable-colorgrid-modulo-O-move-block-down/1.spvasm.expected.ir.dxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::LoadVectorElement
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/spv-stable-colorgrid-modulo-O-move-block-down/1.spvasm.expected.ir.fxc.hlsl b/test/tint/vk-gl-cts/graphicsfuzz/spv-stable-colorgrid-modulo-O-move-block-down/1.spvasm.expected.ir.fxc.hlsl
deleted file mode 100644
index 4a2c666..0000000
--- a/test/tint/vk-gl-cts/graphicsfuzz/spv-stable-colorgrid-modulo-O-move-block-down/1.spvasm.expected.ir.fxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::LoadVectorElement
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/spv-stable-colorgrid-modulo-O-move-block-down/1.wgsl.expected.ir.dxc.hlsl b/test/tint/vk-gl-cts/graphicsfuzz/spv-stable-colorgrid-modulo-O-move-block-down/1.wgsl.expected.ir.dxc.hlsl
deleted file mode 100644
index 4a2c666..0000000
--- a/test/tint/vk-gl-cts/graphicsfuzz/spv-stable-colorgrid-modulo-O-move-block-down/1.wgsl.expected.ir.dxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::LoadVectorElement
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/spv-stable-colorgrid-modulo-O-move-block-down/1.wgsl.expected.ir.fxc.hlsl b/test/tint/vk-gl-cts/graphicsfuzz/spv-stable-colorgrid-modulo-O-move-block-down/1.wgsl.expected.ir.fxc.hlsl
deleted file mode 100644
index 4a2c666..0000000
--- a/test/tint/vk-gl-cts/graphicsfuzz/spv-stable-colorgrid-modulo-O-move-block-down/1.wgsl.expected.ir.fxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::LoadVectorElement
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/spv-stable-maze-flatten-copy-composite/1.spvasm.expected.ir.dxc.hlsl b/test/tint/vk-gl-cts/graphicsfuzz/spv-stable-maze-flatten-copy-composite/1.spvasm.expected.ir.dxc.hlsl
deleted file mode 100644
index ba8c686..0000000
--- a/test/tint/vk-gl-cts/graphicsfuzz/spv-stable-maze-flatten-copy-composite/1.spvasm.expected.ir.dxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Swizzle
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/spv-stable-maze-flatten-copy-composite/1.spvasm.expected.ir.fxc.hlsl b/test/tint/vk-gl-cts/graphicsfuzz/spv-stable-maze-flatten-copy-composite/1.spvasm.expected.ir.fxc.hlsl
deleted file mode 100644
index ba8c686..0000000
--- a/test/tint/vk-gl-cts/graphicsfuzz/spv-stable-maze-flatten-copy-composite/1.spvasm.expected.ir.fxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Swizzle
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/spv-stable-maze-flatten-copy-composite/1.wgsl.expected.ir.dxc.hlsl b/test/tint/vk-gl-cts/graphicsfuzz/spv-stable-maze-flatten-copy-composite/1.wgsl.expected.ir.dxc.hlsl
deleted file mode 100644
index 3f437dc..0000000
--- a/test/tint/vk-gl-cts/graphicsfuzz/spv-stable-maze-flatten-copy-composite/1.wgsl.expected.ir.dxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Access
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/spv-stable-maze-flatten-copy-composite/1.wgsl.expected.ir.fxc.hlsl b/test/tint/vk-gl-cts/graphicsfuzz/spv-stable-maze-flatten-copy-composite/1.wgsl.expected.ir.fxc.hlsl
deleted file mode 100644
index 3f437dc..0000000
--- a/test/tint/vk-gl-cts/graphicsfuzz/spv-stable-maze-flatten-copy-composite/1.wgsl.expected.ir.fxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Access
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/spv-stable-maze-flatten-copy-composite/2.spvasm.expected.ir.dxc.hlsl b/test/tint/vk-gl-cts/graphicsfuzz/spv-stable-maze-flatten-copy-composite/2.spvasm.expected.ir.dxc.hlsl
deleted file mode 100644
index ba8c686..0000000
--- a/test/tint/vk-gl-cts/graphicsfuzz/spv-stable-maze-flatten-copy-composite/2.spvasm.expected.ir.dxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Swizzle
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/spv-stable-maze-flatten-copy-composite/2.spvasm.expected.ir.fxc.hlsl b/test/tint/vk-gl-cts/graphicsfuzz/spv-stable-maze-flatten-copy-composite/2.spvasm.expected.ir.fxc.hlsl
deleted file mode 100644
index ba8c686..0000000
--- a/test/tint/vk-gl-cts/graphicsfuzz/spv-stable-maze-flatten-copy-composite/2.spvasm.expected.ir.fxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Swizzle
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/spv-stable-maze-flatten-copy-composite/2.wgsl.expected.ir.dxc.hlsl b/test/tint/vk-gl-cts/graphicsfuzz/spv-stable-maze-flatten-copy-composite/2.wgsl.expected.ir.dxc.hlsl
deleted file mode 100644
index 3f437dc..0000000
--- a/test/tint/vk-gl-cts/graphicsfuzz/spv-stable-maze-flatten-copy-composite/2.wgsl.expected.ir.dxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Access
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/spv-stable-maze-flatten-copy-composite/2.wgsl.expected.ir.fxc.hlsl b/test/tint/vk-gl-cts/graphicsfuzz/spv-stable-maze-flatten-copy-composite/2.wgsl.expected.ir.fxc.hlsl
deleted file mode 100644
index 3f437dc..0000000
--- a/test/tint/vk-gl-cts/graphicsfuzz/spv-stable-maze-flatten-copy-composite/2.wgsl.expected.ir.fxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Access
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/spv-stable-mergesort-O-prop-up-mutate-var/1.spvasm.expected.ir.dxc.hlsl b/test/tint/vk-gl-cts/graphicsfuzz/spv-stable-mergesort-O-prop-up-mutate-var/1.spvasm.expected.ir.dxc.hlsl
index 48e23f4..d1ee477 100644
--- a/test/tint/vk-gl-cts/graphicsfuzz/spv-stable-mergesort-O-prop-up-mutate-var/1.spvasm.expected.ir.dxc.hlsl
+++ b/test/tint/vk-gl-cts/graphicsfuzz/spv-stable-mergesort-O-prop-up-mutate-var/1.spvasm.expected.ir.dxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Convert
+..\..\src\tint\lang\core\ir\transform\demote_to_helper.cc:208 internal compiler error: TINT_UNREACHABLE unexpected non-core instruction
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/spv-stable-mergesort-O-prop-up-mutate-var/1.spvasm.expected.ir.fxc.hlsl b/test/tint/vk-gl-cts/graphicsfuzz/spv-stable-mergesort-O-prop-up-mutate-var/1.spvasm.expected.ir.fxc.hlsl
index 48e23f4..d1ee477 100644
--- a/test/tint/vk-gl-cts/graphicsfuzz/spv-stable-mergesort-O-prop-up-mutate-var/1.spvasm.expected.ir.fxc.hlsl
+++ b/test/tint/vk-gl-cts/graphicsfuzz/spv-stable-mergesort-O-prop-up-mutate-var/1.spvasm.expected.ir.fxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Convert
+..\..\src\tint\lang\core\ir\transform\demote_to_helper.cc:208 internal compiler error: TINT_UNREACHABLE unexpected non-core instruction
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/spv-stable-mergesort-O-prop-up-mutate-var/1.wgsl.expected.ir.dxc.hlsl b/test/tint/vk-gl-cts/graphicsfuzz/spv-stable-mergesort-O-prop-up-mutate-var/1.wgsl.expected.ir.dxc.hlsl
index 4a2c666..d1ee477 100644
--- a/test/tint/vk-gl-cts/graphicsfuzz/spv-stable-mergesort-O-prop-up-mutate-var/1.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/vk-gl-cts/graphicsfuzz/spv-stable-mergesort-O-prop-up-mutate-var/1.wgsl.expected.ir.dxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::LoadVectorElement
+..\..\src\tint\lang\core\ir\transform\demote_to_helper.cc:208 internal compiler error: TINT_UNREACHABLE unexpected non-core instruction
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/spv-stable-mergesort-O-prop-up-mutate-var/1.wgsl.expected.ir.fxc.hlsl b/test/tint/vk-gl-cts/graphicsfuzz/spv-stable-mergesort-O-prop-up-mutate-var/1.wgsl.expected.ir.fxc.hlsl
index 4a2c666..d1ee477 100644
--- a/test/tint/vk-gl-cts/graphicsfuzz/spv-stable-mergesort-O-prop-up-mutate-var/1.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/vk-gl-cts/graphicsfuzz/spv-stable-mergesort-O-prop-up-mutate-var/1.wgsl.expected.ir.fxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::LoadVectorElement
+..\..\src\tint\lang\core\ir\transform\demote_to_helper.cc:208 internal compiler error: TINT_UNREACHABLE unexpected non-core instruction
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/spv-stable-mergesort-O-prop-up-mutate-var/2.spvasm.expected.ir.dxc.hlsl b/test/tint/vk-gl-cts/graphicsfuzz/spv-stable-mergesort-O-prop-up-mutate-var/2.spvasm.expected.ir.dxc.hlsl
index 48e23f4..d1ee477 100644
--- a/test/tint/vk-gl-cts/graphicsfuzz/spv-stable-mergesort-O-prop-up-mutate-var/2.spvasm.expected.ir.dxc.hlsl
+++ b/test/tint/vk-gl-cts/graphicsfuzz/spv-stable-mergesort-O-prop-up-mutate-var/2.spvasm.expected.ir.dxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Convert
+..\..\src\tint\lang\core\ir\transform\demote_to_helper.cc:208 internal compiler error: TINT_UNREACHABLE unexpected non-core instruction
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/spv-stable-mergesort-O-prop-up-mutate-var/2.spvasm.expected.ir.fxc.hlsl b/test/tint/vk-gl-cts/graphicsfuzz/spv-stable-mergesort-O-prop-up-mutate-var/2.spvasm.expected.ir.fxc.hlsl
index 48e23f4..d1ee477 100644
--- a/test/tint/vk-gl-cts/graphicsfuzz/spv-stable-mergesort-O-prop-up-mutate-var/2.spvasm.expected.ir.fxc.hlsl
+++ b/test/tint/vk-gl-cts/graphicsfuzz/spv-stable-mergesort-O-prop-up-mutate-var/2.spvasm.expected.ir.fxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Convert
+..\..\src\tint\lang\core\ir\transform\demote_to_helper.cc:208 internal compiler error: TINT_UNREACHABLE unexpected non-core instruction
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/spv-stable-mergesort-O-prop-up-mutate-var/2.wgsl.expected.ir.dxc.hlsl b/test/tint/vk-gl-cts/graphicsfuzz/spv-stable-mergesort-O-prop-up-mutate-var/2.wgsl.expected.ir.dxc.hlsl
index 4a2c666..d1ee477 100644
--- a/test/tint/vk-gl-cts/graphicsfuzz/spv-stable-mergesort-O-prop-up-mutate-var/2.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/vk-gl-cts/graphicsfuzz/spv-stable-mergesort-O-prop-up-mutate-var/2.wgsl.expected.ir.dxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::LoadVectorElement
+..\..\src\tint\lang\core\ir\transform\demote_to_helper.cc:208 internal compiler error: TINT_UNREACHABLE unexpected non-core instruction
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/spv-stable-mergesort-O-prop-up-mutate-var/2.wgsl.expected.ir.fxc.hlsl b/test/tint/vk-gl-cts/graphicsfuzz/spv-stable-mergesort-O-prop-up-mutate-var/2.wgsl.expected.ir.fxc.hlsl
index 4a2c666..d1ee477 100644
--- a/test/tint/vk-gl-cts/graphicsfuzz/spv-stable-mergesort-O-prop-up-mutate-var/2.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/vk-gl-cts/graphicsfuzz/spv-stable-mergesort-O-prop-up-mutate-var/2.wgsl.expected.ir.fxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::LoadVectorElement
+..\..\src\tint\lang\core\ir\transform\demote_to_helper.cc:208 internal compiler error: TINT_UNREACHABLE unexpected non-core instruction
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/spv-stable-mergesort-dead-code/0.spvasm.expected.ir.dxc.hlsl b/test/tint/vk-gl-cts/graphicsfuzz/spv-stable-mergesort-dead-code/0.spvasm.expected.ir.dxc.hlsl
index 6b047b4..d1ee477 100644
--- a/test/tint/vk-gl-cts/graphicsfuzz/spv-stable-mergesort-dead-code/0.spvasm.expected.ir.dxc.hlsl
+++ b/test/tint/vk-gl-cts/graphicsfuzz/spv-stable-mergesort-dead-code/0.spvasm.expected.ir.dxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:287 internal compiler error: Switch() matched no cases. Type: tint::core::ir::FunctionParam
+..\..\src\tint\lang\core\ir\transform\demote_to_helper.cc:208 internal compiler error: TINT_UNREACHABLE unexpected non-core instruction
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/spv-stable-mergesort-dead-code/0.spvasm.expected.ir.fxc.hlsl b/test/tint/vk-gl-cts/graphicsfuzz/spv-stable-mergesort-dead-code/0.spvasm.expected.ir.fxc.hlsl
index 6b047b4..d1ee477 100644
--- a/test/tint/vk-gl-cts/graphicsfuzz/spv-stable-mergesort-dead-code/0.spvasm.expected.ir.fxc.hlsl
+++ b/test/tint/vk-gl-cts/graphicsfuzz/spv-stable-mergesort-dead-code/0.spvasm.expected.ir.fxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:287 internal compiler error: Switch() matched no cases. Type: tint::core::ir::FunctionParam
+..\..\src\tint\lang\core\ir\transform\demote_to_helper.cc:208 internal compiler error: TINT_UNREACHABLE unexpected non-core instruction
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/spv-stable-mergesort-dead-code/0.wgsl.expected.ir.dxc.hlsl b/test/tint/vk-gl-cts/graphicsfuzz/spv-stable-mergesort-dead-code/0.wgsl.expected.ir.dxc.hlsl
index 6b047b4..d1ee477 100644
--- a/test/tint/vk-gl-cts/graphicsfuzz/spv-stable-mergesort-dead-code/0.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/vk-gl-cts/graphicsfuzz/spv-stable-mergesort-dead-code/0.wgsl.expected.ir.dxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:287 internal compiler error: Switch() matched no cases. Type: tint::core::ir::FunctionParam
+..\..\src\tint\lang\core\ir\transform\demote_to_helper.cc:208 internal compiler error: TINT_UNREACHABLE unexpected non-core instruction
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/spv-stable-mergesort-dead-code/0.wgsl.expected.ir.fxc.hlsl b/test/tint/vk-gl-cts/graphicsfuzz/spv-stable-mergesort-dead-code/0.wgsl.expected.ir.fxc.hlsl
index 6b047b4..d1ee477 100644
--- a/test/tint/vk-gl-cts/graphicsfuzz/spv-stable-mergesort-dead-code/0.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/vk-gl-cts/graphicsfuzz/spv-stable-mergesort-dead-code/0.wgsl.expected.ir.fxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:287 internal compiler error: Switch() matched no cases. Type: tint::core::ir::FunctionParam
+..\..\src\tint\lang\core\ir\transform\demote_to_helper.cc:208 internal compiler error: TINT_UNREACHABLE unexpected non-core instruction
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/spv-stable-mergesort-dead-code/1.spvasm.expected.ir.dxc.hlsl b/test/tint/vk-gl-cts/graphicsfuzz/spv-stable-mergesort-dead-code/1.spvasm.expected.ir.dxc.hlsl
index 6b047b4..d1ee477 100644
--- a/test/tint/vk-gl-cts/graphicsfuzz/spv-stable-mergesort-dead-code/1.spvasm.expected.ir.dxc.hlsl
+++ b/test/tint/vk-gl-cts/graphicsfuzz/spv-stable-mergesort-dead-code/1.spvasm.expected.ir.dxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:287 internal compiler error: Switch() matched no cases. Type: tint::core::ir::FunctionParam
+..\..\src\tint\lang\core\ir\transform\demote_to_helper.cc:208 internal compiler error: TINT_UNREACHABLE unexpected non-core instruction
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/spv-stable-mergesort-dead-code/1.spvasm.expected.ir.fxc.hlsl b/test/tint/vk-gl-cts/graphicsfuzz/spv-stable-mergesort-dead-code/1.spvasm.expected.ir.fxc.hlsl
index 6b047b4..d1ee477 100644
--- a/test/tint/vk-gl-cts/graphicsfuzz/spv-stable-mergesort-dead-code/1.spvasm.expected.ir.fxc.hlsl
+++ b/test/tint/vk-gl-cts/graphicsfuzz/spv-stable-mergesort-dead-code/1.spvasm.expected.ir.fxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:287 internal compiler error: Switch() matched no cases. Type: tint::core::ir::FunctionParam
+..\..\src\tint\lang\core\ir\transform\demote_to_helper.cc:208 internal compiler error: TINT_UNREACHABLE unexpected non-core instruction
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/spv-stable-mergesort-dead-code/1.wgsl.expected.ir.dxc.hlsl b/test/tint/vk-gl-cts/graphicsfuzz/spv-stable-mergesort-dead-code/1.wgsl.expected.ir.dxc.hlsl
index 6b047b4..d1ee477 100644
--- a/test/tint/vk-gl-cts/graphicsfuzz/spv-stable-mergesort-dead-code/1.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/vk-gl-cts/graphicsfuzz/spv-stable-mergesort-dead-code/1.wgsl.expected.ir.dxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:287 internal compiler error: Switch() matched no cases. Type: tint::core::ir::FunctionParam
+..\..\src\tint\lang\core\ir\transform\demote_to_helper.cc:208 internal compiler error: TINT_UNREACHABLE unexpected non-core instruction
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/spv-stable-mergesort-dead-code/1.wgsl.expected.ir.fxc.hlsl b/test/tint/vk-gl-cts/graphicsfuzz/spv-stable-mergesort-dead-code/1.wgsl.expected.ir.fxc.hlsl
index 6b047b4..d1ee477 100644
--- a/test/tint/vk-gl-cts/graphicsfuzz/spv-stable-mergesort-dead-code/1.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/vk-gl-cts/graphicsfuzz/spv-stable-mergesort-dead-code/1.wgsl.expected.ir.fxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:287 internal compiler error: Switch() matched no cases. Type: tint::core::ir::FunctionParam
+..\..\src\tint\lang\core\ir\transform\demote_to_helper.cc:208 internal compiler error: TINT_UNREACHABLE unexpected non-core instruction
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/spv-stable-mergesort-flatten-selection-dead-continues/1.spvasm.expected.ir.dxc.hlsl b/test/tint/vk-gl-cts/graphicsfuzz/spv-stable-mergesort-flatten-selection-dead-continues/1.spvasm.expected.ir.dxc.hlsl
index 6b047b4..d1ee477 100644
--- a/test/tint/vk-gl-cts/graphicsfuzz/spv-stable-mergesort-flatten-selection-dead-continues/1.spvasm.expected.ir.dxc.hlsl
+++ b/test/tint/vk-gl-cts/graphicsfuzz/spv-stable-mergesort-flatten-selection-dead-continues/1.spvasm.expected.ir.dxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:287 internal compiler error: Switch() matched no cases. Type: tint::core::ir::FunctionParam
+..\..\src\tint\lang\core\ir\transform\demote_to_helper.cc:208 internal compiler error: TINT_UNREACHABLE unexpected non-core instruction
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/spv-stable-mergesort-flatten-selection-dead-continues/1.spvasm.expected.ir.fxc.hlsl b/test/tint/vk-gl-cts/graphicsfuzz/spv-stable-mergesort-flatten-selection-dead-continues/1.spvasm.expected.ir.fxc.hlsl
index 6b047b4..d1ee477 100644
--- a/test/tint/vk-gl-cts/graphicsfuzz/spv-stable-mergesort-flatten-selection-dead-continues/1.spvasm.expected.ir.fxc.hlsl
+++ b/test/tint/vk-gl-cts/graphicsfuzz/spv-stable-mergesort-flatten-selection-dead-continues/1.spvasm.expected.ir.fxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:287 internal compiler error: Switch() matched no cases. Type: tint::core::ir::FunctionParam
+..\..\src\tint\lang\core\ir\transform\demote_to_helper.cc:208 internal compiler error: TINT_UNREACHABLE unexpected non-core instruction
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/spv-stable-mergesort-flatten-selection-dead-continues/1.wgsl.expected.ir.dxc.hlsl b/test/tint/vk-gl-cts/graphicsfuzz/spv-stable-mergesort-flatten-selection-dead-continues/1.wgsl.expected.ir.dxc.hlsl
index 6b047b4..d1ee477 100644
--- a/test/tint/vk-gl-cts/graphicsfuzz/spv-stable-mergesort-flatten-selection-dead-continues/1.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/vk-gl-cts/graphicsfuzz/spv-stable-mergesort-flatten-selection-dead-continues/1.wgsl.expected.ir.dxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:287 internal compiler error: Switch() matched no cases. Type: tint::core::ir::FunctionParam
+..\..\src\tint\lang\core\ir\transform\demote_to_helper.cc:208 internal compiler error: TINT_UNREACHABLE unexpected non-core instruction
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/spv-stable-mergesort-flatten-selection-dead-continues/1.wgsl.expected.ir.fxc.hlsl b/test/tint/vk-gl-cts/graphicsfuzz/spv-stable-mergesort-flatten-selection-dead-continues/1.wgsl.expected.ir.fxc.hlsl
index 6b047b4..d1ee477 100644
--- a/test/tint/vk-gl-cts/graphicsfuzz/spv-stable-mergesort-flatten-selection-dead-continues/1.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/vk-gl-cts/graphicsfuzz/spv-stable-mergesort-flatten-selection-dead-continues/1.wgsl.expected.ir.fxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:287 internal compiler error: Switch() matched no cases. Type: tint::core::ir::FunctionParam
+..\..\src\tint\lang\core\ir\transform\demote_to_helper.cc:208 internal compiler error: TINT_UNREACHABLE unexpected non-core instruction
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/spv-stable-mergesort-flatten-selection-dead-continues/2-opt.spvasm.expected.ir.dxc.hlsl b/test/tint/vk-gl-cts/graphicsfuzz/spv-stable-mergesort-flatten-selection-dead-continues/2-opt.spvasm.expected.ir.dxc.hlsl
index 6b047b4..d1ee477 100644
--- a/test/tint/vk-gl-cts/graphicsfuzz/spv-stable-mergesort-flatten-selection-dead-continues/2-opt.spvasm.expected.ir.dxc.hlsl
+++ b/test/tint/vk-gl-cts/graphicsfuzz/spv-stable-mergesort-flatten-selection-dead-continues/2-opt.spvasm.expected.ir.dxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:287 internal compiler error: Switch() matched no cases. Type: tint::core::ir::FunctionParam
+..\..\src\tint\lang\core\ir\transform\demote_to_helper.cc:208 internal compiler error: TINT_UNREACHABLE unexpected non-core instruction
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/spv-stable-mergesort-flatten-selection-dead-continues/2-opt.spvasm.expected.ir.fxc.hlsl b/test/tint/vk-gl-cts/graphicsfuzz/spv-stable-mergesort-flatten-selection-dead-continues/2-opt.spvasm.expected.ir.fxc.hlsl
index 6b047b4..d1ee477 100644
--- a/test/tint/vk-gl-cts/graphicsfuzz/spv-stable-mergesort-flatten-selection-dead-continues/2-opt.spvasm.expected.ir.fxc.hlsl
+++ b/test/tint/vk-gl-cts/graphicsfuzz/spv-stable-mergesort-flatten-selection-dead-continues/2-opt.spvasm.expected.ir.fxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:287 internal compiler error: Switch() matched no cases. Type: tint::core::ir::FunctionParam
+..\..\src\tint\lang\core\ir\transform\demote_to_helper.cc:208 internal compiler error: TINT_UNREACHABLE unexpected non-core instruction
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/spv-stable-mergesort-flatten-selection-dead-continues/2-opt.wgsl.expected.ir.dxc.hlsl b/test/tint/vk-gl-cts/graphicsfuzz/spv-stable-mergesort-flatten-selection-dead-continues/2-opt.wgsl.expected.ir.dxc.hlsl
index 6b047b4..d1ee477 100644
--- a/test/tint/vk-gl-cts/graphicsfuzz/spv-stable-mergesort-flatten-selection-dead-continues/2-opt.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/vk-gl-cts/graphicsfuzz/spv-stable-mergesort-flatten-selection-dead-continues/2-opt.wgsl.expected.ir.dxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:287 internal compiler error: Switch() matched no cases. Type: tint::core::ir::FunctionParam
+..\..\src\tint\lang\core\ir\transform\demote_to_helper.cc:208 internal compiler error: TINT_UNREACHABLE unexpected non-core instruction
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/spv-stable-mergesort-flatten-selection-dead-continues/2-opt.wgsl.expected.ir.fxc.hlsl b/test/tint/vk-gl-cts/graphicsfuzz/spv-stable-mergesort-flatten-selection-dead-continues/2-opt.wgsl.expected.ir.fxc.hlsl
index 6b047b4..d1ee477 100644
--- a/test/tint/vk-gl-cts/graphicsfuzz/spv-stable-mergesort-flatten-selection-dead-continues/2-opt.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/vk-gl-cts/graphicsfuzz/spv-stable-mergesort-flatten-selection-dead-continues/2-opt.wgsl.expected.ir.fxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:287 internal compiler error: Switch() matched no cases. Type: tint::core::ir::FunctionParam
+..\..\src\tint\lang\core\ir\transform\demote_to_helper.cc:208 internal compiler error: TINT_UNREACHABLE unexpected non-core instruction
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/spv-stable-mergesort-func-inline-mutate-var/1.spvasm.expected.ir.dxc.hlsl b/test/tint/vk-gl-cts/graphicsfuzz/spv-stable-mergesort-func-inline-mutate-var/1.spvasm.expected.ir.dxc.hlsl
index 6b047b4..d1ee477 100644
--- a/test/tint/vk-gl-cts/graphicsfuzz/spv-stable-mergesort-func-inline-mutate-var/1.spvasm.expected.ir.dxc.hlsl
+++ b/test/tint/vk-gl-cts/graphicsfuzz/spv-stable-mergesort-func-inline-mutate-var/1.spvasm.expected.ir.dxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:287 internal compiler error: Switch() matched no cases. Type: tint::core::ir::FunctionParam
+..\..\src\tint\lang\core\ir\transform\demote_to_helper.cc:208 internal compiler error: TINT_UNREACHABLE unexpected non-core instruction
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/spv-stable-mergesort-func-inline-mutate-var/1.spvasm.expected.ir.fxc.hlsl b/test/tint/vk-gl-cts/graphicsfuzz/spv-stable-mergesort-func-inline-mutate-var/1.spvasm.expected.ir.fxc.hlsl
index 6b047b4..d1ee477 100644
--- a/test/tint/vk-gl-cts/graphicsfuzz/spv-stable-mergesort-func-inline-mutate-var/1.spvasm.expected.ir.fxc.hlsl
+++ b/test/tint/vk-gl-cts/graphicsfuzz/spv-stable-mergesort-func-inline-mutate-var/1.spvasm.expected.ir.fxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:287 internal compiler error: Switch() matched no cases. Type: tint::core::ir::FunctionParam
+..\..\src\tint\lang\core\ir\transform\demote_to_helper.cc:208 internal compiler error: TINT_UNREACHABLE unexpected non-core instruction
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/spv-stable-mergesort-func-inline-mutate-var/1.wgsl.expected.ir.dxc.hlsl b/test/tint/vk-gl-cts/graphicsfuzz/spv-stable-mergesort-func-inline-mutate-var/1.wgsl.expected.ir.dxc.hlsl
index 6b047b4..d1ee477 100644
--- a/test/tint/vk-gl-cts/graphicsfuzz/spv-stable-mergesort-func-inline-mutate-var/1.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/vk-gl-cts/graphicsfuzz/spv-stable-mergesort-func-inline-mutate-var/1.wgsl.expected.ir.dxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:287 internal compiler error: Switch() matched no cases. Type: tint::core::ir::FunctionParam
+..\..\src\tint\lang\core\ir\transform\demote_to_helper.cc:208 internal compiler error: TINT_UNREACHABLE unexpected non-core instruction
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/spv-stable-mergesort-func-inline-mutate-var/1.wgsl.expected.ir.fxc.hlsl b/test/tint/vk-gl-cts/graphicsfuzz/spv-stable-mergesort-func-inline-mutate-var/1.wgsl.expected.ir.fxc.hlsl
index 6b047b4..d1ee477 100644
--- a/test/tint/vk-gl-cts/graphicsfuzz/spv-stable-mergesort-func-inline-mutate-var/1.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/vk-gl-cts/graphicsfuzz/spv-stable-mergesort-func-inline-mutate-var/1.wgsl.expected.ir.fxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:287 internal compiler error: Switch() matched no cases. Type: tint::core::ir::FunctionParam
+..\..\src\tint\lang\core\ir\transform\demote_to_helper.cc:208 internal compiler error: TINT_UNREACHABLE unexpected non-core instruction
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/spv-stable-mergesort-func-inline-mutate-var/2.spvasm.expected.ir.dxc.hlsl b/test/tint/vk-gl-cts/graphicsfuzz/spv-stable-mergesort-func-inline-mutate-var/2.spvasm.expected.ir.dxc.hlsl
index 6b047b4..d1ee477 100644
--- a/test/tint/vk-gl-cts/graphicsfuzz/spv-stable-mergesort-func-inline-mutate-var/2.spvasm.expected.ir.dxc.hlsl
+++ b/test/tint/vk-gl-cts/graphicsfuzz/spv-stable-mergesort-func-inline-mutate-var/2.spvasm.expected.ir.dxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:287 internal compiler error: Switch() matched no cases. Type: tint::core::ir::FunctionParam
+..\..\src\tint\lang\core\ir\transform\demote_to_helper.cc:208 internal compiler error: TINT_UNREACHABLE unexpected non-core instruction
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/spv-stable-mergesort-func-inline-mutate-var/2.spvasm.expected.ir.fxc.hlsl b/test/tint/vk-gl-cts/graphicsfuzz/spv-stable-mergesort-func-inline-mutate-var/2.spvasm.expected.ir.fxc.hlsl
index 6b047b4..d1ee477 100644
--- a/test/tint/vk-gl-cts/graphicsfuzz/spv-stable-mergesort-func-inline-mutate-var/2.spvasm.expected.ir.fxc.hlsl
+++ b/test/tint/vk-gl-cts/graphicsfuzz/spv-stable-mergesort-func-inline-mutate-var/2.spvasm.expected.ir.fxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:287 internal compiler error: Switch() matched no cases. Type: tint::core::ir::FunctionParam
+..\..\src\tint\lang\core\ir\transform\demote_to_helper.cc:208 internal compiler error: TINT_UNREACHABLE unexpected non-core instruction
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/spv-stable-mergesort-func-inline-mutate-var/2.wgsl.expected.ir.dxc.hlsl b/test/tint/vk-gl-cts/graphicsfuzz/spv-stable-mergesort-func-inline-mutate-var/2.wgsl.expected.ir.dxc.hlsl
index 6b047b4..d1ee477 100644
--- a/test/tint/vk-gl-cts/graphicsfuzz/spv-stable-mergesort-func-inline-mutate-var/2.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/vk-gl-cts/graphicsfuzz/spv-stable-mergesort-func-inline-mutate-var/2.wgsl.expected.ir.dxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:287 internal compiler error: Switch() matched no cases. Type: tint::core::ir::FunctionParam
+..\..\src\tint\lang\core\ir\transform\demote_to_helper.cc:208 internal compiler error: TINT_UNREACHABLE unexpected non-core instruction
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/spv-stable-mergesort-func-inline-mutate-var/2.wgsl.expected.ir.fxc.hlsl b/test/tint/vk-gl-cts/graphicsfuzz/spv-stable-mergesort-func-inline-mutate-var/2.wgsl.expected.ir.fxc.hlsl
index 6b047b4..d1ee477 100644
--- a/test/tint/vk-gl-cts/graphicsfuzz/spv-stable-mergesort-func-inline-mutate-var/2.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/vk-gl-cts/graphicsfuzz/spv-stable-mergesort-func-inline-mutate-var/2.wgsl.expected.ir.fxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:287 internal compiler error: Switch() matched no cases. Type: tint::core::ir::FunctionParam
+..\..\src\tint\lang\core\ir\transform\demote_to_helper.cc:208 internal compiler error: TINT_UNREACHABLE unexpected non-core instruction
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/spv-stable-orbit-O-mutate-variable/0.spvasm.expected.ir.dxc.hlsl b/test/tint/vk-gl-cts/graphicsfuzz/spv-stable-orbit-O-mutate-variable/0.spvasm.expected.ir.dxc.hlsl
deleted file mode 100644
index ba8c686..0000000
--- a/test/tint/vk-gl-cts/graphicsfuzz/spv-stable-orbit-O-mutate-variable/0.spvasm.expected.ir.dxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Swizzle
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/spv-stable-orbit-O-mutate-variable/0.spvasm.expected.ir.fxc.hlsl b/test/tint/vk-gl-cts/graphicsfuzz/spv-stable-orbit-O-mutate-variable/0.spvasm.expected.ir.fxc.hlsl
deleted file mode 100644
index ba8c686..0000000
--- a/test/tint/vk-gl-cts/graphicsfuzz/spv-stable-orbit-O-mutate-variable/0.spvasm.expected.ir.fxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Swizzle
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/spv-stable-orbit-O-mutate-variable/0.wgsl.expected.ir.dxc.hlsl b/test/tint/vk-gl-cts/graphicsfuzz/spv-stable-orbit-O-mutate-variable/0.wgsl.expected.ir.dxc.hlsl
deleted file mode 100644
index 3f437dc..0000000
--- a/test/tint/vk-gl-cts/graphicsfuzz/spv-stable-orbit-O-mutate-variable/0.wgsl.expected.ir.dxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Access
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/spv-stable-orbit-O-mutate-variable/0.wgsl.expected.ir.fxc.hlsl b/test/tint/vk-gl-cts/graphicsfuzz/spv-stable-orbit-O-mutate-variable/0.wgsl.expected.ir.fxc.hlsl
deleted file mode 100644
index 3f437dc..0000000
--- a/test/tint/vk-gl-cts/graphicsfuzz/spv-stable-orbit-O-mutate-variable/0.wgsl.expected.ir.fxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Access
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/spv-stable-orbit-O-mutate-variable/1.spvasm.expected.ir.dxc.hlsl b/test/tint/vk-gl-cts/graphicsfuzz/spv-stable-orbit-O-mutate-variable/1.spvasm.expected.ir.dxc.hlsl
deleted file mode 100644
index ba8c686..0000000
--- a/test/tint/vk-gl-cts/graphicsfuzz/spv-stable-orbit-O-mutate-variable/1.spvasm.expected.ir.dxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Swizzle
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/spv-stable-orbit-O-mutate-variable/1.spvasm.expected.ir.fxc.hlsl b/test/tint/vk-gl-cts/graphicsfuzz/spv-stable-orbit-O-mutate-variable/1.spvasm.expected.ir.fxc.hlsl
deleted file mode 100644
index ba8c686..0000000
--- a/test/tint/vk-gl-cts/graphicsfuzz/spv-stable-orbit-O-mutate-variable/1.spvasm.expected.ir.fxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Swizzle
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/spv-stable-orbit-O-mutate-variable/1.wgsl.expected.ir.dxc.hlsl b/test/tint/vk-gl-cts/graphicsfuzz/spv-stable-orbit-O-mutate-variable/1.wgsl.expected.ir.dxc.hlsl
deleted file mode 100644
index 3f437dc..0000000
--- a/test/tint/vk-gl-cts/graphicsfuzz/spv-stable-orbit-O-mutate-variable/1.wgsl.expected.ir.dxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Access
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/spv-stable-orbit-O-mutate-variable/1.wgsl.expected.ir.fxc.hlsl b/test/tint/vk-gl-cts/graphicsfuzz/spv-stable-orbit-O-mutate-variable/1.wgsl.expected.ir.fxc.hlsl
deleted file mode 100644
index 3f437dc..0000000
--- a/test/tint/vk-gl-cts/graphicsfuzz/spv-stable-orbit-O-mutate-variable/1.wgsl.expected.ir.fxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Access
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/spv-stable-orbit-Os-access-chain-mutate-pointer/0.spvasm.expected.ir.dxc.hlsl b/test/tint/vk-gl-cts/graphicsfuzz/spv-stable-orbit-Os-access-chain-mutate-pointer/0.spvasm.expected.ir.dxc.hlsl
deleted file mode 100644
index ba8c686..0000000
--- a/test/tint/vk-gl-cts/graphicsfuzz/spv-stable-orbit-Os-access-chain-mutate-pointer/0.spvasm.expected.ir.dxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Swizzle
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/spv-stable-orbit-Os-access-chain-mutate-pointer/0.spvasm.expected.ir.fxc.hlsl b/test/tint/vk-gl-cts/graphicsfuzz/spv-stable-orbit-Os-access-chain-mutate-pointer/0.spvasm.expected.ir.fxc.hlsl
deleted file mode 100644
index ba8c686..0000000
--- a/test/tint/vk-gl-cts/graphicsfuzz/spv-stable-orbit-Os-access-chain-mutate-pointer/0.spvasm.expected.ir.fxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Swizzle
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/spv-stable-orbit-Os-access-chain-mutate-pointer/0.wgsl.expected.ir.dxc.hlsl b/test/tint/vk-gl-cts/graphicsfuzz/spv-stable-orbit-Os-access-chain-mutate-pointer/0.wgsl.expected.ir.dxc.hlsl
deleted file mode 100644
index 3f437dc..0000000
--- a/test/tint/vk-gl-cts/graphicsfuzz/spv-stable-orbit-Os-access-chain-mutate-pointer/0.wgsl.expected.ir.dxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Access
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/spv-stable-orbit-Os-access-chain-mutate-pointer/0.wgsl.expected.ir.fxc.hlsl b/test/tint/vk-gl-cts/graphicsfuzz/spv-stable-orbit-Os-access-chain-mutate-pointer/0.wgsl.expected.ir.fxc.hlsl
deleted file mode 100644
index 3f437dc..0000000
--- a/test/tint/vk-gl-cts/graphicsfuzz/spv-stable-orbit-Os-access-chain-mutate-pointer/0.wgsl.expected.ir.fxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Access
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/spv-stable-orbit-Os-access-chain-mutate-pointer/1.spvasm.expected.ir.dxc.hlsl b/test/tint/vk-gl-cts/graphicsfuzz/spv-stable-orbit-Os-access-chain-mutate-pointer/1.spvasm.expected.ir.dxc.hlsl
deleted file mode 100644
index ba8c686..0000000
--- a/test/tint/vk-gl-cts/graphicsfuzz/spv-stable-orbit-Os-access-chain-mutate-pointer/1.spvasm.expected.ir.dxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Swizzle
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/spv-stable-orbit-Os-access-chain-mutate-pointer/1.spvasm.expected.ir.fxc.hlsl b/test/tint/vk-gl-cts/graphicsfuzz/spv-stable-orbit-Os-access-chain-mutate-pointer/1.spvasm.expected.ir.fxc.hlsl
deleted file mode 100644
index ba8c686..0000000
--- a/test/tint/vk-gl-cts/graphicsfuzz/spv-stable-orbit-Os-access-chain-mutate-pointer/1.spvasm.expected.ir.fxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Swizzle
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/spv-stable-orbit-Os-access-chain-mutate-pointer/1.wgsl.expected.ir.dxc.hlsl b/test/tint/vk-gl-cts/graphicsfuzz/spv-stable-orbit-Os-access-chain-mutate-pointer/1.wgsl.expected.ir.dxc.hlsl
deleted file mode 100644
index 3f437dc..0000000
--- a/test/tint/vk-gl-cts/graphicsfuzz/spv-stable-orbit-Os-access-chain-mutate-pointer/1.wgsl.expected.ir.dxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Access
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/spv-stable-orbit-Os-access-chain-mutate-pointer/1.wgsl.expected.ir.fxc.hlsl b/test/tint/vk-gl-cts/graphicsfuzz/spv-stable-orbit-Os-access-chain-mutate-pointer/1.wgsl.expected.ir.fxc.hlsl
deleted file mode 100644
index 3f437dc..0000000
--- a/test/tint/vk-gl-cts/graphicsfuzz/spv-stable-orbit-Os-access-chain-mutate-pointer/1.wgsl.expected.ir.fxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Access
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/spv-stable-orbit-Os-access-chain-mutate-pointer/2.spvasm.expected.ir.dxc.hlsl b/test/tint/vk-gl-cts/graphicsfuzz/spv-stable-orbit-Os-access-chain-mutate-pointer/2.spvasm.expected.ir.dxc.hlsl
deleted file mode 100644
index ba8c686..0000000
--- a/test/tint/vk-gl-cts/graphicsfuzz/spv-stable-orbit-Os-access-chain-mutate-pointer/2.spvasm.expected.ir.dxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Swizzle
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/spv-stable-orbit-Os-access-chain-mutate-pointer/2.spvasm.expected.ir.fxc.hlsl b/test/tint/vk-gl-cts/graphicsfuzz/spv-stable-orbit-Os-access-chain-mutate-pointer/2.spvasm.expected.ir.fxc.hlsl
deleted file mode 100644
index ba8c686..0000000
--- a/test/tint/vk-gl-cts/graphicsfuzz/spv-stable-orbit-Os-access-chain-mutate-pointer/2.spvasm.expected.ir.fxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Swizzle
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/spv-stable-orbit-Os-access-chain-mutate-pointer/2.wgsl.expected.ir.dxc.hlsl b/test/tint/vk-gl-cts/graphicsfuzz/spv-stable-orbit-Os-access-chain-mutate-pointer/2.wgsl.expected.ir.dxc.hlsl
deleted file mode 100644
index 3f437dc..0000000
--- a/test/tint/vk-gl-cts/graphicsfuzz/spv-stable-orbit-Os-access-chain-mutate-pointer/2.wgsl.expected.ir.dxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Access
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/spv-stable-orbit-Os-access-chain-mutate-pointer/2.wgsl.expected.ir.fxc.hlsl b/test/tint/vk-gl-cts/graphicsfuzz/spv-stable-orbit-Os-access-chain-mutate-pointer/2.wgsl.expected.ir.fxc.hlsl
deleted file mode 100644
index 3f437dc..0000000
--- a/test/tint/vk-gl-cts/graphicsfuzz/spv-stable-orbit-Os-access-chain-mutate-pointer/2.wgsl.expected.ir.fxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Access
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/spv-stable-pillars-O-op-select-to-op-phi/1.spvasm.expected.ir.dxc.hlsl b/test/tint/vk-gl-cts/graphicsfuzz/spv-stable-pillars-O-op-select-to-op-phi/1.spvasm.expected.ir.dxc.hlsl
deleted file mode 100644
index ba8c686..0000000
--- a/test/tint/vk-gl-cts/graphicsfuzz/spv-stable-pillars-O-op-select-to-op-phi/1.spvasm.expected.ir.dxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Swizzle
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/spv-stable-pillars-O-op-select-to-op-phi/1.spvasm.expected.ir.fxc.hlsl b/test/tint/vk-gl-cts/graphicsfuzz/spv-stable-pillars-O-op-select-to-op-phi/1.spvasm.expected.ir.fxc.hlsl
deleted file mode 100644
index ba8c686..0000000
--- a/test/tint/vk-gl-cts/graphicsfuzz/spv-stable-pillars-O-op-select-to-op-phi/1.spvasm.expected.ir.fxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Swizzle
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/spv-stable-pillars-O-op-select-to-op-phi/1.wgsl.expected.ir.dxc.hlsl b/test/tint/vk-gl-cts/graphicsfuzz/spv-stable-pillars-O-op-select-to-op-phi/1.wgsl.expected.ir.dxc.hlsl
deleted file mode 100644
index 3f437dc..0000000
--- a/test/tint/vk-gl-cts/graphicsfuzz/spv-stable-pillars-O-op-select-to-op-phi/1.wgsl.expected.ir.dxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Access
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/spv-stable-pillars-O-op-select-to-op-phi/1.wgsl.expected.ir.fxc.hlsl b/test/tint/vk-gl-cts/graphicsfuzz/spv-stable-pillars-O-op-select-to-op-phi/1.wgsl.expected.ir.fxc.hlsl
deleted file mode 100644
index 3f437dc..0000000
--- a/test/tint/vk-gl-cts/graphicsfuzz/spv-stable-pillars-O-op-select-to-op-phi/1.wgsl.expected.ir.fxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Access
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/spv-stable-pillars-O-op-select-to-op-phi/2.spvasm.expected.ir.dxc.hlsl b/test/tint/vk-gl-cts/graphicsfuzz/spv-stable-pillars-O-op-select-to-op-phi/2.spvasm.expected.ir.dxc.hlsl
deleted file mode 100644
index ba8c686..0000000
--- a/test/tint/vk-gl-cts/graphicsfuzz/spv-stable-pillars-O-op-select-to-op-phi/2.spvasm.expected.ir.dxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Swizzle
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/spv-stable-pillars-O-op-select-to-op-phi/2.spvasm.expected.ir.fxc.hlsl b/test/tint/vk-gl-cts/graphicsfuzz/spv-stable-pillars-O-op-select-to-op-phi/2.spvasm.expected.ir.fxc.hlsl
deleted file mode 100644
index ba8c686..0000000
--- a/test/tint/vk-gl-cts/graphicsfuzz/spv-stable-pillars-O-op-select-to-op-phi/2.spvasm.expected.ir.fxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Swizzle
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/spv-stable-pillars-O-op-select-to-op-phi/2.wgsl.expected.ir.dxc.hlsl b/test/tint/vk-gl-cts/graphicsfuzz/spv-stable-pillars-O-op-select-to-op-phi/2.wgsl.expected.ir.dxc.hlsl
deleted file mode 100644
index 3f437dc..0000000
--- a/test/tint/vk-gl-cts/graphicsfuzz/spv-stable-pillars-O-op-select-to-op-phi/2.wgsl.expected.ir.dxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Access
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/spv-stable-pillars-O-op-select-to-op-phi/2.wgsl.expected.ir.fxc.hlsl b/test/tint/vk-gl-cts/graphicsfuzz/spv-stable-pillars-O-op-select-to-op-phi/2.wgsl.expected.ir.fxc.hlsl
deleted file mode 100644
index 3f437dc..0000000
--- a/test/tint/vk-gl-cts/graphicsfuzz/spv-stable-pillars-O-op-select-to-op-phi/2.wgsl.expected.ir.fxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Access
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/spv-stable-pillars-volatile-nontemporal-store/0.spvasm.expected.ir.dxc.hlsl b/test/tint/vk-gl-cts/graphicsfuzz/spv-stable-pillars-volatile-nontemporal-store/0.spvasm.expected.ir.dxc.hlsl
deleted file mode 100644
index adbb0c1..0000000
--- a/test/tint/vk-gl-cts/graphicsfuzz/spv-stable-pillars-volatile-nontemporal-store/0.spvasm.expected.ir.dxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:198 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Loop
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/spv-stable-pillars-volatile-nontemporal-store/0.spvasm.expected.ir.fxc.hlsl b/test/tint/vk-gl-cts/graphicsfuzz/spv-stable-pillars-volatile-nontemporal-store/0.spvasm.expected.ir.fxc.hlsl
deleted file mode 100644
index adbb0c1..0000000
--- a/test/tint/vk-gl-cts/graphicsfuzz/spv-stable-pillars-volatile-nontemporal-store/0.spvasm.expected.ir.fxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:198 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Loop
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/spv-stable-pillars-volatile-nontemporal-store/0.wgsl.expected.ir.dxc.hlsl b/test/tint/vk-gl-cts/graphicsfuzz/spv-stable-pillars-volatile-nontemporal-store/0.wgsl.expected.ir.dxc.hlsl
deleted file mode 100644
index adbb0c1..0000000
--- a/test/tint/vk-gl-cts/graphicsfuzz/spv-stable-pillars-volatile-nontemporal-store/0.wgsl.expected.ir.dxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:198 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Loop
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/spv-stable-pillars-volatile-nontemporal-store/0.wgsl.expected.ir.fxc.hlsl b/test/tint/vk-gl-cts/graphicsfuzz/spv-stable-pillars-volatile-nontemporal-store/0.wgsl.expected.ir.fxc.hlsl
deleted file mode 100644
index adbb0c1..0000000
--- a/test/tint/vk-gl-cts/graphicsfuzz/spv-stable-pillars-volatile-nontemporal-store/0.wgsl.expected.ir.fxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:198 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Loop
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/spv-stable-pillars-volatile-nontemporal-store/1.spvasm.expected.ir.dxc.hlsl b/test/tint/vk-gl-cts/graphicsfuzz/spv-stable-pillars-volatile-nontemporal-store/1.spvasm.expected.ir.dxc.hlsl
deleted file mode 100644
index adbb0c1..0000000
--- a/test/tint/vk-gl-cts/graphicsfuzz/spv-stable-pillars-volatile-nontemporal-store/1.spvasm.expected.ir.dxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:198 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Loop
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/spv-stable-pillars-volatile-nontemporal-store/1.spvasm.expected.ir.fxc.hlsl b/test/tint/vk-gl-cts/graphicsfuzz/spv-stable-pillars-volatile-nontemporal-store/1.spvasm.expected.ir.fxc.hlsl
deleted file mode 100644
index adbb0c1..0000000
--- a/test/tint/vk-gl-cts/graphicsfuzz/spv-stable-pillars-volatile-nontemporal-store/1.spvasm.expected.ir.fxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:198 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Loop
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/spv-stable-pillars-volatile-nontemporal-store/1.wgsl.expected.ir.dxc.hlsl b/test/tint/vk-gl-cts/graphicsfuzz/spv-stable-pillars-volatile-nontemporal-store/1.wgsl.expected.ir.dxc.hlsl
deleted file mode 100644
index adbb0c1..0000000
--- a/test/tint/vk-gl-cts/graphicsfuzz/spv-stable-pillars-volatile-nontemporal-store/1.wgsl.expected.ir.dxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:198 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Loop
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/spv-stable-pillars-volatile-nontemporal-store/1.wgsl.expected.ir.fxc.hlsl b/test/tint/vk-gl-cts/graphicsfuzz/spv-stable-pillars-volatile-nontemporal-store/1.wgsl.expected.ir.fxc.hlsl
deleted file mode 100644
index adbb0c1..0000000
--- a/test/tint/vk-gl-cts/graphicsfuzz/spv-stable-pillars-volatile-nontemporal-store/1.wgsl.expected.ir.fxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:198 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Loop
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/spv-stable-quicksort-dontinline/0-opt.spvasm.expected.ir.dxc.hlsl b/test/tint/vk-gl-cts/graphicsfuzz/spv-stable-quicksort-dontinline/0-opt.spvasm.expected.ir.dxc.hlsl
deleted file mode 100644
index 3f437dc..0000000
--- a/test/tint/vk-gl-cts/graphicsfuzz/spv-stable-quicksort-dontinline/0-opt.spvasm.expected.ir.dxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Access
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/spv-stable-quicksort-dontinline/0-opt.spvasm.expected.ir.fxc.hlsl b/test/tint/vk-gl-cts/graphicsfuzz/spv-stable-quicksort-dontinline/0-opt.spvasm.expected.ir.fxc.hlsl
deleted file mode 100644
index 3f437dc..0000000
--- a/test/tint/vk-gl-cts/graphicsfuzz/spv-stable-quicksort-dontinline/0-opt.spvasm.expected.ir.fxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Access
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/spv-stable-quicksort-dontinline/0-opt.wgsl.expected.ir.dxc.hlsl b/test/tint/vk-gl-cts/graphicsfuzz/spv-stable-quicksort-dontinline/0-opt.wgsl.expected.ir.dxc.hlsl
deleted file mode 100644
index 6b047b4..0000000
--- a/test/tint/vk-gl-cts/graphicsfuzz/spv-stable-quicksort-dontinline/0-opt.wgsl.expected.ir.dxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:287 internal compiler error: Switch() matched no cases. Type: tint::core::ir::FunctionParam
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/spv-stable-quicksort-dontinline/0-opt.wgsl.expected.ir.fxc.hlsl b/test/tint/vk-gl-cts/graphicsfuzz/spv-stable-quicksort-dontinline/0-opt.wgsl.expected.ir.fxc.hlsl
deleted file mode 100644
index 6b047b4..0000000
--- a/test/tint/vk-gl-cts/graphicsfuzz/spv-stable-quicksort-dontinline/0-opt.wgsl.expected.ir.fxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:287 internal compiler error: Switch() matched no cases. Type: tint::core::ir::FunctionParam
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/spv-stable-quicksort-mat-func-param/1.spvasm.expected.ir.dxc.hlsl b/test/tint/vk-gl-cts/graphicsfuzz/spv-stable-quicksort-mat-func-param/1.spvasm.expected.ir.dxc.hlsl
deleted file mode 100644
index 3f437dc..0000000
--- a/test/tint/vk-gl-cts/graphicsfuzz/spv-stable-quicksort-mat-func-param/1.spvasm.expected.ir.dxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Access
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/spv-stable-quicksort-mat-func-param/1.spvasm.expected.ir.fxc.hlsl b/test/tint/vk-gl-cts/graphicsfuzz/spv-stable-quicksort-mat-func-param/1.spvasm.expected.ir.fxc.hlsl
deleted file mode 100644
index 3f437dc..0000000
--- a/test/tint/vk-gl-cts/graphicsfuzz/spv-stable-quicksort-mat-func-param/1.spvasm.expected.ir.fxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Access
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/spv-stable-quicksort-mat-func-param/1.wgsl.expected.ir.dxc.hlsl b/test/tint/vk-gl-cts/graphicsfuzz/spv-stable-quicksort-mat-func-param/1.wgsl.expected.ir.dxc.hlsl
deleted file mode 100644
index 6b047b4..0000000
--- a/test/tint/vk-gl-cts/graphicsfuzz/spv-stable-quicksort-mat-func-param/1.wgsl.expected.ir.dxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:287 internal compiler error: Switch() matched no cases. Type: tint::core::ir::FunctionParam
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/spv-stable-quicksort-mat-func-param/1.wgsl.expected.ir.fxc.hlsl b/test/tint/vk-gl-cts/graphicsfuzz/spv-stable-quicksort-mat-func-param/1.wgsl.expected.ir.fxc.hlsl
deleted file mode 100644
index 6b047b4..0000000
--- a/test/tint/vk-gl-cts/graphicsfuzz/spv-stable-quicksort-mat-func-param/1.wgsl.expected.ir.fxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:287 internal compiler error: Switch() matched no cases. Type: tint::core::ir::FunctionParam
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/spv-stable-rects-Os-mutate-var-push-through-var/1.spvasm.expected.ir.dxc.hlsl b/test/tint/vk-gl-cts/graphicsfuzz/spv-stable-rects-Os-mutate-var-push-through-var/1.spvasm.expected.ir.dxc.hlsl
deleted file mode 100644
index ba8c686..0000000
--- a/test/tint/vk-gl-cts/graphicsfuzz/spv-stable-rects-Os-mutate-var-push-through-var/1.spvasm.expected.ir.dxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Swizzle
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/spv-stable-rects-Os-mutate-var-push-through-var/1.spvasm.expected.ir.fxc.hlsl b/test/tint/vk-gl-cts/graphicsfuzz/spv-stable-rects-Os-mutate-var-push-through-var/1.spvasm.expected.ir.fxc.hlsl
deleted file mode 100644
index ba8c686..0000000
--- a/test/tint/vk-gl-cts/graphicsfuzz/spv-stable-rects-Os-mutate-var-push-through-var/1.spvasm.expected.ir.fxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Swizzle
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/spv-stable-rects-Os-mutate-var-push-through-var/1.wgsl.expected.ir.dxc.hlsl b/test/tint/vk-gl-cts/graphicsfuzz/spv-stable-rects-Os-mutate-var-push-through-var/1.wgsl.expected.ir.dxc.hlsl
deleted file mode 100644
index 3f437dc..0000000
--- a/test/tint/vk-gl-cts/graphicsfuzz/spv-stable-rects-Os-mutate-var-push-through-var/1.wgsl.expected.ir.dxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Access
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/spv-stable-rects-Os-mutate-var-push-through-var/1.wgsl.expected.ir.fxc.hlsl b/test/tint/vk-gl-cts/graphicsfuzz/spv-stable-rects-Os-mutate-var-push-through-var/1.wgsl.expected.ir.fxc.hlsl
deleted file mode 100644
index 3f437dc..0000000
--- a/test/tint/vk-gl-cts/graphicsfuzz/spv-stable-rects-Os-mutate-var-push-through-var/1.wgsl.expected.ir.fxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Access
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/spv-stable-rects-Os-mutate-var-push-through-var/2.spvasm.expected.ir.dxc.hlsl b/test/tint/vk-gl-cts/graphicsfuzz/spv-stable-rects-Os-mutate-var-push-through-var/2.spvasm.expected.ir.dxc.hlsl
deleted file mode 100644
index ba8c686..0000000
--- a/test/tint/vk-gl-cts/graphicsfuzz/spv-stable-rects-Os-mutate-var-push-through-var/2.spvasm.expected.ir.dxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Swizzle
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/spv-stable-rects-Os-mutate-var-push-through-var/2.spvasm.expected.ir.fxc.hlsl b/test/tint/vk-gl-cts/graphicsfuzz/spv-stable-rects-Os-mutate-var-push-through-var/2.spvasm.expected.ir.fxc.hlsl
deleted file mode 100644
index ba8c686..0000000
--- a/test/tint/vk-gl-cts/graphicsfuzz/spv-stable-rects-Os-mutate-var-push-through-var/2.spvasm.expected.ir.fxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Swizzle
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/spv-stable-rects-Os-mutate-var-push-through-var/2.wgsl.expected.ir.dxc.hlsl b/test/tint/vk-gl-cts/graphicsfuzz/spv-stable-rects-Os-mutate-var-push-through-var/2.wgsl.expected.ir.dxc.hlsl
deleted file mode 100644
index 3f437dc..0000000
--- a/test/tint/vk-gl-cts/graphicsfuzz/spv-stable-rects-Os-mutate-var-push-through-var/2.wgsl.expected.ir.dxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Access
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/spv-stable-rects-Os-mutate-var-push-through-var/2.wgsl.expected.ir.fxc.hlsl b/test/tint/vk-gl-cts/graphicsfuzz/spv-stable-rects-Os-mutate-var-push-through-var/2.wgsl.expected.ir.fxc.hlsl
deleted file mode 100644
index 3f437dc..0000000
--- a/test/tint/vk-gl-cts/graphicsfuzz/spv-stable-rects-Os-mutate-var-push-through-var/2.wgsl.expected.ir.fxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Access
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/stable-binarysearch-tree-false-if-discard-loop/0.spvasm.expected.ir.dxc.hlsl b/test/tint/vk-gl-cts/graphicsfuzz/stable-binarysearch-tree-false-if-discard-loop/0.spvasm.expected.ir.dxc.hlsl
deleted file mode 100644
index 3f437dc..0000000
--- a/test/tint/vk-gl-cts/graphicsfuzz/stable-binarysearch-tree-false-if-discard-loop/0.spvasm.expected.ir.dxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Access
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/stable-binarysearch-tree-false-if-discard-loop/0.spvasm.expected.ir.fxc.hlsl b/test/tint/vk-gl-cts/graphicsfuzz/stable-binarysearch-tree-false-if-discard-loop/0.spvasm.expected.ir.fxc.hlsl
deleted file mode 100644
index 3f437dc..0000000
--- a/test/tint/vk-gl-cts/graphicsfuzz/stable-binarysearch-tree-false-if-discard-loop/0.spvasm.expected.ir.fxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Access
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/stable-binarysearch-tree-false-if-discard-loop/0.wgsl.expected.ir.dxc.hlsl b/test/tint/vk-gl-cts/graphicsfuzz/stable-binarysearch-tree-false-if-discard-loop/0.wgsl.expected.ir.dxc.hlsl
deleted file mode 100644
index 3f437dc..0000000
--- a/test/tint/vk-gl-cts/graphicsfuzz/stable-binarysearch-tree-false-if-discard-loop/0.wgsl.expected.ir.dxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Access
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/stable-binarysearch-tree-false-if-discard-loop/0.wgsl.expected.ir.fxc.hlsl b/test/tint/vk-gl-cts/graphicsfuzz/stable-binarysearch-tree-false-if-discard-loop/0.wgsl.expected.ir.fxc.hlsl
deleted file mode 100644
index 3f437dc..0000000
--- a/test/tint/vk-gl-cts/graphicsfuzz/stable-binarysearch-tree-false-if-discard-loop/0.wgsl.expected.ir.fxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Access
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/stable-binarysearch-tree-fragcoord-less-than-zero/0.spvasm.expected.ir.dxc.hlsl b/test/tint/vk-gl-cts/graphicsfuzz/stable-binarysearch-tree-fragcoord-less-than-zero/0.spvasm.expected.ir.dxc.hlsl
deleted file mode 100644
index 3f437dc..0000000
--- a/test/tint/vk-gl-cts/graphicsfuzz/stable-binarysearch-tree-fragcoord-less-than-zero/0.spvasm.expected.ir.dxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Access
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/stable-binarysearch-tree-fragcoord-less-than-zero/0.spvasm.expected.ir.fxc.hlsl b/test/tint/vk-gl-cts/graphicsfuzz/stable-binarysearch-tree-fragcoord-less-than-zero/0.spvasm.expected.ir.fxc.hlsl
deleted file mode 100644
index 3f437dc..0000000
--- a/test/tint/vk-gl-cts/graphicsfuzz/stable-binarysearch-tree-fragcoord-less-than-zero/0.spvasm.expected.ir.fxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Access
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/stable-binarysearch-tree-fragcoord-less-than-zero/0.wgsl.expected.ir.dxc.hlsl b/test/tint/vk-gl-cts/graphicsfuzz/stable-binarysearch-tree-fragcoord-less-than-zero/0.wgsl.expected.ir.dxc.hlsl
deleted file mode 100644
index 6b047b4..0000000
--- a/test/tint/vk-gl-cts/graphicsfuzz/stable-binarysearch-tree-fragcoord-less-than-zero/0.wgsl.expected.ir.dxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:287 internal compiler error: Switch() matched no cases. Type: tint::core::ir::FunctionParam
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/stable-binarysearch-tree-fragcoord-less-than-zero/0.wgsl.expected.ir.fxc.hlsl b/test/tint/vk-gl-cts/graphicsfuzz/stable-binarysearch-tree-fragcoord-less-than-zero/0.wgsl.expected.ir.fxc.hlsl
deleted file mode 100644
index 6b047b4..0000000
--- a/test/tint/vk-gl-cts/graphicsfuzz/stable-binarysearch-tree-fragcoord-less-than-zero/0.wgsl.expected.ir.fxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:287 internal compiler error: Switch() matched no cases. Type: tint::core::ir::FunctionParam
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/stable-binarysearch-tree-fragcoord-less-than-zero/1.spvasm.expected.ir.dxc.hlsl b/test/tint/vk-gl-cts/graphicsfuzz/stable-binarysearch-tree-fragcoord-less-than-zero/1.spvasm.expected.ir.dxc.hlsl
deleted file mode 100644
index 3f437dc..0000000
--- a/test/tint/vk-gl-cts/graphicsfuzz/stable-binarysearch-tree-fragcoord-less-than-zero/1.spvasm.expected.ir.dxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Access
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/stable-binarysearch-tree-fragcoord-less-than-zero/1.spvasm.expected.ir.fxc.hlsl b/test/tint/vk-gl-cts/graphicsfuzz/stable-binarysearch-tree-fragcoord-less-than-zero/1.spvasm.expected.ir.fxc.hlsl
deleted file mode 100644
index 3f437dc..0000000
--- a/test/tint/vk-gl-cts/graphicsfuzz/stable-binarysearch-tree-fragcoord-less-than-zero/1.spvasm.expected.ir.fxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Access
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/stable-binarysearch-tree-fragcoord-less-than-zero/1.wgsl.expected.ir.dxc.hlsl b/test/tint/vk-gl-cts/graphicsfuzz/stable-binarysearch-tree-fragcoord-less-than-zero/1.wgsl.expected.ir.dxc.hlsl
deleted file mode 100644
index 6b047b4..0000000
--- a/test/tint/vk-gl-cts/graphicsfuzz/stable-binarysearch-tree-fragcoord-less-than-zero/1.wgsl.expected.ir.dxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:287 internal compiler error: Switch() matched no cases. Type: tint::core::ir::FunctionParam
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/stable-binarysearch-tree-fragcoord-less-than-zero/1.wgsl.expected.ir.fxc.hlsl b/test/tint/vk-gl-cts/graphicsfuzz/stable-binarysearch-tree-fragcoord-less-than-zero/1.wgsl.expected.ir.fxc.hlsl
deleted file mode 100644
index 6b047b4..0000000
--- a/test/tint/vk-gl-cts/graphicsfuzz/stable-binarysearch-tree-fragcoord-less-than-zero/1.wgsl.expected.ir.fxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:287 internal compiler error: Switch() matched no cases. Type: tint::core::ir::FunctionParam
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/stable-binarysearch-tree-nested-if-and-conditional/1.spvasm.expected.ir.dxc.hlsl b/test/tint/vk-gl-cts/graphicsfuzz/stable-binarysearch-tree-nested-if-and-conditional/1.spvasm.expected.ir.dxc.hlsl
deleted file mode 100644
index 3f437dc..0000000
--- a/test/tint/vk-gl-cts/graphicsfuzz/stable-binarysearch-tree-nested-if-and-conditional/1.spvasm.expected.ir.dxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Access
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/stable-binarysearch-tree-nested-if-and-conditional/1.spvasm.expected.ir.fxc.hlsl b/test/tint/vk-gl-cts/graphicsfuzz/stable-binarysearch-tree-nested-if-and-conditional/1.spvasm.expected.ir.fxc.hlsl
deleted file mode 100644
index 3f437dc..0000000
--- a/test/tint/vk-gl-cts/graphicsfuzz/stable-binarysearch-tree-nested-if-and-conditional/1.spvasm.expected.ir.fxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Access
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/stable-binarysearch-tree-nested-if-and-conditional/1.wgsl.expected.ir.dxc.hlsl b/test/tint/vk-gl-cts/graphicsfuzz/stable-binarysearch-tree-nested-if-and-conditional/1.wgsl.expected.ir.dxc.hlsl
deleted file mode 100644
index 6b047b4..0000000
--- a/test/tint/vk-gl-cts/graphicsfuzz/stable-binarysearch-tree-nested-if-and-conditional/1.wgsl.expected.ir.dxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:287 internal compiler error: Switch() matched no cases. Type: tint::core::ir::FunctionParam
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/stable-binarysearch-tree-nested-if-and-conditional/1.wgsl.expected.ir.fxc.hlsl b/test/tint/vk-gl-cts/graphicsfuzz/stable-binarysearch-tree-nested-if-and-conditional/1.wgsl.expected.ir.fxc.hlsl
deleted file mode 100644
index 6b047b4..0000000
--- a/test/tint/vk-gl-cts/graphicsfuzz/stable-binarysearch-tree-nested-if-and-conditional/1.wgsl.expected.ir.fxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:287 internal compiler error: Switch() matched no cases. Type: tint::core::ir::FunctionParam
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/stable-binarysearch-tree-with-loop-read-write-global/0-opt.spvasm.expected.ir.dxc.hlsl b/test/tint/vk-gl-cts/graphicsfuzz/stable-binarysearch-tree-with-loop-read-write-global/0-opt.spvasm.expected.ir.dxc.hlsl
deleted file mode 100644
index 3f437dc..0000000
--- a/test/tint/vk-gl-cts/graphicsfuzz/stable-binarysearch-tree-with-loop-read-write-global/0-opt.spvasm.expected.ir.dxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Access
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/stable-binarysearch-tree-with-loop-read-write-global/0-opt.spvasm.expected.ir.fxc.hlsl b/test/tint/vk-gl-cts/graphicsfuzz/stable-binarysearch-tree-with-loop-read-write-global/0-opt.spvasm.expected.ir.fxc.hlsl
deleted file mode 100644
index 3f437dc..0000000
--- a/test/tint/vk-gl-cts/graphicsfuzz/stable-binarysearch-tree-with-loop-read-write-global/0-opt.spvasm.expected.ir.fxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Access
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/stable-binarysearch-tree-with-loop-read-write-global/0-opt.wgsl.expected.ir.dxc.hlsl b/test/tint/vk-gl-cts/graphicsfuzz/stable-binarysearch-tree-with-loop-read-write-global/0-opt.wgsl.expected.ir.dxc.hlsl
deleted file mode 100644
index 6b047b4..0000000
--- a/test/tint/vk-gl-cts/graphicsfuzz/stable-binarysearch-tree-with-loop-read-write-global/0-opt.wgsl.expected.ir.dxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:287 internal compiler error: Switch() matched no cases. Type: tint::core::ir::FunctionParam
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/stable-binarysearch-tree-with-loop-read-write-global/0-opt.wgsl.expected.ir.fxc.hlsl b/test/tint/vk-gl-cts/graphicsfuzz/stable-binarysearch-tree-with-loop-read-write-global/0-opt.wgsl.expected.ir.fxc.hlsl
deleted file mode 100644
index 6b047b4..0000000
--- a/test/tint/vk-gl-cts/graphicsfuzz/stable-binarysearch-tree-with-loop-read-write-global/0-opt.wgsl.expected.ir.fxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:287 internal compiler error: Switch() matched no cases. Type: tint::core::ir::FunctionParam
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/stable-binarysearch-tree-with-loop-read-write-global/1.spvasm.expected.ir.dxc.hlsl b/test/tint/vk-gl-cts/graphicsfuzz/stable-binarysearch-tree-with-loop-read-write-global/1.spvasm.expected.ir.dxc.hlsl
deleted file mode 100644
index 3f437dc..0000000
--- a/test/tint/vk-gl-cts/graphicsfuzz/stable-binarysearch-tree-with-loop-read-write-global/1.spvasm.expected.ir.dxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Access
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/stable-binarysearch-tree-with-loop-read-write-global/1.spvasm.expected.ir.fxc.hlsl b/test/tint/vk-gl-cts/graphicsfuzz/stable-binarysearch-tree-with-loop-read-write-global/1.spvasm.expected.ir.fxc.hlsl
index 3f437dc..912a733 100644
--- a/test/tint/vk-gl-cts/graphicsfuzz/stable-binarysearch-tree-with-loop-read-write-global/1.spvasm.expected.ir.fxc.hlsl
+++ b/test/tint/vk-gl-cts/graphicsfuzz/stable-binarysearch-tree-with-loop-read-write-global/1.spvasm.expected.ir.fxc.hlsl
@@ -1,9 +1,297 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Access
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct QuicksortObject {
+  int numbers[10];
+};
+
+struct BST {
+  int data;
+  int leftIndex;
+  int rightIndex;
+};
+
+struct main_out {
+  float4 x_GLF_color_1;
+};
+
+struct main_outputs {
+  float4 main_out_x_GLF_color_1 : SV_Target0;
+};
+
+
+static QuicksortObject obj = (QuicksortObject)0;
+static BST tree[10] = (BST[10])0;
+cbuffer cbuffer_x_50 : register(b0) {
+  uint4 x_50[1];
+};
+static float4 x_GLF_color = (0.0f).xxxx;
+void makeTreeNode_struct_BST_i1_i1_i11_i1_(inout BST node, inout int data) {
+  node.data = data;
+  node.leftIndex = -1;
+  node.rightIndex = -1;
+}
+
+void insert_i1_i1_(inout int treeIndex, inout int data_1) {
+  int baseIndex = 0;
+  BST param = (BST)0;
+  int param_1 = 0;
+  BST param_2 = (BST)0;
+  int param_3 = 0;
+  baseIndex = 0;
+  {
+    while(true) {
+      if ((baseIndex <= treeIndex)) {
+      } else {
+        break;
+      }
+      if ((data_1 <= tree[baseIndex].data)) {
+        if ((tree[baseIndex].leftIndex == -1)) {
+          int x_236 = baseIndex;
+          tree[x_236].leftIndex = treeIndex;
+          int x_239 = treeIndex;
+          BST v = tree[x_239];
+          param = v;
+          param_1 = data_1;
+          makeTreeNode_struct_BST_i1_i1_i11_i1_(param, param_1);
+          BST v_1 = param;
+          tree[x_239] = v_1;
+          return;
+        } else {
+          baseIndex = tree[baseIndex].leftIndex;
+          {
+          }
+          continue;
+        }
+      } else {
+        if ((tree[baseIndex].rightIndex == -1)) {
+          int x_256 = baseIndex;
+          tree[x_256].rightIndex = treeIndex;
+          int x_259 = treeIndex;
+          BST v_2 = tree[x_259];
+          param_2 = v_2;
+          param_3 = data_1;
+          makeTreeNode_struct_BST_i1_i1_i11_i1_(param_2, param_3);
+          BST v_3 = param_2;
+          tree[x_259] = v_3;
+          return;
+        } else {
+          baseIndex = tree[baseIndex].rightIndex;
+          {
+          }
+          continue;
+        }
+      }
+      /* unreachable */
+    }
+  }
+}
+
+int identity_i1_(inout int a) {
+  int x_202 = a;
+  obj.numbers[x_202] = a;
+  int x_206 = obj.numbers[2];
+  return x_206;
+}
+
+int search_i1_(inout int t) {
+  int index = 0;
+  BST currentNode = (BST)0;
+  int x_270 = 0;
+  index = 0;
+  {
+    while(true) {
+      if ((index != -1)) {
+      } else {
+        break;
+      }
+      BST v_4 = tree[index];
+      currentNode = v_4;
+      if ((currentNode.data == t)) {
+        int x_287 = t;
+        return x_287;
+      }
+      if ((t > currentNode.data)) {
+        x_270 = currentNode.rightIndex;
+      } else {
+        x_270 = currentNode.leftIndex;
+      }
+      index = x_270;
+      {
+      }
+      continue;
+    }
+  }
+  return -1;
+}
+
+int tint_f32_to_i32(float value) {
+  return (((value <= 2147483520.0f)) ? ((((value >= -2147483648.0f)) ? (int(value)) : (-2147483648))) : (2147483647));
+}
+
+void main_1() {
+  int treeIndex_1 = 0;
+  BST param_4 = (BST)0;
+  int param_5 = 0;
+  int param_6 = 0;
+  int param_7 = 0;
+  int param_8 = 0;
+  int param_9 = 0;
+  int param_10 = 0;
+  int param_11 = 0;
+  int param_12 = 0;
+  int param_13 = 0;
+  int param_14 = 0;
+  int param_15 = 0;
+  int param_16 = 0;
+  int param_17 = 0;
+  int param_18 = 0;
+  int param_19 = 0;
+  int param_20 = 0;
+  int param_21 = 0;
+  int param_22 = 0;
+  int param_23 = 0;
+  int pp = 0;
+  int looplimiter0 = 0;
+  int i = 0;
+  int param_24 = 0;
+  int count = 0;
+  int i_1 = 0;
+  int result = 0;
+  int param_25 = 0;
+  treeIndex_1 = 0;
+  BST v_5 = tree[0];
+  param_4 = v_5;
+  param_5 = 9;
+  makeTreeNode_struct_BST_i1_i1_i11_i1_(param_4, param_5);
+  BST v_6 = param_4;
+  tree[0] = v_6;
+  treeIndex_1 = (treeIndex_1 + 1);
+  param_6 = treeIndex_1;
+  param_7 = 5;
+  insert_i1_i1_(param_6, param_7);
+  treeIndex_1 = (treeIndex_1 + 1);
+  param_8 = treeIndex_1;
+  param_9 = 12;
+  insert_i1_i1_(param_8, param_9);
+  treeIndex_1 = (treeIndex_1 + 1);
+  param_10 = treeIndex_1;
+  param_11 = 15;
+  insert_i1_i1_(param_10, param_11);
+  treeIndex_1 = (treeIndex_1 + 1);
+  param_12 = treeIndex_1;
+  param_13 = 7;
+  insert_i1_i1_(param_12, param_13);
+  treeIndex_1 = (treeIndex_1 + 1);
+  param_14 = treeIndex_1;
+  param_15 = 8;
+  insert_i1_i1_(param_14, param_15);
+  treeIndex_1 = (treeIndex_1 + 1);
+  param_16 = treeIndex_1;
+  param_17 = 2;
+  insert_i1_i1_(param_16, param_17);
+  treeIndex_1 = (treeIndex_1 + 1);
+  param_18 = treeIndex_1;
+  param_19 = 6;
+  insert_i1_i1_(param_18, param_19);
+  treeIndex_1 = (treeIndex_1 + 1);
+  param_20 = treeIndex_1;
+  param_21 = 17;
+  insert_i1_i1_(param_20, param_21);
+  treeIndex_1 = (treeIndex_1 + 1);
+  param_22 = treeIndex_1;
+  param_23 = 13;
+  insert_i1_i1_(param_22, param_23);
+  pp = 0;
+  looplimiter0 = 0;
+  i = 0;
+  {
+    while(true) {
+      if ((i < 10000)) {
+      } else {
+        break;
+      }
+      int v_7 = looplimiter0;
+      if ((v_7 >= tint_f32_to_i32(asfloat(x_50[0u].y)))) {
+        param_24 = (1 + tint_f32_to_i32(asfloat(x_50[0u].y)));
+        int x_159 = identity_i1_(param_24);
+        pp = x_159;
+        break;
+      }
+      looplimiter0 = (looplimiter0 + 1);
+      {
+        i = (i + 1);
+      }
+      continue;
+    }
+  }
+  if ((pp != 2)) {
+    return;
+  }
+  count = 0;
+  i_1 = 0;
+  {
+    while(true) {
+      if ((i_1 < 20)) {
+      } else {
+        break;
+      }
+      param_25 = i_1;
+      int x_176 = search_i1_(param_25);
+      result = x_176;
+      int x_177 = i_1;
+      switch(x_177) {
+        case 2:
+        case 5:
+        case 6:
+        case 7:
+        case 8:
+        case 9:
+        case 12:
+        case 13:
+        case 15:
+        case 17:
+        {
+          if ((result == i_1)) {
+            count = (count + 1);
+          }
+          break;
+        }
+        default:
+        {
+          if ((result == -1)) {
+            count = (count + 1);
+          }
+          break;
+        }
+      }
+      {
+        i_1 = (i_1 + 1);
+      }
+      continue;
+    }
+  }
+  if ((count == 20)) {
+    x_GLF_color = float4(1.0f, 0.0f, 0.0f, 1.0f);
+  } else {
+    x_GLF_color = float4(0.0f, 0.0f, 1.0f, 1.0f);
+  }
+}
+
+main_out main_inner() {
+  main_1();
+  main_out v_8 = {x_GLF_color};
+  return v_8;
+}
+
+main_outputs main() {
+  main_out v_9 = main_inner();
+  main_outputs v_10 = {v_9.x_GLF_color_1};
+  return v_10;
+}
+
+FXC validation failure:
+c:\src\dawn\Shader@0x000001D89DC5EF70(40,5-15): warning X3557: loop only executes for 0 iteration(s), forcing loop to unroll
+c:\src\dawn\Shader@0x000001D89DC5EF70(40,5-15): warning X3557: loop only executes for 0 iteration(s), forcing loop to unroll
+c:\src\dawn\Shader@0x000001D89DC5EF70(89,3-20): error X3500: array reference cannot be used as an l-value; not natively addressable
+c:\src\dawn\Shader@0x000001D89DC5EF70(206,5-15): error X3511: forced to unroll loop, but unrolling failed.
+
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/stable-binarysearch-tree-with-loop-read-write-global/1.wgsl.expected.ir.dxc.hlsl b/test/tint/vk-gl-cts/graphicsfuzz/stable-binarysearch-tree-with-loop-read-write-global/1.wgsl.expected.ir.dxc.hlsl
deleted file mode 100644
index 6b047b4..0000000
--- a/test/tint/vk-gl-cts/graphicsfuzz/stable-binarysearch-tree-with-loop-read-write-global/1.wgsl.expected.ir.dxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:287 internal compiler error: Switch() matched no cases. Type: tint::core::ir::FunctionParam
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/stable-binarysearch-tree-with-loop-read-write-global/1.wgsl.expected.ir.fxc.hlsl b/test/tint/vk-gl-cts/graphicsfuzz/stable-binarysearch-tree-with-loop-read-write-global/1.wgsl.expected.ir.fxc.hlsl
index 6b047b4..c14898c 100644
--- a/test/tint/vk-gl-cts/graphicsfuzz/stable-binarysearch-tree-with-loop-read-write-global/1.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/vk-gl-cts/graphicsfuzz/stable-binarysearch-tree-with-loop-read-write-global/1.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,365 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:287 internal compiler error: Switch() matched no cases. Type: tint::core::ir::FunctionParam
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct QuicksortObject {
+  int numbers[10];
+};
+
+struct BST {
+  int data;
+  int leftIndex;
+  int rightIndex;
+};
+
+struct main_out {
+  float4 x_GLF_color_1;
+};
+
+struct main_outputs {
+  float4 main_out_x_GLF_color_1 : SV_Target0;
+};
+
+
+static QuicksortObject obj = (QuicksortObject)0;
+static BST tree[10] = (BST[10])0;
+cbuffer cbuffer_x_50 : register(b0) {
+  uint4 x_50[1];
+};
+static float4 x_GLF_color = (0.0f).xxxx;
+void makeTreeNode_struct_BST_i1_i1_i11_i1_(inout BST node, inout int data) {
+  int x_208 = data;
+  node.data = x_208;
+  node.leftIndex = -1;
+  node.rightIndex = -1;
+}
+
+void insert_i1_i1_(inout int treeIndex, inout int data_1) {
+  int baseIndex = 0;
+  BST param = (BST)0;
+  int param_1 = 0;
+  BST param_2 = (BST)0;
+  int param_3 = 0;
+  baseIndex = 0;
+  {
+    while(true) {
+      int x_217 = baseIndex;
+      int x_218 = treeIndex;
+      if ((x_217 <= x_218)) {
+      } else {
+        break;
+      }
+      int x_221 = data_1;
+      int x_222 = baseIndex;
+      int x_224 = tree[x_222].data;
+      if ((x_221 <= x_224)) {
+        int x_229 = baseIndex;
+        int x_231 = tree[x_229].leftIndex;
+        if ((x_231 == -1)) {
+          int x_236 = baseIndex;
+          int x_237 = treeIndex;
+          tree[x_236].leftIndex = x_237;
+          int x_239 = treeIndex;
+          BST v = tree[x_239];
+          BST x_241 = v;
+          param = x_241;
+          int x_242 = data_1;
+          param_1 = x_242;
+          makeTreeNode_struct_BST_i1_i1_i11_i1_(param, param_1);
+          BST v_1 = param;
+          BST x_244 = v_1;
+          tree[x_239] = x_244;
+          return;
+        } else {
+          int x_246 = baseIndex;
+          int x_248 = tree[x_246].leftIndex;
+          baseIndex = x_248;
+          {
+          }
+          continue;
+        }
+      } else {
+        int x_249 = baseIndex;
+        int x_251 = tree[x_249].rightIndex;
+        if ((x_251 == -1)) {
+          int x_256 = baseIndex;
+          int x_257 = treeIndex;
+          tree[x_256].rightIndex = x_257;
+          int x_259 = treeIndex;
+          BST v_2 = tree[x_259];
+          BST x_261 = v_2;
+          param_2 = x_261;
+          int x_262 = data_1;
+          param_3 = x_262;
+          makeTreeNode_struct_BST_i1_i1_i11_i1_(param_2, param_3);
+          BST v_3 = param_2;
+          BST x_264 = v_3;
+          tree[x_259] = x_264;
+          return;
+        } else {
+          int x_266 = baseIndex;
+          int x_268 = tree[x_266].rightIndex;
+          baseIndex = x_268;
+          {
+          }
+          continue;
+        }
+      }
+      /* unreachable */
+    }
+  }
+}
+
+int identity_i1_(inout int a) {
+  int x_202 = a;
+  int x_203 = a;
+  obj.numbers[x_202] = x_203;
+  int x_206 = obj.numbers[2];
+  return x_206;
+}
+
+int search_i1_(inout int t) {
+  int index = 0;
+  BST currentNode = (BST)0;
+  int x_270 = 0;
+  index = 0;
+  {
+    while(true) {
+      int x_275 = index;
+      if ((x_275 != -1)) {
+      } else {
+        break;
+      }
+      int x_278 = index;
+      BST v_4 = tree[x_278];
+      BST x_280 = v_4;
+      currentNode = x_280;
+      int x_282 = currentNode.data;
+      int x_283 = t;
+      if ((x_282 == x_283)) {
+        int x_287 = t;
+        return x_287;
+      }
+      int x_288 = t;
+      int x_290 = currentNode.data;
+      if ((x_288 > x_290)) {
+        int x_296 = currentNode.rightIndex;
+        x_270 = x_296;
+      } else {
+        int x_298 = currentNode.leftIndex;
+        x_270 = x_298;
+      }
+      int x_299 = x_270;
+      index = x_299;
+      {
+      }
+      continue;
+    }
+  }
+  return -1;
+}
+
+int tint_f32_to_i32(float value) {
+  return (((value <= 2147483520.0f)) ? ((((value >= -2147483648.0f)) ? (int(value)) : (-2147483648))) : (2147483647));
+}
+
+void main_1() {
+  int treeIndex_1 = 0;
+  BST param_4 = (BST)0;
+  int param_5 = 0;
+  int param_6 = 0;
+  int param_7 = 0;
+  int param_8 = 0;
+  int param_9 = 0;
+  int param_10 = 0;
+  int param_11 = 0;
+  int param_12 = 0;
+  int param_13 = 0;
+  int param_14 = 0;
+  int param_15 = 0;
+  int param_16 = 0;
+  int param_17 = 0;
+  int param_18 = 0;
+  int param_19 = 0;
+  int param_20 = 0;
+  int param_21 = 0;
+  int param_22 = 0;
+  int param_23 = 0;
+  int pp = 0;
+  int looplimiter0 = 0;
+  int i = 0;
+  int param_24 = 0;
+  int count = 0;
+  int i_1 = 0;
+  int result = 0;
+  int param_25 = 0;
+  treeIndex_1 = 0;
+  BST v_5 = tree[0];
+  BST x_101 = v_5;
+  param_4 = x_101;
+  param_5 = 9;
+  makeTreeNode_struct_BST_i1_i1_i11_i1_(param_4, param_5);
+  BST v_6 = param_4;
+  BST x_103 = v_6;
+  tree[0] = x_103;
+  int x_105 = treeIndex_1;
+  treeIndex_1 = (x_105 + 1);
+  int x_107 = treeIndex_1;
+  param_6 = x_107;
+  param_7 = 5;
+  insert_i1_i1_(param_6, param_7);
+  int x_109 = treeIndex_1;
+  treeIndex_1 = (x_109 + 1);
+  int x_111 = treeIndex_1;
+  param_8 = x_111;
+  param_9 = 12;
+  insert_i1_i1_(param_8, param_9);
+  int x_113 = treeIndex_1;
+  treeIndex_1 = (x_113 + 1);
+  int x_115 = treeIndex_1;
+  param_10 = x_115;
+  param_11 = 15;
+  insert_i1_i1_(param_10, param_11);
+  int x_117 = treeIndex_1;
+  treeIndex_1 = (x_117 + 1);
+  int x_119 = treeIndex_1;
+  param_12 = x_119;
+  param_13 = 7;
+  insert_i1_i1_(param_12, param_13);
+  int x_121 = treeIndex_1;
+  treeIndex_1 = (x_121 + 1);
+  int x_123 = treeIndex_1;
+  param_14 = x_123;
+  param_15 = 8;
+  insert_i1_i1_(param_14, param_15);
+  int x_125 = treeIndex_1;
+  treeIndex_1 = (x_125 + 1);
+  int x_127 = treeIndex_1;
+  param_16 = x_127;
+  param_17 = 2;
+  insert_i1_i1_(param_16, param_17);
+  int x_129 = treeIndex_1;
+  treeIndex_1 = (x_129 + 1);
+  int x_131 = treeIndex_1;
+  param_18 = x_131;
+  param_19 = 6;
+  insert_i1_i1_(param_18, param_19);
+  int x_133 = treeIndex_1;
+  treeIndex_1 = (x_133 + 1);
+  int x_135 = treeIndex_1;
+  param_20 = x_135;
+  param_21 = 17;
+  insert_i1_i1_(param_20, param_21);
+  int x_137 = treeIndex_1;
+  treeIndex_1 = (x_137 + 1);
+  int x_139 = treeIndex_1;
+  param_22 = x_139;
+  param_23 = 13;
+  insert_i1_i1_(param_22, param_23);
+  pp = 0;
+  looplimiter0 = 0;
+  i = 0;
+  {
+    while(true) {
+      int x_145 = i;
+      if ((x_145 < 10000)) {
+      } else {
+        break;
+      }
+      int x_148 = looplimiter0;
+      float x_150 = asfloat(x_50[0u].y);
+      if ((x_148 >= tint_f32_to_i32(x_150))) {
+        float x_156 = asfloat(x_50[0u].y);
+        param_24 = (1 + tint_f32_to_i32(x_156));
+        int x_159 = identity_i1_(param_24);
+        pp = x_159;
+        break;
+      }
+      int x_160 = looplimiter0;
+      looplimiter0 = (x_160 + 1);
+      {
+        int x_162 = i;
+        i = (x_162 + 1);
+      }
+      continue;
+    }
+  }
+  int x_164 = pp;
+  if ((x_164 != 2)) {
+    return;
+  }
+  count = 0;
+  i_1 = 0;
+  {
+    while(true) {
+      int x_172 = i_1;
+      if ((x_172 < 20)) {
+      } else {
+        break;
+      }
+      int x_175 = i_1;
+      param_25 = x_175;
+      int x_176 = search_i1_(param_25);
+      result = x_176;
+      int x_177 = i_1;
+      switch(x_177) {
+        case 2:
+        case 5:
+        case 6:
+        case 7:
+        case 8:
+        case 9:
+        case 12:
+        case 13:
+        case 15:
+        case 17:
+        {
+          int x_187 = result;
+          int x_188 = i_1;
+          if ((x_187 == x_188)) {
+            int x_192 = count;
+            count = (x_192 + 1);
+          }
+          break;
+        }
+        default:
+        {
+          int x_181 = result;
+          if ((x_181 == -1)) {
+            int x_185 = count;
+            count = (x_185 + 1);
+          }
+          break;
+        }
+      }
+      {
+        int x_194 = i_1;
+        i_1 = (x_194 + 1);
+      }
+      continue;
+    }
+  }
+  int x_196 = count;
+  if ((x_196 == 20)) {
+    x_GLF_color = float4(1.0f, 0.0f, 0.0f, 1.0f);
+  } else {
+    x_GLF_color = float4(0.0f, 0.0f, 1.0f, 1.0f);
+  }
+}
+
+main_out main_inner() {
+  main_1();
+  main_out v_7 = {x_GLF_color};
+  return v_7;
+}
+
+main_outputs main() {
+  main_out v_8 = main_inner();
+  main_outputs v_9 = {v_8.x_GLF_color_1};
+  return v_9;
+}
+
+FXC validation failure:
+c:\src\dawn\Shader@0x000002323F641C70(41,5-15): warning X3557: loop only executes for 0 iteration(s), forcing loop to unroll
+c:\src\dawn\Shader@0x000002323F641C70(41,5-15): warning X3557: loop only executes for 0 iteration(s), forcing loop to unroll
+c:\src\dawn\Shader@0x000002323F641C70(112,3-20): error X3500: array reference cannot be used as an l-value; not natively addressable
+c:\src\dawn\Shader@0x000002323F641C70(259,5-15): error X3511: forced to unroll loop, but unrolling failed.
+
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/stable-collatz-push-constant-with-nested-min-max/0.spvasm.expected.ir.dxc.hlsl b/test/tint/vk-gl-cts/graphicsfuzz/stable-collatz-push-constant-with-nested-min-max/0.spvasm.expected.ir.dxc.hlsl
deleted file mode 100644
index adbb0c1..0000000
--- a/test/tint/vk-gl-cts/graphicsfuzz/stable-collatz-push-constant-with-nested-min-max/0.spvasm.expected.ir.dxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:198 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Loop
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/stable-collatz-push-constant-with-nested-min-max/0.spvasm.expected.ir.fxc.hlsl b/test/tint/vk-gl-cts/graphicsfuzz/stable-collatz-push-constant-with-nested-min-max/0.spvasm.expected.ir.fxc.hlsl
deleted file mode 100644
index adbb0c1..0000000
--- a/test/tint/vk-gl-cts/graphicsfuzz/stable-collatz-push-constant-with-nested-min-max/0.spvasm.expected.ir.fxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:198 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Loop
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/stable-collatz-push-constant-with-nested-min-max/0.wgsl.expected.ir.dxc.hlsl b/test/tint/vk-gl-cts/graphicsfuzz/stable-collatz-push-constant-with-nested-min-max/0.wgsl.expected.ir.dxc.hlsl
deleted file mode 100644
index adbb0c1..0000000
--- a/test/tint/vk-gl-cts/graphicsfuzz/stable-collatz-push-constant-with-nested-min-max/0.wgsl.expected.ir.dxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:198 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Loop
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/stable-collatz-push-constant-with-nested-min-max/0.wgsl.expected.ir.fxc.hlsl b/test/tint/vk-gl-cts/graphicsfuzz/stable-collatz-push-constant-with-nested-min-max/0.wgsl.expected.ir.fxc.hlsl
deleted file mode 100644
index adbb0c1..0000000
--- a/test/tint/vk-gl-cts/graphicsfuzz/stable-collatz-push-constant-with-nested-min-max/0.wgsl.expected.ir.fxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:198 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Loop
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/stable-colorgrid-modulo-double-always-false-discard/1.spvasm.expected.ir.dxc.hlsl b/test/tint/vk-gl-cts/graphicsfuzz/stable-colorgrid-modulo-double-always-false-discard/1.spvasm.expected.ir.dxc.hlsl
index 4a2c666..d1ee477 100644
--- a/test/tint/vk-gl-cts/graphicsfuzz/stable-colorgrid-modulo-double-always-false-discard/1.spvasm.expected.ir.dxc.hlsl
+++ b/test/tint/vk-gl-cts/graphicsfuzz/stable-colorgrid-modulo-double-always-false-discard/1.spvasm.expected.ir.dxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::LoadVectorElement
+..\..\src\tint\lang\core\ir\transform\demote_to_helper.cc:208 internal compiler error: TINT_UNREACHABLE unexpected non-core instruction
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/stable-colorgrid-modulo-double-always-false-discard/1.spvasm.expected.ir.fxc.hlsl b/test/tint/vk-gl-cts/graphicsfuzz/stable-colorgrid-modulo-double-always-false-discard/1.spvasm.expected.ir.fxc.hlsl
index 4a2c666..d1ee477 100644
--- a/test/tint/vk-gl-cts/graphicsfuzz/stable-colorgrid-modulo-double-always-false-discard/1.spvasm.expected.ir.fxc.hlsl
+++ b/test/tint/vk-gl-cts/graphicsfuzz/stable-colorgrid-modulo-double-always-false-discard/1.spvasm.expected.ir.fxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::LoadVectorElement
+..\..\src\tint\lang\core\ir\transform\demote_to_helper.cc:208 internal compiler error: TINT_UNREACHABLE unexpected non-core instruction
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/stable-colorgrid-modulo-double-always-false-discard/1.wgsl.expected.ir.dxc.hlsl b/test/tint/vk-gl-cts/graphicsfuzz/stable-colorgrid-modulo-double-always-false-discard/1.wgsl.expected.ir.dxc.hlsl
index 4a2c666..d1ee477 100644
--- a/test/tint/vk-gl-cts/graphicsfuzz/stable-colorgrid-modulo-double-always-false-discard/1.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/vk-gl-cts/graphicsfuzz/stable-colorgrid-modulo-double-always-false-discard/1.wgsl.expected.ir.dxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::LoadVectorElement
+..\..\src\tint\lang\core\ir\transform\demote_to_helper.cc:208 internal compiler error: TINT_UNREACHABLE unexpected non-core instruction
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/stable-colorgrid-modulo-double-always-false-discard/1.wgsl.expected.ir.fxc.hlsl b/test/tint/vk-gl-cts/graphicsfuzz/stable-colorgrid-modulo-double-always-false-discard/1.wgsl.expected.ir.fxc.hlsl
index 4a2c666..d1ee477 100644
--- a/test/tint/vk-gl-cts/graphicsfuzz/stable-colorgrid-modulo-double-always-false-discard/1.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/vk-gl-cts/graphicsfuzz/stable-colorgrid-modulo-double-always-false-discard/1.wgsl.expected.ir.fxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::LoadVectorElement
+..\..\src\tint\lang\core\ir\transform\demote_to_helper.cc:208 internal compiler error: TINT_UNREACHABLE unexpected non-core instruction
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/stable-colorgrid-modulo-float-mat-determinant-clamp/0.spvasm.expected.ir.dxc.hlsl b/test/tint/vk-gl-cts/graphicsfuzz/stable-colorgrid-modulo-float-mat-determinant-clamp/0.spvasm.expected.ir.dxc.hlsl
deleted file mode 100644
index adbb0c1..0000000
--- a/test/tint/vk-gl-cts/graphicsfuzz/stable-colorgrid-modulo-float-mat-determinant-clamp/0.spvasm.expected.ir.dxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:198 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Loop
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/stable-colorgrid-modulo-float-mat-determinant-clamp/0.spvasm.expected.ir.fxc.hlsl b/test/tint/vk-gl-cts/graphicsfuzz/stable-colorgrid-modulo-float-mat-determinant-clamp/0.spvasm.expected.ir.fxc.hlsl
deleted file mode 100644
index adbb0c1..0000000
--- a/test/tint/vk-gl-cts/graphicsfuzz/stable-colorgrid-modulo-float-mat-determinant-clamp/0.spvasm.expected.ir.fxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:198 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Loop
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/stable-colorgrid-modulo-float-mat-determinant-clamp/0.wgsl.expected.ir.dxc.hlsl b/test/tint/vk-gl-cts/graphicsfuzz/stable-colorgrid-modulo-float-mat-determinant-clamp/0.wgsl.expected.ir.dxc.hlsl
deleted file mode 100644
index adbb0c1..0000000
--- a/test/tint/vk-gl-cts/graphicsfuzz/stable-colorgrid-modulo-float-mat-determinant-clamp/0.wgsl.expected.ir.dxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:198 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Loop
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/stable-colorgrid-modulo-float-mat-determinant-clamp/0.wgsl.expected.ir.fxc.hlsl b/test/tint/vk-gl-cts/graphicsfuzz/stable-colorgrid-modulo-float-mat-determinant-clamp/0.wgsl.expected.ir.fxc.hlsl
deleted file mode 100644
index adbb0c1..0000000
--- a/test/tint/vk-gl-cts/graphicsfuzz/stable-colorgrid-modulo-float-mat-determinant-clamp/0.wgsl.expected.ir.fxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:198 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Loop
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/stable-colorgrid-modulo-injected-conditional-true/1.spvasm.expected.ir.dxc.hlsl b/test/tint/vk-gl-cts/graphicsfuzz/stable-colorgrid-modulo-injected-conditional-true/1.spvasm.expected.ir.dxc.hlsl
deleted file mode 100644
index adbb0c1..0000000
--- a/test/tint/vk-gl-cts/graphicsfuzz/stable-colorgrid-modulo-injected-conditional-true/1.spvasm.expected.ir.dxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:198 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Loop
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/stable-colorgrid-modulo-injected-conditional-true/1.spvasm.expected.ir.fxc.hlsl b/test/tint/vk-gl-cts/graphicsfuzz/stable-colorgrid-modulo-injected-conditional-true/1.spvasm.expected.ir.fxc.hlsl
deleted file mode 100644
index adbb0c1..0000000
--- a/test/tint/vk-gl-cts/graphicsfuzz/stable-colorgrid-modulo-injected-conditional-true/1.spvasm.expected.ir.fxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:198 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Loop
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/stable-colorgrid-modulo-injected-conditional-true/1.wgsl.expected.ir.dxc.hlsl b/test/tint/vk-gl-cts/graphicsfuzz/stable-colorgrid-modulo-injected-conditional-true/1.wgsl.expected.ir.dxc.hlsl
deleted file mode 100644
index adbb0c1..0000000
--- a/test/tint/vk-gl-cts/graphicsfuzz/stable-colorgrid-modulo-injected-conditional-true/1.wgsl.expected.ir.dxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:198 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Loop
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/stable-colorgrid-modulo-injected-conditional-true/1.wgsl.expected.ir.fxc.hlsl b/test/tint/vk-gl-cts/graphicsfuzz/stable-colorgrid-modulo-injected-conditional-true/1.wgsl.expected.ir.fxc.hlsl
deleted file mode 100644
index adbb0c1..0000000
--- a/test/tint/vk-gl-cts/graphicsfuzz/stable-colorgrid-modulo-injected-conditional-true/1.wgsl.expected.ir.fxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:198 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Loop
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/stable-colorgrid-modulo-true-conditional-divided-1/0-opt.spvasm.expected.ir.dxc.hlsl b/test/tint/vk-gl-cts/graphicsfuzz/stable-colorgrid-modulo-true-conditional-divided-1/0-opt.spvasm.expected.ir.dxc.hlsl
deleted file mode 100644
index adbb0c1..0000000
--- a/test/tint/vk-gl-cts/graphicsfuzz/stable-colorgrid-modulo-true-conditional-divided-1/0-opt.spvasm.expected.ir.dxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:198 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Loop
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/stable-colorgrid-modulo-true-conditional-divided-1/0-opt.spvasm.expected.ir.fxc.hlsl b/test/tint/vk-gl-cts/graphicsfuzz/stable-colorgrid-modulo-true-conditional-divided-1/0-opt.spvasm.expected.ir.fxc.hlsl
deleted file mode 100644
index adbb0c1..0000000
--- a/test/tint/vk-gl-cts/graphicsfuzz/stable-colorgrid-modulo-true-conditional-divided-1/0-opt.spvasm.expected.ir.fxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:198 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Loop
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/stable-colorgrid-modulo-true-conditional-divided-1/0-opt.wgsl.expected.ir.dxc.hlsl b/test/tint/vk-gl-cts/graphicsfuzz/stable-colorgrid-modulo-true-conditional-divided-1/0-opt.wgsl.expected.ir.dxc.hlsl
deleted file mode 100644
index adbb0c1..0000000
--- a/test/tint/vk-gl-cts/graphicsfuzz/stable-colorgrid-modulo-true-conditional-divided-1/0-opt.wgsl.expected.ir.dxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:198 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Loop
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/stable-colorgrid-modulo-true-conditional-divided-1/0-opt.wgsl.expected.ir.fxc.hlsl b/test/tint/vk-gl-cts/graphicsfuzz/stable-colorgrid-modulo-true-conditional-divided-1/0-opt.wgsl.expected.ir.fxc.hlsl
deleted file mode 100644
index adbb0c1..0000000
--- a/test/tint/vk-gl-cts/graphicsfuzz/stable-colorgrid-modulo-true-conditional-divided-1/0-opt.wgsl.expected.ir.fxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:198 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Loop
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/stable-colorgrid-modulo-true-conditional-divided-1/1.spvasm.expected.ir.dxc.hlsl b/test/tint/vk-gl-cts/graphicsfuzz/stable-colorgrid-modulo-true-conditional-divided-1/1.spvasm.expected.ir.dxc.hlsl
index adbb0c1..d1ee477 100644
--- a/test/tint/vk-gl-cts/graphicsfuzz/stable-colorgrid-modulo-true-conditional-divided-1/1.spvasm.expected.ir.dxc.hlsl
+++ b/test/tint/vk-gl-cts/graphicsfuzz/stable-colorgrid-modulo-true-conditional-divided-1/1.spvasm.expected.ir.dxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:198 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Loop
+..\..\src\tint\lang\core\ir\transform\demote_to_helper.cc:208 internal compiler error: TINT_UNREACHABLE unexpected non-core instruction
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/stable-colorgrid-modulo-true-conditional-divided-1/1.spvasm.expected.ir.fxc.hlsl b/test/tint/vk-gl-cts/graphicsfuzz/stable-colorgrid-modulo-true-conditional-divided-1/1.spvasm.expected.ir.fxc.hlsl
index adbb0c1..d1ee477 100644
--- a/test/tint/vk-gl-cts/graphicsfuzz/stable-colorgrid-modulo-true-conditional-divided-1/1.spvasm.expected.ir.fxc.hlsl
+++ b/test/tint/vk-gl-cts/graphicsfuzz/stable-colorgrid-modulo-true-conditional-divided-1/1.spvasm.expected.ir.fxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:198 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Loop
+..\..\src\tint\lang\core\ir\transform\demote_to_helper.cc:208 internal compiler error: TINT_UNREACHABLE unexpected non-core instruction
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/stable-colorgrid-modulo-true-conditional-divided-1/1.wgsl.expected.ir.dxc.hlsl b/test/tint/vk-gl-cts/graphicsfuzz/stable-colorgrid-modulo-true-conditional-divided-1/1.wgsl.expected.ir.dxc.hlsl
index adbb0c1..d1ee477 100644
--- a/test/tint/vk-gl-cts/graphicsfuzz/stable-colorgrid-modulo-true-conditional-divided-1/1.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/vk-gl-cts/graphicsfuzz/stable-colorgrid-modulo-true-conditional-divided-1/1.wgsl.expected.ir.dxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:198 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Loop
+..\..\src\tint\lang\core\ir\transform\demote_to_helper.cc:208 internal compiler error: TINT_UNREACHABLE unexpected non-core instruction
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/stable-colorgrid-modulo-true-conditional-divided-1/1.wgsl.expected.ir.fxc.hlsl b/test/tint/vk-gl-cts/graphicsfuzz/stable-colorgrid-modulo-true-conditional-divided-1/1.wgsl.expected.ir.fxc.hlsl
index adbb0c1..d1ee477 100644
--- a/test/tint/vk-gl-cts/graphicsfuzz/stable-colorgrid-modulo-true-conditional-divided-1/1.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/vk-gl-cts/graphicsfuzz/stable-colorgrid-modulo-true-conditional-divided-1/1.wgsl.expected.ir.fxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:198 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Loop
+..\..\src\tint\lang\core\ir\transform\demote_to_helper.cc:208 internal compiler error: TINT_UNREACHABLE unexpected non-core instruction
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/stable-colorgrid-modulo-true-conditional-simple-loop/1.spvasm.expected.ir.dxc.hlsl b/test/tint/vk-gl-cts/graphicsfuzz/stable-colorgrid-modulo-true-conditional-simple-loop/1.spvasm.expected.ir.dxc.hlsl
deleted file mode 100644
index adbb0c1..0000000
--- a/test/tint/vk-gl-cts/graphicsfuzz/stable-colorgrid-modulo-true-conditional-simple-loop/1.spvasm.expected.ir.dxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:198 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Loop
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/stable-colorgrid-modulo-true-conditional-simple-loop/1.spvasm.expected.ir.fxc.hlsl b/test/tint/vk-gl-cts/graphicsfuzz/stable-colorgrid-modulo-true-conditional-simple-loop/1.spvasm.expected.ir.fxc.hlsl
deleted file mode 100644
index adbb0c1..0000000
--- a/test/tint/vk-gl-cts/graphicsfuzz/stable-colorgrid-modulo-true-conditional-simple-loop/1.spvasm.expected.ir.fxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:198 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Loop
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/stable-colorgrid-modulo-true-conditional-simple-loop/1.wgsl.expected.ir.dxc.hlsl b/test/tint/vk-gl-cts/graphicsfuzz/stable-colorgrid-modulo-true-conditional-simple-loop/1.wgsl.expected.ir.dxc.hlsl
deleted file mode 100644
index adbb0c1..0000000
--- a/test/tint/vk-gl-cts/graphicsfuzz/stable-colorgrid-modulo-true-conditional-simple-loop/1.wgsl.expected.ir.dxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:198 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Loop
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/stable-colorgrid-modulo-true-conditional-simple-loop/1.wgsl.expected.ir.fxc.hlsl b/test/tint/vk-gl-cts/graphicsfuzz/stable-colorgrid-modulo-true-conditional-simple-loop/1.wgsl.expected.ir.fxc.hlsl
deleted file mode 100644
index adbb0c1..0000000
--- a/test/tint/vk-gl-cts/graphicsfuzz/stable-colorgrid-modulo-true-conditional-simple-loop/1.wgsl.expected.ir.fxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:198 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Loop
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/stable-colorgrid-modulo-vec3-values-from-matrix/1.spvasm.expected.ir.dxc.hlsl b/test/tint/vk-gl-cts/graphicsfuzz/stable-colorgrid-modulo-vec3-values-from-matrix/1.spvasm.expected.ir.dxc.hlsl
deleted file mode 100644
index adbb0c1..0000000
--- a/test/tint/vk-gl-cts/graphicsfuzz/stable-colorgrid-modulo-vec3-values-from-matrix/1.spvasm.expected.ir.dxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:198 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Loop
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/stable-colorgrid-modulo-vec3-values-from-matrix/1.spvasm.expected.ir.fxc.hlsl b/test/tint/vk-gl-cts/graphicsfuzz/stable-colorgrid-modulo-vec3-values-from-matrix/1.spvasm.expected.ir.fxc.hlsl
index adbb0c1..336a5e7 100644
--- a/test/tint/vk-gl-cts/graphicsfuzz/stable-colorgrid-modulo-vec3-values-from-matrix/1.spvasm.expected.ir.fxc.hlsl
+++ b/test/tint/vk-gl-cts/graphicsfuzz/stable-colorgrid-modulo-vec3-values-from-matrix/1.spvasm.expected.ir.fxc.hlsl
@@ -1,9 +1,125 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:198 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Loop
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct main_out {
+  float4 x_GLF_color_1;
+};
+
+struct main_outputs {
+  float4 main_out_x_GLF_color_1 : SV_Target0;
+};
+
+struct main_inputs {
+  float4 gl_FragCoord_param : SV_Position;
+};
+
+
+cbuffer cbuffer_x_13 : register(b0) {
+  uint4 x_13[1];
+};
+static float4 gl_FragCoord = (0.0f).xxxx;
+static float4 x_GLF_color = (0.0f).xxxx;
+int tint_mod_i32(int lhs, int rhs) {
+  int v = ((((rhs == 0) | ((lhs == -2147483648) & (rhs == -1)))) ? (1) : (rhs));
+  return (lhs - ((lhs / v) * v));
+}
+
+float compute_value_f1_f1_(inout float limit, inout float thirty_two) {
+  float result = 0.0f;
+  int i = 0;
+  result = -0.5f;
+  i = 1;
+  {
+    while(true) {
+      if ((i < 800)) {
+      } else {
+        break;
+      }
+      if ((tint_mod_i32(i, 32) == 0)) {
+        result = (result + 0.40000000596046447754f);
+      } else {
+        float x_149 = thirty_two;
+        float v_1 = float(i);
+        float v_2 = round(x_149);
+        float v_3 = float(i);
+        if (((v_1 - (v_2 * floor((v_3 / round(x_149))))) <= 0.00999999977648258209f)) {
+          result = (result + 100.0f);
+        }
+      }
+      float v_4 = float(i);
+      if ((v_4 >= limit)) {
+        float x_163 = result;
+        return x_163;
+      }
+      {
+        i = (i + 1);
+      }
+      continue;
+    }
+  }
+  float x_166 = result;
+  return x_166;
+}
+
+void main_1() {
+  float3 c = (0.0f).xxx;
+  float thirty_two_1 = 0.0f;
+  float param = 0.0f;
+  float param_1 = 0.0f;
+  float param_2 = 0.0f;
+  float param_3 = 0.0f;
+  int i_1 = 0;
+  c = float3(7.0f, 8.0f, 9.0f);
+  thirty_two_1 = round((asfloat(x_13[0u].x) / 8.0f));
+  param = gl_FragCoord.x;
+  param_1 = thirty_two_1;
+  float x_69 = compute_value_f1_f1_(param, param_1);
+  c[0u] = x_69;
+  param_2 = gl_FragCoord.y;
+  param_3 = thirty_two_1;
+  float x_74 = compute_value_f1_f1_(param_2, param_3);
+  c[1u] = x_74;
+  float2 v_5 = float2(c.x, c.y);
+  float4x2 x_87 = float4x2(v_5, float2(c.z, 1.0f), float2(1.0f, 0.0f), float2(1.0f, 0.0f));
+  float v_6 = mul(float3x3(float3(1.0f, 0.0f, 0.0f), float3(0.0f, 1.0f, 0.0f), float3(0.0f, 0.0f, 1.0f)), c)[0u];
+  c[2u] = (v_6 + float3(x_87[0u][0u], x_87[0u][1u], x_87[1u][0u])[1u]);
+  i_1 = 0;
+  {
+    while(true) {
+      if ((i_1 < 3)) {
+      } else {
+        break;
+      }
+      if ((c[i_1] >= 1.0f)) {
+        int x_108 = i_1;
+        c[x_108] = (c[i_1] * c[i_1]);
+        if ((gl_FragCoord.y < 0.0f)) {
+          break;
+        }
+      }
+      {
+        i_1 = (i_1 + 1);
+      }
+      continue;
+    }
+  }
+  float3 x_126 = normalize(abs(c));
+  x_GLF_color = float4(x_126[0u], x_126[1u], x_126[2u], 1.0f);
+}
+
+main_out main_inner(float4 gl_FragCoord_param) {
+  gl_FragCoord = gl_FragCoord_param;
+  main_1();
+  main_out v_7 = {x_GLF_color};
+  return v_7;
+}
+
+main_outputs main(main_inputs inputs) {
+  main_out v_8 = main_inner(float4(inputs.gl_FragCoord_param.xyz, (1.0f / inputs.gl_FragCoord_param[3u])));
+  main_outputs v_9 = {v_8.x_GLF_color_1};
+  return v_9;
+}
+
+FXC validation failure:
+c:\src\dawn\Shader@0x00000233541973D0(21,19-25): warning X3556: integer divides may be much slower, try using uints if possible.
+c:\src\dawn\Shader@0x00000233541973D0(85,5-15): error X3511: forced to unroll loop, but unrolling failed.
+
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/stable-colorgrid-modulo-vec3-values-from-matrix/1.wgsl.expected.ir.dxc.hlsl b/test/tint/vk-gl-cts/graphicsfuzz/stable-colorgrid-modulo-vec3-values-from-matrix/1.wgsl.expected.ir.dxc.hlsl
deleted file mode 100644
index adbb0c1..0000000
--- a/test/tint/vk-gl-cts/graphicsfuzz/stable-colorgrid-modulo-vec3-values-from-matrix/1.wgsl.expected.ir.dxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:198 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Loop
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/stable-colorgrid-modulo-vec3-values-from-matrix/1.wgsl.expected.ir.fxc.hlsl b/test/tint/vk-gl-cts/graphicsfuzz/stable-colorgrid-modulo-vec3-values-from-matrix/1.wgsl.expected.ir.fxc.hlsl
index adbb0c1..7d44e6a 100644
--- a/test/tint/vk-gl-cts/graphicsfuzz/stable-colorgrid-modulo-vec3-values-from-matrix/1.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/vk-gl-cts/graphicsfuzz/stable-colorgrid-modulo-vec3-values-from-matrix/1.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,149 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:198 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Loop
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct main_out {
+  float4 x_GLF_color_1;
+};
+
+struct main_outputs {
+  float4 main_out_x_GLF_color_1 : SV_Target0;
+};
+
+struct main_inputs {
+  float4 gl_FragCoord_param : SV_Position;
+};
+
+
+cbuffer cbuffer_x_13 : register(b0) {
+  uint4 x_13[1];
+};
+static float4 gl_FragCoord = (0.0f).xxxx;
+static float4 x_GLF_color = (0.0f).xxxx;
+int tint_mod_i32(int lhs, int rhs) {
+  int v = ((((rhs == 0) | ((lhs == -2147483648) & (rhs == -1)))) ? (1) : (rhs));
+  return (lhs - ((lhs / v) * v));
+}
+
+float compute_value_f1_f1_(inout float limit, inout float thirty_two) {
+  float result = 0.0f;
+  int i = 0;
+  result = -0.5f;
+  i = 1;
+  {
+    while(true) {
+      int x_136 = i;
+      if ((x_136 < 800)) {
+      } else {
+        break;
+      }
+      int x_139 = i;
+      if ((tint_mod_i32(x_139, 32) == 0)) {
+        float x_145 = result;
+        result = (x_145 + 0.40000000596046447754f);
+      } else {
+        int x_147 = i;
+        float x_149 = thirty_two;
+        float v_1 = float(x_147);
+        float v_2 = round(x_149);
+        float v_3 = float(x_147);
+        if (((v_1 - (v_2 * floor((v_3 / round(x_149))))) <= 0.00999999977648258209f)) {
+          float x_155 = result;
+          result = (x_155 + 100.0f);
+        }
+      }
+      int x_157 = i;
+      float x_159 = limit;
+      if ((float(x_157) >= x_159)) {
+        float x_163 = result;
+        return x_163;
+      }
+      {
+        int x_164 = i;
+        i = (x_164 + 1);
+      }
+      continue;
+    }
+  }
+  float x_166 = result;
+  return x_166;
+}
+
+void main_1() {
+  float3 c = (0.0f).xxx;
+  float thirty_two_1 = 0.0f;
+  float param = 0.0f;
+  float param_1 = 0.0f;
+  float param_2 = 0.0f;
+  float param_3 = 0.0f;
+  int i_1 = 0;
+  c = float3(7.0f, 8.0f, 9.0f);
+  float x_63 = asfloat(x_13[0u].x);
+  thirty_two_1 = round((x_63 / 8.0f));
+  float x_67 = gl_FragCoord.x;
+  param = x_67;
+  float x_68 = thirty_two_1;
+  param_1 = x_68;
+  float x_69 = compute_value_f1_f1_(param, param_1);
+  c[0u] = x_69;
+  float x_72 = gl_FragCoord.y;
+  param_2 = x_72;
+  float x_73 = thirty_two_1;
+  param_3 = x_73;
+  float x_74 = compute_value_f1_f1_(param_2, param_3);
+  c[1u] = x_74;
+  float3 x_76 = c;
+  float3 x_79 = c;
+  float2 v_4 = float2(x_79[0u], x_79[1u]);
+  float4x2 x_87 = float4x2(v_4, float2(x_79[2u], 1.0f), float2(1.0f, 0.0f), float2(1.0f, 0.0f));
+  float v_5 = mul(float3x3(float3(1.0f, 0.0f, 0.0f), float3(0.0f, 1.0f, 0.0f), float3(0.0f, 0.0f, 1.0f)), x_76)[0u];
+  c[2u] = (v_5 + float3(x_87[0u][0u], x_87[0u][1u], x_87[1u][0u])[1u]);
+  i_1 = 0;
+  {
+    while(true) {
+      int x_99 = i_1;
+      if ((x_99 < 3)) {
+      } else {
+        break;
+      }
+      int x_102 = i_1;
+      float x_104 = c[x_102];
+      if ((x_104 >= 1.0f)) {
+        int x_108 = i_1;
+        int x_109 = i_1;
+        float x_111 = c[x_109];
+        int x_112 = i_1;
+        float x_114 = c[x_112];
+        c[x_108] = (x_111 * x_114);
+        float x_118 = gl_FragCoord.y;
+        if ((x_118 < 0.0f)) {
+          break;
+        }
+      }
+      {
+        int x_122 = i_1;
+        i_1 = (x_122 + 1);
+      }
+      continue;
+    }
+  }
+  float3 x_124 = c;
+  float3 x_126 = normalize(abs(x_124));
+  x_GLF_color = float4(x_126[0u], x_126[1u], x_126[2u], 1.0f);
+}
+
+main_out main_inner(float4 gl_FragCoord_param) {
+  gl_FragCoord = gl_FragCoord_param;
+  main_1();
+  main_out v_6 = {x_GLF_color};
+  return v_6;
+}
+
+main_outputs main(main_inputs inputs) {
+  main_out v_7 = main_inner(float4(inputs.gl_FragCoord_param.xyz, (1.0f / inputs.gl_FragCoord_param[3u])));
+  main_outputs v_8 = {v_7.x_GLF_color_1};
+  return v_8;
+}
+
+FXC validation failure:
+c:\src\dawn\Shader@0x0000027E169B08E0(21,19-25): warning X3556: integer divides may be much slower, try using uints if possible.
+c:\src\dawn\Shader@0x0000027E169B08E0(99,5-15): error X3511: forced to unroll loop, but unrolling failed.
+
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/stable-mergesort-clamped-conditional-bit-shift/1.spvasm.expected.ir.dxc.hlsl b/test/tint/vk-gl-cts/graphicsfuzz/stable-mergesort-clamped-conditional-bit-shift/1.spvasm.expected.ir.dxc.hlsl
index 6b047b4..d1ee477 100644
--- a/test/tint/vk-gl-cts/graphicsfuzz/stable-mergesort-clamped-conditional-bit-shift/1.spvasm.expected.ir.dxc.hlsl
+++ b/test/tint/vk-gl-cts/graphicsfuzz/stable-mergesort-clamped-conditional-bit-shift/1.spvasm.expected.ir.dxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:287 internal compiler error: Switch() matched no cases. Type: tint::core::ir::FunctionParam
+..\..\src\tint\lang\core\ir\transform\demote_to_helper.cc:208 internal compiler error: TINT_UNREACHABLE unexpected non-core instruction
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/stable-mergesort-clamped-conditional-bit-shift/1.spvasm.expected.ir.fxc.hlsl b/test/tint/vk-gl-cts/graphicsfuzz/stable-mergesort-clamped-conditional-bit-shift/1.spvasm.expected.ir.fxc.hlsl
index 6b047b4..d1ee477 100644
--- a/test/tint/vk-gl-cts/graphicsfuzz/stable-mergesort-clamped-conditional-bit-shift/1.spvasm.expected.ir.fxc.hlsl
+++ b/test/tint/vk-gl-cts/graphicsfuzz/stable-mergesort-clamped-conditional-bit-shift/1.spvasm.expected.ir.fxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:287 internal compiler error: Switch() matched no cases. Type: tint::core::ir::FunctionParam
+..\..\src\tint\lang\core\ir\transform\demote_to_helper.cc:208 internal compiler error: TINT_UNREACHABLE unexpected non-core instruction
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/stable-mergesort-clamped-conditional-bit-shift/1.wgsl.expected.ir.dxc.hlsl b/test/tint/vk-gl-cts/graphicsfuzz/stable-mergesort-clamped-conditional-bit-shift/1.wgsl.expected.ir.dxc.hlsl
index 6b047b4..d1ee477 100644
--- a/test/tint/vk-gl-cts/graphicsfuzz/stable-mergesort-clamped-conditional-bit-shift/1.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/vk-gl-cts/graphicsfuzz/stable-mergesort-clamped-conditional-bit-shift/1.wgsl.expected.ir.dxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:287 internal compiler error: Switch() matched no cases. Type: tint::core::ir::FunctionParam
+..\..\src\tint\lang\core\ir\transform\demote_to_helper.cc:208 internal compiler error: TINT_UNREACHABLE unexpected non-core instruction
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/stable-mergesort-clamped-conditional-bit-shift/1.wgsl.expected.ir.fxc.hlsl b/test/tint/vk-gl-cts/graphicsfuzz/stable-mergesort-clamped-conditional-bit-shift/1.wgsl.expected.ir.fxc.hlsl
index 6b047b4..d1ee477 100644
--- a/test/tint/vk-gl-cts/graphicsfuzz/stable-mergesort-clamped-conditional-bit-shift/1.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/vk-gl-cts/graphicsfuzz/stable-mergesort-clamped-conditional-bit-shift/1.wgsl.expected.ir.fxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:287 internal compiler error: Switch() matched no cases. Type: tint::core::ir::FunctionParam
+..\..\src\tint\lang\core\ir\transform\demote_to_helper.cc:208 internal compiler error: TINT_UNREACHABLE unexpected non-core instruction
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/stable-mergesort-for-always-false-if-discard/1.spvasm.expected.ir.dxc.hlsl b/test/tint/vk-gl-cts/graphicsfuzz/stable-mergesort-for-always-false-if-discard/1.spvasm.expected.ir.dxc.hlsl
index 4a2c666..d1ee477 100644
--- a/test/tint/vk-gl-cts/graphicsfuzz/stable-mergesort-for-always-false-if-discard/1.spvasm.expected.ir.dxc.hlsl
+++ b/test/tint/vk-gl-cts/graphicsfuzz/stable-mergesort-for-always-false-if-discard/1.spvasm.expected.ir.dxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::LoadVectorElement
+..\..\src\tint\lang\core\ir\transform\demote_to_helper.cc:208 internal compiler error: TINT_UNREACHABLE unexpected non-core instruction
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/stable-mergesort-for-always-false-if-discard/1.spvasm.expected.ir.fxc.hlsl b/test/tint/vk-gl-cts/graphicsfuzz/stable-mergesort-for-always-false-if-discard/1.spvasm.expected.ir.fxc.hlsl
index 4a2c666..d1ee477 100644
--- a/test/tint/vk-gl-cts/graphicsfuzz/stable-mergesort-for-always-false-if-discard/1.spvasm.expected.ir.fxc.hlsl
+++ b/test/tint/vk-gl-cts/graphicsfuzz/stable-mergesort-for-always-false-if-discard/1.spvasm.expected.ir.fxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::LoadVectorElement
+..\..\src\tint\lang\core\ir\transform\demote_to_helper.cc:208 internal compiler error: TINT_UNREACHABLE unexpected non-core instruction
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/stable-mergesort-for-always-false-if-discard/1.wgsl.expected.ir.dxc.hlsl b/test/tint/vk-gl-cts/graphicsfuzz/stable-mergesort-for-always-false-if-discard/1.wgsl.expected.ir.dxc.hlsl
index 4a2c666..d1ee477 100644
--- a/test/tint/vk-gl-cts/graphicsfuzz/stable-mergesort-for-always-false-if-discard/1.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/vk-gl-cts/graphicsfuzz/stable-mergesort-for-always-false-if-discard/1.wgsl.expected.ir.dxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::LoadVectorElement
+..\..\src\tint\lang\core\ir\transform\demote_to_helper.cc:208 internal compiler error: TINT_UNREACHABLE unexpected non-core instruction
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/stable-mergesort-for-always-false-if-discard/1.wgsl.expected.ir.fxc.hlsl b/test/tint/vk-gl-cts/graphicsfuzz/stable-mergesort-for-always-false-if-discard/1.wgsl.expected.ir.fxc.hlsl
index 4a2c666..d1ee477 100644
--- a/test/tint/vk-gl-cts/graphicsfuzz/stable-mergesort-for-always-false-if-discard/1.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/vk-gl-cts/graphicsfuzz/stable-mergesort-for-always-false-if-discard/1.wgsl.expected.ir.fxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::LoadVectorElement
+..\..\src\tint\lang\core\ir\transform\demote_to_helper.cc:208 internal compiler error: TINT_UNREACHABLE unexpected non-core instruction
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/stable-mergesort-reversed-for-loop/1.spvasm.expected.ir.dxc.hlsl b/test/tint/vk-gl-cts/graphicsfuzz/stable-mergesort-reversed-for-loop/1.spvasm.expected.ir.dxc.hlsl
index 6b047b4..d1ee477 100644
--- a/test/tint/vk-gl-cts/graphicsfuzz/stable-mergesort-reversed-for-loop/1.spvasm.expected.ir.dxc.hlsl
+++ b/test/tint/vk-gl-cts/graphicsfuzz/stable-mergesort-reversed-for-loop/1.spvasm.expected.ir.dxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:287 internal compiler error: Switch() matched no cases. Type: tint::core::ir::FunctionParam
+..\..\src\tint\lang\core\ir\transform\demote_to_helper.cc:208 internal compiler error: TINT_UNREACHABLE unexpected non-core instruction
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/stable-mergesort-reversed-for-loop/1.spvasm.expected.ir.fxc.hlsl b/test/tint/vk-gl-cts/graphicsfuzz/stable-mergesort-reversed-for-loop/1.spvasm.expected.ir.fxc.hlsl
index 6b047b4..d1ee477 100644
--- a/test/tint/vk-gl-cts/graphicsfuzz/stable-mergesort-reversed-for-loop/1.spvasm.expected.ir.fxc.hlsl
+++ b/test/tint/vk-gl-cts/graphicsfuzz/stable-mergesort-reversed-for-loop/1.spvasm.expected.ir.fxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:287 internal compiler error: Switch() matched no cases. Type: tint::core::ir::FunctionParam
+..\..\src\tint\lang\core\ir\transform\demote_to_helper.cc:208 internal compiler error: TINT_UNREACHABLE unexpected non-core instruction
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/stable-mergesort-reversed-for-loop/1.wgsl.expected.ir.dxc.hlsl b/test/tint/vk-gl-cts/graphicsfuzz/stable-mergesort-reversed-for-loop/1.wgsl.expected.ir.dxc.hlsl
index 6b047b4..d1ee477 100644
--- a/test/tint/vk-gl-cts/graphicsfuzz/stable-mergesort-reversed-for-loop/1.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/vk-gl-cts/graphicsfuzz/stable-mergesort-reversed-for-loop/1.wgsl.expected.ir.dxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:287 internal compiler error: Switch() matched no cases. Type: tint::core::ir::FunctionParam
+..\..\src\tint\lang\core\ir\transform\demote_to_helper.cc:208 internal compiler error: TINT_UNREACHABLE unexpected non-core instruction
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/stable-mergesort-reversed-for-loop/1.wgsl.expected.ir.fxc.hlsl b/test/tint/vk-gl-cts/graphicsfuzz/stable-mergesort-reversed-for-loop/1.wgsl.expected.ir.fxc.hlsl
index 6b047b4..d1ee477 100644
--- a/test/tint/vk-gl-cts/graphicsfuzz/stable-mergesort-reversed-for-loop/1.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/vk-gl-cts/graphicsfuzz/stable-mergesort-reversed-for-loop/1.wgsl.expected.ir.fxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:287 internal compiler error: Switch() matched no cases. Type: tint::core::ir::FunctionParam
+..\..\src\tint\lang\core\ir\transform\demote_to_helper.cc:208 internal compiler error: TINT_UNREACHABLE unexpected non-core instruction
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/stable-quicksort-conditional-bitwise-or-clamp/1.spvasm.expected.ir.dxc.hlsl b/test/tint/vk-gl-cts/graphicsfuzz/stable-quicksort-conditional-bitwise-or-clamp/1.spvasm.expected.ir.dxc.hlsl
deleted file mode 100644
index 3f437dc..0000000
--- a/test/tint/vk-gl-cts/graphicsfuzz/stable-quicksort-conditional-bitwise-or-clamp/1.spvasm.expected.ir.dxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Access
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/stable-quicksort-conditional-bitwise-or-clamp/1.spvasm.expected.ir.fxc.hlsl b/test/tint/vk-gl-cts/graphicsfuzz/stable-quicksort-conditional-bitwise-or-clamp/1.spvasm.expected.ir.fxc.hlsl
index 3f437dc..c46eab1 100644
--- a/test/tint/vk-gl-cts/graphicsfuzz/stable-quicksort-conditional-bitwise-or-clamp/1.spvasm.expected.ir.fxc.hlsl
+++ b/test/tint/vk-gl-cts/graphicsfuzz/stable-quicksort-conditional-bitwise-or-clamp/1.spvasm.expected.ir.fxc.hlsl
@@ -1,9 +1,231 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Access
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct QuicksortObject {
+  int numbers[10];
+};
+
+struct main_out {
+  float4 x_GLF_color_1;
+};
+
+struct main_outputs {
+  float4 main_out_x_GLF_color_1 : SV_Target0;
+};
+
+struct main_inputs {
+  float4 gl_FragCoord_param : SV_Position;
+};
+
+
+static QuicksortObject obj = (QuicksortObject)0;
+static float4 gl_FragCoord = (0.0f).xxxx;
+cbuffer cbuffer_x_34 : register(b0) {
+  uint4 x_34[1];
+};
+static float4 x_GLF_color = (0.0f).xxxx;
+void swap_i1_i1_(inout int i, inout int j) {
+  int temp = 0;
+  temp = obj.numbers[i];
+  int x_233 = i;
+  obj.numbers[x_233] = obj.numbers[j];
+  int x_238 = j;
+  obj.numbers[x_238] = temp;
+}
+
+int performPartition_i1_i1_(inout int l, inout int h) {
+  int pivot = 0;
+  int i_1 = 0;
+  int j_1 = 0;
+  int param = 0;
+  int param_1 = 0;
+  int param_2 = 0;
+  int param_3 = 0;
+  pivot = obj.numbers[h];
+  i_1 = (l - 1);
+  j_1 = l;
+  {
+    while(true) {
+      if ((j_1 <= (h - 1))) {
+      } else {
+        break;
+      }
+      if ((obj.numbers[j_1] <= pivot)) {
+        i_1 = (i_1 + 1);
+        param = i_1;
+        param_1 = j_1;
+        swap_i1_i1_(param, param_1);
+      }
+      {
+        j_1 = (j_1 + 1);
+      }
+      continue;
+    }
+  }
+  i_1 = (i_1 + 1);
+  param_2 = i_1;
+  param_3 = h;
+  swap_i1_i1_(param_2, param_3);
+  int x_276 = i_1;
+  return x_276;
+}
+
+int tint_div_i32(int lhs, int rhs) {
+  return (lhs / ((((rhs == 0) | ((lhs == -2147483648) & (rhs == -1)))) ? (1) : (rhs)));
+}
+
+void quicksort_() {
+  int l_1 = 0;
+  int h_1 = 0;
+  int top = 0;
+  int stack[10] = (int[10])0;
+  int int_a = 0;
+  int x_278 = 0;
+  int x_279 = 0;
+  int clamp_a = 0;
+  int p = 0;
+  int param_4 = 0;
+  int param_5 = 0;
+  l_1 = 0;
+  h_1 = 9;
+  top = -1;
+  int x_281 = (top + 1);
+  top = x_281;
+  stack[x_281] = l_1;
+  if ((gl_FragCoord.y >= 0.0f)) {
+    int x_290 = h_1;
+    if (false) {
+      x_279 = 1;
+    } else {
+      x_279 = (h_1 << (0u & 31u));
+    }
+    x_278 = (x_290 | x_279);
+  } else {
+    x_278 = 1;
+  }
+  int_a = x_278;
+  int v = int_a;
+  clamp_a = min(max(h_1, h_1), v);
+  int x_304 = (top + 1);
+  top = x_304;
+  stack[x_304] = tint_div_i32(clamp_a, 1);
+  {
+    while(true) {
+      if ((top >= 0)) {
+      } else {
+        break;
+      }
+      int x_315 = top;
+      top = (top - 1);
+      h_1 = stack[x_315];
+      int x_319 = top;
+      top = (top - 1);
+      l_1 = stack[x_319];
+      param_4 = l_1;
+      param_5 = h_1;
+      int x_325 = performPartition_i1_i1_(param_4, param_5);
+      p = x_325;
+      if (((p - 1) > l_1)) {
+        int x_333 = (top + 1);
+        top = x_333;
+        stack[x_333] = l_1;
+        int x_337 = (top + 1);
+        top = x_337;
+        stack[x_337] = (p - 1);
+      }
+      if (((p + 1) < h_1)) {
+        int x_348 = (top + 1);
+        top = x_348;
+        stack[x_348] = (p + 1);
+        int x_353 = (top + 1);
+        top = x_353;
+        stack[x_353] = h_1;
+      }
+      {
+      }
+      continue;
+    }
+  }
+}
+
+void main_1() {
+  int i_2 = 0;
+  float2 uv = (0.0f).xx;
+  float3 color = (0.0f).xxx;
+  i_2 = 0;
+  {
+    while(true) {
+      if ((i_2 < 10)) {
+      } else {
+        break;
+      }
+      int x_93 = i_2;
+      obj.numbers[x_93] = (10 - i_2);
+      int x_97 = i_2;
+      obj.numbers[x_97] = (obj.numbers[i_2] * obj.numbers[i_2]);
+      {
+        i_2 = (i_2 + 1);
+      }
+      continue;
+    }
+  }
+  quicksort_();
+  float2 v_1 = gl_FragCoord.xy;
+  uv = (v_1 / asfloat(x_34[0u].xy));
+  color = float3(1.0f, 2.0f, 3.0f);
+  float v_2 = color.x;
+  color[0u] = (v_2 + float(obj.numbers[0]));
+  if ((uv.x > 0.25f)) {
+    float v_3 = color.x;
+    color[0u] = (v_3 + float(obj.numbers[1]));
+  }
+  if ((uv.x > 0.5f)) {
+    float v_4 = color.y;
+    color[1u] = (v_4 + float(obj.numbers[2]));
+  }
+  if ((uv.x > 0.75f)) {
+    float v_5 = color.z;
+    color[2u] = (v_5 + float(obj.numbers[3]));
+  }
+  float v_6 = color.y;
+  color[1u] = (v_6 + float(obj.numbers[4]));
+  if ((uv.y > 0.25f)) {
+    float v_7 = color.x;
+    color[0u] = (v_7 + float(obj.numbers[5]));
+  }
+  if ((uv.y > 0.5f)) {
+    float v_8 = color.y;
+    color[1u] = (v_8 + float(obj.numbers[6]));
+  }
+  if ((uv.y > 0.75f)) {
+    float v_9 = color.z;
+    color[2u] = (v_9 + float(obj.numbers[7]));
+  }
+  float v_10 = color.z;
+  color[2u] = (v_10 + float(obj.numbers[8]));
+  if ((abs((uv.x - uv.y)) < 0.25f)) {
+    float v_11 = color.x;
+    color[0u] = (v_11 + float(obj.numbers[9]));
+  }
+  float3 x_224 = normalize(color);
+  x_GLF_color = float4(x_224[0u], x_224[1u], x_224[2u], 1.0f);
+}
+
+main_out main_inner(float4 gl_FragCoord_param) {
+  gl_FragCoord = gl_FragCoord_param;
+  main_1();
+  main_out v_12 = {x_GLF_color};
+  return v_12;
+}
+
+main_outputs main(main_inputs inputs) {
+  main_out v_13 = main_inner(float4(inputs.gl_FragCoord_param.xyz, (1.0f / inputs.gl_FragCoord_param[3u])));
+  main_outputs v_14 = {v_13.x_GLF_color_1};
+  return v_14;
+}
+
+FXC validation failure:
+c:\src\dawn\Shader@0x000001E7744422A0(71,11-85): warning X3556: integer divides may be much slower, try using uints if possible.
+c:\src\dawn\Shader@0x000001E7744422A0(28,3-20): error X3500: array reference cannot be used as an l-value; not natively addressable
+c:\src\dawn\Shader@0x000001E7744422A0(45,5-15): error X3511: forced to unroll loop, but unrolling failed.
+c:\src\dawn\Shader@0x000001E7744422A0(110,5-15): error X3511: forced to unroll loop, but unrolling failed.
+
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/stable-quicksort-conditional-bitwise-or-clamp/1.wgsl.expected.ir.dxc.hlsl b/test/tint/vk-gl-cts/graphicsfuzz/stable-quicksort-conditional-bitwise-or-clamp/1.wgsl.expected.ir.dxc.hlsl
deleted file mode 100644
index 6b047b4..0000000
--- a/test/tint/vk-gl-cts/graphicsfuzz/stable-quicksort-conditional-bitwise-or-clamp/1.wgsl.expected.ir.dxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:287 internal compiler error: Switch() matched no cases. Type: tint::core::ir::FunctionParam
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/stable-quicksort-conditional-bitwise-or-clamp/1.wgsl.expected.ir.fxc.hlsl b/test/tint/vk-gl-cts/graphicsfuzz/stable-quicksort-conditional-bitwise-or-clamp/1.wgsl.expected.ir.fxc.hlsl
index 6b047b4..7df2d3e 100644
--- a/test/tint/vk-gl-cts/graphicsfuzz/stable-quicksort-conditional-bitwise-or-clamp/1.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/vk-gl-cts/graphicsfuzz/stable-quicksort-conditional-bitwise-or-clamp/1.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,306 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:287 internal compiler error: Switch() matched no cases. Type: tint::core::ir::FunctionParam
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct QuicksortObject {
+  int numbers[10];
+};
+
+struct main_out {
+  float4 x_GLF_color_1;
+};
+
+struct main_outputs {
+  float4 main_out_x_GLF_color_1 : SV_Target0;
+};
+
+struct main_inputs {
+  float4 gl_FragCoord_param : SV_Position;
+};
+
+
+static QuicksortObject obj = (QuicksortObject)0;
+static float4 gl_FragCoord = (0.0f).xxxx;
+cbuffer cbuffer_x_34 : register(b0) {
+  uint4 x_34[1];
+};
+static float4 x_GLF_color = (0.0f).xxxx;
+void swap_i1_i1_(inout int i, inout int j) {
+  int temp = 0;
+  int x_230 = i;
+  int x_232 = obj.numbers[x_230];
+  temp = x_232;
+  int x_233 = i;
+  int x_234 = j;
+  int x_236 = obj.numbers[x_234];
+  obj.numbers[x_233] = x_236;
+  int x_238 = j;
+  int x_239 = temp;
+  obj.numbers[x_238] = x_239;
+}
+
+int performPartition_i1_i1_(inout int l, inout int h) {
+  int pivot = 0;
+  int i_1 = 0;
+  int j_1 = 0;
+  int param = 0;
+  int param_1 = 0;
+  int param_2 = 0;
+  int param_3 = 0;
+  int x_242 = h;
+  int x_244 = obj.numbers[x_242];
+  pivot = x_244;
+  int x_245 = l;
+  i_1 = (x_245 - 1);
+  int x_247 = l;
+  j_1 = x_247;
+  {
+    while(true) {
+      int x_252 = j_1;
+      int x_253 = h;
+      if ((x_252 <= (x_253 - 1))) {
+      } else {
+        break;
+      }
+      int x_257 = j_1;
+      int x_259 = obj.numbers[x_257];
+      int x_260 = pivot;
+      if ((x_259 <= x_260)) {
+        int x_264 = i_1;
+        i_1 = (x_264 + 1);
+        int x_266 = i_1;
+        param = x_266;
+        int x_267 = j_1;
+        param_1 = x_267;
+        swap_i1_i1_(param, param_1);
+      }
+      {
+        int x_269 = j_1;
+        j_1 = (x_269 + 1);
+      }
+      continue;
+    }
+  }
+  int x_271 = i_1;
+  i_1 = (x_271 + 1);
+  int x_273 = i_1;
+  param_2 = x_273;
+  int x_274 = h;
+  param_3 = x_274;
+  swap_i1_i1_(param_2, param_3);
+  int x_276 = i_1;
+  return x_276;
+}
+
+int tint_div_i32(int lhs, int rhs) {
+  return (lhs / ((((rhs == 0) | ((lhs == -2147483648) & (rhs == -1)))) ? (1) : (rhs)));
+}
+
+void quicksort_() {
+  int l_1 = 0;
+  int h_1 = 0;
+  int top = 0;
+  int stack[10] = (int[10])0;
+  int int_a = 0;
+  int x_278 = 0;
+  int x_279 = 0;
+  int clamp_a = 0;
+  int p = 0;
+  int param_4 = 0;
+  int param_5 = 0;
+  l_1 = 0;
+  h_1 = 9;
+  top = -1;
+  int x_280 = top;
+  int x_281 = (x_280 + 1);
+  top = x_281;
+  int x_282 = l_1;
+  stack[x_281] = x_282;
+  float x_285 = gl_FragCoord.y;
+  if ((x_285 >= 0.0f)) {
+    int x_290 = h_1;
+    if (false) {
+      x_279 = 1;
+    } else {
+      int x_294 = h_1;
+      x_279 = (x_294 << (0u & 31u));
+    }
+    int x_296 = x_279;
+    x_278 = (x_290 | x_296);
+  } else {
+    x_278 = 1;
+  }
+  int x_298 = x_278;
+  int_a = x_298;
+  int x_299 = h_1;
+  int x_300 = h_1;
+  int x_301 = int_a;
+  clamp_a = min(max(x_299, x_300), x_301);
+  int x_303 = top;
+  int x_304 = (x_303 + 1);
+  top = x_304;
+  int x_305 = clamp_a;
+  stack[x_304] = tint_div_i32(x_305, 1);
+  {
+    while(true) {
+      int x_312 = top;
+      if ((x_312 >= 0)) {
+      } else {
+        break;
+      }
+      int x_315 = top;
+      top = (x_315 - 1);
+      int x_318 = stack[x_315];
+      h_1 = x_318;
+      int x_319 = top;
+      top = (x_319 - 1);
+      int x_322 = stack[x_319];
+      l_1 = x_322;
+      int x_323 = l_1;
+      param_4 = x_323;
+      int x_324 = h_1;
+      param_5 = x_324;
+      int x_325 = performPartition_i1_i1_(param_4, param_5);
+      p = x_325;
+      int x_326 = p;
+      int x_328 = l_1;
+      if (((x_326 - 1) > x_328)) {
+        int x_332 = top;
+        int x_333 = (x_332 + 1);
+        top = x_333;
+        int x_334 = l_1;
+        stack[x_333] = x_334;
+        int x_336 = top;
+        int x_337 = (x_336 + 1);
+        top = x_337;
+        int x_338 = p;
+        stack[x_337] = (x_338 - 1);
+      }
+      int x_341 = p;
+      int x_343 = h_1;
+      if (((x_341 + 1) < x_343)) {
+        int x_347 = top;
+        int x_348 = (x_347 + 1);
+        top = x_348;
+        int x_349 = p;
+        stack[x_348] = (x_349 + 1);
+        int x_352 = top;
+        int x_353 = (x_352 + 1);
+        top = x_353;
+        int x_354 = h_1;
+        stack[x_353] = x_354;
+      }
+      {
+      }
+      continue;
+    }
+  }
+}
+
+void main_1() {
+  int i_2 = 0;
+  float2 uv = (0.0f).xx;
+  float3 color = (0.0f).xxx;
+  i_2 = 0;
+  {
+    while(true) {
+      int x_90 = i_2;
+      if ((x_90 < 10)) {
+      } else {
+        break;
+      }
+      int x_93 = i_2;
+      int x_94 = i_2;
+      obj.numbers[x_93] = (10 - x_94);
+      int x_97 = i_2;
+      int x_98 = i_2;
+      int x_100 = obj.numbers[x_98];
+      int x_101 = i_2;
+      int x_103 = obj.numbers[x_101];
+      obj.numbers[x_97] = (x_100 * x_103);
+      {
+        int x_106 = i_2;
+        i_2 = (x_106 + 1);
+      }
+      continue;
+    }
+  }
+  quicksort_();
+  float4 x_109 = gl_FragCoord;
+  float2 x_112 = asfloat(x_34[0u].xy);
+  uv = (float2(x_109[0u], x_109[1u]) / x_112);
+  color = float3(1.0f, 2.0f, 3.0f);
+  int x_115 = obj.numbers[0];
+  float x_118 = color.x;
+  color[0u] = (x_118 + float(x_115));
+  float x_122 = uv.x;
+  if ((x_122 > 0.25f)) {
+    int x_127 = obj.numbers[1];
+    float x_130 = color.x;
+    color[0u] = (x_130 + float(x_127));
+  }
+  float x_134 = uv.x;
+  if ((x_134 > 0.5f)) {
+    int x_139 = obj.numbers[2];
+    float x_142 = color.y;
+    color[1u] = (x_142 + float(x_139));
+  }
+  float x_146 = uv.x;
+  if ((x_146 > 0.75f)) {
+    int x_151 = obj.numbers[3];
+    float x_154 = color.z;
+    color[2u] = (x_154 + float(x_151));
+  }
+  int x_158 = obj.numbers[4];
+  float x_161 = color.y;
+  color[1u] = (x_161 + float(x_158));
+  float x_165 = uv.y;
+  if ((x_165 > 0.25f)) {
+    int x_170 = obj.numbers[5];
+    float x_173 = color.x;
+    color[0u] = (x_173 + float(x_170));
+  }
+  float x_177 = uv.y;
+  if ((x_177 > 0.5f)) {
+    int x_182 = obj.numbers[6];
+    float x_185 = color.y;
+    color[1u] = (x_185 + float(x_182));
+  }
+  float x_189 = uv.y;
+  if ((x_189 > 0.75f)) {
+    int x_194 = obj.numbers[7];
+    float x_197 = color.z;
+    color[2u] = (x_197 + float(x_194));
+  }
+  int x_201 = obj.numbers[8];
+  float x_204 = color.z;
+  color[2u] = (x_204 + float(x_201));
+  float x_208 = uv.x;
+  float x_210 = uv.y;
+  if ((abs((x_208 - x_210)) < 0.25f)) {
+    int x_217 = obj.numbers[9];
+    float x_220 = color.x;
+    color[0u] = (x_220 + float(x_217));
+  }
+  float3 x_223 = color;
+  float3 x_224 = normalize(x_223);
+  x_GLF_color = float4(x_224[0u], x_224[1u], x_224[2u], 1.0f);
+}
+
+main_out main_inner(float4 gl_FragCoord_param) {
+  gl_FragCoord = gl_FragCoord_param;
+  main_1();
+  main_out v = {x_GLF_color};
+  return v;
+}
+
+main_outputs main(main_inputs inputs) {
+  main_out v_1 = main_inner(float4(inputs.gl_FragCoord_param.xyz, (1.0f / inputs.gl_FragCoord_param[3u])));
+  main_outputs v_2 = {v_1.x_GLF_color_1};
+  return v_2;
+}
+
+FXC validation failure:
+c:\src\dawn\Shader@0x0000022210987F70(92,11-85): warning X3556: integer divides may be much slower, try using uints if possible.
+c:\src\dawn\Shader@0x0000022210987F70(32,3-20): error X3500: array reference cannot be used as an l-value; not natively addressable
+c:\src\dawn\Shader@0x0000022210987F70(54,5-15): error X3511: forced to unroll loop, but unrolling failed.
+c:\src\dawn\Shader@0x0000022210987F70(141,5-15): error X3511: forced to unroll loop, but unrolling failed.
+
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/stable-quicksort-for-loop-with-injection/0-opt.spvasm.expected.ir.dxc.hlsl b/test/tint/vk-gl-cts/graphicsfuzz/stable-quicksort-for-loop-with-injection/0-opt.spvasm.expected.ir.dxc.hlsl
deleted file mode 100644
index 3f437dc..0000000
--- a/test/tint/vk-gl-cts/graphicsfuzz/stable-quicksort-for-loop-with-injection/0-opt.spvasm.expected.ir.dxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Access
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/stable-quicksort-for-loop-with-injection/0-opt.spvasm.expected.ir.fxc.hlsl b/test/tint/vk-gl-cts/graphicsfuzz/stable-quicksort-for-loop-with-injection/0-opt.spvasm.expected.ir.fxc.hlsl
deleted file mode 100644
index 3f437dc..0000000
--- a/test/tint/vk-gl-cts/graphicsfuzz/stable-quicksort-for-loop-with-injection/0-opt.spvasm.expected.ir.fxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Access
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/stable-quicksort-for-loop-with-injection/0-opt.wgsl.expected.ir.dxc.hlsl b/test/tint/vk-gl-cts/graphicsfuzz/stable-quicksort-for-loop-with-injection/0-opt.wgsl.expected.ir.dxc.hlsl
deleted file mode 100644
index 6b047b4..0000000
--- a/test/tint/vk-gl-cts/graphicsfuzz/stable-quicksort-for-loop-with-injection/0-opt.wgsl.expected.ir.dxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:287 internal compiler error: Switch() matched no cases. Type: tint::core::ir::FunctionParam
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/stable-quicksort-for-loop-with-injection/0-opt.wgsl.expected.ir.fxc.hlsl b/test/tint/vk-gl-cts/graphicsfuzz/stable-quicksort-for-loop-with-injection/0-opt.wgsl.expected.ir.fxc.hlsl
deleted file mode 100644
index 6b047b4..0000000
--- a/test/tint/vk-gl-cts/graphicsfuzz/stable-quicksort-for-loop-with-injection/0-opt.wgsl.expected.ir.fxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:287 internal compiler error: Switch() matched no cases. Type: tint::core::ir::FunctionParam
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/stable-quicksort-for-loop-with-injection/1.spvasm.expected.ir.dxc.hlsl b/test/tint/vk-gl-cts/graphicsfuzz/stable-quicksort-for-loop-with-injection/1.spvasm.expected.ir.dxc.hlsl
deleted file mode 100644
index 6b047b4..0000000
--- a/test/tint/vk-gl-cts/graphicsfuzz/stable-quicksort-for-loop-with-injection/1.spvasm.expected.ir.dxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:287 internal compiler error: Switch() matched no cases. Type: tint::core::ir::FunctionParam
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/stable-quicksort-for-loop-with-injection/1.spvasm.expected.ir.fxc.hlsl b/test/tint/vk-gl-cts/graphicsfuzz/stable-quicksort-for-loop-with-injection/1.spvasm.expected.ir.fxc.hlsl
deleted file mode 100644
index 6b047b4..0000000
--- a/test/tint/vk-gl-cts/graphicsfuzz/stable-quicksort-for-loop-with-injection/1.spvasm.expected.ir.fxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:287 internal compiler error: Switch() matched no cases. Type: tint::core::ir::FunctionParam
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/stable-quicksort-for-loop-with-injection/1.wgsl.expected.ir.dxc.hlsl b/test/tint/vk-gl-cts/graphicsfuzz/stable-quicksort-for-loop-with-injection/1.wgsl.expected.ir.dxc.hlsl
deleted file mode 100644
index 6b047b4..0000000
--- a/test/tint/vk-gl-cts/graphicsfuzz/stable-quicksort-for-loop-with-injection/1.wgsl.expected.ir.dxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:287 internal compiler error: Switch() matched no cases. Type: tint::core::ir::FunctionParam
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/stable-quicksort-for-loop-with-injection/1.wgsl.expected.ir.fxc.hlsl b/test/tint/vk-gl-cts/graphicsfuzz/stable-quicksort-for-loop-with-injection/1.wgsl.expected.ir.fxc.hlsl
deleted file mode 100644
index 6b047b4..0000000
--- a/test/tint/vk-gl-cts/graphicsfuzz/stable-quicksort-for-loop-with-injection/1.wgsl.expected.ir.fxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:287 internal compiler error: Switch() matched no cases. Type: tint::core::ir::FunctionParam
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/stable-quicksort-for-loop-with-injection/2-opt.spvasm.expected.ir.dxc.hlsl b/test/tint/vk-gl-cts/graphicsfuzz/stable-quicksort-for-loop-with-injection/2-opt.spvasm.expected.ir.dxc.hlsl
deleted file mode 100644
index 3f437dc..0000000
--- a/test/tint/vk-gl-cts/graphicsfuzz/stable-quicksort-for-loop-with-injection/2-opt.spvasm.expected.ir.dxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Access
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/stable-quicksort-for-loop-with-injection/2-opt.spvasm.expected.ir.fxc.hlsl b/test/tint/vk-gl-cts/graphicsfuzz/stable-quicksort-for-loop-with-injection/2-opt.spvasm.expected.ir.fxc.hlsl
index 3f437dc..0b2221f 100644
--- a/test/tint/vk-gl-cts/graphicsfuzz/stable-quicksort-for-loop-with-injection/2-opt.spvasm.expected.ir.fxc.hlsl
+++ b/test/tint/vk-gl-cts/graphicsfuzz/stable-quicksort-for-loop-with-injection/2-opt.spvasm.expected.ir.fxc.hlsl
@@ -1,9 +1,220 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Access
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct QuicksortObject {
+  int numbers[10];
+};
+
+struct main_out {
+  float4 frag_color_1;
+  float4 gl_Position;
+};
+
+struct main_outputs {
+  float4 main_out_frag_color_1 : TEXCOORD0;
+  float4 main_out_gl_Position : SV_Position;
+};
+
+struct main_inputs {
+  float4 x_GLF_pos_param : TEXCOORD0;
+};
+
+
+static QuicksortObject obj = (QuicksortObject)0;
+static float4 x_GLF_FragCoord = (0.0f).xxxx;
+static float4 x_GLF_pos = (0.0f).xxxx;
+cbuffer cbuffer_x_33 : register(b0) {
+  uint4 x_33[1];
+};
+cbuffer cbuffer_x_36 : register(b1) {
+  uint4 x_36[1];
+};
+static float4 frag_color = (0.0f).xxxx;
+static float4 gl_Position = (0.0f).xxxx;
+void swap_i1_i1_(inout int i, inout int j) {
+  int temp = 0;
+  temp = obj.numbers[i];
+  int x_253 = i;
+  obj.numbers[x_253] = obj.numbers[j];
+  int x_258 = j;
+  obj.numbers[x_258] = temp;
+}
+
+int performPartition_i1_i1_(inout int l, inout int h) {
+  int pivot = 0;
+  int i_1 = 0;
+  int j_1 = 0;
+  int param = 0;
+  int param_1 = 0;
+  int param_2 = 0;
+  int param_3 = 0;
+  pivot = obj.numbers[h];
+  i_1 = (l - 1);
+  j_1 = l;
+  {
+    while(true) {
+      if ((j_1 <= (h - 1))) {
+      } else {
+        break;
+      }
+      if ((obj.numbers[j_1] <= pivot)) {
+        i_1 = (i_1 + 1);
+        param = i_1;
+        param_1 = j_1;
+        swap_i1_i1_(param, param_1);
+      }
+      {
+        j_1 = (j_1 + 1);
+      }
+      continue;
+    }
+  }
+  param_2 = (i_1 + 1);
+  param_3 = h;
+  swap_i1_i1_(param_2, param_3);
+  int x_295 = i_1;
+  return (x_295 + 1);
+}
+
+void quicksort_() {
+  int l_1 = 0;
+  int h_1 = 0;
+  int top = 0;
+  int stack[10] = (int[10])0;
+  int p = 0;
+  int param_4 = 0;
+  int param_5 = 0;
+  l_1 = 0;
+  h_1 = 9;
+  top = -1;
+  int x_299 = (top + 1);
+  top = x_299;
+  stack[x_299] = l_1;
+  int x_303 = (top + 1);
+  top = x_303;
+  stack[x_303] = h_1;
+  {
+    while(true) {
+      if ((top >= 0)) {
+      } else {
+        break;
+      }
+      int x_313 = top;
+      top = (top - 1);
+      h_1 = stack[x_313];
+      int x_317 = top;
+      top = (top - 1);
+      l_1 = stack[x_317];
+      param_4 = l_1;
+      param_5 = h_1;
+      int x_323 = performPartition_i1_i1_(param_4, param_5);
+      p = x_323;
+      if (((p - 1) > l_1)) {
+        int x_331 = (top + 1);
+        top = x_331;
+        stack[x_331] = l_1;
+        int x_335 = (top + 1);
+        top = x_335;
+        stack[x_335] = (p - 1);
+      }
+      if (((p + 1) < h_1)) {
+        int x_346 = (top + 1);
+        top = x_346;
+        stack[x_346] = (p + 1);
+        int x_351 = (top + 1);
+        top = x_351;
+        stack[x_351] = h_1;
+      }
+      {
+      }
+      continue;
+    }
+  }
+}
+
+void main_1() {
+  int i_2 = 0;
+  float2 uv = (0.0f).xx;
+  float3 color = (0.0f).xxx;
+  x_GLF_FragCoord = ((x_GLF_pos + float4(1.0f, 1.0f, 0.0f, 0.0f)) * float4(128.0f, 128.0f, 1.0f, 1.0f));
+  i_2 = 0;
+  {
+    while(true) {
+      if ((i_2 < 10)) {
+      } else {
+        break;
+      }
+      int x_104 = i_2;
+      obj.numbers[x_104] = (10 - i_2);
+      float v = asfloat(x_33[0u].x);
+      if ((v > asfloat(x_33[0u].y))) {
+        break;
+      }
+      int x_115 = i_2;
+      obj.numbers[x_115] = (obj.numbers[i_2] * obj.numbers[i_2]);
+      {
+        i_2 = (i_2 + 1);
+      }
+      continue;
+    }
+  }
+  quicksort_();
+  float2 v_1 = x_GLF_FragCoord.xy;
+  uv = (v_1 / asfloat(x_36[0u].xy));
+  color = float3(1.0f, 2.0f, 3.0f);
+  float v_2 = color.x;
+  color[0u] = (v_2 + float(obj.numbers[0]));
+  if ((uv.x > 0.25f)) {
+    float v_3 = color.x;
+    color[0u] = (v_3 + float(obj.numbers[1]));
+  }
+  if ((uv.x > 0.5f)) {
+    float v_4 = color.y;
+    color[1u] = (v_4 + float(obj.numbers[2]));
+  }
+  if ((uv.x > 0.75f)) {
+    float v_5 = color.z;
+    color[2u] = (v_5 + float(obj.numbers[3]));
+  }
+  float v_6 = color.y;
+  color[1u] = (v_6 + float(obj.numbers[4]));
+  if ((uv.y > 0.25f)) {
+    float v_7 = color.x;
+    color[0u] = (v_7 + float(obj.numbers[5]));
+  }
+  if ((uv.y > 0.5f)) {
+    float v_8 = color.y;
+    color[1u] = (v_8 + float(obj.numbers[6]));
+  }
+  if ((uv.y > 0.75f)) {
+    float v_9 = color.z;
+    color[2u] = (v_9 + float(obj.numbers[7]));
+  }
+  float v_10 = color.z;
+  color[2u] = (v_10 + float(obj.numbers[8]));
+  if ((abs((uv.x - uv.y)) < 0.25f)) {
+    float v_11 = color.x;
+    color[0u] = (v_11 + float(obj.numbers[9]));
+  }
+  float3 x_242 = normalize(color);
+  frag_color = float4(x_242[0u], x_242[1u], x_242[2u], 1.0f);
+  gl_Position = x_GLF_pos;
+}
+
+main_out main_inner(float4 x_GLF_pos_param) {
+  x_GLF_pos = x_GLF_pos_param;
+  main_1();
+  main_out v_12 = {frag_color, gl_Position};
+  return v_12;
+}
+
+main_outputs main(main_inputs inputs) {
+  main_out v_13 = main_inner(inputs.x_GLF_pos_param);
+  main_out v_14 = v_13;
+  main_out v_15 = v_13;
+  main_outputs v_16 = {v_14.frag_color_1, v_15.gl_Position};
+  return v_16;
+}
+
+FXC validation failure:
+c:\src\dawn\Shader@0x000002540DDC2750(139,5-15): error X3511: forced to unroll loop, but unrolling failed.
+
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/stable-quicksort-for-loop-with-injection/2-opt.wgsl.expected.ir.dxc.hlsl b/test/tint/vk-gl-cts/graphicsfuzz/stable-quicksort-for-loop-with-injection/2-opt.wgsl.expected.ir.dxc.hlsl
deleted file mode 100644
index 6b047b4..0000000
--- a/test/tint/vk-gl-cts/graphicsfuzz/stable-quicksort-for-loop-with-injection/2-opt.wgsl.expected.ir.dxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:287 internal compiler error: Switch() matched no cases. Type: tint::core::ir::FunctionParam
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/stable-quicksort-for-loop-with-injection/2-opt.wgsl.expected.ir.fxc.hlsl b/test/tint/vk-gl-cts/graphicsfuzz/stable-quicksort-for-loop-with-injection/2-opt.wgsl.expected.ir.fxc.hlsl
index 6b047b4..22dd340 100644
--- a/test/tint/vk-gl-cts/graphicsfuzz/stable-quicksort-for-loop-with-injection/2-opt.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/vk-gl-cts/graphicsfuzz/stable-quicksort-for-loop-with-injection/2-opt.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,291 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:287 internal compiler error: Switch() matched no cases. Type: tint::core::ir::FunctionParam
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct QuicksortObject {
+  int numbers[10];
+};
+
+struct main_out {
+  float4 frag_color_1;
+  float4 gl_Position;
+};
+
+struct main_outputs {
+  float4 main_out_frag_color_1 : TEXCOORD0;
+  float4 main_out_gl_Position : SV_Position;
+};
+
+struct main_inputs {
+  float4 x_GLF_pos_param : TEXCOORD0;
+};
+
+
+static QuicksortObject obj = (QuicksortObject)0;
+static float4 x_GLF_FragCoord = (0.0f).xxxx;
+static float4 x_GLF_pos = (0.0f).xxxx;
+cbuffer cbuffer_x_33 : register(b0) {
+  uint4 x_33[1];
+};
+cbuffer cbuffer_x_36 : register(b1) {
+  uint4 x_36[1];
+};
+static float4 frag_color = (0.0f).xxxx;
+static float4 gl_Position = (0.0f).xxxx;
+void swap_i1_i1_(inout int i, inout int j) {
+  int temp = 0;
+  int x_250 = i;
+  int x_252 = obj.numbers[x_250];
+  temp = x_252;
+  int x_253 = i;
+  int x_254 = j;
+  int x_256 = obj.numbers[x_254];
+  obj.numbers[x_253] = x_256;
+  int x_258 = j;
+  int x_259 = temp;
+  obj.numbers[x_258] = x_259;
+}
+
+int performPartition_i1_i1_(inout int l, inout int h) {
+  int pivot = 0;
+  int i_1 = 0;
+  int j_1 = 0;
+  int param = 0;
+  int param_1 = 0;
+  int param_2 = 0;
+  int param_3 = 0;
+  int x_262 = h;
+  int x_264 = obj.numbers[x_262];
+  pivot = x_264;
+  int x_265 = l;
+  i_1 = (x_265 - 1);
+  int x_267 = l;
+  j_1 = x_267;
+  {
+    while(true) {
+      int x_272 = j_1;
+      int x_273 = h;
+      if ((x_272 <= (x_273 - 1))) {
+      } else {
+        break;
+      }
+      int x_277 = j_1;
+      int x_279 = obj.numbers[x_277];
+      int x_280 = pivot;
+      if ((x_279 <= x_280)) {
+        int x_284 = i_1;
+        i_1 = (x_284 + 1);
+        int x_286 = i_1;
+        param = x_286;
+        int x_287 = j_1;
+        param_1 = x_287;
+        swap_i1_i1_(param, param_1);
+      }
+      {
+        int x_289 = j_1;
+        j_1 = (x_289 + 1);
+      }
+      continue;
+    }
+  }
+  int x_291 = i_1;
+  param_2 = (x_291 + 1);
+  int x_293 = h;
+  param_3 = x_293;
+  swap_i1_i1_(param_2, param_3);
+  int x_295 = i_1;
+  return (x_295 + 1);
+}
+
+void quicksort_() {
+  int l_1 = 0;
+  int h_1 = 0;
+  int top = 0;
+  int stack[10] = (int[10])0;
+  int p = 0;
+  int param_4 = 0;
+  int param_5 = 0;
+  l_1 = 0;
+  h_1 = 9;
+  top = -1;
+  int x_298 = top;
+  int x_299 = (x_298 + 1);
+  top = x_299;
+  int x_300 = l_1;
+  stack[x_299] = x_300;
+  int x_302 = top;
+  int x_303 = (x_302 + 1);
+  top = x_303;
+  int x_304 = h_1;
+  stack[x_303] = x_304;
+  {
+    while(true) {
+      int x_310 = top;
+      if ((x_310 >= 0)) {
+      } else {
+        break;
+      }
+      int x_313 = top;
+      top = (x_313 - 1);
+      int x_316 = stack[x_313];
+      h_1 = x_316;
+      int x_317 = top;
+      top = (x_317 - 1);
+      int x_320 = stack[x_317];
+      l_1 = x_320;
+      int x_321 = l_1;
+      param_4 = x_321;
+      int x_322 = h_1;
+      param_5 = x_322;
+      int x_323 = performPartition_i1_i1_(param_4, param_5);
+      p = x_323;
+      int x_324 = p;
+      int x_326 = l_1;
+      if (((x_324 - 1) > x_326)) {
+        int x_330 = top;
+        int x_331 = (x_330 + 1);
+        top = x_331;
+        int x_332 = l_1;
+        stack[x_331] = x_332;
+        int x_334 = top;
+        int x_335 = (x_334 + 1);
+        top = x_335;
+        int x_336 = p;
+        stack[x_335] = (x_336 - 1);
+      }
+      int x_339 = p;
+      int x_341 = h_1;
+      if (((x_339 + 1) < x_341)) {
+        int x_345 = top;
+        int x_346 = (x_345 + 1);
+        top = x_346;
+        int x_347 = p;
+        stack[x_346] = (x_347 + 1);
+        int x_350 = top;
+        int x_351 = (x_350 + 1);
+        top = x_351;
+        int x_352 = h_1;
+        stack[x_351] = x_352;
+      }
+      {
+      }
+      continue;
+    }
+  }
+}
+
+void main_1() {
+  int i_2 = 0;
+  float2 uv = (0.0f).xx;
+  float3 color = (0.0f).xxx;
+  float4 x_94 = x_GLF_pos;
+  x_GLF_FragCoord = ((x_94 + float4(1.0f, 1.0f, 0.0f, 0.0f)) * float4(128.0f, 128.0f, 1.0f, 1.0f));
+  i_2 = 0;
+  {
+    while(true) {
+      int x_101 = i_2;
+      if ((x_101 < 10)) {
+      } else {
+        break;
+      }
+      int x_104 = i_2;
+      int x_105 = i_2;
+      obj.numbers[x_104] = (10 - x_105);
+      float x_109 = asfloat(x_33[0u].x);
+      float x_111 = asfloat(x_33[0u].y);
+      if ((x_109 > x_111)) {
+        break;
+      }
+      int x_115 = i_2;
+      int x_116 = i_2;
+      int x_118 = obj.numbers[x_116];
+      int x_119 = i_2;
+      int x_121 = obj.numbers[x_119];
+      obj.numbers[x_115] = (x_118 * x_121);
+      {
+        int x_124 = i_2;
+        i_2 = (x_124 + 1);
+      }
+      continue;
+    }
+  }
+  quicksort_();
+  float4 x_127 = x_GLF_FragCoord;
+  float2 x_130 = asfloat(x_36[0u].xy);
+  uv = (float2(x_127[0u], x_127[1u]) / x_130);
+  color = float3(1.0f, 2.0f, 3.0f);
+  int x_133 = obj.numbers[0];
+  float x_136 = color.x;
+  color[0u] = (x_136 + float(x_133));
+  float x_140 = uv.x;
+  if ((x_140 > 0.25f)) {
+    int x_145 = obj.numbers[1];
+    float x_148 = color.x;
+    color[0u] = (x_148 + float(x_145));
+  }
+  float x_152 = uv.x;
+  if ((x_152 > 0.5f)) {
+    int x_157 = obj.numbers[2];
+    float x_160 = color.y;
+    color[1u] = (x_160 + float(x_157));
+  }
+  float x_164 = uv.x;
+  if ((x_164 > 0.75f)) {
+    int x_169 = obj.numbers[3];
+    float x_172 = color.z;
+    color[2u] = (x_172 + float(x_169));
+  }
+  int x_176 = obj.numbers[4];
+  float x_179 = color.y;
+  color[1u] = (x_179 + float(x_176));
+  float x_183 = uv.y;
+  if ((x_183 > 0.25f)) {
+    int x_188 = obj.numbers[5];
+    float x_191 = color.x;
+    color[0u] = (x_191 + float(x_188));
+  }
+  float x_195 = uv.y;
+  if ((x_195 > 0.5f)) {
+    int x_200 = obj.numbers[6];
+    float x_203 = color.y;
+    color[1u] = (x_203 + float(x_200));
+  }
+  float x_207 = uv.y;
+  if ((x_207 > 0.75f)) {
+    int x_212 = obj.numbers[7];
+    float x_215 = color.z;
+    color[2u] = (x_215 + float(x_212));
+  }
+  int x_219 = obj.numbers[8];
+  float x_222 = color.z;
+  color[2u] = (x_222 + float(x_219));
+  float x_226 = uv.x;
+  float x_228 = uv.y;
+  if ((abs((x_226 - x_228)) < 0.25f)) {
+    int x_235 = obj.numbers[9];
+    float x_238 = color.x;
+    color[0u] = (x_238 + float(x_235));
+  }
+  float3 x_241 = color;
+  float3 x_242 = normalize(x_241);
+  frag_color = float4(x_242[0u], x_242[1u], x_242[2u], 1.0f);
+  float4 x_247 = x_GLF_pos;
+  gl_Position = x_247;
+}
+
+main_out main_inner(float4 x_GLF_pos_param) {
+  x_GLF_pos = x_GLF_pos_param;
+  main_1();
+  main_out v = {frag_color, gl_Position};
+  return v;
+}
+
+main_outputs main(main_inputs inputs) {
+  main_out v_1 = main_inner(inputs.x_GLF_pos_param);
+  main_out v_2 = v_1;
+  main_out v_3 = v_1;
+  main_outputs v_4 = {v_2.frag_color_1, v_3.gl_Position};
+  return v_4;
+}
+
+FXC validation failure:
+c:\src\dawn\Shader@0x00000192FB599420(181,5-15): error X3511: forced to unroll loop, but unrolling failed.
+
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/stable-quicksort-if-false-else-return/0.spvasm.expected.ir.dxc.hlsl b/test/tint/vk-gl-cts/graphicsfuzz/stable-quicksort-if-false-else-return/0.spvasm.expected.ir.dxc.hlsl
deleted file mode 100644
index adbb0c1..0000000
--- a/test/tint/vk-gl-cts/graphicsfuzz/stable-quicksort-if-false-else-return/0.spvasm.expected.ir.dxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:198 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Loop
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/stable-quicksort-if-false-else-return/0.spvasm.expected.ir.fxc.hlsl b/test/tint/vk-gl-cts/graphicsfuzz/stable-quicksort-if-false-else-return/0.spvasm.expected.ir.fxc.hlsl
deleted file mode 100644
index adbb0c1..0000000
--- a/test/tint/vk-gl-cts/graphicsfuzz/stable-quicksort-if-false-else-return/0.spvasm.expected.ir.fxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:198 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Loop
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/stable-quicksort-if-false-else-return/0.wgsl.expected.ir.dxc.hlsl b/test/tint/vk-gl-cts/graphicsfuzz/stable-quicksort-if-false-else-return/0.wgsl.expected.ir.dxc.hlsl
deleted file mode 100644
index adbb0c1..0000000
--- a/test/tint/vk-gl-cts/graphicsfuzz/stable-quicksort-if-false-else-return/0.wgsl.expected.ir.dxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:198 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Loop
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/stable-quicksort-if-false-else-return/0.wgsl.expected.ir.fxc.hlsl b/test/tint/vk-gl-cts/graphicsfuzz/stable-quicksort-if-false-else-return/0.wgsl.expected.ir.fxc.hlsl
deleted file mode 100644
index adbb0c1..0000000
--- a/test/tint/vk-gl-cts/graphicsfuzz/stable-quicksort-if-false-else-return/0.wgsl.expected.ir.fxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:198 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Loop
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/stable-quicksort-if-false-else-return/2.spvasm.expected.ir.dxc.hlsl b/test/tint/vk-gl-cts/graphicsfuzz/stable-quicksort-if-false-else-return/2.spvasm.expected.ir.dxc.hlsl
deleted file mode 100644
index 3f437dc..0000000
--- a/test/tint/vk-gl-cts/graphicsfuzz/stable-quicksort-if-false-else-return/2.spvasm.expected.ir.dxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Access
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/stable-quicksort-if-false-else-return/2.spvasm.expected.ir.fxc.hlsl b/test/tint/vk-gl-cts/graphicsfuzz/stable-quicksort-if-false-else-return/2.spvasm.expected.ir.fxc.hlsl
deleted file mode 100644
index 3f437dc..0000000
--- a/test/tint/vk-gl-cts/graphicsfuzz/stable-quicksort-if-false-else-return/2.spvasm.expected.ir.fxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Access
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/stable-quicksort-if-false-else-return/2.wgsl.expected.ir.dxc.hlsl b/test/tint/vk-gl-cts/graphicsfuzz/stable-quicksort-if-false-else-return/2.wgsl.expected.ir.dxc.hlsl
deleted file mode 100644
index 6b047b4..0000000
--- a/test/tint/vk-gl-cts/graphicsfuzz/stable-quicksort-if-false-else-return/2.wgsl.expected.ir.dxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:287 internal compiler error: Switch() matched no cases. Type: tint::core::ir::FunctionParam
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/stable-quicksort-if-false-else-return/2.wgsl.expected.ir.fxc.hlsl b/test/tint/vk-gl-cts/graphicsfuzz/stable-quicksort-if-false-else-return/2.wgsl.expected.ir.fxc.hlsl
deleted file mode 100644
index 6b047b4..0000000
--- a/test/tint/vk-gl-cts/graphicsfuzz/stable-quicksort-if-false-else-return/2.wgsl.expected.ir.fxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:287 internal compiler error: Switch() matched no cases. Type: tint::core::ir::FunctionParam
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/stable-quicksort-max-value-as-index/2-opt.spvasm.expected.ir.dxc.hlsl b/test/tint/vk-gl-cts/graphicsfuzz/stable-quicksort-max-value-as-index/2-opt.spvasm.expected.ir.dxc.hlsl
deleted file mode 100644
index 3f437dc..0000000
--- a/test/tint/vk-gl-cts/graphicsfuzz/stable-quicksort-max-value-as-index/2-opt.spvasm.expected.ir.dxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Access
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/stable-quicksort-max-value-as-index/2-opt.spvasm.expected.ir.fxc.hlsl b/test/tint/vk-gl-cts/graphicsfuzz/stable-quicksort-max-value-as-index/2-opt.spvasm.expected.ir.fxc.hlsl
deleted file mode 100644
index 3f437dc..0000000
--- a/test/tint/vk-gl-cts/graphicsfuzz/stable-quicksort-max-value-as-index/2-opt.spvasm.expected.ir.fxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Access
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/stable-quicksort-max-value-as-index/2-opt.wgsl.expected.ir.dxc.hlsl b/test/tint/vk-gl-cts/graphicsfuzz/stable-quicksort-max-value-as-index/2-opt.wgsl.expected.ir.dxc.hlsl
deleted file mode 100644
index 6b047b4..0000000
--- a/test/tint/vk-gl-cts/graphicsfuzz/stable-quicksort-max-value-as-index/2-opt.wgsl.expected.ir.dxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:287 internal compiler error: Switch() matched no cases. Type: tint::core::ir::FunctionParam
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/stable-quicksort-max-value-as-index/2-opt.wgsl.expected.ir.fxc.hlsl b/test/tint/vk-gl-cts/graphicsfuzz/stable-quicksort-max-value-as-index/2-opt.wgsl.expected.ir.fxc.hlsl
deleted file mode 100644
index 6b047b4..0000000
--- a/test/tint/vk-gl-cts/graphicsfuzz/stable-quicksort-max-value-as-index/2-opt.wgsl.expected.ir.fxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:287 internal compiler error: Switch() matched no cases. Type: tint::core::ir::FunctionParam
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/stable-rects-vec4-clamp-conditional-min-mix/1.spvasm.expected.ir.dxc.hlsl b/test/tint/vk-gl-cts/graphicsfuzz/stable-rects-vec4-clamp-conditional-min-mix/1.spvasm.expected.ir.dxc.hlsl
deleted file mode 100644
index bdeab23..0000000
--- a/test/tint/vk-gl-cts/graphicsfuzz/stable-rects-vec4-clamp-conditional-min-mix/1.spvasm.expected.ir.dxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:198 internal compiler error: Switch() matched no cases. Type: tint::core::ir::If
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/stable-rects-vec4-clamp-conditional-min-mix/1.spvasm.expected.ir.fxc.hlsl b/test/tint/vk-gl-cts/graphicsfuzz/stable-rects-vec4-clamp-conditional-min-mix/1.spvasm.expected.ir.fxc.hlsl
deleted file mode 100644
index bdeab23..0000000
--- a/test/tint/vk-gl-cts/graphicsfuzz/stable-rects-vec4-clamp-conditional-min-mix/1.spvasm.expected.ir.fxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:198 internal compiler error: Switch() matched no cases. Type: tint::core::ir::If
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/stable-rects-vec4-clamp-conditional-min-mix/1.wgsl.expected.ir.dxc.hlsl b/test/tint/vk-gl-cts/graphicsfuzz/stable-rects-vec4-clamp-conditional-min-mix/1.wgsl.expected.ir.dxc.hlsl
deleted file mode 100644
index 4a2c666..0000000
--- a/test/tint/vk-gl-cts/graphicsfuzz/stable-rects-vec4-clamp-conditional-min-mix/1.wgsl.expected.ir.dxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::LoadVectorElement
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/stable-rects-vec4-clamp-conditional-min-mix/1.wgsl.expected.ir.fxc.hlsl b/test/tint/vk-gl-cts/graphicsfuzz/stable-rects-vec4-clamp-conditional-min-mix/1.wgsl.expected.ir.fxc.hlsl
deleted file mode 100644
index 4a2c666..0000000
--- a/test/tint/vk-gl-cts/graphicsfuzz/stable-rects-vec4-clamp-conditional-min-mix/1.wgsl.expected.ir.fxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::LoadVectorElement
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/stable-triangle-array-nested-loop/0-opt.spvasm.expected.ir.dxc.hlsl b/test/tint/vk-gl-cts/graphicsfuzz/stable-triangle-array-nested-loop/0-opt.spvasm.expected.ir.dxc.hlsl
deleted file mode 100644
index 4a2c666..0000000
--- a/test/tint/vk-gl-cts/graphicsfuzz/stable-triangle-array-nested-loop/0-opt.spvasm.expected.ir.dxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::LoadVectorElement
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/stable-triangle-array-nested-loop/0-opt.spvasm.expected.ir.fxc.hlsl b/test/tint/vk-gl-cts/graphicsfuzz/stable-triangle-array-nested-loop/0-opt.spvasm.expected.ir.fxc.hlsl
deleted file mode 100644
index 4a2c666..0000000
--- a/test/tint/vk-gl-cts/graphicsfuzz/stable-triangle-array-nested-loop/0-opt.spvasm.expected.ir.fxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::LoadVectorElement
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/stable-triangle-array-nested-loop/0-opt.wgsl.expected.ir.dxc.hlsl b/test/tint/vk-gl-cts/graphicsfuzz/stable-triangle-array-nested-loop/0-opt.wgsl.expected.ir.dxc.hlsl
deleted file mode 100644
index 4a2c666..0000000
--- a/test/tint/vk-gl-cts/graphicsfuzz/stable-triangle-array-nested-loop/0-opt.wgsl.expected.ir.dxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::LoadVectorElement
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/stable-triangle-array-nested-loop/0-opt.wgsl.expected.ir.fxc.hlsl b/test/tint/vk-gl-cts/graphicsfuzz/stable-triangle-array-nested-loop/0-opt.wgsl.expected.ir.fxc.hlsl
deleted file mode 100644
index 4a2c666..0000000
--- a/test/tint/vk-gl-cts/graphicsfuzz/stable-triangle-array-nested-loop/0-opt.wgsl.expected.ir.fxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::LoadVectorElement
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/stable-triangle-clamp-conditional-mix/0.spvasm.expected.ir.dxc.hlsl b/test/tint/vk-gl-cts/graphicsfuzz/stable-triangle-clamp-conditional-mix/0.spvasm.expected.ir.dxc.hlsl
deleted file mode 100644
index 4a2c666..0000000
--- a/test/tint/vk-gl-cts/graphicsfuzz/stable-triangle-clamp-conditional-mix/0.spvasm.expected.ir.dxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::LoadVectorElement
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/stable-triangle-clamp-conditional-mix/0.spvasm.expected.ir.fxc.hlsl b/test/tint/vk-gl-cts/graphicsfuzz/stable-triangle-clamp-conditional-mix/0.spvasm.expected.ir.fxc.hlsl
deleted file mode 100644
index 4a2c666..0000000
--- a/test/tint/vk-gl-cts/graphicsfuzz/stable-triangle-clamp-conditional-mix/0.spvasm.expected.ir.fxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::LoadVectorElement
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/stable-triangle-clamp-conditional-mix/0.wgsl.expected.ir.dxc.hlsl b/test/tint/vk-gl-cts/graphicsfuzz/stable-triangle-clamp-conditional-mix/0.wgsl.expected.ir.dxc.hlsl
deleted file mode 100644
index 4a2c666..0000000
--- a/test/tint/vk-gl-cts/graphicsfuzz/stable-triangle-clamp-conditional-mix/0.wgsl.expected.ir.dxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::LoadVectorElement
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/stable-triangle-clamp-conditional-mix/0.wgsl.expected.ir.fxc.hlsl b/test/tint/vk-gl-cts/graphicsfuzz/stable-triangle-clamp-conditional-mix/0.wgsl.expected.ir.fxc.hlsl
deleted file mode 100644
index 4a2c666..0000000
--- a/test/tint/vk-gl-cts/graphicsfuzz/stable-triangle-clamp-conditional-mix/0.wgsl.expected.ir.fxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::LoadVectorElement
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/stable-triangle-clamp-conditional-mix/1.spvasm.expected.ir.dxc.hlsl b/test/tint/vk-gl-cts/graphicsfuzz/stable-triangle-clamp-conditional-mix/1.spvasm.expected.ir.dxc.hlsl
deleted file mode 100644
index 4a2c666..0000000
--- a/test/tint/vk-gl-cts/graphicsfuzz/stable-triangle-clamp-conditional-mix/1.spvasm.expected.ir.dxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::LoadVectorElement
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/stable-triangle-clamp-conditional-mix/1.spvasm.expected.ir.fxc.hlsl b/test/tint/vk-gl-cts/graphicsfuzz/stable-triangle-clamp-conditional-mix/1.spvasm.expected.ir.fxc.hlsl
deleted file mode 100644
index 4a2c666..0000000
--- a/test/tint/vk-gl-cts/graphicsfuzz/stable-triangle-clamp-conditional-mix/1.spvasm.expected.ir.fxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::LoadVectorElement
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/stable-triangle-clamp-conditional-mix/1.wgsl.expected.ir.dxc.hlsl b/test/tint/vk-gl-cts/graphicsfuzz/stable-triangle-clamp-conditional-mix/1.wgsl.expected.ir.dxc.hlsl
deleted file mode 100644
index 4a2c666..0000000
--- a/test/tint/vk-gl-cts/graphicsfuzz/stable-triangle-clamp-conditional-mix/1.wgsl.expected.ir.dxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::LoadVectorElement
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/stable-triangle-clamp-conditional-mix/1.wgsl.expected.ir.fxc.hlsl b/test/tint/vk-gl-cts/graphicsfuzz/stable-triangle-clamp-conditional-mix/1.wgsl.expected.ir.fxc.hlsl
deleted file mode 100644
index 4a2c666..0000000
--- a/test/tint/vk-gl-cts/graphicsfuzz/stable-triangle-clamp-conditional-mix/1.wgsl.expected.ir.fxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::LoadVectorElement
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/stable-triangle-nested-conditional-clamped-float/0.spvasm.expected.ir.dxc.hlsl b/test/tint/vk-gl-cts/graphicsfuzz/stable-triangle-nested-conditional-clamped-float/0.spvasm.expected.ir.dxc.hlsl
deleted file mode 100644
index 4a2c666..0000000
--- a/test/tint/vk-gl-cts/graphicsfuzz/stable-triangle-nested-conditional-clamped-float/0.spvasm.expected.ir.dxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::LoadVectorElement
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/stable-triangle-nested-conditional-clamped-float/0.spvasm.expected.ir.fxc.hlsl b/test/tint/vk-gl-cts/graphicsfuzz/stable-triangle-nested-conditional-clamped-float/0.spvasm.expected.ir.fxc.hlsl
deleted file mode 100644
index 4a2c666..0000000
--- a/test/tint/vk-gl-cts/graphicsfuzz/stable-triangle-nested-conditional-clamped-float/0.spvasm.expected.ir.fxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::LoadVectorElement
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/stable-triangle-nested-conditional-clamped-float/0.wgsl.expected.ir.dxc.hlsl b/test/tint/vk-gl-cts/graphicsfuzz/stable-triangle-nested-conditional-clamped-float/0.wgsl.expected.ir.dxc.hlsl
deleted file mode 100644
index 4a2c666..0000000
--- a/test/tint/vk-gl-cts/graphicsfuzz/stable-triangle-nested-conditional-clamped-float/0.wgsl.expected.ir.dxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::LoadVectorElement
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/stable-triangle-nested-conditional-clamped-float/0.wgsl.expected.ir.fxc.hlsl b/test/tint/vk-gl-cts/graphicsfuzz/stable-triangle-nested-conditional-clamped-float/0.wgsl.expected.ir.fxc.hlsl
deleted file mode 100644
index 4a2c666..0000000
--- a/test/tint/vk-gl-cts/graphicsfuzz/stable-triangle-nested-conditional-clamped-float/0.wgsl.expected.ir.fxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::LoadVectorElement
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/stable-triangle-nested-for-loop-and-true-if/0.spvasm.expected.ir.dxc.hlsl b/test/tint/vk-gl-cts/graphicsfuzz/stable-triangle-nested-for-loop-and-true-if/0.spvasm.expected.ir.dxc.hlsl
deleted file mode 100644
index 4a2c666..0000000
--- a/test/tint/vk-gl-cts/graphicsfuzz/stable-triangle-nested-for-loop-and-true-if/0.spvasm.expected.ir.dxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::LoadVectorElement
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/stable-triangle-nested-for-loop-and-true-if/0.spvasm.expected.ir.fxc.hlsl b/test/tint/vk-gl-cts/graphicsfuzz/stable-triangle-nested-for-loop-and-true-if/0.spvasm.expected.ir.fxc.hlsl
deleted file mode 100644
index 4a2c666..0000000
--- a/test/tint/vk-gl-cts/graphicsfuzz/stable-triangle-nested-for-loop-and-true-if/0.spvasm.expected.ir.fxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::LoadVectorElement
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/stable-triangle-nested-for-loop-and-true-if/0.wgsl.expected.ir.dxc.hlsl b/test/tint/vk-gl-cts/graphicsfuzz/stable-triangle-nested-for-loop-and-true-if/0.wgsl.expected.ir.dxc.hlsl
deleted file mode 100644
index 4a2c666..0000000
--- a/test/tint/vk-gl-cts/graphicsfuzz/stable-triangle-nested-for-loop-and-true-if/0.wgsl.expected.ir.dxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::LoadVectorElement
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/stable-triangle-nested-for-loop-and-true-if/0.wgsl.expected.ir.fxc.hlsl b/test/tint/vk-gl-cts/graphicsfuzz/stable-triangle-nested-for-loop-and-true-if/0.wgsl.expected.ir.fxc.hlsl
deleted file mode 100644
index 4a2c666..0000000
--- a/test/tint/vk-gl-cts/graphicsfuzz/stable-triangle-nested-for-loop-and-true-if/0.wgsl.expected.ir.fxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::LoadVectorElement
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/stable-triangle-nested-for-loop-and-true-if/1.spvasm.expected.ir.dxc.hlsl b/test/tint/vk-gl-cts/graphicsfuzz/stable-triangle-nested-for-loop-and-true-if/1.spvasm.expected.ir.dxc.hlsl
deleted file mode 100644
index 4a2c666..0000000
--- a/test/tint/vk-gl-cts/graphicsfuzz/stable-triangle-nested-for-loop-and-true-if/1.spvasm.expected.ir.dxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::LoadVectorElement
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/stable-triangle-nested-for-loop-and-true-if/1.spvasm.expected.ir.fxc.hlsl b/test/tint/vk-gl-cts/graphicsfuzz/stable-triangle-nested-for-loop-and-true-if/1.spvasm.expected.ir.fxc.hlsl
deleted file mode 100644
index 4a2c666..0000000
--- a/test/tint/vk-gl-cts/graphicsfuzz/stable-triangle-nested-for-loop-and-true-if/1.spvasm.expected.ir.fxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::LoadVectorElement
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/stable-triangle-nested-for-loop-and-true-if/1.wgsl.expected.ir.dxc.hlsl b/test/tint/vk-gl-cts/graphicsfuzz/stable-triangle-nested-for-loop-and-true-if/1.wgsl.expected.ir.dxc.hlsl
deleted file mode 100644
index 4a2c666..0000000
--- a/test/tint/vk-gl-cts/graphicsfuzz/stable-triangle-nested-for-loop-and-true-if/1.wgsl.expected.ir.dxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::LoadVectorElement
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/stable-triangle-nested-for-loop-and-true-if/1.wgsl.expected.ir.fxc.hlsl b/test/tint/vk-gl-cts/graphicsfuzz/stable-triangle-nested-for-loop-and-true-if/1.wgsl.expected.ir.fxc.hlsl
deleted file mode 100644
index 4a2c666..0000000
--- a/test/tint/vk-gl-cts/graphicsfuzz/stable-triangle-nested-for-loop-and-true-if/1.wgsl.expected.ir.fxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::LoadVectorElement
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/struct-array-index/0.spvasm.expected.ir.dxc.hlsl b/test/tint/vk-gl-cts/graphicsfuzz/struct-array-index/0.spvasm.expected.ir.dxc.hlsl
deleted file mode 100644
index 0ba40c6..0000000
--- a/test/tint/vk-gl-cts/graphicsfuzz/struct-array-index/0.spvasm.expected.ir.dxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/struct-array-index/0.spvasm.expected.ir.fxc.hlsl b/test/tint/vk-gl-cts/graphicsfuzz/struct-array-index/0.spvasm.expected.ir.fxc.hlsl
deleted file mode 100644
index 0ba40c6..0000000
--- a/test/tint/vk-gl-cts/graphicsfuzz/struct-array-index/0.spvasm.expected.ir.fxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/struct-array-index/0.wgsl.expected.ir.dxc.hlsl b/test/tint/vk-gl-cts/graphicsfuzz/struct-array-index/0.wgsl.expected.ir.dxc.hlsl
deleted file mode 100644
index 0ba40c6..0000000
--- a/test/tint/vk-gl-cts/graphicsfuzz/struct-array-index/0.wgsl.expected.ir.dxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/struct-array-index/0.wgsl.expected.ir.fxc.hlsl b/test/tint/vk-gl-cts/graphicsfuzz/struct-array-index/0.wgsl.expected.ir.fxc.hlsl
deleted file mode 100644
index 0ba40c6..0000000
--- a/test/tint/vk-gl-cts/graphicsfuzz/struct-array-index/0.wgsl.expected.ir.fxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/struct-controlled-loop/0-opt.spvasm.expected.ir.dxc.hlsl b/test/tint/vk-gl-cts/graphicsfuzz/struct-controlled-loop/0-opt.spvasm.expected.ir.dxc.hlsl
deleted file mode 100644
index 0ba40c6..0000000
--- a/test/tint/vk-gl-cts/graphicsfuzz/struct-controlled-loop/0-opt.spvasm.expected.ir.dxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/struct-controlled-loop/0-opt.spvasm.expected.ir.fxc.hlsl b/test/tint/vk-gl-cts/graphicsfuzz/struct-controlled-loop/0-opt.spvasm.expected.ir.fxc.hlsl
deleted file mode 100644
index 0ba40c6..0000000
--- a/test/tint/vk-gl-cts/graphicsfuzz/struct-controlled-loop/0-opt.spvasm.expected.ir.fxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/struct-controlled-loop/0-opt.wgsl.expected.ir.dxc.hlsl b/test/tint/vk-gl-cts/graphicsfuzz/struct-controlled-loop/0-opt.wgsl.expected.ir.dxc.hlsl
deleted file mode 100644
index 0ba40c6..0000000
--- a/test/tint/vk-gl-cts/graphicsfuzz/struct-controlled-loop/0-opt.wgsl.expected.ir.dxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/struct-controlled-loop/0-opt.wgsl.expected.ir.fxc.hlsl b/test/tint/vk-gl-cts/graphicsfuzz/struct-controlled-loop/0-opt.wgsl.expected.ir.fxc.hlsl
deleted file mode 100644
index 0ba40c6..0000000
--- a/test/tint/vk-gl-cts/graphicsfuzz/struct-controlled-loop/0-opt.wgsl.expected.ir.fxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/struct-used-as-temporary/0-opt.spvasm.expected.ir.dxc.hlsl b/test/tint/vk-gl-cts/graphicsfuzz/struct-used-as-temporary/0-opt.spvasm.expected.ir.dxc.hlsl
deleted file mode 100644
index 3f437dc..0000000
--- a/test/tint/vk-gl-cts/graphicsfuzz/struct-used-as-temporary/0-opt.spvasm.expected.ir.dxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Access
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/struct-used-as-temporary/0-opt.spvasm.expected.ir.fxc.hlsl b/test/tint/vk-gl-cts/graphicsfuzz/struct-used-as-temporary/0-opt.spvasm.expected.ir.fxc.hlsl
deleted file mode 100644
index 3f437dc..0000000
--- a/test/tint/vk-gl-cts/graphicsfuzz/struct-used-as-temporary/0-opt.spvasm.expected.ir.fxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Access
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/struct-used-as-temporary/0-opt.wgsl.expected.ir.dxc.hlsl b/test/tint/vk-gl-cts/graphicsfuzz/struct-used-as-temporary/0-opt.wgsl.expected.ir.dxc.hlsl
deleted file mode 100644
index 3f437dc..0000000
--- a/test/tint/vk-gl-cts/graphicsfuzz/struct-used-as-temporary/0-opt.wgsl.expected.ir.dxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Access
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/struct-used-as-temporary/0-opt.wgsl.expected.ir.fxc.hlsl b/test/tint/vk-gl-cts/graphicsfuzz/struct-used-as-temporary/0-opt.wgsl.expected.ir.fxc.hlsl
deleted file mode 100644
index 3f437dc..0000000
--- a/test/tint/vk-gl-cts/graphicsfuzz/struct-used-as-temporary/0-opt.wgsl.expected.ir.fxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Access
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/switch-if-discard/0-opt.spvasm.expected.ir.dxc.hlsl b/test/tint/vk-gl-cts/graphicsfuzz/switch-if-discard/0-opt.spvasm.expected.ir.dxc.hlsl
index 4a2c666..d1ee477 100644
--- a/test/tint/vk-gl-cts/graphicsfuzz/switch-if-discard/0-opt.spvasm.expected.ir.dxc.hlsl
+++ b/test/tint/vk-gl-cts/graphicsfuzz/switch-if-discard/0-opt.spvasm.expected.ir.dxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::LoadVectorElement
+..\..\src\tint\lang\core\ir\transform\demote_to_helper.cc:208 internal compiler error: TINT_UNREACHABLE unexpected non-core instruction
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/switch-if-discard/0-opt.spvasm.expected.ir.fxc.hlsl b/test/tint/vk-gl-cts/graphicsfuzz/switch-if-discard/0-opt.spvasm.expected.ir.fxc.hlsl
index 4a2c666..d1ee477 100644
--- a/test/tint/vk-gl-cts/graphicsfuzz/switch-if-discard/0-opt.spvasm.expected.ir.fxc.hlsl
+++ b/test/tint/vk-gl-cts/graphicsfuzz/switch-if-discard/0-opt.spvasm.expected.ir.fxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::LoadVectorElement
+..\..\src\tint\lang\core\ir\transform\demote_to_helper.cc:208 internal compiler error: TINT_UNREACHABLE unexpected non-core instruction
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/switch-if-discard/0-opt.wgsl.expected.ir.dxc.hlsl b/test/tint/vk-gl-cts/graphicsfuzz/switch-if-discard/0-opt.wgsl.expected.ir.dxc.hlsl
index 4a2c666..d1ee477 100644
--- a/test/tint/vk-gl-cts/graphicsfuzz/switch-if-discard/0-opt.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/vk-gl-cts/graphicsfuzz/switch-if-discard/0-opt.wgsl.expected.ir.dxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::LoadVectorElement
+..\..\src\tint\lang\core\ir\transform\demote_to_helper.cc:208 internal compiler error: TINT_UNREACHABLE unexpected non-core instruction
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/switch-if-discard/0-opt.wgsl.expected.ir.fxc.hlsl b/test/tint/vk-gl-cts/graphicsfuzz/switch-if-discard/0-opt.wgsl.expected.ir.fxc.hlsl
index 4a2c666..d1ee477 100644
--- a/test/tint/vk-gl-cts/graphicsfuzz/switch-if-discard/0-opt.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/vk-gl-cts/graphicsfuzz/switch-if-discard/0-opt.wgsl.expected.ir.fxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::LoadVectorElement
+..\..\src\tint\lang\core\ir\transform\demote_to_helper.cc:208 internal compiler error: TINT_UNREACHABLE unexpected non-core instruction
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/switch-inside-while-always-return/0-opt.spvasm.expected.ir.dxc.hlsl b/test/tint/vk-gl-cts/graphicsfuzz/switch-inside-while-always-return/0-opt.spvasm.expected.ir.dxc.hlsl
deleted file mode 100644
index bdeab23..0000000
--- a/test/tint/vk-gl-cts/graphicsfuzz/switch-inside-while-always-return/0-opt.spvasm.expected.ir.dxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:198 internal compiler error: Switch() matched no cases. Type: tint::core::ir::If
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/switch-inside-while-always-return/0-opt.spvasm.expected.ir.fxc.hlsl b/test/tint/vk-gl-cts/graphicsfuzz/switch-inside-while-always-return/0-opt.spvasm.expected.ir.fxc.hlsl
deleted file mode 100644
index bdeab23..0000000
--- a/test/tint/vk-gl-cts/graphicsfuzz/switch-inside-while-always-return/0-opt.spvasm.expected.ir.fxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:198 internal compiler error: Switch() matched no cases. Type: tint::core::ir::If
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/switch-inside-while-always-return/0-opt.wgsl.expected.ir.dxc.hlsl b/test/tint/vk-gl-cts/graphicsfuzz/switch-inside-while-always-return/0-opt.wgsl.expected.ir.dxc.hlsl
deleted file mode 100644
index 3f437dc..0000000
--- a/test/tint/vk-gl-cts/graphicsfuzz/switch-inside-while-always-return/0-opt.wgsl.expected.ir.dxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Access
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/switch-inside-while-always-return/0-opt.wgsl.expected.ir.fxc.hlsl b/test/tint/vk-gl-cts/graphicsfuzz/switch-inside-while-always-return/0-opt.wgsl.expected.ir.fxc.hlsl
deleted file mode 100644
index 3f437dc..0000000
--- a/test/tint/vk-gl-cts/graphicsfuzz/switch-inside-while-always-return/0-opt.wgsl.expected.ir.fxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Access
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/switch-with-empty-if-false/0.spvasm.expected.ir.dxc.hlsl b/test/tint/vk-gl-cts/graphicsfuzz/switch-with-empty-if-false/0.spvasm.expected.ir.dxc.hlsl
deleted file mode 100644
index 27c824a..0000000
--- a/test/tint/vk-gl-cts/graphicsfuzz/switch-with-empty-if-false/0.spvasm.expected.ir.dxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:198 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Switch
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/switch-with-empty-if-false/0.spvasm.expected.ir.fxc.hlsl b/test/tint/vk-gl-cts/graphicsfuzz/switch-with-empty-if-false/0.spvasm.expected.ir.fxc.hlsl
deleted file mode 100644
index 27c824a..0000000
--- a/test/tint/vk-gl-cts/graphicsfuzz/switch-with-empty-if-false/0.spvasm.expected.ir.fxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:198 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Switch
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/switch-with-empty-if-false/0.wgsl.expected.ir.dxc.hlsl b/test/tint/vk-gl-cts/graphicsfuzz/switch-with-empty-if-false/0.wgsl.expected.ir.dxc.hlsl
deleted file mode 100644
index 27c824a..0000000
--- a/test/tint/vk-gl-cts/graphicsfuzz/switch-with-empty-if-false/0.wgsl.expected.ir.dxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:198 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Switch
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/switch-with-empty-if-false/0.wgsl.expected.ir.fxc.hlsl b/test/tint/vk-gl-cts/graphicsfuzz/switch-with-empty-if-false/0.wgsl.expected.ir.fxc.hlsl
deleted file mode 100644
index 27c824a..0000000
--- a/test/tint/vk-gl-cts/graphicsfuzz/switch-with-empty-if-false/0.wgsl.expected.ir.fxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:198 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Switch
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/transpose-rectangular-matrix/0.spvasm.expected.ir.dxc.hlsl b/test/tint/vk-gl-cts/graphicsfuzz/transpose-rectangular-matrix/0.spvasm.expected.ir.dxc.hlsl
deleted file mode 100644
index bdeab23..0000000
--- a/test/tint/vk-gl-cts/graphicsfuzz/transpose-rectangular-matrix/0.spvasm.expected.ir.dxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:198 internal compiler error: Switch() matched no cases. Type: tint::core::ir::If
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/transpose-rectangular-matrix/0.spvasm.expected.ir.fxc.hlsl b/test/tint/vk-gl-cts/graphicsfuzz/transpose-rectangular-matrix/0.spvasm.expected.ir.fxc.hlsl
deleted file mode 100644
index bdeab23..0000000
--- a/test/tint/vk-gl-cts/graphicsfuzz/transpose-rectangular-matrix/0.spvasm.expected.ir.fxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:198 internal compiler error: Switch() matched no cases. Type: tint::core::ir::If
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/transpose-rectangular-matrix/0.wgsl.expected.ir.dxc.hlsl b/test/tint/vk-gl-cts/graphicsfuzz/transpose-rectangular-matrix/0.wgsl.expected.ir.dxc.hlsl
deleted file mode 100644
index 4a2c666..0000000
--- a/test/tint/vk-gl-cts/graphicsfuzz/transpose-rectangular-matrix/0.wgsl.expected.ir.dxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::LoadVectorElement
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/transpose-rectangular-matrix/0.wgsl.expected.ir.fxc.hlsl b/test/tint/vk-gl-cts/graphicsfuzz/transpose-rectangular-matrix/0.wgsl.expected.ir.fxc.hlsl
deleted file mode 100644
index 4a2c666..0000000
--- a/test/tint/vk-gl-cts/graphicsfuzz/transpose-rectangular-matrix/0.wgsl.expected.ir.fxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::LoadVectorElement
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/two-2-iteration-loops/0-opt.spvasm.expected.ir.dxc.hlsl b/test/tint/vk-gl-cts/graphicsfuzz/two-2-iteration-loops/0-opt.spvasm.expected.ir.dxc.hlsl
index 4a2c666..d1ee477 100644
--- a/test/tint/vk-gl-cts/graphicsfuzz/two-2-iteration-loops/0-opt.spvasm.expected.ir.dxc.hlsl
+++ b/test/tint/vk-gl-cts/graphicsfuzz/two-2-iteration-loops/0-opt.spvasm.expected.ir.dxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::LoadVectorElement
+..\..\src\tint\lang\core\ir\transform\demote_to_helper.cc:208 internal compiler error: TINT_UNREACHABLE unexpected non-core instruction
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/two-2-iteration-loops/0-opt.spvasm.expected.ir.fxc.hlsl b/test/tint/vk-gl-cts/graphicsfuzz/two-2-iteration-loops/0-opt.spvasm.expected.ir.fxc.hlsl
index 4a2c666..d1ee477 100644
--- a/test/tint/vk-gl-cts/graphicsfuzz/two-2-iteration-loops/0-opt.spvasm.expected.ir.fxc.hlsl
+++ b/test/tint/vk-gl-cts/graphicsfuzz/two-2-iteration-loops/0-opt.spvasm.expected.ir.fxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::LoadVectorElement
+..\..\src\tint\lang\core\ir\transform\demote_to_helper.cc:208 internal compiler error: TINT_UNREACHABLE unexpected non-core instruction
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/two-2-iteration-loops/0-opt.wgsl.expected.ir.dxc.hlsl b/test/tint/vk-gl-cts/graphicsfuzz/two-2-iteration-loops/0-opt.wgsl.expected.ir.dxc.hlsl
index 4a2c666..d1ee477 100644
--- a/test/tint/vk-gl-cts/graphicsfuzz/two-2-iteration-loops/0-opt.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/vk-gl-cts/graphicsfuzz/two-2-iteration-loops/0-opt.wgsl.expected.ir.dxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::LoadVectorElement
+..\..\src\tint\lang\core\ir\transform\demote_to_helper.cc:208 internal compiler error: TINT_UNREACHABLE unexpected non-core instruction
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/two-2-iteration-loops/0-opt.wgsl.expected.ir.fxc.hlsl b/test/tint/vk-gl-cts/graphicsfuzz/two-2-iteration-loops/0-opt.wgsl.expected.ir.fxc.hlsl
index 4a2c666..d1ee477 100644
--- a/test/tint/vk-gl-cts/graphicsfuzz/two-2-iteration-loops/0-opt.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/vk-gl-cts/graphicsfuzz/two-2-iteration-loops/0-opt.wgsl.expected.ir.fxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::LoadVectorElement
+..\..\src\tint\lang\core\ir\transform\demote_to_helper.cc:208 internal compiler error: TINT_UNREACHABLE unexpected non-core instruction
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/two-loops-matrix/0.spvasm.expected.ir.dxc.hlsl b/test/tint/vk-gl-cts/graphicsfuzz/two-loops-matrix/0.spvasm.expected.ir.dxc.hlsl
deleted file mode 100644
index adbb0c1..0000000
--- a/test/tint/vk-gl-cts/graphicsfuzz/two-loops-matrix/0.spvasm.expected.ir.dxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:198 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Loop
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/two-loops-matrix/0.spvasm.expected.ir.fxc.hlsl b/test/tint/vk-gl-cts/graphicsfuzz/two-loops-matrix/0.spvasm.expected.ir.fxc.hlsl
index adbb0c1..4b24b14 100644
--- a/test/tint/vk-gl-cts/graphicsfuzz/two-loops-matrix/0.spvasm.expected.ir.fxc.hlsl
+++ b/test/tint/vk-gl-cts/graphicsfuzz/two-loops-matrix/0.spvasm.expected.ir.fxc.hlsl
@@ -1,9 +1,75 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:198 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Loop
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct main_out {
+  float4 x_GLF_color_1;
+};
+
+struct main_outputs {
+  float4 main_out_x_GLF_color_1 : SV_Target0;
+};
+
+
+cbuffer cbuffer_x_8 : register(b0) {
+  uint4 x_8[4];
+};
+static float4 x_GLF_color = (0.0f).xxxx;
+void main_1() {
+  int x = 0;
+  float4 matrix_u = (0.0f).xxxx;
+  int b = 0;
+  float4 matrix_b = (0.0f).xxxx;
+  float4 x_42 = (0.0f).xxxx;
+  x = 4;
+  {
+    while(true) {
+      if ((x >= 1)) {
+      } else {
+        break;
+      }
+      int x_11 = x;
+      matrix_u[x_11] = 1.0f;
+      {
+        x = (x - 1);
+      }
+      continue;
+    }
+  }
+  b = 4;
+  {
+    while(true) {
+      if ((asfloat(x_8[0u].x) < -1.0f)) {
+      } else {
+        break;
+      }
+      int x_14 = b;
+      if ((b > 1)) {
+        x_42 = min(matrix_b, matrix_b);
+      } else {
+        x_42 = matrix_u;
+      }
+      matrix_b[x_14] = x_42.y;
+      {
+        b = (b - 1);
+      }
+      continue;
+    }
+  }
+  x_GLF_color = float4(1.0f, 0.0f, 0.0f, 1.0f);
+}
+
+main_out main_inner() {
+  main_1();
+  main_out v = {x_GLF_color};
+  return v;
+}
+
+main_outputs main() {
+  main_out v_1 = main_inner();
+  main_outputs v_2 = {v_1.x_GLF_color_1};
+  return v_2;
+}
+
+FXC validation failure:
+c:\src\dawn\Shader@0x0000022FEE4555D0(28,7-20): error X3504: literal loop terminated early due to out of bounds array access
+c:\src\dawn\Shader@0x0000022FEE4555D0(22,5-15): warning X3557: loop only executes for 0 iteration(s), forcing loop to unroll
+
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/two-loops-matrix/0.wgsl.expected.ir.dxc.hlsl b/test/tint/vk-gl-cts/graphicsfuzz/two-loops-matrix/0.wgsl.expected.ir.dxc.hlsl
deleted file mode 100644
index adbb0c1..0000000
--- a/test/tint/vk-gl-cts/graphicsfuzz/two-loops-matrix/0.wgsl.expected.ir.dxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:198 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Loop
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/two-loops-matrix/0.wgsl.expected.ir.fxc.hlsl b/test/tint/vk-gl-cts/graphicsfuzz/two-loops-matrix/0.wgsl.expected.ir.fxc.hlsl
index adbb0c1..8093b38 100644
--- a/test/tint/vk-gl-cts/graphicsfuzz/two-loops-matrix/0.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/vk-gl-cts/graphicsfuzz/two-loops-matrix/0.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,84 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:198 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Loop
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct main_out {
+  float4 x_GLF_color_1;
+};
+
+struct main_outputs {
+  float4 main_out_x_GLF_color_1 : SV_Target0;
+};
+
+
+cbuffer cbuffer_x_8 : register(b0) {
+  uint4 x_8[4];
+};
+static float4 x_GLF_color = (0.0f).xxxx;
+void main_1() {
+  int x = 0;
+  float4 matrix_u = (0.0f).xxxx;
+  int b = 0;
+  float4 matrix_b = (0.0f).xxxx;
+  float4 x_42 = (0.0f).xxxx;
+  x = 4;
+  {
+    while(true) {
+      int x_10 = x;
+      if ((x_10 >= 1)) {
+      } else {
+        break;
+      }
+      int x_11 = x;
+      matrix_u[x_11] = 1.0f;
+      {
+        int x_12 = x;
+        x = (x_12 - 1);
+      }
+      continue;
+    }
+  }
+  b = 4;
+  {
+    while(true) {
+      float x_55 = asfloat(x_8[0u].x);
+      if ((x_55 < -1.0f)) {
+      } else {
+        break;
+      }
+      int x_14 = b;
+      int x_15 = b;
+      if ((x_15 > 1)) {
+        float4 x_62 = matrix_b;
+        float4 x_63 = matrix_b;
+        x_42 = min(x_62, x_63);
+      } else {
+        float4 x_65 = matrix_u;
+        x_42 = x_65;
+      }
+      float x_67 = x_42.y;
+      matrix_b[x_14] = x_67;
+      {
+        int x_16 = b;
+        b = (x_16 - 1);
+      }
+      continue;
+    }
+  }
+  x_GLF_color = float4(1.0f, 0.0f, 0.0f, 1.0f);
+}
+
+main_out main_inner() {
+  main_1();
+  main_out v = {x_GLF_color};
+  return v;
+}
+
+main_outputs main() {
+  main_out v_1 = main_inner();
+  main_outputs v_2 = {v_1.x_GLF_color_1};
+  return v_2;
+}
+
+FXC validation failure:
+c:\src\dawn\Shader@0x0000020EF461F7A0(29,7-20): error X3504: literal loop terminated early due to out of bounds array access
+c:\src\dawn\Shader@0x0000020EF461F7A0(22,5-15): warning X3557: loop only executes for 0 iteration(s), forcing loop to unroll
+
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/two-loops-set-struct/0.spvasm.expected.ir.dxc.hlsl b/test/tint/vk-gl-cts/graphicsfuzz/two-loops-set-struct/0.spvasm.expected.ir.dxc.hlsl
deleted file mode 100644
index 0ba40c6..0000000
--- a/test/tint/vk-gl-cts/graphicsfuzz/two-loops-set-struct/0.spvasm.expected.ir.dxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/two-loops-set-struct/0.spvasm.expected.ir.fxc.hlsl b/test/tint/vk-gl-cts/graphicsfuzz/two-loops-set-struct/0.spvasm.expected.ir.fxc.hlsl
deleted file mode 100644
index 0ba40c6..0000000
--- a/test/tint/vk-gl-cts/graphicsfuzz/two-loops-set-struct/0.spvasm.expected.ir.fxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/two-loops-set-struct/0.wgsl.expected.ir.dxc.hlsl b/test/tint/vk-gl-cts/graphicsfuzz/two-loops-set-struct/0.wgsl.expected.ir.dxc.hlsl
deleted file mode 100644
index 0ba40c6..0000000
--- a/test/tint/vk-gl-cts/graphicsfuzz/two-loops-set-struct/0.wgsl.expected.ir.dxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/two-loops-set-struct/0.wgsl.expected.ir.fxc.hlsl b/test/tint/vk-gl-cts/graphicsfuzz/two-loops-set-struct/0.wgsl.expected.ir.fxc.hlsl
deleted file mode 100644
index 0ba40c6..0000000
--- a/test/tint/vk-gl-cts/graphicsfuzz/two-loops-set-struct/0.wgsl.expected.ir.fxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:504 internal compiler error: Switch() matched no cases. Type: tint::core::type::Struct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/two-loops-with-break/0-opt.spvasm.expected.ir.dxc.hlsl b/test/tint/vk-gl-cts/graphicsfuzz/two-loops-with-break/0-opt.spvasm.expected.ir.dxc.hlsl
deleted file mode 100644
index adbb0c1..0000000
--- a/test/tint/vk-gl-cts/graphicsfuzz/two-loops-with-break/0-opt.spvasm.expected.ir.dxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:198 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Loop
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/two-loops-with-break/0-opt.spvasm.expected.ir.fxc.hlsl b/test/tint/vk-gl-cts/graphicsfuzz/two-loops-with-break/0-opt.spvasm.expected.ir.fxc.hlsl
deleted file mode 100644
index adbb0c1..0000000
--- a/test/tint/vk-gl-cts/graphicsfuzz/two-loops-with-break/0-opt.spvasm.expected.ir.fxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:198 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Loop
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/two-loops-with-break/0-opt.wgsl.expected.ir.dxc.hlsl b/test/tint/vk-gl-cts/graphicsfuzz/two-loops-with-break/0-opt.wgsl.expected.ir.dxc.hlsl
deleted file mode 100644
index adbb0c1..0000000
--- a/test/tint/vk-gl-cts/graphicsfuzz/two-loops-with-break/0-opt.wgsl.expected.ir.dxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:198 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Loop
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/two-loops-with-break/0-opt.wgsl.expected.ir.fxc.hlsl b/test/tint/vk-gl-cts/graphicsfuzz/two-loops-with-break/0-opt.wgsl.expected.ir.fxc.hlsl
deleted file mode 100644
index adbb0c1..0000000
--- a/test/tint/vk-gl-cts/graphicsfuzz/two-loops-with-break/0-opt.wgsl.expected.ir.fxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:198 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Loop
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/two-nested-do-whiles/0-opt.spvasm.expected.ir.dxc.hlsl b/test/tint/vk-gl-cts/graphicsfuzz/two-nested-do-whiles/0-opt.spvasm.expected.ir.dxc.hlsl
deleted file mode 100644
index bdeab23..0000000
--- a/test/tint/vk-gl-cts/graphicsfuzz/two-nested-do-whiles/0-opt.spvasm.expected.ir.dxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:198 internal compiler error: Switch() matched no cases. Type: tint::core::ir::If
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/two-nested-do-whiles/0-opt.spvasm.expected.ir.fxc.hlsl b/test/tint/vk-gl-cts/graphicsfuzz/two-nested-do-whiles/0-opt.spvasm.expected.ir.fxc.hlsl
deleted file mode 100644
index bdeab23..0000000
--- a/test/tint/vk-gl-cts/graphicsfuzz/two-nested-do-whiles/0-opt.spvasm.expected.ir.fxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:198 internal compiler error: Switch() matched no cases. Type: tint::core::ir::If
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/two-nested-do-whiles/0-opt.wgsl.expected.ir.dxc.hlsl b/test/tint/vk-gl-cts/graphicsfuzz/two-nested-do-whiles/0-opt.wgsl.expected.ir.dxc.hlsl
deleted file mode 100644
index 4a2c666..0000000
--- a/test/tint/vk-gl-cts/graphicsfuzz/two-nested-do-whiles/0-opt.wgsl.expected.ir.dxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::LoadVectorElement
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/two-nested-do-whiles/0-opt.wgsl.expected.ir.fxc.hlsl b/test/tint/vk-gl-cts/graphicsfuzz/two-nested-do-whiles/0-opt.wgsl.expected.ir.fxc.hlsl
deleted file mode 100644
index 4a2c666..0000000
--- a/test/tint/vk-gl-cts/graphicsfuzz/two-nested-do-whiles/0-opt.wgsl.expected.ir.fxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::LoadVectorElement
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/two-nested-for-loops-with-returns/0-opt.spvasm.expected.ir.dxc.hlsl b/test/tint/vk-gl-cts/graphicsfuzz/two-nested-for-loops-with-returns/0-opt.spvasm.expected.ir.dxc.hlsl
deleted file mode 100644
index adbb0c1..0000000
--- a/test/tint/vk-gl-cts/graphicsfuzz/two-nested-for-loops-with-returns/0-opt.spvasm.expected.ir.dxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:198 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Loop
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/two-nested-for-loops-with-returns/0-opt.spvasm.expected.ir.fxc.hlsl b/test/tint/vk-gl-cts/graphicsfuzz/two-nested-for-loops-with-returns/0-opt.spvasm.expected.ir.fxc.hlsl
deleted file mode 100644
index adbb0c1..0000000
--- a/test/tint/vk-gl-cts/graphicsfuzz/two-nested-for-loops-with-returns/0-opt.spvasm.expected.ir.fxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:198 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Loop
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/two-nested-for-loops-with-returns/0-opt.wgsl.expected.ir.dxc.hlsl b/test/tint/vk-gl-cts/graphicsfuzz/two-nested-for-loops-with-returns/0-opt.wgsl.expected.ir.dxc.hlsl
deleted file mode 100644
index adbb0c1..0000000
--- a/test/tint/vk-gl-cts/graphicsfuzz/two-nested-for-loops-with-returns/0-opt.wgsl.expected.ir.dxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:198 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Loop
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/two-nested-for-loops-with-returns/0-opt.wgsl.expected.ir.fxc.hlsl b/test/tint/vk-gl-cts/graphicsfuzz/two-nested-for-loops-with-returns/0-opt.wgsl.expected.ir.fxc.hlsl
deleted file mode 100644
index adbb0c1..0000000
--- a/test/tint/vk-gl-cts/graphicsfuzz/two-nested-for-loops-with-returns/0-opt.wgsl.expected.ir.fxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:198 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Loop
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/undefined-assign-in-infinite-loop/0.spvasm.expected.ir.dxc.hlsl b/test/tint/vk-gl-cts/graphicsfuzz/undefined-assign-in-infinite-loop/0.spvasm.expected.ir.dxc.hlsl
index bdeab23..40146df 100644
--- a/test/tint/vk-gl-cts/graphicsfuzz/undefined-assign-in-infinite-loop/0.spvasm.expected.ir.dxc.hlsl
+++ b/test/tint/vk-gl-cts/graphicsfuzz/undefined-assign-in-infinite-loop/0.spvasm.expected.ir.dxc.hlsl
@@ -1,9 +1,56 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:198 internal compiler error: Switch() matched no cases. Type: tint::core::ir::If
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct main_out {
+  float4 x_GLF_color_1;
+};
+
+struct main_outputs {
+  float4 main_out_x_GLF_color_1 : SV_Target0;
+};
+
+
+static float4 x_GLF_color = (0.0f).xxxx;
+cbuffer cbuffer_x_6 : register(b0) {
+  uint4 x_6[1];
+};
+void main_1() {
+  int GLF_dead6index = 0;
+  int GLF_dead6currentNode = 0;
+  int donor_replacementGLF_dead6tree[1] = (int[1])0;
+  x_GLF_color = float4(1.0f, 0.0f, 0.0f, 1.0f);
+  GLF_dead6index = 0;
+  if ((asfloat(x_6[0u].y) < 0.0f)) {
+    {
+      while(true) {
+        if (true) {
+        } else {
+          break;
+        }
+        GLF_dead6currentNode = donor_replacementGLF_dead6tree[GLF_dead6index];
+        GLF_dead6index = GLF_dead6currentNode;
+        {
+        }
+        continue;
+      }
+    }
+  }
+}
+
+main_out main_inner() {
+  main_1();
+  main_out v = {x_GLF_color};
+  return v;
+}
+
+main_outputs main() {
+  main_out v_1 = main_inner();
+  main_outputs v_2 = {v_1.x_GLF_color_1};
+  return v_2;
+}
+
+DXC validation failure:
+error: validation errors
+hlsl.hlsl:43: error: Loop must have break.
+Validation failed.
+
+
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/undefined-assign-in-infinite-loop/0.spvasm.expected.ir.fxc.hlsl b/test/tint/vk-gl-cts/graphicsfuzz/undefined-assign-in-infinite-loop/0.spvasm.expected.ir.fxc.hlsl
index bdeab23..6353696 100644
--- a/test/tint/vk-gl-cts/graphicsfuzz/undefined-assign-in-infinite-loop/0.spvasm.expected.ir.fxc.hlsl
+++ b/test/tint/vk-gl-cts/graphicsfuzz/undefined-assign-in-infinite-loop/0.spvasm.expected.ir.fxc.hlsl
@@ -1,9 +1,53 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:198 internal compiler error: Switch() matched no cases. Type: tint::core::ir::If
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct main_out {
+  float4 x_GLF_color_1;
+};
+
+struct main_outputs {
+  float4 main_out_x_GLF_color_1 : SV_Target0;
+};
+
+
+static float4 x_GLF_color = (0.0f).xxxx;
+cbuffer cbuffer_x_6 : register(b0) {
+  uint4 x_6[1];
+};
+void main_1() {
+  int GLF_dead6index = 0;
+  int GLF_dead6currentNode = 0;
+  int donor_replacementGLF_dead6tree[1] = (int[1])0;
+  x_GLF_color = float4(1.0f, 0.0f, 0.0f, 1.0f);
+  GLF_dead6index = 0;
+  if ((asfloat(x_6[0u].y) < 0.0f)) {
+    {
+      while(true) {
+        if (true) {
+        } else {
+          break;
+        }
+        GLF_dead6currentNode = donor_replacementGLF_dead6tree[GLF_dead6index];
+        GLF_dead6index = GLF_dead6currentNode;
+        {
+        }
+        continue;
+      }
+    }
+  }
+}
+
+main_out main_inner() {
+  main_1();
+  main_out v = {x_GLF_color};
+  return v;
+}
+
+main_outputs main() {
+  main_out v_1 = main_inner();
+  main_outputs v_2 = {v_1.x_GLF_color_1};
+  return v_2;
+}
+
+FXC validation failure:
+c:\src\dawn\Shader@0x000002A9C07CCF70(22,13-16): error X3696: infinite loop detected - loop never exits
+
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/undefined-assign-in-infinite-loop/0.wgsl.expected.ir.dxc.hlsl b/test/tint/vk-gl-cts/graphicsfuzz/undefined-assign-in-infinite-loop/0.wgsl.expected.ir.dxc.hlsl
index 4a2c666..a257ebf 100644
--- a/test/tint/vk-gl-cts/graphicsfuzz/undefined-assign-in-infinite-loop/0.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/vk-gl-cts/graphicsfuzz/undefined-assign-in-infinite-loop/0.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,60 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::LoadVectorElement
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct main_out {
+  float4 x_GLF_color_1;
+};
+
+struct main_outputs {
+  float4 main_out_x_GLF_color_1 : SV_Target0;
+};
+
+
+static float4 x_GLF_color = (0.0f).xxxx;
+cbuffer cbuffer_x_6 : register(b0) {
+  uint4 x_6[1];
+};
+void main_1() {
+  int GLF_dead6index = 0;
+  int GLF_dead6currentNode = 0;
+  int donor_replacementGLF_dead6tree[1] = (int[1])0;
+  x_GLF_color = float4(1.0f, 0.0f, 0.0f, 1.0f);
+  GLF_dead6index = 0;
+  float x_34 = asfloat(x_6[0u].y);
+  if ((x_34 < 0.0f)) {
+    {
+      while(true) {
+        if (true) {
+        } else {
+          break;
+        }
+        int x_9 = GLF_dead6index;
+        int x_10 = donor_replacementGLF_dead6tree[x_9];
+        GLF_dead6currentNode = x_10;
+        int x_11 = GLF_dead6currentNode;
+        GLF_dead6index = x_11;
+        {
+        }
+        continue;
+      }
+    }
+  }
+}
+
+main_out main_inner() {
+  main_1();
+  main_out v = {x_GLF_color};
+  return v;
+}
+
+main_outputs main() {
+  main_out v_1 = main_inner();
+  main_outputs v_2 = {v_1.x_GLF_color_1};
+  return v_2;
+}
+
+DXC validation failure:
+error: validation errors
+hlsl.hlsl:47: error: Loop must have break.
+Validation failed.
+
+
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/undefined-assign-in-infinite-loop/0.wgsl.expected.ir.fxc.hlsl b/test/tint/vk-gl-cts/graphicsfuzz/undefined-assign-in-infinite-loop/0.wgsl.expected.ir.fxc.hlsl
index 4a2c666..b1c6073 100644
--- a/test/tint/vk-gl-cts/graphicsfuzz/undefined-assign-in-infinite-loop/0.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/vk-gl-cts/graphicsfuzz/undefined-assign-in-infinite-loop/0.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,57 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::LoadVectorElement
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct main_out {
+  float4 x_GLF_color_1;
+};
+
+struct main_outputs {
+  float4 main_out_x_GLF_color_1 : SV_Target0;
+};
+
+
+static float4 x_GLF_color = (0.0f).xxxx;
+cbuffer cbuffer_x_6 : register(b0) {
+  uint4 x_6[1];
+};
+void main_1() {
+  int GLF_dead6index = 0;
+  int GLF_dead6currentNode = 0;
+  int donor_replacementGLF_dead6tree[1] = (int[1])0;
+  x_GLF_color = float4(1.0f, 0.0f, 0.0f, 1.0f);
+  GLF_dead6index = 0;
+  float x_34 = asfloat(x_6[0u].y);
+  if ((x_34 < 0.0f)) {
+    {
+      while(true) {
+        if (true) {
+        } else {
+          break;
+        }
+        int x_9 = GLF_dead6index;
+        int x_10 = donor_replacementGLF_dead6tree[x_9];
+        GLF_dead6currentNode = x_10;
+        int x_11 = GLF_dead6currentNode;
+        GLF_dead6index = x_11;
+        {
+        }
+        continue;
+      }
+    }
+  }
+}
+
+main_out main_inner() {
+  main_1();
+  main_out v = {x_GLF_color};
+  return v;
+}
+
+main_outputs main() {
+  main_out v_1 = main_inner();
+  main_outputs v_2 = {v_1.x_GLF_color_1};
+  return v_2;
+}
+
+FXC validation failure:
+c:\src\dawn\Shader@0x000001FFE395FFD0(23,13-16): error X3696: infinite loop detected - loop never exits
+
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/undefined-integer-in-function/0-opt.spvasm.expected.ir.dxc.hlsl b/test/tint/vk-gl-cts/graphicsfuzz/undefined-integer-in-function/0-opt.spvasm.expected.ir.dxc.hlsl
deleted file mode 100644
index adbb0c1..0000000
--- a/test/tint/vk-gl-cts/graphicsfuzz/undefined-integer-in-function/0-opt.spvasm.expected.ir.dxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:198 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Loop
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/undefined-integer-in-function/0-opt.spvasm.expected.ir.fxc.hlsl b/test/tint/vk-gl-cts/graphicsfuzz/undefined-integer-in-function/0-opt.spvasm.expected.ir.fxc.hlsl
deleted file mode 100644
index adbb0c1..0000000
--- a/test/tint/vk-gl-cts/graphicsfuzz/undefined-integer-in-function/0-opt.spvasm.expected.ir.fxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:198 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Loop
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/undefined-integer-in-function/0-opt.wgsl.expected.ir.dxc.hlsl b/test/tint/vk-gl-cts/graphicsfuzz/undefined-integer-in-function/0-opt.wgsl.expected.ir.dxc.hlsl
deleted file mode 100644
index adbb0c1..0000000
--- a/test/tint/vk-gl-cts/graphicsfuzz/undefined-integer-in-function/0-opt.wgsl.expected.ir.dxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:198 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Loop
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/undefined-integer-in-function/0-opt.wgsl.expected.ir.fxc.hlsl b/test/tint/vk-gl-cts/graphicsfuzz/undefined-integer-in-function/0-opt.wgsl.expected.ir.fxc.hlsl
deleted file mode 100644
index adbb0c1..0000000
--- a/test/tint/vk-gl-cts/graphicsfuzz/undefined-integer-in-function/0-opt.wgsl.expected.ir.fxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:198 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Loop
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/uninit-element-cast-in-loop/0-opt.spvasm.expected.ir.dxc.hlsl b/test/tint/vk-gl-cts/graphicsfuzz/uninit-element-cast-in-loop/0-opt.spvasm.expected.ir.dxc.hlsl
deleted file mode 100644
index adbb0c1..0000000
--- a/test/tint/vk-gl-cts/graphicsfuzz/uninit-element-cast-in-loop/0-opt.spvasm.expected.ir.dxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:198 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Loop
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/uninit-element-cast-in-loop/0-opt.spvasm.expected.ir.fxc.hlsl b/test/tint/vk-gl-cts/graphicsfuzz/uninit-element-cast-in-loop/0-opt.spvasm.expected.ir.fxc.hlsl
deleted file mode 100644
index adbb0c1..0000000
--- a/test/tint/vk-gl-cts/graphicsfuzz/uninit-element-cast-in-loop/0-opt.spvasm.expected.ir.fxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:198 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Loop
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/uninit-element-cast-in-loop/0-opt.wgsl.expected.ir.dxc.hlsl b/test/tint/vk-gl-cts/graphicsfuzz/uninit-element-cast-in-loop/0-opt.wgsl.expected.ir.dxc.hlsl
deleted file mode 100644
index adbb0c1..0000000
--- a/test/tint/vk-gl-cts/graphicsfuzz/uninit-element-cast-in-loop/0-opt.wgsl.expected.ir.dxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:198 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Loop
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/uninit-element-cast-in-loop/0-opt.wgsl.expected.ir.fxc.hlsl b/test/tint/vk-gl-cts/graphicsfuzz/uninit-element-cast-in-loop/0-opt.wgsl.expected.ir.fxc.hlsl
deleted file mode 100644
index adbb0c1..0000000
--- a/test/tint/vk-gl-cts/graphicsfuzz/uninit-element-cast-in-loop/0-opt.wgsl.expected.ir.fxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:198 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Loop
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/uninitialized-var-decrement-and-add/0-opt.spvasm.expected.ir.dxc.hlsl b/test/tint/vk-gl-cts/graphicsfuzz/uninitialized-var-decrement-and-add/0-opt.spvasm.expected.ir.dxc.hlsl
deleted file mode 100644
index bdeab23..0000000
--- a/test/tint/vk-gl-cts/graphicsfuzz/uninitialized-var-decrement-and-add/0-opt.spvasm.expected.ir.dxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:198 internal compiler error: Switch() matched no cases. Type: tint::core::ir::If
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/uninitialized-var-decrement-and-add/0-opt.spvasm.expected.ir.fxc.hlsl b/test/tint/vk-gl-cts/graphicsfuzz/uninitialized-var-decrement-and-add/0-opt.spvasm.expected.ir.fxc.hlsl
deleted file mode 100644
index bdeab23..0000000
--- a/test/tint/vk-gl-cts/graphicsfuzz/uninitialized-var-decrement-and-add/0-opt.spvasm.expected.ir.fxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:198 internal compiler error: Switch() matched no cases. Type: tint::core::ir::If
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/uninitialized-var-decrement-and-add/0-opt.wgsl.expected.ir.dxc.hlsl b/test/tint/vk-gl-cts/graphicsfuzz/uninitialized-var-decrement-and-add/0-opt.wgsl.expected.ir.dxc.hlsl
deleted file mode 100644
index 4a2c666..0000000
--- a/test/tint/vk-gl-cts/graphicsfuzz/uninitialized-var-decrement-and-add/0-opt.wgsl.expected.ir.dxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::LoadVectorElement
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/uninitialized-var-decrement-and-add/0-opt.wgsl.expected.ir.fxc.hlsl b/test/tint/vk-gl-cts/graphicsfuzz/uninitialized-var-decrement-and-add/0-opt.wgsl.expected.ir.fxc.hlsl
deleted file mode 100644
index 4a2c666..0000000
--- a/test/tint/vk-gl-cts/graphicsfuzz/uninitialized-var-decrement-and-add/0-opt.wgsl.expected.ir.fxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::LoadVectorElement
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/unreachable-continue-statement/0.spvasm.expected.ir.dxc.hlsl b/test/tint/vk-gl-cts/graphicsfuzz/unreachable-continue-statement/0.spvasm.expected.ir.dxc.hlsl
deleted file mode 100644
index adbb0c1..0000000
--- a/test/tint/vk-gl-cts/graphicsfuzz/unreachable-continue-statement/0.spvasm.expected.ir.dxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:198 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Loop
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/unreachable-continue-statement/0.spvasm.expected.ir.fxc.hlsl b/test/tint/vk-gl-cts/graphicsfuzz/unreachable-continue-statement/0.spvasm.expected.ir.fxc.hlsl
deleted file mode 100644
index adbb0c1..0000000
--- a/test/tint/vk-gl-cts/graphicsfuzz/unreachable-continue-statement/0.spvasm.expected.ir.fxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:198 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Loop
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/unreachable-continue-statement/0.wgsl.expected.ir.dxc.hlsl b/test/tint/vk-gl-cts/graphicsfuzz/unreachable-continue-statement/0.wgsl.expected.ir.dxc.hlsl
deleted file mode 100644
index adbb0c1..0000000
--- a/test/tint/vk-gl-cts/graphicsfuzz/unreachable-continue-statement/0.wgsl.expected.ir.dxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:198 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Loop
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/unreachable-continue-statement/0.wgsl.expected.ir.fxc.hlsl b/test/tint/vk-gl-cts/graphicsfuzz/unreachable-continue-statement/0.wgsl.expected.ir.fxc.hlsl
deleted file mode 100644
index adbb0c1..0000000
--- a/test/tint/vk-gl-cts/graphicsfuzz/unreachable-continue-statement/0.wgsl.expected.ir.fxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:198 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Loop
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/unreachable-discard-statement-in-if/0-opt.spvasm.expected.ir.dxc.hlsl b/test/tint/vk-gl-cts/graphicsfuzz/unreachable-discard-statement-in-if/0-opt.spvasm.expected.ir.dxc.hlsl
index bdeab23..d1ee477 100644
--- a/test/tint/vk-gl-cts/graphicsfuzz/unreachable-discard-statement-in-if/0-opt.spvasm.expected.ir.dxc.hlsl
+++ b/test/tint/vk-gl-cts/graphicsfuzz/unreachable-discard-statement-in-if/0-opt.spvasm.expected.ir.dxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:198 internal compiler error: Switch() matched no cases. Type: tint::core::ir::If
+..\..\src\tint\lang\core\ir\transform\demote_to_helper.cc:208 internal compiler error: TINT_UNREACHABLE unexpected non-core instruction
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/unreachable-discard-statement-in-if/0-opt.spvasm.expected.ir.fxc.hlsl b/test/tint/vk-gl-cts/graphicsfuzz/unreachable-discard-statement-in-if/0-opt.spvasm.expected.ir.fxc.hlsl
index bdeab23..d1ee477 100644
--- a/test/tint/vk-gl-cts/graphicsfuzz/unreachable-discard-statement-in-if/0-opt.spvasm.expected.ir.fxc.hlsl
+++ b/test/tint/vk-gl-cts/graphicsfuzz/unreachable-discard-statement-in-if/0-opt.spvasm.expected.ir.fxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:198 internal compiler error: Switch() matched no cases. Type: tint::core::ir::If
+..\..\src\tint\lang\core\ir\transform\demote_to_helper.cc:208 internal compiler error: TINT_UNREACHABLE unexpected non-core instruction
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/unreachable-discard-statement-in-if/0-opt.wgsl.expected.ir.dxc.hlsl b/test/tint/vk-gl-cts/graphicsfuzz/unreachable-discard-statement-in-if/0-opt.wgsl.expected.ir.dxc.hlsl
index 4a2c666..d1ee477 100644
--- a/test/tint/vk-gl-cts/graphicsfuzz/unreachable-discard-statement-in-if/0-opt.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/vk-gl-cts/graphicsfuzz/unreachable-discard-statement-in-if/0-opt.wgsl.expected.ir.dxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::LoadVectorElement
+..\..\src\tint\lang\core\ir\transform\demote_to_helper.cc:208 internal compiler error: TINT_UNREACHABLE unexpected non-core instruction
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/unreachable-discard-statement-in-if/0-opt.wgsl.expected.ir.fxc.hlsl b/test/tint/vk-gl-cts/graphicsfuzz/unreachable-discard-statement-in-if/0-opt.wgsl.expected.ir.fxc.hlsl
index 4a2c666..d1ee477 100644
--- a/test/tint/vk-gl-cts/graphicsfuzz/unreachable-discard-statement-in-if/0-opt.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/vk-gl-cts/graphicsfuzz/unreachable-discard-statement-in-if/0-opt.wgsl.expected.ir.fxc.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::LoadVectorElement
+..\..\src\tint\lang\core\ir\transform\demote_to_helper.cc:208 internal compiler error: TINT_UNREACHABLE unexpected non-core instruction
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/unreachable-loops/0-opt.spvasm.expected.ir.dxc.hlsl b/test/tint/vk-gl-cts/graphicsfuzz/unreachable-loops/0-opt.spvasm.expected.ir.dxc.hlsl
index bdeab23..8beacc2 100644
--- a/test/tint/vk-gl-cts/graphicsfuzz/unreachable-loops/0-opt.spvasm.expected.ir.dxc.hlsl
+++ b/test/tint/vk-gl-cts/graphicsfuzz/unreachable-loops/0-opt.spvasm.expected.ir.dxc.hlsl
@@ -1,9 +1,62 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:198 internal compiler error: Switch() matched no cases. Type: tint::core::ir::If
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct main_out {
+  float4 x_GLF_color_1;
+};
+
+struct main_outputs {
+  float4 main_out_x_GLF_color_1 : SV_Target0;
+};
+
+
+static float4 x_GLF_color = (0.0f).xxxx;
+cbuffer cbuffer_x_5 : register(b0) {
+  uint4 x_5[1];
+};
+void main_1() {
+  int m = 0;
+  x_GLF_color = float4(1.0f, 0.0f, 0.0f, 1.0f);
+  float v = asfloat(x_5[0u].x);
+  if ((v > asfloat(x_5[0u].y))) {
+    {
+      while(true) {
+        {
+          if (true) { break; }
+        }
+        continue;
+      }
+    }
+    m = 1;
+    {
+      while(true) {
+        if (true) {
+        } else {
+          break;
+        }
+        x_GLF_color = float4(1.0f, 0.0f, 0.0f, 1.0f);
+        {
+        }
+        continue;
+      }
+    }
+  }
+}
+
+main_out main_inner() {
+  main_1();
+  main_out v_1 = {x_GLF_color};
+  return v_1;
+}
+
+main_outputs main() {
+  main_out v_2 = main_inner();
+  main_outputs v_3 = {v_2.x_GLF_color_1};
+  return v_3;
+}
+
+DXC validation failure:
+error: validation errors
+hlsl.hlsl:49: error: Loop must have break.
+Validation failed.
+
+
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/unreachable-loops/0-opt.spvasm.expected.ir.fxc.hlsl b/test/tint/vk-gl-cts/graphicsfuzz/unreachable-loops/0-opt.spvasm.expected.ir.fxc.hlsl
index bdeab23..b6042a9 100644
--- a/test/tint/vk-gl-cts/graphicsfuzz/unreachable-loops/0-opt.spvasm.expected.ir.fxc.hlsl
+++ b/test/tint/vk-gl-cts/graphicsfuzz/unreachable-loops/0-opt.spvasm.expected.ir.fxc.hlsl
@@ -1,9 +1,60 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:198 internal compiler error: Switch() matched no cases. Type: tint::core::ir::If
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct main_out {
+  float4 x_GLF_color_1;
+};
+
+struct main_outputs {
+  float4 main_out_x_GLF_color_1 : SV_Target0;
+};
+
+
+static float4 x_GLF_color = (0.0f).xxxx;
+cbuffer cbuffer_x_5 : register(b0) {
+  uint4 x_5[1];
+};
+void main_1() {
+  int m = 0;
+  x_GLF_color = float4(1.0f, 0.0f, 0.0f, 1.0f);
+  float v = asfloat(x_5[0u].x);
+  if ((v > asfloat(x_5[0u].y))) {
+    {
+      while(true) {
+        {
+          if (true) { break; }
+        }
+        continue;
+      }
+    }
+    m = 1;
+    {
+      while(true) {
+        if (true) {
+        } else {
+          break;
+        }
+        x_GLF_color = float4(1.0f, 0.0f, 0.0f, 1.0f);
+        {
+        }
+        continue;
+      }
+    }
+  }
+}
+
+main_out main_inner() {
+  main_1();
+  main_out v_1 = {x_GLF_color};
+  return v_1;
+}
+
+main_outputs main() {
+  main_out v_2 = main_inner();
+  main_outputs v_3 = {v_2.x_GLF_color_1};
+  return v_3;
+}
+
+FXC validation failure:
+c:\src\dawn\Shader@0x000002A68631C820(20,7-17): warning X3557: loop only executes for 0 iteration(s), forcing loop to unroll
+c:\src\dawn\Shader@0x000002A68631C820(29,13-16): error X3696: infinite loop detected - loop never exits
+
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/unreachable-loops/0-opt.wgsl.expected.ir.dxc.hlsl b/test/tint/vk-gl-cts/graphicsfuzz/unreachable-loops/0-opt.wgsl.expected.ir.dxc.hlsl
index 4a2c666..3b7d96a 100644
--- a/test/tint/vk-gl-cts/graphicsfuzz/unreachable-loops/0-opt.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/vk-gl-cts/graphicsfuzz/unreachable-loops/0-opt.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,63 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::LoadVectorElement
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct main_out {
+  float4 x_GLF_color_1;
+};
+
+struct main_outputs {
+  float4 main_out_x_GLF_color_1 : SV_Target0;
+};
+
+
+static float4 x_GLF_color = (0.0f).xxxx;
+cbuffer cbuffer_x_5 : register(b0) {
+  uint4 x_5[1];
+};
+void main_1() {
+  int m = 0;
+  x_GLF_color = float4(1.0f, 0.0f, 0.0f, 1.0f);
+  float x_30 = asfloat(x_5[0u].x);
+  float x_32 = asfloat(x_5[0u].y);
+  if ((x_30 > x_32)) {
+    {
+      while(true) {
+        {
+          if (true) { break; }
+        }
+        continue;
+      }
+    }
+    m = 1;
+    {
+      while(true) {
+        if (true) {
+        } else {
+          break;
+        }
+        x_GLF_color = float4(1.0f, 0.0f, 0.0f, 1.0f);
+        {
+        }
+        continue;
+      }
+    }
+  }
+}
+
+main_out main_inner() {
+  main_1();
+  main_out v = {x_GLF_color};
+  return v;
+}
+
+main_outputs main() {
+  main_out v_1 = main_inner();
+  main_outputs v_2 = {v_1.x_GLF_color_1};
+  return v_2;
+}
+
+DXC validation failure:
+error: validation errors
+hlsl.hlsl:50: error: Loop must have break.
+Validation failed.
+
+
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/unreachable-loops/0-opt.wgsl.expected.ir.fxc.hlsl b/test/tint/vk-gl-cts/graphicsfuzz/unreachable-loops/0-opt.wgsl.expected.ir.fxc.hlsl
index 4a2c666..ee1efa8 100644
--- a/test/tint/vk-gl-cts/graphicsfuzz/unreachable-loops/0-opt.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/vk-gl-cts/graphicsfuzz/unreachable-loops/0-opt.wgsl.expected.ir.fxc.hlsl
@@ -1,9 +1,61 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::LoadVectorElement
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct main_out {
+  float4 x_GLF_color_1;
+};
+
+struct main_outputs {
+  float4 main_out_x_GLF_color_1 : SV_Target0;
+};
+
+
+static float4 x_GLF_color = (0.0f).xxxx;
+cbuffer cbuffer_x_5 : register(b0) {
+  uint4 x_5[1];
+};
+void main_1() {
+  int m = 0;
+  x_GLF_color = float4(1.0f, 0.0f, 0.0f, 1.0f);
+  float x_30 = asfloat(x_5[0u].x);
+  float x_32 = asfloat(x_5[0u].y);
+  if ((x_30 > x_32)) {
+    {
+      while(true) {
+        {
+          if (true) { break; }
+        }
+        continue;
+      }
+    }
+    m = 1;
+    {
+      while(true) {
+        if (true) {
+        } else {
+          break;
+        }
+        x_GLF_color = float4(1.0f, 0.0f, 0.0f, 1.0f);
+        {
+        }
+        continue;
+      }
+    }
+  }
+}
+
+main_out main_inner() {
+  main_1();
+  main_out v = {x_GLF_color};
+  return v;
+}
+
+main_outputs main() {
+  main_out v_1 = main_inner();
+  main_outputs v_2 = {v_1.x_GLF_color_1};
+  return v_2;
+}
+
+FXC validation failure:
+c:\src\dawn\Shader@0x0000016D4CA0CBC0(21,7-17): warning X3557: loop only executes for 0 iteration(s), forcing loop to unroll
+c:\src\dawn\Shader@0x0000016D4CA0CBC0(30,13-16): error X3696: infinite loop detected - loop never exits
+
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/unreachable-return-in-loop/0.spvasm.expected.ir.dxc.hlsl b/test/tint/vk-gl-cts/graphicsfuzz/unreachable-return-in-loop/0.spvasm.expected.ir.dxc.hlsl
deleted file mode 100644
index adbb0c1..0000000
--- a/test/tint/vk-gl-cts/graphicsfuzz/unreachable-return-in-loop/0.spvasm.expected.ir.dxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:198 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Loop
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/unreachable-return-in-loop/0.spvasm.expected.ir.fxc.hlsl b/test/tint/vk-gl-cts/graphicsfuzz/unreachable-return-in-loop/0.spvasm.expected.ir.fxc.hlsl
deleted file mode 100644
index adbb0c1..0000000
--- a/test/tint/vk-gl-cts/graphicsfuzz/unreachable-return-in-loop/0.spvasm.expected.ir.fxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:198 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Loop
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/unreachable-return-in-loop/0.wgsl.expected.ir.dxc.hlsl b/test/tint/vk-gl-cts/graphicsfuzz/unreachable-return-in-loop/0.wgsl.expected.ir.dxc.hlsl
deleted file mode 100644
index adbb0c1..0000000
--- a/test/tint/vk-gl-cts/graphicsfuzz/unreachable-return-in-loop/0.wgsl.expected.ir.dxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:198 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Loop
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/unreachable-return-in-loop/0.wgsl.expected.ir.fxc.hlsl b/test/tint/vk-gl-cts/graphicsfuzz/unreachable-return-in-loop/0.wgsl.expected.ir.fxc.hlsl
deleted file mode 100644
index adbb0c1..0000000
--- a/test/tint/vk-gl-cts/graphicsfuzz/unreachable-return-in-loop/0.wgsl.expected.ir.fxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:198 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Loop
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/uv-value-comparison-as-boolean/0.spvasm.expected.ir.dxc.hlsl b/test/tint/vk-gl-cts/graphicsfuzz/uv-value-comparison-as-boolean/0.spvasm.expected.ir.dxc.hlsl
deleted file mode 100644
index 4a2c666..0000000
--- a/test/tint/vk-gl-cts/graphicsfuzz/uv-value-comparison-as-boolean/0.spvasm.expected.ir.dxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::LoadVectorElement
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/uv-value-comparison-as-boolean/0.spvasm.expected.ir.fxc.hlsl b/test/tint/vk-gl-cts/graphicsfuzz/uv-value-comparison-as-boolean/0.spvasm.expected.ir.fxc.hlsl
deleted file mode 100644
index 4a2c666..0000000
--- a/test/tint/vk-gl-cts/graphicsfuzz/uv-value-comparison-as-boolean/0.spvasm.expected.ir.fxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::LoadVectorElement
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/uv-value-comparison-as-boolean/0.wgsl.expected.ir.dxc.hlsl b/test/tint/vk-gl-cts/graphicsfuzz/uv-value-comparison-as-boolean/0.wgsl.expected.ir.dxc.hlsl
deleted file mode 100644
index 4a2c666..0000000
--- a/test/tint/vk-gl-cts/graphicsfuzz/uv-value-comparison-as-boolean/0.wgsl.expected.ir.dxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::LoadVectorElement
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/uv-value-comparison-as-boolean/0.wgsl.expected.ir.fxc.hlsl b/test/tint/vk-gl-cts/graphicsfuzz/uv-value-comparison-as-boolean/0.wgsl.expected.ir.fxc.hlsl
deleted file mode 100644
index 4a2c666..0000000
--- a/test/tint/vk-gl-cts/graphicsfuzz/uv-value-comparison-as-boolean/0.wgsl.expected.ir.fxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::LoadVectorElement
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/vector-values-multiplied-by-fragcoord/0-opt.spvasm.expected.ir.dxc.hlsl b/test/tint/vk-gl-cts/graphicsfuzz/vector-values-multiplied-by-fragcoord/0-opt.spvasm.expected.ir.dxc.hlsl
deleted file mode 100644
index 4a2c666..0000000
--- a/test/tint/vk-gl-cts/graphicsfuzz/vector-values-multiplied-by-fragcoord/0-opt.spvasm.expected.ir.dxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::LoadVectorElement
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/vector-values-multiplied-by-fragcoord/0-opt.spvasm.expected.ir.fxc.hlsl b/test/tint/vk-gl-cts/graphicsfuzz/vector-values-multiplied-by-fragcoord/0-opt.spvasm.expected.ir.fxc.hlsl
deleted file mode 100644
index 4a2c666..0000000
--- a/test/tint/vk-gl-cts/graphicsfuzz/vector-values-multiplied-by-fragcoord/0-opt.spvasm.expected.ir.fxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::LoadVectorElement
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/vector-values-multiplied-by-fragcoord/0-opt.wgsl.expected.ir.dxc.hlsl b/test/tint/vk-gl-cts/graphicsfuzz/vector-values-multiplied-by-fragcoord/0-opt.wgsl.expected.ir.dxc.hlsl
deleted file mode 100644
index 4a2c666..0000000
--- a/test/tint/vk-gl-cts/graphicsfuzz/vector-values-multiplied-by-fragcoord/0-opt.wgsl.expected.ir.dxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::LoadVectorElement
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/vector-values-multiplied-by-fragcoord/0-opt.wgsl.expected.ir.fxc.hlsl b/test/tint/vk-gl-cts/graphicsfuzz/vector-values-multiplied-by-fragcoord/0-opt.wgsl.expected.ir.fxc.hlsl
deleted file mode 100644
index 4a2c666..0000000
--- a/test/tint/vk-gl-cts/graphicsfuzz/vector-values-multiplied-by-fragcoord/0-opt.wgsl.expected.ir.fxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::LoadVectorElement
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/vectors-and-discard-in-function/0.spvasm.expected.ir.dxc.hlsl b/test/tint/vk-gl-cts/graphicsfuzz/vectors-and-discard-in-function/0.spvasm.expected.ir.dxc.hlsl
deleted file mode 100644
index bdeab23..0000000
--- a/test/tint/vk-gl-cts/graphicsfuzz/vectors-and-discard-in-function/0.spvasm.expected.ir.dxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:198 internal compiler error: Switch() matched no cases. Type: tint::core::ir::If
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/vectors-and-discard-in-function/0.spvasm.expected.ir.fxc.hlsl b/test/tint/vk-gl-cts/graphicsfuzz/vectors-and-discard-in-function/0.spvasm.expected.ir.fxc.hlsl
deleted file mode 100644
index bdeab23..0000000
--- a/test/tint/vk-gl-cts/graphicsfuzz/vectors-and-discard-in-function/0.spvasm.expected.ir.fxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:198 internal compiler error: Switch() matched no cases. Type: tint::core::ir::If
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/vectors-and-discard-in-function/0.wgsl.expected.ir.dxc.hlsl b/test/tint/vk-gl-cts/graphicsfuzz/vectors-and-discard-in-function/0.wgsl.expected.ir.dxc.hlsl
deleted file mode 100644
index 4a2c666..0000000
--- a/test/tint/vk-gl-cts/graphicsfuzz/vectors-and-discard-in-function/0.wgsl.expected.ir.dxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::LoadVectorElement
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/vectors-and-discard-in-function/0.wgsl.expected.ir.fxc.hlsl b/test/tint/vk-gl-cts/graphicsfuzz/vectors-and-discard-in-function/0.wgsl.expected.ir.fxc.hlsl
deleted file mode 100644
index 4a2c666..0000000
--- a/test/tint/vk-gl-cts/graphicsfuzz/vectors-and-discard-in-function/0.wgsl.expected.ir.fxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::LoadVectorElement
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/while-function-always-false/0-opt.spvasm.expected.ir.dxc.hlsl b/test/tint/vk-gl-cts/graphicsfuzz/while-function-always-false/0-opt.spvasm.expected.ir.dxc.hlsl
deleted file mode 100644
index adbb0c1..0000000
--- a/test/tint/vk-gl-cts/graphicsfuzz/while-function-always-false/0-opt.spvasm.expected.ir.dxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:198 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Loop
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/while-function-always-false/0-opt.spvasm.expected.ir.fxc.hlsl b/test/tint/vk-gl-cts/graphicsfuzz/while-function-always-false/0-opt.spvasm.expected.ir.fxc.hlsl
deleted file mode 100644
index adbb0c1..0000000
--- a/test/tint/vk-gl-cts/graphicsfuzz/while-function-always-false/0-opt.spvasm.expected.ir.fxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:198 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Loop
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/while-function-always-false/0-opt.wgsl.expected.ir.dxc.hlsl b/test/tint/vk-gl-cts/graphicsfuzz/while-function-always-false/0-opt.wgsl.expected.ir.dxc.hlsl
deleted file mode 100644
index adbb0c1..0000000
--- a/test/tint/vk-gl-cts/graphicsfuzz/while-function-always-false/0-opt.wgsl.expected.ir.dxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:198 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Loop
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/while-function-always-false/0-opt.wgsl.expected.ir.fxc.hlsl b/test/tint/vk-gl-cts/graphicsfuzz/while-function-always-false/0-opt.wgsl.expected.ir.fxc.hlsl
deleted file mode 100644
index adbb0c1..0000000
--- a/test/tint/vk-gl-cts/graphicsfuzz/while-function-always-false/0-opt.wgsl.expected.ir.fxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:198 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Loop
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/write-before-break/0-opt.spvasm.expected.ir.dxc.hlsl b/test/tint/vk-gl-cts/graphicsfuzz/write-before-break/0-opt.spvasm.expected.ir.dxc.hlsl
index adbb0c1..0fdc71f 100644
--- a/test/tint/vk-gl-cts/graphicsfuzz/write-before-break/0-opt.spvasm.expected.ir.dxc.hlsl
+++ b/test/tint/vk-gl-cts/graphicsfuzz/write-before-break/0-opt.spvasm.expected.ir.dxc.hlsl
@@ -1,9 +1,112 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:198 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Loop
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct main_out {
+  float4 x_GLF_color_1;
+};
+
+struct main_outputs {
+  float4 main_out_x_GLF_color_1 : SV_Target0;
+};
+
+
+cbuffer cbuffer_x_9 : register(b0) {
+  uint4 x_9[1];
+};
+static float4 x_GLF_color = (0.0f).xxxx;
+void main_1() {
+  int idx = 0;
+  float4x3 m43 = float4x3((0.0f).xxx, (0.0f).xxx, (0.0f).xxx, (0.0f).xxx);
+  int ll_1 = 0;
+  int GLF_live6rows = 0;
+  int z = 0;
+  int ll_2 = 0;
+  int ctr = 0;
+  float4x3 tempm43 = float4x3((0.0f).xxx, (0.0f).xxx, (0.0f).xxx, (0.0f).xxx);
+  int ll_3 = 0;
+  int c = 0;
+  int d = 0;
+  float GLF_live6sums[9] = (float[9])0;
+  idx = 0;
+  m43 = float4x3(float3(1.0f, 0.0f, 0.0f), float3(0.0f, 1.0f, 0.0f), float3(0.0f, 0.0f, 1.0f), (0.0f).xxx);
+  ll_1 = 0;
+  GLF_live6rows = 2;
+  {
+    while(true) {
+      int v = ll_1;
+      if ((v >= asint(x_9[0u].x))) {
+        x_GLF_color = float4(1.0f, 0.0f, 0.0f, 1.0f);
+        break;
+      }
+      ll_1 = (ll_1 + 1);
+      z = asint(x_9[0u].x);
+      ll_2 = 0;
+      ctr = 0;
+      {
+        while(true) {
+          if ((ctr < 1)) {
+          } else {
+            break;
+          }
+          int v_1 = ll_2;
+          if ((v_1 >= asint(x_9[0u].x))) {
+            break;
+          }
+          ll_2 = (ll_2 + 1);
+          tempm43 = m43;
+          ll_3 = 0;
+          c = 0;
+          {
+            while(true) {
+              if ((1 < z)) {
+              } else {
+                break;
+              }
+              d = 0;
+              int x_29 = c;
+              int x_30 = c;
+              int x_31 = c;
+              int x_32 = d;
+              int x_33 = d;
+              int x_34 = d;
+              float3 v_2 = tempm43[((((x_29 >= 0) & (x_30 < 4))) ? (x_31) : (0))];
+              v_2[((((x_32 >= 0) & (x_33 < 3))) ? (x_34) : (0))] = 1.0f;
+              {
+                c = (c + 1);
+              }
+              continue;
+            }
+          }
+          int x_117 = ((((idx >= 0) & (idx < 9))) ? (idx) : (0));
+          GLF_live6sums[x_117] = (GLF_live6sums[x_117] + m43[ctr].y);
+          {
+            ctr = (ctr + 1);
+          }
+          continue;
+        }
+      }
+      idx = (idx + 1);
+      {
+      }
+      continue;
+    }
+  }
+}
+
+main_out main_inner() {
+  main_1();
+  main_out v_3 = {x_GLF_color};
+  return v_3;
+}
+
+main_outputs main() {
+  main_out v_4 = main_inner();
+  main_outputs v_5 = {v_4.x_GLF_color_1};
+  return v_5;
+}
+
+DXC validation failure:
+error: validation errors
+hlsl.hlsl:99: error: Loop must have break.
+Validation failed.
+
+
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/write-before-break/0-opt.spvasm.expected.ir.fxc.hlsl b/test/tint/vk-gl-cts/graphicsfuzz/write-before-break/0-opt.spvasm.expected.ir.fxc.hlsl
deleted file mode 100644
index adbb0c1..0000000
--- a/test/tint/vk-gl-cts/graphicsfuzz/write-before-break/0-opt.spvasm.expected.ir.fxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:198 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Loop
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/write-before-break/0-opt.wgsl.expected.ir.dxc.hlsl b/test/tint/vk-gl-cts/graphicsfuzz/write-before-break/0-opt.wgsl.expected.ir.dxc.hlsl
index adbb0c1..1e7d216 100644
--- a/test/tint/vk-gl-cts/graphicsfuzz/write-before-break/0-opt.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/vk-gl-cts/graphicsfuzz/write-before-break/0-opt.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,129 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:198 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Loop
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+struct main_out {
+  float4 x_GLF_color_1;
+};
+
+struct main_outputs {
+  float4 main_out_x_GLF_color_1 : SV_Target0;
+};
+
+
+cbuffer cbuffer_x_9 : register(b0) {
+  uint4 x_9[1];
+};
+static float4 x_GLF_color = (0.0f).xxxx;
+void main_1() {
+  int idx = 0;
+  float4x3 m43 = float4x3((0.0f).xxx, (0.0f).xxx, (0.0f).xxx, (0.0f).xxx);
+  int ll_1 = 0;
+  int GLF_live6rows = 0;
+  int z = 0;
+  int ll_2 = 0;
+  int ctr = 0;
+  float4x3 tempm43 = float4x3((0.0f).xxx, (0.0f).xxx, (0.0f).xxx, (0.0f).xxx);
+  int ll_3 = 0;
+  int c = 0;
+  int d = 0;
+  float GLF_live6sums[9] = (float[9])0;
+  idx = 0;
+  m43 = float4x3(float3(1.0f, 0.0f, 0.0f), float3(0.0f, 1.0f, 0.0f), float3(0.0f, 0.0f, 1.0f), (0.0f).xxx);
+  ll_1 = 0;
+  GLF_live6rows = 2;
+  {
+    while(true) {
+      int x_18 = ll_1;
+      int x_19 = asint(x_9[0u].x);
+      if ((x_18 >= x_19)) {
+        x_GLF_color = float4(1.0f, 0.0f, 0.0f, 1.0f);
+        break;
+      }
+      int x_20 = ll_1;
+      ll_1 = (x_20 + 1);
+      int x_22 = asint(x_9[0u].x);
+      z = x_22;
+      ll_2 = 0;
+      ctr = 0;
+      {
+        while(true) {
+          int x_23 = ctr;
+          if ((x_23 < 1)) {
+          } else {
+            break;
+          }
+          int x_24 = ll_2;
+          int x_25 = asint(x_9[0u].x);
+          if ((x_24 >= x_25)) {
+            break;
+          }
+          int x_26 = ll_2;
+          ll_2 = (x_26 + 1);
+          float4x3 x_98 = m43;
+          tempm43 = x_98;
+          ll_3 = 0;
+          c = 0;
+          {
+            while(true) {
+              int x_28 = z;
+              if ((1 < x_28)) {
+              } else {
+                break;
+              }
+              d = 0;
+              int x_29 = c;
+              int x_30 = c;
+              int x_31 = c;
+              int x_32 = d;
+              int x_33 = d;
+              int x_34 = d;
+              float3 v = tempm43[((((x_29 >= 0) & (x_30 < 4))) ? (x_31) : (0))];
+              v[((((x_32 >= 0) & (x_33 < 3))) ? (x_34) : (0))] = 1.0f;
+              {
+                int x_35 = c;
+                c = (x_35 + 1);
+              }
+              continue;
+            }
+          }
+          int x_37 = idx;
+          int x_38 = idx;
+          int x_39 = idx;
+          int x_117 = ((((x_37 >= 0) & (x_38 < 9))) ? (x_39) : (0));
+          int x_40 = ctr;
+          float x_119 = m43[x_40].y;
+          float x_121 = GLF_live6sums[x_117];
+          GLF_live6sums[x_117] = (x_121 + x_119);
+          {
+            int x_41 = ctr;
+            ctr = (x_41 + 1);
+          }
+          continue;
+        }
+      }
+      int x_43 = idx;
+      idx = (x_43 + 1);
+      {
+      }
+      continue;
+    }
+  }
+}
+
+main_out main_inner() {
+  main_1();
+  main_out v_1 = {x_GLF_color};
+  return v_1;
+}
+
+main_outputs main() {
+  main_out v_2 = main_inner();
+  main_outputs v_3 = {v_2.x_GLF_color_1};
+  return v_3;
+}
+
+DXC validation failure:
+error: validation errors
+hlsl.hlsl:116: error: Loop must have break.
+Validation failed.
+
+
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/write-before-break/0-opt.wgsl.expected.ir.fxc.hlsl b/test/tint/vk-gl-cts/graphicsfuzz/write-before-break/0-opt.wgsl.expected.ir.fxc.hlsl
deleted file mode 100644
index adbb0c1..0000000
--- a/test/tint/vk-gl-cts/graphicsfuzz/write-before-break/0-opt.wgsl.expected.ir.fxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:198 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Loop
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/write-red-after-search/0-opt.spvasm.expected.ir.dxc.hlsl b/test/tint/vk-gl-cts/graphicsfuzz/write-red-after-search/0-opt.spvasm.expected.ir.dxc.hlsl
deleted file mode 100644
index 3f437dc..0000000
--- a/test/tint/vk-gl-cts/graphicsfuzz/write-red-after-search/0-opt.spvasm.expected.ir.dxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Access
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/write-red-after-search/0-opt.spvasm.expected.ir.fxc.hlsl b/test/tint/vk-gl-cts/graphicsfuzz/write-red-after-search/0-opt.spvasm.expected.ir.fxc.hlsl
deleted file mode 100644
index 3f437dc..0000000
--- a/test/tint/vk-gl-cts/graphicsfuzz/write-red-after-search/0-opt.spvasm.expected.ir.fxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Access
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/write-red-after-search/0-opt.wgsl.expected.ir.dxc.hlsl b/test/tint/vk-gl-cts/graphicsfuzz/write-red-after-search/0-opt.wgsl.expected.ir.dxc.hlsl
deleted file mode 100644
index 6b047b4..0000000
--- a/test/tint/vk-gl-cts/graphicsfuzz/write-red-after-search/0-opt.wgsl.expected.ir.dxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:287 internal compiler error: Switch() matched no cases. Type: tint::core::ir::FunctionParam
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/write-red-after-search/0-opt.wgsl.expected.ir.fxc.hlsl b/test/tint/vk-gl-cts/graphicsfuzz/write-red-after-search/0-opt.wgsl.expected.ir.fxc.hlsl
deleted file mode 100644
index 6b047b4..0000000
--- a/test/tint/vk-gl-cts/graphicsfuzz/write-red-after-search/0-opt.wgsl.expected.ir.fxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:287 internal compiler error: Switch() matched no cases. Type: tint::core::ir::FunctionParam
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/write-red-in-loop-nest/0-opt.spvasm.expected.ir.dxc.hlsl b/test/tint/vk-gl-cts/graphicsfuzz/write-red-in-loop-nest/0-opt.spvasm.expected.ir.dxc.hlsl
deleted file mode 100644
index adbb0c1..0000000
--- a/test/tint/vk-gl-cts/graphicsfuzz/write-red-in-loop-nest/0-opt.spvasm.expected.ir.dxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:198 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Loop
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/write-red-in-loop-nest/0-opt.spvasm.expected.ir.fxc.hlsl b/test/tint/vk-gl-cts/graphicsfuzz/write-red-in-loop-nest/0-opt.spvasm.expected.ir.fxc.hlsl
deleted file mode 100644
index adbb0c1..0000000
--- a/test/tint/vk-gl-cts/graphicsfuzz/write-red-in-loop-nest/0-opt.spvasm.expected.ir.fxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:198 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Loop
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/write-red-in-loop-nest/0-opt.wgsl.expected.ir.dxc.hlsl b/test/tint/vk-gl-cts/graphicsfuzz/write-red-in-loop-nest/0-opt.wgsl.expected.ir.dxc.hlsl
deleted file mode 100644
index adbb0c1..0000000
--- a/test/tint/vk-gl-cts/graphicsfuzz/write-red-in-loop-nest/0-opt.wgsl.expected.ir.dxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:198 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Loop
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/write-red-in-loop-nest/0-opt.wgsl.expected.ir.fxc.hlsl b/test/tint/vk-gl-cts/graphicsfuzz/write-red-in-loop-nest/0-opt.wgsl.expected.ir.fxc.hlsl
deleted file mode 100644
index adbb0c1..0000000
--- a/test/tint/vk-gl-cts/graphicsfuzz/write-red-in-loop-nest/0-opt.wgsl.expected.ir.fxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:198 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Loop
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/wrong-color-in-always-false-if/0-opt.spvasm.expected.ir.dxc.hlsl b/test/tint/vk-gl-cts/graphicsfuzz/wrong-color-in-always-false-if/0-opt.spvasm.expected.ir.dxc.hlsl
deleted file mode 100644
index bdeab23..0000000
--- a/test/tint/vk-gl-cts/graphicsfuzz/wrong-color-in-always-false-if/0-opt.spvasm.expected.ir.dxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:198 internal compiler error: Switch() matched no cases. Type: tint::core::ir::If
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/wrong-color-in-always-false-if/0-opt.spvasm.expected.ir.fxc.hlsl b/test/tint/vk-gl-cts/graphicsfuzz/wrong-color-in-always-false-if/0-opt.spvasm.expected.ir.fxc.hlsl
deleted file mode 100644
index bdeab23..0000000
--- a/test/tint/vk-gl-cts/graphicsfuzz/wrong-color-in-always-false-if/0-opt.spvasm.expected.ir.fxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:198 internal compiler error: Switch() matched no cases. Type: tint::core::ir::If
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/wrong-color-in-always-false-if/0-opt.wgsl.expected.ir.dxc.hlsl b/test/tint/vk-gl-cts/graphicsfuzz/wrong-color-in-always-false-if/0-opt.wgsl.expected.ir.dxc.hlsl
deleted file mode 100644
index 4a2c666..0000000
--- a/test/tint/vk-gl-cts/graphicsfuzz/wrong-color-in-always-false-if/0-opt.wgsl.expected.ir.dxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::LoadVectorElement
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/wrong-color-in-always-false-if/0-opt.wgsl.expected.ir.fxc.hlsl b/test/tint/vk-gl-cts/graphicsfuzz/wrong-color-in-always-false-if/0-opt.wgsl.expected.ir.fxc.hlsl
deleted file mode 100644
index 4a2c666..0000000
--- a/test/tint/vk-gl-cts/graphicsfuzz/wrong-color-in-always-false-if/0-opt.wgsl.expected.ir.fxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::LoadVectorElement
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/vk-gl-cts/non_robust_buffer_access/unexecuted_oob_overflow/0-opt.spvasm.expected.ir.dxc.hlsl b/test/tint/vk-gl-cts/non_robust_buffer_access/unexecuted_oob_overflow/0-opt.spvasm.expected.ir.dxc.hlsl
deleted file mode 100644
index 3f437dc..0000000
--- a/test/tint/vk-gl-cts/non_robust_buffer_access/unexecuted_oob_overflow/0-opt.spvasm.expected.ir.dxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Access
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/vk-gl-cts/non_robust_buffer_access/unexecuted_oob_overflow/0-opt.spvasm.expected.ir.fxc.hlsl b/test/tint/vk-gl-cts/non_robust_buffer_access/unexecuted_oob_overflow/0-opt.spvasm.expected.ir.fxc.hlsl
deleted file mode 100644
index 3f437dc..0000000
--- a/test/tint/vk-gl-cts/non_robust_buffer_access/unexecuted_oob_overflow/0-opt.spvasm.expected.ir.fxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Access
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/vk-gl-cts/non_robust_buffer_access/unexecuted_oob_overflow/0-opt.wgsl.expected.ir.dxc.hlsl b/test/tint/vk-gl-cts/non_robust_buffer_access/unexecuted_oob_overflow/0-opt.wgsl.expected.ir.dxc.hlsl
deleted file mode 100644
index 4a2c666..0000000
--- a/test/tint/vk-gl-cts/non_robust_buffer_access/unexecuted_oob_overflow/0-opt.wgsl.expected.ir.dxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::LoadVectorElement
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/vk-gl-cts/non_robust_buffer_access/unexecuted_oob_overflow/0-opt.wgsl.expected.ir.fxc.hlsl b/test/tint/vk-gl-cts/non_robust_buffer_access/unexecuted_oob_overflow/0-opt.wgsl.expected.ir.fxc.hlsl
deleted file mode 100644
index 4a2c666..0000000
--- a/test/tint/vk-gl-cts/non_robust_buffer_access/unexecuted_oob_overflow/0-opt.wgsl.expected.ir.fxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::LoadVectorElement
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/vk-gl-cts/non_robust_buffer_access/unexecuted_oob_underflow/0-opt.spvasm.expected.ir.dxc.hlsl b/test/tint/vk-gl-cts/non_robust_buffer_access/unexecuted_oob_underflow/0-opt.spvasm.expected.ir.dxc.hlsl
deleted file mode 100644
index 3f437dc..0000000
--- a/test/tint/vk-gl-cts/non_robust_buffer_access/unexecuted_oob_underflow/0-opt.spvasm.expected.ir.dxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Access
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/vk-gl-cts/non_robust_buffer_access/unexecuted_oob_underflow/0-opt.spvasm.expected.ir.fxc.hlsl b/test/tint/vk-gl-cts/non_robust_buffer_access/unexecuted_oob_underflow/0-opt.spvasm.expected.ir.fxc.hlsl
deleted file mode 100644
index 3f437dc..0000000
--- a/test/tint/vk-gl-cts/non_robust_buffer_access/unexecuted_oob_underflow/0-opt.spvasm.expected.ir.fxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Access
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/vk-gl-cts/non_robust_buffer_access/unexecuted_oob_underflow/0-opt.wgsl.expected.ir.dxc.hlsl b/test/tint/vk-gl-cts/non_robust_buffer_access/unexecuted_oob_underflow/0-opt.wgsl.expected.ir.dxc.hlsl
deleted file mode 100644
index 4a2c666..0000000
--- a/test/tint/vk-gl-cts/non_robust_buffer_access/unexecuted_oob_underflow/0-opt.wgsl.expected.ir.dxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::LoadVectorElement
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/vk-gl-cts/non_robust_buffer_access/unexecuted_oob_underflow/0-opt.wgsl.expected.ir.fxc.hlsl b/test/tint/vk-gl-cts/non_robust_buffer_access/unexecuted_oob_underflow/0-opt.wgsl.expected.ir.fxc.hlsl
deleted file mode 100644
index 4a2c666..0000000
--- a/test/tint/vk-gl-cts/non_robust_buffer_access/unexecuted_oob_underflow/0-opt.wgsl.expected.ir.fxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::LoadVectorElement
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/vk-gl-cts/rasterization/line_continuity/line-strip/0.spvasm.expected.ir.dxc.hlsl b/test/tint/vk-gl-cts/rasterization/line_continuity/line-strip/0.spvasm.expected.ir.dxc.hlsl
deleted file mode 100644
index c6e1d96..0000000
--- a/test/tint/vk-gl-cts/rasterization/line_continuity/line-strip/0.spvasm.expected.ir.dxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Construct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/vk-gl-cts/rasterization/line_continuity/line-strip/0.spvasm.expected.ir.fxc.hlsl b/test/tint/vk-gl-cts/rasterization/line_continuity/line-strip/0.spvasm.expected.ir.fxc.hlsl
deleted file mode 100644
index c6e1d96..0000000
--- a/test/tint/vk-gl-cts/rasterization/line_continuity/line-strip/0.spvasm.expected.ir.fxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Construct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/vk-gl-cts/rasterization/line_continuity/line-strip/0.wgsl.expected.ir.dxc.hlsl b/test/tint/vk-gl-cts/rasterization/line_continuity/line-strip/0.wgsl.expected.ir.dxc.hlsl
deleted file mode 100644
index c6e1d96..0000000
--- a/test/tint/vk-gl-cts/rasterization/line_continuity/line-strip/0.wgsl.expected.ir.dxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Construct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/vk-gl-cts/rasterization/line_continuity/line-strip/0.wgsl.expected.ir.fxc.hlsl b/test/tint/vk-gl-cts/rasterization/line_continuity/line-strip/0.wgsl.expected.ir.fxc.hlsl
deleted file mode 100644
index c6e1d96..0000000
--- a/test/tint/vk-gl-cts/rasterization/line_continuity/line-strip/0.wgsl.expected.ir.fxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Construct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/vk-gl-cts/rasterization/line_continuity/line-strip/1.spvasm.expected.ir.dxc.hlsl b/test/tint/vk-gl-cts/rasterization/line_continuity/line-strip/1.spvasm.expected.ir.dxc.hlsl
deleted file mode 100644
index fd28383..0000000
--- a/test/tint/vk-gl-cts/rasterization/line_continuity/line-strip/1.spvasm.expected.ir.dxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureLoad
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/vk-gl-cts/rasterization/line_continuity/line-strip/1.spvasm.expected.ir.fxc.hlsl b/test/tint/vk-gl-cts/rasterization/line_continuity/line-strip/1.spvasm.expected.ir.fxc.hlsl
deleted file mode 100644
index fd28383..0000000
--- a/test/tint/vk-gl-cts/rasterization/line_continuity/line-strip/1.spvasm.expected.ir.fxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureLoad
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/vk-gl-cts/rasterization/line_continuity/line-strip/1.wgsl.expected.ir.dxc.hlsl b/test/tint/vk-gl-cts/rasterization/line_continuity/line-strip/1.wgsl.expected.ir.dxc.hlsl
deleted file mode 100644
index fd28383..0000000
--- a/test/tint/vk-gl-cts/rasterization/line_continuity/line-strip/1.wgsl.expected.ir.dxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureLoad
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/vk-gl-cts/rasterization/line_continuity/line-strip/1.wgsl.expected.ir.fxc.hlsl b/test/tint/vk-gl-cts/rasterization/line_continuity/line-strip/1.wgsl.expected.ir.fxc.hlsl
deleted file mode 100644
index fd28383..0000000
--- a/test/tint/vk-gl-cts/rasterization/line_continuity/line-strip/1.wgsl.expected.ir.fxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:400 internal compiler error: TINT_UNREACHABLE unhandled: textureLoad
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/vk-gl-cts/spirv_assembly/instruction/compute/arraylength/array-stride-larger-than-element-size/1.spvasm.expected.ir.dxc.hlsl b/test/tint/vk-gl-cts/spirv_assembly/instruction/compute/arraylength/array-stride-larger-than-element-size/1.spvasm.expected.ir.dxc.hlsl
deleted file mode 100644
index 3f437dc..0000000
--- a/test/tint/vk-gl-cts/spirv_assembly/instruction/compute/arraylength/array-stride-larger-than-element-size/1.spvasm.expected.ir.dxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Access
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/vk-gl-cts/spirv_assembly/instruction/compute/arraylength/array-stride-larger-than-element-size/1.spvasm.expected.ir.fxc.hlsl b/test/tint/vk-gl-cts/spirv_assembly/instruction/compute/arraylength/array-stride-larger-than-element-size/1.spvasm.expected.ir.fxc.hlsl
deleted file mode 100644
index 3f437dc..0000000
--- a/test/tint/vk-gl-cts/spirv_assembly/instruction/compute/arraylength/array-stride-larger-than-element-size/1.spvasm.expected.ir.fxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Access
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/vk-gl-cts/spirv_assembly/instruction/compute/arraylength/array-stride-larger-than-element-size/1.wgsl.expected.ir.dxc.hlsl b/test/tint/vk-gl-cts/spirv_assembly/instruction/compute/arraylength/array-stride-larger-than-element-size/1.wgsl.expected.ir.dxc.hlsl
deleted file mode 100644
index 3f437dc..0000000
--- a/test/tint/vk-gl-cts/spirv_assembly/instruction/compute/arraylength/array-stride-larger-than-element-size/1.wgsl.expected.ir.dxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Access
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/vk-gl-cts/spirv_assembly/instruction/compute/arraylength/array-stride-larger-than-element-size/1.wgsl.expected.ir.fxc.hlsl b/test/tint/vk-gl-cts/spirv_assembly/instruction/compute/arraylength/array-stride-larger-than-element-size/1.wgsl.expected.ir.fxc.hlsl
deleted file mode 100644
index 3f437dc..0000000
--- a/test/tint/vk-gl-cts/spirv_assembly/instruction/compute/arraylength/array-stride-larger-than-element-size/1.wgsl.expected.ir.fxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Access
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/vk-gl-cts/spirv_assembly/instruction/compute/signed_int_compare/uint_sgreaterthan/0.spvasm.expected.ir.dxc.hlsl b/test/tint/vk-gl-cts/spirv_assembly/instruction/compute/signed_int_compare/uint_sgreaterthan/0.spvasm.expected.ir.dxc.hlsl
deleted file mode 100644
index 4a2c666..0000000
--- a/test/tint/vk-gl-cts/spirv_assembly/instruction/compute/signed_int_compare/uint_sgreaterthan/0.spvasm.expected.ir.dxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::LoadVectorElement
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/vk-gl-cts/spirv_assembly/instruction/compute/signed_int_compare/uint_sgreaterthan/0.spvasm.expected.ir.fxc.hlsl b/test/tint/vk-gl-cts/spirv_assembly/instruction/compute/signed_int_compare/uint_sgreaterthan/0.spvasm.expected.ir.fxc.hlsl
deleted file mode 100644
index 4a2c666..0000000
--- a/test/tint/vk-gl-cts/spirv_assembly/instruction/compute/signed_int_compare/uint_sgreaterthan/0.spvasm.expected.ir.fxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::LoadVectorElement
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/vk-gl-cts/spirv_assembly/instruction/compute/signed_int_compare/uint_sgreaterthan/0.wgsl.expected.ir.dxc.hlsl b/test/tint/vk-gl-cts/spirv_assembly/instruction/compute/signed_int_compare/uint_sgreaterthan/0.wgsl.expected.ir.dxc.hlsl
deleted file mode 100644
index 4a2c666..0000000
--- a/test/tint/vk-gl-cts/spirv_assembly/instruction/compute/signed_int_compare/uint_sgreaterthan/0.wgsl.expected.ir.dxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::LoadVectorElement
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/vk-gl-cts/spirv_assembly/instruction/compute/signed_int_compare/uint_sgreaterthan/0.wgsl.expected.ir.fxc.hlsl b/test/tint/vk-gl-cts/spirv_assembly/instruction/compute/signed_int_compare/uint_sgreaterthan/0.wgsl.expected.ir.fxc.hlsl
deleted file mode 100644
index 4a2c666..0000000
--- a/test/tint/vk-gl-cts/spirv_assembly/instruction/compute/signed_int_compare/uint_sgreaterthan/0.wgsl.expected.ir.fxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::LoadVectorElement
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/vk-gl-cts/spirv_assembly/instruction/compute/signed_int_compare/uint_sgreaterthanequal/0.spvasm.expected.ir.dxc.hlsl b/test/tint/vk-gl-cts/spirv_assembly/instruction/compute/signed_int_compare/uint_sgreaterthanequal/0.spvasm.expected.ir.dxc.hlsl
deleted file mode 100644
index 4a2c666..0000000
--- a/test/tint/vk-gl-cts/spirv_assembly/instruction/compute/signed_int_compare/uint_sgreaterthanequal/0.spvasm.expected.ir.dxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::LoadVectorElement
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/vk-gl-cts/spirv_assembly/instruction/compute/signed_int_compare/uint_sgreaterthanequal/0.spvasm.expected.ir.fxc.hlsl b/test/tint/vk-gl-cts/spirv_assembly/instruction/compute/signed_int_compare/uint_sgreaterthanequal/0.spvasm.expected.ir.fxc.hlsl
deleted file mode 100644
index 4a2c666..0000000
--- a/test/tint/vk-gl-cts/spirv_assembly/instruction/compute/signed_int_compare/uint_sgreaterthanequal/0.spvasm.expected.ir.fxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::LoadVectorElement
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/vk-gl-cts/spirv_assembly/instruction/compute/signed_int_compare/uint_sgreaterthanequal/0.wgsl.expected.ir.dxc.hlsl b/test/tint/vk-gl-cts/spirv_assembly/instruction/compute/signed_int_compare/uint_sgreaterthanequal/0.wgsl.expected.ir.dxc.hlsl
deleted file mode 100644
index 4a2c666..0000000
--- a/test/tint/vk-gl-cts/spirv_assembly/instruction/compute/signed_int_compare/uint_sgreaterthanequal/0.wgsl.expected.ir.dxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::LoadVectorElement
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/vk-gl-cts/spirv_assembly/instruction/compute/signed_int_compare/uint_sgreaterthanequal/0.wgsl.expected.ir.fxc.hlsl b/test/tint/vk-gl-cts/spirv_assembly/instruction/compute/signed_int_compare/uint_sgreaterthanequal/0.wgsl.expected.ir.fxc.hlsl
deleted file mode 100644
index 4a2c666..0000000
--- a/test/tint/vk-gl-cts/spirv_assembly/instruction/compute/signed_int_compare/uint_sgreaterthanequal/0.wgsl.expected.ir.fxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::LoadVectorElement
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/vk-gl-cts/spirv_assembly/instruction/compute/signed_int_compare/uint_slessthan/0.spvasm.expected.ir.dxc.hlsl b/test/tint/vk-gl-cts/spirv_assembly/instruction/compute/signed_int_compare/uint_slessthan/0.spvasm.expected.ir.dxc.hlsl
deleted file mode 100644
index 4a2c666..0000000
--- a/test/tint/vk-gl-cts/spirv_assembly/instruction/compute/signed_int_compare/uint_slessthan/0.spvasm.expected.ir.dxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::LoadVectorElement
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/vk-gl-cts/spirv_assembly/instruction/compute/signed_int_compare/uint_slessthan/0.spvasm.expected.ir.fxc.hlsl b/test/tint/vk-gl-cts/spirv_assembly/instruction/compute/signed_int_compare/uint_slessthan/0.spvasm.expected.ir.fxc.hlsl
deleted file mode 100644
index 4a2c666..0000000
--- a/test/tint/vk-gl-cts/spirv_assembly/instruction/compute/signed_int_compare/uint_slessthan/0.spvasm.expected.ir.fxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::LoadVectorElement
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/vk-gl-cts/spirv_assembly/instruction/compute/signed_int_compare/uint_slessthan/0.wgsl.expected.ir.dxc.hlsl b/test/tint/vk-gl-cts/spirv_assembly/instruction/compute/signed_int_compare/uint_slessthan/0.wgsl.expected.ir.dxc.hlsl
deleted file mode 100644
index 4a2c666..0000000
--- a/test/tint/vk-gl-cts/spirv_assembly/instruction/compute/signed_int_compare/uint_slessthan/0.wgsl.expected.ir.dxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::LoadVectorElement
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/vk-gl-cts/spirv_assembly/instruction/compute/signed_int_compare/uint_slessthan/0.wgsl.expected.ir.fxc.hlsl b/test/tint/vk-gl-cts/spirv_assembly/instruction/compute/signed_int_compare/uint_slessthan/0.wgsl.expected.ir.fxc.hlsl
deleted file mode 100644
index 4a2c666..0000000
--- a/test/tint/vk-gl-cts/spirv_assembly/instruction/compute/signed_int_compare/uint_slessthan/0.wgsl.expected.ir.fxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::LoadVectorElement
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/vk-gl-cts/spirv_assembly/instruction/compute/signed_int_compare/uint_slessthanequal/0.spvasm.expected.ir.dxc.hlsl b/test/tint/vk-gl-cts/spirv_assembly/instruction/compute/signed_int_compare/uint_slessthanequal/0.spvasm.expected.ir.dxc.hlsl
deleted file mode 100644
index 4a2c666..0000000
--- a/test/tint/vk-gl-cts/spirv_assembly/instruction/compute/signed_int_compare/uint_slessthanequal/0.spvasm.expected.ir.dxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::LoadVectorElement
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/vk-gl-cts/spirv_assembly/instruction/compute/signed_int_compare/uint_slessthanequal/0.spvasm.expected.ir.fxc.hlsl b/test/tint/vk-gl-cts/spirv_assembly/instruction/compute/signed_int_compare/uint_slessthanequal/0.spvasm.expected.ir.fxc.hlsl
deleted file mode 100644
index 4a2c666..0000000
--- a/test/tint/vk-gl-cts/spirv_assembly/instruction/compute/signed_int_compare/uint_slessthanequal/0.spvasm.expected.ir.fxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::LoadVectorElement
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/vk-gl-cts/spirv_assembly/instruction/compute/signed_int_compare/uint_slessthanequal/0.wgsl.expected.ir.dxc.hlsl b/test/tint/vk-gl-cts/spirv_assembly/instruction/compute/signed_int_compare/uint_slessthanequal/0.wgsl.expected.ir.dxc.hlsl
deleted file mode 100644
index 4a2c666..0000000
--- a/test/tint/vk-gl-cts/spirv_assembly/instruction/compute/signed_int_compare/uint_slessthanequal/0.wgsl.expected.ir.dxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::LoadVectorElement
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/vk-gl-cts/spirv_assembly/instruction/compute/signed_int_compare/uint_slessthanequal/0.wgsl.expected.ir.fxc.hlsl b/test/tint/vk-gl-cts/spirv_assembly/instruction/compute/signed_int_compare/uint_slessthanequal/0.wgsl.expected.ir.fxc.hlsl
deleted file mode 100644
index 4a2c666..0000000
--- a/test/tint/vk-gl-cts/spirv_assembly/instruction/compute/signed_int_compare/uint_slessthanequal/0.wgsl.expected.ir.fxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::LoadVectorElement
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/vk-gl-cts/spirv_assembly/instruction/compute/signed_op/glsl_int_uclamp/0-opt.spvasm.expected.ir.dxc.hlsl b/test/tint/vk-gl-cts/spirv_assembly/instruction/compute/signed_op/glsl_int_uclamp/0-opt.spvasm.expected.ir.dxc.hlsl
deleted file mode 100644
index 4a2c666..0000000
--- a/test/tint/vk-gl-cts/spirv_assembly/instruction/compute/signed_op/glsl_int_uclamp/0-opt.spvasm.expected.ir.dxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::LoadVectorElement
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/vk-gl-cts/spirv_assembly/instruction/compute/signed_op/glsl_int_uclamp/0-opt.spvasm.expected.ir.fxc.hlsl b/test/tint/vk-gl-cts/spirv_assembly/instruction/compute/signed_op/glsl_int_uclamp/0-opt.spvasm.expected.ir.fxc.hlsl
deleted file mode 100644
index 4a2c666..0000000
--- a/test/tint/vk-gl-cts/spirv_assembly/instruction/compute/signed_op/glsl_int_uclamp/0-opt.spvasm.expected.ir.fxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::LoadVectorElement
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/vk-gl-cts/spirv_assembly/instruction/compute/signed_op/glsl_int_uclamp/0-opt.wgsl.expected.ir.dxc.hlsl b/test/tint/vk-gl-cts/spirv_assembly/instruction/compute/signed_op/glsl_int_uclamp/0-opt.wgsl.expected.ir.dxc.hlsl
deleted file mode 100644
index 4a2c666..0000000
--- a/test/tint/vk-gl-cts/spirv_assembly/instruction/compute/signed_op/glsl_int_uclamp/0-opt.wgsl.expected.ir.dxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::LoadVectorElement
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/vk-gl-cts/spirv_assembly/instruction/compute/signed_op/glsl_int_uclamp/0-opt.wgsl.expected.ir.fxc.hlsl b/test/tint/vk-gl-cts/spirv_assembly/instruction/compute/signed_op/glsl_int_uclamp/0-opt.wgsl.expected.ir.fxc.hlsl
deleted file mode 100644
index 4a2c666..0000000
--- a/test/tint/vk-gl-cts/spirv_assembly/instruction/compute/signed_op/glsl_int_uclamp/0-opt.wgsl.expected.ir.fxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::LoadVectorElement
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/vk-gl-cts/spirv_assembly/instruction/compute/signed_op/glsl_uint_sabs/0-opt.spvasm.expected.ir.dxc.hlsl b/test/tint/vk-gl-cts/spirv_assembly/instruction/compute/signed_op/glsl_uint_sabs/0-opt.spvasm.expected.ir.dxc.hlsl
deleted file mode 100644
index 4a2c666..0000000
--- a/test/tint/vk-gl-cts/spirv_assembly/instruction/compute/signed_op/glsl_uint_sabs/0-opt.spvasm.expected.ir.dxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::LoadVectorElement
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/vk-gl-cts/spirv_assembly/instruction/compute/signed_op/glsl_uint_sabs/0-opt.spvasm.expected.ir.fxc.hlsl b/test/tint/vk-gl-cts/spirv_assembly/instruction/compute/signed_op/glsl_uint_sabs/0-opt.spvasm.expected.ir.fxc.hlsl
deleted file mode 100644
index 4a2c666..0000000
--- a/test/tint/vk-gl-cts/spirv_assembly/instruction/compute/signed_op/glsl_uint_sabs/0-opt.spvasm.expected.ir.fxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::LoadVectorElement
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/vk-gl-cts/spirv_assembly/instruction/compute/signed_op/glsl_uint_sabs/0-opt.wgsl.expected.ir.dxc.hlsl b/test/tint/vk-gl-cts/spirv_assembly/instruction/compute/signed_op/glsl_uint_sabs/0-opt.wgsl.expected.ir.dxc.hlsl
deleted file mode 100644
index 4a2c666..0000000
--- a/test/tint/vk-gl-cts/spirv_assembly/instruction/compute/signed_op/glsl_uint_sabs/0-opt.wgsl.expected.ir.dxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::LoadVectorElement
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/vk-gl-cts/spirv_assembly/instruction/compute/signed_op/glsl_uint_sabs/0-opt.wgsl.expected.ir.fxc.hlsl b/test/tint/vk-gl-cts/spirv_assembly/instruction/compute/signed_op/glsl_uint_sabs/0-opt.wgsl.expected.ir.fxc.hlsl
deleted file mode 100644
index 4a2c666..0000000
--- a/test/tint/vk-gl-cts/spirv_assembly/instruction/compute/signed_op/glsl_uint_sabs/0-opt.wgsl.expected.ir.fxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::LoadVectorElement
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/vk-gl-cts/spirv_assembly/instruction/compute/signed_op/glsl_uint_sclamp/0-opt.spvasm.expected.ir.dxc.hlsl b/test/tint/vk-gl-cts/spirv_assembly/instruction/compute/signed_op/glsl_uint_sclamp/0-opt.spvasm.expected.ir.dxc.hlsl
deleted file mode 100644
index 4a2c666..0000000
--- a/test/tint/vk-gl-cts/spirv_assembly/instruction/compute/signed_op/glsl_uint_sclamp/0-opt.spvasm.expected.ir.dxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::LoadVectorElement
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/vk-gl-cts/spirv_assembly/instruction/compute/signed_op/glsl_uint_sclamp/0-opt.spvasm.expected.ir.fxc.hlsl b/test/tint/vk-gl-cts/spirv_assembly/instruction/compute/signed_op/glsl_uint_sclamp/0-opt.spvasm.expected.ir.fxc.hlsl
deleted file mode 100644
index 4a2c666..0000000
--- a/test/tint/vk-gl-cts/spirv_assembly/instruction/compute/signed_op/glsl_uint_sclamp/0-opt.spvasm.expected.ir.fxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::LoadVectorElement
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/vk-gl-cts/spirv_assembly/instruction/compute/signed_op/glsl_uint_sclamp/0-opt.wgsl.expected.ir.dxc.hlsl b/test/tint/vk-gl-cts/spirv_assembly/instruction/compute/signed_op/glsl_uint_sclamp/0-opt.wgsl.expected.ir.dxc.hlsl
deleted file mode 100644
index 4a2c666..0000000
--- a/test/tint/vk-gl-cts/spirv_assembly/instruction/compute/signed_op/glsl_uint_sclamp/0-opt.wgsl.expected.ir.dxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::LoadVectorElement
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/vk-gl-cts/spirv_assembly/instruction/compute/signed_op/glsl_uint_sclamp/0-opt.wgsl.expected.ir.fxc.hlsl b/test/tint/vk-gl-cts/spirv_assembly/instruction/compute/signed_op/glsl_uint_sclamp/0-opt.wgsl.expected.ir.fxc.hlsl
deleted file mode 100644
index 4a2c666..0000000
--- a/test/tint/vk-gl-cts/spirv_assembly/instruction/compute/signed_op/glsl_uint_sclamp/0-opt.wgsl.expected.ir.fxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::LoadVectorElement
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/vk-gl-cts/spirv_assembly/instruction/compute/signed_op/glsl_uint_smax/0-opt.spvasm.expected.ir.dxc.hlsl b/test/tint/vk-gl-cts/spirv_assembly/instruction/compute/signed_op/glsl_uint_smax/0-opt.spvasm.expected.ir.dxc.hlsl
deleted file mode 100644
index 4a2c666..0000000
--- a/test/tint/vk-gl-cts/spirv_assembly/instruction/compute/signed_op/glsl_uint_smax/0-opt.spvasm.expected.ir.dxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::LoadVectorElement
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/vk-gl-cts/spirv_assembly/instruction/compute/signed_op/glsl_uint_smax/0-opt.spvasm.expected.ir.fxc.hlsl b/test/tint/vk-gl-cts/spirv_assembly/instruction/compute/signed_op/glsl_uint_smax/0-opt.spvasm.expected.ir.fxc.hlsl
deleted file mode 100644
index 4a2c666..0000000
--- a/test/tint/vk-gl-cts/spirv_assembly/instruction/compute/signed_op/glsl_uint_smax/0-opt.spvasm.expected.ir.fxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::LoadVectorElement
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/vk-gl-cts/spirv_assembly/instruction/compute/signed_op/glsl_uint_smax/0-opt.wgsl.expected.ir.dxc.hlsl b/test/tint/vk-gl-cts/spirv_assembly/instruction/compute/signed_op/glsl_uint_smax/0-opt.wgsl.expected.ir.dxc.hlsl
deleted file mode 100644
index 4a2c666..0000000
--- a/test/tint/vk-gl-cts/spirv_assembly/instruction/compute/signed_op/glsl_uint_smax/0-opt.wgsl.expected.ir.dxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::LoadVectorElement
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/vk-gl-cts/spirv_assembly/instruction/compute/signed_op/glsl_uint_smax/0-opt.wgsl.expected.ir.fxc.hlsl b/test/tint/vk-gl-cts/spirv_assembly/instruction/compute/signed_op/glsl_uint_smax/0-opt.wgsl.expected.ir.fxc.hlsl
deleted file mode 100644
index 4a2c666..0000000
--- a/test/tint/vk-gl-cts/spirv_assembly/instruction/compute/signed_op/glsl_uint_smax/0-opt.wgsl.expected.ir.fxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::LoadVectorElement
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/vk-gl-cts/spirv_assembly/instruction/compute/signed_op/glsl_uint_smin/0-opt.spvasm.expected.ir.dxc.hlsl b/test/tint/vk-gl-cts/spirv_assembly/instruction/compute/signed_op/glsl_uint_smin/0-opt.spvasm.expected.ir.dxc.hlsl
deleted file mode 100644
index 4a2c666..0000000
--- a/test/tint/vk-gl-cts/spirv_assembly/instruction/compute/signed_op/glsl_uint_smin/0-opt.spvasm.expected.ir.dxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::LoadVectorElement
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/vk-gl-cts/spirv_assembly/instruction/compute/signed_op/glsl_uint_smin/0-opt.spvasm.expected.ir.fxc.hlsl b/test/tint/vk-gl-cts/spirv_assembly/instruction/compute/signed_op/glsl_uint_smin/0-opt.spvasm.expected.ir.fxc.hlsl
deleted file mode 100644
index 4a2c666..0000000
--- a/test/tint/vk-gl-cts/spirv_assembly/instruction/compute/signed_op/glsl_uint_smin/0-opt.spvasm.expected.ir.fxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::LoadVectorElement
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/vk-gl-cts/spirv_assembly/instruction/compute/signed_op/glsl_uint_smin/0-opt.wgsl.expected.ir.dxc.hlsl b/test/tint/vk-gl-cts/spirv_assembly/instruction/compute/signed_op/glsl_uint_smin/0-opt.wgsl.expected.ir.dxc.hlsl
deleted file mode 100644
index 4a2c666..0000000
--- a/test/tint/vk-gl-cts/spirv_assembly/instruction/compute/signed_op/glsl_uint_smin/0-opt.wgsl.expected.ir.dxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::LoadVectorElement
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/vk-gl-cts/spirv_assembly/instruction/compute/signed_op/glsl_uint_smin/0-opt.wgsl.expected.ir.fxc.hlsl b/test/tint/vk-gl-cts/spirv_assembly/instruction/compute/signed_op/glsl_uint_smin/0-opt.wgsl.expected.ir.fxc.hlsl
deleted file mode 100644
index 4a2c666..0000000
--- a/test/tint/vk-gl-cts/spirv_assembly/instruction/compute/signed_op/glsl_uint_smin/0-opt.wgsl.expected.ir.fxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::LoadVectorElement
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/vk-gl-cts/spirv_assembly/instruction/compute/signed_op/uint_sdiv/0-opt.spvasm.expected.ir.dxc.hlsl b/test/tint/vk-gl-cts/spirv_assembly/instruction/compute/signed_op/uint_sdiv/0-opt.spvasm.expected.ir.dxc.hlsl
deleted file mode 100644
index 4a2c666..0000000
--- a/test/tint/vk-gl-cts/spirv_assembly/instruction/compute/signed_op/uint_sdiv/0-opt.spvasm.expected.ir.dxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::LoadVectorElement
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/vk-gl-cts/spirv_assembly/instruction/compute/signed_op/uint_sdiv/0-opt.spvasm.expected.ir.fxc.hlsl b/test/tint/vk-gl-cts/spirv_assembly/instruction/compute/signed_op/uint_sdiv/0-opt.spvasm.expected.ir.fxc.hlsl
deleted file mode 100644
index 4a2c666..0000000
--- a/test/tint/vk-gl-cts/spirv_assembly/instruction/compute/signed_op/uint_sdiv/0-opt.spvasm.expected.ir.fxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::LoadVectorElement
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/vk-gl-cts/spirv_assembly/instruction/compute/signed_op/uint_sdiv/0-opt.wgsl.expected.ir.dxc.hlsl b/test/tint/vk-gl-cts/spirv_assembly/instruction/compute/signed_op/uint_sdiv/0-opt.wgsl.expected.ir.dxc.hlsl
deleted file mode 100644
index 4a2c666..0000000
--- a/test/tint/vk-gl-cts/spirv_assembly/instruction/compute/signed_op/uint_sdiv/0-opt.wgsl.expected.ir.dxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::LoadVectorElement
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/vk-gl-cts/spirv_assembly/instruction/compute/signed_op/uint_sdiv/0-opt.wgsl.expected.ir.fxc.hlsl b/test/tint/vk-gl-cts/spirv_assembly/instruction/compute/signed_op/uint_sdiv/0-opt.wgsl.expected.ir.fxc.hlsl
deleted file mode 100644
index 4a2c666..0000000
--- a/test/tint/vk-gl-cts/spirv_assembly/instruction/compute/signed_op/uint_sdiv/0-opt.wgsl.expected.ir.fxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::LoadVectorElement
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/vk-gl-cts/spirv_assembly/instruction/compute/signed_op/uint_snegate/0-opt.spvasm.expected.ir.dxc.hlsl b/test/tint/vk-gl-cts/spirv_assembly/instruction/compute/signed_op/uint_snegate/0-opt.spvasm.expected.ir.dxc.hlsl
deleted file mode 100644
index 4a2c666..0000000
--- a/test/tint/vk-gl-cts/spirv_assembly/instruction/compute/signed_op/uint_snegate/0-opt.spvasm.expected.ir.dxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::LoadVectorElement
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/vk-gl-cts/spirv_assembly/instruction/compute/signed_op/uint_snegate/0-opt.spvasm.expected.ir.fxc.hlsl b/test/tint/vk-gl-cts/spirv_assembly/instruction/compute/signed_op/uint_snegate/0-opt.spvasm.expected.ir.fxc.hlsl
deleted file mode 100644
index 4a2c666..0000000
--- a/test/tint/vk-gl-cts/spirv_assembly/instruction/compute/signed_op/uint_snegate/0-opt.spvasm.expected.ir.fxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::LoadVectorElement
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/vk-gl-cts/spirv_assembly/instruction/compute/signed_op/uint_snegate/0-opt.wgsl.expected.ir.dxc.hlsl b/test/tint/vk-gl-cts/spirv_assembly/instruction/compute/signed_op/uint_snegate/0-opt.wgsl.expected.ir.dxc.hlsl
deleted file mode 100644
index 4a2c666..0000000
--- a/test/tint/vk-gl-cts/spirv_assembly/instruction/compute/signed_op/uint_snegate/0-opt.wgsl.expected.ir.dxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::LoadVectorElement
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/vk-gl-cts/spirv_assembly/instruction/compute/signed_op/uint_snegate/0-opt.wgsl.expected.ir.fxc.hlsl b/test/tint/vk-gl-cts/spirv_assembly/instruction/compute/signed_op/uint_snegate/0-opt.wgsl.expected.ir.fxc.hlsl
deleted file mode 100644
index 4a2c666..0000000
--- a/test/tint/vk-gl-cts/spirv_assembly/instruction/compute/signed_op/uint_snegate/0-opt.wgsl.expected.ir.fxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::LoadVectorElement
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/vk-gl-cts/spirv_assembly/instruction/float32/comparison/frexpstruct_1_frag/0.spvasm.expected.ir.dxc.hlsl b/test/tint/vk-gl-cts/spirv_assembly/instruction/float32/comparison/frexpstruct_1_frag/0.spvasm.expected.ir.dxc.hlsl
deleted file mode 100644
index 48e23f4..0000000
--- a/test/tint/vk-gl-cts/spirv_assembly/instruction/float32/comparison/frexpstruct_1_frag/0.spvasm.expected.ir.dxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Convert
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/vk-gl-cts/spirv_assembly/instruction/float32/comparison/frexpstruct_1_frag/0.spvasm.expected.ir.fxc.hlsl b/test/tint/vk-gl-cts/spirv_assembly/instruction/float32/comparison/frexpstruct_1_frag/0.spvasm.expected.ir.fxc.hlsl
deleted file mode 100644
index 48e23f4..0000000
--- a/test/tint/vk-gl-cts/spirv_assembly/instruction/float32/comparison/frexpstruct_1_frag/0.spvasm.expected.ir.fxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Convert
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/vk-gl-cts/spirv_assembly/instruction/float32/comparison/frexpstruct_1_frag/0.wgsl.expected.ir.dxc.hlsl b/test/tint/vk-gl-cts/spirv_assembly/instruction/float32/comparison/frexpstruct_1_frag/0.wgsl.expected.ir.dxc.hlsl
deleted file mode 100644
index 4a2c666..0000000
--- a/test/tint/vk-gl-cts/spirv_assembly/instruction/float32/comparison/frexpstruct_1_frag/0.wgsl.expected.ir.dxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::LoadVectorElement
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/vk-gl-cts/spirv_assembly/instruction/float32/comparison/frexpstruct_1_frag/0.wgsl.expected.ir.fxc.hlsl b/test/tint/vk-gl-cts/spirv_assembly/instruction/float32/comparison/frexpstruct_1_frag/0.wgsl.expected.ir.fxc.hlsl
deleted file mode 100644
index 4a2c666..0000000
--- a/test/tint/vk-gl-cts/spirv_assembly/instruction/float32/comparison/frexpstruct_1_frag/0.wgsl.expected.ir.fxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::LoadVectorElement
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/vk-gl-cts/spirv_assembly/instruction/graphics/early_fragment/depth_equal/0-opt.spvasm.expected.ir.dxc.hlsl b/test/tint/vk-gl-cts/spirv_assembly/instruction/graphics/early_fragment/depth_equal/0-opt.spvasm.expected.ir.dxc.hlsl
deleted file mode 100644
index ba8c686..0000000
--- a/test/tint/vk-gl-cts/spirv_assembly/instruction/graphics/early_fragment/depth_equal/0-opt.spvasm.expected.ir.dxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Swizzle
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/vk-gl-cts/spirv_assembly/instruction/graphics/early_fragment/depth_equal/0-opt.spvasm.expected.ir.fxc.hlsl b/test/tint/vk-gl-cts/spirv_assembly/instruction/graphics/early_fragment/depth_equal/0-opt.spvasm.expected.ir.fxc.hlsl
deleted file mode 100644
index ba8c686..0000000
--- a/test/tint/vk-gl-cts/spirv_assembly/instruction/graphics/early_fragment/depth_equal/0-opt.spvasm.expected.ir.fxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Swizzle
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/vk-gl-cts/spirv_assembly/instruction/graphics/early_fragment/depth_equal/0-opt.wgsl.expected.ir.dxc.hlsl b/test/tint/vk-gl-cts/spirv_assembly/instruction/graphics/early_fragment/depth_equal/0-opt.wgsl.expected.ir.dxc.hlsl
deleted file mode 100644
index c6e1d96..0000000
--- a/test/tint/vk-gl-cts/spirv_assembly/instruction/graphics/early_fragment/depth_equal/0-opt.wgsl.expected.ir.dxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Construct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/vk-gl-cts/spirv_assembly/instruction/graphics/early_fragment/depth_equal/0-opt.wgsl.expected.ir.fxc.hlsl b/test/tint/vk-gl-cts/spirv_assembly/instruction/graphics/early_fragment/depth_equal/0-opt.wgsl.expected.ir.fxc.hlsl
deleted file mode 100644
index c6e1d96..0000000
--- a/test/tint/vk-gl-cts/spirv_assembly/instruction/graphics/early_fragment/depth_equal/0-opt.wgsl.expected.ir.fxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Construct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/vk-gl-cts/spirv_assembly/instruction/graphics/early_fragment/depth_equal/1.spvasm.expected.ir.dxc.hlsl b/test/tint/vk-gl-cts/spirv_assembly/instruction/graphics/early_fragment/depth_equal/1.spvasm.expected.ir.dxc.hlsl
deleted file mode 100644
index c6e1d96..0000000
--- a/test/tint/vk-gl-cts/spirv_assembly/instruction/graphics/early_fragment/depth_equal/1.spvasm.expected.ir.dxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Construct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/vk-gl-cts/spirv_assembly/instruction/graphics/early_fragment/depth_equal/1.spvasm.expected.ir.fxc.hlsl b/test/tint/vk-gl-cts/spirv_assembly/instruction/graphics/early_fragment/depth_equal/1.spvasm.expected.ir.fxc.hlsl
deleted file mode 100644
index c6e1d96..0000000
--- a/test/tint/vk-gl-cts/spirv_assembly/instruction/graphics/early_fragment/depth_equal/1.spvasm.expected.ir.fxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Construct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/vk-gl-cts/spirv_assembly/instruction/graphics/early_fragment/depth_equal/1.wgsl.expected.ir.dxc.hlsl b/test/tint/vk-gl-cts/spirv_assembly/instruction/graphics/early_fragment/depth_equal/1.wgsl.expected.ir.dxc.hlsl
deleted file mode 100644
index c6e1d96..0000000
--- a/test/tint/vk-gl-cts/spirv_assembly/instruction/graphics/early_fragment/depth_equal/1.wgsl.expected.ir.dxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Construct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/vk-gl-cts/spirv_assembly/instruction/graphics/early_fragment/depth_equal/1.wgsl.expected.ir.fxc.hlsl b/test/tint/vk-gl-cts/spirv_assembly/instruction/graphics/early_fragment/depth_equal/1.wgsl.expected.ir.fxc.hlsl
deleted file mode 100644
index c6e1d96..0000000
--- a/test/tint/vk-gl-cts/spirv_assembly/instruction/graphics/early_fragment/depth_equal/1.wgsl.expected.ir.fxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Construct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/vk-gl-cts/spirv_assembly/instruction/graphics/early_fragment/depth_greater/0-opt.spvasm.expected.ir.dxc.hlsl b/test/tint/vk-gl-cts/spirv_assembly/instruction/graphics/early_fragment/depth_greater/0-opt.spvasm.expected.ir.dxc.hlsl
deleted file mode 100644
index ba8c686..0000000
--- a/test/tint/vk-gl-cts/spirv_assembly/instruction/graphics/early_fragment/depth_greater/0-opt.spvasm.expected.ir.dxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Swizzle
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/vk-gl-cts/spirv_assembly/instruction/graphics/early_fragment/depth_greater/0-opt.spvasm.expected.ir.fxc.hlsl b/test/tint/vk-gl-cts/spirv_assembly/instruction/graphics/early_fragment/depth_greater/0-opt.spvasm.expected.ir.fxc.hlsl
deleted file mode 100644
index ba8c686..0000000
--- a/test/tint/vk-gl-cts/spirv_assembly/instruction/graphics/early_fragment/depth_greater/0-opt.spvasm.expected.ir.fxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Swizzle
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/vk-gl-cts/spirv_assembly/instruction/graphics/early_fragment/depth_greater/0-opt.wgsl.expected.ir.dxc.hlsl b/test/tint/vk-gl-cts/spirv_assembly/instruction/graphics/early_fragment/depth_greater/0-opt.wgsl.expected.ir.dxc.hlsl
deleted file mode 100644
index c6e1d96..0000000
--- a/test/tint/vk-gl-cts/spirv_assembly/instruction/graphics/early_fragment/depth_greater/0-opt.wgsl.expected.ir.dxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Construct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/vk-gl-cts/spirv_assembly/instruction/graphics/early_fragment/depth_greater/0-opt.wgsl.expected.ir.fxc.hlsl b/test/tint/vk-gl-cts/spirv_assembly/instruction/graphics/early_fragment/depth_greater/0-opt.wgsl.expected.ir.fxc.hlsl
deleted file mode 100644
index c6e1d96..0000000
--- a/test/tint/vk-gl-cts/spirv_assembly/instruction/graphics/early_fragment/depth_greater/0-opt.wgsl.expected.ir.fxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Construct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/vk-gl-cts/spirv_assembly/instruction/graphics/early_fragment/depth_greater/1.spvasm.expected.ir.dxc.hlsl b/test/tint/vk-gl-cts/spirv_assembly/instruction/graphics/early_fragment/depth_greater/1.spvasm.expected.ir.dxc.hlsl
deleted file mode 100644
index c6e1d96..0000000
--- a/test/tint/vk-gl-cts/spirv_assembly/instruction/graphics/early_fragment/depth_greater/1.spvasm.expected.ir.dxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Construct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/vk-gl-cts/spirv_assembly/instruction/graphics/early_fragment/depth_greater/1.spvasm.expected.ir.fxc.hlsl b/test/tint/vk-gl-cts/spirv_assembly/instruction/graphics/early_fragment/depth_greater/1.spvasm.expected.ir.fxc.hlsl
deleted file mode 100644
index c6e1d96..0000000
--- a/test/tint/vk-gl-cts/spirv_assembly/instruction/graphics/early_fragment/depth_greater/1.spvasm.expected.ir.fxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Construct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/vk-gl-cts/spirv_assembly/instruction/graphics/early_fragment/depth_greater/1.wgsl.expected.ir.dxc.hlsl b/test/tint/vk-gl-cts/spirv_assembly/instruction/graphics/early_fragment/depth_greater/1.wgsl.expected.ir.dxc.hlsl
deleted file mode 100644
index c6e1d96..0000000
--- a/test/tint/vk-gl-cts/spirv_assembly/instruction/graphics/early_fragment/depth_greater/1.wgsl.expected.ir.dxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Construct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/vk-gl-cts/spirv_assembly/instruction/graphics/early_fragment/depth_greater/1.wgsl.expected.ir.fxc.hlsl b/test/tint/vk-gl-cts/spirv_assembly/instruction/graphics/early_fragment/depth_greater/1.wgsl.expected.ir.fxc.hlsl
deleted file mode 100644
index c6e1d96..0000000
--- a/test/tint/vk-gl-cts/spirv_assembly/instruction/graphics/early_fragment/depth_greater/1.wgsl.expected.ir.fxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Construct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/vk-gl-cts/spirv_assembly/instruction/graphics/early_fragment/depth_less/0-opt.spvasm.expected.ir.dxc.hlsl b/test/tint/vk-gl-cts/spirv_assembly/instruction/graphics/early_fragment/depth_less/0-opt.spvasm.expected.ir.dxc.hlsl
deleted file mode 100644
index ba8c686..0000000
--- a/test/tint/vk-gl-cts/spirv_assembly/instruction/graphics/early_fragment/depth_less/0-opt.spvasm.expected.ir.dxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Swizzle
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/vk-gl-cts/spirv_assembly/instruction/graphics/early_fragment/depth_less/0-opt.spvasm.expected.ir.fxc.hlsl b/test/tint/vk-gl-cts/spirv_assembly/instruction/graphics/early_fragment/depth_less/0-opt.spvasm.expected.ir.fxc.hlsl
deleted file mode 100644
index ba8c686..0000000
--- a/test/tint/vk-gl-cts/spirv_assembly/instruction/graphics/early_fragment/depth_less/0-opt.spvasm.expected.ir.fxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Swizzle
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/vk-gl-cts/spirv_assembly/instruction/graphics/early_fragment/depth_less/0-opt.wgsl.expected.ir.dxc.hlsl b/test/tint/vk-gl-cts/spirv_assembly/instruction/graphics/early_fragment/depth_less/0-opt.wgsl.expected.ir.dxc.hlsl
deleted file mode 100644
index c6e1d96..0000000
--- a/test/tint/vk-gl-cts/spirv_assembly/instruction/graphics/early_fragment/depth_less/0-opt.wgsl.expected.ir.dxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Construct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/vk-gl-cts/spirv_assembly/instruction/graphics/early_fragment/depth_less/0-opt.wgsl.expected.ir.fxc.hlsl b/test/tint/vk-gl-cts/spirv_assembly/instruction/graphics/early_fragment/depth_less/0-opt.wgsl.expected.ir.fxc.hlsl
deleted file mode 100644
index c6e1d96..0000000
--- a/test/tint/vk-gl-cts/spirv_assembly/instruction/graphics/early_fragment/depth_less/0-opt.wgsl.expected.ir.fxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Construct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/vk-gl-cts/spirv_assembly/instruction/graphics/early_fragment/depth_less_or_equal/1.spvasm.expected.ir.dxc.hlsl b/test/tint/vk-gl-cts/spirv_assembly/instruction/graphics/early_fragment/depth_less_or_equal/1.spvasm.expected.ir.dxc.hlsl
deleted file mode 100644
index c6e1d96..0000000
--- a/test/tint/vk-gl-cts/spirv_assembly/instruction/graphics/early_fragment/depth_less_or_equal/1.spvasm.expected.ir.dxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Construct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/vk-gl-cts/spirv_assembly/instruction/graphics/early_fragment/depth_less_or_equal/1.spvasm.expected.ir.fxc.hlsl b/test/tint/vk-gl-cts/spirv_assembly/instruction/graphics/early_fragment/depth_less_or_equal/1.spvasm.expected.ir.fxc.hlsl
deleted file mode 100644
index c6e1d96..0000000
--- a/test/tint/vk-gl-cts/spirv_assembly/instruction/graphics/early_fragment/depth_less_or_equal/1.spvasm.expected.ir.fxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Construct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/vk-gl-cts/spirv_assembly/instruction/graphics/early_fragment/depth_less_or_equal/1.wgsl.expected.ir.dxc.hlsl b/test/tint/vk-gl-cts/spirv_assembly/instruction/graphics/early_fragment/depth_less_or_equal/1.wgsl.expected.ir.dxc.hlsl
deleted file mode 100644
index c6e1d96..0000000
--- a/test/tint/vk-gl-cts/spirv_assembly/instruction/graphics/early_fragment/depth_less_or_equal/1.wgsl.expected.ir.dxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Construct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/vk-gl-cts/spirv_assembly/instruction/graphics/early_fragment/depth_less_or_equal/1.wgsl.expected.ir.fxc.hlsl b/test/tint/vk-gl-cts/spirv_assembly/instruction/graphics/early_fragment/depth_less_or_equal/1.wgsl.expected.ir.fxc.hlsl
deleted file mode 100644
index c6e1d96..0000000
--- a/test/tint/vk-gl-cts/spirv_assembly/instruction/graphics/early_fragment/depth_less_or_equal/1.wgsl.expected.ir.fxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Construct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/vk-gl-cts/spirv_assembly/instruction/graphics/early_fragment/depth_not_equal/0-opt.spvasm.expected.ir.dxc.hlsl b/test/tint/vk-gl-cts/spirv_assembly/instruction/graphics/early_fragment/depth_not_equal/0-opt.spvasm.expected.ir.dxc.hlsl
deleted file mode 100644
index ba8c686..0000000
--- a/test/tint/vk-gl-cts/spirv_assembly/instruction/graphics/early_fragment/depth_not_equal/0-opt.spvasm.expected.ir.dxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Swizzle
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/vk-gl-cts/spirv_assembly/instruction/graphics/early_fragment/depth_not_equal/0-opt.spvasm.expected.ir.fxc.hlsl b/test/tint/vk-gl-cts/spirv_assembly/instruction/graphics/early_fragment/depth_not_equal/0-opt.spvasm.expected.ir.fxc.hlsl
deleted file mode 100644
index ba8c686..0000000
--- a/test/tint/vk-gl-cts/spirv_assembly/instruction/graphics/early_fragment/depth_not_equal/0-opt.spvasm.expected.ir.fxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Swizzle
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/vk-gl-cts/spirv_assembly/instruction/graphics/early_fragment/depth_not_equal/0-opt.wgsl.expected.ir.dxc.hlsl b/test/tint/vk-gl-cts/spirv_assembly/instruction/graphics/early_fragment/depth_not_equal/0-opt.wgsl.expected.ir.dxc.hlsl
deleted file mode 100644
index c6e1d96..0000000
--- a/test/tint/vk-gl-cts/spirv_assembly/instruction/graphics/early_fragment/depth_not_equal/0-opt.wgsl.expected.ir.dxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Construct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/vk-gl-cts/spirv_assembly/instruction/graphics/early_fragment/depth_not_equal/0-opt.wgsl.expected.ir.fxc.hlsl b/test/tint/vk-gl-cts/spirv_assembly/instruction/graphics/early_fragment/depth_not_equal/0-opt.wgsl.expected.ir.fxc.hlsl
deleted file mode 100644
index c6e1d96..0000000
--- a/test/tint/vk-gl-cts/spirv_assembly/instruction/graphics/early_fragment/depth_not_equal/0-opt.wgsl.expected.ir.fxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Construct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/vk-gl-cts/spirv_assembly/instruction/graphics/early_fragment/depth_not_equal/1.spvasm.expected.ir.dxc.hlsl b/test/tint/vk-gl-cts/spirv_assembly/instruction/graphics/early_fragment/depth_not_equal/1.spvasm.expected.ir.dxc.hlsl
deleted file mode 100644
index c6e1d96..0000000
--- a/test/tint/vk-gl-cts/spirv_assembly/instruction/graphics/early_fragment/depth_not_equal/1.spvasm.expected.ir.dxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Construct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/vk-gl-cts/spirv_assembly/instruction/graphics/early_fragment/depth_not_equal/1.spvasm.expected.ir.fxc.hlsl b/test/tint/vk-gl-cts/spirv_assembly/instruction/graphics/early_fragment/depth_not_equal/1.spvasm.expected.ir.fxc.hlsl
deleted file mode 100644
index c6e1d96..0000000
--- a/test/tint/vk-gl-cts/spirv_assembly/instruction/graphics/early_fragment/depth_not_equal/1.spvasm.expected.ir.fxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Construct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/vk-gl-cts/spirv_assembly/instruction/graphics/early_fragment/depth_not_equal/1.wgsl.expected.ir.dxc.hlsl b/test/tint/vk-gl-cts/spirv_assembly/instruction/graphics/early_fragment/depth_not_equal/1.wgsl.expected.ir.dxc.hlsl
deleted file mode 100644
index c6e1d96..0000000
--- a/test/tint/vk-gl-cts/spirv_assembly/instruction/graphics/early_fragment/depth_not_equal/1.wgsl.expected.ir.dxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Construct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/vk-gl-cts/spirv_assembly/instruction/graphics/early_fragment/depth_not_equal/1.wgsl.expected.ir.fxc.hlsl b/test/tint/vk-gl-cts/spirv_assembly/instruction/graphics/early_fragment/depth_not_equal/1.wgsl.expected.ir.fxc.hlsl
deleted file mode 100644
index c6e1d96..0000000
--- a/test/tint/vk-gl-cts/spirv_assembly/instruction/graphics/early_fragment/depth_not_equal/1.wgsl.expected.ir.fxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Construct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/vk-gl-cts/spirv_assembly/instruction/graphics/execution_mode/depthgreater_1/0-opt.spvasm.expected.ir.dxc.hlsl b/test/tint/vk-gl-cts/spirv_assembly/instruction/graphics/execution_mode/depthgreater_1/0-opt.spvasm.expected.ir.dxc.hlsl
deleted file mode 100644
index ba8c686..0000000
--- a/test/tint/vk-gl-cts/spirv_assembly/instruction/graphics/execution_mode/depthgreater_1/0-opt.spvasm.expected.ir.dxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Swizzle
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/vk-gl-cts/spirv_assembly/instruction/graphics/execution_mode/depthgreater_1/0-opt.spvasm.expected.ir.fxc.hlsl b/test/tint/vk-gl-cts/spirv_assembly/instruction/graphics/execution_mode/depthgreater_1/0-opt.spvasm.expected.ir.fxc.hlsl
deleted file mode 100644
index ba8c686..0000000
--- a/test/tint/vk-gl-cts/spirv_assembly/instruction/graphics/execution_mode/depthgreater_1/0-opt.spvasm.expected.ir.fxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Swizzle
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/vk-gl-cts/spirv_assembly/instruction/graphics/execution_mode/depthgreater_1/0-opt.wgsl.expected.ir.dxc.hlsl b/test/tint/vk-gl-cts/spirv_assembly/instruction/graphics/execution_mode/depthgreater_1/0-opt.wgsl.expected.ir.dxc.hlsl
deleted file mode 100644
index c6e1d96..0000000
--- a/test/tint/vk-gl-cts/spirv_assembly/instruction/graphics/execution_mode/depthgreater_1/0-opt.wgsl.expected.ir.dxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Construct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/vk-gl-cts/spirv_assembly/instruction/graphics/execution_mode/depthgreater_1/0-opt.wgsl.expected.ir.fxc.hlsl b/test/tint/vk-gl-cts/spirv_assembly/instruction/graphics/execution_mode/depthgreater_1/0-opt.wgsl.expected.ir.fxc.hlsl
deleted file mode 100644
index c6e1d96..0000000
--- a/test/tint/vk-gl-cts/spirv_assembly/instruction/graphics/execution_mode/depthgreater_1/0-opt.wgsl.expected.ir.fxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Construct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/vk-gl-cts/spirv_assembly/instruction/graphics/execution_mode/depthgreater_2/0-opt.spvasm.expected.ir.dxc.hlsl b/test/tint/vk-gl-cts/spirv_assembly/instruction/graphics/execution_mode/depthgreater_2/0-opt.spvasm.expected.ir.dxc.hlsl
deleted file mode 100644
index ba8c686..0000000
--- a/test/tint/vk-gl-cts/spirv_assembly/instruction/graphics/execution_mode/depthgreater_2/0-opt.spvasm.expected.ir.dxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Swizzle
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/vk-gl-cts/spirv_assembly/instruction/graphics/execution_mode/depthgreater_2/0-opt.spvasm.expected.ir.fxc.hlsl b/test/tint/vk-gl-cts/spirv_assembly/instruction/graphics/execution_mode/depthgreater_2/0-opt.spvasm.expected.ir.fxc.hlsl
deleted file mode 100644
index ba8c686..0000000
--- a/test/tint/vk-gl-cts/spirv_assembly/instruction/graphics/execution_mode/depthgreater_2/0-opt.spvasm.expected.ir.fxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Swizzle
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/vk-gl-cts/spirv_assembly/instruction/graphics/execution_mode/depthgreater_2/0-opt.wgsl.expected.ir.dxc.hlsl b/test/tint/vk-gl-cts/spirv_assembly/instruction/graphics/execution_mode/depthgreater_2/0-opt.wgsl.expected.ir.dxc.hlsl
deleted file mode 100644
index c6e1d96..0000000
--- a/test/tint/vk-gl-cts/spirv_assembly/instruction/graphics/execution_mode/depthgreater_2/0-opt.wgsl.expected.ir.dxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Construct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/vk-gl-cts/spirv_assembly/instruction/graphics/execution_mode/depthgreater_2/0-opt.wgsl.expected.ir.fxc.hlsl b/test/tint/vk-gl-cts/spirv_assembly/instruction/graphics/execution_mode/depthgreater_2/0-opt.wgsl.expected.ir.fxc.hlsl
deleted file mode 100644
index c6e1d96..0000000
--- a/test/tint/vk-gl-cts/spirv_assembly/instruction/graphics/execution_mode/depthgreater_2/0-opt.wgsl.expected.ir.fxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Construct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/vk-gl-cts/spirv_assembly/instruction/graphics/execution_mode/depthgreater_2/1.spvasm.expected.ir.dxc.hlsl b/test/tint/vk-gl-cts/spirv_assembly/instruction/graphics/execution_mode/depthgreater_2/1.spvasm.expected.ir.dxc.hlsl
deleted file mode 100644
index c6e1d96..0000000
--- a/test/tint/vk-gl-cts/spirv_assembly/instruction/graphics/execution_mode/depthgreater_2/1.spvasm.expected.ir.dxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Construct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/vk-gl-cts/spirv_assembly/instruction/graphics/execution_mode/depthgreater_2/1.spvasm.expected.ir.fxc.hlsl b/test/tint/vk-gl-cts/spirv_assembly/instruction/graphics/execution_mode/depthgreater_2/1.spvasm.expected.ir.fxc.hlsl
deleted file mode 100644
index c6e1d96..0000000
--- a/test/tint/vk-gl-cts/spirv_assembly/instruction/graphics/execution_mode/depthgreater_2/1.spvasm.expected.ir.fxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Construct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/vk-gl-cts/spirv_assembly/instruction/graphics/execution_mode/depthgreater_2/1.wgsl.expected.ir.dxc.hlsl b/test/tint/vk-gl-cts/spirv_assembly/instruction/graphics/execution_mode/depthgreater_2/1.wgsl.expected.ir.dxc.hlsl
deleted file mode 100644
index c6e1d96..0000000
--- a/test/tint/vk-gl-cts/spirv_assembly/instruction/graphics/execution_mode/depthgreater_2/1.wgsl.expected.ir.dxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Construct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/vk-gl-cts/spirv_assembly/instruction/graphics/execution_mode/depthgreater_2/1.wgsl.expected.ir.fxc.hlsl b/test/tint/vk-gl-cts/spirv_assembly/instruction/graphics/execution_mode/depthgreater_2/1.wgsl.expected.ir.fxc.hlsl
deleted file mode 100644
index c6e1d96..0000000
--- a/test/tint/vk-gl-cts/spirv_assembly/instruction/graphics/execution_mode/depthgreater_2/1.wgsl.expected.ir.fxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Construct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/vk-gl-cts/spirv_assembly/instruction/graphics/execution_mode/depthless_0/1.spvasm.expected.ir.dxc.hlsl b/test/tint/vk-gl-cts/spirv_assembly/instruction/graphics/execution_mode/depthless_0/1.spvasm.expected.ir.dxc.hlsl
deleted file mode 100644
index c6e1d96..0000000
--- a/test/tint/vk-gl-cts/spirv_assembly/instruction/graphics/execution_mode/depthless_0/1.spvasm.expected.ir.dxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Construct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/vk-gl-cts/spirv_assembly/instruction/graphics/execution_mode/depthless_0/1.spvasm.expected.ir.fxc.hlsl b/test/tint/vk-gl-cts/spirv_assembly/instruction/graphics/execution_mode/depthless_0/1.spvasm.expected.ir.fxc.hlsl
deleted file mode 100644
index c6e1d96..0000000
--- a/test/tint/vk-gl-cts/spirv_assembly/instruction/graphics/execution_mode/depthless_0/1.spvasm.expected.ir.fxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Construct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/vk-gl-cts/spirv_assembly/instruction/graphics/execution_mode/depthless_0/1.wgsl.expected.ir.dxc.hlsl b/test/tint/vk-gl-cts/spirv_assembly/instruction/graphics/execution_mode/depthless_0/1.wgsl.expected.ir.dxc.hlsl
deleted file mode 100644
index c6e1d96..0000000
--- a/test/tint/vk-gl-cts/spirv_assembly/instruction/graphics/execution_mode/depthless_0/1.wgsl.expected.ir.dxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Construct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/vk-gl-cts/spirv_assembly/instruction/graphics/execution_mode/depthless_0/1.wgsl.expected.ir.fxc.hlsl b/test/tint/vk-gl-cts/spirv_assembly/instruction/graphics/execution_mode/depthless_0/1.wgsl.expected.ir.fxc.hlsl
deleted file mode 100644
index c6e1d96..0000000
--- a/test/tint/vk-gl-cts/spirv_assembly/instruction/graphics/execution_mode/depthless_0/1.wgsl.expected.ir.fxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Construct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/vk-gl-cts/spirv_assembly/instruction/graphics/execution_mode/depthless_2/1.spvasm.expected.ir.dxc.hlsl b/test/tint/vk-gl-cts/spirv_assembly/instruction/graphics/execution_mode/depthless_2/1.spvasm.expected.ir.dxc.hlsl
deleted file mode 100644
index c6e1d96..0000000
--- a/test/tint/vk-gl-cts/spirv_assembly/instruction/graphics/execution_mode/depthless_2/1.spvasm.expected.ir.dxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Construct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/vk-gl-cts/spirv_assembly/instruction/graphics/execution_mode/depthless_2/1.spvasm.expected.ir.fxc.hlsl b/test/tint/vk-gl-cts/spirv_assembly/instruction/graphics/execution_mode/depthless_2/1.spvasm.expected.ir.fxc.hlsl
deleted file mode 100644
index c6e1d96..0000000
--- a/test/tint/vk-gl-cts/spirv_assembly/instruction/graphics/execution_mode/depthless_2/1.spvasm.expected.ir.fxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Construct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/vk-gl-cts/spirv_assembly/instruction/graphics/execution_mode/depthless_2/1.wgsl.expected.ir.dxc.hlsl b/test/tint/vk-gl-cts/spirv_assembly/instruction/graphics/execution_mode/depthless_2/1.wgsl.expected.ir.dxc.hlsl
deleted file mode 100644
index c6e1d96..0000000
--- a/test/tint/vk-gl-cts/spirv_assembly/instruction/graphics/execution_mode/depthless_2/1.wgsl.expected.ir.dxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Construct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/vk-gl-cts/spirv_assembly/instruction/graphics/execution_mode/depthless_2/1.wgsl.expected.ir.fxc.hlsl b/test/tint/vk-gl-cts/spirv_assembly/instruction/graphics/execution_mode/depthless_2/1.wgsl.expected.ir.fxc.hlsl
deleted file mode 100644
index c6e1d96..0000000
--- a/test/tint/vk-gl-cts/spirv_assembly/instruction/graphics/execution_mode/depthless_2/1.wgsl.expected.ir.fxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Construct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/vk-gl-cts/spirv_assembly/instruction/graphics/execution_mode/depthunchanged_0/1.spvasm.expected.ir.dxc.hlsl b/test/tint/vk-gl-cts/spirv_assembly/instruction/graphics/execution_mode/depthunchanged_0/1.spvasm.expected.ir.dxc.hlsl
deleted file mode 100644
index 4a2c666..0000000
--- a/test/tint/vk-gl-cts/spirv_assembly/instruction/graphics/execution_mode/depthunchanged_0/1.spvasm.expected.ir.dxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::LoadVectorElement
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/vk-gl-cts/spirv_assembly/instruction/graphics/execution_mode/depthunchanged_0/1.spvasm.expected.ir.fxc.hlsl b/test/tint/vk-gl-cts/spirv_assembly/instruction/graphics/execution_mode/depthunchanged_0/1.spvasm.expected.ir.fxc.hlsl
deleted file mode 100644
index 4a2c666..0000000
--- a/test/tint/vk-gl-cts/spirv_assembly/instruction/graphics/execution_mode/depthunchanged_0/1.spvasm.expected.ir.fxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::LoadVectorElement
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/vk-gl-cts/spirv_assembly/instruction/graphics/execution_mode/depthunchanged_0/1.wgsl.expected.ir.dxc.hlsl b/test/tint/vk-gl-cts/spirv_assembly/instruction/graphics/execution_mode/depthunchanged_0/1.wgsl.expected.ir.dxc.hlsl
deleted file mode 100644
index 4a2c666..0000000
--- a/test/tint/vk-gl-cts/spirv_assembly/instruction/graphics/execution_mode/depthunchanged_0/1.wgsl.expected.ir.dxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::LoadVectorElement
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/vk-gl-cts/spirv_assembly/instruction/graphics/execution_mode/depthunchanged_0/1.wgsl.expected.ir.fxc.hlsl b/test/tint/vk-gl-cts/spirv_assembly/instruction/graphics/execution_mode/depthunchanged_0/1.wgsl.expected.ir.fxc.hlsl
deleted file mode 100644
index 4a2c666..0000000
--- a/test/tint/vk-gl-cts/spirv_assembly/instruction/graphics/execution_mode/depthunchanged_0/1.wgsl.expected.ir.fxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::LoadVectorElement
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/vk-gl-cts/spirv_assembly/instruction/graphics/execution_mode/depthunchanged_2/1.spvasm.expected.ir.dxc.hlsl b/test/tint/vk-gl-cts/spirv_assembly/instruction/graphics/execution_mode/depthunchanged_2/1.spvasm.expected.ir.dxc.hlsl
deleted file mode 100644
index c6e1d96..0000000
--- a/test/tint/vk-gl-cts/spirv_assembly/instruction/graphics/execution_mode/depthunchanged_2/1.spvasm.expected.ir.dxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Construct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/vk-gl-cts/spirv_assembly/instruction/graphics/execution_mode/depthunchanged_2/1.spvasm.expected.ir.fxc.hlsl b/test/tint/vk-gl-cts/spirv_assembly/instruction/graphics/execution_mode/depthunchanged_2/1.spvasm.expected.ir.fxc.hlsl
deleted file mode 100644
index c6e1d96..0000000
--- a/test/tint/vk-gl-cts/spirv_assembly/instruction/graphics/execution_mode/depthunchanged_2/1.spvasm.expected.ir.fxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Construct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/vk-gl-cts/spirv_assembly/instruction/graphics/execution_mode/depthunchanged_2/1.wgsl.expected.ir.dxc.hlsl b/test/tint/vk-gl-cts/spirv_assembly/instruction/graphics/execution_mode/depthunchanged_2/1.wgsl.expected.ir.dxc.hlsl
deleted file mode 100644
index c6e1d96..0000000
--- a/test/tint/vk-gl-cts/spirv_assembly/instruction/graphics/execution_mode/depthunchanged_2/1.wgsl.expected.ir.dxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Construct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/vk-gl-cts/spirv_assembly/instruction/graphics/execution_mode/depthunchanged_2/1.wgsl.expected.ir.fxc.hlsl b/test/tint/vk-gl-cts/spirv_assembly/instruction/graphics/execution_mode/depthunchanged_2/1.wgsl.expected.ir.fxc.hlsl
deleted file mode 100644
index c6e1d96..0000000
--- a/test/tint/vk-gl-cts/spirv_assembly/instruction/graphics/execution_mode/depthunchanged_2/1.wgsl.expected.ir.fxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Construct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/vk-gl-cts/spirv_assembly/instruction/graphics/execution_mode/depthunchanged_3/1.spvasm.expected.ir.dxc.hlsl b/test/tint/vk-gl-cts/spirv_assembly/instruction/graphics/execution_mode/depthunchanged_3/1.spvasm.expected.ir.dxc.hlsl
deleted file mode 100644
index c6e1d96..0000000
--- a/test/tint/vk-gl-cts/spirv_assembly/instruction/graphics/execution_mode/depthunchanged_3/1.spvasm.expected.ir.dxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Construct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/vk-gl-cts/spirv_assembly/instruction/graphics/execution_mode/depthunchanged_3/1.spvasm.expected.ir.fxc.hlsl b/test/tint/vk-gl-cts/spirv_assembly/instruction/graphics/execution_mode/depthunchanged_3/1.spvasm.expected.ir.fxc.hlsl
deleted file mode 100644
index c6e1d96..0000000
--- a/test/tint/vk-gl-cts/spirv_assembly/instruction/graphics/execution_mode/depthunchanged_3/1.spvasm.expected.ir.fxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Construct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/vk-gl-cts/spirv_assembly/instruction/graphics/execution_mode/depthunchanged_3/1.wgsl.expected.ir.dxc.hlsl b/test/tint/vk-gl-cts/spirv_assembly/instruction/graphics/execution_mode/depthunchanged_3/1.wgsl.expected.ir.dxc.hlsl
deleted file mode 100644
index c6e1d96..0000000
--- a/test/tint/vk-gl-cts/spirv_assembly/instruction/graphics/execution_mode/depthunchanged_3/1.wgsl.expected.ir.dxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Construct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/vk-gl-cts/spirv_assembly/instruction/graphics/execution_mode/depthunchanged_3/1.wgsl.expected.ir.fxc.hlsl b/test/tint/vk-gl-cts/spirv_assembly/instruction/graphics/execution_mode/depthunchanged_3/1.wgsl.expected.ir.fxc.hlsl
deleted file mode 100644
index c6e1d96..0000000
--- a/test/tint/vk-gl-cts/spirv_assembly/instruction/graphics/execution_mode/depthunchanged_3/1.wgsl.expected.ir.fxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Construct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/vk-gl-cts/spirv_assembly/instruction/spirv1p4/hlsl_functionality1/decorate_string/0.spvasm.expected.ir.dxc.hlsl b/test/tint/vk-gl-cts/spirv_assembly/instruction/spirv1p4/hlsl_functionality1/decorate_string/0.spvasm.expected.ir.dxc.hlsl
deleted file mode 100644
index 6b047b4..0000000
--- a/test/tint/vk-gl-cts/spirv_assembly/instruction/spirv1p4/hlsl_functionality1/decorate_string/0.spvasm.expected.ir.dxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:287 internal compiler error: Switch() matched no cases. Type: tint::core::ir::FunctionParam
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/vk-gl-cts/spirv_assembly/instruction/spirv1p4/hlsl_functionality1/decorate_string/0.spvasm.expected.ir.fxc.hlsl b/test/tint/vk-gl-cts/spirv_assembly/instruction/spirv1p4/hlsl_functionality1/decorate_string/0.spvasm.expected.ir.fxc.hlsl
deleted file mode 100644
index 6b047b4..0000000
--- a/test/tint/vk-gl-cts/spirv_assembly/instruction/spirv1p4/hlsl_functionality1/decorate_string/0.spvasm.expected.ir.fxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:287 internal compiler error: Switch() matched no cases. Type: tint::core::ir::FunctionParam
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/vk-gl-cts/spirv_assembly/instruction/spirv1p4/hlsl_functionality1/decorate_string/0.wgsl.expected.ir.dxc.hlsl b/test/tint/vk-gl-cts/spirv_assembly/instruction/spirv1p4/hlsl_functionality1/decorate_string/0.wgsl.expected.ir.dxc.hlsl
deleted file mode 100644
index 6b047b4..0000000
--- a/test/tint/vk-gl-cts/spirv_assembly/instruction/spirv1p4/hlsl_functionality1/decorate_string/0.wgsl.expected.ir.dxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:287 internal compiler error: Switch() matched no cases. Type: tint::core::ir::FunctionParam
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/vk-gl-cts/spirv_assembly/instruction/spirv1p4/hlsl_functionality1/decorate_string/0.wgsl.expected.ir.fxc.hlsl b/test/tint/vk-gl-cts/spirv_assembly/instruction/spirv1p4/hlsl_functionality1/decorate_string/0.wgsl.expected.ir.fxc.hlsl
deleted file mode 100644
index 6b047b4..0000000
--- a/test/tint/vk-gl-cts/spirv_assembly/instruction/spirv1p4/hlsl_functionality1/decorate_string/0.wgsl.expected.ir.fxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:287 internal compiler error: Switch() matched no cases. Type: tint::core::ir::FunctionParam
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/vk-gl-cts/spirv_assembly/instruction/terminate_invocation/no_image_atomic/0-opt.spvasm.expected.ir.dxc.hlsl b/test/tint/vk-gl-cts/spirv_assembly/instruction/terminate_invocation/no_image_atomic/0-opt.spvasm.expected.ir.dxc.hlsl
deleted file mode 100644
index c6e1d96..0000000
--- a/test/tint/vk-gl-cts/spirv_assembly/instruction/terminate_invocation/no_image_atomic/0-opt.spvasm.expected.ir.dxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Construct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/vk-gl-cts/spirv_assembly/instruction/terminate_invocation/no_image_atomic/0-opt.spvasm.expected.ir.fxc.hlsl b/test/tint/vk-gl-cts/spirv_assembly/instruction/terminate_invocation/no_image_atomic/0-opt.spvasm.expected.ir.fxc.hlsl
deleted file mode 100644
index c6e1d96..0000000
--- a/test/tint/vk-gl-cts/spirv_assembly/instruction/terminate_invocation/no_image_atomic/0-opt.spvasm.expected.ir.fxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Construct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/vk-gl-cts/spirv_assembly/instruction/terminate_invocation/no_image_atomic/0-opt.wgsl.expected.ir.dxc.hlsl b/test/tint/vk-gl-cts/spirv_assembly/instruction/terminate_invocation/no_image_atomic/0-opt.wgsl.expected.ir.dxc.hlsl
deleted file mode 100644
index c6e1d96..0000000
--- a/test/tint/vk-gl-cts/spirv_assembly/instruction/terminate_invocation/no_image_atomic/0-opt.wgsl.expected.ir.dxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Construct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/vk-gl-cts/spirv_assembly/instruction/terminate_invocation/no_image_atomic/0-opt.wgsl.expected.ir.fxc.hlsl b/test/tint/vk-gl-cts/spirv_assembly/instruction/terminate_invocation/no_image_atomic/0-opt.wgsl.expected.ir.fxc.hlsl
deleted file mode 100644
index c6e1d96..0000000
--- a/test/tint/vk-gl-cts/spirv_assembly/instruction/terminate_invocation/no_image_atomic/0-opt.wgsl.expected.ir.fxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Construct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/vk-gl-cts/spirv_assembly/instruction/terminate_invocation/no_image_store/1.spvasm.expected.ir.dxc.hlsl b/test/tint/vk-gl-cts/spirv_assembly/instruction/terminate_invocation/no_image_store/1.spvasm.expected.ir.dxc.hlsl
deleted file mode 100644
index 48e23f4..0000000
--- a/test/tint/vk-gl-cts/spirv_assembly/instruction/terminate_invocation/no_image_store/1.spvasm.expected.ir.dxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Convert
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/vk-gl-cts/spirv_assembly/instruction/terminate_invocation/no_image_store/1.spvasm.expected.ir.fxc.hlsl b/test/tint/vk-gl-cts/spirv_assembly/instruction/terminate_invocation/no_image_store/1.spvasm.expected.ir.fxc.hlsl
deleted file mode 100644
index 48e23f4..0000000
--- a/test/tint/vk-gl-cts/spirv_assembly/instruction/terminate_invocation/no_image_store/1.spvasm.expected.ir.fxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Convert
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/vk-gl-cts/spirv_assembly/instruction/terminate_invocation/no_image_store/1.wgsl.expected.ir.dxc.hlsl b/test/tint/vk-gl-cts/spirv_assembly/instruction/terminate_invocation/no_image_store/1.wgsl.expected.ir.dxc.hlsl
deleted file mode 100644
index 48e23f4..0000000
--- a/test/tint/vk-gl-cts/spirv_assembly/instruction/terminate_invocation/no_image_store/1.wgsl.expected.ir.dxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Convert
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/vk-gl-cts/spirv_assembly/instruction/terminate_invocation/no_image_store/1.wgsl.expected.ir.fxc.hlsl b/test/tint/vk-gl-cts/spirv_assembly/instruction/terminate_invocation/no_image_store/1.wgsl.expected.ir.fxc.hlsl
deleted file mode 100644
index 48e23f4..0000000
--- a/test/tint/vk-gl-cts/spirv_assembly/instruction/terminate_invocation/no_image_store/1.wgsl.expected.ir.fxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Convert
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/vk-gl-cts/spirv_assembly/instruction/terminate_invocation/no_output_write/1.spvasm.expected.ir.dxc.hlsl b/test/tint/vk-gl-cts/spirv_assembly/instruction/terminate_invocation/no_output_write/1.spvasm.expected.ir.dxc.hlsl
deleted file mode 100644
index bdeab23..0000000
--- a/test/tint/vk-gl-cts/spirv_assembly/instruction/terminate_invocation/no_output_write/1.spvasm.expected.ir.dxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:198 internal compiler error: Switch() matched no cases. Type: tint::core::ir::If
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/vk-gl-cts/spirv_assembly/instruction/terminate_invocation/no_output_write/1.spvasm.expected.ir.fxc.hlsl b/test/tint/vk-gl-cts/spirv_assembly/instruction/terminate_invocation/no_output_write/1.spvasm.expected.ir.fxc.hlsl
deleted file mode 100644
index bdeab23..0000000
--- a/test/tint/vk-gl-cts/spirv_assembly/instruction/terminate_invocation/no_output_write/1.spvasm.expected.ir.fxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:198 internal compiler error: Switch() matched no cases. Type: tint::core::ir::If
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/vk-gl-cts/spirv_assembly/instruction/terminate_invocation/no_output_write/1.wgsl.expected.ir.dxc.hlsl b/test/tint/vk-gl-cts/spirv_assembly/instruction/terminate_invocation/no_output_write/1.wgsl.expected.ir.dxc.hlsl
deleted file mode 100644
index bdeab23..0000000
--- a/test/tint/vk-gl-cts/spirv_assembly/instruction/terminate_invocation/no_output_write/1.wgsl.expected.ir.dxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:198 internal compiler error: Switch() matched no cases. Type: tint::core::ir::If
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/vk-gl-cts/spirv_assembly/instruction/terminate_invocation/no_output_write/1.wgsl.expected.ir.fxc.hlsl b/test/tint/vk-gl-cts/spirv_assembly/instruction/terminate_invocation/no_output_write/1.wgsl.expected.ir.fxc.hlsl
deleted file mode 100644
index bdeab23..0000000
--- a/test/tint/vk-gl-cts/spirv_assembly/instruction/terminate_invocation/no_output_write/1.wgsl.expected.ir.fxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:198 internal compiler error: Switch() matched no cases. Type: tint::core::ir::If
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/vk-gl-cts/spirv_assembly/instruction/terminate_invocation/no_output_write/2-opt.spvasm.expected.ir.dxc.hlsl b/test/tint/vk-gl-cts/spirv_assembly/instruction/terminate_invocation/no_output_write/2-opt.spvasm.expected.ir.dxc.hlsl
deleted file mode 100644
index 48e23f4..0000000
--- a/test/tint/vk-gl-cts/spirv_assembly/instruction/terminate_invocation/no_output_write/2-opt.spvasm.expected.ir.dxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Convert
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/vk-gl-cts/spirv_assembly/instruction/terminate_invocation/no_output_write/2-opt.spvasm.expected.ir.fxc.hlsl b/test/tint/vk-gl-cts/spirv_assembly/instruction/terminate_invocation/no_output_write/2-opt.spvasm.expected.ir.fxc.hlsl
deleted file mode 100644
index 48e23f4..0000000
--- a/test/tint/vk-gl-cts/spirv_assembly/instruction/terminate_invocation/no_output_write/2-opt.spvasm.expected.ir.fxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Convert
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/vk-gl-cts/spirv_assembly/instruction/terminate_invocation/no_output_write/2-opt.wgsl.expected.ir.dxc.hlsl b/test/tint/vk-gl-cts/spirv_assembly/instruction/terminate_invocation/no_output_write/2-opt.wgsl.expected.ir.dxc.hlsl
deleted file mode 100644
index 4a2c666..0000000
--- a/test/tint/vk-gl-cts/spirv_assembly/instruction/terminate_invocation/no_output_write/2-opt.wgsl.expected.ir.dxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::LoadVectorElement
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/vk-gl-cts/spirv_assembly/instruction/terminate_invocation/no_output_write/2-opt.wgsl.expected.ir.fxc.hlsl b/test/tint/vk-gl-cts/spirv_assembly/instruction/terminate_invocation/no_output_write/2-opt.wgsl.expected.ir.fxc.hlsl
deleted file mode 100644
index 4a2c666..0000000
--- a/test/tint/vk-gl-cts/spirv_assembly/instruction/terminate_invocation/no_output_write/2-opt.wgsl.expected.ir.fxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::LoadVectorElement
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/vk-gl-cts/spirv_assembly/instruction/terminate_invocation/no_output_write_before_terminate/1.spvasm.expected.ir.dxc.hlsl b/test/tint/vk-gl-cts/spirv_assembly/instruction/terminate_invocation/no_output_write_before_terminate/1.spvasm.expected.ir.dxc.hlsl
deleted file mode 100644
index bdeab23..0000000
--- a/test/tint/vk-gl-cts/spirv_assembly/instruction/terminate_invocation/no_output_write_before_terminate/1.spvasm.expected.ir.dxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:198 internal compiler error: Switch() matched no cases. Type: tint::core::ir::If
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/vk-gl-cts/spirv_assembly/instruction/terminate_invocation/no_output_write_before_terminate/1.spvasm.expected.ir.fxc.hlsl b/test/tint/vk-gl-cts/spirv_assembly/instruction/terminate_invocation/no_output_write_before_terminate/1.spvasm.expected.ir.fxc.hlsl
deleted file mode 100644
index bdeab23..0000000
--- a/test/tint/vk-gl-cts/spirv_assembly/instruction/terminate_invocation/no_output_write_before_terminate/1.spvasm.expected.ir.fxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:198 internal compiler error: Switch() matched no cases. Type: tint::core::ir::If
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/vk-gl-cts/spirv_assembly/instruction/terminate_invocation/no_output_write_before_terminate/1.wgsl.expected.ir.dxc.hlsl b/test/tint/vk-gl-cts/spirv_assembly/instruction/terminate_invocation/no_output_write_before_terminate/1.wgsl.expected.ir.dxc.hlsl
deleted file mode 100644
index bdeab23..0000000
--- a/test/tint/vk-gl-cts/spirv_assembly/instruction/terminate_invocation/no_output_write_before_terminate/1.wgsl.expected.ir.dxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:198 internal compiler error: Switch() matched no cases. Type: tint::core::ir::If
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/vk-gl-cts/spirv_assembly/instruction/terminate_invocation/no_output_write_before_terminate/1.wgsl.expected.ir.fxc.hlsl b/test/tint/vk-gl-cts/spirv_assembly/instruction/terminate_invocation/no_output_write_before_terminate/1.wgsl.expected.ir.fxc.hlsl
deleted file mode 100644
index bdeab23..0000000
--- a/test/tint/vk-gl-cts/spirv_assembly/instruction/terminate_invocation/no_output_write_before_terminate/1.wgsl.expected.ir.fxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:198 internal compiler error: Switch() matched no cases. Type: tint::core::ir::If
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/vk-gl-cts/spirv_assembly/instruction/terminate_invocation/no_ssbo_store/1.spvasm.expected.ir.dxc.hlsl b/test/tint/vk-gl-cts/spirv_assembly/instruction/terminate_invocation/no_ssbo_store/1.spvasm.expected.ir.dxc.hlsl
deleted file mode 100644
index 48e23f4..0000000
--- a/test/tint/vk-gl-cts/spirv_assembly/instruction/terminate_invocation/no_ssbo_store/1.spvasm.expected.ir.dxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Convert
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/vk-gl-cts/spirv_assembly/instruction/terminate_invocation/no_ssbo_store/1.spvasm.expected.ir.fxc.hlsl b/test/tint/vk-gl-cts/spirv_assembly/instruction/terminate_invocation/no_ssbo_store/1.spvasm.expected.ir.fxc.hlsl
deleted file mode 100644
index 48e23f4..0000000
--- a/test/tint/vk-gl-cts/spirv_assembly/instruction/terminate_invocation/no_ssbo_store/1.spvasm.expected.ir.fxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Convert
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/vk-gl-cts/spirv_assembly/instruction/terminate_invocation/no_ssbo_store/1.wgsl.expected.ir.dxc.hlsl b/test/tint/vk-gl-cts/spirv_assembly/instruction/terminate_invocation/no_ssbo_store/1.wgsl.expected.ir.dxc.hlsl
deleted file mode 100644
index 48e23f4..0000000
--- a/test/tint/vk-gl-cts/spirv_assembly/instruction/terminate_invocation/no_ssbo_store/1.wgsl.expected.ir.dxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Convert
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/vk-gl-cts/spirv_assembly/instruction/terminate_invocation/no_ssbo_store/1.wgsl.expected.ir.fxc.hlsl b/test/tint/vk-gl-cts/spirv_assembly/instruction/terminate_invocation/no_ssbo_store/1.wgsl.expected.ir.fxc.hlsl
deleted file mode 100644
index 48e23f4..0000000
--- a/test/tint/vk-gl-cts/spirv_assembly/instruction/terminate_invocation/no_ssbo_store/1.wgsl.expected.ir.fxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Convert
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/vk-gl-cts/spirv_assembly/instruction/terminate_invocation/ssbo_store_before_terminate/1.spvasm.expected.ir.dxc.hlsl b/test/tint/vk-gl-cts/spirv_assembly/instruction/terminate_invocation/ssbo_store_before_terminate/1.spvasm.expected.ir.dxc.hlsl
deleted file mode 100644
index 48e23f4..0000000
--- a/test/tint/vk-gl-cts/spirv_assembly/instruction/terminate_invocation/ssbo_store_before_terminate/1.spvasm.expected.ir.dxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Convert
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/vk-gl-cts/spirv_assembly/instruction/terminate_invocation/ssbo_store_before_terminate/1.spvasm.expected.ir.fxc.hlsl b/test/tint/vk-gl-cts/spirv_assembly/instruction/terminate_invocation/ssbo_store_before_terminate/1.spvasm.expected.ir.fxc.hlsl
deleted file mode 100644
index 48e23f4..0000000
--- a/test/tint/vk-gl-cts/spirv_assembly/instruction/terminate_invocation/ssbo_store_before_terminate/1.spvasm.expected.ir.fxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Convert
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/vk-gl-cts/spirv_assembly/instruction/terminate_invocation/ssbo_store_before_terminate/1.wgsl.expected.ir.dxc.hlsl b/test/tint/vk-gl-cts/spirv_assembly/instruction/terminate_invocation/ssbo_store_before_terminate/1.wgsl.expected.ir.dxc.hlsl
deleted file mode 100644
index 48e23f4..0000000
--- a/test/tint/vk-gl-cts/spirv_assembly/instruction/terminate_invocation/ssbo_store_before_terminate/1.wgsl.expected.ir.dxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Convert
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/vk-gl-cts/spirv_assembly/instruction/terminate_invocation/ssbo_store_before_terminate/1.wgsl.expected.ir.fxc.hlsl b/test/tint/vk-gl-cts/spirv_assembly/instruction/terminate_invocation/ssbo_store_before_terminate/1.wgsl.expected.ir.fxc.hlsl
deleted file mode 100644
index 48e23f4..0000000
--- a/test/tint/vk-gl-cts/spirv_assembly/instruction/terminate_invocation/ssbo_store_before_terminate/1.wgsl.expected.ir.fxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Convert
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/vk-gl-cts/spirv_assembly/instruction/terminate_invocation/terminate_loop/1.spvasm.expected.ir.dxc.hlsl b/test/tint/vk-gl-cts/spirv_assembly/instruction/terminate_invocation/terminate_loop/1.spvasm.expected.ir.dxc.hlsl
deleted file mode 100644
index bdeab23..0000000
--- a/test/tint/vk-gl-cts/spirv_assembly/instruction/terminate_invocation/terminate_loop/1.spvasm.expected.ir.dxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:198 internal compiler error: Switch() matched no cases. Type: tint::core::ir::If
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/vk-gl-cts/spirv_assembly/instruction/terminate_invocation/terminate_loop/1.spvasm.expected.ir.fxc.hlsl b/test/tint/vk-gl-cts/spirv_assembly/instruction/terminate_invocation/terminate_loop/1.spvasm.expected.ir.fxc.hlsl
deleted file mode 100644
index bdeab23..0000000
--- a/test/tint/vk-gl-cts/spirv_assembly/instruction/terminate_invocation/terminate_loop/1.spvasm.expected.ir.fxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:198 internal compiler error: Switch() matched no cases. Type: tint::core::ir::If
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/vk-gl-cts/spirv_assembly/instruction/terminate_invocation/terminate_loop/1.wgsl.expected.ir.dxc.hlsl b/test/tint/vk-gl-cts/spirv_assembly/instruction/terminate_invocation/terminate_loop/1.wgsl.expected.ir.dxc.hlsl
deleted file mode 100644
index bdeab23..0000000
--- a/test/tint/vk-gl-cts/spirv_assembly/instruction/terminate_invocation/terminate_loop/1.wgsl.expected.ir.dxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:198 internal compiler error: Switch() matched no cases. Type: tint::core::ir::If
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/vk-gl-cts/spirv_assembly/instruction/terminate_invocation/terminate_loop/1.wgsl.expected.ir.fxc.hlsl b/test/tint/vk-gl-cts/spirv_assembly/instruction/terminate_invocation/terminate_loop/1.wgsl.expected.ir.fxc.hlsl
deleted file mode 100644
index bdeab23..0000000
--- a/test/tint/vk-gl-cts/spirv_assembly/instruction/terminate_invocation/terminate_loop/1.wgsl.expected.ir.fxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:198 internal compiler error: Switch() matched no cases. Type: tint::core::ir::If
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/vk-gl-cts/subgroup_uniform_control_flow/discard/subgroup_reconverge_discard00/0.spvasm.expected.ir.dxc.hlsl b/test/tint/vk-gl-cts/subgroup_uniform_control_flow/discard/subgroup_reconverge_discard00/0.spvasm.expected.ir.dxc.hlsl
deleted file mode 100644
index c6e1d96..0000000
--- a/test/tint/vk-gl-cts/subgroup_uniform_control_flow/discard/subgroup_reconverge_discard00/0.spvasm.expected.ir.dxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Construct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/vk-gl-cts/subgroup_uniform_control_flow/discard/subgroup_reconverge_discard00/0.spvasm.expected.ir.fxc.hlsl b/test/tint/vk-gl-cts/subgroup_uniform_control_flow/discard/subgroup_reconverge_discard00/0.spvasm.expected.ir.fxc.hlsl
deleted file mode 100644
index c6e1d96..0000000
--- a/test/tint/vk-gl-cts/subgroup_uniform_control_flow/discard/subgroup_reconverge_discard00/0.spvasm.expected.ir.fxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Construct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/vk-gl-cts/subgroup_uniform_control_flow/discard/subgroup_reconverge_discard00/0.wgsl.expected.ir.dxc.hlsl b/test/tint/vk-gl-cts/subgroup_uniform_control_flow/discard/subgroup_reconverge_discard00/0.wgsl.expected.ir.dxc.hlsl
deleted file mode 100644
index c6e1d96..0000000
--- a/test/tint/vk-gl-cts/subgroup_uniform_control_flow/discard/subgroup_reconverge_discard00/0.wgsl.expected.ir.dxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Construct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/vk-gl-cts/subgroup_uniform_control_flow/discard/subgroup_reconverge_discard00/0.wgsl.expected.ir.fxc.hlsl b/test/tint/vk-gl-cts/subgroup_uniform_control_flow/discard/subgroup_reconverge_discard00/0.wgsl.expected.ir.fxc.hlsl
deleted file mode 100644
index c6e1d96..0000000
--- a/test/tint/vk-gl-cts/subgroup_uniform_control_flow/discard/subgroup_reconverge_discard00/0.wgsl.expected.ir.fxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Construct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/vk-gl-cts/subgroup_uniform_control_flow/discard/subgroup_reconverge_discard00/2-opt.spvasm.expected.ir.dxc.hlsl b/test/tint/vk-gl-cts/subgroup_uniform_control_flow/discard/subgroup_reconverge_discard00/2-opt.spvasm.expected.ir.dxc.hlsl
deleted file mode 100644
index 4a2c666..0000000
--- a/test/tint/vk-gl-cts/subgroup_uniform_control_flow/discard/subgroup_reconverge_discard00/2-opt.spvasm.expected.ir.dxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::LoadVectorElement
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/vk-gl-cts/subgroup_uniform_control_flow/discard/subgroup_reconverge_discard00/2-opt.spvasm.expected.ir.fxc.hlsl b/test/tint/vk-gl-cts/subgroup_uniform_control_flow/discard/subgroup_reconverge_discard00/2-opt.spvasm.expected.ir.fxc.hlsl
deleted file mode 100644
index 4a2c666..0000000
--- a/test/tint/vk-gl-cts/subgroup_uniform_control_flow/discard/subgroup_reconverge_discard00/2-opt.spvasm.expected.ir.fxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::LoadVectorElement
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/vk-gl-cts/subgroup_uniform_control_flow/discard/subgroup_reconverge_discard00/2-opt.wgsl.expected.ir.dxc.hlsl b/test/tint/vk-gl-cts/subgroup_uniform_control_flow/discard/subgroup_reconverge_discard00/2-opt.wgsl.expected.ir.dxc.hlsl
deleted file mode 100644
index 4a2c666..0000000
--- a/test/tint/vk-gl-cts/subgroup_uniform_control_flow/discard/subgroup_reconverge_discard00/2-opt.wgsl.expected.ir.dxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::LoadVectorElement
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/vk-gl-cts/subgroup_uniform_control_flow/discard/subgroup_reconverge_discard00/2-opt.wgsl.expected.ir.fxc.hlsl b/test/tint/vk-gl-cts/subgroup_uniform_control_flow/discard/subgroup_reconverge_discard00/2-opt.wgsl.expected.ir.fxc.hlsl
deleted file mode 100644
index 4a2c666..0000000
--- a/test/tint/vk-gl-cts/subgroup_uniform_control_flow/discard/subgroup_reconverge_discard00/2-opt.wgsl.expected.ir.fxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::LoadVectorElement
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/vk-gl-cts/texture/subgroup_lod/texel_fetch/1.spvasm.expected.ir.dxc.hlsl b/test/tint/vk-gl-cts/texture/subgroup_lod/texel_fetch/1.spvasm.expected.ir.dxc.hlsl
deleted file mode 100644
index 6b047b4..0000000
--- a/test/tint/vk-gl-cts/texture/subgroup_lod/texel_fetch/1.spvasm.expected.ir.dxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:287 internal compiler error: Switch() matched no cases. Type: tint::core::ir::FunctionParam
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/vk-gl-cts/texture/subgroup_lod/texel_fetch/1.spvasm.expected.ir.fxc.hlsl b/test/tint/vk-gl-cts/texture/subgroup_lod/texel_fetch/1.spvasm.expected.ir.fxc.hlsl
deleted file mode 100644
index 6b047b4..0000000
--- a/test/tint/vk-gl-cts/texture/subgroup_lod/texel_fetch/1.spvasm.expected.ir.fxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:287 internal compiler error: Switch() matched no cases. Type: tint::core::ir::FunctionParam
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/vk-gl-cts/texture/subgroup_lod/texel_fetch/1.wgsl.expected.ir.dxc.hlsl b/test/tint/vk-gl-cts/texture/subgroup_lod/texel_fetch/1.wgsl.expected.ir.dxc.hlsl
deleted file mode 100644
index 6b047b4..0000000
--- a/test/tint/vk-gl-cts/texture/subgroup_lod/texel_fetch/1.wgsl.expected.ir.dxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:287 internal compiler error: Switch() matched no cases. Type: tint::core::ir::FunctionParam
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/vk-gl-cts/texture/subgroup_lod/texel_fetch/1.wgsl.expected.ir.fxc.hlsl b/test/tint/vk-gl-cts/texture/subgroup_lod/texel_fetch/1.wgsl.expected.ir.fxc.hlsl
deleted file mode 100644
index 6b047b4..0000000
--- a/test/tint/vk-gl-cts/texture/subgroup_lod/texel_fetch/1.wgsl.expected.ir.fxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:287 internal compiler error: Switch() matched no cases. Type: tint::core::ir::FunctionParam
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/vk-gl-cts/texture/texel_offset/texel_offset/0-opt.spvasm.expected.ir.dxc.hlsl b/test/tint/vk-gl-cts/texture/texel_offset/texel_offset/0-opt.spvasm.expected.ir.dxc.hlsl
deleted file mode 100644
index c6e1d96..0000000
--- a/test/tint/vk-gl-cts/texture/texel_offset/texel_offset/0-opt.spvasm.expected.ir.dxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Construct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/vk-gl-cts/texture/texel_offset/texel_offset/0-opt.spvasm.expected.ir.fxc.hlsl b/test/tint/vk-gl-cts/texture/texel_offset/texel_offset/0-opt.spvasm.expected.ir.fxc.hlsl
deleted file mode 100644
index c6e1d96..0000000
--- a/test/tint/vk-gl-cts/texture/texel_offset/texel_offset/0-opt.spvasm.expected.ir.fxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Construct
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/vk-gl-cts/texture/texel_offset/texel_offset/0-opt.wgsl.expected.ir.dxc.hlsl b/test/tint/vk-gl-cts/texture/texel_offset/texel_offset/0-opt.wgsl.expected.ir.dxc.hlsl
deleted file mode 100644
index 4a2c666..0000000
--- a/test/tint/vk-gl-cts/texture/texel_offset/texel_offset/0-opt.wgsl.expected.ir.dxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::LoadVectorElement
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/vk-gl-cts/texture/texel_offset/texel_offset/0-opt.wgsl.expected.ir.fxc.hlsl b/test/tint/vk-gl-cts/texture/texel_offset/texel_offset/0-opt.wgsl.expected.ir.fxc.hlsl
deleted file mode 100644
index 4a2c666..0000000
--- a/test/tint/vk-gl-cts/texture/texel_offset/texel_offset/0-opt.wgsl.expected.ir.fxc.hlsl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/hlsl/writer/printer/printer.cc:285 internal compiler error: Switch() matched no cases. Type: tint::core::ir::LoadVectorElement
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************